@venturekit/runtime 0.0.0-dev.20260415182021 → 0.0.0-dev.20260427220257
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/env/memo.d.ts +39 -0
- package/dist/env/memo.d.ts.map +1 -0
- package/dist/env/memo.js +85 -0
- package/dist/env/memo.js.map +1 -0
- package/dist/handler/context.d.ts.map +1 -1
- package/dist/handler/context.js +12 -14
- package/dist/handler/context.js.map +1 -1
- package/dist/handler/data-loader.d.ts +50 -0
- package/dist/handler/data-loader.d.ts.map +1 -0
- package/dist/handler/data-loader.js +68 -0
- package/dist/handler/data-loader.js.map +1 -0
- package/dist/handler/errors.d.ts +10 -0
- package/dist/handler/errors.d.ts.map +1 -1
- package/dist/handler/errors.js +13 -0
- package/dist/handler/errors.js.map +1 -1
- package/dist/handler/handler.d.ts +18 -0
- package/dist/handler/handler.d.ts.map +1 -1
- package/dist/handler/handler.js +56 -11
- package/dist/handler/handler.js.map +1 -1
- package/dist/handler/queue-batch.d.ts +140 -0
- package/dist/handler/queue-batch.d.ts.map +1 -0
- package/dist/handler/queue-batch.js +180 -0
- package/dist/handler/queue-batch.js.map +1 -0
- package/dist/handler/response.d.ts +8 -1
- package/dist/handler/response.d.ts.map +1 -1
- package/dist/handler/response.js +18 -4
- package/dist/handler/response.js.map +1 -1
- package/dist/handler/task-handler.d.ts.map +1 -1
- package/dist/handler/task-handler.js +8 -12
- package/dist/handler/task-handler.js.map +1 -1
- package/dist/index.d.ts +5 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/logging/logger.d.ts +20 -1
- package/dist/logging/logger.d.ts.map +1 -1
- package/dist/logging/logger.js +66 -23
- package/dist/logging/logger.js.map +1 -1
- package/dist/logging/metrics.d.ts +105 -0
- package/dist/logging/metrics.d.ts.map +1 -0
- package/dist/logging/metrics.js +189 -0
- package/dist/logging/metrics.js.map +1 -0
- package/dist/logging/tracing.d.ts +64 -10
- package/dist/logging/tracing.d.ts.map +1 -1
- package/dist/logging/tracing.js +197 -15
- package/dist/logging/tracing.js.map +1 -1
- package/dist/middleware/middleware.d.ts +3 -0
- package/dist/middleware/middleware.d.ts.map +1 -1
- package/dist/middleware/middleware.js +11 -2
- package/dist/middleware/middleware.js.map +1 -1
- package/dist/middleware/rate-limit-store.d.ts +18 -0
- package/dist/middleware/rate-limit-store.d.ts.map +1 -1
- package/dist/middleware/rate-limit-store.js +24 -4
- package/dist/middleware/rate-limit-store.js.map +1 -1
- package/dist/patterns/circuit-breaker.d.ts +11 -0
- package/dist/patterns/circuit-breaker.d.ts.map +1 -1
- package/dist/patterns/circuit-breaker.js +26 -2
- package/dist/patterns/circuit-breaker.js.map +1 -1
- package/dist/patterns/invoke.d.ts.map +1 -1
- package/dist/patterns/invoke.js +60 -31
- package/dist/patterns/invoke.js.map +1 -1
- package/dist/patterns/saga.d.ts +42 -1
- package/dist/patterns/saga.d.ts.map +1 -1
- package/dist/patterns/saga.js +78 -20
- package/dist/patterns/saga.js.map +1 -1
- package/dist/security/internal-hmac.d.ts +59 -0
- package/dist/security/internal-hmac.d.ts.map +1 -0
- package/dist/security/internal-hmac.js +117 -0
- package/dist/security/internal-hmac.js.map +1 -0
- package/package.json +4 -4
package/dist/patterns/invoke.js
CHANGED
|
@@ -24,8 +24,11 @@
|
|
|
24
24
|
* ```
|
|
25
25
|
*/
|
|
26
26
|
import * as http from 'http';
|
|
27
|
+
import { randomUUID } from 'node:crypto';
|
|
27
28
|
import { injectTraceHeaders, createChildTrace, generateId, extractTraceContext } from '../logging/tracing.js';
|
|
28
29
|
import { createCircuitBreaker } from './circuit-breaker.js';
|
|
30
|
+
import { signInternalCall, INTERNAL_HMAC_HEADERS } from '../security/internal-hmac.js';
|
|
31
|
+
import { getLocalProjectUrls as getLocalProjectUrlsMemo } from '../env/memo.js';
|
|
29
32
|
/**
|
|
30
33
|
* Default function name resolver.
|
|
31
34
|
* Converts 'users/get' → '{prefix}-users-get'
|
|
@@ -56,11 +59,17 @@ export function createInvoker(options) {
|
|
|
56
59
|
const rawQueryString = Object.entries(queryParams)
|
|
57
60
|
.map(([k, v]) => `${k}=${encodeURIComponent(v)}`)
|
|
58
61
|
.join('&');
|
|
62
|
+
// Sign the internal call so the receiver can distinguish a real Lambda-to-
|
|
63
|
+
// Lambda call from a forged `x-venturekit-source: internal` header supplied
|
|
64
|
+
// by an external client to API Gateway.
|
|
65
|
+
const { timestamp: hmacTs, signature: hmacSig } = signInternalCall(functionName);
|
|
59
66
|
// Build headers with trace propagation
|
|
60
67
|
const allHeaders = {
|
|
61
68
|
'content-type': 'application/json',
|
|
62
|
-
|
|
63
|
-
|
|
69
|
+
[INTERNAL_HMAC_HEADERS.SOURCE]: 'internal',
|
|
70
|
+
[INTERNAL_HMAC_HEADERS.TIMESTAMP]: hmacTs,
|
|
71
|
+
[INTERNAL_HMAC_HEADERS.SIGNATURE]: hmacSig,
|
|
72
|
+
[INTERNAL_HMAC_HEADERS.INVOKE_ID]: `inv-${randomUUID()}`,
|
|
64
73
|
...headers,
|
|
65
74
|
};
|
|
66
75
|
// Propagate trace context
|
|
@@ -208,27 +217,14 @@ export async function createLambdaInvoker(options) {
|
|
|
208
217
|
};
|
|
209
218
|
}
|
|
210
219
|
/**
|
|
211
|
-
*
|
|
212
|
-
*
|
|
213
|
-
*
|
|
214
|
-
*
|
|
215
|
-
*
|
|
216
|
-
* When invoking a function whose resolved name starts with a known project
|
|
217
|
-
* prefix, the request is routed to that project's local server instead of
|
|
218
|
-
* the current one. This enables cross-project calls during local dev.
|
|
220
|
+
* Thin wrapper around the memoized local-project-URL registry
|
|
221
|
+
* (see `env/memo`). Kept as a local function so the rest of this file can
|
|
222
|
+
* continue to call `getLocalProjectUrls()` without knowing about the memo
|
|
223
|
+
* module; the cache invalidates automatically when `VENTURE_LOCAL_URLS`
|
|
224
|
+
* changes.
|
|
219
225
|
*/
|
|
220
226
|
function getLocalProjectUrls() {
|
|
221
|
-
|
|
222
|
-
if (!raw)
|
|
223
|
-
return {};
|
|
224
|
-
const map = {};
|
|
225
|
-
for (const entry of raw.split(',')) {
|
|
226
|
-
const [name, url] = entry.split('=');
|
|
227
|
-
if (name && url) {
|
|
228
|
-
map[name.trim()] = url.trim();
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
return map;
|
|
227
|
+
return getLocalProjectUrlsMemo();
|
|
232
228
|
}
|
|
233
229
|
/**
|
|
234
230
|
* Resolve the local base URL for a given function name.
|
|
@@ -387,6 +383,39 @@ async function getLambdaInvoker() {
|
|
|
387
383
|
}
|
|
388
384
|
return _lambdaInvokerSingleton;
|
|
389
385
|
}
|
|
386
|
+
/**
|
|
387
|
+
* Cached `(resolver, invokerFn)` pair keyed by the project prefix.
|
|
388
|
+
*
|
|
389
|
+
* Both the name resolver and the `createInvoker` closure are pure functions
|
|
390
|
+
* of the prefix + lambda invoker — which are stable across warm invocations.
|
|
391
|
+
* Building them on every call was wasteful, especially under high QPS. We
|
|
392
|
+
* key by prefix so that test setups mutating `VENTURE_PROJECT_NAME` still
|
|
393
|
+
* see fresh closures, and by invoker identity so swapping the invoker
|
|
394
|
+
* (e.g. local-dev → prod SDK) transparently busts the cache.
|
|
395
|
+
*/
|
|
396
|
+
let _cachedResolverForPrefix;
|
|
397
|
+
let _cachedResolver;
|
|
398
|
+
let _cachedInvokerFn;
|
|
399
|
+
let _cachedInvokerFnInvoker;
|
|
400
|
+
function resolverForPrefix(prefix) {
|
|
401
|
+
if (prefix !== _cachedResolverForPrefix || !_cachedResolver) {
|
|
402
|
+
_cachedResolver = defaultFunctionNameResolver(prefix);
|
|
403
|
+
_cachedResolverForPrefix = prefix;
|
|
404
|
+
// When the resolver identity changes, the invokerFn must be rebuilt too
|
|
405
|
+
// since it closes over the resolver. Invalidate here rather than in the
|
|
406
|
+
// caller to keep the cache state coherent.
|
|
407
|
+
_cachedInvokerFn = undefined;
|
|
408
|
+
_cachedInvokerFnInvoker = undefined;
|
|
409
|
+
}
|
|
410
|
+
return _cachedResolver;
|
|
411
|
+
}
|
|
412
|
+
function invokerFnFor(lambdaInvoker, resolver) {
|
|
413
|
+
if (!_cachedInvokerFn || lambdaInvoker !== _cachedInvokerFnInvoker) {
|
|
414
|
+
_cachedInvokerFn = createInvoker({ invoker: lambdaInvoker, resolver });
|
|
415
|
+
_cachedInvokerFnInvoker = lambdaInvoker;
|
|
416
|
+
}
|
|
417
|
+
return _cachedInvokerFn;
|
|
418
|
+
}
|
|
390
419
|
/**
|
|
391
420
|
* Get the project prefix for function name resolution.
|
|
392
421
|
* Reads from VENTURE_PROJECT_NAME env var, falls back to 'app'.
|
|
@@ -482,21 +511,21 @@ export async function invoke(target, options) {
|
|
|
482
511
|
if (typeof target === 'string') {
|
|
483
512
|
const lambdaInvoker = await getLambdaInvoker();
|
|
484
513
|
const prefix = getProjectPrefix();
|
|
485
|
-
|
|
514
|
+
// Reuse the module-level resolver + invokerFn closures when the prefix
|
|
515
|
+
// and underlying Lambda invoker haven't changed. This is the hot path
|
|
516
|
+
// under high QPS; building closures here on every call is measurable.
|
|
517
|
+
const resolver = resolverForPrefix(prefix);
|
|
518
|
+
const invokerFn = invokerFnFor(lambdaInvoker, resolver);
|
|
486
519
|
const invokeOpts = options ?? {};
|
|
487
520
|
// Auto-propagate trace context if not explicitly provided
|
|
488
521
|
if (!invokeOpts.trace) {
|
|
489
522
|
invokeOpts.trace = traceContextFromHeaders(invokeOpts.headers);
|
|
490
523
|
}
|
|
491
|
-
//
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
//
|
|
496
|
-
if (!invokeOpts.userId && process.env._VENTURE_USER_ID) {
|
|
497
|
-
invokeOpts.userId = process.env._VENTURE_USER_ID;
|
|
498
|
-
}
|
|
499
|
-
const invokerFn = createInvoker({ invoker: lambdaInvoker, resolver });
|
|
524
|
+
// NOTE: tenant/user are NOT auto-propagated from process.env. A Lambda
|
|
525
|
+
// container is reused across invocations — reading identity from env
|
|
526
|
+
// would leak request A's tenant/user into request B's outbound call.
|
|
527
|
+
// Callers must pass invokeOpts.tenantId / invokeOpts.userId explicitly
|
|
528
|
+
// (typically `tenantId: ctx.tenant?.id, userId: ctx.user?.id`).
|
|
500
529
|
const doInvoke = () => invokerFn(target, invokeOpts);
|
|
501
530
|
// Circuit breaker: wrap with fallback when provided
|
|
502
531
|
if (invokeOpts.fallback) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invoke.js","sourceRoot":"","sources":["../../src/patterns/invoke.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAE7B,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,UAAU,EAAE,mBAAmB,EAAiB,MAAM,uBAAuB,CAAC;AAC7H,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AA2E5D;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CAAC,MAAc;IACxD,OAAO,CAAC,KAAa,EAAE,EAAE;QACvB,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC9D,OAAO,GAAG,MAAM,IAAI,SAAS,EAAE,CAAC;IAClC,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAK7B;IACC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAEtC;;OAEG;IACH,OAAO,KAAK,UAAU,MAAM,CAC1B,KAAa,EACb,gBAA+B,EAAE;QAEjC,MAAM,EACJ,MAAM,GAAG,MAAM,EACf,IAAI,EACJ,UAAU,GAAG,EAAE,EACf,WAAW,GAAG,EAAE,EAChB,OAAO,GAAG,EAAE,EACZ,IAAI,GAAG,MAAM,EACb,KAAK,EACL,QAAQ,EACR,MAAM,GACP,GAAG,aAAa,CAAC;QAElB,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAErC,6BAA6B;QAC7B,IAAI,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YACtD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;QACzC,CAAC;QAED,qBAAqB;QACrB,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;aAC/C,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;aAChD,IAAI,CAAC,GAAG,CAAC,CAAC;QAEb,uCAAuC;QACvC,MAAM,UAAU,GAA2B;YACzC,cAAc,EAAE,kBAAkB;YAClC,qBAAqB,EAAE,UAAU;YACjC,wBAAwB,EAAE,OAAO,IAAI,CAAC,GAAG,EAAE,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE;YACvF,GAAG,OAAO;SACX,CAAC;QAEF,0BAA0B;QAC1B,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,mBAAmB;QACnB,IAAI,QAAQ,EAAE,CAAC;YACb,UAAU,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC;QACvC,CAAC;QAED,iBAAiB;QACjB,IAAI,MAAM,EAAE,CAAC;YACX,UAAU,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC;QACnC,CAAC;QAED,qCAAqC;QACrC,MAAM,KAAK,GAAG;YACZ,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,GAAG,MAAM,IAAI,IAAI,EAAE;YAC7B,OAAO,EAAE,IAAI;YACb,cAAc;YACd,OAAO,EAAE,UAAU;YACnB,qBAAqB,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;YACpF,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;YAC3E,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;YAC3D,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE;gBACd,SAAS,EAAE,UAAU;gBACrB,KAAK,EAAE,UAAU;gBACjB,UAAU,EAAE,UAAU;gBACtB,YAAY,EAAE,UAAU;gBACxB,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,mBAAmB,EAAE;gBACnG,SAAS,EAAE,UAAU,IAAI,CAAC,GAAG,EAAE,EAAE;gBACjC,QAAQ,EAAE,GAAG,MAAM,IAAI,IAAI,EAAE;gBAC7B,KAAK,EAAE,UAAU;gBACjB,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBAC9B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB;SACF,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAEtE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;YAC3B,YAAY;YACZ,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAC9B,cAAc;SACf,CAAC,CAAC;QAEH,2CAA2C;QAC3C,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,OAAO;gBACL,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG;gBACpC,IAAI,EAAE,SAAc;gBACpB,OAAO,EAAE,EAAE;aACZ,CAAC;QACJ,CAAC;QAED,sBAAsB;QACtB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG,EAAE,IAAI,EAAE,SAAc,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACrF,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC5C,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAE3E,OAAO;gBACL,UAAU,EAAE,QAAQ,CAAC,UAAU,IAAI,GAAG;gBACtC,IAAI,EAAE,YAAY,EAAE,IAAI,IAAI,YAAY;gBACxC,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,EAAE;aAChC,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;gBACL,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG;gBACpC,IAAI,EAAE,MAAM,CAAC,OAAuB;gBACpC,OAAO,EAAE,EAAE;aACZ,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,6BAA6B;AAC7B,8EAA8E;AAE9E;;GAEG;AACH,SAAS,UAAU;IACjB,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,MAAM,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB;IACxB,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,oBAAoB,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,MAAM,EAAE,CAAC;AACzG,CAAC;AAED;;;GAGG;AACH,IAAI,uBAAuB,GAAyB,IAAI,CAAC;AAEzD;;;GAGG;AACH,IAAI,eAAe,GAA0B,IAAI,CAAC;AAElD,SAAS,iBAAiB;IACxB,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,eAAe,GAAG,oBAAoB,CAAC;YACrC,gBAAgB,EAAE,CAAC;YACnB,cAAc,EAAE,MAAM;SACvB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAA8B;IACpE,eAAe,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAGzC;IACC,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,WAAW,CAAC;IAE1G,+DAA+D;IAC/D,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;IAC/E,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAE5C,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE;QACtB,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC;YAChC,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,OAAO,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;SAClD,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE5C,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO;YAC9B,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC5C,CAAC,CAAC,SAAS,CAAC;QAEd,OAAO;YACL,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,OAAO;SACR,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;;;;GASG;AACH,SAAS,mBAAmB;IAC1B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;IAC3C,IAAI,CAAC,GAAG;QAAE,OAAO,EAAE,CAAC;IACpB,MAAM,GAAG,GAA2B,EAAE,CAAC;IACvC,KAAK,MAAM,KAAK,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACrC,IAAI,IAAI,IAAI,GAAG,EAAE,CAAC;YAChB,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC,IAAI,EAAE,CAAC;QAChC,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,YAAoB;IAC3C,MAAM,IAAI,GAAG,mBAAmB,EAAE,CAAC;IACnC,uDAAuD;IACvD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC9E,KAAK,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,MAAM,EAAE,CAAC;QACpC,IAAI,YAAY,CAAC,UAAU,CAAC,GAAG,OAAO,GAAG,CAAC,EAAE,CAAC;YAC3C,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;IACD,OAAO,iBAAiB,EAAE,CAAC;AAC7B,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,kBAAkB;IAEhC,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE;QACtB,2EAA2E;QAC3E,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAErD,4EAA4E;QAC5E,IAAI,MAAW,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;QAED,IAAI,SAAiB,CAAC;QACtB,IAAI,MAAc,CAAC;QACnB,IAAI,IAAwB,CAAC;QAC7B,IAAI,OAAO,GAA2B,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;QAE7E,8DAA8D;QAC9D,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,IAAI,MAAM,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC;YACtE,wEAAwE;YACxE,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC;YACrD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC;YACnC,MAAM,EAAE,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,SAAS,GAAG,GAAG,OAAO,GAAG,IAAI,GAAG,EAAE,EAAE,CAAC;YACrC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YACnB,2BAA2B;YAC3B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;YAC9C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,oDAAoD;YACpD,yDAAyD;YACzD,MAAM,MAAM,GAAG,wBAAwB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC7D,SAAS,GAAG,GAAG,OAAO,gBAAgB,MAAM,EAAE,CAAC;YAC/C,MAAM,GAAG,MAAM,CAAC;YAChB,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;QACxB,CAAC;QAED,4CAA4C;QAC5C,OAAO,IAAI,OAAO,CAA4C,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAChF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;YAC/B,MAAM,UAAU,GAAwB;gBACtC,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,IAAI,EAAE,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM;gBAC/B,MAAM;gBACN,OAAO;aACR,CAAC;YAEF,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC3C,MAAM,MAAM,GAAa,EAAE,CAAC;gBAC5B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtD,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;oBACjB,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBAE7D,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;wBACvC,oEAAoE;wBACpE,MAAM,eAAe,GAA2B,EAAE,CAAC;wBACnD,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;4BAChB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gCACjD,IAAI,OAAO,CAAC,KAAK,QAAQ;oCAAE,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BACpD,CAAC;wBACH,CAAC;wBACD,OAAO,CAAC;4BACN,UAAU,EAAE,GAAG;4BACf,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;gCACtB,UAAU,EAAE,GAAG,CAAC,UAAU;gCAC1B,OAAO,EAAE,eAAe;gCACxB,IAAI,EAAE,YAAY;6BACnB,CAAC;yBACH,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,+CAA+C;wBAC/C,OAAO,CAAC;4BACN,UAAU,EAAE,GAAG,CAAC,UAAU;4BAC1B,OAAO,EAAE,YAAY;yBACtB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACtB,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,GAAG,CAAC,OAAO,uCAAuC,CAAC,CAAC,CAAC;YAChG,CAAC,CAAC,CAAC;YAEH,IAAI,IAAI,EAAE,CAAC;gBACT,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;YACD,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,wBAAwB,CAAC,QAAgB;IAChD,6CAA6C;IAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;IAE/B,2CAA2C;IAC3C,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,WAAW,GAAG,GAAG,MAAM,IAAI,KAAK,GAAG,CAAC;IAC1C,IAAI,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACrC,OAAO,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,gBAAgB;IAC7B,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC7B,IAAI,UAAU,EAAE,EAAE,CAAC;YACjB,uBAAuB,GAAG,kBAAkB,EAAE,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,uBAAuB,GAAG,MAAM,mBAAmB,EAAE,CAAC;QACxD,CAAC;IACH,CAAC;IACD,OAAO,uBAAuB,CAAC;AACjC,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB;IACvB,OAAO,OAAO,CAAC,GAAG,CAAC,oBAAoB;WAClC,OAAO,CAAC,GAAG,CAAC,gBAAgB;WAC5B,KAAK,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,SAAS,QAAQ;IACf,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,KAAK,CAAC;AAC5C,CAAC;AAwDD;;;GAGG;AACH,SAAS,uBAAuB,CAAC,OAA4C;IAC3E,IAAI,OAAO,EAAE,CAAC;QACZ,+EAA+E;QAC/E,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IACD,gEAAgE;IAChE,OAAO;QACL,OAAO,EAAE,UAAU,EAAE;QACrB,MAAM,EAAE,UAAU,EAAE;QACpB,OAAO,EAAE,EAAE;KACZ,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,OAAgB;IAChE,MAAM,MAAM,GAAG,OAAO,IAAI,gBAAgB,EAAE,CAAC;IAC7C,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,OAAO,GAAG,MAAM,IAAI,KAAK,OAAO,IAAI,EAAE,CAAC;AACzC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,MAAqC,EACrC,OAA+C;IAE/C,oCAAoC;IACpC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,aAAa,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,MAAM,QAAQ,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;QACrD,MAAM,UAAU,GAAI,OAAyB,IAAI,EAAE,CAAC;QAEpD,0DAA0D;QAC1D,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACtB,UAAU,CAAC,KAAK,GAAG,uBAAuB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACjE,CAAC;QAED,4DAA4D;QAC5D,IAAI,CAAC,UAAU,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,CAAC;YAC3D,UAAU,CAAC,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC;QACvD,CAAC;QAED,0DAA0D;QAC1D,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,gBAAgB,EAAE,CAAC;YACvD,UAAU,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;QACnD,CAAC;QAED,MAAM,SAAS,GAAG,aAAa,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC;QACtE,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,SAAS,CAAI,MAAM,EAAE,UAAU,CAAC,CAAC;QAExD,oDAAoD;QACpD,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YACxB,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;YACtC,OAAO,iBAAiB,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,UAAU,CAAC,QAA2B,CAAC,CAAC;QAClG,CAAC;QAED,OAAO,QAAQ,EAAE,CAAC;IACpB,CAAC;IAED,gEAAgE;IAChE,MAAM,MAAM,GAAI,OAAiC,IAAI,EAAE,CAAC;IACxD,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,IAAI,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC;IAC/C,MAAM,aAAa,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAC/C,MAAM,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1E,MAAM,cAAc,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAEtE,iFAAiF;IACjF,IAAI,YAAY,GAAG,OAAO,CAAC;IAC3B,MAAM,WAAW,GAAG,uBAAuB,EAAE,CAAC;IAC9C,MAAM,UAAU,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACjD,YAAY,GAAG;QACb,GAAG,CAAC,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAClF,OAAO,EAAE,kBAAkB,CAAC,UAAU,CAAC;KACxC,CAAC;IAEF,MAAM,QAAQ,GAAG,KAAK,IAA8B,EAAE;QACpD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;YACjC,YAAY;YACZ,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;YACrC,cAAc;SACf,CAAC,CAAC;QAEH,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,OAAO;gBACL,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG;gBACpC,IAAI,EAAE,SAAc;gBACpB,OAAO,EAAE,EAAE;aACZ,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG,EAAE,IAAI,EAAE,SAAc,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACrF,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAM,CAAC;YAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACrE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,OAAuB,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACrG,CAAC;IACH,CAAC,CAAC;IAEF,oDAAoD;IACpD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,OAAO,iBAAiB,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,QAA2B,CAAC,CAAC;IAC9F,CAAC;IAED,OAAO,QAAQ,EAAE,CAAC;AACpB,CAAC;AA0BD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,YAAoB,EACpB,UAAmB,EAAE,EACrB,UAA+B,EAAE;IAEjC,MAAM,EAAE,IAAI,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC;IAClC,MAAM,aAAa,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAE/C,MAAM,cAAc,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAEtE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;QACjC,YAAY;QACZ,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;QAChC,cAAc;KACf,CAAC,CAAC;IAEH,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG,EAAE,IAAI,EAAE,SAAc,EAAE,CAAC;IACxE,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG,EAAE,IAAI,EAAE,SAAc,EAAE,CAAC;IACxE,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAM,CAAC;QAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,OAAuB,EAAE,CAAC;IACxF,CAAC;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"invoke.js","sourceRoot":"","sources":["../../src/patterns/invoke.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,UAAU,EAAE,mBAAmB,EAAiB,MAAM,uBAAuB,CAAC;AAC7H,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAE5D,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,8BAA8B,CAAC;AACvF,OAAO,EAAE,mBAAmB,IAAI,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AA0EhF;;;GAGG;AACH,MAAM,UAAU,2BAA2B,CAAC,MAAc;IACxD,OAAO,CAAC,KAAa,EAAE,EAAE;QACvB,MAAM,SAAS,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC9D,OAAO,GAAG,MAAM,IAAI,SAAS,EAAE,CAAC;IAClC,CAAC,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,OAK7B;IACC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;IAEtC;;OAEG;IACH,OAAO,KAAK,UAAU,MAAM,CAC1B,KAAa,EACb,gBAA+B,EAAE;QAEjC,MAAM,EACJ,MAAM,GAAG,MAAM,EACf,IAAI,EACJ,UAAU,GAAG,EAAE,EACf,WAAW,GAAG,EAAE,EAChB,OAAO,GAAG,EAAE,EACZ,IAAI,GAAG,MAAM,EACb,KAAK,EACL,QAAQ,EACR,MAAM,GACP,GAAG,aAAa,CAAC;QAElB,MAAM,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;QAErC,6BAA6B;QAC7B,IAAI,IAAI,GAAG,IAAI,KAAK,EAAE,CAAC;QACvB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YACtD,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,GAAG,GAAG,EAAE,KAAK,CAAC,CAAC;QACzC,CAAC;QAED,qBAAqB;QACrB,MAAM,cAAc,GAAG,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC;aAC/C,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAC;aAChD,IAAI,CAAC,GAAG,CAAC,CAAC;QAEb,2EAA2E;QAC3E,4EAA4E;QAC5E,wCAAwC;QACxC,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAC,YAAY,CAAC,CAAC;QAEjF,uCAAuC;QACvC,MAAM,UAAU,GAA2B;YACzC,cAAc,EAAE,kBAAkB;YAClC,CAAC,qBAAqB,CAAC,MAAM,CAAC,EAAE,UAAU;YAC1C,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,MAAM;YACzC,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,OAAO;YAC1C,CAAC,qBAAqB,CAAC,SAAS,CAAC,EAAE,OAAO,UAAU,EAAE,EAAE;YACxD,GAAG,OAAO;SACX,CAAC;QAEF,0BAA0B;QAC1B,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,UAAU,GAAG,gBAAgB,CAAC,KAAK,CAAC,CAAC;YAC3C,MAAM,CAAC,MAAM,CAAC,UAAU,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,mBAAmB;QACnB,IAAI,QAAQ,EAAE,CAAC;YACb,UAAU,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAC;QACvC,CAAC;QAED,iBAAiB;QACjB,IAAI,MAAM,EAAE,CAAC;YACX,UAAU,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC;QACnC,CAAC;QAED,qCAAqC;QACrC,MAAM,KAAK,GAAG;YACZ,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,GAAG,MAAM,IAAI,IAAI,EAAE;YAC7B,OAAO,EAAE,IAAI;YACb,cAAc;YACd,OAAO,EAAE,UAAU;YACnB,qBAAqB,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS;YACpF,cAAc,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;YAC3E,IAAI,EAAE,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS;YAC3D,eAAe,EAAE,KAAK;YACtB,cAAc,EAAE;gBACd,SAAS,EAAE,UAAU;gBACrB,KAAK,EAAE,UAAU;gBACjB,UAAU,EAAE,UAAU;gBACtB,YAAY,EAAE,UAAU;gBACxB,IAAI,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,mBAAmB,EAAE;gBACnG,SAAS,EAAE,UAAU,IAAI,CAAC,GAAG,EAAE,EAAE;gBACjC,QAAQ,EAAE,GAAG,MAAM,IAAI,IAAI,EAAE;gBAC7B,KAAK,EAAE,UAAU;gBACjB,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBAC9B,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;aACtB;SACF,CAAC;QAEF,MAAM,cAAc,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC;QAEtE,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC;YAC3B,YAAY;YACZ,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC;YAC9B,cAAc;SACf,CAAC,CAAC;QAEH,2CAA2C;QAC3C,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,OAAO;gBACL,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG;gBACpC,IAAI,EAAE,SAAc;gBACpB,OAAO,EAAE,EAAE;aACZ,CAAC;QACJ,CAAC;QAED,sBAAsB;QACtB,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG,EAAE,IAAI,EAAE,SAAc,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACrF,CAAC;QAED,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;YAC5C,MAAM,YAAY,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAE3E,OAAO;gBACL,UAAU,EAAE,QAAQ,CAAC,UAAU,IAAI,GAAG;gBACtC,IAAI,EAAE,YAAY,EAAE,IAAI,IAAI,YAAY;gBACxC,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,EAAE;aAChC,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;gBACL,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG;gBACpC,IAAI,EAAE,MAAM,CAAC,OAAuB;gBACpC,OAAO,EAAE,EAAE;aACZ,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,6BAA6B;AAC7B,8EAA8E;AAE9E;;GAEG;AACH,SAAS,UAAU;IACjB,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,MAAM,CAAC;AAC9C,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB;IACxB,OAAO,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,oBAAoB,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,MAAM,EAAE,CAAC;AACzG,CAAC;AAED;;;GAGG;AACH,IAAI,uBAAuB,GAAyB,IAAI,CAAC;AAEzD;;;GAGG;AACH,IAAI,eAAe,GAA0B,IAAI,CAAC;AAElD,SAAS,iBAAiB;IACxB,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,eAAe,GAAG,oBAAoB,CAAC;YACrC,gBAAgB,EAAE,CAAC;YACnB,cAAc,EAAE,MAAM;SACvB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,uBAAuB,CAAC,OAA8B;IACpE,eAAe,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,OAGzC;IACC,MAAM,MAAM,GAAG,OAAO,EAAE,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,WAAW,CAAC;IAE1G,+DAA+D;IAC/D,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAAC,CAAC;IAC/E,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAE5C,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE;QACtB,MAAM,OAAO,GAAG,IAAI,aAAa,CAAC;YAChC,YAAY,EAAE,MAAM,CAAC,YAAY;YACjC,cAAc,EAAE,MAAM,CAAC,cAAc;YACrC,OAAO,EAAE,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;SAClD,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAE5C,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO;YAC9B,CAAC,CAAC,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC;YAC5C,CAAC,CAAC,SAAS,CAAC;QAEd,OAAO;YACL,UAAU,EAAE,QAAQ,CAAC,UAAU;YAC/B,OAAO;SACR,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,SAAS,mBAAmB;IAC1B,OAAO,uBAAuB,EAAE,CAAC;AACnC,CAAC;AAED;;;GAGG;AACH,SAAS,eAAe,CAAC,YAAoB;IAC3C,MAAM,IAAI,GAAG,mBAAmB,EAAE,CAAC;IACnC,uDAAuD;IACvD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;IAC9E,KAAK,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,MAAM,EAAE,CAAC;QACpC,IAAI,YAAY,CAAC,UAAU,CAAC,GAAG,OAAO,GAAG,CAAC,EAAE,CAAC;YAC3C,OAAO,GAAG,CAAC;QACb,CAAC;IACH,CAAC;IACD,OAAO,iBAAiB,EAAE,CAAC;AAC7B,CAAC;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,UAAU,kBAAkB;IAEhC,OAAO,KAAK,EAAE,MAAM,EAAE,EAAE;QACtB,2EAA2E;QAC3E,MAAM,OAAO,GAAG,eAAe,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAErD,4EAA4E;QAC5E,IAAI,MAAW,CAAC;QAChB,IAAI,CAAC;YACH,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,GAAG,IAAI,CAAC;QAChB,CAAC;QAED,IAAI,SAAiB,CAAC;QACtB,IAAI,MAAc,CAAC;QACnB,IAAI,IAAwB,CAAC;QAC7B,IAAI,OAAO,GAA2B,EAAE,cAAc,EAAE,kBAAkB,EAAE,CAAC;QAE7E,8DAA8D;QAC9D,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,IAAI,MAAM,CAAC,cAAc,EAAE,IAAI,EAAE,CAAC;YACtE,wEAAwE;YACxE,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC;YACrD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,IAAI,GAAG,CAAC;YACnC,MAAM,EAAE,GAAG,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACpE,SAAS,GAAG,GAAG,OAAO,GAAG,IAAI,GAAG,EAAE,EAAE,CAAC;YACrC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YACnB,2BAA2B;YAC3B,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,OAAO,GAAG,EAAE,GAAG,OAAO,EAAE,GAAG,MAAM,CAAC,OAAO,EAAE,CAAC;YAC9C,CAAC;QACH,CAAC;aAAM,CAAC;YACN,oDAAoD;YACpD,yDAAyD;YACzD,MAAM,MAAM,GAAG,wBAAwB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC7D,SAAS,GAAG,GAAG,OAAO,gBAAgB,MAAM,EAAE,CAAC;YAC/C,MAAM,GAAG,MAAM,CAAC;YAChB,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC;QACxB,CAAC;QAED,4CAA4C;QAC5C,OAAO,IAAI,OAAO,CAA4C,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAChF,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,SAAS,CAAC,CAAC;YAC/B,MAAM,UAAU,GAAwB;gBACtC,QAAQ,EAAE,GAAG,CAAC,QAAQ;gBACtB,IAAI,EAAE,GAAG,CAAC,IAAI;gBACd,IAAI,EAAE,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,MAAM;gBAC/B,MAAM;gBACN,OAAO;aACR,CAAC;YAEF,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,GAAG,EAAE,EAAE;gBAC3C,MAAM,MAAM,GAAa,EAAE,CAAC;gBAC5B,GAAG,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtD,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,GAAG,EAAE;oBACjB,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBAE7D,IAAI,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,KAAK,EAAE,CAAC;wBACvC,oEAAoE;wBACpE,MAAM,eAAe,GAA2B,EAAE,CAAC;wBACnD,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;4BAChB,KAAK,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gCACjD,IAAI,OAAO,CAAC,KAAK,QAAQ;oCAAE,eAAe,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;4BACpD,CAAC;wBACH,CAAC;wBACD,OAAO,CAAC;4BACN,UAAU,EAAE,GAAG;4BACf,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC;gCACtB,UAAU,EAAE,GAAG,CAAC,UAAU;gCAC1B,OAAO,EAAE,eAAe;gCACxB,IAAI,EAAE,YAAY;6BACnB,CAAC;yBACH,CAAC,CAAC;oBACL,CAAC;yBAAM,CAAC;wBACN,+CAA+C;wBAC/C,OAAO,CAAC;4BACN,UAAU,EAAE,GAAG,CAAC,UAAU;4BAC1B,OAAO,EAAE,YAAY;yBACtB,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;YAEH,GAAG,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;gBACtB,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,GAAG,CAAC,OAAO,uCAAuC,CAAC,CAAC,CAAC;YAChG,CAAC,CAAC,CAAC;YAEH,IAAI,IAAI,EAAE,CAAC;gBACT,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClB,CAAC;YACD,GAAG,CAAC,GAAG,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,SAAS,wBAAwB,CAAC,QAAgB;IAChD,6CAA6C;IAC7C,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAC5C,IAAI,OAAO;QAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;IAE/B,2CAA2C;IAC3C,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;IAClC,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,MAAM,WAAW,GAAG,GAAG,MAAM,IAAI,KAAK,GAAG,CAAC;IAC1C,IAAI,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC;QACrC,OAAO,QAAQ,CAAC,KAAK,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;IAC5C,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,gBAAgB;IAC7B,IAAI,CAAC,uBAAuB,EAAE,CAAC;QAC7B,IAAI,UAAU,EAAE,EAAE,CAAC;YACjB,uBAAuB,GAAG,kBAAkB,EAAE,CAAC;QACjD,CAAC;aAAM,CAAC;YACN,uBAAuB,GAAG,MAAM,mBAAmB,EAAE,CAAC;QACxD,CAAC;IACH,CAAC;IACD,OAAO,uBAAuB,CAAC;AACjC,CAAC;AAED;;;;;;;;;GASG;AACH,IAAI,wBAA4C,CAAC;AACjD,IAAI,eAAiD,CAAC;AACtD,IAAI,gBAA8D,CAAC;AACnE,IAAI,uBAAkD,CAAC;AAEvD,SAAS,iBAAiB,CAAC,MAAc;IACvC,IAAI,MAAM,KAAK,wBAAwB,IAAI,CAAC,eAAe,EAAE,CAAC;QAC5D,eAAe,GAAG,2BAA2B,CAAC,MAAM,CAAC,CAAC;QACtD,wBAAwB,GAAG,MAAM,CAAC;QAClC,wEAAwE;QACxE,wEAAwE;QACxE,2CAA2C;QAC3C,gBAAgB,GAAG,SAAS,CAAC;QAC7B,uBAAuB,GAAG,SAAS,CAAC;IACtC,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,SAAS,YAAY,CACnB,aAA4B,EAC5B,QAA8B;IAE9B,IAAI,CAAC,gBAAgB,IAAI,aAAa,KAAK,uBAAuB,EAAE,CAAC;QACnE,gBAAgB,GAAG,aAAa,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,CAAC,CAAC;QACvE,uBAAuB,GAAG,aAAa,CAAC;IAC1C,CAAC;IACD,OAAO,gBAAgB,CAAC;AAC1B,CAAC;AAED;;;GAGG;AACH,SAAS,gBAAgB;IACvB,OAAO,OAAO,CAAC,GAAG,CAAC,oBAAoB;WAClC,OAAO,CAAC,GAAG,CAAC,gBAAgB;WAC5B,KAAK,CAAC;AACb,CAAC;AAED;;;GAGG;AACH,SAAS,QAAQ;IACf,OAAO,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,KAAK,CAAC;AAC5C,CAAC;AAwDD;;;GAGG;AACH,SAAS,uBAAuB,CAAC,OAA4C;IAC3E,IAAI,OAAO,EAAE,CAAC;QACZ,+EAA+E;QAC/E,OAAO,mBAAmB,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IACD,gEAAgE;IAChE,OAAO;QACL,OAAO,EAAE,UAAU,EAAE;QACrB,MAAM,EAAE,UAAU,EAAE;QACpB,OAAO,EAAE,EAAE;KACZ,CAAC;AACJ,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY,EAAE,OAAgB;IAChE,MAAM,MAAM,GAAG,OAAO,IAAI,gBAAgB,EAAE,CAAC;IAC7C,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IACzB,OAAO,GAAG,MAAM,IAAI,KAAK,OAAO,IAAI,EAAE,CAAC;AACzC,CAAC;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,MAAM,CAAC,KAAK,UAAU,MAAM,CAC1B,MAAqC,EACrC,OAA+C;IAE/C,oCAAoC;IACpC,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,aAAa,GAAG,MAAM,gBAAgB,EAAE,CAAC;QAC/C,MAAM,MAAM,GAAG,gBAAgB,EAAE,CAAC;QAClC,uEAAuE;QACvE,sEAAsE;QACtE,sEAAsE;QACtE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,SAAS,GAAG,YAAY,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;QACxD,MAAM,UAAU,GAAI,OAAyB,IAAI,EAAE,CAAC;QAEpD,0DAA0D;QAC1D,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YACtB,UAAU,CAAC,KAAK,GAAG,uBAAuB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACjE,CAAC;QAED,uEAAuE;QACvE,qEAAqE;QACrE,qEAAqE;QACrE,uEAAuE;QACvE,gEAAgE;QAEhE,MAAM,QAAQ,GAAG,GAAG,EAAE,CAAC,SAAS,CAAI,MAAM,EAAE,UAAU,CAAC,CAAC;QAExD,oDAAoD;QACpD,IAAI,UAAU,CAAC,QAAQ,EAAE,CAAC;YACxB,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC;YACtC,OAAO,iBAAiB,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,UAAU,CAAC,QAA2B,CAAC,CAAC;QAClG,CAAC;QAED,OAAO,QAAQ,EAAE,CAAC;IACpB,CAAC;IAED,gEAAgE;IAChE,MAAM,MAAM,GAAI,OAAiC,IAAI,EAAE,CAAC;IACxD,MAAM,EAAE,OAAO,GAAG,EAAE,EAAE,IAAI,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC;IAC/C,MAAM,aAAa,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAC/C,MAAM,YAAY,GAAG,mBAAmB,CAAC,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1E,MAAM,cAAc,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAEtE,iFAAiF;IACjF,IAAI,YAAY,GAAG,OAAO,CAAC;IAC3B,MAAM,WAAW,GAAG,uBAAuB,EAAE,CAAC;IAC9C,MAAM,UAAU,GAAG,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACjD,YAAY,GAAG;QACb,GAAG,CAAC,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;QAClF,OAAO,EAAE,kBAAkB,CAAC,UAAU,CAAC;KACxC,CAAC;IAEF,MAAM,QAAQ,GAAG,KAAK,IAA8B,EAAE;QACpD,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;YACjC,YAAY;YACZ,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;YACrC,cAAc;SACf,CAAC,CAAC;QAEH,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;YACrB,OAAO;gBACL,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG;gBACpC,IAAI,EAAE,SAAc;gBACpB,OAAO,EAAE,EAAE;aACZ,CAAC;QACJ,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG,EAAE,IAAI,EAAE,SAAc,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACrF,CAAC;QAED,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAM,CAAC;YAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACrE,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,OAAuB,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC;QACrG,CAAC;IACH,CAAC,CAAC;IAEF,oDAAoD;IACpD,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,OAAO,iBAAiB,EAAE,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,EAAE,MAAM,CAAC,QAA2B,CAAC,CAAC;IAC9F,CAAC;IAED,OAAO,QAAQ,EAAE,CAAC;AACpB,CAAC;AA0BD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,YAAoB,EACpB,UAAmB,EAAE,EACrB,UAA+B,EAAE;IAEjC,MAAM,EAAE,IAAI,GAAG,MAAM,EAAE,GAAG,OAAO,CAAC;IAClC,MAAM,aAAa,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAE/C,MAAM,cAAc,GAAG,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,iBAAiB,CAAC;IAEtE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;QACjC,YAAY;QACZ,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC;QAChC,cAAc;KACf,CAAC,CAAC;IAEH,IAAI,IAAI,KAAK,OAAO,EAAE,CAAC;QACrB,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG,EAAE,IAAI,EAAE,SAAc,EAAE,CAAC;IACxE,CAAC;IAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QACpB,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG,EAAE,IAAI,EAAE,SAAc,EAAE,CAAC;IACxE,CAAC;IAED,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAM,CAAC;QAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC;IACxD,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,CAAC,OAAuB,EAAE,CAAC;IACxF,CAAC;AACH,CAAC"}
|
package/dist/patterns/saga.d.ts
CHANGED
|
@@ -29,6 +29,7 @@
|
|
|
29
29
|
* ]);
|
|
30
30
|
* ```
|
|
31
31
|
*/
|
|
32
|
+
import { Logger } from '../logging/logger.js';
|
|
32
33
|
/**
|
|
33
34
|
* Saga step definition
|
|
34
35
|
*/
|
|
@@ -48,9 +49,16 @@ export interface SagaStep<TContext = Record<string, unknown>> {
|
|
|
48
49
|
* If true, this step runs fire-and-forget: the saga does NOT wait
|
|
49
50
|
* for it to complete and moves to the next step immediately.
|
|
50
51
|
* The step's return value is NOT merged into the context.
|
|
51
|
-
* Compensation is NOT called for async steps (they may not have finished).
|
|
52
52
|
*
|
|
53
53
|
* Use cases: sending notifications, triggering analytics, audit logging.
|
|
54
|
+
*
|
|
55
|
+
* When an async step eventually rejects, the saga forwards the error to
|
|
56
|
+
* {@link SagaOptions.onAsyncError} so you can surface it on a DLQ / metric
|
|
57
|
+
* instead of silently swallowing it in a log line.
|
|
58
|
+
*
|
|
59
|
+
* If you don't want a compensation to run for a fire-and-forget step on
|
|
60
|
+
* later saga failure, simply don't define `compensate` — the saga only
|
|
61
|
+
* calls compensations that exist.
|
|
54
62
|
*/
|
|
55
63
|
async?: boolean;
|
|
56
64
|
}
|
|
@@ -216,12 +224,45 @@ export interface SagaOptions<TContext = Record<string, unknown>> {
|
|
|
216
224
|
store?: SagaStore;
|
|
217
225
|
/** Trace ID for distributed tracing (propagated to all step logs) */
|
|
218
226
|
traceId?: string;
|
|
227
|
+
/**
|
|
228
|
+
* Optional structured logger. Defaults to a child of the framework logger
|
|
229
|
+
* scoped with `{ component: 'saga', saga: name }`. Pass your request logger
|
|
230
|
+
* (e.g. from `ctx.logger`) to correlate saga logs with the originating request.
|
|
231
|
+
*/
|
|
232
|
+
logger?: Logger;
|
|
219
233
|
/** Called when a step completes successfully */
|
|
220
234
|
onStepComplete?: (event: SagaStepEvent<TContext>) => void;
|
|
221
235
|
/** Called when a step compensation begins */
|
|
222
236
|
onCompensating?: (event: SagaCompensateEvent<TContext>) => void;
|
|
223
237
|
/** Called when the saga fails (after compensation attempt) */
|
|
224
238
|
onFailed?: (event: SagaFailedEvent<TContext>) => void;
|
|
239
|
+
/**
|
|
240
|
+
* Called when a fire-and-forget (async) step rejects AFTER the saga has
|
|
241
|
+
* already moved on. Without this hook, async failures would disappear into
|
|
242
|
+
* a log line — use it to forward the error to a metric, DLQ, or alert so
|
|
243
|
+
* operators notice that notifications/analytics side-effects silently broke.
|
|
244
|
+
*
|
|
245
|
+
* @param event - Typed payload with the step name, saga ID/name, and the
|
|
246
|
+
* captured Error object.
|
|
247
|
+
*/
|
|
248
|
+
onAsyncError?: (event: SagaAsyncErrorEvent) => void;
|
|
249
|
+
}
|
|
250
|
+
/**
|
|
251
|
+
* Event passed to onAsyncError when a fire-and-forget step rejects.
|
|
252
|
+
*/
|
|
253
|
+
export interface SagaAsyncErrorEvent {
|
|
254
|
+
/** The async step that failed */
|
|
255
|
+
name: string;
|
|
256
|
+
/** Whether the step was part of a parallel group */
|
|
257
|
+
inParallelGroup: boolean;
|
|
258
|
+
/** The captured error */
|
|
259
|
+
error: Error;
|
|
260
|
+
/** Saga execution ID */
|
|
261
|
+
sagaId: string;
|
|
262
|
+
/** Saga name */
|
|
263
|
+
sagaName: string;
|
|
264
|
+
/** Trace ID, if set */
|
|
265
|
+
traceId?: string;
|
|
225
266
|
}
|
|
226
267
|
/**
|
|
227
268
|
* Options for saga.run()
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"saga.d.ts","sourceRoot":"","sources":["../../src/patterns/saga.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;
|
|
1
|
+
{"version":3,"file":"saga.d.ts","sourceRoot":"","sources":["../../src/patterns/saga.ts"],"names":[],"mappings":"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"}
|
package/dist/patterns/saga.js
CHANGED
|
@@ -29,7 +29,9 @@
|
|
|
29
29
|
* ]);
|
|
30
30
|
* ```
|
|
31
31
|
*/
|
|
32
|
+
import { randomUUID } from 'node:crypto';
|
|
32
33
|
import { generateId } from '../logging/tracing.js';
|
|
34
|
+
import { createLogger } from '../logging/logger.js';
|
|
33
35
|
/**
|
|
34
36
|
* Helper to create a parallel step group.
|
|
35
37
|
*
|
|
@@ -121,32 +123,62 @@ function isParallelGroup(entry) {
|
|
|
121
123
|
* ```
|
|
122
124
|
*/
|
|
123
125
|
export function saga(name, steps, options = {}) {
|
|
124
|
-
const { store, traceId: defaultTraceId, onStepComplete, onCompensating, onFailed } = options;
|
|
126
|
+
const { store, traceId: defaultTraceId, onStepComplete, onCompensating, onFailed, onAsyncError } = options;
|
|
127
|
+
// Structured logger scoped to this saga. Accepts an injected logger for
|
|
128
|
+
// correlation with the originating request; otherwise creates a framework-
|
|
129
|
+
// default one. All events log at `info` (step boundaries) or `error` (failures).
|
|
130
|
+
const sagaLogger = (options.logger ?? createLogger()).child({
|
|
131
|
+
component: 'saga',
|
|
132
|
+
saga: name,
|
|
133
|
+
});
|
|
125
134
|
/** Flatten a step entry into its individual steps (for compensation tracking) */
|
|
126
135
|
function flattenEntry(entry) {
|
|
127
136
|
return isParallelGroup(entry) ? entry.steps : [entry];
|
|
128
137
|
}
|
|
129
|
-
/** Build a log
|
|
130
|
-
function
|
|
131
|
-
return tid ?
|
|
138
|
+
/** Build a log-context object. traceId is threaded into every saga log line. */
|
|
139
|
+
function logCtx(tid, extra) {
|
|
140
|
+
return { ...(tid ? { traceId: tid } : {}), ...extra };
|
|
132
141
|
}
|
|
133
142
|
/**
|
|
134
143
|
* Execute a single step entry (sequential step or parallel group).
|
|
135
144
|
* Returns the updated context and per-step results.
|
|
136
145
|
*/
|
|
137
|
-
async function executeEntry(entry, context, stepResults, tid) {
|
|
146
|
+
async function executeEntry(entry, context, stepResults, tid, sagaId) {
|
|
138
147
|
if (isParallelGroup(entry)) {
|
|
139
148
|
// Execute all steps in the group concurrently
|
|
140
149
|
const results = await Promise.all(entry.steps.map(async (step) => {
|
|
141
150
|
if (step.async) {
|
|
142
|
-
|
|
151
|
+
sagaLogger.info('firing async parallel step', logCtx(tid, { step: step.name }));
|
|
143
152
|
step.execute(context).catch((err) => {
|
|
144
|
-
|
|
153
|
+
const error = err instanceof Error ? err : new Error(String(err));
|
|
154
|
+
sagaLogger.error('async parallel step failed (ignored)', logCtx(tid, {
|
|
155
|
+
step: step.name,
|
|
156
|
+
error: error.message,
|
|
157
|
+
}));
|
|
158
|
+
// Typed hook so operators can forward async failures to a DLQ /
|
|
159
|
+
// metric. onAsyncError is best-effort: if the hook itself throws
|
|
160
|
+
// we log and move on rather than crash the async chain.
|
|
161
|
+
try {
|
|
162
|
+
onAsyncError?.({
|
|
163
|
+
name: step.name,
|
|
164
|
+
inParallelGroup: true,
|
|
165
|
+
error,
|
|
166
|
+
sagaId,
|
|
167
|
+
sagaName: name,
|
|
168
|
+
traceId: tid,
|
|
169
|
+
});
|
|
170
|
+
}
|
|
171
|
+
catch (hookErr) {
|
|
172
|
+
sagaLogger.error('onAsyncError hook threw', logCtx(tid, {
|
|
173
|
+
step: step.name,
|
|
174
|
+
error: hookErr instanceof Error ? hookErr.message : String(hookErr),
|
|
175
|
+
}));
|
|
176
|
+
}
|
|
145
177
|
});
|
|
146
178
|
stepResults[step.name] = { name: step.name, output: context, async: true };
|
|
147
179
|
return context;
|
|
148
180
|
}
|
|
149
|
-
|
|
181
|
+
sagaLogger.info('executing parallel step', logCtx(tid, { step: step.name }));
|
|
150
182
|
const output = await step.execute(context);
|
|
151
183
|
stepResults[step.name] = { name: step.name, output, async: false };
|
|
152
184
|
return output;
|
|
@@ -160,15 +192,35 @@ export function saga(name, steps, options = {}) {
|
|
|
160
192
|
}
|
|
161
193
|
// Async (fire-and-forget) step
|
|
162
194
|
if (entry.async) {
|
|
163
|
-
|
|
195
|
+
sagaLogger.info('firing async step', logCtx(tid, { step: entry.name }));
|
|
164
196
|
entry.execute(context).catch((err) => {
|
|
165
|
-
|
|
197
|
+
const error = err instanceof Error ? err : new Error(String(err));
|
|
198
|
+
sagaLogger.error('async step failed (ignored)', logCtx(tid, {
|
|
199
|
+
step: entry.name,
|
|
200
|
+
error: error.message,
|
|
201
|
+
}));
|
|
202
|
+
try {
|
|
203
|
+
onAsyncError?.({
|
|
204
|
+
name: entry.name,
|
|
205
|
+
inParallelGroup: false,
|
|
206
|
+
error,
|
|
207
|
+
sagaId,
|
|
208
|
+
sagaName: name,
|
|
209
|
+
traceId: tid,
|
|
210
|
+
});
|
|
211
|
+
}
|
|
212
|
+
catch (hookErr) {
|
|
213
|
+
sagaLogger.error('onAsyncError hook threw', logCtx(tid, {
|
|
214
|
+
step: entry.name,
|
|
215
|
+
error: hookErr instanceof Error ? hookErr.message : String(hookErr),
|
|
216
|
+
}));
|
|
217
|
+
}
|
|
166
218
|
});
|
|
167
219
|
stepResults[entry.name] = { name: entry.name, output: context, async: true };
|
|
168
220
|
return context;
|
|
169
221
|
}
|
|
170
222
|
// Sequential step
|
|
171
|
-
|
|
223
|
+
sagaLogger.info('executing step', logCtx(tid, { step: entry.name }));
|
|
172
224
|
const output = await entry.execute(context);
|
|
173
225
|
stepResults[entry.name] = { name: entry.name, output, async: false };
|
|
174
226
|
return output;
|
|
@@ -189,7 +241,7 @@ export function saga(name, steps, options = {}) {
|
|
|
189
241
|
name: s.name, index: i, context, reason,
|
|
190
242
|
sagaId: record.id, sagaName: name,
|
|
191
243
|
});
|
|
192
|
-
|
|
244
|
+
sagaLogger.info('compensating parallel step', logCtx(tid, { step: s.name }));
|
|
193
245
|
return s.compensate(context);
|
|
194
246
|
});
|
|
195
247
|
await Promise.all(subCompensations);
|
|
@@ -199,7 +251,7 @@ export function saga(name, steps, options = {}) {
|
|
|
199
251
|
name: entry.name, index: i, context, reason,
|
|
200
252
|
sagaId: record.id, sagaName: name,
|
|
201
253
|
});
|
|
202
|
-
|
|
254
|
+
sagaLogger.info('compensating step', logCtx(tid, { step: entry.name }));
|
|
203
255
|
await entry.compensate(context);
|
|
204
256
|
}
|
|
205
257
|
}
|
|
@@ -217,7 +269,10 @@ export function saga(name, steps, options = {}) {
|
|
|
217
269
|
const tid = runOptions.traceId
|
|
218
270
|
|| defaultTraceId
|
|
219
271
|
|| generateId();
|
|
220
|
-
|
|
272
|
+
// Cryptographically strong saga ID — critical because the ID is used as
|
|
273
|
+
// the DynamoDB conditional-write key for idempotent resume; a collision
|
|
274
|
+
// would silently merge two distinct sagas.
|
|
275
|
+
const id = runOptions.id || `saga-${randomUUID()}`;
|
|
221
276
|
// Check if this saga was previously attempted (resume support)
|
|
222
277
|
let existingRecord = null;
|
|
223
278
|
if (store) {
|
|
@@ -250,7 +305,7 @@ export function saga(name, steps, options = {}) {
|
|
|
250
305
|
await store.save(record);
|
|
251
306
|
}
|
|
252
307
|
}
|
|
253
|
-
|
|
308
|
+
sagaLogger.info('started', logCtx(tid, { sagaId: id, attempt: record.attempts, resumed: isResume }));
|
|
254
309
|
let context = record.context;
|
|
255
310
|
// Track which entries were completed (for compensation on failure)
|
|
256
311
|
const completedEntries = [];
|
|
@@ -265,7 +320,10 @@ export function saga(name, steps, options = {}) {
|
|
|
265
320
|
// Idempotent resume: skip entries whose steps are all already completed
|
|
266
321
|
const allCompleted = entryStepNames.every((n) => record.completedSteps.includes(n));
|
|
267
322
|
if (isResume && allCompleted) {
|
|
268
|
-
|
|
323
|
+
sagaLogger.info('skipping completed entry', logCtx(tid, {
|
|
324
|
+
sagaId: id,
|
|
325
|
+
entry: entry.name,
|
|
326
|
+
}));
|
|
269
327
|
completedEntries.push({ entry, completedSubSteps: entryStepNames });
|
|
270
328
|
continue;
|
|
271
329
|
}
|
|
@@ -273,7 +331,7 @@ export function saga(name, steps, options = {}) {
|
|
|
273
331
|
await store.update(id, { currentStep: i, status: 'running' });
|
|
274
332
|
}
|
|
275
333
|
const stepStart = Date.now();
|
|
276
|
-
context = await executeEntry(entry, context, stepResults, tid);
|
|
334
|
+
context = await executeEntry(entry, context, stepResults, tid, id);
|
|
277
335
|
const stepDurationMs = Date.now() - stepStart;
|
|
278
336
|
// Track completion
|
|
279
337
|
for (const sn of entryStepNames) {
|
|
@@ -310,12 +368,12 @@ export function saga(name, steps, options = {}) {
|
|
|
310
368
|
if (store) {
|
|
311
369
|
await store.update(id, { status: 'completed', completedAt: record.completedAt });
|
|
312
370
|
}
|
|
313
|
-
|
|
371
|
+
sagaLogger.info('completed', logCtx(tid, { sagaId: id }));
|
|
314
372
|
return { success: true, context, record, steps: stepResults };
|
|
315
373
|
}
|
|
316
374
|
catch (executeError) {
|
|
317
375
|
const error = executeError instanceof Error ? executeError : new Error(String(executeError));
|
|
318
|
-
|
|
376
|
+
sagaLogger.error('step failed', logCtx(tid, { sagaId: id, error: error.message }));
|
|
319
377
|
record.status = 'compensating';
|
|
320
378
|
record.error = error.message;
|
|
321
379
|
if (store) {
|
|
@@ -338,7 +396,7 @@ export function saga(name, steps, options = {}) {
|
|
|
338
396
|
await store.update(id, { status: 'failed', error: record.error });
|
|
339
397
|
}
|
|
340
398
|
}
|
|
341
|
-
|
|
399
|
+
sagaLogger.error(record.status, logCtx(tid, { sagaId: id }));
|
|
342
400
|
onFailed?.({
|
|
343
401
|
error, record, context,
|
|
344
402
|
failedStep: steps[record.currentStep]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"saga.js","sourceRoot":"","sources":["../../src/patterns/saga.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"saga.js","sourceRoot":"","sources":["../../src/patterns/saga.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAU,YAAY,EAAE,MAAM,sBAAsB,CAAC;AA2D5D;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,QAAQ,CACtB,IAAY,EACZ,KAA2B;IAE3B,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC;AAC3C,CAAC;AAED,kDAAkD;AAClD,SAAS,eAAe,CAAI,KAAuB;IACjD,OAAQ,KAA8B,CAAC,IAAI,KAAK,UAAU,CAAC;AAC7D,CAAC;AAiMD,8EAA8E;AAC9E,oBAAoB;AACpB,8EAA8E;AAE9E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiEG;AACH,MAAM,UAAU,IAAI,CAClB,IAAY,EACZ,KAAgC,EAChC,UAAiC,EAAE;IAEnC,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,OAAO,CAAC;IAE3G,wEAAwE;IACxE,2EAA2E;IAC3E,iFAAiF;IACjF,MAAM,UAAU,GAAW,CAAC,OAAO,CAAC,MAAM,IAAI,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC;QAClE,SAAS,EAAE,MAAM;QACjB,IAAI,EAAE,IAAI;KACX,CAAC,CAAC;IAEH,iFAAiF;IACjF,SAAS,YAAY,CAAC,KAA8B;QAClD,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;IAED,gFAAgF;IAChF,SAAS,MAAM,CAAC,GAAuB,EAAE,KAA+B;QACtE,OAAO,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;IACxD,CAAC;IAED;;;OAGG;IACH,KAAK,UAAU,YAAY,CACzB,KAA8B,EAC9B,OAAiB,EACjB,WAAiD,EACjD,GAAuB,EACvB,MAAc;QAEd,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;YAC3B,8CAA8C;YAC9C,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,GAAG,CAC/B,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;gBAC7B,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACf,UAAU,CAAC,IAAI,CAAC,4BAA4B,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBAChF,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;wBAClC,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;wBAClE,UAAU,CAAC,KAAK,CAAC,sCAAsC,EAAE,MAAM,CAAC,GAAG,EAAE;4BACnE,IAAI,EAAE,IAAI,CAAC,IAAI;4BACf,KAAK,EAAE,KAAK,CAAC,OAAO;yBACrB,CAAC,CAAC,CAAC;wBACJ,gEAAgE;wBAChE,iEAAiE;wBACjE,wDAAwD;wBACxD,IAAI,CAAC;4BACH,YAAY,EAAE,CAAC;gCACb,IAAI,EAAE,IAAI,CAAC,IAAI;gCACf,eAAe,EAAE,IAAI;gCACrB,KAAK;gCACL,MAAM;gCACN,QAAQ,EAAE,IAAI;gCACd,OAAO,EAAE,GAAG;6BACb,CAAC,CAAC;wBACL,CAAC;wBAAC,OAAO,OAAO,EAAE,CAAC;4BACjB,UAAU,CAAC,KAAK,CAAC,yBAAyB,EAAE,MAAM,CAAC,GAAG,EAAE;gCACtD,IAAI,EAAE,IAAI,CAAC,IAAI;gCACf,KAAK,EAAE,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;6BACpE,CAAC,CAAC,CAAC;wBACN,CAAC;oBACH,CAAC,CAAC,CAAC;oBACH,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;oBAC3E,OAAO,OAAO,CAAC;gBACjB,CAAC;gBACD,UAAU,CAAC,IAAI,CAAC,yBAAyB,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBAC7E,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;gBAC3C,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;gBACnE,OAAO,MAAM,CAAC;YAChB,CAAC,CAAC,CACH,CAAC;YACF,mDAAmD;YACnD,IAAI,MAAM,GAAG,EAAE,GAAG,OAAO,EAAE,CAAC;YAC5B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,MAAM,GAAG,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE,CAAC;YACpC,CAAC;YACD,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,+BAA+B;QAC/B,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,UAAU,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YACxE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACnC,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;gBAClE,UAAU,CAAC,KAAK,CAAC,6BAA6B,EAAE,MAAM,CAAC,GAAG,EAAE;oBAC1D,IAAI,EAAE,KAAK,CAAC,IAAI;oBAChB,KAAK,EAAE,KAAK,CAAC,OAAO;iBACrB,CAAC,CAAC,CAAC;gBACJ,IAAI,CAAC;oBACH,YAAY,EAAE,CAAC;wBACb,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,eAAe,EAAE,KAAK;wBACtB,KAAK;wBACL,MAAM;wBACN,QAAQ,EAAE,IAAI;wBACd,OAAO,EAAE,GAAG;qBACb,CAAC,CAAC;gBACL,CAAC;gBAAC,OAAO,OAAO,EAAE,CAAC;oBACjB,UAAU,CAAC,KAAK,CAAC,yBAAyB,EAAE,MAAM,CAAC,GAAG,EAAE;wBACtD,IAAI,EAAE,KAAK,CAAC,IAAI;wBAChB,KAAK,EAAE,OAAO,YAAY,KAAK,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC;qBACpE,CAAC,CAAC,CAAC;gBACN,CAAC;YACH,CAAC,CAAC,CAAC;YACH,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;YAC7E,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,kBAAkB;QAClB,UAAU,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;QACrE,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC5C,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;QACrE,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,KAAK,UAAU,iBAAiB,CAC9B,gBAAmF,EACnF,OAAiB,EACjB,MAA4B,EAC5B,MAAa,EACb,GAAY;QAEZ,KAAK,IAAI,CAAC,GAAG,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YACtD,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAAC;YAEzD,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3B,8CAA8C;gBAC9C,MAAM,gBAAgB,GAAG,KAAK,CAAC,KAAK;qBACjC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC;qBACjE,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;oBACf,cAAc,EAAE,CAAC;wBACf,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM;wBACvC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI;qBAClC,CAAC,CAAC;oBACH,UAAU,CAAC,IAAI,CAAC,4BAA4B,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;oBAC7E,OAAO,CAAC,CAAC,UAAW,CAAC,OAAO,CAAC,CAAC;gBAChC,CAAC,CAAC,CAAC;gBACL,MAAM,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;YACtC,CAAC;iBAAM,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;gBAC5B,cAAc,EAAE,CAAC;oBACf,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,MAAM;oBAC3C,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI;iBAClC,CAAC,CAAC;gBACH,UAAU,CAAC,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;gBACxE,MAAM,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,IAAI;QACJ,KAAK;QAEL;;;;;WAKG;QACH,KAAK,CAAC,GAAG,CACP,cAAwB,EACxB,aAA6B,EAAE;YAE/B,MAAM,GAAG,GAAG,UAAU,CAAC,OAAO;mBACzB,cAAc;mBACd,UAAU,EAAE,CAAC;YAClB,wEAAwE;YACxE,wEAAwE;YACxE,2CAA2C;YAC3C,MAAM,EAAE,GAAG,UAAU,CAAC,EAAE,IAAI,QAAQ,UAAU,EAAE,EAAE,CAAC;YAEnD,+DAA+D;YAC/D,IAAI,cAAc,GAAsB,IAAI,CAAC;YAC7C,IAAI,KAAK,EAAE,CAAC;gBACV,cAAc,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACvC,CAAC;YAED,MAAM,QAAQ,GAAG,cAAc,KAAK,IAAI;mBACnC,CAAC,cAAc,CAAC,MAAM,KAAK,QAAQ,IAAI,cAAc,CAAC,MAAM,KAAK,aAAa,CAAC,CAAC;YAErF,MAAM,MAAM,GAAyB;gBACnC,EAAE;gBACF,IAAI;gBACJ,MAAM,EAAE,SAAS;gBACjB,WAAW,EAAE,CAAC;gBACd,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAE,cAAe,CAAC,OAAoB,CAAC,CAAC,CAAC,cAAc;gBAC1E,cAAc,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,GAAG,cAAe,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,EAAE;gBACnE,OAAO,EAAE,GAAG;gBACZ,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC,cAAe,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE;gBAC5D,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,cAAe,CAAC,QAAQ,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAC7D,CAAC;YAEF,IAAI,KAAK,EAAE,CAAC;gBACV,IAAI,QAAQ,EAAE,CAAC;oBACb,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE;wBACrB,MAAM,EAAE,SAAS;wBACjB,KAAK,EAAE,SAAS;wBAChB,WAAW,EAAE,SAAS;wBACtB,OAAO,EAAE,GAAG;wBACZ,QAAQ,EAAE,MAAM,CAAC,QAAQ;qBAC1B,CAAC,CAAC;gBACL,CAAC;qBAAM,CAAC;oBACN,MAAM,KAAK,CAAC,IAAI,CAAC,MAAoB,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC;YAED,UAAU,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,CAAC;YAErG,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;YAC7B,mEAAmE;YACnE,MAAM,gBAAgB,GAAsE,EAAE,CAAC;YAC/F,uBAAuB;YACvB,MAAM,WAAW,GAAyC,EAAE,CAAC;YAE7D,IAAI,CAAC;gBACH,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBACtC,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;oBACvB,MAAM,UAAU,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;oBACvC,MAAM,cAAc,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;oBACrD,MAAM,CAAC,WAAW,GAAG,CAAC,CAAC;oBAEvB,wEAAwE;oBACxE,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpF,IAAI,QAAQ,IAAI,YAAY,EAAE,CAAC;wBAC7B,UAAU,CAAC,IAAI,CAAC,0BAA0B,EAAE,MAAM,CAAC,GAAG,EAAE;4BACtD,MAAM,EAAE,EAAE;4BACV,KAAK,EAAE,KAAK,CAAC,IAAI;yBAClB,CAAC,CAAC,CAAC;wBACJ,gBAAgB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,CAAC,CAAC;wBACpE,SAAS;oBACX,CAAC;oBAED,IAAI,KAAK,EAAE,CAAC;wBACV,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;oBAChE,CAAC;oBAED,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAC7B,OAAO,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;oBACnE,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;oBAE9C,mBAAmB;oBACnB,KAAK,MAAM,EAAE,IAAI,cAAc,EAAE,CAAC;wBAChC,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;4BACxC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;wBACjC,CAAC;oBACH,CAAC;oBACD,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;oBACzB,gBAAgB,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,CAAC,CAAC;oBAEpE,IAAI,eAAe,CAAC,KAAK,CAAC,EAAE,CAAC;wBAC3B,KAAK,MAAM,CAAC,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;4BAC5B,cAAc,EAAE,CAAC;gCACf,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc;gCAC3D,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI;6BACpD,CAAC,CAAC;wBACL,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,cAAc,EAAE,CAAC;4BACf,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,UAAU,EAAE,cAAc;4BAC/D,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI;yBACxD,CAAC,CAAC;oBACL,CAAC;oBAED,IAAI,KAAK,EAAE,CAAC;wBACV,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE;4BACrB,cAAc,EAAE,MAAM,CAAC,cAAc;4BACrC,OAAO,EAAE,OAAkC;yBAC5C,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;gBAED,sBAAsB;gBACtB,MAAM,CAAC,MAAM,GAAG,WAAW,CAAC;gBAC5B,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;gBAEhC,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;gBACnF,CAAC;gBAED,UAAU,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC1D,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;YAChE,CAAC;YAAC,OAAO,YAAY,EAAE,CAAC;gBACtB,MAAM,KAAK,GAAG,YAAY,YAAY,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC;gBAC7F,UAAU,CAAC,KAAK,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;gBAEnF,MAAM,CAAC,MAAM,GAAG,cAAc,CAAC;gBAC/B,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;gBAE7B,IAAI,KAAK,EAAE,CAAC;oBACV,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC3E,CAAC;gBAED,0CAA0C;gBAC1C,IAAI,CAAC;oBACH,MAAM,iBAAiB,CAAC,gBAAgB,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;oBAEvE,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC;oBAC9B,MAAM,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;oBAEhC,IAAI,KAAK,EAAE,CAAC;wBACV,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC;oBACrF,CAAC;gBACH,CAAC;gBAAC,OAAO,eAAe,EAAE,CAAC;oBACzB,MAAM,OAAO,GAAG,eAAe,YAAY,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC;oBACxG,MAAM,CAAC,MAAM,GAAG,QAAQ,CAAC;oBACzB,MAAM,CAAC,KAAK,GAAG,wBAAwB,OAAO,CAAC,OAAO,eAAe,KAAK,CAAC,OAAO,GAAG,CAAC;oBAEtF,IAAI,KAAK,EAAE,CAAC;wBACV,MAAM,KAAK,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;oBACpE,CAAC;gBACH,CAAC;gBAED,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;gBAC7D,QAAQ,EAAE,CAAC;oBACT,KAAK,EAAE,MAAM,EAAE,OAAO;oBACtB,UAAU,EAAE,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC;wBACnC,CAAC,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAE,KAAK,CAAC,MAAM,CAAC,WAAW,CAAiC,CAAC,IAAI,CAAC,CAAC,CAAE,KAAK,CAAC,MAAM,CAAC,WAAW,CAAwB,CAAC,IAAI,CAAC;wBACzK,CAAC,CAAC,SAAS;oBACb,UAAU,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS;iBAC1C,CAAC,CAAC;gBACH,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;YACjE,CAAC;QACH,CAAC;QAED;;;;;;;WAOG;QACH,KAAK,CAAC,MAAM,CACV,MAAc,EACd,aAAyC,EAAE;YAE3C,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,mEAAmE,CAAC,CAAC;YACvF,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,CAAC,QAAQ,EAAE,CAAC;gBACd,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,qBAAqB,CAAC,CAAC;YACvD,CAAC;YAED,IAAI,QAAQ,CAAC,MAAM,KAAK,QAAQ,IAAI,QAAQ,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;gBACtE,MAAM,IAAI,KAAK,CAAC,QAAQ,MAAM,WAAW,QAAQ,CAAC,MAAM,qFAAqF,CAAC,CAAC;YACjJ,CAAC;YAED,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,OAAmB,EAAE;gBAC5C,EAAE,EAAE,MAAM;gBACV,OAAO,EAAE,UAAU,CAAC,OAAO;aAC5B,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAED,8EAA8E;AAC9E,uCAAuC;AACvC,8EAA8E;AAE9E;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB;IACnC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAsB,CAAC;IAE9C,OAAO;QACL,KAAK,CAAC,IAAI,CAAC,MAAkB;YAC3B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,EAAE,CAAC,CAAC;QACxC,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,OAA4B;YACnD,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACjC,IAAI,QAAQ,EAAE,CAAC;gBACb,OAAO,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,GAAG,QAAQ,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC;YAC/C,CAAC;QACH,CAAC;QAED,KAAK,CAAC,GAAG,CAAC,EAAU;YAClB,OAAO,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC;QACjC,CAAC;KACF,CAAC;AACJ,CAAC;AAkBD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,UAAoC,EAAE;IAEtC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS;WAC9B,OAAO,CAAC,GAAG,CAAC,kBAAkB;WAC9B,kBAAkB,CAAC;IACxB,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,MAAM,CAAC,CAAC,SAAS;IAC1D,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,IAAI,OAAO,CAAC,GAAG,CAAC,kBAAkB,IAAI,WAAW,CAAC;IAEzG,MAAM,EAAE,cAAc,EAAE,cAAc,EAAE,iBAAiB,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,0BAA0B,CAAC,CAAC;IACvH,MAAM,MAAM,GAAG,IAAI,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAE9C,SAAS,SAAS,CAAC,MAAkB;QACnC,MAAM,GAAG,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,UAAU,CAAC;QACtD,OAAO;YACL,EAAE,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE;YACpB,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,EAAE;YACxB,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;YAC5B,WAAW,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;YAC9C,OAAO,EAAE,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE;YAC9C,cAAc,EAAE,EAAE,EAAE,EAAE,MAAM,CAAC,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE;YAChG,SAAS,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;YAC1C,QAAQ,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC,EAAE;YAC7C,GAAG,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE;YACvB,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAClF,CAAC;IACJ,CAAC;IAED,SAAS,WAAW,CAAC,IAAyB;QAC5C,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,EAAE,EAAE;YAC5C,CAAC,CAAE,IAAI,CAAC,cAAc,CAAC,EAAe,CAAC,MAAM,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,KAAK,WAAW,CAAC;YAC/E,CAAC,CAAC,EAAE,CAAC;QACP,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAE;YACd,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAE;YAClB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAgB;YACpC,WAAW,EAAE,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAE,EAAE,EAAE,CAAC;YAC9C,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAE,CAAC;YACpC,cAAc;YACd,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,CAAE,EAAE,EAAE,CAAC;YAC1C,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC,IAAI,GAAG,EAAE,EAAE,CAAC;YAC/C,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;YACpB,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;YACxB,WAAW,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;SAChF,CAAC;IACJ,CAAC;IAED,OAAO;QACL,KAAK,CAAC,IAAI,CAAC,MAAkB;YAC3B,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC;gBACnC,SAAS,EAAE,SAAS;gBACpB,IAAI,EAAE,SAAS,CAAC,MAAM,CAAC;aACxB,CAAC,CAAC,CAAC;QACN,CAAC;QAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,OAA4B;YACnD,MAAM,eAAe,GAAa,EAAE,CAAC;YACrC,MAAM,KAAK,GAA2B,EAAE,CAAC;YACzC,MAAM,MAAM,GAAwB,EAAE,CAAC;YACvC,IAAI,OAAO,GAAG,CAAC,CAAC;YAEhB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;gBACnD,IAAI,KAAK,KAAK,SAAS;oBAAE,SAAS;gBAClC,OAAO,EAAE,CAAC;gBACV,MAAM,QAAQ,GAAG,KAAK,OAAO,EAAE,CAAC;gBAChC,MAAM,SAAS,GAAG,KAAK,OAAO,EAAE,CAAC;gBACjC,KAAK,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC;gBAEtB,IAAI,GAAG,KAAK,gBAAgB,EAAE,CAAC;oBAC7B,MAAM,GAAG,GAAG,KAAiB,CAAC;oBAC9B,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,EAAE,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC;gBACnE,CAAC;qBAAM,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;oBAC7B,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnD,CAAC;qBAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;oBACrC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3C,CAAC;qBAAM,CAAC;oBACN,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC3C,CAAC;gBAED,eAAe,CAAC,IAAI,CAAC,GAAG,QAAQ,MAAM,SAAS,EAAE,CAAC,CAAC;YACrD,CAAC;YAED,4BAA4B;YAC5B,OAAO,EAAE,CAAC;YACV,KAAK,CAAC,KAAK,OAAO,EAAE,CAAC,GAAG,KAAK,CAAC;YAC9B,MAAM,CAAC,KAAK,OAAO,EAAE,CAAC,GAAG,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,GAAG,UAAU,CAAC,EAAE,CAAC;YAClF,eAAe,CAAC,IAAI,CAAC,KAAK,OAAO,QAAQ,OAAO,EAAE,CAAC,CAAC;YAEpD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO;YAEzC,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,iBAAiB,CAAC;gBACtC,SAAS,EAAE,SAAS;gBACpB,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;gBACtB,gBAAgB,EAAE,OAAO,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;gBACrD,wBAAwB,EAAE,KAAK;gBAC/B,yBAAyB,EAAE,MAAM;aAClC,CAAC,CAAC,CAAC;QACN,CAAC;QAED,KAAK,CAAC,GAAG,CAAC,EAAU;YAClB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,cAAc,CAAC;gBAClD,SAAS,EAAE,SAAS;gBACpB,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE;aACvB,CAAC,CAAC,CAAC;YAEJ,IAAI,CAAC,MAAM,CAAC,IAAI;gBAAE,OAAO,IAAI,CAAC;YAC9B,OAAO,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAClC,CAAC;KACF,CAAC;AACJ,CAAC;AAkBD;;;;;;;;;;;;;GAaG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,UAAmC,EAAE;IAErC,MAAM,OAAO,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,wBAAwB,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,CAAC;IAExF,IAAI,OAAO,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;QACnC,OAAO,qBAAqB,EAAE,CAAC;IACjC,CAAC;IAED,OAAO,uBAAuB,CAAC;QAC7B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,UAAU,EAAE,OAAO,CAAC,UAAU;KAC/B,CAAC,CAAC;AACL,CAAC"}
|