vitest 0.3.1 → 0.3.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli.js +21 -17
- package/dist/{client-ab3f363e.js → client-d27bd0a9.js} +3 -3
- package/dist/constants-861ea902.js +32 -0
- package/dist/{create-b3b05216.js → create-c989e565.js} +24 -16
- package/dist/defaults-ac98ff15.js +52 -0
- package/dist/{diff-e2ede84f.js → diff-00c7fe6a.js} +4 -3
- package/dist/entry.js +18 -17
- package/dist/{globals-b87ef70d.js → globals-4885c33f.js} +9 -7
- package/dist/index-373b5ce3.js +187 -0
- package/dist/index-5e0ca99c.js +224 -0
- package/dist/index-b99f1c97.js +49 -0
- package/dist/index.d.ts +47 -19
- package/dist/index.js +6 -8
- package/dist/node.d.ts +0 -4
- package/dist/node.js +11 -9
- package/dist/rpc-377d999b.js +6 -0
- package/dist/{setup-55c4a74b.js → setup-a6f25b61.js} +6 -5
- package/dist/{source-map-0ecca7b8.js → source-map-1b1fae71.js} +2 -2
- package/dist/vi-b258f071.js +5936 -0
- package/dist/worker.js +11 -12
- package/package.json +4 -4
- package/dist/constants-8fcbf9b6.js +0 -80
- package/dist/index-e32575f8.js +0 -44
- package/dist/index-f55e7b59.js +0 -406
- package/dist/rpc-8c7cc374.js +0 -6
- package/dist/vi-93df942a.js +0 -5922
package/dist/worker.js
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { i as isNodeBuiltin, t as toFilePath, V as ViteNodeRunner, c as createBirpc } from './client-
|
|
3
|
-
import { d as distDir } from './constants-
|
|
1
|
+
import { d as dirname, b as basename, r as resolve } from './index-373b5ce3.js';
|
|
2
|
+
import { i as isNodeBuiltin, t as toFilePath, V as ViteNodeRunner, c as createBirpc } from './client-d27bd0a9.js';
|
|
3
|
+
import { d as distDir } from './constants-861ea902.js';
|
|
4
4
|
import { existsSync, readdirSync } from 'fs';
|
|
5
|
-
import {
|
|
5
|
+
import { m as isWindows, o as mergeSlashes } from './index-5e0ca99c.js';
|
|
6
|
+
import { r as rpc } from './rpc-377d999b.js';
|
|
6
7
|
import 'path';
|
|
7
|
-
import 'tty';
|
|
8
|
-
import 'local-pkg';
|
|
9
8
|
import 'module';
|
|
10
9
|
import 'url';
|
|
11
10
|
import 'assert';
|
|
12
11
|
import 'util';
|
|
13
12
|
import 'vm';
|
|
13
|
+
import 'tty';
|
|
14
|
+
import 'local-pkg';
|
|
14
15
|
|
|
15
16
|
function normalizeId(id, base) {
|
|
16
17
|
if (base && id.startsWith(base))
|
|
@@ -71,8 +72,7 @@ class VitestMocker {
|
|
|
71
72
|
(this.callbacks[event] ?? []).forEach((fn) => fn(...args));
|
|
72
73
|
}
|
|
73
74
|
getSuiteFilepath() {
|
|
74
|
-
|
|
75
|
-
return ((_a = process.__vitest_worker__) == null ? void 0 : _a.filepath) || "global";
|
|
75
|
+
return (__vitest_worker__ == null ? void 0 : __vitest_worker__.filepath) || "global";
|
|
76
76
|
}
|
|
77
77
|
getMocks() {
|
|
78
78
|
const suite = this.getSuiteFilepath();
|
|
@@ -239,6 +239,7 @@ class VitestMocker {
|
|
|
239
239
|
|
|
240
240
|
async function executeInViteNode(options) {
|
|
241
241
|
const runner = new VitestRunner(options);
|
|
242
|
+
await runner.executeId("/@vite/env");
|
|
242
243
|
const result = [];
|
|
243
244
|
for (const file of options.files)
|
|
244
245
|
result.push(await runner.executeFile(file));
|
|
@@ -299,11 +300,9 @@ async function startViteNode(ctx) {
|
|
|
299
300
|
return _viteNode;
|
|
300
301
|
}
|
|
301
302
|
function init(ctx) {
|
|
302
|
-
if (process.__vitest_worker__ && ctx.config.threads && ctx.config.isolate)
|
|
303
|
-
throw new Error(`worker for ${ctx.files.join(",")} already initialized by ${process.__vitest_worker__.ctx.files.join(",")}. This is probably an internal bug of Vitest.`);
|
|
304
303
|
process.stdout.write("\0");
|
|
305
304
|
const { config, port } = ctx;
|
|
306
|
-
|
|
305
|
+
globalThis.__vitest_worker__ = {
|
|
307
306
|
ctx,
|
|
308
307
|
moduleCache,
|
|
309
308
|
config,
|
|
@@ -333,4 +332,4 @@ async function run(ctx) {
|
|
|
333
332
|
}
|
|
334
333
|
|
|
335
334
|
export { collect, run };
|
|
336
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyLmpzIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMvcGF0aC50cyIsIi4uL3NyYy9ub2RlL21vY2tlci50cyIsIi4uL3NyYy9ub2RlL2V4ZWN1dGUudHMiLCIuLi9zcmMvcnVudGltZS93b3JrZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUlkKGlkOiBzdHJpbmcsIGJhc2U/OiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoYmFzZSAmJiBpZC5zdGFydHNXaXRoKGJhc2UpKVxuICAgIGlkID0gYC8ke2lkLnNsaWNlKGJhc2UubGVuZ3RoKX1gXG5cbiAgcmV0dXJuIGlkXG4gICAgLnJlcGxhY2UoL15cXC9AaWRcXC9fX3gwMF9fLywgJ1xcMCcpIC8vIHZpcnR1YWwgbW9kdWxlcyBzdGFydCB3aXRoIGBcXDBgXG4gICAgLnJlcGxhY2UoL15cXC9AaWRcXC8vLCAnJylcbiAgICAucmVwbGFjZSgvXl9fdml0ZS1icm93c2VyLWV4dGVybmFsOi8sICcnKVxuICAgIC5yZXBsYWNlKC9ebm9kZTovLCAnJylcbiAgICAucmVwbGFjZSgvWz8mXXY9XFx3Ky8sICc/JykgLy8gcmVtb3ZlID92PSBxdWVyeVxuICAgIC5yZXBsYWNlKC9cXD8kLywgJycpIC8vIHJlbW92ZSBlbmQgcXVlcnkgbWFya1xufVxuIiwiaW1wb3J0IHsgZXhpc3RzU3luYywgcmVhZGRpclN5bmMgfSBmcm9tICdmcydcbmltcG9ydCB7IGlzTm9kZUJ1aWx0aW4gfSBmcm9tICdtbGx5J1xuaW1wb3J0IHsgYmFzZW5hbWUsIGRpcm5hbWUsIHJlc29sdmUgfSBmcm9tICdwYXRoZSdcbmltcG9ydCB0eXBlIHsgTW9kdWxlQ2FjaGUgfSBmcm9tICd2aXRlLW5vZGUnXG5pbXBvcnQgeyB0b0ZpbGVQYXRoIH0gZnJvbSAndml0ZS1ub2RlL3V0aWxzJ1xuaW1wb3J0IHsgaXNXaW5kb3dzLCBtZXJnZVNsYXNoZXMsIG5vcm1hbGl6ZUlkIH0gZnJvbSAnLi4vdXRpbHMnXG5pbXBvcnQgeyBkaXN0RGlyIH0gZnJvbSAnLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHR5cGUgeyBFeGVjdXRlT3B0aW9ucyB9IGZyb20gJy4vZXhlY3V0ZSdcblxuZXhwb3J0IHR5cGUgU3VpdGVNb2NrcyA9IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bGwgfCAoKCkgPT4gdW5rbm93bik+PlxuXG50eXBlIENhbGxiYWNrID0gKC4uLmFyZ3M6IGFueVtdKSA9PiB1bmtub3duXG5cbmludGVyZmFjZSBQZW5kaW5nU3VpdGVNb2NrIHtcbiAgaWQ6IHN0cmluZ1xuICBpbXBvcnRlcjogc3RyaW5nXG4gIHR5cGU6ICdtb2NrJyB8ICd1bm1vY2snXG4gIGZhY3Rvcnk/OiAoKSA9PiB1bmtub3duXG59XG5cbmZ1bmN0aW9uIGdldE9iamVjdFR5cGUodmFsdWU6IHVua25vd24pOiBzdHJpbmcge1xuICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5hcHBseSh2YWx1ZSkuc2xpY2UoOCwgLTEpXG59XG5cbmZ1bmN0aW9uIG1vY2tQcm90b3R5cGUoc3B5T246IHR5cGVvZiBpbXBvcnQoJy4uL2ludGVncmF0aW9ucy9qZXN0LW1vY2snKVsnc3B5T24nXSwgcHJvdG86IGFueSkge1xuICBpZiAoIXByb3RvKSByZXR1cm4gbnVsbFxuXG4gIGNvbnN0IG5ld1Byb3RvOiBhbnkgPSB7fVxuXG4gIGNvbnN0IHByb3RvRGVzY3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhwcm90bylcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1zeW50YXhcbiAgZm9yIChjb25zdCBkIGluIHByb3RvRGVzY3IpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3UHJvdG8sIGQsIHByb3RvRGVzY3JbZF0pXG5cbiAgICBpZiAodHlwZW9mIHByb3RvRGVzY3JbZF0udmFsdWUgPT09ICdmdW5jdGlvbicpXG4gICAgICBzcHlPbihuZXdQcm90bywgZCkubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHt9KVxuICB9XG5cbiAgcmV0dXJuIG5ld1Byb3RvXG59XG5cbmNvbnN0IHBlbmRpbmdJZHM6IFBlbmRpbmdTdWl0ZU1vY2tbXSA9IFtdXG5cbmV4cG9ydCBjbGFzcyBWaXRlc3RNb2NrZXIge1xuICBwcml2YXRlIHJlcXVlc3QhOiAoZGVwOiBzdHJpbmcpID0+IHVua25vd25cblxuICBwcml2YXRlIHJvb3Q6IHN0cmluZ1xuXG4gIHByaXZhdGUgY2FsbGJhY2tzOiBSZWNvcmQ8c3RyaW5nLCAoKC4uLmFyZ3M6IGFueVtdKSA9PiB1bmtub3duKVtdPiA9IHt9XG4gIHByaXZhdGUgc3B5PzogdHlwZW9mIGltcG9ydCgnLi4vaW50ZWdyYXRpb25zL2plc3QtbW9jaycpXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG9wdGlvbnM6IEV4ZWN1dGVPcHRpb25zLFxuICAgIHByaXZhdGUgbW9kdWxlQ2FjaGU6IE1hcDxzdHJpbmcsIE1vZHVsZUNhY2hlPixcbiAgICByZXF1ZXN0PzogKGRlcDogc3RyaW5nKSA9PiB1bmtub3duLFxuICApIHtcbiAgICB0aGlzLnJvb3QgPSB0aGlzLm9wdGlvbnMucm9vdFxuICAgIHRoaXMucmVxdWVzdCA9IHJlcXVlc3QhXG4gIH1cblxuICBnZXQgbW9ja01hcCgpIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLm1vY2tNYXBcbiAgfVxuXG4gIHB1YmxpYyBvbihldmVudDogc3RyaW5nLCBjYjogQ2FsbGJhY2spIHtcbiAgICB0aGlzLmNhbGxiYWNrc1tldmVudF0gPz89IFtdXG4gICAgdGhpcy5jYWxsYmFja3NbZXZlbnRdLnB1c2goY2IpXG4gIH1cblxuICBwcml2YXRlIGVtaXQoZXZlbnQ6IHN0cmluZywgLi4uYXJnczogYW55W10pIHtcbiAgICAodGhpcy5jYWxsYmFja3NbZXZlbnRdID8/IFtdKS5mb3JFYWNoKGZuID0+IGZuKC4uLmFyZ3MpKVxuICB9XG5cbiAgcHVibGljIGdldFN1aXRlRmlsZXBhdGgoKSB7XG4gICAgcmV0dXJuIHByb2Nlc3MuX192aXRlc3Rfd29ya2VyX18/LmZpbGVwYXRoIHx8ICdnbG9iYWwnXG4gIH1cblxuICBwdWJsaWMgZ2V0TW9ja3MoKSB7XG4gICAgY29uc3Qgc3VpdGUgPSB0aGlzLmdldFN1aXRlRmlsZXBhdGgoKVxuICAgIGNvbnN0IHN1aXRlTW9ja3MgPSB0aGlzLm1vY2tNYXBbc3VpdGUgfHwgJyddXG4gICAgY29uc3QgZ2xvYmFsTW9ja3MgPSB0aGlzLm1vY2tNYXAuZ2xvYmFsXG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uc3VpdGVNb2NrcyxcbiAgICAgIC4uLmdsb2JhbE1vY2tzLFxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVzb2x2ZVBhdGgoaWQ6IHN0cmluZywgaW1wb3J0ZXI6IHN0cmluZykge1xuICAgIGNvbnN0IHBhdGggPSBhd2FpdCB0aGlzLm9wdGlvbnMucmVzb2x2ZUlkKGlkLCBpbXBvcnRlcilcbiAgICByZXR1cm4ge1xuICAgICAgcGF0aDogbm9ybWFsaXplSWQocGF0aD8uaWQgfHwgaWQpLFxuICAgICAgZXh0ZXJuYWw6IHBhdGg/LmlkLmluY2x1ZGVzKCcvbm9kZV9tb2R1bGVzLycpID8gaWQgOiBudWxsLFxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgcmVzb2x2ZU1vY2tzKCkge1xuICAgIGF3YWl0IFByb21pc2UuYWxsKHBlbmRpbmdJZHMubWFwKGFzeW5jKG1vY2spID0+IHtcbiAgICAgIGNvbnN0IHsgcGF0aCwgZXh0ZXJuYWwgfSA9IGF3YWl0IHRoaXMucmVzb2x2ZVBhdGgobW9jay5pZCwgbW9jay5pbXBvcnRlcilcbiAgICAgIGlmIChtb2NrLnR5cGUgPT09ICd1bm1vY2snKVxuICAgICAgICB0aGlzLnVubW9ja1BhdGgocGF0aClcbiAgICAgIGlmIChtb2NrLnR5cGUgPT09ICdtb2NrJylcbiAgICAgICAgdGhpcy5tb2NrUGF0aChwYXRoLCBleHRlcm5hbCwgbW9jay5mYWN0b3J5KVxuICAgIH0pKVxuXG4gICAgcGVuZGluZ0lkcy5sZW5ndGggPSAwXG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGNhbGxGdW5jdGlvbk1vY2soZGVwOiBzdHJpbmcsIG1vY2s6ICgpID0+IGFueSkge1xuICAgIGNvbnN0IGNhY2hlTmFtZSA9IGAke2RlcH1fX21vY2tgXG4gICAgY29uc3QgY2FjaGVkID0gdGhpcy5tb2R1bGVDYWNoZS5nZXQoY2FjaGVOYW1lKT8uZXhwb3J0c1xuICAgIGlmIChjYWNoZWQpXG4gICAgICByZXR1cm4gY2FjaGVkXG4gICAgY29uc3QgZXhwb3J0cyA9IGF3YWl0IG1vY2soKVxuICAgIHRoaXMuZW1pdCgnbW9ja2VkJywgY2FjaGVOYW1lLCB7IGV4cG9ydHMgfSlcbiAgICByZXR1cm4gZXhwb3J0c1xuICB9XG5cbiAgcHVibGljIGdldERlcGVuZGVuY3lNb2NrKGRlcDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0TW9ja3MoKVt0aGlzLnJlc29sdmVEZXBlbmRlbmN5KGRlcCldXG4gIH1cblxuICBwdWJsaWMgcmVzb2x2ZURlcGVuZGVuY3koZGVwOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbm9ybWFsaXplSWQoZGVwKS5yZXBsYWNlKC9eXFwvQGZzXFwvLywgaXNXaW5kb3dzID8gJycgOiAnLycpXG4gIH1cblxuICBwdWJsaWMgbm9ybWFsaXplUGF0aChwYXRoOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbm9ybWFsaXplSWQocGF0aC5yZXBsYWNlKHRoaXMucm9vdCwgJycpKS5yZXBsYWNlKC9eXFwvQGZzXFwvLywgaXNXaW5kb3dzID8gJycgOiAnLycpXG4gIH1cblxuICBwdWJsaWMgZ2V0RnNQYXRoKHBhdGg6IHN0cmluZywgZXh0ZXJuYWw6IHN0cmluZyB8IG51bGwpIHtcbiAgICBpZiAoZXh0ZXJuYWwpXG4gICAgICByZXR1cm4gbWVyZ2VTbGFzaGVzKGAvQGZzLyR7cGF0aH1gKVxuXG4gICAgcmV0dXJuIG5vcm1hbGl6ZUlkKHBhdGgucmVwbGFjZSh0aGlzLnJvb3QsICcnKSlcbiAgfVxuXG4gIHB1YmxpYyByZXNvbHZlTW9ja1BhdGgobW9ja1BhdGg6IHN0cmluZywgZXh0ZXJuYWw6IHN0cmluZyB8IG51bGwpIHtcbiAgICBjb25zdCBwYXRoID0gbm9ybWFsaXplSWQoZXh0ZXJuYWwgfHwgbW9ja1BhdGgpXG5cbiAgICAvLyBpdCdzIGEgbm9kZV9tb2R1bGUgYWxpYXNcbiAgICAvLyBhbGwgbW9ja3Mgc2hvdWxkIGJlIGluc2lkZSA8cm9vdD4vX19tb2Nrc19fXG4gICAgaWYgKGV4dGVybmFsIHx8IGlzTm9kZUJ1aWx0aW4obW9ja1BhdGgpKSB7XG4gICAgICBjb25zdCBtb2NrRGlybmFtZSA9IGRpcm5hbWUocGF0aCkgLy8gZm9yIG5lc3RlZCBtb2NrczogQHZ1ZXVzZS9pbnRlZ3JhdGlvbi91c2VKd3RcbiAgICAgIGNvbnN0IGJhc2VGaWxlbmFtZSA9IGJhc2VuYW1lKHBhdGgpXG4gICAgICBjb25zdCBtb2NrRm9sZGVyID0gcmVzb2x2ZSh0aGlzLnJvb3QsICdfX21vY2tzX18nLCBtb2NrRGlybmFtZSlcblxuICAgICAgaWYgKCFleGlzdHNTeW5jKG1vY2tGb2xkZXIpKSByZXR1cm4gbnVsbFxuXG4gICAgICBjb25zdCBmaWxlcyA9IHJlYWRkaXJTeW5jKG1vY2tGb2xkZXIpXG5cbiAgICAgIGZvciAoY29uc3QgZmlsZSBvZiBmaWxlcykge1xuICAgICAgICBjb25zdCBbYmFzZW5hbWVdID0gZmlsZS5zcGxpdCgnLicpXG4gICAgICAgIGlmIChiYXNlbmFtZSA9PT0gYmFzZUZpbGVuYW1lKVxuICAgICAgICAgIHJldHVybiByZXNvbHZlKG1vY2tGb2xkZXIsIGZpbGUpLnJlcGxhY2UodGhpcy5yb290LCAnJylcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIG51bGxcbiAgICB9XG5cbiAgICBjb25zdCBkaXIgPSBkaXJuYW1lKHBhdGgpXG4gICAgY29uc3QgYmFzZUlkID0gYmFzZW5hbWUocGF0aClcbiAgICBjb25zdCBmdWxsUGF0aCA9IHJlc29sdmUoZGlyLCAnX19tb2Nrc19fJywgYmFzZUlkKVxuICAgIHJldHVybiBleGlzdHNTeW5jKGZ1bGxQYXRoKSA/IGZ1bGxQYXRoLnJlcGxhY2UodGhpcy5yb290LCAnJykgOiBudWxsXG4gIH1cblxuICBwdWJsaWMgbW9ja09iamVjdChvYmo6IGFueSkge1xuICAgIGlmICghdGhpcy5zcHkpXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ludGVybmFsIFZpdGVzdCBlcnJvcjogU3B5IGZ1bmN0aW9uIGlzIG5vdCBkZWZpbmVkLicpXG5cbiAgICBjb25zdCB0eXBlID0gZ2V0T2JqZWN0VHlwZShvYmopXG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShvYmopKVxuICAgICAgcmV0dXJuIFtdXG4gICAgZWxzZSBpZiAodHlwZSAhPT0gJ09iamVjdCcgJiYgdHlwZSAhPT0gJ01vZHVsZScpXG4gICAgICByZXR1cm4gb2JqXG5cbiAgICBjb25zdCBuZXdPYmogPSB7IC4uLm9iaiB9XG5cbiAgICBjb25zdCBwcm90byA9IG1vY2tQcm90b3R5cGUodGhpcy5zcHkuc3B5T24sIE9iamVjdC5nZXRQcm90b3R5cGVPZihvYmopKVxuICAgIE9iamVjdC5zZXRQcm90b3R5cGVPZihuZXdPYmosIHByb3RvKVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlc3RyaWN0ZWQtc3ludGF4XG4gICAgZm9yIChjb25zdCBrIGluIG9iaikge1xuICAgICAgbmV3T2JqW2tdID0gdGhpcy5tb2NrT2JqZWN0KG9ialtrXSlcbiAgICAgIGNvbnN0IHR5cGUgPSBnZXRPYmplY3RUeXBlKG9ialtrXSlcblxuICAgICAgaWYgKHR5cGUuaW5jbHVkZXMoJ0Z1bmN0aW9uJykgJiYgIW9ialtrXS5fX2lzU3B5KSB7XG4gICAgICAgIHRoaXMuc3B5LnNweU9uKG5ld09iaiwgaykubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHt9KVxuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3T2JqW2tdLCAnbGVuZ3RoJywgeyB2YWx1ZTogMCB9KSAvLyB0aW55c3B5IHJldGFpbnMgbGVuZ3RoLCBidXQgamVzdCBkb2VzbnRcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIG5ld09ialxuICB9XG5cbiAgcHVibGljIHVubW9ja1BhdGgocGF0aDogc3RyaW5nKSB7XG4gICAgY29uc3Qgc3VpdGVmaWxlID0gdGhpcy5nZXRTdWl0ZUZpbGVwYXRoKClcblxuICAgIGNvbnN0IGZzUGF0aCA9IHRoaXMubm9ybWFsaXplUGF0aChwYXRoKVxuXG4gICAgaWYgKHRoaXMubW9ja01hcFtzdWl0ZWZpbGVdPy5bZnNQYXRoXSlcbiAgICAgIGRlbGV0ZSB0aGlzLm1vY2tNYXBbc3VpdGVmaWxlXVtmc1BhdGhdXG4gIH1cblxuICBwdWJsaWMgbW9ja1BhdGgocGF0aDogc3RyaW5nLCBleHRlcm5hbDogc3RyaW5nIHwgbnVsbCwgZmFjdG9yeT86ICgpID0+IGFueSkge1xuICAgIGNvbnN0IHN1aXRlZmlsZSA9IHRoaXMuZ2V0U3VpdGVGaWxlcGF0aCgpXG5cbiAgICBjb25zdCBmc1BhdGggPSB0aGlzLm5vcm1hbGl6ZVBhdGgocGF0aClcblxuICAgIHRoaXMubW9ja01hcFtzdWl0ZWZpbGVdID8/PSB7fVxuICAgIHRoaXMubW9ja01hcFtzdWl0ZWZpbGVdW2ZzUGF0aF0gPSBmYWN0b3J5IHx8IHRoaXMucmVzb2x2ZU1vY2tQYXRoKHBhdGgsIGV4dGVybmFsKVxuICB9XG5cbiAgcHVibGljIGFzeW5jIGltcG9ydEFjdHVhbDxUPihpZDogc3RyaW5nLCBpbXBvcnRlcjogc3RyaW5nKTogUHJvbWlzZTxUPiB7XG4gICAgY29uc3QgeyBwYXRoLCBleHRlcm5hbCB9ID0gYXdhaXQgdGhpcy5yZXNvbHZlUGF0aChpZCwgaW1wb3J0ZXIpXG4gICAgY29uc3QgZnNQYXRoID0gdGhpcy5nZXRGc1BhdGgocGF0aCwgZXh0ZXJuYWwpXG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5yZXF1ZXN0KGZzUGF0aClcbiAgICByZXR1cm4gcmVzdWx0IGFzIFRcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBpbXBvcnRNb2NrKGlkOiBzdHJpbmcsIGltcG9ydGVyOiBzdHJpbmcpOiBQcm9taXNlPGFueT4ge1xuICAgIGNvbnN0IHsgcGF0aCwgZXh0ZXJuYWwgfSA9IGF3YWl0IHRoaXMucmVzb2x2ZVBhdGgoaWQsIGltcG9ydGVyKVxuXG4gICAgbGV0IG1vY2sgPSB0aGlzLmdldERlcGVuZGVuY3lNb2NrKHBhdGgpXG5cbiAgICBpZiAobW9jayA9PT0gdW5kZWZpbmVkKVxuICAgICAgbW9jayA9IHRoaXMucmVzb2x2ZU1vY2tQYXRoKHBhdGgsIGV4dGVybmFsKVxuXG4gICAgaWYgKG1vY2sgPT09IG51bGwpIHtcbiAgICAgIGF3YWl0IHRoaXMuZW5zdXJlU3B5KClcbiAgICAgIGNvbnN0IGZzUGF0aCA9IHRoaXMuZ2V0RnNQYXRoKHBhdGgsIGV4dGVybmFsKVxuICAgICAgY29uc3QgbW9kID0gYXdhaXQgdGhpcy5yZXF1ZXN0KGZzUGF0aClcbiAgICAgIHJldHVybiB0aGlzLm1vY2tPYmplY3QobW9kKVxuICAgIH1cbiAgICBpZiAodHlwZW9mIG1vY2sgPT09ICdmdW5jdGlvbicpXG4gICAgICByZXR1cm4gdGhpcy5jYWxsRnVuY3Rpb25Nb2NrKHBhdGgsIG1vY2spXG4gICAgcmV0dXJuIHRoaXMucmVxdWVzdFdpdGhNb2NrKG1vY2spXG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGVuc3VyZVNweSgpIHtcbiAgICBpZiAodGhpcy5zcHkpIHJldHVyblxuICAgIHRoaXMuc3B5ID0gYXdhaXQgdGhpcy5yZXF1ZXN0KHJlc29sdmUoZGlzdERpciwgJ2plc3QtbW9jay5qcycpKSBhcyB0eXBlb2YgaW1wb3J0KCcuLi9pbnRlZ3JhdGlvbnMvamVzdC1tb2NrJylcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyByZXF1ZXN0V2l0aE1vY2soZGVwOiBzdHJpbmcpIHtcbiAgICBhd2FpdCB0aGlzLmVuc3VyZVNweSgpXG4gICAgYXdhaXQgdGhpcy5yZXNvbHZlTW9ja3MoKVxuXG4gICAgY29uc3QgbW9jayA9IHRoaXMuZ2V0RGVwZW5kZW5jeU1vY2soZGVwKVxuXG4gICAgaWYgKG1vY2sgPT09IG51bGwpIHtcbiAgICAgIGNvbnN0IGNhY2hlTmFtZSA9IGAke2RlcH1fX21vY2tgXG4gICAgICBjb25zdCBjYWNoZSA9IHRoaXMubW9kdWxlQ2FjaGUuZ2V0KGNhY2hlTmFtZSlcbiAgICAgIGlmIChjYWNoZT8uZXhwb3J0cylcbiAgICAgICAgcmV0dXJuIGNhY2hlLmV4cG9ydHNcbiAgICAgIGNvbnN0IGNhY2hlS2V5ID0gdG9GaWxlUGF0aChkZXAsIHRoaXMucm9vdClcbiAgICAgIGNvbnN0IG1vZCA9IHRoaXMubW9kdWxlQ2FjaGUuZ2V0KGNhY2hlS2V5KT8uZXhwb3J0cyB8fCBhd2FpdCB0aGlzLnJlcXVlc3QoZGVwKVxuICAgICAgY29uc3QgZXhwb3J0cyA9IHRoaXMubW9ja09iamVjdChtb2QpXG4gICAgICB0aGlzLmVtaXQoJ21vY2tlZCcsIGNhY2hlTmFtZSwgeyBleHBvcnRzIH0pXG4gICAgICByZXR1cm4gZXhwb3J0c1xuICAgIH1cbiAgICBpZiAodHlwZW9mIG1vY2sgPT09ICdmdW5jdGlvbicpXG4gICAgICByZXR1cm4gdGhpcy5jYWxsRnVuY3Rpb25Nb2NrKGRlcCwgbW9jaylcbiAgICBpZiAodHlwZW9mIG1vY2sgPT09ICdzdHJpbmcnKVxuICAgICAgZGVwID0gbW9ja1xuICAgIHJldHVybiB0aGlzLnJlcXVlc3QoZGVwKVxuICB9XG5cbiAgcHVibGljIHF1ZXVlTW9jayhpZDogc3RyaW5nLCBpbXBvcnRlcjogc3RyaW5nLCBmYWN0b3J5PzogKCkgPT4gdW5rbm93bikge1xuICAgIHBlbmRpbmdJZHMucHVzaCh7IHR5cGU6ICdtb2NrJywgaWQsIGltcG9ydGVyLCBmYWN0b3J5IH0pXG4gIH1cblxuICBwdWJsaWMgcXVldWVVbm1vY2soaWQ6IHN0cmluZywgaW1wb3J0ZXI6IHN0cmluZykge1xuICAgIHBlbmRpbmdJZHMucHVzaCh7IHR5cGU6ICd1bm1vY2snLCBpZCwgaW1wb3J0ZXIgfSlcbiAgfVxuXG4gIHB1YmxpYyB3aXRoUmVxdWVzdChyZXF1ZXN0OiAoZGVwOiBzdHJpbmcpID0+IHVua25vd24pIHtcbiAgICByZXR1cm4gbmV3IFZpdGVzdE1vY2tlcih0aGlzLm9wdGlvbnMsIHRoaXMubW9kdWxlQ2FjaGUsIHJlcXVlc3QpXG4gIH1cbn1cbiIsImltcG9ydCB7IFZpdGVOb2RlUnVubmVyIH0gZnJvbSAndml0ZS1ub2RlL2NsaWVudCdcbmltcG9ydCB0eXBlIHsgTW9kdWxlQ2FjaGUsIFZpdGVOb2RlUmVzb2x2ZUlkLCBWaXRlTm9kZVJ1bm5lck9wdGlvbnMgfSBmcm9tICd2aXRlLW5vZGUnXG5pbXBvcnQgdHlwZSB7IFN1aXRlTW9ja3MgfSBmcm9tICcuL21vY2tlcidcbmltcG9ydCB7IFZpdGVzdE1vY2tlciB9IGZyb20gJy4vbW9ja2VyJ1xuXG5leHBvcnQgdHlwZSBSZXNvbHZlSWRGdW5jdGlvbiA9IChpZDogc3RyaW5nLCBpbXBvcnRlcj86IHN0cmluZykgPT4gUHJvbWlzZTxWaXRlTm9kZVJlc29sdmVJZCB8IG51bGw+XG5cbmV4cG9ydCBpbnRlcmZhY2UgRXhlY3V0ZU9wdGlvbnMgZXh0ZW5kcyBWaXRlTm9kZVJ1bm5lck9wdGlvbnMge1xuICBmaWxlczogc3RyaW5nW11cbiAgbW9ja01hcDogU3VpdGVNb2Nrc1xuICByZXNvbHZlSWQ6IFJlc29sdmVJZEZ1bmN0aW9uXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBleGVjdXRlSW5WaXRlTm9kZShvcHRpb25zOiBFeGVjdXRlT3B0aW9ucykge1xuICBjb25zdCBydW5uZXIgPSBuZXcgVml0ZXN0UnVubmVyKG9wdGlvbnMpXG5cbiAgY29uc3QgcmVzdWx0OiBhbnlbXSA9IFtdXG4gIGZvciAoY29uc3QgZmlsZSBvZiBvcHRpb25zLmZpbGVzKVxuICAgIHJlc3VsdC5wdXNoKGF3YWl0IHJ1bm5lci5leGVjdXRlRmlsZShmaWxlKSlcblxuICByZXR1cm4gcmVzdWx0XG59XG5cbmV4cG9ydCBjbGFzcyBWaXRlc3RSdW5uZXIgZXh0ZW5kcyBWaXRlTm9kZVJ1bm5lciB7XG4gIG1vY2tlcjogVml0ZXN0TW9ja2VyXG5cbiAgY29uc3RydWN0b3IocHVibGljIG9wdGlvbnM6IEV4ZWN1dGVPcHRpb25zKSB7XG4gICAgc3VwZXIob3B0aW9ucylcbiAgICB0aGlzLm1vY2tlciA9IG5ldyBWaXRlc3RNb2NrZXIob3B0aW9ucywgdGhpcy5tb2R1bGVDYWNoZSlcbiAgfVxuXG4gIHByZXBhcmVDb250ZXh0KGNvbnRleHQ6IFJlY29yZDxzdHJpbmcsIGFueT4pIHtcbiAgICBjb25zdCByZXF1ZXN0ID0gY29udGV4dC5fX3ZpdGVfc3NyX2ltcG9ydF9fXG5cbiAgICBjb25zdCBtb2NrZXIgPSB0aGlzLm1vY2tlci53aXRoUmVxdWVzdChyZXF1ZXN0KVxuXG4gICAgbW9ja2VyLm9uKCdtb2NrZWQnLCAoZGVwOiBzdHJpbmcsIG1vZHVsZTogUGFydGlhbDxNb2R1bGVDYWNoZT4pID0+IHtcbiAgICAgIHRoaXMuc2V0Q2FjaGUoZGVwLCBtb2R1bGUpXG4gICAgfSlcblxuICAgIHJldHVybiBPYmplY3QuYXNzaWduKGNvbnRleHQsIHtcbiAgICAgIF9fdml0ZV9zc3JfaW1wb3J0X186IChkZXA6IHN0cmluZykgPT4gbW9ja2VyLnJlcXVlc3RXaXRoTW9jayhkZXApLFxuICAgICAgX192aXRlX3Nzcl9keW5hbWljX2ltcG9ydF9fOiAoZGVwOiBzdHJpbmcpID0+IG1vY2tlci5yZXF1ZXN0V2l0aE1vY2soZGVwKSxcblxuICAgICAgX192aXRlc3RfbW9ja2VyX186IG1vY2tlcixcbiAgICB9KVxuICB9XG59XG4iLCJpbXBvcnQgeyByZXNvbHZlIH0gZnJvbSAncGF0aGUnXG5pbXBvcnQgdHlwZSB7IEJpcnBjUmV0dXJuIH0gZnJvbSAnYmlycGMnXG5pbXBvcnQgeyBjcmVhdGVCaXJwYyB9IGZyb20gJ2JpcnBjJ1xuaW1wb3J0IHR5cGUgeyBNb2R1bGVDYWNoZSwgUmVzb2x2ZWRDb25maWcsIFRlc3QsIFdvcmtlckNvbnRleHQsIFdvcmtlclJQQyB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHsgZGlzdERpciB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB7IGV4ZWN1dGVJblZpdGVOb2RlIH0gZnJvbSAnLi4vbm9kZS9leGVjdXRlJ1xuaW1wb3J0IHsgcnBjIH0gZnJvbSAnLi9ycGMnXG5cbmxldCBfdml0ZU5vZGU6IHtcbiAgcnVuOiAoZmlsZXM6IHN0cmluZ1tdLCBjb25maWc6IFJlc29sdmVkQ29uZmlnKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGNvbGxlY3Q6IChmaWxlczogc3RyaW5nW10sIGNvbmZpZzogUmVzb2x2ZWRDb25maWcpID0+IFByb21pc2U8dm9pZD5cbn1cbmNvbnN0IG1vZHVsZUNhY2hlOiBNYXA8c3RyaW5nLCBNb2R1bGVDYWNoZT4gPSBuZXcgTWFwKClcbmNvbnN0IG1vY2tNYXAgPSB7fVxuXG5hc3luYyBmdW5jdGlvbiBzdGFydFZpdGVOb2RlKGN0eDogV29ya2VyQ29udGV4dCkge1xuICBpZiAoX3ZpdGVOb2RlKVxuICAgIHJldHVybiBfdml0ZU5vZGVcblxuICBjb25zdCBwcm9jZXNzRXhpdCA9IHByb2Nlc3MuZXhpdFxuXG4gIHByb2Nlc3Mub24oJ2JlZm9yZUV4aXQnLCAoY29kZSkgPT4ge1xuICAgIHJwYygpLm9uV29ya2VyRXhpdChjb2RlKVxuICB9KVxuXG4gIHByb2Nlc3MuZXhpdCA9IChjb2RlID0gcHJvY2Vzcy5leGl0Q29kZSB8fCAwKTogbmV2ZXIgPT4ge1xuICAgIHJwYygpLm9uV29ya2VyRXhpdChjb2RlKVxuICAgIHJldHVybiBwcm9jZXNzRXhpdChjb2RlKVxuICB9XG5cbiAgY29uc3QgeyBjb25maWcgfSA9IGN0eFxuXG4gIGNvbnN0IHsgcnVuLCBjb2xsZWN0IH0gPSAoYXdhaXQgZXhlY3V0ZUluVml0ZU5vZGUoe1xuICAgIGZpbGVzOiBbXG4gICAgICByZXNvbHZlKGRpc3REaXIsICdlbnRyeS5qcycpLFxuICAgIF0sXG4gICAgZmV0Y2hNb2R1bGUoaWQpIHtcbiAgICAgIHJldHVybiBycGMoKS5mZXRjaChpZClcbiAgICB9LFxuICAgIHJlc29sdmVJZChpZCwgaW1wb3J0ZXIpIHtcbiAgICAgIHJldHVybiBycGMoKS5yZXNvbHZlSWQoaWQsIGltcG9ydGVyKVxuICAgIH0sXG4gICAgbW9kdWxlQ2FjaGUsXG4gICAgbW9ja01hcCxcbiAgICBpbnRlcm9wRGVmYXVsdDogY29uZmlnLmRlcHMuaW50ZXJvcERlZmF1bHQgPz8gdHJ1ZSxcbiAgICByb290OiBjb25maWcucm9vdCxcbiAgICBiYXNlOiBjb25maWcuYmFzZSxcbiAgfSkpWzBdXG5cbiAgX3ZpdGVOb2RlID0geyBydW4sIGNvbGxlY3QgfVxuXG4gIHJldHVybiBfdml0ZU5vZGVcbn1cblxuZnVuY3Rpb24gaW5pdChjdHg6IFdvcmtlckNvbnRleHQpIHtcbiAgaWYgKHByb2Nlc3MuX192aXRlc3Rfd29ya2VyX18gJiYgY3R4LmNvbmZpZy50aHJlYWRzICYmIGN0eC5jb25maWcuaXNvbGF0ZSlcbiAgICB0aHJvdyBuZXcgRXJyb3IoYHdvcmtlciBmb3IgJHtjdHguZmlsZXMuam9pbignLCcpfSBhbHJlYWR5IGluaXRpYWxpemVkIGJ5ICR7cHJvY2Vzcy5fX3ZpdGVzdF93b3JrZXJfXy5jdHguZmlsZXMuam9pbignLCcpfS4gVGhpcyBpcyBwcm9iYWJseSBhbiBpbnRlcm5hbCBidWcgb2YgVml0ZXN0LmApXG5cbiAgcHJvY2Vzcy5zdGRvdXQud3JpdGUoJ1xcMCcpXG5cbiAgY29uc3QgeyBjb25maWcsIHBvcnQgfSA9IGN0eFxuXG4gIHByb2Nlc3MuX192aXRlc3Rfd29ya2VyX18gPSB7XG4gICAgY3R4LFxuICAgIG1vZHVsZUNhY2hlLFxuICAgIGNvbmZpZyxcbiAgICBycGM6IGNyZWF0ZUJpcnBjPFdvcmtlclJQQz4oXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgZXZlbnROYW1lczogWydvblVzZXJDb25zb2xlTG9nJywgJ29uRmluaXNoZWQnLCAnb25Db2xsZWN0ZWQnLCAnb25Xb3JrZXJFeGl0J10sXG4gICAgICAgIHBvc3QodikgeyBwb3J0LnBvc3RNZXNzYWdlKHYpIH0sXG4gICAgICAgIG9uKGZuKSB7IHBvcnQuYWRkTGlzdGVuZXIoJ21lc3NhZ2UnLCBmbikgfSxcbiAgICAgIH0sXG4gICAgKSxcbiAgfVxuXG4gIGlmIChjdHguaW52YWxpZGF0ZXMpXG4gICAgY3R4LmludmFsaWRhdGVzLmZvckVhY2goaSA9PiBtb2R1bGVDYWNoZS5kZWxldGUoaSkpXG4gIGN0eC5maWxlcy5mb3JFYWNoKGkgPT4gbW9kdWxlQ2FjaGUuZGVsZXRlKGkpKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY29sbGVjdChjdHg6IFdvcmtlckNvbnRleHQpIHtcbiAgaW5pdChjdHgpXG4gIGNvbnN0IHsgY29sbGVjdCB9ID0gYXdhaXQgc3RhcnRWaXRlTm9kZShjdHgpXG4gIHJldHVybiBjb2xsZWN0KGN0eC5maWxlcywgY3R4LmNvbmZpZylcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bihjdHg6IFdvcmtlckNvbnRleHQpIHtcbiAgaW5pdChjdHgpXG4gIGNvbnN0IHsgcnVuIH0gPSBhd2FpdCBzdGFydFZpdGVOb2RlKGN0eClcbiAgcmV0dXJuIHJ1bihjdHguZmlsZXMsIGN0eC5jb25maWcpXG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgbmFtZXNwYWNlIE5vZGVKUyB7XG4gICAgaW50ZXJmYWNlIFByb2Nlc3Mge1xuICAgICAgX192aXRlc3Rfd29ya2VyX186IHtcbiAgICAgICAgY3R4OiBXb3JrZXJDb250ZXh0XG4gICAgICAgIGNvbmZpZzogUmVzb2x2ZWRDb25maWdcbiAgICAgICAgcnBjOiBCaXJwY1JldHVybjxXb3JrZXJSUEM+XG4gICAgICAgIGN1cnJlbnQ/OiBUZXN0XG4gICAgICAgIGZpbGVwYXRoPzogc3RyaW5nXG4gICAgICAgIG1vZHVsZUNhY2hlOiBNYXA8c3RyaW5nLCBNb2R1bGVDYWNoZT5cbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUFPLFNBQVMsV0FBVyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUU7QUFDdEMsRUFBRSxJQUFJLElBQUksSUFBSSxFQUFFLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztBQUNqQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDckMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsMkJBQTJCLEVBQUUsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDakw7O0FDSkEsSUFBSSxTQUFTLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQztBQUN0QyxJQUFJLG1CQUFtQixHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQztBQUN2RCxJQUFJLFlBQVksR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQztBQUNuRCxJQUFJLFlBQVksR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLG9CQUFvQixDQUFDO0FBQ3pELElBQUksZUFBZSxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxLQUFLLEtBQUssR0FBRyxJQUFJLEdBQUcsR0FBRyxTQUFTLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztBQUNoSyxJQUFJLGNBQWMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLEtBQUs7QUFDL0IsRUFBRSxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO0FBQ2hDLElBQUksSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUM7QUFDbEMsTUFBTSxlQUFlLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztBQUN4QyxFQUFFLElBQUksbUJBQW1CO0FBQ3pCLElBQUksS0FBSyxJQUFJLElBQUksSUFBSSxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsRUFBRTtBQUM3QyxNQUFNLElBQUksWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDO0FBQ3BDLFFBQVEsZUFBZSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDMUMsS0FBSztBQUNMLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDWCxDQUFDLENBQUM7QUFPRixTQUFTLGFBQWEsQ0FBQyxLQUFLLEVBQUU7QUFDOUIsRUFBRSxPQUFPLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDN0QsQ0FBQztBQUNELFNBQVMsYUFBYSxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUU7QUFDckMsRUFBRSxJQUFJLENBQUMsS0FBSztBQUNaLElBQUksT0FBTyxJQUFJLENBQUM7QUFDaEIsRUFBRSxNQUFNLFFBQVEsR0FBRyxFQUFFLENBQUM7QUFDdEIsRUFBRSxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMseUJBQXlCLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDN0QsRUFBRSxLQUFLLE1BQU0sQ0FBQyxJQUFJLFVBQVUsRUFBRTtBQUM5QixJQUFJLE1BQU0sQ0FBQyxjQUFjLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN0RCxJQUFJLElBQUksT0FBTyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLFVBQVU7QUFDakQsTUFBTSxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLE1BQU07QUFDbEQsT0FBTyxDQUFDLENBQUM7QUFDVCxHQUFHO0FBQ0gsRUFBRSxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBQ0QsTUFBTSxVQUFVLEdBQUcsRUFBRSxDQUFDO0FBQ2YsTUFBTSxZQUFZLENBQUM7QUFDMUIsRUFBRSxXQUFXLENBQUMsT0FBTyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUU7QUFDN0MsSUFBSSxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztBQUMzQixJQUFJLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO0FBQ25DLElBQUksSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7QUFDeEIsSUFBSSxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO0FBQ2xDLElBQUksSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7QUFDM0IsR0FBRztBQUNILEVBQUUsSUFBSSxPQUFPLEdBQUc7QUFDaEIsSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDO0FBQ2hDLEdBQUc7QUFDSCxFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO0FBQ2hCLElBQUksSUFBSSxFQUFFLENBQUM7QUFDWCxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0FBQ3JELElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDbkMsR0FBRztBQUNILEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxHQUFHLElBQUksRUFBRTtBQUN2QixJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDL0QsR0FBRztBQUNILEVBQUUsZ0JBQWdCLEdBQUc7QUFDckIsSUFBSSxJQUFJLEVBQUUsQ0FBQztBQUNYLElBQUksT0FBTyxDQUFDLENBQUMsRUFBRSxHQUFHLE9BQU8sQ0FBQyxpQkFBaUIsS0FBSyxJQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsS0FBSyxRQUFRLENBQUM7QUFDekYsR0FBRztBQUNILEVBQUUsUUFBUSxHQUFHO0FBQ2IsSUFBSSxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztBQUMxQyxJQUFJLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0FBQ2pELElBQUksTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUM7QUFDNUMsSUFBSSxPQUFPLGNBQWMsQ0FBQyxjQUFjLENBQUMsRUFBRSxFQUFFLFVBQVUsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0FBQ3ZFLEdBQUc7QUFDSCxFQUFFLE1BQU0sV0FBVyxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUU7QUFDbEMsSUFBSSxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUM1RCxJQUFJLE9BQU87QUFDWCxNQUFNLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQyxJQUFJLElBQUksSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO0FBQ2hFLE1BQU0sUUFBUSxFQUFFLENBQUMsSUFBSSxJQUFJLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLEVBQUUsR0FBRyxJQUFJO0FBQ3hGLEtBQUssQ0FBQztBQUNOLEdBQUc7QUFDSCxFQUFFLE1BQU0sWUFBWSxHQUFHO0FBQ3ZCLElBQUksTUFBTSxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLEtBQUs7QUFDckQsTUFBTSxNQUFNLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUNoRixNQUFNLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxRQUFRO0FBQ2hDLFFBQVEsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM5QixNQUFNLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxNQUFNO0FBQzlCLFFBQVEsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUNwRCxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQ1IsSUFBSSxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztBQUMxQixHQUFHO0FBQ0gsRUFBRSxNQUFNLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxJQUFJLEVBQUU7QUFDcEMsSUFBSSxJQUFJLEVBQUUsQ0FBQztBQUNYLElBQUksTUFBTSxTQUFTLEdBQUcsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNyQyxJQUFJLE1BQU0sTUFBTSxHQUFHLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxLQUFLLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxDQUFDO0FBQ3hGLElBQUksSUFBSSxNQUFNO0FBQ2QsTUFBTSxPQUFPLE1BQU0sQ0FBQztBQUNwQixJQUFJLE1BQU0sT0FBTyxHQUFHLE1BQU0sSUFBSSxFQUFFLENBQUM7QUFDakMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0FBQ2hELElBQUksT0FBTyxPQUFPLENBQUM7QUFDbkIsR0FBRztBQUNILEVBQUUsaUJBQWlCLENBQUMsR0FBRyxFQUFFO0FBQ3pCLElBQUksT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7QUFDeEQsR0FBRztBQUNILEVBQUUsaUJBQWlCLENBQUMsR0FBRyxFQUFFO0FBQ3pCLElBQUksT0FBTyxXQUFXLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQVUsRUFBRSxTQUFTLEdBQUcsRUFBRSxHQUFHLEdBQUcsQ0FBQyxDQUFDO0FBQ3RFLEdBQUc7QUFDSCxFQUFFLGFBQWEsQ0FBQyxJQUFJLEVBQUU7QUFDdEIsSUFBSSxPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFLFNBQVMsR0FBRyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUM7QUFDOUYsR0FBRztBQUNILEVBQUUsU0FBUyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUU7QUFDNUIsSUFBSSxJQUFJLFFBQVE7QUFDaEIsTUFBTSxPQUFPLFlBQVksQ0FBQyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDMUMsSUFBSSxPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQztBQUNwRCxHQUFHO0FBQ0gsRUFBRSxlQUFlLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRTtBQUN0QyxJQUFJLE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxRQUFRLElBQUksUUFBUSxDQUFDLENBQUM7QUFDbkQsSUFBSSxJQUFJLFFBQVEsSUFBSSxhQUFhLENBQUMsUUFBUSxDQUFDLEVBQUU7QUFDN0MsTUFBTSxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDeEMsTUFBTSxNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDMUMsTUFBTSxNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxXQUFXLEVBQUUsV0FBVyxDQUFDLENBQUM7QUFDdEUsTUFBTSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQztBQUNqQyxRQUFRLE9BQU8sSUFBSSxDQUFDO0FBQ3BCLE1BQU0sTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBQzVDLE1BQU0sS0FBSyxNQUFNLElBQUksSUFBSSxLQUFLLEVBQUU7QUFDaEMsUUFBUSxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM1QyxRQUFRLElBQUksU0FBUyxLQUFLLFlBQVk7QUFDdEMsVUFBVSxPQUFPLE9BQU8sQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDbEUsT0FBTztBQUNQLE1BQU0sT0FBTyxJQUFJLENBQUM7QUFDbEIsS0FBSztBQUNMLElBQUksTUFBTSxHQUFHLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzlCLElBQUksTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2xDLElBQUksTUFBTSxRQUFRLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7QUFDdkQsSUFBSSxPQUFPLFVBQVUsQ0FBQyxRQUFRLENBQUMsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDO0FBQ3pFLEdBQUc7QUFDSCxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUU7QUFDbEIsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUc7QUFDakIsTUFBTSxNQUFNLElBQUksS0FBSyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7QUFDN0UsSUFBSSxNQUFNLElBQUksR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDcEMsSUFBSSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDO0FBQzFCLE1BQU0sT0FBTyxFQUFFLENBQUM7QUFDaEIsU0FBUyxJQUFJLElBQUksS0FBSyxRQUFRLElBQUksSUFBSSxLQUFLLFFBQVE7QUFDbkQsTUFBTSxPQUFPLEdBQUcsQ0FBQztBQUNqQixJQUFJLE1BQU0sTUFBTSxHQUFHLGNBQWMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7QUFDM0MsSUFBSSxNQUFNLEtBQUssR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0FBQzVFLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7QUFDekMsSUFBSSxLQUFLLE1BQU0sQ0FBQyxJQUFJLEdBQUcsRUFBRTtBQUN6QixNQUFNLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFDLE1BQU0sTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFDLE1BQU0sSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRTtBQUN6RCxRQUFRLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNO0FBQzNELFNBQVMsQ0FBQyxDQUFDO0FBQ1gsUUFBUSxNQUFNLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLEVBQUUsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNqRSxPQUFPO0FBQ1AsS0FBSztBQUNMLElBQUksT0FBTyxNQUFNLENBQUM7QUFDbEIsR0FBRztBQUNILEVBQUUsVUFBVSxDQUFDLElBQUksRUFBRTtBQUNuQixJQUFJLElBQUksRUFBRSxDQUFDO0FBQ1gsSUFBSSxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztBQUM5QyxJQUFJLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDNUMsSUFBSSxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssSUFBSSxHQUFHLEtBQUssQ0FBQyxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUM7QUFDcEUsTUFBTSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDN0MsR0FBRztBQUNILEVBQUUsUUFBUSxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFO0FBQ3BDLElBQUksSUFBSSxFQUFFLENBQUM7QUFDWCxJQUFJLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0FBQzlDLElBQUksTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM1QyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO0FBQzNELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLENBQUMsR0FBRyxPQUFPLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDdEYsR0FBRztBQUNILEVBQUUsTUFBTSxZQUFZLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRTtBQUNuQyxJQUFJLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUNwRSxJQUFJLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxDQUFDO0FBQ2xELElBQUksTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQzlDLElBQUksT0FBTyxNQUFNLENBQUM7QUFDbEIsR0FBRztBQUNILEVBQUUsTUFBTSxVQUFVLENBQUMsRUFBRSxFQUFFLFFBQVEsRUFBRTtBQUNqQyxJQUFJLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUMsQ0FBQztBQUNwRSxJQUFJLElBQUksSUFBSSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM1QyxJQUFJLElBQUksSUFBSSxLQUFLLEtBQUssQ0FBQztBQUN2QixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQztBQUNsRCxJQUFJLElBQUksSUFBSSxLQUFLLElBQUksRUFBRTtBQUN2QixNQUFNLE1BQU0sSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0FBQzdCLE1BQU0sTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDcEQsTUFBTSxNQUFNLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDN0MsTUFBTSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDbEMsS0FBSztBQUNMLElBQUksSUFBSSxPQUFPLElBQUksS0FBSyxVQUFVO0FBQ2xDLE1BQU0sT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0FBQy9DLElBQUksT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ3RDLEdBQUc7QUFDSCxFQUFFLE1BQU0sU0FBUyxHQUFHO0FBQ3BCLElBQUksSUFBSSxJQUFJLENBQUMsR0FBRztBQUNoQixNQUFNLE9BQU87QUFDYixJQUFJLElBQUksQ0FBQyxHQUFHLEdBQUcsTUFBTSxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztBQUNwRSxHQUFHO0FBQ0gsRUFBRSxNQUFNLGVBQWUsQ0FBQyxHQUFHLEVBQUU7QUFDN0IsSUFBSSxJQUFJLEVBQUUsQ0FBQztBQUNYLElBQUksTUFBTSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7QUFDM0IsSUFBSSxNQUFNLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztBQUM5QixJQUFJLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUM3QyxJQUFJLElBQUksSUFBSSxLQUFLLElBQUksRUFBRTtBQUN2QixNQUFNLE1BQU0sU0FBUyxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDdkMsTUFBTSxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNwRCxNQUFNLElBQUksS0FBSyxJQUFJLElBQUksR0FBRyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUMsT0FBTztBQUNoRCxRQUFRLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQztBQUM3QixNQUFNLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQ2xELE1BQU0sTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxJQUFJLEdBQUcsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sS0FBSyxNQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDbkgsTUFBTSxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzNDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztBQUNsRCxNQUFNLE9BQU8sT0FBTyxDQUFDO0FBQ3JCLEtBQUs7QUFDTCxJQUFJLElBQUksT0FBTyxJQUFJLEtBQUssVUFBVTtBQUNsQyxNQUFNLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUM5QyxJQUFJLElBQUksT0FBTyxJQUFJLEtBQUssUUFBUTtBQUNoQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUM7QUFDakIsSUFBSSxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDN0IsR0FBRztBQUNILEVBQUUsU0FBUyxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFO0FBQ25DLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0FBQzdELEdBQUc7QUFDSCxFQUFFLFdBQVcsQ0FBQyxFQUFFLEVBQUUsUUFBUSxFQUFFO0FBQzVCLElBQUksVUFBVSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUM7QUFDdEQsR0FBRztBQUNILEVBQUUsV0FBVyxDQUFDLE9BQU8sRUFBRTtBQUN2QixJQUFJLE9BQU8sSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO0FBQ3JFLEdBQUc7QUFDSDs7QUM3Tk8sZUFBZSxpQkFBaUIsQ0FBQyxPQUFPLEVBQUU7QUFDakQsRUFBRSxNQUFNLE1BQU0sR0FBRyxJQUFJLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUMzQyxFQUFFLE1BQU0sTUFBTSxHQUFHLEVBQUUsQ0FBQztBQUNwQixFQUFFLEtBQUssTUFBTSxJQUFJLElBQUksT0FBTyxDQUFDLEtBQUs7QUFDbEMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO0FBQ2hELEVBQUUsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQUNNLE1BQU0sWUFBWSxTQUFTLGNBQWMsQ0FBQztBQUNqRCxFQUFFLFdBQVcsQ0FBQyxPQUFPLEVBQUU7QUFDdkIsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDbkIsSUFBSSxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztBQUMzQixJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxZQUFZLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztBQUM5RCxHQUFHO0FBQ0gsRUFBRSxjQUFjLENBQUMsT0FBTyxFQUFFO0FBQzFCLElBQUksTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixDQUFDO0FBQ2hELElBQUksTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7QUFDcEQsSUFBSSxNQUFNLENBQUMsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFDLEdBQUcsRUFBRSxNQUFNLEtBQUs7QUFDekMsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztBQUNqQyxLQUFLLENBQUMsQ0FBQztBQUNQLElBQUksT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtBQUNsQyxNQUFNLG1CQUFtQixFQUFFLENBQUMsR0FBRyxLQUFLLE1BQU0sQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDO0FBQy9ELE1BQU0sMkJBQTJCLEVBQUUsQ0FBQyxHQUFHLEtBQUssTUFBTSxDQUFDLGVBQWUsQ0FBQyxHQUFHLENBQUM7QUFDdkUsTUFBTSxpQkFBaUIsRUFBRSxNQUFNO0FBQy9CLEtBQUssQ0FBQyxDQUFDO0FBQ1AsR0FBRztBQUNIOztBQ3RCQSxJQUFJLFNBQVMsQ0FBQztBQUNkLE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxFQUFFLENBQUM7QUFDOUIsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDO0FBQ25CLGVBQWUsYUFBYSxDQUFDLEdBQUcsRUFBRTtBQUNsQyxFQUFFLElBQUksU0FBUztBQUNmLElBQUksT0FBTyxTQUFTLENBQUM7QUFDckIsRUFBRSxNQUFNLFdBQVcsR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDO0FBQ25DLEVBQUUsT0FBTyxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxJQUFJLEtBQUs7QUFDckMsSUFBSSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDN0IsR0FBRyxDQUFDLENBQUM7QUFDTCxFQUFFLE9BQU8sQ0FBQyxJQUFJLEdBQUcsQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDLFFBQVEsSUFBSSxDQUFDLEtBQUs7QUFDbkQsSUFBSSxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7QUFDN0IsSUFBSSxPQUFPLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUM3QixHQUFHLENBQUM7QUFDSixFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxHQUFHLENBQUM7QUFDekIsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsQ0FBQyxNQUFNLGlCQUFpQixDQUFDO0FBQ3BFLElBQUksS0FBSyxFQUFFO0FBQ1gsTUFBTSxPQUFPLENBQUMsT0FBTyxFQUFFLFVBQVUsQ0FBQztBQUNsQyxLQUFLO0FBQ0wsSUFBSSxXQUFXLENBQUMsRUFBRSxFQUFFO0FBQ3BCLE1BQU0sT0FBTyxHQUFHLEVBQUUsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDN0IsS0FBSztBQUNMLElBQUksU0FBUyxDQUFDLEVBQUUsRUFBRSxRQUFRLEVBQUU7QUFDNUIsTUFBTSxPQUFPLEdBQUcsRUFBRSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsUUFBUSxDQUFDLENBQUM7QUFDM0MsS0FBSztBQUNMLElBQUksV0FBVztBQUNmLElBQUksT0FBTztBQUNYLElBQUksY0FBYyxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsY0FBYyxJQUFJLElBQUk7QUFDdEQsSUFBSSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7QUFDckIsSUFBSSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUk7QUFDckIsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7QUFDVCxFQUFFLFNBQVMsR0FBRyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUFDO0FBQy9DLEVBQUUsT0FBTyxTQUFTLENBQUM7QUFDbkIsQ0FBQztBQUNELFNBQVMsSUFBSSxDQUFDLEdBQUcsRUFBRTtBQUNuQixFQUFFLElBQUksT0FBTyxDQUFDLGlCQUFpQixJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTyxJQUFJLEdBQUcsQ0FBQyxNQUFNLENBQUMsT0FBTztBQUMzRSxJQUFJLE1BQU0sSUFBSSxLQUFLLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsd0JBQXdCLEVBQUUsT0FBTyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLDZDQUE2QyxDQUFDLENBQUMsQ0FBQztBQUM5SyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0FBQzdCLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUM7QUFDL0IsRUFBRSxPQUFPLENBQUMsaUJBQWlCLEdBQUc7QUFDOUIsSUFBSSxHQUFHO0FBQ1AsSUFBSSxXQUFXO0FBQ2YsSUFBSSxNQUFNO0FBQ1YsSUFBSSxHQUFHLEVBQUUsV0FBVyxDQUFDLEVBQUUsRUFBRTtBQUN6QixNQUFNLFVBQVUsRUFBRSxDQUFDLGtCQUFrQixFQUFFLFlBQVksRUFBRSxhQUFhLEVBQUUsY0FBYyxDQUFDO0FBQ25GLE1BQU0sSUFBSSxDQUFDLENBQUMsRUFBRTtBQUNkLFFBQVEsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUM1QixPQUFPO0FBQ1AsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO0FBQ2IsUUFBUSxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUN4QyxPQUFPO0FBQ1AsS0FBSyxDQUFDO0FBQ04sR0FBRyxDQUFDO0FBQ0osRUFBRSxJQUFJLEdBQUcsQ0FBQyxXQUFXO0FBQ3JCLElBQUksR0FBRyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQzFELEVBQUUsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBQ2xELENBQUM7QUFDTSxlQUFlLE9BQU8sQ0FBQyxHQUFHLEVBQUU7QUFDbkMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDWixFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEdBQUcsTUFBTSxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7QUFDekQsRUFBRSxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBQ00sZUFBZSxHQUFHLENBQUMsR0FBRyxFQUFFO0FBQy9CLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ1osRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxHQUFHLE1BQU0sYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQ2pELEVBQUUsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDckM7OyJ9
|
|
335
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya2VyLmpzIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMvcGF0aC50cyIsIi4uL3NyYy9ub2RlL21vY2tlci50cyIsIi4uL3NyYy9ub2RlL2V4ZWN1dGUudHMiLCIuLi9zcmMvcnVudGltZS93b3JrZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUlkKGlkOiBzdHJpbmcsIGJhc2U/OiBzdHJpbmcpOiBzdHJpbmcge1xuICBpZiAoYmFzZSAmJiBpZC5zdGFydHNXaXRoKGJhc2UpKVxuICAgIGlkID0gYC8ke2lkLnNsaWNlKGJhc2UubGVuZ3RoKX1gXG5cbiAgcmV0dXJuIGlkXG4gICAgLnJlcGxhY2UoL15cXC9AaWRcXC9fX3gwMF9fLywgJ1xcMCcpIC8vIHZpcnR1YWwgbW9kdWxlcyBzdGFydCB3aXRoIGBcXDBgXG4gICAgLnJlcGxhY2UoL15cXC9AaWRcXC8vLCAnJylcbiAgICAucmVwbGFjZSgvXl9fdml0ZS1icm93c2VyLWV4dGVybmFsOi8sICcnKVxuICAgIC5yZXBsYWNlKC9ebm9kZTovLCAnJylcbiAgICAucmVwbGFjZSgvWz8mXXY9XFx3Ky8sICc/JykgLy8gcmVtb3ZlID92PSBxdWVyeVxuICAgIC5yZXBsYWNlKC9cXD8kLywgJycpIC8vIHJlbW92ZSBlbmQgcXVlcnkgbWFya1xufVxuIiwiaW1wb3J0IHsgZXhpc3RzU3luYywgcmVhZGRpclN5bmMgfSBmcm9tICdmcydcbmltcG9ydCB7IGlzTm9kZUJ1aWx0aW4gfSBmcm9tICdtbGx5J1xuaW1wb3J0IHsgYmFzZW5hbWUsIGRpcm5hbWUsIHJlc29sdmUgfSBmcm9tICdwYXRoZSdcbmltcG9ydCB0eXBlIHsgTW9kdWxlQ2FjaGUgfSBmcm9tICd2aXRlLW5vZGUnXG5pbXBvcnQgeyB0b0ZpbGVQYXRoIH0gZnJvbSAndml0ZS1ub2RlL3V0aWxzJ1xuaW1wb3J0IHsgaXNXaW5kb3dzLCBtZXJnZVNsYXNoZXMsIG5vcm1hbGl6ZUlkIH0gZnJvbSAnLi4vdXRpbHMnXG5pbXBvcnQgeyBkaXN0RGlyIH0gZnJvbSAnLi4vY29uc3RhbnRzJ1xuaW1wb3J0IHR5cGUgeyBFeGVjdXRlT3B0aW9ucyB9IGZyb20gJy4vZXhlY3V0ZSdcblxuZXhwb3J0IHR5cGUgU3VpdGVNb2NrcyA9IFJlY29yZDxzdHJpbmcsIFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bGwgfCAoKCkgPT4gdW5rbm93bik+PlxuXG50eXBlIENhbGxiYWNrID0gKC4uLmFyZ3M6IGFueVtdKSA9PiB1bmtub3duXG5cbmludGVyZmFjZSBQZW5kaW5nU3VpdGVNb2NrIHtcbiAgaWQ6IHN0cmluZ1xuICBpbXBvcnRlcjogc3RyaW5nXG4gIHR5cGU6ICdtb2NrJyB8ICd1bm1vY2snXG4gIGZhY3Rvcnk/OiAoKSA9PiB1bmtub3duXG59XG5cbmZ1bmN0aW9uIGdldE9iamVjdFR5cGUodmFsdWU6IHVua25vd24pOiBzdHJpbmcge1xuICByZXR1cm4gT2JqZWN0LnByb3RvdHlwZS50b1N0cmluZy5hcHBseSh2YWx1ZSkuc2xpY2UoOCwgLTEpXG59XG5cbmZ1bmN0aW9uIG1vY2tQcm90b3R5cGUoc3B5T246IHR5cGVvZiBpbXBvcnQoJy4uL2ludGVncmF0aW9ucy9qZXN0LW1vY2snKVsnc3B5T24nXSwgcHJvdG86IGFueSkge1xuICBpZiAoIXByb3RvKSByZXR1cm4gbnVsbFxuXG4gIGNvbnN0IG5ld1Byb3RvOiBhbnkgPSB7fVxuXG4gIGNvbnN0IHByb3RvRGVzY3IgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyhwcm90bylcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tcmVzdHJpY3RlZC1zeW50YXhcbiAgZm9yIChjb25zdCBkIGluIHByb3RvRGVzY3IpIHtcbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3UHJvdG8sIGQsIHByb3RvRGVzY3JbZF0pXG5cbiAgICBpZiAodHlwZW9mIHByb3RvRGVzY3JbZF0udmFsdWUgPT09ICdmdW5jdGlvbicpXG4gICAgICBzcHlPbihuZXdQcm90bywgZCkubW9ja0ltcGxlbWVudGF0aW9uKCgpID0+IHt9KVxuICB9XG5cbiAgcmV0dXJuIG5ld1Byb3RvXG59XG5cbmNvbnN0IHBlbmRpbmdJZHM6IFBlbmRpbmdTdWl0ZU1vY2tbXSA9IFtdXG5cbmV4cG9ydCBjbGFzcyBWaXRlc3RNb2NrZXIge1xuICBwcml2YXRlIHJlcXVlc3QhOiAoZGVwOiBzdHJpbmcpID0+IHVua25vd25cblxuICBwcml2YXRlIHJvb3Q6IHN0cmluZ1xuXG4gIHByaXZhdGUgY2FsbGJhY2tzOiBSZWNvcmQ8c3RyaW5nLCAoKC4uLmFyZ3M6IGFueVtdKSA9PiB1bmtub3duKVtdPiA9IHt9XG4gIHByaXZhdGUgc3B5PzogdHlwZW9mIGltcG9ydCgnLi4vaW50ZWdyYXRpb25zL2plc3QtbW9jaycpXG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIG9wdGlvbnM6IEV4ZWN1dGVPcHRpb25zLFxuICAgIHByaXZhdGUgbW9kdWxlQ2FjaGU6IE1hcDxzdHJpbmcsIE1vZHVsZUNhY2hlPixcbiAgICByZXF1ZXN0PzogKGRlcDogc3RyaW5nKSA9PiB1bmtub3duLFxuICApIHtcbiAgICB0aGlzLnJvb3QgPSB0aGlzLm9wdGlvbnMucm9vdFxuICAgIHRoaXMucmVxdWVzdCA9IHJlcXVlc3QhXG4gIH1cblxuICBnZXQgbW9ja01hcCgpIHtcbiAgICByZXR1cm4gdGhpcy5vcHRpb25zLm1vY2tNYXBcbiAgfVxuXG4gIHB1YmxpYyBvbihldmVudDogc3RyaW5nLCBjYjogQ2FsbGJhY2spIHtcbiAgICB0aGlzLmNhbGxiYWNrc1tldmVudF0gPz89IFtdXG4gICAgdGhpcy5jYWxsYmFja3NbZXZlbnRdLnB1c2goY2IpXG4gIH1cblxuICBwcml2YXRlIGVtaXQoZXZlbnQ6IHN0cmluZywgLi4uYXJnczogYW55W10pIHtcbiAgICAodGhpcy5jYWxsYmFja3NbZXZlbnRdID8/IFtdKS5mb3JFYWNoKGZuID0+IGZuKC4uLmFyZ3MpKVxuICB9XG5cbiAgcHVibGljIGdldFN1aXRlRmlsZXBhdGgoKSB7XG4gICAgcmV0dXJuIF9fdml0ZXN0X3dvcmtlcl9fPy5maWxlcGF0aCB8fCAnZ2xvYmFsJ1xuICB9XG5cbiAgcHVibGljIGdldE1vY2tzKCkge1xuICAgIGNvbnN0IHN1aXRlID0gdGhpcy5nZXRTdWl0ZUZpbGVwYXRoKClcbiAgICBjb25zdCBzdWl0ZU1vY2tzID0gdGhpcy5tb2NrTWFwW3N1aXRlIHx8ICcnXVxuICAgIGNvbnN0IGdsb2JhbE1vY2tzID0gdGhpcy5tb2NrTWFwLmdsb2JhbFxuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLnN1aXRlTW9ja3MsXG4gICAgICAuLi5nbG9iYWxNb2NrcyxcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlc29sdmVQYXRoKGlkOiBzdHJpbmcsIGltcG9ydGVyOiBzdHJpbmcpIHtcbiAgICBjb25zdCBwYXRoID0gYXdhaXQgdGhpcy5vcHRpb25zLnJlc29sdmVJZChpZCwgaW1wb3J0ZXIpXG4gICAgcmV0dXJuIHtcbiAgICAgIHBhdGg6IG5vcm1hbGl6ZUlkKHBhdGg/LmlkIHx8IGlkKSxcbiAgICAgIGV4dGVybmFsOiBwYXRoPy5pZC5pbmNsdWRlcygnL25vZGVfbW9kdWxlcy8nKSA/IGlkIDogbnVsbCxcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHJlc29sdmVNb2NrcygpIHtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChwZW5kaW5nSWRzLm1hcChhc3luYyhtb2NrKSA9PiB7XG4gICAgICBjb25zdCB7IHBhdGgsIGV4dGVybmFsIH0gPSBhd2FpdCB0aGlzLnJlc29sdmVQYXRoKG1vY2suaWQsIG1vY2suaW1wb3J0ZXIpXG4gICAgICBpZiAobW9jay50eXBlID09PSAndW5tb2NrJylcbiAgICAgICAgdGhpcy51bm1vY2tQYXRoKHBhdGgpXG4gICAgICBpZiAobW9jay50eXBlID09PSAnbW9jaycpXG4gICAgICAgIHRoaXMubW9ja1BhdGgocGF0aCwgZXh0ZXJuYWwsIG1vY2suZmFjdG9yeSlcbiAgICB9KSlcblxuICAgIHBlbmRpbmdJZHMubGVuZ3RoID0gMFxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjYWxsRnVuY3Rpb25Nb2NrKGRlcDogc3RyaW5nLCBtb2NrOiAoKSA9PiBhbnkpIHtcbiAgICBjb25zdCBjYWNoZU5hbWUgPSBgJHtkZXB9X19tb2NrYFxuICAgIGNvbnN0IGNhY2hlZCA9IHRoaXMubW9kdWxlQ2FjaGUuZ2V0KGNhY2hlTmFtZSk/LmV4cG9ydHNcbiAgICBpZiAoY2FjaGVkKVxuICAgICAgcmV0dXJuIGNhY2hlZFxuICAgIGNvbnN0IGV4cG9ydHMgPSBhd2FpdCBtb2NrKClcbiAgICB0aGlzLmVtaXQoJ21vY2tlZCcsIGNhY2hlTmFtZSwgeyBleHBvcnRzIH0pXG4gICAgcmV0dXJuIGV4cG9ydHNcbiAgfVxuXG4gIHB1YmxpYyBnZXREZXBlbmRlbmN5TW9jayhkZXA6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmdldE1vY2tzKClbdGhpcy5yZXNvbHZlRGVwZW5kZW5jeShkZXApXVxuICB9XG5cbiAgcHVibGljIHJlc29sdmVEZXBlbmRlbmN5KGRlcDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZUlkKGRlcCkucmVwbGFjZSgvXlxcL0Bmc1xcLy8sIGlzV2luZG93cyA/ICcnIDogJy8nKVxuICB9XG5cbiAgcHVibGljIG5vcm1hbGl6ZVBhdGgocGF0aDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIG5vcm1hbGl6ZUlkKHBhdGgucmVwbGFjZSh0aGlzLnJvb3QsICcnKSkucmVwbGFjZSgvXlxcL0Bmc1xcLy8sIGlzV2luZG93cyA/ICcnIDogJy8nKVxuICB9XG5cbiAgcHVibGljIGdldEZzUGF0aChwYXRoOiBzdHJpbmcsIGV4dGVybmFsOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgaWYgKGV4dGVybmFsKVxuICAgICAgcmV0dXJuIG1lcmdlU2xhc2hlcyhgL0Bmcy8ke3BhdGh9YClcblxuICAgIHJldHVybiBub3JtYWxpemVJZChwYXRoLnJlcGxhY2UodGhpcy5yb290LCAnJykpXG4gIH1cblxuICBwdWJsaWMgcmVzb2x2ZU1vY2tQYXRoKG1vY2tQYXRoOiBzdHJpbmcsIGV4dGVybmFsOiBzdHJpbmcgfCBudWxsKSB7XG4gICAgY29uc3QgcGF0aCA9IG5vcm1hbGl6ZUlkKGV4dGVybmFsIHx8IG1vY2tQYXRoKVxuXG4gICAgLy8gaXQncyBhIG5vZGVfbW9kdWxlIGFsaWFzXG4gICAgLy8gYWxsIG1vY2tzIHNob3VsZCBiZSBpbnNpZGUgPHJvb3Q+L19fbW9ja3NfX1xuICAgIGlmIChleHRlcm5hbCB8fCBpc05vZGVCdWlsdGluKG1vY2tQYXRoKSkge1xuICAgICAgY29uc3QgbW9ja0Rpcm5hbWUgPSBkaXJuYW1lKHBhdGgpIC8vIGZvciBuZXN0ZWQgbW9ja3M6IEB2dWV1c2UvaW50ZWdyYXRpb24vdXNlSnd0XG4gICAgICBjb25zdCBiYXNlRmlsZW5hbWUgPSBiYXNlbmFtZShwYXRoKVxuICAgICAgY29uc3QgbW9ja0ZvbGRlciA9IHJlc29sdmUodGhpcy5yb290LCAnX19tb2Nrc19fJywgbW9ja0Rpcm5hbWUpXG5cbiAgICAgIGlmICghZXhpc3RzU3luYyhtb2NrRm9sZGVyKSkgcmV0dXJuIG51bGxcblxuICAgICAgY29uc3QgZmlsZXMgPSByZWFkZGlyU3luYyhtb2NrRm9sZGVyKVxuXG4gICAgICBmb3IgKGNvbnN0IGZpbGUgb2YgZmlsZXMpIHtcbiAgICAgICAgY29uc3QgW2Jhc2VuYW1lXSA9IGZpbGUuc3BsaXQoJy4nKVxuICAgICAgICBpZiAoYmFzZW5hbWUgPT09IGJhc2VGaWxlbmFtZSlcbiAgICAgICAgICByZXR1cm4gcmVzb2x2ZShtb2NrRm9sZGVyLCBmaWxlKS5yZXBsYWNlKHRoaXMucm9vdCwgJycpXG4gICAgICB9XG5cbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuXG4gICAgY29uc3QgZGlyID0gZGlybmFtZShwYXRoKVxuICAgIGNvbnN0IGJhc2VJZCA9IGJhc2VuYW1lKHBhdGgpXG4gICAgY29uc3QgZnVsbFBhdGggPSByZXNvbHZlKGRpciwgJ19fbW9ja3NfXycsIGJhc2VJZClcbiAgICByZXR1cm4gZXhpc3RzU3luYyhmdWxsUGF0aCkgPyBmdWxsUGF0aC5yZXBsYWNlKHRoaXMucm9vdCwgJycpIDogbnVsbFxuICB9XG5cbiAgcHVibGljIG1vY2tPYmplY3Qob2JqOiBhbnkpIHtcbiAgICBpZiAoIXRoaXMuc3B5KVxuICAgICAgdGhyb3cgbmV3IEVycm9yKCdJbnRlcm5hbCBWaXRlc3QgZXJyb3I6IFNweSBmdW5jdGlvbiBpcyBub3QgZGVmaW5lZC4nKVxuXG4gICAgY29uc3QgdHlwZSA9IGdldE9iamVjdFR5cGUob2JqKVxuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkob2JqKSlcbiAgICAgIHJldHVybiBbXVxuICAgIGVsc2UgaWYgKHR5cGUgIT09ICdPYmplY3QnICYmIHR5cGUgIT09ICdNb2R1bGUnKVxuICAgICAgcmV0dXJuIG9ialxuXG4gICAgY29uc3QgbmV3T2JqID0geyAuLi5vYmogfVxuXG4gICAgY29uc3QgcHJvdG8gPSBtb2NrUHJvdG90eXBlKHRoaXMuc3B5LnNweU9uLCBPYmplY3QuZ2V0UHJvdG90eXBlT2Yob2JqKSlcbiAgICBPYmplY3Quc2V0UHJvdG90eXBlT2YobmV3T2JqLCBwcm90bylcblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1yZXN0cmljdGVkLXN5bnRheFxuICAgIGZvciAoY29uc3QgayBpbiBvYmopIHtcbiAgICAgIG5ld09ialtrXSA9IHRoaXMubW9ja09iamVjdChvYmpba10pXG4gICAgICBjb25zdCB0eXBlID0gZ2V0T2JqZWN0VHlwZShvYmpba10pXG5cbiAgICAgIGlmICh0eXBlLmluY2x1ZGVzKCdGdW5jdGlvbicpICYmICFvYmpba10uX19pc1NweSkge1xuICAgICAgICB0aGlzLnNweS5zcHlPbihuZXdPYmosIGspLm1vY2tJbXBsZW1lbnRhdGlvbigoKSA9PiB7fSlcbiAgICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ld09ialtrXSwgJ2xlbmd0aCcsIHsgdmFsdWU6IDAgfSkgLy8gdGlueXNweSByZXRhaW5zIGxlbmd0aCwgYnV0IGplc3QgZG9lc250XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiBuZXdPYmpcbiAgfVxuXG4gIHB1YmxpYyB1bm1vY2tQYXRoKHBhdGg6IHN0cmluZykge1xuICAgIGNvbnN0IHN1aXRlZmlsZSA9IHRoaXMuZ2V0U3VpdGVGaWxlcGF0aCgpXG5cbiAgICBjb25zdCBmc1BhdGggPSB0aGlzLm5vcm1hbGl6ZVBhdGgocGF0aClcblxuICAgIGlmICh0aGlzLm1vY2tNYXBbc3VpdGVmaWxlXT8uW2ZzUGF0aF0pXG4gICAgICBkZWxldGUgdGhpcy5tb2NrTWFwW3N1aXRlZmlsZV1bZnNQYXRoXVxuICB9XG5cbiAgcHVibGljIG1vY2tQYXRoKHBhdGg6IHN0cmluZywgZXh0ZXJuYWw6IHN0cmluZyB8IG51bGwsIGZhY3Rvcnk/OiAoKSA9PiBhbnkpIHtcbiAgICBjb25zdCBzdWl0ZWZpbGUgPSB0aGlzLmdldFN1aXRlRmlsZXBhdGgoKVxuXG4gICAgY29uc3QgZnNQYXRoID0gdGhpcy5ub3JtYWxpemVQYXRoKHBhdGgpXG5cbiAgICB0aGlzLm1vY2tNYXBbc3VpdGVmaWxlXSA/Pz0ge31cbiAgICB0aGlzLm1vY2tNYXBbc3VpdGVmaWxlXVtmc1BhdGhdID0gZmFjdG9yeSB8fCB0aGlzLnJlc29sdmVNb2NrUGF0aChwYXRoLCBleHRlcm5hbClcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBpbXBvcnRBY3R1YWw8VD4oaWQ6IHN0cmluZywgaW1wb3J0ZXI6IHN0cmluZyk6IFByb21pc2U8VD4ge1xuICAgIGNvbnN0IHsgcGF0aCwgZXh0ZXJuYWwgfSA9IGF3YWl0IHRoaXMucmVzb2x2ZVBhdGgoaWQsIGltcG9ydGVyKVxuICAgIGNvbnN0IGZzUGF0aCA9IHRoaXMuZ2V0RnNQYXRoKHBhdGgsIGV4dGVybmFsKVxuICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IHRoaXMucmVxdWVzdChmc1BhdGgpXG4gICAgcmV0dXJuIHJlc3VsdCBhcyBUXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgaW1wb3J0TW9jayhpZDogc3RyaW5nLCBpbXBvcnRlcjogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCB7IHBhdGgsIGV4dGVybmFsIH0gPSBhd2FpdCB0aGlzLnJlc29sdmVQYXRoKGlkLCBpbXBvcnRlcilcblxuICAgIGxldCBtb2NrID0gdGhpcy5nZXREZXBlbmRlbmN5TW9jayhwYXRoKVxuXG4gICAgaWYgKG1vY2sgPT09IHVuZGVmaW5lZClcbiAgICAgIG1vY2sgPSB0aGlzLnJlc29sdmVNb2NrUGF0aChwYXRoLCBleHRlcm5hbClcblxuICAgIGlmIChtb2NrID09PSBudWxsKSB7XG4gICAgICBhd2FpdCB0aGlzLmVuc3VyZVNweSgpXG4gICAgICBjb25zdCBmc1BhdGggPSB0aGlzLmdldEZzUGF0aChwYXRoLCBleHRlcm5hbClcbiAgICAgIGNvbnN0IG1vZCA9IGF3YWl0IHRoaXMucmVxdWVzdChmc1BhdGgpXG4gICAgICByZXR1cm4gdGhpcy5tb2NrT2JqZWN0KG1vZClcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBtb2NrID09PSAnZnVuY3Rpb24nKVxuICAgICAgcmV0dXJuIHRoaXMuY2FsbEZ1bmN0aW9uTW9jayhwYXRoLCBtb2NrKVxuICAgIHJldHVybiB0aGlzLnJlcXVlc3RXaXRoTW9jayhtb2NrKVxuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBlbnN1cmVTcHkoKSB7XG4gICAgaWYgKHRoaXMuc3B5KSByZXR1cm5cbiAgICB0aGlzLnNweSA9IGF3YWl0IHRoaXMucmVxdWVzdChyZXNvbHZlKGRpc3REaXIsICdqZXN0LW1vY2suanMnKSkgYXMgdHlwZW9mIGltcG9ydCgnLi4vaW50ZWdyYXRpb25zL2plc3QtbW9jaycpXG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmVxdWVzdFdpdGhNb2NrKGRlcDogc3RyaW5nKSB7XG4gICAgYXdhaXQgdGhpcy5lbnN1cmVTcHkoKVxuICAgIGF3YWl0IHRoaXMucmVzb2x2ZU1vY2tzKClcblxuICAgIGNvbnN0IG1vY2sgPSB0aGlzLmdldERlcGVuZGVuY3lNb2NrKGRlcClcblxuICAgIGlmIChtb2NrID09PSBudWxsKSB7XG4gICAgICBjb25zdCBjYWNoZU5hbWUgPSBgJHtkZXB9X19tb2NrYFxuICAgICAgY29uc3QgY2FjaGUgPSB0aGlzLm1vZHVsZUNhY2hlLmdldChjYWNoZU5hbWUpXG4gICAgICBpZiAoY2FjaGU/LmV4cG9ydHMpXG4gICAgICAgIHJldHVybiBjYWNoZS5leHBvcnRzXG4gICAgICBjb25zdCBjYWNoZUtleSA9IHRvRmlsZVBhdGgoZGVwLCB0aGlzLnJvb3QpXG4gICAgICBjb25zdCBtb2QgPSB0aGlzLm1vZHVsZUNhY2hlLmdldChjYWNoZUtleSk/LmV4cG9ydHMgfHwgYXdhaXQgdGhpcy5yZXF1ZXN0KGRlcClcbiAgICAgIGNvbnN0IGV4cG9ydHMgPSB0aGlzLm1vY2tPYmplY3QobW9kKVxuICAgICAgdGhpcy5lbWl0KCdtb2NrZWQnLCBjYWNoZU5hbWUsIHsgZXhwb3J0cyB9KVxuICAgICAgcmV0dXJuIGV4cG9ydHNcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBtb2NrID09PSAnZnVuY3Rpb24nKVxuICAgICAgcmV0dXJuIHRoaXMuY2FsbEZ1bmN0aW9uTW9jayhkZXAsIG1vY2spXG4gICAgaWYgKHR5cGVvZiBtb2NrID09PSAnc3RyaW5nJylcbiAgICAgIGRlcCA9IG1vY2tcbiAgICByZXR1cm4gdGhpcy5yZXF1ZXN0KGRlcClcbiAgfVxuXG4gIHB1YmxpYyBxdWV1ZU1vY2soaWQ6IHN0cmluZywgaW1wb3J0ZXI6IHN0cmluZywgZmFjdG9yeT86ICgpID0+IHVua25vd24pIHtcbiAgICBwZW5kaW5nSWRzLnB1c2goeyB0eXBlOiAnbW9jaycsIGlkLCBpbXBvcnRlciwgZmFjdG9yeSB9KVxuICB9XG5cbiAgcHVibGljIHF1ZXVlVW5tb2NrKGlkOiBzdHJpbmcsIGltcG9ydGVyOiBzdHJpbmcpIHtcbiAgICBwZW5kaW5nSWRzLnB1c2goeyB0eXBlOiAndW5tb2NrJywgaWQsIGltcG9ydGVyIH0pXG4gIH1cblxuICBwdWJsaWMgd2l0aFJlcXVlc3QocmVxdWVzdDogKGRlcDogc3RyaW5nKSA9PiB1bmtub3duKSB7XG4gICAgcmV0dXJuIG5ldyBWaXRlc3RNb2NrZXIodGhpcy5vcHRpb25zLCB0aGlzLm1vZHVsZUNhY2hlLCByZXF1ZXN0KVxuICB9XG59XG4iLCJpbXBvcnQgeyBWaXRlTm9kZVJ1bm5lciB9IGZyb20gJ3ZpdGUtbm9kZS9jbGllbnQnXG5pbXBvcnQgdHlwZSB7IE1vZHVsZUNhY2hlLCBWaXRlTm9kZVJlc29sdmVJZCwgVml0ZU5vZGVSdW5uZXJPcHRpb25zIH0gZnJvbSAndml0ZS1ub2RlJ1xuaW1wb3J0IHR5cGUgeyBTdWl0ZU1vY2tzIH0gZnJvbSAnLi9tb2NrZXInXG5pbXBvcnQgeyBWaXRlc3RNb2NrZXIgfSBmcm9tICcuL21vY2tlcidcblxuZXhwb3J0IHR5cGUgUmVzb2x2ZUlkRnVuY3Rpb24gPSAoaWQ6IHN0cmluZywgaW1wb3J0ZXI/OiBzdHJpbmcpID0+IFByb21pc2U8Vml0ZU5vZGVSZXNvbHZlSWQgfCBudWxsPlxuXG5leHBvcnQgaW50ZXJmYWNlIEV4ZWN1dGVPcHRpb25zIGV4dGVuZHMgVml0ZU5vZGVSdW5uZXJPcHRpb25zIHtcbiAgZmlsZXM6IHN0cmluZ1tdXG4gIG1vY2tNYXA6IFN1aXRlTW9ja3NcbiAgcmVzb2x2ZUlkOiBSZXNvbHZlSWRGdW5jdGlvblxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gZXhlY3V0ZUluVml0ZU5vZGUob3B0aW9uczogRXhlY3V0ZU9wdGlvbnMpIHtcbiAgY29uc3QgcnVubmVyID0gbmV3IFZpdGVzdFJ1bm5lcihvcHRpb25zKVxuXG4gIC8vIHByb3ZpZGUgdGhlIHZpdGUgZGVmaW5lIHZhcmlhYmxlIGluIHRoaXMgY29udGV4dFxuICBhd2FpdCBydW5uZXIuZXhlY3V0ZUlkKCcvQHZpdGUvZW52JylcblxuICBjb25zdCByZXN1bHQ6IGFueVtdID0gW11cbiAgZm9yIChjb25zdCBmaWxlIG9mIG9wdGlvbnMuZmlsZXMpXG4gICAgcmVzdWx0LnB1c2goYXdhaXQgcnVubmVyLmV4ZWN1dGVGaWxlKGZpbGUpKVxuXG4gIHJldHVybiByZXN1bHRcbn1cblxuZXhwb3J0IGNsYXNzIFZpdGVzdFJ1bm5lciBleHRlbmRzIFZpdGVOb2RlUnVubmVyIHtcbiAgbW9ja2VyOiBWaXRlc3RNb2NrZXJcblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgb3B0aW9uczogRXhlY3V0ZU9wdGlvbnMpIHtcbiAgICBzdXBlcihvcHRpb25zKVxuICAgIHRoaXMubW9ja2VyID0gbmV3IFZpdGVzdE1vY2tlcihvcHRpb25zLCB0aGlzLm1vZHVsZUNhY2hlKVxuICB9XG5cbiAgcHJlcGFyZUNvbnRleHQoY29udGV4dDogUmVjb3JkPHN0cmluZywgYW55Pikge1xuICAgIGNvbnN0IHJlcXVlc3QgPSBjb250ZXh0Ll9fdml0ZV9zc3JfaW1wb3J0X19cblxuICAgIGNvbnN0IG1vY2tlciA9IHRoaXMubW9ja2VyLndpdGhSZXF1ZXN0KHJlcXVlc3QpXG5cbiAgICBtb2NrZXIub24oJ21vY2tlZCcsIChkZXA6IHN0cmluZywgbW9kdWxlOiBQYXJ0aWFsPE1vZHVsZUNhY2hlPikgPT4ge1xuICAgICAgdGhpcy5zZXRDYWNoZShkZXAsIG1vZHVsZSlcbiAgICB9KVxuXG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oY29udGV4dCwge1xuICAgICAgX192aXRlX3Nzcl9pbXBvcnRfXzogKGRlcDogc3RyaW5nKSA9PiBtb2NrZXIucmVxdWVzdFdpdGhNb2NrKGRlcCksXG4gICAgICBfX3ZpdGVfc3NyX2R5bmFtaWNfaW1wb3J0X186IChkZXA6IHN0cmluZykgPT4gbW9ja2VyLnJlcXVlc3RXaXRoTW9jayhkZXApLFxuXG4gICAgICBfX3ZpdGVzdF9tb2NrZXJfXzogbW9ja2VyLFxuICAgIH0pXG4gIH1cbn1cbiIsImltcG9ydCB7IHJlc29sdmUgfSBmcm9tICdwYXRoZSdcbmltcG9ydCB7IGNyZWF0ZUJpcnBjIH0gZnJvbSAnYmlycGMnXG5pbXBvcnQgdHlwZSB7IE1vZHVsZUNhY2hlLCBSZXNvbHZlZENvbmZpZywgV29ya2VyQ29udGV4dCwgV29ya2VyR2xvYmFsU3RhdGUsIFdvcmtlclJQQyB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHsgZGlzdERpciB9IGZyb20gJy4uL2NvbnN0YW50cydcbmltcG9ydCB7IGV4ZWN1dGVJblZpdGVOb2RlIH0gZnJvbSAnLi4vbm9kZS9leGVjdXRlJ1xuaW1wb3J0IHsgcnBjIH0gZnJvbSAnLi9ycGMnXG5cbmxldCBfdml0ZU5vZGU6IHtcbiAgcnVuOiAoZmlsZXM6IHN0cmluZ1tdLCBjb25maWc6IFJlc29sdmVkQ29uZmlnKSA9PiBQcm9taXNlPHZvaWQ+XG4gIGNvbGxlY3Q6IChmaWxlczogc3RyaW5nW10sIGNvbmZpZzogUmVzb2x2ZWRDb25maWcpID0+IFByb21pc2U8dm9pZD5cbn1cbmxldCBfX3ZpdGVzdF93b3JrZXJfXzogV29ya2VyR2xvYmFsU3RhdGVcbmNvbnN0IG1vZHVsZUNhY2hlOiBNYXA8c3RyaW5nLCBNb2R1bGVDYWNoZT4gPSBuZXcgTWFwKClcbmNvbnN0IG1vY2tNYXAgPSB7fVxuXG5hc3luYyBmdW5jdGlvbiBzdGFydFZpdGVOb2RlKGN0eDogV29ya2VyQ29udGV4dCkge1xuICBpZiAoX3ZpdGVOb2RlKVxuICAgIHJldHVybiBfdml0ZU5vZGVcblxuICBjb25zdCBwcm9jZXNzRXhpdCA9IHByb2Nlc3MuZXhpdFxuXG4gIHByb2Nlc3Mub24oJ2JlZm9yZUV4aXQnLCAoY29kZSkgPT4ge1xuICAgIHJwYygpLm9uV29ya2VyRXhpdChjb2RlKVxuICB9KVxuXG4gIHByb2Nlc3MuZXhpdCA9IChjb2RlID0gcHJvY2Vzcy5leGl0Q29kZSB8fCAwKTogbmV2ZXIgPT4ge1xuICAgIHJwYygpLm9uV29ya2VyRXhpdChjb2RlKVxuICAgIHJldHVybiBwcm9jZXNzRXhpdChjb2RlKVxuICB9XG5cbiAgY29uc3QgeyBjb25maWcgfSA9IGN0eFxuXG4gIGNvbnN0IHsgcnVuLCBjb2xsZWN0IH0gPSAoYXdhaXQgZXhlY3V0ZUluVml0ZU5vZGUoe1xuICAgIGZpbGVzOiBbXG4gICAgICByZXNvbHZlKGRpc3REaXIsICdlbnRyeS5qcycpLFxuICAgIF0sXG4gICAgZmV0Y2hNb2R1bGUoaWQpIHtcbiAgICAgIHJldHVybiBycGMoKS5mZXRjaChpZClcbiAgICB9LFxuICAgIHJlc29sdmVJZChpZCwgaW1wb3J0ZXIpIHtcbiAgICAgIHJldHVybiBycGMoKS5yZXNvbHZlSWQoaWQsIGltcG9ydGVyKVxuICAgIH0sXG4gICAgbW9kdWxlQ2FjaGUsXG4gICAgbW9ja01hcCxcbiAgICBpbnRlcm9wRGVmYXVsdDogY29uZmlnLmRlcHMuaW50ZXJvcERlZmF1bHQgPz8gdHJ1ZSxcbiAgICByb290OiBjb25maWcucm9vdCxcbiAgICBiYXNlOiBjb25maWcuYmFzZSxcbiAgfSkpWzBdXG5cbiAgX3ZpdGVOb2RlID0geyBydW4sIGNvbGxlY3QgfVxuXG4gIHJldHVybiBfdml0ZU5vZGVcbn1cblxuZnVuY3Rpb24gaW5pdChjdHg6IFdvcmtlckNvbnRleHQpIHtcbiAgaWYgKF9fdml0ZXN0X3dvcmtlcl9fICYmIGN0eC5jb25maWcudGhyZWFkcyAmJiBjdHguY29uZmlnLmlzb2xhdGUpXG4gICAgdGhyb3cgbmV3IEVycm9yKGB3b3JrZXIgZm9yICR7Y3R4LmZpbGVzLmpvaW4oJywnKX0gYWxyZWFkeSBpbml0aWFsaXplZCBieSAke19fdml0ZXN0X3dvcmtlcl9fLmN0eC5maWxlcy5qb2luKCcsJyl9LiBUaGlzIGlzIHByb2JhYmx5IGFuIGludGVybmFsIGJ1ZyBvZiBWaXRlc3QuYClcblxuICBwcm9jZXNzLnN0ZG91dC53cml0ZSgnXFwwJylcblxuICBjb25zdCB7IGNvbmZpZywgcG9ydCB9ID0gY3R4XG5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvciBJIGtub3cgd2hhdCBJIGFtIGRvaW5nIDpQXG4gIGdsb2JhbFRoaXMuX192aXRlc3Rfd29ya2VyX18gPSB7XG4gICAgY3R4LFxuICAgIG1vZHVsZUNhY2hlLFxuICAgIGNvbmZpZyxcbiAgICBycGM6IGNyZWF0ZUJpcnBjPFdvcmtlclJQQz4oXG4gICAgICB7fSxcbiAgICAgIHtcbiAgICAgICAgZXZlbnROYW1lczogWydvblVzZXJDb25zb2xlTG9nJywgJ29uRmluaXNoZWQnLCAnb25Db2xsZWN0ZWQnLCAnb25Xb3JrZXJFeGl0J10sXG4gICAgICAgIHBvc3QodikgeyBwb3J0LnBvc3RNZXNzYWdlKHYpIH0sXG4gICAgICAgIG9uKGZuKSB7IHBvcnQuYWRkTGlzdGVuZXIoJ21lc3NhZ2UnLCBmbikgfSxcbiAgICAgIH0sXG4gICAgKSxcbiAgfVxuXG4gIGlmIChjdHguaW52YWxpZGF0ZXMpXG4gICAgY3R4LmludmFsaWRhdGVzLmZvckVhY2goaSA9PiBtb2R1bGVDYWNoZS5kZWxldGUoaSkpXG4gIGN0eC5maWxlcy5mb3JFYWNoKGkgPT4gbW9kdWxlQ2FjaGUuZGVsZXRlKGkpKVxufVxuXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY29sbGVjdChjdHg6IFdvcmtlckNvbnRleHQpIHtcbiAgaW5pdChjdHgpXG4gIGNvbnN0IHsgY29sbGVjdCB9ID0gYXdhaXQgc3RhcnRWaXRlTm9kZShjdHgpXG4gIHJldHVybiBjb2xsZWN0KGN0eC5maWxlcywgY3R4LmNvbmZpZylcbn1cblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHJ1bihjdHg6IFdvcmtlckNvbnRleHQpIHtcbiAgaW5pdChjdHgpXG4gIGNvbnN0IHsgcnVuIH0gPSBhd2FpdCBzdGFydFZpdGVOb2RlKGN0eClcbiAgcmV0dXJuIHJ1bihjdHguZmlsZXMsIGN0eC5jb25maWcpXG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgbGV0IF9fdml0ZXN0X3dvcmtlcl9fOiBpbXBvcnQoJ3ZpdGVzdCcpLldvcmtlckdsb2JhbFN0YXRlXG59XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBQU8sU0FBUyxXQUFXLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRTtBQUN0QyxFQUFFLElBQUksSUFBSSxJQUFJLEVBQUUsQ0FBQyxVQUFVLENBQUMs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
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vitest",
|
|
3
|
-
"version": "0.3.
|
|
3
|
+
"version": "0.3.5",
|
|
4
4
|
"description": "A blazing fast unit test framework powered by Vite",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"vite",
|
|
@@ -56,7 +56,7 @@
|
|
|
56
56
|
"local-pkg": "^0.4.1",
|
|
57
57
|
"tinypool": "^0.1.1",
|
|
58
58
|
"tinyspy": "^0.2.10",
|
|
59
|
-
"vite": "
|
|
59
|
+
"vite": "^2.7.13"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|
|
62
62
|
"@antfu/install-pkg": "^0.1.0",
|
|
@@ -68,7 +68,7 @@
|
|
|
68
68
|
"@types/node": "^17.0.16",
|
|
69
69
|
"@types/prompts": "^2.4.0",
|
|
70
70
|
"@types/sinonjs__fake-timers": "^8.1.1",
|
|
71
|
-
"@vitest/ui": "0.3.
|
|
71
|
+
"@vitest/ui": "0.3.5",
|
|
72
72
|
"birpc": "^0.1.0",
|
|
73
73
|
"c8": "^7.11.0",
|
|
74
74
|
"cac": "^6.7.12",
|
|
@@ -96,7 +96,7 @@
|
|
|
96
96
|
"source-map-js": "^1.0.2",
|
|
97
97
|
"strip-ansi": "^7.0.1",
|
|
98
98
|
"typescript": "^4.5.5",
|
|
99
|
-
"vite-node": "0.3.
|
|
99
|
+
"vite-node": "0.3.5",
|
|
100
100
|
"ws": "^8.5.0"
|
|
101
101
|
},
|
|
102
102
|
"peerDependencies": {
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
import { fileURLToPath } from 'url';
|
|
2
|
-
import { r as resolve } from './index-f55e7b59.js';
|
|
3
|
-
|
|
4
|
-
const distDir = resolve(fileURLToPath(import.meta.url), "../../dist");
|
|
5
|
-
const defaultInclude = ["**/*.{test,spec}.{js,mjs,cjs,ts,mts,cts,jsx,tsx}"];
|
|
6
|
-
const defaultExclude = ["**/node_modules/**", "**/dist/**", "**/cypress/**", "**/.{idea,git,cache,output,temp}/**"];
|
|
7
|
-
const defaultCoverageExcludes = [
|
|
8
|
-
"coverage/**",
|
|
9
|
-
"packages/*/test{,s}/**",
|
|
10
|
-
"**/*.d.ts",
|
|
11
|
-
"cypress/**",
|
|
12
|
-
"test{,s}/**",
|
|
13
|
-
"test{,-*}.{js,cjs,mjs,ts,tsx,jsx}",
|
|
14
|
-
"**/*{.,-}test.{js,cjs,mjs,ts,tsx,jsx}",
|
|
15
|
-
"**/__tests__/**",
|
|
16
|
-
"**/{karma,rollup,webpack,vite,vitest,jest,ava,babel,nyc}.config.{js,cjs,mjs,ts}",
|
|
17
|
-
"**/.{eslint,mocha}rc.{js,cjs}"
|
|
18
|
-
];
|
|
19
|
-
const coverageConfigDefaults = Object.freeze({
|
|
20
|
-
enabled: false,
|
|
21
|
-
clean: true,
|
|
22
|
-
cleanOnRerun: false,
|
|
23
|
-
reportsDirectory: "./coverage",
|
|
24
|
-
excludeNodeModules: true,
|
|
25
|
-
exclude: defaultCoverageExcludes,
|
|
26
|
-
reporter: ["text", "html"],
|
|
27
|
-
allowExternal: false,
|
|
28
|
-
extension: [".js", ".cjs", ".mjs", ".ts", ".tsx", ".jsx", ".vue", "svelte"]
|
|
29
|
-
});
|
|
30
|
-
const configDefaults = Object.freeze({
|
|
31
|
-
allowOnly: !process.env.CI,
|
|
32
|
-
globals: false,
|
|
33
|
-
environment: "node",
|
|
34
|
-
threads: true,
|
|
35
|
-
clearMocks: false,
|
|
36
|
-
restoreMocks: false,
|
|
37
|
-
mockReset: false,
|
|
38
|
-
include: defaultInclude,
|
|
39
|
-
exclude: defaultExclude,
|
|
40
|
-
testTimeout: 5e3,
|
|
41
|
-
hookTimeout: 1e4,
|
|
42
|
-
isolate: true,
|
|
43
|
-
watchIgnore: [/\/node_modules\//, /\/dist\//],
|
|
44
|
-
update: false,
|
|
45
|
-
reporters: [],
|
|
46
|
-
silent: false,
|
|
47
|
-
api: false,
|
|
48
|
-
ui: false,
|
|
49
|
-
uiBase: "/__vitest__/",
|
|
50
|
-
open: true,
|
|
51
|
-
coverage: coverageConfigDefaults
|
|
52
|
-
});
|
|
53
|
-
const defaultPort = 51204;
|
|
54
|
-
const API_PATH = "/__vitest_api__";
|
|
55
|
-
const configFiles = [
|
|
56
|
-
"vitest.config.ts",
|
|
57
|
-
"vitest.config.js",
|
|
58
|
-
"vitest.config.mjs",
|
|
59
|
-
"vite.config.ts",
|
|
60
|
-
"vite.config.js",
|
|
61
|
-
"vite.config.mjs"
|
|
62
|
-
];
|
|
63
|
-
const globalApis = [
|
|
64
|
-
"suite",
|
|
65
|
-
"test",
|
|
66
|
-
"describe",
|
|
67
|
-
"it",
|
|
68
|
-
"chai",
|
|
69
|
-
"expect",
|
|
70
|
-
"assert",
|
|
71
|
-
"vitest",
|
|
72
|
-
"vi",
|
|
73
|
-
"beforeAll",
|
|
74
|
-
"afterAll",
|
|
75
|
-
"beforeEach",
|
|
76
|
-
"afterEach"
|
|
77
|
-
];
|
|
78
|
-
|
|
79
|
-
export { API_PATH as A, coverageConfigDefaults as a, defaultPort as b, configDefaults as c, distDir as d, configFiles as e, globalApis as g };
|
|
80
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uc3RhbnRzLThmY2JmOWI2LmpzIiwic291cmNlcyI6WyIuLi9zcmMvY29uc3RhbnRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGZpbGVVUkxUb1BhdGggfSBmcm9tICd1cmwnXG5pbXBvcnQgeyByZXNvbHZlIH0gZnJvbSAncGF0aGUnXG5pbXBvcnQgdHlwZSB7IFJlc29sdmVkQzhPcHRpb25zLCBVc2VyQ29uZmlnIH0gZnJvbSAnLi90eXBlcydcblxuZXhwb3J0IGNvbnN0IGRpc3REaXIgPSByZXNvbHZlKGZpbGVVUkxUb1BhdGgoaW1wb3J0Lm1ldGEudXJsKSwgJy4uLy4uL2Rpc3QnKVxuXG5leHBvcnQgY29uc3QgZGVmYXVsdEluY2x1ZGUgPSBbJyoqLyoue3Rlc3Qsc3BlY30ue2pzLG1qcyxjanMsdHMsbXRzLGN0cyxqc3gsdHN4fSddXG5leHBvcnQgY29uc3QgZGVmYXVsdEV4Y2x1ZGUgPSBbJyoqL25vZGVfbW9kdWxlcy8qKicsICcqKi9kaXN0LyoqJywgJyoqL2N5cHJlc3MvKionLCAnKiovLntpZGVhLGdpdCxjYWNoZSxvdXRwdXQsdGVtcH0vKionXVxuXG5jb25zdCBkZWZhdWx0Q292ZXJhZ2VFeGNsdWRlcyA9IFtcbiAgJ2NvdmVyYWdlLyoqJyxcbiAgJ3BhY2thZ2VzLyovdGVzdHssc30vKionLFxuICAnKiovKi5kLnRzJyxcbiAgJ2N5cHJlc3MvKionLFxuICAndGVzdHssc30vKionLFxuICAndGVzdHssLSp9LntqcyxjanMsbWpzLHRzLHRzeCxqc3h9JyxcbiAgJyoqLyp7LiwtfXRlc3Que2pzLGNqcyxtanMsdHMsdHN4LGpzeH0nLFxuICAnKiovX190ZXN0c19fLyoqJyxcbiAgJyoqL3trYXJtYSxyb2xsdXAsd2VicGFjayx2aXRlLHZpdGVzdCxqZXN0LGF2YSxiYWJlbCxueWN9LmNvbmZpZy57anMsY2pzLG1qcyx0c30nLFxuICAnKiovLntlc2xpbnQsbW9jaGF9cmMue2pzLGNqc30nLFxuXVxuXG5leHBvcnQgY29uc3QgY292ZXJhZ2VDb25maWdEZWZhdWx0cyA9IE9iamVjdC5mcmVlemUoe1xuICBlbmFibGVkOiBmYWxzZSxcbiAgY2xlYW46IHRydWUsXG4gIGNsZWFuT25SZXJ1bjogZmFsc2UsXG4gIHJlcG9ydHNEaXJlY3Rvcnk6ICcuL2NvdmVyYWdlJyxcbiAgZXhjbHVkZU5vZGVNb2R1bGVzOiB0cnVlLFxuICBleGNsdWRlOiBkZWZhdWx0Q292ZXJhZ2VFeGNsdWRlcyxcbiAgcmVwb3J0ZXI6IFsndGV4dCcsICdodG1sJ10sXG4gIGFsbG93RXh0ZXJuYWw6IGZhbHNlLFxuICAvLyBkZWZhdWx0IGV4dGVuc2lvbnMgdXNlZCBieSBjOCwgcGx1cyAnLnZ1ZScgYW5kICcuc3ZlbHRlJ1xuICAvLyBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2lzdGFuYnVsanMvc2NoZW1hL2Jsb2IvbWFzdGVyL2RlZmF1bHQtZXh0ZW5zaW9uLmpzXG4gIGV4dGVuc2lvbjogWycuanMnLCAnLmNqcycsICcubWpzJywgJy50cycsICcudHN4JywgJy5qc3gnLCAnLnZ1ZScsICdzdmVsdGUnXSxcbn0pIGFzIFJlc29sdmVkQzhPcHRpb25zXG5cbmV4cG9ydCBjb25zdCBjb25maWdEZWZhdWx0czogVXNlckNvbmZpZyA9IE9iamVjdC5mcmVlemUoe1xuICBhbGxvd09ubHk6ICFwcm9jZXNzLmVudi5DSSxcbiAgZ2xvYmFsczogZmFsc2UsXG4gIGVudmlyb25tZW50OiAnbm9kZScsXG4gIHRocmVhZHM6IHRydWUsXG4gIGNsZWFyTW9ja3M6IGZhbHNlLFxuICByZXN0b3JlTW9ja3M6IGZhbHNlLFxuICBtb2NrUmVzZXQ6IGZhbHNlLFxuICBpbmNsdWRlOiBkZWZhdWx0SW5jbHVkZSxcbiAgZXhjbHVkZTogZGVmYXVsdEV4Y2x1ZGUsXG4gIHRlc3RUaW1lb3V0OiA1XzAwMCxcbiAgaG9va1RpbWVvdXQ6IDEwXzAwMCxcbiAgaXNvbGF0ZTogdHJ1ZSxcbiAgd2F0Y2hJZ25vcmU6IFsvXFwvbm9kZV9tb2R1bGVzXFwvLywgL1xcL2Rpc3RcXC8vXSxcbiAgdXBkYXRlOiBmYWxzZSxcbiAgcmVwb3J0ZXJzOiBbXSxcbiAgc2lsZW50OiBmYWxzZSxcbiAgYXBpOiBmYWxzZSxcbiAgdWk6IGZhbHNlLFxuICB1aUJhc2U6ICcvX192aXRlc3RfXy8nLFxuICBvcGVuOiB0cnVlLFxuICBjb3ZlcmFnZTogY292ZXJhZ2VDb25maWdEZWZhdWx0cyxcbn0pXG5cbi8vIGlmIGNoYW5nZWQsIHVwZGF0ZSBhbHNvIGpzZG9jcyBhbmQgZG9jc1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRQb3J0ID0gNTEyMDRcblxuZXhwb3J0IGNvbnN0IEFQSV9QQVRIID0gJy9fX3ZpdGVzdF9hcGlfXydcblxuZXhwb3J0IGNvbnN0IGNvbmZpZ0ZpbGVzID0gW1xuICAndml0ZXN0LmNvbmZpZy50cycsXG4gICd2aXRlc3QuY29uZmlnLmpzJyxcbiAgJ3ZpdGVzdC5jb25maWcubWpzJyxcbiAgJ3ZpdGUuY29uZmlnLnRzJyxcbiAgJ3ZpdGUuY29uZmlnLmpzJyxcbiAgJ3ZpdGUuY29uZmlnLm1qcycsXG5dXG5cbmV4cG9ydCBjb25zdCBnbG9iYWxBcGlzID0gW1xuICAvLyBzdWl0ZVxuICAnc3VpdGUnLFxuICAndGVzdCcsXG4gICdkZXNjcmliZScsXG4gICdpdCcsXG4gIC8vIGNoYWlcbiAgJ2NoYWknLFxuICAnZXhwZWN0JyxcbiAgJ2Fzc2VydCcsXG4gIC8vIHV0aWxzXG4gICd2aXRlc3QnLFxuICAndmknLFxuICAvLyBob29rc1xuICAnYmVmb3JlQWxsJyxcbiAgJ2FmdGVyQWxsJyxcbiAgJ2JlZm9yZUVhY2gnLFxuICAnYWZ0ZXJFYWNoJyxcbl1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFFWSxNQUFDLE9BQU8sR0FBRyxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsWUFBWSxFQUFFO0FBQ3RFLE1BQU0sY0FBYyxHQUFHLENBQUMsa0RBQWtELENBQUMsQ0FBQztBQUM1RSxNQUFNLGNBQWMsR0FBRyxDQUFDLG9CQUFv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
|
package/dist/index-e32575f8.js
DELETED
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import { g as getCurrentSuite, w as withTimeout, a as getDefaultHookTimeout, b as getState, s as setState, c as suite, t as test, d as describe, i as it, v as vitest, e as vi } from './vi-93df942a.js';
|
|
2
|
-
import chai, { assert, should } from 'chai';
|
|
3
|
-
import { spies, isMockFunction, spyOn, fn } from './jest-mock.js';
|
|
4
|
-
import { c as configDefaults } from './constants-8fcbf9b6.js';
|
|
5
|
-
|
|
6
|
-
const beforeAll = (fn, timeout) => getCurrentSuite().on("beforeAll", withTimeout(fn, timeout ?? getDefaultHookTimeout()));
|
|
7
|
-
const afterAll = (fn, timeout) => getCurrentSuite().on("afterAll", withTimeout(fn, timeout ?? getDefaultHookTimeout()));
|
|
8
|
-
const beforeEach = (fn, timeout) => getCurrentSuite().on("beforeEach", withTimeout(fn, timeout ?? getDefaultHookTimeout()));
|
|
9
|
-
const afterEach = (fn, timeout) => getCurrentSuite().on("afterEach", withTimeout(fn, timeout ?? getDefaultHookTimeout()));
|
|
10
|
-
|
|
11
|
-
const expect = (value, message) => {
|
|
12
|
-
const { assertionCalls } = getState();
|
|
13
|
-
setState({ assertionCalls: assertionCalls + 1 });
|
|
14
|
-
return chai.expect(value, message);
|
|
15
|
-
};
|
|
16
|
-
expect.getState = getState;
|
|
17
|
-
expect.setState = setState;
|
|
18
|
-
Object.assign(expect, chai.expect);
|
|
19
|
-
|
|
20
|
-
var index = /*#__PURE__*/Object.freeze({
|
|
21
|
-
__proto__: null,
|
|
22
|
-
suite: suite,
|
|
23
|
-
test: test,
|
|
24
|
-
describe: describe,
|
|
25
|
-
it: it,
|
|
26
|
-
configDefaults: configDefaults,
|
|
27
|
-
beforeAll: beforeAll,
|
|
28
|
-
afterAll: afterAll,
|
|
29
|
-
beforeEach: beforeEach,
|
|
30
|
-
afterEach: afterEach,
|
|
31
|
-
assert: assert,
|
|
32
|
-
should: should,
|
|
33
|
-
chai: chai,
|
|
34
|
-
expect: expect,
|
|
35
|
-
spies: spies,
|
|
36
|
-
isMockFunction: isMockFunction,
|
|
37
|
-
spyOn: spyOn,
|
|
38
|
-
fn: fn,
|
|
39
|
-
vitest: vitest,
|
|
40
|
-
vi: vi
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
export { afterAll as a, beforeAll as b, beforeEach as c, afterEach as d, expect as e, index as i };
|
|
44
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXgtZTMyNTc1ZjguanMiLCJzb3VyY2VzIjpbIi4uL3NyYy9ydW50aW1lL2hvb2tzLnRzIiwiLi4vc3JjL2ludGVncmF0aW9ucy9jaGFpL2luZGV4LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgU3VpdGVIb29rcyB9IGZyb20gJy4uL3R5cGVzJ1xuaW1wb3J0IHsgZ2V0RGVmYXVsdEhvb2tUaW1lb3V0LCB3aXRoVGltZW91dCB9IGZyb20gJy4vY29udGV4dCdcbmltcG9ydCB7IGdldEN1cnJlbnRTdWl0ZSB9IGZyb20gJy4vc3VpdGUnXG5cbi8vIHN1aXRlIGhvb2tzXG5leHBvcnQgY29uc3QgYmVmb3JlQWxsID0gKGZuOiBTdWl0ZUhvb2tzWydiZWZvcmVBbGwnXVswXSwgdGltZW91dD86IG51bWJlcikgPT4gZ2V0Q3VycmVudFN1aXRlKCkub24oJ2JlZm9yZUFsbCcsIHdpdGhUaW1lb3V0KGZuLCB0aW1lb3V0ID8/IGdldERlZmF1bHRIb29rVGltZW91dCgpKSlcbmV4cG9ydCBjb25zdCBhZnRlckFsbCA9IChmbjogU3VpdGVIb29rc1snYWZ0ZXJBbGwnXVswXSwgdGltZW91dD86IG51bWJlcikgPT4gZ2V0Q3VycmVudFN1aXRlKCkub24oJ2FmdGVyQWxsJywgd2l0aFRpbWVvdXQoZm4sIHRpbWVvdXQgPz8gZ2V0RGVmYXVsdEhvb2tUaW1lb3V0KCkpKVxuZXhwb3J0IGNvbnN0IGJlZm9yZUVhY2ggPSAoZm46IFN1aXRlSG9va3NbJ2JlZm9yZUVhY2gnXVswXSwgdGltZW91dD86IG51bWJlcikgPT4gZ2V0Q3VycmVudFN1aXRlKCkub24oJ2JlZm9yZUVhY2gnLCB3aXRoVGltZW91dChmbiwgdGltZW91dCA/PyBnZXREZWZhdWx0SG9va1RpbWVvdXQoKSkpXG5leHBvcnQgY29uc3QgYWZ0ZXJFYWNoID0gKGZuOiBTdWl0ZUhvb2tzWydhZnRlckVhY2gnXVswXSwgdGltZW91dD86IG51bWJlcikgPT4gZ2V0Q3VycmVudFN1aXRlKCkub24oJ2FmdGVyRWFjaCcsIHdpdGhUaW1lb3V0KGZuLCB0aW1lb3V0ID8/IGdldERlZmF1bHRIb29rVGltZW91dCgpKSlcbiIsImltcG9ydCBjaGFpIGZyb20gJ2NoYWknXG5pbXBvcnQgeyBnZXRTdGF0ZSwgc2V0U3RhdGUgfSBmcm9tICcuL2plc3QtZXhwZWN0J1xuXG5leHBvcnQgeyBhc3NlcnQsIHNob3VsZCB9IGZyb20gJ2NoYWknXG5cbmNvbnN0IGV4cGVjdCA9ICgodmFsdWU6IGFueSwgbWVzc2FnZT86IHN0cmluZyk6IFZpLkFzc2VydGlvbiA9PiB7XG4gIGNvbnN0IHsgYXNzZXJ0aW9uQ2FsbHMgfSA9IGdldFN0YXRlKClcbiAgc2V0U3RhdGUoeyBhc3NlcnRpb25DYWxsczogYXNzZXJ0aW9uQ2FsbHMgKyAxIH0pXG4gIHJldHVybiBjaGFpLmV4cGVjdCh2YWx1ZSwgbWVzc2FnZSkgYXMgdW5rbm93biBhcyBWaS5Bc3NlcnRpb25cbn0pIGFzIFZpLkV4cGVjdFN0YXRpY1xuZXhwZWN0LmdldFN0YXRlID0gZ2V0U3RhdGVcbmV4cGVjdC5zZXRTdGF0ZSA9IHNldFN0YXRlXG5cbk9iamVjdC5hc3NpZ24oZXhwZWN0LCBjaGFpLmV4cGVjdClcblxuZXhwb3J0IHsgY2hhaSwgZXhwZWN0IH1cbiJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVZLE1BQUMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLE9BQU8sS0FBSyxlQUFlLEVBQUUsQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxFQUFFLEVBQUUsT0FBTyxJQUFJLHFCQUFxQixFQUFFLENBQUMsRUFBRTtBQUNySCxNQUFDLFFBQVEsR0FBRyxDQUFDLEVBQUUsRUFBRSxPQUFPLEtBQUssZUFBZSxFQUFFLENBQUMsRUFBRSxDQUFDLFVBQVUsRUFBRSxXQUFXLENBQUMsRUFBRSxFQUFFLE9BQU8sSUFBSSxxQkFBcUIsRUFBRSxDQUFDLEVBQUU7QUFDbkgsTUFBQyxVQUFVLEdBQUcsQ0FBQyxFQUFFLEVBQUUsT0FBTyxLQUFLLGVBQWUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDLEVBQUUsRUFBRSxPQUFPLElBQUkscUJBQXFCLEVBQUUsQ0FBQyxFQUFFO0FBQ3ZILE1BQUMsU0FBUyxHQUFHLENBQUMsRUFBRSxFQUFFLE9BQU8sS0FBSyxlQUFlLEVBQUUsQ0FBQyxFQUFFLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxFQUFFLEVBQUUsT0FBTyxJQUFJLHFCQUFxQixFQUFFLENBQUM7O0FDRjFILE1BQUMsTUFBTSxHQUFHLENBQUMsS0FBSyxFQUFFLE9BQU8sS0FBSztBQUNuQyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsR0FBRyxRQUFRLEVBQUUsQ0FBQztBQUN4QyxFQUFFLFFBQVEsQ0FBQyxFQUFFLGNBQWMsRUFBRSxjQUFjLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQztBQUNuRCxFQUFFLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDckMsRUFBRTtBQUNGLE1BQU0sQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0FBQzNCLE1BQU0sQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0FBQzNCLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7In0=
|