velocious 1.0.418 → 1.0.420
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/README.md +1 -1
- package/build/src/database/pool/async-tracked-multi-connection.d.ts +142 -0
- package/build/src/database/pool/async-tracked-multi-connection.d.ts.map +1 -1
- package/build/src/database/pool/async-tracked-multi-connection.js +249 -93
- package/build/src/database/pool/base.d.ts +4 -0
- package/build/src/database/pool/base.d.ts.map +1 -1
- package/build/src/database/pool/base.js +2 -1
- package/build/src/database/pool/single-multi-use.d.ts.map +1 -1
- package/build/src/database/pool/single-multi-use.js +6 -5
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1442,7 +1442,7 @@ database: {
|
|
|
1442
1442
|
}
|
|
1443
1443
|
```
|
|
1444
1444
|
|
|
1445
|
-
`pool.max` caps live async-tracked connections for that pool. When the cap is reached, new checkouts wait until a matching checked-in connection can be handed over or capacity is freed.
|
|
1445
|
+
`pool.max` caps live async-tracked connections for that pool. When the cap is reached, new checkouts wait until a matching checked-in connection can be handed over or capacity is freed. The built-in debug endpoint reports each in-use connection's `checkedOutForMs`, each idle connection's `idleForMs`, and queued `pendingCheckouts[].waitingForMs` so production diagnostics can distinguish long-held checkouts from pool-capacity waits.
|
|
1446
1446
|
|
|
1447
1447
|
# Websockets
|
|
1448
1448
|
|
|
@@ -2,6 +2,7 @@ export const CLOSED_CONNECTION: unique symbol;
|
|
|
2
2
|
/**
|
|
3
3
|
* @typedef {object} PendingCheckout
|
|
4
4
|
* @property {import("../../configuration-types.js").DatabaseConfigurationType} databaseConfig - Resolved database configuration needed by the checkout.
|
|
5
|
+
* @property {number} enqueuedAt - Timestamp when the checkout started waiting.
|
|
5
6
|
* @property {import("./base.js").ConnectionCheckoutOptions} options - Checkout options.
|
|
6
7
|
* @property {string} reuseKey - Database configuration reuse key needed by the checkout.
|
|
7
8
|
* @property {(connection: import("../drivers/base.js").default) => void} resolve - Resolves with an activated connection.
|
|
@@ -68,6 +69,14 @@ export default class VelociousDatabasePoolAsyncTrackedMultiConnection extends Ba
|
|
|
68
69
|
* @returns {Promise<void>} - Resolves when the connection is checked in or closed.
|
|
69
70
|
*/
|
|
70
71
|
checkin(connection: import("../drivers/base.js").default): Promise<void>;
|
|
72
|
+
/**
|
|
73
|
+
* @param {import("../drivers/base.js").default} connection - Connection being checked in.
|
|
74
|
+
* @param {number | undefined} id - Connection checkout id.
|
|
75
|
+
* @returns {void}
|
|
76
|
+
*/
|
|
77
|
+
untrackConnectionInUse(connection: import("../drivers/base.js").default, id: number | undefined): void;
|
|
78
|
+
/** @returns {Promise<void>} - Resolves once idle reaping has been scheduled or run. */
|
|
79
|
+
handleCheckedInIdleConnection(): Promise<void>;
|
|
71
80
|
/**
|
|
72
81
|
* @param {string} reuseKey - Database configuration reuse key.
|
|
73
82
|
* @param {object} [args] - Options.
|
|
@@ -91,6 +100,11 @@ export default class VelociousDatabasePoolAsyncTrackedMultiConnection extends Ba
|
|
|
91
100
|
activateConnection(connection: import("../drivers/base.js").default, options?: import("./base.js").ConnectionCheckoutOptions): Promise<import("../drivers/base.js").default>;
|
|
92
101
|
/** @returns {number | undefined} - Configured max live connections. */
|
|
93
102
|
maxConnections(): number | undefined;
|
|
103
|
+
/**
|
|
104
|
+
* @param {unknown} value - Candidate max connection count.
|
|
105
|
+
* @returns {value is number} - Whether the value is a valid max connection count.
|
|
106
|
+
*/
|
|
107
|
+
validMaxConnections(value: unknown): value is number;
|
|
94
108
|
/** @returns {number} - Number of live and in-progress connections. */
|
|
95
109
|
liveConnectionCount(): number;
|
|
96
110
|
/** @returns {boolean} - Whether a new connection can be spawned. */
|
|
@@ -112,6 +126,23 @@ export default class VelociousDatabasePoolAsyncTrackedMultiConnection extends Ba
|
|
|
112
126
|
drainPendingCheckouts(): Promise<void>;
|
|
113
127
|
/** @returns {Promise<void>} - Resolves when pending checkouts have been drained as far as possible. */
|
|
114
128
|
drainPendingCheckoutsActual(): Promise<void>;
|
|
129
|
+
/** @returns {Promise<boolean>} - Whether a pending checkout was resolved with an idle connection. */
|
|
130
|
+
resolvePendingCheckoutWithMatchingIdleConnection(): Promise<boolean>;
|
|
131
|
+
/**
|
|
132
|
+
* @param {PendingCheckout} checkout - Checkout waiting for a connection.
|
|
133
|
+
* @returns {Promise<boolean>} - Whether an idle connection was closed to free capacity.
|
|
134
|
+
*/
|
|
135
|
+
closeIdleConnectionForPendingCheckoutCapacity(checkout: PendingCheckout): Promise<boolean>;
|
|
136
|
+
/**
|
|
137
|
+
* @param {string} reuseKey - Database configuration reuse key.
|
|
138
|
+
* @returns {import("../drivers/base.js").default | undefined} - Matching idle connection, if present.
|
|
139
|
+
*/
|
|
140
|
+
findIdleConnectionForReuseKey(reuseKey: string): import("../drivers/base.js").default | undefined;
|
|
141
|
+
/**
|
|
142
|
+
* @param {PendingCheckout} checkout - Checkout waiting for a connection.
|
|
143
|
+
* @returns {Promise<import("../drivers/base.js").default | undefined>} - Matching idle connection, if one can be reused.
|
|
144
|
+
*/
|
|
145
|
+
idleConnectionForPendingCheckout(checkout: PendingCheckout): Promise<import("../drivers/base.js").default | undefined>;
|
|
115
146
|
/**
|
|
116
147
|
* @param {PendingCheckout} checkout - Checkout request to resolve.
|
|
117
148
|
* @returns {Promise<void>} - Resolves when the checkout has been handled.
|
|
@@ -125,6 +156,13 @@ export default class VelociousDatabasePoolAsyncTrackedMultiConnection extends Ba
|
|
|
125
156
|
resolvePendingCheckout(checkout: PendingCheckout, connection: import("../drivers/base.js").default): Promise<void>;
|
|
126
157
|
/** @returns {Promise<boolean>} - Whether an idle connection was closed to free capacity. */
|
|
127
158
|
closeOneIdleConnectionForCapacity(): Promise<boolean>;
|
|
159
|
+
/** @returns {import("../drivers/base.js").default} - Fallback connection, if present. */
|
|
160
|
+
currentFallbackConnectionOrFail(): import("../drivers/base.js").default;
|
|
161
|
+
/**
|
|
162
|
+
* @param {number} id - Checked-out connection id.
|
|
163
|
+
* @returns {void}
|
|
164
|
+
*/
|
|
165
|
+
ensureConnectionIsInUse(id: number): void;
|
|
128
166
|
/**
|
|
129
167
|
* Registers a fallback connection for this pool identifier that will be used when no async context is available.
|
|
130
168
|
* @param {import("../drivers/base.js").default} connection - Connection.
|
|
@@ -140,6 +178,56 @@ export default class VelociousDatabasePoolAsyncTrackedMultiConnection extends Ba
|
|
|
140
178
|
setTestSharedConnection(connection: import("../drivers/base.js").default): void;
|
|
141
179
|
/** @returns {void} */
|
|
142
180
|
clearTestSharedConnection(): void;
|
|
181
|
+
/**
|
|
182
|
+
* @param {number} now - Current timestamp.
|
|
183
|
+
* @returns {{connections: Array<Record<string, unknown>>, seenConnections: Set<import("../drivers/base.js").default>}} - Connection snapshots and seen set.
|
|
184
|
+
*/
|
|
185
|
+
debugConnectionSnapshots(now: number): {
|
|
186
|
+
connections: Array<Record<string, unknown>>;
|
|
187
|
+
seenConnections: Set<import("../drivers/base.js").default>;
|
|
188
|
+
};
|
|
189
|
+
/**
|
|
190
|
+
* @param {{connections: Array<Record<string, unknown>>, now: number, seenConnections: Set<import("../drivers/base.js").default>}} args - Snapshot collection state.
|
|
191
|
+
* @returns {void}
|
|
192
|
+
*/
|
|
193
|
+
addInUseDebugConnectionSnapshots({ connections, now, seenConnections }: {
|
|
194
|
+
connections: Array<Record<string, unknown>>;
|
|
195
|
+
now: number;
|
|
196
|
+
seenConnections: Set<import("../drivers/base.js").default>;
|
|
197
|
+
}): void;
|
|
198
|
+
/**
|
|
199
|
+
* @param {{connections: Array<Record<string, unknown>>, now: number, seenConnections: Set<import("../drivers/base.js").default>}} args - Snapshot collection state.
|
|
200
|
+
* @returns {void}
|
|
201
|
+
*/
|
|
202
|
+
addIdleDebugConnectionSnapshots({ connections, now, seenConnections }: {
|
|
203
|
+
connections: Array<Record<string, unknown>>;
|
|
204
|
+
now: number;
|
|
205
|
+
seenConnections: Set<import("../drivers/base.js").default>;
|
|
206
|
+
}): void;
|
|
207
|
+
/**
|
|
208
|
+
* @param {{connections: Array<Record<string, unknown>>, seenConnections: Set<import("../drivers/base.js").default>}} args - Snapshot collection state.
|
|
209
|
+
* @returns {void}
|
|
210
|
+
*/
|
|
211
|
+
addFallbackDebugConnectionSnapshots({ connections, seenConnections }: {
|
|
212
|
+
connections: Array<Record<string, unknown>>;
|
|
213
|
+
seenConnections: Set<import("../drivers/base.js").default>;
|
|
214
|
+
}): void;
|
|
215
|
+
/**
|
|
216
|
+
* @param {{connection: import("../drivers/base.js").default | undefined, connections: Array<Record<string, unknown>>, reapable?: boolean, seenConnections: Set<import("../drivers/base.js").default>, state: string}} args - Snapshot collection state.
|
|
217
|
+
* @returns {void}
|
|
218
|
+
*/
|
|
219
|
+
addDebugConnectionSnapshotIfUnseen({ connection, connections, reapable, seenConnections, state }: {
|
|
220
|
+
connection: import("../drivers/base.js").default | undefined;
|
|
221
|
+
connections: Array<Record<string, unknown>>;
|
|
222
|
+
reapable?: boolean;
|
|
223
|
+
seenConnections: Set<import("../drivers/base.js").default>;
|
|
224
|
+
state: string;
|
|
225
|
+
}): void;
|
|
226
|
+
/**
|
|
227
|
+
* @param {number} now - Current timestamp.
|
|
228
|
+
* @returns {Array<Record<string, unknown>>} - Pending checkout snapshots.
|
|
229
|
+
*/
|
|
230
|
+
pendingCheckoutDebugSnapshots(now: number): Array<Record<string, unknown>>;
|
|
143
231
|
/**
|
|
144
232
|
* @returns {import("../drivers/base.js").default | undefined} - The global connection.
|
|
145
233
|
*/
|
|
@@ -152,8 +240,15 @@ export default class VelociousDatabasePoolAsyncTrackedMultiConnection extends Ba
|
|
|
152
240
|
clearGlobalConnectionForIdentifier(): void;
|
|
153
241
|
/** @returns {number | null} - Idle timeout in milliseconds, or null when disabled. */
|
|
154
242
|
idleTimeoutMillis(): number | null;
|
|
243
|
+
/**
|
|
244
|
+
* @param {unknown} value - Candidate idle timeout value.
|
|
245
|
+
* @returns {value is number} - Whether the value is a valid idle timeout.
|
|
246
|
+
*/
|
|
247
|
+
validIdleTimeoutMillis(value: unknown): value is number;
|
|
155
248
|
/** @returns {void} */
|
|
156
249
|
scheduleIdleConnectionReaper(): void;
|
|
250
|
+
/** @returns {boolean} - Whether an idle reaper timer should be scheduled. */
|
|
251
|
+
hasIdleConnectionsToReap(): boolean;
|
|
157
252
|
/**
|
|
158
253
|
* @param {number} idleTimeoutMillis - Idle timeout in milliseconds.
|
|
159
254
|
* @returns {number} - Delay before the next reap.
|
|
@@ -164,6 +259,49 @@ export default class VelociousDatabasePoolAsyncTrackedMultiConnection extends Ba
|
|
|
164
259
|
* @returns {Promise<void>} - Resolves when complete.
|
|
165
260
|
*/
|
|
166
261
|
reapIdleConnections(): Promise<void>;
|
|
262
|
+
/**
|
|
263
|
+
* @param {import("../drivers/base.js").default[]} expiredConnections - Connections to close.
|
|
264
|
+
* @returns {Promise<void>} - Resolves when closed.
|
|
265
|
+
*/
|
|
266
|
+
closeExpiredIdleConnections(expiredConnections: import("../drivers/base.js").default[]): Promise<void>;
|
|
267
|
+
/** @returns {Promise<void>} - Resolves once in-flight connection closes settle. */
|
|
268
|
+
awaitInflightConnectionCloses(): Promise<void>;
|
|
269
|
+
/**
|
|
270
|
+
* @param {{idleTimeoutMillis: number, now: number}} args - Reaper classification inputs.
|
|
271
|
+
* @returns {{expiredConnections: import("../drivers/base.js").default[], keptConnections: import("../drivers/base.js").default[]}} - Classified idle connections.
|
|
272
|
+
*/
|
|
273
|
+
classifyIdleConnectionsForReaping({ idleTimeoutMillis, now }: {
|
|
274
|
+
idleTimeoutMillis: number;
|
|
275
|
+
now: number;
|
|
276
|
+
}): {
|
|
277
|
+
expiredConnections: import("../drivers/base.js").default[];
|
|
278
|
+
keptConnections: import("../drivers/base.js").default[];
|
|
279
|
+
};
|
|
280
|
+
/**
|
|
281
|
+
* @param {{connection: import("../drivers/base.js").default, expiredConnections: import("../drivers/base.js").default[], idleTimeoutMillis: number, keptConnections: import("../drivers/base.js").default[], now: number}} args - Classification state.
|
|
282
|
+
* @returns {void}
|
|
283
|
+
*/
|
|
284
|
+
classifyIdleConnectionForReaping({ connection, expiredConnections, idleTimeoutMillis, keptConnections, now }: {
|
|
285
|
+
connection: import("../drivers/base.js").default;
|
|
286
|
+
expiredConnections: import("../drivers/base.js").default[];
|
|
287
|
+
idleTimeoutMillis: number;
|
|
288
|
+
keptConnections: import("../drivers/base.js").default[];
|
|
289
|
+
now: number;
|
|
290
|
+
}): void;
|
|
291
|
+
/**
|
|
292
|
+
* @param {import("../drivers/base.js").default} connection - Connection to inspect.
|
|
293
|
+
* @returns {boolean} - Whether the connection is marked closed.
|
|
294
|
+
*/
|
|
295
|
+
connectionIsClosed(connection: import("../drivers/base.js").default): boolean;
|
|
296
|
+
/**
|
|
297
|
+
* @param {{connection: import("../drivers/base.js").default, idleTimeoutMillis: number, now: number}} args - Expiry inputs.
|
|
298
|
+
* @returns {boolean} - Whether the idle connection expired.
|
|
299
|
+
*/
|
|
300
|
+
idleConnectionExpired({ connection, idleTimeoutMillis, now }: {
|
|
301
|
+
connection: import("../drivers/base.js").default;
|
|
302
|
+
idleTimeoutMillis: number;
|
|
303
|
+
now: number;
|
|
304
|
+
}): boolean;
|
|
167
305
|
/**
|
|
168
306
|
* @param {import("../drivers/base.js").default} connection - Connection to inspect.
|
|
169
307
|
* @returns {boolean} - Whether the connection has an open transaction.
|
|
@@ -197,6 +335,10 @@ export type PendingCheckout = {
|
|
|
197
335
|
* - Resolved database configuration needed by the checkout.
|
|
198
336
|
*/
|
|
199
337
|
databaseConfig: import("../../configuration-types.js").DatabaseConfigurationType;
|
|
338
|
+
/**
|
|
339
|
+
* - Timestamp when the checkout started waiting.
|
|
340
|
+
*/
|
|
341
|
+
enqueuedAt: number;
|
|
200
342
|
/**
|
|
201
343
|
* - Checkout options.
|
|
202
344
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"async-tracked-multi-connection.d.ts","sourceRoot":"","sources":["../../../../src/database/pool/async-tracked-multi-connection.js"],"names":[],"mappings":"AAKA,8CAAoE;
|
|
1
|
+
{"version":3,"file":"async-tracked-multi-connection.d.ts","sourceRoot":"","sources":["../../../../src/database/pool/async-tracked-multi-connection.js"],"names":[],"mappings":"AAKA,8CAAoE;AAKpE;;;;;;;;GAQG;AAEH;IACE;;;OAGG;IACH,0BAFU,OAAO,CAAC,OAAO,wBAAwB,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,oBAAoB,EAAE,OAAO,CAAC,CAAC,CAEzE;IAu7BxC;;;;;OAKG;IACH,0CAJW,MAAM,CAAC,MAAM,EAAE,OAAO,oBAAoB,EAAE,OAAO,CAAC,kBACpD,OAAO,wBAAwB,EAAE,OAAO,GACtC,IAAI,CAShB;IAED;;;;OAIG;IACH,8CAHW,OAAO,wBAAwB,EAAE,OAAO,GACtC,IAAI,CAShB;IAh9BD,0CAA2C;IAE3C;;;;;OAKG;IACH,uBAFU,OAAO,oBAAoB,EAAE,OAAO,GAAG,SAAS,CAEzB;IAEjC,qDAAqD;IACrD,aADW,OAAO,oBAAoB,EAAE,OAAO,EAAE,CACjC;IAEhB,mEAAmE;IACnE,kBADW,MAAM,CAAC,MAAM,EAAE,OAAO,oBAAoB,EAAE,OAAO,CAAC,CAC1C;IAErB,gCAAgC;IAChC,kBADW,eAAe,EAAE,CACP;IAErB,qBAAqB;IACrB,yBADW,MAAM,CACU;IAE3B,wCAAwC;IACxC,6BADW,OAAO,CAAC,IAAI,CAAC,GAAG,SAAS,CACG;IAEvC,wDAAwD;IACxD,2BADW,UAAU,CAAC,OAAO,UAAU,CAAC,GAAG,SAAS,CACf;IAErC;;;;;;;;OAQG;IACH,0BAFU,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAEQ;IAEpC;;;;OAIG;IACH,yBAFU,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAED;IAEvC,cAAS;IAWT;;;OAGG;IACH,oBAHW,OAAO,oBAAoB,EAAE,OAAO,GAClC,OAAO,CAAC,IAAI,CAAC,CA0BzB;IAED;;;;OAIG;IACH,mCAJW,OAAO,oBAAoB,EAAE,OAAO,MACpC,MAAM,GAAG,SAAS,GAChB,IAAI,CAShB;IAED,uFAAuF;IACvF,iCADc,OAAO,CAAC,IAAI,CAAC,CAO1B;IAgCD;;;;;OAKG;IACH,wCALW,MAAM,gCAEd;QAAuB,uBAAuB;KAC9C,GAAU,OAAO,oBAAoB,EAAE,OAAO,GAAG,SAAS,CAW5D;IAED;;;;OAIG;IACH,sCAJW,OAAO,oBAAoB,EAAE,OAAO,YACpC,MAAM,GACJ,OAAO,CAMnB;IAED;;;;OAIG;IACH,+BAJW,OAAO,oBAAoB,EAAE,OAAO,YACpC,OAAO,WAAW,EAAE,yBAAyB,GAC3C,OAAO,CAAC,OAAO,oBAAoB,EAAE,OAAO,CAAC,CAyBzD;IAED,uEAAuE;IACvE,kBADc,MAAM,GAAG,SAAS,CAO/B;IAED;;;OAGG;IACH,2BAHW,OAAO,GACL,KAAK,IAAI,MAAM,CAI3B;IAED,sEAAsE;IACtE,uBADc,MAAM,CASnB;IAED,oEAAoE;IACpE,sBADc,OAAO,CAKpB;IAED;;;;OAIG;IACH,2CAJW,OAAO,8BAA8B,EAAE,yBAAyB,YAChE,MAAM,GACJ,OAAO,CAAC,OAAO,oBAAoB,EAAE,OAAO,CAAC,CAmBzD;IAED;;;;;OAKG;IACH,gCALW,OAAO,8BAA8B,EAAE,yBAAyB,YAChE,MAAM,YACN,OAAO,WAAW,EAAE,yBAAyB,GAC3C,OAAO,CAAC,OAAO,oBAAoB,EAAE,OAAO,CAAC,CAWzD;IAED,uGAAuG;IACvG,yBADc,OAAO,CAAC,IAAI,CAAC,CAc1B;IAED,uGAAuG;IACvG,+BADc,OAAO,CAAC,IAAI,CAAC,CAqB1B;IAED,qGAAqG;IACrG,oDADc,OAAO,CAAC,OAAO,CAAC,CAe7B;IAED;;;OAGG;IACH,wDAHW,eAAe,GACb,OAAO,CAAC,OAAO,CAAC,CAY5B;IAED;;;OAGG;IACH,wCAHW,MAAM,GACJ,OAAO,oBAAoB,EAAE,OAAO,GAAG,SAAS,CAI5D;IAED;;;OAGG;IACH,2CAHW,eAAe,GACb,OAAO,CAAC,OAAO,oBAAoB,EAAE,OAAO,GAAG,SAAS,CAAC,CAWrE;IAED;;;OAGG;IACH,yCAHW,eAAe,GACb,OAAO,CAAC,IAAI,CAAC,CAazB;IAED;;;;OAIG;IACH,iCAJW,eAAe,cACf,OAAO,oBAAoB,EAAE,OAAO,GAClC,OAAO,CAAC,IAAI,CAAC,CAQzB;IAED,4FAA4F;IAC5F,qCADc,OAAO,CAAC,OAAO,CAAC,CAU7B;IA2CD,yFAAyF;IACzF,mCADc,OAAO,oBAAoB,EAAE,OAAO,CAOjD;IAED;;;OAGG;IACH,4BAHW,MAAM,GACJ,IAAI,CAMhB;IAED;;;;OAIG;IACH,gCAHW,OAAO,oBAAoB,EAAE,OAAO,GAClC,IAAI,CAYhB;IAoBD;;;;;OAKG;IACH,oCAHW,OAAO,oBAAoB,EAAE,OAAO,GAClC,IAAI,CAIhB;IAED,sBAAsB;IACtB,6BADc,IAAI,CAGjB;IAgCD;;;OAGG;IACH,8BAHW,MAAM,GACJ;QAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAAC,eAAe,EAAE,GAAG,CAAC,OAAO,oBAAoB,EAAE,OAAO,CAAC,CAAA;KAAC,CAYrH;IAED;;;OAGG;IACH,wEAHW;QAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,GAAG,CAAC,OAAO,oBAAoB,EAAE,OAAO,CAAC,CAAA;KAAC,GACpH,IAAI,CAWhB;IAED;;;OAGG;IACH,uEAHW;QAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,GAAG,CAAC,OAAO,oBAAoB,EAAE,OAAO,CAAC,CAAA;KAAC,GACpH,IAAI,CAchB;IAED;;;OAGG;IACH,sEAHW;QAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAAC,eAAe,EAAE,GAAG,CAAC,OAAO,oBAAoB,EAAE,OAAO,CAAC,CAAA;KAAC,GACvG,IAAI,CAKhB;IAED;;;OAGG;IACH,kGAHW;QAAC,UAAU,EAAE,OAAO,oBAAoB,EAAE,OAAO,GAAG,SAAS,CAAC;QAAC,WAAW,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAC;QAAC,eAAe,EAAE,GAAG,CAAC,OAAO,oBAAoB,EAAE,OAAO,CAAC,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,GACxM,IAAI,CAOhB;IAED;;;OAGG;IACH,mCAHW,MAAM,GACJ,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAU1C;IAED;;OAEG;IACH,uBAFa,OAAO,oBAAoB,EAAE,OAAO,GAAG,SAAS,CAS5D;IAED;;OAEG;IACH,oCAFa,OAAO,oBAAoB,EAAE,OAAO,GAAG,SAAS,CAO5D;IAED,yCAAyC;IACzC,sCADc,IAAI,CAQjB;IAmBD,sFAAsF;IACtF,qBADc,MAAM,GAAG,IAAI,CAQ1B;IAED;;;OAGG;IACH,8BAHW,OAAO,GACL,KAAK,IAAI,MAAM,CAI3B;IAED,sBAAsB;IACtB,gCADc,IAAI,CAiBjB;IAED,6EAA6E;IAC7E,4BADc,OAAO,CAGpB;IAED;;;OAGG;IACH,+CAHW,MAAM,GACJ,MAAM,CAkBlB;IAED;;;OAGG;IACH,uBAFa,OAAO,CAAC,IAAI,CAAC,CAezB;IAED;;;OAGG;IACH,gDAHW,OAAO,oBAAoB,EAAE,OAAO,EAAE,GACpC,OAAO,CAAC,IAAI,CAAC,CAMzB;IAED,mFAAmF;IACnF,iCADc,OAAO,CAAC,IAAI,CAAC,CAK1B;IAED;;;OAGG;IACH,8DAHW;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAC,GACtC;QAAC,kBAAkB,EAAE,OAAO,oBAAoB,EAAE,OAAO,EAAE,CAAC;QAAC,eAAe,EAAE,OAAO,oBAAoB,EAAE,OAAO,EAAE,CAAA;KAAC,CAajI;IAED;;;OAGG;IACH,8GAHW;QAAC,UAAU,EAAE,OAAO,oBAAoB,EAAE,OAAO,CAAC;QAAC,kBAAkB,EAAE,OAAO,oBAAoB,EAAE,OAAO,EAAE,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAAC,eAAe,EAAE,OAAO,oBAAoB,EAAE,OAAO,EAAE,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAC,GAC7M,IAAI,CAYhB;IAED;;;OAGG;IACH,+BAHW,OAAO,oBAAoB,EAAE,OAAO,GAClC,OAAO,CAMnB;IAED;;;OAGG;IACH,8DAHW;QAAC,UAAU,EAAE,OAAO,oBAAoB,EAAE,OAAO,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAC,GACxF,OAAO,CAOnB;IAED;;;OAGG;IACH,yCAHW,OAAO,oBAAoB,EAAE,OAAO,GAClC,OAAO,CAInB;IAED;;;;;;;;OAQG;IACH,wCAHW,OAAO,oBAAoB,EAAE,OAAO,GAClC,OAAO,CAAC,IAAI,CAAC,CAUzB;IAED;;;OAGG;IACH,4BAHW,OAAO,oBAAoB,EAAE,OAAO,GAClC,OAAO,CAAC,IAAI,CAAC,CA+BzB;IAED,sBAAsB;IACtB,kCADc,IAAI,CAMjB;IA8BD;;;OAGG;IACH,8BAHW,KAAK,GACH,IAAI,CAUhB;CA8BF;;;;;oBAh+Ba,OAAO,8BAA8B,EAAE,yBAAyB;;;;gBAChE,MAAM;;;;aACN,OAAO,WAAW,EAAE,yBAAyB;;;;cAC7C,MAAM;;;;aACN,CAAC,UAAU,EAAE,OAAO,oBAAoB,EAAE,OAAO,KAAK,IAAI;;;;YAC1D,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI;;qBAdW,WAAW;kCAD1B,aAAa"}
|