@coralogix/rum-cli 1.1.18 → 1.1.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -6
- package/cli/commands/update-source-maps-command.ts +3 -2
- package/consts/consts.ts +1 -1
- package/dist/cli/commands/update-source-maps-command.js +4 -3
- package/dist/consts/consts.js +2 -2
- package/dist/models/commands.model.d.ts +1 -0
- package/dist/models/commands.model.js +1 -1
- package/dist/proto-models/com/coralogix/rum/v2/analytics.d.ts +131 -0
- package/dist/proto-models/com/coralogix/rum/v2/analytics.js +771 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_service.d.ts +63 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_service.js +299 -2
- package/dist/proto-models/com/coralogix/rum/v2/rum_source_map_service.d.ts +3 -0
- package/dist/proto-models/com/coralogix/rum/v2/rum_source_map_service.js +36 -3
- package/dist/services/source-maps.service.d.ts +1 -1
- package/dist/services/source-maps.service.js +3 -2
- package/models/commands.model.ts +1 -0
- package/package.json +1 -1
- package/proto-models/com/coralogix/rum/v2/analytics.ts +910 -0
- package/proto-models/com/coralogix/rum/v2/rum_service.ts +339 -0
- package/proto-models/com/coralogix/rum/v2/rum_source_map_service.ts +39 -1
- package/protofetch.lock +2 -2
- package/protofetch.toml +1 -1
- package/protos/com/coralogix/rum/v2/analytics.proto +57 -0
- package/protos/com/coralogix/rum/v2/rum_service.proto +21 -0
- package/protos/com/coralogix/rum/v2/rum_source_map_service.proto +2 -0
- package/protoset.bin +0 -0
- package/services/source-maps.service.ts +2 -0
|
@@ -16,6 +16,9 @@ export interface UpdateSourceMapRequest {
|
|
|
16
16
|
repoName?: string | undefined;
|
|
17
17
|
user?: string | undefined;
|
|
18
18
|
files: FileMetadata[];
|
|
19
|
+
/** @deprecated */
|
|
20
|
+
replace?: string | undefined;
|
|
21
|
+
generate?: string | undefined;
|
|
19
22
|
}
|
|
20
23
|
export interface DeleteSourceMapRequest {
|
|
21
24
|
application: string;
|
|
@@ -125,7 +125,16 @@ exports.UploadSourceMapsRequest = {
|
|
|
125
125
|
},
|
|
126
126
|
};
|
|
127
127
|
function createBaseUpdateSourceMapRequest() {
|
|
128
|
-
return {
|
|
128
|
+
return {
|
|
129
|
+
application: "",
|
|
130
|
+
releaseId: "",
|
|
131
|
+
commitHash: undefined,
|
|
132
|
+
repoName: undefined,
|
|
133
|
+
user: undefined,
|
|
134
|
+
files: [],
|
|
135
|
+
replace: undefined,
|
|
136
|
+
generate: undefined,
|
|
137
|
+
};
|
|
129
138
|
}
|
|
130
139
|
exports.UpdateSourceMapRequest = {
|
|
131
140
|
encode(message, writer = minimal_1.default.Writer.create()) {
|
|
@@ -147,6 +156,12 @@ exports.UpdateSourceMapRequest = {
|
|
|
147
156
|
for (const v of message.files) {
|
|
148
157
|
file_1.FileMetadata.encode(v, writer.uint32(50).fork()).ldelim();
|
|
149
158
|
}
|
|
159
|
+
if (message.replace !== undefined) {
|
|
160
|
+
writer.uint32(58).string(message.replace);
|
|
161
|
+
}
|
|
162
|
+
if (message.generate !== undefined) {
|
|
163
|
+
writer.uint32(66).string(message.generate);
|
|
164
|
+
}
|
|
150
165
|
return writer;
|
|
151
166
|
},
|
|
152
167
|
decode(input, length) {
|
|
@@ -192,6 +207,18 @@ exports.UpdateSourceMapRequest = {
|
|
|
192
207
|
}
|
|
193
208
|
message.files.push(file_1.FileMetadata.decode(reader, reader.uint32()));
|
|
194
209
|
continue;
|
|
210
|
+
case 7:
|
|
211
|
+
if (tag !== 58) {
|
|
212
|
+
break;
|
|
213
|
+
}
|
|
214
|
+
message.replace = reader.string();
|
|
215
|
+
continue;
|
|
216
|
+
case 8:
|
|
217
|
+
if (tag !== 66) {
|
|
218
|
+
break;
|
|
219
|
+
}
|
|
220
|
+
message.generate = reader.string();
|
|
221
|
+
continue;
|
|
195
222
|
}
|
|
196
223
|
if ((tag & 7) === 4 || tag === 0) {
|
|
197
224
|
break;
|
|
@@ -208,6 +235,8 @@ exports.UpdateSourceMapRequest = {
|
|
|
208
235
|
repoName: isSet(object.repoName) ? String(object.repoName) : undefined,
|
|
209
236
|
user: isSet(object.user) ? String(object.user) : undefined,
|
|
210
237
|
files: Array.isArray(object === null || object === void 0 ? void 0 : object.files) ? object.files.map((e) => file_1.FileMetadata.fromJSON(e)) : [],
|
|
238
|
+
replace: isSet(object.replace) ? String(object.replace) : undefined,
|
|
239
|
+
generate: isSet(object.generate) ? String(object.generate) : undefined,
|
|
211
240
|
};
|
|
212
241
|
},
|
|
213
242
|
toJSON(message) {
|
|
@@ -223,13 +252,15 @@ exports.UpdateSourceMapRequest = {
|
|
|
223
252
|
else {
|
|
224
253
|
obj.files = [];
|
|
225
254
|
}
|
|
255
|
+
message.replace !== undefined && (obj.replace = message.replace);
|
|
256
|
+
message.generate !== undefined && (obj.generate = message.generate);
|
|
226
257
|
return obj;
|
|
227
258
|
},
|
|
228
259
|
create(base) {
|
|
229
260
|
return exports.UpdateSourceMapRequest.fromPartial(base !== null && base !== void 0 ? base : {});
|
|
230
261
|
},
|
|
231
262
|
fromPartial(object) {
|
|
232
|
-
var _a, _b, _c, _d, _e, _f;
|
|
263
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
233
264
|
const message = createBaseUpdateSourceMapRequest();
|
|
234
265
|
message.application = (_a = object.application) !== null && _a !== void 0 ? _a : "";
|
|
235
266
|
message.releaseId = (_b = object.releaseId) !== null && _b !== void 0 ? _b : "";
|
|
@@ -237,6 +268,8 @@ exports.UpdateSourceMapRequest = {
|
|
|
237
268
|
message.repoName = (_d = object.repoName) !== null && _d !== void 0 ? _d : undefined;
|
|
238
269
|
message.user = (_e = object.user) !== null && _e !== void 0 ? _e : undefined;
|
|
239
270
|
message.files = ((_f = object.files) === null || _f === void 0 ? void 0 : _f.map((e) => file_1.FileMetadata.fromPartial(e))) || [];
|
|
271
|
+
message.replace = (_g = object.replace) !== null && _g !== void 0 ? _g : undefined;
|
|
272
|
+
message.generate = (_h = object.generate) !== null && _h !== void 0 ? _h : undefined;
|
|
240
273
|
return message;
|
|
241
274
|
},
|
|
242
275
|
};
|
|
@@ -447,4 +480,4 @@ exports.RumSourceMapServiceDefinition = {
|
|
|
447
480
|
function isSet(value) {
|
|
448
481
|
return value !== null && value !== undefined;
|
|
449
482
|
}
|
|
450
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVtX3NvdXJjZV9tYXBfc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb3RvLW1vZGVscy9jb20vY29yYWxvZ2l4L3J1bS92Mi9ydW1fc291cmNlX21hcF9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQixpRUFBcUM7QUFDckMsaUNBQXNDO0FBRXpCLFFBQUEsZUFBZSxHQUFHLHNCQUFzQixDQUFDO0FBa0N0RCxTQUFTLGlDQUFpQztJQUN4QyxPQUFPLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztBQUNwSCxDQUFDO0FBRVksUUFBQSx1QkFBdUIsR0FBRztJQUNyQyxNQUFNLENBQUMsT0FBZ0MsRUFBRSxTQUFxQixpQkFBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDL0UsSUFBSSxPQUFPLENBQUMsV0FBVyxLQUFLLEVBQUUsRUFBRTtZQUM5QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDL0M7UUFDRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLEtBQUssRUFBRSxFQUFFO1lBQzVCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUM3QztRQUNELElBQUksT0FBTyxDQUFDLFVBQVUsS0FBSyxTQUFTLEVBQUU7WUFDcEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQzlDO1FBQ0QsSUFBSSxPQUFPLENBQUMs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QUksRUFBRSxrQkFBa0I7WUFDeEIsV0FBVyxFQUFFLCtCQUF1QjtZQUNwQyxhQUFhLEVBQUUsS0FBSztZQUNwQixZQUFZLEVBQUUsZ0NBQXdCO1lBQ3RDLGNBQWMsRUFBRSxLQUFLO1lBQ3JCLE9BQU8sRUFBRSxFQUFFO1NBQ1o7UUFDRCxlQUFlLEVBQUU7WUFDZixJQUFJLEVBQUUsaUJBQWlCO1lBQ3ZCLFdBQVcsRUFBRSw4QkFBc0I7WUFDbkMsYUFBYSxFQUFFLEtBQUs7WUFDcEIsWUFBWSxFQUFFLCtCQUF1QjtZQUNyQyxjQUFjLEVBQUUsS0FBSztZQUNyQixPQUFPLEVBQUUsRUFBRTtTQUNaO1FBQ0QsZUFBZSxFQUFFO1lBQ2YsSUFBSSxFQUFFLGlCQUFpQjtZQUN2QixXQUFXLEVBQUUsOEJBQXNCO1lBQ25DLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLFlBQVksRUFBRSwrQkFBdUI7WUFDckMsY0FBYyxFQUFFLEtBQUs7WUFDckIsT0FBTyxFQUFFLEVBQUU7U0FDWjtLQUNGO0NBQ08sQ0FBQztBQVVYLFNBQVMsS0FBSyxDQUFDLEtBQVU7SUFDdkIsT0FBTyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLENBQUM7QUFDL0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlICovXG5pbXBvcnQgX20wIGZyb20gXCJwcm90b2J1ZmpzL21pbmltYWxcIjtcbmltcG9ydCB7IEZpbGVNZXRhZGF0YSB9IGZyb20gXCIuL2ZpbGVcIjtcblxuZXhwb3J0IGNvbnN0IHByb3RvYnVmUGFja2FnZSA9IFwiY29tLmNvcmFsb2dpeC5ydW0udjJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBVcGxvYWRTb3VyY2VNYXBzUmVxdWVzdCB7XG4gIGFwcGxpY2F0aW9uOiBzdHJpbmc7XG4gIHJlbGVhc2VJZDogc3RyaW5nO1xuICBjb21taXRIYXNoPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICByZXBvTmFtZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgdXNlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgZmlsZXM6IEZpbGVNZXRhZGF0YVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVNvdXJjZU1hcFJlcXVlc3Qge1xuICBhcHBsaWNhdGlvbjogc3RyaW5nO1xuICByZWxlYXNlSWQ6IHN0cmluZztcbiAgY29tbWl0SGFzaD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcmVwb05hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHVzZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGZpbGVzOiBGaWxlTWV0YWRhdGFbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZWxldGVTb3VyY2VNYXBSZXF1ZXN0IHtcbiAgYXBwbGljYXRpb246IHN0cmluZztcbiAgcmVsZWFzZUlkOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBsb2FkU291cmNlTWFwc1Jlc3BvbnNlIHtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGRhdGVTb3VyY2VNYXBSZXNwb25zZSB7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVsZXRlU291cmNlTWFwUmVzcG9uc2Uge1xufVxuXG5mdW5jdGlvbiBjcmVhdGVCYXNlVXBsb2FkU291cmNlTWFwc1JlcXVlc3QoKTogVXBsb2FkU291cmNlTWFwc1JlcXVlc3Qge1xuICByZXR1cm4geyBhcHBsaWNhdGlvbjogXCJcIiwgcmVsZWFzZUlkOiBcIlwiLCBjb21taXRIYXNoOiB1bmRlZmluZWQsIHJlcG9OYW1lOiB1bmRlZmluZWQsIHVzZXI6IHVuZGVmaW5lZCwgZmlsZXM6IFtdIH07XG59XG5cbmV4cG9ydCBjb25zdCBVcGxvYWRTb3VyY2VNYXBzUmVxdWVzdCA9IHtcbiAgZW5jb2RlKG1lc3NhZ2U6IFVwbG9hZFNvdXJjZU1hcHNSZXF1ZXN0LCB3cml0ZXI6IF9tMC5Xcml0ZXIgPSBfbTAuV3JpdGVyLmNyZWF0ZSgpKTogX20wLldyaXRlciB7XG4gICAgaWYgKG1lc3NhZ2UuYXBwbGljYXRpb24gIT09IFwiXCIpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMTApLnN0cmluZyhtZXNzYWdlLmFwcGxpY2F0aW9uKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UucmVsZWFzZUlkICE9PSBcIlwiKSB7XG4gICAgICB3cml0ZXIudWludDMyKDE4KS5zdHJpbmcobWVzc2FnZS5yZWxlYXNlSWQpO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5jb21taXRIYXNoICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMjYpLnN0cmluZyhtZXNzYWdlLmNvbW1pdEhhc2gpO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5yZXBvTmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB3cml0ZXIudWludDMyKDM0KS5zdHJpbmcobWVzc2FnZS5yZXBvTmFtZSk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnVzZXIgIT09IHVuZGVmaW5lZCkge1xuICAgICAgd3JpdGVyLnVpbnQzMig0Mikuc3RyaW5nKG1lc3NhZ2UudXNlcik7XG4gICAgfVxuICAgIGZvciAoY29uc3QgdiBvZiBtZXNzYWdlLmZpbGVzKSB7XG4gICAgICBGaWxlTWV0YWRhdGEuZW5jb2RlKHYhLCB3cml0ZXIudWludDMyKDUwKS5mb3JrKCkpLmxkZWxpbSgpO1xuICAgIH1cbiAgICByZXR1cm4gd3JpdGVyO1xuICB9LFxuXG4gIGRlY29kZShpbnB1dDogX20wLlJlYWRlciB8IFVpbnQ4QXJyYXksIGxlbmd0aD86IG51bWJlcik6IFVwbG9hZFNvdXJjZU1hcHNSZXF1ZXN0IHtcbiAgICBjb25zdCByZWFkZXIgPSBpbnB1dCBpbnN0YW5jZW9mIF9tMC5SZWFkZXIgPyBpbnB1dCA6IF9tMC5SZWFkZXIuY3JlYXRlKGlucHV0KTtcbiAgICBsZXQgZW5kID0gbGVuZ3RoID09PSB1bmRlZmluZWQgPyByZWFkZXIubGVuIDogcmVhZGVyLnBvcyArIGxlbmd0aDtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZVVwbG9hZFNvdXJjZU1hcHNSZXF1ZXN0KCk7XG4gICAgd2hpbGUgKHJlYWRlci5wb3MgPCBlbmQpIHtcbiAgICAgIGNvbnN0IHRhZyA9IHJlYWRlci51aW50MzIoKTtcbiAgICAgIHN3aXRjaCAodGFnID4+PiAzKSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICBpZiAodGFnICE9PSAxMCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5hcHBsaWNhdGlvbiA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgIGlmICh0YWcgIT09IDE4KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLnJlbGVhc2VJZCA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIGlmICh0YWcgIT09IDI2KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLmNvbW1pdEhhc2ggPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgICBpZiAodGFnICE9PSAzNCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5yZXBvTmFtZSA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIGlmICh0YWcgIT09IDQyKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLnVzZXIgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgNjpcbiAgICAgICAgICBpZiAodGFnICE9PSA1MCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5maWxlcy5wdXNoKEZpbGVNZXRhZGF0YS5kZWNvZGUocmVhZGVyLCByZWFkZXIudWludDMyKCkpKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmICgodGFnICYgNykgPT09IDQgfHwgdGFnID09PSAwKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgcmVhZGVyLnNraXBUeXBlKHRhZyAmIDcpO1xuICAgIH1cbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSxcblxuICBmcm9tSlNPTihvYmplY3Q6IGFueSk6IFVwbG9hZFNvdXJjZU1hcHNSZXF1ZXN0IHtcbiAgICByZXR1cm4ge1xuICAgICAgYXBwbGljYXRpb246IGlzU2V0KG9iamVjdC5hcHBsaWNhdGlvbikgPyBTdHJpbmcob2JqZWN0LmFwcGxpY2F0aW9uKSA6IFwiXCIsXG4gICAgICByZWxlYXNlSWQ6IGlzU2V0KG9iamVjdC5yZWxlYXNlSWQpID8gU3RyaW5nKG9iamVjdC5yZWxlYXNlSWQpIDogXCJcIixcbiAgICAgIGNvbW1pdEhhc2g6IGlzU2V0KG9iamVjdC5jb21taXRIYXNoKSA/IFN0cmluZyhvYmplY3QuY29tbWl0SGFzaCkgOiB1bmRlZmluZWQsXG4gICAgICByZXBvTmFtZTogaXNTZXQob2JqZWN0LnJlcG9OYW1lKSA/IFN0cmluZyhvYmplY3QucmVwb05hbWUpIDogdW5kZWZpbmVkLFxuICAgICAgdXNlcjogaXNTZXQob2JqZWN0LnVzZXIpID8gU3RyaW5nKG9iamVjdC51c2VyKSA6IHVuZGVmaW5lZCxcbiAgICAgIGZpbGVzOiBBcnJheS5pc0FycmF5KG9iamVjdD8uZmlsZXMpID8gb2JqZWN0LmZpbGVzLm1hcCgoZTogYW55KSA9PiBGaWxlTWV0YWRhdGEuZnJvbUpTT04oZSkpIDogW10sXG4gICAgfTtcbiAgfSxcblxuICB0b0pTT04obWVzc2FnZTogVXBsb2FkU291cmNlTWFwc1JlcXVlc3QpOiB1bmtub3duIHtcbiAgICBjb25zdCBvYmo6IGFueSA9IHt9O1xuICAgIG1lc3NhZ2UuYXBwbGljYXRpb24gIT09IHVuZGVmaW5lZCAmJiAob2JqLmFwcGxpY2F0aW9uID0gbWVzc2FnZS5hcHBsaWNhdGlvbik7XG4gICAgbWVzc2FnZS5yZWxlYXNlSWQgIT09IHVuZGVmaW5lZCAmJiAob2JqLnJlbGVhc2VJZCA9IG1lc3NhZ2UucmVsZWFzZUlkKTtcbiAgICBtZXNzYWdlLmNvbW1pdEhhc2ggIT09IHVuZGVmaW5lZCAmJiAob2JqLmNvbW1pdEhhc2ggPSBtZXNzYWdlLmNvbW1pdEhhc2gpO1xuICAgIG1lc3NhZ2UucmVwb05hbWUgIT09IHVuZGVmaW5lZCAmJiAob2JqLnJlcG9OYW1lID0gbWVzc2FnZS5yZXBvTmFtZSk7XG4gICAgbWVzc2FnZS51c2VyICE9PSB1bmRlZmluZWQgJiYgKG9iai51c2VyID0gbWVzc2FnZS51c2VyKTtcbiAgICBpZiAobWVzc2FnZS5maWxlcykge1xuICAgICAgb2JqLmZpbGVzID0gbWVzc2FnZS5maWxlcy5tYXAoKGUpID0+IGUgPyBGaWxlTWV0YWRhdGEudG9KU09OKGUpIDogdW5kZWZpbmVkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgb2JqLmZpbGVzID0gW107XG4gICAgfVxuICAgIHJldHVybiBvYmo7XG4gIH0sXG5cbiAgY3JlYXRlKGJhc2U/OiBEZWVwUGFydGlhbDxVcGxvYWRTb3VyY2VNYXBzUmVxdWVzdD4pOiBVcGxvYWRTb3VyY2VNYXBzUmVxdWVzdCB7XG4gICAgcmV0dXJuIFVwbG9hZFNvdXJjZU1hcHNSZXF1ZXN0LmZyb21QYXJ0aWFsKGJhc2UgPz8ge30pO1xuICB9LFxuXG4gIGZyb21QYXJ0aWFsKG9iamVjdDogRGVlcFBhcnRpYWw8VXBsb2FkU291cmNlTWFwc1JlcXVlc3Q+KTogVXBsb2FkU291cmNlTWFwc1JlcXVlc3Qge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlVXBsb2FkU291cmNlTWFwc1JlcXVlc3QoKTtcbiAgICBtZXNzYWdlLmFwcGxpY2F0aW9uID0gb2JqZWN0LmFwcGxpY2F0aW9uID8/IFwiXCI7XG4gICAgbWVzc2FnZS5yZWxlYXNlSWQgPSBvYmplY3QucmVsZWFzZUlkID8/IFwiXCI7XG4gICAgbWVzc2FnZS5jb21taXRIYXNoID0gb2JqZWN0LmNvbW1pdEhhc2ggPz8gdW5kZWZpbmVkO1xuICAgIG1lc3NhZ2UucmVwb05hbWUgPSBvYmplY3QucmVwb05hbWUgPz8gdW5kZWZpbmVkO1xuICAgIG1lc3NhZ2UudXNlciA9IG9iamVjdC51c2VyID8/IHVuZGVmaW5lZDtcbiAgICBtZXNzYWdlLmZpbGVzID0gb2JqZWN0LmZpbGVzPy5tYXAoKGUpID0+IEZpbGVNZXRhZGF0YS5mcm9tUGFydGlhbChlKSkgfHwgW107XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG59O1xuXG5mdW5jdGlvbiBjcmVhdGVCYXNlVXBkYXRlU291cmNlTWFwUmVxdWVzdCgpOiBVcGRhdGVTb3VyY2VNYXBSZXF1ZXN0IHtcbiAgcmV0dXJuIHsgYXBwbGljYXRpb246IFwiXCIsIHJlbGVhc2VJZDogXCJcIiwgY29tbWl0SGFzaDogdW5kZWZpbmVkLCByZXBvTmFtZTogdW5kZWZpbmVkLCB1c2VyOiB1bmRlZmluZWQsIGZpbGVzOiBbXSB9O1xufVxuXG5leHBvcnQgY29uc3QgVXBkYXRlU291cmNlTWFwUmVxdWVzdCA9IHtcbiAgZW5jb2RlKG1lc3NhZ2U6IFVwZGF0ZVNvdXJjZU1hcFJlcXVlc3QsIHdyaXRlcjogX20wLldyaXRlciA9IF9tMC5Xcml0ZXIuY3JlYXRlKCkpOiBfbTAuV3JpdGVyIHtcbiAgICBpZiAobWVzc2FnZS5hcHBsaWNhdGlvbiAhPT0gXCJcIikge1xuICAgICAgd3JpdGVyLnVpbnQzMigxMCkuc3RyaW5nKG1lc3NhZ2UuYXBwbGljYXRpb24pO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5yZWxlYXNlSWQgIT09IFwiXCIpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMTgpLnN0cmluZyhtZXNzYWdlLnJlbGVhc2VJZCk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLmNvbW1pdEhhc2ggIT09IHVuZGVmaW5lZCkge1xuICAgICAgd3JpdGVyLnVpbnQzMigyNikuc3RyaW5nKG1lc3NhZ2UuY29tbWl0SGFzaCk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnJlcG9OYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMzQpLnN0cmluZyhtZXNzYWdlLnJlcG9OYW1lKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UudXNlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB3cml0ZXIudWludDMyKDQyKS5zdHJpbmcobWVzc2FnZS51c2VyKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCB2IG9mIG1lc3NhZ2UuZmlsZXMpIHtcbiAgICAgIEZpbGVNZXRhZGF0YS5lbmNvZGUodiEsIHdyaXRlci51aW50MzIoNTApLmZvcmsoKSkubGRlbGltKCk7XG4gICAgfVxuICAgIHJldHVybiB3cml0ZXI7XG4gIH0sXG5cbiAgZGVjb2RlKGlucHV0OiBfbTAuUmVhZGVyIHwgVWludDhBcnJheSwgbGVuZ3RoPzogbnVtYmVyKTogVXBkYXRlU291cmNlTWFwUmVxdWVzdCB7XG4gICAgY29uc3QgcmVhZGVyID0gaW5wdXQgaW5zdGFuY2VvZiBfbTAuUmVhZGVyID8gaW5wdXQgOiBfbTAuUmVhZGVyLmNyZWF0ZShpbnB1dCk7XG4gICAgbGV0IGVuZCA9IGxlbmd0aCA9PT0gdW5kZWZpbmVkID8gcmVhZGVyLmxlbiA6IHJlYWRlci5wb3MgKyBsZW5ndGg7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VVcGRhdGVTb3VyY2VNYXBSZXF1ZXN0KCk7XG4gICAgd2hpbGUgKHJlYWRlci5wb3MgPCBlbmQpIHtcbiAgICAgIGNvbnN0IHRhZyA9IHJlYWRlci51aW50MzIoKTtcbiAgICAgIHN3aXRjaCAodGFnID4+PiAzKSB7XG4gICAgICAgIGNhc2UgMTpcbiAgICAgICAgICBpZiAodGFnICE9PSAxMCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5hcHBsaWNhdGlvbiA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgIGlmICh0YWcgIT09IDE4KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLnJlbGVhc2VJZCA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICAgIGlmICh0YWcgIT09IDI2KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLmNvbW1pdEhhc2ggPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgNDpcbiAgICAgICAgICBpZiAodGFnICE9PSAzNCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5yZXBvTmFtZSA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICAgIGlmICh0YWcgIT09IDQyKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLnVzZXIgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgNjpcbiAgICAgICAgICBpZiAodGFnICE9PSA1MCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5maWxlcy5wdXNoKEZpbGVNZXRhZGF0YS5kZWNvZGUocmVhZGVyLCByZWFkZXIudWludDMyKCkpKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIGlmICgodGFnICYgNykgPT09IDQgfHwgdGFnID09PSAwKSB7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgICAgcmVhZGVyLnNraXBUeXBlKHRhZyAmIDcpO1xuICAgIH1cbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSxcblxuICBmcm9tSlNPTihvYmplY3Q6IGFueSk6IFVwZGF0ZVNvdXJjZU1hcFJlcXVlc3Qge1xuICAgIHJldHVybiB7XG4gICAgICBhcHBsaWNhdGlvbjogaXNTZXQob2JqZWN0LmFwcGxpY2F0aW9uKSA/IFN0cmluZyhvYmplY3QuYXBwbGljYXRpb24pIDogXCJcIixcbiAgICAgIHJlbGVhc2VJZDogaXNTZXQob2JqZWN0LnJlbGVhc2VJZCkgPyBTdHJpbmcob2JqZWN0LnJlbGVhc2VJZCkgOiBcIlwiLFxuICAgICAgY29tbWl0SGFzaDogaXNTZXQob2JqZWN0LmNvbW1pdEhhc2gpID8gU3RyaW5nKG9iamVjdC5jb21taXRIYXNoKSA6IHVuZGVmaW5lZCxcbiAgICAgIHJlcG9OYW1lOiBpc1NldChvYmplY3QucmVwb05hbWUpID8gU3RyaW5nKG9iamVjdC5yZXBvTmFtZSkgOiB1bmRlZmluZWQsXG4gICAgICB1c2VyOiBpc1NldChvYmplY3QudXNlcikgPyBTdHJpbmcob2JqZWN0LnVzZXIpIDogdW5kZWZpbmVkLFxuICAgICAgZmlsZXM6IEFycmF5LmlzQXJyYXkob2JqZWN0Py5maWxlcykgPyBvYmplY3QuZmlsZXMubWFwKChlOiBhbnkpID0+IEZpbGVNZXRhZGF0YS5mcm9tSlNPTihlKSkgOiBbXSxcbiAgICB9O1xuICB9LFxuXG4gIHRvSlNPTihtZXNzYWdlOiBVcGRhdGVTb3VyY2VNYXBSZXF1ZXN0KTogdW5rbm93biB7XG4gICAgY29uc3Qgb2JqOiBhbnkgPSB7fTtcbiAgICBtZXNzYWdlLmFwcGxpY2F0aW9uICE9PSB1bmRlZmluZWQgJiYgKG9iai5hcHBsaWNhdGlvbiA9IG1lc3NhZ2UuYXBwbGljYXRpb24pO1xuICAgIG1lc3NhZ2UucmVsZWFzZUlkICE9PSB1bmRlZmluZWQgJiYgKG9iai5yZWxlYXNlSWQgPSBtZXNzYWdlLnJlbGVhc2VJZCk7XG4gICAgbWVzc2FnZS5jb21taXRIYXNoICE9PSB1bmRlZmluZWQgJiYgKG9iai5jb21taXRIYXNoID0gbWVzc2FnZS5jb21taXRIYXNoKTtcbiAgICBtZXNzYWdlLnJlcG9OYW1lICE9PSB1bmRlZmluZWQgJiYgKG9iai5yZXBvTmFtZSA9IG1lc3NhZ2UucmVwb05hbWUpO1xuICAgIG1lc3NhZ2UudXNlciAhPT0gdW5kZWZpbmVkICYmIChvYmoudXNlciA9IG1lc3NhZ2UudXNlcik7XG4gICAgaWYgKG1lc3NhZ2UuZmlsZXMpIHtcbiAgICAgIG9iai5maWxlcyA9IG1lc3NhZ2UuZmlsZXMubWFwKChlKSA9PiBlID8gRmlsZU1ldGFkYXRhLnRvSlNPTihlKSA6IHVuZGVmaW5lZCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG9iai5maWxlcyA9IFtdO1xuICAgIH1cbiAgICByZXR1cm4gb2JqO1xuICB9LFxuXG4gIGNyZWF0ZShiYXNlPzogRGVlcFBhcnRpYWw8VXBkYXRlU291cmNlTWFwUmVxdWVzdD4pOiBVcGRhdGVTb3VyY2VNYXBSZXF1ZXN0IHtcbiAgICByZXR1cm4gVXBkYXRlU291cmNlTWFwUmVxdWVzdC5mcm9tUGFydGlhbChiYXNlID8/IHt9KTtcbiAgfSxcblxuICBmcm9tUGFydGlhbChvYmplY3Q6IERlZXBQYXJ0aWFsPFVwZGF0ZVNvdXJjZU1hcFJlcXVlc3Q+KTogVXBkYXRlU291cmNlTWFwUmVxdWVzdCB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VVcGRhdGVTb3VyY2VNYXBSZXF1ZXN0KCk7XG4gICAgbWVzc2FnZS5hcHBsaWNhdGlvbiA9IG9iamVjdC5hcHBsaWNhdGlvbiA/PyBcIlwiO1xuICAgIG1lc3NhZ2UucmVsZWFzZUlkID0gb2JqZWN0LnJlbGVhc2VJZCA/PyBcIlwiO1xuICAgIG1lc3NhZ2UuY29tbWl0SGFzaCA9IG9iamVjdC5jb21taXRIYXNoID8/IHVuZGVmaW5lZDtcbiAgICBtZXNzYWdlLnJlcG9OYW1lID0gb2JqZWN0LnJlcG9OYW1lID8/IHVuZGVmaW5lZDtcbiAgICBtZXNzYWdlLnVzZXIgPSBvYmplY3QudXNlciA/PyB1bmRlZmluZWQ7XG4gICAgbWVzc2FnZS5maWxlcyA9IG9iamVjdC5maWxlcz8ubWFwKChlKSA9PiBGaWxlTWV0YWRhdGEuZnJvbVBhcnRpYWwoZSkpIHx8IFtdO1xuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxufTtcblxuZnVuY3Rpb24gY3JlYXRlQmFzZURlbGV0ZVNvdXJjZU1hcFJlcXVlc3QoKTogRGVsZXRlU291cmNlTWFwUmVxdWVzdCB7XG4gIHJldHVybiB7IGFwcGxpY2F0aW9uOiBcIlwiLCByZWxlYXNlSWQ6IFwiXCIgfTtcbn1cblxuZXhwb3J0IGNvbnN0IERlbGV0ZVNvdXJjZU1hcFJlcXVlc3QgPSB7XG4gIGVuY29kZShtZXNzYWdlOiBEZWxldGVTb3VyY2VNYXBSZXF1ZXN0LCB3cml0ZXI6IF9tMC5Xcml0ZXIgPSBfbTAuV3JpdGVyLmNyZWF0ZSgpKTogX20wLldyaXRlciB7XG4gICAgaWYgKG1lc3NhZ2UuYXBwbGljYXRpb24gIT09IFwiXCIpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMTApLnN0cmluZyhtZXNzYWdlLmFwcGxpY2F0aW9uKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UucmVsZWFzZUlkICE9PSBcIlwiKSB7XG4gICAgICB3cml0ZXIudWludDMyKDE4KS5zdHJpbmcobWVzc2FnZS5yZWxlYXNlSWQpO1xuICAgIH1cbiAgICByZXR1cm4gd3JpdGVyO1xuICB9LFxuXG4gIGRlY29kZShpbnB1dDogX20wLlJlYWRlciB8IFVpbnQ4QXJyYXksIGxlbmd0aD86IG51bWJlcik6IERlbGV0ZVNvdXJjZU1hcFJlcXVlc3Qge1xuICAgIGNvbnN0IHJlYWRlciA9IGlucHV0IGluc3RhbmNlb2YgX20wLlJlYWRlciA/IGlucHV0IDogX20wLlJlYWRlci5jcmVhdGUoaW5wdXQpO1xuICAgIGxldCBlbmQgPSBsZW5ndGggPT09IHVuZGVmaW5lZCA/IHJlYWRlci5sZW4gOiByZWFkZXIucG9zICsgbGVuZ3RoO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlRGVsZXRlU291cmNlTWFwUmVxdWVzdCgpO1xuICAgIHdoaWxlIChyZWFkZXIucG9zIDwgZW5kKSB7XG4gICAgICBjb25zdCB0YWcgPSByZWFkZXIudWludDMyKCk7XG4gICAgICBzd2l0Y2ggKHRhZyA+Pj4gMykge1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMTApIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UuYXBwbGljYXRpb24gPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICBpZiAodGFnICE9PSAxOCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5yZWxlYXNlSWQgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoKHRhZyAmIDcpID09PSA0IHx8IHRhZyA9PT0gMCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHJlYWRlci5za2lwVHlwZSh0YWcgJiA3KTtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG5cbiAgZnJvbUpTT04ob2JqZWN0OiBhbnkpOiBEZWxldGVTb3VyY2VNYXBSZXF1ZXN0IHtcbiAgICByZXR1cm4ge1xuICAgICAgYXBwbGljYXRpb246IGlzU2V0KG9iamVjdC5hcHBsaWNhdGlvbikgPyBTdHJpbmcob2JqZWN0LmFwcGxpY2F0aW9uKSA6IFwiXCIsXG4gICAgICByZWxlYXNlSWQ6IGlzU2V0KG9iamVjdC5yZWxlYXNlSWQpID8gU3RyaW5nKG9iamVjdC5yZWxlYXNlSWQpIDogXCJcIixcbiAgICB9O1xuICB9LFxuXG4gIHRvSlNPTihtZXNzYWdlOiBEZWxldGVTb3VyY2VNYXBSZXF1ZXN0KTogdW5rbm93biB7XG4gICAgY29uc3Qgb2JqOiBhbnkgPSB7fTtcbiAgICBtZXNzYWdlLmFwcGxpY2F0aW9uICE9PSB1bmRlZmluZWQgJiYgKG9iai5hcHBsaWNhdGlvbiA9IG1lc3NhZ2UuYXBwbGljYXRpb24pO1xuICAgIG1lc3NhZ2UucmVsZWFzZUlkICE9PSB1bmRlZmluZWQgJiYgKG9iai5yZWxlYXNlSWQgPSBtZXNzYWdlLnJlbGVhc2VJZCk7XG4gICAgcmV0dXJuIG9iajtcbiAgfSxcblxuICBjcmVhdGUoYmFzZT86IERlZXBQYXJ0aWFsPERlbGV0ZVNvdXJjZU1hcFJlcXVlc3Q+KTogRGVsZXRlU291cmNlTWFwUmVxdWVzdCB7XG4gICAgcmV0dXJuIERlbGV0ZVNvdXJjZU1hcFJlcXVlc3QuZnJvbVBhcnRpYWwoYmFzZSA/PyB7fSk7XG4gIH0sXG5cbiAgZnJvbVBhcnRpYWwob2JqZWN0OiBEZWVwUGFydGlhbDxEZWxldGVTb3VyY2VNYXBSZXF1ZXN0Pik6IERlbGV0ZVNvdXJjZU1hcFJlcXVlc3Qge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlRGVsZXRlU291cmNlTWFwUmVxdWVzdCgpO1xuICAgIG1lc3NhZ2UuYXBwbGljYXRpb24gPSBvYmplY3QuYXBwbGljYXRpb24gPz8gXCJcIjtcbiAgICBtZXNzYWdlLnJlbGVhc2VJZCA9IG9iamVjdC5yZWxlYXNlSWQgPz8gXCJcIjtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSxcbn07XG5cbmZ1bmN0aW9uIGNyZWF0ZUJhc2VVcGxvYWRTb3VyY2VNYXBzUmVzcG9uc2UoKTogVXBsb2FkU291cmNlTWFwc1Jlc3BvbnNlIHtcbiAgcmV0dXJuIHt9O1xufVxuXG5leHBvcnQgY29uc3QgVXBsb2FkU291cmNlTWFwc1Jlc3BvbnNlID0ge1xuICBlbmNvZGUoXzogVXBsb2FkU291cmNlTWFwc1Jlc3BvbnNlLCB3cml0ZXI6IF9tMC5Xcml0ZXIgPSBfbTAuV3JpdGVyLmNyZWF0ZSgpKTogX20wLldyaXRlciB7XG4gICAgcmV0dXJuIHdyaXRlcjtcbiAgfSxcblxuICBkZWNvZGUoaW5wdXQ6IF9tMC5SZWFkZXIgfCBVaW50OEFycmF5LCBsZW5ndGg/OiBudW1iZXIpOiBVcGxvYWRTb3VyY2VNYXBzUmVzcG9uc2Uge1xuICAgIGNvbnN0IHJlYWRlciA9IGlucHV0IGluc3RhbmNlb2YgX20wLlJlYWRlciA/IGlucHV0IDogX20wLlJlYWRlci5jcmVhdGUoaW5wdXQpO1xuICAgIGxldCBlbmQgPSBsZW5ndGggPT09IHVuZGVmaW5lZCA/IHJlYWRlci5sZW4gOiByZWFkZXIucG9zICsgbGVuZ3RoO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlVXBsb2FkU291cmNlTWFwc1Jlc3BvbnNlKCk7XG4gICAgd2hpbGUgKHJlYWRlci5wb3MgPCBlbmQpIHtcbiAgICAgIGNvbnN0IHRhZyA9IHJlYWRlci51aW50MzIoKTtcbiAgICAgIHN3aXRjaCAodGFnID4+PiAzKSB7XG4gICAgICB9XG4gICAgICBpZiAoKHRhZyAmIDcpID09PSA0IHx8IHRhZyA9PT0gMCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHJlYWRlci5za2lwVHlwZSh0YWcgJiA3KTtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG5cbiAgZnJvbUpTT04oXzogYW55KTogVXBsb2FkU291cmNlTWFwc1Jlc3BvbnNlIHtcbiAgICByZXR1cm4ge307XG4gIH0sXG5cbiAgdG9KU09OKF86IFVwbG9hZFNvdXJjZU1hcHNSZXNwb25zZSk6IHVua25vd24ge1xuICAgIGNvbnN0IG9iajogYW55ID0ge307XG4gICAgcmV0dXJuIG9iajtcbiAgfSxcblxuICBjcmVhdGUoYmFzZT86IERlZXBQYXJ0aWFsPFVwbG9hZFNvdXJjZU1hcHNSZXNwb25zZT4pOiBVcGxvYWRTb3VyY2VNYXBzUmVzcG9uc2Uge1xuICAgIHJldHVybiBVcGxvYWRTb3VyY2VNYXBzUmVzcG9uc2UuZnJvbVBhcnRpYWwoYmFzZSA/PyB7fSk7XG4gIH0sXG5cbiAgZnJvbVBhcnRpYWwoXzogRGVlcFBhcnRpYWw8VXBsb2FkU291cmNlTWFwc1Jlc3BvbnNlPik6IFVwbG9hZFNvdXJjZU1hcHNSZXNwb25zZSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VVcGxvYWRTb3VyY2VNYXBzUmVzcG9uc2UoKTtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSxcbn07XG5cbmZ1bmN0aW9uIGNyZWF0ZUJhc2VVcGRhdGVTb3VyY2VNYXBSZXNwb25zZSgpOiBVcGRhdGVTb3VyY2VNYXBSZXNwb25zZSB7XG4gIHJldHVybiB7fTtcbn1cblxuZXhwb3J0IGNvbnN0IFVwZGF0ZVNvdXJjZU1hcFJlc3BvbnNlID0ge1xuICBlbmNvZGUoXzogVXBkYXRlU291cmNlTWFwUmVzcG9uc2UsIHdyaXRlcjogX20wLldyaXRlciA9IF9tMC5Xcml0ZXIuY3JlYXRlKCkpOiBfbTAuV3JpdGVyIHtcbiAgICByZXR1cm4gd3JpdGVyO1xuICB9LFxuXG4gIGRlY29kZShpbnB1dDogX20wLlJlYWRlciB8IFVpbnQ4QXJyYXksIGxlbmd0aD86IG51bWJlcik6IFVwZGF0ZVNvdXJjZU1hcFJlc3BvbnNlIHtcbiAgICBjb25zdCByZWFkZXIgPSBpbnB1dCBpbnN0YW5jZW9mIF9tMC5SZWFkZXIgPyBpbnB1dCA6IF9tMC5SZWFkZXIuY3JlYXRlKGlucHV0KTtcbiAgICBsZXQgZW5kID0gbGVuZ3RoID09PSB1bmRlZmluZWQgPyByZWFkZXIubGVuIDogcmVhZGVyLnBvcyArIGxlbmd0aDtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZVVwZGF0ZVNvdXJjZU1hcFJlc3BvbnNlKCk7XG4gICAgd2hpbGUgKHJlYWRlci5wb3MgPCBlbmQpIHtcbiAgICAgIGNvbnN0IHRhZyA9IHJlYWRlci51aW50MzIoKTtcbiAgICAgIHN3aXRjaCAodGFnID4+PiAzKSB7XG4gICAgICB9XG4gICAgICBpZiAoKHRhZyAmIDcpID09PSA0IHx8IHRhZyA9PT0gMCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHJlYWRlci5za2lwVHlwZSh0YWcgJiA3KTtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG5cbiAgZnJvbUpTT04oXzogYW55KTogVXBkYXRlU291cmNlTWFwUmVzcG9uc2Uge1xuICAgIHJldHVybiB7fTtcbiAgfSxcblxuICB0b0pTT04oXzogVXBkYXRlU291cmNlTWFwUmVzcG9uc2UpOiB1bmtub3duIHtcbiAgICBjb25zdCBvYmo6IGFueSA9IHt9O1xuICAgIHJldHVybiBvYmo7XG4gIH0sXG5cbiAgY3JlYXRlKGJhc2U/OiBEZWVwUGFydGlhbDxVcGRhdGVTb3VyY2VNYXBSZXNwb25zZT4pOiBVcGRhdGVTb3VyY2VNYXBSZXNwb25zZSB7XG4gICAgcmV0dXJuIFVwZGF0ZVNvdXJjZU1hcFJlc3BvbnNlLmZyb21QYXJ0aWFsKGJhc2UgPz8ge30pO1xuICB9LFxuXG4gIGZyb21QYXJ0aWFsKF86IERlZXBQYXJ0aWFsPFVwZGF0ZVNvdXJjZU1hcFJlc3BvbnNlPik6IFVwZGF0ZVNvdXJjZU1hcFJlc3BvbnNlIHtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZVVwZGF0ZVNvdXJjZU1hcFJlc3BvbnNlKCk7XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG59O1xuXG5mdW5jdGlvbiBjcmVhdGVCYXNlRGVsZXRlU291cmNlTWFwUmVzcG9uc2UoKTogRGVsZXRlU291cmNlTWFwUmVzcG9uc2Uge1xuICByZXR1cm4ge307XG59XG5cbmV4cG9ydCBjb25zdCBEZWxldGVTb3VyY2VNYXBSZXNwb25zZSA9IHtcbiAgZW5jb2RlKF86IERlbGV0ZVNvdXJjZU1hcFJlc3BvbnNlLCB3cml0ZXI6IF9tMC5Xcml0ZXIgPSBfbTAuV3JpdGVyLmNyZWF0ZSgpKTogX20wLldyaXRlciB7XG4gICAgcmV0dXJuIHdyaXRlcjtcbiAgfSxcblxuICBkZWNvZGUoaW5wdXQ6IF9tMC5SZWFkZXIgfCBVaW50OEFycmF5LCBsZW5ndGg/OiBudW1iZXIpOiBEZWxldGVTb3VyY2VNYXBSZXNwb25zZSB7XG4gICAgY29uc3QgcmVhZGVyID0gaW5wdXQgaW5zdGFuY2VvZiBfbTAuUmVhZGVyID8gaW5wdXQgOiBfbTAuUmVhZGVyLmNyZWF0ZShpbnB1dCk7XG4gICAgbGV0IGVuZCA9IGxlbmd0aCA9PT0gdW5kZWZpbmVkID8gcmVhZGVyLmxlbiA6IHJlYWRlci5wb3MgKyBsZW5ndGg7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VEZWxldGVTb3VyY2VNYXBSZXNwb25zZSgpO1xuICAgIHdoaWxlIChyZWFkZXIucG9zIDwgZW5kKSB7XG4gICAgICBjb25zdCB0YWcgPSByZWFkZXIudWludDMyKCk7XG4gICAgICBzd2l0Y2ggKHRhZyA+Pj4gMykge1xuICAgICAgfVxuICAgICAgaWYgKCh0YWcgJiA3KSA9PT0gNCB8fCB0YWcgPT09IDApIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICByZWFkZXIuc2tpcFR5cGUodGFnICYgNyk7XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxuXG4gIGZyb21KU09OKF86IGFueSk6IERlbGV0ZVNvdXJjZU1hcFJlc3BvbnNlIHtcbiAgICByZXR1cm4ge307XG4gIH0sXG5cbiAgdG9KU09OKF86IERlbGV0ZVNvdXJjZU1hcFJlc3BvbnNlKTogdW5rbm93biB7XG4gICAgY29uc3Qgb2JqOiBhbnkgPSB7fTtcbiAgICByZXR1cm4gb2JqO1xuICB9LFxuXG4gIGNyZWF0ZShiYXNlPzogRGVlcFBhcnRpYWw8RGVsZXRlU291cmNlTWFwUmVzcG9uc2U+KTogRGVsZXRlU291cmNlTWFwUmVzcG9uc2Uge1xuICAgIHJldHVybiBEZWxldGVTb3VyY2VNYXBSZXNwb25zZS5mcm9tUGFydGlhbChiYXNlID8/IHt9KTtcbiAgfSxcblxuICBmcm9tUGFydGlhbChfOiBEZWVwUGFydGlhbDxEZWxldGVTb3VyY2VNYXBSZXNwb25zZT4pOiBEZWxldGVTb3VyY2VNYXBSZXNwb25zZSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VEZWxldGVTb3VyY2VNYXBSZXNwb25zZSgpO1xuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxufTtcblxuZXhwb3J0IHR5cGUgUnVtU291cmNlTWFwU2VydmljZURlZmluaXRpb24gPSB0eXBlb2YgUnVtU291cmNlTWFwU2VydmljZURlZmluaXRpb247XG5leHBvcnQgY29uc3QgUnVtU291cmNlTWFwU2VydmljZURlZmluaXRpb24gPSB7XG4gIG5hbWU6IFwiUnVtU291cmNlTWFwU2VydmljZVwiLFxuICBmdWxsTmFtZTogXCJjb20uY29yYWxvZ2l4LnJ1bS52Mi5SdW1Tb3VyY2VNYXBTZXJ2aWNlXCIsXG4gIG1ldGhvZHM6IHtcbiAgICB1cGxvYWRTb3VyY2VNYXBzOiB7XG4gICAgICBuYW1lOiBcIlVwbG9hZFNvdXJjZU1hcHNcIixcbiAgICAgIHJlcXVlc3RUeXBlOiBVcGxvYWRTb3VyY2VNYXBzUmVxdWVzdCxcbiAgICAgIHJlcXVlc3RTdHJlYW06IGZhbHNlLFxuICAgICAgcmVzcG9uc2VUeXBlOiBVcGxvYWRTb3VyY2VNYXBzUmVzcG9uc2UsXG4gICAgICByZXNwb25zZVN0cmVhbTogZmFsc2UsXG4gICAgICBvcHRpb25zOiB7fSxcbiAgICB9LFxuICAgIHVwZGF0ZVNvdXJjZU1hcDoge1xuICAgICAgbmFtZTogXCJVcGRhdGVTb3VyY2VNYXBcIixcbiAgICAgIHJlcXVlc3RUeXBlOiBVcGRhdGVTb3VyY2VNYXBSZXF1ZXN0LFxuICAgICAgcmVxdWVzdFN0cmVhbTogZmFsc2UsXG4gICAgICByZXNwb25zZVR5cGU6IFVwZGF0ZVNvdXJjZU1hcFJlc3BvbnNlLFxuICAgICAgcmVzcG9uc2VTdHJlYW06IGZhbHNlLFxuICAgICAgb3B0aW9uczoge30sXG4gICAgfSxcbiAgICBkZWxldGVTb3VyY2VNYXA6IHtcbiAgICAgIG5hbWU6IFwiRGVsZXRlU291cmNlTWFwXCIsXG4gICAgICByZXF1ZXN0VHlwZTogRGVsZXRlU291cmNlTWFwUmVxdWVzdCxcbiAgICAgIHJlcXVlc3RTdHJlYW06IGZhbHNlLFxuICAgICAgcmVzcG9uc2VUeXBlOiBEZWxldGVTb3VyY2VNYXBSZXNwb25zZSxcbiAgICAgIHJlc3BvbnNlU3RyZWFtOiBmYWxzZSxcbiAgICAgIG9wdGlvbnM6IHt9LFxuICAgIH0sXG4gIH0sXG59IGFzIGNvbnN0O1xuXG50eXBlIEJ1aWx0aW4gPSBEYXRlIHwgRnVuY3Rpb24gfCBVaW50OEFycmF5IHwgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuZXhwb3J0IHR5cGUgRGVlcFBhcnRpYWw8VD4gPSBUIGV4dGVuZHMgQnVpbHRpbiA/IFRcbiAgOiBUIGV4dGVuZHMgQXJyYXk8aW5mZXIgVT4gPyBBcnJheTxEZWVwUGFydGlhbDxVPj4gOiBUIGV4dGVuZHMgUmVhZG9ubHlBcnJheTxpbmZlciBVPiA/IFJlYWRvbmx5QXJyYXk8RGVlcFBhcnRpYWw8VT4+XG4gIDogVCBleHRlbmRzIHsgJGNhc2U6IHN0cmluZyB9ID8geyBbSyBpbiBrZXlvZiBPbWl0PFQsIFwiJGNhc2VcIj5dPzogRGVlcFBhcnRpYWw8VFtLXT4gfSAmIHsgJGNhc2U6IFRbXCIkY2FzZVwiXSB9XG4gIDogVCBleHRlbmRzIHt9ID8geyBbSyBpbiBrZXlvZiBUXT86IERlZXBQYXJ0aWFsPFRbS10+IH1cbiAgOiBQYXJ0aWFsPFQ+O1xuXG5mdW5jdGlvbiBpc1NldCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkO1xufVxuIl19
|
|
483
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVtX3NvdXJjZV9tYXBfc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb3RvLW1vZGVscy9jb20vY29yYWxvZ2l4L3J1bS92Mi9ydW1fc291cmNlX21hcF9zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLG9CQUFvQjtBQUNwQixpRUFBcUM7QUFDckMsaUNBQXNDO0FBRXpCLFFBQUEsZUFBZSxHQUFHLHNCQUFzQixDQUFDO0FBcUN0RCxTQUFTLGlDQUFpQztJQUN4QyxPQUFPLEVBQUUsV0FBVyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsRUFBRSxFQUFFLFVBQVUsRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsQ0FBQztBQUNwSCxDQUFDO0FBRVksUUFBQSx1QkFBdUIsR0FBRztJQUNyQyxNQUFNLENBQUMsT0FBZ0MsRUFBRSxTQUFxQixpQkFBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDL0UsSUFBSSxPQUFPLENBQUMsV0FBVyxLQUFLLEVBQUUsRUFBRTtZQUM5QixNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDL0M7UUFDRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLEtBQUssRUFBRSxFQUFFO1lBQzVCLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUM3QztRQUNELElBQUksT0FBTyxDQUFDLFVBQVUsS0FBSyxTQUFTLEVBQUU7WUFDcEMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQzlDO1FBQ0QsSUFBSSxPQUFPLENBQUMs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QUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3hFLFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ2xFLFVBQVUsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO1lBQzVFLFFBQVEsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO1lBQ3RFLElBQUksRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTO1lBQzFELEtBQUssRUFBRSxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLG1CQUFZLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDakcsT0FBTyxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDbkUsUUFBUSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7U0FDdkUsQ0FBQztJ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QUUsQ0FBQztRQUNwRCxPQUFPLE9BQU8sQ0FBQztJQUNqQixDQUFDO0NBQ0YsQ0FBQztBQUdXLFFBQUEsNkJBQTZCLEdBQUc7SUFDM0MsSUFBSSxFQUFFLHFCQUFxQjtJQUMzQixRQUFRLEVBQUUsMENBQTBDO0lBQ3BELE9BQU8sRUFBRTtRQUNQLGdCQUFnQixFQUFFO1lBQ2hCLElBQUksRUFBRSxrQkFBa0I7WUFDeEIsV0FBVyxFQUFFLCtCQUF1QjtZQUNwQyxhQUFhLEVBQUUsS0FBSztZQUNwQixZQUFZLEVBQUUsZ0NBQXdCO1lBQ3RDLGNBQWMsRUFBRSxLQUFLO1lBQ3JCLE9BQU8sRUFBRSxFQUFFO1NBQ1o7UUFDRCxlQUFlLEVBQUU7WUFDZixJQUFJLEVBQUUsaUJBQWlCO1lBQ3ZCLFdBQVcsRUFBRSw4QkFBc0I7WUFDbkMsYUFBYSxFQUFFLEtBQUs7WUFDcEIsWUFBWSxFQUFFLCtCQUF1QjtZQUNyQyxjQUFjLEVBQUUsS0FBSztZQUNyQixPQUFPLEVBQUUsRUFBRTtTQUNaO1FBQ0QsZUFBZSxFQUFFO1lBQ2YsSUFBSSxFQUFFLGlCQUFpQjtZQUN2QixXQUFXLEVBQUUsOEJBQXNCO1lBQ25DLGFBQWEsRUFBRSxLQUFLO1lBQ3BCLFlBQVksRUFBRSwrQkFBdUI7WUFDckMsY0FBYyxFQUFFLEtBQUs7WUFDckIsT0FBTyxFQUFFLEVBQUU7U0FDWjtLQUNGO0NBQ08sQ0FBQztBQVVYLFNBQVMsS0FBSyxDQUFDLEtBQVU7SUFDdkIsT0FBTyxLQUFLLEtBQUssSUFBSSxJQUFJLEtBQUssS0FBSyxTQUFTLENBQUM7QUFDL0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlICovXG5pbXBvcnQgX20wIGZyb20gXCJwcm90b2J1ZmpzL21pbmltYWxcIjtcbmltcG9ydCB7IEZpbGVNZXRhZGF0YSB9IGZyb20gXCIuL2ZpbGVcIjtcblxuZXhwb3J0IGNvbnN0IHByb3RvYnVmUGFja2FnZSA9IFwiY29tLmNvcmFsb2dpeC5ydW0udjJcIjtcblxuZXhwb3J0IGludGVyZmFjZSBVcGxvYWRTb3VyY2VNYXBzUmVxdWVzdCB7XG4gIGFwcGxpY2F0aW9uOiBzdHJpbmc7XG4gIHJlbGVhc2VJZDogc3RyaW5nO1xuICBjb21taXRIYXNoPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICByZXBvTmFtZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgdXNlcj86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgZmlsZXM6IEZpbGVNZXRhZGF0YVtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVNvdXJjZU1hcFJlcXVlc3Qge1xuICBhcHBsaWNhdGlvbjogc3RyaW5nO1xuICByZWxlYXNlSWQ6IHN0cmluZztcbiAgY29tbWl0SGFzaD86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcmVwb05hbWU/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIHVzZXI/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGZpbGVzOiBGaWxlTWV0YWRhdGFbXTtcbiAgLyoqIEBkZXByZWNhdGVkICovXG4gIHJlcGxhY2U/OiBzdHJpbmcgfCB1bmRlZmluZWQ7XG4gIGdlbmVyYXRlPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlbGV0ZVNvdXJjZU1hcFJlcXVlc3Qge1xuICBhcHBsaWNhdGlvbjogc3RyaW5nO1xuICByZWxlYXNlSWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVcGxvYWRTb3VyY2VNYXBzUmVzcG9uc2Uge1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVwZGF0ZVNvdXJjZU1hcFJlc3BvbnNlIHtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEZWxldGVTb3VyY2VNYXBSZXNwb25zZSB7XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUJhc2VVcGxvYWRTb3VyY2VNYXBzUmVxdWVzdCgpOiBVcGxvYWRTb3VyY2VNYXBzUmVxdWVzdCB7XG4gIHJldHVybiB7IGFwcGxpY2F0aW9uOiBcIlwiLCByZWxlYXNlSWQ6IFwiXCIsIGNvbW1pdEhhc2g6IHVuZGVmaW5lZCwgcmVwb05hbWU6IHVuZGVmaW5lZCwgdXNlcjogdW5kZWZpbmVkLCBmaWxlczogW10gfTtcbn1cblxuZXhwb3J0IGNvbnN0IFVwbG9hZFNvdXJjZU1hcHNSZXF1ZXN0ID0ge1xuICBlbmNvZGUobWVzc2FnZTogVXBsb2FkU291cmNlTWFwc1JlcXVlc3QsIHdyaXRlcjogX20wLldyaXRlciA9IF9tMC5Xcml0ZXIuY3JlYXRlKCkpOiBfbTAuV3JpdGVyIHtcbiAgICBpZiAobWVzc2FnZS5hcHBsaWNhdGlvbiAhPT0gXCJcIikge1xuICAgICAgd3JpdGVyLnVpbnQzMigxMCkuc3RyaW5nKG1lc3NhZ2UuYXBwbGljYXRpb24pO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5yZWxlYXNlSWQgIT09IFwiXCIpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMTgpLnN0cmluZyhtZXNzYWdlLnJlbGVhc2VJZCk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLmNvbW1pdEhhc2ggIT09IHVuZGVmaW5lZCkge1xuICAgICAgd3JpdGVyLnVpbnQzMigyNikuc3RyaW5nKG1lc3NhZ2UuY29tbWl0SGFzaCk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnJlcG9OYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMzQpLnN0cmluZyhtZXNzYWdlLnJlcG9OYW1lKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UudXNlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB3cml0ZXIudWludDMyKDQyKS5zdHJpbmcobWVzc2FnZS51c2VyKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCB2IG9mIG1lc3NhZ2UuZmlsZXMpIHtcbiAgICAgIEZpbGVNZXRhZGF0YS5lbmNvZGUodiEsIHdyaXRlci51aW50MzIoNTApLmZvcmsoKSkubGRlbGltKCk7XG4gICAgfVxuICAgIHJldHVybiB3cml0ZXI7XG4gIH0sXG5cbiAgZGVjb2RlKGlucHV0OiBfbTAuUmVhZGVyIHwgVWludDhBcnJheSwgbGVuZ3RoPzogbnVtYmVyKTogVXBsb2FkU291cmNlTWFwc1JlcXVlc3Qge1xuICAgIGNvbnN0IHJlYWRlciA9IGlucHV0IGluc3RhbmNlb2YgX20wLlJlYWRlciA/IGlucHV0IDogX20wLlJlYWRlci5jcmVhdGUoaW5wdXQpO1xuICAgIGxldCBlbmQgPSBsZW5ndGggPT09IHVuZGVmaW5lZCA/IHJlYWRlci5sZW4gOiByZWFkZXIucG9zICsgbGVuZ3RoO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlVXBsb2FkU291cmNlTWFwc1JlcXVlc3QoKTtcbiAgICB3aGlsZSAocmVhZGVyLnBvcyA8IGVuZCkge1xuICAgICAgY29uc3QgdGFnID0gcmVhZGVyLnVpbnQzMigpO1xuICAgICAgc3dpdGNoICh0YWcgPj4+IDMpIHtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIGlmICh0YWcgIT09IDEwKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLmFwcGxpY2F0aW9uID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMTgpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UucmVsZWFzZUlkID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMjYpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UuY29tbWl0SGFzaCA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSA0OlxuICAgICAgICAgIGlmICh0YWcgIT09IDM0KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLnJlcG9OYW1lID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gNDIpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UudXNlciA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSA2OlxuICAgICAgICAgIGlmICh0YWcgIT09IDUwKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLmZpbGVzLnB1c2goRmlsZU1ldGFkYXRhLmRlY29kZShyZWFkZXIsIHJlYWRlci51aW50MzIoKSkpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKCh0YWcgJiA3KSA9PT0gNCB8fCB0YWcgPT09IDApIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICByZWFkZXIuc2tpcFR5cGUodGFnICYgNyk7XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxuXG4gIGZyb21KU09OKG9iamVjdDogYW55KTogVXBsb2FkU291cmNlTWFwc1JlcXVlc3Qge1xuICAgIHJldHVybiB7XG4gICAgICBhcHBsaWNhdGlvbjogaXNTZXQob2JqZWN0LmFwcGxpY2F0aW9uKSA/IFN0cmluZyhvYmplY3QuYXBwbGljYXRpb24pIDogXCJcIixcbiAgICAgIHJlbGVhc2VJZDogaXNTZXQob2JqZWN0LnJlbGVhc2VJZCkgPyBTdHJpbmcob2JqZWN0LnJlbGVhc2VJZCkgOiBcIlwiLFxuICAgICAgY29tbWl0SGFzaDogaXNTZXQob2JqZWN0LmNvbW1pdEhhc2gpID8gU3RyaW5nKG9iamVjdC5jb21taXRIYXNoKSA6IHVuZGVmaW5lZCxcbiAgICAgIHJlcG9OYW1lOiBpc1NldChvYmplY3QucmVwb05hbWUpID8gU3RyaW5nKG9iamVjdC5yZXBvTmFtZSkgOiB1bmRlZmluZWQsXG4gICAgICB1c2VyOiBpc1NldChvYmplY3QudXNlcikgPyBTdHJpbmcob2JqZWN0LnVzZXIpIDogdW5kZWZpbmVkLFxuICAgICAgZmlsZXM6IEFycmF5LmlzQXJyYXkob2JqZWN0Py5maWxlcykgPyBvYmplY3QuZmlsZXMubWFwKChlOiBhbnkpID0+IEZpbGVNZXRhZGF0YS5mcm9tSlNPTihlKSkgOiBbXSxcbiAgICB9O1xuICB9LFxuXG4gIHRvSlNPTihtZXNzYWdlOiBVcGxvYWRTb3VyY2VNYXBzUmVxdWVzdCk6IHVua25vd24ge1xuICAgIGNvbnN0IG9iajogYW55ID0ge307XG4gICAgbWVzc2FnZS5hcHBsaWNhdGlvbiAhPT0gdW5kZWZpbmVkICYmIChvYmouYXBwbGljYXRpb24gPSBtZXNzYWdlLmFwcGxpY2F0aW9uKTtcbiAgICBtZXNzYWdlLnJlbGVhc2VJZCAhPT0gdW5kZWZpbmVkICYmIChvYmoucmVsZWFzZUlkID0gbWVzc2FnZS5yZWxlYXNlSWQpO1xuICAgIG1lc3NhZ2UuY29tbWl0SGFzaCAhPT0gdW5kZWZpbmVkICYmIChvYmouY29tbWl0SGFzaCA9IG1lc3NhZ2UuY29tbWl0SGFzaCk7XG4gICAgbWVzc2FnZS5yZXBvTmFtZSAhPT0gdW5kZWZpbmVkICYmIChvYmoucmVwb05hbWUgPSBtZXNzYWdlLnJlcG9OYW1lKTtcbiAgICBtZXNzYWdlLnVzZXIgIT09IHVuZGVmaW5lZCAmJiAob2JqLnVzZXIgPSBtZXNzYWdlLnVzZXIpO1xuICAgIGlmIChtZXNzYWdlLmZpbGVzKSB7XG4gICAgICBvYmouZmlsZXMgPSBtZXNzYWdlLmZpbGVzLm1hcCgoZSkgPT4gZSA/IEZpbGVNZXRhZGF0YS50b0pTT04oZSkgOiB1bmRlZmluZWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBvYmouZmlsZXMgPSBbXTtcbiAgICB9XG4gICAgcmV0dXJuIG9iajtcbiAgfSxcblxuICBjcmVhdGUoYmFzZT86IERlZXBQYXJ0aWFsPFVwbG9hZFNvdXJjZU1hcHNSZXF1ZXN0Pik6IFVwbG9hZFNvdXJjZU1hcHNSZXF1ZXN0IHtcbiAgICByZXR1cm4gVXBsb2FkU291cmNlTWFwc1JlcXVlc3QuZnJvbVBhcnRpYWwoYmFzZSA/PyB7fSk7XG4gIH0sXG5cbiAgZnJvbVBhcnRpYWwob2JqZWN0OiBEZWVwUGFydGlhbDxVcGxvYWRTb3VyY2VNYXBzUmVxdWVzdD4pOiBVcGxvYWRTb3VyY2VNYXBzUmVxdWVzdCB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VVcGxvYWRTb3VyY2VNYXBzUmVxdWVzdCgpO1xuICAgIG1lc3NhZ2UuYXBwbGljYXRpb24gPSBvYmplY3QuYXBwbGljYXRpb24gPz8gXCJcIjtcbiAgICBtZXNzYWdlLnJlbGVhc2VJZCA9IG9iamVjdC5yZWxlYXNlSWQgPz8gXCJcIjtcbiAgICBtZXNzYWdlLmNvbW1pdEhhc2ggPSBvYmplY3QuY29tbWl0SGFzaCA/PyB1bmRlZmluZWQ7XG4gICAgbWVzc2FnZS5yZXBvTmFtZSA9IG9iamVjdC5yZXBvTmFtZSA/PyB1bmRlZmluZWQ7XG4gICAgbWVzc2FnZS51c2VyID0gb2JqZWN0LnVzZXIgPz8gdW5kZWZpbmVkO1xuICAgIG1lc3NhZ2UuZmlsZXMgPSBvYmplY3QuZmlsZXM/Lm1hcCgoZSkgPT4gRmlsZU1ldGFkYXRhLmZyb21QYXJ0aWFsKGUpKSB8fCBbXTtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSxcbn07XG5cbmZ1bmN0aW9uIGNyZWF0ZUJhc2VVcGRhdGVTb3VyY2VNYXBSZXF1ZXN0KCk6IFVwZGF0ZVNvdXJjZU1hcFJlcXVlc3Qge1xuICByZXR1cm4ge1xuICAgIGFwcGxpY2F0aW9uOiBcIlwiLFxuICAgIHJlbGVhc2VJZDogXCJcIixcbiAgICBjb21taXRIYXNoOiB1bmRlZmluZWQsXG4gICAgcmVwb05hbWU6IHVuZGVmaW5lZCxcbiAgICB1c2VyOiB1bmRlZmluZWQsXG4gICAgZmlsZXM6IFtdLFxuICAgIHJlcGxhY2U6IHVuZGVmaW5lZCxcbiAgICBnZW5lcmF0ZTogdW5kZWZpbmVkLFxuICB9O1xufVxuXG5leHBvcnQgY29uc3QgVXBkYXRlU291cmNlTWFwUmVxdWVzdCA9IHtcbiAgZW5jb2RlKG1lc3NhZ2U6IFVwZGF0ZVNvdXJjZU1hcFJlcXVlc3QsIHdyaXRlcjogX20wLldyaXRlciA9IF9tMC5Xcml0ZXIuY3JlYXRlKCkpOiBfbTAuV3JpdGVyIHtcbiAgICBpZiAobWVzc2FnZS5hcHBsaWNhdGlvbiAhPT0gXCJcIikge1xuICAgICAgd3JpdGVyLnVpbnQzMigxMCkuc3RyaW5nKG1lc3NhZ2UuYXBwbGljYXRpb24pO1xuICAgIH1cbiAgICBpZiAobWVzc2FnZS5yZWxlYXNlSWQgIT09IFwiXCIpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMTgpLnN0cmluZyhtZXNzYWdlLnJlbGVhc2VJZCk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLmNvbW1pdEhhc2ggIT09IHVuZGVmaW5lZCkge1xuICAgICAgd3JpdGVyLnVpbnQzMigyNikuc3RyaW5nKG1lc3NhZ2UuY29tbWl0SGFzaCk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnJlcG9OYW1lICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMzQpLnN0cmluZyhtZXNzYWdlLnJlcG9OYW1lKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UudXNlciAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB3cml0ZXIudWludDMyKDQyKS5zdHJpbmcobWVzc2FnZS51c2VyKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCB2IG9mIG1lc3NhZ2UuZmlsZXMpIHtcbiAgICAgIEZpbGVNZXRhZGF0YS5lbmNvZGUodiEsIHdyaXRlci51aW50MzIoNTApLmZvcmsoKSkubGRlbGltKCk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLnJlcGxhY2UgIT09IHVuZGVmaW5lZCkge1xuICAgICAgd3JpdGVyLnVpbnQzMig1OCkuc3RyaW5nKG1lc3NhZ2UucmVwbGFjZSk7XG4gICAgfVxuICAgIGlmIChtZXNzYWdlLmdlbmVyYXRlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHdyaXRlci51aW50MzIoNjYpLnN0cmluZyhtZXNzYWdlLmdlbmVyYXRlKTtcbiAgICB9XG4gICAgcmV0dXJuIHdyaXRlcjtcbiAgfSxcblxuICBkZWNvZGUoaW5wdXQ6IF9tMC5SZWFkZXIgfCBVaW50OEFycmF5LCBsZW5ndGg/OiBudW1iZXIpOiBVcGRhdGVTb3VyY2VNYXBSZXF1ZXN0IHtcbiAgICBjb25zdCByZWFkZXIgPSBpbnB1dCBpbnN0YW5jZW9mIF9tMC5SZWFkZXIgPyBpbnB1dCA6IF9tMC5SZWFkZXIuY3JlYXRlKGlucHV0KTtcbiAgICBsZXQgZW5kID0gbGVuZ3RoID09PSB1bmRlZmluZWQgPyByZWFkZXIubGVuIDogcmVhZGVyLnBvcyArIGxlbmd0aDtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZVVwZGF0ZVNvdXJjZU1hcFJlcXVlc3QoKTtcbiAgICB3aGlsZSAocmVhZGVyLnBvcyA8IGVuZCkge1xuICAgICAgY29uc3QgdGFnID0gcmVhZGVyLnVpbnQzMigpO1xuICAgICAgc3dpdGNoICh0YWcgPj4+IDMpIHtcbiAgICAgICAgY2FzZSAxOlxuICAgICAgICAgIGlmICh0YWcgIT09IDEwKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLmFwcGxpY2F0aW9uID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMTgpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UucmVsZWFzZUlkID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDM6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMjYpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UuY29tbWl0SGFzaCA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSA0OlxuICAgICAgICAgIGlmICh0YWcgIT09IDM0KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLnJlcG9OYW1lID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDU6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gNDIpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UudXNlciA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSA2OlxuICAgICAgICAgIGlmICh0YWcgIT09IDUwKSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLmZpbGVzLnB1c2goRmlsZU1ldGFkYXRhLmRlY29kZShyZWFkZXIsIHJlYWRlci51aW50MzIoKSkpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICBjYXNlIDc6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gNTgpIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UucmVwbGFjZSA9IHJlYWRlci5zdHJpbmcoKTtcbiAgICAgICAgICBjb250aW51ZTtcbiAgICAgICAgY2FzZSA4OlxuICAgICAgICAgIGlmICh0YWcgIT09IDY2KSB7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBtZXNzYWdlLmdlbmVyYXRlID0gcmVhZGVyLnN0cmluZygpO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgaWYgKCh0YWcgJiA3KSA9PT0gNCB8fCB0YWcgPT09IDApIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICByZWFkZXIuc2tpcFR5cGUodGFnICYgNyk7XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxuXG4gIGZyb21KU09OKG9iamVjdDogYW55KTogVXBkYXRlU291cmNlTWFwUmVxdWVzdCB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFwcGxpY2F0aW9uOiBpc1NldChvYmplY3QuYXBwbGljYXRpb24pID8gU3RyaW5nKG9iamVjdC5hcHBsaWNhdGlvbikgOiBcIlwiLFxuICAgICAgcmVsZWFzZUlkOiBpc1NldChvYmplY3QucmVsZWFzZUlkKSA/IFN0cmluZyhvYmplY3QucmVsZWFzZUlkKSA6IFwiXCIsXG4gICAgICBjb21taXRIYXNoOiBpc1NldChvYmplY3QuY29tbWl0SGFzaCkgPyBTdHJpbmcob2JqZWN0LmNvbW1pdEhhc2gpIDogdW5kZWZpbmVkLFxuICAgICAgcmVwb05hbWU6IGlzU2V0KG9iamVjdC5yZXBvTmFtZSkgPyBTdHJpbmcob2JqZWN0LnJlcG9OYW1lKSA6IHVuZGVmaW5lZCxcbiAgICAgIHVzZXI6IGlzU2V0KG9iamVjdC51c2VyKSA/IFN0cmluZyhvYmplY3QudXNlcikgOiB1bmRlZmluZWQsXG4gICAgICBmaWxlczogQXJyYXkuaXNBcnJheShvYmplY3Q/LmZpbGVzKSA/IG9iamVjdC5maWxlcy5tYXAoKGU6IGFueSkgPT4gRmlsZU1ldGFkYXRhLmZyb21KU09OKGUpKSA6IFtdLFxuICAgICAgcmVwbGFjZTogaXNTZXQob2JqZWN0LnJlcGxhY2UpID8gU3RyaW5nKG9iamVjdC5yZXBsYWNlKSA6IHVuZGVmaW5lZCxcbiAgICAgIGdlbmVyYXRlOiBpc1NldChvYmplY3QuZ2VuZXJhdGUpID8gU3RyaW5nKG9iamVjdC5nZW5lcmF0ZSkgOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfSxcblxuICB0b0pTT04obWVzc2FnZTogVXBkYXRlU291cmNlTWFwUmVxdWVzdCk6IHVua25vd24ge1xuICAgIGNvbnN0IG9iajogYW55ID0ge307XG4gICAgbWVzc2FnZS5hcHBsaWNhdGlvbiAhPT0gdW5kZWZpbmVkICYmIChvYmouYXBwbGljYXRpb24gPSBtZXNzYWdlLmFwcGxpY2F0aW9uKTtcbiAgICBtZXNzYWdlLnJlbGVhc2VJZCAhPT0gdW5kZWZpbmVkICYmIChvYmoucmVsZWFzZUlkID0gbWVzc2FnZS5yZWxlYXNlSWQpO1xuICAgIG1lc3NhZ2UuY29tbWl0SGFzaCAhPT0gdW5kZWZpbmVkICYmIChvYmouY29tbWl0SGFzaCA9IG1lc3NhZ2UuY29tbWl0SGFzaCk7XG4gICAgbWVzc2FnZS5yZXBvTmFtZSAhPT0gdW5kZWZpbmVkICYmIChvYmoucmVwb05hbWUgPSBtZXNzYWdlLnJlcG9OYW1lKTtcbiAgICBtZXNzYWdlLnVzZXIgIT09IHVuZGVmaW5lZCAmJiAob2JqLnVzZXIgPSBtZXNzYWdlLnVzZXIpO1xuICAgIGlmIChtZXNzYWdlLmZpbGVzKSB7XG4gICAgICBvYmouZmlsZXMgPSBtZXNzYWdlLmZpbGVzLm1hcCgoZSkgPT4gZSA/IEZpbGVNZXRhZGF0YS50b0pTT04oZSkgOiB1bmRlZmluZWQpO1xuICAgIH0gZWxzZSB7XG4gICAgICBvYmouZmlsZXMgPSBbXTtcbiAgICB9XG4gICAgbWVzc2FnZS5yZXBsYWNlICE9PSB1bmRlZmluZWQgJiYgKG9iai5yZXBsYWNlID0gbWVzc2FnZS5yZXBsYWNlKTtcbiAgICBtZXNzYWdlLmdlbmVyYXRlICE9PSB1bmRlZmluZWQgJiYgKG9iai5nZW5lcmF0ZSA9IG1lc3NhZ2UuZ2VuZXJhdGUpO1xuICAgIHJldHVybiBvYmo7XG4gIH0sXG5cbiAgY3JlYXRlKGJhc2U/OiBEZWVwUGFydGlhbDxVcGRhdGVTb3VyY2VNYXBSZXF1ZXN0Pik6IFVwZGF0ZVNvdXJjZU1hcFJlcXVlc3Qge1xuICAgIHJldHVybiBVcGRhdGVTb3VyY2VNYXBSZXF1ZXN0LmZyb21QYXJ0aWFsKGJhc2UgPz8ge30pO1xuICB9LFxuXG4gIGZyb21QYXJ0aWFsKG9iamVjdDogRGVlcFBhcnRpYWw8VXBkYXRlU291cmNlTWFwUmVxdWVzdD4pOiBVcGRhdGVTb3VyY2VNYXBSZXF1ZXN0IHtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZVVwZGF0ZVNvdXJjZU1hcFJlcXVlc3QoKTtcbiAgICBtZXNzYWdlLmFwcGxpY2F0aW9uID0gb2JqZWN0LmFwcGxpY2F0aW9uID8/IFwiXCI7XG4gICAgbWVzc2FnZS5yZWxlYXNlSWQgPSBvYmplY3QucmVsZWFzZUlkID8/IFwiXCI7XG4gICAgbWVzc2FnZS5jb21taXRIYXNoID0gb2JqZWN0LmNvbW1pdEhhc2ggPz8gdW5kZWZpbmVkO1xuICAgIG1lc3NhZ2UucmVwb05hbWUgPSBvYmplY3QucmVwb05hbWUgPz8gdW5kZWZpbmVkO1xuICAgIG1lc3NhZ2UudXNlciA9IG9iamVjdC51c2VyID8/IHVuZGVmaW5lZDtcbiAgICBtZXNzYWdlLmZpbGVzID0gb2JqZWN0LmZpbGVzPy5tYXAoKGUpID0+IEZpbGVNZXRhZGF0YS5mcm9tUGFydGlhbChlKSkgfHwgW107XG4gICAgbWVzc2FnZS5yZXBsYWNlID0gb2JqZWN0LnJlcGxhY2UgPz8gdW5kZWZpbmVkO1xuICAgIG1lc3NhZ2UuZ2VuZXJhdGUgPSBvYmplY3QuZ2VuZXJhdGUgPz8gdW5kZWZpbmVkO1xuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxufTtcblxuZnVuY3Rpb24gY3JlYXRlQmFzZURlbGV0ZVNvdXJjZU1hcFJlcXVlc3QoKTogRGVsZXRlU291cmNlTWFwUmVxdWVzdCB7XG4gIHJldHVybiB7IGFwcGxpY2F0aW9uOiBcIlwiLCByZWxlYXNlSWQ6IFwiXCIgfTtcbn1cblxuZXhwb3J0IGNvbnN0IERlbGV0ZVNvdXJjZU1hcFJlcXVlc3QgPSB7XG4gIGVuY29kZShtZXNzYWdlOiBEZWxldGVTb3VyY2VNYXBSZXF1ZXN0LCB3cml0ZXI6IF9tMC5Xcml0ZXIgPSBfbTAuV3JpdGVyLmNyZWF0ZSgpKTogX20wLldyaXRlciB7XG4gICAgaWYgKG1lc3NhZ2UuYXBwbGljYXRpb24gIT09IFwiXCIpIHtcbiAgICAgIHdyaXRlci51aW50MzIoMTApLnN0cmluZyhtZXNzYWdlLmFwcGxpY2F0aW9uKTtcbiAgICB9XG4gICAgaWYgKG1lc3NhZ2UucmVsZWFzZUlkICE9PSBcIlwiKSB7XG4gICAgICB3cml0ZXIudWludDMyKDE4KS5zdHJpbmcobWVzc2FnZS5yZWxlYXNlSWQpO1xuICAgIH1cbiAgICByZXR1cm4gd3JpdGVyO1xuICB9LFxuXG4gIGRlY29kZShpbnB1dDogX20wLlJlYWRlciB8IFVpbnQ4QXJyYXksIGxlbmd0aD86IG51bWJlcik6IERlbGV0ZVNvdXJjZU1hcFJlcXVlc3Qge1xuICAgIGNvbnN0IHJlYWRlciA9IGlucHV0IGluc3RhbmNlb2YgX20wLlJlYWRlciA/IGlucHV0IDogX20wLlJlYWRlci5jcmVhdGUoaW5wdXQpO1xuICAgIGxldCBlbmQgPSBsZW5ndGggPT09IHVuZGVmaW5lZCA/IHJlYWRlci5sZW4gOiByZWFkZXIucG9zICsgbGVuZ3RoO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlRGVsZXRlU291cmNlTWFwUmVxdWVzdCgpO1xuICAgIHdoaWxlIChyZWFkZXIucG9zIDwgZW5kKSB7XG4gICAgICBjb25zdCB0YWcgPSByZWFkZXIudWludDMyKCk7XG4gICAgICBzd2l0Y2ggKHRhZyA+Pj4gMykge1xuICAgICAgICBjYXNlIDE6XG4gICAgICAgICAgaWYgKHRhZyAhPT0gMTApIHtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIG1lc3NhZ2UuYXBwbGljYXRpb24gPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICBpZiAodGFnICE9PSAxOCkge1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgbWVzc2FnZS5yZWxlYXNlSWQgPSByZWFkZXIuc3RyaW5nKCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICB9XG4gICAgICBpZiAoKHRhZyAmIDcpID09PSA0IHx8IHRhZyA9PT0gMCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHJlYWRlci5za2lwVHlwZSh0YWcgJiA3KTtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG5cbiAgZnJvbUpTT04ob2JqZWN0OiBhbnkpOiBEZWxldGVTb3VyY2VNYXBSZXF1ZXN0IHtcbiAgICByZXR1cm4ge1xuICAgICAgYXBwbGljYXRpb246IGlzU2V0KG9iamVjdC5hcHBsaWNhdGlvbikgPyBTdHJpbmcob2JqZWN0LmFwcGxpY2F0aW9uKSA6IFwiXCIsXG4gICAgICByZWxlYXNlSWQ6IGlzU2V0KG9iamVjdC5yZWxlYXNlSWQpID8gU3RyaW5nKG9iamVjdC5yZWxlYXNlSWQpIDogXCJcIixcbiAgICB9O1xuICB9LFxuXG4gIHRvSlNPTihtZXNzYWdlOiBEZWxldGVTb3VyY2VNYXBSZXF1ZXN0KTogdW5rbm93biB7XG4gICAgY29uc3Qgb2JqOiBhbnkgPSB7fTtcbiAgICBtZXNzYWdlLmFwcGxpY2F0aW9uICE9PSB1bmRlZmluZWQgJiYgKG9iai5hcHBsaWNhdGlvbiA9IG1lc3NhZ2UuYXBwbGljYXRpb24pO1xuICAgIG1lc3NhZ2UucmVsZWFzZUlkICE9PSB1bmRlZmluZWQgJiYgKG9iai5yZWxlYXNlSWQgPSBtZXNzYWdlLnJlbGVhc2VJZCk7XG4gICAgcmV0dXJuIG9iajtcbiAgfSxcblxuICBjcmVhdGUoYmFzZT86IERlZXBQYXJ0aWFsPERlbGV0ZVNvdXJjZU1hcFJlcXVlc3Q+KTogRGVsZXRlU291cmNlTWFwUmVxdWVzdCB7XG4gICAgcmV0dXJuIERlbGV0ZVNvdXJjZU1hcFJlcXVlc3QuZnJvbVBhcnRpYWwoYmFzZSA/PyB7fSk7XG4gIH0sXG5cbiAgZnJvbVBhcnRpYWwob2JqZWN0OiBEZWVwUGFydGlhbDxEZWxldGVTb3VyY2VNYXBSZXF1ZXN0Pik6IERlbGV0ZVNvdXJjZU1hcFJlcXVlc3Qge1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlRGVsZXRlU291cmNlTWFwUmVxdWVzdCgpO1xuICAgIG1lc3NhZ2UuYXBwbGljYXRpb24gPSBvYmplY3QuYXBwbGljYXRpb24gPz8gXCJcIjtcbiAgICBtZXNzYWdlLnJlbGVhc2VJZCA9IG9iamVjdC5yZWxlYXNlSWQgPz8gXCJcIjtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSxcbn07XG5cbmZ1bmN0aW9uIGNyZWF0ZUJhc2VVcGxvYWRTb3VyY2VNYXBzUmVzcG9uc2UoKTogVXBsb2FkU291cmNlTWFwc1Jlc3BvbnNlIHtcbiAgcmV0dXJuIHt9O1xufVxuXG5leHBvcnQgY29uc3QgVXBsb2FkU291cmNlTWFwc1Jlc3BvbnNlID0ge1xuICBlbmNvZGUoXzogVXBsb2FkU291cmNlTWFwc1Jlc3BvbnNlLCB3cml0ZXI6IF9tMC5Xcml0ZXIgPSBfbTAuV3JpdGVyLmNyZWF0ZSgpKTogX20wLldyaXRlciB7XG4gICAgcmV0dXJuIHdyaXRlcjtcbiAgfSxcblxuICBkZWNvZGUoaW5wdXQ6IF9tMC5SZWFkZXIgfCBVaW50OEFycmF5LCBsZW5ndGg/OiBudW1iZXIpOiBVcGxvYWRTb3VyY2VNYXBzUmVzcG9uc2Uge1xuICAgIGNvbnN0IHJlYWRlciA9IGlucHV0IGluc3RhbmNlb2YgX20wLlJlYWRlciA/IGlucHV0IDogX20wLlJlYWRlci5jcmVhdGUoaW5wdXQpO1xuICAgIGxldCBlbmQgPSBsZW5ndGggPT09IHVuZGVmaW5lZCA/IHJlYWRlci5sZW4gOiByZWFkZXIucG9zICsgbGVuZ3RoO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSBjcmVhdGVCYXNlVXBsb2FkU291cmNlTWFwc1Jlc3BvbnNlKCk7XG4gICAgd2hpbGUgKHJlYWRlci5wb3MgPCBlbmQpIHtcbiAgICAgIGNvbnN0IHRhZyA9IHJlYWRlci51aW50MzIoKTtcbiAgICAgIHN3aXRjaCAodGFnID4+PiAzKSB7XG4gICAgICB9XG4gICAgICBpZiAoKHRhZyAmIDcpID09PSA0IHx8IHRhZyA9PT0gMCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHJlYWRlci5za2lwVHlwZSh0YWcgJiA3KTtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG5cbiAgZnJvbUpTT04oXzogYW55KTogVXBsb2FkU291cmNlTWFwc1Jlc3BvbnNlIHtcbiAgICByZXR1cm4ge307XG4gIH0sXG5cbiAgdG9KU09OKF86IFVwbG9hZFNvdXJjZU1hcHNSZXNwb25zZSk6IHVua25vd24ge1xuICAgIGNvbnN0IG9iajogYW55ID0ge307XG4gICAgcmV0dXJuIG9iajtcbiAgfSxcblxuICBjcmVhdGUoYmFzZT86IERlZXBQYXJ0aWFsPFVwbG9hZFNvdXJjZU1hcHNSZXNwb25zZT4pOiBVcGxvYWRTb3VyY2VNYXBzUmVzcG9uc2Uge1xuICAgIHJldHVybiBVcGxvYWRTb3VyY2VNYXBzUmVzcG9uc2UuZnJvbVBhcnRpYWwoYmFzZSA/PyB7fSk7XG4gIH0sXG5cbiAgZnJvbVBhcnRpYWwoXzogRGVlcFBhcnRpYWw8VXBsb2FkU291cmNlTWFwc1Jlc3BvbnNlPik6IFVwbG9hZFNvdXJjZU1hcHNSZXNwb25zZSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VVcGxvYWRTb3VyY2VNYXBzUmVzcG9uc2UoKTtcbiAgICByZXR1cm4gbWVzc2FnZTtcbiAgfSxcbn07XG5cbmZ1bmN0aW9uIGNyZWF0ZUJhc2VVcGRhdGVTb3VyY2VNYXBSZXNwb25zZSgpOiBVcGRhdGVTb3VyY2VNYXBSZXNwb25zZSB7XG4gIHJldHVybiB7fTtcbn1cblxuZXhwb3J0IGNvbnN0IFVwZGF0ZVNvdXJjZU1hcFJlc3BvbnNlID0ge1xuICBlbmNvZGUoXzogVXBkYXRlU291cmNlTWFwUmVzcG9uc2UsIHdyaXRlcjogX20wLldyaXRlciA9IF9tMC5Xcml0ZXIuY3JlYXRlKCkpOiBfbTAuV3JpdGVyIHtcbiAgICByZXR1cm4gd3JpdGVyO1xuICB9LFxuXG4gIGRlY29kZShpbnB1dDogX20wLlJlYWRlciB8IFVpbnQ4QXJyYXksIGxlbmd0aD86IG51bWJlcik6IFVwZGF0ZVNvdXJjZU1hcFJlc3BvbnNlIHtcbiAgICBjb25zdCByZWFkZXIgPSBpbnB1dCBpbnN0YW5jZW9mIF9tMC5SZWFkZXIgPyBpbnB1dCA6IF9tMC5SZWFkZXIuY3JlYXRlKGlucHV0KTtcbiAgICBsZXQgZW5kID0gbGVuZ3RoID09PSB1bmRlZmluZWQgPyByZWFkZXIubGVuIDogcmVhZGVyLnBvcyArIGxlbmd0aDtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZVVwZGF0ZVNvdXJjZU1hcFJlc3BvbnNlKCk7XG4gICAgd2hpbGUgKHJlYWRlci5wb3MgPCBlbmQpIHtcbiAgICAgIGNvbnN0IHRhZyA9IHJlYWRlci51aW50MzIoKTtcbiAgICAgIHN3aXRjaCAodGFnID4+PiAzKSB7XG4gICAgICB9XG4gICAgICBpZiAoKHRhZyAmIDcpID09PSA0IHx8IHRhZyA9PT0gMCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIHJlYWRlci5za2lwVHlwZSh0YWcgJiA3KTtcbiAgICB9XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG5cbiAgZnJvbUpTT04oXzogYW55KTogVXBkYXRlU291cmNlTWFwUmVzcG9uc2Uge1xuICAgIHJldHVybiB7fTtcbiAgfSxcblxuICB0b0pTT04oXzogVXBkYXRlU291cmNlTWFwUmVzcG9uc2UpOiB1bmtub3duIHtcbiAgICBjb25zdCBvYmo6IGFueSA9IHt9O1xuICAgIHJldHVybiBvYmo7XG4gIH0sXG5cbiAgY3JlYXRlKGJhc2U/OiBEZWVwUGFydGlhbDxVcGRhdGVTb3VyY2VNYXBSZXNwb25zZT4pOiBVcGRhdGVTb3VyY2VNYXBSZXNwb25zZSB7XG4gICAgcmV0dXJuIFVwZGF0ZVNvdXJjZU1hcFJlc3BvbnNlLmZyb21QYXJ0aWFsKGJhc2UgPz8ge30pO1xuICB9LFxuXG4gIGZyb21QYXJ0aWFsKF86IERlZXBQYXJ0aWFsPFVwZGF0ZVNvdXJjZU1hcFJlc3BvbnNlPik6IFVwZGF0ZVNvdXJjZU1hcFJlc3BvbnNlIHtcbiAgICBjb25zdCBtZXNzYWdlID0gY3JlYXRlQmFzZVVwZGF0ZVNvdXJjZU1hcFJlc3BvbnNlKCk7XG4gICAgcmV0dXJuIG1lc3NhZ2U7XG4gIH0sXG59O1xuXG5mdW5jdGlvbiBjcmVhdGVCYXNlRGVsZXRlU291cmNlTWFwUmVzcG9uc2UoKTogRGVsZXRlU291cmNlTWFwUmVzcG9uc2Uge1xuICByZXR1cm4ge307XG59XG5cbmV4cG9ydCBjb25zdCBEZWxldGVTb3VyY2VNYXBSZXNwb25zZSA9IHtcbiAgZW5jb2RlKF86IERlbGV0ZVNvdXJjZU1hcFJlc3BvbnNlLCB3cml0ZXI6IF9tMC5Xcml0ZXIgPSBfbTAuV3JpdGVyLmNyZWF0ZSgpKTogX20wLldyaXRlciB7XG4gICAgcmV0dXJuIHdyaXRlcjtcbiAgfSxcblxuICBkZWNvZGUoaW5wdXQ6IF9tMC5SZWFkZXIgfCBVaW50OEFycmF5LCBsZW5ndGg/OiBudW1iZXIpOiBEZWxldGVTb3VyY2VNYXBSZXNwb25zZSB7XG4gICAgY29uc3QgcmVhZGVyID0gaW5wdXQgaW5zdGFuY2VvZiBfbTAuUmVhZGVyID8gaW5wdXQgOiBfbTAuUmVhZGVyLmNyZWF0ZShpbnB1dCk7XG4gICAgbGV0IGVuZCA9IGxlbmd0aCA9PT0gdW5kZWZpbmVkID8gcmVhZGVyLmxlbiA6IHJlYWRlci5wb3MgKyBsZW5ndGg7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VEZWxldGVTb3VyY2VNYXBSZXNwb25zZSgpO1xuICAgIHdoaWxlIChyZWFkZXIucG9zIDwgZW5kKSB7XG4gICAgICBjb25zdCB0YWcgPSByZWFkZXIudWludDMyKCk7XG4gICAgICBzd2l0Y2ggKHRhZyA+Pj4gMykge1xuICAgICAgfVxuICAgICAgaWYgKCh0YWcgJiA3KSA9PT0gNCB8fCB0YWcgPT09IDApIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgICByZWFkZXIuc2tpcFR5cGUodGFnICYgNyk7XG4gICAgfVxuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxuXG4gIGZyb21KU09OKF86IGFueSk6IERlbGV0ZVNvdXJjZU1hcFJlc3BvbnNlIHtcbiAgICByZXR1cm4ge307XG4gIH0sXG5cbiAgdG9KU09OKF86IERlbGV0ZVNvdXJjZU1hcFJlc3BvbnNlKTogdW5rbm93biB7XG4gICAgY29uc3Qgb2JqOiBhbnkgPSB7fTtcbiAgICByZXR1cm4gb2JqO1xuICB9LFxuXG4gIGNyZWF0ZShiYXNlPzogRGVlcFBhcnRpYWw8RGVsZXRlU291cmNlTWFwUmVzcG9uc2U+KTogRGVsZXRlU291cmNlTWFwUmVzcG9uc2Uge1xuICAgIHJldHVybiBEZWxldGVTb3VyY2VNYXBSZXNwb25zZS5mcm9tUGFydGlhbChiYXNlID8/IHt9KTtcbiAgfSxcblxuICBmcm9tUGFydGlhbChfOiBEZWVwUGFydGlhbDxEZWxldGVTb3VyY2VNYXBSZXNwb25zZT4pOiBEZWxldGVTb3VyY2VNYXBSZXNwb25zZSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGNyZWF0ZUJhc2VEZWxldGVTb3VyY2VNYXBSZXNwb25zZSgpO1xuICAgIHJldHVybiBtZXNzYWdlO1xuICB9LFxufTtcblxuZXhwb3J0IHR5cGUgUnVtU291cmNlTWFwU2VydmljZURlZmluaXRpb24gPSB0eXBlb2YgUnVtU291cmNlTWFwU2VydmljZURlZmluaXRpb247XG5leHBvcnQgY29uc3QgUnVtU291cmNlTWFwU2VydmljZURlZmluaXRpb24gPSB7XG4gIG5hbWU6IFwiUnVtU291cmNlTWFwU2VydmljZVwiLFxuICBmdWxsTmFtZTogXCJjb20uY29yYWxvZ2l4LnJ1bS52Mi5SdW1Tb3VyY2VNYXBTZXJ2aWNlXCIsXG4gIG1ldGhvZHM6IHtcbiAgICB1cGxvYWRTb3VyY2VNYXBzOiB7XG4gICAgICBuYW1lOiBcIlVwbG9hZFNvdXJjZU1hcHNcIixcbiAgICAgIHJlcXVlc3RUeXBlOiBVcGxvYWRTb3VyY2VNYXBzUmVxdWVzdCxcbiAgICAgIHJlcXVlc3RTdHJlYW06IGZhbHNlLFxuICAgICAgcmVzcG9uc2VUeXBlOiBVcGxvYWRTb3VyY2VNYXBzUmVzcG9uc2UsXG4gICAgICByZXNwb25zZVN0cmVhbTogZmFsc2UsXG4gICAgICBvcHRpb25zOiB7fSxcbiAgICB9LFxuICAgIHVwZGF0ZVNvdXJjZU1hcDoge1xuICAgICAgbmFtZTogXCJVcGRhdGVTb3VyY2VNYXBcIixcbiAgICAgIHJlcXVlc3RUeXBlOiBVcGRhdGVTb3VyY2VNYXBSZXF1ZXN0LFxuICAgICAgcmVxdWVzdFN0cmVhbTogZmFsc2UsXG4gICAgICByZXNwb25zZVR5cGU6IFVwZGF0ZVNvdXJjZU1hcFJlc3BvbnNlLFxuICAgICAgcmVzcG9uc2VTdHJlYW06IGZhbHNlLFxuICAgICAgb3B0aW9uczoge30sXG4gICAgfSxcbiAgICBkZWxldGVTb3VyY2VNYXA6IHtcbiAgICAgIG5hbWU6IFwiRGVsZXRlU291cmNlTWFwXCIsXG4gICAgICByZXF1ZXN0VHlwZTogRGVsZXRlU291cmNlTWFwUmVxdWVzdCxcbiAgICAgIHJlcXVlc3RTdHJlYW06IGZhbHNlLFxuICAgICAgcmVzcG9uc2VUeXBlOiBEZWxldGVTb3VyY2VNYXBSZXNwb25zZSxcbiAgICAgIHJlc3BvbnNlU3RyZWFtOiBmYWxzZSxcbiAgICAgIG9wdGlvbnM6IHt9LFxuICAgIH0sXG4gIH0sXG59IGFzIGNvbnN0O1xuXG50eXBlIEJ1aWx0aW4gPSBEYXRlIHwgRnVuY3Rpb24gfCBVaW50OEFycmF5IHwgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IHVuZGVmaW5lZDtcblxuZXhwb3J0IHR5cGUgRGVlcFBhcnRpYWw8VD4gPSBUIGV4dGVuZHMgQnVpbHRpbiA/IFRcbiAgOiBUIGV4dGVuZHMgQXJyYXk8aW5mZXIgVT4gPyBBcnJheTxEZWVwUGFydGlhbDxVPj4gOiBUIGV4dGVuZHMgUmVhZG9ubHlBcnJheTxpbmZlciBVPiA/IFJlYWRvbmx5QXJyYXk8RGVlcFBhcnRpYWw8VT4+XG4gIDogVCBleHRlbmRzIHsgJGNhc2U6IHN0cmluZyB9ID8geyBbSyBpbiBrZXlvZiBPbWl0PFQsIFwiJGNhc2VcIj5dPzogRGVlcFBhcnRpYWw8VFtLXT4gfSAmIHsgJGNhc2U6IFRbXCIkY2FzZVwiXSB9XG4gIDogVCBleHRlbmRzIHt9ID8geyBbSyBpbiBrZXlvZiBUXT86IERlZXBQYXJ0aWFsPFRbS10+IH1cbiAgOiBQYXJ0aWFsPFQ+O1xuXG5mdW5jdGlvbiBpc1NldCh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gIHJldHVybiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkO1xufVxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare class SourceMapsService {
|
|
2
2
|
static upload(application: string, version: string, repoName: string | undefined, commitHash: string | undefined, orgName: string | undefined, folderPath: string, env: string, privateKey: string): Promise<void>;
|
|
3
|
-
static update(application: string, version: string, repoName: string | undefined, commitHash: string | undefined, orgName: string | undefined, folderPath: string, env: string, privateKey: string): Promise<void>;
|
|
3
|
+
static update(application: string, version: string, repoName: string | undefined, commitHash: string | undefined, orgName: string | undefined, folderPath: string, generate: string | undefined, env: string, privateKey: string): Promise<void>;
|
|
4
4
|
static delete(application: string, version: string, env: string, privateKey: string): Promise<void>;
|
|
5
5
|
}
|
|
@@ -37,7 +37,7 @@ class SourceMapsService {
|
|
|
37
37
|
}
|
|
38
38
|
});
|
|
39
39
|
}
|
|
40
|
-
static update(application, version, repoName, commitHash, orgName, folderPath, env, privateKey) {
|
|
40
|
+
static update(application, version, repoName, commitHash, orgName, folderPath, generate, env, privateKey) {
|
|
41
41
|
return __awaiter(this, void 0, void 0, function* () {
|
|
42
42
|
const request = rum_source_map_service_1.UpdateSourceMapRequest.create();
|
|
43
43
|
request.application = application;
|
|
@@ -45,6 +45,7 @@ class SourceMapsService {
|
|
|
45
45
|
request.repoName = repoName;
|
|
46
46
|
request.commitHash = commitHash;
|
|
47
47
|
request.user = orgName;
|
|
48
|
+
request.generate = generate;
|
|
48
49
|
console.log(consts_1.GRAY_COLOR, '🔄 Updating source maps...');
|
|
49
50
|
try {
|
|
50
51
|
yield (0, utils_1.traverseFolder)(folderPath, request);
|
|
@@ -77,4 +78,4 @@ class SourceMapsService {
|
|
|
77
78
|
}
|
|
78
79
|
}
|
|
79
80
|
exports.SourceMapsService = SourceMapsService;
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
81
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic291cmNlLW1hcHMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NlcnZpY2VzL3NvdXJjZS1tYXBzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUEsd0dBSXFFO0FBQ3JFLDRDQUF3QztBQUN4Qyw2Q0FBc0U7QUFDdEUsb0NBQTBDO0FBRTFDLE1BQWEsaUJBQWlCO0lBQzVCLE1BQU0sQ0FBTyxNQUFNLENBQ2pCLFdBQW1CLEVBQ25CLE9BQWUsRUFDZixRQUE0QixFQUM1QixVQUE4QixFQUM5QixPQUEyQixFQUMzQixVQUFrQixFQUNsQixHQUFXLEVBQ1gsVUFBa0I7O1lBRWxCLE1BQU0sT0FBTyxHQUFHLGdEQUF1QixDQUFDLE1BQU0sRUFBRSxDQUFDO1lBRWpELE9BQU8sQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDO1lBQ2xDLE9BQU8sQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFDO1lBQzVCLE9BQU8sQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1lBQzVCLE9BQU8sQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1lBQ2hDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsT0FBTyxDQUFDO1lBRXZCLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQVUsRUFBRSw2QkFBNkIsQ0FBQyxDQUFDO1lBRXZELElBQUk7Z0JBQ0YsTUFBTSxJQUFBLHNCQUFjLEVBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUUxQyxNQUFNLGdCQUFNLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQztnQkFFeEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBVyxFQUFFLHNDQUFzQyxDQUFDLENBQUM7Z0JBQ2pFLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQVcsRUFBRSxrQ0FBa0MsT0FBTyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO2dCQUNuRixPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFXLEVBQUUsd0JBQXdCLENBQUMsQ0FBQzthQUNwRDtZQUFDLE9BQU8sS0FBSyxFQUFFO2dCQUNkLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQVMsRUFBRSxxQkFBcUIsQ0FBQyxDQUFDO2dCQUM5QyxPQUFPLENBQUMsS0FBSyxDQUFDLGtCQUFTLEVBQUUsS0FBSyxDQUFDLENBQUM7YUFDakM7UUFDSCxDQUFDO0tBQUE7SUFFRCxNQUFNLENBQU8sTUFBTSxDQUNqQixXQUFtQixFQUNuQixPQUFlLEVBQ2YsUUFBNEIsRUFDNUIsVUFBOEIsRUFDOUIsT0FBMkIsRUFDM0IsVUFBa0IsRUFDbEIsUUFBNEIsRUFDNUIsR0FBVyxFQUNYLFVBQWtCOztZQUVsQixNQUFNLE9BQU8sR0FBRywrQ0FBc0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUVoRCxPQUFPLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztZQUNsQyxPQUFPLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQztZQUM1QixPQUFPLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztZQUM1QixPQUFPLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztZQUNoQyxPQUFPLENBQUMsSUFBSSxHQUFHLE9BQU8sQ0FBQztZQUN2QixPQUFPLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztZQUU1QixPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFVLEVBQUUsNEJBQTRCLENBQUMsQ0FBQztZQUV0RCxJQUFJO2dCQUNGLE1BQU0sSUFBQSxzQkFBYyxFQUFDLFVBQVUsRUFBRSxPQUFPLENBQUMsQ0FBQztnQkFFMUMsTUFBTSxnQkFBTSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDO2dCQUV2RCxPQUFPLENBQUMsR0FBRyxDQUFDLG9CQUFXLEVBQUUscUNBQXFDLENBQUMsQ0FBQztnQkFDaEUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBVyxFQUFFLGtDQUFrQyxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7Z0JBQ25GLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQVcsRUFBRSx3QkFBd0IsQ0FBQyxDQUFDO2FBQ3BEO1lBQUMsT0FBTyxLQUFLLEVBQUU7Z0JBQ2QsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBUyxFQUFFLHFCQUFxQixDQUFDLENBQUM7Z0JBQzlDLE9BQU8sQ0FBQyxLQUFLLENBQUMsa0JBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQzthQUNqQztRQUNILENBQUM7S0FBQTtJQUVELE1BQU0sQ0FBTyxNQUFNLENBQUMsV0FBbUIsRUFBRSxPQUFlLEVBQUUsR0FBVyxFQUFFLFVBQWtCOztZQUN2RixNQUFNLE9BQU8sR0FBRywrQ0FBc0IsQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUVoRCxPQUFPLENBQUMsV0FBVyxHQUFHLFdBQVcsQ0FBQztZQUNsQyxPQUFPLENBQUMsU0FBUyxHQUFHLE9BQU8sQ0FBQztZQUU1QixPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFVLEVBQUUsNkJBQTZCLENBQUMsQ0FBQztZQUV2RCxJQUFJO2dCQUNGLE1BQU0sZ0JBQU0sQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxVQUFVLENBQUMsQ0FBQztnQkFFdkQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxvQkFBVyxFQUFFLHFDQUFxQyxDQUFDLENBQUM7YUFDakU7WUFBQyxPQUFPLEtBQUssRUFBRTtnQkFDZCxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFTLEVBQUUscUJBQXFCLENBQUMsQ0FBQztnQkFDOUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxrQkFBUyxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQ2pDO1FBQ0gsQ0FBQztLQUFBO0NBQ0Y7QUF4RkQsOENBd0ZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRGVsZXRlU291cmNlTWFwUmVxdWVzdCxcbiAgVXBkYXRlU291cmNlTWFwUmVxdWVzdCxcbiAgVXBsb2FkU291cmNlTWFwc1JlcXVlc3QsXG59IGZyb20gJy4uL3Byb3RvLW1vZGVscy9jb20vY29yYWxvZ2l4L3J1bS92Mi9ydW1fc291cmNlX21hcF9zZXJ2aWNlJztcbmltcG9ydCB7IFJ1bUFwaSB9IGZyb20gJy4uL2FwaS9ydW0tYXBpJztcbmltcG9ydCB7IEdSQVlfQ09MT1IsIEdSRUVOX0NPTE9SLCBSRURfQ09MT1IgfSBmcm9tICcuLi9jb25zdHMvY29uc3RzJztcbmltcG9ydCB7IHRyYXZlcnNlRm9sZGVyIH0gZnJvbSAnLi4vdXRpbHMnO1xuXG5leHBvcnQgY2xhc3MgU291cmNlTWFwc1NlcnZpY2Uge1xuICBzdGF0aWMgYXN5bmMgdXBsb2FkKFxuICAgIGFwcGxpY2F0aW9uOiBzdHJpbmcsXG4gICAgdmVyc2lvbjogc3RyaW5nLFxuICAgIHJlcG9OYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgY29tbWl0SGFzaDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIG9yZ05hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBmb2xkZXJQYXRoOiBzdHJpbmcsXG4gICAgZW52OiBzdHJpbmcsXG4gICAgcHJpdmF0ZUtleTogc3RyaW5nLFxuICApOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCByZXF1ZXN0ID0gVXBsb2FkU291cmNlTWFwc1JlcXVlc3QuY3JlYXRlKCk7XG5cbiAgICByZXF1ZXN0LmFwcGxpY2F0aW9uID0gYXBwbGljYXRpb247XG4gICAgcmVxdWVzdC5yZWxlYXNlSWQgPSB2ZXJzaW9uO1xuICAgIHJlcXVlc3QucmVwb05hbWUgPSByZXBvTmFtZTtcbiAgICByZXF1ZXN0LmNvbW1pdEhhc2ggPSBjb21taXRIYXNoO1xuICAgIHJlcXVlc3QudXNlciA9IG9yZ05hbWU7XG5cbiAgICBjb25zb2xlLmxvZyhHUkFZX0NPTE9SLCAn8J+agCBVcGxvYWRpbmcgc291cmNlIG1hcHMuLi4nKTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0cmF2ZXJzZUZvbGRlcihmb2xkZXJQYXRoLCByZXF1ZXN0KTtcblxuICAgICAgYXdhaXQgUnVtQXBpLnVwbG9hZFNvdXJjZU1hcHMocmVxdWVzdCwgZW52LCBwcml2YXRlS2V5KTtcblxuICAgICAgY29uc29sZS5sb2coR1JFRU5fQ09MT1IsICfinIUgU291cmNlIG1hcHMgdXBsb2FkZWQgc3VjY2Vzc2Z1bGx5IScpO1xuICAgICAgY29uc29sZS5sb2coR1JFRU5fQ09MT1IsIGDinIUgVG90YWwgY2h1bmsgZmlsZXMgcHJvY2Vzc2VkOiAke3JlcXVlc3QuZmlsZXMubGVuZ3RofWApO1xuICAgICAgY29uc29sZS5sb2coR1JFRU5fQ09MT1IsICfinIUgUHJvY2Vzc2luZyBjb21wbGV0ZS4nKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5sb2coUkVEX0NPTE9SLCAn4p2MIEFuIGVycm9yIG9jY3VycmVkJyk7XG4gICAgICBjb25zb2xlLmVycm9yKFJFRF9DT0xPUiwgZXJyb3IpO1xuICAgIH1cbiAgfVxuXG4gIHN0YXRpYyBhc3luYyB1cGRhdGUoXG4gICAgYXBwbGljYXRpb246IHN0cmluZyxcbiAgICB2ZXJzaW9uOiBzdHJpbmcsXG4gICAgcmVwb05hbWU6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgICBjb21taXRIYXNoOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgb3JnTmFtZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIGZvbGRlclBhdGg6IHN0cmluZyxcbiAgICBnZW5lcmF0ZTogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIGVudjogc3RyaW5nLFxuICAgIHByaXZhdGVLZXk6IHN0cmluZyxcbiAgKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgcmVxdWVzdCA9IFVwZGF0ZVNvdXJjZU1hcFJlcXVlc3QuY3JlYXRlKCk7XG5cbiAgICByZXF1ZXN0LmFwcGxpY2F0aW9uID0gYXBwbGljYXRpb247XG4gICAgcmVxdWVzdC5yZWxlYXNlSWQgPSB2ZXJzaW9uO1xuICAgIHJlcXVlc3QucmVwb05hbWUgPSByZXBvTmFtZTtcbiAgICByZXF1ZXN0LmNvbW1pdEhhc2ggPSBjb21taXRIYXNoO1xuICAgIHJlcXVlc3QudXNlciA9IG9yZ05hbWU7XG4gICAgcmVxdWVzdC5nZW5lcmF0ZSA9IGdlbmVyYXRlO1xuXG4gICAgY29uc29sZS5sb2coR1JBWV9DT0xPUiwgJ/CflIQgVXBkYXRpbmcgc291cmNlIG1hcHMuLi4nKTtcblxuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0cmF2ZXJzZUZvbGRlcihmb2xkZXJQYXRoLCByZXF1ZXN0KTtcblxuICAgICAgYXdhaXQgUnVtQXBpLnVwZGF0ZVNvdXJjZU1hcChyZXF1ZXN0LCBlbnYsIHByaXZhdGVLZXkpO1xuXG4gICAgICBjb25zb2xlLmxvZyhHUkVFTl9DT0xPUiwgJ+KchSBTb3VyY2UgbWFwcyB1cGRhdGVkIHN1Y2Nlc3NmdWxseSEnKTtcbiAgICAgIGNvbnNvbGUubG9nKEdSRUVOX0NPTE9SLCBg4pyFIFRvdGFsIGNodW5rIGZpbGVzIHByb2Nlc3NlZDogJHtyZXF1ZXN0LmZpbGVzLmxlbmd0aH1gKTtcbiAgICAgIGNvbnNvbGUubG9nKEdSRUVOX0NPTE9SLCAn4pyFIFByb2Nlc3NpbmcgY29tcGxldGUuJyk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGNvbnNvbGUubG9nKFJFRF9DT0xPUiwgJ+KdjCBBbiBlcnJvciBvY2N1cnJlZCcpO1xuICAgICAgY29uc29sZS5lcnJvcihSRURfQ09MT1IsIGVycm9yKTtcbiAgICB9XG4gIH1cblxuICBzdGF0aWMgYXN5bmMgZGVsZXRlKGFwcGxpY2F0aW9uOiBzdHJpbmcsIHZlcnNpb246IHN0cmluZywgZW52OiBzdHJpbmcsIHByaXZhdGVLZXk6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHJlcXVlc3QgPSBEZWxldGVTb3VyY2VNYXBSZXF1ZXN0LmNyZWF0ZSgpO1xuXG4gICAgcmVxdWVzdC5hcHBsaWNhdGlvbiA9IGFwcGxpY2F0aW9uO1xuICAgIHJlcXVlc3QucmVsZWFzZUlkID0gdmVyc2lvbjtcblxuICAgIGNvbnNvbGUubG9nKEdSQVlfQ09MT1IsICfwn5eR77iPIERlbGV0aW5nIHNvdXJjZSBtYXBzLi4uJyk7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgUnVtQXBpLmRlbGV0ZVNvdXJjZU1hcChyZXF1ZXN0LCBlbnYsIHByaXZhdGVLZXkpO1xuXG4gICAgICBjb25zb2xlLmxvZyhHUkVFTl9DT0xPUiwgJ+KchSBTb3VyY2UgbWFwcyBkZWxldGVkIHN1Y2Nlc3NmdWxseSEnKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgY29uc29sZS5sb2coUkVEX0NPTE9SLCAn4p2MIEFuIGVycm9yIG9jY3VycmVkJyk7XG4gICAgICBjb25zb2xlLmVycm9yKFJFRF9DT0xPUiwgZXJyb3IpO1xuICAgIH1cbiAgfVxufVxuIl19
|
package/models/commands.model.ts
CHANGED