kucoin-api 2.1.23 → 2.3.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/README.md +117 -14
- package/dist/cjs/FuturesClient.d.ts +25 -1
- package/dist/cjs/FuturesClient.js +24 -0
- package/dist/cjs/FuturesClient.js.map +1 -1
- package/dist/cjs/SpotClient.d.ts +11 -0
- package/dist/cjs/SpotClient.js +9 -0
- package/dist/cjs/SpotClient.js.map +1 -1
- package/dist/cjs/UnifiedAPIClient.d.ts +77 -0
- package/dist/cjs/UnifiedAPIClient.js +105 -0
- package/dist/cjs/UnifiedAPIClient.js.map +1 -0
- package/dist/cjs/WebsocketAPIClient.d.ts +123 -0
- package/dist/cjs/WebsocketAPIClient.js +147 -0
- package/dist/cjs/WebsocketAPIClient.js.map +1 -0
- package/dist/cjs/WebsocketClient.d.ts +14 -9
- package/dist/cjs/WebsocketClient.js +277 -37
- package/dist/cjs/WebsocketClient.js.map +1 -1
- package/dist/cjs/index.d.ts +7 -3
- package/dist/cjs/index.js +7 -3
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/lib/BaseRestClient.d.ts +16 -0
- package/dist/cjs/lib/BaseRestClient.js +46 -12
- package/dist/cjs/lib/BaseRestClient.js.map +1 -1
- package/dist/cjs/lib/BaseWSClient.d.ts +30 -17
- package/dist/cjs/lib/BaseWSClient.js +248 -55
- package/dist/cjs/lib/BaseWSClient.js.map +1 -1
- package/dist/cjs/lib/requestUtils.d.ts +13 -0
- package/dist/cjs/lib/requestUtils.js +3 -0
- package/dist/cjs/lib/requestUtils.js.map +1 -1
- package/dist/cjs/lib/websocket/WsStore.d.ts +15 -3
- package/dist/cjs/lib/websocket/WsStore.js +61 -12
- package/dist/cjs/lib/websocket/WsStore.js.map +1 -1
- package/dist/cjs/lib/websocket/WsStore.types.d.ts +6 -4
- package/dist/cjs/lib/websocket/WsStore.types.js +2 -2
- package/dist/cjs/lib/websocket/WsStore.types.js.map +1 -1
- package/dist/cjs/lib/websocket/logger.d.ts +1 -0
- package/dist/cjs/lib/websocket/websocket-util.d.ts +12 -6
- package/dist/cjs/lib/websocket/websocket-util.js +17 -8
- package/dist/cjs/lib/websocket/websocket-util.js.map +1 -1
- package/dist/cjs/types/request/futures.types.d.ts +1 -0
- package/dist/cjs/types/request/uta-types.d.ts +50 -0
- package/dist/cjs/types/request/uta-types.js +6 -0
- package/dist/cjs/types/request/uta-types.js.map +1 -0
- package/dist/cjs/types/response/futures.types.d.ts +3 -0
- package/dist/cjs/types/response/uta-types.d.ts +172 -0
- package/dist/cjs/types/response/uta-types.js +6 -0
- package/dist/cjs/types/response/uta-types.js.map +1 -0
- package/dist/cjs/types/websockets/ws-api.d.ts +123 -0
- package/dist/cjs/types/websockets/ws-api.js +22 -0
- package/dist/cjs/types/websockets/ws-api.js.map +1 -0
- package/dist/cjs/types/websockets/ws-events.d.ts +11 -0
- package/dist/cjs/types/websockets/ws-events.js +11 -0
- package/dist/cjs/types/websockets/ws-events.js.map +1 -0
- package/dist/cjs/types/websockets/{client.d.ts → ws-general.d.ts} +5 -0
- package/dist/cjs/types/websockets/{events.js → ws-general.js} +1 -1
- package/dist/cjs/types/websockets/ws-general.js.map +1 -0
- package/dist/mjs/FuturesClient.d.ts +25 -1
- package/dist/mjs/FuturesClient.js +24 -0
- package/dist/mjs/FuturesClient.js.map +1 -1
- package/dist/mjs/SpotClient.d.ts +11 -0
- package/dist/mjs/SpotClient.js +9 -0
- package/dist/mjs/SpotClient.js.map +1 -1
- package/dist/mjs/UnifiedAPIClient.d.ts +77 -0
- package/dist/mjs/UnifiedAPIClient.js +101 -0
- package/dist/mjs/UnifiedAPIClient.js.map +1 -0
- package/dist/mjs/WebsocketAPIClient.d.ts +123 -0
- package/dist/mjs/WebsocketAPIClient.js +143 -0
- package/dist/mjs/WebsocketAPIClient.js.map +1 -0
- package/dist/mjs/WebsocketClient.d.ts +14 -9
- package/dist/mjs/WebsocketClient.js +278 -38
- package/dist/mjs/WebsocketClient.js.map +1 -1
- package/dist/mjs/index.d.ts +7 -3
- package/dist/mjs/index.js +7 -3
- package/dist/mjs/index.js.map +1 -1
- package/dist/mjs/lib/BaseRestClient.d.ts +16 -0
- package/dist/mjs/lib/BaseRestClient.js +47 -13
- package/dist/mjs/lib/BaseRestClient.js.map +1 -1
- package/dist/mjs/lib/BaseWSClient.d.ts +30 -17
- package/dist/mjs/lib/BaseWSClient.js +248 -55
- package/dist/mjs/lib/BaseWSClient.js.map +1 -1
- package/dist/mjs/lib/requestUtils.d.ts +13 -0
- package/dist/mjs/lib/requestUtils.js +3 -0
- package/dist/mjs/lib/requestUtils.js.map +1 -1
- package/dist/mjs/lib/websocket/WsStore.d.ts +15 -3
- package/dist/mjs/lib/websocket/WsStore.js +61 -12
- package/dist/mjs/lib/websocket/WsStore.js.map +1 -1
- package/dist/mjs/lib/websocket/WsStore.types.d.ts +6 -4
- package/dist/mjs/lib/websocket/WsStore.types.js +2 -2
- package/dist/mjs/lib/websocket/WsStore.types.js.map +1 -1
- package/dist/mjs/lib/websocket/logger.d.ts +1 -0
- package/dist/mjs/lib/websocket/websocket-util.d.ts +12 -6
- package/dist/mjs/lib/websocket/websocket-util.js +15 -7
- package/dist/mjs/lib/websocket/websocket-util.js.map +1 -1
- package/dist/mjs/types/request/futures.types.d.ts +1 -0
- package/dist/mjs/types/request/uta-types.d.ts +50 -0
- package/dist/mjs/types/request/uta-types.js +5 -0
- package/dist/mjs/types/request/uta-types.js.map +1 -0
- package/dist/mjs/types/response/futures.types.d.ts +3 -0
- package/dist/mjs/types/response/uta-types.d.ts +172 -0
- package/dist/mjs/types/response/uta-types.js +5 -0
- package/dist/mjs/types/response/uta-types.js.map +1 -0
- package/dist/mjs/types/websockets/ws-api.d.ts +123 -0
- package/dist/mjs/types/websockets/ws-api.js +19 -0
- package/dist/mjs/types/websockets/ws-api.js.map +1 -0
- package/dist/mjs/types/websockets/ws-events.d.ts +11 -0
- package/dist/mjs/types/websockets/ws-events.js +8 -0
- package/dist/mjs/types/websockets/ws-events.js.map +1 -0
- package/dist/mjs/types/websockets/{client.d.ts → ws-general.d.ts} +5 -0
- package/dist/mjs/types/websockets/ws-general.js +2 -0
- package/dist/mjs/types/websockets/ws-general.js.map +1 -0
- package/llms.txt +7284 -5766
- package/package.json +6 -4
- package/dist/cjs/types/websockets/client.js +0 -3
- package/dist/cjs/types/websockets/client.js.map +0 -1
- package/dist/cjs/types/websockets/events.d.ts +0 -5
- package/dist/cjs/types/websockets/events.js.map +0 -1
- package/dist/cjs/types/websockets/requests.d.ts +0 -8
- package/dist/cjs/types/websockets/requests.js +0 -3
- package/dist/cjs/types/websockets/requests.js.map +0 -1
- package/dist/cjs/types/websockets/wsAPI.d.ts +0 -9
- package/dist/cjs/types/websockets/wsAPI.js +0 -3
- package/dist/cjs/types/websockets/wsAPI.js.map +0 -1
- package/dist/mjs/types/websockets/client.js +0 -2
- package/dist/mjs/types/websockets/client.js.map +0 -1
- package/dist/mjs/types/websockets/events.d.ts +0 -5
- package/dist/mjs/types/websockets/events.js +0 -2
- package/dist/mjs/types/websockets/events.js.map +0 -1
- package/dist/mjs/types/websockets/requests.d.ts +0 -8
- package/dist/mjs/types/websockets/requests.js +0 -2
- package/dist/mjs/types/websockets/requests.js.map +0 -1
- package/dist/mjs/types/websockets/wsAPI.d.ts +0 -9
- package/dist/mjs/types/websockets/wsAPI.js +0 -2
- package/dist/mjs/types/websockets/wsAPI.js.map +0 -1
|
@@ -6,12 +6,46 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.BaseWebsocketClient = void 0;
|
|
7
7
|
const events_1 = __importDefault(require("events"));
|
|
8
8
|
const isomorphic_ws_1 = __importDefault(require("isomorphic-ws"));
|
|
9
|
+
const ws_events_js_1 = require("../types/websockets/ws-events.js");
|
|
9
10
|
const WebsocketClient_js_1 = require("../WebsocketClient.js");
|
|
10
11
|
const webCryptoAPI_js_1 = require("./webCryptoAPI.js");
|
|
11
12
|
const logger_js_1 = require("./websocket/logger.js");
|
|
12
13
|
const websocket_util_js_1 = require("./websocket/websocket-util.js");
|
|
13
14
|
const WsStore_js_1 = require("./websocket/WsStore.js");
|
|
14
15
|
const WsStore_types_js_1 = require("./websocket/WsStore.types.js");
|
|
16
|
+
/**
|
|
17
|
+
* Appends wsKey and isWSAPIResponse to all events.
|
|
18
|
+
* Some events are arrays, this handles that nested scenario too.
|
|
19
|
+
*/
|
|
20
|
+
function getFinalEmittable(emittable, wsKey, isWSAPIResponse) {
|
|
21
|
+
if (Array.isArray(emittable)) {
|
|
22
|
+
return emittable.map((subEvent) => getFinalEmittable(subEvent, wsKey, isWSAPIResponse));
|
|
23
|
+
}
|
|
24
|
+
if (Array.isArray(emittable.event)) {
|
|
25
|
+
// Some topics just emit an array.
|
|
26
|
+
// This is consistent with how it was before the WS API upgrade:
|
|
27
|
+
return emittable.event.map((subEvent) => getFinalEmittable(subEvent, wsKey, isWSAPIResponse));
|
|
28
|
+
// const { event, ...others } = emittable;
|
|
29
|
+
// return {
|
|
30
|
+
// ...others,
|
|
31
|
+
// event: event.map((subEvent) =>
|
|
32
|
+
// getFinalEmittable(subEvent, wsKey, isWSAPIResponse),
|
|
33
|
+
// ),
|
|
34
|
+
// };
|
|
35
|
+
}
|
|
36
|
+
if (emittable.event) {
|
|
37
|
+
return {
|
|
38
|
+
...emittable.event,
|
|
39
|
+
wsKey: wsKey,
|
|
40
|
+
isWSAPIResponse: !!isWSAPIResponse,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
return {
|
|
44
|
+
...emittable,
|
|
45
|
+
wsKey: wsKey,
|
|
46
|
+
isWSAPIResponse: !!isWSAPIResponse,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
15
49
|
/**
|
|
16
50
|
* Users can conveniently pass topics as strings or objects (object has topic name + optional params).
|
|
17
51
|
*
|
|
@@ -57,6 +91,8 @@ class BaseWebsocketClient extends events_1.default {
|
|
|
57
91
|
authPrivateRequests: false,
|
|
58
92
|
// Automatically re-auth WS API, if we were auth'd before and get reconnected
|
|
59
93
|
reauthWSAPIOnReconnect: true,
|
|
94
|
+
// Whether to use native heartbeats (depends on the exchange)
|
|
95
|
+
useNativeHeartbeats: false,
|
|
60
96
|
...options,
|
|
61
97
|
};
|
|
62
98
|
// Check Web Crypto API support when credentials are provided and no custom sign function is used
|
|
@@ -74,6 +110,11 @@ class BaseWebsocketClient extends events_1.default {
|
|
|
74
110
|
getNewRequestId() {
|
|
75
111
|
return `${++this.wsApiRequestId}`;
|
|
76
112
|
}
|
|
113
|
+
// protected abstract sendWSAPIRequest(
|
|
114
|
+
// wsKey: TWSKey,
|
|
115
|
+
// operation: string,
|
|
116
|
+
// params?: any,
|
|
117
|
+
// ): Promise<unknown>;
|
|
77
118
|
/**
|
|
78
119
|
* Subscribe to one or more topics on a WS connection (identified by WS Key).
|
|
79
120
|
*
|
|
@@ -107,7 +148,7 @@ class BaseWebsocketClient extends events_1.default {
|
|
|
107
148
|
wsKey,
|
|
108
149
|
wsTopicRequests,
|
|
109
150
|
});
|
|
110
|
-
return;
|
|
151
|
+
return isConnectionInProgress;
|
|
111
152
|
}
|
|
112
153
|
// We're connected. Check if auth is needed and if already authenticated
|
|
113
154
|
const isPrivateConnection = this.isPrivateWsKey(wsKey);
|
|
@@ -122,13 +163,13 @@ class BaseWebsocketClient extends events_1.default {
|
|
|
122
163
|
return false;
|
|
123
164
|
}
|
|
124
165
|
// Finally, request subscription to topics if the connection is healthy and ready
|
|
125
|
-
this.requestSubscribeTopics(wsKey, normalisedTopicRequests);
|
|
166
|
+
return this.requestSubscribeTopics(wsKey, normalisedTopicRequests);
|
|
126
167
|
}
|
|
127
168
|
unsubscribeTopicsForWsKey(wsTopicRequests, wsKey) {
|
|
128
169
|
const normalisedTopicRequests = getNormalisedTopicRequests(wsTopicRequests);
|
|
129
170
|
// Store topics, so future automation (post-auth, post-reconnect) has everything needed to resubscribe automatically
|
|
130
171
|
for (const topic of normalisedTopicRequests) {
|
|
131
|
-
this.wsStore.
|
|
172
|
+
this.wsStore.deleteTopic(wsKey, topic);
|
|
132
173
|
}
|
|
133
174
|
const isConnected = this.wsStore.isConnectionState(wsKey, WsStore_types_js_1.WsConnectionStateEnum.CONNECTED);
|
|
134
175
|
// If not connected, don't need to do anything.
|
|
@@ -147,7 +188,7 @@ class BaseWebsocketClient extends events_1.default {
|
|
|
147
188
|
return;
|
|
148
189
|
}
|
|
149
190
|
// Finally, request subscription to topics if the connection is healthy and ready
|
|
150
|
-
this.requestUnsubscribeTopics(wsKey, normalisedTopicRequests);
|
|
191
|
+
return this.requestUnsubscribeTopics(wsKey, normalisedTopicRequests);
|
|
151
192
|
}
|
|
152
193
|
/**
|
|
153
194
|
* Splits topic requests into two groups, public & private topic requests
|
|
@@ -193,15 +234,15 @@ class BaseWebsocketClient extends events_1.default {
|
|
|
193
234
|
/**
|
|
194
235
|
* Request connection to a specific websocket, instead of waiting for automatic connection.
|
|
195
236
|
*/
|
|
196
|
-
async connect(wsKey) {
|
|
237
|
+
async connect(wsKey, customUrl, throwOnError) {
|
|
197
238
|
try {
|
|
198
239
|
if (this.wsStore.isWsOpen(wsKey)) {
|
|
199
240
|
this.logger.error('Refused to connect to ws with existing active connection', { ...WebsocketClient_js_1.WS_LOGGER_CATEGORY, wsKey });
|
|
200
|
-
return { wsKey };
|
|
241
|
+
return { wsKey, ws: this.wsStore.getWs(wsKey) };
|
|
201
242
|
}
|
|
202
243
|
if (this.wsStore.isConnectionAttemptInProgress(wsKey)) {
|
|
203
244
|
this.logger.error('Refused to connect to ws, connection attempt already active', { ...WebsocketClient_js_1.WS_LOGGER_CATEGORY, wsKey });
|
|
204
|
-
return;
|
|
245
|
+
return this.wsStore.getConnectionInProgressPromise(wsKey)?.promise;
|
|
205
246
|
}
|
|
206
247
|
if (!this.wsStore.getConnectionState(wsKey) ||
|
|
207
248
|
this.wsStore.isConnectionState(wsKey, WsStore_types_js_1.WsConnectionStateEnum.INITIAL)) {
|
|
@@ -211,7 +252,7 @@ class BaseWebsocketClient extends events_1.default {
|
|
|
211
252
|
this.wsStore.createConnectionInProgressPromise(wsKey, false);
|
|
212
253
|
}
|
|
213
254
|
try {
|
|
214
|
-
const url = await this.getWsUrl(wsKey);
|
|
255
|
+
const url = customUrl || (await this.getWsUrl(wsKey));
|
|
215
256
|
const ws = this.connectToWsUrl(url, wsKey);
|
|
216
257
|
this.wsStore.setWs(wsKey, ws);
|
|
217
258
|
}
|
|
@@ -219,12 +260,20 @@ class BaseWebsocketClient extends events_1.default {
|
|
|
219
260
|
this.logger.error('Exception fetching WS URL', e);
|
|
220
261
|
throw e;
|
|
221
262
|
}
|
|
222
|
-
return this.wsStore.getConnectionInProgressPromise(wsKey)?.promise;
|
|
223
263
|
}
|
|
224
264
|
catch (err) {
|
|
225
|
-
this.parseWsError('Connection failed', err, wsKey);
|
|
226
|
-
|
|
265
|
+
const canRetry = this.parseWsError('Connection failed', err, wsKey);
|
|
266
|
+
if (canRetry) {
|
|
267
|
+
this.reconnectWithDelay(wsKey, this.options.reconnectTimeout);
|
|
268
|
+
}
|
|
269
|
+
else {
|
|
270
|
+
this.logger.info('Preventing retry due to error type to prevent deadlock');
|
|
271
|
+
}
|
|
272
|
+
if (throwOnError) {
|
|
273
|
+
throw err;
|
|
274
|
+
}
|
|
227
275
|
}
|
|
276
|
+
return this.wsStore.getConnectionInProgressPromise(wsKey)?.promise;
|
|
228
277
|
}
|
|
229
278
|
connectToWsUrl(url, wsKey) {
|
|
230
279
|
this.logger.trace(`Opening WS connection to URL: ${url}`, {
|
|
@@ -233,21 +282,31 @@ class BaseWebsocketClient extends events_1.default {
|
|
|
233
282
|
});
|
|
234
283
|
const { protocols = [], ...wsOptions } = this.options.wsOptions || {};
|
|
235
284
|
const ws = new isomorphic_ws_1.default(url, protocols, wsOptions);
|
|
236
|
-
ws.onopen = (event) => this.onWsOpen(event, wsKey);
|
|
285
|
+
ws.onopen = (event) => this.onWsOpen(event, wsKey, url, ws);
|
|
237
286
|
ws.onmessage = (event) => this.onWsMessage(event, wsKey, ws);
|
|
238
287
|
ws.onerror = (event) => this.parseWsError('websocket error', event, wsKey);
|
|
239
288
|
ws.onclose = (event) => this.onWsClose(event, wsKey);
|
|
289
|
+
// Native ws ping/pong frames are not in use for okx
|
|
290
|
+
if (this.options.useNativeHeartbeats) {
|
|
291
|
+
if (typeof ws.on === 'function') {
|
|
292
|
+
ws.on('ping', (event) => this.onWsPing(event, wsKey, ws, 'event'));
|
|
293
|
+
ws.on('pong', (event) => this.onWsPong(event, wsKey, 'event'));
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
ws.wsKey = wsKey;
|
|
240
297
|
return ws;
|
|
241
298
|
}
|
|
242
299
|
parseWsError(context, error, wsKey) {
|
|
243
300
|
if (this.wsStore.isConnectionAttemptInProgress(wsKey)) {
|
|
244
|
-
this.setWsState(wsKey, WsStore_types_js_1.WsConnectionStateEnum.
|
|
301
|
+
this.setWsState(wsKey, WsStore_types_js_1.WsConnectionStateEnum.ERROR);
|
|
245
302
|
}
|
|
303
|
+
// Allow retry by default (in some places that call this). Prevent deadloop in hard failure (401)
|
|
304
|
+
let canRetry = true;
|
|
246
305
|
if (!error.message) {
|
|
247
306
|
this.logger.error(`${context} due to unexpected error: `, error);
|
|
248
307
|
this.emit('response', { ...error, wsKey });
|
|
249
308
|
this.emit('exception', { ...error, wsKey });
|
|
250
|
-
return;
|
|
309
|
+
return canRetry;
|
|
251
310
|
}
|
|
252
311
|
switch (error.message) {
|
|
253
312
|
case 'Unexpected server response: 401':
|
|
@@ -255,6 +314,7 @@ class BaseWebsocketClient extends events_1.default {
|
|
|
255
314
|
...WebsocketClient_js_1.WS_LOGGER_CATEGORY,
|
|
256
315
|
wsKey,
|
|
257
316
|
});
|
|
317
|
+
canRetry = false;
|
|
258
318
|
break;
|
|
259
319
|
default:
|
|
260
320
|
if (error?.code === 'ENOTFOUND') {
|
|
@@ -264,22 +324,48 @@ class BaseWebsocketClient extends events_1.default {
|
|
|
264
324
|
error,
|
|
265
325
|
connectionState: this.wsStore.getConnectionState(wsKey),
|
|
266
326
|
});
|
|
327
|
+
canRetry = true;
|
|
267
328
|
break;
|
|
268
329
|
}
|
|
330
|
+
if (error?.code === 401) {
|
|
331
|
+
this.logger.error(`${context} due to 401 authorization failure.`, {
|
|
332
|
+
...WebsocketClient_js_1.WS_LOGGER_CATEGORY,
|
|
333
|
+
wsKey,
|
|
334
|
+
});
|
|
335
|
+
canRetry = false;
|
|
336
|
+
}
|
|
269
337
|
this.logger.error(`${context} due to unexpected response error: "${error?.msg || error?.message || error}"`, { ...WebsocketClient_js_1.WS_LOGGER_CATEGORY, wsKey, error });
|
|
270
338
|
break;
|
|
271
339
|
}
|
|
340
|
+
this.emit('response', { ...error, wsKey });
|
|
272
341
|
this.emit('exception', { ...error, wsKey });
|
|
342
|
+
return canRetry;
|
|
273
343
|
}
|
|
274
344
|
/** Get a signature, build the auth request and send it */
|
|
275
|
-
async sendAuthRequest(wsKey) {
|
|
345
|
+
async sendAuthRequest(wsKey, eventToAuth) {
|
|
276
346
|
try {
|
|
277
|
-
this.logger.
|
|
347
|
+
this.logger.trace('Sending auth request...', {
|
|
278
348
|
...WebsocketClient_js_1.WS_LOGGER_CATEGORY,
|
|
279
349
|
wsKey,
|
|
350
|
+
eventToAuth,
|
|
280
351
|
});
|
|
281
|
-
|
|
282
|
-
|
|
352
|
+
await this.assertIsConnected(wsKey);
|
|
353
|
+
// If not required, this won't return anything
|
|
354
|
+
const request = await this.getWsAuthRequestEvent(wsKey, eventToAuth);
|
|
355
|
+
if (!request) {
|
|
356
|
+
// Short-circuit this for the next time it's called
|
|
357
|
+
const wsState = this.wsStore.get(wsKey, true);
|
|
358
|
+
wsState.isAuthenticated = true;
|
|
359
|
+
return;
|
|
360
|
+
}
|
|
361
|
+
if (!this.wsStore.getAuthenticationInProgressPromise(wsKey)) {
|
|
362
|
+
this.wsStore.createAuthenticationInProgressPromise(wsKey, false);
|
|
363
|
+
}
|
|
364
|
+
if (request === 'waitForEvent') {
|
|
365
|
+
return this.wsStore.getAuthenticationInProgressPromise(wsKey)?.promise;
|
|
366
|
+
}
|
|
367
|
+
this.tryWsSend(wsKey, typeof request === 'string' ? request : JSON.stringify(request));
|
|
368
|
+
return this.wsStore.getAuthenticationInProgressPromise(wsKey)?.promise;
|
|
283
369
|
}
|
|
284
370
|
catch (e) {
|
|
285
371
|
this.logger.trace(e, { ...WebsocketClient_js_1.WS_LOGGER_CATEGORY, wsKey });
|
|
@@ -287,6 +373,10 @@ class BaseWebsocketClient extends events_1.default {
|
|
|
287
373
|
}
|
|
288
374
|
reconnectWithDelay(wsKey, connectionDelayMs) {
|
|
289
375
|
this.clearTimers(wsKey);
|
|
376
|
+
if (this.wsStore.getConnectionState(wsKey) !==
|
|
377
|
+
WsStore_types_js_1.WsConnectionStateEnum.CONNECTING) {
|
|
378
|
+
this.setWsState(wsKey, WsStore_types_js_1.WsConnectionStateEnum.RECONNECTING);
|
|
379
|
+
}
|
|
290
380
|
this.wsStore.get(wsKey, true).activeReconnectTimer = setTimeout(() => {
|
|
291
381
|
this.logger.info('Reconnecting to websocket', {
|
|
292
382
|
...WebsocketClient_js_1.WS_LOGGER_CATEGORY,
|
|
@@ -382,7 +472,7 @@ class BaseWebsocketClient extends events_1.default {
|
|
|
382
472
|
/**
|
|
383
473
|
* Try sending a string event on a WS connection (identified by the WS Key)
|
|
384
474
|
*/
|
|
385
|
-
tryWsSend(wsKey, wsMessage) {
|
|
475
|
+
tryWsSend(wsKey, wsMessage, throwExceptions) {
|
|
386
476
|
try {
|
|
387
477
|
this.logger.trace('Sending upstream ws message: ', {
|
|
388
478
|
...WebsocketClient_js_1.WS_LOGGER_CATEGORY,
|
|
@@ -405,17 +495,20 @@ class BaseWebsocketClient extends events_1.default {
|
|
|
405
495
|
wsKey,
|
|
406
496
|
exception: e,
|
|
407
497
|
});
|
|
498
|
+
if (throwExceptions) {
|
|
499
|
+
throw e;
|
|
500
|
+
}
|
|
408
501
|
}
|
|
409
502
|
}
|
|
410
|
-
async onWsOpen(event, wsKey) {
|
|
411
|
-
const didReconnectSuccessfully = this.wsStore.isConnectionState(wsKey, WsStore_types_js_1.WsConnectionStateEnum.RECONNECTING) ||
|
|
412
|
-
|
|
413
|
-
if (
|
|
503
|
+
async onWsOpen(event, wsKey, url, ws) {
|
|
504
|
+
const didReconnectSuccessfully = this.wsStore.isConnectionState(wsKey, WsStore_types_js_1.WsConnectionStateEnum.RECONNECTING) || this.wsStore.isConnectionState(wsKey, WsStore_types_js_1.WsConnectionStateEnum.ERROR);
|
|
505
|
+
const isFreshConnectionAttempt = this.wsStore.isConnectionState(wsKey, WsStore_types_js_1.WsConnectionStateEnum.CONNECTING);
|
|
506
|
+
if (isFreshConnectionAttempt) {
|
|
414
507
|
this.logger.info('Websocket connected', {
|
|
415
508
|
...WebsocketClient_js_1.WS_LOGGER_CATEGORY,
|
|
416
509
|
wsKey,
|
|
417
510
|
});
|
|
418
|
-
this.emit('open', { wsKey, event });
|
|
511
|
+
this.emit('open', { wsKey, event, wsUrl: url, ws });
|
|
419
512
|
}
|
|
420
513
|
else {
|
|
421
514
|
this.logger.info('Websocket reconnected', {
|
|
@@ -427,6 +520,8 @@ class BaseWebsocketClient extends events_1.default {
|
|
|
427
520
|
wsKey,
|
|
428
521
|
event,
|
|
429
522
|
didReconnectSuccessfully,
|
|
523
|
+
wsUrl: url,
|
|
524
|
+
ws,
|
|
430
525
|
});
|
|
431
526
|
}
|
|
432
527
|
this.setWsState(wsKey, WsStore_types_js_1.WsConnectionStateEnum.CONNECTED);
|
|
@@ -435,6 +530,21 @@ class BaseWebsocketClient extends events_1.default {
|
|
|
435
530
|
if (!this.options.requireConnectionReadyConfirmation) {
|
|
436
531
|
await this.onWsReadyForEvents(wsKey);
|
|
437
532
|
}
|
|
533
|
+
// Resolve & cleanup deferred "connection attempt in progress" promise
|
|
534
|
+
try {
|
|
535
|
+
const connectionInProgressPromise = this.wsStore.getConnectionInProgressPromise(wsKey);
|
|
536
|
+
if (connectionInProgressPromise?.resolve) {
|
|
537
|
+
connectionInProgressPromise.resolve({
|
|
538
|
+
wsKey,
|
|
539
|
+
ws,
|
|
540
|
+
});
|
|
541
|
+
}
|
|
542
|
+
}
|
|
543
|
+
catch (e) {
|
|
544
|
+
this.logger.error('Exception trying to resolve "connectionInProgress" promise', e);
|
|
545
|
+
}
|
|
546
|
+
// Remove before continuing, in case there's more requests queued
|
|
547
|
+
this.wsStore.removeConnectingInProgressPromise(wsKey);
|
|
438
548
|
}
|
|
439
549
|
/**
|
|
440
550
|
* Called automatically once a connection is ready.
|
|
@@ -450,6 +560,7 @@ class BaseWebsocketClient extends events_1.default {
|
|
|
450
560
|
if (connectionInProgressPromise?.resolve) {
|
|
451
561
|
connectionInProgressPromise.resolve({
|
|
452
562
|
wsKey,
|
|
563
|
+
ws: this.wsStore.getWs(wsKey),
|
|
453
564
|
});
|
|
454
565
|
}
|
|
455
566
|
}
|
|
@@ -461,7 +572,7 @@ class BaseWebsocketClient extends events_1.default {
|
|
|
461
572
|
// Some websockets require an auth packet to be sent after opening the connection
|
|
462
573
|
if (this.isPrivateWsKey(wsKey) &&
|
|
463
574
|
this.options.authPrivateConnectionsOnConnect) {
|
|
464
|
-
await this.
|
|
575
|
+
await this.assertIsAuthenticated(wsKey);
|
|
465
576
|
}
|
|
466
577
|
// Reconnect to topics known before it connected
|
|
467
578
|
const { privateReqs, publicReqs } = this.sortTopicRequestsIntoPublicPrivate([...this.wsStore.getTopics(wsKey)], wsKey);
|
|
@@ -480,6 +591,22 @@ class BaseWebsocketClient extends events_1.default {
|
|
|
480
591
|
onWsAuthenticated(wsKey, event) {
|
|
481
592
|
const wsState = this.wsStore.get(wsKey, true);
|
|
482
593
|
wsState.isAuthenticated = true;
|
|
594
|
+
// Resolve & cleanup deferred "auth attempt in progress" promise
|
|
595
|
+
try {
|
|
596
|
+
const inProgressPromise = this.wsStore.getAuthenticationInProgressPromise(wsKey);
|
|
597
|
+
if (inProgressPromise?.resolve) {
|
|
598
|
+
inProgressPromise.resolve({
|
|
599
|
+
wsKey,
|
|
600
|
+
event,
|
|
601
|
+
ws: wsState.ws,
|
|
602
|
+
});
|
|
603
|
+
}
|
|
604
|
+
}
|
|
605
|
+
catch (e) {
|
|
606
|
+
this.logger.error('Exception trying to resolve "authenticationInProgress" promise', e);
|
|
607
|
+
}
|
|
608
|
+
// Remove before continuing, in case there's more requests queued
|
|
609
|
+
this.wsStore.removeAuthenticationInProgressPromise(wsKey);
|
|
483
610
|
if (this.options.authPrivateConnectionsOnConnect) {
|
|
484
611
|
const topics = [...this.wsStore.getTopics(wsKey)];
|
|
485
612
|
const privateTopics = topics.filter((topic) => this.isPrivateTopicRequest(topic, wsKey));
|
|
@@ -492,28 +619,35 @@ class BaseWebsocketClient extends events_1.default {
|
|
|
492
619
|
wsState.WSAPIAuthChannel = event.WSAPIAuthChannel;
|
|
493
620
|
}
|
|
494
621
|
}
|
|
622
|
+
onWsPing(event, wsKey, ws, source) {
|
|
623
|
+
this.logger.trace('Received ping', {
|
|
624
|
+
...WebsocketClient_js_1.WS_LOGGER_CATEGORY,
|
|
625
|
+
wsKey,
|
|
626
|
+
event,
|
|
627
|
+
source,
|
|
628
|
+
});
|
|
629
|
+
this.sendPongEvent(wsKey, ws);
|
|
630
|
+
}
|
|
631
|
+
onWsPong(event, wsKey, source) {
|
|
632
|
+
this.logger.trace('Received pong', {
|
|
633
|
+
...WebsocketClient_js_1.WS_LOGGER_CATEGORY,
|
|
634
|
+
wsKey,
|
|
635
|
+
event: event?.data,
|
|
636
|
+
source,
|
|
637
|
+
});
|
|
638
|
+
return;
|
|
639
|
+
}
|
|
495
640
|
onWsMessage(event, wsKey, ws) {
|
|
496
641
|
try {
|
|
497
642
|
// any message can clear the pong timer - wouldn't get a message if the ws wasn't working
|
|
498
643
|
this.clearPongTimer(wsKey);
|
|
499
644
|
if (this.isWsPong(event)) {
|
|
500
|
-
this.
|
|
501
|
-
...WebsocketClient_js_1.WS_LOGGER_CATEGORY,
|
|
502
|
-
wsKey,
|
|
503
|
-
event: event?.data,
|
|
504
|
-
});
|
|
505
|
-
return;
|
|
645
|
+
return this.onWsPong(event, wsKey, 'event');
|
|
506
646
|
}
|
|
507
647
|
if (this.isWsPing(event)) {
|
|
508
|
-
this.
|
|
509
|
-
...WebsocketClient_js_1.WS_LOGGER_CATEGORY,
|
|
510
|
-
wsKey,
|
|
511
|
-
event,
|
|
512
|
-
});
|
|
513
|
-
this.sendPongEvent(wsKey, ws);
|
|
514
|
-
return;
|
|
648
|
+
return this.onWsPing(event, wsKey, ws, 'event');
|
|
515
649
|
}
|
|
516
|
-
if ((0,
|
|
650
|
+
if ((0, ws_events_js_1.isMessageEvent)(event)) {
|
|
517
651
|
const data = event.data;
|
|
518
652
|
const dataType = event.type;
|
|
519
653
|
const emittableEvents = this.resolveEmittableEvents(wsKey, event);
|
|
@@ -530,13 +664,14 @@ class BaseWebsocketClient extends events_1.default {
|
|
|
530
664
|
}
|
|
531
665
|
for (const emittable of emittableEvents) {
|
|
532
666
|
if (this.isWsPong(emittable)) {
|
|
533
|
-
this.logger.trace('Received
|
|
667
|
+
this.logger.trace('Received pong2', {
|
|
534
668
|
...WebsocketClient_js_1.WS_LOGGER_CATEGORY,
|
|
535
669
|
wsKey,
|
|
536
670
|
data,
|
|
537
671
|
});
|
|
538
672
|
continue;
|
|
539
673
|
}
|
|
674
|
+
const emittableFinalEvent = getFinalEmittable(emittable, wsKey, emittable.isWSAPIResponse);
|
|
540
675
|
if (emittable.eventType === 'connectionReady') {
|
|
541
676
|
this.logger.trace('Successfully connected - connection ready for events', {
|
|
542
677
|
...WebsocketClient_js_1.WS_LOGGER_CATEGORY,
|
|
@@ -548,7 +683,7 @@ class BaseWebsocketClient extends events_1.default {
|
|
|
548
683
|
!this.options.authPrivateConnectionsOnConnect) {
|
|
549
684
|
wsState.isAuthenticated = true;
|
|
550
685
|
}
|
|
551
|
-
this.emit('response',
|
|
686
|
+
this.emit('response', emittableFinalEvent);
|
|
552
687
|
this.onWsReadyForEvents(wsKey);
|
|
553
688
|
continue;
|
|
554
689
|
}
|
|
@@ -557,11 +692,33 @@ class BaseWebsocketClient extends events_1.default {
|
|
|
557
692
|
...WebsocketClient_js_1.WS_LOGGER_CATEGORY,
|
|
558
693
|
wsKey,
|
|
559
694
|
});
|
|
560
|
-
this.emit(emittable.eventType,
|
|
695
|
+
this.emit(emittable.eventType, emittableFinalEvent);
|
|
561
696
|
this.onWsAuthenticated(wsKey, emittable.event);
|
|
562
697
|
continue;
|
|
563
698
|
}
|
|
564
|
-
|
|
699
|
+
if (emittable.eventType === 'connectionReadyForAuth') {
|
|
700
|
+
this.logger.trace('Ready for auth - requesting auth submission...', {
|
|
701
|
+
...WebsocketClient_js_1.WS_LOGGER_CATEGORY,
|
|
702
|
+
wsKey,
|
|
703
|
+
});
|
|
704
|
+
this.sendAuthRequest(wsKey, emittable.event);
|
|
705
|
+
continue;
|
|
706
|
+
}
|
|
707
|
+
// Other event types are automatically emitted here
|
|
708
|
+
// this.logger.trace(
|
|
709
|
+
// `onWsMessage().emit(${emittable.eventType})`,
|
|
710
|
+
// emittableFinalEvent,
|
|
711
|
+
// );
|
|
712
|
+
try {
|
|
713
|
+
this.emit(emittable.eventType, emittableFinalEvent);
|
|
714
|
+
}
|
|
715
|
+
catch (e) {
|
|
716
|
+
this.logger.error(`Exception in onWsMessage().emit(${emittable.eventType}) handler:`, e);
|
|
717
|
+
}
|
|
718
|
+
// this.logger.trace(
|
|
719
|
+
// `onWsMessage().emit(${emittable.eventType}).done()`,
|
|
720
|
+
// emittableFinalEvent,
|
|
721
|
+
// );
|
|
565
722
|
}
|
|
566
723
|
return;
|
|
567
724
|
}
|
|
@@ -586,7 +743,11 @@ class BaseWebsocketClient extends events_1.default {
|
|
|
586
743
|
...WebsocketClient_js_1.WS_LOGGER_CATEGORY,
|
|
587
744
|
wsKey,
|
|
588
745
|
});
|
|
746
|
+
const wsState = this.wsStore.get(wsKey, true);
|
|
747
|
+
wsState.isAuthenticated = false;
|
|
589
748
|
if (this.wsStore.getConnectionState(wsKey) !== WsStore_types_js_1.WsConnectionStateEnum.CLOSING) {
|
|
749
|
+
// unintentional close, attempt recovery
|
|
750
|
+
this.logger.trace(`onWsClose(${wsKey}): rejecting all deferred promises...`);
|
|
590
751
|
// clean up any pending promises for this connection
|
|
591
752
|
this.getWsStore().rejectAllDeferredPromises(wsKey, 'connection lost, reconnecting');
|
|
592
753
|
this.setWsState(wsKey, WsStore_types_js_1.WsConnectionStateEnum.INITIAL);
|
|
@@ -594,9 +755,13 @@ class BaseWebsocketClient extends events_1.default {
|
|
|
594
755
|
this.emit('reconnect', { wsKey, event });
|
|
595
756
|
}
|
|
596
757
|
else {
|
|
758
|
+
// intentional close - clean up
|
|
597
759
|
// clean up any pending promises for this connection
|
|
760
|
+
this.logger.trace(`onWsClose(${wsKey}): rejecting all deferred promises...`);
|
|
598
761
|
this.getWsStore().rejectAllDeferredPromises(wsKey, 'disconnected');
|
|
599
762
|
this.setWsState(wsKey, WsStore_types_js_1.WsConnectionStateEnum.INITIAL);
|
|
763
|
+
// This was an intentional close, delete all state for this connection, as if it never existed:
|
|
764
|
+
this.wsStore.delete(wsKey);
|
|
600
765
|
this.emit('close', { wsKey, event });
|
|
601
766
|
}
|
|
602
767
|
}
|
|
@@ -610,21 +775,49 @@ class BaseWebsocketClient extends events_1.default {
|
|
|
610
775
|
* Promise-driven method to assert that a ws has successfully connected (will await until connection is open)
|
|
611
776
|
*/
|
|
612
777
|
async assertIsConnected(wsKey) {
|
|
778
|
+
const isConnected = this.getWsStore().isConnectionState(wsKey, WsStore_types_js_1.WsConnectionStateEnum.CONNECTED);
|
|
779
|
+
if (isConnected) {
|
|
780
|
+
return true;
|
|
781
|
+
}
|
|
782
|
+
const inProgressPromise = this.getWsStore().getConnectionInProgressPromise(wsKey);
|
|
783
|
+
// Already in progress? Await shared promise and retry
|
|
784
|
+
if (inProgressPromise) {
|
|
785
|
+
// this.logger.trace('assertIsConnected(): awaiting...');
|
|
786
|
+
await inProgressPromise.promise;
|
|
787
|
+
// this.logger.trace('assertIsConnected(): awaiting...connected!');
|
|
788
|
+
return;
|
|
789
|
+
}
|
|
790
|
+
// Start connection, it should automatically store/return a promise.
|
|
791
|
+
// this.logger.trace('assertIsConnected(): connecting...');
|
|
792
|
+
await this.connect(wsKey);
|
|
793
|
+
// this.logger.trace('assertIsConnected(): connecting...newly connected!');
|
|
794
|
+
}
|
|
795
|
+
/**
|
|
796
|
+
* Promise-driven method to assert that a ws has been successfully authenticated (will await until auth is confirmed)
|
|
797
|
+
*/
|
|
798
|
+
async assertIsAuthenticated(wsKey) {
|
|
613
799
|
const isConnected = this.getWsStore().isConnectionState(wsKey, WsStore_types_js_1.WsConnectionStateEnum.CONNECTED);
|
|
614
800
|
if (!isConnected) {
|
|
615
|
-
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
|
|
619
|
-
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
623
|
-
//
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
|
|
801
|
+
// this.logger.trace('assertIsAuthenticated(): connecting...');
|
|
802
|
+
await this.assertIsConnected(wsKey);
|
|
803
|
+
}
|
|
804
|
+
const inProgressPromise = this.getWsStore().getAuthenticationInProgressPromise(wsKey);
|
|
805
|
+
// Already in progress? Await shared promise and retry
|
|
806
|
+
if (inProgressPromise) {
|
|
807
|
+
// this.logger.trace('assertIsAuthenticated(): awaiting...');
|
|
808
|
+
await inProgressPromise.promise;
|
|
809
|
+
// this.logger.trace('assertIsAuthenticated(): authenticated!');
|
|
810
|
+
return;
|
|
811
|
+
}
|
|
812
|
+
const isAuthenticated = this.wsStore.get(wsKey)?.isAuthenticated;
|
|
813
|
+
if (isAuthenticated) {
|
|
814
|
+
// this.logger.trace('assertIsAuthenticated(): ok');
|
|
815
|
+
return;
|
|
627
816
|
}
|
|
817
|
+
// Start authentication, it should automatically store/return a promise.
|
|
818
|
+
// this.logger.trace('assertIsAuthenticated(): authenticating...');
|
|
819
|
+
await this.sendAuthRequest(wsKey);
|
|
820
|
+
// this.logger.trace('assertIsAuthenticated(): newly authenticated!');
|
|
628
821
|
}
|
|
629
822
|
}
|
|
630
823
|
exports.BaseWebsocketClient = BaseWebsocketClient;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseWSClient.js","sourceRoot":"","sources":["../../../src/lib/BaseWSClient.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BaseWSClient.js","sourceRoot":"","sources":["../../../src/lib/BaseWSClient.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAkC;AAClC,kEAAsC;AAGtC,mEAG0C;AAM1C,8DAA2D;AAC3D,uDAA+D;AAC/D,qDAAsD;AACtD,qEAIuC;AACvC,uDAAiD;AACjD,mEAGsC;AAuEtC;;;GAGG;AACH,SAAS,iBAAiB,CACxB,SAA4C,EAC5C,KAAU,EACV,eAAyB;IAEzB,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAChC,iBAAiB,CAAC,QAAQ,EAAE,KAAK,EAAE,eAAe,CAAC,CACpD,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACnC,kCAAkC;QAClC,gEAAgE;QAChE,OAAO,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CACtC,iBAAiB,CAAC,QAAQ,EAAE,KAAK,EAAE,eAAe,CAAC,CACpD,CAAC;QAEF,0CAA0C;QAC1C,WAAW;QACX,eAAe;QACf,mCAAmC;QACnC,2DAA2D;QAC3D,OAAO;QACP,KAAK;IACP,CAAC;IAED,IAAI,SAAS,CAAC,KAAK,EAAE,CAAC;QACpB,OAAO;YACL,GAAG,SAAS,CAAC,KAAK;YAClB,KAAK,EAAE,KAAK;YACZ,eAAe,EAAE,CAAC,CAAC,eAAe;SACnC,CAAC;IACJ,CAAC;IAED,OAAO;QACL,GAAG,SAAS;QACZ,KAAK,EAAE,KAAK;QACZ,eAAe,EAAE,CAAC,CAAC,eAAe;KACnC,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,SAAS,0BAA0B,CACjC,eAAsD;IAEtD,MAAM,uBAAuB,GAA6B,EAAE,CAAC;IAE7D,KAAK,MAAM,cAAc,IAAI,eAAe,EAAE,CAAC;QAC7C,sCAAsC;QACtC,IAAI,OAAO,cAAc,KAAK,QAAQ,EAAE,CAAC;YACvC,MAAM,YAAY,GAA2B;gBAC3C,KAAK,EAAE,cAAc;gBACrB,OAAO,EAAE,SAAS;aACnB,CAAC;YACF,uBAAuB,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAC3C,SAAS;QACX,CAAC;QAED,8CAA8C;QAC9C,uBAAuB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,uBAAuB,CAAC;AACjC,CAAC;AAID,4EAA4E;AAC5E,MAAsB,mBAEpB,SAAQ,gBAAY;IACZ,OAAO,CAA2C;IAEhD,MAAM,CAAgB;IAEtB,OAAO,CAAyB;IAElC,cAAc,GAAW,CAAC,CAAC;IAEnC,YAAY,OAAqC,EAAE,MAAsB;QACvE,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,yBAAa,CAAC;QACtC,IAAI,CAAC,OAAO,GAAG,IAAI,oBAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAExC,IAAI,CAAC,OAAO,GAAG;YACb,WAAW,EAAE,IAAI;YACjB,YAAY,EAAE,KAAK;YACnB,gBAAgB,EAAE,GAAG;YACrB,UAAU,EAAE,CAAC;YACb,wFAAwF;YACxF,kCAAkC,EAAE,IAAI;YACxC,iDAAiD;YACjD,+BAA+B,EAAE,KAAK;YACtC,wDAAwD;YACxD,mBAAmB,EAAE,KAAK;YAC1B,6EAA6E;YAC7E,sBAAsB,EAAE,IAAI;YAC5B,6DAA6D;YAC7D,mBAAmB,EAAE,KAAK;YAE1B,GAAG,OAAO;SACX,CAAC;QAEF,iGAAiG;QACjG,IACE,IAAI,CAAC,OAAO,CAAC,MAAM;YACnB,IAAI,CAAC,OAAO,CAAC,SAAS;YACtB,IAAI,CAAC,OAAO,CAAC,aAAa;YAC1B,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,EACjC,CAAC;YACD,IAAA,4CAA0B,GAAE,CAAC;QAC/B,CAAC;IACH,CAAC;IAkDS,cAAc,CAAC,KAAa;QACpC,OAAO,IAAI,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;IAED,gGAAgG;IACtF,eAAe;QACvB,OAAO,GAAG,EAAE,IAAI,CAAC,cAAc,EAAE,CAAC;IACpC,CAAC;IAED,uCAAuC;IACvC,mBAAmB;IACnB,uBAAuB;IACvB,kBAAkB;IAClB,uBAAuB;IAEvB;;;;;;;;;;OAUG;IACI,uBAAuB,CAC5B,eAAuD,EACvD,KAAa;QAEb,MAAM,uBAAuB,GAAG,0BAA0B,CAAC,eAAe,CAAC,CAAC;QAE5E,oHAAoH;QACpH,KAAK,MAAM,KAAK,IAAI,uBAAuB,EAAE,CAAC;YAC5C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAChD,KAAK,EACL,wCAAqB,CAAC,SAAS,CAChC,CAAC;QAEF,MAAM,sBAAsB,GAC1B,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC,KAAK,CAAC,CAAC;QAEpD,qGAAqG;QACrG,IAAI,CAAC,WAAW,IAAI,CAAC,sBAAsB,EAAE,CAAC;YAC5C,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAC7B,CAAC;QAED,8GAA8G;QAC9G,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB;;eAEG;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,8DAA8D,EAC9D;gBACE,GAAG,uCAAkB;gBACrB,KAAK;gBACL,eAAe;aAChB,CACF,CAAC;YACF,OAAO,sBAAsB,CAAC;QAChC,CAAC;QAED,wEAAwE;QACxE,MAAM,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;QACjE,IAAI,mBAAmB,IAAI,CAAC,eAAe,EAAE,CAAC;YAC5C;;;;eAIG;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,2EAA2E,CAC5E,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,iFAAiF;QACjF,OAAO,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;IACrE,CAAC;IAES,yBAAyB,CACjC,eAAsD,EACtD,KAAa;QAEb,MAAM,uBAAuB,GAAG,0BAA0B,CAAC,eAAe,CAAC,CAAC;QAE5E,oHAAoH;QACpH,KAAK,MAAM,KAAK,IAAI,uBAAuB,EAAE,CAAC;YAC5C,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QACzC,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAChD,KAAK,EACL,wCAAqB,CAAC,SAAS,CAChC,CAAC;QAEF,+CAA+C;QAC/C,kGAAkG;QAClG,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO;QACT,CAAC;QAED,wEAAwE;QACxE,MAAM,mBAAmB,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QACvD,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;QACjE,IAAI,mBAAmB,IAAI,CAAC,eAAe,EAAE,CAAC;YAC5C;;;eAGG;YACH,OAAO;QACT,CAAC;QAED,iFAAiF;QACjF,OAAO,IAAI,CAAC,wBAAwB,CAAC,KAAK,EAAE,uBAAuB,CAAC,CAAC;IACvE,CAAC;IAED;;OAEG;IACK,kCAAkC,CACxC,eAAyC,EACzC,KAAa;QAKb,MAAM,mBAAmB,GAA6B,EAAE,CAAC;QACzD,MAAM,oBAAoB,GAA6B,EAAE,CAAC;QAE1D,KAAK,MAAM,KAAK,IAAI,eAAe,EAAE,CAAC;YACpC,IAAI,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,EAAE,CAAC;gBAC7C,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACnC,CAAC;iBAAM,CAAC;gBACN,mBAAmB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAClC,CAAC;QACH,CAAC;QAED,OAAO;YACL,UAAU,EAAE,mBAAmB;YAC/B,WAAW,EAAE,oBAAoB;SAClC,CAAC;IACJ,CAAC;IAED,sDAAsD;IAC/C,UAAU;QACf,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAEM,KAAK,CAAC,KAAa,EAAE,KAAe;QACzC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,GAAG,uCAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;QACzE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,wCAAqB,CAAC,OAAO,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAExB,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QAC7B,EAAE,EAAE,KAAK,EAAE,CAAC;QACZ,IAAI,KAAK,EAAE,CAAC;YACV,IAAA,mCAAe,EAAC,EAAE,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;IAEM,QAAQ,CAAC,KAAe;QAC7B,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,GAAW,EAAE,EAAE;YAC7C,IAAI,CAAC,KAAK,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QACzB,CAAC,CAAC,CAAC;IACL,CAAC;IAEM,WAAW,CAAC,KAAa;QAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,iBAAiB,CACnC,KAAK,EACL,wCAAqB,CAAC,SAAS,CAChC,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,OAAO,CAClB,KAAa,EACb,SAA8B,EAC9B,YAAsB;QAEtB,IAAI,CAAC;YACH,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACjC,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,0DAA0D,EAC1D,EAAE,GAAG,uCAAkB,EAAE,KAAK,EAAE,CACjC,CAAC;gBACF,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAE,EAAE,CAAC;YACnD,CAAC;YAED,IAAI,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtD,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,6DAA6D,EAC7D,EAAE,GAAG,uCAAkB,EAAE,KAAK,EAAE,CACjC,CAAC;gBACF,OAAO,IAAI,CAAC,OAAO,CAAC,8BAA8B,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;YACrE,CAAC;YAED,IACE,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC;gBACvC,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,EAAE,wCAAqB,CAAC,OAAO,CAAC,EACpE,CAAC;gBACD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,wCAAqB,CAAC,UAAU,CAAC,CAAC;YAC3D,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,8BAA8B,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxD,IAAI,CAAC,OAAO,CAAC,iCAAiC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC/D,CAAC;YAED,IAAI,CAAC;gBACH,MAAM,GAAG,GAAG,SAAS,IAAI,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;gBACtD,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBAE3C,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;YAChC,CAAC;YAAC,OAAO,CAAC,EAAE,CAAC;gBACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE,CAAC,CAAC,CAAC;gBAClD,MAAM,CAAC,CAAC;YACV,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,mBAAmB,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC;YACpE,IAAI,QAAQ,EAAE,CAAC;gBACb,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAiB,CAAC,CAAC;YACjE,CAAC;iBAAM,CAAC;gBACN,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,wDAAwD,CACzD,CAAC;YACJ,CAAC;YAED,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC,OAAO,CAAC,8BAA8B,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;IACrE,CAAC;IAEO,cAAc,CAAC,GAAW,EAAE,KAAa;QAC/C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iCAAiC,GAAG,EAAE,EAAE;YACxD,GAAG,uCAAkB;YACrB,KAAK;SACN,CAAC,CAAC;QAEH,MAAM,EAAE,SAAS,GAAG,EAAE,EAAE,GAAG,SAAS,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;QACtE,MAAM,EAAE,GAAG,IAAI,uBAAS,CAAC,GAAG,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAEpD,EAAE,CAAC,MAAM,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACjE,EAAE,CAAC,SAAS,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;QAClE,EAAE,CAAC,OAAO,GAAG,CAAC,KAAU,EAAE,EAAE,CAC1B,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;QACrD,EAAE,CAAC,OAAO,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;QAE1D,oDAAoD;QACpD,IAAI,IAAI,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC;YACrC,IAAI,OAAO,EAAE,CAAC,EAAE,KAAK,UAAU,EAAE,CAAC;gBAChC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAU,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC;gBACxE,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAU,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC;YACtE,CAAC;QACH,CAAC;QAEA,EAAU,CAAC,KAAK,GAAG,KAAK,CAAC;QAE1B,OAAO,EAAE,CAAC;IACZ,CAAC;IAEO,YAAY,CAAC,OAAe,EAAE,KAAU,EAAE,KAAa;QAC7D,IAAI,IAAI,CAAC,OAAO,CAAC,6BAA6B,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,wCAAqB,CAAC,KAAK,CAAC,CAAC;QACtD,CAAC;QAED,iGAAiG;QACjG,IAAI,QAAQ,GAAG,IAAI,CAAC;QAEpB,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,4BAA4B,EAAE,KAAK,CAAC,CAAC;YACjE,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;YAC5C,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,QAAQ,KAAK,CAAC,OAAO,EAAE,CAAC;YACtB,KAAK,iCAAiC;gBACpC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,oCAAoC,EAAE;oBAChE,GAAG,uCAAkB;oBACrB,KAAK;iBACN,CAAC,CAAC;gBACH,QAAQ,GAAG,KAAK,CAAC;gBACjB,MAAM;YAER;gBACE,IAAI,KAAK,EAAE,IAAI,KAAK,WAAW,EAAE,CAAC;oBAChC,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,GAAG,OAAO,8BACR,KAAK,EAAE,GAAG,IAAI,KAAK,EAAE,OAAO,IAAI,KAClC,GAAG,EACH;wBACE,GAAG,uCAAkB;wBACrB,KAAK;wBACL,KAAK;wBACL,eAAe,EAAE,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC;qBACxD,CACF,CAAC;oBACF,QAAQ,GAAG,IAAI,CAAC;oBAEhB,MAAM;gBACR,CAAC;gBAED,IAAI,KAAK,EAAE,IAAI,KAAK,GAAG,EAAE,CAAC;oBACxB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,OAAO,oCAAoC,EAAE;wBAChE,GAAG,uCAAkB;wBACrB,KAAK;qBACN,CAAC,CAAC;oBACH,QAAQ,GAAG,KAAK,CAAC;gBACnB,CAAC;gBAED,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,GAAG,OAAO,uCACR,KAAK,EAAE,GAAG,IAAI,KAAK,EAAE,OAAO,IAAI,KAClC,GAAG,EACH,EAAE,GAAG,uCAAkB,EAAE,KAAK,EAAE,KAAK,EAAE,CACxC,CAAC;gBACF,MAAM;QACV,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3C,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAE5C,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,0DAA0D;IAClD,KAAK,CAAC,eAAe,CAC3B,KAAa,EACb,WAAoB;QAEpB,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE;gBAC3C,GAAG,uCAAkB;gBACrB,KAAK;gBACL,WAAW;aACZ,CAAC,CAAC;YAEH,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;YAEpC,8CAA8C;YAC9C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YACrE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,mDAAmD;gBACnD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;gBAC9C,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;gBAC/B,OAAO;YACT,CAAC;YAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,kCAAkC,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5D,IAAI,CAAC,OAAO,CAAC,qCAAqC,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YACnE,CAAC;YAED,IAAI,OAAO,KAAK,cAAc,EAAE,CAAC;gBAC/B,OAAO,IAAI,CAAC,OAAO,CAAC,kCAAkC,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;YACzE,CAAC;YAED,IAAI,CAAC,SAAS,CACZ,KAAK,EACL,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAChE,CAAC;YAEF,OAAO,IAAI,CAAC,OAAO,CAAC,kCAAkC,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC;QACzE,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,GAAG,uCAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;QACzD,CAAC;IACH,CAAC;IAEO,kBAAkB,CAAC,KAAa,EAAE,iBAAyB;QACjE,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QACxB,IACE,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC;YACtC,wCAAqB,CAAC,UAAU,EAChC,CAAC;YACD,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,wCAAqB,CAAC,YAAY,CAAC,CAAC;QAC7D,CAAC;QAED,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,oBAAoB,GAAG,UAAU,CAAC,GAAG,EAAE;YACnE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;gBAC5C,GAAG,uCAAkB;gBACrB,KAAK;aACN,CAAC,CAAC;YACH,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC,EAAE,iBAAiB,CAAC,CAAC;IACxB,CAAC;IAEO,IAAI,CAAC,KAAa;QACxB,IAAI,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,eAAe,EAAE,CAAC;YAClD,OAAO;QACT,CAAC;QAED,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAE3B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,cAAc,EAAE,EAAE,GAAG,uCAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;QACpE,MAAM,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC;QAE5C,IAAI,CAAC,EAAE,EAAE,CAAC;YACR,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,kCAAkC,KAAK,yBAAyB,CACjE,CAAC;YACF,OAAO;QACT,CAAC;QACD,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAE9B,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,eAAe,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4CAA4C,EAAE;gBAC7D,GAAG,uCAAkB;gBACrB,KAAK;aACN,CAAC,CAAC;YAEH,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAE3B,IAAA,mCAAe,EAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC,CAAC;QAC3C,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IAEO,WAAW,CAAC,KAAa;QAC/B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3B,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;QAC3B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,OAAO,EAAE,oBAAoB,EAAE,CAAC;YAClC,YAAY,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAED,2BAA2B;IACnB,cAAc,CAAC,KAAa;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,OAAO,EAAE,eAAe,EAAE,CAAC;YAC7B,aAAa,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YACvC,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;QACtC,CAAC;IACH,CAAC;IAED,oCAAoC;IAC5B,cAAc,CAAC,KAAa;QAClC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QACxC,IAAI,OAAO,EAAE,eAAe,EAAE,CAAC;YAC7B,YAAY,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;YACtC,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;YACpC,4DAA4D;QAC9D,CAAC;aAAM,CAAC;YACN,4DAA4D;QAC9D,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,sBAAsB,CAClC,KAAa,EACb,MAAgC;QAEhC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QAED,gEAAgE;QAChE,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,6BAA6B,CAClE,MAAM,EACN,KAAK,EACL,WAAW,CACZ,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,kBAAkB,MAAM,CAAC,MAAM,KAAK,KAAK,eAAe,mBAAmB,CAAC,MAAM,WAAW,CAC9F,CAAC;QAEF,KAAK,MAAM,SAAS,IAAI,mBAAmB,EAAE,CAAC;YAC5C,kEAAkE;YAClE,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,2BAA2B,MAAM,CAAC,MAAM,KAAK,KAAK,eAAe,mBAAmB,CAAC,MAAM,WAAW,CACvG,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACK,KAAK,CAAC,wBAAwB,CACpC,KAAa,EACb,eAAyC;QAEzC,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QAED,MAAM,mBAAmB,GAAG,MAAM,IAAI,CAAC,6BAA6B,CAClE,eAAe,EACf,KAAK,EACL,aAAa,CACd,CAAC;QAEF,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,oBAAoB,eAAe,CAAC,MAAM,KAAK,KAAK,eAAe,mBAAmB,CAAC,MAAM,sBAAsB,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,GAAG,CACtJ,CAAC;QAEF,KAAK,MAAM,SAAS,IAAI,mBAAmB,EAAE,CAAC;YAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,SAAS,GAAG,CAAC,CAAC;YAC/D,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACnC,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,6BAA6B,eAAe,CAAC,MAAM,KAAK,KAAK,eAAe,mBAAmB,CAAC,MAAM,WAAW,CAClH,CAAC;IACJ,CAAC;IAED;;OAEG;IACI,SAAS,CACd,KAAa,EACb,SAAiB,EACjB,eAAyB;QAEzB,IAAI,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,+BAA+B,EAAE;gBACjD,GAAG,uCAAkB;gBACrB,SAAS;gBACT,KAAK;aACN,CAAC,CAAC;YACH,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CACb,8DAA8D,CAC/D,CAAC;YACJ,CAAC;YACD,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC7B,IAAI,CAAC,EAAE,EAAE,CAAC;gBACR,MAAM,IAAI,KAAK,CACb,GAAG,KAAK,mGAAmG,CAC5G,CAAC;YACJ,CAAC;YACD,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,2BAA2B,EAAE;gBAC7C,GAAG,uCAAkB;gBACrB,SAAS;gBACT,KAAK;gBACL,SAAS,EAAE,CAAC;aACb,CAAC,CAAC;YACH,IAAI,eAAe,EAAE,CAAC;gBACpB,MAAM,CAAC,CAAC;YACV,CAAC;QACH,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,QAAQ,CACpB,KAAsB,EACtB,KAAa,EACb,GAAW,EACX,EAAa;QAEb,MAAM,wBAAwB,GAC5B,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAC5B,KAAK,EACL,wCAAqB,CAAC,YAAY,CACnC,IAAI,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,EAAE,wCAAqB,CAAC,KAAK,CAAC,CAAC;QAE1E,MAAM,wBAAwB,GAAG,IAAI,CAAC,OAAO,CAAC,iBAAiB,CAC7D,KAAK,EACL,wCAAqB,CAAC,UAAU,CACjC,CAAC;QAEF,IAAI,wBAAwB,EAAE,CAAC;YAC7B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,EAAE;gBACtC,GAAG,uCAAkB;gBACrB,KAAK;aACN,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;QACtD,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAuB,EAAE;gBACxC,GAAG,uCAAkB;gBACrB,KAAK;gBACL,wBAAwB;aACzB,CAAC,CAAC;YACH,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;gBACvB,KAAK;gBACL,KAAK;gBACL,wBAAwB;gBACxB,KAAK,EAAE,GAAG;gBACV,EAAE;aACI,CAAC,CAAC;QACZ,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,wCAAqB,CAAC,SAAS,CAAC,CAAC;QAExD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,EAAE,EAAE,GAAG,uCAAkB,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1E,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAE,CAAC,eAAe,GAAG,WAAW,CAC1D,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,EACtB,IAAI,CAAC,OAAO,CAAC,YAAY,CAC1B,CAAC;QAEF,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,kCAAkC,EAAE,CAAC;YACrD,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACvC,CAAC;QAED,sEAAsE;QACtE,IAAI,CAAC;YACH,MAAM,2BAA2B,GAC/B,IAAI,CAAC,OAAO,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC;YACrD,IAAI,2BAA2B,EAAE,OAAO,EAAE,CAAC;gBACzC,2BAA2B,CAAC,OAAO,CAAC;oBAClC,KAAK;oBACL,EAAE;iBACH,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,4DAA4D,EAC5D,CAAC,CACF,CAAC;QACJ,CAAC;QAED,iEAAiE;QACjE,IAAI,CAAC,OAAO,CAAC,iCAAiC,CAAC,KAAK,CAAC,CAAC;IACxD,CAAC;IAED;;;;;;OAMG;IACK,KAAK,CAAC,kBAAkB,CAAC,KAAa;QAC5C,IAAI,CAAC;YACH,sEAAsE;YACtE,MAAM,2BAA2B,GAC/B,IAAI,CAAC,OAAO,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC;YAErD,IAAI,2BAA2B,EAAE,OAAO,EAAE,CAAC;gBACzC,2BAA2B,CAAC,OAAO,CAAC;oBAClC,KAAK;oBACL,EAAE,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAE;iBAC/B,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,4DAA4D,CAC7D,CAAC;QACJ,CAAC;QAED,gEAAgE;QAChE,IAAI,CAAC,OAAO,CAAC,iCAAiC,CAAC,KAAK,CAAC,CAAC;QAEtD,iFAAiF;QACjF,IACE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;YAC1B,IAAI,CAAC,OAAO,CAAC,+BAA+B,EAC5C,CAAC;YACD,MAAM,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;QAC1C,CAAC;QAED,gDAAgD;QAChD,MAAM,EAAE,WAAW,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,kCAAkC,CACzE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAClC,KAAK,CACN,CAAC;QAEF,uCAAuC;QACvC,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC;QAE/C,iEAAiE;QACjE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,+BAA+B,EAAE,CAAC;YAClD,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,iBAAiB,CACvB,KAAa,EACb,KAAuD;QAEvD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC9C,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;QAE/B,gEAAgE;QAChE,IAAI,CAAC;YACH,MAAM,iBAAiB,GACrB,IAAI,CAAC,OAAO,CAAC,kCAAkC,CAAC,KAAK,CAAC,CAAC;YAEzD,IAAI,iBAAiB,EAAE,OAAO,EAAE,CAAC;gBAC/B,iBAAiB,CAAC,OAAO,CAAC;oBACxB,KAAK;oBACL,KAAK;oBACL,EAAE,EAAE,OAAO,CAAC,EAAG;iBAChB,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,gEAAgE,EAChE,CAAC,CACF,CAAC;QACJ,CAAC;QAED,iEAAiE;QACjE,IAAI,CAAC,OAAO,CAAC,qCAAqC,CAAC,KAAK,CAAC,CAAC;QAE1D,IAAI,IAAI,CAAC,OAAO,CAAC,+BAA+B,EAAE,CAAC;YACjD,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;YAClD,MAAM,aAAa,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAC5C,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAK,CAAC,CACzC,CAAC;YAEF,IAAI,aAAa,CAAC,MAAM,EAAE,CAAC;gBACzB,IAAI,CAAC,uBAAuB,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;YACrD,CAAC;QACH,CAAC;QAED,IAAI,KAAK,EAAE,OAAO,IAAI,KAAK,EAAE,gBAAgB,EAAE,CAAC;YAC9C,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;YAC5B,OAAO,CAAC,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC;QACpD,CAAC;IACH,CAAC;IAEO,QAAQ,CACd,KAAU,EACV,KAAa,EACb,EAAa,EACb,MAA0B;QAE1B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE;YACjC,GAAG,uCAAkB;YACrB,KAAK;YACL,KAAK;YACL,MAAM;SACP,CAAC,CAAC;QACH,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;IAChC,CAAC;IAEO,QAAQ,CAAC,KAAU,EAAE,KAAa,EAAE,MAA0B;QACpE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,eAAe,EAAE;YACjC,GAAG,uCAAkB;YACrB,KAAK;YACL,KAAK,EAAG,KAAa,EAAE,IAAI;YAC3B,MAAM;SACP,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IAEO,WAAW,CAAC,KAAc,EAAE,KAAa,EAAE,EAAa;QAC9D,IAAI,CAAC;YACH,yFAAyF;YACzF,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YAE3B,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;YAC9C,CAAC;YAED,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;gBACzB,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;YAClD,CAAC;YAED,IAAI,IAAA,6BAAc,EAAC,KAAK,CAAC,EAAE,CAAC;gBAC1B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;gBACxB,MAAM,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC;gBAE5B,MAAM,eAAe,GAAG,IAAI,CAAC,sBAAsB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;gBAElE,IAAI,CAAC,eAAe,CAAC,MAAM,EAAE,CAAC;oBAC5B,mEAAmE;oBACnE,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,sEAAsE,EACtE;wBACE,GAAG,uCAAkB;wBACrB,OAAO,EAAE,IAAI,IAAI,YAAY;wBAC7B,QAAQ;wBACR,KAAK;wBACL,KAAK;qBACN,CACF,CAAC;oBAEF,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;gBAClD,CAAC;gBAED,KAAK,MAAM,SAAS,IAAI,eAAe,EAAE,CAAC;oBACxC,IAAI,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;wBAC7B,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,EAAE;4BAClC,GAAG,uCAAkB;4BACrB,KAAK;4BACL,IAAI;yBACL,CAAC,CAAC;wBACH,SAAS;oBACX,CAAC;oBAED,MAAM,mBAAmB,GAAG,iBAAiB,CAC3C,SAAS,EACT,KAAK,EACL,SAAS,CAAC,eAAe,CAC1B,CAAC;oBAEF,IAAI,SAAS,CAAC,SAAS,KAAK,iBAAiB,EAAE,CAAC;wBAC9C,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,sDAAsD,EACtD;4BACE,GAAG,uCAAkB;4BACrB,KAAK;yBACN,CACF,CAAC;wBAEF,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;wBACxC,IACE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;4BAC1B,OAAO;4BACP,CAAC,IAAI,CAAC,OAAO,CAAC,+BAA+B,EAC7C,CAAC;4BACD,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;wBACjC,CAAC;wBAED,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,mBAAmB,CAAC,CAAC;wBAC3C,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;wBAC/B,SAAS;oBACX,CAAC;oBAED,IAAI,SAAS,CAAC,SAAS,KAAK,eAAe,EAAE,CAAC;wBAC5C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,EAAE;4BAC9C,GAAG,uCAAkB;4BACrB,KAAK;yBACN,CAAC,CAAC;wBACH,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;wBACpD,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;wBAC/C,SAAS;oBACX,CAAC;oBAED,IAAI,SAAS,CAAC,SAAS,KAAK,wBAAwB,EAAE,CAAC;wBACrD,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,gDAAgD,EAChD;4BACE,GAAG,uCAAkB;4BACrB,KAAK;yBACN,CACF,CAAC;wBACF,IAAI,CAAC,eAAe,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC;wBAC7C,SAAS;oBACX,CAAC;oBAED,mDAAmD;oBACnD,qBAAqB;oBACrB,kDAAkD;oBAClD,yBAAyB;oBACzB,KAAK;oBACL,IAAI,CAAC;wBACH,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,mBAAmB,CAAC,CAAC;oBACtD,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACX,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,mCAAmC,SAAS,CAAC,SAAS,YAAY,EAClE,CAAC,CACF,CAAC;oBACJ,CAAC;oBACD,qBAAqB;oBACrB,yDAAyD;oBACzD,yBAAyB;oBACzB,KAAK;gBACP,CAAC;gBAED,OAAO;YACT,CAAC;YAED,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,qEAAqE,EACrE;gBACE,GAAG,uCAAkB;gBACrB,OAAO,EAAE,KAAK,IAAI,YAAY;gBAC9B,KAAK;gBACL,KAAK;aACN,CACF,CAAC;QACJ,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,EAAE;gBACpD,GAAG,uCAAkB;gBACrB,KAAK,EAAE,CAAC;gBACR,KAAK;gBACL,KAAK;aACN,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAEO,SAAS,CAAC,KAAc,EAAE,KAAa;QAC7C,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE;YAC9C,GAAG,uCAAkB;YACrB,KAAK;SACN,CAAC,CAAC;QAEH,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAC9C,OAAO,CAAC,eAAe,GAAG,KAAK,CAAC;QAEhC,IACE,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,KAAK,wCAAqB,CAAC,OAAO,EACxE,CAAC;YACD,wCAAwC;YACxC,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,aAAa,KAAK,uCAAuC,CAC1D,CAAC;YACF,oDAAoD;YACpD,IAAI,CAAC,UAAU,EAAE,CAAC,yBAAyB,CACzC,KAAK,EACL,+BAA+B,CAChC,CAAC;YAEF,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,wCAAqB,CAAC,OAAO,CAAC,CAAC;YAEtD,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,gBAAiB,CAAC,CAAC;YAC/D,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3C,CAAC;aAAM,CAAC;YACN,+BAA+B;YAC/B,oDAAoD;YACpD,IAAI,CAAC,MAAM,CAAC,KAAK,CACf,aAAa,KAAK,uCAAuC,CAC1D,CAAC;YACF,IAAI,CAAC,UAAU,EAAE,CAAC,yBAAyB,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;YACnE,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,wCAAqB,CAAC,OAAO,CAAC,CAAC;YAEtD,+FAA+F;YAC/F,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAE3B,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,KAAa;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACnC,CAAC;IAEO,UAAU,CAAC,KAAa,EAAE,KAA4B;QAC5D,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACO,KAAK,CAAC,iBAAiB,CAAC,KAAa;QAC7C,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,iBAAiB,CACrD,KAAK,EACL,wCAAqB,CAAC,SAAS,CAChC,CAAC;QAEF,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,iBAAiB,GACrB,IAAI,CAAC,UAAU,EAAE,CAAC,8BAA8B,CAAC,KAAK,CAAC,CAAC;QAE1D,sDAAsD;QACtD,IAAI,iBAAiB,EAAE,CAAC;YACtB,yDAAyD;YACzD,MAAM,iBAAiB,CAAC,OAAO,CAAC;YAChC,mEAAmE;YACnE,OAAO;QACT,CAAC;QAED,oEAAoE;QACpE,2DAA2D;QAE3D,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAE1B,2EAA2E;IAC7E,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,qBAAqB,CAAC,KAAa;QAC9C,MAAM,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,iBAAiB,CACrD,KAAK,EACL,wCAAqB,CAAC,SAAS,CAChC,CAAC;QAEF,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,+DAA+D;YAC/D,MAAM,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACtC,CAAC;QAED,MAAM,iBAAiB,GACrB,IAAI,CAAC,UAAU,EAAE,CAAC,kCAAkC,CAAC,KAAK,CAAC,CAAC;QAE9D,sDAAsD;QACtD,IAAI,iBAAiB,EAAE,CAAC;YACtB,6DAA6D;YAC7D,MAAM,iBAAiB,CAAC,OAAO,CAAC;YAChC,gEAAgE;YAChE,OAAO;QACT,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,eAAe,CAAC;QACjE,IAAI,eAAe,EAAE,CAAC;YACpB,oDAAoD;YACpD,OAAO;QACT,CAAC;QAED,wEAAwE;QACxE,mEAAmE;QAEnE,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAElC,sEAAsE;IACxE,CAAC;CACF;AAvlCD,kDAulCC"}
|