node-simctl 6.3.2 → 6.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -1
- package/build/lib/logger.js +5 -7
- package/build/lib/simctl.js +22 -12
- package/build/lib/subcommands/boot.js +5 -3
- package/build/lib/subcommands/create.js +5 -3
- package/build/lib/subcommands/list.js +6 -4
- package/build/lib/subcommands/shutdown.js +5 -3
- package/lib/logger.js +4 -3
- package/lib/simctl.js +26 -11
- package/lib/subcommands/boot.js +2 -2
- package/lib/subcommands/create.js +3 -2
- package/lib/subcommands/list.js +3 -3
- package/lib/subcommands/shutdown.js +2 -3
- package/package.json +2 -3
package/README.md
CHANGED
|
@@ -6,7 +6,6 @@
|
|
|
6
6
|
[](https://david-dm.org/appium/node-simctl#info=devDependencies)
|
|
7
7
|
|
|
8
8
|
[](https://travis-ci.org/appium/node-simctl)
|
|
9
|
-
[](https://coveralls.io/r/appium/node-simctl?branch=master)
|
|
10
9
|
|
|
11
10
|
ES6/7 Node wrapper around Apple's `simctl` binary, the "Command line utility to control the iOS Simulator". `simctl` is run as a sub-command of [xcrun](https://developer.apple.com/library/mac/documentation/Darwin/Reference/ManPages/man1/xcrun.1.html)
|
|
12
11
|
|
|
@@ -163,6 +162,10 @@ into the debug log before throwing them as errors.
|
|
|
163
162
|
going to be implicitly passed to all methods, which require it (see above). It can either be set
|
|
164
163
|
upon instance creation if it is already known or later when/if needed via the corresponding
|
|
165
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.
|
|
166
169
|
|
|
167
170
|
|
|
168
171
|
### Advanced Usage
|
package/build/lib/logger.js
CHANGED
|
@@ -5,15 +5,17 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", {
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
|
-
exports.default = void 0;
|
|
8
|
+
exports.default = exports.LOG_PREFIX = void 0;
|
|
9
9
|
|
|
10
10
|
require("source-map-support/register");
|
|
11
11
|
|
|
12
12
|
var _npmlog = _interopRequireDefault(require("npmlog"));
|
|
13
13
|
|
|
14
|
+
const LOG_PREFIX = 'simctl';
|
|
15
|
+
exports.LOG_PREFIX = LOG_PREFIX;
|
|
16
|
+
|
|
14
17
|
function getLogger() {
|
|
15
18
|
const logger = global._global_npmlog || _npmlog.default;
|
|
16
|
-
logger.maxRecordSize = 3000;
|
|
17
19
|
|
|
18
20
|
if (!logger.debug) {
|
|
19
21
|
logger.addLevel('debug', 1000, {
|
|
@@ -22,10 +24,6 @@ function getLogger() {
|
|
|
22
24
|
}, 'dbug');
|
|
23
25
|
}
|
|
24
26
|
|
|
25
|
-
const originalLog = logger.log.bind(logger);
|
|
26
|
-
|
|
27
|
-
logger.log = (level, prefix, ...args) => originalLog(level, 'simctl', prefix, ...args);
|
|
28
|
-
|
|
29
27
|
return logger;
|
|
30
28
|
}
|
|
31
29
|
|
|
@@ -34,4 +32,4 @@ var _default = log;
|
|
|
34
32
|
exports.default = _default;require('source-map-support').install();
|
|
35
33
|
|
|
36
34
|
|
|
37
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
35
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9sb2dnZXIuanMiXSwibmFtZXMiOlsiTE9HX1BSRUZJWCIsImdldExvZ2dlciIsImxvZ2dlciIsImdsb2JhbCIsIl9nbG9iYWxfbnBtbG9nIiwibnBtbG9nIiwiZGVidWciLCJhZGRMZXZlbCIsImZnIiwiYmciLCJsb2ciXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBR0EsTUFBTUEsVUFBVSxHQUFHLFFBQW5COzs7QUFFQSxTQUFTQyxTQUFULEdBQXNCO0FBQ3BCLFFBQU1DLE1BQU0sR0FBR0MsTUFBTSxDQUFDQyxjQUFQLElBQXlCQyxlQUF4Qzs7QUFDQSxNQUFJLENBQUNILE1BQU0sQ0FBQ0ksS0FBWixFQUFtQjtBQUNqQkosSUFBQUEsTUFBTSxDQUFDSyxRQUFQLENBQWdCLE9BQWhCLEVBQXlCLElBQXpCLEVBQStCO0FBQUVDLE1BQUFBLEVBQUUsRUFBRSxNQUFOO0FBQWNDLE1BQUFBLEVBQUUsRUFBRTtBQUFsQixLQUEvQixFQUE0RCxNQUE1RDtBQUNEOztBQUNELFNBQU9QLE1BQVA7QUFDRDs7QUFFRCxNQUFNUSxHQUFHLEdBQUdULFNBQVMsRUFBckI7ZUFHZVMsRyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBucG1sb2cgZnJvbSAnbnBtbG9nJztcblxuXG5jb25zdCBMT0dfUFJFRklYID0gJ3NpbWN0bCc7XG5cbmZ1bmN0aW9uIGdldExvZ2dlciAoKSB7XG4gIGNvbnN0IGxvZ2dlciA9IGdsb2JhbC5fZ2xvYmFsX25wbWxvZyB8fCBucG1sb2c7XG4gIGlmICghbG9nZ2VyLmRlYnVnKSB7XG4gICAgbG9nZ2VyLmFkZExldmVsKCdkZWJ1ZycsIDEwMDAsIHsgZmc6ICdibHVlJywgYmc6ICdibGFjaycgfSwgJ2RidWcnKTtcbiAgfVxuICByZXR1cm4gbG9nZ2VyO1xufVxuXG5jb25zdCBsb2cgPSBnZXRMb2dnZXIoKTtcblxuZXhwb3J0IHsgTE9HX1BSRUZJWCB9O1xuZXhwb3J0IGRlZmF1bHQgbG9nO1xuIl0sImZpbGUiOiJsaWIvbG9nZ2VyLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uIn0=
|
package/build/lib/simctl.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
+
|
|
3
5
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
6
|
|
|
5
7
|
Object.defineProperty(exports, "__esModule", {
|
|
@@ -15,7 +17,7 @@ var _index = _interopRequireDefault(require("./subcommands/index.js"));
|
|
|
15
17
|
|
|
16
18
|
var _which = _interopRequireDefault(require("which"));
|
|
17
19
|
|
|
18
|
-
var _logger =
|
|
20
|
+
var _logger = _interopRequireWildcard(require("./logger"));
|
|
19
21
|
|
|
20
22
|
var _helpers = require("./helpers");
|
|
21
23
|
|
|
@@ -41,6 +43,7 @@ class Simctl {
|
|
|
41
43
|
}
|
|
42
44
|
|
|
43
45
|
this._udid = _lodash.default.isNil(opts.udid) ? null : opts.udid;
|
|
46
|
+
this._devicesSetPath = _lodash.default.isNil(opts.devicesSetPath) ? null : opts.devicesSetPath;
|
|
44
47
|
}
|
|
45
48
|
|
|
46
49
|
set udid(value) {
|
|
@@ -51,6 +54,14 @@ class Simctl {
|
|
|
51
54
|
return this._udid;
|
|
52
55
|
}
|
|
53
56
|
|
|
57
|
+
set devicesSetPath(value) {
|
|
58
|
+
this._devicesSetPath = value;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
get devicesSetPath() {
|
|
62
|
+
return this._devicesSetPath;
|
|
63
|
+
}
|
|
64
|
+
|
|
54
65
|
requireUdid(commandName = null) {
|
|
55
66
|
if (!this.udid) {
|
|
56
67
|
throw new Error(`udid is required to be set for ` + (commandName ? `the '${commandName}' command` : 'this simctl command'));
|
|
@@ -76,9 +87,10 @@ class Simctl {
|
|
|
76
87
|
args = [],
|
|
77
88
|
env = {},
|
|
78
89
|
asynchronous = false,
|
|
79
|
-
encoding
|
|
90
|
+
encoding,
|
|
91
|
+
logErrors = true
|
|
80
92
|
} = opts;
|
|
81
|
-
args = ['simctl', subcommand, ...args];
|
|
93
|
+
args = ['simctl', ...(this.devicesSetPath ? ['--set', this.devicesSetPath] : []), subcommand, ...args];
|
|
82
94
|
env = _lodash.default.defaults(_lodash.default.mapKeys(env, (value, key) => _lodash.default.startsWith(key, SIMCTL_ENV_PREFIX) ? key : `${SIMCTL_ENV_PREFIX}${key}`), process.env);
|
|
83
95
|
const execOpts = {
|
|
84
96
|
env,
|
|
@@ -94,19 +106,17 @@ class Simctl {
|
|
|
94
106
|
try {
|
|
95
107
|
return asynchronous ? new _teen_process.SubProcess(xcrun, args, execOpts) : await (0, _teen_process.exec)(xcrun, args, execOpts);
|
|
96
108
|
} catch (e) {
|
|
97
|
-
if (!this.logErrors) {
|
|
98
|
-
throw e;
|
|
99
|
-
} else if (e.stderr) {
|
|
109
|
+
if (!this.logErrors || !logErrors) {} else if (e.stderr) {
|
|
100
110
|
const msg = `Error running '${subcommand}': ${e.stderr.trim()}`;
|
|
101
111
|
|
|
102
|
-
_logger.default.debug(msg);
|
|
112
|
+
_logger.default.debug(_logger.LOG_PREFIX, msg);
|
|
103
113
|
|
|
104
|
-
|
|
114
|
+
e.message = msg;
|
|
105
115
|
} else {
|
|
106
|
-
_logger.default.debug(e.message);
|
|
107
|
-
|
|
108
|
-
throw e;
|
|
116
|
+
_logger.default.debug(_logger.LOG_PREFIX, e.message);
|
|
109
117
|
}
|
|
118
|
+
|
|
119
|
+
throw e;
|
|
110
120
|
}
|
|
111
121
|
}
|
|
112
122
|
|
|
@@ -122,4 +132,4 @@ var _default = Simctl;
|
|
|
122
132
|
exports.default = _default;require('source-map-support').install();
|
|
123
133
|
|
|
124
134
|
|
|
125
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zaW1jdGwuanMiXSwibmFtZXMiOlsiU0lNQ1RMX0VOVl9QUkVGSVgiLCJERUZBVUxUX09QVFMiLCJ4Y3J1biIsInBhdGgiLCJleGVjVGltZW91dCIsIkRFRkFVTFRfRVhFQ19USU1FT1VUIiwibG9nRXJyb3JzIiwiU2ltY3RsIiwiY29uc3RydWN0b3IiLCJvcHRzIiwiXyIsImNsb25lRGVlcCIsImRlZmF1bHRzRGVlcCIsImtleSIsImtleXMiLCJfdWRpZCIsImlzTmlsIiwidWRpZCIsInZhbHVlIiwicmVxdWlyZVVkaWQiLCJjb21tYW5kTmFtZSIsIkVycm9yIiwicmVxdWlyZVhjcnVuIiwiWENSVU5fQklOQVJZIiwiZSIsImV4ZWMiLCJzdWJjb21tYW5kIiwiYXJncyIsImVudiIsImFzeW5jaHJvbm91cyIsImVuY29kaW5nIiwiZGVmYXVsdHMiLCJtYXBLZXlzIiwic3RhcnRzV2l0aCIsInByb2Nlc3MiLCJleGVjT3B0cyIsInRpbWVvdXQiLCJTdWJQcm9jZXNzIiwic3RkZXJyIiwibXNnIiwidHJpbSIsImxvZyIsImRlYnVnIiwibWVzc2FnZSIsImZuTmFtZSIsImZuIiwidG9QYWlycyIsInN1YmNvbW1hbmRzIiwicHJvdG90eXBlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUdBOztBQUVBLE1BQU1BLGlCQUFpQixHQUFHLGVBQTFCO0FBQ0EsTUFBTUMsWUFBWSxHQUFHO0FBQ25CQyxFQUFBQSxLQUFLLEVBQUU7QUFDTEMsSUFBQUEsSUFBSSxFQUFFO0FBREQsR0FEWTtBQUluQkMsRUFBQUEsV0FBVyxFQUFFQyw2QkFKTTtBQUtuQkMsRUFBQUEsU0FBUyxFQUFFO0FBTFEsQ0FBckI7O0FBeUNBLE1BQU1DLE1BQU4sQ0FBYTtBQUlYQyxFQUFBQSxXQUFXLENBQUVDLElBQUksR0FBRyxFQUFULEVBQWE7QUFDdEJBLElBQUFBLElBQUksR0FBR0MsZ0JBQUVDLFNBQUYsQ0FBWUYsSUFBWixD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QkFBaUJiLFVBQVcsTUFBS0YsQ0FBQyxDQUFDYyxNQUFGLENBQVNFLElBQVQsRUFBZ0IsRUFBOUQ7O0FBQ0FDLHdCQUFJQyxLQUFKLENBQVVILEdBQVY7O0FBQ0EsY0FBTWxCLEtBQUssQ0FBQ2tCLEdBQUQsQ0FBWDtBQUNELE9BSk0sTUFJQTtBQUNMRSx3QkFBSUMsS0FBSixDQUFVbEIsQ0FBQyxDQUFDbUIsT0FBWjs7QUFDQSxjQUFNbkIsQ0FBTjtBQUNEO0FBQ0Y7QUFDRjs7QUE1RlU7Ozs7QUFpR2IsS0FBSyxNQUFNLENBQUNvQixNQUFELEVBQVNDLEVBQVQsQ0FBWCxJQUEyQm5DLGdCQUFFb0MsT0FBRixDQUFVQyxjQUFWLENBQTNCLEVBQW1EO0FBQ2pEeEMsRUFBQUEsTUFBTSxDQUFDeUMsU0FBUCxDQUFpQkosTUFBakIsSUFBMkJDLEVBQTNCO0FBQ0Q7O2VBRWN0QyxNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBzdWJjb21tYW5kcyBmcm9tICcuL3N1YmNvbW1hbmRzL2luZGV4LmpzJztcbmltcG9ydCB3aGljaCBmcm9tICd3aGljaCc7XG5pbXBvcnQgbG9nIGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCB7XG4gIERFRkFVTFRfRVhFQ19USU1FT1VULCBYQ1JVTl9CSU5BUlksXG59IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBleGVjIGFzIHRwRXhlYywgU3ViUHJvY2VzcyB9IGZyb20gJ3RlZW5fcHJvY2Vzcyc7XG5cbmNvbnN0IFNJTUNUTF9FTlZfUFJFRklYID0gJ1NJTUNUTF9DSElMRF8nO1xuY29uc3QgREVGQVVMVF9PUFRTID0ge1xuICB4Y3J1bjoge1xuICAgIHBhdGg6IG51bGwsXG4gIH0sXG4gIGV4ZWNUaW1lb3V0OiBERUZBVUxUX0VYRUNfVElNRU9VVCxcbiAgbG9nRXJyb3JzOiB0cnVlLFxufTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBFeGVjT3B0c1xuICogQHByb3BlcnR5IHtBcnJheS48c3RyaW5nPn0gYXJncyBbW11dIC0gVGhlIGxpc3Qgb2YgYWRkaXRpb25hbCBzdWJjb21tYW5kIGFyZ3VtZW50cy5cbiAqIEl0J3MgZW1wdHkgYnkgZGVmYXVsdC5cbiAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBlbnYgW3t9XSAtIEVudmlyb25tZW50IHZhcmlhYmxlcyBtYXBwaW5nLiBBbGwgdGhlc2UgdmFyaWFibGVzXG4gKiB3aWxsIGJlIHBhc3NlZCBTaW11bGF0b3IgYW5kIHVzZWQgaW4gdGhlIGV4ZWN1dGluZyBmdW5jdGlvbi5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gbG9nRXJyb3JzIFt0cnVlXSAtIFNldCBpdCB0byBfZmFsc2VfIHRvIHRocm93IGV4ZWN1dGlvbiBlcnJvcnNcbiAqIGltbWVkaWF0ZWx5IHdpdGhvdXQgbG9nZ2luZyBhbnkgYWRkaXRpb25hbCBpbmZvcm1hdGlvbi5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gYXN5bmNocm9ub3VzIFtmYWxzZV0gLSBXaGV0aGVyIHRvIGV4ZWN1dGUgdGhlIGdpdmVuIGNvbW1hbmRcbiAqICdzeW5jaHJvbm91c2x5JyBvciAnYXN5bmNocm9ub3VzbHknLiBBZmZlY3RzIHRoZSByZXR1cm5lZCByZXN1bHQgb2YgdGhlIGZ1bmN0aW9uLlxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBlbmNvZGluZyAtIEV4cGxpY2l0bHkgc2V0cyBzdHJlYW1zIGVuY29kaW5nIGZvciB0aGUgZXhlY3V0ZWRcbiAqIGNvbW1hbmQgaW5wdXQgYW5kIG91dHB1dHMuXG4gKi9cblxuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IFNpbWN0bE9wdHNcbiAqIEBwcm9wZXJ0eSB7P09iamVjdH0geGNydW4gLSBUaGUgeGNydW4gcHJvcGVydGllcy4gQ3VycmVudGx5IG9ubHkgb25lIHByb3BlcnR5XG4gKiBpcyBzdXBwb3J0ZWQsIHdoaWNoIGlzIGBwYXRoYCBhbmQgaXQgYnkgZGVmYXVsdCBjb250YWlucyBgbnVsbGAsIHdoaWNoIGVuZm9yY2VzXG4gKiB0aGUgaW5zdGFuY2UgdG8gYXV0b21hdGljYWxseSBkZXRlY3QgdGhlIGZ1bGwgcGF0aCB0byBgeGNydW5gIHRvb2wgYW5kIHRvIHRocm93XG4gKiBhbiBleGNlcHRpb24gaWYgaXQgY2Fubm90IGJlIGRldGVjdGVkLiBJZiB0aGUgcGF0aCBpcyBzZXQgdXBvbiBpbnN0YW5jZSBjcmVhdGlvblxuICogdGhlbiBpdCBpcyBnb2luZyB0byBiZSB1c2VkIGJ5IGBleGVjYCBhbmQgbm8gYXV0b2RldGVjdGlvbiB3aWxsIGhhcHBlbi5cbiAqIEBwcm9wZXJ0eSB7P251bWJlcn0gZXhlY1RpbWVvdXQgWzYwMDAwMF0gLSBUaGUgbWF4aW11bSBudW1iZXIgb2YgbWl1bGxpc2Vjb25kc1xuICogdG8gd2FpdCBmb3Igc2luZ2xlIHN5bmNocm9ub3VzIHhjcnVuIGNvbW1hbmQuXG4gKiBAcHJvcGVydHkgez9ib29sZWFufSBsb2dFcnJvcnMgW3RydWVdIC0gV2hldGhlciB0byB3aXJlIHhjcnVuIGVycm9yIG1lc3NhZ2VzXG4gKiBpbnRvIGRlYnVnIGxvZyBiZWZvcmUgdGhyb3dpbmcgdGhlbS5cbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gdWRpZCBbbnVsbF0gLSBUaGUgdW5pcXVlIGlkZW50aWZpZXIgb2YgdGhlIGN1cnJlbnQgZGV2aWNlLCB3aGljaCBpc1xuICogZ29pbmcgdG8gYmUgaW1wbGljdGx5IHBhc3NlZCB0byBhbGwgbWV0aG9kcywgd2hpY2ggcmVxdWlyZSBpdC4gSXQgY2FuIGVpdGhlciBiZSBzZXRcbiAqIHVwb24gaW5zdGFuY2UgY3JlYXRpb24gaWYgaXQgaXMgYWxyZWFkeSBrbm93biBpbiBkYXZuY2Ugb3IgbGF0ZXIgd2hlbi9pZiBuZWVkZWQgdmlhIHRoZVxuICogY29ycmVzcG9uZGluZyBpbnN0YW5jZSBzZXR0ZXIuXG4gKi9cblxuXG5jbGFzcyBTaW1jdGwge1xuICAvKipcbiAgICogQHBhcmFtIHs/U2ltY3RsT3B0c30gb3B0c1xuICAgKi9cbiAgY29uc3RydWN0b3IgKG9wdHMgPSB7fSkge1xuICAgIG9wdHMgPSBfLmNsb25lRGVlcChvcHRzKTtcbiAgICBfLmRlZmF1bHRzRGVlcChvcHRzLCBERUZBVUxUX09QVFMpO1xuICAgIGZvciAoY29uc3Qga2V5IG9mIF8ua2V5cyhERUZBVUxUX09QVFMpKSB7XG4gICAgICB0aGlzW2tleV0gPSBvcHRzW2tleV07XG4gICAgfVxuICAgIHRoaXMuX3VkaWQgPSBfLmlzTmlsKG9wdHMudWRpZCkgPyBudWxsIDogb3B0cy51ZGlkO1xuICB9XG5cbiAgc2V0IHVkaWQgKHZhbHVlKSB7XG4gICAgdGhpcy5fdWRpZCA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IHVkaWQgKCkge1xuICAgIHJldHVybiB0aGlzLl91ZGlkO1xuICB9XG5cbiAgcmVxdWlyZVVkaWQgKGNvbW1hbmROYW1lID0gbnVsbCkge1xuICAgIGlmICghdGhpcy51ZGlkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYHVkaWQgaXMgcmVxdWlyZWQgdG8gYmUgc2V0IGZvciBgICtcbiAgICAgICAgKGNvbW1hbmROYW1lID8gYHRoZSAnJHtjb21tYW5kTmFtZX0nIGNvbW1hbmRgIDogJ3RoaXMgc2ltY3RsIGNvbW1hbmQnKSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnVkaWQ7XG4gIH1cblxuICBhc3luYyByZXF1aXJlWGNydW4gKCkge1xuICAgIGlmICghdGhpcy54Y3J1bi5wYXRoKSB7XG4gICAgICB0cnkge1xuICAgICAgICB0aGlzLnhjcnVuLnBhdGggPSBhd2FpdCB3aGljaChYQ1JVTl9CSU5BUlkpO1xuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7WENSVU5fQklOQVJZfSB0b29sIGhhcyBub3QgYmVlbiBmb3VuZCBpbiBQQVRILiBgICtcbiAgICAgICAgICBgQXJlIFhjb2RlIGRldmVsb3BlcnMgdG9vbHMgaW5zdGFsbGVkP2ApO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdGhpcy54Y3J1bi5wYXRoO1xuICB9XG5cbiAgLyoqXG4gICAqIEV4ZWN1dGUgdGhlIHBhcnRpY3VsYXIgc2ltY3RsIGNvbW1hbmQuXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBzdWJjb21tYW5kIC0gT25lIG9mIGF2YWlsYWJsZSBzaW1jdGwgc3ViY29tbWFuZHMuXG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgRXhlY3V0ZSBgeGNydW4gc2ltY3RsYCBpbiBUZXJtaW5hbCB0byBzZWUgdGhlIGZ1bGwgbGlzdFxuICAgKiAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mIGF2YWlsYWJsZSBzdWJjb21tYW5kcy5cbiAgICogQHBhcmFtIHs/RXhlY09wdHN9IG9wdHNcbiAgICogQHJldHVybiB7RXhlY1Jlc3VsdHxTdWJQcm9jZXNzfSBFaXRoZXIgdGhlIHJlc3VsdCBvZiB0ZWVuIHByb2Nlc3MncyBgZXhlY2Agb3JcbiAgICogYFN1YlByb2Nlc3NgIGluc3RhbmNlIGRlcGVuZGluZyBvZiBgb3B0cy5hc3luY2hyb25vdXNgIHZhbHVlLlxuICAgKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIHNpbWN0bCBzdWJjb21tYW5kIGNvbW1hbmQgcmV0dXJucyBub24temVybyByZXR1cm4gY29kZS5cbiAgICovXG4gIGFzeW5jIGV4ZWMgKHN1YmNvbW1hbmQsIG9wdHMgPSB7fSkge1xuICAgIGxldCB7XG4gICAgICBhcmdzID0gW10sXG4gICAgICBlbnYgPSB7fSxcbiAgICAgIGFzeW5jaHJvbm91cyA9IGZhbHNlLFxuICAgICAgZW5jb2RpbmcsXG4gICAgfSA9IG9wdHM7XG4gICAgLy8gcnVuIGEgcGFydGljdWxhciBzaW1jdGwgY29tbWFuZFxuICAgIGFyZ3MgPSBbJ3NpbWN0bCcsIHN1YmNvbW1hbmQsIC4uLmFyZ3NdO1xuICAgIC8vIFByZWZpeCBhbGwgcGFzc2VkIGluIGVudmlyb25tZW50IHZhcmlhYmxlcyB3aXRoICdTSU1DVExfQ0hJTERfJywgc2ltY3RsXG4gICAgLy8gd2lsbCB0aGVuIHBhc3MgdGhlc2UgdG8gdGhlIGNoaWxkIChzcGF3bmVkKSBwcm9jZXNzLlxuICAgIGVudiA9IF8uZGVmYXVsdHMoXG4gICAgICBfLm1hcEtleXMoZW52LFxuICAgICAgICAodmFsdWUsIGtleSkgPT4gXy5zdGFydHNXaXRoKGtleSwgU0lNQ1RMX0VOVl9QUkVGSVgpID8ga2V5IDogYCR7U0lNQ1RMX0VOVl9QUkVGSVh9JHtrZXl9YCksXG4gICAgICBwcm9jZXNzLmVudik7XG5cbiAgICBjb25zdCBleGVjT3B0cyA9IHtcbiAgICAgIGVudixcbiAgICAgIGVuY29kaW5nLFxuICAgIH07XG4gICAgaWYgKCFhc3luY2hyb25vdXMpIHtcbiAgICAgIGV4ZWNPcHRzLnRpbWVvdXQgPSB0aGlzLmV4ZWNUaW1lb3V0O1xuICAgIH1cbiAgICBjb25zdCB4Y3J1biA9IGF3YWl0IHRoaXMucmVxdWlyZVhjcnVuKCk7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhc3luY2hyb25vdXMgPyBuZXcgU3ViUHJvY2Vzcyh4Y3J1biwgYXJncywgZXhlY09wdHMpIDogYXdhaXQgdHBFeGVjKHhjcnVuLCBhcmdzLCBleGVjT3B0cyk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgaWYgKCF0aGlzLmxvZ0Vycm9ycykge1xuICAgICAgICAvLyBpZiB3ZSBkb24ndCB3YW50IHRvIHNlZSB0aGUgZXJyb3JzLCBqdXN0IHRocm93IGFuZCBhbGxvdyB0aGUgY2FsbGluZ1xuICAgICAgICAvLyBjb2RlIGRvIHdoYXQgaXQgd2FudHNcbiAgICAgICAgdGhyb3cgZTtcbiAgICAgIH0gZWxzZSBpZiAoZS5zdGRlcnIpIHtcbiAgICAgICAgY29uc3QgbXNnID0gYEVycm9yIHJ1bm5pbmcgJyR7c3ViY29tbWFuZH0nOiAke2Uuc3RkZXJyLnRyaW0oKX1gO1xuICAgICAgICBsb2cuZGVidWcobXNnKTtcbiAgICAgICAgdGhyb3cgRXJyb3IobXNnKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGxvZy5kZWJ1ZyhlLm1lc3NhZ2UpO1xuICAgICAgICB0aHJvdyBlO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuXG5cbi8vIGFkZCBhbGwgdGhlIHN1YmNvbW1hbmRzIHRvIHRoZSBTaW1jdGwgcHJvdG90eXBlXG5mb3IgKGNvbnN0IFtmbk5hbWUsIGZuXSBvZiBfLnRvUGFpcnMoc3ViY29tbWFuZHMpKSB7XG4gIFNpbWN0bC5wcm90b3R5cGVbZm5OYW1lXSA9IGZuO1xufVxuXG5leHBvcnQgZGVmYXVsdCBTaW1jdGw7XG5leHBvcnQgeyBTaW1jdGwgfTsiXSwiZmlsZSI6ImxpYi9zaW1jdGwuanMiLCJzb3VyY2VSb290IjoiLi4vLi4ifQ==
|
|
135
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zaW1jdGwuanMiXSwibmFtZXMiOlsiU0lNQ1RMX0VOVl9QUkVGSVgiLCJERUZBVUxUX09QVFMiLCJ4Y3J1biIsInBhdGgiLCJleGVjVGltZW91dCIsIkRFRkFVTFRfRVhFQ19USU1FT1VUIiwibG9nRXJyb3JzIiwiU2ltY3RsIiwiY29uc3RydWN0b3IiLCJvcHRzIiwiXyIsImNsb25lRGVlcCIsImRlZmF1bHRzRGVlcCIsImtleSIsImtleXMiLCJfdWRpZCIsImlzTmlsIiwidWRpZCIsIl9kZXZpY2VzU2V0UGF0aCIsImRldmljZXNTZXRQYXRoIiwidmFsdWUiLCJyZXF1aXJlVWRpZCIsImNvbW1hbmROYW1lIiwiRXJyb3IiLCJyZXF1aXJlWGNydW4iLCJYQ1JVTl9CSU5BUlkiLCJlIiwiZXhlYyIsInN1YmNvbW1hbmQiLCJhcmdzIiwiZW52IiwiYXN5bmNocm9ub3VzIiwiZW5jb2RpbmciLCJkZWZhdWx0cyIsIm1hcEtleXMiLCJzdGFydHNXaXRoIiwicHJvY2VzcyIsImV4ZWNPcHRzIiwidGltZW91dCIsIlN1YlByb2Nlc3MiLCJzdGRlcnIiLCJtc2ciLCJ0cmltIiwibG9nIiwiZGVidWciLCJMT0dfUFJFRklYIiwibWVzc2FnZSIsImZuTmFtZSIsImZuIiwidG9QYWlycyIsInN1YmNvbW1hbmRzIiwicHJvdG90eXBlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBR0E7O0FBRUEsTUFBTUEsaUJBQWlCLEdBQUcsZUFBMUI7QUFDQSxNQUFNQyxZQUFZLEdBQUc7QUFDbkJDLEVBQUFBLEtBQUssRUFBRTtBQUNMQyxJQUFBQSxJQUFJLEVBQUU7QUFERCxHQURZO0FBSW5CQyxFQUFBQSxXQUFXLEVBQUVDLDZCQUpNO0FBS25CQyxFQUFBQSxTQUFTLEVBQUU7QUFMUSxDQUFyQjs7QUEyQ0EsTUFBTUMsTUFBTixDQUFhO0FBSVhDLEVBQUFBLFdBQVcsQ0FBRUMsSUFBSSxHQUFHLEVBQVQsRUFB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LE9BQVQsR0FBbUIsS0FBS2xDLFdBQXhCO0FBQ0Q7O0FBQ0QsVUFBTUYsS0FBSyxHQUFHLE1BQU0sS0FBS3NCLFlBQUwsRUFBcEI7O0FBQ0EsUUFBSTtBQUNGLGFBQU9PLFlBQVksR0FBRyxJQUFJUSx3QkFBSixDQUFlckMsS0FBZixFQUFzQjJCLElBQXRCLEVBQTRCUSxRQUE1QixDQUFILEdBQTJDLE1BQU0sd0JBQU9uQyxLQUFQLEVBQWMyQixJQUFkLEVBQW9CUSxRQUFwQixDQUFwRTtBQUNELEtBRkQsQ0FFRSxPQUFPWCxDQUFQLEVBQVU7QUFDVixVQUFJLENBQUMsS0FBS3BCLFNBQU4sSUFBbUIsQ0FBQ0EsU0FBeEIsRUFBbUMsQ0FHbEMsQ0FIRCxNQUdPLElBQUlvQixDQUFDLENBQUNjLE1BQU4sRUFBYztBQUNuQixjQUFNQyxHQUFHLEdBQUksa0JBQWlCYixVQUFXLE1BQUtGLENBQUMsQ0FBQ2MsTUFBRixDQUFTRSxJQUFULEVBQWdCLEVBQTlEOztBQUNBQyx3QkFBSUMsS0FBSixDQUFVQyxrQkFBVixFQUFzQkosR0FBdEI7O0FBQ0FmLFFBQUFBLENBQUMsQ0FBQ29CLE9BQUYsR0FBWUwsR0FBWjtBQUNELE9BSk0sTUFJQTtBQUNMRSx3QkFBSUMsS0FBSixDQUFVQyxrQkFBVixFQUFzQm5CLENBQUMsQ0FBQ29CLE9BQXhCO0FBQ0Q7O0FBQ0QsWUFBTXBCLENBQU47QUFDRDtBQUNGOztBQXpHVTs7OztBQThHYixLQUFLLE1BQU0sQ0FBQ3FCLE1BQUQsRUFBU0MsRUFBVCxDQUFYLElBQTJCdEMsZ0JBQUV1QyxPQUFGLENBQVVDLGNBQVYsQ0FBM0IsRUFBbUQ7QUFDakQzQyxFQUFBQSxNQUFNLENBQUM0QyxTQUFQLENBQWlCSixNQUFqQixJQUEyQkMsRUFBM0I7QUFDRDs7ZUFFY3pDLE0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHN1YmNvbW1hbmRzIGZyb20gJy4vc3ViY29tbWFuZHMvaW5kZXguanMnO1xuaW1wb3J0IHdoaWNoIGZyb20gJ3doaWNoJztcbmltcG9ydCBsb2csIHsgTE9HX1BSRUZJWCB9IGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCB7XG4gIERFRkFVTFRfRVhFQ19USU1FT1VULCBYQ1JVTl9CSU5BUlksXG59IGZyb20gJy4vaGVscGVycyc7XG5pbXBvcnQgeyBleGVjIGFzIHRwRXhlYywgU3ViUHJvY2VzcyB9IGZyb20gJ3RlZW5fcHJvY2Vzcyc7XG5cbmNvbnN0IFNJTUNUTF9FTlZfUFJFRklYID0gJ1NJTUNUTF9DSElMRF8nO1xuY29uc3QgREVGQVVMVF9PUFRTID0ge1xuICB4Y3J1bjoge1xuICAgIHBhdGg6IG51bGwsXG4gIH0sXG4gIGV4ZWNUaW1lb3V0OiBERUZBVUxUX0VYRUNfVElNRU9VVCxcbiAgbG9nRXJyb3JzOiB0cnVlLFxufTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBFeGVjT3B0c1xuICogQHByb3BlcnR5IHtBcnJheS48c3RyaW5nPn0gYXJncyBbW11dIC0gVGhlIGxpc3Qgb2YgYWRkaXRpb25hbCBzdWJjb21tYW5kIGFyZ3VtZW50cy5cbiAqIEl0J3MgZW1wdHkgYnkgZGVmYXVsdC5cbiAqIEBwcm9wZXJ0eSB7T2JqZWN0fSBlbnYgW3t9XSAtIEVudmlyb25tZW50IHZhcmlhYmxlcyBtYXBwaW5nLiBBbGwgdGhlc2UgdmFyaWFibGVzXG4gKiB3aWxsIGJlIHBhc3NlZCBTaW11bGF0b3IgYW5kIHVzZWQgaW4gdGhlIGV4ZWN1dGluZyBmdW5jdGlvbi5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gbG9nRXJyb3JzIFt0cnVlXSAtIFNldCBpdCB0byBfZmFsc2VfIHRvIHRocm93IGV4ZWN1dGlvbiBlcnJvcnNcbiAqIGltbWVkaWF0ZWx5IHdpdGhvdXQgbG9nZ2luZyBhbnkgYWRkaXRpb25hbCBpbmZvcm1hdGlvbi5cbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gYXN5bmNocm9ub3VzIFtmYWxzZV0gLSBXaGV0aGVyIHRvIGV4ZWN1dGUgdGhlIGdpdmVuIGNvbW1hbmRcbiAqICdzeW5jaHJvbm91c2x5JyBvciAnYXN5bmNocm9ub3VzbHknLiBBZmZlY3RzIHRoZSByZXR1cm5lZCByZXN1bHQgb2YgdGhlIGZ1bmN0aW9uLlxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBlbmNvZGluZyAtIEV4cGxpY2l0bHkgc2V0cyBzdHJlYW1zIGVuY29kaW5nIGZvciB0aGUgZXhlY3V0ZWRcbiAqIGNvbW1hbmQgaW5wdXQgYW5kIG91dHB1dHMuXG4gKi9cblxuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IFNpbWN0bE9wdHNcbiAqIEBwcm9wZXJ0eSB7P09iamVjdH0geGNydW4gLSBUaGUgeGNydW4gcHJvcGVydGllcy4gQ3VycmVudGx5IG9ubHkgb25lIHByb3BlcnR5XG4gKiBpcyBzdXBwb3J0ZWQsIHdoaWNoIGlzIGBwYXRoYCBhbmQgaXQgYnkgZGVmYXVsdCBjb250YWlucyBgbnVsbGAsIHdoaWNoIGVuZm9yY2VzXG4gKiB0aGUgaW5zdGFuY2UgdG8gYXV0b21hdGljYWxseSBkZXRlY3QgdGhlIGZ1bGwgcGF0aCB0byBgeGNydW5gIHRvb2wgYW5kIHRvIHRocm93XG4gKiBhbiBleGNlcHRpb24gaWYgaXQgY2Fubm90IGJlIGRldGVjdGVkLiBJZiB0aGUgcGF0aCBpcyBzZXQgdXBvbiBpbnN0YW5jZSBjcmVhdGlvblxuICogdGhlbiBpdCBpcyBnb2luZyB0byBiZSB1c2VkIGJ5IGBleGVjYCBhbmQgbm8gYXV0b2RldGVjdGlvbiB3aWxsIGhhcHBlbi5cbiAqIEBwcm9wZXJ0eSB7P251bWJlcn0gZXhlY1RpbWVvdXQgWzYwMDAwMF0gLSBUaGUgbWF4aW11bSBudW1iZXIgb2YgbWlsbGlzZWNvbmRzXG4gKiB0byB3YWl0IGZvciBzaW5nbGUgc3luY2hyb25vdXMgeGNydW4gY29tbWFuZC5cbiAqIEBwcm9wZXJ0eSB7P2Jvb2xlYW59IGxvZ0Vycm9ycyBbdHJ1ZV0gLSBXaGV0aGVyIHRvIHdpcmUgeGNydW4gZXJyb3IgbWVzc2FnZXNcbiAqIGludG8gZGVidWcgbG9nIGJlZm9yZSB0aHJvd2luZyB0aGVtLlxuICogQHByb3BlcnR5IHs/c3RyaW5nfSB1ZGlkIFtudWxsXSAtIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY3VycmVudCBkZXZpY2UsIHdoaWNoIGlzXG4gKiBnb2luZyB0byBiZSBpbXBsaWNpdGx5IHBhc3NlZCB0byBhbGwgbWV0aG9kcywgd2hpY2ggcmVxdWlyZSBpdC4gSXQgY2FuIGVpdGhlciBiZSBzZXRcbiAqIHVwb24gaW5zdGFuY2UgY3JlYXRpb24gaWYgaXQgaXMgYWxyZWFkeSBrbm93biBpbiBhZHZhbmNlIG9yIGxhdGVyIHdoZW4vaWYgbmVlZGVkIHZpYSB0aGVcbiAqIGNvcnJlc3BvbmRpbmcgaW5zdGFuY2Ugc2V0dGVyLlxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBkZXZpY2VzU2V0UGF0aCAtIEZ1bGwgcGF0aCB0byB0aGUgc2V0IG9mIGRldmljZXMgdGhhdCB5b3Ugd2FudCB0byBtYW5hZ2UuXG4gKiBCeSBkZWZhdWx0IHRoaXMgcGF0aCB1c3VhbGx5IGVxdWFscyB0byB+L0xpYnJhcnkvRGV2ZWxvcGVyL0NvcmVTaW11bGF0b3IvRGV2aWNlc1xuICovXG5cblxuY2xhc3MgU2ltY3RsIHtcbiAgLyoqXG4gICAqIEBwYXJhbSB7P1NpbWN0bE9wdHN9IG9wdHNcbiAgICovXG4gIGNvbnN0cnVjdG9yIChvcHRzID0ge30pIHtcbiAgICBvcHRzID0gXy5jbG9uZURlZXAob3B0cyk7XG4gICAgXy5kZWZhdWx0c0RlZXAob3B0cywgREVGQVVMVF9PUFRTKTtcbiAgICBmb3IgKGNvbnN0IGtleSBvZiBfLmtleXMoREVGQVVMVF9PUFRTKSkge1xuICAgICAgdGhpc1trZXldID0gb3B0c1trZXldO1xuICAgIH1cbiAgICB0aGlzLl91ZGlkID0gXy5pc05pbChvcHRzLnVkaWQpID8gbnVsbCA6IG9wdHMudWRpZDtcbiAgICB0aGlzLl9kZXZpY2VzU2V0UGF0aCA9IF8uaXNOaWwob3B0cy5kZXZpY2VzU2V0UGF0aCkgPyBudWxsIDogb3B0cy5kZXZpY2VzU2V0UGF0aDtcbiAgfVxuXG4gIHNldCB1ZGlkICh2YWx1ZSkge1xuICAgIHRoaXMuX3VkaWQgPSB2YWx1ZTtcbiAgfVxuXG4gIGdldCB1ZGlkICgpIHtcbiAgICByZXR1cm4gdGhpcy5fdWRpZDtcbiAgfVxuXG4gIHNldCBkZXZpY2VzU2V0UGF0aCAodmFsdWUpIHtcbiAgICB0aGlzLl9kZXZpY2VzU2V0UGF0aCA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IGRldmljZXNTZXRQYXRoICgpIHtcbiAgICByZXR1cm4gdGhpcy5fZGV2aWNlc1NldFBhdGg7XG4gIH1cblxuICByZXF1aXJlVWRpZCAoY29tbWFuZE5hbWUgPSBudWxsKSB7XG4gICAgaWYgKCF0aGlzLnVkaWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgdWRpZCBpcyByZXF1aXJlZCB0byBiZSBzZXQgZm9yIGAgK1xuICAgICAgICAoY29tbWFuZE5hbWUgPyBgdGhlICcke2NvbW1hbmROYW1lfScgY29tbWFuZGAgOiAndGhpcyBzaW1jdGwgY29tbWFuZCcpKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudWRpZDtcbiAgfVxuXG4gIGFzeW5jIHJlcXVpcmVYY3J1biAoKSB7XG4gICAgaWYgKCF0aGlzLnhjcnVuLnBhdGgpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHRoaXMueGNydW4ucGF0aCA9IGF3YWl0IHdoaWNoKFhDUlVOX0JJTkFSWSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgJHtYQ1JVTl9CSU5BUll9IHRvb2wgaGFzIG5vdCBiZWVuIGZvdW5kIGluIFBBVEguIGAgK1xuICAgICAgICAgIGBBcmUgWGNvZGUgZGV2ZWxvcGVycyB0b29scyBpbnN0YWxsZWQ/YCk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB0aGlzLnhjcnVuLnBhdGg7XG4gIH1cblxuICAvKipcbiAgICogRXhlY3V0ZSB0aGUgcGFydGljdWxhciBzaW1jdGwgY29tbWFuZC5cbiAgICpcbiAgICogQHBhcmFtIHtzdHJpbmd9IHN1YmNvbW1hbmQgLSBPbmUgb2YgYXZhaWxhYmxlIHNpbWN0bCBzdWJjb21tYW5kcy5cbiAgICogICAgICAgICAgICAgICAgICAgICAgICAgICBFeGVjdXRlIGB4Y3J1biBzaW1jdGxgIGluIFRlcm1pbmFsIHRvIHNlZSB0aGUgZnVsbCBsaXN0XG4gICAqICAgICAgICAgICAgICAgICAgICAgICAgICAgb2YgYXZhaWxhYmxlIHN1YmNvbW1hbmRzLlxuICAgKiBAcGFyYW0gez9FeGVjT3B0c30gb3B0c1xuICAgKiBAcmV0dXJuIHtFeGVjUmVzdWx0fFN1YlByb2Nlc3N9IEVpdGhlciB0aGUgcmVzdWx0IG9mIHRlZW4gcHJvY2VzcydzIGBleGVjYCBvclxuICAgKiBgU3ViUHJvY2Vzc2AgaW5zdGFuY2UgZGVwZW5kaW5nIG9mIGBvcHRzLmFzeW5jaHJvbm91c2AgdmFsdWUuXG4gICAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgc2ltY3RsIHN1YmNvbW1hbmQgY29tbWFuZCByZXR1cm5zIG5vbi16ZXJvIHJldHVybiBjb2RlLlxuICAgKi9cbiAgYXN5bmMgZXhlYyAoc3ViY29tbWFuZCwgb3B0cyA9IHt9KSB7XG4gICAgbGV0IHtcbiAgICAgIGFyZ3MgPSBbXSxcbiAgICAgIGVudiA9IHt9LFxuICAgICAgYXN5bmNocm9ub3VzID0gZmFsc2UsXG4gICAgICBlbmNvZGluZyxcbiAgICAgIGxvZ0Vycm9ycyA9IHRydWUsXG4gICAgfSA9IG9wdHM7XG4gICAgLy8gcnVuIGEgcGFydGljdWxhciBzaW1jdGwgY29tbWFuZFxuICAgIGFyZ3MgPSBbJ3NpbWN0bCcsXG4gICAgICAuLi4odGhpcy5kZXZpY2VzU2V0UGF0aCA/IFsnLS1zZXQnLCB0aGlzLmRldmljZXNTZXRQYXRoXSA6IFtdKSxcbiAgICAgIHN1YmNvbW1hbmQsXG4gICAgICAuLi5hcmdzXG4gICAgXTtcbiAgICAvLyBQcmVmaXggYWxsIHBhc3NlZCBpbiBlbnZpcm9ubWVudCB2YXJpYWJsZXMgd2l0aCAnU0lNQ1RMX0NISUxEXycsIHNpbWN0bFxuICAgIC8vIHdpbGwgdGhlbiBwYXNzIHRoZXNlIHRvIHRoZSBjaGlsZCAoc3Bhd25lZCkgcHJvY2Vzcy5cbiAgICBlbnYgPSBfLmRlZmF1bHRzKFxuICAgICAgXy5tYXBLZXlzKGVudixcbiAgICAgICAgKHZhbHVlLCBrZXkpID0+IF8uc3RhcnRzV2l0aChrZXksIFNJTUNUTF9FTlZfUFJFRklYKSA/IGtleSA6IGAke1NJTUNUTF9FTlZfUFJFRklYfSR7a2V5fWApLFxuICAgICAgcHJvY2Vzcy5lbnYpO1xuXG4gICAgY29uc3QgZXhlY09wdHMgPSB7XG4gICAgICBlbnYsXG4gICAgICBlbmNvZGluZyxcbiAgICB9O1xuICAgIGlmICghYXN5bmNocm9ub3VzKSB7XG4gICAgICBleGVjT3B0cy50aW1lb3V0ID0gdGhpcy5leGVjVGltZW91dDtcbiAgICB9XG4gICAgY29uc3QgeGNydW4gPSBhd2FpdCB0aGlzLnJlcXVpcmVYY3J1bigpO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gYXN5bmNocm9ub3VzID8gbmV3IFN1YlByb2Nlc3MoeGNydW4sIGFyZ3MsIGV4ZWNPcHRzKSA6IGF3YWl0IHRwRXhlYyh4Y3J1biwgYXJncywgZXhlY09wdHMpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmICghdGhpcy5sb2dFcnJvcnMgfHwgIWxvZ0Vycm9ycykge1xuICAgICAgICAvLyBpZiB3ZSBkb24ndCB3YW50IHRvIHNlZSB0aGUgZXJyb3JzLCBqdXN0IHRocm93IGFuZCBhbGxvdyB0aGUgY2FsbGluZ1xuICAgICAgICAvLyBjb2RlIGRvIHdoYXQgaXQgd2FudHNcbiAgICAgIH0gZWxzZSBpZiAoZS5zdGRlcnIpIHtcbiAgICAgICAgY29uc3QgbXNnID0gYEVycm9yIHJ1bm5pbmcgJyR7c3ViY29tbWFuZH0nOiAke2Uuc3RkZXJyLnRyaW0oKX1gO1xuICAgICAgICBsb2cuZGVidWcoTE9HX1BSRUZJWCwgbXNnKTtcbiAgICAgICAgZS5tZXNzYWdlID0gbXNnO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgbG9nLmRlYnVnKExPR19QUkVGSVgsIGUubWVzc2FnZSk7XG4gICAgICB9XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgfVxufVxuXG5cbi8vIGFkZCBhbGwgdGhlIHN1YmNvbW1hbmRzIHRvIHRoZSBTaW1jdGwgcHJvdG90eXBlXG5mb3IgKGNvbnN0IFtmbk5hbWUsIGZuXSBvZiBfLnRvUGFpcnMoc3ViY29tbWFuZHMpKSB7XG4gIFNpbWN0bC5wcm90b3R5cGVbZm5OYW1lXSA9IGZuO1xufVxuXG5leHBvcnQgZGVmYXVsdCBTaW1jdGw7XG5leHBvcnQgeyBTaW1jdGwgfTsiXSwiZmlsZSI6ImxpYi9zaW1jdGwuanMiLCJzb3VyY2VSb290IjoiLi4vLi4ifQ==
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
+
|
|
3
5
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
6
|
|
|
5
7
|
Object.defineProperty(exports, "__esModule", {
|
|
@@ -11,7 +13,7 @@ require("source-map-support/register");
|
|
|
11
13
|
|
|
12
14
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
13
15
|
|
|
14
|
-
var _logger =
|
|
16
|
+
var _logger = _interopRequireWildcard(require("../logger"));
|
|
15
17
|
|
|
16
18
|
const commands = {};
|
|
17
19
|
|
|
@@ -25,7 +27,7 @@ commands.bootDevice = async function bootDevice() {
|
|
|
25
27
|
throw e;
|
|
26
28
|
}
|
|
27
29
|
|
|
28
|
-
_logger.default.debug(`Simulator already in 'Booted' state. Continuing`);
|
|
30
|
+
_logger.default.debug(_logger.LOG_PREFIX, `Simulator already in 'Booted' state. Continuing`);
|
|
29
31
|
}
|
|
30
32
|
};
|
|
31
33
|
|
|
@@ -33,4 +35,4 @@ var _default = commands;
|
|
|
33
35
|
exports.default = _default;require('source-map-support').install();
|
|
34
36
|
|
|
35
37
|
|
|
36
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zdWJjb21tYW5kcy9ib290LmpzIl0sIm5hbWVzIjpbImNvbW1hbmRzIiwiYm9vdERldmljZSIsImV4ZWMiLCJhcmdzIiwicmVxdWlyZVVkaWQiLCJlIiwiXyIsImluY2x1ZGVzIiwibWVzc2FnZSIsImxvZyIsImRlYnVnIiwiTE9HX1BSRUZJWCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUdBLE1BQU1BLFFBQVEsR0FBRyxFQUFqQjs7QUFTQUEsUUFBUSxDQUFDQyxVQUFULEdBQXNCLGVBQWVBLFVBQWYsR0FBNkI7QUFDakQsTUFBSTtBQUNGLFVBQU0sS0FBS0MsSUFBTCxDQUFVLE1BQVYsRUFBa0I7QUFDdEJDLE1BQUFBLElBQUksRUFBRSxDQUFDLEtBQUtDLFdBQUwsQ0FBaUIsTUFBakIsQ0FBRDtBQURnQixLQUFsQixDQUFOO0FBR0QsR0FKRCxDQUlFLE9BQU9DLENBQVAsRUFBVTtBQUNWLFFBQUlDLGdCQUFFQyxRQUFGLENBQVdGLENBQUMsQ0FBQ0csT0FBYixFQUFzQixnREFBdEIsQ0FBSixFQUE2RTtBQUMzRSxZQUFNSCxDQUFOO0FBQ0Q7O0FBQ0RJLG9CQUFJQyxLQUFKLENBQVVDLGtCQUFWLEVBQXVCLGlEQUF2QjtBQUNEO0FBQ0YsQ0FYRDs7ZUFhZVgsUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgbG9nLCB7IExPR19QUkVGSVggfSBmcm9tICcuLi9sb2dnZXInO1xuXG5cbmNvbnN0IGNvbW1hbmRzID0ge307XG5cbi8qKlxuICogQm9vdCB0aGUgcGFydGljdWxhciBTaW11bGF0b3IgaWYgaXQgaXMgbm90IHJ1bm5pbmcuXG4gKlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBjb3JyZXNwb25kaW5nIHNpbWN0bCBzdWJjb21tYW5kIGNvbW1hbmRcbiAqICAgICAgICAgICAgICAgICByZXR1cm5zIG5vbi16ZXJvIHJldHVybiBjb2RlLlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBgdWRpZGAgaW5zdGFuY2UgcHJvcGVydHkgaXMgdW5zZXRcbiAqL1xuY29tbWFuZHMuYm9vdERldmljZSA9IGFzeW5jIGZ1bmN0aW9uIGJvb3REZXZpY2UgKCkge1xuICB0cnkge1xuICAgIGF3YWl0IHRoaXMuZXhlYygnYm9vdCcsIHtcbiAgICAgIGFyZ3M6IFt0aGlzLnJlcXVpcmVVZGlkKCdib290JyldXG4gICAgfSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBpZiAoXy5pbmNsdWRlcyhlLm1lc3NhZ2UsICdVbmFibGUgdG8gYm9vdCBkZXZpY2UgaW4gY3VycmVudCBzdGF0ZTogQm9vdGVkJykpIHtcbiAgICAgIHRocm93IGU7XG4gICAgfVxuICAgIGxvZy5kZWJ1ZyhMT0dfUFJFRklYLCBgU2ltdWxhdG9yIGFscmVhZHkgaW4gJ0Jvb3RlZCcgc3RhdGUuIENvbnRpbnVpbmdgKTtcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwiZmlsZSI6ImxpYi9zdWJjb21tYW5kcy9ib290LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
+
|
|
3
5
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
6
|
|
|
5
7
|
Object.defineProperty(exports, "__esModule", {
|
|
@@ -11,7 +13,7 @@ require("source-map-support/register");
|
|
|
11
13
|
|
|
12
14
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
13
15
|
|
|
14
|
-
var _logger =
|
|
16
|
+
var _logger = _interopRequireWildcard(require("../logger"));
|
|
15
17
|
|
|
16
18
|
var _asyncbox = require("asyncbox");
|
|
17
19
|
|
|
@@ -55,7 +57,7 @@ commands.createDevice = async function createDevice(name, deviceTypeId, platform
|
|
|
55
57
|
let udid;
|
|
56
58
|
|
|
57
59
|
for (const runtimeId of runtimeIds) {
|
|
58
|
-
_logger.default.debug(`Creating simulator with name '${name}', device type id '${deviceTypeId}' and runtime id '${runtimeId}'`);
|
|
60
|
+
_logger.default.debug(_logger.LOG_PREFIX, `Creating simulator with name '${name}', device type id '${deviceTypeId}' and runtime id '${runtimeId}'`);
|
|
59
61
|
|
|
60
62
|
try {
|
|
61
63
|
const {
|
|
@@ -97,4 +99,4 @@ var _default = commands;
|
|
|
97
99
|
exports.default = _default;require('source-map-support').install();
|
|
98
100
|
|
|
99
101
|
|
|
100
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
102
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zdWJjb21tYW5kcy9jcmVhdGUuanMiXSwibmFtZXMiOlsiU0lNX1JVTlRJTUVfTkFNRV9TVUZGSVhfSU9TIiwiREVGQVVMVF9DUkVBVEVfU0lNVUxBVE9SX1RJTUVPVVQiLCJjb21tYW5kcyIsImNyZWF0ZURldmljZSIsIm5hbWUiLCJkZXZpY2VUeXBlSWQiLCJwbGF0Zm9ybVZlcnNpb24iLCJvcHRzIiwicGxhdGZvcm0iLCJ0aW1lb3V0IiwicnVudGltZUlkcyIsInB1c2giLCJnZXRSdW50aW1lRm9yUGxhdGZvcm1WZXJzaW9uVmlhSnNvbiIsImlnbiIsIl8iLCJpc0VtcHR5IiwicnVudGltZUlkIiwiZ2V0UnVudGltZUZvclBsYXRmb3JtVmVyc2lvbiIsImVyciIsImxvZyIsIndhcm4iLCJwb3RlbnRpYWxSdW50aW1lSWRzIiwic3BsaXQiLCJsZW5ndGgiLCJtYXAiLCJpZCIsIlNJTV9SVU5USU1FX05BTUUiLCJyZXBsYWNlIiwidWRpZCIsImRlYnVnIiwiTE9HX1BSRUZJWCIsInN0ZG91dCIsImV4ZWMiLCJhcmdzIiwidHJpbSIsIkVycm9yIiwiam9pbiIsInJldHJpZXMiLCJwYXJzZUludCIsImRldmljZXMiLCJ2YWx1ZXMiLCJnZXREZXZpY2VzIiwiZGV2aWNlQXJyIiwiZGV2aWNlIiwic3RhdGUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFHQSxNQUFNQSwyQkFBMkIsR0FBRyxLQUFwQztBQUNBLE1BQU1DLGdDQUFnQyxHQUFHLEtBQXpDO0FBRUEsTUFBTUMsUUFBUSxHQUFHLEVBQWpCOztBQXFCQUEsUUFBUSxDQUFDQyxZQUFULEdBQXdCLGVBQWVBLFlBQWYsQ0FBNkJDLElBQTdCLEVBQW1DQyxZQUFuQyxFQUFpREMsZUFBakQsRUFBa0VDLElBQUksR0FBRyxFQUF6RSxFQUE2RTtBQUNuRyxRQUFNO0FBQ0pDLElBQUFBLFFBQVEsR0FBR1IsMkJBRFA7QUFFSlMsSUFBQUEsT0FBTyxHQUFH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QkFBcEMsQ0FBTjtBQUNELFdBSEQsTUFHTztBQUVMO0FBQ0Q7QUFDRjtBQUNGO0FBQ0Y7O0FBQ0QsVUFBTSxJQUFJTyxLQUFKLENBQVcscUJBQW9CUCxJQUFLLG1CQUFwQyxDQUFOO0FBQ0QsR0FoQkssQ0FBTjtBQWtCQSxTQUFPQSxJQUFQO0FBQ0QsQ0FwRkQ7O2VBc0ZlMUIsUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgbG9nLCB7IExPR19QUkVGSVggfSBmcm9tICcuLi9sb2dnZXInO1xuaW1wb3J0IHsgcmV0cnlJbnRlcnZhbCB9IGZyb20gJ2FzeW5jYm94JztcbmltcG9ydCB7IFNJTV9SVU5USU1FX05BTUUsIG5vcm1hbGl6ZVZlcnNpb24gfSBmcm9tICcuLi9oZWxwZXJzJztcblxuXG5jb25zdCBTSU1fUlVOVElNRV9OQU1FX1NVRkZJWF9JT1MgPSAnaU9TJztcbmNvbnN0IERFRkFVTFRfQ1JFQVRFX1NJTVVMQVRPUl9USU1FT1VUID0gMTAwMDA7XG5cbmNvbnN0IGNvbW1hbmRzID0ge307XG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gU2ltQ3JlYXRpb25PcHRzXG4gKiBAcHJvcGVydHkge3N0cmluZ30gcGxhdGZvcm0gW2lPU10gLSBQbGF0Zm9ybSBuYW1lIGluIG9yZGVyIHRvIHNwZWNpZnkgcnVudGltZSBzdWNoIGFzICdpT1MnLCAndHZPUycsICd3YXRjaE9TJ1xuICogQHByb3BlcnR5IHtudW1iZXJ9IHRpbWVvdXQgWzEwMDAwXSAtIFRoZSBtYXhpbXVtIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdG8gd2FpdFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVuaXQgZGV2aWNlIGNyZWF0aW9uIGlzIGNvbXBsZXRlZC5cbiAqL1xuXG4vKipcbiAqIENyZWF0ZSBTaW11bGF0b3IgZGV2aWNlIHdpdGggZ2l2ZW4gbmFtZSBmb3IgdGhlIHBhcnRpY3VsYXJcbiAqIHBsYXRmb3JtIHR5cGUgYW5kIHZlcnNpb24uXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBUaGUgZGV2aWNlIG5hbWUgdG8gYmUgY3JlYXRlZC5cbiAqIEBwYXJhbSB7c3RyaW5nfSBkZXZpY2VUeXBlSWQgLSBEZXZpY2UgdHlwZSwgZm9yIGV4YW1wbGUgJ2lQaG9uZSA2Jy5cbiAqIEBwYXJhbSB7c3RyaW5nfSBwbGF0Zm9ybVZlcnNpb24gLSBQbGF0Zm9ybSB2ZXJzaW9uLCBmb3IgZXhhbXBsZSAnMTAuMycuXG4gKiBAcGFyYW0gez9TaW1DcmVhdGlvbk9wdHN9IG9wdHMgLSBTaW11bGF0b3Igb3B0aW9ucyBmb3IgY3JlYXRpbmcgZGV2aWNlcy5cbiAqIEByZXR1cm4ge3N0cmluZ30gVGhlIFVESUQgb2YgdGhlIG5ld2x5IGNyZWF0ZWQgZGV2aWNlLlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBjb3JyZXNwb25kaW5nIHNpbWN0bCBzdWJjb21tYW5kIGNvbW1hbmRcbiAqICAgICAgICAgICAgICAgICByZXR1cm5zIG5vbi16ZXJvIHJldHVybiBjb2RlLlxuICovXG5jb21tYW5kcy5jcmVhdGVEZXZpY2UgPSBhc3luYyBmdW5jdGlvbiBjcmVhdGVEZXZpY2UgKG5hbWUsIGRldmljZVR5cGVJZCwgcGxhdGZvcm1WZXJzaW9uLCBvcHRzID0ge30pIHtcbiAgY29uc3Qge1xuICAgIHBsYXRmb3JtID0gU0lNX1JVTlRJTUVfTkFNRV9TVUZGSVhfSU9TLFxuICAgIHRpbWVvdXQgPSBERUZBVUxUX0NSRUFURV9TSU1VTEFUT1JfVElNRU9VVFxuICB9ID0gb3B0cztcblxuICBsZXQgcnVudGltZUlkcyA9IFtdO1xuXG4gIC8vIFRyeSBnZXR0aW5nIHJ1bnRpbWVJZCB1c2luZyBKU09OIGZsYWdcbiAgdHJ5IHtcbiAgICBydW50aW1lSWRzLnB1c2goYXdhaXQgdGhpcy5nZXRSdW50aW1lRm9yUGxhdGZvcm1WZXJzaW9uVmlhSnNvbihwbGF0Zm9ybVZlcnNpb24sIHBsYXRmb3JtKSk7XG4gIH0gY2F0Y2ggKGlnbikge31cblxuICBpZiAoXy5pc0VtcHR5KHJ1bnRpbWVJZHMpKSB7XG4gICAgLy8gYXQgZmlyc3QgbWFrZSBzdXJlIHRoYXQgdGhlIHJ1bnRpbWUgaWQgaXMgdGhlIHJpZ2h0IG9uZVxuICAgIC8vIGluIHNvbWUgdmVyc2lvbnMgb2YgWGNvZGUgaXQgd2lsbCBiZSBhIHBhdGNoIHZlcnNpb25cbiAgICBsZXQgcnVudGltZUlkO1xuICAgIHRyeSB7XG4gICAgICBydW50aW1lSWQgPSBhd2FpdCB0aGlzLmdldFJ1bnRpbWVGb3JQbGF0Zm9ybVZlcnNpb24ocGxhdGZvcm1WZXJzaW9uLCBwbGF0Zm9ybSk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBsb2cud2FybihgVW5hYmxlIHRvIGZpbmQgcnVudGltZSBmb3IgaU9TICcke3BsYXRmb3JtVmVyc2lvbn0nLiBDb250aW51aW5nYCk7XG4gICAgICBydW50aW1lSWQgPSBwbGF0Zm9ybVZlcnNpb247XG4gICAgfVxuXG4gICAgLy8gZ2V0IHRoZSBwb3NzaWJsZSBydW50aW1lcywgd2hpY2ggd2lsbCBiZSBpdGVyYXRlZCBvdmVyXG5cbiAgICAvLyBzdGFydCB3aXRoIG1ham9yLW1pbm9yIHZlcnNpb25cbiAgICBsZXQgcG90ZW50aWFsUnVudGltZUlkcyA9IFtub3JtYWxpemVWZXJzaW9uKHJ1bnRpbWVJZCldO1xuICAgIGlmIChydW50aW1lSWQuc3BsaXQoJy4nKS5sZW5ndGggPT09IDMpIHtcbiAgICAgIC8vIGFkZCBwYXRjaCB2ZXJzaW9uIGlmIGl0IGV4aXN0c1xuICAgICAgcG90ZW50aWFsUnVudGltZUlkcy5wdXNoKHJ1bnRpbWVJZCk7XG4gICAgfVxuXG4gICAgLy8gYWRkIG1vZGlmaWVkIHZlcnNpb25zLCBzaW5jZSBtb2Rlcm4gWGNvZGVzIHVzZSB0aGlzLCB0aGVuIHRoZSBiYXJlXG4gICAgLy8gdmVyc2lvbnMsIHRvIGFjY29tb2RhdGUgb2xkZXIgWGNvZGVzXG4gICAgcnVudGltZUlkcy5wdXNoKFxuICAgICAgLi4uKHBvdGVudGlhbFJ1bnRpbWVJZHMubWFwKChpZCkgPT4gYCR7U0lNX1JVTlRJTUVfTkFNRX0ke3BsYXRmb3JtfS0ke2lkLnJlcGxhY2UoL1xcLi9nLCAnLScpfWApKSxcbiAgICAgIC4uLnBvdGVudGlhbFJ1bnRpbWVJZHNcbiAgICApO1xuICB9XG5cbiAgLy8gZ28gdGhyb3VnaCB0aGUgcnVudGltZSBpZHMgYW5kIHRyeSB0byBjcmVhdGUgYSBzaW11bGF0b3Igd2l0aCBlYWNoXG4gIGxldCB1ZGlkO1xuICBmb3IgKGNvbnN0IHJ1bnRpbWVJZCBvZiBydW50aW1lSWRzKSB7XG4gICAgbG9nLmRlYnVnKExPR19QUkVGSVgsXG4gICAgICBgQ3JlYXRpbmcgc2ltdWxhdG9yIHdpdGggbmFtZSAnJHtuYW1lfScsIGRldmljZSB0eXBlIGlkICcke2RldmljZVR5cGVJZH0nIGFuZCBydW50aW1lIGlkICcke3J1bnRpbWVJZH0nYCk7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHtzdGRvdXR9ID0gYXdhaXQgdGhpcy5leGVjKCdjcmVhdGUnLCB7XG4gICAgICAgIGFyZ3M6IFtuYW1lLCBkZXZpY2VUeXBlSWQsIHJ1bnRpbWVJZF1cbiAgICAgIH0pO1xuICAgICAgdWRpZCA9IHN0ZG91dC50cmltKCk7XG4gICAgICBicmVhaztcbiAgICB9IGNhdGNoIChpZ24pIHtcbiAgICAgIC8vIHRoZSBlcnJvciBnZXRzIGxvZ2dlZCBpbiBgc2ltRXhlY2BcbiAgICB9XG4gIH1cblxuICBpZiAoIXVkaWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBjcmVhdGUgc2ltdWxhdG9yIHdpdGggbmFtZSAnJHtuYW1lfScsIGRldmljZSBgICtcbiAgICAgIGB0eXBlIGlkICcke2RldmljZVR5cGVJZH0nLCB3aXRoIHJ1bnRpbWUgaWRzIGAgK1xuICAgICAgYCR7cnVudGltZUlkcy5tYXAoKGlkKSA9PiBgJyR7aWR9J2ApLmpvaW4oJywgJyl9YCk7XG4gIH1cblxuICAvLyBtYWtlIHN1cmUgdGhhdCBpdCBnZXRzIG91dCBvZiB0aGUgXCJDcmVhdGluZ1wiIHN0YXRlXG4gIGNvbnN0IHJldHJpZXMgPSBwYXJzZUludCh0aW1lb3V0IC8gMTAwMCwgMTApO1xuICBhd2FpdCByZXRyeUludGVydmFsKHJldHJpZXMsIDEwMDAsIGFzeW5jICgpID0+IHtcbiAgICBjb25zdCBkZXZpY2VzID0gXy52YWx1ZXMoYXdhaXQgdGhpcy5nZXREZXZpY2VzKCkpO1xuICAgIGZvciAoY29uc3QgZGV2aWNlQXJyIG9mIF8udmFsdWVzKGRldmljZXMpKSB7XG4gICAgICBmb3IgKGNvbnN0IGRldmljZSBvZiBkZXZpY2VBcnIpIHtcbiAgICAgICAgaWYgKGRldmljZS51ZGlkID09PSB1ZGlkKSB7XG4gICAgICAgICAgaWYgKGRldmljZS5zdGF0ZSA9PT0gJ0NyZWF0aW5nJykge1xuICAgICAgICAgICAgLy8gbmVlZCB0byByZXRyeVxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBEZXZpY2Ugd2l0aCB1ZGlkICcke3VkaWR9JyBzdGlsbCBiZWluZyBjcmVhdGVkYCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIHN0b3AgbG9va2luZywgd2UncmUgZG9uZVxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoYERldmljZSB3aXRoIHVkaWQgJyR7dWRpZH0nIG5vdCB5ZXQgY3JlYXRlZGApO1xuICB9KTtcblxuICByZXR1cm4gdWRpZDtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNvbW1hbmRzO1xuIl0sImZpbGUiOiJsaWIvc3ViY29tbWFuZHMvY3JlYXRlLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
+
|
|
3
5
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
6
|
|
|
5
7
|
Object.defineProperty(exports, "__esModule", {
|
|
@@ -13,7 +15,7 @@ var _lodash = _interopRequireDefault(require("lodash"));
|
|
|
13
15
|
|
|
14
16
|
var _helpers = require("../helpers");
|
|
15
17
|
|
|
16
|
-
var _logger =
|
|
18
|
+
var _logger = _interopRequireWildcard(require("../logger"));
|
|
17
19
|
|
|
18
20
|
const commands = {};
|
|
19
21
|
|
|
@@ -97,9 +99,9 @@ commands.getDevices = async function getDevices(forSdk, platform) {
|
|
|
97
99
|
}));
|
|
98
100
|
}
|
|
99
101
|
} catch (err) {
|
|
100
|
-
_logger.default.debug(`Unable to get JSON device list: ${err.stack}`);
|
|
102
|
+
_logger.default.debug(_logger.LOG_PREFIX, `Unable to get JSON device list: ${err.stack}`);
|
|
101
103
|
|
|
102
|
-
_logger.default.debug('Falling back to manual parsing');
|
|
104
|
+
_logger.default.debug(_logger.LOG_PREFIX, 'Falling back to manual parsing');
|
|
103
105
|
|
|
104
106
|
devices = await this.getDevicesByParsing(platform);
|
|
105
107
|
}
|
|
@@ -194,4 +196,4 @@ var _default = commands;
|
|
|
194
196
|
exports.default = _default;require('source-map-support').install();
|
|
195
197
|
|
|
196
198
|
|
|
197
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zdWJjb21tYW5kcy9saXN0LmpzIl0sIm5hbWVzIjpbImNvbW1hbmRzIiwiZ2V0RGV2aWNlc0J5UGFyc2luZyIsInBsYXRmb3JtIiwic3Rkb3V0IiwiZXhlYyIsImFyZ3MiLCJkZXZpY2VTZWN0aW9uUmUiLCJfIiwiaXNFbXB0eSIsIlJlZ0V4cCIsImVzY2FwZVJlZ0V4cCIsIm1hdGNoZXMiLCJtYXRjaCIsInB1c2giLCJFcnJvciIsImxpbmVSZSIsImRldmljZXMiLCJzZGsiLCJsaW5lIiwic3BsaXQiLCJzbGljZSIsImluY2x1ZGVzIiwibGluZU1hdGNoIiwibmFtZSIsInVkaWQiLCJzdGF0ZSIsImdldERldmljZXMiLCJmb3JTZGsiLCJ2ZXJzaW9uTWF0Y2hSZSIsInNka05hbWUiLCJlbnRyaWVzIiwidG9QYWlycyIsIkpTT04iLCJwYXJzZSIsInJlcGxhY2UiLCJTSU1fUlVOVElNRV9OQU1FIiwidmVyc2lvbk1hdGNoIiwiZmlsdGVyIiwiZWwiLCJpc1VuZGVmaW5lZCIsImlzQXZhaWxhYmxlIiwibWFwIiwiYXZhaWxhYmlsaXR5IiwiZXJyIiwibG9nIiwiZGVidWciLCJzdGFjayIsImVyck1zZyIsImF2YWlsYWJsZVNES3MiLCJrZXlzIiwibGVuZ3RoIiwiam9pbiIsImdldFJ1bnRpbWVGb3JQbGF0Zm9ybVZlcnNpb25WaWFKc29uIiwicGxhdGZvcm1WZXJzaW9uIiwidmVyc2lvbiIsImlkZW50aWZpZXIiLCJydW50aW1lcyIsInRvTG93ZXJDYXNlIiwic3RhcnRzV2l0aCIsImdldFJ1bnRpbWVGb3JQbGF0Zm9ybVZlcnNpb24iLCJydW50aW1lUmUiLCJpZ24iLCJnZXREZXZpY2VUeXBlcyIsImRldmljZVR5cGVzIiwidHJpbSIsImRldmljZXR5cGVzIiwidHlwZSIsIm1lc3NhZ2UiLCJsaXN0IiwiZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFHQSxNQUFNQSxRQUFRLEdBQUcsRUFBakI7O0FBcUJBQSxR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TUFBVixFQUFrQjtBQUN2Q0MsSUFBQUEsSUFBSSxFQUFFLENBQUMsYUFBRCxFQUFnQixJQUFoQjtBQURpQyxHQUFsQixDQUF2Qjs7QUFjQSxNQUFJO0FBQ0YsVUFBTTBELFdBQVcsR0FBRy9CLElBQUksQ0FBQ0MsS0FBTCxDQUFXOUIsTUFBTSxDQUFDNkQsSUFBUCxFQUFYLENBQXBCO0FBQ0EsV0FBT0QsV0FBVyxDQUFDRSxXQUFaLENBQXdCeEIsR0FBeEIsQ0FBNkJ5QixJQUFELElBQVVBLElBQUksQ0FBQzNDLElBQTNDLENBQVA7QUFDRCxHQUhELENBR0UsT0FBT29CLEdBQVAsRUFBWTtBQUNaLFVBQU0sSUFBSTdCLEtBQUosQ0FBVyx1Q0FBc0M2QixHQUFHLENBQUN3QixPQUFRLEVBQTdELENBQU47QUFDRDtBQUNGLENBckJEOztBQXlEQW5FLFFBQVEsQ0FBQ29FLElBQVQsR0FBZ0IsZUFBZUEsSUFBZixHQUF1QjtBQUNyQyxRQUFNO0FBQUNqRSxJQUFBQTtBQUFELE1BQVcsTUFBTSxLQUFLQyxJQUFMLENBQVUsTUFBVixFQUFrQjtBQUN2Q0MsSUFBQUEsSUFBSSxFQUFFLENBQUMsSUFBRDtBQURpQyxHQUFsQixDQUF2Qjs7QUFHQSxNQUFJO0FBQ0YsV0FBTzJCLElBQUksQ0FBQ0MsS0FBTCxDQUFXOUIsTUFBTSxDQUFDNkQsSUFBUCxFQUFYLENBQVA7QUFDRCxHQUZELENBRUUsT0FBT0ssQ0FBUCxFQUFVO0FBQ1YsVUFBTSxJQUFJdkQsS0FBSixDQUFXLGdDQUErQnVELENBQUMsQ0FBQ0YsT0FBUSxFQUFwRCxDQUFOO0FBQ0Q7QUFDRixDQVREOztlQVdlbkUsUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBTSU1fUlVOVElNRV9OQU1FLCBub3JtYWxpemVWZXJzaW9uIH0gZnJvbSAnLi4vaGVscGVycyc7XG5pbXBvcnQgbG9nIGZyb20gJy4uL2xvZ2dlcic7XG5cblxuY29uc3QgY29tbWFuZHMgPSB7fTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBEZXZpY2VJbmZvXG4gKiBAcHJvcGVydHkge3N0cmluZ30gbmFtZSAtIFRoZSBkZXZpY2UgbmFtZS5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSB1ZGlkIC0gVGhlIGRldmljZSBVRElELlxuICogQHByb3BlcnR5IHtzdHJpbmd9IHN0YXRlIC0gVGhlIGN1cnJlbnQgU2ltdWxhdG9yIHN0YXRlLCBmb3IgZXhhbXBsZSAnYm9vdGVkJyBvciAnc2h1dGRvd24nLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IHNkayAtIFRoZSBTREsgdmVyc2lvbiwgZm9yIGV4YW1wbGUgJzEwLjMnLlxuICovXG5cbi8qKlxuICogUGFyc2UgdGhlIGxpc3Qgb2YgZXhpc3RpbmcgU2ltdWxhdG9yIGRldmljZXMgdG8gcmVwcmVzZW50XG4gKiBpdCBhcyBjb252ZW5pZW50IG1hcHBpbmcuXG4gKlxuICogQHBhcmFtIHs/c3RyaW5nfSBwbGF0Zm9ybSAtIFRoZSBwbGF0Zm9ybSBuYW1lLCBmb3IgZXhhbXBsZSAnd2F0Y2hPUycuXG4gKiBAcmV0dXJuIHtPYmplY3R9IFRoZSByZXN1bHRpbmcgbWFwcGluZy4gRWFjaCBrZXkgaXMgcGxhdGZvcm0gdmVyc2lvbixcbiAqICAgICAgICAgICAgICAgICAgZm9yIGV4YW1wbGUgJzEwLjMnIGFuZCB0aGUgY29ycmVzcG9uZGluZyB2YWx1ZSBpcyBhblxuICogICAgICAgICAgICAgICAgICBhcnJheSBvZiB0aGUgbWF0Y2hpbmcge0BsaW5rIERldmljZUluZm99IGluc3RhbmNlcy5cbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgY29ycmVzcG9uZGluZyBzaW1jdGwgc3ViY29tbWFuZCBjb21tYW5kXG4gKiAgICAgICAgICAgICAgICAgcmV0dXJucyBub24temVybyByZXR1cm4gY29kZS5cbiAqL1xuY29tbWFuZHMuZ2V0RGV2aWNlc0J5UGFyc2luZyA9IGFzeW5jIGZ1bmN0aW9uIGdldERldmljZXNCeVBhcnNpbmcgKHBsYXRmb3JtKSB7XG4gIC8vIGdldCB0aGUgbGlzdCBvZiBkZXZpY2VzXG4gIGNvbnN0IHtzdGRvdXR9ID0gYXdhaXQgdGhpcy5leGVjKCdsaXN0Jywge1xuICAgIGFyZ3M6IFsnZGV2aWNlcyddLFxuICB9KTtcblxuICAvLyBleHBlY3QgdG8gZ2V0IGEgbGlzdGluZyBsaWtlXG4gIC8vIC0tIGlPUyA4LjEgLS1cbiAgLy8gICAgIGlQaG9uZSA0cyAoM0NBNkU3REQtMjIwRS00NUU1LUI3MTYtMUU5OTJCM0E0MjlDKSAoU2h1dGRvd24pXG4gIC8vICAgICAuLi5cbiAgLy8gLS0gaU9TIDguMiAtLVxuICAvLyAgICAgaVBob25lIDRzIChBOTlGRkZDMy04RTE5LTREQ0YtQjU4NS03RDlENDZCNEMxNkUpIChTaHV0ZG93bilcbiAgLy8gICAgIC4uLlxuICAvLyBzbywgZ2V0IHRoZSBgLS0gaU9TIFguWCAtLWAgbGluZSB0byBmaW5kIHRoZSBzZGsgKFguWClcbiAgLy8gYW5kIHRoZSByZXN0IG9mIHRoZSBsaXN0aW5nIGluIG9yZGVyIHRvIGxhdGVyIGZpbmQgdGhlIGRldmljZXNcbiAgY29uc3QgZGV2aWNlU2VjdGlvblJlID0gXy5pc0VtcHR5KHBsYXRmb3JtKVxuICAgID8gbmV3IFJlZ0V4cChgXFxcXC1cXFxcLVxcXFxzKyhcXFxcUyspXFxcXHMrKFxcXFxTKylcXFxccytcXFxcLVxcXFwtKFxcXFxuXFxcXHN7NH0uKykqYCwgJ21naScpXG4gICAgOiBuZXcgUmVnRXhwKGBcXFxcLVxcXFwtXFxcXHMrJHtfLmVzY2FwZVJlZ0V4cChwbGF0Zm9ybSl9XFxcXHMrKFxcXFxTKylcXFxccytcXFxcLVxcXFwtKFxcXFxuXFxcXHN7NH0uKykqYCwgJ21naScpO1xuICBjb25zdCBtYXRjaGVzID0gW107XG4gIGxldCBtYXRjaDtcbiAgLy8gbWFrZSBhbiBlbnRyeSBmb3IgZWFjaCBzZGsgdmVyc2lvblxuICB3aGlsZSAoKG1hdGNoID0gZGV2aWNlU2VjdGlvblJlLmV4ZWMoc3Rkb3V0KSkpIHtcbiAgICBtYXRjaGVzLnB1c2gobWF0Y2gpO1xuICB9XG4gIGlmIChfLmlzRW1wdHkobWF0Y2hlcykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0NvdWxkIG5vdCBmaW5kIGRldmljZSBzZWN0aW9uJyk7XG4gIH1cblxuICBjb25zdCBsaW5lUmUgPSAvKFteXFxzXS4rKSBcXCgoXFx3Ky0uK1xcdyspXFwpIFxcKChcXHcrXFxzP1xcdyspXFwpLzsgLy8gaHR0cHM6Ly9yZWdleDEwMS5jb20vci9sRzdtSzYvM1xuICAvLyBnZXQgYWxsIHRoZSBkZXZpY2VzIGZvciBlYWNoIHNka1xuICBjb25zdCBkZXZpY2VzID0ge307XG4gIGZvciAobWF0Y2ggb2YgbWF0Y2hlcykge1xuICAgIGNvbnN0IHNkayA9IHBsYXRmb3JtID8gbWF0Y2hbMV0gOiBtYXRjaFsyXTtcbiAgICBkZXZpY2VzW3Nka10gPSBkZXZpY2VzW3Nka10gfHwgW107XG4gICAgLy8gc3BsaXQgdGhlIGZ1bGwgbWF0Y2ggaW50byBsaW5lcyBhbmQgcmVtb3ZlIHRoZSBmaXJzdFxuICAgIGZvciAoY29uc3QgbGluZSBvZiBtYXRjaFswXS5zcGxpdCgnXFxuJykuc2xpY2UoMSkpIHtcbiAgICAgIGlmIChsaW5lLmluY2x1ZGVzKCcodW5hdmFpbGFibGUsICcpKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuICAgICAgLy8gYSBsaW5lIGlzIHNvbWV0aGluZyBsaWtlXG4gICAgICAvLyAgICBpUGhvbmUgNHMgKEE5OUZGRkMzLThFMTktNERDRi1CNTg1LTdEOUQ0NkI0QzE2RSkgKFNodXRkb3duKVxuICAgICAgLy8gcmV0cmlldmU6XG4gICAgICAvLyAgIGlQaG9uZSA0c1xuICAgICAgLy8gICBBOTlGRkZDMy04RTE5LTREQ0YtQjU4NS03RDlENDZCNEMxNkVcbiAgICAgIC8vICAgU2h1dGRvd25cbiAgICAgIGNvbnN0IGxpbmVNYXRjaCA9IGxpbmVSZS5leGVjKGxpbmUpO1xuICAgICAgaWYgKCFsaW5lTWF0Y2gpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgbWF0Y2ggbGluZTogJHtsaW5lfWApO1xuICAgICAgfVxuICAgICAgLy8gc2F2ZSB0aGUgd2hvbGUgdGhpbmcgYXMgYWIgb2JqZWN0IGluIHRoZSBsaXN0IGZvciB0aGlzIHNka1xuICAgICAgZGV2aWNlc1tzZGtdLnB1c2goe1xuICAgICAgICBuYW1lOiBsaW5lTWF0Y2hbMV0sXG4gICAgICAgIHVkaWQ6IGxpbmVNYXRjaFsyXSxcbiAgICAgICAgc3RhdGU6IGxpbmVNYXRjaFszXSxcbiAgICAgICAgc2RrLFxuICAgICAgICBwbGF0Zm9ybTogcGxhdGZvcm0gfHwgbWF0Y2hbMV0sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGRldmljZXM7XG59O1xuXG4vKipcbiAqIFBhcnNlIHRoZSBsaXN0IG9mIGV4aXN0aW5nIFNpbXVsYXRvciBkZXZpY2VzIHRvIHJlcHJlc2VudFxuICogaXQgYXMgY29udmVuaWVudCBtYXBwaW5nIGZvciB0aGUgcGFydGljdWxhciBwbGF0Zm9ybSB2ZXJzaW9uLlxuICpcbiAqIEBwYXJhbSB7P3N0cmluZ30gZm9yU2RrIC0gVGhlIHNkayB2ZXJzaW9uLFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICBmb3Igd2hpY2ggdGhlIGRldmljZXMgbGlzdCBzaG91bGQgYmUgcGFyc2VkLFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgZXhhbXBsZSAnMTAuMycuXG4gKiBAcGFyYW0gez9zdHJpbmd9IHBsYXRmb3JtIC0gVGhlIHBsYXRmb3JtIG5hbWUsIGZvciBleGFtcGxlICd3YXRjaE9TJy5cbiAqIEByZXR1cm4ge09iamVjdHxBcnJheTxEZXZpY2VJbmZvPn0gSWYgX2ZvclNka18gaXMgc2V0IHRoZW4gdGhlIGxpc3RcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb2YgZGV2aWNlcyBmb3IgdGhlIHBhcnRpY3VsYXIgcGxhdGZvcm0gdmVyc2lvbi5cbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgT3RoZXJ3aXNlIHRoZSBzYW1lIHJlc3VsdCBhcyBmb3Ige0BsaW5rIGdldERldmljZXNCeVBhcnNpbmd9XG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uLlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBjb3JyZXNwb25kaW5nIHNpbWN0bCBzdWJjb21tYW5kIGNvbW1hbmRcbiAqICAgICAgICAgICAgICAgICByZXR1cm5zIG5vbi16ZXJvIHJldHVybiBjb2RlIG9yIGlmIG5vIG1hdGNoaW5nXG4gKiAgICAgICAgICAgICAgICAgcGxhdGZvcm0gdmVyc2lvbiBpcyBmb3VuZCBpbiB0aGUgc3lzdGVtLlxuICovXG5jb21tYW5kcy5nZXREZXZpY2VzID0gYXN5bmMgZnVuY3Rpb24gZ2V0RGV2aWNlcyAoZm9yU2RrLCBwbGF0Zm9ybSkge1xuICBsZXQgZGV2aWNlcyA9IHt9O1xuICB0cnkge1xuICAgIGNvbnN0IHtzdGRvdXR9ID0gYXdhaXQgdGhpcy5leGVjKCdsaXN0Jywge1xuICAgICAgYXJnczogWydkZXZpY2VzJywgJy1qJ10sXG4gICAgfSk7XG4gICAgLyogSlNPTiBzaG91bGQgYmVcbiAgICAgKiB7XG4gICAgICogICBcImRldmljZXNcIiA6IHtcbiAgICAgKiAgICAgXCJpT1MgPHNkaz5cIiA6IFsgLy8gb3JcbiAgICAgKiAgICAgXCJjb20uYXBwbGUuQ29yZVNpbXVsYXRvci5TaW1SdW50aW1lLmlPUy08c2RrPiA6IFtcbiAgICAgKiAgICAgICB7XG4gICAgICogICAgICAgICBcInN0YXRlXCIgOiBcIkJvb3RlZFwiLFxuICAgICAqICAgICAgICAgXCJhdmFpbGFiaWxpdHlcIiA6IFwiKGF2YWlsYWJsZSlcIixcbiAgICAgKiAgICAgICAgIFwiaXNBdmFpbGFibGVcIiA6IHRydWUsXG4gICAgICogICAgICAgICBcIm5hbWVcIiA6IFwiaVBob25lIDZcIixcbiAgICAgKiAgICAgICAgIFwidWRpZFwiIDogXCI3NUUzNDE0MC0xOEU4LTREMUEtOUY0NS1BQUM3MzVERjc1REZcIlxuICAgICAqICAgICAgIH1cbiAgICAgKiAgICAgXVxuICAgICAqICAgfVxuICAgICAqIH1cbiAgICAgKi9cbiAgICBjb25zdCB2ZXJzaW9uTWF0Y2hSZSA9IF8uaXNFbXB0eShwbGF0Zm9ybSlcbiAgICAgID8gbmV3IFJlZ0V4cChgXihbXlxcXFxzLV0rKVtcXFxccy1dKFxcXFxTKylgLCAnaScpXG4gICAgICA6IG5ldyBSZWdFeHAoYF4ke18uZXNjYXBlUmVnRXhwKHBsYXRmb3JtKX1bXFxcXHMtXShcXFxcUyspYCwgJ2knKTtcbiAgICBmb3IgKGxldCBbc2RrTmFtZSwgZW50cmllc10gb2YgXy50b1BhaXJzKEpTT04ucGFyc2Uoc3Rkb3V0KS5kZXZpY2VzKSkge1xuICAgICAgLy8gdGhlcmUgY291bGQgYmUgYSBsb25nZXIgbmFtZSwgc28gcmVtb3ZlIGl0XG4gICAgICBzZGtOYW1lID0gc2RrTmFtZS5yZXBsYWNlKFNJTV9SVU5USU1FX05BTUUsICcnKTtcbiAgICAgIGNvbnN0IHZlcnNpb25NYXRjaCA9IHZlcnNpb25NYXRjaFJlLmV4ZWMoc2RrTmFtZSk7XG4gICAgICBpZiAoIXZlcnNpb25NYXRjaCkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgLy8gdGhlIHNkayBjYW4gaGF2ZSBkYXNoZXMgKGAxMi0yYCkgb3IgZG90cyAoYDEyLjFgKVxuICAgICAgY29uc3Qgc2RrID0gKHBsYXRmb3JtID8gdmVyc2lvbk1hdGNoWzFdIDogdmVyc2lvbk1hdGNoWzJdKS5yZXBsYWNlKCctJywgJy4nKTtcbiAgICAgIGRldmljZXNbc2RrXSA9IGRldmljZXNbc2RrXSB8fCBbXTtcbiAgICAgIGRldmljZXNbc2RrXS5wdXNoKC4uLmVudHJpZXMuZmlsdGVyKChlbCkgPT4gXy5pc1VuZGVmaW5lZChlbC5pc0F2YWlsYWJsZSkgfHwgZWwuaXNBdmFpbGFibGUpXG4gICAgICAgIC5tYXAoKGVsKSA9PiB7XG4gICAgICAgICAgZGVsZXRlIGVsLmF2YWlsYWJpbGl0eTtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgc2RrLFxuICAgICAgICAgICAgLi4uZWwsXG4gICAgICAgICAgICBwbGF0Zm9ybTogcGxhdGZvcm0gfHwgdmVyc2lvbk1hdGNoWzFdLFxuICAgICAgICAgIH07XG4gICAgICAgIH0pXG4gICAgICApO1xuICAgIH1cbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgbG9nLmRlYnVnKGBVbmFibGUgdG8gZ2V0IEpTT04gZGV2aWNlIGxpc3Q6ICR7ZXJyLnN0YWNrfWApO1xuICAgIGxvZy5kZWJ1ZygnRmFsbGluZyBiYWNrIHRvIG1hbnVhbCBwYXJzaW5nJyk7XG4gICAgZGV2aWNlcyA9IGF3YWl0IHRoaXMuZ2V0RGV2aWNlc0J5UGFyc2luZyhwbGF0Zm9ybSk7XG4gIH1cblxuICBpZiAoIWZvclNkaykge1xuICAgIHJldHVybiBkZXZpY2VzO1xuICB9XG4gIC8vIGlmIGEgYGZvclNka2Agd2FzIHBhc3NlZCBpbiwgcmV0dXJuIG9ubHkgdGhlIGNvcnJlc3BvbmRpbmcgbGlzdFxuICBpZiAoZGV2aWNlc1tmb3JTZGtdKSB7XG4gICAgcmV0dXJuIGRldmljZXNbZm9yU2RrXTtcbiAgfVxuXG4gIGxldCBlcnJNc2cgPSBgJyR7Zm9yU2RrfScgZG9lcyBub3QgZXhpc3QgaW4gdGhlIGxpc3Qgb2Ygc2ltY3RsIFNES3MuYDtcbiAgY29uc3QgYXZhaWxhYmxlU0RLcyA9IF8ua2V5cyhkZXZpY2VzKTtcbiAgZXJyTXNnICs9IGF2YWlsYWJsZVNES3MubGVuZ3RoXG4gICAgPyBgIE9ubHkgdGhlIGZvbGxvd2luZyBTaW11bGF0b3IgU0RLIHZlcnNpb25zIGFyZSBhdmFpbGFibGUgb24geW91ciBzeXN0ZW06ICR7YXZhaWxhYmxlU0RLcy5qb2luKCcsICcpfWBcbiAgICA6IGAgTm8gU2ltdWxhdG9yIFNESyB2ZXJzaW9ucyBhcmUgYXZhaWxhYmxlIG9uIHlvdXIgc3lzdGVtLiBQbGVhc2UgaW5zdGFsbCBzb21lIHZpYSBYY29kZSBwcmVmZXJlbmNlcy5gO1xuICB0aHJvdyBuZXcgRXJyb3IoZXJyTXNnKTtcbn07XG5cbi8qKlxuICogR2V0IHRoZSBydW50aW1lIGZvciB0aGUgcGFydGljdWxhciBwbGF0Zm9ybSB2ZXJzaW9uIHVzaW5nIC0tanNvbiBmbGFnXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHBsYXRmb3JtVmVyc2lvbiAtIFRoZSBwbGF0Zm9ybSB2ZXJzaW9uIG5hbWUsXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGV4YW1wbGUgJzEwLjMnLlxuICogQHBhcmFtIHs/c3RyaW5nfSBwbGF0Zm9ybSAtIFRoZSBwbGF0Zm9ybSBuYW1lLCBmb3IgZXhhbXBsZSAnd2F0Y2hPUycuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IFRoZSBjb3JyZXNwb25kaW5nIHJ1bnRpbWUgbmFtZSBmb3IgdGhlIGdpdmVuXG4gKiAgICAgICAgICAgICAgICAgIHBsYXRmb3JtIHZlcnNpb24uXG4gKi9cbmNvbW1hbmRzLmdldFJ1bnRpbWVGb3JQbGF0Zm9ybVZlcnNpb25WaWFKc29uID0gYXN5bmMgZnVuY3Rpb24gZ2V0UnVudGltZUZvclBsYXRmb3JtVmVyc2lvblZpYUpzb24gKFxuICBwbGF0Zm9ybVZlcnNpb24sIHBsYXRmb3JtID0gJ2lPUycpIHtcbiAgY29uc3Qge3N0ZG91dH0gPSBhd2FpdCB0aGlzLmV4ZWMoJ2xpc3QnLCB7XG4gICAgYXJnczogWydydW50aW1lcycsICctLWpzb24nXSxcbiAgfSk7XG4gIGZvciAoY29uc3Qge3ZlcnNpb24sIGlkZW50aWZpZXIsIG5hbWV9IG9mIEpTT04ucGFyc2Uoc3Rkb3V0KS5ydW50aW1lcykge1xuICAgIGlmIChub3JtYWxpemVWZXJzaW9uKHZlcnNpb24pID09PSBub3JtYWxpemVWZXJzaW9uKHBsYXRmb3JtVmVyc2lvbilcbiAgICAgICYmIG5hbWUudG9Mb3dlckNhc2UoKS5zdGFydHNXaXRoKHBsYXRmb3JtLnRvTG93ZXJDYXNlKCkpKSB7XG4gICAgICByZXR1cm4gaWRlbnRpZmllcjtcbiAgICB9XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgdXNlIC0tanNvbiBmbGFnIHRvIHBhcnNlIHBsYXRmb3JtIHZlcnNpb25gKTtcbn07XG5cbi8qKlxuICogR2V0IHRoZSBydW50aW1lIGZvciB0aGUgcGFydGljdWxhciBwbGF0Zm9ybSB2ZXJzaW9uLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwbGF0Zm9ybVZlcnNpb24gLSBUaGUgcGxhdGZvcm0gdmVyc2lvbiBuYW1lLFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBleGFtcGxlICcxMC4zJy5cbiAqIEBwYXJhbSB7P3N0cmluZ30gcGxhdGZvcm0gLSBUaGUgcGxhdGZvcm0gbmFtZSwgZm9yIGV4YW1wbGUgJ3dhdGNoT1MnLlxuICogQHJldHVybiB7c3RyaW5nfSBUaGUgY29ycmVzcG9uZGluZyBydW50aW1lIG5hbWUgZm9yIHRoZSBnaXZlblxuICogICAgICAgICAgICAgICAgICBwbGF0Zm9ybSB2ZXJzaW9uLlxuICovXG5jb21tYW5kcy5nZXRSdW50aW1lRm9yUGxhdGZvcm1WZXJzaW9uID0gYXN5bmMgZnVuY3Rpb24gZ2V0UnVudGltZUZvclBsYXRmb3JtVmVyc2lvbiAoXG4gIHBsYXRmb3JtVmVyc2lvbiwgcGxhdGZvcm0gPSAnaU9TJykge1xuICAvLyBUcnkgd2l0aCBwYXJzaW5nXG4gIHRyeSB7XG4gICAgY29uc3Qge3N0ZG91dH0gPSBhd2FpdCB0aGlzLmV4ZWMoJ2xpc3QnLCB7XG4gICAgICBhcmdzOiBbJ3J1bnRpbWVzJ10sXG4gICAgfSk7XG4gICAgLy8gaHR0cHM6Ly9yZWdleDEwMS5jb20vci9VeWtqUVovMVxuICAgIGNvbnN0IHJ1bnRpbWVSZSA9XG4gICAgICBuZXcgUmVnRXhwKGAke18uZXNjYXBlUmVnRXhwKHBsYXRmb3JtKX1cXFxccysoXFxcXGQrXFxcXC5cXFxcZCspXFxcXHMrXFxcXCgoXFxcXGQrXFxcXC5cXFxcZCtcXFxcLipcXFxcZCopYCwgJ2knKTtcbiAgICBmb3IgKGNvbnN0IGxpbmUgb2Ygc3Rkb3V0LnNwbGl0KCdcXG4nKSkge1xuICAgICAgY29uc3QgbWF0Y2ggPSBydW50aW1lUmUuZXhlYyhsaW5lKTtcbiAgICAgIGlmIChtYXRjaCAmJiBtYXRjaFsxXSA9PT0gcGxhdGZvcm1WZXJzaW9uKSB7XG4gICAgICAgIHJldHVybiBtYXRjaFsyXTtcbiAgICAgIH1cbiAgICB9XG4gIH0gY2F0Y2ggKGlnbikge31cblxuICAvLyBpZiBub3RoaW5nIHdhcyBmb3VuZCwgcGFzcyBwbGF0Zm9ybSB2ZXJzaW9uIGJhY2tcbiAgcmV0dXJuIHBsYXRmb3JtVmVyc2lvbjtcbn07XG5cbi8qKlxuICogR2V0IHRoZSBsaXN0IG9mIGRldmljZSB0eXBlcyBhdmFpbGFibGUgaW4gdGhlIGN1cnJlbnQgWGNvZGUgaW5zdGFsbGF0aW9uXG4gKlxuICogQHJldHVybiB7QXJyYXk8c3RyaW5nPn0gTGlzdCBvZiB0aGUgdHlwZXMgb2YgZGV2aWNlcyBhdmFpbGFibGVcbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgY29ycmVzcG9uZGluZyBzaW1jdGwgY29tbWFuZCBmYWlsc1xuICovXG5jb21tYW5kcy5nZXREZXZpY2VUeXBlcyA9IGFzeW5jIGZ1bmN0aW9uIGdldERldmljZVR5cGVzICgpIHtcbiAgY29uc3Qge3N0ZG91dH0gPSBhd2FpdCB0aGlzLmV4ZWMoJ2xpc3QnLCB7XG4gICAgYXJnczogWydkZXZpY2V0eXBlcycsICctaiddLFxuICB9KTtcbiAgLypcbiAgICogSlNPTiB3aWxsIGJlIGxpa2U6XG4gICAqICAge1xuICAgKiAgICAgXCJkZXZpY2V0eXBlc1wiIDogW1xuICAgKiAgICAgICB7XG4gICAqICAgICAgICAgXCJuYW1lXCIgOiBcImlQaG9uZSA0c1wiLFxuICAgKiAgICAgICAgIFwiaWRlbnRpZmllclwiIDogXCJjb20uYXBwbGUuQ29yZVNpbXVsYXRvci5TaW1EZXZpY2VUeXBlLmlQaG9uZS00c1wiXG4gICAqICAgICAgIH0sXG4gICAqICAgICAgIC4uLlxuICAgKiAgIH1cbiAgICovXG4gIHRyeSB7XG4gICAgY29uc3QgZGV2aWNlVHlwZXMgPSBKU09OLnBhcnNlKHN0ZG91dC50cmltKCkpO1xuICAgIHJldHVybiBkZXZpY2VUeXBlcy5kZXZpY2V0eXBlcy5tYXAoKHR5cGUpID0+IHR5cGUubmFtZSk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGdldCBsaXN0IG9mIGRldmljZSB0eXBlczogJHtlcnIubWVzc2FnZX1gKTtcbiAgfVxufTtcblxuLyoqXG4gKiBHZXQgdGhlIGZ1bGwgbGlzdCBvZiBydW50aW1lcywgZGV2aWNldHlwZXMsIGRldmljZXMgYW5kIHBhaXJzIGFzIE9iamVjdFxuICpcbiAqIEByZXR1cm4ge09iamVjdH0gT2JqZWN0IGNvbnRhaW5pbmcgZGV2aWNlIHR5cGVzLCBydW50aW1lcyBkZXZpY2VzIGFuZCBwYWlycy5cbiAqIFRoZSByZXN1bHRpbmcgSlNPTiB3aWxsIGJlIGxpa2U6XG4gKiAgIHtcbiAqICAgICBcImRldmljZXR5cGVzXCIgOiBbXG4gKiAgICAgICB7XG4gKiAgICAgICAgIFwibmFtZVwiIDogXCJpUGhvbmUgNHNcIixcbiAqICAgICAgICAgXCJpZGVudGlmaWVyXCIgOiBcImNvbS5hcHBsZS5Db3JlU2ltdWxhdG9yLlNpbURldmljZVR5cGUuaVBob25lLTRzXCJcbiAqICAgICAgIH0sXG4gKiAgICAgICAuLi5cbiAqICAgICAgXSxcbiAqICAgICBcInJ1bnRpbWVzXCIgOiBbXG4gKiAgICAgICB7XG4gKiAgICAgICAgIFwidmVyc2lvblwiIDogJzEzLjAnLFxuICogICAgICAgICBcImJ1bmRsZVBhdGhcIiA6ICcvQXBwbGljYXRpb25zL1hjb2RlMTFiZXRhNC5hcHAvQ29udGVudHMvRGV2ZWxvcGVyL1BsYXRmb3Jtcy9pUGhvbmVPUy5wbGF0Zm9ybS9MaWJyYXJ5L0RldmVsb3Blci9Db3JlU2ltdWxhdG9yL1Byb2ZpbGVzL1J1bnRpbWVzL2lPUy5zaW1ydW50aW1lJyxcbiAqICAgICAgICAgXCJpc0F2YWlsYWJsZVwiIDogdHJ1ZSxcbiAqICAgICAgICAgXCJuYW1lXCIgOiAnaU9TIDEzLjAnLFxuICogICAgICAgICBcImlkZW50aWZpZXJcIiA6ICdjb20uYXBwbGUuQ29yZVNpbXVsYXRvci5TaW1SdW50aW1lLmlPUy0xMy0wJyxcbiAqICAgICAgICAgXCJidWlsZHZlcnNpb25cIiA6ICcxN0E1NTM0ZCdcbiAqICAgICAgIH0sXG4gKiAgICAgICAuLi5cbiAqICAgICAgfSxcbiAqICAgICBcImRldmljZXNcIiA6XG4gKiAgICAgICB7XG4gKiAgICAgICAgICdjb20uYXBwbGUuQ29yZVNpbXVsYXRvci5TaW1SdW50aW1lLmlPUy0xMy0wJzogWyBbT2JqZWN0XSwgW09iamVjdF0gXSB9LFxuICogICAgICAgICAuLi5cbiAqICAgICAgIH0sXG4gKiAgICAgXCJwYWlyc1wiIDoge30gfVxuICpcbiAqICAgfVxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBjb3JyZXNwb25kaW5nIHNpbWN0bCBjb21tYW5kIGZhaWxzXG4gKi9cbmNvbW1hbmRzLmxpc3QgPSBhc3luYyBmdW5jdGlvbiBsaXN0ICgpIHtcbiAgY29uc3Qge3N0ZG91dH0gPSBhd2FpdCB0aGlzLmV4ZWMoJ2xpc3QnLCB7XG4gICAgYXJnczogWyctaiddLFxuICB9KTtcbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShzdGRvdXQudHJpbSgpKTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIHBhcnNlIHNpbWN0bCBsaXN0OiAke2UubWVzc2FnZX1gKTtcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwiZmlsZSI6ImxpYi9zdWJjb21tYW5kcy9saXN0LmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uIn0=
|
|
199
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zdWJjb21tYW5kcy9saXN0LmpzIl0sIm5hbWVzIjpbImNvbW1hbmRzIiwiZ2V0RGV2aWNlc0J5UGFyc2luZyIsInBsYXRmb3JtIiwic3Rkb3V0IiwiZXhlYyIsImFyZ3MiLCJkZXZpY2VTZWN0aW9uUmUiLCJfIiwiaXNFbXB0eSIsIlJlZ0V4cCIsImVzY2FwZVJlZ0V4cCIsIm1hdGNoZXMiLCJtYXRjaCIsInB1c2giLCJFcnJvciIsImxpbmVSZSIsImRldmljZXMiLCJzZGsiLCJsaW5lIiwic3BsaXQiLCJzbGljZSIsImluY2x1ZGVzIiwibGluZU1hdGNoIiwibmFtZSIsInVkaWQiLCJzdGF0ZSIsImdldERldmljZXMiLCJmb3JTZGsiLCJ2ZXJzaW9uTWF0Y2hSZSIsInNka05hbWUiLCJlbnRyaWVzIiwidG9QYWlycyIsIkpTT04iLCJwYXJzZSIsInJlcGxhY2UiLCJTSU1fUlVOVElNRV9OQU1FIiwidmVyc2lvbk1hdGNoIiwiZmlsdGVyIiwiZWwiLCJpc1VuZGVmaW5lZCIsImlzQXZhaWxhYmxlIiwibWFwIiwiYXZhaWxhYmlsaXR5IiwiZXJyIiwibG9nIiwiZGVidWciLCJMT0dfUFJFRklYIiwic3RhY2siLCJlcnJNc2ciLCJhdmFpbGFibGVTREtzIiwia2V5cyIsImxlbmd0aCIsImpvaW4iLCJnZXRSdW50aW1lRm9yUGxhdGZvcm1WZXJzaW9uVmlhSnNvbiIsInBsYXRmb3JtVmVyc2lvbiIsInZlcnNpb24iLCJpZGVudGlmaWVyIiwicnVudGltZXMiLCJ0b0xvd2VyQ2FzZSIsInN0YXJ0c1dpdGgiLCJnZXRSdW50aW1lRm9yUGxhdGZvcm1WZXJzaW9uIiwicnVudGltZVJlIiwiaWduIiwiZ2V0RGV2aWNlVHlwZXMiLCJkZXZpY2VUeXBlcyIsInRyaW0iLCJkZXZpY2V0eXBlcyIsInR5cGUiLCJtZXNzYWdlIiwibGlzdCIsImUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFHQSxNQUFNQSxRQUFRLEdBQUcsRUFBakI7O0FBcUJBQSxRQUFRLENBQUNDLG1CQUFULEdBQStCLGVBQWVBLG1CQUFmLENBQW9DQyxRQUFwQyxFQUE4QztBQUUzRSxRQUFNO0FBQUNDLElBQUFBO0FBQUQsTUFBVyxNQUFNLEtBQUtDLElBQUwsQ0FBVSxNQUFWLEVBQWtCO0FBQ3ZDQyxJQUFBQSxJQUFJLEVBQUUsQ0FBQyxTQUFEO0FBRGlDLEdBQWxCLENBQXZCO0FBYUEsUUFBTUMsZUFBZSxHQUFHQyxnQkFBRUMsT0FBRixDQUFVTixRQUFWLElBQ3BCLElBQUlPLE1BQUosQ0FBWSxvREFBWixFQUFpRSxLQUFqRSxDQURvQixHQUVwQixJQUFJQSxNQUFKLENBQVksYUFBWUYsZ0JBQUVHLFlBQUYsQ0FBZVIsUUFBZixDQUF5QixvQ0FBakQsRUFBc0YsS0FBdEYsQ0FGSjtBQUdBLFFBQU1TLE9BQU8sR0FBRyxFQUFoQjtBQUNBLE1BQUlDLEtBQUo7O0FBRUEsU0FBUUEsS0FBSyxHQUFHTixlQUFlLENBQUNGLElBQWhCLENBQXFCRCxNQUFyQixDQUFoQixFQUErQztBQUM3Q1EsSUFBQUEsT0FBTyxDQUFDRSxJQUFSLENBQWFELEtBQWI7QUFDRDs7QUFDRCxNQUFJTCxnQkFBRUMsT0FBRixDQUFVRyxPQUFWLENBQUosRUFBd0I7QUFDdEIsVUFBTSxJQUFJRyxLQUFKLENBQVUsK0JBQVYsQ0FBTjtBQUNEOztBQUVELFFBQU1DLE1BQU0sR0FBRywyQ0FBZjtBQUVBLFFBQU1DLE9BQU8sR0FBRyxFQUFoQjs7QUFDQSxPQUFLSixLQUFMLElBQWNELE9BQWQsRUFBdUI7QUFDckIsVUFBTU0sR0FBRyxHQUFHZixRQUFRLEdBQUdVLEtBQUssQ0FBQyxDQUFELENBQVIsR0FBY0EsS0FBSyxDQUFDLENBQUQsQ0FBdkM7QUFDQUksSUFBQUEsT0FBTyxDQUFDQyxHQUFELENBQVAsR0FBZUQsT0FBTyxDQUFDQyxHQUFELENBQVAsSUFBZ0IsRUFBL0I7O0FBRUEsU0FBSyxNQUFNQyxJQUFYLElBQW1CTixLQUFLLENBQUMsQ0FBRCxDQUFMLENBQVNPLEtBQVQsQ0FBZSxJQUFmLEVBQXFCQyxLQUFyQixDQUEyQixDQUEzQixDQUFuQixFQUFrRDtBQUNoRCxVQUFJRixJQUFJLENBQUNHLFFBQUwsQ0FBYyxnQkFBZCxDQUFKLEVBQXFDO0FBQ25DO0FBQ0Q7O0FBT0QsWUFBTUMsU0FBUyxHQUFHUCxNQUFNLENBQUNYLElBQVAsQ0FBWWMsSUFBWixDQUFsQjs7QUFDQSxVQUFJLENBQUNJLFNBQUwsRUFBZ0I7QUFDZCxjQUFNLElBQUlSLEtBQUosQ0FBVyx5QkFBd0JJLElBQUssRUFBeEMsQ0FBTjtBQUNEOztBQUVERixNQUFBQSxPQUFPLENBQUNDLEdBQUQsQ0FBUCxDQUFhSixJQUFiLENBQWtCO0FBQ2hCVSxRQUFBQSxJQUFJLEVBQUVELFNBQVMsQ0FBQyxDQUFELENBREM7QUFFaEJFLFFBQUFBLElBQUksRUFBRUYsU0FBUyxDQUFDLENBQUQsQ0FGQztBQUdoQkcsUUFBQUEsS0FBSyxFQUFFSCxTQUFTLENBQUMsQ0FBRCxDQUhBO0FBSWhCTCxRQUFBQSxHQUpnQjtBQUtoQmYsUUFBQUEsUUFBUSxFQUFFQSxRQUFRLElBQUlVLEtBQUssQ0FBQyxDQUFEO0FBTFgsT0FBbEI7QUFPRDtBQUNGOztBQUNELFNBQU9JLE9BQVA7QUFDRCxDQTVERDs7QUE4RUFoQixRQUFRLENBQUMwQixVQUFULEdBQXNCLGVBQWVBLFVBQWYsQ0FBMkJDLE1BQTNCLEVBQW1DekIsUUFBbkMsRUFBNkM7QUFDakUsTUFBSWMsT0FBTyxHQUFHLEVBQWQ7O0FBQ0EsTUFBSTtBQUNGLFVBQU07QUFBQ2IsTUFBQUE7QUFBRCxRQUFXLE1BQU0sS0FBS0MsSUFBTCxDQUFVLE1BQVYsRUFBa0I7QUFDdkNDLE1BQUFBLElBQUksRUFBRSxDQUFDLFNBQUQsRUFBWSxJQUFaO0FBRGlDLEtBQWxCLENBQXZCO0FBbUJBLFVBQU11QixjQUFjLEdBQUdyQixnQkFBRUMsT0FBRixDQUFVTixRQUFWLElBQ25CLElBQUlPLE1BQUosQ0FBWSx5QkFBWixFQUFzQyxHQUF0QyxDQURtQixHQUVuQixJQUFJQSxNQUFKLENBQVksSUFBR0YsZ0JBQUVHLFlBQUYsQ0FBZVIsUUFBZixDQUF5QixjQUF4QyxFQUF1RCxHQUF2RCxDQUZKOztBQUdBLFNBQUssSUFBSSxDQUFDMkIsT0FBRCxFQUFVQyxPQUFWLENBQVQsSUFBK0J2QixnQkFBRXdCLE9BQUYsQ0FBVUMsSUFBSSxDQUFDQyxLQUFMLENBQVc5QixNQUFYLEVBQW1CYSxPQUE3QixDQUEvQixFQUFzRTtBQUVwRWEsTUFBQUEsT0FBTyxHQUFHQSxPQUFPLENBQUNLLE9BQVIsQ0FBZ0JDLHlCQUFoQixFQUFrQyxFQUFsQyxDQUFWO0FBQ0EsWUFBTUMsWUFBWSxHQUFHUixjQUFjLENBQUN4QixJQUFmLENBQW9CeUIsT0FBcEIsQ0FBckI7O0FBQ0EsVUFBSSxDQUFDTyxZQUFMLEVBQW1CO0FBQ2pCO0FBQ0Q7O0FBR0QsWUFBTW5CLEdBQUcsR0FBRyxDQUFDZixRQUFRLEdBQUdrQyxZQUFZLENBQUMsQ0FBRCxDQUFmLEdBQXFCQSxZQUFZLENBQUMsQ0FBRCxDQUExQyxFQUErQ0YsT0FBL0MsQ0FBdUQsR0FBdkQsRUFBNEQsR0FBNUQsQ0FBWjtBQUNBbEIsTUFBQUEsT0FBTyxDQUFDQyxHQUFELENBQVAsR0FBZUQsT0FBTyxDQUFDQyxHQUFELENBQVAsSUFBZ0IsRUFBL0I7QUFDQUQsTUFBQUEsT0FBTyxDQUFDQyxHQUFELENBQVAsQ0FBYUosSUFBYixDQUFrQixHQUFHaUIsT0FBTyxDQUFDTyxNQUFSLENBQWdCQyxFQUFELElBQVEvQixnQkFBRWdDLFdBQUYsQ0FBY0QsRUFBRSxDQUFDRSxXQUFqQixLQUFpQ0YsRUFBRSxDQUFDRSxXQUEzRCxFQUNsQkMsR0FEa0IsQ0FDYkgsRUFBRCxJQUFRO0FBQ1gsZUFBT0EsRUFBRSxDQUFDSSxZQUFWO0FBQ0EsZUFBTztBQUNMekIsVUFBQUEsR0FESztBQUVMLGFBQUdxQixFQUZFO0FBR0xwQyxVQUFBQSxRQUFRLEVBQUVBLFFBQVEsSUFBSWtDLFlBQVksQ0FBQyxDQUFEO0FBSDdCLFNBQVA7QUFLRCxPQVJrQixDQUFyQjtBQVVEO0FBQ0YsR0E3Q0QsQ0E2Q0UsT0FBT08sR0FBUCxFQUFZO0FBQ1pDLG9CQUFJQyxLQUFKLENBQVVDLGtCQUFWLEVBQXVCLG1DQUFrQ0gsR0FBRyxDQUFDSSxLQUFNLEVBQW5FOztBQUNBSCxvQkFBSUMsS0FBSixDQUFVQyxrQkFBVixFQUFzQixnQ0FBdEI7O0FBQ0E5QixJQUFBQSxPQUFPLEdBQUcsTUFBTSxLQUFLZixtQkFBTCxDQUF5QkMsUUFBekIsQ0FBaEI7QUFDRDs7QUFFRCxNQUFJLENBQUN5QixNQUFMLEVBQWE7QUFDWCxXQUFPWCxPQUFQO0FBQ0Q7O0FBRUQsTUFBSUEsT0FBTyxDQUFDVyxNQUFELENBQVgsRUFBcUI7QUFDbkIsV0FBT1gsT0FBTyxDQUFDVyxNQUFELENBQWQ7QUFDRDs7QUFFRCxNQUFJcUIsTUFBTSxHQUFJLElBQUdyQixNQUFPLDhDQUF4Qjs7QUFDQSxRQUFNc0IsYUFBYSxHQUFHMUMsZ0JBQUUyQyxJQUFGLENBQU9sQyxPQUFQLENBQXRCOztBQUNBZ0MsRUFBQUEsTUFBTSxJQUFJQyxhQUFhLENBQUNFLE1BQWQsR0FDTCw0RUFBMkVGLGFBQWEsQ0FBQ0csSUFBZCxDQUFtQixJQUFuQixDQUF5QixFQUQvRixHQUVMLHFHQUZMO0FBR0EsUUFBTSxJQUFJdEMsS0FBSixDQUFVa0MsTUFBVixDQUFOO0FBQ0QsQ0FuRUQ7O0FBOEVBaEQsUUFBUSxDQUFDcUQsbUNBQVQsR0FBK0MsZUFBZUEsbUNBQWYsQ0FDN0NDLGVBRDZDLEVBQzVCcEQsUUFBUSxHQUFHLEtBRGlCLEVBQ1Y7QUFDbkMsUUFBTTtBQUFDQyxJQUFBQTtBQUFELE1BQVcsTUFBTSxLQUFLQyxJQUFMLENBQVUsTUFBVixFQUFrQjtBQUN2Q0MsSUFBQUEsSUFBSSxFQUFFLENBQUMsVUFBRCxFQUFhLFFBQWI7QUFEaUMsR0FBbEIsQ0FBdkI7O0FBR0EsT0FBSyxNQUFNO0FBQUNrRCxJQUFBQSxPQUFEO0FBQVVDLElBQUFBLFVBQVY7QUFBc0JqQyxJQUFBQTtBQUF0QixHQUFYLElBQTBDUyxJQUFJLENBQUNDLEtBQUwsQ0FBVzlCLE1BQVgsRUFBbUJzRCxRQUE3RCxFQUF1RTtBQUNyRSxRQUFJLCtCQUFpQkYsT0FBakIsTUFBOEIsK0JBQWlCRCxlQUFqQixDQUE5QixJQUNDL0IsSUFBSSxDQUFDbUMsV0FBTCxHQUFtQkMsVUFBbkIsQ0FBOEJ6RCxRQUFRLENBQUN3RCxXQUFULEVBQTlCLENBREwsRUFDNEQ7QUFDMUQsYUFBT0YsVUFBUDtBQUNEO0FBQ0Y7O0FBQ0QsUUFBTSxJQUFJMUMsS0FBSixDQUFXLHFEQUFYLENBQU47QUFDRCxDQVpEOztBQXVCQWQsUUFBUSxDQUFDNEQsNEJBQVQsR0FBd0MsZUFBZUEsNEJBQWYsQ0FDdENOLGVBRHNDLEVBQ3JCcEQsUUFBUSxHQUFHLEtBRFUsRUFDSDtBQUVuQyxNQUFJO0FBQ0YsVUFBTTtBQUFDQyxNQUFBQTtBQUFELFFBQVcsTUFBTSxLQUFLQyxJQUFMLENBQVUsTUFBVixFQUFrQjtBQUN2Q0MsTUFBQUEsSUFBSSxFQUFFLENBQUMsVUFBRDtBQURpQyxLQUFsQixDQUF2QjtBQUlBLFVBQU13RCxTQUFTLEdBQ2IsSUFBSXBELE1BQUosQ0FBWSxHQUFFRixnQkFBRUcsWUFBRixDQUFlUixRQUFmLENBQXlCLCtDQUF2QyxFQUF1RixHQUF2RixDQURGOztBQUVBLFNBQUssTUFBTWdCLElBQVgsSUFBbUJmLE1BQU0sQ0FBQ2dCLEtBQVAsQ0FBYSxJQUFiLENBQW5CLEVBQXVDO0FBQ3JDLFlBQU1QLEtBQUssR0FBR2lELFNBQVMsQ0FBQ3pELElBQVYsQ0FBZWMsSUFBZixDQUFkOztBQUNBLFVBQUlOLEtBQUssSUFBSUEsS0FBSyxDQUFDLENBQUQsQ0FBTCxLQUFhMEMsZUFBMUIsRUFBMkM7QUFDekMsZUFBTzFDLEtBQUssQ0FBQyxDQUFELENBQVo7QUFDRDtBQUNGO0FBQ0YsR0FiRCxDQWFFLE9BQU9rRCxHQUFQLEVBQVksQ0FBRTs7QUFHaEIsU0FBT1IsZUFBUDtBQUNELENBcEJEOztBQTRCQXRELFFBQVEsQ0FBQytELGNBQVQsR0FBMEIsZUFBZUEsY0FBZixHQUFpQztBQUN6RCxRQUFNO0FBQUM1RCxJQUFBQTtBQUFELE1BQVcsTUFBTSxLQUFLQyxJQUFMLENBQVUsTUFBVixFQUFrQjtBQUN2Q0MsSUFBQUEsSUFBSSxFQUFFLENBQUMsYUFBRCxFQUFnQixJQUFoQjtBQURpQyxHQUFsQixDQUF2Qjs7QUFjQSxNQUFJO0FBQ0YsVUFBTTJELFdBQVcsR0FBR2hDLElBQUksQ0FBQ0MsS0FBTCxDQUFXOUIsTUFBTSxDQUFDOEQsSUFBUCxFQUFYLENBQXBCO0FBQ0EsV0FBT0QsV0FBVyxDQUFDRSxXQUFaLENBQXdCekIsR0FBeEIsQ0FBNkIwQixJQUFELElBQVVBLElBQUksQ0FBQzVDLElBQTNDLENBQVA7QUFDRCxHQUhELENBR0UsT0FBT29CLEdBQVAsRUFBWTtBQUNaLFVBQU0sSUFBSTdCLEtBQUosQ0FBVyx1Q0FBc0M2QixHQUFHLENBQUN5QixPQUFRLEVBQTdELENBQU47QUFDRDtBQUNGLENBckJEOztBQXlEQXBFLFFBQVEsQ0FBQ3FFLElBQVQsR0FBZ0IsZUFBZUEsSUFBZixHQUF1QjtBQUNyQyxRQUFNO0FBQUNsRSxJQUFBQTtBQUFELE1BQVcsTUFBTSxLQUFLQyxJQUFMLENBQVUsTUFBVixFQUFrQjtBQUN2Q0MsSUFBQUEsSUFBSSxFQUFFLENBQUMsSUFBRDtBQURpQyxHQUFsQixDQUF2Qjs7QUFHQSxNQUFJO0FBQ0YsV0FBTzJCLElBQUksQ0FBQ0MsS0FBTCxDQUFXOUIsTUFBTSxDQUFDOEQsSUFBUCxFQUFYLENBQVA7QUFDRCxHQUZELENBRUUsT0FBT0ssQ0FBUCxFQUFVO0FBQ1YsVUFBTSxJQUFJeEQsS0FBSixDQUFXLGdDQUErQndELENBQUMsQ0FBQ0YsT0FBUSxFQUFwRCxDQUFOO0FBQ0Q7QUFDRixDQVREOztlQVdlcEUsUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBTSU1fUlVOVElNRV9OQU1FLCBub3JtYWxpemVWZXJzaW9uIH0gZnJvbSAnLi4vaGVscGVycyc7XG5pbXBvcnQgbG9nLCB7IExPR19QUkVGSVggfSBmcm9tICcuLi9sb2dnZXInO1xuXG5cbmNvbnN0IGNvbW1hbmRzID0ge307XG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gRGV2aWNlSW5mb1xuICogQHByb3BlcnR5IHtzdHJpbmd9IG5hbWUgLSBUaGUgZGV2aWNlIG5hbWUuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gdWRpZCAtIFRoZSBkZXZpY2UgVURJRC5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBzdGF0ZSAtIFRoZSBjdXJyZW50IFNpbXVsYXRvciBzdGF0ZSwgZm9yIGV4YW1wbGUgJ2Jvb3RlZCcgb3IgJ3NodXRkb3duJy5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBzZGsgLSBUaGUgU0RLIHZlcnNpb24sIGZvciBleGFtcGxlICcxMC4zJy5cbiAqL1xuXG4vKipcbiAqIFBhcnNlIHRoZSBsaXN0IG9mIGV4aXN0aW5nIFNpbXVsYXRvciBkZXZpY2VzIHRvIHJlcHJlc2VudFxuICogaXQgYXMgY29udmVuaWVudCBtYXBwaW5nLlxuICpcbiAqIEBwYXJhbSB7P3N0cmluZ30gcGxhdGZvcm0gLSBUaGUgcGxhdGZvcm0gbmFtZSwgZm9yIGV4YW1wbGUgJ3dhdGNoT1MnLlxuICogQHJldHVybiB7T2JqZWN0fSBUaGUgcmVzdWx0aW5nIG1hcHBpbmcuIEVhY2gga2V5IGlzIHBsYXRmb3JtIHZlcnNpb24sXG4gKiAgICAgICAgICAgICAgICAgIGZvciBleGFtcGxlICcxMC4zJyBhbmQgdGhlIGNvcnJlc3BvbmRpbmcgdmFsdWUgaXMgYW5cbiAqICAgICAgICAgICAgICAgICAgYXJyYXkgb2YgdGhlIG1hdGNoaW5nIHtAbGluayBEZXZpY2VJbmZvfSBpbnN0YW5jZXMuXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIGNvcnJlc3BvbmRpbmcgc2ltY3RsIHN1YmNvbW1hbmQgY29tbWFuZFxuICogICAgICAgICAgICAgICAgIHJldHVybnMgbm9uLXplcm8gcmV0dXJuIGNvZGUuXG4gKi9cbmNvbW1hbmRzLmdldERldmljZXNCeVBhcnNpbmcgPSBhc3luYyBmdW5jdGlvbiBnZXREZXZpY2VzQnlQYXJzaW5nIChwbGF0Zm9ybSkge1xuICAvLyBnZXQgdGhlIGxpc3Qgb2YgZGV2aWNlc1xuICBjb25zdCB7c3Rkb3V0fSA9IGF3YWl0IHRoaXMuZXhlYygnbGlzdCcsIHtcbiAgICBhcmdzOiBbJ2RldmljZXMnXSxcbiAgfSk7XG5cbiAgLy8gZXhwZWN0IHRvIGdldCBhIGxpc3RpbmcgbGlrZVxuICAvLyAtLSBpT1MgOC4xIC0tXG4gIC8vICAgICBpUGhvbmUgNHMgKDNDQTZFN0RELTIyMEUtNDVFNS1CNzE2LTFFOTkyQjNBNDI5QykgKFNodXRkb3duKVxuICAvLyAgICAgLi4uXG4gIC8vIC0tIGlPUyA4LjIgLS1cbiAgLy8gICAgIGlQaG9uZSA0cyAoQTk5RkZGQzMtOEUxOS00RENGLUI1ODUtN0Q5RDQ2QjRDMTZFKSAoU2h1dGRvd24pXG4gIC8vICAgICAuLi5cbiAgLy8gc28sIGdldCB0aGUgYC0tIGlPUyBYLlggLS1gIGxpbmUgdG8gZmluZCB0aGUgc2RrIChYLlgpXG4gIC8vIGFuZCB0aGUgcmVzdCBvZiB0aGUgbGlzdGluZyBpbiBvcmRlciB0byBsYXRlciBmaW5kIHRoZSBkZXZpY2VzXG4gIGNvbnN0IGRldmljZVNlY3Rpb25SZSA9IF8uaXNFbXB0eShwbGF0Zm9ybSlcbiAgICA/IG5ldyBSZWdFeHAoYFxcXFwtXFxcXC1cXFxccysoXFxcXFMrKVxcXFxzKyhcXFxcUyspXFxcXHMrXFxcXC1cXFxcLShcXFxcblxcXFxzezR9LispKmAsICdtZ2knKVxuICAgIDogbmV3IFJlZ0V4cChgXFxcXC1cXFxcLVxcXFxzKyR7Xy5lc2NhcGVSZWdFeHAocGxhdGZvcm0pfVxcXFxzKyhcXFxcUyspXFxcXHMrXFxcXC1cXFxcLShcXFxcblxcXFxzezR9LispKmAsICdtZ2knKTtcbiAgY29uc3QgbWF0Y2hlcyA9IFtdO1xuICBsZXQgbWF0Y2g7XG4gIC8vIG1ha2UgYW4gZW50cnkgZm9yIGVhY2ggc2RrIHZlcnNpb25cbiAgd2hpbGUgKChtYXRjaCA9IGRldmljZVNlY3Rpb25SZS5leGVjKHN0ZG91dCkpKSB7XG4gICAgbWF0Y2hlcy5wdXNoKG1hdGNoKTtcbiAgfVxuICBpZiAoXy5pc0VtcHR5KG1hdGNoZXMpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdDb3VsZCBub3QgZmluZCBkZXZpY2Ugc2VjdGlvbicpO1xuICB9XG5cbiAgY29uc3QgbGluZVJlID0gLyhbXlxcc10uKykgXFwoKFxcdystLitcXHcrKVxcKSBcXCgoXFx3K1xccz9cXHcrKVxcKS87IC8vIGh0dHBzOi8vcmVnZXgxMDEuY29tL3IvbEc3bUs2LzNcbiAgLy8gZ2V0IGFsbCB0aGUgZGV2aWNlcyBmb3IgZWFjaCBzZGtcbiAgY29uc3QgZGV2aWNlcyA9IHt9O1xuICBmb3IgKG1hdGNoIG9mIG1hdGNoZXMpIHtcbiAgICBjb25zdCBzZGsgPSBwbGF0Zm9ybSA/IG1hdGNoWzFdIDogbWF0Y2hbMl07XG4gICAgZGV2aWNlc1tzZGtdID0gZGV2aWNlc1tzZGtdIHx8IFtdO1xuICAgIC8vIHNwbGl0IHRoZSBmdWxsIG1hdGNoIGludG8gbGluZXMgYW5kIHJlbW92ZSB0aGUgZmlyc3RcbiAgICBmb3IgKGNvbnN0IGxpbmUgb2YgbWF0Y2hbMF0uc3BsaXQoJ1xcbicpLnNsaWNlKDEpKSB7XG4gICAgICBpZiAobGluZS5pbmNsdWRlcygnKHVuYXZhaWxhYmxlLCAnKSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIC8vIGEgbGluZSBpcyBzb21ldGhpbmcgbGlrZVxuICAgICAgLy8gICAgaVBob25lIDRzIChBOTlGRkZDMy04RTE5LTREQ0YtQjU4NS03RDlENDZCNEMxNkUpIChTaHV0ZG93bilcbiAgICAgIC8vIHJldHJpZXZlOlxuICAgICAgLy8gICBpUGhvbmUgNHNcbiAgICAgIC8vICAgQTk5RkZGQzMtOEUxOS00RENGLUI1ODUtN0Q5RDQ2QjRDMTZFXG4gICAgICAvLyAgIFNodXRkb3duXG4gICAgICBjb25zdCBsaW5lTWF0Y2ggPSBsaW5lUmUuZXhlYyhsaW5lKTtcbiAgICAgIGlmICghbGluZU1hdGNoKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IG1hdGNoIGxpbmU6ICR7bGluZX1gKTtcbiAgICAgIH1cbiAgICAgIC8vIHNhdmUgdGhlIHdob2xlIHRoaW5nIGFzIGFiIG9iamVjdCBpbiB0aGUgbGlzdCBmb3IgdGhpcyBzZGtcbiAgICAgIGRldmljZXNbc2RrXS5wdXNoKHtcbiAgICAgICAgbmFtZTogbGluZU1hdGNoWzFdLFxuICAgICAgICB1ZGlkOiBsaW5lTWF0Y2hbMl0sXG4gICAgICAgIHN0YXRlOiBsaW5lTWF0Y2hbM10sXG4gICAgICAgIHNkayxcbiAgICAgICAgcGxhdGZvcm06IHBsYXRmb3JtIHx8IG1hdGNoWzFdLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG4gIHJldHVybiBkZXZpY2VzO1xufTtcblxuLyoqXG4gKiBQYXJzZSB0aGUgbGlzdCBvZiBleGlzdGluZyBTaW11bGF0b3IgZGV2aWNlcyB0byByZXByZXNlbnRcbiAqIGl0IGFzIGNvbnZlbmllbnQgbWFwcGluZyBmb3IgdGhlIHBhcnRpY3VsYXIgcGxhdGZvcm0gdmVyc2lvbi5cbiAqXG4gKiBAcGFyYW0gez9zdHJpbmd9IGZvclNkayAtIFRoZSBzZGsgdmVyc2lvbixcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIHdoaWNoIHRoZSBkZXZpY2VzIGxpc3Qgc2hvdWxkIGJlIHBhcnNlZCxcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIGV4YW1wbGUgJzEwLjMnLlxuICogQHBhcmFtIHs/c3RyaW5nfSBwbGF0Zm9ybSAtIFRoZSBwbGF0Zm9ybSBuYW1lLCBmb3IgZXhhbXBsZSAnd2F0Y2hPUycuXG4gKiBAcmV0dXJuIHtPYmplY3R8QXJyYXk8RGV2aWNlSW5mbz59IElmIF9mb3JTZGtfIGlzIHNldCB0aGVuIHRoZSBsaXN0XG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9mIGRldmljZXMgZm9yIHRoZSBwYXJ0aWN1bGFyIHBsYXRmb3JtIHZlcnNpb24uXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIE90aGVyd2lzZSB0aGUgc2FtZSByZXN1bHQgYXMgZm9yIHtAbGluayBnZXREZXZpY2VzQnlQYXJzaW5nfVxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbi5cbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgY29ycmVzcG9uZGluZyBzaW1jdGwgc3ViY29tbWFuZCBjb21tYW5kXG4gKiAgICAgICAgICAgICAgICAgcmV0dXJucyBub24temVybyByZXR1cm4gY29kZSBvciBpZiBubyBtYXRjaGluZ1xuICogICAgICAgICAgICAgICAgIHBsYXRmb3JtIHZlcnNpb24gaXMgZm91bmQgaW4gdGhlIHN5c3RlbS5cbiAqL1xuY29tbWFuZHMuZ2V0RGV2aWNlcyA9IGFzeW5jIGZ1bmN0aW9uIGdldERldmljZXMgKGZvclNkaywgcGxhdGZvcm0pIHtcbiAgbGV0IGRldmljZXMgPSB7fTtcbiAgdHJ5IHtcbiAgICBjb25zdCB7c3Rkb3V0fSA9IGF3YWl0IHRoaXMuZXhlYygnbGlzdCcsIHtcbiAgICAgIGFyZ3M6IFsnZGV2aWNlcycsICctaiddLFxuICAgIH0pO1xuICAgIC8qIEpTT04gc2hvdWxkIGJlXG4gICAgICoge1xuICAgICAqICAgXCJkZXZpY2VzXCIgOiB7XG4gICAgICogICAgIFwiaU9TIDxzZGs+XCIgOiBbIC8vIG9yXG4gICAgICogICAgIFwiY29tLmFwcGxlLkNvcmVTaW11bGF0b3IuU2ltUnVudGltZS5pT1MtPHNkaz4gOiBbXG4gICAgICogICAgICAge1xuICAgICAqICAgICAgICAgXCJzdGF0ZVwiIDogXCJCb290ZWRcIixcbiAgICAgKiAgICAgICAgIFwiYXZhaWxhYmlsaXR5XCIgOiBcIihhdmFpbGFibGUpXCIsXG4gICAgICogICAgICAgICBcImlzQXZhaWxhYmxlXCIgOiB0cnVlLFxuICAgICAqICAgICAgICAgXCJuYW1lXCIgOiBcImlQaG9uZSA2XCIsXG4gICAgICogICAgICAgICBcInVkaWRcIiA6IFwiNzVFMzQxNDAtMThFOC00RDFBLTlGNDUtQUFDNzM1REY3NURGXCJcbiAgICAgKiAgICAgICB9XG4gICAgICogICAgIF1cbiAgICAgKiAgIH1cbiAgICAgKiB9XG4gICAgICovXG4gICAgY29uc3QgdmVyc2lvbk1hdGNoUmUgPSBfLmlzRW1wdHkocGxhdGZvcm0pXG4gICAgICA/IG5ldyBSZWdFeHAoYF4oW15cXFxccy1dKylbXFxcXHMtXShcXFxcUyspYCwgJ2knKVxuICAgICAgOiBuZXcgUmVnRXhwKGBeJHtfLmVzY2FwZVJlZ0V4cChwbGF0Zm9ybSl9W1xcXFxzLV0oXFxcXFMrKWAsICdpJyk7XG4gICAgZm9yIChsZXQgW3Nka05hbWUsIGVudHJpZXNdIG9mIF8udG9QYWlycyhKU09OLnBhcnNlKHN0ZG91dCkuZGV2aWNlcykpIHtcbiAgICAgIC8vIHRoZXJlIGNvdWxkIGJlIGEgbG9uZ2VyIG5hbWUsIHNvIHJlbW92ZSBpdFxuICAgICAgc2RrTmFtZSA9IHNka05hbWUucmVwbGFjZShTSU1fUlVOVElNRV9OQU1FLCAnJyk7XG4gICAgICBjb25zdCB2ZXJzaW9uTWF0Y2ggPSB2ZXJzaW9uTWF0Y2hSZS5leGVjKHNka05hbWUpO1xuICAgICAgaWYgKCF2ZXJzaW9uTWF0Y2gpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIC8vIHRoZSBzZGsgY2FuIGhhdmUgZGFzaGVzIChgMTItMmApIG9yIGRvdHMgKGAxMi4xYClcbiAgICAgIGNvbnN0IHNkayA9IChwbGF0Zm9ybSA/IHZlcnNpb25NYXRjaFsxXSA6IHZlcnNpb25NYXRjaFsyXSkucmVwbGFjZSgnLScsICcuJyk7XG4gICAgICBkZXZpY2VzW3Nka10gPSBkZXZpY2VzW3Nka10gfHwgW107XG4gICAgICBkZXZpY2VzW3Nka10ucHVzaCguLi5lbnRyaWVzLmZpbHRlcigoZWwpID0+IF8uaXNVbmRlZmluZWQoZWwuaXNBdmFpbGFibGUpIHx8IGVsLmlzQXZhaWxhYmxlKVxuICAgICAgICAubWFwKChlbCkgPT4ge1xuICAgICAgICAgIGRlbGV0ZSBlbC5hdmFpbGFiaWxpdHk7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHNkayxcbiAgICAgICAgICAgIC4uLmVsLFxuICAgICAgICAgICAgcGxhdGZvcm06IHBsYXRmb3JtIHx8IHZlcnNpb25NYXRjaFsxXSxcbiAgICAgICAgICB9O1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZy5kZWJ1ZyhMT0dfUFJFRklYLCBgVW5hYmxlIHRvIGdldCBKU09OIGRldmljZSBsaXN0OiAke2Vyci5zdGFja31gKTtcbiAgICBsb2cuZGVidWcoTE9HX1BSRUZJWCwgJ0ZhbGxpbmcgYmFjayB0byBtYW51YWwgcGFyc2luZycpO1xuICAgIGRldmljZXMgPSBhd2FpdCB0aGlzLmdldERldmljZXNCeVBhcnNpbmcocGxhdGZvcm0pO1xuICB9XG5cbiAgaWYgKCFmb3JTZGspIHtcbiAgICByZXR1cm4gZGV2aWNlcztcbiAgfVxuICAvLyBpZiBhIGBmb3JTZGtgIHdhcyBwYXNzZWQgaW4sIHJldHVybiBvbmx5IHRoZSBjb3JyZXNwb25kaW5nIGxpc3RcbiAgaWYgKGRldmljZXNbZm9yU2RrXSkge1xuICAgIHJldHVybiBkZXZpY2VzW2ZvclNka107XG4gIH1cblxuICBsZXQgZXJyTXNnID0gYCcke2ZvclNka30nIGRvZXMgbm90IGV4aXN0IGluIHRoZSBsaXN0IG9mIHNpbWN0bCBTREtzLmA7XG4gIGNvbnN0IGF2YWlsYWJsZVNES3MgPSBfLmtleXMoZGV2aWNlcyk7XG4gIGVyck1zZyArPSBhdmFpbGFibGVTREtzLmxlbmd0aFxuICAgID8gYCBPbmx5IHRoZSBmb2xsb3dpbmcgU2ltdWxhdG9yIFNESyB2ZXJzaW9ucyBhcmUgYXZhaWxhYmxlIG9uIHlvdXIgc3lzdGVtOiAke2F2YWlsYWJsZVNES3Muam9pbignLCAnKX1gXG4gICAgOiBgIE5vIFNpbXVsYXRvciBTREsgdmVyc2lvbnMgYXJlIGF2YWlsYWJsZSBvbiB5b3VyIHN5c3RlbS4gUGxlYXNlIGluc3RhbGwgc29tZSB2aWEgWGNvZGUgcHJlZmVyZW5jZXMuYDtcbiAgdGhyb3cgbmV3IEVycm9yKGVyck1zZyk7XG59O1xuXG4vKipcbiAqIEdldCB0aGUgcnVudGltZSBmb3IgdGhlIHBhcnRpY3VsYXIgcGxhdGZvcm0gdmVyc2lvbiB1c2luZyAtLWpzb24gZmxhZ1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwbGF0Zm9ybVZlcnNpb24gLSBUaGUgcGxhdGZvcm0gdmVyc2lvbiBuYW1lLFxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvciBleGFtcGxlICcxMC4zJy5cbiAqIEBwYXJhbSB7P3N0cmluZ30gcGxhdGZvcm0gLSBUaGUgcGxhdGZvcm0gbmFtZSwgZm9yIGV4YW1wbGUgJ3dhdGNoT1MnLlxuICogQHJldHVybiB7c3RyaW5nfSBUaGUgY29ycmVzcG9uZGluZyBydW50aW1lIG5hbWUgZm9yIHRoZSBnaXZlblxuICogICAgICAgICAgICAgICAgICBwbGF0Zm9ybSB2ZXJzaW9uLlxuICovXG5jb21tYW5kcy5nZXRSdW50aW1lRm9yUGxhdGZvcm1WZXJzaW9uVmlhSnNvbiA9IGFzeW5jIGZ1bmN0aW9uIGdldFJ1bnRpbWVGb3JQbGF0Zm9ybVZlcnNpb25WaWFKc29uIChcbiAgcGxhdGZvcm1WZXJzaW9uLCBwbGF0Zm9ybSA9ICdpT1MnKSB7XG4gIGNvbnN0IHtzdGRvdXR9ID0gYXdhaXQgdGhpcy5leGVjKCdsaXN0Jywge1xuICAgIGFyZ3M6IFsncnVudGltZXMnLCAnLS1qc29uJ10sXG4gIH0pO1xuICBmb3IgKGNvbnN0IHt2ZXJzaW9uLCBpZGVudGlmaWVyLCBuYW1lfSBvZiBKU09OLnBhcnNlKHN0ZG91dCkucnVudGltZXMpIHtcbiAgICBpZiAobm9ybWFsaXplVmVyc2lvbih2ZXJzaW9uKSA9PT0gbm9ybWFsaXplVmVyc2lvbihwbGF0Zm9ybVZlcnNpb24pXG4gICAgICAmJiBuYW1lLnRvTG93ZXJDYXNlKCkuc3RhcnRzV2l0aChwbGF0Zm9ybS50b0xvd2VyQ2FzZSgpKSkge1xuICAgICAgcmV0dXJuIGlkZW50aWZpZXI7XG4gICAgfVxuICB9XG4gIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IHVzZSAtLWpzb24gZmxhZyB0byBwYXJzZSBwbGF0Zm9ybSB2ZXJzaW9uYCk7XG59O1xuXG4vKipcbiAqIEdldCB0aGUgcnVudGltZSBmb3IgdGhlIHBhcnRpY3VsYXIgcGxhdGZvcm0gdmVyc2lvbi5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcGxhdGZvcm1WZXJzaW9uIC0gVGhlIHBsYXRmb3JtIHZlcnNpb24gbmFtZSxcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3IgZXhhbXBsZSAnMTAuMycuXG4gKiBAcGFyYW0gez9zdHJpbmd9IHBsYXRmb3JtIC0gVGhlIHBsYXRmb3JtIG5hbWUsIGZvciBleGFtcGxlICd3YXRjaE9TJy5cbiAqIEByZXR1cm4ge3N0cmluZ30gVGhlIGNvcnJlc3BvbmRpbmcgcnVudGltZSBuYW1lIGZvciB0aGUgZ2l2ZW5cbiAqICAgICAgICAgICAgICAgICAgcGxhdGZvcm0gdmVyc2lvbi5cbiAqL1xuY29tbWFuZHMuZ2V0UnVudGltZUZvclBsYXRmb3JtVmVyc2lvbiA9IGFzeW5jIGZ1bmN0aW9uIGdldFJ1bnRpbWVGb3JQbGF0Zm9ybVZlcnNpb24gKFxuICBwbGF0Zm9ybVZlcnNpb24sIHBsYXRmb3JtID0gJ2lPUycpIHtcbiAgLy8gVHJ5IHdpdGggcGFyc2luZ1xuICB0cnkge1xuICAgIGNvbnN0IHtzdGRvdXR9ID0gYXdhaXQgdGhpcy5leGVjKCdsaXN0Jywge1xuICAgICAgYXJnczogWydydW50aW1lcyddLFxuICAgIH0pO1xuICAgIC8vIGh0dHBzOi8vcmVnZXgxMDEuY29tL3IvVXlralFaLzFcbiAgICBjb25zdCBydW50aW1lUmUgPVxuICAgICAgbmV3IFJlZ0V4cChgJHtfLmVzY2FwZVJlZ0V4cChwbGF0Zm9ybSl9XFxcXHMrKFxcXFxkK1xcXFwuXFxcXGQrKVxcXFxzK1xcXFwoKFxcXFxkK1xcXFwuXFxcXGQrXFxcXC4qXFxcXGQqKWAsICdpJyk7XG4gICAgZm9yIChjb25zdCBsaW5lIG9mIHN0ZG91dC5zcGxpdCgnXFxuJykpIHtcbiAgICAgIGNvbnN0IG1hdGNoID0gcnVudGltZVJlLmV4ZWMobGluZSk7XG4gICAgICBpZiAobWF0Y2ggJiYgbWF0Y2hbMV0gPT09IHBsYXRmb3JtVmVyc2lvbikge1xuICAgICAgICByZXR1cm4gbWF0Y2hbMl07XG4gICAgICB9XG4gICAgfVxuICB9IGNhdGNoIChpZ24pIHt9XG5cbiAgLy8gaWYgbm90aGluZyB3YXMgZm91bmQsIHBhc3MgcGxhdGZvcm0gdmVyc2lvbiBiYWNrXG4gIHJldHVybiBwbGF0Zm9ybVZlcnNpb247XG59O1xuXG4vKipcbiAqIEdldCB0aGUgbGlzdCBvZiBkZXZpY2UgdHlwZXMgYXZhaWxhYmxlIGluIHRoZSBjdXJyZW50IFhjb2RlIGluc3RhbGxhdGlvblxuICpcbiAqIEByZXR1cm4ge0FycmF5PHN0cmluZz59IExpc3Qgb2YgdGhlIHR5cGVzIG9mIGRldmljZXMgYXZhaWxhYmxlXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIGNvcnJlc3BvbmRpbmcgc2ltY3RsIGNvbW1hbmQgZmFpbHNcbiAqL1xuY29tbWFuZHMuZ2V0RGV2aWNlVHlwZXMgPSBhc3luYyBmdW5jdGlvbiBnZXREZXZpY2VUeXBlcyAoKSB7XG4gIGNvbnN0IHtzdGRvdXR9ID0gYXdhaXQgdGhpcy5leGVjKCdsaXN0Jywge1xuICAgIGFyZ3M6IFsnZGV2aWNldHlwZXMnLCAnLWonXSxcbiAgfSk7XG4gIC8qXG4gICAqIEpTT04gd2lsbCBiZSBsaWtlOlxuICAgKiAgIHtcbiAgICogICAgIFwiZGV2aWNldHlwZXNcIiA6IFtcbiAgICogICAgICAge1xuICAgKiAgICAgICAgIFwibmFtZVwiIDogXCJpUGhvbmUgNHNcIixcbiAgICogICAgICAgICBcImlkZW50aWZpZXJcIiA6IFwiY29tLmFwcGxlLkNvcmVTaW11bGF0b3IuU2ltRGV2aWNlVHlwZS5pUGhvbmUtNHNcIlxuICAgKiAgICAgICB9LFxuICAgKiAgICAgICAuLi5cbiAgICogICB9XG4gICAqL1xuICB0cnkge1xuICAgIGNvbnN0IGRldmljZVR5cGVzID0gSlNPTi5wYXJzZShzdGRvdXQudHJpbSgpKTtcbiAgICByZXR1cm4gZGV2aWNlVHlwZXMuZGV2aWNldHlwZXMubWFwKCh0eXBlKSA9PiB0eXBlLm5hbWUpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBnZXQgbGlzdCBvZiBkZXZpY2UgdHlwZXM6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gIH1cbn07XG5cbi8qKlxuICogR2V0IHRoZSBmdWxsIGxpc3Qgb2YgcnVudGltZXMsIGRldmljZXR5cGVzLCBkZXZpY2VzIGFuZCBwYWlycyBhcyBPYmplY3RcbiAqXG4gKiBAcmV0dXJuIHtPYmplY3R9IE9iamVjdCBjb250YWluaW5nIGRldmljZSB0eXBlcywgcnVudGltZXMgZGV2aWNlcyBhbmQgcGFpcnMuXG4gKiBUaGUgcmVzdWx0aW5nIEpTT04gd2lsbCBiZSBsaWtlOlxuICogICB7XG4gKiAgICAgXCJkZXZpY2V0eXBlc1wiIDogW1xuICogICAgICAge1xuICogICAgICAgICBcIm5hbWVcIiA6IFwiaVBob25lIDRzXCIsXG4gKiAgICAgICAgIFwiaWRlbnRpZmllclwiIDogXCJjb20uYXBwbGUuQ29yZVNpbXVsYXRvci5TaW1EZXZpY2VUeXBlLmlQaG9uZS00c1wiXG4gKiAgICAgICB9LFxuICogICAgICAgLi4uXG4gKiAgICAgIF0sXG4gKiAgICAgXCJydW50aW1lc1wiIDogW1xuICogICAgICAge1xuICogICAgICAgICBcInZlcnNpb25cIiA6ICcxMy4wJyxcbiAqICAgICAgICAgXCJidW5kbGVQYXRoXCIgOiAnL0FwcGxpY2F0aW9ucy9YY29kZTExYmV0YTQuYXBwL0NvbnRlbnRzL0RldmVsb3Blci9QbGF0Zm9ybXMvaVBob25lT1MucGxhdGZvcm0vTGlicmFyeS9EZXZlbG9wZXIvQ29yZVNpbXVsYXRvci9Qcm9maWxlcy9SdW50aW1lcy9pT1Muc2ltcnVudGltZScsXG4gKiAgICAgICAgIFwiaXNBdmFpbGFibGVcIiA6IHRydWUsXG4gKiAgICAgICAgIFwibmFtZVwiIDogJ2lPUyAxMy4wJyxcbiAqICAgICAgICAgXCJpZGVudGlmaWVyXCIgOiAnY29tLmFwcGxlLkNvcmVTaW11bGF0b3IuU2ltUnVudGltZS5pT1MtMTMtMCcsXG4gKiAgICAgICAgIFwiYnVpbGR2ZXJzaW9uXCIgOiAnMTdBNTUzNGQnXG4gKiAgICAgICB9LFxuICogICAgICAgLi4uXG4gKiAgICAgIH0sXG4gKiAgICAgXCJkZXZpY2VzXCIgOlxuICogICAgICAge1xuICogICAgICAgICAnY29tLmFwcGxlLkNvcmVTaW11bGF0b3IuU2ltUnVudGltZS5pT1MtMTMtMCc6IFsgW09iamVjdF0sIFtPYmplY3RdIF0gfSxcbiAqICAgICAgICAgLi4uXG4gKiAgICAgICB9LFxuICogICAgIFwicGFpcnNcIiA6IHt9IH1cbiAqXG4gKiAgIH1cbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgY29ycmVzcG9uZGluZyBzaW1jdGwgY29tbWFuZCBmYWlsc1xuICovXG5jb21tYW5kcy5saXN0ID0gYXN5bmMgZnVuY3Rpb24gbGlzdCAoKSB7XG4gIGNvbnN0IHtzdGRvdXR9ID0gYXdhaXQgdGhpcy5leGVjKCdsaXN0Jywge1xuICAgIGFyZ3M6IFsnLWonXSxcbiAgfSk7XG4gIHRyeSB7XG4gICAgcmV0dXJuIEpTT04ucGFyc2Uoc3Rkb3V0LnRyaW0oKSk7XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFVuYWJsZSB0byBwYXJzZSBzaW1jdGwgbGlzdDogJHtlLm1lc3NhZ2V9YCk7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IGNvbW1hbmRzO1xuIl0sImZpbGUiOiJsaWIvc3ViY29tbWFuZHMvbGlzdC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLiJ9
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
|
|
4
|
+
|
|
3
5
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
6
|
|
|
5
7
|
Object.defineProperty(exports, "__esModule", {
|
|
@@ -11,7 +13,7 @@ require("source-map-support/register");
|
|
|
11
13
|
|
|
12
14
|
var _lodash = _interopRequireDefault(require("lodash"));
|
|
13
15
|
|
|
14
|
-
var _logger =
|
|
16
|
+
var _logger = _interopRequireWildcard(require("../logger"));
|
|
15
17
|
|
|
16
18
|
const commands = {};
|
|
17
19
|
|
|
@@ -25,7 +27,7 @@ commands.shutdownDevice = async function shutdownDevice() {
|
|
|
25
27
|
throw e;
|
|
26
28
|
}
|
|
27
29
|
|
|
28
|
-
_logger.default.debug(`Simulator already in 'Shutdown' state. Continuing`);
|
|
30
|
+
_logger.default.debug(_logger.LOG_PREFIX, `Simulator already in 'Shutdown' state. Continuing`);
|
|
29
31
|
}
|
|
30
32
|
};
|
|
31
33
|
|
|
@@ -33,4 +35,4 @@ var _default = commands;
|
|
|
33
35
|
exports.default = _default;require('source-map-support').install();
|
|
34
36
|
|
|
35
37
|
|
|
36
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
38
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9zdWJjb21tYW5kcy9zaHV0ZG93bi5qcyJdLCJuYW1lcyI6WyJjb21tYW5kcyIsInNodXRkb3duRGV2aWNlIiwiZXhlYyIsImFyZ3MiLCJyZXF1aXJlVWRpZCIsImUiLCJfIiwiaW5jbHVkZXMiLCJtZXNzYWdlIiwibG9nIiwiZGVidWciLCJMT0dfUFJFRklYIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBRUEsTUFBTUEsUUFBUSxHQUFHLEVBQWpCOztBQVNBQSxRQUFRLENBQUNDLGNBQVQsR0FBMEIsZUFBZUEsY0FBZixHQUFpQztBQUN6RCxNQUFJO0FBQ0YsVUFBTSxLQUFLQyxJQUFMLENBQVUsVUFBVixFQUFzQjtBQUMxQkMsTUFBQUEsSUFBSSxFQUFFLENBQUMsS0FBS0MsV0FBTCxDQUFpQixVQUFqQixDQUFEO0FBRG9CLEtBQXRCLENBQU47QUFHRCxHQUpELENBSUUsT0FBT0MsQ0FBUCxFQUFVO0FBQ1YsUUFBSSxDQUFDQyxnQkFBRUMsUUFBRixDQUFXRixDQUFDLENBQUNHLE9BQWIsRUFBc0IseUJBQXRCLENBQUwsRUFBdUQ7QUFDckQsWUFBTUgsQ0FBTjtBQUNEOztBQUNESSxvQkFBSUMsS0FBSixDQUFVQyxrQkFBVixFQUF1QixtREFBdkI7QUFDRDtBQUNGLENBWEQ7O2VBYWVYLFEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IGxvZywgeyBMT0dfUFJFRklYIH0gZnJvbSAnLi4vbG9nZ2VyJztcblxuY29uc3QgY29tbWFuZHMgPSB7fTtcblxuLyoqXG4gKiBTaHV0ZG93biB0aGUgZ2l2ZW4gU2ltdWxhdG9yIGlmIGl0IGlzIHJ1bm5pbmcuXG4gKlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBjb3JyZXNwb25kaW5nIHNpbWN0bCBzdWJjb21tYW5kIGNvbW1hbmRcbiAqICAgICAgICAgICAgICAgICByZXR1cm5zIG5vbi16ZXJvIHJldHVybiBjb2RlLlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBgdWRpZGAgaW5zdGFuY2UgcHJvcGVydHkgaXMgdW5zZXRcbiAqL1xuY29tbWFuZHMuc2h1dGRvd25EZXZpY2UgPSBhc3luYyBmdW5jdGlvbiBzaHV0ZG93bkRldmljZSAoKSB7XG4gIHRyeSB7XG4gICAgYXdhaXQgdGhpcy5leGVjKCdzaHV0ZG93bicsIHtcbiAgICAgIGFyZ3M6IFt0aGlzLnJlcXVpcmVVZGlkKCdzaHV0ZG93bicpXSxcbiAgICB9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGlmICghXy5pbmNsdWRlcyhlLm1lc3NhZ2UsICdjdXJyZW50IHN0YXRlOiBTaHV0ZG93bicpKSB7XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgICBsb2cuZGVidWcoTE9HX1BSRUZJWCwgYFNpbXVsYXRvciBhbHJlYWR5IGluICdTaHV0ZG93bicgc3RhdGUuIENvbnRpbnVpbmdgKTtcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwiZmlsZSI6ImxpYi9zdWJjb21tYW5kcy9zaHV0ZG93bi5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLiJ9
|
package/lib/logger.js
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
import npmlog from 'npmlog';
|
|
2
2
|
|
|
3
|
+
|
|
4
|
+
const LOG_PREFIX = 'simctl';
|
|
5
|
+
|
|
3
6
|
function getLogger () {
|
|
4
7
|
const logger = global._global_npmlog || npmlog;
|
|
5
|
-
logger.maxRecordSize = 3000;
|
|
6
8
|
if (!logger.debug) {
|
|
7
9
|
logger.addLevel('debug', 1000, { fg: 'blue', bg: 'black' }, 'dbug');
|
|
8
10
|
}
|
|
9
|
-
const originalLog = logger.log.bind(logger);
|
|
10
|
-
logger.log = (level, prefix, ...args) => originalLog(level, 'simctl', prefix, ...args);
|
|
11
11
|
return logger;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
14
|
const log = getLogger();
|
|
15
15
|
|
|
16
|
+
export { LOG_PREFIX };
|
|
16
17
|
export default log;
|
package/lib/simctl.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _ from 'lodash';
|
|
2
2
|
import subcommands from './subcommands/index.js';
|
|
3
3
|
import which from 'which';
|
|
4
|
-
import log from './logger';
|
|
4
|
+
import log, { LOG_PREFIX } from './logger';
|
|
5
5
|
import {
|
|
6
6
|
DEFAULT_EXEC_TIMEOUT, XCRUN_BINARY,
|
|
7
7
|
} from './helpers';
|
|
@@ -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
|
|
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
|
|
47
|
-
* upon instance creation if it is already known in
|
|
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 ` +
|
|
@@ -107,9 +118,14 @@ class Simctl {
|
|
|
107
118
|
env = {},
|
|
108
119
|
asynchronous = false,
|
|
109
120
|
encoding,
|
|
121
|
+
logErrors = true,
|
|
110
122
|
} = opts;
|
|
111
123
|
// run a particular simctl command
|
|
112
|
-
args = ['simctl',
|
|
124
|
+
args = ['simctl',
|
|
125
|
+
...(this.devicesSetPath ? ['--set', this.devicesSetPath] : []),
|
|
126
|
+
subcommand,
|
|
127
|
+
...args
|
|
128
|
+
];
|
|
113
129
|
// Prefix all passed in environment variables with 'SIMCTL_CHILD_', simctl
|
|
114
130
|
// will then pass these to the child (spawned) process.
|
|
115
131
|
env = _.defaults(
|
|
@@ -128,18 +144,17 @@ class Simctl {
|
|
|
128
144
|
try {
|
|
129
145
|
return asynchronous ? new SubProcess(xcrun, args, execOpts) : await tpExec(xcrun, args, execOpts);
|
|
130
146
|
} catch (e) {
|
|
131
|
-
if (!this.logErrors) {
|
|
147
|
+
if (!this.logErrors || !logErrors) {
|
|
132
148
|
// if we don't want to see the errors, just throw and allow the calling
|
|
133
149
|
// code do what it wants
|
|
134
|
-
throw e;
|
|
135
150
|
} else if (e.stderr) {
|
|
136
151
|
const msg = `Error running '${subcommand}': ${e.stderr.trim()}`;
|
|
137
|
-
log.debug(msg);
|
|
138
|
-
|
|
152
|
+
log.debug(LOG_PREFIX, msg);
|
|
153
|
+
e.message = msg;
|
|
139
154
|
} else {
|
|
140
|
-
log.debug(e.message);
|
|
141
|
-
throw e;
|
|
155
|
+
log.debug(LOG_PREFIX, e.message);
|
|
142
156
|
}
|
|
157
|
+
throw e;
|
|
143
158
|
}
|
|
144
159
|
}
|
|
145
160
|
}
|
package/lib/subcommands/boot.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import _ from 'lodash';
|
|
2
|
-
import log from '../logger';
|
|
2
|
+
import log, { LOG_PREFIX } from '../logger';
|
|
3
3
|
|
|
4
4
|
|
|
5
5
|
const commands = {};
|
|
@@ -20,7 +20,7 @@ commands.bootDevice = async function bootDevice () {
|
|
|
20
20
|
if (_.includes(e.message, 'Unable to boot device in current state: Booted')) {
|
|
21
21
|
throw e;
|
|
22
22
|
}
|
|
23
|
-
log.debug(`Simulator already in 'Booted' state. Continuing`);
|
|
23
|
+
log.debug(LOG_PREFIX, `Simulator already in 'Booted' state. Continuing`);
|
|
24
24
|
}
|
|
25
25
|
};
|
|
26
26
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import _ from 'lodash';
|
|
2
|
-
import log from '../logger';
|
|
2
|
+
import log, { LOG_PREFIX } from '../logger';
|
|
3
3
|
import { retryInterval } from 'asyncbox';
|
|
4
4
|
import { SIM_RUNTIME_NAME, normalizeVersion } from '../helpers';
|
|
5
5
|
|
|
@@ -72,7 +72,8 @@ commands.createDevice = async function createDevice (name, deviceTypeId, platfor
|
|
|
72
72
|
// go through the runtime ids and try to create a simulator with each
|
|
73
73
|
let udid;
|
|
74
74
|
for (const runtimeId of runtimeIds) {
|
|
75
|
-
log.debug(
|
|
75
|
+
log.debug(LOG_PREFIX,
|
|
76
|
+
`Creating simulator with name '${name}', device type id '${deviceTypeId}' and runtime id '${runtimeId}'`);
|
|
76
77
|
try {
|
|
77
78
|
const {stdout} = await this.exec('create', {
|
|
78
79
|
args: [name, deviceTypeId, runtimeId]
|
package/lib/subcommands/list.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import _ from 'lodash';
|
|
2
2
|
import { SIM_RUNTIME_NAME, normalizeVersion } from '../helpers';
|
|
3
|
-
import log from '../logger';
|
|
3
|
+
import log, { LOG_PREFIX } from '../logger';
|
|
4
4
|
|
|
5
5
|
|
|
6
6
|
const commands = {};
|
|
@@ -150,8 +150,8 @@ commands.getDevices = async function getDevices (forSdk, platform) {
|
|
|
150
150
|
);
|
|
151
151
|
}
|
|
152
152
|
} catch (err) {
|
|
153
|
-
log.debug(`Unable to get JSON device list: ${err.stack}`);
|
|
154
|
-
log.debug('Falling back to manual parsing');
|
|
153
|
+
log.debug(LOG_PREFIX, `Unable to get JSON device list: ${err.stack}`);
|
|
154
|
+
log.debug(LOG_PREFIX, 'Falling back to manual parsing');
|
|
155
155
|
devices = await this.getDevicesByParsing(platform);
|
|
156
156
|
}
|
|
157
157
|
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import _ from 'lodash';
|
|
2
|
-
import log from '../logger';
|
|
3
|
-
|
|
2
|
+
import log, { LOG_PREFIX } from '../logger';
|
|
4
3
|
|
|
5
4
|
const commands = {};
|
|
6
5
|
|
|
@@ -20,7 +19,7 @@ commands.shutdownDevice = async function shutdownDevice () {
|
|
|
20
19
|
if (!_.includes(e.message, 'current state: Shutdown')) {
|
|
21
20
|
throw e;
|
|
22
21
|
}
|
|
23
|
-
log.debug(`Simulator already in 'Shutdown' state. Continuing`);
|
|
22
|
+
log.debug(LOG_PREFIX, `Simulator already in 'Shutdown' state. Continuing`);
|
|
24
23
|
}
|
|
25
24
|
};
|
|
26
25
|
|
package/package.json
CHANGED
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"ios",
|
|
7
7
|
"simctl"
|
|
8
8
|
],
|
|
9
|
-
"version": "6.
|
|
9
|
+
"version": "6.4.1",
|
|
10
10
|
"author": "https://github.com/appium",
|
|
11
11
|
"license": "Apache-2.0",
|
|
12
12
|
"repository": {
|
|
@@ -59,8 +59,7 @@
|
|
|
59
59
|
"test"
|
|
60
60
|
],
|
|
61
61
|
"devDependencies": {
|
|
62
|
-
"
|
|
63
|
-
"appium-gulp-plugins": "^5.0.0",
|
|
62
|
+
"appium-gulp-plugins": "^5.4.0",
|
|
64
63
|
"appium-xcode": "^3.8.0",
|
|
65
64
|
"chai": "^4.1.2",
|
|
66
65
|
"chai-as-promised": "^7.1.1",
|