appium-android-driver 4.48.1 → 4.51.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/build/lib/android-helpers.js +52 -38
- package/build/lib/commands/app-management.js +15 -1
- package/build/lib/commands/execute.js +4 -2
- package/build/lib/commands/general.js +21 -33
- package/build/lib/commands/intent.js +5 -1
- package/build/lib/desired-caps.js +8 -1
- package/build/lib/unlock-helpers.js +85 -104
- package/build/lib/webview-helpers.js +8 -4
- package/lib/android-helpers.js +53 -34
- package/lib/commands/app-management.js +19 -0
- package/lib/commands/execute.js +4 -0
- package/lib/commands/general.js +34 -21
- package/lib/commands/intent.js +9 -0
- package/lib/desired-caps.js +7 -0
- package/lib/unlock-helpers.js +99 -96
- package/lib/webview-helpers.js +9 -6
- package/package.json +2 -2
|
@@ -52,11 +52,13 @@ extensions.executeMobile = async function executeMobile(mobileCommand, opts = {}
|
|
|
52
52
|
getNotifications: 'mobileGetNotifications',
|
|
53
53
|
listSms: 'mobileListSms',
|
|
54
54
|
deleteFile: 'mobileDeleteFile',
|
|
55
|
+
clearApp: 'mobileClearApp',
|
|
55
56
|
startService: 'mobileStartService',
|
|
56
57
|
stopService: 'mobileStopService',
|
|
57
58
|
startActivity: 'mobileStartActivity',
|
|
58
59
|
broadcast: 'mobileBroadcast',
|
|
59
|
-
getContexts: 'mobileGetContexts'
|
|
60
|
+
getContexts: 'mobileGetContexts',
|
|
61
|
+
unlock: 'mobileUnlock'
|
|
60
62
|
};
|
|
61
63
|
|
|
62
64
|
if (!_lodash.default.has(mobileCommandsMapping, mobileCommand)) {
|
|
@@ -70,4 +72,4 @@ var _default = extensions;
|
|
|
70
72
|
exports.default = _default;require('source-map-support').install();
|
|
71
73
|
|
|
72
74
|
|
|
73
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,
|
|
75
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9leGVjdXRlLmpzIl0sIm5hbWVzIjpbImV4dGVuc2lvbnMiLCJleGVjdXRlIiwic2NyaXB0IiwiYXJncyIsIm1hdGNoIiwibG9nZ2VyIiwiaW5mbyIsInJlcGxhY2UiLCJ0cmltIiwiZXhlY3V0ZU1vYmlsZSIsIl8iLCJpc0FycmF5IiwiaXNXZWJDb250ZXh0IiwiZXJyb3JzIiwiTm90SW1wbGVtZW50ZWRFcnJvciIsImVuZHBvaW50IiwiY2hyb21lZHJpdmVyIiwiandwcm94eSIsImRvd25zdHJlYW1Qcm90b2NvbCIsIlBST1RPQ09MUyIsIk1KU09OV1AiLCJjb21tYW5kIiwibW9iaWxlQ29tbWFuZCIsIm9wdHMiLCJtb2JpbGVDb21tYW5kc01hcHBpbmciLCJzaGVsbCIsImV4ZWNFbXVDb25zb2xlQ29tbWFuZCIsInN0YXJ0TG9nc0Jyb2FkY2FzdCIsInN0b3BMb2dzQnJvYWRjYXN0IiwiY2hhbmdlUGVybWlzc2lvbnMiLCJnZXRQZXJtaXNzaW9ucyIsInBlcmZvcm1FZGl0b3JBY3Rpb24iLCJzZW5zb3JTZXQiLCJnZXREZXZpY2VUaW1lIiwic3RhcnRTY3JlZW5TdHJlYW1pbmciLCJzdG9wU2NyZWVuU3RyZWFtaW5nIiwiZ2V0Tm90aWZpY2F0aW9ucyIsImxpc3RTbXMiLCJkZWxldGVGaWxlIiwiY2xlYXJBcHAiLCJzdGFydFNlcnZpY2UiLCJzdG9wU2VydmljZSIsInN0YXJ0QWN0aXZpdHkiLCJicm9hZGNhc3QiLCJnZXRDb250ZXh0cyIsInVubG9jayIsImhhcyIsIlVua25vd25Db21tYW5kRXJyb3IiLCJrZXlzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUVBLElBQUlBLFVBQVUsR0FBRyxFQUFqQjs7QUFFQUEsVUFBVSxDQUFDQyxPQUFYLEdBQXFCLGVBQWVBLE9BQWYsQ0FBd0JDLE1BQXhCLEVBQWdDQyxJQUFoQyxFQUFzQztBQUN6RCxNQUFJRCxNQUFNLENBQUNFLEtBQVAsQ0FBYSxVQUFiLENBQUosRUFBOEI7QUFDNUJDLG9CQUFPQyxJQUFQLENBQWEsNkJBQTRCSixNQUFPLEdBQWhEOztBQUNBQSxJQUFBQSxNQUFNLEdBQUdBLE1BQU0sQ0FBQ0ssT0FBUCxDQUFlLFVBQWYsRUFBMkIsRUFBM0IsRUFBK0JDLElBQS9CLEVBQVQ7QUFDQSxXQUFPLE1BQU0sS0FBS0MsYUFBTCxDQUFtQlAsTUFBbkIsRUFBMkJRLGdCQUFFQyxPQUFGLENBQVVSLElBQVYsSUFBa0JBLElBQUksQ0FBQyxDQUFELENBQXRCLEdBQTRCQSxJQUF2RCxDQUFiO0FBQ0Q7O0FBQ0QsTUFBSSxDQUFDLEtBQUtTLFlBQUwsRUFBTCxFQUEwQjtBQUN4QixVQUFNLElBQUlDLHlCQUFPQyxtQkFBWCxFQUFOO0FBQ0Q7O0FBQ0QsUUFBTUMsUUFBUSxHQUFHLEtBQUtDLFlBQUwsQ0FBa0JDLE9BQWxCLENBQTBCQyxrQkFBMUIsS0FBaURDLDRCQUFVQyxPQUEzRCxHQUNiLFVBRGEsR0FFYixlQUZKO0FBR0EsU0FBTyxNQUFNLEtBQUtKLFlBQUwsQ0FBa0JDLE9BQWxCLENBQTBCSSxPQUExQixDQUFrQ04sUUFBbEMsRUFBNEMsTUFBNUMsRUFBb0Q7QUFDL0RiLElBQUFBLE1BRCtEO0FBRS9EQyxJQUFBQTtBQUYrRCxHQUFwRCxDQUFiO0FBSUQsQ0FoQkQ7O0FBa0JBSCxVQUFVLENBQUNTLGFBQVgsR0FBMkIsZUFBZUEsYUFBZixDQUE4QmEsYUFBOUIsRUFBNkNDLElBQUksR0FBRyxFQUFwRCxFQUF3RDtBQUNqRixRQUFNQyxxQkFBcUIsR0FBRztBQUM1QkMsSUFBQUEsS0FBSyxFQUFFLGFBRHFCO0FBRzVCQyxJQUFBQSxxQkFBcUIsRUFBRSw2QkFISztBQUs1QkMsSUFBQUEsa0JBQWtCLEVBQUUsMEJBTFE7QUFNNUJDLElBQUFBLGlCQUFpQixFQUFFLHlCQU5TO0FBUTVCQyxJQUFBQSxpQkFBaUIsRUFBRSx5QkFSUztBQVM1QkMsSUFBQUEsY0FBYyxFQUFFLHNCQVRZO0FBVzVCQyxJQUFBQSxtQkFBbUIsRUFBRSwyQkFYTztBQWE1QkMsSUFBQUEsU0FBUyxFQUFFLFdBYmlCO0FBZTVCQyxJQUFBQSxhQUFhLEVBQUUscUJBZmE7QUFpQjVCQyxJQUFBQSxvQkFBb0IsRUFBRSw0QkFqQk07QUFrQjVCQyxJQUFBQSxtQkFBbUIsRUFBRSwyQkFsQk87QUFvQjVCQyxJQUFBQSxnQkFBZ0IsRUFBRSx3QkFwQlU7QUFzQjVCQyxJQUFBQSxPQUFPLEVBQUUsZUF0Qm1CO0FBd0I1QkMsSUFBQUEsVUFBVSxFQUFFLGtCQXhCZ0I7QUEwQjVCQyxJQUFBQSxRQUFRLEVBQUUsZ0JBMUJrQjtBQTRCNUJDLElBQUFBLFlBQVksRUFBRSxvQkE1QmM7QUE2QjVCQyxJQUFBQSxXQUFXLEVBQUUsbUJBN0JlO0FBOEI1QkMsSUFBQUEsYUFBYSxFQUFFLHFCQTlCYTtBQStCNUJDLElBQUFBLFNBQVMsRUFBRSxpQkEvQmlCO0FBaUM1QkMsSUFBQUEsV0FBVyxFQUFFLG1CQWpDZTtBQW1DNUJDLElBQUFBLE1BQU0sRUFBRTtBQW5Db0IsR0FBOUI7O0FBc0NBLE1BQUksQ0FBQ25DLGdCQUFFb0MsR0FBRixDQUFNdEIscUJBQU4sRUFBNkJGLGFBQTdCLENBQUwsRUFBa0Q7QUFDaEQsVUFBTSxJQUFJVCx5QkFBT2tDLG1CQUFYLENBQWdDLDJCQUEwQnpCLGFBQWMsS0FBekMsR0FDbEMsUUFBT1osZ0JBQUVzQyxJQUFGLENBQU94QixxQkFBUCxDQUE4QiwwQkFEbEMsQ0FBTjtBQUVEOztBQUNELFNBQU8sTUFBTSxLQUFLQSxxQkFBcUIsQ0FBQ0YsYUFBRCxDQUExQixFQUEyQ0MsSUFBM0MsQ0FBYjtBQUNELENBNUNEOztlQThDZXZCLFUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgZXJyb3JzLCBQUk9UT0NPTFMgfSBmcm9tICdhcHBpdW0tYmFzZS1kcml2ZXInO1xuaW1wb3J0IGxvZ2dlciBmcm9tICcuLi9sb2dnZXInO1xuXG5sZXQgZXh0ZW5zaW9ucyA9IHt9O1xuXG5leHRlbnNpb25zLmV4ZWN1dGUgPSBhc3luYyBmdW5jdGlvbiBleGVjdXRlIChzY3JpcHQsIGFyZ3MpIHtcbiAgaWYgKHNjcmlwdC5tYXRjaCgvXm1vYmlsZTovKSkge1xuICAgIGxvZ2dlci5pbmZvKGBFeGVjdXRpbmcgbmF0aXZlIGNvbW1hbmQgJyR7c2NyaXB0fSdgKTtcbiAgICBzY3JpcHQgPSBzY3JpcHQucmVwbGFjZSgvXm1vYmlsZTovLCAnJykudHJpbSgpO1xuICAgIHJldHVybiBhd2FpdCB0aGlzLmV4ZWN1dGVNb2JpbGUoc2NyaXB0LCBfLmlzQXJyYXkoYXJncykgPyBhcmdzWzBdIDogYXJncyk7XG4gIH1cbiAgaWYgKCF0aGlzLmlzV2ViQ29udGV4dCgpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5Ob3RJbXBsZW1lbnRlZEVycm9yKCk7XG4gIH1cbiAgY29uc3QgZW5kcG9pbnQgPSB0aGlzLmNocm9tZWRyaXZlci5qd3Byb3h5LmRvd25zdHJlYW1Qcm90b2NvbCA9PT0gUFJPVE9DT0xTLk1KU09OV1BcbiAgICA/ICcvZXhlY3V0ZSdcbiAgICA6ICcvZXhlY3V0ZS9zeW5jJztcbiAgcmV0dXJuIGF3YWl0IHRoaXMuY2hyb21lZHJpdmVyLmp3cHJveHkuY29tbWFuZChlbmRwb2ludCwgJ1BPU1QnLCB7XG4gICAgc2NyaXB0LFxuICAgIGFyZ3MsXG4gIH0pO1xufTtcblxuZXh0ZW5zaW9ucy5leGVjdXRlTW9iaWxlID0gYXN5bmMgZnVuY3Rpb24gZXhlY3V0ZU1vYmlsZSAobW9iaWxlQ29tbWFuZCwgb3B0cyA9IHt9KSB7XG4gIGNvbnN0IG1vYmlsZUNvbW1hbmRzTWFwcGluZyA9IHtcbiAgICBzaGVsbDogJ21vYmlsZVNoZWxsJyxcblxuICAgIGV4ZWNFbXVDb25zb2xlQ29tbWFuZDogJ21vYmlsZUV4ZWNFbXVDb25zb2xlQ29tbWFuZCcsXG5cbiAgICBzdGFydExvZ3NCcm9hZGNhc3Q6ICdtb2JpbGVTdGFydExvZ3NCcm9hZGNhc3QnLFxuICAgIHN0b3BMb2dzQnJvYWRjYXN0OiAnbW9iaWxlU3RvcExvZ3NCcm9hZGNhc3QnLFxuXG4gICAgY2hhbmdlUGVybWlzc2lvbnM6ICdtb2JpbGVDaGFuZ2VQZXJtaXNzaW9ucycsXG4gICAgZ2V0UGVybWlzc2lvbnM6ICdtb2JpbGVHZXRQZXJtaXNzaW9ucycsXG5cbiAgICBwZXJmb3JtRWRpdG9yQWN0aW9uOiAnbW9iaWxlUGVyZm9ybUVkaXRvckFjdGlvbicsXG5cbiAgICBzZW5zb3JTZXQ6ICdzZW5zb3JTZXQnLFxuXG4gICAgZ2V0RGV2aWNlVGltZTogJ21vYmlsZUdldERldmljZVRpbWUnLFxuXG4gICAgc3RhcnRTY3JlZW5TdHJlYW1pbmc6ICdtb2JpbGVTdGFydFNjcmVlblN0cmVhbWluZycsXG4gICAgc3RvcFNjcmVlblN0cmVhbWluZzogJ21vYmlsZVN0b3BTY3JlZW5TdHJlYW1pbmcnLFxuXG4gICAgZ2V0Tm90aWZpY2F0aW9uczogJ21vYmlsZUdldE5vdGlmaWNhdGlvbnMnLFxuXG4gICAgbGlzdFNtczogJ21vYmlsZUxpc3RTbXMnLFxuXG4gICAgZGVsZXRlRmlsZTogJ21vYmlsZURlbGV0ZUZpbGUnLFxuXG4gICAgY2xlYXJBcHA6ICdtb2JpbGVDbGVhckFwcCcsXG5cbiAgICBzdGFydFNlcnZpY2U6ICdtb2JpbGVTdGFydFNlcnZpY2UnLFxuICAgIHN0b3BTZXJ2aWNlOiAnbW9iaWxlU3RvcFNlcnZpY2UnLFxuICAgIHN0YXJ0QWN0aXZpdHk6ICdtb2JpbGVTdGFydEFjdGl2aXR5JyxcbiAgICBicm9hZGNhc3Q6ICdtb2JpbGVCcm9hZGNhc3QnLFxuXG4gICAgZ2V0Q29udGV4dHM6ICdtb2JpbGVHZXRDb250ZXh0cycsXG5cbiAgICB1bmxvY2s6ICdtb2JpbGVVbmxvY2snLFxuICB9O1xuXG4gIGlmICghXy5oYXMobW9iaWxlQ29tbWFuZHNNYXBwaW5nLCBtb2JpbGVDb21tYW5kKSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuVW5rbm93bkNvbW1hbmRFcnJvcihgVW5rbm93biBtb2JpbGUgY29tbWFuZCBcIiR7bW9iaWxlQ29tbWFuZH1cIi4gYCArXG4gICAgICBgT25seSAke18ua2V5cyhtb2JpbGVDb21tYW5kc01hcHBpbmcpfSBjb21tYW5kcyBhcmUgc3VwcG9ydGVkLmApO1xuICB9XG4gIHJldHVybiBhd2FpdCB0aGlzW21vYmlsZUNvbW1hbmRzTWFwcGluZ1ttb2JpbGVDb21tYW5kXV0ob3B0cyk7XG59O1xuXG5leHBvcnQgZGVmYXVsdCBleHRlbnNpb25zO1xuIl0sImZpbGUiOiJsaWIvY29tbWFuZHMvZXhlY3V0ZS5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLiJ9
|
|
@@ -79,41 +79,14 @@ commands.back = async function back() {
|
|
|
79
79
|
};
|
|
80
80
|
|
|
81
81
|
commands.isKeyboardShown = async function isKeyboardShown() {
|
|
82
|
-
|
|
83
|
-
|
|
82
|
+
const {
|
|
83
|
+
isKeyboardShown
|
|
84
|
+
} = await this.adb.isSoftKeyboardPresent();
|
|
85
|
+
return isKeyboardShown;
|
|
84
86
|
};
|
|
85
87
|
|
|
86
88
|
commands.hideKeyboard = async function hideKeyboard() {
|
|
87
|
-
|
|
88
|
-
isKeyboardShown,
|
|
89
|
-
canCloseKeyboard
|
|
90
|
-
} = await this.adb.isSoftKeyboardPresent();
|
|
91
|
-
|
|
92
|
-
if (!isKeyboardShown) {
|
|
93
|
-
_logger.default.info('Keyboard has no UI; no closing necessary');
|
|
94
|
-
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
|
|
98
|
-
for (const keyCode of [111, 4]) {
|
|
99
|
-
if (canCloseKeyboard) {
|
|
100
|
-
await this.adb.keyevent(keyCode);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
try {
|
|
104
|
-
return await (0, _asyncbox.waitForCondition)(async () => {
|
|
105
|
-
({
|
|
106
|
-
isKeyboardShown
|
|
107
|
-
} = await this.adb.isSoftKeyboardPresent());
|
|
108
|
-
return !isKeyboardShown;
|
|
109
|
-
}, {
|
|
110
|
-
waitMs: 1000,
|
|
111
|
-
intervalMs: 500
|
|
112
|
-
});
|
|
113
|
-
} catch (ign) {}
|
|
114
|
-
}
|
|
115
|
-
|
|
116
|
-
throw new Error(`The software keyboard cannot be closed`);
|
|
89
|
+
return await this.adb.hideKeyboard();
|
|
117
90
|
};
|
|
118
91
|
|
|
119
92
|
commands.openSettingsActivity = async function openSettingsActivity(setting) {
|
|
@@ -500,9 +473,24 @@ commands.mobileListSms = async function mobileListSms(opts = {}) {
|
|
|
500
473
|
return await this.adb.getSmsList(opts);
|
|
501
474
|
};
|
|
502
475
|
|
|
476
|
+
commands.mobileUnlock = async function mobileUnlock(opts = {}) {
|
|
477
|
+
const {
|
|
478
|
+
key,
|
|
479
|
+
type,
|
|
480
|
+
strategy,
|
|
481
|
+
timeoutMs
|
|
482
|
+
} = opts;
|
|
483
|
+
await _androidHelpers.default.unlock(this, this.adb, {
|
|
484
|
+
unlockKey: key,
|
|
485
|
+
unlockType: type,
|
|
486
|
+
unlockStrategy: strategy,
|
|
487
|
+
unlockSuccessTimeout: timeoutMs
|
|
488
|
+
});
|
|
489
|
+
};
|
|
490
|
+
|
|
503
491
|
Object.assign(extensions, commands, helpers);
|
|
504
492
|
var _default = extensions;
|
|
505
493
|
exports.default = _default;require('source-map-support').install();
|
|
506
494
|
|
|
507
495
|
|
|
508
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9nZW5lcmFsLmpzIl0sIm5hbWVzIjpbIk1PTUVOVF9GT1JNQVRfSVNPODYwMSIsImNvbW1hbmRzIiwiaGVscGVycyIsImV4dGVuc2lvbnMiLCJrZXlzIiwiXyIsImlzQXJyYXkiLCJqb2luIiwicGFyYW1zIiwidGV4dCIsInJlcGxhY2UiLCJvcHRzIiwidW5pY29kZUtleWJvYXJkIiwiZG9TZW5kS2V5cyIsImJvb3RzdHJhcCIsInNlbmRBY3Rpb24iLCJnZXREZXZpY2VUaW1lIiwiZm9ybWF0IiwibG9nIiwiZGVidWciLCJkZXZpY2VUaW1lc3RhbXAiLCJhZGIiLCJzaGVsbCIsInRyaW0iLCJwYXJzZWRUaW1lc3RhbXAiLCJtb21lbnQiLCJ1dGMiLCJpc1ZhbGlkIiwid2FybiIsInV0Y09mZnNldCIsIl90em0iLCJtb2JpbGVHZXREZXZpY2VUaW1lIiwiZ2V0UGFnZVNvdXJjZSIsImJhY2siLCJpc0tleWJvYXJkU2hvd24iLCJrZXlib2FyZEluZm8iLCJpc1NvZnRLZXlib2FyZFByZXNlbnQiLCJoaWRlS2V5Ym9hcmQiLCJjYW5DbG9zZUtleWJvYXJkIiwiaW5mbyIsImtleUNvZGUiLCJrZXlldmVudCIsIndhaXRNcyIsImludGVydmFsTXMiLCJpZ24iLCJFcnJvciIsIm9wZW5TZXR0aW5nc0FjdGl2aXR5Iiwic2V0dGluZyIsImFwcFBhY2thZ2UiLCJhcHBBY3Rpdml0eSIsImdldEZvY3VzZWRQYWNrYWdlQW5kQWN0aXZpdHkiLCJ3YWl0Rm9yTm90QWN0aXZpdHkiLCJnZXRXaW5kb3dTaXplIiwiZ2V0V2luZG93UmVjdCIsIndpZHRoIiwiaGVpZ2h0IiwieCIsInkiLCJnZXRDdXJyZW50QWN0aXZpdHkiLCJnZXRDdXJyZW50UGFja2FnZSIsImJhY2tncm91bmQiLCJzZWNvbmRzIiwiZ29Ub0hvbWUiLCJzbGVlcE1zIiwidGhyZXNob2xkTXMiLCJtaW4iLCJwYXJzZUludCIsInByb2dyZXNzQ2IiLCJlbGFwc2VkTXMiLCJwcm9ncmVzcyIsIndhaXRTZWNzIiwidG9GaXhlZCIsInByb2dyZXNzUGN0IiwiYXJncyIsIl9jYWNoZWRBY3Rpdml0eUFyZ3MiLCJhY3RpdmF0ZUFwcCIsImFwcFdhaXRQYWNrYWdlIiwiYXBwV2FpdEFjdGl2aXR5Iiwic3BsaXQiLCJpbmNsdWRlcyIsInBrZyIsImFjdGl2aXR5IiwiYWN0aW9uIiwiaW50ZW50QWN0aW9uIiwiY2F0ZWdvcnkiLCJpbnRlbnRDYXRlZ29yeSIsImZsYWdzIiwiaW50ZW50RmxhZ3MiLCJ3YWl0UGtnIiwid2FpdEFjdGl2aXR5Iiwid2FpdEZvckxhdW5jaCIsImFwcFdhaXRGb3JMYXVuY2giLCJ3YWl0RHVyYXRpb24iLCJhcHBXYWl0RHVyYXRpb24iLCJvcHRpb25hbEludGVudEFyZ3VtZW50cyIsInN0b3BBcHAiLCJ1c2VyIiwidXNlclByb2ZpbGUiLCJ1dGlsIiwiZmlsdGVyT2JqZWN0IiwiSlNPTiIsInN0cmluZ2lmeSIsInN0YXJ0QXBwIiwiZ2V0U3RyaW5ncyIsImxhbmd1YWdlIiwiZ2V0RGV2aWNlTGFuZ3VhZ2UiLCJwcmVwcm9jZXNzU3RyaW5nc01hcCIsIm1hcHBpbmciLCJyZXN1bHQiLCJrZXkiLCJ2YWx1ZSIsInRvUGFpcnMiLCJpc1N0cmluZyIsImFwa1N0cmluZ3MiLCJhbmRyb2lkSGVscGVycyIsInB1c2hTdHJpbmdzIiwibGF1bmNoQXBwIiwiaW5pdEFVVCIsInN0YXJ0QVVUIiwic3RhcnRBY3Rpdml0eSIsImRvbnRTdG9wQXBwT25SZXNldCIsImhhc1ZhbHVlIiwicmVzZXQiLCJyZXNldEFwcCIsIk9iamVjdCIsImFzc2lnbiIsImZhc3RSZXNldCIsInNldENvbnRleHQiLCJpc0Nocm9tZVNlc3Npb24iLCJzdGFydENocm9tZVNlc3Npb24iLCJzZXRVcmwiLCJ1cmkiLCJzdGFydFVyaSIsImNsb3NlQXBwIiwiZm9yY2VTdG9wIiwiZ2V0RGlzcGxheURlbnNpdHkiLCJvdXQiLCJ2YWwiLCJpc05hTiIsImVycm9yQW5kVGhyb3ciLCJwYXJzZVN1cmZhY2VMaW5lIiwibGluZSIsImJvdW5kcyIsInZpc2libGUiLCJpbmRleE9mIiwicGFyc2VGbG9hdCIsInBhcnNlV2luZG93cyIsImxpbmVzIiwiYXRTdGF0dXNCYXIiLCJhdE5hdkJhciIsInN0YXR1c0JhciIsIm5hdmlnYXRpb25CYXIiLCJmb3JFYWNoIiwiZ2V0U3lzdGVtQmFycyIsIm1vYmlsZVBlcmZvcm1FZGl0b3JBY3Rpb24iLCJwZXJmb3JtRWRpdG9yQWN0aW9uIiwiUEVSTUlTU0lPTl9BQ1RJT04iLCJHUkFOVCIsIlJFVk9LRSIsIm1vYmlsZUNoYW5nZVBlcm1pc3Npb25zIiwicGVybWlzc2lvbnMiLCJhY3Rpb25GdW5jIiwidG9Mb3dlciIsInBlcm1pc3Npb24iLCJncmFudFBlcm1pc3Npb24iLCJyZXZva2VQZXJtaXNzaW9uIiwidmFsdWVzIiwiUEVSTUlTU0lPTlNfVFlQRSIsIkRFTklFRCIsIkdSQU5URUQiLCJSRVFVRVNURUQiLCJtb2JpbGVHZXRQZXJtaXNzaW9ucyIsInR5cGUiLCJnZXRSZXFQZXJtaXNzaW9ucyIsImdldEdyYW50ZWRQZXJtaXNzaW9ucyIsImdldERlbmllZFBlcm1pc3Npb25zIiwibW9iaWxlR2V0Tm90aWZpY2F0aW9ucyIsImdldE5vdGlmaWNhdGlvbnMiLCJtb2JpbGVMaXN0U21zIiwiZ2V0U21zTGlzdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLE1BQU1BLHFCQUFxQixHQUFHLHNCQUE5QjtBQUVBLElBQUlDLFFBQVEsR0FBRyxFQUFmO0FBQUEsSUFBbUJDLE9BQU8sR0FBRyxFQUE3QjtBQUFBLElBQWlDQyxVQUFVLEdBQUcsRUFBOUM7Ozs7QUFFQUYsUUFBUSxDQUFDRyxJQUFULEdBQWdCLGVBQWVBLElBQWYsQ0FBcUJBLElBQXJCLEVBQTJCO0FBRXpDQSxFQUFBQSxJQUFJLEdBQUdDLGdCQUFFQyxPQUFGLENBQVVGLElBQVYsSUFBa0JBLElBQUksQ0FBQ0csSUFBTCxDQUFVLEVBQVYsQ0FBbEIs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Q0E7O0FBQ0YsU0FBS3VILGdCQUFnQixDQUFDRSxPQUF0QjtBQUNFUixNQUFBQSxVQUFVLEdBQUlqSCxVQUFELElBQWdCLEtBQUszQixHQUFMLENBQVN5SixxQkFBVCxDQUErQjlILFVBQS9CLENBQTdCOztBQUNBOztBQUNGLFNBQUt1SCxnQkFBZ0IsQ0FBQ0MsTUFBdEI7QUFDRVAsTUFBQUEsVUFBVSxHQUFJakgsVUFBRCxJQUFnQixLQUFLM0IsR0FBTCxDQUFTMEosb0JBQVQsQ0FBOEIvSCxVQUE5QixDQUE3Qjs7QUFDQTs7QUFDRjtBQUNFOUIsc0JBQUl5SCxhQUFKLENBQW1CLDZCQUE0QmlDLElBQUssS0FBbEMsR0FDZixRQUFPeEUsSUFBSSxDQUFDQyxTQUFMLENBQWVoRyxnQkFBRWlLLE1BQUYsQ0FBU0MsZ0JBQVQsQ0FBZixDQUEyQyxzQkFEckQ7O0FBRUE7QUFiSjs7QUFlQSxTQUFPLE1BQU1OLFVBQVUsQ0FBQ2pILFVBQUQsQ0FBdkI7QUFDRCxDQXZCRDs7QUErQkEvQyxRQUFRLENBQUMrSyxzQkFBVCxHQUFrQyxlQUFlQSxzQkFBZixHQUF5QztBQUN6RSxTQUFPLE1BQU0sS0FBSzNKLEdBQUwsQ0FBUzRKLGdCQUFULEVBQWI7QUFDRCxDQUZEOztBQWlCQWhMLFFBQVEsQ0FBQ2lMLGFBQVQsR0FBeUIsZUFBZUEsYUFBZixDQUE4QnZLLElBQUksR0FBRyxFQUFyQyxFQUF5QztBQUNoRSxTQUFPLE1BQU0sS0FBS1UsR0FBTCxDQUFTOEosVUFBVCxDQUFvQnhLLElBQXBCLENBQWI7QUFDRCxDQUZEOztBQUtBaUgsTUFBTSxDQUFDQyxNQUFQLENBQWMxSCxVQUFkLEVBQTBCRixRQUExQixFQUFvQ0MsT0FBcEM7ZUFFZUMsVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgYW5kcm9pZEhlbHBlcnMgZnJvbSAnLi4vYW5kcm9pZC1oZWxwZXJzJztcbmltcG9ydCB7IHV0aWwgfSBmcm9tICdhcHBpdW0tc3VwcG9ydCc7XG5pbXBvcnQgbG9nIGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyB3YWl0Rm9yQ29uZGl0aW9uLCBsb25nU2xlZXAgfSBmcm9tICdhc3luY2JveCc7XG5cbmNvbnN0IE1PTUVOVF9GT1JNQVRfSVNPODYwMSA9ICdZWVlZLU1NLUREVEhIOm1tOnNzWic7XG5cbmxldCBjb21tYW5kcyA9IHt9LCBoZWxwZXJzID0ge30sIGV4dGVuc2lvbnMgPSB7fTtcblxuY29tbWFuZHMua2V5cyA9IGFzeW5jIGZ1bmN0aW9uIGtleXMgKGtleXMpIHtcbiAgLy8gUHJvdG9jb2wgc2VuZHMgYW4gYXJyYXk7IHJldGhpbmsgYXBwcm9hY2hcbiAga2V5cyA9IF8uaXNBcnJheShrZXlzKSA/IGtleXMuam9pbignJykgOiBrZXlzO1xuICBsZXQgcGFyYW1zID0ge1xuICAgIHRleHQ6IGtleXMsXG4gICAgcmVwbGFjZTogZmFsc2VcbiAgfTtcbiAgaWYgKHRoaXMub3B0cy51bmljb2RlS2V5Ym9hcmQpIHtcbiAgICBwYXJhbXMudW5pY29kZUtleWJvYXJkID0gdHJ1ZTtcbiAgfVxuICBhd2FpdCB0aGlzLmRvU2VuZEtleXMocGFyYW1zKTtcbn07XG5cbmNvbW1hbmRzLmRvU2VuZEtleXMgPSBhc3luYyBmdW5jdGlvbiBkb1NlbmRLZXlzIChwYXJhbXMpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ3NldFRleHQnLCBwYXJhbXMpO1xufTtcblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIGN1cnJlbnQgZGV2aWNlJ3MgdGltZXN0YW1wLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBmb3JtYXQgLSBUaGUgc2V0IG9mIGZvcm1hdCBzcGVjaWZpZXJzLiBSZWFkXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgaHR0cHM6Ly9tb21lbnRqcy5jb20vZG9jcy8gdG8gZ2V0IHRoZSBmdWxsIGxpc3Qgb2Ygc3VwcG9ydGVkXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZXRpbWUgZm9ybWF0IHNwZWNpZmllcnMuIFRoZSBkZWZhdWx0IGZvcm1hdCBpc1xuICogICAgICAgICAgICAgICAgICAgICAgICAgIGBZWVlZLU1NLUREVEhIOm1tOnNzWmAsIHdoaWNoIGNvbXBsaWVzIHRvIElTTy04NjAxXG4gKiBAcmV0dXJuIHtzdHJpbmd9IEZvcm1hdHRlZCBkYXRldGltZSBzdHJpbmcgb3IgdGhlIHJhdyBjb21tYW5kIG91dHB1dCBpZiBmb3JtYXR0aW5nIGZhaWxzXG4gKi9cbmNvbW1hbmRzLmdldERldmljZVRpbWUgPSBhc3luYyBmdW5jdGlvbiBnZXREZXZpY2VUaW1lIChmb3JtYXQgPSBNT01FTlRfRk9STUFUX0lTTzg2MDEpIHtcbiAgbG9nLmRlYnVnKCdBdHRlbXB0aW5nIHRvIGNhcHR1cmUgYW5kcm9pZCBkZXZpY2UgZGF0ZSBhbmQgdGltZS4gJyArXG4gICAgYFRoZSBmb3JtYXQgc3BlY2lmaWVyIGlzICcke2Zvcm1hdH0nYCk7XG4gIGNvbnN0IGRldmljZVRpbWVzdGFtcCA9IChhd2FpdCB0aGlzLmFkYi5zaGVsbChbJ2RhdGUnLCAnKyVZLSVtLSVkVCVUJXonXSkpLnRyaW0oKTtcbiAgbG9nLmRlYnVnKGBHb3QgZGV2aWNlIHRpbWVzdGFtcDogJHtkZXZpY2VUaW1lc3RhbXB9YCk7XG4gIGNvbnN0IHBhcnNlZFRpbWVzdGFtcCA9IG1vbWVudC51dGMoZGV2aWNlVGltZXN0YW1wLCAnWVlZWS1NTS1ERFRISDptbTpzc1paJyk7XG4gIGlmICghcGFyc2VkVGltZXN0YW1wLmlzVmFsaWQoKSkge1xuICAgIGxvZy53YXJuKCdDYW5ub3QgcGFyc2UgdGhlIHJldHVybmVkIHRpbWVzdGFtcC4gUmV0dXJuaW5nIGFzIGlzJyk7XG4gICAgcmV0dXJuIGRldmljZVRpbWVzdGFtcDtcbiAgfVxuICByZXR1cm4gcGFyc2VkVGltZXN0YW1wLnV0Y09mZnNldChwYXJzZWRUaW1lc3RhbXAuX3R6bSB8fCAwKS5mb3JtYXQoZm9ybWF0KTtcbn07XG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gRGV2aWNlVGltZU9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBmb3JtYXQgW1lZWVktTU0tRERUSEg6bW06c3NaXSAtIFNlZSBnZXREZXZpY2VUaW1lI2Zvcm1hdFxuICovXG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBjdXJyZW50IGRldmljZSB0aW1lXG4gKlxuICogQHBhcmFtIHtEZXZpY2VUaW1lT3B0aW9uc30gb3B0c1xuICogQHJldHVybiB7c3RyaW5nfSBGb3JtYXR0ZWQgZGF0ZXRpbWUgc3RyaW5nIG9yIHRoZSByYXcgY29tbWFuZCBvdXRwdXQgaWYgZm9ybWF0dGluZyBmYWlsc1xuICovXG5jb21tYW5kcy5tb2JpbGVHZXREZXZpY2VUaW1lID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlR2V0RGV2aWNlVGltZSAob3B0cyA9IHt9KSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmdldERldmljZVRpbWUob3B0cy5mb3JtYXQpO1xufTtcblxuY29tbWFuZHMuZ2V0UGFnZVNvdXJjZSA9IGFzeW5jIGZ1bmN0aW9uIGdldFBhZ2VTb3VyY2UgKCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5ib290c3RyYXAuc2VuZEFjdGlvbignc291cmNlJyk7XG59O1xuXG5jb21tYW5kcy5iYWNrID0gYXN5bmMgZnVuY3Rpb24gYmFjayAoKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmJvb3RzdHJhcC5zZW5kQWN0aW9uKCdwcmVzc0JhY2snKTtcbn07XG5cbmNvbW1hbmRzLmlzS2V5Ym9hcmRTaG93biA9IGFzeW5jIGZ1bmN0aW9uIGlzS2V5Ym9hcmRTaG93biAoKSB7XG4gIGxldCBrZXlib2FyZEluZm8gPSBhd2FpdCB0aGlzLmFkYi5pc1NvZnRLZXlib2FyZFByZXNlbnQoKTtcbiAgcmV0dXJuIGtleWJvYXJkSW5mby5pc0tleWJvYXJkU2hvd247XG59O1xuXG5jb21tYW5kcy5oaWRlS2V5Ym9hcmQgPSBhc3luYyBmdW5jdGlvbiBoaWRlS2V5Ym9hcmQgKCkge1xuICBsZXQge2lzS2V5Ym9hcmRTaG93biwgY2FuQ2xvc2VLZXlib2FyZH0gPSBhd2FpdCB0aGlzLmFkYi5pc1NvZnRLZXlib2FyZFByZXNlbnQoKTtcbiAgaWYgKCFpc0tleWJvYXJkU2hvd24pIHtcbiAgICBsb2cuaW5mbygnS2V5Ym9hcmQgaGFzIG5vIFVJOyBubyBjbG9zaW5nIG5lY2Vzc2FyeScpO1xuICAgIHJldHVybjtcbiAgfVxuICAvLyBUcnkgRVNDIHRoZW4gQkFDSyBpZiB0aGUgZmlyc3Qgb25lIGZhaWxzXG4gIGZvciAoY29uc3Qga2V5Q29kZSBvZiBbMTExLCA0XSkge1xuICAgIGlmIChjYW5DbG9zZUtleWJvYXJkKSB7XG4gICAgICBhd2FpdCB0aGlzLmFkYi5rZXlldmVudChrZXlDb2RlKTtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBhd2FpdCB3YWl0Rm9yQ29uZGl0aW9uKGFzeW5jICgpID0+IHtcbiAgICAgICAgKHtpc0tleWJvYXJkU2hvd259ID0gYXdhaXQgdGhpcy5hZGIuaXNTb2Z0S2V5Ym9hcmRQcmVzZW50KCkpO1xuICAgICAgICByZXR1cm4gIWlzS2V5Ym9hcmRTaG93bjtcbiAgICAgIH0sIHt3YWl0TXM6IDEwMDAsIGludGVydmFsTXM6IDUwMH0pO1xuICAgIH0gY2F0Y2ggKGlnbikge31cbiAgfVxuICB0aHJvdyBuZXcgRXJyb3IoYFRoZSBzb2Z0d2FyZSBrZXlib2FyZCBjYW5ub3QgYmUgY2xvc2VkYCk7XG59O1xuXG5jb21tYW5kcy5vcGVuU2V0dGluZ3NBY3Rpdml0eSA9IGFzeW5jIGZ1bmN0aW9uIG9wZW5TZXR0aW5nc0FjdGl2aXR5IChzZXR0aW5nKSB7XG4gIGxldCB7YXBwUGFja2FnZSwgYXBwQWN0aXZpdHl9ID0gYXdhaXQgdGhpcy5hZGIuZ2V0Rm9jdXNlZFBhY2thZ2VBbmRBY3Rpdml0eSgpO1xuICBhd2FpdCB0aGlzLmFkYi5zaGVsbChbJ2FtJywgJ3N0YXJ0JywgJy1hJywgYGFuZHJvaWQuc2V0dGluZ3MuJHtzZXR0aW5nfWBdKTtcbiAgYXdhaXQgdGhpcy5hZGIud2FpdEZvck5vdEFjdGl2aXR5KGFwcFBhY2thZ2UsIGFwcEFjdGl2aXR5LCA1MDAwKTtcbn07XG5cbmNvbW1hbmRzLmdldFdpbmRvd1NpemUgPSBhc3luYyBmdW5jdGlvbiBnZXRXaW5kb3dTaXplICgpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ2dldERldmljZVNpemUnKTtcbn07XG5cbi8vIEZvciBXM0NcbmNvbW1hbmRzLmdldFdpbmRvd1JlY3QgPSBhc3luYyBmdW5jdGlvbiBnZXRXaW5kb3dSZWN0ICgpIHtcbiAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSBhd2FpdCB0aGlzLmdldFdpbmRvd1NpemUoKTtcbiAgcmV0dXJuIHtcbiAgICB3aWR0aCxcbiAgICBoZWlnaHQsXG4gICAgeDogMCxcbiAgICB5OiAwXG4gIH07XG59O1xuXG5jb21tYW5kcy5nZXRDdXJyZW50QWN0aXZpdHkgPSBhc3luYyBmdW5jdGlvbiBnZXRDdXJyZW50QWN0aXZpdHkgKCkge1xuICByZXR1cm4gKGF3YWl0IHRoaXMuYWRiLmdldEZvY3VzZWRQYWNrYWdlQW5kQWN0aXZpdHkoKSkuYXBwQWN0aXZpdHk7XG59O1xuXG5jb21tYW5kcy5nZXRDdXJyZW50UGFja2FnZSA9IGFzeW5jIGZ1bmN0aW9uIGdldEN1cnJlbnRQYWNrYWdlICgpIHtcbiAgcmV0dXJuIChhd2FpdCB0aGlzLmFkYi5nZXRGb2N1c2VkUGFja2FnZUFuZEFjdGl2aXR5KCkpLmFwcFBhY2thZ2U7XG59O1xuXG5jb21tYW5kcy5iYWNrZ3JvdW5kID0gYXN5bmMgZnVuY3Rpb24gYmFja2dyb3VuZCAoc2Vjb25kcykge1xuICBpZiAoc2Vjb25kcyA8IDApIHtcbiAgICAvLyBpZiB1c2VyIHBhc3NlcyBpbiBhIG5lZ2F0aXZlIHNlY29uZHMgdmFsdWUsIGludGVycHJldCB0aGF0IGFzIHRoZSBpbnN0cnVjdGlvblxuICAgIC8vIHRvIG5vdCBicmluZyB0aGUgYXBwIGJhY2sgYXQgYWxsXG4gICAgYXdhaXQgdGhpcy5hZGIuZ29Ub0hvbWUoKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBsZXQge2FwcFBhY2thZ2UsIGFwcEFjdGl2aXR5fSA9IGF3YWl0IHRoaXMuYWRiLmdldEZvY3VzZWRQYWNrYWdlQW5kQWN0aXZpdHkoKTtcbiAgYXdhaXQgdGhpcy5hZGIuZ29Ub0hvbWUoKTtcblxuICAvLyBwZW9wbGUgY2FuIHdhaXQgZm9yIGEgbG9uZyB0aW1lLCBzbyB0byBiZSBzYWZlIGxldCdzIHVzZSB0aGUgbG9uZ1NsZWVwIGZ1bmN0aW9uIGFuZCBsb2dcbiAgLy8gcHJvZ3Jlc3MgcGVyaW9kaWNhbGx5LlxuICBjb25zdCBzbGVlcE1zID0gc2Vjb25kcyAqIDEwMDA7XG4gIGNvbnN0IHRocmVzaG9sZE1zID0gMzAgKiAxMDAwOyAvLyB1c2UgdGhlIHNwaW4td2FpdCBmb3IgYW55dGhpbmcgb3ZlciB0aGlzIHRocmVzaG9sZFxuICAvLyBmb3Igb3VyIHNwaW4gaW50ZXJ2YWwsIHVzZSAxJSBvZiB0aGUgdG90YWwgd2FpdCB0aW1lLCBidXQgbm90aGluZyBiaWdnZXIgdGhhbiAzMHNcbiAgY29uc3QgaW50ZXJ2YWxNcyA9IF8ubWluKFszMCAqIDEwMDAsIHBhcnNlSW50KHNsZWVwTXMgLyAxMDAsIDEwKV0pO1xuICBjb25zdCBwcm9ncmVzc0NiID0gKHtlbGFwc2VkTXMsIHByb2dyZXNzfSkgPT4ge1xuICAgIGNvbnN0IHdhaXRTZWNzID0gKGVsYXBzZWRNcyAvIDEwMDApLnRvRml4ZWQoMCk7XG4gICAgY29uc3QgcHJvZ3Jlc3NQY3QgPSAocHJvZ3Jlc3MgKiAxMDApLnRvRml4ZWQoMik7XG4gICAgbG9nLmRlYnVnKGBXYWl0ZWQgJHt3YWl0U2Vjc31zIHNvIGZhciAoJHtwcm9ncmVzc1BjdH0lKWApO1xuICB9O1xuICBhd2FpdCBsb25nU2xlZXAoc2xlZXBNcywge3RocmVzaG9sZE1zLCBpbnRlcnZhbE1zLCBwcm9ncmVzc0NifSk7XG5cbiAgbGV0IGFyZ3M7XG4gIGlmICh0aGlzLl9jYWNoZWRBY3Rpdml0eUFyZ3MgJiYgdGhpcy5fY2FjaGVkQWN0aXZpdHlBcmdzW2Ake2FwcFBhY2thZ2V9LyR7YXBwQWN0aXZpdHl9YF0pIHtcbiAgICAvLyB0aGUgYWN0aXZpdHkgd2FzIHN0YXJ0ZWQgd2l0aCBgc3RhcnRBY3Rpdml0eWAsIHNvIHVzZSB0aG9zZSBhcmdzIHRvIHJlc3RhcnRcbiAgICBhcmdzID0gdGhpcy5fY2FjaGVkQWN0aXZpdHlBcmdzW2Ake2FwcFBhY2thZ2V9LyR7YXBwQWN0aXZpdHl9YF07XG4gIH0gZWxzZSB7XG4gICAgdHJ5IHtcbiAgICAgIGxvZy5kZWJ1ZyhgQWN0aXZhdGluZyBhcHAgJyR7YXBwUGFja2FnZX0nIGluIG9yZGVyIHRvIHJlc3RvcmUgaXRgKTtcbiAgICAgIGF3YWl0IHRoaXMuYWN0aXZhdGVBcHAoYXBwUGFja2FnZSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChpZ24pIHt9XG4gICAgYXJncyA9ICgoYXBwUGFja2FnZSA9PT0gdGhpcy5vcHRzLmFwcFBhY2thZ2UgJiYgYXBwQWN0aXZpdHkgPT09IHRoaXMub3B0cy5hcHBBY3Rpdml0eSkgfHxcbiAgICAgICAgICAgIChhcHBQYWNrYWdlID09PSB0aGlzLm9wdHMuYXBwV2FpdFBhY2thZ2UgJiYgKHRoaXMub3B0cy5hcHBXYWl0QWN0aXZpdHkgfHwgJycpLnNwbGl0KCcsJykuaW5jbHVkZXMoYXBwQWN0aXZpdHkpKSlcbiAgICAgID8gey8vIHRoZSBhY3Rpdml0eSBpcyB0aGUgb3JpZ2luYWwgc2Vzc2lvbiBhY3Rpdml0eSwgc28gdXNlIHRoZSBvcmlnaW5hbCBhcmdzXG4gICAgICAgIHBrZzogdGhpcy5vcHRzLmFwcFBhY2thZ2UsXG4gICAgICAgIGFjdGl2aXR5OiB0aGlzLm9wdHMuYXBwQWN0aXZpdHksXG4gICAgICAgIGFjdGlvbjogdGhpcy5vcHRzLmludGVudEFjdGlvbixcbiAgICAgICAgY2F0ZWdvcnk6IHRoaXMub3B0cy5pbnRlbnRDYXRlZ29yeSxcbiAgICAgICAgZmxhZ3M6IHRoaXMub3B0cy5pbnRlbnRGbGFncyxcbiAgICAgICAgd2FpdFBrZzogdGhpcy5vcHRzLmFwcFdhaXRQYWNrYWdlLFxuICAgICAgICB3YWl0QWN0aXZpdHk6IHRoaXMub3B0cy5hcHBXYWl0QWN0aXZpdHksXG4gICAgICAgIHdhaXRGb3JMYXVuY2g6IHRoaXMub3B0cy5hcHBXYWl0Rm9yTGF1bmNoLFxuICAgICAgICB3YWl0RHVyYXRpb246IHRoaXMub3B0cy5hcHBXYWl0RHVyYXRpb24sXG4gICAgICAgIG9wdGlvbmFsSW50ZW50QXJndW1lbnRzOiB0aGlzLm9wdHMub3B0aW9uYWxJbnRlbnRBcmd1bWVudHMsXG4gICAgICAgIHN0b3BBcHA6IGZhbHNlLFxuICAgICAgICB1c2VyOiB0aGlzLm9wdHMudXNlclByb2ZpbGV9XG4gICAgICA6IHsvLyB0aGUgYWN0aXZpdHkgd2FzIHN0YXJ0ZWQgc29tZSBvdGhlciB3YXksIHNvIHVzZSBkZWZhdWx0c1xuICAgICAgICBwa2c6IGFwcFBhY2thZ2UsXG4gICAgICAgIGFjdGl2aXR5OiBhcHBBY3Rpdml0eSxcbiAgICAgICAgd2FpdFBrZzogYXBwUGFja2FnZSxcbiAgICAgICAgd2FpdEFjdGl2aXR5OiBhcHBBY3Rpdml0eSxcbiAgICAgICAgc3RvcEFwcDogZmFsc2V9O1xuICB9XG4gIGFyZ3MgPSBhd2FpdCB1dGlsLmZpbHRlck9iamVjdChhcmdzKTtcbiAgbG9nLmRlYnVnKGBCcmluZ2luZyBhcHBsaWNhdGlvbiBiYWNrIHRvIGZvcmVncm91bmQgd2l0aCBhcmd1bWVudHM6ICR7SlNPTi5zdHJpbmdpZnkoYXJncyl9YCk7XG4gIHJldHVybiBhd2FpdCB0aGlzLmFkYi5zdGFydEFwcChhcmdzKTtcbn07XG5cbmNvbW1hbmRzLmdldFN0cmluZ3MgPSBhc3luYyBmdW5jdGlvbiBnZXRTdHJpbmdzIChsYW5ndWFnZSkge1xuICBpZiAoIWxhbmd1YWdlKSB7XG4gICAgbGFuZ3VhZ2UgPSBhd2FpdCB0aGlzLmFkYi5nZXREZXZpY2VMYW5ndWFnZSgpO1xuICAgIGxvZy5pbmZvKGBObyBsYW5ndWFnZSBzcGVjaWZpZWQsIHJldHVybmluZyBzdHJpbmdzIGZvcjogJHtsYW5ndWFnZX1gKTtcbiAgfVxuXG4gIC8vIENsaWVudHMgcmVxdWlyZSB0aGUgcmVzdWx0aW5nIG1hcHBpbmcgdG8gaGF2ZSBib3RoIGtleXNcbiAgLy8gYW5kIHZhbHVlcyBvZiB0eXBlIHN0cmluZ1xuICBjb25zdCBwcmVwcm9jZXNzU3RyaW5nc01hcCA9IChtYXBwaW5nKSA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0ge307XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgXy50b1BhaXJzKG1hcHBpbmcpKSB7XG4gICAgICByZXN1bHRba2V5XSA9IF8uaXNTdHJpbmcodmFsdWUpID8gdmFsdWUgOiBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG5cbiAgaWYgKHRoaXMuYXBrU3RyaW5nc1tsYW5ndWFnZV0pIHtcbiAgICAvLyBSZXR1cm4gY2FjaGVkIHN0cmluZ3NcbiAgICByZXR1cm4gcHJlcHJvY2Vzc1N0cmluZ3NNYXAodGhpcy5hcGtTdHJpbmdzW2xhbmd1YWdlXSk7XG4gIH1cblxuICB0aGlzLmFwa1N0cmluZ3NbbGFuZ3VhZ2VdID0gYXdhaXQgYW5kcm9pZEhlbHBlcnMucHVzaFN0cmluZ3MobGFuZ3VhZ2UsIHRoaXMuYWRiLCB0aGlzLm9wdHMpO1xuICBpZiAodGhpcy5ib290c3RyYXApIHtcbiAgICAvLyBUT0RPOiBUaGlzIGlzIG11dGF0aW5nIHRoZSBjdXJyZW50IGxhbmd1YWdlLCBidXQgaXQncyBob3cgYXBwaXVtIGN1cnJlbnRseSB3b3Jrc1xuICAgIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ3VwZGF0ZVN0cmluZ3MnKTtcbiAgfVxuXG4gIHJldHVybiBwcmVwcm9jZXNzU3RyaW5nc01hcCh0aGlzLmFwa1N0cmluZ3NbbGFuZ3VhZ2VdKTtcbn07XG5cbmNvbW1hbmRzLmxhdW5jaEFwcCA9IGFzeW5jIGZ1bmN0aW9uIGxhdW5jaEFwcCAoKSB7XG4gIGF3YWl0IHRoaXMuaW5pdEFVVCgpO1xuICBhd2FpdCB0aGlzLnN0YXJ0QVVUKCk7XG59O1xuXG5jb21tYW5kcy5zdGFydEFjdGl2aXR5ID0gYXN5bmMgZnVuY3Rpb24gc3RhcnRBY3Rpdml0eSAoYXBwUGFja2FnZSwgYXBwQWN0aXZpdHksXG4gIGFwcFdhaXRQYWNrYWdlLCBhcHBXYWl0QWN0aXZpdHksIGludGVudEFjdGlvbiwgaW50ZW50Q2F0ZWdvcnksIGludGVudEZsYWdzLFxuICBvcHRpb25hbEludGVudEFyZ3VtZW50cywgZG9udFN0b3BBcHBPblJlc2V0KSB7XG4gIGxvZy5kZWJ1ZyhgU3RhcnRpbmcgcGFja2FnZSAnJHthcHBQYWNrYWdlfScgYW5kIGFjdGl2aXR5ICcke2FwcEFjdGl2aXR5fSdgKTtcblxuICAvLyBkb250U3RvcEFwcE9uUmVzZXQgaXMgYm90aCBhbiBhcmd1bWVudCBoZXJlLCBhbmQgYSBkZXNpcmVkIGNhcGFiaWxpdHlcbiAgLy8gaWYgdGhlIGFyZ3VtZW50IGlzIHNldCwgdXNlIGl0LCBvdGhlcndpc2UgdXNlIHRoZSBjYXBcbiAgaWYgKCF1dGlsLmhhc1ZhbHVlKGRvbnRTdG9wQXBwT25SZXNldCkpIHtcbiAgICBkb250U3RvcEFwcE9uUmVzZXQgPSAhIXRoaXMub3B0cy5kb250U3RvcEFwcE9uUmVzZXQ7XG4gIH1cblxuICBsZXQgYXJncyA9IHtcbiAgICBwa2c6IGFwcFBhY2thZ2UsXG4gICAgYWN0aXZpdHk6IGFwcEFjdGl2aXR5LFxuICAgIHdhaXRQa2c6IGFwcFdhaXRQYWNrYWdlIHx8IGFwcFBhY2thZ2UsXG4gICAgd2FpdEFjdGl2aXR5OiBhcHBXYWl0QWN0aXZpdHkgfHwgYXBwQWN0aXZpdHksXG4gICAgYWN0aW9uOiBpbnRlbnRBY3Rpb24sXG4gICAgY2F0ZWdvcnk6IGludGVudENhdGVnb3J5LFxuICAgIGZsYWdzOiBpbnRlbnRGbGFncyxcbiAgICBvcHRpb25hbEludGVudEFyZ3VtZW50cyxcbiAgICBzdG9wQXBwOiAhZG9udFN0b3BBcHBPblJlc2V0XG4gIH07XG4gIHRoaXMuX2NhY2hlZEFjdGl2aXR5QXJncyA9IHRoaXMuX2NhY2hlZEFjdGl2aXR5QXJncyB8fCB7fTtcbiAgdGhpcy5fY2FjaGVkQWN0aXZpdHlBcmdzW2Ake2FyZ3Mud2FpdFBrZ30vJHthcmdzLndhaXRBY3Rpdml0eX1gXSA9IGFyZ3M7XG4gIGF3YWl0IHRoaXMuYWRiLnN0YXJ0QXBwKGFyZ3MpO1xufTtcblxuY29tbWFuZHMucmVzZXQgPSBhc3luYyBmdW5jdGlvbiByZXNldCAoKSB7XG4gIGF3YWl0IGFuZHJvaWRIZWxwZXJzLnJlc2V0QXBwKHRoaXMuYWRiLCBPYmplY3QuYXNzaWduKHt9LCB0aGlzLm9wdHMsIHtmYXN0UmVzZXQ6IHRydWV9KSk7XG4gIC8vIHJlc2V0IGNvbnRleHQgc2luY2Ugd2UgZG9uJ3Qga25vdyB3aGF0IGtpbmQgb24gY29udGV4dCB3ZSB3aWxsIGVuZCB1cCBhZnRlciBhcHAgbGF1bmNoLlxuICBhd2FpdCB0aGlzLnNldENvbnRleHQoKTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuaXNDaHJvbWVTZXNzaW9uID8gdGhpcy5zdGFydENocm9tZVNlc3Npb24oKSA6IHRoaXMuc3RhcnRBVVQoKTtcbn07XG5cbmNvbW1hbmRzLnN0YXJ0QVVUID0gYXN5bmMgZnVuY3Rpb24gc3RhcnRBVVQgKCkge1xuICBhd2FpdCB0aGlzLmFkYi5zdGFydEFwcCh7XG4gICAgcGtnOiB0aGlzLm9wdHMuYXBwUGFja2FnZSxcbiAgICBhY3Rpdml0eTogdGhpcy5vcHRzLmFwcEFjdGl2aXR5LFxuICAgIGFjdGlvbjogdGhpcy5vcHRzLmludGVudEFjdGlvbixcbiAgICBjYXRlZ29yeTogdGhpcy5vcHRzLmludGVudENhdGVnb3J5LFxuICAgIGZsYWdzOiB0aGlzLm9wdHMuaW50ZW50RmxhZ3MsXG4gICAgd2FpdFBrZzogdGhpcy5vcHRzLmFwcFdhaXRQYWNrYWdlLFxuICAgIHdhaXRBY3Rpdml0eTogdGhpcy5vcHRzLmFwcFdhaXRBY3Rpdml0eSxcbiAgICB3YWl0Rm9yTGF1bmNoOiB0aGlzLm9wdHMuYXBwV2FpdEZvckxhdW5jaCxcbiAgICB3YWl0RHVyYXRpb246IHRoaXMub3B0cy5hcHBXYWl0RHVyYXRpb24sXG4gICAgb3B0aW9uYWxJbnRlbnRBcmd1bWVudHM6IHRoaXMub3B0cy5vcHRpb25hbEludGVudEFyZ3VtZW50cyxcbiAgICBzdG9wQXBwOiAhdGhpcy5vcHRzLmRvbnRTdG9wQXBwT25SZXNldCxcbiAgICB1c2VyOiB0aGlzLm9wdHMudXNlclByb2ZpbGUsXG4gIH0pO1xufTtcblxuLy8gd2Ugb3ZlcnJpZGUgc2V0VXJsIHRvIHRha2UgYW4gYW5kcm9pZCBVUkkgd2hpY2ggY2FuIGJlIHVzZWQgZm9yIGRlZXAtbGlua2luZ1xuLy8gaW5zaWRlIGFuIGFwcCwgc2ltaWxhciB0byBzdGFydGluZyBhbiBpbnRlbnRcbmNvbW1hbmRzLnNldFVybCA9IGFzeW5jIGZ1bmN0aW9uIHNldFVybCAodXJpKSB7XG4gIGF3YWl0IHRoaXMuYWRiLnN0YXJ0VXJpKHVyaSwgdGhpcy5vcHRzLmFwcFBhY2thZ2UpO1xufTtcblxuLy8gY2xvc2luZyBhcHAgdXNpbmcgZm9yY2Ugc3RvcFxuY29tbWFuZHMuY2xvc2VBcHAgPSBhc3luYyBmdW5jdGlvbiBjbG9zZUFwcCAoKSB7XG4gIGF3YWl0IHRoaXMuYWRiLmZvcmNlU3RvcCh0aGlzLm9wdHMuYXBwUGFja2FnZSk7XG4gIC8vIHJlc2V0IGNvbnRleHQgc2luY2Ugd2UgZG9uJ3Qga25vdyB3aGF0IGtpbmQgb24gY29udGV4dCB3ZSB3aWxsIGVuZCB1cCBhZnRlciBhcHAgbGF1bmNoLlxuICBhd2FpdCB0aGlzLnNldENvbnRleHQoKTtcbn07XG5cbmNvbW1hbmRzLmdldERpc3BsYXlEZW5zaXR5ID0gYXN5bmMgZnVuY3Rpb24gZ2V0RGlzcGxheURlbnNpdHkgKCkge1xuICAvLyBmaXJzdCB0cnkgdGhlIHByb3BlcnR5IGZvciBkZXZpY2VzXG4gIGxldCBvdXQgPSBhd2FpdCB0aGlzLmFkYi5zaGVsbChbJ2dldHByb3AnLCAncm8uc2YubGNkX2RlbnNpdHknXSk7XG4gIGlmIChvdXQpIHtcbiAgICBsZXQgdmFsID0gcGFyc2VJbnQob3V0LCAxMCk7XG4gICAgLy8gaWYgdGhlIHZhbHVlIGlzIE5hTiwgdHJ5IGdldHRpbmcgdGhlIGVtdWxhdG9yIHByb3BlcnR5XG4gICAgaWYgKCFpc05hTih2YWwpKSB7XG4gICAgICByZXR1cm4gdmFsO1xuICAgIH1cbiAgICBsb2cuZGVidWcoYFBhcnNlZCBkZW5zaXR5IHZhbHVlIHdhcyBOYU46IFwiJHtvdXR9XCJgKTtcbiAgfVxuICAvLyBmYWxsYmFjayB0byB0cnlpbmcgcHJvcGVydHkgZm9yIGVtdWxhdG9yc1xuICBvdXQgPSBhd2FpdCB0aGlzLmFkYi5zaGVsbChbJ2dldHByb3AnLCAncWVtdS5zZi5sY2RfZGVuc2l0eSddKTtcbiAgaWYgKG91dCkge1xuICAgIGxldCB2YWwgPSBwYXJzZUludChvdXQsIDEwKTtcbiAgICBpZiAoIWlzTmFOKHZhbCkpIHtcbiAgICAgIHJldHVybiB2YWw7XG4gICAgfVxuICAgIGxvZy5kZWJ1ZyhgUGFyc2VkIGRlbnNpdHkgdmFsdWUgd2FzIE5hTjogXCIke291dH1cImApO1xuICB9XG4gIC8vIGNvdWxkbid0IGdldCBhbnl0aGluZywgc28gZXJyb3Igb3V0XG4gIGxvZy5lcnJvckFuZFRocm93KCdGYWlsZWQgdG8gZ2V0IGRpc3BsYXkgZGVuc2l0eSBwcm9wZXJ0eS4nKTtcbn07XG5cbi8qKlxuICogUGFyc2VzIHRoZSBnaXZlbiB3aW5kb3cgbWFuYWdlciBTdXJmYWNlIHN0cmluZyB0byBnZXQgaW5mby5cbiAqIEBwYXJhbSBsaW5lOiBUbyBwYXJzZS4gVGhpcyBpcyBhc3N1bWVkIHRvIGJlIHZhbGlkLlxuICogQHJldHVybjogVmlzaWJpbGl0eSBhbmQgYm91bmRzIG9mIHRoZSBTdXJmYWNlLlxuICovXG5mdW5jdGlvbiBwYXJzZVN1cmZhY2VMaW5lIChsaW5lKSB7XG4gIC8vIHRoZSBzdXJmYWNlIGJvdW5kcyBhcmUgaW4gdGhlIGZvcm1hdDpcbiAgLy8gXCJyZWN0PSgwLjAsMTE4NC4wKSA3NjguMCB4IDk2LjBcIlxuICAvLyAgICAgICBeIGxvY2F0aW9uICAgXiBzaXplXG4gIC8vIGN1dCBvdXQgdGhlIHN0dWZmIGJlZm9yZSB0aGUgJ3JlY3QnIGFuZCB0aGVuIHNwbGl0IHRoZSBudW1iZXJzIGFwYXJ0XG4gIGxldCBib3VuZHMgPSBsaW5lLnNwbGl0KCdyZWN0PScpWzFdXG4gIC5yZXBsYWNlKC9bKCksIHhdKy9nLCAnICcpXG4gIC50cmltKClcbiAgLnNwbGl0KCcgJyk7XG5cbiAgcmV0dXJuIHtcbiAgICB2aXNpYmxlOiAobGluZS5pbmRleE9mKCdzaG93bj10cnVlJykgIT09IC0xKSxcbiAgICB4OiBwYXJzZUZsb2F0KGJvdW5kc1swXSksXG4gICAgeTogcGFyc2VGbG9hdChib3VuZHNbMV0pLFxuICAgIHdpZHRoOiBwYXJzZUZsb2F0KGJvdW5kc1syXSksXG4gICAgaGVpZ2h0OiBwYXJzZUZsb2F0KGJvdW5kc1szXSlcbiAgfTtcbn1cblxuLyoqXG4gKiBFeHRyYWN0cyBzdGF0dXMgYW5kIG5hdmlnYXRpb24gYmFyIGluZm9ybWF0aW9uIGZyb20gdGhlIHdpbmRvdyBtYW5hZ2VyIG91dHB1dC5cbiAqIEBwYXJhbSBsaW5lczogT3V0cHV0IGZyb20gZHVtcHN5cyBjb21tYW5kXG4gKiBAcmV0dXJuOiBWaXNpYmlsaXR5IGFuZCBib3VuZHMgaW5mbyBvZiBzdGF0dXMgYW5kIG5hdmlnYXRpb24gYmFyXG4gKi9cbmZ1bmN0aW9uIHBhcnNlV2luZG93cyAobGluZXMpIHtcbiAgbGV0IGF0U3RhdHVzQmFyID0gZmFsc2U7XG4gIGxldCBhdE5hdkJhciA9IGZhbHNlO1xuICBsZXQgc3RhdHVzQmFyO1xuICBsZXQgbmF2aWdhdGlvbkJhcjtcbiAgLy8gdGhlIHdpbmRvdyBtYW5hZ2VyIG91dHB1dCBsb29rcyBsaWtlOlxuICAvLyBXaW5kb3cgIzEgLi4uIFdpbmRvd0lEXG4gIC8vICAgQSBidW5jaCBvZiBwcm9wZXJ0aWVzXG4gIC8vIFdpbmRvdyAjMiAuLi4gV2luZG93SURcbiAgLy8gICBBIGJ1bmNoIG9mIHByb3BlcnRpZXNcbiAgbGluZXMuc3BsaXQoJ1xcbicpLmZvckVhY2goKGxpbmUpID0+IHtcbiAgICAvLyB0aGUgc3RhcnQgb2YgYSBuZXcgd2luZG93IHNlY3Rpb25cbiAgICBpZiAobGluZS5pbmRleE9mKCcgIFdpbmRvdyAjJykgIT09IC0xKSB7XG4gICAgICAvLyBkZXRlcm1pbmUgd2hpY2ggc2VjdGlvbiB3ZSdyZSBpblxuICAgICAgLy8gb25seSBvbmUgd2lsbCBiZSB0cnVlXG4gICAgICBhdFN0YXR1c0JhciA9IChsaW5lLmluZGV4T2YoJ1N0YXR1c0JhcicpICE9PSAtMSk7XG4gICAgICBhdE5hdkJhciA9IChsaW5lLmluZGV4T2YoJ05hdmlnYXRpb25CYXInKSAhPT0gLTEpO1xuICAgICAgLy8gZG9uJ3QgbmVlZCBhbnl0aGluZyBlbHNlLiBtb3ZlIHRvIG5leHQgbGluZVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBvbmNlIHdlJ3JlIGluIGEgd2luZG93IHNlY3Rpb24sIGxvb2sgZm9yIHRoZSBzdXJmYWNlIGRhdGEgbGluZVxuICAgIGlmIChsaW5lLmluZGV4T2YoJyAgICAgIFN1cmZhY2U6JykgPT09IC0xKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChhdFN0YXR1c0Jhcikge1xuICAgICAgc3RhdHVzQmFyID0gcGFyc2VTdXJmYWNlTGluZShsaW5lKTtcbiAgICAgIGF0U3RhdHVzQmFyID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmIChhdE5hdkJhcikge1xuICAgICAgbmF2aWdhdGlvbkJhciA9IHBhcnNlU3VyZmFjZUxpbmUobGluZSk7XG4gICAgICBhdE5hdkJhciA9IGZhbHNlO1xuICAgIH1cbiAgfSk7XG5cbiAgaWYgKCFzdGF0dXNCYXIpIHtcbiAgICBsb2cuZXJyb3JBbmRUaHJvdygnRmFpbGVkIHRvIHBhcnNlIHN0YXR1cyBiYXIgaW5mb3JtYXRpb24uJyk7XG4gIH1cbiAgaWYgKCFuYXZpZ2F0aW9uQmFyKSB7XG4gICAgbG9nLmVycm9yQW5kVGhyb3coJ0ZhaWxlZCB0byBwYXJzZSBuYXZpZ2F0aW9uIGJhciBpbmZvcm1hdGlvbi4nKTtcbiAgfVxuXG4gIHJldHVybiB7c3RhdHVzQmFyLCBuYXZpZ2F0aW9uQmFyfTtcbn1cblxuY29tbWFuZHMuZ2V0U3lzdGVtQmFycyA9IGFzeW5jIGZ1bmN0aW9uIGdldFN5c3RlbUJhcnMgKCkge1xuICBsZXQgb3V0ID0gYXdhaXQgdGhpcy5hZGIuc2hlbGwoWydkdW1wc3lzJywgJ3dpbmRvdycsICd3aW5kb3dzJ10pO1xuICBpZiAoIW91dCkge1xuICAgIGxvZy5lcnJvckFuZFRocm93KCdEaWQgbm90IGdldCB3aW5kb3cgbWFuYWdlciBvdXRwdXQuJyk7XG4gIH1cbiAgcmV0dXJuIHBhcnNlV2luZG93cyhvdXQpO1xufTtcblxuY29tbWFuZHMubW9iaWxlUGVyZm9ybUVkaXRvckFjdGlvbiA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVBlcmZvcm1FZGl0b3JBY3Rpb24gKG9wdHMgPSB7fSkge1xuICBjb25zdCB7YWN0aW9ufSA9IG9wdHM7XG4gIGlmICghdXRpbC5oYXNWYWx1ZShhY3Rpb24pKSB7XG4gICAgbG9nLmVycm9yQW5kVGhyb3coYCdhY3Rpb24nIGFyZ3VtZW50IGlzIHJlcXVpcmVkYCk7XG4gIH1cblxuICBhd2FpdCB0aGlzLmFkYi5wZXJmb3JtRWRpdG9yQWN0aW9uKGFjdGlvbik7XG59O1xuXG5jb25zdCBQRVJNSVNTSU9OX0FDVElPTiA9IHtcbiAgR1JBTlQ6ICdncmFudCcsXG4gIFJFVk9LRTogJ3Jldm9rZScsXG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IENoYW5nZVBlcm1pc3Npb25zT3B0aW9uc1xuICogQHByb3BlcnR5IHshc3RyaW5nfEFycmF5PHN0cmluZz59IHBlcm1pc3Npb25zIC0gVGhlIGZ1bGwgbmFtZSBvZiB0aGUgcGVybWlzc2lvbiB0byBiZSBjaGFuZ2VkXG4gKiBvciBhIGxpc3Qgb2YgcGVybWlzc2lvbnMuIE1hbmRhdG9yeSBhcmd1bWVudC5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBhcHBQYWNrYWdlIFt0aGlzLm9wdHMuYXBwUGFja2FnZV0gLSBUaGUgYXBwbGljYXRpb24gcGFja2FnZSB0byBzZXQgY2hhbmdlXG4gKiBwZXJtaXNzaW9ucyBvbi4gRGVmYXVsdHMgdG8gdGhlIHBhY2thZ2UgbmFtZSB1bmRlciB0ZXN0LlxuICogQHByb3BlcnR5IHtzdHJpbmd9IGFjdGlvbiBbZ3JhbnRdIC0gT25lIG9mIGBQRVJNSVNTSU9OX0FDVElPTmAgdmFsdWVzXG4gKi9cblxuLyoqXG4gKiBDaGFuZ2VzIHBhY2thZ2UgcGVybWlzc2lvbnMgaW4gcnVudGltZS5cbiAqXG4gKiBAcGFyYW0gez9DaGFuZ2VQZXJtaXNzaW9uc09wdGlvbnN9IG9wdHMgLSBBdmFpbGFibGUgb3B0aW9ucyBtYXBwaW5nLlxuICogQHRocm93cyB7RXJyb3J9IGlmIHRoZXJlIHdhcyBhIGZhaWx1cmUgd2hpbGUgY2hhbmdpbmcgcGVybWlzc2lvbnNcbiAqL1xuY29tbWFuZHMubW9iaWxlQ2hhbmdlUGVybWlzc2lvbnMgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVDaGFuZ2VQZXJtaXNzaW9ucyAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtcbiAgICBwZXJtaXNzaW9ucyxcbiAgICBhcHBQYWNrYWdlID0gdGhpcy5vcHRzLmFwcFBhY2thZ2UsXG4gICAgYWN0aW9uID0gUEVSTUlTU0lPTl9BQ1RJT04uR1JBTlQsXG4gIH0gPSBvcHRzO1xuICBpZiAoIXV0aWwuaGFzVmFsdWUocGVybWlzc2lvbnMpKSB7XG4gICAgbG9nLmVycm9yQW5kVGhyb3coYCdwZXJtaXNzaW9ucycgYXJndW1lbnQgaXMgcmVxdWlyZWRgKTtcbiAgfVxuXG4gIGxldCBhY3Rpb25GdW5jO1xuICBzd2l0Y2ggKF8udG9Mb3dlcihhY3Rpb24pKSB7XG4gICAgY2FzZSBQRVJNSVNTSU9OX0FDVElPTi5HUkFOVDpcbiAgICAgIGFjdGlvbkZ1bmMgPSAoYXBwUGFja2FnZSwgcGVybWlzc2lvbikgPT4gdGhpcy5hZGIuZ3JhbnRQZXJtaXNzaW9uKGFwcFBhY2thZ2UsIHBlcm1pc3Npb24pO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBQRVJNSVNTSU9OX0FDVElPTi5SRVZPS0U6XG4gICAgICBhY3Rpb25GdW5jID0gKGFwcFBhY2thZ2UsIHBlcm1pc3Npb24pID0+IHRoaXMuYWRiLnJldm9rZVBlcm1pc3Npb24oYXBwUGFja2FnZSwgcGVybWlzc2lvbik7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgbG9nLmVycm9yQW5kVGhyb3coYFVua25vd24gYWN0aW9uICcke2FjdGlvbn0nLiBgICtcbiAgICAgICAgYE9ubHkgJHtKU09OLnN0cmluZ2lmeShfLnZhbHVlcyhQRVJNSVNTSU9OX0FDVElPTikpfSBhY3Rpb25zIGFyZSBzdXBwb3J0ZWRgKTtcbiAgICAgIGJyZWFrO1xuICB9XG4gIGZvciAoY29uc3QgcGVybWlzc2lvbiBvZiAoXy5pc0FycmF5KHBlcm1pc3Npb25zKSA/IHBlcm1pc3Npb25zIDogW3Blcm1pc3Npb25zXSkpIHtcbiAgICBhd2FpdCBhY3Rpb25GdW5jKGFwcFBhY2thZ2UsIHBlcm1pc3Npb24pO1xuICB9XG59O1xuXG5jb25zdCBQRVJNSVNTSU9OU19UWVBFID0ge1xuICBERU5JRUQ6ICdkZW5pZWQnLFxuICBHUkFOVEVEOiAnZ3JhbnRlZCcsXG4gIFJFUVVFU1RFRDogJ3JlcXVlc3RlZCcsXG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IEdldFBlcm1pc3Npb25zT3B0aW9uc1xuICogQHByb3BlcnR5IHtzdHJpbmd9IHR5cGUgW3JlcXVlc3RlZF0gLSBPbmUgb2YgcG9zc2libGUgcGVybWlzc2lvbiB0eXBlcyB0byBnZXQuXG4gKiBDYW4gYmUgYW55IG9mIGBQRVJNSVNTSU9OU19UWVBFYCB2YWx1ZXMuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gYXBwUGFja2FnZSBbdGhpcy5vcHRzLmFwcFBhY2thZ2VdIC0gVGhlIGFwcGxpY2F0aW9uIHBhY2thZ2UgdG8gc2V0IGNoYW5nZVxuICogcGVybWlzc2lvbnMgb24uIERlZmF1bHRzIHRvIHRoZSBwYWNrYWdlIG5hbWUgdW5kZXIgdGVzdC5cbiAqL1xuXG4vKipcbiAqIEdldHMgcnVudGltZSBwZXJtaXNzaW9ucyBsaXN0IGZvciB0aGUgZ2l2ZW4gYXBwbGljYXRpb24gcGFja2FnZS5cbiAqXG4gKiBAcGFyYW0ge0dldFBlcm1pc3Npb25zT3B0aW9uc30gb3B0cyAtIEF2YWlsYWJsZSBvcHRpb25zIG1hcHBpbmcuXG4gKiBAcmV0dXJucyB7QXJyYXk8c3RyaW5nPn0gVGhlIGxpc3Qgb2YgcmV0cmlldmVkIHBlcm1pc3Npb25zIGZvciB0aGUgZ2l2ZW4gdHlwZVxuICogKGNhbiBhbHNvIGJlIGVtcHR5KS5cbiAqIEB0aHJvd3Mge0Vycm9yfSBpZiB0aGVyZSB3YXMgYW4gZXJyb3Igd2hpbGUgZ2V0dGluZyBwZXJtaXNzaW9ucy5cbiAqL1xuY29tbWFuZHMubW9iaWxlR2V0UGVybWlzc2lvbnMgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVHZXRQZXJtaXNzaW9ucyAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtcbiAgICB0eXBlID0gUEVSTUlTU0lPTlNfVFlQRS5SRVFVRVNURUQsXG4gICAgYXBwUGFja2FnZSA9IHRoaXMub3B0cy5hcHBQYWNrYWdlLFxuICB9ID0gb3B0cztcblxuICBsZXQgYWN0aW9uRnVuYztcbiAgc3dpdGNoIChfLnRvTG93ZXIodHlwZSkpIHtcbiAgICBjYXNlIFBFUk1JU1NJT05TX1RZUEUuUkVRVUVTVEVEOlxuICAgICAgYWN0aW9uRnVuYyA9IChhcHBQYWNrYWdlKSA9PiB0aGlzLmFkYi5nZXRSZXFQZXJtaXNzaW9ucyhhcHBQYWNrYWdlKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgUEVSTUlTU0lPTlNfVFlQRS5HUkFOVEVEOlxuICAgICAgYWN0aW9uRnVuYyA9IChhcHBQYWNrYWdlKSA9PiB0aGlzLmFkYi5nZXRHcmFudGVkUGVybWlzc2lvbnMoYXBwUGFja2FnZSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFBFUk1JU1NJT05TX1RZUEUuREVOSUVEOlxuICAgICAgYWN0aW9uRnVuYyA9IChhcHBQYWNrYWdlKSA9PiB0aGlzLmFkYi5nZXREZW5pZWRQZXJtaXNzaW9ucyhhcHBQYWNrYWdlKTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICBsb2cuZXJyb3JBbmRUaHJvdyhgVW5rbm93biBwZXJtaXNzaW9ucyB0eXBlICcke3R5cGV9Jy4gYCArXG4gICAgICAgIGBPbmx5ICR7SlNPTi5zdHJpbmdpZnkoXy52YWx1ZXMoUEVSTUlTU0lPTlNfVFlQRSkpfSB0eXBlcyBhcmUgc3VwcG9ydGVkYCk7XG4gICAgICBicmVhaztcbiAgfVxuICByZXR1cm4gYXdhaXQgYWN0aW9uRnVuYyhhcHBQYWNrYWdlKTtcbn07XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBsaXN0IG9mIHJlY2VudCBzeXN0ZW0gbm90aWZpY2F0aW9ucy5cbiAqXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBTZWUgdGhlIGRvY3VtZW50YXRpb24gb24gYGFkYi5nZXROb3RpZmljYXRpb25zYCBmb3JcbiAqIG1vcmUgZGV0YWlsc1xuICovXG5jb21tYW5kcy5tb2JpbGVHZXROb3RpZmljYXRpb25zID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlR2V0Tm90aWZpY2F0aW9ucyAoKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmFkYi5nZXROb3RpZmljYXRpb25zKCk7XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IFNtc0xpc3RPcHRpb25zXG4gKiBAcHJvcGVydHkge251bWJlcn0gbWF4IFsxMDBdIC0gVGhlIG1heGltdW0gY291bnQgb2YgcmVjZW50IFNNUyBtZXNzYWdlc1xuICogdG8gcmV0cmlldmVcbiAqL1xuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgbGlzdCBvZiByZWNlbnQgU01TIG1lc3NhZ2VzIHdpdGggdGhlaXIgcHJvcGVydGllcy5cbiAqXG4gKiBAcGFyYW0ge1Ntc0xpc3RPcHRpb25zfSBvcHRzXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBTZWUgdGhlIGRvY3VtZW50YXRpb24gb24gYGFkYi5nZXRTbXNMaXN0YCBmb3JcbiAqIG1vcmUgZGV0YWlsc1xuICovXG5jb21tYW5kcy5tb2JpbGVMaXN0U21zID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlTGlzdFNtcyAob3B0cyA9IHt9KSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmFkYi5nZXRTbXNMaXN0KG9wdHMpO1xufTtcblxuXG5PYmplY3QuYXNzaWduKGV4dGVuc2lvbnMsIGNvbW1hbmRzLCBoZWxwZXJzKTtcbmV4cG9ydCB7IGNvbW1hbmRzLCBoZWxwZXJzIH07XG5leHBvcnQgZGVmYXVsdCBleHRlbnNpb25zO1xuLy8gZm9yIHVuaXQgdGVzdHNcbmV4cG9ydCB7IHBhcnNlV2luZG93cywgcGFyc2VTdXJmYWNlTGluZSB9O1xuIl0sImZpbGUiOiJsaWIvY29tbWFuZHMvZ2VuZXJhbC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLiJ9
|
|
496
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9nZW5lcmFsLmpzIl0sIm5hbWVzIjpbIk1PTUVOVF9GT1JNQVRfSVNPODYwMSIsImNvbW1hbmRzIiwiaGVscGVycyIsImV4dGVuc2lvbnMiLCJrZXlzIiwiXyIsImlzQXJyYXkiLCJqb2luIiwicGFyYW1zIiwidGV4dCIsInJlcGxhY2UiLCJvcHRzIiwidW5pY29kZUtleWJvYXJkIiwiZG9TZW5kS2V5cyIsImJvb3RzdHJhcCIsInNlbmRBY3Rpb24iLCJnZXREZXZpY2VUaW1lIiwiZm9ybWF0IiwibG9nIiwiZGVidWciLCJkZXZpY2VUaW1lc3RhbXAiLCJhZGIiLCJzaGVsbCIsInRyaW0iLCJwYXJzZWRUaW1lc3RhbXAiLCJtb21lbnQiLCJ1dGMiLCJpc1ZhbGlkIiwid2FybiIsInV0Y09mZnNldCIsIl90em0iLCJtb2JpbGVHZXREZXZpY2VUaW1lIiwiZ2V0UGFnZVNvdXJjZSIsImJhY2siLCJpc0tleWJvYXJkU2hvd24iLCJpc1NvZnRLZXlib2FyZFByZXNlbnQiLCJoaWRlS2V5Ym9hcmQiLCJvcGVuU2V0dGluZ3NBY3Rpdml0eSIsInNldHRpbmciLCJhcHBQYWNrYWdlIiwiYXBwQWN0aXZpdHkiLCJnZXRGb2N1c2VkUGFja2FnZUFuZEFjdGl2aXR5Iiwid2FpdEZvck5vdEFjdGl2aXR5IiwiZ2V0V2luZG93U2l6ZSIsImdldFdpbmRvd1JlY3QiLCJ3aWR0aCIsImhlaWdodCIsIngiLCJ5IiwiZ2V0Q3VycmVudEFjdGl2aXR5IiwiZ2V0Q3VycmVudFBhY2thZ2UiLCJiYWNrZ3JvdW5kIiwic2Vjb25kcyIsImdvVG9Ib21lIiwic2xlZXBNcyIsInRocmVzaG9sZE1zIiwiaW50ZXJ2YWxNcyIsIm1pbiIsInBhcnNlSW50IiwicHJvZ3Jlc3NDYiIsImVsYXBzZWRNcyIsInByb2dyZXNzIiwid2FpdFNlY3MiLCJ0b0ZpeGVkIiwicHJvZ3Jlc3NQY3QiLCJhcmdzIiwiX2NhY2hlZEFjdGl2aXR5QXJncyIsImFjdGl2YXRlQXBwIiwiaWduIiwiYXBwV2FpdFBhY2thZ2UiLCJhcHBXYWl0QWN0aXZpdHkiLCJzcGxpdCIsImluY2x1ZGVzIiwicGtnIiwiYWN0aXZpdHkiLCJhY3Rpb24iLCJpbnRlbnRBY3Rpb24iLCJjYXRlZ29yeSIsImludGVudENhdGVnb3J5IiwiZmxhZ3MiLCJpbnRlbnRGbGFncyIsIndhaXRQa2ciLCJ3YWl0QWN0aXZpdHkiLCJ3YWl0Rm9yTGF1bmNoIiwiYXBwV2FpdEZvckxhdW5jaCIsIndhaXREdXJhdGlvbiIsImFwcFdhaXREdXJhdGlvbiIsIm9wdGlvbmFsSW50ZW50QXJndW1lbnRzIiwic3RvcEFwcCIsInVzZXIiLCJ1c2VyUHJvZmlsZSIsInV0aWwiLCJmaWx0ZXJPYmplY3QiLCJKU09OIiwic3RyaW5naWZ5Iiwic3RhcnRBcHAiLCJnZXRTdHJpbmdzIiwibGFuZ3VhZ2UiLCJnZXREZXZpY2VMYW5ndWFnZSIsImluZm8iLCJwcmVwcm9jZXNzU3RyaW5nc01hcCIsIm1hcHBpbmciLCJyZXN1bHQiLCJrZXkiLCJ2YWx1ZSIsInRvUGFpcnMiLCJpc1N0cmluZyIsImFwa1N0cmluZ3MiLCJhbmRyb2lkSGVscGVycyIsInB1c2hTdHJpbmdzIiwibGF1bmNoQXBwIiwiaW5pdEFVVCIsInN0YXJ0QVVUIiwic3RhcnRBY3Rpdml0eSIsImRvbnRTdG9wQXBwT25SZXNldCIsImhhc1ZhbHVlIiwicmVzZXQiLCJyZXNldEFwcCIsIk9iamVjdCIsImFzc2lnbiIsImZhc3RSZXNldCIsInNldENvbnRleHQiLCJpc0Nocm9tZVNlc3Npb24iLCJzdGFydENocm9tZVNlc3Npb24iLCJzZXRVcmwiLCJ1cmkiLCJzdGFydFVyaSIsImNsb3NlQXBwIiwiZm9yY2VTdG9wIiwiZ2V0RGlzcGxheURlbnNpdHkiLCJvdXQiLCJ2YWwiLCJpc05hTiIsImVycm9yQW5kVGhyb3ciLCJwYXJzZVN1cmZhY2VMaW5lIiwibGluZSIsImJvdW5kcyIsInZpc2libGUiLCJpbmRleE9mIiwicGFyc2VGbG9hdCIsInBhcnNlV2luZG93cyIsImxpbmVzIiwiYXRTdGF0dXNCYXIiLCJhdE5hdkJhciIsInN0YXR1c0JhciIsIm5hdmlnYXRpb25CYXIiLCJmb3JFYWNoIiwiZ2V0U3lzdGVtQmFycyIsIm1vYmlsZVBlcmZvcm1FZGl0b3JBY3Rpb24iLCJwZXJmb3JtRWRpdG9yQWN0aW9uIiwiUEVSTUlTU0lPTl9BQ1RJT04iLCJHUkFOVCIsIlJFVk9LRSIsIm1vYmlsZUNoYW5nZVBlcm1pc3Npb25zIiwicGVybWlzc2lvbnMiLCJhY3Rpb25GdW5jIiwidG9Mb3dlciIsInBlcm1pc3Npb24iLCJncmFudFBlcm1pc3Npb24iLCJyZXZva2VQZXJtaXNzaW9uIiwidmFsdWVzIiwiUEVSTUlTU0lPTlNfVFlQRSIsIkRFTklFRCIsIkdSQU5URUQiLCJSRVFVRVNURUQiLCJtb2JpbGVHZXRQZXJtaXNzaW9ucyIsInR5cGUiLCJnZXRSZXFQZXJtaXNzaW9ucyIsImdldEdyYW50ZWRQZXJtaXNzaW9ucyIsImdldERlbmllZFBlcm1pc3Npb25zIiwibW9iaWxlR2V0Tm90aWZpY2F0aW9ucyIsImdldE5vdGlmaWNhdGlvbnMiLCJtb2JpbGVMaXN0U21zIiwiZ2V0U21zTGlzdCIsIm1vYmlsZVVubG9jayIsInN0cmF0ZWd5IiwidGltZW91dE1zIiwidW5sb2NrIiwidW5sb2NrS2V5IiwidW5sb2NrVHlwZSIsInVubG9ja1N0cmF0ZWd5IiwidW5sb2NrU3VjY2Vzc1RpbWVvdXQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSxNQUFNQSxxQkFBcUIsR0FBRyxzQkFBOUI7QUFFQSxJQUFJQyxRQUFRLEdBQUcsRUFBZjtBQUFBLElBQW1CQyxPQUFPLEdBQUcsRUFBN0I7QUFBQSxJQUFpQ0MsVUFBVSxHQUFHLEVBQTlDOzs7O0FBRUFGLFFBQVEsQ0FBQ0csSUFBVCxHQUFnQixlQUFlQSxJQUFmLENBQXFCQSxJQUFyQixFQUEyQjtBQUV6Q0EsRUFBQUEsSUFBSSxHQUFHQyxnQkFBRUMsT0FBRixDQUFVRixJQUFW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LENBQVNzSixnQkFBVCxFQUFiO0FBQ0QsQ0FGRDs7QUFpQkExSyxRQUFRLENBQUMySyxhQUFULEdBQXlCLGVBQWVBLGFBQWYsQ0FBOEJqSyxJQUFJLEdBQUcsRUFBckMsRUFBeUM7QUFDaEUsU0FBTyxNQUFNLEtBQUtVLEdBQUwsQ0FBU3dKLFVBQVQsQ0FBb0JsSyxJQUFwQixDQUFiO0FBQ0QsQ0FGRDs7QUF5QkFWLFFBQVEsQ0FBQzZLLFlBQVQsR0FBd0IsZUFBZUEsWUFBZixDQUE2Qm5LLElBQUksR0FBRyxFQUFwQyxFQUF3QztBQUM5RCxRQUFNO0FBQUU0RixJQUFBQSxHQUFGO0FBQU8rRCxJQUFBQSxJQUFQO0FBQWFTLElBQUFBLFFBQWI7QUFBdUJDLElBQUFBO0FBQXZCLE1BQXFDckssSUFBM0M7QUFDQSxRQUFNaUcsd0JBQWVxRSxNQUFmLENBQXNCLElBQXRCLEVBQTRCLEtBQUs1SixHQUFqQyxFQUFzQztBQUMxQzZKLElBQUFBLFNBQVMsRUFBRTNFLEdBRCtCO0FBRTFDNEUsSUFBQUEsVUFBVSxFQUFFYixJQUY4QjtBQUcxQ2MsSUFBQUEsY0FBYyxFQUFFTCxRQUgwQjtBQUkxQ00sSUFBQUEsb0JBQW9CLEVBQUVMO0FBSm9CLEdBQXRDLENBQU47QUFNRCxDQVJEOztBQVVBMUQsTUFBTSxDQUFDQyxNQUFQLENBQWNwSCxVQUFkLEVBQTBCRixRQUExQixFQUFvQ0MsT0FBcEM7ZUFFZUMsVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgYW5kcm9pZEhlbHBlcnMgZnJvbSAnLi4vYW5kcm9pZC1oZWxwZXJzJztcbmltcG9ydCB7IHV0aWwgfSBmcm9tICdhcHBpdW0tc3VwcG9ydCc7XG5pbXBvcnQgbG9nIGZyb20gJy4uL2xvZ2dlcic7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgeyBsb25nU2xlZXAgfSBmcm9tICdhc3luY2JveCc7XG5cbmNvbnN0IE1PTUVOVF9GT1JNQVRfSVNPODYwMSA9ICdZWVlZLU1NLUREVEhIOm1tOnNzWic7XG5cbmxldCBjb21tYW5kcyA9IHt9LCBoZWxwZXJzID0ge30sIGV4dGVuc2lvbnMgPSB7fTtcblxuY29tbWFuZHMua2V5cyA9IGFzeW5jIGZ1bmN0aW9uIGtleXMgKGtleXMpIHtcbiAgLy8gUHJvdG9jb2wgc2VuZHMgYW4gYXJyYXk7IHJldGhpbmsgYXBwcm9hY2hcbiAga2V5cyA9IF8uaXNBcnJheShrZXlzKSA/IGtleXMuam9pbignJykgOiBrZXlzO1xuICBsZXQgcGFyYW1zID0ge1xuICAgIHRleHQ6IGtleXMsXG4gICAgcmVwbGFjZTogZmFsc2VcbiAgfTtcbiAgaWYgKHRoaXMub3B0cy51bmljb2RlS2V5Ym9hcmQpIHtcbiAgICBwYXJhbXMudW5pY29kZUtleWJvYXJkID0gdHJ1ZTtcbiAgfVxuICBhd2FpdCB0aGlzLmRvU2VuZEtleXMocGFyYW1zKTtcbn07XG5cbmNvbW1hbmRzLmRvU2VuZEtleXMgPSBhc3luYyBmdW5jdGlvbiBkb1NlbmRLZXlzIChwYXJhbXMpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ3NldFRleHQnLCBwYXJhbXMpO1xufTtcblxuLyoqXG4gKiBSZXRyaWV2ZXMgdGhlIGN1cnJlbnQgZGV2aWNlJ3MgdGltZXN0YW1wLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBmb3JtYXQgLSBUaGUgc2V0IG9mIGZvcm1hdCBzcGVjaWZpZXJzLiBSZWFkXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgaHR0cHM6Ly9tb21lbnRqcy5jb20vZG9jcy8gdG8gZ2V0IHRoZSBmdWxsIGxpc3Qgb2Ygc3VwcG9ydGVkXG4gKiAgICAgICAgICAgICAgICAgICAgICAgICAgZGF0ZXRpbWUgZm9ybWF0IHNwZWNpZmllcnMuIFRoZSBkZWZhdWx0IGZvcm1hdCBpc1xuICogICAgICAgICAgICAgICAgICAgICAgICAgIGBZWVlZLU1NLUREVEhIOm1tOnNzWmAsIHdoaWNoIGNvbXBsaWVzIHRvIElTTy04NjAxXG4gKiBAcmV0dXJuIHtzdHJpbmd9IEZvcm1hdHRlZCBkYXRldGltZSBzdHJpbmcgb3IgdGhlIHJhdyBjb21tYW5kIG91dHB1dCBpZiBmb3JtYXR0aW5nIGZhaWxzXG4gKi9cbmNvbW1hbmRzLmdldERldmljZVRpbWUgPSBhc3luYyBmdW5jdGlvbiBnZXREZXZpY2VUaW1lIChmb3JtYXQgPSBNT01FTlRfRk9STUFUX0lTTzg2MDEpIHtcbiAgbG9nLmRlYnVnKCdBdHRlbXB0aW5nIHRvIGNhcHR1cmUgYW5kcm9pZCBkZXZpY2UgZGF0ZSBhbmQgdGltZS4gJyArXG4gICAgYFRoZSBmb3JtYXQgc3BlY2lmaWVyIGlzICcke2Zvcm1hdH0nYCk7XG4gIGNvbnN0IGRldmljZVRpbWVzdGFtcCA9IChhd2FpdCB0aGlzLmFkYi5zaGVsbChbJ2RhdGUnLCAnKyVZLSVtLSVkVCVUJXonXSkpLnRyaW0oKTtcbiAgbG9nLmRlYnVnKGBHb3QgZGV2aWNlIHRpbWVzdGFtcDogJHtkZXZpY2VUaW1lc3RhbXB9YCk7XG4gIGNvbnN0IHBhcnNlZFRpbWVzdGFtcCA9IG1vbWVudC51dGMoZGV2aWNlVGltZXN0YW1wLCAnWVlZWS1NTS1ERFRISDptbTpzc1paJyk7XG4gIGlmICghcGFyc2VkVGltZXN0YW1wLmlzVmFsaWQoKSkge1xuICAgIGxvZy53YXJuKCdDYW5ub3QgcGFyc2UgdGhlIHJldHVybmVkIHRpbWVzdGFtcC4gUmV0dXJuaW5nIGFzIGlzJyk7XG4gICAgcmV0dXJuIGRldmljZVRpbWVzdGFtcDtcbiAgfVxuICByZXR1cm4gcGFyc2VkVGltZXN0YW1wLnV0Y09mZnNldChwYXJzZWRUaW1lc3RhbXAuX3R6bSB8fCAwKS5mb3JtYXQoZm9ybWF0KTtcbn07XG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gRGV2aWNlVGltZU9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBmb3JtYXQgW1lZWVktTU0tRERUSEg6bW06c3NaXSAtIFNlZSBnZXREZXZpY2VUaW1lI2Zvcm1hdFxuICovXG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBjdXJyZW50IGRldmljZSB0aW1lXG4gKlxuICogQHBhcmFtIHtEZXZpY2VUaW1lT3B0aW9uc30gb3B0c1xuICogQHJldHVybiB7c3RyaW5nfSBGb3JtYXR0ZWQgZGF0ZXRpbWUgc3RyaW5nIG9yIHRoZSByYXcgY29tbWFuZCBvdXRwdXQgaWYgZm9ybWF0dGluZyBmYWlsc1xuICovXG5jb21tYW5kcy5tb2JpbGVHZXREZXZpY2VUaW1lID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlR2V0RGV2aWNlVGltZSAob3B0cyA9IHt9KSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmdldERldmljZVRpbWUob3B0cy5mb3JtYXQpO1xufTtcblxuY29tbWFuZHMuZ2V0UGFnZVNvdXJjZSA9IGFzeW5jIGZ1bmN0aW9uIGdldFBhZ2VTb3VyY2UgKCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5ib290c3RyYXAuc2VuZEFjdGlvbignc291cmNlJyk7XG59O1xuXG5jb21tYW5kcy5iYWNrID0gYXN5bmMgZnVuY3Rpb24gYmFjayAoKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmJvb3RzdHJhcC5zZW5kQWN0aW9uKCdwcmVzc0JhY2snKTtcbn07XG5cbmNvbW1hbmRzLmlzS2V5Ym9hcmRTaG93biA9IGFzeW5jIGZ1bmN0aW9uIGlzS2V5Ym9hcmRTaG93biAoKSB7XG4gIGNvbnN0IHtpc0tleWJvYXJkU2hvd259ID0gYXdhaXQgdGhpcy5hZGIuaXNTb2Z0S2V5Ym9hcmRQcmVzZW50KCk7XG4gIHJldHVybiBpc0tleWJvYXJkU2hvd247XG59O1xuXG5jb21tYW5kcy5oaWRlS2V5Ym9hcmQgPSBhc3luYyBmdW5jdGlvbiBoaWRlS2V5Ym9hcmQgKCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5hZGIuaGlkZUtleWJvYXJkKCk7XG59O1xuXG5jb21tYW5kcy5vcGVuU2V0dGluZ3NBY3Rpdml0eSA9IGFzeW5jIGZ1bmN0aW9uIG9wZW5TZXR0aW5nc0FjdGl2aXR5IChzZXR0aW5nKSB7XG4gIGxldCB7YXBwUGFja2FnZSwgYXBwQWN0aXZpdHl9ID0gYXdhaXQgdGhpcy5hZGIuZ2V0Rm9jdXNlZFBhY2thZ2VBbmRBY3Rpdml0eSgpO1xuICBhd2FpdCB0aGlzLmFkYi5zaGVsbChbJ2FtJywgJ3N0YXJ0JywgJy1hJywgYGFuZHJvaWQuc2V0dGluZ3MuJHtzZXR0aW5nfWBdKTtcbiAgYXdhaXQgdGhpcy5hZGIud2FpdEZvck5vdEFjdGl2aXR5KGFwcFBhY2thZ2UsIGFwcEFjdGl2aXR5LCA1MDAwKTtcbn07XG5cbmNvbW1hbmRzLmdldFdpbmRvd1NpemUgPSBhc3luYyBmdW5jdGlvbiBnZXRXaW5kb3dTaXplICgpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ2dldERldmljZVNpemUnKTtcbn07XG5cbi8vIEZvciBXM0NcbmNvbW1hbmRzLmdldFdpbmRvd1JlY3QgPSBhc3luYyBmdW5jdGlvbiBnZXRXaW5kb3dSZWN0ICgpIHtcbiAgY29uc3QgeyB3aWR0aCwgaGVpZ2h0IH0gPSBhd2FpdCB0aGlzLmdldFdpbmRvd1NpemUoKTtcbiAgcmV0dXJuIHtcbiAgICB3aWR0aCxcbiAgICBoZWlnaHQsXG4gICAgeDogMCxcbiAgICB5OiAwXG4gIH07XG59O1xuXG5jb21tYW5kcy5nZXRDdXJyZW50QWN0aXZpdHkgPSBhc3luYyBmdW5jdGlvbiBnZXRDdXJyZW50QWN0aXZpdHkgKCkge1xuICByZXR1cm4gKGF3YWl0IHRoaXMuYWRiLmdldEZvY3VzZWRQYWNrYWdlQW5kQWN0aXZpdHkoKSkuYXBwQWN0aXZpdHk7XG59O1xuXG5jb21tYW5kcy5nZXRDdXJyZW50UGFja2FnZSA9IGFzeW5jIGZ1bmN0aW9uIGdldEN1cnJlbnRQYWNrYWdlICgpIHtcbiAgcmV0dXJuIChhd2FpdCB0aGlzLmFkYi5nZXRGb2N1c2VkUGFja2FnZUFuZEFjdGl2aXR5KCkpLmFwcFBhY2thZ2U7XG59O1xuXG5jb21tYW5kcy5iYWNrZ3JvdW5kID0gYXN5bmMgZnVuY3Rpb24gYmFja2dyb3VuZCAoc2Vjb25kcykge1xuICBpZiAoc2Vjb25kcyA8IDApIHtcbiAgICAvLyBpZiB1c2VyIHBhc3NlcyBpbiBhIG5lZ2F0aXZlIHNlY29uZHMgdmFsdWUsIGludGVycHJldCB0aGF0IGFzIHRoZSBpbnN0cnVjdGlvblxuICAgIC8vIHRvIG5vdCBicmluZyB0aGUgYXBwIGJhY2sgYXQgYWxsXG4gICAgYXdhaXQgdGhpcy5hZGIuZ29Ub0hvbWUoKTtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICBsZXQge2FwcFBhY2thZ2UsIGFwcEFjdGl2aXR5fSA9IGF3YWl0IHRoaXMuYWRiLmdldEZvY3VzZWRQYWNrYWdlQW5kQWN0aXZpdHkoKTtcbiAgYXdhaXQgdGhpcy5hZGIuZ29Ub0hvbWUoKTtcblxuICAvLyBwZW9wbGUgY2FuIHdhaXQgZm9yIGEgbG9uZyB0aW1lLCBzbyB0byBiZSBzYWZlIGxldCdzIHVzZSB0aGUgbG9uZ1NsZWVwIGZ1bmN0aW9uIGFuZCBsb2dcbiAgLy8gcHJvZ3Jlc3MgcGVyaW9kaWNhbGx5LlxuICBjb25zdCBzbGVlcE1zID0gc2Vjb25kcyAqIDEwMDA7XG4gIGNvbnN0IHRocmVzaG9sZE1zID0gMzAgKiAxMDAwOyAvLyB1c2UgdGhlIHNwaW4td2FpdCBmb3IgYW55dGhpbmcgb3ZlciB0aGlzIHRocmVzaG9sZFxuICAvLyBmb3Igb3VyIHNwaW4gaW50ZXJ2YWwsIHVzZSAxJSBvZiB0aGUgdG90YWwgd2FpdCB0aW1lLCBidXQgbm90aGluZyBiaWdnZXIgdGhhbiAzMHNcbiAgY29uc3QgaW50ZXJ2YWxNcyA9IF8ubWluKFszMCAqIDEwMDAsIHBhcnNlSW50KHNsZWVwTXMgLyAxMDAsIDEwKV0pO1xuICBjb25zdCBwcm9ncmVzc0NiID0gKHtlbGFwc2VkTXMsIHByb2dyZXNzfSkgPT4ge1xuICAgIGNvbnN0IHdhaXRTZWNzID0gKGVsYXBzZWRNcyAvIDEwMDApLnRvRml4ZWQoMCk7XG4gICAgY29uc3QgcHJvZ3Jlc3NQY3QgPSAocHJvZ3Jlc3MgKiAxMDApLnRvRml4ZWQoMik7XG4gICAgbG9nLmRlYnVnKGBXYWl0ZWQgJHt3YWl0U2Vjc31zIHNvIGZhciAoJHtwcm9ncmVzc1BjdH0lKWApO1xuICB9O1xuICBhd2FpdCBsb25nU2xlZXAoc2xlZXBNcywge3RocmVzaG9sZE1zLCBpbnRlcnZhbE1zLCBwcm9ncmVzc0NifSk7XG5cbiAgbGV0IGFyZ3M7XG4gIGlmICh0aGlzLl9jYWNoZWRBY3Rpdml0eUFyZ3MgJiYgdGhpcy5fY2FjaGVkQWN0aXZpdHlBcmdzW2Ake2FwcFBhY2thZ2V9LyR7YXBwQWN0aXZpdHl9YF0pIHtcbiAgICAvLyB0aGUgYWN0aXZpdHkgd2FzIHN0YXJ0ZWQgd2l0aCBgc3RhcnRBY3Rpdml0eWAsIHNvIHVzZSB0aG9zZSBhcmdzIHRvIHJlc3RhcnRcbiAgICBhcmdzID0gdGhpcy5fY2FjaGVkQWN0aXZpdHlBcmdzW2Ake2FwcFBhY2thZ2V9LyR7YXBwQWN0aXZpdHl9YF07XG4gIH0gZWxzZSB7XG4gICAgdHJ5IHtcbiAgICAgIGxvZy5kZWJ1ZyhgQWN0aXZhdGluZyBhcHAgJyR7YXBwUGFja2FnZX0nIGluIG9yZGVyIHRvIHJlc3RvcmUgaXRgKTtcbiAgICAgIGF3YWl0IHRoaXMuYWN0aXZhdGVBcHAoYXBwUGFja2FnZSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGNhdGNoIChpZ24pIHt9XG4gICAgYXJncyA9ICgoYXBwUGFja2FnZSA9PT0gdGhpcy5vcHRzLmFwcFBhY2thZ2UgJiYgYXBwQWN0aXZpdHkgPT09IHRoaXMub3B0cy5hcHBBY3Rpdml0eSkgfHxcbiAgICAgICAgICAgIChhcHBQYWNrYWdlID09PSB0aGlzLm9wdHMuYXBwV2FpdFBhY2thZ2UgJiYgKHRoaXMub3B0cy5hcHBXYWl0QWN0aXZpdHkgfHwgJycpLnNwbGl0KCcsJykuaW5jbHVkZXMoYXBwQWN0aXZpdHkpKSlcbiAgICAgID8gey8vIHRoZSBhY3Rpdml0eSBpcyB0aGUgb3JpZ2luYWwgc2Vzc2lvbiBhY3Rpdml0eSwgc28gdXNlIHRoZSBvcmlnaW5hbCBhcmdzXG4gICAgICAgIHBrZzogdGhpcy5vcHRzLmFwcFBhY2thZ2UsXG4gICAgICAgIGFjdGl2aXR5OiB0aGlzLm9wdHMuYXBwQWN0aXZpdHksXG4gICAgICAgIGFjdGlvbjogdGhpcy5vcHRzLmludGVudEFjdGlvbixcbiAgICAgICAgY2F0ZWdvcnk6IHRoaXMub3B0cy5pbnRlbnRDYXRlZ29yeSxcbiAgICAgICAgZmxhZ3M6IHRoaXMub3B0cy5pbnRlbnRGbGFncyxcbiAgICAgICAgd2FpdFBrZzogdGhpcy5vcHRzLmFwcFdhaXRQYWNrYWdlLFxuICAgICAgICB3YWl0QWN0aXZpdHk6IHRoaXMub3B0cy5hcHBXYWl0QWN0aXZpdHksXG4gICAgICAgIHdhaXRGb3JMYXVuY2g6IHRoaXMub3B0cy5hcHBXYWl0Rm9yTGF1bmNoLFxuICAgICAgICB3YWl0RHVyYXRpb246IHRoaXMub3B0cy5hcHBXYWl0RHVyYXRpb24sXG4gICAgICAgIG9wdGlvbmFsSW50ZW50QXJndW1lbnRzOiB0aGlzLm9wdHMub3B0aW9uYWxJbnRlbnRBcmd1bWVudHMsXG4gICAgICAgIHN0b3BBcHA6IGZhbHNlLFxuICAgICAgICB1c2VyOiB0aGlzLm9wdHMudXNlclByb2ZpbGV9XG4gICAgICA6IHsvLyB0aGUgYWN0aXZpdHkgd2FzIHN0YXJ0ZWQgc29tZSBvdGhlciB3YXksIHNvIHVzZSBkZWZhdWx0c1xuICAgICAgICBwa2c6IGFwcFBhY2thZ2UsXG4gICAgICAgIGFjdGl2aXR5OiBhcHBBY3Rpdml0eSxcbiAgICAgICAgd2FpdFBrZzogYXBwUGFja2FnZSxcbiAgICAgICAgd2FpdEFjdGl2aXR5OiBhcHBBY3Rpdml0eSxcbiAgICAgICAgc3RvcEFwcDogZmFsc2V9O1xuICB9XG4gIGFyZ3MgPSBhd2FpdCB1dGlsLmZpbHRlck9iamVjdChhcmdzKTtcbiAgbG9nLmRlYnVnKGBCcmluZ2luZyBhcHBsaWNhdGlvbiBiYWNrIHRvIGZvcmVncm91bmQgd2l0aCBhcmd1bWVudHM6ICR7SlNPTi5zdHJpbmdpZnkoYXJncyl9YCk7XG4gIHJldHVybiBhd2FpdCB0aGlzLmFkYi5zdGFydEFwcChhcmdzKTtcbn07XG5cbmNvbW1hbmRzLmdldFN0cmluZ3MgPSBhc3luYyBmdW5jdGlvbiBnZXRTdHJpbmdzIChsYW5ndWFnZSkge1xuICBpZiAoIWxhbmd1YWdlKSB7XG4gICAgbGFuZ3VhZ2UgPSBhd2FpdCB0aGlzLmFkYi5nZXREZXZpY2VMYW5ndWFnZSgpO1xuICAgIGxvZy5pbmZvKGBObyBsYW5ndWFnZSBzcGVjaWZpZWQsIHJldHVybmluZyBzdHJpbmdzIGZvcjogJHtsYW5ndWFnZX1gKTtcbiAgfVxuXG4gIC8vIENsaWVudHMgcmVxdWlyZSB0aGUgcmVzdWx0aW5nIG1hcHBpbmcgdG8gaGF2ZSBib3RoIGtleXNcbiAgLy8gYW5kIHZhbHVlcyBvZiB0eXBlIHN0cmluZ1xuICBjb25zdCBwcmVwcm9jZXNzU3RyaW5nc01hcCA9IChtYXBwaW5nKSA9PiB7XG4gICAgY29uc3QgcmVzdWx0ID0ge307XG4gICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgXy50b1BhaXJzKG1hcHBpbmcpKSB7XG4gICAgICByZXN1bHRba2V5XSA9IF8uaXNTdHJpbmcodmFsdWUpID8gdmFsdWUgOiBKU09OLnN0cmluZ2lmeSh2YWx1ZSk7XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH07XG5cbiAgaWYgKHRoaXMuYXBrU3RyaW5nc1tsYW5ndWFnZV0pIHtcbiAgICAvLyBSZXR1cm4gY2FjaGVkIHN0cmluZ3NcbiAgICByZXR1cm4gcHJlcHJvY2Vzc1N0cmluZ3NNYXAodGhpcy5hcGtTdHJpbmdzW2xhbmd1YWdlXSk7XG4gIH1cblxuICB0aGlzLmFwa1N0cmluZ3NbbGFuZ3VhZ2VdID0gYXdhaXQgYW5kcm9pZEhlbHBlcnMucHVzaFN0cmluZ3MobGFuZ3VhZ2UsIHRoaXMuYWRiLCB0aGlzLm9wdHMpO1xuICBpZiAodGhpcy5ib290c3RyYXApIHtcbiAgICAvLyBUT0RPOiBUaGlzIGlzIG11dGF0aW5nIHRoZSBjdXJyZW50IGxhbmd1YWdlLCBidXQgaXQncyBob3cgYXBwaXVtIGN1cnJlbnRseSB3b3Jrc1xuICAgIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ3VwZGF0ZVN0cmluZ3MnKTtcbiAgfVxuXG4gIHJldHVybiBwcmVwcm9jZXNzU3RyaW5nc01hcCh0aGlzLmFwa1N0cmluZ3NbbGFuZ3VhZ2VdKTtcbn07XG5cbmNvbW1hbmRzLmxhdW5jaEFwcCA9IGFzeW5jIGZ1bmN0aW9uIGxhdW5jaEFwcCAoKSB7XG4gIGF3YWl0IHRoaXMuaW5pdEFVVCgpO1xuICBhd2FpdCB0aGlzLnN0YXJ0QVVUKCk7XG59O1xuXG5jb21tYW5kcy5zdGFydEFjdGl2aXR5ID0gYXN5bmMgZnVuY3Rpb24gc3RhcnRBY3Rpdml0eSAoYXBwUGFja2FnZSwgYXBwQWN0aXZpdHksXG4gIGFwcFdhaXRQYWNrYWdlLCBhcHBXYWl0QWN0aXZpdHksIGludGVudEFjdGlvbiwgaW50ZW50Q2F0ZWdvcnksIGludGVudEZsYWdzLFxuICBvcHRpb25hbEludGVudEFyZ3VtZW50cywgZG9udFN0b3BBcHBPblJlc2V0KSB7XG4gIGxvZy5kZWJ1ZyhgU3RhcnRpbmcgcGFja2FnZSAnJHthcHBQYWNrYWdlfScgYW5kIGFjdGl2aXR5ICcke2FwcEFjdGl2aXR5fSdgKTtcblxuICAvLyBkb250U3RvcEFwcE9uUmVzZXQgaXMgYm90aCBhbiBhcmd1bWVudCBoZXJlLCBhbmQgYSBkZXNpcmVkIGNhcGFiaWxpdHlcbiAgLy8gaWYgdGhlIGFyZ3VtZW50IGlzIHNldCwgdXNlIGl0LCBvdGhlcndpc2UgdXNlIHRoZSBjYXBcbiAgaWYgKCF1dGlsLmhhc1ZhbHVlKGRvbnRTdG9wQXBwT25SZXNldCkpIHtcbiAgICBkb250U3RvcEFwcE9uUmVzZXQgPSAhIXRoaXMub3B0cy5kb250U3RvcEFwcE9uUmVzZXQ7XG4gIH1cblxuICBsZXQgYXJncyA9IHtcbiAgICBwa2c6IGFwcFBhY2thZ2UsXG4gICAgYWN0aXZpdHk6IGFwcEFjdGl2aXR5LFxuICAgIHdhaXRQa2c6IGFwcFdhaXRQYWNrYWdlIHx8IGFwcFBhY2thZ2UsXG4gICAgd2FpdEFjdGl2aXR5OiBhcHBXYWl0QWN0aXZpdHkgfHwgYXBwQWN0aXZpdHksXG4gICAgYWN0aW9uOiBpbnRlbnRBY3Rpb24sXG4gICAgY2F0ZWdvcnk6IGludGVudENhdGVnb3J5LFxuICAgIGZsYWdzOiBpbnRlbnRGbGFncyxcbiAgICBvcHRpb25hbEludGVudEFyZ3VtZW50cyxcbiAgICBzdG9wQXBwOiAhZG9udFN0b3BBcHBPblJlc2V0XG4gIH07XG4gIHRoaXMuX2NhY2hlZEFjdGl2aXR5QXJncyA9IHRoaXMuX2NhY2hlZEFjdGl2aXR5QXJncyB8fCB7fTtcbiAgdGhpcy5fY2FjaGVkQWN0aXZpdHlBcmdzW2Ake2FyZ3Mud2FpdFBrZ30vJHthcmdzLndhaXRBY3Rpdml0eX1gXSA9IGFyZ3M7XG4gIGF3YWl0IHRoaXMuYWRiLnN0YXJ0QXBwKGFyZ3MpO1xufTtcblxuY29tbWFuZHMucmVzZXQgPSBhc3luYyBmdW5jdGlvbiByZXNldCAoKSB7XG4gIGF3YWl0IGFuZHJvaWRIZWxwZXJzLnJlc2V0QXBwKHRoaXMuYWRiLCBPYmplY3QuYXNzaWduKHt9LCB0aGlzLm9wdHMsIHtmYXN0UmVzZXQ6IHRydWV9KSk7XG4gIC8vIHJlc2V0IGNvbnRleHQgc2luY2Ugd2UgZG9uJ3Qga25vdyB3aGF0IGtpbmQgb24gY29udGV4dCB3ZSB3aWxsIGVuZCB1cCBhZnRlciBhcHAgbGF1bmNoLlxuICBhd2FpdCB0aGlzLnNldENvbnRleHQoKTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuaXNDaHJvbWVTZXNzaW9uID8gdGhpcy5zdGFydENocm9tZVNlc3Npb24oKSA6IHRoaXMuc3RhcnRBVVQoKTtcbn07XG5cbmNvbW1hbmRzLnN0YXJ0QVVUID0gYXN5bmMgZnVuY3Rpb24gc3RhcnRBVVQgKCkge1xuICBhd2FpdCB0aGlzLmFkYi5zdGFydEFwcCh7XG4gICAgcGtnOiB0aGlzLm9wdHMuYXBwUGFja2FnZSxcbiAgICBhY3Rpdml0eTogdGhpcy5vcHRzLmFwcEFjdGl2aXR5LFxuICAgIGFjdGlvbjogdGhpcy5vcHRzLmludGVudEFjdGlvbixcbiAgICBjYXRlZ29yeTogdGhpcy5vcHRzLmludGVudENhdGVnb3J5LFxuICAgIGZsYWdzOiB0aGlzLm9wdHMuaW50ZW50RmxhZ3MsXG4gICAgd2FpdFBrZzogdGhpcy5vcHRzLmFwcFdhaXRQYWNrYWdlLFxuICAgIHdhaXRBY3Rpdml0eTogdGhpcy5vcHRzLmFwcFdhaXRBY3Rpdml0eSxcbiAgICB3YWl0Rm9yTGF1bmNoOiB0aGlzLm9wdHMuYXBwV2FpdEZvckxhdW5jaCxcbiAgICB3YWl0RHVyYXRpb246IHRoaXMub3B0cy5hcHBXYWl0RHVyYXRpb24sXG4gICAgb3B0aW9uYWxJbnRlbnRBcmd1bWVudHM6IHRoaXMub3B0cy5vcHRpb25hbEludGVudEFyZ3VtZW50cyxcbiAgICBzdG9wQXBwOiAhdGhpcy5vcHRzLmRvbnRTdG9wQXBwT25SZXNldCxcbiAgICB1c2VyOiB0aGlzLm9wdHMudXNlclByb2ZpbGUsXG4gIH0pO1xufTtcblxuLy8gd2Ugb3ZlcnJpZGUgc2V0VXJsIHRvIHRha2UgYW4gYW5kcm9pZCBVUkkgd2hpY2ggY2FuIGJlIHVzZWQgZm9yIGRlZXAtbGlua2luZ1xuLy8gaW5zaWRlIGFuIGFwcCwgc2ltaWxhciB0byBzdGFydGluZyBhbiBpbnRlbnRcbmNvbW1hbmRzLnNldFVybCA9IGFzeW5jIGZ1bmN0aW9uIHNldFVybCAodXJpKSB7XG4gIGF3YWl0IHRoaXMuYWRiLnN0YXJ0VXJpKHVyaSwgdGhpcy5vcHRzLmFwcFBhY2thZ2UpO1xufTtcblxuLy8gY2xvc2luZyBhcHAgdXNpbmcgZm9yY2Ugc3RvcFxuY29tbWFuZHMuY2xvc2VBcHAgPSBhc3luYyBmdW5jdGlvbiBjbG9zZUFwcCAoKSB7XG4gIGF3YWl0IHRoaXMuYWRiLmZvcmNlU3RvcCh0aGlzLm9wdHMuYXBwUGFja2FnZSk7XG4gIC8vIHJlc2V0IGNvbnRleHQgc2luY2Ugd2UgZG9uJ3Qga25vdyB3aGF0IGtpbmQgb24gY29udGV4dCB3ZSB3aWxsIGVuZCB1cCBhZnRlciBhcHAgbGF1bmNoLlxuICBhd2FpdCB0aGlzLnNldENvbnRleHQoKTtcbn07XG5cbmNvbW1hbmRzLmdldERpc3BsYXlEZW5zaXR5ID0gYXN5bmMgZnVuY3Rpb24gZ2V0RGlzcGxheURlbnNpdHkgKCkge1xuICAvLyBmaXJzdCB0cnkgdGhlIHByb3BlcnR5IGZvciBkZXZpY2VzXG4gIGxldCBvdXQgPSBhd2FpdCB0aGlzLmFkYi5zaGVsbChbJ2dldHByb3AnLCAncm8uc2YubGNkX2RlbnNpdHknXSk7XG4gIGlmIChvdXQpIHtcbiAgICBsZXQgdmFsID0gcGFyc2VJbnQob3V0LCAxMCk7XG4gICAgLy8gaWYgdGhlIHZhbHVlIGlzIE5hTiwgdHJ5IGdldHRpbmcgdGhlIGVtdWxhdG9yIHByb3BlcnR5XG4gICAgaWYgKCFpc05hTih2YWwpKSB7XG4gICAgICByZXR1cm4gdmFsO1xuICAgIH1cbiAgICBsb2cuZGVidWcoYFBhcnNlZCBkZW5zaXR5IHZhbHVlIHdhcyBOYU46IFwiJHtvdXR9XCJgKTtcbiAgfVxuICAvLyBmYWxsYmFjayB0byB0cnlpbmcgcHJvcGVydHkgZm9yIGVtdWxhdG9yc1xuICBvdXQgPSBhd2FpdCB0aGlzLmFkYi5zaGVsbChbJ2dldHByb3AnLCAncWVtdS5zZi5sY2RfZGVuc2l0eSddKTtcbiAgaWYgKG91dCkge1xuICAgIGxldCB2YWwgPSBwYXJzZUludChvdXQsIDEwKTtcbiAgICBpZiAoIWlzTmFOKHZhbCkpIHtcbiAgICAgIHJldHVybiB2YWw7XG4gICAgfVxuICAgIGxvZy5kZWJ1ZyhgUGFyc2VkIGRlbnNpdHkgdmFsdWUgd2FzIE5hTjogXCIke291dH1cImApO1xuICB9XG4gIC8vIGNvdWxkbid0IGdldCBhbnl0aGluZywgc28gZXJyb3Igb3V0XG4gIGxvZy5lcnJvckFuZFRocm93KCdGYWlsZWQgdG8gZ2V0IGRpc3BsYXkgZGVuc2l0eSBwcm9wZXJ0eS4nKTtcbn07XG5cbi8qKlxuICogUGFyc2VzIHRoZSBnaXZlbiB3aW5kb3cgbWFuYWdlciBTdXJmYWNlIHN0cmluZyB0byBnZXQgaW5mby5cbiAqIEBwYXJhbSBsaW5lOiBUbyBwYXJzZS4gVGhpcyBpcyBhc3N1bWVkIHRvIGJlIHZhbGlkLlxuICogQHJldHVybjogVmlzaWJpbGl0eSBhbmQgYm91bmRzIG9mIHRoZSBTdXJmYWNlLlxuICovXG5mdW5jdGlvbiBwYXJzZVN1cmZhY2VMaW5lIChsaW5lKSB7XG4gIC8vIHRoZSBzdXJmYWNlIGJvdW5kcyBhcmUgaW4gdGhlIGZvcm1hdDpcbiAgLy8gXCJyZWN0PSgwLjAsMTE4NC4wKSA3NjguMCB4IDk2LjBcIlxuICAvLyAgICAgICBeIGxvY2F0aW9uICAgXiBzaXplXG4gIC8vIGN1dCBvdXQgdGhlIHN0dWZmIGJlZm9yZSB0aGUgJ3JlY3QnIGFuZCB0aGVuIHNwbGl0IHRoZSBudW1iZXJzIGFwYXJ0XG4gIGxldCBib3VuZHMgPSBsaW5lLnNwbGl0KCdyZWN0PScpWzFdXG4gIC5yZXBsYWNlKC9bKCksIHhdKy9nLCAnICcpXG4gIC50cmltKClcbiAgLnNwbGl0KCcgJyk7XG5cbiAgcmV0dXJuIHtcbiAgICB2aXNpYmxlOiAobGluZS5pbmRleE9mKCdzaG93bj10cnVlJykgIT09IC0xKSxcbiAgICB4OiBwYXJzZUZsb2F0KGJvdW5kc1swXSksXG4gICAgeTogcGFyc2VGbG9hdChib3VuZHNbMV0pLFxuICAgIHdpZHRoOiBwYXJzZUZsb2F0KGJvdW5kc1syXSksXG4gICAgaGVpZ2h0OiBwYXJzZUZsb2F0KGJvdW5kc1szXSlcbiAgfTtcbn1cblxuLyoqXG4gKiBFeHRyYWN0cyBzdGF0dXMgYW5kIG5hdmlnYXRpb24gYmFyIGluZm9ybWF0aW9uIGZyb20gdGhlIHdpbmRvdyBtYW5hZ2VyIG91dHB1dC5cbiAqIEBwYXJhbSBsaW5lczogT3V0cHV0IGZyb20gZHVtcHN5cyBjb21tYW5kXG4gKiBAcmV0dXJuOiBWaXNpYmlsaXR5IGFuZCBib3VuZHMgaW5mbyBvZiBzdGF0dXMgYW5kIG5hdmlnYXRpb24gYmFyXG4gKi9cbmZ1bmN0aW9uIHBhcnNlV2luZG93cyAobGluZXMpIHtcbiAgbGV0IGF0U3RhdHVzQmFyID0gZmFsc2U7XG4gIGxldCBhdE5hdkJhciA9IGZhbHNlO1xuICBsZXQgc3RhdHVzQmFyO1xuICBsZXQgbmF2aWdhdGlvbkJhcjtcbiAgLy8gdGhlIHdpbmRvdyBtYW5hZ2VyIG91dHB1dCBsb29rcyBsaWtlOlxuICAvLyBXaW5kb3cgIzEgLi4uIFdpbmRvd0lEXG4gIC8vICAgQSBidW5jaCBvZiBwcm9wZXJ0aWVzXG4gIC8vIFdpbmRvdyAjMiAuLi4gV2luZG93SURcbiAgLy8gICBBIGJ1bmNoIG9mIHByb3BlcnRpZXNcbiAgbGluZXMuc3BsaXQoJ1xcbicpLmZvckVhY2goKGxpbmUpID0+IHtcbiAgICAvLyB0aGUgc3RhcnQgb2YgYSBuZXcgd2luZG93IHNlY3Rpb25cbiAgICBpZiAobGluZS5pbmRleE9mKCcgIFdpbmRvdyAjJykgIT09IC0xKSB7XG4gICAgICAvLyBkZXRlcm1pbmUgd2hpY2ggc2VjdGlvbiB3ZSdyZSBpblxuICAgICAgLy8gb25seSBvbmUgd2lsbCBiZSB0cnVlXG4gICAgICBhdFN0YXR1c0JhciA9IChsaW5lLmluZGV4T2YoJ1N0YXR1c0JhcicpICE9PSAtMSk7XG4gICAgICBhdE5hdkJhciA9IChsaW5lLmluZGV4T2YoJ05hdmlnYXRpb25CYXInKSAhPT0gLTEpO1xuICAgICAgLy8gZG9uJ3QgbmVlZCBhbnl0aGluZyBlbHNlLiBtb3ZlIHRvIG5leHQgbGluZVxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBvbmNlIHdlJ3JlIGluIGEgd2luZG93IHNlY3Rpb24sIGxvb2sgZm9yIHRoZSBzdXJmYWNlIGRhdGEgbGluZVxuICAgIGlmIChsaW5lLmluZGV4T2YoJyAgICAgIFN1cmZhY2U6JykgPT09IC0xKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChhdFN0YXR1c0Jhcikge1xuICAgICAgc3RhdHVzQmFyID0gcGFyc2VTdXJmYWNlTGluZShsaW5lKTtcbiAgICAgIGF0U3RhdHVzQmFyID0gZmFsc2U7XG4gICAgfSBlbHNlIGlmIChhdE5hdkJhcikge1xuICAgICAgbmF2aWdhdGlvbkJhciA9IHBhcnNlU3VyZmFjZUxpbmUobGluZSk7XG4gICAgICBhdE5hdkJhciA9IGZhbHNlO1xuICAgIH1cbiAgfSk7XG5cbiAgaWYgKCFzdGF0dXNCYXIpIHtcbiAgICBsb2cuZXJyb3JBbmRUaHJvdygnRmFpbGVkIHRvIHBhcnNlIHN0YXR1cyBiYXIgaW5mb3JtYXRpb24uJyk7XG4gIH1cbiAgaWYgKCFuYXZpZ2F0aW9uQmFyKSB7XG4gICAgbG9nLmVycm9yQW5kVGhyb3coJ0ZhaWxlZCB0byBwYXJzZSBuYXZpZ2F0aW9uIGJhciBpbmZvcm1hdGlvbi4nKTtcbiAgfVxuXG4gIHJldHVybiB7c3RhdHVzQmFyLCBuYXZpZ2F0aW9uQmFyfTtcbn1cblxuY29tbWFuZHMuZ2V0U3lzdGVtQmFycyA9IGFzeW5jIGZ1bmN0aW9uIGdldFN5c3RlbUJhcnMgKCkge1xuICBsZXQgb3V0ID0gYXdhaXQgdGhpcy5hZGIuc2hlbGwoWydkdW1wc3lzJywgJ3dpbmRvdycsICd3aW5kb3dzJ10pO1xuICBpZiAoIW91dCkge1xuICAgIGxvZy5lcnJvckFuZFRocm93KCdEaWQgbm90IGdldCB3aW5kb3cgbWFuYWdlciBvdXRwdXQuJyk7XG4gIH1cbiAgcmV0dXJuIHBhcnNlV2luZG93cyhvdXQpO1xufTtcblxuY29tbWFuZHMubW9iaWxlUGVyZm9ybUVkaXRvckFjdGlvbiA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVBlcmZvcm1FZGl0b3JBY3Rpb24gKG9wdHMgPSB7fSkge1xuICBjb25zdCB7YWN0aW9ufSA9IG9wdHM7XG4gIGlmICghdXRpbC5oYXNWYWx1ZShhY3Rpb24pKSB7XG4gICAgbG9nLmVycm9yQW5kVGhyb3coYCdhY3Rpb24nIGFyZ3VtZW50IGlzIHJlcXVpcmVkYCk7XG4gIH1cblxuICBhd2FpdCB0aGlzLmFkYi5wZXJmb3JtRWRpdG9yQWN0aW9uKGFjdGlvbik7XG59O1xuXG5jb25zdCBQRVJNSVNTSU9OX0FDVElPTiA9IHtcbiAgR1JBTlQ6ICdncmFudCcsXG4gIFJFVk9LRTogJ3Jldm9rZScsXG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IENoYW5nZVBlcm1pc3Npb25zT3B0aW9uc1xuICogQHByb3BlcnR5IHshc3RyaW5nfEFycmF5PHN0cmluZz59IHBlcm1pc3Npb25zIC0gVGhlIGZ1bGwgbmFtZSBvZiB0aGUgcGVybWlzc2lvbiB0byBiZSBjaGFuZ2VkXG4gKiBvciBhIGxpc3Qgb2YgcGVybWlzc2lvbnMuIE1hbmRhdG9yeSBhcmd1bWVudC5cbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfSBhcHBQYWNrYWdlIFt0aGlzLm9wdHMuYXBwUGFja2FnZV0gLSBUaGUgYXBwbGljYXRpb24gcGFja2FnZSB0byBzZXQgY2hhbmdlXG4gKiBwZXJtaXNzaW9ucyBvbi4gRGVmYXVsdHMgdG8gdGhlIHBhY2thZ2UgbmFtZSB1bmRlciB0ZXN0LlxuICogQHByb3BlcnR5IHtzdHJpbmd9IGFjdGlvbiBbZ3JhbnRdIC0gT25lIG9mIGBQRVJNSVNTSU9OX0FDVElPTmAgdmFsdWVzXG4gKi9cblxuLyoqXG4gKiBDaGFuZ2VzIHBhY2thZ2UgcGVybWlzc2lvbnMgaW4gcnVudGltZS5cbiAqXG4gKiBAcGFyYW0gez9DaGFuZ2VQZXJtaXNzaW9uc09wdGlvbnN9IG9wdHMgLSBBdmFpbGFibGUgb3B0aW9ucyBtYXBwaW5nLlxuICogQHRocm93cyB7RXJyb3J9IGlmIHRoZXJlIHdhcyBhIGZhaWx1cmUgd2hpbGUgY2hhbmdpbmcgcGVybWlzc2lvbnNcbiAqL1xuY29tbWFuZHMubW9iaWxlQ2hhbmdlUGVybWlzc2lvbnMgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVDaGFuZ2VQZXJtaXNzaW9ucyAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtcbiAgICBwZXJtaXNzaW9ucyxcbiAgICBhcHBQYWNrYWdlID0gdGhpcy5vcHRzLmFwcFBhY2thZ2UsXG4gICAgYWN0aW9uID0gUEVSTUlTU0lPTl9BQ1RJT04uR1JBTlQsXG4gIH0gPSBvcHRzO1xuICBpZiAoIXV0aWwuaGFzVmFsdWUocGVybWlzc2lvbnMpKSB7XG4gICAgbG9nLmVycm9yQW5kVGhyb3coYCdwZXJtaXNzaW9ucycgYXJndW1lbnQgaXMgcmVxdWlyZWRgKTtcbiAgfVxuXG4gIGxldCBhY3Rpb25GdW5jO1xuICBzd2l0Y2ggKF8udG9Mb3dlcihhY3Rpb24pKSB7XG4gICAgY2FzZSBQRVJNSVNTSU9OX0FDVElPTi5HUkFOVDpcbiAgICAgIGFjdGlvbkZ1bmMgPSAoYXBwUGFja2FnZSwgcGVybWlzc2lvbikgPT4gdGhpcy5hZGIuZ3JhbnRQZXJtaXNzaW9uKGFwcFBhY2thZ2UsIHBlcm1pc3Npb24pO1xuICAgICAgYnJlYWs7XG4gICAgY2FzZSBQRVJNSVNTSU9OX0FDVElPTi5SRVZPS0U6XG4gICAgICBhY3Rpb25GdW5jID0gKGFwcFBhY2thZ2UsIHBlcm1pc3Npb24pID0+IHRoaXMuYWRiLnJldm9rZVBlcm1pc3Npb24oYXBwUGFja2FnZSwgcGVybWlzc2lvbik7XG4gICAgICBicmVhaztcbiAgICBkZWZhdWx0OlxuICAgICAgbG9nLmVycm9yQW5kVGhyb3coYFVua25vd24gYWN0aW9uICcke2FjdGlvbn0nLiBgICtcbiAgICAgICAgYE9ubHkgJHtKU09OLnN0cmluZ2lmeShfLnZhbHVlcyhQRVJNSVNTSU9OX0FDVElPTikpfSBhY3Rpb25zIGFyZSBzdXBwb3J0ZWRgKTtcbiAgICAgIGJyZWFrO1xuICB9XG4gIGZvciAoY29uc3QgcGVybWlzc2lvbiBvZiAoXy5pc0FycmF5KHBlcm1pc3Npb25zKSA/IHBlcm1pc3Npb25zIDogW3Blcm1pc3Npb25zXSkpIHtcbiAgICBhd2FpdCBhY3Rpb25GdW5jKGFwcFBhY2thZ2UsIHBlcm1pc3Npb24pO1xuICB9XG59O1xuXG5jb25zdCBQRVJNSVNTSU9OU19UWVBFID0ge1xuICBERU5JRUQ6ICdkZW5pZWQnLFxuICBHUkFOVEVEOiAnZ3JhbnRlZCcsXG4gIFJFUVVFU1RFRDogJ3JlcXVlc3RlZCcsXG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IEdldFBlcm1pc3Npb25zT3B0aW9uc1xuICogQHByb3BlcnR5IHtzdHJpbmd9IHR5cGUgW3JlcXVlc3RlZF0gLSBPbmUgb2YgcG9zc2libGUgcGVybWlzc2lvbiB0eXBlcyB0byBnZXQuXG4gKiBDYW4gYmUgYW55IG9mIGBQRVJNSVNTSU9OU19UWVBFYCB2YWx1ZXMuXG4gKiBAcHJvcGVydHkge3N0cmluZ30gYXBwUGFja2FnZSBbdGhpcy5vcHRzLmFwcFBhY2thZ2VdIC0gVGhlIGFwcGxpY2F0aW9uIHBhY2thZ2UgdG8gc2V0IGNoYW5nZVxuICogcGVybWlzc2lvbnMgb24uIERlZmF1bHRzIHRvIHRoZSBwYWNrYWdlIG5hbWUgdW5kZXIgdGVzdC5cbiAqL1xuXG4vKipcbiAqIEdldHMgcnVudGltZSBwZXJtaXNzaW9ucyBsaXN0IGZvciB0aGUgZ2l2ZW4gYXBwbGljYXRpb24gcGFja2FnZS5cbiAqXG4gKiBAcGFyYW0ge0dldFBlcm1pc3Npb25zT3B0aW9uc30gb3B0cyAtIEF2YWlsYWJsZSBvcHRpb25zIG1hcHBpbmcuXG4gKiBAcmV0dXJucyB7QXJyYXk8c3RyaW5nPn0gVGhlIGxpc3Qgb2YgcmV0cmlldmVkIHBlcm1pc3Npb25zIGZvciB0aGUgZ2l2ZW4gdHlwZVxuICogKGNhbiBhbHNvIGJlIGVtcHR5KS5cbiAqIEB0aHJvd3Mge0Vycm9yfSBpZiB0aGVyZSB3YXMgYW4gZXJyb3Igd2hpbGUgZ2V0dGluZyBwZXJtaXNzaW9ucy5cbiAqL1xuY29tbWFuZHMubW9iaWxlR2V0UGVybWlzc2lvbnMgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVHZXRQZXJtaXNzaW9ucyAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtcbiAgICB0eXBlID0gUEVSTUlTU0lPTlNfVFlQRS5SRVFVRVNURUQsXG4gICAgYXBwUGFja2FnZSA9IHRoaXMub3B0cy5hcHBQYWNrYWdlLFxuICB9ID0gb3B0cztcblxuICBsZXQgYWN0aW9uRnVuYztcbiAgc3dpdGNoIChfLnRvTG93ZXIodHlwZSkpIHtcbiAgICBjYXNlIFBFUk1JU1NJT05TX1RZUEUuUkVRVUVTVEVEOlxuICAgICAgYWN0aW9uRnVuYyA9IChhcHBQYWNrYWdlKSA9PiB0aGlzLmFkYi5nZXRSZXFQZXJtaXNzaW9ucyhhcHBQYWNrYWdlKTtcbiAgICAgIGJyZWFrO1xuICAgIGNhc2UgUEVSTUlTU0lPTlNfVFlQRS5HUkFOVEVEOlxuICAgICAgYWN0aW9uRnVuYyA9IChhcHBQYWNrYWdlKSA9PiB0aGlzLmFkYi5nZXRHcmFudGVkUGVybWlzc2lvbnMoYXBwUGFja2FnZSk7XG4gICAgICBicmVhaztcbiAgICBjYXNlIFBFUk1JU1NJT05TX1RZUEUuREVOSUVEOlxuICAgICAgYWN0aW9uRnVuYyA9IChhcHBQYWNrYWdlKSA9PiB0aGlzLmFkYi5nZXREZW5pZWRQZXJtaXNzaW9ucyhhcHBQYWNrYWdlKTtcbiAgICAgIGJyZWFrO1xuICAgIGRlZmF1bHQ6XG4gICAgICBsb2cuZXJyb3JBbmRUaHJvdyhgVW5rbm93biBwZXJtaXNzaW9ucyB0eXBlICcke3R5cGV9Jy4gYCArXG4gICAgICAgIGBPbmx5ICR7SlNPTi5zdHJpbmdpZnkoXy52YWx1ZXMoUEVSTUlTU0lPTlNfVFlQRSkpfSB0eXBlcyBhcmUgc3VwcG9ydGVkYCk7XG4gICAgICBicmVhaztcbiAgfVxuICByZXR1cm4gYXdhaXQgYWN0aW9uRnVuYyhhcHBQYWNrYWdlKTtcbn07XG5cbi8qKlxuICogUmV0cmlldmVzIHRoZSBsaXN0IG9mIHJlY2VudCBzeXN0ZW0gbm90aWZpY2F0aW9ucy5cbiAqXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBTZWUgdGhlIGRvY3VtZW50YXRpb24gb24gYGFkYi5nZXROb3RpZmljYXRpb25zYCBmb3JcbiAqIG1vcmUgZGV0YWlsc1xuICovXG5jb21tYW5kcy5tb2JpbGVHZXROb3RpZmljYXRpb25zID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlR2V0Tm90aWZpY2F0aW9ucyAoKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmFkYi5nZXROb3RpZmljYXRpb25zKCk7XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IFNtc0xpc3RPcHRpb25zXG4gKiBAcHJvcGVydHkge251bWJlcn0gbWF4IFsxMDBdIC0gVGhlIG1heGltdW0gY291bnQgb2YgcmVjZW50IFNNUyBtZXNzYWdlc1xuICogdG8gcmV0cmlldmVcbiAqL1xuXG4vKipcbiAqIFJldHJpZXZlcyB0aGUgbGlzdCBvZiByZWNlbnQgU01TIG1lc3NhZ2VzIHdpdGggdGhlaXIgcHJvcGVydGllcy5cbiAqXG4gKiBAcGFyYW0ge1Ntc0xpc3RPcHRpb25zfSBvcHRzXG4gKiBAcmV0dXJucyB7T2JqZWN0fSBTZWUgdGhlIGRvY3VtZW50YXRpb24gb24gYGFkYi5nZXRTbXNMaXN0YCBmb3JcbiAqIG1vcmUgZGV0YWlsc1xuICovXG5jb21tYW5kcy5tb2JpbGVMaXN0U21zID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlTGlzdFNtcyAob3B0cyA9IHt9KSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmFkYi5nZXRTbXNMaXN0KG9wdHMpO1xufTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBVbmxvY2tPcHRpb25zXG4gKiBAcHJvcGVydHkge3N0cmluZ30ga2V5IFRoZSB1bmxvY2sga2V5LiBUaGUgdmFsdWUgb2YgdGhpcyBrZXkgZGVwZW5kc1xuICogb24gdGhlIGFjdHVhbCB1bmxvY2sgdHlwZSBhbmQgY291bGQgYmUgYSBwaW4vcGFzc3dvcmQvcGF0dGVybiB2YWx1ZSBvclxuICogYSBiaW9tZXRyaWMgZmluZ2VyIGlkLlxuICogQHByb3BlcnR5IHtzdHJpbmd9IHR5cGUgVGhlIHVubG9jayB0eXBlLiBUaGUgZm9sbG93aW5nIHVubG9jayB0eXBlc1xuICogYXJlIHN1cHBvcnRlZDogYHBpbmAsIGBwaW5XaXRoS2V5RXZlbnRgLCBgcGFzc3dvcmRgLCBgcGF0dGVybmAgYW5kIGBmaW5nZXJwcmludGAuXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IHN0cmF0ZWd5IEVpdGhlciAnbG9ja3NldHRpbmdzJyAoZGVmYXVsdCkgb3IgJ3VpYXV0b21hdG9yJy5cbiAqIFNldHRpbmcgaXQgdG8gJ3VpYXV0b21hdG9yJyB3aWxsIGVuZm9yY2UgdGhlIGRyaXZlciB0byBhdm9pZCB1c2luZyBzcGVjaWFsXG4gKiBBREIgc2hvcnRjdXRzIGluIG9yZGVyIHRvIHNwZWVkIHVwIHRoZSB1bmxvY2sgcHJvY2VkdXJlLlxuICogQHByb3BlcnR5IHs/bnVtYmVyfSB0aW1lb3V0TXMgWzIwMDBdIFRoZSBtYXhpbXVtIHRpbWUgaW4gbWlsbGlzZWNvbmRzXG4gKiB0byB3YWl0IHVudGlsIHRoZSBzY3JlZW4gZ2V0cyB1bmxvY2tlZFxuICovXG5cbi8qKlxuICogVW5sb2NrcyB0aGUgZGV2aWNlIGlmIGl0IGlzIGxvY2tlZC4gTm9vcCBpZiB0aGUgZGV2aWNlJ3Mgc2NyZWVuIGlzIG5vdCBsb2NrZWQuXG4gKlxuICogQHBhcmFtIHs/VW5sb2NrT3B0aW9uc30gb3B0c1xuICogQHRocm93cyB7RXJyb3J9IGlmIHVubG9jayBvcGVyYXRpb24gZmFpbHMgb3IgdGhlIHByb3ZpZGVkXG4gKiBhcmd1bWVudHMgYXJlIG5vdCB2YWxpZFxuICovXG5jb21tYW5kcy5tb2JpbGVVbmxvY2sgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVVbmxvY2sgKG9wdHMgPSB7fSkge1xuICBjb25zdCB7IGtleSwgdHlwZSwgc3RyYXRlZ3ksIHRpbWVvdXRNcyB9ID0gb3B0cztcbiAgYXdhaXQgYW5kcm9pZEhlbHBlcnMudW5sb2NrKHRoaXMsIHRoaXMuYWRiLCB7XG4gICAgdW5sb2NrS2V5OiBrZXksXG4gICAgdW5sb2NrVHlwZTogdHlwZSxcbiAgICB1bmxvY2tTdHJhdGVneTogc3RyYXRlZ3ksXG4gICAgdW5sb2NrU3VjY2Vzc1RpbWVvdXQ6IHRpbWVvdXRNcyxcbiAgfSk7XG59O1xuXG5PYmplY3QuYXNzaWduKGV4dGVuc2lvbnMsIGNvbW1hbmRzLCBoZWxwZXJzKTtcbmV4cG9ydCB7IGNvbW1hbmRzLCBoZWxwZXJzIH07XG5leHBvcnQgZGVmYXVsdCBleHRlbnNpb25zO1xuLy8gZm9yIHVuaXQgdGVzdHNcbmV4cG9ydCB7IHBhcnNlV2luZG93cywgcGFyc2VTdXJmYWNlTGluZSB9O1xuIl0sImZpbGUiOiJsaWIvY29tbWFuZHMvZ2VuZXJhbC5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLi8uLiJ9
|
|
@@ -65,6 +65,10 @@ function parseIntentSpec(opts = {}) {
|
|
|
65
65
|
resultArgs.push('-n', component);
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
+
if (opts.package) {
|
|
69
|
+
resultArgs.push('-p', opts.package);
|
|
70
|
+
}
|
|
71
|
+
|
|
68
72
|
if (extras) {
|
|
69
73
|
if (!_lodash.default.isArray(extras)) {
|
|
70
74
|
throw new _appiumBaseDriver.errors.InvalidArgumentError(`'extras' must be an array`);
|
|
@@ -204,4 +208,4 @@ var _default = commands;
|
|
|
204
208
|
exports.default = _default;require('source-map-support').install();
|
|
205
209
|
|
|
206
210
|
|
|
207
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9pbnRlbnQuanMiXSwibmFtZXMiOlsiTk9fVkFMVUVfQVJHX1RZUEUiLCJTVVBQT1JURURfRVhUUkFfVFlQRVMiLCJBUElfTEVWRUxfQU5EUk9JRF84IiwiY29tbWFuZHMiLCJwYXJzZUludGVudFNwZWMiLCJvcHRzIiwiaW50ZW50IiwiYWN0aW9uIiwidXJpIiwibWltZVR5cGUiLCJpZGVudGlmaWVyIiwiY2F0ZWdvcmllcyIsImNvbXBvbmVudCIsImV4dHJhcyIsImZsYWdzIiwicmVzdWx0QXJncyIsInB1c2giLCJfIiwiaXNOaWwiLCJpc0FycmF5IiwiZmxhdE1hcCIsIm1hcCIsImNOYW1lIiwiZXJyb3JzIiwiSW52YWxpZEFyZ3VtZW50RXJyb3IiLCJpdGVtIiwidHlwZSIsImtleSIsInZhbHVlIiwiaW5jbHVkZXMiLCJpc0VtcHR5IiwiaXNTdHJpbmciLCJ0cmltIiwiSlNPTiIsInN0cmluZ2lmeSIsImlzVW5kZWZpbmVkIiwibW9iaWxlU3RhcnRBY3Rpdml0eSIsInVzZXIiLCJ3YWl0Iiwic3RvcCIsIndpbmRvd2luZ01vZGUiLCJhY3Rpdml0eVR5cGUiLCJkaXNwbGF5IiwiY21kIiwiYWRiIiwiZ2V0QXBpTGV2ZWwiLCJzaGVsbCIsIm1vYmlsZUJyb2FkY2FzdCIsInJlY2VpdmVyUGVybWlzc2lvbiIsImFsbG93QmFja2dyb3VuZEFjdGl2aXR5U3RhcnRzIiwibW9iaWxlU3RhcnRTZXJ2aWNlIiwiZm9yZWdyb3VuZCIsIm1vYmlsZVN0b3BTZXJ2aWNlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUVBLE1BQU1BLGlCQUFpQixHQUFHLElBQTFCO0FBQ0EsTUFBTUMscUJBQXFCLEdBQUcsQ0FDNUIsR0FENEIsRUFDdkJELGlCQUR1QixFQUNKLEdBREksRUFDQyxHQURELEVBQ00sR0FETixFQUNXLEdBRFgsRUFDZ0IsR0FEaEIsRUFDcUIsSUFEckIsRUFFNUIsSUFGNEIsRUFFdEIsS0FGc0IsRUFFZixJQUZlLEVBRVQsS0FGUyxFQUVGLElBRkUsRUFFSSxLQUZKLEVBRVcsSUFGWCxFQUVpQixLQUZqQixDQUE5QjtBQUlBLE1BQU1FLG1CQUFtQixHQUFHLEVBQTVCO0FBRUEsTUFBTUMsUUFBUSxHQUFHLEVBQWpCOzs7QUFFQSxTQUFTQyxlQUFULENBQTBCQyxJQUFJLEdBQUcsRUFBakMsRUFBcUM7QUFDbkMsUUFBTTtBQUNKQyxJQUFBQSxNQURJO0FBRUpDLElBQUFBLE1BRkk7QUFHSkMsSUFBQUEsR0FISTtBQUlKQyxJQUFBQSxRQUpJO0FBS0pDLElBQUFBLFVBTEk7QUFNSkMsSUFBQUEsVUFOSTtBQU9KQyxJQUFBQSxTQVBJO0FBUUpDLElBQUFBLE1BUkk7QUFTSkMsSUFBQUE7QUFUSSxNQVVGVCxJQVZKO0FBV0EsUUFBTVUsVUFBVSxHQUFHLEVBQW5COztBQUNBLE1BQUlULE1BQUosRUFBWTtBQUNWUyxJQUFBQSxVQUFVLENBQUNDLElBQVgsQ0FBZ0JWLE1BQWhCO0FBQ0Q7O0FBQ0QsTUFBSUMsTUFBSixFQUFZO0FBQ1ZRLElBQUFBLFVBQVUsQ0FBQ0MsSUFBWCxDQUFnQixJQUFoQixFQUFzQlQsTUFBdEI7QUFDRDs7QUFDRCxNQUFJQyxHQUFKLEVBQVM7QUFDUE8sSUFBQUEsVUFBVSxDQUFDQyxJQUFYLENBQWdCLElBQWhCLEVBQXNCUixHQUF0QjtBQUNEOztBQUNELE1BQUlDLFFBQUosRUFBYztBQUNaTSxJQUFBQSxVQUFVLENBQUNDLElBQVgsQ0FBZ0IsSUFBaEIsRUFBc0JQLFFBQXRCO0FBQ0Q7O0FBQ0QsTUFBSSxDQUFDUSxnQkFBRUMsS0FBRixDQUFRUixVQUFSLENBQUwsRUFBMEI7QUFDeEJLLElBQUFBLFVBQVUsQ0FBQ0MsSUFBWCxDQUFnQixJQUFoQixFQUFzQk4sVUFBdEI7QUFDRDs7QUFDRCxNQUFJQyxVQUFKLEVBQWdCO0FBQ2QsUUFBSU0sZ0JBQUVFLE9BQUYsQ0FBVVIsVUFBVixDQUFKLEVBQTJCO0FBQ3pCSSxNQUFBQSxVQUFVLENBQUNDLElBQVgsQ0FBZ0IsR0FBSUMsZ0JBQUVHLE9BQUYsQ0FBVVQsVUFBVSxDQUFDVSxHQUFYLENBQWdCQyxLQUFELElBQVcsQ0FBQyxJQUFELEVBQU9BLEtBQVAsQ0FBMUIsQ0FBVixDQUFwQjtBQUNELEtBRkQsTUFFTztBQUNMUCxNQUFBQSxVQUFVLENBQUNDLElBQVgsQ0FBZ0IsSUFBaEIsRUFBc0JMLFVBQXRCO0FBQ0Q7QUFDRjs7QUFDRCxNQUFJQyxTQUFKLEVBQWU7QUFDYkcsSUFBQUEsVUFBVSxDQUFDQyxJQUFYLENBQWdCLElBQWhCLEVBQXNCSixTQUF0QjtBQUNEOztBQUNELE1BQUlDLE1BQUosRUFBWTtBQUNWLFFBQUksQ0FBQ0ksZ0JBQUVFLE9BQUYsQ0FBVU4sTUFBVixDQUFMLEVBQXdCO0FBQ3RCLFlBQU0sSUFBSVUseUJBQU9DLG9CQUFYLENBQWlDLDJCQUFqQyxDQUFOO0FBQ0Q7O0FBQ0QsU0FBSyxNQUFNQyxJQUFYLElBQW1CWixNQUFuQixFQUEyQjtBQUN6QixVQUFJLENBQUNJLGdCQUFFRSxPQUFGLENBQVVNLElBQVYsQ0FBTCxFQUFzQjtBQUNwQixjQUFNLElBQUlGLHlCQUFPQyxvQkFBWCxDQUFpQyxtQkFBa0JDLElBQUssb0JBQXhELENBQU47QUFDRDs7QUFDRCxZQUFNLENBQUNDLElBQUQsRUFBT0MsR0FBUCxFQUFZQyxLQUFaLElBQXFCSCxJQUEzQjs7QUFDQSxVQUFJLENBQUNSLGdCQUFFWSxRQUFGLENBQVc1QixxQkFBWCxFQUFrQ3lCLElBQWxDLENBQUwsRUFBOEM7QUFDNUMsY0FBTSxJQUFJSCx5QkFBT0Msb0JBQVgsQ0FDSCx3QkFBdUJFLElBQUssa0JBQTdCLEdBQ0Msd0NBQXVDekIscUJBQXNCLEVBRjFELENBQU47QUFJRDs7QUFDRCxVQUFJZ0IsZ0JBQUVhLE9BQUYsQ0FBVUgsR0FBVixLQUFtQlYsZ0JBQUVjLFFBQUYsQ0FBV0osR0FBWCxLQUFtQlYsZ0JBQUVlLElBQUYsQ0FBT0wsR0FBUCxNQUFnQixFQUExRCxFQUErRDtBQUM3RCxjQUFNLElBQUlKLHlCQUFPQyxvQkFBWCxDQUNILDRCQUEyQlMsSUFBSSxDQUFDQyxTQUFMLENBQWVULElBQWYsQ0FBcUIscUNBRDdDLENBQU47QUFHRDs7QUFDRCxVQUFJQyxJQUFJLEtBQUsxQixpQkFBYixFQUFnQztBQUM5QmUsUUFBQUEsVUFBVSxDQUFDQyxJQUFYLENBQWlCLE1BQUtVLElBQUssRUFBM0IsRUFBOEJDLEdBQTlCO0FBQ0QsT0FGRCxNQUVPLElBQUlWLGdCQUFFa0IsV0FBRixDQUFjUCxLQUFkLENBQUosRUFBMEI7QUFDL0IsY0FBTSxJQUFJTCx5QkFBT0Msb0JBQVgsQ0FDSCx5QkFBd0JFLElBQUssU0FBUU8sSUFBSSxDQUFDQyxTQUFMLENBQWVULElBQWYsQ0FBcUIsZUFBM0QsR0FDQyw0QkFGRyxDQUFOO0FBSUQsT0FMTSxNQUtBO0FBQ0xWLFFBQUFBLFVBQVUsQ0FBQ0MsSUFBWCxDQUFpQixNQUFLVSxJQUFLLEVBQTNCLEVBQThCQyxHQUE5QixFQUFtQ0MsS0FBbkM7QUFDRDtBQUNGO0FBQ0Y7O0FBQ0QsTUFBSWQsS0FBSixFQUFXO0FBQ1RDLElBQUFBLFVBQVUsQ0FBQ0MsSUFBWCxDQUFnQixJQUFoQixFQUFzQkYsS0FBdEI7QUFDRDs7QUFDRCxTQUFPQyxVQUFQO0FBQ0Q7O0FBZ0VEWixRQUFRLENBQUNpQyxtQkFBVCxHQUErQixlQUFlQSxtQkFBZixDQUFvQy9CLElBQUksR0FBRyxFQUEzQyxFQUErQztBQUM1RSxRQUFNO0FBQ0pnQyxJQUFBQSxJQURJO0FBRUpDLElBQUFBLElBRkk7QUFHSkMsSUFBQUEsSUFISTtBQUlKQyxJQUFBQSxhQUpJO0FBS0pDLElBQUFBLFlBTEk7QUFNSkMsSUFBQUE7QUFOSSxNQU9GckMsSUFQSjtBQVFBLFFBQU1zQyxHQUFHLEdBQUcsQ0FDVixJQURVLEVBQ0gsT0FBTSxLQUFLQyxHQUFMLENBQVNDLFdBQVQsRUFBTixJQUErQjNDLG1CQUFoQyxHQUF1RCxPQUF2RCxHQUFpRSxnQkFEN0QsQ0FBWjs7QUFHQSxNQUFJLENBQUNlLGdCQUFFQyxLQUFGLENBQVFtQixJQUFSLENBQUwsRUFBb0I7QUFDbEJNLElBQUFBLEdBQUcsQ0FBQzNCLElBQUosQ0FBUyxRQUFULEVBQW1CcUIsSUFBbkI7QUFDRDs7QUFDRCxNQUFJQyxJQUFKLEVBQVU7QUFDUkssSUFBQUEsR0FBRyxDQUFDM0IsSUFBSixDQUFTLElBQVQ7QUFDRDs7QUFDRCxNQUFJdUIsSUFBSixFQUFVO0FBQ1JJLElBQUFBLEdBQUcsQ0FBQzNCLElBQUosQ0FBUyxJQUFUO0FBQ0Q7O0FBQ0QsTUFBSSxDQUFDQyxnQkFBRUMsS0FBRixDQUFRc0IsYUFBUixDQUFMLEVBQTZCO0FBQzNCRyxJQUFBQSxHQUFHLENBQUMzQixJQUFKLENBQVMsaUJBQVQsRUFBNEJ3QixhQUE1QjtBQUNEOztBQUNELE1BQUksQ0FBQ3ZCLGdCQUFFQyxLQUFGLENBQVF1QixZQUFSLENBQUwsRUFBNEI7QUFDMUJFLElBQUFBLEdBQUcsQ0FBQzNCLElBQUosQ0FBUyxnQkFBVCxFQUEyQnlCLFlBQTNCO0FBQ0Q7O0FBQ0QsTUFBSSxDQUFDeEIsZ0JBQUVDLEtBQUYsQ0FBUXdCLE9BQVIsQ0FBTCxFQUF1QjtBQUNyQkMsSUFBQUEsR0FBRyxDQUFDM0IsSUFBSixDQUFTLFdBQVQsRUFBc0IwQixPQUF0QjtBQUNEOztBQUNEQyxFQUFBQSxHQUFHLENBQUMzQixJQUFKLENBQVMsR0FBSVosZUFBZSxDQUFDQyxJQUFELENBQTVCO0FBQ0EsU0FBTyxNQUFNLEtBQUt1QyxHQUFMLENBQVNFLEtBQVQsQ0FBZUgsR0FBZixDQUFiO0FBQ0QsQ0FoQ0Q7O0FBOERBeEMsUUFBUSxDQUFDNEMsZUFBVCxHQUEyQixlQUFlQSxlQUFmLENBQWdDMUMsSUFBSSxHQUFHLEVBQXZDLEVBQTJDO0FBQ3BFLFFBQU07QUFDSmdDLElBQUFBLElBREk7QUFFSlcsSUFBQUEsa0JBRkk7QUFHSkMsSUFBQUE7QUFISSxNQUlGNUMsSUFKSjtBQUtBLFFBQU1zQyxHQUFHLEdBQUcsQ0FBQyxJQUFELEVBQU8sV0FBUCxDQUFaOztBQUNBLE1BQUksQ0FBQzFCLGdCQUFFQyxLQUFGLENBQVFtQixJQUFSLENBQUwsRUFBb0I7QUFDbEJNLElBQUFBLEdBQUcsQ0FBQzNCLElBQUosQ0FBUyxRQUFULEVBQW1CcUIsSUFBbkI7QUFDRDs7QUFDRCxNQUFJVyxrQkFBSixFQUF3QjtBQUN0QkwsSUFBQUEsR0FBRyxDQUFDM0IsSUFBSixDQUFTLHVCQUFULEVBQWtDZ0Msa0JBQWxDO0FBQ0Q7O0FBQ0QsTUFBSUMsNkJBQUosRUFBbUM7QUFDakNOLElBQUFBLEdBQUcsQ0FBQzNCLElBQUosQ0FBUyxvQ0FBVDtBQUNEOztBQUNEMkIsRUFBQUEsR0FBRyxDQUFDM0IsSUFBSixDQUFTLEdBQUlaLGVBQWUsQ0FBQ0MsSUFBRCxDQUE1QjtBQUNBLFNBQU8sTUFBTSxLQUFLdUMsR0FBTCxDQUFTRSxLQUFULENBQWVILEdBQWYsQ0FBYjtBQUNELENBbEJEOztBQWlEQXhDLFFBQVEsQ0FBQytDLGtCQUFULEdBQThCLGVBQWVBLGtCQUFmLENBQW1DN0MsSUFBSSxHQUFHLEVBQTFDLEVBQThDO0FBQzFFLFFBQU07QUFDSmdDLElBQUFBLElBREk7QUFFSmMsSUFBQUE7QUFGSSxNQUdGOUMsSUFISjtBQUlBLFFBQU1zQyxHQUFHLEdBQUcsQ0FBQyxJQUFELENBQVo7O0FBQ0EsTUFBSSxPQUFNLEtBQUtDLEdBQUwsQ0FBU0MsV0FBVCxFQUFOLElBQStCM0MsbUJBQW5DLEVBQXdEO0FBQ3REeUMsSUFBQUEsR0FBRyxDQUFDM0IsSUFBSixDQUFTLGNBQVQ7QUFDRCxHQUZELE1BRU87QUFDTDJCLElBQUFBLEdBQUcsQ0FBQzNCLElBQUosQ0FBU21DLFVBQVUsR0FBRywwQkFBSCxHQUFnQyxlQUFuRDtBQUNEOztBQUNELE1BQUksQ0FBQ2xDLGdCQUFFQyxLQUFGLENBQVFtQixJQUFSLENBQUwsRUFBb0I7QUFDbEJNLElBQUFBLEdBQUcsQ0FBQzNCLElBQUosQ0FBUyxRQUFULEVBQW1CcUIsSUFBbkI7QUFDRDs7QUFDRE0sRUFBQUEsR0FBRyxDQUFDM0IsSUFBSixDQUFTLEdBQUlaLGVBQWUsQ0FBQ0MsSUFBRCxDQUE1QjtBQUNBLFNBQU8sTUFBTSxLQUFLdUMsR0FBTCxDQUFTRSxLQUFULENBQWVILEdBQWYsQ0FBYjtBQUNELENBaEJEOztBQTJDQXhDLFFBQVEsQ0FBQ2lELGlCQUFULEdBQTZCLGVBQWVBLGlCQUFmLENBQWtDL0MsSUFBSSxHQUFHLEVBQXpDLEVBQTZDO0FBQ3hFLFFBQU07QUFDSmdDLElBQUFBO0FBREksTUFFRmhDLElBRko7QUFHQSxRQUFNc0MsR0FBRyxHQUFHLENBQ1YsSUFEVSxFQUVULE9BQU0sS0FBS0MsR0FBTCxDQUFTQyxXQUFULEVBQU4sSUFBK0IzQyxtQkFBaEMsR0FBdUQsYUFBdkQsR0FBdUUsY0FGN0QsQ0FBWjs7QUFJQSxNQUFJLENBQUNlLGdCQUFFQyxLQUFGLENBQVFtQixJQUFSLENBQUwsRUFBb0I7QUFDbEJNLElBQUFBLEdBQUcsQ0FBQzNCLElBQUosQ0FBUyxRQUFULEVBQW1CcUIsSUFBbkI7QUFDRDs7QUFDRE0sRUFBQUEsR0FBRyxDQUFDM0IsSUFBSixDQUFTLEdBQUlaLGVBQWUsQ0FBQ0MsSUFBRCxDQUE1QjtBQUNBLFNBQU8sTUFBTSxLQUFLdUMsR0FBTCxDQUFTRSxLQUFULENBQWVILEdBQWYsQ0FBYjtBQUNELENBYkQ7O2VBaUJleEMsUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBlcnJvcnMgfSBmcm9tICdhcHBpdW0tYmFzZS1kcml2ZXInO1xuXG5jb25zdCBOT19WQUxVRV9BUkdfVFlQRSA9ICdzbic7XG5jb25zdCBTVVBQT1JURURfRVhUUkFfVFlQRVMgPSBbXG4gICdzJywgTk9fVkFMVUVfQVJHX1RZUEUsICd6JywgJ2knLCAnbCcsICdmJywgJ3UnLCAnY24nLFxuICAnaWEnLCAnaWFsJywgJ2xhJywgJ2xhbCcsICdmYScsICdmYWwnLCAnc2EnLCAnc2FsJyxcbl07XG5jb25zdCBBUElfTEVWRUxfQU5EUk9JRF84ID0gMjY7XG5cbmNvbnN0IGNvbW1hbmRzID0ge307XG5cbmZ1bmN0aW9uIHBhcnNlSW50ZW50U3BlYyAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtcbiAgICBpbnRlbnQsXG4gICAgYWN0aW9uLFxuICAgIHVyaSxcbiAgICBtaW1lVHlwZSxcbiAgICBpZGVudGlmaWVyLFxuICAgIGNhdGVnb3JpZXMsXG4gICAgY29tcG9uZW50LFxuICAgIGV4dHJhcyxcbiAgICBmbGFncyxcbiAgfSA9IG9wdHM7XG4gIGNvbnN0IHJlc3VsdEFyZ3MgPSBbXTtcbiAgaWYgKGludGVudCkge1xuICAgIHJlc3VsdEFyZ3MucHVzaChpbnRlbnQpO1xuICB9XG4gIGlmIChhY3Rpb24pIHtcbiAgICByZXN1bHRBcmdzLnB1c2goJy1hJywgYWN0aW9uKTtcbiAgfVxuICBpZiAodXJpKSB7XG4gICAgcmVzdWx0QXJncy5wdXNoKCctZCcsIHVyaSk7XG4gIH1cbiAgaWYgKG1pbWVUeXBlKSB7XG4gICAgcmVzdWx0QXJncy5wdXNoKCctdCcsIG1pbWVUeXBlKTtcbiAgfVxuICBpZiAoIV8uaXNOaWwoaWRlbnRpZmllcikpIHtcbiAgICByZXN1bHRBcmdzLnB1c2goJy1pJywgaWRlbnRpZmllcik7XG4gIH1cbiAgaWYgKGNhdGVnb3JpZXMpIHtcbiAgICBpZiAoXy5pc0FycmF5KGNhdGVnb3JpZXMpKSB7XG4gICAgICByZXN1bHRBcmdzLnB1c2goLi4uKF8uZmxhdE1hcChjYXRlZ29yaWVzLm1hcCgoY05hbWUpID0+IFsnLWMnLCBjTmFtZV0pKSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHRBcmdzLnB1c2goJy1jJywgY2F0ZWdvcmllcyk7XG4gICAgfVxuICB9XG4gIGlmIChjb21wb25lbnQpIHtcbiAgICByZXN1bHRBcmdzLnB1c2goJy1uJywgY29tcG9uZW50KTtcbiAgfVxuICBpZiAoZXh0cmFzKSB7XG4gICAgaWYgKCFfLmlzQXJyYXkoZXh0cmFzKSkge1xuICAgICAgdGhyb3cgbmV3IGVycm9ycy5JbnZhbGlkQXJndW1lbnRFcnJvcihgJ2V4dHJhcycgbXVzdCBiZSBhbiBhcnJheWApO1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgZXh0cmFzKSB7XG4gICAgICBpZiAoIV8uaXNBcnJheShpdGVtKSkge1xuICAgICAgICB0aHJvdyBuZXcgZXJyb3JzLkludmFsaWRBcmd1bWVudEVycm9yKGBFeHRyYSBhcmd1bWVudCAnJHtpdGVtfScgbXVzdCBiZSBhbiBhcnJheWApO1xuICAgICAgfVxuICAgICAgY29uc3QgW3R5cGUsIGtleSwgdmFsdWVdID0gaXRlbTtcbiAgICAgIGlmICghXy5pbmNsdWRlcyhTVVBQT1JURURfRVhUUkFfVFlQRVMsIHR5cGUpKSB7XG4gICAgICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZEFyZ3VtZW50RXJyb3IoXG4gICAgICAgICAgYEV4dHJhIGFyZ3VtZW50IHR5cGUgJyR7dHlwZX0nIGlzIG5vdCBrbm93bi4gYCArXG4gICAgICAgICAgYFN1cHBvcnRlZCBpbnRlbnQgYXJndW1lbnQgdHlwZXMgYXJlOiAke1NVUFBPUlRFRF9FWFRSQV9UWVBFU31gXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAoXy5pc0VtcHR5KGtleSkgfHwgKF8uaXNTdHJpbmcoa2V5KSAmJiBfLnRyaW0oa2V5KSA9PT0gJycpKSB7XG4gICAgICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZEFyZ3VtZW50RXJyb3IoXG4gICAgICAgICAgYEV4dHJhIGFyZ3VtZW50J3Mga2V5IGluICcke0pTT04uc3RyaW5naWZ5KGl0ZW0pfScgbXVzdCBiZSBhIHZhbGlkIHN0cmluZyBpZGVudGlmaWVyYFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKHR5cGUgPT09IE5PX1ZBTFVFX0FSR19UWVBFKSB7XG4gICAgICAgIHJlc3VsdEFyZ3MucHVzaChgLS1lJHt0eXBlfWAsIGtleSk7XG4gICAgICB9IGVsc2UgaWYgKF8uaXNVbmRlZmluZWQodmFsdWUpKSB7XG4gICAgICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZEFyZ3VtZW50RXJyb3IoXG4gICAgICAgICAgYEludGVudCBhcmd1bWVudCB0eXBlICcke3R5cGV9JyBpbiAnJHtKU09OLnN0cmluZ2lmeShpdGVtKX0nIHJlcXVpcmVzIGEgYCArXG4gICAgICAgICAgYHZhbGlkIHZhbHVlIHRvIGJlIHByb3ZpZGVkYFxuICAgICAgICApO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0QXJncy5wdXNoKGAtLWUke3R5cGV9YCwga2V5LCB2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGlmIChmbGFncykge1xuICAgIHJlc3VsdEFyZ3MucHVzaCgnLWYnLCBmbGFncyk7XG4gIH1cbiAgcmV0dXJuIHJlc3VsdEFyZ3M7XG59XG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gU3RhcnRBY3Rpdml0eU9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ3xudW1iZXJ9IHVzZXIgWydjdXJyZW50J10gLSBUaGUgdXNlciBJRCBmb3Igd2hpY2ggdGhlIHNlcnZpY2UgaXMgc3RhcnRlZC5cbiAqIFRoZSBgY3VycmVudGAgdXNlciBpZCBpcyB1c2VkIGJ5IGRlZmF1bHRcbiAqIEBwcm9wZXJ0eSB7P2Jvb2xlYW59IHdhaXQgW2ZhbHNlXSAtIFNldCBpdCB0byBgdHJ1ZWAgaWYgeW91IHdhbnQgdG8gYmxvY2sgdGhlIG1ldGhvZCBjYWxsXG4gKiB1bnRpbCB0aGUgYWN0aXZpdHkgbWFuYWdlcidzIHByb2Nlc3MgcmV0dXJucyB0aGUgY29udHJvbCB0byB0aGUgc3lzdGVtLlxuICogQHByb3BlcnR5IHs/Ym9vbGVhbn0gc3RvcCBbZmFsc2VdIC0gU2V0IGl0IHRvIGB0cnVlYCB0byBmb3JjZSBzdG9wIHRoZSB0YXJnZXRcbiAqIGFwcCBiZWZvcmUgc3RhcnRpbmcgdGhlIGFjdGl2aXR5XG4gKiBAcHJvcGVydHkgez9udW1iZXJ8c3RyaW5nfSB3aW5kb3dpbmdNb2RlIC0gVGhlIHdpbmRvd2luZyBtb2RlIHRvIGxhdW5jaCB0aGUgYWN0aXZpdHkgaW50by5cbiAqIENoZWNrIGh0dHBzOi8vYW5kcm9pZC5nb29nbGVzb3VyY2UuY29tL3BsYXRmb3JtL2ZyYW1ld29ya3MvYmFzZS8rL21hc3Rlci9jb3JlL2phdmEvYW5kcm9pZC9hcHAvV2luZG93Q29uZmlndXJhdGlvbi5qYXZhXG4gKiBmb3IgbW9yZSBkZXRhaWxzIG9uIHBvc3NpYmxlIHdpbmRvd2luZyBtb2RlcyAoY29uc3RhbnRzIHN0YXJ0aW5nIHdpdGggYFdJTkRPV0lOR19NT0RFX2ApLlxuICogQHByb3BlcnR5IHs/bnVtYmVyfHN0cmluZ30gYWN0aXZpdHlUeXBlIC0gVGhlIGFjdGl2aXR5IHR5cGUgdG8gbGF1bmNoIHRoZSBhY3Rpdml0eSBhcy5cbiAqIENoZWNrIGh0dHBzOi8vYW5kcm9pZC5nb29nbGVzb3VyY2UuY29tL3BsYXRmb3JtL2ZyYW1ld29ya3MvYmFzZS8rL21hc3Rlci9jb3JlL2phdmEvYW5kcm9pZC9hcHAvV2luZG93Q29uZmlndXJhdGlvbi5qYXZhXG4gKiBmb3IgbW9yZSBkZXRhaWxzIG9uIHBvc3NpYmxlIGFjdGl2aXR5IHR5cGVzIChjb25zdGFudHMgc3RhcnRpbmcgd2l0aCBgQUNUSVZJVFlfVFlQRV9gKS5cbiAqIEBwcm9wZXJ0eSB7P251bWJlcnxzdHJpbmd9IGRpc3BsYXkgLSBUaGUgZGlzcGxheSBpZGVudGlmaWVyIHRvIGxhdW5jaCB0aGUgYWN0aXZpdHkgaW50by5cbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gaW50ZW50IC0gVGhlIG5hbWUgb2YgdGhlIGFjdGl2aXR5IGludGVudCB0byBzdGFydCwgZm9yIGV4YW1wbGVcbiAqIGBjb20uc29tZS5wYWNrYWdlLm5hbWUvLllvdXJTZXJ2aWNlU3ViQ2xhc3NOYW1lYFxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBhY3Rpb24gLSBBY3Rpb24gbmFtZVxuICogQHByb3BlcnR5IHs/c3RyaW5nfSB1cmkgLSBVbmlmaWVkIHJlc291cmNlIGlkZW50aWZpZXJcbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gbWltZVR5cGUgLSBNaW1lIHR5cGVcbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gaWRlbnRpZmllciAtIE9wdGlvbmFsIGlkZW50aWZpZXJcbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ3xBcnJheTxzdHJpbmc+fSBjYXRlZ29yaWVzIC0gT25lIG9yIG1vcmUgY2F0ZWdvcnkgbmFtZXNcbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gY29tcG9uZW50IC0gQ29tcG9uZW50IG5hbWVcbiAqIEBwcm9wZXJ0eSB7QXJyYXk8c3RyaW5nfEFycmF5PHN0cmluZz4+fSBleHRyYXMgLSBPcHRpb25hbCBpbnRlbnQgYXJndW1lbnRzLiBNdXN0IGJlIHJlcHJlc2VudGVkXG4gKiBhcyBhcnJheSBvZiBhcnJheXMsIHdoZXJlIGVhY2ggc3ViYXJyYXkgaXRlbSBjb250YWlucyB0d28gb3IgdGhyZWUgc3RyaW5nIGl0ZW1zOlxuICogdmFsdWUgdHlwZSwga2V5IG5hbWUgYW5kIHRoZSB2YWx1ZSBpdHNlbGYuXG4gKiBTdXBwb3J0ZWQgdmFsdWUgdHlwZXMgYXJlOlxuICogLSBzOiBzdHJpbmcuIFZhbHVlIG11c3QgYmUgYSB2YWxpZCBzdHJpbmdcbiAqIC0gc246IG51bGwuIFZhbHVlIGlzIGlnbm9yZWQgZm9yIHRoaXMgdHlwZVxuICogLSB6OiBib29sZWFuLiBWYWx1ZSBtdXN0IGJlIGVpdGhlciBgdHJ1ZWAgb3IgYGZhbHNlYFxuICogLSBpOiBpbnRlZ2VyLiBWYWx1ZSBtdXN0IGJlIGEgdmFsaWQgNC1ieXRlIGludGVnZXIgbnVtYmVyXG4gKiAtIGw6IGxvbmcuIFZhbHVlIG11c3QgYmUgYSB2YWxpZCA4LWJ5dGUgbG9uZyBudW1iZXJcbiAqIC0gZjogZmxvYXQ6IFZhbHVlIG11c3QgYmUgYSB2YWxpZCBmbG9hdCBudW1iZXJcbiAqIC0gdTogdXJpLiBWYWx1ZSBtdXN0IGJlIGEgdmFsaWQgdW5pZm9ybSByZXNvdXJjZSBpZGVudGlmaWVyIHN0cmluZ1xuICogLSBjbjogY29tcG9uZW50IG5hbWUuIFZhbHVlIG11c3QgYmUgYSB2YWxpZCBjb21wb25lbnQgbmFtZSBzdHJpbmdcbiAqIC0gaWE6IEludGVnZXJbXS4gVmFsdWUgbXVzdCBiZSBhIHN0cmluZyBvZiBjb21tYS1zZXBhcmF0ZWQgaW50ZWdlcnNcbiAqIC0gaWFsOiBMaXN0PEludGVnZXI+LiBWYWx1ZSBtdXN0IGJlIGEgc3RyaW5nIG9mIGNvbW1hLXNlcGFyYXRlZCBpbnRlZ2Vyc1xuICogLSBsYTogTG9uZ1tdLiBWYWx1ZSBtdXN0IGJlIGEgc3RyaW5nIG9mIGNvbW1hLXNlcGFyYXRlZCBsb25nIG51bWJlcnNcbiAqIC0gbGFsOiBMaXN0PExvbmc+LiBWYWx1ZSBtdXN0IGJlIGEgc3RyaW5nIG9mIGNvbW1hLXNlcGFyYXRlZCBsb25nIG51bWJlcnNcbiAqIC0gZmE6IEZsb2F0W10uIFZhbHVlIG11c3QgYmUgYSBzdHJpbmcgb2YgY29tbWEtc2VwYXJhdGVkIGZsb2F0IG51bWJlcnNcbiAqIC0gZmFsOiBMaXN0PEZsb2F0Pi4gVmFsdWUgbXVzdCBiZSBhIHN0cmluZyBvZiBjb21tYS1zZXBhcmF0ZWQgZmxvYXQgbnVtYmVyc1xuICogLSBzYTogU3RyaW5nW10uIFZhbHVlIG11c3QgYmUgY29tbWEtc2VwYXJhdGVkIHN0cmluZ3MuIFRvIGVtYmVkIGEgY29tbWEgaW50byBhIHN0cmluZyxcbiAqIGVzY2FwZSBpdCB1c2luZyBcIlxcLFwiXG4gKiAtIHNhbDogTGlzdDxTdHJpbmc+LiBWYWx1ZSBtdXN0IGJlIGNvbW1hLXNlcGFyYXRlZCBzdHJpbmdzLiBUbyBlbWJlZCBhIGNvbW1hIGludG8gYSBzdHJpbmcsXG4gKiBlc2NhcGUgaXQgdXNpbmcgXCJcXCxcIlxuICogRm9yIGV4YW1wbGU6IFtbJ3MnLCAndmFyTmFtZTEnLCAnTXkgU3RyaW5nMSddLCBbJ3MnLCAndmFyTmFtZTInLCAnTXkgU3RyaW5nMiddLCBbJ2lhJywgJ2Fyck5hbWUnLCAnMSwyLDMsNCddXVxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBmbGFncyAtIEludGVudCBzdGFydHVwLXNwZWNpZmljIGZsYWdzIGFzIGEgaGV4YWRlY2ltYWwgc3RyaW5nLlxuICogU2VlIGh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2NvbnRlbnQvSW50ZW50Lmh0bWxcbiAqIGZvciB0aGUgbGlzdCBvZiBhdmFpbGFibGUgZmxhZyB2YWx1ZXMgKGNvbnN0YW50cyBzdGFydGluZyB3aXRoIEZMQUdfQUNUSVZJVFlfKS5cbiAqIEZsYWcgdmFsdWVzIGNvdWxkIGJlIG1lcmdlZCB1c2luZyB0aGUgbG9naWNhbCAnb3InIG9wZXJhdGlvbi5cbiAqIEZvciBleGFtcGxlLCAweDEwMjAwMDAwIGlzIHRoZSBjb21iaW5hdGlvbiBvZiB0d28gZmxhZ3M6XG4gKiAweDEwMDAwMDAwIGBGTEFHX0FDVElWSVRZX05FV19UQVNLYCB8IDB4MDAyMDAwMDAgYEZMQUdfQUNUSVZJVFlfUkVTRVRfVEFTS19JRl9ORUVERURgXG4gKi9cblxuLyoqXG4gKiBTdGFydHMgdGhlIGdpdmVuIGFjdGl2aXR5IGludGVudC5cbiAqXG4gKiBAcGFyYW0ge1N0YXJ0QWN0aXZpdHlPcHRpb25zfSBvcHRzXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgY29tbWFuZCBvdXRwdXRcbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGVyZSB3YXMgYSBmYWlsdXJlIHdoaWxlIHN0YXJ0aW5nIHRoZSBhY3Rpdml0eVxuICogb3IgcmVxdWlyZWQgb3B0aW9ucyBhcmUgbWlzc2luZ1xuICovXG5jb21tYW5kcy5tb2JpbGVTdGFydEFjdGl2aXR5ID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlU3RhcnRBY3Rpdml0eSAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtcbiAgICB1c2VyLFxuICAgIHdhaXQsXG4gICAgc3RvcCxcbiAgICB3aW5kb3dpbmdNb2RlLFxuICAgIGFjdGl2aXR5VHlwZSxcbiAgICBkaXNwbGF5LFxuICB9ID0gb3B0cztcbiAgY29uc3QgY21kID0gW1xuICAgICdhbScsIChhd2FpdCB0aGlzLmFkYi5nZXRBcGlMZXZlbCgpIDwgQVBJX0xFVkVMX0FORFJPSURfOCkgPyAnc3RhcnQnIDogJ3N0YXJ0LWFjdGl2aXR5JyxcbiAgXTtcbiAgaWYgKCFfLmlzTmlsKHVzZXIpKSB7XG4gICAgY21kLnB1c2goJy0tdXNlcicsIHVzZXIpO1xuICB9XG4gIGlmICh3YWl0KSB7XG4gICAgY21kLnB1c2goJy1XJyk7XG4gIH1cbiAgaWYgKHN0b3ApIHtcbiAgICBjbWQucHVzaCgnLVMnKTtcbiAgfVxuICBpZiAoIV8uaXNOaWwod2luZG93aW5nTW9kZSkpIHtcbiAgICBjbWQucHVzaCgnLS13aW5kb3dpbmdNb2RlJywgd2luZG93aW5nTW9kZSk7XG4gIH1cbiAgaWYgKCFfLmlzTmlsKGFjdGl2aXR5VHlwZSkpIHtcbiAgICBjbWQucHVzaCgnLS1hY3Rpdml0eVR5cGUnLCBhY3Rpdml0eVR5cGUpO1xuICB9XG4gIGlmICghXy5pc05pbChkaXNwbGF5KSkge1xuICAgIGNtZC5wdXNoKCctLWRpc3BsYXknLCBkaXNwbGF5KTtcbiAgfVxuICBjbWQucHVzaCguLi4ocGFyc2VJbnRlbnRTcGVjKG9wdHMpKSk7XG4gIHJldHVybiBhd2FpdCB0aGlzLmFkYi5zaGVsbChjbWQpO1xufTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBCcm9hZGNhc3RPcHRpb25zXG4gKiBAcHJvcGVydHkgez9zdHJpbmd8bnVtYmVyfSB1c2VyIFsnYWxsJ10gLSBUaGUgdXNlciBJRCBmb3Igd2hpY2ggdGhlIGJyb2FkY2FzdCBpcyBzZW50LlxuICogVGhlIGBjdXJyZW50YCBhbGlhcyBhc3N1bWVzIHRoZSBjdXJyZW50IHVzZXIgSUQuXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IHJlY2VpdmVyUGVybWlzc2lvbiAtIFJlcXVpcmUgcmVjZWl2ZXIgdG8gaG9sZCB0aGUgZ2l2ZW4gcGVybWlzc2lvbi5cbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gaW50ZW50IC0gVGhlIG5hbWUgb2YgdGhlIGludGVudCB0byBicm9hZGNhc3QgdG8sIGZvciBleGFtcGxlXG4gKiBgY29tLnNvbWUucGFja2FnZS5uYW1lLy5Zb3VyU2VydmljZVN1YkNsYXNzTmFtZWAuXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IGFjdGlvbiAtIEFjdGlvbiBuYW1lXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IHVyaSAtIFVuaWZpZWQgcmVzb3VyY2UgaWRlbnRpZmllclxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBtaW1lVHlwZSAtIE1pbWUgdHlwZVxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBpZGVudGlmaWVyIC0gT3B0aW9uYWwgaWRlbnRpZmllclxuICogQHByb3BlcnR5IHs/c3RyaW5nfEFycmF5PHN0cmluZz59IGNhdGVnb3JpZXMgLSBPbmUgb3IgbW9yZSBjYXRlZ29yeSBuYW1lc1xuICogQHByb3BlcnR5IHs/c3RyaW5nfSBjb21wb25lbnQgLSBDb21wb25lbnQgbmFtZVxuICogQHByb3BlcnR5IHtBcnJheTxBcnJheTxzdHJpbmc+Pn0gZXh0cmFzIC0gT3B0aW9uYWwgaW50ZW50IGFyZ3VtZW50cy5cbiAqIFNlZSBhYm92ZSBmb3IgdGhlIGRldGFpbGVkIGRlc2NyaXB0aW9uLlxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBmbGFncyAtIEludGVudCBzdGFydHVwLXNwZWNpZmljIGZsYWdzIGFzIGEgaGV4YWRlY2ltYWwgc3RyaW5nLlxuICogU2VlIGFib3ZlIGZvciB0aGUgZGV0YWlsZWQgZGVzY3JpcHRpb24uXG4gKi9cblxuXG4vKipcbiAqIFNlbmQgYSBicm9hZGNhc3QgaW50ZW50LlxuICpcbiAqIEBwYXJhbSB7QnJvYWRjYXN0T3B0aW9uc30gb3B0c1xuICogQHJldHVybnMge3N0cmluZ30gVGhlIGNvbW1hbmQgb3V0cHV0XG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlcmUgd2FzIGEgZmFpbHVyZSB3aGlsZSBzdGFydGluZyB0aGUgYWN0aXZpdHlcbiAqIG9yIHJlcXVpcmVkIG9wdGlvbnMgYXJlIG1pc3NpbmdcbiAqL1xuY29tbWFuZHMubW9iaWxlQnJvYWRjYXN0ID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlQnJvYWRjYXN0IChvcHRzID0ge30pIHtcbiAgY29uc3Qge1xuICAgIHVzZXIsXG4gICAgcmVjZWl2ZXJQZXJtaXNzaW9uLFxuICAgIGFsbG93QmFja2dyb3VuZEFjdGl2aXR5U3RhcnRzLFxuICB9ID0gb3B0cztcbiAgY29uc3QgY21kID0gWydhbScsICdicm9hZGNhc3QnXTtcbiAgaWYgKCFfLmlzTmlsKHVzZXIpKSB7XG4gICAgY21kLnB1c2goJy0tdXNlcicsIHVzZXIpO1xuICB9XG4gIGlmIChyZWNlaXZlclBlcm1pc3Npb24pIHtcbiAgICBjbWQucHVzaCgnLS1yZWNlaXZlci1wZXJtaXNzaW9uJywgcmVjZWl2ZXJQZXJtaXNzaW9uKTtcbiAgfVxuICBpZiAoYWxsb3dCYWNrZ3JvdW5kQWN0aXZpdHlTdGFydHMpIHtcbiAgICBjbWQucHVzaCgnLS1hbGxvdy1iYWNrZ3JvdW5kLWFjdGl2aXR5LXN0YXJ0cycpO1xuICB9XG4gIGNtZC5wdXNoKC4uLihwYXJzZUludGVudFNwZWMob3B0cykpKTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuYWRiLnNoZWxsKGNtZCk7XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IFN0YXJ0U2VydmljZU9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ3xudW1iZXJ9IHVzZXIgWydjdXJyZW50J10gLSBUaGUgdXNlciBJRCBmb3Igd2hpY2ggdGhlIHNlcnZpY2UgaXMgc3RhcnRlZC5cbiAqIFRoZSBgY3VycmVudGAgdXNlciBpZCBpcyB1c2VkIGJ5IGRlZmF1bHRcbiAqIEBwcm9wZXJ0eSB7P2Jvb2xlYW59IGZvcmVncm91bmQgW2ZhbHNlXSAtIFNldCBpdCB0byBgdHJ1ZWAgaWYgeW91ciBzZXJ2aWNlIG11c3QgYmVcbiAqIHN0YXJ0ZWQgYXMgZm9yZWdyb3VuZCBzZXJ2aWNlLiBUaGlzIG9wdGlvbiBpcyBpZ25vcmVkIGlmIHRoZSBBUEkgbGV2ZWwgb2YgdGhlXG4gKiBkZXZpY2UgdW5kZXIgdGVzdCBpcyBiZWxvdyAyNiAoQW5kcm9pZCA4KS5cbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gaW50ZW50IC0gVGhlIG5hbWUgb2YgdGhlIHNlcnZpY2UgaW50ZW50IHRvIHN0YXJ0LCBmb3IgZXhhbXBsZVxuICogYGNvbS5zb21lLnBhY2thZ2UubmFtZS8uWW91clNlcnZpY2VTdWJDbGFzc05hbWVgLlxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBhY3Rpb24gLSBBY3Rpb24gbmFtZVxuICogQHByb3BlcnR5IHs/c3RyaW5nfSB1cmkgLSBVbmlmaWVkIHJlc291cmNlIGlkZW50aWZpZXJcbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gbWltZVR5cGUgLSBNaW1lIHR5cGVcbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gaWRlbnRpZmllciAtIE9wdGlvbmFsIGlkZW50aWZpZXJcbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ3xBcnJheTxzdHJpbmc+fSBjYXRlZ29yaWVzIC0gT25lIG9yIG1vcmUgY2F0ZWdvcnkgbmFtZXNcbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gY29tcG9uZW50IC0gQ29tcG9uZW50IG5hbWVcbiAqIEBwcm9wZXJ0eSB7QXJyYXk8QXJyYXk8c3RyaW5nPj59IGV4dHJhcyAtIE9wdGlvbmFsIGludGVudCBhcmd1bWVudHMuXG4gKiBTZWUgYWJvdmUgZm9yIHRoZSBkZXRhaWxlZCBkZXNjcmlwdGlvbi5cbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gZmxhZ3MgLSBJbnRlbnQgc3RhcnR1cC1zcGVjaWZpYyBmbGFncyBhcyBhIGhleGFkZWNpbWFsIHN0cmluZy5cbiAqIFNlZSBhYm92ZSBmb3IgdGhlIGRldGFpbGVkIGRlc2NyaXB0aW9uLlxuICovXG5cbi8qKlxuICogU3RhcnRzIHRoZSBnaXZlbiBzZXJ2aWNlIGludGVudC5cbiAqXG4gKiBAcGFyYW0ge1N0YXJ0U2VydmljZU9wdGlvbnN9IG9wdHNcbiAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBjb21tYW5kIG91dHB1dFxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZXJlIHdhcyBhIGZhaWx1cmUgd2hpbGUgc3RhcnRpbmcgdGhlIHNlcnZpY2VcbiAqIG9yIHJlcXVpcmVkIG9wdGlvbnMgYXJlIG1pc3NpbmdcbiAqL1xuY29tbWFuZHMubW9iaWxlU3RhcnRTZXJ2aWNlID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlU3RhcnRTZXJ2aWNlIChvcHRzID0ge30pIHtcbiAgY29uc3Qge1xuICAgIHVzZXIsXG4gICAgZm9yZWdyb3VuZCxcbiAgfSA9IG9wdHM7XG4gIGNvbnN0IGNtZCA9IFsnYW0nXTtcbiAgaWYgKGF3YWl0IHRoaXMuYWRiLmdldEFwaUxldmVsKCkgPCBBUElfTEVWRUxfQU5EUk9JRF84KSB7XG4gICAgY21kLnB1c2goJ3N0YXJ0c2VydmljZScpO1xuICB9IGVsc2Uge1xuICAgIGNtZC5wdXNoKGZvcmVncm91bmQgPyAnc3RhcnQtZm9yZWdyb3VuZC1zZXJ2aWNlJyA6ICdzdGFydC1zZXJ2aWNlJyk7XG4gIH1cbiAgaWYgKCFfLmlzTmlsKHVzZXIpKSB7XG4gICAgY21kLnB1c2goJy0tdXNlcicsIHVzZXIpO1xuICB9XG4gIGNtZC5wdXNoKC4uLihwYXJzZUludGVudFNwZWMob3B0cykpKTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuYWRiLnNoZWxsKGNtZCk7XG59O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IFN0b3BTZXJ2aWNlT3B0aW9uc1xuICogQHByb3BlcnR5IHtzdHJpbmd8bnVtYmVyfSB1c2VyIFsnY3VycmVudCddIC0gVGhlIHVzZXIgSUQgZm9yIHdoaWNoIHRoZSBzZXJ2aWNlIGlzIHJ1bm5pbmcuXG4gKiBUaGUgYGN1cnJlbnRgIHVzZXIgaWQgaXMgdXNlZCBieSBkZWZhdWx0XG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IGludGVudCAtIFRoZSBuYW1lIG9mIHRoZSBzZXJ2aWNlIGludGVudCB0byBzdG9wLCBmb3IgZXhhbXBsZVxuICogYGNvbS5zb21lLnBhY2thZ2UubmFtZS8uWW91clNlcnZpY2VTdWJDbGFzc05hbWVgLlxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBhY3Rpb24gLSBBY3Rpb24gbmFtZVxuICogQHByb3BlcnR5IHs/c3RyaW5nfSB1cmkgLSBVbmlmaWVkIHJlc291cmNlIGlkZW50aWZpZXJcbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gbWltZVR5cGUgLSBNaW1lIHR5cGVcbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gaWRlbnRpZmllciAtIE9wdGlvbmFsIGlkZW50aWZpZXJcbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ3xBcnJheTxzdHJpbmc+fSBjYXRlZ29yaWVzIC0gT25lIG9yIG1vcmUgY2F0ZWdvcnkgbmFtZXNcbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gY29tcG9uZW50IC0gQ29tcG9uZW50IG5hbWVcbiAqIEBwcm9wZXJ0eSB7QXJyYXk8QXJyYXk8c3RyaW5nPj59IGV4dHJhcyAtIE9wdGlvbmFsIGludGVudCBhcmd1bWVudHMuXG4gKiBTZWUgYWJvdmUgZm9yIHRoZSBkZXRhaWxlZCBkZXNjcmlwdGlvbi5cbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gZmxhZ3MgLSBTZWUgYWJvdmUgZm9yIHRoZSBkZXRhaWxlZCBkZXNjcmlwdGlvbi5cbiAqL1xuXG4vKipcbiAqIFN0b3BzIHRoZSBnaXZlbiBzZXJ2aWNlIGludGVudC5cbiAqXG4gKiBAcGFyYW0ge1N0b3BTZXJ2aWNlT3B0aW9uc30gb3B0c1xuICogQHJldHVybnMge3N0cmluZ30gVGhlIGNvbW1hbmQgb3V0cHV0XG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlcmUgd2FzIGEgZmFpbHVyZSB3aGlsZSBzdG9wcGluZyB0aGUgc2VydmljZVxuICogb3IgcmVxdWlyZWQgb3B0aW9ucyBhcmUgbWlzc2luZ1xuICovXG5jb21tYW5kcy5tb2JpbGVTdG9wU2VydmljZSA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVN0b3BTZXJ2aWNlIChvcHRzID0ge30pIHtcbiAgY29uc3Qge1xuICAgIHVzZXIsXG4gIH0gPSBvcHRzO1xuICBjb25zdCBjbWQgPSBbXG4gICAgJ2FtJyxcbiAgICAoYXdhaXQgdGhpcy5hZGIuZ2V0QXBpTGV2ZWwoKSA8IEFQSV9MRVZFTF9BTkRST0lEXzgpID8gJ3N0b3BzZXJ2aWNlJyA6ICdzdG9wLXNlcnZpY2UnXG4gIF07XG4gIGlmICghXy5pc05pbCh1c2VyKSkge1xuICAgIGNtZC5wdXNoKCctLXVzZXInLCB1c2VyKTtcbiAgfVxuICBjbWQucHVzaCguLi4ocGFyc2VJbnRlbnRTcGVjKG9wdHMpKSk7XG4gIHJldHVybiBhd2FpdCB0aGlzLmFkYi5zaGVsbChjbWQpO1xufTtcblxuXG5leHBvcnQgeyBjb21tYW5kcyB9O1xuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwiZmlsZSI6ImxpYi9jb21tYW5kcy9pbnRlbnQuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4ifQ==
|
|
211
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9pbnRlbnQuanMiXSwibmFtZXMiOlsiTk9fVkFMVUVfQVJHX1RZUEUiLCJTVVBQT1JURURfRVhUUkFfVFlQRVMiLCJBUElfTEVWRUxfQU5EUk9JRF84IiwiY29tbWFuZHMiLCJwYXJzZUludGVudFNwZWMiLCJvcHRzIiwiaW50ZW50IiwiYWN0aW9uIiwidXJpIiwibWltZVR5cGUiLCJpZGVudGlmaWVyIiwiY2F0ZWdvcmllcyIsImNvbXBvbmVudCIsImV4dHJhcyIsImZsYWdzIiwicmVzdWx0QXJncyIsInB1c2giLCJfIiwiaXNOaWwiLCJpc0FycmF5IiwiZmxhdE1hcCIsIm1hcCIsImNOYW1lIiwicGFja2FnZSIsImVycm9ycyIsIkludmFsaWRBcmd1bWVudEVycm9yIiwiaXRlbSIsInR5cGUiLCJrZXkiLCJ2YWx1ZSIsImluY2x1ZGVzIiwiaXNFbXB0eSIsImlzU3RyaW5nIiwidHJpbSIsIkpTT04iLCJzdHJpbmdpZnkiLCJpc1VuZGVmaW5lZCIsIm1vYmlsZVN0YXJ0QWN0aXZpdHkiLCJ1c2VyIiwid2FpdCIsInN0b3AiLCJ3aW5kb3dpbmdNb2RlIiwiYWN0aXZpdHlUeXBlIiwiZGlzcGxheSIsImNtZCIsImFkYiIsImdldEFwaUxldmVsIiwic2hlbGwiLCJtb2JpbGVCcm9hZGNhc3QiLCJyZWNlaXZlclBlcm1pc3Npb24iLCJhbGxvd0JhY2tncm91bmRBY3Rpdml0eVN0YXJ0cyIsIm1vYmlsZVN0YXJ0U2VydmljZSIsImZvcmVncm91bmQiLCJtb2JpbGVTdG9wU2VydmljZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFFQSxNQUFNQSxpQkFBaUIsR0FBRyxJQUExQjtBQUNBLE1BQU1DLHFCQUFxQixHQUFHLENBQzVCLEdBRDRCLEVBQ3ZCRCxpQkFEdUIsRUFDSixHQURJLEVBQ0MsR0FERCxFQUNNLEdBRE4sRUFDVyxHQURYLEVBQ2dCLEdBRGhCLEVBQ3FCLElBRHJCLEVBRTVCLElBRjRCLEVBRXRCLEtBRnNCLEVBRWYsSUFGZSxFQUVULEtBRlMsRUFFRixJQUZFLEVBRUksS0FGSixFQUVXLElBRlgsRUFFaUIsS0FGakIsQ0FBOUI7QUFJQSxNQUFNRSxtQkFBbUIsR0FBRyxFQUE1QjtBQUVBLE1BQU1DLFFBQVEsR0FBRyxFQUFqQjs7O0FBRUEsU0FBU0MsZUFBVCxDQUEwQkMsSUFBSSxHQUFHLEVBQWpDLEVBQXFDO0FBQ25DLFFBQU07QUFDSkMsSUFBQUEsTUFESTtBQUVKQyxJQUFBQSxNQUZJO0FBR0pDLElBQUFBLEdBSEk7QUFJSkMsSUFBQUEsUUFKSTtBQUtKQyxJQUFBQSxVQUxJO0FBTUpDLElBQUFBLFVBTkk7QUFPSkMsSUFBQUEsU0FQSTtBQVFKQyxJQUFBQSxNQVJJO0FBU0pDLElBQUFBO0FBVEksTUFVRlQsSUFWSjtBQVdBLFFBQU1VLFVBQVUsR0FBRyxFQUFuQjs7QUFDQSxNQUFJVCxNQUFKLEVBQVk7QUFDVlMsSUFBQUEsVUFBVSxDQUFDQyxJQUFYLENBQWdCVixNQUFoQjtBQUNEOztBQUNELE1BQUlDLE1BQUosRUFBWTtBQUNWUSxJQUFBQSxVQUFVLENBQUNDLElBQVgsQ0FBZ0IsSUFBaEIsRUFBc0JULE1BQXRCO0FBQ0Q7O0FBQ0QsTUFBSUMsR0FBSixFQUFTO0FBQ1BPLElBQUFBLFVBQVUsQ0FBQ0MsSUFBWCxDQUFnQixJQUFoQixFQUFzQlIsR0FBdEI7QUFDRDs7QUFDRCxNQUFJQyxRQUFKLEVBQWM7QUFDWk0sSUFBQUEsVUFBVSxDQUFDQyxJQUFYLENBQWdCLElBQWhCLEVBQXNCUCxRQUF0QjtBQUNEOztBQUNELE1BQUksQ0FBQ1EsZ0JBQUVDLEtBQUYsQ0FBUVIsVUFBUixDQUFMLEVBQTBCO0FBQ3hCSyxJQUFBQSxVQUFVLENBQUNDLElBQVgsQ0FBZ0IsSUFBaEIsRUFBc0JOLFVBQXRCO0FBQ0Q7O0FBQ0QsTUFBSUMsVUFBSixFQUFnQjtBQUNkLFFBQUlNLGdCQUFFRSxPQUFGLENBQVVSLFVBQVYsQ0FBSixFQUEyQjtBQUN6QkksTUFBQUEsVUFBVSxDQUFDQyxJQUFYLENBQWdCLEdBQUlDLGdCQUFFRyxPQUFGLENBQVVULFVBQVUsQ0FBQ1UsR0FBWCxDQUFnQkMsS0FBRCxJQUFXLENBQUMsSUFBRCxFQUFPQSxLQUFQLENBQTFCLENBQVYsQ0FBcEI7QUFDRCxLQUZELE1BRU87QUFDTFAsTUFBQUEsVUFBVSxDQUFDQyxJQUFYLENBQWdCLElBQWhCLEVBQXNCTCxVQUF0QjtBQUNEO0FBQ0Y7O0FBQ0QsTUFBSUMsU0FBSixFQUFlO0FBQ2JHLElBQUFBLFVBQVUsQ0FBQ0MsSUFBWCxDQUFnQixJQUFoQixFQUFzQkosU0FBdEI7QUFDRDs7QUFDRCxNQUFJUCxJQUFJLENBQUNrQixPQUFULEVBQWtCO0FBQ2hCUixJQUFBQSxVQUFVLENBQUNDLElBQVgsQ0FBZ0IsSUFBaEIsRUFBc0JYLElBQUksQ0FBQ2tCLE9BQTNCO0FBQ0Q7O0FBQ0QsTUFBSVYsTUFBSixFQUFZO0FBQ1YsUUFBSSxDQUFDSSxnQkFBRUUsT0FBRixDQUFVTixNQUFWLENBQUwsRUFBd0I7QUFDdEIsWUFBTSxJQUFJVyx5QkFBT0Msb0JBQVgsQ0FBaUMsMkJBQWpDLENBQU47QUFDRDs7QUFDRCxTQUFLLE1BQU1DLElBQVgsSUFBbUJiLE1BQW5CLEVBQTJCO0FBQ3pCLFVBQUksQ0FBQ0ksZ0JBQUVFLE9BQUYsQ0FBVU8sSUFBVixDQUFMLEVBQXNCO0FBQ3BCLGNBQU0sSUFBSUYseUJBQU9DLG9CQUFYLENBQWlDLG1CQUFrQkMsSUFBSyxvQkFBeEQsQ0FBTjtBQUNEOztBQUNELFlBQU0sQ0FBQ0MsSUFBRCxFQUFPQyxHQUFQLEVBQVlDLEtBQVosSUFBcUJILElBQTNCOztBQUNBLFVBQUksQ0FBQ1QsZ0JBQUVhLFFBQUYsQ0FBVzdCLHFCQUFYLEVBQWtDMEIsSUFBbEMsQ0FBTCxFQUE4QztBQUM1QyxjQUFNLElBQUlILHlCQUFPQyxvQkFBWCxDQUNILHdCQUF1QkUsSUFBSyxrQkFBN0IsR0FDQyx3Q0FBdUMxQixxQkFBc0IsRUFGMUQsQ0FBTjtBQUlEOztBQUNELFVBQUlnQixnQkFBRWMsT0FBRixDQUFVSCxHQUFWLEtBQW1CWCxnQkFBRWUsUUFBRixDQUFXSixHQUFYLEtBQW1CWCxnQkFBRWdCLElBQUYsQ0FBT0wsR0FBUCxNQUFnQixFQUExRCxFQUErRDtBQUM3RCxjQUFNLElBQUlKLHlCQUFPQyxvQkFBWCxDQUNILDRCQUEyQlMsSUFBSSxDQUFDQyxTQUFMLENBQWVULElBQWYsQ0FBcUIscUNBRDdDLENBQU47QUFHRDs7QUFDRCxVQUFJQyxJQUFJLEtBQUszQixpQkFBYixFQUFnQztBQUM5QmUsUUFBQUEsVUFBVSxDQUFDQyxJQUFYLENBQWlCLE1BQUtXLElBQUssRUFBM0IsRUFBOEJDLEdBQTlCO0FBQ0QsT0FGRCxNQUVPLElBQUlYLGdCQUFFbUIsV0FBRixDQUFjUCxLQUFkLENBQUosRUFBMEI7QUFDL0IsY0FBTSxJQUFJTCx5QkFBT0Msb0JBQVgsQ0FDSCx5QkFBd0JFLElBQUssU0FBUU8sSUFBSSxDQUFDQyxTQUFMLENBQWVULElBQWYsQ0FBcUIsZUFBM0QsR0FDQyw0QkFGRyxDQUFOO0FBSUQsT0FMTSxNQUtBO0FBQ0xYLFFBQUFBLFVBQVUsQ0FBQ0MsSUFBWCxDQUFpQixNQUFLVyxJQUFLLEVBQTNCLEVBQThCQyxHQUE5QixFQUFtQ0MsS0FBbkM7QUFDRDtBQUNGO0FBQ0Y7O0FBQ0QsTUFBSWYsS0FBSixFQUFXO0FBQ1RDLElBQUFBLFVBQVUsQ0FBQ0MsSUFBWCxDQUFnQixJQUFoQixFQUFzQkYsS0FBdEI7QUFDRDs7QUFDRCxTQUFPQyxVQUFQO0FBQ0Q7O0FBaUVEWixRQUFRLENBQUNrQyxtQkFBVCxHQUErQixlQUFlQSxtQkFBZixDQUFvQ2hDLElBQUksR0FBRyxFQUEzQyxFQUErQztBQUM1RSxRQUFNO0FBQ0ppQyxJQUFBQSxJQURJO0FBRUpDLElBQUFBLElBRkk7QUFHSkMsSUFBQUEsSUFISTtBQUlKQyxJQUFBQSxhQUpJO0FBS0pDLElBQUFBLFlBTEk7QUFNSkMsSUFBQUE7QUFOSSxNQU9GdEMsSUFQSjtBQVFBLFFBQU11QyxHQUFHLEdBQUcsQ0FDVixJQURVLEVBQ0gsT0FBTSxLQUFLQyxHQUFMLENBQVNDLFdBQVQsRUFBTixJQUErQjVDLG1CQUFoQyxHQUF1RCxPQUF2RCxHQUFpRSxnQkFEN0QsQ0FBWjs7QUFHQSxNQUFJLENBQUNlLGdCQUFFQyxLQUFGLENBQVFvQixJQUFSLENBQUwsRUFBb0I7QUFDbEJNLElBQUFBLEdBQUcsQ0FBQzVCLElBQUosQ0FBUyxRQUFULEVBQW1Cc0IsSUFBbkI7QUFDRDs7QUFDRCxNQUFJQyxJQUFKLEVBQVU7QUFDUkssSUFBQUEsR0FBRyxDQUFDNUIsSUFBSixDQUFTLElBQVQ7QUFDRDs7QUFDRCxNQUFJd0IsSUFBSixFQUFVO0FBQ1JJLElBQUFBLEdBQUcsQ0FBQzVCLElBQUosQ0FBUyxJQUFUO0FBQ0Q7O0FBQ0QsTUFBSSxDQUFDQyxnQkFBRUMsS0FBRixDQUFRdUIsYUFBUixDQUFMLEVBQTZCO0FBQzNCRyxJQUFBQSxHQUFHLENBQUM1QixJQUFKLENBQVMsaUJBQVQsRUFBNEJ5QixhQUE1QjtBQUNEOztBQUNELE1BQUksQ0FBQ3hCLGdCQUFFQyxLQUFGLENBQVF3QixZQUFSLENBQUwsRUFBNEI7QUFDMUJFLElBQUFBLEdBQUcsQ0FBQzVCLElBQUosQ0FBUyxnQkFBVCxFQUEyQjBCLFlBQTNCO0FBQ0Q7O0FBQ0QsTUFBSSxDQUFDekIsZ0JBQUVDLEtBQUYsQ0FBUXlCLE9BQVIsQ0FBTCxFQUF1QjtBQUNyQkMsSUFBQUEsR0FBRyxDQUFDNUIsSUFBSixDQUFTLFdBQVQsRUFBc0IyQixPQUF0QjtBQUNEOztBQUNEQyxFQUFBQSxHQUFHLENBQUM1QixJQUFKLENBQVMsR0FBSVosZUFBZSxDQUFDQyxJQUFELENBQTVCO0FBQ0EsU0FBTyxNQUFNLEtBQUt3QyxHQUFMLENBQVNFLEtBQVQsQ0FBZUgsR0FBZixDQUFiO0FBQ0QsQ0FoQ0Q7O0FBaUVBekMsUUFBUSxDQUFDNkMsZUFBVCxHQUEyQixlQUFlQSxlQUFmLENBQWdDM0MsSUFBSSxHQUFHLEVBQXZDLEVBQTJDO0FBQ3BFLFFBQU07QUFDSmlDLElBQUFBLElBREk7QUFFSlcsSUFBQUEsa0JBRkk7QUFHSkMsSUFBQUE7QUFISSxNQUlGN0MsSUFKSjtBQUtBLFFBQU11QyxHQUFHLEdBQUcsQ0FBQyxJQUFELEVBQU8sV0FBUCxDQUFaOztBQUNBLE1BQUksQ0FBQzNCLGdCQUFFQyxLQUFGLENBQVFvQixJQUFSLENBQUwsRUFBb0I7QUFDbEJNLElBQUFBLEdBQUcsQ0FBQzVCLElBQUosQ0FBUyxRQUFULEVBQW1Cc0IsSUFBbkI7QUFDRDs7QUFDRCxNQUFJVyxrQkFBSixFQUF3QjtBQUN0QkwsSUFBQUEsR0FBRyxDQUFDNUIsSUFBSixDQUFTLHVCQUFULEVBQWtDaUMsa0JBQWxDO0FBQ0Q7O0FBQ0QsTUFBSUMsNkJBQUosRUFBbUM7QUFDakNOLElBQUFBLEdBQUcsQ0FBQzVCLElBQUosQ0FBUyxvQ0FBVDtBQUNEOztBQUNENEIsRUFBQUEsR0FBRyxDQUFDNUIsSUFBSixDQUFTLEdBQUlaLGVBQWUsQ0FBQ0MsSUFBRCxDQUE1QjtBQUNBLFNBQU8sTUFBTSxLQUFLd0MsR0FBTCxDQUFTRSxLQUFULENBQWVILEdBQWYsQ0FBYjtBQUNELENBbEJEOztBQWtEQXpDLFFBQVEsQ0FBQ2dELGtCQUFULEdBQThCLGVBQWVBLGtCQUFmLENBQW1DOUMsSUFBSSxHQUFHLEVBQTFDLEVBQThDO0FBQzFFLFFBQU07QUFDSmlDLElBQUFBLElBREk7QUFFSmMsSUFBQUE7QUFGSSxNQUdGL0MsSUFISjtBQUlBLFFBQU11QyxHQUFHLEdBQUcsQ0FBQyxJQUFELENBQVo7O0FBQ0EsTUFBSSxPQUFNLEtBQUtDLEdBQUwsQ0FBU0MsV0FBVCxFQUFOLElBQStCNUMsbUJBQW5DLEVBQXdEO0FBQ3REMEMsSUFBQUEsR0FBRyxDQUFDNUIsSUFBSixDQUFTLGNBQVQ7QUFDRCxHQUZELE1BRU87QUFDTDRCLElBQUFBLEdBQUcsQ0FBQzVCLElBQUosQ0FBU29DLFVBQVUsR0FBRywwQkFBSCxHQUFnQyxlQUFuRDtBQUNEOztBQUNELE1BQUksQ0FBQ25DLGdCQUFFQyxLQUFGLENBQVFvQixJQUFSLENBQUwsRUFBb0I7QUFDbEJNLElBQUFBLEdBQUcsQ0FBQzVCLElBQUosQ0FBUyxRQUFULEVBQW1Cc0IsSUFBbkI7QUFDRDs7QUFDRE0sRUFBQUEsR0FBRyxDQUFDNUIsSUFBSixDQUFTLEdBQUlaLGVBQWUsQ0FBQ0MsSUFBRCxDQUE1QjtBQUNBLFNBQU8sTUFBTSxLQUFLd0MsR0FBTCxDQUFTRSxLQUFULENBQWVILEdBQWYsQ0FBYjtBQUNELENBaEJEOztBQTRDQXpDLFFBQVEsQ0FBQ2tELGlCQUFULEdBQTZCLGVBQWVBLGlCQUFmLENBQWtDaEQsSUFBSSxHQUFHLEVBQXpDLEVBQTZDO0FBQ3hFLFFBQU07QUFDSmlDLElBQUFBO0FBREksTUFFRmpDLElBRko7QUFHQSxRQUFNdUMsR0FBRyxHQUFHLENBQ1YsSUFEVSxFQUVULE9BQU0sS0FBS0MsR0FBTCxDQUFTQyxXQUFULEVBQU4sSUFBK0I1QyxtQkFBaEMsR0FBdUQsYUFBdkQsR0FBdUUsY0FGN0QsQ0FBWjs7QUFJQSxNQUFJLENBQUNlLGdCQUFFQyxLQUFGLENBQVFvQixJQUFSLENBQUwsRUFBb0I7QUFDbEJNLElBQUFBLEdBQUcsQ0FBQzVCLElBQUosQ0FBUyxRQUFULEVBQW1Cc0IsSUFBbkI7QUFDRDs7QUFDRE0sRUFBQUEsR0FBRyxDQUFDNUIsSUFBSixDQUFTLEdBQUlaLGVBQWUsQ0FBQ0MsSUFBRCxDQUE1QjtBQUNBLFNBQU8sTUFBTSxLQUFLd0MsR0FBTCxDQUFTRSxLQUFULENBQWVILEdBQWYsQ0FBYjtBQUNELENBYkQ7O2VBaUJlekMsUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBlcnJvcnMgfSBmcm9tICdhcHBpdW0tYmFzZS1kcml2ZXInO1xuXG5jb25zdCBOT19WQUxVRV9BUkdfVFlQRSA9ICdzbic7XG5jb25zdCBTVVBQT1JURURfRVhUUkFfVFlQRVMgPSBbXG4gICdzJywgTk9fVkFMVUVfQVJHX1RZUEUsICd6JywgJ2knLCAnbCcsICdmJywgJ3UnLCAnY24nLFxuICAnaWEnLCAnaWFsJywgJ2xhJywgJ2xhbCcsICdmYScsICdmYWwnLCAnc2EnLCAnc2FsJyxcbl07XG5jb25zdCBBUElfTEVWRUxfQU5EUk9JRF84ID0gMjY7XG5cbmNvbnN0IGNvbW1hbmRzID0ge307XG5cbmZ1bmN0aW9uIHBhcnNlSW50ZW50U3BlYyAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtcbiAgICBpbnRlbnQsXG4gICAgYWN0aW9uLFxuICAgIHVyaSxcbiAgICBtaW1lVHlwZSxcbiAgICBpZGVudGlmaWVyLFxuICAgIGNhdGVnb3JpZXMsXG4gICAgY29tcG9uZW50LFxuICAgIGV4dHJhcyxcbiAgICBmbGFncyxcbiAgfSA9IG9wdHM7XG4gIGNvbnN0IHJlc3VsdEFyZ3MgPSBbXTtcbiAgaWYgKGludGVudCkge1xuICAgIHJlc3VsdEFyZ3MucHVzaChpbnRlbnQpO1xuICB9XG4gIGlmIChhY3Rpb24pIHtcbiAgICByZXN1bHRBcmdzLnB1c2goJy1hJywgYWN0aW9uKTtcbiAgfVxuICBpZiAodXJpKSB7XG4gICAgcmVzdWx0QXJncy5wdXNoKCctZCcsIHVyaSk7XG4gIH1cbiAgaWYgKG1pbWVUeXBlKSB7XG4gICAgcmVzdWx0QXJncy5wdXNoKCctdCcsIG1pbWVUeXBlKTtcbiAgfVxuICBpZiAoIV8uaXNOaWwoaWRlbnRpZmllcikpIHtcbiAgICByZXN1bHRBcmdzLnB1c2goJy1pJywgaWRlbnRpZmllcik7XG4gIH1cbiAgaWYgKGNhdGVnb3JpZXMpIHtcbiAgICBpZiAoXy5pc0FycmF5KGNhdGVnb3JpZXMpKSB7XG4gICAgICByZXN1bHRBcmdzLnB1c2goLi4uKF8uZmxhdE1hcChjYXRlZ29yaWVzLm1hcCgoY05hbWUpID0+IFsnLWMnLCBjTmFtZV0pKSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXN1bHRBcmdzLnB1c2goJy1jJywgY2F0ZWdvcmllcyk7XG4gICAgfVxuICB9XG4gIGlmIChjb21wb25lbnQpIHtcbiAgICByZXN1bHRBcmdzLnB1c2goJy1uJywgY29tcG9uZW50KTtcbiAgfVxuICBpZiAob3B0cy5wYWNrYWdlKSB7XG4gICAgcmVzdWx0QXJncy5wdXNoKCctcCcsIG9wdHMucGFja2FnZSk7XG4gIH1cbiAgaWYgKGV4dHJhcykge1xuICAgIGlmICghXy5pc0FycmF5KGV4dHJhcykpIHtcbiAgICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZEFyZ3VtZW50RXJyb3IoYCdleHRyYXMnIG11c3QgYmUgYW4gYXJyYXlgKTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIGV4dHJhcykge1xuICAgICAgaWYgKCFfLmlzQXJyYXkoaXRlbSkpIHtcbiAgICAgICAgdGhyb3cgbmV3IGVycm9ycy5JbnZhbGlkQXJndW1lbnRFcnJvcihgRXh0cmEgYXJndW1lbnQgJyR7aXRlbX0nIG11c3QgYmUgYW4gYXJyYXlgKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IFt0eXBlLCBrZXksIHZhbHVlXSA9IGl0ZW07XG4gICAgICBpZiAoIV8uaW5jbHVkZXMoU1VQUE9SVEVEX0VYVFJBX1RZUEVTLCB0eXBlKSkge1xuICAgICAgICB0aHJvdyBuZXcgZXJyb3JzLkludmFsaWRBcmd1bWVudEVycm9yKFxuICAgICAgICAgIGBFeHRyYSBhcmd1bWVudCB0eXBlICcke3R5cGV9JyBpcyBub3Qga25vd24uIGAgK1xuICAgICAgICAgIGBTdXBwb3J0ZWQgaW50ZW50IGFyZ3VtZW50IHR5cGVzIGFyZTogJHtTVVBQT1JURURfRVhUUkFfVFlQRVN9YFxuICAgICAgICApO1xuICAgICAgfVxuICAgICAgaWYgKF8uaXNFbXB0eShrZXkpIHx8IChfLmlzU3RyaW5nKGtleSkgJiYgXy50cmltKGtleSkgPT09ICcnKSkge1xuICAgICAgICB0aHJvdyBuZXcgZXJyb3JzLkludmFsaWRBcmd1bWVudEVycm9yKFxuICAgICAgICAgIGBFeHRyYSBhcmd1bWVudCdzIGtleSBpbiAnJHtKU09OLnN0cmluZ2lmeShpdGVtKX0nIG11c3QgYmUgYSB2YWxpZCBzdHJpbmcgaWRlbnRpZmllcmBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlID09PSBOT19WQUxVRV9BUkdfVFlQRSkge1xuICAgICAgICByZXN1bHRBcmdzLnB1c2goYC0tZSR7dHlwZX1gLCBrZXkpO1xuICAgICAgfSBlbHNlIGlmIChfLmlzVW5kZWZpbmVkKHZhbHVlKSkge1xuICAgICAgICB0aHJvdyBuZXcgZXJyb3JzLkludmFsaWRBcmd1bWVudEVycm9yKFxuICAgICAgICAgIGBJbnRlbnQgYXJndW1lbnQgdHlwZSAnJHt0eXBlfScgaW4gJyR7SlNPTi5zdHJpbmdpZnkoaXRlbSl9JyByZXF1aXJlcyBhIGAgK1xuICAgICAgICAgIGB2YWxpZCB2YWx1ZSB0byBiZSBwcm92aWRlZGBcbiAgICAgICAgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJlc3VsdEFyZ3MucHVzaChgLS1lJHt0eXBlfWAsIGtleSwgdmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBpZiAoZmxhZ3MpIHtcbiAgICByZXN1bHRBcmdzLnB1c2goJy1mJywgZmxhZ3MpO1xuICB9XG4gIHJldHVybiByZXN1bHRBcmdzO1xufVxuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IFN0YXJ0QWN0aXZpdHlPcHRpb25zXG4gKiBAcHJvcGVydHkgez9zdHJpbmd8bnVtYmVyfSB1c2VyIFsnY3VycmVudCddIC0gVGhlIHVzZXIgSUQgZm9yIHdoaWNoIHRoZSBzZXJ2aWNlIGlzIHN0YXJ0ZWQuXG4gKiBUaGUgYGN1cnJlbnRgIHVzZXIgaWQgaXMgdXNlZCBieSBkZWZhdWx0XG4gKiBAcHJvcGVydHkgez9ib29sZWFufSB3YWl0IFtmYWxzZV0gLSBTZXQgaXQgdG8gYHRydWVgIGlmIHlvdSB3YW50IHRvIGJsb2NrIHRoZSBtZXRob2QgY2FsbFxuICogdW50aWwgdGhlIGFjdGl2aXR5IG1hbmFnZXIncyBwcm9jZXNzIHJldHVybnMgdGhlIGNvbnRyb2wgdG8gdGhlIHN5c3RlbS5cbiAqIEBwcm9wZXJ0eSB7P2Jvb2xlYW59IHN0b3AgW2ZhbHNlXSAtIFNldCBpdCB0byBgdHJ1ZWAgdG8gZm9yY2Ugc3RvcCB0aGUgdGFyZ2V0XG4gKiBhcHAgYmVmb3JlIHN0YXJ0aW5nIHRoZSBhY3Rpdml0eVxuICogQHByb3BlcnR5IHs/bnVtYmVyfHN0cmluZ30gd2luZG93aW5nTW9kZSAtIFRoZSB3aW5kb3dpbmcgbW9kZSB0byBsYXVuY2ggdGhlIGFjdGl2aXR5IGludG8uXG4gKiBDaGVjayBodHRwczovL2FuZHJvaWQuZ29vZ2xlc291cmNlLmNvbS9wbGF0Zm9ybS9mcmFtZXdvcmtzL2Jhc2UvKy9tYXN0ZXIvY29yZS9qYXZhL2FuZHJvaWQvYXBwL1dpbmRvd0NvbmZpZ3VyYXRpb24uamF2YVxuICogZm9yIG1vcmUgZGV0YWlscyBvbiBwb3NzaWJsZSB3aW5kb3dpbmcgbW9kZXMgKGNvbnN0YW50cyBzdGFydGluZyB3aXRoIGBXSU5ET1dJTkdfTU9ERV9gKS5cbiAqIEBwcm9wZXJ0eSB7P251bWJlcnxzdHJpbmd9IGFjdGl2aXR5VHlwZSAtIFRoZSBhY3Rpdml0eSB0eXBlIHRvIGxhdW5jaCB0aGUgYWN0aXZpdHkgYXMuXG4gKiBDaGVjayBodHRwczovL2FuZHJvaWQuZ29vZ2xlc291cmNlLmNvbS9wbGF0Zm9ybS9mcmFtZXdvcmtzL2Jhc2UvKy9tYXN0ZXIvY29yZS9qYXZhL2FuZHJvaWQvYXBwL1dpbmRvd0NvbmZpZ3VyYXRpb24uamF2YVxuICogZm9yIG1vcmUgZGV0YWlscyBvbiBwb3NzaWJsZSBhY3Rpdml0eSB0eXBlcyAoY29uc3RhbnRzIHN0YXJ0aW5nIHdpdGggYEFDVElWSVRZX1RZUEVfYCkuXG4gKiBAcHJvcGVydHkgez9udW1iZXJ8c3RyaW5nfSBkaXNwbGF5IC0gVGhlIGRpc3BsYXkgaWRlbnRpZmllciB0byBsYXVuY2ggdGhlIGFjdGl2aXR5IGludG8uXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IGludGVudCAtIFRoZSBuYW1lIG9mIHRoZSBhY3Rpdml0eSBpbnRlbnQgdG8gc3RhcnQsIGZvciBleGFtcGxlXG4gKiBgY29tLnNvbWUucGFja2FnZS5uYW1lLy5Zb3VyU2VydmljZVN1YkNsYXNzTmFtZWBcbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gYWN0aW9uIC0gQWN0aW9uIG5hbWVcbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gcGFja2FnZSAtIFBhY2thZ2UgbmFtZVxuICogQHByb3BlcnR5IHs/c3RyaW5nfSB1cmkgLSBVbmlmaWVkIHJlc291cmNlIGlkZW50aWZpZXJcbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gbWltZVR5cGUgLSBNaW1lIHR5cGVcbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gaWRlbnRpZmllciAtIE9wdGlvbmFsIGlkZW50aWZpZXJcbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ3xBcnJheTxzdHJpbmc+fSBjYXRlZ29yaWVzIC0gT25lIG9yIG1vcmUgY2F0ZWdvcnkgbmFtZXNcbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gY29tcG9uZW50IC0gQ29tcG9uZW50IG5hbWVcbiAqIEBwcm9wZXJ0eSB7QXJyYXk8c3RyaW5nfEFycmF5PHN0cmluZz4+fSBleHRyYXMgLSBPcHRpb25hbCBpbnRlbnQgYXJndW1lbnRzLiBNdXN0IGJlIHJlcHJlc2VudGVkXG4gKiBhcyBhcnJheSBvZiBhcnJheXMsIHdoZXJlIGVhY2ggc3ViYXJyYXkgaXRlbSBjb250YWlucyB0d28gb3IgdGhyZWUgc3RyaW5nIGl0ZW1zOlxuICogdmFsdWUgdHlwZSwga2V5IG5hbWUgYW5kIHRoZSB2YWx1ZSBpdHNlbGYuXG4gKiBTdXBwb3J0ZWQgdmFsdWUgdHlwZXMgYXJlOlxuICogLSBzOiBzdHJpbmcuIFZhbHVlIG11c3QgYmUgYSB2YWxpZCBzdHJpbmdcbiAqIC0gc246IG51bGwuIFZhbHVlIGlzIGlnbm9yZWQgZm9yIHRoaXMgdHlwZVxuICogLSB6OiBib29sZWFuLiBWYWx1ZSBtdXN0IGJlIGVpdGhlciBgdHJ1ZWAgb3IgYGZhbHNlYFxuICogLSBpOiBpbnRlZ2VyLiBWYWx1ZSBtdXN0IGJlIGEgdmFsaWQgNC1ieXRlIGludGVnZXIgbnVtYmVyXG4gKiAtIGw6IGxvbmcuIFZhbHVlIG11c3QgYmUgYSB2YWxpZCA4LWJ5dGUgbG9uZyBudW1iZXJcbiAqIC0gZjogZmxvYXQ6IFZhbHVlIG11c3QgYmUgYSB2YWxpZCBmbG9hdCBudW1iZXJcbiAqIC0gdTogdXJpLiBWYWx1ZSBtdXN0IGJlIGEgdmFsaWQgdW5pZm9ybSByZXNvdXJjZSBpZGVudGlmaWVyIHN0cmluZ1xuICogLSBjbjogY29tcG9uZW50IG5hbWUuIFZhbHVlIG11c3QgYmUgYSB2YWxpZCBjb21wb25lbnQgbmFtZSBzdHJpbmdcbiAqIC0gaWE6IEludGVnZXJbXS4gVmFsdWUgbXVzdCBiZSBhIHN0cmluZyBvZiBjb21tYS1zZXBhcmF0ZWQgaW50ZWdlcnNcbiAqIC0gaWFsOiBMaXN0PEludGVnZXI+LiBWYWx1ZSBtdXN0IGJlIGEgc3RyaW5nIG9mIGNvbW1hLXNlcGFyYXRlZCBpbnRlZ2Vyc1xuICogLSBsYTogTG9uZ1tdLiBWYWx1ZSBtdXN0IGJlIGEgc3RyaW5nIG9mIGNvbW1hLXNlcGFyYXRlZCBsb25nIG51bWJlcnNcbiAqIC0gbGFsOiBMaXN0PExvbmc+LiBWYWx1ZSBtdXN0IGJlIGEgc3RyaW5nIG9mIGNvbW1hLXNlcGFyYXRlZCBsb25nIG51bWJlcnNcbiAqIC0gZmE6IEZsb2F0W10uIFZhbHVlIG11c3QgYmUgYSBzdHJpbmcgb2YgY29tbWEtc2VwYXJhdGVkIGZsb2F0IG51bWJlcnNcbiAqIC0gZmFsOiBMaXN0PEZsb2F0Pi4gVmFsdWUgbXVzdCBiZSBhIHN0cmluZyBvZiBjb21tYS1zZXBhcmF0ZWQgZmxvYXQgbnVtYmVyc1xuICogLSBzYTogU3RyaW5nW10uIFZhbHVlIG11c3QgYmUgY29tbWEtc2VwYXJhdGVkIHN0cmluZ3MuIFRvIGVtYmVkIGEgY29tbWEgaW50byBhIHN0cmluZyxcbiAqIGVzY2FwZSBpdCB1c2luZyBcIlxcLFwiXG4gKiAtIHNhbDogTGlzdDxTdHJpbmc+LiBWYWx1ZSBtdXN0IGJlIGNvbW1hLXNlcGFyYXRlZCBzdHJpbmdzLiBUbyBlbWJlZCBhIGNvbW1hIGludG8gYSBzdHJpbmcsXG4gKiBlc2NhcGUgaXQgdXNpbmcgXCJcXCxcIlxuICogRm9yIGV4YW1wbGU6IFtbJ3MnLCAndmFyTmFtZTEnLCAnTXkgU3RyaW5nMSddLCBbJ3MnLCAndmFyTmFtZTInLCAnTXkgU3RyaW5nMiddLCBbJ2lhJywgJ2Fyck5hbWUnLCAnMSwyLDMsNCddXVxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBmbGFncyAtIEludGVudCBzdGFydHVwLXNwZWNpZmljIGZsYWdzIGFzIGEgaGV4YWRlY2ltYWwgc3RyaW5nLlxuICogU2VlIGh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3JlZmVyZW5jZS9hbmRyb2lkL2NvbnRlbnQvSW50ZW50Lmh0bWxcbiAqIGZvciB0aGUgbGlzdCBvZiBhdmFpbGFibGUgZmxhZyB2YWx1ZXMgKGNvbnN0YW50cyBzdGFydGluZyB3aXRoIEZMQUdfQUNUSVZJVFlfKS5cbiAqIEZsYWcgdmFsdWVzIGNvdWxkIGJlIG1lcmdlZCB1c2luZyB0aGUgbG9naWNhbCAnb3InIG9wZXJhdGlvbi5cbiAqIEZvciBleGFtcGxlLCAweDEwMjAwMDAwIGlzIHRoZSBjb21iaW5hdGlvbiBvZiB0d28gZmxhZ3M6XG4gKiAweDEwMDAwMDAwIGBGTEFHX0FDVElWSVRZX05FV19UQVNLYCB8IDB4MDAyMDAwMDAgYEZMQUdfQUNUSVZJVFlfUkVTRVRfVEFTS19JRl9ORUVERURgXG4gKi9cblxuLyoqXG4gKiBTdGFydHMgdGhlIGdpdmVuIGFjdGl2aXR5IGludGVudC5cbiAqXG4gKiBAcGFyYW0ge1N0YXJ0QWN0aXZpdHlPcHRpb25zfSBvcHRzXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgY29tbWFuZCBvdXRwdXRcbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGVyZSB3YXMgYSBmYWlsdXJlIHdoaWxlIHN0YXJ0aW5nIHRoZSBhY3Rpdml0eVxuICogb3IgcmVxdWlyZWQgb3B0aW9ucyBhcmUgbWlzc2luZ1xuICovXG5jb21tYW5kcy5tb2JpbGVTdGFydEFjdGl2aXR5ID0gYXN5bmMgZnVuY3Rpb24gbW9iaWxlU3RhcnRBY3Rpdml0eSAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtcbiAgICB1c2VyLFxuICAgIHdhaXQsXG4gICAgc3RvcCxcbiAgICB3aW5kb3dpbmdNb2RlLFxuICAgIGFjdGl2aXR5VHlwZSxcbiAgICBkaXNwbGF5LFxuICB9ID0gb3B0cztcbiAgY29uc3QgY21kID0gW1xuICAgICdhbScsIChhd2FpdCB0aGlzLmFkYi5nZXRBcGlMZXZlbCgpIDwgQVBJX0xFVkVMX0FORFJPSURfOCkgPyAnc3RhcnQnIDogJ3N0YXJ0LWFjdGl2aXR5JyxcbiAgXTtcbiAgaWYgKCFfLmlzTmlsKHVzZXIpKSB7XG4gICAgY21kLnB1c2goJy0tdXNlcicsIHVzZXIpO1xuICB9XG4gIGlmICh3YWl0KSB7XG4gICAgY21kLnB1c2goJy1XJyk7XG4gIH1cbiAgaWYgKHN0b3ApIHtcbiAgICBjbWQucHVzaCgnLVMnKTtcbiAgfVxuICBpZiAoIV8uaXNOaWwod2luZG93aW5nTW9kZSkpIHtcbiAgICBjbWQucHVzaCgnLS13aW5kb3dpbmdNb2RlJywgd2luZG93aW5nTW9kZSk7XG4gIH1cbiAgaWYgKCFfLmlzTmlsKGFjdGl2aXR5VHlwZSkpIHtcbiAgICBjbWQucHVzaCgnLS1hY3Rpdml0eVR5cGUnLCBhY3Rpdml0eVR5cGUpO1xuICB9XG4gIGlmICghXy5pc05pbChkaXNwbGF5KSkge1xuICAgIGNtZC5wdXNoKCctLWRpc3BsYXknLCBkaXNwbGF5KTtcbiAgfVxuICBjbWQucHVzaCguLi4ocGFyc2VJbnRlbnRTcGVjKG9wdHMpKSk7XG4gIHJldHVybiBhd2FpdCB0aGlzLmFkYi5zaGVsbChjbWQpO1xufTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBCcm9hZGNhc3RPcHRpb25zXG4gKiBAcHJvcGVydHkgez9zdHJpbmd8bnVtYmVyfSB1c2VyIFsnYWxsJ10gLSBUaGUgdXNlciBJRCBmb3Igd2hpY2ggdGhlIGJyb2FkY2FzdCBpcyBzZW50LlxuICogVGhlIGBjdXJyZW50YCBhbGlhcyBhc3N1bWVzIHRoZSBjdXJyZW50IHVzZXIgSUQuXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IHJlY2VpdmVyUGVybWlzc2lvbiAtIFJlcXVpcmUgcmVjZWl2ZXIgdG8gaG9sZCB0aGUgZ2l2ZW4gcGVybWlzc2lvbi5cbiAqIEBwcm9wZXJ0eSB7P2Jvb2xlYW59IGFsbG93QmFja2dyb3VuZEFjdGl2aXR5U3RhcnRzIFtmYWxzZV0gLSBXaGV0aGVyIHRoZSByZWNlaXZlciBtYXlcbiAqIHN0YXJ0IGFjdGl2aXRpZXMgZXZlbiBpZiBpbiB0aGUgYmFja2dyb3VuZC5cbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gaW50ZW50IC0gVGhlIG5hbWUgb2YgdGhlIGludGVudCB0byBicm9hZGNhc3QgdG8sIGZvciBleGFtcGxlXG4gKiBgY29tLnNvbWUucGFja2FnZS5uYW1lLy5Zb3VyU2VydmljZVN1YkNsYXNzTmFtZWAuXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IGFjdGlvbiAtIEFjdGlvbiBuYW1lXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IHVyaSAtIFVuaWZpZWQgcmVzb3VyY2UgaWRlbnRpZmllclxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBtaW1lVHlwZSAtIE1pbWUgdHlwZVxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBpZGVudGlmaWVyIC0gT3B0aW9uYWwgaWRlbnRpZmllclxuICogQHByb3BlcnR5IHs/c3RyaW5nfEFycmF5PHN0cmluZz59IGNhdGVnb3JpZXMgLSBPbmUgb3IgbW9yZSBjYXRlZ29yeSBuYW1lc1xuICogQHByb3BlcnR5IHs/c3RyaW5nfSBjb21wb25lbnQgLSBDb21wb25lbnQgbmFtZVxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBwYWNrYWdlIC0gUGFja2FnZSBuYW1lXG4gKiBAcHJvcGVydHkge0FycmF5PEFycmF5PHN0cmluZz4+fSBleHRyYXMgLSBPcHRpb25hbCBpbnRlbnQgYXJndW1lbnRzLlxuICogU2VlIGFib3ZlIGZvciB0aGUgZGV0YWlsZWQgZGVzY3JpcHRpb24uXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IGZsYWdzIC0gSW50ZW50IHN0YXJ0dXAtc3BlY2lmaWMgZmxhZ3MgYXMgYSBoZXhhZGVjaW1hbCBzdHJpbmcuXG4gKiBTZWUgYWJvdmUgZm9yIHRoZSBkZXRhaWxlZCBkZXNjcmlwdGlvbi5cbiAqL1xuXG5cbi8qKlxuICogU2VuZCBhIGJyb2FkY2FzdCBpbnRlbnQuXG4gKlxuICogQHBhcmFtIHtCcm9hZGNhc3RPcHRpb25zfSBvcHRzXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgY29tbWFuZCBvdXRwdXRcbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGVyZSB3YXMgYSBmYWlsdXJlIHdoaWxlIHN0YXJ0aW5nIHRoZSBhY3Rpdml0eVxuICogb3IgcmVxdWlyZWQgb3B0aW9ucyBhcmUgbWlzc2luZ1xuICovXG5jb21tYW5kcy5tb2JpbGVCcm9hZGNhc3QgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVCcm9hZGNhc3QgKG9wdHMgPSB7fSkge1xuICBjb25zdCB7XG4gICAgdXNlcixcbiAgICByZWNlaXZlclBlcm1pc3Npb24sXG4gICAgYWxsb3dCYWNrZ3JvdW5kQWN0aXZpdHlTdGFydHMsXG4gIH0gPSBvcHRzO1xuICBjb25zdCBjbWQgPSBbJ2FtJywgJ2Jyb2FkY2FzdCddO1xuICBpZiAoIV8uaXNOaWwodXNlcikpIHtcbiAgICBjbWQucHVzaCgnLS11c2VyJywgdXNlcik7XG4gIH1cbiAgaWYgKHJlY2VpdmVyUGVybWlzc2lvbikge1xuICAgIGNtZC5wdXNoKCctLXJlY2VpdmVyLXBlcm1pc3Npb24nLCByZWNlaXZlclBlcm1pc3Npb24pO1xuICB9XG4gIGlmIChhbGxvd0JhY2tncm91bmRBY3Rpdml0eVN0YXJ0cykge1xuICAgIGNtZC5wdXNoKCctLWFsbG93LWJhY2tncm91bmQtYWN0aXZpdHktc3RhcnRzJyk7XG4gIH1cbiAgY21kLnB1c2goLi4uKHBhcnNlSW50ZW50U3BlYyhvcHRzKSkpO1xuICByZXR1cm4gYXdhaXQgdGhpcy5hZGIuc2hlbGwoY21kKTtcbn07XG5cbi8qKlxuICogQHR5cGVkZWYge09iamVjdH0gU3RhcnRTZXJ2aWNlT3B0aW9uc1xuICogQHByb3BlcnR5IHs/c3RyaW5nfG51bWJlcn0gdXNlciBbJ2N1cnJlbnQnXSAtIFRoZSB1c2VyIElEIGZvciB3aGljaCB0aGUgc2VydmljZSBpcyBzdGFydGVkLlxuICogVGhlIGBjdXJyZW50YCB1c2VyIGlkIGlzIHVzZWQgYnkgZGVmYXVsdFxuICogQHByb3BlcnR5IHs/Ym9vbGVhbn0gZm9yZWdyb3VuZCBbZmFsc2VdIC0gU2V0IGl0IHRvIGB0cnVlYCBpZiB5b3VyIHNlcnZpY2UgbXVzdCBiZVxuICogc3RhcnRlZCBhcyBmb3JlZ3JvdW5kIHNlcnZpY2UuIFRoaXMgb3B0aW9uIGlzIGlnbm9yZWQgaWYgdGhlIEFQSSBsZXZlbCBvZiB0aGVcbiAqIGRldmljZSB1bmRlciB0ZXN0IGlzIGJlbG93IDI2IChBbmRyb2lkIDgpLlxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBpbnRlbnQgLSBUaGUgbmFtZSBvZiB0aGUgc2VydmljZSBpbnRlbnQgdG8gc3RhcnQsIGZvciBleGFtcGxlXG4gKiBgY29tLnNvbWUucGFja2FnZS5uYW1lLy5Zb3VyU2VydmljZVN1YkNsYXNzTmFtZWAuXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IGFjdGlvbiAtIEFjdGlvbiBuYW1lXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IHVyaSAtIFVuaWZpZWQgcmVzb3VyY2UgaWRlbnRpZmllclxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBtaW1lVHlwZSAtIE1pbWUgdHlwZVxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBpZGVudGlmaWVyIC0gT3B0aW9uYWwgaWRlbnRpZmllclxuICogQHByb3BlcnR5IHs/c3RyaW5nfEFycmF5PHN0cmluZz59IGNhdGVnb3JpZXMgLSBPbmUgb3IgbW9yZSBjYXRlZ29yeSBuYW1lc1xuICogQHByb3BlcnR5IHs/c3RyaW5nfSBjb21wb25lbnQgLSBDb21wb25lbnQgbmFtZVxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBwYWNrYWdlIC0gUGFja2FnZSBuYW1lXG4gKiBAcHJvcGVydHkge0FycmF5PEFycmF5PHN0cmluZz4+fSBleHRyYXMgLSBPcHRpb25hbCBpbnRlbnQgYXJndW1lbnRzLlxuICogU2VlIGFib3ZlIGZvciB0aGUgZGV0YWlsZWQgZGVzY3JpcHRpb24uXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IGZsYWdzIC0gSW50ZW50IHN0YXJ0dXAtc3BlY2lmaWMgZmxhZ3MgYXMgYSBoZXhhZGVjaW1hbCBzdHJpbmcuXG4gKiBTZWUgYWJvdmUgZm9yIHRoZSBkZXRhaWxlZCBkZXNjcmlwdGlvbi5cbiAqL1xuXG4vKipcbiAqIFN0YXJ0cyB0aGUgZ2l2ZW4gc2VydmljZSBpbnRlbnQuXG4gKlxuICogQHBhcmFtIHtTdGFydFNlcnZpY2VPcHRpb25zfSBvcHRzXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgY29tbWFuZCBvdXRwdXRcbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGVyZSB3YXMgYSBmYWlsdXJlIHdoaWxlIHN0YXJ0aW5nIHRoZSBzZXJ2aWNlXG4gKiBvciByZXF1aXJlZCBvcHRpb25zIGFyZSBtaXNzaW5nXG4gKi9cbmNvbW1hbmRzLm1vYmlsZVN0YXJ0U2VydmljZSA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVN0YXJ0U2VydmljZSAob3B0cyA9IHt9KSB7XG4gIGNvbnN0IHtcbiAgICB1c2VyLFxuICAgIGZvcmVncm91bmQsXG4gIH0gPSBvcHRzO1xuICBjb25zdCBjbWQgPSBbJ2FtJ107XG4gIGlmIChhd2FpdCB0aGlzLmFkYi5nZXRBcGlMZXZlbCgpIDwgQVBJX0xFVkVMX0FORFJPSURfOCkge1xuICAgIGNtZC5wdXNoKCdzdGFydHNlcnZpY2UnKTtcbiAgfSBlbHNlIHtcbiAgICBjbWQucHVzaChmb3JlZ3JvdW5kID8gJ3N0YXJ0LWZvcmVncm91bmQtc2VydmljZScgOiAnc3RhcnQtc2VydmljZScpO1xuICB9XG4gIGlmICghXy5pc05pbCh1c2VyKSkge1xuICAgIGNtZC5wdXNoKCctLXVzZXInLCB1c2VyKTtcbiAgfVxuICBjbWQucHVzaCguLi4ocGFyc2VJbnRlbnRTcGVjKG9wdHMpKSk7XG4gIHJldHVybiBhd2FpdCB0aGlzLmFkYi5zaGVsbChjbWQpO1xufTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBTdG9wU2VydmljZU9wdGlvbnNcbiAqIEBwcm9wZXJ0eSB7c3RyaW5nfG51bWJlcn0gdXNlciBbJ2N1cnJlbnQnXSAtIFRoZSB1c2VyIElEIGZvciB3aGljaCB0aGUgc2VydmljZSBpcyBydW5uaW5nLlxuICogVGhlIGBjdXJyZW50YCB1c2VyIGlkIGlzIHVzZWQgYnkgZGVmYXVsdFxuICogQHByb3BlcnR5IHs/c3RyaW5nfSBpbnRlbnQgLSBUaGUgbmFtZSBvZiB0aGUgc2VydmljZSBpbnRlbnQgdG8gc3RvcCwgZm9yIGV4YW1wbGVcbiAqIGBjb20uc29tZS5wYWNrYWdlLm5hbWUvLllvdXJTZXJ2aWNlU3ViQ2xhc3NOYW1lYC5cbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gYWN0aW9uIC0gQWN0aW9uIG5hbWVcbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gdXJpIC0gVW5pZmllZCByZXNvdXJjZSBpZGVudGlmaWVyXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IG1pbWVUeXBlIC0gTWltZSB0eXBlXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IGlkZW50aWZpZXIgLSBPcHRpb25hbCBpZGVudGlmaWVyXG4gKiBAcHJvcGVydHkgez9zdHJpbmd8QXJyYXk8c3RyaW5nPn0gY2F0ZWdvcmllcyAtIE9uZSBvciBtb3JlIGNhdGVnb3J5IG5hbWVzXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IGNvbXBvbmVudCAtIENvbXBvbmVudCBuYW1lXG4gKiBAcHJvcGVydHkgez9zdHJpbmd9IHBhY2thZ2UgLSBQYWNrYWdlIG5hbWVcbiAqIEBwcm9wZXJ0eSB7QXJyYXk8QXJyYXk8c3RyaW5nPj59IGV4dHJhcyAtIE9wdGlvbmFsIGludGVudCBhcmd1bWVudHMuXG4gKiBTZWUgYWJvdmUgZm9yIHRoZSBkZXRhaWxlZCBkZXNjcmlwdGlvbi5cbiAqIEBwcm9wZXJ0eSB7P3N0cmluZ30gZmxhZ3MgLSBTZWUgYWJvdmUgZm9yIHRoZSBkZXRhaWxlZCBkZXNjcmlwdGlvbi5cbiAqL1xuXG4vKipcbiAqIFN0b3BzIHRoZSBnaXZlbiBzZXJ2aWNlIGludGVudC5cbiAqXG4gKiBAcGFyYW0ge1N0b3BTZXJ2aWNlT3B0aW9uc30gb3B0c1xuICogQHJldHVybnMge3N0cmluZ30gVGhlIGNvbW1hbmQgb3V0cHV0XG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlcmUgd2FzIGEgZmFpbHVyZSB3aGlsZSBzdG9wcGluZyB0aGUgc2VydmljZVxuICogb3IgcmVxdWlyZWQgb3B0aW9ucyBhcmUgbWlzc2luZ1xuICovXG5jb21tYW5kcy5tb2JpbGVTdG9wU2VydmljZSA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZVN0b3BTZXJ2aWNlIChvcHRzID0ge30pIHtcbiAgY29uc3Qge1xuICAgIHVzZXIsXG4gIH0gPSBvcHRzO1xuICBjb25zdCBjbWQgPSBbXG4gICAgJ2FtJyxcbiAgICAoYXdhaXQgdGhpcy5hZGIuZ2V0QXBpTGV2ZWwoKSA8IEFQSV9MRVZFTF9BTkRST0lEXzgpID8gJ3N0b3BzZXJ2aWNlJyA6ICdzdG9wLXNlcnZpY2UnXG4gIF07XG4gIGlmICghXy5pc05pbCh1c2VyKSkge1xuICAgIGNtZC5wdXNoKCctLXVzZXInLCB1c2VyKTtcbiAgfVxuICBjbWQucHVzaCguLi4ocGFyc2VJbnRlbnRTcGVjKG9wdHMpKSk7XG4gIHJldHVybiBhd2FpdCB0aGlzLmFkYi5zaGVsbChjbWQpO1xufTtcblxuXG5leHBvcnQgeyBjb21tYW5kcyB9O1xuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwiZmlsZSI6ImxpYi9jb21tYW5kcy9pbnRlbnQuanMiLCJzb3VyY2VSb290IjoiLi4vLi4vLi4ifQ==
|
|
@@ -119,6 +119,9 @@ let commonCapConstraints = {
|
|
|
119
119
|
chromedriverDisableBuildCheck: {
|
|
120
120
|
isBoolean: true
|
|
121
121
|
},
|
|
122
|
+
chromeLoggingPrefs: {
|
|
123
|
+
isObject: true
|
|
124
|
+
},
|
|
122
125
|
autoWebviewTimeout: {
|
|
123
126
|
isNumber: true
|
|
124
127
|
},
|
|
@@ -197,6 +200,10 @@ let commonCapConstraints = {
|
|
|
197
200
|
unlockKey: {
|
|
198
201
|
isString: true
|
|
199
202
|
},
|
|
203
|
+
unlockStrategy: {
|
|
204
|
+
isString: true,
|
|
205
|
+
inclusionCaseInsensitive: ['locksettings', 'uiautomator']
|
|
206
|
+
},
|
|
200
207
|
otherApps: {
|
|
201
208
|
isString: true
|
|
202
209
|
},
|
|
@@ -291,4 +298,4 @@ var _default = desiredCapConstraints;
|
|
|
291
298
|
exports.default = _default;require('source-map-support').install();
|
|
292
299
|
|
|
293
300
|
|
|
294
|
-
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9kZXNpcmVkLWNhcHMuanMiXSwibmFtZXMiOlsiY29tbW9uQ2FwQ29uc3RyYWludHMiLCJwbGF0Zm9ybU5hbWUiLCJpc1N0cmluZyIsImluY2x1c2lvbkNhc2VJbnNlbnNpdGl2ZSIsInByZXNlbmNlIiwiYXBwIiwiYXBwQWN0aXZpdHkiLCJhcHBQYWNrYWdlIiwiYXBwV2FpdEFjdGl2aXR5IiwiYXBwV2FpdFBhY2thZ2UiLCJhcHBXYWl0RHVyYXRpb24iLCJpc051bWJlciIsImRldmljZVJlYWR5VGltZW91dCIsImFuZHJvaWRDb3ZlcmFnZSIsImFuZHJvaWREZXZpY2VSZWFkeVRpbWVvdXQiLCJhbmRyb2lkRGV2aWNlU29ja2V0IiwiYW5kcm9pZEluc3RhbGxUaW1lb3V0IiwiYWRiUG9ydCIsInJlbW90ZUFkYkhvc3QiLCJhZGJFeGVjVGltZW91dCIsImF2ZCIsImF2ZExhdW5jaFRpbWVvdXQiLCJhdmRSZWFkeVRpbWVvdXQiLCJhdmRBcmdzIiwiYXZkRW52IiwiaXNPYmplY3QiLCJ1c2VLZXlzdG9yZSIsImlzQm9vbGVhbiIsImtleXN0b3JlUGF0aCIsImtleXN0b3JlUGFzc3dvcmQiLCJrZXlBbGlhcyIsImtleVBhc3N3b3JkIiwid2Vidmlld0RldnRvb2xzUG9ydCIsImVuc3VyZVdlYnZpZXdzSGF2ZVBhZ2VzIiwiZW5hYmxlV2Vidmlld0RldGFpbHNDb2xsZWN0aW9uIiwiY2hyb21lRHJpdmVyUG9ydCIsImNocm9tZWRyaXZlclBvcnQiLCJjaHJvbWVkcml2ZXJQb3J0cyIsImlzQXJyYXkiLCJjaHJvbWVkcml2ZXJBcmdzIiwiY2hyb21lZHJpdmVyRXhlY3V0YWJsZSIsImNocm9tZWRyaXZlckV4ZWN1dGFibGVEaXIiLCJjaHJvbWVkcml2ZXJDaHJvbWVNYXBwaW5nRmlsZSIsImNocm9tZWRyaXZlclVzZVN5c3RlbUV4ZWN1dGFibGUiLCJjaHJvbWVkcml2ZXJEaXNhYmxlQnVpbGRDaGVjayIsImF1dG9XZWJ2aWV3VGltZW91dCIsImludGVudEFjdGlvbiIsImludGVudENhdGVnb3J5IiwiaW50ZW50RmxhZ3MiLCJvcHRpb25hbEludGVudEFyZ3VtZW50cyIsImRvbnRTdG9wQXBwT25SZXNldCIsInVuaWNvZGVLZXlib2FyZCIsInJlc2V0S2V5Ym9hcmQiLCJub1NpZ24iLCJyZWNyZWF0ZUNocm9tZURyaXZlclNlc3Npb25zIiwiYXV0b0xhdW5jaCIsIm5hdGl2ZVdlYlNjcmVlbnNob3QiLCJhbmRyb2lkU2NyZWVuc2hvdFBhdGgiLCJhbmRyb2lkSW5zdGFsbFBhdGgiLCJjbGVhclN5c3RlbUZpbGVzIiwiZXh0cmFjdENocm9tZUFuZHJvaWRQYWNrYWdlRnJvbUNvbnRleHROYW1lIiwiYXV0b0dyYW50UGVybWlzc2lvbnMiLCJzaGFyZWRQcmVmZXJlbmNlcyIsIm5ldHdvcmtTcGVlZCIsImdwc0VuYWJsZWQiLCJpc0hlYWRsZXNzIiwic2hvd0Nocm9tZWRyaXZlckxvZyIsInNraXBVbmxvY2siLCJjbGVhckRldmljZUxvZ3NPblN0YXJ0IiwidW5sb2NrVHlwZSIsInVubG9ja0tleSIsIm90aGVyQXBwcyIsInVuaW5zdGFsbE90aGVyUGFja2FnZXMiLCJhbGxvd1Rlc3RQYWNrYWdlcyIsInBhZ2VMb2FkU3RyYXRlZ3kiLCJsb2NhbGVTY3JpcHQiLCJza2lwRGV2aWNlSW5pdGlhbGl6YXRpb24iLCJyZW1vdGVBcHBzQ2FjaGVMaW1pdCIsImJ1aWxkVG9vbHNWZXJzaW9uIiwic2tpcExvZ2NhdENhcHR1cmUiLCJjaHJvbWVPcHRpb25zIiwiZW5hYmxlUGVyZm9ybWFuY2VMb2dnaW5nIiwidXNlclByb2ZpbGUiLCJicm93c2VyTmFtZSIsImVuZm9yY2VBcHBJbnN0YWxsIiwic3VwcHJlc3NLaWxsU2VydmVyIiwiYWxsb3dPZmZsaW5lRGV2aWNlcyIsImlnbm9yZUhpZGRlbkFwaVBvbGljeUVycm9yIiwidW5sb2NrU3VjY2Vzc1RpbWVvdXQiLCJtb2NrTG9jYXRpb25BcHAiLCJsb2djYXRGb3JtYXQiLCJsb2djYXRGaWx0ZXJTcGVjcyIsImFsbG93RGVsYXlBZGIiLCJ1aWF1dG9tYXRvckNhcENvbnN0cmFpbnRzIiwiaWdub3JlVW5pbXBvcnRhbnRWaWV3cyIsImRpc2FibGVBbmRyb2lkV2F0Y2hlcnMiLCJhY2NlcHRTc2xDZXJ0cyIsImFuZHJvaWROYXR1cmFsT3JpZW50YXRpb24iLCJkaXNhYmxlV2luZG93QW5pbWF0aW9uIiwiYm9vdHN0cmFwUG9ydCIsImRlc2lyZWRDYXBDb25zdHJhaW50cyIsIk9iamVjdCIsImFzc2lnbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUEsSUFBSUEsb0JBQW9CLEdBQUc7QUFDekJDLEVBQUFBLFlBQVksRUFBRTtBQUNaQyxJQUFBQSxRQUFRLEVBQUUsSUFERTtBQUVaQyxJQUFBQSx3QkFBd0IsRUFBRSxDQUFDLFNBQUQsQ0FGZDtBQUdaQyxJQUFBQSxRQUFRLEVBQUU7QUFIRSxHQURXO0FBTXpCQyxFQUFBQSxHQUFHLEVBQUU7QUFDSEgsSUFBQUEsUUFBUSxFQUFFO0FBRFAsR0FOb0I7QUFTekJJLEVBQUFBLFdBQVcsRUFBRTtBQUNYSixJQUFBQSxRQUFRLEVBQUU7QUFEQyxHQVRZO0FBWXpCSyxFQUFBQSxVQUFVLEVBQUU7QUFDVkwsSUFBQUEsUUFBUSxFQUFFO0FBREEsR0FaYTtBQWV6Qk0sRUFBQUEsZUFBZSxFQUFFO0FBQ2ZOLElBQUFBLFFBQVEsRUFBRTtBQURLLEdBZlE7QUFrQnpCTyxFQUFBQSxjQUFjLEVBQUU7QUFDZFAsSUFBQUEsUUFBUSxFQUFFO0FBREksR0FsQlM7QUFxQnpCUSxFQUFBQSxlQUFlLEVBQUU7QUFDZkMsSUFBQUEsUUFBUSxFQUFFO0FBREssR0FyQlE7QUF3QnpCQyxFQUFBQSxrQkFBa0IsRUFBRTtBQUNsQkQsSUFBQUEsUUFBUSxFQUFFO0FBRFEsR0F4Qks7QUEyQnpCRSxFQUFBQSxlQUFlLEVBQUU7QUFDZlgsSUFBQUEsUUFBUSxFQUFFO0FBREssR0EzQlE7QUE4QnpCWSxFQUFBQSx5QkFBeUIsRUFBRTtBQUN6QkgsSUFBQUEsUUFBUSxFQUFFO0FBRGUsR0E5QkY7QUFpQ3pC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QUFqUVUsQ0FBM0I7O0FBc1FBLElBQUlrRSx5QkFBeUIsR0FBRztBQUM5QkMsRUFBQUEsc0JBQXNCLEVBQUU7QUFDdEJuRSxJQUFBQSxTQUFTLEVBQUU7QUFEVyxHQURNO0FBSTlCb0UsRUFBQUEsc0JBQXNCLEVBQUU7QUFDdEJwRSxJQUFBQSxTQUFTLEVBQUU7QUFEVyxHQUpNO0FBTzlCcUUsRUFBQUEsY0FBYyxFQUFFO0FBQ2RyRSxJQUFBQSxTQUFTLEVBQUU7QUFERyxHQVBjO0FBVTlCc0UsRUFBQUEseUJBQXlCLEVBQUU7QUFDekJ0RSxJQUFBQSxTQUFTLEVBQUU7QUFEYyxHQVZHO0FBYTlCdUUsRUFBQUEsc0JBQXNCLEVBQUU7QUFDdEJ2RSxJQUFBQSxTQUFTLEVBQUU7QUFEVyxHQWJNO0FBZ0I5QndFLEVBQUFBLGFBQWEsRUFBRTtBQUNieEYsSUFBQUEsUUFBUSxFQUFFO0FBREc7QUFoQmUsQ0FBaEM7QUFxQkEsSUFBSXlGLHFCQUFxQixHQUFHLEVBQTVCO0FBRUFDLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjRixxQkFBZCxFQUFxQ3BHLG9CQUFyQyxFQUNjNkYseUJBRGQ7ZUFHZU8scUIiLCJzb3VyY2VzQ29udGVudCI6WyJsZXQgY29tbW9uQ2FwQ29uc3RyYWludHMgPSB7XG4gIHBsYXRmb3JtTmFtZToge1xuICAgIGlzU3RyaW5nOiB0cnVlLFxuICAgIGluY2x1c2lvbkNhc2VJbnNlbnNpdGl2ZTogWydBbmRyb2lkJ10sXG4gICAgcHJlc2VuY2U6IHRydWVcbiAgfSxcbiAgYXBwOiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgYXBwQWN0aXZpdHk6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBhcHBQYWNrYWdlOiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgYXBwV2FpdEFjdGl2aXR5OiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgYXBwV2FpdFBhY2thZ2U6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBhcHBXYWl0RHVyYXRpb246IHtcbiAgICBpc051bWJlcjogdHJ1ZVxuICB9LFxuICBkZXZpY2VSZWFkeVRpbWVvdXQ6IHtcbiAgICBpc051bWJlcjogdHJ1ZVxuICB9LFxuICBhbmRyb2lkQ292ZXJhZ2U6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBhbmRyb2lkRGV2aWNlUmVhZHlUaW1lb3V0OiB7XG4gICAgaXNOdW1iZXI6IHRydWVcbiAgfSxcbiAgYW5kcm9pZERldmljZVNvY2tldDoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGFuZHJvaWRJbnN0YWxsVGltZW91dDoge1xuICAgIGlzTnVtYmVyOiB0cnVlXG4gIH0sXG4gIGFkYlBvcnQ6IHtcbiAgICBpc051bWJlcjogdHJ1ZVxuICB9LFxuICByZW1vdGVBZGJIb3N0OiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgYWRiRXhlY1RpbWVvdXQ6IHtcbiAgICBpc051bWJlcjogdHJ1ZVxuICB9LFxuICBhdmQ6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBhdmRMYXVuY2hUaW1lb3V0OiB7XG4gICAgaXNOdW1iZXI6IHRydWVcbiAgfSxcbiAgYXZkUmVhZHlUaW1lb3V0OiB7XG4gICAgaXNOdW1iZXI6IHRydWVcbiAgfSxcbiAgYXZkQXJnczoge1xuICAgIC8vIGNvdWxkIGJlIGEgc3RyaW5nIG9yIGFuIGFycmF5XG4gIH0sXG4gIGF2ZEVudjoge1xuICAgIGlzT2JqZWN0OiB0cnVlXG4gIH0sXG4gIHVzZUtleXN0b3JlOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIGtleXN0b3JlUGF0aDoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGtleXN0b3JlUGFzc3dvcmQ6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBrZXlBbGlhczoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGtleVBhc3N3b3JkOiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgd2Vidmlld0RldnRvb2xzUG9ydDoge1xuICAgIGlzTnVtYmVyOiB0cnVlXG4gIH0sXG4gIGVuc3VyZVdlYnZpZXdzSGF2ZVBhZ2VzOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIGVuYWJsZVdlYnZpZXdEZXRhaWxzQ29sbGVjdGlvbjoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICAvLyB0aGlzIG9uZSBpcyBkZXByZWNhdGVkXG4gIGNocm9tZURyaXZlclBvcnQ6IHtcbiAgICBpc051bWJlcjogdHJ1ZVxuICB9LFxuICAvLyBkdXBsaWNhdGUgb2YgYWJvdmUgd2l0aCBiZXR0ZXIgc3BlbGxpbmdcbiAgY2hyb21lZHJpdmVyUG9ydDoge1xuICAgIGlzTnVtYmVyOiB0cnVlXG4gIH0sXG4gIGNocm9tZWRyaXZlclBvcnRzOiB7XG4gICAgaXNBcnJheTogdHJ1ZVxuICB9LFxuICBjaHJvbWVkcml2ZXJBcmdzOiB7XG4gICAgaXNPYmplY3Q6IHRydWUsXG4gIH0sXG4gIGNocm9tZWRyaXZlckV4ZWN1dGFibGU6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBjaHJvbWVkcml2ZXJFeGVjdXRhYmxlRGlyOiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgY2hyb21lZHJpdmVyQ2hyb21lTWFwcGluZ0ZpbGU6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBjaHJvbWVkcml2ZXJVc2VTeXN0ZW1FeGVjdXRhYmxlOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIGNocm9tZWRyaXZlckRpc2FibGVCdWlsZENoZWNrOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIGF1dG9XZWJ2aWV3VGltZW91dDoge1xuICAgIGlzTnVtYmVyOiB0cnVlXG4gIH0sXG4gIGludGVudEFjdGlvbjoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGludGVudENhdGVnb3J5OiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgaW50ZW50RmxhZ3M6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBvcHRpb25hbEludGVudEFyZ3VtZW50czoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGRvbnRTdG9wQXBwT25SZXNldDoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICB1bmljb2RlS2V5Ym9hcmQ6IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgcmVzZXRLZXlib2FyZDoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICBub1NpZ246IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgcmVjcmVhdGVDaHJvbWVEcml2ZXJTZXNzaW9uczoge1xuICAgIGlzQm9vbGVhbjogZmFsc2VcbiAgfSxcbiAgYXV0b0xhdW5jaDoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICBuYXRpdmVXZWJTY3JlZW5zaG90OiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIGFuZHJvaWRTY3JlZW5zaG90UGF0aDoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGFuZHJvaWRJbnN0YWxsUGF0aDoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGNsZWFyU3lzdGVtRmlsZXM6IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgZXh0cmFjdENocm9tZUFuZHJvaWRQYWNrYWdlRnJvbUNvbnRleHROYW1lOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIGF1dG9HcmFudFBlcm1pc3Npb25zOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIHNoYXJlZFByZWZlcmVuY2VzOiB7XG4gICAgaXNPYmplY3Q6IHRydWVcbiAgfSxcbiAgbmV0d29ya1NwZWVkOiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgZ3BzRW5hYmxlZDoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICBpc0hlYWRsZXNzOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIHNob3dDaHJvbWVkcml2ZXJMb2c6IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgc2tpcFVubG9jazoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICBjbGVhckRldmljZUxvZ3NPblN0YXJ0OiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIHVubG9ja1R5cGU6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICB1bmxvY2tLZXk6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBvdGhlckFwcHM6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICB1bmluc3RhbGxPdGhlclBhY2thZ2VzOiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgYWxsb3dUZXN0UGFja2FnZXM6IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgcGFnZUxvYWRTdHJhdGVneToge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGxvY2FsZVNjcmlwdDoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIHNraXBEZXZpY2VJbml0aWFsaXphdGlvbjoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICByZW1vdGVBcHBzQ2FjaGVMaW1pdDoge1xuICAgIGlzTnVtYmVyOiB0cnVlXG4gIH0sXG4gIGJ1aWxkVG9vbHNWZXJzaW9uOiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgc2tpcExvZ2NhdENhcHR1cmU6IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgY2hyb21lT3B0aW9uczoge1xuICAgIGlzT2JqZWN0OiB0cnVlXG4gIH0sXG4gIGVuYWJsZVBlcmZvcm1hbmNlTG9nZ2luZzoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICB1c2VyUHJvZmlsZToge1xuICAgIGlzTnVtYmVyOiB0cnVlXG4gIH0sXG4gIGJyb3dzZXJOYW1lOiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgZW5mb3JjZUFwcEluc3RhbGw6IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgc3VwcHJlc3NLaWxsU2VydmVyOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIGFsbG93T2ZmbGluZURldmljZXM6IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgaWdub3JlSGlkZGVuQXBpUG9saWN5RXJyb3I6IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgdW5sb2NrU3VjY2Vzc1RpbWVvdXQ6IHtcbiAgICBpc051bWJlcjogdHJ1ZVxuICB9LFxuICBtb2NrTG9jYXRpb25BcHA6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBsb2djYXRGb3JtYXQ6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBsb2djYXRGaWx0ZXJTcGVjczoge1xuICAgIGlzQXJyYXk6IHRydWVcbiAgfSxcbiAgYWxsb3dEZWxheUFkYjoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9XG59O1xuXG5sZXQgdWlhdXRvbWF0b3JDYXBDb25zdHJhaW50cyA9IHtcbiAgaWdub3JlVW5pbXBvcnRhbnRWaWV3czoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICBkaXNhYmxlQW5kcm9pZFdhdGNoZXJzOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIGFjY2VwdFNzbENlcnRzOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIGFuZHJvaWROYXR1cmFsT3JpZW50YXRpb246IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgZGlzYWJsZVdpbmRvd0FuaW1hdGlvbjoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICBib290c3RyYXBQb3J0OiB7XG4gICAgaXNOdW1iZXI6IHRydWVcbiAgfSxcbn07XG5cbmxldCBkZXNpcmVkQ2FwQ29uc3RyYWludHMgPSB7fTtcblxuT2JqZWN0LmFzc2lnbihkZXNpcmVkQ2FwQ29uc3RyYWludHMsIGNvbW1vbkNhcENvbnN0cmFpbnRzLFxuICAgICAgICAgICAgICB1aWF1dG9tYXRvckNhcENvbnN0cmFpbnRzKTtcblxuZXhwb3J0IGRlZmF1bHQgZGVzaXJlZENhcENvbnN0cmFpbnRzO1xuZXhwb3J0IHsgY29tbW9uQ2FwQ29uc3RyYWludHMgfTtcbiJdLCJmaWxlIjoibGliL2Rlc2lyZWQtY2Fwcy5qcyIsInNvdXJjZVJvb3QiOiIuLi8uLiJ9
|
|
301
|
+
//# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbImxpYi9kZXNpcmVkLWNhcHMuanMiXSwibmFtZXMiOlsiY29tbW9uQ2FwQ29uc3RyYWludHMiLCJwbGF0Zm9ybU5hbWUiLCJpc1N0cmluZyIsImluY2x1c2lvbkNhc2VJbnNlbnNpdGl2ZSIsInByZXNlbmNlIiwiYXBwIiwiYXBwQWN0aXZpdHkiLCJhcHBQYWNrYWdlIiwiYXBwV2FpdEFjdGl2aXR5IiwiYXBwV2FpdFBhY2thZ2UiLCJhcHBXYWl0RHVyYXRpb24iLCJpc051bWJlciIsImRldmljZVJlYWR5VGltZW91dCIsImFuZHJvaWRDb3ZlcmFnZSIsImFuZHJvaWREZXZpY2VSZWFkeVRpbWVvdXQiLCJhbmRyb2lkRGV2aWNlU29ja2V0IiwiYW5kcm9pZEluc3RhbGxUaW1lb3V0IiwiYWRiUG9ydCIsInJlbW90ZUFkYkhvc3QiLCJhZGJFeGVjVGltZW91dCIsImF2ZCIsImF2ZExhdW5jaFRpbWVvdXQiLCJhdmRSZWFkeVRpbWVvdXQiLCJhdmRBcmdzIiwiYXZkRW52IiwiaXNPYmplY3QiLCJ1c2VLZXlzdG9yZSIsImlzQm9vbGVhbiIsImtleXN0b3JlUGF0aCIsImtleXN0b3JlUGFzc3dvcmQiLCJrZXlBbGlhcyIsImtleVBhc3N3b3JkIiwid2Vidmlld0RldnRvb2xzUG9ydCIsImVuc3VyZVdlYnZpZXdzSGF2ZVBhZ2VzIiwiZW5hYmxlV2Vidmlld0RldGFpbHNDb2xsZWN0aW9uIiwiY2hyb21lRHJpdmVyUG9ydCIsImNocm9tZWRyaXZlclBvcnQiLCJjaHJvbWVkcml2ZXJQb3J0cyIsImlzQXJyYXkiLCJjaHJvbWVkcml2ZXJBcmdzIiwiY2hyb21lZHJpdmVyRXhlY3V0YWJsZSIsImNocm9tZWRyaXZlckV4ZWN1dGFibGVEaXIiLCJjaHJvbWVkcml2ZXJDaHJvbWVNYXBwaW5nRmlsZSIsImNocm9tZWRyaXZlclVzZVN5c3RlbUV4ZWN1dGFibGUiLCJjaHJvbWVkcml2ZXJEaXNhYmxlQnVpbGRDaGVjayIsImNocm9tZUxvZ2dpbmdQcmVmcyIsImF1dG9XZWJ2aWV3VGltZW91dCIsImludGVudEFjdGlvbiIsImludGVudENhdGVnb3J5IiwiaW50ZW50RmxhZ3MiLCJvcHRpb25hbEludGVudEFyZ3VtZW50cyIsImRvbnRTdG9wQXBwT25SZXNldCIsInVuaWNvZGVLZXlib2FyZCIsInJlc2V0S2V5Ym9hcmQiLCJub1NpZ24iLCJyZWNyZWF0ZUNocm9tZURyaXZlclNlc3Npb25zIiwiYXV0b0xhdW5jaCIsIm5hdGl2ZVdlYlNjcmVlbnNob3QiLCJhbmRyb2lkU2NyZWVuc2hvdFBhdGgiLCJhbmRyb2lkSW5zdGFsbFBhdGgiLCJjbGVhclN5c3RlbUZpbGVzIiwiZXh0cmFjdENocm9tZUFuZHJvaWRQYWNrYWdlRnJvbUNvbnRleHROYW1lIiwiYXV0b0dyYW50UGVybWlzc2lvbnMiLCJzaGFyZWRQcmVmZXJlbmNlcyIsIm5ldHdvcmtTcGVlZCIsImdwc0VuYWJsZWQiLCJpc0hlYWRsZXNzIiwic2hvd0Nocm9tZWRyaXZlckxvZyIsInNraXBVbmxvY2siLCJjbGVhckRldmljZUxvZ3NPblN0YXJ0IiwidW5sb2NrVHlwZSIsInVubG9ja0tleSIsInVubG9ja1N0cmF0ZWd5Iiwib3RoZXJBcHBzIiwidW5pbnN0YWxsT3RoZXJQYWNrYWdlcyIsImFsbG93VGVzdFBhY2thZ2VzIiwicGFnZUxvYWRTdHJhdGVneSIsImxvY2FsZVNjcmlwdCIsInNraXBEZXZpY2VJbml0aWFsaXphdGlvbiIsInJlbW90ZUFwcHNDYWNoZUxpbWl0IiwiYnVpbGRUb29sc1ZlcnNpb24iLCJza2lwTG9nY2F0Q2FwdHVyZSIsImNocm9tZU9wdGlvbnMiLCJlbmFibGVQZXJmb3JtYW5jZUxvZ2dpbmciLCJ1c2VyUHJvZmlsZSIsImJyb3dzZXJOYW1lIiwiZW5mb3JjZUFwcEluc3RhbGwiLCJzdXBwcmVzc0tpbGxTZXJ2ZXIiLCJhbGxvd09mZmxpbmVEZXZpY2VzIiwiaWdub3JlSGlkZGVuQXBpUG9saWN5RXJyb3IiLCJ1bmxvY2tTdWNjZXNzVGltZW91dCIsIm1vY2tMb2NhdGlvbkFwcCIsImxvZ2NhdEZvcm1hdCIsImxvZ2NhdEZpbHRlclNwZWNzIiwiYWxsb3dEZWxheUFkYiIsInVpYXV0b21hdG9yQ2FwQ29uc3RyYWludHMiLCJpZ25vcmVVbmltcG9ydGFudFZpZXdzIiwiZGlzYWJsZUFuZHJvaWRXYXRjaGVycyIsImFjY2VwdFNzbENlcnRzIiwiYW5kcm9pZE5hdHVyYWxPcmllbnRhdGlvbiIsImRpc2FibGVXaW5kb3dBbmltYXRpb24iLCJib290c3RyYXBQb3J0IiwiZGVzaXJlZENhcENvbnN0cmFpbnRzIiwiT2JqZWN0IiwiYXNzaWduIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQSxJQUFJQSxvQkFBb0IsR0FBRztBQUN6QkMsRUFBQUEsWUFBWSxFQUFFO0FBQ1pDLElBQUFBLFFBQVEsRUFBRSxJQURFO0FBRVpDLElBQUFBLHdCQUF3QixFQUFFLENBQUMsU0FBRCxDQUZkO0FBR1pDLElBQUFBLFFBQVEsRUFBRTtBQUhFLEdBRFc7QUFNekJDLEVBQUFBLEdBQUcsRUFBRTtBQUNISCxJQUFBQSxRQUFRLEVBQUU7QUFEUCxHQU5vQjtBQVN6QkksRUFBQUEsV0FBVyxFQUFFO0FBQ1hKLElBQUFBLFFBQVEsRUFBRTtBQURDLEdBVFk7QUFZekJLLEVBQUFBLFVBQVUsRUFBRTtBQUNWTCxJQUFBQSxRQUFRLEVBQUU7QUFEQSxHQVphO0FBZXpCTSxFQUFBQSxlQUFlLEVBQUU7QUFDZk4sSUFBQUEsUUFBUSxFQUFFO0FBREssR0FmUTtBQWtCekJPLEVBQUFBLGNBQWMsRUFBRTtBQUNkUCxJQUFBQSxRQUFRLEVBQUU7QUFESSxHQWxCUztBQXFCekJRLEVBQUFBLGVBQWUsRUFBRTtBQUNmQyxJQUFBQSxRQUFRLEVBQUU7QUFESyxHQXJCUTtBQXdCekJDLEVBQUFBLGtCQUFrQixFQUFFO0FBQ2xCRCxJQUFBQSxRQUFRLEVBQUU7QUFEUSxHQXhCSztBQTJCekJFLEVBQUFBLGVBQWUsRUFBRTtBQUNmWCxJQUFBQSxRQUFRLEVBQUU7QUFESyxHQTNCUTtBQThCekJZLEVBQUFBLHlCQUF5QixFQUFFO0FB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RTtBQUNmekYsSUFBQUEsUUFBUSxFQUFFO0FBREssR0EvUFE7QUFrUXpCMEYsRUFBQUEsWUFBWSxFQUFFO0FBQ1oxRixJQUFBQSxRQUFRLEVBQUU7QUFERSxHQWxRVztBQXFRekIyRixFQUFBQSxpQkFBaUIsRUFBRTtBQUNqQnZELElBQUFBLE9BQU8sRUFBRTtBQURRLEdBclFNO0FBd1F6QndELEVBQUFBLGFBQWEsRUFBRTtBQUNibkUsSUFBQUEsU0FBUyxFQUFFO0FBREU7QUF4UVUsQ0FBM0I7O0FBNlFBLElBQUlvRSx5QkFBeUIsR0FBRztBQUM5QkMsRUFBQUEsc0JBQXNCLEVBQUU7QUFDdEJyRSxJQUFBQSxTQUFTLEVBQUU7QUFEVyxHQURNO0FBSTlCc0UsRUFBQUEsc0JBQXNCLEVBQUU7QUFDdEJ0RSxJQUFBQSxTQUFTLEVBQUU7QUFEVyxHQUpNO0FBTzlCdUUsRUFBQUEsY0FBYyxFQUFFO0FBQ2R2RSxJQUFBQSxTQUFTLEVBQUU7QUFERyxHQVBjO0FBVTlCd0UsRUFBQUEseUJBQXlCLEVBQUU7QUFDekJ4RSxJQUFBQSxTQUFTLEVBQUU7QUFEYyxHQVZHO0FBYTlCeUUsRUFBQUEsc0JBQXNCLEVBQUU7QUFDdEJ6RSxJQUFBQSxTQUFTLEVBQUU7QUFEVyxHQWJNO0FBZ0I5QjBFLEVBQUFBLGFBQWEsRUFBRTtBQUNiMUYsSUFBQUEsUUFBUSxFQUFFO0FBREc7QUFoQmUsQ0FBaEM7QUFxQkEsSUFBSTJGLHFCQUFxQixHQUFHLEVBQTVCO0FBRUFDLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjRixxQkFBZCxFQUFxQ3RHLG9CQUFyQyxFQUNjK0YseUJBRGQ7ZUFHZU8scUIiLCJzb3VyY2VzQ29udGVudCI6WyJsZXQgY29tbW9uQ2FwQ29uc3RyYWludHMgPSB7XG4gIHBsYXRmb3JtTmFtZToge1xuICAgIGlzU3RyaW5nOiB0cnVlLFxuICAgIGluY2x1c2lvbkNhc2VJbnNlbnNpdGl2ZTogWydBbmRyb2lkJ10sXG4gICAgcHJlc2VuY2U6IHRydWVcbiAgfSxcbiAgYXBwOiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgYXBwQWN0aXZpdHk6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBhcHBQYWNrYWdlOiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgYXBwV2FpdEFjdGl2aXR5OiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgYXBwV2FpdFBhY2thZ2U6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBhcHBXYWl0RHVyYXRpb246IHtcbiAgICBpc051bWJlcjogdHJ1ZVxuICB9LFxuICBkZXZpY2VSZWFkeVRpbWVvdXQ6IHtcbiAgICBpc051bWJlcjogdHJ1ZVxuICB9LFxuICBhbmRyb2lkQ292ZXJhZ2U6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBhbmRyb2lkRGV2aWNlUmVhZHlUaW1lb3V0OiB7XG4gICAgaXNOdW1iZXI6IHRydWVcbiAgfSxcbiAgYW5kcm9pZERldmljZVNvY2tldDoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGFuZHJvaWRJbnN0YWxsVGltZW91dDoge1xuICAgIGlzTnVtYmVyOiB0cnVlXG4gIH0sXG4gIGFkYlBvcnQ6IHtcbiAgICBpc051bWJlcjogdHJ1ZVxuICB9LFxuICByZW1vdGVBZGJIb3N0OiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgYWRiRXhlY1RpbWVvdXQ6IHtcbiAgICBpc051bWJlcjogdHJ1ZVxuICB9LFxuICBhdmQ6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBhdmRMYXVuY2hUaW1lb3V0OiB7XG4gICAgaXNOdW1iZXI6IHRydWVcbiAgfSxcbiAgYXZkUmVhZHlUaW1lb3V0OiB7XG4gICAgaXNOdW1iZXI6IHRydWVcbiAgfSxcbiAgYXZkQXJnczoge1xuICAgIC8vIGNvdWxkIGJlIGEgc3RyaW5nIG9yIGFuIGFycmF5XG4gIH0sXG4gIGF2ZEVudjoge1xuICAgIGlzT2JqZWN0OiB0cnVlXG4gIH0sXG4gIHVzZUtleXN0b3JlOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIGtleXN0b3JlUGF0aDoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGtleXN0b3JlUGFzc3dvcmQ6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBrZXlBbGlhczoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGtleVBhc3N3b3JkOiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgd2Vidmlld0RldnRvb2xzUG9ydDoge1xuICAgIGlzTnVtYmVyOiB0cnVlXG4gIH0sXG4gIGVuc3VyZVdlYnZpZXdzSGF2ZVBhZ2VzOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIGVuYWJsZVdlYnZpZXdEZXRhaWxzQ29sbGVjdGlvbjoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICAvLyB0aGlzIG9uZSBpcyBkZXByZWNhdGVkXG4gIGNocm9tZURyaXZlclBvcnQ6IHtcbiAgICBpc051bWJlcjogdHJ1ZVxuICB9LFxuICAvLyBkdXBsaWNhdGUgb2YgYWJvdmUgd2l0aCBiZXR0ZXIgc3BlbGxpbmdcbiAgY2hyb21lZHJpdmVyUG9ydDoge1xuICAgIGlzTnVtYmVyOiB0cnVlXG4gIH0sXG4gIGNocm9tZWRyaXZlclBvcnRzOiB7XG4gICAgaXNBcnJheTogdHJ1ZVxuICB9LFxuICBjaHJvbWVkcml2ZXJBcmdzOiB7XG4gICAgaXNPYmplY3Q6IHRydWUsXG4gIH0sXG4gIGNocm9tZWRyaXZlckV4ZWN1dGFibGU6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBjaHJvbWVkcml2ZXJFeGVjdXRhYmxlRGlyOiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgY2hyb21lZHJpdmVyQ2hyb21lTWFwcGluZ0ZpbGU6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBjaHJvbWVkcml2ZXJVc2VTeXN0ZW1FeGVjdXRhYmxlOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIGNocm9tZWRyaXZlckRpc2FibGVCdWlsZENoZWNrOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIGNocm9tZUxvZ2dpbmdQcmVmczoge1xuICAgIGlzT2JqZWN0OiB0cnVlXG4gIH0sXG4gIGF1dG9XZWJ2aWV3VGltZW91dDoge1xuICAgIGlzTnVtYmVyOiB0cnVlXG4gIH0sXG4gIGludGVudEFjdGlvbjoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGludGVudENhdGVnb3J5OiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgaW50ZW50RmxhZ3M6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBvcHRpb25hbEludGVudEFyZ3VtZW50czoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGRvbnRTdG9wQXBwT25SZXNldDoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICB1bmljb2RlS2V5Ym9hcmQ6IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgcmVzZXRLZXlib2FyZDoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICBub1NpZ246IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgcmVjcmVhdGVDaHJvbWVEcml2ZXJTZXNzaW9uczoge1xuICAgIGlzQm9vbGVhbjogZmFsc2VcbiAgfSxcbiAgYXV0b0xhdW5jaDoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICBuYXRpdmVXZWJTY3JlZW5zaG90OiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIGFuZHJvaWRTY3JlZW5zaG90UGF0aDoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGFuZHJvaWRJbnN0YWxsUGF0aDoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGNsZWFyU3lzdGVtRmlsZXM6IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgZXh0cmFjdENocm9tZUFuZHJvaWRQYWNrYWdlRnJvbUNvbnRleHROYW1lOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIGF1dG9HcmFudFBlcm1pc3Npb25zOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIHNoYXJlZFByZWZlcmVuY2VzOiB7XG4gICAgaXNPYmplY3Q6IHRydWVcbiAgfSxcbiAgbmV0d29ya1NwZWVkOiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgZ3BzRW5hYmxlZDoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICBpc0hlYWRsZXNzOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIHNob3dDaHJvbWVkcml2ZXJMb2c6IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgc2tpcFVubG9jazoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICBjbGVhckRldmljZUxvZ3NPblN0YXJ0OiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIHVubG9ja1R5cGU6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICB1bmxvY2tLZXk6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICB1bmxvY2tTdHJhdGVneToge1xuICAgIGlzU3RyaW5nOiB0cnVlLFxuICAgIGluY2x1c2lvbkNhc2VJbnNlbnNpdGl2ZTogWydsb2Nrc2V0dGluZ3MnLCAndWlhdXRvbWF0b3InXSxcbiAgfSxcbiAgb3RoZXJBcHBzOiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgdW5pbnN0YWxsT3RoZXJQYWNrYWdlczoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGFsbG93VGVzdFBhY2thZ2VzOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIHBhZ2VMb2FkU3RyYXRlZ3k6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBsb2NhbGVTY3JpcHQ6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBza2lwRGV2aWNlSW5pdGlhbGl6YXRpb246IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgcmVtb3RlQXBwc0NhY2hlTGltaXQ6IHtcbiAgICBpc051bWJlcjogdHJ1ZVxuICB9LFxuICBidWlsZFRvb2xzVmVyc2lvbjoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIHNraXBMb2djYXRDYXB0dXJlOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIGNocm9tZU9wdGlvbnM6IHtcbiAgICBpc09iamVjdDogdHJ1ZVxuICB9LFxuICBlbmFibGVQZXJmb3JtYW5jZUxvZ2dpbmc6IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgdXNlclByb2ZpbGU6IHtcbiAgICBpc051bWJlcjogdHJ1ZVxuICB9LFxuICBicm93c2VyTmFtZToge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGVuZm9yY2VBcHBJbnN0YWxsOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIHN1cHByZXNzS2lsbFNlcnZlcjoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICBhbGxvd09mZmxpbmVEZXZpY2VzOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIGlnbm9yZUhpZGRlbkFwaVBvbGljeUVycm9yOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIHVubG9ja1N1Y2Nlc3NUaW1lb3V0OiB7XG4gICAgaXNOdW1iZXI6IHRydWVcbiAgfSxcbiAgbW9ja0xvY2F0aW9uQXBwOiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgbG9nY2F0Rm9ybWF0OiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgbG9nY2F0RmlsdGVyU3BlY3M6IHtcbiAgICBpc0FycmF5OiB0cnVlXG4gIH0sXG4gIGFsbG93RGVsYXlBZGI6IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfVxufTtcblxubGV0IHVpYXV0b21hdG9yQ2FwQ29uc3RyYWludHMgPSB7XG4gIGlnbm9yZVVuaW1wb3J0YW50Vmlld3M6IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgZGlzYWJsZUFuZHJvaWRXYXRjaGVyczoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICBhY2NlcHRTc2xDZXJ0czoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICBhbmRyb2lkTmF0dXJhbE9yaWVudGF0aW9uOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIGRpc2FibGVXaW5kb3dBbmltYXRpb246IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgYm9vdHN0cmFwUG9ydDoge1xuICAgIGlzTnVtYmVyOiB0cnVlXG4gIH0sXG59O1xuXG5sZXQgZGVzaXJlZENhcENvbnN0cmFpbnRzID0ge307XG5cbk9iamVjdC5hc3NpZ24oZGVzaXJlZENhcENvbnN0cmFpbnRzLCBjb21tb25DYXBDb25zdHJhaW50cyxcbiAgICAgICAgICAgICAgdWlhdXRvbWF0b3JDYXBDb25zdHJhaW50cyk7XG5cbmV4cG9ydCBkZWZhdWx0IGRlc2lyZWRDYXBDb25zdHJhaW50cztcbmV4cG9ydCB7IGNvbW1vbkNhcENvbnN0cmFpbnRzIH07XG4iXSwiZmlsZSI6ImxpYi9kZXNpcmVkLWNhcHMuanMiLCJzb3VyY2VSb290IjoiLi4vLi4ifQ==
|