velocious 1.0.691 → 1.0.693
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 +6 -1
- package/build/background-jobs/scheduled-enqueue-bound.js +18 -0
- package/build/background-jobs/scheduled-enqueue-timeout-error.js +25 -0
- package/build/background-jobs/scheduler.js +121 -4
- package/build/background-jobs/store.js +61 -0
- package/build/cli/commands/mcp.js +7 -0
- package/build/cli/index.js +1 -1
- package/build/configuration-types.js +3 -0
- package/build/configuration.js +16 -1
- package/build/database/advisory-lock-bound.js +16 -0
- package/build/database/drivers/base.js +77 -4
- package/build/database/drivers/mysql/index.js +23 -0
- package/build/database/drivers/mysql/query.js +1 -1
- package/build/database/drivers/pgsql/index.js +27 -4
- package/build/environment-handlers/base.js +9 -0
- package/build/environment-handlers/node/cli/commands/mcp.js +87 -0
- package/build/environment-handlers/node.js +10 -0
- package/build/mcp/dispatcher.js +271 -0
- package/build/mcp/json-rpc-server.js +167 -0
- package/build/mcp/manifest-tools.js +310 -0
- package/build/routes/catch-all-route.js +58 -0
- package/build/routes/resolver.js +21 -8
- package/build/routes/root-route.js +26 -1
- package/build/src/background-jobs/scheduled-enqueue-bound.d.ts +15 -0
- package/build/src/background-jobs/scheduled-enqueue-bound.d.ts.map +1 -0
- package/build/src/background-jobs/scheduled-enqueue-bound.js +17 -0
- package/build/src/background-jobs/scheduled-enqueue-timeout-error.d.ts +24 -0
- package/build/src/background-jobs/scheduled-enqueue-timeout-error.d.ts.map +1 -0
- package/build/src/background-jobs/scheduled-enqueue-timeout-error.js +23 -0
- package/build/src/background-jobs/scheduler.d.ts +40 -0
- package/build/src/background-jobs/scheduler.d.ts.map +1 -1
- package/build/src/background-jobs/scheduler.js +111 -5
- package/build/src/background-jobs/store.d.ts +10 -0
- package/build/src/background-jobs/store.d.ts.map +1 -1
- package/build/src/background-jobs/store.js +55 -1
- package/build/src/cli/commands/mcp.d.ts +5 -0
- package/build/src/cli/commands/mcp.d.ts.map +1 -0
- package/build/src/cli/commands/mcp.js +7 -0
- package/build/src/cli/index.js +2 -2
- package/build/src/configuration-types.d.ts +15 -0
- package/build/src/configuration-types.d.ts.map +1 -1
- package/build/src/configuration-types.js +4 -1
- package/build/src/configuration.d.ts.map +1 -1
- package/build/src/configuration.js +13 -2
- package/build/src/database/advisory-lock-bound.d.ts +15 -0
- package/build/src/database/advisory-lock-bound.d.ts.map +1 -0
- package/build/src/database/advisory-lock-bound.js +16 -0
- package/build/src/database/drivers/base.d.ts +34 -1
- package/build/src/database/drivers/base.d.ts.map +1 -1
- package/build/src/database/drivers/base.js +74 -5
- package/build/src/database/drivers/mysql/index.d.ts +9 -0
- package/build/src/database/drivers/mysql/index.d.ts.map +1 -1
- package/build/src/database/drivers/mysql/index.js +20 -1
- package/build/src/database/drivers/mysql/query.js +2 -2
- package/build/src/database/drivers/pgsql/index.d.ts +15 -3
- package/build/src/database/drivers/pgsql/index.d.ts.map +1 -1
- package/build/src/database/drivers/pgsql/index.js +23 -5
- package/build/src/environment-handlers/base.d.ts +6 -0
- package/build/src/environment-handlers/base.d.ts.map +1 -1
- package/build/src/environment-handlers/base.js +9 -1
- package/build/src/environment-handlers/node/cli/commands/mcp.d.ts +19 -0
- package/build/src/environment-handlers/node/cli/commands/mcp.d.ts.map +1 -0
- package/build/src/environment-handlers/node/cli/commands/mcp.js +70 -0
- package/build/src/environment-handlers/node.d.ts +6 -0
- package/build/src/environment-handlers/node.d.ts.map +1 -1
- package/build/src/environment-handlers/node.js +10 -1
- package/build/src/mcp/dispatcher.d.ts +133 -0
- package/build/src/mcp/dispatcher.d.ts.map +1 -0
- package/build/src/mcp/dispatcher.js +232 -0
- package/build/src/mcp/json-rpc-server.d.ts +47 -0
- package/build/src/mcp/json-rpc-server.d.ts.map +1 -0
- package/build/src/mcp/json-rpc-server.js +142 -0
- package/build/src/mcp/manifest-tools.d.ts +76 -0
- package/build/src/mcp/manifest-tools.d.ts.map +1 -0
- package/build/src/mcp/manifest-tools.js +273 -0
- package/build/src/routes/catch-all-route.d.ts +48 -0
- package/build/src/routes/catch-all-route.d.ts.map +1 -0
- package/build/src/routes/catch-all-route.js +50 -0
- package/build/src/routes/resolver.d.ts.map +1 -1
- package/build/src/routes/resolver.js +23 -9
- package/build/src/routes/root-route.d.ts +15 -1
- package/build/src/routes/root-route.d.ts.map +1 -1
- package/build/src/routes/root-route.js +24 -2
- package/package.json +1 -1
- package/src/background-jobs/scheduled-enqueue-bound.js +18 -0
- package/src/background-jobs/scheduled-enqueue-timeout-error.js +25 -0
- package/src/background-jobs/scheduler.js +121 -4
- package/src/background-jobs/store.js +61 -0
- package/src/cli/commands/mcp.js +7 -0
- package/src/cli/index.js +1 -1
- package/src/configuration-types.js +3 -0
- package/src/configuration.js +16 -1
- package/src/database/advisory-lock-bound.js +16 -0
- package/src/database/drivers/base.js +77 -4
- package/src/database/drivers/mysql/index.js +23 -0
- package/src/database/drivers/mysql/query.js +1 -1
- package/src/database/drivers/pgsql/index.js +27 -4
- package/src/environment-handlers/base.js +9 -0
- package/src/environment-handlers/node/cli/commands/mcp.js +87 -0
- package/src/environment-handlers/node.js +10 -0
- package/src/mcp/dispatcher.js +271 -0
- package/src/mcp/json-rpc-server.js +167 -0
- package/src/mcp/manifest-tools.js +310 -0
- package/src/routes/catch-all-route.js +58 -0
- package/src/routes/resolver.js +21 -8
- package/src/routes/root-route.js +26 -1
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
// @ts-check
|
|
2
|
+
import { DEFAULT_SCHEDULED_ENQUEUE_TIMEOUT_MS } from "./scheduled-enqueue-bound.js";
|
|
3
|
+
import ScheduledBackgroundJobEnqueueTimeoutError from "./scheduled-enqueue-timeout-error.js";
|
|
2
4
|
import Logger from "../logger.js";
|
|
3
5
|
import { nextCronFireDate, parseCronExpression } from "./cron-expression.js";
|
|
4
6
|
/**
|
|
@@ -22,6 +24,11 @@ const DURATION_MULTIPLIERS = {
|
|
|
22
24
|
week: 7 * 24 * 60 * 60 * 1000,
|
|
23
25
|
weeks: 7 * 24 * 60 * 60 * 1000
|
|
24
26
|
};
|
|
27
|
+
// The watchdog below is internal machinery, not a schedule timer. Capturing the
|
|
28
|
+
// platform timers at module load keeps them out of a caller's schedule-timer
|
|
29
|
+
// observation, so bounding an enqueue never appears as an extra scheduled job.
|
|
30
|
+
const armWatchdogTimer = globalThis.setTimeout;
|
|
31
|
+
const cancelWatchdogTimer = globalThis.clearTimeout;
|
|
25
32
|
/**
|
|
26
33
|
* Runs the parseScheduledDuration helper.
|
|
27
34
|
* @param {number | string} value - Duration value.
|
|
@@ -62,6 +69,8 @@ export default class BackgroundJobsScheduler {
|
|
|
62
69
|
this.configuration = configuration;
|
|
63
70
|
this.enqueueJob = enqueueJob;
|
|
64
71
|
this.logger = new Logger(this);
|
|
72
|
+
/** @type {number | null} - Bound (ms) for one scheduled enqueue attempt; `null` disables the bound. */
|
|
73
|
+
this.scheduledEnqueueTimeoutMs = this._resolveScheduledEnqueueTimeoutMs();
|
|
65
74
|
/**
|
|
66
75
|
* Narrows the runtime value to the documented type.
|
|
67
76
|
* @type {Array<ReturnType<typeof setInterval>>} */
|
|
@@ -227,17 +236,114 @@ export default class BackgroundJobsScheduler {
|
|
|
227
236
|
// of identical scheduled jobs when the queue backed up. Dedup is by job identity (see the
|
|
228
237
|
// store), so the job keeps its queue-derived concurrency cap. A schedule can opt out with
|
|
229
238
|
// `deduplicateWhileQueued: false`.
|
|
230
|
-
await this.
|
|
231
|
-
args: Array.isArray(jobConfiguration.args) ? jobConfiguration.args : [],
|
|
232
|
-
jobClass: jobConfiguration.class,
|
|
239
|
+
await this._withScheduledEnqueueTimeout({
|
|
233
240
|
jobKey,
|
|
234
|
-
|
|
241
|
+
jobName: jobConfiguration.class.jobName(),
|
|
242
|
+
run: async () => {
|
|
243
|
+
await this.enqueueJob({
|
|
244
|
+
args: Array.isArray(jobConfiguration.args) ? jobConfiguration.args : [],
|
|
245
|
+
jobClass: jobConfiguration.class,
|
|
246
|
+
jobKey,
|
|
247
|
+
options: { deduplicateWhileQueued: true, ...(jobConfiguration.options || {}) }
|
|
248
|
+
});
|
|
249
|
+
}
|
|
235
250
|
});
|
|
236
251
|
}
|
|
237
252
|
catch (error) {
|
|
253
|
+
if (error instanceof ScheduledBackgroundJobEnqueueTimeoutError) {
|
|
254
|
+
this._reportScheduledEnqueueStall({ error, jobKey });
|
|
255
|
+
return;
|
|
256
|
+
}
|
|
238
257
|
await this.logger.error(() => ["Failed to enqueue scheduled background job", { jobKey, jobName: jobConfiguration.class.jobName() }, error]);
|
|
239
258
|
}
|
|
240
259
|
}
|
|
260
|
+
/**
|
|
261
|
+
* Runs one durable enqueue attempt under the scheduled-enqueue bound.
|
|
262
|
+
*
|
|
263
|
+
* The bound is applied with a local race rather than `awaitery`'s `timeout()`:
|
|
264
|
+
* that helper starts its callback through `Promise.resolve().then(...)`, which
|
|
265
|
+
* would defer every scheduled enqueue by a microtask and change the tick
|
|
266
|
+
* semantics callers rely on. Here the attempt starts synchronously, and the
|
|
267
|
+
* watchdog uses the module-captured timers so it is never observable as a
|
|
268
|
+
* schedule timer. Only the watchdog raises the typed timeout error, so a
|
|
269
|
+
* timeout raised inside the enqueue itself keeps its own error path.
|
|
270
|
+
* @param {object} args - Options.
|
|
271
|
+
* @param {string} args.jobKey - Schedule key.
|
|
272
|
+
* @param {string} args.jobName - Resolved job class name.
|
|
273
|
+
* @param {() => Promise<void>} args.run - Enqueue attempt.
|
|
274
|
+
* @returns {Promise<void>} - Resolves when the attempt settles within the bound.
|
|
275
|
+
*/
|
|
276
|
+
async _withScheduledEnqueueTimeout({ jobKey, jobName, run }) {
|
|
277
|
+
const timeoutMs = this.scheduledEnqueueTimeoutMs;
|
|
278
|
+
/** @type {Promise<void>} */
|
|
279
|
+
let attempt;
|
|
280
|
+
try {
|
|
281
|
+
attempt = Promise.resolve(run());
|
|
282
|
+
}
|
|
283
|
+
catch (error) {
|
|
284
|
+
attempt = Promise.reject(/** @type {Error} */ (error));
|
|
285
|
+
}
|
|
286
|
+
if (timeoutMs === null)
|
|
287
|
+
return await attempt;
|
|
288
|
+
/**
|
|
289
|
+
* Rejects the watchdog promise when the bound expires.
|
|
290
|
+
* @type {(error: Error) => void} */
|
|
291
|
+
let rejectScheduledEnqueueTimeout = () => { };
|
|
292
|
+
const watchdog = new Promise((_, reject) => { rejectScheduledEnqueueTimeout = reject; });
|
|
293
|
+
/**
|
|
294
|
+
* Watchdog timer handle.
|
|
295
|
+
* @type {ReturnType<typeof armWatchdogTimer>} */
|
|
296
|
+
const watchdogId = armWatchdogTimer(() => {
|
|
297
|
+
rejectScheduledEnqueueTimeout(new ScheduledBackgroundJobEnqueueTimeoutError({
|
|
298
|
+
jobKey,
|
|
299
|
+
jobName,
|
|
300
|
+
scheduledEnqueueTimeoutMs: timeoutMs
|
|
301
|
+
}));
|
|
302
|
+
}, timeoutMs);
|
|
303
|
+
try {
|
|
304
|
+
return await Promise.race([attempt, watchdog]);
|
|
305
|
+
}
|
|
306
|
+
finally {
|
|
307
|
+
cancelWatchdogTimer(watchdogId);
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
/**
|
|
311
|
+
* Surfaces a scheduled enqueue whose store call never settled. Without this report the only
|
|
312
|
+
* symptom is a schedule that silently stops enqueueing after one wedged call.
|
|
313
|
+
* @param {object} args - Options.
|
|
314
|
+
* @param {Error} args.error - Timeout error.
|
|
315
|
+
* @param {string} args.jobKey - Schedule key.
|
|
316
|
+
* @returns {void}
|
|
317
|
+
*/
|
|
318
|
+
_reportScheduledEnqueueStall({ error, jobKey }) {
|
|
319
|
+
const payload = {
|
|
320
|
+
context: {
|
|
321
|
+
jobKey,
|
|
322
|
+
scheduledEnqueueTimeoutMs: this.scheduledEnqueueTimeoutMs,
|
|
323
|
+
stage: "background-jobs-scheduled-enqueue-stall"
|
|
324
|
+
},
|
|
325
|
+
error
|
|
326
|
+
};
|
|
327
|
+
void this.logger.error(() => ["Scheduled background job enqueue stalled", payload.context, error]);
|
|
328
|
+
const errorEvents = typeof this.configuration?.getErrorEvents === "function" ? this.configuration.getErrorEvents() : undefined;
|
|
329
|
+
if (!errorEvents)
|
|
330
|
+
return;
|
|
331
|
+
errorEvents.emit("framework-error", payload);
|
|
332
|
+
errorEvents.emit("all-error", { ...payload, errorType: "framework-error" });
|
|
333
|
+
}
|
|
334
|
+
/**
|
|
335
|
+
* Resolves the scheduled-enqueue bound from configuration.
|
|
336
|
+
* @returns {number | null} - Bound in milliseconds, or `null` for an unbounded wait.
|
|
337
|
+
*/
|
|
338
|
+
_resolveScheduledEnqueueTimeoutMs() {
|
|
339
|
+
const backgroundJobsConfig = typeof this.configuration?.getBackgroundJobsConfig === "function" ? this.configuration.getBackgroundJobsConfig() : undefined;
|
|
340
|
+
const configured = backgroundJobsConfig?.scheduledEnqueueTimeoutMs;
|
|
341
|
+
if (configured === null)
|
|
342
|
+
return null;
|
|
343
|
+
if (typeof configured === "number" && configured > 0)
|
|
344
|
+
return configured;
|
|
345
|
+
return DEFAULT_SCHEDULED_ENQUEUE_TIMEOUT_MS;
|
|
346
|
+
}
|
|
241
347
|
/**
|
|
242
348
|
* Runs normalize every.
|
|
243
349
|
* @param {NonNullable<import("../configuration-types.js").ScheduledBackgroundJobConfiguration["every"]>} every - Every config (caller must guarantee not undefined).
|
|
@@ -254,4 +360,4 @@ export default class BackgroundJobsScheduler {
|
|
|
254
360
|
return { everyValue: every };
|
|
255
361
|
}
|
|
256
362
|
}
|
|
257
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JhY2tncm91bmQtam9icy9zY2hlZHVsZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sTUFBTSxNQUFNLGNBQWMsQ0FBQTtBQUNqQyxPQUFPLEVBQUMsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQTtBQUUxRTs7K0RBRStEO0FBQy9ELE1BQU0sb0JBQW9CLEdBQUc7SUFDM0IsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUk7SUFDdEIsR0FBRyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUk7SUFDeEIsSUFBSSxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUk7SUFDekIsQ0FBQyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSTtJQUNqQixJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJO0lBQ3BCLEtBQUssRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUk7SUFDckIsQ0FBQyxFQUFFLEVBQUUsR0FBRyxJQUFJO0lBQ1osTUFBTSxFQUFFLEVBQUUsR0FBRyxJQUFJO0lBQ2pCLE9BQU8sRUFBRSxFQUFFLEdBQUcsSUFBSTtJQUNsQixFQUFFLEVBQUUsQ0FBQztJQUNMLENBQUMsRUFBRSxJQUFJO0lBQ1AsTUFBTSxFQUFFLElBQUk7SUFDWixPQUFPLEVBQUUsSUFBSTtJQUNiLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSTtJQUMxQixJQUFJLEVBQUUsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUk7SUFDN0IsS0FBSyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJO0NBQy9C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Z2dlci5qc1wiXG5pbXBvcnQge25leHRDcm9uRmlyZURhdGUsIHBhcnNlQ3JvbkV4cHJlc3Npb259IGZyb20gXCIuL2Nyb24tZXhwcmVzc2lvbi5qc1wiXG5cbi8qKlxuICogRHVyYXRpb25Vbml0IHR5cGUuXG4gKiBAdHlwZWRlZiB7a2V5b2YgdHlwZW9mIERVUkFUSU9OX01VTFRJUExJRVJTfSBEdXJhdGlvblVuaXQgKi9cbmNvbnN0IERVUkFUSU9OX01VTFRJUExJRVJTID0ge1xuICBkOiAyNCAqIDYwICogNjAgKiAxMDAwLFxuICBkYXk6IDI0ICogNjAgKiA2MCAqIDEwMDAsXG4gIGRheXM6IDI0ICogNjAgKiA2MCAqIDEwMDAsXG4gIGg6IDYwICogNjAgKiAxMDAwLFxuICBob3VyOiA2MCAqIDYwICogMTAwMCxcbiAgaG91cnM6IDYwICogNjAgKiAxMDAwLFxuICBtOiA2MCAqIDEwMDAsXG4gIG1pbnV0ZTogNjAgKiAxMDAwLFxuICBtaW51dGVzOiA2MCAqIDEwMDAsXG4gIG1zOiAxLFxuICBzOiAxMDAwLFxuICBzZWNvbmQ6IDEwMDAsXG4gIHNlY29uZHM6IDEwMDAsXG4gIHc6IDcgKiAyNCAqIDYwICogNjAgKiAxMDAwLFxuICB3ZWVrOiA3ICogMjQgKiA2MCAqIDYwICogMTAwMCxcbiAgd2Vla3M6IDcgKiAyNCAqIDYwICogNjAgKiAxMDAwXG59XG5cbi8qKlxuICogUnVucyB0aGUgcGFyc2VTY2hlZHVsZWREdXJhdGlvbiBoZWxwZXIuXG4gKiBAcGFyYW0ge251bWJlciB8IHN0cmluZ30gdmFsdWUgLSBEdXJhdGlvbiB2YWx1ZS5cbiAqIEBwYXJhbSB7c3RyaW5nfSBmaWVsZE5hbWUgLSBGaWVsZCBuYW1lIGZvciBlcnJvcnMuXG4gKiBAcmV0dXJucyB7bnVtYmVyfSAtIER1cmF0aW9uIGluIG1pbGxpc2Vjb25kcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHBhcnNlU2NoZWR1bGVkRHVyYXRpb24odmFsdWUsIGZpZWxkTmFtZSkge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSBcIm51bWJlclwiKSB7XG4gICAgaWYgKCFOdW1iZXIuaXNGaW5pdGUodmFsdWUpIHx8IHZhbHVlIDwgMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBTY2hlZHVsZWQgYmFja2dyb3VuZCBqb2IgJHtmaWVsZE5hbWV9IG11c3QgYmUgYSBwb3NpdGl2ZSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzLmApXG4gICAgfVxuXG4gICAgcmV0dXJuIHZhbHVlXG4gIH1cblxuICBpZiAodHlwZW9mIHZhbHVlICE9PSBcInN0cmluZ1wiIHx8ICF2YWx1ZS50cmltKCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFNjaGVkdWxlZCBiYWNrZ3JvdW5kIGpvYiAke2ZpZWxkTmFtZX0gbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmcgb3IgbnVtYmVyLmApXG4gIH1cblxuICBjb25zdCBub3JtYWxpemVkVmFsdWUgPSB2YWx1ZS50cmltKCkudG9Mb3dlckNhc2UoKVxuICBjb25zdCBtYXRjaCA9IG5vcm1hbGl6ZWRWYWx1ZS5tYXRjaCgvXihcXGQrKD86XFwuXFxkKyk/KVxccyoobXN8c3xtfGh8ZHx3fHNlY29uZHxzZWNvbmRzfG1pbnV0ZXxtaW51dGVzfGhvdXJ8aG91cnN8ZGF5fGRheXN8d2Vla3x3ZWVrcykkLylcblxuICBpZiAoIW1hdGNoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHNjaGVkdWxlZCBiYWNrZ3JvdW5kIGpvYiAke2ZpZWxkTmFtZX06ICR7dmFsdWV9YClcbiAgfVxuXG4gIGNvbnN0IG51bWVyaWNWYWx1ZSA9IE51bWJlcihtYXRjaFsxXSlcbiAgY29uc3QgbXVsdGlwbGllciA9IERVUkFUSU9OX01VTFRJUExJRVJTWy8qKiBAdHlwZSB7RHVyYXRpb25Vbml0fSAqLyAobWF0Y2hbMl0pXVxuXG4gIGlmICghbXVsdGlwbGllcikge1xuICAgIHRocm93IG5ldyBFcnJvcihgSW52YWxpZCBzY2hlZHVsZWQgYmFja2dyb3VuZCBqb2IgJHtmaWVsZE5hbWV9OiAke3ZhbHVlfWApXG4gIH1cblxuICByZXR1cm4gTWF0aC5yb3VuZChudW1lcmljVmFsdWUgKiBtdWx0aXBsaWVyKVxufVxuXG4vKiogUnVucyBjb25maWd1cmVkIHJlY3VycmluZyBiYWNrZ3JvdW5kIGpvYiBzY2hlZHVsZXMuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCYWNrZ3JvdW5kSm9ic1NjaGVkdWxlciB7XG4gIC8qKlxuICAgKiBSdW5zIGNvbnN0cnVjdG9yLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0fSBhcmdzLmNvbmZpZ3VyYXRpb24gLSBDb25maWd1cmF0aW9uLlxuICAgKiBAcGFyYW0geyhhcmdzOiB7YXJnczogQXJyYXk8UmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT4+LCBqb2JDbGFzczogdHlwZW9mIGltcG9ydChcIi4vam9iLmpzXCIpLmRlZmF1bHQsIGpvYktleTogc3RyaW5nLCBvcHRpb25zOiBpbXBvcnQoXCIuL3R5cGVzLmpzXCIpLkJhY2tncm91bmRKb2JPcHRpb25zfSkgPT4gUHJvbWlzZTx2b2lkPn0gYXJncy5lbnF1ZXVlSm9iIC0gRW5xdWV1ZSBjYWxsYmFjay5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHtjb25maWd1cmF0aW9uLCBlbnF1ZXVlSm9ifSkge1xuICAgIHRoaXMuY29uZmlndXJhdGlvbiA9IGNvbmZpZ3VyYXRpb25cbiAgICB0aGlzLmVucXVldWVKb2IgPSBlbnF1ZXVlSm9iXG4gICAgdGhpcy5sb2dnZXIgPSBuZXcgTG9nZ2VyKHRoaXMpXG4gICAgLyoqXG4gICAgICogTmFycm93cyB0aGUgcnVudGltZSB2YWx1ZSB0byB0aGUgZG9jdW1lbnRlZCB0eXBlLlxuICAgICAqIEB0eXBlIHtBcnJheTxSZXR1cm5UeXBlPHR5cGVvZiBzZXRJbnRlcnZhbD4+fSAqL1xuICAgIHRoaXMuaW50ZXJ2YWxJZHMgPSBbXVxuICAgIC8qKlxuICAgICAqIE5hcnJvd3MgdGhlIHJ1bnRpbWUgdmFsdWUgdG8gdGhlIGRvY3VtZW50ZWQgdHlwZS5cbiAgICAgKiBAdHlwZSB7QXJyYXk8UmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4+fSAqL1xuICAgIHRoaXMudGltZW91dElkcyA9IFtdXG4gICAgLyoqIEB0eXBlIHtNYXA8c3RyaW5nLCBQcm9taXNlPHZvaWQ+Pn0gLSBJbi1mbGlnaHQgc2NoZWR1bGVkIGVucXVldWVzIGJ5IHNjaGVkdWxlIGtleSB0aGF0IHNodXRkb3duIG11c3QgZHJhaW4uICovXG4gICAgdGhpcy5wZW5kaW5nRW5xdWV1ZXNCeUpvYktleSA9IG5ldyBNYXAoKVxuICAgIC8qKlxuICAgICAqIE5hcnJvd3MgdGhlIHJ1bnRpbWUgdmFsdWUgdG8gdGhlIGRvY3VtZW50ZWQgdHlwZS5cbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn0gLSBUcnVlIGJldHdlZW4gc3RvcCgpIGFuZCB0aGUgbmV4dCBzdGFydCgpOyBjcm9uIHNlbGYtcmVzY2hlZHVsZXIgY2hlY2tzIHRoaXMgc28gYSBzdG9wKCkgZHVyaW5nIGFuIGluLWZsaWdodCBlbnF1ZXVlIGRvZXNuJ3QgaW1tZWRpYXRlbHkgcmUtYXJtLlxuICAgICAqL1xuICAgIHRoaXMuc3RvcHBlZCA9IGZhbHNlXG4gIH1cblxuICAvKipcbiAgICogUnVucyBzdGFydC5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59ICovXG4gIGFzeW5jIHN0YXJ0KCkge1xuICAgIHRoaXMuc3RvcHBlZCA9IGZhbHNlXG5cbiAgICBjb25zdCBzY2hlZHVsZWRCYWNrZ3JvdW5kSm9ic0NvbmZpZyA9IGF3YWl0IHRoaXMuY29uZmlndXJhdGlvbi5nZXRTY2hlZHVsZWRCYWNrZ3JvdW5kSm9ic0NvbmZpZygpXG5cbiAgICBpZiAoIXNjaGVkdWxlZEJhY2tncm91bmRKb2JzQ29uZmlnPy5qb2JzKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IGpvYktleSBvZiBPYmplY3Qua2V5cyhzY2hlZHVsZWRCYWNrZ3JvdW5kSm9ic0NvbmZpZy5qb2JzKSkge1xuICAgICAgY29uc3Qgam9iQ29uZmlndXJhdGlvbiA9IHNjaGVkdWxlZEJhY2tncm91bmRKb2JzQ29uZmlnLmpvYnNbam9iS2V5XVxuXG4gICAgICBpZiAoIWpvYkNvbmZpZ3VyYXRpb24gfHwgam9iQ29uZmlndXJhdGlvbi5lbmFibGVkID09PSBmYWxzZSkge1xuICAgICAgICBjb250aW51ZVxuICAgICAgfVxuXG4gICAgICB0aGlzLnNjaGVkdWxlSm9iKHtqb2JDb25maWd1cmF0aW9uLCBqb2JLZXl9KVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHN0b3AuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSBSZXNvbHZlcyBhZnRlciBpbi1mbGlnaHQgc2NoZWR1bGVkIGVucXVldWVzIGZpbmlzaC5cbiAgICovXG4gIGFzeW5jIHN0b3AoKSB7XG4gICAgdGhpcy5zdG9wcGVkID0gdHJ1ZVxuXG4gICAgZm9yIChjb25zdCBpbnRlcnZhbElkIG9mIHRoaXMuaW50ZXJ2YWxJZHMpIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWxJZClcbiAgICB9XG5cbiAgICBmb3IgKGNvbnN0IHRpbWVvdXRJZCBvZiB0aGlzLnRpbWVvdXRJZHMpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SWQpXG4gICAgfVxuXG4gICAgdGhpcy5pbnRlcnZhbElkcyA9IFtdXG4gICAgdGhpcy50aW1lb3V0SWRzID0gW11cblxuICAgIGF3YWl0IFByb21pc2UuYWxsKHRoaXMucGVuZGluZ0VucXVldWVzQnlKb2JLZXkudmFsdWVzKCkpXG4gIH1cblxuICAvKipcbiAgICogUnVucyBzY2hlZHVsZSBqb2IuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucy5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi9jb25maWd1cmF0aW9uLXR5cGVzLmpzXCIpLlNjaGVkdWxlZEJhY2tncm91bmRKb2JDb25maWd1cmF0aW9ufSBhcmdzLmpvYkNvbmZpZ3VyYXRpb24gLSBKb2IgY29uZmlndXJhdGlvbi5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3Muam9iS2V5IC0gSm9iIGtleS5cbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICBzY2hlZHVsZUpvYih7am9iQ29uZmlndXJhdGlvbiwgam9iS2V5fSkge1xuICAgIGlmICgham9iQ29uZmlndXJhdGlvbi5jbGFzcyB8fCB0eXBlb2Ygam9iQ29uZmlndXJhdGlvbi5jbGFzcy5wZXJmb3JtTGF0ZXJXaXRoT3B0aW9ucyAhPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFNjaGVkdWxlZCBiYWNrZ3JvdW5kIGpvYiAke2pvYktleX0gbXVzdCBkZWZpbmUgYSBqb2IgY2xhc3MuYClcbiAgICB9XG5cbiAgICBpZiAoam9iQ29uZmlndXJhdGlvbi5jcm9uICE9PSB1bmRlZmluZWQgJiYgam9iQ29uZmlndXJhdGlvbi5ldmVyeSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFNjaGVkdWxlZCBiYWNrZ3JvdW5kIGpvYiAke2pvYktleX0gbXVzdCBkZWZpbmUgZWl0aGVyIFwiZXZlcnlcIiBvciBcImNyb25cIiwgbm90IGJvdGguYClcbiAgICB9XG5cbiAgICBpZiAoam9iQ29uZmlndXJhdGlvbi5jcm9uICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuc2NoZWR1bGVDcm9uSm9iKHtqb2JDb25maWd1cmF0aW9uLCBqb2JLZXl9KVxuXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoam9iQ29uZmlndXJhdGlvbi5ldmVyeSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFNjaGVkdWxlZCBiYWNrZ3JvdW5kIGpvYiAke2pvYktleX0gbXVzdCBkZWZpbmUgZWl0aGVyIFwiZXZlcnlcIiBvciBcImNyb25cIi5gKVxuICAgIH1cblxuICAgIHRoaXMuc2NoZWR1bGVFdmVyeUpvYih7am9iQ29uZmlndXJhdGlvbiwgam9iS2V5fSlcbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIHNjaGVkdWxlIGV2ZXJ5IGpvYi5cbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24tdHlwZXMuanNcIikuU2NoZWR1bGVkQmFja2dyb3VuZEpvYkNvbmZpZ3VyYXRpb259IGFyZ3Muam9iQ29uZmlndXJhdGlvbiAtIEpvYiBjb25maWd1cmF0aW9uLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXJncy5qb2JLZXkgLSBKb2Iga2V5LlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIHNjaGVkdWxlRXZlcnlKb2Ioe2pvYkNvbmZpZ3VyYXRpb24sIGpvYktleX0pIHtcbiAgICBjb25zdCBldmVyeUNvbmZpZyA9IC8qKiBAdHlwZSB7Tm9uTnVsbGFibGU8dHlwZW9mIGpvYkNvbmZpZ3VyYXRpb24uZXZlcnk+fSAqLyAoam9iQ29uZmlndXJhdGlvbi5ldmVyeSlcbiAgICBjb25zdCB7ZXZlcnlWYWx1ZSwgZmlyc3RJblZhbHVlfSA9IHRoaXMubm9ybWFsaXplRXZlcnkoZXZlcnlDb25maWcpXG4gICAgY29uc3QgaW50ZXJ2YWxNcyA9IHBhcnNlU2NoZWR1bGVkRHVyYXRpb24oZXZlcnlWYWx1ZSwgYCR7am9iS2V5fS5ldmVyeWApXG4gICAgY29uc3QgZmlyc3RJbk1zID0gZmlyc3RJblZhbHVlICE9PSB1bmRlZmluZWQgPyBwYXJzZVNjaGVkdWxlZER1cmF0aW9uKGZpcnN0SW5WYWx1ZSwgYCR7am9iS2V5fS5maXJzdEluYCkgOiBpbnRlcnZhbE1zXG5cbiAgICBpZiAoaW50ZXJ2YWxNcyA8IDEpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgU2NoZWR1bGVkIGJhY2tncm91bmQgam9iICR7am9iS2V5fS5ldmVyeSBtdXN0IGJlIGF0IGxlYXN0IDEgbWlsbGlzZWNvbmQuYClcbiAgICB9XG5cbiAgICBjb25zdCB0aW1lb3V0SWQgPSBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IHNjaGVkdWxlZEVucXVldWUgPSB0aGlzLnJ1blNjaGVkdWxlZEpvYih7am9iQ29uZmlndXJhdGlvbiwgam9iS2V5fSlcblxuICAgICAgY29uc3QgaW50ZXJ2YWxJZCA9IHNldEludGVydmFsKCgpID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucnVuU2NoZWR1bGVkSm9iKHtqb2JDb25maWd1cmF0aW9uLCBqb2JLZXl9KVxuICAgICAgfSwgaW50ZXJ2YWxNcylcblxuICAgICAgdGhpcy5pbnRlcnZhbElkcy5wdXNoKGludGVydmFsSWQpXG5cbiAgICAgIHJldHVybiBzY2hlZHVsZWRFbnF1ZXVlXG4gICAgfSwgZmlyc3RJbk1zKVxuXG4gICAgdGhpcy50aW1lb3V0SWRzLnB1c2godGltZW91dElkKVxuICB9XG5cbiAgLyoqXG4gICAqIENyb250YWIgc2NoZWR1bGVzIGRvbid0IGhhdmUgYSBjb25zdGFudCBpbnRlcnZhbCAoYDAgOSAqICogMS01YFxuICAgKiBmaXJlcyBvbmNlIHBlciB3ZWVrZGF5IGF0IDkgQU0sIHdpdGggZ2FwcyBvZiB2YXJ5aW5nIGxlbmd0aCksIHNvXG4gICAqIHdlIHNlbGYtcmVzY2hlZHVsZSB3aXRoIGBzZXRUaW1lb3V0YCBhZnRlciBldmVyeSBmaXJlIGluc3RlYWQgb2ZcbiAgICogdXNpbmcgYHNldEludGVydmFsYC5cbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24tdHlwZXMuanNcIikuU2NoZWR1bGVkQmFja2dyb3VuZEpvYkNvbmZpZ3VyYXRpb259IGFyZ3Muam9iQ29uZmlndXJhdGlvbiAtIEpvYiBjb25maWd1cmF0aW9uLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXJncy5qb2JLZXkgLSBKb2Iga2V5LlxuICAgKiBAcmV0dXJucyB7dm9pZH1cbiAgICovXG4gIHNjaGVkdWxlQ3JvbkpvYih7am9iQ29uZmlndXJhdGlvbiwgam9iS2V5fSkge1xuICAgIGNvbnN0IGNyb25FeHByZXNzaW9uID0gam9iQ29uZmlndXJhdGlvbi5jcm9uXG5cbiAgICBpZiAodHlwZW9mIGNyb25FeHByZXNzaW9uICE9PSBcInN0cmluZ1wiKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFNjaGVkdWxlZCBiYWNrZ3JvdW5kIGpvYiAke2pvYktleX0uY3JvbiBtdXN0IGJlIGEgc3RyaW5nLmApXG4gICAgfVxuXG4gICAgY29uc3QgcGFyc2VkID0gcGFyc2VDcm9uRXhwcmVzc2lvbihjcm9uRXhwcmVzc2lvbilcbiAgICBjb25zdCBzY2hlZHVsZU5leHQgPSAoKSA9PiB7XG4gICAgICBpZiAodGhpcy5zdG9wcGVkKSByZXR1cm5cblxuICAgICAgY29uc3QgbmV4dERhdGUgPSBuZXh0Q3JvbkZpcmVEYXRlKHBhcnNlZCwgbmV3IERhdGUoKSlcbiAgICAgIGNvbnN0IGRlbGF5TXMgPSBNYXRoLm1heCgxLCBuZXh0RGF0ZS5nZXRUaW1lKCkgLSBEYXRlLm5vdygpKVxuICAgICAgY29uc3QgdGltZW91dElkID0gc2V0VGltZW91dChhc3luYyAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLnN0b3BwZWQpIHJldHVyblxuXG4gICAgICAgIGF3YWl0IHRoaXMucnVuU2NoZWR1bGVkSm9iKHtqb2JDb25maWd1cmF0aW9uLCBqb2JLZXl9KVxuXG4gICAgICAgIC8vIFRoZSBhd2FpdCBhYm92ZSBjYW4geWllbGQgdG8gYSBzdG9wKCkgY2FsbC4gUmUtY2hlY2sgYmVmb3JlXG4gICAgICAgIC8vIHJlLWFybWluZyBzbyB3ZSBkb24ndCBrZWVwIGZpcmluZyBhZnRlciBzaHV0ZG93bi5cbiAgICAgICAgaWYgKHRoaXMuc3RvcHBlZCkgcmV0dXJuXG5cbiAgICAgICAgc2NoZWR1bGVOZXh0KClcbiAgICAgIH0sIGRlbGF5TXMpXG5cbiAgICAgIHRoaXMudGltZW91dElkcy5wdXNoKHRpbWVvdXRJZClcbiAgICB9XG5cbiAgICBzY2hlZHVsZU5leHQoKVxuICB9XG5cbiAgLyoqXG4gICAqIFRyYWNrcyBhIHNjaGVkdWxlZCBlbnF1ZXVlIHNvIHN0b3AoKSBjYW5ub3QgcmV0dXJuIHdoaWxlIGl0IGNhbiBzdGlsbCBtdXRhdGUgdGhlIHN0b3JlLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi10eXBlcy5qc1wiKS5TY2hlZHVsZWRCYWNrZ3JvdW5kSm9iQ29uZmlndXJhdGlvbn0gYXJncy5qb2JDb25maWd1cmF0aW9uIC0gSm9iIGNvbmZpZ3VyYXRpb24uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLmpvYktleSAtIEpvYiBrZXkuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIGFmdGVyIHRoZSBlbnF1ZXVlIGF0dGVtcHQgZmluaXNoZXMuXG4gICAqL1xuICBhc3luYyBydW5TY2hlZHVsZWRKb2Ioe2pvYkNvbmZpZ3VyYXRpb24sIGpvYktleX0pIHtcbiAgICBpZiAodGhpcy5zdG9wcGVkIHx8IHRoaXMucGVuZGluZ0VucXVldWVzQnlKb2JLZXkuaGFzKGpvYktleSkpIHJldHVyblxuXG4gICAgY29uc3QgcGVuZGluZ0VucXVldWUgPSB0aGlzLmVucXVldWVTY2hlZHVsZWRKb2Ioe2pvYkNvbmZpZ3VyYXRpb24sIGpvYktleX0pXG4gICAgdGhpcy5wZW5kaW5nRW5xdWV1ZXNCeUpvYktleS5zZXQoam9iS2V5LCBwZW5kaW5nRW5xdWV1ZSlcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCBwZW5kaW5nRW5xdWV1ZVxuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLnBlbmRpbmdFbnF1ZXVlc0J5Sm9iS2V5LmRlbGV0ZShqb2JLZXkpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgZW5xdWV1ZSBzY2hlZHVsZWQgam9iLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi10eXBlcy5qc1wiKS5TY2hlZHVsZWRCYWNrZ3JvdW5kSm9iQ29uZmlndXJhdGlvbn0gYXJncy5qb2JDb25maWd1cmF0aW9uIC0gSm9iIGNvbmZpZ3VyYXRpb24uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLmpvYktleSAtIEpvYiBrZXkuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fVxuICAgKi9cbiAgYXN5bmMgZW5xdWV1ZVNjaGVkdWxlZEpvYih7am9iQ29uZmlndXJhdGlvbiwgam9iS2V5fSkge1xuICAgIHRyeSB7XG4gICAgICAvLyBEZS1kdXBsaWNhdGUgc2NoZWR1bGVkIGVucXVldWVzIGJ5IGRlZmF1bHQ6IGEgcGVyaW9kaWMgam9iIHN0aWxsIHBlbmRpbmcgZnJvbSBhbiBlYXJsaWVyXG4gICAgICAvLyB0aWNrIGlzIG5vdCBlbnF1ZXVlZCBhZ2Fpbiwgd2hpY2ggaXMgd2hhdCBsZXQgdGhlIGJhY2tncm91bmRfam9icyB0YWJsZSBmaWxsIHdpdGggdGhvdXNhbmRzXG4gICAgICAvLyBvZiBpZGVudGljYWwgc2NoZWR1bGVkIGpvYnMgd2hlbiB0aGUgcXVldWUgYmFja2VkIHVwLiBEZWR1cCBpcyBieSBqb2IgaWRlbnRpdHkgKHNlZSB0aGVcbiAgICAgIC8vIHN0b3JlKSwgc28gdGhlIGpvYiBrZWVwcyBpdHMgcXVldWUtZGVyaXZlZCBjb25jdXJyZW5jeSBjYXAuIEEgc2NoZWR1bGUgY2FuIG9wdCBvdXQgd2l0aFxuICAgICAgLy8gYGRlZHVwbGljYXRlV2hpbGVRdWV1ZWQ6IGZhbHNlYC5cbiAgICAgIGF3YWl0IHRoaXMuZW5xdWV1ZUpvYih7XG4gICAgICAgIGFyZ3M6IEFycmF5LmlzQXJyYXkoam9iQ29uZmlndXJhdGlvbi5hcmdzKSA/IGpvYkNvbmZpZ3VyYXRpb24uYXJncyA6IFtdLFxuICAgICAgICBqb2JDbGFzczogam9iQ29uZmlndXJhdGlvbi5jbGFzcyxcbiAgICAgICAgam9iS2V5LFxuICAgICAgICBvcHRpb25zOiB7ZGVkdXBsaWNhdGVXaGlsZVF1ZXVlZDogdHJ1ZSwgLi4uKGpvYkNvbmZpZ3VyYXRpb24ub3B0aW9ucyB8fCB7fSl9XG4gICAgICB9KVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBhd2FpdCB0aGlzLmxvZ2dlci5lcnJvcigoKSA9PiBbXCJGYWlsZWQgdG8gZW5xdWV1ZSBzY2hlZHVsZWQgYmFja2dyb3VuZCBqb2JcIiwge2pvYktleSwgam9iTmFtZTogam9iQ29uZmlndXJhdGlvbi5jbGFzcy5qb2JOYW1lKCl9LCBlcnJvcl0pXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgbm9ybWFsaXplIGV2ZXJ5LlxuICAgKiBAcGFyYW0ge05vbk51bGxhYmxlPGltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24tdHlwZXMuanNcIikuU2NoZWR1bGVkQmFja2dyb3VuZEpvYkNvbmZpZ3VyYXRpb25bXCJldmVyeVwiXT59IGV2ZXJ5IC0gRXZlcnkgY29uZmlnIChjYWxsZXIgbXVzdCBndWFyYW50ZWUgbm90IHVuZGVmaW5lZCkuXG4gICAqIEByZXR1cm5zIHt7ZXZlcnlWYWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBmaXJzdEluVmFsdWU/OiBudW1iZXIgfCBzdHJpbmd9fSAtIE5vcm1hbGl6ZWQgaW50ZXJ2YWwgYW5kIGZpcnN0LXJ1biBkZWxheSB2YWx1ZXMuXG4gICAqL1xuICBub3JtYWxpemVFdmVyeShldmVyeSkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KGV2ZXJ5KSkge1xuICAgICAgY29uc3QgW2V2ZXJ5VmFsdWUsIGV2ZXJ5T3B0aW9uc10gPSBldmVyeVxuXG4gICAgICBpZiAoIWV2ZXJ5T3B0aW9ucyB8fCB0eXBlb2YgZXZlcnlPcHRpb25zICE9PSBcIm9iamVjdFwiIHx8IEFycmF5LmlzQXJyYXkoZXZlcnlPcHRpb25zKSkge1xuICAgICAgICByZXR1cm4ge2V2ZXJ5VmFsdWV9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7ZXZlcnlWYWx1ZSwgZmlyc3RJblZhbHVlOiBldmVyeU9wdGlvbnMuZmlyc3RJbn1cbiAgICB9XG5cbiAgICByZXR1cm4ge2V2ZXJ5VmFsdWU6IGV2ZXJ5fVxuICB9XG59XG4iXX0=
|
|
363
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2NoZWR1bGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2JhY2tncm91bmQtam9icy9zY2hlZHVsZXIuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsWUFBWTtBQUVaLE9BQU8sRUFBQyxvQ0FBb0MsRUFBQyxNQUFNLDhCQUE4QixDQUFBO0FBQ2pGLE9BQU8seUNBQXlDLE1BQU0sc0NBQXNDLENBQUE7QUFFNUYsT0FBTyxNQUFNLE1BQU0sY0FBYyxDQUFBO0FBQ2pDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxtQkFBbUIsRUFBQyxNQUFNLHNCQUFzQixDQUFBO0FBRTFFOzsrREFFK0Q7QUFDL0QsTUFBTSxvQkFBb0IsR0FBRztJQUMzQixDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSTtJQUN0QixHQUFHLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSTtJQUN4QixJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSTtJQUN6QixDQUFDLEVBQUUsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJO0lBQ2pCLElBQUksRUFBRSxFQUFFLEdBQUcsRUFBRSxHQUFHLElBQUk7SUFDcEIsS0FBSyxFQUFFLEVBQUUsR0FBRyxFQUFFLEdBQUcsSUFBSTtJQUNyQixDQUFDLEVBQUUsRUFBRSxHQUFHLElBQUk7SUFDWixNQUFNLEVBQUUsRUFBRSxHQUFHLElBQUk7SUFDakIsT0FBTyxFQUFFLEVBQUUsR0FBRyxJQUFJO0lBQ2xCLEVBQUUsRUFBRSxDQUFDO0lBQ0wsQ0FBQyxFQUFFLElBQUk7SUFDUCxNQUFNLEVBQUUsSUFBSTtJQUNaLE9BQU8sRUFBRSxJQUFJO0lBQ2IsQ0FBQyxFQUFFLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxJQUFJO0lBQzFCLElBQUksRUFBRSxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxF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QUFNLFVBQVUsR0FBRyxvQkFBb0IsRUFBRSx5QkFBeUIsQ0FBQTtRQUVsRSxJQUFJLFVBQVUsS0FBSyxJQUFJO1lBQUUsT0FBTyxJQUFJLENBQUE7UUFDcEMsSUFBSSxPQUFPLFVBQVUsS0FBSyxRQUFRLElBQUksVUFBVSxHQUFHLENBQUM7WUFBRSxPQUFPLFVBQVUsQ0FBQTtRQUV2RSxPQUFPLG9DQUFvQyxDQUFBO0lBQzdDLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsY0FBYyxDQUFDLEtBQUs7UUFDbEIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDekIsTUFBTSxDQUFDLFVBQVUsRUFBRSxZQUFZLENBQUMsR0FBRyxLQUFLLENBQUE7WUFFeEMsSUFBSSxDQUFDLFlBQVksSUFBSSxPQUFPLFlBQVksS0FBSyxRQUFRLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDO2dCQUNyRixPQUFPLEVBQUMsVUFBVSxFQUFDLENBQUE7WUFDckIsQ0FBQztZQUVELE9BQU8sRUFBQyxVQUFVLEVBQUUsWUFBWSxFQUFFLFlBQVksQ0FBQyxPQUFPLEVBQUMsQ0FBQTtRQUN6RCxDQUFDO1FBRUQsT0FBTyxFQUFDLFVBQVUsRUFBRSxLQUFLLEVBQUMsQ0FBQTtJQUM1QixDQUFDO0NBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IHtERUZBVUxUX1NDSEVEVUxFRF9FTlFVRVVFX1RJTUVPVVRfTVN9IGZyb20gXCIuL3NjaGVkdWxlZC1lbnF1ZXVlLWJvdW5kLmpzXCJcbmltcG9ydCBTY2hlZHVsZWRCYWNrZ3JvdW5kSm9iRW5xdWV1ZVRpbWVvdXRFcnJvciBmcm9tIFwiLi9zY2hlZHVsZWQtZW5xdWV1ZS10aW1lb3V0LWVycm9yLmpzXCJcblxuaW1wb3J0IExvZ2dlciBmcm9tIFwiLi4vbG9nZ2VyLmpzXCJcbmltcG9ydCB7bmV4dENyb25GaXJlRGF0ZSwgcGFyc2VDcm9uRXhwcmVzc2lvbn0gZnJvbSBcIi4vY3Jvbi1leHByZXNzaW9uLmpzXCJcblxuLyoqXG4gKiBEdXJhdGlvblVuaXQgdHlwZS5cbiAqIEB0eXBlZGVmIHtrZXlvZiB0eXBlb2YgRFVSQVRJT05fTVVMVElQTElFUlN9IER1cmF0aW9uVW5pdCAqL1xuY29uc3QgRFVSQVRJT05fTVVMVElQTElFUlMgPSB7XG4gIGQ6IDI0ICogNjAgKiA2MCAqIDEwMDAsXG4gIGRheTogMjQgKiA2MCAqIDYwICogMTAwMCxcbiAgZGF5czogMjQgKiA2MCAqIDYwICogMTAwMCxcbiAgaDogNjAgKiA2MCAqIDEwMDAsXG4gIGhvdXI6IDYwICogNjAgKiAxMDAwLFxuICBob3VyczogNjAgKiA2MCAqIDEwMDAsXG4gIG06IDYwICogMTAwMCxcbiAgbWludXRlOiA2MCAqIDEwMDAsXG4gIG1pbnV0ZXM6IDYwICogMTAwMCxcbiAgbXM6IDEsXG4gIHM6IDEwMDAsXG4gIHNlY29uZDogMTAwMCxcbiAgc2Vjb25kczogMTAwMCxcbiAgdzogNyAqIDI0ICogNjAgKiA2MCAqIDEwMDAsXG4gIHdlZWs6IDcgKiAyNCAqIDYwICogNjAgKiAxMDAwLFxuICB3ZWVrczogNyAqIDI0ICogNjAgKiA2MCAqIDEwMDBcbn1cblxuLy8gVGhlIHdhdGNoZG9nIGJlbG93IGlzIGludGVybmFsIG1hY2hpbmVyeSwgbm90IGEgc2NoZWR1bGUgdGltZXIuIENhcHR1cmluZyB0aGVcbi8vIHBsYXRmb3JtIHRpbWVycyBhdCBtb2R1bGUgbG9hZCBrZWVwcyB0aGVtIG91dCBvZiBhIGNhbGxlcidzIHNjaGVkdWxlLXRpbWVyXG4vLyBvYnNlcnZhdGlvbiwgc28gYm91bmRpbmcgYW4gZW5xdWV1ZSBuZXZlciBhcHBlYXJzIGFzIGFuIGV4dHJhIHNjaGVkdWxlZCBqb2IuXG5jb25zdCBhcm1XYXRjaGRvZ1RpbWVyID0gZ2xvYmFsVGhpcy5zZXRUaW1lb3V0XG5jb25zdCBjYW5jZWxXYXRjaGRvZ1RpbWVyID0gZ2xvYmFsVGhpcy5jbGVhclRpbWVvdXRcblxuLyoqXG4gKiBSdW5zIHRoZSBwYXJzZVNjaGVkdWxlZER1cmF0aW9uIGhlbHBlci5cbiAqIEBwYXJhbSB7bnVtYmVyIHwgc3RyaW5nfSB2YWx1ZSAtIER1cmF0aW9uIHZhbHVlLlxuICogQHBhcmFtIHtzdHJpbmd9IGZpZWxkTmFtZSAtIEZpZWxkIG5hbWUgZm9yIGVycm9ycy5cbiAqIEByZXR1cm5zIHtudW1iZXJ9IC0gRHVyYXRpb24gaW4gbWlsbGlzZWNvbmRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGFyc2VTY2hlZHVsZWREdXJhdGlvbih2YWx1ZSwgZmllbGROYW1lKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09IFwibnVtYmVyXCIpIHtcbiAgICBpZiAoIU51bWJlci5pc0Zpbml0ZSh2YWx1ZSkgfHwgdmFsdWUgPCAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFNjaGVkdWxlZCBiYWNrZ3JvdW5kIGpvYiAke2ZpZWxkTmFtZX0gbXVzdCBiZSBhIHBvc2l0aXZlIG51bWJlciBvZiBtaWxsaXNlY29uZHMuYClcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsdWVcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFsdWUgIT09IFwic3RyaW5nXCIgfHwgIXZhbHVlLnRyaW0oKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgU2NoZWR1bGVkIGJhY2tncm91bmQgam9iICR7ZmllbGROYW1lfSBtdXN0IGJlIGEgbm9uLWVtcHR5IHN0cmluZyBvciBudW1iZXIuYClcbiAgfVxuXG4gIGNvbnN0IG5vcm1hbGl6ZWRWYWx1ZSA9IHZhbHVlLnRyaW0oKS50b0xvd2VyQ2FzZSgpXG4gIGNvbnN0IG1hdGNoID0gbm9ybWFsaXplZFZhbHVlLm1hdGNoKC9eKFxcZCsoPzpcXC5cXGQrKT8pXFxzKihtc3xzfG18aHxkfHd8c2Vjb25kfHNlY29uZHN8bWludXRlfG1pbnV0ZXN8aG91cnxob3Vyc3xkYXl8ZGF5c3x3ZWVrfHdlZWtzKSQvKVxuXG4gIGlmICghbWF0Y2gpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgc2NoZWR1bGVkIGJhY2tncm91bmQgam9iICR7ZmllbGROYW1lfTogJHt2YWx1ZX1gKVxuICB9XG5cbiAgY29uc3QgbnVtZXJpY1ZhbHVlID0gTnVtYmVyKG1hdGNoWzFdKVxuICBjb25zdCBtdWx0aXBsaWVyID0gRFVSQVRJT05fTVVMVElQTElFUlNbLyoqIEB0eXBlIHtEdXJhdGlvblVuaXR9ICovIChtYXRjaFsyXSldXG5cbiAgaWYgKCFtdWx0aXBsaWVyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJbnZhbGlkIHNjaGVkdWxlZCBiYWNrZ3JvdW5kIGpvYiAke2ZpZWxkTmFtZX06ICR7dmFsdWV9YClcbiAgfVxuXG4gIHJldHVybiBNYXRoLnJvdW5kKG51bWVyaWNWYWx1ZSAqIG11bHRpcGxpZXIpXG59XG5cbi8qKiBSdW5zIGNvbmZpZ3VyZWQgcmVjdXJyaW5nIGJhY2tncm91bmQgam9iIHNjaGVkdWxlcy4gKi9cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIEJhY2tncm91bmRKb2JzU2NoZWR1bGVyIHtcbiAgLyoqXG4gICAqIFJ1bnMgY29uc3RydWN0b3IuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucy5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHR9IGFyZ3MuY29uZmlndXJhdGlvbiAtIENvbmZpZ3VyYXRpb24uXG4gICAqIEBwYXJhbSB7KGFyZ3M6IHthcmdzOiBBcnJheTxSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPj4sIGpvYkNsYXNzOiB0eXBlb2YgaW1wb3J0KFwiLi9qb2IuanNcIikuZGVmYXVsdCwgam9iS2V5OiBzdHJpbmcsIG9wdGlvbnM6IGltcG9ydChcIi4vdHlwZXMuanNcIikuQmFja2dyb3VuZEpvYk9wdGlvbnN9KSA9PiBQcm9taXNlPHZvaWQ+fSBhcmdzLmVucXVldWVKb2IgLSBFbnF1ZXVlIGNhbGxiYWNrLlxuICAgKi9cbiAgY29uc3RydWN0b3Ioe2NvbmZpZ3VyYXRpb24sIGVucXVldWVKb2J9KSB7XG4gICAgdGhpcy5jb25maWd1cmF0aW9uID0gY29uZmlndXJhdGlvblxuICAgIHRoaXMuZW5xdWV1ZUpvYiA9IGVucXVldWVKb2JcbiAgICB0aGlzLmxvZ2dlciA9IG5ldyBMb2dnZXIodGhpcylcbiAgICAvKiogQHR5cGUge251bWJlciB8IG51bGx9IC0gQm91bmQgKG1zKSBmb3Igb25lIHNjaGVkdWxlZCBlbnF1ZXVlIGF0dGVtcHQ7IGBudWxsYCBkaXNhYmxlcyB0aGUgYm91bmQuICovXG4gICAgdGhpcy5zY2hlZHVsZWRFbnF1ZXVlVGltZW91dE1zID0gdGhpcy5fcmVzb2x2ZVNjaGVkdWxlZEVucXVldWVUaW1lb3V0TXMoKVxuICAgIC8qKlxuICAgICAqIE5hcnJvd3MgdGhlIHJ1bnRpbWUgdmFsdWUgdG8gdGhlIGRvY3VtZW50ZWQgdHlwZS5cbiAgICAgKiBAdHlwZSB7QXJyYXk8UmV0dXJuVHlwZTx0eXBlb2Ygc2V0SW50ZXJ2YWw+Pn0gKi9cbiAgICB0aGlzLmludGVydmFsSWRzID0gW11cbiAgICAvKipcbiAgICAgKiBOYXJyb3dzIHRoZSBydW50aW1lIHZhbHVlIHRvIHRoZSBkb2N1bWVudGVkIHR5cGUuXG4gICAgICogQHR5cGUge0FycmF5PFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+Pn0gKi9cbiAgICB0aGlzLnRpbWVvdXRJZHMgPSBbXVxuICAgIC8qKiBAdHlwZSB7TWFwPHN0cmluZywgUHJvbWlzZTx2b2lkPj59IC0gSW4tZmxpZ2h0IHNjaGVkdWxlZCBlbnF1ZXVlcyBieSBzY2hlZHVsZSBrZXkgdGhhdCBzaHV0ZG93biBtdXN0IGRyYWluLiAqL1xuICAgIHRoaXMucGVuZGluZ0VucXVldWVzQnlKb2JLZXkgPSBuZXcgTWFwKClcbiAgICAvKipcbiAgICAgKiBOYXJyb3dzIHRoZSBydW50aW1lIHZhbHVlIHRvIHRoZSBkb2N1bWVudGVkIHR5cGUuXG4gICAgICogQHR5cGUge2Jvb2xlYW59IC0gVHJ1ZSBiZXR3ZWVuIHN0b3AoKSBhbmQgdGhlIG5leHQgc3RhcnQoKTsgY3JvbiBzZWxmLXJlc2NoZWR1bGVyIGNoZWNrcyB0aGlzIHNvIGEgc3RvcCgpIGR1cmluZyBhbiBpbi1mbGlnaHQgZW5xdWV1ZSBkb2Vzbid0IGltbWVkaWF0ZWx5IHJlLWFybS5cbiAgICAgKi9cbiAgICB0aGlzLnN0b3BwZWQgPSBmYWxzZVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgc3RhcnQuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAqL1xuICBhc3luYyBzdGFydCgpIHtcbiAgICB0aGlzLnN0b3BwZWQgPSBmYWxzZVxuXG4gICAgY29uc3Qgc2NoZWR1bGVkQmFja2dyb3VuZEpvYnNDb25maWcgPSBhd2FpdCB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0U2NoZWR1bGVkQmFja2dyb3VuZEpvYnNDb25maWcoKVxuXG4gICAgaWYgKCFzY2hlZHVsZWRCYWNrZ3JvdW5kSm9ic0NvbmZpZz8uam9icykge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCBqb2JLZXkgb2YgT2JqZWN0LmtleXMoc2NoZWR1bGVkQmFja2dyb3VuZEpvYnNDb25maWcuam9icykpIHtcbiAgICAgIGNvbnN0IGpvYkNvbmZpZ3VyYXRpb24gPSBzY2hlZHVsZWRCYWNrZ3JvdW5kSm9ic0NvbmZpZy5qb2JzW2pvYktleV1cblxuICAgICAgaWYgKCFqb2JDb25maWd1cmF0aW9uIHx8IGpvYkNvbmZpZ3VyYXRpb24uZW5hYmxlZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgY29udGludWVcbiAgICAgIH1cblxuICAgICAgdGhpcy5zY2hlZHVsZUpvYih7am9iQ29uZmlndXJhdGlvbiwgam9iS2V5fSlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUnVucyBzdG9wLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gUmVzb2x2ZXMgYWZ0ZXIgaW4tZmxpZ2h0IHNjaGVkdWxlZCBlbnF1ZXVlcyBmaW5pc2guXG4gICAqL1xuICBhc3luYyBzdG9wKCkge1xuICAgIHRoaXMuc3RvcHBlZCA9IHRydWVcblxuICAgIGZvciAoY29uc3QgaW50ZXJ2YWxJZCBvZiB0aGlzLmludGVydmFsSWRzKSB7XG4gICAgICBjbGVhckludGVydmFsKGludGVydmFsSWQpXG4gICAgfVxuXG4gICAgZm9yIChjb25zdCB0aW1lb3V0SWQgb2YgdGhpcy50aW1lb3V0SWRzKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGltZW91dElkKVxuICAgIH1cblxuICAgIHRoaXMuaW50ZXJ2YWxJZHMgPSBbXVxuICAgIHRoaXMudGltZW91dElkcyA9IFtdXG5cbiAgICBhd2FpdCBQcm9taXNlLmFsbCh0aGlzLnBlbmRpbmdFbnF1ZXVlc0J5Sm9iS2V5LnZhbHVlcygpKVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgc2NoZWR1bGUgam9iLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi10eXBlcy5qc1wiKS5TY2hlZHVsZWRCYWNrZ3JvdW5kSm9iQ29uZmlndXJhdGlvbn0gYXJncy5qb2JDb25maWd1cmF0aW9uIC0gSm9iIGNvbmZpZ3VyYXRpb24uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLmpvYktleSAtIEpvYiBrZXkuXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgc2NoZWR1bGVKb2Ioe2pvYkNvbmZpZ3VyYXRpb24sIGpvYktleX0pIHtcbiAgICBpZiAoIWpvYkNvbmZpZ3VyYXRpb24uY2xhc3MgfHwgdHlwZW9mIGpvYkNvbmZpZ3VyYXRpb24uY2xhc3MucGVyZm9ybUxhdGVyV2l0aE9wdGlvbnMgIT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBTY2hlZHVsZWQgYmFja2dyb3VuZCBqb2IgJHtqb2JLZXl9IG11c3QgZGVmaW5lIGEgam9iIGNsYXNzLmApXG4gICAgfVxuXG4gICAgaWYgKGpvYkNvbmZpZ3VyYXRpb24uY3JvbiAhPT0gdW5kZWZpbmVkICYmIGpvYkNvbmZpZ3VyYXRpb24uZXZlcnkgIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBTY2hlZHVsZWQgYmFja2dyb3VuZCBqb2IgJHtqb2JLZXl9IG11c3QgZGVmaW5lIGVpdGhlciBcImV2ZXJ5XCIgb3IgXCJjcm9uXCIsIG5vdCBib3RoLmApXG4gICAgfVxuXG4gICAgaWYgKGpvYkNvbmZpZ3VyYXRpb24uY3JvbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLnNjaGVkdWxlQ3JvbkpvYih7am9iQ29uZmlndXJhdGlvbiwgam9iS2V5fSlcblxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgaWYgKGpvYkNvbmZpZ3VyYXRpb24uZXZlcnkgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBTY2hlZHVsZWQgYmFja2dyb3VuZCBqb2IgJHtqb2JLZXl9IG11c3QgZGVmaW5lIGVpdGhlciBcImV2ZXJ5XCIgb3IgXCJjcm9uXCIuYClcbiAgICB9XG5cbiAgICB0aGlzLnNjaGVkdWxlRXZlcnlKb2Ioe2pvYkNvbmZpZ3VyYXRpb24sIGpvYktleX0pXG4gIH1cblxuICAvKipcbiAgICogUnVucyBzY2hlZHVsZSBldmVyeSBqb2IuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucy5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi9jb25maWd1cmF0aW9uLXR5cGVzLmpzXCIpLlNjaGVkdWxlZEJhY2tncm91bmRKb2JDb25maWd1cmF0aW9ufSBhcmdzLmpvYkNvbmZpZ3VyYXRpb24gLSBKb2IgY29uZmlndXJhdGlvbi5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3Muam9iS2V5IC0gSm9iIGtleS5cbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICBzY2hlZHVsZUV2ZXJ5Sm9iKHtqb2JDb25maWd1cmF0aW9uLCBqb2JLZXl9KSB7XG4gICAgY29uc3QgZXZlcnlDb25maWcgPSAvKiogQHR5cGUge05vbk51bGxhYmxlPHR5cGVvZiBqb2JDb25maWd1cmF0aW9uLmV2ZXJ5Pn0gKi8gKGpvYkNvbmZpZ3VyYXRpb24uZXZlcnkpXG4gICAgY29uc3Qge2V2ZXJ5VmFsdWUsIGZpcnN0SW5WYWx1ZX0gPSB0aGlzLm5vcm1hbGl6ZUV2ZXJ5KGV2ZXJ5Q29uZmlnKVxuICAgIGNvbnN0IGludGVydmFsTXMgPSBwYXJzZVNjaGVkdWxlZER1cmF0aW9uKGV2ZXJ5VmFsdWUsIGAke2pvYktleX0uZXZlcnlgKVxuICAgIGNvbnN0IGZpcnN0SW5NcyA9IGZpcnN0SW5WYWx1ZSAhPT0gdW5kZWZpbmVkID8gcGFyc2VTY2hlZHVsZWREdXJhdGlvbihmaXJzdEluVmFsdWUsIGAke2pvYktleX0uZmlyc3RJbmApIDogaW50ZXJ2YWxNc1xuXG4gICAgaWYgKGludGVydmFsTXMgPCAxKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFNjaGVkdWxlZCBiYWNrZ3JvdW5kIGpvYiAke2pvYktleX0uZXZlcnkgbXVzdCBiZSBhdCBsZWFzdCAxIG1pbGxpc2Vjb25kLmApXG4gICAgfVxuXG4gICAgY29uc3QgdGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjb25zdCBzY2hlZHVsZWRFbnF1ZXVlID0gdGhpcy5ydW5TY2hlZHVsZWRKb2Ioe2pvYkNvbmZpZ3VyYXRpb24sIGpvYktleX0pXG5cbiAgICAgIGNvbnN0IGludGVydmFsSWQgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnJ1blNjaGVkdWxlZEpvYih7am9iQ29uZmlndXJhdGlvbiwgam9iS2V5fSlcbiAgICAgIH0sIGludGVydmFsTXMpXG5cbiAgICAgIHRoaXMuaW50ZXJ2YWxJZHMucHVzaChpbnRlcnZhbElkKVxuXG4gICAgICByZXR1cm4gc2NoZWR1bGVkRW5xdWV1ZVxuICAgIH0sIGZpcnN0SW5NcylcblxuICAgIHRoaXMudGltZW91dElkcy5wdXNoKHRpbWVvdXRJZClcbiAgfVxuXG4gIC8qKlxuICAgKiBDcm9udGFiIHNjaGVkdWxlcyBkb24ndCBoYXZlIGEgY29uc3RhbnQgaW50ZXJ2YWwgKGAwIDkgKiAqIDEtNWBcbiAgICogZmlyZXMgb25jZSBwZXIgd2Vla2RheSBhdCA5IEFNLCB3aXRoIGdhcHMgb2YgdmFyeWluZyBsZW5ndGgpLCBzb1xuICAgKiB3ZSBzZWxmLXJlc2NoZWR1bGUgd2l0aCBgc2V0VGltZW91dGAgYWZ0ZXIgZXZlcnkgZmlyZSBpbnN0ZWFkIG9mXG4gICAqIHVzaW5nIGBzZXRJbnRlcnZhbGAuXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBhcmdzIC0gT3B0aW9ucy5cbiAgICogQHBhcmFtIHtpbXBvcnQoXCIuLi9jb25maWd1cmF0aW9uLXR5cGVzLmpzXCIpLlNjaGVkdWxlZEJhY2tncm91bmRKb2JDb25maWd1cmF0aW9ufSBhcmdzLmpvYkNvbmZpZ3VyYXRpb24gLSBKb2IgY29uZmlndXJhdGlvbi5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3Muam9iS2V5IC0gSm9iIGtleS5cbiAgICogQHJldHVybnMge3ZvaWR9XG4gICAqL1xuICBzY2hlZHVsZUNyb25Kb2Ioe2pvYkNvbmZpZ3VyYXRpb24sIGpvYktleX0pIHtcbiAgICBjb25zdCBjcm9uRXhwcmVzc2lvbiA9IGpvYkNvbmZpZ3VyYXRpb24uY3JvblxuXG4gICAgaWYgKHR5cGVvZiBjcm9uRXhwcmVzc2lvbiAhPT0gXCJzdHJpbmdcIikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBTY2hlZHVsZWQgYmFja2dyb3VuZCBqb2IgJHtqb2JLZXl9LmNyb24gbXVzdCBiZSBhIHN0cmluZy5gKVxuICAgIH1cblxuICAgIGNvbnN0IHBhcnNlZCA9IHBhcnNlQ3JvbkV4cHJlc3Npb24oY3JvbkV4cHJlc3Npb24pXG4gICAgY29uc3Qgc2NoZWR1bGVOZXh0ID0gKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuc3RvcHBlZCkgcmV0dXJuXG5cbiAgICAgIGNvbnN0IG5leHREYXRlID0gbmV4dENyb25GaXJlRGF0ZShwYXJzZWQsIG5ldyBEYXRlKCkpXG4gICAgICBjb25zdCBkZWxheU1zID0gTWF0aC5tYXgoMSwgbmV4dERhdGUuZ2V0VGltZSgpIC0gRGF0ZS5ub3coKSlcbiAgICAgIGNvbnN0IHRpbWVvdXRJZCA9IHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5zdG9wcGVkKSByZXR1cm5cblxuICAgICAgICBhd2FpdCB0aGlzLnJ1blNjaGVkdWxlZEpvYih7am9iQ29uZmlndXJhdGlvbiwgam9iS2V5fSlcblxuICAgICAgICAvLyBUaGUgYXdhaXQgYWJvdmUgY2FuIHlpZWxkIHRvIGEgc3RvcCgpIGNhbGwuIFJlLWNoZWNrIGJlZm9yZVxuICAgICAgICAvLyByZS1hcm1pbmcgc28gd2UgZG9uJ3Qga2VlcCBmaXJpbmcgYWZ0ZXIgc2h1dGRvd24uXG4gICAgICAgIGlmICh0aGlzLnN0b3BwZWQpIHJldHVyblxuXG4gICAgICAgIHNjaGVkdWxlTmV4dCgpXG4gICAgICB9LCBkZWxheU1zKVxuXG4gICAgICB0aGlzLnRpbWVvdXRJZHMucHVzaCh0aW1lb3V0SWQpXG4gICAgfVxuXG4gICAgc2NoZWR1bGVOZXh0KClcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmFja3MgYSBzY2hlZHVsZWQgZW5xdWV1ZSBzbyBzdG9wKCkgY2Fubm90IHJldHVybiB3aGlsZSBpdCBjYW4gc3RpbGwgbXV0YXRlIHRoZSBzdG9yZS5cbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24tdHlwZXMuanNcIikuU2NoZWR1bGVkQmFja2dyb3VuZEpvYkNvbmZpZ3VyYXRpb259IGFyZ3Muam9iQ29uZmlndXJhdGlvbiAtIEpvYiBjb25maWd1cmF0aW9uLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXJncy5qb2JLZXkgLSBKb2Iga2V5LlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyBhZnRlciB0aGUgZW5xdWV1ZSBhdHRlbXB0IGZpbmlzaGVzLlxuICAgKi9cbiAgYXN5bmMgcnVuU2NoZWR1bGVkSm9iKHtqb2JDb25maWd1cmF0aW9uLCBqb2JLZXl9KSB7XG4gICAgaWYgKHRoaXMuc3RvcHBlZCB8fCB0aGlzLnBlbmRpbmdFbnF1ZXVlc0J5Sm9iS2V5Lmhhcyhqb2JLZXkpKSByZXR1cm5cblxuICAgIGNvbnN0IHBlbmRpbmdFbnF1ZXVlID0gdGhpcy5lbnF1ZXVlU2NoZWR1bGVkSm9iKHtqb2JDb25maWd1cmF0aW9uLCBqb2JLZXl9KVxuICAgIHRoaXMucGVuZGluZ0VucXVldWVzQnlKb2JLZXkuc2V0KGpvYktleSwgcGVuZGluZ0VucXVldWUpXG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgcGVuZGluZ0VucXVldWVcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5wZW5kaW5nRW5xdWV1ZXNCeUpvYktleS5kZWxldGUoam9iS2V5KVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSdW5zIGVucXVldWUgc2NoZWR1bGVkIGpvYi5cbiAgICogQHBhcmFtIHtvYmplY3R9IGFyZ3MgLSBPcHRpb25zLlxuICAgKiBAcGFyYW0ge2ltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24tdHlwZXMuanNcIikuU2NoZWR1bGVkQmFja2dyb3VuZEpvYkNvbmZpZ3VyYXRpb259IGFyZ3Muam9iQ29uZmlndXJhdGlvbiAtIEpvYiBjb25maWd1cmF0aW9uLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXJncy5qb2JLZXkgLSBKb2Iga2V5LlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAgICovXG4gIGFzeW5jIGVucXVldWVTY2hlZHVsZWRKb2Ioe2pvYkNvbmZpZ3VyYXRpb24sIGpvYktleX0pIHtcbiAgICB0cnkge1xuICAgICAgLy8gRGUtZHVwbGljYXRlIHNjaGVkdWxlZCBlbnF1ZXVlcyBieSBkZWZhdWx0OiBhIHBlcmlvZGljIGpvYiBzdGlsbCBwZW5kaW5nIGZyb20gYW4gZWFybGllclxuICAgICAgLy8gdGljayBpcyBub3QgZW5xdWV1ZWQgYWdhaW4sIHdoaWNoIGlzIHdoYXQgbGV0IHRoZSBiYWNrZ3JvdW5kX2pvYnMgdGFibGUgZmlsbCB3aXRoIHRob3VzYW5kc1xuICAgICAgLy8gb2YgaWRlbnRpY2FsIHNjaGVkdWxlZCBqb2JzIHdoZW4gdGhlIHF1ZXVlIGJhY2tlZCB1cC4gRGVkdXAgaXMgYnkgam9iIGlkZW50aXR5IChzZWUgdGhlXG4gICAgICAvLyBzdG9yZSksIHNvIHRoZSBqb2Iga2VlcHMgaXRzIHF1ZXVlLWRlcml2ZWQgY29uY3VycmVuY3kgY2FwLiBBIHNjaGVkdWxlIGNhbiBvcHQgb3V0IHdpdGhcbiAgICAgIC8vIGBkZWR1cGxpY2F0ZVdoaWxlUXVldWVkOiBmYWxzZWAuXG4gICAgICBhd2FpdCB0aGlzLl93aXRoU2NoZWR1bGVkRW5xdWV1ZVRpbWVvdXQoe1xuICAgICAgICBqb2JLZXksXG4gICAgICAgIGpvYk5hbWU6IGpvYkNvbmZpZ3VyYXRpb24uY2xhc3Muam9iTmFtZSgpLFxuICAgICAgICBydW46IGFzeW5jICgpID0+IHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmVucXVldWVKb2Ioe1xuICAgICAgICAgICAgYXJnczogQXJyYXkuaXNBcnJheShqb2JDb25maWd1cmF0aW9uLmFyZ3MpID8gam9iQ29uZmlndXJhdGlvbi5hcmdzIDogW10sXG4gICAgICAgICAgICBqb2JDbGFzczogam9iQ29uZmlndXJhdGlvbi5jbGFzcyxcbiAgICAgICAgICAgIGpvYktleSxcbiAgICAgICAgICAgIG9wdGlvbnM6IHtkZWR1cGxpY2F0ZVdoaWxlUXVldWVkOiB0cnVlLCAuLi4oam9iQ29uZmlndXJhdGlvbi5vcHRpb25zIHx8IHt9KX1cbiAgICAgICAgICB9KVxuICAgICAgICB9XG4gICAgICB9KVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBTY2hlZHVsZWRCYWNrZ3JvdW5kSm9iRW5xdWV1ZVRpbWVvdXRFcnJvcikge1xuICAgICAgICB0aGlzLl9yZXBvcnRTY2hlZHVsZWRFbnF1ZXVlU3RhbGwoe2Vycm9yLCBqb2JLZXl9KVxuXG4gICAgICAgIHJldHVyblxuICAgICAgfVxuXG4gICAgICBhd2FpdCB0aGlzLmxvZ2dlci5lcnJvcigoKSA9PiBbXCJGYWlsZWQgdG8gZW5xdWV1ZSBzY2hlZHVsZWQgYmFja2dyb3VuZCBqb2JcIiwge2pvYktleSwgam9iTmFtZTogam9iQ29uZmlndXJhdGlvbi5jbGFzcy5qb2JOYW1lKCl9LCBlcnJvcl0pXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgb25lIGR1cmFibGUgZW5xdWV1ZSBhdHRlbXB0IHVuZGVyIHRoZSBzY2hlZHVsZWQtZW5xdWV1ZSBib3VuZC5cbiAgICpcbiAgICogVGhlIGJvdW5kIGlzIGFwcGxpZWQgd2l0aCBhIGxvY2FsIHJhY2UgcmF0aGVyIHRoYW4gYGF3YWl0ZXJ5YCdzIGB0aW1lb3V0KClgOlxuICAgKiB0aGF0IGhlbHBlciBzdGFydHMgaXRzIGNhbGxiYWNrIHRocm91Z2ggYFByb21pc2UucmVzb2x2ZSgpLnRoZW4oLi4uKWAsIHdoaWNoXG4gICAqIHdvdWxkIGRlZmVyIGV2ZXJ5IHNjaGVkdWxlZCBlbnF1ZXVlIGJ5IGEgbWljcm90YXNrIGFuZCBjaGFuZ2UgdGhlIHRpY2tcbiAgICogc2VtYW50aWNzIGNhbGxlcnMgcmVseSBvbi4gSGVyZSB0aGUgYXR0ZW1wdCBzdGFydHMgc3luY2hyb25vdXNseSwgYW5kIHRoZVxuICAgKiB3YXRjaGRvZyB1c2VzIHRoZSBtb2R1bGUtY2FwdHVyZWQgdGltZXJzIHNvIGl0IGlzIG5ldmVyIG9ic2VydmFibGUgYXMgYVxuICAgKiBzY2hlZHVsZSB0aW1lci4gT25seSB0aGUgd2F0Y2hkb2cgcmFpc2VzIHRoZSB0eXBlZCB0aW1lb3V0IGVycm9yLCBzbyBhXG4gICAqIHRpbWVvdXQgcmFpc2VkIGluc2lkZSB0aGUgZW5xdWV1ZSBpdHNlbGYga2VlcHMgaXRzIG93biBlcnJvciBwYXRoLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBhcmdzLmpvYktleSAtIFNjaGVkdWxlIGtleS5cbiAgICogQHBhcmFtIHtzdHJpbmd9IGFyZ3Muam9iTmFtZSAtIFJlc29sdmVkIGpvYiBjbGFzcyBuYW1lLlxuICAgKiBAcGFyYW0geygpID0+IFByb21pc2U8dm9pZD59IGFyZ3MucnVuIC0gRW5xdWV1ZSBhdHRlbXB0LlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIHRoZSBhdHRlbXB0IHNldHRsZXMgd2l0aGluIHRoZSBib3VuZC5cbiAgICovXG4gIGFzeW5jIF93aXRoU2NoZWR1bGVkRW5xdWV1ZVRpbWVvdXQoe2pvYktleSwgam9iTmFtZSwgcnVufSkge1xuICAgIGNvbnN0IHRpbWVvdXRNcyA9IHRoaXMuc2NoZWR1bGVkRW5xdWV1ZVRpbWVvdXRNc1xuICAgIC8qKiBAdHlwZSB7UHJvbWlzZTx2b2lkPn0gKi9cbiAgICBsZXQgYXR0ZW1wdFxuXG4gICAgdHJ5IHtcbiAgICAgIGF0dGVtcHQgPSBQcm9taXNlLnJlc29sdmUocnVuKCkpXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGF0dGVtcHQgPSBQcm9taXNlLnJlamVjdCgvKiogQHR5cGUge0Vycm9yfSAqLyAoZXJyb3IpKVxuICAgIH1cblxuICAgIGlmICh0aW1lb3V0TXMgPT09IG51bGwpIHJldHVybiBhd2FpdCBhdHRlbXB0XG5cbiAgICAvKipcbiAgICAgKiBSZWplY3RzIHRoZSB3YXRjaGRvZyBwcm9taXNlIHdoZW4gdGhlIGJvdW5kIGV4cGlyZXMuXG4gICAgICogQHR5cGUgeyhlcnJvcjogRXJyb3IpID0+IHZvaWR9ICovXG4gICAgbGV0IHJlamVjdFNjaGVkdWxlZEVucXVldWVUaW1lb3V0ID0gKCkgPT4ge31cbiAgICBjb25zdCB3YXRjaGRvZyA9IG5ldyBQcm9taXNlKChfLCByZWplY3QpID0+IHsgcmVqZWN0U2NoZWR1bGVkRW5xdWV1ZVRpbWVvdXQgPSByZWplY3QgfSlcbiAgICAvKipcbiAgICAgKiBXYXRjaGRvZyB0aW1lciBoYW5kbGUuXG4gICAgICogQHR5cGUge1JldHVyblR5cGU8dHlwZW9mIGFybVdhdGNoZG9nVGltZXI+fSAqL1xuICAgIGNvbnN0IHdhdGNoZG9nSWQgPSBhcm1XYXRjaGRvZ1RpbWVyKCgpID0+IHtcbiAgICAgIHJlamVjdFNjaGVkdWxlZEVucXVldWVUaW1lb3V0KG5ldyBTY2hlZHVsZWRCYWNrZ3JvdW5kSm9iRW5xdWV1ZVRpbWVvdXRFcnJvcih7XG4gICAgICAgIGpvYktleSxcbiAgICAgICAgam9iTmFtZSxcbiAgICAgICAgc2NoZWR1bGVkRW5xdWV1ZVRpbWVvdXRNczogdGltZW91dE1zXG4gICAgICB9KSlcbiAgICB9LCB0aW1lb3V0TXMpXG5cbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGF3YWl0IFByb21pc2UucmFjZShbYXR0ZW1wdCwgd2F0Y2hkb2ddKVxuICAgIH0gZmluYWxseSB7XG4gICAgICBjYW5jZWxXYXRjaGRvZ1RpbWVyKHdhdGNoZG9nSWQpXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFN1cmZhY2VzIGEgc2NoZWR1bGVkIGVucXVldWUgd2hvc2Ugc3RvcmUgY2FsbCBuZXZlciBzZXR0bGVkLiBXaXRob3V0IHRoaXMgcmVwb3J0IHRoZSBvbmx5XG4gICAqIHN5bXB0b20gaXMgYSBzY2hlZHVsZSB0aGF0IHNpbGVudGx5IHN0b3BzIGVucXVldWVpbmcgYWZ0ZXIgb25lIHdlZGdlZCBjYWxsLlxuICAgKiBAcGFyYW0ge29iamVjdH0gYXJncyAtIE9wdGlvbnMuXG4gICAqIEBwYXJhbSB7RXJyb3J9IGFyZ3MuZXJyb3IgLSBUaW1lb3V0IGVycm9yLlxuICAgKiBAcGFyYW0ge3N0cmluZ30gYXJncy5qb2JLZXkgLSBTY2hlZHVsZSBrZXkuXG4gICAqIEByZXR1cm5zIHt2b2lkfVxuICAgKi9cbiAgX3JlcG9ydFNjaGVkdWxlZEVucXVldWVTdGFsbCh7ZXJyb3IsIGpvYktleX0pIHtcbiAgICBjb25zdCBwYXlsb2FkID0ge1xuICAgICAgY29udGV4dDoge1xuICAgICAgICBqb2JLZXksXG4gICAgICAgIHNjaGVkdWxlZEVucXVldWVUaW1lb3V0TXM6IHRoaXMuc2NoZWR1bGVkRW5xdWV1ZVRpbWVvdXRNcyxcbiAgICAgICAgc3RhZ2U6IFwiYmFja2dyb3VuZC1qb2JzLXNjaGVkdWxlZC1lbnF1ZXVlLXN0YWxsXCJcbiAgICAgIH0sXG4gICAgICBlcnJvclxuICAgIH1cblxuICAgIHZvaWQgdGhpcy5sb2dnZXIuZXJyb3IoKCkgPT4gW1wiU2NoZWR1bGVkIGJhY2tncm91bmQgam9iIGVucXVldWUgc3RhbGxlZFwiLCBwYXlsb2FkLmNvbnRleHQsIGVycm9yXSlcblxuICAgIGNvbnN0IGVycm9yRXZlbnRzID0gdHlwZW9mIHRoaXMuY29uZmlndXJhdGlvbj8uZ2V0RXJyb3JFdmVudHMgPT09IFwiZnVuY3Rpb25cIiA/IHRoaXMuY29uZmlndXJhdGlvbi5nZXRFcnJvckV2ZW50cygpIDogdW5kZWZpbmVkXG5cbiAgICBpZiAoIWVycm9yRXZlbnRzKSByZXR1cm5cblxuICAgIGVycm9yRXZlbnRzLmVtaXQoXCJmcmFtZXdvcmstZXJyb3JcIiwgcGF5bG9hZClcbiAgICBlcnJvckV2ZW50cy5lbWl0KFwiYWxsLWVycm9yXCIsIHsuLi5wYXlsb2FkLCBlcnJvclR5cGU6IFwiZnJhbWV3b3JrLWVycm9yXCJ9KVxuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmVzIHRoZSBzY2hlZHVsZWQtZW5xdWV1ZSBib3VuZCBmcm9tIGNvbmZpZ3VyYXRpb24uXG4gICAqIEByZXR1cm5zIHtudW1iZXIgfCBudWxsfSAtIEJvdW5kIGluIG1pbGxpc2Vjb25kcywgb3IgYG51bGxgIGZvciBhbiB1bmJvdW5kZWQgd2FpdC5cbiAgICovXG4gIF9yZXNvbHZlU2NoZWR1bGVkRW5xdWV1ZVRpbWVvdXRNcygpIHtcbiAgICBjb25zdCBiYWNrZ3JvdW5kSm9ic0NvbmZpZyA9IHR5cGVvZiB0aGlzLmNvbmZpZ3VyYXRpb24/LmdldEJhY2tncm91bmRKb2JzQ29uZmlnID09PSBcImZ1bmN0aW9uXCIgPyB0aGlzLmNvbmZpZ3VyYXRpb24uZ2V0QmFja2dyb3VuZEpvYnNDb25maWcoKSA6IHVuZGVmaW5lZFxuICAgIGNvbnN0IGNvbmZpZ3VyZWQgPSBiYWNrZ3JvdW5kSm9ic0NvbmZpZz8uc2NoZWR1bGVkRW5xdWV1ZVRpbWVvdXRNc1xuXG4gICAgaWYgKGNvbmZpZ3VyZWQgPT09IG51bGwpIHJldHVybiBudWxsXG4gICAgaWYgKHR5cGVvZiBjb25maWd1cmVkID09PSBcIm51bWJlclwiICYmIGNvbmZpZ3VyZWQgPiAwKSByZXR1cm4gY29uZmlndXJlZFxuXG4gICAgcmV0dXJuIERFRkFVTFRfU0NIRURVTEVEX0VOUVVFVUVfVElNRU9VVF9NU1xuICB9XG5cbiAgLyoqXG4gICAqIFJ1bnMgbm9ybWFsaXplIGV2ZXJ5LlxuICAgKiBAcGFyYW0ge05vbk51bGxhYmxlPGltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24tdHlwZXMuanNcIikuU2NoZWR1bGVkQmFja2dyb3VuZEpvYkNvbmZpZ3VyYXRpb25bXCJldmVyeVwiXT59IGV2ZXJ5IC0gRXZlcnkgY29uZmlnIChjYWxsZXIgbXVzdCBndWFyYW50ZWUgbm90IHVuZGVmaW5lZCkuXG4gICAqIEByZXR1cm5zIHt7ZXZlcnlWYWx1ZTogbnVtYmVyIHwgc3RyaW5nLCBmaXJzdEluVmFsdWU/OiBudW1iZXIgfCBzdHJpbmd9fSAtIE5vcm1hbGl6ZWQgaW50ZXJ2YWwgYW5kIGZpcnN0LXJ1biBkZWxheSB2YWx1ZXMuXG4gICAqL1xuICBub3JtYWxpemVFdmVyeShldmVyeSkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KGV2ZXJ5KSkge1xuICAgICAgY29uc3QgW2V2ZXJ5VmFsdWUsIGV2ZXJ5T3B0aW9uc10gPSBldmVyeVxuXG4gICAgICBpZiAoIWV2ZXJ5T3B0aW9ucyB8fCB0eXBlb2YgZXZlcnlPcHRpb25zICE9PSBcIm9iamVjdFwiIHx8IEFycmF5LmlzQXJyYXkoZXZlcnlPcHRpb25zKSkge1xuICAgICAgICByZXR1cm4ge2V2ZXJ5VmFsdWV9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7ZXZlcnlWYWx1ZSwgZmlyc3RJblZhbHVlOiBldmVyeU9wdGlvbnMuZmlyc3RJbn1cbiAgICB9XG5cbiAgICByZXR1cm4ge2V2ZXJ5VmFsdWU6IGV2ZXJ5fVxuICB9XG59XG4iXX0=
|
|
@@ -937,6 +937,16 @@ export default class BackgroundJobsStore extends BackgroundJobsAdapter {
|
|
|
937
937
|
* @returns {Promise<void>} - Resolves when all expected indexes exist.
|
|
938
938
|
*/
|
|
939
939
|
_ensureJobsTableIndexesOnce(db: import("../database/drivers/base.js").default): Promise<void>;
|
|
940
|
+
/**
|
|
941
|
+
* Idempotently creates the ordered composite retention indexes. An index
|
|
942
|
+
* with the expected name but a different column order is a manual-repair
|
|
943
|
+
* situation and fails readiness loudly instead of being rebuilt or
|
|
944
|
+
* re-recorded; the migration ledger is written only once every expected
|
|
945
|
+
* index exists with its exact ordered columns.
|
|
946
|
+
* @param {import("../database/drivers/base.js").default} db - Database connection.
|
|
947
|
+
* @returns {Promise<void>} - Resolves when all retention indexes exist.
|
|
948
|
+
*/
|
|
949
|
+
_ensureRetentionIndexesOnce(db: import("../database/drivers/base.js").default): Promise<void>;
|
|
940
950
|
/**
|
|
941
951
|
* Idempotently adds the per-job wall-clock timeout to existing job tables.
|
|
942
952
|
* @param {import("../database/drivers/base.js").default} db - Database connection.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/background-jobs/store.js"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"store.d.ts","sourceRoot":"","sources":["../../../src/background-jobs/store.js"],"names":[],"mappings":"AAGA,OAAO,qBAAqB,MAAM,cAAc,CAAA;AAChD,OAAO,MAAM,MAAM,cAAc,CAAA;AA+B9B,YAAkB,qBAAqB,GACvC;;;;IAAmB,QAAQ,EAAhB,MAAM,CACjB;;;;IAA2F,WAAW,EAA3F;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,OAAO,CAAA;KAAC,GAAG,IAAI,CACzF;;;;IAAmB,WAAW,EAAnB,MAAM,CACjB;;;;IAA4D,aAAa,EAA9D,OAAO,YAAY,EAAE,0BAA0B,CAC1D;;;;IAAmB,KAAK,EAAb,MAAM,CACjB;;;;IAAmB,OAAO,EAAf,MAAM,CACjB;;;;IAAmB,UAAU,EAAlB,MAAM,CACjB;;;;IAAmB,KAAK,EAAb,MAAM,CACjB;;;;IAAmB,aAAa,EAArB,MAAM,CACjB;;;;IAA0B,SAAS,EAAxB,MAAM,GAAG,IAAI,CAC1B;CAAA,CAAA;AAIE,YAAkB,4BAA4B,GAC9C;;;;IAA0D,UAAU,EAAzD,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CACxD;;;;IAAkD,GAAG,EAA1C,OAAO,YAAY,EAAE,gBAAgB,CAClD;CAAA,CAAA;AAIE,YAAkB,4CAA4C,GAC9D;;;;IAAoD,YAAY,AAAhE,CACF,EADa;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAC,CACnD;CAAA,CAAA;AAKE,YAAkB,mCAAmC,GACrD;;;;IAAoC,UAAU,EAAnC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAClC;;;;IAAmB,MAAM,EAAd,MAAM,CACjB;;;;IAAmB,MAAM,EAAd,MAAM,CACjB;;;;IAAmB,MAAM,EAAd,MAAM,CACnB;CAAA,CAAA;AAIE,YAAkB,gCAAgC,GAClD;;;;IAA4B,YAAY,EAA7B,MAAM,GAAG,MAAM,CAC1B;;;;IAAmB,eAAe,EAAvB,MAAM,CACnB;CAAA,CAAA;AAIE,YAAkB,8BAA8B,GAChD;;;;IAA0B,cAAc,EAA7B,MAAM,GAAG,IAAI,CACxB;;;;IAA0B,cAAc,EAA7B,MAAM,GAAG,IAAI,CAC1B;CAAA,CAAA;AAmDD,eAAO,MAAM,6BAA6B,oCAAoC,CAAA;AAC9E,eAAO,MAAM,4BAA4B,UAAqE,CAAA;AAsC9G,MAAM,CAAC,OAAO,OAAO,mBAAoB,SAAQ,qBAAqB;IAY7D,aAAa;IACb,kBAAkB;IAClB,KAAK;aARK,MAAM,MAAM;;IAStB,4BAA4B,mBARR,OAAO,YAAY,EAAE,0BAA0B,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAS5F,4BAA4B,cARb,mCAAmC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAS3E,MAAM;IACN,aAAa;IACb,2BAA2B;IAlBlC;;;;;;;;OAQG;IACH,YAAY,EAAC,aAAa,EAAE,kBAAkB,EAAE,KAAK,EAAE,4BAA4B,EAAE,4BAA4B,EAAC,EAN/G;QAAoD,aAAa,EAAzD,OAAO,qBAAqB,EAAE,OAAO,CAC7C;QAAsB,kBAAkB,AAAxC,CACA,EADQ,MAAM,CACd;QAAmC,KAAK,AAAxC,CACA,EADQ;YAAC,GAAG,EAAE,MAAM,MAAM,CAAA;SAAC,CAC3B;QAAwG,4BAA4B,AAApI,CACA,EADQ,CAAC,aAAa,EAAE,OAAO,YAAY,EAAE,0BAA0B,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAChG;QAAuF,4BAA4B,AAAnH,CACF,EADU,CAAC,QAAQ,EAAE,mCAAmC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CACjF;KACiH,EAUjH;IAED;;;OAGG;IACH,qBAAqB,IAFR,MAAM,CAMlB;IAED;;;OAGG;IACG,WAAW,IAFJ,OAAO,CAAC,IAAI,CAAC,CAgBzB;IAED;;;;;;;;;;;OAWG;IACG,YAAY,CAAC,EAAE,AALlB,CAGA,EAHQ,OAAO,6BAA6B,EAAE,OAK5B,GAFR,OAAO,CAAC,IAAI,CAAC,CASzB;IAED;;;;;;;;;;;;;OAaG;IACG,yBAAyB,IAFlB,OAAO,CAAC,IAAI,CAAC,CAoCzB;IAED;;;;;OAKG;IACG,0BAA0B,IAFnB,OAAO,CAAC,OAAO,YAAY,EAAE,sCAAsC,CAAC,CAgChF;IAED;;;;;;;OAOG;IACG,OAAO,CAAC,EAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAC,EALnC;QAAqB,OAAO,EAApB,MAAM,CACd;QAAmD,IAAI,EAA/C,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAC5C;QAAyD,OAAO,AAAhE,CACA,EADQ,OAAO,YAAY,EAAE,oBAAoB,CACjD;KAEmC,GAFzB,OAAO,CAAC,MAAM,CAAC,CA6B3B;IAED;;;;;;;;;;;OAWG;IACG,uBAAuB,CAAC,EAAC,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,oBAAoB,EAAE,aAAa,EAAC,EAPxF;QAAqB,OAAO,EAApB,MAAM,CACd;QAAmD,IAAI,EAA/C,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAC5C;QAAyD,OAAO,AAAhE,CACA,EADQ,OAAO,YAAY,EAAE,oBAAoB,CACjD;QAAsB,oBAAoB,AAA1C,CACA,EADQ,MAAM,CACd;QAA8D,aAAa,EAAnE,OAAO,YAAY,EAAE,0BAA0B,CACvD;KAEwF,GAF9E,OAAO,CAAC,MAAM,CAAC,CA+B3B;IAED;;;;;OAKG;IACG,wBAAwB,CAAC,EAAE,EAJtB,OAAO,6BAA6B,EAAE,OAIhB,EAAE,WAAW,EAHnC,qBAGmC,GAFjC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAmBlC;IAED;;;;;;;;;;OAUG;IACG,gCAAgC,CAAC,EAAC,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAC,EAPnG;QAA4D,EAAE,EAAtD,OAAO,6BAA6B,EAAE,OAAO,CACrD;QAAwD,OAAO,EAAvD,OAAO,YAAY,EAAE,oBAAoB,CACjD;QAAoC,WAAW,EAAvC,qBAAqB,CAC7B;QAAqB,oBAAoB,EAAjC,MAAM,CACd;QAA8D,aAAa,EAAnE,OAAO,YAAY,EAAE,0BAA0B,CACvD;KAEmG,GAFzF,OAAO,CAAC,MAAM,CAAC,CAqC3B;IAED;;;;;;;OAOG;IACG,oBAAoB,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAC,EALpD;QAAmD,IAAI,EAA/C,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAC5C;QAAwD,OAAO,EAAvD,OAAO,YAAY,EAAE,oBAAoB,CACjD;QAAoC,WAAW,EAAvC,qBAAqB,CAC7B;KAEoD,GAF1C,OAAO,CAAC,MAAM,CAAC,CAS3B;IAED;;;;;;;;;OASG;IACG,iCAAiC,CAAC,EAAC,IAAI,EAAE,mBAA2B,EAAE,EAAE,EAAE,OAAO,EAAE,WAAW,EAAC,EAPlG;QAAmD,IAAI,EAA/C,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAC5C;QAAuB,mBAAmB,AAA1C,CACA,EADQ,OAAO,CACf;QAA4D,EAAE,EAAtD,OAAO,6BAA6B,EAAE,OAAO,CACrD;QAAwD,OAAO,EAAvD,OAAO,YAAY,EAAE,oBAAoB,CACjD;QAAoC,WAAW,EAAvC,qBAAqB,CAC7B;KAEkG,GAFxF,OAAO,CAAC,MAAM,CAAC,CA6C3B;IAED;;;;;;OAMG;IACG,6BAA6B,CAJtB,CAAC,EAIsB,QAAQ,EAHjC,CAAC,EAAE,EAAE,OAAO,6BAA6B,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAG/B,GAF/B,OAAO,CAAC,CAAC,CAAC,CAItB;IAED;;;;;OAKG;IACG,0BAA0B,CAAC,EAAE,EAJxB,OAAO,6BAA6B,EAAE,OAId,EAAE,SAAS,EAHnC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAGT,GAFjC,OAAO,CAAC;QAAC,OAAO,EAAE,OAAO,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;KAAC,CAAC,CAkB3F;IAED;;;;;OAKG;IACG,qBAAqB,CAAC,EAAE,EAJnB,OAAO,6BAA6B,EAAE,OAInB,EAAE,WAAW,EAHhC,MAGgC,GAF9B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAMzE;IAED;;;;;;OAMG;IACH,6BAA6B,CAAC,EAAC,QAAQ,EAAE,SAAS,EAAC,EAJhD;QAA4D,QAAQ,EAA5D,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CACrD;QAA4D,SAAS,EAA7D,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CACrD;KAEgD,GAFtC,IAAI,CAYhB;IAED;;;;;;;;OAQG;IACG,6BAA6B,CAAC,EAAE,EAP3B,OAAO,6BAA6B,EAAE,OAOX,EAAE,EAAC,WAAW,EAAE,KAAK,EAAE,kBAAkB,EAAC,EAL7E;QAAqB,WAAW,EAAxB,MAAM,CACd;QAAqB,KAAK,EAAlB,MAAM,CACd;QAAoJ,kBAAkB,EAA9J;YAAC,SAAS,EAAE,OAAO,oBAAoB,EAAE,uBAAuB,CAAC;YAAC,OAAO,EAAE,OAAO,oBAAoB,EAAE,qBAAqB,CAAA;SAAC,GAAG,IAAI,CAC7I;KAE6E,GAFnE,OAAO,CAAC,IAAI,CAAC,CA2BzB;IAED;;;;;;;OAOG;IACG,8BAA8B,CAAC,EAAE,EAN5B,OAAO,6BAA6B,EAAE,OAMV,EAAE,EAAC,KAAK,EAAE,kBAAkB,EAAC,EAJjE;QAAqB,KAAK,EAAlB,MAAM,CACd;QAAoJ,kBAAkB,EAA9J;YAAC,SAAS,EAAE,OAAO,oBAAoB,EAAE,uBAAuB,CAAC;YAAC,OAAO,EAAE,OAAO,oBAAoB,EAAE,qBAAqB,CAAA;SAAC,GAAG,IAAI,CAC7I;KAEiE,GAFvD,OAAO,CAAC,IAAI,CAAC,CAqBzB;IAED;;;;;OAKG;IACG,sBAAsB,CAAC,EAAE,EAJpB,OAAO,6BAA6B,EAAE,OAIlB,EAAE,YAAY,EAHlC,MAGkC,GAFhC,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,CAMzE;IAED;;;;;;OAMG;IACH,iCAAiC,CAAC,EAAC,QAAQ,EAAE,SAAS,EAAC,EAJpD;QAA4D,QAAQ,EAA5D,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CACrD;QAA4D,SAAS,EAA7D,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CACrD;KAEoD,GAF1C,IAAI,CAchB;IAED;;;;;;;OAOG;IACH,yBAAyB,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,WAAW,EAAC,EALnD;QAAmD,IAAI,EAA/C,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAC5C;QAAwD,OAAO,EAAvD,OAAO,YAAY,EAAE,oBAAoB,CACjD;QAAoC,WAAW,EAAvC,qBAAqB,CAC7B;KAEmD,GAFzC,MAAM,CAiBlB;IAED;;;;;;;OAOG;IACH,uBAAuB,CAAC,EAAC,cAAc,EAAE,OAAO,EAAE,KAAK,EAAC,EALrD;QAAqB,cAAc,EAA3B,MAAM,CACd;QAAqB,OAAO,EAApB,MAAM,CACd;QAAqB,KAAK,EAAlB,MAAM,CACd;KAEqD,GAF3C,MAAM,CAMlB;IAED;;;;OAIG;IACH,wBAAwB,CAAC,cAAc,EAH5B,MAAM,GAAG,SAGmB,GAF1B,MAAM,CAUlB;IAED;;;;;;;OAOG;IACH,0BAA0B,CAAC,EAAC,OAAO,EAAE,WAAW,EAAC,EAJ9C;QAAwD,OAAO,EAAvD,OAAO,YAAY,EAAE,oBAAoB,CACjD;QAAoC,WAAW,EAAvC,qBAAqB,CAC7B;KAE8C,GAFpC,MAAM,CAkBlB;IAED;;;;;;;;OAQG;IACH,wBAAwB,CAAC,EAAC,WAAW,EAAE,oBAAoB,EAAE,aAAa,EAAE,aAAa,EAAC,EANvF;QAAoC,WAAW,EAAvC,qBAAqB,CAC7B;QAAqB,oBAAoB,EAAjC,MAAM,CACd;QAA8D,aAAa,EAAnE,OAAO,YAAY,EAAE,0BAA0B,CACvD;QAAqB,aAAa,EAA1B,MAAM,CACd;KAEuF,GAF7E,MAAM,CAalB;IAED;;;;OAIG;IACH,8BAA8B,CAAC,oBAAoB,EAHxC,MAAM,GAAG,SAG+B,GAFtC,MAAM,CAUlB;IAED;;;;OAIG;IACH,uBAAuB,CAAC,aAAa,EAH1B,OAAO,YAAY,EAAE,0BAGK,GAFxB,OAAO,YAAY,EAAE,0BAA0B,CA8B3D;IAED;;;;;;OAMG;IACG,2BAA2B,CAAC,EAAE,EAJzB,OAAO,6BAA6B,EAAE,OAIb,EAAE,aAAa,EAHxC,OAAO,YAAY,EAAE,0BAGmB,GAFtC,OAAO,CAAC,IAAI,CAAC,CAezB;IAED;;;;;;;;;OASG;IACG,gBAAgB,CAAC,EAAC,WAAW,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAC,EANzD;QAAqB,WAAW,EAAxB,MAAM,CACd;QAAqB,OAAO,EAApB,MAAM,CACd;QAAmD,IAAI,EAA/C,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAC5C;QAAyD,OAAO,AAAhE,CACA,EADQ,OAAO,YAAY,EAAE,oBAAoB,CACjD;KAEyD,GAF/C,OAAO,CAAC,OAAO,YAAY,EAAE,8BAA8B,CAAC,CA8DxE;IAED;;;;;OAKG;IACG,eAAe,CAAC,WAAW,EAHtB,MAGsB,GAFpB,OAAO,CAAC,OAAO,YAAY,EAAE,+BAA+B,CAAC,CA+CzE;IAED;;;;;OAKG;IACG,eAAe,CAAC,WAAW,EAJtB,MAIsB,EAAE,EAAC,qBAA6B,EAAC,AAH/D,CACA,EADQ;QAAC,qBAAqB,CAAC,EAAE,OAAO,CAAA;KAG4B,GAF1D,OAAO,CAAC,OAAO,YAAY,EAAE,kCAAkC,CAAC,CAsB5E;IAED;;;;OAIG;IACG,aAAa,CAAC,WAAW,EAHpB,MAGoB,GAFlB,OAAO,CAAC,OAAO,YAAY,EAAE,uBAAuB,CAAC,CAuCjE;IAED;;;;;OAKG;IACG,gBAAgB,CAAC,IAAI,AAJxB,CAEA,EADA;QAAmH,aAAa,AAAhI,CACA,EADQ,OAAO,YAAY,EAAE,0BAA0B,GAAG,OAAO,YAAY,EAAE,0BAA0B,EAAE,CAC3G;KAE6B,GAFnB,OAAO,CAAC,OAAO,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAAC,CAYjE;IAED;;;;;;;OAOG;IACG,gBAAgB,IAFT,OAAO,CAAC,OAAO,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAAC,CAQjE;IAED;;;;;;;OAOG;IACG,cAAc,CAAC,EAAC,EAAE,EAAE,mBAAmB,EAAE,aAAa,EAAC,EAL1D;QAA4D,EAAE,EAAtD,OAAO,6BAA6B,EAAE,OAAO,CACrD;QAAyB,mBAAmB,EAApC,IAAI,GAAG,GAAG,CAClB;QAAmH,aAAa,AAAhI,CACA,EADQ,OAAO,YAAY,EAAE,0BAA0B,GAAG,OAAO,YAAY,EAAE,0BAA0B,EAAE,CAC3G;KAE0D,GAFhD,OAAO,CAAC,OAAO,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAAC,CAwCjE;IAED;;;;;;;;;;;;OAYG;IACH,sBAAsB,CAAC,EAAE,EAHd,OAAO,6BAA6B,EAAE,OAGxB,GAFZ,MAAM,GAAG,IAAI,CAqBzB;IAED;;;;OAIG;IACG,MAAM,CAAC,KAAK,EAHP,MAGO,GAFL,OAAO,CAAC,OAAO,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAAC,CAmBjE;IAED;;;OAGG;IACG,cAAc,IAFP,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CA2B3C;IAED;;;;;OAKG;IACG,aAAa,IAFN,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,CAAC,CAQtF;IAED;;;;;;OAMG;IACG,SAAS,CAAC,EAAC,MAAM,EAAE,OAAO,EAAC,AAL9B,CAGA,EAFA;QAAsB,MAAM,AAA5B,CACA,EADQ,MAAM,CACd;QAAsB,OAAO,AAA7B,CACA,EADQ,MAAM,CACd;KAEmC,GAFzB,OAAO,CAAC,MAAM,CAAC,CAgB3B;IAED;;;;;;;;;;OAUG;IACG,QAAQ,CAAC,EAAC,MAAM,EAAE,OAAO,EAAE,KAAU,EAAE,MAAU,EAAE,UAA0B,EAAE,aAAsB,EAAC,AATzG,CAOA,EANA;QAAsB,MAAM,AAA5B,CACA,EADQ,MAAM,CACd;QAAsB,OAAO,AAA7B,CACA,EADQ,MAAM,CACd;QAAsB,KAAK,AAA3B,CACA,EADQ,MAAM,CACd;QAAsB,MAAM,AAA5B,CACA,EADQ,MAAM,CACd;QAAsB,UAAU,AAAhC,CACA,EADQ,MAAM,CACd;QAA8B,aAAa,AAA3C,CACA,EADQ,KAAK,GAAG,MAAM,CACtB;KAE8G,GAFpG,OAAO,CAAC,OAAO,YAAY,EAAE,gBAAgB,EAAE,CAAC,CAqB5D;IAED;;;;;;;OAOG;IACG,aAAa,CAAC,EAAC,KAAK,EAAE,SAAwB,EAAE,QAAQ,EAAC,EAL5D;QAAqB,KAAK,EAAlB,MAAM,CACd;QAAsB,SAAS,AAA/B,CACA,EADQ,MAAM,CACd;QAAsB,QAAQ,AAA9B,CACA,EADQ,MAAM,CACd;KAE4D,GAFlD,OAAO,CAAC,OAAO,YAAY,EAAE,oBAAoB,GAAG,IAAI,CAAC,CA4CrE;IAED;;;;;;;;OAQG;IACG,aAAa,CAAC,EAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAC,EAN5D;QAAqB,KAAK,EAAlB,MAAM,CACd;QAAsB,SAAS,AAA/B,CACA,EADQ,MAAM,CACd;QAAsB,QAAQ,AAA9B,CACA,EADQ,MAAM,CACd;QAAsB,aAAa,AAAnC,CACA,EADQ,MAAM,CACd;KAE4D,GAFlD,OAAO,CAAC,OAAO,CAAC,CA2B5B;IAED;;;;;;;;;;;;;;;;;;OAkBG;IACG,iBAAiB,CAAC,EAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,QAAQ,EAAC,EAVtH;QAAqB,KAAK,EAAlB,MAAM,CACd;QAAsB,SAAS,AAA/B,CACA,EADQ,MAAM,CACd;QAAsB,QAAQ,AAA9B,CACA,EADQ,MAAM,CACd;QAAsB,aAAa,AAAnC,CACA,EADQ,MAAM,CACd;QAAsB,YAAY,AAAlC,CACA,EADQ,MAAM,CACd;QAAsB,WAAW,AAAjC,CACA,EADQ,MAAM,CACd;QAAsB,eAAe,AAArC,CACA,EADQ,MAAM,CACd;QAAsB,QAAQ,AAA9B,CACA,EADQ,MAAM,CACd;KAEsH,GAF5G,OAAO,CAAC,OAAO,CAAC,CA0B5B;IAED;;;OAGG;IACH,2BAA2B,IAFd,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAIzD;IAED;;;OAGG;IACH,0BAA0B,IAFb,IAAI,CAAC,OAAO,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,GAAG,UAAU,GAAG,mBAAmB,GAAG,kBAAkB,CAAC,CAIlI;IAED;;;;;;;;;;OAUG;IACG,eAAe,CAAC,EAAC,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAC,EAPvE;QAAqB,KAAK,EAAlB,MAAM,CACd;QAAqB,OAAO,EAApB,MAAM,CACd;QAAsB,SAAS,AAA/B,CACA,EADQ,MAAM,CACd;QAAsB,QAAQ,AAA9B,CACA,EADQ,MAAM,CACd;QAAsB,aAAa,AAAnC,CACA,EADQ,MAAM,CACd;KAEuE,GAF7D,OAAO,CAAC,OAAO,CAAC,CAgC5B;IAED;;;;;;OAMG;IACG,mBAAmB,CAAC,EAAC,KAAK,EAAE,SAAS,EAAC,EAJzC;QAAqB,KAAK,EAAlB,MAAM,CACd;QAAqB,SAAS,EAAtB,MAAM,CACd;KAEyC,GAF/B,OAAO,CAAC,IAAI,CAAC,CA0BzB;IAED;;;;;;;;;;;;OAYG;IACG,sBAAsB,CAAC,EAAC,QAAQ,EAAC,EAHpC;QAAqB,QAAQ,EAArB,MAAM,CACd;KAEoC,GAF1B,OAAO,CAAC,KAAK,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAC,CAAC,CAAC,CAmB9D;IAED;;;;;OAKG;IACG,qBAAqB,IAFd,OAAO,CAAC,OAAO,YAAY,EAAE,4BAA4B,EAAE,CAAC,CA6BxE;IAED;;;;;;;;OAQG;IACG,oBAAoB,CAAC,EAAC,QAAQ,EAAE,KAAK,EAAC,EAJzC;QAAkE,QAAQ,EAAlE,OAAO,YAAY,EAAE,4BAA4B,EAAE,CAC3D;QAA4C,KAAK,EAAzC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CACrC;KAEyC,GAF/B,OAAO,CAAC,OAAO,YAAY,EAAE,gBAAgB,EAAE,CAAC,CA+B5D;IAED;;;;;;;;;OASG;IACG,UAAU,CAAC,EAAC,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAC,EAPhE;QAAqB,KAAK,EAAlB,MAAM,CACd;QAA4C,KAAK,EAAzC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CACrC;QAAsB,SAAS,AAA/B,CACA,EADQ,MAAM,CACd;QAAsB,QAAQ,AAA9B,CACA,EADQ,MAAM,CACd;QAAsB,aAAa,AAAnC,CACA,EADQ,MAAM,CACd;KAEgE,GAFtD,OAAO,CAAC,OAAO,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAAC,CAgBjE;IAED;;;;;OAKG;IACG,gBAAgB,CAAC,EAAC,eAAmC,EAAC,AAJzD,CAEA,EADA;QAAsB,eAAe,AAArC,CACA,EADQ,MAAM,CACd;KAE8D,GAFpD,OAAO,CAAC,OAAO,YAAY,EAAE,gBAAgB,EAAE,CAAC,CA8C5D;IAED;;;;;;;;OAQG;IACG,qBAAqB,CAAC,EAAC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAC,EALhD;QAA4D,EAAE,EAAtD,OAAO,6BAA6B,EAAE,OAAO,CACrD;QAA4C,KAAK,EAAzC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CACrC;QAA6C,UAAU,EAA/C,4BAA4B,EAAE,CACtC;KAEgD,GAFtC,OAAO,CAAC,OAAO,YAAY,EAAE,gBAAgB,EAAE,CAAC,CA4B5D;IAED;;;;;;;;;;;;OAYG;IACG,iBAAiB,CAAC,EAAC,cAAqB,EAAE,WAAkB,EAAE,SAAgB,EAAC,AANlF,CAIA,EAHA;QAA6B,cAAc,AAA3C,CACA,EADQ,MAAM,GAAG,IAAI,CACrB;QAA6B,WAAW,AAAxC,CACA,EADQ,MAAM,GAAG,IAAI,CACrB;QAAsB,SAAS,AAA/B,CACA,EADQ,MAAM,CACd;KAEuF,GAF7E,OAAO,CAAC,MAAM,CAAC,CAmB3B;IAED;;;;;;;;;;;;;;;;OAgBG;IACG,mBAAmB,CAAC,EAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAC,EAN1D;QAAqB,MAAM,EAAnB,MAAM,CACd;QAAqB,MAAM,EAAnB,MAAM,CACd;QAAqB,MAAM,EAAnB,MAAM,CACd;QAAqB,SAAS,EAAtB,MAAM,CACd;KAE0D,GAFhD,OAAO,CAAC,MAAM,CAAC,CAiD3B;IAED;;;OAGG;IACG,QAAQ,IAFD,OAAO,CAAC,IAAI,CAAC,CA+BzB;IAED;;;;OAIG;IACG,MAAM,CAAC,KAAK,EAHP,MAGO,GAFL,OAAO,CAAC,OAAO,CAAC,CAiB5B;IAED;;;;OAIG;IACH,eAAe,CAAC,UAAU,EAHf,MAGe,GAFb,MAAM,CAIlB;IAED;;;;;;;OAOG;IACH,WAAW,CAAC,EAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAC,EALjC;QAAmD,IAAI,EAA/C,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAC5C;QAAqB,OAAO,EAApB,MAAM,CACd;QAAyD,OAAO,AAAhE,CACA,EADQ,OAAO,YAAY,EAAE,oBAAoB,CACjD;KAEiC,GAFvB,qBAAqB,CAkBjC;IAED;;;;;OAKG;IACH,sBAAsB,CAAC,OAAO,EAHnB,OAAO,YAAY,EAAE,oBAAoB,GAAG,SAGzB,GAFjB,MAAM,GAAG,IAAI,CAkBzB;IAED;;;;;;;;OAQG;IACG,kBAAkB,CAAC,EAAE,EAPhB,OAAO,6BAA6B,EAAE,OAOtB,EAAE,EAAC,WAAW,EAAE,WAAW,EAAE,aAAoB,EAAC,EAL1E;QAAoC,WAAW,EAAvC,qBAAqB,CAC7B;QAA4B,WAAW,EAA/B,MAAM,GAAG,IAAI,CACrB;QAA6B,aAAa,AAA1C,CACA,EADQ,MAAM,GAAG,IAAI,CACrB;KAE0E,GAFhE,OAAO,CAAC,IAAI,CAAC,CAkCzB;IAED;;;;OAIG;IACH,oBAAoB,CAAC,UAAU,EAHpB,MAAM,GAAG,IAAI,GAAG,SAGI,GAFlB,MAAM,CAIlB;IAED;;;;;OAKG;IACH,uBAAuB,CAAC,aAAa,EAJ1B,MAAM,GAAG,SAIiB,EAAE,oBAAoB,EAHhD,MAGgD,GAF9C,MAAM,CAIlB;IAED;;;;OAIG;IACH,gBAAgB,CAAC,OAAO,EAHb,MAGa,GAFX,MAAM,CAIlB;IAED;;;;OAIG;IACH,0BAA0B,CAAC,OAAO,EAHvB,MAGuB,GAFrB,IAAI,CAIhB;IAED;;;;OAIG;IACH,qBAAqB,CAAC,WAAW,EAHtB,MAGsB,GAFpB,MAAM,CAIlB;IAED;;;;OAIG;IACH,oBAAoB,CAAC,WAAW,EAHrB,MAGqB,GAFnB,MAAM,CAMlB;IAED;;;;;;;;OAQG;IACG,aAAa,CAAC,UAAU,AAN3B,CAIA,EAJQ,OAAO,6BAA6B,EAAE,OAMnB,GAFjB,OAAO,CAAC,IAAI,CAAC,CAIzB;IAED;;;;;;OAMG;IACG,YAAY,CAAC,UAAU,AAJ1B,CAEA,EAFQ,OAAO,6BAA6B,EAAE,OAIpB,GAFhB,OAAO,CAAC,IAAI,CAAC,CA4BzB;IAED;;;;;OAKG;IACG,iBAAiB,CAAC,EAAE,EAHf,OAAO,6BAA6B,EAAE,OAGvB,GAFb,OAAO,CAAC,IAAI,CAAC,CAmDzB;IAED;;;;OAIG;IACG,sBAAsB,CAAC,EAAE,EAHpB,OAAO,6BAA6B,EAAE,OAGlB,GAFlB,OAAO,CAAC,IAAI,CAAC,CAazB;IAED;;;;;OAKG;IACG,aAAa,CAAC,EAAE,EAJX,OAAO,6BAA6B,EAAE,OAI3B,EAAE,OAAO,AAH5B,CACA,EADQ,MAGwC,GAFtC,OAAO,CAAC,OAAO,CAAC,CAY5B;IAED;;;;OAIG;IACG,gBAAgB,CAAC,EAAE,EAHd,OAAO,6BAA6B,EAAE,OAGxB,GAFZ,OAAO,CAAC,IAAI,CAAC,CAwCzB;IAED;;;;OAIG;IACG,uBAAuB,CAAC,EAAE,EAHrB,OAAO,6BAA6B,EAAE,OAGjB,GAFnB,OAAO,CAAC,IAAI,CAAC,CA2FzB;IAED;;;;;;;OAOG;IACG,6BAA6B,CAAC,EAAE,EAH3B,OAAO,6BAA6B,EAAE,OAGX,GAFzB,OAAO,CAAC,IAAI,CAAC,CAsCzB;IAED;;;;;;OAMG;IACG,2BAA2B,CAAC,EAAE,EAHzB,OAAO,6BAA6B,EAAE,OAGb,GAFvB,OAAO,CAAC,IAAI,CAAC,CAoCzB;IAED;;;;;;;;OAQG;IACG,2BAA2B,CAAC,EAAE,EAHzB,OAAO,6BAA6B,EAAE,OAGb,GAFvB,OAAO,CAAC,IAAI,CAAC,CAuCzB;IAED;;;;OAIG;IACG,uBAAuB,CAAC,EAAE,EAHrB,OAAO,6BAA6B,EAAE,OAGjB,GAFnB,OAAO,CAAC,IAAI,CAAC,CAuBzB;IAED;;;;OAIG;IACG,wBAAwB,CAAC,EAAE,EAHtB,OAAO,6BAA6B,EAAE,OAGhB,GAFpB,OAAO,CAAC,IAAI,CAAC,CAwBzB;IAED;;;;;OAKG;IACG,0BAA0B,CAAC,EAAE,EAHxB,OAAO,6BAA6B,EAAE,OAGd,GAFtB,OAAO,CAAC,IAAI,CAAC,CAqCzB;IAED;;;;;;OAMG;IACG,mCAAmC,CAAC,EAAE,EAHjC,OAAO,6BAA6B,EAAE,OAGL,GAF/B,OAAO,CAAC,IAAI,CAAC,CAmCzB;IAED;;;;OAIG;IACG,gCAAgC,CAAC,EAAE,EAH9B,OAAO,6BAA6B,EAAE,OAGR,GAF5B,OAAO,CAAC,IAAI,CAAC,CAqBzB;IAED;;;;;;OAMG;IACG,kBAAkB,CAAC,EAAE,EAHhB,OAAO,6BAA6B,EAAE,OAGtB,GAFd,OAAO,CAAC,IAAI,CAAC,CA2BzB;IAED;;;;OAIG;IACG,2BAA2B,CAAC,EAAE,EAHzB,OAAO,6BAA6B,EAAE,OAGb,GAFvB,OAAO,CAAC,IAAI,CAAC,CAsCzB;IAED;;;;;;;;;OASG;IACG,qBAAqB,CAAC,EAAE,EAHnB,OAAO,6BAA6B,EAAE,OAGnB,GAFjB,OAAO,CAAC,IAAI,CAAC,CA4CzB;IAED;;;;;OAKG;IACG,gBAAgB,CAAC,EAAE,EAJd,OAAO,6BAA6B,EAAE,OAIxB,EAAE,OAAO,EAHvB,MAGuB,GAFrB,OAAO,CAAC,IAAI,CAAC,CAczB;IAEK,gBAAgB,kBASrB;IAED;;;;;OAKG;IACG,cAAc,CAAC,EAAE,EAJZ,OAAO,6BAA6B,EAAE,OAI1B,EAAE,KAAK,EAHnB,MAGmB,GAFjB,OAAO,CAAC,OAAO,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAAC,CAcjE;IAED;;;;;OAKG;IACG,kBAAkB,CAAC,EAAE,EAJhB,OAAO,6BAA6B,EAAE,OAItB,EAAE,WAAW,EAH7B,MAG6B,GAF3B,OAAO,CAAC,OAAO,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAAC,CAcjE;IAED;;;;;;;OAOG;IACG,kBAAkB,CAAC,EAAE,EAJhB,OAAO,6BAA6B,EAAE,OAItB,EAAE,WAAW,EAH7B,MAG6B,GAF3B,OAAO,CAAC,MAAM,CAAC,CAiB3B;IAED;;;;;;OAMG;IACG,8BAA8B,CAAC,EAAE,EAJ5B,OAAO,6BAA6B,EAAE,OAIV,EAAE,WAAW,EAHzC,MAGyC,GAFvC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAmBlC;IAED;;;;;OAKG;IACG,uBAAuB,CAAC,EAAE,EAJrB,OAAO,6BAA6B,EAAE,OAIjB,EAAE,WAAW,EAHlC,MAGkC,GAFhC,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAiBlC;IAED;;;;;;;OAOG;IACG,4BAA4B,CAAC,EAAE,EAN1B,OAAO,6BAA6B,EAAE,OAMZ,EAAE,EAAC,WAAW,EAAE,aAAa,EAAC,EAJhE;QAAqB,WAAW,EAAxB,MAAM,CACd;QAAqB,aAAa,EAA1B,MAAM,CACd;KAEgE,GAFtD,OAAO,CAAC,IAAI,CAAC,CASzB;IAED;;;;OAIG;IACH,uBAAuB,CAAC,KAAK,EAHlB,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAGV,GAFhB,MAAM,CAUlB;IAED;;;;;;;OAOG;IACG,mBAAmB,CAAC,EAAE,EANjB,OAAO,6BAA6B,EAAE,OAMrB,EAAE,EAAC,qBAAqB,EAAE,WAAW,EAAC,EAJ/D;QAAsB,qBAAqB,EAAnC,OAAO,CACf;QAAqB,WAAW,EAAxB,MAAM,CACd;KAE+D,GAFrD,OAAO,CAAC,OAAO,YAAY,EAAE,kCAAkC,CAAC,CAuB5E;IAED;;;;;;;OAOG;IACG,yBAAyB,CAAC,EAAE,EANvB,OAAO,6BAA6B,EAAE,OAMf,EAAE,EAAC,KAAK,EAAE,WAAW,EAAC,EAJrD;QAAqB,KAAK,EAAlB,MAAM,CACd;QAAqB,WAAW,EAAxB,MAAM,CACd;KAEqD,GAF3C,OAAO,CAAC,IAAI,CAAC,CAOzB;IAED;;;;;OAKG;IACG,+BAA+B,CAAC,EAAE,EAJ7B,OAAO,6BAA6B,EAAE,OAIT,EAAE,GAAG,EAHlC,OAAO,YAAY,EAAE,gBAGa,GAFhC,OAAO,CAAC,IAAI,CAAC,CAMzB;IAED;;;;;;;;;OASG;IACG,aAAa,CAAC,EAAC,EAAE,EAAE,GAAG,EAAE,KAAK,EAAE,YAAY,EAAE,UAAU,EAAC,EAP3D;QAA4D,EAAE,EAAtD,OAAO,6BAA6B,EAAE,OAAO,CACrD;QAAoD,GAAG,EAA/C,OAAO,YAAY,EAAE,gBAAgB,CAC7C;QAA4C,KAAK,EAAzC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CACrC;QAAsB,YAAY,EAA1B,OAAO,CACf;QAA6D,UAAU,AAAvE,CACA,EADQ,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CACrD;KAE2D,GAFjD,OAAO,CAAC,OAAO,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAAC,CAsDjE;IAED;;;;;;;;;;OAUG;IACH,cAAc,CAAC,EAAC,cAAc,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,EAAC,EARtF;QAAqB,cAAc,EAA3B,MAAM,CACd;QAAsB,YAAY,EAA1B,OAAO,CACf;QAAqB,WAAW,EAAxB,MAAM,CACd;QAAqB,GAAG,EAAhB,MAAM,CACd;QAA4B,WAAW,EAA/B,MAAM,GAAG,IAAI,CACrB;QAAsB,WAAW,EAAzB,OAAO,CACf;KAEsF,GAF5E,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAsBzD;IAED;;;;;;;OAOG;IACH,2BAA2B,CAAC,EAAC,YAAY,EAAE,GAAG,EAAE,MAAM,EAAC,EALpD;QAAsB,YAAY,EAA1B,OAAO,CACf;QAAqB,GAAG,EAAhB,MAAM,CACd;QAA4D,MAAM,EAA1D,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CACrD;KAEoD,GAF1C,IAAI,CAIhB;IAED;;;;;;;;;OASG;IACH,yBAAyB,CAAC,EAAC,YAAY,EAAE,GAAG,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAC,EAP5E;QAAsB,YAAY,EAA1B,OAAO,CACf;QAAqB,GAAG,EAAhB,MAAM,CACd;QAA4B,WAAW,EAA/B,MAAM,GAAG,IAAI,CACrB;QAAsB,WAAW,EAAzB,OAAO,CACf;QAA4D,MAAM,EAA1D,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CACrD;KAE4E,GAFlE,IAAI,CAgBhB;IAED;;;;OAIG;IACH,gBAAgB,CAAC,GAAG,EAHT,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAGnC,GAFP,OAAO,YAAY,EAAE,gBAAgB,CAqCjD;IAED;;;;OAIG;IACH,eAAe,CAAC,OAAO,EAHZ,OAAO,YAAY,EAAE,oBAAoB,GAAG,SAGhC,GAFV,MAAM,CAIlB;IAED;;;;;;;;;OASG;IACH,mBAAmB,CAAC,OAAO,EAJhB,OAAO,YAAY,EAAE,oBAAoB,GAAG,SAI5B,EAAE,KAAK,EAHvB,MAGuB,GAFrB;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,OAAO,CAAA;KAAC,GAAG,IAAI,CAQ1F;IAED;;;;;;OAMG;IACG,8BAA8B,CAAC,EAAE,EAJ5B,OAAO,6BAA6B,EAAE,OAIV,EAAE,GAAG,EAHjC,OAAO,YAAY,EAAE,gBAGY,GAF/B,OAAO,CAAC,OAAO,YAAY,EAAE,gBAAgB,GAAG,IAAI,CAAC,CA4BjE;IAED;;;;OAIG;IACH,oBAAoB,CAAC,KAAK,EAHf,MAGe,GAFb,MAAM,GAAG,IAAI,CASzB;IAED;;;;;;;OAOG;IACG,0BAA0B,CAAC,EAAE,EAJxB,OAAO,6BAA6B,EAAE,OAId,EAAE,EAAC,cAAc,EAAE,cAAc,EAAC,EAH1D;QAAC,cAAc,EAAE,MAAM,CAAC;QAAC,cAAc,EAAE,MAAM,CAAA;KAGW,GAFxD,OAAO,CAAC,IAAI,CAAC,CA0BzB;IAED;;;;OAIG;IACG,uBAAuB,CAAC,EAAE,EAHrB,OAAO,6BAA6B,EAAE,OAGjB,GAFnB,OAAO,CAAC,IAAI,CAAC,CASzB;IAED;;;;OAIG;IACG,wBAAwB,CAAC,EAAE,EAHtB,OAAO,6BAA6B,EAAE,OAGhB,GAFpB,OAAO,CAAC,IAAI,CAAC,CAuBzB;IAED;;;;OAIG;IACG,2BAA2B,CAAC,EAAE,EAHzB,OAAO,6BAA6B,EAAE,OAGb,GAFvB,OAAO,CAAC,IAAI,CAAC,CA4BzB;IAED;;;;OAIG;IACG,kCAAkC,CAAC,EAAE,EAHhC,OAAO,6BAA6B,EAAE,OAGN,GAF9B,OAAO,CAAC,IAAI,CAAC,CA6BzB;IAED;;;;OAIG;IACG,yBAAyB,CAAC,EAAE,EAHvB,OAAO,6BAA6B,EAAE,OAGf,GAFrB,OAAO,CAAC,IAAI,CAAC,CAsBzB;IAED;;;;;;OAMG;IACG,iBAAiB,CAAC,EAAE,EAJf,OAAO,6BAA6B,EAAE,OAIvB,EAAE,eAAe,EAHhC,MAAM,CAAC,MAAM,EAAE,MAAM,CAGW,GAF9B,OAAO,CAAC,IAAI,CAAC,CA8BzB;IAED;;;;;;OAMG;IACG,uBAAuB,CAAC,EAAE,EALrB,OAAO,6BAA6B,EAAE,OAKjB,EAAE,SAAS,EAJhC,MAIgC,EAAE,SAAS,EAH3C,MAG2C,GAFzC,OAAO,CAAC,IAAI,CAAC,CAiBzB;IAED;;;;OAIG;IACG,cAAc,CAAC,EAAE,EAHZ,OAAO,6BAA6B,EAAE,OAG1B,GAFV,OAAO,CAAC,MAAM,CAAC,CAW3B;IAED;;;;OAIG;IACG,kBAAkB,CAAC,EAAE,EAHhB,OAAO,6BAA6B,EAAE,OAGtB,GAFd,OAAO,CAAC,IAAI,CAAC,CAOzB;IAED;;;OAGG;IACH,kBAAkB,IAFL,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAIlC;IAED;;;;OAIG;IACH,aAAa,CAAC,IAAI,EAHP,OAAO,YAAY,EAAE,gBAAgB,EAG9B,GAFL,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAYlC;IAED;;;;OAIG;IACG,gCAAgC,CAAC,EAAE,EAH9B,OAAO,6BAA6B,EAAE,OAGR,GAF5B,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAC,CAAC,CAoBtF;IAED;;;;;;;OAOG;IACG,qBAAqB,CAAC,EAAE,EANnB,OAAO,6BAA6B,EAAE,OAMnB,EAAE,EAAC,cAAc,EAAE,cAAc,EAAC,EAJ7D;QAA4B,cAAc,EAAlC,MAAM,CACd;QAA4B,cAAc,EAAlC,MAAM,CACd;KAE6D,GAFnD,OAAO,CAAC,IAAI,CAAC,CAgBzB;IAED;;;;;;;;;;;;;;OAcG;IACG,mBAAmB,CAAC,EAAE,EAJjB,OAAO,6BAA6B,EAAE,OAIrB,EAAE,cAAc,EAHjC,MAAM,GAAG,IAGwB,GAF/B,OAAO,CAAC,IAAI,CAAC,CAOzB;IAED;;;;;OAKG;IACG,mBAAmB,CAAC,EAAE,EAJjB,OAAO,6BAA6B,EAAE,OAIrB,EAAE,cAAc,EAHjC,MAGiC,GAF/B,OAAO,CAAC,OAAO,CAAC,CAO5B;IAED;;;;;OAKG;IACG,mBAAmB,CAAC,EAAE,EAJjB,OAAO,6BAA6B,EAAE,OAIrB,EAAE,IAAI,EAHvB,OAAO,6BAA6B,EAAE,iBAGf,GAFrB,OAAO,CAAC,MAAM,CAAC,CAI3B;IAED;;;;;OAKG;IACG,mBAAmB,CAAC,EAAE,EAJjB,OAAO,6BAA6B,EAAE,OAIrB,EAAE,cAAc,EAHjC,MAAM,GAAG,IAGwB,GAF/B,OAAO,CAAC,IAAI,CAAC,CAOzB;IAED;;;;;OAKG;IACG,qBAAqB,CAAC,EAAE,EAJnB,OAAO,6BAA6B,EAAE,OAInB,EAAE,EAAC,iBAAyB,EAAC,AAHxD,CACA,EADQ;QAAC,iBAAiB,CAAC,EAAE,OAAO,CAAA;KAGyB,GAFnD,OAAO,CAAC,OAAO,YAAY,EAAE,sCAAsC,CAAC,CAgEhF;IAED;;;;;;OAMG;IACG,wBAAwB,CAAC,EAAE,EAJtB,OAAO,6BAA6B,EAAE,OAIhB,EAAE,cAAc,EAHtC,MAGsC,GAFpC,OAAO,CAAC,OAAO,YAAY,EAAE,8BAA8B,GAAG,IAAI,CAAC,CAmC/E;IAED;;;;;OAKG;IACH,0BAA0B,CAAC,KAAK,EAJrB,MAAM,GAAG,MAIY,EAAE,cAAc,EAHrC,MAGqC,GAFnC,MAAM,CAUlB;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,0BAA0B,CAAC,EAAE,EAHxB,OAAO,6BAA6B,EAAE,OAGd,GAFtB,OAAO,CAAC,IAAI,CAAC,CAgDzB;IAED;;;;OAIG;IACH,gBAAgB,CAAC,KAAK,EAHX,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAGjB,GAFT,MAAM,GAAG,IAAI,CAUzB;IAED;;;;OAIG;IACH,uBAAuB,CAAC,OAAO,AAH5B,CACA,EADQ,OAAO,YAAY,EAAE,oBAGD,GAFlB,OAAO,YAAY,EAAE,0BAA0B,CAI3D;IAED;;;;OAIG;IACH,2BAA2B,CAAC,aAAa,EAH9B,MAG8B,GAF5B,OAAO,YAAY,EAAE,0BAA0B,CAQ3D;IAED;;;;;;;;OAQG;IACH,mBAAmB,CAAC,EAAC,EAAE,EAAE,aAAa,EAAE,KAAK,EAAC,EAL3C;QAA4D,EAAE,EAAtD,OAAO,6BAA6B,EAAE,OAAO,CACrD;QAAkH,aAAa,EAAvH,OAAO,YAAY,EAAE,0BAA0B,GAAG,OAAO,YAAY,EAAE,0BAA0B,EAAE,CAC3G;QAA2D,KAAK,EAAxD,OAAO,4BAA4B,EAAE,OAAO,CACpD;KAE2C,GAFjC,OAAO,4BAA4B,EAAE,OAAO,CAQxD;IAED;;;;OAIG;IACH,UAAU,CAAC,KAAK,EAHL,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAGvB,GAFH,KAAK,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAchD;IAED;;;;;OAKG;IACG,OAAO,CAJA,CAAC,EAIA,QAAQ,EAHX,CAAC,EAAE,EAAE,OAAO,6BAA6B,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAGrD,GAFT,OAAO,CAAC,CAAC,CAAC,CAgBtB;IAED;;;;;;OAMG;IACG,kBAAkB,CALX,CAAC,EAKW,EAAE,EAJhB,OAAO,6BAA6B,EAAE,OAItB,EAAE,QAAQ,EAH1B,MAAM,OAAO,CAAC,CAAC,CAGW,GAFxB,OAAO,CAAC,CAAC,CAAC,CAYtB;IAED;;;;;;;;;OASG;IACG,wBAAwB,CALjB,CAAC,EAKiB,QAAQ,EAJ5B,CAAC,EAAE,EAAE,OAAO,6BAA6B,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAIpC,EAAE,OAAO,AAH7C,CACA,EADQ,4CAG0C,GAFxC,OAAO,CAAC,CAAC,CAAC,CAQtB;IAED;;;;;;OAMG;IACG,8BAA8B,CALvB,CAAC,EAKuB,QAAQ,EAJlC,CAAC,EAAE,EAAE,OAAO,6BAA6B,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAI9B,EAAE,OAAO,AAHnD,CACA,EADQ,4CAGgD,GAF9C,OAAO,CAAC,CAAC,CAAC,CAOtB;IAED;;;;;;;;OAQG;IACG,6BAA6B,CALtB,CAAC,EAKsB,QAAQ,EAJjC,CAAC,EAAE,EAAE,OAAO,6BAA6B,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAI/B,EAAE,OAAO,AAHlD,CACA,EADQ,4CAG+C,GAF7C,OAAO,CAAC,CAAC,CAAC,CAmCtB;IAED;;;;;;;;OAQG;IACH,mBAAmB,CAAC,EAAC,GAAG,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAC,EAN1D;QAAoD,GAAG,EAA/C,OAAO,YAAY,EAAE,gBAAgB,CAC7C;QAAwC,SAAS,EAAzC,MAAM,GAAG,IAAI,GAAG,SAAS,CACjC;QAAwC,QAAQ,EAAxC,MAAM,GAAG,IAAI,GAAG,SAAS,CACjC;QAAwC,aAAa,EAA7C,MAAM,GAAG,IAAI,GAAG,SAAS,CACjC;KAE0D,GAFhD,OAAO,CAQnB;IAED;;;;OAIG;IACH,wBAAwB,CAAC,GAAG,EAHjB,OAAO,YAAY,EAAE,gBAGJ,GAFf,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAIzC;IAED;;;;;;OAMG;IACH,uBAAuB,CAAC,EAAC,SAAS,EAAE,GAAG,EAAC,EAJrC;QAAwC,SAAS,EAAzC,MAAM,GAAG,IAAI,GAAG,SAAS,CACjC;QAAoD,GAAG,EAA/C,OAAO,YAAY,EAAE,gBAAgB,CAC7C;KAEqC,GAF3B,OAAO,CAMnB;IAED;;;;;;OAMG;IACH,oBAAoB,CAAC,EAAC,GAAG,EAAE,QAAQ,EAAC,EAJjC;QAAoD,GAAG,EAA/C,OAAO,YAAY,EAAE,gBAAgB,CAC7C;QAAwC,QAAQ,EAAxC,MAAM,GAAG,IAAI,GAAG,SAAS,CACjC;KAEiC,GAFvB,OAAO,CAOnB;IAED;;;;;;OAMG;IACH,qBAAqB,CAAC,EAAC,aAAa,EAAE,GAAG,EAAC,EAJvC;QAAwC,aAAa,EAA7C,MAAM,GAAG,IAAI,GAAG,SAAS,CACjC;QAAoD,GAAG,EAA/C,OAAO,YAAY,EAAE,gBAAgB,CAC7C;KAEuC,GAF7B,OAAO,CAOnB;IAED;;;;OAIG;IACH,aAAa,CAAC,OAAO,AAHlB,CACA,EADQ,MAG8B,GAF5B,MAAM,CAIlB;CACF"}
|