@kronos-ts/kronosdb 0.1.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/connection.d.ts +86 -0
- package/dist/connection.d.ts.map +1 -0
- package/dist/connection.js +133 -0
- package/dist/connection.js.map +1 -0
- package/dist/errors.d.ts +72 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +149 -0
- package/dist/errors.js.map +1 -0
- package/dist/event-processor-info.d.ts +32 -0
- package/dist/event-processor-info.d.ts.map +1 -0
- package/dist/event-processor-info.js +24 -0
- package/dist/event-processor-info.js.map +1 -0
- package/dist/flow-controlled-sender.d.ts +12 -0
- package/dist/flow-controlled-sender.d.ts.map +1 -0
- package/dist/flow-controlled-sender.js +53 -0
- package/dist/flow-controlled-sender.js.map +1 -0
- package/dist/generated/command.d.ts +169 -0
- package/dist/generated/command.d.ts.map +1 -0
- package/dist/generated/command.js +964 -0
- package/dist/generated/command.js.map +1 -0
- package/dist/generated/common.d.ts +76 -0
- package/dist/generated/common.d.ts.map +1 -0
- package/dist/generated/common.js +648 -0
- package/dist/generated/common.js.map +1 -0
- package/dist/generated/eventstore.d.ts +337 -0
- package/dist/generated/eventstore.d.ts.map +1 -0
- package/dist/generated/eventstore.js +1757 -0
- package/dist/generated/eventstore.js.map +1 -0
- package/dist/generated/platform.d.ts +242 -0
- package/dist/generated/platform.d.ts.map +1 -0
- package/dist/generated/platform.js +1525 -0
- package/dist/generated/platform.js.map +1 -0
- package/dist/generated/query.d.ts +265 -0
- package/dist/generated/query.d.ts.map +1 -0
- package/dist/generated/query.js +2114 -0
- package/dist/generated/query.js.map +1 -0
- package/dist/generated/snapshot.d.ts +180 -0
- package/dist/generated/snapshot.d.ts.map +1 -0
- package/dist/generated/snapshot.js +861 -0
- package/dist/generated/snapshot.js.map +1 -0
- package/dist/index.d.ts +13 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +13 -0
- package/dist/index.js.map +1 -0
- package/dist/kronosdb-event-store.d.ts +17 -0
- package/dist/kronosdb-event-store.d.ts.map +1 -0
- package/dist/kronosdb-event-store.js +328 -0
- package/dist/kronosdb-event-store.js.map +1 -0
- package/dist/kronosdb-snapshot-store.d.ts +10 -0
- package/dist/kronosdb-snapshot-store.d.ts.map +1 -0
- package/dist/kronosdb-snapshot-store.js +79 -0
- package/dist/kronosdb-snapshot-store.js.map +1 -0
- package/dist/kronosdb.d.ts +53 -0
- package/dist/kronosdb.d.ts.map +1 -0
- package/dist/kronosdb.js +852 -0
- package/dist/kronosdb.js.map +1 -0
- package/dist/metadata-conversion.d.ts +37 -0
- package/dist/metadata-conversion.d.ts.map +1 -0
- package/dist/metadata-conversion.js +75 -0
- package/dist/metadata-conversion.js.map +1 -0
- package/dist/outbound-stream.d.ts +15 -0
- package/dist/outbound-stream.d.ts.map +1 -0
- package/dist/outbound-stream.js +39 -0
- package/dist/outbound-stream.js.map +1 -0
- package/dist/platform-service.d.ts +87 -0
- package/dist/platform-service.d.ts.map +1 -0
- package/dist/platform-service.js +218 -0
- package/dist/platform-service.js.map +1 -0
- package/dist/service-definitions.d.ts +187 -0
- package/dist/service-definitions.d.ts.map +1 -0
- package/dist/service-definitions.js +18 -0
- package/dist/service-definitions.js.map +1 -0
- package/dist/shutdown-latch.d.ts +18 -0
- package/dist/shutdown-latch.d.ts.map +1 -0
- package/dist/shutdown-latch.js +51 -0
- package/dist/shutdown-latch.js.map +1 -0
- package/package.json +69 -0
- package/src/connection.ts +235 -0
- package/src/errors.ts +173 -0
- package/src/event-processor-info.ts +53 -0
- package/src/flow-controlled-sender.ts +73 -0
- package/src/generated/command.ts +1226 -0
- package/src/generated/common.ts +770 -0
- package/src/generated/eventstore.ts +2241 -0
- package/src/generated/platform.ts +1914 -0
- package/src/generated/query.ts +2571 -0
- package/src/generated/snapshot.ts +1110 -0
- package/src/index.ts +87 -0
- package/src/kronosdb-event-store.ts +401 -0
- package/src/kronosdb-snapshot-store.ts +104 -0
- package/src/kronosdb.ts +1000 -0
- package/src/metadata-conversion.ts +85 -0
- package/src/outbound-stream.ts +52 -0
- package/src/platform-service.ts +297 -0
- package/src/service-definitions.ts +25 -0
- package/src/shutdown-latch.ts +74 -0
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import { BinaryReader, BinaryWriter } from "@bufbuild/protobuf/wire";
|
|
2
|
+
import type { CallContext, CallOptions } from "nice-grpc-common";
|
|
3
|
+
import { ErrorMessage, FlowControl, InstructionAck, MetadataValue, ProcessingInstruction, SerializedObject } from "./common.js";
|
|
4
|
+
export declare const protobufPackage = "kronosdb.command";
|
|
5
|
+
/** Messages sent FROM the command handler TO the server. */
|
|
6
|
+
export interface CommandHandlerOutbound {
|
|
7
|
+
/** Register as a handler for a command type. */
|
|
8
|
+
subscribe?: CommandSubscription | undefined;
|
|
9
|
+
/** Unregister as a handler for a command type. */
|
|
10
|
+
unsubscribe?: CommandSubscription | undefined;
|
|
11
|
+
/** Grant the server permits to send more commands. */
|
|
12
|
+
flowControl?: FlowControl | undefined;
|
|
13
|
+
/** Return the result of processing a command. */
|
|
14
|
+
commandResponse?: CommandResponse | undefined;
|
|
15
|
+
/** Acknowledge a previously received instruction. */
|
|
16
|
+
ack?: InstructionAck | undefined;
|
|
17
|
+
/** If set, the server will acknowledge this instruction. */
|
|
18
|
+
instructionId: string;
|
|
19
|
+
}
|
|
20
|
+
/** Messages sent FROM the server TO the command handler. */
|
|
21
|
+
export interface CommandHandlerInbound {
|
|
22
|
+
/** Acknowledgement of a handler instruction. */
|
|
23
|
+
ack?: InstructionAck | undefined;
|
|
24
|
+
/** A command to process. */
|
|
25
|
+
command?: Command | undefined;
|
|
26
|
+
/** If set, the handler should acknowledge this instruction. */
|
|
27
|
+
instructionId: string;
|
|
28
|
+
}
|
|
29
|
+
/** A command to be routed to a handler. */
|
|
30
|
+
export interface Command {
|
|
31
|
+
/** Unique identifier for this command message. */
|
|
32
|
+
messageIdentifier: string;
|
|
33
|
+
/** The command name, used for routing to the correct handler. */
|
|
34
|
+
name: string;
|
|
35
|
+
/** Timestamp of command creation. */
|
|
36
|
+
timestamp: bigint;
|
|
37
|
+
/** The command payload. */
|
|
38
|
+
payload: SerializedObject | undefined;
|
|
39
|
+
/** Metadata providing context. */
|
|
40
|
+
metadata: {
|
|
41
|
+
[key: string]: MetadataValue;
|
|
42
|
+
};
|
|
43
|
+
/** Routing and processing instructions. */
|
|
44
|
+
processingInstructions: ProcessingInstruction[];
|
|
45
|
+
/** The client instance that dispatched this command. */
|
|
46
|
+
clientId: string;
|
|
47
|
+
/** The component name that dispatched this command. */
|
|
48
|
+
componentName: string;
|
|
49
|
+
}
|
|
50
|
+
export interface Command_MetadataEntry {
|
|
51
|
+
key: string;
|
|
52
|
+
value: MetadataValue | undefined;
|
|
53
|
+
}
|
|
54
|
+
/** Result of command handler execution. */
|
|
55
|
+
export interface CommandResponse {
|
|
56
|
+
/** Unique identifier for this response. */
|
|
57
|
+
messageIdentifier: string;
|
|
58
|
+
/** Error code, if the command failed. */
|
|
59
|
+
errorCode: string;
|
|
60
|
+
/** Error details, if the command failed. */
|
|
61
|
+
errorMessage: ErrorMessage | undefined;
|
|
62
|
+
/** The result payload, if any. */
|
|
63
|
+
payload: SerializedObject | undefined;
|
|
64
|
+
/** Response metadata. */
|
|
65
|
+
metadata: {
|
|
66
|
+
[key: string]: MetadataValue;
|
|
67
|
+
};
|
|
68
|
+
/** Processing instructions for the response. */
|
|
69
|
+
processingInstructions: ProcessingInstruction[];
|
|
70
|
+
/** The identifier of the command this is a response to. */
|
|
71
|
+
requestIdentifier: string;
|
|
72
|
+
}
|
|
73
|
+
export interface CommandResponse_MetadataEntry {
|
|
74
|
+
key: string;
|
|
75
|
+
value: MetadataValue | undefined;
|
|
76
|
+
}
|
|
77
|
+
/** A handler's registration for a command type. */
|
|
78
|
+
export interface CommandSubscription {
|
|
79
|
+
/** Unique identifier for this subscription message. */
|
|
80
|
+
messageId: string;
|
|
81
|
+
/** The command name this handler can process. */
|
|
82
|
+
command: string;
|
|
83
|
+
/** The component name of the handler. */
|
|
84
|
+
componentName: string;
|
|
85
|
+
/** The unique client instance identifier. */
|
|
86
|
+
clientId: string;
|
|
87
|
+
/**
|
|
88
|
+
* Relative load capacity. Higher = more commands routed here.
|
|
89
|
+
* 0 is treated as 100 (default).
|
|
90
|
+
*/
|
|
91
|
+
loadFactor: number;
|
|
92
|
+
}
|
|
93
|
+
export declare const CommandHandlerOutbound: MessageFns<CommandHandlerOutbound>;
|
|
94
|
+
export declare const CommandHandlerInbound: MessageFns<CommandHandlerInbound>;
|
|
95
|
+
export declare const Command: MessageFns<Command>;
|
|
96
|
+
export declare const Command_MetadataEntry: MessageFns<Command_MetadataEntry>;
|
|
97
|
+
export declare const CommandResponse: MessageFns<CommandResponse>;
|
|
98
|
+
export declare const CommandResponse_MetadataEntry: MessageFns<CommandResponse_MetadataEntry>;
|
|
99
|
+
export declare const CommandSubscription: MessageFns<CommandSubscription>;
|
|
100
|
+
/**
|
|
101
|
+
* Service for dispatching and handling commands.
|
|
102
|
+
* Commands are routed to exactly one handler, load-balanced across instances.
|
|
103
|
+
*/
|
|
104
|
+
export type CommandServiceDefinition = typeof CommandServiceDefinition;
|
|
105
|
+
export declare const CommandServiceDefinition: {
|
|
106
|
+
readonly name: "CommandService";
|
|
107
|
+
readonly fullName: "kronosdb.command.CommandService";
|
|
108
|
+
readonly methods: {
|
|
109
|
+
/**
|
|
110
|
+
* Opens a bidirectional stream for a command handler.
|
|
111
|
+
* The client registers which command types it handles and receives
|
|
112
|
+
* commands to process. Responses are sent back on the same stream.
|
|
113
|
+
*/
|
|
114
|
+
readonly openStream: {
|
|
115
|
+
readonly name: "OpenStream";
|
|
116
|
+
readonly requestType: typeof CommandHandlerOutbound;
|
|
117
|
+
readonly requestStream: true;
|
|
118
|
+
readonly responseType: typeof CommandHandlerInbound;
|
|
119
|
+
readonly responseStream: true;
|
|
120
|
+
readonly options: {};
|
|
121
|
+
};
|
|
122
|
+
/** Dispatches a command to a registered handler and returns the result. */
|
|
123
|
+
readonly dispatch: {
|
|
124
|
+
readonly name: "Dispatch";
|
|
125
|
+
readonly requestType: typeof Command;
|
|
126
|
+
readonly requestStream: false;
|
|
127
|
+
readonly responseType: typeof CommandResponse;
|
|
128
|
+
readonly responseStream: false;
|
|
129
|
+
readonly options: {};
|
|
130
|
+
};
|
|
131
|
+
};
|
|
132
|
+
};
|
|
133
|
+
export interface CommandServiceImplementation<CallContextExt = {}> {
|
|
134
|
+
/**
|
|
135
|
+
* Opens a bidirectional stream for a command handler.
|
|
136
|
+
* The client registers which command types it handles and receives
|
|
137
|
+
* commands to process. Responses are sent back on the same stream.
|
|
138
|
+
*/
|
|
139
|
+
openStream(request: AsyncIterable<CommandHandlerOutbound>, context: CallContext & CallContextExt): ServerStreamingMethodResult<DeepPartial<CommandHandlerInbound>>;
|
|
140
|
+
/** Dispatches a command to a registered handler and returns the result. */
|
|
141
|
+
dispatch(request: Command, context: CallContext & CallContextExt): Promise<DeepPartial<CommandResponse>>;
|
|
142
|
+
}
|
|
143
|
+
export interface CommandServiceClient<CallOptionsExt = {}> {
|
|
144
|
+
/**
|
|
145
|
+
* Opens a bidirectional stream for a command handler.
|
|
146
|
+
* The client registers which command types it handles and receives
|
|
147
|
+
* commands to process. Responses are sent back on the same stream.
|
|
148
|
+
*/
|
|
149
|
+
openStream(request: AsyncIterable<DeepPartial<CommandHandlerOutbound>>, options?: CallOptions & CallOptionsExt): AsyncIterable<CommandHandlerInbound>;
|
|
150
|
+
/** Dispatches a command to a registered handler and returns the result. */
|
|
151
|
+
dispatch(request: DeepPartial<Command>, options?: CallOptions & CallOptionsExt): Promise<CommandResponse>;
|
|
152
|
+
}
|
|
153
|
+
type Builtin = Date | Function | Uint8Array | string | number | boolean | bigint | undefined;
|
|
154
|
+
export type DeepPartial<T> = T extends Builtin ? T : T extends globalThis.Array<infer U> ? globalThis.Array<DeepPartial<U>> : T extends ReadonlyArray<infer U> ? ReadonlyArray<DeepPartial<U>> : T extends {} ? {
|
|
155
|
+
[K in keyof T]?: DeepPartial<T[K]>;
|
|
156
|
+
} : Partial<T>;
|
|
157
|
+
export type ServerStreamingMethodResult<Response> = {
|
|
158
|
+
[Symbol.asyncIterator](): AsyncIterator<Response, void>;
|
|
159
|
+
};
|
|
160
|
+
export interface MessageFns<T> {
|
|
161
|
+
encode(message: T, writer?: BinaryWriter): BinaryWriter;
|
|
162
|
+
decode(input: BinaryReader | Uint8Array, length?: number): T;
|
|
163
|
+
fromJSON(object: any): T;
|
|
164
|
+
toJSON(message: T): unknown;
|
|
165
|
+
create(base?: DeepPartial<T>): T;
|
|
166
|
+
fromPartial(object: DeepPartial<T>): T;
|
|
167
|
+
}
|
|
168
|
+
export {};
|
|
169
|
+
//# sourceMappingURL=command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../src/generated/command.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACjE,OAAO,EACL,YAAY,EACZ,WAAW,EACX,cAAc,EACd,aAAa,EACb,qBAAqB,EACrB,gBAAgB,EACjB,MAAM,aAAa,CAAC;AAErB,eAAO,MAAM,eAAe,qBAAqB,CAAC;AAElD,4DAA4D;AAC5D,MAAM,WAAW,sBAAsB;IACrC,gDAAgD;IAChD,SAAS,CAAC,EACN,mBAAmB,GACnB,SAAS,CAAC;IACd,kDAAkD;IAClD,WAAW,CAAC,EACR,mBAAmB,GACnB,SAAS,CAAC;IACd,sDAAsD;IACtD,WAAW,CAAC,EACR,WAAW,GACX,SAAS,CAAC;IACd,iDAAiD;IACjD,eAAe,CAAC,EACZ,eAAe,GACf,SAAS,CAAC;IACd,qDAAqD;IACrD,GAAG,CAAC,EACA,cAAc,GACd,SAAS,CAAC;IACd,4DAA4D;IAC5D,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,4DAA4D;AAC5D,MAAM,WAAW,qBAAqB;IACpC,gDAAgD;IAChD,GAAG,CAAC,EACA,cAAc,GACd,SAAS,CAAC;IACd,4BAA4B;IAC5B,OAAO,CAAC,EACJ,OAAO,GACP,SAAS,CAAC;IACd,+DAA+D;IAC/D,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,2CAA2C;AAC3C,MAAM,WAAW,OAAO;IACtB,kDAAkD;IAClD,iBAAiB,EAAE,MAAM,CAAC;IAC1B,iEAAiE;IACjE,IAAI,EAAE,MAAM,CAAC;IACb,qCAAqC;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,2BAA2B;IAC3B,OAAO,EACH,gBAAgB,GAChB,SAAS,CAAC;IACd,kCAAkC;IAClC,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAA;KAAE,CAAC;IAC3C,2CAA2C;IAC3C,sBAAsB,EAAE,qBAAqB,EAAE,CAAC;IAChD,wDAAwD;IACxD,QAAQ,EAAE,MAAM,CAAC;IACjB,uDAAuD;IACvD,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,aAAa,GAAG,SAAS,CAAC;CAClC;AAED,2CAA2C;AAC3C,MAAM,WAAW,eAAe;IAC9B,2CAA2C;IAC3C,iBAAiB,EAAE,MAAM,CAAC;IAC1B,yCAAyC;IACzC,SAAS,EAAE,MAAM,CAAC;IAClB,4CAA4C;IAC5C,YAAY,EACR,YAAY,GACZ,SAAS,CAAC;IACd,kCAAkC;IAClC,OAAO,EACH,gBAAgB,GAChB,SAAS,CAAC;IACd,yBAAyB;IACzB,QAAQ,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,aAAa,CAAA;KAAE,CAAC;IAC3C,gDAAgD;IAChD,sBAAsB,EAAE,qBAAqB,EAAE,CAAC;IAChD,2DAA2D;IAC3D,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,6BAA6B;IAC5C,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,aAAa,GAAG,SAAS,CAAC;CAClC;AAED,mDAAmD;AACnD,MAAM,WAAW,mBAAmB;IAClC,uDAAuD;IACvD,SAAS,EAAE,MAAM,CAAC;IAClB,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,aAAa,EAAE,MAAM,CAAC;IACtB,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;CACpB;AAaD,eAAO,MAAM,sBAAsB,EAAE,UAAU,CAAC,sBAAsB,CA4JrE,CAAC;AAMF,eAAO,MAAM,qBAAqB,EAAE,UAAU,CAAC,qBAAqB,CA8FnE,CAAC;AAeF,eAAO,MAAM,OAAO,EAAE,UAAU,CAAC,OAAO,CAqNvC,CAAC;AAMF,eAAO,MAAM,qBAAqB,EAAE,UAAU,CAAC,qBAAqB,CAwEnE,CAAC;AAcF,eAAO,MAAM,eAAe,EAAE,UAAU,CAAC,eAAe,CAwMvD,CAAC;AAMF,eAAO,MAAM,6BAA6B,EAAE,UAAU,CAAC,6BAA6B,CAwEnF,CAAC;AAMF,eAAO,MAAM,mBAAmB,EAAE,UAAU,CAAC,mBAAmB,CAsI/D,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,wBAAwB,GAAG,OAAO,wBAAwB,CAAC;AACvE,eAAO,MAAM,wBAAwB;;;;QAIjC;;;;WAIG;;;kCAGsC,OAAO,sBAAsB;;mCAE7B,OAAO,qBAAqB;;;;QAIrE,2EAA2E;;;kCAGjD,OAAO,OAAO;;mCAEL,OAAO,eAAe;;;;;CAKnD,CAAC;AAEX,MAAM,WAAW,4BAA4B,CAAC,cAAc,GAAG,EAAE;IAC/D;;;;OAIG;IACH,UAAU,CACR,OAAO,EAAE,aAAa,CAAC,sBAAsB,CAAC,EAC9C,OAAO,EAAE,WAAW,GAAG,cAAc,GACpC,2BAA2B,CAAC,WAAW,CAAC,qBAAqB,CAAC,CAAC,CAAC;IACnE,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,GAAG,cAAc,GAAG,OAAO,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC,CAAC;CAC1G;AAED,MAAM,WAAW,oBAAoB,CAAC,cAAc,GAAG,EAAE;IACvD;;;;OAIG;IACH,UAAU,CACR,OAAO,EAAE,aAAa,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC,EAC3D,OAAO,CAAC,EAAE,WAAW,GAAG,cAAc,GACrC,aAAa,CAAC,qBAAqB,CAAC,CAAC;IACxC,2EAA2E;IAC3E,QAAQ,CAAC,OAAO,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAC3G;AAED,KAAK,OAAO,GAAG,IAAI,GAAG,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAC;AAE7F,MAAM,MAAM,WAAW,CAAC,CAAC,IAAI,CAAC,SAAS,OAAO,GAAG,CAAC,GAC9C,CAAC,SAAS,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GACtE,CAAC,SAAS,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAChE,CAAC,SAAS,EAAE,GAAG;KAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAAE,GACrD,OAAO,CAAC,CAAC,CAAC,CAAC;AAUf,MAAM,MAAM,2BAA2B,CAAC,QAAQ,IAAI;IAAE,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;CAAE,CAAC;AAEhH,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,MAAM,CAAC,OAAO,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,YAAY,CAAC;IACxD,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,UAAU,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,CAAC,CAAC;IAC7D,QAAQ,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;IACzB,MAAM,CAAC,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC;IAC5B,MAAM,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IACjC,WAAW,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;CACxC"}
|