for-modules 1.1.6 → 1.1.8
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 +11 -1
- package/dist/Structures/Filters.d.ts +109 -0
- package/dist/Structures/Filters.js +7 -7
- package/dist/Structures/Manager.d.ts +192 -0
- package/dist/Structures/Manager.js +26 -20
- package/dist/Structures/Node.d.ts +140 -0
- package/dist/Structures/Node.js +31 -19
- package/dist/Structures/Player.d.ts +250 -0
- package/dist/Structures/Player.js +64 -37
- package/dist/Structures/Queue.d.ts +38 -0
- package/dist/Structures/Queue.js +3 -2
- package/dist/Structures/Rest.d.ts +62 -0
- package/dist/Structures/Rest.js +5 -4
- package/dist/Structures/Utils.d.ts +174 -0
- package/dist/Structures/Utils.js +21 -19
- package/dist/Utils/FiltersEqualizers.d.ts +12 -0
- package/dist/Utils/ManagerCheck.d.ts +2 -0
- package/dist/Utils/ManagerCheck.js +2 -2
- package/dist/Utils/NodeCheck.d.ts +2 -0
- package/dist/Utils/PlayerCheck.d.ts +2 -0
- package/dist/index.d.ts +11 -0
- package/package.json +23 -52
- package/LICENSE +0 -21
- package/NOTICE.txt +0 -12
- package/TikTok.txt +0 -13
- package/babel.config.json +0 -6
- package/bun.lock +0 -686
- package/eslint.config.d.ts +0 -2
- package/eslint.config.js +0 -12
- package/ff.txt +0 -3037
- package/renovate.json +0 -6
- package/tsconfig.json +0 -24
|
@@ -98,9 +98,10 @@ var Manager = exports.Manager = /*#__PURE__*/function (_EventEmitter) {
|
|
|
98
98
|
_step2;
|
|
99
99
|
try {
|
|
100
100
|
for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
|
|
101
|
+
var _node$options$identif;
|
|
101
102
|
var nodeOptions = _step2.value;
|
|
102
103
|
var node = new (_Utils.Structure.get("Node"))(nodeOptions);
|
|
103
|
-
_this.nodes.set(node.options.identifier, node);
|
|
104
|
+
_this.nodes.set((_node$options$identif = node.options.identifier) !== null && _node$options$identif !== void 0 ? _node$options$identif : node.options.host, node);
|
|
104
105
|
}
|
|
105
106
|
} catch (err) {
|
|
106
107
|
_iterator2.e(err);
|
|
@@ -126,8 +127,9 @@ var Manager = exports.Manager = /*#__PURE__*/function (_EventEmitter) {
|
|
|
126
127
|
return this.nodes.filter(function (node) {
|
|
127
128
|
return node.connected;
|
|
128
129
|
}).sort(function (a, b) {
|
|
129
|
-
var
|
|
130
|
-
var
|
|
130
|
+
var _a$stats, _b$stats;
|
|
131
|
+
var aload = (_a$stats = a.stats) !== null && _a$stats !== void 0 && _a$stats.cpu ? a.stats.cpu.lavalinkLoad / a.stats.cpu.cores * 100 : 0;
|
|
132
|
+
var bload = (_b$stats = b.stats) !== null && _b$stats !== void 0 && _b$stats.cpu ? b.stats.cpu.lavalinkLoad / b.stats.cpu.cores * 100 : 0;
|
|
131
133
|
return aload - bload;
|
|
132
134
|
});
|
|
133
135
|
}
|
|
@@ -139,7 +141,8 @@ var Manager = exports.Manager = /*#__PURE__*/function (_EventEmitter) {
|
|
|
139
141
|
return this.nodes.filter(function (node) {
|
|
140
142
|
return node.connected;
|
|
141
143
|
}).sort(function (a, b) {
|
|
142
|
-
|
|
144
|
+
var _a$stats$players, _a$stats2, _b$stats$players, _b$stats2;
|
|
145
|
+
return ((_a$stats$players = (_a$stats2 = a.stats) === null || _a$stats2 === void 0 ? void 0 : _a$stats2.players) !== null && _a$stats$players !== void 0 ? _a$stats$players : 0) - ((_b$stats$players = (_b$stats2 = b.stats) === null || _b$stats2 === void 0 ? void 0 : _b$stats2.players) !== null && _b$stats$players !== void 0 ? _b$stats$players : 0);
|
|
143
146
|
});
|
|
144
147
|
}
|
|
145
148
|
|
|
@@ -148,15 +151,18 @@ var Manager = exports.Manager = /*#__PURE__*/function (_EventEmitter) {
|
|
|
148
151
|
key: "priorityNode",
|
|
149
152
|
get: function get() {
|
|
150
153
|
var filteredNodes = this.nodes.filter(function (node) {
|
|
151
|
-
|
|
154
|
+
var _node$options$priorit;
|
|
155
|
+
return node.connected && ((_node$options$priorit = node.options.priority) !== null && _node$options$priorit !== void 0 ? _node$options$priorit : 0) > 0;
|
|
152
156
|
});
|
|
153
157
|
var totalWeight = filteredNodes.reduce(function (total, node) {
|
|
154
|
-
|
|
158
|
+
var _node$options$priorit2;
|
|
159
|
+
return total + ((_node$options$priorit2 = node.options.priority) !== null && _node$options$priorit2 !== void 0 ? _node$options$priorit2 : 0);
|
|
155
160
|
}, 0);
|
|
156
161
|
var weightedNodes = filteredNodes.map(function (node) {
|
|
162
|
+
var _node$options$priorit3;
|
|
157
163
|
return {
|
|
158
164
|
node: node,
|
|
159
|
-
weight: node.options.priority / totalWeight
|
|
165
|
+
weight: ((_node$options$priorit3 = node.options.priority) !== null && _node$options$priorit3 !== void 0 ? _node$options$priorit3 : 0) / totalWeight
|
|
160
166
|
};
|
|
161
167
|
});
|
|
162
168
|
var randomNumber = Math.random();
|
|
@@ -225,7 +231,7 @@ var Manager = exports.Manager = /*#__PURE__*/function (_EventEmitter) {
|
|
|
225
231
|
value: (function () {
|
|
226
232
|
var _search = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(query, requester) {
|
|
227
233
|
var _Manager$DEFAULT_SOUR, _query$source;
|
|
228
|
-
var node, data, _query, _source, search, res, searchData, playlistData, tracks, playlist, result, tracksToReplace, _iterator5, _step5, track, _track$title$split$ma, _track$title$split$ma2, author, title, isYouTubeURL;
|
|
234
|
+
var node, data, _query, _source, search, res, searchData, playlistData, tracks, playlist, result, tracksToReplace, _result$playlist$trac, _result$playlist, _iterator5, _step5, track, _track$title$split$ma, _track$title$split$ma2, author, title, isYouTubeURL;
|
|
229
235
|
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
230
236
|
while (1) switch (_context.prev = _context.next) {
|
|
231
237
|
case 0:
|
|
@@ -292,7 +298,6 @@ var Manager = exports.Manager = /*#__PURE__*/function (_EventEmitter) {
|
|
|
292
298
|
tracks = searchData.map(function (track) {
|
|
293
299
|
return _Utils.TrackUtils.build(track, requester);
|
|
294
300
|
});
|
|
295
|
-
playlist = null;
|
|
296
301
|
if (res.loadType === "playlist") {
|
|
297
302
|
playlist = {
|
|
298
303
|
name: playlistData.info.name,
|
|
@@ -312,7 +317,7 @@ var Manager = exports.Manager = /*#__PURE__*/function (_EventEmitter) {
|
|
|
312
317
|
if (this.options.replaceYouTubeCredentials) {
|
|
313
318
|
tracksToReplace = [];
|
|
314
319
|
if (result.loadType === "playlist") {
|
|
315
|
-
tracksToReplace = result.playlist.tracks;
|
|
320
|
+
tracksToReplace = (_result$playlist$trac = (_result$playlist = result.playlist) === null || _result$playlist === void 0 ? void 0 : _result$playlist.tracks) !== null && _result$playlist$trac !== void 0 ? _result$playlist$trac : [];
|
|
316
321
|
} else {
|
|
317
322
|
tracksToReplace = result.tracks;
|
|
318
323
|
}
|
|
@@ -340,15 +345,15 @@ var Manager = exports.Manager = /*#__PURE__*/function (_EventEmitter) {
|
|
|
340
345
|
}
|
|
341
346
|
if (this.options.caches.enabled && this.options.caches.time > 0) this.caches.set(search, result);
|
|
342
347
|
return _context.abrupt("return", result);
|
|
343
|
-
case
|
|
344
|
-
_context.prev =
|
|
348
|
+
case 38:
|
|
349
|
+
_context.prev = 38;
|
|
345
350
|
_context.t1 = _context["catch"](14);
|
|
346
|
-
throw new Error(_context.t1);
|
|
347
|
-
case
|
|
351
|
+
throw new Error(_context.t1 instanceof Error ? _context.t1.message : String(_context.t1));
|
|
352
|
+
case 41:
|
|
348
353
|
case "end":
|
|
349
354
|
return _context.stop();
|
|
350
355
|
}
|
|
351
|
-
}, _callee, this, [[14,
|
|
356
|
+
}, _callee, this, [[14, 38]]);
|
|
352
357
|
}));
|
|
353
358
|
function search(_x, _x2) {
|
|
354
359
|
return _search.apply(this, arguments);
|
|
@@ -492,11 +497,12 @@ var Manager = exports.Manager = /*#__PURE__*/function (_EventEmitter) {
|
|
|
492
497
|
key: "updateVoiceState",
|
|
493
498
|
value: (function () {
|
|
494
499
|
var _updateVoiceState = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4(data) {
|
|
495
|
-
var
|
|
500
|
+
var _data$t;
|
|
501
|
+
var update, player, _player$voiceChannel, _player$voiceState, sessionId, _player$voiceState$ev, token, endpoint;
|
|
496
502
|
return _regeneratorRuntime().wrap(function _callee4$(_context4) {
|
|
497
503
|
while (1) switch (_context4.prev = _context4.next) {
|
|
498
504
|
case 0:
|
|
499
|
-
if (!("t" in data && !["VOICE_STATE_UPDATE", "VOICE_SERVER_UPDATE"].includes(data.t))) {
|
|
505
|
+
if (!("t" in data && !["VOICE_STATE_UPDATE", "VOICE_SERVER_UPDATE"].includes((_data$t = data.t) !== null && _data$t !== void 0 ? _data$t : ""))) {
|
|
500
506
|
_context4.next = 2;
|
|
501
507
|
break;
|
|
502
508
|
}
|
|
@@ -529,8 +535,8 @@ var Manager = exports.Manager = /*#__PURE__*/function (_EventEmitter) {
|
|
|
529
535
|
voice: {
|
|
530
536
|
token: token,
|
|
531
537
|
endpoint: endpoint,
|
|
532
|
-
sessionId: sessionId,
|
|
533
|
-
channelId: player.voiceChannel
|
|
538
|
+
sessionId: sessionId !== null && sessionId !== void 0 ? sessionId : "",
|
|
539
|
+
channelId: (_player$voiceChannel = player.voiceChannel) !== null && _player$voiceChannel !== void 0 ? _player$voiceChannel : ""
|
|
534
540
|
}
|
|
535
541
|
}
|
|
536
542
|
});
|
|
@@ -583,4 +589,4 @@ _defineProperty(Manager, "DEFAULT_SOURCES", {
|
|
|
583
589
|
applemusic: "amsearch",
|
|
584
590
|
bandcamp: "bcsearch"
|
|
585
591
|
});
|
|
586
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZXZlbnRzIiwicmVxdWlyZSIsIl9VdGlscyIsIl9jb2xsZWN0aW9uIiwiX01hbmFnZXJDaGVjayIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJlIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJvIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJjb25zdHJ1Y3RvciIsInByb3RvdHlwZSIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJ0IiwiciIsIk9iamVjdCIsIm4iLCJoYXNPd25Qcm9wZXJ0eSIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiYSIsImMiLCJhc3luY0l0ZXJhdG9yIiwidSIsInRvU3RyaW5nVGFnIiwiZGVmaW5lIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwid3JhcCIsIkdlbmVyYXRvciIsImNyZWF0ZSIsIkNvbnRleHQiLCJtYWtlSW52b2tlTWV0aG9kIiwidHJ5Q2F0Y2giLCJ0eXBlIiwiYXJnIiwiY2FsbCIsImgiLCJsIiwiZiIsInMiLCJ5IiwiR2VuZXJhdG9yRnVuY3Rpb24iLCJHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSIsInAiLCJkIiwiZ2V0UHJvdG90eXBlT2YiLCJ2IiwidmFsdWVzIiwiZyIsImRlZmluZUl0ZXJhdG9yTWV0aG9kcyIsImZvckVhY2giLCJfaW52b2tlIiwiQXN5bmNJdGVyYXRvciIsImludm9rZSIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwibmFtZSIsIm1hcmsiLCJzZXRQcm90b3R5cGVPZiIsIl9fcHJvdG9fXyIsImF3cmFwIiwiYXN5bmMiLCJQcm9taXNlIiwia2V5cyIsInJldmVyc2UiLCJwb3AiLCJwcmV2IiwiY2hhckF0Iiwic2xpY2UiLCJzdG9wIiwicnZhbCIsImhhbmRsZSIsImNvbXBsZXRlIiwiZmluaXNoIiwiX2NhdGNoIiwiZGVsZWdhdGVZaWVsZCIsImFzeW5jR2VuZXJhdG9yU3RlcCIsIl9hc3luY1RvR2VuZXJhdG9yIiwiYXJndW1lbnRzIiwiYXBwbHkiLCJfbmV4dCIsIl90aHJvdyIsIl9zbGljZWRUb0FycmF5IiwiX2FycmF5V2l0aEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlUmVzdCIsIkFycmF5IiwiaXNBcnJheSIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiX24iLCJGIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsImZyb20iLCJ0ZXN0Iiwib3duS2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9vYmplY3RTcHJlYWQiLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIl9jbGFzc0NhbGxDaGVjayIsIl9kZWZpbmVQcm9wZXJ0aWVzIiwiX3RvUHJvcGVydHlLZXkiLCJrZXkiLCJfY3JlYXRlQ2xhc3MiLCJfY2FsbFN1cGVyIiwiX2dldFByb3RvdHlwZU9mIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4iLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsIl9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQiLCJSZWZlcmVuY2VFcnJvciIsIkJvb2xlYW4iLCJ2YWx1ZU9mIiwiYmluZCIsIl9pbmhlcml0cyIsIl9zZXRQcm90b3R5cGVPZiIsIl90b1ByaW1pdGl2ZSIsInRvUHJpbWl0aXZlIiwiU3RyaW5nIiwiTnVtYmVyIiwiTWFuYWdlciIsImV4cG9ydHMiLCJfRXZlbnRFbWl0dGVyIiwib3B0aW9ucyIsIl90aGlzIiwiQ29sbGVjdGlvbiIsIm1hbmFnZXJDaGVjayIsIlN0cnVjdHVyZSIsImdldCIsImluaXQiLCJUcmFja1V0aWxzIiwidHJhY2tQYXJ0aWFsIiwic2V0VHJhY2tQYXJ0aWFsIiwicGx1Z2lucyIsIm5vZGVzIiwiaWRlbnRpZmllciIsImhvc3QiLCJyZXN1bWVTdGF0dXMiLCJyZXN1bWVUaW1lb3V0Iiwic2hhcmRzIiwiYXV0b1BsYXkiLCJ1c2VQcmlvcml0eSIsImNsaWVudE5hbWUiLCJkZWZhdWx0U2VhcmNoUGxhdGZvcm0iLCJ1c2VOb2RlIiwiX2l0ZXJhdG9yIiwiZW50cmllcyIsIl9zdGVwIiwiX3N0ZXAkdmFsdWUiLCJpbmRleCIsInBsdWdpbiIsIlBsdWdpbiIsIlJhbmdlRXJyb3IiLCJjb25jYXQiLCJsb2FkIiwiZXJyIiwiX2l0ZXJhdG9yMiIsIl9zdGVwMiIsIm5vZGVPcHRpb25zIiwibm9kZSIsInNldCIsInNldEludGVydmFsIiwiY2FjaGVzIiwiY2xlYXIiLCJ0aW1lIiwiY29ubmVjdGVkIiwic29ydCIsImIiLCJhbG9hZCIsInN0YXRzIiwiY3B1IiwibGF2YWxpbmtMb2FkIiwiY29yZXMiLCJibG9hZCIsInBsYXllcnMiLCJmaWx0ZXJlZE5vZGVzIiwicHJpb3JpdHkiLCJ0b3RhbFdlaWdodCIsInJlZHVjZSIsInRvdGFsIiwid2VpZ2h0ZWROb2RlcyIsIm1hcCIsIndlaWdodCIsInJhbmRvbU51bWJlciIsIk1hdGgiLCJyYW5kb20iLCJjdW11bGF0aXZlV2VpZ2h0IiwiX2l0ZXJhdG9yMyIsIl9zdGVwMyIsIl9zdGVwMyR2YWx1ZSIsImxlYXN0TG9hZE5vZGUiLCJmaXJzdCIsImxlYXN0UGxheWVyc05vZGUiLCJwcmlvcml0eU5vZGUiLCJjbGllbnRJZCIsImluaXRpYXRlZCIsIl9pdGVyYXRvcjQiLCJfc3RlcDQiLCJjb25uZWN0IiwiZW1pdCIsIl9zZWFyY2giLCJfY2FsbGVlIiwicXVlcnkiLCJyZXF1ZXN0ZXIiLCJfTWFuYWdlciRERUZBVUxUX1NPVVIiLCJfcXVlcnkkc291cmNlIiwiZGF0YSIsIl9xdWVyeSIsIl9zb3VyY2UiLCJzZWFyY2giLCJyZXMiLCJzZWFyY2hEYXRhIiwicGxheWxpc3REYXRhIiwidHJhY2tzIiwicGxheWxpc3QiLCJyZXN1bHQiLCJ0cmFja3NUb1JlcGxhY2UiLCJfaXRlcmF0b3I1IiwiX3N0ZXA1IiwidHJhY2siLCJfdHJhY2skdGl0bGUkc3BsaXQkbWEiLCJfdHJhY2skdGl0bGUkc3BsaXQkbWEyIiwiYXV0aG9yIiwidGl0bGUiLCJpc1lvdVR1YmVVUkwiLCJfY2FsbGVlJCIsIl9jb250ZXh0IiwiX2lzWW91VHViZVVSTCIsInVyaSIsImluY2x1ZGVzIiwidXNlYWJsZU5vZGVzIiwiZW5hYmxlZCIsIkRFRkFVTFRfU09VUkNFUyIsInNvdXJjZSIsInJlc3QiLCJlbmNvZGVVUklDb21wb25lbnQiLCJ0MCIsImxvYWRUeXBlIiwiYnVpbGQiLCJpbmZvIiwiZHVyYXRpb24iLCJhY2MiLCJjdXIiLCJyZXBsYWNlWW91VHViZUNyZWRlbnRpYWxzIiwicmVwbGFjZSIsInNwbGl0Iiwic3RyIiwidHJpbSIsInQxIiwiX3giLCJfeDIiLCJkZWNvZGVUcmFja3MiLCJfdGhpczIiLCJfcmVmIiwiX2NhbGxlZTIiLCJyZWplY3QiLCJfY2FsbGVlMiQiLCJfY29udGV4dDIiLCJwb3N0IiwiSlNPTiIsInN0cmluZ2lmeSIsIl94MyIsIl94NCIsIl9kZWNvZGVUcmFjayIsIl9jYWxsZWUzIiwiX2NhbGxlZTMkIiwiX2NvbnRleHQzIiwiZGVjb2RlVHJhY2siLCJfeDUiLCJoYXMiLCJndWlsZCIsImRlc3Ryb3kiLCJjcmVhdGVOb2RlIiwiZGVzdHJveU5vZGUiLCJfdXBkYXRlVm9pY2VTdGF0ZSIsIl9jYWxsZWU0IiwidXBkYXRlIiwicGxheWVyIiwiX3BsYXllciR2b2ljZVN0YXRlIiwic2Vzc2lvbklkIiwiX3BsYXllciR2b2ljZVN0YXRlJGV2IiwidG9rZW4iLCJlbmRwb2ludCIsIl9jYWxsZWU0JCIsIl9jb250ZXh0NCIsImd1aWxkX2lkIiwidm9pY2VTdGF0ZSIsImV2ZW50IiwidXBkYXRlUGxheWVyIiwiZ3VpbGRJZCIsInZvaWNlIiwiY2hhbm5lbElkIiwidm9pY2VDaGFubmVsIiwidXNlcl9pZCIsImNoYW5uZWxfaWQiLCJzZXNzaW9uX2lkIiwiYXNzaWduIiwidXBkYXRlVm9pY2VTdGF0ZSIsIl94NiIsIkV2ZW50RW1pdHRlciIsInlvdXR1YmUiLCJzcG90aWZ5Iiwiamlvc2Fhdm4iLCJzb3VuZGNsb3VkIiwiZGVlemVyIiwidGlkYWwiLCJhcHBsZW11c2ljIiwiYmFuZGNhbXAiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvU3RydWN0dXJlcy9NYW5hZ2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLWFzeW5jLXByb21pc2UtZXhlY3V0b3IgKi9cbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gXCJldmVudHNcIjtcbmltcG9ydCB7XG5cdExvYWRUeXBlLFxuXHRQbHVnaW4sXG5cdFN0cnVjdHVyZSxcblx0VHJhY2tEYXRhLFxuXHRUcmFja0VuZEV2ZW50LFxuXHRUcmFja0V4Y2VwdGlvbkV2ZW50LFxuXHRUcmFja1N0YXJ0RXZlbnQsXG5cdFRyYWNrU3R1Y2tFdmVudCxcblx0VHJhY2tVdGlscyxcblx0Vm9pY2VQYWNrZXQsXG5cdFZvaWNlU2VydmVyLFxuXHRXZWJTb2NrZXRDbG9zZWRFdmVudCxcbn0gZnJvbSBcIi4vVXRpbHNcIjtcbmltcG9ydCB7IENvbGxlY3Rpb24gfSBmcm9tIFwiQGRpc2NvcmRqcy9jb2xsZWN0aW9uXCI7XG5pbXBvcnQgeyBOb2RlLCBOb2RlT3B0aW9ucyB9IGZyb20gXCIuL05vZGVcIjtcbmltcG9ydCB7IFBsYXllciwgUGxheWVyT3B0aW9ucywgVHJhY2ssIFVucmVzb2x2ZWRUcmFjayB9IGZyb20gXCIuL1BsYXllclwiO1xuaW1wb3J0IHsgVm9pY2VTdGF0ZSB9IGZyb20gXCIuLlwiO1xuaW1wb3J0IG1hbmFnZXJDaGVjayBmcm9tIFwiLi4vVXRpbHMvTWFuYWdlckNoZWNrXCI7XG5pbXBvcnQgeyBDbGllbnRVc2VyLCBVc2VyIH0gZnJvbSBcImRpc2NvcmQuanNcIjtcblxuXG5cbi8qKlxuICogVGhlIG1haW4gaHViIGZvciBpbnRlcmFjdGluZyB3aXRoIExhdmFsaW5rIGFuZCB1c2luZyBNYWdtYXN0cmVhbSxcbiAqL1xuZXhwb3J0IGNsYXNzIE1hbmFnZXIgZXh0ZW5kcyBFdmVudEVtaXR0ZXIge1xuXHRwdWJsaWMgc3RhdGljIHJlYWRvbmx5IERFRkFVTFRfU09VUkNFUzogUmVjb3JkPFNlYXJjaFBsYXRmb3JtLCBzdHJpbmc+ID0ge1xuXHRcdFwieW91dHViZSBtdXNpY1wiOiBcInl0bXNlYXJjaFwiLFxuXHRcdHlvdXR1YmU6IFwieXRzZWFyY2hcIixcblx0XHRzcG90aWZ5OiBcInNwc2VhcmNoXCIsXG5cdFx0amlvc2Fhdm46IFwianNzZWFyY2hcIixcblx0XHRzb3VuZGNsb3VkOiBcInNjc2VhcmNoXCIsXG5cdFx0ZGVlemVyOiBcImR6c2VhcmNoXCIsXG5cdFx0dGlkYWw6IFwidGRzZWFyY2hcIixcblx0XHRhcHBsZW11c2ljOiBcImFtc2VhcmNoXCIsXG5cdFx0YmFuZGNhbXA6IFwiYmNzZWFyY2hcIixcblx0fTtcblxuXHQvKiogVGhlIG1hcCBvZiBwbGF5ZXJzLiAqL1xuXHRwdWJsaWMgcmVhZG9ubHkgcGxheWVycyA9IG5ldyBDb2xsZWN0aW9uPHN0cmluZywgUGxheWVyPigpO1xuXHQvKiogVGhlIG1hcCBvZiBub2Rlcy4gKi9cblx0cHVibGljIHJlYWRvbmx5IG5vZGVzID0gbmV3IENvbGxlY3Rpb248c3RyaW5nLCBOb2RlPigpO1xuXHQvKiogVGhlIG9wdGlvbnMgdGhhdCB3ZXJlIHNldC4gKi9cblx0cHVibGljIHJlYWRvbmx5IG9wdGlvbnM6IE1hbmFnZXJPcHRpb25zO1xuXHRwcml2YXRlIGluaXRpYXRlZCA9IGZhbHNlO1xuXHRwdWJsaWMgY2FjaGVzID0gbmV3IENvbGxlY3Rpb248c3RyaW5nLCBTZWFyY2hSZXN1bHQ+KCk7XG5cblx0LyoqIFJldHVybnMgdGhlIG5vZGVzIHRoYXQgaGFzIHRoZSBsZWFzdCBsb2FkLiAqL1xuXHRwdWJsaWMgZ2V0IGxlYXN0TG9hZE5vZGUoKTogQ29sbGVjdGlvbjxzdHJpbmcsIE5vZGU+IHtcblx0XHRyZXR1cm4gdGhpcy5ub2Rlc1xuXHRcdFx0LmZpbHRlcigobm9kZSkgPT4gbm9kZS5jb25uZWN0ZWQpXG5cdFx0XHQuc29ydCgoYSwgYikgPT4ge1xuXHRcdFx0XHRjb25zdCBhbG9hZCA9IGEuc3RhdHMuY3B1ID8gKGEuc3RhdHMuY3B1LmxhdmFsaW5rTG9hZCAvIGEuc3RhdHMuY3B1LmNvcmVzKSAqIDEwMCA6IDA7XG5cdFx0XHRcdGNvbnN0IGJsb2FkID0gYi5zdGF0cy5jcHUgPyAoYi5zdGF0cy5jcHUubGF2YWxpbmtMb2FkIC8gYi5zdGF0cy5jcHUuY29yZXMpICogMTAwIDogMDtcblx0XHRcdFx0cmV0dXJuIGFsb2FkIC0gYmxvYWQ7XG5cdFx0XHR9KTtcblx0fVxuXG5cdC8qKiBSZXR1cm5zIHRoZSBub2RlcyB0aGF0IGhhcyB0aGUgbGVhc3QgYW1vdW50IG9mIHBsYXllcnMuICovXG5cdHByaXZhdGUgZ2V0IGxlYXN0UGxheWVyc05vZGUoKTogQ29sbGVjdGlvbjxzdHJpbmcsIE5vZGU+IHtcblx0XHRyZXR1cm4gdGhpcy5ub2Rlcy5maWx0ZXIoKG5vZGUpID0+IG5vZGUuY29ubmVjdGVkKS5zb3J0KChhLCBiKSA9PiBhLnN0YXRzLnBsYXllcnMgLSBiLnN0YXRzLnBsYXllcnMpO1xuXHR9XG5cblx0XG5cblx0LyoqIFJldHVybnMgYSBub2RlIGJhc2VkIG9uIHByaW9yaXR5LiAqL1xuXHRwcml2YXRlIGdldCBwcmlvcml0eU5vZGUoKTogTm9kZSB7XG5cdFx0Y29uc3QgZmlsdGVyZWROb2RlcyA9IHRoaXMubm9kZXMuZmlsdGVyKChub2RlKSA9PiBub2RlLmNvbm5lY3RlZCAmJiBub2RlLm9wdGlvbnMucHJpb3JpdHkgPiAwKTtcblx0XHRjb25zdCB0b3RhbFdlaWdodCA9IGZpbHRlcmVkTm9kZXMucmVkdWNlKCh0b3RhbCwgbm9kZSkgPT4gdG90YWwgKyBub2RlLm9wdGlvbnMucHJpb3JpdHksIDApO1xuXHRcdGNvbnN0IHdlaWdodGVkTm9kZXMgPSBmaWx0ZXJlZE5vZGVzLm1hcCgobm9kZSkgPT4gKHtcblx0XHRcdG5vZGUsXG5cdFx0XHR3ZWlnaHQ6IG5vZGUub3B0aW9ucy5wcmlvcml0eSAvIHRvdGFsV2VpZ2h0LFxuXHRcdH0pKTtcblx0XHRjb25zdCByYW5kb21OdW1iZXIgPSBNYXRoLnJhbmRvbSgpO1xuXG5cdFx0bGV0IGN1bXVsYXRpdmVXZWlnaHQgPSAwO1xuXG5cdFx0Zm9yIChjb25zdCB7IG5vZGUsIHdlaWdodCB9IG9mIHdlaWdodGVkTm9kZXMpIHtcblx0XHRcdGN1bXVsYXRpdmVXZWlnaHQgKz0gd2VpZ2h0O1xuXHRcdFx0aWYgKHJhbmRvbU51bWJlciA8PSBjdW11bGF0aXZlV2VpZ2h0KSB7XG5cdFx0XHRcdHJldHVybiBub2RlO1xuXHRcdFx0fVxuXHRcdH1cblxuXHRcdHJldHVybiB0aGlzLm9wdGlvbnMudXNlTm9kZSA9PT0gXCJsZWFzdExvYWRcIiA/IHRoaXMubGVhc3RMb2FkTm9kZS5maXJzdCgpIDogdGhpcy5sZWFzdFBsYXllcnNOb2RlLmZpcnN0KCk7XG5cdH1cblxuXHQvKiogUmV0dXJucyB0aGUgbm9kZSB0byB1c2UuICovXG5cdHB1YmxpYyBnZXQgdXNlYWJsZU5vZGVzKCk6IE5vZGUge1xuXHRcdHJldHVybiB0aGlzLm9wdGlvbnMudXNlUHJpb3JpdHkgPyB0aGlzLnByaW9yaXR5Tm9kZSA6IHRoaXMub3B0aW9ucy51c2VOb2RlID09PSBcImxlYXN0TG9hZFwiID8gdGhpcy5sZWFzdExvYWROb2RlLmZpcnN0KCkgOiB0aGlzLmxlYXN0UGxheWVyc05vZGUuZmlyc3QoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBJbml0aWF0ZXMgdGhlIE1hbmFnZXIgY2xhc3MuXG5cdCAqIEBwYXJhbSBvcHRpb25zXG5cdCAqL1xuXHRjb25zdHJ1Y3RvcihvcHRpb25zOiBNYW5hZ2VyT3B0aW9ucykge1xuXHRcdHN1cGVyKCk7XG5cblx0XHRtYW5hZ2VyQ2hlY2sob3B0aW9ucyk7XG5cdFx0U3RydWN0dXJlLmdldChcIlBsYXllclwiKS5pbml0KHRoaXMpO1xuXHRcdFN0cnVjdHVyZS5nZXQoXCJOb2RlXCIpLmluaXQodGhpcyk7XG5cdFx0VHJhY2tVdGlscy5pbml0KHRoaXMpO1xuXHRcdFxuXHRcdGlmIChvcHRpb25zLnRyYWNrUGFydGlhbCkge1xuXHRcdFx0VHJhY2tVdGlscy5zZXRUcmFja1BhcnRpYWwob3B0aW9ucy50cmFja1BhcnRpYWwpO1xuXHRcdFx0ZGVsZXRlIG9wdGlvbnMudHJhY2tQYXJ0aWFsO1xuXHRcdH1cblxuXHRcdHRoaXMub3B0aW9ucyA9IHtcblx0XHRcdHBsdWdpbnM6IFtdLFxuXHRcdFx0bm9kZXM6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGlkZW50aWZpZXI6IFwiZGVmYXVsdFwiLFxuXHRcdFx0XHRcdGhvc3Q6IFwibG9jYWxob3N0XCIsXG5cdFx0XHRcdFx0cmVzdW1lU3RhdHVzOiBmYWxzZSxcblx0XHRcdFx0XHRyZXN1bWVUaW1lb3V0OiAxMDAwLFxuXHRcdFx0XHR9LFxuXHRcdFx0XSxcblx0XHRcdHNoYXJkczogMSxcblx0XHRcdGF1dG9QbGF5OiB0cnVlLFxuXHRcdFx0dXNlUHJpb3JpdHk6IGZhbHNlLFxuXHRcdFx0Y2xpZW50TmFtZTogXCJGb3IgdjMuMFwiLFxuXHRcdFx0ZGVmYXVsdFNlYXJjaFBsYXRmb3JtOiBcInlvdXR1YmVcIixcblx0XHRcdHVzZU5vZGU6IFwibGVhc3RQbGF5ZXJzXCIsXG5cdFx0XHQuLi5vcHRpb25zLFxuXHRcdH07XG5cblx0XHRcblxuXHRcdGlmICh0aGlzLm9wdGlvbnMucGx1Z2lucykge1xuXHRcdFx0Zm9yIChjb25zdCBbaW5kZXgsIHBsdWdpbl0gb2YgdGhpcy5vcHRpb25zLnBsdWdpbnMuZW50cmllcygpKSB7XG5cdFx0XHRcdGlmICghKHBsdWdpbiBpbnN0YW5jZW9mIFBsdWdpbikpIHRocm93IG5ldyBSYW5nZUVycm9yKGBQbHVnaW4gYXQgaW5kZXggJHtpbmRleH0gZG9lcyBub3QgZXh0ZW5kIFBsdWdpbi5gKTtcblx0XHRcdFx0cGx1Z2luLmxvYWQodGhpcyk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMub3B0aW9ucy5ub2Rlcykge1xuXHRcdFx0Zm9yIChjb25zdCBub2RlT3B0aW9ucyBvZiB0aGlzLm9wdGlvbnMubm9kZXMpIHtcblx0XHRcdFx0Y29uc3Qgbm9kZSA9IG5ldyAoU3RydWN0dXJlLmdldChcIk5vZGVcIikpKG5vZGVPcHRpb25zKTtcblx0XHRcdFx0dGhpcy5ub2Rlcy5zZXQobm9kZS5vcHRpb25zLmlkZW50aWZpZXIsIG5vZGUpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRzZXRJbnRlcnZhbCgoKSA9PiB7XG5cdFx0XHR0aGlzLmNhY2hlcy5jbGVhcigpO1xuXHRcdH0sIHRoaXMub3B0aW9ucy5jYWNoZXMudGltZSk7XG5cdH1cblxuXG5cdC8qKlxuXHQgKiBJbml0aWF0ZXMgdGhlIE1hbmFnZXIuXG5cdCAqIEBwYXJhbSBjbGllbnRJZFxuXHQgKi9cblx0cHVibGljIGluaXQoY2xpZW50SWQ/OiBzdHJpbmcpOiB0aGlzIHtcblx0XHRpZiAodGhpcy5pbml0aWF0ZWQpIHJldHVybiB0aGlzO1xuXHRcdGlmICh0eXBlb2YgY2xpZW50SWQgIT09IFwidW5kZWZpbmVkXCIpIHRoaXMub3B0aW9ucy5jbGllbnRJZCA9IGNsaWVudElkO1xuXG5cdFx0aWYgKHR5cGVvZiB0aGlzLm9wdGlvbnMuY2xpZW50SWQgIT09IFwic3RyaW5nXCIpIHRocm93IG5ldyBFcnJvcignXCJjbGllbnRJZFwiIHNldCBpcyBub3QgdHlwZSBvZiBcInN0cmluZ1wiJyk7XG5cblx0XHRpZiAoIXRoaXMub3B0aW9ucy5jbGllbnRJZCkgdGhyb3cgbmV3IEVycm9yKCdcImNsaWVudElkXCIgaXMgbm90IHNldC4gUGFzcyBpdCBpbiBNYW5hZ2VyI2luaXQoKSBvciBhcyBhIG9wdGlvbiBpbiB0aGUgY29uc3RydWN0b3IuJyk7XG5cblx0XHRmb3IgKGNvbnN0IG5vZGUgb2YgdGhpcy5ub2Rlcy52YWx1ZXMoKSkge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0bm9kZS5jb25uZWN0KCk7XG5cdFx0XHR9IGNhdGNoIChlcnIpIHtcblx0XHRcdFx0dGhpcy5lbWl0KFwiTm9kZUVycm9yXCIsIG5vZGUsIGVycik7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0dGhpcy5pbml0aWF0ZWQgPSB0cnVlO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNlYXJjaGVzIHRoZSBlbmFibGVkIHNvdXJjZXMgYmFzZWQgb2ZmIHRoZSBVUkwgb3IgdGhlIGBzb3VyY2VgIHByb3BlcnR5LlxuXHQgKiBAcGFyYW0gcXVlcnlcblx0ICogQHBhcmFtIHJlcXVlc3RlclxuXHQgKiBAcmV0dXJucyBUaGUgc2VhcmNoIHJlc3VsdC5cblx0ICovXG5cdHB1YmxpYyBhc3luYyBzZWFyY2gocXVlcnk6IHN0cmluZyB8IFNlYXJjaFF1ZXJ5LCByZXF1ZXN0ZXI/OiBVc2VyIHwgQ2xpZW50VXNlcik6IFByb21pc2U8U2VhcmNoUmVzdWx0PiB7XG5cdFx0Y29uc3Qgbm9kZSA9IHRoaXMudXNlYWJsZU5vZGVzO1xuXG5cdFx0aWYgKCFub2RlKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJObyBhdmFpbGFibGUgbm9kZXMuXCIpO1xuXHRcdH1cblx0XHRpZiAodGhpcy5vcHRpb25zLmNhY2hlcy5lbmFibGVkICYmIHRoaXMub3B0aW9ucy5jYWNoZXMudGltZSA+IDAgJiYgdHlwZW9mIHF1ZXJ5ID09PSBcInN0cmluZ1wiKSB7XG5cdFx0XHRjb25zdCBkYXRhID0gdGhpcy5jYWNoZXMuZ2V0KHF1ZXJ5KTtcblx0XHRcdGlmIChkYXRhKSByZXR1cm4gZGF0YTtcblx0XHR9XG5cdFx0Y29uc3QgX3F1ZXJ5OiBTZWFyY2hRdWVyeSA9IHR5cGVvZiBxdWVyeSA9PT0gXCJzdHJpbmdcIiA/IHsgcXVlcnkgfSA6IHF1ZXJ5O1xuXHRcdGNvbnN0IF9zb3VyY2UgPSBNYW5hZ2VyLkRFRkFVTFRfU09VUkNFU1tfcXVlcnkuc291cmNlID8/IHRoaXMub3B0aW9ucy5kZWZhdWx0U2VhcmNoUGxhdGZvcm1dID8/IF9xdWVyeS5zb3VyY2U7XG5cdFx0bGV0IHNlYXJjaCA9IF9xdWVyeS5xdWVyeTtcblxuXHRcdGlmICghL15odHRwcz86XFwvXFwvLy50ZXN0KHNlYXJjaCkpIHtcblx0XHRcdHNlYXJjaCA9IGAke19zb3VyY2V9OiR7c2VhcmNofWA7XG5cdFx0fVxuXG5cdFx0aWYgKHR5cGVvZiBxdWVyeSAhPT0gXCJzdHJpbmdcIikge1xuXHRcdFx0dGhyb3cgbmV3IFR5cGVFcnJvcihcIlF1ZXJ5IG11c3QgYmUgYSBzdHJpbmcuXCIpO1xuXHRcdH1cblxuXHRcdHRyeSB7XG5cdFx0XHRjb25zdCByZXMgPSAoYXdhaXQgbm9kZS5yZXN0LmdldChgL3Y0L2xvYWR0cmFja3M/aWRlbnRpZmllcj0ke2VuY29kZVVSSUNvbXBvbmVudChzZWFyY2gpfWApKSBhcyBMYXZhbGlua1Jlc3BvbnNlO1xuXHRcdFx0aWYgKCFyZXMpIHRocm93IG5ldyBFcnJvcihcIlF1ZXJ5IG5vdCBmb3VuZC5cIik7XG5cblx0XHRcdGxldCBzZWFyY2hEYXRhID0gW107XG5cdFx0XHRsZXQgcGxheWxpc3REYXRhOiBQbGF5bGlzdFJhd0RhdGEgfCB1bmRlZmluZWQ7XG5cblx0XHRcdHN3aXRjaCAocmVzLmxvYWRUeXBlKSB7XG5cdFx0XHRcdGNhc2UgXCJzZWFyY2hcIjpcblx0XHRcdFx0XHRzZWFyY2hEYXRhID0gcmVzLmRhdGEgYXMgVHJhY2tEYXRhW107XG5cdFx0XHRcdFx0YnJlYWs7XG5cblx0XHRcdFx0Y2FzZSBcInRyYWNrXCI6XG5cdFx0XHRcdFx0c2VhcmNoRGF0YSA9IFtyZXMuZGF0YSBhcyBUcmFja0RhdGFbXV07XG5cdFx0XHRcdFx0YnJlYWs7XG5cblx0XHRcdFx0Y2FzZSBcInBsYXlsaXN0XCI6XG5cdFx0XHRcdFx0cGxheWxpc3REYXRhID0gcmVzLmRhdGEgYXMgUGxheWxpc3RSYXdEYXRhO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCB0cmFja3MgPSBzZWFyY2hEYXRhLm1hcCgodHJhY2spID0+IFRyYWNrVXRpbHMuYnVpbGQodHJhY2ssIHJlcXVlc3RlcikpO1xuXHRcdFx0bGV0IHBsYXlsaXN0ID0gbnVsbDtcblxuXHRcdFx0aWYgKHJlcy5sb2FkVHlwZSA9PT0gXCJwbGF5bGlzdFwiKSB7XG5cdFx0XHRcdHBsYXlsaXN0ID0ge1xuXHRcdFx0XHRcdG5hbWU6IHBsYXlsaXN0RGF0YSEuaW5mby5uYW1lLFxuXHRcdFx0XHRcdHRyYWNrczogcGxheWxpc3REYXRhIS50cmFja3MubWFwKCh0cmFjaykgPT4gVHJhY2tVdGlscy5idWlsZCh0cmFjaywgcmVxdWVzdGVyKSksXG5cdFx0XHRcdFx0ZHVyYXRpb246IHBsYXlsaXN0RGF0YSEudHJhY2tzLnJlZHVjZSgoYWNjLCBjdXIpID0+IGFjYyArIChjdXIuaW5mby5sZW5ndGggfHwgMCksIDApLFxuXHRcdFx0XHR9O1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCByZXN1bHQ6IFNlYXJjaFJlc3VsdCA9IHtcblx0XHRcdFx0bG9hZFR5cGU6IHJlcy5sb2FkVHlwZSxcblx0XHRcdFx0dHJhY2tzLFxuXHRcdFx0XHRwbGF5bGlzdCxcblx0XHRcdH07XG5cblx0XHRcdGlmICh0aGlzLm9wdGlvbnMucmVwbGFjZVlvdVR1YmVDcmVkZW50aWFscykge1xuXHRcdFx0XHRsZXQgdHJhY2tzVG9SZXBsYWNlOiBUcmFja1tdID0gW107XG5cdFx0XHRcdGlmIChyZXN1bHQubG9hZFR5cGUgPT09IFwicGxheWxpc3RcIikge1xuXHRcdFx0XHRcdHRyYWNrc1RvUmVwbGFjZSA9IHJlc3VsdC5wbGF5bGlzdC50cmFja3M7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dHJhY2tzVG9SZXBsYWNlID0gcmVzdWx0LnRyYWNrcztcblx0XHRcdFx0fVxuXG5cdFx0XHRcdGZvciAoY29uc3QgdHJhY2sgb2YgdHJhY2tzVG9SZXBsYWNlKSB7XG5cdFx0XHRcdFx0aWYgKGlzWW91VHViZVVSTCh0cmFjay51cmkpKSB7XG5cdFx0XHRcdFx0XHR0cmFjay5hdXRob3IgPSB0cmFjay5hdXRob3IucmVwbGFjZShcIi0gVG9waWNcIiwgXCJcIik7XG5cdFx0XHRcdFx0XHR0cmFjay50aXRsZSA9IHRyYWNrLnRpdGxlLnJlcGxhY2UoXCJUb3BpYyAtXCIsIFwiXCIpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRpZiAodHJhY2sudGl0bGUuaW5jbHVkZXMoXCItXCIpKSB7XG5cdFx0XHRcdFx0XHRjb25zdCBbYXV0aG9yLCB0aXRsZV0gPSB0cmFjay50aXRsZS5zcGxpdChcIi1cIikubWFwKChzdHI6IHN0cmluZykgPT4gc3RyLnRyaW0oKSk7XG5cdFx0XHRcdFx0XHR0cmFjay5hdXRob3IgPSBhdXRob3I7XG5cdFx0XHRcdFx0XHR0cmFjay50aXRsZSA9IHRpdGxlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdFx0aWYgKHRoaXMub3B0aW9ucy5jYWNoZXMuZW5hYmxlZCAmJiB0aGlzLm9wdGlvbnMuY2FjaGVzLnRpbWUgPiAwKSB0aGlzLmNhY2hlcy5zZXQoc2VhcmNoLCByZXN1bHQpO1xuXHRcdFx0cmV0dXJuIHJlc3VsdDtcblx0XHR9IGNhdGNoIChlcnIpIHtcblx0XHRcdHRocm93IG5ldyBFcnJvcihlcnIpO1xuXHRcdH1cblxuXHRcdGZ1bmN0aW9uIGlzWW91VHViZVVSTCh1cmk6IHN0cmluZyk6IGJvb2xlYW4ge1xuXHRcdFx0cmV0dXJuIHVyaS5pbmNsdWRlcyhcInlvdXR1YmUuY29tXCIpIHx8IHVyaS5pbmNsdWRlcyhcInlvdXR1LmJlXCIpO1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBEZWNvZGVzIHRoZSBiYXNlNjQgZW5jb2RlZCB0cmFja3MgYW5kIHJldHVybnMgYSBUcmFja0RhdGEgYXJyYXkuXG5cdCAqIEBwYXJhbSB0cmFja3Ncblx0ICovXG5cdHB1YmxpYyBkZWNvZGVUcmFja3ModHJhY2tzOiBzdHJpbmdbXSk6IFByb21pc2U8VHJhY2tEYXRhW10+IHtcblx0XHRyZXR1cm4gbmV3IFByb21pc2UoYXN5bmMocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG5cdFx0XHRjb25zdCBub2RlID0gdGhpcy5ub2Rlcy5maXJzdCgpO1xuXHRcdFx0aWYgKCFub2RlKSB7XG5cdFx0XHRcdHJldHVybiByZWplY3QobmV3IEVycm9yKFwiTm8gYXZhaWxhYmxlIG5vZGVzLlwiKSk7XG5cdFx0XHR9XG5cdFxuXHRcdFx0YXdhaXQgbm9kZS5yZXN0LnBvc3QoXCIvdjQvZGVjb2RldHJhY2tzXCIsIEpTT04uc3RyaW5naWZ5KHRyYWNrcykpXG5cdFx0XHRcdC50aGVuKChyZXMpID0+IHtcblx0XHRcdFx0XHRpZiAoIXJlcykgcmV0dXJuIHJlamVjdChuZXcgRXJyb3IoXCJObyBkYXRhIHJldHVybmVkIGZyb20gcXVlcnkuXCIpKTtcblx0XHRcdFx0XHRyZXNvbHZlKHJlcyBhcyBUcmFja0RhdGFbXSk7XG5cdFx0XHRcdH0pXG5cdFx0XHRcdC5jYXRjaCgoZXJyKSA9PiByZWplY3QoZXJyKSk7XG5cdFx0fSk7XG5cdH1cblxuXHQvKipcblx0ICogRGVjb2RlcyB0aGUgYmFzZTY0IGVuY29kZWQgdHJhY2sgYW5kIHJldHVybnMgYSBUcmFja0RhdGEuXG5cdCAqIEBwYXJhbSB0cmFja1xuXHQgKi9cblx0cHVibGljIGFzeW5jIGRlY29kZVRyYWNrKHRyYWNrOiBzdHJpbmcpOiBQcm9taXNlPFRyYWNrRGF0YT4ge1xuXHRcdGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuZGVjb2RlVHJhY2tzKFt0cmFja10pO1xuXHRcdHJldHVybiByZXNbMF07XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlcyBhIHBsYXllciBvciByZXR1cm5zIG9uZSBpZiBpdCBhbHJlYWR5IGV4aXN0cy5cblx0ICogQHBhcmFtIG9wdGlvbnNcblx0ICovXG5cdHB1YmxpYyBjcmVhdGUob3B0aW9uczogUGxheWVyT3B0aW9ucyk6IFBsYXllciB7XG5cdFx0aWYgKHRoaXMucGxheWVycy5oYXMob3B0aW9ucy5ndWlsZCkpIHtcblx0XHRcdHJldHVybiB0aGlzLnBsYXllcnMuZ2V0KG9wdGlvbnMuZ3VpbGQpO1xuXHRcdH1cblxuXHRcdHJldHVybiBuZXcgKFN0cnVjdHVyZS5nZXQoXCJQbGF5ZXJcIikpKG9wdGlvbnMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgYSBwbGF5ZXIgb3IgdW5kZWZpbmVkIGlmIGl0IGRvZXMgbm90IGV4aXN0LlxuXHQgKiBAcGFyYW0gZ3VpbGRcblx0ICovXG5cdHB1YmxpYyBnZXQoZ3VpbGQ6IHN0cmluZyk6IFBsYXllciB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMucGxheWVycy5nZXQoZ3VpbGQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIERlc3Ryb3lzIGEgcGxheWVyIGlmIGl0IGV4aXN0cy5cblx0ICogQHBhcmFtIGd1aWxkXG5cdCAqL1xuXHRwdWJsaWMgZGVzdHJveShndWlsZDogc3RyaW5nKTogdm9pZCB7XG5cdFx0dGhpcy5wbGF5ZXJzLmRlbGV0ZShndWlsZCk7XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlcyBhIG5vZGUgb3IgcmV0dXJucyBvbmUgaWYgaXQgYWxyZWFkeSBleGlzdHMuXG5cdCAqIEBwYXJhbSBvcHRpb25zXG5cdCAqL1xuXHRwdWJsaWMgY3JlYXRlTm9kZShvcHRpb25zOiBOb2RlT3B0aW9ucyk6IE5vZGUge1xuXHRcdGlmICh0aGlzLm5vZGVzLmhhcyhvcHRpb25zLmlkZW50aWZpZXIgfHwgb3B0aW9ucy5ob3N0KSkge1xuXHRcdFx0cmV0dXJuIHRoaXMubm9kZXMuZ2V0KG9wdGlvbnMuaWRlbnRpZmllciB8fCBvcHRpb25zLmhvc3QpO1xuXHRcdH1cblxuXHRcdHJldHVybiBuZXcgKFN0cnVjdHVyZS5nZXQoXCJOb2RlXCIpKShvcHRpb25zKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBEZXN0cm95cyBhIG5vZGUgaWYgaXQgZXhpc3RzLlxuXHQgKiBAcGFyYW0gaWRlbnRpZmllclxuXHQgKi9cblx0cHVibGljIGRlc3Ryb3lOb2RlKGlkZW50aWZpZXI6IHN0cmluZyk6IHZvaWQge1xuXHRcdGNvbnN0IG5vZGUgPSB0aGlzLm5vZGVzLmdldChpZGVudGlmaWVyKTtcblx0XHRpZiAoIW5vZGUpIHJldHVybjtcblx0XHRub2RlLmRlc3Ryb3koKTtcblx0XHR0aGlzLm5vZGVzLmRlbGV0ZShpZGVudGlmaWVyKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBTZW5kcyB2b2ljZSBkYXRhIHRvIHRoZSBMYXZhbGluayBzZXJ2ZXIuXG5cdCAqIEBwYXJhbSBkYXRhXG5cdCAqL1xuXHRwdWJsaWMgYXN5bmMgdXBkYXRlVm9pY2VTdGF0ZShkYXRhOiBWb2ljZVBhY2tldCB8IFZvaWNlU2VydmVyIHwgVm9pY2VTdGF0ZSk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGlmIChcInRcIiBpbiBkYXRhICYmICFbXCJWT0lDRV9TVEFURV9VUERBVEVcIiwgXCJWT0lDRV9TRVJWRVJfVVBEQVRFXCJdLmluY2x1ZGVzKGRhdGEudCkpIHJldHVybjtcblxuXHRcdGNvbnN0IHVwZGF0ZSA9IFwiZFwiIGluIGRhdGEgPyBkYXRhLmQgOiBkYXRhO1xuXG5cdFx0aWYgKCF1cGRhdGUgfHwgKCEoXCJ0b2tlblwiIGluIHVwZGF0ZSkgJiYgIShcInNlc3Npb25faWRcIiBpbiB1cGRhdGUpKSkgcmV0dXJuO1xuXG5cdFx0Y29uc3QgcGxheWVyID0gdGhpcy5wbGF5ZXJzLmdldCh1cGRhdGUuZ3VpbGRfaWQpO1xuXG5cdFx0aWYgKCFwbGF5ZXIpIHJldHVybjtcblx0XHRpZiAoXCJ0b2tlblwiIGluIHVwZGF0ZSkge1xuXHRcdFx0cGxheWVyLnZvaWNlU3RhdGUuZXZlbnQgPSB1cGRhdGU7XG5cblx0XHRcdGNvbnN0IHtcblx0XHRcdFx0c2Vzc2lvbklkLFxuXHRcdFx0XHRldmVudDogeyB0b2tlbiwgZW5kcG9pbnQgfSxcblx0XHRcdH0gPSBwbGF5ZXIudm9pY2VTdGF0ZTtcblxuXHRcdFx0YXdhaXQgcGxheWVyLm5vZGUucmVzdC51cGRhdGVQbGF5ZXIoe1xuXHRcdFx0XHRndWlsZElkOiBwbGF5ZXIuZ3VpbGQsXG5cdFx0XHRcdGRhdGE6IHsgdm9pY2U6IHsgdG9rZW4sIGVuZHBvaW50LCBzZXNzaW9uSWQsIGNoYW5uZWxJZDogcGxheWVyLnZvaWNlQ2hhbm5lbCB9IH0sXG5cdFx0XHR9KTtcblxuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdGlmICh1cGRhdGUudXNlcl9pZCAhPT0gdGhpcy5vcHRpb25zLmNsaWVudElkKSByZXR1cm47XG5cdFx0aWYgKHVwZGF0ZS5jaGFubmVsX2lkKSB7XG5cdFx0XHRpZiAocGxheWVyLnZvaWNlQ2hhbm5lbCAhPT0gdXBkYXRlLmNoYW5uZWxfaWQpIHtcblx0XHRcdFx0dGhpcy5lbWl0KFwiUGxheWVyTW92ZVwiLCBwbGF5ZXIsIHBsYXllci52b2ljZUNoYW5uZWwsIHVwZGF0ZS5jaGFubmVsX2lkKTtcblx0XHRcdH1cblxuXHRcdFx0cGxheWVyLnZvaWNlU3RhdGUuc2Vzc2lvbklkID0gdXBkYXRlLnNlc3Npb25faWQ7XG5cdFx0XHRwbGF5ZXIudm9pY2VDaGFubmVsID0gdXBkYXRlLmNoYW5uZWxfaWQ7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0dGhpcy5lbWl0KFwiUGxheWVyRGlzY29ubmVjdFwiLCBwbGF5ZXIsIHBsYXllci52b2ljZUNoYW5uZWwpO1xuXHRcdHBsYXllci52b2ljZUNoYW5uZWwgPSBudWxsO1xuXHRcdHBsYXllci52b2ljZVN0YXRlID0gT2JqZWN0LmFzc2lnbih7fSk7XG5cdFx0cGxheWVyLmRlc3Ryb3koKTtcblx0XHRyZXR1cm47XG5cdH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBQYXlsb2FkIHtcblx0LyoqIFRoZSBPUCBjb2RlICovXG5cdG9wOiBudW1iZXI7XG5cdGQ6IHtcblx0XHRndWlsZF9pZDogc3RyaW5nO1xuXHRcdGNoYW5uZWxfaWQ6IHN0cmluZyB8IG51bGw7XG5cdFx0c2VsZl9tdXRlOiBib29sZWFuO1xuXHRcdHNlbGZfZGVhZjogYm9vbGVhbjtcblx0fTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYW5hZ2VyT3B0aW9ucyB7XG5cdC8qKiBVc2UgcHJpb3JpdHkgbW9kZSBvdmVyIGxlYXN0IGFtb3VudCBvZiBwbGF5ZXIgb3IgbG9hZD8gKi9cblx0dXNlUHJpb3JpdHk/OiBib29sZWFuO1xuXHQvKiogVXNlIHRoZSBsZWFzdCBhbW91bnQgb2YgcGxheWVycyBvciBsZWFzdCBsb2FkPyAqL1xuXHR1c2VOb2RlPzogXCJsZWFzdExvYWRcIiB8IFwibGVhc3RQbGF5ZXJzXCI7XG5cdC8qKiBUaGUgYXJyYXkgb2Ygbm9kZXMgdG8gY29ubmVjdCB0by4gKi9cblx0bm9kZXM/OiBOb2RlT3B0aW9uc1tdO1xuXHQvKiogVGhlIGNsaWVudCBJRCB0byB1c2UuICovXG5cdGNsaWVudElkPzogc3RyaW5nO1xuXHQvKiogVmFsdWUgdG8gdXNlIGZvciB0aGUgYENsaWVudC1OYW1lYCBoZWFkZXIuICovXG5cdGNsaWVudE5hbWU/OiBzdHJpbmc7XG5cdC8qKiBUaGUgc2hhcmQgY291bnQuICovXG5cdHNoYXJkcz86IG51bWJlcjtcblx0LyoqIEEgYXJyYXkgb2YgcGx1Z2lucyB0byB1c2UuICovXG5cdHBsdWdpbnM/OiBQbHVnaW5bXTtcblx0LyoqIFdoZXRoZXIgcGxheWVycyBzaG91bGQgYXV0b21hdGljYWxseSBwbGF5IHRoZSBuZXh0IHNvbmcuICovXG5cdGF1dG9QbGF5PzogYm9vbGVhbjtcblx0LyoqIEFuIGFycmF5IG9mIHRyYWNrIHByb3BlcnRpZXMgdG8ga2VlcC4gYHRyYWNrYCB3aWxsIGFsd2F5cyBiZSBwcmVzZW50LiAqL1xuXHR0cmFja1BhcnRpYWw/OiBzdHJpbmdbXTtcblx0LyoqIFRoZSBkZWZhdWx0IHNlYXJjaCBwbGF0Zm9ybSB0byB1c2UsIGNhbiBiZSBcInlvdXR1YmVcIiwgXCJ5b3V0dWJlIG11c2ljXCIsIFwic291bmRjbG91ZFwiIG9yIGRlZXplci4gKi9cblx0ZGVmYXVsdFNlYXJjaFBsYXRmb3JtPzogU2VhcmNoUGxhdGZvcm07XG5cdC8qKiBXaGV0aGVyIHRoZSBZb3VUdWJlIHZpZGVvIHRpdGxlcyBzaG91bGQgYmUgcmVwbGFjZWQgaWYgdGhlIEF1dGhvciBkb2VzIG5vdCBleGFjdGx5IG1hdGNoLiAqL1xuXHRyZXBsYWNlWW91VHViZUNyZWRlbnRpYWxzPzogYm9vbGVhbjtcblx0Y2FjaGVzOiB7XG5cdFx0LyoqIFdoZXRoZXIgdG8gY2FjaGUgdGhlIHNlYXJjaCByZXN1bHRzLiAqL1xuXHRcdGVuYWJsZWQ6IGJvb2xlYW47XG5cdFx0LyoqIFRoZSB0aW1lIHRvIGNhY2hlIHRoZSBzZWFyY2ggcmVzdWx0cy4gKi9cblx0XHR0aW1lOiBudW1iZXI7XG5cdH1cblx0LyoqXG5cdCAqIEZ1bmN0aW9uIHRvIHNlbmQgZGF0YSB0byB0aGUgd2Vic29ja2V0LlxuXHQgKiBAcGFyYW0gaWRcblx0ICogQHBhcmFtIHBheWxvYWRcblx0ICovXG5cdHNlbmQoaWQ6IHN0cmluZywgcGF5bG9hZDogUGF5bG9hZCk6IHZvaWQ7XG59XG5cbmV4cG9ydCB0eXBlIFNlYXJjaFBsYXRmb3JtID0gXCJkZWV6ZXJcIiB8IFwic291bmRjbG91ZFwiIHwgXCJ5b3V0dWJlIG11c2ljXCIgfCBcInlvdXR1YmVcIiB8IFwic3BvdGlmeVwiIHwgXCJqaW9zYWF2blwiIHwgXCJ0aWRhbFwiIHwgXCJhcHBsZW11c2ljXCIgfCBcImJhbmRjYW1wXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoUXVlcnkge1xuXHQvKiogVGhlIHNvdXJjZSB0byBzZWFyY2ggZnJvbS4gKi9cblx0c291cmNlPzogU2VhcmNoUGxhdGZvcm0gfCBzdHJpbmc7XG5cdC8qKiBUaGUgcXVlcnkgdG8gc2VhcmNoIGZvci4gKi9cblx0cXVlcnk6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMYXZhbGlua1Jlc3BvbnNlIHtcblx0bG9hZFR5cGU6IExvYWRUeXBlO1xuXHRkYXRhOiBUcmFja0RhdGFbXSB8IFBsYXlsaXN0UmF3RGF0YTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWFyY2hSZXN1bHQge1xuXHQvKiogVGhlIGxvYWQgdHlwZSBvZiB0aGUgcmVzdWx0LiAqL1xuXHRsb2FkVHlwZTogTG9hZFR5cGU7XG5cdC8qKiBUaGUgYXJyYXkgb2YgdHJhY2tzIGZyb20gdGhlIHJlc3VsdC4gKi9cblx0dHJhY2tzOiBUcmFja1tdO1xuXHQvKiogVGhlIHBsYXlsaXN0IGluZm8gaWYgdGhlIGxvYWQgdHlwZSBpcyAncGxheWxpc3QnLiAqL1xuXHRwbGF5bGlzdD86IFBsYXlsaXN0RGF0YTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQbGF5bGlzdFJhd0RhdGEge1xuXHRpbmZvOiB7XG5cdFx0LyoqIFRoZSBwbGF5bGlzdCBuYW1lLiAqL1xuXHRcdG5hbWU6IHN0cmluZztcblx0fTtcblx0LyoqIEFkZGl0aW9uIGluZm8gcHJvdmlkZWQgYnkgcGx1Z2lucy4gKi9cblx0cGx1Z2luSW5mbzogb2JqZWN0O1xuXHQvKiogVGhlIHRyYWNrcyBvZiB0aGUgcGxheWxpc3QgKi9cblx0dHJhY2tzOiBUcmFja0RhdGFbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQbGF5bGlzdERhdGEge1xuXHQvKiogVGhlIHBsYXlsaXN0IG5hbWUuICovXG5cdG5hbWU6IHN0cmluZztcblx0LyoqIFRoZSBsZW5ndGggb2YgdGhlIHBsYXlsaXN0LiAqL1xuXHRkdXJhdGlvbjogbnVtYmVyO1xuXHQvKiogVGhlIHNvbmdzIG9mIHRoZSBwbGF5bGlzdC4gKi9cblx0dHJhY2tzOiBUcmFja1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1hbmFnZXJFdmVudHMge1xuXHROb2RlQ3JlYXRlOiAobm9kZTogTm9kZSkgPT4gdm9pZDtcblx0Tm9kZURlc3Ryb3k6IChub2RlOiBOb2RlKSA9PiB2b2lkO1xuXHROb2RlQ29ubmVjdDogKG5vZGU6IE5vZGUpID0+IHZvaWQ7XG5cdE5vZGVSZWNvbm5lY3Q6IChub2RlOiBOb2RlKSA9PiB2b2lkO1xuXHROb2RlRGlzY29ubmVjdDogKG5vZGU6IE5vZGUsIHJlYXNvbjogeyBjb2RlPzogbnVtYmVyOyByZWFzb24/OiBzdHJpbmcgfSkgPT4gdm9pZDtcblx0Tm9kZUVycm9yOiAobm9kZTogTm9kZSwgZXJyb3I6IEVycm9yKSA9PiB2b2lkO1xuXHROb2RlUmF3OiAocGF5bG9hZDogdW5rbm93bikgPT4gdm9pZDtcblx0UGxheWVyQ3JlYXRlOiAocGxheWVyOiBQbGF5ZXIpID0+IHZvaWQ7XG5cdFBsYXllckRlc3Ryb3k6IChwbGF5ZXI6IFBsYXllcikgPT4gdm9pZDtcblx0UGxheWVyU3RhdGVVcGRhdGU6IChvbGRQbGF5ZXI6IFBsYXllciwgbmV3UGxheWVyOiBQbGF5ZXIpID0+IHZvaWQ7XG5cdFBsYXllck1vdmU6IChwbGF5ZXI6IFBsYXllciwgaW5pdENoYW5uZWw6IHN0cmluZywgbmV3Q2hhbm5lbDogc3RyaW5nKSA9PiB2b2lkO1xuXHRQbGF5ZXJEaXNjb25uZWN0OiAocGxheWVyOiBQbGF5ZXIsIG9sZENoYW5uZWw6IHN0cmluZykgPT4gdm9pZDtcblx0UXVldWVFbmQ6IChwbGF5ZXI6IFBsYXllciwgdHJhY2s6IFRyYWNrIHwgVW5yZXNvbHZlZFRyYWNrLCBwYXlsb2FkOiBUcmFja0VuZEV2ZW50KSA9PiB2b2lkO1xuXHRTb2NrZXRDbG9zZWQ6IChwbGF5ZXI6IFBsYXllciwgcGF5bG9hZDogV2ViU29ja2V0Q2xvc2VkRXZlbnQpID0+IHZvaWQ7XG5cdFRyYWNrU3RhcnQ6IChwbGF5ZXI6IFBsYXllciwgdHJhY2s6IFRyYWNrLCBwYXlsb2FkOiBUcmFja1N0YXJ0RXZlbnQpID0+IHZvaWQ7XG5cdFRyYWNrRW5kOiAocGxheWVyOiBQbGF5ZXIsIHRyYWNrOiBUcmFjaywgcGF5bG9hZDogVHJhY2tFbmRFdmVudCkgPT4gdm9pZDtcblx0VHJhY2tTdHVjazogKHBsYXllcjogUGxheWVyLCB0cmFjazogVHJhY2ssIHBheWxvYWQ6IFRyYWNrU3R1Y2tFdmVudCkgPT4gdm9pZDtcblx0VHJhY2tFcnJvcjogKHBsYXllcjogUGxheWVyLCB0cmFjazogVHJhY2sgfCBVbnJlc29sdmVkVHJhY2ssIHBheWxvYWQ6IFRyYWNrRXhjZXB0aW9uRXZlbnQpID0+IHZvaWQ7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUNBLElBQUFBLE9BQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUQsT0FBQTtBQWNBLElBQUFFLFdBQUEsR0FBQUYsT0FBQTtBQUlBLElBQUFHLGFBQUEsR0FBQUMsc0JBQUEsQ0FBQUosT0FBQTtBQUFpRCxTQUFBSSx1QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLGdCQUFBQSxDQUFBO0FBQUEsU0FBQUUsUUFBQUMsQ0FBQSxzQ0FBQUQsT0FBQSx3QkFBQUUsTUFBQSx1QkFBQUEsTUFBQSxDQUFBQyxRQUFBLGFBQUFGLENBQUEsa0JBQUFBLENBQUEsZ0JBQUFBLENBQUEsV0FBQUEsQ0FBQSx5QkFBQUMsTUFBQSxJQUFBRCxDQUFBLENBQUFHLFdBQUEsS0FBQUYsTUFBQSxJQUFBRCxDQUFBLEtBQUFDLE1BQUEsQ0FBQUcsU0FBQSxxQkFBQUosQ0FBQSxLQUFBRCxPQUFBLENBQUFDLENBQUE7QUFBQSxTQUFBSyxvQkFBQSxrQkFuQmpELHFKQUFBQSxtQkFBQSxZQUFBQSxvQkFBQSxXQUFBUixDQUFBLFNBQUFTLENBQUEsRUFBQVQsQ0FBQSxPQUFBVSxDQUFBLEdBQUFDLE1BQUEsQ0FBQUosU0FBQSxFQUFBSyxDQUFBLEdBQUFGLENBQUEsQ0FBQUcsY0FB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
|
|
592
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfZXZlbnRzIiwicmVxdWlyZSIsIl9VdGlscyIsIl9jb2xsZWN0aW9uIiwiX01hbmFnZXJDaGVjayIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJlIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJvIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJjb25zdHJ1Y3RvciIsInByb3RvdHlwZSIsIl9yZWdlbmVyYXRvclJ1bnRpbWUiLCJ0IiwiciIsIk9iamVjdCIsIm4iLCJoYXNPd25Qcm9wZXJ0eSIsImRlZmluZVByb3BlcnR5IiwidmFsdWUiLCJpIiwiYSIsImMiLCJhc3luY0l0ZXJhdG9yIiwidSIsInRvU3RyaW5nVGFnIiwiZGVmaW5lIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwid3JhcCIsIkdlbmVyYXRvciIsImNyZWF0ZSIsIkNvbnRleHQiLCJtYWtlSW52b2tlTWV0aG9kIiwidHJ5Q2F0Y2giLCJ0eXBlIiwiYXJnIiwiY2FsbCIsImgiLCJsIiwiZiIsInMiLCJ5IiwiR2VuZXJhdG9yRnVuY3Rpb24iLCJHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSIsInAiLCJkIiwiZ2V0UHJvdG90eXBlT2YiLCJ2IiwidmFsdWVzIiwiZyIsImRlZmluZUl0ZXJhdG9yTWV0aG9kcyIsImZvckVhY2giLCJfaW52b2tlIiwiQXN5bmNJdGVyYXRvciIsImludm9rZSIsInJlc29sdmUiLCJfX2F3YWl0IiwidGhlbiIsImNhbGxJbnZva2VXaXRoTWV0aG9kQW5kQXJnIiwiRXJyb3IiLCJkb25lIiwibWV0aG9kIiwiZGVsZWdhdGUiLCJtYXliZUludm9rZURlbGVnYXRlIiwic2VudCIsIl9zZW50IiwiZGlzcGF0Y2hFeGNlcHRpb24iLCJhYnJ1cHQiLCJUeXBlRXJyb3IiLCJyZXN1bHROYW1lIiwibmV4dCIsIm5leHRMb2MiLCJwdXNoVHJ5RW50cnkiLCJ0cnlMb2MiLCJjYXRjaExvYyIsImZpbmFsbHlMb2MiLCJhZnRlckxvYyIsInRyeUVudHJpZXMiLCJwdXNoIiwicmVzZXRUcnlFbnRyeSIsImNvbXBsZXRpb24iLCJyZXNldCIsImlzTmFOIiwibGVuZ3RoIiwiZGlzcGxheU5hbWUiLCJpc0dlbmVyYXRvckZ1bmN0aW9uIiwibmFtZSIsIm1hcmsiLCJzZXRQcm90b3R5cGVPZiIsIl9fcHJvdG9fXyIsImF3cmFwIiwiYXN5bmMiLCJQcm9taXNlIiwia2V5cyIsInJldmVyc2UiLCJwb3AiLCJwcmV2IiwiY2hhckF0Iiwic2xpY2UiLCJzdG9wIiwicnZhbCIsImhhbmRsZSIsImNvbXBsZXRlIiwiZmluaXNoIiwiX2NhdGNoIiwiZGVsZWdhdGVZaWVsZCIsImFzeW5jR2VuZXJhdG9yU3RlcCIsIl9hc3luY1RvR2VuZXJhdG9yIiwiYXJndW1lbnRzIiwiYXBwbHkiLCJfbmV4dCIsIl90aHJvdyIsIl9zbGljZWRUb0FycmF5IiwiX2FycmF5V2l0aEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlUmVzdCIsIkFycmF5IiwiaXNBcnJheSIsIl9jcmVhdGVGb3JPZkl0ZXJhdG9ySGVscGVyIiwiX24iLCJGIiwiX2FycmF5TGlrZVRvQXJyYXkiLCJ0b1N0cmluZyIsImZyb20iLCJ0ZXN0Iiwib3duS2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9vYmplY3RTcHJlYWQiLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIl9jbGFzc0NhbGxDaGVjayIsIl9kZWZpbmVQcm9wZXJ0aWVzIiwiX3RvUHJvcGVydHlLZXkiLCJrZXkiLCJfY3JlYXRlQ2xhc3MiLCJfY2FsbFN1cGVyIiwiX2dldFByb3RvdHlwZU9mIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4iLCJfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0IiwiUmVmbGVjdCIsImNvbnN0cnVjdCIsIl9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQiLCJSZWZlcmVuY2VFcnJvciIsIkJvb2xlYW4iLCJ2YWx1ZU9mIiwiYmluZCIsIl9pbmhlcml0cyIsIl9zZXRQcm90b3R5cGVPZiIsIl90b1ByaW1pdGl2ZSIsInRvUHJpbWl0aXZlIiwiU3RyaW5nIiwiTnVtYmVyIiwiTWFuYWdlciIsImV4cG9ydHMiLCJfRXZlbnRFbWl0dGVyIiwib3B0aW9ucyIsIl90aGlzIiwiQ29sbGVjdGlvbiIsIm1hbmFnZXJDaGVjayIsIlN0cnVjdHVyZSIsImdldCIsImluaXQiLCJUcmFja1V0aWxzIiwidHJhY2tQYXJ0aWFsIiwic2V0VHJhY2tQYXJ0aWFsIiwicGx1Z2lucyIsIm5vZGVzIiwiaWRlbnRpZmllciIsImhvc3QiLCJyZXN1bWVTdGF0dXMiLCJyZXN1bWVUaW1lb3V0Iiwic2hhcmRzIiwiYXV0b1BsYXkiLCJ1c2VQcmlvcml0eSIsImNsaWVudE5hbWUiLCJkZWZhdWx0U2VhcmNoUGxhdGZvcm0iLCJ1c2VOb2RlIiwiX2l0ZXJhdG9yIiwiZW50cmllcyIsIl9zdGVwIiwiX3N0ZXAkdmFsdWUiLCJpbmRleCIsInBsdWdpbiIsIlBsdWdpbiIsIlJhbmdlRXJyb3IiLCJjb25jYXQiLCJsb2FkIiwiZXJyIiwiX2l0ZXJhdG9yMiIsIl9zdGVwMiIsIl9ub2RlJG9wdGlvbnMkaWRlbnRpZiIsIm5vZGVPcHRpb25zIiwibm9kZSIsInNldCIsInNldEludGVydmFsIiwiY2FjaGVzIiwiY2xlYXIiLCJ0aW1lIiwiY29ubmVjdGVkIiwic29ydCIsImIiLCJfYSRzdGF0cyIsIl9iJHN0YXRzIiwiYWxvYWQiLCJzdGF0cyIsImNwdSIsImxhdmFsaW5rTG9hZCIsImNvcmVzIiwiYmxvYWQiLCJfYSRzdGF0cyRwbGF5ZXJzIiwiX2Ekc3RhdHMyIiwiX2Ikc3RhdHMkcGxheWVycyIsIl9iJHN0YXRzMiIsInBsYXllcnMiLCJmaWx0ZXJlZE5vZGVzIiwiX25vZGUkb3B0aW9ucyRwcmlvcml0IiwicHJpb3JpdHkiLCJ0b3RhbFdlaWdodCIsInJlZHVjZSIsInRvdGFsIiwiX25vZGUkb3B0aW9ucyRwcmlvcml0MiIsIndlaWdodGVkTm9kZXMiLCJtYXAiLCJfbm9kZSRvcHRpb25zJHByaW9yaXQzIiwid2VpZ2h0IiwicmFuZG9tTnVtYmVyIiwiTWF0aCIsInJhbmRvbSIsImN1bXVsYXRpdmVXZWlnaHQiLCJfaXRlcmF0b3IzIiwiX3N0ZXAzIiwiX3N0ZXAzJHZhbHVlIiwibGVhc3RMb2FkTm9kZSIsImZpcnN0IiwibGVhc3RQbGF5ZXJzTm9kZSIsInByaW9yaXR5Tm9kZSIsImNsaWVudElkIiwiaW5pdGlhdGVkIiwiX2l0ZXJhdG9yNCIsIl9zdGVwNCIsImNvbm5lY3QiLCJlbWl0IiwiX3NlYXJjaCIsIl9jYWxsZWUiLCJxdWVyeSIsInJlcXVlc3RlciIsIl9NYW5hZ2VyJERFRkFVTFRfU09VUiIsIl9xdWVyeSRzb3VyY2UiLCJkYXRhIiwiX3F1ZXJ5IiwiX3NvdXJjZSIsInNlYXJjaCIsInJlcyIsInNlYXJjaERhdGEiLCJwbGF5bGlzdERhdGEiLCJ0cmFja3MiLCJwbGF5bGlzdCIsInJlc3VsdCIsInRyYWNrc1RvUmVwbGFjZSIsIl9yZXN1bHQkcGxheWxpc3QkdHJhYyIsIl9yZXN1bHQkcGxheWxpc3QiLCJfaXRlcmF0b3I1IiwiX3N0ZXA1IiwidHJhY2siLCJfdHJhY2skdGl0bGUkc3BsaXQkbWEiLCJfdHJhY2skdGl0bGUkc3BsaXQkbWEyIiwiYXV0aG9yIiwidGl0bGUiLCJpc1lvdVR1YmVVUkwiLCJfY2FsbGVlJCIsIl9jb250ZXh0IiwiX2lzWW91VHViZVVSTCIsInVyaSIsImluY2x1ZGVzIiwidXNlYWJsZU5vZGVzIiwiZW5hYmxlZCIsIkRFRkFVTFRfU09VUkNFUyIsInNvdXJjZSIsInJlc3QiLCJlbmNvZGVVUklDb21wb25lbnQiLCJ0MCIsImxvYWRUeXBlIiwiYnVpbGQiLCJpbmZvIiwiZHVyYXRpb24iLCJhY2MiLCJjdXIiLCJyZXBsYWNlWW91VHViZUNyZWRlbnRpYWxzIiwicmVwbGFjZSIsInNwbGl0Iiwic3RyIiwidHJpbSIsInQxIiwibWVzc2FnZSIsIl94IiwiX3gyIiwiZGVjb2RlVHJhY2tzIiwiX3RoaXMyIiwiX3JlZiIsIl9jYWxsZWUyIiwicmVqZWN0IiwiX2NhbGxlZTIkIiwiX2NvbnRleHQyIiwicG9zdCIsIkpTT04iLCJzdHJpbmdpZnkiLCJfeDMiLCJfeDQiLCJfZGVjb2RlVHJhY2siLCJfY2FsbGVlMyIsIl9jYWxsZWUzJCIsIl9jb250ZXh0MyIsImRlY29kZVRyYWNrIiwiX3g1IiwiaGFzIiwiZ3VpbGQiLCJkZXN0cm95IiwiY3JlYXRlTm9kZSIsImRlc3Ryb3lOb2RlIiwiX3VwZGF0ZVZvaWNlU3RhdGUiLCJfY2FsbGVlNCIsIl9kYXRhJHQiLCJ1cGRhdGUiLCJwbGF5ZXIiLCJfcGxheWVyJHZvaWNlQ2hhbm5lbCIsIl9wbGF5ZXIkdm9pY2VTdGF0ZSIsInNlc3Npb25JZCIsIl9wbGF5ZXIkdm9pY2VTdGF0ZSRldiIsInRva2VuIiwiZW5kcG9pbnQiLCJfY2FsbGVlNCQiLCJfY29udGV4dDQiLCJndWlsZF9pZCIsInZvaWNlU3RhdGUiLCJldmVudCIsInVwZGF0ZVBsYXllciIsImd1aWxkSWQiLCJ2b2ljZSIsImNoYW5uZWxJZCIsInZvaWNlQ2hhbm5lbCIsInVzZXJfaWQiLCJjaGFubmVsX2lkIiwic2Vzc2lvbl9pZCIsImFzc2lnbiIsInVwZGF0ZVZvaWNlU3RhdGUiLCJfeDYiLCJFdmVudEVtaXR0ZXIiLCJ5b3V0dWJlIiwic3BvdGlmeSIsImppb3NhYXZuIiwic291bmRjbG91ZCIsImRlZXplciIsInRpZGFsIiwiYXBwbGVtdXNpYyIsImJhbmRjYW1wIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL1N0cnVjdHVyZXMvTWFuYWdlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1hc3luYy1wcm9taXNlLWV4ZWN1dG9yICovXG5pbXBvcnQgeyBFdmVudEVtaXR0ZXIgfSBmcm9tIFwiZXZlbnRzXCI7XG5pbXBvcnQge1xuXHRMb2FkVHlwZSxcblx0UGx1Z2luLFxuXHRTdHJ1Y3R1cmUsXG5cdFRyYWNrRGF0YSxcblx0VHJhY2tFbmRFdmVudCxcblx0VHJhY2tFeGNlcHRpb25FdmVudCxcblx0VHJhY2tTdGFydEV2ZW50LFxuXHRUcmFja1N0dWNrRXZlbnQsXG5cdFRyYWNrVXRpbHMsXG5cdFZvaWNlUGFja2V0LFxuXHRWb2ljZVNlcnZlcixcblx0V2ViU29ja2V0Q2xvc2VkRXZlbnQsXG59IGZyb20gXCIuL1V0aWxzXCI7XG5pbXBvcnQgeyBDb2xsZWN0aW9uIH0gZnJvbSBcIkBkaXNjb3JkanMvY29sbGVjdGlvblwiO1xuaW1wb3J0IHsgTm9kZSwgTm9kZU9wdGlvbnMgfSBmcm9tIFwiLi9Ob2RlXCI7XG5pbXBvcnQgeyBQbGF5ZXIsIFBsYXllck9wdGlvbnMsIFRyYWNrLCBVbnJlc29sdmVkVHJhY2sgfSBmcm9tIFwiLi9QbGF5ZXJcIjtcbmltcG9ydCB7IFZvaWNlU3RhdGUgfSBmcm9tIFwiLi5cIjtcbmltcG9ydCBtYW5hZ2VyQ2hlY2sgZnJvbSBcIi4uL1V0aWxzL01hbmFnZXJDaGVja1wiO1xuaW1wb3J0IHsgQ2xpZW50VXNlciwgVXNlciB9IGZyb20gXCJkaXNjb3JkLmpzXCI7XG5cblxuXG4vKipcbiAqIFRoZSBtYWluIGh1YiBmb3IgaW50ZXJhY3Rpbmcgd2l0aCBMYXZhbGluayBhbmQgdXNpbmcgTWFnbWFzdHJlYW0sXG4gKi9cbmV4cG9ydCBjbGFzcyBNYW5hZ2VyIGV4dGVuZHMgRXZlbnRFbWl0dGVyIHtcblx0cHVibGljIHN0YXRpYyByZWFkb25seSBERUZBVUxUX1NPVVJDRVM6IFJlY29yZDxTZWFyY2hQbGF0Zm9ybSwgc3RyaW5nPiA9IHtcblx0XHRcInlvdXR1YmUgbXVzaWNcIjogXCJ5dG1zZWFyY2hcIixcblx0XHR5b3V0dWJlOiBcInl0c2VhcmNoXCIsXG5cdFx0c3BvdGlmeTogXCJzcHNlYXJjaFwiLFxuXHRcdGppb3NhYXZuOiBcImpzc2VhcmNoXCIsXG5cdFx0c291bmRjbG91ZDogXCJzY3NlYXJjaFwiLFxuXHRcdGRlZXplcjogXCJkenNlYXJjaFwiLFxuXHRcdHRpZGFsOiBcInRkc2VhcmNoXCIsXG5cdFx0YXBwbGVtdXNpYzogXCJhbXNlYXJjaFwiLFxuXHRcdGJhbmRjYW1wOiBcImJjc2VhcmNoXCIsXG5cdH07XG5cblx0LyoqIFRoZSBtYXAgb2YgcGxheWVycy4gKi9cblx0cHVibGljIHJlYWRvbmx5IHBsYXllcnMgPSBuZXcgQ29sbGVjdGlvbjxzdHJpbmcsIFBsYXllcj4oKTtcblx0LyoqIFRoZSBtYXAgb2Ygbm9kZXMuICovXG5cdHB1YmxpYyByZWFkb25seSBub2RlcyA9IG5ldyBDb2xsZWN0aW9uPHN0cmluZywgTm9kZT4oKTtcblx0LyoqIFRoZSBvcHRpb25zIHRoYXQgd2VyZSBzZXQuICovXG5cdHB1YmxpYyByZWFkb25seSBvcHRpb25zOiBNYW5hZ2VyT3B0aW9ucztcblx0cHJpdmF0ZSBpbml0aWF0ZWQgPSBmYWxzZTtcblx0cHVibGljIGNhY2hlcyA9IG5ldyBDb2xsZWN0aW9uPHN0cmluZywgU2VhcmNoUmVzdWx0PigpO1xuXG5cdC8qKiBSZXR1cm5zIHRoZSBub2RlcyB0aGF0IGhhcyB0aGUgbGVhc3QgbG9hZC4gKi9cblx0cHVibGljIGdldCBsZWFzdExvYWROb2RlKCk6IENvbGxlY3Rpb248c3RyaW5nLCBOb2RlPiB7XG5cdFx0cmV0dXJuIHRoaXMubm9kZXNcblx0XHRcdC5maWx0ZXIoKG5vZGUpID0+IG5vZGUuY29ubmVjdGVkKVxuXHRcdFx0LnNvcnQoKGEsIGIpID0+IHtcblx0XHRcdFx0Y29uc3QgYWxvYWQgPSBhLnN0YXRzPy5jcHUgPyAoYS5zdGF0cy5jcHUubGF2YWxpbmtMb2FkIC8gYS5zdGF0cy5jcHUuY29yZXMpICogMTAwIDogMDtcblx0XHRcdFx0Y29uc3QgYmxvYWQgPSBiLnN0YXRzPy5jcHUgPyAoYi5zdGF0cy5jcHUubGF2YWxpbmtMb2FkIC8gYi5zdGF0cy5jcHUuY29yZXMpICogMTAwIDogMDtcblx0XHRcdFx0cmV0dXJuIGFsb2FkIC0gYmxvYWQ7XG5cdFx0XHR9KTtcblx0fVxuXG5cdC8qKiBSZXR1cm5zIHRoZSBub2RlcyB0aGF0IGhhcyB0aGUgbGVhc3QgYW1vdW50IG9mIHBsYXllcnMuICovXG5cdHByaXZhdGUgZ2V0IGxlYXN0UGxheWVyc05vZGUoKTogQ29sbGVjdGlvbjxzdHJpbmcsIE5vZGU+IHtcblx0XHRyZXR1cm4gdGhpcy5ub2Rlcy5maWx0ZXIoKG5vZGUpID0+IG5vZGUuY29ubmVjdGVkKS5zb3J0KChhLCBiKSA9PiAoYS5zdGF0cz8ucGxheWVycyA/PyAwKSAtIChiLnN0YXRzPy5wbGF5ZXJzID8/IDApKTtcblx0fVxuXG5cdFxuXG5cdC8qKiBSZXR1cm5zIGEgbm9kZSBiYXNlZCBvbiBwcmlvcml0eS4gKi9cblx0cHJpdmF0ZSBnZXQgcHJpb3JpdHlOb2RlKCk6IE5vZGUge1xuXHRcdGNvbnN0IGZpbHRlcmVkTm9kZXMgPSB0aGlzLm5vZGVzLmZpbHRlcigobm9kZSkgPT4gbm9kZS5jb25uZWN0ZWQgJiYgKG5vZGUub3B0aW9ucy5wcmlvcml0eSA/PyAwKSA+IDApO1xuXHRcdGNvbnN0IHRvdGFsV2VpZ2h0ID0gZmlsdGVyZWROb2Rlcy5yZWR1Y2UoKHRvdGFsLCBub2RlKSA9PiB0b3RhbCArIChub2RlLm9wdGlvbnMucHJpb3JpdHkgPz8gMCksIDApO1xuXHRcdGNvbnN0IHdlaWdodGVkTm9kZXMgPSBmaWx0ZXJlZE5vZGVzLm1hcCgobm9kZSkgPT4gKHtcblx0XHRcdG5vZGUsXG5cdFx0XHR3ZWlnaHQ6IChub2RlLm9wdGlvbnMucHJpb3JpdHkgPz8gMCkgLyB0b3RhbFdlaWdodCxcblx0XHR9KSk7XG5cdFx0Y29uc3QgcmFuZG9tTnVtYmVyID0gTWF0aC5yYW5kb20oKTtcblxuXHRcdGxldCBjdW11bGF0aXZlV2VpZ2h0ID0gMDtcblxuXHRcdGZvciAoY29uc3QgeyBub2RlLCB3ZWlnaHQgfSBvZiB3ZWlnaHRlZE5vZGVzKSB7XG5cdFx0XHRjdW11bGF0aXZlV2VpZ2h0ICs9IHdlaWdodDtcblx0XHRcdGlmIChyYW5kb21OdW1iZXIgPD0gY3VtdWxhdGl2ZVdlaWdodCkge1xuXHRcdFx0XHRyZXR1cm4gbm9kZTtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRyZXR1cm4gKHRoaXMub3B0aW9ucy51c2VOb2RlID09PSBcImxlYXN0TG9hZFwiID8gdGhpcy5sZWFzdExvYWROb2RlLmZpcnN0KCkgOiB0aGlzLmxlYXN0UGxheWVyc05vZGUuZmlyc3QoKSkgYXMgTm9kZTtcblx0fVxuXG5cdC8qKiBSZXR1cm5zIHRoZSBub2RlIHRvIHVzZS4gKi9cblx0cHVibGljIGdldCB1c2VhYmxlTm9kZXMoKTogTm9kZSB7XG5cdFx0cmV0dXJuICh0aGlzLm9wdGlvbnMudXNlUHJpb3JpdHkgPyB0aGlzLnByaW9yaXR5Tm9kZSA6IHRoaXMub3B0aW9ucy51c2VOb2RlID09PSBcImxlYXN0TG9hZFwiID8gdGhpcy5sZWFzdExvYWROb2RlLmZpcnN0KCkgOiB0aGlzLmxlYXN0UGxheWVyc05vZGUuZmlyc3QoKSkgYXMgTm9kZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBJbml0aWF0ZXMgdGhlIE1hbmFnZXIgY2xhc3MuXG5cdCAqIEBwYXJhbSBvcHRpb25zXG5cdCAqL1xuXHRjb25zdHJ1Y3RvcihvcHRpb25zOiBNYW5hZ2VyT3B0aW9ucykge1xuXHRcdHN1cGVyKCk7XG5cblx0XHRtYW5hZ2VyQ2hlY2sob3B0aW9ucyk7XG5cdFx0U3RydWN0dXJlLmdldChcIlBsYXllclwiKS5pbml0KHRoaXMpO1xuXHRcdFN0cnVjdHVyZS5nZXQoXCJOb2RlXCIpLmluaXQodGhpcyk7XG5cdFx0VHJhY2tVdGlscy5pbml0KHRoaXMpO1xuXHRcdFxuXHRcdGlmIChvcHRpb25zLnRyYWNrUGFydGlhbCkge1xuXHRcdFx0VHJhY2tVdGlscy5zZXRUcmFja1BhcnRpYWwob3B0aW9ucy50cmFja1BhcnRpYWwpO1xuXHRcdFx0ZGVsZXRlIG9wdGlvbnMudHJhY2tQYXJ0aWFsO1xuXHRcdH1cblxuXHRcdHRoaXMub3B0aW9ucyA9IHtcblx0XHRcdHBsdWdpbnM6IFtdLFxuXHRcdFx0bm9kZXM6IFtcblx0XHRcdFx0e1xuXHRcdFx0XHRcdGlkZW50aWZpZXI6IFwiZGVmYXVsdFwiLFxuXHRcdFx0XHRcdGhvc3Q6IFwibG9jYWxob3N0XCIsXG5cdFx0XHRcdFx0cmVzdW1lU3RhdHVzOiBmYWxzZSxcblx0XHRcdFx0XHRyZXN1bWVUaW1lb3V0OiAxMDAwLFxuXHRcdFx0XHR9LFxuXHRcdFx0XSxcblx0XHRcdHNoYXJkczogMSxcblx0XHRcdGF1dG9QbGF5OiB0cnVlLFxuXHRcdFx0dXNlUHJpb3JpdHk6IGZhbHNlLFxuXHRcdFx0Y2xpZW50TmFtZTogXCJGb3IgdjMuMFwiLFxuXHRcdFx0ZGVmYXVsdFNlYXJjaFBsYXRmb3JtOiBcInlvdXR1YmVcIixcblx0XHRcdHVzZU5vZGU6IFwibGVhc3RQbGF5ZXJzXCIsXG5cdFx0XHQuLi5vcHRpb25zLFxuXHRcdH07XG5cblx0XHRcblxuXHRcdGlmICh0aGlzLm9wdGlvbnMucGx1Z2lucykge1xuXHRcdFx0Zm9yIChjb25zdCBbaW5kZXgsIHBsdWdpbl0gb2YgdGhpcy5vcHRpb25zLnBsdWdpbnMuZW50cmllcygpKSB7XG5cdFx0XHRcdGlmICghKHBsdWdpbiBpbnN0YW5jZW9mIFBsdWdpbikpIHRocm93IG5ldyBSYW5nZUVycm9yKGBQbHVnaW4gYXQgaW5kZXggJHtpbmRleH0gZG9lcyBub3QgZXh0ZW5kIFBsdWdpbi5gKTtcblx0XHRcdFx0cGx1Z2luLmxvYWQodGhpcyk7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0aWYgKHRoaXMub3B0aW9ucy5ub2Rlcykge1xuXHRcdFx0Zm9yIChjb25zdCBub2RlT3B0aW9ucyBvZiB0aGlzLm9wdGlvbnMubm9kZXMpIHtcblx0XHRcdFx0Y29uc3Qgbm9kZSA9IG5ldyAoU3RydWN0dXJlLmdldChcIk5vZGVcIikpKG5vZGVPcHRpb25zKTtcblx0XHRcdFx0dGhpcy5ub2Rlcy5zZXQobm9kZS5vcHRpb25zLmlkZW50aWZpZXIgPz8gbm9kZS5vcHRpb25zLmhvc3QsIG5vZGUpO1xuXHRcdFx0fVxuXHRcdH1cblx0XHRzZXRJbnRlcnZhbCgoKSA9PiB7XG5cdFx0XHR0aGlzLmNhY2hlcy5jbGVhcigpO1xuXHRcdH0sIHRoaXMub3B0aW9ucy5jYWNoZXMudGltZSk7XG5cdH1cblxuXG5cdC8qKlxuXHQgKiBJbml0aWF0ZXMgdGhlIE1hbmFnZXIuXG5cdCAqIEBwYXJhbSBjbGllbnRJZFxuXHQgKi9cblx0cHVibGljIGluaXQoY2xpZW50SWQ/OiBzdHJpbmcpOiB0aGlzIHtcblx0XHRpZiAodGhpcy5pbml0aWF0ZWQpIHJldHVybiB0aGlzO1xuXHRcdGlmICh0eXBlb2YgY2xpZW50SWQgIT09IFwidW5kZWZpbmVkXCIpIHRoaXMub3B0aW9ucy5jbGllbnRJZCA9IGNsaWVudElkO1xuXG5cdFx0aWYgKHR5cGVvZiB0aGlzLm9wdGlvbnMuY2xpZW50SWQgIT09IFwic3RyaW5nXCIpIHRocm93IG5ldyBFcnJvcignXCJjbGllbnRJZFwiIHNldCBpcyBub3QgdHlwZSBvZiBcInN0cmluZ1wiJyk7XG5cblx0XHRpZiAoIXRoaXMub3B0aW9ucy5jbGllbnRJZCkgdGhyb3cgbmV3IEVycm9yKCdcImNsaWVudElkXCIgaXMgbm90IHNldC4gUGFzcyBpdCBpbiBNYW5hZ2VyI2luaXQoKSBvciBhcyBhIG9wdGlvbiBpbiB0aGUgY29uc3RydWN0b3IuJyk7XG5cblx0XHRmb3IgKGNvbnN0IG5vZGUgb2YgdGhpcy5ub2Rlcy52YWx1ZXMoKSkge1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0bm9kZS5jb25uZWN0KCk7XG5cdFx0XHR9IGNhdGNoIChlcnIpIHtcblx0XHRcdFx0dGhpcy5lbWl0KFwiTm9kZUVycm9yXCIsIG5vZGUsIGVycik7XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0dGhpcy5pbml0aWF0ZWQgPSB0cnVlO1xuXHRcdHJldHVybiB0aGlzO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNlYXJjaGVzIHRoZSBlbmFibGVkIHNvdXJjZXMgYmFzZWQgb2ZmIHRoZSBVUkwgb3IgdGhlIGBzb3VyY2VgIHByb3BlcnR5LlxuXHQgKiBAcGFyYW0gcXVlcnlcblx0ICogQHBhcmFtIHJlcXVlc3RlclxuXHQgKiBAcmV0dXJucyBUaGUgc2VhcmNoIHJlc3VsdC5cblx0ICovXG5cdHB1YmxpYyBhc3luYyBzZWFyY2gocXVlcnk6IHN0cmluZyB8IFNlYXJjaFF1ZXJ5LCByZXF1ZXN0ZXI/OiBVc2VyIHwgQ2xpZW50VXNlcik6IFByb21pc2U8U2VhcmNoUmVzdWx0PiB7XG5cdFx0Y29uc3Qgbm9kZSA9IHRoaXMudXNlYWJsZU5vZGVzO1xuXG5cdFx0aWYgKCFub2RlKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJObyBhdmFpbGFibGUgbm9kZXMuXCIpO1xuXHRcdH1cblx0XHRpZiAodGhpcy5vcHRpb25zLmNhY2hlcy5lbmFibGVkICYmIHRoaXMub3B0aW9ucy5jYWNoZXMudGltZSA+IDAgJiYgdHlwZW9mIHF1ZXJ5ID09PSBcInN0cmluZ1wiKSB7XG5cdFx0XHRjb25zdCBkYXRhID0gdGhpcy5jYWNoZXMuZ2V0KHF1ZXJ5KTtcblx0XHRcdGlmIChkYXRhKSByZXR1cm4gZGF0YTtcblx0XHR9XG5cdFx0Y29uc3QgX3F1ZXJ5OiBTZWFyY2hRdWVyeSA9IHR5cGVvZiBxdWVyeSA9PT0gXCJzdHJpbmdcIiA/IHsgcXVlcnkgfSA6IHF1ZXJ5O1xuXHRcdGNvbnN0IF9zb3VyY2UgPSBNYW5hZ2VyLkRFRkFVTFRfU09VUkNFU1soX3F1ZXJ5LnNvdXJjZSA/PyB0aGlzLm9wdGlvbnMuZGVmYXVsdFNlYXJjaFBsYXRmb3JtKSBhcyBTZWFyY2hQbGF0Zm9ybV0gPz8gX3F1ZXJ5LnNvdXJjZTtcblx0XHRsZXQgc2VhcmNoID0gX3F1ZXJ5LnF1ZXJ5O1xuXG5cdFx0aWYgKCEvXmh0dHBzPzpcXC9cXC8vLnRlc3Qoc2VhcmNoKSkge1xuXHRcdFx0c2VhcmNoID0gYCR7X3NvdXJjZX06JHtzZWFyY2h9YDtcblx0XHR9XG5cblx0XHRpZiAodHlwZW9mIHF1ZXJ5ICE9PSBcInN0cmluZ1wiKSB7XG5cdFx0XHR0aHJvdyBuZXcgVHlwZUVycm9yKFwiUXVlcnkgbXVzdCBiZSBhIHN0cmluZy5cIik7XG5cdFx0fVxuXG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IHJlcyA9IChhd2FpdCBub2RlLnJlc3QuZ2V0KGAvdjQvbG9hZHRyYWNrcz9pZGVudGlmaWVyPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHNlYXJjaCl9YCkpIGFzIExhdmFsaW5rUmVzcG9uc2U7XG5cdFx0XHRpZiAoIXJlcykgdGhyb3cgbmV3IEVycm9yKFwiUXVlcnkgbm90IGZvdW5kLlwiKTtcblxuXHRcdFx0bGV0IHNlYXJjaERhdGE6IFRyYWNrRGF0YVtdID0gW107XG5cdFx0XHRsZXQgcGxheWxpc3REYXRhOiBQbGF5bGlzdFJhd0RhdGEgfCB1bmRlZmluZWQ7XG5cblx0XHRcdHN3aXRjaCAocmVzLmxvYWRUeXBlKSB7XG5cdFx0XHRcdGNhc2UgXCJzZWFyY2hcIjpcblx0XHRcdFx0XHRzZWFyY2hEYXRhID0gcmVzLmRhdGEgYXMgVHJhY2tEYXRhW107XG5cdFx0XHRcdFx0YnJlYWs7XG5cblx0XHRcdFx0Y2FzZSBcInRyYWNrXCI6XG5cdFx0XHRcdFx0c2VhcmNoRGF0YSA9IFtyZXMuZGF0YSBhcyB1bmtub3duIGFzIFRyYWNrRGF0YV07XG5cdFx0XHRcdFx0YnJlYWs7XG5cblx0XHRcdFx0Y2FzZSBcInBsYXlsaXN0XCI6XG5cdFx0XHRcdFx0cGxheWxpc3REYXRhID0gcmVzLmRhdGEgYXMgUGxheWxpc3RSYXdEYXRhO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXG5cdFx0XHRjb25zdCB0cmFja3MgPSBzZWFyY2hEYXRhLm1hcCgodHJhY2spID0+IFRyYWNrVXRpbHMuYnVpbGQodHJhY2ssIHJlcXVlc3RlcikpO1xuXHRcdFx0bGV0IHBsYXlsaXN0OiBQbGF5bGlzdERhdGEgfCB1bmRlZmluZWQ7XG5cblx0XHRcdGlmIChyZXMubG9hZFR5cGUgPT09IFwicGxheWxpc3RcIikge1xuXHRcdFx0XHRwbGF5bGlzdCA9IHtcblx0XHRcdFx0XHRuYW1lOiBwbGF5bGlzdERhdGEhLmluZm8ubmFtZSxcblx0XHRcdFx0XHR0cmFja3M6IHBsYXlsaXN0RGF0YSEudHJhY2tzLm1hcCgodHJhY2spID0+IFRyYWNrVXRpbHMuYnVpbGQodHJhY2ssIHJlcXVlc3RlcikpLFxuXHRcdFx0XHRcdGR1cmF0aW9uOiBwbGF5bGlzdERhdGEhLnRyYWNrcy5yZWR1Y2UoKGFjYywgY3VyKSA9PiBhY2MgKyAoY3VyLmluZm8ubGVuZ3RoIHx8IDApLCAwKSxcblx0XHRcdFx0fTtcblx0XHRcdH1cblxuXHRcdFx0Y29uc3QgcmVzdWx0OiBTZWFyY2hSZXN1bHQgPSB7XG5cdFx0XHRcdGxvYWRUeXBlOiByZXMubG9hZFR5cGUsXG5cdFx0XHRcdHRyYWNrcyxcblx0XHRcdFx0cGxheWxpc3QsXG5cdFx0XHR9O1xuXG5cdFx0XHRpZiAodGhpcy5vcHRpb25zLnJlcGxhY2VZb3VUdWJlQ3JlZGVudGlhbHMpIHtcblx0XHRcdFx0bGV0IHRyYWNrc1RvUmVwbGFjZTogVHJhY2tbXSA9IFtdO1xuXHRcdFx0XHRpZiAocmVzdWx0LmxvYWRUeXBlID09PSBcInBsYXlsaXN0XCIpIHtcblx0XHRcdFx0XHR0cmFja3NUb1JlcGxhY2UgPSByZXN1bHQucGxheWxpc3Q/LnRyYWNrcyA/PyBbXTtcblx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHR0cmFja3NUb1JlcGxhY2UgPSByZXN1bHQudHJhY2tzO1xuXHRcdFx0XHR9XG5cblx0XHRcdFx0Zm9yIChjb25zdCB0cmFjayBvZiB0cmFja3NUb1JlcGxhY2UpIHtcblx0XHRcdFx0XHRpZiAoaXNZb3VUdWJlVVJMKHRyYWNrLnVyaSkpIHtcblx0XHRcdFx0XHRcdHRyYWNrLmF1dGhvciA9IHRyYWNrLmF1dGhvci5yZXBsYWNlKFwiLSBUb3BpY1wiLCBcIlwiKTtcblx0XHRcdFx0XHRcdHRyYWNrLnRpdGxlID0gdHJhY2sudGl0bGUucmVwbGFjZShcIlRvcGljIC1cIiwgXCJcIik7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdGlmICh0cmFjay50aXRsZS5pbmNsdWRlcyhcIi1cIikpIHtcblx0XHRcdFx0XHRcdGNvbnN0IFthdXRob3IsIHRpdGxlXSA9IHRyYWNrLnRpdGxlLnNwbGl0KFwiLVwiKS5tYXAoKHN0cjogc3RyaW5nKSA9PiBzdHIudHJpbSgpKTtcblx0XHRcdFx0XHRcdHRyYWNrLmF1dGhvciA9IGF1dGhvcjtcblx0XHRcdFx0XHRcdHRyYWNrLnRpdGxlID0gdGl0bGU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHRpZiAodGhpcy5vcHRpb25zLmNhY2hlcy5lbmFibGVkICYmIHRoaXMub3B0aW9ucy5jYWNoZXMudGltZSA+IDApIHRoaXMuY2FjaGVzLnNldChzZWFyY2gsIHJlc3VsdCk7XG5cdFx0XHRyZXR1cm4gcmVzdWx0O1xuXHRcdH0gY2F0Y2ggKGVycikge1xuXHRcdFx0dGhyb3cgbmV3IEVycm9yKGVyciBpbnN0YW5jZW9mIEVycm9yID8gZXJyLm1lc3NhZ2UgOiBTdHJpbmcoZXJyKSk7XG5cdFx0fVxuXG5cdFx0ZnVuY3Rpb24gaXNZb3VUdWJlVVJMKHVyaTogc3RyaW5nKTogYm9vbGVhbiB7XG5cdFx0XHRyZXR1cm4gdXJpLmluY2x1ZGVzKFwieW91dHViZS5jb21cIikgfHwgdXJpLmluY2x1ZGVzKFwieW91dHUuYmVcIik7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIERlY29kZXMgdGhlIGJhc2U2NCBlbmNvZGVkIHRyYWNrcyBhbmQgcmV0dXJucyBhIFRyYWNrRGF0YSBhcnJheS5cblx0ICogQHBhcmFtIHRyYWNrc1xuXHQgKi9cblx0cHVibGljIGRlY29kZVRyYWNrcyh0cmFja3M6IHN0cmluZ1tdKTogUHJvbWlzZTxUcmFja0RhdGFbXT4ge1xuXHRcdHJldHVybiBuZXcgUHJvbWlzZShhc3luYyhyZXNvbHZlLCByZWplY3QpID0+IHtcblx0XHRcdGNvbnN0IG5vZGUgPSB0aGlzLm5vZGVzLmZpcnN0KCk7XG5cdFx0XHRpZiAoIW5vZGUpIHtcblx0XHRcdFx0cmV0dXJuIHJlamVjdChuZXcgRXJyb3IoXCJObyBhdmFpbGFibGUgbm9kZXMuXCIpKTtcblx0XHRcdH1cblx0XG5cdFx0XHRhd2FpdCBub2RlLnJlc3QucG9zdChcIi92NC9kZWNvZGV0cmFja3NcIiwgSlNPTi5zdHJpbmdpZnkodHJhY2tzKSlcblx0XHRcdFx0LnRoZW4oKHJlcykgPT4ge1xuXHRcdFx0XHRcdGlmICghcmVzKSByZXR1cm4gcmVqZWN0KG5ldyBFcnJvcihcIk5vIGRhdGEgcmV0dXJuZWQgZnJvbSBxdWVyeS5cIikpO1xuXHRcdFx0XHRcdHJlc29sdmUocmVzIGFzIFRyYWNrRGF0YVtdKTtcblx0XHRcdFx0fSlcblx0XHRcdFx0LmNhdGNoKChlcnIpID0+IHJlamVjdChlcnIpKTtcblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBEZWNvZGVzIHRoZSBiYXNlNjQgZW5jb2RlZCB0cmFjayBhbmQgcmV0dXJucyBhIFRyYWNrRGF0YS5cblx0ICogQHBhcmFtIHRyYWNrXG5cdCAqL1xuXHRwdWJsaWMgYXN5bmMgZGVjb2RlVHJhY2sodHJhY2s6IHN0cmluZyk6IFByb21pc2U8VHJhY2tEYXRhPiB7XG5cdFx0Y29uc3QgcmVzID0gYXdhaXQgdGhpcy5kZWNvZGVUcmFja3MoW3RyYWNrXSk7XG5cdFx0cmV0dXJuIHJlc1swXTtcblx0fVxuXG5cdC8qKlxuXHQgKiBDcmVhdGVzIGEgcGxheWVyIG9yIHJldHVybnMgb25lIGlmIGl0IGFscmVhZHkgZXhpc3RzLlxuXHQgKiBAcGFyYW0gb3B0aW9uc1xuXHQgKi9cblx0cHVibGljIGNyZWF0ZShvcHRpb25zOiBQbGF5ZXJPcHRpb25zKTogUGxheWVyIHtcblx0XHRpZiAodGhpcy5wbGF5ZXJzLmhhcyhvcHRpb25zLmd1aWxkKSkge1xuXHRcdFx0cmV0dXJuIHRoaXMucGxheWVycy5nZXQob3B0aW9ucy5ndWlsZCkgYXMgUGxheWVyO1xuXHRcdH1cblxuXHRcdHJldHVybiBuZXcgKFN0cnVjdHVyZS5nZXQoXCJQbGF5ZXJcIikpKG9wdGlvbnMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgYSBwbGF5ZXIgb3IgdW5kZWZpbmVkIGlmIGl0IGRvZXMgbm90IGV4aXN0LlxuXHQgKiBAcGFyYW0gZ3VpbGRcblx0ICovXG5cdHB1YmxpYyBnZXQoZ3VpbGQ6IHN0cmluZyk6IFBsYXllciB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMucGxheWVycy5nZXQoZ3VpbGQpO1xuXHR9XG5cblx0LyoqXG5cdCAqIERlc3Ryb3lzIGEgcGxheWVyIGlmIGl0IGV4aXN0cy5cblx0ICogQHBhcmFtIGd1aWxkXG5cdCAqL1xuXHRwdWJsaWMgZGVzdHJveShndWlsZDogc3RyaW5nKTogdm9pZCB7XG5cdFx0dGhpcy5wbGF5ZXJzLmRlbGV0ZShndWlsZCk7XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlcyBhIG5vZGUgb3IgcmV0dXJucyBvbmUgaWYgaXQgYWxyZWFkeSBleGlzdHMuXG5cdCAqIEBwYXJhbSBvcHRpb25zXG5cdCAqL1xuXHRwdWJsaWMgY3JlYXRlTm9kZShvcHRpb25zOiBOb2RlT3B0aW9ucyk6IE5vZGUge1xuXHRcdGlmICh0aGlzLm5vZGVzLmhhcyhvcHRpb25zLmlkZW50aWZpZXIgfHwgb3B0aW9ucy5ob3N0KSkge1xuXHRcdFx0cmV0dXJuIHRoaXMubm9kZXMuZ2V0KG9wdGlvbnMuaWRlbnRpZmllciB8fCBvcHRpb25zLmhvc3QpIGFzIE5vZGU7XG5cdFx0fVxuXG5cdFx0cmV0dXJuIG5ldyAoU3RydWN0dXJlLmdldChcIk5vZGVcIikpKG9wdGlvbnMpO1xuXHR9XG5cblx0LyoqXG5cdCAqIERlc3Ryb3lzIGEgbm9kZSBpZiBpdCBleGlzdHMuXG5cdCAqIEBwYXJhbSBpZGVudGlmaWVyXG5cdCAqL1xuXHRwdWJsaWMgZGVzdHJveU5vZGUoaWRlbnRpZmllcjogc3RyaW5nKTogdm9pZCB7XG5cdFx0Y29uc3Qgbm9kZSA9IHRoaXMubm9kZXMuZ2V0KGlkZW50aWZpZXIpO1xuXHRcdGlmICghbm9kZSkgcmV0dXJuO1xuXHRcdG5vZGUuZGVzdHJveSgpO1xuXHRcdHRoaXMubm9kZXMuZGVsZXRlKGlkZW50aWZpZXIpO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNlbmRzIHZvaWNlIGRhdGEgdG8gdGhlIExhdmFsaW5rIHNlcnZlci5cblx0ICogQHBhcmFtIGRhdGFcblx0ICovXG5cdHB1YmxpYyBhc3luYyB1cGRhdGVWb2ljZVN0YXRlKGRhdGE6IFZvaWNlUGFja2V0IHwgVm9pY2VTZXJ2ZXIgfCBWb2ljZVN0YXRlKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0aWYgKFwidFwiIGluIGRhdGEgJiYgIVtcIlZPSUNFX1NUQVRFX1VQREFURVwiLCBcIlZPSUNFX1NFUlZFUl9VUERBVEVcIl0uaW5jbHVkZXMoZGF0YS50ID8/IFwiXCIpKSByZXR1cm47XG5cblx0XHRjb25zdCB1cGRhdGUgPSBcImRcIiBpbiBkYXRhID8gZGF0YS5kIDogZGF0YTtcblxuXHRcdGlmICghdXBkYXRlIHx8ICghKFwidG9rZW5cIiBpbiB1cGRhdGUpICYmICEoXCJzZXNzaW9uX2lkXCIgaW4gdXBkYXRlKSkpIHJldHVybjtcblxuXHRcdGNvbnN0IHBsYXllciA9IHRoaXMucGxheWVycy5nZXQodXBkYXRlLmd1aWxkX2lkKTtcblxuXHRcdGlmICghcGxheWVyKSByZXR1cm47XG5cdFx0aWYgKFwidG9rZW5cIiBpbiB1cGRhdGUpIHtcblx0XHRcdHBsYXllci52b2ljZVN0YXRlLmV2ZW50ID0gdXBkYXRlO1xuXG5cdFx0XHRjb25zdCB7XG5cdFx0XHRcdHNlc3Npb25JZCxcblx0XHRcdFx0ZXZlbnQ6IHsgdG9rZW4sIGVuZHBvaW50IH0sXG5cdFx0XHR9ID0gcGxheWVyLnZvaWNlU3RhdGU7XG5cblx0XHRcdGF3YWl0IHBsYXllci5ub2RlLnJlc3QudXBkYXRlUGxheWVyKHtcblx0XHRcdFx0Z3VpbGRJZDogcGxheWVyLmd1aWxkLFxuXHRcdFx0XHRkYXRhOiB7IHZvaWNlOiB7IHRva2VuLCBlbmRwb2ludCwgc2Vzc2lvbklkOiBzZXNzaW9uSWQgPz8gXCJcIiwgY2hhbm5lbElkOiBwbGF5ZXIudm9pY2VDaGFubmVsID8/IFwiXCIgfSB9LFxuXHRcdFx0fSk7XG5cblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRpZiAodXBkYXRlLnVzZXJfaWQgIT09IHRoaXMub3B0aW9ucy5jbGllbnRJZCkgcmV0dXJuO1xuXHRcdGlmICh1cGRhdGUuY2hhbm5lbF9pZCkge1xuXHRcdFx0aWYgKHBsYXllci52b2ljZUNoYW5uZWwgIT09IHVwZGF0ZS5jaGFubmVsX2lkKSB7XG5cdFx0XHRcdHRoaXMuZW1pdChcIlBsYXllck1vdmVcIiwgcGxheWVyLCBwbGF5ZXIudm9pY2VDaGFubmVsLCB1cGRhdGUuY2hhbm5lbF9pZCk7XG5cdFx0XHR9XG5cblx0XHRcdHBsYXllci52b2ljZVN0YXRlLnNlc3Npb25JZCA9IHVwZGF0ZS5zZXNzaW9uX2lkO1xuXHRcdFx0cGxheWVyLnZvaWNlQ2hhbm5lbCA9IHVwZGF0ZS5jaGFubmVsX2lkO1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdHRoaXMuZW1pdChcIlBsYXllckRpc2Nvbm5lY3RcIiwgcGxheWVyLCBwbGF5ZXIudm9pY2VDaGFubmVsKTtcblx0XHRwbGF5ZXIudm9pY2VDaGFubmVsID0gbnVsbDtcblx0XHRwbGF5ZXIudm9pY2VTdGF0ZSA9IE9iamVjdC5hc3NpZ24oe30pO1xuXHRcdHBsYXllci5kZXN0cm95KCk7XG5cdFx0cmV0dXJuO1xuXHR9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGF5bG9hZCB7XG5cdC8qKiBUaGUgT1AgY29kZSAqL1xuXHRvcDogbnVtYmVyO1xuXHRkOiB7XG5cdFx0Z3VpbGRfaWQ6IHN0cmluZztcblx0XHRjaGFubmVsX2lkOiBzdHJpbmcgfCBudWxsO1xuXHRcdHNlbGZfbXV0ZTogYm9vbGVhbjtcblx0XHRzZWxmX2RlYWY6IGJvb2xlYW47XG5cdH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTWFuYWdlck9wdGlvbnMge1xuXHQvKiogVXNlIHByaW9yaXR5IG1vZGUgb3ZlciBsZWFzdCBhbW91bnQgb2YgcGxheWVyIG9yIGxvYWQ/ICovXG5cdHVzZVByaW9yaXR5PzogYm9vbGVhbjtcblx0LyoqIFVzZSB0aGUgbGVhc3QgYW1vdW50IG9mIHBsYXllcnMgb3IgbGVhc3QgbG9hZD8gKi9cblx0dXNlTm9kZT86IFwibGVhc3RMb2FkXCIgfCBcImxlYXN0UGxheWVyc1wiO1xuXHQvKiogVGhlIGFycmF5IG9mIG5vZGVzIHRvIGNvbm5lY3QgdG8uICovXG5cdG5vZGVzPzogTm9kZU9wdGlvbnNbXTtcblx0LyoqIFRoZSBjbGllbnQgSUQgdG8gdXNlLiAqL1xuXHRjbGllbnRJZD86IHN0cmluZztcblx0LyoqIFZhbHVlIHRvIHVzZSBmb3IgdGhlIGBDbGllbnQtTmFtZWAgaGVhZGVyLiAqL1xuXHRjbGllbnROYW1lPzogc3RyaW5nO1xuXHQvKiogVGhlIHNoYXJkIGNvdW50LiAqL1xuXHRzaGFyZHM/OiBudW1iZXI7XG5cdC8qKiBBIGFycmF5IG9mIHBsdWdpbnMgdG8gdXNlLiAqL1xuXHRwbHVnaW5zPzogUGx1Z2luW107XG5cdC8qKiBXaGV0aGVyIHBsYXllcnMgc2hvdWxkIGF1dG9tYXRpY2FsbHkgcGxheSB0aGUgbmV4dCBzb25nLiAqL1xuXHRhdXRvUGxheT86IGJvb2xlYW47XG5cdC8qKiBBbiBhcnJheSBvZiB0cmFjayBwcm9wZXJ0aWVzIHRvIGtlZXAuIGB0cmFja2Agd2lsbCBhbHdheXMgYmUgcHJlc2VudC4gKi9cblx0dHJhY2tQYXJ0aWFsPzogc3RyaW5nW107XG5cdC8qKiBUaGUgZGVmYXVsdCBzZWFyY2ggcGxhdGZvcm0gdG8gdXNlLCBjYW4gYmUgXCJ5b3V0dWJlXCIsIFwieW91dHViZSBtdXNpY1wiLCBcInNvdW5kY2xvdWRcIiBvciBkZWV6ZXIuICovXG5cdGRlZmF1bHRTZWFyY2hQbGF0Zm9ybT86IFNlYXJjaFBsYXRmb3JtO1xuXHQvKiogV2hldGhlciB0aGUgWW91VHViZSB2aWRlbyB0aXRsZXMgc2hvdWxkIGJlIHJlcGxhY2VkIGlmIHRoZSBBdXRob3IgZG9lcyBub3QgZXhhY3RseSBtYXRjaC4gKi9cblx0cmVwbGFjZVlvdVR1YmVDcmVkZW50aWFscz86IGJvb2xlYW47XG5cdGNhY2hlczoge1xuXHRcdC8qKiBXaGV0aGVyIHRvIGNhY2hlIHRoZSBzZWFyY2ggcmVzdWx0cy4gKi9cblx0XHRlbmFibGVkOiBib29sZWFuO1xuXHRcdC8qKiBUaGUgdGltZSB0byBjYWNoZSB0aGUgc2VhcmNoIHJlc3VsdHMuICovXG5cdFx0dGltZTogbnVtYmVyO1xuXHR9XG5cdC8qKlxuXHQgKiBGdW5jdGlvbiB0byBzZW5kIGRhdGEgdG8gdGhlIHdlYnNvY2tldC5cblx0ICogQHBhcmFtIGlkXG5cdCAqIEBwYXJhbSBwYXlsb2FkXG5cdCAqL1xuXHRzZW5kKGlkOiBzdHJpbmcsIHBheWxvYWQ6IFBheWxvYWQpOiB2b2lkO1xufVxuXG5leHBvcnQgdHlwZSBTZWFyY2hQbGF0Zm9ybSA9IFwiZGVlemVyXCIgfCBcInNvdW5kY2xvdWRcIiB8IFwieW91dHViZSBtdXNpY1wiIHwgXCJ5b3V0dWJlXCIgfCBcInNwb3RpZnlcIiB8IFwiamlvc2Fhdm5cIiB8IFwidGlkYWxcIiB8IFwiYXBwbGVtdXNpY1wiIHwgXCJiYW5kY2FtcFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlYXJjaFF1ZXJ5IHtcblx0LyoqIFRoZSBzb3VyY2UgdG8gc2VhcmNoIGZyb20uICovXG5cdHNvdXJjZT86IFNlYXJjaFBsYXRmb3JtIHwgc3RyaW5nO1xuXHQvKiogVGhlIHF1ZXJ5IHRvIHNlYXJjaCBmb3IuICovXG5cdHF1ZXJ5OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGF2YWxpbmtSZXNwb25zZSB7XG5cdGxvYWRUeXBlOiBMb2FkVHlwZTtcblx0ZGF0YTogVHJhY2tEYXRhW10gfCBQbGF5bGlzdFJhd0RhdGE7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VhcmNoUmVzdWx0IHtcblx0LyoqIFRoZSBsb2FkIHR5cGUgb2YgdGhlIHJlc3VsdC4gKi9cblx0bG9hZFR5cGU6IExvYWRUeXBlO1xuXHQvKiogVGhlIGFycmF5IG9mIHRyYWNrcyBmcm9tIHRoZSByZXN1bHQuICovXG5cdHRyYWNrczogVHJhY2tbXTtcblx0LyoqIFRoZSBwbGF5bGlzdCBpbmZvIGlmIHRoZSBsb2FkIHR5cGUgaXMgJ3BsYXlsaXN0Jy4gKi9cblx0cGxheWxpc3Q/OiBQbGF5bGlzdERhdGE7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGxheWxpc3RSYXdEYXRhIHtcblx0aW5mbzoge1xuXHRcdC8qKiBUaGUgcGxheWxpc3QgbmFtZS4gKi9cblx0XHRuYW1lOiBzdHJpbmc7XG5cdH07XG5cdC8qKiBBZGRpdGlvbiBpbmZvIHByb3ZpZGVkIGJ5IHBsdWdpbnMuICovXG5cdHBsdWdpbkluZm86IG9iamVjdDtcblx0LyoqIFRoZSB0cmFja3Mgb2YgdGhlIHBsYXlsaXN0ICovXG5cdHRyYWNrczogVHJhY2tEYXRhW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGxheWxpc3REYXRhIHtcblx0LyoqIFRoZSBwbGF5bGlzdCBuYW1lLiAqL1xuXHRuYW1lOiBzdHJpbmc7XG5cdC8qKiBUaGUgbGVuZ3RoIG9mIHRoZSBwbGF5bGlzdC4gKi9cblx0ZHVyYXRpb246IG51bWJlcjtcblx0LyoqIFRoZSBzb25ncyBvZiB0aGUgcGxheWxpc3QuICovXG5cdHRyYWNrczogVHJhY2tbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNYW5hZ2VyRXZlbnRzIHtcblx0Tm9kZUNyZWF0ZTogKG5vZGU6IE5vZGUpID0+IHZvaWQ7XG5cdE5vZGVEZXN0cm95OiAobm9kZTogTm9kZSkgPT4gdm9pZDtcblx0Tm9kZUNvbm5lY3Q6IChub2RlOiBOb2RlKSA9PiB2b2lkO1xuXHROb2RlUmVjb25uZWN0OiAobm9kZTogTm9kZSkgPT4gdm9pZDtcblx0Tm9kZURpc2Nvbm5lY3Q6IChub2RlOiBOb2RlLCByZWFzb246IHsgY29kZT86IG51bWJlcjsgcmVhc29uPzogc3RyaW5nIH0pID0+IHZvaWQ7XG5cdE5vZGVFcnJvcjogKG5vZGU6IE5vZGUsIGVycm9yOiBFcnJvcikgPT4gdm9pZDtcblx0Tm9kZVJhdzogKHBheWxvYWQ6IHVua25vd24pID0+IHZvaWQ7XG5cdFBsYXllckNyZWF0ZTogKHBsYXllcjogUGxheWVyKSA9PiB2b2lkO1xuXHRQbGF5ZXJEZXN0cm95OiAocGxheWVyOiBQbGF5ZXIpID0+IHZvaWQ7XG5cdFBsYXllclN0YXRlVXBkYXRlOiAob2xkUGxheWVyOiBQbGF5ZXIsIG5ld1BsYXllcjogUGxheWVyKSA9PiB2b2lkO1xuXHRQbGF5ZXJNb3ZlOiAocGxheWVyOiBQbGF5ZXIsIGluaXRDaGFubmVsOiBzdHJpbmcsIG5ld0NoYW5uZWw6IHN0cmluZykgPT4gdm9pZDtcblx0UGxheWVyRGlzY29ubmVjdDogKHBsYXllcjogUGxheWVyLCBvbGRDaGFubmVsOiBzdHJpbmcpID0+IHZvaWQ7XG5cdFF1ZXVlRW5kOiAocGxheWVyOiBQbGF5ZXIsIHRyYWNrOiBUcmFjayB8IFVucmVzb2x2ZWRUcmFjaywgcGF5bG9hZDogVHJhY2tFbmRFdmVudCkgPT4gdm9pZDtcblx0U29ja2V0Q2xvc2VkOiAocGxheWVyOiBQbGF5ZXIsIHBheWxvYWQ6IFdlYlNvY2tldENsb3NlZEV2ZW50KSA9PiB2b2lkO1xuXHRUcmFja1N0YXJ0OiAocGxheWVyOiBQbGF5ZXIsIHRyYWNrOiBUcmFjaywgcGF5bG9hZDogVHJhY2tTdGFydEV2ZW50KSA9PiB2b2lkO1xuXHRUcmFja0VuZDogKHBsYXllcjogUGxheWVyLCB0cmFjazogVHJhY2ssIHBheWxvYWQ6IFRyYWNrRW5kRXZlbnQpID0+IHZvaWQ7XG5cdFRyYWNrU3R1Y2s6IChwbGF5ZXI6IFBsYXllciwgdHJhY2s6IFRyYWNrLCBwYXlsb2FkOiBUcmFja1N0dWNrRXZlbnQpID0+IHZvaWQ7XG5cdFRyYWNrRXJyb3I6IChwbGF5ZXI6IFBsYXllciwgdHJhY2s6IFRyYWNrIHwgVW5yZXNvbHZlZFRyYWNrLCBwYXlsb2FkOiBUcmFja0V4Y2VwdGlvbkV2ZW50KSA9PiB2b2lkO1xufSJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsSUFBQUEsT0FBQSxHQUFBQyxPQUFBO0FBQ0EsSUFBQUMsTUFBQSxHQUFBRCxPQUFBO0FBY0EsSUFB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
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { PlayerEvent, PlayerEvents, TrackEndEvent, TrackExceptionEvent, TrackStartEvent, TrackStuckEvent, WebSocketClosedEvent } from "./Utils";
|
|
2
|
+
import { Manager } from "./Manager";
|
|
3
|
+
import { Player, Track, UnresolvedTrack } from "./Player";
|
|
4
|
+
import { Rest } from "./Rest";
|
|
5
|
+
import WebSocket from "ws";
|
|
6
|
+
export declare class Node {
|
|
7
|
+
options: NodeOptions;
|
|
8
|
+
/** The socket for the node. */
|
|
9
|
+
socket: WebSocket | null;
|
|
10
|
+
/** The stats for the node. */
|
|
11
|
+
stats: NodeStats | undefined;
|
|
12
|
+
manager: Manager;
|
|
13
|
+
/** The node's session ID. */
|
|
14
|
+
sessionId: string | null;
|
|
15
|
+
/** The REST instance. */
|
|
16
|
+
readonly rest: Rest;
|
|
17
|
+
private static _manager;
|
|
18
|
+
private reconnectTimeout?;
|
|
19
|
+
private reconnectAttempts;
|
|
20
|
+
/** Returns if connected to the Node. */
|
|
21
|
+
get connected(): boolean;
|
|
22
|
+
/** Returns the address for this node. */
|
|
23
|
+
get address(): string;
|
|
24
|
+
/** @hidden */
|
|
25
|
+
static init(manager: Manager): void;
|
|
26
|
+
/**
|
|
27
|
+
* Creates an instance of Node.
|
|
28
|
+
* @param options
|
|
29
|
+
*/
|
|
30
|
+
constructor(options: NodeOptions);
|
|
31
|
+
/** Connects to the Node. */
|
|
32
|
+
connect(): void;
|
|
33
|
+
/** Destroys the Node and all players connected with it. */
|
|
34
|
+
destroy(): void;
|
|
35
|
+
private reconnect;
|
|
36
|
+
protected open(): void;
|
|
37
|
+
protected close(code: number, reason: string): void;
|
|
38
|
+
protected error(error: Error): void;
|
|
39
|
+
protected message(d: Buffer | string): void;
|
|
40
|
+
protected handleEvent(payload: PlayerEvent & PlayerEvents): Promise<void>;
|
|
41
|
+
protected trackStart(player: Player, track: Track, payload: TrackStartEvent): void;
|
|
42
|
+
protected trackEnd(player: Player, track: Track, payload: TrackEndEvent): Promise<void>;
|
|
43
|
+
extractSpotifyTrackID(url: string): string | null;
|
|
44
|
+
extractSpotifyArtistID(url: string): string | null;
|
|
45
|
+
private handleAutoplay;
|
|
46
|
+
private handleFailedTrack;
|
|
47
|
+
private handleRepeatedTrack;
|
|
48
|
+
private playNextTrack;
|
|
49
|
+
protected queueEnd(player: Player, track: Track, payload: TrackEndEvent): Promise<void>;
|
|
50
|
+
protected trackStuck(player: Player, track: Track, payload: TrackStuckEvent): void;
|
|
51
|
+
protected trackError(player: Player, track: Track | UnresolvedTrack, payload: TrackExceptionEvent): void;
|
|
52
|
+
protected socketClosed(player: Player, payload: WebSocketClosedEvent): void;
|
|
53
|
+
}
|
|
54
|
+
export interface NodeOptions {
|
|
55
|
+
/** The host for the node. */
|
|
56
|
+
host: string;
|
|
57
|
+
/** The port for the node. */
|
|
58
|
+
port?: number;
|
|
59
|
+
/** The password for the node. */
|
|
60
|
+
password?: string;
|
|
61
|
+
/** Whether the host uses SSL. */
|
|
62
|
+
secure?: boolean;
|
|
63
|
+
/** The identifier for the node. */
|
|
64
|
+
identifier?: string;
|
|
65
|
+
/** The retryAmount for the node. */
|
|
66
|
+
retryAmount?: number;
|
|
67
|
+
/** The retryDelay for the node. */
|
|
68
|
+
retryDelay?: number;
|
|
69
|
+
/** Whether to resume the previous session. */
|
|
70
|
+
resumeStatus?: boolean;
|
|
71
|
+
/** The time the manager will wait before trying to resume the previous session. */
|
|
72
|
+
resumeTimeout?: number;
|
|
73
|
+
/** The timeout used for api calls. */
|
|
74
|
+
requestTimeout?: number;
|
|
75
|
+
/** Priority of the node. */
|
|
76
|
+
priority?: number;
|
|
77
|
+
}
|
|
78
|
+
export interface NodeStats {
|
|
79
|
+
/** The amount of players on the node. */
|
|
80
|
+
players: number;
|
|
81
|
+
/** The amount of playing players on the node. */
|
|
82
|
+
playingPlayers: number;
|
|
83
|
+
/** The uptime for the node. */
|
|
84
|
+
uptime: number;
|
|
85
|
+
/** The memory stats for the node. */
|
|
86
|
+
memory: MemoryStats;
|
|
87
|
+
/** The cpu stats for the node. */
|
|
88
|
+
cpu: CPUStats;
|
|
89
|
+
/** The frame stats for the node. */
|
|
90
|
+
frameStats: FrameStats;
|
|
91
|
+
}
|
|
92
|
+
export interface MemoryStats {
|
|
93
|
+
/** The free memory of the allocated amount. */
|
|
94
|
+
free: number;
|
|
95
|
+
/** The used memory of the allocated amount. */
|
|
96
|
+
used: number;
|
|
97
|
+
/** The total allocated memory. */
|
|
98
|
+
allocated: number;
|
|
99
|
+
/** The reservable memory. */
|
|
100
|
+
reservable: number;
|
|
101
|
+
}
|
|
102
|
+
export interface CPUStats {
|
|
103
|
+
/** The core amount the host machine has. */
|
|
104
|
+
cores: number;
|
|
105
|
+
/** The system load. */
|
|
106
|
+
systemLoad: number;
|
|
107
|
+
/** The lavalink load. */
|
|
108
|
+
lavalinkLoad: number;
|
|
109
|
+
}
|
|
110
|
+
export interface FrameStats {
|
|
111
|
+
/** The amount of sent frames. */
|
|
112
|
+
sent?: number;
|
|
113
|
+
/** The amount of nulled frames. */
|
|
114
|
+
nulled?: number;
|
|
115
|
+
/** The amount of deficit frames. */
|
|
116
|
+
deficit?: number;
|
|
117
|
+
}
|
|
118
|
+
export interface LavalinkInfo {
|
|
119
|
+
version: {
|
|
120
|
+
semver: string;
|
|
121
|
+
major: number;
|
|
122
|
+
minor: number;
|
|
123
|
+
patch: number;
|
|
124
|
+
preRelease: string;
|
|
125
|
+
};
|
|
126
|
+
buildTime: number;
|
|
127
|
+
git: {
|
|
128
|
+
branch: string;
|
|
129
|
+
commit: string;
|
|
130
|
+
commitTime: number;
|
|
131
|
+
};
|
|
132
|
+
jvm: string;
|
|
133
|
+
lavaplayer: string;
|
|
134
|
+
sourceManagers: string[];
|
|
135
|
+
filters: string[];
|
|
136
|
+
plugins: {
|
|
137
|
+
name: string;
|
|
138
|
+
version: string;
|
|
139
|
+
}[];
|
|
140
|
+
}
|