appium-xcuitest-driver 4.7.4 → 4.9.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 CHANGED
@@ -488,7 +488,7 @@ Executes the given app on the device under test. If the app is already running t
488
488
  Name | Type | Required | Description | Example
489
489
  --- | --- | --- | --- | ---
490
490
  bundleId | string | yes | The bundle identifier of the application to be launched | com.mycompany.myapp
491
- arguments | string|array | no | One or more command line arguments for the app. If the app is already running then this argument is ignored. | ['-s', '-m']
491
+ arguments | string|array | no | One or more command line arguments for the app. If the app is already running then this argument is ignored. | ['-s', '-m']
492
492
  environment | dict | no | Environment variables mapping for the app. If the app is already running then this argument is ignored. | {'var': 'value'}
493
493
 
494
494
  ### mobile: terminateApp
@@ -1334,6 +1334,80 @@ Reset the location service on real device since Appium 1.22.0.
1334
1334
  It could delay a few seconds to reflect the location by the system.
1335
1335
  It raises an error if the device is simulator or an error occurred during the reset.
1336
1336
 
1337
+ ### mobile: enableConditionInducer
1338
+
1339
+ Important: Device conditions are available for real devices running iOS 13.0 and later.
1340
+
1341
+ This API is going to throw an error if it is called while another condition inducer has been already enabled and is not explicitly disabled.
1342
+
1343
+ ```
1344
+ mobile: enableConditionInducer
1345
+ mobile: disableConditionInducer
1346
+ mobile: listConditionInducers
1347
+ ```
1348
+
1349
+ The above three extensions are available since the driver version 4.9.0.
1350
+
1351
+ You can create a condition on a connected device to test your app under adverse conditions, such as poor network connectivity or thermal constraints.
1352
+
1353
+ When you start a device condition, the operating system on the device behaves as if its environment has changed. The device condition remains active until you stop the device condition or disconnect the device. For example, you can start a device condition, run your app, monitor your app’s energy usage, and then stop the condition.
1354
+
1355
+ Reference: [Test under adverse device conditions (iOS)](https://help.apple.com/xcode/mac/current/#/dev308429d42)
1356
+
1357
+ Name | Type | Required | Description | Example
1358
+ --- | --- | --- | --- | ---
1359
+ conditionID | string | yes | Get the conditionID parameter through the command `mobile: availableConditionInducer` | SlowNetworkCondition
1360
+ profileID | string | yes | Get the profileID parameter through the command `mobile: availableConditionInducer` | SlowNetwork100PctLoss
1361
+
1362
+ #### Returned Result
1363
+
1364
+ Either `true` or `false`, where `true` means enabling of the condition inducer has been successful
1365
+
1366
+ ### mobile: listConditionInducers
1367
+
1368
+ Get all condition inducer configuration profiles
1369
+
1370
+ #### Returned Result
1371
+
1372
+ The response looks like
1373
+
1374
+ ```
1375
+ [{
1376
+ "profiles": [
1377
+ {
1378
+ "name": "100% packet loss",
1379
+ "identifier": "SlowNetwork100PctLoss", // enableConditionInducer profileID
1380
+ "description": "Name: 100% Loss Scenario
1381
+ Downlink Bandwidth: 0 Mbps
1382
+ Downlink Latency: 0 ms
1383
+ Downlink Packet Loss Ratio: 100%
1384
+ Uplink Bandwidth: 0 Mbps
1385
+ Uplink Latency: 0 ms
1386
+ Uplink Packet Loss Ratio: 100%"
1387
+ },
1388
+ ],
1389
+ "profilesSorted": true,
1390
+ "identifier": "SlowNetworkCondition", // enableConditionInducer conditionID
1391
+ "isDestructive": false,
1392
+ "isInternal": false,
1393
+ "activeProfile": "",
1394
+ "name": "Network Link",
1395
+ "isActive": false
1396
+ }]
1397
+ ```
1398
+
1399
+ ### mobile: disableConditionInducer
1400
+
1401
+ Disable device condition inducer.
1402
+
1403
+ Usually a persistent connection is maintained after enable the condition inducer, and this method is only valid for this connection.
1404
+
1405
+ If the connection is disconnected, condition inducer will be automatically disabled
1406
+
1407
+ #### Returned Result
1408
+
1409
+ Either `true` or `false`, where `true` means disabling of the condition inducer has been successful
1410
+
1337
1411
  ## Known issues
1338
1412
 
1339
1413
  * `shake` is implemented via AppleScript and works only on Simulator due to lack of support from Apple
@@ -1385,5 +1459,3 @@ the tests locally. These include:
1385
1459
  the root directory of the repo with the extension "xcconfig")
1386
1460
  * `UICATALOG_REAL_DEVICE` - path to the real device build of UICatalog, in case
1387
1461
  the npm installed one is not built for real device
1388
-
1389
-
@@ -5,8 +5,12 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.SAFARI_BUNDLE_ID = void 0;
8
+ exports.SAFARI_BUNDLE_ID = exports.IPA_EXT = exports.APP_EXT = void 0;
9
9
  exports.extractBundleId = extractBundleId;
10
+ exports.fetchSupportedAppPlatforms = fetchSupportedAppPlatforms;
11
+ exports.findApps = findApps;
12
+ exports.isAppBundle = isAppBundle;
13
+ exports.isolateAppBundle = isolateAppBundle;
10
14
  exports.parseLocalizableStrings = parseLocalizableStrings;
11
15
  exports.verifyApplicationPlatform = verifyApplicationPlatform;
12
16
 
@@ -24,6 +28,10 @@ const STRINGSDICT_RESOURCE = '.stringsdict';
24
28
  const STRINGS_RESOURCE = '.strings';
25
29
  const SAFARI_BUNDLE_ID = 'com.apple.mobilesafari';
26
30
  exports.SAFARI_BUNDLE_ID = SAFARI_BUNDLE_ID;
31
+ const APP_EXT = '.app';
32
+ exports.APP_EXT = APP_EXT;
33
+ const IPA_EXT = '.ipa';
34
+ exports.IPA_EXT = IPA_EXT;
27
35
 
28
36
  async function extractPlistEntry(app, entryName) {
29
37
  const plistPath = _path.default.resolve(app, 'Info.plist');
@@ -43,26 +51,30 @@ async function extractBundleId(app) {
43
51
  return bundleId;
44
52
  }
45
53
 
46
- async function verifyApplicationPlatform(app, expectedPlatform) {
47
- _logger.default.debug('Verifying application platform');
54
+ async function fetchSupportedAppPlatforms(app) {
55
+ try {
56
+ const result = await extractPlistEntry(app, 'CFBundleSupportedPlatforms');
48
57
 
49
- let supportedPlatforms;
58
+ if (!_lodash.default.isArray(result)) {
59
+ _logger.default.warn(`${_path.default.basename(app)}': CFBundleSupportedPlatforms is not a valid list`);
50
60
 
51
- try {
52
- supportedPlatforms = await extractPlistEntry(app, 'CFBundleSupportedPlatforms');
61
+ return [];
62
+ }
63
+
64
+ return result;
53
65
  } catch (err) {
54
- _logger.default.debug(err.message);
66
+ _logger.default.warn(`Cannot extract the list of supported platforms from '${_path.default.basename(app)}': ${err.message}`);
55
67
 
56
- return;
68
+ return [];
57
69
  }
70
+ }
58
71
 
59
- _logger.default.debug(`CFBundleSupportedPlatforms: ${JSON.stringify(supportedPlatforms)}`);
72
+ async function verifyApplicationPlatform(app, expectedPlatform) {
73
+ _logger.default.debug('Verifying application platform');
60
74
 
61
- if (!_lodash.default.isArray(supportedPlatforms)) {
62
- _logger.default.debug(`CFBundleSupportedPlatforms key does not exist in '${_path.default.basename(app)}'`);
75
+ const supportedPlatforms = await fetchSupportedAppPlatforms(app);
63
76
 
64
- return;
65
- }
77
+ _logger.default.debug(`CFBundleSupportedPlatforms: ${JSON.stringify(supportedPlatforms)}`);
66
78
 
67
79
  const {
68
80
  isSimulator,
@@ -185,7 +197,37 @@ async function parseLocalizableStrings(opts) {
185
197
  _logger.default.info(`Got ${_lodash.default.keys(resultStrings).length} string(s) from '${lprojRoot}'`);
186
198
 
187
199
  return resultStrings;
200
+ }
201
+
202
+ async function isAppBundle(appPath) {
203
+ return _lodash.default.endsWith(_lodash.default.toLower(appPath), APP_EXT) && (await _support.fs.stat(appPath)).isDirectory() && (await _support.fs.exists(_path.default.join(appPath, 'Info.plist')));
204
+ }
205
+
206
+ async function findApps(archivePath, appExtensions) {
207
+ const useSystemUnzipEnv = process.env.APPIUM_PREFER_SYSTEM_UNZIP;
208
+ const useSystemUnzip = _lodash.default.isEmpty(useSystemUnzipEnv) || !['0', 'false'].includes(_lodash.default.toLower(useSystemUnzipEnv));
209
+ const tmpRoot = await _support.tempDir.openDir();
210
+ await _support.zip.extractAllTo(archivePath, tmpRoot, {
211
+ useSystemUnzip
212
+ });
213
+ const globPattern = `**/*.+(${appExtensions.map(ext => ext.replace(/^\./, '')).join('|')})`;
214
+ const sortedBundleItems = (await _support.fs.glob(globPattern, {
215
+ cwd: tmpRoot,
216
+ strict: false
217
+ })).sort((a, b) => a.split(_path.default.sep).length - b.split(_path.default.sep).length);
218
+ return [tmpRoot, sortedBundleItems];
219
+ }
220
+
221
+ async function isolateAppBundle(appRoot) {
222
+ const tmpRoot = await _support.tempDir.openDir();
223
+
224
+ const dstRoot = _path.default.join(tmpRoot, _path.default.basename(appRoot));
225
+
226
+ await _support.fs.mv(appRoot, dstRoot, {
227
+ mkdirp: true
228
+ });
229
+ return dstRoot;
188
230
  }require('source-map-support').install();
189
231
 
190
232
 
191
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2FwcC11dGlscy5qcyIsIm5hbWVzIjpbIlNUUklOR1NESUNUX1JFU09VUkNFIiwiU1RSSU5HU19SRVNPVVJDRSIsIlNBRkFSSV9CVU5ETEVfSUQiLCJleHRyYWN0UGxpc3RFbnRyeSIsImFwcCIsImVudHJ5TmFtZSIsInBsaXN0UGF0aCIsInBhdGgiLCJyZXNvbHZlIiwicGxpc3QiLCJwYXJzZVBsaXN0RmlsZSIsImVyciIsIkVycm9yIiwiYmFzZW5hbWUiLCJtZXNzYWdlIiwiZXh0cmFjdEJ1bmRsZUlkIiwiYnVuZGxlSWQiLCJsb2ciLCJkZWJ1ZyIsInZlcmlmeUFwcGxpY2F0aW9uUGxhdGZvcm0iLCJleHBlY3RlZFBsYXRmb3JtIiwic3VwcG9ydGVkUGxhdGZvcm1zIiwiSlNPTiIsInN0cmluZ2lmeSIsIl8iLCJpc0FycmF5IiwiaXNTaW11bGF0b3IiLCJpc1R2T1MiLCJwcmVmaXgiLCJzdWZmaXgiLCJkc3RQbGF0Zm9ybSIsImluY2x1ZGVzIiwicmVhZFJlc291cmNlIiwicmVzb3VyY2VQYXRoIiwiZGF0YSIsInJlc3VsdCIsImtleSIsInZhbHVlIiwidG9QYWlycyIsImlzU3RyaW5nIiwicGFyc2VMb2NhbGl6YWJsZVN0cmluZ3MiLCJvcHRzIiwibGFuZ3VhZ2UiLCJsb2NhbGl6YWJsZVN0cmluZ3NEaXIiLCJzdHJpbmdGaWxlIiwic3RyaWN0TW9kZSIsImluZm8iLCJscHJvalJvb3QiLCJzdWJmb2xkZXIiLCJmcyIsImV4aXN0cyIsInJlc291cmNlUGF0aHMiLCJkc3RQYXRoIiwicHVzaCIsImlzRW1wdHkiLCJyZXNvdXJjZUZpbGVzIiwicmVhZGRpciIsImZpbHRlciIsIm5hbWUiLCJzb21lIiwieCIsImVuZHNXaXRoIiwibWFwIiwibGVuZ3RoIiwicmVzdWx0U3RyaW5ncyIsInRvQWJzb2x1dGVQYXRoIiwicCIsImlzQWJzb2x1dGUiLCJwcm9jZXNzIiwiY3dkIiwidXRpbCIsImlzU3ViUGF0aCIsImtleXMiLCJtZXJnZSIsImUiLCJ3YXJuIl0sInNvdXJjZVJvb3QiOiIuLi8uLiIsInNvdXJjZXMiOlsibGliL2FwcC11dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBwbGlzdCwgZnMsIHV0aWwgfSBmcm9tICdhcHBpdW0vc3VwcG9ydCc7XG5pbXBvcnQgbG9nIGZyb20gJy4vbG9nZ2VyLmpzJztcblxuY29uc3QgU1RSSU5HU0RJQ1RfUkVTT1VSQ0UgPSAnLnN0cmluZ3NkaWN0JztcbmNvbnN0IFNUUklOR1NfUkVTT1VSQ0UgPSAnLnN0cmluZ3MnO1xuY29uc3QgU0FGQVJJX0JVTkRMRV9JRCA9ICdjb20uYXBwbGUubW9iaWxlc2FmYXJpJztcblxuXG5hc3luYyBmdW5jdGlvbiBleHRyYWN0UGxpc3RFbnRyeSAoYXBwLCBlbnRyeU5hbWUpIHtcbiAgY29uc3QgcGxpc3RQYXRoID0gcGF0aC5yZXNvbHZlKGFwcCwgJ0luZm8ucGxpc3QnKTtcbiAgdHJ5IHtcbiAgICByZXR1cm4gKGF3YWl0IHBsaXN0LnBhcnNlUGxpc3RGaWxlKHBsaXN0UGF0aCkpW2VudHJ5TmFtZV07XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IGV4dHJhY3QgSW5mby5wbGlzdCBmcm9tICcke3BhdGguYmFzZW5hbWUoYXBwKX0nOiAke2Vyci5tZXNzYWdlfWApO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGV4dHJhY3RCdW5kbGVJZCAoYXBwKSB7XG4gIGNvbnN0IGJ1bmRsZUlkID0gYXdhaXQgZXh0cmFjdFBsaXN0RW50cnkoYXBwLCAnQ0ZCdW5kbGVJZGVudGlmaWVyJyk7XG4gIGxvZy5kZWJ1ZyhgR2V0dGluZyBidW5kbGUgSUQgZnJvbSBhcHAgJyR7YXBwfSc6ICcke2J1bmRsZUlkfSdgKTtcbiAgcmV0dXJuIGJ1bmRsZUlkO1xufVxuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IFBsYXRmb3JtT3B0c1xuICpcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gaXNTaW11bGF0b3IgLSBXaGV0aGVyIHRoZSBkZXN0aW5hdGlvbiBwbGF0Zm9ybSBpcyBhIFNpbXVsYXRvclxuICogQHByb3BlcnR5IHtib29sZWFufSBpc1R2T1MgLSBXaGV0aGVyIHRoZSBkZXN0aW5hdGlvbiBwbGF0Zm9ybSBpcyBhIFNpbXVsYXRvclxuICovXG5cbi8qKlxuICogVmVyaWZ5IHdoZXRoZXIgdGhlIGdpdmVuIGFwcGxpY2F0aW9uIGlzIGNvbXBhdGlibGUgdG8gdGhlXG4gKiBwbGF0Zm9ybSB3aGVyZSBpdCBpcyBnb2luZyB0byBiZSBpbnN0YWxsZWQgYW5kIHRlc3RlZC5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYXBwIC0gVGhlIGFjdHVhbCBwYXRoIHRvIHRoZSBhcHBsaWNhdGlvbiBidW5kbGVcbiAqIEBwYXJhbSB7UGxhdGZvcm1PcHRzfSBleHBlY3RlZFBsYXRmb3JtXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgYnVuZGxlIGFyY2hpdGVjdHVyZSBkb2VzIG5vdCBtYXRjaCB0aGUgZXhwZWN0ZWQgZGV2aWNlIGFyY2hpdGVjdHVyZS5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gdmVyaWZ5QXBwbGljYXRpb25QbGF0Zm9ybSAoYXBwLCBleHBlY3RlZFBsYXRmb3JtKSB7XG4gIGxvZy5kZWJ1ZygnVmVyaWZ5aW5nIGFwcGxpY2F0aW9uIHBsYXRmb3JtJyk7XG5cbiAgbGV0IHN1cHBvcnRlZFBsYXRmb3JtcztcbiAgdHJ5IHtcbiAgICBzdXBwb3J0ZWRQbGF0Zm9ybXMgPSBhd2FpdCBleHRyYWN0UGxpc3RFbnRyeShhcHAsICdDRkJ1bmRsZVN1cHBvcnRlZFBsYXRmb3JtcycpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBsb2cuZGVidWcoZXJyLm1lc3NhZ2UpO1xuICAgIHJldHVybjtcbiAgfVxuICBsb2cuZGVidWcoYENGQnVuZGxlU3VwcG9ydGVkUGxhdGZvcm1zOiAke0pTT04uc3RyaW5naWZ5KHN1cHBvcnRlZFBsYXRmb3Jtcyl9YCk7XG4gIGlmICghXy5pc0FycmF5KHN1cHBvcnRlZFBsYXRmb3JtcykpIHtcbiAgICBsb2cuZGVidWcoYENGQnVuZGxlU3VwcG9ydGVkUGxhdGZvcm1zIGtleSBkb2VzIG5vdCBleGlzdCBpbiAnJHtwYXRoLmJhc2VuYW1lKGFwcCl9J2ApO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbnN0IHtcbiAgICBpc1NpbXVsYXRvcixcbiAgICBpc1R2T1MsXG4gIH0gPSBleHBlY3RlZFBsYXRmb3JtO1xuICBjb25zdCBwcmVmaXggPSBpc1R2T1MgPyAnQXBwbGVUVicgOiAnaVBob25lJztcbiAgY29uc3Qgc3VmZml4ID0gaXNTaW11bGF0b3IgPyAnU2ltdWxhdG9yJyA6ICdPUyc7XG4gIGNvbnN0IGRzdFBsYXRmb3JtID0gYCR7cHJlZml4fSR7c3VmZml4fWA7XG4gIGlmICghc3VwcG9ydGVkUGxhdGZvcm1zLmluY2x1ZGVzKGRzdFBsYXRmb3JtKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgJHtpc1NpbXVsYXRvciA/ICdTaW11bGF0b3InIDogJ1JlYWwgZGV2aWNlJ30gYXJjaGl0ZWN0dXJlIGlzIHVuc3VwcG9ydGVkIGJ5IHRoZSAnJHthcHB9JyBhcHBsaWNhdGlvbi4gYCArXG4gICAgICBgTWFrZSBzdXJlIHRoZSBjb3JyZWN0IGRlcGxveW1lbnQgdGFyZ2V0IGhhcyBiZWVuIHNlbGVjdGVkIGZvciBpdHMgY29tcGlsYXRpb24gaW4gWGNvZGUuYCk7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gcmVhZFJlc291cmNlIChyZXNvdXJjZVBhdGgpIHtcbiAgY29uc3QgZGF0YSA9IGF3YWl0IHBsaXN0LnBhcnNlUGxpc3RGaWxlKHJlc291cmNlUGF0aCk7XG4gIGNvbnN0IHJlc3VsdCA9IHt9O1xuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBfLnRvUGFpcnMoZGF0YSkpIHtcbiAgICByZXN1bHRba2V5XSA9IF8uaXNTdHJpbmcodmFsdWUpID8gdmFsdWUgOiBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcGFyc2VMb2NhbGl6YWJsZVN0cmluZ3MgKG9wdHMpIHtcbiAgY29uc3Qge1xuICAgIGFwcCxcbiAgICBsYW5ndWFnZSA9ICdlbicsXG4gICAgbG9jYWxpemFibGVTdHJpbmdzRGlyLFxuICAgIHN0cmluZ0ZpbGUsXG4gICAgc3RyaWN0TW9kZSxcbiAgfSA9IG9wdHM7XG5cbiAgaWYgKCFhcHApIHtcbiAgICBjb25zdCBtZXNzYWdlID0gYFN0cmluZ3MgZXh0cmFjdGlvbiBpcyBub3Qgc3VwcG9ydGVkIGlmICdhcHAnIGNhcGFiaWxpdHkgaXMgbm90IHNldGA7XG4gICAgaWYgKHN0cmljdE1vZGUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihtZXNzYWdlKTtcbiAgICB9XG4gICAgbG9nLmluZm8obWVzc2FnZSk7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgbGV0IGxwcm9qUm9vdDtcbiAgZm9yIChjb25zdCBzdWJmb2xkZXIgb2YgW2Ake2xhbmd1YWdlfS5scHJvamAsIGxvY2FsaXphYmxlU3RyaW5nc0RpciwgJyddKSB7XG4gICAgbHByb2pSb290ID0gcGF0aC5yZXNvbHZlKGFwcCwgc3ViZm9sZGVyKTtcbiAgICBpZiAoYXdhaXQgZnMuZXhpc3RzKGxwcm9qUm9vdCkpIHtcbiAgICAgIGJyZWFrO1xuICAgIH1cbiAgICBjb25zdCBtZXNzYWdlID0gYE5vICcke2xwcm9qUm9vdH0nIHJlc291cmNlcyBmb2xkZXIgaGFzIGJlZW4gZm91bmRgO1xuICAgIGlmIChzdHJpY3RNb2RlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIGxvZy5kZWJ1ZyhtZXNzYWdlKTtcbiAgfVxuICBsb2cuaW5mbyhgV2lsbCBleHRyYWN0IHJlc291cmNlIHN0cmluZ3MgZnJvbSAnJHtscHJvalJvb3R9J2ApO1xuXG4gIGNvbnN0IHJlc291cmNlUGF0aHMgPSBbXTtcbiAgaWYgKHN0cmluZ0ZpbGUpIHtcbiAgICBjb25zdCBkc3RQYXRoID0gcGF0aC5yZXNvbHZlKGxwcm9qUm9vdCwgc3RyaW5nRmlsZSk7XG4gICAgaWYgKGF3YWl0IGZzLmV4aXN0cyhkc3RQYXRoKSkge1xuICAgICAgcmVzb3VyY2VQYXRocy5wdXNoKGRzdFBhdGgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBtZXNzYWdlID0gYE5vICcke2RzdFBhdGh9JyByZXNvdXJjZSBmaWxlIGhhcyBiZWVuIGZvdW5kIGZvciAnJHthcHB9J2A7XG4gICAgICBpZiAoc3RyaWN0TW9kZSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgICB9XG4gICAgICBsb2cuaW5mbyhtZXNzYWdlKTtcbiAgICAgIGxvZy5pbmZvKGBHZXR0aW5nIGFsbCB0aGUgYXZhaWxhYmxlIHN0cmluZ3MgZnJvbSAnJHtscHJvalJvb3R9J2ApO1xuICAgIH1cbiAgfVxuXG4gIGlmIChfLmlzRW1wdHkocmVzb3VyY2VQYXRocykgJiYgYXdhaXQgZnMuZXhpc3RzKGxwcm9qUm9vdCkpIHtcbiAgICBjb25zdCByZXNvdXJjZUZpbGVzID0gKGF3YWl0IGZzLnJlYWRkaXIobHByb2pSb290KSlcbiAgICAgIC5maWx0ZXIoKG5hbWUpID0+IF8uc29tZShbU1RSSU5HU19SRVNPVVJDRSwgU1RSSU5HU0RJQ1RfUkVTT1VSQ0VdLCAoeCkgPT4gbmFtZS5lbmRzV2l0aCh4KSkpXG4gICAgICAubWFwKChuYW1lKSA9PiBwYXRoLnJlc29sdmUobHByb2pSb290LCBuYW1lKSk7XG4gICAgcmVzb3VyY2VQYXRocy5wdXNoKC4uLnJlc291cmNlRmlsZXMpO1xuICB9XG4gIGxvZy5pbmZvKGBHb3QgJHtyZXNvdXJjZVBhdGhzLmxlbmd0aH0gcmVzb3VyY2UgZmlsZShzKSBpbiAnJHtscHJvalJvb3R9J2ApO1xuXG4gIGlmIChfLmlzRW1wdHkocmVzb3VyY2VQYXRocykpIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICBjb25zdCByZXN1bHRTdHJpbmdzID0ge307XG4gIGNvbnN0IHRvQWJzb2x1dGVQYXRoID0gZnVuY3Rpb24gKHApIHtcbiAgICByZXR1cm4gcGF0aC5pc0Fic29sdXRlKHApID8gcCA6IHBhdGgucmVzb2x2ZShwcm9jZXNzLmN3ZCgpLCBwKTtcbiAgfTtcbiAgZm9yIChjb25zdCByZXNvdXJjZVBhdGggb2YgcmVzb3VyY2VQYXRocykge1xuICAgIGlmICghdXRpbC5pc1N1YlBhdGgodG9BYnNvbHV0ZVBhdGgocmVzb3VyY2VQYXRoKSwgdG9BYnNvbHV0ZVBhdGgoYXBwKSkpIHtcbiAgICAgIC8vIHNlY3VyaXR5IHByZWNhdXRpb25cbiAgICAgIHRocm93IG5ldyBFcnJvcihgJyR7cmVzb3VyY2VQYXRofScgaXMgZXhwZWN0ZWQgdG8gYmUgbG9jYXRlZCB1bmRlciAnJHthcHB9J2ApO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgY29uc3QgZGF0YSA9IGF3YWl0IHJlYWRSZXNvdXJjZShyZXNvdXJjZVBhdGgpO1xuICAgICAgbG9nLmRlYnVnKGBQYXJzZWQgJHtfLmtleXMoZGF0YSkubGVuZ3RofSBzdHJpbmcocykgZnJvbSAnJHtyZXNvdXJjZVBhdGh9J2ApO1xuICAgICAgXy5tZXJnZShyZXN1bHRTdHJpbmdzLCBkYXRhKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICBsb2cud2FybihgQ2Fubm90IHBhcnNlICcke3Jlc291cmNlUGF0aH0nIHJlc291cmNlLiBPcmlnaW5hbCBlcnJvcjogJHtlLm1lc3NhZ2V9YCk7XG4gICAgfVxuICB9XG5cbiAgbG9nLmluZm8oYEdvdCAke18ua2V5cyhyZXN1bHRTdHJpbmdzKS5sZW5ndGh9IHN0cmluZyhzKSBmcm9tICcke2xwcm9qUm9vdH0nYCk7XG4gIHJldHVybiByZXN1bHRTdHJpbmdzO1xufVxuXG5leHBvcnQge1xuICBleHRyYWN0QnVuZGxlSWQsIHZlcmlmeUFwcGxpY2F0aW9uUGxhdGZvcm0sIHBhcnNlTG9jYWxpemFibGVTdHJpbmdzLFxuICBTQUZBUklfQlVORExFX0lEXG59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
233
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2FwcC11dGlscy5qcyIsIm5hbWVzIjpbIlNUUklOR1NESUNUX1JFU09VUkNFIiwiU1RSSU5HU19SRVNPVVJDRSIsIlNBRkFSSV9CVU5ETEVfSUQiLCJBUFBfRVhUIiwiSVBBX0VYVCIsImV4dHJhY3RQbGlzdEVudHJ5IiwiYXBwIiwiZW50cnlOYW1lIiwicGxpc3RQYXRoIiwicGF0aCIsInJlc29sdmUiLCJwbGlzdCIsInBhcnNlUGxpc3RGaWxlIiwiZXJyIiwiRXJyb3IiLCJiYXNlbmFtZSIsIm1lc3NhZ2UiLCJleHRyYWN0QnVuZGxlSWQiLCJidW5kbGVJZCIsImxvZyIsImRlYnVnIiwiZmV0Y2hTdXBwb3J0ZWRBcHBQbGF0Zm9ybXMiLCJyZXN1bHQiLCJfIiwiaXNBcnJheSIsIndhcm4iLCJ2ZXJpZnlBcHBsaWNhdGlvblBsYXRmb3JtIiwiZXhwZWN0ZWRQbGF0Zm9ybSIsInN1cHBvcnRlZFBsYXRmb3JtcyIsIkpTT04iLCJzdHJpbmdpZnkiLCJpc1NpbXVsYXRvciIsImlzVHZPUyIsInByZWZpeCIsInN1ZmZpeCIsImRzdFBsYXRmb3JtIiwiaW5jbHVkZXMiLCJyZWFkUmVzb3VyY2UiLCJyZXNvdXJjZVBhdGgiLCJkYXRhIiwia2V5IiwidmFsdWUiLCJ0b1BhaXJzIiwiaXNTdHJpbmciLCJwYXJzZUxvY2FsaXphYmxlU3RyaW5ncyIsIm9wdHMiLCJsYW5ndWFnZSIsImxvY2FsaXphYmxlU3RyaW5nc0RpciIsInN0cmluZ0ZpbGUiLCJzdHJpY3RNb2RlIiwiaW5mbyIsImxwcm9qUm9vdCIsInN1YmZvbGRlciIsImZzIiwiZXhpc3RzIiwicmVzb3VyY2VQYXRocyIsImRzdFBhdGgiLCJwdXNoIiwiaXNFbXB0eSIsInJlc291cmNlRmlsZXMiLCJyZWFkZGlyIiwiZmlsdGVyIiwibmFtZSIsInNvbWUiLCJ4IiwiZW5kc1dpdGgiLCJtYXAiLCJsZW5ndGgiLCJyZXN1bHRTdHJpbmdzIiwidG9BYnNvbHV0ZVBhdGgiLCJwIiwiaXNBYnNvbHV0ZSIsInByb2Nlc3MiLCJjd2QiLCJ1dGlsIiwiaXNTdWJQYXRoIiwia2V5cyIsIm1lcmdlIiwiZSIsImlzQXBwQnVuZGxlIiwiYXBwUGF0aCIsInRvTG93ZXIiLCJzdGF0IiwiaXNEaXJlY3RvcnkiLCJqb2luIiwiZmluZEFwcHMiLCJhcmNoaXZlUGF0aCIsImFwcEV4dGVuc2lvbnMiLCJ1c2VTeXN0ZW1VbnppcEVudiIsImVudiIsIkFQUElVTV9QUkVGRVJfU1lTVEVNX1VOWklQIiwidXNlU3lzdGVtVW56aXAiLCJ0bXBSb290IiwidGVtcERpciIsIm9wZW5EaXIiLCJ6aXAiLCJleHRyYWN0QWxsVG8iLCJnbG9iUGF0dGVybiIsImV4dCIsInJlcGxhY2UiLCJzb3J0ZWRCdW5kbGVJdGVtcyIsImdsb2IiLCJzdHJpY3QiLCJzb3J0IiwiYSIsImIiLCJzcGxpdCIsInNlcCIsImlzb2xhdGVBcHBCdW5kbGUiLCJhcHBSb290IiwiZHN0Um9vdCIsIm12IiwibWtkaXJwIl0sInNvdXJjZVJvb3QiOiIuLi8uLiIsInNvdXJjZXMiOlsibGliL2FwcC11dGlscy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgeyBwbGlzdCwgZnMsIHV0aWwsIHRlbXBEaXIsIHppcCB9IGZyb20gJ2FwcGl1bS9zdXBwb3J0JztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXIuanMnO1xuXG5jb25zdCBTVFJJTkdTRElDVF9SRVNPVVJDRSA9ICcuc3RyaW5nc2RpY3QnO1xuY29uc3QgU1RSSU5HU19SRVNPVVJDRSA9ICcuc3RyaW5ncyc7XG5jb25zdCBTQUZBUklfQlVORExFX0lEID0gJ2NvbS5hcHBsZS5tb2JpbGVzYWZhcmknO1xuY29uc3QgQVBQX0VYVCA9ICcuYXBwJztcbmNvbnN0IElQQV9FWFQgPSAnLmlwYSc7XG5cbmFzeW5jIGZ1bmN0aW9uIGV4dHJhY3RQbGlzdEVudHJ5IChhcHAsIGVudHJ5TmFtZSkge1xuICBjb25zdCBwbGlzdFBhdGggPSBwYXRoLnJlc29sdmUoYXBwLCAnSW5mby5wbGlzdCcpO1xuICB0cnkge1xuICAgIHJldHVybiAoYXdhaXQgcGxpc3QucGFyc2VQbGlzdEZpbGUocGxpc3RQYXRoKSlbZW50cnlOYW1lXTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDb3VsZCBub3QgZXh0cmFjdCBJbmZvLnBsaXN0IGZyb20gJyR7cGF0aC5iYXNlbmFtZShhcHApfSc6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gZXh0cmFjdEJ1bmRsZUlkIChhcHApIHtcbiAgY29uc3QgYnVuZGxlSWQgPSBhd2FpdCBleHRyYWN0UGxpc3RFbnRyeShhcHAsICdDRkJ1bmRsZUlkZW50aWZpZXInKTtcbiAgbG9nLmRlYnVnKGBHZXR0aW5nIGJ1bmRsZSBJRCBmcm9tIGFwcCAnJHthcHB9JzogJyR7YnVuZGxlSWR9J2ApO1xuICByZXR1cm4gYnVuZGxlSWQ7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGZldGNoU3VwcG9ydGVkQXBwUGxhdGZvcm1zIChhcHApIHtcbiAgdHJ5IHtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBleHRyYWN0UGxpc3RFbnRyeShhcHAsICdDRkJ1bmRsZVN1cHBvcnRlZFBsYXRmb3JtcycpO1xuICAgIGlmICghXy5pc0FycmF5KHJlc3VsdCkpIHtcbiAgICAgIGxvZy53YXJuKGAke3BhdGguYmFzZW5hbWUoYXBwKX0nOiBDRkJ1bmRsZVN1cHBvcnRlZFBsYXRmb3JtcyBpcyBub3QgYSB2YWxpZCBsaXN0YCk7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGxvZy53YXJuKFxuICAgICAgYENhbm5vdCBleHRyYWN0IHRoZSBsaXN0IG9mIHN1cHBvcnRlZCBwbGF0Zm9ybXMgZnJvbSAnJHtwYXRoLmJhc2VuYW1lKGFwcCl9JzogJHtlcnIubWVzc2FnZX1gXG4gICAgKTtcbiAgICByZXR1cm4gW107XG4gIH1cbn1cblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBQbGF0Zm9ybU9wdHNcbiAqXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGlzU2ltdWxhdG9yIC0gV2hldGhlciB0aGUgZGVzdGluYXRpb24gcGxhdGZvcm0gaXMgYSBTaW11bGF0b3JcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gaXNUdk9TIC0gV2hldGhlciB0aGUgZGVzdGluYXRpb24gcGxhdGZvcm0gaXMgYSBTaW11bGF0b3JcbiAqL1xuXG4vKipcbiAqIFZlcmlmeSB3aGV0aGVyIHRoZSBnaXZlbiBhcHBsaWNhdGlvbiBpcyBjb21wYXRpYmxlIHRvIHRoZVxuICogcGxhdGZvcm0gd2hlcmUgaXQgaXMgZ29pbmcgdG8gYmUgaW5zdGFsbGVkIGFuZCB0ZXN0ZWQuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGFwcCAtIFRoZSBhY3R1YWwgcGF0aCB0byB0aGUgYXBwbGljYXRpb24gYnVuZGxlXG4gKiBAcGFyYW0ge1BsYXRmb3JtT3B0c30gZXhwZWN0ZWRQbGF0Zm9ybVxuICogQHRocm93cyB7RXJyb3J9IElmIGJ1bmRsZSBhcmNoaXRlY3R1cmUgZG9lcyBub3QgbWF0Y2ggdGhlIGV4cGVjdGVkIGRldmljZSBhcmNoaXRlY3R1cmUuXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHZlcmlmeUFwcGxpY2F0aW9uUGxhdGZvcm0gKGFwcCwgZXhwZWN0ZWRQbGF0Zm9ybSkge1xuICBsb2cuZGVidWcoJ1ZlcmlmeWluZyBhcHBsaWNhdGlvbiBwbGF0Zm9ybScpO1xuXG4gIGNvbnN0IHN1cHBvcnRlZFBsYXRmb3JtcyA9IGF3YWl0IGZldGNoU3VwcG9ydGVkQXBwUGxhdGZvcm1zKGFwcCk7XG4gIGxvZy5kZWJ1ZyhgQ0ZCdW5kbGVTdXBwb3J0ZWRQbGF0Zm9ybXM6ICR7SlNPTi5zdHJpbmdpZnkoc3VwcG9ydGVkUGxhdGZvcm1zKX1gKTtcblxuICBjb25zdCB7XG4gICAgaXNTaW11bGF0b3IsXG4gICAgaXNUdk9TLFxuICB9ID0gZXhwZWN0ZWRQbGF0Zm9ybTtcbiAgY29uc3QgcHJlZml4ID0gaXNUdk9TID8gJ0FwcGxlVFYnIDogJ2lQaG9uZSc7XG4gIGNvbnN0IHN1ZmZpeCA9IGlzU2ltdWxhdG9yID8gJ1NpbXVsYXRvcicgOiAnT1MnO1xuICBjb25zdCBkc3RQbGF0Zm9ybSA9IGAke3ByZWZpeH0ke3N1ZmZpeH1gO1xuICBpZiAoIXN1cHBvcnRlZFBsYXRmb3Jtcy5pbmNsdWRlcyhkc3RQbGF0Zm9ybSkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYCR7aXNTaW11bGF0b3IgPyAnU2ltdWxhdG9yJyA6ICdSZWFsIGRldmljZSd9IGFyY2hpdGVjdHVyZSBpcyB1bnN1cHBvcnRlZCBieSB0aGUgJyR7YXBwfScgYXBwbGljYXRpb24uIGAgK1xuICAgICAgYE1ha2Ugc3VyZSB0aGUgY29ycmVjdCBkZXBsb3ltZW50IHRhcmdldCBoYXMgYmVlbiBzZWxlY3RlZCBmb3IgaXRzIGNvbXBpbGF0aW9uIGluIFhjb2RlLmApO1xuICB9XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHJlYWRSZXNvdXJjZSAocmVzb3VyY2VQYXRoKSB7XG4gIGNvbnN0IGRhdGEgPSBhd2FpdCBwbGlzdC5wYXJzZVBsaXN0RmlsZShyZXNvdXJjZVBhdGgpO1xuICBjb25zdCByZXN1bHQgPSB7fTtcbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgXy50b1BhaXJzKGRhdGEpKSB7XG4gICAgcmVzdWx0W2tleV0gPSBfLmlzU3RyaW5nKHZhbHVlKSA/IHZhbHVlIDogSlNPTi5zdHJpbmdpZnkodmFsdWUpO1xuICB9XG4gIHJldHVybiByZXN1bHQ7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHBhcnNlTG9jYWxpemFibGVTdHJpbmdzIChvcHRzKSB7XG4gIGNvbnN0IHtcbiAgICBhcHAsXG4gICAgbGFuZ3VhZ2UgPSAnZW4nLFxuICAgIGxvY2FsaXphYmxlU3RyaW5nc0RpcixcbiAgICBzdHJpbmdGaWxlLFxuICAgIHN0cmljdE1vZGUsXG4gIH0gPSBvcHRzO1xuXG4gIGlmICghYXBwKSB7XG4gICAgY29uc3QgbWVzc2FnZSA9IGBTdHJpbmdzIGV4dHJhY3Rpb24gaXMgbm90IHN1cHBvcnRlZCBpZiAnYXBwJyBjYXBhYmlsaXR5IGlzIG5vdCBzZXRgO1xuICAgIGlmIChzdHJpY3RNb2RlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IobWVzc2FnZSk7XG4gICAgfVxuICAgIGxvZy5pbmZvKG1lc3NhZ2UpO1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIGxldCBscHJvalJvb3Q7XG4gIGZvciAoY29uc3Qgc3ViZm9sZGVyIG9mIFtgJHtsYW5ndWFnZX0ubHByb2pgLCBsb2NhbGl6YWJsZVN0cmluZ3NEaXIsICcnXSkge1xuICAgIGxwcm9qUm9vdCA9IHBhdGgucmVzb2x2ZShhcHAsIHN1YmZvbGRlcik7XG4gICAgaWYgKGF3YWl0IGZzLmV4aXN0cyhscHJvalJvb3QpKSB7XG4gICAgICBicmVhaztcbiAgICB9XG4gICAgY29uc3QgbWVzc2FnZSA9IGBObyAnJHtscHJvalJvb3R9JyByZXNvdXJjZXMgZm9sZGVyIGhhcyBiZWVuIGZvdW5kYDtcbiAgICBpZiAoc3RyaWN0TW9kZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgIH1cbiAgICBsb2cuZGVidWcobWVzc2FnZSk7XG4gIH1cbiAgbG9nLmluZm8oYFdpbGwgZXh0cmFjdCByZXNvdXJjZSBzdHJpbmdzIGZyb20gJyR7bHByb2pSb290fSdgKTtcblxuICBjb25zdCByZXNvdXJjZVBhdGhzID0gW107XG4gIGlmIChzdHJpbmdGaWxlKSB7XG4gICAgY29uc3QgZHN0UGF0aCA9IHBhdGgucmVzb2x2ZShscHJvalJvb3QsIHN0cmluZ0ZpbGUpO1xuICAgIGlmIChhd2FpdCBmcy5leGlzdHMoZHN0UGF0aCkpIHtcbiAgICAgIHJlc291cmNlUGF0aHMucHVzaChkc3RQYXRoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgbWVzc2FnZSA9IGBObyAnJHtkc3RQYXRofScgcmVzb3VyY2UgZmlsZSBoYXMgYmVlbiBmb3VuZCBmb3IgJyR7YXBwfSdgO1xuICAgICAgaWYgKHN0cmljdE1vZGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKG1lc3NhZ2UpO1xuICAgICAgfVxuICAgICAgbG9nLmluZm8obWVzc2FnZSk7XG4gICAgICBsb2cuaW5mbyhgR2V0dGluZyBhbGwgdGhlIGF2YWlsYWJsZSBzdHJpbmdzIGZyb20gJyR7bHByb2pSb290fSdgKTtcbiAgICB9XG4gIH1cblxuICBpZiAoXy5pc0VtcHR5KHJlc291cmNlUGF0aHMpICYmIGF3YWl0IGZzLmV4aXN0cyhscHJvalJvb3QpKSB7XG4gICAgY29uc3QgcmVzb3VyY2VGaWxlcyA9IChhd2FpdCBmcy5yZWFkZGlyKGxwcm9qUm9vdCkpXG4gICAgICAuZmlsdGVyKChuYW1lKSA9PiBfLnNvbWUoW1NUUklOR1NfUkVTT1VSQ0UsIFNUUklOR1NESUNUX1JFU09VUkNFXSwgKHgpID0+IG5hbWUuZW5kc1dpdGgoeCkpKVxuICAgICAgLm1hcCgobmFtZSkgPT4gcGF0aC5yZXNvbHZlKGxwcm9qUm9vdCwgbmFtZSkpO1xuICAgIHJlc291cmNlUGF0aHMucHVzaCguLi5yZXNvdXJjZUZpbGVzKTtcbiAgfVxuICBsb2cuaW5mbyhgR290ICR7cmVzb3VyY2VQYXRocy5sZW5ndGh9IHJlc291cmNlIGZpbGUocykgaW4gJyR7bHByb2pSb290fSdgKTtcblxuICBpZiAoXy5pc0VtcHR5KHJlc291cmNlUGF0aHMpKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgY29uc3QgcmVzdWx0U3RyaW5ncyA9IHt9O1xuICBjb25zdCB0b0Fic29sdXRlUGF0aCA9IGZ1bmN0aW9uIChwKSB7XG4gICAgcmV0dXJuIHBhdGguaXNBYnNvbHV0ZShwKSA/IHAgOiBwYXRoLnJlc29sdmUocHJvY2Vzcy5jd2QoKSwgcCk7XG4gIH07XG4gIGZvciAoY29uc3QgcmVzb3VyY2VQYXRoIG9mIHJlc291cmNlUGF0aHMpIHtcbiAgICBpZiAoIXV0aWwuaXNTdWJQYXRoKHRvQWJzb2x1dGVQYXRoKHJlc291cmNlUGF0aCksIHRvQWJzb2x1dGVQYXRoKGFwcCkpKSB7XG4gICAgICAvLyBzZWN1cml0eSBwcmVjYXV0aW9uXG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYCcke3Jlc291cmNlUGF0aH0nIGlzIGV4cGVjdGVkIHRvIGJlIGxvY2F0ZWQgdW5kZXIgJyR7YXBwfSdgKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCByZWFkUmVzb3VyY2UocmVzb3VyY2VQYXRoKTtcbiAgICAgIGxvZy5kZWJ1ZyhgUGFyc2VkICR7Xy5rZXlzKGRhdGEpLmxlbmd0aH0gc3RyaW5nKHMpIGZyb20gJyR7cmVzb3VyY2VQYXRofSdgKTtcbiAgICAgIF8ubWVyZ2UocmVzdWx0U3RyaW5ncywgZGF0YSk7XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgbG9nLndhcm4oYENhbm5vdCBwYXJzZSAnJHtyZXNvdXJjZVBhdGh9JyByZXNvdXJjZS4gT3JpZ2luYWwgZXJyb3I6ICR7ZS5tZXNzYWdlfWApO1xuICAgIH1cbiAgfVxuXG4gIGxvZy5pbmZvKGBHb3QgJHtfLmtleXMocmVzdWx0U3RyaW5ncykubGVuZ3RofSBzdHJpbmcocykgZnJvbSAnJHtscHJvalJvb3R9J2ApO1xuICByZXR1cm4gcmVzdWx0U3RyaW5ncztcbn1cblxuLyoqXG4gKiBDaGVjayB3aGV0aGVyIHRoZSBnaXZlbiBwYXRoIG9uIHRoZSBmaWxlIHN5c3RlbSBwb2ludHMgdG8gdGhlIC5hcHAgYnVuZGxlIHJvb3RcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gYXBwUGF0aCBQb3NzaWJsZSAuYXBwIGJ1bmRsZSByb290XG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gV2hldGhlciB0aGUgZ2l2ZW4gcGF0aCBwb2ludHMgdG8gYW4gLmFwcCBidW5kbGVcbiAqL1xuYXN5bmMgZnVuY3Rpb24gaXNBcHBCdW5kbGUgKGFwcFBhdGgpIHtcbiAgcmV0dXJuIF8uZW5kc1dpdGgoXy50b0xvd2VyKGFwcFBhdGgpLCBBUFBfRVhUKVxuICAgICYmIChhd2FpdCBmcy5zdGF0KGFwcFBhdGgpKS5pc0RpcmVjdG9yeSgpXG4gICAgJiYgYXdhaXQgZnMuZXhpc3RzKHBhdGguam9pbihhcHBQYXRoLCAnSW5mby5wbGlzdCcpKTtcbn1cblxuLyoqXG4gKiBFeHRyYWN0IHRoZSBnaXZlbiBhcmNoaXZlIGFuZCBsb29rcyBmb3IgaXRlbXMgd2l0aCBnaXZlbiBleHRlbnNpb25zIGluIGl0XG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGFyY2hpdmVQYXRoIEZ1bGwgcGF0aCB0byBhIC56aXAgYXJjaGl2ZVxuICogQHBhcmFtIHtBcnJheTxzdHJpbmc+fSBhcHBFeHRlbnNpb25zIExpc3Qgb2YgbWF0Y2hpbmcgaXRlbSBleHRlbnNpb25zXG4gKiBAcmV0dXJucyB7W3N0cmluZywgQXJyYXk8U3RyaW5nPl19IFR1cGxlLCB3aGVyZSB0aGUgZmlyc3QgZWxlbWVudCBwb2ludHMgdG9cbiAqIGEgdGVtcG9yYXJ5IGZvbGRlciByb290IHdoZXJlIHRoZSBhcmNoaXZlIGhhcyBiZWVuIGV4dHJhY3RlZCBhbmQgdGhlIHNlY29uZCBpdGVtXG4gKiBjb250YWlucyBhIGxpc3Qgb2YgcmVsYXRpdmUgcGF0aHMgdG8gbWF0Y2hlZCBpdGVtc1xuICovXG5hc3luYyBmdW5jdGlvbiBmaW5kQXBwcyAoYXJjaGl2ZVBhdGgsIGFwcEV4dGVuc2lvbnMpIHtcbiAgY29uc3QgdXNlU3lzdGVtVW56aXBFbnYgPSBwcm9jZXNzLmVudi5BUFBJVU1fUFJFRkVSX1NZU1RFTV9VTlpJUDtcbiAgY29uc3QgdXNlU3lzdGVtVW56aXAgPSBfLmlzRW1wdHkodXNlU3lzdGVtVW56aXBFbnYpXG4gICAgfHwgIVsnMCcsICdmYWxzZSddLmluY2x1ZGVzKF8udG9Mb3dlcih1c2VTeXN0ZW1VbnppcEVudikpO1xuICBjb25zdCB0bXBSb290ID0gYXdhaXQgdGVtcERpci5vcGVuRGlyKCk7XG4gIGF3YWl0IHppcC5leHRyYWN0QWxsVG8oYXJjaGl2ZVBhdGgsIHRtcFJvb3QsIHt1c2VTeXN0ZW1VbnppcH0pO1xuICBjb25zdCBnbG9iUGF0dGVybiA9IGAqKi8qLisoJHthcHBFeHRlbnNpb25zLm1hcCgoZXh0KSA9PiBleHQucmVwbGFjZSgvXlxcLi8sICcnKSkuam9pbignfCcpfSlgO1xuICBjb25zdCBzb3J0ZWRCdW5kbGVJdGVtcyA9IChhd2FpdCBmcy5nbG9iKGdsb2JQYXR0ZXJuLCB7XG4gICAgY3dkOiB0bXBSb290LFxuICAgIHN0cmljdDogZmFsc2UsXG4gIH0pKS5zb3J0KChhLCBiKSA9PiBhLnNwbGl0KHBhdGguc2VwKS5sZW5ndGggLSBiLnNwbGl0KHBhdGguc2VwKS5sZW5ndGgpO1xuICByZXR1cm4gW3RtcFJvb3QsIHNvcnRlZEJ1bmRsZUl0ZW1zXTtcbn1cblxuLyoqXG4gKiBNb3ZlcyB0aGUgYXBwbGljYXRpb24gYnVuZGxlIHRvIGEgbmV3bHkgY3JlYXRlZCB0ZW1wb3JhcnkgZm9sZGVyXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IGFwcFJvb3QgRnVsbCBwYXRoIHRvIHRoZSAuYXBwIGJ1bmRsZVxuICogQHJldHVybnMge3N0cmluZ30gVGhlIG5ldyBwYXRoIHRvIHRoZSBhcHAgYnVuZGxlLlxuICogVGhlIG5hbWUgb2YgdGhlIGFwcCBidW5kbGUgcmVtYWlucyB0aG91Z2hcbiAqL1xuYXN5bmMgZnVuY3Rpb24gaXNvbGF0ZUFwcEJ1bmRsZSAoYXBwUm9vdCkge1xuICBjb25zdCB0bXBSb290ID0gYXdhaXQgdGVtcERpci5vcGVuRGlyKCk7XG4gIGNvbnN0IGRzdFJvb3QgPSBwYXRoLmpvaW4odG1wUm9vdCwgcGF0aC5iYXNlbmFtZShhcHBSb290KSk7XG4gIGF3YWl0IGZzLm12KGFwcFJvb3QsIGRzdFJvb3QsIHtta2RpcnA6IHRydWV9KTtcbiAgcmV0dXJuIGRzdFJvb3Q7XG59XG5cbmV4cG9ydCB7XG4gIGV4dHJhY3RCdW5kbGVJZCwgdmVyaWZ5QXBwbGljYXRpb25QbGF0Zm9ybSwgcGFyc2VMb2NhbGl6YWJsZVN0cmluZ3MsXG4gIFNBRkFSSV9CVU5ETEVfSUQsIGZldGNoU3VwcG9ydGVkQXBwUGxhdGZvcm1zLCBBUFBfRVhULCBJUEFfRVhULFxuICBpc0FwcEJ1bmRsZSwgZmluZEFwcHMsIGlzb2xhdGVBcHBCdW5kbGUsXG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSxNQUFNQSxvQkFBb0IsR0FBRyxjQUE3QjtBQUNBLE1BQU1DLGdCQUFnQixHQUFHLFVBQXpCO0FBQ0EsTUFBTUMsZ0JBQWdCLEdBQUcsd0JBQXpCOztBQUNBLE1BQU1DLE9BQU8sR0FBRyxNQUFoQjs7QUFDQSxNQUFNQyxPQUFPLEdBQUcsTUFBaEI7OztBQUVBLGVBQWVDLGlCQUFmLENBQWtDQyxHQUFsQyxFQUF1Q0MsU0FBdkMsRUFBa0Q7RUFDaEQsTUFBTUMsU0FBUyxHQUFHQyxhQUFBLENBQUtDLE9BQUwsQ0FBYUosR0FBYixFQUFrQixZQUFsQixDQUFsQjs7RUFDQSxJQUFJO0lBQ0YsT0FBTyxDQUFDLE1BQU1LLGNBQUEsQ0FBTUMsY0FBTixDQUFxQkosU0FBckIsQ0FBUCxFQUF3Q0QsU0FBeEMsQ0FBUDtFQUNELENBRkQsQ0FFRSxPQUFPTSxHQUFQLEVBQVk7SUFDWixNQUFNLElBQUlDLEtBQUosQ0FBVyxzQ0FBcUNMLGFBQUEsQ0FBS00sUUFBTCxDQUFjVCxHQUFkLENBQW1CLE1BQUtPLEdBQUcsQ0FBQ0csT0FBUSxFQUFwRixDQUFOO0VBQ0Q7QUFDRjs7QUFFRCxlQUFlQyxlQUFmLENBQWdDWCxHQUFoQyxFQUFxQztFQUNuQyxNQUFNWSxRQUFRLEdBQUcsTUFBTWIsaUJBQWlCLENBQUNDLEdBQUQsRUFBTSxvQkFBTixDQUF4Qzs7RUFDQWEsZUFBQSxDQUFJQyxLQUFKLENBQVcsK0JBQThCZCxHQUFJLE9BQU1ZLFFBQVMsR0FBNUQ7O0VBQ0EsT0FBT0EsUUFBUDtBQUNEOztBQUVELGVBQWVHLDBCQUFmLENBQTJDZixHQUEzQyxFQUFnRDtFQUM5QyxJQUFJO0lBQ0YsTUFBTWdCLE1BQU0sR0FBRyxNQUFNakIsaUJBQWlC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
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = exports.commands = void 0;
9
+
10
+ require("source-map-support/register");
11
+
12
+ var _appiumIosDevice = require("appium-ios-device");
13
+
14
+ var _lodash = _interopRequireDefault(require("lodash"));
15
+
16
+ var _support = require("appium/support");
17
+
18
+ const commands = {};
19
+ exports.commands = commands;
20
+
21
+ function requireConditionInducerCompatibleDevice(driver) {
22
+ if (driver.isSimulator()) {
23
+ driver.log.errorAndThrow('Condition inducer only works on real devices');
24
+ }
25
+
26
+ if (_support.util.compareVersions(driver.opts.platformVersion, '<', '13.0')) {
27
+ driver.log.errorAndThrow('Condition inducer is only supported since iOS 13+');
28
+ }
29
+ }
30
+
31
+ commands.mobileListConditionInducers = async function listConditionInducers() {
32
+ requireConditionInducerCompatibleDevice(this);
33
+ const conditionInducerService = await _appiumIosDevice.services.startInstrumentService(this.opts.device.udid);
34
+
35
+ try {
36
+ const ret = await conditionInducerService.callChannel(_appiumIosDevice.INSTRUMENT_CHANNEL.CONDITION_INDUCER, 'availableConditionInducers');
37
+ return ret.selector;
38
+ } finally {
39
+ conditionInducerService.close();
40
+ }
41
+ };
42
+
43
+ commands.mobileEnableConditionInducer = async function enableConditionInducer(options = {}) {
44
+ requireConditionInducerCompatibleDevice(this);
45
+
46
+ if (this._conditionInducerService && !this._conditionInducerService._socketClient.destroyed) {
47
+ this.log.errorAndThrow(`Condition inducer has been started. A condition is already active.`);
48
+ }
49
+
50
+ const {
51
+ conditionID,
52
+ profileID
53
+ } = options;
54
+ this._conditionInducerService = await _appiumIosDevice.services.startInstrumentService(this.opts.device.udid);
55
+ const ret = await this._conditionInducerService.callChannel(_appiumIosDevice.INSTRUMENT_CHANNEL.CONDITION_INDUCER, 'enableConditionWithIdentifier:profileIdentifier:', conditionID, profileID);
56
+
57
+ if (!_lodash.default.isBoolean(ret.selector)) {
58
+ this._conditionInducerService.close();
59
+
60
+ this._conditionInducerService = null;
61
+ this.log.errorAndThrow(`Enable condition inducer error: '${JSON.stringify(ret.selector)}'`);
62
+ }
63
+
64
+ return ret.selector;
65
+ };
66
+
67
+ commands.mobileDisableConditionInducer = async function disableConditionInducer() {
68
+ if (!this._conditionInducerService) {
69
+ this.log.warn('Condition inducer server is not started');
70
+ return false;
71
+ }
72
+
73
+ try {
74
+ const ret = await this._conditionInducerService.callChannel(_appiumIosDevice.INSTRUMENT_CHANNEL.CONDITION_INDUCER, 'disableActiveCondition');
75
+
76
+ if (!_lodash.default.isBoolean(ret.selector)) {
77
+ this.log.warn(`Disable condition inducer error: '${JSON.stringify(ret.selector)}'`);
78
+ return false;
79
+ }
80
+
81
+ return ret.selector;
82
+ } finally {
83
+ if (this._conditionInducerService) {
84
+ this._conditionInducerService.close();
85
+
86
+ this._conditionInducerService = null;
87
+ }
88
+ }
89
+ };
90
+
91
+ var _default = commands;
92
+ exports.default = _default;require('source-map-support').install();
93
+
94
+
95
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2NvbmRpdGlvbi5qcyIsIm5hbWVzIjpbImNvbW1hbmRzIiwicmVxdWlyZUNvbmRpdGlvbkluZHVjZXJDb21wYXRpYmxlRGV2aWNlIiwiZHJpdmVyIiwiaXNTaW11bGF0b3IiLCJsb2ciLCJlcnJvckFuZFRocm93IiwidXRpbCIsImNvbXBhcmVWZXJzaW9ucyIsIm9wdHMiLCJwbGF0Zm9ybVZlcnNpb24iLCJtb2JpbGVMaXN0Q29uZGl0aW9uSW5kdWNlcnMiLCJsaXN0Q29uZGl0aW9uSW5kdWNlcnMiLCJjb25kaXRpb25JbmR1Y2VyU2VydmljZSIsInNlcnZpY2VzIiwic3RhcnRJbnN0cnVtZW50U2VydmljZSIsImRldmljZSIsInVkaWQiLCJyZXQiLCJjYWxsQ2hhbm5lbCIsIklOU1RSVU1FTlRfQ0hBTk5FTCIsIkNPTkRJVElPTl9JTkRVQ0VSIiwic2VsZWN0b3IiLCJjbG9zZSIsIm1vYmlsZUVuYWJsZUNvbmRpdGlvbkluZHVjZXIiLCJlbmFibGVDb25kaXRpb25JbmR1Y2VyIiwib3B0aW9ucyIsIl9jb25kaXRpb25JbmR1Y2VyU2VydmljZSIsIl9zb2NrZXRDbGllbnQiLCJkZXN0cm95ZWQiLCJjb25kaXRpb25JRCIsInByb2ZpbGVJRCIsIl8iLCJpc0Jvb2xlYW4iLCJKU09OIiwic3RyaW5naWZ5IiwibW9iaWxlRGlzYWJsZUNvbmRpdGlvbkluZHVjZXIiLCJkaXNhYmxlQ29uZGl0aW9uSW5kdWNlciIsIndhcm4iXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uIiwic291cmNlcyI6WyJsaWIvY29tbWFuZHMvY29uZGl0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElOU1RSVU1FTlRfQ0hBTk5FTCwgc2VydmljZXMgfSBmcm9tICdhcHBpdW0taW9zLWRldmljZSc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgdXRpbCB9IGZyb20gJ2FwcGl1bS9zdXBwb3J0JztcblxuY29uc3QgY29tbWFuZHMgPSB7fTtcblxuZnVuY3Rpb24gcmVxdWlyZUNvbmRpdGlvbkluZHVjZXJDb21wYXRpYmxlRGV2aWNlIChkcml2ZXIpIHtcbiAgICBpZiAoZHJpdmVyLmlzU2ltdWxhdG9yKCkpIHtcbiAgICAgIGRyaXZlci5sb2cuZXJyb3JBbmRUaHJvdygnQ29uZGl0aW9uIGluZHVjZXIgb25seSB3b3JrcyBvbiByZWFsIGRldmljZXMnKTtcbiAgICB9XG4gICAgaWYgKHV0aWwuY29tcGFyZVZlcnNpb25zKGRyaXZlci5vcHRzLnBsYXRmb3JtVmVyc2lvbiwgJzwnLCAnMTMuMCcpKSB7XG4gICAgICBkcml2ZXIubG9nLmVycm9yQW5kVGhyb3coJ0NvbmRpdGlvbiBpbmR1Y2VyIGlzIG9ubHkgc3VwcG9ydGVkIHNpbmNlIGlPUyAxMysnKTtcbiAgICB9XG4gIH1cblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBQcm9maWxlXG4gKiBAcHJvcGVydHkge1N0cmluZ30gbmFtZVxuICogQHByb3BlcnR5IHtTdHJpbmd9IGlkZW50aWZpZXIgIHRoZSBwcm9wZXJ0eSBpcyBwcm9maWxlSUQgdXNlZCBpbiBNb2JpbGVFbmFibGVDb25kaXRpb25JbmR1Y2VyXG4gKiBAcHJvcGVydHkge1N0cmluZ30gZGVzY3JpcHRpb24gQ29uZmlndXJhdGlvbiBkZXRhaWxzXG4gKi9cblxuLyoqXG4gKiBXZSBjYW4gdXNlIHRoZSByZXR1cm5lZCBkYXRhIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBDb25kaXRpb24gaXMgZW5hYmxlZCBhbmQgdGhlIGN1cnJlbnRseSBlbmFibGVkIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb25cbiAqIEB0eXBlZGVmIHtPYmplY3R9IENvbmRpdGlvblxuICogQHByb3BlcnR5IHtBcnJheTxQcm9maWxlPn0gcHJvZmlsZXNcbiAqIEBwcm9wZXJ0eSB7U3RyaW5nfSBpZGVudGlmaWVyIHRoZSBwcm9wZXJ0eSBpcyBjb25kaXRpb25JRCB1c2VkIGluIE1vYmlsZUVuYWJsZUNvbmRpdGlvbkluZHVjZXJcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gcHJvZmlsZXNTb3J0ZWRcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gaXNEZXN0cnVjdGl2ZVxuICogQHByb3BlcnR5IHtib29sZWFufSBpc0ludGVybmFsXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGlzQWN0aXZlIGB0cnVlYCBpZiB0aGlzIGNvbmRpdGlvbiBpZGVudGlmaWVyIGlzIGVuYWJsZWRcbiAqIEBwcm9wZXJ0eSB7U3RyaW5nfSBhY3RpdmVQcm9maWxlICBlbmFibGVkIHByb2ZpbGVzIGlkZW50aWZpZXJcbiAqL1xuXG4vKipcbiAqIEdldCBhbGwgQ29uZGl0aW9uSW5kdWNlciBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uXG4gKiBXZSB3aWxsIHVzZSBjb25kaXRpb25JRCBhbmQgcHJvZmlsZUlEIGluIHRoZSBtb2JpbGVFbmFibGVDb25kaXRpb25JbmR1Y2VyXG4gKiBAcmV0dXJucyB7QXJyYXk8Q29uZGl0aW9uPn1cbiAqIFt7XG4gKiAgICAgXCJwcm9maWxlc1wiOiBbXG4gKiAgICAgICAgICB7XG4gKiAgICAgICAgICAgICBcIm5hbWVcIjogXCIxMDAlIHBhY2tldCBsb3NzXCIsXG4gKiAgICAgICAgICAgICBcImlkZW50aWZpZXJcIjogXCJTbG93TmV0d29yazEwMFBjdExvc3NcIiwgIC8vIE1vYmlsZUVuYWJsZUNvbmRpdGlvbkluZHVjZXIgcHJvZmlsZUlEXG4gKiAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiTmFtZTogMTAwJSBMb3NzIFNjZW5hcmlvXFxuXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRG93bmxpbmsgQmFuZHdpZHRoOiAwIE1icHNcXG5cbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEb3dubGluayBMYXRlbmN5OjAgbXNcXG5cbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEb3dubGluayBQYWNrZXQgTG9zcyBSYXRpbzogMTAwJVxcblxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVwbGluayBCYW5kd2lkdGg6IDAgTWJwc1xcblxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVwbGluayBMYXRlbmN5OiAwIG1zXFxuXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXBsaW5rIFBhY2tldCBMb3NzIFJhdGlvOiAxMDAlXCJcbiAqICAgICAgICAgfVxuICogICAgIF0sXG4gKiAgICAgXCJwcm9maWxlc1NvcnRlZFwiOiB0cnVlLFxuICogICAgIFwiaWRlbnRpZmllclwiOiBcIlNsb3dOZXR3b3JrQ29uZGl0aW9uXCIsICAgIC8vIE1vYmlsZUVuYWJsZUNvbmRpdGlvbkluZHVjZXIgY29uZGl0aW9uSURcbiAqICAgICBcImlzRGVzdHJ1Y3RpdmVcIjogZmFsc2UsXG4gKiAgICAgXCJpc0ludGVybmFsXCI6IGZhbHNlLFxuICogICAgIFwiYWN0aXZlUHJvZmlsZVwiOiBcIlwiLFxuICogICAgIFwibmFtZVwiOiBcIk5ldHdvcmsgTGlua1wiLFxuICogICAgIFwiaXNBY3RpdmVcIjogZmFsc2VcbiAqIH1dXG4gKi9cbmNvbW1hbmRzLm1vYmlsZUxpc3RDb25kaXRpb25JbmR1Y2VycyA9IGFzeW5jIGZ1bmN0aW9uIGxpc3RDb25kaXRpb25JbmR1Y2VycyAoKSB7XG4gIHJlcXVpcmVDb25kaXRpb25JbmR1Y2VyQ29tcGF0aWJsZURldmljZSh0aGlzKTtcbiAgY29uc3QgY29uZGl0aW9uSW5kdWNlclNlcnZpY2UgPSBhd2FpdCBzZXJ2aWNlcy5zdGFydEluc3RydW1lbnRTZXJ2aWNlKHRoaXMub3B0cy5kZXZpY2UudWRpZCk7XG4gIHRyeSB7XG4gICAgY29uc3QgcmV0ID0gYXdhaXQgY29uZGl0aW9uSW5kdWNlclNlcnZpY2UuY2FsbENoYW5uZWwoSU5TVFJVTUVOVF9DSEFOTkVMLkNPTkRJVElPTl9JTkRVQ0VSLCAnYXZhaWxhYmxlQ29uZGl0aW9uSW5kdWNlcnMnKTtcbiAgICByZXR1cm4gcmV0LnNlbGVjdG9yO1xuICB9IGZpbmFsbHkge1xuICAgIGNvbmRpdGlvbkluZHVjZXJTZXJ2aWNlLmNsb3NlKCk7XG4gIH1cbn07XG5cbi8qKlxuICogRW5hYmxlIGNvbmRpdGlvbiBpbmR1Y2VyLiBUaGUgc29ja2V0IG5lZWRzIHRvIHJlbWFpbiBjb25uZWN0ZWQgZHVyaW5nIG9wZXJhdGlvblxuICogY29uZGl0aW9uSUQgIENvbmRpdGlvblswXS5pZGVudGlmaWVyXG4gKiBwcm9maWxlSUQgICAgQ29uZGl0aW9uWzBdLnByb2ZpbGVzWzBdLmlkZW50aWZpZXJcbiAqIEBwYXJhbSB7e2NvbmRpdGlvbklELHByb2ZpbGVJRH19IG9wdGlvbnNcbiAqIEByZXR1cm5zIHtib29sZWFufSBgdHJ1ZWAgaWYgZW5hYmxlIHRoZSBjb25kaXRpb24gc3VjY2VlZGVkXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdHJ5IHRvIHN0YXJ0IGFub3RoZXIgQ29uZGl0aW9uIGFuZCB0aGUgcHJldmlvdXMgQ29uZGl0aW9uIGhhcyBub3Qgc3RvcHBlZCwgaXQgd2lsbCB0aHJvdyBhbiBlcnJvclxuICovXG5jb21tYW5kcy5tb2JpbGVFbmFibGVDb25kaXRpb25JbmR1Y2VyID0gYXN5bmMgZnVuY3Rpb24gZW5hYmxlQ29uZGl0aW9uSW5kdWNlciAob3B0aW9ucyA9IHt9KSB7XG4gIHJlcXVpcmVDb25kaXRpb25JbmR1Y2VyQ29tcGF0aWJsZURldmljZSh0aGlzKTtcbiAgaWYgKHRoaXMuX2NvbmRpdGlvbkluZHVjZXJTZXJ2aWNlICYmICF0aGlzLl9jb25kaXRpb25JbmR1Y2VyU2VydmljZS5fc29ja2V0Q2xpZW50LmRlc3Ryb3llZCkge1xuICAgIHRoaXMubG9nLmVycm9yQW5kVGhyb3coYENvbmRpdGlvbiBpbmR1Y2VyIGhhcyBiZWVuIHN0YXJ0ZWQuIEEgY29uZGl0aW9uIGlzIGFscmVhZHkgYWN0aXZlLmApO1xuICB9XG4gIGNvbnN0IHtcbiAgICBjb25kaXRpb25JRCxcbiAgICBwcm9maWxlSUQsXG4gIH0gPSBvcHRpb25zO1xuICB0aGlzLl9jb25kaXRpb25JbmR1Y2VyU2VydmljZSA9IGF3YWl0IHNlcnZpY2VzLnN0YXJ0SW5zdHJ1bWVudFNlcnZpY2UodGhpcy5vcHRzLmRldmljZS51ZGlkKTtcbiAgY29uc3QgcmV0ID0gYXdhaXQgdGhpcy5fY29uZGl0aW9uSW5kdWNlclNlcnZpY2UuY2FsbENoYW5uZWwoSU5TVFJVTUVOVF9DSEFOTkVMLkNPTkRJVElPTl9JTkRVQ0VSLFxuICAgICdlbmFibGVDb25kaXRpb25XaXRoSWRlbnRpZmllcjpwcm9maWxlSWRlbnRpZmllcjonLCBjb25kaXRpb25JRCwgcHJvZmlsZUlEKTtcbiAgaWYgKCFfLmlzQm9vbGVhbihyZXQuc2VsZWN0b3IpKSB7XG4gICAgdGhpcy5fY29uZGl0aW9uSW5kdWNlclNlcnZpY2UuY2xvc2UoKTtcbiAgICB0aGlzLl9jb25kaXRpb25JbmR1Y2VyU2VydmljZSA9IG51bGw7XG4gICAgdGhpcy5sb2cuZXJyb3JBbmRUaHJvdyhgRW5hYmxlIGNvbmRpdGlvbiBpbmR1Y2VyIGVycm9yOiAnJHtKU09OLnN0cmluZ2lmeShyZXQuc2VsZWN0b3IpfSdgKTtcbiAgfVxuICByZXR1cm4gcmV0LnNlbGVjdG9yO1xufTtcblxuLyoqXG4gKiBEaXNhYmxlIGNvbmRpdGlvbiBpbmR1Y2VyXG4gKiB0aGlzIGNhbGwgdXBvbiBkcml2ZXIgZGVsZXRpb25cbiAqIEByZXR1cm5zIHtib29sZWFufSBgdHJ1ZWAgaWYgZGlzYWJsZSB0aGUgY29uZGl0aW9uIHN1Y2NlZWRlZFxuICovXG5jb21tYW5kcy5tb2JpbGVEaXNhYmxlQ29uZGl0aW9uSW5kdWNlciA9IGFzeW5jIGZ1bmN0aW9uIGRpc2FibGVDb25kaXRpb25JbmR1Y2VyICgpIHtcbiAgaWYgKCF0aGlzLl9jb25kaXRpb25JbmR1Y2VyU2VydmljZSkge1xuICAgIHRoaXMubG9nLndhcm4oJ0NvbmRpdGlvbiBpbmR1Y2VyIHNlcnZlciBpcyBub3Qgc3RhcnRlZCcpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB0cnkge1xuICAgIGNvbnN0IHJldCA9IGF3YWl0IHRoaXMuX2NvbmRpdGlvbkluZHVjZXJTZXJ2aWNlLmNhbGxDaGFubmVsKElOU1RSVU1FTlRfQ0hBTk5FTC5DT05ESVRJT05fSU5EVUNFUiwgJ2Rpc2FibGVBY3RpdmVDb25kaXRpb24nKTtcbiAgICBpZiAoIV8uaXNCb29sZWFuKHJldC5zZWxlY3RvcikpIHtcbiAgICAgIHRoaXMubG9nLndhcm4oYERpc2FibGUgY29uZGl0aW9uIGluZHVjZXIgZXJyb3I6ICcke0pTT04uc3RyaW5naWZ5KHJldC5zZWxlY3Rvcil9J2ApO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gcmV0LnNlbGVjdG9yO1xuICB9IGZpbmFsbHkge1xuICAgIGlmICh0aGlzLl9jb25kaXRpb25JbmR1Y2VyU2VydmljZSkge1xuICAgICAgdGhpcy5fY29uZGl0aW9uSW5kdWNlclNlcnZpY2UuY2xvc2UoKTtcbiAgICAgIHRoaXMuX2NvbmRpdGlvbkluZHVjZXJTZXJ2aWNlID0gbnVsbDtcbiAgICB9XG4gIH1cbn07XG5cbmV4cG9ydCB7Y29tbWFuZHN9O1xuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBRUEsTUFBTUEsUUFBUSxHQUFHLEVBQWpCOzs7QUFFQSxTQUFTQyx1Q0FBVCxDQUFrREMsTUFBbEQsRUFBMEQ7RUFDdEQsSUFBSUEsTUFBTSxDQUFDQyxXQUFQLEVBQUosRUFBMEI7SUFDeEJELE1BQU0sQ0FBQ0UsR0FBUCxDQUFXQyxhQUFYLENBQXlCLDhDQUF6QjtFQUNEOztFQUNELElBQUlDLGFBQUEsQ0FBS0MsZUFBTCxDQUFxQkwsTUFBTSxDQUFDTSxJQUFQLENBQVlDLGVBQWpDLEVBQWtELEdBQWxELEVBQXVELE1BQXZELENBQUosRUFBb0U7SUFDbEVQLE1BQU0sQ0FBQ0UsR0FBUCxDQUFXQyxhQUFYLENBQXlCLG1EQUF6QjtFQUNEO0FBQ0Y7O0FBZ0RITCxRQUFRLENBQUNVLDJCQUFULEdBQXVDLGVBQWVDLHFCQUFmLEdBQXdD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
@@ -126,7 +126,10 @@ extensions.executeMobile = async function executeMobile(mobileCommand, opts = {}
126
126
  configureLocalization: 'mobileConfigureLocalization',
127
127
  resetLocationService: 'mobileResetLocationService',
128
128
  startPcap: 'mobileStartPcap',
129
- stopPcap: 'mobileStopPcap'
129
+ stopPcap: 'mobileStopPcap',
130
+ listConditionInducers: 'mobileListConditionInducers',
131
+ enableConditionInducer: 'mobileEnableConditionInducer',
132
+ disableConditionInducer: 'mobileDisableConditionInducer'
130
133
  };
131
134
 
132
135
  if (!_lodash.default.has(commandMap, mobileCommand)) {
@@ -140,4 +143,4 @@ var _default = extensions;
140
143
  exports.default = _default;require('source-map-support').install();
141
144
 
142
145
 
143
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2V4ZWN1dGUuanMiLCJuYW1lcyI6WyJleHRlbnNpb25zIiwicmVjZWl2ZUFzeW5jUmVzcG9uc2UiLCJzdGF0dXMiLCJ2YWx1ZSIsImxvZyIsImRlYnVnIiwiSlNPTiIsInN0cmluZ2lmeSIsInV0aWwiLCJoYXNWYWx1ZSIsImFzeW5jUHJvbWlzZSIsIndhcm4iLCJyZWplY3QiLCJlcnJvckZyb21Db2RlIiwibWVzc2FnZSIsIl8iLCJpc1N0cmluZyIsImVycm9yIiwiZXJyb3JGcm9tVzNDSnNvbkNvZGUiLCJzdGFja3RyYWNlIiwicmVzb2x2ZSIsImV4ZWN1dGUiLCJzY3JpcHQiLCJhcmdzIiwibWF0Y2giLCJyZXBsYWNlIiwidHJpbSIsImV4ZWN1dGVNb2JpbGUiLCJpc0FycmF5IiwiaXNXZWJDb250ZXh0IiwiY29udmVydEVsZW1lbnRzRm9yQXRvbXMiLCJyZXN1bHQiLCJleGVjdXRlQXRvbSIsImNhY2hlV2ViRWxlbWVudHMiLCJlcnJvcnMiLCJOb3RJbXBsZW1lbnRlZEVycm9yIiwiZXhlY3V0ZUFzeW5jIiwiYXN5bmNXYWl0TXMiLCJwcm9taXNlIiwicmVtb3RlIiwiZXhlY3V0ZUF0b21Bc3luYyIsImN1cldlYkZyYW1lcyIsIndhaXRGb3JBdG9tIiwibW9iaWxlQ29tbWFuZCIsIm9wdHMiLCJjb21tYW5kTWFwIiwidGFwIiwic2Nyb2xsIiwic2VsZWN0UGlja2VyV2hlZWxWYWx1ZSIsInN3aXBlIiwicGluY2giLCJkb3VibGVUYXAiLCJ0d29GaW5nZXJUYXAiLCJ0YXBXaXRoTnVtYmVyT2ZUYXBzIiwidG91Y2hBbmRIb2xkIiwiZHJhZ0Zyb21Ub0ZvckR1cmF0aW9uIiwicm90YXRlRWxlbWVudCIsImZvcmNlUHJlc3MiLCJzY3JvbGxUb0VsZW1lbnQiLCJhbGVydCIsInNldFBhc3RlYm9hcmQiLCJnZXRQYXN0ZWJvYXJkIiwic291cmNlIiwiZ2V0Q29udGV4dHMiLCJpbnN0YWxsQXBwIiwiaXNBcHBJbnN0YWxsZWQiLCJyZW1vdmVBcHAiLCJsYXVuY2hBcHAiLCJ0ZXJtaW5hdGVBcHAiLCJraWxsQXBwIiwicXVlcnlBcHBTdGF0ZSIsImFjdGl2YXRlQXBwIiwibGlzdEFwcHMiLCJ2aWV3cG9ydFNjcmVlbnNob3QiLCJ2aWV3cG9ydFJlY3QiLCJzdGFydFBlcmZSZWNvcmQiLCJzdG9wUGVyZlJlY29yZCIsImluc3RhbGxDZXJ0aWZpY2F0ZSIsInN0YXJ0TG9nc0Jyb2FkY2FzdCIsInN0b3BMb2dzQnJvYWRjYXN0IiwiYmF0dGVyeUluZm8iLCJkZXZpY2VJbmZvIiwiZ2V0RGV2aWNlVGltZSIsImFjdGl2ZUFwcEluZm8iLCJkZXZpY2VTY3JlZW5JbmZvIiwicHJlc3NCdXR0b24iLCJlbnJvbGxCaW9tZXRyaWMiLCJzZW5kQmlvbWV0cmljTWF0Y2giLCJpc0Jpb21ldHJpY0Vucm9sbGVkIiwiY2xlYXJLZXljaGFpbnMiLCJnZXRQZXJtaXNzaW9uIiwic2V0UGVybWlzc2lvbiIsInJlc2V0UGVybWlzc2lvbiIsImdldEFwcGVhcmFuY2UiLCJzZXRBcHBlYXJhbmNlIiwic2lyaUNvbW1hbmQiLCJkZWxldGVGaWxlIiwiZGVsZXRlRm9sZGVyIiwic3RhcnRBdWRpb1JlY29yZGluZyIsInN0b3BBdWRpb1JlY29yZGluZyIsInJ1blhDVGVzdCIsImluc3RhbGxYQ1Rlc3RCdW5kbGUiLCJsaXN0WENUZXN0QnVuZGxlcyIsImxpc3RYQ1Rlc3RzSW5UZXN0QnVuZGxlIiwicHVzaE5vdGlmaWNhdGlvbiIsImV4cGVjdE5vdGlmaWNhdGlvbiIsInBlcmZvcm1Jb0hpZEV2ZW50IiwiY29uZmlndXJlTG9jYWxpemF0aW9uIiwicmVzZXRMb2NhdGlvblNlcnZpY2UiLCJzdGFydFBjYXAiLCJzdG9wUGNhcCIsImhhcyIsIlVua25vd25Db21tYW5kRXJyb3IiLCJrZXlzIiwiam9pbiJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9leGVjdXRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge1xuICBlcnJvcnMsIGVycm9yRnJvbUNvZGUsIGVycm9yRnJvbVczQ0pzb25Db2RlXG59IGZyb20gJ2FwcGl1bS9kcml2ZXInO1xuaW1wb3J0IHsgdXRpbCB9IGZyb20gJ2FwcGl1bS9zdXBwb3J0JztcblxuY29uc3QgZXh0ZW5zaW9ucyA9IHt9O1xuXG5leHRlbnNpb25zLnJlY2VpdmVBc3luY1Jlc3BvbnNlID0gYXN5bmMgZnVuY3Rpb24gcmVjZWl2ZUFzeW5jUmVzcG9uc2UgKHN0YXR1cywgdmFsdWUpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZXF1aXJlLWF3YWl0XG4gIHRoaXMubG9nLmRlYnVnKGBSZWNlaXZlZCBhc3luYyByZXNwb25zZTogJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9YCk7XG4gIGlmICghdXRpbC5oYXNWYWx1ZSh0aGlzLmFzeW5jUHJvbWlzZSkpIHtcbiAgICB0aGlzLmxvZy53YXJuKGBSZWNlaXZlZCBhc3luYyByZXNwb25zZSB3aGVuIHdlIHdlcmUgbm90IGV4cGVjdGluZyBvbmUhIGAgK1xuICAgICAgYFJlc3BvbnNlIHdhczogJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9YCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKHV0aWwuaGFzVmFsdWUoc3RhdHVzKSAmJiBzdGF0dXMgIT09IDApIHtcbiAgICAvLyBNSlNPTldQXG4gICAgcmV0dXJuIHRoaXMuYXN5bmNQcm9taXNlLnJlamVjdChlcnJvckZyb21Db2RlKHN0YXR1cywgdmFsdWUubWVzc2FnZSkpO1xuICB9XG4gIGlmICghdXRpbC5oYXNWYWx1ZShzdGF0dXMpICYmIHZhbHVlICYmIF8uaXNTdHJpbmcodmFsdWUuZXJyb3IpKSB7XG4gICAgLy8gVzNDXG4gICAgcmV0dXJuIHRoaXMuYXN5bmNQcm9taXNlLnJlamVjdChlcnJvckZyb21XM0NKc29uQ29kZSh2YWx1ZS5lcnJvciwgdmFsdWUubWVzc2FnZSwgdmFsdWUuc3RhY2t0cmFjZSkpO1xuICB9XG4gIHJldHVybiB0aGlzLmFzeW5jUHJvbWlzZS5yZXNvbHZlKHZhbHVlKTtcbn07XG5cbmV4dGVuc2lvbnMuZXhlY3V0ZSA9IGFzeW5jIGZ1bmN0aW9uIGV4ZWN1dGUgKHNjcmlwdCwgYXJncykge1xuICBpZiAoc2NyaXB0Lm1hdGNoKC9ebW9iaWxlOi8pKSB7XG4gICAgc2NyaXB0ID0gc2NyaXB0LnJlcGxhY2UoL15tb2JpbGU6LywgJycpLnRyaW0oKTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5leGVjdXRlTW9iaWxlKHNjcmlwdCwgXy5pc0FycmF5KGFyZ3MpID8gYXJnc1swXSA6IGFyZ3MpO1xuICB9IGVsc2UgaWYgKHRoaXMuaXNXZWJDb250ZXh0KCkpIHtcbiAgICBhcmdzID0gdGhpcy5jb252ZXJ0RWxlbWVudHNGb3JBdG9tcyhhcmdzKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmV4ZWN1dGVBdG9tKCdleGVjdXRlX3NjcmlwdCcsIFtzY3JpcHQsIGFyZ3NdKTtcbiAgICByZXR1cm4gdGhpcy5jYWNoZVdlYkVsZW1lbnRzKHJlc3VsdCk7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5Ob3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gIH1cbn07XG5cbmV4dGVuc2lvbnMuZXhlY3V0ZUFzeW5jID0gYXN5bmMgZnVuY3Rpb24gZXhlY3V0ZUFzeW5jIChzY3JpcHQsIGFyZ3MpIHtcbiAgaWYgKCF0aGlzLmlzV2ViQ29udGV4dCgpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5Ob3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gIH1cblxuICBhcmdzID0gdGhpcy5jb252ZXJ0RWxlbWVudHNGb3JBdG9tcyhhcmdzKTtcbiAgdGhpcy5hc3luY1dhaXRNcyA9IHRoaXMuYXN5bmNXYWl0TXMgfHwgMDtcbiAgY29uc3QgcHJvbWlzZSA9IHRoaXMucmVtb3RlLmV4ZWN1dGVBdG9tQXN5bmMoJ2V4ZWN1dGVfYXN5bmNfc2NyaXB0JywgW1xuICAgIHNjcmlwdCwgYXJncywgdGhpcy5hc3luY1dhaXRNc1xuICBdLCB0aGlzLmN1cldlYkZyYW1lcyk7XG4gIHJldHVybiB0aGlzLmNhY2hlV2ViRWxlbWVudHMoYXdhaXQgdGhpcy53YWl0Rm9yQXRvbShwcm9taXNlKSk7XG59O1xuXG5leHRlbnNpb25zLmV4ZWN1dGVNb2JpbGUgPSBhc3luYyBmdW5jdGlvbiBleGVjdXRlTW9iaWxlIChtb2JpbGVDb21tYW5kLCBvcHRzID0ge30pIHtcbiAgY29uc3QgY29tbWFuZE1hcCA9IHtcbiAgICAvL3JlZ2lvbiBnZXN0dXJlcyBzdXBwb3J0XG4gICAgdGFwOiAnbW9iaWxlVGFwJyxcbiAgICBzY3JvbGw6ICdtb2JpbGVTY3JvbGwnLFxuICAgIHNlbGVjdFBpY2tlcldoZWVsVmFsdWU6ICdtb2JpbGVTZWxlY3RQaWNrZXJXaGVlbFZhbHVlJyxcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi94Y3Rlc3QveGN1aWVsZW1lbnQvMTYxODY2OC1zd2lwZWxlZnQ/bGFuZ3VhZ2U9b2JqY1xuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpZWxlbWVudC8xNjE4Njc0LXN3aXBlcmlnaHQ/bGFuZ3VhZ2U9b2JqY1xuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpZWxlbWVudC8xNjE4NjY3LXN3aXBldXA/bGFuZ3VhZ2U9b2JqY1xuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpZWxlbWVudC8xNjE4NjY0LXN3aXBlZG93bj9sYW5ndWFnZT1vYmpjXG4gICAgc3dpcGU6ICdtb2JpbGVTd2lwZScsXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24veGN0ZXN0L3hjdWllbGVtZW50LzE2MTg2NjktcGluY2h3aXRoc2NhbGU/bGFuZ3VhZ2U9b2JqY1xuICAgIHBpbmNoOiAnbW9iaWxlUGluY2gnLFxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpZWxlbWVudC8xNjE4NjczLWRvdWJsZXRhcD9sYW5ndWFnZT1vYmpjXG4gICAgZG91YmxlVGFwOiAnbW9iaWxlRG91YmxlVGFwJyxcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi94Y3Rlc3QveGN1aWVsZW1lbnQvMTYxODY3NS10d29maW5nZXJ0YXA/bGFuZ3VhZ2U9b2JqY1xuICAgIHR3b0ZpbmdlclRhcDogJ21vYmlsZVR3b0ZpbmdlclRhcCcsXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24veGN0ZXN0L3hjdWllbGVtZW50LzE2MTg2NzEtdGFwd2l0aG51bWJlcm9mdGFwcz9sYW5ndWFnZT1vYmpjXG4gICAgdGFwV2l0aE51bWJlck9mVGFwczogJ21vYmlsZVRhcFdpdGhOdW1iZXJPZlRhcHMnLFxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpZWxlbWVudC8xNjE4NjYzLXByZXNzZm9yZHVyYXRpb24/bGFuZ3VhZ2U9b2JqY1xuICAgIHRvdWNoQW5kSG9sZDogJ21vYmlsZVRvdWNoQW5kSG9sZCcsXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24veGN0ZXN0L3hjdWllbGVtZW50LzE2MTg2NzAtcHJlc3Nmb3JkdXJhdGlvbj9sYW5ndWFnZT1vYmpjXG4gICAgZHJhZ0Zyb21Ub0ZvckR1cmF0aW9uOiAnbW9iaWxlRHJhZ0Zyb21Ub0ZvckR1cmF0aW9uJyxcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi94Y3Rlc3QveGN1aWVsZW1lbnQvMTYxODY2NS1yb3RhdGU/bGFuZ3VhZ2U9b2JqY1xuICAgIHJvdGF0ZUVsZW1lbnQ6ICdtb2JpbGVSb3RhdGVFbGVtZW50JyxcbiAgICBmb3JjZVByZXNzOiAnbW9iaWxlRm9yY2VQcmVzcycsXG4gICAgc2Nyb2xsVG9FbGVtZW50OiAnbW9iaWxlU2Nyb2xsVG9FbGVtZW50JyxcblxuICAgIC8vZW5kcmVnaW9uIGdlc3R1cmVzIHN1cHBvcnRcbiAgICBhbGVydDogJ21vYmlsZUhhbmRsZUFsZXJ0JyxcblxuICAgIHNldFBhc3RlYm9hcmQ6ICdtb2JpbGVTZXRQYXN0ZWJvYXJkJyxcbiAgICBnZXRQYXN0ZWJvYXJkOiAnbW9iaWxlR2V0UGFzdGVib2FyZCcsXG5cbiAgICBzb3VyY2U6ICdtb2JpbGVHZXRTb3VyY2UnLFxuICAgIGdldENvbnRleHRzOiAnbW9iaWxlR2V0Q29udGV4dHMnLFxuXG4gICAgLy9yZWdpb24gbXVsdGlwbGUgYXBwcyBtYW5hZ2VtZW50XG4gICAgaW5zdGFsbEFwcDogJ21vYmlsZUluc3RhbGxBcHAnLFxuICAgIGlzQXBwSW5zdGFsbGVkOiAnbW9iaWxlSXNBcHBJbnN0YWxsZWQnLFxuICAgIHJlbW92ZUFwcDogJ21vYmlsZVJlbW92ZUFwcCcsXG4gICAgbGF1bmNoQXBwOiAnbW9iaWxlTGF1bmNoQXBwJyxcbiAgICB0ZXJtaW5hdGVBcHA6ICdtb2JpbGVUZXJtaW5hdGVBcHAnLFxuICAgIGtpbGxBcHA6ICdtb2JpbGVLaWxsQXBwJyxcbiAgICBxdWVyeUFwcFN0YXRlOiAnbW9iaWxlUXVlcnlBcHBTdGF0ZScsXG4gICAgYWN0aXZhdGVBcHA6ICdtb2JpbGVBY3RpdmF0ZUFwcCcsXG4gICAgbGlzdEFwcHM6ICdtb2JpbGVMaXN0QXBwcycsXG4gICAgLy9lbmRyZWdpb24gbXVsdGlwbGUgYXBwcyBtYW5hZ2VtZW50XG5cbiAgICB2aWV3cG9ydFNjcmVlbnNob3Q6ICdnZXRWaWV3cG9ydFNjcmVlbnNob3QnLFxuICAgIHZpZXdwb3J0UmVjdDogJ2dldFZpZXdwb3J0UmVjdCcsXG5cbiAgICBzdGFydFBlcmZSZWNvcmQ6ICdtb2JpbGVTdGFydFBlcmZSZWNvcmQnLFxuICAgIHN0b3BQZXJmUmVjb3JkOiAnbW9iaWxlU3RvcFBlcmZSZWNvcmQnLFxuXG4gICAgaW5zdGFsbENlcnRpZmljYXRlOiAnbW9iaWxlSW5zdGFsbENlcnRpZmljYXRlJyxcblxuICAgIHN0YXJ0TG9nc0Jyb2FkY2FzdDogJ21vYmlsZVN0YXJ0TG9nc0Jyb2FkY2FzdCcsXG4gICAgc3RvcExvZ3NCcm9hZGNhc3Q6ICdtb2JpbGVTdG9wTG9nc0Jyb2FkY2FzdCcsXG5cbiAgICBiYXR0ZXJ5SW5mbzogJ21vYmlsZUdldEJhdHRlcnlJbmZvJyxcbiAgICBkZXZpY2VJbmZvOiAnbW9iaWxlR2V0RGV2aWNlSW5mbycsXG4gICAgZ2V0RGV2aWNlVGltZTogJ21vYmlsZUdldERldmljZVRpbWUnLFxuICAgIGFjdGl2ZUFwcEluZm86ICdtb2JpbGVHZXRBY3RpdmVBcHBJbmZvJyxcbiAgICBkZXZpY2VTY3JlZW5JbmZvOiAnZ2V0U2NyZWVuSW5mbycsXG5cbiAgICBwcmVzc0J1dHRvbjogJ21vYmlsZVByZXNzQnV0dG9uJyxcblxuICAgIGVucm9sbEJpb21ldHJpYzogJ21vYmlsZUVucm9sbEJpb21ldHJpYycsXG4gICAgc2VuZEJpb21ldHJpY01hdGNoOiAnbW9iaWxlU2VuZEJpb21ldHJpY01hdGNoJyxcbiAgICBpc0Jpb21ldHJpY0Vucm9sbGVkOiAnbW9iaWxlSXNCaW9tZXRyaWNFbnJvbGxlZCcsXG5cbiAgICBjbGVhcktleWNoYWluczogJ21vYmlsZUNsZWFyS2V5Y2hhaW5zJyxcblxuICAgIGdldFBlcm1pc3Npb246ICdtb2JpbGVHZXRQZXJtaXNzaW9uJyxcbiAgICBzZXRQZXJtaXNzaW9uOiAnbW9iaWxlU2V0UGVybWlzc2lvbnMnLFxuICAgIHJlc2V0UGVybWlzc2lvbjogJ21vYmlsZVJlc2V0UGVybWlzc2lvbicsXG5cbiAgICBnZXRBcHBlYXJhbmNlOiAnbW9iaWxlR2V0QXBwZWFyYW5jZScsXG4gICAgc2V0QXBwZWFyYW5jZTogJ21vYmlsZVNldEFwcGVhcmFuY2UnLFxuXG4gICAgc2lyaUNvbW1hbmQ6ICdtb2JpbGVTaXJpQ29tbWFuZCcsXG5cbiAgICBkZWxldGVGaWxlOiAnbW9iaWxlRGVsZXRlRmlsZScsXG4gICAgZGVsZXRlRm9sZGVyOiAnbW9iaWxlRGVsZXRlRm9sZGVyJyxcblxuICAgIHN0YXJ0QXVkaW9SZWNvcmRpbmc6ICdzdGFydEF1ZGlvUmVjb3JkaW5nJyxcbiAgICBzdG9wQXVkaW9SZWNvcmRpbmc6ICdzdG9wQXVkaW9SZWNvcmRpbmcnLFxuXG4gICAgLy8gWENUZXN0XG4gICAgcnVuWENUZXN0OiAnbW9iaWxlUnVuWENUZXN0JyxcbiAgICBpbnN0YWxsWENUZXN0QnVuZGxlOiAnbW9iaWxlSW5zdGFsbFhDVGVzdEJ1bmRsZScsXG4gICAgbGlzdFhDVGVzdEJ1bmRsZXM6ICdtb2JpbGVMaXN0WENUZXN0QnVuZGxlcycsXG4gICAgbGlzdFhDVGVzdHNJblRlc3RCdW5kbGU6ICdtb2JpbGVMaXN0WENUZXN0c0luVGVzdEJ1bmRsZScsXG5cbiAgICBwdXNoTm90aWZpY2F0aW9uOiAnbW9iaWxlUHVzaE5vdGlmaWNhdGlvbicsXG4gICAgZXhwZWN0Tm90aWZpY2F0aW9uOiAnbW9iaWxlRXhwZWN0Tm90aWZpY2F0aW9uJyxcblxuICAgIHBlcmZvcm1Jb0hpZEV2ZW50OiAnbW9iaWxlUGVyZm9ybUlvSGlkRXZlbnQnLFxuXG4gICAgY29uZmlndXJlTG9jYWxpemF0aW9uOiAnbW9iaWxlQ29uZmlndXJlTG9jYWxpemF0aW9uJyxcblxuICAgIHJlc2V0TG9jYXRpb25TZXJ2aWNlOiAnbW9iaWxlUmVzZXRMb2NhdGlvblNlcnZpY2UnLFxuXG4gICAgc3RhcnRQY2FwOiAnbW9iaWxlU3RhcnRQY2FwJyxcbiAgICBzdG9wUGNhcDogJ21vYmlsZVN0b3BQY2FwJyxcbiAgfTtcblxuICBpZiAoIV8uaGFzKGNvbW1hbmRNYXAsIG1vYmlsZUNvbW1hbmQpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5Vbmtub3duQ29tbWFuZEVycm9yKGBVbmtub3duIG1vYmlsZSBjb21tYW5kICcke21vYmlsZUNvbW1hbmR9Jy4gT25seSAke18ua2V5cyhjb21tYW5kTWFwKS5qb2luKCcsICcpfSBjb21tYW5kcyBhcmUgc3VwcG9ydGVkLmApO1xuICB9XG4gIHJldHVybiBhd2FpdCB0aGlzW2NvbW1hbmRNYXBbbW9iaWxlQ29tbWFuZF1dKG9wdHMpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZXh0ZW5zaW9ucztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFHQTs7QUFFQSxNQUFNQSxVQUFVLEdBQUcsRUFBbkI7O0FBRUFBLFVBQVUsQ0FBQ0Msb0JBQVgsR0FBa0MsZUFBZUEsb0JBQWYsQ0FBcUNDLE1BQXJDLEVBQTZDQyxLQUE3QyxFQUFvRDtFQUNwRixLQUFLQyxHQUFMLENBQVNDLEtBQVQsQ0FBZ0IsNEJBQTJCQyxJQUFJLENBQUNDLFNBQUwsQ0FBZUosS0FBZixDQUFzQixFQUFqRTs7RUFDQSxJQUFJLENBQUNLLGFBQUEsQ0FBS0MsUUFBTCxDQUFjLEtBQUtDLFlBQW5CLENBQUwsRUFBdUM7SUFDckMsS0FBS04sR0FBTCxDQUFTTyxJQUFULENBQWUsMERBQUQsR0FDWCxpQkFBZ0JMLElBQUksQ0FBQ0MsU0FBTCxDQUFlSixLQUFmLENBQXNCLEVBRHpDO0lBRUE7RUFDRDs7RUFFRCxJQUFJSyxhQUFBLENBQUtDLFFBQUwsQ0FBY1AsTUFBZCxLQUF5QkEsTUFBTSxLQUFLLENBQXhDLEVBQTJDO0lBRXpDLE9BQU8sS0FBS1EsWUFBTCxDQUFrQkUsTUFBbEIsQ0FBeUIsSUFBQUMscUJBQUEsRUFBY1gsTUFBZCxFQUFzQkMsS0FBSyxDQUFDVyxPQUE1QixDQUF6QixDQUFQO0VBQ0Q7O0VBQ0QsSUFBSSxDQUFDTixhQUFBLENBQUtDLFFBQUwsQ0FBY1AsTUFBZCxDQUFELElBQTBCQyxLQUExQixJQUFtQ1ksZUFBQSxDQUFFQyxRQUFGLENBQVdiLEtBQUssQ0FBQ2MsS0FBakIsQ0FBdkMsRUFBZ0U7SUFFOUQsT0FBTyxLQUFLUCxZQUFMLENBQWtCRSxNQUFsQixDQUF5QixJQUFBTSw0QkFBQSxFQUFxQmYsS0FBSyxDQUFDYyxLQUEzQixFQUFrQ2QsS0FBSyxDQUFDVyxPQUF4QyxFQUFpRFgsS0FBSyxDQUFDZ0IsVUFBdkQsQ0FBekIsQ0FBUDtFQUNEOztFQUNELE9BQU8sS0FBS1QsWUFBTCxDQUFrQlUsT0FBbEIsQ0FBMEJqQixLQUExQixDQUFQO0FBQ0QsQ0FqQkQ7O0FBbUJBSCxVQUFVLENBQUNxQixPQUFYLEdBQXFCLGVBQWVBLE9BQWYsQ0FBd0JDLE1BQXhCLEVBQWdDQyxJQUFoQyxFQUFzQztFQUN6RCxJQUFJRCxNQUFNLENBQUNFLEtBQVAsQ0FBYSxVQUFiLENBQUosRUFBOEI7SUFDNUJGLE1BQU0sR0FBR0EsTUFBTSxDQUFDRyxPQUFQLENBQWUsVUFBZixFQUEyQixFQUEzQixFQUErQkMsSUFBL0IsRUFBVDtJQUNBLE9BQU8sTUFBTSxLQUFLQyxhQUFMLENBQW1CTCxNQUFuQixFQUEyQlAsZUFBQSxDQUFFYSxPQUFGLENBQVVMLElBQVYsSUFBa0JBLElBQUksQ0FBQyxDQUFELENBQXRCLEdBQTRCQSxJQUF2RCxDQUFiO0VBQ0QsQ0FIRCxNQUdPLElBQUksS0FBS00sWUFBTCxFQUFKLEVBQXlCO0lBQzlCTixJQUFJLEdBQUcsS0FBS08sdUJBQUwsQ0FBNkJQLElBQTdCLENBQVA7SUFDQSxNQUFNUSxNQUFNLEdBQUcsTUFBTSxLQUFLQyxXQUFMLENBQWlCLGdCQUFqQixFQUFtQyxDQUFDVixNQUFELEVBQVNDLElBQVQsQ0FBbkMsQ0FBckI7SUFDQSxPQUFPLEtBQUtVLGdCQUFMLENBQXNCRixNQUF0QixDQUFQO0VBQ0QsQ0FKTSxNQUlBO0lBQ0wsTUFBTSxJQUFJRyxjQUFBLENBQU9DLG1CQUFYLEVBQU47RUFDRDtBQUNGLENBWEQ7O0FBYUFuQyxVQUFVLENBQUNvQyxZQUFYLEdBQTBCLGVBQWVBLFlBQWYsQ0FBNkJkLE1BQTdCLEVBQXFDQyxJQUFyQyxFQUEyQztFQUNuRSxJQUFJLENBQUMsS0FBS00sWUFBTCxFQUFMLEVBQTBCO0lBQ3hCLE1BQU0sSUFBSUssY0FBQSxDQUFPQyxtQkFBWCxFQUFOO0VBQ0Q7O0VBRURaLElBQUksR0FBRyxLQUFLTyx1QkFBTCxDQUE2QlAsSUFBN0IsQ0FBUDtFQUNBLEtBQUtjLFdBQUwsR0FBbUIsS0FBS0EsV0FBTCxJQUFvQixDQUF2QztFQUNBLE1BQU1DLE9BQU8sR0FBRyxLQUFLQyxNQUFMLENBQVlDLGdCQUFaLENBQTZCLHNCQUE3QixFQUFxRCxDQUNuRWxCLE1BRG1FLEVBQzNEQyxJQUQyRCxFQUNyRCxLQUFLYyxXQURnRCxDQUFyRCxFQUViLEtBQUtJLFlBRlEsQ0FBaEI7RUFHQSxPQUFPLEtBQUtSLGdCQUFMLENBQXNCLE1BQU0sS0FBS1MsV0FBTCxDQUFpQkosT0FBakIsQ0FBNUIsQ0FBUDtBQUNELENBWEQ7O0FBYUF0QyxVQUFVLENBQUMyQixhQUFYLEdBQTJCLGVBQWVBLGFBQWYsQ0FBOEJnQixhQUE5QixFQUE2Q0MsSUFBSSxHQUFHLEVBQXBELEVBQXdEO0VBQ2pGLE1BQU1DLFVBQVUsR0FBRztJQUVqQkMsR0FBRyxFQUFFLFdBRlk7SUFHakJDLE1BQU0sRUFBRSxjQUhTO0lBSWpCQyxzQkFBc0IsRUFBRSw4QkFKUDtJQVNqQkMsS0FBSyxFQUFFLGFBVFU7SUFXakJDLEtBQUssRUFBRSxhQVhVO0lBYWpCQyxTQUFTLEVBQUUsaUJBYk07SUFlakJDLFlBQVksRUFBRSxvQkFmRztJQWlCakJDLG1CQUFtQixFQUFFLDJCQWpCSjtJQW1CakJDLFlBQVksRUFBRSxvQkFuQkc7SUFxQmpCQyxxQkFBcUIsRUFBRSw2QkFyQk47SUF1QmpCQyxhQUFhLEVBQUUscUJBdkJFO0lBd0JqQkMsVUFBVSxFQUFFLGtCQXhCSztJQXlCakJDLGVBQWUsRUFBRSx1QkF6QkE7SUE0QmpCQyxLQUFLLEVBQUUsbUJBNUJVO0lBOEJqQkMsYUFBYSxFQUFFLHFCQTlCRTtJQStCakJDLGFBQWEsRUFBRSxxQkEvQkU7SUFpQ2pCQyxNQUFNLEVBQUUsaUJBakNTO0lBa0NqQkMsV0FBVyxFQUFFLG1CQWxDSTtJQXFDakJDLFVBQVUsRUFBRSxrQkFyQ0s7SUFzQ2pCQyxjQUFjLEVBQUUsc0JBdENDO0lBdUNqQkMsU0FBUyxFQUFFLGlCQXZDTTtJQXdDakJDLFNBQVMsRUFBRSxpQkF4Q007SUF5Q2pCQyxZQUFZLEVBQUUsb0JBekNHO0lBMENqQkMsT0FBTyxFQUFFLGVBMUNRO0lBMkNqQkMsYUFBYSxFQUFFLHFCQTNDRTtJQTRDakJDLFdBQVcsRUFBRSxtQkE1Q0k7SUE2Q2pCQyxRQUFRLEVBQUUsZ0JBN0NPO0lBZ0RqQkMsa0JBQWtCLEVBQUUsdUJBaERIO0lBaURqQkMsWUFBWSxFQUFFLGlCQWpERztJQW1EakJDLGVBQWUsRUFBRSx1QkFuREE7SUFvRGpCQyxjQUFjLEVBQUUsc0JBcERDO0lBc0RqQkMsa0JBQWtCLEVBQUUsMEJBdERIO0lBd0RqQkMsa0JBQWtCLEVBQUUsMEJBeERIO0lBeURqQkMsaUJBQWlCLEVBQUUseUJBekRGO0lBMkRqQkMsV0FBVyxFQUFFLHNCQTNESTtJQTREakJDLFVBQVUsRUFBRSxxQkE1REs7SUE2RGpCQyxhQUFhLEVBQUUscUJBN0RFO0lBOERqQkMsYUFBYSxFQUFFLHdCQTlERTtJQStEakJDLGdCQUFnQixFQUFFLGVBL0REO0lBaUVqQkMsV0FBVyxFQUFFLG1CQWpFSTtJQW1FakJDLGVBQWUsRUFBRSx1QkFuRUE7SUFvRWpCQyxrQkFBa0IsRUFBRSwwQkFwRUg7SUFxRWpCQyxtQkFBbUIsRUFBRSwyQkFyRUo7SUF1RWpCQyxjQUFjLEVBQUUsc0JBdkVDO0lBeUVqQkMsYUFBYSxFQUFFLHFCQXpFRTtJQTBFakJDLGFBQWEsRUFBRSxzQkExRUU7SUEyRWpCQyxlQUFlLEVBQUUsdUJBM0VBO0lBNkVqQkMsYUFBYSxFQUFFLHFCQTdFRTtJQThFakJDLGFBQWEsRUFBRSxxQkE5RUU7SUFnRmpCQyxXQUFXLEVBQUUsbUJBaEZJO0lBa0ZqQkMsVUFBVSxFQUFFLGtCQWxGSztJQW1GakJDLFlBQVksRUFBRSxvQkFuRkc7SUFxRmpCQyxtQkFBbUIsRUFBRSxxQkFyRko7SUFzRmpCQyxrQkFBa0IsRUFBRSxvQkF0Rkg7SUF5RmpCQyxTQUFTLEVBQUUsaUJBekZNO0lBMEZqQkMsbUJBQW1CLEVBQUUsMkJBMUZKO0lBMkZqQkMsaUJBQWlCLEVBQUUseUJBM0ZGO0lBNEZqQkMsdUJBQXVCLEVBQUUsK0JBNUZSO0lBOEZqQkMsZ0JBQWdCLEVBQUUsd0JBOUZEO0lBK0ZqQkMsa0JBQWtCLEVBQUUsMEJBL0ZIO0lBaUdqQkMsaUJBQWlCLEVBQUUseUJBakdGO0lBbUdqQkMscUJBQXFCLEVBQUUsNkJBbkdOO0lBcUdqQkMsb0JBQW9CLEVBQUUsNEJBckdMO0lBdUdqQkMsU0FBUyxFQUFFLGlCQXZHTTtJQXdHakJDLFFBQVEsRUFBRTtFQXhHTyxDQUFuQjs7RUEyR0EsSUFBSSxDQUFDL0YsZUFBQSxDQUFFZ0csR0FBRixDQUFNbEUsVUFBTixFQUFrQkYsYUFBbEIsQ0FBTCxFQUF1QztJQUNyQyxNQUFNLElBQUlULGNBQUEsQ0FBTzhFLG1CQUFYLENBQWdDLDJCQUEwQnJFLGFBQWMsV0FBVTVCLGVBQUEsQ0FBRWtHLElBQUYsQ0FBT3BFLFVBQVAsRUFBbUJxRSxJQUFuQixDQUF3QixJQUF4QixDQUE4QiwwQkFBaEgsQ0FBTjtFQUNEOztFQUNELE9BQU8sTUFBTSxLQUFLckUsVUFBVSxDQUFDRixhQUFELENBQWYsRUFBZ0NDLElBQWhDLENBQWI7QUFDRCxDQWhIRDs7ZUFrSGU1QyxVIn0=
146
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2V4ZWN1dGUuanMiLCJuYW1lcyI6WyJleHRlbnNpb25zIiwicmVjZWl2ZUFzeW5jUmVzcG9uc2UiLCJzdGF0dXMiLCJ2YWx1ZSIsImxvZyIsImRlYnVnIiwiSlNPTiIsInN0cmluZ2lmeSIsInV0aWwiLCJoYXNWYWx1ZSIsImFzeW5jUHJvbWlzZSIsIndhcm4iLCJyZWplY3QiLCJlcnJvckZyb21Db2RlIiwibWVzc2FnZSIsIl8iLCJpc1N0cmluZyIsImVycm9yIiwiZXJyb3JGcm9tVzNDSnNvbkNvZGUiLCJzdGFja3RyYWNlIiwicmVzb2x2ZSIsImV4ZWN1dGUiLCJzY3JpcHQiLCJhcmdzIiwibWF0Y2giLCJyZXBsYWNlIiwidHJpbSIsImV4ZWN1dGVNb2JpbGUiLCJpc0FycmF5IiwiaXNXZWJDb250ZXh0IiwiY29udmVydEVsZW1lbnRzRm9yQXRvbXMiLCJyZXN1bHQiLCJleGVjdXRlQXRvbSIsImNhY2hlV2ViRWxlbWVudHMiLCJlcnJvcnMiLCJOb3RJbXBsZW1lbnRlZEVycm9yIiwiZXhlY3V0ZUFzeW5jIiwiYXN5bmNXYWl0TXMiLCJwcm9taXNlIiwicmVtb3RlIiwiZXhlY3V0ZUF0b21Bc3luYyIsImN1cldlYkZyYW1lcyIsIndhaXRGb3JBdG9tIiwibW9iaWxlQ29tbWFuZCIsIm9wdHMiLCJjb21tYW5kTWFwIiwidGFwIiwic2Nyb2xsIiwic2VsZWN0UGlja2VyV2hlZWxWYWx1ZSIsInN3aXBlIiwicGluY2giLCJkb3VibGVUYXAiLCJ0d29GaW5nZXJUYXAiLCJ0YXBXaXRoTnVtYmVyT2ZUYXBzIiwidG91Y2hBbmRIb2xkIiwiZHJhZ0Zyb21Ub0ZvckR1cmF0aW9uIiwicm90YXRlRWxlbWVudCIsImZvcmNlUHJlc3MiLCJzY3JvbGxUb0VsZW1lbnQiLCJhbGVydCIsInNldFBhc3RlYm9hcmQiLCJnZXRQYXN0ZWJvYXJkIiwic291cmNlIiwiZ2V0Q29udGV4dHMiLCJpbnN0YWxsQXBwIiwiaXNBcHBJbnN0YWxsZWQiLCJyZW1vdmVBcHAiLCJsYXVuY2hBcHAiLCJ0ZXJtaW5hdGVBcHAiLCJraWxsQXBwIiwicXVlcnlBcHBTdGF0ZSIsImFjdGl2YXRlQXBwIiwibGlzdEFwcHMiLCJ2aWV3cG9ydFNjcmVlbnNob3QiLCJ2aWV3cG9ydFJlY3QiLCJzdGFydFBlcmZSZWNvcmQiLCJzdG9wUGVyZlJlY29yZCIsImluc3RhbGxDZXJ0aWZpY2F0ZSIsInN0YXJ0TG9nc0Jyb2FkY2FzdCIsInN0b3BMb2dzQnJvYWRjYXN0IiwiYmF0dGVyeUluZm8iLCJkZXZpY2VJbmZvIiwiZ2V0RGV2aWNlVGltZSIsImFjdGl2ZUFwcEluZm8iLCJkZXZpY2VTY3JlZW5JbmZvIiwicHJlc3NCdXR0b24iLCJlbnJvbGxCaW9tZXRyaWMiLCJzZW5kQmlvbWV0cmljTWF0Y2giLCJpc0Jpb21ldHJpY0Vucm9sbGVkIiwiY2xlYXJLZXljaGFpbnMiLCJnZXRQZXJtaXNzaW9uIiwic2V0UGVybWlzc2lvbiIsInJlc2V0UGVybWlzc2lvbiIsImdldEFwcGVhcmFuY2UiLCJzZXRBcHBlYXJhbmNlIiwic2lyaUNvbW1hbmQiLCJkZWxldGVGaWxlIiwiZGVsZXRlRm9sZGVyIiwic3RhcnRBdWRpb1JlY29yZGluZyIsInN0b3BBdWRpb1JlY29yZGluZyIsInJ1blhDVGVzdCIsImluc3RhbGxYQ1Rlc3RCdW5kbGUiLCJsaXN0WENUZXN0QnVuZGxlcyIsImxpc3RYQ1Rlc3RzSW5UZXN0QnVuZGxlIiwicHVzaE5vdGlmaWNhdGlvbiIsImV4cGVjdE5vdGlmaWNhdGlvbiIsInBlcmZvcm1Jb0hpZEV2ZW50IiwiY29uZmlndXJlTG9jYWxpemF0aW9uIiwicmVzZXRMb2NhdGlvblNlcnZpY2UiLCJzdGFydFBjYXAiLCJzdG9wUGNhcCIsImxpc3RDb25kaXRpb25JbmR1Y2VycyIsImVuYWJsZUNvbmRpdGlvbkluZHVjZXIiLCJkaXNhYmxlQ29uZGl0aW9uSW5kdWNlciIsImhhcyIsIlVua25vd25Db21tYW5kRXJyb3IiLCJrZXlzIiwiam9pbiJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9leGVjdXRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge1xuICBlcnJvcnMsIGVycm9yRnJvbUNvZGUsIGVycm9yRnJvbVczQ0pzb25Db2RlXG59IGZyb20gJ2FwcGl1bS9kcml2ZXInO1xuaW1wb3J0IHsgdXRpbCB9IGZyb20gJ2FwcGl1bS9zdXBwb3J0JztcblxuY29uc3QgZXh0ZW5zaW9ucyA9IHt9O1xuXG5leHRlbnNpb25zLnJlY2VpdmVBc3luY1Jlc3BvbnNlID0gYXN5bmMgZnVuY3Rpb24gcmVjZWl2ZUFzeW5jUmVzcG9uc2UgKHN0YXR1cywgdmFsdWUpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZXF1aXJlLWF3YWl0XG4gIHRoaXMubG9nLmRlYnVnKGBSZWNlaXZlZCBhc3luYyByZXNwb25zZTogJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9YCk7XG4gIGlmICghdXRpbC5oYXNWYWx1ZSh0aGlzLmFzeW5jUHJvbWlzZSkpIHtcbiAgICB0aGlzLmxvZy53YXJuKGBSZWNlaXZlZCBhc3luYyByZXNwb25zZSB3aGVuIHdlIHdlcmUgbm90IGV4cGVjdGluZyBvbmUhIGAgK1xuICAgICAgYFJlc3BvbnNlIHdhczogJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9YCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKHV0aWwuaGFzVmFsdWUoc3RhdHVzKSAmJiBzdGF0dXMgIT09IDApIHtcbiAgICAvLyBNSlNPTldQXG4gICAgcmV0dXJuIHRoaXMuYXN5bmNQcm9taXNlLnJlamVjdChlcnJvckZyb21Db2RlKHN0YXR1cywgdmFsdWUubWVzc2FnZSkpO1xuICB9XG4gIGlmICghdXRpbC5oYXNWYWx1ZShzdGF0dXMpICYmIHZhbHVlICYmIF8uaXNTdHJpbmcodmFsdWUuZXJyb3IpKSB7XG4gICAgLy8gVzNDXG4gICAgcmV0dXJuIHRoaXMuYXN5bmNQcm9taXNlLnJlamVjdChlcnJvckZyb21XM0NKc29uQ29kZSh2YWx1ZS5lcnJvciwgdmFsdWUubWVzc2FnZSwgdmFsdWUuc3RhY2t0cmFjZSkpO1xuICB9XG4gIHJldHVybiB0aGlzLmFzeW5jUHJvbWlzZS5yZXNvbHZlKHZhbHVlKTtcbn07XG5cbmV4dGVuc2lvbnMuZXhlY3V0ZSA9IGFzeW5jIGZ1bmN0aW9uIGV4ZWN1dGUgKHNjcmlwdCwgYXJncykge1xuICBpZiAoc2NyaXB0Lm1hdGNoKC9ebW9iaWxlOi8pKSB7XG4gICAgc2NyaXB0ID0gc2NyaXB0LnJlcGxhY2UoL15tb2JpbGU6LywgJycpLnRyaW0oKTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5leGVjdXRlTW9iaWxlKHNjcmlwdCwgXy5pc0FycmF5KGFyZ3MpID8gYXJnc1swXSA6IGFyZ3MpO1xuICB9IGVsc2UgaWYgKHRoaXMuaXNXZWJDb250ZXh0KCkpIHtcbiAgICBhcmdzID0gdGhpcy5jb252ZXJ0RWxlbWVudHNGb3JBdG9tcyhhcmdzKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmV4ZWN1dGVBdG9tKCdleGVjdXRlX3NjcmlwdCcsIFtzY3JpcHQsIGFyZ3NdKTtcbiAgICByZXR1cm4gdGhpcy5jYWNoZVdlYkVsZW1lbnRzKHJlc3VsdCk7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5Ob3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gIH1cbn07XG5cbmV4dGVuc2lvbnMuZXhlY3V0ZUFzeW5jID0gYXN5bmMgZnVuY3Rpb24gZXhlY3V0ZUFzeW5jIChzY3JpcHQsIGFyZ3MpIHtcbiAgaWYgKCF0aGlzLmlzV2ViQ29udGV4dCgpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5Ob3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gIH1cblxuICBhcmdzID0gdGhpcy5jb252ZXJ0RWxlbWVudHNGb3JBdG9tcyhhcmdzKTtcbiAgdGhpcy5hc3luY1dhaXRNcyA9IHRoaXMuYXN5bmNXYWl0TXMgfHwgMDtcbiAgY29uc3QgcHJvbWlzZSA9IHRoaXMucmVtb3RlLmV4ZWN1dGVBdG9tQXN5bmMoJ2V4ZWN1dGVfYXN5bmNfc2NyaXB0JywgW1xuICAgIHNjcmlwdCwgYXJncywgdGhpcy5hc3luY1dhaXRNc1xuICBdLCB0aGlzLmN1cldlYkZyYW1lcyk7XG4gIHJldHVybiB0aGlzLmNhY2hlV2ViRWxlbWVudHMoYXdhaXQgdGhpcy53YWl0Rm9yQXRvbShwcm9taXNlKSk7XG59O1xuXG5leHRlbnNpb25zLmV4ZWN1dGVNb2JpbGUgPSBhc3luYyBmdW5jdGlvbiBleGVjdXRlTW9iaWxlIChtb2JpbGVDb21tYW5kLCBvcHRzID0ge30pIHtcbiAgY29uc3QgY29tbWFuZE1hcCA9IHtcbiAgICAvL3JlZ2lvbiBnZXN0dXJlcyBzdXBwb3J0XG4gICAgdGFwOiAnbW9iaWxlVGFwJyxcbiAgICBzY3JvbGw6ICdtb2JpbGVTY3JvbGwnLFxuICAgIHNlbGVjdFBpY2tlcldoZWVsVmFsdWU6ICdtb2JpbGVTZWxlY3RQaWNrZXJXaGVlbFZhbHVlJyxcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi94Y3Rlc3QveGN1aWVsZW1lbnQvMTYxODY2OC1zd2lwZWxlZnQ/bGFuZ3VhZ2U9b2JqY1xuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpZWxlbWVudC8xNjE4Njc0LXN3aXBlcmlnaHQ/bGFuZ3VhZ2U9b2JqY1xuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpZWxlbWVudC8xNjE4NjY3LXN3aXBldXA/bGFuZ3VhZ2U9b2JqY1xuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpZWxlbWVudC8xNjE4NjY0LXN3aXBlZG93bj9sYW5ndWFnZT1vYmpjXG4gICAgc3dpcGU6ICdtb2JpbGVTd2lwZScsXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24veGN0ZXN0L3hjdWllbGVtZW50LzE2MTg2NjktcGluY2h3aXRoc2NhbGU/bGFuZ3VhZ2U9b2JqY1xuICAgIHBpbmNoOiAnbW9iaWxlUGluY2gnLFxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpZWxlbWVudC8xNjE4NjczLWRvdWJsZXRhcD9sYW5ndWFnZT1vYmpjXG4gICAgZG91YmxlVGFwOiAnbW9iaWxlRG91YmxlVGFwJyxcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi94Y3Rlc3QveGN1aWVsZW1lbnQvMTYxODY3NS10d29maW5nZXJ0YXA/bGFuZ3VhZ2U9b2JqY1xuICAgIHR3b0ZpbmdlclRhcDogJ21vYmlsZVR3b0ZpbmdlclRhcCcsXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24veGN0ZXN0L3hjdWllbGVtZW50LzE2MTg2NzEtdGFwd2l0aG51bWJlcm9mdGFwcz9sYW5ndWFnZT1vYmpjXG4gICAgdGFwV2l0aE51bWJlck9mVGFwczogJ21vYmlsZVRhcFdpdGhOdW1iZXJPZlRhcHMnLFxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpZWxlbWVudC8xNjE4NjYzLXByZXNzZm9yZHVyYXRpb24/bGFuZ3VhZ2U9b2JqY1xuICAgIHRvdWNoQW5kSG9sZDogJ21vYmlsZVRvdWNoQW5kSG9sZCcsXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24veGN0ZXN0L3hjdWllbGVtZW50LzE2MTg2NzAtcHJlc3Nmb3JkdXJhdGlvbj9sYW5ndWFnZT1vYmpjXG4gICAgZHJhZ0Zyb21Ub0ZvckR1cmF0aW9uOiAnbW9iaWxlRHJhZ0Zyb21Ub0ZvckR1cmF0aW9uJyxcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi94Y3Rlc3QveGN1aWVsZW1lbnQvMTYxODY2NS1yb3RhdGU/bGFuZ3VhZ2U9b2JqY1xuICAgIHJvdGF0ZUVsZW1lbnQ6ICdtb2JpbGVSb3RhdGVFbGVtZW50JyxcbiAgICBmb3JjZVByZXNzOiAnbW9iaWxlRm9yY2VQcmVzcycsXG4gICAgc2Nyb2xsVG9FbGVtZW50OiAnbW9iaWxlU2Nyb2xsVG9FbGVtZW50JyxcblxuICAgIC8vZW5kcmVnaW9uIGdlc3R1cmVzIHN1cHBvcnRcbiAgICBhbGVydDogJ21vYmlsZUhhbmRsZUFsZXJ0JyxcblxuICAgIHNldFBhc3RlYm9hcmQ6ICdtb2JpbGVTZXRQYXN0ZWJvYXJkJyxcbiAgICBnZXRQYXN0ZWJvYXJkOiAnbW9iaWxlR2V0UGFzdGVib2FyZCcsXG5cbiAgICBzb3VyY2U6ICdtb2JpbGVHZXRTb3VyY2UnLFxuICAgIGdldENvbnRleHRzOiAnbW9iaWxlR2V0Q29udGV4dHMnLFxuXG4gICAgLy9yZWdpb24gbXVsdGlwbGUgYXBwcyBtYW5hZ2VtZW50XG4gICAgaW5zdGFsbEFwcDogJ21vYmlsZUluc3RhbGxBcHAnLFxuICAgIGlzQXBwSW5zdGFsbGVkOiAnbW9iaWxlSXNBcHBJbnN0YWxsZWQnLFxuICAgIHJlbW92ZUFwcDogJ21vYmlsZVJlbW92ZUFwcCcsXG4gICAgbGF1bmNoQXBwOiAnbW9iaWxlTGF1bmNoQXBwJyxcbiAgICB0ZXJtaW5hdGVBcHA6ICdtb2JpbGVUZXJtaW5hdGVBcHAnLFxuICAgIGtpbGxBcHA6ICdtb2JpbGVLaWxsQXBwJyxcbiAgICBxdWVyeUFwcFN0YXRlOiAnbW9iaWxlUXVlcnlBcHBTdGF0ZScsXG4gICAgYWN0aXZhdGVBcHA6ICdtb2JpbGVBY3RpdmF0ZUFwcCcsXG4gICAgbGlzdEFwcHM6ICdtb2JpbGVMaXN0QXBwcycsXG4gICAgLy9lbmRyZWdpb24gbXVsdGlwbGUgYXBwcyBtYW5hZ2VtZW50XG5cbiAgICB2aWV3cG9ydFNjcmVlbnNob3Q6ICdnZXRWaWV3cG9ydFNjcmVlbnNob3QnLFxuICAgIHZpZXdwb3J0UmVjdDogJ2dldFZpZXdwb3J0UmVjdCcsXG5cbiAgICBzdGFydFBlcmZSZWNvcmQ6ICdtb2JpbGVTdGFydFBlcmZSZWNvcmQnLFxuICAgIHN0b3BQZXJmUmVjb3JkOiAnbW9iaWxlU3RvcFBlcmZSZWNvcmQnLFxuXG4gICAgaW5zdGFsbENlcnRpZmljYXRlOiAnbW9iaWxlSW5zdGFsbENlcnRpZmljYXRlJyxcblxuICAgIHN0YXJ0TG9nc0Jyb2FkY2FzdDogJ21vYmlsZVN0YXJ0TG9nc0Jyb2FkY2FzdCcsXG4gICAgc3RvcExvZ3NCcm9hZGNhc3Q6ICdtb2JpbGVTdG9wTG9nc0Jyb2FkY2FzdCcsXG5cbiAgICBiYXR0ZXJ5SW5mbzogJ21vYmlsZUdldEJhdHRlcnlJbmZvJyxcbiAgICBkZXZpY2VJbmZvOiAnbW9iaWxlR2V0RGV2aWNlSW5mbycsXG4gICAgZ2V0RGV2aWNlVGltZTogJ21vYmlsZUdldERldmljZVRpbWUnLFxuICAgIGFjdGl2ZUFwcEluZm86ICdtb2JpbGVHZXRBY3RpdmVBcHBJbmZvJyxcbiAgICBkZXZpY2VTY3JlZW5JbmZvOiAnZ2V0U2NyZWVuSW5mbycsXG5cbiAgICBwcmVzc0J1dHRvbjogJ21vYmlsZVByZXNzQnV0dG9uJyxcblxuICAgIGVucm9sbEJpb21ldHJpYzogJ21vYmlsZUVucm9sbEJpb21ldHJpYycsXG4gICAgc2VuZEJpb21ldHJpY01hdGNoOiAnbW9iaWxlU2VuZEJpb21ldHJpY01hdGNoJyxcbiAgICBpc0Jpb21ldHJpY0Vucm9sbGVkOiAnbW9iaWxlSXNCaW9tZXRyaWNFbnJvbGxlZCcsXG5cbiAgICBjbGVhcktleWNoYWluczogJ21vYmlsZUNsZWFyS2V5Y2hhaW5zJyxcblxuICAgIGdldFBlcm1pc3Npb246ICdtb2JpbGVHZXRQZXJtaXNzaW9uJyxcbiAgICBzZXRQZXJtaXNzaW9uOiAnbW9iaWxlU2V0UGVybWlzc2lvbnMnLFxuICAgIHJlc2V0UGVybWlzc2lvbjogJ21vYmlsZVJlc2V0UGVybWlzc2lvbicsXG5cbiAgICBnZXRBcHBlYXJhbmNlOiAnbW9iaWxlR2V0QXBwZWFyYW5jZScsXG4gICAgc2V0QXBwZWFyYW5jZTogJ21vYmlsZVNldEFwcGVhcmFuY2UnLFxuXG4gICAgc2lyaUNvbW1hbmQ6ICdtb2JpbGVTaXJpQ29tbWFuZCcsXG5cbiAgICBkZWxldGVGaWxlOiAnbW9iaWxlRGVsZXRlRmlsZScsXG4gICAgZGVsZXRlRm9sZGVyOiAnbW9iaWxlRGVsZXRlRm9sZGVyJyxcblxuICAgIHN0YXJ0QXVkaW9SZWNvcmRpbmc6ICdzdGFydEF1ZGlvUmVjb3JkaW5nJyxcbiAgICBzdG9wQXVkaW9SZWNvcmRpbmc6ICdzdG9wQXVkaW9SZWNvcmRpbmcnLFxuXG4gICAgLy8gWENUZXN0XG4gICAgcnVuWENUZXN0OiAnbW9iaWxlUnVuWENUZXN0JyxcbiAgICBpbnN0YWxsWENUZXN0QnVuZGxlOiAnbW9iaWxlSW5zdGFsbFhDVGVzdEJ1bmRsZScsXG4gICAgbGlzdFhDVGVzdEJ1bmRsZXM6ICdtb2JpbGVMaXN0WENUZXN0QnVuZGxlcycsXG4gICAgbGlzdFhDVGVzdHNJblRlc3RCdW5kbGU6ICdtb2JpbGVMaXN0WENUZXN0c0luVGVzdEJ1bmRsZScsXG5cbiAgICBwdXNoTm90aWZpY2F0aW9uOiAnbW9iaWxlUHVzaE5vdGlmaWNhdGlvbicsXG4gICAgZXhwZWN0Tm90aWZpY2F0aW9uOiAnbW9iaWxlRXhwZWN0Tm90aWZpY2F0aW9uJyxcblxuICAgIHBlcmZvcm1Jb0hpZEV2ZW50OiAnbW9iaWxlUGVyZm9ybUlvSGlkRXZlbnQnLFxuXG4gICAgY29uZmlndXJlTG9jYWxpemF0aW9uOiAnbW9iaWxlQ29uZmlndXJlTG9jYWxpemF0aW9uJyxcblxuICAgIHJlc2V0TG9jYXRpb25TZXJ2aWNlOiAnbW9iaWxlUmVzZXRMb2NhdGlvblNlcnZpY2UnLFxuXG4gICAgc3RhcnRQY2FwOiAnbW9iaWxlU3RhcnRQY2FwJyxcbiAgICBzdG9wUGNhcDogJ21vYmlsZVN0b3BQY2FwJyxcbiAgICBsaXN0Q29uZGl0aW9uSW5kdWNlcnM6ICdtb2JpbGVMaXN0Q29uZGl0aW9uSW5kdWNlcnMnLFxuICAgIGVuYWJsZUNvbmRpdGlvbkluZHVjZXI6ICdtb2JpbGVFbmFibGVDb25kaXRpb25JbmR1Y2VyJyxcbiAgICBkaXNhYmxlQ29uZGl0aW9uSW5kdWNlcjogJ21vYmlsZURpc2FibGVDb25kaXRpb25JbmR1Y2VyJyxcbiAgfTtcblxuICBpZiAoIV8uaGFzKGNvbW1hbmRNYXAsIG1vYmlsZUNvbW1hbmQpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5Vbmtub3duQ29tbWFuZEVycm9yKGBVbmtub3duIG1vYmlsZSBjb21tYW5kICcke21vYmlsZUNvbW1hbmR9Jy4gT25seSAke18ua2V5cyhjb21tYW5kTWFwKS5qb2luKCcsICcpfSBjb21tYW5kcyBhcmUgc3VwcG9ydGVkLmApO1xuICB9XG4gIHJldHVybiBhd2FpdCB0aGlzW2NvbW1hbmRNYXBbbW9iaWxlQ29tbWFuZF1dKG9wdHMpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZXh0ZW5zaW9ucztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFHQTs7QUFFQSxNQUFNQSxVQUFVLEdBQUcsRUFBbkI7O0FBRUFBLFVBQVUsQ0FBQ0Msb0JBQVgsR0FBa0MsZUFBZUEsb0JBQWYsQ0FBcUNDLE1BQXJDLEVBQTZDQyxLQUE3QyxFQUFvRDtFQUNwRixLQUFLQyxHQUFMLENBQVNDLEtBQVQsQ0FBZ0IsNEJBQTJCQyxJQUFJLENBQUNDLFNBQUwsQ0FBZUosS0FBZixDQUFzQixFQUFqRTs7RUFDQSxJQUFJLENBQUNLLGFBQUEsQ0FBS0MsUUFBTCxDQUFjLEtBQUtDLFlBQW5CLENBQUwsRUFBdUM7SUFDckMsS0FBS04sR0FBTCxDQUFTTyxJQUFULENBQWUsMERBQUQsR0FDWCxpQkFBZ0JMLElBQUksQ0FBQ0MsU0FBTCxDQUFlSixLQUFmLENBQXNCLEVBRHpDO0lBRUE7RUFDRDs7RUFFRCxJQUFJSyxhQUFBLENBQUtDLFFBQUwsQ0FBY1AsTUFBZCxLQUF5QkEsTUFBTSxLQUFLLENBQXhDLEVBQTJDO0lBRXpDLE9BQU8sS0FBS1EsWUFB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
@@ -83,10 +83,12 @@ var _localization = _interopRequireDefault(require("./localization"));
83
83
 
84
84
  var _pcap = _interopRequireDefault(require("./pcap"));
85
85
 
86
+ var _condition = _interopRequireDefault(require("./condition"));
87
+
86
88
  const commands = {};
87
- Object.assign(commands, _context.default, _execute.default, _gesture.default, _find.default, _proxyHelper.default, _source.default, _general.default, _log.default, _web.default, _timeouts.default, _navigation.default, _element.default, _fileMovement.default, _alert.default, _screenshots.default, _pasteboard.default, _location.default, _lock.default, _recordscreen.default, _appManagement.default, _performance.default, _clipboard.default, _certificate.default, _battery.default, _cookies.default, _biometric.default, _keychains.default, _permissions.default, _deviceInfo.default, _activeAppInfo.default, _recordAudio.default, _appearance.default, _xctest.default, _notifications.default, _iohid.default, _localization.default, _pcap.default);
89
+ Object.assign(commands, _context.default, _execute.default, _gesture.default, _find.default, _proxyHelper.default, _source.default, _general.default, _log.default, _web.default, _timeouts.default, _navigation.default, _element.default, _fileMovement.default, _alert.default, _screenshots.default, _pasteboard.default, _location.default, _lock.default, _recordscreen.default, _appManagement.default, _performance.default, _clipboard.default, _certificate.default, _battery.default, _cookies.default, _biometric.default, _keychains.default, _permissions.default, _deviceInfo.default, _activeAppInfo.default, _recordAudio.default, _appearance.default, _xctest.default, _notifications.default, _iohid.default, _localization.default, _pcap.default, _condition.default);
88
90
  var _default = commands;
89
91
  exports.default = _default;require('source-map-support').install();
90
92
 
91
93
 
92
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2luZGV4LmpzIiwibmFtZXMiOlsiY29tbWFuZHMiLCJPYmplY3QiLCJhc3NpZ24iLCJjb250ZXh0Q29tbWFuZHMiLCJleGVjdXRlRXh0ZW5zaW9ucyIsImdlc3R1cmVFeHRlbnNpb25zIiwiZmluZEV4dGVuc2lvbnMiLCJwcm94eUhlbHBlckV4dGVuc2lvbnMiLCJzb3VyY2VFeHRlbnNpb25zIiwiZ2VuZXJhbEV4dGVuc2lvbnMiLCJsb2dFeHRlbnNpb25zIiwid2ViRXh0ZW5zaW9ucyIsInRpbWVvdXRFeHRlbnNpb25zIiwibmF2aWdhdGlvbkV4dGVuc2lvbnMiLCJlbGVtZW50RXh0ZW5zaW9ucyIsImZpbGVNb3ZlbWVudEV4dGVuc2lvbnMiLCJhbGVydEV4dGVuc2lvbnMiLCJzY3JlZW5zaG90RXh0ZW5zaW9ucyIsInBhc3RlYm9hcmRFeHRlbnNpb25zIiwibG9jYXRpb25FeHRlbnNpb25zIiwibG9ja0V4dGVuc2lvbnMiLCJyZWNvcmRTY3JlZW5FeHRlbnNpb25zIiwiYXBwTWFuYWdlbWVudEV4dGVuc2lvbnMiLCJwZXJmb3JtYW5jZUV4dGVuc2lvbnMiLCJjbGlwYm9hcmRFeHRlbnNpb25zIiwiY2VydGlmaWNhdGVFeHRlbnNpb25zIiwiYmF0dGVyeUV4dGVuc2lvbnMiLCJjb29raWVzRXh0ZW5zaW9ucyIsImJpb21ldHJpY0V4dGVuc2lvbnMiLCJrZXljaGFpbnNFeHRlbnNpb25zIiwicGVybWlzc2lvbnNFeHRlbnNpb25zIiwiZGV2aWNlSW5mb0V4dGVuc2lvbnMiLCJhY3RpdmVBcHBJbmZvRXh0ZW5zaW9ucyIsInJlY29yZEF1ZGlvRXh0ZW5zaW9ucyIsImFwcGVhcmFuY2VFeHRlbnNpb25zIiwieGN0ZXN0RXh0ZW5zaW9ucyIsIm5vdGlmaWNhdGlvbnNFeHRlbnNpb25zIiwiaW9oaWRFeHRlbnNpb25zIiwibG9jYWxpemF0aW9uRXh0ZW5zaW9ucyIsInBjYXBFeHRlbnNpb25zIl0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLiIsInNvdXJjZXMiOlsibGliL2NvbW1hbmRzL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBjb250ZXh0Q29tbWFuZHMgZnJvbSAnLi9jb250ZXh0JztcbmltcG9ydCBleGVjdXRlRXh0ZW5zaW9ucyBmcm9tICcuL2V4ZWN1dGUnO1xuaW1wb3J0IGdlc3R1cmVFeHRlbnNpb25zIGZyb20gJy4vZ2VzdHVyZSc7XG5pbXBvcnQgZmluZEV4dGVuc2lvbnMgZnJvbSAnLi9maW5kJztcbmltcG9ydCBwcm94eUhlbHBlckV4dGVuc2lvbnMgZnJvbSAnLi9wcm94eS1oZWxwZXInO1xuaW1wb3J0IGFsZXJ0RXh0ZW5zaW9ucyBmcm9tICcuL2FsZXJ0JztcbmltcG9ydCBzb3VyY2VFeHRlbnNpb25zIGZyb20gJy4vc291cmNlJztcbmltcG9ydCBnZW5lcmFsRXh0ZW5zaW9ucyBmcm9tICcuL2dlbmVyYWwnO1xuaW1wb3J0IGxvZ0V4dGVuc2lvbnMgZnJvbSAnLi9sb2cnO1xuaW1wb3J0IHdlYkV4dGVuc2lvbnMgZnJvbSAnLi93ZWInO1xuaW1wb3J0IHRpbWVvdXRFeHRlbnNpb25zIGZyb20gJy4vdGltZW91dHMnO1xuaW1wb3J0IG5hdmlnYXRpb25FeHRlbnNpb25zIGZyb20gJy4vbmF2aWdhdGlvbic7XG5pbXBvcnQgZWxlbWVudEV4dGVuc2lvbnMgZnJvbSAnLi9lbGVtZW50JztcbmltcG9ydCBmaWxlTW92ZW1lbnRFeHRlbnNpb25zIGZyb20gJy4vZmlsZS1tb3ZlbWVudCc7XG5pbXBvcnQgc2NyZWVuc2hvdEV4dGVuc2lvbnMgZnJvbSAnLi9zY3JlZW5zaG90cyc7XG5pbXBvcnQgcGFzdGVib2FyZEV4dGVuc2lvbnMgZnJvbSAnLi9wYXN0ZWJvYXJkJztcbmltcG9ydCBsb2NhdGlvbkV4dGVuc2lvbnMgZnJvbSAnLi9sb2NhdGlvbic7XG5pbXBvcnQgcmVjb3JkQXVkaW9FeHRlbnNpb25zIGZyb20gJy4vcmVjb3JkLWF1ZGlvJztcbmltcG9ydCByZWNvcmRTY3JlZW5FeHRlbnNpb25zIGZyb20gJy4vcmVjb3Jkc2NyZWVuJztcbmltcG9ydCBsb2NrRXh0ZW5zaW9ucyBmcm9tICcuL2xvY2snO1xuaW1wb3J0IGFwcE1hbmFnZW1lbnRFeHRlbnNpb25zIGZyb20gJy4vYXBwLW1hbmFnZW1lbnQnO1xuaW1wb3J0IHBlcmZvcm1hbmNlRXh0ZW5zaW9ucyBmcm9tICcuL3BlcmZvcm1hbmNlJztcbmltcG9ydCBjbGlwYm9hcmRFeHRlbnNpb25zIGZyb20gJy4vY2xpcGJvYXJkJztcbmltcG9ydCBjZXJ0aWZpY2F0ZUV4dGVuc2lvbnMgZnJvbSAnLi9jZXJ0aWZpY2F0ZSc7XG5pbXBvcnQgYmF0dGVyeUV4dGVuc2lvbnMgZnJvbSAnLi9iYXR0ZXJ5JztcbmltcG9ydCBkZXZpY2VJbmZvRXh0ZW5zaW9ucyBmcm9tICcuL2RldmljZUluZm8nO1xuaW1wb3J0IGFjdGl2ZUFwcEluZm9FeHRlbnNpb25zIGZyb20gJy4vYWN0aXZlQXBwSW5mbyc7XG5pbXBvcnQgY29va2llc0V4dGVuc2lvbnMgZnJvbSAnLi9jb29raWVzJztcbmltcG9ydCBiaW9tZXRyaWNFeHRlbnNpb25zIGZyb20gJy4vYmlvbWV0cmljJztcbmltcG9ydCBrZXljaGFpbnNFeHRlbnNpb25zIGZyb20gJy4va2V5Y2hhaW5zJztcbmltcG9ydCBwZXJtaXNzaW9uc0V4dGVuc2lvbnMgZnJvbSAnLi9wZXJtaXNzaW9ucyc7XG5pbXBvcnQgYXBwZWFyYW5jZUV4dGVuc2lvbnMgZnJvbSAnLi9hcHBlYXJhbmNlJztcbmltcG9ydCB4Y3Rlc3RFeHRlbnNpb25zIGZyb20gJy4veGN0ZXN0JztcbmltcG9ydCBub3RpZmljYXRpb25zRXh0ZW5zaW9ucyBmcm9tICcuL25vdGlmaWNhdGlvbnMnO1xuaW1wb3J0IGlvaGlkRXh0ZW5zaW9ucyBmcm9tICcuL2lvaGlkJztcbmltcG9ydCBsb2NhbGl6YXRpb25FeHRlbnNpb25zIGZyb20gJy4vbG9jYWxpemF0aW9uJztcbmltcG9ydCBwY2FwRXh0ZW5zaW9ucyBmcm9tICcuL3BjYXAnO1xuXG5jb25zdCBjb21tYW5kcyA9IHt9O1xuXG5PYmplY3QuYXNzaWduKGNvbW1hbmRzLCBjb250ZXh0Q29tbWFuZHMsIGV4ZWN1dGVFeHRlbnNpb25zLFxuICBnZXN0dXJlRXh0ZW5zaW9ucywgZmluZEV4dGVuc2lvbnMsIHByb3h5SGVscGVyRXh0ZW5zaW9ucywgc291cmNlRXh0ZW5zaW9ucyxcbiAgZ2VuZXJhbEV4dGVuc2lvbnMsIGxvZ0V4dGVuc2lvbnMsIHdlYkV4dGVuc2lvbnMsIHRpbWVvdXRFeHRlbnNpb25zLFxuICBuYXZpZ2F0aW9uRXh0ZW5zaW9ucywgZWxlbWVudEV4dGVuc2lvbnMsIGZpbGVNb3ZlbWVudEV4dGVuc2lvbnMsXG4gIGFsZXJ0RXh0ZW5zaW9ucywgc2NyZWVuc2hvdEV4dGVuc2lvbnMsIHBhc3RlYm9hcmRFeHRlbnNpb25zLCBsb2NhdGlvbkV4dGVuc2lvbnMsXG4gIGxvY2tFeHRlbnNpb25zLCByZWNvcmRTY3JlZW5FeHRlbnNpb25zLCBhcHBNYW5hZ2VtZW50RXh0ZW5zaW9ucywgcGVyZm9ybWFuY2VFeHRlbnNpb25zLFxuICBjbGlwYm9hcmRFeHRlbnNpb25zLCBjZXJ0aWZpY2F0ZUV4dGVuc2lvbnMsIGJhdHRlcnlFeHRlbnNpb25zLCBjb29raWVzRXh0ZW5zaW9ucyxcbiAgYmlvbWV0cmljRXh0ZW5zaW9ucywga2V5Y2hhaW5zRXh0ZW5zaW9ucywgcGVybWlzc2lvbnNFeHRlbnNpb25zLCBkZXZpY2VJbmZvRXh0ZW5zaW9ucyxcbiAgYWN0aXZlQXBwSW5mb0V4dGVuc2lvbnMsIHJlY29yZEF1ZGlvRXh0ZW5zaW9ucywgYXBwZWFyYW5jZUV4dGVuc2lvbnMsIHhjdGVzdEV4dGVuc2lvbnMsXG4gIG5vdGlmaWNhdGlvbnNFeHRlbnNpb25zLCBpb2hpZEV4dGVuc2lvbnMsIGxvY2FsaXphdGlvbkV4dGVuc2lvbnMsIHBjYXBFeHRlbnNpb25zLFxuKTtcblxuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUEsTUFBTUEsUUFBUSxHQUFHLEVBQWpCO0FBRUFDLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjRixRQUFkLEVBQXdCRyxnQkFBeEIsRUFBeUNDLGdCQUF6QyxFQUNFQyxnQkFERixFQUNxQkMsYUFEckIsRUFDcUNDLG9CQURyQyxFQUM0REMsZUFENUQsRUFFRUMsZ0JBRkYsRUFFcUJDLFlBRnJCLEVBRW9DQyxZQUZwQyxFQUVtREMsaUJBRm5ELEVBR0VDLG1CQUhGLEVBR3dCQyxnQkFIeEIsRUFHMkNDLHFCQUgzQyxFQUlFQyxjQUpGLEVBSW1CQyxvQkFKbkIsRUFJeUNDLG1CQUp6QyxFQUkrREMsaUJBSi9ELEVBS0VDLGFBTEYsRUFLa0JDLHFCQUxsQixFQUswQ0Msc0JBTDFDLEVBS21FQyxvQkFMbkUsRUFNRUMsa0JBTkYsRUFNdUJDLG9CQU52QixFQU04Q0MsZ0JBTjlDLEVBTWlFQyxnQkFOakUsRUFPRUMsa0JBUEYsRUFPdUJDLGtCQVB2QixFQU80Q0Msb0JBUDVDLEVBT21FQyxtQkFQbkUsRUFRRUMsc0JBUkYsRUFRMkJDLG9CQVIzQixFQVFrREMsbUJBUmxELEVBUXdFQyxlQVJ4RSxFQVNFQyxzQkFURixFQVMyQkMsY0FUM0IsRUFTNENDLHFCQVQ1QyxFQVNvRUMsYUFUcEU7ZUFZZXZDLFEifQ==
94
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2luZGV4LmpzIiwibmFtZXMiOlsiY29tbWFuZHMiLCJPYmplY3QiLCJhc3NpZ24iLCJjb250ZXh0Q29tbWFuZHMiLCJleGVjdXRlRXh0ZW5zaW9ucyIsImdlc3R1cmVFeHRlbnNpb25zIiwiZmluZEV4dGVuc2lvbnMiLCJwcm94eUhlbHBlckV4dGVuc2lvbnMiLCJzb3VyY2VFeHRlbnNpb25zIiwiZ2VuZXJhbEV4dGVuc2lvbnMiLCJsb2dFeHRlbnNpb25zIiwid2ViRXh0ZW5zaW9ucyIsInRpbWVvdXRFeHRlbnNpb25zIiwibmF2aWdhdGlvbkV4dGVuc2lvbnMiLCJlbGVtZW50RXh0ZW5zaW9ucyIsImZpbGVNb3ZlbWVudEV4dGVuc2lvbnMiLCJhbGVydEV4dGVuc2lvbnMiLCJzY3JlZW5zaG90RXh0ZW5zaW9ucyIsInBhc3RlYm9hcmRFeHRlbnNpb25zIiwibG9jYXRpb25FeHRlbnNpb25zIiwibG9ja0V4dGVuc2lvbnMiLCJyZWNvcmRTY3JlZW5FeHRlbnNpb25zIiwiYXBwTWFuYWdlbWVudEV4dGVuc2lvbnMiLCJwZXJmb3JtYW5jZUV4dGVuc2lvbnMiLCJjbGlwYm9hcmRFeHRlbnNpb25zIiwiY2VydGlmaWNhdGVFeHRlbnNpb25zIiwiYmF0dGVyeUV4dGVuc2lvbnMiLCJjb29raWVzRXh0ZW5zaW9ucyIsImJpb21ldHJpY0V4dGVuc2lvbnMiLCJrZXljaGFpbnNFeHRlbnNpb25zIiwicGVybWlzc2lvbnNFeHRlbnNpb25zIiwiZGV2aWNlSW5mb0V4dGVuc2lvbnMiLCJhY3RpdmVBcHBJbmZvRXh0ZW5zaW9ucyIsInJlY29yZEF1ZGlvRXh0ZW5zaW9ucyIsImFwcGVhcmFuY2VFeHRlbnNpb25zIiwieGN0ZXN0RXh0ZW5zaW9ucyIsIm5vdGlmaWNhdGlvbnNFeHRlbnNpb25zIiwiaW9oaWRFeHRlbnNpb25zIiwibG9jYWxpemF0aW9uRXh0ZW5zaW9ucyIsInBjYXBFeHRlbnNpb25zIiwiY29uZGl0aW9uRXh0ZW5zaW9ucyJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgY29udGV4dENvbW1hbmRzIGZyb20gJy4vY29udGV4dCc7XG5pbXBvcnQgZXhlY3V0ZUV4dGVuc2lvbnMgZnJvbSAnLi9leGVjdXRlJztcbmltcG9ydCBnZXN0dXJlRXh0ZW5zaW9ucyBmcm9tICcuL2dlc3R1cmUnO1xuaW1wb3J0IGZpbmRFeHRlbnNpb25zIGZyb20gJy4vZmluZCc7XG5pbXBvcnQgcHJveHlIZWxwZXJFeHRlbnNpb25zIGZyb20gJy4vcHJveHktaGVscGVyJztcbmltcG9ydCBhbGVydEV4dGVuc2lvbnMgZnJvbSAnLi9hbGVydCc7XG5pbXBvcnQgc291cmNlRXh0ZW5zaW9ucyBmcm9tICcuL3NvdXJjZSc7XG5pbXBvcnQgZ2VuZXJhbEV4dGVuc2lvbnMgZnJvbSAnLi9nZW5lcmFsJztcbmltcG9ydCBsb2dFeHRlbnNpb25zIGZyb20gJy4vbG9nJztcbmltcG9ydCB3ZWJFeHRlbnNpb25zIGZyb20gJy4vd2ViJztcbmltcG9ydCB0aW1lb3V0RXh0ZW5zaW9ucyBmcm9tICcuL3RpbWVvdXRzJztcbmltcG9ydCBuYXZpZ2F0aW9uRXh0ZW5zaW9ucyBmcm9tICcuL25hdmlnYXRpb24nO1xuaW1wb3J0IGVsZW1lbnRFeHRlbnNpb25zIGZyb20gJy4vZWxlbWVudCc7XG5pbXBvcnQgZmlsZU1vdmVtZW50RXh0ZW5zaW9ucyBmcm9tICcuL2ZpbGUtbW92ZW1lbnQnO1xuaW1wb3J0IHNjcmVlbnNob3RFeHRlbnNpb25zIGZyb20gJy4vc2NyZWVuc2hvdHMnO1xuaW1wb3J0IHBhc3RlYm9hcmRFeHRlbnNpb25zIGZyb20gJy4vcGFzdGVib2FyZCc7XG5pbXBvcnQgbG9jYXRpb25FeHRlbnNpb25zIGZyb20gJy4vbG9jYXRpb24nO1xuaW1wb3J0IHJlY29yZEF1ZGlvRXh0ZW5zaW9ucyBmcm9tICcuL3JlY29yZC1hdWRpbyc7XG5pbXBvcnQgcmVjb3JkU2NyZWVuRXh0ZW5zaW9ucyBmcm9tICcuL3JlY29yZHNjcmVlbic7XG5pbXBvcnQgbG9ja0V4dGVuc2lvbnMgZnJvbSAnLi9sb2NrJztcbmltcG9ydCBhcHBNYW5hZ2VtZW50RXh0ZW5zaW9ucyBmcm9tICcuL2FwcC1tYW5hZ2VtZW50JztcbmltcG9ydCBwZXJmb3JtYW5jZUV4dGVuc2lvbnMgZnJvbSAnLi9wZXJmb3JtYW5jZSc7XG5pbXBvcnQgY2xpcGJvYXJkRXh0ZW5zaW9ucyBmcm9tICcuL2NsaXBib2FyZCc7XG5pbXBvcnQgY2VydGlmaWNhdGVFeHRlbnNpb25zIGZyb20gJy4vY2VydGlmaWNhdGUnO1xuaW1wb3J0IGJhdHRlcnlFeHRlbnNpb25zIGZyb20gJy4vYmF0dGVyeSc7XG5pbXBvcnQgZGV2aWNlSW5mb0V4dGVuc2lvbnMgZnJvbSAnLi9kZXZpY2VJbmZvJztcbmltcG9ydCBhY3RpdmVBcHBJbmZvRXh0ZW5zaW9ucyBmcm9tICcuL2FjdGl2ZUFwcEluZm8nO1xuaW1wb3J0IGNvb2tpZXNFeHRlbnNpb25zIGZyb20gJy4vY29va2llcyc7XG5pbXBvcnQgYmlvbWV0cmljRXh0ZW5zaW9ucyBmcm9tICcuL2Jpb21ldHJpYyc7XG5pbXBvcnQga2V5Y2hhaW5zRXh0ZW5zaW9ucyBmcm9tICcuL2tleWNoYWlucyc7XG5pbXBvcnQgcGVybWlzc2lvbnNFeHRlbnNpb25zIGZyb20gJy4vcGVybWlzc2lvbnMnO1xuaW1wb3J0IGFwcGVhcmFuY2VFeHRlbnNpb25zIGZyb20gJy4vYXBwZWFyYW5jZSc7XG5pbXBvcnQgeGN0ZXN0RXh0ZW5zaW9ucyBmcm9tICcuL3hjdGVzdCc7XG5pbXBvcnQgbm90aWZpY2F0aW9uc0V4dGVuc2lvbnMgZnJvbSAnLi9ub3RpZmljYXRpb25zJztcbmltcG9ydCBpb2hpZEV4dGVuc2lvbnMgZnJvbSAnLi9pb2hpZCc7XG5pbXBvcnQgbG9jYWxpemF0aW9uRXh0ZW5zaW9ucyBmcm9tICcuL2xvY2FsaXphdGlvbic7XG5pbXBvcnQgcGNhcEV4dGVuc2lvbnMgZnJvbSAnLi9wY2FwJztcbmltcG9ydCBjb25kaXRpb25FeHRlbnNpb25zIGZyb20gJy4vY29uZGl0aW9uJztcblxuY29uc3QgY29tbWFuZHMgPSB7fTtcblxuT2JqZWN0LmFzc2lnbihjb21tYW5kcywgY29udGV4dENvbW1hbmRzLCBleGVjdXRlRXh0ZW5zaW9ucyxcbiAgZ2VzdHVyZUV4dGVuc2lvbnMsIGZpbmRFeHRlbnNpb25zLCBwcm94eUhlbHBlckV4dGVuc2lvbnMsIHNvdXJjZUV4dGVuc2lvbnMsXG4gIGdlbmVyYWxFeHRlbnNpb25zLCBsb2dFeHRlbnNpb25zLCB3ZWJFeHRlbnNpb25zLCB0aW1lb3V0RXh0ZW5zaW9ucyxcbiAgbmF2aWdhdGlvbkV4dGVuc2lvbnMsIGVsZW1lbnRFeHRlbnNpb25zLCBmaWxlTW92ZW1lbnRFeHRlbnNpb25zLFxuICBhbGVydEV4dGVuc2lvbnMsIHNjcmVlbnNob3RFeHRlbnNpb25zLCBwYXN0ZWJvYXJkRXh0ZW5zaW9ucywgbG9jYXRpb25FeHRlbnNpb25zLFxuICBsb2NrRXh0ZW5zaW9ucywgcmVjb3JkU2NyZWVuRXh0ZW5zaW9ucywgYXBwTWFuYWdlbWVudEV4dGVuc2lvbnMsIHBlcmZvcm1hbmNlRXh0ZW5zaW9ucyxcbiAgY2xpcGJvYXJkRXh0ZW5zaW9ucywgY2VydGlmaWNhdGVFeHRlbnNpb25zLCBiYXR0ZXJ5RXh0ZW5zaW9ucywgY29va2llc0V4dGVuc2lvbnMsXG4gIGJpb21ldHJpY0V4dGVuc2lvbnMsIGtleWNoYWluc0V4dGVuc2lvbnMsIHBlcm1pc3Npb25zRXh0ZW5zaW9ucywgZGV2aWNlSW5mb0V4dGVuc2lvbnMsXG4gIGFjdGl2ZUFwcEluZm9FeHRlbnNpb25zLCByZWNvcmRBdWRpb0V4dGVuc2lvbnMsIGFwcGVhcmFuY2VFeHRlbnNpb25zLCB4Y3Rlc3RFeHRlbnNpb25zLFxuICBub3RpZmljYXRpb25zRXh0ZW5zaW9ucywgaW9oaWRFeHRlbnNpb25zLCBsb2NhbGl6YXRpb25FeHRlbnNpb25zLCBwY2FwRXh0ZW5zaW9ucyxcbiAgY29uZGl0aW9uRXh0ZW5zaW9ucyxcbik7XG5cbmV4cG9ydCBkZWZhdWx0IGNvbW1hbmRzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLE1BQU1BLFFBQVEsR0FBRyxFQUFqQjtBQUVBQyxNQUFNLENBQUNDLE1BQVAsQ0FBY0YsUUFBZCxFQUF3QkcsZ0JBQXhCLEVBQXlDQyxnQkFBekMsRUFDRUMsZ0JBREYsRUFDcUJDLGFBRHJCLEVBQ3FDQyxvQkFEckMsRUFDNERDLGVBRDVELEVBRUVDLGdCQUZGLEVBRXFCQyxZQUZyQixFQUVvQ0MsWUFGcEMsRUFFbURDLGlCQUZuRCxFQUdFQyxtQkFIRixFQUd3QkMsZ0JBSHhCLEVBRzJDQyxxQkFIM0MsRUFJRUMsY0FKRixFQUltQkMsb0JBSm5CLEVBSXlDQyxtQkFKekMsRUFJK0RDLGlCQUovRCxFQUtFQyxhQUxGLEVBS2tCQyxxQkFMbEIsRUFLMENDLHNCQUwxQyxFQUttRUMsb0JBTG5FLEVBTUVDLGtCQU5GLEVBTXVCQyxvQkFOdkIsRUFNOENDLGdCQU45QyxFQU1pRUMsZ0JBTmpFLEVBT0VDLGtCQVBGLEVBT3VCQyxrQkFQdkIsRUFPNENDLG9CQVA1QyxFQU9tRUMsbUJBUG5FLEVBUUVDLHNCQVJGLEVBUTJCQyxvQkFSM0IsRUFRa0RDLG1CQVJsRCxFQVF3RUMsZUFSeEUsRUFTRUMsc0JBVEYsRUFTMkJDLGNBVDNCLEVBUzRDQyxxQkFUNUMsRUFTb0VDLGFBVHBFLEVBVUVDLGtCQVZGO2VBYWV4QyxRIn0=