appium-xcuitest-driver 4.8.0 → 4.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -617,6 +617,37 @@ isRoot | boolean | no | This option defines where the certificate should be inst
617
617
 
618
618
  The content of the generated .mobileconfig file as base64-encoded string. This config might be useful for debugging purposes. If the certificate has been successfully set via CLI then nothing is returned.
619
619
 
620
+ ### mobile: listCertificates
621
+
622
+ Lists installed certificates for real devices only if [py-ios-device](https://github.com/YueChen-C/py-ios-device) tool is available on the server machine since driver version 4.10.0.
623
+
624
+ #### Returned Result
625
+
626
+ Returns map of certificates installed on the real device. The response looks like:
627
+
628
+ ```json
629
+ {
630
+ 'OrderedIdentifiers': ['com.orgname.profile.mdmprofile'],
631
+ 'ProfileManifest': {
632
+ 'com.orgname.profile.mdmprofile': {
633
+ 'Description': 'MDM Profile',
634
+ 'IsActive': True
635
+ }
636
+ },
637
+ 'ProfileMetadata': {
638
+ 'com.orgname.profile.mdmprofile': {
639
+ 'PayloadDescription': 'MDM Profile for testing,
640
+ 'PayloadDisplayName': 'MDM Profile',
641
+ 'PayloadOrganization': 'My Org, Inc.',
642
+ 'PayloadRemovalDisallowed': False,
643
+ 'PayloadUUID': '9ab3fa27-cc45-4c23-a94a-714686397a86',
644
+ 'PayloadVersion': 1
645
+ }
646
+ },
647
+ 'Status': 'Acknowledged'
648
+ }
649
+ ```
650
+
620
651
  ### mobile: startLogsBroadcast
621
652
 
622
653
  Starts iOS system logs broadcast websocket on the same host and port where Appium server is running at `/ws/session/:sessionId:/appium/syslog` endpoint. The method will return immediately if the web socket is already listening.
@@ -1334,6 +1365,80 @@ Reset the location service on real device since Appium 1.22.0.
1334
1365
  It could delay a few seconds to reflect the location by the system.
1335
1366
  It raises an error if the device is simulator or an error occurred during the reset.
1336
1367
 
1368
+ ### mobile: enableConditionInducer
1369
+
1370
+ Important: Device conditions are available for real devices running iOS 13.0 and later.
1371
+
1372
+ 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.
1373
+
1374
+ ```
1375
+ mobile: enableConditionInducer
1376
+ mobile: disableConditionInducer
1377
+ mobile: listConditionInducers
1378
+ ```
1379
+
1380
+ The above three extensions are available since the driver version 4.9.0.
1381
+
1382
+ You can create a condition on a connected device to test your app under adverse conditions, such as poor network connectivity or thermal constraints.
1383
+
1384
+ 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.
1385
+
1386
+ Reference: [Test under adverse device conditions (iOS)](https://help.apple.com/xcode/mac/current/#/dev308429d42)
1387
+
1388
+ Name | Type | Required | Description | Example
1389
+ --- | --- | --- | --- | ---
1390
+ conditionID | string | yes | Get the conditionID parameter through the command `mobile: availableConditionInducer` | SlowNetworkCondition
1391
+ profileID | string | yes | Get the profileID parameter through the command `mobile: availableConditionInducer` | SlowNetwork100PctLoss
1392
+
1393
+ #### Returned Result
1394
+
1395
+ Either `true` or `false`, where `true` means enabling of the condition inducer has been successful
1396
+
1397
+ ### mobile: listConditionInducers
1398
+
1399
+ Get all condition inducer configuration profiles
1400
+
1401
+ #### Returned Result
1402
+
1403
+ The response looks like
1404
+
1405
+ ```
1406
+ [{
1407
+ "profiles": [
1408
+ {
1409
+ "name": "100% packet loss",
1410
+ "identifier": "SlowNetwork100PctLoss", // enableConditionInducer profileID
1411
+ "description": "Name: 100% Loss Scenario
1412
+ Downlink Bandwidth: 0 Mbps
1413
+ Downlink Latency: 0 ms
1414
+ Downlink Packet Loss Ratio: 100%
1415
+ Uplink Bandwidth: 0 Mbps
1416
+ Uplink Latency: 0 ms
1417
+ Uplink Packet Loss Ratio: 100%"
1418
+ },
1419
+ ],
1420
+ "profilesSorted": true,
1421
+ "identifier": "SlowNetworkCondition", // enableConditionInducer conditionID
1422
+ "isDestructive": false,
1423
+ "isInternal": false,
1424
+ "activeProfile": "",
1425
+ "name": "Network Link",
1426
+ "isActive": false
1427
+ }]
1428
+ ```
1429
+
1430
+ ### mobile: disableConditionInducer
1431
+
1432
+ Disable device condition inducer.
1433
+
1434
+ Usually a persistent connection is maintained after enable the condition inducer, and this method is only valid for this connection.
1435
+
1436
+ If the connection is disconnected, condition inducer will be automatically disabled
1437
+
1438
+ #### Returned Result
1439
+
1440
+ Either `true` or `false`, where `true` means disabling of the condition inducer has been successful
1441
+
1337
1442
  ## Known issues
1338
1443
 
1339
1444
  * `shake` is implemented via AppleScript and works only on Simulator due to lack of support from Apple
@@ -30,6 +30,8 @@ var _portscanner = require("portscanner");
30
30
 
31
31
  var _pyIosDeviceClient = _interopRequireDefault(require("../py-ios-device-client"));
32
32
 
33
+ var _driver = require("appium/driver");
34
+
33
35
  let extensions = {},
34
36
  commands = {};
35
37
  exports.commands = commands;
@@ -391,9 +393,23 @@ commands.mobileInstallCertificate = async function mobileInstallCertificate(opts
391
393
  }
392
394
  };
393
395
 
396
+ commands.mobileListCertificates = async function mobileListCertificates() {
397
+ if (!this.isRealDevice()) {
398
+ throw new _driver.errors.NotImplementedError('This extension is only supported on real devices');
399
+ }
400
+
401
+ const client = new _pyIosDeviceClient.default(this.opts.udid);
402
+
403
+ if (await client.assertExists(false)) {
404
+ return await client.listProfiles();
405
+ }
406
+
407
+ throw new Error('pyidevice is not installed on your system, command cannot be executed.');
408
+ };
409
+
394
410
  Object.assign(extensions, commands);
395
411
  var _default = extensions;
396
412
  exports.default = _default;require('source-map-support').install();
397
413
 
398
414
 
399
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2NlcnRpZmljYXRlLmpzIiwibmFtZXMiOlsiZXh0ZW5zaW9ucyIsImNvbW1hbmRzIiwiQ09ORklHX0VYVEVOU0lPTiIsIkhPU1RfUE9SVF9SQU5HRSIsIlRNUFNFUlZFUl9TVEFSVFVQX1RJTUVPVVQiLCJTZXR0aW5ncyIsIkdlbmVyYWwiLCJ0eXBlIiwidmFsdWUiLCJQcm9maWxlIiwiQWJvdXQiLCJDZXJ0aWZpY2F0ZV9UcnVzdF9TZXR0aW5ncyIsIkJ1dHRvbiIsIkluc3RhbGwiLCJBbGxvdyIsIkRvbmUiLCJSZXR1cm5fdG9fU2V0dGluZ3MiLCJBbGVydCIsImV4dHJhY3RDb21tb25OYW1lIiwiY2VydEJ1ZmZlciIsInRlbXBDZXJ0IiwidGVtcERpciIsIm9wZW4iLCJwcmVmaXgiLCJzdWZmaXgiLCJmcyIsIndyaXRlRmlsZSIsInBhdGgiLCJzdGRvdXQiLCJleGVjIiwicGFyc2VDb21tb25OYW1lIiwiZXJyIiwiRXJyb3IiLCJtZXNzYWdlIiwicmltcmFmIiwiTElCUkVfU1NMX1BBVFRFUk4iLCJPUEVOX1NTTF9QQVRURVJOIiwic3RyaW5nQ2VydGlmaWNhdGUiLCJyZXN1bHQiLCJyZWR1Y2UiLCJhY2MiLCJyIiwibWF0Y2giLCJ0b01vYmlsZUNvbmZpZyIsImNvbW1vbk5hbWUiLCJnZXRVVUlEIiwidXRpbCIsInV1aWRWNCIsInRvVXBwZXJDYXNlIiwiY29udGVudFV1aWQiLCJQYXlsb2FkQ29udGVudCIsIlBheWxvYWRDZXJ0aWZpY2F0ZUZpbGVOYW1lIiwiUGF5bG9hZERlc2NyaXB0aW9uIiwiUGF5bG9hZERpc3BsYXlOYW1lIiwiUGF5bG9hZElkZW50aWZpZXIiLCJQYXlsb2FkVHlwZSIsIlBheWxvYWRVVUlEIiwiUGF5bG9hZFZlcnNpb24iLCJvcyIsImhvc3RuYW1lIiwic3BsaXQiLCJQYXlsb2FkUmVtb3ZhbERpc2FsbG93ZWQiLCJjbGlja0VsZW1lbnQiLCJkcml2ZXIiLCJsb2NhdG9yIiwib3B0aW9ucyIsImVsZW1lbnQiLCJ0aW1lb3V0Iiwic2tpcElmSW52aXNpYmxlIiwibG9va3VwRGVsYXkiLCJyZXRyeUludGVydmFsIiwiZmluZE5hdGl2ZUVsZW1lbnRPckVsZW1lbnRzIiwiSlNPTiIsInN0cmluZ2lmeSIsIm5hdGl2ZUNsaWNrIiwiaW5zdGFsbFByZTEyMkNlcnRpZmljYXRlIiwiQiIsImRlbGF5IiwidHJ1c3RDZXJ0aWZpY2F0ZUluUHJlZmVyZW5jZXMiLCJuYW1lIiwic3dpdGNoTG9jYXRvciIsInJldHJ5IiwibW9iaWxlU3dpcGUiLCJkaXJlY3Rpb24iLCJwb3N0QWNjZXB0QWxlcnQiLCJpbnN0YWxsUG9zdDEyMkNlcnRpZmljYXRlIiwiYWN0aXZhdGVBcHAiLCJpc0NlcnRGb3VuZCIsInN3aXBlTnVtIiwibW9iaWxlSW5zdGFsbENlcnRpZmljYXRlIiwib3B0cyIsImNvbnRlbnQiLCJpc1Jvb3QiLCJfIiwiaXNFbXB0eSIsImlzU2ltdWxhdG9yIiwibWV0aG9kTmFtZSIsImRldmljZSIsInNpbWN0bCIsIkJ1ZmZlciIsImZyb20iLCJ0b1N0cmluZyIsInJhdyIsImUiLCJsb2ciLCJkZWJ1ZyIsImluZm8iLCJjbGllbnQiLCJQeWlkZXZpY2UiLCJ1ZGlkIiwiYXNzZXJ0RXhpc3RzIiwiaW5zdGFsbFByb2ZpbGUiLCJwYXlsb2FkIiwidG1wUm9vdCIsIm9wZW5EaXIiLCJ0bXBQb3J0IiwiZmluZEFQb3J0Tm90SW5Vc2UiLCJjb25maWdOYW1lIiwiY29uZmlnUGF0aCIsInJlc29sdmUiLCJ0bXBTZXJ2ZXIiLCJodHRwIiwiY3JlYXRlU2VydmVyIiwicmVzIiwiY29uZmlnRmlsZSIsInJlYWRGaWxlIiwiZW5kIiwiY24iLCJtb2JpbGVDb25maWciLCJwbGlzdCIsInVwZGF0ZVBsaXN0RmlsZSIsImhvc3QiLCJjZXJ0VXJsIiwibGlzdGVuIiwid2FpdEZvckNvbmRpdGlvbiIsImNoZWNrUG9ydFN0YXR1cyIsImlnbiIsIndhaXRNcyIsImludGVydmFsTXMiLCJpc1JlYWxEZXZpY2UiLCJwcm94eUNvbW1hbmQiLCJ1cmwiLCJpc1dlYkNvbnRleHQiLCJzZXRVcmwiLCJvcGVuVXJsIiwiaXNDZXJ0QWxyZWFkeUluc3RhbGxlZCIsImNvbXBhcmVWZXJzaW9ucyIsInBsYXRmb3JtVmVyc2lvbiIsImJ1bmRsZUlkIiwid2FybiIsInRvSW5NZW1vcnlCYXNlNjQiLCJjbG9zZSIsIk9iamVjdCIsImFzc2lnbiJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9jZXJ0aWZpY2F0ZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgZnMsIHBsaXN0LCB0ZW1wRGlyLCB1dGlsIH0gZnJvbSAnYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IHsgcmV0cnlJbnRlcnZhbCwgcmV0cnksIHdhaXRGb3JDb25kaXRpb24gfSBmcm9tICdhc3luY2JveCc7XG5pbXBvcnQgQiBmcm9tICdibHVlYmlyZCc7XG5pbXBvcnQgb3MgZnJvbSAnb3MnO1xuaW1wb3J0IHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgaHR0cCBmcm9tICdodHRwJztcbmltcG9ydCB7IGV4ZWMgfSBmcm9tICd0ZWVuX3Byb2Nlc3MnO1xuaW1wb3J0IHsgZmluZEFQb3J0Tm90SW5Vc2UsIGNoZWNrUG9ydFN0YXR1cyB9IGZyb20gJ3BvcnRzY2FubmVyJztcbmltcG9ydCBQeWlkZXZpY2UgZnJvbSAnLi4vcHktaW9zLWRldmljZS1jbGllbnQnO1xuXG5sZXQgZXh0ZW5zaW9ucyA9IHt9LCBjb21tYW5kcyA9IHt9O1xuXG5jb25zdCBDT05GSUdfRVhURU5TSU9OID0gJ21vYmlsZWNvbmZpZyc7XG5jb25zdCBIT1NUX1BPUlRfUkFOR0UgPSBbMzgyMDAsIDM4Mjk5XTtcbmNvbnN0IFRNUFNFUlZFUl9TVEFSVFVQX1RJTUVPVVQgPSA1MDAwO1xuY29uc3QgU2V0dGluZ3MgPSB7XG4gIEdlbmVyYWw6IHtcbiAgICB0eXBlOiAnYWNjZXNzaWJpbGl0eSBpZCcsXG4gICAgdmFsdWU6ICdHZW5lcmFsJyxcbiAgfSxcbiAgUHJvZmlsZToge1xuICAgIHR5cGU6ICctaW9zIHByZWRpY2F0ZSBzdHJpbmcnLFxuICAgIHZhbHVlOiBgbmFtZSBCRUdJTlNXSVRIICdQcm9maWxlJ2AsXG4gIH0sXG4gIEFib3V0OiB7XG4gICAgdHlwZTogJ2FjY2Vzc2liaWxpdHkgaWQnLFxuICAgIHZhbHVlOiAnQWJvdXQnLFxuICB9LFxuICBDZXJ0aWZpY2F0ZV9UcnVzdF9TZXR0aW5nczoge1xuICAgIHR5cGU6ICdhY2Nlc3NpYmlsaXR5IGlkJyxcbiAgICB2YWx1ZTogJ0NlcnRpZmljYXRlIFRydXN0IFNldHRpbmdzJyxcbiAgfSxcbn07XG5jb25zdCBCdXR0b24gPSB7XG4gIEluc3RhbGw6IHtcbiAgICB0eXBlOiAnYWNjZXNzaWJpbGl0eSBpZCcsXG4gICAgdmFsdWU6ICdJbnN0YWxsJyxcbiAgfSxcbiAgQWxsb3c6IHtcbiAgICB0eXBlOiAnYWNjZXNzaWJpbGl0eSBpZCcsXG4gICAgdmFsdWU6ICdBbGxvdycsXG4gIH0sXG4gIERvbmU6IHtcbiAgICB0eXBlOiAnYWNjZXNzaWJpbGl0eSBpZCcsXG4gICAgdmFsdWU6ICdEb25lJyxcbiAgfSxcbiAgUmV0dXJuX3RvX1NldHRpbmdzOiB7XG4gICAgdHlwZTogJ2FjY2Vzc2liaWxpdHkgaWQnLFxuICAgIHZhbHVlOiAnUmV0dXJuIHRvIFNldHRpbmdzJyxcbiAgfSxcbn07XG5jb25zdCBBbGVydCA9IHtcbiAgSW5zdGFsbDoge1xuICAgIHR5cGU6ICctaW9zIGNsYXNzIGNoYWluJyxcbiAgICB2YWx1ZTogJyoqL1hDVUlFbGVtZW50VHlwZUFueVtgdHlwZSA9PSBcXCdYQ1VJRWxlbWVudFR5cGVBbGVydFxcJyBPUiB0eXBlID09IFxcJ1hDVUlFbGVtZW50VHlwZVNoZWV0XFwnYF0vKiovWENVSUVsZW1lbnRUeXBlQnV0dG9uW2BsYWJlbCA9PSBcXCdJbnN0YWxsXFwnYF0nLFxuICB9LFxufTtcblxuXG5hc3luYyBmdW5jdGlvbiBleHRyYWN0Q29tbW9uTmFtZSAoY2VydEJ1ZmZlcikge1xuICBjb25zdCB0ZW1wQ2VydCA9IGF3YWl0IHRlbXBEaXIub3Blbih7XG4gICAgcHJlZml4OiAnY2VydCcsXG4gICAgc3VmZml4OiAnLmNlcidcbiAgfSk7XG4gIHRyeSB7XG4gICAgYXdhaXQgZnMud3JpdGVGaWxlKHRlbXBDZXJ0LnBhdGgsIGNlcnRCdWZmZXIpO1xuICAgIGNvbnN0IHtzdGRvdXR9ID0gYXdhaXQgZXhlYygnb3BlbnNzbCcsIFsneDUwOScsICctbm9vdXQnLCAnLXN1YmplY3QnLCAnLWluJywgdGVtcENlcnQucGF0aF0pO1xuICAgIHJldHVybiBwYXJzZUNvbW1vbk5hbWUoc3Rkb3V0KTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgcGFyc2UgY29tbW9uIG5hbWUgdmFsdWUgZnJvbSB0aGUgY2VydGlmaWNhdGUuIElzIGl0IHZhbGlkIGFuZCBiYXNlNjQtZW5jb2RlZD8gYCArXG4gICAgICAgICAgICAgICAgICAgIGBPcmlnaW5hbCBlcnJvcjogJHtlcnIubWVzc2FnZX1gKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBhd2FpdCBmcy5yaW1yYWYodGVtcENlcnQucGF0aCk7XG4gIH1cbn1cblxuY29uc3QgTElCUkVfU1NMX1BBVFRFUk4gPSAvXFwvQ049KFteXFwvXSspLzsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby11c2VsZXNzLWVzY2FwZVxuY29uc3QgT1BFTl9TU0xfUEFUVEVSTiA9IC8sXFxzQ05cXHM9XFxzKFteLF0rKS87XG5cbmZ1bmN0aW9uIHBhcnNlQ29tbW9uTmFtZSAoc3RyaW5nQ2VydGlmaWNhdGUpIHtcbiAgY29uc3QgcmVzdWx0ID0gW0xJQlJFX1NTTF9QQVRURVJOLCBPUEVOX1NTTF9QQVRURVJOXS5yZWR1Y2UoKGFjYywgcikgPT4ge1xuICAgIGlmIChhY2MpIHtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfVxuICAgIGNvbnN0IG1hdGNoID0gci5leGVjKHN0cmluZ0NlcnRpZmljYXRlKTtcbiAgICByZXR1cm4gbWF0Y2ggJiYgbWF0Y2hbMV07XG4gIH0sIG51bGwpO1xuICBpZiAoIXJlc3VsdCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgVGhlcmUgaXMgbm8gY29tbW9uIG5hbWUgdmFsdWUgaW4gJyR7c3RyaW5nQ2VydGlmaWNhdGV9JyBvdXRwdXRgKTtcbiAgfVxuICByZXR1cm4gcmVzdWx0O1xufVxuXG4vKipcbiAqIEdlbmVyYXRlcyBBcHBsZSdzIG92ZXItdGhlLWFpciBjb25maWd1cmF0aW9uIHByb2ZpbGVcbiAqIGZvciBjZXJ0aWZpY2F0ZSBkZXBsb3ltZW50IGJhc2VkIG9uIHRoZSBnaXZlbiBQRU0gY2VydGlmaWNhdGUgY29udGVudC5cbiAqIFJlYWQgaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2xpYnJhcnkvY29udGVudC9kb2N1bWVudGF0aW9uL05ldHdvcmtpbmdJbnRlcm5ldC9Db25jZXB0dWFsL2lQaG9uZU9UQUNvbmZpZ3VyYXRpb24vSW50cm9kdWN0aW9uL0ludHJvZHVjdGlvbi5odG1sXG4gKiBmb3IgbW9yZSBkZXRhaWxzIG9uIHN1Y2ggcHJvZmlsZXMuXG4gKlxuICogQHBhcmFtIHtCdWZmZXJ9IGNlcnRCdWZmZXIgLSBUaGUgYWN0dWFsIGNvbnRlbnQgb2YgUEVNIGNlcnRpZmljYXRlIGVuY29kZWQgaW50byBOb2RlSlMgYnVmZmVyXG4gKiBAcGFyYW0ge3N0cmluZ30gY29tbW9uTmFtZSAtIENlcnRpZmljYXRlJ3MgY29tbW9uIG5hbWVcbiAqIEByZXR1cm5zIHtPYmplY3R9IFRoZSBlbmNvZGVkIHN0cnVjdHVyZSBvZiB0aGUgZ2l2ZW4gY2VydGlmaWNhdGUsIHdoaWNoIGlzIHJlYWR5IHRvIGJlIHBhc3NlZFxuICogYXMgYW4gYXJndW1lbnQgdG8gcGxpc3QgYnVpbGRlclxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBnaXZlbiBjZXJ0aWZpY2F0ZSBjYW5ub3QgYmUgcGFyc2VkXG4gKi9cbmZ1bmN0aW9uIHRvTW9iaWxlQ29uZmlnIChjZXJ0QnVmZmVyLCBjb21tb25OYW1lKSB7XG4gIGNvbnN0IGdldFVVSUQgPSAoKSA9PiB1dGlsLnV1aWRWNCgpLnRvVXBwZXJDYXNlKCk7XG4gIGNvbnN0IGNvbnRlbnRVdWlkID0gZ2V0VVVJRCgpO1xuICByZXR1cm4ge1xuICAgIFBheWxvYWRDb250ZW50OiBbe1xuICAgICAgUGF5bG9hZENlcnRpZmljYXRlRmlsZU5hbWU6IGAke2NvbW1vbk5hbWV9LmNlcmAsXG4gICAgICBQYXlsb2FkQ29udGVudDogY2VydEJ1ZmZlcixcbiAgICAgIFBheWxvYWREZXNjcmlwdGlvbjogJ0FkZHMgYSBDQSByb290IGNlcnRpZmljYXRlJyxcbiAgICAgIFBheWxvYWREaXNwbGF5TmFtZTogY29tbW9uTmFtZSxcbiAgICAgIFBheWxvYWRJZGVudGlmaWVyOiBgY29tLmFwcGxlLnNlY3VyaXR5LnJvb3QuJHtjb250ZW50VXVpZH1gLFxuICAgICAgUGF5bG9hZFR5cGU6ICdjb20uYXBwbGUuc2VjdXJpdHkucm9vdCcsXG4gICAgICBQYXlsb2FkVVVJRDogY29udGVudFV1aWQsXG4gICAgICBQYXlsb2FkVmVyc2lvbjogMVxuICAgIH1dLFxuICAgIFBheWxvYWREaXNwbGF5TmFtZTogY29tbW9uTmFtZSxcbiAgICBQYXlsb2FkSWRlbnRpZmllcjogYCR7b3MuaG9zdG5hbWUoKS5zcGxpdCgnLicpWzBdfS4ke2dldFVVSUQoKX1gLFxuICAgIFBheWxvYWRSZW1vdmFsRGlzYWxsb3dlZDogZmFsc2UsXG4gICAgUGF5bG9hZFR5cGU6ICdDb25maWd1cmF0aW9uJyxcbiAgICBQYXlsb2FkVVVJRDogZ2V0VVVJRCgpLFxuICAgIFBheWxvYWRWZXJzaW9uOiAxXG4gIH07XG59XG5cbmFzeW5jIGZ1bmN0aW9uIGNsaWNrRWxlbWVudCAoZHJpdmVyLCBsb2NhdG9yLCBvcHRpb25zID0ge30pIHtcbiAgbGV0IGVsZW1lbnQgPSBudWxsO1xuICBjb25zdCB7XG4gICAgdGltZW91dCA9IDUwMDAsXG4gICAgc2tpcElmSW52aXNpYmxlID0gZmFsc2VcbiAgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IGxvb2t1cERlbGF5ID0gNTAwO1xuICB0cnkge1xuICAgIGVsZW1lbnQgPSBhd2FpdCByZXRyeUludGVydmFsKHRpbWVvdXQgPCBsb29rdXBEZWxheSA/IDEgOiB0aW1lb3V0IC8gbG9va3VwRGVsYXksIGxvb2t1cERlbGF5LFxuICAgICAgKCkgPT4gZHJpdmVyLmZpbmROYXRpdmVFbGVtZW50T3JFbGVtZW50cyhsb2NhdG9yLnR5cGUsIGxvY2F0b3IudmFsdWUsIGZhbHNlKVxuICAgICk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGlmIChza2lwSWZJbnZpc2libGUpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCAke0pTT04uc3RyaW5naWZ5KGxvY2F0b3IpfSB3aXRoaW4gJHt0aW1lb3V0fW1zIHRpbWVvdXRgKTtcbiAgfVxuICBhd2FpdCBkcml2ZXIubmF0aXZlQ2xpY2soZWxlbWVudCk7XG4gIHJldHVybiB0cnVlO1xufVxuXG5hc3luYyBmdW5jdGlvbiBpbnN0YWxsUHJlMTIyQ2VydGlmaWNhdGUgKGRyaXZlcikge1xuICAvLyBBY2NlcHQgU2FmYXJpIGFsZXJ0XG4gIGF3YWl0IGNsaWNrRWxlbWVudChkcml2ZXIsIEJ1dHRvbi5BbGxvdywge1xuICAgIC8vIGNlcnRpZmljYXRlIGxvYWQgbWlnaHQgdGFrZSBzb21lIHRpbWUgb24gc2xvdyBtYWNoaW5lc1xuICAgIHRpbWVvdXQ6IDE1MDAwLFxuICB9KTtcbiAgLy8gV2FpdCB1bnRpbCBQcmVmZXJlbmNlcyBhcmUgb3BlbmVkXG4gIGF3YWl0IEIuZGVsYXkoMjAwMCk7XG5cbiAgLy8gR28gdGhyb3VnaCBQcmVmZXJlbmNlcyB3aXphcmRcbiAgaWYgKCFhd2FpdCBjbGlja0VsZW1lbnQoZHJpdmVyLCBCdXR0b24uSW5zdGFsbCwge1xuICAgIHNraXBJZkludmlzaWJsZTogdHJ1ZSxcbiAgfSkpIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbiAgLy8gV2UgbmVlZCB0byBjbGljayBJbnN0YWxsIGJ1dHRvbiBvbiB0d28gZGlmZmVyZW50IHRhYnNcbiAgLy8gVGhlIHNlY29uZCBvbmUgY29uZmlybXMgdGhlIHByZXZpb3VzXG4gIGF3YWl0IEIuZGVsYXkoMTUwMCk7XG4gIGF3YWl0IGNsaWNrRWxlbWVudChkcml2ZXIsIEJ1dHRvbi5JbnN0YWxsKTtcbiAgLy8gQWNjZXB0IGFsZXJ0XG4gIGF3YWl0IGNsaWNrRWxlbWVudChkcml2ZXIsIEFsZXJ0Lkluc3RhbGwpO1xuICAvLyBGaW5pc2ggYWRkaW5nIGNlcnRpZmljYXRlXG4gIGF3YWl0IGNsaWNrRWxlbWVudChkcml2ZXIsIEJ1dHRvbi5Eb25lKTtcbiAgcmV0dXJuIHRydWU7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHRydXN0Q2VydGlmaWNhdGVJblByZWZlcmVuY2VzIChkcml2ZXIsIG5hbWUpIHtcbiAgYXdhaXQgY2xpY2tFbGVtZW50KGRyaXZlciwgU2V0dGluZ3MuR2VuZXJhbCk7XG4gIGF3YWl0IGNsaWNrRWxlbWVudChkcml2ZXIsIFNldHRpbmdzLkFib3V0KTtcbiAgY29uc3Qgc3dpdGNoTG9jYXRvciA9IHtcbiAgICB0eXBlOiAnLWlvcyBjbGFzcyBjaGFpbicsXG4gICAgdmFsdWU6IGAqKi9YQ1VJRWxlbWVudFR5cGVDZWxsW1xcYGxhYmVsID09ICcke25hbWV9J1xcYF0vKiovWENVSUVsZW1lbnRUeXBlU3dpdGNoYCxcbiAgfTtcbiAgYXdhaXQgcmV0cnkoNSwgYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IGRyaXZlci5tb2JpbGVTd2lwZSh7XG4gICAgICBlbGVtZW50OiBhd2FpdCBkcml2ZXIuZmluZE5hdGl2ZUVsZW1lbnRPckVsZW1lbnRzKCdjbGFzcyBuYW1lJywgJ1hDVUlFbGVtZW50VHlwZVRhYmxlJywgZmFsc2UpLFxuICAgICAgZGlyZWN0aW9uOiAndXAnXG4gICAgfSk7XG4gICAgYXdhaXQgY2xpY2tFbGVtZW50KGRyaXZlciwgU2V0dGluZ3MuQ2VydGlmaWNhdGVfVHJ1c3RfU2V0dGluZ3MsIHtcbiAgICAgIHRpbWVvdXQ6IDUwMCxcbiAgICB9KTtcblxuICAgIGF3YWl0IGRyaXZlci5maW5kTmF0aXZlRWxlbWVudE9yRWxlbWVudHMoc3dpdGNoTG9jYXRvci50eXBlLCBzd2l0Y2hMb2NhdG9yLnZhbHVlLCBmYWxzZSk7XG4gIH0pO1xuICAvLyBPbmx5IGNsaWNrIHRoZSBzd2l0Y2ggaWYgaXQgaXMgc2V0IHRvIE9mZlxuICBpZiAoYXdhaXQgY2xpY2tFbGVtZW50KGRyaXZlciwge1xuICAgIHR5cGU6IHN3aXRjaExvY2F0b3IudHlwZSxcbiAgICB2YWx1ZTogYCR7c3dpdGNoTG9jYXRvci52YWx1ZX1bXFxgdmFsdWUgPT0gJzAnXFxgXWBcbiAgfSwge1xuICAgIHRpbWVvdXQ6IDEwMDAsXG4gICAgc2tpcElmSW52aXNpYmxlOiB0cnVlLFxuICB9KSkge1xuICAgIGF3YWl0IGRyaXZlci5wb3N0QWNjZXB0QWxlcnQoKTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBpbnN0YWxsUG9zdDEyMkNlcnRpZmljYXRlIChkcml2ZXIsIG5hbWUpIHtcbiAgLy8gQWNjZXB0IFNhZmFyaSBhbGVydFxuICBhd2FpdCBjbGlja0VsZW1lbnQoZHJpdmVyLCBCdXR0b24uQWxsb3csIHtcbiAgICAvLyBjZXJ0aWZpY2F0ZSBsb2FkIG1pZ2h0IHRha2Ugc29tZSB0aW1lIG9uIHNsb3cgbWFjaGluZXNcbiAgICB0aW1lb3V0OiAxNTAwMCxcbiAgfSk7XG4gIC8vIFdhaXQgZm9yIHRoZSBzZWNvbmQgYWxlcnRcbiAgYXdhaXQgQi5kZWxheSgyMDAwKTtcblxuICBhd2FpdCBkcml2ZXIucG9zdEFjY2VwdEFsZXJ0KCk7XG4gIGF3YWl0IGRyaXZlci5hY3RpdmF0ZUFwcCgnY29tLmFwcGxlLlByZWZlcmVuY2VzJyk7XG4gIGF3YWl0IGNsaWNrRWxlbWVudChkcml2ZXIsIFNldHRpbmdzLkdlbmVyYWwpO1xuICBhd2FpdCBjbGlja0VsZW1lbnQoZHJpdmVyLCBTZXR0aW5ncy5Qcm9maWxlKTtcbiAgLy8gU2VsZWN0IHRoZSB0YXJnZXQgY2VydFxuICBsZXQgaXNDZXJ0Rm91bmQgPSBmYWxzZTtcbiAgZm9yIChsZXQgc3dpcGVOdW0gPSAwOyBzd2lwZU51bSA8IDU7ICsrc3dpcGVOdW0pIHtcbiAgICBpZiAoYXdhaXQgY2xpY2tFbGVtZW50KGRyaXZlciwge1xuICAgICAgdHlwZTogJy1pb3MgY2xhc3MgY2hhaW4nLFxuICAgICAgdmFsdWU6IGAqKi9YQ1VJRWxlbWVudFR5cGVDZWxsW1xcYGxhYmVsID09ICcke25hbWV9J1xcYF1gLFxuICAgIH0sIHtcbiAgICAgIHRpbWVvdXQ6IDUwMCxcbiAgICAgIHNraXBJZkludmlzaWJsZTogdHJ1ZSxcbiAgICB9KSkge1xuICAgICAgaXNDZXJ0Rm91bmQgPSB0cnVlO1xuICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgYXdhaXQgZHJpdmVyLm1vYmlsZVN3aXBlKHtcbiAgICAgIGVsZW1lbnQ6IGF3YWl0IGRyaXZlci5maW5kTmF0aXZlRWxlbWVudE9yRWxlbWVudHMoJ2NsYXNzIG5hbWUnLCAnWENVSUVsZW1lbnRUeXBlVGFibGUnLCBmYWxzZSksXG4gICAgICBkaXJlY3Rpb246ICd1cCdcbiAgICB9KTtcbiAgfVxuICBpZiAoIWlzQ2VydEZvdW5kKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGAnJHtuYW1lfScgY2Fubm90IGJlIGZvdW5kIGluIHRoZSBjZXJ0aWZpY2F0ZXMgbGlzdGApO1xuICB9XG5cbiAgLy8gSW5zdGFsbCBvcHRpb24gaXMgb25seSB2aXNpYmxlIGlmIHRoZSBjZXJ0IGlzIG5vdCBpbnN0YWxsZWQgeWV0XG4gIGlmICghYXdhaXQgY2xpY2tFbGVtZW50KGRyaXZlciwgQnV0dG9uLkluc3RhbGwsIHtcbiAgICBza2lwSWZJbnZpc2libGU6IHRydWUsXG4gIH0pKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIGF3YWl0IEIuZGVsYXkoMTUwMCk7XG4gIC8vIENvbmZpcm0gdW50cnVzdGVkIGNlcnQgaW5zdGFsbFxuICBhd2FpdCBjbGlja0VsZW1lbnQoZHJpdmVyLCBCdXR0b24uSW5zdGFsbCk7XG4gIC8vIEFjY2VwdCBhbGVydFxuICBhd2FpdCBjbGlja0VsZW1lbnQoZHJpdmVyLCBBbGVydC5JbnN0YWxsKTtcbiAgLy8gRmluaXNoIGFkZGluZyBjZXJ0aWZpY2F0ZVxuICBhd2FpdCBjbGlja0VsZW1lbnQoZHJpdmVyLCBCdXR0b24uRG9uZSk7XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gQ2VydGlmaWNhdGVJbnN0YWxsYXRpb25PcHRpb25zXG4gKlxuICogQHByb3BlcnR5IHshc3RyaW5nfSBjb250ZW50IC0gQmFzZTY0LWVuY29kZWQgY29udGVudCBvZiB0aGUgcHVibGljIGNlcnRpZmljYXRlXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IGNvbW1vbk5hbWUgLSBDb21tb24gbmFtZSBvZiB0aGUgY2VydGlmaWNhdGUuIElmIHRoaXMgaXMgbm90IHNldFxuICogdGhlbiB0aGUgc2NyaXB0IHdpbGwgdHJ5IHRvIHBhcnNlIGl0IGZyb20gdGhlIGdpdmVuIGNlcnRpZmljYXRlIGNvbnRlbnQuXG4gKiBAcHJvcGVydHkgez9ib29sZWFufSBpc1Jvb3QgW3RydWVdIC0gVGhpcyBvcHRpb24gZGVmaW5lcyB3aGVyZSB0aGUgY2VydGlmaWNhdGUgc2hvdWxkIGJlXG4gKiBpbnN0YWxsZWQgdG86IGVpdGhlciBUcnVzdGVkIFJvb3QgU3RvcmUgKGB0cnVlYCwgdGhlIGRlZmF1bHQgb3B0aW9uKSBvclxuICogdGhlIEtleWNoYWluIChgZmFsc2VgKS4gT24gZW52aXJvbm1lbnRzIG90aGVyIHRoYW4gWGNvZGUgMTEuNCsgU2ltdWxhdG9yIHRoaXNcbiAqIG9wdGlvbiBpcyBpZ25vcmVkLlxuICovXG5cbi8qKlxuICogSW5zdGFsbHMgYSBjdXN0b20gY2VydGlmaWNhdGUgb250byB0aGUgZGV2aWNlLlxuICogU2luY2UgWGNvZGUgU0RLIDExLjQgQXBwbGUgaGFzIGFkZGVkIGEgZGVkaWNhdGVkIHNpbWN0bCBzdWJjb21tYW5kIHRvIHF1aWNrbHkgaGFuZGxlXG4gKiBjZXJ0aWZpY2F0ZXMgb24gU2ltdWxhdG9yIG92ZXIgQ0xJLlxuICogT24gcmVhbCBkZXZpY2VzIG9yIHNpbXVsYXRvcnMgYmVmb3JlIFhjb2RlIDExLjQgU0RLXG4gKiBBcHBsZSBwcm92aWRlcyBubyBvZmZpY2lhbCB3YXkgdG8gZG8gaXQgdmlhIHRoZSBjb21tYW5kIGxpbmUuXG4gKiBJbiBzdWNoIGNhc2UgKGFuZCBhbHNvIGFzIGEgZmFsbGJhY2sgaWYgQ0xJIHNldHVwIGZhaWxzKVxuICogdGhpcyBtZXRob2QgdHJpZXMgdG8gd3JhcCB0aGUgY2VydGlmaWNhdGUgaW50byAubW9iaWxlY29uZmlnIGZvcm1hdFxuICogYW5kIHRoZW4gZGVwbG95cyB0aGUgd3JhcHBlZCBmaWxlIHRvIHRoZSBpbnRlcm5hbCBIVFRQIHNlcnZlcixcbiAqIHNvIG9uZSBjYW4gb3BlbiBpdCB2aWEgbW9iaWxlIFNhZmFyaS5cbiAqIFRoZW4gdGhlIGFsZ29yaXRobSBnb2VzIHRocm91Z2ggdGhlIHByb2ZpbGUgaW5zdGFsbGF0aW9uIHByb2NlZHVyZSBieVxuICogY2xpY2tpbmcgdGhlIG5lY2Vzc2FyeSBidXR0b25zIHVzaW5nIFdlYkRyaXZlckFnZW50LlxuICpcbiAqIEBwYXJhbSB7Q2VydGlmaWNhdGVJbnN0YWxsYXRpb25PcHRpb25zfSBvcHRzXG4gKiBAcmV0dXJucyB7P3N0cmluZ30gVGhlIGNvbnRlbnQgb2YgdGhlIGdlbmVyYXRlZCAubW9iaWxlY29uZmlnIGZpbGUgYXNcbiAqIGJhc2U2NC1lbmNvZGVkIHN0cmluZy4gVGhpcyBjb25maWcgbWlnaHQgYmUgdXNlZnVsIGZvciBkZWJ1Z2dpbmcgcHVycG9zZXMuXG4gKiBJZiB0aGUgY2VydGlmaWNhdGUgaGFzIGJlZW4gc3VjY2Vzc2Z1bGx5IHNldCB2aWEgQ0xJIHRoZW4gbm90aGluZyBpcyByZXR1cm5lZC5cbiAqL1xuY29tbWFuZHMubW9iaWxlSW5zdGFsbENlcnRpZmljYXRlID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlSW5zdGFsbENlcnRpZmljYXRlIChvcHRzID0ge30pIHtcbiAgY29uc3Qge1xuICAgIGNvbnRlbnQsXG4gICAgY29tbW9uTmFtZSxcbiAgICBpc1Jvb3QgPSB0cnVlLFxuICB9ID0gb3B0cztcbiAgaWYgKF8uaXNFbXB0eShjb250ZW50KSkge1xuICAgIHRocm93IG5ldyBFcnJvcignQ2VydGlmaWNhdGUgY29udGVudCBzaG91bGQgbm90IGJlIGVtcHR5Jyk7XG4gIH1cblxuICBpZiAodGhpcy5pc1NpbXVsYXRvcigpKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG1ldGhvZE5hbWUgPSBpc1Jvb3QgPyAnYWRkUm9vdENlcnRpZmljYXRlJyA6ICdhZGRDZXJ0aWZpY2F0ZSc7XG4gICAgICBhd2FpdCB0aGlzLm9wdHMuZGV2aWNlLnNpbWN0bFttZXRob2ROYW1lXShcbiAgICAgICAgQnVmZmVyLmZyb20oY29udGVudCwgJ2Jhc2U2NCcpLnRvU3RyaW5nKCksIHtyYXc6IHRydWV9XG4gICAgICApO1xuICAgICAgcmV0dXJuO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nLmRlYnVnKGUpO1xuICAgICAgdGhpcy5sb2cuaW5mbyhgVGhlIGNlcnRpZmljYXRlIGNhbm5vdCBiZSBpbnN0YWxsZWQgdmlhIENMSS4gYCArXG4gICAgICAgIGBGYWxsaW5nIGJhY2sgdG8gVUktYmFzZWQgZGVwbG95bWVudGApO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBjb25zdCBjbGllbnQgPSBuZXcgUHlpZGV2aWNlKHRoaXMub3B0cy51ZGlkKTtcbiAgICBpZiAoYXdhaXQgY2xpZW50LmFzc2VydEV4aXN0cyhmYWxzZSkpIHtcbiAgICAgIGF3YWl0IGNsaWVudC5pbnN0YWxsUHJvZmlsZSh7cGF5bG9hZDogQnVmZmVyLmZyb20oY29udGVudCwgJ2Jhc2U2NCcpfSk7XG4gICAgICByZXR1cm47XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubG9nLmluZm8oJ3B5aWRldmljZSBpcyBub3QgaW5zdGFsbGVkIG9uIHlvdXIgc3lzdGVtLiAnICtcbiAgICAgICAgJ0ZhbGxpbmcgYmFjayB0byB0aGUgKHNsb3cpIFVJLWJhc2VkIGluc3RhbGxhdGlvbicpO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHRtcFJvb3QgPSBhd2FpdCB0ZW1wRGlyLm9wZW5EaXIoKTtcbiAgY29uc3QgdG1wUG9ydCA9IGF3YWl0IGZpbmRBUG9ydE5vdEluVXNlKEhPU1RfUE9SVF9SQU5HRVswXSwgSE9TVF9QT1JUX1JBTkdFWzFdKTtcbiAgY29uc3QgY29uZmlnTmFtZSA9IGBhcHBpdW0uJHtDT05GSUdfRVhURU5TSU9OfWA7XG4gIGNvbnN0IGNvbmZpZ1BhdGggPSBwYXRoLnJlc29sdmUodG1wUm9vdCwgY29uZmlnTmFtZSk7XG4gIGNvbnN0IHRtcFNlcnZlciA9IGh0dHAuY3JlYXRlU2VydmVyKGFzeW5jIGZ1bmN0aW9uIChfLCByZXMpIHtcbiAgICBjb25zdCBjb25maWdGaWxlID0gYXdhaXQgZnMucmVhZEZpbGUoY29uZmlnUGF0aCk7XG4gICAgcmVzLmVuZChjb25maWdGaWxlKTtcbiAgfSk7XG4gIHRyeSB7XG4gICAgY29uc3QgY2VydEJ1ZmZlciA9IEJ1ZmZlci5mcm9tKGNvbnRlbnQsICdiYXNlNjQnKTtcbiAgICBjb25zdCBjbiA9IGNvbW1vbk5hbWUgfHwgYXdhaXQgZXh0cmFjdENvbW1vbk5hbWUoY2VydEJ1ZmZlcik7XG4gICAgY29uc3QgbW9iaWxlQ29uZmlnID0gdG9Nb2JpbGVDb25maWcoY2VydEJ1ZmZlciwgY24pO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBwbGlzdC51cGRhdGVQbGlzdEZpbGUoY29uZmlnUGF0aCwgbW9iaWxlQ29uZmlnLCBmYWxzZSwgZmFsc2UpO1xuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3Qgc3RvcmUgdGhlIGdlbmVyYXRlZCBjb25maWcgYXMgJyR7Y29uZmlnUGF0aH0nLiBgICtcbiAgICAgICAgICAgICAgICAgICAgICBgT3JpZ2luYWwgZXJyb3I6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gICAgfVxuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGhvc3QgPSBvcy5ob3N0bmFtZSgpO1xuICAgICAgY29uc3QgY2VydFVybCA9IGBodHRwOi8vJHtob3N0fToke3RtcFBvcnR9LyR7Y29uZmlnTmFtZX1gO1xuICAgICAgYXdhaXQgdG1wU2VydmVyLmxpc3Rlbih0bXBQb3J0KTtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHdhaXRGb3JDb25kaXRpb24oYXN5bmMgKCkgPT4ge1xuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gKGF3YWl0IGNoZWNrUG9ydFN0YXR1cyh0bXBQb3J0LCBob3N0KSkgPT09ICdvcGVuJztcbiAgICAgICAgICB9IGNhdGNoIChpZ24pIHtcbiAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0sIHtcbiAgICAgICAgICB3YWl0TXM6IFRNUFNFUlZFUl9TVEFSVFVQX1RJTUVPVVQsXG4gICAgICAgICAgaW50ZXJ2YWxNczogMzAwLFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5sb2cuZGVidWcoYFRoZSB0ZW1wb3Jhcnkgd2ViIHNlcnZlciBpcyBydW5uaW5nIGF0IGh0dHA6Ly8ke2hvc3R9OiR7dG1wUG9ydH1gKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBUaGUgdGVtcG9yYXJ5IHdlYiBzZXJ2ZXIgY2Fubm90IGJlIHN0YXJ0ZWQgYXQgaHR0cDovLyR7aG9zdH06JHt0bXBQb3J0fS5gKTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLmlzUmVhbERldmljZSgpKSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5wcm94eUNvbW1hbmQoJy91cmwnLCAnUE9TVCcsIHt1cmw6IGNlcnRVcmx9KTtcbiAgICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgICAgaWYgKHRoaXMuaXNXZWJDb250ZXh0KCkpIHtcbiAgICAgICAgICAgIC8vIFRoZSBjb21tYW5kIGFib3ZlIGRvZXMgbm90IGFsd2F5cyB3b3JrIG9uIHJlYWwgZGV2aWNlc1xuICAgICAgICAgICAgYXdhaXQgdGhpcy5zZXRVcmwoY2VydFVybCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGF3YWl0IHRoaXMub3B0cy5kZXZpY2Uub3BlblVybChjZXJ0VXJsKTtcbiAgICAgIH1cblxuICAgICAgbGV0IGlzQ2VydEFscmVhZHlJbnN0YWxsZWQgPSBmYWxzZTtcbiAgICAgIGlmICh1dGlsLmNvbXBhcmVWZXJzaW9ucyh0aGlzLm9wdHMucGxhdGZvcm1WZXJzaW9uLCAnPj0nLCAnMTIuMicpKSB7XG4gICAgICAgIGlmIChhd2FpdCBpbnN0YWxsUG9zdDEyMkNlcnRpZmljYXRlKHRoaXMsIGNuKSkge1xuICAgICAgICAgIGF3YWl0IGNsaWNrRWxlbWVudCh0aGlzLCBTZXR0aW5ncy5Qcm9maWxlKTtcbiAgICAgICAgICBhd2FpdCB0cnVzdENlcnRpZmljYXRlSW5QcmVmZXJlbmNlcyh0aGlzLCBjbik7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaXNDZXJ0QWxyZWFkeUluc3RhbGxlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChhd2FpdCBpbnN0YWxsUHJlMTIyQ2VydGlmaWNhdGUodGhpcykpIHtcbiAgICAgICAgICBhd2FpdCBjbGlja0VsZW1lbnQodGhpcywgQnV0dG9uLlJldHVybl90b19TZXR0aW5ncyk7XG4gICAgICAgICAgYXdhaXQgdHJ1c3RDZXJ0aWZpY2F0ZUluUHJlZmVyZW5jZXModGhpcywgY24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlzQ2VydEFscmVhZHlJbnN0YWxsZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoaXNDZXJ0QWxyZWFkeUluc3RhbGxlZCkge1xuICAgICAgICB0aGlzLmxvZy5pbmZvKGBJdCBsb29rcyBsaWtlIHRoZSAnJHtjbn0nIGNlcnRpZmljYXRlIGhhcyBiZWVuIGFscmVhZHkgYWRkZWQgdG8gdGhlIENBIHJvb3RgKTtcbiAgICAgIH1cbiAgICB9IGZpbmFsbHkge1xuICAgICAgaWYgKHRoaXMub3B0cy5idW5kbGVJZCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IHRoaXMuYWN0aXZhdGVBcHAodGhpcy5vcHRzLmJ1bmRsZUlkKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgIHRoaXMubG9nLndhcm4oYENhbm5vdCByZXN0b3JlIHRoZSBhcHBsaWNhdGlvbiAnJHt0aGlzLm9wdHMuYnVuZGxlSWR9Jy4gT3JpZ2luYWwgZXJyb3I6ICR7ZS5tZXNzYWdlfWApO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIChhd2FpdCB1dGlsLnRvSW5NZW1vcnlCYXNlNjQoY29uZmlnUGF0aCkpLnRvU3RyaW5nKCk7XG4gIH0gZmluYWxseSB7XG4gICAgYXdhaXQgdG1wU2VydmVyLmNsb3NlKCk7XG4gICAgYXdhaXQgZnMucmltcmFmKHRtcFJvb3QpO1xuICB9XG59O1xuXG5PYmplY3QuYXNzaWduKGV4dGVuc2lvbnMsIGNvbW1hbmRzKTtcbmV4cG9ydCB7IGNvbW1hbmRzLCBwYXJzZUNvbW1vbk5hbWUgfTtcbmV4cG9ydCBkZWZhdWx0IGV4dGVuc2lvbnM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLElBQUlBLFVBQVUsR0FBRyxFQUFqQjtBQUFBLElBQXFCQyxRQUFRLEdBQUcsRUFBaEM7O0FBRUEsTUFBTUMsZ0JBQWdCLEdBQUcsY0FBekI7QUFDQSxNQUFNQyxlQUFlLEdBQUcsQ0FBQyxLQUFELEVBQVEsS0FBUixDQUF4QjtBQUNBLE1BQU1DLHlCQUF5QixHQUFHLElBQWxDO0FBQ0EsTUFBTUMsUUFBUSxHQUFHO0VBQ2ZDLE9BQU8sRUFBRTtJQUNQQyxJQUFJLEVBQUUsa0JBREM7SUFFUEMsS0FBSyxFQUFFO0VBRkEsQ0FETTtFQUtmQyxPQUFPLEVBQUU7SUFDUEYsSUFBSSxFQUFFLHVCQURDO0lBRVBDLEtBQUssRUFBRztFQUZELENBTE07RUFTZkUsS0FBSyxFQUFFO0lBQ0xILElBQUksRUFBRSxrQkFERDtJQUVMQyxLQUFLLEVBQUU7RUFGRixDQVRRO0VBYWZHLDBCQUEwQixFQUFFO0lBQzFCSixJQUFJLEVBQUUsa0JBRG9CO0lBRTFCQyxLQUFLLEVBQUU7RUFGbUI7QUFiYixDQUFqQjtBQWtCQSxNQUFNSSxNQUFNLEdBQUc7RUFDYkMsT0FBTyxFQUFFO0lBQ1BOLElBQUksRUFBRSxrQkFEQztJQUVQQyxLQUFLLEVBQUU7RUFGQSxDQURJO0VBS2JNLEtBQUssRUFBRTtJQUNMUCxJQUFJLEVBQUUsa0JBREQ7SUFFTEMsS0FBSyxFQUFFO0VBRkYsQ0FMTTtFQVNiTyxJQUFJLEVBQUU7SUFDSlIsSUFBSSxFQUFFLGtCQURGO0lBRUpDLEtBQUssRUFBRTtFQUZILENBVE87RUFhYlEsa0JBQWtCLEVBQUU7SUFDbEJULElBQUksRUFBRSxrQkFEWTtJQUVsQkMsS0FBSyxFQUFFO0VBRlc7QUFiUCxDQUFmO0FBa0JBLE1BQU1TLEtBQUssR0FBRztFQUNaSixPQUFPLEVBQUU7SUFDUE4sSUFBSSxFQUFFLGtCQURDO0lBRVBDLEtBQUssRUFBRTtFQUZBO0FBREcsQ0FBZDs7QUFRQSxlQUFlVSxpQkFBZixDQUFrQ0MsVUFBbEMsRUFBOEM7RUFDNUMsTUFBTUMsUUFBUSxHQUFHLE1BQU1DLGdCQUFBLENBQVFDLElBQVIsQ0FBYTtJQUNsQ0MsTUFBTSxFQUFFLE1BRDBCO0lBRWxDQyxNQUFNLEVBQUU7RUFGMEIsQ0FBYixDQUF2Qjs7RUFJQSxJQUFJO0lBQ0YsTUFBTUMsV0FBQSxDQUFHQyxTQUFILENBQWFOLFFBQVEsQ0FBQ08sSUFBdEIsRUFBNEJSLFVBQTVCLENBQU47SUFDQSxNQUFNO01BQUNTO0lBQUQsSUFBVyxNQUFNLElBQUFDLGtCQUFBLEVBQUssU0FBTCxFQUFnQixDQUFDLE1BQUQsRUFBUyxRQUFULEVBQW1CLFVBQW5CLEVBQStCLEtBQS9CLEVBQXNDVCxRQUFRLENBQUNPLElBQS9DLENBQWhCLENBQXZCO0lBQ0EsT0FBT0csZUFBZSxDQUFDRixNQUFELENBQXRCO0VBQ0QsQ0FKRCxDQUlFLE9BQU9HLEdBQVAsRUFBWTtJQUNaLE1BQU0sSUFBSUMsS0FBSixDQUFXLHVGQUFELEdBQ0MsbUJBQWtCRCxHQUFHLENBQUNFLE9BQVEsRUFEekMsQ0FBTjtFQUVELENBUEQsU0FPVTtJQUNSLE1BQU1SLFdBQUEsQ0FBR1MsTUFBSCxDQUFVZCxRQUFRLENBQUNPLElBQW5CLENBQU47RUFDRDtBQUNGOztBQUVELE1BQU1RLGlCQUFpQixHQUFHLGVBQTFCO0FBQ0EsTUFBTUMsZ0JBQWdCLEdBQUcsbUJBQXpCOztBQUVBLFNBQVNOLGVBQVQsQ0FBMEJPLGlCQUExQixFQUE2QztFQUMzQyxNQUFNQyxNQUFNLEdBQUcsQ0FBQ0gsaUJBQUQsRUFBb0JDLGdCQUFwQixFQUFzQ0csTUFBdEMsQ0FBNkMsQ0FBQ0MsR0FBRCxFQUFNQyxDQUFOLEtBQVk7SUFDdEUsSUFBSUQsR0FBSixFQUFTO01BQ1AsT0FBT0EsR0FBUDtJQUNEOztJQUNELE1BQU1FLEtBQUssR0FBR0QsQ0FBQyxDQUFDWixJQUFGLENBQU9RLGlCQUFQLENBQWQ7SUFDQSxPQUFPSyxLQUFLLElBQUlBLEtBQUssQ0FBQyxDQUFELENBQXJCO0VBQ0QsQ0FOYyxFQU1aLElBTlksQ0FBZjs7RUFPQSxJQUFJLENBQUNKLE1BQUwsRUFBYTtJQUNYLE1BQU0sSUFBSU4sS0FBSixDQUFXLHFDQUFvQ0ssaUJBQWtCLFVBQWpFLENBQU47RUFDRDs7RUFDRCxPQUFPQyxNQUFQO0FBQ0Q7O0FBY0QsU0FBU0ssY0FBVCxDQUF5QnhCLFVBQXpCLEVBQXFDeUIsVUFBckMsRUFBaUQ7RUFDL0MsTUFBTUMsT0FBTyxHQUFHLE1BQU1DLGFBQUEsQ0FBS0MsTUFBTCxHQUFjQyxXQUFkLEVBQXRCOztFQUNBLE1BQU1DLFdBQVcsR0FBR0osT0FBTyxFQUEzQjtFQUNBLE9BQU87SUFDTEssY0FBYyxFQUFFLENBQUM7TUFDZkMsMEJBQTBCLEVBQUcsR0FBRVAsVUFBVyxNQUQzQjtNQUVmTSxjQUFjLEVBQUUvQixVQUZEO01BR2ZpQyxrQkFBa0IsRUFBRSw0QkFITDtNQUlmQyxrQkFBa0IsRUFBRVQsVUFKTDtNQUtmVSxpQkFBaUIsRUFBRywyQkFBMEJMLFdBQVksRUFMM0M7TUFNZk0sV0FBVyxFQUFFLHlCQU5FO01BT2ZDLFdBQVcsRUFBRVAsV0FQRTtNQVFmUSxjQUFjLEVBQUU7SUFSRCxDQUFELENBRFg7SUFXTEosa0JBQWtCLEVBQUVULFVBWGY7SUFZTFUsaUJBQWlCLEVBQUcsR0FBRUksV0FBQSxDQUFHQyxRQUFILEdBQWNDLEtBQWQsQ0FBb0IsR0FBcEIsRUFBeUIsQ0FBekIsQ0FBNEIsSUFBR2YsT0FBTyxFQUFHLEVBWjFEO0lBYUxnQix3QkFBd0IsRUFBRSxLQWJyQjtJQWNMTixXQUFXLEVBQUUsZUFkUjtJQWVMQyxXQUFXLEVBQUVYLE9BQU8sRUFmZjtJQWdCTFksY0FBYyxFQUFFO0VBaEJYLENBQVA7QUFrQkQ7O0FBRUQsZUFBZUssWUFBZixDQUE2QkMsTUFBN0IsRUFBcUNDLE9BQXJDLEVBQThDQyxPQUFPLEdBQUcsRUFBeEQsRUFBNEQ7RUFDMUQsSUFBSUMsT0FBTyxHQUFHLElBQWQ7RUFDQSxNQUFNO0lBQ0pDLE9BQU8sR0FBRyxJQUROO0lBRUpDLGVBQWUsR0FBRztFQUZkLElBR0ZILE9BSEo7RUFJQSxNQUFNSSxXQUFXLEdBQUcsR0FBcEI7O0VBQ0EsSUFBSTtJQUNGSCxPQUFPLEdBQUcsTUFBTSxJQUFBSSx1QkFBQSxFQUFjSCxPQUFPLEdBQUdFLFdBQVYsR0FBd0IsQ0FBeEIsR0FBNEJGLE9BQU8sR0FBR0UsV0FBcEQsRUFBaUVBLFdBQWpFLEVBQ2QsTUFBTU4sTUFBTSxDQUFDUSwyQkFBUCxDQUFtQ1AsT0FBTyxDQUFDekQsSUFBM0MsRUFBaUR5RCxPQUFPLENBQUN4RCxLQUF6RCxFQUFnRSxLQUFoRSxDQURRLENBQWhCO0VBR0QsQ0FKRCxDQUlFLE9BQU91QixHQUFQLEVBQVk7SUFDWixJQUFJcUMsZUFBSixFQUFxQjtNQUNuQixPQUFPLEtBQVA7SUFDRDs7SUFDRCxNQUFNLElBQUlwQyxLQUFKLENBQVcsZUFBY3dDLElBQUksQ0FBQ0MsU0FBTCxDQUFlVCxPQUFmLENBQXdCLFdBQVVHLE9BQVEsWUFBbkUsQ0FBTjtFQUNEOztFQUNELE1BQU1KLE1BQU0sQ0FBQ1csV0FBUCxDQUFtQlIsT0FBbkIsQ0FBTjtFQUNBLE9BQU8sSUFBUDtBQUNEOztBQUVELGVBQWVTLHdCQUFmLENBQXlDWixNQUF6QyxFQUFpRDtFQUUvQyxNQUFNRCxZQUFZLENBQUNDLE1BQUQsRUFBU25ELE1BQU0sQ0FBQ0UsS0FBaEIsRUFBdUI7SUFFdkNxRCxPQUFPLEVBQUU7RUFGOEIsQ0FBdkIsQ0FBbEI7RUFLQSxNQUFNUyxpQkFBQSxDQUFFQyxLQUFGLENBQVEsSUFBUixDQUFOOztFQUdBLElBQUksRUFBQyxNQUFNZixZQUFZLENBQUNDLE1BQUQsRUFBU25ELE1BQU0sQ0FBQ0MsT0FBaEIsRUFBeUI7SUFDOUN1RCxlQUFlLEVBQUU7RUFENkIsQ0FBekIsQ0FBbkIsQ0FBSixFQUVJO0lBQ0YsT0FBTyxLQUFQO0VBQ0Q7O0VBR0QsTUFBTVEsaUJBQUEsQ0FBRUMsS0FBRixDQUFRLElBQVIsQ0FBTjtFQUNBLE1BQU1mLFlBQVksQ0FBQ0MsTUFBRCxFQUFTbkQsTUFBTSxDQUFDQyxPQUFoQixDQUFsQjtFQUVBLE1BQU1pRCxZQUFZLENBQUNDLE1BQUQsRUFBUzlDLEtBQUssQ0FBQ0osT0FBZixDQUFsQjtFQUVBLE1BQU1pRCxZQUFZLENBQUNDLE1BQUQsRUFBU25ELE1BQU0sQ0FBQ0csSUFBaEIsQ0FBbEI7RUFDQSxPQUFPLElBQVA7QUFDRDs7QUFFRCxlQUFlK0QsNkJBQWYsQ0FBOENmLE1BQTlDLEVBQXNEZ0IsSUFBdEQsRUFBNEQ7RUFDMUQsTUFBTWpCLFlBQVksQ0FBQ0MsTUFBRCxFQUFTMUQsUUFBUSxDQUFDQyxPQUFsQixDQUFsQjtFQUNBLE1BQU13RCxZQUFZLENBQUNDLE1BQUQsRUFBUzFELFFBQVEsQ0FBQ0ssS0FBbEIsQ0FBbEI7RUFDQSxNQUFNc0UsYUFBYSxHQUFHO0lBQ3BCekUsSUFBSSxFQUFFLGtCQURjO0lBRXBCQyxLQUFLLEVBQUcsc0NBQXFDdUUsSUFBSztFQUY5QixDQUF0QjtFQUlBLE1BQU0sSUFBQUUsZUFBQSxFQUFNLENBQU4sRUFBUyxZQUFZO0lBQ3pCLE1BQU1sQixNQUFNLENBQUNtQixXQUFQLENBQW1CO01BQ3ZCaEIsT0FBTyxFQUFFLE1BQU1ILE1BQU0sQ0FBQ1EsMkJBQVAsQ0FBbUMsWUFBbkMsRUFBaUQsc0JBQWpELEVBQXlFLEtBQXpFLENBRFE7TUFFdkJZLFNBQVMsRUFBRTtJQUZZLENBQW5CLENBQU47SUFJQSxNQUFNckIsWUFBWSxDQUFDQyxNQUFELEVBQVMxRCxRQUFRLENBQUNNLDBCQUFsQixFQUE4QztNQUM5RHdELE9BQU8sRUFBRTtJQURxRCxDQUE5QyxDQUFsQjtJQUlBLE1BQU1KLE1BQU0sQ0FBQ1EsMkJBQVAsQ0FBbUNTLGFBQWEsQ0FBQ3pFLElBQWpELEVBQXVEeUUsYUFBYSxDQUFDeEUsS0FBckUsRUFBNEUsS0FBNUUsQ0FBTjtFQUNELENBVkssQ0FBTjs7RUFZQSxJQUFJLE1BQU1zRCxZQUFZLENBQUNDLE1BQUQsRUFBUztJQUM3QnhELElBQUksRUFBRXlFLGFBQWEsQ0FBQ3pFLElBRFM7SUFFN0JDLEtBQUssRUFBRyxHQUFFd0UsYUFBYSxDQUFDeEUsS0FBTTtFQUZELENBQVQsRUFHbkI7SUFDRDJELE9BQU8sRUFBRSxJQURSO0lBRURDLGVBQWUsRUFBRTtFQUZoQixDQUhtQixDQUF0QixFQU1JO0lBQ0YsTUFBTUwsTUFBTSxDQUFDcUIsZUFBUCxFQUFOO0VBQ0Q7QUFDRjs7QUFFRCxlQUFlQyx5QkFBZixDQUEwQ3RCLE1BQTFDLEVBQWtEZ0IsSUFBbEQsRUFBd0Q7RUFFdEQsTUFBTWpCLFlBQVksQ0FBQ0MsTUFBRCxFQUFTbkQsTUFBTSxDQUFDRSxLQUFoQixFQUF1QjtJQUV2Q3FELE9BQU8sRUFBRTtFQUY4QixDQUF2QixDQUFsQjtFQUtBLE1BQU1TLGlCQUFBLENBQUVDLEtBQUYsQ0FBUSxJQUFSLENBQU47RUFFQSxNQUFNZCxNQUFNLENBQUNxQixlQUFQLEVBQU47RUFDQSxNQUFNckIsTUFBTSxDQUFDdUIsV0FBUCxDQUFtQix1QkFBbkIsQ0FBTjtFQUNBLE1BQU14QixZQUFZLENBQUNDLE1BQUQsRUFBUzFELFFBQVEsQ0FBQ0MsT0FBbEIsQ0FBbEI7RUFDQSxNQUFNd0QsWUFBWSxDQUFDQyxNQUFELEVBQVMxRCxRQUFRLENBQUNJLE9BQWxCLENBQWxCO0VBRUEsSUFBSThFLFdBQVcsR0FBRyxLQUFsQjs7RUFDQSxLQUFLLElBQUlDLFFBQVEsR0FBRyxDQUFwQixFQUF1QkEsUUFBUSxHQUFHLENBQWxDLEVBQXFDLEVBQUVBLFFBQXZDLEVBQWlEO0lBQy9DLElBQUksTUFBTTFCLFlBQVksQ0FBQ0MsTUFBRCxFQUFTO01BQzdCeEQsSUFBSSxFQUFFLGtCQUR1QjtNQUU3QkMsS0FBSyxFQUFHLHNDQUFxQ3VFLElBQUs7SUFGckIsQ0FBVCxFQUduQjtNQUNEWixPQUFPLEVBQUUsR0FEUjtNQUVEQyxlQUFlLEVBQUU7SUFGaEIsQ0FIbUIsQ0FBdEIsRUFNSTtNQUNGbUIsV0FBVyxHQUFHLElBQWQ7TUFDQTtJQUNEOztJQUVELE1BQU14QixNQUFNLENBQUNtQixXQUFQLENBQW1CO01BQ3ZCaEIsT0FBTyxFQUFFLE1BQU1ILE1BQU0sQ0FBQ1EsMkJBQVAsQ0FBbUMsWUFBbkMsRUFBaUQsc0JBQWpELEVBQXlFLEtBQXpFLENBRFE7TUFFdkJZLFNBQVMsRUFBRTtJQUZZLENBQW5CLENBQU47RUFJRDs7RUFDRCxJQUFJLENBQUNJLFdBQUwsRUFBa0I7SUFDaEIsTUFBTSxJQUFJdkQsS0FBSixDQUFXLElBQUcrQyxJQUFLLDRDQUFuQixDQUFOO0VBQ0Q7O0VBR0QsSUFBSSxFQUFDLE1BQU1qQixZQUFZLENBQUNDLE1BQUQsRUFBU25ELE1BQU0sQ0FBQ0MsT0FBaEIsRUFBeUI7SUFDOUN1RCxlQUFlLEVBQUU7RUFENkIsQ0FBekIsQ0FBbkIsQ0FBSixFQUVJO0lBQ0YsT0FBTyxLQUFQO0VBQ0Q7O0VBQ0QsTUFBTVEsaUJBQUEsQ0FBRUMsS0FBRixDQUFRLElBQVIsQ0FBTjtFQUVBLE1BQU1mLFlBQVksQ0FBQ0MsTUFBRCxFQUFTbkQsTUFBTSxDQUFDQyxPQUFoQixDQUFsQjtFQUVBLE1BQU1pRCxZQUFZLENBQUNDLE1BQUQsRUFBUzlDLEtBQUssQ0FBQ0osT0FBZixDQUFsQjtFQUVBLE1BQU1pRCxZQUFZLENBQUNDLE1BQUQsRUFBU25ELE1BQU0sQ0FBQ0csSUFBaEIsQ0FBbEI7RUFFQSxPQUFPLElBQVA7QUFDRDs7QUFnQ0RkLFFBQVEsQ0FBQ3dGLHdCQUFULEdBQW9DLGVBQWVBLHdCQUFmLENBQXlDQyxJQUFJLEdBQUcsRUFBaEQsRUFBb0Q7RUFDdEYsTUFBTTtJQUNKQyxPQURJO0lBRUovQyxVQUZJO0lBR0pnRCxNQUFNLEdBQUc7RUFITCxJQUlGRixJQUpKOztFQUtBLElBQUlHLGVBQUEsQ0FBRUMsT0FBRixDQUFVSCxPQUFWLENBQUosRUFBd0I7SUFDdEIsTUFBTSxJQUFJM0QsS0FBSixDQUFVLHlDQUFWLENBQU47RUFDRDs7RUFFRCxJQUFJLEtBQUsrRCxXQUFMLEVBQUosRUFBd0I7SUFDdEIsSUFBSTtNQUNGLE1BQU1DLFVBQVUsR0FBR0osTUFBTSxHQUFHLG9CQUFILEdBQTBCLGdCQUFuRDtNQUNBLE1BQU0sS0FBS0YsSUFBTCxDQUFVTyxNQUFWLENBQWlCQyxNQUFqQixDQUF3QkYsVUFBeEIsRUFDSkcsTUFBTSxDQUFDQyxJQUFQLENBQVlULE9BQVosRUFBcUIsUUFBckIsRUFBK0JVLFFBQS9CLEVBREksRUFDdUM7UUFBQ0MsR0FBRyxFQUFFO01BQU4sQ0FEdkMsQ0FBTjtNQUdBO0lBQ0QsQ0FORCxDQU1FLE9BQU9DLENBQVAsRUFBVTtNQUNWLEtBQUtDLEdBQUwsQ0FBU0MsS0FBVCxDQUFlRixDQUFmO01BQ0EsS0FBS0MsR0FBTCxDQUFTRSxJQUFULENBQWUsK0NBQUQsR0FDWCxxQ0FESDtJQUVEO0VBQ0YsQ0FaRCxNQVlPO0lBQ0wsTUFBTUMsTUFBTSxHQUFHLElBQUlDLDBCQUFKLENBQWMsS0FBS2xCLElBQUwsQ0FBVW1CLElBQXhCLENBQWY7O0lBQ0EsSUFBSSxNQUFNRixNQUFNLENBQUNHLFlBQVAsQ0FBb0IsS0FBcEIsQ0FBVixFQUFzQztNQUNwQyxNQUFNSCxNQUFNLENBQUNJLGNBQVAsQ0FBc0I7UUFBQ0MsT0FBTyxFQUFFYixNQUFNLENBQUNDLElBQVAsQ0FBWVQsT0FBWixFQUFxQixRQUFyQjtNQUFWLENBQXRCLENBQU47TUFDQTtJQUNELENBSEQsTUFHTztNQUNMLEtBQUthLEdBQUwsQ0FBU0UsSUFBVCxDQUFjLGdEQUNaLGtEQURGO0lBRUQ7RUFDRjs7RUFFRCxNQUFNTyxPQUFPLEdBQUcsTUFBTTVGLGdCQUFBLENBQVE2RixPQUFSLEVBQXRCO0VBQ0EsTUFBTUMsT0FBTyxHQUFHLE1BQU0sSUFBQUMsOEJBQUEsRUFBa0JqSCxlQUFlLENBQUMsQ0FBRCxDQUFqQyxFQUFzQ0EsZUFBZSxDQUFDLENBQUQsQ0FBckQsQ0FBdEI7RUFDQSxNQUFNa0gsVUFBVSxHQUFJLFVBQVNuSCxnQkFBaUIsRUFBOUM7O0VBQ0EsTUFBTW9ILFVBQVUsR0FBRzNGLGFBQUEsQ0FBSzRGLE9BQUwsQ0FBYU4sT0FBYixFQUFzQkksVUFBdEIsQ0FBbkI7O0VBQ0EsTUFBTUcsU0FBUyxHQUFHQyxhQUFBLENBQUtDLFlBQUwsQ0FBa0IsZ0JBQWdCN0IsQ0FBaEIsRUFBbUI4QixHQUFuQixFQUF3QjtJQUMxRCxNQUFNQyxVQUFVLEdBQUcsTUFBTW5HLFdBQUEsQ0FBR29HLFFBQUgsQ0FBWVAsVUFBWixDQUF6QjtJQUNBSyxHQUFHLENBQUNHLEdBQUosQ0FBUUYsVUFBUjtFQUNELENBSGlCLENBQWxCOztFQUlBLElBQUk7SUFDRixNQUFNekcsVUFBVSxHQUFHZ0YsTUFBTSxDQUFDQyxJQUFQLENBQVlULE9BQVosRUFBcUIsUUFBckIsQ0FBbkI7SUFDQSxNQUFNb0MsRUFBRSxHQUFHbkYsVUFBVSxLQUFJLE1BQU0xQixpQkFBaUIsQ0FBQ0MsVUFBRCxDQUEzQixDQUFyQjtJQUNBLE1BQU02RyxZQUFZLEdBQUdyRixjQUFjLENBQUN4QixVQUFELEVBQWE0RyxFQUFiLENBQW5DOztJQUNBLElBQUk7TUFDRixNQUFNRSxjQUFBLENBQU1DLGVBQU4sQ0FBc0JaLFVBQXRCLEVBQWtDVSxZQUFsQyxFQUFnRCxLQUFoRCxFQUF1RCxLQUF2RCxDQUFOO0lBQ0QsQ0FGRCxDQUVFLE9BQU9qRyxHQUFQLEVBQVk7TUFDWixNQUFNLElBQUlDLEtBQUosQ0FBVyx5Q0FBd0NzRixVQUFXLEtBQXBELEdBQ0MsbUJBQWtCdkYsR0FBRyxDQUFDRSxPQUFRLEVBRHpDLENBQU47SUFFRDs7SUFFRCxJQUFJO01BQ0YsTUFBTWtHLElBQUksR0FBR3pFLFdBQUEsQ0FBR0MsUUFBSCxFQUFiOztNQUNBLE1BQU15RSxPQUFPLEdBQUksVUFBU0QsSUFBSyxJQUFHaEIsT0FBUSxJQUFHRSxVQUFXLEVBQXhEO01BQ0EsTUFBTUcsU0FBUyxDQUFDYSxNQUFWLENBQWlCbEIsT0FBakIsQ0FBTjs7TUFDQSxJQUFJO1FBQ0YsTUFBTSxJQUFBbUIsMEJBQUEsRUFBaUIsWUFBWTtVQUNqQyxJQUFJO1lBQ0YsT0FBTyxDQUFDLE1BQU0sSUFBQUMsNEJBQUEsRUFBZ0JwQixPQUFoQixFQUF5QmdCLElBQXpCLENBQVAsTUFBMkMsTUFBbEQ7VUFDRCxDQUZELENBRUUsT0FBT0ssR0FBUCxFQUFZO1lBQ1osT0FBTyxLQUFQO1VBQ0Q7UUFDRixDQU5LLEVBTUg7VUFDREMsTUFBTSxFQUFFckkseUJBRFA7VUFFRHNJLFVBQVUsRUFBRTtRQUZYLENBTkcsQ0FBTjtRQVVBLEtBQUtsQyxHQUFMLENBQVNDLEtBQVQsQ0FBZ0IsaURBQWdEMEIsSUFBSyxJQUFHaEIsT0FBUSxFQUFoRjtNQUNELENBWkQsQ0FZRSxPQUFPWixDQUFQLEVBQVU7UUFDVixNQUFNLElBQUl2RSxLQUFKLENBQVcsd0RBQXVEbUcsSUFBSyxJQUFHaEIsT0FBUSxHQUFsRixDQUFOO01BQ0Q7O01BQ0QsSUFBSSxLQUFLd0IsWUFBTCxFQUFKLEVBQXlCO1FBQ3ZCLElBQUk7VUFDRixNQUFNLEtBQUtDLFlBQUwsQ0FBa0IsTUFBbEIsRUFBMEIsTUFBMUIsRUFBa0M7WUFBQ0MsR0FBRyxFQUFFVDtVQUFOLENBQWxDLENBQU47UUFDRCxDQUZELENBRUUsT0FBT3JHLEdBQVAsRUFBWTtVQUNaLElBQUksS0FBSytHLFlBQUwsRUFBSixFQUF5QjtZQUV2QixNQUFNLEtBQUtDLE1BQUwsQ0FBWVgsT0FBWixDQUFOO1VBQ0QsQ0FIRCxNQUdPO1lBQ0wsTUFBTXJHLEdBQU47VUFDRDtRQUNGO01BQ0YsQ0FYRCxNQVdPO1FBQ0wsTUFBTSxLQUFLMkQsSUFBTCxDQUFVTyxNQUFWLENBQWlCK0MsT0FBakIsQ0FBeUJaLE9BQXpCLENBQU47TUFDRDs7TUFFRCxJQUFJYSxzQkFBc0IsR0FBRyxLQUE3Qjs7TUFDQSxJQUFJbkcsYUFBQSxDQUFLb0csZUFBTCxDQUFxQixLQUFLeEQsSUFBTCxDQUFVeUQsZUFBL0IsRUFBZ0QsSUFBaEQsRUFBc0QsTUFBdEQsQ0FBSixFQUFtRTtRQUNqRSxJQUFJLE1BQU05RCx5QkFBeUIsQ0FBQyxJQUFELEVBQU8wQyxFQUFQLENBQW5DLEVBQStDO1VBQzdDLE1BQU1qRSxZQUFZLENBQUMsSUFBRCxFQUFPekQsUUFBUSxDQUFDSSxPQUFoQixDQUFsQjtVQUNBLE1BQU1xRSw2QkFBNkIsQ0FBQyxJQUFELEVBQU9pRCxFQUFQLENBQW5DO1FBQ0QsQ0FIRCxNQUdPO1VBQ0xrQixzQkFBc0IsR0FBRyxJQUF6QjtRQUNEO01BQ0YsQ0FQRCxNQU9PO1FBQ0wsSUFBSSxNQUFNdEUsd0JBQXdCLENBQUMsSUFBRCxDQUFsQyxFQUEwQztVQUN4QyxNQUFNYixZQUFZLENBQUMsSUFBRCxFQUFPbEQsTUFBTSxDQUFDSSxrQkFBZCxDQUFsQjtVQUNBLE1BQU04RCw2QkFBNkIsQ0FBQyxJQUFELEVBQU9pRCxFQUFQLENBQW5DO1FBQ0QsQ0FIRCxNQUdPO1VBQ0xrQixzQkFBc0IsR0FBRyxJQUF6QjtRQUNEO01BQ0Y7O01BQ0QsSUFBSUEsc0JBQUosRUFBNEI7UUFDMUIsS0FBS3pDLEdBQUwsQ0FBU0UsSUFBVCxDQUFlLHNCQUFxQnFCLEVBQUcscURBQXZDO01BQ0Q7SUFDRixDQXJERCxTQXFEVTtNQUNSLElBQUksS0FBS3JDLElBQUwsQ0FBVTBELFFBQWQsRUFBd0I7UUFDdEIsSUFBSTtVQUNGLE1BQU0sS0FBSzlELFdBQUwsQ0FBaUIsS0FBS0ksSUFBTCxDQUFVMEQsUUFBM0IsQ0FBTjtRQUNELENBRkQsQ0FFRSxPQUFPN0MsQ0FBUCxFQUFVO1VBQ1YsS0FBS0MsR0FBTCxDQUFTNkMsSUFBVCxDQUFlLG1DQUFrQyxLQUFLM0QsSUFBTCxDQUFVMEQsUUFBUyxzQkFBcUI3QyxDQUFDLENBQUN0RSxPQUFRLEVBQW5HO1FBQ0Q7TUFDRjtJQUNGOztJQUVELE9BQU8sQ0FBQyxNQUFNYSxhQUFBLENBQUt3RyxnQkFBTCxDQUFzQmhDLFVBQXRCLENBQVAsRUFBMENqQixRQUExQyxFQUFQO0VBQ0QsQ0EzRUQsU0EyRVU7SUFDUixNQUFNbUIsU0FBUyxDQUFDK0IsS0FBVixFQUFOO0lBQ0EsTUFBTTlILFdBQUEsQ0FBR1MsTUFBSCxDQUFVK0UsT0FBVixDQUFOO0VBQ0Q7QUFDRixDQXhIRDs7QUEwSEF1QyxNQUFNLENBQUNDLE1BQVAsQ0FBY3pKLFVBQWQsRUFBMEJDLFFBQTFCO2VBRWVELFUifQ==
415
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2NlcnRpZmljYXRlLmpzIiwibmFtZXMiOlsiZXh0ZW5zaW9ucyIsImNvbW1hbmRzIiwiQ09ORklHX0VYVEVOU0lPTiIsIkhPU1RfUE9SVF9SQU5HRSIsIlRNUFNFUlZFUl9TVEFSVFVQX1RJTUVPVVQiLCJTZXR0aW5ncyIsIkdlbmVyYWwiLCJ0eXBlIiwidmFsdWUiLCJQcm9maWxlIiwiQWJvdXQiLCJDZXJ0aWZpY2F0ZV9UcnVzdF9TZXR0aW5ncyIsIkJ1dHRvbiIsIkluc3RhbGwiLCJBbGxvdyIsIkRvbmUiLCJSZXR1cm5fdG9fU2V0dGluZ3MiLCJBbGVydCIsImV4dHJhY3RDb21tb25OYW1lIiwiY2VydEJ1ZmZlciIsInRlbXBDZXJ0IiwidGVtcERpciIsIm9wZW4iLCJwcmVmaXgiLCJzdWZmaXgiLCJmcyIsIndyaXRlRmlsZSIsInBhdGgiLCJzdGRvdXQiLCJleGVjIiwicGFyc2VDb21tb25OYW1lIiwiZXJyIiwiRXJyb3IiLCJtZXNzYWdlIiwicmltcmFmIiwiTElCUkVfU1NMX1BBVFRFUk4iLCJPUEVOX1NTTF9QQVRURVJOIiwic3RyaW5nQ2VydGlmaWNhdGUiLCJyZXN1bHQiLCJyZWR1Y2UiLCJhY2MiLCJyIiwibWF0Y2giLCJ0b01vYmlsZUNvbmZpZyIsImNvbW1vbk5hbWUiLCJnZXRVVUlEIiwidXRpbCIsInV1aWRWNCIsInRvVXBwZXJDYXNlIiwiY29udGVudFV1aWQiLCJQYXlsb2FkQ29udGVudCIsIlBheWxvYWRDZXJ0aWZpY2F0ZUZpbGVOYW1lIiwiUGF5bG9hZERlc2NyaXB0aW9uIiwiUGF5bG9hZERpc3BsYXlOYW1lIiwiUGF5bG9hZElkZW50aWZpZXIiLCJQYXlsb2FkVHlwZSIsIlBheWxvYWRVVUlEIiwiUGF5bG9hZFZlcnNpb24iLCJvcyIsImhvc3RuYW1lIiwic3BsaXQiLCJQYXlsb2FkUmVtb3ZhbERpc2FsbG93ZWQiLCJjbGlja0VsZW1lbnQiLCJkcml2ZXIiLCJsb2NhdG9yIiwib3B0aW9ucyIsImVsZW1lbnQiLCJ0aW1lb3V0Iiwic2tpcElmSW52aXNpYmxlIiwibG9va3VwRGVsYXkiLCJyZXRyeUludGVydmFsIiwiZmluZE5hdGl2ZUVsZW1lbnRPckVsZW1lbnRzIiwiSlNPTiIsInN0cmluZ2lmeSIsIm5hdGl2ZUNsaWNrIiwiaW5zdGFsbFByZTEyMkNlcnRpZmljYXRlIiwiQiIsImRlbGF5IiwidHJ1c3RDZXJ0aWZpY2F0ZUluUHJlZmVyZW5jZXMiLCJuYW1lIiwic3dpdGNoTG9jYXRvciIsInJldHJ5IiwibW9iaWxlU3dpcGUiLCJkaXJlY3Rpb24iLCJwb3N0QWNjZXB0QWxlcnQiLCJpbnN0YWxsUG9zdDEyMkNlcnRpZmljYXRlIiwiYWN0aXZhdGVBcHAiLCJpc0NlcnRGb3VuZCIsInN3aXBlTnVtIiwibW9iaWxlSW5zdGFsbENlcnRpZmljYXRlIiwib3B0cyIsImNvbnRlbnQiLCJpc1Jvb3QiLCJfIiwiaXNFbXB0eSIsImlzU2ltdWxhdG9yIiwibWV0aG9kTmFtZSIsImRldmljZSIsInNpbWN0bCIsIkJ1ZmZlciIsImZyb20iLCJ0b1N0cmluZyIsInJhdyIsImUiLCJsb2ciLCJkZWJ1ZyIsImluZm8iLCJjbGllbnQiLCJQeWlkZXZpY2UiLCJ1ZGlkIiwiYXNzZXJ0RXhpc3RzIiwiaW5zdGFsbFByb2ZpbGUiLCJwYXlsb2FkIiwidG1wUm9vdCIsIm9wZW5EaXIiLCJ0bXBQb3J0IiwiZmluZEFQb3J0Tm90SW5Vc2UiLCJjb25maWdOYW1lIiwiY29uZmlnUGF0aCIsInJlc29sdmUiLCJ0bXBTZXJ2ZXIiLCJodHRwIiwiY3JlYXRlU2VydmVyIiwicmVzIiwiY29uZmlnRmlsZSIsInJlYWRGaWxlIiwiZW5kIiwiY24iLCJtb2JpbGVDb25maWciLCJwbGlzdCIsInVwZGF0ZVBsaXN0RmlsZSIsImhvc3QiLCJjZXJ0VXJsIiwibGlzdGVuIiwid2FpdEZvckNvbmRpdGlvbiIsImNoZWNrUG9ydFN0YXR1cyIsImlnbiIsIndhaXRNcyIsImludGVydmFsTXMiLCJpc1JlYWxEZXZpY2UiLCJwcm94eUNvbW1hbmQiLCJ1cmwiLCJpc1dlYkNvbnRleHQiLCJzZXRVcmwiLCJvcGVuVXJsIiwiaXNDZXJ0QWxyZWFkeUluc3RhbGxlZCIsImNvbXBhcmVWZXJzaW9ucyIsInBsYXRmb3JtVmVyc2lvbiIsImJ1bmRsZUlkIiwid2FybiIsInRvSW5NZW1vcnlCYXNlNjQiLCJjbG9zZSIsIm1vYmlsZUxpc3RDZXJ0aWZpY2F0ZXMiLCJlcnJvcnMiLCJOb3RJbXBsZW1lbnRlZEVycm9yIiwibGlzdFByb2ZpbGVzIiwiT2JqZWN0IiwiYXNzaWduIl0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLiIsInNvdXJjZXMiOlsibGliL2NvbW1hbmRzL2NlcnRpZmljYXRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBmcywgcGxpc3QsIHRlbXBEaXIsIHV0aWwgfSBmcm9tICdhcHBpdW0vc3VwcG9ydCc7XG5pbXBvcnQgeyByZXRyeUludGVydmFsLCByZXRyeSwgd2FpdEZvckNvbmRpdGlvbiB9IGZyb20gJ2FzeW5jYm94JztcbmltcG9ydCBCIGZyb20gJ2JsdWViaXJkJztcbmltcG9ydCBvcyBmcm9tICdvcyc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCBodHRwIGZyb20gJ2h0dHAnO1xuaW1wb3J0IHsgZXhlYyB9IGZyb20gJ3RlZW5fcHJvY2Vzcyc7XG5pbXBvcnQgeyBmaW5kQVBvcnROb3RJblVzZSwgY2hlY2tQb3J0U3RhdHVzIH0gZnJvbSAncG9ydHNjYW5uZXInO1xuaW1wb3J0IFB5aWRldmljZSBmcm9tICcuLi9weS1pb3MtZGV2aWNlLWNsaWVudCc7XG5pbXBvcnQgeyBlcnJvcnMgfSBmcm9tICdhcHBpdW0vZHJpdmVyJztcblxubGV0IGV4dGVuc2lvbnMgPSB7fSwgY29tbWFuZHMgPSB7fTtcblxuY29uc3QgQ09ORklHX0VYVEVOU0lPTiA9ICdtb2JpbGVjb25maWcnO1xuY29uc3QgSE9TVF9QT1JUX1JBTkdFID0gWzM4MjAwLCAzODI5OV07XG5jb25zdCBUTVBTRVJWRVJfU1RBUlRVUF9USU1FT1VUID0gNTAwMDtcbmNvbnN0IFNldHRpbmdzID0ge1xuICBHZW5lcmFsOiB7XG4gICAgdHlwZTogJ2FjY2Vzc2liaWxpdHkgaWQnLFxuICAgIHZhbHVlOiAnR2VuZXJhbCcsXG4gIH0sXG4gIFByb2ZpbGU6IHtcbiAgICB0eXBlOiAnLWlvcyBwcmVkaWNhdGUgc3RyaW5nJyxcbiAgICB2YWx1ZTogYG5hbWUgQkVHSU5TV0lUSCAnUHJvZmlsZSdgLFxuICB9LFxuICBBYm91dDoge1xuICAgIHR5cGU6ICdhY2Nlc3NpYmlsaXR5IGlkJyxcbiAgICB2YWx1ZTogJ0Fib3V0JyxcbiAgfSxcbiAgQ2VydGlmaWNhdGVfVHJ1c3RfU2V0dGluZ3M6IHtcbiAgICB0eXBlOiAnYWNjZXNzaWJpbGl0eSBpZCcsXG4gICAgdmFsdWU6ICdDZXJ0aWZpY2F0ZSBUcnVzdCBTZXR0aW5ncycsXG4gIH0sXG59O1xuY29uc3QgQnV0dG9uID0ge1xuICBJbnN0YWxsOiB7XG4gICAgdHlwZTogJ2FjY2Vzc2liaWxpdHkgaWQnLFxuICAgIHZhbHVlOiAnSW5zdGFsbCcsXG4gIH0sXG4gIEFsbG93OiB7XG4gICAgdHlwZTogJ2FjY2Vzc2liaWxpdHkgaWQnLFxuICAgIHZhbHVlOiAnQWxsb3cnLFxuICB9LFxuICBEb25lOiB7XG4gICAgdHlwZTogJ2FjY2Vzc2liaWxpdHkgaWQnLFxuICAgIHZhbHVlOiAnRG9uZScsXG4gIH0sXG4gIFJldHVybl90b19TZXR0aW5nczoge1xuICAgIHR5cGU6ICdhY2Nlc3NpYmlsaXR5IGlkJyxcbiAgICB2YWx1ZTogJ1JldHVybiB0byBTZXR0aW5ncycsXG4gIH0sXG59O1xuY29uc3QgQWxlcnQgPSB7XG4gIEluc3RhbGw6IHtcbiAgICB0eXBlOiAnLWlvcyBjbGFzcyBjaGFpbicsXG4gICAgdmFsdWU6ICcqKi9YQ1VJRWxlbWVudFR5cGVBbnlbYHR5cGUgPT0gXFwnWENVSUVsZW1lbnRUeXBlQWxlcnRcXCcgT1IgdHlwZSA9PSBcXCdYQ1VJRWxlbWVudFR5cGVTaGVldFxcJ2BdLyoqL1hDVUlFbGVtZW50VHlwZUJ1dHRvbltgbGFiZWwgPT0gXFwnSW5zdGFsbFxcJ2BdJyxcbiAgfSxcbn07XG5cblxuYXN5bmMgZnVuY3Rpb24gZXh0cmFjdENvbW1vbk5hbWUgKGNlcnRCdWZmZXIpIHtcbiAgY29uc3QgdGVtcENlcnQgPSBhd2FpdCB0ZW1wRGlyLm9wZW4oe1xuICAgIHByZWZpeDogJ2NlcnQnLFxuICAgIHN1ZmZpeDogJy5jZXInXG4gIH0pO1xuICB0cnkge1xuICAgIGF3YWl0IGZzLndyaXRlRmlsZSh0ZW1wQ2VydC5wYXRoLCBjZXJ0QnVmZmVyKTtcbiAgICBjb25zdCB7c3Rkb3V0fSA9IGF3YWl0IGV4ZWMoJ29wZW5zc2wnLCBbJ3g1MDknLCAnLW5vb3V0JywgJy1zdWJqZWN0JywgJy1pbicsIHRlbXBDZXJ0LnBhdGhdKTtcbiAgICByZXR1cm4gcGFyc2VDb21tb25OYW1lKHN0ZG91dCk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IHBhcnNlIGNvbW1vbiBuYW1lIHZhbHVlIGZyb20gdGhlIGNlcnRpZmljYXRlLiBJcyBpdCB2YWxpZCBhbmQgYmFzZTY0LWVuY29kZWQ/IGAgK1xuICAgICAgICAgICAgICAgICAgICBgT3JpZ2luYWwgZXJyb3I6ICR7ZXJyLm1lc3NhZ2V9YCk7XG4gIH0gZmluYWxseSB7XG4gICAgYXdhaXQgZnMucmltcmFmKHRlbXBDZXJ0LnBhdGgpO1xuICB9XG59XG5cbmNvbnN0IExJQlJFX1NTTF9QQVRURVJOID0gL1xcL0NOPShbXlxcL10rKS87IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tdXNlbGVzcy1lc2NhcGVcbmNvbnN0IE9QRU5fU1NMX1BBVFRFUk4gPSAvLFxcc0NOXFxzPVxccyhbXixdKykvO1xuXG5mdW5jdGlvbiBwYXJzZUNvbW1vbk5hbWUgKHN0cmluZ0NlcnRpZmljYXRlKSB7XG4gIGNvbnN0IHJlc3VsdCA9IFtMSUJSRV9TU0xfUEFUVEVSTiwgT1BFTl9TU0xfUEFUVEVSTl0ucmVkdWNlKChhY2MsIHIpID0+IHtcbiAgICBpZiAoYWNjKSB7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH1cbiAgICBjb25zdCBtYXRjaCA9IHIuZXhlYyhzdHJpbmdDZXJ0aWZpY2F0ZSk7XG4gICAgcmV0dXJuIG1hdGNoICYmIG1hdGNoWzFdO1xuICB9LCBudWxsKTtcbiAgaWYgKCFyZXN1bHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYFRoZXJlIGlzIG5vIGNvbW1vbiBuYW1lIHZhbHVlIGluICcke3N0cmluZ0NlcnRpZmljYXRlfScgb3V0cHV0YCk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBHZW5lcmF0ZXMgQXBwbGUncyBvdmVyLXRoZS1haXIgY29uZmlndXJhdGlvbiBwcm9maWxlXG4gKiBmb3IgY2VydGlmaWNhdGUgZGVwbG95bWVudCBiYXNlZCBvbiB0aGUgZ2l2ZW4gUEVNIGNlcnRpZmljYXRlIGNvbnRlbnQuXG4gKiBSZWFkIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9saWJyYXJ5L2NvbnRlbnQvZG9jdW1lbnRhdGlvbi9OZXR3b3JraW5nSW50ZXJuZXQvQ29uY2VwdHVhbC9pUGhvbmVPVEFDb25maWd1cmF0aW9uL0ludHJvZHVjdGlvbi9JbnRyb2R1Y3Rpb24uaHRtbFxuICogZm9yIG1vcmUgZGV0YWlscyBvbiBzdWNoIHByb2ZpbGVzLlxuICpcbiAqIEBwYXJhbSB7QnVmZmVyfSBjZXJ0QnVmZmVyIC0gVGhlIGFjdHVhbCBjb250ZW50IG9mIFBFTSBjZXJ0aWZpY2F0ZSBlbmNvZGVkIGludG8gTm9kZUpTIGJ1ZmZlclxuICogQHBhcmFtIHtzdHJpbmd9IGNvbW1vbk5hbWUgLSBDZXJ0aWZpY2F0ZSdzIGNvbW1vbiBuYW1lXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBUaGUgZW5jb2RlZCBzdHJ1Y3R1cmUgb2YgdGhlIGdpdmVuIGNlcnRpZmljYXRlLCB3aGljaCBpcyByZWFkeSB0byBiZSBwYXNzZWRcbiAqIGFzIGFuIGFyZ3VtZW50IHRvIHBsaXN0IGJ1aWxkZXJcbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgZ2l2ZW4gY2VydGlmaWNhdGUgY2Fubm90IGJlIHBhcnNlZFxuICovXG5mdW5jdGlvbiB0b01vYmlsZUNvbmZpZyAoY2VydEJ1ZmZlciwgY29tbW9uTmFtZSkge1xuICBjb25zdCBnZXRVVUlEID0gKCkgPT4gdXRpbC51dWlkVjQoKS50b1VwcGVyQ2FzZSgpO1xuICBjb25zdCBjb250ZW50VXVpZCA9IGdldFVVSUQoKTtcbiAgcmV0dXJuIHtcbiAgICBQYXlsb2FkQ29udGVudDogW3tcbiAgICAgIFBheWxvYWRDZXJ0aWZpY2F0ZUZpbGVOYW1lOiBgJHtjb21tb25OYW1lfS5jZXJgLFxuICAgICAgUGF5bG9hZENvbnRlbnQ6IGNlcnRCdWZmZXIsXG4gICAgICBQYXlsb2FkRGVzY3JpcHRpb246ICdBZGRzIGEgQ0Egcm9vdCBjZXJ0aWZpY2F0ZScsXG4gICAgICBQYXlsb2FkRGlzcGxheU5hbWU6IGNvbW1vbk5hbWUsXG4gICAgICBQYXlsb2FkSWRlbnRpZmllcjogYGNvbS5hcHBsZS5zZWN1cml0eS5yb290LiR7Y29udGVudFV1aWR9YCxcbiAgICAgIFBheWxvYWRUeXBlOiAnY29tLmFwcGxlLnNlY3VyaXR5LnJvb3QnLFxuICAgICAgUGF5bG9hZFVVSUQ6IGNvbnRlbnRVdWlkLFxuICAgICAgUGF5bG9hZFZlcnNpb246IDFcbiAgICB9XSxcbiAgICBQYXlsb2FkRGlzcGxheU5hbWU6IGNvbW1vbk5hbWUsXG4gICAgUGF5bG9hZElkZW50aWZpZXI6IGAke29zLmhvc3RuYW1lKCkuc3BsaXQoJy4nKVswXX0uJHtnZXRVVUlEKCl9YCxcbiAgICBQYXlsb2FkUmVtb3ZhbERpc2FsbG93ZWQ6IGZhbHNlLFxuICAgIFBheWxvYWRUeXBlOiAnQ29uZmlndXJhdGlvbicsXG4gICAgUGF5bG9hZFVVSUQ6IGdldFVVSUQoKSxcbiAgICBQYXlsb2FkVmVyc2lvbjogMVxuICB9O1xufVxuXG5hc3luYyBmdW5jdGlvbiBjbGlja0VsZW1lbnQgKGRyaXZlciwgbG9jYXRvciwgb3B0aW9ucyA9IHt9KSB7XG4gIGxldCBlbGVtZW50ID0gbnVsbDtcbiAgY29uc3Qge1xuICAgIHRpbWVvdXQgPSA1MDAwLFxuICAgIHNraXBJZkludmlzaWJsZSA9IGZhbHNlXG4gIH0gPSBvcHRpb25zO1xuICBjb25zdCBsb29rdXBEZWxheSA9IDUwMDtcbiAgdHJ5IHtcbiAgICBlbGVtZW50ID0gYXdhaXQgcmV0cnlJbnRlcnZhbCh0aW1lb3V0IDwgbG9va3VwRGVsYXkgPyAxIDogdGltZW91dCAvIGxvb2t1cERlbGF5LCBsb29rdXBEZWxheSxcbiAgICAgICgpID0+IGRyaXZlci5maW5kTmF0aXZlRWxlbWVudE9yRWxlbWVudHMobG9jYXRvci50eXBlLCBsb2NhdG9yLnZhbHVlLCBmYWxzZSlcbiAgICApO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBpZiAoc2tpcElmSW52aXNpYmxlKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGZpbmQgJHtKU09OLnN0cmluZ2lmeShsb2NhdG9yKX0gd2l0aGluICR7dGltZW91dH1tcyB0aW1lb3V0YCk7XG4gIH1cbiAgYXdhaXQgZHJpdmVyLm5hdGl2ZUNsaWNrKGVsZW1lbnQpO1xuICByZXR1cm4gdHJ1ZTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gaW5zdGFsbFByZTEyMkNlcnRpZmljYXRlIChkcml2ZXIpIHtcbiAgLy8gQWNjZXB0IFNhZmFyaSBhbGVydFxuICBhd2FpdCBjbGlja0VsZW1lbnQoZHJpdmVyLCBCdXR0b24uQWxsb3csIHtcbiAgICAvLyBjZXJ0aWZpY2F0ZSBsb2FkIG1pZ2h0IHRha2Ugc29tZSB0aW1lIG9uIHNsb3cgbWFjaGluZXNcbiAgICB0aW1lb3V0OiAxNTAwMCxcbiAgfSk7XG4gIC8vIFdhaXQgdW50aWwgUHJlZmVyZW5jZXMgYXJlIG9wZW5lZFxuICBhd2FpdCBCLmRlbGF5KDIwMDApO1xuXG4gIC8vIEdvIHRocm91Z2ggUHJlZmVyZW5jZXMgd2l6YXJkXG4gIGlmICghYXdhaXQgY2xpY2tFbGVtZW50KGRyaXZlciwgQnV0dG9uLkluc3RhbGwsIHtcbiAgICBza2lwSWZJbnZpc2libGU6IHRydWUsXG4gIH0pKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG4gIC8vIFdlIG5lZWQgdG8gY2xpY2sgSW5zdGFsbCBidXR0b24gb24gdHdvIGRpZmZlcmVudCB0YWJzXG4gIC8vIFRoZSBzZWNvbmQgb25lIGNvbmZpcm1zIHRoZSBwcmV2aW91c1xuICBhd2FpdCBCLmRlbGF5KDE1MDApO1xuICBhd2FpdCBjbGlja0VsZW1lbnQoZHJpdmVyLCBCdXR0b24uSW5zdGFsbCk7XG4gIC8vIEFjY2VwdCBhbGVydFxuICBhd2FpdCBjbGlja0VsZW1lbnQoZHJpdmVyLCBBbGVydC5JbnN0YWxsKTtcbiAgLy8gRmluaXNoIGFkZGluZyBjZXJ0aWZpY2F0ZVxuICBhd2FpdCBjbGlja0VsZW1lbnQoZHJpdmVyLCBCdXR0b24uRG9uZSk7XG4gIHJldHVybiB0cnVlO1xufVxuXG5hc3luYyBmdW5jdGlvbiB0cnVzdENlcnRpZmljYXRlSW5QcmVmZXJlbmNlcyAoZHJpdmVyLCBuYW1lKSB7XG4gIGF3YWl0IGNsaWNrRWxlbWVudChkcml2ZXIsIFNldHRpbmdzLkdlbmVyYWwpO1xuICBhd2FpdCBjbGlja0VsZW1lbnQoZHJpdmVyLCBTZXR0aW5ncy5BYm91dCk7XG4gIGNvbnN0IHN3aXRjaExvY2F0b3IgPSB7XG4gICAgdHlwZTogJy1pb3MgY2xhc3MgY2hhaW4nLFxuICAgIHZhbHVlOiBgKiovWENVSUVsZW1lbnRUeXBlQ2VsbFtcXGBsYWJlbCA9PSAnJHtuYW1lfSdcXGBdLyoqL1hDVUlFbGVtZW50VHlwZVN3aXRjaGAsXG4gIH07XG4gIGF3YWl0IHJldHJ5KDUsIGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCBkcml2ZXIubW9iaWxlU3dpcGUoe1xuICAgICAgZWxlbWVudDogYXdhaXQgZHJpdmVyLmZpbmROYXRpdmVFbGVtZW50T3JFbGVtZW50cygnY2xhc3MgbmFtZScsICdYQ1VJRWxlbWVudFR5cGVUYWJsZScsIGZhbHNlKSxcbiAgICAgIGRpcmVjdGlvbjogJ3VwJ1xuICAgIH0pO1xuICAgIGF3YWl0IGNsaWNrRWxlbWVudChkcml2ZXIsIFNldHRpbmdzLkNlcnRpZmljYXRlX1RydXN0X1NldHRpbmdzLCB7XG4gICAgICB0aW1lb3V0OiA1MDAsXG4gICAgfSk7XG5cbiAgICBhd2FpdCBkcml2ZXIuZmluZE5hdGl2ZUVsZW1lbnRPckVsZW1lbnRzKHN3aXRjaExvY2F0b3IudHlwZSwgc3dpdGNoTG9jYXRvci52YWx1ZSwgZmFsc2UpO1xuICB9KTtcbiAgLy8gT25seSBjbGljayB0aGUgc3dpdGNoIGlmIGl0IGlzIHNldCB0byBPZmZcbiAgaWYgKGF3YWl0IGNsaWNrRWxlbWVudChkcml2ZXIsIHtcbiAgICB0eXBlOiBzd2l0Y2hMb2NhdG9yLnR5cGUsXG4gICAgdmFsdWU6IGAke3N3aXRjaExvY2F0b3IudmFsdWV9W1xcYHZhbHVlID09ICcwJ1xcYF1gXG4gIH0sIHtcbiAgICB0aW1lb3V0OiAxMDAwLFxuICAgIHNraXBJZkludmlzaWJsZTogdHJ1ZSxcbiAgfSkpIHtcbiAgICBhd2FpdCBkcml2ZXIucG9zdEFjY2VwdEFsZXJ0KCk7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gaW5zdGFsbFBvc3QxMjJDZXJ0aWZpY2F0ZSAoZHJpdmVyLCBuYW1lKSB7XG4gIC8vIEFjY2VwdCBTYWZhcmkgYWxlcnRcbiAgYXdhaXQgY2xpY2tFbGVtZW50KGRyaXZlciwgQnV0dG9uLkFsbG93LCB7XG4gICAgLy8gY2VydGlmaWNhdGUgbG9hZCBtaWdodCB0YWtlIHNvbWUgdGltZSBvbiBzbG93IG1hY2hpbmVzXG4gICAgdGltZW91dDogMTUwMDAsXG4gIH0pO1xuICAvLyBXYWl0IGZvciB0aGUgc2Vjb25kIGFsZXJ0XG4gIGF3YWl0IEIuZGVsYXkoMjAwMCk7XG5cbiAgYXdhaXQgZHJpdmVyLnBvc3RBY2NlcHRBbGVydCgpO1xuICBhd2FpdCBkcml2ZXIuYWN0aXZhdGVBcHAoJ2NvbS5hcHBsZS5QcmVmZXJlbmNlcycpO1xuICBhd2FpdCBjbGlja0VsZW1lbnQoZHJpdmVyLCBTZXR0aW5ncy5HZW5lcmFsKTtcbiAgYXdhaXQgY2xpY2tFbGVtZW50KGRyaXZlciwgU2V0dGluZ3MuUHJvZmlsZSk7XG4gIC8vIFNlbGVjdCB0aGUgdGFyZ2V0IGNlcnRcbiAgbGV0IGlzQ2VydEZvdW5kID0gZmFsc2U7XG4gIGZvciAobGV0IHN3aXBlTnVtID0gMDsgc3dpcGVOdW0gPCA1OyArK3N3aXBlTnVtKSB7XG4gICAgaWYgKGF3YWl0IGNsaWNrRWxlbWVudChkcml2ZXIsIHtcbiAgICAgIHR5cGU6ICctaW9zIGNsYXNzIGNoYWluJyxcbiAgICAgIHZhbHVlOiBgKiovWENVSUVsZW1lbnRUeXBlQ2VsbFtcXGBsYWJlbCA9PSAnJHtuYW1lfSdcXGBdYCxcbiAgICB9LCB7XG4gICAgICB0aW1lb3V0OiA1MDAsXG4gICAgICBza2lwSWZJbnZpc2libGU6IHRydWUsXG4gICAgfSkpIHtcbiAgICAgIGlzQ2VydEZvdW5kID0gdHJ1ZTtcbiAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGF3YWl0IGRyaXZlci5tb2JpbGVTd2lwZSh7XG4gICAgICBlbGVtZW50OiBhd2FpdCBkcml2ZXIuZmluZE5hdGl2ZUVsZW1lbnRPckVsZW1lbnRzKCdjbGFzcyBuYW1lJywgJ1hDVUlFbGVtZW50VHlwZVRhYmxlJywgZmFsc2UpLFxuICAgICAgZGlyZWN0aW9uOiAndXAnXG4gICAgfSk7XG4gIH1cbiAgaWYgKCFpc0NlcnRGb3VuZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgJyR7bmFtZX0nIGNhbm5vdCBiZSBmb3VuZCBpbiB0aGUgY2VydGlmaWNhdGVzIGxpc3RgKTtcbiAgfVxuXG4gIC8vIEluc3RhbGwgb3B0aW9uIGlzIG9ubHkgdmlzaWJsZSBpZiB0aGUgY2VydCBpcyBub3QgaW5zdGFsbGVkIHlldFxuICBpZiAoIWF3YWl0IGNsaWNrRWxlbWVudChkcml2ZXIsIEJ1dHRvbi5JbnN0YWxsLCB7XG4gICAgc2tpcElmSW52aXNpYmxlOiB0cnVlLFxuICB9KSkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICBhd2FpdCBCLmRlbGF5KDE1MDApO1xuICAvLyBDb25maXJtIHVudHJ1c3RlZCBjZXJ0IGluc3RhbGxcbiAgYXdhaXQgY2xpY2tFbGVtZW50KGRyaXZlciwgQnV0dG9uLkluc3RhbGwpO1xuICAvLyBBY2NlcHQgYWxlcnRcbiAgYXdhaXQgY2xpY2tFbGVtZW50KGRyaXZlciwgQWxlcnQuSW5zdGFsbCk7XG4gIC8vIEZpbmlzaCBhZGRpbmcgY2VydGlmaWNhdGVcbiAgYXdhaXQgY2xpY2tFbGVtZW50KGRyaXZlciwgQnV0dG9uLkRvbmUpO1xuXG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IENlcnRpZmljYXRlSW5zdGFsbGF0aW9uT3B0aW9uc1xuICpcbiAqIEBwcm9wZXJ0eSB7IXN0cmluZ30gY29udGVudCAtIEJhc2U2NC1lbmNvZGVkIGNvbnRlbnQgb2YgdGhlIHB1YmxpYyBjZXJ0aWZpY2F0ZVxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBjb21tb25OYW1lIC0gQ29tbW9uIG5hbWUgb2YgdGhlIGNlcnRpZmljYXRlLiBJZiB0aGlzIGlzIG5vdCBzZXRcbiAqIHRoZW4gdGhlIHNjcmlwdCB3aWxsIHRyeSB0byBwYXJzZSBpdCBmcm9tIHRoZSBnaXZlbiBjZXJ0aWZpY2F0ZSBjb250ZW50LlxuICogQHByb3BlcnR5IHs/Ym9vbGVhbn0gaXNSb290IFt0cnVlXSAtIFRoaXMgb3B0aW9uIGRlZmluZXMgd2hlcmUgdGhlIGNlcnRpZmljYXRlIHNob3VsZCBiZVxuICogaW5zdGFsbGVkIHRvOiBlaXRoZXIgVHJ1c3RlZCBSb290IFN0b3JlIChgdHJ1ZWAsIHRoZSBkZWZhdWx0IG9wdGlvbikgb3JcbiAqIHRoZSBLZXljaGFpbiAoYGZhbHNlYCkuIE9uIGVudmlyb25tZW50cyBvdGhlciB0aGFuIFhjb2RlIDExLjQrIFNpbXVsYXRvciB0aGlzXG4gKiBvcHRpb24gaXMgaWdub3JlZC5cbiAqL1xuXG4vKipcbiAqIEluc3RhbGxzIGEgY3VzdG9tIGNlcnRpZmljYXRlIG9udG8gdGhlIGRldmljZS5cbiAqIFNpbmNlIFhjb2RlIFNESyAxMS40IEFwcGxlIGhhcyBhZGRlZCBhIGRlZGljYXRlZCBzaW1jdGwgc3ViY29tbWFuZCB0byBxdWlja2x5IGhhbmRsZVxuICogY2VydGlmaWNhdGVzIG9uIFNpbXVsYXRvciBvdmVyIENMSS5cbiAqIE9uIHJlYWwgZGV2aWNlcyBvciBzaW11bGF0b3JzIGJlZm9yZSBYY29kZSAxMS40IFNES1xuICogQXBwbGUgcHJvdmlkZXMgbm8gb2ZmaWNpYWwgd2F5IHRvIGRvIGl0IHZpYSB0aGUgY29tbWFuZCBsaW5lLlxuICogSW4gc3VjaCBjYXNlIChhbmQgYWxzbyBhcyBhIGZhbGxiYWNrIGlmIENMSSBzZXR1cCBmYWlscylcbiAqIHRoaXMgbWV0aG9kIHRyaWVzIHRvIHdyYXAgdGhlIGNlcnRpZmljYXRlIGludG8gLm1vYmlsZWNvbmZpZyBmb3JtYXRcbiAqIGFuZCB0aGVuIGRlcGxveXMgdGhlIHdyYXBwZWQgZmlsZSB0byB0aGUgaW50ZXJuYWwgSFRUUCBzZXJ2ZXIsXG4gKiBzbyBvbmUgY2FuIG9wZW4gaXQgdmlhIG1vYmlsZSBTYWZhcmkuXG4gKiBUaGVuIHRoZSBhbGdvcml0aG0gZ29lcyB0aHJvdWdoIHRoZSBwcm9maWxlIGluc3RhbGxhdGlvbiBwcm9jZWR1cmUgYnlcbiAqIGNsaWNraW5nIHRoZSBuZWNlc3NhcnkgYnV0dG9ucyB1c2luZyBXZWJEcml2ZXJBZ2VudC5cbiAqXG4gKiBAcGFyYW0ge0NlcnRpZmljYXRlSW5zdGFsbGF0aW9uT3B0aW9uc30gb3B0c1xuICogQHJldHVybnMgez9zdHJpbmd9IFRoZSBjb250ZW50IG9mIHRoZSBnZW5lcmF0ZWQgLm1vYmlsZWNvbmZpZyBmaWxlIGFzXG4gKiBiYXNlNjQtZW5jb2RlZCBzdHJpbmcuIFRoaXMgY29uZmlnIG1pZ2h0IGJlIHVzZWZ1bCBmb3IgZGVidWdnaW5nIHB1cnBvc2VzLlxuICogSWYgdGhlIGNlcnRpZmljYXRlIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBzZXQgdmlhIENMSSB0aGVuIG5vdGhpbmcgaXMgcmV0dXJuZWQuXG4gKi9cbmNvbW1hbmRzLm1vYmlsZUluc3RhbGxDZXJ0aWZpY2F0ZSA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUluc3RhbGxDZXJ0aWZpY2F0ZSAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtcbiAgICBjb250ZW50LFxuICAgIGNvbW1vbk5hbWUsXG4gICAgaXNSb290ID0gdHJ1ZSxcbiAgfSA9IG9wdHM7XG4gIGlmIChfLmlzRW1wdHkoY29udGVudCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0NlcnRpZmljYXRlIGNvbnRlbnQgc2hvdWxkIG5vdCBiZSBlbXB0eScpO1xuICB9XG5cbiAgaWYgKHRoaXMuaXNTaW11bGF0b3IoKSkge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBtZXRob2ROYW1lID0gaXNSb290ID8gJ2FkZFJvb3RDZXJ0aWZpY2F0ZScgOiAnYWRkQ2VydGlmaWNhdGUnO1xuICAgICAgYXdhaXQgdGhpcy5vcHRzLmRldmljZS5zaW1jdGxbbWV0aG9kTmFtZV0oXG4gICAgICAgIEJ1ZmZlci5mcm9tKGNvbnRlbnQsICdiYXNlNjQnKS50b1N0cmluZygpLCB7cmF3OiB0cnVlfVxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZy5kZWJ1ZyhlKTtcbiAgICAgIHRoaXMubG9nLmluZm8oYFRoZSBjZXJ0aWZpY2F0ZSBjYW5ub3QgYmUgaW5zdGFsbGVkIHZpYSBDTEkuIGAgK1xuICAgICAgICBgRmFsbGluZyBiYWNrIHRvIFVJLWJhc2VkIGRlcGxveW1lbnRgKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgY29uc3QgY2xpZW50ID0gbmV3IFB5aWRldmljZSh0aGlzLm9wdHMudWRpZCk7XG4gICAgaWYgKGF3YWl0IGNsaWVudC5hc3NlcnRFeGlzdHMoZmFsc2UpKSB7XG4gICAgICBhd2FpdCBjbGllbnQuaW5zdGFsbFByb2ZpbGUoe3BheWxvYWQ6IEJ1ZmZlci5mcm9tKGNvbnRlbnQsICdiYXNlNjQnKX0pO1xuICAgICAgcmV0dXJuO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmxvZy5pbmZvKCdweWlkZXZpY2UgaXMgbm90IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbS4gJyArXG4gICAgICAgICdGYWxsaW5nIGJhY2sgdG8gdGhlIChzbG93KSBVSS1iYXNlZCBpbnN0YWxsYXRpb24nKTtcbiAgICB9XG4gIH1cblxuICBjb25zdCB0bXBSb290ID0gYXdhaXQgdGVtcERpci5vcGVuRGlyKCk7XG4gIGNvbnN0IHRtcFBvcnQgPSBhd2FpdCBmaW5kQVBvcnROb3RJblVzZShIT1NUX1BPUlRfUkFOR0VbMF0sIEhPU1RfUE9SVF9SQU5HRVsxXSk7XG4gIGNvbnN0IGNvbmZpZ05hbWUgPSBgYXBwaXVtLiR7Q09ORklHX0VYVEVOU0lPTn1gO1xuICBjb25zdCBjb25maWdQYXRoID0gcGF0aC5yZXNvbHZlKHRtcFJvb3QsIGNvbmZpZ05hbWUpO1xuICBjb25zdCB0bXBTZXJ2ZXIgPSBodHRwLmNyZWF0ZVNlcnZlcihhc3luYyBmdW5jdGlvbiAoXywgcmVzKSB7XG4gICAgY29uc3QgY29uZmlnRmlsZSA9IGF3YWl0IGZzLnJlYWRGaWxlKGNvbmZpZ1BhdGgpO1xuICAgIHJlcy5lbmQoY29uZmlnRmlsZSk7XG4gIH0pO1xuICB0cnkge1xuICAgIGNvbnN0IGNlcnRCdWZmZXIgPSBCdWZmZXIuZnJvbShjb250ZW50LCAnYmFzZTY0Jyk7XG4gICAgY29uc3QgY24gPSBjb21tb25OYW1lIHx8IGF3YWl0IGV4dHJhY3RDb21tb25OYW1lKGNlcnRCdWZmZXIpO1xuICAgIGNvbnN0IG1vYmlsZUNvbmZpZyA9IHRvTW9iaWxlQ29uZmlnKGNlcnRCdWZmZXIsIGNuKTtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgcGxpc3QudXBkYXRlUGxpc3RGaWxlKGNvbmZpZ1BhdGgsIG1vYmlsZUNvbmZpZywgZmFsc2UsIGZhbHNlKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IHN0b3JlIHRoZSBnZW5lcmF0ZWQgY29uZmlnIGFzICcke2NvbmZpZ1BhdGh9Jy4gYCArXG4gICAgICAgICAgICAgICAgICAgICAgYE9yaWdpbmFsIGVycm9yOiAke2Vyci5tZXNzYWdlfWApO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBob3N0ID0gb3MuaG9zdG5hbWUoKTtcbiAgICAgIGNvbnN0IGNlcnRVcmwgPSBgaHR0cDovLyR7aG9zdH06JHt0bXBQb3J0fS8ke2NvbmZpZ05hbWV9YDtcbiAgICAgIGF3YWl0IHRtcFNlcnZlci5saXN0ZW4odG1wUG9ydCk7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB3YWl0Rm9yQ29uZGl0aW9uKGFzeW5jICgpID0+IHtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgcmV0dXJuIChhd2FpdCBjaGVja1BvcnRTdGF0dXModG1wUG9ydCwgaG9zdCkpID09PSAnb3Blbic7XG4gICAgICAgICAgfSBjYXRjaCAoaWduKSB7XG4gICAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9LCB7XG4gICAgICAgICAgd2FpdE1zOiBUTVBTRVJWRVJfU1RBUlRVUF9USU1FT1VULFxuICAgICAgICAgIGludGVydmFsTXM6IDMwMCxcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMubG9nLmRlYnVnKGBUaGUgdGVtcG9yYXJ5IHdlYiBzZXJ2ZXIgaXMgcnVubmluZyBhdCBodHRwOi8vJHtob3N0fToke3RtcFBvcnR9YCk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgVGhlIHRlbXBvcmFyeSB3ZWIgc2VydmVyIGNhbm5vdCBiZSBzdGFydGVkIGF0IGh0dHA6Ly8ke2hvc3R9OiR7dG1wUG9ydH0uYCk7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5pc1JlYWxEZXZpY2UoKSkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IHRoaXMucHJveHlDb21tYW5kKCcvdXJsJywgJ1BPU1QnLCB7dXJsOiBjZXJ0VXJsfSk7XG4gICAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAgIGlmICh0aGlzLmlzV2ViQ29udGV4dCgpKSB7XG4gICAgICAgICAgICAvLyBUaGUgY29tbWFuZCBhYm92ZSBkb2VzIG5vdCBhbHdheXMgd29yayBvbiByZWFsIGRldmljZXNcbiAgICAgICAgICAgIGF3YWl0IHRoaXMuc2V0VXJsKGNlcnRVcmwpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aHJvdyBlcnI7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBhd2FpdCB0aGlzLm9wdHMuZGV2aWNlLm9wZW5VcmwoY2VydFVybCk7XG4gICAgICB9XG5cbiAgICAgIGxldCBpc0NlcnRBbHJlYWR5SW5zdGFsbGVkID0gZmFsc2U7XG4gICAgICBpZiAodXRpbC5jb21wYXJlVmVyc2lvbnModGhpcy5vcHRzLnBsYXRmb3JtVmVyc2lvbiwgJz49JywgJzEyLjInKSkge1xuICAgICAgICBpZiAoYXdhaXQgaW5zdGFsbFBvc3QxMjJDZXJ0aWZpY2F0ZSh0aGlzLCBjbikpIHtcbiAgICAgICAgICBhd2FpdCBjbGlja0VsZW1lbnQodGhpcywgU2V0dGluZ3MuUHJvZmlsZSk7XG4gICAgICAgICAgYXdhaXQgdHJ1c3RDZXJ0aWZpY2F0ZUluUHJlZmVyZW5jZXModGhpcywgY24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGlzQ2VydEFscmVhZHlJbnN0YWxsZWQgPSB0cnVlO1xuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAoYXdhaXQgaW5zdGFsbFByZTEyMkNlcnRpZmljYXRlKHRoaXMpKSB7XG4gICAgICAgICAgYXdhaXQgY2xpY2tFbGVtZW50KHRoaXMsIEJ1dHRvbi5SZXR1cm5fdG9fU2V0dGluZ3MpO1xuICAgICAgICAgIGF3YWl0IHRydXN0Q2VydGlmaWNhdGVJblByZWZlcmVuY2VzKHRoaXMsIGNuKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpc0NlcnRBbHJlYWR5SW5zdGFsbGVkID0gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKGlzQ2VydEFscmVhZHlJbnN0YWxsZWQpIHtcbiAgICAgICAgdGhpcy5sb2cuaW5mbyhgSXQgbG9va3MgbGlrZSB0aGUgJyR7Y259JyBjZXJ0aWZpY2F0ZSBoYXMgYmVlbiBhbHJlYWR5IGFkZGVkIHRvIHRoZSBDQSByb290YCk7XG4gICAgICB9XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIGlmICh0aGlzLm9wdHMuYnVuZGxlSWQpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBhd2FpdCB0aGlzLmFjdGl2YXRlQXBwKHRoaXMub3B0cy5idW5kbGVJZCk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICB0aGlzLmxvZy53YXJuKGBDYW5ub3QgcmVzdG9yZSB0aGUgYXBwbGljYXRpb24gJyR7dGhpcy5vcHRzLmJ1bmRsZUlkfScuIE9yaWdpbmFsIGVycm9yOiAke2UubWVzc2FnZX1gKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiAoYXdhaXQgdXRpbC50b0luTWVtb3J5QmFzZTY0KGNvbmZpZ1BhdGgpKS50b1N0cmluZygpO1xuICB9IGZpbmFsbHkge1xuICAgIGF3YWl0IHRtcFNlcnZlci5jbG9zZSgpO1xuICAgIGF3YWl0IGZzLnJpbXJhZih0bXBSb290KTtcbiAgfVxufTtcblxuLyoqXG4gKiBMaXN0cyBpbnN0YWxsZWQgY2VydGlmaWNhdGVzIGZvciByZWFsIGRldmljZXMgb25seVxuICogaWYgW3B5LWlvcy1kZXZpY2VdKGh0dHBzOi8vZ2l0aHViLmNvbS9ZdWVDaGVuLUMvcHktaW9zLWRldmljZSkgdG9vbFxuICogaXMgYXZhaWxhYmxlIG9uIHRoZSBzZXJ2ZXIgbWFjaGluZS5cbiAqXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBSZXR1cm5zIG1hcCBvZiBjZXJ0aWZpY2F0ZXMgaW5zdGFsbGVkIG9uIHRoZSByZWFsIGRldmljZVxuICogQHRocm93cyB7RXJyb3J9IElmIGF0dGVtcHRpbmcgdG8gbGlzdCBjZXJ0aWZpY2F0ZXMgZm9yIHNpbXVsYXRlZCBkZXZpY2Ugb3IgaWYgcHktaW9zLWRldmljZVxuICogaXMgbm90IGluc3RhbGxlZFxuICovXG5jb21tYW5kcy5tb2JpbGVMaXN0Q2VydGlmaWNhdGVzID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlTGlzdENlcnRpZmljYXRlcyAoKSB7XG4gIGlmICghdGhpcy5pc1JlYWxEZXZpY2UoKSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuTm90SW1wbGVtZW50ZWRFcnJvcignVGhpcyBleHRlbnNpb24gaXMgb25seSBzdXBwb3J0ZWQgb24gcmVhbCBkZXZpY2VzJyk7XG4gIH1cbiAgY29uc3QgY2xpZW50ID0gbmV3IFB5aWRldmljZSh0aGlzLm9wdHMudWRpZCk7XG4gIGlmIChhd2FpdCBjbGllbnQuYXNzZXJ0RXhpc3RzKGZhbHNlKSkge1xuICAgIHJldHVybiBhd2FpdCBjbGllbnQubGlzdFByb2ZpbGVzKCk7XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKCdweWlkZXZpY2UgaXMgbm90IGluc3RhbGxlZCBvbiB5b3VyIHN5c3RlbSwgY29tbWFuZCBjYW5ub3QgYmUgZXhlY3V0ZWQuJyk7XG59O1xuXG5PYmplY3QuYXNzaWduKGV4dGVuc2lvbnMsIGNvbW1hbmRzKTtcbmV4cG9ydCB7IGNvbW1hbmRzLCBwYXJzZUNvbW1vbk5hbWUgfTtcbmV4cG9ydCBkZWZhdWx0IGV4dGVuc2lvbnM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLElBQUlBLFVBQVUsR0FBRyxFQUFqQjtBQUFBLElBQXFCQyxR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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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2NvbmRpdGlvbi5qcyIsIm5hbWVzIjpbImNvbW1hbmRzIiwicmVxdWlyZUNvbmRpdGlvbkluZHVjZXJDb21wYXRpYmxlRGV2aWNlIiwiZHJpdmVyIiwiaXNTaW11bGF0b3IiLCJsb2ciLCJlcnJvckFuZFRocm93IiwidXRpbCIsImNvbXBhcmVWZXJzaW9ucyIsIm9wdHMiLCJwbGF0Zm9ybVZlcnNpb24iLCJtb2JpbGVMaXN0Q29uZGl0aW9uSW5kdWNlcnMiLCJsaXN0Q29uZGl0aW9uSW5kdWNlcnMiLCJjb25kaXRpb25JbmR1Y2VyU2VydmljZSIsInNlcnZpY2VzIiwic3RhcnRJbnN0cnVtZW50U2VydmljZSIsImRldmljZSIsInVkaWQiLCJyZXQiLCJjYWxsQ2hhbm5lbCIsIklOU1RSVU1FTlRfQ0hBTk5FTCIsIkNPTkRJVElPTl9JTkRVQ0VSIiwic2VsZWN0b3IiLCJjbG9zZSIsIm1vYmlsZUVuYWJsZUNvbmRpdGlvbkluZHVjZXIiLCJlbmFibGVDb25kaXRpb25JbmR1Y2VyIiwib3B0aW9ucyIsIl9jb25kaXRpb25JbmR1Y2VyU2VydmljZSIsIl9zb2NrZXRDbGllbnQiLCJkZXN0cm95ZWQiLCJjb25kaXRpb25JRCIsInByb2ZpbGVJRCIsIl8iLCJpc0Jvb2xlYW4iLCJKU09OIiwic3RyaW5naWZ5IiwibW9iaWxlRGlzYWJsZUNvbmRpdGlvbkluZHVjZXIiLCJkaXNhYmxlQ29uZGl0aW9uSW5kdWNlciIsIndhcm4iXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uIiwic291cmNlcyI6WyJsaWIvY29tbWFuZHMvY29uZGl0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElOU1RSVU1FTlRfQ0hBTk5FTCwgc2VydmljZXMgfSBmcm9tICdhcHBpdW0taW9zLWRldmljZSc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgdXRpbCB9IGZyb20gJ2FwcGl1bS9zdXBwb3J0JztcblxuY29uc3QgY29tbWFuZHMgPSB7fTtcblxuZnVuY3Rpb24gcmVxdWlyZUNvbmRpdGlvbkluZHVjZXJDb21wYXRpYmxlRGV2aWNlIChkcml2ZXIpIHtcbiAgICBpZiAoZHJpdmVyLmlzU2ltdWxhdG9yKCkpIHtcbiAgICAgIGRyaXZlci5sb2cuZXJyb3JBbmRUaHJvdygnQ29uZGl0aW9uIGluZHVjZXIgb25seSB3b3JrcyBvbiByZWFsIGRldmljZXMnKTtcbiAgICB9XG4gICAgaWYgKHV0aWwuY29tcGFyZVZlcnNpb25zKGRyaXZlci5vcHRzLnBsYXRmb3JtVmVyc2lvbiwgJzwnLCAnMTMuMCcpKSB7XG4gICAgICBkcml2ZXIubG9nLmVycm9yQW5kVGhyb3coJ0NvbmRpdGlvbiBpbmR1Y2VyIGlzIG9ubHkgc3VwcG9ydGVkIHNpbmNlIGlPUyAxMysnKTtcbiAgICB9XG4gIH1cblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBQcm9maWxlXG4gKiBAcHJvcGVydHkge1N0cmluZ30gbmFtZVxuICogQHByb3BlcnR5IHtTdHJpbmd9IGlkZW50aWZpZXIgIHRoZSBwcm9wZXJ0eSBpcyBwcm9maWxlSUQgdXNlZCBpbiBNb2JpbGVFbmFibGVDb25kaXRpb25JbmR1Y2VyXG4gKiBAcHJvcGVydHkge1N0cmluZ30gZGVzY3JpcHRpb24gQ29uZmlndXJhdGlvbiBkZXRhaWxzXG4gKi9cblxuLyoqXG4gKiBXZSBjYW4gdXNlIHRoZSByZXR1cm5lZCBkYXRhIHRvIGRldGVybWluZSB3aGV0aGVyIHRoZSBDb25kaXRpb24gaXMgZW5hYmxlZCBhbmQgdGhlIGN1cnJlbnRseSBlbmFibGVkIGNvbmZpZ3VyYXRpb24gaW5mb3JtYXRpb25cbiAqIEB0eXBlZGVmIHtPYmplY3R9IENvbmRpdGlvblxuICogQHByb3BlcnR5IHtBcnJheTxQcm9maWxlPn0gcHJvZmlsZXNcbiAqIEBwcm9wZXJ0eSB7U3RyaW5nfSBpZGVudGlmaWVyIHRoZSBwcm9wZXJ0eSBpcyBjb25kaXRpb25JRCB1c2VkIGluIE1vYmlsZUVuYWJsZUNvbmRpdGlvbkluZHVjZXJcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gcHJvZmlsZXNTb3J0ZWRcbiAqIEBwcm9wZXJ0eSB7Ym9vbGVhbn0gaXNEZXN0cnVjdGl2ZVxuICogQHByb3BlcnR5IHtib29sZWFufSBpc0ludGVybmFsXG4gKiBAcHJvcGVydHkge2Jvb2xlYW59IGlzQWN0aXZlIGB0cnVlYCBpZiB0aGlzIGNvbmRpdGlvbiBpZGVudGlmaWVyIGlzIGVuYWJsZWRcbiAqIEBwcm9wZXJ0eSB7U3RyaW5nfSBhY3RpdmVQcm9maWxlICBlbmFibGVkIHByb2ZpbGVzIGlkZW50aWZpZXJcbiAqL1xuXG4vKipcbiAqIEdldCBhbGwgQ29uZGl0aW9uSW5kdWNlciBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uXG4gKiBXZSB3aWxsIHVzZSBjb25kaXRpb25JRCBhbmQgcHJvZmlsZUlEIGluIHRoZSBtb2JpbGVFbmFibGVDb25kaXRpb25JbmR1Y2VyXG4gKiBAcmV0dXJucyB7QXJyYXk8Q29uZGl0aW9uPn1cbiAqIFt7XG4gKiAgICAgXCJwcm9maWxlc1wiOiBbXG4gKiAgICAgICAgICB7XG4gKiAgICAgICAgICAgICBcIm5hbWVcIjogXCIxMDAlIHBhY2tldCBsb3NzXCIsXG4gKiAgICAgICAgICAgICBcImlkZW50aWZpZXJcIjogXCJTbG93TmV0d29yazEwMFBjdExvc3NcIiwgIC8vIE1vYmlsZUVuYWJsZUNvbmRpdGlvbkluZHVjZXIgcHJvZmlsZUlEXG4gKiAgICAgICAgICAgICBcImRlc2NyaXB0aW9uXCI6IFwiTmFtZTogMTAwJSBMb3NzIFNjZW5hcmlvXFxuXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgRG93bmxpbmsgQmFuZHdpZHRoOiAwIE1icHNcXG5cbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEb3dubGluayBMYXRlbmN5OjAgbXNcXG5cbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICBEb3dubGluayBQYWNrZXQgTG9zcyBSYXRpbzogMTAwJVxcblxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVwbGluayBCYW5kd2lkdGg6IDAgTWJwc1xcblxuICogICAgICAgICAgICAgICAgICAgICAgICAgICAgIFVwbGluayBMYXRlbmN5OiAwIG1zXFxuXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXBsaW5rIFBhY2tldCBMb3NzIFJhdGlvOiAxMDAlXCJcbiAqICAgICAgICAgfVxuICogICAgIF0sXG4gKiAgICAgXCJwcm9maWxlc1NvcnRlZFwiOiB0cnVlLFxuICogICAgIFwiaWRlbnRpZmllclwiOiBcIlNsb3dOZXR3b3JrQ29uZGl0aW9uXCIsICAgIC8vIE1vYmlsZUVuYWJsZUNvbmRpdGlvbkluZHVjZXIgY29uZGl0aW9uSURcbiAqICAgICBcImlzRGVzdHJ1Y3RpdmVcIjogZmFsc2UsXG4gKiAgICAgXCJpc0ludGVybmFsXCI6IGZhbHNlLFxuICogICAgIFwiYWN0aXZlUHJvZmlsZVwiOiBcIlwiLFxuICogICAgIFwibmFtZVwiOiBcIk5ldHdvcmsgTGlua1wiLFxuICogICAgIFwiaXNBY3RpdmVcIjogZmFsc2VcbiAqIH1dXG4gKi9cbmNvbW1hbmRzLm1vYmlsZUxpc3RDb25kaXRpb25JbmR1Y2VycyA9IGFzeW5jIGZ1bmN0aW9uIGxpc3RDb25kaXRpb25JbmR1Y2VycyAoKSB7XG4gIHJlcXVpcmVDb25kaXRpb25JbmR1Y2VyQ29tcGF0aWJsZURldmljZSh0aGlzKTtcbiAgY29uc3QgY29uZGl0aW9uSW5kdWNlclNlcnZpY2UgPSBhd2FpdCBzZXJ2aWNlcy5zdGFydEluc3RydW1lbnRTZXJ2aWNlKHRoaXMub3B0cy5kZXZpY2UudWRpZCk7XG4gIHRyeSB7XG4gICAgY29uc3QgcmV0ID0gYXdhaXQgY29uZGl0aW9uSW5kdWNlclNlcnZpY2UuY2FsbENoYW5uZWwoSU5TVFJVTUVOVF9DSEFOTkVMLkNPTkRJVElPTl9JTkRVQ0VSLCAnYXZhaWxhYmxlQ29uZGl0aW9uSW5kdWNlcnMnKTtcbiAgICByZXR1cm4gcmV0LnNlbGVjdG9yO1xuICB9IGZpbmFsbHkge1xuICAgIGNvbmRpdGlvbkluZHVjZXJTZXJ2aWNlLmNsb3NlKCk7XG4gIH1cbn07XG5cbi8qKlxuICogRW5hYmxlIGNvbmRpdGlvbiBpbmR1Y2VyLiBUaGUgc29ja2V0IG5lZWRzIHRvIHJlbWFpbiBjb25uZWN0ZWQgZHVyaW5nIG9wZXJhdGlvblxuICogY29uZGl0aW9uSUQgIENvbmRpdGlvblswXS5pZGVudGlmaWVyXG4gKiBwcm9maWxlSUQgICAgQ29uZGl0aW9uWzBdLnByb2ZpbGVzWzBdLmlkZW50aWZpZXJcbiAqIEBwYXJhbSB7e2NvbmRpdGlvbklELHByb2ZpbGVJRH19IG9wdGlvbnNcbiAqIEByZXR1cm5zIHtib29sZWFufSBgdHJ1ZWAgaWYgZW5hYmxlIHRoZSBjb25kaXRpb24gc3VjY2VlZGVkXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdHJ5IHRvIHN0YXJ0IGFub3RoZXIgQ29uZGl0aW9uIGFuZCB0aGUgcHJldmlvdXMgQ29uZGl0aW9uIGhhcyBub3Qgc3RvcHBlZCwgaXQgd2lsbCB0aHJvdyBhbiBlcnJvclxuICovXG5jb21tYW5kcy5tb2JpbGVFbmFibGVDb25kaXRpb25JbmR1Y2VyID0gYXN5bmMgZnVuY3Rpb24gZW5hYmxlQ29uZGl0aW9uSW5kdWNlciAob3B0aW9ucyA9IHt9KSB7XG4gIHJlcXVpcmVDb25kaXRpb25JbmR1Y2VyQ29tcGF0aWJsZURldmljZSh0aGlzKTtcbiAgaWYgKHRoaXMuX2NvbmRpdGlvbkluZHVjZXJTZXJ2aWNlICYmICF0aGlzLl9jb25kaXRpb25JbmR1Y2VyU2VydmljZS5fc29ja2V0Q2xpZW50LmRlc3Ryb3llZCkge1xuICAgIHRoaXMubG9nLmVycm9yQW5kVGhyb3coYENvbmRpdGlvbiBpbmR1Y2VyIGhhcyBiZWVuIHN0YXJ0ZWQuIEEgY29uZGl0aW9uIGlzIGFscmVhZHkgYWN0aXZlLmApO1xuICB9XG4gIGNvbnN0IHtcbiAgICBjb25kaXRpb25JRCxcbiAgICBwcm9maWxlSUQsXG4gIH0gPSBvcHRpb25zO1xuICB0aGlzLl9jb25kaXRpb25JbmR1Y2VyU2VydmljZSA9IGF3YWl0IHNlcnZpY2VzLnN0YXJ0SW5zdHJ1bWVudFNlcnZpY2UodGhpcy5vcHRzLmRldmljZS51ZGlkKTtcbiAgY29uc3QgcmV0ID0gYXdhaXQgdGhpcy5fY29uZGl0aW9uSW5kdWNlclNlcnZpY2UuY2FsbENoYW5uZWwoSU5TVFJVTUVOVF9DSEFOTkVMLkNPTkRJVElPTl9JTkRVQ0VSLFxuICAgICdlbmFibGVDb25kaXRpb25XaXRoSWRlbnRpZmllcjpwcm9maWxlSWRlbnRpZmllcjonLCBjb25kaXRpb25JRCwgcHJvZmlsZUlEKTtcbiAgaWYgKCFfLmlzQm9vbGVhbihyZXQuc2VsZWN0b3IpKSB7XG4gICAgdGhpcy5fY29uZGl0aW9uSW5kdWNlclNlcnZpY2UuY2xvc2UoKTtcbiAgICB0aGlzLl9jb25kaXRpb25JbmR1Y2VyU2VydmljZSA9IG51bGw7XG4gICAgdGhpcy5sb2cuZXJyb3JBbmRUaHJvdyhgRW5hYmxlIGNvbmRpdGlvbiBpbmR1Y2VyIGVycm9yOiAnJHtKU09OLnN0cmluZ2lmeShyZXQuc2VsZWN0b3IpfSdgKTtcbiAgfVxuICByZXR1cm4gcmV0LnNlbGVjdG9yO1xufTtcblxuLyoqXG4gKiBEaXNhYmxlIGNvbmRpdGlvbiBpbmR1Y2VyXG4gKiB0aGlzIGNhbGwgdXBvbiBkcml2ZXIgZGVsZXRpb25cbiAqIEByZXR1cm5zIHtib29sZWFufSBgdHJ1ZWAgaWYgZGlzYWJsZSB0aGUgY29uZGl0aW9uIHN1Y2NlZWRlZFxuICovXG5jb21tYW5kcy5tb2JpbGVEaXNhYmxlQ29uZGl0aW9uSW5kdWNlciA9IGFzeW5jIGZ1bmN0aW9uIGRpc2FibGVDb25kaXRpb25JbmR1Y2VyICgpIHtcbiAgaWYgKCF0aGlzLl9jb25kaXRpb25JbmR1Y2VyU2VydmljZSkge1xuICAgIHRoaXMubG9nLndhcm4oJ0NvbmRpdGlvbiBpbmR1Y2VyIHNlcnZlciBpcyBub3Qgc3RhcnRlZCcpO1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuICB0cnkge1xuICAgIGNvbnN0IHJldCA9IGF3YWl0IHRoaXMuX2NvbmRpdGlvbkluZHVjZXJTZXJ2aWNlLmNhbGxDaGFubmVsKElOU1RSVU1FTlRfQ0hBTk5FTC5DT05ESVRJT05fSU5EVUNFUiwgJ2Rpc2FibGVBY3RpdmVDb25kaXRpb24nKTtcbiAgICBpZiAoIV8uaXNCb29sZWFuKHJldC5zZWxlY3RvcikpIHtcbiAgICAgIHRoaXMubG9nLndhcm4oYERpc2FibGUgY29uZGl0aW9uIGluZHVjZXIgZXJyb3I6ICcke0pTT04uc3RyaW5naWZ5KHJldC5zZWxlY3Rvcil9J2ApO1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gcmV0LnNlbGVjdG9yO1xuICB9IGZpbmFsbHkge1xuICAgIGlmICh0aGlzLl9jb25kaXRpb25JbmR1Y2VyU2VydmljZSkge1xuICAgICAgdGhpcy5fY29uZGl0aW9uSW5kdWNlclNlcnZpY2UuY2xvc2UoKTtcbiAgICAgIHRoaXMuX2NvbmRpdGlvbkluZHVjZXJTZXJ2aWNlID0gbnVsbDtcbiAgICB9XG4gIH1cbn07XG5cbmV4cG9ydCB7Y29tbWFuZHN9O1xuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBRUEsTUFBTUEsUUFBUSxHQUFHLEVBQWpCOzs7QUFFQSxTQUFTQyx1Q0FBVCxDQUFrREMsTUFBbEQsRUFBMEQ7RUFDdEQsSUFBSUEsTUFBTSxDQUFDQyxXQUFQLEVBQUosRUFBMEI7SUFDeEJELE1BQU0sQ0FBQ0UsR0FBUCxDQUFXQyxhQUFYLENBQXlCLDhDQUF6QjtFQUNEOztFQUNELElBQUlDLGFBQUEsQ0FBS0MsZUFBTCxDQUFxQkwsTUFBTSxDQUFDTSxJQUFQLENBQVlDLGVBQWpDLEVBQWtELEdBQWxELEVBQXVELE1BQXZELENBQUosRUFBb0U7SUFDbEVQLE1BQU0sQ0FBQ0UsR0FBUCxDQUFXQyxhQUFYLENBQXlCLG1EQUF6QjtFQUNEO0FBQ0Y7O0FBZ0RITCxRQUFRLENBQUNVLDJCQUFULEdBQXVDLGVBQWVDLHFCQUFmLEdBQXdDO0VBQzdFVix1Q0FBdUMsQ0FBQyxJQUFELENBQXZDO0VBQ0EsTUFBTVcsdUJBQXVCLEdBQUcsTUFBTUMseUJBQUEsQ0FBU0Msc0JBQVQsQ0FBZ0MsS0FBS04sSUFBTCxDQUFVTyxNQUFWLENBQWlCQyxJQUFqRCxDQUF0Qzs7RUFDQSxJQUFJO0lBQ0YsTUFBTUMsR0FBRyxHQUFHLE1BQU1MLHVCQUF1QixDQUFDTSxXQUF4QixDQUFvQ0MsbUNBQUEsQ0FBbUJDLGlCQUF2RCxFQUEwRSw0QkFBMUUsQ0FBbEI7SUFDQSxPQUFPSCxHQUFHLENBQUNJLFFBQVg7RUFDRCxDQUhELFNBR1U7SUFDUlQsdUJBQXVCLENBQUNVLEtBQXhCO0VBQ0Q7QUFDRixDQVREOztBQW1CQXRCLFFBQVEsQ0FBQ3VCLDRCQUFULEdBQXdDLGVBQWVDLHNCQUFmLENBQXVDQyxPQUFPLEdBQUcsRUFBakQsRUFBcUQ7RUFDM0Z4Qix1Q0FBdUMsQ0FBQyxJQUFELENBQXZDOztFQUNBLElBQUksS0FBS3lCLHdCQUFMLElBQWlDLENBQUMsS0FBS0Esd0JBQUwsQ0FBOEJDLGFBQTlCLENBQTRDQyxTQUFsRixFQUE2RjtJQUMzRixLQUFLeEIsR0FBTCxDQUFTQyxhQUFULENBQXdCLG9FQUF4QjtFQUNEOztFQUNELE1BQU07SUFDSndCLFdBREk7SUFFSkM7RUFGSSxJQUdGTCxPQUhKO0VBSUEsS0FBS0Msd0JBQUwsR0FBZ0MsTUFBTWIseUJBQUEsQ0FBU0Msc0JBQVQsQ0FBZ0MsS0FBS04sSUFBTCxDQUFVTyxNQUFWLENBQWlCQyxJQUFqRCxDQUF0QztFQUNBLE1BQU1DLEdBQUcsR0FBRyxNQUFNLEtBQUtTLHdCQUFMLENBQThCUixXQUE5QixDQUEwQ0MsbUNBQUEsQ0FBbUJDLGlCQUE3RCxFQUNoQixrREFEZ0IsRUFDb0NTLFdBRHBDLEVBQ2lEQyxTQURqRCxDQUFsQjs7RUFFQSxJQUFJLENBQUNDLGVBQUEsQ0FBRUMsU0FBRixDQUFZZixHQUFHLENBQUNJLFFBQWhCLENBQUwsRUFBZ0M7SUFDOUIsS0FBS0ssd0JBQUwsQ0FBOEJKLEtBQTlCOztJQUNBLEtBQUtJLHdCQUFMLEdBQWdDLElBQWhDO0lBQ0EsS0FBS3RCLEdBQUwsQ0FBU0MsYUFBVCxDQUF3QixvQ0FBbUM0QixJQUFJLENBQUNDLFNBQUwsQ0FBZWpCLEdBQUcsQ0FBQ0ksUUFBbkIsQ0FBNkIsR0FBeEY7RUFDRDs7RUFDRCxPQUFPSixHQUFHLENBQUNJLFFBQVg7QUFDRCxDQWxCRDs7QUF5QkFyQixRQUFRLENBQUNtQyw2QkFBVCxHQUF5QyxlQUFlQyx1QkFBZixHQUEwQztFQUNqRixJQUFJLENBQUMsS0FBS1Ysd0JBQVYsRUFBb0M7SUFDbEMsS0FBS3RCLEdBQUwsQ0FBU2lDLElBQVQsQ0FBYyx5Q0FBZDtJQUNBLE9BQU8sS0FBUDtFQUNEOztFQUNELElBQUk7SUFDRixNQUFNcEIsR0FBRyxHQUFHLE1BQU0sS0FBS1Msd0JBQUwsQ0FBOEJSLFdBQTlCLENBQTBDQyxtQ0FBQSxDQUFtQkMsaUJBQTdELEVBQWdGLHdCQUFoRixDQUFsQjs7SUFDQSxJQUFJLENBQUNXLGVBQUEsQ0FBRUMsU0FBRixDQUFZZixHQUFHLENBQUNJLFFBQWhCLENBQUwsRUFBZ0M7TUFDOUIsS0FBS2pCLEdBQUwsQ0FBU2lDLElBQVQsQ0FBZSxxQ0FBb0NKLElBQUksQ0FBQ0MsU0FBTCxDQUFlakIsR0FBRyxDQUFDSSxRQUFuQixDQUE2QixHQUFoRjtNQUNBLE9BQU8sS0FBUDtJQUNEOztJQUNELE9BQU9KLEdBQUcsQ0FBQ0ksUUFBWDtFQUNELENBUEQsU0FPVTtJQUNSLElBQUksS0FBS0ssd0JBQVQsRUFBbUM7TUFDakMsS0FBS0Esd0JBQUwsQ0FBOEJKLEtBQTlCOztNQUNBLEtBQUtJLHdCQUFMLEdBQWdDLElBQWhDO0lBQ0Q7RUFDRjtBQUNGLENBbEJEOztlQXFCZTFCLFEifQ==
@@ -94,6 +94,7 @@ extensions.executeMobile = async function executeMobile(mobileCommand, opts = {}
94
94
  startPerfRecord: 'mobileStartPerfRecord',
95
95
  stopPerfRecord: 'mobileStopPerfRecord',
96
96
  installCertificate: 'mobileInstallCertificate',
97
+ listCertificates: 'mobileListCertificates',
97
98
  startLogsBroadcast: 'mobileStartLogsBroadcast',
98
99
  stopLogsBroadcast: 'mobileStopLogsBroadcast',
99
100
  batteryInfo: 'mobileGetBatteryInfo',
@@ -126,7 +127,10 @@ extensions.executeMobile = async function executeMobile(mobileCommand, opts = {}
126
127
  configureLocalization: 'mobileConfigureLocalization',
127
128
  resetLocationService: 'mobileResetLocationService',
128
129
  startPcap: 'mobileStartPcap',
129
- stopPcap: 'mobileStopPcap'
130
+ stopPcap: 'mobileStopPcap',
131
+ listConditionInducers: 'mobileListConditionInducers',
132
+ enableConditionInducer: 'mobileEnableConditionInducer',
133
+ disableConditionInducer: 'mobileDisableConditionInducer'
130
134
  };
131
135
 
132
136
  if (!_lodash.default.has(commandMap, mobileCommand)) {
@@ -140,4 +144,4 @@ var _default = extensions;
140
144
  exports.default = _default;require('source-map-support').install();
141
145
 
142
146
 
143
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2V4ZWN1dGUuanMiLCJuYW1lcyI6WyJleHRlbnNpb25zIiwicmVjZWl2ZUFzeW5jUmVzcG9uc2UiLCJzdGF0dXMiLCJ2YWx1ZSIsImxvZyIsImRlYnVnIiwiSlNPTiIsInN0cmluZ2lmeSIsInV0aWwiLCJoYXNWYWx1ZSIsImFzeW5jUHJvbWlzZSIsIndhcm4iLCJyZWplY3QiLCJlcnJvckZyb21Db2RlIiwibWVzc2FnZSIsIl8iLCJpc1N0cmluZyIsImVycm9yIiwiZXJyb3JGcm9tVzNDSnNvbkNvZGUiLCJzdGFja3RyYWNlIiwicmVzb2x2ZSIsImV4ZWN1dGUiLCJzY3JpcHQiLCJhcmdzIiwibWF0Y2giLCJyZXBsYWNlIiwidHJpbSIsImV4ZWN1dGVNb2JpbGUiLCJpc0FycmF5IiwiaXNXZWJDb250ZXh0IiwiY29udmVydEVsZW1lbnRzRm9yQXRvbXMiLCJyZXN1bHQiLCJleGVjdXRlQXRvbSIsImNhY2hlV2ViRWxlbWVudHMiLCJlcnJvcnMiLCJOb3RJbXBsZW1lbnRlZEVycm9yIiwiZXhlY3V0ZUFzeW5jIiwiYXN5bmNXYWl0TXMiLCJwcm9taXNlIiwicmVtb3RlIiwiZXhlY3V0ZUF0b21Bc3luYyIsImN1cldlYkZyYW1lcyIsIndhaXRGb3JBdG9tIiwibW9iaWxlQ29tbWFuZCIsIm9wdHMiLCJjb21tYW5kTWFwIiwidGFwIiwic2Nyb2xsIiwic2VsZWN0UGlja2VyV2hlZWxWYWx1ZSIsInN3aXBlIiwicGluY2giLCJkb3VibGVUYXAiLCJ0d29GaW5nZXJUYXAiLCJ0YXBXaXRoTnVtYmVyT2ZUYXBzIiwidG91Y2hBbmRIb2xkIiwiZHJhZ0Zyb21Ub0ZvckR1cmF0aW9uIiwicm90YXRlRWxlbWVudCIsImZvcmNlUHJlc3MiLCJzY3JvbGxUb0VsZW1lbnQiLCJhbGVydCIsInNldFBhc3RlYm9hcmQiLCJnZXRQYXN0ZWJvYXJkIiwic291cmNlIiwiZ2V0Q29udGV4dHMiLCJpbnN0YWxsQXBwIiwiaXNBcHBJbnN0YWxsZWQiLCJyZW1vdmVBcHAiLCJsYXVuY2hBcHAiLCJ0ZXJtaW5hdGVBcHAiLCJraWxsQXBwIiwicXVlcnlBcHBTdGF0ZSIsImFjdGl2YXRlQXBwIiwibGlzdEFwcHMiLCJ2aWV3cG9ydFNjcmVlbnNob3QiLCJ2aWV3cG9ydFJlY3QiLCJzdGFydFBlcmZSZWNvcmQiLCJzdG9wUGVyZlJlY29yZCIsImluc3RhbGxDZXJ0aWZpY2F0ZSIsInN0YXJ0TG9nc0Jyb2FkY2FzdCIsInN0b3BMb2dzQnJvYWRjYXN0IiwiYmF0dGVyeUluZm8iLCJkZXZpY2VJbmZvIiwiZ2V0RGV2aWNlVGltZSIsImFjdGl2ZUFwcEluZm8iLCJkZXZpY2VTY3JlZW5JbmZvIiwicHJlc3NCdXR0b24iLCJlbnJvbGxCaW9tZXRyaWMiLCJzZW5kQmlvbWV0cmljTWF0Y2giLCJpc0Jpb21ldHJpY0Vucm9sbGVkIiwiY2xlYXJLZXljaGFpbnMiLCJnZXRQZXJtaXNzaW9uIiwic2V0UGVybWlzc2lvbiIsInJlc2V0UGVybWlzc2lvbiIsImdldEFwcGVhcmFuY2UiLCJzZXRBcHBlYXJhbmNlIiwic2lyaUNvbW1hbmQiLCJkZWxldGVGaWxlIiwiZGVsZXRlRm9sZGVyIiwic3RhcnRBdWRpb1JlY29yZGluZyIsInN0b3BBdWRpb1JlY29yZGluZyIsInJ1blhDVGVzdCIsImluc3RhbGxYQ1Rlc3RCdW5kbGUiLCJsaXN0WENUZXN0QnVuZGxlcyIsImxpc3RYQ1Rlc3RzSW5UZXN0QnVuZGxlIiwicHVzaE5vdGlmaWNhdGlvbiIsImV4cGVjdE5vdGlmaWNhdGlvbiIsInBlcmZvcm1Jb0hpZEV2ZW50IiwiY29uZmlndXJlTG9jYWxpemF0aW9uIiwicmVzZXRMb2NhdGlvblNlcnZpY2UiLCJzdGFydFBjYXAiLCJzdG9wUGNhcCIsImhhcyIsIlVua25vd25Db21tYW5kRXJyb3IiLCJrZXlzIiwiam9pbiJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9leGVjdXRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQge1xuICBlcnJvcnMsIGVycm9yRnJvbUNvZGUsIGVycm9yRnJvbVczQ0pzb25Db2RlXG59IGZyb20gJ2FwcGl1bS9kcml2ZXInO1xuaW1wb3J0IHsgdXRpbCB9IGZyb20gJ2FwcGl1bS9zdXBwb3J0JztcblxuY29uc3QgZXh0ZW5zaW9ucyA9IHt9O1xuXG5leHRlbnNpb25zLnJlY2VpdmVBc3luY1Jlc3BvbnNlID0gYXN5bmMgZnVuY3Rpb24gcmVjZWl2ZUFzeW5jUmVzcG9uc2UgKHN0YXR1cywgdmFsdWUpIHsgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZXF1aXJlLWF3YWl0XG4gIHRoaXMubG9nLmRlYnVnKGBSZWNlaXZlZCBhc3luYyByZXNwb25zZTogJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9YCk7XG4gIGlmICghdXRpbC5oYXNWYWx1ZSh0aGlzLmFzeW5jUHJvbWlzZSkpIHtcbiAgICB0aGlzLmxvZy53YXJuKGBSZWNlaXZlZCBhc3luYyByZXNwb25zZSB3aGVuIHdlIHdlcmUgbm90IGV4cGVjdGluZyBvbmUhIGAgK1xuICAgICAgYFJlc3BvbnNlIHdhczogJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9YCk7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgaWYgKHV0aWwuaGFzVmFsdWUoc3RhdHVzKSAmJiBzdGF0dXMgIT09IDApIHtcbiAgICAvLyBNSlNPTldQXG4gICAgcmV0dXJuIHRoaXMuYXN5bmNQcm9taXNlLnJlamVjdChlcnJvckZyb21Db2RlKHN0YXR1cywgdmFsdWUubWVzc2FnZSkpO1xuICB9XG4gIGlmICghdXRpbC5oYXNWYWx1ZShzdGF0dXMpICYmIHZhbHVlICYmIF8uaXNTdHJpbmcodmFsdWUuZXJyb3IpKSB7XG4gICAgLy8gVzNDXG4gICAgcmV0dXJuIHRoaXMuYXN5bmNQcm9taXNlLnJlamVjdChlcnJvckZyb21XM0NKc29uQ29kZSh2YWx1ZS5lcnJvciwgdmFsdWUubWVzc2FnZSwgdmFsdWUuc3RhY2t0cmFjZSkpO1xuICB9XG4gIHJldHVybiB0aGlzLmFzeW5jUHJvbWlzZS5yZXNvbHZlKHZhbHVlKTtcbn07XG5cbmV4dGVuc2lvbnMuZXhlY3V0ZSA9IGFzeW5jIGZ1bmN0aW9uIGV4ZWN1dGUgKHNjcmlwdCwgYXJncykge1xuICBpZiAoc2NyaXB0Lm1hdGNoKC9ebW9iaWxlOi8pKSB7XG4gICAgc2NyaXB0ID0gc2NyaXB0LnJlcGxhY2UoL15tb2JpbGU6LywgJycpLnRyaW0oKTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5leGVjdXRlTW9iaWxlKHNjcmlwdCwgXy5pc0FycmF5KGFyZ3MpID8gYXJnc1swXSA6IGFyZ3MpO1xuICB9IGVsc2UgaWYgKHRoaXMuaXNXZWJDb250ZXh0KCkpIHtcbiAgICBhcmdzID0gdGhpcy5jb252ZXJ0RWxlbWVudHNGb3JBdG9tcyhhcmdzKTtcbiAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLmV4ZWN1dGVBdG9tKCdleGVjdXRlX3NjcmlwdCcsIFtzY3JpcHQsIGFyZ3NdKTtcbiAgICByZXR1cm4gdGhpcy5jYWNoZVdlYkVsZW1lbnRzKHJlc3VsdCk7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5Ob3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gIH1cbn07XG5cbmV4dGVuc2lvbnMuZXhlY3V0ZUFzeW5jID0gYXN5bmMgZnVuY3Rpb24gZXhlY3V0ZUFzeW5jIChzY3JpcHQsIGFyZ3MpIHtcbiAgaWYgKCF0aGlzLmlzV2ViQ29udGV4dCgpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5Ob3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gIH1cblxuICBhcmdzID0gdGhpcy5jb252ZXJ0RWxlbWVudHNGb3JBdG9tcyhhcmdzKTtcbiAgdGhpcy5hc3luY1dhaXRNcyA9IHRoaXMuYXN5bmNXYWl0TXMgfHwgMDtcbiAgY29uc3QgcHJvbWlzZSA9IHRoaXMucmVtb3RlLmV4ZWN1dGVBdG9tQXN5bmMoJ2V4ZWN1dGVfYXN5bmNfc2NyaXB0JywgW1xuICAgIHNjcmlwdCwgYXJncywgdGhpcy5hc3luY1dhaXRNc1xuICBdLCB0aGlzLmN1cldlYkZyYW1lcyk7XG4gIHJldHVybiB0aGlzLmNhY2hlV2ViRWxlbWVudHMoYXdhaXQgdGhpcy53YWl0Rm9yQXRvbShwcm9taXNlKSk7XG59O1xuXG5leHRlbnNpb25zLmV4ZWN1dGVNb2JpbGUgPSBhc3luYyBmdW5jdGlvbiBleGVjdXRlTW9iaWxlIChtb2JpbGVDb21tYW5kLCBvcHRzID0ge30pIHtcbiAgY29uc3QgY29tbWFuZE1hcCA9IHtcbiAgICAvL3JlZ2lvbiBnZXN0dXJlcyBzdXBwb3J0XG4gICAgdGFwOiAnbW9iaWxlVGFwJyxcbiAgICBzY3JvbGw6ICdtb2JpbGVTY3JvbGwnLFxuICAgIHNlbGVjdFBpY2tlcldoZWVsVmFsdWU6ICdtb2JpbGVTZWxlY3RQaWNrZXJXaGVlbFZhbHVlJyxcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi94Y3Rlc3QveGN1aWVsZW1lbnQvMTYxODY2OC1zd2lwZWxlZnQ/bGFuZ3VhZ2U9b2JqY1xuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpZWxlbWVudC8xNjE4Njc0LXN3aXBlcmlnaHQ/bGFuZ3VhZ2U9b2JqY1xuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpZWxlbWVudC8xNjE4NjY3LXN3aXBldXA/bGFuZ3VhZ2U9b2JqY1xuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpZWxlbWVudC8xNjE4NjY0LXN3aXBlZG93bj9sYW5ndWFnZT1vYmpjXG4gICAgc3dpcGU6ICdtb2JpbGVTd2lwZScsXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24veGN0ZXN0L3hjdWllbGVtZW50LzE2MTg2NjktcGluY2h3aXRoc2NhbGU/bGFuZ3VhZ2U9b2JqY1xuICAgIHBpbmNoOiAnbW9iaWxlUGluY2gnLFxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpZWxlbWVudC8xNjE4NjczLWRvdWJsZXRhcD9sYW5ndWFnZT1vYmpjXG4gICAgZG91YmxlVGFwOiAnbW9iaWxlRG91YmxlVGFwJyxcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi94Y3Rlc3QveGN1aWVsZW1lbnQvMTYxODY3NS10d29maW5nZXJ0YXA/bGFuZ3VhZ2U9b2JqY1xuICAgIHR3b0ZpbmdlclRhcDogJ21vYmlsZVR3b0ZpbmdlclRhcCcsXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24veGN0ZXN0L3hjdWllbGVtZW50LzE2MTg2NzEtdGFwd2l0aG51bWJlcm9mdGFwcz9sYW5ndWFnZT1vYmpjXG4gICAgdGFwV2l0aE51bWJlck9mVGFwczogJ21vYmlsZVRhcFdpdGhOdW1iZXJPZlRhcHMnLFxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpZWxlbWVudC8xNjE4NjYzLXByZXNzZm9yZHVyYXRpb24/bGFuZ3VhZ2U9b2JqY1xuICAgIHRvdWNoQW5kSG9sZDogJ21vYmlsZVRvdWNoQW5kSG9sZCcsXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24veGN0ZXN0L3hjdWllbGVtZW50LzE2MTg2NzAtcHJlc3Nmb3JkdXJhdGlvbj9sYW5ndWFnZT1vYmpjXG4gICAgZHJhZ0Zyb21Ub0ZvckR1cmF0aW9uOiAnbW9iaWxlRHJhZ0Zyb21Ub0ZvckR1cmF0aW9uJyxcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi94Y3Rlc3QveGN1aWVsZW1lbnQvMTYxODY2NS1yb3RhdGU/bGFuZ3VhZ2U9b2JqY1xuICAgIHJvdGF0ZUVsZW1lbnQ6ICdtb2JpbGVSb3RhdGVFbGVtZW50JyxcbiAgICBmb3JjZVByZXNzOiAnbW9iaWxlRm9yY2VQcmVzcycsXG4gICAgc2Nyb2xsVG9FbGVtZW50OiAnbW9iaWxlU2Nyb2xsVG9FbGVtZW50JyxcblxuICAgIC8vZW5kcmVnaW9uIGdlc3R1cmVzIHN1cHBvcnRcbiAgICBhbGVydDogJ21vYmlsZUhhbmRsZUFsZXJ0JyxcblxuICAgIHNldFBhc3RlYm9hcmQ6ICdtb2JpbGVTZXRQYXN0ZWJvYXJkJyxcbiAgICBnZXRQYXN0ZWJvYXJkOiAnbW9iaWxlR2V0UGFzdGVib2FyZCcsXG5cbiAgICBzb3VyY2U6ICdtb2JpbGVHZXRTb3VyY2UnLFxuICAgIGdldENvbnRleHRzOiAnbW9iaWxlR2V0Q29udGV4dHMnLFxuXG4gICAgLy9yZWdpb24gbXVsdGlwbGUgYXBwcyBtYW5hZ2VtZW50XG4gICAgaW5zdGFsbEFwcDogJ21vYmlsZUluc3RhbGxBcHAnLFxuICAgIGlzQXBwSW5zdGFsbGVkOiAnbW9iaWxlSXNBcHBJbnN0YWxsZWQnLFxuICAgIHJlbW92ZUFwcDogJ21vYmlsZVJlbW92ZUFwcCcsXG4gICAgbGF1bmNoQXBwOiAnbW9iaWxlTGF1bmNoQXBwJyxcbiAgICB0ZXJtaW5hdGVBcHA6ICdtb2JpbGVUZXJtaW5hdGVBcHAnLFxuICAgIGtpbGxBcHA6ICdtb2JpbGVLaWxsQXBwJyxcbiAgICBxdWVyeUFwcFN0YXRlOiAnbW9iaWxlUXVlcnlBcHBTdGF0ZScsXG4gICAgYWN0aXZhdGVBcHA6ICdtb2JpbGVBY3RpdmF0ZUFwcCcsXG4gICAgbGlzdEFwcHM6ICdtb2JpbGVMaXN0QXBwcycsXG4gICAgLy9lbmRyZWdpb24gbXVsdGlwbGUgYXBwcyBtYW5hZ2VtZW50XG5cbiAgICB2aWV3cG9ydFNjcmVlbnNob3Q6ICdnZXRWaWV3cG9ydFNjcmVlbnNob3QnLFxuICAgIHZpZXdwb3J0UmVjdDogJ2dldFZpZXdwb3J0UmVjdCcsXG5cbiAgICBzdGFydFBlcmZSZWNvcmQ6ICdtb2JpbGVTdGFydFBlcmZSZWNvcmQnLFxuICAgIHN0b3BQZXJmUmVjb3JkOiAnbW9iaWxlU3RvcFBlcmZSZWNvcmQnLFxuXG4gICAgaW5zdGFsbENlcnRpZmljYXRlOiAnbW9iaWxlSW5zdGFsbENlcnRpZmljYXRlJyxcblxuICAgIHN0YXJ0TG9nc0Jyb2FkY2FzdDogJ21vYmlsZVN0YXJ0TG9nc0Jyb2FkY2FzdCcsXG4gICAgc3RvcExvZ3NCcm9hZGNhc3Q6ICdtb2JpbGVTdG9wTG9nc0Jyb2FkY2FzdCcsXG5cbiAgICBiYXR0ZXJ5SW5mbzogJ21vYmlsZUdldEJhdHRlcnlJbmZvJyxcbiAgICBkZXZpY2VJbmZvOiAnbW9iaWxlR2V0RGV2aWNlSW5mbycsXG4gICAgZ2V0RGV2aWNlVGltZTogJ21vYmlsZUdldERldmljZVRpbWUnLFxuICAgIGFjdGl2ZUFwcEluZm86ICdtb2JpbGVHZXRBY3RpdmVBcHBJbmZvJyxcbiAgICBkZXZpY2VTY3JlZW5JbmZvOiAnZ2V0U2NyZWVuSW5mbycsXG5cbiAgICBwcmVzc0J1dHRvbjogJ21vYmlsZVByZXNzQnV0dG9uJyxcblxuICAgIGVucm9sbEJpb21ldHJpYzogJ21vYmlsZUVucm9sbEJpb21ldHJpYycsXG4gICAgc2VuZEJpb21ldHJpY01hdGNoOiAnbW9iaWxlU2VuZEJpb21ldHJpY01hdGNoJyxcbiAgICBpc0Jpb21ldHJpY0Vucm9sbGVkOiAnbW9iaWxlSXNCaW9tZXRyaWNFbnJvbGxlZCcsXG5cbiAgICBjbGVhcktleWNoYWluczogJ21vYmlsZUNsZWFyS2V5Y2hhaW5zJyxcblxuICAgIGdldFBlcm1pc3Npb246ICdtb2JpbGVHZXRQZXJtaXNzaW9uJyxcbiAgICBzZXRQZXJtaXNzaW9uOiAnbW9iaWxlU2V0UGVybWlzc2lvbnMnLFxuICAgIHJlc2V0UGVybWlzc2lvbjogJ21vYmlsZVJlc2V0UGVybWlzc2lvbicsXG5cbiAgICBnZXRBcHBlYXJhbmNlOiAnbW9iaWxlR2V0QXBwZWFyYW5jZScsXG4gICAgc2V0QXBwZWFyYW5jZTogJ21vYmlsZVNldEFwcGVhcmFuY2UnLFxuXG4gICAgc2lyaUNvbW1hbmQ6ICdtb2JpbGVTaXJpQ29tbWFuZCcsXG5cbiAgICBkZWxldGVGaWxlOiAnbW9iaWxlRGVsZXRlRmlsZScsXG4gICAgZGVsZXRlRm9sZGVyOiAnbW9iaWxlRGVsZXRlRm9sZGVyJyxcblxuICAgIHN0YXJ0QXVkaW9SZWNvcmRpbmc6ICdzdGFydEF1ZGlvUmVjb3JkaW5nJyxcbiAgICBzdG9wQXVkaW9SZWNvcmRpbmc6ICdzdG9wQXVkaW9SZWNvcmRpbmcnLFxuXG4gICAgLy8gWENUZXN0XG4gICAgcnVuWENUZXN0OiAnbW9iaWxlUnVuWENUZXN0JyxcbiAgICBpbnN0YWxsWENUZXN0QnVuZGxlOiAnbW9iaWxlSW5zdGFsbFhDVGVzdEJ1bmRsZScsXG4gICAgbGlzdFhDVGVzdEJ1bmRsZXM6ICdtb2JpbGVMaXN0WENUZXN0QnVuZGxlcycsXG4gICAgbGlzdFhDVGVzdHNJblRlc3RCdW5kbGU6ICdtb2JpbGVMaXN0WENUZXN0c0luVGVzdEJ1bmRsZScsXG5cbiAgICBwdXNoTm90aWZpY2F0aW9uOiAnbW9iaWxlUHVzaE5vdGlmaWNhdGlvbicsXG4gICAgZXhwZWN0Tm90aWZpY2F0aW9uOiAnbW9iaWxlRXhwZWN0Tm90aWZpY2F0aW9uJyxcblxuICAgIHBlcmZvcm1Jb0hpZEV2ZW50OiAnbW9iaWxlUGVyZm9ybUlvSGlkRXZlbnQnLFxuXG4gICAgY29uZmlndXJlTG9jYWxpemF0aW9uOiAnbW9iaWxlQ29uZmlndXJlTG9jYWxpemF0aW9uJyxcblxuICAgIHJlc2V0TG9jYXRpb25TZXJ2aWNlOiAnbW9iaWxlUmVzZXRMb2NhdGlvblNlcnZpY2UnLFxuXG4gICAgc3RhcnRQY2FwOiAnbW9iaWxlU3RhcnRQY2FwJyxcbiAgICBzdG9wUGNhcDogJ21vYmlsZVN0b3BQY2FwJyxcbiAgfTtcblxuICBpZiAoIV8uaGFzKGNvbW1hbmRNYXAsIG1vYmlsZUNvbW1hbmQpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5Vbmtub3duQ29tbWFuZEVycm9yKGBVbmtub3duIG1vYmlsZSBjb21tYW5kICcke21vYmlsZUNvbW1hbmR9Jy4gT25seSAke18ua2V5cyhjb21tYW5kTWFwKS5qb2luKCcsICcpfSBjb21tYW5kcyBhcmUgc3VwcG9ydGVkLmApO1xuICB9XG4gIHJldHVybiBhd2FpdCB0aGlzW2NvbW1hbmRNYXBbbW9iaWxlQ29tbWFuZF1dKG9wdHMpO1xufTtcblxuZXhwb3J0IGRlZmF1bHQgZXh0ZW5zaW9ucztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFHQTs7QUFFQSxNQUFNQSxVQUFVLEdBQUcsRUFBbkI7O0FBRUFBLFVBQVUsQ0FBQ0Msb0JBQVgsR0FBa0MsZUFBZUEsb0JBQWYsQ0FBcUNDLE1BQXJDLEVBQTZDQyxLQUE3QyxFQUFvRDtFQUNwRixLQUFLQyxHQUFMLENBQVNDLEtBQVQsQ0FBZ0IsNEJBQTJCQyxJQUFJLENBQUNDLFNBQUwsQ0FBZUosS0FBZixDQUFzQixFQUFqRTs7RUFDQSxJQUFJLENBQUNLLGFBQUEsQ0FBS0MsUUFBTCxDQUFjLEtBQUtDLFlBQW5CLENBQUwsRUFBdUM7SUFDckMsS0FBS04sR0FBTCxDQUFTTyxJQUFULENBQWUsMERBQUQsR0FDWCxpQkFBZ0JMLElBQUksQ0FBQ0MsU0FBTCxDQUFlSixLQUFmLENBQXNCLEVBRHpDO0lBRUE7RUFDRDs7RUFFRCxJQUFJSyxhQUFBLENBQUtDLFFBQUwsQ0FBY1AsTUFBZCxLQUF5QkEsTUFBTSxLQUFLLENBQXhDLEVBQTJDO0lBRXpDLE9BQU8sS0FBS1EsWUFBTCxDQUFrQkUsTUFBbEIsQ0FBeUIsSUFBQUMscUJBQUEsRUFBY1gsTUFBZCxFQUFzQkMsS0FBSyxDQUFDVyxPQUE1QixDQUF6QixDQUFQO0VBQ0Q7O0VBQ0QsSUFBSSxDQUFDTixhQUFBLENBQUtDLFFBQUwsQ0FBY1AsTUFBZCxDQUFELElBQTBCQyxLQUExQixJQUFtQ1ksZUFBQSxDQUFFQyxRQUFGLENBQVdiLEtBQUssQ0FBQ2MsS0FBakIsQ0FBdkMsRUFBZ0U7SUFFOUQsT0FBTyxLQUFLUCxZQUFMLENBQWtCRSxNQUFsQixDQUF5QixJQUFBTSw0QkFBQSxF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
147
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2V4ZWN1dGUuanMiLCJuYW1lcyI6WyJleHRlbnNpb25zIiwicmVjZWl2ZUFzeW5jUmVzcG9uc2UiLCJzdGF0dXMiLCJ2YWx1ZSIsImxvZyIsImRlYnVnIiwiSlNPTiIsInN0cmluZ2lmeSIsInV0aWwiLCJoYXNWYWx1ZSIsImFzeW5jUHJvbWlzZSIsIndhcm4iLCJyZWplY3QiLCJlcnJvckZyb21Db2RlIiwibWVzc2FnZSIsIl8iLCJpc1N0cmluZyIsImVycm9yIiwiZXJyb3JGcm9tVzNDSnNvbkNvZGUiLCJzdGFja3RyYWNlIiwicmVzb2x2ZSIsImV4ZWN1dGUiLCJzY3JpcHQiLCJhcmdzIiwibWF0Y2giLCJyZXBsYWNlIiwidHJpbSIsImV4ZWN1dGVNb2JpbGUiLCJpc0FycmF5IiwiaXNXZWJDb250ZXh0IiwiY29udmVydEVsZW1lbnRzRm9yQXRvbXMiLCJyZXN1bHQiLCJleGVjdXRlQXRvbSIsImNhY2hlV2ViRWxlbWVudHMiLCJlcnJvcnMiLCJOb3RJbXBsZW1lbnRlZEVycm9yIiwiZXhlY3V0ZUFzeW5jIiwiYXN5bmNXYWl0TXMiLCJwcm9taXNlIiwicmVtb3RlIiwiZXhlY3V0ZUF0b21Bc3luYyIsImN1cldlYkZyYW1lcyIsIndhaXRGb3JBdG9tIiwibW9iaWxlQ29tbWFuZCIsIm9wdHMiLCJjb21tYW5kTWFwIiwidGFwIiwic2Nyb2xsIiwic2VsZWN0UGlja2VyV2hlZWxWYWx1ZSIsInN3aXBlIiwicGluY2giLCJkb3VibGVUYXAiLCJ0d29GaW5nZXJUYXAiLCJ0YXBXaXRoTnVtYmVyT2ZUYXBzIiwidG91Y2hBbmRIb2xkIiwiZHJhZ0Zyb21Ub0ZvckR1cmF0aW9uIiwicm90YXRlRWxlbWVudCIsImZvcmNlUHJlc3MiLCJzY3JvbGxUb0VsZW1lbnQiLCJhbGVydCIsInNldFBhc3RlYm9hcmQiLCJnZXRQYXN0ZWJvYXJkIiwic291cmNlIiwiZ2V0Q29udGV4dHMiLCJpbnN0YWxsQXBwIiwiaXNBcHBJbnN0YWxsZWQiLCJyZW1vdmVBcHAiLCJsYXVuY2hBcHAiLCJ0ZXJtaW5hdGVBcHAiLCJraWxsQXBwIiwicXVlcnlBcHBTdGF0ZSIsImFjdGl2YXRlQXBwIiwibGlzdEFwcHMiLCJ2aWV3cG9ydFNjcmVlbnNob3QiLCJ2aWV3cG9ydFJlY3QiLCJzdGFydFBlcmZSZWNvcmQiLCJzdG9wUGVyZlJlY29yZCIsImluc3RhbGxDZXJ0aWZpY2F0ZSIsImxpc3RDZXJ0aWZpY2F0ZXMiLCJzdGFydExvZ3NCcm9hZGNhc3QiLCJzdG9wTG9nc0Jyb2FkY2FzdCIsImJhdHRlcnlJbmZvIiwiZGV2aWNlSW5mbyIsImdldERldmljZVRpbWUiLCJhY3RpdmVBcHBJbmZvIiwiZGV2aWNlU2NyZWVuSW5mbyIsInByZXNzQnV0dG9uIiwiZW5yb2xsQmlvbWV0cmljIiwic2VuZEJpb21ldHJpY01hdGNoIiwiaXNCaW9tZXRyaWNFbnJvbGxlZCIsImNsZWFyS2V5Y2hhaW5zIiwiZ2V0UGVybWlzc2lvbiIsInNldFBlcm1pc3Npb24iLCJyZXNldFBlcm1pc3Npb24iLCJnZXRBcHBlYXJhbmNlIiwic2V0QXBwZWFyYW5jZSIsInNpcmlDb21tYW5kIiwiZGVsZXRlRmlsZSIsImRlbGV0ZUZvbGRlciIsInN0YXJ0QXVkaW9SZWNvcmRpbmciLCJzdG9wQXVkaW9SZWNvcmRpbmciLCJydW5YQ1Rlc3QiLCJpbnN0YWxsWENUZXN0QnVuZGxlIiwibGlzdFhDVGVzdEJ1bmRsZXMiLCJsaXN0WENUZXN0c0luVGVzdEJ1bmRsZSIsInB1c2hOb3RpZmljYXRpb24iLCJleHBlY3ROb3RpZmljYXRpb24iLCJwZXJmb3JtSW9IaWRFdmVudCIsImNvbmZpZ3VyZUxvY2FsaXphdGlvbiIsInJlc2V0TG9jYXRpb25TZXJ2aWNlIiwic3RhcnRQY2FwIiwic3RvcFBjYXAiLCJsaXN0Q29uZGl0aW9uSW5kdWNlcnMiLCJlbmFibGVDb25kaXRpb25JbmR1Y2VyIiwiZGlzYWJsZUNvbmRpdGlvbkluZHVjZXIiLCJoYXMiLCJVbmtub3duQ29tbWFuZEVycm9yIiwia2V5cyIsImpvaW4iXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uIiwic291cmNlcyI6WyJsaWIvY29tbWFuZHMvZXhlY3V0ZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHtcbiAgZXJyb3JzLCBlcnJvckZyb21Db2RlLCBlcnJvckZyb21XM0NKc29uQ29kZVxufSBmcm9tICdhcHBpdW0vZHJpdmVyJztcbmltcG9ydCB7IHV0aWwgfSBmcm9tICdhcHBpdW0vc3VwcG9ydCc7XG5cbmNvbnN0IGV4dGVuc2lvbnMgPSB7fTtcblxuZXh0ZW5zaW9ucy5yZWNlaXZlQXN5bmNSZXNwb25zZSA9IGFzeW5jIGZ1bmN0aW9uIHJlY2VpdmVBc3luY1Jlc3BvbnNlIChzdGF0dXMsIHZhbHVlKSB7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgcmVxdWlyZS1hd2FpdFxuICB0aGlzLmxvZy5kZWJ1ZyhgUmVjZWl2ZWQgYXN5bmMgcmVzcG9uc2U6ICR7SlNPTi5zdHJpbmdpZnkodmFsdWUpfWApO1xuICBpZiAoIXV0aWwuaGFzVmFsdWUodGhpcy5hc3luY1Byb21pc2UpKSB7XG4gICAgdGhpcy5sb2cud2FybihgUmVjZWl2ZWQgYXN5bmMgcmVzcG9uc2Ugd2hlbiB3ZSB3ZXJlIG5vdCBleHBlY3Rpbmcgb25lISBgICtcbiAgICAgIGBSZXNwb25zZSB3YXM6ICR7SlNPTi5zdHJpbmdpZnkodmFsdWUpfWApO1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGlmICh1dGlsLmhhc1ZhbHVlKHN0YXR1cykgJiYgc3RhdHVzICE9PSAwKSB7XG4gICAgLy8gTUpTT05XUFxuICAgIHJldHVybiB0aGlzLmFzeW5jUHJvbWlzZS5yZWplY3QoZXJyb3JGcm9tQ29kZShzdGF0dXMsIHZhbHVlLm1lc3NhZ2UpKTtcbiAgfVxuICBpZiAoIXV0aWwuaGFzVmFsdWUoc3RhdHVzKSAmJiB2YWx1ZSAmJiBfLmlzU3RyaW5nKHZhbHVlLmVycm9yKSkge1xuICAgIC8vIFczQ1xuICAgIHJldHVybiB0aGlzLmFzeW5jUHJvbWlzZS5yZWplY3QoZXJyb3JGcm9tVzNDSnNvbkNvZGUodmFsdWUuZXJyb3IsIHZhbHVlLm1lc3NhZ2UsIHZhbHVlLnN0YWNrdHJhY2UpKTtcbiAgfVxuICByZXR1cm4gdGhpcy5hc3luY1Byb21pc2UucmVzb2x2ZSh2YWx1ZSk7XG59O1xuXG5leHRlbnNpb25zLmV4ZWN1dGUgPSBhc3luYyBmdW5jdGlvbiBleGVjdXRlIChzY3JpcHQsIGFyZ3MpIHtcbiAgaWYgKHNjcmlwdC5tYXRjaCgvXm1vYmlsZTovKSkge1xuICAgIHNjcmlwdCA9IHNjcmlwdC5yZXBsYWNlKC9ebW9iaWxlOi8sICcnKS50cmltKCk7XG4gICAgcmV0dXJuIGF3YWl0IHRoaXMuZXhlY3V0ZU1vYmlsZShzY3JpcHQsIF8uaXNBcnJheShhcmdzKSA/IGFyZ3NbMF0gOiBhcmdzKTtcbiAgfSBlbHNlIGlmICh0aGlzLmlzV2ViQ29udGV4dCgpKSB7XG4gICAgYXJncyA9IHRoaXMuY29udmVydEVsZW1lbnRzRm9yQXRvbXMoYXJncyk7XG4gICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5leGVjdXRlQXRvbSgnZXhlY3V0ZV9zY3JpcHQnLCBbc2NyaXB0LCBhcmdzXSk7XG4gICAgcmV0dXJuIHRoaXMuY2FjaGVXZWJFbGVtZW50cyhyZXN1bHQpO1xuICB9IGVsc2Uge1xuICAgIHRocm93IG5ldyBlcnJvcnMuTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICB9XG59O1xuXG5leHRlbnNpb25zLmV4ZWN1dGVBc3luYyA9IGFzeW5jIGZ1bmN0aW9uIGV4ZWN1dGVBc3luYyAoc2NyaXB0LCBhcmdzKSB7XG4gIGlmICghdGhpcy5pc1dlYkNvbnRleHQoKSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICB9XG5cbiAgYXJncyA9IHRoaXMuY29udmVydEVsZW1lbnRzRm9yQXRvbXMoYXJncyk7XG4gIHRoaXMuYXN5bmNXYWl0TXMgPSB0aGlzLmFzeW5jV2FpdE1zIHx8IDA7XG4gIGNvbnN0IHByb21pc2UgPSB0aGlzLnJlbW90ZS5leGVjdXRlQXRvbUFzeW5jKCdleGVjdXRlX2FzeW5jX3NjcmlwdCcsIFtcbiAgICBzY3JpcHQsIGFyZ3MsIHRoaXMuYXN5bmNXYWl0TXNcbiAgXSwgdGhpcy5jdXJXZWJGcmFtZXMpO1xuICByZXR1cm4gdGhpcy5jYWNoZVdlYkVsZW1lbnRzKGF3YWl0IHRoaXMud2FpdEZvckF0b20ocHJvbWlzZSkpO1xufTtcblxuZXh0ZW5zaW9ucy5leGVjdXRlTW9iaWxlID0gYXN5bmMgZnVuY3Rpb24gZXhlY3V0ZU1vYmlsZSAobW9iaWxlQ29tbWFuZCwgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IGNvbW1hbmRNYXAgPSB7XG4gICAgLy9yZWdpb24gZ2VzdHVyZXMgc3VwcG9ydFxuICAgIHRhcDogJ21vYmlsZVRhcCcsXG4gICAgc2Nyb2xsOiAnbW9iaWxlU2Nyb2xsJyxcbiAgICBzZWxlY3RQaWNrZXJXaGVlbFZhbHVlOiAnbW9iaWxlU2VsZWN0UGlja2VyV2hlZWxWYWx1ZScsXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24veGN0ZXN0L3hjdWllbGVtZW50LzE2MTg2Njgtc3dpcGVsZWZ0P2xhbmd1YWdlPW9iamNcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi94Y3Rlc3QveGN1aWVsZW1lbnQvMTYxODY3NC1zd2lwZXJpZ2h0P2xhbmd1YWdlPW9iamNcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi94Y3Rlc3QveGN1aWVsZW1lbnQvMTYxODY2Ny1zd2lwZXVwP2xhbmd1YWdlPW9iamNcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi94Y3Rlc3QveGN1aWVsZW1lbnQvMTYxODY2NC1zd2lwZWRvd24/bGFuZ3VhZ2U9b2JqY1xuICAgIHN3aXBlOiAnbW9iaWxlU3dpcGUnLFxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpZWxlbWVudC8xNjE4NjY5LXBpbmNod2l0aHNjYWxlP2xhbmd1YWdlPW9iamNcbiAgICBwaW5jaDogJ21vYmlsZVBpbmNoJyxcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi94Y3Rlc3QveGN1aWVsZW1lbnQvMTYxODY3My1kb3VibGV0YXA/bGFuZ3VhZ2U9b2JqY1xuICAgIGRvdWJsZVRhcDogJ21vYmlsZURvdWJsZVRhcCcsXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24veGN0ZXN0L3hjdWllbGVtZW50LzE2MTg2NzUtdHdvZmluZ2VydGFwP2xhbmd1YWdlPW9iamNcbiAgICB0d29GaW5nZXJUYXA6ICdtb2JpbGVUd29GaW5nZXJUYXAnLFxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpZWxlbWVudC8xNjE4NjcxLXRhcHdpdGhudW1iZXJvZnRhcHM/bGFuZ3VhZ2U9b2JqY1xuICAgIHRhcFdpdGhOdW1iZXJPZlRhcHM6ICdtb2JpbGVUYXBXaXRoTnVtYmVyT2ZUYXBzJyxcbiAgICAvLyBodHRwczovL2RldmVsb3Blci5hcHBsZS5jb20vZG9jdW1lbnRhdGlvbi94Y3Rlc3QveGN1aWVsZW1lbnQvMTYxODY2My1wcmVzc2ZvcmR1cmF0aW9uP2xhbmd1YWdlPW9iamNcbiAgICB0b3VjaEFuZEhvbGQ6ICdtb2JpbGVUb3VjaEFuZEhvbGQnLFxuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLmFwcGxlLmNvbS9kb2N1bWVudGF0aW9uL3hjdGVzdC94Y3VpZWxlbWVudC8xNjE4NjcwLXByZXNzZm9yZHVyYXRpb24/bGFuZ3VhZ2U9b2JqY1xuICAgIGRyYWdGcm9tVG9Gb3JEdXJhdGlvbjogJ21vYmlsZURyYWdGcm9tVG9Gb3JEdXJhdGlvbicsXG4gICAgLy8gaHR0cHM6Ly9kZXZlbG9wZXIuYXBwbGUuY29tL2RvY3VtZW50YXRpb24veGN0ZXN0L3hjdWllbGVtZW50LzE2MTg2NjUtcm90YXRlP2xhbmd1YWdlPW9iamNcbiAgICByb3RhdGVFbGVtZW50OiAnbW9iaWxlUm90YXRlRWxlbWVudCcsXG4gICAgZm9yY2VQcmVzczogJ21vYmlsZUZvcmNlUHJlc3MnLFxuICAgIHNjcm9sbFRvRWxlbWVudDogJ21vYmlsZVNjcm9sbFRvRWxlbWVudCcsXG5cbiAgICAvL2VuZHJlZ2lvbiBnZXN0dXJlcyBzdXBwb3J0XG4gICAgYWxlcnQ6ICdtb2JpbGVIYW5kbGVBbGVydCcsXG5cbiAgICBzZXRQYXN0ZWJvYXJkOiAnbW9iaWxlU2V0UGFzdGVib2FyZCcsXG4gICAgZ2V0UGFzdGVib2FyZDogJ21vYmlsZUdldFBhc3RlYm9hcmQnLFxuXG4gICAgc291cmNlOiAnbW9iaWxlR2V0U291cmNlJyxcbiAgICBnZXRDb250ZXh0czogJ21vYmlsZUdldENvbnRleHRzJyxcblxuICAgIC8vcmVnaW9uIG11bHRpcGxlIGFwcHMgbWFuYWdlbWVudFxuICAgIGluc3RhbGxBcHA6ICdtb2JpbGVJbnN0YWxsQXBwJyxcbiAgICBpc0FwcEluc3RhbGxlZDogJ21vYmlsZUlzQXBwSW5zdGFsbGVkJyxcbiAgICByZW1vdmVBcHA6ICdtb2JpbGVSZW1vdmVBcHAnLFxuICAgIGxhdW5jaEFwcDogJ21vYmlsZUxhdW5jaEFwcCcsXG4gICAgdGVybWluYXRlQXBwOiAnbW9iaWxlVGVybWluYXRlQXBwJyxcbiAgICBraWxsQXBwOiAnbW9iaWxlS2lsbEFwcCcsXG4gICAgcXVlcnlBcHBTdGF0ZTogJ21vYmlsZVF1ZXJ5QXBwU3RhdGUnLFxuICAgIGFjdGl2YXRlQXBwOiAnbW9iaWxlQWN0aXZhdGVBcHAnLFxuICAgIGxpc3RBcHBzOiAnbW9iaWxlTGlzdEFwcHMnLFxuICAgIC8vZW5kcmVnaW9uIG11bHRpcGxlIGFwcHMgbWFuYWdlbWVudFxuXG4gICAgdmlld3BvcnRTY3JlZW5zaG90OiAnZ2V0Vmlld3BvcnRTY3JlZW5zaG90JyxcbiAgICB2aWV3cG9ydFJlY3Q6ICdnZXRWaWV3cG9ydFJlY3QnLFxuXG4gICAgc3RhcnRQZXJmUmVjb3JkOiAnbW9iaWxlU3RhcnRQZXJmUmVjb3JkJyxcbiAgICBzdG9wUGVyZlJlY29yZDogJ21vYmlsZVN0b3BQZXJmUmVjb3JkJyxcblxuICAgIGluc3RhbGxDZXJ0aWZpY2F0ZTogJ21vYmlsZUluc3RhbGxDZXJ0aWZpY2F0ZScsXG4gICAgbGlzdENlcnRpZmljYXRlczogJ21vYmlsZUxpc3RDZXJ0aWZpY2F0ZXMnLFxuXG4gICAgc3RhcnRMb2dzQnJvYWRjYXN0OiAnbW9iaWxlU3RhcnRMb2dzQnJvYWRjYXN0JyxcbiAgICBzdG9wTG9nc0Jyb2FkY2FzdDogJ21vYmlsZVN0b3BMb2dzQnJvYWRjYXN0JyxcblxuICAgIGJhdHRlcnlJbmZvOiAnbW9iaWxlR2V0QmF0dGVyeUluZm8nLFxuICAgIGRldmljZUluZm86ICdtb2JpbGVHZXREZXZpY2VJbmZvJyxcbiAgICBnZXREZXZpY2VUaW1lOiAnbW9iaWxlR2V0RGV2aWNlVGltZScsXG4gICAgYWN0aXZlQXBwSW5mbzogJ21vYmlsZUdldEFjdGl2ZUFwcEluZm8nLFxuICAgIGRldmljZVNjcmVlbkluZm86ICdnZXRTY3JlZW5JbmZvJyxcblxuICAgIHByZXNzQnV0dG9uOiAnbW9iaWxlUHJlc3NCdXR0b24nLFxuXG4gICAgZW5yb2xsQmlvbWV0cmljOiAnbW9iaWxlRW5yb2xsQmlvbWV0cmljJyxcbiAgICBzZW5kQmlvbWV0cmljTWF0Y2g6ICdtb2JpbGVTZW5kQmlvbWV0cmljTWF0Y2gnLFxuICAgIGlzQmlvbWV0cmljRW5yb2xsZWQ6ICdtb2JpbGVJc0Jpb21ldHJpY0Vucm9sbGVkJyxcblxuICAgIGNsZWFyS2V5Y2hhaW5zOiAnbW9iaWxlQ2xlYXJLZXljaGFpbnMnLFxuXG4gICAgZ2V0UGVybWlzc2lvbjogJ21vYmlsZUdldFBlcm1pc3Npb24nLFxuICAgIHNldFBlcm1pc3Npb246ICdtb2JpbGVTZXRQZXJtaXNzaW9ucycsXG4gICAgcmVzZXRQZXJtaXNzaW9uOiAnbW9iaWxlUmVzZXRQZXJtaXNzaW9uJyxcblxuICAgIGdldEFwcGVhcmFuY2U6ICdtb2JpbGVHZXRBcHBlYXJhbmNlJyxcbiAgICBzZXRBcHBlYXJhbmNlOiAnbW9iaWxlU2V0QXBwZWFyYW5jZScsXG5cbiAgICBzaXJpQ29tbWFuZDogJ21vYmlsZVNpcmlDb21tYW5kJyxcblxuICAgIGRlbGV0ZUZpbGU6ICdtb2JpbGVEZWxldGVGaWxlJyxcbiAgICBkZWxldGVGb2xkZXI6ICdtb2JpbGVEZWxldGVGb2xkZXInLFxuXG4gICAgc3RhcnRBdWRpb1JlY29yZGluZzogJ3N0YXJ0QXVkaW9SZWNvcmRpbmcnLFxuICAgIHN0b3BBdWRpb1JlY29yZGluZzogJ3N0b3BBdWRpb1JlY29yZGluZycsXG5cbiAgICAvLyBYQ1Rlc3RcbiAgICBydW5YQ1Rlc3Q6ICdtb2JpbGVSdW5YQ1Rlc3QnLFxuICAgIGluc3RhbGxYQ1Rlc3RCdW5kbGU6ICdtb2JpbGVJbnN0YWxsWENUZXN0QnVuZGxlJyxcbiAgICBsaXN0WENUZXN0QnVuZGxlczogJ21vYmlsZUxpc3RYQ1Rlc3RCdW5kbGVzJyxcbiAgICBsaXN0WENUZXN0c0luVGVzdEJ1bmRsZTogJ21vYmlsZUxpc3RYQ1Rlc3RzSW5UZXN0QnVuZGxlJyxcblxuICAgIHB1c2hOb3RpZmljYXRpb246ICdtb2JpbGVQdXNoTm90aWZpY2F0aW9uJyxcbiAgICBleHBlY3ROb3RpZmljYXRpb246ICdtb2JpbGVFeHBlY3ROb3RpZmljYXRpb24nLFxuXG4gICAgcGVyZm9ybUlvSGlkRXZlbnQ6ICdtb2JpbGVQZXJmb3JtSW9IaWRFdmVudCcsXG5cbiAgICBjb25maWd1cmVMb2NhbGl6YXRpb246ICdtb2JpbGVDb25maWd1cmVMb2NhbGl6YXRpb24nLFxuXG4gICAgcmVzZXRMb2NhdGlvblNlcnZpY2U6ICdtb2JpbGVSZXNldExvY2F0aW9uU2VydmljZScsXG5cbiAgICBzdGFydFBjYXA6ICdtb2JpbGVTdGFydFBjYXAnLFxuICAgIHN0b3BQY2FwOiAnbW9iaWxlU3RvcFBjYXAnLFxuICAgIGxpc3RDb25kaXRpb25JbmR1Y2VyczogJ21vYmlsZUxpc3RDb25kaXRpb25JbmR1Y2VycycsXG4gICAgZW5hYmxlQ29uZGl0aW9uSW5kdWNlcjogJ21vYmlsZUVuYWJsZUNvbmRpdGlvbkluZHVjZXInLFxuICAgIGRpc2FibGVDb25kaXRpb25JbmR1Y2VyOiAnbW9iaWxlRGlzYWJsZUNvbmRpdGlvbkluZHVjZXInLFxuICB9O1xuXG4gIGlmICghXy5oYXMoY29tbWFuZE1hcCwgbW9iaWxlQ29tbWFuZCkpIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JzLlVua25vd25Db21tYW5kRXJyb3IoYFVua25vd24gbW9iaWxlIGNvbW1hbmQgJyR7bW9iaWxlQ29tbWFuZH0nLiBPbmx5ICR7Xy5rZXlzKGNvbW1hbmRNYXApLmpvaW4oJywgJyl9IGNvbW1hbmRzIGFyZSBzdXBwb3J0ZWQuYCk7XG4gIH1cbiAgcmV0dXJuIGF3YWl0IHRoaXNbY29tbWFuZE1hcFttb2JpbGVDb21tYW5kXV0ob3B0cyk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBleHRlbnNpb25zO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUdBOztBQUVBLE1BQU1BLFVBQVUsR0FBRyxFQUFuQjs7QUFFQUEsVUFBVSxDQUFDQyxvQkFBWCxHQUFrQyxlQUFlQSxvQkFBZixDQUFxQ0MsTUFBckMsRUFBNkNDLEtBQTdDLEVBQW9EO0VBQ3BGLEtBQUtDLEdBQUwsQ0FBU0MsS0FBVCxDQUFnQiw0QkFBMkJDLElBQUksQ0FBQ0MsU0FBTCxDQUFlSixLQUFmLENBQXNCLEVBQWpFOztFQUNBLElBQUksQ0FBQ0ssYUFBQSxDQUFLQyxRQUFMLENBQWMsS0FBS0MsWUFBbkIsQ0FBTCxFQUF1QztJQUNyQyxLQUFLTixHQUFMLENBQVNPLElBQVQsQ0FBZSwwREFBRCxHQUNYLGlCQUFnQkwsSUFBSSxDQUFDQyxTQUFMLENBQWVKLEtBQWYsQ0FBc0IsRUFEekM7SUFFQTtFQUNEOztFQUVELElBQUlLLGFBQUEsQ0FB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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=