appium-xcuitest-driver 3.55.0 → 3.55.1

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/build/index.js CHANGED
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = exports.startServer = exports.XCUITestDriver = void 0;
6
+ exports.startServer = exports.default = exports.XCUITestDriver = void 0;
7
7
 
8
8
  require("source-map-support/register");
9
9
 
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.extractBundleId = extractBundleId;
9
- exports.verifyApplicationPlatform = verifyApplicationPlatform;
10
9
  exports.parseLocalizableStrings = parseLocalizableStrings;
10
+ exports.verifyApplicationPlatform = verifyApplicationPlatform;
11
11
 
12
12
  require("source-map-support/register");
13
13
 
@@ -5,10 +5,10 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
+ exports.doesSupportKeychainApi = void 0;
9
+ exports.hasCertificateLegacy = hasCertificateLegacy;
8
10
  exports.installCertificate = installCertificate;
9
11
  exports.installCertificateLegacy = installCertificateLegacy;
10
- exports.hasCertificateLegacy = hasCertificateLegacy;
11
- exports.doesSupportKeychainApi = void 0;
12
12
 
13
13
  require("source-map-support/register");
14
14
 
@@ -82,9 +82,17 @@ commands.mobileRemoveApp = async function mobileRemoveApp(opts = {}) {
82
82
  };
83
83
 
84
84
  commands.mobileLaunchApp = async function mobileLaunchApp(opts = {}) {
85
- return await this.proxyCommand('/wda/apps/launch', 'POST', { ...requireOptions(opts, ['bundleId']),
86
- arguments: _lodash.default.isArray(opts.arguments) ? opts.arguments : [opts.arguments]
87
- });
85
+ const launchOptions = requireOptions(opts, ['bundleId']);
86
+
87
+ if (opts.arguments) {
88
+ launchOptions.arguments = _lodash.default.isArray(opts.arguments) ? opts.arguments : [opts.arguments];
89
+ }
90
+
91
+ if (opts.environment) {
92
+ launchOptions.environment = opts.environment;
93
+ }
94
+
95
+ return await this.proxyCommand('/wda/apps/launch', 'POST', launchOptions);
88
96
  };
89
97
 
90
98
  commands.mobileTerminateApp = async function mobileTerminateApp(opts = {}) {
@@ -152,4 +160,4 @@ var _default = commands;
152
160
  exports.default = _default;require('source-map-support').install();
153
161
 
154
162
 
155
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9hcHAtbWFuYWdlbWVudC5qcyJdLCJuYW1lcyI6WyJjb21tYW5kcyIsInJlcXVpcmVPcHRpb25zIiwib3B0cyIsInJlcUtleXMiLCJrZXkiLCJfIiwiaXNTdHJpbmciLCJpc0VtcHR5IiwiZXJyb3JzIiwiSW52YWxpZEFyZ3VtZW50RXJyb3IiLCJtb2JpbGVJbnN0YWxsQXBwIiwiYXBwIiwidGltZW91dE1zIiwic3RyYXRlZ3kiLCJzcmNBcHBQYXRoIiwiaGVscGVycyIsImNvbmZpZ3VyZUFwcCIsImxvZyIsImluZm8iLCJpc1JlYWxEZXZpY2UiLCJkZXZpY2UiLCJ1ZGlkIiwiZnMiLCJleGlzdHMiLCJlcnJvckFuZFRocm93IiwiaW5zdGFsbEFwcCIsImFwcFB1c2hUaW1lb3V0IiwiYXBwSW5zdGFsbFN0cmF0ZWd5IiwibW9iaWxlSXNBcHBJbnN0YWxsZWQiLCJidW5kbGVJZCIsImluc3RhbGxlZCIsImlzQXBwSW5zdGFsbGVkIiwibW9iaWxlUmVtb3ZlQXBwIiwicmVtb3ZlQXBwIiwiZXJyIiwid2FybiIsIm1lc3NhZ2UiLCJtb2JpbGVMYXVuY2hBcHAiLCJwcm94eUNvbW1hbmQiLCJhcmd1bWVudHMiLCJpc0FycmF5IiwibW9iaWxlVGVybWluYXRlQXBwIiwibW9iaWxlQWN0aXZhdGVBcHAiLCJtb2JpbGVRdWVyeUFwcFN0YXRlIiwiYXBwUGF0aCIsImFjdGl2YXRlQXBwIiwiT2JqZWN0IiwiYXNzaWduIiwidGVybWluYXRlQXBwIiwicXVlcnlBcHBTdGF0ZSIsIm1vYmlsZUxpc3RBcHBzIiwiTm90SW1wbGVtZW50ZWRFcnJvciIsImFwcGxpY2F0aW9uVHlwZSIsInNlcnZpY2UiLCJzZXJ2aWNlcyIsInN0YXJ0SW5zdGFsbGF0aW9uUHJveHlTZXJ2aWNlIiwibGlzdEFwcGxpY2F0aW9ucyIsImNsb3NlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLE1BQU1BLFFBQVEs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S2MsbUJBQUwsQ0FBeUI7QUFBQ2QsSUFBQUE7QUFBRCxHQUF6QixDQUFiO0FBQ0QsQ0FGRDs7QUFnQkE3QixRQUFRLENBQUNrRCxjQUFULEdBQTBCLGVBQWVBLGNBQWYsQ0FBK0JoRCxJQUFJLEdBQUcsRUFBdEMsRUFBMEM7QUFDbEUsTUFBSSxDQUFDLEtBQUtpQixZQUFMLEVBQUwsRUFBMEI7QUFDeEIsVUFBTSxJQUFJWCx5QkFBTzJDLG1CQUFYLENBQWdDLGtEQUFoQyxDQUFOO0FBQ0Q7O0FBRUQsUUFBTTtBQUNKQyxJQUFBQSxlQUFlLEdBQUc7QUFEZCxNQUVGbEQsSUFGSjtBQUdBLFFBQU1tRCxPQUFPLEdBQUcsTUFBTUMsMEJBQVNDLDZCQUFULENBQXVDLEtBQUtyRCxJQUFMLENBQVVrQixNQUFWLENBQWlCQyxJQUF4RCxDQUF0Qjs7QUFDQSxNQUFJO0FBQ0YsV0FBTyxNQUFNZ0MsT0FBTyxDQUFDRyxnQkFBUixDQUF5QjtBQUFDSixNQUFBQTtBQUFELEtBQXpCLENBQWI7QUFDRCxHQUZELFNBRVU7QUFDUkMsSUFBQUEsT0FBTyxDQUFDSSxLQUFSO0FBQ0Q7QUFDRixDQWREOztlQWdCZXpELFEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgZnMgfSBmcm9tICdhcHBpdW0tc3VwcG9ydCc7XG5pbXBvcnQgbG9nIGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQgeyBlcnJvcnMgfSBmcm9tICdhcHBpdW0tYmFzZS1kcml2ZXInO1xuaW1wb3J0IHsgc2VydmljZXMgfSBmcm9tICdhcHBpdW0taW9zLWRldmljZSc7XG5cbmNvbnN0IGNvbW1hbmRzID0ge307XG5cbmZ1bmN0aW9uIHJlcXVpcmVPcHRpb25zIChvcHRzID0ge30sIHJlcUtleXMgPSBbXSkge1xuICBmb3IgKGNvbnN0IGtleSBvZiByZXFLZXlzKSB7XG4gICAgaWYgKCFfLmlzU3RyaW5nKG9wdHNba2V5XSkgfHwgXy5pc0VtcHR5KG9wdHNba2V5XSkpIHtcbiAgICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZEFyZ3VtZW50RXJyb3IoXG4gICAgICAgIGAnJHtrZXl9JyBpcyBleHBlY3RlZCB0byBiZSBhIHZhbGlkIHN0cmluZy4gJyR7b3B0c1trZXldfScgaXMgZ2l2ZW4gaW5zdGVhZGBcbiAgICAgICk7XG4gICAgfVxuICB9XG4gIHJldHVybiBvcHRzO1xufVxuXG5jb21tYW5kcy5tb2JpbGVJbnN0YWxsQXBwID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlSW5zdGFsbEFwcCAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHsgYXBwLCB0aW1lb3V0TXMsIHN0cmF0ZWd5IH0gPSByZXF1aXJlT3B0aW9ucyhvcHRzLCBbJ2FwcCddKTtcbiAgY29uc3Qgc3JjQXBwUGF0aCA9IGF3YWl0IHRoaXMuaGVscGVycy5jb25maWd1cmVBcHAoYXBwLCAnLmFwcCcpO1xuICBsb2cuaW5mbyhgSW5zdGFsbGluZyAnJHtzcmNBcHBQYXRofScgdG8gdGhlICR7dGhpcy5pc1JlYWxEZXZpY2UoKSA/ICdyZWFsIGRldmljZScgOiAnU2ltdWxhdG9yJ30gYCArXG4gICAgYHdpdGggVURJRCAnJHt0aGlzLm9wdHMuZGV2aWNlLnVkaWR9J2ApO1xuICBpZiAoIWF3YWl0IGZzLmV4aXN0cyhzcmNBcHBQYXRoKSkge1xuICAgIGxvZy5lcnJvckFuZFRocm93KGBUaGUgYXBwbGljYXRpb24gYXQgJyR7c3JjQXBwUGF0aH0nIGRvZXMgbm90IGV4aXN0IG9yIGlzIG5vdCBhY2Nlc3NpYmxlYCk7XG4gIH1cbiAgYXdhaXQgdGhpcy5vcHRzLmRldmljZS5pbnN0YWxsQXBwKFxuICAgIHNyY0FwcFBhdGgsIHRpbWVvdXRNcyA/PyB0aGlzLm9wdHMuYXBwUHVzaFRpbWVvdXQsIHN0cmF0ZWd5ID8/IHRoaXMub3B0cy5hcHBJbnN0YWxsU3RyYXRlZ3lcbiAgKTtcbiAgbG9nLmluZm8oYEluc3RhbGxhdGlvbiBvZiAnJHtzcmNBcHBQYXRofScgc3VjY2VlZGVkYCk7XG59O1xuXG5jb21tYW5kcy5tb2JpbGVJc0FwcEluc3RhbGxlZCA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUlzQXBwSW5zdGFsbGVkIChvcHRzID0ge30pIHtcbiAgY29uc3Qge2J1bmRsZUlkfSA9IHJlcXVpcmVPcHRpb25zKG9wdHMsIFsnYnVuZGxlSWQnXSk7XG4gIGNvbnN0IGluc3RhbGxlZCA9IGF3YWl0IHRoaXMub3B0cy5kZXZpY2UuaXNBcHBJbnN0YWxsZWQoYnVuZGxlSWQpO1xuICBsb2cuaW5mbyhgQXBwICcke2J1bmRsZUlkfScgaXMke2luc3RhbGxlZCA/ICcnIDogJyBub3QnfSBpbnN0YWxsZWRgKTtcbiAgcmV0dXJuIGluc3RhbGxlZDtcbn07XG5cbmNvbW1hbmRzLm1vYmlsZVJlbW92ZUFwcCA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVJlbW92ZUFwcCAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtidW5kbGVJZH0gPSByZXF1aXJlT3B0aW9ucyhvcHRzLCBbJ2J1bmRsZUlkJ10pO1xuICBsb2cuaW5mbyhgVW5pbnN0YWxsaW5nIHRoZSBhcHBsaWNhdGlvbiB3aXRoIGJ1bmRsZSBpZGVudGlmaWVyICcke2J1bmRsZUlkfScgYCArXG4gICAgYGZyb20gdGhlICR7dGhpcy5pc1JlYWxEZXZpY2UoKSA/ICdyZWFsIGRldmljZScgOiAnU2ltdWxhdG9yJ30gd2l0aCBVRElEICcke3RoaXMub3B0cy5kZXZpY2UudWRpZH0nYCk7XG4gIHRyeSB7XG4gICAgYXdhaXQgdGhpcy5vcHRzLmRldmljZS5yZW1vdmVBcHAoYnVuZGxlSWQpO1xuICAgIGxvZy5pbmZvKGBSZW1vdmFsIG9mICcke2J1bmRsZUlkfScgc3VjY2VlZGVkYCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZy53YXJuKGBDYW5ub3QgcmVtb3ZlICcke2J1bmRsZUlkfScuIE9yaWdpbmFsIGVycm9yOiAke2Vyci5tZXNzYWdlfWApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufTtcblxuY29tbWFuZHMubW9iaWxlTGF1bmNoQXBwID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlTGF1bmNoQXBwIChvcHRzID0ge30pIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlDb21tYW5kKCcvd2RhL2FwcHMvbGF1bmNoJywgJ1BPU1QnLCB7XG4gICAgLi4ucmVxdWlyZU9wdGlvbnMob3B0cywgWydidW5kbGVJZCddKSxcbiAgICBhcmd1bWVudHM6IF8uaXNBcnJheShvcHRzLmFyZ3VtZW50cykgPyBvcHRzLmFyZ3VtZW50cyA6IFtvcHRzLmFyZ3VtZW50c10sXG4gIH0pO1xufTtcblxuY29tbWFuZHMubW9iaWxlVGVybWluYXRlQXBwID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlVGVybWluYXRlQXBwIChvcHRzID0ge30pIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlDb21tYW5kKCcvd2RhL2FwcHMvdGVybWluYXRlJywgJ1BPU1QnLCByZXF1aXJlT3B0aW9ucyhvcHRzLCBbJ2J1bmRsZUlkJ10pKTtcbn07XG5cbmNvbW1hbmRzLm1vYmlsZUFjdGl2YXRlQXBwID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlQWN0aXZhdGVBcHAgKG9wdHMgPSB7fSkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5wcm94eUNvbW1hbmQoJy93ZGEvYXBwcy9hY3RpdmF0ZScsICdQT1NUJywgcmVxdWlyZU9wdGlvbnMob3B0cywgWydidW5kbGVJZCddKSk7XG59O1xuXG4vKipcbiAqIFJldHVybnMgdGhlIGN1cnJlbnQgYXBwbGljYXRpb24gc3RhdGVcbiAqXG4gKiBAcGFyYW0ge09iamVjdH0gb3B0cyAtIE9wdGlvbnMgc2V0LCB3aGljaCBtdXN0IGNvbnRhaW4gYGJ1bmRsZUlkYCBwcm9wZXJ0eVxuICogQHJldHVybnMge251bWJlcn0gVGhlIGFjdHVhbCBhcHBsaWNhdGlvbiBzdGF0ZSBjb2RlLiBTZWVcbiAqIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpYXBwbGljYXRpb25zdGF0ZT9sYW5ndWFnZT1vYmpjXG4gKiB0byBnZXQgdGhlIGxpc3Qgb2YgcG9zc2libGUgdmFsdWVzLlxuICovXG5jb21tYW5kcy5tb2JpbGVRdWVyeUFwcFN0YXRlID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlUXVlcnlBcHBTdGF0ZSAob3B0cyA9IHt9KSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnByb3h5Q29tbWFuZCgnL3dkYS9hcHBzL3N0YXRlJywgJ1BPU1QnLCByZXF1aXJlT3B0aW9ucyhvcHRzLCBbJ2J1bmRsZUlkJ10pKTtcbn07XG5cbmNvbW1hbmRzLmluc3RhbGxBcHAgPSBhc3luYyBmdW5jdGlvbiBpbnN0YWxsQXBwIChhcHBQYXRoKSB7XG4gIGF3YWl0IHRoaXMubW9iaWxlSW5zdGFsbEFwcCh7YXBwOiBhcHBQYXRofSk7XG59O1xuXG5jb21tYW5kcy5hY3RpdmF0ZUFwcCA9IGFzeW5jIGZ1bmN0aW9uIGFjdGl2YXRlQXBwIChidW5kbGVJZCwgb3B0cyA9IHt9KSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLm1vYmlsZUxhdW5jaEFwcChPYmplY3QuYXNzaWduKHt9LCBvcHRzLCB7YnVuZGxlSWR9KSk7XG59O1xuXG5jb21tYW5kcy5pc0FwcEluc3RhbGxlZCA9IGFzeW5jIGZ1bmN0aW9uIGlzQXBwSW5zdGFsbGVkIChidW5kbGVJZCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5tb2JpbGVJc0FwcEluc3RhbGxlZCh7YnVuZGxlSWR9KTtcbn07XG5cbmNvbW1hbmRzLnRlcm1pbmF0ZUFwcCA9IGFzeW5jIGZ1bmN0aW9uIHRlcm1pbmF0ZUFwcCAoYnVuZGxlSWQpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMubW9iaWxlVGVybWluYXRlQXBwKHtidW5kbGVJZH0pO1xufTtcblxuY29tbWFuZHMucXVlcnlBcHBTdGF0ZSA9IGFzeW5jIGZ1bmN0aW9uIHF1ZXJ5QXBwU3RhdGUgKGJ1bmRsZUlkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLm1vYmlsZVF1ZXJ5QXBwU3RhdGUoe2J1bmRsZUlkfSk7XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IExpc3RBcHBzT3B0aW9uc1xuICogQHByb3BlcnR5IHsnU3lzdGVtJ3wnVXNlcid9IGFwcGxpY2F0aW9uVHlwZSBbVXNlcl0gVGhlIHR5cGUgb2YgYXBwbGljYXRpb25zIHRvIGxpc3RcbiAqL1xuXG4vKipcbiAqIExpc3QgYXBwbGljYXRpb25zIGluc3RhbGxlZCBvbiB0aGUgcmVhbCBkZXZpY2UgdW5kZXIgdGVzdFxuICpcbiAqIEBwYXJhbSB7TGlzdEFwcHNPcHRpb25zfSBvcHRzXG4gKiBAcmV0dXJucyB7QXJyYXk8T2JqZWN0Pn0gQSBsaXN0IG9mIGFwcHMsIHdoZXJlIGVhY2ggaXRlbSBpcyBhIG1hcCB3aGVyZSBrZXlzIGFyZVxuICogYnVuZGxlIGlkZW50aWZpZXJzIGFuZCB2YWx1ZXMgYXJlIG1hcHMgb2YgcGxhdGZvcm0tc3BlY2lmaWMgYXBwIHByb3BlcnRpZXMuXG4gKi9cbmNvbW1hbmRzLm1vYmlsZUxpc3RBcHBzID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlTGlzdEFwcHMgKG9wdHMgPSB7fSkge1xuICBpZiAoIXRoaXMuaXNSZWFsRGV2aWNlKCkpIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JzLk5vdEltcGxlbWVudGVkRXJyb3IoYFRoaXMgZXh0ZW5zaW9uIGlzIG9ubHkgc3VwcG9ydGVkIG9uIHJlYWwgZGV2aWNlc2ApO1xuICB9XG5cbiAgY29uc3Qge1xuICAgIGFwcGxpY2F0aW9uVHlwZSA9ICdVc2VyJyxcbiAgfSA9IG9wdHM7XG4gIGNvbnN0IHNlcnZpY2UgPSBhd2FpdCBzZXJ2aWNlcy5zdGFydEluc3RhbGxhdGlvblByb3h5U2VydmljZSh0aGlzLm9wdHMuZGV2aWNlLnVkaWQpO1xuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCBzZXJ2aWNlLmxpc3RBcHBsaWNhdGlvbnMoe2FwcGxpY2F0aW9uVHlwZX0pO1xuICB9IGZpbmFsbHkge1xuICAgIHNlcnZpY2UuY2xvc2UoKTtcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwiZmlsZSI6ImxpYi9jb21tYW5kcy9hcHAtbWFuYWdlbWVudC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLiJ9
163
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9hcHAtbWFuYWdlbWVudC5qcyJdLCJuYW1lcyI6WyJjb21tYW5kcyIsInJlcXVpcmVPcHRpb25zIiwib3B0cyIsInJlcUtleXMiLCJrZXkiLCJfIiwiaXNTdHJpbmciLCJpc0VtcHR5IiwiZXJyb3JzIiwiSW52YWxpZEFyZ3VtZW50RXJyb3IiLCJtb2JpbGVJbnN0YWxsQXBwIiwiYXBwIiwidGltZW91dE1zIiwic3RyYXRlZ3kiLCJzcmNBcHBQYXRoIiwiaGVscGVycyIsImNvbmZpZ3VyZUFwcCIsImxvZyIsImluZm8iLCJpc1JlYWxEZXZpY2UiLCJkZXZpY2UiLCJ1ZGlkIiwiZnMiLCJleGlzdHMiLCJlcnJvckFuZFRocm93IiwiaW5zdGFsbEFwcCIsImFwcFB1c2hUaW1lb3V0IiwiYXBwSW5zdGFsbFN0cmF0ZWd5IiwibW9iaWxlSXNBcHBJbnN0YWxsZWQiLCJidW5kbGVJZCIsImluc3RhbGxlZCIsImlzQXBwSW5zdGFsbGVkIiwibW9iaWxlUmVtb3ZlQXBwIiwicmVtb3ZlQXBwIiwiZXJyIiwid2FybiIsIm1lc3NhZ2UiLCJtb2JpbGVMYXVuY2hBcHAiLCJsYXVuY2hPcHRpb25zIiwiYXJndW1lbnRzIiwiaXNBcnJheSIsImVudmlyb25tZW50IiwicHJveHlDb21tYW5kIiwibW9iaWxlVGVybWluYXRlQXBwIiwibW9iaWxlQWN0aXZhdGVBcHAiLCJtb2JpbGVRdWVyeUFwcFN0YXRlIiwiYXBwUGF0aCIsImFjdGl2YXRlQXBwIiwiT2JqZWN0IiwiYXNzaWduIiwidGVybWluYXRlQXBwIiwicXVlcnlBcHBTdGF0ZSIsIm1vYmlsZUxpc3RBcHBzIiwiTm90SW1wbGVtZW50ZWRFcnJvciIsImFwcGxpY2F0aW9uVHlwZSIsInNlcnZpY2UiLCJzZXJ2aWNlcyIsInN0YXJ0SW5zdGFsbGF0aW9uUHJveHlTZXJ2aWNlIiwibGlzdEFwcGxpY2F0aW9ucyIsImNsb3NlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNB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R0FBd0IsZUFBZUEsWUFBZixDQUE2QnJCLFFBQTdCLEVBQXVDO0FBQzdELFNBQU8sTUFBTSxLQUFLYyxrQkFBTCxDQUF3QjtBQUFDZCxJQUFBQTtBQUFELEdBQXhCLENBQWI7QUFDRCxDQUZEOztBQUlBN0IsUUFBUSxDQUFDbUQsYUFBVCxHQUF5QixlQUFlQSxhQUFmLENBQThCdEIsUUFBOUIsRUFBd0M7QUFDL0QsU0FBTyxNQUFNLEtBQUtnQixtQkFBTCxDQUF5QjtBQUFDaEIsSUFBQUE7QUFBRCxHQUF6QixDQUFiO0FBQ0QsQ0FGRDs7QUFnQkE3QixRQUFRLENBQUNvRCxjQUFULEdBQTBCLGVBQWVBLGNBQWYsQ0FBK0JsRCxJQUFJLEdBQUcsRUFBdEMsRUFBMEM7QUFDbEUsTUFBSSxDQUFDLEtBQUtpQixZQUFMLEVBQUwsRUFBMEI7QUFDeEIsVUFBTSxJQUFJWCx5QkFBTzZDLG1CQUFYLENBQWdDLGtEQUFoQyxDQUFOO0FBQ0Q7O0FBRUQsUUFBTTtBQUNKQyxJQUFBQSxlQUFlLEdBQUc7QUFEZCxNQUVGcEQsSUFGSjtBQUdBLFFBQU1xRCxPQUFPLEdBQUcsTUFBTUMsMEJBQVNDLDZCQUFULENBQXVDLEtBQUt2RCxJQUFMLENBQVVrQixNQUFWLENBQWlCQyxJQUF4RCxDQUF0Qjs7QUFDQSxNQUFJO0FBQ0YsV0FBTyxNQUFNa0MsT0FBTyxDQUFDRyxnQkFBUixDQUF5QjtBQUFDSixNQUFBQTtBQUFELEtBQXpCLENBQWI7QUFDRCxHQUZELFNBRVU7QUFDUkMsSUFBQUEsT0FBTyxDQUFDSSxLQUFSO0FBQ0Q7QUFDRixDQWREOztlQWdCZTNELFEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgZnMgfSBmcm9tICdhcHBpdW0tc3VwcG9ydCc7XG5pbXBvcnQgbG9nIGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQgeyBlcnJvcnMgfSBmcm9tICdhcHBpdW0tYmFzZS1kcml2ZXInO1xuaW1wb3J0IHsgc2VydmljZXMgfSBmcm9tICdhcHBpdW0taW9zLWRldmljZSc7XG5cbmNvbnN0IGNvbW1hbmRzID0ge307XG5cbmZ1bmN0aW9uIHJlcXVpcmVPcHRpb25zIChvcHRzID0ge30sIHJlcUtleXMgPSBbXSkge1xuICBmb3IgKGNvbnN0IGtleSBvZiByZXFLZXlzKSB7XG4gICAgaWYgKCFfLmlzU3RyaW5nKG9wdHNba2V5XSkgfHwgXy5pc0VtcHR5KG9wdHNba2V5XSkpIHtcbiAgICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZEFyZ3VtZW50RXJyb3IoXG4gICAgICAgIGAnJHtrZXl9JyBpcyBleHBlY3RlZCB0byBiZSBhIHZhbGlkIHN0cmluZy4gJyR7b3B0c1trZXldfScgaXMgZ2l2ZW4gaW5zdGVhZGBcbiAgICAgICk7XG4gICAgfVxuICB9XG4gIHJldHVybiBvcHRzO1xufVxuXG5jb21tYW5kcy5tb2JpbGVJbnN0YWxsQXBwID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlSW5zdGFsbEFwcCAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHsgYXBwLCB0aW1lb3V0TXMsIHN0cmF0ZWd5IH0gPSByZXF1aXJlT3B0aW9ucyhvcHRzLCBbJ2FwcCddKTtcbiAgY29uc3Qgc3JjQXBwUGF0aCA9IGF3YWl0IHRoaXMuaGVscGVycy5jb25maWd1cmVBcHAoYXBwLCAnLmFwcCcpO1xuICBsb2cuaW5mbyhgSW5zdGFsbGluZyAnJHtzcmNBcHBQYXRofScgdG8gdGhlICR7dGhpcy5pc1JlYWxEZXZpY2UoKSA/ICdyZWFsIGRldmljZScgOiAnU2ltdWxhdG9yJ30gYCArXG4gICAgYHdpdGggVURJRCAnJHt0aGlzLm9wdHMuZGV2aWNlLnVkaWR9J2ApO1xuICBpZiAoIWF3YWl0IGZzLmV4aXN0cyhzcmNBcHBQYXRoKSkge1xuICAgIGxvZy5lcnJvckFuZFRocm93KGBUaGUgYXBwbGljYXRpb24gYXQgJyR7c3JjQXBwUGF0aH0nIGRvZXMgbm90IGV4aXN0IG9yIGlzIG5vdCBhY2Nlc3NpYmxlYCk7XG4gIH1cbiAgYXdhaXQgdGhpcy5vcHRzLmRldmljZS5pbnN0YWxsQXBwKFxuICAgIHNyY0FwcFBhdGgsIHRpbWVvdXRNcyA/PyB0aGlzLm9wdHMuYXBwUHVzaFRpbWVvdXQsIHN0cmF0ZWd5ID8/IHRoaXMub3B0cy5hcHBJbnN0YWxsU3RyYXRlZ3lcbiAgKTtcbiAgbG9nLmluZm8oYEluc3RhbGxhdGlvbiBvZiAnJHtzcmNBcHBQYXRofScgc3VjY2VlZGVkYCk7XG59O1xuXG5jb21tYW5kcy5tb2JpbGVJc0FwcEluc3RhbGxlZCA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUlzQXBwSW5zdGFsbGVkIChvcHRzID0ge30pIHtcbiAgY29uc3Qge2J1bmRsZUlkfSA9IHJlcXVpcmVPcHRpb25zKG9wdHMsIFsnYnVuZGxlSWQnXSk7XG4gIGNvbnN0IGluc3RhbGxlZCA9IGF3YWl0IHRoaXMub3B0cy5kZXZpY2UuaXNBcHBJbnN0YWxsZWQoYnVuZGxlSWQpO1xuICBsb2cuaW5mbyhgQXBwICcke2J1bmRsZUlkfScgaXMke2luc3RhbGxlZCA/ICcnIDogJyBub3QnfSBpbnN0YWxsZWRgKTtcbiAgcmV0dXJuIGluc3RhbGxlZDtcbn07XG5cbmNvbW1hbmRzLm1vYmlsZVJlbW92ZUFwcCA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVJlbW92ZUFwcCAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtidW5kbGVJZH0gPSByZXF1aXJlT3B0aW9ucyhvcHRzLCBbJ2J1bmRsZUlkJ10pO1xuICBsb2cuaW5mbyhgVW5pbnN0YWxsaW5nIHRoZSBhcHBsaWNhdGlvbiB3aXRoIGJ1bmRsZSBpZGVudGlmaWVyICcke2J1bmRsZUlkfScgYCArXG4gICAgYGZyb20gdGhlICR7dGhpcy5pc1JlYWxEZXZpY2UoKSA/ICdyZWFsIGRldmljZScgOiAnU2ltdWxhdG9yJ30gd2l0aCBVRElEICcke3RoaXMub3B0cy5kZXZpY2UudWRpZH0nYCk7XG4gIHRyeSB7XG4gICAgYXdhaXQgdGhpcy5vcHRzLmRldmljZS5yZW1vdmVBcHAoYnVuZGxlSWQpO1xuICAgIGxvZy5pbmZvKGBSZW1vdmFsIG9mICcke2J1bmRsZUlkfScgc3VjY2VlZGVkYCk7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZy53YXJuKGBDYW5ub3QgcmVtb3ZlICcke2J1bmRsZUlkfScuIE9yaWdpbmFsIGVycm9yOiAke2Vyci5tZXNzYWdlfWApO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxufTtcblxuY29tbWFuZHMubW9iaWxlTGF1bmNoQXBwID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlTGF1bmNoQXBwIChvcHRzID0ge30pIHtcbiAgY29uc3QgbGF1bmNoT3B0aW9ucyA9IHJlcXVpcmVPcHRpb25zKG9wdHMsIFsnYnVuZGxlSWQnXSk7XG4gIGlmIChvcHRzLmFyZ3VtZW50cykge1xuICAgIGxhdW5jaE9wdGlvbnMuYXJndW1lbnRzID0gXy5pc0FycmF5KG9wdHMuYXJndW1lbnRzKSA/IG9wdHMuYXJndW1lbnRzIDogW29wdHMuYXJndW1lbnRzXTtcbiAgfVxuICBpZiAob3B0cy5lbnZpcm9ubWVudCkge1xuICAgIGxhdW5jaE9wdGlvbnMuZW52aXJvbm1lbnQgPSBvcHRzLmVudmlyb25tZW50O1xuICB9XG4gIHJldHVybiBhd2FpdCB0aGlzLnByb3h5Q29tbWFuZCgnL3dkYS9hcHBzL2xhdW5jaCcsICdQT1NUJywgbGF1bmNoT3B0aW9ucyk7XG59O1xuXG5jb21tYW5kcy5tb2JpbGVUZXJtaW5hdGVBcHAgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVUZXJtaW5hdGVBcHAgKG9wdHMgPSB7fSkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5wcm94eUNvbW1hbmQoJy93ZGEvYXBwcy90ZXJtaW5hdGUnLCAnUE9TVCcsIHJlcXVpcmVPcHRpb25zKG9wdHMsIFsnYnVuZGxlSWQnXSkpO1xufTtcblxuY29tbWFuZHMubW9iaWxlQWN0aXZhdGVBcHAgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVBY3RpdmF0ZUFwcCAob3B0cyA9IHt9KSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnByb3h5Q29tbWFuZCgnL3dkYS9hcHBzL2FjdGl2YXRlJywgJ1BPU1QnLCByZXF1aXJlT3B0aW9ucyhvcHRzLCBbJ2J1bmRsZUlkJ10pKTtcbn07XG5cbi8qKlxuICogUmV0dXJucyB0aGUgY3VycmVudCBhcHBsaWNhdGlvbiBzdGF0ZVxuICpcbiAqIEBwYXJhbSB7T2JqZWN0fSBvcHRzIC0gT3B0aW9ucyBzZXQsIHdoaWNoIG11c3QgY29udGFpbiBgYnVuZGxlSWRgIHByb3BlcnR5XG4gKiBAcmV0dXJucyB7bnVtYmVyfSBUaGUgYWN0dWFsIGFwcGxpY2F0aW9uIHN0YXRlIGNvZGUuIFNlZVxuICogaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24veGN0ZXN0L3hjdWlhcHBsaWNhdGlvbnN0YXRlP2xhbmd1YWdlPW9iamNcbiAqIHRvIGdldCB0aGUgbGlzdCBvZiBwb3NzaWJsZSB2YWx1ZXMuXG4gKi9cbmNvbW1hbmRzLm1vYmlsZVF1ZXJ5QXBwU3RhdGUgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVRdWVyeUFwcFN0YXRlIChvcHRzID0ge30pIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlDb21tYW5kKCcvd2RhL2FwcHMvc3RhdGUnLCAnUE9TVCcsIHJlcXVpcmVPcHRpb25zKG9wdHMsIFsnYnVuZGxlSWQnXSkpO1xufTtcblxuY29tbWFuZHMuaW5zdGFsbEFwcCA9IGFzeW5jIGZ1bmN0aW9uIGluc3RhbGxBcHAgKGFwcFBhdGgpIHtcbiAgYXdhaXQgdGhpcy5tb2JpbGVJbnN0YWxsQXBwKHthcHA6IGFwcFBhdGh9KTtcbn07XG5cbmNvbW1hbmRzLmFjdGl2YXRlQXBwID0gYXN5bmMgZnVuY3Rpb24gYWN0aXZhdGVBcHAgKGJ1bmRsZUlkLCBvcHRzID0ge30pIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMubW9iaWxlTGF1bmNoQXBwKE9iamVjdC5hc3NpZ24oe30sIG9wdHMsIHtidW5kbGVJZH0pKTtcbn07XG5cbmNvbW1hbmRzLmlzQXBwSW5zdGFsbGVkID0gYXN5bmMgZnVuY3Rpb24gaXNBcHBJbnN0YWxsZWQgKGJ1bmRsZUlkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLm1vYmlsZUlzQXBwSW5zdGFsbGVkKHtidW5kbGVJZH0pO1xufTtcblxuY29tbWFuZHMudGVybWluYXRlQXBwID0gYXN5bmMgZnVuY3Rpb24gdGVybWluYXRlQXBwIChidW5kbGVJZCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5tb2JpbGVUZXJtaW5hdGVBcHAoe2J1bmRsZUlkfSk7XG59O1xuXG5jb21tYW5kcy5xdWVyeUFwcFN0YXRlID0gYXN5bmMgZnVuY3Rpb24gcXVlcnlBcHBTdGF0ZSAoYnVuZGxlSWQpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMubW9iaWxlUXVlcnlBcHBTdGF0ZSh7YnVuZGxlSWR9KTtcbn07XG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gTGlzdEFwcHNPcHRpb25zXG4gKiBAcHJvcGVydHkgeydTeXN0ZW0nfCdVc2VyJ30gYXBwbGljYXRpb25UeXBlIFtVc2VyXSBUaGUgdHlwZSBvZiBhcHBsaWNhdGlvbnMgdG8gbGlzdFxuICovXG5cbi8qKlxuICogTGlzdCBhcHBsaWNhdGlvbnMgaW5zdGFsbGVkIG9uIHRoZSByZWFsIGRldmljZSB1bmRlciB0ZXN0XG4gKlxuICogQHBhcmFtIHtMaXN0QXBwc09wdGlvbnN9IG9wdHNcbiAqIEByZXR1cm5zIHtBcnJheTxPYmplY3Q+fSBBIGxpc3Qgb2YgYXBwcywgd2hlcmUgZWFjaCBpdGVtIGlzIGEgbWFwIHdoZXJlIGtleXMgYXJlXG4gKiBidW5kbGUgaWRlbnRpZmllcnMgYW5kIHZhbHVlcyBhcmUgbWFwcyBvZiBwbGF0Zm9ybS1zcGVjaWZpYyBhcHAgcHJvcGVydGllcy5cbiAqL1xuY29tbWFuZHMubW9iaWxlTGlzdEFwcHMgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVMaXN0QXBwcyAob3B0cyA9IHt9KSB7XG4gIGlmICghdGhpcy5pc1JlYWxEZXZpY2UoKSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuTm90SW1wbGVtZW50ZWRFcnJvcihgVGhpcyBleHRlbnNpb24gaXMgb25seSBzdXBwb3J0ZWQgb24gcmVhbCBkZXZpY2VzYCk7XG4gIH1cblxuICBjb25zdCB7XG4gICAgYXBwbGljYXRpb25UeXBlID0gJ1VzZXInLFxuICB9ID0gb3B0cztcbiAgY29uc3Qgc2VydmljZSA9IGF3YWl0IHNlcnZpY2VzLnN0YXJ0SW5zdGFsbGF0aW9uUHJveHlTZXJ2aWNlKHRoaXMub3B0cy5kZXZpY2UudWRpZCk7XG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IHNlcnZpY2UubGlzdEFwcGxpY2F0aW9ucyh7YXBwbGljYXRpb25UeXBlfSk7XG4gIH0gZmluYWxseSB7XG4gICAgc2VydmljZS5jbG9zZSgpO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjb21tYW5kcztcbiJdLCJmaWxlIjoibGliL2NvbW1hbmRzL2FwcC1tYW5hZ2VtZW50LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = exports.helpers = exports.commands = void 0;
6
+ exports.helpers = exports.default = exports.commands = void 0;
7
7
 
8
8
  require("source-map-support/register");
9
9
 
@@ -5,8 +5,8 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.parseCommonName = parseCommonName;
9
8
  exports.default = exports.commands = void 0;
9
+ exports.parseCommonName = parseCommonName;
10
10
 
11
11
  require("source-map-support/register");
12
12
 
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.default = exports.helpers = exports.commands = void 0;
8
+ exports.helpers = exports.default = exports.commands = void 0;
9
9
 
10
10
  require("source-map-support/register");
11
11
 
@@ -5,8 +5,8 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.parseContainerPath = parseContainerPath;
9
8
  exports.default = exports.commands = void 0;
9
+ exports.parseContainerPath = parseContainerPath;
10
10
 
11
11
  require("source-map-support/register");
12
12
 
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.default = exports.helpers = exports.commands = void 0;
8
+ exports.helpers = exports.default = exports.commands = void 0;
9
9
 
10
10
  require("source-map-support/register");
11
11
 
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.default = exports.extensions = exports.helpers = exports.commands = void 0;
8
+ exports.helpers = exports.extensions = exports.default = exports.commands = void 0;
9
9
 
10
10
  require("source-map-support/register");
11
11
 
@@ -5,8 +5,9 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
+ exports.extensions = exports.default = exports.commands = void 0;
8
9
  exports.gesturesChainToString = gesturesChainToString;
9
- exports.default = exports.commands = exports.helpers = exports.extensions = void 0;
10
+ exports.helpers = void 0;
10
11
 
11
12
  require("source-map-support/register");
12
13
 
@@ -449,4 +450,4 @@ var _default = extensions;
449
450
  exports.default = _default;require('source-map-support').install();
450
451
 
451
452
 
452
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9nZXN0dXJlLmpzIl0sIm5hbWVzIjpbIlNVUFBPUlRFRF9HRVNUVVJFX0RJUkVDVElPTlMiLCJoZWxwZXJzIiwiZXh0ZW5zaW9ucyIsImNvbW1hbmRzIiwidG9FbGVtZW50SWQiLCJvcHRzIiwiZWxlbWVudCIsImxvZyIsImluZm8iLCJlbCIsImVsZW1lbnRJZCIsInV0aWwiLCJ1bndyYXBFbGVtZW50IiwidG9FbGVtZW50T3JBcHBsaWNhdGlvbklkIiwiZHJpdmVyIiwiZmluZE5hdGl2ZUVsZW1lbnRPckVsZW1lbnRzIiwibW92ZVRvIiwieG9mZnNldCIsInlvZmZzZXQiLCJpc1dlYkNvbnRleHQiLCJ4IiwieSIsImdldExvY2F0aW9uIiwiY29vcmRzIiwiY3VyV2ViQ29vcmRzIiwiYXRvbXNFbGVtZW50IiwiZ2V0QXRvbXNFbGVtZW50IiwicmVsQ29vcmRzIiwiZXhlY3V0ZUF0b20iLCJfIiwiaXNOaWwiLCJjdXJDb29yZHMiLCJlcnJvcnMiLCJVbmtub3duRXhjZXB0aW9uIiwiZWxQb3MiLCJyZXF1aXJlRmxvYXRQYXJhbWV0ZXIiLCJwYXJhbU5hbWUiLCJwYXJhbVZhbHVlIiwibWV0aG9kTmFtZSIsImlzVW5kZWZpbmVkIiwiSW52YWxpZEFyZ3VtZW50RXJyb3IiLCJyZXN1bHQiLCJwYXJzZUZsb2F0IiwiaXNOYU4iLCJyZXF1aXJlSW50UGFyYW1ldGVyIiwicGFyc2VJbnQiLCJtb2JpbGVTaGFrZSIsImlzU2ltdWxhdG9yIiwiVW5rbm93bkVycm9yIiwiZGV2aWNlIiwic2hha2UiLCJjbGljayIsIm5hdGl2ZUNsaWNrIiwic2V0dGluZ3MiLCJnZXRTZXR0aW5ncyIsIm5hdGl2ZVdlYlRhcCIsIm5hdGl2ZVdlYlRhcFN0cmljdCIsImRlYnVnIiwiZ2VzdHVyZXNDaGFpblRvU3RyaW5nIiwiZ2VzdHVyZXMiLCJrZXlzVG9JbmNsdWRlIiwibWFwIiwiaXRlbSIsIm90aGVyS2V5cyIsImRpZmZlcmVuY2UiLCJrZXlzIiwiaXNBcnJheSIsImludGVyc2VjdGlvbiIsImxlbmd0aCIsImFjdGlvbiIsImlzUGxhaW5PYmplY3QiLCJKU09OIiwic3RyaW5naWZ5Iiwiam9pbiIsInBlcmZvcm1BY3Rpb25zIiwiYWN0aW9ucyIsInByZXByb2Nlc3NlZEFjdGlvbnMiLCJPYmplY3QiLCJhc3NpZ24iLCJ0eXBlIiwicGFyYW1ldGVycyIsInBvaW50ZXJUeXBlIiwibW9kaWZpZWRBY3Rpb24iLCJjbG9uZSIsImZpbHRlciIsImlubmVyQWN0aW9uIiwiZHVyYXRpb24iLCJwcm94eUNvbW1hbmQiLCJyZWxlYXNlQWN0aW9ucyIsIndhcm4iLCJwZXJmb3JtVG91Y2giLCJlIiwiZXJyb3JBbmRUaHJvdyIsIm1lc3NhZ2UiLCJwZXJmb3JtTXVsdGlBY3Rpb24iLCJpIiwiZW5kcG9pbnQiLCJtb2JpbGVTY3JvbGwiLCJuYW1lIiwiZGlyZWN0aW9uIiwicHJlZGljYXRlU3RyaW5nIiwidG9WaXNpYmxlIiwiZGlzdGFuY2UiLCJwYXJhbXMiLCJpbmNsdWRlcyIsInRvTG93ZXIiLCJtb2JpbGVTd2lwZSIsInZlbG9jaXR5IiwibW9iaWxlUGluY2giLCJzY2FsZSIsIm1vYmlsZURvdWJsZVRhcCIsIm1vYmlsZVR3b0ZpbmdlclRhcCIsIm1vYmlsZVRvdWNoQW5kSG9sZCIsIm1vYmlsZVRhcCIsIm1vYmlsZURyYWdGcm9tVG9Gb3JEdXJhdGlvbiIsImZyb21YIiwiZnJvbVkiLCJ0b1giLCJ0b1kiLCJtb2JpbGVUYXBXaXRoTnVtYmVyT2ZUYXBzIiwibnVtYmVyT2ZUYXBzIiwibnVtYmVyT2ZUb3VjaGVzIiwibW9iaWxlU2VsZWN0UGlja2VyV2hlZWxWYWx1ZSIsImlzU3RyaW5nIiwib3JkZXIiLCJ0b0xvd2VyQ2FzZSIsIm9mZnNldCIsIm1vYmlsZVJvdGF0ZUVsZW1lbnQiLCJyb3RhdGlvbiIsImdldENvb3JkaW5hdGVzIiwiZ2VzdHVyZSIsImNvb3JkaW5hdGVzIiwiYXJlT2Zmc2V0cyIsIm9wdGlvblgiLCJvcHRpb25zIiwib3B0aW9uWSIsInJlY3QiLCJnZXRFbGVtZW50UmVjdCIsInBvcyIsInNpemUiLCJ3Iiwid2lkdGgiLCJoIiwiaGVpZ2h0Iiwib2Zmc2V0WCIsIm9mZnNldFkiLCJhcHBseU1vdmVUb09mZnNldCIsImZpcnN0Q29vcmRpbmF0ZXMiLCJzZWNvbmRDb29yZGluYXRlcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUEsTUFBTUEsNEJBQTRCLEdBQUcsQ0FBQyxJQUFELEVBQU8sTUFBUCxFQUFlLE1BQWYsRUFBdUIsT0FBdkIsQ0FBckM7QUFFQSxNQUFNQyxPQUFPLEdBQUcsRUFBaEI7QUFBQSxNQUFvQkMsVUFBVSxHQUFHLEVBQWpDO0FBQUEsTUFBcUNDLFFBQVEsR0FBRyxFQUFoRDs7Ozs7QUFFQSxTQUFTQyxXQUFULENBQXNCQyxJQUFJLEdBQUcsRUFBN0IsRUFBaUM7QUFDL0IsTUFBSUEsSUFBSSxDQUFDQyxPQUFULEVBQWtCO0FBQ2hCQyxvQkFBSUMsSUFBSixDQUFVLCtFQUFWO0FBQ0Q7O0FBQ0QsUUFBTUMsRUFBRSxHQUFHSixJQUFJLENBQUNLLFNBQUwsSUFBa0JMLElBQUksQ0FBQ0MsT0FBbEM7QUFDQSxTQUFPRyxFQUFFLEdBQUdFLG9CQUFLQyxhQUFMLENBQW1CSCxFQUFuQixDQUFILEdBQTRCLElBQXJDO0FBQ0Q7O0FBRUQsZUFBZUksd0JBQWYsQ0FBeUNDLE1BQXpDLEVBQWlEVCxJQUFJLEdBQUcsRUFBeEQsRUFBNEQ7QUFDMUQsU0FBT0QsV0FBVyxDQUFDQyxJQUFELENBQVgsSUFDRk0sb0JBQUtDLGFBQUwsQ0FBbUIsTUFBTUUsTUFBTSxDQUFDQywyQkFBUCxDQUFvQyxZQUFwQyxFQUFrRCw0QkFBbEQsRUFBK0UsS0FBL0UsQ0FBekIsQ0FETDtBQUVEOztBQUVEWixRQUFRLENBQUNhLE1BQVQsR0FBa0IsZUFBZUEsTUFBZixDQUF1QlAsRUFBdkIsRUFBMkJRLE9BQU8sR0FBRyxDQUFyQyxFQUF3Q0MsT0FBTyxHQUFHLENBQWxELEVBQXFEO0FBQ3JFVCxFQUFBQSxFQUFF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Q0MsTUFBUCxDQUFjNUUsVUFBZCxFQUEwQkQsT0FBMUIsRUFBbUNFLFFBQW5DO2VBRWVELFUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBlcnJvcnMgfSBmcm9tICdhcHBpdW0tYmFzZS1kcml2ZXInO1xuaW1wb3J0IHsgdXRpbCB9IGZyb20gJ2FwcGl1bS1zdXBwb3J0JztcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgbG9nIGZyb20gJy4uL2xvZ2dlcic7XG5cbmNvbnN0IFNVUFBPUlRFRF9HRVNUVVJFX0RJUkVDVElPTlMgPSBbJ3VwJywgJ2Rvd24nLCAnbGVmdCcsICdyaWdodCddO1xuXG5jb25zdCBoZWxwZXJzID0ge30sIGV4dGVuc2lvbnMgPSB7fSwgY29tbWFuZHMgPSB7fTtcblxuZnVuY3Rpb24gdG9FbGVtZW50SWQgKG9wdHMgPSB7fSkge1xuICBpZiAob3B0cy5lbGVtZW50KSB7XG4gICAgbG9nLmluZm8oYFRoZSAnZWxlbWVudCcgYXJndW1lbnQgbmFtZSBpcyBkZXByZWNhdGVkLiBDb25zaWRlciB1c2luZyAnZWxlbWVudElkJyBpbnN0ZWFkYCk7XG4gIH1cbiAgY29uc3QgZWwgPSBvcHRzLmVsZW1lbnRJZCB8fCBvcHRzLmVsZW1lbnQ7XG4gIHJldHVybiBlbCA/IHV0aWwudW53cmFwRWxlbWVudChlbCkgOiBudWxsO1xufVxuXG5hc3luYyBmdW5jdGlvbiB0b0VsZW1lbnRPckFwcGxpY2F0aW9uSWQgKGRyaXZlciwgb3B0cyA9IHt9KSB7XG4gIHJldHVybiB0b0VsZW1lbnRJZChvcHRzKVxuICAgIHx8IHV0aWwudW53cmFwRWxlbWVudChhd2FpdCBkcml2ZXIuZmluZE5hdGl2ZUVsZW1lbnRPckVsZW1lbnRzKGBjbGFzcyBuYW1lYCwgYFhDVUlFbGVtZW50VHlwZUFwcGxpY2F0aW9uYCwgZmFsc2UpKTtcbn1cblxuY29tbWFuZHMubW92ZVRvID0gYXN5bmMgZnVuY3Rpb24gbW92ZVRvIChlbCwgeG9mZnNldCA9IDAsIHlvZmZzZXQgPSAwKSB7XG4gIGVsID0gdXRpbC51bndyYXBFbGVtZW50KGVsKTtcblxuICBpZiAodGhpcy5pc1dlYkNvbnRleHQoKSkge1xuICAgIGxldCB7eCwgeX0gPSBhd2FpdCB0aGlzLmdldExvY2F0aW9uKGVsKTtcbiAgICBsZXQgY29vcmRzID0ge1xuICAgICAgeDogeCArIHhvZmZzZXQsXG4gICAgICB5OiB5ICsgeW9mZnNldFxuICAgIH07XG4gICAgdGhpcy5jdXJXZWJDb29yZHMgPSBjb29yZHM7XG4gICAgbGV0IGF0b21zRWxlbWVudCA9IHRoaXMuZ2V0QXRvbXNFbGVtZW50KGVsKTtcbiAgICBsZXQgcmVsQ29vcmRzID0ge3g6IHhvZmZzZXQsIHk6IHlvZmZzZXR9O1xuICAgIGF3YWl0IHRoaXMuZXhlY3V0ZUF0b20oJ21vdmVfbW91c2UnLCBbYXRvbXNFbGVtZW50LCByZWxDb29yZHNdKTtcbiAgfSBlbHNlIHtcbiAgICBpZiAoXy5pc05pbChlbCkpIHtcbiAgICAgIGlmICghdGhpcy5jdXJDb29yZHMpIHtcbiAgICAgICAgdGhyb3cgbmV3IGVycm9ycy5Vbmtub3duRXhjZXB0aW9uKFxuICAgICAgICAgICdDdXJyZW50IGN1cnNvciBwb3NpdGlvbiB1bmtub3duLCBwbGVhc2UgdXNlIG1vdmVUbyB3aXRoIGFuIGVsZW1lbnQgdGhlIGZpcnN0IHRpbWUuJyk7XG4gICAgICB9XG4gICAgICB0aGlzLmN1ckNvb3JkcyA9IHtcbiAgICAgICAgeDogdGhpcy5jdXJDb29yZHMueCArIHhvZmZzZXQsXG4gICAgICAgIHk6IHRoaXMuY3VyQ29vcmRzLnkgKyB5b2Zmc2V0XG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBsZXQgZWxQb3MgPSBhd2FpdCB0aGlzLmdldExvY2F0aW9uKGVsKTtcbiAgICAgIHRoaXMuY3VyQ29vcmRzID0ge1xuICAgICAgICB4OiBlbFBvcy54ICsgeG9mZnNldCxcbiAgICAgICAgeTogZWxQb3MueSArIHlvZmZzZXRcbiAgICAgIH07XG4gICAgfVxuICB9XG59O1xuXG5mdW5jdGlvbiByZXF1aXJlRmxvYXRQYXJhbWV0ZXIgKHBhcmFtTmFtZSwgcGFyYW1WYWx1ZSwgbWV0aG9kTmFtZSkge1xuICBpZiAoXy5pc1VuZGVmaW5lZChwYXJhbVZhbHVlKSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZEFyZ3VtZW50RXJyb3IoYFwiJHtwYXJhbU5hbWV9XCIgcGFyYW1ldGVyIGlzIG1hbmRhdG9yeSBmb3IgXCIke21ldGhvZE5hbWV9XCIgY2FsbGApO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IHBhcnNlRmxvYXQocGFyYW1WYWx1ZSk7XG4gIGlmIChpc05hTihyZXN1bHQpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5JbnZhbGlkQXJndW1lbnRFcnJvcihgXCIke3BhcmFtTmFtZX1cIiBwYXJhbWV0ZXIgc2hvdWxkIGJlIGEgdmFsaWQgbnVtYmVyLiBcIiR7cGFyYW1WYWx1ZX1cIiBpcyBnaXZlbiBpbnN0ZWFkYCk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuZnVuY3Rpb24gcmVxdWlyZUludFBhcmFtZXRlciAocGFyYW1OYW1lLCBwYXJhbVZhbHVlLCBtZXRob2ROYW1lKSB7XG4gIGlmIChfLmlzVW5kZWZpbmVkKHBhcmFtVmFsdWUpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5JbnZhbGlkQXJndW1lbnRFcnJvcihgXCIke3BhcmFtTmFtZX1cIiBwYXJhbWV0ZXIgaXMgbWFuZGF0b3J5IGZvciBcIiR7bWV0aG9kTmFtZX1cIiBjYWxsYCk7XG4gIH1cbiAgY29uc3QgcmVzdWx0ID0gcGFyc2VJbnQocGFyYW1WYWx1ZSwgMTApO1xuICBpZiAoaXNOYU4ocmVzdWx0KSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZEFyZ3VtZW50RXJyb3IoYFwiJHtwYXJhbU5hbWV9XCIgcGFyYW1ldGVyIHNob3VsZCBiZSBhIHZhbGlkIGludGVnZXIuIFwiJHtwYXJhbVZhbHVlfVwiIGlzIGdpdmVuIGluc3RlYWRgKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG5jb21tYW5kcy5tb2JpbGVTaGFrZSA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVNoYWtlICgpIHtcbiAgaWYgKCF0aGlzLmlzU2ltdWxhdG9yKCkpIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JzLlVua25vd25FcnJvcignU2hha2UgaXMgbm90IHN1cHBvcnRlZCBvbiByZWFsIGRldmljZXMnKTtcbiAgfVxuICBhd2FpdCB0aGlzLm9wdHMuZGV2aWNlLnNoYWtlKCk7XG59O1xuXG5jb21tYW5kcy5jbGljayA9IGFzeW5jIGZ1bmN0aW9uIGNsaWNrIChlbCkge1xuICBpZiAoIXRoaXMuaXNXZWJDb250ZXh0KCkpIHtcbiAgICAvLyB0aGVyZSBhcmUgbXVsdGlwbGUgY29tbWFuZHMgdGhhdCBtYXAgaGVyZSwgc28gbWFudWFsbHkgcHJveHlcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5uYXRpdmVDbGljayhlbCk7XG4gIH1cbiAgZWwgPSB1dGlsLnVud3JhcEVsZW1lbnQoZWwpO1xuICBpZiAoKGF3YWl0IHRoaXMuc2V0dGluZ3MuZ2V0U2V0dGluZ3MoKSkubmF0aXZlV2ViVGFwIHx8IChhd2FpdCB0aGlzLnNldHRpbmdzLmdldFNldHRpbmdzKCkpLm5hdGl2ZVdlYlRhcFN0cmljdCkge1xuICAgIC8vIGF0b21zLWJhc2VkIGNsaWNrcyBkb24ndCBhbHdheXMgd29yayBpbiBzYWZhcmkgN1xuICAgIGxvZy5kZWJ1ZygnVXNpbmcgbmF0aXZlIHdlYiB0YXAnKTtcbiAgICBhd2FpdCB0aGlzLm5hdGl2ZVdlYlRhcChlbCk7XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgYXRvbXNFbGVtZW50ID0gdGhpcy5nZXRBdG9tc0VsZW1lbnQoZWwpO1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmV4ZWN1dGVBdG9tKCdjbGljaycsIFthdG9tc0VsZW1lbnRdKTtcbiAgfVxufTtcblxuZnVuY3Rpb24gZ2VzdHVyZXNDaGFpblRvU3RyaW5nIChnZXN0dXJlcywga2V5c1RvSW5jbHVkZSA9IFsnb3B0aW9ucyddKSB7XG4gIHJldHVybiBnZXN0dXJlcy5tYXAoKGl0ZW0pID0+IHtcbiAgICBsZXQgb3RoZXJLZXlzID0gXy5kaWZmZXJlbmNlKF8ua2V5cyhpdGVtKSwgWydhY3Rpb24nXSk7XG4gICAgb3RoZXJLZXlzID0gXy5pc0FycmF5KGtleXNUb0luY2x1ZGUpID8gXy5pbnRlcnNlY3Rpb24ob3RoZXJLZXlzLCBrZXlzVG9JbmNsdWRlKSA6IG90aGVyS2V5cztcbiAgICBpZiAob3RoZXJLZXlzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIGAke2l0ZW0uYWN0aW9ufWAgK1xuICAgICAgICBgKCR7Xy5tYXAob3RoZXJLZXlzLCAoeCkgPT4geCArICc9JyArIChfLmlzUGxhaW5PYmplY3QoaXRlbVt4XSkgPyBKU09OLnN0cmluZ2lmeShpdGVtW3hdKSA6IGl0ZW1beF0pKS5qb2luKCcsICcpfSlgO1xuICAgIH1cbiAgICByZXR1cm4gaXRlbS5hY3Rpb247XG4gIH0pLmpvaW4oJy0nKTtcbn1cblxuY29tbWFuZHMucGVyZm9ybUFjdGlvbnMgPSBhc3luYyBmdW5jdGlvbiBwZXJmb3JtQWN0aW9ucyAoYWN0aW9ucykge1xuICBsb2cuZGVidWcoYFJlY2VpdmVkIHRoZSBmb2xsb3dpbmcgVzNDIGFjdGlvbnM6ICR7SlNPTi5zdHJpbmdpZnkoYWN0aW9ucywgbnVsbCwgJyAgJyl9YCk7XG4gIC8vIFRoaXMgaXMgbWFuZGF0b3J5LCBzaW5jZSBXREEgb25seSBzdXBwb3J0cyBUT1VDSCBwb2ludGVyIHR5cGVcbiAgLy8gYW5kIFNlbGVuaXVtIEFQSSB1c2VzIE1PVVNFIGFzIHRoZSBkZWZhdWx0IG9uZVxuICBjb25zdCBwcmVwcm9jZXNzZWRBY3Rpb25zID0gYWN0aW9uc1xuICAgIC5tYXAoKGFjdGlvbikgPT4gT2JqZWN0LmFzc2lnbih7fSwgYWN0aW9uLCBhY3Rpb24udHlwZSA9PT0gJ3BvaW50ZXInID8ge1xuICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICBwb2ludGVyVHlwZTogJ3RvdWNoJ1xuICAgICAgfVxuICAgIH0gOiB7fSkpXG4gICAgLm1hcCgoYWN0aW9uKSA9PiB7XG4gICAgICBjb25zdCBtb2RpZmllZEFjdGlvbiA9IF8uY2xvbmUoYWN0aW9uKSB8fCB7fTtcbiAgICAgIC8vIFNlbGVuaXVtIEFQSSB1bmV4cGVjdGVkbHkgaW5zZXJ0cyB6ZXJvIHBhdXNlcywgd2hpY2ggYXJlIG5vdCBzdXBwb3J0ZWQgYnkgV0RBXG4gICAgICBtb2RpZmllZEFjdGlvbi5hY3Rpb25zID0gKGFjdGlvbi5hY3Rpb25zIHx8IFtdKVxuICAgICAgICAuZmlsdGVyKChpbm5lckFjdGlvbikgPT4gIShpbm5lckFjdGlvbi50eXBlID09PSAncGF1c2UnICYmIGlubmVyQWN0aW9uLmR1cmF0aW9uID09PSAwKSk7XG4gICAgICByZXR1cm4gbW9kaWZpZWRBY3Rpb247XG4gICAgfSk7XG4gIGxvZy5kZWJ1ZyhgUHJlcHJvY2Vzc2VkIGFjdGlvbnM6ICR7SlNPTi5zdHJpbmdpZnkocHJlcHJvY2Vzc2VkQWN0aW9ucywgbnVsbCwgJyAgJyl9YCk7XG4gIHJldHVybiBhd2FpdCB0aGlzLnByb3h5Q29tbWFuZCgnL2FjdGlvbnMnLCAnUE9TVCcsIHthY3Rpb25zOiBwcmVwcm9jZXNzZWRBY3Rpb25zfSk7XG59O1xuXG5jb21tYW5kcy5yZWxlYXNlQWN0aW9ucyA9IGZ1bmN0aW9uIHJlbGVhc2VBY3Rpb25zICgpIHtcbiAgbG9nLndhcm4oJ09uIHRoaXMgcGxhdGZvcm0sIHJlbGVhc2VBY3Rpb25zIGlzIGEgbm8tb3AnKTtcbn07XG5cbmNvbW1hbmRzLnBlcmZvcm1Ub3VjaCA9IGFzeW5jIGZ1bmN0aW9uIHBlcmZvcm1Ub3VjaCAoZ2VzdHVyZXMpIHtcbiAgbG9nLmRlYnVnKGBSZWNlaXZlZCB0aGUgZm9sbG93aW5nIHRvdWNoIGFjdGlvbjogJHtnZXN0dXJlc0NoYWluVG9TdHJpbmcoZ2VzdHVyZXMpfWApO1xuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnByb3h5Q29tbWFuZCgnL3dkYS90b3VjaC9wZXJmb3JtJywgJ1BPU1QnLCB7YWN0aW9uczogZ2VzdHVyZXN9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGlmICghdGhpcy5pc1dlYkNvbnRleHQoKSkge1xuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gICAgbG9nLmVycm9yQW5kVGhyb3coJ1RoZSBUb3VjaCBBUEkgaXMgYWltZWQgZm9yIHVzYWdlIGluIE5BVElWRSBjb250ZXh0LiAnICtcbiAgICAgICdDb25zaWRlciB1c2luZyBcImV4ZWN1dGVcIiBBUEkgd2l0aCBjdXN0b20gZXZlbnRzIHRyaWdnZXIgc2NyaXB0ICcgK1xuICAgICAgYHRvIGVtdWxhdGUgdG91Y2ggZXZlbnRzIGJlaW5nIGluIFdFQlZJRVcgY29udGV4dC4gT3JpZ2luYWwgZXJyb3I6ICR7ZS5tZXNzYWdlfWApO1xuICB9XG59O1xuXG5jb21tYW5kcy5wZXJmb3JtTXVsdGlBY3Rpb24gPSBhc3luYyBmdW5jdGlvbiBwZXJmb3JtTXVsdGlBY3Rpb24gKGFjdGlvbnMpIHtcbiAgbG9nLmRlYnVnKGBSZWNlaXZlZCB0aGUgZm9sbG93aW5nIG11bHRpIHRvdWNoIGFjdGlvbjpgKTtcbiAgZm9yIChsZXQgaSBpbiBhY3Rpb25zKSB7XG4gICAgbG9nLmRlYnVnKGAgICAgJHtwYXJzZUludChpLCAxMCkgKyAxfTogJHtfLm1hcChhY3Rpb25zW2ldLCAnYWN0aW9uJykuam9pbignLScpfWApO1xuICB9XG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlDb21tYW5kKCcvd2RhL3RvdWNoL211bHRpL3BlcmZvcm0nLCAnUE9TVCcsIHthY3Rpb25zfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAoIXRoaXMuaXNXZWJDb250ZXh0KCkpIHtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICAgIGxvZy5lcnJvckFuZFRocm93KCdUaGUgTXVsdGlUb3VjaCBBUEkgaXMgYWltZWQgZm9yIHVzYWdlIGluIE5BVElWRSBjb250ZXh0LiAnICtcbiAgICAgICdDb25zaWRlciB1c2luZyBcImV4ZWN1dGVcIiBBUEkgd2l0aCBjdXN0b20gZXZlbnRzIHRyaWdnZXIgc2NyaXB0ICcgK1xuICAgICAgYHRvIGVtdWxhdGUgbXVsdGl0b3VjaCBldmVudHMgYmVpbmcgaW4gV0VCVklFVyBjb250ZXh0LiBPcmlnaW5hbCBlcnJvcjogJHtlLm1lc3NhZ2V9YCk7XG4gIH1cbn07XG5cbmNvbW1hbmRzLm5hdGl2ZUNsaWNrID0gYXN5bmMgZnVuY3Rpb24gbmF0aXZlQ2xpY2sgKGVsKSB7XG4gIGVsID0gdXRpbC51bndyYXBFbGVtZW50KGVsKTtcbiAgbGV0IGVuZHBvaW50ID0gYC9lbGVtZW50LyR7ZWx9L2NsaWNrYDtcbiAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlDb21tYW5kKGVuZHBvaW50LCAnUE9TVCcsIHt9KTtcbn07XG5cbi8qXG4gKiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2ZhY2Vib29rL1dlYkRyaXZlckFnZW50L2Jsb2IvbWFzdGVyL1dlYkRyaXZlckFnZW50TGliL0NvbW1hbmRzL0ZCRWxlbWVudENvbW1hbmRzLm1cbiAqIHRvIGdldCB0aGUgaW5mbyBhYm91dCBhdmFpbGFibGUgV0RBIGdlc3R1cmVzIEFQSVxuICpcbiAqIFNlZSBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vcmVmZXJlbmNlL3hjdGVzdC94Y3VpZWxlbWVudCBhbmRcbiAqIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9yZWZlcmVuY2UveGN0ZXN0L3hjdWljb29yZGluYXRlIHRvIGdldCB0aGUgZGV0YWlsZWQgZGVzY3JpcHRpb24gb2ZcbiAqIGFsbCBYQ1Rlc3QgZ2VzdHVyZXNcbiovXG5cbmhlbHBlcnMubW9iaWxlU2Nyb2xsID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlU2Nyb2xsIChvcHRzID0ge30pIHtcbiAgLy8gV0RBIHN1cHBvcnRzIGZvdXIgc2Nyb2xsaW5nIHN0cmF0ZWdpZXM6IHByZWRpY2F0aW9uIGJhc2VkIG9uIG5hbWUsIGRpcmVjdGlvbixcbiAgLy8gcHJlZGljYXRlU3RyaW5nLCBhbmQgdG9WaXNpYmxlLCBpbiB0aGF0IG9yZGVyXG4gIGNvbnN0IHtcbiAgICBuYW1lLFxuICAgIGRpcmVjdGlvbixcbiAgICBwcmVkaWNhdGVTdHJpbmcsXG4gICAgdG9WaXNpYmxlLFxuICAgIGRpc3RhbmNlLFxuICB9ID0gb3B0cztcbiAgY29uc3QgcGFyYW1zID0ge307XG4gIGlmIChuYW1lKSB7XG4gICAgcGFyYW1zLm5hbWUgPSBuYW1lO1xuICB9IGVsc2UgaWYgKGRpcmVjdGlvbikge1xuICAgIGlmICghU1VQUE9SVEVEX0dFU1RVUkVfRElSRUNUSU9OUy5pbmNsdWRlcyhfLnRvTG93ZXIoZGlyZWN0aW9uKSkpIHtcbiAgICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZEFyZ3VtZW50RXJyb3IoYCdkaXJlY3Rpb24nIG11c3QgYmUgb25lIG9mOiAke1NVUFBPUlRFRF9HRVNUVVJFX0RJUkVDVElPTlN9YCk7XG4gICAgfVxuICAgIHBhcmFtcy5kaXJlY3Rpb24gPSBkaXJlY3Rpb247XG4gIH0gZWxzZSBpZiAocHJlZGljYXRlU3RyaW5nKSB7XG4gICAgcGFyYW1zLnByZWRpY2F0ZVN0cmluZyA9IHByZWRpY2F0ZVN0cmluZztcbiAgfSBlbHNlIGlmICh0b1Zpc2libGUpIHtcbiAgICBwYXJhbXMudG9WaXNpYmxlID0gdG9WaXNpYmxlO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZEFyZ3VtZW50RXJyb3IoXG4gICAgICAnTW9iaWxlIHNjcm9sbCBzdXBwb3J0cyB0aGUgZm9sbG93aW5nIHN0cmF0ZWdpZXM6IG5hbWUsIGRpcmVjdGlvbiwgcHJlZGljYXRlU3RyaW5nLCBhbmQgdG9WaXNpYmxlLiAnICtcbiAgICAgICdTcGVjaWZ5IG9uZSBvZiB0aGVzZScpO1xuICB9XG4gIC8vIHdlIGNhbiBhbHNvIG9wdGlvbmFsbHkgcGFzcyBhIGRpc3RhbmNlIHdoaWNoIGFwcGVhcnMgdG8gYmUgYSByYXRpbyBvZlxuICAvLyBzY3JlZW4gaGVpZ2h0LCBzbyAxLjAgbWVhbnMgYSBmdWxsIHNjcmVlbidzIHdvcnRoIG9mIHNjcm9sbGluZ1xuICBpZiAoIV8uaXNOaWwoZGlzdGFuY2UpKSB7XG4gICAgcGFyYW1zLmRpc3RhbmNlID0gZGlzdGFuY2U7XG4gIH1cbiAgY29uc3QgZWxlbWVudElkID0gYXdhaXQgdG9FbGVtZW50T3JBcHBsaWNhdGlvbklkKHRoaXMsIG9wdHMpO1xuICByZXR1cm4gYXdhaXQgdGhpcy5wcm94eUNvbW1hbmQoYC93ZGEvZWxlbWVudC8ke2VsZW1lbnRJZH0vc2Nyb2xsYCwgJ1BPU1QnLCBwYXJhbXMpO1xufTtcblxuaGVscGVycy5tb2JpbGVTd2lwZSA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVN3aXBlIChvcHRzID0ge30pIHtcbiAgY29uc3Qge1xuICAgIGRpcmVjdGlvbixcbiAgICB2ZWxvY2l0eSxcbiAgfSA9IG9wdHM7XG4gIGlmICghU1VQUE9SVEVEX0dFU1RVUkVfRElSRUNUSU9OUy5pbmNsdWRlcyhfLnRvTG93ZXIoZGlyZWN0aW9uKSkpIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JzLkludmFsaWRBcmd1bWVudEVycm9yKGAnZGlyZWN0aW9uJyBtdXN0IGJlIG9uZSBvZjogJHtTVVBQT1JURURfR0VTVFVSRV9ESVJFQ1RJT05TfWApO1xuICB9XG4gIGNvbnN0IHBhcmFtcyA9IHtkaXJlY3Rpb259O1xuICBpZiAoIV8uaXNOaWwodmVsb2NpdHkpKSB7XG4gICAgcGFyYW1zLnZlbG9jaXR5ID0gdmVsb2NpdHk7XG4gIH1cbiAgY29uc3QgZWxlbWVudElkID0gYXdhaXQgdG9FbGVtZW50T3JBcHBsaWNhdGlvbklkKHRoaXMsIG9wdHMpO1xuICByZXR1cm4gYXdhaXQgdGhpcy5wcm94eUNvbW1hbmQoYC93ZGEvZWxlbWVudC8ke2VsZW1lbnRJZH0vc3dpcGVgLCAnUE9TVCcsIHBhcmFtcyk7XG59O1xuXG5oZWxwZXJzLm1vYmlsZVBpbmNoID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlUGluY2ggKG9wdHMgPSB7fSkge1xuICBjb25zdCBwYXJhbXMgPSB7XG4gICAgc2NhbGU6IHJlcXVpcmVGbG9hdFBhcmFtZXRlcignc2NhbGUnLCBvcHRzLnNjYWxlLCAncGluY2gnKSxcbiAgICB2ZWxvY2l0eTogcmVxdWlyZUZsb2F0UGFyYW1ldGVyKCd2ZWxvY2l0eScsIG9wdHMudmVsb2NpdHksICdwaW5jaCcpXG4gIH07XG4gIGNvbnN0IGVsZW1lbnRJZCA9IGF3YWl0IHRvRWxlbWVudE9yQXBwbGljYXRpb25JZCh0aGlzLCBvcHRzKTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlDb21tYW5kKGAvd2RhL2VsZW1lbnQvJHtlbGVtZW50SWR9L3BpbmNoYCwgJ1BPU1QnLCBwYXJhbXMpO1xufTtcblxuaGVscGVycy5tb2JpbGVEb3VibGVUYXAgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVEb3VibGVUYXAgKG9wdHMgPSB7fSkge1xuICBjb25zdCBlbGVtZW50SWQgPSB0b0VsZW1lbnRJZChvcHRzKTtcbiAgaWYgKGVsZW1lbnRJZCkge1xuICAgIC8vIERvdWJsZSB0YXAgZWxlbWVudFxuICAgIHJldHVybiBhd2FpdCB0aGlzLnByb3h5Q29tbWFuZChgL3dkYS9lbGVtZW50LyR7ZWxlbWVudElkfS9kb3VibGVUYXBgLCAnUE9TVCcpO1xuICB9XG4gIC8vIERvdWJsZSB0YXAgY29vcmRpbmF0ZXNcbiAgY29uc3QgcGFyYW1zID0ge1xuICAgIHg6IHJlcXVpcmVGbG9hdFBhcmFtZXRlcigneCcsIG9wdHMueCwgJ2RvdWJsZVRhcCcpLFxuICAgIHk6IHJlcXVpcmVGbG9hdFBhcmFtZXRlcigneScsIG9wdHMueSwgJ2RvdWJsZVRhcCcpXG4gIH07XG4gIHJldHVybiBhd2FpdCB0aGlzLnByb3h5Q29tbWFuZCgnL3dkYS9kb3VibGVUYXAnLCAnUE9TVCcsIHBhcmFtcyk7XG59O1xuXG5oZWxwZXJzLm1vYmlsZVR3b0ZpbmdlclRhcCA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVR3b0ZpbmdlclRhcCAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IGVsZW1lbnRJZCA9IGF3YWl0IHRvRWxlbWVudE9yQXBwbGljYXRpb25JZCh0aGlzLCBvcHRzKTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlDb21tYW5kKGAvd2RhL2VsZW1lbnQvJHtlbGVtZW50SWR9L3R3b0ZpbmdlclRhcGAsICdQT1NUJyk7XG59O1xuXG5oZWxwZXJzLm1vYmlsZVRvdWNoQW5kSG9sZCA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVRvdWNoQW5kSG9sZCAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHBhcmFtcyA9IHtcbiAgICBkdXJhdGlvbjogcmVxdWlyZUZsb2F0UGFyYW1ldGVyKCdkdXJhdGlvbicsIG9wdHMuZHVyYXRpb24sICd0b3VjaEFuZEhvbGQnKVxuICB9O1xuICBjb25zdCBlbGVtZW50SWQgPSB0b0VsZW1lbnRJZChvcHRzKTtcbiAgaWYgKGVsZW1lbnRJZCkge1xuICAgIC8vIExvbmcgdGFwIGVsZW1lbnRcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm94eUNvbW1hbmQoYC93ZGEvZWxlbWVudC8ke2VsZW1lbnRJZH0vdG91Y2hBbmRIb2xkYCwgJ1BPU1QnLCBwYXJhbXMpO1xuICB9XG4gIC8vIExvbmcgdGFwIGNvb3JkaW5hdGVzXG4gIHBhcmFtcy54ID0gcmVxdWlyZUZsb2F0UGFyYW1ldGVyKCd4Jywgb3B0cy54LCAndG91Y2hBbmRIb2xkJyk7XG4gIHBhcmFtcy55ID0gcmVxdWlyZUZsb2F0UGFyYW1ldGVyKCd5Jywgb3B0cy55LCAndG91Y2hBbmRIb2xkJyk7XG4gIHJldHVybiBhd2FpdCB0aGlzLnByb3h5Q29tbWFuZCgnL3dkYS90b3VjaEFuZEhvbGQnLCAnUE9TVCcsIHBhcmFtcyk7XG59O1xuXG5oZWxwZXJzLm1vYmlsZVRhcCA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVRhcCAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHBhcmFtcyA9IHtcbiAgICB4OiByZXF1aXJlRmxvYXRQYXJhbWV0ZXIoJ3gnLCBvcHRzLngsICd0YXAnKSxcbiAgICB5OiByZXF1aXJlRmxvYXRQYXJhbWV0ZXIoJ3knLCBvcHRzLnksICd0YXAnKVxuICB9O1xuICBjb25zdCBlbGVtZW50SWQgPSB0b0VsZW1lbnRJZChvcHRzKSB8fCAnMCc7XG4gIHJldHVybiBhd2FpdCB0aGlzLnByb3h5Q29tbWFuZChgL3dkYS90YXAvJHtlbGVtZW50SWR9YCwgJ1BPU1QnLCBwYXJhbXMpO1xufTtcblxuaGVscGVycy5tb2JpbGVEcmFnRnJvbVRvRm9yRHVyYXRpb24gPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVEcmFnRnJvbVRvRm9yRHVyYXRpb24gKG9wdHMgPSB7fSkge1xuICBjb25zdCBwYXJhbXMgPSB7XG4gICAgZHVyYXRpb246IHJlcXVpcmVGbG9hdFBhcmFtZXRlcignZHVyYXRpb24nLCBvcHRzLmR1cmF0aW9uLCAnZHJhZ0Zyb21Ub0ZvckR1cmF0aW9uJyksXG4gICAgZnJvbVg6IHJlcXVpcmVGbG9hdFBhcmFtZXRlcignZnJvbVgnLCBvcHRzLmZyb21YLCAnZHJhZ0Zyb21Ub0ZvckR1cmF0aW9uJyksXG4gICAgZnJvbVk6IHJlcXVpcmVGbG9hdFBhcmFtZXRlcignZnJvbVknLCBvcHRzLmZyb21ZLCAnZHJhZ0Zyb21Ub0ZvckR1cmF0aW9uJyksXG4gICAgdG9YOiByZXF1aXJlRmxvYXRQYXJhbWV0ZXIoJ3RvWCcsIG9wdHMudG9YLCAnZHJhZ0Zyb21Ub0ZvckR1cmF0aW9uJyksXG4gICAgdG9ZOiByZXF1aXJlRmxvYXRQYXJhbWV0ZXIoJ3RvWScsIG9wdHMudG9ZLCAnZHJhZ0Zyb21Ub0ZvckR1cmF0aW9uJylcbiAgfTtcbiAgY29uc3QgZWxlbWVudElkID0gdG9FbGVtZW50SWQob3B0cyk7XG4gIHJldHVybiBlbGVtZW50SWRcbiAgICAvLyBEcmFnIGVsZW1lbnRcbiAgICA/IGF3YWl0IHRoaXMucHJveHlDb21tYW5kKGAvd2RhL2VsZW1lbnQvJHtlbGVtZW50SWR9L2RyYWdmcm9tdG9mb3JkdXJhdGlvbmAsICdQT1NUJywgcGFyYW1zKVxuICAgIC8vIERyYWcgY29vcmRpbmF0ZXNcbiAgICA6IGF3YWl0IHRoaXMucHJveHlDb21tYW5kKCcvd2RhL2RyYWdmcm9tdG9mb3JkdXJhdGlvbicsICdQT1NUJywgcGFyYW1zKTtcbn07XG5cbmhlbHBlcnMubW9iaWxlVGFwV2l0aE51bWJlck9mVGFwcyA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVRhcFdpdGhOdW1iZXJPZlRhcHMgKG9wdHMgPSB7fSkge1xuICBjb25zdCBlbGVtZW50SWQgPSB0b0VsZW1lbnRJZChvcHRzKTtcbiAgaWYgKCFlbGVtZW50SWQpIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JzLkludmFsaWRBcmd1bWVudEVycm9yKCdFbGVtZW50IGlkIGlzIGV4cGVjdGVkIHRvIGJlIHNldCBmb3IgdGFwV2l0aE51bWJlck9mVGFwcyBtZXRob2QnKTtcbiAgfVxuICBjb25zdCBwYXJhbXMgPSB7XG4gICAgbnVtYmVyT2ZUYXBzOiByZXF1aXJlSW50UGFyYW1ldGVyKCdudW1iZXJPZlRhcHMnLCBvcHRzLm51bWJlck9mVGFwcywgJ3RhcFdpdGhOdW1iZXJPZlRhcHMnKSxcbiAgICBudW1iZXJPZlRvdWNoZXM6IHJlcXVpcmVJbnRQYXJhbWV0ZXIoJ251bWJlck9mVG91Y2hlcycsIG9wdHMubnVtYmVyT2ZUb3VjaGVzLCAndGFwV2l0aE51bWJlck9mVGFwcycpLFxuICB9O1xuICByZXR1cm4gYXdhaXQgdGhpcy5wcm94eUNvbW1hbmQoYC93ZGEvZWxlbWVudC8ke2VsZW1lbnRJZH0vdGFwV2l0aE51bWJlck9mVGFwc2AsICdQT1NUJywgcGFyYW1zKTtcbn07XG5cbmhlbHBlcnMubW9iaWxlU2VsZWN0UGlja2VyV2hlZWxWYWx1ZSA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVNlbGVjdFBpY2tlcldoZWVsVmFsdWUgKG9wdHMgPSB7fSkge1xuICBjb25zdCBlbGVtZW50SWQgPSB0b0VsZW1lbnRJZChvcHRzKTtcbiAgaWYgKCFlbGVtZW50SWQpIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JzLkludmFsaWRBcmd1bWVudEVycm9yKCdFbGVtZW50IGlkIGlzIGV4cGVjdGVkIHRvIGJlIHNldCBmb3Igc2VsZWN0UGlja2VyV2hlZWxWYWx1ZSBtZXRob2QnKTtcbiAgfVxuICBpZiAoIV8uaXNTdHJpbmcob3B0cy5vcmRlcikgfHwgIVsnbmV4dCcsICdwcmV2aW91cyddLmluY2x1ZGVzKG9wdHMub3JkZXIudG9Mb3dlckNhc2UoKSkpIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JzLkludmFsaWRBcmd1bWVudEVycm9yKGBUaGUgbWFuZGF0b3J5ICdvcmRlcicgcGFyYW1ldGVyIGlzIGV4cGVjdGVkIHRvIGJlIGVxdWFsIGVpdGhlciB0byAnbmV4dCcgb3IgJ3ByZXZpb3VzJy4gYCArXG4gICAgICBgJyR7b3B0cy5vcmRlcn0nIGlzIGdpdmVuIGluc3RlYWRgKTtcbiAgfVxuICBjb25zdCBwYXJhbXMgPSB7b3JkZXI6IG9wdHMub3JkZXJ9O1xuICBpZiAob3B0cy5vZmZzZXQpIHtcbiAgICBwYXJhbXMub2Zmc2V0ID0gcmVxdWlyZUZsb2F0UGFyYW1ldGVyKCdvZmZzZXQnLCBvcHRzLm9mZnNldCwgJ3NlbGVjdFBpY2tlcldoZWVsVmFsdWUnKTtcbiAgfVxuICByZXR1cm4gYXdhaXQgdGhpcy5wcm94eUNvbW1hbmQoYC93ZGEvcGlja2Vyd2hlZWwvJHtlbGVtZW50SWR9L3NlbGVjdGAsICdQT1NUJywgcGFyYW1zKTtcbn07XG5cbmhlbHBlcnMubW9iaWxlUm90YXRlRWxlbWVudCA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVJvdGF0ZUVsZW1lbnQgKG9wdHMgPSB7fSkge1xuICBjb25zdCBlbGVtZW50SWQgPSB0b0VsZW1lbnRJZChvcHRzKTtcbiAgaWYgKCFlbGVtZW50SWQpIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JzLkludmFsaWRBcmd1bWVudEVycm9yKCdFbGVtZW50IGlkIGlzIGV4cGVjdGVkIHRvIGJlIHNldCBmb3Igcm90YXRlRWxlbWVudCBtZXRob2QnKTtcbiAgfVxuICBjb25zdCBwYXJhbXMgPSB7XG4gICAgcm90YXRpb246IHJlcXVpcmVGbG9hdFBhcmFtZXRlcigncm90YXRpb24nLCBvcHRzLnJvdGF0aW9uLCAncm90YXRlRWxlbWVudCcpLFxuICAgIHZlbG9jaXR5OiByZXF1aXJlRmxvYXRQYXJhbWV0ZXIoJ3ZlbG9jaXR5Jywgb3B0cy52ZWxvY2l0eSwgJ3JvdGF0ZUVsZW1lbnQnKSxcbiAgfTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlDb21tYW5kKGAvd2RhL2VsZW1lbnQvJHtlbGVtZW50SWR9L3JvdGF0ZWAsICdQT1NUJywgcGFyYW1zKTtcbn07XG5cbmhlbHBlcnMuZ2V0Q29vcmRpbmF0ZXMgPSBhc3luYyBmdW5jdGlvbiBnZXRDb29yZGluYXRlcyAoZ2VzdHVyZSkge1xuICAvLyBkZWZhdWx0c1xuICBsZXQgY29vcmRpbmF0ZXMgPSB7eDogMCwgeTogMCwgYXJlT2Zmc2V0czogZmFsc2V9O1xuXG4gIGxldCBvcHRpb25YID0gbnVsbDtcbiAgaWYgKGdlc3R1cmUub3B0aW9ucy54KSB7XG4gICAgb3B0aW9uWCA9IHJlcXVpcmVGbG9hdFBhcmFtZXRlcigneCcsIGdlc3R1cmUub3B0aW9ucy54LCAnZ2V0Q29vcmRpbmF0ZXMnKTtcbiAgfVxuICBsZXQgb3B0aW9uWSA9IG51bGw7XG4gIGlmIChnZXN0dXJlLm9wdGlvbnMueSkge1xuICAgIG9wdGlvblkgPSByZXF1aXJlRmxvYXRQYXJhbWV0ZXIoJ3knLCBnZXN0dXJlLm9wdGlvbnMueSwgJ2dldENvb3JkaW5hdGVzJyk7XG4gIH1cblxuICAvLyBmaWd1cmUgb3V0IHRoZSBlbGVtZW50IGNvb3JkaW5hdGVzLlxuICBjb25zdCBlbGVtZW50SWQgPSB0b0VsZW1lbnRJZChnZXN0dXJlLm9wdGlvbnMpO1xuICBpZiAoZWxlbWVudElkKSB7XG4gICAgbGV0IHJlY3QgPSBhd2FpdCB0aGlzLmdldEVsZW1lbnRSZWN0KGVsZW1lbnRJZCk7XG4gICAgbGV0IHBvcyA9IHt4OiByZWN0LngsIHk6IHJlY3QueX07XG4gICAgbGV0IHNpemUgPSB7dzogcmVjdC53aWR0aCwgaDogcmVjdC5oZWlnaHR9O1xuXG4gICAgLy8gZGVmYXVsdHNcbiAgICBsZXQgb2Zmc2V0WCA9IDA7XG4gICAgbGV0IG9mZnNldFkgPSAwO1xuXG4gICAgLy8gZ2V0IHRoZSByZWFsIG9mZnNldHNcbiAgICBpZiAob3B0aW9uWCB8fCBvcHRpb25ZKSB7XG4gICAgICBvZmZzZXRYID0gKG9wdGlvblggfHwgMCk7XG4gICAgICBvZmZzZXRZID0gKG9wdGlvblkgfHwgMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIG9mZnNldFggPSAoc2l6ZS53IC8gMik7XG4gICAgICBvZmZzZXRZID0gKHNpemUuaCAvIDIpO1xuICAgIH1cblxuICAgIC8vIGFwcGx5IHRoZSBvZmZzZXRzXG4gICAgY29vcmRpbmF0ZXMueCA9IHBvcy54ICsgb2Zmc2V0WDtcbiAgICBjb29yZGluYXRlcy55ID0gcG9zLnkgKyBvZmZzZXRZO1xuICB9IGVsc2Uge1xuICAgIC8vIG1vdmVUbyBjb29yZGluYXRlcyBhcmUgcGFzc2VkIGluIGFzIG9mZnNldHNcbiAgICBjb29yZGluYXRlcy5hcmVPZmZzZXRzID0gKGdlc3R1cmUuYWN0aW9uID09PSAnbW92ZVRvJyk7XG4gICAgY29vcmRpbmF0ZXMueCA9IChvcHRpb25YIHx8IDApO1xuICAgIGNvb3JkaW5hdGVzLnkgPSAob3B0aW9uWSB8fCAwKTtcbiAgfVxuICByZXR1cm4gY29vcmRpbmF0ZXM7XG59O1xuXG5oZWxwZXJzLmFwcGx5TW92ZVRvT2Zmc2V0ID0gZnVuY3Rpb24gYXBwbHlNb3ZlVG9PZmZzZXQgKGZpcnN0Q29vcmRpbmF0ZXMsIHNlY29uZENvb3JkaW5hdGVzKSB7XG4gIGlmIChzZWNvbmRDb29yZGluYXRlcy5hcmVPZmZzZXRzKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHg6IGZpcnN0Q29vcmRpbmF0ZXMueCArIHNlY29uZENvb3JkaW5hdGVzLngsXG4gICAgICB5OiBmaXJzdENvb3JkaW5hdGVzLnkgKyBzZWNvbmRDb29yZGluYXRlcy55LFxuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHNlY29uZENvb3JkaW5hdGVzO1xuICB9XG59O1xuXG5PYmplY3QuYXNzaWduKGV4dGVuc2lvbnMsIGhlbHBlcnMsIGNvbW1hbmRzKTtcbmV4cG9ydCB7IGV4dGVuc2lvbnMsIGhlbHBlcnMsIGNvbW1hbmRzLCBnZXN0dXJlc0NoYWluVG9TdHJpbmcgfTtcbmV4cG9ydCBkZWZhdWx0IGV4dGVuc2lvbnM7XG4iXSwiZmlsZSI6ImxpYi9jb21tYW5kcy9nZXN0dXJlLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
453
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9nZXN0dXJlLmpzIl0sIm5hbWVzIjpbIlNVUFBPUlRFRF9HRVNUVVJFX0RJUkVDVElPTlMiLCJoZWxwZXJzIiwiZXh0ZW5zaW9ucyIsImNvbW1hbmRzIiwidG9FbGVtZW50SWQiLCJvcHRzIiwiZWxlbWVudCIsImxvZyIsImluZm8iLCJlbCIsImVsZW1lbnRJZCIsInV0aWwiLCJ1bndyYXBFbGVtZW50IiwidG9FbGVtZW50T3JBcHBsaWNhdGlvbklkIiwiZHJpdmVyIiwiZmluZE5hdGl2ZUVsZW1lbnRPckVsZW1lbnRzIiwibW92ZVRvIiwieG9mZnNldCIsInlvZmZzZXQiLCJpc1dlYkNvbnRleHQiLCJ4IiwieSIsImdldExvY2F0aW9uIiwiY29vcmRzIiwiY3VyV2ViQ29vcmRzIiwiYXRvbXNFbGVtZW50IiwiZ2V0QXRvbXNFbGVtZW50IiwicmVsQ29vcmRzIiwiZXhlY3V0ZUF0b20iLCJfIiwiaXNOaWwiLCJjdXJDb29yZHMiLCJlcnJvcnMiLCJVbmtub3duRXhjZXB0aW9uIiwiZWxQb3MiLCJyZXF1aXJlRmxvYXRQYXJhbWV0ZXIiLCJwYXJhbU5hbWUiLCJwYXJhbVZhbHVlIiwibWV0aG9kTmFtZSIsImlzVW5kZWZpbmVkIiwiSW52YWxpZEFyZ3VtZW50RXJyb3IiLCJyZXN1bHQiLCJwYXJzZUZsb2F0IiwiaXNOYU4iLCJyZXF1aXJlSW50UGFyYW1ldGVyIiwicGFyc2VJbnQiLCJtb2JpbGVTaGFrZSIsImlzU2ltdWxhdG9yIiwiVW5rbm93bkVycm9yIiwiZGV2aWNlIiwic2hha2UiLCJjbGljayIsIm5hdGl2ZUNsaWNrIiwic2V0dGluZ3MiLCJnZXRTZXR0aW5ncyIsIm5hdGl2ZVdlYlRhcCIsIm5hdGl2ZVdlYlRhcFN0cmljdCIsImRlYnVnIiwiZ2VzdHVyZXNDaGFpblRvU3RyaW5nIiwiZ2VzdHVyZXMiLCJrZXlzVG9JbmNsdWRlIiwibWFwIiwiaXRlbSIsIm90aGVyS2V5cyIsImRpZmZlcmVuY2UiLCJrZXlzIiwiaXNBcnJheSIsImludGVyc2VjdGlvbiIsImxlbmd0aCIsImFjdGlvbiIsImlzUGxhaW5PYmplY3QiLCJKU09OIiwic3RyaW5naWZ5Iiwiam9pbiIsInBlcmZvcm1BY3Rpb25zIiwiYWN0aW9ucyIsInByZXByb2Nlc3NlZEFjdGlvbnMiLCJPYmplY3QiLCJhc3NpZ24iLCJ0eXBlIiwicGFyYW1ldGVycyIsInBvaW50ZXJUeXBlIiwibW9kaWZpZWRBY3Rpb24iLCJjbG9uZSIsImZpbHRlciIsImlubmVyQWN0aW9uIiwiZHVyYXRpb24iLCJwcm94eUNvbW1hbmQiLCJyZWxlYXNlQWN0aW9ucyIsIndhcm4iLCJwZXJmb3JtVG91Y2giLCJlIiwiZXJyb3JBbmRUaHJvdyIsIm1lc3NhZ2UiLCJwZXJmb3JtTXVsdGlBY3Rpb24iLCJpIiwiZW5kcG9pbnQiLCJtb2JpbGVTY3JvbGwiLCJuYW1lIiwiZGlyZWN0aW9uIiwicHJlZGljYXRlU3RyaW5nIiwidG9WaXNpYmxlIiwiZGlzdGFuY2UiLCJwYXJhbXMiLCJpbmNsdWRlcyIsInRvTG93ZXIiLCJtb2JpbGVTd2lwZSIsInZlbG9jaXR5IiwibW9iaWxlUGluY2giLCJzY2FsZSIsIm1vYmlsZURvdWJsZVRhcCIsIm1vYmlsZVR3b0ZpbmdlclRhcCIsIm1vYmlsZVRvdWNoQW5kSG9sZCIsIm1vYmlsZVRhcCIsIm1vYmlsZURyYWdGcm9tVG9Gb3JEdXJhdGlvbiIsImZyb21YIiwiZnJvbVkiLCJ0b1giLCJ0b1kiLCJtb2JpbGVUYXBXaXRoTnVtYmVyT2ZUYXBzIiwibnVtYmVyT2ZUYXBzIiwibnVtYmVyT2ZUb3VjaGVzIiwibW9iaWxlU2VsZWN0UGlja2VyV2hlZWxWYWx1ZSIsImlzU3RyaW5nIiwib3JkZXIiLCJ0b0xvd2VyQ2FzZSIsIm9mZnNldCIsIm1vYmlsZVJvdGF0ZUVsZW1lbnQiLCJyb3RhdGlvbiIsImdldENvb3JkaW5hdGVzIiwiZ2VzdHVyZSIsImNvb3JkaW5hdGVzIiwiYXJlT2Zmc2V0cyIsIm9wdGlvblgiLCJvcHRpb25zIiwib3B0aW9uWSIsInJlY3QiLCJnZXRFbGVtZW50UmVjdCIsInBvcyIsInNpemUiLCJ3Iiwid2lkdGgiLCJoIiwiaGVpZ2h0Iiwib2Zmc2V0WCIsIm9mZnNldFkiLCJhcHBseU1vdmVUb09mZnNldCIsImZpcnN0Q29vcmRpbmF0ZXMiLCJzZWNvbmRDb29yZGluYXRlcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLE1BQU1BLDRCQUE0QixHQUFHLENBQUMsSUFBRCxFQUFPLE1BQVAsRUFBZSxNQUFmLEVBQXVCLE9BQXZCLENBQXJDO0FBRUEsTUFBTUMsT0FBTyxHQUFHLEVBQWhCO0FBQUEsTUFBb0JDLFVBQVUsR0FBRyxFQUFqQztBQUFBLE1BQXFDQyxRQUFRLEdBQUcsRUFBaEQ7Ozs7O0FBRUEsU0FBU0MsV0FBVCxDQUFzQkMsSUFBSSxHQUFHLEVBQTdCLEVBQWlDO0FBQy9CLE1BQUlBLElBQUksQ0FBQ0MsT0FBVCxFQUFrQjtBQUNoQkMsb0JBQUlDLElBQUosQ0FBVSwrRUFBVjtBQUNEOztBQUNELFFBQU1DLEVBQUUsR0FBR0osSUFBSSxDQUFDSyxTQUFMLElBQWtCTCxJQUFJLENBQUNDLE9BQWxDO0FBQ0EsU0FBT0csRUFBRSxHQUFHRSxvQkFBS0MsYUFBTCxDQUFtQkgsRUFBbkIsQ0FBSCxHQUE0QixJQUFyQztBQUNEOztBQUVELGVBQWVJLHdCQUFmLENBQXlDQyxNQUF6QyxFQUFpRFQsSUFBSSxHQUFHLEVBQXhELEVBQTREO0FBQzFELFNBQU9ELFdBQVcsQ0FBQ0MsSUFBRCxDQUFYLElBQ0ZNLG9CQUFLQyxhQUFMLENBQW1CLE1BQU1FLE1BQU0sQ0FBQ0MsMkJBQVAsQ0FBb0MsWUFBcEMsRUFBa0QsNEJBQWxELEVBQStFLEtBQS9FLENBQXpCLENBREw7QUFFRDs7QUFFRFosUUFBUSxDQUFDYSxNQUFULEdBQWtCLGVBQWVBLE1BQWYsQ0FBdUJQLEVBQXZCLEVBQTJCUSxPQUFPLEdBQUcsQ0FBckMsRUFBd0NDLE9BQU8sR0FBRyxDQUFsRCxFQUFxRDtBQUNyRVQsRUFBQUEsRUFB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QUNDLE1BQVAsQ0FBYzVFLFVBQWQsRUFBMEJELE9BQTFCLEVBQW1DRSxRQUFuQztlQUVlRCxVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgZXJyb3JzIH0gZnJvbSAnYXBwaXVtLWJhc2UtZHJpdmVyJztcbmltcG9ydCB7IHV0aWwgfSBmcm9tICdhcHBpdW0tc3VwcG9ydCc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IGxvZyBmcm9tICcuLi9sb2dnZXInO1xuXG5jb25zdCBTVVBQT1JURURfR0VTVFVSRV9ESVJFQ1RJT05TID0gWyd1cCcsICdkb3duJywgJ2xlZnQnLCAncmlnaHQnXTtcblxuY29uc3QgaGVscGVycyA9IHt9LCBleHRlbnNpb25zID0ge30sIGNvbW1hbmRzID0ge307XG5cbmZ1bmN0aW9uIHRvRWxlbWVudElkIChvcHRzID0ge30pIHtcbiAgaWYgKG9wdHMuZWxlbWVudCkge1xuICAgIGxvZy5pbmZvKGBUaGUgJ2VsZW1lbnQnIGFyZ3VtZW50IG5hbWUgaXMgZGVwcmVjYXRlZC4gQ29uc2lkZXIgdXNpbmcgJ2VsZW1lbnRJZCcgaW5zdGVhZGApO1xuICB9XG4gIGNvbnN0IGVsID0gb3B0cy5lbGVtZW50SWQgfHwgb3B0cy5lbGVtZW50O1xuICByZXR1cm4gZWwgPyB1dGlsLnVud3JhcEVsZW1lbnQoZWwpIDogbnVsbDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gdG9FbGVtZW50T3JBcHBsaWNhdGlvbklkIChkcml2ZXIsIG9wdHMgPSB7fSkge1xuICByZXR1cm4gdG9FbGVtZW50SWQob3B0cylcbiAgICB8fCB1dGlsLnVud3JhcEVsZW1lbnQoYXdhaXQgZHJpdmVyLmZpbmROYXRpdmVFbGVtZW50T3JFbGVtZW50cyhgY2xhc3MgbmFtZWAsIGBYQ1VJRWxlbWVudFR5cGVBcHBsaWNhdGlvbmAsIGZhbHNlKSk7XG59XG5cbmNvbW1hbmRzLm1vdmVUbyA9IGFzeW5jIGZ1bmN0aW9uIG1vdmVUbyAoZWwsIHhvZmZzZXQgPSAwLCB5b2Zmc2V0ID0gMCkge1xuICBlbCA9IHV0aWwudW53cmFwRWxlbWVudChlbCk7XG5cbiAgaWYgKHRoaXMuaXNXZWJDb250ZXh0KCkpIHtcbiAgICBsZXQge3gsIHl9ID0gYXdhaXQgdGhpcy5nZXRMb2NhdGlvbihlbCk7XG4gICAgbGV0IGNvb3JkcyA9IHtcbiAgICAgIHg6IHggKyB4b2Zmc2V0LFxuICAgICAgeTogeSArIHlvZmZzZXRcbiAgICB9O1xuICAgIHRoaXMuY3VyV2ViQ29vcmRzID0gY29vcmRzO1xuICAgIGxldCBhdG9tc0VsZW1lbnQgPSB0aGlzLmdldEF0b21zRWxlbWVudChlbCk7XG4gICAgbGV0IHJlbENvb3JkcyA9IHt4OiB4b2Zmc2V0LCB5OiB5b2Zmc2V0fTtcbiAgICBhd2FpdCB0aGlzLmV4ZWN1dGVBdG9tKCdtb3ZlX21vdXNlJywgW2F0b21zRWxlbWVudCwgcmVsQ29vcmRzXSk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKF8uaXNOaWwoZWwpKSB7XG4gICAgICBpZiAoIXRoaXMuY3VyQ29vcmRzKSB7XG4gICAgICAgIHRocm93IG5ldyBlcnJvcnMuVW5rbm93bkV4Y2VwdGlvbihcbiAgICAgICAgICAnQ3VycmVudCBjdXJzb3IgcG9zaXRpb24gdW5rbm93biwgcGxlYXNlIHVzZSBtb3ZlVG8gd2l0aCBhbiBlbGVtZW50IHRoZSBmaXJzdCB0aW1lLicpO1xuICAgICAgfVxuICAgICAgdGhpcy5jdXJDb29yZHMgPSB7XG4gICAgICAgIHg6IHRoaXMuY3VyQ29vcmRzLnggKyB4b2Zmc2V0LFxuICAgICAgICB5OiB0aGlzLmN1ckNvb3Jkcy55ICsgeW9mZnNldFxuICAgICAgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgbGV0IGVsUG9zID0gYXdhaXQgdGhpcy5nZXRMb2NhdGlvbihlbCk7XG4gICAgICB0aGlzLmN1ckNvb3JkcyA9IHtcbiAgICAgICAgeDogZWxQb3MueCArIHhvZmZzZXQsXG4gICAgICAgIHk6IGVsUG9zLnkgKyB5b2Zmc2V0XG4gICAgICB9O1xuICAgIH1cbiAgfVxufTtcblxuZnVuY3Rpb24gcmVxdWlyZUZsb2F0UGFyYW1ldGVyIChwYXJhbU5hbWUsIHBhcmFtVmFsdWUsIG1ldGhvZE5hbWUpIHtcbiAgaWYgKF8uaXNVbmRlZmluZWQocGFyYW1WYWx1ZSkpIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JzLkludmFsaWRBcmd1bWVudEVycm9yKGBcIiR7cGFyYW1OYW1lfVwiIHBhcmFtZXRlciBpcyBtYW5kYXRvcnkgZm9yIFwiJHttZXRob2ROYW1lfVwiIGNhbGxgKTtcbiAgfVxuICBjb25zdCByZXN1bHQgPSBwYXJzZUZsb2F0KHBhcmFtVmFsdWUpO1xuICBpZiAoaXNOYU4ocmVzdWx0KSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZEFyZ3VtZW50RXJyb3IoYFwiJHtwYXJhbU5hbWV9XCIgcGFyYW1ldGVyIHNob3VsZCBiZSBhIHZhbGlkIG51bWJlci4gXCIke3BhcmFtVmFsdWV9XCIgaXMgZ2l2ZW4gaW5zdGVhZGApO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmZ1bmN0aW9uIHJlcXVpcmVJbnRQYXJhbWV0ZXIgKHBhcmFtTmFtZSwgcGFyYW1WYWx1ZSwgbWV0aG9kTmFtZSkge1xuICBpZiAoXy5pc1VuZGVmaW5lZChwYXJhbVZhbHVlKSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZEFyZ3VtZW50RXJyb3IoYFwiJHtwYXJhbU5hbWV9XCIgcGFyYW1ldGVyIGlzIG1hbmRhdG9yeSBmb3IgXCIke21ldGhvZE5hbWV9XCIgY2FsbGApO1xuICB9XG4gIGNvbnN0IHJlc3VsdCA9IHBhcnNlSW50KHBhcmFtVmFsdWUsIDEwKTtcbiAgaWYgKGlzTmFOKHJlc3VsdCkpIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JzLkludmFsaWRBcmd1bWVudEVycm9yKGBcIiR7cGFyYW1OYW1lfVwiIHBhcmFtZXRlciBzaG91bGQgYmUgYSB2YWxpZCBpbnRlZ2VyLiBcIiR7cGFyYW1WYWx1ZX1cIiBpcyBnaXZlbiBpbnN0ZWFkYCk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuY29tbWFuZHMubW9iaWxlU2hha2UgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVTaGFrZSAoKSB7XG4gIGlmICghdGhpcy5pc1NpbXVsYXRvcigpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5Vbmtub3duRXJyb3IoJ1NoYWtlIGlzIG5vdCBzdXBwb3J0ZWQgb24gcmVhbCBkZXZpY2VzJyk7XG4gIH1cbiAgYXdhaXQgdGhpcy5vcHRzLmRldmljZS5zaGFrZSgpO1xufTtcblxuY29tbWFuZHMuY2xpY2sgPSBhc3luYyBmdW5jdGlvbiBjbGljayAoZWwpIHtcbiAgaWYgKCF0aGlzLmlzV2ViQ29udGV4dCgpKSB7XG4gICAgLy8gdGhlcmUgYXJlIG11bHRpcGxlIGNvbW1hbmRzIHRoYXQgbWFwIGhlcmUsIHNvIG1hbnVhbGx5IHByb3h5XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMubmF0aXZlQ2xpY2soZWwpO1xuICB9XG4gIGVsID0gdXRpbC51bndyYXBFbGVtZW50KGVsKTtcbiAgaWYgKChhd2FpdCB0aGlzLnNldHRpbmdzLmdldFNldHRpbmdzKCkpLm5hdGl2ZVdlYlRhcCB8fCAoYXdhaXQgdGhpcy5zZXR0aW5ncy5nZXRTZXR0aW5ncygpKS5uYXRpdmVXZWJUYXBTdHJpY3QpIHtcbiAgICAvLyBhdG9tcy1iYXNlZCBjbGlja3MgZG9uJ3QgYWx3YXlzIHdvcmsgaW4gc2FmYXJpIDdcbiAgICBsb2cuZGVidWcoJ1VzaW5nIG5hdGl2ZSB3ZWIgdGFwJyk7XG4gICAgYXdhaXQgdGhpcy5uYXRpdmVXZWJUYXAoZWwpO1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGF0b21zRWxlbWVudCA9IHRoaXMuZ2V0QXRvbXNFbGVtZW50KGVsKTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5leGVjdXRlQXRvbSgnY2xpY2snLCBbYXRvbXNFbGVtZW50XSk7XG4gIH1cbn07XG5cbmZ1bmN0aW9uIGdlc3R1cmVzQ2hhaW5Ub1N0cmluZyAoZ2VzdHVyZXMsIGtleXNUb0luY2x1ZGUgPSBbJ29wdGlvbnMnXSkge1xuICByZXR1cm4gZ2VzdHVyZXMubWFwKChpdGVtKSA9PiB7XG4gICAgbGV0IG90aGVyS2V5cyA9IF8uZGlmZmVyZW5jZShfLmtleXMoaXRlbSksIFsnYWN0aW9uJ10pO1xuICAgIG90aGVyS2V5cyA9IF8uaXNBcnJheShrZXlzVG9JbmNsdWRlKSA/IF8uaW50ZXJzZWN0aW9uKG90aGVyS2V5cywga2V5c1RvSW5jbHVkZSkgOiBvdGhlcktleXM7XG4gICAgaWYgKG90aGVyS2V5cy5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBgJHtpdGVtLmFjdGlvbn1gICtcbiAgICAgICAgYCgke18ubWFwKG90aGVyS2V5cywgKHgpID0+IHggKyAnPScgKyAoXy5pc1BsYWluT2JqZWN0KGl0ZW1beF0pID8gSlNPTi5zdHJpbmdpZnkoaXRlbVt4XSkgOiBpdGVtW3hdKSkuam9pbignLCAnKX0pYDtcbiAgICB9XG4gICAgcmV0dXJuIGl0ZW0uYWN0aW9uO1xuICB9KS5qb2luKCctJyk7XG59XG5cbmNvbW1hbmRzLnBlcmZvcm1BY3Rpb25zID0gYXN5bmMgZnVuY3Rpb24gcGVyZm9ybUFjdGlvbnMgKGFjdGlvbnMpIHtcbiAgbG9nLmRlYnVnKGBSZWNlaXZlZCB0aGUgZm9sbG93aW5nIFczQyBhY3Rpb25zOiAke0pTT04uc3RyaW5naWZ5KGFjdGlvbnMsIG51bGwsICcgICcpfWApO1xuICAvLyBUaGlzIGlzIG1hbmRhdG9yeSwgc2luY2UgV0RBIG9ubHkgc3VwcG9ydHMgVE9VQ0ggcG9pbnRlciB0eXBlXG4gIC8vIGFuZCBTZWxlbml1bSBBUEkgdXNlcyBNT1VTRSBhcyB0aGUgZGVmYXVsdCBvbmVcbiAgY29uc3QgcHJlcHJvY2Vzc2VkQWN0aW9ucyA9IGFjdGlvbnNcbiAgICAubWFwKChhY3Rpb24pID0+IE9iamVjdC5hc3NpZ24oe30sIGFjdGlvbiwgYWN0aW9uLnR5cGUgPT09ICdwb2ludGVyJyA/IHtcbiAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgcG9pbnRlclR5cGU6ICd0b3VjaCdcbiAgICAgIH1cbiAgICB9IDoge30pKVxuICAgIC5tYXAoKGFjdGlvbikgPT4ge1xuICAgICAgY29uc3QgbW9kaWZpZWRBY3Rpb24gPSBfLmNsb25lKGFjdGlvbikgfHwge307XG4gICAgICAvLyBTZWxlbml1bSBBUEkgdW5leHBlY3RlZGx5IGluc2VydHMgemVybyBwYXVzZXMsIHdoaWNoIGFyZSBub3Qgc3VwcG9ydGVkIGJ5IFdEQVxuICAgICAgbW9kaWZpZWRBY3Rpb24uYWN0aW9ucyA9IChhY3Rpb24uYWN0aW9ucyB8fCBbXSlcbiAgICAgICAgLmZpbHRlcigoaW5uZXJBY3Rpb24pID0+ICEoaW5uZXJBY3Rpb24udHlwZSA9PT0gJ3BhdXNlJyAmJiBpbm5lckFjdGlvbi5kdXJhdGlvbiA9PT0gMCkpO1xuICAgICAgcmV0dXJuIG1vZGlmaWVkQWN0aW9uO1xuICAgIH0pO1xuICBsb2cuZGVidWcoYFByZXByb2Nlc3NlZCBhY3Rpb25zOiAke0pTT04uc3RyaW5naWZ5KHByZXByb2Nlc3NlZEFjdGlvbnMsIG51bGwsICcgICcpfWApO1xuICByZXR1cm4gYXdhaXQgdGhpcy5wcm94eUNvbW1hbmQoJy9hY3Rpb25zJywgJ1BPU1QnLCB7YWN0aW9uczogcHJlcHJvY2Vzc2VkQWN0aW9uc30pO1xufTtcblxuY29tbWFuZHMucmVsZWFzZUFjdGlvbnMgPSBmdW5jdGlvbiByZWxlYXNlQWN0aW9ucyAoKSB7XG4gIGxvZy53YXJuKCdPbiB0aGlzIHBsYXRmb3JtLCByZWxlYXNlQWN0aW9ucyBpcyBhIG5vLW9wJyk7XG59O1xuXG5jb21tYW5kcy5wZXJmb3JtVG91Y2ggPSBhc3luYyBmdW5jdGlvbiBwZXJmb3JtVG91Y2ggKGdlc3R1cmVzKSB7XG4gIGxvZy5kZWJ1ZyhgUmVjZWl2ZWQgdGhlIGZvbGxvd2luZyB0b3VjaCBhY3Rpb246ICR7Z2VzdHVyZXNDaGFpblRvU3RyaW5nKGdlc3R1cmVzKX1gKTtcbiAgdHJ5IHtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm94eUNvbW1hbmQoJy93ZGEvdG91Y2gvcGVyZm9ybScsICdQT1NUJywge2FjdGlvbnM6IGdlc3R1cmVzfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAoIXRoaXMuaXNXZWJDb250ZXh0KCkpIHtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICAgIGxvZy5lcnJvckFuZFRocm93KCdUaGUgVG91Y2ggQVBJIGlzIGFpbWVkIGZvciB1c2FnZSBpbiBOQVRJVkUgY29udGV4dC4gJyArXG4gICAgICAnQ29uc2lkZXIgdXNpbmcgXCJleGVjdXRlXCIgQVBJIHdpdGggY3VzdG9tIGV2ZW50cyB0cmlnZ2VyIHNjcmlwdCAnICtcbiAgICAgIGB0byBlbXVsYXRlIHRvdWNoIGV2ZW50cyBiZWluZyBpbiBXRUJWSUVXIGNvbnRleHQuIE9yaWdpbmFsIGVycm9yOiAke2UubWVzc2FnZX1gKTtcbiAgfVxufTtcblxuY29tbWFuZHMucGVyZm9ybU11bHRpQWN0aW9uID0gYXN5bmMgZnVuY3Rpb24gcGVyZm9ybU11bHRpQWN0aW9uIChhY3Rpb25zKSB7XG4gIGxvZy5kZWJ1ZyhgUmVjZWl2ZWQgdGhlIGZvbGxvd2luZyBtdWx0aSB0b3VjaCBhY3Rpb246YCk7XG4gIGZvciAobGV0IGkgaW4gYWN0aW9ucykge1xuICAgIGxvZy5kZWJ1ZyhgICAgICR7cGFyc2VJbnQoaSwgMTApICsgMX06ICR7Xy5tYXAoYWN0aW9uc1tpXSwgJ2FjdGlvbicpLmpvaW4oJy0nKX1gKTtcbiAgfVxuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnByb3h5Q29tbWFuZCgnL3dkYS90b3VjaC9tdWx0aS9wZXJmb3JtJywgJ1BPU1QnLCB7YWN0aW9uc30pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgaWYgKCF0aGlzLmlzV2ViQ29udGV4dCgpKSB7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgICBsb2cuZXJyb3JBbmRUaHJvdygnVGhlIE11bHRpVG91Y2ggQVBJIGlzIGFpbWVkIGZvciB1c2FnZSBpbiBOQVRJVkUgY29udGV4dC4gJyArXG4gICAgICAnQ29uc2lkZXIgdXNpbmcgXCJleGVjdXRlXCIgQVBJIHdpdGggY3VzdG9tIGV2ZW50cyB0cmlnZ2VyIHNjcmlwdCAnICtcbiAgICAgIGB0byBlbXVsYXRlIG11bHRpdG91Y2ggZXZlbnRzIGJlaW5nIGluIFdFQlZJRVcgY29udGV4dC4gT3JpZ2luYWwgZXJyb3I6ICR7ZS5tZXNzYWdlfWApO1xuICB9XG59O1xuXG5jb21tYW5kcy5uYXRpdmVDbGljayA9IGFzeW5jIGZ1bmN0aW9uIG5hdGl2ZUNsaWNrIChlbCkge1xuICBlbCA9IHV0aWwudW53cmFwRWxlbWVudChlbCk7XG4gIGxldCBlbmRwb2ludCA9IGAvZWxlbWVudC8ke2VsfS9jbGlja2A7XG4gIHJldHVybiBhd2FpdCB0aGlzLnByb3h5Q29tbWFuZChlbmRwb2ludCwgJ1BPU1QnLCB7fSk7XG59O1xuXG4vKlxuICogU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9XZWJEcml2ZXJBZ2VudC9ibG9iL21hc3Rlci9XZWJEcml2ZXJBZ2VudExpYi9Db21tYW5kcy9GQkVsZW1lbnRDb21tYW5kcy5tXG4gKiB0byBnZXQgdGhlIGluZm8gYWJvdXQgYXZhaWxhYmxlIFdEQSBnZXN0dXJlcyBBUElcbiAqXG4gKiBTZWUgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL3JlZmVyZW5jZS94Y3Rlc3QveGN1aWVsZW1lbnQgYW5kXG4gKiBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vcmVmZXJlbmNlL3hjdGVzdC94Y3VpY29vcmRpbmF0ZSB0byBnZXQgdGhlIGRldGFpbGVkIGRlc2NyaXB0aW9uIG9mXG4gKiBhbGwgWENUZXN0IGdlc3R1cmVzXG4qL1xuXG5oZWxwZXJzLm1vYmlsZVNjcm9sbCA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVNjcm9sbCAob3B0cyA9IHt9KSB7XG4gIC8vIFdEQSBzdXBwb3J0cyBmb3VyIHNjcm9sbGluZyBzdHJhdGVnaWVzOiBwcmVkaWNhdGlvbiBiYXNlZCBvbiBuYW1lLCBkaXJlY3Rpb24sXG4gIC8vIHByZWRpY2F0ZVN0cmluZywgYW5kIHRvVmlzaWJsZSwgaW4gdGhhdCBvcmRlclxuICBjb25zdCB7XG4gICAgbmFtZSxcbiAgICBkaXJlY3Rpb24sXG4gICAgcHJlZGljYXRlU3RyaW5nLFxuICAgIHRvVmlzaWJsZSxcbiAgICBkaXN0YW5jZSxcbiAgfSA9IG9wdHM7XG4gIGNvbnN0IHBhcmFtcyA9IHt9O1xuICBpZiAobmFtZSkge1xuICAgIHBhcmFtcy5uYW1lID0gbmFtZTtcbiAgfSBlbHNlIGlmIChkaXJlY3Rpb24pIHtcbiAgICBpZiAoIVNVUFBPUlRFRF9HRVNUVVJFX0RJUkVDVElPTlMuaW5jbHVkZXMoXy50b0xvd2VyKGRpcmVjdGlvbikpKSB7XG4gICAgICB0aHJvdyBuZXcgZXJyb3JzLkludmFsaWRBcmd1bWVudEVycm9yKGAnZGlyZWN0aW9uJyBtdXN0IGJlIG9uZSBvZjogJHtTVVBQT1JURURfR0VTVFVSRV9ESVJFQ1RJT05TfWApO1xuICAgIH1cbiAgICBwYXJhbXMuZGlyZWN0aW9uID0gZGlyZWN0aW9uO1xuICB9IGVsc2UgaWYgKHByZWRpY2F0ZVN0cmluZykge1xuICAgIHBhcmFtcy5wcmVkaWNhdGVTdHJpbmcgPSBwcmVkaWNhdGVTdHJpbmc7XG4gIH0gZWxzZSBpZiAodG9WaXNpYmxlKSB7XG4gICAgcGFyYW1zLnRvVmlzaWJsZSA9IHRvVmlzaWJsZTtcbiAgfSBlbHNlIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JzLkludmFsaWRBcmd1bWVudEVycm9yKFxuICAgICAgJ01vYmlsZSBzY3JvbGwgc3VwcG9ydHMgdGhlIGZvbGxvd2luZyBzdHJhdGVnaWVzOiBuYW1lLCBkaXJlY3Rpb24sIHByZWRpY2F0ZVN0cmluZywgYW5kIHRvVmlzaWJsZS4gJyArXG4gICAgICAnU3BlY2lmeSBvbmUgb2YgdGhlc2UnKTtcbiAgfVxuICAvLyB3ZSBjYW4gYWxzbyBvcHRpb25hbGx5IHBhc3MgYSBkaXN0YW5jZSB3aGljaCBhcHBlYXJzIHRvIGJlIGEgcmF0aW8gb2ZcbiAgLy8gc2NyZWVuIGhlaWdodCwgc28gMS4wIG1lYW5zIGEgZnVsbCBzY3JlZW4ncyB3b3J0aCBvZiBzY3JvbGxpbmdcbiAgaWYgKCFfLmlzTmlsKGRpc3RhbmNlKSkge1xuICAgIHBhcmFtcy5kaXN0YW5jZSA9IGRpc3RhbmNlO1xuICB9XG4gIGNvbnN0IGVsZW1lbnRJZCA9IGF3YWl0IHRvRWxlbWVudE9yQXBwbGljYXRpb25JZCh0aGlzLCBvcHRzKTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlDb21tYW5kKGAvd2RhL2VsZW1lbnQvJHtlbGVtZW50SWR9L3Njcm9sbGAsICdQT1NUJywgcGFyYW1zKTtcbn07XG5cbmhlbHBlcnMubW9iaWxlU3dpcGUgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVTd2lwZSAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtcbiAgICBkaXJlY3Rpb24sXG4gICAgdmVsb2NpdHksXG4gIH0gPSBvcHRzO1xuICBpZiAoIVNVUFBPUlRFRF9HRVNUVVJFX0RJUkVDVElPTlMuaW5jbHVkZXMoXy50b0xvd2VyKGRpcmVjdGlvbikpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5JbnZhbGlkQXJndW1lbnRFcnJvcihgJ2RpcmVjdGlvbicgbXVzdCBiZSBvbmUgb2Y6ICR7U1VQUE9SVEVEX0dFU1RVUkVfRElSRUNUSU9OU31gKTtcbiAgfVxuICBjb25zdCBwYXJhbXMgPSB7ZGlyZWN0aW9ufTtcbiAgaWYgKCFfLmlzTmlsKHZlbG9jaXR5KSkge1xuICAgIHBhcmFtcy52ZWxvY2l0eSA9IHZlbG9jaXR5O1xuICB9XG4gIGNvbnN0IGVsZW1lbnRJZCA9IGF3YWl0IHRvRWxlbWVudE9yQXBwbGljYXRpb25JZCh0aGlzLCBvcHRzKTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlDb21tYW5kKGAvd2RhL2VsZW1lbnQvJHtlbGVtZW50SWR9L3N3aXBlYCwgJ1BPU1QnLCBwYXJhbXMpO1xufTtcblxuaGVscGVycy5tb2JpbGVQaW5jaCA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVBpbmNoIChvcHRzID0ge30pIHtcbiAgY29uc3QgcGFyYW1zID0ge1xuICAgIHNjYWxlOiByZXF1aXJlRmxvYXRQYXJhbWV0ZXIoJ3NjYWxlJywgb3B0cy5zY2FsZSwgJ3BpbmNoJyksXG4gICAgdmVsb2NpdHk6IHJlcXVpcmVGbG9hdFBhcmFtZXRlcigndmVsb2NpdHknLCBvcHRzLnZlbG9jaXR5LCAncGluY2gnKVxuICB9O1xuICBjb25zdCBlbGVtZW50SWQgPSBhd2FpdCB0b0VsZW1lbnRPckFwcGxpY2F0aW9uSWQodGhpcywgb3B0cyk7XG4gIHJldHVybiBhd2FpdCB0aGlzLnByb3h5Q29tbWFuZChgL3dkYS9lbGVtZW50LyR7ZWxlbWVudElkfS9waW5jaGAsICdQT1NUJywgcGFyYW1zKTtcbn07XG5cbmhlbHBlcnMubW9iaWxlRG91YmxlVGFwID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlRG91YmxlVGFwIChvcHRzID0ge30pIHtcbiAgY29uc3QgZWxlbWVudElkID0gdG9FbGVtZW50SWQob3B0cyk7XG4gIGlmIChlbGVtZW50SWQpIHtcbiAgICAvLyBEb3VibGUgdGFwIGVsZW1lbnRcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5wcm94eUNvbW1hbmQoYC93ZGEvZWxlbWVudC8ke2VsZW1lbnRJZH0vZG91YmxlVGFwYCwgJ1BPU1QnKTtcbiAgfVxuICAvLyBEb3VibGUgdGFwIGNvb3JkaW5hdGVzXG4gIGNvbnN0IHBhcmFtcyA9IHtcbiAgICB4OiByZXF1aXJlRmxvYXRQYXJhbWV0ZXIoJ3gnLCBvcHRzLngsICdkb3VibGVUYXAnKSxcbiAgICB5OiByZXF1aXJlRmxvYXRQYXJhbWV0ZXIoJ3knLCBvcHRzLnksICdkb3VibGVUYXAnKVxuICB9O1xuICByZXR1cm4gYXdhaXQgdGhpcy5wcm94eUNvbW1hbmQoJy93ZGEvZG91YmxlVGFwJywgJ1BPU1QnLCBwYXJhbXMpO1xufTtcblxuaGVscGVycy5tb2JpbGVUd29GaW5nZXJUYXAgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVUd29GaW5nZXJUYXAgKG9wdHMgPSB7fSkge1xuICBjb25zdCBlbGVtZW50SWQgPSBhd2FpdCB0b0VsZW1lbnRPckFwcGxpY2F0aW9uSWQodGhpcywgb3B0cyk7XG4gIHJldHVybiBhd2FpdCB0aGlzLnByb3h5Q29tbWFuZChgL3dkYS9lbGVtZW50LyR7ZWxlbWVudElkfS90d29GaW5nZXJUYXBgLCAnUE9TVCcpO1xufTtcblxuaGVscGVycy5tb2JpbGVUb3VjaEFuZEhvbGQgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVUb3VjaEFuZEhvbGQgKG9wdHMgPSB7fSkge1xuICBjb25zdCBwYXJhbXMgPSB7XG4gICAgZHVyYXRpb246IHJlcXVpcmVGbG9hdFBhcmFtZXRlcignZHVyYXRpb24nLCBvcHRzLmR1cmF0aW9uLCAndG91Y2hBbmRIb2xkJylcbiAgfTtcbiAgY29uc3QgZWxlbWVudElkID0gdG9FbGVtZW50SWQob3B0cyk7XG4gIGlmIChlbGVtZW50SWQpIHtcbiAgICAvLyBMb25nIHRhcCBlbGVtZW50XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlDb21tYW5kKGAvd2RhL2VsZW1lbnQvJHtlbGVtZW50SWR9L3RvdWNoQW5kSG9sZGAsICdQT1NUJywgcGFyYW1zKTtcbiAgfVxuICAvLyBMb25nIHRhcCBjb29yZGluYXRlc1xuICBwYXJhbXMueCA9IHJlcXVpcmVGbG9hdFBhcmFtZXRlcigneCcsIG9wdHMueCwgJ3RvdWNoQW5kSG9sZCcpO1xuICBwYXJhbXMueSA9IHJlcXVpcmVGbG9hdFBhcmFtZXRlcigneScsIG9wdHMueSwgJ3RvdWNoQW5kSG9sZCcpO1xuICByZXR1cm4gYXdhaXQgdGhpcy5wcm94eUNvbW1hbmQoJy93ZGEvdG91Y2hBbmRIb2xkJywgJ1BPU1QnLCBwYXJhbXMpO1xufTtcblxuaGVscGVycy5tb2JpbGVUYXAgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVUYXAgKG9wdHMgPSB7fSkge1xuICBjb25zdCBwYXJhbXMgPSB7XG4gICAgeDogcmVxdWlyZUZsb2F0UGFyYW1ldGVyKCd4Jywgb3B0cy54LCAndGFwJyksXG4gICAgeTogcmVxdWlyZUZsb2F0UGFyYW1ldGVyKCd5Jywgb3B0cy55LCAndGFwJylcbiAgfTtcbiAgY29uc3QgZWxlbWVudElkID0gdG9FbGVtZW50SWQob3B0cykgfHwgJzAnO1xuICByZXR1cm4gYXdhaXQgdGhpcy5wcm94eUNvbW1hbmQoYC93ZGEvdGFwLyR7ZWxlbWVudElkfWAsICdQT1NUJywgcGFyYW1zKTtcbn07XG5cbmhlbHBlcnMubW9iaWxlRHJhZ0Zyb21Ub0ZvckR1cmF0aW9uID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlRHJhZ0Zyb21Ub0ZvckR1cmF0aW9uIChvcHRzID0ge30pIHtcbiAgY29uc3QgcGFyYW1zID0ge1xuICAgIGR1cmF0aW9uOiByZXF1aXJlRmxvYXRQYXJhbWV0ZXIoJ2R1cmF0aW9uJywgb3B0cy5kdXJhdGlvbiwgJ2RyYWdGcm9tVG9Gb3JEdXJhdGlvbicpLFxuICAgIGZyb21YOiByZXF1aXJlRmxvYXRQYXJhbWV0ZXIoJ2Zyb21YJywgb3B0cy5mcm9tWCwgJ2RyYWdGcm9tVG9Gb3JEdXJhdGlvbicpLFxuICAgIGZyb21ZOiByZXF1aXJlRmxvYXRQYXJhbWV0ZXIoJ2Zyb21ZJywgb3B0cy5mcm9tWSwgJ2RyYWdGcm9tVG9Gb3JEdXJhdGlvbicpLFxuICAgIHRvWDogcmVxdWlyZUZsb2F0UGFyYW1ldGVyKCd0b1gnLCBvcHRzLnRvWCwgJ2RyYWdGcm9tVG9Gb3JEdXJhdGlvbicpLFxuICAgIHRvWTogcmVxdWlyZUZsb2F0UGFyYW1ldGVyKCd0b1knLCBvcHRzLnRvWSwgJ2RyYWdGcm9tVG9Gb3JEdXJhdGlvbicpXG4gIH07XG4gIGNvbnN0IGVsZW1lbnRJZCA9IHRvRWxlbWVudElkKG9wdHMpO1xuICByZXR1cm4gZWxlbWVudElkXG4gICAgLy8gRHJhZyBlbGVtZW50XG4gICAgPyBhd2FpdCB0aGlzLnByb3h5Q29tbWFuZChgL3dkYS9lbGVtZW50LyR7ZWxlbWVudElkfS9kcmFnZnJvbXRvZm9yZHVyYXRpb25gLCAnUE9TVCcsIHBhcmFtcylcbiAgICAvLyBEcmFnIGNvb3JkaW5hdGVzXG4gICAgOiBhd2FpdCB0aGlzLnByb3h5Q29tbWFuZCgnL3dkYS9kcmFnZnJvbXRvZm9yZHVyYXRpb24nLCAnUE9TVCcsIHBhcmFtcyk7XG59O1xuXG5oZWxwZXJzLm1vYmlsZVRhcFdpdGhOdW1iZXJPZlRhcHMgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVUYXBXaXRoTnVtYmVyT2ZUYXBzIChvcHRzID0ge30pIHtcbiAgY29uc3QgZWxlbWVudElkID0gdG9FbGVtZW50SWQob3B0cyk7XG4gIGlmICghZWxlbWVudElkKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5JbnZhbGlkQXJndW1lbnRFcnJvcignRWxlbWVudCBpZCBpcyBleHBlY3RlZCB0byBiZSBzZXQgZm9yIHRhcFdpdGhOdW1iZXJPZlRhcHMgbWV0aG9kJyk7XG4gIH1cbiAgY29uc3QgcGFyYW1zID0ge1xuICAgIG51bWJlck9mVGFwczogcmVxdWlyZUludFBhcmFtZXRlcignbnVtYmVyT2ZUYXBzJywgb3B0cy5udW1iZXJPZlRhcHMsICd0YXBXaXRoTnVtYmVyT2ZUYXBzJyksXG4gICAgbnVtYmVyT2ZUb3VjaGVzOiByZXF1aXJlSW50UGFyYW1ldGVyKCdudW1iZXJPZlRvdWNoZXMnLCBvcHRzLm51bWJlck9mVG91Y2hlcywgJ3RhcFdpdGhOdW1iZXJPZlRhcHMnKSxcbiAgfTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlDb21tYW5kKGAvd2RhL2VsZW1lbnQvJHtlbGVtZW50SWR9L3RhcFdpdGhOdW1iZXJPZlRhcHNgLCAnUE9TVCcsIHBhcmFtcyk7XG59O1xuXG5oZWxwZXJzLm1vYmlsZVNlbGVjdFBpY2tlcldoZWVsVmFsdWUgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVTZWxlY3RQaWNrZXJXaGVlbFZhbHVlIChvcHRzID0ge30pIHtcbiAgY29uc3QgZWxlbWVudElkID0gdG9FbGVtZW50SWQob3B0cyk7XG4gIGlmICghZWxlbWVudElkKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5JbnZhbGlkQXJndW1lbnRFcnJvcignRWxlbWVudCBpZCBpcyBleHBlY3RlZCB0byBiZSBzZXQgZm9yIHNlbGVjdFBpY2tlcldoZWVsVmFsdWUgbWV0aG9kJyk7XG4gIH1cbiAgaWYgKCFfLmlzU3RyaW5nKG9wdHMub3JkZXIpIHx8ICFbJ25leHQnLCAncHJldmlvdXMnXS5pbmNsdWRlcyhvcHRzLm9yZGVyLnRvTG93ZXJDYXNlKCkpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5JbnZhbGlkQXJndW1lbnRFcnJvcihgVGhlIG1hbmRhdG9yeSAnb3JkZXInIHBhcmFtZXRlciBpcyBleHBlY3RlZCB0byBiZSBlcXVhbCBlaXRoZXIgdG8gJ25leHQnIG9yICdwcmV2aW91cycuIGAgK1xuICAgICAgYCcke29wdHMub3JkZXJ9JyBpcyBnaXZlbiBpbnN0ZWFkYCk7XG4gIH1cbiAgY29uc3QgcGFyYW1zID0ge29yZGVyOiBvcHRzLm9yZGVyfTtcbiAgaWYgKG9wdHMub2Zmc2V0KSB7XG4gICAgcGFyYW1zLm9mZnNldCA9IHJlcXVpcmVGbG9hdFBhcmFtZXRlcignb2Zmc2V0Jywgb3B0cy5vZmZzZXQsICdzZWxlY3RQaWNrZXJXaGVlbFZhbHVlJyk7XG4gIH1cbiAgcmV0dXJuIGF3YWl0IHRoaXMucHJveHlDb21tYW5kKGAvd2RhL3BpY2tlcndoZWVsLyR7ZWxlbWVudElkfS9zZWxlY3RgLCAnUE9TVCcsIHBhcmFtcyk7XG59O1xuXG5oZWxwZXJzLm1vYmlsZVJvdGF0ZUVsZW1lbnQgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVSb3RhdGVFbGVtZW50IChvcHRzID0ge30pIHtcbiAgY29uc3QgZWxlbWVudElkID0gdG9FbGVtZW50SWQob3B0cyk7XG4gIGlmICghZWxlbWVudElkKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5JbnZhbGlkQXJndW1lbnRFcnJvcignRWxlbWVudCBpZCBpcyBleHBlY3RlZCB0byBiZSBzZXQgZm9yIHJvdGF0ZUVsZW1lbnQgbWV0aG9kJyk7XG4gIH1cbiAgY29uc3QgcGFyYW1zID0ge1xuICAgIHJvdGF0aW9uOiByZXF1aXJlRmxvYXRQYXJhbWV0ZXIoJ3JvdGF0aW9uJywgb3B0cy5yb3RhdGlvbiwgJ3JvdGF0ZUVsZW1lbnQnKSxcbiAgICB2ZWxvY2l0eTogcmVxdWlyZUZsb2F0UGFyYW1ldGVyKCd2ZWxvY2l0eScsIG9wdHMudmVsb2NpdHksICdyb3RhdGVFbGVtZW50JyksXG4gIH07XG4gIHJldHVybiBhd2FpdCB0aGlzLnByb3h5Q29tbWFuZChgL3dkYS9lbGVtZW50LyR7ZWxlbWVudElkfS9yb3RhdGVgLCAnUE9TVCcsIHBhcmFtcyk7XG59O1xuXG5oZWxwZXJzLmdldENvb3JkaW5hdGVzID0gYXN5bmMgZnVuY3Rpb24gZ2V0Q29vcmRpbmF0ZXMgKGdlc3R1cmUpIHtcbiAgLy8gZGVmYXVsdHNcbiAgbGV0IGNvb3JkaW5hdGVzID0ge3g6IDAsIHk6IDAsIGFyZU9mZnNldHM6IGZhbHNlfTtcblxuICBsZXQgb3B0aW9uWCA9IG51bGw7XG4gIGlmIChnZXN0dXJlLm9wdGlvbnMueCkge1xuICAgIG9wdGlvblggPSByZXF1aXJlRmxvYXRQYXJhbWV0ZXIoJ3gnLCBnZXN0dXJlLm9wdGlvbnMueCwgJ2dldENvb3JkaW5hdGVzJyk7XG4gIH1cbiAgbGV0IG9wdGlvblkgPSBudWxsO1xuICBpZiAoZ2VzdHVyZS5vcHRpb25zLnkpIHtcbiAgICBvcHRpb25ZID0gcmVxdWlyZUZsb2F0UGFyYW1ldGVyKCd5JywgZ2VzdHVyZS5vcHRpb25zLnksICdnZXRDb29yZGluYXRlcycpO1xuICB9XG5cbiAgLy8gZmlndXJlIG91dCB0aGUgZWxlbWVudCBjb29yZGluYXRlcy5cbiAgY29uc3QgZWxlbWVudElkID0gdG9FbGVtZW50SWQoZ2VzdHVyZS5vcHRpb25zKTtcbiAgaWYgKGVsZW1lbnRJZCkge1xuICAgIGxldCByZWN0ID0gYXdhaXQgdGhpcy5nZXRFbGVtZW50UmVjdChlbGVtZW50SWQpO1xuICAgIGxldCBwb3MgPSB7eDogcmVjdC54LCB5OiByZWN0Lnl9O1xuICAgIGxldCBzaXplID0ge3c6IHJlY3Qud2lkdGgsIGg6IHJlY3QuaGVpZ2h0fTtcblxuICAgIC8vIGRlZmF1bHRzXG4gICAgbGV0IG9mZnNldFggPSAwO1xuICAgIGxldCBvZmZzZXRZID0gMDtcblxuICAgIC8vIGdldCB0aGUgcmVhbCBvZmZzZXRzXG4gICAgaWYgKG9wdGlvblggfHwgb3B0aW9uWSkge1xuICAgICAgb2Zmc2V0WCA9IChvcHRpb25YIHx8IDApO1xuICAgICAgb2Zmc2V0WSA9IChvcHRpb25ZIHx8IDApO1xuICAgIH0gZWxzZSB7XG4gICAgICBvZmZzZXRYID0gKHNpemUudyAvIDIpO1xuICAgICAgb2Zmc2V0WSA9IChzaXplLmggLyAyKTtcbiAgICB9XG5cbiAgICAvLyBhcHBseSB0aGUgb2Zmc2V0c1xuICAgIGNvb3JkaW5hdGVzLnggPSBwb3MueCArIG9mZnNldFg7XG4gICAgY29vcmRpbmF0ZXMueSA9IHBvcy55ICsgb2Zmc2V0WTtcbiAgfSBlbHNlIHtcbiAgICAvLyBtb3ZlVG8gY29vcmRpbmF0ZXMgYXJlIHBhc3NlZCBpbiBhcyBvZmZzZXRzXG4gICAgY29vcmRpbmF0ZXMuYXJlT2Zmc2V0cyA9IChnZXN0dXJlLmFjdGlvbiA9PT0gJ21vdmVUbycpO1xuICAgIGNvb3JkaW5hdGVzLnggPSAob3B0aW9uWCB8fCAwKTtcbiAgICBjb29yZGluYXRlcy55ID0gKG9wdGlvblkgfHwgMCk7XG4gIH1cbiAgcmV0dXJuIGNvb3JkaW5hdGVzO1xufTtcblxuaGVscGVycy5hcHBseU1vdmVUb09mZnNldCA9IGZ1bmN0aW9uIGFwcGx5TW92ZVRvT2Zmc2V0IChmaXJzdENvb3JkaW5hdGVzLCBzZWNvbmRDb29yZGluYXRlcykge1xuICBpZiAoc2Vjb25kQ29vcmRpbmF0ZXMuYXJlT2Zmc2V0cykge1xuICAgIHJldHVybiB7XG4gICAgICB4OiBmaXJzdENvb3JkaW5hdGVzLnggKyBzZWNvbmRDb29yZGluYXRlcy54LFxuICAgICAgeTogZmlyc3RDb29yZGluYXRlcy55ICsgc2Vjb25kQ29vcmRpbmF0ZXMueSxcbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIHJldHVybiBzZWNvbmRDb29yZGluYXRlcztcbiAgfVxufTtcblxuT2JqZWN0LmFzc2lnbihleHRlbnNpb25zLCBoZWxwZXJzLCBjb21tYW5kcyk7XG5leHBvcnQgeyBleHRlbnNpb25zLCBoZWxwZXJzLCBjb21tYW5kcywgZ2VzdHVyZXNDaGFpblRvU3RyaW5nIH07XG5leHBvcnQgZGVmYXVsdCBleHRlbnNpb25zO1xuIl0sImZpbGUiOiJsaWIvY29tbWFuZHMvZ2VzdHVyZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLiJ9
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = exports.helpers = exports.commands = void 0;
6
+ exports.helpers = exports.default = exports.commands = void 0;
7
7
 
8
8
  require("source-map-support/register");
9
9
 
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.default = exports.helpers = exports.commands = void 0;
8
+ exports.helpers = exports.default = exports.commands = void 0;
9
9
 
10
10
  require("source-map-support/register");
11
11
 
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.default = exports.helpers = exports.commands = void 0;
8
+ exports.helpers = exports.default = exports.commands = void 0;
9
9
 
10
10
  require("source-map-support/register");
11
11
 
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.default = exports.helpers = void 0;
8
+ exports.helpers = exports.default = void 0;
9
9
 
10
10
  require("source-map-support/register");
11
11
 
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.default = exports.helpers = exports.commands = void 0;
8
+ exports.helpers = exports.default = exports.commands = void 0;
9
9
 
10
10
  require("source-map-support/register");
11
11
 
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.default = exports.helpers = exports.commands = void 0;
8
+ exports.helpers = exports.default = exports.commands = void 0;
9
9
 
10
10
  require("source-map-support/register");
11
11
 
@@ -6,8 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
8
  exports.assertIDB = assertIDB;
9
- exports.parseXCTestStdout = parseXCTestStdout;
10
9
  exports.default = exports.commands = void 0;
10
+ exports.parseXCTestStdout = parseXCTestStdout;
11
11
 
12
12
  require("source-map-support/register");
13
13
 
@@ -7,9 +7,9 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.createJSCookie = createJSCookie;
9
9
  exports.createJWPCookie = createJWPCookie;
10
- exports.getValue = getValue;
11
- exports.expireCookie = expireCookie;
12
10
  exports.default = void 0;
11
+ exports.expireCookie = expireCookie;
12
+ exports.getValue = getValue;
13
13
 
14
14
  require("source-map-support/register");
15
15
 
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.default = exports.PLATFORM_NAME_TVOS = exports.PLATFORM_NAME_IOS = exports.desiredCapConstraints = void 0;
6
+ exports.desiredCapConstraints = exports.default = exports.PLATFORM_NAME_TVOS = exports.PLATFORM_NAME_IOS = void 0;
7
7
 
8
8
  require("source-map-support/register");
9
9
 
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.default = exports.MAX_LOG_ENTRIES_COUNT = exports.RotatingLog = void 0;
8
+ exports.default = exports.RotatingLog = exports.MAX_LOG_ENTRIES_COUNT = void 0;
9
9
 
10
10
  require("source-map-support/register");
11
11
 
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.XCUITestDriver = exports.default = void 0;
8
+ exports.default = exports.XCUITestDriver = void 0;
9
9
 
10
10
  require("source-map-support/register");
11
11
 
@@ -7,9 +7,9 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.getConnectedDevices = getConnectedDevices;
9
9
  exports.getOSVersion = getOSVersion;
10
- exports.runRealDeviceReset = runRealDeviceReset;
11
- exports.installToRealDevice = installToRealDevice;
12
10
  exports.getRealDeviceObj = getRealDeviceObj;
11
+ exports.installToRealDevice = installToRealDevice;
12
+ exports.runRealDeviceReset = runRealDeviceReset;
13
13
 
14
14
  require("source-map-support/register");
15
15
 
@@ -7,13 +7,13 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.createSim = createSim;
9
9
  exports.getExistingSim = getExistingSim;
10
- exports.runSimulatorReset = runSimulatorReset;
11
10
  exports.installToSimulator = installToSimulator;
12
- exports.shutdownSimulator = shutdownSimulator;
13
- exports.shutdownOtherSimulators = shutdownOtherSimulators;
11
+ exports.runSimulatorReset = runSimulatorReset;
14
12
  exports.setLocale = setLocale;
15
- exports.setPreferences = setPreferences;
16
13
  exports.setLocaleAndPreferences = setLocaleAndPreferences;
14
+ exports.setPreferences = setPreferences;
15
+ exports.shutdownOtherSimulators = shutdownOtherSimulators;
16
+ exports.shutdownSimulator = shutdownSimulator;
17
17
 
18
18
  require("source-map-support/register");
19
19
 
@@ -5,23 +5,23 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
+ exports.DEFAULT_TIMEOUT_KEY = void 0;
9
+ exports.checkAppPresent = checkAppPresent;
10
+ exports.clearLogs = clearLogs;
11
+ exports.clearSystemFiles = clearSystemFiles;
8
12
  exports.detectUdid = detectUdid;
9
- exports.getAndCheckXcodeVersion = getAndCheckXcodeVersion;
13
+ exports.encodeBase64OrUpload = encodeBase64OrUpload;
10
14
  exports.getAndCheckIosSdkVersion = getAndCheckIosSdkVersion;
11
- exports.checkAppPresent = checkAppPresent;
15
+ exports.getAndCheckXcodeVersion = getAndCheckXcodeVersion;
12
16
  exports.getDriverInfo = getDriverInfo;
13
- exports.clearSystemFiles = clearSystemFiles;
14
- exports.translateDeviceName = translateDeviceName;
15
- exports.normalizeCommandTimeouts = normalizeCommandTimeouts;
16
- exports.markSystemFilesForCleanup = markSystemFilesForCleanup;
17
- exports.printUser = printUser;
18
17
  exports.getPIDsListeningOnPort = getPIDsListeningOnPort;
19
- exports.encodeBase64OrUpload = encodeBase64OrUpload;
20
- exports.removeAllSessionWebSocketHandlers = removeAllSessionWebSocketHandlers;
21
18
  exports.isLocalHost = isLocalHost;
19
+ exports.markSystemFilesForCleanup = markSystemFilesForCleanup;
20
+ exports.normalizeCommandTimeouts = normalizeCommandTimeouts;
22
21
  exports.normalizePlatformVersion = normalizePlatformVersion;
23
- exports.clearLogs = clearLogs;
24
- exports.DEFAULT_TIMEOUT_KEY = void 0;
22
+ exports.printUser = printUser;
23
+ exports.removeAllSessionWebSocketHandlers = removeAllSessionWebSocketHandlers;
24
+ exports.translateDeviceName = translateDeviceName;
25
25
 
26
26
  require("source-map-support/register");
27
27
 
@@ -53,10 +53,14 @@ commands.mobileRemoveApp = async function mobileRemoveApp (opts = {}) {
53
53
  };
54
54
 
55
55
  commands.mobileLaunchApp = async function mobileLaunchApp (opts = {}) {
56
- return await this.proxyCommand('/wda/apps/launch', 'POST', {
57
- ...requireOptions(opts, ['bundleId']),
58
- arguments: _.isArray(opts.arguments) ? opts.arguments : [opts.arguments],
59
- });
56
+ const launchOptions = requireOptions(opts, ['bundleId']);
57
+ if (opts.arguments) {
58
+ launchOptions.arguments = _.isArray(opts.arguments) ? opts.arguments : [opts.arguments];
59
+ }
60
+ if (opts.environment) {
61
+ launchOptions.environment = opts.environment;
62
+ }
63
+ return await this.proxyCommand('/wda/apps/launch', 'POST', launchOptions);
60
64
  };
61
65
 
62
66
  commands.mobileTerminateApp = async function mobileTerminateApp (opts = {}) {
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "xcuitest",
9
9
  "xctest"
10
10
  ],
11
- "version": "3.55.0",
11
+ "version": "3.55.1",
12
12
  "author": "appium",
13
13
  "license": "Apache-2.0",
14
14
  "repository": {