node-simctl 6.3.4 → 6.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -162,6 +162,10 @@ into the debug log before throwing them as errors.
162
162
  going to be implicitly passed to all methods, which require it (see above). It can either be set
163
163
  upon instance creation if it is already known or later when/if needed via the corresponding
164
164
  setter.
165
+ - `devicesSetPath` (string[null]): Full path to the set of devices that you want to manage.
166
+ By default this path usually equals to ~/Library/Developer/CoreSimulator/Devices. This option
167
+ has a getter and a setter which allows to switch between multiple device sets during the Simctl
168
+ instance life cycle.
165
169
 
166
170
 
167
171
  ### Advanced Usage
@@ -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.getXcrunBinary = exports.SIM_RUNTIME_NAME = exports.DEFAULT_EXEC_TIMEOUT = void 0;
8
9
  exports.normalizeVersion = normalizeVersion;
9
- exports.SIM_RUNTIME_NAME = exports.XCRUN_BINARY = exports.DEFAULT_EXEC_TIMEOUT = void 0;
10
10
 
11
11
  require("source-map-support/register");
12
12
 
@@ -14,8 +14,6 @@ var _semver = _interopRequireDefault(require("semver"));
14
14
 
15
15
  const DEFAULT_EXEC_TIMEOUT = 10 * 60 * 1000;
16
16
  exports.DEFAULT_EXEC_TIMEOUT = DEFAULT_EXEC_TIMEOUT;
17
- const XCRUN_BINARY = 'xcrun';
18
- exports.XCRUN_BINARY = XCRUN_BINARY;
19
17
  const SIM_RUNTIME_NAME = 'com.apple.CoreSimulator.SimRuntime.';
20
18
  exports.SIM_RUNTIME_NAME = SIM_RUNTIME_NAME;
21
19
 
@@ -27,7 +25,11 @@ function normalizeVersion(version) {
27
25
  }
28
26
 
29
27
  return `${semverVersion.major}.${semverVersion.minor}`;
30
- }require('source-map-support').install();
28
+ }
31
29
 
30
+ const getXcrunBinary = () => process.env.XCRUN_BINARY || 'xcrun';
32
31
 
33
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9oZWxwZXJzLmpzIl0sIm5hbWVzIjpbIkRFRkFVTFRfRVhFQ19USU1FT1VUIiwiWENSVU5fQklOQVJZIiwiU0lNX1JVTlRJTUVfTkFNRSIsIm5vcm1hbGl6ZVZlcnNpb24iLCJ2ZXJzaW9uIiwic2VtdmVyVmVyc2lvbiIsInNlbXZlciIsImNvZXJjZSIsIkVycm9yIiwibWFqb3IiLCJtaW5vciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7O0FBR0EsTUFBTUEsb0JBQW9CLEdBQUcsS0FBSyxFQUFMLEdBQVUsSUFBdkM7O0FBQ0EsTUFBTUMsWUFBWSxHQUFHLE9BQXJCOztBQUNBLE1BQU1DLGdCQUFnQixHQUFHLHFDQUF6Qjs7O0FBVUEsU0FBU0MsZ0JBQVQsQ0FBMkJDLE9BQTNCLEVBQW9DO0FBQ2xDLFFBQU1DLGFBQWEsR0FBR0MsZ0JBQU9DLE1BQVAsQ0FBY0gsT0FBZCxDQUF0Qjs7QUFDQSxNQUFJLENBQUNDLGFBQUwsRUFBb0I7QUFDbEIsVUFBTSxJQUFJRyxLQUFKLENBQVcsNEJBQTJCSixPQUFRLEdBQTlDLENBQU47QUFDRDs7QUFDRCxTQUFRLEdBQUVDLGFBQWEsQ0FBQ0ksS0FBTSxJQUFHSixhQUFhLENBQUNLLEtBQU0sRUFBckQ7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzZW12ZXIgZnJvbSAnc2VtdmVyJztcblxuXG5jb25zdCBERUZBVUxUX0VYRUNfVElNRU9VVCA9IDEwICogNjAgKiAxMDAwOyAvLyBtc1xuY29uc3QgWENSVU5fQklOQVJZID0gJ3hjcnVuJztcbmNvbnN0IFNJTV9SVU5USU1FX05BTUUgPSAnY29tLmFwcGxlLkNvcmVTaW11bGF0b3IuU2ltUnVudGltZS4nO1xuXG4vKipcbiAqIFwiTm9ybWFsaXplXCIgdGhlIHZlcnNpb24sIHNpbmNlIGlPUyB1c2VzICdtYWpvci5taW5vcicgYnV0IHRoZSBydW50aW1lcyBjYW5cbiAqIGJlICdtYWpvci5taW5vci5wYXRjaCdcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmVyc2lvbiAtIHRoZSBzdHJpbmcgdmVyc2lvblxuICogQHJldHVybiB7c3RyaW5nfSBUaGUgdmVyc2lvbiBpbiAnbWFqb3IubWlub3InIGZvcm1cbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgdmVyc2lvbiBub3QgcGFyc2VhYmxlIGJ5IHRoZSBgc2VtdmVyYCBwYWNrYWdlXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZVZlcnNpb24gKHZlcnNpb24pIHtcbiAgY29uc3Qgc2VtdmVyVmVyc2lvbiA9IHNlbXZlci5jb2VyY2UodmVyc2lvbik7XG4gIGlmICghc2VtdmVyVmVyc2lvbikge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIHBhcnNlIHZlcnNpb24gJyR7dmVyc2lvbn0nYCk7XG4gIH1cbiAgcmV0dXJuIGAke3NlbXZlclZlcnNpb24ubWFqb3J9LiR7c2VtdmVyVmVyc2lvbi5taW5vcn1gO1xufVxuXG5leHBvcnQge1xuICBERUZBVUxUX0VYRUNfVElNRU9VVCwgWENSVU5fQklOQVJZLCBTSU1fUlVOVElNRV9OQU1FLFxuICBub3JtYWxpemVWZXJzaW9uLFxufTtcbiJdLCJmaWxlIjoibGliL2hlbHBlcnMuanMiLCJzb3VyY2VSb290IjoiLi4vLi4ifQ==
32
+ exports.getXcrunBinary = getXcrunBinary;require('source-map-support').install();
33
+
34
+
35
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9oZWxwZXJzLmpzIl0sIm5hbWVzIjpbIkRFRkFVTFRfRVhFQ19USU1FT1VUIiwiU0lNX1JVTlRJTUVfTkFNRSIsIm5vcm1hbGl6ZVZlcnNpb24iLCJ2ZXJzaW9uIiwic2VtdmVyVmVyc2lvbiIsInNlbXZlciIsImNvZXJjZSIsIkVycm9yIiwibWFqb3IiLCJtaW5vciIsImdldFhjcnVuQmluYXJ5IiwicHJvY2VzcyIsImVudiIsIlhDUlVOX0JJTkFSWSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBQUE7O0FBRUEsTUFBTUEsb0JBQW9CLEdBQUcsS0FBSyxFQUFMLEdBQVUsSUFBdkM7O0FBQ0EsTUFBTUMsZ0JBQWdCLEdBQUcscUNBQXpCOzs7QUFVQSxTQUFTQyxnQkFBVCxDQUEyQkMsT0FBM0IsRUFBb0M7QUFDbEMsUUFBTUMsYUFBYSxHQUFHQyxnQkFBT0MsTUFBUCxDQUFjSCxPQUFkLENBQXRCOztBQUNBLE1BQUksQ0FBQ0MsYUFBTCxFQUFvQjtBQUNsQixVQUFNLElBQUlHLEtBQUosQ0FBVyw0QkFBMkJKLE9BQVEsR0FBOUMsQ0FBTjtBQUNEOztBQUNELFNBQVEsR0FBRUMsYUFBYSxDQUFDSSxLQUFNLElBQUdKLGFBQWEsQ0FBQ0ssS0FBTSxFQUFyRDtBQUNEOztBQU9NLE1BQU1DLGNBQWMsR0FBRyxNQUFNQyxPQUFPLENBQUNDLEdBQVIsQ0FBWUMsWUFBWixJQUE0QixPQUF6RCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBzZW12ZXIgZnJvbSAnc2VtdmVyJztcblxuY29uc3QgREVGQVVMVF9FWEVDX1RJTUVPVVQgPSAxMCAqIDYwICogMTAwMDsgLy8gbXNcbmNvbnN0IFNJTV9SVU5USU1FX05BTUUgPSAnY29tLmFwcGxlLkNvcmVTaW11bGF0b3IuU2ltUnVudGltZS4nO1xuXG4vKipcbiAqIFwiTm9ybWFsaXplXCIgdGhlIHZlcnNpb24sIHNpbmNlIGlPUyB1c2VzICdtYWpvci5taW5vcicgYnV0IHRoZSBydW50aW1lcyBjYW5cbiAqIGJlICdtYWpvci5taW5vci5wYXRjaCdcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gdmVyc2lvbiAtIHRoZSBzdHJpbmcgdmVyc2lvblxuICogQHJldHVybiB7c3RyaW5nfSBUaGUgdmVyc2lvbiBpbiAnbWFqb3IubWlub3InIGZvcm1cbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgdmVyc2lvbiBub3QgcGFyc2VhYmxlIGJ5IHRoZSBgc2VtdmVyYCBwYWNrYWdlXG4gKi9cbmZ1bmN0aW9uIG5vcm1hbGl6ZVZlcnNpb24gKHZlcnNpb24pIHtcbiAgY29uc3Qgc2VtdmVyVmVyc2lvbiA9IHNlbXZlci5jb2VyY2UodmVyc2lvbik7XG4gIGlmICghc2VtdmVyVmVyc2lvbikge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIHBhcnNlIHZlcnNpb24gJyR7dmVyc2lvbn0nYCk7XG4gIH1cbiAgcmV0dXJuIGAke3NlbXZlclZlcnNpb24ubWFqb3J9LiR7c2VtdmVyVmVyc2lvbi5taW5vcn1gO1xufVxuXG5leHBvcnQge1xuICBERUZBVUxUX0VYRUNfVElNRU9VVCwgU0lNX1JVTlRJTUVfTkFNRSxcbiAgbm9ybWFsaXplVmVyc2lvbixcbn07XG5cbmV4cG9ydCBjb25zdCBnZXRYY3J1bkJpbmFyeSA9ICgpID0+IHByb2Nlc3MuZW52LlhDUlVOX0JJTkFSWSB8fCAneGNydW4nO1xuIl0sImZpbGUiOiJsaWIvaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLiJ9
@@ -1,13 +1,11 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
-
5
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
4
 
7
5
  Object.defineProperty(exports, "__esModule", {
8
6
  value: true
9
7
  });
10
- exports.Simctl = exports.default = void 0;
8
+ exports.default = exports.Simctl = void 0;
11
9
 
12
10
  require("source-map-support/register");
13
11
 
@@ -23,6 +21,10 @@ var _helpers = require("./helpers");
23
21
 
24
22
  var _teen_process = require("teen_process");
25
23
 
24
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
+
26
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
+
26
28
  const SIMCTL_ENV_PREFIX = 'SIMCTL_CHILD_';
27
29
  const DEFAULT_OPTS = {
28
30
  xcrun: {
@@ -43,6 +45,7 @@ class Simctl {
43
45
  }
44
46
 
45
47
  this._udid = _lodash.default.isNil(opts.udid) ? null : opts.udid;
48
+ this._devicesSetPath = _lodash.default.isNil(opts.devicesSetPath) ? null : opts.devicesSetPath;
46
49
  }
47
50
 
48
51
  set udid(value) {
@@ -53,6 +56,14 @@ class Simctl {
53
56
  return this._udid;
54
57
  }
55
58
 
59
+ set devicesSetPath(value) {
60
+ this._devicesSetPath = value;
61
+ }
62
+
63
+ get devicesSetPath() {
64
+ return this._devicesSetPath;
65
+ }
66
+
56
67
  requireUdid(commandName = null) {
57
68
  if (!this.udid) {
58
69
  throw new Error(`udid is required to be set for ` + (commandName ? `the '${commandName}' command` : 'this simctl command'));
@@ -62,11 +73,13 @@ class Simctl {
62
73
  }
63
74
 
64
75
  async requireXcrun() {
76
+ const xcrunBinary = (0, _helpers.getXcrunBinary)();
77
+
65
78
  if (!this.xcrun.path) {
66
79
  try {
67
- this.xcrun.path = await (0, _which.default)(_helpers.XCRUN_BINARY);
80
+ this.xcrun.path = await (0, _which.default)(xcrunBinary);
68
81
  } catch (e) {
69
- throw new Error(`${_helpers.XCRUN_BINARY} tool has not been found in PATH. ` + `Are Xcode developers tools installed?`);
82
+ throw new Error(`${xcrunBinary} tool has not been found in PATH. ` + `Are Xcode developers tools installed?`);
70
83
  }
71
84
  }
72
85
 
@@ -81,7 +94,7 @@ class Simctl {
81
94
  encoding,
82
95
  logErrors = true
83
96
  } = opts;
84
- args = ['simctl', subcommand, ...args];
97
+ args = ['simctl', ...(this.devicesSetPath ? ['--set', this.devicesSetPath] : []), subcommand, ...args];
85
98
  env = _lodash.default.defaults(_lodash.default.mapKeys(env, (value, key) => _lodash.default.startsWith(key, SIMCTL_ENV_PREFIX) ? key : `${SIMCTL_ENV_PREFIX}${key}`), process.env);
86
99
  const execOpts = {
87
100
  env,
@@ -97,19 +110,17 @@ class Simctl {
97
110
  try {
98
111
  return asynchronous ? new _teen_process.SubProcess(xcrun, args, execOpts) : await (0, _teen_process.exec)(xcrun, args, execOpts);
99
112
  } catch (e) {
100
- if (!this.logErrors || !logErrors) {
101
- throw e;
102
- } else if (e.stderr) {
113
+ if (!this.logErrors || !logErrors) {} else if (e.stderr) {
103
114
  const msg = `Error running '${subcommand}': ${e.stderr.trim()}`;
104
115
 
105
116
  _logger.default.debug(_logger.LOG_PREFIX, msg);
106
117
 
107
- throw Error(msg);
118
+ e.message = msg;
108
119
  } else {
109
120
  _logger.default.debug(_logger.LOG_PREFIX, e.message);
110
-
111
- throw e;
112
121
  }
122
+
123
+ throw e;
113
124
  }
114
125
  }
115
126
 
@@ -125,4 +136,4 @@ var _default = Simctl;
125
136
  exports.default = _default;require('source-map-support').install();
126
137
 
127
138
 
128
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zaW1jdGwuanMiXSwibmFtZXMiOlsiU0lNQ1RMX0VOVl9QUkVGSVgiLCJERUZBVUxUX09QVFMiLCJ4Y3J1biIsInBhdGgiLCJleGVjVGltZW91dCIsIkRFRkFVTFRfRVhFQ19USU1FT1VUIiwibG9nRXJyb3JzIiwiU2ltY3RsIiwiY29uc3RydWN0b3IiLCJvcHRzIiwiXyIsImNsb25lRGVlcCIsImRlZmF1bHRzRGVlcCIsImtleSIsImtleXMiLCJfdWRpZCIsImlzTmlsIiwidWRpZCIsInZhbHVlIiwicmVxdWlyZVVkaWQiLCJjb21tYW5kTmFtZSIsIkVycm9yIiwicmVxdWlyZVhjcnVuIiwiWENSVU5fQklOQVJZIiwiZSIsImV4ZWMiLCJzdWJjb21tYW5kIiwiYXJncyIsImVudiIsImFzeW5jaHJvbm91cyIsImVuY29kaW5nIiwiZGVmYXVsdHMiLCJtYXBLZXlzIiwic3RhcnRzV2l0aCIsInByb2Nlc3MiLCJleGVjT3B0cyIsInRpbWVvdXQiLCJTdWJQcm9jZXNzIiwic3RkZXJyIiwibXNnIiwidHJpbSIsImxvZyIsImRlYnVnIiwiTE9HX1BSRUZJWCIsIm1lc3NhZ2UiLCJmbk5hbWUiLCJmbiIsInRvUGFpcnMiLCJzdWJjb21tYW5kcyIsInByb3RvdHlwZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUdBOztBQUVBLE1BQU1BLGlCQUFpQixHQUFHLGVBQTFCO0FBQ0EsTUFBTUMsWUFBWSxHQUFHO0FBQ25CQyxFQUFBQSxLQUFLLEVBQUU7QUFDTEMsSUFBQUEsSUFBSSxFQUFFO0FBREQsR0FEWTtBQUluQkMsRUFBQUEsV0FBVyxFQUFFQyw2QkFKTTtBQUtuQkMsRUFBQUEsU0FBUyxFQUFFO0FBTFEsQ0FBckI7O0FBeUNBLE1BQU1DLE1BQU4sQ0FBYTtBQUlYQyxFQUFBQSxXQUFXLENBQUVDLElBQUksR0FBRyxFQUFULEVBQWE7QUFDdEJBLElBQUFBLElBQUksR0FBR0MsZ0JBQUVDLFNBQUYsQ0FBWUYsSUFBWixDQUFQOztBQUNBQyxvQkFBRUUsWUFBRixDQUFlSCxJQUFmLEVBQXFCUixZQUFyQjs7QUFDQSxTQUFLLE1BQU1ZLEdBQVgsSUFBa0JILGdCQUFFSSxJQUFGLENBQU9iLFlBQVAsQ0FBbEIsRUFBd0M7QUFDdEMsV0FBS1ksR0FBTCxJQUFZSixJQUFJLENBQUNJLEdBQUQsQ0FBaEI7QUFDRDs7QUFDRCxTQUFLRSxLQUFMLEdBQWFMLGdCQUFFTSxLQUFGLENBQVFQLElBQUksQ0FBQ1EsSUFBYixJQUFxQixJQUFyQixHQUE0QlIsSUFBSSxDQUFDUSxJQUE5QztBQUNEOztBQUVELE1BQUlBLElBQUosQ0FBVUMsS0FBVixFQUFpQjtBQUNmLFNBQUtILEtBQUwsR0FBYUcsS0FBYjtBQUNEOztBQUVELE1BQUlELElBQUosR0FBWTtBQUNWLFdBQU8sS0FBS0YsS0FBWjtBQUNEOztBQUVESSxFQUFBQSxXQUFXLENBQUVDLFdBQVcsR0FBRyxJQUFoQixFQUFzQjtBQUMvQixRQUFJLENBQUMsS0FBS0gsSUFBVixFQUFnQjtBQUNkLFlBQU0sSUFBSUksS0FBSixDQUFXLGlDQUFELElBQ2JELFdBQVcsR0FBSSxRQUFPQSxXQUFZLFdBQXZCLEdBQW9DLHFCQURsQyxDQUFWLENBQU47QUFFRDs7QUFDRCxXQUFPLEtBQUtILElBQVo7QUFDRDs7QUFFRCxRQUFNSyxZQUFOLEdBQXNCO0FBQ3BCLFFBQUksQ0FBQyxLQUFLcEIsS0FBTCxDQUFXQyxJQUFoQixFQUFzQjtBQUNwQixVQUFJO0FBQ0YsYUFBS0QsS0FBTCxDQUFXQyxJQUFYLEdBQWtCLE1BQU0sb0JBQU1vQixxQkFBTixDQUF4QjtBQUNELE9BRkQsQ0FFRSxPQUFPQyxDQUFQLEVBQVU7QUFDVixjQUFNLElBQUlILEtBQUosQ0FBVyxHQUFFRSxxQkFBYSxvQ0FBaEIsR0FDYix1Q0FERyxDQUFOO0FBRUQ7QUFDRjs7QUFDRCxXQUFPLEtBQUtyQixLQUFMLENBQVdDLElBQWxCO0FBQ0Q7O0FBYUQsUUFBTXNCLElBQU4sQ0FBWUMsVUFBWixFQUF3QmpCLElBQUksR0FBRyxFQUEvQixFQUFtQztBQUNqQyxRQUFJO0FBQ0ZrQixNQUFBQSxJQUFJLEdBQUcsRUFETDtBQUVGQyxNQUFBQSxHQUFHLEdBQUcsRUFGSjtBQUdGQyxNQUFBQSxZQUFZLEdBQUcsS0FIYjtBQUlGQyxNQUFBQSxRQUpFO0FBS0Z4QixNQUFBQSxTQUFTLEdBQUc7QUFMVixRQU1BRyxJQU5KO0FBUUFrQixJQUFBQSxJQUFJLEdBQUcsQ0FBQyxRQUFELEVBQVdELFVBQVgsRUFBdUIsR0FBR0MsSUFBMUIsQ0FBUDtBQUdBQyxJQUFBQSxHQUFHLEdBQUdsQixnQkFBRXFCLFFBQUYsQ0FDSnJCLGdCQUFFc0IsT0FBRixDQUFVSixHQUFWLEVBQ0UsQ0FBQ1YsS0FBRCxFQUFRTCxHQUFSLEtBQWdCSCxnQkFBRXVCLFVBQUYsQ0FBYXBCLEdBQWIsRUFBa0JiLGlCQUFsQixJQUF1Q2EsR0FBdkMsR0FBOEMsR0FBRWIsaUJBQWtCLEdBQUVhLEdBQUksRUFEMUYsQ0FESSxFQUdKcUIsT0FBTyxDQUFDTixHQUhKLENBQU47QUFLQSxVQUFNTyxRQUFRLEdBQUc7QUFDZlAsTUFBQUEsR0FEZTtBQUVmRSxNQUFBQTtBQUZlLEtBQWpCOztBQUlBLFFBQUksQ0FBQ0QsWUFBTCxFQUFtQjtBQUNqQk0sTUFBQUEsUUFBUSxDQUFDQyxPQUFULEdBQW1CLEtBQUtoQyxXQUF4QjtBQUNEOztBQUNELFVBQU1GLEtBQUssR0FBRyxNQUFNLEtBQUtvQixZQUFMLEVBQXBCOztBQUNBLFFBQUk7QUFDRixhQUFPTyxZQUFZLEdBQUcsSUFBSVEsd0JBQUosQ0FBZW5DLEtBQWYsRUFBc0J5QixJQUF0QixFQUE0QlEsUUFBNUIsQ0FBSCxHQUEyQyxNQUFNLHdCQUFPakMsS0FBUCxFQUFjeUIsSUFBZCxFQUFvQlEsUUFBcEIsQ0FBcEU7QUFDRCxLQUZELENBRUUsT0FBT1gsQ0FBUCxFQUFVO0FBQ1YsVUFBSSxDQUFDLEtBQUtsQixTQUFOLElBQW1CLENBQUNBLFNBQXhCLEVBQW1DO0FBR2pDLGNBQU1rQixDQUFOO0FBQ0QsT0FKRCxNQUlPLElBQUlBLENBQUMsQ0FBQ2MsTUFBTixFQUFjO0FBQ25CLGNBQU1DLEdBQUcsR0FBSSxrQkFBaUJiLFVBQVcsTUFBS0YsQ0FBQyxDQUFDYyxNQUFGLENBQVNFLElBQVQsRUFBZ0IsRUFBOUQ7O0FBQ0FDLHdCQUFJQyxLQUFKLENBQVVDLGtCQUFWLEVBQXNCSixHQUF0Qjs7QUFDQSxjQUFNbEIsS0FBSyxDQUFDa0IsR0FBRCxDQUFYO0FBQ0QsT0FKTSxNQUlBO0FBQ0xFLHdCQUFJQyxLQUFKLENBQVVDLGtCQUFWLEVBQXNCbkIsQ0FBQyxDQUFDb0IsT0FBeEI7O0FBQ0EsY0FBTXBCLENBQU47QUFDRDtBQUNGO0FBQ0Y7O0FBN0ZVOzs7O0FBa0diLEtBQUssTUFBTSxDQUFDcUIsTUFBRCxFQUFTQyxFQUFULENBQVgsSUFBMkJwQyxnQkFBRXFDLE9BQUYsQ0FBVUMsY0FBVixDQUEzQixFQUFtRDtBQUNqRHpDLEVBQUFBLE1BQU0sQ0FBQzBDLFNBQVAsQ0FBaUJKLE1BQWpCLElBQTJCQyxFQUEzQjtBQUNEOztlQUVjdkMsTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgc3ViY29tbWFuZHMgZnJvbSAnLi9zdWJjb21tYW5kcy9pbmRleC5qcyc7XG5pbXBvcnQgd2hpY2ggZnJvbSAnd2hpY2gnO1xuaW1wb3J0IGxvZywgeyBMT0dfUFJFRklYIH0gZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IHtcbiAgREVGQVVMVF9FWEVDX1RJTUVPVVQsIFhDUlVOX0JJTkFSWSxcbn0gZnJvbSAnLi9oZWxwZXJzJztcbmltcG9ydCB7IGV4ZWMgYXMgdHBFeGVjLCBTdWJQcm9jZXNzIH0gZnJvbSAndGVlbl9wcm9jZXNzJztcblxuY29uc3QgU0lNQ1RMX0VOVl9QUkVGSVggPSAnU0lNQ1RMX0NISUxEXyc7XG5jb25zdCBERUZBVUxUX09QVFMgPSB7XG4gIHhjcnVuOiB7XG4gICAgcGF0aDogbnVsbCxcbiAgfSxcbiAgZXhlY1RpbWVvdXQ6IERFRkFVTFRfRVhFQ19USU1FT1VULFxuICBsb2dFcnJvcnM6IHRydWUsXG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IEV4ZWNPcHRzXG4gKiBAcHJvcGVydHkge0FycmF5LjxzdHJpbmc+fSBhcmdzIFtbXV0gLSBUaGUgbGlzdCBvZiBhZGRpdGlvbmFsIHN1YmNvbW1hbmQgYXJndW1lbnRzLlxuICogSXQncyBlbXB0eSBieSBkZWZhdWx0LlxuICogQHByb3BlcnR5IHtPYmplY3R9IGVudiBbe31dIC0gRW52aXJvbm1lbnQgdmFyaWFibGVzIG1hcHBpbmcuIEFsbCB0aGVzZSB2YXJpYWJsZXNcbiAqIHdpbGwgYmUgcGFzc2VkIFNpbXVsYXRvciBhbmQgdXNlZCBpbiB0aGUgZXhlY3V0aW5nIGZ1bmN0aW9uLlxuICogQHByb3BlcnR5IHtib29sZWFufSBsb2dFcnJvcnMgW3RydWVdIC0gU2V0IGl0IHRvIF9mYWxzZV8gdG8gdGhyb3cgZXhlY3V0aW9uIGVycm9yc1xuICogaW1tZWRpYXRlbHkgd2l0aG91dCBsb2dnaW5nIGFueSBhZGRpdGlvbmFsIGluZm9ybWF0aW9uLlxuICogQHByb3BlcnR5IHtib29sZWFufSBhc3luY2hyb25vdXMgW2ZhbHNlXSAtIFdoZXRoZXIgdG8gZXhlY3V0ZSB0aGUgZ2l2ZW4gY29tbWFuZFxuICogJ3N5bmNocm9ub3VzbHknIG9yICdhc3luY2hyb25vdXNseScuIEFmZmVjdHMgdGhlIHJldHVybmVkIHJlc3VsdCBvZiB0aGUgZnVuY3Rpb24uXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IGVuY29kaW5nIC0gRXhwbGljaXRseSBzZXRzIHN0cmVhbXMgZW5jb2RpbmcgZm9yIHRoZSBleGVjdXRlZFxuICogY29tbWFuZCBpbnB1dCBhbmQgb3V0cHV0cy5cbiAqL1xuXG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gU2ltY3RsT3B0c1xuICogQHByb3BlcnR5IHs/T2JqZWN0fSB4Y3J1biAtIFRoZSB4Y3J1biBwcm9wZXJ0aWVzLiBDdXJyZW50bHkgb25seSBvbmUgcHJvcGVydHlcbiAqIGlzIHN1cHBvcnRlZCwgd2hpY2ggaXMgYHBhdGhgIGFuZCBpdCBieSBkZWZhdWx0IGNvbnRhaW5zIGBudWxsYCwgd2hpY2ggZW5mb3JjZXNcbiAqIHRoZSBpbnN0YW5jZSB0byBhdXRvbWF0aWNhbGx5IGRldGVjdCB0aGUgZnVsbCBwYXRoIHRvIGB4Y3J1bmAgdG9vbCBhbmQgdG8gdGhyb3dcbiAqIGFuIGV4Y2VwdGlvbiBpZiBpdCBjYW5ub3QgYmUgZGV0ZWN0ZWQuIElmIHRoZSBwYXRoIGlzIHNldCB1cG9uIGluc3RhbmNlIGNyZWF0aW9uXG4gKiB0aGVuIGl0IGlzIGdvaW5nIHRvIGJlIHVzZWQgYnkgYGV4ZWNgIGFuZCBubyBhdXRvZGV0ZWN0aW9uIHdpbGwgaGFwcGVuLlxuICogQHByb3BlcnR5IHs/bnVtYmVyfSBleGVjVGltZW91dCBbNjAwMDAwXSAtIFRoZSBtYXhpbXVtIG51bWJlciBvZiBtaXVsbGlzZWNvbmRzXG4gKiB0byB3YWl0IGZvciBzaW5nbGUgc3luY2hyb25vdXMgeGNydW4gY29tbWFuZC5cbiAqIEBwcm9wZXJ0eSB7P2Jvb2xlYW59IGxvZ0Vycm9ycyBbdHJ1ZV0gLSBXaGV0aGVyIHRvIHdpcmUgeGNydW4gZXJyb3IgbWVzc2FnZXNcbiAqIGludG8gZGVidWcgbG9nIGJlZm9yZSB0aHJvd2luZyB0aGVtLlxuICogQHByb3BlcnR5IHs/c3RyaW5nfSB1ZGlkIFtudWxsXSAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY3VycmVudCBkZXZpY2UsIHdoaWNoIGlzXG4gKiBnb2luZyB0byBiZSBpbXBsaWN0bHkgcGFzc2VkIHRvIGFsbCBtZXRob2RzLCB3aGljaCByZXF1aXJlIGl0LiBJdCBjYW4gZWl0aGVyIGJlIHNldFxuICogdXBvbiBpbnN0YW5jZSBjcmVhdGlvbiBpZiBpdCBpcyBhbHJlYWR5IGtub3duIGluIGRhdm5jZSBvciBsYXRlciB3aGVuL2lmIG5lZWRlZCB2aWEgdGhlXG4gKiBjb3JyZXNwb25kaW5nIGluc3RhbmNlIHNldHRlci5cbiAqL1xuXG5cbmNsYXNzIFNpbWN0bCB7XG4gIC8qKlxuICAgKiBAcGFyYW0gez9TaW1jdGxPcHRzfSBvcHRzXG4gICAqL1xuICBjb25zdHJ1Y3RvciAob3B0cyA9IHt9KSB7XG4gICAgb3B0cyA9IF8uY2xvbmVEZWVwKG9wdHMpO1xuICAgIF8uZGVmYXVsdHNEZWVwKG9wdHMsIERFRkFVTFRfT1BUUyk7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgXy5rZXlzKERFRkFVTFRfT1BUUykpIHtcbiAgICAgIHRoaXNba2V5XSA9IG9wdHNba2V5XTtcbiAgICB9XG4gICAgdGhpcy5fdWRpZCA9IF8uaXNOaWwob3B0cy51ZGlkKSA/IG51bGwgOiBvcHRzLnVkaWQ7XG4gIH1cblxuICBzZXQgdWRpZCAodmFsdWUpIHtcbiAgICB0aGlzLl91ZGlkID0gdmFsdWU7XG4gIH1cblxuICBnZXQgdWRpZCAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3VkaWQ7XG4gIH1cblxuICByZXF1aXJlVWRpZCAoY29tbWFuZE5hbWUgPSBudWxsKSB7XG4gICAgaWYgKCF0aGlzLnVkaWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdWRpZCBpcyByZXF1aXJlZCB0byBiZSBzZXQgZm9yIGAgK1xuICAgICAgICAoY29tbWFuZE5hbWUgPyBgdGhlICcke2NvbW1hbmROYW1lfScgY29tbWFuZGAgOiAndGhpcyBzaW1jdGwgY29tbWFuZCcpKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudWRpZDtcbiAgfVxuXG4gIGFzeW5jIHJlcXVpcmVYY3J1biAoKSB7XG4gICAgaWYgKCF0aGlzLnhjcnVuLnBhdGgpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMueGNydW4ucGF0aCA9IGF3YWl0IHdoaWNoKFhDUlVOX0JJTkFSWSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgJHtYQ1JVTl9CSU5BUll9IHRvb2wgaGFzIG5vdCBiZWVuIGZvdW5kIGluIFBBVEguIGAgK1xuICAgICAgICAgIGBBcmUgWGNvZGUgZGV2ZWxvcGVycyB0b29scyBpbnN0YWxsZWQ/YCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnhjcnVuLnBhdGg7XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZSB0aGUgcGFydGljdWxhciBzaW1jdGwgY29tbWFuZC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN1YmNvbW1hbmQgLSBPbmUgb2YgYXZhaWxhYmxlIHNpbWN0bCBzdWJjb21tYW5kcy5cbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICBFeGVjdXRlIGB4Y3J1biBzaW1jdGxgIGluIFRlcm1pbmFsIHRvIHNlZSB0aGUgZnVsbCBsaXN0XG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgb2YgYXZhaWxhYmxlIHN1YmNvbW1hbmRzLlxuICAgKiBAcGFyYW0gez9FeGVjT3B0c30gb3B0c1xuICAgKiBAcmV0dXJuIHtFeGVjUmVzdWx0fFN1YlByb2Nlc3N9IEVpdGhlciB0aGUgcmVzdWx0IG9mIHRlZW4gcHJvY2VzcydzIGBleGVjYCBvclxuICAgKiBgU3ViUHJvY2Vzc2AgaW5zdGFuY2UgZGVwZW5kaW5nIG9mIGBvcHRzLmFzeW5jaHJvbm91c2AgdmFsdWUuXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgc2ltY3RsIHN1YmNvbW1hbmQgY29tbWFuZCByZXR1cm5zIG5vbi16ZXJvIHJldHVybiBjb2RlLlxuICAgKi9cbiAgYXN5bmMgZXhlYyAoc3ViY29tbWFuZCwgb3B0cyA9IHt9KSB7XG4gICAgbGV0IHtcbiAgICAgIGFyZ3MgPSBbXSxcbiAgICAgIGVudiA9IHt9LFxuICAgICAgYXN5bmNocm9ub3VzID0gZmFsc2UsXG4gICAgICBlbmNvZGluZyxcbiAgICAgIGxvZ0Vycm9ycyA9IHRydWUsXG4gICAgfSA9IG9wdHM7XG4gICAgLy8gcnVuIGEgcGFydGljdWxhciBzaW1jdGwgY29tbWFuZFxuICAgIGFyZ3MgPSBbJ3NpbWN0bCcsIHN1YmNvbW1hbmQsIC4uLmFyZ3NdO1xuICAgIC8vIFByZWZpeCBhbGwgcGFzc2VkIGluIGVudmlyb25tZW50IHZhcmlhYmxlcyB3aXRoICdTSU1DVExfQ0hJTERfJywgc2ltY3RsXG4gICAgLy8gd2lsbCB0aGVuIHBhc3MgdGhlc2UgdG8gdGhlIGNoaWxkIChzcGF3bmVkKSBwcm9jZXNzLlxuICAgIGVudiA9IF8uZGVmYXVsdHMoXG4gICAgICBfLm1hcEtleXMoZW52LFxuICAgICAgICAodmFsdWUsIGtleSkgPT4gXy5zdGFydHNXaXRoKGtleSwgU0lNQ1RMX0VOVl9QUkVGSVgpID8ga2V5IDogYCR7U0lNQ1RMX0VOVl9QUkVGSVh9JHtrZXl9YCksXG4gICAgICBwcm9jZXNzLmVudik7XG5cbiAgICBjb25zdCBleGVjT3B0cyA9IHtcbiAgICAgIGVudixcbiAgICAgIGVuY29kaW5nLFxuICAgIH07XG4gICAgaWYgKCFhc3luY2hyb25vdXMpIHtcbiAgICAgIGV4ZWNPcHRzLnRpbWVvdXQgPSB0aGlzLmV4ZWNUaW1lb3V0O1xuICAgIH1cbiAgICBjb25zdCB4Y3J1biA9IGF3YWl0IHRoaXMucmVxdWlyZVhjcnVuKCk7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhc3luY2hyb25vdXMgPyBuZXcgU3ViUHJvY2Vzcyh4Y3J1biwgYXJncywgZXhlY09wdHMpIDogYXdhaXQgdHBFeGVjKHhjcnVuLCBhcmdzLCBleGVjT3B0cyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKCF0aGlzLmxvZ0Vycm9ycyB8fCAhbG9nRXJyb3JzKSB7XG4gICAgICAgIC8vIGlmIHdlIGRvbid0IHdhbnQgdG8gc2VlIHRoZSBlcnJvcnMsIGp1c3QgdGhyb3cgYW5kIGFsbG93IHRoZSBjYWxsaW5nXG4gICAgICAgIC8vIGNvZGUgZG8gd2hhdCBpdCB3YW50c1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfSBlbHNlIGlmIChlLnN0ZGVycikge1xuICAgICAgICBjb25zdCBtc2cgPSBgRXJyb3IgcnVubmluZyAnJHtzdWJjb21tYW5kfSc6ICR7ZS5zdGRlcnIudHJpbSgpfWA7XG4gICAgICAgIGxvZy5kZWJ1ZyhMT0dfUFJFRklYLCBtc2cpO1xuICAgICAgICB0aHJvdyBFcnJvcihtc2cpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9nLmRlYnVnKExPR19QUkVGSVgsIGUubWVzc2FnZSk7XG4gICAgICAgIHRocm93IGU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG5cblxuLy8gYWRkIGFsbCB0aGUgc3ViY29tbWFuZHMgdG8gdGhlIFNpbWN0bCBwcm90b3R5cGVcbmZvciAoY29uc3QgW2ZuTmFtZSwgZm5dIG9mIF8udG9QYWlycyhzdWJjb21tYW5kcykpIHtcbiAgU2ltY3RsLnByb3RvdHlwZVtmbk5hbWVdID0gZm47XG59XG5cbmV4cG9ydCBkZWZhdWx0IFNpbWN0bDtcbmV4cG9ydCB7IFNpbWN0bCB9OyJdLCJmaWxlIjoibGliL3NpbWN0bC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLiJ9
139
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zaW1jdGwuanMiXSwibmFtZXMiOlsiU0lNQ1RMX0VOVl9QUkVGSVgiLCJERUZBVUxUX09QVFMiLCJ4Y3J1biIsInBhdGgiLCJleGVjVGltZW91dCIsIkRFRkFVTFRfRVhFQ19USU1FT1VUIiwibG9nRXJyb3JzIiwiU2ltY3RsIiwiY29uc3RydWN0b3IiLCJvcHRzIiwiXyIsImNsb25lRGVlcCIsImRlZmF1bHRzRGVlcCIsImtleSIsImtleXMiLCJfdWRpZCIsImlzTmlsIiwidWRpZCIsIl9kZXZpY2VzU2V0UGF0aCIsImRldmljZXNTZXRQYXRoIiwidmFsdWUiLCJyZXF1aXJlVWRpZCIsImNvbW1hbmROYW1lIiwiRXJyb3IiLCJyZXF1aXJlWGNydW4iLCJ4Y3J1bkJpbmFyeSIsImUiLCJleGVjIiwic3ViY29tbWFuZCIsImFyZ3MiLCJlbnYiLCJhc3luY2hyb25vdXMiLCJlbmNvZGluZyIsImRlZmF1bHRzIiwibWFwS2V5cyIsInN0YXJ0c1dpdGgiLCJwcm9jZXNzIiwiZXhlY09wdHMiLCJ0aW1lb3V0IiwiU3ViUHJvY2VzcyIsInN0ZGVyciIsIm1zZyIsInRyaW0iLCJsb2ciLCJkZWJ1ZyIsIkxPR19QUkVGSVgiLCJtZXNzYWdlIiwiZm5OYW1lIiwiZm4iLCJ0b1BhaXJzIiwic3ViY29tbWFuZHMiLCJwcm90b3R5cGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0E7Ozs7OztBQUVBLE1BQU1BLGlCQUFpQixHQUFHLGVBQTFCO0FBQ0EsTUFBTUMsWUFBWSxHQUFHO0FBQ25CQyxFQUFBQSxLQUFLLEVBQUU7QUFDTEMsSUFBQUEsSUFBSSxFQUFFO0FBREQsR0FEWTtBQUluQkMsRUFBQUEsV0FBVyxFQUFFQyw2QkFKTTtBQUtuQkMsRUFBQUEsU0FBUyxFQUFFO0FBTFEsQ0FBckI7O0FBMkNBLE1BQU1DLE1BQU4sQ0FBYTtBQUlYQyxFQUFBQSxXQUFXLENBQUVDLElBQUksR0FBRyxFQUFULEVB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QUFDakJNLE1BQUFBLFFBQVEsQ0FBQ0MsT0FBVCxHQUFtQixLQUFLbEMsV0FBeEI7QUFDRDs7QUFDRCxVQUFNRixLQUFLLEdBQUcsTUFBTSxLQUFLc0IsWUFBTCxFQUFwQjs7QUFDQSxRQUFJO0FBQ0YsYUFBT08sWUFBWSxHQUFHLElBQUlRLHdCQUFKLENBQWVyQyxLQUFmLEVBQXNCMkIsSUFBdEIsRUFBNEJRLFFBQTVCLENBQUgsR0FBMkMsTUFBTSx3QkFBT25DLEtBQVAsRUFBYzJCLElBQWQsRUFBb0JRLFFBQXBCLENBQXBFO0FBQ0QsS0FGRCxDQUVFLE9BQU9YLENBQVAsRUFBVTtBQUNWLFVBQUksQ0FBQyxLQUFLcEIsU0FBTixJQUFtQixDQUFDQSxTQUF4QixFQUFtQyxDQUdsQyxDQUhELE1BR08sSUFBSW9CLENBQUMsQ0FBQ2MsTUFBTixFQUFjO0FBQ25CLGNBQU1DLEdBQUcsR0FBSSxrQkFBaUJiLFVBQVcsTUFBS0YsQ0FBQyxDQUFDYyxNQUFGLENBQVNFLElBQVQsRUFBZ0IsRUFBOUQ7O0FBQ0FDLHdCQUFJQyxLQUFKLENBQVVDLGtCQUFWLEVBQXNCSixHQUF0Qjs7QUFDQWYsUUFBQUEsQ0FBQyxDQUFDb0IsT0FBRixHQUFZTCxHQUFaO0FBQ0QsT0FKTSxNQUlBO0FBQ0xFLHdCQUFJQyxLQUFKLENBQVVDLGtCQUFWLEVBQXNCbkIsQ0FBQyxDQUFDb0IsT0FBeEI7QUFDRDs7QUFDRCxZQUFNcEIsQ0FBTjtBQUNEO0FBQ0Y7O0FBM0dVOzs7O0FBZ0hiLEtBQUssTUFBTSxDQUFDcUIsTUFBRCxFQUFTQyxFQUFULENBQVgsSUFBMkJ0QyxnQkFBRXVDLE9BQUYsQ0FBVUMsY0FBVixDQUEzQixFQUFtRDtBQUNqRDNDLEVBQUFBLE1BQU0sQ0FBQzRDLFNBQVAsQ0FBaUJKLE1BQWpCLElBQTJCQyxFQUEzQjtBQUNEOztlQUVjekMsTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgc3ViY29tbWFuZHMgZnJvbSAnLi9zdWJjb21tYW5kcy9pbmRleC5qcyc7XG5pbXBvcnQgd2hpY2ggZnJvbSAnd2hpY2gnO1xuaW1wb3J0IGxvZywgeyBMT0dfUFJFRklYIH0gZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IHtcbiAgREVGQVVMVF9FWEVDX1RJTUVPVVQsIGdldFhjcnVuQmluYXJ5LFxufSBmcm9tICcuL2hlbHBlcnMnO1xuaW1wb3J0IHsgZXhlYyBhcyB0cEV4ZWMsIFN1YlByb2Nlc3MgfSBmcm9tICd0ZWVuX3Byb2Nlc3MnO1xuXG5jb25zdCBTSU1DVExfRU5WX1BSRUZJWCA9ICdTSU1DVExfQ0hJTERfJztcbmNvbnN0IERFRkFVTFRfT1BUUyA9IHtcbiAgeGNydW46IHtcbiAgICBwYXRoOiBudWxsLFxuICB9LFxuICBleGVjVGltZW91dDogREVGQVVMVF9FWEVDX1RJTUVPVVQsXG4gIGxvZ0Vycm9yczogdHJ1ZSxcbn07XG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gRXhlY09wdHNcbiAqIEBwcm9wZXJ0eSB7QXJyYXkuPHN0cmluZz59IGFyZ3MgW1tdXSAtIFRoZSBsaXN0IG9mIGFkZGl0aW9uYWwgc3ViY29tbWFuZCBhcmd1bWVudHMuXG4gKiBJdCdzIGVtcHR5IGJ5IGRlZmF1bHQuXG4gKiBAcHJvcGVydHkge09iamVjdH0gZW52IFt7fV0gLSBFbnZpcm9ubWVudCB2YXJpYWJsZXMgbWFwcGluZy4gQWxsIHRoZXNlIHZhcmlhYmxlc1xuICogd2lsbCBiZSBwYXNzZWQgU2ltdWxhdG9yIGFuZCB1c2VkIGluIHRoZSBleGVjdXRpbmcgZnVuY3Rpb24uXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGxvZ0Vycm9ycyBbdHJ1ZV0gLSBTZXQgaXQgdG8gX2ZhbHNlXyB0byB0aHJvdyBleGVjdXRpb24gZXJyb3JzXG4gKiBpbW1lZGlhdGVseSB3aXRob3V0IGxvZ2dpbmcgYW55IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24uXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGFzeW5jaHJvbm91cyBbZmFsc2VdIC0gV2hldGhlciB0byBleGVjdXRlIHRoZSBnaXZlbiBjb21tYW5kXG4gKiAnc3luY2hyb25vdXNseScgb3IgJ2FzeW5jaHJvbm91c2x5Jy4gQWZmZWN0cyB0aGUgcmV0dXJuZWQgcmVzdWx0IG9mIHRoZSBmdW5jdGlvbi5cbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gZW5jb2RpbmcgLSBFeHBsaWNpdGx5IHNldHMgc3RyZWFtcyBlbmNvZGluZyBmb3IgdGhlIGV4ZWN1dGVkXG4gKiBjb21tYW5kIGlucHV0IGFuZCBvdXRwdXRzLlxuICovXG5cblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBTaW1jdGxPcHRzXG4gKiBAcHJvcGVydHkgez9PYmplY3R9IHhjcnVuIC0gVGhlIHhjcnVuIHByb3BlcnRpZXMuIEN1cnJlbnRseSBvbmx5IG9uZSBwcm9wZXJ0eVxuICogaXMgc3VwcG9ydGVkLCB3aGljaCBpcyBgcGF0aGAgYW5kIGl0IGJ5IGRlZmF1bHQgY29udGFpbnMgYG51bGxgLCB3aGljaCBlbmZvcmNlc1xuICogdGhlIGluc3RhbmNlIHRvIGF1dG9tYXRpY2FsbHkgZGV0ZWN0IHRoZSBmdWxsIHBhdGggdG8gYHhjcnVuYCB0b29sIGFuZCB0byB0aHJvd1xuICogYW4gZXhjZXB0aW9uIGlmIGl0IGNhbm5vdCBiZSBkZXRlY3RlZC4gSWYgdGhlIHBhdGggaXMgc2V0IHVwb24gaW5zdGFuY2UgY3JlYXRpb25cbiAqIHRoZW4gaXQgaXMgZ29pbmcgdG8gYmUgdXNlZCBieSBgZXhlY2AgYW5kIG5vIGF1dG9kZXRlY3Rpb24gd2lsbCBoYXBwZW4uXG4gKiBAcHJvcGVydHkgez9udW1iZXJ9IGV4ZWNUaW1lb3V0IFs2MDAwMDBdIC0gVGhlIG1heGltdW0gbnVtYmVyIG9mIG1pbGxpc2Vjb25kc1xuICogdG8gd2FpdCBmb3Igc2luZ2xlIHN5bmNocm9ub3VzIHhjcnVuIGNvbW1hbmQuXG4gKiBAcHJvcGVydHkgez9ib29sZWFufSBsb2dFcnJvcnMgW3RydWVdIC0gV2hldGhlciB0byB3aXJlIHhjcnVuIGVycm9yIG1lc3NhZ2VzXG4gKiBpbnRvIGRlYnVnIGxvZyBiZWZvcmUgdGhyb3dpbmcgdGhlbS5cbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gdWRpZCBbbnVsbF0gLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGN1cnJlbnQgZGV2aWNlLCB3aGljaCBpc1xuICogZ29pbmcgdG8gYmUgaW1wbGljaXRseSBwYXNzZWQgdG8gYWxsIG1ldGhvZHMsIHdoaWNoIHJlcXVpcmUgaXQuIEl0IGNhbiBlaXRoZXIgYmUgc2V0XG4gKiB1cG9uIGluc3RhbmNlIGNyZWF0aW9uIGlmIGl0IGlzIGFscmVhZHkga25vd24gaW4gYWR2YW5jZSBvciBsYXRlciB3aGVuL2lmIG5lZWRlZCB2aWEgdGhlXG4gKiBjb3JyZXNwb25kaW5nIGluc3RhbmNlIHNldHRlci5cbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gZGV2aWNlc1NldFBhdGggLSBGdWxsIHBhdGggdG8gdGhlIHNldCBvZiBkZXZpY2VzIHRoYXQgeW91IHdhbnQgdG8gbWFuYWdlLlxuICogQnkgZGVmYXVsdCB0aGlzIHBhdGggdXN1YWxseSBlcXVhbHMgdG8gfi9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL0RldmljZXNcbiAqL1xuXG5cbmNsYXNzIFNpbWN0bCB7XG4gIC8qKlxuICAgKiBAcGFyYW0gez9TaW1jdGxPcHRzfSBvcHRzXG4gICAqL1xuICBjb25zdHJ1Y3RvciAob3B0cyA9IHt9KSB7XG4gICAgb3B0cyA9IF8uY2xvbmVEZWVwKG9wdHMpO1xuICAgIF8uZGVmYXVsdHNEZWVwKG9wdHMsIERFRkFVTFRfT1BUUyk7XG4gICAgZm9yIChjb25zdCBrZXkgb2YgXy5rZXlzKERFRkFVTFRfT1BUUykpIHtcbiAgICAgIHRoaXNba2V5XSA9IG9wdHNba2V5XTtcbiAgICB9XG4gICAgdGhpcy5fdWRpZCA9IF8uaXNOaWwob3B0cy51ZGlkKSA/IG51bGwgOiBvcHRzLnVkaWQ7XG4gICAgdGhpcy5fZGV2aWNlc1NldFBhdGggPSBfLmlzTmlsKG9wdHMuZGV2aWNlc1NldFBhdGgpID8gbnVsbCA6IG9wdHMuZGV2aWNlc1NldFBhdGg7XG4gIH1cblxuICBzZXQgdWRpZCAodmFsdWUpIHtcbiAgICB0aGlzLl91ZGlkID0gdmFsdWU7XG4gIH1cblxuICBnZXQgdWRpZCAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3VkaWQ7XG4gIH1cblxuICBzZXQgZGV2aWNlc1NldFBhdGggKHZhbHVlKSB7XG4gICAgdGhpcy5fZGV2aWNlc1NldFBhdGggPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCBkZXZpY2VzU2V0UGF0aCAoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RldmljZXNTZXRQYXRoO1xuICB9XG5cbiAgcmVxdWlyZVVkaWQgKGNvbW1hbmROYW1lID0gbnVsbCkge1xuICAgIGlmICghdGhpcy51ZGlkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHVkaWQgaXMgcmVxdWlyZWQgdG8gYmUgc2V0IGZvciBgICtcbiAgICAgICAgKGNvbW1hbmROYW1lID8gYHRoZSAnJHtjb21tYW5kTmFtZX0nIGNvbW1hbmRgIDogJ3RoaXMgc2ltY3RsIGNvbW1hbmQnKSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnVkaWQ7XG4gIH1cblxuICBhc3luYyByZXF1aXJlWGNydW4gKCkge1xuICAgIGNvbnN0IHhjcnVuQmluYXJ5ID0gZ2V0WGNydW5CaW5hcnkoKTtcblxuICAgIGlmICghdGhpcy54Y3J1bi5wYXRoKSB7XG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLnhjcnVuLnBhdGggPSBhd2FpdCB3aGljaCh4Y3J1bkJpbmFyeSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgJHt4Y3J1bkJpbmFyeX0gdG9vbCBoYXMgbm90IGJlZW4gZm91bmQgaW4gUEFUSC4gYCArXG4gICAgICAgICAgYEFyZSBYY29kZSBkZXZlbG9wZXJzIHRvb2xzIGluc3RhbGxlZD9gKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHRoaXMueGNydW4ucGF0aDtcbiAgfVxuXG4gIC8qKlxuICAgKiBFeGVjdXRlIHRoZSBwYXJ0aWN1bGFyIHNpbWN0bCBjb21tYW5kLlxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gc3ViY29tbWFuZCAtIE9uZSBvZiBhdmFpbGFibGUgc2ltY3RsIHN1YmNvbW1hbmRzLlxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIEV4ZWN1dGUgYHhjcnVuIHNpbWN0bGAgaW4gVGVybWluYWwgdG8gc2VlIHRoZSBmdWxsIGxpc3RcbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICBvZiBhdmFpbGFibGUgc3ViY29tbWFuZHMuXG4gICAqIEBwYXJhbSB7P0V4ZWNPcHRzfSBvcHRzXG4gICAqIEByZXR1cm4ge0V4ZWNSZXN1bHR8U3ViUHJvY2Vzc30gRWl0aGVyIHRoZSByZXN1bHQgb2YgdGVlbiBwcm9jZXNzJ3MgYGV4ZWNgIG9yXG4gICAqIGBTdWJQcm9jZXNzYCBpbnN0YW5jZSBkZXBlbmRpbmcgb2YgYG9wdHMuYXN5bmNocm9ub3VzYCB2YWx1ZS5cbiAgICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBzaW1jdGwgc3ViY29tbWFuZCBjb21tYW5kIHJldHVybnMgbm9uLXplcm8gcmV0dXJuIGNvZGUuXG4gICAqL1xuICBhc3luYyBleGVjIChzdWJjb21tYW5kLCBvcHRzID0ge30pIHtcbiAgICBsZXQge1xuICAgICAgYXJncyA9IFtdLFxuICAgICAgZW52ID0ge30sXG4gICAgICBhc3luY2hyb25vdXMgPSBmYWxzZSxcbiAgICAgIGVuY29kaW5nLFxuICAgICAgbG9nRXJyb3JzID0gdHJ1ZSxcbiAgICB9ID0gb3B0cztcbiAgICAvLyBydW4gYSBwYXJ0aWN1bGFyIHNpbWN0bCBjb21tYW5kXG4gICAgYXJncyA9IFsnc2ltY3RsJyxcbiAgICAgIC4uLih0aGlzLmRldmljZXNTZXRQYXRoID8gWyctLXNldCcsIHRoaXMuZGV2aWNlc1NldFBhdGhdIDogW10pLFxuICAgICAgc3ViY29tbWFuZCxcbiAgICAgIC4uLmFyZ3NcbiAgICBdO1xuICAgIC8vIFByZWZpeCBhbGwgcGFzc2VkIGluIGVudmlyb25tZW50IHZhcmlhYmxlcyB3aXRoICdTSU1DVExfQ0hJTERfJywgc2ltY3RsXG4gICAgLy8gd2lsbCB0aGVuIHBhc3MgdGhlc2UgdG8gdGhlIGNoaWxkIChzcGF3bmVkKSBwcm9jZXNzLlxuICAgIGVudiA9IF8uZGVmYXVsdHMoXG4gICAgICBfLm1hcEtleXMoZW52LFxuICAgICAgICAodmFsdWUsIGtleSkgPT4gXy5zdGFydHNXaXRoKGtleSwgU0lNQ1RMX0VOVl9QUkVGSVgpID8ga2V5IDogYCR7U0lNQ1RMX0VOVl9QUkVGSVh9JHtrZXl9YCksXG4gICAgICBwcm9jZXNzLmVudik7XG5cbiAgICBjb25zdCBleGVjT3B0cyA9IHtcbiAgICAgIGVudixcbiAgICAgIGVuY29kaW5nLFxuICAgIH07XG4gICAgaWYgKCFhc3luY2hyb25vdXMpIHtcbiAgICAgIGV4ZWNPcHRzLnRpbWVvdXQgPSB0aGlzLmV4ZWNUaW1lb3V0O1xuICAgIH1cbiAgICBjb25zdCB4Y3J1biA9IGF3YWl0IHRoaXMucmVxdWlyZVhjcnVuKCk7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhc3luY2hyb25vdXMgPyBuZXcgU3ViUHJvY2Vzcyh4Y3J1biwgYXJncywgZXhlY09wdHMpIDogYXdhaXQgdHBFeGVjKHhjcnVuLCBhcmdzLCBleGVjT3B0cyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKCF0aGlzLmxvZ0Vycm9ycyB8fCAhbG9nRXJyb3JzKSB7XG4gICAgICAgIC8vIGlmIHdlIGRvbid0IHdhbnQgdG8gc2VlIHRoZSBlcnJvcnMsIGp1c3QgdGhyb3cgYW5kIGFsbG93IHRoZSBjYWxsaW5nXG4gICAgICAgIC8vIGNvZGUgZG8gd2hhdCBpdCB3YW50c1xuICAgICAgfSBlbHNlIGlmIChlLnN0ZGVycikge1xuICAgICAgICBjb25zdCBtc2cgPSBgRXJyb3IgcnVubmluZyAnJHtzdWJjb21tYW5kfSc6ICR7ZS5zdGRlcnIudHJpbSgpfWA7XG4gICAgICAgIGxvZy5kZWJ1ZyhMT0dfUFJFRklYLCBtc2cpO1xuICAgICAgICBlLm1lc3NhZ2UgPSBtc2c7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsb2cuZGVidWcoTE9HX1BSRUZJWCwgZS5tZXNzYWdlKTtcbiAgICAgIH1cbiAgICAgIHRocm93IGU7XG4gICAgfVxuICB9XG59XG5cblxuLy8gYWRkIGFsbCB0aGUgc3ViY29tbWFuZHMgdG8gdGhlIFNpbWN0bCBwcm90b3R5cGVcbmZvciAoY29uc3QgW2ZuTmFtZSwgZm5dIG9mIF8udG9QYWlycyhzdWJjb21tYW5kcykpIHtcbiAgU2ltY3RsLnByb3RvdHlwZVtmbk5hbWVdID0gZm47XG59XG5cbmV4cG9ydCBkZWZhdWx0IFNpbWN0bDtcbmV4cG9ydCB7IFNpbWN0bCB9O1xuIl0sImZpbGUiOiJsaWIvc2ltY3RsLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uIn0=
@@ -1,7 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
-
5
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
4
 
7
5
  Object.defineProperty(exports, "__esModule", {
@@ -15,6 +13,10 @@ var _lodash = _interopRequireDefault(require("lodash"));
15
13
 
16
14
  var _logger = _interopRequireWildcard(require("../logger"));
17
15
 
16
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
+
18
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
+
18
20
  const commands = {};
19
21
 
20
22
  commands.bootDevice = async function bootDevice() {
@@ -35,4 +37,4 @@ var _default = commands;
35
37
  exports.default = _default;require('source-map-support').install();
36
38
 
37
39
 
38
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zdWJjb21tYW5kcy9ib290LmpzIl0sIm5hbWVzIjpbImNvbW1hbmRzIiwiYm9vdERldmljZSIsImV4ZWMiLCJhcmdzIiwicmVxdWlyZVVkaWQiLCJlIiwiXyIsImluY2x1ZGVzIiwibWVzc2FnZSIsImxvZyIsImRlYnVnIiwiTE9HX1BSRUZJWCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUdBLE1BQU1BLFFBQVEsR0FBRyxFQUFqQjs7QUFTQUEsUUFBUSxDQUFDQyxVQUFULEdBQXNCLGVBQWVBLFVBQWYsR0FBNkI7QUFDakQsTUFBSTtBQUNGLFVBQU0sS0FBS0MsSUFBTCxDQUFVLE1BQVYsRUFBa0I7QUFDdEJDLE1BQUFBLElBQUksRUFBRSxDQUFDLEtBQUtDLFdBQUwsQ0FBaUIsTUFBakIsQ0FBRDtBQURnQixLQUFsQixDQUFOO0FBR0QsR0FKRCxDQUlFLE9BQU9DLENBQVAsRUFBVTtBQUNWLFFBQUlDLGdCQUFFQyxRQUFGLENBQVdGLENBQUMsQ0FBQ0csT0FBYixFQUFzQixnREFBdEIsQ0FBSixFQUE2RTtBQUMzRSxZQUFNSCxDQUFOO0FBQ0Q7O0FBQ0RJLG9CQUFJQyxLQUFKLENBQVVDLGtCQUFWLEVBQXVCLGlEQUF2QjtBQUNEO0FBQ0YsQ0FYRDs7ZUFhZVgsUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgbG9nLCB7IExPR19QUkVGSVggfSBmcm9tICcuLi9sb2dnZXInO1xuXG5cbmNvbnN0IGNvbW1hbmRzID0ge307XG5cbi8qKlxuICogQm9vdCB0aGUgcGFydGljdWxhciBTaW11bGF0b3IgaWYgaXQgaXMgbm90IHJ1bm5pbmcuXG4gKlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBjb3JyZXNwb25kaW5nIHNpbWN0bCBzdWJjb21tYW5kIGNvbW1hbmRcbiAqICAgICAgICAgICAgICAgICByZXR1cm5zIG5vbi16ZXJvIHJldHVybiBjb2RlLlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBgdWRpZGAgaW5zdGFuY2UgcHJvcGVydHkgaXMgdW5zZXRcbiAqL1xuY29tbWFuZHMuYm9vdERldmljZSA9IGFzeW5jIGZ1bmN0aW9uIGJvb3REZXZpY2UgKCkge1xuICB0cnkge1xuICAgIGF3YWl0IHRoaXMuZXhlYygnYm9vdCcsIHtcbiAgICAgIGFyZ3M6IFt0aGlzLnJlcXVpcmVVZGlkKCdib290JyldXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAoXy5pbmNsdWRlcyhlLm1lc3NhZ2UsICdVbmFibGUgdG8gYm9vdCBkZXZpY2UgaW4gY3VycmVudCBzdGF0ZTogQm9vdGVkJykpIHtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICAgIGxvZy5kZWJ1ZyhMT0dfUFJFRklYLCBgU2ltdWxhdG9yIGFscmVhZHkgaW4gJ0Jvb3RlZCcgc3RhdGUuIENvbnRpbnVpbmdgKTtcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwiZmlsZSI6ImxpYi9zdWJjb21tYW5kcy9ib290LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
40
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zdWJjb21tYW5kcy9ib290LmpzIl0sIm5hbWVzIjpbImNvbW1hbmRzIiwiYm9vdERldmljZSIsImV4ZWMiLCJhcmdzIiwicmVxdWlyZVVkaWQiLCJlIiwiXyIsImluY2x1ZGVzIiwibWVzc2FnZSIsImxvZyIsImRlYnVnIiwiTE9HX1BSRUZJWCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7Ozs7O0FBR0EsTUFBTUEsUUFBUSxHQUFHLEVBQWpCOztBQVNBQSxRQUFRLENBQUNDLFVBQVQsR0FBc0IsZUFBZUEsVUFBZixHQUE2QjtBQUNqRCxNQUFJO0FBQ0YsVUFBTSxLQUFLQyxJQUFMLENBQVUsTUFBVixFQUFrQjtBQUN0QkMsTUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBS0MsV0FBTCxDQUFpQixNQUFqQixDQUFEO0FBRGdCLEtBQWxCLENBQU47QUFHRCxHQUpELENBSUUsT0FBT0MsQ0FBUCxFQUFVO0FBQ1YsUUFBSUMsZ0JBQUVDLFFBQUYsQ0FBV0YsQ0FBQyxDQUFDRyxPQUFiLEVBQXNCLGdEQUF0QixDQUFKLEVBQTZFO0FBQzNFLFlBQU1ILENBQU47QUFDRDs7QUFDREksb0JBQUlDLEtBQUosQ0FBVUMsa0JBQVYsRUFBdUIsaURBQXZCO0FBQ0Q7QUFDRixDQVhEOztlQWFlWCxRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBsb2csIHsgTE9HX1BSRUZJWCB9IGZyb20gJy4uL2xvZ2dlcic7XG5cblxuY29uc3QgY29tbWFuZHMgPSB7fTtcblxuLyoqXG4gKiBCb290IHRoZSBwYXJ0aWN1bGFyIFNpbXVsYXRvciBpZiBpdCBpcyBub3QgcnVubmluZy5cbiAqXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIGNvcnJlc3BvbmRpbmcgc2ltY3RsIHN1YmNvbW1hbmQgY29tbWFuZFxuICogICAgICAgICAgICAgICAgIHJldHVybnMgbm9uLXplcm8gcmV0dXJuIGNvZGUuXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIGB1ZGlkYCBpbnN0YW5jZSBwcm9wZXJ0eSBpcyB1bnNldFxuICovXG5jb21tYW5kcy5ib290RGV2aWNlID0gYXN5bmMgZnVuY3Rpb24gYm9vdERldmljZSAoKSB7XG4gIHRyeSB7XG4gICAgYXdhaXQgdGhpcy5leGVjKCdib290Jywge1xuICAgICAgYXJnczogW3RoaXMucmVxdWlyZVVkaWQoJ2Jvb3QnKV1cbiAgICB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGlmIChfLmluY2x1ZGVzKGUubWVzc2FnZSwgJ1VuYWJsZSB0byBib290IGRldmljZSBpbiBjdXJyZW50IHN0YXRlOiBCb290ZWQnKSkge1xuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gICAgbG9nLmRlYnVnKExPR19QUkVGSVgsIGBTaW11bGF0b3IgYWxyZWFkeSBpbiAnQm9vdGVkJyBzdGF0ZS4gQ29udGludWluZ2ApO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjb21tYW5kcztcbiJdLCJmaWxlIjoibGliL3N1YmNvbW1hbmRzL2Jvb3QuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4ifQ==
@@ -21,15 +21,22 @@ commands.startBootMonitor = async function startBootMonitor(opts = {}) {
21
21
  onWaitingDataMigration,
22
22
  onWaitingSystemApp,
23
23
  onFinished,
24
- onError
24
+ onError,
25
+ shouldPreboot
25
26
  } = opts;
26
27
  const udid = this.requireUdid('bootstatus');
27
28
  let status = '';
28
29
  let isBootingFinished = false;
29
30
  let error = null;
30
31
  let timeoutHandler = null;
32
+ const args = [udid];
33
+
34
+ if (shouldPreboot) {
35
+ args.push('-b');
36
+ }
37
+
31
38
  const bootMonitor = await this.exec('bootstatus', {
32
- args: [udid],
39
+ args,
33
40
  asynchronous: true
34
41
  });
35
42
  bootMonitor.on('output', (stdout, stderr) => {
@@ -105,4 +112,4 @@ var _default = commands;
105
112
  exports.default = _default;require('source-map-support').install();
106
113
 
107
114
 
108
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zdWJjb21tYW5kcy9ib290c3RhdHVzLmpzIl0sIm5hbWVzIjpbImNvbW1hbmRzIiwic3RhcnRCb290TW9uaXRvciIsIm9wdHMiLCJ0aW1lb3V0Iiwib25XYWl0aW5nRGF0YU1pZ3JhdGlvbiIsIm9uV2FpdGluZ1N5c3RlbUFwcCIsIm9uRmluaXNoZWQiLCJvbkVycm9yIiwidWRpZCIsInJlcXVpcmVVZGlkIiwic3RhdHVzIiwiaXNCb290aW5nRmluaXNoZWQiLCJlcnJvciIsInRpbWVvdXRIYW5kbGVyIiwiYm9vdE1vbml0b3IiLCJleGVjIiwiYXJncyIsImFzeW5jaHJvbm91cyIsIm9uIiwic3Rkb3V0Iiwic3RkZXJyIiwiaW5jbHVkZXMiLCJjb2RlIiwic2lnbmFsIiwiY2xlYXJUaW1lb3V0IiwiRXJyb3IiLCJzdGFydCIsInN0b3BNb25pdG9yIiwiaXNSdW5uaW5nIiwic3RvcCIsImUiLCJsb2ciLCJ3YXJuIiwibWVzc2FnZSIsInByb2Nlc3MiLCJocnRpbWUiLCJzZXRUaW1lb3V0Iiwid2FpdE1zIiwiaW50ZXJ2YWxNcyIsImVyciIsInNlY29uZHMiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBR0EsTUFBTUEsUUFBUSxHQUFHLEVBQWpCOztBQXdCQUEsUUFBUSxDQUFDQyxnQkFBVCxHQUE0QixlQUFlQSxnQkFBZixDQUFpQ0MsSUFBSSxHQUFHLEVBQXhDLEVBQTRDO0FBQ3RFLFFBQU07QUFDSkMsSUFBQUEsT0FBTyxHQUFHLE1BRE47QUFFSkMsSUFBQUEsc0JBRkk7QUFHSkMsSUFBQUEsa0JBSEk7QUFJSkMsSUFBQUEsVUFKSTtBQUtKQyxJQUFBQTtBQUxJLE1BTUZMLElBTko7QUFPQSxRQUFNTSxJQUFJLEdBQUcsS0FBS0MsV0FBTCxDQUFpQixZQUFqQixDQUFiO0FBRUEsTUFBSUMsTUFBTSxHQUFHLEVBQWI7QUFDQSxNQUFJQyxpQkFBaUIsR0FBRyxLQUF4QjtBQUNBLE1BQUlDLEtBQUssR0FBRyxJQUFaO0FBQ0EsTUFBSUMsY0FBYyxHQUFHLElBQXJCO0FBQ0EsUUFBTUMsV0FBVyxHQUFHLE1BQU0sS0FBS0MsSUFBTCxDQUFVLFlBQVYsRUFBd0I7QUFDaERDLElBQUFBLElBQUksRUFBRSxDQUFDUixJQUFELENBRDBDO0FBRWhEUyxJQUFBQSxZQUFZLEVBQUU7QUFGa0MsR0FBeEIsQ0FBMUI7QUFJQUgsRUFBQUEsV0FBVyxDQUFDSSxFQUFaLENBQWUsUUFBZixFQUF5QixDQUFDQyxNQUFELEVBQVNDLE1BQVQsS0FBb0I7QUFDM0NWLElBQUFBLE1BQU0sSUFBSVMsTUFBTSxJQUFJQyxNQUFwQjs7QUFDQSxRQUFJRCxNQUFKLEVBQVk7QUFDVixVQUFJQSxNQUFNLENBQUNFLFFBQVAsQ0FBZ0IsMkJBQWhCLEtBQWdEakIsc0JBQXBELEVBQTRFO0FBQzFFQSxRQUFBQSxzQkFBc0I7QUFDdkIsT0FGRCxNQUVPLElBQUllLE1BQU0sQ0FBQ0UsUUFBUCxDQUFnQix1QkFBaEIsS0FBNENoQixrQkFBaEQsRUFBb0U7QUFDekVBLFFBQUFBLGtCQUFrQjtBQUNuQjtBQUNGO0FBQ0YsR0FURDtBQVVBUyxFQUFBQSxXQUFXLENBQUNJLEVBQVosQ0FBZSxNQUFmLEVBQXVCLENBQUNJLElBQUQsRUFBT0MsTUFBUCxLQUFrQjtBQUN2QyxRQUFJVixjQUFKLEVBQW9CO0FBQ2xCVyxNQUFBQSxZQUFZLENBQUNYLGNBQUQsQ0FBWjtBQUNEOztBQUNELFFBQUlTLElBQUksS0FBSyxDQUFiLEVBQWdCO0FBQ2QsVUFBSWhCLFVBQUosRUFBZ0I7QUFDZEEsUUFBQUEsVUFBVTtBQUNYOztBQUNESyxNQUFBQSxpQkFBaUIsR0FBRyxJQUFwQjtBQUNELEtBTEQsTUFLTztBQUNMRCxNQUFBQSxNQUFNLEdBQUdBLE1BQU0sSUFBSWEsTUFBbkI7QUFDQVgsTUFBQUEsS0FBSyxHQUFHLElBQUlhLEtBQUosQ0FBVWYsTUFBVixDQUFSOztBQUNBLFVBQUlILE9BQUosRUFBYTtBQUNYQSxRQUFBQSxPQUFPLENBQUNLLEtBQUQsQ0FBUDtBQUNEO0FBQ0Y7QUFDRixHQWhCRDtBQWlCQSxRQUFNRSxXQUFXLENBQUNZLEtBQVosQ0FBa0IsQ0FBbEIsQ0FBTjs7QUFDQSxRQUFNQyxXQUFXLEdBQUcsWUFBWTtBQUM5QixRQUFJYixXQUFXLENBQUNjLFNBQWhCLEVBQTJCO0FBQ3pCLFVBQUk7QUFDRixjQUFNZCxXQUFXLENBQUNlLElBQVosRUFBTjtBQUNELE9BRkQsQ0FFRSxPQUFPQyxDQUFQLEVBQVU7QUFDVkMsd0JBQUlDLElBQUosQ0FBU0YsQ0FBQyxDQUFDRyxPQUFYO0FBQ0Q7QUFDRjtBQUNGLEdBUkQ7O0FBU0EsUUFBTVAsS0FBSyxHQUFHUSxPQUFPLENBQUNDLE1BQVIsRUFBZDs7QUFDQSxNQUFJN0IsVUFBSixFQUFnQjtBQUNkTyxJQUFBQSxjQUFjLEdBQUd1QixVQUFVLENBQUNULFdBQUQsRUFBY3hCLE9BQWQsQ0FBM0I7QUFDRCxHQUZELE1BRU87QUFDTCxRQUFJO0FBQ0YsWUFBTSxnQ0FBaUIsTUFBTTtBQUMzQixZQUFJUyxLQUFKLEVBQVc7QUFDVCxnQkFBTUEsS0FBTjtBQUNEOztBQUNELGVBQU9ELGlCQUFQO0FBQ0QsT0FMSyxFQUtIO0FBQUMwQixRQUFBQSxNQUFNLEVBQUVsQyxPQUFUO0FBQWtCbUMsUUFBQUEsVUFBVSxFQUFFO0FBQTlCLE9BTEcsQ0FBTjtBQU1ELEtBUEQsQ0FPRSxPQUFPQyxHQUFQLEVBQVk7QUFDWixZQUFNWixXQUFXLEVBQWpCO0FBQ0EsWUFBTSxDQUFDYSxPQUFELElBQVlOLE9BQU8sQ0FBQ0MsTUFBUixDQUFlVCxLQUFmLENBQWxCO0FBQ0EsWUFBTSxJQUFJRCxLQUFKLENBQ0gsaUJBQWdCakIsSUFBSyx1Q0FBc0NnQyxPQUFRLEtBQXBFLEdBQ0Msb0JBQW1COUIsTUFBTyxFQUZ2QixDQUFOO0FBR0Q7QUFDRjs7QUFDRCxTQUFPSSxXQUFQO0FBQ0QsQ0EzRUQ7O2VBNkVlZCxRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGxvZyBmcm9tICcuLi9sb2dnZXInO1xuaW1wb3J0IHsgd2FpdEZvckNvbmRpdGlvbiB9IGZyb20gJ2FzeW5jYm94JztcblxuXG5jb25zdCBjb21tYW5kcyA9IHt9O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IEJvb3RNb25pdG9yT3B0aW9uc1xuICogQHByb3BlcnR5IHs/bnVtYmVyfSB0aW1lb3V0IFsyNDAwMDBdIC0gU2ltdWxhdG9yIGJvb3RpbmcgdGltZW91dCBpbiBtcy5cbiAqIEBwcm9wZXJ0eSB7P0Z1bmN0aW9ufSBvbldhaXRpbmdEYXRhTWlncmF0aW9uIC0gVGhpcyBldmVudCBpcyBmaXJlZCB3aGVuIGRhdGEgbWlncmF0aW9uIHN0YWdlIHN0YXJ0cy5cbiAqIEBwcm9wZXJ0eSB7P0Z1bmN0aW9ufSBvbldhaXRpbmdTeXN0ZW1BcHAgLSBUaGlzIGV2ZW50IGlzIGZpcmVkIHdoZW4gc3lzdGVtIGFwcCB3YWl0IHN0YWdlIHN0YXJ0cy5cbiAqIEBwcm9wZXJ0eSB7P0Z1bmN0aW9ufSBvbkZpbmlzaGVkIC0gVGhpcyBldmVudCBpcyBmaXJlZCB3aGVuIFNpbXVsYXRvciBpcyBmdWxseSBib290ZWQuXG4gKiBAcHJvcGVydHkgez9GdW5jdGlvbn0gb25FcnJvciAtIFRoaXMgZXZlbnQgaXMgZmlyZWQgd2hlbiB0aGVyZSB3YXMgYW4gZXJyb3Igd2hpbGUgbW9uaXRvcmluZyB0aGUgYm9vdGluZyBwcm9jZXNzXG4gKiBvciB3aGVuIHRoZSB0aW1lb3V0IGhhcyBleHBpcmVkLlxuICovXG5cbi8qKlxuICogU3RhcnQgbW9uaXRvcmluZyBmb3IgYm9vdCBzdGF0dXMgb2YgdGhlIHBhcnRpY3VsYXIgU2ltdWxhdG9yLlxuICogSWYgb25GaW5pc2hlZCBwcm9wZXJ0eSBpcyBub3Qgc2V0IHRoZW4gdGhlIG1ldGhvZCB3aWxsIGJsb2NrXG4gKiB1bnRpbCBTaW11bGF0b3IgYm9vdGluZyBpcyBjb21wbGV0ZWQuXG4gKiBUaGUgbWV0aG9kIGlzIG9ubHkgYXZhaWxhYmxlIHNpbmNlIFhjb2RlOC5cbiAqXG4gKiBAcGFyYW0gez9Cb290TW9uaXRvck9wdGlvbnN9IG9wdHMgLSBNb25pdG9yaW5nIG9wdGlvbnMuXG4gKiBAcmV0dXJucyB7U3ViUHJvY2Vzc30gVGhlIGluc3RhbmNlIG9mIHRoZSBjb3JyZXNwb25kaW5nIG1vbml0b3JpbmcgcHJvY2Vzcy5cbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgU2ltdWxhdG9yIGZhaWxzIHRvIGZpbmlzaCBib290aW5nIHdpdGhpbiB0aGUgZ2l2ZW4gdGltZW91dCBhbmQgb25GaW5pc2hlZFxuICogcHJvcGVydHkgaXMgbm90IHNldC5cbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgYHVkaWRgIGluc3RhbmNlIHByb3BlcnR5IGlzIHVuc2V0XG4gKi9cbmNvbW1hbmRzLnN0YXJ0Qm9vdE1vbml0b3IgPSBhc3luYyBmdW5jdGlvbiBzdGFydEJvb3RNb25pdG9yIChvcHRzID0ge30pIHtcbiAgY29uc3Qge1xuICAgIHRpbWVvdXQgPSAyNDAwMDAsXG4gICAgb25XYWl0aW5nRGF0YU1pZ3JhdGlvbixcbiAgICBvbldhaXRpbmdTeXN0ZW1BcHAsXG4gICAgb25GaW5pc2hlZCxcbiAgICBvbkVycm9yLFxuICB9ID0gb3B0cztcbiAgY29uc3QgdWRpZCA9IHRoaXMucmVxdWlyZVVkaWQoJ2Jvb3RzdGF0dXMnKTtcblxuICBsZXQgc3RhdHVzID0gJyc7XG4gIGxldCBpc0Jvb3RpbmdGaW5pc2hlZCA9IGZhbHNlO1xuICBsZXQgZXJyb3IgPSBudWxsO1xuICBsZXQgdGltZW91dEhhbmRsZXIgPSBudWxsO1xuICBjb25zdCBib290TW9uaXRvciA9IGF3YWl0IHRoaXMuZXhlYygnYm9vdHN0YXR1cycsIHtcbiAgICBhcmdzOiBbdWRpZF0sXG4gICAgYXN5bmNocm9ub3VzOiB0cnVlLFxuICB9KTtcbiAgYm9vdE1vbml0b3Iub24oJ291dHB1dCcsIChzdGRvdXQsIHN0ZGVycikgPT4ge1xuICAgIHN0YXR1cyArPSBzdGRvdXQgfHwgc3RkZXJyO1xuICAgIGlmIChzdGRvdXQpIHtcbiAgICAgIGlmIChzdGRvdXQuaW5jbHVkZXMoJ1dhaXRpbmcgb24gRGF0YSBNaWdyYXRpb24nKSAmJiBvbldhaXRpbmdEYXRhTWlncmF0aW9uKSB7XG4gICAgICAgIG9uV2FpdGluZ0RhdGFNaWdyYXRpb24oKTtcbiAgICAgIH0gZWxzZSBpZiAoc3Rkb3V0LmluY2x1ZGVzKCdXYWl0aW5nIG9uIFN5c3RlbSBBcHAnKSAmJiBvbldhaXRpbmdTeXN0ZW1BcHApIHtcbiAgICAgICAgb25XYWl0aW5nU3lzdGVtQXBwKCk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbiAgYm9vdE1vbml0b3Iub24oJ2V4aXQnLCAoY29kZSwgc2lnbmFsKSA9PiB7XG4gICAgaWYgKHRpbWVvdXRIYW5kbGVyKSB7XG4gICAgICBjbGVhclRpbWVvdXQodGltZW91dEhhbmRsZXIpO1xuICAgIH1cbiAgICBpZiAoY29kZSA9PT0gMCkge1xuICAgICAgaWYgKG9uRmluaXNoZWQpIHtcbiAgICAgICAgb25GaW5pc2hlZCgpO1xuICAgICAgfVxuICAgICAgaXNCb290aW5nRmluaXNoZWQgPSB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICBzdGF0dXMgPSBzdGF0dXMgfHwgc2lnbmFsO1xuICAgICAgZXJyb3IgPSBuZXcgRXJyb3Ioc3RhdHVzKTtcbiAgICAgIGlmIChvbkVycm9yKSB7XG4gICAgICAgIG9uRXJyb3IoZXJyb3IpO1xuICAgICAgfVxuICAgIH1cbiAgfSk7XG4gIGF3YWl0IGJvb3RNb25pdG9yLnN0YXJ0KDApO1xuICBjb25zdCBzdG9wTW9uaXRvciA9IGFzeW5jICgpID0+IHtcbiAgICBpZiAoYm9vdE1vbml0b3IuaXNSdW5uaW5nKSB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCBib290TW9uaXRvci5zdG9wKCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIGxvZy53YXJuKGUubWVzc2FnZSk7XG4gICAgICB9XG4gICAgfVxuICB9O1xuICBjb25zdCBzdGFydCA9IHByb2Nlc3MuaHJ0aW1lKCk7XG4gIGlmIChvbkZpbmlzaGVkKSB7XG4gICAgdGltZW91dEhhbmRsZXIgPSBzZXRUaW1lb3V0KHN0b3BNb25pdG9yLCB0aW1lb3V0KTtcbiAgfSBlbHNlIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgd2FpdEZvckNvbmRpdGlvbigoKSA9PiB7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgIHRocm93IGVycm9yO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBpc0Jvb3RpbmdGaW5pc2hlZDtcbiAgICAgIH0sIHt3YWl0TXM6IHRpbWVvdXQsIGludGVydmFsTXM6IDUwMH0pO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgYXdhaXQgc3RvcE1vbml0b3IoKTtcbiAgICAgIGNvbnN0IFtzZWNvbmRzXSA9IHByb2Nlc3MuaHJ0aW1lKHN0YXJ0KTtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFRoZSBzaW11bGF0b3IgJHt1ZGlkfSBoYXMgZmFpbGVkIHRvIGZpbmlzaCBib290aW5nIGFmdGVyICR7c2Vjb25kc31zLiBgICtcbiAgICAgICAgYE9yaWdpbmFsIHN0YXR1czogJHtzdGF0dXN9YCk7XG4gICAgfVxuICB9XG4gIHJldHVybiBib290TW9uaXRvcjtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNvbW1hbmRzO1xuIl0sImZpbGUiOiJsaWIvc3ViY29tbWFuZHMvYm9vdHN0YXR1cy5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLiJ9
115
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zdWJjb21tYW5kcy9ib290c3RhdHVzLmpzIl0sIm5hbWVzIjpbImNvbW1hbmRzIiwic3RhcnRCb290TW9uaXRvciIsIm9wdHMiLCJ0aW1lb3V0Iiwib25XYWl0aW5nRGF0YU1pZ3JhdGlvbiIsIm9uV2FpdGluZ1N5c3RlbUFwcCIsIm9uRmluaXNoZWQiLCJvbkVycm9yIiwic2hvdWxkUHJlYm9vdCIsInVkaWQiLCJyZXF1aXJlVWRpZCIsInN0YXR1cyIsImlzQm9vdGluZ0ZpbmlzaGVkIiwiZXJyb3IiLCJ0aW1lb3V0SGFuZGxlciIsImFyZ3MiLCJwdXNoIiwiYm9vdE1vbml0b3IiLCJleGVjIiwiYXN5bmNocm9ub3VzIiwib24iLCJzdGRvdXQiLCJzdGRlcnIiLCJpbmNsdWRlcyIsImNvZGUiLCJzaWduYWwiLCJjbGVhclRpbWVvdXQiLCJFcnJvciIsInN0YXJ0Iiwic3RvcE1vbml0b3IiLCJpc1J1bm5pbmciLCJzdG9wIiwiZSIsImxvZyIsIndhcm4iLCJtZXNzYWdlIiwicHJvY2VzcyIsImhydGltZSIsInNldFRpbWVvdXQiLCJ3YWl0TXMiLCJpbnRlcnZhbE1zIiwiZXJyIiwic2Vjb25kcyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFHQSxNQUFNQSxRQUFRLEdBQUcsRUFBakI7O0FBMEJBQSxRQUFRLENBQUNDLGdCQUFULEdBQTRCLGVBQWVBLGdCQUFmLENBQWlDQyxJQUFJLEdBQUcsRUFBeEMsRUFBNEM7QUFDdEUsUUFBTTtBQUNKQyxJQUFBQSxPQUFPLEdBQUcsTUFETjtBQUVKQyxJQUFBQSxzQkFGSTtBQUdKQyxJQUFBQSxrQkFISTtBQUlKQyxJQUFBQSxVQUpJO0FBS0pDLElBQUFBLE9BTEk7QUFNSkMsSUFBQUE7QUFOSSxNQU9GTixJQVBKO0FBUUEsUUFBTU8sSUFBSSxHQUFHLEtBQUtDLFdBQUwsQ0FBaUIsWUFBakIsQ0FBYjtBQUVBLE1BQUlDLE1BQU0sR0FBRyxFQUFiO0FBQ0EsTUFBSUMsaUJBQWlCLEdB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R0Q7QUFDRjs7QUFDRCxTQUFPTSxXQUFQO0FBQ0QsQ0FoRkQ7O2VBa0ZlakIsUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBsb2cgZnJvbSAnLi4vbG9nZ2VyJztcbmltcG9ydCB7IHdhaXRGb3JDb25kaXRpb24gfSBmcm9tICdhc3luY2JveCc7XG5cblxuY29uc3QgY29tbWFuZHMgPSB7fTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBCb290TW9uaXRvck9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7P251bWJlcn0gdGltZW91dCBbMjQwMDAwXSAtIFNpbXVsYXRvciBib290aW5nIHRpbWVvdXQgaW4gbXMuXG4gKiBAcHJvcGVydHkgez9GdW5jdGlvbn0gb25XYWl0aW5nRGF0YU1pZ3JhdGlvbiAtIFRoaXMgZXZlbnQgaXMgZmlyZWQgd2hlbiBkYXRhIG1pZ3JhdGlvbiBzdGFnZSBzdGFydHMuXG4gKiBAcHJvcGVydHkgez9GdW5jdGlvbn0gb25XYWl0aW5nU3lzdGVtQXBwIC0gVGhpcyBldmVudCBpcyBmaXJlZCB3aGVuIHN5c3RlbSBhcHAgd2FpdCBzdGFnZSBzdGFydHMuXG4gKiBAcHJvcGVydHkgez9GdW5jdGlvbn0gb25GaW5pc2hlZCAtIFRoaXMgZXZlbnQgaXMgZmlyZWQgd2hlbiBTaW11bGF0b3IgaXMgZnVsbHkgYm9vdGVkLlxuICogQHByb3BlcnR5IHs/RnVuY3Rpb259IG9uRXJyb3IgLSBUaGlzIGV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlcmUgd2FzIGFuIGVycm9yIHdoaWxlIG1vbml0b3JpbmcgdGhlIGJvb3RpbmcgcHJvY2Vzc1xuICogb3Igd2hlbiB0aGUgdGltZW91dCBoYXMgZXhwaXJlZC5cbiAqIEBwcm9wZXJ0eSB7P2Jvb2xlYW59IHNob3VsZFByZWJvb3QgW2ZhbHNlXSBXaGV0aGVyIHRvIHByZWJvb3QgdGhlIFNpbXVsYXRvclxuICogaWYgdGhpcyBjb21tYW5kIGlzIGNhbGxlZCBhbmQgaXQgaXMgbm90IGFscmVhZHkgaW4gYm9vdGVkIG9yIGJvb3Rpbmcgc3RhdGUuXG4gKi9cblxuLyoqXG4gKiBTdGFydCBtb25pdG9yaW5nIGZvciBib290IHN0YXR1cyBvZiB0aGUgcGFydGljdWxhciBTaW11bGF0b3IuXG4gKiBJZiBvbkZpbmlzaGVkIHByb3BlcnR5IGlzIG5vdCBzZXQgdGhlbiB0aGUgbWV0aG9kIHdpbGwgYmxvY2tcbiAqIHVudGlsIFNpbXVsYXRvciBib290aW5nIGlzIGNvbXBsZXRlZC5cbiAqIFRoZSBtZXRob2QgaXMgb25seSBhdmFpbGFibGUgc2luY2UgWGNvZGU4LlxuICpcbiAqIEBwYXJhbSB7P0Jvb3RNb25pdG9yT3B0aW9uc30gb3B0cyAtIE1vbml0b3Jpbmcgb3B0aW9ucy5cbiAqIEByZXR1cm5zIHtTdWJQcm9jZXNzfSBUaGUgaW5zdGFuY2Ugb2YgdGhlIGNvcnJlc3BvbmRpbmcgbW9uaXRvcmluZyBwcm9jZXNzLlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBTaW11bGF0b3IgZmFpbHMgdG8gZmluaXNoIGJvb3Rpbmcgd2l0aGluIHRoZSBnaXZlbiB0aW1lb3V0IGFuZCBvbkZpbmlzaGVkXG4gKiBwcm9wZXJ0eSBpcyBub3Qgc2V0LlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBgdWRpZGAgaW5zdGFuY2UgcHJvcGVydHkgaXMgdW5zZXRcbiAqL1xuY29tbWFuZHMuc3RhcnRCb290TW9uaXRvciA9IGFzeW5jIGZ1bmN0aW9uIHN0YXJ0Qm9vdE1vbml0b3IgKG9wdHMgPSB7fSkge1xuICBjb25zdCB7XG4gICAgdGltZW91dCA9IDI0MDAwMCxcbiAgICBvbldhaXRpbmdEYXRhTWlncmF0aW9uLFxuICAgIG9uV2FpdGluZ1N5c3RlbUFwcCxcbiAgICBvbkZpbmlzaGVkLFxuICAgIG9uRXJyb3IsXG4gICAgc2hvdWxkUHJlYm9vdCxcbiAgfSA9IG9wdHM7XG4gIGNvbnN0IHVkaWQgPSB0aGlzLnJlcXVpcmVVZGlkKCdib290c3RhdHVzJyk7XG5cbiAgbGV0IHN0YXR1cyA9ICcnO1xuICBsZXQgaXNCb290aW5nRmluaXNoZWQgPSBmYWxzZTtcbiAgbGV0IGVycm9yID0gbnVsbDtcbiAgbGV0IHRpbWVvdXRIYW5kbGVyID0gbnVsbDtcbiAgY29uc3QgYXJncyA9IFt1ZGlkXTtcbiAgaWYgKHNob3VsZFByZWJvb3QpIHtcbiAgICBhcmdzLnB1c2goJy1iJyk7XG4gIH1cbiAgY29uc3QgYm9vdE1vbml0b3IgPSBhd2FpdCB0aGlzLmV4ZWMoJ2Jvb3RzdGF0dXMnLCB7XG4gICAgYXJncyxcbiAgICBhc3luY2hyb25vdXM6IHRydWUsXG4gIH0pO1xuICBib290TW9uaXRvci5vbignb3V0cHV0JywgKHN0ZG91dCwgc3RkZXJyKSA9PiB7XG4gICAgc3RhdHVzICs9IHN0ZG91dCB8fCBzdGRlcnI7XG4gICAgaWYgKHN0ZG91dCkge1xuICAgICAgaWYgKHN0ZG91dC5pbmNsdWRlcygnV2FpdGluZyBvbiBEYXRhIE1pZ3JhdGlvbicpICYmIG9uV2FpdGluZ0RhdGFNaWdyYXRpb24pIHtcbiAgICAgICAgb25XYWl0aW5nRGF0YU1pZ3JhdGlvbigpO1xuICAgICAgfSBlbHNlIGlmIChzdGRvdXQuaW5jbHVkZXMoJ1dhaXRpbmcgb24gU3lzdGVtIEFwcCcpICYmIG9uV2FpdGluZ1N5c3RlbUFwcCkge1xuICAgICAgICBvbldhaXRpbmdTeXN0ZW1BcHAoKTtcbiAgICAgIH1cbiAgICB9XG4gIH0pO1xuICBib290TW9uaXRvci5vbignZXhpdCcsIChjb2RlLCBzaWduYWwpID0+IHtcbiAgICBpZiAodGltZW91dEhhbmRsZXIpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aW1lb3V0SGFuZGxlcik7XG4gICAgfVxuICAgIGlmIChjb2RlID09PSAwKSB7XG4gICAgICBpZiAob25GaW5pc2hlZCkge1xuICAgICAgICBvbkZpbmlzaGVkKCk7XG4gICAgICB9XG4gICAgICBpc0Jvb3RpbmdGaW5pc2hlZCA9IHRydWU7XG4gICAgfSBlbHNlIHtcbiAgICAgIHN0YXR1cyA9IHN0YXR1cyB8fCBzaWduYWw7XG4gICAgICBlcnJvciA9IG5ldyBFcnJvcihzdGF0dXMpO1xuICAgICAgaWYgKG9uRXJyb3IpIHtcbiAgICAgICAgb25FcnJvcihlcnJvcik7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbiAgYXdhaXQgYm9vdE1vbml0b3Iuc3RhcnQoMCk7XG4gIGNvbnN0IHN0b3BNb25pdG9yID0gYXN5bmMgKCkgPT4ge1xuICAgIGlmIChib290TW9uaXRvci5pc1J1bm5pbmcpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IGJvb3RNb25pdG9yLnN0b3AoKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgbG9nLndhcm4oZS5tZXNzYWdlKTtcbiAgICAgIH1cbiAgICB9XG4gIH07XG4gIGNvbnN0IHN0YXJ0ID0gcHJvY2Vzcy5ocnRpbWUoKTtcbiAgaWYgKG9uRmluaXNoZWQpIHtcbiAgICB0aW1lb3V0SGFuZGxlciA9IHNldFRpbWVvdXQoc3RvcE1vbml0b3IsIHRpbWVvdXQpO1xuICB9IGVsc2Uge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB3YWl0Rm9yQ29uZGl0aW9uKCgpID0+IHtcbiAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGlzQm9vdGluZ0ZpbmlzaGVkO1xuICAgICAgfSwge3dhaXRNczogdGltZW91dCwgaW50ZXJ2YWxNczogNTAwfSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBhd2FpdCBzdG9wTW9uaXRvcigpO1xuICAgICAgY29uc3QgW3NlY29uZHNdID0gcHJvY2Vzcy5ocnRpbWUoc3RhcnQpO1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgVGhlIHNpbXVsYXRvciAke3VkaWR9IGhhcyBmYWlsZWQgdG8gZmluaXNoIGJvb3RpbmcgYWZ0ZXIgJHtzZWNvbmRzfXMuIGAgK1xuICAgICAgICBgT3JpZ2luYWwgc3RhdHVzOiAke3N0YXR1c31gKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGJvb3RNb25pdG9yO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwiZmlsZSI6ImxpYi9zdWJjb21tYW5kcy9ib290c3RhdHVzLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
@@ -1,7 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
-
5
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
4
 
7
5
  Object.defineProperty(exports, "__esModule", {
@@ -19,6 +17,10 @@ var _asyncbox = require("asyncbox");
19
17
 
20
18
  var _helpers = require("../helpers");
21
19
 
20
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
+
22
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
+
22
24
  const SIM_RUNTIME_NAME_SUFFIX_IOS = 'iOS';
23
25
  const DEFAULT_CREATE_SIMULATOR_TIMEOUT = 10000;
24
26
  const commands = {};
@@ -31,7 +33,7 @@ commands.createDevice = async function createDevice(name, deviceTypeId, platform
31
33
  let runtimeIds = [];
32
34
 
33
35
  try {
34
- runtimeIds.push((await this.getRuntimeForPlatformVersionViaJson(platformVersion, platform)));
36
+ runtimeIds.push(await this.getRuntimeForPlatformVersionViaJson(platformVersion, platform));
35
37
  } catch (ign) {}
36
38
 
37
39
  if (_lodash.default.isEmpty(runtimeIds)) {
@@ -76,7 +78,7 @@ commands.createDevice = async function createDevice(name, deviceTypeId, platform
76
78
 
77
79
  const retries = parseInt(timeout / 1000, 10);
78
80
  await (0, _asyncbox.retryInterval)(retries, 1000, async () => {
79
- const devices = _lodash.default.values((await this.getDevices()));
81
+ const devices = _lodash.default.values(await this.getDevices());
80
82
 
81
83
  for (const deviceArr of _lodash.default.values(devices)) {
82
84
  for (const device of deviceArr) {
@@ -99,4 +101,4 @@ var _default = commands;
99
101
  exports.default = _default;require('source-map-support').install();
100
102
 
101
103
 
102
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zdWJjb21tYW5kcy9jcmVhdGUuanMiXSwibmFtZXMiOlsiU0lNX1JVTlRJTUVfTkFNRV9TVUZGSVhfSU9TIiwiREVGQVVMVF9DUkVBVEVfU0lNVUxBVE9SX1RJTUVPVVQiLCJjb21tYW5kcyIsImNyZWF0ZURldmljZSIsIm5hbWUiLCJkZXZpY2VUeXBlSWQiLCJwbGF0Zm9ybVZlcnNpb24iLCJvcHRzIiwicGxhdGZvcm0iLCJ0aW1lb3V0IiwicnVudGltZUlkcyIsInB1c2giLCJnZXRSdW50aW1lRm9yUGxhdGZvcm1WZXJzaW9uVmlhSnNvbiIsImlnbiIsIl8iLCJpc0VtcHR5IiwicnVudGltZUlkIiwiZ2V0UnVudGltZUZvclBsYXRmb3JtVmVyc2lvbiIsImVyciIsImxvZyIsIndhcm4iLCJwb3RlbnRpYWxSdW50aW1lSWRzIiwic3BsaXQiLCJsZW5ndGgiLCJtYXAiLCJpZCIsIlNJTV9SVU5USU1FX05BTUUiLCJyZXBsYWNlIiwidWRpZCIsImRlYnVnIiwiTE9HX1BSRUZJWCIsInN0ZG91dCIsImV4ZWMiLCJhcmdzIiwidHJpbSIsIkVycm9yIiwiam9pbiIsInJldHJpZXMiLCJwYXJzZUludCIsImRldmljZXMiLCJ2YWx1ZXMiLCJnZXREZXZpY2VzIiwiZGV2aWNlQXJyIiwiZGV2aWNlIiwic3RhdGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFHQSxNQUFNQSwyQkFBMkIsR0FBRyxLQUFwQztBQUNBLE1BQU1DLGdDQUFnQyxHQUFHLEtBQXpDO0FBRUEsTUFBTUMsUUFBUSxHQUFHLEVBQWpCOztBQXFCQUEsUUFBUSxDQUFDQyxZQUFULEdBQXdCLGVBQWVBLFlBQWYsQ0FBNkJDLElBQTdCLEVBQW1DQyxZQUFuQyxFQUFpREMsZUFBakQsRUFBa0VDLElBQUksR0FBRyxFQUF6RSxFQUE2RTtBQUNuRyxRQUFNO0FBQ0pDLElBQUFBLFFBQVEsR0FBR1IsMkJBRFA7QUFFSlMsSUFBQUEsT0FBTyxHQUFH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QkFBcEMsQ0FBTjtBQUNELFdBSEQsTUFHTztBQUVMO0FBQ0Q7QUFDRjtBQUNGO0FBQ0Y7O0FBQ0QsVUFBTSxJQUFJTyxLQUFKLENBQVcscUJBQW9CUCxJQUFLLG1CQUFwQyxDQUFOO0FBQ0QsR0FoQkssQ0FBTjtBQWtCQSxTQUFPQSxJQUFQO0FBQ0QsQ0FwRkQ7O2VBc0ZlMUIsUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgbG9nLCB7IExPR19QUkVGSVggfSBmcm9tICcuLi9sb2dnZXInO1xuaW1wb3J0IHsgcmV0cnlJbnRlcnZhbCB9IGZyb20gJ2FzeW5jYm94JztcbmltcG9ydCB7IFNJTV9SVU5USU1FX05BTUUsIG5vcm1hbGl6ZVZlcnNpb24gfSBmcm9tICcuLi9oZWxwZXJzJztcblxuXG5jb25zdCBTSU1fUlVOVElNRV9OQU1FX1NVRkZJWF9JT1MgPSAnaU9TJztcbmNvbnN0IERFRkFVTFRfQ1JFQVRFX1NJTVVMQVRPUl9USU1FT1VUID0gMTAwMDA7XG5cbmNvbnN0IGNvbW1hbmRzID0ge307XG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gU2ltQ3JlYXRpb25PcHRzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gcGxhdGZvcm0gW2lPU10gLSBQbGF0Zm9ybSBuYW1lIGluIG9yZGVyIHRvIHNwZWNpZnkgcnVudGltZSBzdWNoIGFzICdpT1MnLCAndHZPUycsICd3YXRjaE9TJ1xuICogQHByb3BlcnR5IHtudW1iZXJ9IHRpbWVvdXQgWzEwMDAwXSAtIFRoZSBtYXhpbXVtIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gd2FpdFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXQgZGV2aWNlIGNyZWF0aW9uIGlzIGNvbXBsZXRlZC5cbiAqL1xuXG4vKipcbiAqIENyZWF0ZSBTaW11bGF0b3IgZGV2aWNlIHdpdGggZ2l2ZW4gbmFtZSBmb3IgdGhlIHBhcnRpY3VsYXJcbiAqIHBsYXRmb3JtIHR5cGUgYW5kIHZlcnNpb24uXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBUaGUgZGV2aWNlIG5hbWUgdG8gYmUgY3JlYXRlZC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBkZXZpY2VUeXBlSWQgLSBEZXZpY2UgdHlwZSwgZm9yIGV4YW1wbGUgJ2lQaG9uZSA2Jy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBwbGF0Zm9ybVZlcnNpb24gLSBQbGF0Zm9ybSB2ZXJzaW9uLCBmb3IgZXhhbXBsZSAnMTAuMycuXG4gKiBAcGFyYW0gez9TaW1DcmVhdGlvbk9wdHN9IG9wdHMgLSBTaW11bGF0b3Igb3B0aW9ucyBmb3IgY3JlYXRpbmcgZGV2aWNlcy5cbiAqIEByZXR1cm4ge3N0cmluZ30gVGhlIFVESUQgb2YgdGhlIG5ld2x5IGNyZWF0ZWQgZGV2aWNlLlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBjb3JyZXNwb25kaW5nIHNpbWN0bCBzdWJjb21tYW5kIGNvbW1hbmRcbiAqICAgICAgICAgICAgICAgICByZXR1cm5zIG5vbi16ZXJvIHJldHVybiBjb2RlLlxuICovXG5jb21tYW5kcy5jcmVhdGVEZXZpY2UgPSBhc3luYyBmdW5jdGlvbiBjcmVhdGVEZXZpY2UgKG5hbWUsIGRldmljZVR5cGVJZCwgcGxhdGZvcm1WZXJzaW9uLCBvcHRzID0ge30pIHtcbiAgY29uc3Qge1xuICAgIHBsYXRmb3JtID0gU0lNX1JVTlRJTUVfTkFNRV9TVUZGSVhfSU9TLFxuICAgIHRpbWVvdXQgPSBERUZBVUxUX0NSRUFURV9TSU1VTEFUT1JfVElNRU9VVFxuICB9ID0gb3B0cztcblxuICBsZXQgcnVudGltZUlkcyA9IFtdO1xuXG4gIC8vIFRyeSBnZXR0aW5nIHJ1bnRpbWVJZCB1c2luZyBKU09OIGZsYWdcbiAgdHJ5IHtcbiAgICBydW50aW1lSWRzLnB1c2goYXdhaXQgdGhpcy5nZXRSdW50aW1lRm9yUGxhdGZvcm1WZXJzaW9uVmlhSnNvbihwbGF0Zm9ybVZlcnNpb24sIHBsYXRmb3JtKSk7XG4gIH0gY2F0Y2ggKGlnbikge31cblxuICBpZiAoXy5pc0VtcHR5KHJ1bnRpbWVJZHMpKSB7XG4gICAgLy8gYXQgZmlyc3QgbWFrZSBzdXJlIHRoYXQgdGhlIHJ1bnRpbWUgaWQgaXMgdGhlIHJpZ2h0IG9uZVxuICAgIC8vIGluIHNvbWUgdmVyc2lvbnMgb2YgWGNvZGUgaXQgd2lsbCBiZSBhIHBhdGNoIHZlcnNpb25cbiAgICBsZXQgcnVudGltZUlkO1xuICAgIHRyeSB7XG4gICAgICBydW50aW1lSWQgPSBhd2FpdCB0aGlzLmdldFJ1bnRpbWVGb3JQbGF0Zm9ybVZlcnNpb24ocGxhdGZvcm1WZXJzaW9uLCBwbGF0Zm9ybSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBsb2cud2FybihgVW5hYmxlIHRvIGZpbmQgcnVudGltZSBmb3IgaU9TICcke3BsYXRmb3JtVmVyc2lvbn0nLiBDb250aW51aW5nYCk7XG4gICAgICBydW50aW1lSWQgPSBwbGF0Zm9ybVZlcnNpb247XG4gICAgfVxuXG4gICAgLy8gZ2V0IHRoZSBwb3NzaWJsZSBydW50aW1lcywgd2hpY2ggd2lsbCBiZSBpdGVyYXRlZCBvdmVyXG5cbiAgICAvLyBzdGFydCB3aXRoIG1ham9yLW1pbm9yIHZlcnNpb25cbiAgICBsZXQgcG90ZW50aWFsUnVudGltZUlkcyA9IFtub3JtYWxpemVWZXJzaW9uKHJ1bnRpbWVJZCldO1xuICAgIGlmIChydW50aW1lSWQuc3BsaXQoJy4nKS5sZW5ndGggPT09IDMpIHtcbiAgICAgIC8vIGFkZCBwYXRjaCB2ZXJzaW9uIGlmIGl0IGV4aXN0c1xuICAgICAgcG90ZW50aWFsUnVudGltZUlkcy5wdXNoKHJ1bnRpbWVJZCk7XG4gICAgfVxuXG4gICAgLy8gYWRkIG1vZGlmaWVkIHZlcnNpb25zLCBzaW5jZSBtb2Rlcm4gWGNvZGVzIHVzZSB0aGlzLCB0aGVuIHRoZSBiYXJlXG4gICAgLy8gdmVyc2lvbnMsIHRvIGFjY29tb2RhdGUgb2xkZXIgWGNvZGVzXG4gICAgcnVudGltZUlkcy5wdXNoKFxuICAgICAgLi4uKHBvdGVudGlhbFJ1bnRpbWVJZHMubWFwKChpZCkgPT4gYCR7U0lNX1JVTlRJTUVfTkFNRX0ke3BsYXRmb3JtfS0ke2lkLnJlcGxhY2UoL1xcLi9nLCAnLScpfWApKSxcbiAgICAgIC4uLnBvdGVudGlhbFJ1bnRpbWVJZHNcbiAgICApO1xuICB9XG5cbiAgLy8gZ28gdGhyb3VnaCB0aGUgcnVudGltZSBpZHMgYW5kIHRyeSB0byBjcmVhdGUgYSBzaW11bGF0b3Igd2l0aCBlYWNoXG4gIGxldCB1ZGlkO1xuICBmb3IgKGNvbnN0IHJ1bnRpbWVJZCBvZiBydW50aW1lSWRzKSB7XG4gICAgbG9nLmRlYnVnKExPR19QUkVGSVgsXG4gICAgICBgQ3JlYXRpbmcgc2ltdWxhdG9yIHdpdGggbmFtZSAnJHtuYW1lfScsIGRldmljZSB0eXBlIGlkICcke2RldmljZVR5cGVJZH0nIGFuZCBydW50aW1lIGlkICcke3J1bnRpbWVJZH0nYCk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHtzdGRvdXR9ID0gYXdhaXQgdGhpcy5leGVjKCdjcmVhdGUnLCB7XG4gICAgICAgIGFyZ3M6IFtuYW1lLCBkZXZpY2VUeXBlSWQsIHJ1bnRpbWVJZF1cbiAgICAgIH0pO1xuICAgICAgdWRpZCA9IHN0ZG91dC50cmltKCk7XG4gICAgICBicmVhaztcbiAgICB9IGNhdGNoIChpZ24pIHtcbiAgICAgIC8vIHRoZSBlcnJvciBnZXRzIGxvZ2dlZCBpbiBgc2ltRXhlY2BcbiAgICB9XG4gIH1cblxuICBpZiAoIXVkaWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBjcmVhdGUgc2ltdWxhdG9yIHdpdGggbmFtZSAnJHtuYW1lfScsIGRldmljZSBgICtcbiAgICAgIGB0eXBlIGlkICcke2RldmljZVR5cGVJZH0nLCB3aXRoIHJ1bnRpbWUgaWRzIGAgK1xuICAgICAgYCR7cnVudGltZUlkcy5tYXAoKGlkKSA9PiBgJyR7aWR9J2ApLmpvaW4oJywgJyl9YCk7XG4gIH1cblxuICAvLyBtYWtlIHN1cmUgdGhhdCBpdCBnZXRzIG91dCBvZiB0aGUgXCJDcmVhdGluZ1wiIHN0YXRlXG4gIGNvbnN0IHJldHJpZXMgPSBwYXJzZUludCh0aW1lb3V0IC8gMTAwMCwgMTApO1xuICBhd2FpdCByZXRyeUludGVydmFsKHJldHJpZXMsIDEwMDAsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBkZXZpY2VzID0gXy52YWx1ZXMoYXdhaXQgdGhpcy5nZXREZXZpY2VzKCkpO1xuICAgIGZvciAoY29uc3QgZGV2aWNlQXJyIG9mIF8udmFsdWVzKGRldmljZXMpKSB7XG4gICAgICBmb3IgKGNvbnN0IGRldmljZSBvZiBkZXZpY2VBcnIpIHtcbiAgICAgICAgaWYgKGRldmljZS51ZGlkID09PSB1ZGlkKSB7XG4gICAgICAgICAgaWYgKGRldmljZS5zdGF0ZSA9PT0gJ0NyZWF0aW5nJykge1xuICAgICAgICAgICAgLy8gbmVlZCB0byByZXRyeVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBEZXZpY2Ugd2l0aCB1ZGlkICcke3VkaWR9JyBzdGlsbCBiZWluZyBjcmVhdGVkYCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIHN0b3AgbG9va2luZywgd2UncmUgZG9uZVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoYERldmljZSB3aXRoIHVkaWQgJyR7dWRpZH0nIG5vdCB5ZXQgY3JlYXRlZGApO1xuICB9KTtcblxuICByZXR1cm4gdWRpZDtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNvbW1hbmRzO1xuIl0sImZpbGUiOiJsaWIvc3ViY29tbWFuZHMvY3JlYXRlLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
104
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zdWJjb21tYW5kcy9jcmVhdGUuanMiXSwibmFtZXMiOlsiU0lNX1JVTlRJTUVfTkFNRV9TVUZGSVhfSU9TIiwiREVGQVVMVF9DUkVBVEVfU0lNVUxBVE9SX1RJTUVPVVQiLCJjb21tYW5kcyIsImNyZWF0ZURldmljZSIsIm5hbWUiLCJkZXZpY2VUeXBlSWQiLCJwbGF0Zm9ybVZlcnNpb24iLCJvcHRzIiwicGxhdGZvcm0iLCJ0aW1lb3V0IiwicnVudGltZUlkcyIsInB1c2giLCJnZXRSdW50aW1lRm9yUGxhdGZvcm1WZXJzaW9uVmlhSnNvbiIsImlnbiIsIl8iLCJpc0VtcHR5IiwicnVudGltZUlkIiwiZ2V0UnVudGltZUZvclBsYXRmb3JtVmVyc2lvbiIsImVyciIsImxvZyIsIndhcm4iLCJwb3RlbnRpYWxSdW50aW1lSWRzIiwic3BsaXQiLCJsZW5ndGgiLCJtYXAiLCJpZCIsIlNJTV9SVU5USU1FX05BTUUiLCJyZXBsYWNlIiwidWRpZCIsImRlYnVnIiwiTE9HX1BSRUZJWCIsInN0ZG91dCIsImV4ZWMiLCJhcmdzIiwidHJpbSIsIkVycm9yIiwiam9pbiIsInJldHJpZXMiLCJwYXJzZUludCIsImRldmljZXMiLCJ2YWx1ZXMiLCJnZXREZXZpY2VzIiwiZGV2aWNlQXJyIiwiZGV2aWNlIiwic3RhdGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7OztBQUdBLE1BQU1BLDJCQUEyQixHQUFHLEtBQXBDO0FBQ0EsTUFBTUMsZ0NBQWdDLEdBQUcsS0FBekM7QUFFQSxNQUFNQyxRQUFRLEdBQUcsRUFBakI7O0FBcUJBQSxRQUFRLENBQUNDLFlBQVQsR0FBd0IsZUFBZUEsWUFBZixDQUE2QkMsSUFBN0IsRUFBbUNDLFlBQW5DLEVBQWlEQyxlQUFqRCxFQUFrRUMsSUFBSSxHQUFHLEVBQXpFLEVBQTZFO0FBQ25HLFFBQU07QUFDSkMsSUFBQUEsUUFBUSxHQUFHUiwyQkFEUDtBQUVKUyxJQUFBQSxPQUFPLEdBQUdSO0FBRk4sTUFHRk0sSUFISjtBQUtBLE1BQUlHLFVBQVUsR0FBRyxFQUFqQjs7QUFHQSxNQUFJO0FBQ0ZBLElBQUFBLFVBQVUsQ0FBQ0MsSUFBWCxDQUFnQixNQUFNLEtBQUtDLG1DQUFMLENBQXlDTixlQUF6QyxFQUEwREUsUUFBMUQsQ0FBdEI7QUFDRCxHQUZELENBRUUsT0FBT0ssR0FBUCxFQUFZLENBQUU7O0FBRWhCLE1BQUlDLGdCQUFFQyxPQUFGLENBQVVMLFVBQVYsQ0FBSixFQUEyQjtBQUd6QixRQUFJTSxTQUFKOztBQUNBLFFBQUk7QUFDRkEsTUFBQUEsU0FBUyxHQUFHLE1BQU0sS0FBS0MsNEJBQUwsQ0FBa0NYLGVBQWxDLEVBQW1ERSxRQUFuRCxDQUFsQjtBQUNELEtBRkQsQ0FFRSxPQUFPVSxHQUFQLEVBQVk7QUFDWkMsc0JBQUlDLElBQUosQ0FBVSxtQ0FBa0NkLGVBQWdCLGVBQTVEOztBQUNBVSxNQUFBQSxTQUFTLEdBQUdWLGVBQVo7QUFDRDs7QUFLRCxRQUFJZSxtQkFBbUIsR0FBRyxDQUFDLCtCQUFpQkwsU0FBakIsQ0FBRCxDQUExQjs7QUFDQSxRQUFJQSxTQUFTLENBQUNNLEtBQVYsQ0FBZ0IsR0FBaEIsRUFBcUJDLE1BQXJCLEtBQWdDLENBQXBDLEVBQXVDO0FBRXJDRixNQUFBQSxtQkFBbUIsQ0FBQ1YsSUFBcEIsQ0FBeUJLLFNBQXpCO0FBQ0Q7O0FBSUROLElBQUFBLFVBQVUsQ0FBQ0MsSUFBWCxDQUNFLEdBQUlVLG1CQUFtQixDQUFDRyxHQUFwQixDQUF5QkMsRUFBRCxJQUFTLEdBQUVDLHlCQUFpQixHQUFFbEIsUUFBUyxJQUFHaUIsRUFBRSxDQUFDRSxPQUFILENBQVcsS0FBWCxFQUFrQixHQUFsQixDQUF1QixFQUF6RixDQUROLEVBRUUsR0FBR04sbUJBRkw7QUFJRDs7QUFHRCxNQUFJTyxJQUFKOztBQUNBLE9BQUssTUFBTVosU0FBWCxJQUF3Qk4sVUFBeEIsRUFBb0M7QUFDbENTLG9CQUFJVSxLQUFKLENBQVVDLGtCQUFWLEVBQ0csaUNBQWdDMUIsSUFBSyxzQkFBcUJDLFlBQWEscUJBQW9CVyxTQUFVLEdBRHhHOztBQUVBLFFBQUk7QUFDRixZQUFNO0FBQUNlLFFBQUFBO0FBQUQsVUFBVyxNQUFNLEtBQUtDLElBQUwsQ0FBVSxRQUFWLEVBQW9CO0FBQ3pDQyxRQUFBQSxJQUFJLEVBQUUsQ0FBQzdCLElBQUQsRUFBT0MsWUFBUCxFQUFxQlcsU0FBckI7QUFEbUMsT0FBcEIsQ0FBdkI7QUFHQVksTUFBQUEsSUFBSSxHQUFHRyxNQUFNLENBQUNHLElBQVAsRUFBUDtBQUNBO0FBQ0QsS0FORCxDQU1FLE9BQU9yQixHQUFQLEVBQVksQ0FFYjtBQUNGOztBQUVELE1BQUksQ0FBQ2UsSUFBTCxFQUFXO0FBQ1QsVUFBTSxJQUFJTyxLQUFKLENBQVcseUNBQXdDL0IsSUFBSyxZQUE5QyxHQUNiLFlBQVdDLFlBQWEsc0JBRFgsR0FFYixHQUFFSyxVQUFVLENBQUNjLEdBQVgsQ0FBZ0JDLEVBQUQsSUFBUyxJQUFHQSxFQUFHLEdBQTlCLEVBQWtDVyxJQUFsQyxDQUF1QyxJQUF2QyxDQUE2QyxFQUY1QyxDQUFOO0FBR0Q7O0FBR0QsUUFBTUMsT0FBTyxHQUFHQyxRQUFRLENBQUM3QixPQUFPLEdBQUcsSUFBWCxFQUFpQixFQUFqQixDQUF4QjtBQUNBLFFBQU0sNkJBQWM0QixPQUFkLEVBQXVCLElBQXZCLEVBQTZCLFlBQVk7QUFDN0MsVUFBTUUsT0FBTyxHQUFHekIsZ0JBQUUwQixNQUFGLENBQVMsTUFBTSxLQUFLQyxVQUFMLEVBQWYsQ0FBaEI7O0FBQ0EsU0FBSyxNQUFNQyxTQUFYLElBQXdCNUIsZ0JBQUUwQixNQUFGLENBQVNELE9BQVQsQ0FBeEIsRUFBMkM7QUFDekMsV0FBSyxNQUFNSSxNQUFYLElBQXFCRCxTQUFyQixFQUFnQztBQUM5QixZQUFJQyxNQUFNLENBQUNmLElBQVAsS0FBZ0JBLElBQXBCLEVBQTBCO0FBQ3hCLGNBQUllLE1BQU0sQ0FBQ0MsS0FBUCxLQUFpQixVQUFyQixFQUFpQztBQUUvQixrQkFBTSxJQUFJVCxLQUFKLENBQVcscUJBQW9CUCxJQUFLLHVCQUFwQyxDQUFOO0FBQ0QsV0FIRCxNQUdPO0FBRUw7QUFDRDtBQUNGO0FBQ0Y7QUFDRjs7QUFDRCxVQUFNLElBQUlPLEtBQUosQ0FBVyxxQkFBb0JQLElBQUssbUJBQXBDLENBQU47QUFDRCxHQWhCSyxDQUFOO0FBa0JBLFNBQU9BLElBQVA7QUFDRCxDQXBGRDs7ZUFzRmUxQixRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBsb2csIHsgTE9HX1BSRUZJWCB9IGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQgeyByZXRyeUludGVydmFsIH0gZnJvbSAnYXN5bmNib3gnO1xuaW1wb3J0IHsgU0lNX1JVTlRJTUVfTkFNRSwgbm9ybWFsaXplVmVyc2lvbiB9IGZyb20gJy4uL2hlbHBlcnMnO1xuXG5cbmNvbnN0IFNJTV9SVU5USU1FX05BTUVfU1VGRklYX0lPUyA9ICdpT1MnO1xuY29uc3QgREVGQVVMVF9DUkVBVEVfU0lNVUxBVE9SX1RJTUVPVVQgPSAxMDAwMDtcblxuY29uc3QgY29tbWFuZHMgPSB7fTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBTaW1DcmVhdGlvbk9wdHNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBwbGF0Zm9ybSBbaU9TXSAtIFBsYXRmb3JtIG5hbWUgaW4gb3JkZXIgdG8gc3BlY2lmeSBydW50aW1lIHN1Y2ggYXMgJ2lPUycsICd0dk9TJywgJ3dhdGNoT1MnXG4gKiBAcHJvcGVydHkge251bWJlcn0gdGltZW91dCBbMTAwMDBdIC0gVGhlIG1heGltdW0gbnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0byB3YWl0XG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdW5pdCBkZXZpY2UgY3JlYXRpb24gaXMgY29tcGxldGVkLlxuICovXG5cbi8qKlxuICogQ3JlYXRlIFNpbXVsYXRvciBkZXZpY2Ugd2l0aCBnaXZlbiBuYW1lIGZvciB0aGUgcGFydGljdWxhclxuICogcGxhdGZvcm0gdHlwZSBhbmQgdmVyc2lvbi5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gbmFtZSAtIFRoZSBkZXZpY2UgbmFtZSB0byBiZSBjcmVhdGVkLlxuICogQHBhcmFtIHtzdHJpbmd9IGRldmljZVR5cGVJZCAtIERldmljZSB0eXBlLCBmb3IgZXhhbXBsZSAnaVBob25lIDYnLlxuICogQHBhcmFtIHtzdHJpbmd9IHBsYXRmb3JtVmVyc2lvbiAtIFBsYXRmb3JtIHZlcnNpb24sIGZvciBleGFtcGxlICcxMC4zJy5cbiAqIEBwYXJhbSB7P1NpbUNyZWF0aW9uT3B0c30gb3B0cyAtIFNpbXVsYXRvciBvcHRpb25zIGZvciBjcmVhdGluZyBkZXZpY2VzLlxuICogQHJldHVybiB7c3RyaW5nfSBUaGUgVURJRCBvZiB0aGUgbmV3bHkgY3JlYXRlZCBkZXZpY2UuXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIGNvcnJlc3BvbmRpbmcgc2ltY3RsIHN1YmNvbW1hbmQgY29tbWFuZFxuICogICAgICAgICAgICAgICAgIHJldHVybnMgbm9uLXplcm8gcmV0dXJuIGNvZGUuXG4gKi9cbmNvbW1hbmRzLmNyZWF0ZURldmljZSA9IGFzeW5jIGZ1bmN0aW9uIGNyZWF0ZURldmljZSAobmFtZSwgZGV2aWNlVHlwZUlkLCBwbGF0Zm9ybVZlcnNpb24sIG9wdHMgPSB7fSkge1xuICBjb25zdCB7XG4gICAgcGxhdGZvcm0gPSBTSU1fUlVOVElNRV9OQU1FX1NVRkZJWF9JT1MsXG4gICAgdGltZW91dCA9IERFRkFVTFRfQ1JFQVRFX1NJTVVMQVRPUl9USU1FT1VUXG4gIH0gPSBvcHRzO1xuXG4gIGxldCBydW50aW1lSWRzID0gW107XG5cbiAgLy8gVHJ5IGdldHRpbmcgcnVudGltZUlkIHVzaW5nIEpTT04gZmxhZ1xuICB0cnkge1xuICAgIHJ1bnRpbWVJZHMucHVzaChhd2FpdCB0aGlzLmdldFJ1bnRpbWVGb3JQbGF0Zm9ybVZlcnNpb25WaWFKc29uKHBsYXRmb3JtVmVyc2lvbiwgcGxhdGZvcm0pKTtcbiAgfSBjYXRjaCAoaWduKSB7fVxuXG4gIGlmIChfLmlzRW1wdHkocnVudGltZUlkcykpIHtcbiAgICAvLyBhdCBmaXJzdCBtYWtlIHN1cmUgdGhhdCB0aGUgcnVudGltZSBpZCBpcyB0aGUgcmlnaHQgb25lXG4gICAgLy8gaW4gc29tZSB2ZXJzaW9ucyBvZiBYY29kZSBpdCB3aWxsIGJlIGEgcGF0Y2ggdmVyc2lvblxuICAgIGxldCBydW50aW1lSWQ7XG4gICAgdHJ5IHtcbiAgICAgIHJ1bnRpbWVJZCA9IGF3YWl0IHRoaXMuZ2V0UnVudGltZUZvclBsYXRmb3JtVmVyc2lvbihwbGF0Zm9ybVZlcnNpb24sIHBsYXRmb3JtKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIGxvZy53YXJuKGBVbmFibGUgdG8gZmluZCBydW50aW1lIGZvciBpT1MgJyR7cGxhdGZvcm1WZXJzaW9ufScuIENvbnRpbnVpbmdgKTtcbiAgICAgIHJ1bnRpbWVJZCA9IHBsYXRmb3JtVmVyc2lvbjtcbiAgICB9XG5cbiAgICAvLyBnZXQgdGhlIHBvc3NpYmxlIHJ1bnRpbWVzLCB3aGljaCB3aWxsIGJlIGl0ZXJhdGVkIG92ZXJcblxuICAgIC8vIHN0YXJ0IHdpdGggbWFqb3ItbWlub3IgdmVyc2lvblxuICAgIGxldCBwb3RlbnRpYWxSdW50aW1lSWRzID0gW25vcm1hbGl6ZVZlcnNpb24ocnVudGltZUlkKV07XG4gICAgaWYgKHJ1bnRpbWVJZC5zcGxpdCgnLicpLmxlbmd0aCA9PT0gMykge1xuICAgICAgLy8gYWRkIHBhdGNoIHZlcnNpb24gaWYgaXQgZXhpc3RzXG4gICAgICBwb3RlbnRpYWxSdW50aW1lSWRzLnB1c2gocnVudGltZUlkKTtcbiAgICB9XG5cbiAgICAvLyBhZGQgbW9kaWZpZWQgdmVyc2lvbnMsIHNpbmNlIG1vZGVybiBYY29kZXMgdXNlIHRoaXMsIHRoZW4gdGhlIGJhcmVcbiAgICAvLyB2ZXJzaW9ucywgdG8gYWNjb21vZGF0ZSBvbGRlciBYY29kZXNcbiAgICBydW50aW1lSWRzLnB1c2goXG4gICAgICAuLi4ocG90ZW50aWFsUnVudGltZUlkcy5tYXAoKGlkKSA9PiBgJHtTSU1fUlVOVElNRV9OQU1FfSR7cGxhdGZvcm19LSR7aWQucmVwbGFjZSgvXFwuL2csICctJyl9YCkpLFxuICAgICAgLi4ucG90ZW50aWFsUnVudGltZUlkc1xuICAgICk7XG4gIH1cblxuICAvLyBnbyB0aHJvdWdoIHRoZSBydW50aW1lIGlkcyBhbmQgdHJ5IHRvIGNyZWF0ZSBhIHNpbXVsYXRvciB3aXRoIGVhY2hcbiAgbGV0IHVkaWQ7XG4gIGZvciAoY29uc3QgcnVudGltZUlkIG9mIHJ1bnRpbWVJZHMpIHtcbiAgICBsb2cuZGVidWcoTE9HX1BSRUZJWCxcbiAgICAgIGBDcmVhdGluZyBzaW11bGF0b3Igd2l0aCBuYW1lICcke25hbWV9JywgZGV2aWNlIHR5cGUgaWQgJyR7ZGV2aWNlVHlwZUlkfScgYW5kIHJ1bnRpbWUgaWQgJyR7cnVudGltZUlkfSdgKTtcbiAgICB0cnkge1xuICAgICAgY29uc3Qge3N0ZG91dH0gPSBhd2FpdCB0aGlzLmV4ZWMoJ2NyZWF0ZScsIHtcbiAgICAgICAgYXJnczogW25hbWUsIGRldmljZVR5cGVJZCwgcnVudGltZUlkXVxuICAgICAgfSk7XG4gICAgICB1ZGlkID0gc3Rkb3V0LnRyaW0oKTtcbiAgICAgIGJyZWFrO1xuICAgIH0gY2F0Y2ggKGlnbikge1xuICAgICAgLy8gdGhlIGVycm9yIGdldHMgbG9nZ2VkIGluIGBzaW1FeGVjYFxuICAgIH1cbiAgfVxuXG4gIGlmICghdWRpZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IGNyZWF0ZSBzaW11bGF0b3Igd2l0aCBuYW1lICcke25hbWV9JywgZGV2aWNlIGAgK1xuICAgICAgYHR5cGUgaWQgJyR7ZGV2aWNlVHlwZUlkfScsIHdpdGggcnVudGltZSBpZHMgYCArXG4gICAgICBgJHtydW50aW1lSWRzLm1hcCgoaWQpID0+IGAnJHtpZH0nYCkuam9pbignLCAnKX1gKTtcbiAgfVxuXG4gIC8vIG1ha2Ugc3VyZSB0aGF0IGl0IGdldHMgb3V0IG9mIHRoZSBcIkNyZWF0aW5nXCIgc3RhdGVcbiAgY29uc3QgcmV0cmllcyA9IHBhcnNlSW50KHRpbWVvdXQgLyAxMDAwLCAxMCk7XG4gIGF3YWl0IHJldHJ5SW50ZXJ2YWwocmV0cmllcywgMTAwMCwgYXN5bmMgKCkgPT4ge1xuICAgIGNvbnN0IGRldmljZXMgPSBfLnZhbHVlcyhhd2FpdCB0aGlzLmdldERldmljZXMoKSk7XG4gICAgZm9yIChjb25zdCBkZXZpY2VBcnIgb2YgXy52YWx1ZXMoZGV2aWNlcykpIHtcbiAgICAgIGZvciAoY29uc3QgZGV2aWNlIG9mIGRldmljZUFycikge1xuICAgICAgICBpZiAoZGV2aWNlLnVkaWQgPT09IHVkaWQpIHtcbiAgICAgICAgICBpZiAoZGV2aWNlLnN0YXRlID09PSAnQ3JlYXRpbmcnKSB7XG4gICAgICAgICAgICAvLyBuZWVkIHRvIHJldHJ5XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYERldmljZSB3aXRoIHVkaWQgJyR7dWRpZH0nIHN0aWxsIGJlaW5nIGNyZWF0ZWRgKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gc3RvcCBsb29raW5nLCB3ZSdyZSBkb25lXG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihgRGV2aWNlIHdpdGggdWRpZCAnJHt1ZGlkfScgbm90IHlldCBjcmVhdGVkYCk7XG4gIH0pO1xuXG4gIHJldHVybiB1ZGlkO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwiZmlsZSI6ImxpYi9zdWJjb21tYW5kcy9jcmVhdGUuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4ifQ==
@@ -1,7 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
-
5
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
4
 
7
5
  Object.defineProperty(exports, "__esModule", {
@@ -17,6 +15,10 @@ var _helpers = require("../helpers");
17
15
 
18
16
  var _logger = _interopRequireWildcard(require("../logger"));
19
17
 
18
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
+
20
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
+
20
22
  const commands = {};
21
23
 
22
24
  commands.getDevicesByParsing = async function getDevicesByParsing(platform) {
@@ -196,4 +198,4 @@ var _default = commands;
196
198
  exports.default = _default;require('source-map-support').install();
197
199
 
198
200
 
199
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zdWJjb21tYW5kcy9saXN0LmpzIl0sIm5hbWVzIjpbImNvbW1hbmRzIiwiZ2V0RGV2aWNlc0J5UGFyc2luZyIsInBsYXRmb3JtIiwic3Rkb3V0IiwiZXhlYyIsImFyZ3MiLCJkZXZpY2VTZWN0aW9uUmUiLCJfIiwiaXNFbXB0eSIsIlJlZ0V4cCIsImVzY2FwZVJlZ0V4cCIsIm1hdGNoZXMiLCJtYXRjaCIsInB1c2giLCJFcnJvciIsImxpbmVSZSIsImRldmljZXMiLCJzZGsiLCJsaW5lIiwic3BsaXQiLCJzbGljZSIsImluY2x1ZGVzIiwibGluZU1hdGNoIiwibmFtZSIsInVkaWQiLCJzdGF0ZSIsImdldERldmljZXMiLCJmb3JTZGsiLCJ2ZXJzaW9uTWF0Y2hSZSIsInNka05hbWUiLCJlbnRyaWVzIiwidG9QYWlycyIsIkpTT04iLCJwYXJzZSIsInJlcGxhY2UiLCJTSU1fUlVOVElNRV9OQU1FIiwidmVyc2lvbk1hdGNoIiwiZmlsdGVyIiwiZWwiLCJpc1VuZGVmaW5lZCIsImlzQXZhaWxhYmxlIiwibWFwIiwiYXZhaWxhYmlsaXR5IiwiZXJyIiwibG9nIiwiZGVidWciLCJMT0dfUFJFRklYIiwic3RhY2siLCJlcnJNc2ciLCJhdmFpbGFibGVTREtzIiwia2V5cyIsImxlbmd0aCIsImpvaW4iLCJnZXRSdW50aW1lRm9yUGxhdGZvcm1WZXJzaW9uVmlhSnNvbiIsInBsYXRmb3JtVmVyc2lvbiIsInZlcnNpb24iLCJpZGVudGlmaWVyIiwicnVudGltZXMiLCJ0b0xvd2VyQ2FzZSIsInN0YXJ0c1dpdGgiLCJnZXRSdW50aW1lRm9yUGxhdGZvcm1WZXJzaW9uIiwicnVudGltZVJlIiwiaWduIiwiZ2V0RGV2aWNlVHlwZXMiLCJkZXZpY2VUeXBlcyIsInRyaW0iLCJkZXZpY2V0eXBlcyIsInR5cGUiLCJtZXNzYWdlIiwibGlzdCIsImUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFHQSxNQUFNQSxRQUFRLEdBQUcs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QUM1RCxJQUFBQTtBQUFELE1BQVcsTUFBTSxLQUFLQyxJQUFMLENBQVUsTUFBVixFQUFrQjtBQUN2Q0MsSUFBQUEsSUFBSSxFQUFFLENBQUMsYUFBRCxFQUFnQixJQUFoQjtBQURpQyxHQUFsQixDQUF2Qjs7QUFjQSxNQUFJO0FBQ0YsVUFBTTJELFdBQVcsR0FBR2hDLElBQUksQ0FBQ0MsS0FBTCxDQUFXOUIsTUFBTSxDQUFDOEQsSUFBUCxFQUFYLENBQXBCO0FBQ0EsV0FBT0QsV0FBVyxDQUFDRSxXQUFaLENBQXdCekIsR0FBeEIsQ0FBNkIwQixJQUFELElBQVVBLElBQUksQ0FBQzVDLElBQTNDLENBQVA7QUFDRCxHQUhELENBR0UsT0FBT29CLEdBQVAsRUFBWTtBQUNaLFVBQU0sSUFBSTdCLEtBQUosQ0FBVyx1Q0FBc0M2QixHQUFHLENBQUN5QixPQUFRLEVBQTdELENBQU47QUFDRDtBQUNGLENBckJEOztBQXlEQXBFLFFBQVEsQ0FBQ3FFLElBQVQsR0FBZ0IsZUFBZUEsSUFBZixHQUF1QjtBQUNyQyxRQUFNO0FBQUNsRSxJQUFBQTtBQUFELE1BQVcsTUFBTSxLQUFLQyxJQUFMLENBQVUsTUFBVixFQUFrQjtBQUN2Q0MsSUFBQUEsSUFBSSxFQUFFLENBQUMsSUFBRDtBQURpQyxHQUFsQixDQUF2Qjs7QUFHQSxNQUFJO0FBQ0YsV0FBTzJCLElBQUksQ0FBQ0MsS0FBTCxDQUFXOUIsTUFBTSxDQUFDOEQsSUFBUCxFQUFYLENBQVA7QUFDRCxHQUZELENBRUUsT0FBT0ssQ0FBUCxFQUFVO0FBQ1YsVUFBTSxJQUFJeEQsS0FBSixDQUFXLGdDQUErQndELENBQUMsQ0FBQ0YsT0FBUSxFQUFwRCxDQUFOO0FBQ0Q7QUFDRixDQVREOztlQVdlcEUsUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBTSU1fUlVOVElNRV9OQU1FLCBub3JtYWxpemVWZXJzaW9uIH0gZnJvbSAnLi4vaGVscGVycyc7XG5pbXBvcnQgbG9nLCB7IExPR19QUkVGSVggfSBmcm9tICcuLi9sb2dnZXInO1xuXG5cbmNvbnN0IGNvbW1hbmRzID0ge307XG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gRGV2aWNlSW5mb1xuICogQHByb3BlcnR5IHtzdHJpbmd9IG5hbWUgLSBUaGUgZGV2aWNlIG5hbWUuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gdWRpZCAtIFRoZSBkZXZpY2UgVURJRC5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBzdGF0ZSAtIFRoZSBjdXJyZW50IFNpbXVsYXRvciBzdGF0ZSwgZm9yIGV4YW1wbGUgJ2Jvb3RlZCcgb3IgJ3NodXRkb3duJy5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBzZGsgLSBUaGUgU0RLIHZlcnNpb24sIGZvciBleGFtcGxlICcxMC4zJy5cbiAqL1xuXG4vKipcbiAqIFBhcnNlIHRoZSBsaXN0IG9mIGV4aXN0aW5nIFNpbXVsYXRvciBkZXZpY2VzIHRvIHJlcHJlc2VudFxuICogaXQgYXMgY29udmVuaWVudCBtYXBwaW5nLlxuICpcbiAqIEBwYXJhbSB7P3N0cmluZ30gcGxhdGZvcm0gLSBUaGUgcGxhdGZvcm0gbmFtZSwgZm9yIGV4YW1wbGUgJ3dhdGNoT1MnLlxuICogQHJldHVybiB7T2JqZWN0fSBUaGUgcmVzdWx0aW5nIG1hcHBpbmcuIEVhY2gga2V5IGlzIHBsYXRmb3JtIHZlcnNpb24sXG4gKiAgICAgICAgICAgICAgICAgIGZvciBleGFtcGxlICcxMC4zJyBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgaXMgYW5cbiAqICAgICAgICAgICAgICAgICAgYXJyYXkgb2YgdGhlIG1hdGNoaW5nIHtAbGluayBEZXZpY2VJbmZvfSBpbnN0YW5jZXMuXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIGNvcnJlc3BvbmRpbmcgc2ltY3RsIHN1YmNvbW1hbmQgY29tbWFuZFxuICogICAgICAgICAgICAgICAgIHJldHVybnMgbm9uLXplcm8gcmV0dXJuIGNvZGUuXG4gKi9cbmNvbW1hbmRzLmdldERldmljZXNCeVBhcnNpbmcgPSBhc3luYyBmdW5jdGlvbiBnZXREZXZpY2VzQnlQYXJzaW5nIChwbGF0Zm9ybSkge1xuICAvLyBnZXQgdGhlIGxpc3Qgb2YgZGV2aWNlc1xuICBjb25zdCB7c3Rkb3V0fSA9IGF3YWl0IHRoaXMuZXhlYygnbGlzdCcsIHtcbiAgICBhcmdzOiBbJ2RldmljZXMnXSxcbiAgfSk7XG5cbiAgLy8gZXhwZWN0IHRvIGdldCBhIGxpc3RpbmcgbGlrZVxuICAvLyAtLSBpT1MgOC4xIC0tXG4gIC8vICAgICBpUGhvbmUgNHMgKDNDQTZFN0RELTIyMEUtNDVFNS1CNzE2LTFFOTkyQjNBNDI5QykgKFNodXRkb3duKVxuICAvLyAgICAgLi4uXG4gIC8vIC0tIGlPUyA4LjIgLS1cbiAgLy8gICAgIGlQaG9uZSA0cyAoQTk5RkZGQzMtOEUxOS00RENGLUI1ODUtN0Q5RDQ2QjRDMTZFKSAoU2h1dGRvd24pXG4gIC8vICAgICAuLi5cbiAgLy8gc28sIGdldCB0aGUgYC0tIGlPUyBYLlggLS1gIGxpbmUgdG8gZmluZCB0aGUgc2RrIChYLlgpXG4gIC8vIGFuZCB0aGUgcmVzdCBvZiB0aGUgbGlzdGluZyBpbiBvcmRlciB0byBsYXRlciBmaW5kIHRoZSBkZXZpY2VzXG4gIGNvbnN0IGRldmljZVNlY3Rpb25SZSA9IF8uaXNFbXB0eShwbGF0Zm9ybSlcbiAgICA/IG5ldyBSZWdFeHAoYFxcXFwtXFxcXC1cXFxccysoXFxcXFMrKVxcXFxzKyhcXFxcUyspXFxcXHMrXFxcXC1cXFxcLShcXFxcblxcXFxzezR9LispKmAsICdtZ2knKVxuICAgIDogbmV3IFJlZ0V4cChgXFxcXC1cXFxcLVxcXFxzKyR7Xy5lc2NhcGVSZWdFeHAocGxhdGZvcm0pfVxcXFxzKyhcXFxcUyspXFxcXHMrXFxcXC1cXFxcLShcXFxcblxcXFxzezR9LispKmAsICdtZ2knKTtcbiAgY29uc3QgbWF0Y2hlcyA9IFtdO1xuICBsZXQgbWF0Y2g7XG4gIC8vIG1ha2UgYW4gZW50cnkgZm9yIGVhY2ggc2RrIHZlcnNpb25cbiAgd2hpbGUgKChtYXRjaCA9IGRldmljZVNlY3Rpb25SZS5leGVjKHN0ZG91dCkpKSB7XG4gICAgbWF0Y2hlcy5wdXNoKG1hdGNoKTtcbiAgfVxuICBpZiAoXy5pc0VtcHR5KG1hdGNoZXMpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgZmluZCBkZXZpY2Ugc2VjdGlvbicpO1xuICB9XG5cbiAgY29uc3QgbGluZVJlID0gLyhbXlxcc10uKykgXFwoKFxcdystLitcXHcrKVxcKSBcXCgoXFx3K1xccz9cXHcrKVxcKS87IC8vIGh0dHBzOi8vcmVnZXgxMDEuY29tL3IvbEc3bUs2LzNcbiAgLy8gZ2V0IGFsbCB0aGUgZGV2aWNlcyBmb3IgZWFjaCBzZGtcbiAgY29uc3QgZGV2aWNlcyA9IHt9O1xuICBmb3IgKG1hdGNoIG9mIG1hdGNoZXMpIHtcbiAgICBjb25zdCBzZGsgPSBwbGF0Zm9ybSA/IG1hdGNoWzFdIDogbWF0Y2hbMl07XG4gICAgZGV2aWNlc1tzZGtdID0gZGV2aWNlc1tzZGtdIHx8IFtdO1xuICAgIC8vIHNwbGl0IHRoZSBmdWxsIG1hdGNoIGludG8gbGluZXMgYW5kIHJlbW92ZSB0aGUgZmlyc3RcbiAgICBmb3IgKGNvbnN0IGxpbmUgb2YgbWF0Y2hbMF0uc3BsaXQoJ1xcbicpLnNsaWNlKDEpKSB7XG4gICAgICBpZiAobGluZS5pbmNsdWRlcygnKHVuYXZhaWxhYmxlLCAnKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIC8vIGEgbGluZSBpcyBzb21ldGhpbmcgbGlrZVxuICAgICAgLy8gICAgaVBob25lIDRzIChBOTlGRkZDMy04RTE5LTREQ0YtQjU4NS03RDlENDZCNEMxNkUpIChTaHV0ZG93bilcbiAgICAgIC8vIHJldHJpZXZlOlxuICAgICAgLy8gICBpUGhvbmUgNHNcbiAgICAgIC8vICAgQTk5RkZGQzMtOEUxOS00RENGLUI1ODUtN0Q5RDQ2QjRDMTZFXG4gICAgICAvLyAgIFNodXRkb3duXG4gICAgICBjb25zdCBsaW5lTWF0Y2ggPSBsaW5lUmUuZXhlYyhsaW5lKTtcbiAgICAgIGlmICghbGluZU1hdGNoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IG1hdGNoIGxpbmU6ICR7bGluZX1gKTtcbiAgICAgIH1cbiAgICAgIC8vIHNhdmUgdGhlIHdob2xlIHRoaW5nIGFzIGFiIG9iamVjdCBpbiB0aGUgbGlzdCBmb3IgdGhpcyBzZGtcbiAgICAgIGRldmljZXNbc2RrXS5wdXNoKHtcbiAgICAgICAgbmFtZTogbGluZU1hdGNoWzFdLFxuICAgICAgICB1ZGlkOiBsaW5lTWF0Y2hbMl0sXG4gICAgICAgIHN0YXRlOiBsaW5lTWF0Y2hbM10sXG4gICAgICAgIHNkayxcbiAgICAgICAgcGxhdGZvcm06IHBsYXRmb3JtIHx8IG1hdGNoWzFdLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBkZXZpY2VzO1xufTtcblxuLyoqXG4gKiBQYXJzZSB0aGUgbGlzdCBvZiBleGlzdGluZyBTaW11bGF0b3IgZGV2aWNlcyB0byByZXByZXNlbnRcbiAqIGl0IGFzIGNvbnZlbmllbnQgbWFwcGluZyBmb3IgdGhlIHBhcnRpY3VsYXIgcGxhdGZvcm0gdmVyc2lvbi5cbiAqXG4gKiBAcGFyYW0gez9zdHJpbmd9IGZvclNkayAtIFRoZSBzZGsgdmVyc2lvbixcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHdoaWNoIHRoZSBkZXZpY2VzIGxpc3Qgc2hvdWxkIGJlIHBhcnNlZCxcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGV4YW1wbGUgJzEwLjMnLlxuICogQHBhcmFtIHs/c3RyaW5nfSBwbGF0Zm9ybSAtIFRoZSBwbGF0Zm9ybSBuYW1lLCBmb3IgZXhhbXBsZSAnd2F0Y2hPUycuXG4gKiBAcmV0dXJuIHtPYmplY3R8QXJyYXk8RGV2aWNlSW5mbz59IElmIF9mb3JTZGtfIGlzIHNldCB0aGVuIHRoZSBsaXN0XG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mIGRldmljZXMgZm9yIHRoZSBwYXJ0aWN1bGFyIHBsYXRmb3JtIHZlcnNpb24uXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE90aGVyd2lzZSB0aGUgc2FtZSByZXN1bHQgYXMgZm9yIHtAbGluayBnZXREZXZpY2VzQnlQYXJzaW5nfVxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbi5cbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgY29ycmVzcG9uZGluZyBzaW1jdGwgc3ViY29tbWFuZCBjb21tYW5kXG4gKiAgICAgICAgICAgICAgICAgcmV0dXJucyBub24temVybyByZXR1cm4gY29kZSBvciBpZiBubyBtYXRjaGluZ1xuICogICAgICAgICAgICAgICAgIHBsYXRmb3JtIHZlcnNpb24gaXMgZm91bmQgaW4gdGhlIHN5c3RlbS5cbiAqL1xuY29tbWFuZHMuZ2V0RGV2aWNlcyA9IGFzeW5jIGZ1bmN0aW9uIGdldERldmljZXMgKGZvclNkaywgcGxhdGZvcm0pIHtcbiAgbGV0IGRldmljZXMgPSB7fTtcbiAgdHJ5IHtcbiAgICBjb25zdCB7c3Rkb3V0fSA9IGF3YWl0IHRoaXMuZXhlYygnbGlzdCcsIHtcbiAgICAgIGFyZ3M6IFsnZGV2aWNlcycsICctaiddLFxuICAgIH0pO1xuICAgIC8qIEpTT04gc2hvdWxkIGJlXG4gICAgICoge1xuICAgICAqICAgXCJkZXZpY2VzXCIgOiB7XG4gICAgICogICAgIFwiaU9TIDxzZGs+XCIgOiBbIC8vIG9yXG4gICAgICogICAgIFwiY29tLmFwcGxlLkNvcmVTaW11bGF0b3IuU2ltUnVudGltZS5pT1MtPHNkaz4gOiBbXG4gICAgICogICAgICAge1xuICAgICAqICAgICAgICAgXCJzdGF0ZVwiIDogXCJCb290ZWRcIixcbiAgICAgKiAgICAgICAgIFwiYXZhaWxhYmlsaXR5XCIgOiBcIihhdmFpbGFibGUpXCIsXG4gICAgICogICAgICAgICBcImlzQXZhaWxhYmxlXCIgOiB0cnVlLFxuICAgICAqICAgICAgICAgXCJuYW1lXCIgOiBcImlQaG9uZSA2XCIsXG4gICAgICogICAgICAgICBcInVkaWRcIiA6IFwiNzVFMzQxNDAtMThFOC00RDFBLTlGNDUtQUFDNzM1REY3NURGXCJcbiAgICAgKiAgICAgICB9XG4gICAgICogICAgIF1cbiAgICAgKiAgIH1cbiAgICAgKiB9XG4gICAgICovXG4gICAgY29uc3QgdmVyc2lvbk1hdGNoUmUgPSBfLmlzRW1wdHkocGxhdGZvcm0pXG4gICAgICA/IG5ldyBSZWdFeHAoYF4oW15cXFxccy1dKylbXFxcXHMtXShcXFxcUyspYCwgJ2knKVxuICAgICAgOiBuZXcgUmVnRXhwKGBeJHtfLmVzY2FwZVJlZ0V4cChwbGF0Zm9ybSl9W1xcXFxzLV0oXFxcXFMrKWAsICdpJyk7XG4gICAgZm9yIChsZXQgW3Nka05hbWUsIGVudHJpZXNdIG9mIF8udG9QYWlycyhKU09OLnBhcnNlKHN0ZG91dCkuZGV2aWNlcykpIHtcbiAgICAgIC8vIHRoZXJlIGNvdWxkIGJlIGEgbG9uZ2VyIG5hbWUsIHNvIHJlbW92ZSBpdFxuICAgICAgc2RrTmFtZSA9IHNka05hbWUucmVwbGFjZShTSU1fUlVOVElNRV9OQU1FLCAnJyk7XG4gICAgICBjb25zdCB2ZXJzaW9uTWF0Y2ggPSB2ZXJzaW9uTWF0Y2hSZS5leGVjKHNka05hbWUpO1xuICAgICAgaWYgKCF2ZXJzaW9uTWF0Y2gpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIC8vIHRoZSBzZGsgY2FuIGhhdmUgZGFzaGVzIChgMTItMmApIG9yIGRvdHMgKGAxMi4xYClcbiAgICAgIGNvbnN0IHNkayA9IChwbGF0Zm9ybSA/IHZlcnNpb25NYXRjaFsxXSA6IHZlcnNpb25NYXRjaFsyXSkucmVwbGFjZSgnLScsICcuJyk7XG4gICAgICBkZXZpY2VzW3Nka10gPSBkZXZpY2VzW3Nka10gfHwgW107XG4gICAgICBkZXZpY2VzW3Nka10ucHVzaCguLi5lbnRyaWVzLmZpbHRlcigoZWwpID0+IF8uaXNVbmRlZmluZWQoZWwuaXNBdmFpbGFibGUpIHx8IGVsLmlzQXZhaWxhYmxlKVxuICAgICAgICAubWFwKChlbCkgPT4ge1xuICAgICAgICAgIGRlbGV0ZSBlbC5hdmFpbGFiaWxpdHk7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHNkayxcbiAgICAgICAgICAgIC4uLmVsLFxuICAgICAgICAgICAgcGxhdGZvcm06IHBsYXRmb3JtIHx8IHZlcnNpb25NYXRjaFsxXSxcbiAgICAgICAgICB9O1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZy5kZWJ1ZyhMT0dfUFJFRklYLCBgVW5hYmxlIHRvIGdldCBKU09OIGRldmljZSBsaXN0OiAke2Vyci5zdGFja31gKTtcbiAgICBsb2cuZGVidWcoTE9HX1BSRUZJWCwgJ0ZhbGxpbmcgYmFjayB0byBtYW51YWwgcGFyc2luZycpO1xuICAgIGRldmljZXMgPSBhd2FpdCB0aGlzLmdldERldmljZXNCeVBhcnNpbmcocGxhdGZvcm0pO1xuICB9XG5cbiAgaWYgKCFmb3JTZGspIHtcbiAgICByZXR1cm4gZGV2aWNlcztcbiAgfVxuICAvLyBpZiBhIGBmb3JTZGtgIHdhcyBwYXNzZWQgaW4sIHJldHVybiBvbmx5IHRoZSBjb3JyZXNwb25kaW5nIGxpc3RcbiAgaWYgKGRldmljZXNbZm9yU2RrXSkge1xuICAgIHJldHVybiBkZXZpY2VzW2ZvclNka107XG4gIH1cblxuICBsZXQgZXJyTXNnID0gYCcke2ZvclNka30nIGRvZXMgbm90IGV4aXN0IGluIHRoZSBsaXN0IG9mIHNpbWN0bCBTREtzLmA7XG4gIGNvbnN0IGF2YWlsYWJsZVNES3MgPSBfLmtleXMoZGV2aWNlcyk7XG4gIGVyck1zZyArPSBhdmFpbGFibGVTREtzLmxlbmd0aFxuICAgID8gYCBPbmx5IHRoZSBmb2xsb3dpbmcgU2ltdWxhdG9yIFNESyB2ZXJzaW9ucyBhcmUgYXZhaWxhYmxlIG9uIHlvdXIgc3lzdGVtOiAke2F2YWlsYWJsZVNES3Muam9pbignLCAnKX1gXG4gICAgOiBgIE5vIFNpbXVsYXRvciBTREsgdmVyc2lvbnMgYXJlIGF2YWlsYWJsZSBvbiB5b3VyIHN5c3RlbS4gUGxlYXNlIGluc3RhbGwgc29tZSB2aWEgWGNvZGUgcHJlZmVyZW5jZXMuYDtcbiAgdGhyb3cgbmV3IEVycm9yKGVyck1zZyk7XG59O1xuXG4vKipcbiAqIEdldCB0aGUgcnVudGltZSBmb3IgdGhlIHBhcnRpY3VsYXIgcGxhdGZvcm0gdmVyc2lvbiB1c2luZyAtLWpzb24gZmxhZ1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwbGF0Zm9ybVZlcnNpb24gLSBUaGUgcGxhdGZvcm0gdmVyc2lvbiBuYW1lLFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBleGFtcGxlICcxMC4zJy5cbiAqIEBwYXJhbSB7P3N0cmluZ30gcGxhdGZvcm0gLSBUaGUgcGxhdGZvcm0gbmFtZSwgZm9yIGV4YW1wbGUgJ3dhdGNoT1MnLlxuICogQHJldHVybiB7c3RyaW5nfSBUaGUgY29ycmVzcG9uZGluZyBydW50aW1lIG5hbWUgZm9yIHRoZSBnaXZlblxuICogICAgICAgICAgICAgICAgICBwbGF0Zm9ybSB2ZXJzaW9uLlxuICovXG5jb21tYW5kcy5nZXRSdW50aW1lRm9yUGxhdGZvcm1WZXJzaW9uVmlhSnNvbiA9IGFzeW5jIGZ1bmN0aW9uIGdldFJ1bnRpbWVGb3JQbGF0Zm9ybVZlcnNpb25WaWFKc29uIChcbiAgcGxhdGZvcm1WZXJzaW9uLCBwbGF0Zm9ybSA9ICdpT1MnKSB7XG4gIGNvbnN0IHtzdGRvdXR9ID0gYXdhaXQgdGhpcy5leGVjKCdsaXN0Jywge1xuICAgIGFyZ3M6IFsncnVudGltZXMnLCAnLS1qc29uJ10sXG4gIH0pO1xuICBmb3IgKGNvbnN0IHt2ZXJzaW9uLCBpZGVudGlmaWVyLCBuYW1lfSBvZiBKU09OLnBhcnNlKHN0ZG91dCkucnVudGltZXMpIHtcbiAgICBpZiAobm9ybWFsaXplVmVyc2lvbih2ZXJzaW9uKSA9PT0gbm9ybWFsaXplVmVyc2lvbihwbGF0Zm9ybVZlcnNpb24pXG4gICAgICAmJiBuYW1lLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChwbGF0Zm9ybS50b0xvd2VyQ2FzZSgpKSkge1xuICAgICAgcmV0dXJuIGlkZW50aWZpZXI7XG4gICAgfVxuICB9XG4gIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IHVzZSAtLWpzb24gZmxhZyB0byBwYXJzZSBwbGF0Zm9ybSB2ZXJzaW9uYCk7XG59O1xuXG4vKipcbiAqIEdldCB0aGUgcnVudGltZSBmb3IgdGhlIHBhcnRpY3VsYXIgcGxhdGZvcm0gdmVyc2lvbi5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGxhdGZvcm1WZXJzaW9uIC0gVGhlIHBsYXRmb3JtIHZlcnNpb24gbmFtZSxcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgZXhhbXBsZSAnMTAuMycuXG4gKiBAcGFyYW0gez9zdHJpbmd9IHBsYXRmb3JtIC0gVGhlIHBsYXRmb3JtIG5hbWUsIGZvciBleGFtcGxlICd3YXRjaE9TJy5cbiAqIEByZXR1cm4ge3N0cmluZ30gVGhlIGNvcnJlc3BvbmRpbmcgcnVudGltZSBuYW1lIGZvciB0aGUgZ2l2ZW5cbiAqICAgICAgICAgICAgICAgICAgcGxhdGZvcm0gdmVyc2lvbi5cbiAqL1xuY29tbWFuZHMuZ2V0UnVudGltZUZvclBsYXRmb3JtVmVyc2lvbiA9IGFzeW5jIGZ1bmN0aW9uIGdldFJ1bnRpbWVGb3JQbGF0Zm9ybVZlcnNpb24gKFxuICBwbGF0Zm9ybVZlcnNpb24sIHBsYXRmb3JtID0gJ2lPUycpIHtcbiAgLy8gVHJ5IHdpdGggcGFyc2luZ1xuICB0cnkge1xuICAgIGNvbnN0IHtzdGRvdXR9ID0gYXdhaXQgdGhpcy5leGVjKCdsaXN0Jywge1xuICAgICAgYXJnczogWydydW50aW1lcyddLFxuICAgIH0pO1xuICAgIC8vIGh0dHBzOi8vcmVnZXgxMDEuY29tL3IvVXlralFaLzFcbiAgICBjb25zdCBydW50aW1lUmUgPVxuICAgICAgbmV3IFJlZ0V4cChgJHtfLmVzY2FwZVJlZ0V4cChwbGF0Zm9ybSl9XFxcXHMrKFxcXFxkK1xcXFwuXFxcXGQrKVxcXFxzK1xcXFwoKFxcXFxkK1xcXFwuXFxcXGQrXFxcXC4qXFxcXGQqKWAsICdpJyk7XG4gICAgZm9yIChjb25zdCBsaW5lIG9mIHN0ZG91dC5zcGxpdCgnXFxuJykpIHtcbiAgICAgIGNvbnN0IG1hdGNoID0gcnVudGltZVJlLmV4ZWMobGluZSk7XG4gICAgICBpZiAobWF0Y2ggJiYgbWF0Y2hbMV0gPT09IHBsYXRmb3JtVmVyc2lvbikge1xuICAgICAgICByZXR1cm4gbWF0Y2hbMl07XG4gICAgICB9XG4gICAgfVxuICB9IGNhdGNoIChpZ24pIHt9XG5cbiAgLy8gaWYgbm90aGluZyB3YXMgZm91bmQsIHBhc3MgcGxhdGZvcm0gdmVyc2lvbiBiYWNrXG4gIHJldHVybiBwbGF0Zm9ybVZlcnNpb247XG59O1xuXG4vKipcbiAqIEdldCB0aGUgbGlzdCBvZiBkZXZpY2UgdHlwZXMgYXZhaWxhYmxlIGluIHRoZSBjdXJyZW50IFhjb2RlIGluc3RhbGxhdGlvblxuICpcbiAqIEByZXR1cm4ge0FycmF5PHN0cmluZz59IExpc3Qgb2YgdGhlIHR5cGVzIG9mIGRldmljZXMgYXZhaWxhYmxlXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIGNvcnJlc3BvbmRpbmcgc2ltY3RsIGNvbW1hbmQgZmFpbHNcbiAqL1xuY29tbWFuZHMuZ2V0RGV2aWNlVHlwZXMgPSBhc3luYyBmdW5jdGlvbiBnZXREZXZpY2VUeXBlcyAoKSB7XG4gIGNvbnN0IHtzdGRvdXR9ID0gYXdhaXQgdGhpcy5leGVjKCdsaXN0Jywge1xuICAgIGFyZ3M6IFsnZGV2aWNldHlwZXMnLCAnLWonXSxcbiAgfSk7XG4gIC8qXG4gICAqIEpTT04gd2lsbCBiZSBsaWtlOlxuICAgKiAgIHtcbiAgICogICAgIFwiZGV2aWNldHlwZXNcIiA6IFtcbiAgICogICAgICAge1xuICAgKiAgICAgICAgIFwibmFtZVwiIDogXCJpUGhvbmUgNHNcIixcbiAgICogICAgICAgICBcImlkZW50aWZpZXJcIiA6IFwiY29tLmFwcGxlLkNvcmVTaW11bGF0b3IuU2ltRGV2aWNlVHlwZS5pUGhvbmUtNHNcIlxuICAgKiAgICAgICB9LFxuICAgKiAgICAgICAuLi5cbiAgICogICB9XG4gICAqL1xuICB0cnkge1xuICAgIGNvbnN0IGRldmljZVR5cGVzID0gSlNPTi5wYXJzZShzdGRvdXQudHJpbSgpKTtcbiAgICByZXR1cm4gZGV2aWNlVHlwZXMuZGV2aWNldHlwZXMubWFwKCh0eXBlKSA9PiB0eXBlLm5hbWUpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBnZXQgbGlzdCBvZiBkZXZpY2UgdHlwZXM6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gIH1cbn07XG5cbi8qKlxuICogR2V0IHRoZSBmdWxsIGxpc3Qgb2YgcnVudGltZXMsIGRldmljZXR5cGVzLCBkZXZpY2VzIGFuZCBwYWlycyBhcyBPYmplY3RcbiAqXG4gKiBAcmV0dXJuIHtPYmplY3R9IE9iamVjdCBjb250YWluaW5nIGRldmljZSB0eXBlcywgcnVudGltZXMgZGV2aWNlcyBhbmQgcGFpcnMuXG4gKiBUaGUgcmVzdWx0aW5nIEpTT04gd2lsbCBiZSBsaWtlOlxuICogICB7XG4gKiAgICAgXCJkZXZpY2V0eXBlc1wiIDogW1xuICogICAgICAge1xuICogICAgICAgICBcIm5hbWVcIiA6IFwiaVBob25lIDRzXCIsXG4gKiAgICAgICAgIFwiaWRlbnRpZmllclwiIDogXCJjb20uYXBwbGUuQ29yZVNpbXVsYXRvci5TaW1EZXZpY2VUeXBlLmlQaG9uZS00c1wiXG4gKiAgICAgICB9LFxuICogICAgICAgLi4uXG4gKiAgICAgIF0sXG4gKiAgICAgXCJydW50aW1lc1wiIDogW1xuICogICAgICAge1xuICogICAgICAgICBcInZlcnNpb25cIiA6ICcxMy4wJyxcbiAqICAgICAgICAgXCJidW5kbGVQYXRoXCIgOiAnL0FwcGxpY2F0aW9ucy9YY29kZTExYmV0YTQuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZScsXG4gKiAgICAgICAgIFwiaXNBdmFpbGFibGVcIiA6IHRydWUsXG4gKiAgICAgICAgIFwibmFtZVwiIDogJ2lPUyAxMy4wJyxcbiAqICAgICAgICAgXCJpZGVudGlmaWVyXCIgOiAnY29tLmFwcGxlLkNvcmVTaW11bGF0b3IuU2ltUnVudGltZS5pT1MtMTMtMCcsXG4gKiAgICAgICAgIFwiYnVpbGR2ZXJzaW9uXCIgOiAnMTdBNTUzNGQnXG4gKiAgICAgICB9LFxuICogICAgICAgLi4uXG4gKiAgICAgIH0sXG4gKiAgICAgXCJkZXZpY2VzXCIgOlxuICogICAgICAge1xuICogICAgICAgICAnY29tLmFwcGxlLkNvcmVTaW11bGF0b3IuU2ltUnVudGltZS5pT1MtMTMtMCc6IFsgW09iamVjdF0sIFtPYmplY3RdIF0gfSxcbiAqICAgICAgICAgLi4uXG4gKiAgICAgICB9LFxuICogICAgIFwicGFpcnNcIiA6IHt9IH1cbiAqXG4gKiAgIH1cbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgY29ycmVzcG9uZGluZyBzaW1jdGwgY29tbWFuZCBmYWlsc1xuICovXG5jb21tYW5kcy5saXN0ID0gYXN5bmMgZnVuY3Rpb24gbGlzdCAoKSB7XG4gIGNvbnN0IHtzdGRvdXR9ID0gYXdhaXQgdGhpcy5leGVjKCdsaXN0Jywge1xuICAgIGFyZ3M6IFsnLWonXSxcbiAgfSk7XG4gIHRyeSB7XG4gICAgcmV0dXJuIEpTT04ucGFyc2Uoc3Rkb3V0LnRyaW0oKSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBwYXJzZSBzaW1jdGwgbGlzdDogJHtlLm1lc3NhZ2V9YCk7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNvbW1hbmRzO1xuIl0sImZpbGUiOiJsaWIvc3ViY29tbWFuZHMvbGlzdC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLiJ9
201
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zdWJjb21tYW5kcy9saXN0LmpzIl0sIm5hbWVzIjpbImNvbW1hbmRzIiwiZ2V0RGV2aWNlc0J5UGFyc2luZyIsInBsYXRmb3JtIiwic3Rkb3V0IiwiZXhlYyIsImFyZ3MiLCJkZXZpY2VTZWN0aW9uUmUiLCJfIiwiaXNFbXB0eSIsIlJlZ0V4cCIsImVzY2FwZVJlZ0V4cCIsIm1hdGNoZXMiLCJtYXRjaCIsInB1c2giLCJFcnJvciIsImxpbmVSZSIsImRldmljZXMiLCJzZGsiLCJsaW5lIiwic3BsaXQiLCJzbGljZSIsImluY2x1ZGVzIiwibGluZU1hdGNoIiwibmFtZSIsInVkaWQiLCJzdGF0ZSIsImdldERldmljZXMiLCJmb3JTZGsiLCJ2ZXJzaW9uTWF0Y2hSZSIsInNka05hbWUiLCJlbnRyaWVzIiwidG9QYWlycyIsIkpTT04iLCJwYXJzZSIsInJlcGxhY2UiLCJTSU1fUlVOVElNRV9OQU1FIiwidmVyc2lvbk1hdGNoIiwiZmlsdGVyIiwiZWwiLCJpc1VuZGVmaW5lZCIsImlzQXZhaWxhYmxlIiwibWFwIiwiYXZhaWxhYmlsaXR5IiwiZXJyIiwibG9nIiwiZGVidWciLCJMT0dfUFJFRklYIiwic3RhY2siLCJlcnJNc2ciLCJhdmFpbGFibGVTREtzIiwia2V5cyIsImxlbmd0aCIsImpvaW4iLCJnZXRSdW50aW1lRm9yUGxhdGZvcm1WZXJzaW9uVmlhSnNvbiIsInBsYXRmb3JtVmVyc2lvbiIsInZlcnNpb24iLCJpZGVudGlmaWVyIiwicnVudGltZXMiLCJ0b0xvd2VyQ2FzZSIsInN0YXJ0c1dpdGgiLCJnZXRSdW50aW1lRm9yUGxhdGZvcm1WZXJzaW9uIiwicnVudGltZVJlIiwiaWduIiwiZ2V0RGV2aWNlVHlwZXMiLCJkZXZpY2VUeXBlcyIsInRyaW0iLCJkZXZpY2V0eXBlcyIsInR5cGUiLCJtZXNzYWdlIiwibGlzdCIsImUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7Ozs7OztBQUdBLE1BQU1BLFFBQVEsR0FB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QUFBQzVELElBQUFBO0FBQUQsTUFBVyxNQUFNLEtBQUtDLElBQUwsQ0FBVSxNQUFWLEVBQWtCO0FBQ3ZDQyxJQUFBQSxJQUFJLEVBQUUsQ0FBQyxhQUFELEVBQWdCLElBQWhCO0FBRGlDLEdBQWxCLENBQXZCOztBQWNBLE1BQUk7QUFDRixVQUFNMkQsV0FBVyxHQUFHaEMsSUFBSSxDQUFDQyxLQUFMLENBQVc5QixNQUFNLENBQUM4RCxJQUFQLEVBQVgsQ0FBcEI7QUFDQSxXQUFPRCxXQUFXLENBQUNFLFdBQVosQ0FBd0J6QixHQUF4QixDQUE2QjBCLElBQUQsSUFBVUEsSUFBSSxDQUFDNUMsSUFBM0MsQ0FBUDtBQUNELEdBSEQsQ0FHRSxPQUFPb0IsR0FBUCxFQUFZO0FBQ1osVUFBTSxJQUFJN0IsS0FBSixDQUFXLHVDQUFzQzZCLEdBQUcsQ0FBQ3lCLE9BQVEsRUFBN0QsQ0FBTjtBQUNEO0FBQ0YsQ0FyQkQ7O0FBeURBcEUsUUFBUSxDQUFDcUUsSUFBVCxHQUFnQixlQUFlQSxJQUFmLEdBQXVCO0FBQ3JDLFFBQU07QUFBQ2xFLElBQUFBO0FBQUQsTUFBVyxNQUFNLEtBQUtDLElBQUwsQ0FBVSxNQUFWLEVBQWtCO0FBQ3ZDQyxJQUFBQSxJQUFJLEVBQUUsQ0FBQyxJQUFEO0FBRGlDLEdBQWxCLENBQXZCOztBQUdBLE1BQUk7QUFDRixXQUFPMkIsSUFBSSxDQUFDQyxLQUFMLENBQVc5QixNQUFNLENBQUM4RCxJQUFQLEVBQVgsQ0FBUDtBQUNELEdBRkQsQ0FFRSxPQUFPSyxDQUFQLEVBQVU7QUFDVixVQUFNLElBQUl4RCxLQUFKLENBQVcsZ0NBQStCd0QsQ0FBQyxDQUFDRixPQUFRLEVBQXBELENBQU47QUFDRDtBQUNGLENBVEQ7O2VBV2VwRSxRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFNJTV9SVU5USU1FX05BTUUsIG5vcm1hbGl6ZVZlcnNpb24gfSBmcm9tICcuLi9oZWxwZXJzJztcbmltcG9ydCBsb2csIHsgTE9HX1BSRUZJWCB9IGZyb20gJy4uL2xvZ2dlcic7XG5cblxuY29uc3QgY29tbWFuZHMgPSB7fTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBEZXZpY2VJbmZvXG4gKiBAcHJvcGVydHkge3N0cmluZ30gbmFtZSAtIFRoZSBkZXZpY2UgbmFtZS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSB1ZGlkIC0gVGhlIGRldmljZSBVRElELlxuICogQHByb3BlcnR5IHtzdHJpbmd9IHN0YXRlIC0gVGhlIGN1cnJlbnQgU2ltdWxhdG9yIHN0YXRlLCBmb3IgZXhhbXBsZSAnYm9vdGVkJyBvciAnc2h1dGRvd24nLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IHNkayAtIFRoZSBTREsgdmVyc2lvbiwgZm9yIGV4YW1wbGUgJzEwLjMnLlxuICovXG5cbi8qKlxuICogUGFyc2UgdGhlIGxpc3Qgb2YgZXhpc3RpbmcgU2ltdWxhdG9yIGRldmljZXMgdG8gcmVwcmVzZW50XG4gKiBpdCBhcyBjb252ZW5pZW50IG1hcHBpbmcuXG4gKlxuICogQHBhcmFtIHs/c3RyaW5nfSBwbGF0Zm9ybSAtIFRoZSBwbGF0Zm9ybSBuYW1lLCBmb3IgZXhhbXBsZSAnd2F0Y2hPUycuXG4gKiBAcmV0dXJuIHtPYmplY3R9IFRoZSByZXN1bHRpbmcgbWFwcGluZy4gRWFjaCBrZXkgaXMgcGxhdGZvcm0gdmVyc2lvbixcbiAqICAgICAgICAgICAgICAgICAgZm9yIGV4YW1wbGUgJzEwLjMnIGFuZCB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZSBpcyBhblxuICogICAgICAgICAgICAgICAgICBhcnJheSBvZiB0aGUgbWF0Y2hpbmcge0BsaW5rIERldmljZUluZm99IGluc3RhbmNlcy5cbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgY29ycmVzcG9uZGluZyBzaW1jdGwgc3ViY29tbWFuZCBjb21tYW5kXG4gKiAgICAgICAgICAgICAgICAgcmV0dXJucyBub24temVybyByZXR1cm4gY29kZS5cbiAqL1xuY29tbWFuZHMuZ2V0RGV2aWNlc0J5UGFyc2luZyA9IGFzeW5jIGZ1bmN0aW9uIGdldERldmljZXNCeVBhcnNpbmcgKHBsYXRmb3JtKSB7XG4gIC8vIGdldCB0aGUgbGlzdCBvZiBkZXZpY2VzXG4gIGNvbnN0IHtzdGRvdXR9ID0gYXdhaXQgdGhpcy5leGVjKCdsaXN0Jywge1xuICAgIGFyZ3M6IFsnZGV2aWNlcyddLFxuICB9KTtcblxuICAvLyBleHBlY3QgdG8gZ2V0IGEgbGlzdGluZyBsaWtlXG4gIC8vIC0tIGlPUyA4LjEgLS1cbiAgLy8gICAgIGlQaG9uZSA0cyAoM0NBNkU3REQtMjIwRS00NUU1LUI3MTYtMUU5OTJCM0E0MjlDKSAoU2h1dGRvd24pXG4gIC8vICAgICAuLi5cbiAgLy8gLS0gaU9TIDguMiAtLVxuICAvLyAgICAgaVBob25lIDRzIChBOTlGRkZDMy04RTE5LTREQ0YtQjU4NS03RDlENDZCNEMxNkUpIChTaHV0ZG93bilcbiAgLy8gICAgIC4uLlxuICAvLyBzbywgZ2V0IHRoZSBgLS0gaU9TIFguWCAtLWAgbGluZSB0byBmaW5kIHRoZSBzZGsgKFguWClcbiAgLy8gYW5kIHRoZSByZXN0IG9mIHRoZSBsaXN0aW5nIGluIG9yZGVyIHRvIGxhdGVyIGZpbmQgdGhlIGRldmljZXNcbiAgY29uc3QgZGV2aWNlU2VjdGlvblJlID0gXy5pc0VtcHR5KHBsYXRmb3JtKVxuICAgID8gbmV3IFJlZ0V4cChgXFxcXC1cXFxcLVxcXFxzKyhcXFxcUyspXFxcXHMrKFxcXFxTKylcXFxccytcXFxcLVxcXFwtKFxcXFxuXFxcXHN7NH0uKykqYCwgJ21naScpXG4gICAgOiBuZXcgUmVnRXhwKGBcXFxcLVxcXFwtXFxcXHMrJHtfLmVzY2FwZVJlZ0V4cChwbGF0Zm9ybSl9XFxcXHMrKFxcXFxTKylcXFxccytcXFxcLVxcXFwtKFxcXFxuXFxcXHN7NH0uKykqYCwgJ21naScpO1xuICBjb25zdCBtYXRjaGVzID0gW107XG4gIGxldCBtYXRjaDtcbiAgLy8gbWFrZSBhbiBlbnRyeSBmb3IgZWFjaCBzZGsgdmVyc2lvblxuICB3aGlsZSAoKG1hdGNoID0gZGV2aWNlU2VjdGlvblJlLmV4ZWMoc3Rkb3V0KSkpIHtcbiAgICBtYXRjaGVzLnB1c2gobWF0Y2gpO1xuICB9XG4gIGlmIChfLmlzRW1wdHkobWF0Y2hlcykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBmaW5kIGRldmljZSBzZWN0aW9uJyk7XG4gIH1cblxuICBjb25zdCBsaW5lUmUgPSAvKFteXFxzXS4rKSBcXCgoXFx3Ky0uK1xcdyspXFwpIFxcKChcXHcrXFxzP1xcdyspXFwpLzsgLy8gaHR0cHM6Ly9yZWdleDEwMS5jb20vci9sRzdtSzYvM1xuICAvLyBnZXQgYWxsIHRoZSBkZXZpY2VzIGZvciBlYWNoIHNka1xuICBjb25zdCBkZXZpY2VzID0ge307XG4gIGZvciAobWF0Y2ggb2YgbWF0Y2hlcykge1xuICAgIGNvbnN0IHNkayA9IHBsYXRmb3JtID8gbWF0Y2hbMV0gOiBtYXRjaFsyXTtcbiAgICBkZXZpY2VzW3Nka10gPSBkZXZpY2VzW3Nka10gfHwgW107XG4gICAgLy8gc3BsaXQgdGhlIGZ1bGwgbWF0Y2ggaW50byBsaW5lcyBhbmQgcmVtb3ZlIHRoZSBmaXJzdFxuICAgIGZvciAoY29uc3QgbGluZSBvZiBtYXRjaFswXS5zcGxpdCgnXFxuJykuc2xpY2UoMSkpIHtcbiAgICAgIGlmIChsaW5lLmluY2x1ZGVzKCcodW5hdmFpbGFibGUsICcpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgLy8gYSBsaW5lIGlzIHNvbWV0aGluZyBsaWtlXG4gICAgICAvLyAgICBpUGhvbmUgNHMgKEE5OUZGRkMzLThFMTktNERDRi1CNTg1LTdEOUQ0NkI0QzE2RSkgKFNodXRkb3duKVxuICAgICAgLy8gcmV0cmlldmU6XG4gICAgICAvLyAgIGlQaG9uZSA0c1xuICAgICAgLy8gICBBOTlGRkZDMy04RTE5LTREQ0YtQjU4NS03RDlENDZCNEMxNkVcbiAgICAgIC8vICAgU2h1dGRvd25cbiAgICAgIGNvbnN0IGxpbmVNYXRjaCA9IGxpbmVSZS5leGVjKGxpbmUpO1xuICAgICAgaWYgKCFsaW5lTWF0Y2gpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgbWF0Y2ggbGluZTogJHtsaW5lfWApO1xuICAgICAgfVxuICAgICAgLy8gc2F2ZSB0aGUgd2hvbGUgdGhpbmcgYXMgYWIgb2JqZWN0IGluIHRoZSBsaXN0IGZvciB0aGlzIHNka1xuICAgICAgZGV2aWNlc1tzZGtdLnB1c2goe1xuICAgICAgICBuYW1lOiBsaW5lTWF0Y2hbMV0sXG4gICAgICAgIHVkaWQ6IGxpbmVNYXRjaFsyXSxcbiAgICAgICAgc3RhdGU6IGxpbmVNYXRjaFszXSxcbiAgICAgICAgc2RrLFxuICAgICAgICBwbGF0Zm9ybTogcGxhdGZvcm0gfHwgbWF0Y2hbMV0sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGRldmljZXM7XG59O1xuXG4vKipcbiAqIFBhcnNlIHRoZSBsaXN0IG9mIGV4aXN0aW5nIFNpbXVsYXRvciBkZXZpY2VzIHRvIHJlcHJlc2VudFxuICogaXQgYXMgY29udmVuaWVudCBtYXBwaW5nIGZvciB0aGUgcGFydGljdWxhciBwbGF0Zm9ybSB2ZXJzaW9uLlxuICpcbiAqIEBwYXJhbSB7P3N0cmluZ30gZm9yU2RrIC0gVGhlIHNkayB2ZXJzaW9uLFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICBmb3Igd2hpY2ggdGhlIGRldmljZXMgbGlzdCBzaG91bGQgYmUgcGFyc2VkLFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgZXhhbXBsZSAnMTAuMycuXG4gKiBAcGFyYW0gez9zdHJpbmd9IHBsYXRmb3JtIC0gVGhlIHBsYXRmb3JtIG5hbWUsIGZvciBleGFtcGxlICd3YXRjaE9TJy5cbiAqIEByZXR1cm4ge09iamVjdHxBcnJheTxEZXZpY2VJbmZvPn0gSWYgX2ZvclNka18gaXMgc2V0IHRoZW4gdGhlIGxpc3RcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2YgZGV2aWNlcyBmb3IgdGhlIHBhcnRpY3VsYXIgcGxhdGZvcm0gdmVyc2lvbi5cbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3RoZXJ3aXNlIHRoZSBzYW1lIHJlc3VsdCBhcyBmb3Ige0BsaW5rIGdldERldmljZXNCeVBhcnNpbmd9XG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uLlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBjb3JyZXNwb25kaW5nIHNpbWN0bCBzdWJjb21tYW5kIGNvbW1hbmRcbiAqICAgICAgICAgICAgICAgICByZXR1cm5zIG5vbi16ZXJvIHJldHVybiBjb2RlIG9yIGlmIG5vIG1hdGNoaW5nXG4gKiAgICAgICAgICAgICAgICAgcGxhdGZvcm0gdmVyc2lvbiBpcyBmb3VuZCBpbiB0aGUgc3lzdGVtLlxuICovXG5jb21tYW5kcy5nZXREZXZpY2VzID0gYXN5bmMgZnVuY3Rpb24gZ2V0RGV2aWNlcyAoZm9yU2RrLCBwbGF0Zm9ybSkge1xuICBsZXQgZGV2aWNlcyA9IHt9O1xuICB0cnkge1xuICAgIGNvbnN0IHtzdGRvdXR9ID0gYXdhaXQgdGhpcy5leGVjKCdsaXN0Jywge1xuICAgICAgYXJnczogWydkZXZpY2VzJywgJy1qJ10sXG4gICAgfSk7XG4gICAgLyogSlNPTiBzaG91bGQgYmVcbiAgICAgKiB7XG4gICAgICogICBcImRldmljZXNcIiA6IHtcbiAgICAgKiAgICAgXCJpT1MgPHNkaz5cIiA6IFsgLy8gb3JcbiAgICAgKiAgICAgXCJjb20uYXBwbGUuQ29yZVNpbXVsYXRvci5TaW1SdW50aW1lLmlPUy08c2RrPiA6IFtcbiAgICAgKiAgICAgICB7XG4gICAgICogICAgICAgICBcInN0YXRlXCIgOiBcIkJvb3RlZFwiLFxuICAgICAqICAgICAgICAgXCJhdmFpbGFiaWxpdHlcIiA6IFwiKGF2YWlsYWJsZSlcIixcbiAgICAgKiAgICAgICAgIFwiaXNBdmFpbGFibGVcIiA6IHRydWUsXG4gICAgICogICAgICAgICBcIm5hbWVcIiA6IFwiaVBob25lIDZcIixcbiAgICAgKiAgICAgICAgIFwidWRpZFwiIDogXCI3NUUzNDE0MC0xOEU4LTREMUEtOUY0NS1BQUM3MzVERjc1REZcIlxuICAgICAqICAgICAgIH1cbiAgICAgKiAgICAgXVxuICAgICAqICAgfVxuICAgICAqIH1cbiAgICAgKi9cbiAgICBjb25zdCB2ZXJzaW9uTWF0Y2hSZSA9IF8uaXNFbXB0eShwbGF0Zm9ybSlcbiAgICAgID8gbmV3IFJlZ0V4cChgXihbXlxcXFxzLV0rKVtcXFxccy1dKFxcXFxTKylgLCAnaScpXG4gICAgICA6IG5ldyBSZWdFeHAoYF4ke18uZXNjYXBlUmVnRXhwKHBsYXRmb3JtKX1bXFxcXHMtXShcXFxcUyspYCwgJ2knKTtcbiAgICBmb3IgKGxldCBbc2RrTmFtZSwgZW50cmllc10gb2YgXy50b1BhaXJzKEpTT04ucGFyc2Uoc3Rkb3V0KS5kZXZpY2VzKSkge1xuICAgICAgLy8gdGhlcmUgY291bGQgYmUgYSBsb25nZXIgbmFtZSwgc28gcmVtb3ZlIGl0XG4gICAgICBzZGtOYW1lID0gc2RrTmFtZS5yZXBsYWNlKFNJTV9SVU5USU1FX05BTUUsICcnKTtcbiAgICAgIGNvbnN0IHZlcnNpb25NYXRjaCA9IHZlcnNpb25NYXRjaFJlLmV4ZWMoc2RrTmFtZSk7XG4gICAgICBpZiAoIXZlcnNpb25NYXRjaCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgLy8gdGhlIHNkayBjYW4gaGF2ZSBkYXNoZXMgKGAxMi0yYCkgb3IgZG90cyAoYDEyLjFgKVxuICAgICAgY29uc3Qgc2RrID0gKHBsYXRmb3JtID8gdmVyc2lvbk1hdGNoWzFdIDogdmVyc2lvbk1hdGNoWzJdKS5yZXBsYWNlKCctJywgJy4nKTtcbiAgICAgIGRldmljZXNbc2RrXSA9IGRldmljZXNbc2RrXSB8fCBbXTtcbiAgICAgIGRldmljZXNbc2RrXS5wdXNoKC4uLmVudHJpZXMuZmlsdGVyKChlbCkgPT4gXy5pc1VuZGVmaW5lZChlbC5pc0F2YWlsYWJsZSkgfHwgZWwuaXNBdmFpbGFibGUpXG4gICAgICAgIC5tYXAoKGVsKSA9PiB7XG4gICAgICAgICAgZGVsZXRlIGVsLmF2YWlsYWJpbGl0eTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc2RrLFxuICAgICAgICAgICAgLi4uZWwsXG4gICAgICAgICAgICBwbGF0Zm9ybTogcGxhdGZvcm0gfHwgdmVyc2lvbk1hdGNoWzFdLFxuICAgICAgICAgIH07XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgbG9nLmRlYnVnKExPR19QUkVGSVgsIGBVbmFibGUgdG8gZ2V0IEpTT04gZGV2aWNlIGxpc3Q6ICR7ZXJyLnN0YWNrfWApO1xuICAgIGxvZy5kZWJ1ZyhMT0dfUFJFRklYLCAnRmFsbGluZyBiYWNrIHRvIG1hbnVhbCBwYXJzaW5nJyk7XG4gICAgZGV2aWNlcyA9IGF3YWl0IHRoaXMuZ2V0RGV2aWNlc0J5UGFyc2luZyhwbGF0Zm9ybSk7XG4gIH1cblxuICBpZiAoIWZvclNkaykge1xuICAgIHJldHVybiBkZXZpY2VzO1xuICB9XG4gIC8vIGlmIGEgYGZvclNka2Agd2FzIHBhc3NlZCBpbiwgcmV0dXJuIG9ubHkgdGhlIGNvcnJlc3BvbmRpbmcgbGlzdFxuICBpZiAoZGV2aWNlc1tmb3JTZGtdKSB7XG4gICAgcmV0dXJuIGRldmljZXNbZm9yU2RrXTtcbiAgfVxuXG4gIGxldCBlcnJNc2cgPSBgJyR7Zm9yU2RrfScgZG9lcyBub3QgZXhpc3QgaW4gdGhlIGxpc3Qgb2Ygc2ltY3RsIFNES3MuYDtcbiAgY29uc3QgYXZhaWxhYmxlU0RLcyA9IF8ua2V5cyhkZXZpY2VzKTtcbiAgZXJyTXNnICs9IGF2YWlsYWJsZVNES3MubGVuZ3RoXG4gICAgPyBgIE9ubHkgdGhlIGZvbGxvd2luZyBTaW11bGF0b3IgU0RLIHZlcnNpb25zIGFyZSBhdmFpbGFibGUgb24geW91ciBzeXN0ZW06ICR7YXZhaWxhYmxlU0RLcy5qb2luKCcsICcpfWBcbiAgICA6IGAgTm8gU2ltdWxhdG9yIFNESyB2ZXJzaW9ucyBhcmUgYXZhaWxhYmxlIG9uIHlvdXIgc3lzdGVtLiBQbGVhc2UgaW5zdGFsbCBzb21lIHZpYSBYY29kZSBwcmVmZXJlbmNlcy5gO1xuICB0aHJvdyBuZXcgRXJyb3IoZXJyTXNnKTtcbn07XG5cbi8qKlxuICogR2V0IHRoZSBydW50aW1lIGZvciB0aGUgcGFydGljdWxhciBwbGF0Zm9ybSB2ZXJzaW9uIHVzaW5nIC0tanNvbiBmbGFnXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBsYXRmb3JtVmVyc2lvbiAtIFRoZSBwbGF0Zm9ybSB2ZXJzaW9uIG5hbWUsXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGV4YW1wbGUgJzEwLjMnLlxuICogQHBhcmFtIHs/c3RyaW5nfSBwbGF0Zm9ybSAtIFRoZSBwbGF0Zm9ybSBuYW1lLCBmb3IgZXhhbXBsZSAnd2F0Y2hPUycuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBjb3JyZXNwb25kaW5nIHJ1bnRpbWUgbmFtZSBmb3IgdGhlIGdpdmVuXG4gKiAgICAgICAgICAgICAgICAgIHBsYXRmb3JtIHZlcnNpb24uXG4gKi9cbmNvbW1hbmRzLmdldFJ1bnRpbWVGb3JQbGF0Zm9ybVZlcnNpb25WaWFKc29uID0gYXN5bmMgZnVuY3Rpb24gZ2V0UnVudGltZUZvclBsYXRmb3JtVmVyc2lvblZpYUpzb24gKFxuICBwbGF0Zm9ybVZlcnNpb24sIHBsYXRmb3JtID0gJ2lPUycpIHtcbiAgY29uc3Qge3N0ZG91dH0gPSBhd2FpdCB0aGlzLmV4ZWMoJ2xpc3QnLCB7XG4gICAgYXJnczogWydydW50aW1lcycsICctLWpzb24nXSxcbiAgfSk7XG4gIGZvciAoY29uc3Qge3ZlcnNpb24sIGlkZW50aWZpZXIsIG5hbWV9IG9mIEpTT04ucGFyc2Uoc3Rkb3V0KS5ydW50aW1lcykge1xuICAgIGlmIChub3JtYWxpemVWZXJzaW9uKHZlcnNpb24pID09PSBub3JtYWxpemVWZXJzaW9uKHBsYXRmb3JtVmVyc2lvbilcbiAgICAgICYmIG5hbWUudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKHBsYXRmb3JtLnRvTG93ZXJDYXNlKCkpKSB7XG4gICAgICByZXR1cm4gaWRlbnRpZmllcjtcbiAgICB9XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgdXNlIC0tanNvbiBmbGFnIHRvIHBhcnNlIHBsYXRmb3JtIHZlcnNpb25gKTtcbn07XG5cbi8qKlxuICogR2V0IHRoZSBydW50aW1lIGZvciB0aGUgcGFydGljdWxhciBwbGF0Zm9ybSB2ZXJzaW9uLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwbGF0Zm9ybVZlcnNpb24gLSBUaGUgcGxhdGZvcm0gdmVyc2lvbiBuYW1lLFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBleGFtcGxlICcxMC4zJy5cbiAqIEBwYXJhbSB7P3N0cmluZ30gcGxhdGZvcm0gLSBUaGUgcGxhdGZvcm0gbmFtZSwgZm9yIGV4YW1wbGUgJ3dhdGNoT1MnLlxuICogQHJldHVybiB7c3RyaW5nfSBUaGUgY29ycmVzcG9uZGluZyBydW50aW1lIG5hbWUgZm9yIHRoZSBnaXZlblxuICogICAgICAgICAgICAgICAgICBwbGF0Zm9ybSB2ZXJzaW9uLlxuICovXG5jb21tYW5kcy5nZXRSdW50aW1lRm9yUGxhdGZvcm1WZXJzaW9uID0gYXN5bmMgZnVuY3Rpb24gZ2V0UnVudGltZUZvclBsYXRmb3JtVmVyc2lvbiAoXG4gIHBsYXRmb3JtVmVyc2lvbiwgcGxhdGZvcm0gPSAnaU9TJykge1xuICAvLyBUcnkgd2l0aCBwYXJzaW5nXG4gIHRyeSB7XG4gICAgY29uc3Qge3N0ZG91dH0gPSBhd2FpdCB0aGlzLmV4ZWMoJ2xpc3QnLCB7XG4gICAgICBhcmdzOiBbJ3J1bnRpbWVzJ10sXG4gICAgfSk7XG4gICAgLy8gaHR0cHM6Ly9yZWdleDEwMS5jb20vci9VeWtqUVovMVxuICAgIGNvbnN0IHJ1bnRpbWVSZSA9XG4gICAgICBuZXcgUmVnRXhwKGAke18uZXNjYXBlUmVnRXhwKHBsYXRmb3JtKX1cXFxccysoXFxcXGQrXFxcXC5cXFxcZCspXFxcXHMrXFxcXCgoXFxcXGQrXFxcXC5cXFxcZCtcXFxcLipcXFxcZCopYCwgJ2knKTtcbiAgICBmb3IgKGNvbnN0IGxpbmUgb2Ygc3Rkb3V0LnNwbGl0KCdcXG4nKSkge1xuICAgICAgY29uc3QgbWF0Y2ggPSBydW50aW1lUmUuZXhlYyhsaW5lKTtcbiAgICAgIGlmIChtYXRjaCAmJiBtYXRjaFsxXSA9PT0gcGxhdGZvcm1WZXJzaW9uKSB7XG4gICAgICAgIHJldHVybiBtYXRjaFsyXTtcbiAgICAgIH1cbiAgICB9XG4gIH0gY2F0Y2ggKGlnbikge31cblxuICAvLyBpZiBub3RoaW5nIHdhcyBmb3VuZCwgcGFzcyBwbGF0Zm9ybSB2ZXJzaW9uIGJhY2tcbiAgcmV0dXJuIHBsYXRmb3JtVmVyc2lvbjtcbn07XG5cbi8qKlxuICogR2V0IHRoZSBsaXN0IG9mIGRldmljZSB0eXBlcyBhdmFpbGFibGUgaW4gdGhlIGN1cnJlbnQgWGNvZGUgaW5zdGFsbGF0aW9uXG4gKlxuICogQHJldHVybiB7QXJyYXk8c3RyaW5nPn0gTGlzdCBvZiB0aGUgdHlwZXMgb2YgZGV2aWNlcyBhdmFpbGFibGVcbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgY29ycmVzcG9uZGluZyBzaW1jdGwgY29tbWFuZCBmYWlsc1xuICovXG5jb21tYW5kcy5nZXREZXZpY2VUeXBlcyA9IGFzeW5jIGZ1bmN0aW9uIGdldERldmljZVR5cGVzICgpIHtcbiAgY29uc3Qge3N0ZG91dH0gPSBhd2FpdCB0aGlzLmV4ZWMoJ2xpc3QnLCB7XG4gICAgYXJnczogWydkZXZpY2V0eXBlcycsICctaiddLFxuICB9KTtcbiAgLypcbiAgICogSlNPTiB3aWxsIGJlIGxpa2U6XG4gICAqICAge1xuICAgKiAgICAgXCJkZXZpY2V0eXBlc1wiIDogW1xuICAgKiAgICAgICB7XG4gICAqICAgICAgICAgXCJuYW1lXCIgOiBcImlQaG9uZSA0c1wiLFxuICAgKiAgICAgICAgIFwiaWRlbnRpZmllclwiIDogXCJjb20uYXBwbGUuQ29yZVNpbXVsYXRvci5TaW1EZXZpY2VUeXBlLmlQaG9uZS00c1wiXG4gICAqICAgICAgIH0sXG4gICAqICAgICAgIC4uLlxuICAgKiAgIH1cbiAgICovXG4gIHRyeSB7XG4gICAgY29uc3QgZGV2aWNlVHlwZXMgPSBKU09OLnBhcnNlKHN0ZG91dC50cmltKCkpO1xuICAgIHJldHVybiBkZXZpY2VUeXBlcy5kZXZpY2V0eXBlcy5tYXAoKHR5cGUpID0+IHR5cGUubmFtZSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGdldCBsaXN0IG9mIGRldmljZSB0eXBlczogJHtlcnIubWVzc2FnZX1gKTtcbiAgfVxufTtcblxuLyoqXG4gKiBHZXQgdGhlIGZ1bGwgbGlzdCBvZiBydW50aW1lcywgZGV2aWNldHlwZXMsIGRldmljZXMgYW5kIHBhaXJzIGFzIE9iamVjdFxuICpcbiAqIEByZXR1cm4ge09iamVjdH0gT2JqZWN0IGNvbnRhaW5pbmcgZGV2aWNlIHR5cGVzLCBydW50aW1lcyBkZXZpY2VzIGFuZCBwYWlycy5cbiAqIFRoZSByZXN1bHRpbmcgSlNPTiB3aWxsIGJlIGxpa2U6XG4gKiAgIHtcbiAqICAgICBcImRldmljZXR5cGVzXCIgOiBbXG4gKiAgICAgICB7XG4gKiAgICAgICAgIFwibmFtZVwiIDogXCJpUGhvbmUgNHNcIixcbiAqICAgICAgICAgXCJpZGVudGlmaWVyXCIgOiBcImNvbS5hcHBsZS5Db3JlU2ltdWxhdG9yLlNpbURldmljZVR5cGUuaVBob25lLTRzXCJcbiAqICAgICAgIH0sXG4gKiAgICAgICAuLi5cbiAqICAgICAgXSxcbiAqICAgICBcInJ1bnRpbWVzXCIgOiBbXG4gKiAgICAgICB7XG4gKiAgICAgICAgIFwidmVyc2lvblwiIDogJzEzLjAnLFxuICogICAgICAgICBcImJ1bmRsZVBhdGhcIiA6ICcvQXBwbGljYXRpb25zL1hjb2RlMTFiZXRhNC5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lJyxcbiAqICAgICAgICAgXCJpc0F2YWlsYWJsZVwiIDogdHJ1ZSxcbiAqICAgICAgICAgXCJuYW1lXCIgOiAnaU9TIDEzLjAnLFxuICogICAgICAgICBcImlkZW50aWZpZXJcIiA6ICdjb20uYXBwbGUuQ29yZVNpbXVsYXRvci5TaW1SdW50aW1lLmlPUy0xMy0wJyxcbiAqICAgICAgICAgXCJidWlsZHZlcnNpb25cIiA6ICcxN0E1NTM0ZCdcbiAqICAgICAgIH0sXG4gKiAgICAgICAuLi5cbiAqICAgICAgfSxcbiAqICAgICBcImRldmljZXNcIiA6XG4gKiAgICAgICB7XG4gKiAgICAgICAgICdjb20uYXBwbGUuQ29yZVNpbXVsYXRvci5TaW1SdW50aW1lLmlPUy0xMy0wJzogWyBbT2JqZWN0XSwgW09iamVjdF0gXSB9LFxuICogICAgICAgICAuLi5cbiAqICAgICAgIH0sXG4gKiAgICAgXCJwYWlyc1wiIDoge30gfVxuICpcbiAqICAgfVxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBjb3JyZXNwb25kaW5nIHNpbWN0bCBjb21tYW5kIGZhaWxzXG4gKi9cbmNvbW1hbmRzLmxpc3QgPSBhc3luYyBmdW5jdGlvbiBsaXN0ICgpIHtcbiAgY29uc3Qge3N0ZG91dH0gPSBhd2FpdCB0aGlzLmV4ZWMoJ2xpc3QnLCB7XG4gICAgYXJnczogWyctaiddLFxuICB9KTtcbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShzdGRvdXQudHJpbSgpKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIHBhcnNlIHNpbWN0bCBsaXN0OiAke2UubWVzc2FnZX1gKTtcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwiZmlsZSI6ImxpYi9zdWJjb21tYW5kcy9saXN0LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
@@ -1,7 +1,5 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
4
-
5
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
6
4
 
7
5
  Object.defineProperty(exports, "__esModule", {
@@ -15,6 +13,10 @@ var _lodash = _interopRequireDefault(require("lodash"));
15
13
 
16
14
  var _logger = _interopRequireWildcard(require("../logger"));
17
15
 
16
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
+
18
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
+
18
20
  const commands = {};
19
21
 
20
22
  commands.shutdownDevice = async function shutdownDevice() {
@@ -35,4 +37,4 @@ var _default = commands;
35
37
  exports.default = _default;require('source-map-support').install();
36
38
 
37
39
 
38
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zdWJjb21tYW5kcy9zaHV0ZG93bi5qcyJdLCJuYW1lcyI6WyJjb21tYW5kcyIsInNodXRkb3duRGV2aWNlIiwiZXhlYyIsImFyZ3MiLCJyZXF1aXJlVWRpZCIsImUiLCJfIiwiaW5jbHVkZXMiLCJtZXNzYWdlIiwibG9nIiwiZGVidWciLCJMT0dfUFJFRklYIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBRUEsTUFBTUEsUUFBUSxHQUFHLEVBQWpCOztBQVNBQSxRQUFRLENBQUNDLGNBQVQsR0FBMEIsZUFBZUEsY0FBZixHQUFpQztBQUN6RCxNQUFJO0FBQ0YsVUFBTSxLQUFLQyxJQUFMLENBQVUsVUFBVixFQUFzQjtBQUMxQkMsTUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBS0MsV0FBTCxDQUFpQixVQUFqQixDQUFEO0FBRG9CLEtBQXRCLENBQU47QUFHRCxHQUpELENBSUUsT0FBT0MsQ0FBUCxFQUFVO0FBQ1YsUUFBSSxDQUFDQyxnQkFBRUMsUUFBRixDQUFXRixDQUFDLENBQUNHLE9BQWIsRUFBc0IseUJBQXRCLENBQUwsRUFBdUQ7QUFDckQsWUFBTUgsQ0FBTjtBQUNEOztBQUNESSxvQkFBSUMsS0FBSixDQUFVQyxrQkFBVixFQUF1QixtREFBdkI7QUFDRDtBQUNGLENBWEQ7O2VBYWVYLFEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IGxvZywgeyBMT0dfUFJFRklYIH0gZnJvbSAnLi4vbG9nZ2VyJztcblxuY29uc3QgY29tbWFuZHMgPSB7fTtcblxuLyoqXG4gKiBTaHV0ZG93biB0aGUgZ2l2ZW4gU2ltdWxhdG9yIGlmIGl0IGlzIHJ1bm5pbmcuXG4gKlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBjb3JyZXNwb25kaW5nIHNpbWN0bCBzdWJjb21tYW5kIGNvbW1hbmRcbiAqICAgICAgICAgICAgICAgICByZXR1cm5zIG5vbi16ZXJvIHJldHVybiBjb2RlLlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBgdWRpZGAgaW5zdGFuY2UgcHJvcGVydHkgaXMgdW5zZXRcbiAqL1xuY29tbWFuZHMuc2h1dGRvd25EZXZpY2UgPSBhc3luYyBmdW5jdGlvbiBzaHV0ZG93bkRldmljZSAoKSB7XG4gIHRyeSB7XG4gICAgYXdhaXQgdGhpcy5leGVjKCdzaHV0ZG93bicsIHtcbiAgICAgIGFyZ3M6IFt0aGlzLnJlcXVpcmVVZGlkKCdzaHV0ZG93bicpXSxcbiAgICB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGlmICghXy5pbmNsdWRlcyhlLm1lc3NhZ2UsICdjdXJyZW50IHN0YXRlOiBTaHV0ZG93bicpKSB7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgICBsb2cuZGVidWcoTE9HX1BSRUZJWCwgYFNpbXVsYXRvciBhbHJlYWR5IGluICdTaHV0ZG93bicgc3RhdGUuIENvbnRpbnVpbmdgKTtcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwiZmlsZSI6ImxpYi9zdWJjb21tYW5kcy9zaHV0ZG93bi5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLiJ9
40
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zdWJjb21tYW5kcy9zaHV0ZG93bi5qcyJdLCJuYW1lcyI6WyJjb21tYW5kcyIsInNodXRkb3duRGV2aWNlIiwiZXhlYyIsImFyZ3MiLCJyZXF1aXJlVWRpZCIsImUiLCJfIiwiaW5jbHVkZXMiLCJtZXNzYWdlIiwibG9nIiwiZGVidWciLCJMT0dfUFJFRklYIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOzs7Ozs7QUFFQSxNQUFNQSxRQUFRLEdBQUcsRUFBakI7O0FBU0FBLFFBQVEsQ0FBQ0MsY0FBVCxHQUEwQixlQUFlQSxjQUFmLEdBQWlDO0FBQ3pELE1BQUk7QUFDRixVQUFNLEtBQUtDLElBQUwsQ0FBVSxVQUFWLEVBQXNCO0FBQzFCQyxNQUFBQSxJQUFJLEVBQUUsQ0FBQyxLQUFLQyxXQUFMLENBQWlCLFVBQWpCLENBQUQ7QUFEb0IsS0FBdEIsQ0FBTjtBQUdELEdBSkQsQ0FJRSxPQUFPQyxDQUFQLEVBQVU7QUFDVixRQUFJLENBQUNDLGdCQUFFQyxRQUFGLENBQVdGLENBQUMsQ0FBQ0csT0FBYixFQUFzQix5QkFBdEIsQ0FBTCxFQUF1RDtBQUNyRCxZQUFNSCxDQUFOO0FBQ0Q7O0FBQ0RJLG9CQUFJQyxLQUFKLENBQVVDLGtCQUFWLEVBQXVCLG1EQUF2QjtBQUNEO0FBQ0YsQ0FYRDs7ZUFhZVgsUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgbG9nLCB7IExPR19QUkVGSVggfSBmcm9tICcuLi9sb2dnZXInO1xuXG5jb25zdCBjb21tYW5kcyA9IHt9O1xuXG4vKipcbiAqIFNodXRkb3duIHRoZSBnaXZlbiBTaW11bGF0b3IgaWYgaXQgaXMgcnVubmluZy5cbiAqXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIGNvcnJlc3BvbmRpbmcgc2ltY3RsIHN1YmNvbW1hbmQgY29tbWFuZFxuICogICAgICAgICAgICAgICAgIHJldHVybnMgbm9uLXplcm8gcmV0dXJuIGNvZGUuXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIGB1ZGlkYCBpbnN0YW5jZSBwcm9wZXJ0eSBpcyB1bnNldFxuICovXG5jb21tYW5kcy5zaHV0ZG93bkRldmljZSA9IGFzeW5jIGZ1bmN0aW9uIHNodXRkb3duRGV2aWNlICgpIHtcbiAgdHJ5IHtcbiAgICBhd2FpdCB0aGlzLmV4ZWMoJ3NodXRkb3duJywge1xuICAgICAgYXJnczogW3RoaXMucmVxdWlyZVVkaWQoJ3NodXRkb3duJyldLFxuICAgIH0pO1xuICB9IGNhdGNoIChlKSB7XG4gICAgaWYgKCFfLmluY2x1ZGVzKGUubWVzc2FnZSwgJ2N1cnJlbnQgc3RhdGU6IFNodXRkb3duJykpIHtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICAgIGxvZy5kZWJ1ZyhMT0dfUFJFRklYLCBgU2ltdWxhdG9yIGFscmVhZHkgaW4gJ1NodXRkb3duJyBzdGF0ZS4gQ29udGludWluZ2ApO1xuICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBjb21tYW5kcztcbiJdLCJmaWxlIjoibGliL3N1YmNvbW1hbmRzL3NodXRkb3duLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
package/lib/helpers.js CHANGED
@@ -1,8 +1,6 @@
1
1
  import semver from 'semver';
2
2
 
3
-
4
3
  const DEFAULT_EXEC_TIMEOUT = 10 * 60 * 1000; // ms
5
- const XCRUN_BINARY = 'xcrun';
6
4
  const SIM_RUNTIME_NAME = 'com.apple.CoreSimulator.SimRuntime.';
7
5
 
8
6
  /**
@@ -22,6 +20,8 @@ function normalizeVersion (version) {
22
20
  }
23
21
 
24
22
  export {
25
- DEFAULT_EXEC_TIMEOUT, XCRUN_BINARY, SIM_RUNTIME_NAME,
23
+ DEFAULT_EXEC_TIMEOUT, SIM_RUNTIME_NAME,
26
24
  normalizeVersion,
27
25
  };
26
+
27
+ export const getXcrunBinary = () => process.env.XCRUN_BINARY || 'xcrun';
package/lib/simctl.js CHANGED
@@ -3,7 +3,7 @@ import subcommands from './subcommands/index.js';
3
3
  import which from 'which';
4
4
  import log, { LOG_PREFIX } from './logger';
5
5
  import {
6
- DEFAULT_EXEC_TIMEOUT, XCRUN_BINARY,
6
+ DEFAULT_EXEC_TIMEOUT, getXcrunBinary,
7
7
  } from './helpers';
8
8
  import { exec as tpExec, SubProcess } from 'teen_process';
9
9
 
@@ -38,14 +38,16 @@ const DEFAULT_OPTS = {
38
38
  * the instance to automatically detect the full path to `xcrun` tool and to throw
39
39
  * an exception if it cannot be detected. If the path is set upon instance creation
40
40
  * then it is going to be used by `exec` and no autodetection will happen.
41
- * @property {?number} execTimeout [600000] - The maximum number of miulliseconds
41
+ * @property {?number} execTimeout [600000] - The maximum number of milliseconds
42
42
  * to wait for single synchronous xcrun command.
43
43
  * @property {?boolean} logErrors [true] - Whether to wire xcrun error messages
44
44
  * into debug log before throwing them.
45
45
  * @property {?string} udid [null] - The unique identifier of the current device, which is
46
- * going to be implictly passed to all methods, which require it. It can either be set
47
- * upon instance creation if it is already known in davnce or later when/if needed via the
46
+ * going to be implicitly passed to all methods, which require it. It can either be set
47
+ * upon instance creation if it is already known in advance or later when/if needed via the
48
48
  * corresponding instance setter.
49
+ * @property {?string} devicesSetPath - Full path to the set of devices that you want to manage.
50
+ * By default this path usually equals to ~/Library/Developer/CoreSimulator/Devices
49
51
  */
50
52
 
51
53
 
@@ -60,6 +62,7 @@ class Simctl {
60
62
  this[key] = opts[key];
61
63
  }
62
64
  this._udid = _.isNil(opts.udid) ? null : opts.udid;
65
+ this._devicesSetPath = _.isNil(opts.devicesSetPath) ? null : opts.devicesSetPath;
63
66
  }
64
67
 
65
68
  set udid (value) {
@@ -70,6 +73,14 @@ class Simctl {
70
73
  return this._udid;
71
74
  }
72
75
 
76
+ set devicesSetPath (value) {
77
+ this._devicesSetPath = value;
78
+ }
79
+
80
+ get devicesSetPath () {
81
+ return this._devicesSetPath;
82
+ }
83
+
73
84
  requireUdid (commandName = null) {
74
85
  if (!this.udid) {
75
86
  throw new Error(`udid is required to be set for ` +
@@ -79,11 +90,13 @@ class Simctl {
79
90
  }
80
91
 
81
92
  async requireXcrun () {
93
+ const xcrunBinary = getXcrunBinary();
94
+
82
95
  if (!this.xcrun.path) {
83
96
  try {
84
- this.xcrun.path = await which(XCRUN_BINARY);
97
+ this.xcrun.path = await which(xcrunBinary);
85
98
  } catch (e) {
86
- throw new Error(`${XCRUN_BINARY} tool has not been found in PATH. ` +
99
+ throw new Error(`${xcrunBinary} tool has not been found in PATH. ` +
87
100
  `Are Xcode developers tools installed?`);
88
101
  }
89
102
  }
@@ -110,7 +123,11 @@ class Simctl {
110
123
  logErrors = true,
111
124
  } = opts;
112
125
  // run a particular simctl command
113
- args = ['simctl', subcommand, ...args];
126
+ args = ['simctl',
127
+ ...(this.devicesSetPath ? ['--set', this.devicesSetPath] : []),
128
+ subcommand,
129
+ ...args
130
+ ];
114
131
  // Prefix all passed in environment variables with 'SIMCTL_CHILD_', simctl
115
132
  // will then pass these to the child (spawned) process.
116
133
  env = _.defaults(
@@ -132,15 +149,14 @@ class Simctl {
132
149
  if (!this.logErrors || !logErrors) {
133
150
  // if we don't want to see the errors, just throw and allow the calling
134
151
  // code do what it wants
135
- throw e;
136
152
  } else if (e.stderr) {
137
153
  const msg = `Error running '${subcommand}': ${e.stderr.trim()}`;
138
154
  log.debug(LOG_PREFIX, msg);
139
- throw Error(msg);
155
+ e.message = msg;
140
156
  } else {
141
157
  log.debug(LOG_PREFIX, e.message);
142
- throw e;
143
158
  }
159
+ throw e;
144
160
  }
145
161
  }
146
162
  }
@@ -152,4 +168,4 @@ for (const [fnName, fn] of _.toPairs(subcommands)) {
152
168
  }
153
169
 
154
170
  export default Simctl;
155
- export { Simctl };
171
+ export { Simctl };
@@ -12,6 +12,8 @@ const commands = {};
12
12
  * @property {?Function} onFinished - This event is fired when Simulator is fully booted.
13
13
  * @property {?Function} onError - This event is fired when there was an error while monitoring the booting process
14
14
  * or when the timeout has expired.
15
+ * @property {?boolean} shouldPreboot [false] Whether to preboot the Simulator
16
+ * if this command is called and it is not already in booted or booting state.
15
17
  */
16
18
 
17
19
  /**
@@ -33,6 +35,7 @@ commands.startBootMonitor = async function startBootMonitor (opts = {}) {
33
35
  onWaitingSystemApp,
34
36
  onFinished,
35
37
  onError,
38
+ shouldPreboot,
36
39
  } = opts;
37
40
  const udid = this.requireUdid('bootstatus');
38
41
 
@@ -40,8 +43,12 @@ commands.startBootMonitor = async function startBootMonitor (opts = {}) {
40
43
  let isBootingFinished = false;
41
44
  let error = null;
42
45
  let timeoutHandler = null;
46
+ const args = [udid];
47
+ if (shouldPreboot) {
48
+ args.push('-b');
49
+ }
43
50
  const bootMonitor = await this.exec('bootstatus', {
44
- args: [udid],
51
+ args,
45
52
  asynchronous: true,
46
53
  });
47
54
  bootMonitor.on('output', (stdout, stderr) => {
package/package.json CHANGED
@@ -6,7 +6,7 @@
6
6
  "ios",
7
7
  "simctl"
8
8
  ],
9
- "version": "6.3.4",
9
+ "version": "6.6.0",
10
10
  "author": "https://github.com/appium",
11
11
  "license": "Apache-2.0",
12
12
  "repository": {
@@ -33,7 +33,7 @@
33
33
  "asyncbox": "^2.3.1",
34
34
  "bluebird": "^3.5.1",
35
35
  "lodash": "^4.2.1",
36
- "npmlog": "^4.1.2",
36
+ "npmlog": "^5.0.0",
37
37
  "rimraf": "^3.0.0",
38
38
  "semver": "^7.0.0",
39
39
  "source-map-support": "^0.5.5",
@@ -65,8 +65,9 @@
65
65
  "chai-as-promised": "^7.1.1",
66
66
  "eslint-config-appium": "^4.2.0",
67
67
  "gulp": "^4.0.0",
68
- "mocha": "^8.0.1",
68
+ "mocha": "^9.0.0",
69
69
  "pre-commit": "^1.1.3",
70
- "sinon": "^9.0.0"
70
+ "proxyquire": "^2.1.3",
71
+ "sinon": "^11.0.0"
71
72
  }
72
73
  }