velocious 1.0.627 → 1.0.629

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.
Files changed (48) hide show
  1. package/README.md +2 -2
  2. package/build/background-jobs/adapter.js +16 -0
  3. package/build/background-jobs/job-runner.js +9 -1
  4. package/build/background-jobs/local-dispatcher.js +23 -1
  5. package/build/background-jobs/main.js +225 -26
  6. package/build/background-jobs/perform-job.js +10 -1
  7. package/build/background-jobs/platform-job.js +62 -0
  8. package/build/background-jobs/runtime.js +6 -3
  9. package/build/background-jobs/store.js +128 -19
  10. package/build/background-jobs/types.js +15 -0
  11. package/build/background-jobs/worker.js +3 -1
  12. package/build/src/background-jobs/adapter.d.ts +17 -0
  13. package/build/src/background-jobs/adapter.d.ts.map +1 -1
  14. package/build/src/background-jobs/adapter.js +15 -1
  15. package/build/src/background-jobs/job-runner.d.ts.map +1 -1
  16. package/build/src/background-jobs/job-runner.js +10 -2
  17. package/build/src/background-jobs/local-dispatcher.d.ts.map +1 -1
  18. package/build/src/background-jobs/local-dispatcher.js +24 -2
  19. package/build/src/background-jobs/main.d.ts +71 -1
  20. package/build/src/background-jobs/main.d.ts.map +1 -1
  21. package/build/src/background-jobs/main.js +217 -28
  22. package/build/src/background-jobs/perform-job.d.ts +5 -1
  23. package/build/src/background-jobs/perform-job.d.ts.map +1 -1
  24. package/build/src/background-jobs/perform-job.js +11 -2
  25. package/build/src/background-jobs/platform-job.d.ts +34 -0
  26. package/build/src/background-jobs/platform-job.d.ts.map +1 -1
  27. package/build/src/background-jobs/platform-job.js +56 -1
  28. package/build/src/background-jobs/runtime.d.ts.map +1 -1
  29. package/build/src/background-jobs/runtime.js +7 -4
  30. package/build/src/background-jobs/store.d.ts +44 -0
  31. package/build/src/background-jobs/store.d.ts.map +1 -1
  32. package/build/src/background-jobs/store.js +117 -19
  33. package/build/src/background-jobs/types.d.ts +55 -0
  34. package/build/src/background-jobs/types.d.ts.map +1 -1
  35. package/build/src/background-jobs/types.js +16 -1
  36. package/build/src/background-jobs/worker.d.ts.map +1 -1
  37. package/build/src/background-jobs/worker.js +4 -2
  38. package/package.json +1 -1
  39. package/src/background-jobs/adapter.js +16 -0
  40. package/src/background-jobs/job-runner.js +9 -1
  41. package/src/background-jobs/local-dispatcher.js +23 -1
  42. package/src/background-jobs/main.js +225 -26
  43. package/src/background-jobs/perform-job.js +10 -1
  44. package/src/background-jobs/platform-job.js +62 -0
  45. package/src/background-jobs/runtime.js +6 -3
  46. package/src/background-jobs/store.js +128 -19
  47. package/src/background-jobs/types.js +15 -0
  48. package/src/background-jobs/worker.js +3 -1
@@ -43,6 +43,13 @@ import {
43
43
  * @property {number | null} timeoutMs - Per-job timeout override, or null when omitted.
44
44
  */
45
45
 
46
+ /**
47
+ * BackgroundJobOrphanSelection type.
48
+ * @typedef {object} BackgroundJobOrphanSelection
49
+ * @property {Record<string, ReturnType<typeof JSON.parse>>} conditions - Exact update fence.
50
+ * @property {import("./types.js").BackgroundJobRow} job - Selected active handoff.
51
+ */
52
+
46
53
  /**
47
54
  * BackgroundJobTransactionSerializationOptions type.
48
55
  * @typedef {object} BackgroundJobTransactionSerializationOptions
@@ -1096,6 +1103,81 @@ export default class BackgroundJobsStore extends BackgroundJobsAdapter {
1096
1103
  return handoffs
1097
1104
  }
1098
1105
 
1106
+ /**
1107
+ * Snapshots exact, lease-aware active handoffs before a new main generation
1108
+ * starts accepting worker reconnects. Legacy rows without a complete worker,
1109
+ * lease, and timestamp identity stay owned by the age-based orphan sweep.
1110
+ * @returns {Promise<import("./types.js").BackgroundJobHandoffSnapshot[]>} - Exact startup handoffs.
1111
+ */
1112
+ async snapshotHandedOffJobs() {
1113
+ await this.ensureReady()
1114
+
1115
+ const rows = await this._withDb(async (db) => await db
1116
+ .newQuery()
1117
+ .from(JOBS_TABLE)
1118
+ .where({status: "handed_off"})
1119
+ .order("created_at_ms ASC")
1120
+ .order("id ASC")
1121
+ .results())
1122
+ /** @type {import("./types.js").BackgroundJobHandoffSnapshot[]} */
1123
+ const handoffs = []
1124
+
1125
+ for (const row of rows) {
1126
+ const job = this._normalizeJobRow(row)
1127
+
1128
+ if (!job.handoffId || !job.workerId || typeof job.handedOffAtMs !== "number") continue
1129
+
1130
+ handoffs.push({
1131
+ handedOffAtMs: job.handedOffAtMs,
1132
+ handoffId: job.handoffId,
1133
+ jobId: job.id,
1134
+ workerId: job.workerId
1135
+ })
1136
+ }
1137
+
1138
+ return handoffs
1139
+ }
1140
+
1141
+ /**
1142
+ * Reclaims only unchanged exact handoffs selected by a main-generation startup
1143
+ * snapshot. The ordinary orphan failure path owns retries, terminal status,
1144
+ * count transitions, schedule ownership, and concurrency release.
1145
+ * @param {object} args - Options.
1146
+ * @param {import("./types.js").BackgroundJobHandoffSnapshot[]} args.handoffs - Exact startup snapshots.
1147
+ * @param {ReturnType<typeof JSON.parse>} args.error - Orphan reason.
1148
+ * @returns {Promise<import("./types.js").BackgroundJobRow[]>} - Accepted transitions.
1149
+ */
1150
+ async markOrphanedHandoffs({handoffs, error}) {
1151
+ await this.ensureReady()
1152
+
1153
+ return await this._serializedCountMutation(async (db) => {
1154
+ /** @type {BackgroundJobOrphanSelection[]} */
1155
+ const selections = []
1156
+
1157
+ for (const handoff of handoffs) {
1158
+ const job = await this._getJobRowById(db, handoff.jobId)
1159
+
1160
+ if (!job || job.status !== "handed_off") continue
1161
+ if (job.handoffId !== handoff.handoffId) continue
1162
+ if (job.workerId !== handoff.workerId) continue
1163
+ if (job.handedOffAtMs !== handoff.handedOffAtMs) continue
1164
+
1165
+ selections.push({
1166
+ conditions: {
1167
+ handed_off_at_ms: handoff.handedOffAtMs,
1168
+ handoff_id: handoff.handoffId,
1169
+ id: handoff.jobId,
1170
+ status: "handed_off",
1171
+ worker_id: handoff.workerId
1172
+ },
1173
+ job
1174
+ })
1175
+ }
1176
+
1177
+ return await this._markOrphanSelections({db, error, selections})
1178
+ })
1179
+ }
1180
+
1099
1181
  /**
1100
1182
  * Runs mark failed.
1101
1183
  * @param {object} args - Options.
@@ -1141,8 +1223,8 @@ export default class BackgroundJobsStore extends BackgroundJobsAdapter {
1141
1223
 
1142
1224
  const rows = await query.results()
1143
1225
 
1144
- /** @type {import("./types.js").BackgroundJobRow[]} */
1145
- const orphanedJobs = []
1226
+ /** @type {BackgroundJobOrphanSelection[]} */
1227
+ const selections = []
1146
1228
 
1147
1229
  for (const row of rows) {
1148
1230
  const job = this._normalizeJobRow(row)
@@ -1160,28 +1242,55 @@ export default class BackgroundJobsStore extends BackgroundJobsAdapter {
1160
1242
  // wrongly release the concurrency reservation of — that new lease.
1161
1243
  // `handed_off_at_ms` is always set on a handed-off row (and the SELECT
1162
1244
  // required it `<= cutoff`), so it is a reliable null-safe lease pin.
1163
- const orphanedJob = await this._applyFailure({
1164
- db,
1165
- job,
1166
- error: "Job orphaned after timeout",
1167
- markOrphaned: true,
1168
- conditions: {id: job.id, status: "handed_off", handed_off_at_ms: job.handedOffAtMs}
1245
+ selections.push({
1246
+ conditions: {id: job.id, status: "handed_off", handed_off_at_ms: job.handedOffAtMs},
1247
+ job
1169
1248
  })
1170
-
1171
- if (orphanedJob) orphanedJobs.push(orphanedJob)
1172
1249
  }
1173
1250
 
1174
- const statusCounts = this._statusCounts(orphanedJobs)
1175
- const deltas = this._emptyCountBuckets()
1251
+ return await this._markOrphanSelections({
1252
+ db,
1253
+ error: "Job orphaned after timeout",
1254
+ selections
1255
+ })
1256
+ })
1257
+ }
1258
+
1259
+ /**
1260
+ * Applies the common fenced orphan transition and records one aggregate count
1261
+ * delta for the accepted rows.
1262
+ * @param {object} args - Options.
1263
+ * @param {import("../database/drivers/base.js").default} args.db - Transaction connection.
1264
+ * @param {ReturnType<typeof JSON.parse>} args.error - Orphan reason.
1265
+ * @param {BackgroundJobOrphanSelection[]} args.selections - Selected handoffs and exact fences.
1266
+ * @returns {Promise<import("./types.js").BackgroundJobRow[]>} - Accepted transitions.
1267
+ */
1268
+ async _markOrphanSelections({db, error, selections}) {
1269
+ /** @type {import("./types.js").BackgroundJobRow[]} */
1270
+ const orphanedJobs = []
1271
+
1272
+ for (const {conditions, job} of selections) {
1273
+ const orphanedJob = await this._applyFailure({
1274
+ conditions,
1275
+ db,
1276
+ error,
1277
+ job,
1278
+ markOrphaned: true
1279
+ })
1176
1280
 
1177
- for (const [status, count] of Object.entries(statusCounts)) {
1178
- deltas.handed_off -= count
1179
- deltas[status] += count
1180
- }
1181
- await this._recordCountDelta(db, deltas)
1281
+ if (orphanedJob) orphanedJobs.push(orphanedJob)
1282
+ }
1182
1283
 
1183
- return orphanedJobs
1184
- })
1284
+ const statusCounts = this._statusCounts(orphanedJobs)
1285
+ const deltas = this._emptyCountBuckets()
1286
+
1287
+ for (const [status, count] of Object.entries(statusCounts)) {
1288
+ deltas.handed_off -= count
1289
+ deltas[status] += count
1290
+ }
1291
+ await this._recordCountDelta(db, deltas)
1292
+
1293
+ return orphanedJobs
1185
1294
  }
1186
1295
 
1187
1296
  /**
@@ -43,6 +43,13 @@
43
43
  * @property {string} handoffId - Unique handoff lease id.
44
44
  * @property {number} handedOffAtMs - Time handed to a worker in ms.
45
45
  */
46
+ /**
47
+ * @typedef {object} BackgroundJobHandoffSnapshot
48
+ * @property {string} jobId - Job holding the lease.
49
+ * @property {string} handoffId - Exact durable lease id.
50
+ * @property {string} workerId - Stable worker id that received the lease.
51
+ * @property {number} handedOffAtMs - Time handed to the worker in ms.
52
+ */
46
53
  /**
47
54
  * @typedef {object} BackgroundJobHandoffRequest
48
55
  * @property {string} jobId - Job to claim.
@@ -71,6 +78,14 @@
71
78
  * @property {number} [handedOffAtMs] - Time handed to a worker in ms.
72
79
  * @property {BackgroundJobOptions} [options] - Runtime options.
73
80
  */
81
+ /**
82
+ * @typedef {object} BackgroundJobContext
83
+ * @property {typeof import("./platform-job.js").default} jobClass - Concrete job class.
84
+ * @property {string} jobName - Registered job name.
85
+ * @property {Array<ReturnType<typeof JSON.parse>>} args - Serialized job arguments.
86
+ * @property {BackgroundJobOptions} options - Resolved enqueue/runtime options.
87
+ * @property {BackgroundJobPayload} [payload] - Complete persisted runner payload when the job is performing.
88
+ */
74
89
  /**
75
90
  * @typedef {object} BackgroundJobRow
76
91
  * @property {string} id - Job id.
@@ -1054,7 +1054,9 @@ export default class BackgroundJobsWorker {
1054
1054
  configuration,
1055
1055
  JobClass,
1056
1056
  jobArgs: payload.args || [],
1057
- name: `Background job worker inline: ${payload.jobName}`
1057
+ jobOptions: payload.options || {},
1058
+ name: `Background job worker inline: ${payload.jobName}`,
1059
+ payload
1058
1060
  })
1059
1061
  }
1060
1062
 
@@ -130,6 +130,23 @@ export default class BackgroundJobsAdapter {
130
130
  jobId: string;
131
131
  handoffId: string;
132
132
  }>>;
133
+ /**
134
+ * Snapshots exact active handoffs before a new main generation accepts worker
135
+ * reconnects. Adapters that do not persist worker leases may return none.
136
+ * @returns {Promise<import("./types.js").BackgroundJobHandoffSnapshot[]>} - Exact active handoffs.
137
+ */
138
+ snapshotHandedOffJobs(): Promise<import("./types.js").BackgroundJobHandoffSnapshot[]>;
139
+ /**
140
+ * Applies orphan failure semantics to unchanged exact handoff snapshots.
141
+ * Adapters that return startup snapshots must implement the matching fenced
142
+ * transition.
143
+ * @param {{handoffs: import("./types.js").BackgroundJobHandoffSnapshot[], error: ReturnType<typeof JSON.parse>}} _args - Exact leases and orphan reason.
144
+ * @returns {Promise<import("./types.js").BackgroundJobRow[]>} - Accepted transitions.
145
+ */
146
+ markOrphanedHandoffs(_args: {
147
+ handoffs: import("./types.js").BackgroundJobHandoffSnapshot[];
148
+ error: ReturnType<typeof JSON.parse>;
149
+ }): Promise<import("./types.js").BackgroundJobRow[]>;
133
150
  /**
134
151
  * Marks a handed-off job failed or retryable.
135
152
  * @param {{jobId: string, error: ReturnType<typeof JSON.parse>, handoffId?: string, workerId?: string, handedOffAtMs?: number}} _args - Failure report.
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/background-jobs/adapter.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../../src/background-jobs/adapter.js"],"names":[],"mappings":"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"}
@@ -101,6 +101,20 @@ export default class BackgroundJobsAdapter {
101
101
  * @returns {Promise<Array<{jobId: string, handoffId: string}>>} - Active worker handoffs.
102
102
  */
103
103
  async handedOffJobsForWorker(_args) { throw new Error("BackgroundJobsAdapter#handedOffJobsForWorker is not implemented"); }
104
+ /**
105
+ * Snapshots exact active handoffs before a new main generation accepts worker
106
+ * reconnects. Adapters that do not persist worker leases may return none.
107
+ * @returns {Promise<import("./types.js").BackgroundJobHandoffSnapshot[]>} - Exact active handoffs.
108
+ */
109
+ async snapshotHandedOffJobs() { return []; }
110
+ /**
111
+ * Applies orphan failure semantics to unchanged exact handoff snapshots.
112
+ * Adapters that return startup snapshots must implement the matching fenced
113
+ * transition.
114
+ * @param {{handoffs: import("./types.js").BackgroundJobHandoffSnapshot[], error: ReturnType<typeof JSON.parse>}} _args - Exact leases and orphan reason.
115
+ * @returns {Promise<import("./types.js").BackgroundJobRow[]>} - Accepted transitions.
116
+ */
117
+ async markOrphanedHandoffs(_args) { return []; }
104
118
  /**
105
119
  * Marks a handed-off job failed or retryable.
106
120
  * @param {{jobId: string, error: ReturnType<typeof JSON.parse>, handoffId?: string, workerId?: string, handedOffAtMs?: number}} _args - Failure report.
@@ -120,4 +134,4 @@ export default class BackgroundJobsAdapter {
120
134
  */
121
135
  async pruneTerminalJobs(_args = {}) { throw new Error("BackgroundJobsAdapter#pruneTerminalJobs is not implemented"); }
122
136
  }
123
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYWNrZ3JvdW5kLWpvYnMvYWRhcHRlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVo7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8scUJBQXFCO0lBQ3hDOzs7T0FHRztJQUNILEtBQUssQ0FBQyxXQUFXLEtBQUssTUFBTSxJQUFJLEtBQUssQ0FBQyxzREFBc0QsQ0FBQyxDQUFBLENBQUMsQ0FBQztJQUUvRjs7O09BR0c7SUFDSCxLQUFLLENBQUMsS0FBSyxLQUFJLENBQUM7SUFFaEI7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLE1BQU07UUFDVixPQUFPLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBQyxDQUFBO0lBQ3RCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLElBQUcsQ0FBQztJQUVyQzs7O09BR0c7SUFDSCxLQUFLLENBQUMseUJBQXlCLEtBQUssTUFBTSxJQUFJLEtBQUssQ0FBQyxvRUFBb0UsQ0FBQyxDQUFBLENBQUMsQ0FBQztJQUUzSDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksTUFBTSxJQUFJLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFBLENBQUMsQ0FBQztJQUU1Rjs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEtBQUssSUFBSSxNQUFNLElBQUksS0FBSyxDQUFDLDJEQUEyRCxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBRTlHOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsZUFBZSxDQUFDLFlBQVksSUFBSSxNQUFNLElBQUksS0FBSyxDQUFDLDBEQUEwRCxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBRW5IOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxHQUFHLEVBQUUsSUFBSSxNQUFNLElBQUksS0FBSyxDQUFDLDJEQUEyRCxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBRW5IOzs7T0FHRztJQUNILEtBQUssQ0FBQyxnQkFBZ0IsS0FBSyxNQUFNLElBQUksS0FBSyxDQUFDLDJEQUEyRCxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBRXpHOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxNQUFNLElBQUksS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBRTNGOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxJQUFJLE1BQU0sSUFBSSxLQUFLLENBQUMsd0RBQXdELENBQUMsQ0FBQSxDQUFDLENBQUM7SUFFeEc7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxJQUFJLE1BQU0sSUFBSSxLQUFLLENBQUMsd0RBQXdELENBQUMsQ0FBQSxDQUFDLENBQUM7SUFFeEc7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxlQUFlLENBQUMsS0FBSyxJQUFJLE1BQU0sSUFBSSxLQUFLLENBQUMsMERBQTBELENBQUMsQ0FBQSxDQUFDLENBQUM7SUFFNUc7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLElBQUksTUFBTSxJQUFJLEtBQUssQ0FBQyw4REFBOEQsQ0FBQyxDQUFBLENBQUMsQ0FBQztJQUVwSDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLHNCQUFzQixDQUFDLEtBQUssSUFBSSxNQUFNLElBQUksS0FBSyxDQUFDLGlFQUFpRSxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBRTFIOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssSUFBSSxNQUFNLElBQUksS0FBSyxDQUFDLHFEQUFxRCxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBRWxHOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxHQUFHLEVBQUUsSUFBSSxNQUFNLElBQUksS0FBSyxDQUFDLDJEQUEyRCxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBRW5IOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsaUJBQWlCLENBQUMsS0FBSyxHQUFHLEVBQUUsSUFBSSxNQUFNLElBQUksS0FBSyxDQUFDLDREQUE0RCxDQUFDLENBQUEsQ0FBQyxDQUFDO0NBQ3RIIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbi8qKlxuICogUGxhdGZvcm0tbmV1dHJhbCBwZXJzaXN0ZW5jZSBhbmQgbGlmZWN5Y2xlIGNvbnRyYWN0IHVzZWQgYnkgdGhlIGJhY2tncm91bmQtam9ic1xuICogcnVudGltZS4gQWRhcHRlcnMgb3duIGR1cmFibGUgcXVldWUgc3RhdGU7IHRyYW5zcG9ydCBhbmQgam9iIGV4ZWN1dGlvbiByZW1haW5cbiAqIHNlcGFyYXRlIGNvbmNlcm5zLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCYWNrZ3JvdW5kSm9ic0FkYXB0ZXIge1xuICAvKipcbiAgICogRW5zdXJlcyB0aGUgYWRhcHRlciBjYW4gYWNjZXB0IHdvcmsuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gcmVhZHkuXG4gICAqL1xuICBhc3luYyBlbnN1cmVSZWFkeSgpIHsgdGhyb3cgbmV3IEVycm9yKFwiQmFja2dyb3VuZEpvYnNBZGFwdGVyI2Vuc3VyZVJlYWR5IGlzIG5vdCBpbXBsZW1lbnRlZFwiKSB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyBhZGFwdGVyLW93bmVkIHJlc291cmNlcy5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgYWZ0ZXIgY2xvc2UuXG4gICAqL1xuICBhc3luYyBjbG9zZSgpIHt9XG5cbiAgLyoqXG4gICAqIFJlcG9ydHMgYWRhcHRlciBoZWFsdGguXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGltcG9ydChcIi4vdHlwZXMuanNcIikuQmFja2dyb3VuZEpvYnNIZWFsdGg+fSAtIEFkYXB0ZXIgaGVhbHRoLlxuICAgKi9cbiAgYXN5bmMgaGVhbHRoKCkge1xuICAgIHJldHVybiB7cmVhZHk6IHRydWV9XG4gIH1cblxuICAvKipcbiAgICogRW5zdXJlcyBmcmFtZXdvcmstb3duZWQgcGVyc2lzdGVuY2UgZHVyaW5nIGEgbWlncmF0aW9uIGxpZmVjeWNsZS4gTm9uLVNRTFxuICAgKiBhZGFwdGVycyBtYXkgbGVhdmUgdGhpcyBhcyBhIG5vLW9wLlxuICAgKiBAcGFyYW0ge3tkYnM6IFJlY29yZDxzdHJpbmcsIGltcG9ydChcIi4uL2RhdGFiYXNlL2RyaXZlcnMvYmFzZS5qc1wiKS5kZWZhdWx0Pn19IF9hcmdzIC0gTWlncmF0ZWQgZGF0YWJhc2VzLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGNvbXBsZXRlLlxuICAgKi9cbiAgYXN5bmMgZW5zdXJlRnJhbWV3b3JrU2NoZW1hKF9hcmdzKSB7fVxuXG4gIC8qKlxuICAgKiBSZWNvbmNpbGVzIGNvbmZpZ3VyZWQgcXVldWUgbGltaXRzLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyBhZnRlciByZWNvbmNpbGlhdGlvbi5cbiAgICovXG4gIGFzeW5jIHJlY29uY2lsZVF1ZXVlQ29uY3VycmVuY3koKSB7IHRocm93IG5ldyBFcnJvcihcIkJhY2tncm91bmRKb2JzQWRhcHRlciNyZWNvbmNpbGVRdWV1ZUNvbmN1cnJlbmN5IGlzIG5vdCBpbXBsZW1lbnRlZFwiKSB9XG5cbiAgLyoqXG4gICAqIEVucXVldWVzIGEgam9iLlxuICAgKiBAcGFyYW0ge3tqb2JOYW1lOiBzdHJpbmcsIGFyZ3M6IEFycmF5PFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+Piwgb3B0aW9ucz86IGltcG9ydChcIi4vdHlwZXMuanNcIikuQmFja2dyb3VuZEpvYk9wdGlvbnN9fSBfYXJncyAtIEpvYiByZXF1ZXN0LlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmc+fSAtIEpvYiBpZC5cbiAgICovXG4gIGFzeW5jIGVucXVldWUoX2FyZ3MpIHsgdGhyb3cgbmV3IEVycm9yKFwiQmFja2dyb3VuZEpvYnNBZGFwdGVyI2VucXVldWUgaXMgbm90IGltcGxlbWVudGVkXCIpIH1cblxuICAvKipcbiAgICogUmVwbGFjZXMgdGhlIG93bmVyIG9mIGEgc3RhYmxlIHNjaGVkdWxlIGtleS5cbiAgICogQHBhcmFtIHt7c2NoZWR1bGVLZXk6IHN0cmluZywgam9iTmFtZTogc3RyaW5nLCBhcmdzOiBBcnJheTxSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPj4sIG9wdGlvbnM/OiBpbXBvcnQoXCIuL3R5cGVzLmpzXCIpLkJhY2tncm91bmRKb2JPcHRpb25zfX0gX2FyZ3MgLSBSZXBsYWNlbWVudCByZXF1ZXN0LlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxpbXBvcnQoXCIuL3R5cGVzLmpzXCIpLkJhY2tncm91bmRKb2JSZXBsYWNlbWVudFJlc3VsdD59IC0gUmVwbGFjZW1lbnQgcmVzdWx0LlxuICAgKi9cbiAgYXN5bmMgcmVwbGFjZVNjaGVkdWxlZChfYXJncykgeyB0aHJvdyBuZXcgRXJyb3IoXCJCYWNrZ3JvdW5kSm9ic0FkYXB0ZXIjcmVwbGFjZVNjaGVkdWxlZCBpcyBub3QgaW1wbGVtZW50ZWRcIikgfVxuXG4gIC8qKlxuICAgKiBDYW5jZWxzIHRoZSBvd25lciBvZiBhIHN0YWJsZSBzY2hlZHVsZSBrZXkuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBfc2NoZWR1bGVLZXkgLSBTdGFibGUgc2NoZWR1bGUga2V5LlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxpbXBvcnQoXCIuL3R5cGVzLmpzXCIpLkJhY2tncm91bmRKb2JDYW5jZWxsYXRpb25SZXN1bHQ+fSAtIENhbmNlbGxhdGlvbiByZXN1bHQuXG4gICAqL1xuICBhc3luYyBjYW5jZWxTY2hlZHVsZWQoX3NjaGVkdWxlS2V5KSB7IHRocm93IG5ldyBFcnJvcihcIkJhY2tncm91bmRKb2JzQWRhcHRlciNjYW5jZWxTY2hlZHVsZWQgaXMgbm90IGltcGxlbWVudGVkXCIpIH1cblxuICAvKipcbiAgICogRmluZHMgdGhlIG5leHQgZWxpZ2libGUgam9iLlxuICAgKiBAcGFyYW0ge3tleGVjdXRpb25Nb2RlPzogaW1wb3J0KFwiLi90eXBlcy5qc1wiKS5CYWNrZ3JvdW5kSm9iRXhlY3V0aW9uTW9kZSB8IGltcG9ydChcIi4vdHlwZXMuanNcIikuQmFja2dyb3VuZEpvYkV4ZWN1dGlvbk1vZGVbXX19IFtfYXJnc10gLSBEZXF1ZXVlIGZpbHRlcnMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGltcG9ydChcIi4vdHlwZXMuanNcIikuQmFja2dyb3VuZEpvYlJvdyB8IG51bGw+fSAtIE5leHQgZWxpZ2libGUgam9iLlxuICAgKi9cbiAgYXN5bmMgbmV4dEF2YWlsYWJsZUpvYihfYXJncyA9IHt9KSB7IHRocm93IG5ldyBFcnJvcihcIkJhY2tncm91bmRKb2JzQWRhcHRlciNuZXh0QXZhaWxhYmxlSm9iIGlzIG5vdCBpbXBsZW1lbnRlZFwiKSB9XG5cbiAgLyoqXG4gICAqIEZpbmRzIHRoZSBzb29uZXN0IGZ1dHVyZSBqb2IuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGltcG9ydChcIi4vdHlwZXMuanNcIikuQmFja2dyb3VuZEpvYlJvdyB8IG51bGw+fSAtIFNvb25lc3QgZnV0dXJlIGpvYi5cbiAgICovXG4gIGFzeW5jIG5leHRTY2hlZHVsZWRKb2IoKSB7IHRocm93IG5ldyBFcnJvcihcIkJhY2tncm91bmRKb2JzQWRhcHRlciNuZXh0U2NoZWR1bGVkSm9iIGlzIG5vdCBpbXBsZW1lbnRlZFwiKSB9XG5cbiAgLyoqXG4gICAqIFJlYWRzIG9uZSBqb2IuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBfam9iSWQgLSBKb2IgaWQuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGltcG9ydChcIi4vdHlwZXMuanNcIikuQmFja2dyb3VuZEpvYlJvdyB8IG51bGw+fSAtIEpvYiByb3cuXG4gICAqL1xuICBhc3luYyBnZXRKb2IoX2pvYklkKSB7IHRocm93IG5ldyBFcnJvcihcIkJhY2tncm91bmRKb2JzQWRhcHRlciNnZXRKb2IgaXMgbm90IGltcGxlbWVudGVkXCIpIH1cblxuICAvKipcbiAgICogU3RhcnRzIGEgam9iIGJ5IGNsYWltaW5nIGl0cyBkdXJhYmxlIGhhbmRvZmYuXG4gICAqIFdoZW4gYGhhbmRvZmZJZGAgaXMgc3VwcGxpZWQsIHRoZSBhZGFwdGVyIG11c3QgcGVyc2lzdCBhbmQgcmV0dXJuIHRoYXQgZXhhY3RcbiAgICogaWQgc28gdGhlIGNhbGxlciBjYW4gZmVuY2UgYW4gYW1iaWd1b3VzIGNvbW1pdCBhY2tub3dsZWRnZW1lbnQuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi90eXBlcy5qc1wiKS5CYWNrZ3JvdW5kSm9iSGFuZG9mZlJlcXVlc3R9IF9hcmdzIC0gSGFuZG9mZiByZXF1ZXN0LlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxpbXBvcnQoXCIuL3R5cGVzLmpzXCIpLkJhY2tncm91bmRKb2JIYW5kb2ZmIHwgbnVsbD59IC0gQ2xhaW1lZCBoYW5kb2ZmLlxuICAgKi9cbiAgYXN5bmMgbWFya0hhbmRlZE9mZihfYXJncykgeyB0aHJvdyBuZXcgRXJyb3IoXCJCYWNrZ3JvdW5kSm9ic0FkYXB0ZXIjbWFya0hhbmRlZE9mZiBpcyBub3QgaW1wbGVtZW50ZWRcIikgfVxuXG4gIC8qKlxuICAgKiBNYXJrcyBhIGhhbmRlZC1vZmYgam9iIHN1Y2Nlc3NmdWwuXG4gICAqIEBwYXJhbSB7e2pvYklkOiBzdHJpbmcsIGhhbmRvZmZJZD86IHN0cmluZywgd29ya2VySWQ/OiBzdHJpbmcsIGhhbmRlZE9mZkF0TXM/OiBudW1iZXJ9fSBfYXJncyAtIENvbXBsZXRpb24gcmVwb3J0LlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxib29sZWFuPn0gLSBXaGV0aGVyIHRoZSBmZW5jZWQgcmVwb3J0IHdhcyBhY2NlcHRlZC5cbiAgICovXG4gIGFzeW5jIG1hcmtDb21wbGV0ZWQoX2FyZ3MpIHsgdGhyb3cgbmV3IEVycm9yKFwiQmFja2dyb3VuZEpvYnNBZGFwdGVyI21hcmtDb21wbGV0ZWQgaXMgbm90IGltcGxlbWVudGVkXCIpIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGhhbmRlZC1vZmYgam9iIHRvIGl0cyBzY2hlZHVsZS5cbiAgICogQHBhcmFtIHt7am9iSWQ6IHN0cmluZywgZGVsYXlNczogbnVtYmVyLCBoYW5kb2ZmSWQ/OiBzdHJpbmcsIHdvcmtlcklkPzogc3RyaW5nLCBoYW5kZWRPZmZBdE1zPzogbnVtYmVyfX0gX2FyZ3MgLSBSZXNjaGVkdWxlIHJlcG9ydC5cbiAgICogQHJldHVybnMge1Byb21pc2U8Ym9vbGVhbj59IC0gV2hldGhlciB0aGUgZmVuY2VkIHJlcG9ydCB3YXMgYWNjZXB0ZWQuXG4gICAqL1xuICBhc3luYyBtYXJrUmVzY2hlZHVsZWQoX2FyZ3MpIHsgdGhyb3cgbmV3IEVycm9yKFwiQmFja2dyb3VuZEpvYnNBZGFwdGVyI21hcmtSZXNjaGVkdWxlZCBpcyBub3QgaW1wbGVtZW50ZWRcIikgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgaGFuZGVkLW9mZiBqb2IgdG8gdGhlIHF1ZXVlLlxuICAgKiBAcGFyYW0ge3tqb2JJZDogc3RyaW5nLCBoYW5kb2ZmSWQ6IHN0cmluZ319IF9hcmdzIC0gSGFuZG9mZiByZWxlYXNlLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyBhZnRlciB0aGUgam9iIGlzIHJldHVybmVkLlxuICAgKi9cbiAgYXN5bmMgbWFya1JldHVybmVkVG9RdWV1ZShfYXJncykgeyB0aHJvdyBuZXcgRXJyb3IoXCJCYWNrZ3JvdW5kSm9ic0FkYXB0ZXIjbWFya1JldHVybmVkVG9RdWV1ZSBpcyBub3QgaW1wbGVtZW50ZWRcIikgfVxuXG4gIC8qKlxuICAgKiBGaW5kcyBhY3RpdmUgaGFuZG9mZnMgZm9yIGEgd29ya2VyLlxuICAgKiBAcGFyYW0ge3t3b3JrZXJJZDogc3RyaW5nfX0gX2FyZ3MgLSBXb3JrZXIgaWRlbnRpdHkuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPEFycmF5PHtqb2JJZDogc3RyaW5nLCBoYW5kb2ZmSWQ6IHN0cmluZ30+Pn0gLSBBY3RpdmUgd29ya2VyIGhhbmRvZmZzLlxuICAgKi9cbiAgYXN5bmMgaGFuZGVkT2ZmSm9ic0ZvcldvcmtlcihfYXJncykgeyB0aHJvdyBuZXcgRXJyb3IoXCJCYWNrZ3JvdW5kSm9ic0FkYXB0ZXIjaGFuZGVkT2ZmSm9ic0ZvcldvcmtlciBpcyBub3QgaW1wbGVtZW50ZWRcIikgfVxuXG4gIC8qKlxuICAgKiBNYXJrcyBhIGhhbmRlZC1vZmYgam9iIGZhaWxlZCBvciByZXRyeWFibGUuXG4gICAqIEBwYXJhbSB7e2pvYklkOiBzdHJpbmcsIGVycm9yOiBSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPiwgaGFuZG9mZklkPzogc3RyaW5nLCB3b3JrZXJJZD86IHN0cmluZywgaGFuZGVkT2ZmQXRNcz86IG51bWJlcn19IF9hcmdzIC0gRmFpbHVyZSByZXBvcnQuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGltcG9ydChcIi4vdHlwZXMuanNcIikuQmFja2dyb3VuZEpvYlJvdyB8IG51bGw+fSAtIFVwZGF0ZWQgam9iIHdoZW4gYWNjZXB0ZWQuXG4gICAqL1xuICBhc3luYyBtYXJrRmFpbGVkKF9hcmdzKSB7IHRocm93IG5ldyBFcnJvcihcIkJhY2tncm91bmRKb2JzQWRhcHRlciNtYXJrRmFpbGVkIGlzIG5vdCBpbXBsZW1lbnRlZFwiKSB9XG5cbiAgLyoqXG4gICAqIFJlY2xhaW1zIGV4cGlyZWQgaGFuZG9mZnMuXG4gICAqIEBwYXJhbSB7e29ycGhhbmVkQWZ0ZXJNcz86IG51bWJlcn19IFtfYXJnc10gLSBTd2VlcCBvcHRpb25zLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxpbXBvcnQoXCIuL3R5cGVzLmpzXCIpLkJhY2tncm91bmRKb2JSb3dbXT59IC0gTmV3bHkgb3JwaGFuZWQgam9icy5cbiAgICovXG4gIGFzeW5jIG1hcmtPcnBoYW5lZEpvYnMoX2FyZ3MgPSB7fSkgeyB0aHJvdyBuZXcgRXJyb3IoXCJCYWNrZ3JvdW5kSm9ic0FkYXB0ZXIjbWFya09ycGhhbmVkSm9icyBpcyBub3QgaW1wbGVtZW50ZWRcIikgfVxuXG4gIC8qKlxuICAgKiBQcnVuZXMgdGVybWluYWwgam9icyBwYXN0IHRoZWlyIHJldGVudGlvbiB3aW5kb3dzLlxuICAgKiBAcGFyYW0ge3tjb21wbGV0ZWRUdGxNcz86IG51bWJlciB8IG51bGwsIGZhaWxlZFR0bE1zPzogbnVtYmVyIHwgbnVsbCwgYmF0Y2hTaXplPzogbnVtYmVyfX0gW19hcmdzXSAtIFJldGVudGlvbiBvcHRpb25zLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxudW1iZXI+fSAtIERlbGV0ZWQgcm93cy5cbiAgICovXG4gIGFzeW5jIHBydW5lVGVybWluYWxKb2JzKF9hcmdzID0ge30pIHsgdGhyb3cgbmV3IEVycm9yKFwiQmFja2dyb3VuZEpvYnNBZGFwdGVyI3BydW5lVGVybWluYWxKb2JzIGlzIG5vdCBpbXBsZW1lbnRlZFwiKSB9XG59XG4iXX0=
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRhcHRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYWNrZ3JvdW5kLWpvYnMvYWRhcHRlci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVo7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxPQUFPLE9BQU8scUJBQXFCO0lBQ3hDOzs7T0FHRztJQUNILEtBQUssQ0FBQyxXQUFXLEtBQUssTUFBTSxJQUFJLEtBQUssQ0FBQyxzREFBc0QsQ0FBQyxDQUFBLENBQUMsQ0FBQztJQUUvRjs7O09BR0c7SUFDSCxLQUFLLENBQUMsS0FBSyxLQUFJLENBQUM7SUFFaEI7OztPQUdHO0lBQ0gsS0FBSyxDQUFDLE1BQU07UUFDVixPQUFPLEVBQUMsS0FBSyxFQUFFLElBQUksRUFBQyxDQUFBO0lBQ3RCLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNILEtBQUssQ0FBQyxxQkFBcUIsQ0FBQyxLQUFLLElBQUcsQ0FBQztJQUVyQzs7O09BR0c7SUFDSCxLQUFLLENBQUMseUJBQXlCLEtBQUssTUFBTSxJQUFJLEtBQUssQ0FBQyxvRUFBb0UsQ0FBQyxDQUFBLENBQUMsQ0FBQztJQUUzSDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksTUFBTSxJQUFJLEtBQUssQ0FBQyxrREFBa0QsQ0FBQyxDQUFBLENBQUMsQ0FBQztJQUU1Rjs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLGdCQUFnQixDQUFDLEtBQUssSUFBSSxNQUFNLElBQUksS0FBSyxDQUFDLDJEQUEyRCxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBRTlHOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsZUFBZSxDQUFDLFlBQVksSUFBSSxNQUFNLElBQUksS0FBSyxDQUFDLDBEQUEwRCxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBRW5IOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxHQUFHLEVBQUUsSUFBSSxNQUFNLElBQUksS0FBSyxDQUFDLDJEQUEyRCxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBRW5IOzs7T0FHRztJQUNILEtBQUssQ0FBQyxnQkFBZ0IsS0FBSyxNQUFNLElBQUksS0FBSyxDQUFDLDJEQUEyRCxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBRXpHOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sSUFBSSxNQUFNLElBQUksS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBRTNGOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxJQUFJLE1BQU0sSUFBSSxLQUFLLENBQUMsd0RBQXdELENBQUMsQ0FBQSxDQUFDLENBQUM7SUFFeEc7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxhQUFhLENBQUMsS0FBSyxJQUFJLE1BQU0sSUFBSSxLQUFLLENBQUMsd0RBQXdELENBQUMsQ0FBQSxDQUFDLENBQUM7SUFFeEc7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxlQUFlLENBQUMsS0FBSyxJQUFJLE1BQU0sSUFBSSxLQUFLLENBQUMsMERBQTBELENBQUMsQ0FBQSxDQUFDLENBQUM7SUFFNUc7Ozs7T0FJRztJQUNILEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLElBQUksTUFBTSxJQUFJLEtBQUssQ0FBQyw4REFBOEQsQ0FBQyxDQUFBLENBQUMsQ0FBQztJQUVwSDs7OztPQUlHO0lBQ0gsS0FBSyxDQUFDLHNCQUFzQixDQUFDLEtBQUssSUFBSSxNQUFNLElBQUksS0FBSyxDQUFDLGlFQUFpRSxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBRTFIOzs7O09BSUc7SUFDSCxLQUFLLENBQUMscUJBQXFCLEtBQUssT0FBTyxFQUFFLENBQUEsQ0FBQyxDQUFDO0lBRTNDOzs7Ozs7T0FNRztJQUNILEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLElBQUksT0FBTyxFQUFFLENBQUEsQ0FBQyxDQUFDO0lBRS9DOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsVUFBVSxDQUFDLEtBQUssSUFBSSxNQUFNLElBQUksS0FBSyxDQUFDLHFEQUFxRCxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBRWxHOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxHQUFHLEVBQUUsSUFBSSxNQUFNLElBQUksS0FBSyxDQUFDLDJEQUEyRCxDQUFDLENBQUEsQ0FBQyxDQUFDO0lBRW5IOzs7O09BSUc7SUFDSCxLQUFLLENBQUMsaUJBQWlCLENBQUMsS0FBSyxHQUFHLEVBQUUsSUFBSSxNQUFNLElBQUksS0FBSyxDQUFDLDREQUE0RCxDQUFDLENBQUEsQ0FBQyxDQUFDO0NBQ3RIIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbi8qKlxuICogUGxhdGZvcm0tbmV1dHJhbCBwZXJzaXN0ZW5jZSBhbmQgbGlmZWN5Y2xlIGNvbnRyYWN0IHVzZWQgYnkgdGhlIGJhY2tncm91bmQtam9ic1xuICogcnVudGltZS4gQWRhcHRlcnMgb3duIGR1cmFibGUgcXVldWUgc3RhdGU7IHRyYW5zcG9ydCBhbmQgam9iIGV4ZWN1dGlvbiByZW1haW5cbiAqIHNlcGFyYXRlIGNvbmNlcm5zLlxuICovXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBCYWNrZ3JvdW5kSm9ic0FkYXB0ZXIge1xuICAvKipcbiAgICogRW5zdXJlcyB0aGUgYWRhcHRlciBjYW4gYWNjZXB0IHdvcmsuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPHZvaWQ+fSAtIFJlc29sdmVzIHdoZW4gcmVhZHkuXG4gICAqL1xuICBhc3luYyBlbnN1cmVSZWFkeSgpIHsgdGhyb3cgbmV3IEVycm9yKFwiQmFja2dyb3VuZEpvYnNBZGFwdGVyI2Vuc3VyZVJlYWR5IGlzIG5vdCBpbXBsZW1lbnRlZFwiKSB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyBhZGFwdGVyLW93bmVkIHJlc291cmNlcy5cbiAgICogQHJldHVybnMge1Byb21pc2U8dm9pZD59IC0gUmVzb2x2ZXMgYWZ0ZXIgY2xvc2UuXG4gICAqL1xuICBhc3luYyBjbG9zZSgpIHt9XG5cbiAgLyoqXG4gICAqIFJlcG9ydHMgYWRhcHRlciBoZWFsdGguXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGltcG9ydChcIi4vdHlwZXMuanNcIikuQmFja2dyb3VuZEpvYnNIZWFsdGg+fSAtIEFkYXB0ZXIgaGVhbHRoLlxuICAgKi9cbiAgYXN5bmMgaGVhbHRoKCkge1xuICAgIHJldHVybiB7cmVhZHk6IHRydWV9XG4gIH1cblxuICAvKipcbiAgICogRW5zdXJlcyBmcmFtZXdvcmstb3duZWQgcGVyc2lzdGVuY2UgZHVyaW5nIGEgbWlncmF0aW9uIGxpZmVjeWNsZS4gTm9uLVNRTFxuICAgKiBhZGFwdGVycyBtYXkgbGVhdmUgdGhpcyBhcyBhIG5vLW9wLlxuICAgKiBAcGFyYW0ge3tkYnM6IFJlY29yZDxzdHJpbmcsIGltcG9ydChcIi4uL2RhdGFiYXNlL2RyaXZlcnMvYmFzZS5qc1wiKS5kZWZhdWx0Pn19IF9hcmdzIC0gTWlncmF0ZWQgZGF0YWJhc2VzLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyB3aGVuIGNvbXBsZXRlLlxuICAgKi9cbiAgYXN5bmMgZW5zdXJlRnJhbWV3b3JrU2NoZW1hKF9hcmdzKSB7fVxuXG4gIC8qKlxuICAgKiBSZWNvbmNpbGVzIGNvbmZpZ3VyZWQgcXVldWUgbGltaXRzLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyBhZnRlciByZWNvbmNpbGlhdGlvbi5cbiAgICovXG4gIGFzeW5jIHJlY29uY2lsZVF1ZXVlQ29uY3VycmVuY3koKSB7IHRocm93IG5ldyBFcnJvcihcIkJhY2tncm91bmRKb2JzQWRhcHRlciNyZWNvbmNpbGVRdWV1ZUNvbmN1cnJlbmN5IGlzIG5vdCBpbXBsZW1lbnRlZFwiKSB9XG5cbiAgLyoqXG4gICAqIEVucXVldWVzIGEgam9iLlxuICAgKiBAcGFyYW0ge3tqb2JOYW1lOiBzdHJpbmcsIGFyZ3M6IEFycmF5PFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+Piwgb3B0aW9ucz86IGltcG9ydChcIi4vdHlwZXMuanNcIikuQmFja2dyb3VuZEpvYk9wdGlvbnN9fSBfYXJncyAtIEpvYiByZXF1ZXN0LlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmc+fSAtIEpvYiBpZC5cbiAgICovXG4gIGFzeW5jIGVucXVldWUoX2FyZ3MpIHsgdGhyb3cgbmV3IEVycm9yKFwiQmFja2dyb3VuZEpvYnNBZGFwdGVyI2VucXVldWUgaXMgbm90IGltcGxlbWVudGVkXCIpIH1cblxuICAvKipcbiAgICogUmVwbGFjZXMgdGhlIG93bmVyIG9mIGEgc3RhYmxlIHNjaGVkdWxlIGtleS5cbiAgICogQHBhcmFtIHt7c2NoZWR1bGVLZXk6IHN0cmluZywgam9iTmFtZTogc3RyaW5nLCBhcmdzOiBBcnJheTxSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPj4sIG9wdGlvbnM/OiBpbXBvcnQoXCIuL3R5cGVzLmpzXCIpLkJhY2tncm91bmRKb2JPcHRpb25zfX0gX2FyZ3MgLSBSZXBsYWNlbWVudCByZXF1ZXN0LlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxpbXBvcnQoXCIuL3R5cGVzLmpzXCIpLkJhY2tncm91bmRKb2JSZXBsYWNlbWVudFJlc3VsdD59IC0gUmVwbGFjZW1lbnQgcmVzdWx0LlxuICAgKi9cbiAgYXN5bmMgcmVwbGFjZVNjaGVkdWxlZChfYXJncykgeyB0aHJvdyBuZXcgRXJyb3IoXCJCYWNrZ3JvdW5kSm9ic0FkYXB0ZXIjcmVwbGFjZVNjaGVkdWxlZCBpcyBub3QgaW1wbGVtZW50ZWRcIikgfVxuXG4gIC8qKlxuICAgKiBDYW5jZWxzIHRoZSBvd25lciBvZiBhIHN0YWJsZSBzY2hlZHVsZSBrZXkuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBfc2NoZWR1bGVLZXkgLSBTdGFibGUgc2NoZWR1bGUga2V5LlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxpbXBvcnQoXCIuL3R5cGVzLmpzXCIpLkJhY2tncm91bmRKb2JDYW5jZWxsYXRpb25SZXN1bHQ+fSAtIENhbmNlbGxhdGlvbiByZXN1bHQuXG4gICAqL1xuICBhc3luYyBjYW5jZWxTY2hlZHVsZWQoX3NjaGVkdWxlS2V5KSB7IHRocm93IG5ldyBFcnJvcihcIkJhY2tncm91bmRKb2JzQWRhcHRlciNjYW5jZWxTY2hlZHVsZWQgaXMgbm90IGltcGxlbWVudGVkXCIpIH1cblxuICAvKipcbiAgICogRmluZHMgdGhlIG5leHQgZWxpZ2libGUgam9iLlxuICAgKiBAcGFyYW0ge3tleGVjdXRpb25Nb2RlPzogaW1wb3J0KFwiLi90eXBlcy5qc1wiKS5CYWNrZ3JvdW5kSm9iRXhlY3V0aW9uTW9kZSB8IGltcG9ydChcIi4vdHlwZXMuanNcIikuQmFja2dyb3VuZEpvYkV4ZWN1dGlvbk1vZGVbXX19IFtfYXJnc10gLSBEZXF1ZXVlIGZpbHRlcnMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGltcG9ydChcIi4vdHlwZXMuanNcIikuQmFja2dyb3VuZEpvYlJvdyB8IG51bGw+fSAtIE5leHQgZWxpZ2libGUgam9iLlxuICAgKi9cbiAgYXN5bmMgbmV4dEF2YWlsYWJsZUpvYihfYXJncyA9IHt9KSB7IHRocm93IG5ldyBFcnJvcihcIkJhY2tncm91bmRKb2JzQWRhcHRlciNuZXh0QXZhaWxhYmxlSm9iIGlzIG5vdCBpbXBsZW1lbnRlZFwiKSB9XG5cbiAgLyoqXG4gICAqIEZpbmRzIHRoZSBzb29uZXN0IGZ1dHVyZSBqb2IuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGltcG9ydChcIi4vdHlwZXMuanNcIikuQmFja2dyb3VuZEpvYlJvdyB8IG51bGw+fSAtIFNvb25lc3QgZnV0dXJlIGpvYi5cbiAgICovXG4gIGFzeW5jIG5leHRTY2hlZHVsZWRKb2IoKSB7IHRocm93IG5ldyBFcnJvcihcIkJhY2tncm91bmRKb2JzQWRhcHRlciNuZXh0U2NoZWR1bGVkSm9iIGlzIG5vdCBpbXBsZW1lbnRlZFwiKSB9XG5cbiAgLyoqXG4gICAqIFJlYWRzIG9uZSBqb2IuXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBfam9iSWQgLSBKb2IgaWQuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGltcG9ydChcIi4vdHlwZXMuanNcIikuQmFja2dyb3VuZEpvYlJvdyB8IG51bGw+fSAtIEpvYiByb3cuXG4gICAqL1xuICBhc3luYyBnZXRKb2IoX2pvYklkKSB7IHRocm93IG5ldyBFcnJvcihcIkJhY2tncm91bmRKb2JzQWRhcHRlciNnZXRKb2IgaXMgbm90IGltcGxlbWVudGVkXCIpIH1cblxuICAvKipcbiAgICogU3RhcnRzIGEgam9iIGJ5IGNsYWltaW5nIGl0cyBkdXJhYmxlIGhhbmRvZmYuXG4gICAqIFdoZW4gYGhhbmRvZmZJZGAgaXMgc3VwcGxpZWQsIHRoZSBhZGFwdGVyIG11c3QgcGVyc2lzdCBhbmQgcmV0dXJuIHRoYXQgZXhhY3RcbiAgICogaWQgc28gdGhlIGNhbGxlciBjYW4gZmVuY2UgYW4gYW1iaWd1b3VzIGNvbW1pdCBhY2tub3dsZWRnZW1lbnQuXG4gICAqIEBwYXJhbSB7aW1wb3J0KFwiLi90eXBlcy5qc1wiKS5CYWNrZ3JvdW5kSm9iSGFuZG9mZlJlcXVlc3R9IF9hcmdzIC0gSGFuZG9mZiByZXF1ZXN0LlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxpbXBvcnQoXCIuL3R5cGVzLmpzXCIpLkJhY2tncm91bmRKb2JIYW5kb2ZmIHwgbnVsbD59IC0gQ2xhaW1lZCBoYW5kb2ZmLlxuICAgKi9cbiAgYXN5bmMgbWFya0hhbmRlZE9mZihfYXJncykgeyB0aHJvdyBuZXcgRXJyb3IoXCJCYWNrZ3JvdW5kSm9ic0FkYXB0ZXIjbWFya0hhbmRlZE9mZiBpcyBub3QgaW1wbGVtZW50ZWRcIikgfVxuXG4gIC8qKlxuICAgKiBNYXJrcyBhIGhhbmRlZC1vZmYgam9iIHN1Y2Nlc3NmdWwuXG4gICAqIEBwYXJhbSB7e2pvYklkOiBzdHJpbmcsIGhhbmRvZmZJZD86IHN0cmluZywgd29ya2VySWQ/OiBzdHJpbmcsIGhhbmRlZE9mZkF0TXM/OiBudW1iZXJ9fSBfYXJncyAtIENvbXBsZXRpb24gcmVwb3J0LlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxib29sZWFuPn0gLSBXaGV0aGVyIHRoZSBmZW5jZWQgcmVwb3J0IHdhcyBhY2NlcHRlZC5cbiAgICovXG4gIGFzeW5jIG1hcmtDb21wbGV0ZWQoX2FyZ3MpIHsgdGhyb3cgbmV3IEVycm9yKFwiQmFja2dyb3VuZEpvYnNBZGFwdGVyI21hcmtDb21wbGV0ZWQgaXMgbm90IGltcGxlbWVudGVkXCIpIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIGhhbmRlZC1vZmYgam9iIHRvIGl0cyBzY2hlZHVsZS5cbiAgICogQHBhcmFtIHt7am9iSWQ6IHN0cmluZywgZGVsYXlNczogbnVtYmVyLCBoYW5kb2ZmSWQ/OiBzdHJpbmcsIHdvcmtlcklkPzogc3RyaW5nLCBoYW5kZWRPZmZBdE1zPzogbnVtYmVyfX0gX2FyZ3MgLSBSZXNjaGVkdWxlIHJlcG9ydC5cbiAgICogQHJldHVybnMge1Byb21pc2U8Ym9vbGVhbj59IC0gV2hldGhlciB0aGUgZmVuY2VkIHJlcG9ydCB3YXMgYWNjZXB0ZWQuXG4gICAqL1xuICBhc3luYyBtYXJrUmVzY2hlZHVsZWQoX2FyZ3MpIHsgdGhyb3cgbmV3IEVycm9yKFwiQmFja2dyb3VuZEpvYnNBZGFwdGVyI21hcmtSZXNjaGVkdWxlZCBpcyBub3QgaW1wbGVtZW50ZWRcIikgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgaGFuZGVkLW9mZiBqb2IgdG8gdGhlIHF1ZXVlLlxuICAgKiBAcGFyYW0ge3tqb2JJZDogc3RyaW5nLCBoYW5kb2ZmSWQ6IHN0cmluZ319IF9hcmdzIC0gSGFuZG9mZiByZWxlYXNlLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn0gLSBSZXNvbHZlcyBhZnRlciB0aGUgam9iIGlzIHJldHVybmVkLlxuICAgKi9cbiAgYXN5bmMgbWFya1JldHVybmVkVG9RdWV1ZShfYXJncykgeyB0aHJvdyBuZXcgRXJyb3IoXCJCYWNrZ3JvdW5kSm9ic0FkYXB0ZXIjbWFya1JldHVybmVkVG9RdWV1ZSBpcyBub3QgaW1wbGVtZW50ZWRcIikgfVxuXG4gIC8qKlxuICAgKiBGaW5kcyBhY3RpdmUgaGFuZG9mZnMgZm9yIGEgd29ya2VyLlxuICAgKiBAcGFyYW0ge3t3b3JrZXJJZDogc3RyaW5nfX0gX2FyZ3MgLSBXb3JrZXIgaWRlbnRpdHkuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPEFycmF5PHtqb2JJZDogc3RyaW5nLCBoYW5kb2ZmSWQ6IHN0cmluZ30+Pn0gLSBBY3RpdmUgd29ya2VyIGhhbmRvZmZzLlxuICAgKi9cbiAgYXN5bmMgaGFuZGVkT2ZmSm9ic0ZvcldvcmtlcihfYXJncykgeyB0aHJvdyBuZXcgRXJyb3IoXCJCYWNrZ3JvdW5kSm9ic0FkYXB0ZXIjaGFuZGVkT2ZmSm9ic0ZvcldvcmtlciBpcyBub3QgaW1wbGVtZW50ZWRcIikgfVxuXG4gIC8qKlxuICAgKiBTbmFwc2hvdHMgZXhhY3QgYWN0aXZlIGhhbmRvZmZzIGJlZm9yZSBhIG5ldyBtYWluIGdlbmVyYXRpb24gYWNjZXB0cyB3b3JrZXJcbiAgICogcmVjb25uZWN0cy4gQWRhcHRlcnMgdGhhdCBkbyBub3QgcGVyc2lzdCB3b3JrZXIgbGVhc2VzIG1heSByZXR1cm4gbm9uZS5cbiAgICogQHJldHVybnMge1Byb21pc2U8aW1wb3J0KFwiLi90eXBlcy5qc1wiKS5CYWNrZ3JvdW5kSm9iSGFuZG9mZlNuYXBzaG90W10+fSAtIEV4YWN0IGFjdGl2ZSBoYW5kb2Zmcy5cbiAgICovXG4gIGFzeW5jIHNuYXBzaG90SGFuZGVkT2ZmSm9icygpIHsgcmV0dXJuIFtdIH1cblxuICAvKipcbiAgICogQXBwbGllcyBvcnBoYW4gZmFpbHVyZSBzZW1hbnRpY3MgdG8gdW5jaGFuZ2VkIGV4YWN0IGhhbmRvZmYgc25hcHNob3RzLlxuICAgKiBBZGFwdGVycyB0aGF0IHJldHVybiBzdGFydHVwIHNuYXBzaG90cyBtdXN0IGltcGxlbWVudCB0aGUgbWF0Y2hpbmcgZmVuY2VkXG4gICAqIHRyYW5zaXRpb24uXG4gICAqIEBwYXJhbSB7e2hhbmRvZmZzOiBpbXBvcnQoXCIuL3R5cGVzLmpzXCIpLkJhY2tncm91bmRKb2JIYW5kb2ZmU25hcHNob3RbXSwgZXJyb3I6IFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+fX0gX2FyZ3MgLSBFeGFjdCBsZWFzZXMgYW5kIG9ycGhhbiByZWFzb24uXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGltcG9ydChcIi4vdHlwZXMuanNcIikuQmFja2dyb3VuZEpvYlJvd1tdPn0gLSBBY2NlcHRlZCB0cmFuc2l0aW9ucy5cbiAgICovXG4gIGFzeW5jIG1hcmtPcnBoYW5lZEhhbmRvZmZzKF9hcmdzKSB7IHJldHVybiBbXSB9XG5cbiAgLyoqXG4gICAqIE1hcmtzIGEgaGFuZGVkLW9mZiBqb2IgZmFpbGVkIG9yIHJldHJ5YWJsZS5cbiAgICogQHBhcmFtIHt7am9iSWQ6IHN0cmluZywgZXJyb3I6IFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+LCBoYW5kb2ZmSWQ/OiBzdHJpbmcsIHdvcmtlcklkPzogc3RyaW5nLCBoYW5kZWRPZmZBdE1zPzogbnVtYmVyfX0gX2FyZ3MgLSBGYWlsdXJlIHJlcG9ydC5cbiAgICogQHJldHVybnMge1Byb21pc2U8aW1wb3J0KFwiLi90eXBlcy5qc1wiKS5CYWNrZ3JvdW5kSm9iUm93IHwgbnVsbD59IC0gVXBkYXRlZCBqb2Igd2hlbiBhY2NlcHRlZC5cbiAgICovXG4gIGFzeW5jIG1hcmtGYWlsZWQoX2FyZ3MpIHsgdGhyb3cgbmV3IEVycm9yKFwiQmFja2dyb3VuZEpvYnNBZGFwdGVyI21hcmtGYWlsZWQgaXMgbm90IGltcGxlbWVudGVkXCIpIH1cblxuICAvKipcbiAgICogUmVjbGFpbXMgZXhwaXJlZCBoYW5kb2Zmcy5cbiAgICogQHBhcmFtIHt7b3JwaGFuZWRBZnRlck1zPzogbnVtYmVyfX0gW19hcmdzXSAtIFN3ZWVwIG9wdGlvbnMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGltcG9ydChcIi4vdHlwZXMuanNcIikuQmFja2dyb3VuZEpvYlJvd1tdPn0gLSBOZXdseSBvcnBoYW5lZCBqb2JzLlxuICAgKi9cbiAgYXN5bmMgbWFya09ycGhhbmVkSm9icyhfYXJncyA9IHt9KSB7IHRocm93IG5ldyBFcnJvcihcIkJhY2tncm91bmRKb2JzQWRhcHRlciNtYXJrT3JwaGFuZWRKb2JzIGlzIG5vdCBpbXBsZW1lbnRlZFwiKSB9XG5cbiAgLyoqXG4gICAqIFBydW5lcyB0ZXJtaW5hbCBqb2JzIHBhc3QgdGhlaXIgcmV0ZW50aW9uIHdpbmRvd3MuXG4gICAqIEBwYXJhbSB7e2NvbXBsZXRlZFR0bE1zPzogbnVtYmVyIHwgbnVsbCwgZmFpbGVkVHRsTXM/OiBudW1iZXIgfCBudWxsLCBiYXRjaFNpemU/OiBudW1iZXJ9fSBbX2FyZ3NdIC0gUmV0ZW50aW9uIG9wdGlvbnMuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPG51bWJlcj59IC0gRGVsZXRlZCByb3dzLlxuICAgKi9cbiAgYXN5bmMgcHJ1bmVUZXJtaW5hbEpvYnMoX2FyZ3MgPSB7fSkgeyB0aHJvdyBuZXcgRXJyb3IoXCJCYWNrZ3JvdW5kSm9ic0FkYXB0ZXIjcHJ1bmVUZXJtaW5hbEpvYnMgaXMgbm90IGltcGxlbWVudGVkXCIpIH1cbn1cbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"job-runner.d.ts","sourceRoot":"","sources":["../../../src/background-jobs/job-runner.js"],"names":[],"mappings":"AASA,qBAAa,6BAA8B,SAAQ,KAAK;IACtD;;;OAGG;IACH,YAAY,KAAK,EAFN,KAEM,EAGhB;CACF;AA0DD;;;;;;;GAOG;AACH,wBAA8B,aAAa,CAAC,OAAO,EANxC,OAAO,YAAY,EAAE,oBAMmB,EAAE,EAAC,gBAAuB,EAAE,kBAAyB,EAAC,AALtG,CAGA,EAFA;IAA0B,gBAAgB,AAA1C,CACA,EADQ,OAAO,CACf;IAA0B,kBAAkB,AAA5C,CACA,EADQ,OAAO,CACf;CAE2G,GAFjG,OAAO,CAAC,WAAW,GAAG,aAAa,CAAC,CAsFhD"}
1
+ {"version":3,"file":"job-runner.d.ts","sourceRoot":"","sources":["../../../src/background-jobs/job-runner.js"],"names":[],"mappings":"AASA,qBAAa,6BAA8B,SAAQ,KAAK;IACtD;;;OAGG;IACH,YAAY,KAAK,EAFN,KAEM,EAGhB;CACF;AA0DD;;;;;;;GAOG;AACH,wBAA8B,aAAa,CAAC,OAAO,EANxC,OAAO,YAAY,EAAE,oBAMmB,EAAE,EAAC,gBAAuB,EAAE,kBAAyB,EAAC,AALtG,CAGA,EAFA;IAA0B,gBAAgB,AAA1C,CACA,EADQ,OAAO,CACf;IAA0B,kBAAkB,AAA5C,CACA,EADQ,OAAO,CACf;CAE2G,GAFjG,OAAO,CAAC,WAAW,GAAG,aAAa,CAAC,CA8FhD"}
@@ -82,6 +82,14 @@ export default async function runJobPayload(payload, { closeConnections = true,
82
82
  await registry.load();
83
83
  const JobClass = registry.getJobByName(payload.jobName);
84
84
  const jobInstance = new JobClass();
85
+ const jobArgs = payload.args || [];
86
+ jobInstance._setBackgroundJobContext({
87
+ args: jobArgs,
88
+ jobClass: JobClass,
89
+ jobName: payload.jobName,
90
+ options: payload.options || {},
91
+ payload
92
+ });
85
93
  /**
86
94
  * Perform.
87
95
  * @type {(...args: Array<ReturnType<typeof JSON.parse>>) => Promise<void>} */
@@ -95,7 +103,7 @@ export default async function runJobPayload(payload, { closeConnections = true,
95
103
  try {
96
104
  try {
97
105
  await configuration.withConnections({ databaseIdentifiers: JobClass.databaseIdentifiers, name: `Background job runner: ${payload.jobName}` }, async () => {
98
- await perform.apply(jobInstance, payload.args || []);
106
+ await perform.apply(jobInstance, jobArgs);
99
107
  });
100
108
  }
101
109
  catch (error) {
@@ -155,4 +163,4 @@ export default async function runJobPayload(payload, { closeConnections = true,
155
163
  }
156
164
  }
157
165
  }
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLXJ1bm5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYWNrZ3JvdW5kLWpvYnMvam9iLXJ1bm5lci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxxQkFBcUIsTUFBTSw4QkFBOEIsQ0FBQTtBQUNoRSxPQUFPLHFCQUFxQixNQUFNLG1CQUFtQixDQUFBO0FBQ3JELE9BQU8sNEJBQTRCLE1BQU0sc0JBQXNCLENBQUE7QUFDL0QsT0FBTyw2QkFBNkIsTUFBTSx3QkFBd0IsQ0FBQTtBQUVsRSxNQUFNLHVCQUF1QixHQUFHLElBQUksQ0FBQTtBQUVwQyxNQUFNLE9BQU8sNkJBQThCLFNBQVEsS0FBSztJQUN0RDs7O09BR0c7SUFDSCxZQUFZLEtBQUs7UUFDZixLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUE7UUFDN0IsSUFBSSxDQUFDLElBQUksR0FBRywrQkFBK0IsQ0FBQTtJQUM3QyxDQUFDO0NBQ0Y7QUFFRDs7Ozs7R0FLRztBQUNILFNBQVMsc0JBQXNCLENBQUMsYUFBYSxFQUFFLEtBQUs7SUFDbEQsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLGNBQWMsRUFBRSxDQUFBO0lBQ2xELE1BQU0sZUFBZSxHQUFHLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7SUFDakYsTUFBTSxPQUFPLEdBQUc7UUFDZCxPQUFPLEVBQUUsRUFBQyxRQUFRLEVBQUUsd0JBQXdCLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBQztRQUNwRSxLQUFLLEVBQUUsZUFBZTtLQUN2QixDQUFBO0lBQ0QsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUM7V0FDL0QsV0FBVyxDQUFDLGFBQWEs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QUFFLEtBQUs7aUJBQ3JCLENBQUMsQ0FBQTtZQUNKLENBQUM7WUFFRCxNQUFNLElBQUksNkJBQTZCLENBQUMsY0FBYyxDQUFDLENBQUE7UUFDekQsQ0FBQztRQUVELElBQUksT0FBTyxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2YsTUFBTSxRQUFRLENBQUMsZUFBZSxDQUFDO2dCQUM3QixLQUFLLEVBQUUsT0FBTyxDQUFDLEVBQUU7Z0JBQ2pCLE1BQU0sRUFBRSxXQUFXO2dCQUNuQixTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVM7Z0JBQzVCLFFBQVEsRUFBRSxPQUFPLENBQUMsUUFBUTtnQkFDMUIsYUFBYSxFQUFFLE9BQU8sQ0FBQyxhQUFhO2dCQUNwQyxhQUFhLEVBQUUsS0FBSzthQUNyQixDQUFDLENBQUE7UUFDSixDQUFDO1FBQ0QsT0FBTyxXQUFXLENBQUE7SUFDcEIsQ0FBQztZQUFTLENBQUM7UUFDVCwwRUFBMEU7UUFDMUUsMERBQTBEO1FBQzFELElBQUksa0JBQWtCO1lBQUUsT0FBTyxDQUFDLEtBQUssR0FBRyxhQUFhLENBQUE7UUFDckQsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQztnQkFDSCxNQUFNLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFBO1lBQ3hDLENBQUM7b0JBQVMsQ0FBQztnQkFDVCxNQUFNLGFBQWEsQ0FBQyx3QkFBd0IsRUFBRSxDQUFBO1lBQ2hELENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IGNvbmZpZ3VyYXRpb25SZXNvbHZlciBmcm9tIFwiLi4vY29uZmlndXJhdGlvbi1yZXNvbHZlci5qc1wiXG5pbXBvcnQgQmFja2dyb3VuZEpvYlJlZ2lzdHJ5IGZyb20gXCIuL2pvYi1yZWdpc3RyeS5qc1wiXG5pbXBvcnQgQmFja2dyb3VuZEpvYnNTdGF0dXNSZXBvcnRlciBmcm9tIFwiLi9zdGF0dXMtcmVwb3J0ZXIuanNcIlxuaW1wb3J0IEJhY2tncm91bmRKb2JSZXNjaGVkdWxlU2lnbmFsIGZyb20gXCIuL3Jlc2NoZWR1bGUtc2lnbmFsLmpzXCJcblxuY29uc3QgQkVBQ09OX1JFQURZX1RJTUVPVVRfTVMgPSA1MDAwXG5cbmV4cG9ydCBjbGFzcyBCYWNrZ3JvdW5kSm9iUGVyZm9ybWVkRmFpbHVyZSBleHRlbmRzIEVycm9yIHtcbiAgLyoqXG4gICAqIENyZWF0ZXMgYSBwZXJmb3JtZWQtam9iIGZhaWx1cmUgYWZ0ZXIgaXRzIHRlcm1pbmFsIHJlcG9ydCBpcyBhY2tub3dsZWRnZWQuXG4gICAqIEBwYXJhbSB7RXJyb3J9IGNhdXNlIC0gQSBqb2IgcGVyZm9ybSBlcnJvciB3aG9zZSBmYWlsZWQgdGVybWluYWwgcmVwb3J0IHdhcyBhY2tub3dsZWRnZWQuXG4gICAqL1xuICBjb25zdHJ1Y3RvcihjYXVzZSkge1xuICAgIHN1cGVyKGNhdXNlLm1lc3NhZ2UsIHtjYXVzZX0pXG4gICAgdGhpcy5uYW1lID0gXCJCYWNrZ3JvdW5kSm9iUGVyZm9ybWVkRmFpbHVyZVwiXG4gIH1cbn1cblxuLyoqXG4gKiBSdW5zIHJlcG9ydCBiZWFjb24gcmVhZHkgZXJyb3IuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gY29uZmlndXJhdGlvbiAtIENvbmZpZ3VyYXRpb24uXG4gKiBAcGFyYW0ge1JldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+fSBlcnJvciAtIEJlYWNvbiByZWFkaW5lc3MgZXJyb3IuXG4gKiBAcmV0dXJucyB7dm9pZH1cbiAqL1xuZnVuY3Rpb24gcmVwb3J0QmVhY29uUmVhZHlFcnJvcihjb25maWd1cmF0aW9uLCBlcnJvcikge1xuICBjb25zdCBlcnJvckV2ZW50cyA9IGNvbmZpZ3VyYXRpb24uZ2V0RXJyb3JFdmVudHMoKVxuICBjb25zdCBub3JtYWxpemVkRXJyb3IgPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IgOiBuZXcgRXJyb3IoU3RyaW5nKGVycm9yKSlcbiAgY29uc3QgcGF5bG9hZCA9IHtcbiAgICBjb250ZXh0OiB7cGVlclR5cGU6IFwiYmFja2dyb3VuZC1qb2JzLXJ1bm5lclwiLCBzdGFnZTogXCJiZWFjb24tcmVhZHlcIn0sXG4gICAgZXJyb3I6IG5vcm1hbGl6ZWRFcnJvclxuICB9XG4gIGNvbnN0IGhhc0xpc3RlbmVyID0gZXJyb3JFdmVudHMubGlzdGVuZXJDb3VudChcImZyYW1ld29yay1lcnJvclwiKSA+IDBcbiAgICB8fCBlcnJvckV2ZW50cy5saXN0ZW5lckNvdW50KFwiYWxsLWVycm9yXCIpID4gMFxuXG4gIGVycm9yRXZlbnRzLmVtaXQoXCJmcmFtZXdvcmstZXJyb3JcIiwgcGF5bG9hZClcbiAgZXJyb3JFdmVudHMuZW1pdChcImFsbC1lcnJvclwiLCB7Li4ucGF5bG9hZCwgZXJyb3JUeXBlOiBcImZyYW1ld29yay1lcnJvclwifSlcblxuICBpZiAoIWhhc0xpc3RlbmVyKSB7XG4gICAgY29uc29sZS5lcnJvcihgW3ZlbG9jaW91cyBmcmFtZXdvcmstZXJyb3Igc3RhZ2U9YmVhY29uLXJlYWR5XSAke25vcm1hbGl6ZWRFcnJvci5tZXNzYWdlfWApXG4gIH1cbn1cblxuLyoqXG4gKiBSdW5zIGNvbm5lY3QgYmVhY29uLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuLi9jb25maWd1cmF0aW9uLmpzXCIpLmRlZmF1bHR9IGNvbmZpZ3VyYXRpb24gLSBDb25maWd1cmF0aW9uLlxuICogQHJldHVybnMge1Byb21pc2U8dm9pZD59XG4gKi9cbmFzeW5jIGZ1bmN0aW9uIGNvbm5lY3RCZWFjb24oY29uZmlndXJhdGlvbikge1xuICBjb25zdCBiZWFjb25DbGllbnQgPSBhd2FpdCBjb25maWd1cmF0aW9uLmNvbm5lY3RCZWFjb24oe3BlZXJUeXBlOiBcImJhY2tncm91bmQtam9icy1ydW5uZXJcIn0pXG5cbiAgaWYgKCFiZWFjb25DbGllbnQpIHJldHVyblxuXG4gIHRyeSB7XG4gICAgYXdhaXQgYmVhY29uQ2xpZW50LndhaXRGb3JSZWFkeSh7dGltZW91dE1zOiBCRUFDT05fUkVBRFlfVElNRU9VVF9NU30pXG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgcmVwb3J0QmVhY29uUmVhZHlFcnJvcihjb25maWd1cmF0aW9uLCBlcnJvcilcbiAgfVxufVxuXG4vKipcbiAqIFJlc29sdmVzIHRoZSBwcm9jZXNzIHRpdGxlIHRvIHNob3cgd2hpbGUgYSBqb2IgcnVuczogdGhlIGpvYiBjbGFzcydzIGRlY2xhcmVkXG4gKiBgc3RhdGljIHByb2Nlc3NUaXRsZWAsIGVsc2UgYSBgdmVsb2Npb3VzIGpvYi1ydW5uZXI6IDxKb2JOYW1lPmAgZmFsbGJhY2suXG4gKiBAcGFyYW0ge3R5cGVvZiBpbXBvcnQoXCIuL2pvYi5qc1wiKS5kZWZhdWx0fSBKb2JDbGFzcyAtIFJlc29sdmVkIGpvYiBjbGFzcy5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi90eXBlcy5qc1wiKS5CYWNrZ3JvdW5kSm9iUGF5bG9hZH0gcGF5bG9hZCAtIFBheWxvYWQuXG4gKiBAcmV0dXJucyB7c3RyaW5nfSAtIFByb2Nlc3MgdGl0bGUuXG4gKi9cbmZ1bmN0aW9uIHJ1bm5lclByb2Nlc3NUaXRsZShKb2JDbGFzcywgcGF5bG9hZCkge1xuICBjb25zdCBkZWNsYXJlZCA9IEpvYkNsYXNzLnByb2Nlc3NUaXRsZVxuXG4gIGlmICh0eXBlb2YgZGVjbGFyZWQgPT09IFwic3RyaW5nXCIgJiYgZGVjbGFyZWQubGVuZ3RoID4gMCkgcmV0dXJuIGRlY2xhcmVkXG5cbiAgcmV0dXJuIGB2ZWxvY2lvdXMgam9iLXJ1bm5lcjogJHtwYXlsb2FkLmpvYk5hbWV9YFxufVxuXG4vKipcbiAqIFJ1bnMgcnVuIGpvYiBwYXlsb2FkLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuL3R5cGVzLmpzXCIpLkJhY2tncm91bmRKb2JQYXlsb2FkfSBwYXlsb2FkIC0gUGF5bG9hZC5cbiAqIEBwYXJhbSB7b2JqZWN0fSBbb3B0aW9uc10gLSBSdW5uZXIgb3B0aW9ucy5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMuY2xvc2VDb25uZWN0aW9uc10gLSBXaGV0aGVyIHRvIGdyYWNlZnVsbHkgY2xvc2UgZnJhbWV3b3JrIGNvbm5lY3Rpb25zIGFmdGVyIHRoZSBqb2IuXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtvcHRpb25zLm1hbmFnZVByb2Nlc3NUaXRsZV0gLSBXaGV0aGVyIHRvIHNldCB0aGUgcGVyLWpvYiBwcm9jZXNzIHRpdGxlIGFuZCByZXN0b3JlIGl0IGFmdGVyd2FyZHMuIE9mZiBmb3IgY29uY3VycmVudCBwb29sZWQgcnVubmVycywgd2hlcmUgaW50ZXJsZWF2ZWQgc25hcHNob3QvcmVzdG9yZSBvZiB0aGUgc2luZ2xlIHByb2Nlc3Mtd2lkZSBgcHJvY2Vzcy50aXRsZWAgd291bGQgY29ycnVwdCBpdDsgdGhlIHBvb2xlZCBjaGlsZCBvd25zIGFuIGFnZ3JlZ2F0ZSB0aXRsZSBpbnN0ZWFkLlxuICogQHJldHVybnMge1Byb21pc2U8XCJjb21wbGV0ZWRcIiB8IFwicmVzY2hlZHVsZWRcIj59IC0gQWNrbm93bGVkZ2VkIG91dGNvbWUuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGFzeW5jIGZ1bmN0aW9uIHJ1bkpvYlBheWxvYWQocGF5bG9hZCwge2Nsb3NlQ29ubmVjdGlvbnMgPSB0cnVlLCBtYW5hZ2VQcm9jZXNzVGl0bGUgPSB0cnVlfSA9IHt9KSB7XG4gIGNvbnN0IGNvbmZpZ3VyYXRpb24gPSBhd2FpdCBjb25maWd1cmF0aW9uUmVzb2x2ZXIoKVxuICBjb25maWd1cmF0aW9uLnNldEN1cnJlbnQoKVxuICBhd2FpdCBjb25maWd1cmF0aW9uLmluaXRpYWxpemUoe3R5cGU6IFwiYmFja2dyb3VuZC1qb2JzLXJ1bm5lclwifSlcbiAgYXdhaXQgY29ubmVjdEJlYWNvbihjb25maWd1cmF0aW9uKVxuICBjb25zdCByZXBvcnRlciA9IG5ldyBCYWNrZ3JvdW5kSm9ic1N0YXR1c1JlcG9ydGVyKHtjb25maWd1cmF0aW9ufSlcblxuICBjb25zdCByZWdpc3RyeSA9IG5ldyBCYWNrZ3JvdW5kSm9iUmVnaXN0cnkoe2NvbmZpZ3VyYXRpb259KVxuICBhd2FpdCByZWdpc3RyeS5sb2FkKClcbiAgY29uc3QgSm9iQ2xhc3MgPSByZWdpc3RyeS5nZXRKb2JCeU5hbWUocGF5bG9hZC5qb2JOYW1lKVxuICBjb25zdCBqb2JJbnN0YW5jZSA9IG5ldyBKb2JDbGFzcygpXG4gIC8qKlxuICAgKiBQZXJmb3JtLlxuICAgKiBAdHlwZSB7KC4uLmFyZ3M6IEFycmF5PFJldHVyblR5cGU8dHlwZW9mIEpTT04ucGFyc2U+PikgPT4gUHJvbWlzZTx2b2lkPn0gKi9cbiAgY29uc3QgcGVyZm9ybSA9IGpvYkluc3RhbmNlLnBlcmZvcm1cblxuICAvLyBOYW1lIHRoZSBwcm9jZXNzIGFmdGVyIHRoZSBqb2IgaXQgaXMgcnVubmluZyBzbyBgcHNgL2B0b3BgIHNob3cgd2hhdCBlYWNoXG4gIC8vIHJ1bm5lciBpcyBkb2luZzsgcmVzdG9yZWQgaW4gdGhlIGBmaW5hbGx5YCBiZWxvdyB3aGVuIHRoZSBqb2IgZmluaXNoZXMuXG4gIC8vIFNraXBwZWQgZm9yIGNvbmN1cnJlbnQgcG9vbGVkIHJ1bm5lcnMsIHdob3NlIGNoaWxkIG93bnMgYW4gYWdncmVnYXRlIHRpdGxlLlxuICBjb25zdCBwcmV2aW91c1RpdGxlID0gcHJvY2Vzcy50aXRsZVxuICBpZiAobWFuYWdlUHJvY2Vzc1RpdGxlKSBwcm9jZXNzLnRpdGxlID0gcnVubmVyUHJvY2Vzc1RpdGxlKEpvYkNsYXNzLCBwYXlsb2FkKVxuXG4gIHRyeSB7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IGNvbmZpZ3VyYXRpb24ud2l0aENvbm5lY3Rpb25zKHtkYXRhYmFzZUlkZW50aWZpZXJzOiBKb2JDbGFzcy5kYXRhYmFzZUlkZW50aWZpZXJzLCBuYW1lOiBgQmFja2dyb3VuZCBqb2IgcnVubmVyOiAke3BheWxvYWQuam9iTmFtZX1gfSwgYXN5bmMgKCkgPT4ge1xuICAgICAgICBhd2FpdCBwZXJmb3JtLmFwcGx5KGpvYkluc3RhbmNlLCBwYXlsb2FkLmFyZ3MgfHwgW10pXG4gICAgICB9KVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBCYWNrZ3JvdW5kSm9iUmVzY2hlZHVsZVNpZ25hbCkge1xuICAgICAgICBpZiAocGF5bG9hZC5pZCkge1xuICAgICAgICAgIGF3YWl0IHJlcG9ydGVyLnJlcG9ydFdpdGhSZXRyeSh7XG4gICAgICAgICAgICBqb2JJZDogcGF5bG9hZC5pZCxcbiAgICAgICAgICAgIHN0YXR1czogXCJyZXNjaGVkdWxlZFwiLFxuICAgICAgICAgICAgZGVsYXlNczogZXJyb3IuZGVsYXlNcyxcbiAgICAgICAgICAgIGhhbmRvZmZJZDogcGF5bG9hZC5oYW5kb2ZmSWQsXG4gICAgICAgICAgICB3b3JrZXJJZDogcGF5bG9hZC53b3JrZXJJZCxcbiAgICAgICAgICAgIGhhbmRlZE9mZkF0TXM6IHBheWxvYWQuaGFuZGVkT2ZmQXRNcyxcbiAgICAgICAgICAgIG1heER1cmF0aW9uTXM6IDMwMDAwLFxuICAgICAgICAgICAgcmV0cnlQZXJzaXN0RXJyb3JzOiB0cnVlXG4gICAgICAgICAgfSlcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBcInJlc2NoZWR1bGVkXCJcbiAgICAgIH1cblxuICAgICAgY29uc3QgcGVyZm9ybWVkRXJyb3IgPSBlcnJvciBpbnN0YW5jZW9mIEVycm9yID8gZXJyb3IgOiBuZXcgRXJyb3IoU3RyaW5nKGVycm9yKSlcbiAgICAgIGlmIChwYXlsb2FkLmlkKSB7XG4gICAgICAgIGF3YWl0IHJlcG9ydGVyLnJlcG9ydFdpdGhSZXRyeSh7XG4gICAgICAgICAgam9iSWQ6IHBheWxvYWQuaWQsXG4gICAgICAgICAgc3RhdHVzOiBcImZhaWxlZFwiLFxuICAgICAgICAgIGVycm9yOiBwZXJmb3JtZWRFcnJvcixcbiAgICAgICAgICBoYW5kb2ZmSWQ6IHBheWxvYWQuaGFuZG9mZklkLFxuICAgICAgICAgIHdvcmtlcklkOiBwYXlsb2FkLndvcmtlcklkLFxuICAgICAgICAgIGhhbmRlZE9mZkF0TXM6IHBheWxvYWQuaGFuZGVkT2ZmQXRNcyxcbiAgICAgICAgICBtYXhEdXJhdGlvbk1zOiAzMDAwMFxuICAgICAgICB9KVxuICAgICAgfVxuXG4gICAgICB0aHJvdyBuZXcgQmFja2dyb3VuZEpvYlBlcmZvcm1lZEZhaWx1cmUocGVyZm9ybWVkRXJyb3IpXG4gICAgfVxuXG4gICAgaWYgKHBheWxvYWQuaWQpIHtcbiAgICAgIGF3YWl0IHJlcG9ydGVyLnJlcG9ydFdpdGhSZXRyeSh7XG4gICAgICAgIGpvYklkOiBwYXlsb2FkLmlkLFxuICAgICAgICBzdGF0dXM6IFwiY29tcGxldGVkXCIsXG4gICAgICAgIGhhbmRvZmZJZDogcGF5bG9hZC5oYW5kb2ZmSWQsXG4gICAgICAgIHdvcmtlcklkOiBwYXlsb2FkLndvcmtlcklkLFxuICAgICAgICBoYW5kZWRPZmZBdE1zOiBwYXlsb2FkLmhhbmRlZE9mZkF0TXMsXG4gICAgICAgIG1heER1cmF0aW9uTXM6IDMwMDAwXG4gICAgICB9KVxuICAgIH1cbiAgICByZXR1cm4gXCJjb21wbGV0ZWRcIlxuICB9IGZpbmFsbHkge1xuICAgIC8vIFJlc3RvcmUgdGhlIHJ1bm5lcidzIGJhc2UgdGl0bGUgc28gYSBsaW5nZXJpbmcvaWRsZSBydW5uZXIgKG9yIGEgcmV1c2VkXG4gICAgLy8gb25lKSBkb2Vzbid0IG1pc3JlcG9ydCBhIGZpbmlzaGVkIGpvYiBhcyBzdGlsbCBydW5uaW5nLlxuICAgIGlmIChtYW5hZ2VQcm9jZXNzVGl0bGUpIHByb2Nlc3MudGl0bGUgPSBwcmV2aW91c1RpdGxlXG4gICAgaWYgKGNsb3NlQ29ubmVjdGlvbnMpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGNvbmZpZ3VyYXRpb24uZGlzY29ubmVjdEJlYWNvbigpXG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBhd2FpdCBjb25maWd1cmF0aW9uLmNsb3NlRGF0YWJhc2VDb25uZWN0aW9ucygpXG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
166
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam9iLXJ1bm5lci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9iYWNrZ3JvdW5kLWpvYnMvam9iLXJ1bm5lci5qcyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxZQUFZO0FBRVosT0FBTyxxQkFBcUIsTUFBTSw4QkFBOEIsQ0FBQTtBQUNoRSxPQUFPLHFCQUFxQixNQUFNLG1CQUFtQixDQUFBO0FBQ3JELE9BQU8sNEJBQTRCLE1BQU0sc0JBQXNCLENBQUE7QUFDL0QsT0FBTyw2QkFBNkIsTUFBTSx3QkFBd0IsQ0FBQTtBQUVsRSxNQUFNLHVCQUF1QixHQUFHLElBQUksQ0FBQTtBQUVwQyxNQUFNLE9BQU8sNkJBQThCLFNBQVEsS0FBSztJQUN0RDs7O09BR0c7SUFDSCxZQUFZLEtBQUs7UUFDZixLQUFLLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFDLEtBQUssRUFBQyxDQUFDLENBQUE7UUFDN0IsSUFBSSxDQUFDLElBQUksR0FBRywrQkFBK0IsQ0FBQTtJQUM3QyxDQUFDO0NBQ0Y7QUFFRDs7Ozs7R0FLRztBQUNILFNBQVMsc0JBQXNCLENBQUMsYUFBYSxFQUFFLEtBQUs7SUFDbEQsTUFBTSxXQUFXLEdBQUcsYUFBYSxDQUFDLGNBQWMsRUFBRSxDQUFBO0lBQ2xELE1BQU0sZUFBZSxHQUFHLEtBQUssWUFBWSxLQUFLLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7SUFDakYsTUFBTSxPQUFPLEdBQUc7UUFDZCxPQUFPLEVBQUUsRUFBQyxRQUFRLEVBQUUsd0JBQXdCLEVBQUUsS0FBSyxFQUFFLGNBQWMsRUFBQztRQUNwRSxLQUFLLEVBQUUsZUFBZTtLQUN2QixDQUFBO0lBQ0QsTUFBTSxXQUFXLEdBQUcsV0FBVyxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUM7V0FDL0QsV0FBVyxDQUFDLGFBQWEs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dXJhdGlvblJlc29sdmVyIGZyb20gXCIuLi9jb25maWd1cmF0aW9uLXJlc29sdmVyLmpzXCJcbmltcG9ydCBCYWNrZ3JvdW5kSm9iUmVnaXN0cnkgZnJvbSBcIi4vam9iLXJlZ2lzdHJ5LmpzXCJcbmltcG9ydCBCYWNrZ3JvdW5kSm9ic1N0YXR1c1JlcG9ydGVyIGZyb20gXCIuL3N0YXR1cy1yZXBvcnRlci5qc1wiXG5pbXBvcnQgQmFja2dyb3VuZEpvYlJlc2NoZWR1bGVTaWduYWwgZnJvbSBcIi4vcmVzY2hlZHVsZS1zaWduYWwuanNcIlxuXG5jb25zdCBCRUFDT05fUkVBRFlfVElNRU9VVF9NUyA9IDUwMDBcblxuZXhwb3J0IGNsYXNzIEJhY2tncm91bmRKb2JQZXJmb3JtZWRGYWlsdXJlIGV4dGVuZHMgRXJyb3Ige1xuICAvKipcbiAgICogQ3JlYXRlcyBhIHBlcmZvcm1lZC1qb2IgZmFpbHVyZSBhZnRlciBpdHMgdGVybWluYWwgcmVwb3J0IGlzIGFja25vd2xlZGdlZC5cbiAgICogQHBhcmFtIHtFcnJvcn0gY2F1c2UgLSBBIGpvYiBwZXJmb3JtIGVycm9yIHdob3NlIGZhaWxlZCB0ZXJtaW5hbCByZXBvcnQgd2FzIGFja25vd2xlZGdlZC5cbiAgICovXG4gIGNvbnN0cnVjdG9yKGNhdXNlKSB7XG4gICAgc3VwZXIoY2F1c2UubWVzc2FnZSwge2NhdXNlfSlcbiAgICB0aGlzLm5hbWUgPSBcIkJhY2tncm91bmRKb2JQZXJmb3JtZWRGYWlsdXJlXCJcbiAgfVxufVxuXG4vKipcbiAqIFJ1bnMgcmVwb3J0IGJlYWNvbiByZWFkeSBlcnJvci5cbiAqIEBwYXJhbSB7aW1wb3J0KFwiLi4vY29uZmlndXJhdGlvbi5qc1wiKS5kZWZhdWx0fSBjb25maWd1cmF0aW9uIC0gQ29uZmlndXJhdGlvbi5cbiAqIEBwYXJhbSB7UmV0dXJuVHlwZTx0eXBlb2YgSlNPTi5wYXJzZT59IGVycm9yIC0gQmVhY29uIHJlYWRpbmVzcyBlcnJvci5cbiAqIEByZXR1cm5zIHt2b2lkfVxuICovXG5mdW5jdGlvbiByZXBvcnRCZWFjb25SZWFkeUVycm9yKGNvbmZpZ3VyYXRpb24sIGVycm9yKSB7XG4gIGNvbnN0IGVycm9yRXZlbnRzID0gY29uZmlndXJhdGlvbi5nZXRFcnJvckV2ZW50cygpXG4gIGNvbnN0IG5vcm1hbGl6ZWRFcnJvciA9IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvciA6IG5ldyBFcnJvcihTdHJpbmcoZXJyb3IpKVxuICBjb25zdCBwYXlsb2FkID0ge1xuICAgIGNvbnRleHQ6IHtwZWVyVHlwZTogXCJiYWNrZ3JvdW5kLWpvYnMtcnVubmVyXCIsIHN0YWdlOiBcImJlYWNvbi1yZWFkeVwifSxcbiAgICBlcnJvcjogbm9ybWFsaXplZEVycm9yXG4gIH1cbiAgY29uc3QgaGFzTGlzdGVuZXIgPSBlcnJvckV2ZW50cy5saXN0ZW5lckNvdW50KFwiZnJhbWV3b3JrLWVycm9yXCIpID4gMFxuICAgIHx8IGVycm9yRXZlbnRzLmxpc3RlbmVyQ291bnQoXCJhbGwtZXJyb3JcIikgPiAwXG5cbiAgZXJyb3JFdmVudHMuZW1pdChcImZyYW1ld29yay1lcnJvclwiLCBwYXlsb2FkKVxuICBlcnJvckV2ZW50cy5lbWl0KFwiYWxsLWVycm9yXCIsIHsuLi5wYXlsb2FkLCBlcnJvclR5cGU6IFwiZnJhbWV3b3JrLWVycm9yXCJ9KVxuXG4gIGlmICghaGFzTGlzdGVuZXIpIHtcbiAgICBjb25zb2xlLmVycm9yKGBbdmVsb2Npb3VzIGZyYW1ld29yay1lcnJvciBzdGFnZT1iZWFjb24tcmVhZHldICR7bm9ybWFsaXplZEVycm9yLm1lc3NhZ2V9YClcbiAgfVxufVxuXG4vKipcbiAqIFJ1bnMgY29ubmVjdCBiZWFjb24uXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4uL2NvbmZpZ3VyYXRpb24uanNcIikuZGVmYXVsdH0gY29uZmlndXJhdGlvbiAtIENvbmZpZ3VyYXRpb24uXG4gKiBAcmV0dXJucyB7UHJvbWlzZTx2b2lkPn1cbiAqL1xuYXN5bmMgZnVuY3Rpb24gY29ubmVjdEJlYWNvbihjb25maWd1cmF0aW9uKSB7XG4gIGNvbnN0IGJlYWNvbkNsaWVudCA9IGF3YWl0IGNvbmZpZ3VyYXRpb24uY29ubmVjdEJlYWNvbih7cGVlclR5cGU6IFwiYmFja2dyb3VuZC1qb2JzLXJ1bm5lclwifSlcblxuICBpZiAoIWJlYWNvbkNsaWVudCkgcmV0dXJuXG5cbiAgdHJ5IHtcbiAgICBhd2FpdCBiZWFjb25DbGllbnQud2FpdEZvclJlYWR5KHt0aW1lb3V0TXM6IEJFQUNPTl9SRUFEWV9USU1FT1VUX01TfSlcbiAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICByZXBvcnRCZWFjb25SZWFkeUVycm9yKGNvbmZpZ3VyYXRpb24sIGVycm9yKVxuICB9XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgdGhlIHByb2Nlc3MgdGl0bGUgdG8gc2hvdyB3aGlsZSBhIGpvYiBydW5zOiB0aGUgam9iIGNsYXNzJ3MgZGVjbGFyZWRcbiAqIGBzdGF0aWMgcHJvY2Vzc1RpdGxlYCwgZWxzZSBhIGB2ZWxvY2lvdXMgam9iLXJ1bm5lcjogPEpvYk5hbWU+YCBmYWxsYmFjay5cbiAqIEBwYXJhbSB7dHlwZW9mIGltcG9ydChcIi4vam9iLmpzXCIpLmRlZmF1bHR9IEpvYkNsYXNzIC0gUmVzb2x2ZWQgam9iIGNsYXNzLlxuICogQHBhcmFtIHtpbXBvcnQoXCIuL3R5cGVzLmpzXCIpLkJhY2tncm91bmRKb2JQYXlsb2FkfSBwYXlsb2FkIC0gUGF5bG9hZC5cbiAqIEByZXR1cm5zIHtzdHJpbmd9IC0gUHJvY2VzcyB0aXRsZS5cbiAqL1xuZnVuY3Rpb24gcnVubmVyUHJvY2Vzc1RpdGxlKEpvYkNsYXNzLCBwYXlsb2FkKSB7XG4gIGNvbnN0IGRlY2xhcmVkID0gSm9iQ2xhc3MucHJvY2Vzc1RpdGxlXG5cbiAgaWYgKHR5cGVvZiBkZWNsYXJlZCA9PT0gXCJzdHJpbmdcIiAmJiBkZWNsYXJlZC5sZW5ndGggPiAwKSByZXR1cm4gZGVjbGFyZWRcblxuICByZXR1cm4gYHZlbG9jaW91cyBqb2ItcnVubmVyOiAke3BheWxvYWQuam9iTmFtZX1gXG59XG5cbi8qKlxuICogUnVucyBydW4gam9iIHBheWxvYWQuXG4gKiBAcGFyYW0ge2ltcG9ydChcIi4vdHlwZXMuanNcIikuQmFja2dyb3VuZEpvYlBheWxvYWR9IHBheWxvYWQgLSBQYXlsb2FkLlxuICogQHBhcmFtIHtvYmplY3R9IFtvcHRpb25zXSAtIFJ1bm5lciBvcHRpb25zLlxuICogQHBhcmFtIHtib29sZWFufSBbb3B0aW9ucy5jbG9zZUNvbm5lY3Rpb25zXSAtIFdoZXRoZXIgdG8gZ3JhY2VmdWxseSBjbG9zZSBmcmFtZXdvcmsgY29ubmVjdGlvbnMgYWZ0ZXIgdGhlIGpvYi5cbiAqIEBwYXJhbSB7Ym9vbGVhbn0gW29wdGlvbnMubWFuYWdlUHJvY2Vzc1RpdGxlXSAtIFdoZXRoZXIgdG8gc2V0IHRoZSBwZXItam9iIHByb2Nlc3MgdGl0bGUgYW5kIHJlc3RvcmUgaXQgYWZ0ZXJ3YXJkcy4gT2ZmIGZvciBjb25jdXJyZW50IHBvb2xlZCBydW5uZXJzLCB3aGVyZSBpbnRlcmxlYXZlZCBzbmFwc2hvdC9yZXN0b3JlIG9mIHRoZSBzaW5nbGUgcHJvY2Vzcy13aWRlIGBwcm9jZXNzLnRpdGxlYCB3b3VsZCBjb3JydXB0IGl0OyB0aGUgcG9vbGVkIGNoaWxkIG93bnMgYW4gYWdncmVnYXRlIHRpdGxlIGluc3RlYWQuXG4gKiBAcmV0dXJucyB7UHJvbWlzZTxcImNvbXBsZXRlZFwiIHwgXCJyZXNjaGVkdWxlZFwiPn0gLSBBY2tub3dsZWRnZWQgb3V0Y29tZS5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgYXN5bmMgZnVuY3Rpb24gcnVuSm9iUGF5bG9hZChwYXlsb2FkLCB7Y2xvc2VDb25uZWN0aW9ucyA9IHRydWUsIG1hbmFnZVByb2Nlc3NUaXRsZSA9IHRydWV9ID0ge30pIHtcbiAgY29uc3QgY29uZmlndXJhdGlvbiA9IGF3YWl0IGNvbmZpZ3VyYXRpb25SZXNvbHZlcigpXG4gIGNvbmZpZ3VyYXRpb24uc2V0Q3VycmVudCgpXG4gIGF3YWl0IGNvbmZpZ3VyYXRpb24uaW5pdGlhbGl6ZSh7dHlwZTogXCJiYWNrZ3JvdW5kLWpvYnMtcnVubmVyXCJ9KVxuICBhd2FpdCBjb25uZWN0QmVhY29uKGNvbmZpZ3VyYXRpb24pXG4gIGNvbnN0IHJlcG9ydGVyID0gbmV3IEJhY2tncm91bmRKb2JzU3RhdHVzUmVwb3J0ZXIoe2NvbmZpZ3VyYXRpb259KVxuXG4gIGNvbnN0IHJlZ2lzdHJ5ID0gbmV3IEJhY2tncm91bmRKb2JSZWdpc3RyeSh7Y29uZmlndXJhdGlvbn0pXG4gIGF3YWl0IHJlZ2lzdHJ5LmxvYWQoKVxuICBjb25zdCBKb2JDbGFzcyA9IHJlZ2lzdHJ5LmdldEpvYkJ5TmFtZShwYXlsb2FkLmpvYk5hbWUpXG4gIGNvbnN0IGpvYkluc3RhbmNlID0gbmV3IEpvYkNsYXNzKClcbiAgY29uc3Qgam9iQXJncyA9IHBheWxvYWQuYXJncyB8fCBbXVxuICBqb2JJbnN0YW5jZS5fc2V0QmFja2dyb3VuZEpvYkNvbnRleHQoe1xuICAgIGFyZ3M6IGpvYkFyZ3MsXG4gICAgam9iQ2xhc3M6IEpvYkNsYXNzLFxuICAgIGpvYk5hbWU6IHBheWxvYWQuam9iTmFtZSxcbiAgICBvcHRpb25zOiBwYXlsb2FkLm9wdGlvbnMgfHwge30sXG4gICAgcGF5bG9hZFxuICB9KVxuICAvKipcbiAgICogUGVyZm9ybS5cbiAgICogQHR5cGUgeyguLi5hcmdzOiBBcnJheTxSZXR1cm5UeXBlPHR5cGVvZiBKU09OLnBhcnNlPj4pID0+IFByb21pc2U8dm9pZD59ICovXG4gIGNvbnN0IHBlcmZvcm0gPSBqb2JJbnN0YW5jZS5wZXJmb3JtXG5cbiAgLy8gTmFtZSB0aGUgcHJvY2VzcyBhZnRlciB0aGUgam9iIGl0IGlzIHJ1bm5pbmcgc28gYHBzYC9gdG9wYCBzaG93IHdoYXQgZWFjaFxuICAvLyBydW5uZXIgaXMgZG9pbmc7IHJlc3RvcmVkIGluIHRoZSBgZmluYWxseWAgYmVsb3cgd2hlbiB0aGUgam9iIGZpbmlzaGVzLlxuICAvLyBTa2lwcGVkIGZvciBjb25jdXJyZW50IHBvb2xlZCBydW5uZXJzLCB3aG9zZSBjaGlsZCBvd25zIGFuIGFnZ3JlZ2F0ZSB0aXRsZS5cbiAgY29uc3QgcHJldmlvdXNUaXRsZSA9IHByb2Nlc3MudGl0bGVcbiAgaWYgKG1hbmFnZVByb2Nlc3NUaXRsZSkgcHJvY2Vzcy50aXRsZSA9IHJ1bm5lclByb2Nlc3NUaXRsZShKb2JDbGFzcywgcGF5bG9hZClcblxuICB0cnkge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBjb25maWd1cmF0aW9uLndpdGhDb25uZWN0aW9ucyh7ZGF0YWJhc2VJZGVudGlmaWVyczogSm9iQ2xhc3MuZGF0YWJhc2VJZGVudGlmaWVycywgbmFtZTogYEJhY2tncm91bmQgam9iIHJ1bm5lcjogJHtwYXlsb2FkLmpvYk5hbWV9YH0sIGFzeW5jICgpID0+IHtcbiAgICAgICAgYXdhaXQgcGVyZm9ybS5hcHBseShqb2JJbnN0YW5jZSwgam9iQXJncylcbiAgICAgIH0pXG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmIChlcnJvciBpbnN0YW5jZW9mIEJhY2tncm91bmRKb2JSZXNjaGVkdWxlU2lnbmFsKSB7XG4gICAgICAgIGlmIChwYXlsb2FkLmlkKSB7XG4gICAgICAgICAgYXdhaXQgcmVwb3J0ZXIucmVwb3J0V2l0aFJldHJ5KHtcbiAgICAgICAgICAgIGpvYklkOiBwYXlsb2FkLmlkLFxuICAgICAgICAgICAgc3RhdHVzOiBcInJlc2NoZWR1bGVkXCIsXG4gICAgICAgICAgICBkZWxheU1zOiBlcnJvci5kZWxheU1zLFxuICAgICAgICAgICAgaGFuZG9mZklkOiBwYXlsb2FkLmhhbmRvZmZJZCxcbiAgICAgICAgICAgIHdvcmtlcklkOiBwYXlsb2FkLndvcmtlcklkLFxuICAgICAgICAgICAgaGFuZGVkT2ZmQXRNczogcGF5bG9hZC5oYW5kZWRPZmZBdE1zLFxuICAgICAgICAgICAgbWF4RHVyYXRpb25NczogMzAwMDAsXG4gICAgICAgICAgICByZXRyeVBlcnNpc3RFcnJvcnM6IHRydWVcbiAgICAgICAgICB9KVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFwicmVzY2hlZHVsZWRcIlxuICAgICAgfVxuXG4gICAgICBjb25zdCBwZXJmb3JtZWRFcnJvciA9IGVycm9yIGluc3RhbmNlb2YgRXJyb3IgPyBlcnJvciA6IG5ldyBFcnJvcihTdHJpbmcoZXJyb3IpKVxuICAgICAgaWYgKHBheWxvYWQuaWQpIHtcbiAgICAgICAgYXdhaXQgcmVwb3J0ZXIucmVwb3J0V2l0aFJldHJ5KHtcbiAgICAgICAgICBqb2JJZDogcGF5bG9hZC5pZCxcbiAgICAgICAgICBzdGF0dXM6IFwiZmFpbGVkXCIsXG4gICAgICAgICAgZXJyb3I6IHBlcmZvcm1lZEVycm9yLFxuICAgICAgICAgIGhhbmRvZmZJZDogcGF5bG9hZC5oYW5kb2ZmSWQsXG4gICAgICAgICAgd29ya2VySWQ6IHBheWxvYWQud29ya2VySWQsXG4gICAgICAgICAgaGFuZGVkT2ZmQXRNczogcGF5bG9hZC5oYW5kZWRPZmZBdE1zLFxuICAgICAgICAgIG1heER1cmF0aW9uTXM6IDMwMDAwXG4gICAgICAgIH0pXG4gICAgICB9XG5cbiAgICAgIHRocm93IG5ldyBCYWNrZ3JvdW5kSm9iUGVyZm9ybWVkRmFpbHVyZShwZXJmb3JtZWRFcnJvcilcbiAgICB9XG5cbiAgICBpZiAocGF5bG9hZC5pZCkge1xuICAgICAgYXdhaXQgcmVwb3J0ZXIucmVwb3J0V2l0aFJldHJ5KHtcbiAgICAgICAgam9iSWQ6IHBheWxvYWQuaWQsXG4gICAgICAgIHN0YXR1czogXCJjb21wbGV0ZWRcIixcbiAgICAgICAgaGFuZG9mZklkOiBwYXlsb2FkLmhhbmRvZmZJZCxcbiAgICAgICAgd29ya2VySWQ6IHBheWxvYWQud29ya2VySWQsXG4gICAgICAgIGhhbmRlZE9mZkF0TXM6IHBheWxvYWQuaGFuZGVkT2ZmQXRNcyxcbiAgICAgICAgbWF4RHVyYXRpb25NczogMzAwMDBcbiAgICAgIH0pXG4gICAgfVxuICAgIHJldHVybiBcImNvbXBsZXRlZFwiXG4gIH0gZmluYWxseSB7XG4gICAgLy8gUmVzdG9yZSB0aGUgcnVubmVyJ3MgYmFzZSB0aXRsZSBzbyBhIGxpbmdlcmluZy9pZGxlIHJ1bm5lciAob3IgYSByZXVzZWRcbiAgICAvLyBvbmUpIGRvZXNuJ3QgbWlzcmVwb3J0IGEgZmluaXNoZWQgam9iIGFzIHN0aWxsIHJ1bm5pbmcuXG4gICAgaWYgKG1hbmFnZVByb2Nlc3NUaXRsZSkgcHJvY2Vzcy50aXRsZSA9IHByZXZpb3VzVGl0bGVcbiAgICBpZiAoY2xvc2VDb25uZWN0aW9ucykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgY29uZmlndXJhdGlvbi5kaXNjb25uZWN0QmVhY29uKClcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGF3YWl0IGNvbmZpZ3VyYXRpb24uY2xvc2VEYXRhYmFzZUNvbm5lY3Rpb25zKClcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -1 +1 @@
1
- {"version":3,"file":"local-dispatcher.d.ts","sourceRoot":"","sources":["../../../src/background-jobs/local-dispatcher.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"local-dispatcher.d.ts","sourceRoot":"","sources":["../../../src/background-jobs/local-dispatcher.js"],"names":[],"mappings":"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"}