@datagrok-libraries/utils 2.0.5 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/computation-view.d.ts.map +1 -1
- package/src/computation-view.js +3 -4
- package/src/function-view.d.ts +0 -8
- package/src/function-view.d.ts.map +1 -1
- package/src/function-view.js +27 -107
- package/src/history-utils.d.ts +1 -1
- package/src/history-utils.d.ts.map +1 -1
- package/src/history-utils.js +23 -12
- package/src/rich-function-view.d.ts.map +1 -1
- package/src/rich-function-view.js +3 -7
- package/src/shared-components/history-panel.d.ts +10 -5
- package/src/shared-components/history-panel.d.ts.map +1 -1
- package/src/shared-components/history-panel.js +67 -19
package/src/history-utils.js
CHANGED
|
@@ -36,22 +36,29 @@ const getSearchStringByPattern = (datePattern) => {
|
|
|
36
36
|
};
|
|
37
37
|
export var historyUtils;
|
|
38
38
|
(function (historyUtils) {
|
|
39
|
-
|
|
39
|
+
const scriptsCache = {};
|
|
40
|
+
function loadRun(funcCallId, skipDfLoad = false) {
|
|
41
|
+
var _a;
|
|
40
42
|
return __awaiter(this, void 0, void 0, function* () {
|
|
41
43
|
const pulledRun = yield grok.dapi.functions.calls.allPackageVersions()
|
|
42
44
|
.include('inputs, outputs, session.user').find(funcCallId);
|
|
45
|
+
const id = pulledRun.func.id;
|
|
43
46
|
// FIX ME: manually get script since pulledRun contains empty Func
|
|
44
|
-
const script = yield grok.dapi.functions.allPackageVersions().find(
|
|
47
|
+
const script = (_a = scriptsCache[id]) !== null && _a !== void 0 ? _a : yield grok.dapi.functions.allPackageVersions().find(id);
|
|
48
|
+
if (!scriptsCache[id])
|
|
49
|
+
scriptsCache[id] = script;
|
|
45
50
|
pulledRun.func = script;
|
|
46
51
|
pulledRun.options['isHistorical'] = true;
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
52
|
+
if (!skipDfLoad) {
|
|
53
|
+
const dfOutputs = wu(pulledRun.outputParams.values())
|
|
54
|
+
.filter((output) => output.property.propertyType === DG.TYPE.DATA_FRAME);
|
|
55
|
+
for (const output of dfOutputs)
|
|
56
|
+
pulledRun.outputs[output.name] = yield grok.dapi.tables.getTable(pulledRun.outputs[output.name]);
|
|
57
|
+
const dfInputs = wu(pulledRun.inputParams.values())
|
|
58
|
+
.filter((input) => input.property.propertyType === DG.TYPE.DATA_FRAME);
|
|
59
|
+
for (const input of dfInputs)
|
|
60
|
+
pulledRun.inputs[input.name] = yield grok.dapi.tables.getTable(pulledRun.inputs[input.name]);
|
|
61
|
+
}
|
|
55
62
|
return pulledRun;
|
|
56
63
|
});
|
|
57
64
|
}
|
|
@@ -107,6 +114,7 @@ export var historyUtils;
|
|
|
107
114
|
* @stability Experimental
|
|
108
115
|
*/
|
|
109
116
|
function pullRunsByName(funcName, filterOptions = [], listOptions = {}, includedFields = []) {
|
|
117
|
+
var _a;
|
|
110
118
|
return __awaiter(this, void 0, void 0, function* () {
|
|
111
119
|
let filteringString = ``;
|
|
112
120
|
for (const filterOption of filterOptions) {
|
|
@@ -136,7 +144,10 @@ export var historyUtils;
|
|
|
136
144
|
.include(`${includedFields.join(',')}`)
|
|
137
145
|
.list(listOptions);
|
|
138
146
|
for (const pulledRun of result) {
|
|
139
|
-
const
|
|
147
|
+
const id = pulledRun.func.id;
|
|
148
|
+
const script = (_a = scriptsCache[id]) !== null && _a !== void 0 ? _a : yield grok.dapi.functions.allPackageVersions().find(id);
|
|
149
|
+
if (!scriptsCache[id])
|
|
150
|
+
scriptsCache[id] = script;
|
|
140
151
|
pulledRun.func = script;
|
|
141
152
|
}
|
|
142
153
|
if (includedFields.includes('inputs') || includedFields.includes('func.params')) {
|
|
@@ -160,4 +171,4 @@ export var historyUtils;
|
|
|
160
171
|
}
|
|
161
172
|
historyUtils.pullRunsByName = pullRunsByName;
|
|
162
173
|
})(historyUtils || (historyUtils = {}));
|
|
163
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhpc3RvcnktdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsNEJBQTRCO0FBQzVCLGdDQUFnQztBQUNoQyxPQUFPLEtBQUssSUFBSSxNQUFNLG1CQUFtQixDQUFDO0FBRTFDLE9BQU8sS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEMsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBV3BCLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxXQUF3QixFQUFFLEVBQUU7SUFDNUQsUUFBUSxXQUFXLEVBQUU7UUFDckIsS0FBSyxPQUFPO1lBQ1YsT0FBTyxlQUFlLENBQUM7UUFDekIsS0FBSyxXQUFXO1lBQ2QsT0FBTyxpQ0FBaUMsQ0FBQztRQUMzQyxLQUFLLFVBQVU7WUFDYixPQUFPLEVBQUUsQ0FBQztRQUNaLEtBQUssV0FBVztZQUNkLE9BQU8saUNBQWlDLENBQUM7UUFDM0MsS0FBSyxXQUFXO1lBQ2QsT0FBTyxlQUFlLENBQUM7UUFDekIsS0FBSyxZQUFZO1lBQ2YsT0FBTyxpQ0FBaUMsQ0FBQztRQUMzQyxLQUFLLFlBQVk7WUFDZixPQUFPLGVBQWUsQ0FBQztRQUN6QixLQUFLLFdBQVc7WUFDZCxPQUFPLGlDQUFpQyxDQUFDO1FBQzNDLEtBQUssV0FBVztZQUNkLE9BQU8sZUFBZSxDQUFDO0tBQ3hCO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsTUFBTSxLQUFXLFlBQVksQ0FtSTVCO0FBbklELFdBQWlCLFlBQVk7SUFDM0IsU0FBc0IsT0FBTyxDQUFDLFVBQWtCOztZQUM5QyxNQUFNLFNBQVMsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxrQkFBa0IsRUFBRTtpQkFDbkUsT0FBTyxDQUFDLCtCQUErQixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQzdELGtFQUFrRTtZQUNsRSxNQUFN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QyxZQUFZLEtBQUssRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztvQkFDM0UsS0FBSyxNQUFNLE1BQU0sSUFBSSxTQUFTO3dCQUM1QixTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO2lCQUNwRzthQUNGO1lBRUQsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQztLQUFBO0lBM0RxQiwyQkFBYyxpQkEyRG5DLENBQUE7QUFDSCxDQUFDLEVBbklnQixZQUFZLEtBQVosWUFBWSxRQW1JNUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuICovXG4vKiBlc2xpbnQtZGlzYWJsZSB2YWxpZC1qc2RvYyAqL1xuaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5pbXBvcnQgKiBhcyB1aSBmcm9tICdkYXRhZ3Jvay1hcGkvdWknO1xuaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCB3dSBmcm9tICd3dSc7XG5cbnR5cGUgRGF0ZU9wdGlvbnMgPSAnQW55IHRpbWUnIHwgJ1RvZGF5JyB8ICdZZXN0ZXJkYXknIHwgJ1RoaXMgd2VlaycgfCAnTGFzdCB3ZWVrJyB8ICdUaGlzIG1vbnRoJyB8ICdMYXN0IG1vbnRoJyB8ICdUaGlzIHllYXInIHwgJ0xhc3QgeWVhcic7XG5cbnR5cGUgRmlsdGVyT3B0aW9ucyA9IHtcbiAgdGV4dD86IHN0cmluZyxcbiAgZGF0ZT86IERhdGVPcHRpb25zLFxuICBhdXRob3I/OiBERy5Vc2VyLFxuICBpc1NoYXJlZD86IGJvb2xlYW4sXG59O1xuXG5jb25zdCBnZXRTZWFyY2hTdHJpbmdCeVBhdHRlcm4gPSAoZGF0ZVBhdHRlcm46IERhdGVPcHRpb25zKSA9PiB7XG4gIHN3aXRjaCAoZGF0ZVBhdHRlcm4pIHtcbiAgY2FzZSAnVG9kYXknOlxuICAgIHJldHVybiBgc3RhcnRlZCA+IC0xZGA7XG4gIGNhc2UgJ1llc3RlcmRheSc6XG4gICAgcmV0dXJuIGBzdGFydGVkID4gLTJkIGFuZCBzdGFydGVkIDwgLTFkYDtcbiAgY2FzZSAnQW55IHRpbWUnOlxuICAgIHJldHVybiBgYDtcbiAgY2FzZSAnTGFzdCB5ZWFyJzpcbiAgICByZXR1cm4gYHN0YXJ0ZWQgPiAtMnkgYW5kIHN0YXJ0ZWQgPCAtMXlgO1xuICBjYXNlICdUaGlzIHllYXInOlxuICAgIHJldHVybiBgc3RhcnRlZCA+IC0xeWA7XG4gIGNhc2UgJ0xhc3QgbW9udGgnOlxuICAgIHJldHVybiBgc3RhcnRlZCA+IC0ybSBhbmQgc3RhcnRlZCA8IC0xbWA7XG4gIGNhc2UgJ1RoaXMgbW9udGgnOlxuICAgIHJldHVybiBgc3RhcnRlZCA+IC0xbWA7XG4gIGNhc2UgJ0xhc3Qgd2Vlayc6XG4gICAgcmV0dXJuIGBzdGFydGVkID4gLTJ3IGFuZCBzdGFydGVkIDwgLTF3YDtcbiAgY2FzZSAnVGhpcyB3ZWVrJzpcbiAgICByZXR1cm4gYHN0YXJ0ZWQgPiAtMXdgO1xuICB9XG59O1xuXG5leHBvcnQgbmFtZXNwYWNlIGhpc3RvcnlVdGlscyB7XG4gIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb2FkUnVuKGZ1bmNDYWxsSWQ6IHN0cmluZykge1xuICAgIGNvbnN0IHB1bGxlZFJ1biA9IGF3YWl0IGdyb2suZGFwaS5mdW5jdGlvbnMuY2FsbHMuYWxsUGFja2FnZVZlcnNpb25zKClcbiAgICAgIC5pbmNsdWRlKCdpbnB1dHMsIG91dHB1dHMsIHNlc3Npb24udXNlcicpLmZpbmQoZnVuY0NhbGxJZCk7XG4gICAgLy8gRklYIE1FOiBtYW51YWxseSBnZXQgc2NyaXB0IHNpbmNlIHB1bGxlZFJ1biBjb250YWlucyBlbXB0eSBGdW5jXG4gICAgY29uc3Qgc2NyaXB0ID0gYXdhaXQgZ3Jvay5kYXBpLmZ1bmN0aW9ucy5hbGxQYWNrYWdlVmVyc2lvbnMoKS5maW5kKHB1bGxlZFJ1bi5mdW5jLmlkKTtcbiAgICBwdWxsZWRSdW4uZnVuYyA9IHNjcmlwdDtcbiAgICBwdWxsZWRSdW4ub3B0aW9uc1snaXNIaXN0b3JpY2FsJ10gPSB0cnVlO1xuICAgIGNvbnN0IGRmT3V0cHV0cyA9IHd1KHB1bGxlZFJ1bi5vdXRwdXRQYXJhbXMudmFsdWVzKCkgYXMgREcuRnVuY0NhbGxQYXJhbVtdKVxuICAgICAgLmZpbHRlcigob3V0cHV0KSA9PiBvdXRwdXQucHJvcGVydHkucHJvcGVydHlUeXBlID09PSBERy5UWVBFLkRBVEFfRlJBTUUpO1xuICAgIGZvciAoY29uc3Qgb3V0cHV0IG9mIGRmT3V0cHV0cylcbiAgICAgIHB1bGxlZFJ1bi5vdXRwdXRzW291dHB1dC5uYW1lXSA9IGF3YWl0IGdyb2suZGFwaS50YWJsZXMuZ2V0VGFibGUocHVsbGVkUnVuLm91dHB1dHNbb3V0cHV0Lm5hbWVdKTtcblxuICAgIGNvbnN0IGRmSW5wdXRzID0gd3UocHVsbGVkUnVuLmlucHV0UGFyYW1zLnZhbHVlcygpIGFzIERHLkZ1bmNDYWxsUGFyYW1bXSlcbiAgICAgIC5maWx0ZXIoKGlucHV0KSA9PiBpbnB1dC5wcm9wZXJ0eS5wcm9wZXJ0eVR5cGUgPT09IERHLlRZUEUuREFUQV9GUkFNRSk7XG4gICAgZm9yIChjb25zdCBpbnB1dCBvZiBkZklucHV0cylcbiAgICAgIHB1bGxlZFJ1bi5pbnB1dHNbaW5wdXQubmFtZV0gPSBhd2FpdCBncm9rLmRhcGkudGFibGVzLmdldFRhYmxlKHB1bGxlZFJ1bi5pbnB1dHNbaW5wdXQubmFtZV0pO1xuXG4gICAgcmV0dXJuIHB1bGxlZFJ1bjtcbiAgfVxuXG4gIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBzYXZlUnVuKGNhbGxUb1NhdmU6IERHLkZ1bmNDYWxsKSB7XG4gICAgY29uc3QgZGZPdXRwdXRzID0gd3UoY2FsbFRvU2F2ZS5vdXRwdXRQYXJhbXMudmFsdWVzKCkgYXMgREcuRnVuY0NhbGxQYXJhbVtdKVxuICAgICAgLmZpbHRlcigob3V0cHV0KSA9PiBvdXRwdXQucHJvcGVydHkucHJvcGVydHlUeXBlID09PSBERy5UWVBFLkRBVEFfRlJBTUUpO1xuICAgIGZvciAoY29uc3Qgb3V0cHV0IG9mIGRmT3V0cHV0cylcbiAgICAgIGF3YWl0IGdyb2suZGFwaS50YWJsZXMudXBsb2FkRGF0YUZyYW1lKGNhbGxUb1NhdmUub3V0cHV0c1tvdXRwdXQubmFtZV0pO1xuXG4gICAgY29uc3QgZGZJbnB1dHMgPSB3dShjYWxsVG9TYXZlLmlucHV0UGFyYW1zLnZhbHVlcygpIGFzIERHLkZ1bmNDYWxsUGFyYW1bXSlcbiAgICAgIC5maWx0ZXIoKGlucHV0KSA9PiBpbnB1dC5wcm9wZXJ0eS5wcm9wZXJ0eVR5cGUgPT09IERHLlRZUEUuREFUQV9GUkFNRSk7XG4gICAgZm9yIChjb25zdCBpbnB1dCBvZiBkZklucHV0cylcbiAgICAgIGF3YWl0IGdyb2suZGFwaS50YWJsZXMudXBsb2FkRGF0YUZyYW1lKGNhbGxUb1NhdmUuaW5wdXRzW2lucHV0Lm5hbWVdKTtcblxuICAgIHJldHVybiBhd2FpdCBncm9rLmRhcGkuZnVuY3Rpb25zLmNhbGxzLmFsbFBhY2thZ2VWZXJzaW9ucygpLnNhdmUoY2FsbFRvU2F2ZSk7XG4gIH1cblxuICBleHBvcnQgYXN5bmMgZnVuY3Rpb24gZGVsZXRlUnVuKGNhbGxUb0RlbGV0ZTogREcuRnVuY0NhbGwpIHtcbiAgICBhd2FpdCBncm9rLmRhcGkuZnVuY3Rpb25zLmNhbGxzLmFsbFBhY2thZ2VWZXJzaW9ucygpLmRlbGV0ZShjYWxsVG9EZWxldGUpO1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWRzIGFsbCB0aGUgZnVuY3Rpb24gY2FsbCBvZiB0aGlzIGZ1bmN0aW9uLlxuICAgKiBEZXNpZ25lZCB0byBwdWxsIGhzdG9yaWNhbCBydW5zIGluIGZhc3QgbWFubmVyIGFuZCB0aGUgY2FsbCB7QGxpbmsgbG9hZFJ1bn0gd2l0aCBzcGVjaWZpZWQgcnVuIElELlxuICAgKiBXQVJOSU5HOiBGdW5jQ2FsbCBpbnB1dHMvb3V0cHV0cyBmaWVsZHMgYXJlIG5vdCBpbmNsdWRlZFxuICAgKiBAcGFyYW0gZnVuY0lkIElEIG9mIEZ1bmMgd2hpY2ggY2FsbHMgd2UgYXJlIGxvb2tpbmcgZm9yLiBHZXQgaXQgdXNpbmcge0BsaW5rIGZ1bmMuaWR9IGZpZWxkXG4gICAqIEByZXR1cm4gUHJvbWlzZSBvbiBhcnJheSBvZiBGdW5jQ2FsbHMgY29ycmVzcG9uZGluZyB0byB0aGUgcGFzc2VkIEZ1bmMgSURcbiAgICogQHN0YWJpbGl0eSBEZXByZWNhdGVkLiBTY3JpcHQgSUQgY2hhbmdlcyB3aXRoIGV2ZXJ5IHBhY2thZ2UgcmVsZWFzZSwgc28gc2VhcmNoaW5nIGJ5IElEIGlzIHVzZWxlc3MgaW4gcHJhY3RpY2UuXG4gKi9cbiAgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHB1bGxSdW5zKFxuICAgIGZ1bmNJZDogc3RyaW5nLFxuICAgIGZpbHRlck9wdGlvbnM6IEZpbHRlck9wdGlvbnMgPSB7fSxcbiAgICBsaXN0T3B0aW9uczoge3BhZ2VTaXplPzogbnVtYmVyLCBwYWdlTnVtYmVyPzogbnVtYmVyLCBmaWx0ZXI/OiBzdHJpbmcsIG9yZGVyPzogc3RyaW5nfSA9IHt9XG4gICk6IFByb21pc2U8REcuRnVuY0NhbGxbXT4ge1xuICAgIGxldCBmaWx0ZXJpbmdTdHJpbmcgPSBgZnVuYy5pZD1cIiR7ZnVuY0lkfVwiYDtcbiAgICBmaWx0ZXJpbmdTdHJpbmcgKz0gZmlsdGVyT3B0aW9ucy5hdXRob3IgPyBgIGFuZCBzZXNzaW9uLnVzZXIuaWQ9XCIke2ZpbHRlck9wdGlvbnMuYXV0aG9yLmlkfVwiYDonJztcbiAgICBmaWx0ZXJpbmdTdHJpbmcgKz0gZmlsdGVyT3B0aW9ucy5kYXRlID8gZ2V0U2VhcmNoU3RyaW5nQnlQYXR0ZXJuKGZpbHRlck9wdGlvbnMuZGF0ZSk6ICcnO1xuICAgIGNvbnN0IGZpbHRlciA9IGdyb2suZGFwaS5mdW5jdGlvbnMuY2FsbHNcbiAgICAgIC5hbGxQYWNrYWdlVmVyc2lvbnMoKVxuICAgICAgLmZpbHRlcihmaWx0ZXJpbmdTdHJpbmcpXG4gICAgICAuaW5jbHVkZSgnc2Vzc2lvbi51c2VyLCBvcHRpb25zJyk7XG4gICAgY29uc3QgbGlzdCA9IGZpbHRlci5saXN0KGxpc3RPcHRpb25zKTtcbiAgICByZXR1cm4gbGlzdDtcbiAgfVxuXG4gIC8qKlxuICAgKiBMb2FkcyBhbGwgdGhlIGZ1bmN0aW9uIGNhbGwgb2YgdGhpcyBmdW5jdGlvbi5cbiAgICogRGVzaWduZWQgdG8gcHVsbCBoc3RvcmljYWwgcnVucyBpbiBmYXN0IG1hbm5lciBhbmQgdGhlIGNhbGwge0BsaW5rIGxvYWRSdW59IHdpdGggc3BlY2lmaWVkIHJ1biBJRC5cbiAgICogV0FSTklORzogRnVuY0NhbGwgaW5wdXRzL291dHB1dHMgZmllbGRzIGFyZSBub3QgaW5jbHVkZWRcbiAgICogQHBhcmFtIGZ1bmNOYW1lIE5hbWUgb2YgRnVuYyB3aGljaCBjYWxscyB3ZSBhcmUgbG9va2luZyBmb3IuIEdldCBpdCB1c2luZyB7QGxpbmsgZnVuYy5uYW1lfSBmaWVsZFxuICAgKiBAcmV0dXJuIFByb21pc2Ugb24gYXJyYXkgb2YgRnVuY0NhbGxzIGNvcnJlc3BvbmRpbmcgdG8gdGhlIHBhc3NlZCBGdW5jIElEXG4gICAqIEBzdGFiaWxpdHkgRXhwZXJpbWVudGFsXG4gKi9cbiAgZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHB1bGxSdW5zQnlOYW1lKFxuICAgIGZ1bmNOYW1lOiBzdHJpbmcsXG4gICAgZmlsdGVyT3B0aW9uczogRmlsdGVyT3B0aW9uc1tdID0gW10sXG4gICAgbGlzdE9wdGlvbnM6IHtwYWdlU2l6ZT86IG51bWJlciwgcGFnZU51bWJlcj86IG51bWJlciwgZmlsdGVyPzogc3RyaW5nLCBvcmRlcj86IHN0cmluZ30gPSB7fSxcbiAgICBpbmNsdWRlZEZpZWxkczogc3RyaW5nW10gPSBbXVxuICApOiBQcm9taXNlPERHLkZ1bmNDYWxsW10+IHtcbiAgICBsZXQgZmlsdGVyaW5nU3RyaW5nID0gYGA7XG4gICAgZm9yIChjb25zdCBmaWx0ZXJPcHRpb24gb2YgZmlsdGVyT3B0aW9ucykge1xuICAgICAgY29uc3QgZmlsdGVyT3B0aW9uQ3JpdGVyaWEgPSBbXSBhcyBzdHJpbmdbXTtcbiAgICAgIGlmIChmaWx0ZXJPcHRpb24uYXV0aG9yKSBmaWx0ZXJPcHRpb25Dcml0ZXJpYS5wdXNoKGBzZXNzaW9uLnVzZXIuaWQ9XCIke2ZpbHRlck9wdGlvbi5hdXRob3IuaWR9XCJgKTtcbiAgICAgIGlmIChmaWx0ZXJPcHRpb24uZGF0ZSkgZmlsdGVyT3B0aW9uQ3JpdGVyaWEucHVzaChnZXRTZWFyY2hTdHJpbmdCeVBhdHRlcm4oZmlsdGVyT3B0aW9uLmRhdGUpKTtcbiAgICAgIGlmIChmaWx0ZXJPcHRpb24uaXNTaGFyZWQpIGZpbHRlck9wdGlvbkNyaXRlcmlhLnB1c2goYG9wdGlvbnMuaXNTaGFyZWQ9XCJ0cnVlXCJgKTtcbiAgICAgIGlmIChmaWx0ZXJPcHRpb24udGV4dCkge1xuICAgICAgICBmaWx0ZXJPcHRpb25Dcml0ZXJpYS5wdXNoKFxuICAgICAgICAgIGAoKG9wdGlvbnMudGl0bGUgbGlrZSBcIiR7ZmlsdGVyT3B0aW9uLnRleHR9XCIpIG9yIChvcHRpb25zLmFubm90YXRpb24gbGlrZSBcIiR7ZmlsdGVyT3B0aW9uLnRleHR9XCIpKWBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IGZpbHRlck9wdGlvblN0cmluZyA9IGZpbHRlck9wdGlvbkNyaXRlcmlhLmpvaW4oJyBhbmQgJyk7XG4gICAgICBpZiAoZmlsdGVyT3B0aW9uU3RyaW5nICE9PSAnJykge1xuICAgICAgICBpZiAoZmlsdGVyaW5nU3RyaW5nID09PSAnJylcbiAgICAgICAgICBmaWx0ZXJpbmdTdHJpbmcgKz0gYCgke2ZpbHRlck9wdGlvblN0cmluZ30pYDtcbiAgICAgICAgZWxzZVxuICAgICAgICAgIGZpbHRlcmluZ1N0cmluZyArPSBgIG9yICgke2ZpbHRlck9wdGlvblN0cmluZ30pYDtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGZpbHRlcmluZ1N0cmluZyAhPT0gJycpXG4gICAgICBmaWx0ZXJpbmdTdHJpbmcgPSBgIGFuZCAoJHtmaWx0ZXJpbmdTdHJpbmd9KWA7XG5cbiAgICBjb25zdCByZXN1bHQgPVxuICAgICAgYXdhaXQgZ3Jvay5kYXBpLmZ1bmN0aW9ucy5jYWxsc1xuICAgICAgICAuYWxsUGFja2FnZVZlcnNpb25zKClcbiAgICAgICAgLmZpbHRlcihgZnVuYy5uYW1lPVwiJHtmdW5jTmFtZX1cIiR7ZmlsdGVyaW5nU3RyaW5nfWApXG4gICAgICAgIC5pbmNsdWRlKGAke2luY2x1ZGVkRmllbGRzLmpvaW4oJywnKX1gKVxuICAgICAgICAubGlzdChsaXN0T3B0aW9ucyk7XG5cbiAgICBmb3IgKGNvbnN0IHB1bGxlZFJ1biBvZiByZXN1bHQpIHtcbiAgICAgIGNvbnN0IHNjcmlwdCA9IGF3YWl0IGdyb2suZGFwaS5mdW5jdGlvbnMuYWxsUGFja2FnZVZlcnNpb25zKCkuZmluZChwdWxsZWRSdW4uZnVuYy5pZCk7XG4gICAgICBwdWxsZWRSdW4uZnVuYyA9IHNjcmlwdDtcbiAgICB9XG5cbiAgICBpZiAoaW5jbHVkZWRGaWVsZHMuaW5jbHVkZXMoJ2lucHV0cycpIHx8IGluY2x1ZGVkRmllbGRzLmluY2x1ZGVzKCdmdW5jLnBhcmFtcycpKSB7XG4gICAgICBmb3IgKGNvbnN0IHB1bGxlZFJ1biBvZiByZXN1bHQpIHtcbiAgICAgICAgY29uc3QgZGZJbnB1dHMgPSB3dShwdWxsZWRSdW4uaW5wdXRQYXJhbXMudmFsdWVzKCkgYXMgREcuRnVuY0NhbGxQYXJhbVtdKVxuICAgICAgICAgIC5maWx0ZXIoKGlucHV0KSA9PiBpbnB1dC5wcm9wZXJ0eS5wcm9wZXJ0eVR5cGUgPT09IERHLlRZUEUuREFUQV9GUkFNRSk7XG4gICAgICAgIGZvciAoY29uc3QgaW5wdXQgb2YgZGZJbnB1dHMpXG4gICAgICAgICAgcHVsbGVkUnVuLmlucHV0c1tpbnB1dC5uYW1lXSA9IGF3YWl0IGdyb2suZGFwaS50YWJsZXMuZ2V0VGFibGUocHVsbGVkUnVuLmlucHV0c1tpbnB1dC5uYW1lXSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGluY2x1ZGVkRmllbGRzLmluY2x1ZGVzKCdvdXRwdXRzJykgfHwgaW5jbHVkZWRGaWVsZHMuaW5jbHVkZXMoJ2Z1bmMucGFyYW1zJykpIHtcbiAgICAgIGZvciAoY29uc3QgcHVsbGVkUnVuIG9mIHJlc3VsdCkge1xuICAgICAgICBjb25zdCBkZk91dHB1dHMgPSB3dShwdWxsZWRSdW4ub3V0cHV0UGFyYW1zLnZhbHVlcygpIGFzIERHLkZ1bmNDYWxsUGFyYW1bXSlcbiAgICAgICAgICAuZmlsdGVyKChvdXRwdXQpID0+IG91dHB1dC5wcm9wZXJ0eS5wcm9wZXJ0eVR5cGUgPT09IERHLlRZUEUuREFUQV9GUkFNRSk7XG4gICAgICAgIGZvciAoY29uc3Qgb3V0cHV0IG9mIGRmT3V0cHV0cylcbiAgICAgICAgICBwdWxsZWRSdW4ub3V0cHV0c1tvdXRwdXQubmFtZV0gPSBhd2FpdCBncm9rLmRhcGkudGFibGVzLmdldFRhYmxlKHB1bGxlZFJ1bi5vdXRwdXRzW291dHB1dC5uYW1lXSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxufVxuIl19
|
|
174
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGlzdG9yeS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImhpc3RvcnktdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsNEJBQTRCO0FBQzVCLGdDQUFnQztBQUNoQyxPQUFPLEtBQUssSUFBSSxNQUFNLG1CQUFtQixDQUFDO0FBRTFDLE9BQU8sS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEMsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDO0FBV3BCLE1BQU0sd0JBQXdCLEdBQUcsQ0FBQyxXQUF3QixFQUFFLEVBQUU7SUFDNUQsUUFBUSxXQUFXLEVBQUU7UUFDckIsS0FBSyxPQUFPO1lBQ1YsT0FBTyxlQUFlLENBQUM7UUFDekIsS0FBSyxXQUFXO1lBQ2QsT0FBTyxpQ0FBaUMsQ0FBQztRQUMzQyxLQUFLLFVBQVU7WUFDYixPQUFPLEVBQUUsQ0FBQztRQUNaLEtBQUssV0FBVztZQUNkLE9BQU8saUNBQWlDLENBQUM7UUFDM0MsS0FBSyxXQUFXO1lBQ2QsT0FBTyxlQUFlLENBQUM7UUFDekIsS0FBSyxZQUFZO1lBQ2YsT0FBTyxpQ0FBaUMsQ0FBQztRQUMzQyxLQUFLLFlBQVk7WUFDZixPQUFPLGVBQWUsQ0FBQztRQUN6QixLQUFLLFdBQVc7WUFDZCxPQUFPLGlDQUFpQyxDQUFDO1FBQzNDLEtBQUssV0FBVztZQUNkLE9BQU8sZUFBZSxDQUFDO0tBQ3hCO0FBQ0gsQ0FBQyxDQUFDO0FBRUYsTUFBTSxLQUFXLFlBQVksQ0FnSjVCO0FBaEpELFdBQWlCLFlBQVk7SUFDM0IsTUFBTSxZQUFZLEdBQUcsRUFBK0IsQ0FBQztJQUVyRCxTQUFzQixPQUFPLENBQUMsVUFBa0IsRUFBRSxVQUFVLEdBQUcsS0FBSzs7O1lBQ2xFLE1BQU0sU0FBUyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFO2lCQUNuRSxPQUFPLENBQUMsK0JBQStCLENBQUMs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QyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7aUJBQ2hHO2FBQ0Y7WUFFRCxJQUFJLGNBQWMsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLElBQUksY0FBYyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsRUFBRTtnQkFDaEYsS0FBSyxNQUFNLFNBQVMsSUFBSSxNQUFNLEVBQUU7b0JBQzlCLE1BQU0sU0FBUyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLE1BQU0sRUFBd0IsQ0FBQzt5QkFDeEUsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFlBQVksS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO29CQUMzRSxLQUFLLE1BQU0sTUFBTSxJQUFJLFNBQVM7d0JBQzVCLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7aUJBQ3BHO2FBQ0Y7WUFFRCxPQUFPLE1BQU0sQ0FBQzs7S0FDZjtJQTlEcUIsMkJBQWMsaUJBOERuQyxDQUFBO0FBQ0gsQ0FBQyxFQWhKZ0IsWUFBWSxLQUFaLFlBQVksUUFnSjVCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiAqL1xuLyogZXNsaW50LWRpc2FibGUgdmFsaWQtanNkb2MgKi9cbmltcG9ydCAqIGFzIGdyb2sgZnJvbSAnZGF0YWdyb2stYXBpL2dyb2snO1xuaW1wb3J0ICogYXMgdWkgZnJvbSAnZGF0YWdyb2stYXBpL3VpJztcbmltcG9ydCAqIGFzIERHIGZyb20gJ2RhdGFncm9rLWFwaS9kZyc7XG5pbXBvcnQgd3UgZnJvbSAnd3UnO1xuXG50eXBlIERhdGVPcHRpb25zID0gJ0FueSB0aW1lJyB8ICdUb2RheScgfCAnWWVzdGVyZGF5JyB8ICdUaGlzIHdlZWsnIHwgJ0xhc3Qgd2VlaycgfCAnVGhpcyBtb250aCcgfCAnTGFzdCBtb250aCcgfCAnVGhpcyB5ZWFyJyB8ICdMYXN0IHllYXInO1xuXG50eXBlIEZpbHRlck9wdGlvbnMgPSB7XG4gIHRleHQ/OiBzdHJpbmcsXG4gIGRhdGU/OiBEYXRlT3B0aW9ucyxcbiAgYXV0aG9yPzogREcuVXNlcixcbiAgaXNTaGFyZWQ/OiBib29sZWFuLFxufTtcblxuY29uc3QgZ2V0U2VhcmNoU3RyaW5nQnlQYXR0ZXJuID0gKGRhdGVQYXR0ZXJuOiBEYXRlT3B0aW9ucykgPT4ge1xuICBzd2l0Y2ggKGRhdGVQYXR0ZXJuKSB7XG4gIGNhc2UgJ1RvZGF5JzpcbiAgICByZXR1cm4gYHN0YXJ0ZWQgPiAtMWRgO1xuICBjYXNlICdZZXN0ZXJkYXknOlxuICAgIHJldHVybiBgc3RhcnRlZCA+IC0yZCBhbmQgc3RhcnRlZCA8IC0xZGA7XG4gIGNhc2UgJ0FueSB0aW1lJzpcbiAgICByZXR1cm4gYGA7XG4gIGNhc2UgJ0xhc3QgeWVhcic6XG4gICAgcmV0dXJuIGBzdGFydGVkID4gLTJ5IGFuZCBzdGFydGVkIDwgLTF5YDtcbiAgY2FzZSAnVGhpcyB5ZWFyJzpcbiAgICByZXR1cm4gYHN0YXJ0ZWQgPiAtMXlgO1xuICBjYXNlICdMYXN0IG1vbnRoJzpcbiAgICByZXR1cm4gYHN0YXJ0ZWQgPiAtMm0gYW5kIHN0YXJ0ZWQgPCAtMW1gO1xuICBjYXNlICdUaGlzIG1vbnRoJzpcbiAgICByZXR1cm4gYHN0YXJ0ZWQgPiAtMW1gO1xuICBjYXNlICdMYXN0IHdlZWsnOlxuICAgIHJldHVybiBgc3RhcnRlZCA+IC0ydyBhbmQgc3RhcnRlZCA8IC0xd2A7XG4gIGNhc2UgJ1RoaXMgd2Vlayc6XG4gICAgcmV0dXJuIGBzdGFydGVkID4gLTF3YDtcbiAgfVxufTtcblxuZXhwb3J0IG5hbWVzcGFjZSBoaXN0b3J5VXRpbHMge1xuICBjb25zdCBzY3JpcHRzQ2FjaGUgPSB7fSBhcyBSZWNvcmQ8c3RyaW5nLCBERy5TY3JpcHQ+O1xuXG4gIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBsb2FkUnVuKGZ1bmNDYWxsSWQ6IHN0cmluZywgc2tpcERmTG9hZCA9IGZhbHNlKSB7XG4gICAgY29uc3QgcHVsbGVkUnVuID0gYXdhaXQgZ3Jvay5kYXBpLmZ1bmN0aW9ucy5jYWxscy5hbGxQYWNrYWdlVmVyc2lvbnMoKVxuICAgICAgLmluY2x1ZGUoJ2lucHV0cywgb3V0cHV0cywgc2Vzc2lvbi51c2VyJykuZmluZChmdW5jQ2FsbElkKTtcblxuICAgIGNvbnN0IGlkID0gcHVsbGVkUnVuLmZ1bmMuaWQ7XG4gICAgLy8gRklYIE1FOiBtYW51YWxseSBnZXQgc2NyaXB0IHNpbmNlIHB1bGxlZFJ1biBjb250YWlucyBlbXB0eSBGdW5jXG4gICAgY29uc3Qgc2NyaXB0ID0gc2NyaXB0c0NhY2hlW2lkXSA/PyBhd2FpdCBncm9rLmRhcGkuZnVuY3Rpb25zLmFsbFBhY2thZ2VWZXJzaW9ucygpLmZpbmQoaWQpO1xuXG4gICAgaWYgKCFzY3JpcHRzQ2FjaGVbaWRdKSBzY3JpcHRzQ2FjaGVbaWRdID0gc2NyaXB0O1xuICAgIHB1bGxlZFJ1bi5mdW5jID0gc2NyaXB0O1xuICAgIHB1bGxlZFJ1bi5vcHRpb25zWydpc0hpc3RvcmljYWwnXSA9IHRydWU7XG5cbiAgICBpZiAoIXNraXBEZkxvYWQpIHtcbiAgICAgIGNvbnN0IGRmT3V0cHV0cyA9IHd1KHB1bGxlZFJ1bi5vdXRwdXRQYXJhbXMudmFsdWVzKCkgYXMgREcuRnVuY0NhbGxQYXJhbVtdKVxuICAgICAgICAuZmlsdGVyKChvdXRwdXQpID0+IG91dHB1dC5wcm9wZXJ0eS5wcm9wZXJ0eVR5cGUgPT09IERHLlRZUEUuREFUQV9GUkFNRSk7XG4gICAgICBmb3IgKGNvbnN0IG91dHB1dCBvZiBkZk91dHB1dHMpXG4gICAgICAgIHB1bGxlZFJ1bi5vdXRwdXRzW291dHB1dC5uYW1lXSA9IGF3YWl0IGdyb2suZGFwaS50YWJsZXMuZ2V0VGFibGUocHVsbGVkUnVuLm91dHB1dHNbb3V0cHV0Lm5hbWVdKTtcblxuICAgICAgY29uc3QgZGZJbnB1dHMgPSB3dShwdWxsZWRSdW4uaW5wdXRQYXJhbXMudmFsdWVzKCkgYXMgREcuRnVuY0NhbGxQYXJhbVtdKVxuICAgICAgICAuZmlsdGVyKChpbnB1dCkgPT4gaW5wdXQucHJvcGVydHkucHJvcGVydHlUeXBlID09PSBERy5UWVBFLkRBVEFfRlJBTUUpO1xuICAgICAgZm9yIChjb25zdCBpbnB1dCBvZiBkZklucHV0cylcbiAgICAgICAgcHVsbGVkUnVuLmlucHV0c1tpbnB1dC5uYW1lXSA9IGF3YWl0IGdyb2suZGFwaS50YWJsZXMuZ2V0VGFibGUocHVsbGVkUnVuLmlucHV0c1tpbnB1dC5uYW1lXSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHB1bGxlZFJ1bjtcbiAgfVxuXG4gIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBzYXZlUnVuKGNhbGxUb1NhdmU6IERHLkZ1bmNDYWxsKSB7XG4gICAgY29uc3QgZGZPdXRwdXRzID0gd3UoY2FsbFRvU2F2ZS5vdXRwdXRQYXJhbXMudmFsdWVzKCkgYXMgREcuRnVuY0NhbGxQYXJhbVtdKVxuICAgICAgLmZpbHRlcigob3V0cHV0KSA9PiBvdXRwdXQucHJvcGVydHkucHJvcGVydHlUeXBlID09PSBERy5UWVBFLkRBVEFfRlJBTUUpO1xuICAgIGZvciAoY29uc3Qgb3V0cHV0IG9mIGRmT3V0cHV0cylcbiAgICAgIGF3YWl0IGdyb2suZGFwaS50YWJsZXMudXBsb2FkRGF0YUZyYW1lKGNhbGxUb1NhdmUub3V0cHV0c1tvdXRwdXQubmFtZV0pO1xuXG4gICAgY29uc3QgZGZJbnB1dHMgPSB3dShjYWxsVG9TYXZlLmlucHV0UGFyYW1zLnZhbHVlcygpIGFzIERHLkZ1bmNDYWxsUGFyYW1bXSlcbiAgICAgIC5maWx0ZXIoKGlucHV0KSA9PiBpbnB1dC5wcm9wZXJ0eS5wcm9wZXJ0eVR5cGUgPT09IERHLlRZUEUuREFUQV9GUkFNRSk7XG4gICAgZm9yIChjb25zdCBpbnB1dCBvZiBkZklucHV0cylcbiAgICAgIGF3YWl0IGdyb2suZGFwaS50YWJsZXMudXBsb2FkRGF0YUZyYW1lKGNhbGxUb1NhdmUuaW5wdXRzW2lucHV0Lm5hbWVdKTtcblxuXG4gICAgcmV0dXJuIGF3YWl0IGdyb2suZGFwaS5mdW5jdGlvbnMuY2FsbHMuYWxsUGFja2FnZVZlcnNpb25zKCkuc2F2ZShjYWxsVG9TYXZlKTtcbiAgfVxuXG4gIGV4cG9ydCBhc3luYyBmdW5jdGlvbiBkZWxldGVSdW4oY2FsbFRvRGVsZXRlOiBERy5GdW5jQ2FsbCkge1xuICAgIGF3YWl0IGdyb2suZGFwaS5mdW5jdGlvbnMuY2FsbHMuYWxsUGFja2FnZVZlcnNpb25zKCkuZGVsZXRlKGNhbGxUb0RlbGV0ZSk7XG4gIH1cblxuICAvKipcbiAgICogTG9hZHMgYWxsIHRoZSBmdW5jdGlvbiBjYWxsIG9mIHRoaXMgZnVuY3Rpb24uXG4gICAqIERlc2lnbmVkIHRvIHB1bGwgaHN0b3JpY2FsIHJ1bnMgaW4gZmFzdCBtYW5uZXIgYW5kIHRoZSBjYWxsIHtAbGluayBsb2FkUnVufSB3aXRoIHNwZWNpZmllZCBydW4gSUQuXG4gICAqIFdBUk5JTkc6IEZ1bmNDYWxsIGlucHV0cy9vdXRwdXRzIGZpZWxkcyBhcmUgbm90IGluY2x1ZGVkXG4gICAqIEBwYXJhbSBmdW5jSWQgSUQgb2YgRnVuYyB3aGljaCBjYWxscyB3ZSBhcmUgbG9va2luZyBmb3IuIEdldCBpdCB1c2luZyB7QGxpbmsgZnVuYy5pZH0gZmllbGRcbiAgICogQHJldHVybiBQcm9taXNlIG9uIGFycmF5IG9mIEZ1bmNDYWxscyBjb3JyZXNwb25kaW5nIHRvIHRoZSBwYXNzZWQgRnVuYyBJRFxuICAgKiBAc3RhYmlsaXR5IERlcHJlY2F0ZWQuIFNjcmlwdCBJRCBjaGFuZ2VzIHdpdGggZXZlcnkgcGFja2FnZSByZWxlYXNlLCBzbyBzZWFyY2hpbmcgYnkgSUQgaXMgdXNlbGVzcyBpbiBwcmFjdGljZS5cbiAqL1xuICBleHBvcnQgYXN5bmMgZnVuY3Rpb24gcHVsbFJ1bnMoXG4gICAgZnVuY0lkOiBzdHJpbmcsXG4gICAgZmlsdGVyT3B0aW9uczogRmlsdGVyT3B0aW9ucyA9IHt9LFxuICAgIGxpc3RPcHRpb25zOiB7cGFnZVNpemU/OiBudW1iZXIsIHBhZ2VOdW1iZXI/OiBudW1iZXIsIGZpbHRlcj86IHN0cmluZywgb3JkZXI/OiBzdHJpbmd9ID0ge31cbiAgKTogUHJvbWlzZTxERy5GdW5jQ2FsbFtdPiB7XG4gICAgbGV0IGZpbHRlcmluZ1N0cmluZyA9IGBmdW5jLmlkPVwiJHtmdW5jSWR9XCJgO1xuICAgIGZpbHRlcmluZ1N0cmluZyArPSBmaWx0ZXJPcHRpb25zLmF1dGhvciA/IGAgYW5kIHNlc3Npb24udXNlci5pZD1cIiR7ZmlsdGVyT3B0aW9ucy5hdXRob3IuaWR9XCJgOicnO1xuICAgIGZpbHRlcmluZ1N0cmluZyArPSBmaWx0ZXJPcHRpb25zLmRhdGUgPyBnZXRTZWFyY2hTdHJpbmdCeVBhdHRlcm4oZmlsdGVyT3B0aW9ucy5kYXRlKTogJyc7XG4gICAgY29uc3QgZmlsdGVyID0gZ3Jvay5kYXBpLmZ1bmN0aW9ucy5jYWxsc1xuICAgICAgLmFsbFBhY2thZ2VWZXJzaW9ucygpXG4gICAgICAuZmlsdGVyKGZpbHRlcmluZ1N0cmluZylcbiAgICAgIC5pbmNsdWRlKCdzZXNzaW9uLnVzZXIsIG9wdGlvbnMnKTtcbiAgICBjb25zdCBsaXN0ID0gZmlsdGVyLmxpc3QobGlzdE9wdGlvbnMpO1xuICAgIHJldHVybiBsaXN0O1xuICB9XG5cbiAgLyoqXG4gICAqIExvYWRzIGFsbCB0aGUgZnVuY3Rpb24gY2FsbCBvZiB0aGlzIGZ1bmN0aW9uLlxuICAgKiBEZXNpZ25lZCB0byBwdWxsIGhzdG9yaWNhbCBydW5zIGluIGZhc3QgbWFubmVyIGFuZCB0aGUgY2FsbCB7QGxpbmsgbG9hZFJ1bn0gd2l0aCBzcGVjaWZpZWQgcnVuIElELlxuICAgKiBXQVJOSU5HOiBGdW5jQ2FsbCBpbnB1dHMvb3V0cHV0cyBmaWVsZHMgYXJlIG5vdCBpbmNsdWRlZFxuICAgKiBAcGFyYW0gZnVuY05hbWUgTmFtZSBvZiBGdW5jIHdoaWNoIGNhbGxzIHdlIGFyZSBsb29raW5nIGZvci4gR2V0IGl0IHVzaW5nIHtAbGluayBmdW5jLm5hbWV9IGZpZWxkXG4gICAqIEByZXR1cm4gUHJvbWlzZSBvbiBhcnJheSBvZiBGdW5jQ2FsbHMgY29ycmVzcG9uZGluZyB0byB0aGUgcGFzc2VkIEZ1bmMgSURcbiAgICogQHN0YWJpbGl0eSBFeHBlcmltZW50YWxcbiAqL1xuICBleHBvcnQgYXN5bmMgZnVuY3Rpb24gcHVsbFJ1bnNCeU5hbWUoXG4gICAgZnVuY05hbWU6IHN0cmluZyxcbiAgICBmaWx0ZXJPcHRpb25zOiBGaWx0ZXJPcHRpb25zW10gPSBbXSxcbiAgICBsaXN0T3B0aW9uczoge3BhZ2VTaXplPzogbnVtYmVyLCBwYWdlTnVtYmVyPzogbnVtYmVyLCBmaWx0ZXI/OiBzdHJpbmcsIG9yZGVyPzogc3RyaW5nfSA9IHt9LFxuICAgIGluY2x1ZGVkRmllbGRzOiBzdHJpbmdbXSA9IFtdXG4gICk6IFByb21pc2U8REcuRnVuY0NhbGxbXT4ge1xuICAgIGxldCBmaWx0ZXJpbmdTdHJpbmcgPSBgYDtcbiAgICBmb3IgKGNvbnN0IGZpbHRlck9wdGlvbiBvZiBmaWx0ZXJPcHRpb25zKSB7XG4gICAgICBjb25zdCBmaWx0ZXJPcHRpb25Dcml0ZXJpYSA9IFtdIGFzIHN0cmluZ1tdO1xuICAgICAgaWYgKGZpbHRlck9wdGlvbi5hdXRob3IpIGZpbHRlck9wdGlvbkNyaXRlcmlhLnB1c2goYHNlc3Npb24udXNlci5pZD1cIiR7ZmlsdGVyT3B0aW9uLmF1dGhvci5pZH1cImApO1xuICAgICAgaWYgKGZpbHRlck9wdGlvbi5kYXRlKSBmaWx0ZXJPcHRpb25Dcml0ZXJpYS5wdXNoKGdldFNlYXJjaFN0cmluZ0J5UGF0dGVybihmaWx0ZXJPcHRpb24uZGF0ZSkpO1xuICAgICAgaWYgKGZpbHRlck9wdGlvbi5pc1NoYXJlZCkgZmlsdGVyT3B0aW9uQ3JpdGVyaWEucHVzaChgb3B0aW9ucy5pc1NoYXJlZD1cInRydWVcImApO1xuICAgICAgaWYgKGZpbHRlck9wdGlvbi50ZXh0KSB7XG4gICAgICAgIGZpbHRlck9wdGlvbkNyaXRlcmlhLnB1c2goXG4gICAgICAgICAgYCgob3B0aW9ucy50aXRsZSBsaWtlIFwiJHtmaWx0ZXJPcHRpb24udGV4dH1cIikgb3IgKG9wdGlvbnMuYW5ub3RhdGlvbiBsaWtlIFwiJHtmaWx0ZXJPcHRpb24udGV4dH1cIikpYFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgY29uc3QgZmlsdGVyT3B0aW9uU3RyaW5nID0gZmlsdGVyT3B0aW9uQ3JpdGVyaWEuam9pbignIGFuZCAnKTtcbiAgICAgIGlmIChmaWx0ZXJPcHRpb25TdHJpbmcgIT09ICcnKSB7XG4gICAgICAgIGlmIChmaWx0ZXJpbmdTdHJpbmcgPT09ICcnKVxuICAgICAgICAgIGZpbHRlcmluZ1N0cmluZyArPSBgKCR7ZmlsdGVyT3B0aW9uU3RyaW5nfSlgO1xuICAgICAgICBlbHNlXG4gICAgICAgICAgZmlsdGVyaW5nU3RyaW5nICs9IGAgb3IgKCR7ZmlsdGVyT3B0aW9uU3RyaW5nfSlgO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoZmlsdGVyaW5nU3RyaW5nICE9PSAnJylcbiAgICAgIGZpbHRlcmluZ1N0cmluZyA9IGAgYW5kICgke2ZpbHRlcmluZ1N0cmluZ30pYDtcblxuICAgIGNvbnN0IHJlc3VsdCA9XG4gICAgICBhd2FpdCBncm9rLmRhcGkuZnVuY3Rpb25zLmNhbGxzXG4gICAgICAgIC5hbGxQYWNrYWdlVmVyc2lvbnMoKVxuICAgICAgICAuZmlsdGVyKGBmdW5jLm5hbWU9XCIke2Z1bmNOYW1lfVwiJHtmaWx0ZXJpbmdTdHJpbmd9YClcbiAgICAgICAgLmluY2x1ZGUoYCR7aW5jbHVkZWRGaWVsZHMuam9pbignLCcpfWApXG4gICAgICAgIC5saXN0KGxpc3RPcHRpb25zKTtcblxuICAgIGZvciAoY29uc3QgcHVsbGVkUnVuIG9mIHJlc3VsdCkge1xuICAgICAgY29uc3QgaWQgPSBwdWxsZWRSdW4uZnVuYy5pZDtcbiAgICAgIGNvbnN0IHNjcmlwdCA9IHNjcmlwdHNDYWNoZVtpZF0gPz8gYXdhaXQgZ3Jvay5kYXBpLmZ1bmN0aW9ucy5hbGxQYWNrYWdlVmVyc2lvbnMoKS5maW5kKGlkKTtcblxuICAgICAgaWYgKCFzY3JpcHRzQ2FjaGVbaWRdKSBzY3JpcHRzQ2FjaGVbaWRdID0gc2NyaXB0O1xuICAgICAgcHVsbGVkUnVuLmZ1bmMgPSBzY3JpcHQ7XG4gICAgfVxuXG4gICAgaWYgKGluY2x1ZGVkRmllbGRzLmluY2x1ZGVzKCdpbnB1dHMnKSB8fCBpbmNsdWRlZEZpZWxkcy5pbmNsdWRlcygnZnVuYy5wYXJhbXMnKSkge1xuICAgICAgZm9yIChjb25zdCBwdWxsZWRSdW4gb2YgcmVzdWx0KSB7XG4gICAgICAgIGNvbnN0IGRmSW5wdXRzID0gd3UocHVsbGVkUnVuLmlucHV0UGFyYW1zLnZhbHVlcygpIGFzIERHLkZ1bmNDYWxsUGFyYW1bXSlcbiAgICAgICAgICAuZmlsdGVyKChpbnB1dCkgPT4gaW5wdXQucHJvcGVydHkucHJvcGVydHlUeXBlID09PSBERy5UWVBFLkRBVEFfRlJBTUUpO1xuICAgICAgICBmb3IgKGNvbnN0IGlucHV0IG9mIGRmSW5wdXRzKVxuICAgICAgICAgIHB1bGxlZFJ1bi5pbnB1dHNbaW5wdXQubmFtZV0gPSBhd2FpdCBncm9rLmRhcGkudGFibGVzLmdldFRhYmxlKHB1bGxlZFJ1bi5pbnB1dHNbaW5wdXQubmFtZV0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChpbmNsdWRlZEZpZWxkcy5pbmNsdWRlcygnb3V0cHV0cycpIHx8IGluY2x1ZGVkRmllbGRzLmluY2x1ZGVzKCdmdW5jLnBhcmFtcycpKSB7XG4gICAgICBmb3IgKGNvbnN0IHB1bGxlZFJ1biBvZiByZXN1bHQpIHtcbiAgICAgICAgY29uc3QgZGZPdXRwdXRzID0gd3UocHVsbGVkUnVuLm91dHB1dFBhcmFtcy52YWx1ZXMoKSBhcyBERy5GdW5jQ2FsbFBhcmFtW10pXG4gICAgICAgICAgLmZpbHRlcigob3V0cHV0KSA9PiBvdXRwdXQucHJvcGVydHkucHJvcGVydHlUeXBlID09PSBERy5UWVBFLkRBVEFfRlJBTUUpO1xuICAgICAgICBmb3IgKGNvbnN0IG91dHB1dCBvZiBkZk91dHB1dHMpXG4gICAgICAgICAgcHVsbGVkUnVuLm91dHB1dHNbb3V0cHV0Lm5hbWVdID0gYXdhaXQgZ3Jvay5kYXBpLnRhYmxlcy5nZXRUYWJsZShwdWxsZWRSdW4ub3V0cHV0c1tvdXRwdXQubmFtZV0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rich-function-view.d.ts","sourceRoot":"","sources":["rich-function-view.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAC,YAAY,EAAwB,MAAM,iBAAiB,CAAC;AAwCpE,qBAAa,gBAAiB,SAAQ,YAAY;IAEhD,OAAO,CAAC,gBAAgB,CAAuB;IAG/C,OAAO,CAAC,eAAe,CAAiB;IAGxC,OAAO,CAAC,SAAS,CAAS;gBAEd,QAAQ,EAAE,EAAE,CAAC,QAAQ;IAqBjB,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ;
|
|
1
|
+
{"version":3,"file":"rich-function-view.d.ts","sourceRoot":"","sources":["rich-function-view.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AACtC,OAAO,EAAC,YAAY,EAAwB,MAAM,iBAAiB,CAAC;AAwCpE,qBAAa,gBAAiB,SAAQ,YAAY;IAEhD,OAAO,CAAC,gBAAgB,CAAuB;IAG/C,OAAO,CAAC,eAAe,CAAiB;IAGxC,OAAO,CAAC,SAAS,CAAS;gBAEd,QAAQ,EAAE,EAAE,CAAC,QAAQ;IAqBjB,YAAY,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ;IAyBlC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IASxD,OAAO,IAAI,WAAW;IA6BtB,eAAe,IAAI,WAAW;IAMrC,OAAO,CAAC,QAAQ,CAAmB;IAE5B,gBAAgB,IAAI,WAAW;IAoGzB,cAAc,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ;IAelD,OAAO,CAAC,iBAAiB,CAAoC;IAE7D,SAAS,KAAK,QAAQ,kBAKrB;IAED,SAAS,KAAK,cAAc,kBAE3B;IAED,SAAS,KAAK,oBAAoB,YAEjC;IAED,SAAS,KAAK,wBAAwB,aAIrC;IAED,SAAS,KAAK,gBAAgB,aAK7B;IAED,SAAS,KAAK,UAAU,aAEvB;IAED,SAAS,KAAK,kBAAkB,kCAmB/B;IAED,OAAO,CAAC,gBAAgB;IAoExB,SAAS,CAAC,aAAa,WAAkB,MAAM,mBA0H7C;CACH"}
|
|
@@ -172,19 +172,15 @@ export class RichFunctionView extends FunctionView {
|
|
|
172
172
|
this._funcCall = funcCall;
|
|
173
173
|
this.funcCallReplaced.next(true);
|
|
174
174
|
if (funcCall.options['isHistorical']) {
|
|
175
|
-
if (!isPreviousHistorical)
|
|
175
|
+
if (!isPreviousHistorical)
|
|
176
176
|
this.name = `${this.name} — ${(_b = funcCall.options['title']) !== null && _b !== void 0 ? _b : new Date(funcCall.started.toString()).toLocaleString('en-us', { month: 'short', day: 'numeric', hour: 'numeric', minute: 'numeric' })}`;
|
|
177
|
-
|
|
178
|
-
}
|
|
179
|
-
else {
|
|
177
|
+
else
|
|
180
178
|
this.name = `${this.name.substring(0, this.name.indexOf(' — '))} — ${(_c = funcCall.options['title']) !== null && _c !== void 0 ? _c : new Date(funcCall.started.toString()).toLocaleString('en-us', { month: 'short', day: 'numeric', hour: 'numeric', minute: 'numeric' })}`;
|
|
181
|
-
}
|
|
182
179
|
// FIX ME: view name does not change in models
|
|
183
180
|
(_d = document.querySelector('div.d4-ribbon-name')) === null || _d === void 0 ? void 0 : _d.replaceChildren(ui.span([this.name]));
|
|
184
181
|
this.path = `?id=${this._funcCall.id}`;
|
|
185
182
|
}
|
|
186
183
|
else {
|
|
187
|
-
this.setRunViewEditable();
|
|
188
184
|
this.path = ``;
|
|
189
185
|
if (isPreviousHistorical)
|
|
190
186
|
this.name = `${this.name.substring(0, this.name.indexOf(' — '))}`;
|
|
@@ -485,4 +481,4 @@ const plotToSheet = (exportWb, sheet, plot, columnForImage, rowForImage = 0) =>
|
|
|
485
481
|
ext: { width: canvas.width, height: canvas.height },
|
|
486
482
|
});
|
|
487
483
|
});
|
|
488
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaC1mdW5jdGlvbi12aWV3LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicmljaC1mdW5jdGlvbi12aWV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLDRCQUE0QjtBQUM1QixPQUFPLEtBQUssSUFBSSxNQUFNLG1CQUFtQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEMsT0FBTyxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0QyxPQUFPLEVBQUMsWUFBWSxFQUFFLHFCQUFxQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDcEUsT0FBTyxPQUFPLE1BQU0sU0FBUyxDQUFDO0FBQzlCLE9BQU8sV0FBVyxNQUFNLGFBQWEsQ0FBQztBQUN0QyxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDcEIsT0FBTyxDQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ3pCLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBRXJELE1BQU0sa0JBQWtCLEdBQTRCO0lBQ2xELENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTO0lBQ2pDLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRO0lBQy9CLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRO0lBQ2hDLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTO0lBQ2pDLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZO0lBQ3ZDLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPO0lBQzlCLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJO0lB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LEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFFcEUsTUFBTSxXQUFXLEdBQUcsQ0FBQyxJQUFhLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFFckUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFDckYsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFDMUYsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFDekYsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFFOUYsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQXVCLENBQUM7WUFDN0UsTUFBTSxZQUFZLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQXVCLENBQUM7WUFFL0UsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUMzQixNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE9B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LENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO29DQUNsRyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUM7b0NBQ3hHLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7b0NBQzFGLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7b0NBQzFGLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7b0NBQzFGLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLFNB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LENBQUMsTUFBTSxFQUFDO0tBQ2xELENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiAqL1xuaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5pbXBvcnQgKiBhcyB1aSBmcm9tICdkYXRhZ3Jvay1hcGkvdWknO1xuaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCB7RnVuY3Rpb25WaWV3LCBJTlRFUkFDVElWRV9DU1NfQ0xBU1N9IGZyb20gJy4vZnVuY3Rpb24tdmlldyc7XG5pbXBvcnQgRXhjZWxKUyBmcm9tICdleGNlbGpzJztcbmltcG9ydCBodG1sMmNhbnZhcyBmcm9tICdodG1sMmNhbnZhcyc7XG5pbXBvcnQgd3UgZnJvbSAnd3UnO1xuaW1wb3J0ICQgZnJvbSAnY2FzaC1kb20nO1xuaW1wb3J0IHtTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7VWlVdGlsc30gZnJvbSAnLi9zaGFyZWQtY29tcG9uZW50cy91aS11dGlscyc7XG5cbmNvbnN0IHZpZXdlclR5cGVzTWFwcGluZzoge1trZXk6IHN0cmluZ106IHN0cmluZ30gPSB7XG4gIFsnYmFyY2hhcnQnXTogREcuVklFV0VSLkJBUl9DSEFSVCxcbiAgWydib3hwbG90J106IERHLlZJRVdFUi5CT1hfUExPVCxcbiAgWydjYWxlbmRhciddOiBERy5WSUVXRVIuQ0FMRU5EQVIsXG4gIFsnY29ycnBsb3QnXTogREcuVklFV0VSLkNPUlJfUExPVCxcbiAgWydkZW5zaXR5cGxvdCddOiBERy5WSUVXRVIuREVOU0lUWV9QTE9ULFxuICBbJ2ZpbHRlcnMnXTogREcuVklFV0VSLkZJTFRFUlMsXG4gIFsnZm9ybSddOiBERy5WSUVXRVIuRk9STSxcbiAgWydnbG9iZSddOiBERy5WSUVXRVIuR0xPQkUsXG4gIFsnZ29vZ2xlbWFwJ106IERHLlZJRVdFUi5HT09HTEVfTUFQLFxuICBbJ2dyaWQnXTogREcuVklFV0VSLkdSSUQsXG4gIFsnaGVhdG1hcCddOiBERy5WSUVXRVIuSEVBVF9NQVAsXG4gIFsnaGlzdG9ncmFtJ106IERHLlZJRVdFUi5ISVNUT0dSQU0sXG4gIFsnbGluZWNoYXJ0J106IERHLlZJRVdFUi5MSU5FX0NIQVJULFxuICBbJ21hcmt1cCddOiBERy5WSUVXRVIuTUFSS1VQLFxuICBbJ21hdHJpeHBsb3QnXTogREcuVklFV0VSLk1BVFJJWF9QTE9ULFxuICBbJ25ldHdvcmtkaWFncmFtJ106IERHLlZJRVdFUi5ORVRXT1JLX0RJQUdSQU0sXG4gIFsncGNwbG90J106IERHLlZJRVdFUi5QQ19QTE9ULFxuICBbJ3BpZWNoYXJ0J106IERHLlZJRVdFUi5QSUVfQ0hBUlQsXG4gIFsnc2NhdHRlcnBsb3QnXTogREcuVklFV0VSLlNDQVRURVJfUExPVCxcbiAgWydzY2F0dGVycGxvdDNkJ106IERHLlZJRVdFUi5TQ0FUVEVSX1BMT1RfM0QsXG4gIFsnc2hhcGVtYXAnXTogREcuVklFV0VSLlNIQVBFX01BUCxcbiAgWydzdGF0aXN0aWNzJ106IERHLlZJRVdFUi5TVEFUSVNUSUNTLFxuICBbJ3RpbGV2aWV3ZXInXTogREcuVklFV0VSLlRJTEVfVklFV0VSLFxuICBbJ3RpbWVsaW5lcyddOiBERy5WSUVXRVIuVElNRUxJTkVTLFxuICBbJ3RyZWVtYXAnXTogREcuVklFV0VSLlRSRUVfTUFQLFxuICBbJ3RyZWxsaXNwbG90J106IERHLlZJRVdFUi5UUkVMTElTX1BMT1QsXG4gIFsnd29yZGNsb3VkJ106IERHLlZJRVdFUi5XT1JEX0NMT1VELFxufTtcblxuY29uc3QgRklMRV9JTlBVVF9UWVBFID0gJ2ZpbGUnO1xuXG5leHBvcnQgY2xhc3MgUmljaEZ1bmN0aW9uVmlldyBleHRlbmRzIEZ1bmN0aW9uVmlldyB7XG4gIC8vIGVtaXR0ZWQgd2hlbiBhZnRlciBhIG5ldyBGdW5jQ2FsbCBpcyBsaW5rZWRcbiAgcHJpdmF0ZSBmdW5jQ2FsbFJlcGxhY2VkID0gbmV3IFN1YmplY3Q8dHJ1ZT4oKTtcblxuICAvLyBlbWl0dGVkIHdoZW4gcnVuQnV0dG9uIGRpc2FiaWxpdHkgc2hvdWxkIGJlIGNoZWNrZWRcbiAgcHJpdmF0ZSBjaGVja0Rpc2FiaWxpdHkgPSBuZXcgU3ViamVjdCgpO1xuXG4gIC8vIHN0b3JlcyB0aGUgcnVubmluZyBzdGF0ZVxuICBwcml2YXRlIGlzUnVubmluZyA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKGZ1bmNDYWxsOiBERy5GdW5jQ2FsbCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLmJhc2VQYXRoID0gYHNjcmlwdHMvJHtmdW5jQ2FsbC5mdW5jLmlkfS92aWV3YDtcblxuICAgIHRoaXMuZXhwb3J0Q29uZmlnID0ge1xuICAgICAgc3VwcG9ydGVkRXh0ZW5zaW9uczogdGhpcy5kZWZhdWx0U3VwcG9ydGVkRXhwb3J0RXh0ZW5zaW9ucygpLFxuICAgICAgc3VwcG9ydGVkRm9ybWF0czogdGhpcy5kZWZhdWx0U3VwcG9ydGVkRXhwb3J0Rm9ybWF0cygpLFxuICAgICAgZXhwb3J0OiB0aGlzLmRlZmF1bHRFeHBvcnQsXG4gICAgICBmaWxlbmFtZTogdGhpcy5kZWZhdWx0RXhwb3J0RmlsZW5hbWUsXG4gICAgfTtcblxuICAgIHRoaXMubGlua0Z1bmNjYWxsKGZ1bmNDYWxsKTtcbiAgICB0aGlzLmluaXQoKTtcbiAgICB0aGlzLmJ1aWxkKCk7XG5cbiAgICB0aGlzLmZ1bmNDYWxsUmVwbGFjZWQubmV4dCgpO1xuXG4gICAgdGhpcy5uYW1lID0gZnVuY0NhbGwuZnVuYy5mcmllbmRseU5hbWU7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgbGlua0Z1bmNjYWxsKGZ1bmNDYWxsOiBERy5GdW5jQ2FsbCkge1xuICAgIGNvbnN0IGlzUHJldmlvdXNIaXN0b3JpY2FsID0gdGhpcy5fZnVuY0NhbGw/Lm9wdGlvbnNbJ2lzSGlzdG9yaWNhbCddO1xuICAgIHRoaXMuX2Z1bmNDYWxsID0gZnVuY0NhbGw7XG5cbiAgICB0aGlzLmZ1bmNDYWxsUmVwbGFjZWQubmV4dCh0cnVlKTtcblxuICAgIGlmIChmdW5jQ2FsbC5vcHRpb25zWydpc0hpc3RvcmljYWwnXSkge1xuICAgICAgaWYgKCFpc1ByZXZpb3VzSGlzdG9yaWNhbCkge1xuICAgICAgICB0aGlzLm5hbWUgPSBgJHt0aGlzLm5hbWV9IOKAlCAke2Z1bmNDYWxsLm9wdGlvbnNbJ3RpdGxlJ10gPz8gbmV3IERhdGUoZnVuY0NhbGwuc3RhcnRlZC50b1N0cmluZygpKS50b0xvY2FsZVN0cmluZygnZW4tdXMnLCB7bW9udGg6ICdzaG9ydCcsIGRheTogJ251bWVyaWMnLCBob3VyOiAnbnVtZXJpYycsIG1pbnV0ZTogJ251bWVyaWMnfSl9YDtcbiAgICAgICAgdGhpcy5zZXRSdW5WaWV3UmVhZG9ubHkoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubmFtZSA9IGAke3RoaXMubmFtZS5zdWJzdHJpbmcoMCwgdGhpcy5uYW1lLmluZGV4T2YoJyDigJQgJykpfSDigJQgJHtmdW5jQ2FsbC5vcHRpb25zWyd0aXRsZSddID8/IG5ldyBEYXRlKGZ1bmNDYWxsLnN0YXJ0ZWQudG9TdHJpbmcoKSkudG9Mb2NhbGVTdHJpbmcoJ2VuLXVzJywge21vbnRoOiAnc2hvcnQnLCBkYXk6ICdudW1lcmljJywgaG91cjogJ251bWVyaWMnLCBtaW51dGU6ICdudW1lcmljJ30pfWA7XG4gICAgICB9XG5cbiAgICAgIC8vIEZJWCBNRTogdmlldyBuYW1lIGRvZXMgbm90IGNoYW5nZSBpbiBtb2RlbHNcbiAgICAgIGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoJ2Rpdi5kNC1yaWJib24tbmFtZScpPy5yZXBsYWNlQ2hpbGRyZW4odWkuc3BhbihbdGhpcy5uYW1lXSkpO1xuICAgICAgdGhpcy5wYXRoID0gYD9pZD0ke3RoaXMuX2Z1bmNDYWxsLmlkfWA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuc2V0UnVuVmlld0VkaXRhYmxlKCk7XG4gICAgICB0aGlzLnBhdGggPSBgYDtcblxuICAgICAgaWYgKGlzUHJldmlvdXNIaXN0b3JpY2FsKVxuICAgICAgICB0aGlzLm5hbWUgPSBgJHt0aGlzLm5hbWUuc3Vic3RyaW5nKDAsIHRoaXMubmFtZS5pbmRleE9mKCcg4oCUICcpKX1gO1xuICAgIH1cbiAgICB0aGlzLmJ1aWxkUmliYm9uUGFuZWxzKCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgb25BZnRlclJ1bihydW5GdW5jOiBERy5GdW5jQ2FsbCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMudGFic0VsZW0ucm9vdC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnZGlzcGxheScpO1xuICAgIHRoaXMudGFic0VsZW0ucGFuZXMuZm9yRWFjaCgodGFiKSA9PiB7XG4gICAgICB0YWIuaGVhZGVyLnN0eWxlLnJlbW92ZVByb3BlcnR5KCdkaXNwbGF5Jyk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gIH1cblxuICBwdWJsaWMgYnVpbGRJTygpOiBIVE1MRWxlbWVudCB7XG4gICAgY29uc3QgaW5wdXRCbG9jayA9IHRoaXMuYnVpbGRJbnB1dEJsb2NrKCk7XG5cbiAgICB1aS50b29scy5oYW5kbGVSZXNpemUoaW5wdXRCbG9jaywgKHdpZHRoKSA9PiB7XG4gICAgICBpZiAod2lkdGggPCAzNTApXG4gICAgICAgICQoaW5wdXRCbG9jay5maXJzdENoaWxkISkuYWRkQ2xhc3MoJ3VpLWZvcm0tY29uZGVuc2VkJyk7XG4gICAgICBlbHNlXG4gICAgICAgICQoaW5wdXRCbG9jay5maXJzdENoaWxkISkucmVtb3ZlQ2xhc3MoJ3VpLWZvcm0tY29uZGVuc2VkJyk7XG4gICAgfSk7XG5cbiAgICBjb25zdCBvdXRwdXRCbG9jayA9IHRoaXMuYnVpbGRPdXRwdXRCbG9jaygpO1xuICAgIG91dHB1dEJsb2NrLnN0eWxlLmhlaWdodCA9ICcxMDAlJztcbiAgICBvdXRwdXRCbG9jay5zdHlsZS53aWR0aCA9ICcxMDAlJztcbiAgICB0aGlzLnRhYnNFbGVtLnJvb3Quc3R5bGUuZGlzcGxheSA9ICdub25lJztcblxuICAgIGlmICghIXRoaXMudGFic0VsZW0uZ2V0UGFuZSgnSW5wdXQnKSkge1xuICAgICAgdGhpcy50YWJzRWxlbS5wYW5lcy5mb3JFYWNoKCh0YWIpID0+IHtcbiAgICAgICAgdGFiLmhlYWRlci5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3Qgb3V0ID0gdWkuc3BsaXRIKFtpbnB1dEJsb2NrLCB1aS5wYW5lbChbb3V0cHV0QmxvY2tdKV0sIG51bGwsIHRydWUpO1xuICAgIG91dC5zdHlsZS5wYWRkaW5nID0gJzAgMTJweCc7XG5cbiAgICBpbnB1dEJsb2NrLnBhcmVudEVsZW1lbnQhLnN0eWxlLm1heFdpZHRoID0gJzQ1MHB4JztcblxuICAgIHJldHVybiBvdXQ7XG4gIH1cblxuICBwdWJsaWMgYnVpbGRJbnB1dEJsb2NrKCk6IEhUTUxFbGVtZW50IHtcbiAgICBjb25zdCBmb3JtRGl2ID0gdGhpcy5yZW5kZXJSdW5TZWN0aW9uKCk7XG5cbiAgICByZXR1cm4gZm9ybURpdjtcbiAgfVxuXG4gIHByaXZhdGUgdGFic0VsZW0gPSB1aS50YWJDb250cm9sKCk7XG5cbiAgcHVibGljIGJ1aWxkT3V0cHV0QmxvY2soKTogSFRNTEVsZW1lbnQge1xuICAgIGNvbnN0IG91dHB1dEJsb2NrID0gdWkuYm94KCk7XG5cbiAgICB0aGlzLnRhYnNMYWJlbHMuZm9yRWFjaCgodGFiTGFiZWwpID0+IHtcbiAgICAgIGNvbnN0IHRhYkRmUHJvcHMgPSB0aGlzLmNhdGVnb3J5VG9QYXJhbU1hcFt0YWJMYWJlbF0uZmlsdGVyKChwKSA9PiBwLnByb3BlcnR5VHlwZSA9PT0gREcuVFlQRS5EQVRBX0ZSQU1FKTtcbiAgICAgIGNvbnN0IHRhYlNjYWxhclByb3BzID0gdGhpcy5jYXRlZ29yeVRvUGFyYW1NYXBbdGFiTGFiZWxdLmZpbHRlcigocCkgPT4gcC5wcm9wZXJ0eVR5cGUgIT09IERHLlRZUEUuREFUQV9GUkFNRSk7XG4gICAgICBjb25zdCBwYXJzZWRUYWJEZlByb3BzID0gdGFiRGZQcm9wcy5tYXAoKGRmUHJvcCkgPT4gSlNPTi5wYXJzZShkZlByb3Aub3B0aW9uc1sndmlld2VyJ10pKTtcblxuICAgICAgY29uc3QgZGZTZWN0aW9ucyA9IHRhYkRmUHJvcHMubWFwKChkZlByb3AsIGRmSW5kZXgpID0+IHtcbiAgICAgICAgY29uc3Qgdmlld2VyczogREcuVmlld2VyW10gPSBwYXJzZWRUYWJEZlByb3BzW2RmSW5kZXhdLm1hcCgodmlld2VyRGVzYzoge1trZXk6IHN0cmluZ106IHN0cmluZ30pID0+IHtcbiAgICAgICAgICBjb25zdCBpbml0aWFsVmFsdWUgPSB0aGlzLmZ1bmNDYWxsPy5vdXRwdXRzW2RmUHJvcC5uYW1lXT8udmFsdWUgPz8gdGhpcy5mdW5jQ2FsbCEuaW5wdXRQYXJhbXNbZGZQcm9wLm5hbWVdPy52YWx1ZSA/PyBERy5EYXRhRnJhbWUuZnJvbUNzdihgYCk7XG5cbiAgICAgICAgICBjb25zdCB2aWV3ZXIgPSBERy5WaWV3ZXIuZnJvbVR5cGUodmlld2VyVHlwZXNNYXBwaW5nW3ZpZXdlckRlc2NbJ3R5cGUnXV0sIGluaXRpYWxWYWx1ZSk7XG4gICAgICAgICAgdmlld2VyLnNldE9wdGlvbnModmlld2VyRGVzYyk7XG5cbiAgICAgICAgICBpZiAodGhpcy5kZlRvVmlld2VyTWFwcGluZ1tkZlByb3AubmFtZV0pIHRoaXMuZGZUb1ZpZXdlck1hcHBpbmdbZGZQcm9wLm5hbWVdLnB1c2godmlld2VyKTsgZWxzZSB0aGlzLmRmVG9WaWV3ZXJNYXBwaW5nW2RmUHJvcC5uYW1lXSA9IFt2aWV3ZXJdO1xuXG4gICAgICAgICAgcmV0dXJuIHZpZXdlcjtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5mdW5jQ2FsbFJlcGxhY2VkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgY3VycmVudFBhcmFtOiBERy5GdW5jQ2FsbFBhcmFtID0gdGhpcy5mdW5jQ2FsbCEub3V0cHV0UGFyYW1zW2RmUHJvcC5uYW1lXSA/PyB0aGlzLmZ1bmNDYWxsIS5pbnB1dFBhcmFtc1tkZlByb3AubmFtZV07XG5cbiAgICAgICAgICBjdXJyZW50UGFyYW0ub25DaGFuZ2VkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB2aWV3ZXJzLmZvckVhY2goKHZpZXdlcikgPT4ge1xuICAgICAgICAgICAgICB2aWV3ZXIuZGF0YUZyYW1lID0gY3VycmVudFBhcmFtLnZhbHVlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGNvbnN0IGRmU2VjdGlvblRpdGxlOiBzdHJpbmcgPSBkZlByb3Aub3B0aW9uc1snY2FwdGlvbiddID8/IGRmUHJvcC5uYW1lO1xuXG4gICAgICAgIGlmICh0YWJMYWJlbCAhPT0gJ0lucHV0Jykge1xuICAgICAgICAgIHJldHVybiB1aS5kaXZWKFtcbiAgICAgICAgICAgIHVpLmgyKGRmU2VjdGlvblRpdGxlKSxcbiAgICAgICAgICAgIHVpLmRpdkgodmlld2Vycy5tYXAoKHZpZXdlciwgdmlld2VySW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHBhcnNlZFRhYkRmUHJvcHNbZGZJbmRleF1bdmlld2VySW5kZXhdWydibG9jayddID09PSAnMjUnKSByZXR1cm4gdWkuYmxvY2syNShbdmlld2VyLnJvb3RdKTtcbiAgICAgICAgICAgICAgaWYgKHBhcnNlZFRhYkRmUHJvcHNbZGZJbmRleF1bdmlld2VySW5kZXhdWydibG9jayddID09PSAnNTAnKSByZXR1cm4gdWkuYmxvY2s1MChbdmlld2VyLnJvb3RdKTtcbiAgICAgICAgICAgICAgaWYgKHBhcnNlZFRhYkRmUHJvcHNbZGZJbmRleF1bdmlld2VySW5kZXhdWydibG9jayddID09PSAnNzUnKSByZXR1cm4gdWkuYmxvY2s3NShbdmlld2VyLnJvb3RdKTtcbiAgICAgICAgICAgICAgaWYgKHBhcnNlZFRhYkRmUHJvcHNbZGZJbmRleF1bdmlld2VySW5kZXhdWydibG9jayddID09PSAnMTAwJykgcmV0dXJuIHVpLmJsb2NrKFt2aWV3ZXIucm9vdF0pO1xuXG4gICAgICAgICAgICAgIHJldHVybiB2aWV3ZXIucm9vdDtcbiAgICAgICAgICAgIH0pLCB7c3R5bGU6IHsnZmxleC13cmFwJzogJ3dyYXAnfX0pXG4gICAgICAgICAgXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgaW5wdXRTZWN0aW9uID0gdWkuZGl2SCh2aWV3ZXJzLm1hcCgodmlld2VyLCB2aWV3ZXJJbmRleCkgPT4ge1xuICAgICAgICAgICAgaWYgKHBhcnNlZFRhYkRmUHJvcHNbZGZJbmRleF1bdmlld2VySW5kZXhdWydibG9jayddID09PSAnMjUnKSByZXR1cm4gdWkuYmxvY2syNShbdmlld2VyLnJvb3RdKTtcbiAgICAgICAgICAgIGlmIChwYXJzZWRUYWJEZlByb3BzW2RmSW5kZXhdW3ZpZXdlckluZGV4XVsnYmxvY2snXSA9PT0gJzUwJykgcmV0dXJuIHVpLmJsb2NrNTAoW3ZpZXdlci5yb290XSk7XG4gICAgICAgICAgICBpZiAocGFyc2VkVGFiRGZQcm9wc1tkZkluZGV4XVt2aWV3ZXJJbmRleF1bJ2Jsb2NrJ10gPT09ICc3NScpIHJldHVybiB1aS5ibG9jazc1KFt2aWV3ZXIucm9vdF0pO1xuICAgICAgICAgICAgaWYgKHBhcnNlZFRhYkRmUHJvcHNbZGZJbmRleF1bdmlld2VySW5kZXhdWydibG9jayddID09PSAnMTAwJykgcmV0dXJuIHVpLmJsb2NrKFt2aWV3ZXIucm9vdF0pO1xuXG4gICAgICAgICAgICByZXR1cm4gdmlld2VyLnJvb3Q7XG4gICAgICAgICAgfSksIHtzdHlsZTogeydmbGV4LXdyYXAnOiAnd3JhcCd9fSk7XG5cbiAgICAgICAgICB0aGlzLmZ1bmNDYWxsUmVwbGFjZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRQYXJhbTogREcuRnVuY0NhbGxQYXJhbSA9IHRoaXMuZnVuY0NhbGwhLm91dHB1dFBhcmFtc1tkZlByb3AubmFtZV0gPz8gdGhpcy5mdW5jQ2FsbCEuaW5wdXRQYXJhbXNbZGZQcm9wLm5hbWVdO1xuXG4gICAgICAgICAgICBjdXJyZW50UGFyYW0ub25DaGFuZ2VkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgIHRoaXMudGFic0VsZW0ucm9vdC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnZGlzcGxheScpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICByZXR1cm4gdWkuZGl2VihbXG4gICAgICAgICAgICB1aS5oMihkZlNlY3Rpb25UaXRsZSksXG4gICAgICAgICAgICBpbnB1dFNlY3Rpb25cbiAgICAgICAgICBdKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cblxuICAgICAgY29uc3QgZ2VuZXJhdGVTY2FsYXJzVGFibGUgPSAoKSA9PiB1aS50YWJsZUZyb21NYXAoXG4gICAgICAgIHRhYlNjYWxhclByb3BzLnJlZHVjZSgoYWNjLCBzY2FsYXIpID0+IHtcbiAgICAgICAgICBhY2Nbc2NhbGFyLm5hbWVdID0gdGhpcy5mdW5jQ2FsbD8ub3V0cHV0c1tzY2FsYXIubmFtZV07XG4gICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwge30gYXMge1trZXk6IHN0cmluZ106IHN0cmluZ30pXG4gICAgICApO1xuXG4gICAgICBsZXQgc2NhbGFyc1RhYmxlID0gZ2VuZXJhdGVTY2FsYXJzVGFibGUoKTtcblxuICAgICAgdGFiU2NhbGFyUHJvcHMuZm9yRWFjaCgodGFiU2NhbGFyUHJvcCkgPT4ge1xuICAgICAgICB0aGlzLmZ1bmNDYWxsUmVwbGFjZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAodGhpcy5mdW5jQ2FsbCEub3V0cHV0UGFyYW1zW3RhYlNjYWxhclByb3AubmFtZV0gYXMgREcuRnVuY0NhbGxQYXJhbSkub25DaGFuZ2VkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBuZXdTY2FsYXJzVGFibGUgPSBnZW5lcmF0ZVNjYWxhcnNUYWJsZSgpO1xuICAgICAgICAgICAgc2NhbGFyc1RhYmxlLnJlcGxhY2VXaXRoKG5ld1NjYWxhcnNUYWJsZSk7XG4gICAgICAgICAgICBzY2FsYXJzVGFibGUgPSBuZXdTY2FsYXJzVGFibGU7XG4gICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMudGFic0VsZW0uYWRkUGFuZSh0YWJMYWJlbCwgKCkgPT4ge1xuICAgICAgICByZXR1cm4gdWkuZGl2VihbLi4uZGZTZWN0aW9ucywgLi4udGFiU2NhbGFyUHJvcHMubGVuZ3RoID8gW3VpLmgyKCdTY2FsYXIgdmFsdWVzJyldOiBbXSwgc2NhbGFyc1RhYmxlXSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICBvdXRwdXRCbG9jay5hcHBlbmQodGhpcy50YWJzRWxlbS5yb290KTtcblxuICAgIHRoaXMudGFic0VsZW0uaGVhZGVyLmNsYXNzTGlzdC5hZGQoSU5URVJBQ1RJVkVfQ1NTX0NMQVNTKTtcblxuICAgIHJldHVybiBvdXRwdXRCbG9jaztcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBvbkFmdGVyTG9hZFJ1bihsb2FkZWRSdW46IERHLkZ1bmNDYWxsKSB7XG4gICAgd3UodGhpcy5mdW5jQ2FsbCEub3V0cHV0UGFyYW1zLnZhbHVlcygpIGFzIERHLkZ1bmNDYWxsUGFyYW1bXSkuZm9yRWFjaCgob3V0KSA9PiB7XG4gICAgICB0aGlzLmZ1bmNDYWxsIS5zZXRQYXJhbVZhbHVlKG91dC5uYW1lLCBsb2FkZWRSdW4ub3V0cHV0c1tvdXQubmFtZV0pO1xuICAgIH0pO1xuXG4gICAgd3UodGhpcy5mdW5jQ2FsbCEuaW5wdXRQYXJhbXMudmFsdWVzKCkgYXMgREcuRnVuY0NhbGxQYXJhbVtdKS5mb3JFYWNoKChpbnApID0+IHtcbiAgICAgIHRoaXMuZnVuY0NhbGwhLnNldFBhcmFtVmFsdWUoaW5wLm5hbWUsIGxvYWRlZFJ1bi5pbnB1dHNbaW5wLm5hbWVdKTtcbiAgICB9KTtcblxuICAgIHRoaXMudGFic0VsZW0ucm9vdC5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnZGlzcGxheScpO1xuICAgIHRoaXMudGFic0VsZW0ucGFuZXMuZm9yRWFjaCgodGFiKSA9PiB7XG4gICAgICB0YWIuaGVhZGVyLnN0eWxlLnJlbW92ZVByb3BlcnR5KCdkaXNwbGF5Jyk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGRmVG9WaWV3ZXJNYXBwaW5nOiB7W2tleTogc3RyaW5nXTogREcuVmlld2VyW119ID0ge307XG5cbiAgcHJvdGVjdGVkIGdldCBkZlBhcmFtcygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4udGhpcy5mdW5jIS5pbnB1dHMuZmlsdGVyKChwKSA9PiBwLnByb3BlcnR5VHlwZSA9PSBERy5UWVBFLkRBVEFfRlJBTUUpLFxuICAgICAgLi4udGhpcy5mdW5jIS5vdXRwdXRzLmZpbHRlcigocCkgPT4gcC5wcm9wZXJ0eVR5cGUgPT0gREcuVFlQRS5EQVRBX0ZSQU1FKSxcbiAgICBdO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBkZk91dHB1dFBhcmFtcygpIHtcbiAgICByZXR1cm4gdGhpcy5mdW5jIS5vdXRwdXRzLmZpbHRlcigocCkgPT4gcC5wcm9wZXJ0eVR5cGUgPT0gREcuVFlQRS5EQVRBX0ZSQU1FKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgaXNJbnB1dFBhbmVsUmVxdWlyZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuZnVuYz8uaW5wdXRzLnNvbWUoKHApID0+IHAucHJvcGVydHlUeXBlID09IERHLlRZUEUuREFUQV9GUkFNRSAmJiBwLm9wdGlvbnNbJ3ZpZXdlciddICE9IG51bGwpIHx8IGZhbHNlO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBvdXRVbmlxdWVQYXJhbUNhdGVnb3JpZXMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLm5ldyBTZXQodGhpcy5mdW5jIS5vdXRwdXRzLm1hcCgocCkgPT4gcC5jYXRlZ29yeSkpIC8vIGdldCBhbGwgb3V0cHV0IHBhcmFtcycgY2F0ZWdvcmllc1xuICAgIF07IC8vIGtlZXAgb25seSB1bmlxdWUgb2YgdGhlbVxuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBvdXRwdXRUYWJzTGFiZWxzKCkge1xuICAgIHJldHVybiBbXG4gICAgICAuLi50aGlzLm91dFVuaXF1ZVBhcmFtQ2F0ZWdvcmllcyxcbiAgICAgIC4uLnRoaXMub3V0VW5pcXVlUGFyYW1DYXRlZ29yaWVzLmZpbmQoKHZhbCkgPT4gdmFsID09PSAnTWlzYycpID8gWydPdXRwdXQnXSA6IFtdLCAvLyBpZiBubyBjYXRlZ29yaWVzIGFyZSBzdGF0ZWQsIHRoZSBkZWZhdWx0IGNhdGVnb3J5IGlzIGFkZGVkXG4gICAgXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgdGFic0xhYmVscygpIHtcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5jYXRlZ29yeVRvUGFyYW1NYXApO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldCBjYXRlZ29yeVRvUGFyYW1NYXAoKSB7XG4gICAgY29uc3QgbWFwID0ge30gYXMgUmVjb3JkPHN0cmluZywgREcuUHJvcGVydHlbXT47XG5cbiAgICBpZiAodGhpcy5pc0lucHV0UGFuZWxSZXF1aXJlZCkge1xuICAgICAgdGhpcy5mdW5jIS5pbnB1dHMuXG4gICAgICAgIGZpbHRlcigocCkgPT4gcC5wcm9wZXJ0eVR5cGUgPT0gREcuVFlQRS5EQVRBX0ZSQU1FICYmIHAub3B0aW9uc1sndmlld2VyJ10gIT0gbnVsbCkuXG4gICAgICAgIGZvckVhY2goKHApID0+IG1hcFsnSW5wdXQnXSA/IG1hcFsnSW5wdXQnXS5wdXNoKHApOiBtYXBbJ0lucHV0J10gPSBbcF0pO1xuICAgIH1cblxuICAgIHRoaXMuZnVuYyEub3V0cHV0cy5mb3JFYWNoKChwKSA9PiB7XG4gICAgICBjb25zdCBjYXRlZ29yeSA9IHAuY2F0ZWdvcnkgPT09ICdNaXNjJyA/ICdPdXRwdXQnOiBwLmNhdGVnb3J5O1xuXG4gICAgICBpZiAobWFwW2NhdGVnb3J5XSlcbiAgICAgICAgbWFwW2NhdGVnb3J5XS5wdXNoKHApO1xuICAgICAgZWxzZVxuICAgICAgICBtYXBbY2F0ZWdvcnldID0gW3BdO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIG1hcDtcbiAgfVxuXG4gIHByaXZhdGUgcmVuZGVyUnVuU2VjdGlvbigpOiBIVE1MRWxlbWVudCB7XG4gICAgY29uc3QgcnVuQnV0dG9uID0gdWkuYmlnQnV0dG9uKCdSdW4nLCBhc3luYyAoKSA9PiB7XG4gICAgICB0aGlzLmlzUnVubmluZyA9IHRydWU7XG4gICAgICB0aGlzLmNoZWNrRGlzYWJpbGl0eS5uZXh0KCk7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB0aGlzLnJ1bigpO1xuICAgICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAgIGdyb2suc2hlbGwuZXJyb3IoZSk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICB0aGlzLmlzUnVubmluZyA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNoZWNrRGlzYWJpbGl0eS5uZXh0KCk7XG4gICAgICB9XG4gICAgfSk7XG4gICAgY29uc3QgYnV0dG9uV3JhcHBlciA9IHVpLmRpdihydW5CdXR0b24pO1xuICAgIHVpLnRvb2x0aXAuYmluZChidXR0b25XcmFwcGVyLCAoKSA9PiBydW5CdXR0b24uZGlzYWJsZWQgPyAodGhpcy5pc1J1bm5pbmcgPyAnQ29tcHV0YXRpb25zIGFyZSBpbiBwcm9ncmVzcycgOiAnU29tZSBpbnB1dHMgYXJlIGludmFsaWQnKSA6ICcnKTtcblxuICAgIHRoaXMuY2hlY2tEaXNhYmlsaXR5LnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBjb25zdCBpc1ZhbGlkID0gKHd1KHRoaXMuZnVuY0NhbGwhLmlucHV0cy52YWx1ZXMoKSkuZXZlcnkoKHYpID0+IHYgIT09IG51bGwpKSAmJiAhdGhpcy5pc1J1bm5pbmc7XG4gICAgICBydW5CdXR0b24uZGlzYWJsZWQgPSBpc1ZhbGlkID8gZmFsc2UgOiB0cnVlO1xuICAgIH0pO1xuXG4gICAgY29uc3QgaW5wdXRzID0gdWkuZGl2VihbXSwgJ3VpLWZvcm0nKTtcbiAgICBsZXQgcHJldkNhdGVnb3J5ID0gJ01pc2MnO1xuICAgIHd1KHRoaXMuZnVuY0NhbGwhLmlucHV0UGFyYW1zLnZhbHVlcygpIGFzIERHLkZ1bmNDYWxsUGFyYW1bXSlcbiAgICAgIC5maWx0ZXIoKHZhbCkgPT4gISF2YWwpXG4gICAgICAuZm9yRWFjaCgodmFsKSA9PiB7XG4gICAgICAgIGNvbnN0IHByb3AgPSB2YWwucHJvcGVydHk7XG4gICAgICAgIGlmIChwcm9wLnByb3BlcnR5VHlwZS50b1N0cmluZygpID09PSBGSUxFX0lOUFVUX1RZUEUpIHtcbiAgICAgICAgICBjb25zdCB0ID0gVWlVdGlscy5maWxlSW5wdXQocHJvcC5jYXB0aW9uID8/IHByb3AubmFtZSwgbnVsbCwgKGZpbGU6IEZpbGUpID0+IHRoaXMuZnVuY0NhbGwhLmlucHV0c1twcm9wLm5hbWVdID0gZmlsZSk7XG4gICAgICAgICAgaWYgKHByb3AuY2F0ZWdvcnkgIT09IHByZXZDYXRlZ29yeSlcbiAgICAgICAgICAgIGlucHV0cy5hcHBlbmQodWkuaDIocHJvcC5jYXRlZ29yeSkpO1xuXG4gICAgICAgICAgaW5wdXRzLmFwcGVuZCh0LnJvb3QpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IHQgPSBwcm9wLnByb3BlcnR5VHlwZSA9PT0gREcuVFlQRS5EQVRBX0ZSQU1FID9cbiAgICAgICAgICAgIHVpLnRhYmxlSW5wdXQocHJvcC5uYW1lLCBudWxsLCBncm9rLnNoZWxsLnRhYmxlcyk6XG4gICAgICAgICAgICB1aS5pbnB1dC5mb3JQcm9wZXJ0eShwcm9wKTtcblxuICAgICAgICAgIHQuY2FwdGlvbkxhYmVsLmZpcnN0Q2hpbGQhLnJlcGxhY2VXaXRoKHVpLnNwYW4oW3Byb3AuY2FwdGlvbiA/PyBwcm9wLm5hbWVdKSk7XG4gICAgICAgICAgaWYgKHByb3Aub3B0aW9uc1sndW5pdHMnXSkgdC5hZGRQb3N0Zml4KHByb3Aub3B0aW9uc1sndW5pdHMnXSk7XG5cbiAgICAgICAgICB0aGlzLmZ1bmNDYWxsUmVwbGFjZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHQudmFsdWUgPSB0aGlzLmZ1bmNDYWxsIS5pbnB1dHNbdmFsLm5hbWVdID8/IHByb3AuZGVmYXVsdFZhbHVlID8/IG51bGw7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgdC5vbkNoYW5nZWQoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5mdW5jQ2FsbCEuaW5wdXRzW3ZhbC5uYW1lXSA9IHQudmFsdWU7XG4gICAgICAgICAgICBpZiAodC52YWx1ZSA9PT0gbnVsbCkgc2V0VGltZW91dCgoKSA9PiB0LmlucHV0LmNsYXNzTGlzdC5hZGQoJ2Q0LWludmFsaWQnKSwgMTAwKTsgZWxzZSB0LmlucHV0LmNsYXNzTGlzdC5yZW1vdmUoJ2Q0LWludmFsaWQnKTsgO1xuXG4gICAgICAgICAgICB0aGlzLmNoZWNrRGlzYWJpbGl0eS5uZXh0KCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgaWYgKHByb3AuY2F0ZWdvcnkgIT09IHByZXZDYXRlZ29yeSlcbiAgICAgICAgICAgIGlucHV0cy5hcHBlbmQodWkuaDIocHJvcC5jYXRlZ29yeSkpO1xuXG4gICAgICAgICAgaWYgKHQudmFsdWUgPT09IG51bGwpIHJ1bkJ1dHRvbi5kaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgaW5wdXRzLmFwcGVuZCh0LnJvb3QpO1xuICAgICAgICB9XG4gICAgICAgIHByZXZDYXRlZ29yeSA9IHByb3AuY2F0ZWdvcnk7XG4gICAgICB9KTtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgY29uc3QgYnV0dG9ucyA9IHVpLmJ1dHRvbnNJbnB1dChbYnV0dG9uV3JhcHBlcl0pO1xuICAgIGlucHV0cy5hcHBlbmQoYnV0dG9ucyk7XG4gICAgaW5wdXRzLmNsYXNzTGlzdC5yZW1vdmUoJ3VpLXBhbmVsJyk7XG4gICAgaW5wdXRzLnN0eWxlLnBhZGRpbmdUb3AgPSAnMHB4JztcbiAgICBpbnB1dHMuc3R5bGUucGFkZGluZ0xlZnQgPSAnMHB4JztcblxuICAgIHJldHVybiB1aS5kaXYoW2lucHV0c10pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGRlZmF1bHRFeHBvcnQgPSBhc3luYyAoZm9ybWF0OiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBsYXN0Q2FsbCA9IHRoaXMubGFzdENhbGw7XG4gICAgaWYgKCFsYXN0Q2FsbCkgdGhyb3cgbmV3IEVycm9yKGBGdW5jdGlvbiB3YXMgbm90IGNhbGxlZGApO1xuXG4gICAgaWYgKCF0aGlzLmV4cG9ydENvbmZpZyEuc3VwcG9ydGVkRm9ybWF0cy5pbmNsdWRlcyhmb3JtYXQpKSB0aHJvdyBuZXcgRXJyb3IoYEZvcm1hdCBcIiR7Zm9ybWF0fVwiIGlzIG5vdCBzdXBwb3J0ZWQuYCk7XG5cbiAgICBpZiAoIXRoaXMuZnVuYykgdGhyb3cgbmV3IEVycm9yKCdUaGUgY29ycmVzcG9kaW5nIGZ1bmN0aW9uIGlzIG5vdCBzcGVjaWZpZWQnKTtcblxuICAgIGNvbnN0IEJMT0JfVFlQRSA9ICdhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQuc3ByZWFkc2hlZXRtbC5zaGVldDtjaGFyc2V0PVVURi04JztcbiAgICBjb25zdCBleHBvcnRXb3JrYm9vayA9IG5ldyBFeGNlbEpTLldvcmtib29rKCk7XG5cbiAgICBjb25zdCBpc1NjYWxhclR5cGUgPSAodHlwZTogREcuVFlQRSkgPT4gKERHLlRZUEVTX1NDQUxBUi5oYXModHlwZSkpO1xuXG4gICAgY29uc3QgaXNEYXRhRnJhbWUgPSAodHlwZTogREcuVFlQRSkgPT4gKHR5cGUgPT09IERHLlRZUEUuREFUQV9GUkFNRSk7XG5cbiAgICBjb25zdCBkZklucHV0cyA9IHRoaXMuZnVuYy5pbnB1dHMuZmlsdGVyKChpbnB1dCkgPT4gaXNEYXRhRnJhbWUoaW5wdXQucHJvcGVydHlUeXBlKSk7XG4gICAgY29uc3Qgc2NhbGFySW5wdXRzID0gdGhpcy5mdW5jLmlucHV0cy5maWx0ZXIoKGlucHV0KSA9PiBpc1NjYWxhclR5cGUoaW5wdXQucHJvcGVydHlUeXBlKSk7XG4gICAgY29uc3QgZGZPdXRwdXRzID0gdGhpcy5mdW5jLm91dHB1dHMuZmlsdGVyKChvdXRwdXQpID0+IGlzRGF0YUZyYW1lKG91dHB1dC5wcm9wZXJ0eVR5cGUpKTtcbiAgICBjb25zdCBzY2FsYXJPdXRwdXRzID0gdGhpcy5mdW5jLm91dHB1dHMuZmlsdGVyKChvdXRwdXQpID0+IGlzU2NhbGFyVHlwZShvdXRwdXQucHJvcGVydHlUeXBlKSk7XG5cbiAgICBjb25zdCBpbnB1dFBhcmFtcyA9IFsuLi5sYXN0Q2FsbC5pbnB1dFBhcmFtcy52YWx1ZXMoKV0gYXMgREcuRnVuY0NhbGxQYXJhbVtdO1xuICAgIGNvbnN0IG91dHB1dFBhcmFtcyA9IFsuLi5sYXN0Q2FsbC5vdXRwdXRQYXJhbXMudmFsdWVzKCldIGFzIERHLkZ1bmNDYWxsUGFyYW1bXTtcblxuICAgIGRmSW5wdXRzLmZvckVhY2goKGRmSW5wdXQpID0+IHtcbiAgICAgIGNvbnN0IHZpc2libGVUaXRsZSA9IGRmSW5wdXQub3B0aW9ucy5jYXB0aW9uIHx8IGRmSW5wdXQubmFtZTtcbiAgICAgIGNvbnN0IGN1cnJlbnREZlNoZWV0ID0gZXhwb3J0V29ya2Jvb2suYWRkV29ya3NoZWV0KGdldFNoZWV0TmFtZSh2aXNpYmxlVGl0bGUsIERJUkVDVElPTi5JTlBVVCkpO1xuXG4gICAgICBjb25zdCBjdXJyZW50RGYgPSAobGFzdENhbGwuaW5wdXRzW2RmSW5wdXQubmFtZV0gYXMgREcuRGF0YUZyYW1lKTtcbiAgICAgIGRmVG9TaGVldChjdXJyZW50RGZTaGVldCwgY3VycmVudERmKTtcbiAgICB9KTtcblxuICAgIGlmIChzY2FsYXJJbnB1dHMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBpbnB1dFNjYWxhcnNTaGVldCA9IGV4cG9ydFdvcmtib29rLmFkZFdvcmtzaGVldCgnSW5wdXQgc2NhbGFycycpO1xuICAgICAgc2NhbGFyc1RvU2hlZXQoaW5wdXRTY2FsYXJzU2hlZXQsIHNjYWxhcklucHV0cy5tYXAoKHNjYWxhcklucHV0KSA9PiAoe1xuICAgICAgICBjYXB0aW9uOiBzY2FsYXJJbnB1dC5vcHRpb25zWydjYXB0aW9uJ10gfHwgc2NhbGFySW5wdXQubmFtZSxcbiAgICAgICAgdmFsdWU6IGxhc3RDYWxsLmlucHV0c1tzY2FsYXJJbnB1dC5uYW1lXSxcbiAgICAgICAgdW5pdHM6IHNjYWxhcklucHV0Lm9wdGlvbnNbJ3VuaXRzJ10gfHwgJycsXG4gICAgICB9KSkpO1xuICAgIH1cblxuICAgIGRmT3V0cHV0cy5mb3JFYWNoKChkZk91dHB1dCkgPT4ge1xuICAgICAgY29uc3QgdmlzaWJsZVRpdGxlID0gZGZPdXRwdXQub3B0aW9ucy5jYXB0aW9uIHx8IGRmT3V0cHV0Lm5hbWU7XG4gICAgICBjb25zdCBjdXJyZW50RGZTaGVldCA9IGV4cG9ydFdvcmtib29rLmFkZFdvcmtzaGVldChnZXRTaGVldE5hbWUodmlzaWJsZVRpdGxlLCBESVJFQ1RJT04uT1VUUFVUKSk7XG5cbiAgICAgIGNvbnN0IGN1cnJlbnREZiA9IChsYXN0Q2FsbC5vdXRwdXRzW2RmT3V0cHV0Lm5hbWVdIGFzIERHLkRhdGFGcmFtZSk7XG4gICAgICBkZlRvU2hlZXQoY3VycmVudERmU2hlZXQsIGN1cnJlbnREZik7XG4gICAgfSk7XG5cblxuICAgIGlmIChzY2FsYXJPdXRwdXRzLmxlbmd0aCkge1xuICAgICAgY29uc3Qgb3V0cHV0U2NhbGFyc1NoZWV0ID0gZXhwb3J0V29ya2Jvb2suYWRkV29ya3NoZWV0KCdPdXRwdXQgc2NhbGFycycpO1xuICAgICAgc2NhbGFyc1RvU2hlZXQob3V0cHV0U2NhbGFyc1NoZWV0LCBzY2FsYXJPdXRwdXRzLm1hcCgoc2NhbGFyT3V0cHV0KSA9PiAoe1xuICAgICAgICBjYXB0aW9uOiBzY2FsYXJPdXRwdXQub3B0aW9uc1snY2FwdGlvbiddIHx8IHNjYWxhck91dHB1dC5uYW1lLFxuICAgICAgICB2YWx1ZTogbGFzdENhbGwub3V0cHV0c1tzY2FsYXJPdXRwdXQubmFtZV0sXG4gICAgICAgIHVuaXRzOiBzY2FsYXJPdXRwdXQub3B0aW9uc1sndW5pdHMnXSB8fCAnJyxcbiAgICAgIH0pKSk7XG4gICAgfVxuXG4gICAgY29uc3QgdGFiQ29udHJvbCA9IHRoaXMudGFic0VsZW07XG4gICAgZm9yIChjb25zdCB0YWJMYWJlbCBvZiB0aGlzLnRhYnNMYWJlbHMpIHtcbiAgICAgIHRhYkNvbnRyb2wuY3VycmVudFBhbmUgPSB0YWJDb250cm9sLmdldFBhbmUodGFiTGFiZWwpO1xuICAgICAgYXdhaXQgbmV3IFByb21pc2UoKHIpID0+IHNldFRpbWVvdXQociwgMTAwKSk7XG4gICAgICBpZiAodGFiTGFiZWwgPT09ICdJbnB1dCcpIHtcbiAgICAgICAgZm9yIChjb25zdCBpbnB1dFBhcmFtIG9mIGlucHV0UGFyYW1zLmZpbHRlcigoaW5wdXRQYXJhbSkgPT4gaW5wdXRQYXJhbS5wcm9wZXJ0eS5wcm9wZXJ0eVR5cGUgPT09IERHLlRZUEUuREFUQV9GUkFNRSkpIHtcbiAgICAgICAgICBjb25zdCBub25HcmlkVmlld2VycyA9IHRoaXMuZGZUb1ZpZXdlck1hcHBpbmdbaW5wdXRQYXJhbS5uYW1lXS5maWx0ZXIoKHZpZXdlcikgPT4gdmlld2VyLnR5cGUgIT09IERHLlZJRVdFUi5HUklEKTtcblxuICAgICAgICAgIGNvbnN0IGRmSW5wdXQgPSBkZklucHV0cy5maW5kKChpbnB1dCkgPT4gaW5wdXQubmFtZSA9PT0gaW5wdXRQYXJhbS5uYW1lKTtcbiAgICAgICAgICBjb25zdCB2aXNpYmxlVGl0bGUgPSBkZklucHV0IS5vcHRpb25zLmNhcHRpb24gfHwgaW5wdXRQYXJhbS5uYW1lO1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnREZiA9IChsYXN0Q2FsbC5pbnB1dHNbZGZJbnB1dCEubmFtZV0gYXMgREcuRGF0YUZyYW1lKTtcblxuICAgICAgICAgIGZvciAoY29uc3QgW2luZGV4LCB2aWV3ZXJdIG9mIG5vbkdyaWRWaWV3ZXJzLmVudHJpZXMoKSkge1xuICAgICAgICAgICAgYXdhaXQgcGxvdFRvU2hlZXQoXG4gICAgICAgICAgICAgIGV4cG9ydFdvcmtib29rLFxuICAgICAgICAgICAgICBleHBvcnRXb3JrYm9vay5nZXRXb3Jrc2hlZXQoZ2V0U2hlZXROYW1lKHZpc2libGVUaXRsZSwgRElSRUNUSU9OLklOUFVUKSksXG4gICAgICAgICAgICAgIHZpZXdlci5yb290LFxuICAgICAgICAgICAgICBjdXJyZW50RGYuY29sdW1ucy5sZW5ndGggKyAyLFxuICAgICAgICAgICAgICAoaW5kZXggPiAwKSA/IE1hdGguY2VpbChub25HcmlkVmlld2Vyc1tpbmRleC0xXS5yb290LmNsaWVudEhlaWdodCAvIDIwKSArIDEgOiAwXG4gICAgICAgICAgICApO1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGZvciAoY29uc3Qgb3V0cHV0UGFyYW0gb2Ygb3V0cHV0UGFyYW1zLmZpbHRlcigob3V0cHV0UGFyYW0pID0+IG91dHB1dFBhcmFtLnByb3BlcnR5LnByb3BlcnR5VHlwZSA9PT0gREcuVFlQRS5EQVRBX0ZSQU1FICYmIG91dHB1dFBhcmFtLnByb3BlcnR5LmNhdGVnb3J5ID09PSB0YWJMYWJlbCkpIHtcbiAgICAgICAgICBjb25zdCBub25HcmlkVmlld2VycyA9IHRoaXMuZGZUb1ZpZXdlck1hcHBpbmdbb3V0cHV0UGFyYW0ubmFtZV0uZmlsdGVyKCh2aWV3ZXIpID0+IHZpZXdlci50eXBlICE9PSBERy5WSUVXRVIuR1JJRCk7XG5cbiAgICAgICAgICBjb25zdCBkZk91dHB1dCA9IGRmT3V0cHV0cy5maW5kKChpbnB1dCkgPT4gaW5wdXQubmFtZSA9PT0gb3V0cHV0UGFyYW0ubmFtZSkhO1xuICAgICAgICAgIGNvbnN0IHZpc2libGVUaXRsZSA9IGRmT3V0cHV0Lm9wdGlvbnMuY2FwdGlvbiB8fCBvdXRwdXRQYXJhbS5uYW1lO1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnREZiA9IChsYXN0Q2FsbC5vdXRwdXRzW2RmT3V0cHV0Lm5hbWVdIGFzIERHLkRhdGFGcmFtZSk7XG5cbiAgICAgICAgICBmb3IgKGNvbnN0IFtpbmRleCwgdmlld2VyXSBvZiBub25HcmlkVmlld2Vycy5lbnRyaWVzKCkpIHtcbiAgICAgICAgICAgIGlmICh2aWV3ZXIudHlwZSA9PT0gREcuVklFV0VSLlNUQVRJU1RJQ1MpIHtcbiAgICAgICAgICAgICAgY29uc3QgbGVuZ3RoID0gY3VycmVudERmLmNvbHVtbnMubGVuZ3RoO1xuICAgICAgICAgICAgICBjb25zdCBzdGF0cyA9IERHLkRhdGFGcmFtZS5mcm9tQ29sdW1ucyhbXG4gICAgICAgICAgICAgICAgREcuQ29sdW1uLnN0cmluZygnTmFtZScsIGxlbmd0aCkuaW5pdCgoaTogbnVtYmVyKSA9PiBjdXJyZW50RGYuY29sdW1ucy5ieUluZGV4KGkpLm5hbWUpLFxuICAgICAgICAgICAgICAgIERHLkNvbHVtbi5pbnQoJ1ZhbHVlcycsIGxlbmd0aCkuaW5pdCgoaTogbnVtYmVyKSA9PiBjdXJyZW50RGYuY29sdW1ucy5ieUluZGV4KGkpLnN0YXRzLnZhbHVlQ291bnQpLFxuICAgICAgICAgICAgICAgIERHLkNvbHVtbi5pbnQoJ051bGxzJywgbGVuZ3RoKS5pbml0KChpOiBudW1iZXIpID0+IGN1cnJlbnREZi5jb2x1bW5zLmJ5SW5kZXgoaSkuc3RhdHMubWlzc2luZ1ZhbHVlQ291bnQpLFxuICAgICAgICAgICAgICAgIERHLkNvbHVtbi5mbG9hdCgnTWluJywgbGVuZ3RoKS5pbml0KChpOiBudW1iZXIpID0+IGN1cnJlbnREZi5jb2x1bW5zLmJ5SW5kZXgoaSkuc3RhdHMubWluKSxcbiAgICAgICAgICAgICAgICBERy5Db2x1bW4uZmxvYXQoJ01heCcsIGxlbmd0aCkuaW5pdCgoaTogbnVtYmVyKSA9PiBjdXJyZW50RGYuY29sdW1ucy5ieUluZGV4KGkpLnN0YXRzLm1heCksXG4gICAgICAgICAgICAgICAgREcuQ29sdW1uLmZsb2F0KCdBdmcnLCBsZW5ndGgpLmluaXQoKGk6IG51bWJlcikgPT4gY3VycmVudERmLmNvbHVtbnMuYnlJbmRleChpKS5zdGF0cy5hdmcpLFxuICAgICAgICAgICAgICAgIERHLkNvbHVtbi5mbG9hdCgnU3RkZXYnLCBsZW5ndGgpLmluaXQoKGk6IG51bWJlcikgPT4gY3VycmVudERmLmNvbHVtbnMuYnlJbmRleChpKS5zdGF0cy5zdGRldiksXG4gICAgICAgICAgICAgIF0pO1xuICAgICAgICAgICAgICBkZlRvU2hlZXQoXG4gICAgICAgICAgICAgICAgZXhwb3J0V29ya2Jvb2suZ2V0V29ya3NoZWV0KGdldFNoZWV0TmFtZSh2aXNpYmxlVGl0bGUsIERJUkVDVElPTi5PVVRQVVQpKSxcbiAgICAgICAgICAgICAgICBzdGF0cyxcbiAgICAgICAgICAgICAgICBjdXJyZW50RGYuY29sdW1ucy5sZW5ndGggKyAyLFxuICAgICAgICAgICAgICAgIChpbmRleCA+IDApID8gTWF0aC5jZWlsKG5vbkdyaWRWaWV3ZXJzW2luZGV4LTFdLnJvb3QuY2xpZW50SGVpZ2h0IC8gMjApICsgMSA6IDBcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGF3YWl0IHBsb3RUb1NoZWV0KFxuICAgICAgICAgICAgICAgIGV4cG9ydFdvcmtib29rLFxuICAgICAgICAgICAgICAgIGV4cG9ydFdvcmtib29rLmdldFdvcmtzaGVldChnZXRTaGVldE5hbWUodmlzaWJsZVRpdGxlLCBESVJFQ1RJT04uT1VUUFVUKSksXG4gICAgICAgICAgICAgICAgdmlld2VyLnJvb3QsXG4gICAgICAgICAgICAgICAgY3VycmVudERmLmNvbHVtbnMubGVuZ3RoICsgMixcbiAgICAgICAgICAgICAgICAoaW5kZXggPiAwKSA/IE1hdGguY2VpbChub25HcmlkVmlld2Vyc1tpbmRleC0xXS5yb290LmNsaWVudEhlaWdodCAvIDIwKSArIDEgOiAwXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH07XG4gICAgY29uc3QgYnVmZmVyID0gYXdhaXQgZXhwb3J0V29ya2Jvb2sueGxzeC53cml0ZUJ1ZmZlcigpO1xuXG4gICAgcmV0dXJuIG5ldyBCbG9iKFtidWZmZXJdLCB7dHlwZTogQkxPQl9UWVBFfSk7XG4gIH07XG59XG5cbmNvbnN0IGdldFNoZWV0TmFtZSA9IChuYW1lOiBzdHJpbmcsIGRpcmVjdGlvbjogRElSRUNUSU9OKSA9PiB7XG4gIGNvbnN0IGlkZWFsTmFtZSA9IGAke2RpcmVjdGlvbn0gLSAke25hbWV9YDtcbiAgcmV0dXJuIChpZGVhbE5hbWUubGVuZ3RoID4gMzEpID8gbmFtZS5zdWJzdHJpbmcoMCwgMzIpIDogaWRlYWxOYW1lO1xufTtcblxuZW51bSBESVJFQ1RJT04ge1xuICBJTlBVVCA9ICdJbnB1dCcsXG4gIE9VVFBVVCA9ICdPdXRwdXQnXG59XG5cbmNvbnN0IHNjYWxhcnNUb1NoZWV0ID0gKHNoZWV0OiBFeGNlbEpTLldvcmtzaGVldCwgc2NhbGFyczogeyBjYXB0aW9uOiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcsIHVuaXRzOiBzdHJpbmcgfVtdKSA9PiB7XG4gIHNoZWV0LmFkZFJvdyhbJ1BhcmFtZXRlcicsICdWYWx1ZScsICdVbml0cyddKS5mb250ID0ge2JvbGQ6IHRydWV9O1xuICBzY2FsYXJzLmZvckVhY2goKHNjYWxhcikgPT4ge1xuICAgIHNoZWV0LmFkZFJvdyhbc2NhbGFyLmNhcHRpb24sIHNjYWxhci52YWx1ZSwgc2NhbGFyLnVuaXRzXSk7XG4gIH0pO1xuXG4gIHNoZWV0LmdldENvbHVtbigxKS53aWR0aCA9IE1hdGgubWF4KFxuICAgIC4uLnNjYWxhcnMubWFwKChzY2FsYXIpID0+IHNjYWxhci5jYXB0aW9uLnRvU3RyaW5nKCkubGVuZ3RoKSwgJ1BhcmFtZXRlcicubGVuZ3RoXG4gICkgKiAxLjI7XG4gIHNoZWV0LmdldENvbHVtbigyKS53aWR0aCA9IE1hdGgubWF4KC4uLnNjYWxhcnMubWFwKChzY2FsYXIpID0+IHNjYWxhci52YWx1ZS50b1N0cmluZygpLmxlbmd0aCksICdWYWx1ZScubGVuZ3RoKSAqIDEuMjtcbiAgc2hlZXQuZ2V0Q29sdW1uKDMpLndpZHRoID0gTWF0aC5tYXgoLi4uc2NhbGFycy5tYXAoKHNjYWxhcikgPT4gc2NhbGFyLnVuaXRzLnRvU3RyaW5nKCkubGVuZ3RoKSwgJ1VuaXRzJy5sZW5ndGgpICogMS4yO1xufTtcblxuY29uc3QgZGZUb1NoZWV0ID0gKHNoZWV0OiBFeGNlbEpTLldvcmtzaGVldCwgZGY6IERHLkRhdGFGcmFtZSwgY29sdW1uOiBudW1iZXIgPSAwLCByb3c6IG51bWJlciA9IDApID0+IHtcbiAgZm9yIChsZXQgaT0gMDsgaSA8IGRmLmNvbHVtbnMubmFtZXMoKS5sZW5ndGg7IGkrKykge1xuICAgIHNoZWV0LmdldENlbGwoMSArIHJvdywgMSArIGkgKyBjb2x1bW4pLnZhbHVlID0gZGYuY29sdW1ucy5ieUluZGV4KGkpLm5hbWU7XG4gICAgc2hlZXQuZ2V0Q29sdW1uKDEgKyBpICsgY29sdW1uKS53aWR0aCA9IE1hdGgubWF4KFxuICAgICAgLi4uZGYuY29sdW1ucy5ieUluZGV4KGkpLmNhdGVnb3JpZXMubWFwKChjYXRlZ29yeSkgPT4gY2F0ZWdvcnkudG9TdHJpbmcoKS5sZW5ndGgpLFxuICAgICAgZGYuY29sdW1ucy5ieUluZGV4KGkpLm5hbWUubGVuZ3RoXG4gICAgKSAqIDEuMjtcbiAgfVxuICBmb3IgKGxldCBkZkNvbHVtbiA9IDA7IGRmQ29sdW1uIDwgZGYuY29sdW1ucy5sZW5ndGg7IGRmQ29sdW1uKyspIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRmLnJvd0NvdW50OyBpKyspXG4gICAgICBzaGVldC5nZXRDZWxsKGkgKyAyICsgcm93LCAxICsgY29sdW1uK2RmQ29sdW1uKS52YWx1ZSA9IGRmLmNvbHVtbnMuYnlJbmRleChkZkNvbHVtbikuZ2V0KGkpO1xuICB9XG59O1xuXG5jb25zdCBwbG90VG9TaGVldCA9IGFzeW5jIChleHBvcnRXYjogRXhjZWxKUy5Xb3JrYm9vaywgc2hlZXQ6IEV4Y2VsSlMuV29ya3NoZWV0LCBwbG90OiBIVE1MRWxlbWVudCwgY29sdW1uRm9ySW1hZ2U6IG51bWJlciwgcm93Rm9ySW1hZ2U6IG51bWJlciA9IDApID0+IHtcbiAgY29uc3QgY2FudmFzID0gYXdhaXQgaHRtbDJjYW52YXMocGxvdCBhcyBIVE1MRWxlbWVudCwge2xvZ2dpbmc6IGZhbHNlfSk7XG4gIGNvbnN0IGRhdGFVcmwgPSBjYW52YXMudG9EYXRhVVJMKCdpbWFnZS9wbmcnKTtcblxuICBjb25zdCBpbWFnZUlkID0gZXhwb3J0V2IuYWRkSW1hZ2Uoe1xuICAgIGJhc2U2NDogZGF0YVVybCxcbiAgICBleHRlbnNpb246ICdwbmcnLFxuICB9KTtcbiAgc2hlZXQuYWRkSW1hZ2UoaW1hZ2VJZCwge1xuICAgIHRsOiB7Y29sOiBjb2x1bW5Gb3JJbWFnZSwgcm93OiByb3dGb3JJbWFnZX0sXG4gICAgZXh0OiB7d2lkdGg6IGNhbnZhcy53aWR0aCwgaGVpZ2h0OiBjYW52YXMuaGVpZ2h0fSxcbiAgfSk7XG59O1xuIl19
|
|
484
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmljaC1mdW5jdGlvbi12aWV3LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicmljaC1mdW5jdGlvbi12aWV3LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBLDRCQUE0QjtBQUM1QixPQUFPLEtBQUssSUFBSSxNQUFNLG1CQUFtQixDQUFDO0FBQzFDLE9BQU8sS0FBSyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdEMsT0FBTyxLQUFLLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN0QyxPQUFPLEVBQUMsWUFBWSxFQUFFLHFCQUFxQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDcEUsT0FBTyxPQUFPLE1BQU0sU0FBUyxDQUFDO0FBQzlCLE9BQU8sV0FBVyxNQUFNLGFBQWEsQ0FBQztBQUN0QyxPQUFPLEVBQUUsTUFBTSxJQUFJLENBQUM7QUFDcEIsT0FBTyxDQUFDLE1BQU0sVUFBVSxDQUFDO0FBQ3pCLE9BQU8sRUFBQyxPQUFPLEVBQUMsTUFBTSxNQUFNLENBQUM7QUFDN0IsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLDhCQUE4QixDQUFDO0FBRXJELE1BQU0sa0JBQWtCLEdBQTRCO0lBQ2xELENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTO0lBQ2pDLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRO0lBQy9CLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRO0lBQ2hDLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxTQUFTO0lBQ2pDLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxZQUFZO0lBQ3ZDLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPO0lBQzlCLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJO0lB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LEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFFcEUsTUFBTSxXQUFXLEdBQUcsQ0FBQyxJQUFhLEVBQUUsRUFBRSxDQUFDLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFFckUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFDckYsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFDMUYsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFDekYsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7WUFFOUYsTUFBTSxXQUFXLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQXVCLENBQUM7WUFDN0UsTUFBTSxZQUFZLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxZQUFZLENBQUMsTUFBTSxFQUFFLENBQXVCLENBQUM7WUFFL0UsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUMzQixNQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxPQUFPLENBQUMsSUFBSSxDQUFDO2dCQUM3RCxNQUFNLGNBQWMsR0FBRyxjQUFjLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBRWhHLE1BQU0sU0FBUyxHQUFJLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBa0IsQ0FBQztnQkFDbEUsU0FBUyxDQUFDLGNBQWMsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUN2QyxDQUFDLENBQUMsQ0FBQztZQUVILElBQUksWUFBWSxDQUFDLE1BQU0sRUFBRTtnQkFDdkIsTUFBTSxpQkFBaUIsR0FBRyxjQUFjLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxDQUFDO2dCQUN2RSxjQUFjLENBQUMsaUJBQWlCLEVBQUUsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDbkUsT0FBTyxFQUFFLFdBQVcsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksV0FBVyxDQUFDLElBQUk7b0JBQzNELEtBQUssRUFBRSxRQUFRLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7b0JBQ3hDLEtBQUssRUFBRSxXQUFXLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUU7aUJBQzFDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDTjtZQUVELFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtnQkFDN0IsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDL0QsTUFBTSxjQUFjLEdBQUcsY0FBYyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO2dCQUVqRyxNQUFNLFNBQVMsR0FBSSxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQWtCLENBQUM7Z0JBQ3BFLFNBQVMsQ0FBQyxjQUFjLEVBQUUsU0FBUyxDQUFDLENBQUM7WUFDdkMsQ0FBQyxDQUFDLENBQUM7WUFHSCxJQUFJLGFBQWEsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3hCLE1BQU0sa0JBQWtCLEdBQUcsY0FBYyxDQUFDLFlBQVksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUN6RSxjQUFjLENBQUMsa0JBQWtCLEVBQUUsYUFBYSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztvQkFDdEUsT0FBTyxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksWUFBWSxDQUFDLElBQUk7b0JBQzdELEtBQUssRUFBRSxRQUFRLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUM7b0JBQzFDLEtBQUssRUFBRSxZQUFZLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUU7aUJBQzNDLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDTjtZQUVELE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUM7WUFDakMsS0FBSyxNQUFNLFFBQVEsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUN0QyxVQUFVLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ3RELE1BQU0sSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztnQkFDN0MsSUFBSSxRQUFRLEtBQUssT0FBTyxFQUFFO29CQUN4QixLQUFLLE1BQU0sVUFBVSxJQUFJLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsWUFBWSxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUU7d0JBQ3BILE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxLQUFLLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7d0JBRWxILE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUN6RSxNQUFNLFlBQVksR0FBRyxPQUFRLENBQUMsT0FBTyxDQUFDLE9BQU8sSUFBSSxVQUFVLENBQUMsSUFBSSxDQUFDO3dCQUNqRSxNQUFNLFNBQVMsR0FBSSxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQVEsQ0FBQyxJQUFJLENBQWtCLENBQUM7d0JBRW5FLEtBQUssTUFBTSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsSUFBSSxjQUFjLENBQUMsT0FBTyxFQUFFLEVBQUU7NEJBQ3RELE1BQU0sV0FBVyxDQUNmLGNBQWMsRUFDZCxjQUFjLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQ3hFLE1BQU0sQ0FBQyxJQUFJLEVBQ1gsU0FBUyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUM1QixDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxHQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQ2hGLENBQUM7eUJBQ0g7d0JBQUEsQ0FBQztxQkFDSDtpQkFDRjtxQkFBTTtvQkFDTCxLQUFLLE1BQU0sV0FBVyxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsWUFBWSxLQUFLLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLFdBQVcsQ0FBQyxRQUFRLENBQUMsUUFBUSxLQUFLLFFBQVEsQ0FBQyxFQUFFO3dCQUN0SyxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUVuSCxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLFdBQVcsQ0FBQyxJQUFJLENBQUUsQ0FBQzt3QkFDN0UsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQzt3QkFDbEUsTUFBTSxTQUFTLEdBQUksUUFBUSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFrQixDQUFDO3dCQUVwRSxLQUFLLE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUksY0FBYyxDQUFDLE9BQU8sRUFBRSxFQUFFOzRCQUN0RCxJQUFJLE1BQU0sQ0FBQyxJQUFJLEtBQUssRUFBRSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUU7Z0NBQ3hDLE1BQU0sTUFBTSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDO2dDQUN4QyxNQUFNLEtBQUssR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQztvQ0FDckMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQVMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO29DQUN2RixFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDO29DQUNsRyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUM7b0NBQ3hHLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7b0NBQzFGLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7b0NBQzFGLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUM7b0NBQzFGLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFTLEVBQUUsRUFBRSxDQUFDLFNB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bGUgbWF4LWxlbiAqL1xuaW1wb3J0ICogYXMgZ3JvayBmcm9tICdkYXRhZ3Jvay1hcGkvZ3Jvayc7XG5pbXBvcnQgKiBhcyB1aSBmcm9tICdkYXRhZ3Jvay1hcGkvdWknO1xuaW1wb3J0ICogYXMgREcgZnJvbSAnZGF0YWdyb2stYXBpL2RnJztcbmltcG9ydCB7RnVuY3Rpb25WaWV3LCBJTlRFUkFDVElWRV9DU1NfQ0xBU1N9IGZyb20gJy4vZnVuY3Rpb24tdmlldyc7XG5pbXBvcnQgRXhjZWxKUyBmcm9tICdleGNlbGpzJztcbmltcG9ydCBodG1sMmNhbnZhcyBmcm9tICdodG1sMmNhbnZhcyc7XG5pbXBvcnQgd3UgZnJvbSAnd3UnO1xuaW1wb3J0ICQgZnJvbSAnY2FzaC1kb20nO1xuaW1wb3J0IHtTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7VWlVdGlsc30gZnJvbSAnLi9zaGFyZWQtY29tcG9uZW50cy91aS11dGlscyc7XG5cbmNvbnN0IHZpZXdlclR5cGVzTWFwcGluZzoge1trZXk6IHN0cmluZ106IHN0cmluZ30gPSB7XG4gIFsnYmFyY2hhcnQnXTogREcuVklFV0VSLkJBUl9DSEFSVCxcbiAgWydib3hwbG90J106IERHLlZJRVdFUi5CT1hfUExPVCxcbiAgWydjYWxlbmRhciddOiBERy5WSUVXRVIuQ0FMRU5EQVIsXG4gIFsnY29ycnBsb3QnXTogREcuVklFV0VSLkNPUlJfUExPVCxcbiAgWydkZW5zaXR5cGxvdCddOiBERy5WSUVXRVIuREVOU0lUWV9QTE9ULFxuICBbJ2ZpbHRlcnMnXTogREcuVklFV0VSLkZJTFRFUlMsXG4gIFsnZm9ybSddOiBERy5WSUVXRVIuRk9STSxcbiAgWydnbG9iZSddOiBERy5WSUVXRVIuR0xPQkUsXG4gIFsnZ29vZ2xlbWFwJ106IERHLlZJRVdFUi5HT09HTEVfTUFQLFxuICBbJ2dyaWQnXTogREcuVklFV0VSLkdSSUQsXG4gIFsnaGVhdG1hcCddOiBERy5WSUVXRVIuSEVBVF9NQVAsXG4gIFsnaGlzdG9ncmFtJ106IERHLlZJRVdFUi5ISVNUT0dSQU0sXG4gIFsnbGluZWNoYXJ0J106IERHLlZJRVdFUi5MSU5FX0NIQVJULFxuICBbJ21hcmt1cCddOiBERy5WSUVXRVIuTUFSS1VQLFxuICBbJ21hdHJpeHBsb3QnXTogREcuVklFV0VSLk1BVFJJWF9QTE9ULFxuICBbJ25ldHdvcmtkaWFncmFtJ106IERHLlZJRVdFUi5ORVRXT1JLX0RJQUdSQU0sXG4gIFsncGNwbG90J106IERHLlZJRVdFUi5QQ19QTE9ULFxuICBbJ3BpZWNoYXJ0J106IERHLlZJRVdFUi5QSUVfQ0hBUlQsXG4gIFsnc2NhdHRlcnBsb3QnXTogREcuVklFV0VSLlNDQVRURVJfUExPVCxcbiAgWydzY2F0dGVycGxvdDNkJ106IERHLlZJRVdFUi5TQ0FUVEVSX1BMT1RfM0QsXG4gIFsnc2hhcGVtYXAnXTogREcuVklFV0VSLlNIQVBFX01BUCxcbiAgWydzdGF0aXN0aWNzJ106IERHLlZJRVdFUi5TVEFUSVNUSUNTLFxuICBbJ3RpbGV2aWV3ZXInXTogREcuVklFV0VSLlRJTEVfVklFV0VSLFxuICBbJ3RpbWVsaW5lcyddOiBERy5WSUVXRVIuVElNRUxJTkVTLFxuICBbJ3RyZWVtYXAnXTogREcuVklFV0VSLlRSRUVfTUFQLFxuICBbJ3RyZWxsaXNwbG90J106IERHLlZJRVdFUi5UUkVMTElTX1BMT1QsXG4gIFsnd29yZGNsb3VkJ106IERHLlZJRVdFUi5XT1JEX0NMT1VELFxufTtcblxuY29uc3QgRklMRV9JTlBVVF9UWVBFID0gJ2ZpbGUnO1xuXG5leHBvcnQgY2xhc3MgUmljaEZ1bmN0aW9uVmlldyBleHRlbmRzIEZ1bmN0aW9uVmlldyB7XG4gIC8vIGVtaXR0ZWQgd2hlbiBhZnRlciBhIG5ldyBGdW5jQ2FsbCBpcyBsaW5rZWRcbiAgcHJpdmF0ZSBmdW5jQ2FsbFJlcGxhY2VkID0gbmV3IFN1YmplY3Q8dHJ1ZT4oKTtcblxuICAvLyBlbWl0dGVkIHdoZW4gcnVuQnV0dG9uIGRpc2FiaWxpdHkgc2hvdWxkIGJlIGNoZWNrZWRcbiAgcHJpdmF0ZSBjaGVja0Rpc2FiaWxpdHkgPSBuZXcgU3ViamVjdCgpO1xuXG4gIC8vIHN0b3JlcyB0aGUgcnVubmluZyBzdGF0ZVxuICBwcml2YXRlIGlzUnVubmluZyA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKGZ1bmNDYWxsOiBERy5GdW5jQ2FsbCkge1xuICAgIHN1cGVyKCk7XG5cbiAgICB0aGlzLmJhc2VQYXRoID0gYHNjcmlwdHMvJHtmdW5jQ2FsbC5mdW5jLmlkfS92aWV3YDtcblxuICAgIHRoaXMuZXhwb3J0Q29uZmlnID0ge1xuICAgICAgc3VwcG9ydGVkRXh0ZW5zaW9uczogdGhpcy5kZWZhdWx0U3VwcG9ydGVkRXhwb3J0RXh0ZW5zaW9ucygpLFxuICAgICAgc3VwcG9ydGVkRm9ybWF0czogdGhpcy5kZWZhdWx0U3VwcG9ydGVkRXhwb3J0Rm9ybWF0cygpLFxuICAgICAgZXhwb3J0OiB0aGlzLmRlZmF1bHRFeHBvcnQsXG4gICAgICBmaWxlbmFtZTogdGhpcy5kZWZhdWx0RXhwb3J0RmlsZW5hbWUsXG4gICAgfTtcblxuICAgIHRoaXMubGlua0Z1bmNjYWxsKGZ1bmNDYWxsKTtcbiAgICB0aGlzLmluaXQoKTtcbiAgICB0aGlzLmJ1aWxkKCk7XG5cbiAgICB0aGlzLmZ1bmNDYWxsUmVwbGFjZWQubmV4dCgpO1xuXG4gICAgdGhpcy5uYW1lID0gZnVuY0NhbGwuZnVuYy5mcmllbmRseU5hbWU7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgbGlua0Z1bmNjYWxsKGZ1bmNDYWxsOiBERy5GdW5jQ2FsbCkge1xuICAgIGNvbnN0IGlzUHJldmlvdXNIaXN0b3JpY2FsID0gdGhpcy5fZnVuY0NhbGw/Lm9wdGlvbnNbJ2lzSGlzdG9yaWNhbCddO1xuICAgIHRoaXMuX2Z1bmNDYWxsID0gZnVuY0NhbGw7XG5cbiAgICB0aGlzLmZ1bmNDYWxsUmVwbGFjZWQubmV4dCh0cnVlKTtcblxuICAgIGlmIChmdW5jQ2FsbC5vcHRpb25zWydpc0hpc3RvcmljYWwnXSkge1xuICAgICAgaWYgKCFpc1ByZXZpb3VzSGlzdG9yaWNhbClcbiAgICAgICAgdGhpcy5uYW1lID0gYCR7dGhpcy5uYW1lfSDigJQgJHtmdW5jQ2FsbC5vcHRpb25zWyd0aXRsZSddID8/IG5ldyBEYXRlKGZ1bmNDYWxsLnN0YXJ0ZWQudG9TdHJpbmcoKSkudG9Mb2NhbGVTdHJpbmcoJ2VuLXVzJywge21vbnRoOiAnc2hvcnQnLCBkYXk6ICdudW1lcmljJywgaG91cjogJ251bWVyaWMnLCBtaW51dGU6ICdudW1lcmljJ30pfWA7XG4gICAgICBlbHNlXG4gICAgICAgIHRoaXMubmFtZSA9IGAke3RoaXMubmFtZS5zdWJzdHJpbmcoMCwgdGhpcy5uYW1lLmluZGV4T2YoJyDigJQgJykpfSDigJQgJHtmdW5jQ2FsbC5vcHRpb25zWyd0aXRsZSddID8/IG5ldyBEYXRlKGZ1bmNDYWxsLnN0YXJ0ZWQudG9TdHJpbmcoKSkudG9Mb2NhbGVTdHJpbmcoJ2VuLXVzJywge21vbnRoOiAnc2hvcnQnLCBkYXk6ICdudW1lcmljJywgaG91cjogJ251bWVyaWMnLCBtaW51dGU6ICdudW1lcmljJ30pfWA7XG5cblxuICAgICAgLy8gRklYIE1FOiB2aWV3IG5hbWUgZG9lcyBub3QgY2hhbmdlIGluIG1vZGVsc1xuICAgICAgZG9jdW1lbnQucXVlcnlTZWxlY3RvcignZGl2LmQ0LXJpYmJvbi1uYW1lJyk/LnJlcGxhY2VDaGlsZHJlbih1aS5zcGFuKFt0aGlzLm5hbWVdKSk7XG4gICAgICB0aGlzLnBhdGggPSBgP2lkPSR7dGhpcy5fZnVuY0NhbGwuaWR9YDtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5wYXRoID0gYGA7XG5cbiAgICAgIGlmIChpc1ByZXZpb3VzSGlzdG9yaWNhbClcbiAgICAgICAgdGhpcy5uYW1lID0gYCR7dGhpcy5uYW1lLnN1YnN0cmluZygwLCB0aGlzLm5hbWUuaW5kZXhPZignIOKAlCAnKSl9YDtcbiAgICB9XG4gICAgdGhpcy5idWlsZFJpYmJvblBhbmVscygpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIG9uQWZ0ZXJSdW4ocnVuRnVuYzogREcuRnVuY0NhbGwpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICB0aGlzLnRhYnNFbGVtLnJvb3Quc3R5bGUucmVtb3ZlUHJvcGVydHkoJ2Rpc3BsYXknKTtcbiAgICB0aGlzLnRhYnNFbGVtLnBhbmVzLmZvckVhY2goKHRhYikgPT4ge1xuICAgICAgdGFiLmhlYWRlci5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnZGlzcGxheScpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICB9XG5cbiAgcHVibGljIGJ1aWxkSU8oKTogSFRNTEVsZW1lbnQge1xuICAgIGNvbnN0IGlucHV0QmxvY2sgPSB0aGlzLmJ1aWxkSW5wdXRCbG9jaygpO1xuXG4gICAgdWkudG9vbHMuaGFuZGxlUmVzaXplKGlucHV0QmxvY2ssICh3aWR0aCkgPT4ge1xuICAgICAgaWYgKHdpZHRoIDwgMzUwKVxuICAgICAgICAkKGlucHV0QmxvY2suZmlyc3RDaGlsZCEpLmFkZENsYXNzKCd1aS1mb3JtLWNvbmRlbnNlZCcpO1xuICAgICAgZWxzZVxuICAgICAgICAkKGlucHV0QmxvY2suZmlyc3RDaGlsZCEpLnJlbW92ZUNsYXNzKCd1aS1mb3JtLWNvbmRlbnNlZCcpO1xuICAgIH0pO1xuXG4gICAgY29uc3Qgb3V0cHV0QmxvY2sgPSB0aGlzLmJ1aWxkT3V0cHV0QmxvY2soKTtcbiAgICBvdXRwdXRCbG9jay5zdHlsZS5oZWlnaHQgPSAnMTAwJSc7XG4gICAgb3V0cHV0QmxvY2suc3R5bGUud2lkdGggPSAnMTAwJSc7XG4gICAgdGhpcy50YWJzRWxlbS5yb290LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG5cbiAgICBpZiAoISF0aGlzLnRhYnNFbGVtLmdldFBhbmUoJ0lucHV0JykpIHtcbiAgICAgIHRoaXMudGFic0VsZW0ucGFuZXMuZm9yRWFjaCgodGFiKSA9PiB7XG4gICAgICAgIHRhYi5oZWFkZXIuc3R5bGUuZGlzcGxheSA9ICdub25lJztcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IG91dCA9IHVpLnNwbGl0SChbaW5wdXRCbG9jaywgdWkucGFuZWwoW291dHB1dEJsb2NrXSldLCBudWxsLCB0cnVlKTtcbiAgICBvdXQuc3R5bGUucGFkZGluZyA9ICcwIDEycHgnO1xuXG4gICAgaW5wdXRCbG9jay5wYXJlbnRFbGVtZW50IS5zdHlsZS5tYXhXaWR0aCA9ICc0NTBweCc7XG5cbiAgICByZXR1cm4gb3V0O1xuICB9XG5cbiAgcHVibGljIGJ1aWxkSW5wdXRCbG9jaygpOiBIVE1MRWxlbWVudCB7XG4gICAgY29uc3QgZm9ybURpdiA9IHRoaXMucmVuZGVyUnVuU2VjdGlvbigpO1xuXG4gICAgcmV0dXJuIGZvcm1EaXY7XG4gIH1cblxuICBwcml2YXRlIHRhYnNFbGVtID0gdWkudGFiQ29udHJvbCgpO1xuXG4gIHB1YmxpYyBidWlsZE91dHB1dEJsb2NrKCk6IEhUTUxFbGVtZW50IHtcbiAgICBjb25zdCBvdXRwdXRCbG9jayA9IHVpLmJveCgpO1xuXG4gICAgdGhpcy50YWJzTGFiZWxzLmZvckVhY2goKHRhYkxhYmVsKSA9PiB7XG4gICAgICBjb25zdCB0YWJEZlByb3BzID0gdGhpcy5jYXRlZ29yeVRvUGFyYW1NYXBbdGFiTGFiZWxdLmZpbHRlcigocCkgPT4gcC5wcm9wZXJ0eVR5cGUgPT09IERHLlRZUEUuREFUQV9GUkFNRSk7XG4gICAgICBjb25zdCB0YWJTY2FsYXJQcm9wcyA9IHRoaXMuY2F0ZWdvcnlUb1BhcmFtTWFwW3RhYkxhYmVsXS5maWx0ZXIoKHApID0+IHAucHJvcGVydHlUeXBlICE9PSBERy5UWVBFLkRBVEFfRlJBTUUpO1xuICAgICAgY29uc3QgcGFyc2VkVGFiRGZQcm9wcyA9IHRhYkRmUHJvcHMubWFwKChkZlByb3ApID0+IEpTT04ucGFyc2UoZGZQcm9wLm9wdGlvbnNbJ3ZpZXdlciddKSk7XG5cbiAgICAgIGNvbnN0IGRmU2VjdGlvbnMgPSB0YWJEZlByb3BzLm1hcCgoZGZQcm9wLCBkZkluZGV4KSA9PiB7XG4gICAgICAgIGNvbnN0IHZpZXdlcnM6IERHLlZpZXdlcltdID0gcGFyc2VkVGFiRGZQcm9wc1tkZkluZGV4XS5tYXAoKHZpZXdlckRlc2M6IHtba2V5OiBzdHJpbmddOiBzdHJpbmd9KSA9PiB7XG4gICAgICAgICAgY29uc3QgaW5pdGlhbFZhbHVlID0gdGhpcy5mdW5jQ2FsbD8ub3V0cHV0c1tkZlByb3AubmFtZV0/LnZhbHVlID8/IHRoaXMuZnVuY0NhbGwhLmlucHV0UGFyYW1zW2RmUHJvcC5uYW1lXT8udmFsdWUgPz8gREcuRGF0YUZyYW1lLmZyb21Dc3YoYGApO1xuXG4gICAgICAgICAgY29uc3Qgdmlld2VyID0gREcuVmlld2VyLmZyb21UeXBlKHZpZXdlclR5cGVzTWFwcGluZ1t2aWV3ZXJEZXNjWyd0eXBlJ11dLCBpbml0aWFsVmFsdWUpO1xuICAgICAgICAgIHZpZXdlci5zZXRPcHRpb25zKHZpZXdlckRlc2MpO1xuXG4gICAgICAgICAgaWYgKHRoaXMuZGZUb1ZpZXdlck1hcHBpbmdbZGZQcm9wLm5hbWVdKSB0aGlzLmRmVG9WaWV3ZXJNYXBwaW5nW2RmUHJvcC5uYW1lXS5wdXNoKHZpZXdlcik7IGVsc2UgdGhpcy5kZlRvVmlld2VyTWFwcGluZ1tkZlByb3AubmFtZV0gPSBbdmlld2VyXTtcblxuICAgICAgICAgIHJldHVybiB2aWV3ZXI7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHRoaXMuZnVuY0NhbGxSZXBsYWNlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGN1cnJlbnRQYXJhbTogREcuRnVuY0NhbGxQYXJhbSA9IHRoaXMuZnVuY0NhbGwhLm91dHB1dFBhcmFtc1tkZlByb3AubmFtZV0gPz8gdGhpcy5mdW5jQ2FsbCEuaW5wdXRQYXJhbXNbZGZQcm9wLm5hbWVdO1xuXG4gICAgICAgICAgY3VycmVudFBhcmFtLm9uQ2hhbmdlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgdmlld2Vycy5mb3JFYWNoKCh2aWV3ZXIpID0+IHtcbiAgICAgICAgICAgICAgdmlld2VyLmRhdGFGcmFtZSA9IGN1cnJlbnRQYXJhbS52YWx1ZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcblxuICAgICAgICBjb25zdCBkZlNlY3Rpb25UaXRsZTogc3RyaW5nID0gZGZQcm9wLm9wdGlvbnNbJ2NhcHRpb24nXSA/PyBkZlByb3AubmFtZTtcblxuICAgICAgICBpZiAodGFiTGFiZWwgIT09ICdJbnB1dCcpIHtcbiAgICAgICAgICByZXR1cm4gdWkuZGl2VihbXG4gICAgICAgICAgICB1aS5oMihkZlNlY3Rpb25UaXRsZSksXG4gICAgICAgICAgICB1aS5kaXZIKHZpZXdlcnMubWFwKCh2aWV3ZXIsIHZpZXdlckluZGV4KSA9PiB7XG4gICAgICAgICAgICAgIGlmIChwYXJzZWRUYWJEZlByb3BzW2RmSW5kZXhdW3ZpZXdlckluZGV4XVsnYmxvY2snXSA9PT0gJzI1JykgcmV0dXJuIHVpLmJsb2NrMjUoW3ZpZXdlci5yb290XSk7XG4gICAgICAgICAgICAgIGlmIChwYXJzZWRUYWJEZlByb3BzW2RmSW5kZXhdW3ZpZXdlckluZGV4XVsnYmxvY2snXSA9PT0gJzUwJykgcmV0dXJuIHVpLmJsb2NrNTAoW3ZpZXdlci5yb290XSk7XG4gICAgICAgICAgICAgIGlmIChwYXJzZWRUYWJEZlByb3BzW2RmSW5kZXhdW3ZpZXdlckluZGV4XVsnYmxvY2snXSA9PT0gJzc1JykgcmV0dXJuIHVpLmJsb2NrNzUoW3ZpZXdlci5yb290XSk7XG4gICAgICAgICAgICAgIGlmIChwYXJzZWRUYWJEZlByb3BzW2RmSW5kZXhdW3ZpZXdlckluZGV4XVsnYmxvY2snXSA9PT0gJzEwMCcpIHJldHVybiB1aS5ibG9jayhbdmlld2VyLnJvb3RdKTtcblxuICAgICAgICAgICAgICByZXR1cm4gdmlld2VyLnJvb3Q7XG4gICAgICAgICAgICB9KSwge3N0eWxlOiB7J2ZsZXgtd3JhcCc6ICd3cmFwJ319KVxuICAgICAgICAgIF0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGNvbnN0IGlucHV0U2VjdGlvbiA9IHVpLmRpdkgodmlld2Vycy5tYXAoKHZpZXdlciwgdmlld2VySW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmIChwYXJzZWRUYWJEZlByb3BzW2RmSW5kZXhdW3ZpZXdlckluZGV4XVsnYmxvY2snXSA9PT0gJzI1JykgcmV0dXJuIHVpLmJsb2NrMjUoW3ZpZXdlci5yb290XSk7XG4gICAgICAgICAgICBpZiAocGFyc2VkVGFiRGZQcm9wc1tkZkluZGV4XVt2aWV3ZXJJbmRleF1bJ2Jsb2NrJ10gPT09ICc1MCcpIHJldHVybiB1aS5ibG9jazUwKFt2aWV3ZXIucm9vdF0pO1xuICAgICAgICAgICAgaWYgKHBhcnNlZFRhYkRmUHJvcHNbZGZJbmRleF1bdmlld2VySW5kZXhdWydibG9jayddID09PSAnNzUnKSByZXR1cm4gdWkuYmxvY2s3NShbdmlld2VyLnJvb3RdKTtcbiAgICAgICAgICAgIGlmIChwYXJzZWRUYWJEZlByb3BzW2RmSW5kZXhdW3ZpZXdlckluZGV4XVsnYmxvY2snXSA9PT0gJzEwMCcpIHJldHVybiB1aS5ibG9jayhbdmlld2VyLnJvb3RdKTtcblxuICAgICAgICAgICAgcmV0dXJuIHZpZXdlci5yb290O1xuICAgICAgICAgIH0pLCB7c3R5bGU6IHsnZmxleC13cmFwJzogJ3dyYXAnfX0pO1xuXG4gICAgICAgICAgdGhpcy5mdW5jQ2FsbFJlcGxhY2VkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50UGFyYW06IERHLkZ1bmNDYWxsUGFyYW0gPSB0aGlzLmZ1bmNDYWxsIS5vdXRwdXRQYXJhbXNbZGZQcm9wLm5hbWVdID8/IHRoaXMuZnVuY0NhbGwhLmlucHV0UGFyYW1zW2RmUHJvcC5uYW1lXTtcblxuICAgICAgICAgICAgY3VycmVudFBhcmFtLm9uQ2hhbmdlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnRhYnNFbGVtLnJvb3Quc3R5bGUucmVtb3ZlUHJvcGVydHkoJ2Rpc3BsYXknKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgcmV0dXJuIHVpLmRpdlYoW1xuICAgICAgICAgICAgdWkuaDIoZGZTZWN0aW9uVGl0bGUpLFxuICAgICAgICAgICAgaW5wdXRTZWN0aW9uXG4gICAgICAgICAgXSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG5cbiAgICAgIGNvbnN0IGdlbmVyYXRlU2NhbGFyc1RhYmxlID0gKCkgPT4gdWkudGFibGVGcm9tTWFwKFxuICAgICAgICB0YWJTY2FsYXJQcm9wcy5yZWR1Y2UoKGFjYywgc2NhbGFyKSA9PiB7XG4gICAgICAgICAgYWNjW3NjYWxhci5uYW1lXSA9IHRoaXMuZnVuY0NhbGw/Lm91dHB1dHNbc2NhbGFyLm5hbWVdO1xuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sIHt9IGFzIHtba2V5OiBzdHJpbmddOiBzdHJpbmd9KVxuICAgICAgKTtcblxuICAgICAgbGV0IHNjYWxhcnNUYWJsZSA9IGdlbmVyYXRlU2NhbGFyc1RhYmxlKCk7XG5cbiAgICAgIHRhYlNjYWxhclByb3BzLmZvckVhY2goKHRhYlNjYWxhclByb3ApID0+IHtcbiAgICAgICAgdGhpcy5mdW5jQ2FsbFJlcGxhY2VkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgKHRoaXMuZnVuY0NhbGwhLm91dHB1dFBhcmFtc1t0YWJTY2FsYXJQcm9wLm5hbWVdIGFzIERHLkZ1bmNDYWxsUGFyYW0pLm9uQ2hhbmdlZC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgbmV3U2NhbGFyc1RhYmxlID0gZ2VuZXJhdGVTY2FsYXJzVGFibGUoKTtcbiAgICAgICAgICAgIHNjYWxhcnNUYWJsZS5yZXBsYWNlV2l0aChuZXdTY2FsYXJzVGFibGUpO1xuICAgICAgICAgICAgc2NhbGFyc1RhYmxlID0gbmV3U2NhbGFyc1RhYmxlO1xuICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnRhYnNFbGVtLmFkZFBhbmUodGFiTGFiZWwsICgpID0+IHtcbiAgICAgICAgcmV0dXJuIHVpLmRpdlYoWy4uLmRmU2VjdGlvbnMsIC4uLnRhYlNjYWxhclByb3BzLmxlbmd0aCA/IFt1aS5oMignU2NhbGFyIHZhbHVlcycpXTogW10sIHNjYWxhcnNUYWJsZV0pO1xuICAgICAgfSk7XG4gICAgfSk7XG4gICAgb3V0cHV0QmxvY2suYXBwZW5kKHRoaXMudGFic0VsZW0ucm9vdCk7XG5cbiAgICB0aGlzLnRhYnNFbGVtLmhlYWRlci5jbGFzc0xpc3QuYWRkKElOVEVSQUNUSVZFX0NTU19DTEFTUyk7XG5cbiAgICByZXR1cm4gb3V0cHV0QmxvY2s7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgb25BZnRlckxvYWRSdW4obG9hZGVkUnVuOiBERy5GdW5jQ2FsbCkge1xuICAgIHd1KHRoaXMuZnVuY0NhbGwhLm91dHB1dFBhcmFtcy52YWx1ZXMoKSBhcyBERy5GdW5jQ2FsbFBhcmFtW10pLmZvckVhY2goKG91dCkgPT4ge1xuICAgICAgdGhpcy5mdW5jQ2FsbCEuc2V0UGFyYW1WYWx1ZShvdXQubmFtZSwgbG9hZGVkUnVuLm91dHB1dHNbb3V0Lm5hbWVdKTtcbiAgICB9KTtcblxuICAgIHd1KHRoaXMuZnVuY0NhbGwhLmlucHV0UGFyYW1zLnZhbHVlcygpIGFzIERHLkZ1bmNDYWxsUGFyYW1bXSkuZm9yRWFjaCgoaW5wKSA9PiB7XG4gICAgICB0aGlzLmZ1bmNDYWxsIS5zZXRQYXJhbVZhbHVlKGlucC5uYW1lLCBsb2FkZWRSdW4uaW5wdXRzW2lucC5uYW1lXSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnRhYnNFbGVtLnJvb3Quc3R5bGUucmVtb3ZlUHJvcGVydHkoJ2Rpc3BsYXknKTtcbiAgICB0aGlzLnRhYnNFbGVtLnBhbmVzLmZvckVhY2goKHRhYikgPT4ge1xuICAgICAgdGFiLmhlYWRlci5zdHlsZS5yZW1vdmVQcm9wZXJ0eSgnZGlzcGxheScpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBkZlRvVmlld2VyTWFwcGluZzoge1trZXk6IHN0cmluZ106IERHLlZpZXdlcltdfSA9IHt9O1xuXG4gIHByb3RlY3RlZCBnZXQgZGZQYXJhbXMoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIC4uLnRoaXMuZnVuYyEuaW5wdXRzLmZpbHRlcigocCkgPT4gcC5wcm9wZXJ0eVR5cGUgPT0gREcuVFlQRS5EQVRBX0ZSQU1FKSxcbiAgICAgIC4uLnRoaXMuZnVuYyEub3V0cHV0cy5maWx0ZXIoKHApID0+IHAucHJvcGVydHlUeXBlID09IERHLlRZUEUuREFUQV9GUkFNRSksXG4gICAgXTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgZGZPdXRwdXRQYXJhbXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuZnVuYyEub3V0cHV0cy5maWx0ZXIoKHApID0+IHAucHJvcGVydHlUeXBlID09IERHLlRZUEUuREFUQV9GUkFNRSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IGlzSW5wdXRQYW5lbFJlcXVpcmVkKCkge1xuICAgIHJldHVybiB0aGlzLmZ1bmM/LmlucHV0cy5zb21lKChwKSA9PiBwLnByb3BlcnR5VHlwZSA9PSBERy5UWVBFLkRBVEFfRlJBTUUgJiYgcC5vcHRpb25zWyd2aWV3ZXInXSAhPSBudWxsKSB8fCBmYWxzZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgb3V0VW5pcXVlUGFyYW1DYXRlZ29yaWVzKCkge1xuICAgIHJldHVybiBbXG4gICAgICAuLi5uZXcgU2V0KHRoaXMuZnVuYyEub3V0cHV0cy5tYXAoKHApID0+IHAuY2F0ZWdvcnkpKSAvLyBnZXQgYWxsIG91dHB1dCBwYXJhbXMnIGNhdGVnb3JpZXNcbiAgICBdOyAvLyBrZWVwIG9ubHkgdW5pcXVlIG9mIHRoZW1cbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgb3V0cHV0VGFic0xhYmVscygpIHtcbiAgICByZXR1cm4gW1xuICAgICAgLi4udGhpcy5vdXRVbmlxdWVQYXJhbUNhdGVnb3JpZXMsXG4gICAgICAuLi50aGlzLm91dFVuaXF1ZVBhcmFtQ2F0ZWdvcmllcy5maW5kKCh2YWwpID0+IHZhbCA9PT0gJ01pc2MnKSA/IFsnT3V0cHV0J10gOiBbXSwgLy8gaWYgbm8gY2F0ZWdvcmllcyBhcmUgc3RhdGVkLCB0aGUgZGVmYXVsdCBjYXRlZ29yeSBpcyBhZGRlZFxuICAgIF07XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0IHRhYnNMYWJlbHMoKSB7XG4gICAgcmV0dXJuIE9iamVjdC5rZXlzKHRoaXMuY2F0ZWdvcnlUb1BhcmFtTWFwKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgY2F0ZWdvcnlUb1BhcmFtTWFwKCkge1xuICAgIGNvbnN0IG1hcCA9IHt9IGFzIFJlY29yZDxzdHJpbmcsIERHLlByb3BlcnR5W10+O1xuXG4gICAgaWYgKHRoaXMuaXNJbnB1dFBhbmVsUmVxdWlyZWQpIHtcbiAgICAgIHRoaXMuZnVuYyEuaW5wdXRzLlxuICAgICAgICBmaWx0ZXIoKHApID0+IHAucHJvcGVydHlUeXBlID09IERHLlRZUEUuREFUQV9GUkFNRSAmJiBwLm9wdGlvbnNbJ3ZpZXdlciddICE9IG51bGwpLlxuICAgICAgICBmb3JFYWNoKChwKSA9PiBtYXBbJ0lucHV0J10gPyBtYXBbJ0lucHV0J10ucHVzaChwKTogbWFwWydJbnB1dCddID0gW3BdKTtcbiAgICB9XG5cbiAgICB0aGlzLmZ1bmMhLm91dHB1dHMuZm9yRWFjaCgocCkgPT4ge1xuICAgICAgY29uc3QgY2F0ZWdvcnkgPSBwLmNhdGVnb3J5ID09PSAnTWlzYycgPyAnT3V0cHV0JzogcC5jYXRlZ29yeTtcblxuICAgICAgaWYgKG1hcFtjYXRlZ29yeV0pXG4gICAgICAgIG1hcFtjYXRlZ29yeV0ucHVzaChwKTtcbiAgICAgIGVsc2VcbiAgICAgICAgbWFwW2NhdGVnb3J5XSA9IFtwXTtcbiAgICB9KTtcblxuICAgIHJldHVybiBtYXA7XG4gIH1cblxuICBwcml2YXRlIHJlbmRlclJ1blNlY3Rpb24oKTogSFRNTEVsZW1lbnQge1xuICAgIGNvbnN0IHJ1bkJ1dHRvbiA9IHVpLmJpZ0J1dHRvbignUnVuJywgYXN5bmMgKCkgPT4ge1xuICAgICAgdGhpcy5pc1J1bm5pbmcgPSB0cnVlO1xuICAgICAgdGhpcy5jaGVja0Rpc2FiaWxpdHkubmV4dCgpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5ydW4oKTtcbiAgICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgICBncm9rLnNoZWxsLmVycm9yKGUpO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgdGhpcy5pc1J1bm5pbmcgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jaGVja0Rpc2FiaWxpdHkubmV4dCgpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIGNvbnN0IGJ1dHRvbldyYXBwZXIgPSB1aS5kaXYocnVuQnV0dG9uKTtcbiAgICB1aS50b29sdGlwLmJpbmQoYnV0dG9uV3JhcHBlciwgKCkgPT4gcnVuQnV0dG9uLmRpc2FibGVkID8gKHRoaXMuaXNSdW5uaW5nID8gJ0NvbXB1dGF0aW9ucyBhcmUgaW4gcHJvZ3Jlc3MnIDogJ1NvbWUgaW5wdXRzIGFyZSBpbnZhbGlkJykgOiAnJyk7XG5cbiAgICB0aGlzLmNoZWNrRGlzYWJpbGl0eS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgY29uc3QgaXNWYWxpZCA9ICh3dSh0aGlzLmZ1bmNDYWxsIS5pbnB1dHMudmFsdWVzKCkpLmV2ZXJ5KCh2KSA9PiB2ICE9PSBudWxsKSkgJiYgIXRoaXMuaXNSdW5uaW5nO1xuICAgICAgcnVuQnV0dG9uLmRpc2FibGVkID0gaXNWYWxpZCA/IGZhbHNlIDogdHJ1ZTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGlucHV0cyA9IHVpLmRpdlYoW10sICd1aS1mb3JtJyk7XG4gICAgbGV0IHByZXZDYXRlZ29yeSA9ICdNaXNjJztcbiAgICB3dSh0aGlzLmZ1bmNDYWxsIS5pbnB1dFBhcmFtcy52YWx1ZXMoKSBhcyBERy5GdW5jQ2FsbFBhcmFtW10pXG4gICAgICAuZmlsdGVyKCh2YWwpID0+ICEhdmFsKVxuICAgICAgLmZvckVhY2goKHZhbCkgPT4ge1xuICAgICAgICBjb25zdCBwcm9wID0gdmFsLnByb3BlcnR5O1xuICAgICAgICBpZiAocHJvcC5wcm9wZXJ0eVR5cGUudG9TdHJpbmcoKSA9PT0gRklMRV9JTlBVVF9UWVBFKSB7XG4gICAgICAgICAgY29uc3QgdCA9IFVpVXRpbHMuZmlsZUlucHV0KHByb3AuY2FwdGlvbiA/PyBwcm9wLm5hbWUsIG51bGwsIChmaWxlOiBGaWxlKSA9PiB0aGlzLmZ1bmNDYWxsIS5pbnB1dHNbcHJvcC5uYW1lXSA9IGZpbGUpO1xuICAgICAgICAgIGlmIChwcm9wLmNhdGVnb3J5ICE9PSBwcmV2Q2F0ZWdvcnkpXG4gICAgICAgICAgICBpbnB1dHMuYXBwZW5kKHVpLmgyKHByb3AuY2F0ZWdvcnkpKTtcblxuICAgICAgICAgIGlucHV0cy5hcHBlbmQodC5yb290KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjb25zdCB0ID0gcHJvcC5wcm9wZXJ0eVR5cGUgPT09IERHLlRZUEUuREFUQV9GUkFNRSA/XG4gICAgICAgICAgICB1aS50YWJsZUlucHV0KHByb3AubmFtZSwgbnVsbCwgZ3Jvay5zaGVsbC50YWJsZXMpOlxuICAgICAgICAgICAgdWkuaW5wdXQuZm9yUHJvcGVydHkocHJvcCk7XG5cbiAgICAgICAgICB0LmNhcHRpb25MYWJlbC5maXJzdENoaWxkIS5yZXBsYWNlV2l0aCh1aS5zcGFuKFtwcm9wLmNhcHRpb24gPz8gcHJvcC5uYW1lXSkpO1xuICAgICAgICAgIGlmIChwcm9wLm9wdGlvbnNbJ3VuaXRzJ10pIHQuYWRkUG9zdGZpeChwcm9wLm9wdGlvbnNbJ3VuaXRzJ10pO1xuXG4gICAgICAgICAgdGhpcy5mdW5jQ2FsbFJlcGxhY2VkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0LnZhbHVlID0gdGhpcy5mdW5jQ2FsbCEuaW5wdXRzW3ZhbC5uYW1lXSA/PyBwcm9wLmRlZmF1bHRWYWx1ZSA/PyBudWxsO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHQub25DaGFuZ2VkKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZnVuY0NhbGwhLmlucHV0c1t2YWwubmFtZV0gPSB0LnZhbHVlO1xuICAgICAgICAgICAgaWYgKHQudmFsdWUgPT09IG51bGwpIHNldFRpbWVvdXQoKCkgPT4gdC5pbnB1dC5jbGFzc0xpc3QuYWRkKCdkNC1pbnZhbGlkJyksIDEwMCk7IGVsc2UgdC5pbnB1dC5jbGFzc0xpc3QucmVtb3ZlKCdkNC1pbnZhbGlkJyk7IDtcblxuICAgICAgICAgICAgdGhpcy5jaGVja0Rpc2FiaWxpdHkubmV4dCgpO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGlmIChwcm9wLmNhdGVnb3J5ICE9PSBwcmV2Q2F0ZWdvcnkpXG4gICAgICAgICAgICBpbnB1dHMuYXBwZW5kKHVpLmgyKHByb3AuY2F0ZWdvcnkpKTtcblxuICAgICAgICAgIGlmICh0LnZhbHVlID09PSBudWxsKSBydW5CdXR0b24uZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICAgIGlucHV0cy5hcHBlbmQodC5yb290KTtcbiAgICAgICAgfVxuICAgICAgICBwcmV2Q2F0ZWdvcnkgPSBwcm9wLmNhdGVnb3J5O1xuICAgICAgfSk7XG4gICAgLy8gQHRzLWlnbm9yZVxuICAgIGNvbnN0IGJ1dHRvbnMgPSB1aS5idXR0b25zSW5wdXQoW2J1dHRvbldyYXBwZXJdKTtcbiAgICBpbnB1dHMuYXBwZW5kKGJ1dHRvbnMpO1xuICAgIGlucHV0cy5jbGFzc0xpc3QucmVtb3ZlKCd1aS1wYW5lbCcpO1xuICAgIGlucHV0cy5zdHlsZS5wYWRkaW5nVG9wID0gJzBweCc7XG4gICAgaW5wdXRzLnN0eWxlLnBhZGRpbmdMZWZ0ID0gJzBweCc7XG5cbiAgICByZXR1cm4gdWkuZGl2KFtpbnB1dHNdKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBkZWZhdWx0RXhwb3J0ID0gYXN5bmMgKGZvcm1hdDogc3RyaW5nKSA9PiB7XG4gICAgY29uc3QgbGFzdENhbGwgPSB0aGlzLmxhc3RDYWxsO1xuICAgIGlmICghbGFzdENhbGwpIHRocm93IG5ldyBFcnJvcihgRnVuY3Rpb24gd2FzIG5vdCBjYWxsZWRgKTtcblxuICAgIGlmICghdGhpcy5leHBvcnRDb25maWchLnN1cHBvcnRlZEZvcm1hdHMuaW5jbHVkZXMoZm9ybWF0KSkgdGhyb3cgbmV3IEVycm9yKGBGb3JtYXQgXCIke2Zvcm1hdH1cIiBpcyBub3Qgc3VwcG9ydGVkLmApO1xuXG4gICAgaWYgKCF0aGlzLmZ1bmMpIHRocm93IG5ldyBFcnJvcignVGhlIGNvcnJlc3BvZGluZyBmdW5jdGlvbiBpcyBub3Qgc3BlY2lmaWVkJyk7XG5cbiAgICBjb25zdCBCTE9CX1RZUEUgPSAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQ7Y2hhcnNldD1VVEYtOCc7XG4gICAgY29uc3QgZXhwb3J0V29ya2Jvb2sgPSBuZXcgRXhjZWxKUy5Xb3JrYm9vaygpO1xuXG4gICAgY29uc3QgaXNTY2FsYXJUeXBlID0gKHR5cGU6IERHLlRZUEUpID0+IChERy5UWVBFU19TQ0FMQVIuaGFzKHR5cGUpKTtcblxuICAgIGNvbnN0IGlzRGF0YUZyYW1lID0gKHR5cGU6IERHLlRZUEUpID0+ICh0eXBlID09PSBERy5UWVBFLkRBVEFfRlJBTUUpO1xuXG4gICAgY29uc3QgZGZJbnB1dHMgPSB0aGlzLmZ1bmMuaW5wdXRzLmZpbHRlcigoaW5wdXQpID0+IGlzRGF0YUZyYW1lKGlucHV0LnByb3BlcnR5VHlwZSkpO1xuICAgIGNvbnN0IHNjYWxhcklucHV0cyA9IHRoaXMuZnVuYy5pbnB1dHMuZmlsdGVyKChpbnB1dCkgPT4gaXNTY2FsYXJUeXBlKGlucHV0LnByb3BlcnR5VHlwZSkpO1xuICAgIGNvbnN0IGRmT3V0cHV0cyA9IHRoaXMuZnVuYy5vdXRwdXRzLmZpbHRlcigob3V0cHV0KSA9PiBpc0RhdGFGcmFtZShvdXRwdXQucHJvcGVydHlUeXBlKSk7XG4gICAgY29uc3Qgc2NhbGFyT3V0cHV0cyA9IHRoaXMuZnVuYy5vdXRwdXRzLmZpbHRlcigob3V0cHV0KSA9PiBpc1NjYWxhclR5cGUob3V0cHV0LnByb3BlcnR5VHlwZSkpO1xuXG4gICAgY29uc3QgaW5wdXRQYXJhbXMgPSBbLi4ubGFzdENhbGwuaW5wdXRQYXJhbXMudmFsdWVzKCldIGFzIERHLkZ1bmNDYWxsUGFyYW1bXTtcbiAgICBjb25zdCBvdXRwdXRQYXJhbXMgPSBbLi4ubGFzdENhbGwub3V0cHV0UGFyYW1zLnZhbHVlcygpXSBhcyBERy5GdW5jQ2FsbFBhcmFtW107XG5cbiAgICBkZklucHV0cy5mb3JFYWNoKChkZklucHV0KSA9PiB7XG4gICAgICBjb25zdCB2aXNpYmxlVGl0bGUgPSBkZklucHV0Lm9wdGlvbnMuY2FwdGlvbiB8fCBkZklucHV0Lm5hbWU7XG4gICAgICBjb25zdCBjdXJyZW50RGZTaGVldCA9IGV4cG9ydFdvcmtib29rLmFkZFdvcmtzaGVldChnZXRTaGVldE5hbWUodmlzaWJsZVRpdGxlLCBESVJFQ1RJT04uSU5QVVQpKTtcblxuICAgICAgY29uc3QgY3VycmVudERmID0gKGxhc3RDYWxsLmlucHV0c1tkZklucHV0Lm5hbWVdIGFzIERHLkRhdGFGcmFtZSk7XG4gICAgICBkZlRvU2hlZXQoY3VycmVudERmU2hlZXQsIGN1cnJlbnREZik7XG4gICAgfSk7XG5cbiAgICBpZiAoc2NhbGFySW5wdXRzLmxlbmd0aCkge1xuICAgICAgY29uc3QgaW5wdXRTY2FsYXJzU2hlZXQgPSBleHBvcnRXb3JrYm9vay5hZGRXb3Jrc2hlZXQoJ0lucHV0IHNjYWxhcnMnKTtcbiAgICAgIHNjYWxhcnNUb1NoZWV0KGlucHV0U2NhbGFyc1NoZWV0LCBzY2FsYXJJbnB1dHMubWFwKChzY2FsYXJJbnB1dCkgPT4gKHtcbiAgICAgICAgY2FwdGlvbjogc2NhbGFySW5wdXQub3B0aW9uc1snY2FwdGlvbiddIHx8IHNjYWxhcklucHV0Lm5hbWUsXG4gICAgICAgIHZhbHVlOiBsYXN0Q2FsbC5pbnB1dHNbc2NhbGFySW5wdXQubmFtZV0sXG4gICAgICAgIHVuaXRzOiBzY2FsYXJJbnB1dC5vcHRpb25zWyd1bml0cyddIHx8ICcnLFxuICAgICAgfSkpKTtcbiAgICB9XG5cbiAgICBkZk91dHB1dHMuZm9yRWFjaCgoZGZPdXRwdXQpID0+IHtcbiAgICAgIGNvbnN0IHZpc2libGVUaXRsZSA9IGRmT3V0cHV0Lm9wdGlvbnMuY2FwdGlvbiB8fCBkZk91dHB1dC5uYW1lO1xuICAgICAgY29uc3QgY3VycmVudERmU2hlZXQgPSBleHBvcnRXb3JrYm9vay5hZGRXb3Jrc2hlZXQoZ2V0U2hlZXROYW1lKHZpc2libGVUaXRsZSwgRElSRUNUSU9OLk9VVFBVVCkpO1xuXG4gICAgICBjb25zdCBjdXJyZW50RGYgPSAobGFzdENhbGwub3V0cHV0c1tkZk91dHB1dC5uYW1lXSBhcyBERy5EYXRhRnJhbWUpO1xuICAgICAgZGZUb1NoZWV0KGN1cnJlbnREZlNoZWV0LCBjdXJyZW50RGYpO1xuICAgIH0pO1xuXG5cbiAgICBpZiAoc2NhbGFyT3V0cHV0cy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IG91dHB1dFNjYWxhcnNTaGVldCA9IGV4cG9ydFdvcmtib29rLmFkZFdvcmtzaGVldCgnT3V0cHV0IHNjYWxhcnMnKTtcbiAgICAgIHNjYWxhcnNUb1NoZWV0KG91dHB1dFNjYWxhcnNTaGVldCwgc2NhbGFyT3V0cHV0cy5tYXAoKHNjYWxhck91dHB1dCkgPT4gKHtcbiAgICAgICAgY2FwdGlvbjogc2NhbGFyT3V0cHV0Lm9wdGlvbnNbJ2NhcHRpb24nXSB8fCBzY2FsYXJPdXRwdXQubmFtZSxcbiAgICAgICAgdmFsdWU6IGxhc3RDYWxsLm91dHB1dHNbc2NhbGFyT3V0cHV0Lm5hbWVdLFxuICAgICAgICB1bml0czogc2NhbGFyT3V0cHV0Lm9wdGlvbnNbJ3VuaXRzJ10gfHwgJycsXG4gICAgICB9KSkpO1xuICAgIH1cblxuICAgIGNvbnN0IHRhYkNvbnRyb2wgPSB0aGlzLnRhYnNFbGVtO1xuICAgIGZvciAoY29uc3QgdGFiTGFiZWwgb2YgdGhpcy50YWJzTGFiZWxzKSB7XG4gICAgICB0YWJDb250cm9sLmN1cnJlbnRQYW5lID0gdGFiQ29udHJvbC5nZXRQYW5lKHRhYkxhYmVsKTtcbiAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChyKSA9PiBzZXRUaW1lb3V0KHIsIDEwMCkpO1xuICAgICAgaWYgKHRhYkxhYmVsID09PSAnSW5wdXQnKSB7XG4gICAgICAgIGZvciAoY29uc3QgaW5wdXRQYXJhbSBvZiBpbnB1dFBhcmFtcy5maWx0ZXIoKGlucHV0UGFyYW0pID0+IGlucHV0UGFyYW0ucHJvcGVydHkucHJvcGVydHlUeXBlID09PSBERy5UWVBFLkRBVEFfRlJBTUUpKSB7XG4gICAgICAgICAgY29uc3Qgbm9uR3JpZFZpZXdlcnMgPSB0aGlzLmRmVG9WaWV3ZXJNYXBwaW5nW2lucHV0UGFyYW0ubmFtZV0uZmlsdGVyKCh2aWV3ZXIpID0+IHZpZXdlci50eXBlICE9PSBERy5WSUVXRVIuR1JJRCk7XG5cbiAgICAgICAgICBjb25zdCBkZklucHV0ID0gZGZJbnB1dHMuZmluZCgoaW5wdXQpID0+IGlucHV0Lm5hbWUgPT09IGlucHV0UGFyYW0ubmFtZSk7XG4gICAgICAgICAgY29uc3QgdmlzaWJsZVRpdGxlID0gZGZJbnB1dCEub3B0aW9ucy5jYXB0aW9uIHx8IGlucHV0UGFyYW0ubmFtZTtcbiAgICAgICAgICBjb25zdCBjdXJyZW50RGYgPSAobGFzdENhbGwuaW5wdXRzW2RmSW5wdXQhLm5hbWVdIGFzIERHLkRhdGFGcmFtZSk7XG5cbiAgICAgICAgICBmb3IgKGNvbnN0IFtpbmRleCwgdmlld2VyXSBvZiBub25HcmlkVmlld2Vycy5lbnRyaWVzKCkpIHtcbiAgICAgICAgICAgIGF3YWl0IHBsb3RUb1NoZWV0KFxuICAgICAgICAgICAgICBleHBvcnRXb3JrYm9vayxcbiAgICAgICAgICAgICAgZXhwb3J0V29ya2Jvb2suZ2V0V29ya3NoZWV0KGdldFNoZWV0TmFtZSh2aXNpYmxlVGl0bGUsIERJUkVDVElPTi5JTlBVVCkpLFxuICAgICAgICAgICAgICB2aWV3ZXIucm9vdCxcbiAgICAgICAgICAgICAgY3VycmVudERmLmNvbHVtbnMubGVuZ3RoICsgMixcbiAgICAgICAgICAgICAgKGluZGV4ID4gMCkgPyBNYXRoLmNlaWwobm9uR3JpZFZpZXdlcnNbaW5kZXgtMV0ucm9vdC5jbGllbnRIZWlnaHQgLyAyMCkgKyAxIDogMFxuICAgICAgICAgICAgKTtcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBmb3IgKGNvbnN0IG91dHB1dFBhcmFtIG9mIG91dHB1dFBhcmFtcy5maWx0ZXIoKG91dHB1dFBhcmFtKSA9PiBvdXRwdXRQYXJhbS5wcm9wZXJ0eS5wcm9wZXJ0eVR5cGUgPT09IERHLlRZUEUuREFUQV9GUkFNRSAmJiBvdXRwdXRQYXJhbS5wcm9wZXJ0eS5jYXRlZ29yeSA9PT0gdGFiTGFiZWwpKSB7XG4gICAgICAgICAgY29uc3Qgbm9uR3JpZFZpZXdlcnMgPSB0aGlzLmRmVG9WaWV3ZXJNYXBwaW5nW291dHB1dFBhcmFtLm5hbWVdLmZpbHRlcigodmlld2VyKSA9PiB2aWV3ZXIudHlwZSAhPT0gREcuVklFV0VSLkdSSUQpO1xuXG4gICAgICAgICAgY29uc3QgZGZPdXRwdXQgPSBkZk91dHB1dHMuZmluZCgoaW5wdXQpID0+IGlucHV0Lm5hbWUgPT09IG91dHB1dFBhcmFtLm5hbWUpITtcbiAgICAgICAgICBjb25zdCB2aXNpYmxlVGl0bGUgPSBkZk91dHB1dC5vcHRpb25zLmNhcHRpb24gfHwgb3V0cHV0UGFyYW0ubmFtZTtcbiAgICAgICAgICBjb25zdCBjdXJyZW50RGYgPSAobGFzdENhbGwub3V0cHV0c1tkZk91dHB1dC5uYW1lXSBhcyBERy5EYXRhRnJhbWUpO1xuXG4gICAgICAgICAgZm9yIChjb25zdCBbaW5kZXgsIHZpZXdlcl0gb2Ygbm9uR3JpZFZpZXdlcnMuZW50cmllcygpKSB7XG4gICAgICAgICAgICBpZiAodmlld2VyLnR5cGUgPT09IERHLlZJRVdFUi5TVEFUSVNUSUNTKSB7XG4gICAgICAgICAgICAgIGNvbnN0IGxlbmd0aCA9IGN1cnJlbnREZi5jb2x1bW5zLmxlbmd0aDtcbiAgICAgICAgICAgICAgY29uc3Qgc3RhdHMgPSBERy5EYXRhRnJhbWUuZnJvbUNvbHVtbnMoW1xuICAgICAgICAgICAgICAgIERHLkNvbHVtbi5zdHJpbmcoJ05hbWUnLCBsZW5ndGgpLmluaXQoKGk6IG51bWJlcikgPT4gY3VycmVudERmLmNvbHVtbnMuYnlJbmRleChpKS5uYW1lKSxcbiAgICAgICAgICAgICAgICBERy5Db2x1bW4uaW50KCdWYWx1ZXMnLCBsZW5ndGgpLmluaXQoKGk6IG51bWJlcikgPT4gY3VycmVudERmLmNvbHVtbnMuYnlJbmRleChpKS5zdGF0cy52YWx1ZUNvdW50KSxcbiAgICAgICAgICAgICAgICBERy5Db2x1bW4uaW50KCdOdWxscycsIGxlbmd0aCkuaW5pdCgoaTogbnVtYmVyKSA9PiBjdXJyZW50RGYuY29sdW1ucy5ieUluZGV4KGkpLnN0YXRzLm1pc3NpbmdWYWx1ZUNvdW50KSxcbiAgICAgICAgICAgICAgICBERy5Db2x1bW4uZmxvYXQoJ01pbicsIGxlbmd0aCkuaW5pdCgoaTogbnVtYmVyKSA9PiBjdXJyZW50RGYuY29sdW1ucy5ieUluZGV4KGkpLnN0YXRzLm1pbiksXG4gICAgICAgICAgICAgICAgREcuQ29sdW1uLmZsb2F0KCdNYXgnLCBsZW5ndGgpLmluaXQoKGk6IG51bWJlcikgPT4gY3VycmVudERmLmNvbHVtbnMuYnlJbmRleChpKS5zdGF0cy5tYXgpLFxuICAgICAgICAgICAgICAgIERHLkNvbHVtbi5mbG9hdCgnQXZnJywgbGVuZ3RoKS5pbml0KChpOiBudW1iZXIpID0+IGN1cnJlbnREZi5jb2x1bW5zLmJ5SW5kZXgoaSkuc3RhdHMuYXZnKSxcbiAgICAgICAgICAgICAgICBERy5Db2x1bW4uZmxvYXQoJ1N0ZGV2JywgbGVuZ3RoKS5pbml0KChpOiBudW1iZXIpID0+IGN1cnJlbnREZi5jb2x1bW5zLmJ5SW5kZXgoaSkuc3RhdHMuc3RkZXYpLFxuICAgICAgICAgICAgICBdKTtcbiAgICAgICAgICAgICAgZGZUb1NoZWV0KFxuICAgICAgICAgICAgICAgIGV4cG9ydFdvcmtib29rLmdldFdvcmtzaGVldChnZXRTaGVldE5hbWUodmlzaWJsZVRpdGxlLCBESVJFQ1RJT04uT1VUUFVUKSksXG4gICAgICAgICAgICAgICAgc3RhdHMsXG4gICAgICAgICAgICAgICAgY3VycmVudERmLmNvbHVtbnMubGVuZ3RoICsgMixcbiAgICAgICAgICAgICAgICAoaW5kZXggPiAwKSA/IE1hdGguY2VpbChub25HcmlkVmlld2Vyc1tpbmRleC0xXS5yb290LmNsaWVudEhlaWdodCAvIDIwKSArIDEgOiAwXG4gICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBhd2FpdCBwbG90VG9TaGVldChcbiAgICAgICAgICAgICAgICBleHBvcnRXb3JrYm9vayxcbiAgICAgICAgICAgICAgICBleHBvcnRXb3JrYm9vay5nZXRXb3Jrc2hlZXQoZ2V0U2hlZXROYW1lKHZpc2libGVUaXRsZSwgRElSRUNUSU9OLk9VVFBVVCkpLFxuICAgICAgICAgICAgICAgIHZpZXdlci5yb290LFxuICAgICAgICAgICAgICAgIGN1cnJlbnREZi5jb2x1bW5zLmxlbmd0aCArIDIsXG4gICAgICAgICAgICAgICAgKGluZGV4ID4gMCkgPyBNYXRoLmNlaWwobm9uR3JpZFZpZXdlcnNbaW5kZXgtMV0ucm9vdC5jbGllbnRIZWlnaHQgLyAyMCkgKyAxIDogMFxuICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9O1xuICAgIGNvbnN0IGJ1ZmZlciA9IGF3YWl0IGV4cG9ydFdvcmtib29rLnhsc3gud3JpdGVCdWZmZXIoKTtcblxuICAgIHJldHVybiBuZXcgQmxvYihbYnVmZmVyXSwge3R5cGU6IEJMT0JfVFlQRX0pO1xuICB9O1xufVxuXG5jb25zdCBnZXRTaGVldE5hbWUgPSAobmFtZTogc3RyaW5nLCBkaXJlY3Rpb246IERJUkVDVElPTikgPT4ge1xuICBjb25zdCBpZGVhbE5hbWUgPSBgJHtkaXJlY3Rpb259IC0gJHtuYW1lfWA7XG4gIHJldHVybiAoaWRlYWxOYW1lLmxlbmd0aCA+IDMxKSA/IG5hbWUuc3Vic3RyaW5nKDAsIDMyKSA6IGlkZWFsTmFtZTtcbn07XG5cbmVudW0gRElSRUNUSU9OIHtcbiAgSU5QVVQgPSAnSW5wdXQnLFxuICBPVVRQVVQgPSAnT3V0cHV0J1xufVxuXG5jb25zdCBzY2FsYXJzVG9TaGVldCA9IChzaGVldDogRXhjZWxKUy5Xb3Jrc2hlZXQsIHNjYWxhcnM6IHsgY2FwdGlvbjogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLCB1bml0czogc3RyaW5nIH1bXSkgPT4ge1xuICBzaGVldC5hZGRSb3coWydQYXJhbWV0ZXInLCAnVmFsdWUnLCAnVW5pdHMnXSkuZm9udCA9IHtib2xkOiB0cnVlfTtcbiAgc2NhbGFycy5mb3JFYWNoKChzY2FsYXIpID0+IHtcbiAgICBzaGVldC5hZGRSb3coW3NjYWxhci5jYXB0aW9uLCBzY2FsYXIudmFsdWUsIHNjYWxhci51bml0c10pO1xuICB9KTtcblxuICBzaGVldC5nZXRDb2x1bW4oMSkud2lkdGggPSBNYXRoLm1heChcbiAgICAuLi5zY2FsYXJzLm1hcCgoc2NhbGFyKSA9PiBzY2FsYXIuY2FwdGlvbi50b1N0cmluZygpLmxlbmd0aCksICdQYXJhbWV0ZXInLmxlbmd0aFxuICApICogMS4yO1xuICBzaGVldC5nZXRDb2x1bW4oMikud2lkdGggPSBNYXRoLm1heCguLi5zY2FsYXJzLm1hcCgoc2NhbGFyKSA9PiBzY2FsYXIudmFsdWUudG9TdHJpbmcoKS5sZW5ndGgpLCAnVmFsdWUnLmxlbmd0aCkgKiAxLjI7XG4gIHNoZWV0LmdldENvbHVtbigzKS53aWR0aCA9IE1hdGgubWF4KC4uLnNjYWxhcnMubWFwKChzY2FsYXIpID0+IHNjYWxhci51bml0cy50b1N0cmluZygpLmxlbmd0aCksICdVbml0cycubGVuZ3RoKSAqIDEuMjtcbn07XG5cbmNvbnN0IGRmVG9TaGVldCA9IChzaGVldDogRXhjZWxKUy5Xb3Jrc2hlZXQsIGRmOiBERy5EYXRhRnJhbWUsIGNvbHVtbjogbnVtYmVyID0gMCwgcm93OiBudW1iZXIgPSAwKSA9PiB7XG4gIGZvciAobGV0IGk9IDA7IGkgPCBkZi5jb2x1bW5zLm5hbWVzKCkubGVuZ3RoOyBpKyspIHtcbiAgICBzaGVldC5nZXRDZWxsKDEgKyByb3csIDEgKyBpICsgY29sdW1uKS52YWx1ZSA9IGRmLmNvbHVtbnMuYnlJbmRleChpKS5uYW1lO1xuICAgIHNoZWV0LmdldENvbHVtbigxICsgaSArIGNvbHVtbikud2lkdGggPSBNYXRoLm1heChcbiAgICAgIC4uLmRmLmNvbHVtbnMuYnlJbmRleChpKS5jYXRlZ29yaWVzLm1hcCgoY2F0ZWdvcnkpID0+IGNhdGVnb3J5LnRvU3RyaW5nKCkubGVuZ3RoKSxcbiAgICAgIGRmLmNvbHVtbnMuYnlJbmRleChpKS5uYW1lLmxlbmd0aFxuICAgICkgKiAxLjI7XG4gIH1cbiAgZm9yIChsZXQgZGZDb2x1bW4gPSAwOyBkZkNvbHVtbiA8IGRmLmNvbHVtbnMubGVuZ3RoOyBkZkNvbHVtbisrKSB7XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkZi5yb3dDb3VudDsgaSsrKVxuICAgICAgc2hlZXQuZ2V0Q2VsbChpICsgMiArIHJvdywgMSArIGNvbHVtbitkZkNvbHVtbikudmFsdWUgPSBkZi5jb2x1bW5zLmJ5SW5kZXgoZGZDb2x1bW4pLmdldChpKTtcbiAgfVxufTtcblxuY29uc3QgcGxvdFRvU2hlZXQgPSBhc3luYyAoZXhwb3J0V2I6IEV4Y2VsSlMuV29ya2Jvb2ssIHNoZWV0OiBFeGNlbEpTLldvcmtzaGVldCwgcGxvdDogSFRNTEVsZW1lbnQsIGNvbHVtbkZvckltYWdlOiBudW1iZXIsIHJvd0ZvckltYWdlOiBudW1iZXIgPSAwKSA9PiB7XG4gIGNvbnN0IGNhbnZhcyA9IGF3YWl0IGh0bWwyY2FudmFzKHBsb3QgYXMgSFRNTEVsZW1lbnQsIHtsb2dnaW5nOiBmYWxzZX0pO1xuICBjb25zdCBkYXRhVXJsID0gY2FudmFzLnRvRGF0YVVSTCgnaW1hZ2UvcG5nJyk7XG5cbiAgY29uc3QgaW1hZ2VJZCA9IGV4cG9ydFdiLmFkZEltYWdlKHtcbiAgICBiYXNlNjQ6IGRhdGFVcmwsXG4gICAgZXh0ZW5zaW9uOiAncG5nJyxcbiAgfSk7XG4gIHNoZWV0LmFkZEltYWdlKGltYWdlSWQsIHtcbiAgICB0bDoge2NvbDogY29sdW1uRm9ySW1hZ2UsIHJvdzogcm93Rm9ySW1hZ2V9LFxuICAgIGV4dDoge3dpZHRoOiBjYW52YXMud2lkdGgsIGhlaWdodDogY2FudmFzLmhlaWdodH0sXG4gIH0pO1xufTtcbiJdfQ==
|
|
@@ -4,11 +4,16 @@ import '../../css/history-panel.css';
|
|
|
4
4
|
export declare class HistoryPanel {
|
|
5
5
|
private func;
|
|
6
6
|
onRunChosen: Subject<string>;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
beforeRunAddToFavorites: Subject<DG.FuncCall>;
|
|
8
|
+
beforeRunAddToShared: Subject<DG.FuncCall>;
|
|
9
|
+
beforeRunRemoveFromFavorites: Subject<string>;
|
|
10
|
+
beforeRunRemoveFromShared: Subject<string>;
|
|
11
|
+
beforeRunDeleted: Subject<string>;
|
|
12
|
+
afterRunAddToFavorites: Subject<DG.FuncCall>;
|
|
13
|
+
afterRunAddToShared: Subject<DG.FuncCall>;
|
|
14
|
+
afterRunRemoveFromFavorites: Subject<string>;
|
|
15
|
+
afterRunRemoveFromShared: Subject<string>;
|
|
16
|
+
afterRunDeleted: Subject<string>;
|
|
12
17
|
private store;
|
|
13
18
|
private myRunsFilter;
|
|
14
19
|
private favRunsFilter;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history-panel.d.ts","sourceRoot":"","sources":["history-panel.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAkB,OAAO,EAAC,MAAM,MAAM,CAAC;AAG9C,OAAO,6BAA6B,CAAC;AAErC,qBAAa,YAAY;
|
|
1
|
+
{"version":3,"file":"history-panel.d.ts","sourceRoot":"","sources":["history-panel.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,MAAM,iBAAiB,CAAC;AAEtC,OAAO,EAAkB,OAAO,EAAC,MAAM,MAAM,CAAC;AAG9C,OAAO,6BAA6B,CAAC;AAErC,qBAAa,YAAY;IAoYrB,OAAO,CAAC,IAAI;IAlYP,WAAW,kBAAyB;IAGpC,uBAAuB,uBAA8B;IAGrD,oBAAoB,uBAA8B;IAGlD,4BAA4B,kBAAyB;IAGrD,yBAAyB,kBAAyB;IAGlD,gBAAgB,kBAAyB;IAGzC,sBAAsB,uBAA8B;IAGpD,mBAAmB,uBAA8B;IAGjD,2BAA2B,kBAAyB;IAGpD,wBAAwB,kBAAyB;IAGjD,eAAe,kBAAyB;IAE/C,OAAO,CAAC,KAAK,CAeX;IAEF,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,gBAAgB,CAAuB;IAExC,YAAY,gBAAuB;IACnC,WAAW,gBAAuB;IAClC,YAAY,gBAAuB;IACnC,eAAe,gBAAuB;IAE7C,UAAU,iBAAY;IACtB,MAAM,iBAAY;IAClB,SAAS,iBAAY;IACrB,IAAI,gBAID;IACH,UAAU,iBAAY;IAEtB,OAAO,CAAC,KAAK,CAOgC;IAE7C,OAAO,gBAAuB;IAC9B,aAAa,gBAAuB;IACpC,WAAW,gBAAuB;IAElC,gBAAgB;IAkEhB,wBAAwB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ;IAgC9C,mBAAmB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ;IASzC,qBAAqB,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ;IAgC3C,gBAAgB,CAAC,UAAU,EAAE,EAAE,CAAC,QAAQ,EAAE;IAM1C,mBAAmB,CAAC,YAAY,EAAE,EAAE,CAAC,QAAQ,EAAE;IAM/C,YAAY,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,EAAE;IAMlC,mBAAmB,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE;IA2C5C,iBAAiB,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE;IAyC1C,kBAAkB,CAAC,SAAS,EAAE,EAAE,CAAC,QAAQ,EAAE;gBAgEjC,IAAI,EAAE,EAAE,CAAC,IAAI;IA+HvB,IAAI,IAAI,mBAEP;CACF"}
|