appium-android-driver 5.0.13 → 5.1.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.
Files changed (57) hide show
  1. package/build/index.js +2 -28
  2. package/build/lib/android-helpers.js +2 -2
  3. package/build/lib/bootstrap.js +6 -6
  4. package/build/lib/commands/actions.js +2 -2
  5. package/build/lib/commands/alert.js +6 -6
  6. package/build/lib/commands/app-management.js +27 -14
  7. package/build/lib/commands/context.js +4 -4
  8. package/build/lib/commands/element.js +2 -2
  9. package/build/lib/commands/emu-console.js +3 -3
  10. package/build/lib/commands/execute.js +5 -5
  11. package/build/lib/commands/file-actions.js +7 -7
  12. package/build/lib/commands/find.js +5 -5
  13. package/build/lib/commands/general.js +7 -7
  14. package/build/lib/commands/ime.js +3 -3
  15. package/build/lib/commands/intent.js +7 -7
  16. package/build/lib/commands/log.js +5 -5
  17. package/build/lib/commands/network.js +3 -3
  18. package/build/lib/commands/performance.js +1 -1
  19. package/build/lib/commands/recordscreen.js +2 -2
  20. package/build/lib/commands/shell.js +4 -4
  21. package/build/lib/commands/streamscreen.js +2 -2
  22. package/build/lib/commands/system-bars.js +1 -1
  23. package/build/lib/commands/touch.js +4 -4
  24. package/build/lib/driver.js +5 -5
  25. package/build/lib/logger.js +2 -2
  26. package/build/lib/uiautomator.js +2 -2
  27. package/build/lib/unlock-helpers.js +2 -2
  28. package/build/lib/webview-helpers.js +2 -2
  29. package/index.js +1 -26
  30. package/lib/android-helpers.js +1 -1
  31. package/lib/bootstrap.js +2 -2
  32. package/lib/commands/actions.js +1 -1
  33. package/lib/commands/alert.js +1 -1
  34. package/lib/commands/app-management.js +37 -17
  35. package/lib/commands/context.js +2 -2
  36. package/lib/commands/element.js +1 -1
  37. package/lib/commands/emu-console.js +1 -1
  38. package/lib/commands/execute.js +1 -1
  39. package/lib/commands/file-actions.js +2 -2
  40. package/lib/commands/find.js +2 -2
  41. package/lib/commands/general.js +2 -2
  42. package/lib/commands/ime.js +1 -1
  43. package/lib/commands/intent.js +1 -1
  44. package/lib/commands/log.js +1 -1
  45. package/lib/commands/network.js +1 -1
  46. package/lib/commands/recordscreen.js +1 -1
  47. package/lib/commands/shell.js +2 -2
  48. package/lib/commands/streamscreen.js +1 -1
  49. package/lib/commands/touch.js +2 -2
  50. package/lib/driver.js +2 -2
  51. package/lib/logger.js +1 -1
  52. package/lib/uiautomator.js +1 -1
  53. package/lib/unlock-helpers.js +1 -1
  54. package/lib/webview-helpers.js +1 -1
  55. package/package.json +6 -4
  56. package/build/lib/server.js +0 -34
  57. package/lib/server.js +0 -14
@@ -13,7 +13,7 @@ var _androidHelpers = _interopRequireDefault(require("../android-helpers"));
13
13
 
14
14
  var _asyncbox = require("asyncbox");
15
15
 
16
- var _support = require("@appium/support");
16
+ var _support = require("appium/support");
17
17
 
18
18
  let commands = {},
19
19
  helpers = {},
@@ -222,4 +222,4 @@ var _default = extensions;
222
222
  exports.default = _default;require('source-map-support').install();
223
223
 
224
224
 
225
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2VsZW1lbnQuanMiLCJuYW1lcyI6WyJjb21tYW5kcyIsImhlbHBlcnMiLCJleHRlbnNpb25zIiwiZ2V0QXR0cmlidXRlIiwiYXR0cmlidXRlIiwiZWxlbWVudElkIiwicCIsImJvb3RzdHJhcCIsInNlbmRBY3Rpb24iLCJnZXROYW1lIiwiZWxlbWVudERpc3BsYXllZCIsImVsZW1lbnRFbmFibGVkIiwiZWxlbWVudFNlbGVjdGVkIiwic2V0RWxlbWVudFZhbHVlIiwia2V5cyIsInJlcGxhY2UiLCJ0ZXh0IiwiQXJyYXkiLCJqb2luIiwicGFyYW1zIiwidW5pY29kZUtleWJvYXJkIiwib3B0cyIsImRvU2V0RWxlbWVudFZhbHVlIiwic2V0VmFsdWUiLCJyZXBsYWNlVmFsdWUiLCJzZXRWYWx1ZUltbWVkaWF0ZSIsImNsaWNrIiwiYWRiIiwiaW5wdXRUZXh0IiwiZ2V0VGV4dCIsImNsZWFyIiwibGVuZ3RoIiwibG9nIiwiZGVidWciLCJyZW1haW5pbmdMZW5ndGgiLCJsZW5ndGhUb1NlbmQiLCJjbGVhclRleHRGaWVsZCIsImdldExvY2F0aW9uIiwiZ2V0TG9jYXRpb25JblZpZXciLCJnZXRTaXplIiwiZ2V0RWxlbWVudFJlY3QiLCJ0b3VjaExvbmdDbGljayIsIngiLCJ5IiwiZHVyYXRpb24iLCJhbmRyb2lkSGVscGVycyIsInJlbW92ZU51bGxQcm9wZXJ0aWVzIiwidG91Y2hEb3duIiwidG91Y2hVcCIsInRvdWNoTW92ZSIsImNvbXBsZXhUYXAiLCJ0YXBDb3VudCIsInRvdWNoQ291bnQiLCJ0YXAiLCJjb3VudCIsInV0aWwiLCJoYXNWYWx1ZSIsIkVycm9yIiwiaSIsIk9iamVjdCIsImFzc2lnbiJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9lbGVtZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBhbmRyb2lkSGVscGVycyBmcm9tICcuLi9hbmRyb2lkLWhlbHBlcnMnO1xuaW1wb3J0IHsgcmV0cnlJbnRlcnZhbCB9IGZyb20gJ2FzeW5jYm94JztcbmltcG9ydCB7IHV0aWwgfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuXG5cbmxldCBjb21tYW5kcyA9IHt9LCBoZWxwZXJzID0ge30sIGV4dGVuc2lvbnMgPSB7fTtcblxuY29tbWFuZHMuZ2V0QXR0cmlidXRlID0gYXN5bmMgZnVuY3Rpb24gZ2V0QXR0cmlidXRlIChhdHRyaWJ1dGUsIGVsZW1lbnRJZCkge1xuICBsZXQgcCA9IHthdHRyaWJ1dGUsIGVsZW1lbnRJZH07XG4gIHJldHVybiBhd2FpdCB0aGlzLmJvb3RzdHJhcC5zZW5kQWN0aW9uKCdlbGVtZW50OmdldEF0dHJpYnV0ZScsIHApO1xufTtcblxuY29tbWFuZHMuZ2V0TmFtZSA9IGFzeW5jIGZ1bmN0aW9uIGdldE5hbWUgKGVsZW1lbnRJZCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5nZXRBdHRyaWJ1dGUoJ2NsYXNzTmFtZScsIGVsZW1lbnRJZCk7XG59O1xuXG5jb21tYW5kcy5lbGVtZW50RGlzcGxheWVkID0gYXN5bmMgZnVuY3Rpb24gZWxlbWVudERpc3BsYXllZCAoZWxlbWVudElkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmdldEF0dHJpYnV0ZSgnZGlzcGxheWVkJywgZWxlbWVudElkKSA9PT0gJ3RydWUnO1xufTtcblxuY29tbWFuZHMuZWxlbWVudEVuYWJsZWQgPSBhc3luYyBmdW5jdGlvbiBlbGVtZW50RW5hYmxlZCAoZWxlbWVudElkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmdldEF0dHJpYnV0ZSgnZW5hYmxlZCcsIGVsZW1lbnRJZCkgPT09ICd0cnVlJztcbn07XG5cbmNvbW1hbmRzLmVsZW1lbnRTZWxlY3RlZCA9IGFzeW5jIGZ1bmN0aW9uIGVsZW1lbnRTZWxlY3RlZCAoZWxlbWVudElkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmdldEF0dHJpYnV0ZSgnc2VsZWN0ZWQnLCBlbGVtZW50SWQpID09PSAndHJ1ZSc7XG59O1xuXG5oZWxwZXJzLnNldEVsZW1lbnRWYWx1ZSA9IGFzeW5jIGZ1bmN0aW9uIHNldEVsZW1lbnRWYWx1ZSAoa2V5cywgZWxlbWVudElkLCByZXBsYWNlID0gZmFsc2UpIHtcbiAgbGV0IHRleHQgPSBrZXlzO1xuICBpZiAoa2V5cyBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgdGV4dCA9IGtleXMuam9pbignJyk7XG4gIH1cblxuICBsZXQgcGFyYW1zID0ge1xuICAgIGVsZW1lbnRJZCxcbiAgICB0ZXh0LFxuICAgIHJlcGxhY2UsXG4gICAgdW5pY29kZUtleWJvYXJkOiB0aGlzLm9wdHMudW5pY29kZUtleWJvYXJkXG4gIH07XG5cbiAgcmV0dXJuIGF3YWl0IHRoaXMuZG9TZXRFbGVtZW50VmFsdWUocGFyYW1zKTtcbn07XG5cbi8qKlxuICogUmVhc29uIGZvciBpc29sYXRpbmcgZG9TZXRFbGVtZW50VmFsdWUgZnJvbSBzZXRFbGVtZW50VmFsdWUgaXMgZm9yIHJldXNpbmcgc2V0RWxlbWVudFZhbHVlXG4gKiBhY3Jvc3MgYW5kcm9pZC1kcml2ZXJzIChsaWtlIGFwcGl1bS11aWF1dG9tYXRvcjItZHJpdmVyKSBhbmQgdG8gYXZvaWQgY29kZSBkdXBsaWNhdGlvbi5cbiAqIE90aGVyIGFuZHJvaWQtZHJpdmVycyAobGlrZSBhcHBpdW0tdWlhdXRvbWF0b3IyLWRyaXZlcikgbmVlZCB0byBvdmVycmlkZSBkb1NldEVsZW1lbnRWYWx1ZVxuICogdG8gZmFjaWxpdGF0ZSBzZXRFbGVtZW50VmFsdWUuXG4gKi9cbmhlbHBlcnMuZG9TZXRFbGVtZW50VmFsdWUgPSBhc3luYyBmdW5jdGlvbiBkb1NldEVsZW1lbnRWYWx1ZSAocGFyYW1zKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmJvb3RzdHJhcC5zZW5kQWN0aW9uKCdlbGVtZW50OnNldFRleHQnLCBwYXJhbXMpO1xufTtcblxuY29tbWFuZHMuc2V0VmFsdWUgPSBhc3luYyBmdW5jdGlvbiBzZXRWYWx1ZSAoa2V5cywgZWxlbWVudElkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnNldEVsZW1lbnRWYWx1ZShrZXlzLCBlbGVtZW50SWQsIGZhbHNlKTtcbn07XG5cbmNvbW1hbmRzLnJlcGxhY2VWYWx1ZSA9IGFzeW5jIGZ1bmN0aW9uIHJlcGxhY2VWYWx1ZSAoa2V5cywgZWxlbWVudElkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnNldEVsZW1lbnRWYWx1ZShrZXlzLCBlbGVtZW50SWQsIHRydWUpO1xufTtcblxuY29tbWFuZHMuc2V0VmFsdWVJbW1lZGlhdGUgPSBhc3luYyBmdW5jdGlvbiBzZXRWYWx1ZUltbWVkaWF0ZSAoa2V5cywgZWxlbWVudElkKSB7XG4gIGxldCB0ZXh0ID0ga2V5cztcbiAgaWYgKGtleXMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgIHRleHQgPSBrZXlzLmpvaW4oJycpO1xuICB9XG5cbiAgLy8gZmlyc3QsIG1ha2Ugc3VyZSB3ZSBhcmUgZm9jdXNlZCBvbiB0aGUgZWxlbWVudFxuICBhd2FpdCB0aGlzLmNsaWNrKGVsZW1lbnRJZCk7XG5cbiAgLy8gdGhlbiBzZW5kIHRocm91Z2ggYWRiXG4gIGF3YWl0IHRoaXMuYWRiLmlucHV0VGV4dCh0ZXh0KTtcbn07XG5cbmNvbW1hbmRzLmdldFRleHQgPSBhc3luYyBmdW5jdGlvbiBnZXRUZXh0IChlbGVtZW50SWQpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ2VsZW1lbnQ6Z2V0VGV4dCcsIHtlbGVtZW50SWR9KTtcbn07XG5cbmNvbW1hbmRzLmNsZWFyID0gYXN5bmMgZnVuY3Rpb24gY2xlYXIgKGVsZW1lbnRJZCkge1xuICBsZXQgdGV4dCA9IChhd2FpdCB0aGlzLmdldFRleHQoZWxlbWVudElkKSkgfHwgJyc7XG4gIGxldCBsZW5ndGggPSB0ZXh0Lmxlbmd0aDtcbiAgaWYgKGxlbmd0aCA9PT0gMCkge1xuICAgIC8vIGlmIGxlbmd0aCBpcyB6ZXJvIHRoZXJlIGFyZSB0d28gcG9zc2liaWxpdGllczpcbiAgICAvLyAgIDEuIHRoZXJlIGlzIG5vdGhpbmcgaW4gdGhlIHRleHQgZmllbGRcbiAgICAvLyAgIDIuIGl0IGlzIGEgcGFzc3dvcmQgZmllbGRcbiAgICAvLyBzaW5jZSB0aGVyZSBpcyBsaXR0bGUgb3ZlcmhlYWQgdG8gdGhlIGFkYiBjYWxsLCBkZWxldGUgMTAwIGVsZW1lbnRzXG4gICAgLy8gaWYgd2UgZ2V0IHplcm8sIGp1c3QgaW4gY2FzZSBpdCBpcyAjMlxuICAgIGxlbmd0aCA9IDEwMDtcbiAgfVxuICBhd2FpdCB0aGlzLmNsaWNrKGVsZW1lbnRJZCk7XG4gIHRoaXMubG9nLmRlYnVnKGBTZW5kaW5nIHVwIHRvICR7bGVuZ3RofSBjbGVhciBjaGFyYWN0ZXJzIHRvIGRldmljZWApO1xuICByZXR1cm4gYXdhaXQgcmV0cnlJbnRlcnZhbCg1LCA1MDAsIGFzeW5jICgpID0+IHtcbiAgICBsZXQgcmVtYWluaW5nTGVuZ3RoID0gbGVuZ3RoO1xuICAgIHdoaWxlIChyZW1haW5pbmdMZW5ndGggPiAwKSB7XG4gICAgICBsZXQgbGVuZ3RoVG9TZW5kID0gcmVtYWluaW5nTGVuZ3RoIDwgNTAgPyByZW1haW5pbmdMZW5ndGggOiA1MDtcbiAgICAgIHRoaXMubG9nLmRlYnVnKGBTZW5kaW5nICR7bGVuZ3RoVG9TZW5kfSBjbGVhciBjaGFyYWN0ZXJzIHRvIGRldmljZWApO1xuICAgICAgYXdhaXQgdGhpcy5hZGIuY2xlYXJUZXh0RmllbGQobGVuZ3RoVG9TZW5kKTtcbiAgICAgIHJlbWFpbmluZ0xlbmd0aCAtPSBsZW5ndGhUb1NlbmQ7XG4gICAgfVxuICB9KTtcbn07XG5cbmNvbW1hbmRzLmNsaWNrID0gYXN5bmMgZnVuY3Rpb24gY2xpY2sgKGVsZW1lbnRJZCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5ib290c3RyYXAuc2VuZEFjdGlvbignZWxlbWVudDpjbGljaycsIHtlbGVtZW50SWR9KTtcbn07XG5cbmNvbW1hbmRzLmdldExvY2F0aW9uID0gYXN5bmMgZnVuY3Rpb24gZ2V0TG9jYXRpb24gKGVsZW1lbnRJZCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5ib290c3RyYXAuc2VuZEFjdGlvbignZWxlbWVudDpnZXRMb2NhdGlvbicsIHtlbGVtZW50SWR9KTtcbn07XG5cbmNvbW1hbmRzLmdldExvY2F0aW9uSW5WaWV3ID0gYXN5bmMgZnVuY3Rpb24gZ2V0TG9jYXRpb25JblZpZXcgKGVsZW1lbnRJZCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5nZXRMb2NhdGlvbihlbGVtZW50SWQpO1xufTtcblxuY29tbWFuZHMuZ2V0U2l6ZSA9IGFzeW5jIGZ1bmN0aW9uIGdldFNpemUgKGVsZW1lbnRJZCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5ib290c3RyYXAuc2VuZEFjdGlvbignZWxlbWVudDpnZXRTaXplJywge2VsZW1lbnRJZH0pO1xufTtcblxuY29tbWFuZHMuZ2V0RWxlbWVudFJlY3QgPSBhc3luYyBmdW5jdGlvbiBnZXRFbGVtZW50UmVjdCAoZWxlbWVudElkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmJvb3RzdHJhcC5zZW5kQWN0aW9uKCdlbGVtZW50OmdldFJlY3QnLCB7ZWxlbWVudElkfSk7XG59O1xuXG5jb21tYW5kcy50b3VjaExvbmdDbGljayA9IGFzeW5jIGZ1bmN0aW9uIHRvdWNoTG9uZ0NsaWNrIChlbGVtZW50SWQsIHgsIHksIGR1cmF0aW9uKSB7XG4gIGxldCBwYXJhbXMgPSB7ZWxlbWVudElkLCB4LCB5LCBkdXJhdGlvbn07XG4gIGFuZHJvaWRIZWxwZXJzLnJlbW92ZU51bGxQcm9wZXJ0aWVzKHBhcmFtcyk7XG4gIHJldHVybiBhd2FpdCB0aGlzLmJvb3RzdHJhcC5zZW5kQWN0aW9uKCdlbGVtZW50OnRvdWNoTG9uZ0NsaWNrJywgcGFyYW1zKTtcbn07XG5cbmNvbW1hbmRzLnRvdWNoRG93biA9IGFzeW5jIGZ1bmN0aW9uIHRvdWNoRG93biAoZWxlbWVudElkLCB4LCB5KSB7XG4gIGxldCBwYXJhbXMgPSB7ZWxlbWVudElkLCB4LCB5fTtcbiAgYW5kcm9pZEhlbHBlcnMucmVtb3ZlTnVsbFByb3BlcnRpZXMocGFyYW1zKTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ2VsZW1lbnQ6dG91Y2hEb3duJywgcGFyYW1zKTtcbn07XG5cbmNvbW1hbmRzLnRvdWNoVXAgPSBhc3luYyBmdW5jdGlvbiB0b3VjaFVwIChlbGVtZW50SWQsIHgsIHkpIHtcbiAgbGV0IHBhcmFtcyA9IHtlbGVtZW50SWQsIHgsIHl9O1xuICBhbmRyb2lkSGVscGVycy5yZW1vdmVOdWxsUHJvcGVydGllcyhwYXJhbXMpO1xuICByZXR1cm4gYXdhaXQgdGhpcy5ib290c3RyYXAuc2VuZEFjdGlvbignZWxlbWVudDp0b3VjaFVwJywgcGFyYW1zKTtcbn07XG5cbmNvbW1hbmRzLnRvdWNoTW92ZSA9IGFzeW5jIGZ1bmN0aW9uIHRvdWNoTW92ZSAoZWxlbWVudElkLCB4LCB5KSB7XG4gIGxldCBwYXJhbXMgPSB7ZWxlbWVudElkLCB4LCB5fTtcbiAgYW5kcm9pZEhlbHBlcnMucmVtb3ZlTnVsbFByb3BlcnRpZXMocGFyYW1zKTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ2VsZW1lbnQ6dG91Y2hNb3ZlJywgcGFyYW1zKTtcbn07XG5cbmNvbW1hbmRzLmNvbXBsZXhUYXAgPSBhc3luYyBmdW5jdGlvbiBjb21wbGV4VGFwICh0YXBDb3VudCwgdG91Y2hDb3VudCwgZHVyYXRpb24sIHgsIHkpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ2NsaWNrJywge3gsIHl9KTtcbn07XG5cbmNvbW1hbmRzLnRhcCA9IGFzeW5jIGZ1bmN0aW9uIChlbGVtZW50SWQgPSBudWxsLCB4ID0gbnVsbCwgeSA9IG51bGwsIGNvdW50ID0gMSkge1xuICBpZiAoIXV0aWwuaGFzVmFsdWUoZWxlbWVudElkKSAmJiAhdXRpbC5oYXNWYWx1ZSh4KSAmJiAhdXRpbC5oYXNWYWx1ZSh5KSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgRWl0aGVyIGVsZW1lbnQgdG8gdGFwIG9yIGJvdGggYWJzb2x1dGUgY29vcmRpbmF0ZXMgc2hvdWxkIGJlIGRlZmluZWRgKTtcbiAgfVxuICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcbiAgICBpZiAodXRpbC5oYXNWYWx1ZShlbGVtZW50SWQpKSB7XG4gICAgICAvLyBGSVhNRTogYm9vdHN0cmFwIGlnbm9yZXMgcmVsYXRpdmUgY29vcmRpbmF0ZXNcbiAgICAgIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ2VsZW1lbnQ6Y2xpY2snLCB7ZWxlbWVudElkLCB4LCB5fSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ2NsaWNrJywge3gsIHl9KTtcbiAgICB9XG4gIH1cbn07XG5cbk9iamVjdC5hc3NpZ24oZXh0ZW5zaW9ucywgY29tbWFuZHMsIGhlbHBlcnMpO1xuZXhwb3J0IHsgY29tbWFuZHMsIGhlbHBlcnMgfTtcbmV4cG9ydCBkZWZhdWx0IGV4dGVuc2lvbnM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBR0EsSUFBSUEsUUFBUSxHQUFHLEVBQWY7QUFBQSxJQUFtQkMsT0FBTyxHQUFHLEVBQTdCO0FBQUEsSUFBaUNDLFVBQVUsR0FBRyxFQUE5Qzs7OztBQUVBRixRQUFRLENBQUNHLFlBQVQsR0FBd0IsZUFBZUEsWUFBZixDQUE2QkMsU0FBN0IsRUFBd0NDLFNBQXhDLEVBQW1EO0VBQ3pFLElBQUlDLENBQUMsR0FBRztJQUFDRixTQUFEO0lBQVlDO0VBQVosQ0FBUjtFQUNBLE9BQU8sTUFBTSxLQUFLRSxTQUFMLENBQWVDLFVBQWYsQ0FBMEIsc0JBQTFCLEVBQWtERixDQUFsRCxDQUFiO0FBQ0QsQ0FIRDs7QUFLQU4sUUFBUSxDQUFDUyxPQUFULEdBQW1CLGVBQWVBLE9BQWYsQ0FBd0JKLFNBQXhCLEVBQW1DO0VBQ3BELE9BQU8sTUFBTSxLQUFLRixZQUFMLENBQWtCLFdBQWxCLEVBQStCRSxTQUEvQixDQUFiO0FBQ0QsQ0FGRDs7QUFJQUwsUUFBUSxDQUFDVSxnQkFBVCxHQUE0QixlQUFlQSxnQkFBZixDQUFpQ0wsU0FBakMsRUFBNEM7RUFDdEUsT0FBTyxPQUFNLEtBQUtGLFlBQUwsQ0FBa0IsV0FBbEIsRUFBK0JFLFNBQS9CLENBQU4sTUFBb0QsTUFBM0Q7QUFDRCxDQUZEOztBQUlBTCxRQUFRLENBQUNXLGNBQVQsR0FBMEIsZUFBZUEsY0FBZixDQUErQk4sU0FBL0IsRUFBMEM7RUFDbEUsT0FBTyxPQUFNLEtBQUtGLFlBQUwsQ0FBa0IsU0FBbEIsRUFBNkJFLFNBQTdCLENBQU4sTUFBa0QsTUFBekQ7QUFDRCxDQUZEOztBQUlBTCxRQUFRLENBQUNZLGVBQVQsR0FBMkIsZUFBZUEsZUFBZixDQUFnQ1AsU0FBaEMsRUFBMkM7RUFDcEUsT0FBTyxPQUFNLEtBQUtGLFlBQUwsQ0FBa0IsVUFBbEIsRUFBOEJFLFNBQTlCLENBQU4sTUFBbUQsTUFBMUQ7QUFDRCxDQUZEOztBQUlBSixPQUFPLENBQUNZLGVBQVIsR0FBMEIsZUFBZUEsZUFBZixDQUFnQ0MsSUFBaEMsRUFBc0NULFNBQXRDLEVBQWlEVSxPQUFPLEdBQUcsS0FBM0QsRUFBa0U7RUFDMUYsSUFBSUMsSUFBSSxHQUFHRixJQUFYOztFQUNBLElBQUlBLElBQUksWUFBWUcsS0FBcEIsRUFBMkI7SUFDekJELElBQUksR0FBR0YsSUFBSSxDQUFDSSxJQUFMLENBQVUsRUFBVixDQUFQO0VBQ0Q7O0VBRUQsSUFBSUMsTUFBTSxHQUFHO0lBQ1hkLFNBRFc7SUFFWFcsSUFGVztJQUdYRCxPQUhXO0lBSVhLLGVBQWUsRUFBRSxLQUFLQyxJQUFMLENBQVVEO0VBSmhCLENBQWI7RUFPQSxPQUFPLE1BQU0sS0FBS0UsaUJBQUwsQ0FBdUJILE1BQXZCLENBQWI7QUFDRCxDQWREOztBQXNCQWxCLE9BQU8sQ0FBQ3FCLGlCQUFSLEdBQTRCLGVBQWVBLGlCQUFmLENBQWtDSCxNQUFsQyxFQUEwQztFQUNwRSxPQUFPLE1BQU0sS0FBS1osU0FBTCxDQUFlQyxVQUFmLENBQTBCLGlCQUExQixFQUE2Q1csTUFBN0MsQ0FBYjtBQUNELENBRkQ7O0FBSUFuQixRQUFRLENBQUN1QixRQUFULEdBQW9CLGVBQWVBLFFBQWYsQ0FBeUJULElBQXpCLEVBQStCVCxTQUEvQixFQUEwQztFQUM1RCxPQUFPLE1BQU0sS0FBS1EsZUFBTCxDQUFxQkMsSUFBckIsRUFBMkJULFNBQTNCLEVBQXNDLEtBQXRDLENBQWI7QUFDRCxDQUZEOztBQUlBTCxRQUFRLENBQUN3QixZQUFULEdBQXdCLGVBQWVBLFlBQWYsQ0FBNkJWLElBQTdCLEVBQW1DVCxTQUFuQyxFQUE4QztFQUNwRSxPQUFPLE1BQU0sS0FBS1EsZUFBTCxDQUFxQkMsSUFBckIsRUFBMkJULFNBQTNCLEVBQXNDLElBQXRDLENBQWI7QUFDRCxDQUZEOztBQUlBTCxRQUFRLENBQUN5QixpQkFBVCxHQUE2QixlQUFlQSxpQkFBZixDQUFrQ1gsSUFBbEMsRUFBd0NULFNBQXhDLEVBQW1EO0VBQzlFLElBQUlXLElBQUksR0FBR0YsSUFBWDs7RUFDQSxJQUFJQSxJQUFJLFlBQVlHLEtBQXBCLEVBQTJCO0lBQ3pCRCxJQUFJLEdBQUdGLElBQUksQ0FBQ0ksSUFBTCxDQUFVLEVBQVYsQ0FBUDtFQUNEOztFQUdELE1BQU0sS0FBS1EsS0FBTCxDQUFXckIsU0FBWCxDQUFOO0VBR0EsTUFBTSxLQUFLc0IsR0FBTCxDQUFTQyxTQUFULENBQW1CWixJQUFuQixDQUFOO0FBQ0QsQ0FYRDs7QUFhQWhCLFFBQVEsQ0FBQzZCLE9BQVQsR0FBbUIsZUFBZUEsT0FBZixDQUF3QnhCLFNBQXhCLEVBQW1DO0VBQ3BELE9BQU8sTUFBTSxLQUFLRSxTQUFMLENBQWVDLFVBQWYsQ0FBMEIsaUJBQTFCLEVBQTZDO0lBQUNIO0VBQUQsQ0FBN0MsQ0FBYjtBQUNELENBRkQ7O0FBSUFMLFFBQVEsQ0FBQzhCLEtBQVQsR0FBaUIsZUFBZUEsS0FBZixDQUFzQnpCLFNBQXRCLEVBQWlDO0VBQ2hELElBQUlXLElBQUksR0FBRyxDQUFDLE1BQU0sS0FBS2EsT0FBTCxDQUFheEIsU0FBYixDQUFQLEtBQW1DLEVBQTlDO0VBQ0EsSUFBSTBCLE1BQU0sR0FBR2YsSUFBSSxDQUFDZSxNQUFsQjs7RUFDQSxJQUFJQSxNQUFNLEtBQUssQ0FBZixFQUFrQjtJQU1oQkEsTUFBTSxHQUFHLEdBQVQ7RUFDRDs7RUFDRCxNQUFNLEtBQUtMLEtBQUwsQ0FBV3JCLFNBQVgsQ0FBTjtFQUNBLEtBQUsyQixHQUFMLENBQVNDLEtBQVQsQ0FBZ0IsaUJBQWdCRixNQUFPLDZCQUF2QztFQUNBLE9BQU8sTUFBTSw2QkFBYyxDQUFkLEVBQWlCLEdBQWpCLEVBQXNCLFlBQVk7SUFDN0MsSUFBSUcsZUFBZSxHQUFHSCxNQUF0Qjs7SUFDQSxPQUFPRyxlQUFlLEdBQUcsQ0FBekIsRUFBNEI7TUFDMUIsSUFBSUMsWUFBWSxHQUFHRCxlQUFlLEdBQUcsRUFBbEIsR0FBdUJBLGVBQXZCLEdBQXlDLEVBQTVEO01BQ0EsS0FBS0YsR0FBTCxDQUFTQyxLQUFULENBQWdCLFdBQVVFLFlBQWEsNkJBQXZDO01BQ0EsTUFBTSxLQUFLUixHQUFMLENBQVNTLGNBQVQsQ0FBd0JELFlBQXhCLENBQU47TUFDQUQsZUFBZSxJQUFJQyxZQUFuQjtJQUNEO0VBQ0YsQ0FSWSxDQUFiO0FBU0QsQ0F0QkQ7O0FBd0JBbkMsUUFBUSxDQUFDMEIsS0FBVCxHQUFpQixlQUFlQSxLQUFmLENBQXNCckIsU0FBdEIsRUFBaUM7RUFDaEQsT0FBTyxNQUFNLEtBQUtFLFNBQUwsQ0FBZUMsVUFBZixDQUEwQixlQUExQixFQUEyQztJQUFDSDtFQUFELENBQTNDLENBQWI7QUFDRCxDQUZEOztBQUlBTCxRQUFRLENBQUNxQyxXQUFULEdBQXVCLGVBQWVBLFdBQWYsQ0FBNEJoQyxTQUE1QixFQUF1QztFQUM1RCxPQUFPLE1BQU0sS0FBS0UsU0FBTCxDQUFlQyxVQUFmLENBQTBCLHFCQUExQixFQUFpRDtJQUFDSDtFQUFELENBQWpELENBQWI7QUFDRCxDQUZEOztBQUlBTCxRQUFRLENBQUNzQyxpQkFBVCxHQUE2QixlQUFlQSxpQkFBZixDQUFrQ2pDLFNBQWxDLEVBQTZDO0VBQ3hFLE9BQU8sTUFBTSxLQUFLZ0MsV0FBTCxDQUFpQmhDLFNBQWpCLENBQWI7QUFDRCxDQUZEOztBQUlBTCxRQUFRLENBQUN1QyxPQUFULEdBQW1CLGVBQWVBLE9BQWYsQ0FBd0JsQyxTQUF4QixFQUFtQztFQUNwRCxPQUFPLE1BQU0sS0FBS0UsU0FBTCxDQUFlQyxVQUFmLENBQTBCLGlCQUExQixFQUE2QztJQUFDSDtFQUFELENBQTdDLENBQWI7QUFDRCxDQUZEOztBQUlBTCxRQUFRLENBQUN3QyxjQUFULEdBQTBCLGVBQWVBLGNBQWYsQ0FBK0JuQyxTQUEvQixFQUEwQztFQUNsRSxPQUFPLE1BQU0sS0FBS0UsU0FBTCxDQUFlQyxVQUFmLENBQTBCLGlCQUExQixFQUE2QztJQUFDSDtFQUFELENBQTdDLENBQWI7QUFDRCxDQUZEOztBQUlBTCxRQUFRLENBQUN5QyxjQUFULEdBQTBCLGVBQWVBLGNBQWYsQ0FBK0JwQyxTQUEvQixFQUEwQ3FDLENBQTFDLEVBQTZDQyxDQUE3QyxFQUFnREMsUUFBaEQsRUFBMEQ7RUFDbEYsSUFBSXpCLE1BQU0sR0FBRztJQUFDZCxTQUFEO0lBQVlxQyxDQUFaO0lBQWVDLENBQWY7SUFBa0JDO0VBQWxCLENBQWI7O0VBQ0FDLHdCQUFlQyxvQkFBZixDQUFvQzNCLE1BQXBDOztFQUNBLE9BQU8sTUFBTSxLQUFLWixTQUFMLENBQWVDLFVBQWYsQ0FBMEIsd0JBQTFCLEVBQW9EVyxNQUFwRCxDQUFiO0FBQ0QsQ0FKRDs7QUFNQW5CLFFBQVEsQ0FBQytDLFNBQVQsR0FBcUIsZUFBZUEsU0FBZixDQUEwQjFDLFNBQTFCLEVBQXFDcUMsQ0FBckMsRUFBd0NDLENBQXhDLEVBQTJDO0VBQzlELElBQUl4QixNQUFNLEdBQUc7SUFBQ2QsU0FBRDtJQUFZcUMsQ0FBWjtJQUFlQztFQUFmLENBQWI7O0VBQ0FFLHdCQUFlQyxvQkFBZixDQUFvQzNCLE1BQXBDOztFQUNBLE9BQU8sTUFBTSxLQUFLWixTQUFMLENBQWVDLFVBQWYsQ0FBMEIsbUJBQTFCLEVBQStDVyxNQUEvQyxDQUFiO0FBQ0QsQ0FKRDs7QUFNQW5CLFFBQVEsQ0FBQ2dELE9BQVQsR0FBbUIsZUFBZUEsT0FBZixDQUF3QjNDLFNBQXhCLEVBQW1DcUMsQ0FBbkMsRUFBc0NDLENBQXRDLEVBQXlDO0VBQzFELElBQUl4QixNQUFNLEdBQUc7SUFBQ2QsU0FBRDtJQUFZcUMsQ0FBWjtJQUFlQztFQUFmLENBQWI7O0VBQ0FFLHdCQUFlQyxvQkFBZixDQUFvQzNCLE1BQXBDOztFQUNBLE9BQU8sTUFBTSxLQUFLWixTQUFMLENBQWVDLFVBQWYsQ0FBMEIsaUJBQTFCLEVBQTZDVyxNQUE3QyxDQUFiO0FBQ0QsQ0FKRDs7QUFNQW5CLFFBQVEsQ0FBQ2lELFNBQVQsR0FBcUIsZUFBZUEsU0FBZixDQUEwQjVDLFNBQTFCLEVBQXFDcUMsQ0FBckMsRUFBd0NDLENBQXhDLEVBQTJDO0VBQzlELElBQUl4QixNQUFNLEdBQUc7SUFBQ2QsU0FBRDtJQUFZcUMsQ0FBWjtJQUFlQztFQUFmLENBQWI7O0VBQ0FFLHdCQUFlQyxvQkFBZixDQUFvQzNCLE1BQXBDOztFQUNBLE9BQU8sTUFBTSxLQUFLWixTQUFMLENBQWVDLFVBQWYsQ0FBMEIsbUJBQTFCLEVBQStDVyxNQUEvQyxDQUFiO0FBQ0QsQ0FKRDs7QUFNQW5CLFFBQVEsQ0FBQ2tELFVBQVQsR0FBc0IsZUFBZUEsVUFBZixDQUEyQkMsUUFBM0IsRUFBcUNDLFVBQXJDLEVBQWlEUixRQUFqRCxFQUEyREYsQ0FBM0QsRUFBOERDLENBQTlELEVBQWlFO0VBQ3JGLE9BQU8sTUFBTSxLQUFLcEMsU0FBTCxDQUFlQyxVQUFmLENBQTBCLE9BQTFCLEVBQW1DO0lBQUNrQyxDQUFEO0lBQUlDO0VBQUosQ0FBbkMsQ0FBYjtBQUNELENBRkQ7O0FBSUEzQyxRQUFRLENBQUNxRCxHQUFULEdBQWUsZ0JBQWdCaEQsU0FBUyxHQUFHLElBQTVCLEVBQWtDcUMsQ0FBQyxHQUFHLElBQXRDLEVBQTRDQyxDQUFDLEdBQUcsSUFBaEQsRUFBc0RXLEtBQUssR0FBRyxDQUE5RCxFQUFpRTtFQUM5RSxJQUFJLENBQUNDLGNBQUtDLFFBQUwsQ0FBY25ELFNBQWQsQ0FBRCxJQUE2QixDQUFDa0QsY0FBS0MsUUFBTCxDQUFjZCxDQUFkLENBQTlCLElBQWtELENBQUNhLGNBQUtDLFFBQUwsQ0FBY2IsQ0FBZCxDQUF2RCxFQUF5RTtJQUN2RSxNQUFNLElBQUljLEtBQUosQ0FBVyxzRUFBWCxDQUFOO0VBQ0Q7O0VBQ0QsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBYixFQUFnQkEsQ0FBQyxHQUFHSixLQUFwQixFQUEyQkksQ0FBQyxFQUE1QixFQUFnQztJQUM5QixJQUFJSCxjQUFLQyxRQUFMLENBQWNuRCxTQUFkLENBQUosRUFBOEI7TUFFNUIsTUFBTSxLQUFLRSxTQUFMLENBQWVDLFVBQWYsQ0FBMEIsZUFBMUIsRUFBMkM7UUFBQ0gsU0FBRDtRQUFZcUMsQ0FBWjtRQUFlQztNQUFmLENBQTNDLENBQU47SUFDRCxDQUhELE1BR087TUFDTCxNQUFNLEtBQUtwQyxTQUFMLENBQWVDLFVBQWYsQ0FBMEIsT0FBMUIsRUFBbUM7UUFBQ2tDLENBQUQ7UUFBSUM7TUFBSixDQUFuQyxDQUFOO0lBQ0Q7RUFDRjtBQUNGLENBWkQ7O0FBY0FnQixNQUFNLENBQUNDLE1BQVAsQ0FBYzFELFVBQWQsRUFBMEJGLFFBQTFCLEVBQW9DQyxPQUFwQztlQUVlQyxVIn0=
225
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2VsZW1lbnQuanMiLCJuYW1lcyI6WyJjb21tYW5kcyIsImhlbHBlcnMiLCJleHRlbnNpb25zIiwiZ2V0QXR0cmlidXRlIiwiYXR0cmlidXRlIiwiZWxlbWVudElkIiwicCIsImJvb3RzdHJhcCIsInNlbmRBY3Rpb24iLCJnZXROYW1lIiwiZWxlbWVudERpc3BsYXllZCIsImVsZW1lbnRFbmFibGVkIiwiZWxlbWVudFNlbGVjdGVkIiwic2V0RWxlbWVudFZhbHVlIiwia2V5cyIsInJlcGxhY2UiLCJ0ZXh0IiwiQXJyYXkiLCJqb2luIiwicGFyYW1zIiwidW5pY29kZUtleWJvYXJkIiwib3B0cyIsImRvU2V0RWxlbWVudFZhbHVlIiwic2V0VmFsdWUiLCJyZXBsYWNlVmFsdWUiLCJzZXRWYWx1ZUltbWVkaWF0ZSIsImNsaWNrIiwiYWRiIiwiaW5wdXRUZXh0IiwiZ2V0VGV4dCIsImNsZWFyIiwibGVuZ3RoIiwibG9nIiwiZGVidWciLCJyZXRyeUludGVydmFsIiwicmVtYWluaW5nTGVuZ3RoIiwibGVuZ3RoVG9TZW5kIiwiY2xlYXJUZXh0RmllbGQiLCJnZXRMb2NhdGlvbiIsImdldExvY2F0aW9uSW5WaWV3IiwiZ2V0U2l6ZSIsImdldEVsZW1lbnRSZWN0IiwidG91Y2hMb25nQ2xpY2siLCJ4IiwieSIsImR1cmF0aW9uIiwiYW5kcm9pZEhlbHBlcnMiLCJyZW1vdmVOdWxsUHJvcGVydGllcyIsInRvdWNoRG93biIsInRvdWNoVXAiLCJ0b3VjaE1vdmUiLCJjb21wbGV4VGFwIiwidGFwQ291bnQiLCJ0b3VjaENvdW50IiwidGFwIiwiY291bnQiLCJ1dGlsIiwiaGFzVmFsdWUiLCJFcnJvciIsImkiLCJPYmplY3QiLCJhc3NpZ24iXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uIiwic291cmNlcyI6WyJsaWIvY29tbWFuZHMvZWxlbWVudC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgYW5kcm9pZEhlbHBlcnMgZnJvbSAnLi4vYW5kcm9pZC1oZWxwZXJzJztcbmltcG9ydCB7IHJldHJ5SW50ZXJ2YWwgfSBmcm9tICdhc3luY2JveCc7XG5pbXBvcnQgeyB1dGlsIH0gZnJvbSAnYXBwaXVtL3N1cHBvcnQnO1xuXG5cbmxldCBjb21tYW5kcyA9IHt9LCBoZWxwZXJzID0ge30sIGV4dGVuc2lvbnMgPSB7fTtcblxuY29tbWFuZHMuZ2V0QXR0cmlidXRlID0gYXN5bmMgZnVuY3Rpb24gZ2V0QXR0cmlidXRlIChhdHRyaWJ1dGUsIGVsZW1lbnRJZCkge1xuICBsZXQgcCA9IHthdHRyaWJ1dGUsIGVsZW1lbnRJZH07XG4gIHJldHVybiBhd2FpdCB0aGlzLmJvb3RzdHJhcC5zZW5kQWN0aW9uKCdlbGVtZW50OmdldEF0dHJpYnV0ZScsIHApO1xufTtcblxuY29tbWFuZHMuZ2V0TmFtZSA9IGFzeW5jIGZ1bmN0aW9uIGdldE5hbWUgKGVsZW1lbnRJZCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5nZXRBdHRyaWJ1dGUoJ2NsYXNzTmFtZScsIGVsZW1lbnRJZCk7XG59O1xuXG5jb21tYW5kcy5lbGVtZW50RGlzcGxheWVkID0gYXN5bmMgZnVuY3Rpb24gZWxlbWVudERpc3BsYXllZCAoZWxlbWVudElkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmdldEF0dHJpYnV0ZSgnZGlzcGxheWVkJywgZWxlbWVudElkKSA9PT0gJ3RydWUnO1xufTtcblxuY29tbWFuZHMuZWxlbWVudEVuYWJsZWQgPSBhc3luYyBmdW5jdGlvbiBlbGVtZW50RW5hYmxlZCAoZWxlbWVudElkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmdldEF0dHJpYnV0ZSgnZW5hYmxlZCcsIGVsZW1lbnRJZCkgPT09ICd0cnVlJztcbn07XG5cbmNvbW1hbmRzLmVsZW1lbnRTZWxlY3RlZCA9IGFzeW5jIGZ1bmN0aW9uIGVsZW1lbnRTZWxlY3RlZCAoZWxlbWVudElkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmdldEF0dHJpYnV0ZSgnc2VsZWN0ZWQnLCBlbGVtZW50SWQpID09PSAndHJ1ZSc7XG59O1xuXG5oZWxwZXJzLnNldEVsZW1lbnRWYWx1ZSA9IGFzeW5jIGZ1bmN0aW9uIHNldEVsZW1lbnRWYWx1ZSAoa2V5cywgZWxlbWVudElkLCByZXBsYWNlID0gZmFsc2UpIHtcbiAgbGV0IHRleHQgPSBrZXlzO1xuICBpZiAoa2V5cyBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgdGV4dCA9IGtleXMuam9pbignJyk7XG4gIH1cblxuICBsZXQgcGFyYW1zID0ge1xuICAgIGVsZW1lbnRJZCxcbiAgICB0ZXh0LFxuICAgIHJlcGxhY2UsXG4gICAgdW5pY29kZUtleWJvYXJkOiB0aGlzLm9wdHMudW5pY29kZUtleWJvYXJkXG4gIH07XG5cbiAgcmV0dXJuIGF3YWl0IHRoaXMuZG9TZXRFbGVtZW50VmFsdWUocGFyYW1zKTtcbn07XG5cbi8qKlxuICogUmVhc29uIGZvciBpc29sYXRpbmcgZG9TZXRFbGVtZW50VmFsdWUgZnJvbSBzZXRFbGVtZW50VmFsdWUgaXMgZm9yIHJldXNpbmcgc2V0RWxlbWVudFZhbHVlXG4gKiBhY3Jvc3MgYW5kcm9pZC1kcml2ZXJzIChsaWtlIGFwcGl1bS11aWF1dG9tYXRvcjItZHJpdmVyKSBhbmQgdG8gYXZvaWQgY29kZSBkdXBsaWNhdGlvbi5cbiAqIE90aGVyIGFuZHJvaWQtZHJpdmVycyAobGlrZSBhcHBpdW0tdWlhdXRvbWF0b3IyLWRyaXZlcikgbmVlZCB0byBvdmVycmlkZSBkb1NldEVsZW1lbnRWYWx1ZVxuICogdG8gZmFjaWxpdGF0ZSBzZXRFbGVtZW50VmFsdWUuXG4gKi9cbmhlbHBlcnMuZG9TZXRFbGVtZW50VmFsdWUgPSBhc3luYyBmdW5jdGlvbiBkb1NldEVsZW1lbnRWYWx1ZSAocGFyYW1zKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmJvb3RzdHJhcC5zZW5kQWN0aW9uKCdlbGVtZW50OnNldFRleHQnLCBwYXJhbXMpO1xufTtcblxuY29tbWFuZHMuc2V0VmFsdWUgPSBhc3luYyBmdW5jdGlvbiBzZXRWYWx1ZSAoa2V5cywgZWxlbWVudElkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnNldEVsZW1lbnRWYWx1ZShrZXlzLCBlbGVtZW50SWQsIGZhbHNlKTtcbn07XG5cbmNvbW1hbmRzLnJlcGxhY2VWYWx1ZSA9IGFzeW5jIGZ1bmN0aW9uIHJlcGxhY2VWYWx1ZSAoa2V5cywgZWxlbWVudElkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLnNldEVsZW1lbnRWYWx1ZShrZXlzLCBlbGVtZW50SWQsIHRydWUpO1xufTtcblxuY29tbWFuZHMuc2V0VmFsdWVJbW1lZGlhdGUgPSBhc3luYyBmdW5jdGlvbiBzZXRWYWx1ZUltbWVkaWF0ZSAoa2V5cywgZWxlbWVudElkKSB7XG4gIGxldCB0ZXh0ID0ga2V5cztcbiAgaWYgKGtleXMgaW5zdGFuY2VvZiBBcnJheSkge1xuICAgIHRleHQgPSBrZXlzLmpvaW4oJycpO1xuICB9XG5cbiAgLy8gZmlyc3QsIG1ha2Ugc3VyZSB3ZSBhcmUgZm9jdXNlZCBvbiB0aGUgZWxlbWVudFxuICBhd2FpdCB0aGlzLmNsaWNrKGVsZW1lbnRJZCk7XG5cbiAgLy8gdGhlbiBzZW5kIHRocm91Z2ggYWRiXG4gIGF3YWl0IHRoaXMuYWRiLmlucHV0VGV4dCh0ZXh0KTtcbn07XG5cbmNvbW1hbmRzLmdldFRleHQgPSBhc3luYyBmdW5jdGlvbiBnZXRUZXh0IChlbGVtZW50SWQpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ2VsZW1lbnQ6Z2V0VGV4dCcsIHtlbGVtZW50SWR9KTtcbn07XG5cbmNvbW1hbmRzLmNsZWFyID0gYXN5bmMgZnVuY3Rpb24gY2xlYXIgKGVsZW1lbnRJZCkge1xuICBsZXQgdGV4dCA9IChhd2FpdCB0aGlzLmdldFRleHQoZWxlbWVudElkKSkgfHwgJyc7XG4gIGxldCBsZW5ndGggPSB0ZXh0Lmxlbmd0aDtcbiAgaWYgKGxlbmd0aCA9PT0gMCkge1xuICAgIC8vIGlmIGxlbmd0aCBpcyB6ZXJvIHRoZXJlIGFyZSB0d28gcG9zc2liaWxpdGllczpcbiAgICAvLyAgIDEuIHRoZXJlIGlzIG5vdGhpbmcgaW4gdGhlIHRleHQgZmllbGRcbiAgICAvLyAgIDIuIGl0IGlzIGEgcGFzc3dvcmQgZmllbGRcbiAgICAvLyBzaW5jZSB0aGVyZSBpcyBsaXR0bGUgb3ZlcmhlYWQgdG8gdGhlIGFkYiBjYWxsLCBkZWxldGUgMTAwIGVsZW1lbnRzXG4gICAgLy8gaWYgd2UgZ2V0IHplcm8sIGp1c3QgaW4gY2FzZSBpdCBpcyAjMlxuICAgIGxlbmd0aCA9IDEwMDtcbiAgfVxuICBhd2FpdCB0aGlzLmNsaWNrKGVsZW1lbnRJZCk7XG4gIHRoaXMubG9nLmRlYnVnKGBTZW5kaW5nIHVwIHRvICR7bGVuZ3RofSBjbGVhciBjaGFyYWN0ZXJzIHRvIGRldmljZWApO1xuICByZXR1cm4gYXdhaXQgcmV0cnlJbnRlcnZhbCg1LCA1MDAsIGFzeW5jICgpID0+IHtcbiAgICBsZXQgcmVtYWluaW5nTGVuZ3RoID0gbGVuZ3RoO1xuICAgIHdoaWxlIChyZW1haW5pbmdMZW5ndGggPiAwKSB7XG4gICAgICBsZXQgbGVuZ3RoVG9TZW5kID0gcmVtYWluaW5nTGVuZ3RoIDwgNTAgPyByZW1haW5pbmdMZW5ndGggOiA1MDtcbiAgICAgIHRoaXMubG9nLmRlYnVnKGBTZW5kaW5nICR7bGVuZ3RoVG9TZW5kfSBjbGVhciBjaGFyYWN0ZXJzIHRvIGRldmljZWApO1xuICAgICAgYXdhaXQgdGhpcy5hZGIuY2xlYXJUZXh0RmllbGQobGVuZ3RoVG9TZW5kKTtcbiAgICAgIHJlbWFpbmluZ0xlbmd0aCAtPSBsZW5ndGhUb1NlbmQ7XG4gICAgfVxuICB9KTtcbn07XG5cbmNvbW1hbmRzLmNsaWNrID0gYXN5bmMgZnVuY3Rpb24gY2xpY2sgKGVsZW1lbnRJZCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5ib290c3RyYXAuc2VuZEFjdGlvbignZWxlbWVudDpjbGljaycsIHtlbGVtZW50SWR9KTtcbn07XG5cbmNvbW1hbmRzLmdldExvY2F0aW9uID0gYXN5bmMgZnVuY3Rpb24gZ2V0TG9jYXRpb24gKGVsZW1lbnRJZCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5ib290c3RyYXAuc2VuZEFjdGlvbignZWxlbWVudDpnZXRMb2NhdGlvbicsIHtlbGVtZW50SWR9KTtcbn07XG5cbmNvbW1hbmRzLmdldExvY2F0aW9uSW5WaWV3ID0gYXN5bmMgZnVuY3Rpb24gZ2V0TG9jYXRpb25JblZpZXcgKGVsZW1lbnRJZCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5nZXRMb2NhdGlvbihlbGVtZW50SWQpO1xufTtcblxuY29tbWFuZHMuZ2V0U2l6ZSA9IGFzeW5jIGZ1bmN0aW9uIGdldFNpemUgKGVsZW1lbnRJZCkge1xuICByZXR1cm4gYXdhaXQgdGhpcy5ib290c3RyYXAuc2VuZEFjdGlvbignZWxlbWVudDpnZXRTaXplJywge2VsZW1lbnRJZH0pO1xufTtcblxuY29tbWFuZHMuZ2V0RWxlbWVudFJlY3QgPSBhc3luYyBmdW5jdGlvbiBnZXRFbGVtZW50UmVjdCAoZWxlbWVudElkKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmJvb3RzdHJhcC5zZW5kQWN0aW9uKCdlbGVtZW50OmdldFJlY3QnLCB7ZWxlbWVudElkfSk7XG59O1xuXG5jb21tYW5kcy50b3VjaExvbmdDbGljayA9IGFzeW5jIGZ1bmN0aW9uIHRvdWNoTG9uZ0NsaWNrIChlbGVtZW50SWQsIHgsIHksIGR1cmF0aW9uKSB7XG4gIGxldCBwYXJhbXMgPSB7ZWxlbWVudElkLCB4LCB5LCBkdXJhdGlvbn07XG4gIGFuZHJvaWRIZWxwZXJzLnJlbW92ZU51bGxQcm9wZXJ0aWVzKHBhcmFtcyk7XG4gIHJldHVybiBhd2FpdCB0aGlzLmJvb3RzdHJhcC5zZW5kQWN0aW9uKCdlbGVtZW50OnRvdWNoTG9uZ0NsaWNrJywgcGFyYW1zKTtcbn07XG5cbmNvbW1hbmRzLnRvdWNoRG93biA9IGFzeW5jIGZ1bmN0aW9uIHRvdWNoRG93biAoZWxlbWVudElkLCB4LCB5KSB7XG4gIGxldCBwYXJhbXMgPSB7ZWxlbWVudElkLCB4LCB5fTtcbiAgYW5kcm9pZEhlbHBlcnMucmVtb3ZlTnVsbFByb3BlcnRpZXMocGFyYW1zKTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ2VsZW1lbnQ6dG91Y2hEb3duJywgcGFyYW1zKTtcbn07XG5cbmNvbW1hbmRzLnRvdWNoVXAgPSBhc3luYyBmdW5jdGlvbiB0b3VjaFVwIChlbGVtZW50SWQsIHgsIHkpIHtcbiAgbGV0IHBhcmFtcyA9IHtlbGVtZW50SWQsIHgsIHl9O1xuICBhbmRyb2lkSGVscGVycy5yZW1vdmVOdWxsUHJvcGVydGllcyhwYXJhbXMpO1xuICByZXR1cm4gYXdhaXQgdGhpcy5ib290c3RyYXAuc2VuZEFjdGlvbignZWxlbWVudDp0b3VjaFVwJywgcGFyYW1zKTtcbn07XG5cbmNvbW1hbmRzLnRvdWNoTW92ZSA9IGFzeW5jIGZ1bmN0aW9uIHRvdWNoTW92ZSAoZWxlbWVudElkLCB4LCB5KSB7XG4gIGxldCBwYXJhbXMgPSB7ZWxlbWVudElkLCB4LCB5fTtcbiAgYW5kcm9pZEhlbHBlcnMucmVtb3ZlTnVsbFByb3BlcnRpZXMocGFyYW1zKTtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ2VsZW1lbnQ6dG91Y2hNb3ZlJywgcGFyYW1zKTtcbn07XG5cbmNvbW1hbmRzLmNvbXBsZXhUYXAgPSBhc3luYyBmdW5jdGlvbiBjb21wbGV4VGFwICh0YXBDb3VudCwgdG91Y2hDb3VudCwgZHVyYXRpb24sIHgsIHkpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ2NsaWNrJywge3gsIHl9KTtcbn07XG5cbmNvbW1hbmRzLnRhcCA9IGFzeW5jIGZ1bmN0aW9uIChlbGVtZW50SWQgPSBudWxsLCB4ID0gbnVsbCwgeSA9IG51bGwsIGNvdW50ID0gMSkge1xuICBpZiAoIXV0aWwuaGFzVmFsdWUoZWxlbWVudElkKSAmJiAhdXRpbC5oYXNWYWx1ZSh4KSAmJiAhdXRpbC5oYXNWYWx1ZSh5KSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgRWl0aGVyIGVsZW1lbnQgdG8gdGFwIG9yIGJvdGggYWJzb2x1dGUgY29vcmRpbmF0ZXMgc2hvdWxkIGJlIGRlZmluZWRgKTtcbiAgfVxuICBmb3IgKGxldCBpID0gMDsgaSA8IGNvdW50OyBpKyspIHtcbiAgICBpZiAodXRpbC5oYXNWYWx1ZShlbGVtZW50SWQpKSB7XG4gICAgICAvLyBGSVhNRTogYm9vdHN0cmFwIGlnbm9yZXMgcmVsYXRpdmUgY29vcmRpbmF0ZXNcbiAgICAgIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ2VsZW1lbnQ6Y2xpY2snLCB7ZWxlbWVudElkLCB4LCB5fSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ2NsaWNrJywge3gsIHl9KTtcbiAgICB9XG4gIH1cbn07XG5cbk9iamVjdC5hc3NpZ24oZXh0ZW5zaW9ucywgY29tbWFuZHMsIGhlbHBlcnMpO1xuZXhwb3J0IHsgY29tbWFuZHMsIGhlbHBlcnMgfTtcbmV4cG9ydCBkZWZhdWx0IGV4dGVuc2lvbnM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBR0EsSUFBSUEsUUFBUSxHQUFHLEVBQWY7QUFBQSxJQUFtQkMsT0FBTyxHQUFHLEVBQTdCO0FBQUEsSUFBaUNDLFVBQVUsR0FBRyxFQUE5Qzs7OztBQUVBRixRQUFRLENBQUNHLFlBQVQsR0FBd0IsZUFBZUEsWUFBZixDQUE2QkMsU0FBN0IsRUFBd0NDLFNBQXhDLEVBQW1EO0VBQ3pFLElBQUlDLENBQUMsR0FBRztJQUFDRixTQUFEO0lBQVlDO0VBQVosQ0FBUjtFQUNBLE9BQU8sTUFBTSxLQUFLRSxTQUFMLENBQWVDLFVBQWYsQ0FBMEIsc0JBQTFCLEVBQWtERixDQUFsRCxDQUFiO0FBQ0QsQ0FIRDs7QUFLQU4sUUFBUSxDQUFDUyxPQUFULEdBQW1CLGVBQWVBLE9BQWYsQ0FBd0JKLFNBQXhCLEVBQW1DO0VBQ3BELE9BQU8sTUFBTSxLQUFLRixZQUFMLENBQWtCLFdBQWxCLEVBQStCRSxTQUEvQixDQUFi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
@@ -7,7 +7,7 @@ exports.default = exports.commands = void 0;
7
7
 
8
8
  require("source-map-support/register");
9
9
 
10
- var _baseDriver = require("@appium/base-driver");
10
+ var _driver = require("appium/driver");
11
11
 
12
12
  const EMU_CONSOLE_FEATURE = 'emulator_console';
13
13
  const commands = {};
@@ -23,7 +23,7 @@ commands.mobileExecEmuConsoleCommand = async function mobileExecEmuConsoleComman
23
23
  } = opts;
24
24
 
25
25
  if (!command) {
26
- throw new _baseDriver.errors.InvalidArgumentError(`The 'command' argument is mandatory`);
26
+ throw new _driver.errors.InvalidArgumentError(`The 'command' argument is mandatory`);
27
27
  }
28
28
 
29
29
  return await this.adb.execEmuConsoleCommand(command, {
@@ -37,4 +37,4 @@ var _default = commands;
37
37
  exports.default = _default;require('source-map-support').install();
38
38
 
39
39
 
40
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2VtdS1jb25zb2xlLmpzIiwibmFtZXMiOlsiRU1VX0NPTlNPTEVfRkVBVFVSRSIsImNvbW1hbmRzIiwibW9iaWxlRXhlY0VtdUNvbnNvbGVDb21tYW5kIiwib3B0cyIsImVuc3VyZUZlYXR1cmVFbmFibGVkIiwiY29tbWFuZCIsImV4ZWNUaW1lb3V0IiwiY29ublRpbWVvdXQiLCJpbml0VGltZW91dCIsImVycm9ycyIsIkludmFsaWRBcmd1bWVudEVycm9yIiwiYWRiIiwiZXhlY0VtdUNvbnNvbGVDb21tYW5kIl0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLiIsInNvdXJjZXMiOlsibGliL2NvbW1hbmRzL2VtdS1jb25zb2xlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVycm9ycyB9IGZyb20gJ0BhcHBpdW0vYmFzZS1kcml2ZXInO1xuXG5jb25zdCBFTVVfQ09OU09MRV9GRUFUVVJFID0gJ2VtdWxhdG9yX2NvbnNvbGUnO1xuXG5jb25zdCBjb21tYW5kcyA9IHt9O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IEV4ZWNPcHRpb25zXG4gKiBAcHJvcGVydHkgeyFBcnJheTxzdHJpbmc+fHN0cmluZ30gY29tbWFuZCAtIFRoZSBhY3R1YWwgY29tbWFuZCB0byBleGVjdXRlLiBTZWVcbiAqIGh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3N0dWRpby9ydW4vZW11bGF0b3ItY29uc29sZSBmb3IgbW9yZSBkZXRhaWxzXG4gKiBvbiBhdmFpbGFibGUgY29tbWFuZHNcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBleGVjVGltZW91dCBbNjAwMDBdIEEgdGltZW91dCB1c2VkIHRvIHdhaXQgZm9yIGEgc2VydmVyXG4gKiByZXBseSB0byB0aGUgZ2l2ZW4gY29tbWFuZCBpbiBtaWxsaXNlY29uZHNcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBjb25uVGltZW91dCBbNTAwMF0gQ29uc29sZSBjb25uZWN0aW9uIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzXG4gKiBAcHJvcGVydHkge251bWJlcn0gaW5pdFRpbWVvdXQgWzUwMDBdIFRlbG5ldCBjb25zb2xlIGluaXRpYWxpemF0aW9uIHRpbWVvdXRcbiAqIGluIG1pbGxpc2Vjb25kcyAodGhlIHRpbWUgYmV0d2VlbiB0aGUgY29ubmVjdGlvbiBoYXBwZW5zIGFuZCB0aGUgY29tbWFuZCBwcm9tcHRcbiAqIGlzIGF2YWlsYWJsZSlcbiAqL1xuXG4vKipcbiAqIEV4ZWN1dGVzIGEgY29tbWFuZCB0aHJvdWdoIGVtdWxhdG9yIHRlbG5ldCBjb25zb2xlIGludGVyZmFjZSBhbmQgcmV0dXJucyBpdHMgb3V0cHV0LlxuICogVGhlIGBlbXVsYXRvcl9jb25zb2xlYCBzZXJ2ZXIgZmVhdHVyZSBtdXN0IGJlIGVuYWJsZWQgaW4gb3JkZXIgdG8gdXNlIHRoaXMgbWV0aG9kLlxuICpcbiAqIEBwYXJhbSB7RXhlY09wdGlvbnN9IG9wdHNcbiAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBjb21tYW5kIG91dHB1dFxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZXJlIHdhcyBhbiBlcnJvciB3aGlsZSBjb25uZWN0aW5nIHRvIHRoZSBUZWxuZXQgY29uc29sZVxuICogb3IgaWYgdGhlIGdpdmVuIGNvbW1hbmQgcmV0dXJuZWQgbm9uLU9LIHJlc3BvbnNlXG4gKi9cbmNvbW1hbmRzLm1vYmlsZUV4ZWNFbXVDb25zb2xlQ29tbWFuZCA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUV4ZWNFbXVDb25zb2xlQ29tbWFuZCAob3B0cyA9IHt9KSB7XG4gIHRoaXMuZW5zdXJlRmVhdHVyZUVuYWJsZWQoRU1VX0NPTlNPTEVfRkVBVFVSRSk7XG5cbiAgY29uc3Qge1xuICAgIGNvbW1hbmQsXG4gICAgZXhlY1RpbWVvdXQsXG4gICAgY29ublRpbWVvdXQsXG4gICAgaW5pdFRpbWVvdXQsXG4gIH0gPSBvcHRzO1xuXG4gIGlmICghY29tbWFuZCkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZEFyZ3VtZW50RXJyb3IoYFRoZSAnY29tbWFuZCcgYXJndW1lbnQgaXMgbWFuZGF0b3J5YCk7XG4gIH1cblxuICByZXR1cm4gYXdhaXQgdGhpcy5hZGIuZXhlY0VtdUNvbnNvbGVDb21tYW5kKGNvbW1hbmQsIHtcbiAgICBleGVjVGltZW91dCxcbiAgICBjb25uVGltZW91dCxcbiAgICBpbml0VGltZW91dCxcbiAgfSk7XG59O1xuXG5leHBvcnQgeyBjb21tYW5kcyB9O1xuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUVBLE1BQU1BLG1CQUFtQixHQUFHLGtCQUE1QjtBQUVBLE1BQU1DLFFBQVEsR0FBRyxFQUFqQjs7O0FBd0JBQSxRQUFRLENBQUNDLDJCQUFULEdBQXVDLGVBQWVBLDJCQUFmLENBQTRDQyxJQUFJLEdBQUcsRUFBbkQsRUFBdUQ7RUFDNUYsS0FBS0Msb0JBQUwsQ0FBMEJKLG1CQUExQjtFQUVBLE1BQU07SUFDSkssT0FESTtJQUVKQyxXQUZJO0lBR0pDLFdBSEk7SUFJSkM7RUFKSSxJQUtGTCxJQUxKOztFQU9BLElBQUksQ0FBQ0UsT0FBTCxFQUFjO0lBQ1osTUFBTSxJQUFJSSxtQkFBT0Msb0JBQVgsQ0FBaUMscUNBQWpDLENBQU47RUFDRDs7RUFFRCxPQUFPLE1BQU0sS0FBS0MsR0FBTCxDQUFTQyxxQkFBVCxDQUErQlAsT0FBL0IsRUFBd0M7SUFDbkRDLFdBRG1EO0lBRW5EQyxXQUZtRDtJQUduREM7RUFIbUQsQ0FBeEMsQ0FBYjtBQUtELENBbkJEOztlQXNCZVAsUSJ9
40
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2VtdS1jb25zb2xlLmpzIiwibmFtZXMiOlsiRU1VX0NPTlNPTEVfRkVBVFVSRSIsImNvbW1hbmRzIiwibW9iaWxlRXhlY0VtdUNvbnNvbGVDb21tYW5kIiwib3B0cyIsImVuc3VyZUZlYXR1cmVFbmFibGVkIiwiY29tbWFuZCIsImV4ZWNUaW1lb3V0IiwiY29ublRpbWVvdXQiLCJpbml0VGltZW91dCIsImVycm9ycyIsIkludmFsaWRBcmd1bWVudEVycm9yIiwiYWRiIiwiZXhlY0VtdUNvbnNvbGVDb21tYW5kIl0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLiIsInNvdXJjZXMiOlsibGliL2NvbW1hbmRzL2VtdS1jb25zb2xlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGVycm9ycyB9IGZyb20gJ2FwcGl1bS9kcml2ZXInO1xuXG5jb25zdCBFTVVfQ09OU09MRV9GRUFUVVJFID0gJ2VtdWxhdG9yX2NvbnNvbGUnO1xuXG5jb25zdCBjb21tYW5kcyA9IHt9O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IEV4ZWNPcHRpb25zXG4gKiBAcHJvcGVydHkgeyFBcnJheTxzdHJpbmc+fHN0cmluZ30gY29tbWFuZCAtIFRoZSBhY3R1YWwgY29tbWFuZCB0byBleGVjdXRlLiBTZWVcbiAqIGh0dHBzOi8vZGV2ZWxvcGVyLmFuZHJvaWQuY29tL3N0dWRpby9ydW4vZW11bGF0b3ItY29uc29sZSBmb3IgbW9yZSBkZXRhaWxzXG4gKiBvbiBhdmFpbGFibGUgY29tbWFuZHNcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBleGVjVGltZW91dCBbNjAwMDBdIEEgdGltZW91dCB1c2VkIHRvIHdhaXQgZm9yIGEgc2VydmVyXG4gKiByZXBseSB0byB0aGUgZ2l2ZW4gY29tbWFuZCBpbiBtaWxsaXNlY29uZHNcbiAqIEBwcm9wZXJ0eSB7bnVtYmVyfSBjb25uVGltZW91dCBbNTAwMF0gQ29uc29sZSBjb25uZWN0aW9uIHRpbWVvdXQgaW4gbWlsbGlzZWNvbmRzXG4gKiBAcHJvcGVydHkge251bWJlcn0gaW5pdFRpbWVvdXQgWzUwMDBdIFRlbG5ldCBjb25zb2xlIGluaXRpYWxpemF0aW9uIHRpbWVvdXRcbiAqIGluIG1pbGxpc2Vjb25kcyAodGhlIHRpbWUgYmV0d2VlbiB0aGUgY29ubmVjdGlvbiBoYXBwZW5zIGFuZCB0aGUgY29tbWFuZCBwcm9tcHRcbiAqIGlzIGF2YWlsYWJsZSlcbiAqL1xuXG4vKipcbiAqIEV4ZWN1dGVzIGEgY29tbWFuZCB0aHJvdWdoIGVtdWxhdG9yIHRlbG5ldCBjb25zb2xlIGludGVyZmFjZSBhbmQgcmV0dXJucyBpdHMgb3V0cHV0LlxuICogVGhlIGBlbXVsYXRvcl9jb25zb2xlYCBzZXJ2ZXIgZmVhdHVyZSBtdXN0IGJlIGVuYWJsZWQgaW4gb3JkZXIgdG8gdXNlIHRoaXMgbWV0aG9kLlxuICpcbiAqIEBwYXJhbSB7RXhlY09wdGlvbnN9IG9wdHNcbiAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBjb21tYW5kIG91dHB1dFxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZXJlIHdhcyBhbiBlcnJvciB3aGlsZSBjb25uZWN0aW5nIHRvIHRoZSBUZWxuZXQgY29uc29sZVxuICogb3IgaWYgdGhlIGdpdmVuIGNvbW1hbmQgcmV0dXJuZWQgbm9uLU9LIHJlc3BvbnNlXG4gKi9cbmNvbW1hbmRzLm1vYmlsZUV4ZWNFbXVDb25zb2xlQ29tbWFuZCA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZUV4ZWNFbXVDb25zb2xlQ29tbWFuZCAob3B0cyA9IHt9KSB7XG4gIHRoaXMuZW5zdXJlRmVhdHVyZUVuYWJsZWQoRU1VX0NPTlNPTEVfRkVBVFVSRSk7XG5cbiAgY29uc3Qge1xuICAgIGNvbW1hbmQsXG4gICAgZXhlY1RpbWVvdXQsXG4gICAgY29ublRpbWVvdXQsXG4gICAgaW5pdFRpbWVvdXQsXG4gIH0gPSBvcHRzO1xuXG4gIGlmICghY29tbWFuZCkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZEFyZ3VtZW50RXJyb3IoYFRoZSAnY29tbWFuZCcgYXJndW1lbnQgaXMgbWFuZGF0b3J5YCk7XG4gIH1cblxuICByZXR1cm4gYXdhaXQgdGhpcy5hZGIuZXhlY0VtdUNvbnNvbGVDb21tYW5kKGNvbW1hbmQsIHtcbiAgICBleGVjVGltZW91dCxcbiAgICBjb25uVGltZW91dCxcbiAgICBpbml0VGltZW91dCxcbiAgfSk7XG59O1xuXG5leHBvcnQgeyBjb21tYW5kcyB9O1xuZXhwb3J0IGRlZmF1bHQgY29tbWFuZHM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUFBOztBQUVBLE1BQU1BLG1CQUFtQixHQUFHLGtCQUE1QjtBQUVBLE1BQU1DLFFBQVEsR0FBRyxFQUFqQjs7O0FBd0JBQSxRQUFRLENBQUNDLDJCQUFULEdBQXVDLGVBQWVBLDJCQUFmLENBQTRDQyxJQUFJLEdBQUcsRUFBbkQsRUFBdUQ7RUFDNUYsS0FBS0Msb0JBQUwsQ0FBMEJKLG1CQUExQjtFQUVBLE1BQU07SUFDSkssT0FESTtJQUVKQyxXQUZJO0lBR0pDLFdBSEk7SUFJSkM7RUFKSSxJQUtGTCxJQUxKOztFQU9BLElBQUksQ0FBQ0UsT0FBTCxFQUFjO0lBQ1osTUFBTSxJQUFJSSxjQUFBLENBQU9DLG9CQUFYLENBQWlDLHFDQUFqQyxDQUFOO0VBQ0Q7O0VBRUQsT0FBTyxNQUFNLEtBQUtDLEdBQUwsQ0FBU0MscUJBQVQsQ0FBK0JQLE9BQS9CLEVBQXdDO0lBQ25EQyxXQURtRDtJQUVuREMsV0FGbUQ7SUFHbkRDO0VBSG1ELENBQXhDLENBQWI7QUFLRCxDQW5CRDs7ZUFzQmVQLFEifQ==
@@ -11,7 +11,7 @@ require("source-map-support/register");
11
11
 
12
12
  var _lodash = _interopRequireDefault(require("lodash"));
13
13
 
14
- var _baseDriver = require("@appium/base-driver");
14
+ var _driver = require("appium/driver");
15
15
 
16
16
  const extensions = {};
17
17
 
@@ -23,10 +23,10 @@ extensions.execute = async function execute(script, args) {
23
23
  }
24
24
 
25
25
  if (!this.isWebContext()) {
26
- throw new _baseDriver.errors.NotImplementedError();
26
+ throw new _driver.errors.NotImplementedError();
27
27
  }
28
28
 
29
- const endpoint = this.chromedriver.jwproxy.downstreamProtocol === _baseDriver.PROTOCOLS.MJSONWP ? '/execute' : '/execute/sync';
29
+ const endpoint = this.chromedriver.jwproxy.downstreamProtocol === _driver.PROTOCOLS.MJSONWP ? '/execute' : '/execute/sync';
30
30
  return await this.chromedriver.jwproxy.command(endpoint, 'POST', {
31
31
  script,
32
32
  args
@@ -60,7 +60,7 @@ extensions.executeMobile = async function executeMobile(mobileCommand, opts = {}
60
60
  };
61
61
 
62
62
  if (!_lodash.default.has(mobileCommandsMapping, mobileCommand)) {
63
- throw new _baseDriver.errors.UnknownCommandError(`Unknown mobile command "${mobileCommand}". ` + `Only ${_lodash.default.keys(mobileCommandsMapping)} commands are supported.`);
63
+ throw new _driver.errors.UnknownCommandError(`Unknown mobile command "${mobileCommand}". ` + `Only ${_lodash.default.keys(mobileCommandsMapping)} commands are supported.`);
64
64
  }
65
65
 
66
66
  return await this[mobileCommandsMapping[mobileCommand]](opts);
@@ -70,4 +70,4 @@ var _default = extensions;
70
70
  exports.default = _default;require('source-map-support').install();
71
71
 
72
72
 
73
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2V4ZWN1dGUuanMiLCJuYW1lcyI6WyJleHRlbnNpb25zIiwiZXhlY3V0ZSIsInNjcmlwdCIsImFyZ3MiLCJtYXRjaCIsImxvZyIsImluZm8iLCJyZXBsYWNlIiwidHJpbSIsImV4ZWN1dGVNb2JpbGUiLCJfIiwiaXNBcnJheSIsImlzV2ViQ29udGV4dCIsImVycm9ycyIsIk5vdEltcGxlbWVudGVkRXJyb3IiLCJlbmRwb2ludCIsImNocm9tZWRyaXZlciIsImp3cHJveHkiLCJkb3duc3RyZWFtUHJvdG9jb2wiLCJQUk9UT0NPTFMiLCJNSlNPTldQIiwiY29tbWFuZCIsIm1vYmlsZUNvbW1hbmQiLCJvcHRzIiwibW9iaWxlQ29tbWFuZHNNYXBwaW5nIiwic2hlbGwiLCJleGVjRW11Q29uc29sZUNvbW1hbmQiLCJzdGFydExvZ3NCcm9hZGNhc3QiLCJzdG9wTG9nc0Jyb2FkY2FzdCIsImNoYW5nZVBlcm1pc3Npb25zIiwiZ2V0UGVybWlzc2lvbnMiLCJwZXJmb3JtRWRpdG9yQWN0aW9uIiwic2Vuc29yU2V0IiwiZ2V0RGV2aWNlVGltZSIsInN0YXJ0U2NyZWVuU3RyZWFtaW5nIiwic3RvcFNjcmVlblN0cmVhbWluZyIsImdldE5vdGlmaWNhdGlvbnMiLCJsaXN0U21zIiwiZGVsZXRlRmlsZSIsImNsZWFyQXBwIiwic3RhcnRTZXJ2aWNlIiwic3RvcFNlcnZpY2UiLCJzdGFydEFjdGl2aXR5IiwiYnJvYWRjYXN0IiwiZ2V0Q29udGV4dHMiLCJ1bmxvY2siLCJyZWZyZXNoR3BzQ2FjaGUiLCJoYXMiLCJVbmtub3duQ29tbWFuZEVycm9yIiwia2V5cyJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9leGVjdXRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBlcnJvcnMsIFBST1RPQ09MUyB9IGZyb20gJ0BhcHBpdW0vYmFzZS1kcml2ZXInO1xuXG5jb25zdCBleHRlbnNpb25zID0ge307XG5cbmV4dGVuc2lvbnMuZXhlY3V0ZSA9IGFzeW5jIGZ1bmN0aW9uIGV4ZWN1dGUgKHNjcmlwdCwgYXJncykge1xuICBpZiAoc2NyaXB0Lm1hdGNoKC9ebW9iaWxlOi8pKSB7XG4gICAgdGhpcy5sb2cuaW5mbyhgRXhlY3V0aW5nIG5hdGl2ZSBjb21tYW5kICcke3NjcmlwdH0nYCk7XG4gICAgc2NyaXB0ID0gc2NyaXB0LnJlcGxhY2UoL15tb2JpbGU6LywgJycpLnRyaW0oKTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5leGVjdXRlTW9iaWxlKHNjcmlwdCwgXy5pc0FycmF5KGFyZ3MpID8gYXJnc1swXSA6IGFyZ3MpO1xuICB9XG4gIGlmICghdGhpcy5pc1dlYkNvbnRleHQoKSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICB9XG4gIGNvbnN0IGVuZHBvaW50ID0gdGhpcy5jaHJvbWVkcml2ZXIuandwcm94eS5kb3duc3RyZWFtUHJvdG9jb2wgPT09IFBST1RPQ09MUy5NSlNPTldQXG4gICAgPyAnL2V4ZWN1dGUnXG4gICAgOiAnL2V4ZWN1dGUvc3luYyc7XG4gIHJldHVybiBhd2FpdCB0aGlzLmNocm9tZWRyaXZlci5qd3Byb3h5LmNvbW1hbmQoZW5kcG9pbnQsICdQT1NUJywge1xuICAgIHNjcmlwdCxcbiAgICBhcmdzLFxuICB9KTtcbn07XG5cbmV4dGVuc2lvbnMuZXhlY3V0ZU1vYmlsZSA9IGFzeW5jIGZ1bmN0aW9uIGV4ZWN1dGVNb2JpbGUgKG1vYmlsZUNvbW1hbmQsIG9wdHMgPSB7fSkge1xuICBjb25zdCBtb2JpbGVDb21tYW5kc01hcHBpbmcgPSB7XG4gICAgc2hlbGw6ICdtb2JpbGVTaGVsbCcsXG5cbiAgICBleGVjRW11Q29uc29sZUNvbW1hbmQ6ICdtb2JpbGVFeGVjRW11Q29uc29sZUNvbW1hbmQnLFxuXG4gICAgc3RhcnRMb2dzQnJvYWRjYXN0OiAnbW9iaWxlU3RhcnRMb2dzQnJvYWRjYXN0JyxcbiAgICBzdG9wTG9nc0Jyb2FkY2FzdDogJ21vYmlsZVN0b3BMb2dzQnJvYWRjYXN0JyxcblxuICAgIGNoYW5nZVBlcm1pc3Npb25zOiAnbW9iaWxlQ2hhbmdlUGVybWlzc2lvbnMnLFxuICAgIGdldFBlcm1pc3Npb25zOiAnbW9iaWxlR2V0UGVybWlzc2lvbnMnLFxuXG4gICAgcGVyZm9ybUVkaXRvckFjdGlvbjogJ21vYmlsZVBlcmZvcm1FZGl0b3JBY3Rpb24nLFxuXG4gICAgc2Vuc29yU2V0OiAnc2Vuc29yU2V0JyxcblxuICAgIGdldERldmljZVRpbWU6ICdtb2JpbGVHZXREZXZpY2VUaW1lJyxcblxuICAgIHN0YXJ0U2NyZWVuU3RyZWFtaW5nOiAnbW9iaWxlU3RhcnRTY3JlZW5TdHJlYW1pbmcnLFxuICAgIHN0b3BTY3JlZW5TdHJlYW1pbmc6ICdtb2JpbGVTdG9wU2NyZWVuU3RyZWFtaW5nJyxcblxuICAgIGdldE5vdGlmaWNhdGlvbnM6ICdtb2JpbGVHZXROb3RpZmljYXRpb25zJyxcblxuICAgIGxpc3RTbXM6ICdtb2JpbGVMaXN0U21zJyxcblxuICAgIGRlbGV0ZUZpbGU6ICdtb2JpbGVEZWxldGVGaWxlJyxcblxuICAgIGNsZWFyQXBwOiAnbW9iaWxlQ2xlYXJBcHAnLFxuXG4gICAgc3RhcnRTZXJ2aWNlOiAnbW9iaWxlU3RhcnRTZXJ2aWNlJyxcbiAgICBzdG9wU2VydmljZTogJ21vYmlsZVN0b3BTZXJ2aWNlJyxcbiAgICBzdGFydEFjdGl2aXR5OiAnbW9iaWxlU3RhcnRBY3Rpdml0eScsXG4gICAgYnJvYWRjYXN0OiAnbW9iaWxlQnJvYWRjYXN0JyxcblxuICAgIGdldENvbnRleHRzOiAnbW9iaWxlR2V0Q29udGV4dHMnLFxuXG4gICAgdW5sb2NrOiAnbW9iaWxlVW5sb2NrJyxcblxuICAgIHJlZnJlc2hHcHNDYWNoZTogJ21vYmlsZVJlZnJlc2hHcHNDYWNoZScsXG4gIH07XG5cbiAgaWYgKCFfLmhhcyhtb2JpbGVDb21tYW5kc01hcHBpbmcsIG1vYmlsZUNvbW1hbmQpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5Vbmtub3duQ29tbWFuZEVycm9yKGBVbmtub3duIG1vYmlsZSBjb21tYW5kIFwiJHttb2JpbGVDb21tYW5kfVwiLiBgICtcbiAgICAgIGBPbmx5ICR7Xy5rZXlzKG1vYmlsZUNvbW1hbmRzTWFwcGluZyl9IGNvbW1hbmRzIGFyZSBzdXBwb3J0ZWQuYCk7XG4gIH1cbiAgcmV0dXJuIGF3YWl0IHRoaXNbbW9iaWxlQ29tbWFuZHNNYXBwaW5nW21vYmlsZUNvbW1hbmRdXShvcHRzKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGV4dGVuc2lvbnM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBRUEsTUFBTUEsVUFBVSxHQUFHLEVBQW5COztBQUVBQSxVQUFVLENBQUNDLE9BQVgsR0FBcUIsZUFBZUEsT0FBZixDQUF3QkMsTUFBeEIsRUFBZ0NDLElBQWhDLEVBQXNDO0VBQ3pELElBQUlELE1BQU0sQ0FBQ0UsS0FBUCxDQUFhLFVBQWIsQ0FBSixFQUE4QjtJQUM1QixLQUFLQyxHQUFMLENBQVNDLElBQVQsQ0FBZSw2QkFBNEJKLE1BQU8sR0FBbEQ7SUFDQUEsTUFBTSxHQUFHQSxNQUFNLENBQUNLLE9BQVAsQ0FBZSxVQUFmLEVBQTJCLEVBQTNCLEVBQStCQyxJQUEvQixFQUFUO0lBQ0EsT0FBTyxNQUFNLEtBQUtDLGFBQUwsQ0FBbUJQLE1BQW5CLEVBQTJCUSxnQkFBRUMsT0FBRixDQUFVUixJQUFWLElBQWtCQSxJQUFJLENBQUMsQ0FBRCxDQUF0QixHQUE0QkEsSUFBdkQsQ0FBYjtFQUNEOztFQUNELElBQUksQ0FBQyxLQUFLUyxZQUFMLEVBQUwsRUFBMEI7SUFDeEIsTUFBTSxJQUFJQyxtQkFBT0MsbUJBQVgsRUFBTjtFQUNEOztFQUNELE1BQU1DLFFBQVEsR0FBRyxLQUFLQyxZQUFMLENBQWtCQyxPQUFsQixDQUEwQkMsa0JBQTFCLEtBQWlEQyxzQkFBVUMsT0FBM0QsR0FDYixVQURhLEdBRWIsZUFGSjtFQUdBLE9BQU8sTUFBTSxLQUFLSixZQUFMLENBQWtCQyxPQUFsQixDQUEwQkksT0FBMUIsQ0FBa0NOLFFBQWxDLEVBQTRDLE1BQTVDLEVBQW9EO0lBQy9EYixNQUQrRDtJQUUvREM7RUFGK0QsQ0FBcEQsQ0FBYjtBQUlELENBaEJEOztBQWtCQUgsVUFBVSxDQUFDUyxhQUFYLEdBQTJCLGVBQWVBLGFBQWYsQ0FBOEJhLGFBQTlCLEVBQTZDQyxJQUFJLEdBQUcsRUFBcEQsRUFBd0Q7RUFDakYsTUFBTUMscUJBQXFCLEdBQUc7SUFDNUJDLEtBQUssRUFBRSxhQURxQjtJQUc1QkMscUJBQXFCLEVBQUUsNkJBSEs7SUFLNUJDLGtCQUFrQixFQUFFLDBCQUxRO0lBTTVCQyxpQkFBaUIsRUFBRSx5QkFOUztJQVE1QkMsaUJBQWlCLEVBQUUseUJBUlM7SUFTNUJDLGNBQWMsRUFBRSxzQkFUWTtJQVc1QkMsbUJBQW1CLEVBQUUsMkJBWE87SUFhNUJDLFNBQVMsRUFBRSxXQWJpQjtJQWU1QkMsYUFBYSxFQUFFLHFCQWZhO0lBaUI1QkMsb0JBQW9CLEVBQUUsNEJBakJNO0lBa0I1QkMsbUJBQW1CLEVBQUUsMkJBbEJPO0lBb0I1QkMsZ0JBQWdCLEVBQUUsd0JBcEJVO0lBc0I1QkMsT0FBTyxFQUFFLGVBdEJtQjtJQXdCNUJDLFVBQVUsRUFBRSxrQkF4QmdCO0lBMEI1QkMsUUFBUSxFQUFFLGdCQTFCa0I7SUE0QjVCQyxZQUFZLEVBQUUsb0JBNUJjO0lBNkI1QkMsV0FBVyxFQUFFLG1CQTdCZTtJQThCNUJDLGFBQWEsRUFBRSxxQkE5QmE7SUErQjVCQyxTQUFTLEVBQUUsaUJBL0JpQjtJQWlDNUJDLFdBQVcsRUFBRSxtQkFqQ2U7SUFtQzVCQyxNQUFNLEVBQUUsY0FuQ29CO0lBcUM1QkMsZUFBZSxFQUFFO0VBckNXLENBQTlCOztFQXdDQSxJQUFJLENBQUNwQyxnQkFBRXFDLEdBQUYsQ0FBTXZCLHFCQUFOLEVBQTZCRixhQUE3QixDQUFMLEVBQWtEO0lBQ2hELE1BQU0sSUFBSVQsbUJBQU9tQyxtQkFBWCxDQUFnQywyQkFBMEIxQixhQUFjLEtBQXpDLEdBQ2xDLFFBQU9aLGdCQUFFdUMsSUFBRixDQUFPekIscUJBQVAsQ0FBOEIsMEJBRGxDLENBQU47RUFFRDs7RUFDRCxPQUFPLE1BQU0sS0FBS0EscUJBQXFCLENBQUNGLGFBQUQsQ0FBMUIsRUFBMkNDLElBQTNDLENBQWI7QUFDRCxDQTlDRDs7ZUFnRGV2QixVIn0=
73
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2V4ZWN1dGUuanMiLCJuYW1lcyI6WyJleHRlbnNpb25zIiwiZXhlY3V0ZSIsInNjcmlwdCIsImFyZ3MiLCJtYXRjaCIsImxvZyIsImluZm8iLCJyZXBsYWNlIiwidHJpbSIsImV4ZWN1dGVNb2JpbGUiLCJfIiwiaXNBcnJheSIsImlzV2ViQ29udGV4dCIsImVycm9ycyIsIk5vdEltcGxlbWVudGVkRXJyb3IiLCJlbmRwb2ludCIsImNocm9tZWRyaXZlciIsImp3cHJveHkiLCJkb3duc3RyZWFtUHJvdG9jb2wiLCJQUk9UT0NPTFMiLCJNSlNPTldQIiwiY29tbWFuZCIsIm1vYmlsZUNvbW1hbmQiLCJvcHRzIiwibW9iaWxlQ29tbWFuZHNNYXBwaW5nIiwic2hlbGwiLCJleGVjRW11Q29uc29sZUNvbW1hbmQiLCJzdGFydExvZ3NCcm9hZGNhc3QiLCJzdG9wTG9nc0Jyb2FkY2FzdCIsImNoYW5nZVBlcm1pc3Npb25zIiwiZ2V0UGVybWlzc2lvbnMiLCJwZXJmb3JtRWRpdG9yQWN0aW9uIiwic2Vuc29yU2V0IiwiZ2V0RGV2aWNlVGltZSIsInN0YXJ0U2NyZWVuU3RyZWFtaW5nIiwic3RvcFNjcmVlblN0cmVhbWluZyIsImdldE5vdGlmaWNhdGlvbnMiLCJsaXN0U21zIiwiZGVsZXRlRmlsZSIsImNsZWFyQXBwIiwic3RhcnRTZXJ2aWNlIiwic3RvcFNlcnZpY2UiLCJzdGFydEFjdGl2aXR5IiwiYnJvYWRjYXN0IiwiZ2V0Q29udGV4dHMiLCJ1bmxvY2siLCJyZWZyZXNoR3BzQ2FjaGUiLCJoYXMiLCJVbmtub3duQ29tbWFuZEVycm9yIiwia2V5cyJdLCJzb3VyY2VSb290IjoiLi4vLi4vLi4iLCJzb3VyY2VzIjpbImxpYi9jb21tYW5kcy9leGVjdXRlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBlcnJvcnMsIFBST1RPQ09MUyB9IGZyb20gJ2FwcGl1bS9kcml2ZXInO1xuXG5jb25zdCBleHRlbnNpb25zID0ge307XG5cbmV4dGVuc2lvbnMuZXhlY3V0ZSA9IGFzeW5jIGZ1bmN0aW9uIGV4ZWN1dGUgKHNjcmlwdCwgYXJncykge1xuICBpZiAoc2NyaXB0Lm1hdGNoKC9ebW9iaWxlOi8pKSB7XG4gICAgdGhpcy5sb2cuaW5mbyhgRXhlY3V0aW5nIG5hdGl2ZSBjb21tYW5kICcke3NjcmlwdH0nYCk7XG4gICAgc2NyaXB0ID0gc2NyaXB0LnJlcGxhY2UoL15tb2JpbGU6LywgJycpLnRyaW0oKTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5leGVjdXRlTW9iaWxlKHNjcmlwdCwgXy5pc0FycmF5KGFyZ3MpID8gYXJnc1swXSA6IGFyZ3MpO1xuICB9XG4gIGlmICghdGhpcy5pc1dlYkNvbnRleHQoKSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuTm90SW1wbGVtZW50ZWRFcnJvcigpO1xuICB9XG4gIGNvbnN0IGVuZHBvaW50ID0gdGhpcy5jaHJvbWVkcml2ZXIuandwcm94eS5kb3duc3RyZWFtUHJvdG9jb2wgPT09IFBST1RPQ09MUy5NSlNPTldQXG4gICAgPyAnL2V4ZWN1dGUnXG4gICAgOiAnL2V4ZWN1dGUvc3luYyc7XG4gIHJldHVybiBhd2FpdCB0aGlzLmNocm9tZWRyaXZlci5qd3Byb3h5LmNvbW1hbmQoZW5kcG9pbnQsICdQT1NUJywge1xuICAgIHNjcmlwdCxcbiAgICBhcmdzLFxuICB9KTtcbn07XG5cbmV4dGVuc2lvbnMuZXhlY3V0ZU1vYmlsZSA9IGFzeW5jIGZ1bmN0aW9uIGV4ZWN1dGVNb2JpbGUgKG1vYmlsZUNvbW1hbmQsIG9wdHMgPSB7fSkge1xuICBjb25zdCBtb2JpbGVDb21tYW5kc01hcHBpbmcgPSB7XG4gICAgc2hlbGw6ICdtb2JpbGVTaGVsbCcsXG5cbiAgICBleGVjRW11Q29uc29sZUNvbW1hbmQ6ICdtb2JpbGVFeGVjRW11Q29uc29sZUNvbW1hbmQnLFxuXG4gICAgc3RhcnRMb2dzQnJvYWRjYXN0OiAnbW9iaWxlU3RhcnRMb2dzQnJvYWRjYXN0JyxcbiAgICBzdG9wTG9nc0Jyb2FkY2FzdDogJ21vYmlsZVN0b3BMb2dzQnJvYWRjYXN0JyxcblxuICAgIGNoYW5nZVBlcm1pc3Npb25zOiAnbW9iaWxlQ2hhbmdlUGVybWlzc2lvbnMnLFxuICAgIGdldFBlcm1pc3Npb25zOiAnbW9iaWxlR2V0UGVybWlzc2lvbnMnLFxuXG4gICAgcGVyZm9ybUVkaXRvckFjdGlvbjogJ21vYmlsZVBlcmZvcm1FZGl0b3JBY3Rpb24nLFxuXG4gICAgc2Vuc29yU2V0OiAnc2Vuc29yU2V0JyxcblxuICAgIGdldERldmljZVRpbWU6ICdtb2JpbGVHZXREZXZpY2VUaW1lJyxcblxuICAgIHN0YXJ0U2NyZWVuU3RyZWFtaW5nOiAnbW9iaWxlU3RhcnRTY3JlZW5TdHJlYW1pbmcnLFxuICAgIHN0b3BTY3JlZW5TdHJlYW1pbmc6ICdtb2JpbGVTdG9wU2NyZWVuU3RyZWFtaW5nJyxcblxuICAgIGdldE5vdGlmaWNhdGlvbnM6ICdtb2JpbGVHZXROb3RpZmljYXRpb25zJyxcblxuICAgIGxpc3RTbXM6ICdtb2JpbGVMaXN0U21zJyxcblxuICAgIGRlbGV0ZUZpbGU6ICdtb2JpbGVEZWxldGVGaWxlJyxcblxuICAgIGNsZWFyQXBwOiAnbW9iaWxlQ2xlYXJBcHAnLFxuXG4gICAgc3RhcnRTZXJ2aWNlOiAnbW9iaWxlU3RhcnRTZXJ2aWNlJyxcbiAgICBzdG9wU2VydmljZTogJ21vYmlsZVN0b3BTZXJ2aWNlJyxcbiAgICBzdGFydEFjdGl2aXR5OiAnbW9iaWxlU3RhcnRBY3Rpdml0eScsXG4gICAgYnJvYWRjYXN0OiAnbW9iaWxlQnJvYWRjYXN0JyxcblxuICAgIGdldENvbnRleHRzOiAnbW9iaWxlR2V0Q29udGV4dHMnLFxuXG4gICAgdW5sb2NrOiAnbW9iaWxlVW5sb2NrJyxcblxuICAgIHJlZnJlc2hHcHNDYWNoZTogJ21vYmlsZVJlZnJlc2hHcHNDYWNoZScsXG4gIH07XG5cbiAgaWYgKCFfLmhhcyhtb2JpbGVDb21tYW5kc01hcHBpbmcsIG1vYmlsZUNvbW1hbmQpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5Vbmtub3duQ29tbWFuZEVycm9yKGBVbmtub3duIG1vYmlsZSBjb21tYW5kIFwiJHttb2JpbGVDb21tYW5kfVwiLiBgICtcbiAgICAgIGBPbmx5ICR7Xy5rZXlzKG1vYmlsZUNvbW1hbmRzTWFwcGluZyl9IGNvbW1hbmRzIGFyZSBzdXBwb3J0ZWQuYCk7XG4gIH1cbiAgcmV0dXJuIGF3YWl0IHRoaXNbbW9iaWxlQ29tbWFuZHNNYXBwaW5nW21vYmlsZUNvbW1hbmRdXShvcHRzKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IGV4dGVuc2lvbnM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBRUEsTUFBTUEsVUFBVSxHQUFHLEVBQW5COztBQUVBQSxVQUFVLENBQUNDLE9BQVgsR0FBcUIsZUFBZUEsT0FBZixDQUF3QkMsTUFBeEIsRUFBZ0NDLElBQWhDLEVBQXNDO0VBQ3pELElBQUlELE1BQU0sQ0FBQ0UsS0FBUCxDQUFhLFVBQWIsQ0FBSixFQUE4QjtJQUM1QixLQUFLQyxHQUFMLENBQVNDLElBQVQsQ0FBZSw2QkFBNEJKLE1BQU8sR0FBbEQ7SUFDQUEsTUFBTSxHQUFHQSxNQUFNLENBQUNLLE9BQVAsQ0FBZSxVQUFmLEVBQTJCLEVBQTNCLEVBQStCQyxJQUEvQixFQUFUO0lBQ0EsT0FBTyxNQUFNLEtBQUtDLGFBQUwsQ0FBbUJQLE1BQW5CLEVBQTJCUSxlQUFBLENBQUVDLE9BQUYsQ0FBVVIsSUFBVixJQUFrQkEsSUFBSSxDQUFDLENBQUQsQ0FBdEIsR0FBNEJBLElBQXZELENBQWI7RUFDRDs7RUFDRCxJQUFJLENBQUMsS0FBS1MsWUFBTCxFQUFMLEVBQTBCO0lBQ3hCLE1BQU0sSUFBSUMsY0FBQSxDQUFPQyxtQkFBWCxFQUFOO0VBQ0Q7O0VBQ0QsTUFBTUMsUUFBUSxHQUFHLEtBQUtDLFlBQUwsQ0FBa0JDLE9BQWxCLENBQTBCQyxrQkFBMUIsS0FBaURDLGlCQUFBLENBQVVDLE9BQTNELEdBQ2IsVUFEYSxHQUViLGVBRko7RUFHQSxPQUFPLE1BQU0sS0FBS0osWUFBTCxDQUFrQkMsT0FBbEIsQ0FBMEJJLE9BQTFCLENBQWtDTixRQUFsQyxFQUE0QyxNQUE1QyxFQUFvRDtJQUMvRGIsTUFEK0Q7SUFFL0RDO0VBRitELENBQXBELENBQWI7QUFJRCxDQWhCRDs7QUFrQkFILFVBQVUsQ0FBQ1MsYUFBWCxHQUEyQixlQUFlQSxhQUFmLENBQThCYSxhQUE5QixFQUE2Q0MsSUFBSSxHQUFHLEVBQXBELEVBQXdEO0VBQ2pGLE1BQU1DLHFCQUFxQixHQUFHO0lBQzVCQyxLQUFLLEVBQUUsYUFEcUI7SUFHNUJDLHFCQUFxQixFQUFFLDZCQUhLO0lBSzVCQyxrQkFBa0IsRUFBRSwwQkFMUTtJQU01QkMsaUJBQWlCLEVBQUUseUJBTlM7SUFRNUJDLGlCQUFpQixFQUFFLHlCQVJTO0lBUzVCQyxjQUFjLEVBQUUsc0JBVFk7SUFXNUJDLG1CQUFtQixFQUFFLDJCQVhPO0lBYTVCQyxTQUFTLEVBQUUsV0FiaUI7SUFlNUJDLGFBQWEsRUFBRSxxQkFmYTtJQWlCNUJDLG9CQUFvQixFQUFFLDRCQWpCTTtJQWtCNUJDLG1CQUFtQixFQUFFLDJCQWxCTztJQW9CNUJDLGdCQUFnQixFQUFFLHdCQXBCVTtJQXNCNUJDLE9BQU8sRUFBRSxlQXRCbUI7SUF3QjVCQyxVQUFVLEVBQUUsa0JBeEJnQjtJQTBCNUJDLFFBQVEsRUFBRSxnQkExQmtCO0lBNEI1QkMsWUFBWSxFQUFFLG9CQTVCYztJQTZCNUJDLFdBQVcsRUFBRSxtQkE3QmU7SUE4QjVCQyxhQUFhLEVBQUUscUJBOUJhO0lBK0I1QkMsU0FBUyxFQUFFLGlCQS9CaUI7SUFpQzVCQyxXQUFXLEVBQUUsbUJBakNlO0lBbUM1QkMsTUFBTSxFQUFFLGNBbkNvQjtJQXFDNUJDLGVBQWUsRUFBRTtFQXJDVyxDQUE5Qjs7RUF3Q0EsSUFBSSxDQUFDcEMsZUFBQSxDQUFFcUMsR0FBRixDQUFNdkIscUJBQU4sRUFBNkJGLGFBQTdCLENBQUwsRUFBa0Q7SUFDaEQsTUFBTSxJQUFJVCxjQUFBLENBQU9tQyxtQkFBWCxDQUFnQywyQkFBMEIxQixhQUFjLEtBQXpDLEdBQ2xDLFFBQU9aLGVBQUEsQ0FBRXVDLElBQUYsQ0FBT3pCLHFCQUFQLENBQThCLDBCQURsQyxDQUFOO0VBRUQ7O0VBQ0QsT0FBTyxNQUFNLEtBQUtBLHFCQUFxQixDQUFDRixhQUFELENBQTFCLEVBQTJDQyxJQUEzQyxDQUFiO0FBQ0QsQ0E5Q0Q7O2VBZ0RldkIsVSJ9
@@ -11,11 +11,11 @@ require("source-map-support/register");
11
11
 
12
12
  var _lodash = _interopRequireDefault(require("lodash"));
13
13
 
14
- var _support = require("@appium/support");
14
+ var _support = require("appium/support");
15
15
 
16
16
  var _path = _interopRequireDefault(require("path"));
17
17
 
18
- var _baseDriver = require("@appium/base-driver");
18
+ var _driver = require("appium/driver");
19
19
 
20
20
  const CONTAINER_PATH_MARKER = '@';
21
21
  const CONTAINER_PATH_PATTERN = new RegExp(`^${CONTAINER_PATH_MARKER}([^/]+)/(.+)`);
@@ -53,7 +53,7 @@ function escapePath(p) {
53
53
 
54
54
  commands.pullFile = async function pullFile(remotePath) {
55
55
  if (remotePath.endsWith('/')) {
56
- throw new _baseDriver.errors.InvalidArgumentError(`It is expected that remote path points to a file and not to a folder. ` + `'${remotePath}' is given instead`);
56
+ throw new _driver.errors.InvalidArgumentError(`It is expected that remote path points to a file and not to a folder. ` + `'${remotePath}' is given instead`);
57
57
  }
58
58
 
59
59
  let tmpDestination = null;
@@ -92,7 +92,7 @@ commands.pullFile = async function pullFile(remotePath) {
92
92
 
93
93
  commands.pushFile = async function pushFile(remotePath, base64Data) {
94
94
  if (remotePath.endsWith('/')) {
95
- throw new _baseDriver.errors.InvalidArgumentError(`It is expected that remote path points to a file and not to a folder. ` + `'${remotePath}' is given instead`);
95
+ throw new _driver.errors.InvalidArgumentError(`It is expected that remote path points to a file and not to a folder. ` + `'${remotePath}' is given instead`);
96
96
  }
97
97
 
98
98
  const localFile = await _support.tempDir.path({
@@ -218,11 +218,11 @@ commands.mobileDeleteFile = async function mobileDeleteFile(opts = {}) {
218
218
  } = opts;
219
219
 
220
220
  if (!remotePath) {
221
- throw new _baseDriver.errors.InvalidArgumentError(`The 'remotePath' argument is mandatory`);
221
+ throw new _driver.errors.InvalidArgumentError(`The 'remotePath' argument is mandatory`);
222
222
  }
223
223
 
224
224
  if (remotePath.endsWith('/')) {
225
- throw new _baseDriver.errors.InvalidArgumentError(`It is expected that remote path points to a folder and not to a file. ` + `'${remotePath}' is given instead`);
225
+ throw new _driver.errors.InvalidArgumentError(`It is expected that remote path points to a folder and not to a file. ` + `'${remotePath}' is given instead`);
226
226
  }
227
227
 
228
228
  return await deleteFileOrFolder(this.adb, remotePath);
@@ -232,4 +232,4 @@ var _default = commands;
232
232
  exports.default = _default;require('source-map-support').install();
233
233
 
234
234
 
235
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2ZpbGUtYWN0aW9ucy5qcyIsIm5hbWVzIjpbIkNPTlRBSU5FUl9QQVRIX01BUktFUiIsIkNPTlRBSU5FUl9QQVRIX1BBVFRFUk4iLCJSZWdFeHAiLCJBTkRST0lEX01FRElBX1JFU0NBTl9JTlRFTlQiLCJjb21tYW5kcyIsInBhcnNlQ29udGFpbmVyUGF0aCIsInJlbW90ZVBhdGgiLCJtYXRjaCIsImV4ZWMiLCJFcnJvciIsInBhdGgiLCJwb3NpeCIsInJlc29sdmUiLCJzY2FuTWVkaWEiLCJhZGIiLCJsb2ciLCJkZWJ1ZyIsImdldEFwaUxldmVsIiwic2hlbGwiLCJlIiwid2FybiIsInN0ZGVyciIsIm1lc3NhZ2UiLCJlc2NhcGVQYXRoIiwicCIsInJlcGxhY2UiLCJwdWxsRmlsZSIsImVuZHNXaXRoIiwiZXJyb3JzIiwiSW52YWxpZEFyZ3VtZW50RXJyb3IiLCJ0bXBEZXN0aW5hdGlvbiIsInN0YXJ0c1dpdGgiLCJwYWNrYWdlSWQiLCJwYXRoSW5Db250YWluZXIiLCJiYXNlbmFtZSIsImVycm9yQW5kVGhyb3ciLCJsb2NhbEZpbGUiLCJ0ZW1wRGlyIiwicHJlZml4Iiwic3VmZml4IiwicHVsbCIsInV0aWwiLCJ0b0luTWVtb3J5QmFzZTY0IiwidG9TdHJpbmciLCJmcyIsImV4aXN0cyIsInVubGluayIsInB1c2hGaWxlIiwiYmFzZTY0RGF0YSIsIl8iLCJpc0FycmF5IiwiQnVmZmVyIiwiZnJvbSIsImNvbnRlbnQiLCJ3cml0ZUZpbGUiLCJkaXJuYW1lIiwicHVzaCIsInB1bGxGb2xkZXIiLCJsb2NhbEZvbGRlciIsInppcCIsInRvSW5NZW1vcnlaaXAiLCJlbmNvZGVUb0Jhc2U2NCIsImRlbGV0ZUZpbGVPckZvbGRlciIsInBlcmZvcm1SZW1vdGVGc0NoZWNrIiwib3AiLCJydW5BcyIsInBhc3NGbGFnIiwiY2hlY2tDbWQiLCJmdWxsQ21kIiwiaW5jbHVkZXMiLCJpZ24iLCJpc0ZpbGUiLCJpc0RpciIsImlzUHJlc2VudCIsImRzdFBhdGgiLCJwa2dJZCIsImluZm8iLCJleHBlY3RzRmlsZSIsIm1vYmlsZURlbGV0ZUZpbGUiLCJvcHRzIl0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLiIsInNvdXJjZXMiOlsibGliL2NvbW1hbmRzL2ZpbGUtYWN0aW9ucy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgZnMsIHV0aWwsIHppcCwgdGVtcERpciB9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5pbXBvcnQgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IGVycm9ycyB9IGZyb20gJ0BhcHBpdW0vYmFzZS1kcml2ZXInO1xuXG5cbmNvbnN0IENPTlRBSU5FUl9QQVRIX01BUktFUiA9ICdAJztcbi8vIGh0dHBzOi8vcmVnZXgxMDEuY29tL3IvUExkQjBHLzJcbmNvbnN0IENPTlRBSU5FUl9QQVRIX1BBVFRFUk4gPSBuZXcgUmVnRXhwKGBeJHtDT05UQUlORVJfUEFUSF9NQVJLRVJ9KFteL10rKS8oLispYCk7XG5jb25zdCBBTkRST0lEX01FRElBX1JFU0NBTl9JTlRFTlQgPSAnYW5kcm9pZC5pbnRlbnQuYWN0aW9uLk1FRElBX1NDQU5ORVJfU0NBTl9GSUxFJztcblxuXG5jb25zdCBjb21tYW5kcyA9IHt9O1xuXG4vKipcbiAqIFBhcnNlcyB0aGUgYWN0dWFsIGRlc3RpbmF0aW9uIHBhdGggZnJvbSB0aGUgZ2l2ZW4gdmFsdWVcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcmVtb3RlUGF0aCBUaGUgcHJlZm9ybWF0dGVkIHJlbW90ZSBwYXRoLCB3aGljaCBsb29rcyBsaWtlXG4gKiBgQG15LmFwcC5pZC9teS9wYXRoYFxuICogQHJldHVybnMge0FycmF5PHN0cmluZz59IEFuIGFycmF5LCB3aGVyZSB0aGUgZmlyc3QgaXRlbSBpcyB0aGUgcGFyc2VkIHBhY2thZ2VcbiAqIGlkZW50aWZpZXIgYW5kIHRoZSBzZWNvbmQgb25lIGlzIHRoZSBhY3R1YWwgZGVzdGluYXRpb24gcGF0aCBpbnNpZGUgdGhlIHBhY2thZ2UuXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIGdpdmVuIHN0cmluZyBjYW5ub3QgYmUgcGFyc2VkXG4gKi9cbmZ1bmN0aW9uIHBhcnNlQ29udGFpbmVyUGF0aCAocmVtb3RlUGF0aCkge1xuICBjb25zdCBtYXRjaCA9IENPTlRBSU5FUl9QQVRIX1BBVFRFUk4uZXhlYyhyZW1vdGVQYXRoKTtcbiAgaWYgKCFtYXRjaCkge1xuICAgIHRocm93IG5ldyBFcnJvcihgSXQgaXMgZXhwZWN0ZWQgdGhhdCBwYWNrYWdlIGlkZW50aWZpZXIgaXMgc2VwYXJhdGVkIGZyb20gdGhlIHJlbGF0aXZlIHBhdGggd2l0aCBhIHNpbmdsZSBzbGFzaC4gYCArXG4gICAgICBgJyR7cmVtb3RlUGF0aH0nIGlzIGdpdmVuIGluc3RlYWRgKTtcbiAgfVxuICByZXR1cm4gW21hdGNoWzFdLCBwYXRoLnBvc2l4LnJlc29sdmUoYC9kYXRhL2RhdGEvJHttYXRjaFsxXX1gLCBtYXRjaFsyXSldO1xufVxuXG4vKipcbiAqIFNjYW5zIHRoZSBnaXZlbiBmaWxlL2ZvbGRlciBvbiB0aGUgcmVtb3RlIGRldmljZVxuICogYW5kIGFkZHMgbWF0Y2hpbmcgaXRlbXMgdG8gdGhlIGRldmljZSdzIG1lZGlhIGxpYnJhcnkuXG4gKiBFeGNlcHRpb25zIGFyZSBpZ25vcmVkIGFuZCB3cml0dGVuIGludG8gdGhlIGxvZy5cbiAqXG4gKiBAcGFyYW0ge0FEQn0gYWRiIEFEQiBpbnN0YW5jZVxuICogQHBhcmFtIHtPYmplY3Q/fSBsb2cgTG9nZ2VyIGluc3RhbmNlXG4gKiBAcGFyYW0ge3N0cmluZ30gcmVtb3RlUGF0aCBUaGUgZmlsZS9mb2xkZXIgcGF0aCBvbiB0aGUgcmVtb3RlIGRldmljZVxuICovXG5hc3luYyBmdW5jdGlvbiBzY2FuTWVkaWEgKGFkYiwgcmVtb3RlUGF0aCwgbG9nID0gbnVsbCkge1xuICBsb2c/LmRlYnVnKGBQZXJmb3JtaW5nIG1lZGlhIHNjYW4gb2YgJyR7cmVtb3RlUGF0aH0nYCk7XG4gIHRyeSB7XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL2FwcGl1bS9hcHBpdW0vaXNzdWVzLzE2MTg0XG4gICAgaWYgKGF3YWl0IGFkYi5nZXRBcGlMZXZlbCgpID49IDI5KSB7XG4gICAgICBhd2FpdCBhZGIuc2Nhbk1lZGlhKHJlbW90ZVBhdGgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBhd2FpdCBhZGIuc2hlbGwoW1xuICAgICAgICAnYW0nLCAnYnJvYWRjYXN0JyxcbiAgICAgICAgJy1hJywgQU5EUk9JRF9NRURJQV9SRVNDQU5fSU5URU5ULFxuICAgICAgICAnLWQnLCBgZmlsZTovLyR7cmVtb3RlUGF0aH1gXG4gICAgICBdKTtcbiAgICB9XG4gIH0gY2F0Y2ggKGUpIHtcbiAgICBsb2c/Lndhcm4oYElnbm9yaW5nIGFuIHVuZXhwZWN0ZWQgZXJyb3IgdXBvbiBtZWRpYSBzY2FubmluZyBvZiAnJHtyZW1vdGVQYXRofSc6ICR7ZS5zdGRlcnIgfHwgZS5tZXNzYWdlfWApO1xuICB9XG59XG5cbi8qKlxuICogQSBzbWFsbCBoZWxwZXIsIHdoaWNoIGVzY2FwZXMgc2luZ2xlIHF1b3RlcyBpbiBwYXRocyxcbiAqIHNvIHRoZXkgYXJlIHNhZmUgdG8gYmUgcGFzc2VkIGFzIGFyZ3VtZW50cyBvZiBzaGVsbCBjb21tYW5kc1xuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBwIFRoZSBpbml0aWFsIHJlbW90ZSBwYXRoXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBUaGUgZXNjYXBlZCBwYXRoIHZhbHVlXG4gKi9cbmZ1bmN0aW9uIGVzY2FwZVBhdGggKHApIHtcbiAgcmV0dXJuIHAucmVwbGFjZSgvJy9nLCBgXFxcXCdgKTtcbn1cblxuLyoqXG4gKiBQdWxscyBhIHJlbW90ZSBmaWxlIGZyb20gdGhlIGRldmljZS5cbiAqIEl0IGlzIHJlcXVpcmVkLCB0aGF0IGEgcGFja2FnZSBoYXMgZGVidWdnaW5nIGZsYWcgZW5hYmxlZFxuICogaW4gb3JkZXIgdG8gYWNjZXNzIGl0cyBmaWxlcy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcmVtb3RlUGF0aCBUaGUgZnVsbCBwYXRoIHRvIHRoZSByZW1vdGUgZmlsZVxuICogb3IgYSBzcGVjaWFsbHkgZm9ybWF0dGVkIHBhdGgsIHdoaWNoIHBvaW50cyB0byBhbiBpdGVtIGluc2lkZSBhcHAgYnVuZGxlXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBCYXNlNjQgZW5jb2RlZCBjb250ZW50IG9mIHRoZSBwdWxsZWQgZmlsZVxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBwdWxsIG9wZXJhdGlvbiBmYWlsZWRcbiAqL1xuY29tbWFuZHMucHVsbEZpbGUgPSBhc3luYyBmdW5jdGlvbiBwdWxsRmlsZSAocmVtb3RlUGF0aCkge1xuICBpZiAocmVtb3RlUGF0aC5lbmRzV2l0aCgnLycpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5JbnZhbGlkQXJndW1lbnRFcnJvcihgSXQgaXMgZXhwZWN0ZWQgdGhhdCByZW1vdGUgcGF0aCBwb2ludHMgdG8gYSBmaWxlIGFuZCBub3QgdG8gYSBmb2xkZXIuIGAgK1xuICAgICAgYCcke3JlbW90ZVBhdGh9JyBpcyBnaXZlbiBpbnN0ZWFkYCk7XG4gIH1cbiAgbGV0IHRtcERlc3RpbmF0aW9uID0gbnVsbDtcbiAgaWYgKHJlbW90ZVBhdGguc3RhcnRzV2l0aChDT05UQUlORVJfUEFUSF9NQVJLRVIpKSB7XG4gICAgY29uc3QgW3BhY2thZ2VJZCwgcGF0aEluQ29udGFpbmVyXSA9IHBhcnNlQ29udGFpbmVyUGF0aChyZW1vdGVQYXRoKTtcbiAgICB0aGlzLmxvZy5kZWJ1ZyhgUGFyc2VkIHBhY2thZ2UgaWRlbnRpZmllciAnJHtwYWNrYWdlSWR9JyBmcm9tICcke3JlbW90ZVBhdGh9Jy4gV2lsbCBnZXQgdGhlIGRhdGEgZnJvbSAnJHtwYXRoSW5Db250YWluZXJ9J2ApO1xuICAgIHRtcERlc3RpbmF0aW9uID0gYC9kYXRhL2xvY2FsL3RtcC8ke3BhdGgucG9zaXguYmFzZW5hbWUocGF0aEluQ29udGFpbmVyKX1gO1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCB0aGlzLmFkYi5zaGVsbChbJ3J1bi1hcycsIHBhY2thZ2VJZCwgYGNobW9kIDc3NyAnJHtlc2NhcGVQYXRoKHBhdGhJbkNvbnRhaW5lcil9J2BdKTtcbiAgICAgIGF3YWl0IHRoaXMuYWRiLnNoZWxsKFtcbiAgICAgICAgJ3J1bi1hcycsIHBhY2thZ2VJZCxcbiAgICAgICAgYGNwIC1mICcke2VzY2FwZVBhdGgocGF0aEluQ29udGFpbmVyKX0nICcke2VzY2FwZVBhdGgodG1wRGVzdGluYXRpb24pfSdgXG4gICAgICBdKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZy5lcnJvckFuZFRocm93KGBDYW5ub3QgYWNjZXNzIHRoZSBjb250YWluZXIgb2YgJyR7cGFja2FnZUlkfScgYXBwbGljYXRpb24uIGAgK1xuICAgICAgICAgICAgICAgICAgICAgICAgYElzIHRoZSBhcHBsaWNhdGlvbiBpbnN0YWxsZWQgYW5kIGhhcyAnZGVidWdnYWJsZScgYnVpbGQgb3B0aW9uIHNldCB0byB0cnVlPyBgICtcbiAgICAgICAgICAgICAgICAgICAgICAgIGBPcmlnaW5hbCBlcnJvcjogJHtlLm1lc3NhZ2V9YCk7XG4gICAgfVxuICB9XG4gIGNvbnN0IGxvY2FsRmlsZSA9IGF3YWl0IHRlbXBEaXIucGF0aCh7cHJlZml4OiAnYXBwaXVtJywgc3VmZml4OiAnLnRtcCd9KTtcbiAgdHJ5IHtcbiAgICBhd2FpdCB0aGlzLmFkYi5wdWxsKHRtcERlc3RpbmF0aW9uIHx8IHJlbW90ZVBhdGgsIGxvY2FsRmlsZSk7XG4gICAgcmV0dXJuIChhd2FpdCB1dGlsLnRvSW5NZW1vcnlCYXNlNjQobG9jYWxGaWxlKSkudG9TdHJpbmcoKTtcbiAgfSBmaW5hbGx5IHtcbiAgICBpZiAoYXdhaXQgZnMuZXhpc3RzKGxvY2FsRmlsZSkpIHtcbiAgICAgIGF3YWl0IGZzLnVubGluayhsb2NhbEZpbGUpO1xuICAgIH1cbiAgICBpZiAodG1wRGVzdGluYXRpb24pIHtcbiAgICAgIGF3YWl0IHRoaXMuYWRiLnNoZWxsKFsncm0nLCAnLWYnLCB0bXBEZXN0aW5hdGlvbl0pO1xuICAgIH1cbiAgfVxufTtcblxuLyoqXG4gKiBQdXNoZWQgdGhlIGdpdmVuIGRhdGEgdG8gYSBmaWxlIG9uIHRoZSByZW1vdGUgZGV2aWNlXG4gKiBJdCBpcyByZXF1aXJlZCwgdGhhdCBhIHBhY2thZ2UgaGFzIGRlYnVnZ2luZyBmbGFnIGVuYWJsZWRcbiAqIGluIG9yZGVyIHRvIGFjY2VzcyBpdHMgZmlsZXMuXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHJlbW90ZVBhdGggVGhlIGZ1bGwgcGF0aCB0byB0aGUgcmVtb3RlIGZpbGUgb3JcbiAqIGEgZmlsZSBpbnNpZGUgYSBwYWNrYWdlIGJ1bmRsZVxuICogQHBhcmFtIHtzdHJpbmd9IGJhc2U2NERhdGEgQmFzZTY0IGVuY29kZWQgZGF0YSB0byBiZSB3cml0dGVuIHRvIHRoZVxuICogcmVtb3RlIGZpbGUuIFRoZSByZW1vdGUgZmlsZSB3aWxsIGJlIHNpbGVudGx5IG92ZXJyaWRkZW4gaWYgaXQgYWxyZWFkeSBleGlzdHMuXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlcmUgd2FzIGFuIGVycm9yIHdoaWxlIHB1c2hpbmcgdGhlIGRhdGFcbiAqL1xuY29tbWFuZHMucHVzaEZpbGUgPSBhc3luYyBmdW5jdGlvbiBwdXNoRmlsZSAocmVtb3RlUGF0aCwgYmFzZTY0RGF0YSkge1xuICBpZiAocmVtb3RlUGF0aC5lbmRzV2l0aCgnLycpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5JbnZhbGlkQXJndW1lbnRFcnJvcihcbiAgICAgIGBJdCBpcyBleHBlY3RlZCB0aGF0IHJlbW90ZSBwYXRoIHBvaW50cyB0byBhIGZpbGUgYW5kIG5vdCB0byBhIGZvbGRlci4gYCArXG4gICAgICBgJyR7cmVtb3RlUGF0aH0nIGlzIGdpdmVuIGluc3RlYWRgXG4gICAgKTtcbiAgfVxuICBjb25zdCBsb2NhbEZpbGUgPSBhd2FpdCB0ZW1wRGlyLnBhdGgoe3ByZWZpeDogJ2FwcGl1bScsIHN1ZmZpeDogJy50bXAnfSk7XG4gIGlmIChfLmlzQXJyYXkoYmFzZTY0RGF0YSkpIHtcbiAgICAvLyBzb21lIGNsaWVudHMgKGFoZW0pIGphdmEsIHNlbmQgYSBieXRlIGFycmF5IGVuY29kaW5nIHV0ZjggY2hhcmFjdGVyc1xuICAgIC8vIGluc3RlYWQgb2YgYSBzdHJpbmcsIHdoaWNoIHdvdWxkIGJlIGluZmluaXRlbHkgYmV0dGVyIVxuICAgIGJhc2U2NERhdGEgPSBCdWZmZXIuZnJvbShiYXNlNjREYXRhKS50b1N0cmluZygndXRmOCcpO1xuICB9XG4gIGNvbnN0IGNvbnRlbnQgPSBCdWZmZXIuZnJvbShiYXNlNjREYXRhLCAnYmFzZTY0Jyk7XG4gIGxldCB0bXBEZXN0aW5hdGlvbiA9IG51bGw7XG4gIHRyeSB7XG4gICAgYXdhaXQgZnMud3JpdGVGaWxlKGxvY2FsRmlsZSwgY29udGVudC50b1N0cmluZygnYmluYXJ5JyksICdiaW5hcnknKTtcbiAgICBpZiAocmVtb3RlUGF0aC5zdGFydHNXaXRoKENPTlRBSU5FUl9QQVRIX01BUktFUikpIHtcbiAgICAgIGNvbnN0IFtwYWNrYWdlSWQsIHBhdGhJbkNvbnRhaW5lcl0gPSBwYXJzZUNvbnRhaW5lclBhdGgocmVtb3RlUGF0aCk7XG4gICAgICB0aGlzLmxvZy5kZWJ1ZyhgUGFyc2VkIHBhY2thZ2UgaWRlbnRpZmllciAnJHtwYWNrYWdlSWR9JyBmcm9tICcke3JlbW90ZVBhdGh9Jy4gYCArXG4gICAgICAgIGBXaWxsIHB1dCB0aGUgZGF0YSBpbnRvICcke3BhdGhJbkNvbnRhaW5lcn0nYCk7XG4gICAgICB0bXBEZXN0aW5hdGlvbiA9IGAvZGF0YS9sb2NhbC90bXAvJHtwYXRoLnBvc2l4LmJhc2VuYW1lKHBhdGhJbkNvbnRhaW5lcil9YDtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHRoaXMuYWRiLnNoZWxsKFxuICAgICAgICAgIFsncnVuLWFzJywgcGFja2FnZUlkLCBgbWtkaXIgLXAgJyR7ZXNjYXBlUGF0aChwYXRoLnBvc2l4LmRpcm5hbWUocGF0aEluQ29udGFpbmVyKSl9J2BdXG4gICAgICAgICk7XG4gICAgICAgIGF3YWl0IHRoaXMuYWRiLnNoZWxsKFsncnVuLWFzJywgcGFja2FnZUlkLCBgdG91Y2ggJyR7ZXNjYXBlUGF0aChwYXRoSW5Db250YWluZXIpfSdgXSk7XG4gICAgICAgIGF3YWl0IHRoaXMuYWRiLnNoZWxsKFsncnVuLWFzJywgcGFja2FnZUlkLCBgY2htb2QgNzc3ICcke2VzY2FwZVBhdGgocGF0aEluQ29udGFpbmVyKX0nYF0pO1xuICAgICAgICBhd2FpdCB0aGlzLmFkYi5wdXNoKGxvY2FsRmlsZSwgdG1wRGVzdGluYXRpb24pO1xuICAgICAgICBhd2FpdCB0aGlzLmFkYi5zaGVsbChbXG4gICAgICAgICAgJ3J1bi1hcycsIHBhY2thZ2VJZCxcbiAgICAgICAgICBgY3AgLWYgJyR7ZXNjYXBlUGF0aCh0bXBEZXN0aW5hdGlvbil9JyAnJHtlc2NhcGVQYXRoKHBhdGhJbkNvbnRhaW5lcil9J2BcbiAgICAgICAgXSk7XG4gICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgIHRoaXMubG9nLmVycm9yQW5kVGhyb3coYENhbm5vdCBhY2Nlc3MgdGhlIGNvbnRhaW5lciBvZiAnJHtwYWNrYWdlSWR9JyBhcHBsaWNhdGlvbi4gYCArXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGBJcyB0aGUgYXBwbGljYXRpb24gaW5zdGFsbGVkIGFuZCBoYXMgJ2RlYnVnZ2FibGUnIGJ1aWxkIG9wdGlvbiBzZXQgdG8gdHJ1ZT8gYCArXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGBPcmlnaW5hbCBlcnJvcjogJHtlLm1lc3NhZ2V9YCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIGFkYiBwdXNoIGNyZWF0ZXMgZm9sZGVycyBhbmQgb3ZlcndyaXRlcyBleGlzdGluZyBmaWxlcy5cbiAgICAgIGF3YWl0IHRoaXMuYWRiLnB1c2gobG9jYWxGaWxlLCByZW1vdGVQYXRoKTtcblxuICAgICAgLy8gaWYgd2UgaGF2ZSBwdXNoZWQgYSBmaWxlLCBpdCBtaWdodCBiZSBhIG1lZGlhIGZpbGUsIHNvIGVuc3VyZSB0aGF0XG4gICAgICAvLyBhcHBzIGtub3cgYWJvdXQgaXRcbiAgICAgIGF3YWl0IHNjYW5NZWRpYSh0aGlzLmFkYiwgcmVtb3RlUGF0aCwgdGhpcy5sb2cpO1xuICAgIH1cbiAgfSBmaW5hbGx5IHtcbiAgICBpZiAoYXdhaXQgZnMuZXhpc3RzKGxvY2FsRmlsZSkpIHtcbiAgICAgIGF3YWl0IGZzLnVubGluayhsb2NhbEZpbGUpO1xuICAgIH1cbiAgICBpZiAodG1wRGVzdGluYXRpb24pIHtcbiAgICAgIGF3YWl0IHRoaXMuYWRiLnNoZWxsKFsncm0nLCAnLWYnLCB0bXBEZXN0aW5hdGlvbl0pO1xuICAgIH1cbiAgfVxufTtcblxuLyoqXG4gKiBQdWxscyB0aGUgd2hvbGUgZm9sZGVyIGZyb20gdGhlIHJlbW90ZSBkZXZpY2VcbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcmVtb3RlUGF0aCBUaGUgZnVsbCBwYXRoIHRvIGEgZm9sZGVyIG9uIHRoZVxuICogcmVtb3RlIGRldmljZSBvciBhIGZvbGRlciBpbnNpZGUgYW4gYXBwbGljYXRpb24gYnVuZGxlXG4gKiBAcmV0dXJucyB7c3RyaW5nfSBCYXNlNjQtZW5jb2RlZCBhbmQgemlwcGVkIGNvbnRlbnQgb2YgdGhlIGZvbGRlclxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZXJlIHdhcyBhIGZhaWx1cmUgd2hpbGUgZ2V0dGluZyB0aGUgZm9sZGVyIGNvbnRlbnRcbiAqL1xuY29tbWFuZHMucHVsbEZvbGRlciA9IGFzeW5jIGZ1bmN0aW9uIHB1bGxGb2xkZXIgKHJlbW90ZVBhdGgpIHtcbiAgbGV0IGxvY2FsRm9sZGVyID0gYXdhaXQgdGVtcERpci5wYXRoKHtwcmVmaXg6ICdhcHBpdW0nfSk7XG4gIGF3YWl0IHRoaXMuYWRiLnB1bGwocmVtb3RlUGF0aCwgbG9jYWxGb2xkZXIpO1xuICByZXR1cm4gKGF3YWl0IHppcC50b0luTWVtb3J5WmlwKGxvY2FsRm9sZGVyLCB7XG4gICAgZW5jb2RlVG9CYXNlNjQ6IHRydWUsXG4gIH0pKS50b1N0cmluZygpO1xufTtcblxuLyoqXG4gKiBEZWxldGVzIHRoZSBnaXZlbiBmb2xkZXIgb3IgZmlsZSBmcm9tIHRoZSByZW1vdGUgZGV2aWNlXG4gKlxuICogQHBhcmFtIHtBREJ9IGFkYlxuICogQHBhcmFtIHtzdHJpbmd9IHJlbW90ZVBhdGggVGhlIGZ1bGwgcGF0aCB0byB0aGUgcmVtb3RlIGZvbGRlclxuICogb3IgZmlsZSAoZm9sZGVyIG5hbWVzIG11c3QgZW5kIHdpdGggYSBzaW5nbGUgc2xhc2gpXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIHByb3ZpZGVkIHJlbW90ZSBwYXRoIGlzIGludmFsaWQgb3JcbiAqIHRoZSBwYWNrYWdlIGNvbnRlbnQgY2Fubm90IGJlIGFjY2Vzc2VkXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gYHRydWVgIGlmIHRoZSByZW1vdGUgaXRlbSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgZGVsZXRlZC5cbiAqIElmIHRoZSByZW1vdGUgcGF0aCBpcyB2YWxpZCwgYnV0IHRoZSByZW1vdGUgcGF0aCBkb2VzIG5vdCBleGlzdFxuICogdGhpcyBmdW5jdGlvbiByZXR1cm4gYGZhbHNlYC5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gZGVsZXRlRmlsZU9yRm9sZGVyIChhZGIsIHJlbW90ZVBhdGgpIHtcbiAgY29uc3QgcGVyZm9ybVJlbW90ZUZzQ2hlY2sgPSBhc3luYyAocCwgb3AsIHJ1bkFzID0gbnVsbCkgPT4ge1xuICAgIGNvbnN0IHBhc3NGbGFnID0gJ19fUEFTU19fJztcbiAgICBjb25zdCBjaGVja0NtZCA9IGBbIC0ke29wfSAnJHtlc2NhcGVQYXRoKHApfScgXSAmJiBlY2hvICR7cGFzc0ZsYWd9YDtcbiAgICBjb25zdCBmdWxsQ21kID0gcnVuQXMgPyBgcnVuLWFzICR7cnVuQXN9ICR7Y2hlY2tDbWR9YCA6IGNoZWNrQ21kO1xuICAgIHRyeSB7XG4gICAgICByZXR1cm4gXy5pbmNsdWRlcyhhd2FpdCBhZGIuc2hlbGwoW2Z1bGxDbWRdKSwgcGFzc0ZsYWcpO1xuICAgIH0gY2F0Y2ggKGlnbikge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfTtcbiAgY29uc3QgaXNGaWxlID0gYXN5bmMgKHAsIHJ1bkFzID0gbnVsbCkgPT4gYXdhaXQgcGVyZm9ybVJlbW90ZUZzQ2hlY2socCwgJ2YnLCBydW5Bcyk7XG4gIGNvbnN0IGlzRGlyID0gYXN5bmMgKHAsIHJ1bkFzID0gbnVsbCkgPT4gYXdhaXQgcGVyZm9ybVJlbW90ZUZzQ2hlY2socCwgJ2QnLCBydW5Bcyk7XG4gIGNvbnN0IGlzUHJlc2VudCA9IGFzeW5jIChwLCBydW5BcyA9IG51bGwpID0+IGF3YWl0IHBlcmZvcm1SZW1vdGVGc0NoZWNrKHAsICdlJywgcnVuQXMpO1xuXG4gIGxldCBkc3RQYXRoID0gcmVtb3RlUGF0aDtcbiAgbGV0IHBrZ0lkID0gbnVsbDtcbiAgaWYgKHJlbW90ZVBhdGguc3RhcnRzV2l0aChDT05UQUlORVJfUEFUSF9NQVJLRVIpKSB7XG4gICAgY29uc3QgW3BhY2thZ2VJZCwgcGF0aEluQ29udGFpbmVyXSA9IHBhcnNlQ29udGFpbmVyUGF0aChyZW1vdGVQYXRoKTtcbiAgICB0aGlzLmxvZy5kZWJ1ZyhgUGFyc2VkIHBhY2thZ2UgaWRlbnRpZmllciAnJHtwYWNrYWdlSWR9JyBmcm9tICcke3JlbW90ZVBhdGh9J2ApO1xuICAgIGRzdFBhdGggPSBwYXRoSW5Db250YWluZXI7XG4gICAgcGtnSWQgPSBwYWNrYWdlSWQ7XG4gIH1cblxuICBpZiAocGtnSWQpIHtcbiAgICB0cnkge1xuICAgICAgYXdhaXQgYWRiLnNoZWxsKFsncnVuLWFzJywgcGtnSWQsICdscyddKTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICB0aGlzLmxvZy5lcnJvckFuZFRocm93KGBDYW5ub3QgYWNjZXNzIHRoZSBjb250YWluZXIgb2YgJyR7cGtnSWR9JyBhcHBsaWNhdGlvbi4gYCArXG4gICAgICAgIGBJcyB0aGUgYXBwbGljYXRpb24gaW5zdGFsbGVkIGFuZCBoYXMgJ2RlYnVnZ2FibGUnIGJ1aWxkIG9wdGlvbiBzZXQgdG8gdHJ1ZT8gYCArXG4gICAgICAgIGBPcmlnaW5hbCBlcnJvcjogJHtlLm1lc3NhZ2V9YCk7XG4gICAgfVxuICB9XG5cbiAgaWYgKCFhd2FpdCBpc1ByZXNlbnQoZHN0UGF0aCwgcGtnSWQpKSB7XG4gICAgdGhpcy5sb2cuaW5mbyhgVGhlIGl0ZW0gYXQgJyR7ZHN0UGF0aH0nIGRvZXMgbm90IGV4aXN0LiBQZXJoYXBzLCBhbHJlYWR5IGRlbGV0ZWQ/YCk7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgY29uc3QgZXhwZWN0c0ZpbGUgPSAhcmVtb3RlUGF0aC5lbmRzV2l0aCgnLycpO1xuICBpZiAoZXhwZWN0c0ZpbGUgJiYgIWF3YWl0IGlzRmlsZShkc3RQYXRoLCBwa2dJZCkpIHtcbiAgICB0aGlzLmxvZy5lcnJvckFuZFRocm93KGBUaGUgaXRlbSBhdCAnJHtkc3RQYXRofScgaXMgbm90IGEgZmlsZWApO1xuICB9IGVsc2UgaWYgKCFleHBlY3RzRmlsZSAmJiAhYXdhaXQgaXNEaXIoZHN0UGF0aCwgcGtnSWQpKSB7XG4gICAgdGhpcy5sb2cuZXJyb3JBbmRUaHJvdyhgVGhlIGl0ZW0gYXQgJyR7ZHN0UGF0aH0nIGlzIG5vdCBhIGZvbGRlcmApO1xuICB9XG5cbiAgaWYgKHBrZ0lkKSB7XG4gICAgYXdhaXQgYWRiLnNoZWxsKFxuICAgICAgWydydW4tYXMnLCBwa2dJZCwgYHJtIC1mJHtleHBlY3RzRmlsZSA/ICcnIDogJ3InfSAnJHtlc2NhcGVQYXRoKGRzdFBhdGgpfSdgXSk7XG4gIH0gZWxzZSB7XG4gICAgYXdhaXQgYWRiLnNoZWxsKFsncm0nLCBgLWYke2V4cGVjdHNGaWxlID8gJycgOiAncid9YCwgZHN0UGF0aF0pO1xuICB9XG4gIGlmIChhd2FpdCBpc1ByZXNlbnQoZHN0UGF0aCwgcGtnSWQpKSB7XG4gICAgdGhpcy5sb2cuZXJyb3JBbmRUaHJvdyhgVGhlIGl0ZW0gYXQgJyR7ZHN0UGF0aH0nIHN0aWxsIGV4aXN0cyBhZnRlciBiZWluZyBkZWxldGVkLiBgICtcbiAgICAgIGBJcyBpdCB3cml0YWJsZT9gKTtcbiAgfVxuICByZXR1cm4gdHJ1ZTtcbn1cblxuLyoqXG4gKiBAdHlwZWRlZiB7T2JqZWN0fSBEZWxldGVGaWxlT3B0c1xuICogQHByb3BlcnR5IHshc3RyaW5nfSByZW1vdGVQYXRoIFRoZSBmdWxsIHBhdGggdG8gdGhlIHJlbW90ZSBmaWxlXG4gKiBvciBhIGZpbGUgaW5zaWRlIGFuIGFwcGxpY2F0aW9uIGJ1bmRsZSAoZm9yIGV4YW1wbGUgYEBteS5hcHAuaWQvcGF0aC9pbi9idW5kbGVgKVxuICovXG5cbi8qKlxuICogRGVsZXRlcyBhIGZpbGUgb24gdGhlIHJlbW90ZSBkZXZpY2VcbiAqXG4gKiBAcGFyYW0ge0RlbGV0ZUZpbGVPcHRzfSBvcHRzXG4gKiBAcmV0dXJucyB7Ym9vbGVhbn0gYHRydWVgIGlmIHRoZSByZW1vdGUgZmlsZSBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgZGVsZXRlZC5cbiAqIElmIHRoZSBwYXRoIHRvIGEgcmVtb3RlIGZpbGUgaXMgdmFsaWQsIGJ1dCB0aGUgZmlsZSBpdHNlbGYgZG9lcyBub3QgZXhpc3RcbiAqIHRoZW4gYGZhbHNlYCBpcyByZXR1cm5lZC5cbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgYXJndW1lbnQgaXMgaW52YWxpZCBvciB0aGVyZSB3YXMgYW4gZXJyb3Igd2hpbGVcbiAqIGRlbGV0aW5nIHRoZSBmaWxlXG4gKi9cbmNvbW1hbmRzLm1vYmlsZURlbGV0ZUZpbGUgPSBhc3luYyBmdW5jdGlvbiBtb2JpbGVEZWxldGVGaWxlIChvcHRzID0ge30pIHtcbiAgY29uc3Qge3JlbW90ZVBhdGh9ID0gb3B0cztcbiAgaWYgKCFyZW1vdGVQYXRoKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5JbnZhbGlkQXJndW1lbnRFcnJvcihgVGhlICdyZW1vdGVQYXRoJyBhcmd1bWVudCBpcyBtYW5kYXRvcnlgKTtcbiAgfVxuICBpZiAocmVtb3RlUGF0aC5lbmRzV2l0aCgnLycpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5JbnZhbGlkQXJndW1lbnRFcnJvcihcbiAgICAgIGBJdCBpcyBleHBlY3RlZCB0aGF0IHJlbW90ZSBwYXRoIHBvaW50cyB0byBhIGZvbGRlciBhbmQgbm90IHRvIGEgZmlsZS4gYCArXG4gICAgICBgJyR7cmVtb3RlUGF0aH0nIGlzIGdpdmVuIGluc3RlYWRgXG4gICAgKTtcbiAgfVxuICByZXR1cm4gYXdhaXQgZGVsZXRlRmlsZU9yRm9sZGVyKHRoaXMuYWRiLCByZW1vdGVQYXRoKTtcbn07XG5cbmV4cG9ydCB7IGNvbW1hbmRzIH07XG5leHBvcnQgZGVmYXVsdCBjb21tYW5kcztcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFHQSxNQUFNQSxxQkFBcUIsR0FBRyxHQUE5QjtBQUVBLE1BQU1DLHNCQUFzQixHQUFHLElBQUlDLE1BQUosQ0FBWSxJQUFHRixxQkFBc0IsY0FBckMsQ0FBL0I7QUFDQSxNQUFNRywyQkFBMkIsR0FBRywrQ0FBcEM7QUFHQSxNQUFNQyxRQUFRLEdBQUcsRUFBakI7OztBQVdBLFNBQVNDLGtCQUFULENBQTZCQyxVQUE3QixFQUF5QztFQUN2QyxNQUFNQyxLQUFLLEdBQUdOLHNCQUFzQixDQUFDTyxJQUF2QixDQUE0QkYsVUFBNUIsQ0FBZDs7RUFDQSxJQUFJLENBQUNDLEtBQUwsRUFBWTtJQUNWLE1BQU0sSUFBSUUsS0FBSixDQUFXLGtHQUFELEdBQ2IsSUFBR0gsVUFBVyxvQkFEWCxDQUFOO0VBRUQ7O0VBQ0QsT0FBTyxDQUFDQyxLQUFLLENBQUMsQ0FBRCxDQUFOLEVBQVdHLGNBQUtDLEtBQUwsQ0FBV0MsT0FBWCxDQUFvQixjQUFhTCxLQUFLLENBQUMsQ0FBRCxDQUFJLEVBQTFDLEVBQTZDQSxLQUFLLENBQUMsQ0FBRCxDQUFsRCxDQUFYLENBQVA7QUFDRDs7QUFXRCxlQUFlTSxTQUFmLENBQTBCQyxHQUExQixFQUErQlIsVUFBL0IsRUFBMkNTLEdBQUcsR0FBRyxJQUFq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
235
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2ZpbGUtYWN0aW9ucy5qcyIsIm5hbWVzIjpbIkNPTlRBSU5FUl9QQVRIX01BUktFUiIsIkNPTlRBSU5FUl9QQVRIX1BBVFRFUk4iLCJSZWdFeHAiLCJBTkRST0lEX01FRElBX1JFU0NBTl9JTlRFTlQiLCJjb21tYW5kcyIsInBhcnNlQ29udGFpbmVyUGF0aCIsInJlbW90ZVBhdGgiLCJtYXRjaCIsImV4ZWMiLCJFcnJvciIsInBhdGgiLCJwb3NpeCIsInJlc29sdmUiLCJzY2FuTWVkaWEiLCJhZGIiLCJsb2ciLCJkZWJ1ZyIsImdldEFwaUxldmVsIiwic2hlbGwiLCJlIiwid2FybiIsInN0ZGVyciIsIm1lc3NhZ2UiLCJlc2NhcGVQYXRoIiwicCIsInJlcGxhY2UiLCJwdWxsRmlsZSIsImVuZHNXaXRoIiwiZXJyb3JzIiwiSW52YWxpZEFyZ3VtZW50RXJyb3IiLCJ0bXBEZXN0aW5hdGlvbiIsInN0YXJ0c1dpdGgiLCJwYWNrYWdlSWQiLCJwYXRoSW5Db250YWluZXIiLCJiYXNlbmFtZSIsImVycm9yQW5kVGhyb3ciLCJsb2NhbEZpbGUiLCJ0ZW1wRGlyIiwicHJlZml4Iiwic3VmZml4IiwicHVsbCIsInV0aWwiLCJ0b0luTWVtb3J5QmFzZTY0IiwidG9TdHJpbmciLCJmcyIsImV4aXN0cyIsInVubGluayIsInB1c2hGaWxlIiwiYmFzZTY0RGF0YSIsIl8iLCJpc0FycmF5IiwiQnVmZmVyIiwiZnJvbSIsImNvbnRlbnQiLCJ3cml0ZUZpbGUiLCJkaXJuYW1lIiwicHVzaCIsInB1bGxGb2xkZXIiLCJsb2NhbEZvbGRlciIsInppcCIsInRvSW5NZW1vcnlaaXAiLCJlbmNvZGVUb0Jhc2U2NCIsImRlbGV0ZUZpbGVPckZvbGRlciIsInBlcmZvcm1SZW1vdGVGc0NoZWNrIiwib3AiLCJydW5BcyIsInBhc3NGbGFnIiwiY2hlY2tDbWQiLCJmdWxsQ21kIiwiaW5jbHVkZXMiLCJpZ24iLCJpc0ZpbGUiLCJpc0RpciIsImlzUHJlc2VudCIsImRzdFBhdGgiLCJwa2dJZCIsImluZm8iLCJleHBlY3RzRmlsZSIsIm1vYmlsZURlbGV0ZUZpbGUiLCJvcHRzIl0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLiIsInNvdXJjZXMiOlsibGliL2NvbW1hbmRzL2ZpbGUtYWN0aW9ucy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgZnMsIHV0aWwsIHppcCwgdGVtcERpciB9IGZyb20gJ2FwcGl1bS9zdXBwb3J0JztcbmltcG9ydCBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgZXJyb3JzIH0gZnJvbSAnYXBwaXVtL2RyaXZlcic7XG5cblxuY29uc3QgQ09OVEFJTkVSX1BBVEhfTUFSS0VSID0gJ0AnO1xuLy8gaHR0cHM6Ly9yZWdleDEwMS5jb20vci9QTGRCMEcvMlxuY29uc3QgQ09OVEFJTkVSX1BBVEhfUEFUVEVSTiA9IG5ldyBSZWdFeHAoYF4ke0NPTlRBSU5FUl9QQVRIX01BUktFUn0oW14vXSspLyguKylgKTtcbmNvbnN0IEFORFJPSURfTUVESUFfUkVTQ0FOX0lOVEVOVCA9ICdhbmRyb2lkLmludGVudC5hY3Rpb24uTUVESUFfU0NBTk5FUl9TQ0FOX0ZJTEUnO1xuXG5cbmNvbnN0IGNvbW1hbmRzID0ge307XG5cbi8qKlxuICogUGFyc2VzIHRoZSBhY3R1YWwgZGVzdGluYXRpb24gcGF0aCBmcm9tIHRoZSBnaXZlbiB2YWx1ZVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSByZW1vdGVQYXRoIFRoZSBwcmVmb3JtYXR0ZWQgcmVtb3RlIHBhdGgsIHdoaWNoIGxvb2tzIGxpa2VcbiAqIGBAbXkuYXBwLmlkL215L3BhdGhgXG4gKiBAcmV0dXJucyB7QXJyYXk8c3RyaW5nPn0gQW4gYXJyYXksIHdoZXJlIHRoZSBmaXJzdCBpdGVtIGlzIHRoZSBwYXJzZWQgcGFja2FnZVxuICogaWRlbnRpZmllciBhbmQgdGhlIHNlY29uZCBvbmUgaXMgdGhlIGFjdHVhbCBkZXN0aW5hdGlvbiBwYXRoIGluc2lkZSB0aGUgcGFja2FnZS5cbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgZ2l2ZW4gc3RyaW5nIGNhbm5vdCBiZSBwYXJzZWRcbiAqL1xuZnVuY3Rpb24gcGFyc2VDb250YWluZXJQYXRoIChyZW1vdGVQYXRoKSB7XG4gIGNvbnN0IG1hdGNoID0gQ09OVEFJTkVSX1BBVEhfUEFUVEVSTi5leGVjKHJlbW90ZVBhdGgpO1xuICBpZiAoIW1hdGNoKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBJdCBpcyBleHBlY3RlZCB0aGF0IHBhY2thZ2UgaWRlbnRpZmllciBpcyBzZXBhcmF0ZWQgZnJvbSB0aGUgcmVsYXRpdmUgcGF0aCB3aXRoIGEgc2luZ2xlIHNsYXNoLiBgICtcbiAgICAgIGAnJHtyZW1vdGVQYXRofScgaXMgZ2l2ZW4gaW5zdGVhZGApO1xuICB9XG4gIHJldHVybiBbbWF0Y2hbMV0sIHBhdGgucG9zaXgucmVzb2x2ZShgL2RhdGEvZGF0YS8ke21hdGNoWzFdfWAsIG1hdGNoWzJdKV07XG59XG5cbi8qKlxuICogU2NhbnMgdGhlIGdpdmVuIGZpbGUvZm9sZGVyIG9uIHRoZSByZW1vdGUgZGV2aWNlXG4gKiBhbmQgYWRkcyBtYXRjaGluZyBpdGVtcyB0byB0aGUgZGV2aWNlJ3MgbWVkaWEgbGlicmFyeS5cbiAqIEV4Y2VwdGlvbnMgYXJlIGlnbm9yZWQgYW5kIHdyaXR0ZW4gaW50byB0aGUgbG9nLlxuICpcbiAqIEBwYXJhbSB7QURCfSBhZGIgQURCIGluc3RhbmNlXG4gKiBAcGFyYW0ge09iamVjdD99IGxvZyBMb2dnZXIgaW5zdGFuY2VcbiAqIEBwYXJhbSB7c3RyaW5nfSByZW1vdGVQYXRoIFRoZSBmaWxlL2ZvbGRlciBwYXRoIG9uIHRoZSByZW1vdGUgZGV2aWNlXG4gKi9cbmFzeW5jIGZ1bmN0aW9uIHNjYW5NZWRpYSAoYWRiLCByZW1vdGVQYXRoLCBsb2cgPSBudWxsKSB7XG4gIGxvZz8uZGVidWcoYFBlcmZvcm1pbmcgbWVkaWEgc2NhbiBvZiAnJHtyZW1vdGVQYXRofSdgKTtcbiAgdHJ5IHtcbiAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vYXBwaXVtL2FwcGl1bS9pc3N1ZXMvMTYxODRcbiAgICBpZiAoYXdhaXQgYWRiLmdldEFwaUxldmVsKCkgPj0gMjkpIHtcbiAgICAgIGF3YWl0IGFkYi5zY2FuTWVkaWEocmVtb3RlUGF0aCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGF3YWl0IGFkYi5zaGVsbChbXG4gICAgICAgICdhbScsICdicm9hZGNhc3QnLFxuICAgICAgICAnLWEnLCBBTkRST0lEX01FRElBX1JFU0NBTl9JTlRFTlQsXG4gICAgICAgICctZCcsIGBmaWxlOi8vJHtyZW1vdGVQYXRofWBcbiAgICAgIF0pO1xuICAgIH1cbiAgfSBjYXRjaCAoZSkge1xuICAgIGxvZz8ud2FybihgSWdub3JpbmcgYW4gdW5leHBlY3RlZCBlcnJvciB1cG9uIG1lZGlhIHNjYW5uaW5nIG9mICcke3JlbW90ZVBhdGh9JzogJHtlLnN0ZGVyciB8fCBlLm1lc3NhZ2V9YCk7XG4gIH1cbn1cblxuLyoqXG4gKiBBIHNtYWxsIGhlbHBlciwgd2hpY2ggZXNjYXBlcyBzaW5nbGUgcXVvdGVzIGluIHBhdGhzLFxuICogc28gdGhleSBhcmUgc2FmZSB0byBiZSBwYXNzZWQgYXMgYXJndW1lbnRzIG9mIHNoZWxsIGNvbW1hbmRzXG4gKlxuICogQHBhcmFtIHtzdHJpbmd9IHAgVGhlIGluaXRpYWwgcmVtb3RlIHBhdGhcbiAqIEByZXR1cm5zIHtzdHJpbmd9IFRoZSBlc2NhcGVkIHBhdGggdmFsdWVcbiAqL1xuZnVuY3Rpb24gZXNjYXBlUGF0aCAocCkge1xuICByZXR1cm4gcC5yZXBsYWNlKC8nL2csIGBcXFxcJ2ApO1xufVxuXG4vKipcbiAqIFB1bGxzIGEgcmVtb3RlIGZpbGUgZnJvbSB0aGUgZGV2aWNlLlxuICogSXQgaXMgcmVxdWlyZWQsIHRoYXQgYSBwYWNrYWdlIGhhcyBkZWJ1Z2dpbmcgZmxhZyBlbmFibGVkXG4gKiBpbiBvcmRlciB0byBhY2Nlc3MgaXRzIGZpbGVzLlxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSByZW1vdGVQYXRoIFRoZSBmdWxsIHBhdGggdG8gdGhlIHJlbW90ZSBmaWxlXG4gKiBvciBhIHNwZWNpYWxseSBmb3JtYXR0ZWQgcGF0aCwgd2hpY2ggcG9pbnRzIHRvIGFuIGl0ZW0gaW5zaWRlIGFwcCBidW5kbGVcbiAqIEByZXR1cm5zIHtzdHJpbmd9IEJhc2U2NCBlbmNvZGVkIGNvbnRlbnQgb2YgdGhlIHB1bGxlZCBmaWxlXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlIHB1bGwgb3BlcmF0aW9uIGZhaWxlZFxuICovXG5jb21tYW5kcy5wdWxsRmlsZSA9IGFzeW5jIGZ1bmN0aW9uIHB1bGxGaWxlIChyZW1vdGVQYXRoKSB7XG4gIGlmIChyZW1vdGVQYXRoLmVuZHNXaXRoKCcvJykpIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JzLkludmFsaWRBcmd1bWVudEVycm9yKGBJdCBpcyBleHBlY3RlZCB0aGF0IHJlbW90ZSBwYXRoIHBvaW50cyB0byBhIGZpbGUgYW5kIG5vdCB0byBhIGZvbGRlci4gYCArXG4gICAgICBgJyR7cmVtb3RlUGF0aH0nIGlzIGdpdmVuIGluc3RlYWRgKTtcbiAgfVxuICBsZXQgdG1wRGVzdGluYXRpb24gPSBudWxsO1xuICBpZiAocmVtb3RlUGF0aC5zdGFydHNXaXRoKENPTlRBSU5FUl9QQVRIX01BUktFUikpIHtcbiAgICBjb25zdCBbcGFja2FnZUlkLCBwYXRoSW5Db250YWluZXJdID0gcGFyc2VDb250YWluZXJQYXRoKHJlbW90ZVBhdGgpO1xuICAgIHRoaXMubG9nLmRlYnVnKGBQYXJzZWQgcGFja2FnZSBpZGVudGlmaWVyICcke3BhY2thZ2VJZH0nIGZyb20gJyR7cmVtb3RlUGF0aH0nLiBXaWxsIGdldCB0aGUgZGF0YSBmcm9tICcke3BhdGhJbkNvbnRhaW5lcn0nYCk7XG4gICAgdG1wRGVzdGluYXRpb24gPSBgL2RhdGEvbG9jYWwvdG1wLyR7cGF0aC5wb3NpeC5iYXNlbmFtZShwYXRoSW5Db250YWluZXIpfWA7XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuYWRiLnNoZWxsKFsncnVuLWFzJywgcGFja2FnZUlkLCBgY2htb2QgNzc3ICcke2VzY2FwZVBhdGgocGF0aEluQ29udGFpbmVyKX0nYF0pO1xuICAgICAgYXdhaXQgdGhpcy5hZGIuc2hlbGwoW1xuICAgICAgICAncnVuLWFzJywgcGFja2FnZUlkLFxuICAgICAgICBgY3AgLWYgJyR7ZXNjYXBlUGF0aChwYXRoSW5Db250YWluZXIpfScgJyR7ZXNjYXBlUGF0aCh0bXBEZXN0aW5hdGlvbil9J2BcbiAgICAgIF0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nLmVycm9yQW5kVGhyb3coYENhbm5vdCBhY2Nlc3MgdGhlIGNvbnRhaW5lciBvZiAnJHtwYWNrYWdlSWR9JyBhcHBsaWNhdGlvbi4gYCArXG4gICAgICAgICAgICAgICAgICAgICAgICBgSXMgdGhlIGFwcGxpY2F0aW9uIGluc3RhbGxlZCBhbmQgaGFzICdkZWJ1Z2dhYmxlJyBidWlsZCBvcHRpb24gc2V0IHRvIHRydWU/IGAgK1xuICAgICAgICAgICAgICAgICAgICAgICAgYE9yaWdpbmFsIGVycm9yOiAke2UubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cbiAgY29uc3QgbG9jYWxGaWxlID0gYXdhaXQgdGVtcERpci5wYXRoKHtwcmVmaXg6ICdhcHBpdW0nLCBzdWZmaXg6ICcudG1wJ30pO1xuICB0cnkge1xuICAgIGF3YWl0IHRoaXMuYWRiLnB1bGwodG1wRGVzdGluYXRpb24gfHwgcmVtb3RlUGF0aCwgbG9jYWxGaWxlKTtcbiAgICByZXR1cm4gKGF3YWl0IHV0aWwudG9Jbk1lbW9yeUJhc2U2NChsb2NhbEZpbGUpKS50b1N0cmluZygpO1xuICB9IGZpbmFsbHkge1xuICAgIGlmIChhd2FpdCBmcy5leGlzdHMobG9jYWxGaWxlKSkge1xuICAgICAgYXdhaXQgZnMudW5saW5rKGxvY2FsRmlsZSk7XG4gICAgfVxuICAgIGlmICh0bXBEZXN0aW5hdGlvbikge1xuICAgICAgYXdhaXQgdGhpcy5hZGIuc2hlbGwoWydybScsICctZicsIHRtcERlc3RpbmF0aW9uXSk7XG4gICAgfVxuICB9XG59O1xuXG4vKipcbiAqIFB1c2hlZCB0aGUgZ2l2ZW4gZGF0YSB0byBhIGZpbGUgb24gdGhlIHJlbW90ZSBkZXZpY2VcbiAqIEl0IGlzIHJlcXVpcmVkLCB0aGF0IGEgcGFja2FnZSBoYXMgZGVidWdnaW5nIGZsYWcgZW5hYmxlZFxuICogaW4gb3JkZXIgdG8gYWNjZXNzIGl0cyBmaWxlcy5cbiAqXG4gKiBAcGFyYW0ge3N0cmluZ30gcmVtb3RlUGF0aCBUaGUgZnVsbCBwYXRoIHRvIHRoZSByZW1vdGUgZmlsZSBvclxuICogYSBmaWxlIGluc2lkZSBhIHBhY2thZ2UgYnVuZGxlXG4gKiBAcGFyYW0ge3N0cmluZ30gYmFzZTY0RGF0YSBCYXNlNjQgZW5jb2RlZCBkYXRhIHRvIGJlIHdyaXR0ZW4gdG8gdGhlXG4gKiByZW1vdGUgZmlsZS4gVGhlIHJlbW90ZSBmaWxlIHdpbGwgYmUgc2lsZW50bHkgb3ZlcnJpZGRlbiBpZiBpdCBhbHJlYWR5IGV4aXN0cy5cbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGVyZSB3YXMgYW4gZXJyb3Igd2hpbGUgcHVzaGluZyB0aGUgZGF0YVxuICovXG5jb21tYW5kcy5wdXNoRmlsZSA9IGFzeW5jIGZ1bmN0aW9uIHB1c2hGaWxlIChyZW1vdGVQYXRoLCBiYXNlNjREYXRhKSB7XG4gIGlmIChyZW1vdGVQYXRoLmVuZHNXaXRoKCcvJykpIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JzLkludmFsaWRBcmd1bWVudEVycm9yKFxuICAgICAgYEl0IGlzIGV4cGVjdGVkIHRoYXQgcmVtb3RlIHBhdGggcG9pbnRzIHRvIGEgZmlsZSBhbmQgbm90IHRvIGEgZm9sZGVyLiBgICtcbiAgICAgIGAnJHtyZW1vdGVQYXRofScgaXMgZ2l2ZW4gaW5zdGVhZGBcbiAgICApO1xuICB9XG4gIGNvbnN0IGxvY2FsRmlsZSA9IGF3YWl0IHRlbXBEaXIucGF0aCh7cHJlZml4OiAnYXBwaXVtJywgc3VmZml4OiAnLnRtcCd9KTtcbiAgaWYgKF8uaXNBcnJheShiYXNlNjREYXRhKSkge1xuICAgIC8vIHNvbWUgY2xpZW50cyAoYWhlbSkgamF2YSwgc2VuZCBhIGJ5dGUgYXJyYXkgZW5jb2RpbmcgdXRmOCBjaGFyYWN0ZXJzXG4gICAgLy8gaW5zdGVhZCBvZiBhIHN0cmluZywgd2hpY2ggd291bGQgYmUgaW5maW5pdGVseSBiZXR0ZXIhXG4gICAgYmFzZTY0RGF0YSA9IEJ1ZmZlci5mcm9tKGJhc2U2NERhdGEpLnRvU3RyaW5nKCd1dGY4Jyk7XG4gIH1cbiAgY29uc3QgY29udGVudCA9IEJ1ZmZlci5mcm9tKGJhc2U2NERhdGEsICdiYXNlNjQnKTtcbiAgbGV0IHRtcERlc3RpbmF0aW9uID0gbnVsbDtcbiAgdHJ5IHtcbiAgICBhd2FpdCBmcy53cml0ZUZpbGUobG9jYWxGaWxlLCBjb250ZW50LnRvU3RyaW5nKCdiaW5hcnknKSwgJ2JpbmFyeScpO1xuICAgIGlmIChyZW1vdGVQYXRoLnN0YXJ0c1dpdGgoQ09OVEFJTkVSX1BBVEhfTUFSS0VSKSkge1xuICAgICAgY29uc3QgW3BhY2thZ2VJZCwgcGF0aEluQ29udGFpbmVyXSA9IHBhcnNlQ29udGFpbmVyUGF0aChyZW1vdGVQYXRoKTtcbiAgICAgIHRoaXMubG9nLmRlYnVnKGBQYXJzZWQgcGFja2FnZSBpZGVudGlmaWVyICcke3BhY2thZ2VJZH0nIGZyb20gJyR7cmVtb3RlUGF0aH0nLiBgICtcbiAgICAgICAgYFdpbGwgcHV0IHRoZSBkYXRhIGludG8gJyR7cGF0aEluQ29udGFpbmVyfSdgKTtcbiAgICAgIHRtcERlc3RpbmF0aW9uID0gYC9kYXRhL2xvY2FsL3RtcC8ke3BhdGgucG9zaXguYmFzZW5hbWUocGF0aEluQ29udGFpbmVyKX1gO1xuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5hZGIuc2hlbGwoXG4gICAgICAgICAgWydydW4tYXMnLCBwYWNrYWdlSWQsIGBta2RpciAtcCAnJHtlc2NhcGVQYXRoKHBhdGgucG9zaXguZGlybmFtZShwYXRoSW5Db250YWluZXIpKX0nYF1cbiAgICAgICAgKTtcbiAgICAgICAgYXdhaXQgdGhpcy5hZGIuc2hlbGwoWydydW4tYXMnLCBwYWNrYWdlSWQsIGB0b3VjaCAnJHtlc2NhcGVQYXRoKHBhdGhJbkNvbnRhaW5lcil9J2BdKTtcbiAgICAgICAgYXdhaXQgdGhpcy5hZGIuc2hlbGwoWydydW4tYXMnLCBwYWNrYWdlSWQsIGBjaG1vZCA3NzcgJyR7ZXNjYXBlUGF0aChwYXRoSW5Db250YWluZXIpfSdgXSk7XG4gICAgICAgIGF3YWl0IHRoaXMuYWRiLnB1c2gobG9jYWxGaWxlLCB0bXBEZXN0aW5hdGlvbik7XG4gICAgICAgIGF3YWl0IHRoaXMuYWRiLnNoZWxsKFtcbiAgICAgICAgICAncnVuLWFzJywgcGFja2FnZUlkLFxuICAgICAgICAgIGBjcCAtZiAnJHtlc2NhcGVQYXRoKHRtcERlc3RpbmF0aW9uKX0nICcke2VzY2FwZVBhdGgocGF0aEluQ29udGFpbmVyKX0nYFxuICAgICAgICBdKTtcbiAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgdGhpcy5sb2cuZXJyb3JBbmRUaHJvdyhgQ2Fubm90IGFjY2VzcyB0aGUgY29udGFpbmVyIG9mICcke3BhY2thZ2VJZH0nIGFwcGxpY2F0aW9uLiBgICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYElzIHRoZSBhcHBsaWNhdGlvbiBpbnN0YWxsZWQgYW5kIGhhcyAnZGVidWdnYWJsZScgYnVpbGQgb3B0aW9uIHNldCB0byB0cnVlPyBgICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYE9yaWdpbmFsIGVycm9yOiAke2UubWVzc2FnZX1gKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gYWRiIHB1c2ggY3JlYXRlcyBmb2xkZXJzIGFuZCBvdmVyd3JpdGVzIGV4aXN0aW5nIGZpbGVzLlxuICAgICAgYXdhaXQgdGhpcy5hZGIucHVzaChsb2NhbEZpbGUsIHJlbW90ZVBhdGgpO1xuXG4gICAgICAvLyBpZiB3ZSBoYXZlIHB1c2hlZCBhIGZpbGUsIGl0IG1pZ2h0IGJlIGEgbWVkaWEgZmlsZSwgc28gZW5zdXJlIHRoYXRcbiAgICAgIC8vIGFwcHMga25vdyBhYm91dCBpdFxuICAgICAgYXdhaXQgc2Nhbk1lZGlhKHRoaXMuYWRiLCByZW1vdGVQYXRoLCB0aGlzLmxvZyk7XG4gICAgfVxuICB9IGZpbmFsbHkge1xuICAgIGlmIChhd2FpdCBmcy5leGlzdHMobG9jYWxGaWxlKSkge1xuICAgICAgYXdhaXQgZnMudW5saW5rKGxvY2FsRmlsZSk7XG4gICAgfVxuICAgIGlmICh0bXBEZXN0aW5hdGlvbikge1xuICAgICAgYXdhaXQgdGhpcy5hZGIuc2hlbGwoWydybScsICctZicsIHRtcERlc3RpbmF0aW9uXSk7XG4gICAgfVxuICB9XG59O1xuXG4vKipcbiAqIFB1bGxzIHRoZSB3aG9sZSBmb2xkZXIgZnJvbSB0aGUgcmVtb3RlIGRldmljZVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSByZW1vdGVQYXRoIFRoZSBmdWxsIHBhdGggdG8gYSBmb2xkZXIgb24gdGhlXG4gKiByZW1vdGUgZGV2aWNlIG9yIGEgZm9sZGVyIGluc2lkZSBhbiBhcHBsaWNhdGlvbiBidW5kbGVcbiAqIEByZXR1cm5zIHtzdHJpbmd9IEJhc2U2NC1lbmNvZGVkIGFuZCB6aXBwZWQgY29udGVudCBvZiB0aGUgZm9sZGVyXG4gKiBAdGhyb3dzIHtFcnJvcn0gSWYgdGhlcmUgd2FzIGEgZmFpbHVyZSB3aGlsZSBnZXR0aW5nIHRoZSBmb2xkZXIgY29udGVudFxuICovXG5jb21tYW5kcy5wdWxsRm9sZGVyID0gYXN5bmMgZnVuY3Rpb24gcHVsbEZvbGRlciAocmVtb3RlUGF0aCkge1xuICBsZXQgbG9jYWxGb2xkZXIgPSBhd2FpdCB0ZW1wRGlyLnBhdGgoe3ByZWZpeDogJ2FwcGl1bSd9KTtcbiAgYXdhaXQgdGhpcy5hZGIucHVsbChyZW1vdGVQYXRoLCBsb2NhbEZvbGRlcik7XG4gIHJldHVybiAoYXdhaXQgemlwLnRvSW5NZW1vcnlaaXAobG9jYWxGb2xkZXIsIHtcbiAgICBlbmNvZGVUb0Jhc2U2NDogdHJ1ZSxcbiAgfSkpLnRvU3RyaW5nKCk7XG59O1xuXG4vKipcbiAqIERlbGV0ZXMgdGhlIGdpdmVuIGZvbGRlciBvciBmaWxlIGZyb20gdGhlIHJlbW90ZSBkZXZpY2VcbiAqXG4gKiBAcGFyYW0ge0FEQn0gYWRiXG4gKiBAcGFyYW0ge3N0cmluZ30gcmVtb3RlUGF0aCBUaGUgZnVsbCBwYXRoIHRvIHRoZSByZW1vdGUgZm9sZGVyXG4gKiBvciBmaWxlIChmb2xkZXIgbmFtZXMgbXVzdCBlbmQgd2l0aCBhIHNpbmdsZSBzbGFzaClcbiAqIEB0aHJvd3Mge0Vycm9yfSBJZiB0aGUgcHJvdmlkZWQgcmVtb3RlIHBhdGggaXMgaW52YWxpZCBvclxuICogdGhlIHBhY2thZ2UgY29udGVudCBjYW5ub3QgYmUgYWNjZXNzZWRcbiAqIEByZXR1cm5zIHtib29sZWFufSBgdHJ1ZWAgaWYgdGhlIHJlbW90ZSBpdGVtIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBkZWxldGVkLlxuICogSWYgdGhlIHJlbW90ZSBwYXRoIGlzIHZhbGlkLCBidXQgdGhlIHJlbW90ZSBwYXRoIGRvZXMgbm90IGV4aXN0XG4gKiB0aGlzIGZ1bmN0aW9uIHJldHVybiBgZmFsc2VgLlxuICovXG5hc3luYyBmdW5jdGlvbiBkZWxldGVGaWxlT3JGb2xkZXIgKGFkYiwgcmVtb3RlUGF0aCkge1xuICBjb25zdCBwZXJmb3JtUmVtb3RlRnNDaGVjayA9IGFzeW5jIChwLCBvcCwgcnVuQXMgPSBudWxsKSA9PiB7XG4gICAgY29uc3QgcGFzc0ZsYWcgPSAnX19QQVNTX18nO1xuICAgIGNvbnN0IGNoZWNrQ21kID0gYFsgLSR7b3B9ICcke2VzY2FwZVBhdGgocCl9JyBdICYmIGVjaG8gJHtwYXNzRmxhZ31gO1xuICAgIGNvbnN0IGZ1bGxDbWQgPSBydW5BcyA/IGBydW4tYXMgJHtydW5Bc30gJHtjaGVja0NtZH1gIDogY2hlY2tDbWQ7XG4gICAgdHJ5IHtcbiAgICAgIHJldHVybiBfLmluY2x1ZGVzKGF3YWl0IGFkYi5zaGVsbChbZnVsbENtZF0pLCBwYXNzRmxhZyk7XG4gICAgfSBjYXRjaCAoaWduKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9O1xuICBjb25zdCBpc0ZpbGUgPSBhc3luYyAocCwgcnVuQXMgPSBudWxsKSA9PiBhd2FpdCBwZXJmb3JtUmVtb3RlRnNDaGVjayhwLCAnZicsIHJ1bkFzKTtcbiAgY29uc3QgaXNEaXIgPSBhc3luYyAocCwgcnVuQXMgPSBudWxsKSA9PiBhd2FpdCBwZXJmb3JtUmVtb3RlRnNDaGVjayhwLCAnZCcsIHJ1bkFzKTtcbiAgY29uc3QgaXNQcmVzZW50ID0gYXN5bmMgKHAsIHJ1bkFzID0gbnVsbCkgPT4gYXdhaXQgcGVyZm9ybVJlbW90ZUZzQ2hlY2socCwgJ2UnLCBydW5Bcyk7XG5cbiAgbGV0IGRzdFBhdGggPSByZW1vdGVQYXRoO1xuICBsZXQgcGtnSWQgPSBudWxsO1xuICBpZiAocmVtb3RlUGF0aC5zdGFydHNXaXRoKENPTlRBSU5FUl9QQVRIX01BUktFUikpIHtcbiAgICBjb25zdCBbcGFja2FnZUlkLCBwYXRoSW5Db250YWluZXJdID0gcGFyc2VDb250YWluZXJQYXRoKHJlbW90ZVBhdGgpO1xuICAgIHRoaXMubG9nLmRlYnVnKGBQYXJzZWQgcGFja2FnZSBpZGVudGlmaWVyICcke3BhY2thZ2VJZH0nIGZyb20gJyR7cmVtb3RlUGF0aH0nYCk7XG4gICAgZHN0UGF0aCA9IHBhdGhJbkNvbnRhaW5lcjtcbiAgICBwa2dJZCA9IHBhY2thZ2VJZDtcbiAgfVxuXG4gIGlmIChwa2dJZCkge1xuICAgIHRyeSB7XG4gICAgICBhd2FpdCBhZGIuc2hlbGwoWydydW4tYXMnLCBwa2dJZCwgJ2xzJ10pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nLmVycm9yQW5kVGhyb3coYENhbm5vdCBhY2Nlc3MgdGhlIGNvbnRhaW5lciBvZiAnJHtwa2dJZH0nIGFwcGxpY2F0aW9uLiBgICtcbiAgICAgICAgYElzIHRoZSBhcHBsaWNhdGlvbiBpbnN0YWxsZWQgYW5kIGhhcyAnZGVidWdnYWJsZScgYnVpbGQgb3B0aW9uIHNldCB0byB0cnVlPyBgICtcbiAgICAgICAgYE9yaWdpbmFsIGVycm9yOiAke2UubWVzc2FnZX1gKTtcbiAgICB9XG4gIH1cblxuICBpZiAoIWF3YWl0IGlzUHJlc2VudChkc3RQYXRoLCBwa2dJZCkpIHtcbiAgICB0aGlzLmxvZy5pbmZvKGBUaGUgaXRlbSBhdCAnJHtkc3RQYXRofScgZG9lcyBub3QgZXhpc3QuIFBlcmhhcHMsIGFscmVhZHkgZGVsZXRlZD9gKTtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBjb25zdCBleHBlY3RzRmlsZSA9ICFyZW1vdGVQYXRoLmVuZHNXaXRoKCcvJyk7XG4gIGlmIChleHBlY3RzRmlsZSAmJiAhYXdhaXQgaXNGaWxlKGRzdFBhdGgsIHBrZ0lkKSkge1xuICAgIHRoaXMubG9nLmVycm9yQW5kVGhyb3coYFRoZSBpdGVtIGF0ICcke2RzdFBhdGh9JyBpcyBub3QgYSBmaWxlYCk7XG4gIH0gZWxzZSBpZiAoIWV4cGVjdHNGaWxlICYmICFhd2FpdCBpc0Rpcihkc3RQYXRoLCBwa2dJZCkpIHtcbiAgICB0aGlzLmxvZy5lcnJvckFuZFRocm93KGBUaGUgaXRlbSBhdCAnJHtkc3RQYXRofScgaXMgbm90IGEgZm9sZGVyYCk7XG4gIH1cblxuICBpZiAocGtnSWQpIHtcbiAgICBhd2FpdCBhZGIuc2hlbGwoXG4gICAgICBbJ3J1bi1hcycsIHBrZ0lkLCBgcm0gLWYke2V4cGVjdHNGaWxlID8gJycgOiAncid9ICcke2VzY2FwZVBhdGgoZHN0UGF0aCl9J2BdKTtcbiAgfSBlbHNlIHtcbiAgICBhd2FpdCBhZGIuc2hlbGwoWydybScsIGAtZiR7ZXhwZWN0c0ZpbGUgPyAnJyA6ICdyJ31gLCBkc3RQYXRoXSk7XG4gIH1cbiAgaWYgKGF3YWl0IGlzUHJlc2VudChkc3RQYXRoLCBwa2dJZCkpIHtcbiAgICB0aGlzLmxvZy5lcnJvckFuZFRocm93KGBUaGUgaXRlbSBhdCAnJHtkc3RQYXRofScgc3RpbGwgZXhpc3RzIGFmdGVyIGJlaW5nIGRlbGV0ZWQuIGAgK1xuICAgICAgYElzIGl0IHdyaXRhYmxlP2ApO1xuICB9XG4gIHJldHVybiB0cnVlO1xufVxuXG4vKipcbiAqIEB0eXBlZGVmIHtPYmplY3R9IERlbGV0ZUZpbGVPcHRzXG4gKiBAcHJvcGVydHkgeyFzdHJpbmd9IHJlbW90ZVBhdGggVGhlIGZ1bGwgcGF0aCB0byB0aGUgcmVtb3RlIGZpbGVcbiAqIG9yIGEgZmlsZSBpbnNpZGUgYW4gYXBwbGljYXRpb24gYnVuZGxlIChmb3IgZXhhbXBsZSBgQG15LmFwcC5pZC9wYXRoL2luL2J1bmRsZWApXG4gKi9cblxuLyoqXG4gKiBEZWxldGVzIGEgZmlsZSBvbiB0aGUgcmVtb3RlIGRldmljZVxuICpcbiAqIEBwYXJhbSB7RGVsZXRlRmlsZU9wdHN9IG9wdHNcbiAqIEByZXR1cm5zIHtib29sZWFufSBgdHJ1ZWAgaWYgdGhlIHJlbW90ZSBmaWxlIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSBkZWxldGVkLlxuICogSWYgdGhlIHBhdGggdG8gYSByZW1vdGUgZmlsZSBpcyB2YWxpZCwgYnV0IHRoZSBmaWxlIGl0c2VsZiBkb2VzIG5vdCBleGlzdFxuICogdGhlbiBgZmFsc2VgIGlzIHJldHVybmVkLlxuICogQHRocm93cyB7RXJyb3J9IElmIHRoZSBhcmd1bWVudCBpcyBpbnZhbGlkIG9yIHRoZXJlIHdhcyBhbiBlcnJvciB3aGlsZVxuICogZGVsZXRpbmcgdGhlIGZpbGVcbiAqL1xuY29tbWFuZHMubW9iaWxlRGVsZXRlRmlsZSA9IGFzeW5jIGZ1bmN0aW9uIG1vYmlsZURlbGV0ZUZpbGUgKG9wdHMgPSB7fSkge1xuICBjb25zdCB7cmVtb3RlUGF0aH0gPSBvcHRzO1xuICBpZiAoIXJlbW90ZVBhdGgpIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JzLkludmFsaWRBcmd1bWVudEVycm9yKGBUaGUgJ3JlbW90ZVBhdGgnIGFyZ3VtZW50IGlzIG1hbmRhdG9yeWApO1xuICB9XG4gIGlmIChyZW1vdGVQYXRoLmVuZHNXaXRoKCcvJykpIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JzLkludmFsaWRBcmd1bWVudEVycm9yKFxuICAgICAgYEl0IGlzIGV4cGVjdGVkIHRoYXQgcmVtb3RlIHBhdGggcG9pbnRzIHRvIGEgZm9sZGVyIGFuZCBub3QgdG8gYSBmaWxlLiBgICtcbiAgICAgIGAnJHtyZW1vdGVQYXRofScgaXMgZ2l2ZW4gaW5zdGVhZGBcbiAgICApO1xuICB9XG4gIHJldHVybiBhd2FpdCBkZWxldGVGaWxlT3JGb2xkZXIodGhpcy5hZGIsIHJlbW90ZVBhdGgpO1xufTtcblxuZXhwb3J0IHsgY29tbWFuZHMgfTtcbmV4cG9ydCBkZWZhdWx0IGNvbW1hbmRzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUdBLE1BQU1BLHFCQUFxQixHQUFHLEdBQTlCO0FBRUEsTUFBTUMsc0JBQXNCLEdBQUcsSUFBSUMsTUFBSixDQUFZLElBQUdGLHFCQUFzQixjQUFyQyxDQUEvQjtBQUNBLE1BQU1HLDJCQUEyQixHQUFHLCtDQUFwQztBQUdBLE1BQU1DLFFBQVEsR0FBRyxFQUFqQjs7O0FBV0EsU0FBU0Msa0JBQVQsQ0FBNkJDLFVBQTdCLEVBQXlDO0VBQ3ZDLE1BQU1DLEtBQUssR0FBR04sc0JBQXNCLENBQUNPLElBQXZCLENBQTRCRixVQUE1QixDQUFkOztFQUNBLElBQUksQ0FBQ0MsS0FBTCxFQUFZO0lBQ1YsTUFBTSxJQUFJRSxLQUFKLENBQVcsa0dBQUQsR0FDYixJQUFHSCxVQUFXLG9CQURYLENBQU47RUFFRDs7RUFDRCxPQUFPLENBQUNDLEtBQUssQ0FBQyxDQUFELENBQU4sRUFBV0csYUFBQSxDQUFLQyxLQUFMLENBQVdDLE9BQVgsQ0FBb0IsY0FBYUwsS0FBSyxDQUFDLENBQUQsQ0FBSSxFQUExQyxFQUE2Q0EsS0FBSyxDQUFDLENBQUQsQ0FBbEQsQ0FBWCxDQUFQO0FBQ0Q7O0FBV0QsZUFBZU0sU0FBZixDQUEwQkMsR0FBMUIsRUFBK0JSLFVBQS9CLEVBQTJDUyxHQUFHLEdBQUcsSUFBakQs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
@@ -11,7 +11,7 @@ require("source-map-support/register");
11
11
 
12
12
  var _lodash = _interopRequireDefault(require("lodash"));
13
13
 
14
- var _baseDriver = require("@appium/base-driver");
14
+ var _driver = require("appium/driver");
15
15
 
16
16
  let helpers = {},
17
17
  extensions = {};
@@ -38,11 +38,11 @@ helpers.findElOrEls = async function findElOrEls(strategy, selector, mult, conte
38
38
  try {
39
39
  element = await this.doFindElementOrEls(params);
40
40
  } catch (err) {
41
- if ((0, _baseDriver.isErrorType)(err, _baseDriver.errors.ProxyRequestError)) {
41
+ if ((0, _driver.isErrorType)(err, _driver.errors.ProxyRequestError)) {
42
42
  err = err.getActualError();
43
43
  }
44
44
 
45
- if ((0, _baseDriver.isErrorType)(err, _baseDriver.errors.NoSuchElementError)) {
45
+ if ((0, _driver.isErrorType)(err, _driver.errors.NoSuchElementError)) {
46
46
  return false;
47
47
  }
48
48
 
@@ -67,7 +67,7 @@ helpers.findElOrEls = async function findElOrEls(strategy, selector, mult, conte
67
67
  }
68
68
 
69
69
  if (_lodash.default.isEmpty(element)) {
70
- throw new _baseDriver.errors.NoSuchElementError();
70
+ throw new _driver.errors.NoSuchElementError();
71
71
  }
72
72
 
73
73
  return element;
@@ -78,4 +78,4 @@ var _default = extensions;
78
78
  exports.default = _default;require('source-map-support').install();
79
79
 
80
80
 
81
- //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2ZpbmQuanMiLCJuYW1lcyI6WyJoZWxwZXJzIiwiZXh0ZW5zaW9ucyIsImRvRmluZEVsZW1lbnRPckVscyIsInBhcmFtcyIsImJvb3RzdHJhcCIsInNlbmRBY3Rpb24iLCJmaW5kRWxPckVscyIsInN0cmF0ZWd5Iiwic2VsZWN0b3IiLCJtdWx0IiwiY29udGV4dCIsIkVycm9yIiwibXVsdGlwbGUiLCJlbGVtZW50IiwiZG9GaW5kIiwiZXJyIiwiZXJyb3JzIiwiUHJveHlSZXF1ZXN0RXJyb3IiLCJnZXRBY3R1YWxFcnJvciIsIk5vU3VjaEVsZW1lbnRFcnJvciIsIl8iLCJpc0VtcHR5IiwiaW1wbGljaXRXYWl0Rm9yQ29uZGl0aW9uIiwibWVzc2FnZSIsIm1hdGNoIiwiT2JqZWN0IiwiYXNzaWduIl0sInNvdXJjZVJvb3QiOiIuLi8uLi8uLiIsInNvdXJjZXMiOlsibGliL2NvbW1hbmRzL2ZpbmQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IGVycm9ycywgaXNFcnJvclR5cGUgfSBmcm9tICdAYXBwaXVtL2Jhc2UtZHJpdmVyJztcblxuXG5sZXQgaGVscGVycyA9IHt9LCBleHRlbnNpb25zID0ge307XG5cbi8qKlxuICogUmVhc29uIGZvciBpc29sYXRpbmcgZG9GaW5kRWxlbWVudE9yRWxzIGZyb20gZmluZEVsT3JFbHMgaXMgZm9yIHJldXNpbmcgZmluZEVsT3JFbHNcbiAqIGFjcm9zcyBhbmRyb2lkLWRyaXZlcnMgKGxpa2UgYXBwaXVtLXVpYXV0b21hdG9yMi1kcml2ZXIpIHRvIGF2b2lkIGNvZGUgZHVwbGljYXRpb24uXG4gKiBPdGhlciBhbmRyb2lkLWRyaXZlcnMgKGxpa2UgYXBwaXVtLXVpYXV0b21hdG9yMi1kcml2ZXIpIG5lZWQgdG8gb3ZlcnJpZGUgZG9GaW5kRWxlbWVudE9yRWxzXG4gKiB0byBmYWNpbGl0YXRlIGZpbmRFbE9yRWxzLlxuICovXG5oZWxwZXJzLmRvRmluZEVsZW1lbnRPckVscyA9IGFzeW5jIGZ1bmN0aW9uIGRvRmluZEVsZW1lbnRPckVscyAocGFyYW1zKSB7XG4gIHJldHVybiBhd2FpdCB0aGlzLmJvb3RzdHJhcC5zZW5kQWN0aW9uKCdmaW5kJywgcGFyYW1zKTtcbn07XG5cbi8vIHN0YXRlZ3k6IGxvY2F0b3Igc3RyYXRlZ3lcbi8vIHNlbGVjdG9yOiB0aGUgYWN0dWFsIHNlbGVjdG9yIGZvciBmaW5kaW5nIGFuIGVsZW1lbnRcbi8vIG11bHQ6IG11bHRpcGxlIGVsZW1lbnRzIG9yIGp1c3Qgb25lP1xuLy8gY29udGV4dDogZmluZGluZyBhbiBlbGVtZW50IGZyb20gdGhlIHJvb3QgY29udGV4dD8gb3Igc3RhcnRpbmcgZnJvbSBhbm90aGVyIGVsZW1lbnRcbmhlbHBlcnMuZmluZEVsT3JFbHMgPSBhc3luYyBmdW5jdGlvbiBmaW5kRWxPckVscyAoc3RyYXRlZ3ksIHNlbGVjdG9yLCBtdWx0LCBjb250ZXh0ID0gJycpIHtcbiAgaWYgKCFzZWxlY3Rvcikge1xuICAgIHRocm93IG5ldyBFcnJvcignTXVzdCBwcm92aWRlIGEgc2VsZWN0b3Igd2hlbiBmaW5kaW5nIGVsZW1lbnRzJyk7XG4gIH1cblxuICBsZXQgcGFyYW1zID0ge1xuICAgIHN0cmF0ZWd5LFxuICAgIHNlbGVjdG9yLFxuICAgIGNvbnRleHQsXG4gICAgbXVsdGlwbGU6IG11bHRcbiAgfTtcblxuICBsZXQgZWxlbWVudDtcbiAgbGV0IGRvRmluZCA9IGFzeW5jICgpID0+IHtcbiAgICB0cnkge1xuICAgICAgZWxlbWVudCA9IGF3YWl0IHRoaXMuZG9GaW5kRWxlbWVudE9yRWxzKHBhcmFtcyk7XG4gICAgfSBjYXRjaCAoZXJyKSB7XG5cbiAgICAgIC8vIGlmIHRoZSBlcnJvciB0aGF0IGNvbWVzIGJhY2sgaXMgZnJvbSBhIHByb3hpZWQgcmVxdWVzdCwgd2UgbmVlZCB0b1xuICAgICAgLy8gdW53cmFwIGl0IHRvIGl0cyBhY3R1YWwgcHJvdG9jb2wgZXJyb3IgZmlyc3RcbiAgICAgIGlmIChpc0Vycm9yVHlwZShlcnIsIGVycm9ycy5Qcm94eVJlcXVlc3RFcnJvcikpIHtcbiAgICAgICAgZXJyID0gZXJyLmdldEFjdHVhbEVycm9yKCk7IC8vIGVzbGludC1kaXNhYmxlLWxpbmUgbm8tZXgtYXNzaWduXG4gICAgICB9XG5cbiAgICAgIC8vIG5vdyB3ZSBoYXZlIHRvIGluc3BlY3QgdGhlIGVycm9yIHRvIGRldGVybWluZSBpZiBpdCBpcyBhIG5vIHN1Y2hcbiAgICAgIC8vIGVsZW1lbnQgZXJyb3IsIGJhc2VkIG9uIHRoZSBzaGFwZSBvZiB0aGUgZXJyb3Igb2JqZWN0IGZyb21cbiAgICAgIC8vIEBhcHBpdW0vYmFzZS1kcml2ZXJcbiAgICAgIGlmIChpc0Vycm9yVHlwZShlcnIsIGVycm9ycy5Ob1N1Y2hFbGVtZW50RXJyb3IpKSB7XG4gICAgICAgIC8vIHdlIGFyZSBmaW5lIHdpdGggdGhpcywganVzdCBpbmRpY2F0ZSBhIHJldHJ5XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHRocm93IGVycjtcbiAgICB9XG5cbiAgICAvLyB3ZSB3YW50IHRvIHJldHVybiBmYWxzZSBpZiB3ZSB3YW50IHRvIHBvdGVudGlhbGx5IHRyeSBhZ2FpblxuICAgIHJldHVybiAhXy5pc0VtcHR5KGVsZW1lbnQpO1xuICB9O1xuXG4gIHRyeSB7XG4gICAgYXdhaXQgdGhpcy5pbXBsaWNpdFdhaXRGb3JDb25kaXRpb24oZG9GaW5kKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgaWYgKGVyci5tZXNzYWdlICYmIGVyci5tZXNzYWdlLm1hdGNoKC9Db25kaXRpb24gdW5tZXQvKSkge1xuICAgICAgLy8gb25seSBnZXQgaGVyZSBpZiB3ZSBhcmUgbG9va2luZyBmb3IgbXVsdGlwbGUgZWxlbWVudHNcbiAgICAgIC8vIGNvbmRpdGlvbiB3YXMgbm90IG1ldCBzZXR0aW5nIHJlcyB0byBlbXB0eSBhcnJheVxuICAgICAgZWxlbWVudCA9IFtdO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBlcnI7XG4gICAgfVxuICB9XG5cbiAgaWYgKG11bHQpIHtcbiAgICByZXR1cm4gZWxlbWVudDtcbiAgfVxuICBpZiAoXy5pc0VtcHR5KGVsZW1lbnQpKSB7XG4gICAgdGhyb3cgbmV3IGVycm9ycy5Ob1N1Y2hFbGVtZW50RXJyb3IoKTtcbiAgfVxuICByZXR1cm4gZWxlbWVudDtcbn07XG5cbk9iamVjdC5hc3NpZ24oZXh0ZW5zaW9ucywgaGVscGVycyk7XG5leHBvcnQgeyBoZWxwZXJzIH07XG5leHBvcnQgZGVmYXVsdCBleHRlbnNpb25zO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUdBLElBQUlBLE9BQU8sR0FBRyxFQUFkO0FBQUEsSUFBa0JDLFVBQVUsR0FBRyxFQUEvQjs7O0FBUUFELE9BQU8sQ0FBQ0Usa0JBQVIsR0FBNkIsZUFBZUEsa0JBQWYsQ0FBbUNDLE1BQW5DLEVBQTJDO0VBQ3RFLE9BQU8sTUFBTSxLQUFLQyxTQUFMLENBQWVDLFVBQWYsQ0FBMEIsTUFBMUIsRUFBa0NGLE1BQWxDLENBQWI7QUFDRCxDQUZEOztBQVFBSCxPQUFPLENBQUNNLFdBQVIsR0FBc0IsZUFBZUEsV0FBZixDQUE0QkMsUUFBNUIsRUFBc0NDLFFBQXRDLEVBQWdEQyxJQUFoRCxFQUFzREMsT0FBTyxHQUFHLEVBQWhFLEVBQW9FO0VBQ3hGLElBQUksQ0FBQ0YsUUFBTCxFQUFlO0lBQ2IsTUFBTSxJQUFJRyxLQUFKLENBQVUsK0NBQVYsQ0FBTjtFQUNEOztFQUVELElBQUlSLE1BQU0sR0FBRztJQUNYSSxRQURXO0lBRVhDLFFBRlc7SUFHWEUsT0FIVztJQUlYRSxRQUFRLEVBQUVIO0VBSkMsQ0FBYjtFQU9BLElBQUlJLE9BQUo7O0VBQ0EsSUFBSUMsTUFBTSxHQUFHLFlBQVk7SUFDdkIsSUFBSTtNQUNGRCxPQUFPLEdBQUcsTUFBTSxLQUFLWCxrQkFBTCxDQUF3QkMsTUFBeEIsQ0FBaEI7SUFDRCxDQUZELENBRUUsT0FBT1ksR0FBUCxFQUFZO01BSVosSUFBSSw2QkFBWUEsR0FBWixFQUFpQkMsbUJBQU9DLGlCQUF4QixDQUFKLEVBQWdEO1FBQzlDRixHQUFHLEdBQUdBLEdBQUcsQ0FBQ0csY0FBSixFQUFOO01BQ0Q7O01BS0QsSUFBSSw2QkFBWUgsR0FBWixFQUFpQkMsbUJBQU9HLGtCQUF4QixDQUFKLEVBQWlEO1FBRS9DLE9BQU8sS0FBUDtNQUNEOztNQUNELE1BQU1KLEdBQU47SUFDRDs7SUFHRCxPQUFPLENBQUNLLGdCQUFFQyxPQUFGLENBQVVSLE9BQVYsQ0FBUjtFQUNELENBdkJEOztFQXlCQSxJQUFJO0lBQ0YsTUFBTSxLQUFLUyx3QkFBTCxDQUE4QlIsTUFBOUIsQ0FBTjtFQUNELENBRkQsQ0FFRSxPQUFPQyxHQUFQLEVBQVk7SUFDWixJQUFJQSxHQUFHLENBQUNRLE9BQUosSUFBZVIsR0FBRyxDQUFDUSxPQUFKLENBQVlDLEtBQVosQ0FBa0IsaUJBQWxCLENBQW5CLEVBQXlEO01BR3ZEWCxPQUFPLEdBQUcsRUFBVjtJQUNELENBSkQsTUFJTztNQUNMLE1BQU1FLEdBQU47SUFDRDtFQUNGOztFQUVELElBQUlOLElBQUosRUFBVTtJQUNSLE9BQU9JLE9BQVA7RUFDRDs7RUFDRCxJQUFJTyxnQkFBRUMsT0FBRixDQUFVUixPQUFWLENBQUosRUFBd0I7SUFDdEIsTUFBTSxJQUFJRyxtQkFBT0csa0JBQVgsRUFBTjtFQUNEOztFQUNELE9BQU9OLE9BQVA7QUFDRCxDQXpERDs7QUEyREFZLE1BQU0sQ0FBQ0MsTUFBUCxDQUFjekIsVUFBZCxFQUEwQkQsT0FBMUI7ZUFFZUMsVSJ9
81
+ //# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliL2NvbW1hbmRzL2ZpbmQuanMiLCJuYW1lcyI6WyJoZWxwZXJzIiwiZXh0ZW5zaW9ucyIsImRvRmluZEVsZW1lbnRPckVscyIsInBhcmFtcyIsImJvb3RzdHJhcCIsInNlbmRBY3Rpb24iLCJmaW5kRWxPckVscyIsInN0cmF0ZWd5Iiwic2VsZWN0b3IiLCJtdWx0IiwiY29udGV4dCIsIkVycm9yIiwibXVsdGlwbGUiLCJlbGVtZW50IiwiZG9GaW5kIiwiZXJyIiwiaXNFcnJvclR5cGUiLCJlcnJvcnMiLCJQcm94eVJlcXVlc3RFcnJvciIsImdldEFjdHVhbEVycm9yIiwiTm9TdWNoRWxlbWVudEVycm9yIiwiXyIsImlzRW1wdHkiLCJpbXBsaWNpdFdhaXRGb3JDb25kaXRpb24iLCJtZXNzYWdlIiwibWF0Y2giLCJPYmplY3QiLCJhc3NpZ24iXSwic291cmNlUm9vdCI6Ii4uLy4uLy4uIiwic291cmNlcyI6WyJsaWIvY29tbWFuZHMvZmluZC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgZXJyb3JzLCBpc0Vycm9yVHlwZSB9IGZyb20gJ2FwcGl1bS9kcml2ZXInO1xuXG5cbmxldCBoZWxwZXJzID0ge30sIGV4dGVuc2lvbnMgPSB7fTtcblxuLyoqXG4gKiBSZWFzb24gZm9yIGlzb2xhdGluZyBkb0ZpbmRFbGVtZW50T3JFbHMgZnJvbSBmaW5kRWxPckVscyBpcyBmb3IgcmV1c2luZyBmaW5kRWxPckVsc1xuICogYWNyb3NzIGFuZHJvaWQtZHJpdmVycyAobGlrZSBhcHBpdW0tdWlhdXRvbWF0b3IyLWRyaXZlcikgdG8gYXZvaWQgY29kZSBkdXBsaWNhdGlvbi5cbiAqIE90aGVyIGFuZHJvaWQtZHJpdmVycyAobGlrZSBhcHBpdW0tdWlhdXRvbWF0b3IyLWRyaXZlcikgbmVlZCB0byBvdmVycmlkZSBkb0ZpbmRFbGVtZW50T3JFbHNcbiAqIHRvIGZhY2lsaXRhdGUgZmluZEVsT3JFbHMuXG4gKi9cbmhlbHBlcnMuZG9GaW5kRWxlbWVudE9yRWxzID0gYXN5bmMgZnVuY3Rpb24gZG9GaW5kRWxlbWVudE9yRWxzIChwYXJhbXMpIHtcbiAgcmV0dXJuIGF3YWl0IHRoaXMuYm9vdHN0cmFwLnNlbmRBY3Rpb24oJ2ZpbmQnLCBwYXJhbXMpO1xufTtcblxuLy8gc3RhdGVneTogbG9jYXRvciBzdHJhdGVneVxuLy8gc2VsZWN0b3I6IHRoZSBhY3R1YWwgc2VsZWN0b3IgZm9yIGZpbmRpbmcgYW4gZWxlbWVudFxuLy8gbXVsdDogbXVsdGlwbGUgZWxlbWVudHMgb3IganVzdCBvbmU/XG4vLyBjb250ZXh0OiBmaW5kaW5nIGFuIGVsZW1lbnQgZnJvbSB0aGUgcm9vdCBjb250ZXh0PyBvciBzdGFydGluZyBmcm9tIGFub3RoZXIgZWxlbWVudFxuaGVscGVycy5maW5kRWxPckVscyA9IGFzeW5jIGZ1bmN0aW9uIGZpbmRFbE9yRWxzIChzdHJhdGVneSwgc2VsZWN0b3IsIG11bHQsIGNvbnRleHQgPSAnJykge1xuICBpZiAoIXNlbGVjdG9yKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNdXN0IHByb3ZpZGUgYSBzZWxlY3RvciB3aGVuIGZpbmRpbmcgZWxlbWVudHMnKTtcbiAgfVxuXG4gIGxldCBwYXJhbXMgPSB7XG4gICAgc3RyYXRlZ3ksXG4gICAgc2VsZWN0b3IsXG4gICAgY29udGV4dCxcbiAgICBtdWx0aXBsZTogbXVsdFxuICB9O1xuXG4gIGxldCBlbGVtZW50O1xuICBsZXQgZG9GaW5kID0gYXN5bmMgKCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBlbGVtZW50ID0gYXdhaXQgdGhpcy5kb0ZpbmRFbGVtZW50T3JFbHMocGFyYW1zKTtcbiAgICB9IGNhdGNoIChlcnIpIHtcblxuICAgICAgLy8gaWYgdGhlIGVycm9yIHRoYXQgY29tZXMgYmFjayBpcyBmcm9tIGEgcHJveGllZCByZXF1ZXN0LCB3ZSBuZWVkIHRvXG4gICAgICAvLyB1bndyYXAgaXQgdG8gaXRzIGFjdHVhbCBwcm90b2NvbCBlcnJvciBmaXJzdFxuICAgICAgaWYgKGlzRXJyb3JUeXBlKGVyciwgZXJyb3JzLlByb3h5UmVxdWVzdEVycm9yKSkge1xuICAgICAgICBlcnIgPSBlcnIuZ2V0QWN0dWFsRXJyb3IoKTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBuby1leC1hc3NpZ25cbiAgICAgIH1cblxuICAgICAgLy8gbm93IHdlIGhhdmUgdG8gaW5zcGVjdCB0aGUgZXJyb3IgdG8gZGV0ZXJtaW5lIGlmIGl0IGlzIGEgbm8gc3VjaFxuICAgICAgLy8gZWxlbWVudCBlcnJvciwgYmFzZWQgb24gdGhlIHNoYXBlIG9mIHRoZSBlcnJvciBvYmplY3QgZnJvbVxuICAgICAgLy8gYXBwaXVtL2RyaXZlclxuICAgICAgaWYgKGlzRXJyb3JUeXBlKGVyciwgZXJyb3JzLk5vU3VjaEVsZW1lbnRFcnJvcikpIHtcbiAgICAgICAgLy8gd2UgYXJlIGZpbmUgd2l0aCB0aGlzLCBqdXN0IGluZGljYXRlIGEgcmV0cnlcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgdGhyb3cgZXJyO1xuICAgIH1cblxuICAgIC8vIHdlIHdhbnQgdG8gcmV0dXJuIGZhbHNlIGlmIHdlIHdhbnQgdG8gcG90ZW50aWFsbHkgdHJ5IGFnYWluXG4gICAgcmV0dXJuICFfLmlzRW1wdHkoZWxlbWVudCk7XG4gIH07XG5cbiAgdHJ5IHtcbiAgICBhd2FpdCB0aGlzLmltcGxpY2l0V2FpdEZvckNvbmRpdGlvbihkb0ZpbmQpO1xuICB9IGNhdGNoIChlcnIpIHtcbiAgICBpZiAoZXJyLm1lc3NhZ2UgJiYgZXJyLm1lc3NhZ2UubWF0Y2goL0NvbmRpdGlvbiB1bm1ldC8pKSB7XG4gICAgICAvLyBvbmx5IGdldCBoZXJlIGlmIHdlIGFyZSBsb29raW5nIGZvciBtdWx0aXBsZSBlbGVtZW50c1xuICAgICAgLy8gY29uZGl0aW9uIHdhcyBub3QgbWV0IHNldHRpbmcgcmVzIHRvIGVtcHR5IGFycmF5XG4gICAgICBlbGVtZW50ID0gW107XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IGVycjtcbiAgICB9XG4gIH1cblxuICBpZiAobXVsdCkge1xuICAgIHJldHVybiBlbGVtZW50O1xuICB9XG4gIGlmIChfLmlzRW1wdHkoZWxlbWVudCkpIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JzLk5vU3VjaEVsZW1lbnRFcnJvcigpO1xuICB9XG4gIHJldHVybiBlbGVtZW50O1xufTtcblxuT2JqZWN0LmFzc2lnbihleHRlbnNpb25zLCBoZWxwZXJzKTtcbmV4cG9ydCB7IGhlbHBlcnMgfTtcbmV4cG9ydCBkZWZhdWx0IGV4dGVuc2lvbnM7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBR0EsSUFBSUEsT0FBTyxHQUFHLEVBQWQ7QUFBQSxJQUFrQkMsVUFBVSxHQUFHLEVBQS9COzs7QUFRQUQsT0FBTyxDQUFDRSxrQkFBUixHQUE2QixlQUFlQSxrQkFBZixDQUFtQ0MsTUFBbkMsRUFBMkM7RUFDdEUsT0FBTyxNQUFNLEtBQUtDLFNBQUwsQ0FBZUMsVUFBZixDQUEwQixNQUExQixFQUFrQ0YsTUFBbEMsQ0FBYjtBQUNELENBRkQ7O0FBUUFILE9BQU8sQ0FBQ00sV0FBUixHQUFzQixlQUFlQSxXQUFmLENBQTRCQyxRQUE1QixFQUFzQ0MsUUFBdEMsRUFBZ0RDLElBQWhELEVBQXNEQyxPQUFPLEdBQUcsRUFBaEUsRUFBb0U7RUFDeEYsSUFBSSxDQUFDRixRQUFMLEVBQWU7SUFDYixNQUFNLElBQUlHLEtBQUosQ0FBVSwrQ0FBVixDQUFOO0VBQ0Q7O0VBRUQsSUFBSVIsTUFBTSxHQUFHO0lBQ1hJLFFBRFc7SUFFWEMsUUFGVztJQUdYRSxPQUhXO0lBSVhFLFFBQVEsRUFBRUg7RUFKQyxDQUFiO0VBT0EsSUFBSUksT0FBSjs7RUFDQSxJQUFJQyxNQUFNLEdBQUcsWUFBWTtJQUN2QixJQUFJO01BQ0ZELE9BQU8sR0FBRyxNQUFNLEtBQUtYLGtCQUFMLENBQXdCQyxNQUF4QixDQUFoQjtJQUNELENBRkQsQ0FFRSxPQUFPWSxHQUFQLEVBQVk7TUFJWixJQUFJLElBQUFDLG1CQUFBLEVBQVlELEdBQVosRUFBaUJFLGNBQUEsQ0FBT0MsaUJBQXhCLENBQUosRUFBZ0Q7UUFDOUNILEdBQUcsR0FBR0EsR0FBRyxDQUFDSSxjQUFKLEVBQU47TUFDRDs7TUFLRCxJQUFJLElBQUFILG1CQUFBLEVBQVlELEdBQVosRUFBaUJFLGNBQUEsQ0FBT0csa0JBQXhCLENBQUosRUFBaUQ7UUFFL0MsT0FBTyxLQUFQO01BQ0Q7O01BQ0QsTUFBTUwsR0FBTjtJQUNEOztJQUdELE9BQU8sQ0FBQ00sZUFBQSxDQUFFQyxPQUFGLENBQVVULE9BQVYsQ0FBUjtFQUNELENBdkJEOztFQXlCQSxJQUFJO0lBQ0YsTUFBTSxLQUFLVSx3QkFBTCxDQUE4QlQsTUFBOUIsQ0FBTjtFQUNELENBRkQsQ0FFRSxPQUFPQyxHQUFQLEVBQVk7SUFDWixJQUFJQSxHQUFHLENBQUNTLE9BQUosSUFBZVQsR0FBRyxDQUFDUyxPQUFKLENBQVlDLEtBQVosQ0FBa0IsaUJBQWxCLENBQW5CLEVBQXlEO01BR3ZEWixPQUFPLEdBQUcsRUFBVjtJQUNELENBSkQsTUFJTztNQUNMLE1BQU1FLEdBQU47SUFDRDtFQUNGOztFQUVELElBQUlOLElBQUosRUFBVTtJQUNSLE9BQU9JLE9BQVA7RUFDRDs7RUFDRCxJQUFJUSxlQUFBLENBQUVDLE9BQUYsQ0FBVVQsT0FBVixDQUFKLEVBQXdCO0lBQ3RCLE1BQU0sSUFBSUksY0FBQSxDQUFPRyxrQkFBWCxFQUFOO0VBQ0Q7O0VBQ0QsT0FBT1AsT0FBUDtBQUNELENBekREOztBQTJEQWEsTUFBTSxDQUFDQyxNQUFQLENBQWMxQixVQUFkLEVBQTBCRCxPQUExQjtlQUVlQyxVIn0=