Socket
Socket
Sign inDemoInstall

@vonage/server-sdk

Package Overview
Dependencies
4
Maintainers
25
Versions
81
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 2.11.0 to 2.11.1

4

CHANGELOG.md

@@ -5,2 +5,6 @@ # Changelog

## 2.11.1
- Fixed issue with HttpClient for JSON content
## 2.11.0

@@ -7,0 +11,0 @@

25

lib/HttpClient.js

@@ -80,3 +80,3 @@ "use strict";

});
} // the output here can returnn one of two options:
} // the output here can return one of two options:
// - Using `sig` & `timestamp` in the JSON body

@@ -371,3 +371,3 @@ // - Using `sig` & `timestamp` in the query string

post(path, params, callback, useJwt) {
post(path, params, callback, useJwt, headers) {
var qs = {};

@@ -387,5 +387,20 @@

path = path + joinChar + querystring.stringify(qs);
headers = headers || {};
if (useJwt) {
headers["Authorization"] = "Bearer ".concat(this.credentials.generateJwt());
}
var encodedParams;
if (headers["Content-Type"] == "application/json") {
encodedParams = JSON.stringify(params);
} else {
encodedParams = querystring.stringify(params);
}
this.request({
path: path,
body: querystring.stringify(params)
path,
body: encodedParams,
headers
}, "POST", callback);

@@ -443,2 +458,2 @@ }

module.exports = exports.default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJodHRwcyIsInJlcXVpcmUiLCJodHRwIiwicmVxdWVzdCIsInF1ZXJ5c3RyaW5nIiwiVVJMIiwiaXNWYWxpZFVybCIsInMiLCJvIiwiaG9zdCIsImVyciIsIkh0dHBDbGllbnQiLCJjb25zdHJ1Y3RvciIsIm9wdGlvbnMiLCJjcmVkZW50aWFscyIsImhvc3RPdmVycmlkZSIsInBvcnQiLCJoZWFkZXJzIiwiQWNjZXB0IiwibG9nZ2VyIiwidGltZW91dCIsInJlcXVlc3RMaWIiLCJ1c2VyQWdlbnQiLCJlbmRwb2ludCIsIm1ldGhvZCIsImNhbGxiYWNrIiwic2tpcEpzb25QYXJzaW5nIiwiY3VzdG9tUmVzcG9uc2VQYXJzZXIiLCJwYXRoIiwiT2JqZWN0IiwiYXNzaWduIiwidW5kZWZpbmVkIiwia2V5cyIsImZvckVhY2giLCJrZXkiLCJzaWduYXR1cmVTZWNyZXQiLCJzaWduYXR1cmVNZXRob2QiLCJwYXJhbXMiLCJzcGxpdFBhdGgiLCJib2R5Iiwic3BsaXQiLCJwYXJzZSIsIkpTT04iLCJ0aW1lc3RhbXAiLCJEYXRlIiwiZ2V0VGltZSIsInRvU3RyaW5nIiwiYXBpX3NlY3JldCIsImhhc2giLCJnZW5lcmF0ZVNpZ25hdHVyZSIsInNpZyIsInF1ZXJ5Iiwic29ydCIsImVuY29kZVVSSSIsInJlcGxhY2UiLCJzdHJpbmdpZnkiLCJpbmZvIiwiZW5kIiwicmVzcG9uc2VEYXRhIiwib24iLCJyZXNwb25zZSIsImlzQmluYXJ5Iiwic2V0RW5jb2RpbmciLCJjaHVuayIsInB1c2giLCJzdGF0dXNDb2RlIiwiQnVmZmVyIiwiY29uY2F0IiwiX19wYXJzZVJlc3BvbnNlIiwiZSIsImVycm9yIiwiaHR0cFJlc3BvbnNlIiwiZGF0YSIsImlzQXJyYXlPckJ1ZmZlciIsIkFycmF5IiwiRXJyb3IiLCJzdGF0dXMiLCJtZXNzYWdlIiwicmV0cnlBZnRlck1pbGxpcyIsImpvaW4iLCJwYXJzZUVycm9yIiwiX2FkZExpbWl0ZWRBY2Nlc3NNZXNzYWdlVG9FcnJvcnMiLCJsaW1pdGVkQWNjZXNzU3RhdHVzIiwiX0lORk9fIiwiZ2V0IiwidXNlSnd0IiwidXNlQmFzaWNBdXRoIiwiYXBpS2V5IiwiYXBpU2VjcmV0IiwiZ2VuZXJhdGVKd3QiLCJmcm9tIiwiZGVsZXRlIiwicG9zdEZpbGUiLCJxcyIsImxlbmd0aCIsImpvaW5DaGFyIiwiaW5kZXhPZiIsImZpbGUiLCJmb3JtRGF0YSIsInZhbHVlIiwiZmlsZW5hbWUiLCJ1cmwiLCJwcm90b2NvbCIsInBvc3QiLCJBdXRob3JpemF0aW9uIiwicG9zdEpzb24iLCJwb3N0VXNlUXVlcnlTdHJpbmciXSwic291cmNlcyI6WyIuLi9zcmMvSHR0cENsaWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgaHR0cHMgPSByZXF1aXJlKFwiaHR0cHNcIik7XG52YXIgaHR0cCA9IHJlcXVpcmUoXCJodHRwXCIpO1xudmFyIHJlcXVlc3QgPSByZXF1aXJlKFwicmVxdWVzdFwiKTtcbnZhciBxdWVyeXN0cmluZyA9IHJlcXVpcmUoXCJxdWVyeS1zdHJpbmdcIik7XG52YXIgVVJMID0gcmVxdWlyZShcInVybFwiKS5VUkw7XG5cbmNvbnN0IGlzVmFsaWRVcmwgPSAocykgPT4ge1xuICBpZiAoIXMgfHwgcyA9PT0gbnVsbCkgcmV0dXJuIGZhbHNlO1xuXG4gIHRyeSB7XG4gICAgaWYgKHMgPT09IFwiYXBpLm5leG1vLmNvbVwiKSByZXR1cm4gcztcbiAgICBsZXQgbyA9IG5ldyBVUkwocyk7XG4gICAgcmV0dXJuIG8uaG9zdDtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59O1xuXG5jbGFzcyBIdHRwQ2xpZW50IHtcbiAgY29uc3RydWN0b3Iob3B0aW9ucywgY3JlZGVudGlhbHMpIHtcbiAgICBsZXQgaG9zdE92ZXJyaWRlID0gaXNWYWxpZFVybChvcHRpb25zLmhvc3QpO1xuICAgIHRoaXMuY3JlZGVudGlhbHMgPSBjcmVkZW50aWFscztcbiAgICB0aGlzLmhvc3QgPSBob3N0T3ZlcnJpZGUgPyBob3N0T3ZlcnJpZGUgOiBgcmVzdC5uZXhtby5jb21gO1xuICAgIHRoaXMucG9ydCA9IG9wdGlvbnMucG9ydCB8fCA0NDM7XG4gICAgdGhpcy5odHRwcyA9IG9wdGlvbnMuaHR0cHMgfHwgaHR0cHM7XG4gICAgdGhpcy5odHRwID0gb3B0aW9ucy5odHRwIHx8IGh0dHA7XG4gICAgdGhpcy5oZWFkZXJzID0ge1xuICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIixcbiAgICAgIEFjY2VwdDogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgfTtcbiAgICB0aGlzLmxvZ2dlciA9IG9wdGlvbnMubG9nZ2VyO1xuICAgIHRoaXMudGltZW91dCA9IG9wdGlvbnMudGltZW91dDtcbiAgICB0aGlzLnJlcXVlc3RMaWIgPSByZXF1ZXN0O1xuXG4gICAgaWYgKG9wdGlvbnMudXNlckFnZW50KSB7XG4gICAgICB0aGlzLmhlYWRlcnNbXCJVc2VyLUFnZW50XCJdID0gb3B0aW9ucy51c2VyQWdlbnQ7XG4gICAgfVxuICB9XG5cbiAgcmVxdWVzdChcbiAgICBlbmRwb2ludCxcbiAgICBtZXRob2QsXG4gICAgY2FsbGJhY2ssXG4gICAgc2tpcEpzb25QYXJzaW5nID0gZmFsc2UsXG4gICAgY3VzdG9tUmVzcG9uc2VQYXJzZXJcbiAgKSB7XG4gICAgaWYgKHR5cGVvZiBtZXRob2QgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgY2FsbGJhY2sgPSBtZXRob2Q7XG4gICAgICBlbmRwb2ludC5tZXRob2QgPSBlbmRwb2ludC5tZXRob2QgfHwgXCJHRVRcIjtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBtZXRob2QgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIGVuZHBvaW50Lm1ldGhvZCA9IG1ldGhvZDtcbiAgICB9XG5cbiAgICB2YXIgb3B0aW9ucyA9IHtcbiAgICAgIGhvc3Q6IGVuZHBvaW50Lmhvc3QgPyBlbmRwb2ludC5ob3N0IDogdGhpcy5ob3N0LFxuICAgICAgcG9ydDogdGhpcy5wb3J0LFxuICAgICAgcGF0aDogZW5kcG9pbnQucGF0aCxcbiAgICAgIG1ldGhvZDogZW5kcG9pbnQubWV0aG9kLFxuICAgICAgaGVhZGVyczogT2JqZWN0LmFzc2lnbih7fSwgdGhpcy5oZWFkZXJzLCBlbmRwb2ludC5oZWFkZXJzKSxcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMudGltZW91dCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBvcHRpb25zLnRpbWVvdXQgPSB0aGlzLnRpbWVvdXQ7XG4gICAgfVxuXG4gICAgLy8gQWxsb3cgZXhpc3RpbmcgaGVhZGVycyB0byBiZSBvdmVycmlkZGVuXG4gICAgLy8gQWxsb3cgbmV3IGhlYWRlcnMgdG8gYmUgYWRkZWRcbiAgICBpZiAoZW5kcG9pbnQuaGVhZGVycykge1xuICAgICAgT2JqZWN0LmtleXMoZW5kcG9pbnQuaGVhZGVycykuZm9yRWFjaChmdW5jdGlvbiAoa2V5KSB7XG4gICAgICAgIG9wdGlvbnMuaGVhZGVyc1trZXldID0gZW5kcG9pbnQuaGVhZGVyc1trZXldO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gdGhlIG91dHB1dCBoZXJlIGNhbiByZXR1cm5uIG9uZSBvZiB0d28gb3B0aW9uczpcbiAgICAvLyAtIFVzaW5nIGBzaWdgICYgYHRpbWVzdGFtcGAgaW4gdGhlIEpTT04gYm9keVxuICAgIC8vIC0gVXNpbmcgYHNpZ2AgJiBgdGltZXN0YW1wYCBpbiB0aGUgcXVlcnkgc3RyaW5nXG5cbiAgICBpZiAodGhpcy5jcmVkZW50aWFscy5zaWduYXR1cmVTZWNyZXQgJiYgdGhpcy5jcmVkZW50aWFscy5zaWduYXR1cmVNZXRob2QpIHtcbiAgICAgIC8vIHlvdSBtdXN0IGZpcnN0IGFkZCBhIHRpbWVzdGFtcFxuICAgICAgbGV0IHBhcmFtcztcbiAgICAgIGxldCBzcGxpdFBhdGg7XG4gICAgICBsZXQgcGF0aDtcblxuICAgICAgLy8gZGV0ZXJtaW5lIGlmIHRoZSByZXNwb25zZSBzaG91bGQgYmUgcXVlcnlzdHJpbmcgb3IgSlNPTiBib2R5XG4gICAgICBpZiAoIWVuZHBvaW50LmJvZHkpIHtcbiAgICAgICAgLy8gdGhpcyBicmFuY2ggaXMgZm9yIHF1ZXJ5IHN0cmluZ1xuICAgICAgICBzcGxpdFBhdGggPSBvcHRpb25zLnBhdGguc3BsaXQoL1xcPyguKykvKTtcbiAgICAgICAgcGF0aCA9IHNwbGl0UGF0aFswXTtcblxuICAgICAgICBwYXJhbXMgPSBxdWVyeXN0cmluZy5wYXJzZShzcGxpdFBhdGhbMV0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gdGhpcyBzZWN0aW9uIGlzIGZvciBKU09OIGJvZHlcbiAgICAgICAgcGFyYW1zID0gSlNPTi5wYXJzZShlbmRwb2ludC5ib2R5KTtcbiAgICAgIH1cblxuICAgICAgLy8gYWRkIHRpbWVzdGFtcCBpZiBub3QgYWxyZWFkeSBwcmVzZW50XG4gICAgICBpZiAoIXBhcmFtcy50aW1lc3RhbXApIHtcbiAgICAgICAgcGFyYW1zLnRpbWVzdGFtcCA9ICgobmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwKSB8IDApLnRvU3RyaW5nKCk7XG4gICAgICB9XG5cbiAgICAgIC8vIHN0cmlwIEFQSSBTZWNyZXRcbiAgICAgIGRlbGV0ZSBwYXJhbXMuYXBpX3NlY3JldDtcblxuICAgICAgbGV0IGhhc2ggPSB0aGlzLmNyZWRlbnRpYWxzLmdlbmVyYXRlU2lnbmF0dXJlKHBhcmFtcyk7XG4gICAgICBwYXJhbXMuc2lnID0gaGFzaDtcblxuICAgICAgaWYgKCFlbmRwb2ludC5ib2R5KSB7XG4gICAgICAgIC8vdGhpcyBzZWN0aW9uIGlzIGZvciBxdWVyeXN0cmluZ1xuICAgICAgICBsZXQgcXVlcnkgPSBcIlwiO1xuXG4gICAgICAgIC8vIHJlYnVpbGQgcXVlcnlcbiAgICAgICAgT2JqZWN0LmtleXMocGFyYW1zKVxuICAgICAgICAgIC5zb3J0KClcbiAgICAgICAgICAuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICBxdWVyeSArPSBcIiZcIiArIGtleSArIFwiPVwiICsgZW5jb2RlVVJJKHBhcmFtc1trZXldKTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAvLyByZXBsYWNlIHRoZSBmaXJzdCAmIHdpdGggP1xuICAgICAgICBxdWVyeSA9IHF1ZXJ5LnJlcGxhY2UoLyYvaSwgXCI/XCIpO1xuXG4gICAgICAgIG9wdGlvbnMucGF0aCA9IGAke3BhdGh9JHtxdWVyeX1gO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZW5kcG9pbnQuYm9keSA9IEpTT04uc3RyaW5naWZ5KHBhcmFtcyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5sb2dnZXIuaW5mbyhcIlJlcXVlc3Q6XCIsIG9wdGlvbnMsIFwiXFxuQm9keTpcIiwgZW5kcG9pbnQuYm9keSk7XG5cbiAgICB2YXIgcmVxdWVzdDtcblxuICAgIGlmIChvcHRpb25zLnBvcnQgPT09IDQ0Mykge1xuICAgICAgcmVxdWVzdCA9IHRoaXMuaHR0cHMucmVxdWVzdChvcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVxdWVzdCA9IHRoaXMuaHR0cC5yZXF1ZXN0KG9wdGlvbnMpO1xuICAgIH1cblxuICAgIHJlcXVlc3QuZW5kKGVuZHBvaW50LmJvZHkpO1xuXG4gICAgLy8gS2VlcCBhbiBhcnJheSBvZiBTdHJpbmcgb3IgQnVmZmVycyxcbiAgICAvLyBkZXBlbmRpbmcgb24gY29udGVudCB0eXBlIChiaW5hcnkgb3IgSlNPTikgb2YgcmVzcG9uc2VcbiAgICB2YXIgcmVzcG9uc2VEYXRhID0gW107XG5cbiAgICByZXF1ZXN0Lm9uKFwicmVzcG9uc2VcIiwgKHJlc3BvbnNlKSA9PiB7XG4gICAgICB2YXIgaXNCaW5hcnkgPVxuICAgICAgICByZXNwb25zZS5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdID09PSBcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiO1xuICAgICAgaWYgKCFpc0JpbmFyeSkge1xuICAgICAgICByZXNwb25zZS5zZXRFbmNvZGluZyhcInV0ZjhcIik7XG4gICAgICB9XG5cbiAgICAgIHJlc3BvbnNlLm9uKFwiZGF0YVwiLCAoY2h1bmspID0+IHtcbiAgICAgICAgcmVzcG9uc2VEYXRhLnB1c2goY2h1bmspO1xuICAgICAgfSk7XG5cbiAgICAgIHJlc3BvbnNlLm9uKFwiZW5kXCIsICgpID0+IHtcbiAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcInJlc3BvbnNlIGVuZGVkOlwiLCByZXNwb25zZS5zdGF0dXNDb2RlKTtcbiAgICAgICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICAgICAgaWYgKGlzQmluYXJ5KSB7XG4gICAgICAgICAgICByZXNwb25zZURhdGEgPSBCdWZmZXIuY29uY2F0KHJlc3BvbnNlRGF0YSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5fX3BhcnNlUmVzcG9uc2UoXG4gICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgIHJlc3BvbnNlRGF0YSxcbiAgICAgICAgICAgIGVuZHBvaW50Lm1ldGhvZCxcbiAgICAgICAgICAgIGNhbGxiYWNrLFxuICAgICAgICAgICAgc2tpcEpzb25QYXJzaW5nLFxuICAgICAgICAgICAgY3VzdG9tUmVzcG9uc2VQYXJzZXJcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJlc3BvbnNlLm9uKFwiY2xvc2VcIiwgKGUpID0+IHtcbiAgICAgICAgaWYgKGUpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihcbiAgICAgICAgICAgIFwicHJvYmxlbSB3aXRoIEFQSSByZXF1ZXN0IGRldGFpbGVkIHN0YWNrdHJhY2UgYmVsb3cgXCJcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKGUpO1xuICAgICAgICAgIGNhbGxiYWNrKGUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICByZXF1ZXN0Lm9uKFwiZXJyb3JcIiwgKGUpID0+IHtcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKFwicHJvYmxlbSB3aXRoIEFQSSByZXF1ZXN0IGRldGFpbGVkIHN0YWNrdHJhY2UgYmVsb3cgXCIpO1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoZSk7XG4gICAgICBjYWxsYmFjayhlKTtcbiAgICB9KTtcbiAgfVxuXG4gIF9fcGFyc2VSZXNwb25zZShcbiAgICBodHRwUmVzcG9uc2UsXG4gICAgZGF0YSxcbiAgICBtZXRob2QsXG4gICAgY2FsbGJhY2ssXG4gICAgc2tpcEpzb25QYXJzaW5nLFxuICAgIGN1c3RvbVJlc3BvbnNlUGFyc2VyXG4gICkge1xuICAgIGNvbnN0IGlzQXJyYXlPckJ1ZmZlciA9IGRhdGEgaW5zdGFuY2VvZiBBcnJheSB8fCBkYXRhIGluc3RhbmNlb2YgQnVmZmVyO1xuICAgIGlmICghaXNBcnJheU9yQnVmZmVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJkYXRhIHNob3VsZCBiZSBvZiB0eXBlIEFycmF5IG9yIEJ1ZmZlclwiKTtcbiAgICB9XG5cbiAgICBjb25zdCBzdGF0dXMgPSBodHRwUmVzcG9uc2Uuc3RhdHVzQ29kZTtcbiAgICBjb25zdCBoZWFkZXJzID0gaHR0cFJlc3BvbnNlLmhlYWRlcnM7XG5cbiAgICBsZXQgcmVzcG9uc2UgPSBudWxsO1xuICAgIHZhciBlcnJvciA9IG51bGw7XG5cbiAgICB0cnkge1xuICAgICAgaWYgKHN0YXR1cyA+PSA1MDApIHtcbiAgICAgICAgZXJyb3IgPSB7XG4gICAgICAgICAgbWVzc2FnZTogXCJTZXJ2ZXIgRXJyb3JcIixcbiAgICAgICAgICBzdGF0dXNDb2RlOiBzdGF0dXMsXG4gICAgICAgIH07XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICBodHRwUmVzcG9uc2UuaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSA9PT0gXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIlxuICAgICAgKSB7XG4gICAgICAgIHJlc3BvbnNlID0gZGF0YTtcbiAgICAgIH0gZWxzZSBpZiAoc3RhdHVzID09PSA0MjkpIHtcbiAgICAgICAgLy8gNDI5IGRvZXMgbm90IHJldHVybiBhIHBhcnNhYmxlIGJvZHlcbiAgICAgICAgaWYgKCFoZWFkZXJzW1wicmV0cnktYWZ0ZXJcIl0pIHtcbiAgICAgICAgICAvLyByZXRyeSBiYXNlZCBvbiBhbGxvd2VkIHBlciBzZWNvbmRcbiAgICAgICAgICBjb25zdCByZXRyeUFmdGVyTWlsbGlzID0gbWV0aG9kID09PSBcIlBPU1RcIiA/IDEwMDAgLyAyIDogMTAwMCAvIDU7XG4gICAgICAgICAgaGVhZGVyc1tcInJldHJ5LWFmdGVyXCJdID0gcmV0cnlBZnRlck1pbGxpcztcbiAgICAgICAgfVxuICAgICAgICBlcnJvciA9IHtcbiAgICAgICAgICBib2R5OiBkYXRhLmpvaW4oXCJcIiksXG4gICAgICAgIH07XG4gICAgICB9IGVsc2UgaWYgKHN0YXR1cyA9PT0gMjA0KSB7XG4gICAgICAgIHJlc3BvbnNlID0gbnVsbDtcbiAgICAgIH0gZWxzZSBpZiAoc3RhdHVzID49IDQwMCB8fCBzdGF0dXMgPCAyMDApIHtcbiAgICAgICAgZXJyb3IgPSB7XG4gICAgICAgICAgYm9keTogSlNPTi5wYXJzZShkYXRhLmpvaW4oXCJcIikpLFxuICAgICAgICAgIGhlYWRlcnMsXG4gICAgICAgIH07XG4gICAgICB9IGVsc2UgaWYgKG1ldGhvZCAhPT0gXCJERUxFVEVcIikge1xuICAgICAgICBpZiAoISFza2lwSnNvblBhcnNpbmcpIHtcbiAgICAgICAgICByZXNwb25zZSA9IGRhdGEuam9pbihcIlwiKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXNwb25zZSA9IEpTT04ucGFyc2UoZGF0YS5qb2luKFwiXCIpKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzcG9uc2UgPSBkYXRhO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKHBhcnNlRXJyb3IpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKHBhcnNlRXJyb3IpO1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgIFwiY291bGQgbm90IGNvbnZlcnQgQVBJIHJlc3BvbnNlIHRvIEpTT04sIGFib3ZlIGVycm9yIGlzIGlnbm9yZWQgYW5kIHJhdyBBUEkgcmVzcG9uc2UgaXMgcmV0dXJuZWQgdG8gY2xpZW50XCJcbiAgICAgICk7XG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcihcIlJhdyBFcnJvciBtZXNzYWdlIGZyb20gQVBJIFwiKTtcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKGBcIiR7ZGF0YX1cImApO1xuXG4gICAgICBlcnJvciA9IHtcbiAgICAgICAgc3RhdHVzOiBzdGF0dXMsXG4gICAgICAgIG1lc3NhZ2U6IFwiVGhlIEFQSSByZXNwb25zZSBjb3VsZCBub3QgYmUgcGFyc2VkLlwiLFxuICAgICAgICBib2R5OiBkYXRhLmpvaW4oXCJcIiksXG4gICAgICAgIHBhcnNlRXJyb3I6IHBhcnNlRXJyb3IsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChlcnJvcikge1xuICAgICAgZXJyb3Iuc3RhdHVzQ29kZSA9IHN0YXR1cztcbiAgICAgIGVycm9yLmhlYWRlcnMgPSBoZWFkZXJzO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgaWYgKHR5cGVvZiBjdXN0b21SZXNwb25zZVBhcnNlciA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIC8vIGRvbid0IHRyeSB0byBwYXJzZSB0aGUgcmVzcG9uc2Ugb24gZXJyb3JzXG4gICAgICAgIGlmIChyZXNwb25zZSkge1xuICAgICAgICAgIHJlc3BvbnNlID0gY3VzdG9tUmVzcG9uc2VQYXJzZXIocmVzcG9uc2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjYWxsYmFjayhlcnJvciwgcmVzcG9uc2UpO1xuICAgIH1cbiAgfVxuXG4gIF9hZGRMaW1pdGVkQWNjZXNzTWVzc2FnZVRvRXJyb3JzKGNhbGxiYWNrLCBsaW1pdGVkQWNjZXNzU3RhdHVzKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChlcnIsIGRhdGEpIHtcbiAgICAgIGlmIChlcnIgJiYgZXJyLnN0YXR1cyA9PSBsaW1pdGVkQWNjZXNzU3RhdHVzKSB7XG4gICAgICAgIGVyci5fSU5GT18gPVxuICAgICAgICAgIFwiVGhpcyBlbmRwb2ludCBtYXkgbmVlZCBhY3RpdmF0aW5nIG9uIHlvdXIgYWNjb3VudC4gUGxlYXNlIGVtYWlsIHN1cHBvcnRAbmV4bW8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uXCI7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjYWxsYmFjayhlcnIsIGRhdGEpO1xuICAgIH07XG4gIH1cblxuICBnZXQocGF0aCwgcGFyYW1zLCBjYWxsYmFjaywgdXNlSnd0ID0gZmFsc2UsIHVzZUJhc2ljQXV0aCA9IGZhbHNlKSB7XG4gICAgaWYgKCFjYWxsYmFjaykge1xuICAgICAgaWYgKHR5cGVvZiBwYXJhbXMgPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIGNhbGxiYWNrID0gcGFyYW1zO1xuICAgICAgICBwYXJhbXMgPSB7fTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwYXJhbXMgPSBwYXJhbXMgfHwge307XG4gICAgaWYgKCF1c2VKd3QgJiYgIXVzZUJhc2ljQXV0aCkge1xuICAgICAgcGFyYW1zW1wiYXBpX2tleVwiXSA9IHRoaXMuY3JlZGVudGlhbHMuYXBpS2V5O1xuICAgICAgcGFyYW1zW1wiYXBpX3NlY3JldFwiXSA9IHRoaXMuY3JlZGVudGlhbHMuYXBpU2VjcmV0O1xuICAgIH1cblxuICAgIHBhdGggPSBwYXRoICsgXCI/XCIgKyBxdWVyeXN0cmluZy5zdHJpbmdpZnkocGFyYW1zKTtcblxuICAgIGNvbnN0IGhlYWRlcnMgPSB7XG4gICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICB9O1xuICAgIGlmICh1c2VKd3QpIHtcbiAgICAgIGhlYWRlcnNbXCJBdXRob3JpemF0aW9uXCJdID0gYEJlYXJlciAke3RoaXMuY3JlZGVudGlhbHMuZ2VuZXJhdGVKd3QoKX1gO1xuICAgIH1cbiAgICBpZiAodXNlQmFzaWNBdXRoKSB7XG4gICAgICBoZWFkZXJzW1wiQXV0aG9yaXphdGlvblwiXSA9IGBCYXNpYyAke0J1ZmZlci5mcm9tKFxuICAgICAgICB0aGlzLmNyZWRlbnRpYWxzLmFwaUtleSArIFwiOlwiICsgdGhpcy5jcmVkZW50aWFscy5hcGlTZWNyZXRcbiAgICAgICkudG9TdHJpbmcoXCJiYXNlNjRcIil9YDtcbiAgICB9XG5cbiAgICB0aGlzLnJlcXVlc3QoXG4gICAgICB7XG4gICAgICAgIHBhdGg6IHBhdGgsXG4gICAgICAgIGhlYWRlcnMsXG4gICAgICB9LFxuICAgICAgXCJHRVRcIixcbiAgICAgIGNhbGxiYWNrXG4gICAgKTtcbiAgfVxuXG4gIGRlbGV0ZShwYXRoLCBjYWxsYmFjaywgdXNlSnd0LCB1c2VCYXNpY0F1dGgpIHtcbiAgICBsZXQgcGFyYW1zID0ge307XG4gICAgaWYgKCF1c2VKd3QgJiYgIXVzZUJhc2ljQXV0aCkge1xuICAgICAgcGFyYW1zW1wiYXBpX2tleVwiXSA9IHRoaXMuY3JlZGVudGlhbHMuYXBpS2V5O1xuICAgICAgcGFyYW1zW1wiYXBpX3NlY3JldFwiXSA9IHRoaXMuY3JlZGVudGlhbHMuYXBpU2VjcmV0O1xuICAgIH1cblxuICAgIGxldCBoZWFkZXJzID0ge307XG5cbiAgICBpZiAodXNlQmFzaWNBdXRoKSB7XG4gICAgICBoZWFkZXJzW1wiQXV0aG9yaXphdGlvblwiXSA9IGBCYXNpYyAke0J1ZmZlci5mcm9tKFxuICAgICAgICB0aGlzLmNyZWRlbnRpYWxzLmFwaUtleSArIFwiOlwiICsgdGhpcy5jcmVkZW50aWFscy5hcGlTZWNyZXRcbiAgICAgICkudG9TdHJpbmcoXCJiYXNlNjRcIil9YDtcbiAgICB9XG4gICAgcGF0aCA9IHBhdGggKyBcIj9cIiArIHF1ZXJ5c3RyaW5nLnN0cmluZ2lmeShwYXJhbXMpO1xuXG4gICAgdGhpcy5yZXF1ZXN0KFxuICAgICAge1xuICAgICAgICBwYXRoOiBwYXRoLFxuICAgICAgICBoZWFkZXJzLFxuICAgICAgfSxcbiAgICAgIFwiREVMRVRFXCIsXG4gICAgICBjYWxsYmFja1xuICAgICk7XG4gIH1cblxuICBwb3N0RmlsZShwYXRoLCBvcHRpb25zLCBjYWxsYmFjaywgdXNlSnd0KSB7XG4gICAgbGV0IHFzID0ge307XG4gICAgaWYgKCF1c2VKd3QpIHtcbiAgICAgIHFzW1wiYXBpX2tleVwiXSA9IHRoaXMuY3JlZGVudGlhbHMuYXBpS2V5O1xuICAgICAgcXNbXCJhcGlfc2VjcmV0XCJdID0gdGhpcy5jcmVkZW50aWFscy5hcGlTZWNyZXQ7XG4gICAgfVxuXG4gICAgaWYgKE9iamVjdC5rZXlzKHFzKS5sZW5ndGgpIHtcbiAgICAgIGxldCBqb2luQ2hhciA9IFwiP1wiO1xuICAgICAgaWYgKHBhdGguaW5kZXhPZihqb2luQ2hhcikgIT09IC0xKSB7XG4gICAgICAgIGpvaW5DaGFyID0gXCImXCI7XG4gICAgICB9XG4gICAgICBwYXRoID0gcGF0aCArIGpvaW5DaGFyICsgcXVlcnlzdHJpbmcuc3RyaW5naWZ5KHFzKTtcbiAgICB9XG5cbiAgICBjb25zdCBmaWxlID0gb3B0aW9ucy5maWxlO1xuICAgIGRlbGV0ZSBvcHRpb25zLmZpbGU7IC8vIFdlIGRvbid0IHNlbmQgdGhpcyBhcyBtZXRhZGF0YVxuXG4gICAgY29uc3QgZm9ybURhdGEgPSB7fTtcblxuICAgIGlmIChmaWxlKSB7XG4gICAgICBmb3JtRGF0YVtcImZpbGVkYXRhXCJdID0ge1xuICAgICAgICB2YWx1ZTogZmlsZSxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIGZpbGVuYW1lOiBvcHRpb25zLmZpbGVuYW1lIHx8IG51bGwsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmluZm8pIHtcbiAgICAgIGZvcm1EYXRhLmluZm8gPSBKU09OLnN0cmluZ2lmeShvcHRpb25zLmluZm8pO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLnVybCkge1xuICAgICAgZm9ybURhdGEudXJsID0gb3B0aW9ucy51cmw7XG4gICAgfVxuXG4gICAgbGV0IHByb3RvY29sID0gdGhpcy5wb3J0ID09PSA0NDMgPyBcImh0dHBzOi8vXCIgOiBcImh0dHA6Ly9cIjtcblxuICAgIHRoaXMucmVxdWVzdExpYi5wb3N0KFxuICAgICAge1xuICAgICAgICB1cmw6IHByb3RvY29sICsgdGhpcy5ob3N0ICsgcGF0aCxcbiAgICAgICAgZm9ybURhdGE6IGZvcm1EYXRhLFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3RoaXMuY3JlZGVudGlhbHMuZ2VuZXJhdGVKd3QoKX1gLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGNhbGxiYWNrXG4gICAgKTtcbiAgfVxuXG4gIHBvc3QocGF0aCwgcGFyYW1zLCBjYWxsYmFjaywgdXNlSnd0KSB7XG4gICAgbGV0IHFzID0ge307XG4gICAgaWYgKCF1c2VKd3QpIHtcbiAgICAgIHFzW1wiYXBpX2tleVwiXSA9IHRoaXMuY3JlZGVudGlhbHMuYXBpS2V5O1xuICAgICAgcXNbXCJhcGlfc2VjcmV0XCJdID0gdGhpcy5jcmVkZW50aWFscy5hcGlTZWNyZXQ7XG4gICAgfVxuXG4gICAgbGV0IGpvaW5DaGFyID0gXCI/XCI7XG4gICAgaWYgKHBhdGguaW5kZXhPZihqb2luQ2hhcikgIT09IC0xKSB7XG4gICAgICBqb2luQ2hhciA9IFwiJlwiO1xuICAgIH1cblxuICAgIHBhdGggPSBwYXRoICsgam9pbkNoYXIgKyBxdWVyeXN0cmluZy5zdHJpbmdpZnkocXMpO1xuXG4gICAgdGhpcy5yZXF1ZXN0KFxuICAgICAge1xuICAgICAgICBwYXRoOiBwYXRoLFxuICAgICAgICBib2R5OiBxdWVyeXN0cmluZy5zdHJpbmdpZnkocGFyYW1zKSxcbiAgICAgIH0sXG4gICAgICBcIlBPU1RcIixcbiAgICAgIGNhbGxiYWNrXG4gICAgKTtcbiAgfVxuXG4gIHBvc3RKc29uKHBhdGgsIHBhcmFtcywgY2FsbGJhY2ssIHVzZUp3dCwgdXNlQmFzaWNBdXRoKSB7XG4gICAgbGV0IHFzID0ge307XG4gICAgaWYgKCF1c2VKd3QgJiYgIXVzZUJhc2ljQXV0aCkge1xuICAgICAgcXNbXCJhcGlfa2V5XCJdID0gdGhpcy5jcmVkZW50aWFscy5hcGlLZXk7XG4gICAgICBxc1tcImFwaV9zZWNyZXRcIl0gPSB0aGlzLmNyZWRlbnRpYWxzLmFwaVNlY3JldDtcbiAgICB9XG5cbiAgICBsZXQgam9pbkNoYXIgPSBcIj9cIjtcbiAgICBpZiAocGF0aC5pbmRleE9mKGpvaW5DaGFyKSAhPT0gLTEpIHtcbiAgICAgIGpvaW5DaGFyID0gXCImXCI7XG4gICAgfVxuXG4gICAgcGF0aCA9IHBhdGggKyBqb2luQ2hhciArIHF1ZXJ5c3RyaW5nLnN0cmluZ2lmeShxcyk7XG5cbiAgICBsZXQgaGVhZGVycyA9IHtcbiAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgIH07XG4gICAgaWYgKHVzZUJhc2ljQXV0aCkge1xuICAgICAgaGVhZGVyc1tcIkF1dGhvcml6YXRpb25cIl0gPSBgQmFzaWMgJHtCdWZmZXIuZnJvbShcbiAgICAgICAgdGhpcy5jcmVkZW50aWFscy5hcGlLZXkgKyBcIjpcIiArIHRoaXMuY3JlZGVudGlhbHMuYXBpU2VjcmV0XG4gICAgICApLnRvU3RyaW5nKFwiYmFzZTY0XCIpfWA7XG4gICAgfVxuXG4gICAgdGhpcy5yZXF1ZXN0KFxuICAgICAge1xuICAgICAgICBwYXRoOiBwYXRoLFxuICAgICAgICBib2R5OiBKU09OLnN0cmluZ2lmeShwYXJhbXMpLFxuICAgICAgICBoZWFkZXJzLFxuICAgICAgfSxcbiAgICAgIFwiUE9TVFwiLFxuICAgICAgY2FsbGJhY2tcbiAgICApO1xuICB9XG5cbiAgcG9zdFVzZVF1ZXJ5U3RyaW5nKHBhdGgsIHBhcmFtcywgY2FsbGJhY2ssIHVzZUp3dCkge1xuICAgIHBhcmFtcyA9IHBhcmFtcyB8fCB7fTtcbiAgICBpZiAoIXVzZUp3dCkge1xuICAgICAgcGFyYW1zW1wiYXBpX2tleVwiXSA9IHRoaXMuY3JlZGVudGlhbHMuYXBpS2V5O1xuICAgICAgcGFyYW1zW1wiYXBpX3NlY3JldFwiXSA9IHRoaXMuY3JlZGVudGlhbHMuYXBpU2VjcmV0O1xuICAgIH1cblxuICAgIHBhdGggPSBwYXRoICsgXCI/XCIgKyBxdWVyeXN0cmluZy5zdHJpbmdpZnkocGFyYW1zKTtcbiAgICB0aGlzLnJlcXVlc3QoXG4gICAgICB7XG4gICAgICAgIHBhdGg6IHBhdGgsXG4gICAgICB9LFxuICAgICAgXCJQT1NUXCIsXG4gICAgICBjYWxsYmFja1xuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgSHR0cENsaWVudDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBLElBQUlBLEtBQUssR0FBR0MsT0FBTyxDQUFDLE9BQUQsQ0FBbkI7O0FBQ0EsSUFBSUMsSUFBSSxHQUFHRCxPQUFPLENBQUMsTUFBRCxDQUFsQjs7QUFDQSxJQUFJRSxPQUFPLEdBQUdGLE9BQU8sQ0FBQyxTQUFELENBQXJCOztBQUNBLElBQUlHLFdBQVcsR0FBR0gsT0FBTyxDQUFDLGNBQUQsQ0FBekI7O0FBQ0EsSUFBSUksR0FBRyxHQUFHSixPQUFPLENBQUMsS0FBRCxDQUFQLENBQWVJLEdBQXpCOztBQUVBLElBQU1DLFVBQVUsR0FBSUMsQ0FBRCxJQUFPO0VBQ3hCLElBQUksQ0FBQ0EsQ0FBRCxJQUFNQSxDQUFDLEtBQUssSUFBaEIsRUFBc0IsT0FBTyxLQUFQOztFQUV0QixJQUFJO0lBQ0YsSUFBSUEsQ0FBQyxLQUFLLGVBQVYsRUFBMkIsT0FBT0EsQ0FBUDtJQUMzQixJQUFJQyxDQUFDLEdBQUcsSUFBSUgsR0FBSixDQUFRRSxDQUFSLENBQVI7SUFDQSxPQUFPQyxDQUFDLENBQUNDLElBQVQ7RUFDRCxDQUpELENBSUUsT0FBT0MsR0FBUCxFQUFZO0lBQ1osT0FBTyxLQUFQO0VBQ0Q7QUFDRixDQVZEOztBQVlBLE1BQU1DLFVBQU4sQ0FBaUI7RUFDZkMsV0FBVyxDQUFDQyxPQUFELEVBQVVDLFdBQVYsRUFBdUI7SUFDaEMsSUFBSUMsWUFBWSxHQUFHVCxVQUFVLENB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
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJodHRwcyIsInJlcXVpcmUiLCJodHRwIiwicmVxdWVzdCIsInF1ZXJ5c3RyaW5nIiwiVVJMIiwiaXNWYWxpZFVybCIsInMiLCJvIiwiaG9zdCIsImVyciIsIkh0dHBDbGllbnQiLCJjb25zdHJ1Y3RvciIsIm9wdGlvbnMiLCJjcmVkZW50aWFscyIsImhvc3RPdmVycmlkZSIsInBvcnQiLCJoZWFkZXJzIiwiQWNjZXB0IiwibG9nZ2VyIiwidGltZW91dCIsInJlcXVlc3RMaWIiLCJ1c2VyQWdlbnQiLCJlbmRwb2ludCIsIm1ldGhvZCIsImNhbGxiYWNrIiwic2tpcEpzb25QYXJzaW5nIiwiY3VzdG9tUmVzcG9uc2VQYXJzZXIiLCJwYXRoIiwiT2JqZWN0IiwiYXNzaWduIiwidW5kZWZpbmVkIiwia2V5cyIsImZvckVhY2giLCJrZXkiLCJzaWduYXR1cmVTZWNyZXQiLCJzaWduYXR1cmVNZXRob2QiLCJwYXJhbXMiLCJzcGxpdFBhdGgiLCJib2R5Iiwic3BsaXQiLCJwYXJzZSIsIkpTT04iLCJ0aW1lc3RhbXAiLCJEYXRlIiwiZ2V0VGltZSIsInRvU3RyaW5nIiwiYXBpX3NlY3JldCIsImhhc2giLCJnZW5lcmF0ZVNpZ25hdHVyZSIsInNpZyIsInF1ZXJ5Iiwic29ydCIsImVuY29kZVVSSSIsInJlcGxhY2UiLCJzdHJpbmdpZnkiLCJpbmZvIiwiZW5kIiwicmVzcG9uc2VEYXRhIiwib24iLCJyZXNwb25zZSIsImlzQmluYXJ5Iiwic2V0RW5jb2RpbmciLCJjaHVuayIsInB1c2giLCJzdGF0dXNDb2RlIiwiQnVmZmVyIiwiY29uY2F0IiwiX19wYXJzZVJlc3BvbnNlIiwiZSIsImVycm9yIiwiaHR0cFJlc3BvbnNlIiwiZGF0YSIsImlzQXJyYXlPckJ1ZmZlciIsIkFycmF5IiwiRXJyb3IiLCJzdGF0dXMiLCJtZXNzYWdlIiwicmV0cnlBZnRlck1pbGxpcyIsImpvaW4iLCJwYXJzZUVycm9yIiwiX2FkZExpbWl0ZWRBY2Nlc3NNZXNzYWdlVG9FcnJvcnMiLCJsaW1pdGVkQWNjZXNzU3RhdHVzIiwiX0lORk9fIiwiZ2V0IiwidXNlSnd0IiwidXNlQmFzaWNBdXRoIiwiYXBpS2V5IiwiYXBpU2VjcmV0IiwiZ2VuZXJhdGVKd3QiLCJmcm9tIiwiZGVsZXRlIiwicG9zdEZpbGUiLCJxcyIsImxlbmd0aCIsImpvaW5DaGFyIiwiaW5kZXhPZiIsImZpbGUiLCJmb3JtRGF0YSIsInZhbHVlIiwiZmlsZW5hbWUiLCJ1cmwiLCJwcm90b2NvbCIsInBvc3QiLCJBdXRob3JpemF0aW9uIiwiZW5jb2RlZFBhcmFtcyIsInBvc3RKc29uIiwicG9zdFVzZVF1ZXJ5U3RyaW5nIl0sInNvdXJjZXMiOlsiLi4vc3JjL0h0dHBDbGllbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGh0dHBzID0gcmVxdWlyZShcImh0dHBzXCIpO1xudmFyIGh0dHAgPSByZXF1aXJlKFwiaHR0cFwiKTtcbnZhciByZXF1ZXN0ID0gcmVxdWlyZShcInJlcXVlc3RcIik7XG52YXIgcXVlcnlzdHJpbmcgPSByZXF1aXJlKFwicXVlcnktc3RyaW5nXCIpO1xudmFyIFVSTCA9IHJlcXVpcmUoXCJ1cmxcIikuVVJMO1xuXG5jb25zdCBpc1ZhbGlkVXJsID0gKHMpID0+IHtcbiAgaWYgKCFzIHx8IHMgPT09IG51bGwpIHJldHVybiBmYWxzZTtcblxuICB0cnkge1xuICAgIGlmIChzID09PSBcImFwaS5uZXhtby5jb21cIikgcmV0dXJuIHM7XG4gICAgbGV0IG8gPSBuZXcgVVJMKHMpO1xuICAgIHJldHVybiBvLmhvc3Q7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufTtcblxuY2xhc3MgSHR0cENsaWVudCB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbnMsIGNyZWRlbnRpYWxzKSB7XG4gICAgbGV0IGhvc3RPdmVycmlkZSA9IGlzVmFsaWRVcmwob3B0aW9ucy5ob3N0KTtcbiAgICB0aGlzLmNyZWRlbnRpYWxzID0gY3JlZGVudGlhbHM7XG4gICAgdGhpcy5ob3N0ID0gaG9zdE92ZXJyaWRlID8gaG9zdE92ZXJyaWRlIDogYHJlc3QubmV4bW8uY29tYDtcbiAgICB0aGlzLnBvcnQgPSBvcHRpb25zLnBvcnQgfHwgNDQzO1xuICAgIHRoaXMuaHR0cHMgPSBvcHRpb25zLmh0dHBzIHx8IGh0dHBzO1xuICAgIHRoaXMuaHR0cCA9IG9wdGlvbnMuaHR0cCB8fCBodHRwO1xuICAgIHRoaXMuaGVhZGVycyA9IHtcbiAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCIsXG4gICAgICBBY2NlcHQ6IFwiYXBwbGljYXRpb24vanNvblwiLFxuICAgIH07XG4gICAgdGhpcy5sb2dnZXIgPSBvcHRpb25zLmxvZ2dlcjtcbiAgICB0aGlzLnRpbWVvdXQgPSBvcHRpb25zLnRpbWVvdXQ7XG4gICAgdGhpcy5yZXF1ZXN0TGliID0gcmVxdWVzdDtcblxuICAgIGlmIChvcHRpb25zLnVzZXJBZ2VudCkge1xuICAgICAgdGhpcy5oZWFkZXJzW1wiVXNlci1BZ2VudFwiXSA9IG9wdGlvbnMudXNlckFnZW50O1xuICAgIH1cbiAgfVxuXG4gIHJlcXVlc3QoXG4gICAgZW5kcG9pbnQsXG4gICAgbWV0aG9kLFxuICAgIGNhbGxiYWNrLFxuICAgIHNraXBKc29uUGFyc2luZyA9IGZhbHNlLFxuICAgIGN1c3RvbVJlc3BvbnNlUGFyc2VyXG4gICkge1xuICAgIGlmICh0eXBlb2YgbWV0aG9kID09PSBcImZ1bmN0aW9uXCIpIHtcbiAgICAgIGNhbGxiYWNrID0gbWV0aG9kO1xuICAgICAgZW5kcG9pbnQubWV0aG9kID0gZW5kcG9pbnQubWV0aG9kIHx8IFwiR0VUXCI7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgbWV0aG9kICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICBlbmRwb2ludC5tZXRob2QgPSBtZXRob2Q7XG4gICAgfVxuXG4gICAgdmFyIG9wdGlvbnMgPSB7XG4gICAgICBob3N0OiBlbmRwb2ludC5ob3N0ID8gZW5kcG9pbnQuaG9zdCA6IHRoaXMuaG9zdCxcbiAgICAgIHBvcnQ6IHRoaXMucG9ydCxcbiAgICAgIHBhdGg6IGVuZHBvaW50LnBhdGgsXG4gICAgICBtZXRob2Q6IGVuZHBvaW50Lm1ldGhvZCxcbiAgICAgIGhlYWRlcnM6IE9iamVjdC5hc3NpZ24oe30sIHRoaXMuaGVhZGVycywgZW5kcG9pbnQuaGVhZGVycyksXG4gICAgfTtcblxuICAgIGlmICh0aGlzLnRpbWVvdXQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgb3B0aW9ucy50aW1lb3V0ID0gdGhpcy50aW1lb3V0O1xuICAgIH1cblxuICAgIC8vIEFsbG93IGV4aXN0aW5nIGhlYWRlcnMgdG8gYmUgb3ZlcnJpZGRlblxuICAgIC8vIEFsbG93IG5ldyBoZWFkZXJzIHRvIGJlIGFkZGVkXG4gICAgaWYgKGVuZHBvaW50LmhlYWRlcnMpIHtcbiAgICAgIE9iamVjdC5rZXlzKGVuZHBvaW50LmhlYWRlcnMpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICAgICAgICBvcHRpb25zLmhlYWRlcnNba2V5XSA9IGVuZHBvaW50LmhlYWRlcnNba2V5XTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIHRoZSBvdXRwdXQgaGVyZSBjYW4gcmV0dXJuIG9uZSBvZiB0d28gb3B0aW9uczpcbiAgICAvLyAtIFVzaW5nIGBzaWdgICYgYHRpbWVzdGFtcGAgaW4gdGhlIEpTT04gYm9keVxuICAgIC8vIC0gVXNpbmcgYHNpZ2AgJiBgdGltZXN0YW1wYCBpbiB0aGUgcXVlcnkgc3RyaW5nXG5cbiAgICBpZiAodGhpcy5jcmVkZW50aWFscy5zaWduYXR1cmVTZWNyZXQgJiYgdGhpcy5jcmVkZW50aWFscy5zaWduYXR1cmVNZXRob2QpIHtcbiAgICAgIC8vIHlvdSBtdXN0IGZpcnN0IGFkZCBhIHRpbWVzdGFtcFxuICAgICAgbGV0IHBhcmFtcztcbiAgICAgIGxldCBzcGxpdFBhdGg7XG4gICAgICBsZXQgcGF0aDtcblxuICAgICAgLy8gZGV0ZXJtaW5lIGlmIHRoZSByZXNwb25zZSBzaG91bGQgYmUgcXVlcnlzdHJpbmcgb3IgSlNPTiBib2R5XG4gICAgICBpZiAoIWVuZHBvaW50LmJvZHkpIHtcbiAgICAgICAgLy8gdGhpcyBicmFuY2ggaXMgZm9yIHF1ZXJ5IHN0cmluZ1xuICAgICAgICBzcGxpdFBhdGggPSBvcHRpb25zLnBhdGguc3BsaXQoL1xcPyguKykvKTtcbiAgICAgICAgcGF0aCA9IHNwbGl0UGF0aFswXTtcblxuICAgICAgICBwYXJhbXMgPSBxdWVyeXN0cmluZy5wYXJzZShzcGxpdFBhdGhbMV0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgLy8gdGhpcyBzZWN0aW9uIGlzIGZvciBKU09OIGJvZHlcbiAgICAgICAgcGFyYW1zID0gSlNPTi5wYXJzZShlbmRwb2ludC5ib2R5KTtcbiAgICAgIH1cblxuICAgICAgLy8gYWRkIHRpbWVzdGFtcCBpZiBub3QgYWxyZWFkeSBwcmVzZW50XG4gICAgICBpZiAoIXBhcmFtcy50aW1lc3RhbXApIHtcbiAgICAgICAgcGFyYW1zLnRpbWVzdGFtcCA9ICgobmV3IERhdGUoKS5nZXRUaW1lKCkgLyAxMDAwKSB8IDApLnRvU3RyaW5nKCk7XG4gICAgICB9XG5cbiAgICAgIC8vIHN0cmlwIEFQSSBTZWNyZXRcbiAgICAgIGRlbGV0ZSBwYXJhbXMuYXBpX3NlY3JldDtcblxuICAgICAgbGV0IGhhc2ggPSB0aGlzLmNyZWRlbnRpYWxzLmdlbmVyYXRlU2lnbmF0dXJlKHBhcmFtcyk7XG4gICAgICBwYXJhbXMuc2lnID0gaGFzaDtcblxuICAgICAgaWYgKCFlbmRwb2ludC5ib2R5KSB7XG4gICAgICAgIC8vdGhpcyBzZWN0aW9uIGlzIGZvciBxdWVyeXN0cmluZ1xuICAgICAgICBsZXQgcXVlcnkgPSBcIlwiO1xuXG4gICAgICAgIC8vIHJlYnVpbGQgcXVlcnlcbiAgICAgICAgT2JqZWN0LmtleXMocGFyYW1zKVxuICAgICAgICAgIC5zb3J0KClcbiAgICAgICAgICAuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgICBxdWVyeSArPSBcIiZcIiArIGtleSArIFwiPVwiICsgZW5jb2RlVVJJKHBhcmFtc1trZXldKTtcbiAgICAgICAgICB9KTtcblxuICAgICAgICAvLyByZXBsYWNlIHRoZSBmaXJzdCAmIHdpdGggP1xuICAgICAgICBxdWVyeSA9IHF1ZXJ5LnJlcGxhY2UoLyYvaSwgXCI/XCIpO1xuXG4gICAgICAgIG9wdGlvbnMucGF0aCA9IGAke3BhdGh9JHtxdWVyeX1gO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgZW5kcG9pbnQuYm9keSA9IEpTT04uc3RyaW5naWZ5KHBhcmFtcyk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5sb2dnZXIuaW5mbyhcIlJlcXVlc3Q6XCIsIG9wdGlvbnMsIFwiXFxuQm9keTpcIiwgZW5kcG9pbnQuYm9keSk7XG5cbiAgICB2YXIgcmVxdWVzdDtcblxuICAgIGlmIChvcHRpb25zLnBvcnQgPT09IDQ0Mykge1xuICAgICAgcmVxdWVzdCA9IHRoaXMuaHR0cHMucmVxdWVzdChvcHRpb25zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmVxdWVzdCA9IHRoaXMuaHR0cC5yZXF1ZXN0KG9wdGlvbnMpO1xuICAgIH1cblxuICAgIHJlcXVlc3QuZW5kKGVuZHBvaW50LmJvZHkpO1xuXG4gICAgLy8gS2VlcCBhbiBhcnJheSBvZiBTdHJpbmcgb3IgQnVmZmVycyxcbiAgICAvLyBkZXBlbmRpbmcgb24gY29udGVudCB0eXBlIChiaW5hcnkgb3IgSlNPTikgb2YgcmVzcG9uc2VcbiAgICB2YXIgcmVzcG9uc2VEYXRhID0gW107XG5cbiAgICByZXF1ZXN0Lm9uKFwicmVzcG9uc2VcIiwgKHJlc3BvbnNlKSA9PiB7XG4gICAgICB2YXIgaXNCaW5hcnkgPVxuICAgICAgICByZXNwb25zZS5oZWFkZXJzW1wiY29udGVudC10eXBlXCJdID09PSBcImFwcGxpY2F0aW9uL29jdGV0LXN0cmVhbVwiO1xuICAgICAgaWYgKCFpc0JpbmFyeSkge1xuICAgICAgICByZXNwb25zZS5zZXRFbmNvZGluZyhcInV0ZjhcIik7XG4gICAgICB9XG5cbiAgICAgIHJlc3BvbnNlLm9uKFwiZGF0YVwiLCAoY2h1bmspID0+IHtcbiAgICAgICAgcmVzcG9uc2VEYXRhLnB1c2goY2h1bmspO1xuICAgICAgfSk7XG5cbiAgICAgIHJlc3BvbnNlLm9uKFwiZW5kXCIsICgpID0+IHtcbiAgICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcInJlc3BvbnNlIGVuZGVkOlwiLCByZXNwb25zZS5zdGF0dXNDb2RlKTtcbiAgICAgICAgaWYgKGNhbGxiYWNrKSB7XG4gICAgICAgICAgaWYgKGlzQmluYXJ5KSB7XG4gICAgICAgICAgICByZXNwb25zZURhdGEgPSBCdWZmZXIuY29uY2F0KHJlc3BvbnNlRGF0YSk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5fX3BhcnNlUmVzcG9uc2UoXG4gICAgICAgICAgICByZXNwb25zZSxcbiAgICAgICAgICAgIHJlc3BvbnNlRGF0YSxcbiAgICAgICAgICAgIGVuZHBvaW50Lm1ldGhvZCxcbiAgICAgICAgICAgIGNhbGxiYWNrLFxuICAgICAgICAgICAgc2tpcEpzb25QYXJzaW5nLFxuICAgICAgICAgICAgY3VzdG9tUmVzcG9uc2VQYXJzZXJcbiAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIHJlc3BvbnNlLm9uKFwiY2xvc2VcIiwgKGUpID0+IHtcbiAgICAgICAgaWYgKGUpIHtcbiAgICAgICAgICB0aGlzLmxvZ2dlci5lcnJvcihcbiAgICAgICAgICAgIFwicHJvYmxlbSB3aXRoIEFQSSByZXF1ZXN0IGRldGFpbGVkIHN0YWNrdHJhY2UgYmVsb3cgXCJcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMubG9nZ2VyLmVycm9yKGUpO1xuICAgICAgICAgIGNhbGxiYWNrKGUpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9KTtcbiAgICByZXF1ZXN0Lm9uKFwiZXJyb3JcIiwgKGUpID0+IHtcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKFwicHJvYmxlbSB3aXRoIEFQSSByZXF1ZXN0IGRldGFpbGVkIHN0YWNrdHJhY2UgYmVsb3cgXCIpO1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoZSk7XG4gICAgICBjYWxsYmFjayhlKTtcbiAgICB9KTtcbiAgfVxuXG4gIF9fcGFyc2VSZXNwb25zZShcbiAgICBodHRwUmVzcG9uc2UsXG4gICAgZGF0YSxcbiAgICBtZXRob2QsXG4gICAgY2FsbGJhY2ssXG4gICAgc2tpcEpzb25QYXJzaW5nLFxuICAgIGN1c3RvbVJlc3BvbnNlUGFyc2VyXG4gICkge1xuICAgIGNvbnN0IGlzQXJyYXlPckJ1ZmZlciA9IGRhdGEgaW5zdGFuY2VvZiBBcnJheSB8fCBkYXRhIGluc3RhbmNlb2YgQnVmZmVyO1xuICAgIGlmICghaXNBcnJheU9yQnVmZmVyKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJkYXRhIHNob3VsZCBiZSBvZiB0eXBlIEFycmF5IG9yIEJ1ZmZlclwiKTtcbiAgICB9XG5cbiAgICBjb25zdCBzdGF0dXMgPSBodHRwUmVzcG9uc2Uuc3RhdHVzQ29kZTtcbiAgICBjb25zdCBoZWFkZXJzID0gaHR0cFJlc3BvbnNlLmhlYWRlcnM7XG5cbiAgICBsZXQgcmVzcG9uc2UgPSBudWxsO1xuICAgIHZhciBlcnJvciA9IG51bGw7XG5cbiAgICB0cnkge1xuICAgICAgaWYgKHN0YXR1cyA+PSA1MDApIHtcbiAgICAgICAgZXJyb3IgPSB7XG4gICAgICAgICAgbWVzc2FnZTogXCJTZXJ2ZXIgRXJyb3JcIixcbiAgICAgICAgICBzdGF0dXNDb2RlOiBzdGF0dXMsXG4gICAgICAgIH07XG4gICAgICB9IGVsc2UgaWYgKFxuICAgICAgICBodHRwUmVzcG9uc2UuaGVhZGVyc1tcImNvbnRlbnQtdHlwZVwiXSA9PT0gXCJhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1cIlxuICAgICAgKSB7XG4gICAgICAgIHJlc3BvbnNlID0gZGF0YTtcbiAgICAgIH0gZWxzZSBpZiAoc3RhdHVzID09PSA0MjkpIHtcbiAgICAgICAgLy8gNDI5IGRvZXMgbm90IHJldHVybiBhIHBhcnNhYmxlIGJvZHlcbiAgICAgICAgaWYgKCFoZWFkZXJzW1wicmV0cnktYWZ0ZXJcIl0pIHtcbiAgICAgICAgICAvLyByZXRyeSBiYXNlZCBvbiBhbGxvd2VkIHBlciBzZWNvbmRcbiAgICAgICAgICBjb25zdCByZXRyeUFmdGVyTWlsbGlzID0gbWV0aG9kID09PSBcIlBPU1RcIiA/IDEwMDAgLyAyIDogMTAwMCAvIDU7XG4gICAgICAgICAgaGVhZGVyc1tcInJldHJ5LWFmdGVyXCJdID0gcmV0cnlBZnRlck1pbGxpcztcbiAgICAgICAgfVxuICAgICAgICBlcnJvciA9IHtcbiAgICAgICAgICBib2R5OiBkYXRhLmpvaW4oXCJcIiksXG4gICAgICAgIH07XG4gICAgICB9IGVsc2UgaWYgKHN0YXR1cyA9PT0gMjA0KSB7XG4gICAgICAgIHJlc3BvbnNlID0gbnVsbDtcbiAgICAgIH0gZWxzZSBpZiAoc3RhdHVzID49IDQwMCB8fCBzdGF0dXMgPCAyMDApIHtcbiAgICAgICAgZXJyb3IgPSB7XG4gICAgICAgICAgYm9keTogSlNPTi5wYXJzZShkYXRhLmpvaW4oXCJcIikpLFxuICAgICAgICAgIGhlYWRlcnMsXG4gICAgICAgIH07XG4gICAgICB9IGVsc2UgaWYgKG1ldGhvZCAhPT0gXCJERUxFVEVcIikge1xuICAgICAgICBpZiAoISFza2lwSnNvblBhcnNpbmcpIHtcbiAgICAgICAgICByZXNwb25zZSA9IGRhdGEuam9pbihcIlwiKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXNwb25zZSA9IEpTT04ucGFyc2UoZGF0YS5qb2luKFwiXCIpKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzcG9uc2UgPSBkYXRhO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKHBhcnNlRXJyb3IpIHtcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKHBhcnNlRXJyb3IpO1xuICAgICAgdGhpcy5sb2dnZXIuZXJyb3IoXG4gICAgICAgIFwiY291bGQgbm90IGNvbnZlcnQgQVBJIHJlc3BvbnNlIHRvIEpTT04sIGFib3ZlIGVycm9yIGlzIGlnbm9yZWQgYW5kIHJhdyBBUEkgcmVzcG9uc2UgaXMgcmV0dXJuZWQgdG8gY2xpZW50XCJcbiAgICAgICk7XG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcihcIlJhdyBFcnJvciBtZXNzYWdlIGZyb20gQVBJIFwiKTtcbiAgICAgIHRoaXMubG9nZ2VyLmVycm9yKGBcIiR7ZGF0YX1cImApO1xuXG4gICAgICBlcnJvciA9IHtcbiAgICAgICAgc3RhdHVzOiBzdGF0dXMsXG4gICAgICAgIG1lc3NhZ2U6IFwiVGhlIEFQSSByZXNwb25zZSBjb3VsZCBub3QgYmUgcGFyc2VkLlwiLFxuICAgICAgICBib2R5OiBkYXRhLmpvaW4oXCJcIiksXG4gICAgICAgIHBhcnNlRXJyb3I6IHBhcnNlRXJyb3IsXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChlcnJvcikge1xuICAgICAgZXJyb3Iuc3RhdHVzQ29kZSA9IHN0YXR1cztcbiAgICAgIGVycm9yLmhlYWRlcnMgPSBoZWFkZXJzO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgY2FsbGJhY2sgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgaWYgKHR5cGVvZiBjdXN0b21SZXNwb25zZVBhcnNlciA9PT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIC8vIGRvbid0IHRyeSB0byBwYXJzZSB0aGUgcmVzcG9uc2Ugb24gZXJyb3JzXG4gICAgICAgIGlmIChyZXNwb25zZSkge1xuICAgICAgICAgIHJlc3BvbnNlID0gY3VzdG9tUmVzcG9uc2VQYXJzZXIocmVzcG9uc2UpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBjYWxsYmFjayhlcnJvciwgcmVzcG9uc2UpO1xuICAgIH1cbiAgfVxuXG4gIF9hZGRMaW1pdGVkQWNjZXNzTWVzc2FnZVRvRXJyb3JzKGNhbGxiYWNrLCBsaW1pdGVkQWNjZXNzU3RhdHVzKSB7XG4gICAgcmV0dXJuIGZ1bmN0aW9uIChlcnIsIGRhdGEpIHtcbiAgICAgIGlmIChlcnIgJiYgZXJyLnN0YXR1cyA9PSBsaW1pdGVkQWNjZXNzU3RhdHVzKSB7XG4gICAgICAgIGVyci5fSU5GT18gPVxuICAgICAgICAgIFwiVGhpcyBlbmRwb2ludCBtYXkgbmVlZCBhY3RpdmF0aW5nIG9uIHlvdXIgYWNjb3VudC4gUGxlYXNlIGVtYWlsIHN1cHBvcnRAbmV4bW8uY29tIGZvciBtb3JlIGluZm9ybWF0aW9uXCI7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBjYWxsYmFjayhlcnIsIGRhdGEpO1xuICAgIH07XG4gIH1cblxuICBnZXQocGF0aCwgcGFyYW1zLCBjYWxsYmFjaywgdXNlSnd0ID0gZmFsc2UsIHVzZUJhc2ljQXV0aCA9IGZhbHNlKSB7XG4gICAgaWYgKCFjYWxsYmFjaykge1xuICAgICAgaWYgKHR5cGVvZiBwYXJhbXMgPT0gXCJmdW5jdGlvblwiKSB7XG4gICAgICAgIGNhbGxiYWNrID0gcGFyYW1zO1xuICAgICAgICBwYXJhbXMgPSB7fTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBwYXJhbXMgPSBwYXJhbXMgfHwge307XG4gICAgaWYgKCF1c2VKd3QgJiYgIXVzZUJhc2ljQXV0aCkge1xuICAgICAgcGFyYW1zW1wiYXBpX2tleVwiXSA9IHRoaXMuY3JlZGVudGlhbHMuYXBpS2V5O1xuICAgICAgcGFyYW1zW1wiYXBpX3NlY3JldFwiXSA9IHRoaXMuY3JlZGVudGlhbHMuYXBpU2VjcmV0O1xuICAgIH1cblxuICAgIHBhdGggPSBwYXRoICsgXCI/XCIgKyBxdWVyeXN0cmluZy5zdHJpbmdpZnkocGFyYW1zKTtcblxuICAgIGNvbnN0IGhlYWRlcnMgPSB7XG4gICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL2pzb25cIixcbiAgICB9O1xuICAgIGlmICh1c2VKd3QpIHtcbiAgICAgIGhlYWRlcnNbXCJBdXRob3JpemF0aW9uXCJdID0gYEJlYXJlciAke3RoaXMuY3JlZGVudGlhbHMuZ2VuZXJhdGVKd3QoKX1gO1xuICAgIH1cbiAgICBpZiAodXNlQmFzaWNBdXRoKSB7XG4gICAgICBoZWFkZXJzW1wiQXV0aG9yaXphdGlvblwiXSA9IGBCYXNpYyAke0J1ZmZlci5mcm9tKFxuICAgICAgICB0aGlzLmNyZWRlbnRpYWxzLmFwaUtleSArIFwiOlwiICsgdGhpcy5jcmVkZW50aWFscy5hcGlTZWNyZXRcbiAgICAgICkudG9TdHJpbmcoXCJiYXNlNjRcIil9YDtcbiAgICB9XG5cbiAgICB0aGlzLnJlcXVlc3QoXG4gICAgICB7XG4gICAgICAgIHBhdGg6IHBhdGgsXG4gICAgICAgIGhlYWRlcnMsXG4gICAgICB9LFxuICAgICAgXCJHRVRcIixcbiAgICAgIGNhbGxiYWNrXG4gICAgKTtcbiAgfVxuXG4gIGRlbGV0ZShwYXRoLCBjYWxsYmFjaywgdXNlSnd0LCB1c2VCYXNpY0F1dGgpIHtcbiAgICBsZXQgcGFyYW1zID0ge307XG4gICAgaWYgKCF1c2VKd3QgJiYgIXVzZUJhc2ljQXV0aCkge1xuICAgICAgcGFyYW1zW1wiYXBpX2tleVwiXSA9IHRoaXMuY3JlZGVudGlhbHMuYXBpS2V5O1xuICAgICAgcGFyYW1zW1wiYXBpX3NlY3JldFwiXSA9IHRoaXMuY3JlZGVudGlhbHMuYXBpU2VjcmV0O1xuICAgIH1cblxuICAgIGxldCBoZWFkZXJzID0ge307XG5cbiAgICBpZiAodXNlQmFzaWNBdXRoKSB7XG4gICAgICBoZWFkZXJzW1wiQXV0aG9yaXphdGlvblwiXSA9IGBCYXNpYyAke0J1ZmZlci5mcm9tKFxuICAgICAgICB0aGlzLmNyZWRlbnRpYWxzLmFwaUtleSArIFwiOlwiICsgdGhpcy5jcmVkZW50aWFscy5hcGlTZWNyZXRcbiAgICAgICkudG9TdHJpbmcoXCJiYXNlNjRcIil9YDtcbiAgICB9XG4gICAgcGF0aCA9IHBhdGggKyBcIj9cIiArIHF1ZXJ5c3RyaW5nLnN0cmluZ2lmeShwYXJhbXMpO1xuXG4gICAgdGhpcy5yZXF1ZXN0KFxuICAgICAge1xuICAgICAgICBwYXRoOiBwYXRoLFxuICAgICAgICBoZWFkZXJzLFxuICAgICAgfSxcbiAgICAgIFwiREVMRVRFXCIsXG4gICAgICBjYWxsYmFja1xuICAgICk7XG4gIH1cblxuICBwb3N0RmlsZShwYXRoLCBvcHRpb25zLCBjYWxsYmFjaywgdXNlSnd0KSB7XG4gICAgbGV0IHFzID0ge307XG4gICAgaWYgKCF1c2VKd3QpIHtcbiAgICAgIHFzW1wiYXBpX2tleVwiXSA9IHRoaXMuY3JlZGVudGlhbHMuYXBpS2V5O1xuICAgICAgcXNbXCJhcGlfc2VjcmV0XCJdID0gdGhpcy5jcmVkZW50aWFscy5hcGlTZWNyZXQ7XG4gICAgfVxuXG4gICAgaWYgKE9iamVjdC5rZXlzKHFzKS5sZW5ndGgpIHtcbiAgICAgIGxldCBqb2luQ2hhciA9IFwiP1wiO1xuICAgICAgaWYgKHBhdGguaW5kZXhPZihqb2luQ2hhcikgIT09IC0xKSB7XG4gICAgICAgIGpvaW5DaGFyID0gXCImXCI7XG4gICAgICB9XG4gICAgICBwYXRoID0gcGF0aCArIGpvaW5DaGFyICsgcXVlcnlzdHJpbmcuc3RyaW5naWZ5KHFzKTtcbiAgICB9XG5cbiAgICBjb25zdCBmaWxlID0gb3B0aW9ucy5maWxlO1xuICAgIGRlbGV0ZSBvcHRpb25zLmZpbGU7IC8vIFdlIGRvbid0IHNlbmQgdGhpcyBhcyBtZXRhZGF0YVxuXG4gICAgY29uc3QgZm9ybURhdGEgPSB7fTtcblxuICAgIGlmIChmaWxlKSB7XG4gICAgICBmb3JtRGF0YVtcImZpbGVkYXRhXCJdID0ge1xuICAgICAgICB2YWx1ZTogZmlsZSxcbiAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgIGZpbGVuYW1lOiBvcHRpb25zLmZpbGVuYW1lIHx8IG51bGwsXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLmluZm8pIHtcbiAgICAgIGZvcm1EYXRhLmluZm8gPSBKU09OLnN0cmluZ2lmeShvcHRpb25zLmluZm8pO1xuICAgIH1cblxuICAgIGlmIChvcHRpb25zLnVybCkge1xuICAgICAgZm9ybURhdGEudXJsID0gb3B0aW9ucy51cmw7XG4gICAgfVxuXG4gICAgbGV0IHByb3RvY29sID0gdGhpcy5wb3J0ID09PSA0NDMgPyBcImh0dHBzOi8vXCIgOiBcImh0dHA6Ly9cIjtcblxuICAgIHRoaXMucmVxdWVzdExpYi5wb3N0KFxuICAgICAge1xuICAgICAgICB1cmw6IHByb3RvY29sICsgdGhpcy5ob3N0ICsgcGF0aCxcbiAgICAgICAgZm9ybURhdGE6IGZvcm1EYXRhLFxuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgQXV0aG9yaXphdGlvbjogYEJlYXJlciAke3RoaXMuY3JlZGVudGlhbHMuZ2VuZXJhdGVKd3QoKX1gLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIGNhbGxiYWNrXG4gICAgKTtcbiAgfVxuXG4gIHBvc3QocGF0aCwgcGFyYW1zLCBjYWxsYmFjaywgdXNlSnd0LCBoZWFkZXJzKSB7XG4gICAgbGV0IHFzID0ge307XG4gICAgaWYgKCF1c2VKd3QpIHtcbiAgICAgIHFzW1wiYXBpX2tleVwiXSA9IHRoaXMuY3JlZGVudGlhbHMuYXBpS2V5O1xuICAgICAgcXNbXCJhcGlfc2VjcmV0XCJdID0gdGhpcy5jcmVkZW50aWFscy5hcGlTZWNyZXQ7XG4gICAgfVxuXG4gICAgbGV0IGpvaW5DaGFyID0gXCI/XCI7XG4gICAgaWYgKHBhdGguaW5kZXhPZihqb2luQ2hhcikgIT09IC0xKSB7XG4gICAgICBqb2luQ2hhciA9IFwiJlwiO1xuICAgIH1cblxuICAgIHBhdGggPSBwYXRoICsgam9pbkNoYXIgKyBxdWVyeXN0cmluZy5zdHJpbmdpZnkocXMpO1xuXG4gICAgaGVhZGVycyA9IGhlYWRlcnMgfHwge307XG4gICAgaWYgKHVzZUp3dCkge1xuICAgICAgaGVhZGVyc1tcIkF1dGhvcml6YXRpb25cIl0gPSBgQmVhcmVyICR7dGhpcy5jcmVkZW50aWFscy5nZW5lcmF0ZUp3dCgpfWA7XG4gICAgfVxuXG4gICAgbGV0IGVuY29kZWRQYXJhbXM7XG4gICAgaWYgKGhlYWRlcnNbXCJDb250ZW50LVR5cGVcIl0gPT0gXCJhcHBsaWNhdGlvbi9qc29uXCIpIHtcbiAgICAgIGVuY29kZWRQYXJhbXMgPSBKU09OLnN0cmluZ2lmeShwYXJhbXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBlbmNvZGVkUGFyYW1zID0gcXVlcnlzdHJpbmcuc3RyaW5naWZ5KHBhcmFtcyk7XG4gICAgfVxuXG4gICAgdGhpcy5yZXF1ZXN0KHsgcGF0aCwgYm9keTogZW5jb2RlZFBhcmFtcywgaGVhZGVycyB9LCBcIlBPU1RcIiwgY2FsbGJhY2spO1xuICB9XG5cbiAgcG9zdEpzb24ocGF0aCwgcGFyYW1zLCBjYWxsYmFjaywgdXNlSnd0LCB1c2VCYXNpY0F1dGgpIHtcbiAgICBsZXQgcXMgPSB7fTtcbiAgICBpZiAoIXVzZUp3dCAmJiAhdXNlQmFzaWNBdXRoKSB7XG4gICAgICBxc1tcImFwaV9rZXlcIl0gPSB0aGlzLmNyZWRlbnRpYWxzLmFwaUtleTtcbiAgICAgIHFzW1wiYXBpX3NlY3JldFwiXSA9IHRoaXMuY3JlZGVudGlhbHMuYXBpU2VjcmV0O1xuICAgIH1cblxuICAgIGxldCBqb2luQ2hhciA9IFwiP1wiO1xuICAgIGlmIChwYXRoLmluZGV4T2Yoam9pbkNoYXIpICE9PSAtMSkge1xuICAgICAgam9pbkNoYXIgPSBcIiZcIjtcbiAgICB9XG5cbiAgICBwYXRoID0gcGF0aCArIGpvaW5DaGFyICsgcXVlcnlzdHJpbmcuc3RyaW5naWZ5KHFzKTtcblxuICAgIGxldCBoZWFkZXJzID0ge1xuICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCIsXG4gICAgfTtcbiAgICBpZiAodXNlQmFzaWNBdXRoKSB7XG4gICAgICBoZWFkZXJzW1wiQXV0aG9yaXphdGlvblwiXSA9IGBCYXNpYyAke0J1ZmZlci5mcm9tKFxuICAgICAgICB0aGlzLmNyZWRlbnRpYWxzLmFwaUtleSArIFwiOlwiICsgdGhpcy5jcmVkZW50aWFscy5hcGlTZWNyZXRcbiAgICAgICkudG9TdHJpbmcoXCJiYXNlNjRcIil9YDtcbiAgICB9XG5cbiAgICB0aGlzLnJlcXVlc3QoXG4gICAgICB7XG4gICAgICAgIHBhdGg6IHBhdGgsXG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHBhcmFtcyksXG4gICAgICAgIGhlYWRlcnMsXG4gICAgICB9LFxuICAgICAgXCJQT1NUXCIsXG4gICAgICBjYWxsYmFja1xuICAgICk7XG4gIH1cblxuICBwb3N0VXNlUXVlcnlTdHJpbmcocGF0aCwgcGFyYW1zLCBjYWxsYmFjaywgdXNlSnd0KSB7XG4gICAgcGFyYW1zID0gcGFyYW1zIHx8IHt9O1xuICAgIGlmICghdXNlSnd0KSB7XG4gICAgICBwYXJhbXNbXCJhcGlfa2V5XCJdID0gdGhpcy5jcmVkZW50aWFscy5hcGlLZXk7XG4gICAgICBwYXJhbXNbXCJhcGlfc2VjcmV0XCJdID0gdGhpcy5jcmVkZW50aWFscy5hcGlTZWNyZXQ7XG4gICAgfVxuXG4gICAgcGF0aCA9IHBhdGggKyBcIj9cIiArIHF1ZXJ5c3RyaW5nLnN0cmluZ2lmeShwYXJhbXMpO1xuICAgIHRoaXMucmVxdWVzdChcbiAgICAgIHtcbiAgICAgICAgcGF0aDogcGF0aCxcbiAgICAgIH0sXG4gICAgICBcIlBPU1RcIixcbiAgICAgIGNhbGxiYWNrXG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBIdHRwQ2xpZW50O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBSUEsS0FBSyxHQUFHQyxPQUFPLENBQUMsT0FBRCxDQUFuQjs7QUFDQSxJQUFJQyxJQUFJLEdBQUdELE9BQU8sQ0FBQyxNQUFELENBQWxCOztBQUNBLElBQUlFLE9BQU8sR0FBR0YsT0FBTyxDQUFDLFNBQUQsQ0FBckI7O0FBQ0EsSUFBSUcsV0FBVyxHQUFHSCxPQUFPLENBQUMsY0FBRCxDQUF6Qjs7QUFDQSxJQUFJSSxHQUFHLEdBQUdKLE9BQU8sQ0FBQyxLQUFELENBQVAsQ0FBZUksR0FBekI7O0FBRUEsSUFBTUMsVUFBVSxHQUFJQyxDQUFELElBQU87RUFDeEIsSUFBSSxDQUFDQSxDQUFELElBQU1BLENBQUMsS0FBSyxJ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
{
"name": "@vonage/server-sdk",
"author": "vonage",
"version": "2.11.0",
"version": "2.11.1",
"main": "lib/Vonage",

@@ -6,0 +6,0 @@ "types": "./typings/index.d.ts",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc