@kronos-ts/kronosdb 0.1.1 → 0.2.0
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/kronosdb.d.ts +5 -1
- package/dist/kronosdb.d.ts.map +1 -1
- package/dist/kronosdb.js +133 -27
- package/dist/kronosdb.js.map +1 -1
- package/package.json +1 -1
- package/src/kronosdb.ts +147 -32
package/dist/kronosdb.d.ts
CHANGED
|
@@ -15,10 +15,13 @@
|
|
|
15
15
|
* - reverses shutdown deterministically in a single onStop('connect') hook
|
|
16
16
|
* (busLatches → platform.stop → connection.close — D-101.b).
|
|
17
17
|
*/
|
|
18
|
-
import { type ResilienceConfig } from "@kronos-ts/common";
|
|
18
|
+
import { type Serializer, type ResilienceConfig } from "@kronos-ts/common";
|
|
19
19
|
import type { App } from "@kronos-ts/app";
|
|
20
|
+
import type { QueryBus, UoWRunner } from "@kronos-ts/messaging";
|
|
20
21
|
import type { KronosDbConnectionConfig } from "./connection.js";
|
|
22
|
+
import { type KronosDbConnection } from "./connection.js";
|
|
21
23
|
import { type PlatformServiceOptions } from "./platform-service.js";
|
|
24
|
+
import { type ShutdownLatch } from "./shutdown-latch.js";
|
|
22
25
|
export interface FlowControlConfig {
|
|
23
26
|
permits?: number;
|
|
24
27
|
refillThreshold?: number;
|
|
@@ -50,4 +53,5 @@ export interface KronosDbExtensionConfig extends KronosDbConnectionConfig {
|
|
|
50
53
|
* ```
|
|
51
54
|
*/
|
|
52
55
|
export declare function kronosDb(serverConfig: KronosDbExtensionConfig): (app: App) => void;
|
|
56
|
+
export declare function createDistributedQueryBus(connection: KronosDbConnection, unitOfWorkRunner: UoWRunner, shutdownLatch: ShutdownLatch, serializer: Serializer, flowControl?: FlowControlConfig, shortcutQueriesToLocalHandlers?: boolean, queryTimeoutMs?: number, resilience?: Partial<ResilienceConfig>): QueryBus;
|
|
53
57
|
//# sourceMappingURL=kronosdb.d.ts.map
|
package/dist/kronosdb.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kronosdb.d.ts","sourceRoot":"","sources":["../src/kronosdb.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,
|
|
1
|
+
{"version":3,"file":"kronosdb.d.ts","sourceRoot":"","sources":["../src/kronosdb.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAsE,KAAK,UAAU,EAA0B,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAA;AACtK,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,EAAoD,QAAQ,EAA6D,SAAS,EAAiB,MAAM,sBAAsB,CAAA;AAE3L,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAA;AAC/D,OAAO,EAA2C,KAAK,kBAAkB,EAAE,MAAM,iBAAiB,CAAA;AAIlG,OAAO,EAAqD,KAAK,sBAAsB,EAAE,MAAM,uBAAuB,CAAA;AAGtH,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAK7E,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AA+BD,MAAM,WAAW,uBAAwB,SAAQ,wBAAwB;IACvE,kBAAkB,CAAC,EAAE,iBAAiB,CAAA;IACtC,gBAAgB,CAAC,EAAE,iBAAiB,CAAA;IACpC,eAAe,CAAC,EAAE,sBAAsB,CAAA;IACxC,8BAA8B,CAAC,EAAE,OAAO,CAAA;IACxC,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,uDAAuD;IACvD,UAAU,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;CACvC;AAED;;;;;;;;;GASG;AACH,wBAAgB,QAAQ,CAAC,YAAY,EAAE,uBAAuB,GAAG,CAAC,GAAG,EAAE,GAAG,KAAK,IAAI,CAiSlF;AAoOD,wBAAgB,yBAAyB,CACvC,UAAU,EAAE,kBAAkB,EAC9B,gBAAgB,EAAE,SAAS,EAC3B,aAAa,EAAE,aAAa,EAC5B,UAAU,EAAE,UAAU,EACtB,WAAW,CAAC,EAAE,iBAAiB,EAC/B,8BAA8B,CAAC,EAAE,OAAO,EACxC,cAAc,CAAC,EAAE,MAAM,EACvB,UAAU,CAAC,EAAE,OAAO,CAAC,gBAAgB,CAAC,GACrC,QAAQ,CA4eV"}
|
package/dist/kronosdb.js
CHANGED
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
* (busLatches → platform.stop → connection.close — D-101.b).
|
|
17
17
|
*/
|
|
18
18
|
import { generateIdentifier, qualifiedNameFromString, qualifiedNameToString, withRetry, healthCheck } from "@kronos-ts/common";
|
|
19
|
-
import { createUpdateHandler, runAfterCommitOrImmediately } from "@kronos-ts/messaging";
|
|
19
|
+
import { applySubscriptionFilter, createUpdateHandler, runAfterCommitOrImmediately } from "@kronos-ts/messaging";
|
|
20
20
|
import { connectToKronosDb, createKronosMetadata } from "./connection.js";
|
|
21
21
|
import { KronosDbErrorCode, mapErrorCode } from "./errors.js";
|
|
22
22
|
import { metadataFromProto, metadataToProto } from "./metadata-conversion.js";
|
|
@@ -508,13 +508,19 @@ function createDistributedCommandBus(connection, unitOfWorkRunner, shutdownLatch
|
|
|
508
508
|
// ---------------------------------------------------------------------------
|
|
509
509
|
// Distributed Query Bus
|
|
510
510
|
// ---------------------------------------------------------------------------
|
|
511
|
-
function createDistributedQueryBus(connection, unitOfWorkRunner, shutdownLatch, serializer, flowControl, shortcutQueriesToLocalHandlers, queryTimeoutMs, resilience) {
|
|
511
|
+
export function createDistributedQueryBus(connection, unitOfWorkRunner, shutdownLatch, serializer, flowControl, shortcutQueriesToLocalHandlers, queryTimeoutMs, resilience) {
|
|
512
512
|
const metadata = createKronosMetadata(connection.config);
|
|
513
513
|
const PERMITS = BigInt(flowControl?.permits ?? Number(DEFAULT_PERMITS));
|
|
514
514
|
const THRESHOLD = BigInt(flowControl?.refillThreshold ?? Number(DEFAULT_THRESHOLD));
|
|
515
515
|
const { serializePayload, deserializePayload } = createPayloadHelpers(serializer);
|
|
516
516
|
const localSegment = new Map();
|
|
517
517
|
const subscriptions = new Map();
|
|
518
|
+
// Subscriptions the SERVER has routed to this instance as the handler. Each
|
|
519
|
+
// entry was opened by some subscriber (possibly remote) for a query name we
|
|
520
|
+
// registered as a handler for. emitUpdate / completeSubscription apply the
|
|
521
|
+
// caller-supplied filter against these to decide which subscriber IDs to
|
|
522
|
+
// target. The server then routes each response back to that exact subscriber.
|
|
523
|
+
const handlerSubscriptions = new Map();
|
|
518
524
|
let outbound = createOutboundStream();
|
|
519
525
|
let streamStarted = false;
|
|
520
526
|
let permits = 0n;
|
|
@@ -567,9 +573,77 @@ function createDistributedQueryBus(connection, unitOfWorkRunner, shutdownLatch,
|
|
|
567
573
|
});
|
|
568
574
|
}
|
|
569
575
|
});
|
|
576
|
+
async function handleSubscriptionQueryRequest(req) {
|
|
577
|
+
if (req.subscribe) {
|
|
578
|
+
const sub = req.subscribe;
|
|
579
|
+
const subId = sub.subscriptionIdentifier;
|
|
580
|
+
const proto = sub.queryRequest;
|
|
581
|
+
if (!subId || !proto)
|
|
582
|
+
return;
|
|
583
|
+
const queryName = proto.query;
|
|
584
|
+
const payload = deserializePayload(proto.payload?.data, proto.payload?.type, proto.payload?.revision);
|
|
585
|
+
handlerSubscriptions.set(subId, { queryName, payload });
|
|
586
|
+
const handler = localSegment.get(queryName);
|
|
587
|
+
let resultPayload;
|
|
588
|
+
let errorCode = "";
|
|
589
|
+
let errorMsg = "";
|
|
590
|
+
if (handler) {
|
|
591
|
+
try {
|
|
592
|
+
const queryMessage = {
|
|
593
|
+
identifier: proto.messageIdentifier,
|
|
594
|
+
name: qualifiedNameFromString(queryName),
|
|
595
|
+
payload,
|
|
596
|
+
metadata: metadataFromProto(proto.metadata ?? {}),
|
|
597
|
+
timestamp: Number(proto.timestamp),
|
|
598
|
+
};
|
|
599
|
+
resultPayload = await unitOfWorkRunner(queryMessage.metadata, async () => {
|
|
600
|
+
return handler(queryMessage);
|
|
601
|
+
});
|
|
602
|
+
}
|
|
603
|
+
catch (err) {
|
|
604
|
+
errorCode = KronosDbErrorCode.QUERY_EXECUTION_ERROR;
|
|
605
|
+
errorMsg = err instanceof Error ? err.message : String(err);
|
|
606
|
+
}
|
|
607
|
+
}
|
|
608
|
+
else {
|
|
609
|
+
errorCode = KronosDbErrorCode.NO_HANDLER_FOR_QUERY;
|
|
610
|
+
errorMsg = `No local handler for query "${queryName}"`;
|
|
611
|
+
}
|
|
612
|
+
const responseSerialized = resultPayload !== undefined
|
|
613
|
+
? serializePayload("result", resultPayload)
|
|
614
|
+
: undefined;
|
|
615
|
+
outbound.send({
|
|
616
|
+
subscriptionQueryResponse: {
|
|
617
|
+
messageIdentifier: generateIdentifier(),
|
|
618
|
+
subscriptionIdentifier: subId,
|
|
619
|
+
initialResult: {
|
|
620
|
+
messageIdentifier: generateIdentifier(),
|
|
621
|
+
requestIdentifier: proto.messageIdentifier,
|
|
622
|
+
errorCode,
|
|
623
|
+
errorMessage: errorCode
|
|
624
|
+
? { message: errorMsg, location: connection.config.componentName, details: [], errorCode }
|
|
625
|
+
: undefined,
|
|
626
|
+
payload: responseSerialized,
|
|
627
|
+
metadata: {},
|
|
628
|
+
processingInstructions: [],
|
|
629
|
+
},
|
|
630
|
+
},
|
|
631
|
+
instructionId: "",
|
|
632
|
+
});
|
|
633
|
+
return;
|
|
634
|
+
}
|
|
635
|
+
if (req.unsubscribe) {
|
|
636
|
+
handlerSubscriptions.delete(req.unsubscribe.subscriptionIdentifier);
|
|
637
|
+
}
|
|
638
|
+
// flowControl is silently ignored; the bus doesn't track per-sub permits today.
|
|
639
|
+
}
|
|
570
640
|
async function processInboundQueries(inbound) {
|
|
571
641
|
try {
|
|
572
642
|
for await (const message of inbound) {
|
|
643
|
+
if (message.subscriptionQueryRequest) {
|
|
644
|
+
await handleSubscriptionQueryRequest(message.subscriptionQueryRequest);
|
|
645
|
+
continue;
|
|
646
|
+
}
|
|
573
647
|
if (!message.query)
|
|
574
648
|
continue;
|
|
575
649
|
permits--;
|
|
@@ -803,47 +877,79 @@ function createDistributedQueryBus(connection, unitOfWorkRunner, shutdownLatch,
|
|
|
803
877
|
},
|
|
804
878
|
async emitUpdate(queryName, filter, update) {
|
|
805
879
|
runAfterCommitOrImmediately(() => {
|
|
806
|
-
for (const [
|
|
807
|
-
if (
|
|
808
|
-
subscriptions.delete(id);
|
|
809
|
-
continue;
|
|
810
|
-
}
|
|
811
|
-
const handlerQueryName = qualifiedNameToString(handler.query.name);
|
|
812
|
-
if (handlerQueryName !== queryName)
|
|
880
|
+
for (const [subId, sub] of handlerSubscriptions) {
|
|
881
|
+
if (sub.queryName !== queryName)
|
|
813
882
|
continue;
|
|
814
|
-
if (!filter
|
|
883
|
+
if (!applySubscriptionFilter(filter, sub.payload))
|
|
815
884
|
continue;
|
|
816
|
-
const
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
885
|
+
const serialized = serializePayload(queryName, update);
|
|
886
|
+
outbound.send({
|
|
887
|
+
subscriptionQueryResponse: {
|
|
888
|
+
messageIdentifier: generateIdentifier(),
|
|
889
|
+
subscriptionIdentifier: subId,
|
|
890
|
+
update: {
|
|
891
|
+
messageIdentifier: generateIdentifier(),
|
|
892
|
+
payload: serialized,
|
|
893
|
+
metadata: {},
|
|
894
|
+
clientId: connection.config.clientId,
|
|
895
|
+
componentName: connection.config.componentName,
|
|
896
|
+
errorCode: "",
|
|
897
|
+
errorMessage: undefined,
|
|
898
|
+
},
|
|
899
|
+
},
|
|
900
|
+
instructionId: "",
|
|
901
|
+
});
|
|
821
902
|
}
|
|
822
903
|
});
|
|
823
904
|
},
|
|
824
905
|
async completeSubscription(queryName, filter) {
|
|
825
906
|
runAfterCommitOrImmediately(() => {
|
|
826
|
-
for (const [
|
|
827
|
-
|
|
828
|
-
if (handlerQueryName !== queryName)
|
|
907
|
+
for (const [subId, sub] of handlerSubscriptions) {
|
|
908
|
+
if (sub.queryName !== queryName)
|
|
829
909
|
continue;
|
|
830
|
-
if (filter && !filter
|
|
910
|
+
if (filter && !applySubscriptionFilter(filter, sub.payload))
|
|
831
911
|
continue;
|
|
832
|
-
|
|
833
|
-
|
|
912
|
+
outbound.send({
|
|
913
|
+
subscriptionQueryResponse: {
|
|
914
|
+
messageIdentifier: generateIdentifier(),
|
|
915
|
+
subscriptionIdentifier: subId,
|
|
916
|
+
complete: {
|
|
917
|
+
clientId: connection.config.clientId,
|
|
918
|
+
componentName: connection.config.componentName,
|
|
919
|
+
},
|
|
920
|
+
},
|
|
921
|
+
instructionId: "",
|
|
922
|
+
});
|
|
923
|
+
handlerSubscriptions.delete(subId);
|
|
834
924
|
}
|
|
835
925
|
});
|
|
836
926
|
},
|
|
837
927
|
async completeSubscriptionExceptionally(queryName, error, filter) {
|
|
838
928
|
runAfterCommitOrImmediately(() => {
|
|
839
|
-
for (const [
|
|
840
|
-
|
|
841
|
-
if (handlerQueryName !== queryName)
|
|
929
|
+
for (const [subId, sub] of handlerSubscriptions) {
|
|
930
|
+
if (sub.queryName !== queryName)
|
|
842
931
|
continue;
|
|
843
|
-
if (filter && !filter
|
|
932
|
+
if (filter && !applySubscriptionFilter(filter, sub.payload))
|
|
844
933
|
continue;
|
|
845
|
-
|
|
846
|
-
|
|
934
|
+
outbound.send({
|
|
935
|
+
subscriptionQueryResponse: {
|
|
936
|
+
messageIdentifier: generateIdentifier(),
|
|
937
|
+
subscriptionIdentifier: subId,
|
|
938
|
+
completeExceptionally: {
|
|
939
|
+
clientId: connection.config.clientId,
|
|
940
|
+
componentName: connection.config.componentName,
|
|
941
|
+
errorCode: KronosDbErrorCode.QUERY_EXECUTION_ERROR,
|
|
942
|
+
errorMessage: {
|
|
943
|
+
message: error.message,
|
|
944
|
+
location: connection.config.componentName,
|
|
945
|
+
details: [],
|
|
946
|
+
errorCode: KronosDbErrorCode.QUERY_EXECUTION_ERROR,
|
|
947
|
+
},
|
|
948
|
+
},
|
|
949
|
+
},
|
|
950
|
+
instructionId: "",
|
|
951
|
+
});
|
|
952
|
+
handlerSubscriptions.delete(subId);
|
|
847
953
|
}
|
|
848
954
|
});
|
|
849
955
|
},
|
package/dist/kronosdb.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"kronosdb.js","sourceRoot":"","sources":["../src/kronosdb.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AACH,OAAO,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,qBAAqB,EAAmB,SAAS,EAAE,WAAW,EAAyB,MAAM,mBAAmB,CAAA;AAGtK,OAAO,EAAE,mBAAmB,EAAE,2BAA2B,EAAE,MAAM,sBAAsB,CAAA;AAEvF,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAA2B,MAAM,iBAAiB,CAAA;AAClG,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC7D,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAC7E,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAC3D,OAAO,EAAE,wBAAwB,EAAwD,MAAM,uBAAuB,CAAA;AACtH,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAA;AACpE,OAAO,EAAE,2BAA2B,EAAE,MAAM,8BAA8B,CAAA;AAC1E,OAAO,EAAE,mBAAmB,EAAsB,MAAM,qBAAqB,CAAA;AAE7E,MAAM,eAAe,GAAG,KAAK,CAAA;AAC7B,MAAM,iBAAiB,GAAG,KAAK,CAAA;AAa/B,MAAM,eAAe,GAAG;IACtB,WAAW,EAAE,CAAC;IACd,QAAQ,EAAE,CAAC;IACX,OAAO,EAAE,CAAC;IACV,aAAa,EAAE,CAAC;CACR,CAAA;AAEV,SAAS,6BAA6B,CAAC,YAAqC;IAC1E,IAAI,CAAC,YAAY;QAAE,OAAO,EAAE,CAAA;IAC5B,MAAM,MAAM,GAAU,EAAE,CAAA;IACxB,IAAI,YAAY,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,YAAY,CAAC,UAAU,EAAE,EAAE,CAAC,CAAA;IAClG,CAAC;IACD,IAAI,YAAY,CAAC,QAAQ,KAAK,SAAS,EAAE,CAAC;QACxC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAA;IACvG,CAAC;IACD,IAAI,YAAY,CAAC,SAAS,KAAK,SAAS,EAAE,CAAC;QACzC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAA;IACvG,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,wBAAwB,CAAC,SAAiB;IACjD,OAAO;QACL,EAAE,GAAG,EAAE,eAAe,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE;QAC3E,EAAE,GAAG,EAAE,eAAe,CAAC,aAAa,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE,EAAE;KACnE,CAAA;AACH,CAAC;AAcD;;;;;;;;;GASG;AACH,MAAM,UAAU,QAAQ,CAAC,YAAqC;IAC5D,OAAO,CAAC,GAAG,EAAE,EAAE;QACb,IAAI,UAA0C,CAAA;QAC9C,IAAI,QAAwC,CAAA;QAC5C,MAAM,UAAU,GAAoB,EAAE,CAAA;QAEtC,SAAS,aAAa;YACpB,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CACb,gFAAgF,CACjF,CAAA;YACH,CAAC;YACD,OAAO,UAAU,CAAA;QACnB,CAAC;QAED,yEAAyE;QACzE,EAAE;QACF,qEAAqE;QACrE,uEAAuE;QACvE,wEAAwE;QACxE,uEAAuE;QACvE,wEAAwE;QACxE,iEAAiE;QACjE,0BAA0B;QAC1B,EAAE;QACF,mEAAmE;QACnE,mEAAmE;QACnE,kEAAkE;QAClE,qEAAqE;QACrE,kEAAkE;QAClE,mEAAmE;QACnE,2DAA2D;QAE3D,gEAAgE;QAChE,IAAI,gBAAgB,GAAe,GAAG,EAAE,GAAE,CAAC,CAAA;QAC3C,MAAM,SAAS,GAAkB,IAAI,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACnD,gBAAgB,GAAG,GAAG,CAAA;QACxB,CAAC,CAAC,CAAA;QAEF,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE;YACjC,8DAA8D;YAC9D,kEAAkE;YAClE,iEAAiE;YACjE,8DAA8D;YAC9D,0CAA0C;YAC1C,MAAM,cAAc,GAAG,IAAI,KAAK,CAAC,EAAwB,EAAE;gBACzD,GAAG,CAAC,EAAE,EAAE,IAAI;oBACV,OAAQ,aAAa,EAAU,CAAC,IAAI,CAAC,CAAA;gBACvC,CAAC;aACF,CAAC,CAAA;YACF,OAAO,wBAAwB,CAAC,cAAc,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAA;QACtE,CAAC,CAAC,CAAA;QAEF,GAAG,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,QAAQ,EAAE,EAAE;YACpC,MAAM,cAAc,GAAG,IAAI,KAAK,CAAC,EAAwB,EAAE;gBACzD,GAAG,CAAC,EAAE,EAAE,IAAI;oBACV,OAAQ,aAAa,EAAU,CAAC,IAAI,CAAC,CAAA;gBACvC,CAAC;aACF,CAAC,CAAA;YACF,OAAO,2BAA2B,CAAC,cAAc,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAA;QACzE,CAAC,CAAC,CAAA;QAEF,GAAG,CAAC,GAAG,CAAC,YAAY,EAAE,CAAC,QAAQ,EAAE,EAAE;YACjC,MAAM,KAAK,GAAG,mBAAmB,EAAE,CAAA;YACnC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAEtB,IAAI,KAA6B,CAAA;YACjC,MAAM,WAAW,GAA6D,EAAE,CAAA;YAEhF,yEAAyE;YACzE,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE;gBAClB,6EAA6E;gBAC7E,KAAK,GAAG,2BAA2B,CACjC,aAAa,EAAE,EACf,QAAQ,CAAC,iBAAiB,EAC1B,KAAK,EACL,QAAQ,CAAC,UAAU,EACnB,YAAY,CAAC,kBAAkB,EAC/B,YAAY,CAAC,iBAAiB,EAC9B,YAAY,CAAC,UAAU,CACxB,CAAA;gBACD,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,WAAW;oBAAE,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;gBAC7D,WAAW,CAAC,MAAM,GAAG,CAAC,CAAA;YACxB,CAAC,CAAC,CAAA;YAEF,MAAM,OAAO,GAAe;gBAC1B,KAAK,CAAC,QAAQ,CAAC,OAAO;oBACpB,MAAM,SAAS,CAAA;oBACf,OAAO,KAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;gBACjC,CAAC;gBACD,SAAS,CAAC,IAAI,EAAE,OAAO;oBACrB,IAAI,KAAK;wBAAE,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;;wBACpC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;gBACxC,CAAC;aACF,CAAA;YACD,OAAO,OAAO,CAAA;QAChB,CAAC,CAAC,CAAA;QAEF,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,CAAC,QAAQ,EAAE,EAAE;YAC/B,MAAM,KAAK,GAAG,mBAAmB,EAAE,CAAA;YACnC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YAEtB,IAAI,KAA2B,CAAA;YAC/B,MAAM,WAAW,GAA2D,EAAE,CAAA;YAE9E,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE;gBAClB,KAAK,GAAG,yBAAyB,CAC/B,aAAa,EAAE,EACf,QAAQ,CAAC,iBAAiB,EAC1B,KAAK,EACL,QAAQ,CAAC,UAAU,EACnB,YAAY,CAAC,gBAAgB,EAC7B,YAAY,CAAC,8BAA8B,EAC3C,YAAY,CAAC,cAAc,EAC3B,YAAY,CAAC,UAAU,CACxB,CAAA;gBACD,KAAK,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,WAAW;oBAAE,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,CAAA;gBAC7D,WAAW,CAAC,MAAM,GAAG,CAAC,CAAA;YACxB,CAAC,CAAC,CAAA;YAEF,MAAM,OAAO,GAAa;gBACxB,KAAK,CAAC,KAAK,CAAC,OAAO;oBACjB,MAAM,SAAS,CAAA;oBACf,OAAO,KAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;gBAC9B,CAAC;gBACD,SAAS,CAAC,IAAI,EAAE,OAAO;oBACrB,IAAI,KAAK;wBAAE,KAAK,CAAC,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;;wBACpC,WAAW,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAA;gBACxC,CAAC;gBACD,iBAAiB,CAAC,OAAO,EAAE,UAAU;oBACnC,IAAI,CAAC,KAAK,EAAE,CAAC;wBACX,MAAM,IAAI,KAAK,CACb,0EAA0E,CAC3E,CAAA;oBACH,CAAC;oBACD,OAAO,KAAK,CAAC,iBAAiB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;gBACrD,CAAC;gBACD,kBAAkB,CAAC,OAAO,EAAE,UAAU;oBACpC,IAAI,CAAC,KAAK,EAAE,CAAC;wBACX,MAAM,IAAI,KAAK,CACb,2EAA2E,CAC5E,CAAA;oBACH,CAAC;oBACD,OAAO,KAAK,CAAC,kBAAkB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;gBACtD,CAAC;gBACD,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM;oBACnC,MAAM,SAAS,CAAA;oBACf,OAAO,KAAM,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,CAAA;gBAChD,CAAC;gBACD,KAAK,CAAC,oBAAoB,CAAC,IAAI,EAAE,MAAM;oBACrC,MAAM,SAAS,CAAA;oBACf,OAAO,KAAM,CAAC,oBAAoB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAA;gBAClD,CAAC;gBACD,KAAK,CAAC,iCAAiC,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM;oBACzD,MAAM,SAAS,CAAA;oBACf,OAAO,KAAM,CAAC,iCAAiC,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;gBACtE,CAAC;aACF,CAAA;YACD,OAAO,OAAO,CAAA;QAChB,CAAC,CAAC,CAAA;QAEF,wEAAwE;QACxE,8DAA8D;QAC9D,iDAAiD;QACjD,GAAG,CAAC,OAAO,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;YAChC,UAAU,GAAG,MAAM,SAAS,CAC1B,KAAK,IAAI,EAAE,CAAC,iBAAiB,CAAC,YAAY,CAAC,EAC3C,EAAE,KAAK,EAAE,iBAAiB,EAAE,GAAG,YAAY,CAAC,UAAU,EAAE,CACzD,CAAA;YAED,wEAAwE;YACxE,mEAAmE;YACnE,oEAAoE;YACpE,sEAAsE;YACtE,kEAAkE;YAClE,2CAA2C;YAC3C,MAAM,WAAW,CAAC,KAAK,IAAI,EAAE,CAAC,SAAS,EAAE;gBACvC,WAAW,EAAE,YAAY,CAAC,UAAU,EAAE,sBAAsB;gBAC5D,GAAG,EAAE,YAAY,CAAC,UAAU,EAAE,GAAG;aAClC,CAAC,CAAA;YAEF,QAAQ,GAAG,wBAAwB,CAAC,UAAW,EAAE,YAAY,CAAC,eAAe,CAAC,CAAA;YAE9E,sEAAsE;YACtE,uEAAuE;YACvE,oEAAoE;YACpE,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,EAAE,CAAA;YACnC,MAAM,YAAY,GAAG,IAAI,GAAG,EAAgC,CAAA;YAC5D,KAAK,MAAM,IAAI,IAAI,UAAU;gBAAE,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;YAEhE,QAAQ,CAAC,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE;gBAC3C,QAAQ,WAAW,CAAC,IAAI,EAAE,CAAC;oBACzB,KAAK,iBAAiB,CAAC,CAAC,CAAC;wBACvB,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,aAAa,CAAQ,CAAA;wBAC/D,IAAI,IAAI,EAAE,IAAI;4BAAE,IAAI,CAAC,IAAI,EAAE,CAAA;wBAC3B,MAAK;oBACP,CAAC;oBACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;wBACvB,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,aAAa,CAAQ,CAAA;wBAC/D,IAAI,IAAI,EAAE,KAAK;4BAAE,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;wBACnC,MAAK;oBACP,CAAC;oBACD,KAAK,iBAAiB,CAAC,CAAC,CAAC;wBACvB,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,aAAa,CAAQ,CAAA;wBAC/D,IAAI,IAAI,EAAE,cAAc;4BAAE,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;wBAC1E,MAAK;oBACP,CAAC;oBACD,KAAK,eAAe,CAAC,CAAC,CAAC;wBACrB,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,aAAa,CAAQ,CAAA;wBAC/D,IAAI,IAAI,EAAE,YAAY;4BAAE,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;wBACtE,MAAK;oBACP,CAAC;oBACD,KAAK,eAAe,CAAC,CAAC,CAAC;wBACrB,MAAM,IAAI,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,aAAa,CAAQ,CAAA;wBAC/D,IAAI,IAAI,EAAE,YAAY;4BAAE,MAAM,IAAI,CAAC,YAAY,CAAC,WAAW,CAAC,SAAS,CAAC,CAAA;wBACtE,MAAK;oBACP,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAA;YAEF,QAAQ,CAAC,+BAA+B,CAAC,GAAG,EAAE;gBAC5C,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE,CAAC,CAAC;oBACpC,IAAI,EAAE,IAAI,CAAC,IAAI;oBACf,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,KAAK;oBAC9B,IAAI,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,KAAK,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,UAAU;oBACnE,oBAAoB,EAAE,IAAI,CAAC,aAAa,EAAE,EAAE,KAAK,KAAK;oBACtD,aAAa,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;oBACnC,gBAAgB,EAAE,CAAC;oBACnB,KAAK,EAAE,KAAK;oBACZ,oBAAoB,EAAE,EAAE;oBACxB,QAAQ,EAAE,IAAI,CAAC,gBAAgB;wBAC7B,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,OAAO,EAA6B,CAAC,CAAC,GAAG,CAC1E,CAAC,CAAC,KAAK,EAAE,MAAM,CAAgB,EAAE,EAAE,CAAC,CAAC;4BACnC,SAAS,EAAE,KAAK;4BAChB,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,KAAK;4BAClC,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,KAAK;4BACpC,SAAS,EAAE,CAAC;4BACZ,aAAa,EAAE,MAAM,CAAC,QAAQ,IAAI,EAAE;4BACpC,UAAU,EAAE,MAAM,CAAC,KAAK,EAAE,OAAO,IAAI,EAAE;yBACxC,CAAC,CACH;wBACH,CAAC,CAAC;4BACE;gCACE,SAAS,EAAE,CAAC;gCACZ,QAAQ,EAAE,IAAI;gCACd,SAAS,EAAE,IAAI,CAAC,SAAS,IAAI,KAAK;gCAClC,SAAS,EAAE,CAAC;gCACZ,aAAa,EAAE,IAAI,CAAC,QAAQ,IAAI,EAAE;gCAClC,UAAU,EAAE,EAAE;6BACf;yBACF;iBACN,CAAC,CAAC,CAAA;YACL,CAAC,CAAC,CAAA;YAEF,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAA;YAEtB,oEAAoE;YACpE,sEAAsE;YACtE,kEAAkE;YAClE,qEAAqE;YACrE,iEAAiE;YACjE,oEAAoE;YACpE,4CAA4C;YAC5C,gBAAgB,EAAE,CAAA;YAClB,MAAM,OAAO,CAAC,OAAO,EAAE,CAAA;QACzB,CAAC,CAAC,CAAA;QAEF,wEAAwE;QACxE,qEAAqE;QACrE,qEAAqE;QACrE,8DAA8D;QAC9D,GAAG,CAAC,OAAO,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE;YACnC,MAAM,SAAS,CACb,KAAK,IAAI,EAAE;gBACT,MAAM,EAAE,GAAG,MAAM,QAAS,CAAC,kBAAkB,EAAE,CAAA;gBAC/C,IAAI,CAAC,EAAE;oBAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;YACzD,CAAC,EACD,EAAE,KAAK,EAAE,eAAe,EAAE,GAAG,YAAY,CAAC,UAAU,EAAE,CACvD,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,wEAAwE;QACxE,+DAA+D;QAC/D,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,IAAI,EAAE;YAC/B,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,gBAAgB,EAAE,CAAC,CAAC,CAAA;YAC9D,QAAQ,EAAE,IAAI,EAAE,CAAA;YAChB,UAAU,EAAE,KAAK,EAAE,CAAA;QACrB,CAAC,CAAC,CAAA;IACJ,CAAC,CAAA;AACH,CAAC;AAED,8EAA8E;AAC9E,+DAA+D;AAC/D,8EAA8E;AAE9E,SAAS,oBAAoB,CAAC,UAAsB;IAClD,OAAO;QACL,gBAAgB,CAAC,IAAY,EAAE,OAAgB,EAAE,WAAmB,EAAE;YACpE,OAAO,UAAU,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAA;QACtD,CAAC;QACD,kBAAkB,CAAC,IAA4B,EAAE,OAAe,EAAE,EAAE,WAAmB,EAAE;YACvF,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;gBAAE,OAAO,SAAS,CAAA;YAChD,OAAO,UAAU,CAAC,WAAW,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;QACzD,CAAC;KACF,CAAA;AACH,CAAC;AAED,8EAA8E;AAC9E,0BAA0B;AAC1B,EAAE;AACF,sEAAsE;AACtE,kCAAkC;AAClC,6EAA6E;AAC7E,kEAAkE;AAClE,8EAA8E;AAE9E,SAAS,2BAA2B,CAClC,UAA8B,EAC9B,gBAA2B,EAC3B,aAA4B,EAC5B,UAAsB,EACtB,WAA+B,EAC/B,iBAA0B,EAC1B,UAAsC;IAEtC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IACxD,MAAM,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAA;IACjF,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,EAAE,OAAO,IAAI,MAAM,CAAC,eAAe,CAAC,CAAC,CAAA;IACvE,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,EAAE,eAAe,IAAI,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAA;IAEnF,MAAM,YAAY,GAAG,IAAI,GAAG,EAAyD,CAAA;IAErF,IAAI,QAAQ,GAAG,oBAAoB,EAAO,CAAA;IAC1C,IAAI,aAAa,GAAG,KAAK,CAAA;IACzB,IAAI,OAAO,GAAG,EAAE,CAAA;IAEhB,SAAS,mBAAmB;QAC1B,IAAI,aAAa;YAAE,OAAM;QACzB,aAAa,GAAG,IAAI,CAAA;QAEpB,MAAM,OAAO,GAAG,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;QAC/E,sBAAsB,CAAC,OAAO,CAAC,CAAA;IACjC,CAAC;IAED,SAAS,YAAY;QACnB,QAAQ,CAAC,IAAI,CAAC;YACZ,WAAW,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE;YACvE,aAAa,EAAE,EAAE;SAClB,CAAC,CAAA;QACF,OAAO,IAAI,OAAO,CAAA;IACpB,CAAC;IAED,SAAS,qBAAqB;QAC5B,QAAQ,CAAC,KAAK,EAAE,CAAA;QAChB,QAAQ,GAAG,oBAAoB,EAAO,CAAA;QACtC,aAAa,GAAG,KAAK,CAAA;QACrB,OAAO,GAAG,EAAE,CAAA;QACZ,mBAAmB,EAAE,CAAA;QACrB,KAAK,MAAM,WAAW,IAAI,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;YAC9C,QAAQ,CAAC,IAAI,CAAC;gBACZ,SAAS,EAAE;oBACT,SAAS,EAAE,kBAAkB,EAAE;oBAC/B,OAAO,EAAE,WAAW;oBACpB,aAAa,EAAE,UAAU,CAAC,MAAM,CAAC,aAAa;oBAC9C,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ;oBACpC,UAAU,EAAE,iBAAiB,IAAI,GAAG;iBACrC;gBACD,aAAa,EAAE,kBAAkB,EAAE;aACpC,CAAC,CAAA;QACJ,CAAC;QACD,YAAY,EAAE,CAAA;IAChB,CAAC;IAED,KAAK,UAAU,0BAA0B;QACvC,IAAI,aAAa,CAAC,YAAY;YAAE,OAAM;QACtC,MAAM,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,qBAAqB,EAAE,EAAE;YACnD,KAAK,EAAE,WAAW;YAClB,GAAG,UAAU;SACd,CAAC,CAAA;IACJ,CAAC;IAED,UAAU,CAAC,WAAW,CAAC,GAAG,EAAE;QAC1B,IAAI,CAAC,aAAa,CAAC,YAAY,IAAI,aAAa,EAAE,CAAC;YACjD,0BAA0B,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACzC,OAAO,CAAC,KAAK,CAAC,sDAAsD,EAAE,GAAG,CAAC,CAAA;YAC5E,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,KAAK,UAAU,sBAAsB,CAAC,OAA2B;QAC/D,IAAI,CAAC;YACH,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;gBACpC,IAAI,CAAC,OAAO,CAAC,OAAO;oBAAE,SAAQ;gBAE9B,OAAO,EAAE,CAAA;gBACT,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAA;gBAC7B,MAAM,WAAW,GAAG,KAAK,CAAC,IAAI,CAAA;gBAC9B,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;gBAE7C,IAAI,aAAsB,CAAA;gBAC1B,IAAI,SAAS,GAAG,EAAE,CAAA;gBAClB,IAAI,QAAQ,GAAG,EAAE,CAAA;gBAEjB,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,CAAC;wBACH,MAAM,cAAc,GAAmB;4BACrC,UAAU,EAAE,KAAK,CAAC,iBAAiB;4BACnC,IAAI,EAAE,uBAAuB,CAAC,WAAW,CAAC;4BAC1C,OAAO,EAAE,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,IAA8B,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC;4BACxH,QAAQ,EAAE,iBAAiB,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;4BACjD,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;yBACnC,CAAA;wBAED,aAAa,GAAG,MAAM,gBAAgB,CAAC,cAAc,CAAC,QAAQ,EAAE,GAAG,EAAE,CACnE,OAAO,CAAC,cAAc,CAAC,CACxB,CAAA;oBACH,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,SAAS,GAAG,iBAAiB,CAAC,uBAAuB,CAAA;wBACrD,QAAQ,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;oBAC7D,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,SAAS,GAAG,iBAAiB,CAAC,sBAAsB,CAAA;oBACpD,QAAQ,GAAG,iCAAiC,WAAW,GAAG,CAAA;gBAC5D,CAAC;gBAED,MAAM,kBAAkB,GAAG,aAAa,KAAK,SAAS;oBACpD,CAAC,CAAC,gBAAgB,CAAC,QAAQ,EAAE,aAAa,CAAC;oBAC3C,CAAC,CAAC,SAAS,CAAA;gBAEb,QAAQ,CAAC,IAAI,CAAC;oBACZ,eAAe,EAAE;wBACf,iBAAiB,EAAE,kBAAkB,EAAE;wBACvC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;wBAC1C,SAAS;wBACT,YAAY,EAAE,SAAS;4BACrB,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE;4BAC1F,CAAC,CAAC,SAAS;wBACb,OAAO,EAAE,kBAAkB;wBAC3B,QAAQ,EAAE,EAAE;wBACZ,sBAAsB,EAAE,EAAE;qBAC3B;oBACD,aAAa,EAAE,EAAE;iBAClB,CAAC,CAAA;gBAEF,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC;oBACzB,QAAQ,CAAC,IAAI,CAAC;wBACZ,WAAW,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE;wBACvE,aAAa,EAAE,EAAE;qBAClB,CAAC,CAAA;oBACF,OAAO,IAAI,OAAO,CAAA;gBACpB,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,aAAa,CAAC,YAAY;gBAAE,OAAM;YACtC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;gBAAE,OAAM;YAEtD,OAAO,CAAC,KAAK,CAAC,0FAA0F,EAAE,GAAG,CAAC,CAAA;YAC9G,MAAM,0BAA0B,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACpD,OAAO,CAAC,KAAK,CAAC,sDAAsD,EAAE,QAAQ,CAAC,CAAA;YACjF,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK,CAAC,QAAQ,CAAC,OAAuB;YACpC,MAAM,QAAQ,GAAG,aAAa,CAAC,gBAAgB,EAAE,CAAA;YACjD,IAAI,CAAC;gBACH,MAAM,WAAW,GAAG,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;gBACvD,MAAM,UAAU,GAAG,gBAAgB,CAAC,WAAW,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;gBAEjE,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBAClD,iBAAiB,EAAE,OAAO,CAAC,UAAU;oBACrC,IAAI,EAAE,WAAW;oBACjB,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;oBACpC,OAAO,EAAE,UAAU;oBACnB,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC;oBAC3C,sBAAsB,EAAE,6BAA6B,CAAC,OAAO,CAAC,QAAQ,EAAE,sBAA4D,CAAC;oBACrI,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ;oBACpC,aAAa,EAAE,UAAU,CAAC,MAAM,CAAC,aAAa;iBAC/C,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;gBAEhB,IAAI,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS,KAAK,EAAE,EAAE,CAAC;oBACpD,MAAM,YAAY,CAChB,QAAQ,CAAC,SAAS,EAClB,QAAQ,CAAC,YAAY,EAAE,OAAO,IAAI,eAAe,CAClD,CAAA;gBACH,CAAC;gBAED,OAAO,kBAAkB,CAAC,QAAQ,CAAC,OAAO,EAAE,IAA8B,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;YACjI,CAAC;oBAAS,CAAC;gBACT,QAAQ,CAAC,GAAG,EAAE,CAAA;YAChB,CAAC;QACH,CAAC;QAED,SAAS,CAAC,WAAmB,EAAE,OAAsD;YACnF,YAAY,CAAC,GAAG,CAAC,WAAW,EAAE,OAAO,CAAC,CAAA;YAEtC,mBAAmB,EAAE,CAAA;YACrB,QAAQ,CAAC,IAAI,CAAC;gBACZ,SAAS,EAAE;oBACT,SAAS,EAAE,kBAAkB,EAAE;oBAC/B,OAAO,EAAE,WAAW;oBACpB,aAAa,EAAE,UAAU,CAAC,MAAM,CAAC,aAAa;oBAC9C,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ;oBACpC,UAAU,EAAE,iBAAiB,IAAI,GAAG;iBACrC;gBACD,aAAa,EAAE,kBAAkB,EAAE;aACpC,CAAC,CAAA;YACF,YAAY,EAAE,CAAA;QAChB,CAAC;KACF,CAAA;AACH,CAAC;AAED,8EAA8E;AAC9E,wBAAwB;AACxB,8EAA8E;AAE9E,SAAS,yBAAyB,CAChC,UAA8B,EAC9B,gBAA2B,EAC3B,aAA4B,EAC5B,UAAsB,EACtB,WAA+B,EAC/B,8BAAwC,EACxC,cAAuB,EACvB,UAAsC;IAEtC,MAAM,QAAQ,GAAG,oBAAoB,CAAC,UAAU,CAAC,MAAM,CAAC,CAAA;IACxD,MAAM,OAAO,GAAG,MAAM,CAAC,WAAW,EAAE,OAAO,IAAI,MAAM,CAAC,eAAe,CAAC,CAAC,CAAA;IACvE,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,EAAE,eAAe,IAAI,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAA;IACnF,MAAM,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,GAAG,oBAAoB,CAAC,UAAU,CAAC,CAAA;IAEjF,MAAM,YAAY,GAAG,IAAI,GAAG,EAAuD,CAAA;IACnF,MAAM,aAAa,GAAG,IAAI,GAAG,EAAyB,CAAA;IAEtD,IAAI,QAAQ,GAAG,oBAAoB,EAAO,CAAA;IAC1C,IAAI,aAAa,GAAG,KAAK,CAAA;IACzB,IAAI,OAAO,GAAG,EAAE,CAAA;IAEhB,SAAS,mBAAmB;QAC1B,IAAI,aAAa;YAAE,OAAM;QACzB,aAAa,GAAG,IAAI,CAAA;QAEpB,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;QAC9E,qBAAqB,CAAC,OAAO,CAAC,CAAA;IAChC,CAAC;IAED,SAAS,iBAAiB;QACxB,QAAQ,CAAC,IAAI,CAAC;YACZ,WAAW,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE;YACvE,aAAa,EAAE,EAAE;SAClB,CAAC,CAAA;QACF,OAAO,IAAI,OAAO,CAAA;IACpB,CAAC;IAED,SAAS,qBAAqB;QAC5B,QAAQ,CAAC,KAAK,EAAE,CAAA;QAChB,QAAQ,GAAG,oBAAoB,EAAO,CAAA;QACtC,aAAa,GAAG,KAAK,CAAA;QACrB,OAAO,GAAG,EAAE,CAAA;QACZ,mBAAmB,EAAE,CAAA;QACrB,KAAK,MAAM,SAAS,IAAI,YAAY,CAAC,IAAI,EAAE,EAAE,CAAC;YAC5C,QAAQ,CAAC,IAAI,CAAC;gBACZ,SAAS,EAAE;oBACT,SAAS,EAAE,kBAAkB,EAAE;oBAC/B,KAAK,EAAE,SAAS;oBAChB,UAAU,EAAE,EAAE;oBACd,aAAa,EAAE,UAAU,CAAC,MAAM,CAAC,aAAa;oBAC9C,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ;iBACrC;gBACD,aAAa,EAAE,kBAAkB,EAAE;aACpC,CAAC,CAAA;QACJ,CAAC;QACD,iBAAiB,EAAE,CAAA;IACrB,CAAC;IAED,KAAK,UAAU,0BAA0B;QACvC,IAAI,aAAa,CAAC,YAAY;YAAE,OAAM;QACtC,MAAM,SAAS,CAAC,KAAK,IAAI,EAAE,CAAC,qBAAqB,EAAE,EAAE;YACnD,KAAK,EAAE,WAAW;YAClB,GAAG,UAAU;SACd,CAAC,CAAA;IACJ,CAAC;IAED,UAAU,CAAC,WAAW,CAAC,GAAG,EAAE;QAC1B,IAAI,CAAC,aAAa,CAAC,YAAY,IAAI,aAAa,EAAE,CAAC;YACjD,0BAA0B,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;gBACzC,OAAO,CAAC,KAAK,CAAC,oDAAoD,EAAE,GAAG,CAAC,CAAA;YAC1E,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC,CAAC,CAAA;IAEF,KAAK,UAAU,qBAAqB,CAAC,OAA2B;QAC9D,IAAI,CAAC;YACH,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,OAAO,EAAE,CAAC;gBACpC,IAAI,CAAC,OAAO,CAAC,KAAK;oBAAE,SAAQ;gBAE5B,OAAO,EAAE,CAAA;gBACT,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAA;gBAC3B,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAA;gBAC7B,MAAM,OAAO,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;gBAE3C,IAAI,aAAsB,CAAA;gBAC1B,IAAI,SAAS,GAAG,EAAE,CAAA;gBAClB,IAAI,QAAQ,GAAG,EAAE,CAAA;gBAEjB,IAAI,OAAO,EAAE,CAAC;oBACZ,IAAI,CAAC;wBACH,MAAM,YAAY,GAAiB;4BACjC,UAAU,EAAE,KAAK,CAAC,iBAAiB;4BACnC,IAAI,EAAE,uBAAuB,CAAC,SAAS,CAAC;4BACxC,OAAO,EAAE,kBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,IAA8B,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC;4BACxH,QAAQ,EAAE,iBAAiB,CAAC,KAAK,CAAC,QAAQ,IAAI,EAAE,CAAC;4BACjD,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;yBACnC,CAAA;wBAED,aAAa,GAAG,MAAM,gBAAgB,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;4BACvE,OAAO,OAAO,CAAC,YAAY,CAAC,CAAA;wBAC9B,CAAC,CAAC,CAAA;oBACJ,CAAC;oBAAC,OAAO,GAAG,EAAE,CAAC;wBACb,SAAS,GAAG,iBAAiB,CAAC,qBAAqB,CAAA;wBACnD,QAAQ,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;oBAC7D,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,SAAS,GAAG,iBAAiB,CAAC,oBAAoB,CAAA;oBAClD,QAAQ,GAAG,+BAA+B,SAAS,GAAG,CAAA;gBACxD,CAAC;gBAED,MAAM,kBAAkB,GAAG,aAAa,KAAK,SAAS;oBACpD,CAAC,CAAC,gBAAgB,CAAC,QAAQ,EAAE,aAAa,CAAC;oBAC3C,CAAC,CAAC,SAAS,CAAA;gBAEb,QAAQ,CAAC,IAAI,CAAC;oBACZ,aAAa,EAAE;wBACb,iBAAiB,EAAE,kBAAkB,EAAE;wBACvC,iBAAiB,EAAE,KAAK,CAAC,iBAAiB;wBAC1C,SAAS;wBACT,YAAY,EAAE,SAAS;4BACrB,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,aAAa,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE;4BAC1F,CAAC,CAAC,SAAS;wBACb,OAAO,EAAE,kBAAkB;wBAC3B,QAAQ,EAAE,EAAE;wBACZ,sBAAsB,EAAE,EAAE;qBAC3B;oBACD,aAAa,EAAE,EAAE;iBAClB,CAAC,CAAA;gBAEF,QAAQ,CAAC,IAAI,CAAC;oBACZ,aAAa,EAAE;wBACb,SAAS,EAAE,kBAAkB,EAAE;wBAC/B,SAAS,EAAE,KAAK,CAAC,iBAAiB;qBACnC;oBACD,aAAa,EAAE,EAAE;iBAClB,CAAC,CAAA;gBAEF,IAAI,OAAO,IAAI,SAAS,EAAE,CAAC;oBACzB,QAAQ,CAAC,IAAI,CAAC;wBACZ,WAAW,EAAE,EAAE,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE;wBACvE,aAAa,EAAE,EAAE;qBAClB,CAAC,CAAA;oBACF,OAAO,IAAI,OAAO,CAAA;gBACpB,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,aAAa,CAAC,YAAY;gBAAE,OAAM;YACtC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,oBAAoB,CAAC;gBAAE,OAAM;YAEtD,OAAO,CAAC,KAAK,CAAC,wFAAwF,EAAE,GAAG,CAAC,CAAA;YAC5G,MAAM,0BAA0B,EAAE,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,EAAE;gBACpD,OAAO,CAAC,KAAK,CAAC,oDAAoD,EAAE,QAAQ,CAAC,CAAA;YAC/E,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,OAAO;QACL,KAAK,CAAC,KAAK,CAAC,OAAqB;YAC/B,MAAM,QAAQ,GAAG,aAAa,CAAC,gBAAgB,EAAE,CAAA;YACjD,IAAI,CAAC;gBACH,MAAM,SAAS,GAAG,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;gBAErD,IAAI,8BAA8B,EAAE,CAAC;oBACnC,MAAM,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;oBAChD,IAAI,YAAY,EAAE,CAAC;wBACjB,OAAO,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;4BACnD,OAAO,YAAY,CAAC,OAAO,CAAC,CAAA;wBAC9B,CAAC,CAAC,CAAA;oBACJ,CAAC;gBACH,CAAC;gBAED,MAAM,UAAU,GAAG,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;gBAE/D,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC;oBAC9C,iBAAiB,EAAE,OAAO,CAAC,UAAU;oBACrC,KAAK,EAAE,SAAS;oBAChB,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;oBACpC,OAAO,EAAE,UAAU;oBACnB,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC;oBAC3C,sBAAsB,EAAE,wBAAwB,CAAC,cAAc,IAAI,OAAO,CAAC;oBAC3E,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ;oBACpC,aAAa,EAAE,UAAU,CAAC,MAAM,CAAC,aAAa;iBAC/C,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;gBAEhB,IAAI,KAAK,EAAE,MAAM,QAAQ,IAAI,cAAc,EAAE,CAAC;oBAC5C,IAAI,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,SAAS,KAAK,EAAE,EAAE,CAAC;wBACpD,MAAM,YAAY,CAChB,QAAQ,CAAC,SAAS,EAClB,QAAQ,CAAC,YAAY,EAAE,OAAO,IAAI,eAAe,CAClD,CAAA;oBACH,CAAC;oBACD,OAAO,kBAAkB,CAAC,QAAQ,CAAC,OAAO,EAAE,IAA8B,EAAE,QAAQ,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;gBACjI,CAAC;gBAED,MAAM,IAAI,KAAK,CAAC,0BAA0B,SAAS,GAAG,CAAC,CAAA;YACzD,CAAC;oBAAS,CAAC;gBACT,QAAQ,CAAC,GAAG,EAAE,CAAA;YAChB,CAAC;QACH,CAAC;QAED,SAAS,CAAC,SAAiB,EAAE,OAAoD;YAC/E,YAAY,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAA;YAEpC,mBAAmB,EAAE,CAAA;YACrB,QAAQ,CAAC,IAAI,CAAC;gBACZ,SAAS,EAAE;oBACT,SAAS,EAAE,kBAAkB,EAAE;oBAC/B,KAAK,EAAE,SAAS;oBAChB,UAAU,EAAE,EAAE;oBACd,aAAa,EAAE,UAAU,CAAC,MAAM,CAAC,aAAa;oBAC9C,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ;iBACrC;gBACD,aAAa,EAAE,kBAAkB,EAAE;aACpC,CAAC,CAAA;YACF,iBAAiB,EAAE,CAAA;QACrB,CAAC;QAED,iBAAiB,CAAC,OAAqB,EAAE,UAAmB;YAC1D,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAA;YAClC,IAAI,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC/B,MAAM,IAAI,KAAK,CAAC,yDAAyD,OAAO,GAAG,CAAC,CAAA;YACtF,CAAC;YAED,MAAM,aAAa,GAAG,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;YAC9D,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;YAEzC,MAAM,SAAS,GAAG,qBAAqB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACrD,MAAM,cAAc,GAAG,kBAAkB,EAAE,CAAA;YAC3C,MAAM,UAAU,GAAG,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,OAAO,CAAC,CAAA;YAE/D,MAAM,WAAW,GAAG,oBAAoB,EAAO,CAAA;YAE/C,WAAW,CAAC,IAAI,CAAC;gBACf,SAAS,EAAE;oBACT,sBAAsB,EAAE,cAAc;oBACtC,eAAe,EAAE,MAAM,CAAC,UAAU,IAAI,GAAG,CAAC;oBAC1C,YAAY,EAAE;wBACZ,iBAAiB,EAAE,OAAO,CAAC,UAAU;wBACrC,KAAK,EAAE,SAAS;wBAChB,SAAS,EAAE,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;wBACpC,OAAO,EAAE,UAAU;wBACnB,QAAQ,EAAE,eAAe,CAAC,OAAO,CAAC,QAAQ,CAAC;wBAC3C,sBAAsB,EAAE,wBAAwB,CAAC,cAAc,IAAI,OAAO,CAAC;wBAC3E,QAAQ,EAAE,UAAU,CAAC,MAAM,CAAC,QAAQ;wBACpC,aAAa,EAAE,UAAU,CAAC,MAAM,CAAC,aAAa;qBAC/C;iBACF;aACF,CAAC,CAAA;YAEF,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,CAAC,YAAY,CAAC,WAAW,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAA;YAE1F,IAAI,cAAyC,CAAA;YAC7C,IAAI,aAAsC,CAAA;YAC1C,MAAM,aAAa,GAAG,IAAI,OAAO,CAAU,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBAC7D,cAAc,GAAG,OAAO,CAAA;gBACxB,aAAa,GAAG,MAAM,CAAA;YACxB,CAAC,CAAC,CAAA;YACF,IAAI,cAAc,GAAG,KAAK,CAEzB;YAAA,CAAC,KAAK,IAAI,EAAE;gBACX,IAAI,CAAC;oBACH,IAAI,KAAK,EAAE,MAAM,QAAQ,IAAI,cAAc,EAAE,CAAC;wBAC5C,IAAI,QAAQ,CAAC,aAAa,EAAE,CAAC;4BAC3B,IAAI,CAAC,cAAc,EAAE,CAAC;gCACpB,IAAI,QAAQ,CAAC,aAAa,CAAC,SAAS,IAAI,QAAQ,CAAC,aAAa,CAAC,SAAS,KAAK,EAAE,EAAE,CAAC;oCAChF,aAAa,CAAC,YAAY,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,EAAE,QAAQ,CAAC,aAAa,CAAC,YAAY,EAAE,OAAO,IAAI,eAAe,CAAC,CAAC,CAAA;gCAChI,CAAC;qCAAM,CAAC;oCACN,cAAc,CAAC,kBAAkB,CAAC,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,IAA8B,EAAE,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,aAAa,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAA;gCACpL,CAAC;gCACD,cAAc,GAAG,IAAI,CAAA;4BACvB,CAAC;wBACH,CAAC;6BAAM,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;4BAC3B,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,IAA8B,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,CAAC,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAA;4BAC5J,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;wBAC7B,CAAC;6BAAM,IAAI,QAAQ,CAAC,QAAQ,EAAE,CAAC;4BAC7B,aAAa,CAAC,QAAQ,EAAE,CAAA;4BACxB,MAAK;wBACP,CAAC;6BAAM,IAAI,QAAQ,CAAC,qBAAqB,EAAE,CAAC;4BAC1C,aAAa,CAAC,qBAAqB,CACjC,IAAI,KAAK,CAAC,QAAQ,CAAC,qBAAqB,CAAC,YAAY,EAAE,OAAO,IAAI,2BAA2B,CAAC,CAC/F,CAAA;4BACD,MAAK;wBACP,CAAC;oBACH,CAAC;gBACH,CAAC;gBAAC,OAAO,GAAG,EAAE,CAAC;oBACb,MAAM,KAAK,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAA;oBACjE,IAAI,CAAC,cAAc,EAAE,CAAC;wBACpB,aAAa,CAAC,KAAK,CAAC,CAAA;wBACpB,cAAc,GAAG,IAAI,CAAA;oBACvB,CAAC;oBACD,aAAa,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAA;gBAC5C,CAAC;wBAAS,CAAC;oBACT,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;gBAC/B,CAAC;YACH,CAAC,CAAC,EAAE,CAAA;YAEJ,OAAO;gBACL,aAAa;gBACb,OAAO,EAAE,aAAa,CAAC,QAAQ;gBAC/B,KAAK,EAAE,GAAG,EAAE;oBACV,WAAW,CAAC,IAAI,CAAC;wBACf,WAAW,EAAE;4BACX,sBAAsB,EAAE,cAAc;yBACvC;qBACF,CAAC,CAAA;oBACF,WAAW,CAAC,KAAK,EAAE,CAAA;oBACnB,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;oBAC7B,aAAa,CAAC,QAAQ,EAAE,CAAA;gBAC1B,CAAC;aACF,CAAA;QACH,CAAC;QAED,kBAAkB,CAAC,OAAqB,EAAE,UAAmB;YAC3D,MAAM,OAAO,GAAG,OAAO,CAAC,UAAU,CAAA;YAClC,IAAI,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC/B,MAAM,IAAI,KAAK,CAAC,yDAAyD,OAAO,GAAG,CAAC,CAAA;YACtF,CAAC;YAED,MAAM,aAAa,GAAG,mBAAmB,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;YAC9D,aAAa,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,CAAA;YAEzC,OAAO;gBACL,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,GAAG,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE;gBAC5E,KAAK,EAAE,GAAG,EAAE;oBACV,aAAa,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;oBAC7B,aAAa,CAAC,QAAQ,EAAE,CAAA;gBAC1B,CAAC;aACF,CAAA;QACH,CAAC;QAED,KAAK,CAAC,UAAU,CACd,SAAiB,EACjB,MAA0C,EAC1C,MAAe;YAEf,2BAA2B,CAAC,GAAG,EAAE;gBAC/B,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,aAAa,EAAE,CAAC;oBAC1C,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;wBACpB,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;wBACxB,SAAQ;oBACV,CAAC;oBACD,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;oBAClE,IAAI,gBAAgB,KAAK,SAAS;wBAAE,SAAQ;oBAC5C,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;wBAAE,SAAQ;oBAE5C,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAA;oBACtC,IAAI,CAAC,QAAQ,EAAE,CAAC;wBACd,OAAO,CAAC,qBAAqB,CAAC,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC,CAAA;wBACrF,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;oBAC1B,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,KAAK,CAAC,oBAAoB,CACxB,SAAiB,EACjB,MAA2C;YAE3C,2BAA2B,CAAC,GAAG,EAAE;gBAC/B,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,aAAa,EAAE,CAAC;oBAC1C,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;oBAClE,IAAI,gBAAgB,KAAK,SAAS;wBAAE,SAAQ;oBAC5C,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;wBAAE,SAAQ;oBACtD,OAAO,CAAC,QAAQ,EAAE,CAAA;oBAClB,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;gBAC1B,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;QAED,KAAK,CAAC,iCAAiC,CACrC,SAAiB,EACjB,KAAY,EACZ,MAA2C;YAE3C,2BAA2B,CAAC,GAAG,EAAE;gBAC/B,KAAK,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,aAAa,EAAE,CAAC;oBAC1C,MAAM,gBAAgB,GAAG,qBAAqB,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;oBAClE,IAAI,gBAAgB,KAAK,SAAS;wBAAE,SAAQ;oBAC5C,IAAI,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;wBAAE,SAAQ;oBACtD,OAAO,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAA;oBACpC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;gBAC1B,CAAC;YACH,CAAC,CAAC,CAAA;QACJ,CAAC;KACF,CAAA;AACH,CAAC"}
|
|
1
|
+
{"version":3,"file":"kronosdb.js","sourceRoot":"","sources":["../src/kronosdb.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
package/src/kronosdb.ts
CHANGED
|
@@ -17,8 +17,8 @@
|
|
|
17
17
|
*/
|
|
18
18
|
import { generateIdentifier, qualifiedNameFromString, qualifiedNameToString, type Serializer, withRetry, healthCheck, type ResilienceConfig } from "@kronos-ts/common"
|
|
19
19
|
import type { App } from "@kronos-ts/app"
|
|
20
|
-
import type { CommandBus, CommandMessage, EventProcessorModule, QueryBus, QueryMessage, SubscriptionQueryResult, UoWRunner, UpdateHandler } from "@kronos-ts/messaging"
|
|
21
|
-
import { createUpdateHandler, runAfterCommitOrImmediately } from "@kronos-ts/messaging"
|
|
20
|
+
import type { CommandBus, CommandMessage, EventProcessorModule, QueryBus, QueryMessage, SubscriptionFilter, SubscriptionQueryResult, UoWRunner, UpdateHandler } from "@kronos-ts/messaging"
|
|
21
|
+
import { applySubscriptionFilter, createUpdateHandler, runAfterCommitOrImmediately } from "@kronos-ts/messaging"
|
|
22
22
|
import type { KronosDbConnectionConfig } from "./connection.js"
|
|
23
23
|
import { connectToKronosDb, createKronosMetadata, type KronosDbConnection } from "./connection.js"
|
|
24
24
|
import { KronosDbErrorCode, mapErrorCode } from "./errors.js"
|
|
@@ -611,7 +611,7 @@ function createDistributedCommandBus(
|
|
|
611
611
|
// Distributed Query Bus
|
|
612
612
|
// ---------------------------------------------------------------------------
|
|
613
613
|
|
|
614
|
-
function createDistributedQueryBus(
|
|
614
|
+
export function createDistributedQueryBus(
|
|
615
615
|
connection: KronosDbConnection,
|
|
616
616
|
unitOfWorkRunner: UoWRunner,
|
|
617
617
|
shutdownLatch: ShutdownLatch,
|
|
@@ -628,6 +628,12 @@ function createDistributedQueryBus(
|
|
|
628
628
|
|
|
629
629
|
const localSegment = new Map<string, (message: QueryMessage) => Promise<unknown>>()
|
|
630
630
|
const subscriptions = new Map<string, UpdateHandler>()
|
|
631
|
+
// Subscriptions the SERVER has routed to this instance as the handler. Each
|
|
632
|
+
// entry was opened by some subscriber (possibly remote) for a query name we
|
|
633
|
+
// registered as a handler for. emitUpdate / completeSubscription apply the
|
|
634
|
+
// caller-supplied filter against these to decide which subscriber IDs to
|
|
635
|
+
// target. The server then routes each response back to that exact subscriber.
|
|
636
|
+
const handlerSubscriptions = new Map<string, { queryName: string; payload: unknown }>()
|
|
631
637
|
|
|
632
638
|
let outbound = createOutboundStream<any>()
|
|
633
639
|
let streamStarted = false
|
|
@@ -686,9 +692,84 @@ function createDistributedQueryBus(
|
|
|
686
692
|
}
|
|
687
693
|
})
|
|
688
694
|
|
|
695
|
+
async function handleSubscriptionQueryRequest(req: any): Promise<void> {
|
|
696
|
+
if (req.subscribe) {
|
|
697
|
+
const sub = req.subscribe
|
|
698
|
+
const subId: string = sub.subscriptionIdentifier
|
|
699
|
+
const proto = sub.queryRequest
|
|
700
|
+
if (!subId || !proto) return
|
|
701
|
+
|
|
702
|
+
const queryName: string = proto.query
|
|
703
|
+
const payload = deserializePayload(
|
|
704
|
+
proto.payload?.data as Uint8Array | undefined,
|
|
705
|
+
proto.payload?.type,
|
|
706
|
+
proto.payload?.revision,
|
|
707
|
+
)
|
|
708
|
+
handlerSubscriptions.set(subId, { queryName, payload })
|
|
709
|
+
|
|
710
|
+
const handler = localSegment.get(queryName)
|
|
711
|
+
let resultPayload: unknown
|
|
712
|
+
let errorCode = ""
|
|
713
|
+
let errorMsg = ""
|
|
714
|
+
|
|
715
|
+
if (handler) {
|
|
716
|
+
try {
|
|
717
|
+
const queryMessage: QueryMessage = {
|
|
718
|
+
identifier: proto.messageIdentifier,
|
|
719
|
+
name: qualifiedNameFromString(queryName),
|
|
720
|
+
payload,
|
|
721
|
+
metadata: metadataFromProto(proto.metadata ?? {}),
|
|
722
|
+
timestamp: Number(proto.timestamp),
|
|
723
|
+
}
|
|
724
|
+
resultPayload = await unitOfWorkRunner(queryMessage.metadata, async () => {
|
|
725
|
+
return handler(queryMessage)
|
|
726
|
+
})
|
|
727
|
+
} catch (err) {
|
|
728
|
+
errorCode = KronosDbErrorCode.QUERY_EXECUTION_ERROR
|
|
729
|
+
errorMsg = err instanceof Error ? err.message : String(err)
|
|
730
|
+
}
|
|
731
|
+
} else {
|
|
732
|
+
errorCode = KronosDbErrorCode.NO_HANDLER_FOR_QUERY
|
|
733
|
+
errorMsg = `No local handler for query "${queryName}"`
|
|
734
|
+
}
|
|
735
|
+
|
|
736
|
+
const responseSerialized = resultPayload !== undefined
|
|
737
|
+
? serializePayload("result", resultPayload)
|
|
738
|
+
: undefined
|
|
739
|
+
|
|
740
|
+
outbound.send({
|
|
741
|
+
subscriptionQueryResponse: {
|
|
742
|
+
messageIdentifier: generateIdentifier(),
|
|
743
|
+
subscriptionIdentifier: subId,
|
|
744
|
+
initialResult: {
|
|
745
|
+
messageIdentifier: generateIdentifier(),
|
|
746
|
+
requestIdentifier: proto.messageIdentifier,
|
|
747
|
+
errorCode,
|
|
748
|
+
errorMessage: errorCode
|
|
749
|
+
? { message: errorMsg, location: connection.config.componentName, details: [], errorCode }
|
|
750
|
+
: undefined,
|
|
751
|
+
payload: responseSerialized,
|
|
752
|
+
metadata: {},
|
|
753
|
+
processingInstructions: [],
|
|
754
|
+
},
|
|
755
|
+
},
|
|
756
|
+
instructionId: "",
|
|
757
|
+
})
|
|
758
|
+
return
|
|
759
|
+
}
|
|
760
|
+
if (req.unsubscribe) {
|
|
761
|
+
handlerSubscriptions.delete(req.unsubscribe.subscriptionIdentifier)
|
|
762
|
+
}
|
|
763
|
+
// flowControl is silently ignored; the bus doesn't track per-sub permits today.
|
|
764
|
+
}
|
|
765
|
+
|
|
689
766
|
async function processInboundQueries(inbound: AsyncIterable<any>) {
|
|
690
767
|
try {
|
|
691
768
|
for await (const message of inbound) {
|
|
769
|
+
if (message.subscriptionQueryRequest) {
|
|
770
|
+
await handleSubscriptionQueryRequest(message.subscriptionQueryRequest)
|
|
771
|
+
continue
|
|
772
|
+
}
|
|
692
773
|
if (!message.query) continue
|
|
693
774
|
|
|
694
775
|
permits--
|
|
@@ -944,39 +1025,56 @@ function createDistributedQueryBus(
|
|
|
944
1025
|
|
|
945
1026
|
async emitUpdate(
|
|
946
1027
|
queryName: string,
|
|
947
|
-
filter:
|
|
1028
|
+
filter: SubscriptionFilter,
|
|
948
1029
|
update: unknown,
|
|
949
1030
|
): Promise<void> {
|
|
950
1031
|
runAfterCommitOrImmediately(() => {
|
|
951
|
-
for (const [
|
|
952
|
-
if (
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
|
|
960
|
-
|
|
961
|
-
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
|
|
1032
|
+
for (const [subId, sub] of handlerSubscriptions) {
|
|
1033
|
+
if (sub.queryName !== queryName) continue
|
|
1034
|
+
if (!applySubscriptionFilter(filter, sub.payload)) continue
|
|
1035
|
+
|
|
1036
|
+
const serialized = serializePayload(queryName, update)
|
|
1037
|
+
outbound.send({
|
|
1038
|
+
subscriptionQueryResponse: {
|
|
1039
|
+
messageIdentifier: generateIdentifier(),
|
|
1040
|
+
subscriptionIdentifier: subId,
|
|
1041
|
+
update: {
|
|
1042
|
+
messageIdentifier: generateIdentifier(),
|
|
1043
|
+
payload: serialized,
|
|
1044
|
+
metadata: {},
|
|
1045
|
+
clientId: connection.config.clientId,
|
|
1046
|
+
componentName: connection.config.componentName,
|
|
1047
|
+
errorCode: "",
|
|
1048
|
+
errorMessage: undefined,
|
|
1049
|
+
},
|
|
1050
|
+
},
|
|
1051
|
+
instructionId: "",
|
|
1052
|
+
})
|
|
965
1053
|
}
|
|
966
1054
|
})
|
|
967
1055
|
},
|
|
968
1056
|
|
|
969
1057
|
async completeSubscription(
|
|
970
1058
|
queryName: string,
|
|
971
|
-
filter?:
|
|
1059
|
+
filter?: SubscriptionFilter,
|
|
972
1060
|
): Promise<void> {
|
|
973
1061
|
runAfterCommitOrImmediately(() => {
|
|
974
|
-
for (const [
|
|
975
|
-
|
|
976
|
-
if (
|
|
977
|
-
|
|
978
|
-
|
|
979
|
-
|
|
1062
|
+
for (const [subId, sub] of handlerSubscriptions) {
|
|
1063
|
+
if (sub.queryName !== queryName) continue
|
|
1064
|
+
if (filter && !applySubscriptionFilter(filter, sub.payload)) continue
|
|
1065
|
+
|
|
1066
|
+
outbound.send({
|
|
1067
|
+
subscriptionQueryResponse: {
|
|
1068
|
+
messageIdentifier: generateIdentifier(),
|
|
1069
|
+
subscriptionIdentifier: subId,
|
|
1070
|
+
complete: {
|
|
1071
|
+
clientId: connection.config.clientId,
|
|
1072
|
+
componentName: connection.config.componentName,
|
|
1073
|
+
},
|
|
1074
|
+
},
|
|
1075
|
+
instructionId: "",
|
|
1076
|
+
})
|
|
1077
|
+
handlerSubscriptions.delete(subId)
|
|
980
1078
|
}
|
|
981
1079
|
})
|
|
982
1080
|
},
|
|
@@ -984,15 +1082,32 @@ function createDistributedQueryBus(
|
|
|
984
1082
|
async completeSubscriptionExceptionally(
|
|
985
1083
|
queryName: string,
|
|
986
1084
|
error: Error,
|
|
987
|
-
filter?:
|
|
1085
|
+
filter?: SubscriptionFilter,
|
|
988
1086
|
): Promise<void> {
|
|
989
1087
|
runAfterCommitOrImmediately(() => {
|
|
990
|
-
for (const [
|
|
991
|
-
|
|
992
|
-
if (
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
1088
|
+
for (const [subId, sub] of handlerSubscriptions) {
|
|
1089
|
+
if (sub.queryName !== queryName) continue
|
|
1090
|
+
if (filter && !applySubscriptionFilter(filter, sub.payload)) continue
|
|
1091
|
+
|
|
1092
|
+
outbound.send({
|
|
1093
|
+
subscriptionQueryResponse: {
|
|
1094
|
+
messageIdentifier: generateIdentifier(),
|
|
1095
|
+
subscriptionIdentifier: subId,
|
|
1096
|
+
completeExceptionally: {
|
|
1097
|
+
clientId: connection.config.clientId,
|
|
1098
|
+
componentName: connection.config.componentName,
|
|
1099
|
+
errorCode: KronosDbErrorCode.QUERY_EXECUTION_ERROR,
|
|
1100
|
+
errorMessage: {
|
|
1101
|
+
message: error.message,
|
|
1102
|
+
location: connection.config.componentName,
|
|
1103
|
+
details: [],
|
|
1104
|
+
errorCode: KronosDbErrorCode.QUERY_EXECUTION_ERROR,
|
|
1105
|
+
},
|
|
1106
|
+
},
|
|
1107
|
+
},
|
|
1108
|
+
instructionId: "",
|
|
1109
|
+
})
|
|
1110
|
+
handlerSubscriptions.delete(subId)
|
|
996
1111
|
}
|
|
997
1112
|
})
|
|
998
1113
|
},
|