@appium/base-driver 8.5.2 → 8.5.3

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 (66) hide show
  1. package/build/lib/basedriver/capabilities.js +1 -1
  2. package/build/lib/basedriver/commands/event.js +1 -1
  3. package/build/lib/basedriver/commands/find.js +1 -1
  4. package/build/lib/basedriver/commands/index.js +1 -1
  5. package/build/lib/basedriver/commands/log.js +1 -1
  6. package/build/lib/basedriver/commands/session.js +1 -1
  7. package/build/lib/basedriver/commands/settings.js +1 -1
  8. package/build/lib/basedriver/commands/timeout.js +1 -1
  9. package/build/lib/basedriver/core.js +1 -1
  10. package/build/lib/basedriver/desired-caps.js +1 -1
  11. package/build/lib/basedriver/device-settings.js +1 -1
  12. package/build/lib/basedriver/driver.js +1 -1
  13. package/build/lib/basedriver/helpers.js +1 -1
  14. package/build/lib/basedriver/logger.js +1 -1
  15. package/build/lib/constants.js +1 -1
  16. package/build/lib/express/crash.js +1 -1
  17. package/build/lib/express/express-logging.js +1 -1
  18. package/build/lib/express/idempotency.js +1 -1
  19. package/build/lib/express/logger.js +1 -1
  20. package/build/lib/express/middleware.js +1 -1
  21. package/build/lib/express/server.js +1 -1
  22. package/build/lib/express/static.js +1 -1
  23. package/build/lib/express/websocket.js +1 -1
  24. package/build/lib/helpers/capabilities.js +1 -1
  25. package/build/lib/index.js +1 -1
  26. package/build/lib/jsonwp-proxy/protocol-converter.js +1 -1
  27. package/build/lib/jsonwp-proxy/proxy.js +1 -1
  28. package/build/lib/jsonwp-status/status.js +1 -1
  29. package/build/lib/protocol/errors.js +1 -1
  30. package/build/lib/protocol/helpers.js +1 -1
  31. package/build/lib/protocol/index.js +1 -1
  32. package/build/lib/protocol/protocol.js +1 -1
  33. package/build/lib/protocol/routes.js +1 -1
  34. package/build/lib/protocol/validators.js +1 -1
  35. package/build/test/basedriver/driver-e2e-tests.js +1 -1
  36. package/build/test/basedriver/driver-tests.js +1 -1
  37. package/build/test/basedriver/index.js +1 -1
  38. package/build/test/e2e/basedriver/driver.e2e.spec.js +1 -1
  39. package/build/test/e2e/basedriver/helpers.e2e.spec.js +1 -1
  40. package/build/test/e2e/basedriver/websockets.e2e.spec.js +1 -1
  41. package/build/test/e2e/express/server.e2e.spec.js +1 -1
  42. package/build/test/e2e/jsonwp-proxy/proxy.e2e.spec.js +1 -1
  43. package/build/test/e2e/protocol/fake-driver.js +1 -1
  44. package/build/test/e2e/protocol/helpers.js +1 -1
  45. package/build/test/e2e/protocol/protocol.e2e.spec.js +1 -1
  46. package/build/test/helpers.js +1 -1
  47. package/build/test/unit/basedriver/capabilities.spec.js +1 -1
  48. package/build/test/unit/basedriver/capability.spec.js +1 -1
  49. package/build/test/unit/basedriver/commands/event.spec.js +1 -1
  50. package/build/test/unit/basedriver/commands/log.spec.js +1 -1
  51. package/build/test/unit/basedriver/device-settings.spec.js +1 -1
  52. package/build/test/unit/basedriver/driver.spec.js +1 -1
  53. package/build/test/unit/basedriver/helpers.spec.js +1 -1
  54. package/build/test/unit/basedriver/timeout.spec.js +1 -1
  55. package/build/test/unit/express/server.spec.js +1 -1
  56. package/build/test/unit/express/static.spec.js +1 -1
  57. package/build/test/unit/jsonwp-proxy/mock-request.js +1 -1
  58. package/build/test/unit/jsonwp-proxy/protocol-converter.spec.js +1 -1
  59. package/build/test/unit/jsonwp-proxy/proxy.spec.js +1 -1
  60. package/build/test/unit/jsonwp-proxy/url.spec.js +1 -1
  61. package/build/test/unit/jsonwp-status/status.spec.js +1 -1
  62. package/build/test/unit/protocol/errors.spec.js +1 -1
  63. package/build/test/unit/protocol/routes.spec.js +1 -1
  64. package/build/test/unit/protocol/validator.spec.js +1 -1
  65. package/build/tsconfig.tsbuildinfo +1 -1
  66. package/package.json +5 -8
@@ -255,4 +255,4 @@ function promoteAppiumOptions(originalCaps) {
255
255
  delete caps[APPIUM_OPTS_CAP];
256
256
  return caps;
257
257
  }
258
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9iYXNlZHJpdmVyL2NhcGFiaWxpdGllcy5qcyJdLCJuYW1lcyI6WyJBUFBJVU1fVkVORE9SX1BSRUZJWCIsIkFQUElVTV9PUFRTX0NBUCIsIlBSRUZJWEVEX0FQUElVTV9PUFRTX0NBUCIsIm1lcmdlQ2FwcyIsInByaW1hcnkiLCJzZWNvbmRhcnkiLCJyZXN1bHQiLCJPYmplY3QiLCJhc3NpZ24iLCJuYW1lIiwidmFsdWUiLCJfIiwidG9QYWlycyIsImlzVW5kZWZpbmVkIiwiZXJyb3JzIiwiSW52YWxpZEFyZ3VtZW50RXJyb3IiLCJKU09OIiwic3RyaW5naWZ5IiwidmFsaWRhdGVDYXBzIiwiY2FwcyIsImNvbnN0cmFpbnRzIiwib3B0cyIsInNraXBQcmVzZW5jZUNvbnN0cmFpbnQiLCJpc1BsYWluT2JqZWN0IiwiY2xvbmVEZWVwIiwia2V5Iiwia2V5cyIsInByZXNlbmNlIiwidmFsaWRhdGlvbkVycm9ycyIsInZhbGlkYXRvciIsInZhbGlkYXRlIiwicGlja0J5IiwidXRpbCIsImhhc1ZhbHVlIiwiZnVsbE1lc3NhZ2VzIiwibWVzc2FnZSIsImF0dHJpYnV0ZSIsInJlYXNvbnMiLCJyZWFzb24iLCJwdXNoIiwiam9pbiIsIlNUQU5EQVJEX0NBUFMiLCJpc1N0YW5kYXJkQ2FwIiwiY2FwIiwiZmluZCIsInN0YW5kYXJkQ2FwIiwidG9Mb3dlckNhc2UiLCJzdHJpcEFwcGl1bVByZWZpeGVzIiwicHJlZml4IiwicHJlZml4ZWRDYXBzIiwiZmlsdGVyIiwic3RhcnRzV2l0aCIsImJhZFByZWZpeGVkQ2FwcyIsInByZWZpeGVkQ2FwIiwic3RyaXBwZWRDYXBOYW1lIiwic3Vic3RyIiwibGVuZ3RoIiwiaXNOaWwiLCJsb2ciLCJ3YXJuIiwiZmluZE5vblByZWZpeGVkQ2FwcyIsImFsd2F5c01hdGNoIiwiZmlyc3RNYXRjaCIsImNoYWluIiwicmVkdWNlIiwidW5wcmVmaXhlZENhcHMiLCJpbmNsdWRlcyIsInVuaXEiLCJwYXJzZUNhcHMiLCJzaG91bGRWYWxpZGF0ZUNhcHMiLCJyZXF1aXJlZENhcHMiLCJhbGxGaXJzdE1hdGNoQ2FwcyIsImlzQXJyYXkiLCJub25QcmVmaXhlZENhcHMiLCJpc0VtcHR5IiwiZmlyc3RNYXRjaENhcHMiLCJmaWx0ZXJlZENvbnN0cmFpbnRzIiwicmVxdWlyZWRDYXBzS2V5cyIsInZhbGlkYXRlZEZpcnN0TWF0Y2hDYXBzIiwiY29tcGFjdCIsIm1hcCIsImUiLCJtYXRjaGVkQ2FwcyIsImVyciIsInByb2Nlc3NDYXBhYmlsaXRpZXMiLCJ3M2NDYXBzIiwicHJvbW90ZUFwcGl1bU9wdGlvbnMiLCJvcmlnaW5hbENhcHMiLCJhcHBpdW1PcHRpb25zIiwiU2Vzc2lvbk5vdENyZWF0ZWRFcnJvciIsIm92ZXJ3cml0dGVuS2V5cyIsImludGVyc2VjdGlvbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLE1BQU1BLG9CQUFvQixHQUFHLFNBQTdCOztBQUNBLE1BQU1DLGVBQWUsR0FBRyxTQUF4Qjs7QUFDQSxNQUFNQyx3QkFBd0IsR0FBSSxHQUFFRixvQkFBcUIsR0FBRUMsZUFBZ0IsRUFBM0U7OztBQVNBLFNBQVNFLFNBQVQsQ0FBb0JDLE9BQU8sR0FBRyxFQUE5QixFQUFrQ0MsU0FBUyxHQUFHLEVBQTlDLEVBQWtEO0FBQ2hELE1BQUlDLE1BQU0sR0FBR0MsTUFBTSxDQUFDQyxNQUFQLENBQWMsRUFBZCxFQUFrQkosT0FBbEIsQ0FBYjs7QUFFQSxPQUFLLElBQUksQ0FBQ0ssSUFBRCxFQUFPQyxLQUFQLENBQVQsSUFBMEJDLGdCQUFFQyxPQUFGLENBQVVQLFNBQVYsQ0FBMUIsRUFBZ0Q7QUFFOUMsUUFBSSxDQUFDTSxnQkFBRUUsV0FBRixDQUFjVCxPQUFPLENBQUNLLElBQUQsQ0FBckIsQ0FBTCxFQUFtQztBQUNqQyxZQUFNLElBQUlLLGVBQU9DLG9CQUFYLENBQWlDLGFBQVlOLElBQUssdUNBQXNDTyxJQUFJLENBQUNDLFNBQUwsQ0FB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YUQsU0FBU0ksb0JBQVQsQ0FBK0JDLFlBQS9CLEVBQTZDO0FBQzNDLFFBQU1DLGFBQWEsR0FBR0QsWUFBWSxDQUFDdEYsZUFBRCxDQUFsQzs7QUFDQSxNQUFJLENBQUN1RixhQUFMLEVBQW9CO0FBQ2xCLFdBQU9ELFlBQVA7QUFDRDs7QUFFRCxNQUFJcEUsSUFBSSxHQUFHUixnQkFBRWEsU0FBRixDQUFZK0QsWUFBWixDQUFYOztBQUNBLE1BQUksQ0FBQzVFLGdCQUFFWSxhQUFGLENBQWdCaUUsYUFBaEIsQ0FBTCxFQUFxQztBQUNuQyxVQUFNLElBQUkxRSxlQUFPMkUsc0JBQVgsQ0FBbUMsT0FBTXhGLGVBQWdCLCtCQUF6RCxDQUFOO0FBQ0Q7O0FBR0Q4QyxFQUFBQSxtQkFBbUIsQ0FBQ3lDLGFBQUQsQ0FBbkI7O0FBR0EsUUFBTUUsZUFBZSxHQUFHL0UsZ0JBQUVnRixZQUFGLENBQWVwRixNQUFNLENBQUNtQixJQUFQLENBQVlQLElBQVosQ0FBZixFQUFrQ1osTUFBTSxDQUFDbUIsSUFBUCxDQUFZOEQsYUFBWixDQUFsQyxDQUF4Qjs7QUFDQSxNQUFJRSxlQUFlLENBQUNsQyxNQUFoQixHQUF5QixDQUE3QixFQUFnQztBQUM5QkUsb0JBQUlDLElBQUosQ0FBVSw2QkFBNEJ6RCx3QkFBeUIsdUJBQXRELEdBQ0Msa0NBQWlDYyxJQUFJLENBQUNDLFNBQUwsQ0FBZXlFLGVBQWYsQ0FBZ0MsRUFEM0U7QUFFRDs7QUFHRHZFLEVBQUFBLElBQUksR0FBRyxFQUFDLEdBQUdBLElBQUo7QUFBVSxPQUFHcUU7QUFBYixHQUFQO0FBR0EsU0FBT3JFLElBQUksQ0FBQ2xCLGVBQUQsQ0FBWDtBQUNBLFNBQU9rQixJQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IHZhbGlkYXRvciB9IGZyb20gJy4vZGVzaXJlZC1jYXBzJztcbmltcG9ydCB7IHV0aWwgfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IGxvZyBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgeyBlcnJvcnMgfSBmcm9tICcuLi9wcm90b2NvbC9lcnJvcnMnO1xuXG5jb25zdCBBUFBJVU1fVkVORE9SX1BSRUZJWCA9ICdhcHBpdW06JztcbmNvbnN0IEFQUElVTV9PUFRTX0NBUCA9ICdvcHRpb25zJztcbmNvbnN0IFBSRUZJWEVEX0FQUElVTV9PUFRTX0NBUCA9IGAke0FQUElVTV9WRU5ET1JfUFJFRklYfSR7QVBQSVVNX09QVFNfQ0FQfWA7XG5cbi8vIFRha2VzIHByaW1hcnkgY2FwcyBvYmplY3QgYW5kIG1lcmdlcyBpdCBpbnRvIGEgc2Vjb25kYXJ5IGNhcHMgb2JqZWN0LlxuLy8gKHNlZSBodHRwczovL3d3dy53My5vcmcvVFIvd2ViZHJpdmVyLyNkZm4tbWVyZ2luZy1jYXBhYmlsaXRpZXMpXG4vKipcbiAqIEBwYXJhbSB7Q2FwYWJpbGl0aWVzfSBbcHJpbWFyeV1cbiAqIEBwYXJhbSB7Q2FwYWJpbGl0aWVzfSBbc2Vjb25kYXJ5XVxuICogQHJldHVybnMge0NhcGFiaWxpdGllc31cbiAqL1xuZnVuY3Rpb24gbWVyZ2VDYXBzIChwcmltYXJ5ID0ge30sIHNlY29uZGFyeSA9IHt9KSB7XG4gIGxldCByZXN1bHQgPSBPYmplY3QuYXNzaWduKHt9LCBwcmltYXJ5KTtcblxuICBmb3IgKGxldCBbbmFtZSwgdmFsdWVdIG9mIF8udG9QYWlycyhzZWNvbmRhcnkpKSB7XG4gICAgLy8gT3ZlcndyaXRpbmcgaXMgbm90IGFsbG93ZWQuIFByaW1hcnkgYW5kIHNlY29uZGFyeSBtdXN0IGhhdmUgZGlmZmVyZW50IHByb3BlcnRpZXMgKHczYyBydWxlIDQuNClcbiAgICBpZiAoIV8uaXNVbmRlZmluZWQocHJpbWFyeVtuYW1lXSkpIHtcbiAgICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZEFyZ3VtZW50RXJyb3IoYHByb3BlcnR5ICcke25hbWV9JyBzaG91bGQgbm90IGV4aXN0IG9uIGJvdGggcHJpbWFyeSAoJHtKU09OLnN0cmluZ2lmeShwcmltYXJ5KX0pIGFuZCBzZWNvbmRhcnkgKCR7SlNPTi5zdHJpbmdpZnkoc2Vjb25kYXJ5KX0pIG9iamVjdGApO1xuICAgIH1cbiAgICByZXN1bHRbbmFtZV0gPSB2YWx1ZTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8vIFZhbGlkYXRlcyBjYXBzIGFnYWluc3QgYSBzZXQgb2YgY29uc3RyYWludHNcbi8qKlxuICpcbiAqIEBwYXJhbSB7Q2FwYWJpbGl0aWVzfSBjYXBzXG4gKiBAcGFyYW0ge0NvbnN0cmFpbnRzfSBbY29uc3RyYWludHNdXG4gKiBAcGFyYW0ge1ZhbGlkYXRlQ2Fwc09wdHN9IFtvcHRzXVxuICogQHJldHVybnMge0NhcGFiaWxpdGllc31cbiAqL1xuZnVuY3Rpb24gdmFsaWRhdGVDYXBzIChjYXBzLCBjb25zdHJhaW50cyA9IHt9LCBvcHRzID0ge30pIHtcblxuICBsZXQge3NraXBQcmVzZW5jZUNvbnN0cmFpbnR9ID0gb3B0cztcblxuICBpZiAoIV8uaXNQbGFpbk9iamVjdChjYXBzKSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZEFyZ3VtZW50RXJyb3IoYG11c3QgYmUgYSBKU09OIG9iamVjdGApO1xuICB9XG5cbiAgY29uc3RyYWludHMgPSBfLmNsb25lRGVlcChjb25zdHJhaW50cyk7IC8vIERlZmVuc2l2ZSBjb3B5XG5cbiAgaWYgKHNraXBQcmVzZW5jZUNvbnN0cmFpbnQpIHtcbiAgICAvLyBSZW1vdmUgdGhlICdwcmVzZW5jZScgY29uc3RyYWludCBpZiB3ZSdyZSBub3QgY2hlY2tpbmcgZm9yIGl0XG4gICAgZm9yIChsZXQga2V5IG9mIF8ua2V5cyhjb25zdHJhaW50cykpIHtcbiAgICAgIGRlbGV0ZSBjb25zdHJhaW50c1trZXldLnByZXNlbmNlO1xuICAgIH1cbiAgfVxuXG4gIGxldCB2YWxpZGF0aW9uRXJyb3JzID0gdmFsaWRhdG9yLnZhbGlkYXRlKF8ucGlja0J5KGNhcHMsIHV0aWwuaGFzVmFsdWUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0cmFpbnRzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmdWxsTWVzc2FnZXM6IGZhbHNlfSk7XG5cbiAgaWYgKHZhbGlkYXRpb25FcnJvcnMpIHtcbiAgICBsZXQgbWVzc2FnZSA9IFtdO1xuICAgIGZvciAobGV0IFthdHRyaWJ1dGUsIHJlYXNvbnNdIG9mIF8udG9QYWlycyh2YWxpZGF0aW9uRXJyb3JzKSkge1xuICAgICAgZm9yIChsZXQgcmVhc29uIG9mIHJlYXNvbnMpIHtcbiAgICAgICAgbWVzc2FnZS5wdXNoKGAnJHthdHRyaWJ1dGV9JyAke3JlYXNvbn1gKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhyb3cgbmV3IGVycm9ycy5JbnZhbGlkQXJndW1lbnRFcnJvcihtZXNzYWdlLmpvaW4oJzsgJykpO1xuICB9XG5cbiAgLy8gUmV0dXJuIGNhcHNcbiAgcmV0dXJuIGNhcHM7XG59XG5cbi8vIFN0YW5kYXJkLCBub24tcHJlZml4ZWQgY2FwYWJpbGl0aWVzIChzZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmRyaXZlci8jZGZuLXRhYmxlLW9mLXN0YW5kYXJkLWNhcGFiaWxpdGllcylcbmNvbnN0IFNUQU5EQVJEX0NBUFMgPSBbXG4gICdicm93c2VyTmFtZScsXG4gICdicm93c2VyVmVyc2lvbicsXG4gICdwbGF0Zm9ybU5hbWUnLFxuICAnYWNjZXB0SW5zZWN1cmVDZXJ0cycsXG4gICdwYWdlTG9hZFN0cmF0ZWd5JyxcbiAgJ3Byb3h5JyxcbiAgJ3NldFdpbmRvd1JlY3QnLFxuICAndGltZW91dHMnLFxuICAndW5oYW5kbGVkUHJvbXB0QmVoYXZpb3InXG5dO1xuXG5mdW5jdGlvbiBpc1N0YW5kYXJkQ2FwIChjYXApIHtcbiAgcmV0dXJuICEhXy5maW5kKFNUQU5EQVJEX0NBUFMsIChzdGFuZGFyZENhcCkgPT4gc3RhbmRhcmRDYXAudG9Mb3dlckNhc2UoKSA9PT0gYCR7Y2FwfWAudG9Mb3dlckNhc2UoKSk7XG59XG5cbi8vIElmIHRoZSAnYXBwaXVtOicgcHJlZml4IHdhcyBwcm92aWRlZCBhbmQgaXQncyBhIHZhbGlkIGNhcGFiaWxpdHksIHN0cmlwIG91dCB0aGUgcHJlZml4IChzZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmRyaXZlci8jZGZuLWV4dGVuc2lvbi1jYXBhYmlsaXRpZXMpXG4vLyAoTk9URTogTWV0aG9kIGlzIGRlc3RydWN0aXZlIGFuZCBtdXRhdGVzIGNvbnRlbnRzIG9mIGNhcHMpXG5mdW5jdGlvbiBzdHJpcEFwcGl1bVByZWZpeGVzIChjYXBzKSB7XG4gIGNvbnN0IHByZWZpeCA9ICdhcHBpdW06JztcbiAgY29uc3QgcHJlZml4ZWRDYXBzID0gXy5maWx0ZXIoXy5rZXlzKGNhcHMpLCAoY2FwKSA9PiBgJHtjYXB9YC5zdGFydHNXaXRoKHByZWZpeCkpO1xuICBjb25zdCBiYWRQcmVmaXhlZENhcHMgPSBbXTtcblxuICAvLyBTdHJpcCBvdXQgdGhlICdhcHBpdW06JyBwcmVmaXhcbiAgZm9yIChsZXQgcHJlZml4ZWRDYXAgb2YgcHJlZml4ZWRDYXBzKSB7XG4gICAgY29uc3Qgc3RyaXBwZWRDYXBOYW1lID0gcHJlZml4ZWRDYXAuc3Vic3RyKHByZWZpeC5sZW5ndGgpO1xuXG4gICAgLy8gSWYgaXQncyBzdGFuZGFyZCBjYXBhYmlsaXR5IHRoYXQgd2FzIHByZWZpeGVkLCBhZGQgaXQgdG8gYW4gYXJyYXkgb2YgaW5jb3JyZWN0bHkgcHJlZml4ZWQgY2FwYWJpbGl0aWVzXG4gICAgaWYgKGlzU3RhbmRhcmRDYXAoc3RyaXBwZWRDYXBOYW1lKSkge1xuICAgICAgYmFkUHJlZml4ZWRDYXBzLnB1c2goc3RyaXBwZWRDYXBOYW1lKTtcbiAgICAgIGlmIChfLmlzTmlsKGNhcHNbc3RyaXBwZWRDYXBOYW1lXSkpIHtcbiAgICAgICAgY2Fwc1tzdHJpcHBlZENhcE5hbWVdID0gY2Fwc1twcmVmaXhlZENhcF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsb2cud2FybihgSWdub3JpbmcgY2FwYWJpbGl0eSAnJHtwcmVmaXhlZENhcH09JHtjYXBzW3ByZWZpeGVkQ2FwXX0nIGFuZCBgICtcbiAgICAgICAgICBgdXNpbmcgY2FwYWJpbGl0eSAnJHtzdHJpcHBlZENhcE5hbWV9PSR7Y2Fwc1tzdHJpcHBlZENhcE5hbWVdfSdgKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY2Fwc1tzdHJpcHBlZENhcE5hbWVdID0gY2Fwc1twcmVmaXhlZENhcF07XG4gICAgfVxuXG4gICAgLy8gU3RyaXAgb3V0IHRoZSBwcmVmaXhcbiAgICBkZWxldGUgY2Fwc1twcmVmaXhlZENhcF07XG4gIH1cblxuICAvLyBJZiB3ZSBmb3VuZCBzdGFuZGFyZCBjYXBzIHRoYXQgd2VyZSBpbmNvcnJlY3RseSBwcmVmaXhlZCwgdGhyb3cgYW4gZXhjZXB0aW9uIChlLmcuOiBkb24ndCBhY2NlcHQgJ2FwcGl1bTpwbGF0Zm9ybU5hbWUnLCBvbmx5IGFjY2VwdCBqdXN0ICdwbGF0Zm9ybU5hbWUnKVxuICBpZiAoYmFkUHJlZml4ZWRDYXBzLmxlbmd0aCA+IDApIHtcbiAgICBsb2cud2FybihgVGhlIGNhcGFiaWxpdGllcyAke0pTT04uc3RyaW5naWZ5KGJhZFByZWZpeGVkQ2Fwcyl9IGFyZSBzdGFuZGFyZCBjYXBhYmlsaXRpZXMgYW5kIGRvIG5vdCByZXF1aXJlIFwiYXBwaXVtOlwiIHByZWZpeGApO1xuICB9XG59XG5cbi8qKlxuICogR2V0IGFuIGFycmF5IG9mIGFsbCB0aGUgdW5wcmVmaXhlZCBjYXBzIHRoYXQgYXJlIGJlaW5nIHVzZWQgaW4gJ2Fsd2F5c01hdGNoJyBhbmQgYWxsIG9mIHRoZSAnZmlyc3RNYXRjaCcgb2JqZWN0XG4gKiBAcGFyYW0ge09iamVjdH0gY2FwcyBBIGNhcGFiaWxpdGllcyBvYmplY3RcbiAqL1xuZnVuY3Rpb24gZmluZE5vblByZWZpeGVkQ2FwcyAoe2Fsd2F5c01hdGNoID0ge30sIGZpcnN0TWF0Y2ggPSBbXX0pIHtcbiAgcmV0dXJuIF8uY2hhaW4oW2Fsd2F5c01hdGNoLCAuLi5maXJzdE1hdGNoXSlcbiAgICAucmVkdWNlKCh1bnByZWZpeGVkQ2FwcywgY2FwcykgPT4gW1xuICAgICAgLi4udW5wcmVmaXhlZENhcHMsXG4gICAgICAuLi5PYmplY3Qua2V5cyhjYXBzKS5maWx0ZXIoKGNhcCkgPT4gIWNhcC5pbmNsdWRlcygnOicpICYmICFpc1N0YW5kYXJkQ2FwKGNhcCkpLFxuICAgIF0sIFtdKVxuICAgIC51bmlxKClcbiAgICAudmFsdWUoKTtcbn1cblxuLy8gUGFyc2UgY2FwYWJpbGl0aWVzIChiYXNlZCBvbiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViZHJpdmVyLyNwcm9jZXNzaW5nLWNhcGFiaWxpdGllcylcbi8qKlxuICpcbiAqIEBwYXJhbSB7VzNDQ2FwYWJpbGl0aWVzfSBjYXBzXG4gKiBAcGFyYW0ge0NvbnN0cmFpbnRzfSBbY29uc3RyYWludHNdXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtzaG91bGRWYWxpZGF0ZUNhcHNdXG4gKiBAcmV0dXJuc1xuICovXG5mdW5jdGlvbiBwYXJzZUNhcHMgKGNhcHMsIGNvbnN0cmFpbnRzID0ge30sIHNob3VsZFZhbGlkYXRlQ2FwcyA9IHRydWUpIHtcbiAgLy8gSWYgY2FwYWJpbGl0aWVzIHJlcXVlc3QgaXMgbm90IGFuIG9iamVjdCwgcmV0dXJuIGVycm9yICgjMS4xKVxuICBpZiAoIV8uaXNQbGFpbk9iamVjdChjYXBzKSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZEFyZ3VtZW50RXJyb3IoJ1RoZSBjYXBhYmlsaXRpZXMgYXJndW1lbnQgd2FzIG5vdCB2YWxpZCBmb3IgdGhlIGZvbGxvd2luZyByZWFzb24ocyk6IFwiY2FwYWJpbGl0aWVzXCIgbXVzdCBiZSBhIEpTT04gb2JqZWN0LicpO1xuICB9XG5cbiAgLy8gTGV0ICdyZXF1aXJlZENhcHMnIGJlIHByb3BlcnR5IG5hbWVkICdhbHdheXNNYXRjaCcgZnJvbSBjYXBhYmlsaXRpZXMgcmVxdWVzdCAoIzIpXG4gIC8vIGFuZCAnYWxsRmlyc3RNYXRjaENhcHMnIGJlIHByb3BlcnR5IG5hbWVkICdmaXJzdE1hdGNoJyBmcm9tIGNhcGFiaWxpdGllcyByZXF1ZXN0ICgjMylcbiAgbGV0IHtcbiAgICBhbHdheXNNYXRjaDogcmVxdWlyZWRDYXBzID0ge30sIC8vIElmICdyZXF1aXJlZENhcHMnIGlzIHVuZGVmaW5lZCwgc2V0IGl0IHRvIGFuIGVtcHR5IEpTT04gb2JqZWN0ICgjMi4xKVxuICAgIGZpcnN0TWF0Y2g6IGFsbEZpcnN0TWF0Y2hDYXBzID0gW3t9XSwgLy8gSWYgJ2ZpcnN0TWF0Y2gnIGlzIHVuZGVmaW5lZCBzZXQgaXQgdG8gYSBzaW5nbGV0b24gbGlzdCB3aXRoIG9uZSBlbXB0eSBvYmplY3QgKCMzLjEpXG4gIH0gPSBjYXBzO1xuXG4gIC8vIFJlamVjdCAnZmlyc3RNYXRjaCcgYXJndW1lbnQgaWYgaXQncyBub3QgYW4gYXJyYXkgKCMzLjIpXG4gIGlmICghXy5pc0FycmF5KGFsbEZpcnN0TWF0Y2hDYXBzKSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZEFyZ3VtZW50RXJyb3IoJ1RoZSBjYXBhYmlsaXRpZXMuZmlyc3RNYXRjaCBhcmd1bWVudCB3YXMgbm90IHZhbGlkIGZvciB0aGUgZm9sbG93aW5nIHJlYXNvbihzKTogXCJjYXBhYmlsaXRpZXMuZmlyc3RNYXRjaFwiIG11c3QgYmUgYSBKU09OIGFycmF5IG9yIHVuZGVmaW5lZCcpO1xuICB9XG5cbiAgLy8gSWYgYW4gZW1wdHkgYXJyYXkgYXMgcHJvdmlkZWQsIHdlJ2xsIGJlIGZvcmdpdmluZyBhbmQgbWFrZSBpdCBhbiBhcnJheSBvZiBvbmUgZW1wdHkgb2JqZWN0XG4gIC8vIEluIHRoZSBmdXR1cmUsIHJlamVjdCAnZmlyc3RNYXRjaCcgYXJndW1lbnQgaWYgaXRzIGFycmF5IGRpZCBub3QgaGF2ZSBvbmUgb3IgbW9yZSBlbnRyaWVzICgjMy4yKVxuICBpZiAoYWxsRmlyc3RNYXRjaENhcHMubGVuZ3RoID09PSAwKSB7XG4gICAgbG9nLndhcm4oYFRoZSBmaXJzdE1hdGNoIGFycmF5IGluIHRoZSBnaXZlbiBjYXBhYmlsaXRpZXMgaGFzIG5vIGVudHJpZXMuIEFkZGluZyBhbiBlbXB0eSBlbnRyeSBmbyBybm93LCBgICtcbiAgICAgIGBidXQgaXQgd2lsbCByZXF1aXJlIG9uZSBvciBtb3JlIGVudHJpZXMgYXMgVzNDIHNwZWMuYCk7XG4gICAgYWxsRmlyc3RNYXRjaENhcHMucHVzaCh7fSk7XG4gIH1cblxuICAvLyBDaGVjayBmb3Igbm9uLXByZWZpeGVkLCBub24tc3RhbmRhcmQgY2FwYWJpbGl0aWVzIGFuZCBsb2cgd2FybmluZ3MgaWYgdGhleSBhcmUgZm91bmRcbiAgbGV0IG5vblByZWZpeGVkQ2FwcyA9IGZpbmROb25QcmVmaXhlZENhcHMoY2Fwcyk7XG4gIGlmICghXy5pc0VtcHR5KG5vblByZWZpeGVkQ2FwcykpIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JzLkludmFsaWRBcmd1bWVudEVycm9yKGBBbGwgbm9uLXN0YW5kYXJkIGNhcGFiaWxpdGllcyBzaG91bGQgaGF2ZSBhIHZlbmRvciBwcmVmaXguIFRoZSBmb2xsb3dpbmcgY2FwYWJpbGl0aWVzIGRpZCBub3QgaGF2ZSBvbmU6ICR7bm9uUHJlZml4ZWRDYXBzfWApO1xuICB9XG5cbiAgLy8gU3RyaXAgb3V0IHRoZSAnYXBwaXVtOicgcHJlZml4IGZyb20gYWxsXG4gIHN0cmlwQXBwaXVtUHJlZml4ZXMocmVxdWlyZWRDYXBzKTtcbiAgZm9yIChsZXQgZmlyc3RNYXRjaENhcHMgb2YgYWxsRmlyc3RNYXRjaENhcHMpIHtcbiAgICBzdHJpcEFwcGl1bVByZWZpeGVzKGZpcnN0TWF0Y2hDYXBzKTtcbiAgfVxuXG4gIC8vIFZhbGlkYXRlIHRoZSByZXF1aXJlZENhcHMuIEJ1dCBkb24ndCB2YWxpZGF0ZSAncHJlc2VuY2UnIGJlY2F1c2UgaWYgdGhhdCBjb25zdHJhaW50IGZhaWxzIG9uICdhbHdheXNNYXRjaCcgaXQgY291bGQgc3RpbGwgcGFzcyBvbiBvbmUgb2YgdGhlICdmaXJzdE1hdGNoJyBrZXlzXG4gIGlmIChzaG91bGRWYWxpZGF0ZUNhcHMpIHtcbiAgICByZXF1aXJlZENhcHMgPSB2YWxpZGF0ZUNhcHMocmVxdWlyZWRDYXBzLCBjb25zdHJhaW50cywge3NraXBQcmVzZW5jZUNvbnN0cmFpbnQ6IHRydWV9KTtcbiAgfVxuXG5cbiAgLy8gUmVtb3ZlIHRoZSAncHJlc2VuY2UnIGNvbnN0cmFpbnQgZm9yIGFueSBrZXlzIHRoYXQgYXJlIGFscmVhZHkgcHJlc2VudCBpbiAncmVxdWlyZWRDYXBzJ1xuICAvLyBzaW5jZSB3ZSBrbm93IHRoYXQgdGhpcyBjb25zdHJhaW50IGhhcyBhbHJlYWR5IHBhc3NlZFxuICBsZXQgZmlsdGVyZWRDb25zdHJhaW50cyA9IHsuLi5jb25zdHJhaW50c307XG4gIGxldCByZXF1aXJlZENhcHNLZXlzID0gXy5rZXlzKHJlcXVpcmVkQ2Fwcyk7XG4gIGZvciAobGV0IGtleSBvZiBfLmtleXMoZmlsdGVyZWRDb25zdHJhaW50cykpIHtcbiAgICBpZiAocmVxdWlyZWRDYXBzS2V5cy5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICBkZWxldGUgZmlsdGVyZWRDb25zdHJhaW50c1trZXldO1xuICAgIH1cbiAgfVxuXG4gIC8vIFZhbGlkYXRlIGFsbCBvZiB0aGUgZmlyc3QgbWF0Y2ggY2FwYWJpbGl0aWVzIGFuZCByZXR1cm4gYW4gYXJyYXkgd2l0aCBvbmx5IHRoZSB2YWxpZCBjYXBzIChzZWUgc3BlYyAjNSlcbiAgbGV0IHZhbGlkYXRpb25FcnJvcnMgPSBbXTtcbiAgLyoqIEB0eXBlIHtDYXBhYmlsaXRpZXNbXX0gKi9cbiAgbGV0IHZhbGlkYXRlZEZpcnN0TWF0Y2hDYXBzID0gXy5jb21wYWN0KGFsbEZpcnN0TWF0Y2hDYXBzLm1hcCgoZmlyc3RNYXRjaENhcHMpID0+IHtcbiAgICB0cnkge1xuICAgICAgLy8gVmFsaWRhdGUgZmlyc3RNYXRjaCBjYXBzXG4gICAgICByZXR1cm4gc2hvdWxkVmFsaWRhdGVDYXBzID8gdmFsaWRhdGVDYXBzKGZpcnN0TWF0Y2hDYXBzLCBmaWx0ZXJlZENvbnN0cmFpbnRzKSA6IGZpcnN0TWF0Y2hDYXBzO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHZhbGlkYXRpb25FcnJvcnMucHVzaChlLm1lc3NhZ2UpO1xuICAgIH1cbiAgfSkpO1xuXG4gIC8vIFRyeSB0byBtZXJnZSByZXF1aXJlZENhcHMgd2l0aCBmaXJzdCBtYXRjaCBjYXBhYmlsaXRpZXMsIGJyZWFrIG9uY2UgaXQgZmluZHMgaXRzIGZpcnN0IG1hdGNoIChzZWUgc3BlYyAjNilcbiAgbGV0IG1hdGNoZWRDYXBzID0gbnVsbDtcbiAgZm9yIChsZXQgZmlyc3RNYXRjaENhcHMgb2YgdmFsaWRhdGVkRmlyc3RNYXRjaENhcHMpIHtcbiAgICB0cnkge1xuICAgICAgbWF0Y2hlZENhcHMgPSBtZXJnZUNhcHMocmVxdWlyZWRDYXBzLCBmaXJzdE1hdGNoQ2Fwcyk7XG4gICAgICBpZiAobWF0Y2hlZENhcHMpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBsb2cud2FybihlcnIubWVzc2FnZSk7XG4gICAgICB2YWxpZGF0aW9uRXJyb3JzLnB1c2goZXJyLm1lc3NhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJldHVybnMgdmFyaWFibGVzIGZvciB0ZXN0aW5nIHB1cnBvc2VzXG4gIHJldHVybiB7cmVxdWlyZWRDYXBzLCBhbGxGaXJzdE1hdGNoQ2FwcywgdmFsaWRhdGVkRmlyc3RNYXRjaENhcHMsIG1hdGNoZWRDYXBzLCB2YWxpZGF0aW9uRXJyb3JzfTtcbn1cblxuLy8gQ2FsbHMgcGFyc2VDYXBzIGFuZCBqdXN0IHJldHVybnMgdGhlIG1hdGNoZWRDYXBzIHZhcmlhYmxlXG4vKipcbiAqXG4gKiBAcGFyYW0ge1czQ0NhcGFiaWxpdGllc30gdzNjQ2Fwc1xuICogQHBhcmFtIHtDb25zdHJhaW50c30gW2NvbnN0cmFpbnRzXVxuICogQHBhcmFtIHtib29sZWFufSBbc2hvdWxkVmFsaWRhdGVDYXBzXVxuICogQHJldHVybnMge0NhcGFiaWxpdGllc31cbiAqL1xuZnVuY3Rpb24gcHJvY2Vzc0NhcGFiaWxpdGllcyAodzNjQ2FwcywgY29uc3RyYWludHMgPSB7fSwgc2hvdWxkVmFsaWRhdGVDYXBzID0gdHJ1ZSkge1xuICBjb25zdCB7bWF0Y2hlZENhcHMsIHZhbGlkYXRpb25FcnJvcnN9ID0gcGFyc2VDYXBzKHczY0NhcHMsIGNvbnN0cmFpbnRzLCBzaG91bGRWYWxpZGF0ZUNhcHMpO1xuXG4gIC8vIElmIHdlIGZvdW5kIGFuIGVycm9yIHRocm93IGFuIGV4Y2VwdGlvblxuICBpZiAoIXV0aWwuaGFzVmFsdWUobWF0Y2hlZENhcHMpKSB7XG4gICAgaWYgKF8uaXNBcnJheSh3M2NDYXBzLmZpcnN0TWF0Y2gpICYmIHczY0NhcHMuZmlyc3RNYXRjaC5sZW5ndGggPiAxKSB7XG4gICAgICAvLyBJZiB0aGVyZSB3YXMgbW9yZSB0aGFuIG9uZSAnZmlyc3RNYXRjaCcgY2FwLCBpbmRpY2F0ZSB0aGF0IHdlIGNvdWxkbid0IGZpbmQgYSBtYXRjaGluZyBjYXBhYmlsaXRpZXMgc2V0IGFuZCBzaG93IGFsbCB0aGUgZXJyb3JzXG4gICAgICB0aHJvdyBuZXcgZXJyb3JzLkludmFsaWRBcmd1bWVudEVycm9yKGBDb3VsZCBub3QgZmluZCBtYXRjaGluZyBjYXBhYmlsaXRpZXMgZnJvbSAke0pTT04uc3RyaW5naWZ5KHczY0NhcHMpfTpcXG4gJHt2YWxpZGF0aW9uRXJyb3JzLmpvaW4oJ1xcbicpfWApO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBPdGhlcndpc2UsIGp1c3Qgc2hvdyB0aGUgc2luZ3VsYXIgZXJyb3IgbWVzc2FnZVxuICAgICAgdGhyb3cgbmV3IGVycm9ycy5JbnZhbGlkQXJndW1lbnRFcnJvcih2YWxpZGF0aW9uRXJyb3JzWzBdKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbWF0Y2hlZENhcHMgPz8ge307XG59XG5cbi8qKlxuICogUmV0dXJuIGEgY29weSBvZiBhIGNhcGFiaWxpdGllcyBvYmplY3Qgd2hpY2ggaGFzIHRha2VuIGV2ZXJ5dGhpbmcgd2l0aGluIHRoZSAnb3B0aW9ucydcbiAqIGNhcGFiaWxpdHkgYW5kIHByb21vdGVkIGl0IHRvIHRoZSB0b3AgbGV2ZWwuIE5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIGlzIGFzc3VtZWQgdG8gYmUgcnVuIGFmdGVyXG4gKiBhbGwgdmVuZG9yIHByZWZpeGVzIGhhdmUgYWxyZWFkeSBiZWVuIHN0cmlwcGVkIGZyb20gdGhlIHRvcCBsZXZlbC4gU28gd2UgYXJlIGRlYWxpbmcgd2l0aCBlLmcuXG4gKiAnb3B0aW9ucycgYW5kIG5vdCAnYXBwaXVtOm9wdGlvbnMnIGF0IHRoaXMgcG9pbnQuIEFueSBwcmVmaXhlcyBfaW5zaWRlXyB0aGUgJ29wdGlvbnMnIGNhcGFiaWxpdHlcbiAqIHdpbGwgdGhlbXNlbHZlcyBiZSBzdHJpcHBlZC4gVGhpcyBpcyBkZXNpZ25lZCBhcyBhbiBpbnRlcm5hbCBmdW5jdGlvbiwgbm90IG9uZSB0byBvcGVyYXRlIG9uXG4gKiB1c2VyLWNvbnN0cnVjdGVkIGNhcGFiaWxpdGllcy5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gb3JpZ2luYWxDYXBzIC0gdGhlIGNhcGFiaWxpdGllcyB0byBhbmFseXplIGFuZCBwcm9tb3RlIGZyb20gJ29wdGlvbnMnXG4gKiBAcmV0dXJuIHtvYmplY3QhfSAtIHRoZSBjYXBhYmlsaXRpZXMgd2l0aCAnb3B0aW9ucycgcHJvbW90ZWQgaWYgbmVjZXNzYXJ5XG4gKi9cbmZ1bmN0aW9uIHByb21vdGVBcHBpdW1PcHRpb25zIChvcmlnaW5hbENhcHMpIHtcbiAgY29uc3QgYXBwaXVtT3B0aW9ucyA9IG9yaWdpbmFsQ2Fwc1tBUFBJVU1fT1BUU19DQVBdO1xuICBpZiAoIWFwcGl1bU9wdGlvbnMpIHtcbiAgICByZXR1cm4gb3JpZ2luYWxDYXBzO1xuICB9XG5cbiAgbGV0IGNhcHMgPSBfLmNsb25lRGVlcChvcmlnaW5hbENhcHMpO1xuICBpZiAoIV8uaXNQbGFpbk9iamVjdChhcHBpdW1PcHRpb25zKSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuU2Vzc2lvbk5vdENyZWF0ZWRFcnJvcihgVGhlICR7QVBQSVVNX09QVFNfQ0FQfSBjYXBhYmlsaXR5IG11c3QgYmUgYW4gb2JqZWN0YCk7XG4gIH1cblxuICAvLyBmaXJzdCBnZXQgcmlkIG9mIGFueSBwcmVmaXhlcyBpbnNpZGUgYXBwaXVtOm9wdGlvbnNcbiAgc3RyaXBBcHBpdW1QcmVmaXhlcyhhcHBpdW1PcHRpb25zKTtcblxuICAvLyB3YXJuIGlmIHdlIGFyZSBnb2luZyB0byBvdmVyd3JpdGUgYW55IGtleXMgb24gdGhlIGJhc2UgY2FwcyBvYmplY3RcbiAgY29uc3Qgb3ZlcndyaXR0ZW5LZXlzID0gXy5pbnRlcnNlY3Rpb24oT2JqZWN0LmtleXMoY2FwcyksIE9iamVjdC5rZXlzKGFwcGl1bU9wdGlvbnMpKTtcbiAgaWYgKG92ZXJ3cml0dGVuS2V5cy5sZW5ndGggPiAwKSB7XG4gICAgbG9nLndhcm4oYEZvdW5kIGNhcGFiaWxpdGllcyBpbnNpZGUgJHtQUkVGSVhFRF9BUFBJVU1fT1BUU19DQVB9IHRoYXQgd2lsbCBvdmVyd3JpdGUgYCArXG4gICAgICAgICAgICAgYGNhcGFiaWxpdGllcyBhdCB0aGUgdG9wIGxldmVsOiAke0pTT04uc3RyaW5naWZ5KG92ZXJ3cml0dGVuS2V5cyl9YCk7XG4gIH1cblxuICAvLyBub3cganVzdCBhcHBseSB0aGVtIHRvIHRoZSBtYWluIGNhcHMgb2JqZWN0XG4gIGNhcHMgPSB7Li4uY2FwcywgLi4uYXBwaXVtT3B0aW9uc307XG5cbiAgLy8gYW5kIHJlbW92ZSBhbGwgdHJhY2VzIG9mIHRoZSBvcHRpb25zIGNhcFxuICBkZWxldGUgY2Fwc1tBUFBJVU1fT1BUU19DQVBdO1xuICByZXR1cm4gY2Fwcztcbn1cblxuXG5leHBvcnQge1xuICBwYXJzZUNhcHMsIHByb2Nlc3NDYXBhYmlsaXRpZXMsIHZhbGlkYXRlQ2FwcywgbWVyZ2VDYXBzLCBBUFBJVU1fVkVORE9SX1BSRUZJWCwgQVBQSVVNX09QVFNfQ0FQLFxuICBmaW5kTm9uUHJlZml4ZWRDYXBzLCBpc1N0YW5kYXJkQ2FwLCBzdHJpcEFwcGl1bVByZWZpeGVzLCBwcm9tb3RlQXBwaXVtT3B0aW9ucywgUFJFRklYRURfQVBQSVVNX09QVFNfQ0FQLFxufTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuVzNDQ2FwYWJpbGl0aWVzfSBXM0NDYXBhYmlsaXRpZXNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5Db25zdHJhaW50c30gQ29uc3RyYWludHNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5DYXBhYmlsaXRpZXN9IENhcGFiaWxpdGllc1xuICovXG5cbi8qKlxuICogQHR5cGVkZWYgVmFsaWRhdGVDYXBzT3B0c1xuICogQHByb3BlcnR5IHtib29sZWFufSBbc2tpcFByZXNlbmNlQ29uc3RyYWludF0gLSBpZiB0cnVlLCBza2lwIHRoZSBwcmVzZW5jZSBjb25zdHJhaW50XG4gKi9cbiJdfQ==
258
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJBUFBJVU1fVkVORE9SX1BSRUZJWCIsIkFQUElVTV9PUFRTX0NBUCIsIlBSRUZJWEVEX0FQUElVTV9PUFRTX0NBUCIsIm1lcmdlQ2FwcyIsInByaW1hcnkiLCJzZWNvbmRhcnkiLCJyZXN1bHQiLCJPYmplY3QiLCJhc3NpZ24iLCJuYW1lIiwidmFsdWUiLCJfIiwidG9QYWlycyIsImlzVW5kZWZpbmVkIiwiZXJyb3JzIiwiSW52YWxpZEFyZ3VtZW50RXJyb3IiLCJKU09OIiwic3RyaW5naWZ5IiwidmFsaWRhdGVDYXBzIiwiY2FwcyIsImNvbnN0cmFpbnRzIiwib3B0cyIsInNraXBQcmVzZW5jZUNvbnN0cmFpbnQiLCJpc1BsYWluT2JqZWN0IiwiY2xvbmVEZWVwIiwia2V5Iiwia2V5cyIsInByZXNlbmNlIiwidmFsaWRhdGlvbkVycm9ycyIsInZhbGlkYXRvciIsInZhbGlkYXRlIiwicGlja0J5IiwidXRpbCIsImhhc1ZhbHVlIiwiZnVsbE1lc3NhZ2VzIiwibWVzc2FnZSIsImF0dHJpYnV0ZSIsInJlYXNvbnMiLCJyZWFzb24iLCJwdXNoIiwiam9pbiIsIlNUQU5EQVJEX0NBUFMiLCJpc1N0YW5kYXJkQ2FwIiwiY2FwIiwiZmluZCIsInN0YW5kYXJkQ2FwIiwidG9Mb3dlckNhc2UiLCJzdHJpcEFwcGl1bVByZWZpeGVzIiwicHJlZml4IiwicHJlZml4ZWRDYXBzIiwiZmlsdGVyIiwic3RhcnRzV2l0aCIsImJhZFByZWZpeGVkQ2FwcyIsInByZWZpeGVkQ2FwIiwic3RyaXBwZWRDYXBOYW1lIiwic3Vic3RyIiwibGVuZ3RoIiwiaXNOaWwiLCJsb2ciLCJ3YXJuIiwiZmluZE5vblByZWZpeGVkQ2FwcyIsImFsd2F5c01hdGNoIiwiZmlyc3RNYXRjaCIsImNoYWluIiwicmVkdWNlIiwidW5wcmVmaXhlZENhcHMiLCJpbmNsdWRlcyIsInVuaXEiLCJwYXJzZUNhcHMiLCJzaG91bGRWYWxpZGF0ZUNhcHMiLCJyZXF1aXJlZENhcHMiLCJhbGxGaXJzdE1hdGNoQ2FwcyIsImlzQXJyYXkiLCJub25QcmVmaXhlZENhcHMiLCJpc0VtcHR5IiwiZmlyc3RNYXRjaENhcHMiLCJmaWx0ZXJlZENvbnN0cmFpbnRzIiwicmVxdWlyZWRDYXBzS2V5cyIsInZhbGlkYXRlZEZpcnN0TWF0Y2hDYXBzIiwiY29tcGFjdCIsIm1hcCIsImUiLCJtYXRjaGVkQ2FwcyIsImVyciIsInByb2Nlc3NDYXBhYmlsaXRpZXMiLCJ3M2NDYXBzIiwicHJvbW90ZUFwcGl1bU9wdGlvbnMiLCJvcmlnaW5hbENhcHMiLCJhcHBpdW1PcHRpb25zIiwiU2Vzc2lvbk5vdENyZWF0ZWRFcnJvciIsIm92ZXJ3cml0dGVuS2V5cyIsImludGVyc2VjdGlvbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9iYXNlZHJpdmVyL2NhcGFiaWxpdGllcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IHZhbGlkYXRvciB9IGZyb20gJy4vZGVzaXJlZC1jYXBzJztcbmltcG9ydCB7IHV0aWwgfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IGxvZyBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgeyBlcnJvcnMgfSBmcm9tICcuLi9wcm90b2NvbC9lcnJvcnMnO1xuXG5jb25zdCBBUFBJVU1fVkVORE9SX1BSRUZJWCA9ICdhcHBpdW06JztcbmNvbnN0IEFQUElVTV9PUFRTX0NBUCA9ICdvcHRpb25zJztcbmNvbnN0IFBSRUZJWEVEX0FQUElVTV9PUFRTX0NBUCA9IGAke0FQUElVTV9WRU5ET1JfUFJFRklYfSR7QVBQSVVNX09QVFNfQ0FQfWA7XG5cbi8vIFRha2VzIHByaW1hcnkgY2FwcyBvYmplY3QgYW5kIG1lcmdlcyBpdCBpbnRvIGEgc2Vjb25kYXJ5IGNhcHMgb2JqZWN0LlxuLy8gKHNlZSBodHRwczovL3d3dy53My5vcmcvVFIvd2ViZHJpdmVyLyNkZm4tbWVyZ2luZy1jYXBhYmlsaXRpZXMpXG4vKipcbiAqIEBwYXJhbSB7Q2FwYWJpbGl0aWVzfSBbcHJpbWFyeV1cbiAqIEBwYXJhbSB7Q2FwYWJpbGl0aWVzfSBbc2Vjb25kYXJ5XVxuICogQHJldHVybnMge0NhcGFiaWxpdGllc31cbiAqL1xuZnVuY3Rpb24gbWVyZ2VDYXBzIChwcmltYXJ5ID0ge30sIHNlY29uZGFyeSA9IHt9KSB7XG4gIGxldCByZXN1bHQgPSBPYmplY3QuYXNzaWduKHt9LCBwcmltYXJ5KTtcblxuICBmb3IgKGxldCBbbmFtZSwgdmFsdWVdIG9mIF8udG9QYWlycyhzZWNvbmRhcnkpKSB7XG4gICAgLy8gT3ZlcndyaXRpbmcgaXMgbm90IGFsbG93ZWQuIFByaW1hcnkgYW5kIHNlY29uZGFyeSBtdXN0IGhhdmUgZGlmZmVyZW50IHByb3BlcnRpZXMgKHczYyBydWxlIDQuNClcbiAgICBpZiAoIV8uaXNVbmRlZmluZWQocHJpbWFyeVtuYW1lXSkpIHtcbiAgICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZEFyZ3VtZW50RXJyb3IoYHByb3BlcnR5ICcke25hbWV9JyBzaG91bGQgbm90IGV4aXN0IG9uIGJvdGggcHJpbWFyeSAoJHtKU09OLnN0cmluZ2lmeShwcmltYXJ5KX0pIGFuZCBzZWNvbmRhcnkgKCR7SlNPTi5zdHJpbmdpZnkoc2Vjb25kYXJ5KX0pIG9iamVjdGApO1xuICAgIH1cbiAgICByZXN1bHRbbmFtZV0gPSB2YWx1ZTtcbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8vIFZhbGlkYXRlcyBjYXBzIGFnYWluc3QgYSBzZXQgb2YgY29uc3RyYWludHNcbi8qKlxuICpcbiAqIEBwYXJhbSB7Q2FwYWJpbGl0aWVzfSBjYXBzXG4gKiBAcGFyYW0ge0NvbnN0cmFpbnRzfSBbY29uc3RyYWludHNdXG4gKiBAcGFyYW0ge1ZhbGlkYXRlQ2Fwc09wdHN9IFtvcHRzXVxuICogQHJldHVybnMge0NhcGFiaWxpdGllc31cbiAqL1xuZnVuY3Rpb24gdmFsaWRhdGVDYXBzIChjYXBzLCBjb25zdHJhaW50cyA9IHt9LCBvcHRzID0ge30pIHtcblxuICBsZXQge3NraXBQcmVzZW5jZUNvbnN0cmFpbnR9ID0gb3B0cztcblxuICBpZiAoIV8uaXNQbGFpbk9iamVjdChjYXBzKSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZEFyZ3VtZW50RXJyb3IoYG11c3QgYmUgYSBKU09OIG9iamVjdGApO1xuICB9XG5cbiAgY29uc3RyYWludHMgPSBfLmNsb25lRGVlcChjb25zdHJhaW50cyk7IC8vIERlZmVuc2l2ZSBjb3B5XG5cbiAgaWYgKHNraXBQcmVzZW5jZUNvbnN0cmFpbnQpIHtcbiAgICAvLyBSZW1vdmUgdGhlICdwcmVzZW5jZScgY29uc3RyYWludCBpZiB3ZSdyZSBub3QgY2hlY2tpbmcgZm9yIGl0XG4gICAgZm9yIChsZXQga2V5IG9mIF8ua2V5cyhjb25zdHJhaW50cykpIHtcbiAgICAgIGRlbGV0ZSBjb25zdHJhaW50c1trZXldLnByZXNlbmNlO1xuICAgIH1cbiAgfVxuXG4gIGxldCB2YWxpZGF0aW9uRXJyb3JzID0gdmFsaWRhdG9yLnZhbGlkYXRlKF8ucGlja0J5KGNhcHMsIHV0aWwuaGFzVmFsdWUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0cmFpbnRzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtmdWxsTWVzc2FnZXM6IGZhbHNlfSk7XG5cbiAgaWYgKHZhbGlkYXRpb25FcnJvcnMpIHtcbiAgICBsZXQgbWVzc2FnZSA9IFtdO1xuICAgIGZvciAobGV0IFthdHRyaWJ1dGUsIHJlYXNvbnNdIG9mIF8udG9QYWlycyh2YWxpZGF0aW9uRXJyb3JzKSkge1xuICAgICAgZm9yIChsZXQgcmVhc29uIG9mIHJlYXNvbnMpIHtcbiAgICAgICAgbWVzc2FnZS5wdXNoKGAnJHthdHRyaWJ1dGV9JyAke3JlYXNvbn1gKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhyb3cgbmV3IGVycm9ycy5JbnZhbGlkQXJndW1lbnRFcnJvcihtZXNzYWdlLmpvaW4oJzsgJykpO1xuICB9XG5cbiAgLy8gUmV0dXJuIGNhcHNcbiAgcmV0dXJuIGNhcHM7XG59XG5cbi8vIFN0YW5kYXJkLCBub24tcHJlZml4ZWQgY2FwYWJpbGl0aWVzIChzZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmRyaXZlci8jZGZuLXRhYmxlLW9mLXN0YW5kYXJkLWNhcGFiaWxpdGllcylcbmNvbnN0IFNUQU5EQVJEX0NBUFMgPSBbXG4gICdicm93c2VyTmFtZScsXG4gICdicm93c2VyVmVyc2lvbicsXG4gICdwbGF0Zm9ybU5hbWUnLFxuICAnYWNjZXB0SW5zZWN1cmVDZXJ0cycsXG4gICdwYWdlTG9hZFN0cmF0ZWd5JyxcbiAgJ3Byb3h5JyxcbiAgJ3NldFdpbmRvd1JlY3QnLFxuICAndGltZW91dHMnLFxuICAndW5oYW5kbGVkUHJvbXB0QmVoYXZpb3InXG5dO1xuXG5mdW5jdGlvbiBpc1N0YW5kYXJkQ2FwIChjYXApIHtcbiAgcmV0dXJuICEhXy5maW5kKFNUQU5EQVJEX0NBUFMsIChzdGFuZGFyZENhcCkgPT4gc3RhbmRhcmRDYXAudG9Mb3dlckNhc2UoKSA9PT0gYCR7Y2FwfWAudG9Mb3dlckNhc2UoKSk7XG59XG5cbi8vIElmIHRoZSAnYXBwaXVtOicgcHJlZml4IHdhcyBwcm92aWRlZCBhbmQgaXQncyBhIHZhbGlkIGNhcGFiaWxpdHksIHN0cmlwIG91dCB0aGUgcHJlZml4IChzZWUgaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmRyaXZlci8jZGZuLWV4dGVuc2lvbi1jYXBhYmlsaXRpZXMpXG4vLyAoTk9URTogTWV0aG9kIGlzIGRlc3RydWN0aXZlIGFuZCBtdXRhdGVzIGNvbnRlbnRzIG9mIGNhcHMpXG5mdW5jdGlvbiBzdHJpcEFwcGl1bVByZWZpeGVzIChjYXBzKSB7XG4gIGNvbnN0IHByZWZpeCA9ICdhcHBpdW06JztcbiAgY29uc3QgcHJlZml4ZWRDYXBzID0gXy5maWx0ZXIoXy5rZXlzKGNhcHMpLCAoY2FwKSA9PiBgJHtjYXB9YC5zdGFydHNXaXRoKHByZWZpeCkpO1xuICBjb25zdCBiYWRQcmVmaXhlZENhcHMgPSBbXTtcblxuICAvLyBTdHJpcCBvdXQgdGhlICdhcHBpdW06JyBwcmVmaXhcbiAgZm9yIChsZXQgcHJlZml4ZWRDYXAgb2YgcHJlZml4ZWRDYXBzKSB7XG4gICAgY29uc3Qgc3RyaXBwZWRDYXBOYW1lID0gcHJlZml4ZWRDYXAuc3Vic3RyKHByZWZpeC5sZW5ndGgpO1xuXG4gICAgLy8gSWYgaXQncyBzdGFuZGFyZCBjYXBhYmlsaXR5IHRoYXQgd2FzIHByZWZpeGVkLCBhZGQgaXQgdG8gYW4gYXJyYXkgb2YgaW5jb3JyZWN0bHkgcHJlZml4ZWQgY2FwYWJpbGl0aWVzXG4gICAgaWYgKGlzU3RhbmRhcmRDYXAoc3RyaXBwZWRDYXBOYW1lKSkge1xuICAgICAgYmFkUHJlZml4ZWRDYXBzLnB1c2goc3RyaXBwZWRDYXBOYW1lKTtcbiAgICAgIGlmIChfLmlzTmlsKGNhcHNbc3RyaXBwZWRDYXBOYW1lXSkpIHtcbiAgICAgICAgY2Fwc1tzdHJpcHBlZENhcE5hbWVdID0gY2Fwc1twcmVmaXhlZENhcF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBsb2cud2FybihgSWdub3JpbmcgY2FwYWJpbGl0eSAnJHtwcmVmaXhlZENhcH09JHtjYXBzW3ByZWZpeGVkQ2FwXX0nIGFuZCBgICtcbiAgICAgICAgICBgdXNpbmcgY2FwYWJpbGl0eSAnJHtzdHJpcHBlZENhcE5hbWV9PSR7Y2Fwc1tzdHJpcHBlZENhcE5hbWVdfSdgKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgY2Fwc1tzdHJpcHBlZENhcE5hbWVdID0gY2Fwc1twcmVmaXhlZENhcF07XG4gICAgfVxuXG4gICAgLy8gU3RyaXAgb3V0IHRoZSBwcmVmaXhcbiAgICBkZWxldGUgY2Fwc1twcmVmaXhlZENhcF07XG4gIH1cblxuICAvLyBJZiB3ZSBmb3VuZCBzdGFuZGFyZCBjYXBzIHRoYXQgd2VyZSBpbmNvcnJlY3RseSBwcmVmaXhlZCwgdGhyb3cgYW4gZXhjZXB0aW9uIChlLmcuOiBkb24ndCBhY2NlcHQgJ2FwcGl1bTpwbGF0Zm9ybU5hbWUnLCBvbmx5IGFjY2VwdCBqdXN0ICdwbGF0Zm9ybU5hbWUnKVxuICBpZiAoYmFkUHJlZml4ZWRDYXBzLmxlbmd0aCA+IDApIHtcbiAgICBsb2cud2FybihgVGhlIGNhcGFiaWxpdGllcyAke0pTT04uc3RyaW5naWZ5KGJhZFByZWZpeGVkQ2Fwcyl9IGFyZSBzdGFuZGFyZCBjYXBhYmlsaXRpZXMgYW5kIGRvIG5vdCByZXF1aXJlIFwiYXBwaXVtOlwiIHByZWZpeGApO1xuICB9XG59XG5cbi8qKlxuICogR2V0IGFuIGFycmF5IG9mIGFsbCB0aGUgdW5wcmVmaXhlZCBjYXBzIHRoYXQgYXJlIGJlaW5nIHVzZWQgaW4gJ2Fsd2F5c01hdGNoJyBhbmQgYWxsIG9mIHRoZSAnZmlyc3RNYXRjaCcgb2JqZWN0XG4gKiBAcGFyYW0ge09iamVjdH0gY2FwcyBBIGNhcGFiaWxpdGllcyBvYmplY3RcbiAqL1xuZnVuY3Rpb24gZmluZE5vblByZWZpeGVkQ2FwcyAoe2Fsd2F5c01hdGNoID0ge30sIGZpcnN0TWF0Y2ggPSBbXX0pIHtcbiAgcmV0dXJuIF8uY2hhaW4oW2Fsd2F5c01hdGNoLCAuLi5maXJzdE1hdGNoXSlcbiAgICAucmVkdWNlKCh1bnByZWZpeGVkQ2FwcywgY2FwcykgPT4gW1xuICAgICAgLi4udW5wcmVmaXhlZENhcHMsXG4gICAgICAuLi5PYmplY3Qua2V5cyhjYXBzKS5maWx0ZXIoKGNhcCkgPT4gIWNhcC5pbmNsdWRlcygnOicpICYmICFpc1N0YW5kYXJkQ2FwKGNhcCkpLFxuICAgIF0sIFtdKVxuICAgIC51bmlxKClcbiAgICAudmFsdWUoKTtcbn1cblxuLy8gUGFyc2UgY2FwYWJpbGl0aWVzIChiYXNlZCBvbiBodHRwczovL3d3dy53My5vcmcvVFIvd2ViZHJpdmVyLyNwcm9jZXNzaW5nLWNhcGFiaWxpdGllcylcbi8qKlxuICpcbiAqIEBwYXJhbSB7VzNDQ2FwYWJpbGl0aWVzfSBjYXBzXG4gKiBAcGFyYW0ge0NvbnN0cmFpbnRzfSBbY29uc3RyYWludHNdXG4gKiBAcGFyYW0ge2Jvb2xlYW59IFtzaG91bGRWYWxpZGF0ZUNhcHNdXG4gKiBAcmV0dXJuc1xuICovXG5mdW5jdGlvbiBwYXJzZUNhcHMgKGNhcHMsIGNvbnN0cmFpbnRzID0ge30sIHNob3VsZFZhbGlkYXRlQ2FwcyA9IHRydWUpIHtcbiAgLy8gSWYgY2FwYWJpbGl0aWVzIHJlcXVlc3QgaXMgbm90IGFuIG9iamVjdCwgcmV0dXJuIGVycm9yICgjMS4xKVxuICBpZiAoIV8uaXNQbGFpbk9iamVjdChjYXBzKSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZEFyZ3VtZW50RXJyb3IoJ1RoZSBjYXBhYmlsaXRpZXMgYXJndW1lbnQgd2FzIG5vdCB2YWxpZCBmb3IgdGhlIGZvbGxvd2luZyByZWFzb24ocyk6IFwiY2FwYWJpbGl0aWVzXCIgbXVzdCBiZSBhIEpTT04gb2JqZWN0LicpO1xuICB9XG5cbiAgLy8gTGV0ICdyZXF1aXJlZENhcHMnIGJlIHByb3BlcnR5IG5hbWVkICdhbHdheXNNYXRjaCcgZnJvbSBjYXBhYmlsaXRpZXMgcmVxdWVzdCAoIzIpXG4gIC8vIGFuZCAnYWxsRmlyc3RNYXRjaENhcHMnIGJlIHByb3BlcnR5IG5hbWVkICdmaXJzdE1hdGNoJyBmcm9tIGNhcGFiaWxpdGllcyByZXF1ZXN0ICgjMylcbiAgbGV0IHtcbiAgICBhbHdheXNNYXRjaDogcmVxdWlyZWRDYXBzID0ge30sIC8vIElmICdyZXF1aXJlZENhcHMnIGlzIHVuZGVmaW5lZCwgc2V0IGl0IHRvIGFuIGVtcHR5IEpTT04gb2JqZWN0ICgjMi4xKVxuICAgIGZpcnN0TWF0Y2g6IGFsbEZpcnN0TWF0Y2hDYXBzID0gW3t9XSwgLy8gSWYgJ2ZpcnN0TWF0Y2gnIGlzIHVuZGVmaW5lZCBzZXQgaXQgdG8gYSBzaW5nbGV0b24gbGlzdCB3aXRoIG9uZSBlbXB0eSBvYmplY3QgKCMzLjEpXG4gIH0gPSBjYXBzO1xuXG4gIC8vIFJlamVjdCAnZmlyc3RNYXRjaCcgYXJndW1lbnQgaWYgaXQncyBub3QgYW4gYXJyYXkgKCMzLjIpXG4gIGlmICghXy5pc0FycmF5KGFsbEZpcnN0TWF0Y2hDYXBzKSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZEFyZ3VtZW50RXJyb3IoJ1RoZSBjYXBhYmlsaXRpZXMuZmlyc3RNYXRjaCBhcmd1bWVudCB3YXMgbm90IHZhbGlkIGZvciB0aGUgZm9sbG93aW5nIHJlYXNvbihzKTogXCJjYXBhYmlsaXRpZXMuZmlyc3RNYXRjaFwiIG11c3QgYmUgYSBKU09OIGFycmF5IG9yIHVuZGVmaW5lZCcpO1xuICB9XG5cbiAgLy8gSWYgYW4gZW1wdHkgYXJyYXkgYXMgcHJvdmlkZWQsIHdlJ2xsIGJlIGZvcmdpdmluZyBhbmQgbWFrZSBpdCBhbiBhcnJheSBvZiBvbmUgZW1wdHkgb2JqZWN0XG4gIC8vIEluIHRoZSBmdXR1cmUsIHJlamVjdCAnZmlyc3RNYXRjaCcgYXJndW1lbnQgaWYgaXRzIGFycmF5IGRpZCBub3QgaGF2ZSBvbmUgb3IgbW9yZSBlbnRyaWVzICgjMy4yKVxuICBpZiAoYWxsRmlyc3RNYXRjaENhcHMubGVuZ3RoID09PSAwKSB7XG4gICAgbG9nLndhcm4oYFRoZSBmaXJzdE1hdGNoIGFycmF5IGluIHRoZSBnaXZlbiBjYXBhYmlsaXRpZXMgaGFzIG5vIGVudHJpZXMuIEFkZGluZyBhbiBlbXB0eSBlbnRyeSBmbyBybm93LCBgICtcbiAgICAgIGBidXQgaXQgd2lsbCByZXF1aXJlIG9uZSBvciBtb3JlIGVudHJpZXMgYXMgVzNDIHNwZWMuYCk7XG4gICAgYWxsRmlyc3RNYXRjaENhcHMucHVzaCh7fSk7XG4gIH1cblxuICAvLyBDaGVjayBmb3Igbm9uLXByZWZpeGVkLCBub24tc3RhbmRhcmQgY2FwYWJpbGl0aWVzIGFuZCBsb2cgd2FybmluZ3MgaWYgdGhleSBhcmUgZm91bmRcbiAgbGV0IG5vblByZWZpeGVkQ2FwcyA9IGZpbmROb25QcmVmaXhlZENhcHMoY2Fwcyk7XG4gIGlmICghXy5pc0VtcHR5KG5vblByZWZpeGVkQ2FwcykpIHtcbiAgICB0aHJvdyBuZXcgZXJyb3JzLkludmFsaWRBcmd1bWVudEVycm9yKGBBbGwgbm9uLXN0YW5kYXJkIGNhcGFiaWxpdGllcyBzaG91bGQgaGF2ZSBhIHZlbmRvciBwcmVmaXguIFRoZSBmb2xsb3dpbmcgY2FwYWJpbGl0aWVzIGRpZCBub3QgaGF2ZSBvbmU6ICR7bm9uUHJlZml4ZWRDYXBzfWApO1xuICB9XG5cbiAgLy8gU3RyaXAgb3V0IHRoZSAnYXBwaXVtOicgcHJlZml4IGZyb20gYWxsXG4gIHN0cmlwQXBwaXVtUHJlZml4ZXMocmVxdWlyZWRDYXBzKTtcbiAgZm9yIChsZXQgZmlyc3RNYXRjaENhcHMgb2YgYWxsRmlyc3RNYXRjaENhcHMpIHtcbiAgICBzdHJpcEFwcGl1bVByZWZpeGVzKGZpcnN0TWF0Y2hDYXBzKTtcbiAgfVxuXG4gIC8vIFZhbGlkYXRlIHRoZSByZXF1aXJlZENhcHMuIEJ1dCBkb24ndCB2YWxpZGF0ZSAncHJlc2VuY2UnIGJlY2F1c2UgaWYgdGhhdCBjb25zdHJhaW50IGZhaWxzIG9uICdhbHdheXNNYXRjaCcgaXQgY291bGQgc3RpbGwgcGFzcyBvbiBvbmUgb2YgdGhlICdmaXJzdE1hdGNoJyBrZXlzXG4gIGlmIChzaG91bGRWYWxpZGF0ZUNhcHMpIHtcbiAgICByZXF1aXJlZENhcHMgPSB2YWxpZGF0ZUNhcHMocmVxdWlyZWRDYXBzLCBjb25zdHJhaW50cywge3NraXBQcmVzZW5jZUNvbnN0cmFpbnQ6IHRydWV9KTtcbiAgfVxuXG5cbiAgLy8gUmVtb3ZlIHRoZSAncHJlc2VuY2UnIGNvbnN0cmFpbnQgZm9yIGFueSBrZXlzIHRoYXQgYXJlIGFscmVhZHkgcHJlc2VudCBpbiAncmVxdWlyZWRDYXBzJ1xuICAvLyBzaW5jZSB3ZSBrbm93IHRoYXQgdGhpcyBjb25zdHJhaW50IGhhcyBhbHJlYWR5IHBhc3NlZFxuICBsZXQgZmlsdGVyZWRDb25zdHJhaW50cyA9IHsuLi5jb25zdHJhaW50c307XG4gIGxldCByZXF1aXJlZENhcHNLZXlzID0gXy5rZXlzKHJlcXVpcmVkQ2Fwcyk7XG4gIGZvciAobGV0IGtleSBvZiBfLmtleXMoZmlsdGVyZWRDb25zdHJhaW50cykpIHtcbiAgICBpZiAocmVxdWlyZWRDYXBzS2V5cy5pbmNsdWRlcyhrZXkpKSB7XG4gICAgICBkZWxldGUgZmlsdGVyZWRDb25zdHJhaW50c1trZXldO1xuICAgIH1cbiAgfVxuXG4gIC8vIFZhbGlkYXRlIGFsbCBvZiB0aGUgZmlyc3QgbWF0Y2ggY2FwYWJpbGl0aWVzIGFuZCByZXR1cm4gYW4gYXJyYXkgd2l0aCBvbmx5IHRoZSB2YWxpZCBjYXBzIChzZWUgc3BlYyAjNSlcbiAgbGV0IHZhbGlkYXRpb25FcnJvcnMgPSBbXTtcbiAgLyoqIEB0eXBlIHtDYXBhYmlsaXRpZXNbXX0gKi9cbiAgbGV0IHZhbGlkYXRlZEZpcnN0TWF0Y2hDYXBzID0gXy5jb21wYWN0KGFsbEZpcnN0TWF0Y2hDYXBzLm1hcCgoZmlyc3RNYXRjaENhcHMpID0+IHtcbiAgICB0cnkge1xuICAgICAgLy8gVmFsaWRhdGUgZmlyc3RNYXRjaCBjYXBzXG4gICAgICByZXR1cm4gc2hvdWxkVmFsaWRhdGVDYXBzID8gdmFsaWRhdGVDYXBzKGZpcnN0TWF0Y2hDYXBzLCBmaWx0ZXJlZENvbnN0cmFpbnRzKSA6IGZpcnN0TWF0Y2hDYXBzO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHZhbGlkYXRpb25FcnJvcnMucHVzaChlLm1lc3NhZ2UpO1xuICAgIH1cbiAgfSkpO1xuXG4gIC8vIFRyeSB0byBtZXJnZSByZXF1aXJlZENhcHMgd2l0aCBmaXJzdCBtYXRjaCBjYXBhYmlsaXRpZXMsIGJyZWFrIG9uY2UgaXQgZmluZHMgaXRzIGZpcnN0IG1hdGNoIChzZWUgc3BlYyAjNilcbiAgbGV0IG1hdGNoZWRDYXBzID0gbnVsbDtcbiAgZm9yIChsZXQgZmlyc3RNYXRjaENhcHMgb2YgdmFsaWRhdGVkRmlyc3RNYXRjaENhcHMpIHtcbiAgICB0cnkge1xuICAgICAgbWF0Y2hlZENhcHMgPSBtZXJnZUNhcHMocmVxdWlyZWRDYXBzLCBmaXJzdE1hdGNoQ2Fwcyk7XG4gICAgICBpZiAobWF0Y2hlZENhcHMpIHtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICBsb2cud2FybihlcnIubWVzc2FnZSk7XG4gICAgICB2YWxpZGF0aW9uRXJyb3JzLnB1c2goZXJyLm1lc3NhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIC8vIFJldHVybnMgdmFyaWFibGVzIGZvciB0ZXN0aW5nIHB1cnBvc2VzXG4gIHJldHVybiB7cmVxdWlyZWRDYXBzLCBhbGxGaXJzdE1hdGNoQ2FwcywgdmFsaWRhdGVkRmlyc3RNYXRjaENhcHMsIG1hdGNoZWRDYXBzLCB2YWxpZGF0aW9uRXJyb3JzfTtcbn1cblxuLy8gQ2FsbHMgcGFyc2VDYXBzIGFuZCBqdXN0IHJldHVybnMgdGhlIG1hdGNoZWRDYXBzIHZhcmlhYmxlXG4vKipcbiAqXG4gKiBAcGFyYW0ge1czQ0NhcGFiaWxpdGllc30gdzNjQ2Fwc1xuICogQHBhcmFtIHtDb25zdHJhaW50c30gW2NvbnN0cmFpbnRzXVxuICogQHBhcmFtIHtib29sZWFufSBbc2hvdWxkVmFsaWRhdGVDYXBzXVxuICogQHJldHVybnMge0NhcGFiaWxpdGllc31cbiAqL1xuZnVuY3Rpb24gcHJvY2Vzc0NhcGFiaWxpdGllcyAodzNjQ2FwcywgY29uc3RyYWludHMgPSB7fSwgc2hvdWxkVmFsaWRhdGVDYXBzID0gdHJ1ZSkge1xuICBjb25zdCB7bWF0Y2hlZENhcHMsIHZhbGlkYXRpb25FcnJvcnN9ID0gcGFyc2VDYXBzKHczY0NhcHMsIGNvbnN0cmFpbnRzLCBzaG91bGRWYWxpZGF0ZUNhcHMpO1xuXG4gIC8vIElmIHdlIGZvdW5kIGFuIGVycm9yIHRocm93IGFuIGV4Y2VwdGlvblxuICBpZiAoIXV0aWwuaGFzVmFsdWUobWF0Y2hlZENhcHMpKSB7XG4gICAgaWYgKF8uaXNBcnJheSh3M2NDYXBzLmZpcnN0TWF0Y2gpICYmIHczY0NhcHMuZmlyc3RNYXRjaC5sZW5ndGggPiAxKSB7XG4gICAgICAvLyBJZiB0aGVyZSB3YXMgbW9yZSB0aGFuIG9uZSAnZmlyc3RNYXRjaCcgY2FwLCBpbmRpY2F0ZSB0aGF0IHdlIGNvdWxkbid0IGZpbmQgYSBtYXRjaGluZyBjYXBhYmlsaXRpZXMgc2V0IGFuZCBzaG93IGFsbCB0aGUgZXJyb3JzXG4gICAgICB0aHJvdyBuZXcgZXJyb3JzLkludmFsaWRBcmd1bWVudEVycm9yKGBDb3VsZCBub3QgZmluZCBtYXRjaGluZyBjYXBhYmlsaXRpZXMgZnJvbSAke0pTT04uc3RyaW5naWZ5KHczY0NhcHMpfTpcXG4gJHt2YWxpZGF0aW9uRXJyb3JzLmpvaW4oJ1xcbicpfWApO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBPdGhlcndpc2UsIGp1c3Qgc2hvdyB0aGUgc2luZ3VsYXIgZXJyb3IgbWVzc2FnZVxuICAgICAgdGhyb3cgbmV3IGVycm9ycy5JbnZhbGlkQXJndW1lbnRFcnJvcih2YWxpZGF0aW9uRXJyb3JzWzBdKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gbWF0Y2hlZENhcHMgPz8ge307XG59XG5cbi8qKlxuICogUmV0dXJuIGEgY29weSBvZiBhIGNhcGFiaWxpdGllcyBvYmplY3Qgd2hpY2ggaGFzIHRha2VuIGV2ZXJ5dGhpbmcgd2l0aGluIHRoZSAnb3B0aW9ucydcbiAqIGNhcGFiaWxpdHkgYW5kIHByb21vdGVkIGl0IHRvIHRoZSB0b3AgbGV2ZWwuIE5vdGUgdGhhdCB0aGlzIGZ1bmN0aW9uIGlzIGFzc3VtZWQgdG8gYmUgcnVuIGFmdGVyXG4gKiBhbGwgdmVuZG9yIHByZWZpeGVzIGhhdmUgYWxyZWFkeSBiZWVuIHN0cmlwcGVkIGZyb20gdGhlIHRvcCBsZXZlbC4gU28gd2UgYXJlIGRlYWxpbmcgd2l0aCBlLmcuXG4gKiAnb3B0aW9ucycgYW5kIG5vdCAnYXBwaXVtOm9wdGlvbnMnIGF0IHRoaXMgcG9pbnQuIEFueSBwcmVmaXhlcyBfaW5zaWRlXyB0aGUgJ29wdGlvbnMnIGNhcGFiaWxpdHlcbiAqIHdpbGwgdGhlbXNlbHZlcyBiZSBzdHJpcHBlZC4gVGhpcyBpcyBkZXNpZ25lZCBhcyBhbiBpbnRlcm5hbCBmdW5jdGlvbiwgbm90IG9uZSB0byBvcGVyYXRlIG9uXG4gKiB1c2VyLWNvbnN0cnVjdGVkIGNhcGFiaWxpdGllcy5cbiAqXG4gKiBAcGFyYW0ge29iamVjdH0gb3JpZ2luYWxDYXBzIC0gdGhlIGNhcGFiaWxpdGllcyB0byBhbmFseXplIGFuZCBwcm9tb3RlIGZyb20gJ29wdGlvbnMnXG4gKiBAcmV0dXJuIHtvYmplY3QhfSAtIHRoZSBjYXBhYmlsaXRpZXMgd2l0aCAnb3B0aW9ucycgcHJvbW90ZWQgaWYgbmVjZXNzYXJ5XG4gKi9cbmZ1bmN0aW9uIHByb21vdGVBcHBpdW1PcHRpb25zIChvcmlnaW5hbENhcHMpIHtcbiAgY29uc3QgYXBwaXVtT3B0aW9ucyA9IG9yaWdpbmFsQ2Fwc1tBUFBJVU1fT1BUU19DQVBdO1xuICBpZiAoIWFwcGl1bU9wdGlvbnMpIHtcbiAgICByZXR1cm4gb3JpZ2luYWxDYXBzO1xuICB9XG5cbiAgbGV0IGNhcHMgPSBfLmNsb25lRGVlcChvcmlnaW5hbENhcHMpO1xuICBpZiAoIV8uaXNQbGFpbk9iamVjdChhcHBpdW1PcHRpb25zKSkge1xuICAgIHRocm93IG5ldyBlcnJvcnMuU2Vzc2lvbk5vdENyZWF0ZWRFcnJvcihgVGhlICR7QVBQSVVNX09QVFNfQ0FQfSBjYXBhYmlsaXR5IG11c3QgYmUgYW4gb2JqZWN0YCk7XG4gIH1cblxuICAvLyBmaXJzdCBnZXQgcmlkIG9mIGFueSBwcmVmaXhlcyBpbnNpZGUgYXBwaXVtOm9wdGlvbnNcbiAgc3RyaXBBcHBpdW1QcmVmaXhlcyhhcHBpdW1PcHRpb25zKTtcblxuICAvLyB3YXJuIGlmIHdlIGFyZSBnb2luZyB0byBvdmVyd3JpdGUgYW55IGtleXMgb24gdGhlIGJhc2UgY2FwcyBvYmplY3RcbiAgY29uc3Qgb3ZlcndyaXR0ZW5LZXlzID0gXy5pbnRlcnNlY3Rpb24oT2JqZWN0LmtleXMoY2FwcyksIE9iamVjdC5rZXlzKGFwcGl1bU9wdGlvbnMpKTtcbiAgaWYgKG92ZXJ3cml0dGVuS2V5cy5sZW5ndGggPiAwKSB7XG4gICAgbG9nLndhcm4oYEZvdW5kIGNhcGFiaWxpdGllcyBpbnNpZGUgJHtQUkVGSVhFRF9BUFBJVU1fT1BUU19DQVB9IHRoYXQgd2lsbCBvdmVyd3JpdGUgYCArXG4gICAgICAgICAgICAgYGNhcGFiaWxpdGllcyBhdCB0aGUgdG9wIGxldmVsOiAke0pTT04uc3RyaW5naWZ5KG92ZXJ3cml0dGVuS2V5cyl9YCk7XG4gIH1cblxuICAvLyBub3cganVzdCBhcHBseSB0aGVtIHRvIHRoZSBtYWluIGNhcHMgb2JqZWN0XG4gIGNhcHMgPSB7Li4uY2FwcywgLi4uYXBwaXVtT3B0aW9uc307XG5cbiAgLy8gYW5kIHJlbW92ZSBhbGwgdHJhY2VzIG9mIHRoZSBvcHRpb25zIGNhcFxuICBkZWxldGUgY2Fwc1tBUFBJVU1fT1BUU19DQVBdO1xuICByZXR1cm4gY2Fwcztcbn1cblxuXG5leHBvcnQge1xuICBwYXJzZUNhcHMsIHByb2Nlc3NDYXBhYmlsaXRpZXMsIHZhbGlkYXRlQ2FwcywgbWVyZ2VDYXBzLCBBUFBJVU1fVkVORE9SX1BSRUZJWCwgQVBQSVVNX09QVFNfQ0FQLFxuICBmaW5kTm9uUHJlZml4ZWRDYXBzLCBpc1N0YW5kYXJkQ2FwLCBzdHJpcEFwcGl1bVByZWZpeGVzLCBwcm9tb3RlQXBwaXVtT3B0aW9ucywgUFJFRklYRURfQVBQSVVNX09QVFNfQ0FQLFxufTtcblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuVzNDQ2FwYWJpbGl0aWVzfSBXM0NDYXBhYmlsaXRpZXNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5Db25zdHJhaW50c30gQ29uc3RyYWludHNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5DYXBhYmlsaXRpZXN9IENhcGFiaWxpdGllc1xuICovXG5cbi8qKlxuICogQHR5cGVkZWYgVmFsaWRhdGVDYXBzT3B0c1xuICogQHByb3BlcnR5IHtib29sZWFufSBbc2tpcFByZXNlbmNlQ29uc3RyYWludF0gLSBpZiB0cnVlLCBza2lwIHRoZSBwcmVzZW5jZSBjb25zdHJhaW50XG4gKi9cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBLE1BQU1BLG9CQUFvQixHQUFHLFNBQTdCOztBQUNBLE1BQU1DLGVBQWUsR0FBRyxTQUF4Qjs7QUFDQSxNQUFNQyx3QkFBd0IsR0FBSSxHQUFFRixvQkFBcUIsR0FBRUMsZUFBZ0IsRUFBM0U7OztBQVNBLFNBQVNFLFNBQVQsQ0FBb0JDLE9BQU8sR0FBRyxFQUE5QixFQUFrQ0MsU0FBUyxHQUFHLEVBQTlDLEVBQWtEO0VBQ2hELElBQUlDLE1BQU0sR0FBR0MsTUFBTSxDQUFDQyxNQUFQLENBQWMsRUFBZCxFQUFrQkosT0FBbEIsQ0FBYjs7RUFFQSxLQUFLLElBQUksQ0FBQ0ssSUFBRCxFQUFPQyxLQUFQLENBQVQsSUFBMEJDLGdCQUFFQyxPQUFGLENBQVVQLFNBQVYsQ0FBMUIsRUFBZ0Q7SUFFOUMsSUFBSSxDQUFDTSxnQkFBRUUsV0FBRixDQUFjVCxPQUFPLENBQUNLLElBQUQsQ0FBckIsQ0FBTCxFQUFtQztNQUNqQyxNQUFNLElBQUlLLGVBQU9DLG9CQUFYLENBQWlDLGFBQVlOLElBQUssdUNBQXNDTyxJQUFJLENBQUNDLFNBQUwsQ0FBZWIsT0FBZixDQUF3QixvQkFBbUJZLElBQUksQ0FBQ0MsU0FBTCxDQUFlWixTQUFmLENBQTBCLFVBQTdKLENBQU47SUFDRDs7SUFDREMsTUFBTSxDQUFDRyxJQUFELENBQU4sR0FBZUMsS0FBZjtFQUNEOztFQUVELE9BQU9KLE1BQVA7QUFDRDs7QUFVRCxTQUFTWSxZQUFULENBQXVCQyxJQUF2QixFQUE2QkMsV0FBVyxHQUFHLEVBQTNDLEVBQStDQyxJQUFJLEdBQUcsRUFBdEQsRUFBMEQ7RUFFeEQsSUFBSTtJQUFDQztFQUFELElBQTJCRCxJQUEvQjs7RUFFQSxJQUFJLENBQUNWLGdCQUFFWSxhQUFGLENBQWdCSixJQUFoQixDQUFMLEVB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
@@ -37,4 +37,4 @@ function EventMixin(Base) {
37
37
 
38
38
  return EventCommands;
39
39
  }
40
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL2V2ZW50LmpzIl0sIm5hbWVzIjpbIkV2ZW50TWl4aW4iLCJCYXNlIiwiRXZlbnRDb21tYW5kcyIsImxvZ0N1c3RvbUV2ZW50IiwidmVuZG9yIiwiZXZlbnQiLCJsb2dFdmVudCIsImdldExvZ0V2ZW50cyIsInR5cGUiLCJfIiwiaXNFbXB0eSIsImV2ZW50SGlzdG9yeSIsInR5cGVMaXN0IiwiY2FzdEFycmF5IiwicmVkdWNlIiwiYWNjIiwiZXZlbnRUaW1lcyIsImV2ZW50VHlwZSIsImluY2x1ZGVzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUVBOztBQU1PLFNBQVNBLFVBQVQsQ0FBcUJDLElBQXJCLEVBQTJCO0FBSWhDLFFBQU1DLGFBQU4sU0FBNEJELElBQTVCLENBQWlDO0FBUVgsVUFBZEUsY0FBYyxDQUFFQyxNQUFGLEVBQVVDLEtBQVYsRUFBaUI7QUFDbkMsV0FBS0MsUUFBTCxDQUFlLEdBQUVGLE1BQU8sSUFBR0MsS0FBTSxFQUFqQztBQUNEOztBQVFpQixVQUFaRSxZQUFZLENBQUVDLElBQUYsRUFBUTtBQUN4QixVQUFJQyxnQkFBRUMsT0FBRixDQUFVRixJQUFWLENBQUosRUFBcUI7QUFDbkIsZUFBTyxLQUFLRyxZQUFaO0FBQ0Q7O0FBRUQsWUFBTUMsUUFBUSxHQUFHSCxnQkFBRUksU0FBRixDQUFZTCxJQUFaLENBQWpCOztBQUVBLGFBQU9DLGdCQUFFSyxNQUFGLENBQ0wsS0FBS0gsWUFEQSxFQUVMLENBQUNJLEdBQUQsRUFBTUMsVUFBTixFQUFrQkMsU0FBbEIsS0FBZ0M7QUFDOUIsWUFBSUwsUUFBUSxDQUFDTSxRQUFULENBQWtCRCxTQUFsQixDQUFKLEVBQWtDO0FBQ2hDRixVQUFBQSxHQUFHLENBQUNFLFNBQUQsQ0FBSCxHQUFpQkQsVUFBakI7QUFDRDs7QUFDRCxlQUFPRCxHQUFQO0FBQ0QsT0FQSSxFQVFMLEVBUkssQ0FBUDtBQVVEOztBQW5DOEI7O0FBc0NqQyxTQUFPYixhQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSByZXF1aXJlLWF3YWl0ICovXG4vLyBAdHMtY2hlY2tcbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5cbi8qKlxuICogQHBhcmFtIHtUaW1lb3V0QmFzZX0gQmFzZVxuICogQHJldHVybnMge0V2ZW50QmFzZX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEV2ZW50TWl4aW4gKEJhc2UpIHtcbiAgLyoqXG4gICAqIEBpbXBsZW1lbnRzIHtJRXZlbnRDb21tYW5kc31cbiAgICovXG4gIGNsYXNzIEV2ZW50Q29tbWFuZHMgZXh0ZW5kcyBCYXNlIHtcbiAgICAvKipcbiAgICAgKiBMb2cgYSB1c2VyLWRlZmluZWQgZXZlbnQgaW4gdGhlIGV2ZW50IGxvZy5cbiAgICAgKlxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB2ZW5kb3IgLSBhIHZlbmRvciBwcmVmaXggZm9yIHRoZSB1c2VyLCB0byBlbnN1cmUgbmFtZXNwYWNlXG4gICAgICogc2VwYXJhdGlvblxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBldmVudCAtIHRoZSBldmVudCBuYW1lXG4gICAgICovXG4gICAgYXN5bmMgbG9nQ3VzdG9tRXZlbnQgKHZlbmRvciwgZXZlbnQpIHtcbiAgICAgIHRoaXMubG9nRXZlbnQoYCR7dmVuZG9yfToke2V2ZW50fWApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldCB0aGUgZXZlbnQgbG9nXG4gICAgICogQHBhcmFtIHtzdHJpbmd8c3RyaW5nW119IFt0eXBlXSAtIHRoZSBldmVudCB0eXBlIHRvIGZpbHRlciB3aXRoLlxuICAgICAqIEl0IHJldHVybnMgYWxsIGV2ZW50cyBpZiB0aGUgdHlwZSBpcyBub3QgcHJvdmlkZWQgb3IgZW1wdHkgc3RyaW5nL2FycmF5LlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlPGltcG9ydCgnQGFwcGl1bS90eXBlcycpLkV2ZW50SGlzdG9yeXxSZWNvcmQ8c3RyaW5nLG51bWJlcj4+fSAtIHRoZSBldmVudCBoaXN0b3J5IGxvZyBvYmplY3RcbiAgICAgKi9cbiAgICBhc3luYyBnZXRMb2dFdmVudHMgKHR5cGUpIHtcbiAgICAgIGlmIChfLmlzRW1wdHkodHlwZSkpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZXZlbnRIaXN0b3J5O1xuICAgICAgfVxuXG4gICAgICBjb25zdCB0eXBlTGlzdCA9IF8uY2FzdEFycmF5KHR5cGUpO1xuXG4gICAgICByZXR1cm4gXy5yZWR1Y2UoXG4gICAgICAgIHRoaXMuZXZlbnRIaXN0b3J5LFxuICAgICAgICAoYWNjLCBldmVudFRpbWVzLCBldmVudFR5cGUpID0+IHtcbiAgICAgICAgICBpZiAodHlwZUxpc3QuaW5jbHVkZXMoZXZlbnRUeXBlKSkge1xuICAgICAgICAgICAgYWNjW2V2ZW50VHlwZV0gPSBldmVudFRpbWVzO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LFxuICAgICAgICB7fSxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIEV2ZW50Q29tbWFuZHM7XG59XG5cbi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLkV2ZW50Q29tbWFuZHN9IElFdmVudENvbW1hbmRzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL3RpbWVvdXQnKS5UaW1lb3V0QmFzZX0gVGltZW91dEJhc2VcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2RyaXZlcicpLkJhc2VEcml2ZXJCYXNlPGltcG9ydCgnQGFwcGl1bS90eXBlcycpLlRpbWVvdXRDb21tYW5kcyAmIElFdmVudENvbW1hbmRzPn0gRXZlbnRCYXNlXG4gKi9cbiJdfQ==
40
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJFdmVudE1peGluIiwiQmFzZSIsIkV2ZW50Q29tbWFuZHMiLCJsb2dDdXN0b21FdmVudCIsInZlbmRvciIsImV2ZW50IiwibG9nRXZlbnQiLCJnZXRMb2dFdmVudHMiLCJ0eXBlIiwiXyIsImlzRW1wdHkiLCJldmVudEhpc3RvcnkiLCJ0eXBlTGlzdCIsImNhc3RBcnJheSIsInJlZHVjZSIsImFjYyIsImV2ZW50VGltZXMiLCJldmVudFR5cGUiLCJpbmNsdWRlcyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL2V2ZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIHJlcXVpcmUtYXdhaXQgKi9cbi8vIEB0cy1jaGVja1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuLyoqXG4gKiBAcGFyYW0ge1RpbWVvdXRCYXNlfSBCYXNlXG4gKiBAcmV0dXJucyB7RXZlbnRCYXNlfVxuICovXG5leHBvcnQgZnVuY3Rpb24gRXZlbnRNaXhpbiAoQmFzZSkge1xuICAvKipcbiAgICogQGltcGxlbWVudHMge0lFdmVudENvbW1hbmRzfVxuICAgKi9cbiAgY2xhc3MgRXZlbnRDb21tYW5kcyBleHRlbmRzIEJhc2Uge1xuICAgIC8qKlxuICAgICAqIExvZyBhIHVzZXItZGVmaW5lZCBldmVudCBpbiB0aGUgZXZlbnQgbG9nLlxuICAgICAqXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHZlbmRvciAtIGEgdmVuZG9yIHByZWZpeCBmb3IgdGhlIHVzZXIsIHRvIGVuc3VyZSBuYW1lc3BhY2VcbiAgICAgKiBzZXBhcmF0aW9uXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGV2ZW50IC0gdGhlIGV2ZW50IG5hbWVcbiAgICAgKi9cbiAgICBhc3luYyBsb2dDdXN0b21FdmVudCAodmVuZG9yLCBldmVudCkge1xuICAgICAgdGhpcy5sb2dFdmVudChgJHt2ZW5kb3J9OiR7ZXZlbnR9YCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0IHRoZSBldmVudCBsb2dcbiAgICAgKiBAcGFyYW0ge3N0cmluZ3xzdHJpbmdbXX0gW3R5cGVdIC0gdGhlIGV2ZW50IHR5cGUgdG8gZmlsdGVyIHdpdGguXG4gICAgICogSXQgcmV0dXJucyBhbGwgZXZlbnRzIGlmIHRoZSB0eXBlIGlzIG5vdCBwcm92aWRlZCBvciBlbXB0eSBzdHJpbmcvYXJyYXkuXG4gICAgICogQHJldHVybnMge1Byb21pc2U8aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRXZlbnRIaXN0b3J5fFJlY29yZDxzdHJpbmcsbnVtYmVyPj59IC0gdGhlIGV2ZW50IGhpc3RvcnkgbG9nIG9iamVjdFxuICAgICAqL1xuICAgIGFzeW5jIGdldExvZ0V2ZW50cyAodHlwZSkge1xuICAgICAgaWYgKF8uaXNFbXB0eSh0eXBlKSkge1xuICAgICAgICByZXR1cm4gdGhpcy5ldmVudEhpc3Rvcnk7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHR5cGVMaXN0ID0gXy5jYXN0QXJyYXkodHlwZSk7XG5cbiAgICAgIHJldHVybiBfLnJlZHVjZShcbiAgICAgICAgdGhpcy5ldmVudEhpc3RvcnksXG4gICAgICAgIChhY2MsIGV2ZW50VGltZXMsIGV2ZW50VHlwZSkgPT4ge1xuICAgICAgICAgIGlmICh0eXBlTGlzdC5pbmNsdWRlcyhldmVudFR5cGUpKSB7XG4gICAgICAgICAgICBhY2NbZXZlbnRUeXBlXSA9IGV2ZW50VGltZXM7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgIH0sXG4gICAgICAgIHt9LFxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gRXZlbnRDb21tYW5kcztcbn1cblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRXZlbnRDb21tYW5kc30gSUV2ZW50Q29tbWFuZHNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vdGltZW91dCcpLlRpbWVvdXRCYXNlfSBUaW1lb3V0QmFzZVxuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vZHJpdmVyJykuQmFzZURyaXZlckJhc2U8aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuVGltZW91dENvbW1hbmRzICYgSUV2ZW50Q29tbWFuZHM+fSBFdmVudEJhc2VcbiAqL1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUVBOztBQU1PLFNBQVNBLFVBQVQsQ0FBcUJDLElBQXJCLEVBQTJCO0VBSWhDLE1BQU1DLGFBQU4sU0FBNEJELElBQTVCLENBQWlDO0lBUVgsTUFBZEUsY0FBYyxDQUFFQyxNQUFGLEVBQVVDLEtBQVYsRUFBaUI7TUFDbkMsS0FBS0MsUUFBTCxDQUFlLEdBQUVGLE1BQU8sSUFBR0MsS0FBTSxFQUFqQztJQUNEOztJQVFpQixNQUFaRSxZQUFZLENBQUVDLElBQUYsRUFBUTtNQUN4QixJQUFJQyxnQkFBRUMsT0FBRixDQUFVRixJQUFWLENBQUosRUFBcUI7UUFDbkIsT0FBTyxLQUFLRyxZQUFaO01BQ0Q7O01BRUQsTUFBTUMsUUFBUSxHQUFHSCxnQkFBRUksU0FBRixDQUFZTCxJQUFaLENBQWpCOztNQUVBLE9BQU9DLGdCQUFFSyxNQUFGLENBQ0wsS0FBS0gsWUFEQSxFQUVMLENBQUNJLEdBQUQsRUFBTUMsVUFBTixFQUFrQkMsU0FBbEIsS0FBZ0M7UUFDOUIsSUFBSUwsUUFBUSxDQUFDTSxRQUFULENBQWtCRCxTQUFsQixDQUFKLEVBQWtDO1VBQ2hDRixHQUFHLENBQUNFLFNBQUQsQ0FBSCxHQUFpQkQsVUFBakI7UUFDRDs7UUFDRCxPQUFPRCxHQUFQO01BQ0QsQ0FQSSxFQVFMLEVBUkssQ0FBUDtJQVVEOztFQW5DOEI7O0VBc0NqQyxPQUFPYixhQUFQO0FBQ0QifQ==
@@ -56,4 +56,4 @@ function FindMixin(Base) {
56
56
 
57
57
  return FindCommands;
58
58
  }
59
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL2ZpbmQuanMiXSwibmFtZXMiOlsiRmluZE1peGluIiwiQmFzZSIsIkZpbmRDb21tYW5kcyIsImZpbmRFbGVtZW50Iiwic3RyYXRlZ3kiLCJzZWxlY3RvciIsImZpbmRFbE9yRWxzV2l0aFByb2Nlc3NpbmciLCJmaW5kRWxlbWVudHMiLCJmaW5kRWxlbWVudEZyb21FbGVtZW50IiwiZWxlbWVudElkIiwiZmluZEVsZW1lbnRzRnJvbUVsZW1lbnQiLCJmaW5kRWxPckVscyIsIm11bHQiLCJjb250ZXh0IiwiZXJyb3JzIiwiTm90SW1wbGVtZW50ZWRFcnJvciIsImdldFBhZ2VTb3VyY2UiLCJ2YWxpZGF0ZUxvY2F0b3JTdHJhdGVneSIsImVyciIsIm9wdHMiLCJwcmludFBhZ2VTb3VyY2VPbkZpbmRGYWlsdXJlIiwic3JjIiwibG9nIiwiZGVidWciLCJtZXNzYWdlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFHQTs7QUFPTyxTQUFTQSxTQUFULENBQW9CQyxJQUFwQixFQUEwQjtBQUkvQixRQUFNQyxZQUFOLFNBQTJCRCxJQUEzQixDQUFnQztBQUtiLFVBQVhFLFdBQVcsQ0FBRUMsUUFBRixFQUFZQyxRQUFaLEVBQXNCO0FBQ3JDLGFBQU8sTUFBTSxLQUFLQyx5QkFBTCxDQUErQkYsUUFBL0IsRUFBeUNDLFFBQXpDLEVBQW1ELEtBQW5ELENBQWI7QUFDRDs7QUFNaUIsVUFBWkUsWUFBWSxDQUFFSCxRQUFGLEVBQVlDLFFBQVosRUFBc0I7QUFDdEMsYUFBTyxNQUFNLEtBQUtDLHlCQUFMLENBQStCRixRQUEvQixFQUF5Q0MsUUFBekMsRUFBbUQsSUFBbkQsQ0FBYjtBQUNEOztBQU0yQixVQUF0Qkcsc0JBQXNCLENBQUVKLFFBQUYsRUFBWUMsUUFBWixFQUFzQkksU0FBdEIsRUFBaUM7QUFDM0QsYUFBTyxNQUFNLEtBQUtILHlCQUFMLENBQ1hGLFFBRFcsRUFFWEMsUUFGVyxFQUdYLEtBSFcsRUFJWEksU0FKVyxDQUFiO0FBTUQ7O0FBTTRCLFVBQXZCQyx1QkFBdUIsQ0FBRU4sUUFBRixFQUFZQyxRQUFaLEVBQXNCSSxTQUF0QixFQUFpQztBQUM1RCxhQUFPLE1BQU0sS0FBS0gseUJBQUwsQ0FDWEYsUUFEVyxFQUVYQyxRQUZXLEVBR1gsSUFIVyxFQUlYSSxTQUpXLENBQWI7QUFNRDs7QUFhZ0IsVUFBWEUsV0FBVyxDQUFFUCxRQUFGLEVBQVlDLFFBQVosRUFBc0JPLElBQXRCLEVBQTRCQyxPQUE1QixFQUFxQztBQUNwRCxZQUFNLElBQUlDLGlCQUFPQyxtQkFBWCxDQUErQiwrQkFBL0IsQ0FBTjtBQUNEOztBQUtrQixVQUFiQyxhQUFhLEdBQUk7QUFDckIsWUFBTSxJQUFJRixpQkFBT0MsbUJBQVgsQ0FBK0IsK0JBQS9CLENBQU47QUFDRDs7QUFTOEIsVUFBekJULHlCQUF5QixDQUFFRixRQUFGLEVBQVlDLFFBQVosRUFBc0JPLElBQXRCLEVBQTRCQyxPQUE1QixFQUFxQztBQUNsRSxXQUFLSSx1QkFBTCxDQUE2QmIsUUFBN0I7O0FBQ0EsVUFBSTtBQUNGLGVBQU8sTUFBTSxLQUFLTyxXQUFMLENBQWlCUCxRQUFqQixFQUEyQkMsUUFBM0IsRUFBcUNPLElBQXJDLEVBQTJDQyxPQUEzQyxDQUFiO0FBQ0QsT0FGRCxDQUVFLE9BQU9LLEdBQVAsRUFBWTtBQUNaLFlBQUksS0FBS0MsSUFBTCxDQUFVQyw0QkFBZCxFQUE0QztBQUMxQyxnQkFBTUMsR0FBRyxHQUFHLE1BQU0sS0FBS0wsYUFBTCxFQUFsQjtBQUNBLGVBQUtNLEdBQUwsQ0FBU0MsS0FBVCxDQUNHLHdCQUF1QlgsSUFBSSxHQUFHLEdBQUgsR0FBUyxFQUFHLEtBQUlNLEdBQUcsQ0FBQ00sT0FBUSxFQUQxRDtBQUdBLGVBQUtGLEdBQUwsQ0FBU0MsS0FBVCxDQUNHLCtEQURIO0FBR0EsZUFBS0QsR0FBTCxDQUFTQyxLQUFULENBQWVGLEdBQWY7QUFDRDs7QUFFRCxjQUFNSCxHQUFOO0FBQ0Q7QUFDRjs7QUExRjZCOztBQTZGaEMsU0FBT2hCLFlBQVA7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG4vKiBlc2xpbnQtZGlzYWJsZSByZXF1aXJlLWF3YWl0ICovXG4vLyBAdHMtY2hlY2tcbmltcG9ydCB7ZXJyb3JzfSBmcm9tICcuLi8uLi9wcm90b2NvbCc7XG5cbi8qKlxuICpcbiAqIEBwYXJhbSB7RXZlbnRCYXNlfSBCYXNlXG4gKiBAcmV0dXJucyB7RmluZEJhc2V9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBGaW5kTWl4aW4gKEJhc2UpIHtcbiAgLyoqXG4gICAqIEBpbXBsZW1lbnRzIHtJRmluZENvbW1hbmRzfVxuICAgKi9cbiAgY2xhc3MgRmluZENvbW1hbmRzIGV4dGVuZHMgQmFzZSB7XG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTxFbGVtZW50Pn1cbiAgICAgKi9cbiAgICBhc3luYyBmaW5kRWxlbWVudCAoc3RyYXRlZ3ksIHNlbGVjdG9yKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5maW5kRWxPckVsc1dpdGhQcm9jZXNzaW5nKHN0cmF0ZWd5LCBzZWxlY3RvciwgZmFsc2UpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHJldHVybnMge1Byb21pc2U8RWxlbWVudFtdPn1cbiAgICAgKi9cbiAgICBhc3luYyBmaW5kRWxlbWVudHMgKHN0cmF0ZWd5LCBzZWxlY3Rvcikge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZmluZEVsT3JFbHNXaXRoUHJvY2Vzc2luZyhzdHJhdGVneSwgc2VsZWN0b3IsIHRydWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHJldHVybnMge1Byb21pc2U8RWxlbWVudD59XG4gICAgICovXG4gICAgYXN5bmMgZmluZEVsZW1lbnRGcm9tRWxlbWVudCAoc3RyYXRlZ3ksIHNlbGVjdG9yLCBlbGVtZW50SWQpIHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmZpbmRFbE9yRWxzV2l0aFByb2Nlc3NpbmcoXG4gICAgICAgIHN0cmF0ZWd5LFxuICAgICAgICBzZWxlY3RvcixcbiAgICAgICAgZmFsc2UsXG4gICAgICAgIGVsZW1lbnRJZCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTxFbGVtZW50W10+fVxuICAgICAqL1xuICAgIGFzeW5jIGZpbmRFbGVtZW50c0Zyb21FbGVtZW50IChzdHJhdGVneSwgc2VsZWN0b3IsIGVsZW1lbnRJZCkge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZmluZEVsT3JFbHNXaXRoUHJvY2Vzc2luZyhcbiAgICAgICAgc3RyYXRlZ3ksXG4gICAgICAgIHNlbGVjdG9yLFxuICAgICAgICB0cnVlLFxuICAgICAgICBlbGVtZW50SWQsXG4gICAgICApO1xuICAgIH1cbiAgICAvLyBPdmVycmlkZSB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uIGZvciB5b3VyIG93biBkcml2ZXIsIGFuZCB0aGUgcmVzdCBpcyB0YWtlblxuICAgIC8vIGNhcmUgb2YhXG4gICAgLy8gUmV0dXJucyBhbiBvYmplY3Qgd2hpY2ggYWRoZXJlcyB0byB0aGUgd2F5IHRoZSBKU09OIFdpcmUgUHJvdG9jb2wgcmVwcmVzZW50cyBlbGVtZW50czpcbiAgICAvLyB7IEVMRU1FTlQ6ICMgfSAgICBlZzogeyBFTEVNRU5UOiAzIH0gIG9yIHsgRUxFTUVOVDogMS4wMjMgfVxuICAgIC8qKlxuICAgICAqIEB0ZW1wbGF0ZSB7Ym9vbGVhbn0gTXVsdFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJhdGVneVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzZWxlY3RvclxuICAgICAqIEBwYXJhbSB7TXVsdH0gbXVsdFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbY29udGV4dF1cbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTxNdWx0IGV4dGVuZHMgdHJ1ZSA/IEVsZW1lbnRbXSA6IEVsZW1lbnQ+fVxuICAgICAqL1xuICAgIGFzeW5jIGZpbmRFbE9yRWxzIChzdHJhdGVneSwgc2VsZWN0b3IsIG11bHQsIGNvbnRleHQpIHtcbiAgICAgIHRocm93IG5ldyBlcnJvcnMuTm90SW1wbGVtZW50ZWRFcnJvcignTm90IGltcGxlbWVudGVkIHlldCBmb3IgZmluZC4nKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmc+fVxuICAgICAqL1xuICAgIGFzeW5jIGdldFBhZ2VTb3VyY2UgKCkge1xuICAgICAgdGhyb3cgbmV3IGVycm9ycy5Ob3RJbXBsZW1lbnRlZEVycm9yKCdOb3QgaW1wbGVtZW50ZWQgeWV0IGZvciBmaW5kLicpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAdGVtcGxhdGUge2Jvb2xlYW59IE11bHRcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyYXRlZ3lcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc2VsZWN0b3JcbiAgICAgKiBAcGFyYW0ge011bHR9IG11bHRcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2NvbnRleHRdXG4gICAgICogQHJldHVybnMge1Byb21pc2U8TXVsdCBleHRlbmRzIHRydWUgPyBFbGVtZW50W10gOiBFbGVtZW50Pn1cbiAgICAgKi9cbiAgICBhc3luYyBmaW5kRWxPckVsc1dpdGhQcm9jZXNzaW5nIChzdHJhdGVneSwgc2VsZWN0b3IsIG11bHQsIGNvbnRleHQpIHtcbiAgICAgIHRoaXMudmFsaWRhdGVMb2NhdG9yU3RyYXRlZ3koc3RyYXRlZ3kpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZmluZEVsT3JFbHMoc3RyYXRlZ3ksIHNlbGVjdG9yLCBtdWx0LCBjb250ZXh0KTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBpZiAodGhpcy5vcHRzLnByaW50UGFnZVNvdXJjZU9uRmluZEZhaWx1cmUpIHtcbiAgICAgICAgICBjb25zdCBzcmMgPSBhd2FpdCB0aGlzLmdldFBhZ2VTb3VyY2UoKTtcbiAgICAgICAgICB0aGlzLmxvZy5kZWJ1ZyhcbiAgICAgICAgICAgIGBFcnJvciBmaW5kaW5nIGVsZW1lbnQke211bHQgPyAncycgOiAnJ306ICR7ZXJyLm1lc3NhZ2V9YCxcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMubG9nLmRlYnVnKFxuICAgICAgICAgICAgYFBhZ2Ugc291cmNlIHJlcXVlc3RlZCB0aHJvdWdoICdwcmludFBhZ2VTb3VyY2VPbkZpbmRGYWlsdXJlJzpgLFxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5sb2cuZGVidWcoc3JjKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBzdGlsbCB3YW50IHRoZSBlcnJvciB0byBvY2N1clxuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIEZpbmRDb21tYW5kcztcbn1cblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRWxlbWVudH0gRWxlbWVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLkZpbmRDb21tYW5kc30gSUZpbmRDb21tYW5kc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi9ldmVudCcpLkV2ZW50QmFzZX0gRXZlbnRCYXNlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9kcml2ZXInKS5CYXNlRHJpdmVyQmFzZTxpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5UaW1lb3V0Q29tbWFuZHMgJiBpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5FdmVudENvbW1hbmRzICYgSUZpbmRDb21tYW5kcz59IEZpbmRCYXNlXG4gKi9cbiJdfQ==
59
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJGaW5kTWl4aW4iLCJCYXNlIiwiRmluZENvbW1hbmRzIiwiZmluZEVsZW1lbnQiLCJzdHJhdGVneSIsInNlbGVjdG9yIiwiZmluZEVsT3JFbHNXaXRoUHJvY2Vzc2luZyIsImZpbmRFbGVtZW50cyIsImZpbmRFbGVtZW50RnJvbUVsZW1lbnQiLCJlbGVtZW50SWQiLCJmaW5kRWxlbWVudHNGcm9tRWxlbWVudCIsImZpbmRFbE9yRWxzIiwibXVsdCIsImNvbnRleHQiLCJlcnJvcnMiLCJOb3RJbXBsZW1lbnRlZEVycm9yIiwiZ2V0UGFnZVNvdXJjZSIsInZhbGlkYXRlTG9jYXRvclN0cmF0ZWd5IiwiZXJyIiwib3B0cyIsInByaW50UGFnZVNvdXJjZU9uRmluZEZhaWx1cmUiLCJzcmMiLCJsb2ciLCJkZWJ1ZyIsIm1lc3NhZ2UiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvYmFzZWRyaXZlci9jb21tYW5kcy9maW5kLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG4vKiBlc2xpbnQtZGlzYWJsZSByZXF1aXJlLWF3YWl0ICovXG4vLyBAdHMtY2hlY2tcbmltcG9ydCB7ZXJyb3JzfSBmcm9tICcuLi8uLi9wcm90b2NvbCc7XG5cbi8qKlxuICpcbiAqIEBwYXJhbSB7RXZlbnRCYXNlfSBCYXNlXG4gKiBAcmV0dXJucyB7RmluZEJhc2V9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBGaW5kTWl4aW4gKEJhc2UpIHtcbiAgLyoqXG4gICAqIEBpbXBsZW1lbnRzIHtJRmluZENvbW1hbmRzfVxuICAgKi9cbiAgY2xhc3MgRmluZENvbW1hbmRzIGV4dGVuZHMgQmFzZSB7XG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTxFbGVtZW50Pn1cbiAgICAgKi9cbiAgICBhc3luYyBmaW5kRWxlbWVudCAoc3RyYXRlZ3ksIHNlbGVjdG9yKSB7XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5maW5kRWxPckVsc1dpdGhQcm9jZXNzaW5nKHN0cmF0ZWd5LCBzZWxlY3RvciwgZmFsc2UpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHJldHVybnMge1Byb21pc2U8RWxlbWVudFtdPn1cbiAgICAgKi9cbiAgICBhc3luYyBmaW5kRWxlbWVudHMgKHN0cmF0ZWd5LCBzZWxlY3Rvcikge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZmluZEVsT3JFbHNXaXRoUHJvY2Vzc2luZyhzdHJhdGVneSwgc2VsZWN0b3IsIHRydWUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHJldHVybnMge1Byb21pc2U8RWxlbWVudD59XG4gICAgICovXG4gICAgYXN5bmMgZmluZEVsZW1lbnRGcm9tRWxlbWVudCAoc3RyYXRlZ3ksIHNlbGVjdG9yLCBlbGVtZW50SWQpIHtcbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLmZpbmRFbE9yRWxzV2l0aFByb2Nlc3NpbmcoXG4gICAgICAgIHN0cmF0ZWd5LFxuICAgICAgICBzZWxlY3RvcixcbiAgICAgICAgZmFsc2UsXG4gICAgICAgIGVsZW1lbnRJZCxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICpcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTxFbGVtZW50W10+fVxuICAgICAqL1xuICAgIGFzeW5jIGZpbmRFbGVtZW50c0Zyb21FbGVtZW50IChzdHJhdGVneSwgc2VsZWN0b3IsIGVsZW1lbnRJZCkge1xuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZmluZEVsT3JFbHNXaXRoUHJvY2Vzc2luZyhcbiAgICAgICAgc3RyYXRlZ3ksXG4gICAgICAgIHNlbGVjdG9yLFxuICAgICAgICB0cnVlLFxuICAgICAgICBlbGVtZW50SWQsXG4gICAgICApO1xuICAgIH1cbiAgICAvLyBPdmVycmlkZSB0aGUgZm9sbG93aW5nIGZ1bmN0aW9uIGZvciB5b3VyIG93biBkcml2ZXIsIGFuZCB0aGUgcmVzdCBpcyB0YWtlblxuICAgIC8vIGNhcmUgb2YhXG4gICAgLy8gUmV0dXJucyBhbiBvYmplY3Qgd2hpY2ggYWRoZXJlcyB0byB0aGUgd2F5IHRoZSBKU09OIFdpcmUgUHJvdG9jb2wgcmVwcmVzZW50cyBlbGVtZW50czpcbiAgICAvLyB7IEVMRU1FTlQ6ICMgfSAgICBlZzogeyBFTEVNRU5UOiAzIH0gIG9yIHsgRUxFTUVOVDogMS4wMjMgfVxuICAgIC8qKlxuICAgICAqIEB0ZW1wbGF0ZSB7Ym9vbGVhbn0gTXVsdFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzdHJhdGVneVxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBzZWxlY3RvclxuICAgICAqIEBwYXJhbSB7TXVsdH0gbXVsdFxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBbY29udGV4dF1cbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTxNdWx0IGV4dGVuZHMgdHJ1ZSA/IEVsZW1lbnRbXSA6IEVsZW1lbnQ+fVxuICAgICAqL1xuICAgIGFzeW5jIGZpbmRFbE9yRWxzIChzdHJhdGVneSwgc2VsZWN0b3IsIG11bHQsIGNvbnRleHQpIHtcbiAgICAgIHRocm93IG5ldyBlcnJvcnMuTm90SW1wbGVtZW50ZWRFcnJvcignTm90IGltcGxlbWVudGVkIHlldCBmb3IgZmluZC4nKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTxzdHJpbmc+fVxuICAgICAqL1xuICAgIGFzeW5jIGdldFBhZ2VTb3VyY2UgKCkge1xuICAgICAgdGhyb3cgbmV3IGVycm9ycy5Ob3RJbXBsZW1lbnRlZEVycm9yKCdOb3QgaW1wbGVtZW50ZWQgeWV0IGZvciBmaW5kLicpO1xuICAgIH1cbiAgICAvKipcbiAgICAgKiBAdGVtcGxhdGUge2Jvb2xlYW59IE11bHRcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc3RyYXRlZ3lcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gc2VsZWN0b3JcbiAgICAgKiBAcGFyYW0ge011bHR9IG11bHRcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gW2NvbnRleHRdXG4gICAgICogQHJldHVybnMge1Byb21pc2U8TXVsdCBleHRlbmRzIHRydWUgPyBFbGVtZW50W10gOiBFbGVtZW50Pn1cbiAgICAgKi9cbiAgICBhc3luYyBmaW5kRWxPckVsc1dpdGhQcm9jZXNzaW5nIChzdHJhdGVneSwgc2VsZWN0b3IsIG11bHQsIGNvbnRleHQpIHtcbiAgICAgIHRoaXMudmFsaWRhdGVMb2NhdG9yU3RyYXRlZ3koc3RyYXRlZ3kpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuZmluZEVsT3JFbHMoc3RyYXRlZ3ksIHNlbGVjdG9yLCBtdWx0LCBjb250ZXh0KTtcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICBpZiAodGhpcy5vcHRzLnByaW50UGFnZVNvdXJjZU9uRmluZEZhaWx1cmUpIHtcbiAgICAgICAgICBjb25zdCBzcmMgPSBhd2FpdCB0aGlzLmdldFBhZ2VTb3VyY2UoKTtcbiAgICAgICAgICB0aGlzLmxvZy5kZWJ1ZyhcbiAgICAgICAgICAgIGBFcnJvciBmaW5kaW5nIGVsZW1lbnQke211bHQgPyAncycgOiAnJ306ICR7ZXJyLm1lc3NhZ2V9YCxcbiAgICAgICAgICApO1xuICAgICAgICAgIHRoaXMubG9nLmRlYnVnKFxuICAgICAgICAgICAgYFBhZ2Ugc291cmNlIHJlcXVlc3RlZCB0aHJvdWdoICdwcmludFBhZ2VTb3VyY2VPbkZpbmRGYWlsdXJlJzpgLFxuICAgICAgICAgICk7XG4gICAgICAgICAgdGhpcy5sb2cuZGVidWcoc3JjKTtcbiAgICAgICAgfVxuICAgICAgICAvLyBzdGlsbCB3YW50IHRoZSBlcnJvciB0byBvY2N1clxuICAgICAgICB0aHJvdyBlcnI7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIEZpbmRDb21tYW5kcztcbn1cblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRWxlbWVudH0gRWxlbWVudFxuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLkZpbmRDb21tYW5kc30gSUZpbmRDb21tYW5kc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi9ldmVudCcpLkV2ZW50QmFzZX0gRXZlbnRCYXNlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9kcml2ZXInKS5CYXNlRHJpdmVyQmFzZTxpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5UaW1lb3V0Q29tbWFuZHMgJiBpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5FdmVudENvbW1hbmRzICYgSUZpbmRDb21tYW5kcz59IEZpbmRCYXNlXG4gKi9cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBR0E7O0FBT08sU0FBU0EsU0FBVCxDQUFvQkMsSUFBcEIsRUFBMEI7RUFJL0IsTUFBTUMsWUFBTixTQUEyQkQsSUFBM0IsQ0FBZ0M7SUFLYixNQUFYRSxXQUFXLENBQUVDLFFBQUYsRUFBWUMsUUFBWixFQUFzQjtNQUNyQyxPQUFPLE1BQU0sS0FBS0MseUJBQUwsQ0FBK0JGLFFBQS9CLEVBQXlDQyxRQUF6QyxFQUFtRCxLQUFuRCxDQUFiO0lBQ0Q7O0lBTWlCLE1BQVpFLFlBQVksQ0FBRUgsUUFBRixFQUFZQyxRQUFaLEVBQXNCO01BQ3RDLE9BQU8sTUFBTSxLQUFLQyx5QkFBTCxDQUErQkYsUUFBL0IsRUFBeUNDLFFBQXpDLEVBQW1ELElBQW5ELENBQWI7SUFDRDs7SUFNMkIsTUFBdEJHLHNCQUFzQixDQUFFSixRQUFGLEVBQVlDLFFBQVosRUFBc0JJLFNBQXRCLEVBQWlDO01BQzNELE9BQU8sTUFBTSxLQUFLSCx5QkFBTCxDQUNYRixRQURXLEVBRVhDLFFBRlcsRUFHWCxLQUhXLEVBSVhJLFNBSlcsQ0FBYjtJQU1EOztJQU00QixNQUF2QkMsdUJBQXVCLENBQUVOLFFBQUYsRUFBWUMsUUFBWixFQUFzQkksU0FBdEIsRUFBaUM7TUFDNUQsT0FBTyxNQUFNLEtBQUtILHlCQUFMLENBQ1hGLFFBRFcsRUFFWEMsUUFGVyxFQUdYLElBSFcsRUFJWEksU0FKVyxDQUFiO0lBTUQ7O0lBYWdCLE1BQVhFLFdBQVcsQ0FBRVAsUUFBRixFQUFZQyxRQUFaLEVBQXNCTyxJQUF0QixFQUE0QkMsT0FBNUIsRUFBcUM7TUFDcEQsTUFBTSxJQUFJQyxpQkFBT0MsbUJBQVgsQ0FBK0IsK0JBQS9CLENBQU47SUFDRDs7SUFLa0IsTUFBYkMsYUFBYSxHQUFJO01BQ3JCLE1BQU0sSUFBSUYsaUJBQU9DLG1CQUFYLENBQStCLCtCQUEvQixDQUFOO0lBQ0Q7O0lBUzhCLE1BQXpCVCx5QkFBeUIsQ0FBRUYsUUFBRixFQUFZQyxRQUFaLEVBQXNCTyxJQUF0QixFQUE0QkMsT0FBNUIsRUFBcUM7TUFDbEUsS0FBS0ksdUJBQUwsQ0FBNkJiLFFBQTdCOztNQUNBLElBQUk7UUFDRixPQUFPLE1BQU0sS0FBS08sV0FBTCxDQUFpQlAsUUFBakIsRUFBMkJDLFFBQTNCLEVBQXFDTyxJQUFyQyxFQUEyQ0MsT0FBM0MsQ0FBYjtNQUNELENBRkQsQ0FFRSxPQUFPSyxHQUFQLEVBQVk7UUFDWixJQUFJLEtBQUtDLElBQUwsQ0FBVUMsNEJBQWQsRUFBNEM7VUFDMUMsTUFBTUMsR0FBRyxHQUFHLE1BQU0sS0FBS0wsYUFBTCxFQUFsQjtVQUNBLEtBQUtNLEdBQUwsQ0FBU0MsS0FBVCxDQUNHLHdCQUF1QlgsSUFBSSxHQUFHLEdBQUgsR0FBUyxFQUFHLEtBQUlNLEdBQUcsQ0FBQ00sT0FBUSxFQUQxRDtVQUdBLEtBQUtGLEdBQUwsQ0FBU0MsS0FBVCxDQUNHLCtEQURIO1VBR0EsS0FBS0QsR0FBTCxDQUFTQyxLQUFULENBQWVGLEdBQWY7UUFDRDs7UUFFRCxNQUFNSCxHQUFOO01BQ0Q7SUFDRjs7RUExRjZCOztFQTZGaEMsT0FBT2hCLFlBQVA7QUFDRCJ9
@@ -28,4 +28,4 @@ function createBaseDriverClass(Base) {
28
28
  const WithSessionCommands = (0, _session.SessionMixin)(WithSettingsCommands);
29
29
  return WithSessionCommands;
30
30
  }
31
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL2luZGV4LmpzIl0sIm5hbWVzIjpbImNyZWF0ZUJhc2VEcml2ZXJDbGFzcyIsIkJhc2UiLCJXaXRoVGltZW91dENvbW1hbmRzIiwiV2l0aEV2ZW50Q29tbWFuZHMiLCJXaXRoRmluZENvbW1hbmRzIiwiV2l0aExvZ0NvbW1hbmRzIiwiV2l0aFNldHRpbmdzQ29tbWFuZHMiLCJXaXRoU2Vzc2lvbkNvbW1hbmRzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFPTyxTQUFTQSxxQkFBVCxDQUFnQ0MsSUFBaEMsRUFBc0M7QUFDM0MsUUFBTUMsbUJBQW1CLEdBQUcsMkJBQWFELElBQWIsQ0FBNUI7QUFDQSxRQUFNRSxpQkFBaUIsR0FBRyx1QkFBV0QsbUJBQVgsQ0FBMUI7QUFDQSxRQUFNRSxnQkFBZ0IsR0FBRyxxQkFBVUQsaUJBQVYsQ0FBekI7QUFDQSxRQUFNRSxlQUFlLEdBQUcsbUJBQVNELGdCQUFULENBQXhCO0FBQ0EsUUFBTUUsb0JBQW9CLEdBQUcsNkJBQWNELGVBQWQsQ0FBN0I7QUFDQSxRQUFNRSxtQkFBbUIsR0FBRywyQkFBYUQsb0JBQWIsQ0FBNUI7QUFDQSxTQUFPQyxtQkFBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbmltcG9ydCB7IEV2ZW50TWl4aW4gfSBmcm9tICcuL2V2ZW50JztcbmltcG9ydCB7IEZpbmRNaXhpbiB9IGZyb20gJy4vZmluZCc7XG5pbXBvcnQgeyBMb2dNaXhpbiB9IGZyb20gJy4vbG9nJztcbmltcG9ydCB7IFNlc3Npb25NaXhpbiB9IGZyb20gJy4vc2Vzc2lvbic7XG5pbXBvcnQgeyBTZXR0aW5nc01peGluIH0gZnJvbSAnLi9zZXR0aW5ncyc7XG5pbXBvcnQgeyBUaW1lb3V0TWl4aW4gfSBmcm9tICcuL3RpbWVvdXQnO1xuXG4vKipcbiAqIEFwcGxpZXMgYWxsIHRoZSBtaXhpbnMgdG8gdGhlIGBCYXNlRHJpdmVyQmFzZWAgY2xhc3MuXG4gKiBSZXR1cm5zIGEgYEJhc2VEcml2ZXJgIGNsYXNzLlxuICogQHBhcmFtIHtCYXNlRHJpdmVyQmFzZX0gQmFzZVxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQmFzZURyaXZlckNsYXNzIChCYXNlKSB7XG4gIGNvbnN0IFdpdGhUaW1lb3V0Q29tbWFuZHMgPSBUaW1lb3V0TWl4aW4oQmFzZSk7XG4gIGNvbnN0IFdpdGhFdmVudENvbW1hbmRzID0gRXZlbnRNaXhpbihXaXRoVGltZW91dENvbW1hbmRzKTtcbiAgY29uc3QgV2l0aEZpbmRDb21tYW5kcyA9IEZpbmRNaXhpbihXaXRoRXZlbnRDb21tYW5kcyk7XG4gIGNvbnN0IFdpdGhMb2dDb21tYW5kcyA9IExvZ01peGluKFdpdGhGaW5kQ29tbWFuZHMpO1xuICBjb25zdCBXaXRoU2V0dGluZ3NDb21tYW5kcyA9IFNldHRpbmdzTWl4aW4oV2l0aExvZ0NvbW1hbmRzKTtcbiAgY29uc3QgV2l0aFNlc3Npb25Db21tYW5kcyA9IFNlc3Npb25NaXhpbihXaXRoU2V0dGluZ3NDb21tYW5kcyk7XG4gIHJldHVybiBXaXRoU2Vzc2lvbkNvbW1hbmRzO1xufVxuXG4vKipcbiAqIEB0ZW1wbGF0ZSBbVD17fV1cbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2RyaXZlcicpLkJhc2VEcml2ZXJCYXNlPFQ+fSBCYXNlRHJpdmVyQmFzZVxuICovXG4iXX0=
31
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJjcmVhdGVCYXNlRHJpdmVyQ2xhc3MiLCJCYXNlIiwiV2l0aFRpbWVvdXRDb21tYW5kcyIsIldpdGhFdmVudENvbW1hbmRzIiwiV2l0aEZpbmRDb21tYW5kcyIsIldpdGhMb2dDb21tYW5kcyIsIldpdGhTZXR0aW5nc0NvbW1hbmRzIiwiV2l0aFNlc3Npb25Db21tYW5kcyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgeyBFdmVudE1peGluIH0gZnJvbSAnLi9ldmVudCc7XG5pbXBvcnQgeyBGaW5kTWl4aW4gfSBmcm9tICcuL2ZpbmQnO1xuaW1wb3J0IHsgTG9nTWl4aW4gfSBmcm9tICcuL2xvZyc7XG5pbXBvcnQgeyBTZXNzaW9uTWl4aW4gfSBmcm9tICcuL3Nlc3Npb24nO1xuaW1wb3J0IHsgU2V0dGluZ3NNaXhpbiB9IGZyb20gJy4vc2V0dGluZ3MnO1xuaW1wb3J0IHsgVGltZW91dE1peGluIH0gZnJvbSAnLi90aW1lb3V0JztcblxuLyoqXG4gKiBBcHBsaWVzIGFsbCB0aGUgbWl4aW5zIHRvIHRoZSBgQmFzZURyaXZlckJhc2VgIGNsYXNzLlxuICogUmV0dXJucyBhIGBCYXNlRHJpdmVyYCBjbGFzcy5cbiAqIEBwYXJhbSB7QmFzZURyaXZlckJhc2V9IEJhc2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUJhc2VEcml2ZXJDbGFzcyAoQmFzZSkge1xuICBjb25zdCBXaXRoVGltZW91dENvbW1hbmRzID0gVGltZW91dE1peGluKEJhc2UpO1xuICBjb25zdCBXaXRoRXZlbnRDb21tYW5kcyA9IEV2ZW50TWl4aW4oV2l0aFRpbWVvdXRDb21tYW5kcyk7XG4gIGNvbnN0IFdpdGhGaW5kQ29tbWFuZHMgPSBGaW5kTWl4aW4oV2l0aEV2ZW50Q29tbWFuZHMpO1xuICBjb25zdCBXaXRoTG9nQ29tbWFuZHMgPSBMb2dNaXhpbihXaXRoRmluZENvbW1hbmRzKTtcbiAgY29uc3QgV2l0aFNldHRpbmdzQ29tbWFuZHMgPSBTZXR0aW5nc01peGluKFdpdGhMb2dDb21tYW5kcyk7XG4gIGNvbnN0IFdpdGhTZXNzaW9uQ29tbWFuZHMgPSBTZXNzaW9uTWl4aW4oV2l0aFNldHRpbmdzQ29tbWFuZHMpO1xuICByZXR1cm4gV2l0aFNlc3Npb25Db21tYW5kcztcbn1cblxuLyoqXG4gKiBAdGVtcGxhdGUgW1Q9e31dXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9kcml2ZXInKS5CYXNlRHJpdmVyQmFzZTxUPn0gQmFzZURyaXZlckJhc2VcbiAqL1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFPTyxTQUFTQSxxQkFBVCxDQUFnQ0MsSUFBaEMsRUFBc0M7RUFDM0MsTUFBTUMsbUJBQW1CLEdBQUcsMkJBQWFELElBQWIsQ0FBNUI7RUFDQSxNQUFNRSxpQkFBaUIsR0FBRyx1QkFBV0QsbUJBQVgsQ0FBMUI7RUFDQSxNQUFNRSxnQkFBZ0IsR0FBRyxxQkFBVUQsaUJBQVYsQ0FBekI7RUFDQSxNQUFNRSxlQUFlLEdBQUcsbUJBQVNELGdCQUFULENBQXhCO0VBQ0EsTUFBTUUsb0JBQW9CLEdBQUcsNkJBQWNELGVBQWQsQ0FBN0I7RUFDQSxNQUFNRSxtQkFBbUIsR0FBRywyQkFBYUQsb0JBQWIsQ0FBNUI7RUFDQSxPQUFPQyxtQkFBUDtBQUNEIn0=
@@ -41,4 +41,4 @@ function LogMixin(Base) {
41
41
 
42
42
  return LogCommands;
43
43
  }
44
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL2xvZy5qcyJdLCJuYW1lcyI6WyJMb2dNaXhpbiIsIkJhc2UiLCJMb2dDb21tYW5kcyIsImNvbnN0cnVjdG9yIiwiYXJncyIsInN1cHBvcnRlZExvZ1R5cGVzIiwiZ2V0TG9nVHlwZXMiLCJsb2ciLCJkZWJ1ZyIsIl8iLCJrZXlzIiwiZ2V0TG9nIiwibG9nVHlwZSIsImluY2x1ZGVzIiwibG9nc1R5cGVzV2l0aERlc2NyaXB0aW9ucyIsIm1hcFZhbHVlcyIsIkVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsImdldHRlciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFHQTs7QUFPTyxTQUFTQSxRQUFULENBQW1CQyxJQUFuQixFQUF5QjtBQUk5QixRQUFNQyxXQUFOLFNBQTBCRCxJQUExQixDQUErQjtBQUU3QkUsSUFBQUEsV0FBVyxDQUFFLEdBQUdDLElBQUwsRUFBVztBQUFBOztBQUNwQixZQUFNLEdBQUdBLElBQVQ7QUFFQSxXQUFLQyxpQkFBTCw0QkFBeUIsS0FBS0EsaUJBQTlCLHlFQUFtRCxFQUFuRDtBQUNEOztBQUVnQixVQUFYQyxXQUFXLEdBQUk7QUFDbkIsV0FBS0MsR0FBTCxDQUFTQyxLQUFULENBQWUsZ0NBQWY7QUFDQSxhQUFPQyxnQkFBRUMsSUFBRixDQUFPLEtBQUtMLGlCQUFaLENBQVA7QUFDRDs7QUFNVyxVQUFOTSxNQUFNLENBQUVDLE9BQUYsRUFBVztBQUNyQixXQUFLTCxHQUFMLENBQVNDLEtBQVQsQ0FBZ0IsZUFBY0ksT0FBUSxRQUF0Qzs7QUFFQSxVQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUtOLFdBQUwsRUFBUCxFQUEyQk8sUUFBM0IsQ0FBb0NELE9BQXBDLENBQUwsRUFBbUQ7QUFDakQsY0FBTUUseUJBQXlCLEdBQUdMLGdCQUFFTSxTQUFGLENBQVksS0FBS1YsaUJBQWpCLEVBQW9DLGFBQXBDLENBQWxDOztBQUNBLGNBQU0sSUFBSVcsS0FBSixDQUNILHlCQUF3QkosT0FBUSxLQUFqQyxHQUNHLG9CQUFtQkssSUFBSSxDQUFDQyxTQUFMLENBQWVKLHlCQUFmLENBQTBDLEVBRjVELENBQU47QUFJRDs7QUFFRCxhQUFPLE1BQU0sS0FBS1QsaUJBQUwsQ0FBdUJPLE9BQXZCLEVBQWdDTyxNQUFoQyxDQUF1QyxJQUF2QyxDQUFiO0FBQ0Q7O0FBN0I0Qjs7QUErQi9CLFNBQU9qQixXQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSByZXF1aXJlLWF3YWl0ICovXG4vLyBAdHMtY2hlY2tcblxuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuLyoqXG4gKlxuICogQHBhcmFtIHtGaW5kQmFzZX0gQmFzZVxuICogQHJldHVybnMge0xvZ0Jhc2V9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBMb2dNaXhpbiAoQmFzZSkge1xuICAvKipcbiAgICogQGltcGxlbWVudHMge0lMb2dDb21tYW5kc31cbiAgICovXG4gIGNsYXNzIExvZ0NvbW1hbmRzIGV4dGVuZHMgQmFzZSB7XG5cbiAgICBjb25zdHJ1Y3RvciAoLi4uYXJncykge1xuICAgICAgc3VwZXIoLi4uYXJncyk7XG4gICAgICAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIExvZ1R5cGU8RHJpdmVyPj59ICovXG4gICAgICB0aGlzLnN1cHBvcnRlZExvZ1R5cGVzID0gdGhpcy5zdXBwb3J0ZWRMb2dUeXBlcyA/PyB7fTtcbiAgICB9XG5cbiAgICBhc3luYyBnZXRMb2dUeXBlcyAoKSB7XG4gICAgICB0aGlzLmxvZy5kZWJ1ZygnUmV0cmlldmluZyBzdXBwb3J0ZWQgbG9nIHR5cGVzJyk7XG4gICAgICByZXR1cm4gXy5rZXlzKHRoaXMuc3VwcG9ydGVkTG9nVHlwZXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEB0aGlzIHtEcml2ZXJ9XG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGxvZ1R5cGVcbiAgICAgKi9cbiAgICBhc3luYyBnZXRMb2cgKGxvZ1R5cGUpIHtcbiAgICAgIHRoaXMubG9nLmRlYnVnKGBSZXRyaWV2aW5nICcke2xvZ1R5cGV9JyBsb2dzYCk7XG5cbiAgICAgIGlmICghKGF3YWl0IHRoaXMuZ2V0TG9nVHlwZXMoKSkuaW5jbHVkZXMobG9nVHlwZSkpIHtcbiAgICAgICAgY29uc3QgbG9nc1R5cGVzV2l0aERlc2NyaXB0aW9ucyA9IF8ubWFwVmFsdWVzKHRoaXMuc3VwcG9ydGVkTG9nVHlwZXMsICdkZXNjcmlwdGlvbicpO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFVuc3VwcG9ydGVkIGxvZyB0eXBlICcke2xvZ1R5cGV9Jy4gYCArXG4gICAgICAgICAgICBgU3VwcG9ydGVkIHR5cGVzOiAke0pTT04uc3RyaW5naWZ5KGxvZ3NUeXBlc1dpdGhEZXNjcmlwdGlvbnMpfWAsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLnN1cHBvcnRlZExvZ1R5cGVzW2xvZ1R5cGVdLmdldHRlcih0aGlzKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIExvZ0NvbW1hbmRzO1xufVxuXG5cbi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLkxvZ0NvbW1hbmRzfSBJTG9nQ29tbWFuZHNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5Ecml2ZXJ9IERyaXZlclxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9maW5kJykuRmluZEJhc2V9IEZpbmRCYXNlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9kcml2ZXInKS5CYXNlRHJpdmVyQmFzZTxpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5UaW1lb3V0Q29tbWFuZHMgJiBpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5FdmVudENvbW1hbmRzICYgaW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRmluZENvbW1hbmRzICYgSUxvZ0NvbW1hbmRzPn0gTG9nQmFzZVxuICovXG5cbi8qKlxuICogQHRlbXBsYXRlIFRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5Mb2dUeXBlPFQ+fSBMb2dUeXBlXG4gKi9cbiJdfQ==
44
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJMb2dNaXhpbiIsIkJhc2UiLCJMb2dDb21tYW5kcyIsImNvbnN0cnVjdG9yIiwiYXJncyIsInN1cHBvcnRlZExvZ1R5cGVzIiwiZ2V0TG9nVHlwZXMiLCJsb2ciLCJkZWJ1ZyIsIl8iLCJrZXlzIiwiZ2V0TG9nIiwibG9nVHlwZSIsImluY2x1ZGVzIiwibG9nc1R5cGVzV2l0aERlc2NyaXB0aW9ucyIsIm1hcFZhbHVlcyIsIkVycm9yIiwiSlNPTiIsInN0cmluZ2lmeSIsImdldHRlciJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL2xvZy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSByZXF1aXJlLWF3YWl0ICovXG4vLyBAdHMtY2hlY2tcblxuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuLyoqXG4gKlxuICogQHBhcmFtIHtGaW5kQmFzZX0gQmFzZVxuICogQHJldHVybnMge0xvZ0Jhc2V9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBMb2dNaXhpbiAoQmFzZSkge1xuICAvKipcbiAgICogQGltcGxlbWVudHMge0lMb2dDb21tYW5kc31cbiAgICovXG4gIGNsYXNzIExvZ0NvbW1hbmRzIGV4dGVuZHMgQmFzZSB7XG5cbiAgICBjb25zdHJ1Y3RvciAoLi4uYXJncykge1xuICAgICAgc3VwZXIoLi4uYXJncyk7XG4gICAgICAvKiogQHR5cGUge1JlY29yZDxzdHJpbmcsIExvZ1R5cGU8RHJpdmVyPj59ICovXG4gICAgICB0aGlzLnN1cHBvcnRlZExvZ1R5cGVzID0gdGhpcy5zdXBwb3J0ZWRMb2dUeXBlcyA/PyB7fTtcbiAgICB9XG5cbiAgICBhc3luYyBnZXRMb2dUeXBlcyAoKSB7XG4gICAgICB0aGlzLmxvZy5kZWJ1ZygnUmV0cmlldmluZyBzdXBwb3J0ZWQgbG9nIHR5cGVzJyk7XG4gICAgICByZXR1cm4gXy5rZXlzKHRoaXMuc3VwcG9ydGVkTG9nVHlwZXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEB0aGlzIHtEcml2ZXJ9XG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGxvZ1R5cGVcbiAgICAgKi9cbiAgICBhc3luYyBnZXRMb2cgKGxvZ1R5cGUpIHtcbiAgICAgIHRoaXMubG9nLmRlYnVnKGBSZXRyaWV2aW5nICcke2xvZ1R5cGV9JyBsb2dzYCk7XG5cbiAgICAgIGlmICghKGF3YWl0IHRoaXMuZ2V0TG9nVHlwZXMoKSkuaW5jbHVkZXMobG9nVHlwZSkpIHtcbiAgICAgICAgY29uc3QgbG9nc1R5cGVzV2l0aERlc2NyaXB0aW9ucyA9IF8ubWFwVmFsdWVzKHRoaXMuc3VwcG9ydGVkTG9nVHlwZXMsICdkZXNjcmlwdGlvbicpO1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFVuc3VwcG9ydGVkIGxvZyB0eXBlICcke2xvZ1R5cGV9Jy4gYCArXG4gICAgICAgICAgICBgU3VwcG9ydGVkIHR5cGVzOiAke0pTT04uc3RyaW5naWZ5KGxvZ3NUeXBlc1dpdGhEZXNjcmlwdGlvbnMpfWAsXG4gICAgICAgICk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBhd2FpdCB0aGlzLnN1cHBvcnRlZExvZ1R5cGVzW2xvZ1R5cGVdLmdldHRlcih0aGlzKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIExvZ0NvbW1hbmRzO1xufVxuXG5cbi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLkxvZ0NvbW1hbmRzfSBJTG9nQ29tbWFuZHNcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5Ecml2ZXJ9IERyaXZlclxuICogQHR5cGVkZWYge2ltcG9ydCgnLi9maW5kJykuRmluZEJhc2V9IEZpbmRCYXNlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9kcml2ZXInKS5CYXNlRHJpdmVyQmFzZTxpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5UaW1lb3V0Q29tbWFuZHMgJiBpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5FdmVudENvbW1hbmRzICYgaW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRmluZENvbW1hbmRzICYgSUxvZ0NvbW1hbmRzPn0gTG9nQmFzZVxuICovXG5cbi8qKlxuICogQHRlbXBsYXRlIFRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5Mb2dUeXBlPFQ+fSBMb2dUeXBlXG4gKi9cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFHQTs7QUFPTyxTQUFTQSxRQUFULENBQW1CQyxJQUFuQixFQUF5QjtFQUk5QixNQUFNQyxXQUFOLFNBQTBCRCxJQUExQixDQUErQjtJQUU3QkUsV0FBVyxDQUFFLEdBQUdDLElBQUwsRUFBVztNQUFBOztNQUNwQixNQUFNLEdBQUdBLElBQVQ7TUFFQSxLQUFLQyxpQkFBTCw0QkFBeUIsS0FBS0EsaUJBQTlCLHlFQUFtRCxFQUFuRDtJQUNEOztJQUVnQixNQUFYQyxXQUFXLEdBQUk7TUFDbkIsS0FBS0MsR0FBTCxDQUFTQyxLQUFULENBQWUsZ0NBQWY7TUFDQSxPQUFPQyxnQkFBRUMsSUFBRixDQUFPLEtBQUtMLGlCQUFaLENBQVA7SUFDRDs7SUFNVyxNQUFOTSxNQUFNLENBQUVDLE9BQUYsRUFBVztNQUNyQixLQUFLTCxHQUFMLENBQVNDLEtBQVQsQ0FBZ0IsZUFBY0ksT0FBUSxRQUF0Qzs7TUFFQSxJQUFJLENBQUMsQ0FBQyxNQUFNLEtBQUtOLFdBQUwsRUFBUCxFQUEyQk8sUUFBM0IsQ0FBb0NELE9BQXBDLENBQUwsRUFBbUQ7UUFDakQsTUFBTUUseUJBQXlCLEdBQUdMLGdCQUFFTSxTQUFGLENBQVksS0FBS1YsaUJBQWpCLEVBQW9DLGFBQXBDLENBQWxDOztRQUNBLE1BQU0sSUFBSVcsS0FBSixDQUNILHlCQUF3QkosT0FBUSxLQUFqQyxHQUNHLG9CQUFtQkssSUFBSSxDQUFDQyxTQUFMLENBQWVKLHlCQUFmLENBQTBDLEVBRjVELENBQU47TUFJRDs7TUFFRCxPQUFPLE1BQU0sS0FBS1QsaUJBQUwsQ0FBdUJPLE9BQXZCLEVBQWdDTyxNQUFoQyxDQUF1QyxJQUF2QyxDQUFiO0lBQ0Q7O0VBN0I0Qjs7RUErQi9CLE9BQU9qQixXQUFQO0FBQ0QifQ==
@@ -40,4 +40,4 @@ function SessionMixin(Base) {
40
40
 
41
41
  return SessionCommands;
42
42
  }
43
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL3Nlc3Npb24uanMiXSwibmFtZXMiOlsiU2Vzc2lvbk1peGluIiwiQmFzZSIsIlNlc3Npb25Db21tYW5kcyIsImdldFNlc3Npb25zIiwicmV0Iiwic2Vzc2lvbklkIiwicHVzaCIsImlkIiwiY2FwYWJpbGl0aWVzIiwiY2FwcyIsImdldFNlc3Npb24iLCJldmVudFRpbWluZ3MiLCJldmVudHMiLCJldmVudEhpc3RvcnkiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBR0E7O0FBTU8sU0FBU0EsWUFBVCxDQUF1QkMsSUFBdkIsRUFBNkI7QUFJbEMsUUFBTUMsZUFBTixTQUE4QkQsSUFBOUIsQ0FBbUM7QUFJaEIsVUFBWEUsV0FBVyxHQUFJO0FBQ25CLFVBQUlDLEdBQUcsR0FBRyxFQUFWOztBQUVBLFVBQUksS0FBS0MsU0FBVCxFQUFvQjtBQUNsQkQsUUFBQUEsR0FBRyxDQUFDRSxJQUFKLENBQVM7QUFDUEMsVUFBQUEsRUFBRSxFQUFFLEtBQUtGLFNBREY7QUFFUEcsVUFBQUEsWUFBWSxFQUFFLEtBQUtDO0FBRlosU0FBVDtBQUlEOztBQUVELGFBQU9MLEdBQVA7QUFDRDs7QUFLZSxVQUFWTSxVQUFVLEdBQUk7QUFDbEIsVUFBSSxLQUFLRCxJQUFMLENBQVVFLFlBQWQsRUFBNEI7QUFDMUIsZUFBTyxFQUFDLEdBQUcsS0FBS0YsSUFBVDtBQUFlRyxVQUFBQSxNQUFNLEVBQUUsS0FBS0M7QUFBNUIsU0FBUDtBQUNEOztBQUNELGFBQU8sS0FBS0osSUFBWjtBQUNEOztBQXpCZ0M7O0FBNEJuQyxTQUFPUCxlQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby11bnVzZWQtdmFycyAqL1xuLyogZXNsaW50LWRpc2FibGUgcmVxdWlyZS1hd2FpdCAqL1xuLy8gQHRzLWNoZWNrXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG4vKipcbiAqIEBwYXJhbSB7U2V0dGluZ3NCYXNlfSBCYXNlXG4gKiBAcmV0dXJucyB7U2Vzc2lvbkJhc2V9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBTZXNzaW9uTWl4aW4gKEJhc2UpIHtcbiAgLyoqXG4gICAqIEBpbXBsZW1lbnRzIHtJU2Vzc2lvbkNvbW1hbmRzfVxuICAgKi9cbiAgY2xhc3MgU2Vzc2lvbkNvbW1hbmRzIGV4dGVuZHMgQmFzZSB7XG4gICAgLyoqXG4gICAgICogQHJldHVybnMge1Byb21pc2U8TXVsdGlTZXNzaW9uRGF0YVtdPn1cbiAgICAgKi9cbiAgICBhc3luYyBnZXRTZXNzaW9ucyAoKSB7XG4gICAgICBsZXQgcmV0ID0gW107XG5cbiAgICAgIGlmICh0aGlzLnNlc3Npb25JZCkge1xuICAgICAgICByZXQucHVzaCh7XG4gICAgICAgICAgaWQ6IHRoaXMuc2Vzc2lvbklkLFxuICAgICAgICAgIGNhcGFiaWxpdGllczogdGhpcy5jYXBzLFxuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJldDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAcmV0dXJucyB7UHJvbWlzZTxTaW5ndWxhclNlc3Npb25EYXRhPn1cbiAgICAgKi9cbiAgICBhc3luYyBnZXRTZXNzaW9uICgpIHtcbiAgICAgIGlmICh0aGlzLmNhcHMuZXZlbnRUaW1pbmdzKSB7XG4gICAgICAgIHJldHVybiB7Li4udGhpcy5jYXBzLCBldmVudHM6IHRoaXMuZXZlbnRIaXN0b3J5fTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmNhcHM7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIFNlc3Npb25Db21tYW5kcztcbn1cblxuLyoqXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuU2Vzc2lvbkNvbW1hbmRzfSBJU2Vzc2lvbkNvbW1hbmRzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuU2luZ3VsYXJTZXNzaW9uRGF0YX0gU2luZ3VsYXJTZXNzaW9uRGF0YVxuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLk11bHRpU2Vzc2lvbkRhdGF9IE11bHRpU2Vzc2lvbkRhdGFcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4vc2V0dGluZ3MnKS5TZXR0aW5nc0Jhc2V9IFNldHRpbmdzQmFzZVxuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vZHJpdmVyJykuQmFzZURyaXZlckJhc2U8aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuVGltZW91dENvbW1hbmRzICYgaW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRXZlbnRDb21tYW5kcyAmIGltcG9ydCgnQGFwcGl1bS90eXBlcycpLkZpbmRDb21tYW5kcyAmIGltcG9ydCgnQGFwcGl1bS90eXBlcycpLkxvZ0NvbW1hbmRzICYgaW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuU2V0dGluZ3NDb21tYW5kcyAmIElTZXNzaW9uQ29tbWFuZHM+fSBTZXNzaW9uQmFzZVxuICovXG4iXX0=
43
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTZXNzaW9uTWl4aW4iLCJCYXNlIiwiU2Vzc2lvbkNvbW1hbmRzIiwiZ2V0U2Vzc2lvbnMiLCJyZXQiLCJzZXNzaW9uSWQiLCJwdXNoIiwiaWQiLCJjYXBhYmlsaXRpZXMiLCJjYXBzIiwiZ2V0U2Vzc2lvbiIsImV2ZW50VGltaW5ncyIsImV2ZW50cyIsImV2ZW50SGlzdG9yeSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL3Nlc3Npb24uanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlcXVpcmUtYXdhaXQgKi9cbi8vIEB0cy1jaGVja1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuLyoqXG4gKiBAcGFyYW0ge1NldHRpbmdzQmFzZX0gQmFzZVxuICogQHJldHVybnMge1Nlc3Npb25CYXNlfVxuICovXG5leHBvcnQgZnVuY3Rpb24gU2Vzc2lvbk1peGluIChCYXNlKSB7XG4gIC8qKlxuICAgKiBAaW1wbGVtZW50cyB7SVNlc3Npb25Db21tYW5kc31cbiAgICovXG4gIGNsYXNzIFNlc3Npb25Db21tYW5kcyBleHRlbmRzIEJhc2Uge1xuICAgIC8qKlxuICAgICAqIEByZXR1cm5zIHtQcm9taXNlPE11bHRpU2Vzc2lvbkRhdGFbXT59XG4gICAgICovXG4gICAgYXN5bmMgZ2V0U2Vzc2lvbnMgKCkge1xuICAgICAgbGV0IHJldCA9IFtdO1xuXG4gICAgICBpZiAodGhpcy5zZXNzaW9uSWQpIHtcbiAgICAgICAgcmV0LnB1c2goe1xuICAgICAgICAgIGlkOiB0aGlzLnNlc3Npb25JZCxcbiAgICAgICAgICBjYXBhYmlsaXRpZXM6IHRoaXMuY2FwcyxcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQHJldHVybnMge1Byb21pc2U8U2luZ3VsYXJTZXNzaW9uRGF0YT59XG4gICAgICovXG4gICAgYXN5bmMgZ2V0U2Vzc2lvbiAoKSB7XG4gICAgICBpZiAodGhpcy5jYXBzLmV2ZW50VGltaW5ncykge1xuICAgICAgICByZXR1cm4gey4uLnRoaXMuY2FwcywgZXZlbnRzOiB0aGlzLmV2ZW50SGlzdG9yeX07XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5jYXBzO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBTZXNzaW9uQ29tbWFuZHM7XG59XG5cbi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLlNlc3Npb25Db21tYW5kc30gSVNlc3Npb25Db21tYW5kc1xuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLlNpbmd1bGFyU2Vzc2lvbkRhdGF9IFNpbmd1bGFyU2Vzc2lvbkRhdGFcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5NdWx0aVNlc3Npb25EYXRhfSBNdWx0aVNlc3Npb25EYXRhXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL3NldHRpbmdzJykuU2V0dGluZ3NCYXNlfSBTZXR0aW5nc0Jhc2VcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2RyaXZlcicpLkJhc2VEcml2ZXJCYXNlPGltcG9ydCgnQGFwcGl1bS90eXBlcycpLlRpbWVvdXRDb21tYW5kcyAmIGltcG9ydCgnQGFwcGl1bS90eXBlcycpLkV2ZW50Q29tbWFuZHMgJiBpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5GaW5kQ29tbWFuZHMgJiBpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5Mb2dDb21tYW5kcyAmIGltcG9ydCgnQGFwcGl1bS90eXBlcycpLlNldHRpbmdzQ29tbWFuZHMgJiBJU2Vzc2lvbkNvbW1hbmRzPn0gU2Vzc2lvbkJhc2VcbiAqL1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUdBOztBQU1PLFNBQVNBLFlBQVQsQ0FBdUJDLElBQXZCLEVBQTZCO0VBSWxDLE1BQU1DLGVBQU4sU0FBOEJELElBQTlCLENBQW1DO0lBSWhCLE1BQVhFLFdBQVcsR0FBSTtNQUNuQixJQUFJQyxHQUFHLEdBQUcsRUFBVjs7TUFFQSxJQUFJLEtBQUtDLFNBQVQsRUFBb0I7UUFDbEJELEdBQUcsQ0FBQ0UsSUFBSixDQUFTO1VBQ1BDLEVBQUUsRUFBRSxLQUFLRixTQURGO1VBRVBHLFlBQVksRUFBRSxLQUFLQztRQUZaLENBQVQ7TUFJRDs7TUFFRCxPQUFPTCxHQUFQO0lBQ0Q7O0lBS2UsTUFBVk0sVUFBVSxHQUFJO01BQ2xCLElBQUksS0FBS0QsSUFBTCxDQUFVRSxZQUFkLEVBQTRCO1FBQzFCLE9BQU8sRUFBQyxHQUFHLEtBQUtGLElBQVQ7VUFBZUcsTUFBTSxFQUFFLEtBQUtDO1FBQTVCLENBQVA7TUFDRDs7TUFDRCxPQUFPLEtBQUtKLElBQVo7SUFDRDs7RUF6QmdDOztFQTRCbkMsT0FBT1AsZUFBUDtBQUNEIn0=
@@ -29,4 +29,4 @@ function SettingsMixin(Base) {
29
29
 
30
30
  return SettingsCommands;
31
31
  }
32
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL3NldHRpbmdzLmpzIl0sIm5hbWVzIjpbIlNldHRpbmdzTWl4aW4iLCJCYXNlIiwiU2V0dGluZ3NDb21tYW5kcyIsInVwZGF0ZVNldHRpbmdzIiwibmV3U2V0dGluZ3MiLCJzZXR0aW5ncyIsImxvZyIsImVycm9yQW5kVGhyb3ciLCJ1cGRhdGUiLCJnZXRTZXR0aW5ncyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBT08sU0FBU0EsYUFBVCxDQUF3QkMsSUFBeEIsRUFBOEI7QUFJbkMsUUFBTUMsZ0JBQU4sU0FBK0JELElBQS9CLENBQW9DO0FBRWQsVUFBZEUsY0FBYyxDQUFFQyxXQUFGLEVBQWU7QUFDakMsVUFBSSxDQUFDLEtBQUtDLFFBQVYsRUFBb0I7QUFDbEIsYUFBS0MsR0FBTCxDQUFTQyxhQUFULENBQXVCLG1EQUF2QjtBQUNEOztBQUNELGFBQU8sTUFBTSxLQUFLRixRQUFMLENBQWNHLE1BQWQsQ0FBcUJKLFdBQXJCLENBQWI7QUFDRDs7QUFFZ0IsVUFBWEssV0FBVyxHQUFJO0FBQ25CLFVBQUksQ0FBQyxLQUFLSixRQUFWLEVBQW9CO0FBQ2xCLGFBQUtDLEdBQUwsQ0FBU0MsYUFBVCxDQUF1QixnREFBdkI7QUFDRDs7QUFDRCxhQUFPLE1BQU0sS0FBS0YsUUFBTCxDQUFjSSxXQUFkLEVBQWI7QUFDRDs7QUFkaUM7O0FBa0JwQyxTQUFPUCxnQkFBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQHRzLWNoZWNrXG5cbi8qKlxuICpcbiAqIEBwYXJhbSB7UmV0dXJuVHlwZTxpbXBvcnQoJy4vbG9nJykuTG9nTWl4aW4+fSBCYXNlXG4gKiBAcmV0dXJucyB7U2V0dGluZ3NCYXNlfVxuICovXG5leHBvcnQgZnVuY3Rpb24gU2V0dGluZ3NNaXhpbiAoQmFzZSkge1xuICAvKipcbiAgICogQGltcGxlbWVudHMge0lTZXR0aW5nc0NvbW1hbmRzfVxuICAgKi9cbiAgY2xhc3MgU2V0dGluZ3NDb21tYW5kcyBleHRlbmRzIEJhc2Uge1xuXG4gICAgYXN5bmMgdXBkYXRlU2V0dGluZ3MgKG5ld1NldHRpbmdzKSB7XG4gICAgICBpZiAoIXRoaXMuc2V0dGluZ3MpIHtcbiAgICAgICAgdGhpcy5sb2cuZXJyb3JBbmRUaHJvdygnQ2Fubm90IHVwZGF0ZSBzZXR0aW5nczsgc2V0dGluZ3Mgb2JqZWN0IG5vdCBmb3VuZCcpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuc2V0dGluZ3MudXBkYXRlKG5ld1NldHRpbmdzKTtcbiAgICB9XG5cbiAgICBhc3luYyBnZXRTZXR0aW5ncyAoKSB7XG4gICAgICBpZiAoIXRoaXMuc2V0dGluZ3MpIHtcbiAgICAgICAgdGhpcy5sb2cuZXJyb3JBbmRUaHJvdygnQ2Fubm90IGdldCBzZXR0aW5nczsgc2V0dGluZ3Mgb2JqZWN0IG5vdCBmb3VuZCcpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGF3YWl0IHRoaXMuc2V0dGluZ3MuZ2V0U2V0dGluZ3MoKTtcbiAgICB9XG5cbiAgfVxuXG4gIHJldHVybiBTZXR0aW5nc0NvbW1hbmRzO1xufVxuXG4vKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5TZXR0aW5nc0NvbW1hbmRzfSBJU2V0dGluZ3NDb21tYW5kc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi9sb2cnKS5Mb2dCYXNlfSBMb2dCYXNlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuLi9kcml2ZXInKS5CYXNlRHJpdmVyQmFzZTxpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5UaW1lb3V0Q29tbWFuZHMgJiBpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5FdmVudENvbW1hbmRzICYgaW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRmluZENvbW1hbmRzICYgaW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuTG9nQ29tbWFuZHMgJiBJU2V0dGluZ3NDb21tYW5kcz59IFNldHRpbmdzQmFzZVxuICovXG4iXX0=
32
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTZXR0aW5nc01peGluIiwiQmFzZSIsIlNldHRpbmdzQ29tbWFuZHMiLCJ1cGRhdGVTZXR0aW5ncyIsIm5ld1NldHRpbmdzIiwic2V0dGluZ3MiLCJsb2ciLCJlcnJvckFuZFRocm93IiwidXBkYXRlIiwiZ2V0U2V0dGluZ3MiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvYmFzZWRyaXZlci9jb21tYW5kcy9zZXR0aW5ncy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuLyoqXG4gKlxuICogQHBhcmFtIHtSZXR1cm5UeXBlPGltcG9ydCgnLi9sb2cnKS5Mb2dNaXhpbj59IEJhc2VcbiAqIEByZXR1cm5zIHtTZXR0aW5nc0Jhc2V9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBTZXR0aW5nc01peGluIChCYXNlKSB7XG4gIC8qKlxuICAgKiBAaW1wbGVtZW50cyB7SVNldHRpbmdzQ29tbWFuZHN9XG4gICAqL1xuICBjbGFzcyBTZXR0aW5nc0NvbW1hbmRzIGV4dGVuZHMgQmFzZSB7XG5cbiAgICBhc3luYyB1cGRhdGVTZXR0aW5ncyAobmV3U2V0dGluZ3MpIHtcbiAgICAgIGlmICghdGhpcy5zZXR0aW5ncykge1xuICAgICAgICB0aGlzLmxvZy5lcnJvckFuZFRocm93KCdDYW5ub3QgdXBkYXRlIHNldHRpbmdzOyBzZXR0aW5ncyBvYmplY3Qgbm90IGZvdW5kJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5zZXR0aW5ncy51cGRhdGUobmV3U2V0dGluZ3MpO1xuICAgIH1cblxuICAgIGFzeW5jIGdldFNldHRpbmdzICgpIHtcbiAgICAgIGlmICghdGhpcy5zZXR0aW5ncykge1xuICAgICAgICB0aGlzLmxvZy5lcnJvckFuZFRocm93KCdDYW5ub3QgZ2V0IHNldHRpbmdzOyBzZXR0aW5ncyBvYmplY3Qgbm90IGZvdW5kJyk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYXdhaXQgdGhpcy5zZXR0aW5ncy5nZXRTZXR0aW5ncygpO1xuICAgIH1cblxuICB9XG5cbiAgcmV0dXJuIFNldHRpbmdzQ29tbWFuZHM7XG59XG5cbi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLlNldHRpbmdzQ29tbWFuZHN9IElTZXR0aW5nc0NvbW1hbmRzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2xvZycpLkxvZ0Jhc2V9IExvZ0Jhc2VcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJy4uL2RyaXZlcicpLkJhc2VEcml2ZXJCYXNlPGltcG9ydCgnQGFwcGl1bS90eXBlcycpLlRpbWVvdXRDb21tYW5kcyAmIGltcG9ydCgnQGFwcGl1bS90eXBlcycpLkV2ZW50Q29tbWFuZHMgJiBpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5GaW5kQ29tbWFuZHMgJiBpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5Mb2dDb21tYW5kcyAmIElTZXR0aW5nc0NvbW1hbmRzPn0gU2V0dGluZ3NCYXNlXG4gKi9cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBT08sU0FBU0EsYUFBVCxDQUF3QkMsSUFBeEIsRUFBOEI7RUFJbkMsTUFBTUMsZ0JBQU4sU0FBK0JELElBQS9CLENBQW9DO0lBRWQsTUFBZEUsY0FBYyxDQUFFQyxXQUFGLEVBQWU7TUFDakMsSUFBSSxDQUFDLEtBQUtDLFFBQVYsRUFBb0I7UUFDbEIsS0FBS0MsR0FBTCxDQUFTQyxhQUFULENBQXVCLG1EQUF2QjtNQUNEOztNQUNELE9BQU8sTUFBTSxLQUFLRixRQUFMLENBQWNHLE1BQWQsQ0FBcUJKLFdBQXJCLENBQWI7SUFDRDs7SUFFZ0IsTUFBWEssV0FBVyxHQUFJO01BQ25CLElBQUksQ0FBQyxLQUFLSixRQUFWLEVBQW9CO1FBQ2xCLEtBQUtDLEdBQUwsQ0FBU0MsYUFBVCxDQUF1QixnREFBdkI7TUFDRDs7TUFDRCxPQUFPLE1BQU0sS0FBS0YsUUFBTCxDQUFjSSxXQUFkLEVBQWI7SUFDRDs7RUFkaUM7O0VBa0JwQyxPQUFPUCxnQkFBUDtBQUNEIn0=
@@ -167,4 +167,4 @@ function TimeoutMixin(Base) {
167
167
 
168
168
  return TimeoutCommands;
169
169
  }
170
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9iYXNlZHJpdmVyL2NvbW1hbmRzL3RpbWVvdXQuanMiXSwibmFtZXMiOlsiTUlOX1RJTUVPVVQiLCJUaW1lb3V0TWl4aW4iLCJCYXNlIiwiVGltZW91dENvbW1hbmRzIiwidGltZW91dHMiLCJ0eXBlIiwibXMiLCJzY3JpcHQiLCJwYWdlTG9hZCIsImltcGxpY2l0IiwidXRpbCIsImhhc1ZhbHVlIiwibG9nIiwiZGVidWciLCJKU09OIiwic3RyaW5naWZ5IiwibmV3Q29tbWFuZFRpbWVvdXQiLCJpbXBsaWNpdFdhaXRNSlNPTldQIiwicGFnZUxvYWRUaW1lb3V0TUpTT05XUCIsInNjcmlwdFRpbWVvdXRNSlNPTldQIiwiRXJyb3IiLCJzY3JpcHRUaW1lb3V0VzNDIiwicGFnZUxvYWRUaW1lb3V0VzNDIiwiaW1wbGljaXRXYWl0VzNDIiwiZ2V0VGltZW91dHMiLCJjb21tYW5kIiwibmV3Q29tbWFuZFRpbWVvdXRNcyIsImltcGxpY2l0V2FpdE1zIiwiaW1wbGljaXRXYWl0Iiwic2V0SW1wbGljaXRXYWl0IiwicGFyc2VUaW1lb3V0QXJndW1lbnQiLCJlcnJvcnMiLCJOb3RJbXBsZW1lbnRlZEVycm9yIiwic2V0TmV3Q29tbWFuZFRpbWVvdXQiLCJtYW5hZ2VkRHJpdmVycyIsImxlbmd0aCIsImRyaXZlciIsIl8iLCJpc0Z1bmN0aW9uIiwiaW1wbGljaXRXYWl0Rm9yQ29uZGl0aW9uIiwiY29uZEZuIiwid3JhcHBlZENvbmRGbiIsImFyZ3MiLCJjbGVhck5ld0NvbW1hbmRUaW1lb3V0Iiwid2FpdE1zIiwiaW50ZXJ2YWxNcyIsImxvZ2dlciIsImR1cmF0aW9uIiwicGFyc2VJbnQiLCJpc05hTiIsIlVua25vd25FcnJvciJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFJQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSxNQUFNQSxXQUFXLEdBQUcsQ0FBcEI7O0FBTU8sU0FBU0MsWUFBVCxDQUF1QkMsSUFBdkIsRUFBNkI7QUFLbEMs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QyxNQUFGLEVBQVU7QUFDdEMsV0FBSzVCLEdBQUwsQ0FBU0MsS0FBVCxDQUFnQixpQkFBZ0IsS0FBS2MsY0FBZSxtQkFBcEQ7O0FBQ0EsVUFBSWMsYUFBYSxHQUFHLE9BQU8sR0FBR0MsSUFBVixLQUFtQjtBQUVyQyxjQUFNLEtBQUtDLHNCQUFMLEVBQU47QUFFQSxlQUFPLE1BQU1ILE1BQU0sQ0FBQyxHQUFHRSxJQUFKLENBQW5CO0FBQ0QsT0FMRDs7QUFNQSxhQUFPLE1BQU0sZ0NBQWlCRCxhQUFqQixFQUFnQztBQUMzQ0csUUFBQUEsTUFBTSxFQUFFLEtBQUtqQixjQUQ4QjtBQUUzQ2tCLFFBQUFBLFVBQVUsRUFBRSxHQUYrQjtBQUczQ0MsUUFBQUEsTUFBTSxFQUFFLEtBQUtsQztBQUg4QixPQUFoQyxDQUFiO0FBS0Q7O0FBRURrQixJQUFBQSxvQkFBb0IsQ0FBRXhCLEVBQUYsRUFBTTtBQUN4QixVQUFJeUMsUUFBUSxHQUFHQyxRQUFRLENBQUMxQyxFQUFELEVBQUssRUFBTCxDQUF2Qjs7QUFDQSxVQUFJK0IsZ0JBQUVZLEtBQUYsQ0FBUUYsUUFBUixLQUFxQkEsUUFBUSxHQUFHL0MsV0FBcEMsRUFBaUQ7QUFDL0MsY0FBTSxJQUFJK0IsaUJBQU9tQixZQUFYLENBQXlCLDBCQUF5QjVDLEVBQUcsR0FBckQsQ0FBTjtBQUNEOztBQUNELGFBQU95QyxRQUFQO0FBQ0Q7O0FBeklnQzs7QUE0SW5DLFNBQU81QyxlQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlcXVpcmUtYXdhaXQgKi9cbmltcG9ydCB7d2FpdEZvckNvbmRpdGlvbn0gZnJvbSAnYXN5bmNib3gnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7dXRpbH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCB7ZXJyb3JzfSBmcm9tICcuLi8uLi9wcm90b2NvbCc7XG5cbmNvbnN0IE1JTl9USU1FT1VUID0gMDtcblxuLyoqXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi4vZHJpdmVyJykuQmFzZURyaXZlckJhc2V9IEJhc2VcbiAqIEByZXR1cm5zIHtUaW1lb3V0QmFzZX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFRpbWVvdXRNaXhpbiAoQmFzZSkge1xuXG4gIC8qKlxuICAgKiBAaW1wbGVtZW50cyB7SVRpbWVvdXRDb21tYW5kc31cbiAgICovXG4gIGNsYXNzIFRpbWVvdXRDb21tYW5kcyBleHRlbmRzIEJhc2Uge1xuICAgIGFzeW5jIHRpbWVvdXRzICh0eXBlLCBtcywgc2NyaXB0LCBwYWdlTG9hZCwgaW1wbGljaXQpIHtcbiAgICAgIGlmICh1dGlsLmhhc1ZhbHVlKHR5cGUpICYmIHV0aWwuaGFzVmFsdWUobXMpKSB7XG4gICAgICAgIHRoaXMubG9nLmRlYnVnKFxuICAgICAgICAgIGBNSlNPTldQIHRpbWVvdXQgYXJndW1lbnRzOiAke0pTT04uc3RyaW5naWZ5KHt0eXBlLCBtc30pfX1gLFxuICAgICAgICApO1xuXG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgIGNhc2UgJ2NvbW1hbmQnOlxuICAgICAgICAgICAgYXdhaXQgdGhpcy5uZXdDb21tYW5kVGltZW91dChtcyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgY2FzZSAnaW1wbGljaXQnOlxuICAgICAgICAgICAgYXdhaXQgdGhpcy5pbXBsaWNpdFdhaXRNSlNPTldQKG1zKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICBjYXNlICdwYWdlIGxvYWQnOlxuICAgICAgICAgICAgYXdhaXQgdGhpcy5wYWdlTG9hZFRpbWVvdXRNSlNPTldQKG1zKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICBjYXNlICdzY3JpcHQnOlxuICAgICAgICAgICAgYXdhaXQgdGhpcy5zY3JpcHRUaW1lb3V0TUpTT05XUChtcyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYCcke3R5cGV9JyB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIE1KU09OV1AgdGltZW91dGAsXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIE90aGVyd2lzZSBhc3N1bWUgaXQgaXMgVzNDIHByb3RvY29sXG4gICAgICB0aGlzLmxvZy5kZWJ1ZyhcbiAgICAgICAgYFczQyB0aW1lb3V0IGFyZ3VtZW50OiAke0pTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICBzY3JpcHQsXG4gICAgICAgICAgcGFnZUxvYWQsXG4gICAgICAgICAgaW1wbGljaXQsXG4gICAgICAgIH0pfX1gLFxuICAgICAgKTtcbiAgICAgIGlmICh1dGlsLmhhc1ZhbHVlKHNjcmlwdCkpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5zY3JpcHRUaW1lb3V0VzNDKHNjcmlwdCk7XG4gICAgICB9XG4gICAgICBpZiAodXRpbC5oYXNWYWx1ZShwYWdlTG9hZCkpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5wYWdlTG9hZFRpbWVvdXRXM0MocGFnZUxvYWQpO1xuICAgICAgfVxuICAgICAgaWYgKHV0aWwuaGFzVmFsdWUoaW1wbGljaXQpKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuaW1wbGljaXRXYWl0VzNDKGltcGxpY2l0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBhc3luYyBnZXRUaW1lb3V0cyAoKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb21tYW5kOiB0aGlzLm5ld0NvbW1hbmRUaW1lb3V0TXMsXG4gICAgICAgIGltcGxpY2l0OiB0aGlzLmltcGxpY2l0V2FpdE1zLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBpbXBsaWNpdFxuICAgIGFzeW5jIGltcGxpY2l0V2FpdFczQyAobXMpIHtcbiAgICAgIGF3YWl0IHRoaXMuaW1wbGljaXRXYWl0KG1zKTtcbiAgICB9XG5cbiAgICBhc3luYyBpbXBsaWNpdFdhaXRNSlNPTldQIChtcykge1xuICAgICAgYXdhaXQgdGhpcy5pbXBsaWNpdFdhaXQobXMpO1xuICAgIH1cblxuICAgIGFzeW5jIGltcGxpY2l0V2FpdCAobXMpIHtcbiAgICAgIGF3YWl0IHRoaXMuc2V0SW1wbGljaXRXYWl0KHRoaXMucGFyc2VUaW1lb3V0QXJndW1lbnQobXMpKTtcbiAgICB9XG5cbiAgICAvLyBwYWdlTG9hZFxuICAgIGFzeW5jIHBhZ2VMb2FkVGltZW91dFczQyAobXMpIHtcbiAgICAgIHRocm93IG5ldyBlcnJvcnMuTm90SW1wbGVtZW50ZWRFcnJvcignTm90IGltcGxlbWVudGVkIHlldCBmb3IgcGFnZUxvYWQuJyk7XG4gICAgfVxuXG4gICAgYXN5bmMgcGFnZUxvYWRUaW1lb3V0TUpTT05XUCAobXMpIHtcbiAgICAgIHRocm93IG5ldyBlcnJvcnMuTm90SW1wbGVtZW50ZWRFcnJvcignTm90IGltcGxlbWVudGVkIHlldCBmb3IgcGFnZUxvYWQuJyk7XG4gICAgfVxuXG4gICAgLy8gc2NyaXB0XG4gICAgYXN5bmMgc2NyaXB0VGltZW91dFczQyAobXMpIHtcbiAgICAgIHRocm93IG5ldyBlcnJvcnMuTm90SW1wbGVtZW50ZWRFcnJvcignTm90IGltcGxlbWVudGVkIHlldCBmb3Igc2NyaXB0LicpO1xuICAgIH1cblxuICAgIGFzeW5jIHNjcmlwdFRpbWVvdXRNSlNPTldQIChtcykge1xuICAgICAgdGhyb3cgbmV3IGVycm9ycy5Ob3RJbXBsZW1lbnRlZEVycm9yKCdOb3QgaW1wbGVtZW50ZWQgeWV0IGZvciBzY3JpcHQuJyk7XG4gICAgfVxuXG4gICAgLy8gY29tbWFuZFxuICAgIGFzeW5jIG5ld0NvbW1hbmRUaW1lb3V0IChtcykge1xuICAgICAgdGhpcy5zZXROZXdDb21tYW5kVGltZW91dCh0aGlzLnBhcnNlVGltZW91dEFyZ3VtZW50KG1zKSk7XG4gICAgfVxuXG4gICAgc2V0SW1wbGljaXRXYWl0IChtcykge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZXF1aXJlLWF3YWl0XG4gICAgICB0aGlzLmltcGxpY2l0V2FpdE1zID0gbXM7XG4gICAgICB0aGlzLmxvZy5kZWJ1ZyhgU2V0IGltcGxpY2l0IHdhaXQgdG8gJHttc31tc2ApO1xuICAgICAgaWYgKHRoaXMubWFuYWdlZERyaXZlcnMgJiYgdGhpcy5tYW5hZ2VkRHJpdmVycy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5sb2cuZGVidWcoJ1NldHRpbmcgaW1wbGljaXQgd2FpdCBvbiBtYW5hZ2VkIGRyaXZlcnMnKTtcbiAgICAgICAgZm9yIChsZXQgZHJpdmVyIG9mIHRoaXMubWFuYWdlZERyaXZlcnMpIHtcbiAgICAgICAgICBpZiAoXy5pc0Z1bmN0aW9uKGRyaXZlci5zZXRJbXBsaWNpdFdhaXQpKSB7XG4gICAgICAgICAgICBkcml2ZXIuc2V0SW1wbGljaXRXYWl0KG1zKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBzZXROZXdDb21tYW5kVGltZW91dCAobXMpIHtcbiAgICAgIHRoaXMubmV3Q29tbWFuZFRpbWVvdXRNcyA9IG1zO1xuICAgICAgdGhpcy5sb2cuZGVidWcoYFNldCBuZXcgY29tbWFuZCB0aW1lb3V0IHRvICR7bXN9bXNgKTtcbiAgICAgIGlmICh0aGlzLm1hbmFnZWREcml2ZXJzICYmIHRoaXMubWFuYWdlZERyaXZlcnMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMubG9nLmRlYnVnKCdTZXR0aW5nIG5ldyBjb21tYW5kIHRpbWVvdXQgb24gbWFuYWdlZCBkcml2ZXJzJyk7XG4gICAgICAgIGZvciAobGV0IGRyaXZlciBvZiB0aGlzLm1hbmFnZWREcml2ZXJzKSB7XG4gICAgICAgICAgaWYgKF8uaXNGdW5jdGlvbihkcml2ZXIuc2V0TmV3Q29tbWFuZFRpbWVvdXQpKSB7XG4gICAgICAgICAgICBkcml2ZXIuc2V0TmV3Q29tbWFuZFRpbWVvdXQobXMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIGltcGxpY2l0V2FpdEZvckNvbmRpdGlvbiAoY29uZEZuKSB7XG4gICAgICB0aGlzLmxvZy5kZWJ1ZyhgV2FpdGluZyB1cCB0byAke3RoaXMuaW1wbGljaXRXYWl0TXN9IG1zIGZvciBjb25kaXRpb25gKTtcbiAgICAgIGxldCB3cmFwcGVkQ29uZEZuID0gYXN5bmMgKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgLy8gcmVzZXQgY29tbWFuZCB0aW1lb3V0XG4gICAgICAgIGF3YWl0IHRoaXMuY2xlYXJOZXdDb21tYW5kVGltZW91dCgpO1xuXG4gICAgICAgIHJldHVybiBhd2FpdCBjb25kRm4oLi4uYXJncyk7XG4gICAgICB9O1xuICAgICAgcmV0dXJuIGF3YWl0IHdhaXRGb3JDb25kaXRpb24od3JhcHBlZENvbmRGbiwge1xuICAgICAgICB3YWl0TXM6IHRoaXMuaW1wbGljaXRXYWl0TXMsXG4gICAgICAgIGludGVydmFsTXM6IDUwMCxcbiAgICAgICAgbG9nZ2VyOiB0aGlzLmxvZyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHBhcnNlVGltZW91dEFyZ3VtZW50IChtcykge1xuICAgICAgbGV0IGR1cmF0aW9uID0gcGFyc2VJbnQobXMsIDEwKTtcbiAgICAgIGlmIChfLmlzTmFOKGR1cmF0aW9uKSB8fCBkdXJhdGlvbiA8IE1JTl9USU1FT1VUKSB7XG4gICAgICAgIHRocm93IG5ldyBlcnJvcnMuVW5rbm93bkVycm9yKGBJbnZhbGlkIHRpbWVvdXQgdmFsdWUgJyR7bXN9J2ApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGR1cmF0aW9uO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBUaW1lb3V0Q29tbWFuZHM7XG59XG5cbi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLlRpbWVvdXRDb21tYW5kc30gSVRpbWVvdXRDb21tYW5kc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vZHJpdmVyJykuQmFzZURyaXZlckJhc2U8SVRpbWVvdXRDb21tYW5kcz59IFRpbWVvdXRCYXNlXG4gKi9cbiJdfQ==
170
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNSU5fVElNRU9VVCIsIlRpbWVvdXRNaXhpbiIsIkJhc2UiLCJUaW1lb3V0Q29tbWFuZHMiLCJ0aW1lb3V0cyIsInR5cGUiLCJtcyIsInNjcmlwdCIsInBhZ2VMb2FkIiwiaW1wbGljaXQiLCJ1dGlsIiwiaGFzVmFsdWUiLCJsb2ciLCJkZWJ1ZyIsIkpTT04iLCJzdHJpbmdpZnkiLCJuZXdDb21tYW5kVGltZW91dCIsImltcGxpY2l0V2FpdE1KU09OV1AiLCJwYWdlTG9hZFRpbWVvdXRNSlNPTldQIiwic2NyaXB0VGltZW91dE1KU09OV1AiLCJFcnJvciIsInNjcmlwdFRpbWVvdXRXM0MiLCJwYWdlTG9hZFRpbWVvdXRXM0MiLCJpbXBsaWNpdFdhaXRXM0MiLCJnZXRUaW1lb3V0cyIsImNvbW1hbmQiLCJuZXdDb21tYW5kVGltZW91dE1zIiwiaW1wbGljaXRXYWl0TXMiLCJpbXBsaWNpdFdhaXQiLCJzZXRJbXBsaWNpdFdhaXQiLCJwYXJzZVRpbWVvdXRBcmd1bWVudCIsImVycm9ycyIsIk5vdEltcGxlbWVudGVkRXJyb3IiLCJzZXROZXdDb21tYW5kVGltZW91dCIsIm1hbmFnZWREcml2ZXJzIiwibGVuZ3RoIiwiZHJpdmVyIiwiXyIsImlzRnVuY3Rpb24iLCJpbXBsaWNpdFdhaXRGb3JDb25kaXRpb24iLCJjb25kRm4iLCJ3cmFwcGVkQ29uZEZuIiwiYXJncyIsImNsZWFyTmV3Q29tbWFuZFRpbWVvdXQiLCJ3YWl0TXMiLCJpbnRlcnZhbE1zIiwibG9nZ2VyIiwiZHVyYXRpb24iLCJwYXJzZUludCIsImlzTmFOIiwiVW5rbm93bkVycm9yIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL2Jhc2Vkcml2ZXIvY29tbWFuZHMvdGltZW91dC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuLyogZXNsaW50LWRpc2FibGUgbm8tdW51c2VkLXZhcnMgKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlcXVpcmUtYXdhaXQgKi9cbmltcG9ydCB7d2FpdEZvckNvbmRpdGlvbn0gZnJvbSAnYXN5bmNib3gnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7dXRpbH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCB7ZXJyb3JzfSBmcm9tICcuLi8uLi9wcm90b2NvbCc7XG5cbmNvbnN0IE1JTl9USU1FT1VUID0gMDtcblxuLyoqXG4gKiBAcGFyYW0ge2ltcG9ydCgnLi4vZHJpdmVyJykuQmFzZURyaXZlckJhc2V9IEJhc2VcbiAqIEByZXR1cm5zIHtUaW1lb3V0QmFzZX1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIFRpbWVvdXRNaXhpbiAoQmFzZSkge1xuXG4gIC8qKlxuICAgKiBAaW1wbGVtZW50cyB7SVRpbWVvdXRDb21tYW5kc31cbiAgICovXG4gIGNsYXNzIFRpbWVvdXRDb21tYW5kcyBleHRlbmRzIEJhc2Uge1xuICAgIGFzeW5jIHRpbWVvdXRzICh0eXBlLCBtcywgc2NyaXB0LCBwYWdlTG9hZCwgaW1wbGljaXQpIHtcbiAgICAgIGlmICh1dGlsLmhhc1ZhbHVlKHR5cGUpICYmIHV0aWwuaGFzVmFsdWUobXMpKSB7XG4gICAgICAgIHRoaXMubG9nLmRlYnVnKFxuICAgICAgICAgIGBNSlNPTldQIHRpbWVvdXQgYXJndW1lbnRzOiAke0pTT04uc3RyaW5naWZ5KHt0eXBlLCBtc30pfX1gLFxuICAgICAgICApO1xuXG4gICAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICAgIGNhc2UgJ2NvbW1hbmQnOlxuICAgICAgICAgICAgYXdhaXQgdGhpcy5uZXdDb21tYW5kVGltZW91dChtcyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgY2FzZSAnaW1wbGljaXQnOlxuICAgICAgICAgICAgYXdhaXQgdGhpcy5pbXBsaWNpdFdhaXRNSlNPTldQKG1zKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICBjYXNlICdwYWdlIGxvYWQnOlxuICAgICAgICAgICAgYXdhaXQgdGhpcy5wYWdlTG9hZFRpbWVvdXRNSlNPTldQKG1zKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICBjYXNlICdzY3JpcHQnOlxuICAgICAgICAgICAgYXdhaXQgdGhpcy5zY3JpcHRUaW1lb3V0TUpTT05XUChtcyk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgYCcke3R5cGV9JyB0eXBlIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIE1KU09OV1AgdGltZW91dGAsXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIC8vIE90aGVyd2lzZSBhc3N1bWUgaXQgaXMgVzNDIHByb3RvY29sXG4gICAgICB0aGlzLmxvZy5kZWJ1ZyhcbiAgICAgICAgYFczQyB0aW1lb3V0IGFyZ3VtZW50OiAke0pTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICBzY3JpcHQsXG4gICAgICAgICAgcGFnZUxvYWQsXG4gICAgICAgICAgaW1wbGljaXQsXG4gICAgICAgIH0pfX1gLFxuICAgICAgKTtcbiAgICAgIGlmICh1dGlsLmhhc1ZhbHVlKHNjcmlwdCkpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5zY3JpcHRUaW1lb3V0VzNDKHNjcmlwdCk7XG4gICAgICB9XG4gICAgICBpZiAodXRpbC5oYXNWYWx1ZShwYWdlTG9hZCkpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5wYWdlTG9hZFRpbWVvdXRXM0MocGFnZUxvYWQpO1xuICAgICAgfVxuICAgICAgaWYgKHV0aWwuaGFzVmFsdWUoaW1wbGljaXQpKSB7XG4gICAgICAgIGF3YWl0IHRoaXMuaW1wbGljaXRXYWl0VzNDKGltcGxpY2l0KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBhc3luYyBnZXRUaW1lb3V0cyAoKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb21tYW5kOiB0aGlzLm5ld0NvbW1hbmRUaW1lb3V0TXMsXG4gICAgICAgIGltcGxpY2l0OiB0aGlzLmltcGxpY2l0V2FpdE1zLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBpbXBsaWNpdFxuICAgIGFzeW5jIGltcGxpY2l0V2FpdFczQyAobXMpIHtcbiAgICAgIGF3YWl0IHRoaXMuaW1wbGljaXRXYWl0KG1zKTtcbiAgICB9XG5cbiAgICBhc3luYyBpbXBsaWNpdFdhaXRNSlNPTldQIChtcykge1xuICAgICAgYXdhaXQgdGhpcy5pbXBsaWNpdFdhaXQobXMpO1xuICAgIH1cblxuICAgIGFzeW5jIGltcGxpY2l0V2FpdCAobXMpIHtcbiAgICAgIGF3YWl0IHRoaXMuc2V0SW1wbGljaXRXYWl0KHRoaXMucGFyc2VUaW1lb3V0QXJndW1lbnQobXMpKTtcbiAgICB9XG5cbiAgICAvLyBwYWdlTG9hZFxuICAgIGFzeW5jIHBhZ2VMb2FkVGltZW91dFczQyAobXMpIHtcbiAgICAgIHRocm93IG5ldyBlcnJvcnMuTm90SW1wbGVtZW50ZWRFcnJvcignTm90IGltcGxlbWVudGVkIHlldCBmb3IgcGFnZUxvYWQuJyk7XG4gICAgfVxuXG4gICAgYXN5bmMgcGFnZUxvYWRUaW1lb3V0TUpTT05XUCAobXMpIHtcbiAgICAgIHRocm93IG5ldyBlcnJvcnMuTm90SW1wbGVtZW50ZWRFcnJvcignTm90IGltcGxlbWVudGVkIHlldCBmb3IgcGFnZUxvYWQuJyk7XG4gICAgfVxuXG4gICAgLy8gc2NyaXB0XG4gICAgYXN5bmMgc2NyaXB0VGltZW91dFczQyAobXMpIHtcbiAgICAgIHRocm93IG5ldyBlcnJvcnMuTm90SW1wbGVtZW50ZWRFcnJvcignTm90IGltcGxlbWVudGVkIHlldCBmb3Igc2NyaXB0LicpO1xuICAgIH1cblxuICAgIGFzeW5jIHNjcmlwdFRpbWVvdXRNSlNPTldQIChtcykge1xuICAgICAgdGhyb3cgbmV3IGVycm9ycy5Ob3RJbXBsZW1lbnRlZEVycm9yKCdOb3QgaW1wbGVtZW50ZWQgeWV0IGZvciBzY3JpcHQuJyk7XG4gICAgfVxuXG4gICAgLy8gY29tbWFuZFxuICAgIGFzeW5jIG5ld0NvbW1hbmRUaW1lb3V0IChtcykge1xuICAgICAgdGhpcy5zZXROZXdDb21tYW5kVGltZW91dCh0aGlzLnBhcnNlVGltZW91dEFyZ3VtZW50KG1zKSk7XG4gICAgfVxuXG4gICAgc2V0SW1wbGljaXRXYWl0IChtcykge1xuICAgICAgLy8gZXNsaW50LWRpc2FibGUtbGluZSByZXF1aXJlLWF3YWl0XG4gICAgICB0aGlzLmltcGxpY2l0V2FpdE1zID0gbXM7XG4gICAgICB0aGlzLmxvZy5kZWJ1ZyhgU2V0IGltcGxpY2l0IHdhaXQgdG8gJHttc31tc2ApO1xuICAgICAgaWYgKHRoaXMubWFuYWdlZERyaXZlcnMgJiYgdGhpcy5tYW5hZ2VkRHJpdmVycy5sZW5ndGgpIHtcbiAgICAgICAgdGhpcy5sb2cuZGVidWcoJ1NldHRpbmcgaW1wbGljaXQgd2FpdCBvbiBtYW5hZ2VkIGRyaXZlcnMnKTtcbiAgICAgICAgZm9yIChsZXQgZHJpdmVyIG9mIHRoaXMubWFuYWdlZERyaXZlcnMpIHtcbiAgICAgICAgICBpZiAoXy5pc0Z1bmN0aW9uKGRyaXZlci5zZXRJbXBsaWNpdFdhaXQpKSB7XG4gICAgICAgICAgICBkcml2ZXIuc2V0SW1wbGljaXRXYWl0KG1zKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBzZXROZXdDb21tYW5kVGltZW91dCAobXMpIHtcbiAgICAgIHRoaXMubmV3Q29tbWFuZFRpbWVvdXRNcyA9IG1zO1xuICAgICAgdGhpcy5sb2cuZGVidWcoYFNldCBuZXcgY29tbWFuZCB0aW1lb3V0IHRvICR7bXN9bXNgKTtcbiAgICAgIGlmICh0aGlzLm1hbmFnZWREcml2ZXJzICYmIHRoaXMubWFuYWdlZERyaXZlcnMubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMubG9nLmRlYnVnKCdTZXR0aW5nIG5ldyBjb21tYW5kIHRpbWVvdXQgb24gbWFuYWdlZCBkcml2ZXJzJyk7XG4gICAgICAgIGZvciAobGV0IGRyaXZlciBvZiB0aGlzLm1hbmFnZWREcml2ZXJzKSB7XG4gICAgICAgICAgaWYgKF8uaXNGdW5jdGlvbihkcml2ZXIuc2V0TmV3Q29tbWFuZFRpbWVvdXQpKSB7XG4gICAgICAgICAgICBkcml2ZXIuc2V0TmV3Q29tbWFuZFRpbWVvdXQobXMpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGFzeW5jIGltcGxpY2l0V2FpdEZvckNvbmRpdGlvbiAoY29uZEZuKSB7XG4gICAgICB0aGlzLmxvZy5kZWJ1ZyhgV2FpdGluZyB1cCB0byAke3RoaXMuaW1wbGljaXRXYWl0TXN9IG1zIGZvciBjb25kaXRpb25gKTtcbiAgICAgIGxldCB3cmFwcGVkQ29uZEZuID0gYXN5bmMgKC4uLmFyZ3MpID0+IHtcbiAgICAgICAgLy8gcmVzZXQgY29tbWFuZCB0aW1lb3V0XG4gICAgICAgIGF3YWl0IHRoaXMuY2xlYXJOZXdDb21tYW5kVGltZW91dCgpO1xuXG4gICAgICAgIHJldHVybiBhd2FpdCBjb25kRm4oLi4uYXJncyk7XG4gICAgICB9O1xuICAgICAgcmV0dXJuIGF3YWl0IHdhaXRGb3JDb25kaXRpb24od3JhcHBlZENvbmRGbiwge1xuICAgICAgICB3YWl0TXM6IHRoaXMuaW1wbGljaXRXYWl0TXMsXG4gICAgICAgIGludGVydmFsTXM6IDUwMCxcbiAgICAgICAgbG9nZ2VyOiB0aGlzLmxvZyxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHBhcnNlVGltZW91dEFyZ3VtZW50IChtcykge1xuICAgICAgbGV0IGR1cmF0aW9uID0gcGFyc2VJbnQobXMsIDEwKTtcbiAgICAgIGlmIChfLmlzTmFOKGR1cmF0aW9uKSB8fCBkdXJhdGlvbiA8IE1JTl9USU1FT1VUKSB7XG4gICAgICAgIHRocm93IG5ldyBlcnJvcnMuVW5rbm93bkVycm9yKGBJbnZhbGlkIHRpbWVvdXQgdmFsdWUgJyR7bXN9J2ApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGR1cmF0aW9uO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBUaW1lb3V0Q29tbWFuZHM7XG59XG5cbi8qKlxuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLlRpbWVvdXRDb21tYW5kc30gSVRpbWVvdXRDb21tYW5kc1xuICogQHR5cGVkZWYge2ltcG9ydCgnLi4vZHJpdmVyJykuQmFzZURyaXZlckJhc2U8SVRpbWVvdXRDb21tYW5kcz59IFRpbWVvdXRCYXNlXG4gKi9cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFJQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQSxNQUFNQSxXQUFXLEdBQUcsQ0FBcEI7O0FBTU8sU0FBU0MsWUFBVCxDQUF1QkMsSUFBdkIsRUFBNkI7RUFLbEMsTUFBTUMsZUFBTixTQUE4QkQsSUFBOUIsQ0FBbUM7SUFDbkIsTUFBUkUsUUFBUSxDQUFFQyxJQUFGLEVBQVFDLEVBQVIsRUFBWUMsTUFBWixFQUFvQkMsUUFBcEIsRUFBOEJDLFFBQTlCLEVBQXdDO01BQ3BELElBQUlDLGNBQUtDLFFBQUwsQ0FBY04sSUFBZCxLQUF1QkssY0FBS0MsUUFBTCxDQUFjTCxFQUFkLENBQTNCLEVBQThDO1FBQzVDLEtBQUtNLEdBQUwsQ0FBU0MsS0FBVCxDQUNHLDhCQUE2QkMsSUFBSSxDQUFDQyxTQUFMLENBQWU7VUFBQ1YsSUFBRDtVQUFPQztRQUFQLENBQWYsQ0FBMkIsR0FEM0Q7O1FBSUEsUUFBUUQsSUFBUjtVQUNFLEtBQUssU0FBTDtZQUNFLE1BQU0sS0FBS1csaUJBQUwsQ0FBdUJWLEVBQXZCLENBQU47WUFDQTs7VUFDRixLQUFLLFVBQUw7WUFDRSxNQUFNLEtBQUtXLG1CQUFMLENBQXlCWCxFQUF6QixDQUFOO1lBQ0E7O1VBQ0YsS0FBSyxXQUFMO1lBQ0UsTUFBTSxLQUFLWSxzQkFBTCxDQUE0QlosRUFBNUIsQ0FBTjtZQUNBOztVQUNGLEtBQUssUUFBTDtZQUNFLE1BQU0sS0FBS2Esb0JBQUwsQ0FBMEJiLEVBQTFCLENBQU47WUFDQTs7VUFDRjtZQUNFLE1BQU0sSUFBSWMsS0FBSixDQUNILElBQUdmLElBQUssNkNBREwsQ0FBTjtRQWRKO01Ba0JEOztNQUdELEtB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
@@ -280,4 +280,4 @@ class DriverCore {
280
280
  }
281
281
 
282
282
  exports.DriverCore = DriverCore;
283
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9iYXNlZHJpdmVyL2NvcmUuanMiXSwibmFtZXMiOlsidmVyc2lvbiIsIkJBU0VEUklWRVJfVkVSIiwiZnMiLCJyZWFkUGFja2FnZUpzb25Gcm9tIiwiX19kaXJuYW1lIiwiTkVXX0NPTU1BTkRfVElNRU9VVF9NUyIsIk9OX1VORVhQRUNURURfU0hVVERPV05fRVZFTlQiLCJEcml2ZXJDb3JlIiwiYmFzZVZlcnNpb24iLCJzZXNzaW9uSWQiLCJvcHRzIiwiaW5pdGlhbE9wdHMiLCJjYXBzIiwib3JpZ2luYWxDYXBzIiwiaGVscGVycyIsImJhc2VQYXRoIiwiREVGQVVMVF9CQVNFX1BBVEgiLCJyZWxheGVkU2VjdXJpdHlFbmFibGVkIiwiYWxsb3dJbnNlY3VyZSIsImRlbnlJbnNlY3VyZSIsIm5ld0NvbW1hbmRUaW1lb3V0TXMiLCJpbXBsaWNpdFdhaXRNcyIsImxvY2F0b3JTdHJhdGVnaWVzIiwid2ViTG9jYXRvclN0cmF0ZWdpZXMiLCJtYW5hZ2VkRHJpdmVycyIsIm5vQ29tbWFuZFRpbWVyIiwiX2V2ZW50SGlzdG9yeSIsImNvbW1hbmRzIiwiX2NvbnN0cmFpbnRzIiwiXyIsImNsb25lRGVlcCIsImRlc2lyZWRDYXBhYmlsaXR5Q29uc3RyYWludHMiLCJldmVudEVtaXR0ZXIiLCJFdmVudEVtaXR0ZXIiLCJfbG9nIiwic2h1dGRvd25VbmV4cGVjdGVkbHkiLCJzaG91bGRWYWxpZGF0ZUNhcHMiLCJjb21tYW5kc1F1ZXVlR3VhcmQiLCJBc3luY0xvY2siLCJzZXR0aW5ncyIsIkRldmljZVNldHRpbmdzIiwiY29uc3RydWN0b3IiLCJsb2dnZXIiLCJnZXRMb2dnZXIiLCJnZW5lcmF0ZURyaXZlckxvZ1ByZWZpeCIsInRtcERpciIsInByb2Nlc3MiLCJlbnYiLCJBUFBJVU1fVE1QX0RJUiIsIm9zIiwidG1wZGlyIiwibG9nIiwib25VbmV4cGVjdGVkU2h1dGRvd24iLCJoYW5kbGVyIiwib24iLCJkcml2ZXJEYXRhIiwiaXNDb21tYW5kc1F1ZXVlRW5hYmxlZCIsImV2ZW50SGlzdG9yeSIsImxvZ0V2ZW50IiwiZXZlbnROYW1lIiwiRXJyb3IiLCJ0cyIsIkRhdGUiLCJub3ciLCJsb2dUaW1lIiwidG9UaW1lU3RyaW5nIiwicHVzaCIsImRlYnVnIiwiZ2V0U3RhdHVzIiwiZGVzaXJlZENhcENvbnN0cmFpbnRzIiwiY29uc3RyYWludHMiLCJPYmplY3QiLCJhc3NpZ24iLCJ2YWx1ZSIsInRvUGFpcnMiLCJwcmVzZW5jZSIsImFsbG93RW1wdHkiLCJzZXNzaW9uRXhpc3RzIiwiZHJpdmVyRm9yU2Vzc2lvbiIsImxvZ0V4dHJhQ2FwcyIsImV4dHJhQ2FwcyIsImRpZmZlcmVuY2UiLCJrZXlzIiwibGVuZ3RoIiwid2FybiIsImNhcCIsInZhbGlkYXRlRGVzaXJlZENhcHMiLCJlIiwiZXJyb3JBbmRUaHJvdyIsImVycm9ycyIsIlNlc3Npb25Ob3RDcmVhdGVkRXJyb3IiLCJtZXNzYWdlIiwiaXNNanNvbndwUHJvdG9jb2wiLCJwcm90b2NvbCIsIlBST1RPQ09MUyIsIk1KU09OV1AiLCJpc1czQ1Byb3RvY29sIiwiVzNDIiwic2V0UHJvdG9jb2xNSlNPTldQIiwic2V0UHJvdG9jb2xXM0MiLCJpc0ZlYXR1cmVFbmFibGVkIiwibmFtZSIsImluY2x1ZGVzIiwiZW5zdXJlRmVhdHVyZUVuYWJsZWQiLCJ2YWxpZGF0ZUxvY2F0b3JTdHJhdGVneSIsInN0cmF0ZWd5Iiwid2ViQ29udGV4dCIsInZhbGlkU3RyYXRlZ2llcyIsImpvaW4iLCJjb25jYXQiLCJJbnZhbGlkU2VsZWN0b3JFcnJvciIsInByb3h5QWN0aXZlIiwiZ2V0UHJveHlBdm9pZExpc3QiLCJjYW5Qcm94eSIsInByb3h5Um91dGVJc0F2b2lkZWQiLCJtZXRob2QiLCJ1cmwiLCJib2R5IiwiYXZvaWRTY2hlbWEiLCJpc0FycmF5IiwiYXZvaWRNZXRob2QiLCJhdm9pZFBhdGhSZWdleCIsImlzUmVnRXhwIiwibm9ybWFsaXplZFVybCIsInJlcGxhY2UiLCJSZWdFeHAiLCJlc2NhcGVSZWdFeHAiLCJ0ZXN0IiwiYWRkTWFuYWdlZERyaXZlciIsImRyaXZlciIsImdldE1hbmFnZWREcml2ZXJzIiwiY2xlYXJOZXdDb21tYW5kVGltZW91dCIsImNsZWFyVGltZW91dCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFJQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFHQSxNQUFNO0FBQUNBLEVBQUFBLE9BQU8sRUFBRUM7QUFBVixJQUE0QkMsWUFBR0MsbUJBQUgsQ0FBdUJDLFNBQXZCLENBQWxDOztBQUVBLE1BQU1DLHNCQUFzQixHQUFHLEtBQUssSUFBcEM7QUFFQSxNQUFNQyw0QkFBNEIsR0FBRyxzQkFBckM7O0FBSUEsTUFBTUMsVUFBTixDQUFpQjtBQU1HLFNBQVhDLFdBQVcsR0FBR1AsY0FBSDtBQUtsQlEsRUFBQUEsU0FBUyxHQUFHLElBQUg7QUFLVEMsRUFBQUEsSUFBSTtBQUtKQyxFQUFBQSxXQUFXO0FBS1hDLEVBQUFBLElBQUk7QUFLSkMsRUFBQUEsWUFBWTtBQUVaQyxFQUFBQSxPQUFPLEdBQUdBLGdCQUFIO0FBVVBDLEVBQUFBLFFBQVEsR0FBR0MsNEJBQUg7QUFFUkMsRUFBQUEsc0JBQXNCLEdBQUcsS0FBSDtBQUd0QkMsRUFBQUEsYUFBYSxHQUFHLEVBQUg7QUFHYkMsRUFBQUEsWUFBWSxHQUFHLEVBQUg7QUFFWkMsRUFBQUEsbUJBQW1CLEdBQUdmLHNCQUFIO0FBRW5CZ0IsRUFBQUEsY0FBYyxHQUFHLENBQUg7QUFHZEMsRUFBQUEsaUJBQWlCLEdBQUcsRUFBSDtBQUdqQkMsRUFBQUEsb0JBQW9CLEdBQUcsRUFBSDtBQUdwQkMsRUFBQUEsY0FBYyxHQUFHLEVBQUg7QUFHZEMsRUFBQUEsY0FBYyxHQUFHLElBQUg7QUFHZEMsRUFBQUEsYUFBYSxHQUFHO0FBQUNDLElBQUFBLFFBQVEsRUFBRTtBQUFYLEdBQUg7QUFFYkMsRUFBQUEsWUFBWSxHQUFHQyxnQkFBRUMsU0FBRixDQUFZQyx5Q0FBWixDQUFIO0FB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Q0FBVyxDQUFDLEtBQUQsRUFBUSxNQUFSLEVBQWdCLFFBQWhCLENBQVgsRUFBc0NrQixXQUF0QyxDQUFMLEVBQXlEO0FBQ3ZELGNBQU0sSUFBSTVELEtBQUosQ0FBVyx3Q0FBdUM0RCxXQUFZLEdBQTlELENBQU47QUFDRDs7QUFDRCxVQUFJLENBQUMzRixnQkFBRTZGLFFBQUYsQ0FBV0QsY0FBWCxDQUFMLEVBQWlDO0FBQy9CLGNBQU0sSUFBSTdELEtBQUosQ0FBVSxtREFBVixDQUFOO0FBQ0Q7O0FBQ0QsVUFBSStELGFBQWEsR0FBR1AsR0FBRyxDQUFDUSxPQUFKLENBQ2xCLElBQUlDLE1BQUosQ0FBWSxJQUFHaEcsZ0JBQUVpRyxZQUFGLENBQWUsS0FBSy9HLFFBQXBCLENBQThCLEVBQTdDLENBRGtCLEVBRWxCLEVBRmtCLENBQXBCOztBQUlBLFVBQUl5RyxXQUFXLEtBQUtMLE1BQWhCLElBQTBCTSxjQUFjLENBQUNNLElBQWYsQ0FBb0JKLGFBQXBCLENBQTlCLEVBQWtFO0FBQ2hFLGVBQU8sSUFBUDtBQUNEO0FBQ0Y7O0FBQ0QsV0FBTyxLQUFQO0FBQ0Q7O0FBTURLLEVBQUFBLGdCQUFnQixDQUFFQyxNQUFGLEVBQVU7QUFDeEIsU0FBS3pHLGNBQUwsQ0FBb0IwQyxJQUFwQixDQUF5QitELE1BQXpCO0FBQ0Q7O0FBRURDLEVBQUFBLGlCQUFpQixHQUFJO0FBQ25CLFdBQU8sS0FBSzFHLGNBQVo7QUFDRDs7QUFFMkIsUUFBdEIyRyxzQkFBc0IsR0FBSTtBQUM5QixRQUFJLEtBQUsxRyxjQUFULEVBQXlCO0FBQ3ZCMkcsTUFBQUEsWUFBWSxDQUFDLEtBQUszRyxjQUFOLENBQVo7QUFDQSxXQUFLQSxjQUFMLEdBQXNCLElBQXRCO0FBQ0Q7QUFDRjs7QUExY2MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcbi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG4vKiBlc2xpbnQtZGlzYWJsZSByZXF1aXJlLWF3YWl0ICovXG5cbmltcG9ydCB7IGZzLCBsb2dnZXIsIG5vZGUgfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IEFzeW5jTG9jayBmcm9tICdhc3luYy1sb2NrJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ2V2ZW50cyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IG9zIGZyb20gJ29zJztcbmltcG9ydCB7IERFRkFVTFRfQkFTRV9QQVRILCBQUk9UT0NPTFMgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZXJyb3JzIH0gZnJvbSAnLi4vcHJvdG9jb2wnO1xuaW1wb3J0IHsgdmFsaWRhdGVDYXBzIH0gZnJvbSAnLi9jYXBhYmlsaXRpZXMnO1xuaW1wb3J0IHsgZGVzaXJlZENhcGFiaWxpdHlDb25zdHJhaW50cyB9IGZyb20gJy4vZGVzaXJlZC1jYXBzJztcbmltcG9ydCBEZXZpY2VTZXR0aW5ncyBmcm9tICcuL2RldmljZS1zZXR0aW5ncyc7XG5pbXBvcnQgaGVscGVycyBmcm9tICcuL2hlbHBlcnMnO1xuXG4vLyBmb3IgY29tcGF0IHdpdGggcnVubmluZyB0ZXN0cyB0cmFuc3BpbGVkIGFuZCBpbi1wbGFjZVxuY29uc3Qge3ZlcnNpb246IEJBU0VEUklWRVJfVkVSfSA9IGZzLnJlYWRQYWNrYWdlSnNvbkZyb20oX19kaXJuYW1lKTtcblxuY29uc3QgTkVXX0NPTU1BTkRfVElNRU9VVF9NUyA9IDYwICogMTAwMDtcblxuY29uc3QgT05fVU5FWFBFQ1RFRF9TSFVURE9XTl9FVkVOVCA9ICdvblVuZXhwZWN0ZWRTaHV0ZG93bic7XG4vKipcbiAqIEBpbXBsZW1lbnRzIHtDb3JlfVxuICovXG5jbGFzcyBEcml2ZXJDb3JlIHtcblxuICAvKipcbiAgICogTWFrZSB0aGUgYmFzZWRyaXZlciB2ZXJzaW9uIGF2YWlsYWJsZSBzbyBmb3IgYW55IGRyaXZlciB3aGljaCBpbmhlcml0cyBmcm9tIHRoaXMgcGFja2FnZSwgd2VcbiAgICoga25vdyB3aGljaCB2ZXJzaW9uIG9mIGJhc2Vkcml2ZXIgaXQgaW5oZXJpdGVkIGZyb21cbiAgICovXG4gIHN0YXRpYyBiYXNlVmVyc2lvbiA9IEJBU0VEUklWRVJfVkVSO1xuXG4gIC8qKlxuICAqIEB0eXBlIHtzdHJpbmc/fVxuICAqL1xuICBzZXNzaW9uSWQgPSBudWxsO1xuXG4gIC8qKlxuICAqIEB0eXBlIHtEcml2ZXJPcHRzICYgQ2FwYWJpbGl0aWVzfVxuICAqL1xuICBvcHRzO1xuXG4gIC8qKlxuICAqIEB0eXBlIHtEcml2ZXJPcHRzfVxuICAqL1xuICBpbml0aWFsT3B0cztcblxuICAvKipcbiAgKiBAdHlwZSB7Q2FwYWJpbGl0aWVzfVxuICAqL1xuICBjYXBzO1xuXG4gIC8qKlxuICAqIEB0eXBlIHtXM0NDYXBhYmlsaXRpZXN9XG4gICovXG4gIG9yaWdpbmFsQ2FwcztcblxuICBoZWxwZXJzID0gaGVscGVycztcblxuICAvKipcbiAgKiBiYXNlUGF0aCBpcyB1c2VkIGZvciBzZXZlcmFsIHB1cnBvc2VzLCBmb3IgZXhhbXBsZSBpbiBzZXR0aW5nIHVwXG4gICogcHJveHlpbmcgdG8gb3RoZXIgZHJpdmVycywgc2luY2Ugd2UgbmVlZCB0byBrbm93IHdoYXQgdGhlIGJhc2UgcGF0aFxuICAqIG9mIGFueSBpbmNvbWluZyByZXF1ZXN0IG1pZ2h0IGxvb2sgbGlrZS4gV2Ugc2V0IGl0IHRvIHRoZSBkZWZhdWx0XG4gICogaW5pdGlhbGx5IGJ1dCBpdCBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIGFueSBhY3R1YWwgcHJvZ3JhbVxuICAqIGV4ZWN1dGlvbiBieSB0aGUgcm91dGVDb25maWd1cmluZ0Z1bmN0aW9uLCB3aGljaCBpcyBuZWNlc3NhcmlseSBydW4gYXNcbiAgKiB0aGUgZW50cnlwb2ludCBmb3IgYW55IEFwcGl1bSBzZXJ2ZXJcbiAgKi9cbiAgYmFzZVBhdGggPSBERUZBVUxUX0JBU0VfUEFUSDtcblxuICByZWxheGVkU2VjdXJpdHlFbmFibGVkID0gZmFsc2U7XG5cbiAgLyoqIEB0eXBlIHtzdHJpbmdbXX0gKi9cbiAgYWxsb3dJbnNlY3VyZSA9IFtdO1xuXG4gIC8qKiBAdHlwZSB7c3RyaW5nW119ICovXG4gIGRlbnlJbnNlY3VyZSA9IFtdO1xuXG4gIG5ld0NvbW1hbmRUaW1lb3V0TXMgPSBORVdfQ09NTUFORF9USU1FT1VUX01TO1xuXG4gIGltcGxpY2l0V2FpdE1zID0gMDtcblxuICAvKiogQHR5cGUge3N0cmluZ1tdfSAqL1xuICBsb2NhdG9yU3RyYXRlZ2llcyA9IFtdO1xuXG4gIC8qKiBAdHlwZSB7c3RyaW5nW119ICovXG4gIHdlYkxvY2F0b3JTdHJhdGVnaWVzID0gW107XG5cbiAgLyoqIEB0eXBlIHtEcml2ZXJbXX0gKi9cbiAgbWFuYWdlZERyaXZlcnMgPSBbXTtcblxuICAvKiogQHR5cGUge05vZGVKUy5UaW1lb3V0P30gKi9cbiAgbm9Db21tYW5kVGltZXIgPSBudWxsO1xuXG4gIC8qKiBAdHlwZSB7RXZlbnRIaXN0b3J5fSAqL1xuICBfZXZlbnRIaXN0b3J5ID0ge2NvbW1hbmRzOiBbXX07XG5cbiAgX2NvbnN0cmFpbnRzID0gXy5jbG9uZURlZXAoZGVzaXJlZENhcGFiaWxpdHlDb25zdHJhaW50cyk7XG5cbiAgLy8gdXNlZCB0byBoYW5kbGUgZHJpdmVyIGV2ZW50c1xuICAvKiogQHR5cGUge05vZGVKUy5FdmVudEVtaXR0ZXJ9ICovXG4gIGV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgKiBAdHlwZSB7QXBwaXVtTG9nZ2VyfVxuICAqL1xuICBfbG9nO1xuXG4gIC8qKlxuICAqIEBwcm90ZWN0ZWRcbiAgKi9cbiAgc2h1dGRvd25VbmV4cGVjdGVkbHkgPSBmYWxzZTtcblxuICAvKipcbiAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgKiBAcHJvdGVjdGVkXG4gICovXG4gIHNob3VsZFZhbGlkYXRlQ2FwcztcblxuICAvKipcbiAgKiBAcHJvdGVjdGVkXG4gICovXG4gIGNvbW1hbmRzUXVldWVHdWFyZCA9IG5ldyBBc3luY0xvY2soKTtcblxuICAvKipcbiAgKiBzZXR0aW5ncyBzaG91bGQgYmUgaW5zdGFudGlhdGVkIGJ5IGRyaXZlcnMgd2hpY2ggZXh0ZW5kIEJhc2VEcml2ZXIsIGJ1dFxuICAqIHdlIHNldCBpdCB0byBhbiBlbXB0eSBEZXZpY2VTZXR0aW5ncyBpbnN0YW5jZSBoZXJlIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZVxuICAqIGRlZmF1bHQgc2V0dGluZ3MgYXJlIGFwcGxpZWQgZXZlbiBpZiBhbiBleHRlbmRpbmcgZHJpdmVyIGRvZXNuJ3QgdXRpbGl6ZVxuICAqIHRoZSBzZXR0aW5ncyBmdW5jdGlvbmFsaXR5IGl0c2VsZlxuICAqL1xuICBzZXR0aW5ncyA9IG5ldyBEZXZpY2VTZXR0aW5ncygpO1xuXG4gIGNvbnN0cnVjdG9yIChcbiAgICBvcHRzID0gLyoqIEB0eXBlIHtEcml2ZXJPcHRzfSAqLyAoe30pLFxuICAgIHNob3VsZFZhbGlkYXRlQ2FwcyA9IHRydWUsXG4gICkge1xuICAgIHRoaXMuX2xvZyA9IGxvZ2dlci5nZXRMb2dnZXIoaGVscGVycy5nZW5lcmF0ZURyaXZlckxvZ1ByZWZpeCh0aGlzKSk7XG5cbiAgICAvLyBzZXR1cCBzdGF0ZVxuICAgIHRoaXMub3B0cyA9IG9wdHM7XG5cbiAgICAvLyB1c2UgYSBjdXN0b20gdG1wIGRpciB0byBhdm9pZCBsb3NpbmcgZGF0YSBhbmQgYXBwIHdoZW4gY29tcHV0ZXIgaXNcbiAgICAvLyByZXN0YXJ0ZWRcbiAgICB0aGlzLm9wdHMudG1wRGlyID1cbiAgICAgIHRoaXMub3B0cy50bXBEaXIgfHwgcHJvY2Vzcy5lbnYuQVBQSVVNX1RNUF9ESVIgfHwgb3MudG1wZGlyKCk7XG5cbiAgICAvLyBiYXNlLWRyaXZlciBpbnRlcm5hbHNcbiAgICB0aGlzLnNob3VsZFZhbGlkYXRlQ2FwcyA9IHNob3VsZFZhbGlkYXRlQ2FwcztcblxuICAgIC8vIGtlZXBpbmcgdHJhY2sgb2YgaW5pdGlhbCBvcHRzXG4gICAgdGhpcy5pbml0aWFsT3B0cyA9IF8uY2xvbmVEZWVwKHRoaXMub3B0cyk7XG5cbiAgICB0aGlzLnNlc3Npb25JZCA9IG51bGw7XG4gIH1cblxuICBnZXQgbG9nICgpIHtcbiAgICByZXR1cm4gdGhpcy5fbG9nO1xuICB9XG5cbiAgLyoqXG4gICogU2V0IGEgY2FsbGJhY2sgaGFuZGxlciBpZiBuZWVkZWQgdG8gZXhlY3V0ZSBhIGN1c3RvbSBwaWVjZSBvZiBjb2RlXG4gICogd2hlbiB0aGUgZHJpdmVyIGlzIHNodXQgZG93biB1bmV4cGVjdGVkbHkuIE11bHRpcGxlIGNhbGxzIHRvIHRoaXMgbWV0aG9kXG4gICogd2lsbCBjYXVzZSB0aGUgaGFuZGxlciB0byBiZSBleGVjdXRlZCBtdXRpcGxlIHRpbWVzXG4gICpcbiAgKiBAcGFyYW0geyguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZH0gaGFuZGxlciBUaGUgY29kZSB0byBiZSBleGVjdXRlZCBvbiB1bmV4cGVjdGVkIHNodXRkb3duLlxuICAqIFRoZSBmdW5jdGlvbiBtYXkgYWNjZXB0IG9uZSBhcmd1bWVudCwgd2hpY2ggaXMgdGhlIGFjdHVhbCBlcnJvciBpbnN0YW5jZSwgd2hpY2hcbiAgKiBjYXVzZWQgdGhlIGRyaXZlciB0byBzaHV0IGRvd24uXG4gICovXG4gIG9uVW5leHBlY3RlZFNodXRkb3duIChoYW5kbGVyKSB7XG4gICAgdGhpcy5ldmVudEVtaXR0ZXIub24oT05fVU5FWFBFQ1RFRF9TSFVURE9XTl9FVkVOVCwgaGFuZGxlcik7XG4gIH1cblxuICAvKipcbiAgKiBUaGlzIHByb3BlcnR5IGlzIHVzZWQgYnkgQXBwaXVtRHJpdmVyIHRvIHN0b3JlIHRoZSBkYXRhIG9mIHRoZVxuICAqIHNwZWNpZmljIGRyaXZlciBzZXNzaW9ucy4gVGhpcyBkYXRhIGNhbiBiZSBsYXRlciB1c2VkIHRvIGFkanVzdFxuICAqIHByb3BlcnRpZXMgZm9yIGRyaXZlciBpbnN0YW5jZXMgcnVubmluZyBpbiBwYXJhbGxlbC5cbiAgKiBPdmVycmlkZSBpdCBpbiBpbmhlcml0ZWQgZHJpdmVyIGNsYXNzZXMgaWYgbmVjZXNzYXJ5LlxuICAqXG4gICogQHJldHVybiB7UmVjb3JkPHN0cmluZyx1bmtub3duPn0gRHJpdmVyIHByb3BlcnRpZXMgbWFwcGluZ1xuICAqL1xuICBnZXQgZHJpdmVyRGF0YSAoKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgLyoqXG4gICogVGhpcyBwcm9wZXJ0eSBjb250cm9scyB0aGUgd2F5IHsjZXhlY3V0ZUNvbW1hbmR9IG1ldGhvZFxuICAqIGhhbmRsZXMgbmV3IGRyaXZlciBjb21tYW5kcyByZWNlaXZlZCBmcm9tIHRoZSBjbGllbnQuXG4gICogT3ZlcnJpZGUgaXQgZm9yIGluaGVyaXRlZCBjbGFzc2VzIG9ubHkgaW4gc3BlY2lhbCBjYXNlcy5cbiAgKlxuICAqIEByZXR1cm4ge2Jvb2xlYW59IElmIHRoZSByZXR1cm5lZCB2YWx1ZSBpcyB0cnVlIChkZWZhdWx0KSB0aGVuIGFsbCB0aGUgY29tbWFuZHNcbiAgKiAgIHJlY2VpdmVkIGJ5IHRoZSBwYXJ0aWN1bGFyIGRyaXZlciBpbnN0YW5jZSBhcmUgZ29pbmcgdG8gYmUgcHV0IGludG8gdGhlIHF1ZXVlLFxuICAqICAgc28gZWFjaCBmb2xsb3dpbmcgY29tbWFuZCB3aWxsIG5vdCBiZSBleGVjdXRlZCB1bnRpbCB0aGUgcHJldmlvdXMgY29tbWFuZFxuICAqICAgZXhlY3V0aW9uIGlzIGNvbXBsZXRlZC4gRmFsc2UgdmFsdWUgZGlzYWJsZXMgdGhhdCBxdWV1ZSwgc28gZWFjaCBkcml2ZXIgY29tbWFuZFxuICAqICAgaXMgZXhlY3V0ZWQgaW5kZXBlbmRlbnRseSBhbmQgZG9lcyBub3Qgd2FpdCBmb3IgYW55dGhpbmcuXG4gICovXG4gIGdldCBpc0NvbW1hbmRzUXVldWVFbmFibGVkICgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qXG4gICogbWFrZSBldmVudEhpc3RvcnkgYSBwcm9wZXJ0eSBhbmQgcmV0dXJuIGEgY2xvbmVkIG9iamVjdCBzbyBhIGNvbnN1bWVyIGNhbid0XG4gICogaW5hZHZlcnRlbnRseSBjaGFuZ2UgZGF0YSBvdXRzaWRlIG9mIGxvZ0V2ZW50XG4gICovXG4gIGdldCBldmVudEhpc3RvcnkgKCkge1xuICAgIHJldHVybiBfLmNsb25lRGVlcCh0aGlzLl9ldmVudEhpc3RvcnkpO1xuICB9XG5cbiAgLyoqXG4gICogQVBJIG1ldGhvZCBmb3IgZHJpdmVyIGRldmVsb3BlcnMgdG8gbG9nIHRpbWluZ3MgZm9yIGltcG9ydGFudCBldmVudHNcbiAgKiBAcGFyYW0ge3N0cmluZ30gZXZlbnROYW1lXG4gICovXG4gIGxvZ0V2ZW50IChldmVudE5hbWUpIHtcbiAgICBpZiAoZXZlbnROYW1lID09PSAnY29tbWFuZHMnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBsb2cgY29tbWFuZHMgZGlyZWN0bHknKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBldmVudE5hbWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZXZlbnROYW1lICR7ZXZlbnROYW1lfWApO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuX2V2ZW50SGlzdG9yeVtldmVudE5hbWVdKSB7XG4gICAgICB0aGlzLl9ldmVudEhpc3RvcnlbZXZlbnROYW1lXSA9IFtdO1xuICAgIH1cbiAgICBjb25zdCB0cyA9IERhdGUubm93KCk7XG4gICAgY29uc3QgbG9nVGltZSA9IG5ldyBEYXRlKHRzKS50b1RpbWVTdHJpbmcoKTtcbiAgICB0aGlzLl9ldmVudEhpc3RvcnlbZXZlbnROYW1lXS5wdXNoKHRzKTtcbiAgICB0aGlzLmxvZy5kZWJ1ZyhgRXZlbnQgJyR7ZXZlbnROYW1lfScgbG9nZ2VkIGF0ICR7dHN9ICgke2xvZ1RpbWV9KWApO1xuICB9XG5cbiAgLyoqXG4gICogT3ZlcnJpZGRlbiBpbiBhcHBpdW0gZHJpdmVyLCBidXQgaGVyZSBzbyB0aGF0IGluZGl2aWR1YWwgZHJpdmVycyBjYW4gYmVcbiAgKiB0ZXN0ZWQgd2l0aCBjbGllbnRzIHRoYXQgcG9sbFxuICAqL1xuICBhc3luYyBnZXRTdGF0dXMgKCkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIC8vIHdlIG9ubHkgd2FudCBzdWJjbGFzc2VzIHRvIGV2ZXIgZXh0ZW5kIHRoZSBjb250cmFpbnRzXG4gIHNldCBkZXNpcmVkQ2FwQ29uc3RyYWludHMgKGNvbnN0cmFpbnRzKSB7XG4gICAgdGhpcy5fY29uc3RyYWludHMgPSBPYmplY3QuYXNzaWduKHRoaXMuX2NvbnN0cmFpbnRzLCBjb25zdHJhaW50cyk7XG4gICAgLy8gJ3ByZXNlbmNlJyBtZWFucyBkaWZmZXJlbnQgdGhpbmdzIGluIGRpZmZlcmVudCB2ZXJzaW9ucyBvZiB0aGUgdmFsaWRhdG9yLFxuICAgIC8vIHdoZW4gd2Ugc2F5ICd0cnVlJyB3ZSBtZWFuIHRoYXQgaXQgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIGJlIGVtcHR5XG4gICAgZm9yIChjb25zdCBbLCB2YWx1ZV0gb2YgXy50b1BhaXJzKHRoaXMuX2NvbnN0cmFpbnRzKSkge1xuICAgICAgaWYgKHZhbHVlICYmIHZhbHVlLnByZXNlbmNlID09PSB0cnVlKSB7XG4gICAgICAgIHZhbHVlLnByZXNlbmNlID0ge1xuICAgICAgICAgIGFsbG93RW1wdHk6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldCBkZXNpcmVkQ2FwQ29uc3RyYWludHMgKCkge1xuICAgIHJldHVybiB0aGlzLl9jb25zdHJhaW50cztcbiAgfVxuXG4gIC8qKlxuICAqIG1ldGhvZCByZXF1aXJlZCBieSBNSlNPTldQIGluIG9yZGVyIHRvIGRldGVybWluZSB3aGV0aGVyIGl0IHNob3VsZFxuICAqIHJlc3BvbmQgd2l0aCBhbiBpbnZhbGlkIHNlc3Npb24gcmVzcG9uc2VcbiAgKiBAcGFyYW0ge3N0cmluZ30gW3Nlc3Npb25JZF1cbiAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgKi9cbiAgc2Vzc2lvbkV4aXN0cyAoc2Vzc2lvbklkKSB7XG4gICAgaWYgKCFzZXNzaW9uSWQpIHJldHVybiBmYWxzZTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBjdXJseVxuICAgIHJldHVybiBzZXNzaW9uSWQgPT09IHRoaXMuc2Vzc2lvbklkO1xuICB9XG5cbiAgLyoqXG4gICogbWV0aG9kIHJlcXVpcmVkIGJ5IE1KU09OV1AgaW4gb3JkZXIgdG8gZGV0ZXJtaW5lIGlmIHRoZSBjb21tYW5kIHNob3VsZFxuICAqIGJlIHByb3hpZWQgZGlyZWN0bHkgdG8gdGhlIGRyaXZlclxuICAqIEBwYXJhbSB7c3RyaW5nfSBzZXNzaW9uSWRcbiAgKiBAcmV0dXJucyB7dGhpcyB8IGltcG9ydCgnQGFwcGl1bS90eXBlcycpLkRyaXZlcn1cbiAgKi9cbiAgZHJpdmVyRm9yU2Vzc2lvbiAoc2Vzc2lvbklkKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgKlxuICAqIEBwYXJhbSB7Q2FwYWJpbGl0aWVzfSBjYXBzXG4gICovXG4gIGxvZ0V4dHJhQ2FwcyAoY2Fwcykge1xuICAgIGxldCBleHRyYUNhcHMgPSBfLmRpZmZlcmVuY2UoXy5rZXlzKGNhcHMpLCBfLmtleXModGhpcy5fY29uc3RyYWludHMpKTtcbiAgICBpZiAoZXh0cmFDYXBzLmxlbmd0aCkge1xuICAgICAgdGhpcy5sb2cud2FybihcbiAgICAgICAgYFRoZSBmb2xsb3dpbmcgY2FwYWJpbGl0aWVzIHdlcmUgcHJvdmlkZWQsIGJ1dCBhcmUgbm90IGAgK1xuICAgICAgICAgIGByZWNvZ25pemVkIGJ5IEFwcGl1bTpgLFxuICAgICAgKTtcbiAgICAgIGZvciAoY29uc3QgY2FwIG9mIGV4dHJhQ2Fwcykge1xuICAgICAgICB0aGlzLmxvZy53YXJuKGAgICR7Y2FwfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAqXG4gICogQHBhcmFtIHtDYXBhYmlsaXRpZXN9IGNhcHNcbiAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgKi9cbiAgdmFsaWRhdGVEZXNpcmVkQ2FwcyAoY2Fwcykge1xuICAgIGlmICghdGhpcy5zaG91bGRWYWxpZGF0ZUNhcHMpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICB2YWxpZGF0ZUNhcHMoY2FwcywgdGhpcy5fY29uc3RyYWludHMpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nLmVycm9yQW5kVGhyb3coXG4gICAgICAgIG5ldyBlcnJvcnMuU2Vzc2lvbk5vdENyZWF0ZWRFcnJvcihcbiAgICAgICAgICBgVGhlIGRlc2lyZWRDYXBhYmlsaXRpZXMgb2JqZWN0IHdhcyBub3QgdmFsaWQgZm9yIHRoZSBgICtcbiAgICAgICAgICAgIGBmb2xsb3dpbmcgcmVhc29uKHMpOiAke2UubWVzc2FnZX1gLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLmxvZ0V4dHJhQ2FwcyhjYXBzKTtcblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaXNNanNvbndwUHJvdG9jb2wgKCkge1xuICAgIHJldHVybiB0aGlzLnByb3RvY29sID09PSBQUk9UT0NPTFMuTUpTT05XUDtcbiAgfVxuXG4gIGlzVzNDUHJvdG9jb2wgKCkge1xuICAgIHJldHVybiB0aGlzLnByb3RvY29sID09PSBQUk9UT0NPTFMuVzNDO1xuICB9XG5cbiAgc2V0UHJvdG9jb2xNSlNPTldQICgpIHtcbiAgICB0aGlzLnByb3RvY29sID0gUFJPVE9DT0xTLk1KU09OV1A7XG4gIH1cblxuICBzZXRQcm90b2NvbFczQyAoKSB7XG4gICAgdGhpcy5wcm90b2NvbCA9IFBST1RPQ09MUy5XM0M7XG4gIH1cblxuICAvKipcbiAgKiBDaGVjayB3aGV0aGVyIGEgZ2l2ZW4gZmVhdHVyZSBpcyBlbmFibGVkIHZpYSBpdHMgbmFtZVxuICAqXG4gICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBuYW1lIG9mIGZlYXR1cmUvY29tbWFuZFxuICAqXG4gICogQHJldHVybnMge0Jvb2xlYW59XG4gICovXG4gIGlzRmVhdHVyZUVuYWJsZWQgKG5hbWUpIHtcbiAgICAvLyBpZiB3ZSBoYXZlIGV4cGxpY2l0bHkgZGVuaWVkIHRoaXMgZmVhdHVyZSwgcmV0dXJuIGZhbHNlIGltbWVkaWF0ZWx5XG4gICAgaWYgKHRoaXMuZGVueUluc2VjdXJlICYmIF8uaW5jbHVkZXModGhpcy5kZW55SW5zZWN1cmUsIG5hbWUpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gaWYgd2Ugc3BlY2lmaWNhbGx5IGhhdmUgYWxsb3dlZCB0aGUgZmVhdHVyZSwgcmV0dXJuIHRydWVcbiAgICBpZiAodGhpcy5hbGxvd0luc2VjdXJlICYmIF8uaW5jbHVkZXModGhpcy5hbGxvd0luc2VjdXJlLCBuYW1lKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gb3RoZXJ3aXNlLCBpZiB3ZSd2ZSBnbG9iYWxseSBhbGxvd2VkIGluc2VjdXJlIGZlYXR1cmVzIGFuZCBub3QgZGVuaWVkXG4gICAgLy8gdGhpcyBvbmUsIHJldHVybiB0cnVlXG4gICAgaWYgKHRoaXMucmVsYXhlZFNlY3VyaXR5RW5hYmxlZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gaWYgd2UgaGF2ZW4ndCBhbGxvd2VkIGFueXRoaW5nIGluc2VjdXJlLCB0aGVuIHJlamVjdFxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAqIEFzc2VydCB0aGF0IGEgZ2l2ZW4gZmVhdHVyZSBpcyBlbmFibGVkIGFuZCB0aHJvdyBhIGhlbHBmdWwgZXJyb3IgaWYgaXQnc1xuICAqIG5vdFxuICAqXG4gICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBuYW1lIG9mIGZlYXR1cmUvY29tbWFuZFxuICAqL1xuICBlbnN1cmVGZWF0dXJlRW5hYmxlZCAobmFtZSkge1xuICAgIGlmICghdGhpcy5pc0ZlYXR1cmVFbmFibGVkKG5hbWUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBQb3RlbnRpYWxseSBpbnNlY3VyZSBmZWF0dXJlICcke25hbWV9JyBoYXMgbm90IGJlZW4gYCArXG4gICAgICAgICAgYGVuYWJsZWQuIElmIHlvdSB3YW50IHRvIGVuYWJsZSB0aGlzIGZlYXR1cmUgYW5kIGFjY2VwdCBgICtcbiAgICAgICAgICBgdGhlIHNlY3VyaXR5IHJhbWlmaWNhdGlvbnMsIHBsZWFzZSBkbyBzbyBieSBmb2xsb3dpbmcgYCArXG4gICAgICAgICAgYHRoZSBkb2N1bWVudGVkIGluc3RydWN0aW9ucyBhdCBodHRwczovL2dpdGh1Yi5jb20vYXBwaXVtYCArXG4gICAgICAgICAgYC9hcHBpdW0vYmxvYi9tYXN0ZXIvZG9jcy9lbi93cml0aW5nLXJ1bm5pbmctYXBwaXVtL3NlY3VyaXR5Lm1kYCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICpcbiAgKiBAcGFyYW0ge3N0cmluZ30gc3RyYXRlZ3lcbiAgKiBAcGFyYW0ge2Jvb2xlYW59IFt3ZWJDb250ZXh0XVxuICAqL1xuICB2YWxpZGF0ZUxvY2F0b3JTdHJhdGVneSAoc3RyYXRlZ3ksIHdlYkNvbnRleHQgPSBmYWxzZSkge1xuICAgIGxldCB2YWxpZFN0cmF0ZWdpZXMgPSB0aGlzLmxvY2F0b3JTdHJhdGVnaWVzO1xuICAgIHRoaXMubG9nLmRlYnVnKFxuICAgICAgYFZhbGlkIGxvY2F0b3Igc3RyYXRlZ2llcyBmb3IgdGhpcyByZXF1ZXN0OiAke3ZhbGlkU3RyYXRlZ2llcy5qb2luKFxuICAgICAgICAnLCAnLFxuICAgICAgKX1gLFxuICAgICk7XG5cbiAgICBpZiAod2ViQ29udGV4dCkge1xuICAgICAgdmFsaWRTdHJhdGVnaWVzID0gdmFsaWRTdHJhdGVnaWVzLmNvbmNhdCh0aGlzLndlYkxvY2F0b3JTdHJhdGVnaWVzKTtcbiAgICB9XG5cbiAgICBpZiAoIV8uaW5jbHVkZXModmFsaWRTdHJhdGVnaWVzLCBzdHJhdGVneSkpIHtcbiAgICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZFNlbGVjdG9yRXJyb3IoXG4gICAgICAgIGBMb2NhdG9yIFN0cmF0ZWd5ICcke3N0cmF0ZWd5fScgaXMgbm90IHN1cHBvcnRlZCBmb3IgdGhpcyBzZXNzaW9uYCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICpcbiAgKiBAcGFyYW0ge3N0cmluZ30gW3Nlc3Npb25JZF1cbiAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgKi9cbiAgcHJveHlBY3RpdmUgKHNlc3Npb25JZCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAqXG4gICogQHBhcmFtIHtzdHJpbmd9IHNlc3Npb25JZFxuICAqIEByZXR1cm5zIHtbc3RyaW5nLCBSZWdFeHBdW119XG4gICovXG4gIGdldFByb3h5QXZvaWRMaXN0IChzZXNzaW9uSWQpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICAvKipcbiAgKlxuICAqIEBwYXJhbSB7c3RyaW5nfSBbc2Vzc2lvbklkXVxuICAqIEByZXR1cm5zIHtib29sZWFufVxuICAqL1xuICBjYW5Qcm94eSAoc2Vzc2lvbklkKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICogV2hldGhlciBhIGdpdmVuIGNvbW1hbmQgcm91dGUgKGV4cHJlc3NlZCBhcyBtZXRob2QgYW5kIHVybCkgc2hvdWxkIG5vdCBiZVxuICAqIHByb3hpZWQgYWNjb3JkaW5nIHRvIHRoaXMgZHJpdmVyXG4gICpcbiAgKiBAcGFyYW0ge3N0cmluZ30gc2Vzc2lvbklkIC0gdGhlIGN1cnJlbnQgc2Vzc2lvbklkIChpbiBjYXNlIHRoZSBkcml2ZXIgcnVuc1xuICAqIG11bHRpcGxlIHNlc3Npb24gaWRzIGFuZCByZXF1aXJlcyBpdCkuIFRoaXMgaXMgbm90IHVzZWQgaW4gdGhpcyBtZXRob2QgYnV0XG4gICogc2hvdWxkIGJlIG1hZGUgYXZhaWxhYmxlIHRvIG92ZXJyaWRkZW4gbWV0aG9kcy5cbiAgKiBAcGFyYW0ge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLkhUVFBNZXRob2R9IG1ldGhvZCAtIEhUVFAgbWV0aG9kIG9mIHRoZSByb3V0ZVxuICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgLSB1cmwgb2YgdGhlIHJvdXRlXG4gICogQHBhcmFtIHthbnl9IFtib2R5XSAtIHdlYmRyaXZlciByZXF1ZXN0IGJvZHlcbiAgKlxuICAqIEByZXR1cm5zIHtib29sZWFufSAtIHdoZXRoZXIgdGhlIHJvdXRlIHNob3VsZCBiZSBhdm9pZGVkXG4gICovXG4gIHByb3h5Um91dGVJc0F2b2lkZWQgKHNlc3Npb25JZCwgbWV0aG9kLCB1cmwsIGJvZHkpIHtcbiAgICBmb3IgKGxldCBhdm9pZFNjaGVtYSBvZiB0aGlzLmdldFByb3h5QXZvaWRMaXN0KHNlc3Npb25JZCkpIHtcbiAgICAgIGlmICghXy5pc0FycmF5KGF2b2lkU2NoZW1hKSB8fCBhdm9pZFNjaGVtYS5sZW5ndGggIT09IDIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdQcm94eSBhdm9pZGFuY2UgbXVzdCBiZSBhIGxpc3Qgb2YgcGFpcnMnKTtcbiAgICAgIH1cbiAgICAgIGxldCBbYXZvaWRNZXRob2QsIGF2b2lkUGF0aFJlZ2V4XSA9IGF2b2lkU2NoZW1hO1xuICAgICAgaWYgKCFfLmluY2x1ZGVzKFsnR0VUJywgJ1BPU1QnLCAnREVMRVRFJ10sIGF2b2lkTWV0aG9kKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVucmVjb2duaXplZCBwcm94eSBhdm9pZGFuY2UgbWV0aG9kICcke2F2b2lkTWV0aG9kfSdgKTtcbiAgICAgIH1cbiAgICAgIGlmICghXy5pc1JlZ0V4cChhdm9pZFBhdGhSZWdleCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdQcm94eSBhdm9pZGFuY2UgcGF0aCBtdXN0IGJlIGEgcmVndWxhciBleHByZXNzaW9uJyk7XG4gICAgICB9XG4gICAgICBsZXQgbm9ybWFsaXplZFVybCA9IHVybC5yZXBsYWNlKFxuICAgICAgICBuZXcgUmVnRXhwKGBeJHtfLmVzY2FwZVJlZ0V4cCh0aGlzLmJhc2VQYXRoKX1gKSxcbiAgICAgICAgJycsXG4gICAgICApO1xuICAgICAgaWYgKGF2b2lkTWV0aG9kID09PSBtZXRob2QgJiYgYXZvaWRQYXRoUmVnZXgudGVzdChub3JtYWxpemVkVXJsKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICpcbiAgKiBAcGFyYW0ge0RyaXZlcn0gZHJpdmVyXG4gICovXG4gIGFkZE1hbmFnZWREcml2ZXIgKGRyaXZlcikge1xuICAgIHRoaXMubWFuYWdlZERyaXZlcnMucHVzaChkcml2ZXIpO1xuICB9XG5cbiAgZ2V0TWFuYWdlZERyaXZlcnMgKCkge1xuICAgIHJldHVybiB0aGlzLm1hbmFnZWREcml2ZXJzO1xuICB9XG5cbiAgYXN5bmMgY2xlYXJOZXdDb21tYW5kVGltZW91dCAoKSB7XG4gICAgaWYgKHRoaXMubm9Db21tYW5kVGltZXIpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLm5vQ29tbWFuZFRpbWVyKTtcbiAgICAgIHRoaXMubm9Db21tYW5kVGltZXIgPSBudWxsO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQge0RyaXZlckNvcmV9O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5DYXBhYmlsaXRpZXN9IENhcGFiaWxpdGllc1xuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLlczQ0NhcGFiaWxpdGllc30gVzNDQ2FwYWJpbGl0aWVzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRHJpdmVyfSBEcml2ZXJcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5Db3JlfSBDb3JlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuU2VydmVyQXJnc30gRHJpdmVyT3B0c1xuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLkV2ZW50SGlzdG9yeX0gRXZlbnRIaXN0b3J5XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuQXBwaXVtTG9nZ2VyfSBBcHBpdW1Mb2dnZXJcbiAqL1xuIl19
283
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ2ZXJzaW9uIiwiQkFTRURSSVZFUl9WRVIiLCJmcyIsInJlYWRQYWNrYWdlSnNvbkZyb20iLCJfX2Rpcm5hbWUiLCJORVdfQ09NTUFORF9USU1FT1VUX01TIiwiT05fVU5FWFBFQ1RFRF9TSFVURE9XTl9FVkVOVCIsIkRyaXZlckNvcmUiLCJiYXNlVmVyc2lvbiIsInNlc3Npb25JZCIsIm9wdHMiLCJpbml0aWFsT3B0cyIsImNhcHMiLCJvcmlnaW5hbENhcHMiLCJoZWxwZXJzIiwiYmFzZVBhdGgiLCJERUZBVUxUX0JBU0VfUEFUSCIsInJlbGF4ZWRTZWN1cml0eUVuYWJsZWQiLCJhbGxvd0luc2VjdXJlIiwiZGVueUluc2VjdXJlIiwibmV3Q29tbWFuZFRpbWVvdXRNcyIsImltcGxpY2l0V2FpdE1zIiwibG9jYXRvclN0cmF0ZWdpZXMiLCJ3ZWJMb2NhdG9yU3RyYXRlZ2llcyIsIm1hbmFnZWREcml2ZXJzIiwibm9Db21tYW5kVGltZXIiLCJfZXZlbnRIaXN0b3J5IiwiY29tbWFuZHMiLCJfY29uc3RyYWludHMiLCJfIiwiY2xvbmVEZWVwIiwiZGVzaXJlZENhcGFiaWxpdHlDb25zdHJhaW50cyIsImV2ZW50RW1pdHRlciIsIkV2ZW50RW1pdHRlciIsIl9sb2ciLCJzaHV0ZG93blVuZXhwZWN0ZWRseSIsInNob3VsZFZhbGlkYXRlQ2FwcyIsImNvbW1hbmRzUXVldWVHdWFyZCIsIkFzeW5jTG9jayIsInNldHRpbmdzIiwiRGV2aWNlU2V0dGluZ3MiLCJjb25zdHJ1Y3RvciIsImxvZ2dlciIsImdldExvZ2dlciIsImdlbmVyYXRlRHJpdmVyTG9nUHJlZml4IiwidG1wRGlyIiwicHJvY2VzcyIsImVudiIsIkFQUElVTV9UTVBfRElSIiwib3MiLCJ0bXBkaXIiLCJsb2ciLCJvblVuZXhwZWN0ZWRTaHV0ZG93biIsImhhbmRsZXIiLCJvbiIsImRyaXZlckRhdGEiLCJpc0NvbW1hbmRzUXVldWVFbmFibGVkIiwiZXZlbnRIaXN0b3J5IiwibG9nRXZlbnQiLCJldmVudE5hbWUiLCJFcnJvciIsInRzIiwiRGF0ZSIsIm5vdyIsImxvZ1RpbWUiLCJ0b1RpbWVTdHJpbmciLCJwdXNoIiwiZGVidWciLCJnZXRTdGF0dXMiLCJkZXNpcmVkQ2FwQ29uc3RyYWludHMiLCJjb25zdHJhaW50cyIsIk9iamVjdCIsImFzc2lnbiIsInZhbHVlIiwidG9QYWlycyIsInByZXNlbmNlIiwiYWxsb3dFbXB0eSIsInNlc3Npb25FeGlzdHMiLCJkcml2ZXJGb3JTZXNzaW9uIiwibG9nRXh0cmFDYXBzIiwiZXh0cmFDYXBzIiwiZGlmZmVyZW5jZSIsImtleXMiLCJsZW5ndGgiLCJ3YXJuIiwiY2FwIiwidmFsaWRhdGVEZXNpcmVkQ2FwcyIsImUiLCJlcnJvckFuZFRocm93IiwiZXJyb3JzIiwiU2Vzc2lvbk5vdENyZWF0ZWRFcnJvciIsIm1lc3NhZ2UiLCJpc01qc29ud3BQcm90b2NvbCIsInByb3RvY29sIiwiUFJPVE9DT0xTIiwiTUpTT05XUCIsImlzVzNDUHJvdG9jb2wiLCJXM0MiLCJzZXRQcm90b2NvbE1KU09OV1AiLCJzZXRQcm90b2NvbFczQyIsImlzRmVhdHVyZUVuYWJsZWQiLCJuYW1lIiwiaW5jbHVkZXMiLCJlbnN1cmVGZWF0dXJlRW5hYmxlZCIsInZhbGlkYXRlTG9jYXRvclN0cmF0ZWd5Iiwic3RyYXRlZ3kiLCJ3ZWJDb250ZXh0IiwidmFsaWRTdHJhdGVnaWVzIiwiam9pbiIsImNvbmNhdCIsIkludmFsaWRTZWxlY3RvckVycm9yIiwicHJveHlBY3RpdmUiLCJnZXRQcm94eUF2b2lkTGlzdCIsImNhblByb3h5IiwicHJveHlSb3V0ZUlzQXZvaWRlZCIsIm1ldGhvZCIsInVybCIsImJvZHkiLCJhdm9pZFNjaGVtYSIsImlzQXJyYXkiLCJhdm9pZE1ldGhvZCIsImF2b2lkUGF0aFJlZ2V4IiwiaXNSZWdFeHAiLCJub3JtYWxpemVkVXJsIiwicmVwbGFjZSIsIlJlZ0V4cCIsImVzY2FwZVJlZ0V4cCIsInRlc3QiLCJhZGRNYW5hZ2VkRHJpdmVyIiwiZHJpdmVyIiwiZ2V0TWFuYWdlZERyaXZlcnMiLCJjbGVhck5ld0NvbW1hbmRUaW1lb3V0IiwiY2xlYXJUaW1lb3V0Il0sInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2Jhc2Vkcml2ZXIvY29yZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcbi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG4vKiBlc2xpbnQtZGlzYWJsZSByZXF1aXJlLWF3YWl0ICovXG5cbmltcG9ydCB7IGZzLCBsb2dnZXIsIG5vZGUgfSBmcm9tICdAYXBwaXVtL3N1cHBvcnQnO1xuaW1wb3J0IEFzeW5jTG9jayBmcm9tICdhc3luYy1sb2NrJztcbmltcG9ydCB7IEV2ZW50RW1pdHRlciB9IGZyb20gJ2V2ZW50cyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IG9zIGZyb20gJ29zJztcbmltcG9ydCB7IERFRkFVTFRfQkFTRV9QQVRILCBQUk9UT0NPTFMgfSBmcm9tICcuLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgZXJyb3JzIH0gZnJvbSAnLi4vcHJvdG9jb2wnO1xuaW1wb3J0IHsgdmFsaWRhdGVDYXBzIH0gZnJvbSAnLi9jYXBhYmlsaXRpZXMnO1xuaW1wb3J0IHsgZGVzaXJlZENhcGFiaWxpdHlDb25zdHJhaW50cyB9IGZyb20gJy4vZGVzaXJlZC1jYXBzJztcbmltcG9ydCBEZXZpY2VTZXR0aW5ncyBmcm9tICcuL2RldmljZS1zZXR0aW5ncyc7XG5pbXBvcnQgaGVscGVycyBmcm9tICcuL2hlbHBlcnMnO1xuXG4vLyBmb3IgY29tcGF0IHdpdGggcnVubmluZyB0ZXN0cyB0cmFuc3BpbGVkIGFuZCBpbi1wbGFjZVxuY29uc3Qge3ZlcnNpb246IEJBU0VEUklWRVJfVkVSfSA9IGZzLnJlYWRQYWNrYWdlSnNvbkZyb20oX19kaXJuYW1lKTtcblxuY29uc3QgTkVXX0NPTU1BTkRfVElNRU9VVF9NUyA9IDYwICogMTAwMDtcblxuY29uc3QgT05fVU5FWFBFQ1RFRF9TSFVURE9XTl9FVkVOVCA9ICdvblVuZXhwZWN0ZWRTaHV0ZG93bic7XG4vKipcbiAqIEBpbXBsZW1lbnRzIHtDb3JlfVxuICovXG5jbGFzcyBEcml2ZXJDb3JlIHtcblxuICAvKipcbiAgICogTWFrZSB0aGUgYmFzZWRyaXZlciB2ZXJzaW9uIGF2YWlsYWJsZSBzbyBmb3IgYW55IGRyaXZlciB3aGljaCBpbmhlcml0cyBmcm9tIHRoaXMgcGFja2FnZSwgd2VcbiAgICoga25vdyB3aGljaCB2ZXJzaW9uIG9mIGJhc2Vkcml2ZXIgaXQgaW5oZXJpdGVkIGZyb21cbiAgICovXG4gIHN0YXRpYyBiYXNlVmVyc2lvbiA9IEJBU0VEUklWRVJfVkVSO1xuXG4gIC8qKlxuICAqIEB0eXBlIHtzdHJpbmc/fVxuICAqL1xuICBzZXNzaW9uSWQgPSBudWxsO1xuXG4gIC8qKlxuICAqIEB0eXBlIHtEcml2ZXJPcHRzICYgQ2FwYWJpbGl0aWVzfVxuICAqL1xuICBvcHRzO1xuXG4gIC8qKlxuICAqIEB0eXBlIHtEcml2ZXJPcHRzfVxuICAqL1xuICBpbml0aWFsT3B0cztcblxuICAvKipcbiAgKiBAdHlwZSB7Q2FwYWJpbGl0aWVzfVxuICAqL1xuICBjYXBzO1xuXG4gIC8qKlxuICAqIEB0eXBlIHtXM0NDYXBhYmlsaXRpZXN9XG4gICovXG4gIG9yaWdpbmFsQ2FwcztcblxuICBoZWxwZXJzID0gaGVscGVycztcblxuICAvKipcbiAgKiBiYXNlUGF0aCBpcyB1c2VkIGZvciBzZXZlcmFsIHB1cnBvc2VzLCBmb3IgZXhhbXBsZSBpbiBzZXR0aW5nIHVwXG4gICogcHJveHlpbmcgdG8gb3RoZXIgZHJpdmVycywgc2luY2Ugd2UgbmVlZCB0byBrbm93IHdoYXQgdGhlIGJhc2UgcGF0aFxuICAqIG9mIGFueSBpbmNvbWluZyByZXF1ZXN0IG1pZ2h0IGxvb2sgbGlrZS4gV2Ugc2V0IGl0IHRvIHRoZSBkZWZhdWx0XG4gICogaW5pdGlhbGx5IGJ1dCBpdCBpcyBhdXRvbWF0aWNhbGx5IHVwZGF0ZWQgZHVyaW5nIGFueSBhY3R1YWwgcHJvZ3JhbVxuICAqIGV4ZWN1dGlvbiBieSB0aGUgcm91dGVDb25maWd1cmluZ0Z1bmN0aW9uLCB3aGljaCBpcyBuZWNlc3NhcmlseSBydW4gYXNcbiAgKiB0aGUgZW50cnlwb2ludCBmb3IgYW55IEFwcGl1bSBzZXJ2ZXJcbiAgKi9cbiAgYmFzZVBhdGggPSBERUZBVUxUX0JBU0VfUEFUSDtcblxuICByZWxheGVkU2VjdXJpdHlFbmFibGVkID0gZmFsc2U7XG5cbiAgLyoqIEB0eXBlIHtzdHJpbmdbXX0gKi9cbiAgYWxsb3dJbnNlY3VyZSA9IFtdO1xuXG4gIC8qKiBAdHlwZSB7c3RyaW5nW119ICovXG4gIGRlbnlJbnNlY3VyZSA9IFtdO1xuXG4gIG5ld0NvbW1hbmRUaW1lb3V0TXMgPSBORVdfQ09NTUFORF9USU1FT1VUX01TO1xuXG4gIGltcGxpY2l0V2FpdE1zID0gMDtcblxuICAvKiogQHR5cGUge3N0cmluZ1tdfSAqL1xuICBsb2NhdG9yU3RyYXRlZ2llcyA9IFtdO1xuXG4gIC8qKiBAdHlwZSB7c3RyaW5nW119ICovXG4gIHdlYkxvY2F0b3JTdHJhdGVnaWVzID0gW107XG5cbiAgLyoqIEB0eXBlIHtEcml2ZXJbXX0gKi9cbiAgbWFuYWdlZERyaXZlcnMgPSBbXTtcblxuICAvKiogQHR5cGUge05vZGVKUy5UaW1lb3V0P30gKi9cbiAgbm9Db21tYW5kVGltZXIgPSBudWxsO1xuXG4gIC8qKiBAdHlwZSB7RXZlbnRIaXN0b3J5fSAqL1xuICBfZXZlbnRIaXN0b3J5ID0ge2NvbW1hbmRzOiBbXX07XG5cbiAgX2NvbnN0cmFpbnRzID0gXy5jbG9uZURlZXAoZGVzaXJlZENhcGFiaWxpdHlDb25zdHJhaW50cyk7XG5cbiAgLy8gdXNlZCB0byBoYW5kbGUgZHJpdmVyIGV2ZW50c1xuICAvKiogQHR5cGUge05vZGVKUy5FdmVudEVtaXR0ZXJ9ICovXG4gIGV2ZW50RW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICAvKipcbiAgKiBAdHlwZSB7QXBwaXVtTG9nZ2VyfVxuICAqL1xuICBfbG9nO1xuXG4gIC8qKlxuICAqIEBwcm90ZWN0ZWRcbiAgKi9cbiAgc2h1dGRvd25VbmV4cGVjdGVkbHkgPSBmYWxzZTtcblxuICAvKipcbiAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgKiBAcHJvdGVjdGVkXG4gICovXG4gIHNob3VsZFZhbGlkYXRlQ2FwcztcblxuICAvKipcbiAgKiBAcHJvdGVjdGVkXG4gICovXG4gIGNvbW1hbmRzUXVldWVHdWFyZCA9IG5ldyBBc3luY0xvY2soKTtcblxuICAvKipcbiAgKiBzZXR0aW5ncyBzaG91bGQgYmUgaW5zdGFudGlhdGVkIGJ5IGRyaXZlcnMgd2hpY2ggZXh0ZW5kIEJhc2VEcml2ZXIsIGJ1dFxuICAqIHdlIHNldCBpdCB0byBhbiBlbXB0eSBEZXZpY2VTZXR0aW5ncyBpbnN0YW5jZSBoZXJlIHRvIG1ha2Ugc3VyZSB0aGF0IHRoZVxuICAqIGRlZmF1bHQgc2V0dGluZ3MgYXJlIGFwcGxpZWQgZXZlbiBpZiBhbiBleHRlbmRpbmcgZHJpdmVyIGRvZXNuJ3QgdXRpbGl6ZVxuICAqIHRoZSBzZXR0aW5ncyBmdW5jdGlvbmFsaXR5IGl0c2VsZlxuICAqL1xuICBzZXR0aW5ncyA9IG5ldyBEZXZpY2VTZXR0aW5ncygpO1xuXG4gIGNvbnN0cnVjdG9yIChcbiAgICBvcHRzID0gLyoqIEB0eXBlIHtEcml2ZXJPcHRzfSAqLyAoe30pLFxuICAgIHNob3VsZFZhbGlkYXRlQ2FwcyA9IHRydWUsXG4gICkge1xuICAgIHRoaXMuX2xvZyA9IGxvZ2dlci5nZXRMb2dnZXIoaGVscGVycy5nZW5lcmF0ZURyaXZlckxvZ1ByZWZpeCh0aGlzKSk7XG5cbiAgICAvLyBzZXR1cCBzdGF0ZVxuICAgIHRoaXMub3B0cyA9IG9wdHM7XG5cbiAgICAvLyB1c2UgYSBjdXN0b20gdG1wIGRpciB0byBhdm9pZCBsb3NpbmcgZGF0YSBhbmQgYXBwIHdoZW4gY29tcHV0ZXIgaXNcbiAgICAvLyByZXN0YXJ0ZWRcbiAgICB0aGlzLm9wdHMudG1wRGlyID1cbiAgICAgIHRoaXMub3B0cy50bXBEaXIgfHwgcHJvY2Vzcy5lbnYuQVBQSVVNX1RNUF9ESVIgfHwgb3MudG1wZGlyKCk7XG5cbiAgICAvLyBiYXNlLWRyaXZlciBpbnRlcm5hbHNcbiAgICB0aGlzLnNob3VsZFZhbGlkYXRlQ2FwcyA9IHNob3VsZFZhbGlkYXRlQ2FwcztcblxuICAgIC8vIGtlZXBpbmcgdHJhY2sgb2YgaW5pdGlhbCBvcHRzXG4gICAgdGhpcy5pbml0aWFsT3B0cyA9IF8uY2xvbmVEZWVwKHRoaXMub3B0cyk7XG5cbiAgICB0aGlzLnNlc3Npb25JZCA9IG51bGw7XG4gIH1cblxuICBnZXQgbG9nICgpIHtcbiAgICByZXR1cm4gdGhpcy5fbG9nO1xuICB9XG5cbiAgLyoqXG4gICogU2V0IGEgY2FsbGJhY2sgaGFuZGxlciBpZiBuZWVkZWQgdG8gZXhlY3V0ZSBhIGN1c3RvbSBwaWVjZSBvZiBjb2RlXG4gICogd2hlbiB0aGUgZHJpdmVyIGlzIHNodXQgZG93biB1bmV4cGVjdGVkbHkuIE11bHRpcGxlIGNhbGxzIHRvIHRoaXMgbWV0aG9kXG4gICogd2lsbCBjYXVzZSB0aGUgaGFuZGxlciB0byBiZSBleGVjdXRlZCBtdXRpcGxlIHRpbWVzXG4gICpcbiAgKiBAcGFyYW0geyguLi5hcmdzOiBhbnlbXSkgPT4gdm9pZH0gaGFuZGxlciBUaGUgY29kZSB0byBiZSBleGVjdXRlZCBvbiB1bmV4cGVjdGVkIHNodXRkb3duLlxuICAqIFRoZSBmdW5jdGlvbiBtYXkgYWNjZXB0IG9uZSBhcmd1bWVudCwgd2hpY2ggaXMgdGhlIGFjdHVhbCBlcnJvciBpbnN0YW5jZSwgd2hpY2hcbiAgKiBjYXVzZWQgdGhlIGRyaXZlciB0byBzaHV0IGRvd24uXG4gICovXG4gIG9uVW5leHBlY3RlZFNodXRkb3duIChoYW5kbGVyKSB7XG4gICAgdGhpcy5ldmVudEVtaXR0ZXIub24oT05fVU5FWFBFQ1RFRF9TSFVURE9XTl9FVkVOVCwgaGFuZGxlcik7XG4gIH1cblxuICAvKipcbiAgKiBUaGlzIHByb3BlcnR5IGlzIHVzZWQgYnkgQXBwaXVtRHJpdmVyIHRvIHN0b3JlIHRoZSBkYXRhIG9mIHRoZVxuICAqIHNwZWNpZmljIGRyaXZlciBzZXNzaW9ucy4gVGhpcyBkYXRhIGNhbiBiZSBsYXRlciB1c2VkIHRvIGFkanVzdFxuICAqIHByb3BlcnRpZXMgZm9yIGRyaXZlciBpbnN0YW5jZXMgcnVubmluZyBpbiBwYXJhbGxlbC5cbiAgKiBPdmVycmlkZSBpdCBpbiBpbmhlcml0ZWQgZHJpdmVyIGNsYXNzZXMgaWYgbmVjZXNzYXJ5LlxuICAqXG4gICogQHJldHVybiB7UmVjb3JkPHN0cmluZyx1bmtub3duPn0gRHJpdmVyIHByb3BlcnRpZXMgbWFwcGluZ1xuICAqL1xuICBnZXQgZHJpdmVyRGF0YSAoKSB7XG4gICAgcmV0dXJuIHt9O1xuICB9XG5cbiAgLyoqXG4gICogVGhpcyBwcm9wZXJ0eSBjb250cm9scyB0aGUgd2F5IHsjZXhlY3V0ZUNvbW1hbmR9IG1ldGhvZFxuICAqIGhhbmRsZXMgbmV3IGRyaXZlciBjb21tYW5kcyByZWNlaXZlZCBmcm9tIHRoZSBjbGllbnQuXG4gICogT3ZlcnJpZGUgaXQgZm9yIGluaGVyaXRlZCBjbGFzc2VzIG9ubHkgaW4gc3BlY2lhbCBjYXNlcy5cbiAgKlxuICAqIEByZXR1cm4ge2Jvb2xlYW59IElmIHRoZSByZXR1cm5lZCB2YWx1ZSBpcyB0cnVlIChkZWZhdWx0KSB0aGVuIGFsbCB0aGUgY29tbWFuZHNcbiAgKiAgIHJlY2VpdmVkIGJ5IHRoZSBwYXJ0aWN1bGFyIGRyaXZlciBpbnN0YW5jZSBhcmUgZ29pbmcgdG8gYmUgcHV0IGludG8gdGhlIHF1ZXVlLFxuICAqICAgc28gZWFjaCBmb2xsb3dpbmcgY29tbWFuZCB3aWxsIG5vdCBiZSBleGVjdXRlZCB1bnRpbCB0aGUgcHJldmlvdXMgY29tbWFuZFxuICAqICAgZXhlY3V0aW9uIGlzIGNvbXBsZXRlZC4gRmFsc2UgdmFsdWUgZGlzYWJsZXMgdGhhdCBxdWV1ZSwgc28gZWFjaCBkcml2ZXIgY29tbWFuZFxuICAqICAgaXMgZXhlY3V0ZWQgaW5kZXBlbmRlbnRseSBhbmQgZG9lcyBub3Qgd2FpdCBmb3IgYW55dGhpbmcuXG4gICovXG4gIGdldCBpc0NvbW1hbmRzUXVldWVFbmFibGVkICgpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8qXG4gICogbWFrZSBldmVudEhpc3RvcnkgYSBwcm9wZXJ0eSBhbmQgcmV0dXJuIGEgY2xvbmVkIG9iamVjdCBzbyBhIGNvbnN1bWVyIGNhbid0XG4gICogaW5hZHZlcnRlbnRseSBjaGFuZ2UgZGF0YSBvdXRzaWRlIG9mIGxvZ0V2ZW50XG4gICovXG4gIGdldCBldmVudEhpc3RvcnkgKCkge1xuICAgIHJldHVybiBfLmNsb25lRGVlcCh0aGlzLl9ldmVudEhpc3RvcnkpO1xuICB9XG5cbiAgLyoqXG4gICogQVBJIG1ldGhvZCBmb3IgZHJpdmVyIGRldmVsb3BlcnMgdG8gbG9nIHRpbWluZ3MgZm9yIGltcG9ydGFudCBldmVudHNcbiAgKiBAcGFyYW0ge3N0cmluZ30gZXZlbnROYW1lXG4gICovXG4gIGxvZ0V2ZW50IChldmVudE5hbWUpIHtcbiAgICBpZiAoZXZlbnROYW1lID09PSAnY29tbWFuZHMnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0Nhbm5vdCBsb2cgY29tbWFuZHMgZGlyZWN0bHknKTtcbiAgICB9XG4gICAgaWYgKHR5cGVvZiBldmVudE5hbWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYEludmFsaWQgZXZlbnROYW1lICR7ZXZlbnROYW1lfWApO1xuICAgIH1cbiAgICBpZiAoIXRoaXMuX2V2ZW50SGlzdG9yeVtldmVudE5hbWVdKSB7XG4gICAgICB0aGlzLl9ldmVudEhpc3RvcnlbZXZlbnROYW1lXSA9IFtdO1xuICAgIH1cbiAgICBjb25zdCB0cyA9IERhdGUubm93KCk7XG4gICAgY29uc3QgbG9nVGltZSA9IG5ldyBEYXRlKHRzKS50b1RpbWVTdHJpbmcoKTtcbiAgICB0aGlzLl9ldmVudEhpc3RvcnlbZXZlbnROYW1lXS5wdXNoKHRzKTtcbiAgICB0aGlzLmxvZy5kZWJ1ZyhgRXZlbnQgJyR7ZXZlbnROYW1lfScgbG9nZ2VkIGF0ICR7dHN9ICgke2xvZ1RpbWV9KWApO1xuICB9XG5cbiAgLyoqXG4gICogT3ZlcnJpZGRlbiBpbiBhcHBpdW0gZHJpdmVyLCBidXQgaGVyZSBzbyB0aGF0IGluZGl2aWR1YWwgZHJpdmVycyBjYW4gYmVcbiAgKiB0ZXN0ZWQgd2l0aCBjbGllbnRzIHRoYXQgcG9sbFxuICAqL1xuICBhc3luYyBnZXRTdGF0dXMgKCkge1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG4gIC8vIHdlIG9ubHkgd2FudCBzdWJjbGFzc2VzIHRvIGV2ZXIgZXh0ZW5kIHRoZSBjb250cmFpbnRzXG4gIHNldCBkZXNpcmVkQ2FwQ29uc3RyYWludHMgKGNvbnN0cmFpbnRzKSB7XG4gICAgdGhpcy5fY29uc3RyYWludHMgPSBPYmplY3QuYXNzaWduKHRoaXMuX2NvbnN0cmFpbnRzLCBjb25zdHJhaW50cyk7XG4gICAgLy8gJ3ByZXNlbmNlJyBtZWFucyBkaWZmZXJlbnQgdGhpbmdzIGluIGRpZmZlcmVudCB2ZXJzaW9ucyBvZiB0aGUgdmFsaWRhdG9yLFxuICAgIC8vIHdoZW4gd2Ugc2F5ICd0cnVlJyB3ZSBtZWFuIHRoYXQgaXQgc2hvdWxkIG5vdCBiZSBhYmxlIHRvIGJlIGVtcHR5XG4gICAgZm9yIChjb25zdCBbLCB2YWx1ZV0gb2YgXy50b1BhaXJzKHRoaXMuX2NvbnN0cmFpbnRzKSkge1xuICAgICAgaWYgKHZhbHVlICYmIHZhbHVlLnByZXNlbmNlID09PSB0cnVlKSB7XG4gICAgICAgIHZhbHVlLnByZXNlbmNlID0ge1xuICAgICAgICAgIGFsbG93RW1wdHk6IGZhbHNlLFxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIGdldCBkZXNpcmVkQ2FwQ29uc3RyYWludHMgKCkge1xuICAgIHJldHVybiB0aGlzLl9jb25zdHJhaW50cztcbiAgfVxuXG4gIC8qKlxuICAqIG1ldGhvZCByZXF1aXJlZCBieSBNSlNPTldQIGluIG9yZGVyIHRvIGRldGVybWluZSB3aGV0aGVyIGl0IHNob3VsZFxuICAqIHJlc3BvbmQgd2l0aCBhbiBpbnZhbGlkIHNlc3Npb24gcmVzcG9uc2VcbiAgKiBAcGFyYW0ge3N0cmluZ30gW3Nlc3Npb25JZF1cbiAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgKi9cbiAgc2Vzc2lvbkV4aXN0cyAoc2Vzc2lvbklkKSB7XG4gICAgaWYgKCFzZXNzaW9uSWQpIHJldHVybiBmYWxzZTsgLy8gZXNsaW50LWRpc2FibGUtbGluZSBjdXJseVxuICAgIHJldHVybiBzZXNzaW9uSWQgPT09IHRoaXMuc2Vzc2lvbklkO1xuICB9XG5cbiAgLyoqXG4gICogbWV0aG9kIHJlcXVpcmVkIGJ5IE1KU09OV1AgaW4gb3JkZXIgdG8gZGV0ZXJtaW5lIGlmIHRoZSBjb21tYW5kIHNob3VsZFxuICAqIGJlIHByb3hpZWQgZGlyZWN0bHkgdG8gdGhlIGRyaXZlclxuICAqIEBwYXJhbSB7c3RyaW5nfSBzZXNzaW9uSWRcbiAgKiBAcmV0dXJucyB7dGhpcyB8IGltcG9ydCgnQGFwcGl1bS90eXBlcycpLkRyaXZlcn1cbiAgKi9cbiAgZHJpdmVyRm9yU2Vzc2lvbiAoc2Vzc2lvbklkKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH1cblxuICAvKipcbiAgKlxuICAqIEBwYXJhbSB7Q2FwYWJpbGl0aWVzfSBjYXBzXG4gICovXG4gIGxvZ0V4dHJhQ2FwcyAoY2Fwcykge1xuICAgIGxldCBleHRyYUNhcHMgPSBfLmRpZmZlcmVuY2UoXy5rZXlzKGNhcHMpLCBfLmtleXModGhpcy5fY29uc3RyYWludHMpKTtcbiAgICBpZiAoZXh0cmFDYXBzLmxlbmd0aCkge1xuICAgICAgdGhpcy5sb2cud2FybihcbiAgICAgICAgYFRoZSBmb2xsb3dpbmcgY2FwYWJpbGl0aWVzIHdlcmUgcHJvdmlkZWQsIGJ1dCBhcmUgbm90IGAgK1xuICAgICAgICAgIGByZWNvZ25pemVkIGJ5IEFwcGl1bTpgLFxuICAgICAgKTtcbiAgICAgIGZvciAoY29uc3QgY2FwIG9mIGV4dHJhQ2Fwcykge1xuICAgICAgICB0aGlzLmxvZy53YXJuKGAgICR7Y2FwfWApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAqXG4gICogQHBhcmFtIHtDYXBhYmlsaXRpZXN9IGNhcHNcbiAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgKi9cbiAgdmFsaWRhdGVEZXNpcmVkQ2FwcyAoY2Fwcykge1xuICAgIGlmICghdGhpcy5zaG91bGRWYWxpZGF0ZUNhcHMpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHRyeSB7XG4gICAgICB2YWxpZGF0ZUNhcHMoY2FwcywgdGhpcy5fY29uc3RyYWludHMpO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMubG9nLmVycm9yQW5kVGhyb3coXG4gICAgICAgIG5ldyBlcnJvcnMuU2Vzc2lvbk5vdENyZWF0ZWRFcnJvcihcbiAgICAgICAgICBgVGhlIGRlc2lyZWRDYXBhYmlsaXRpZXMgb2JqZWN0IHdhcyBub3QgdmFsaWQgZm9yIHRoZSBgICtcbiAgICAgICAgICAgIGBmb2xsb3dpbmcgcmVhc29uKHMpOiAke2UubWVzc2FnZX1gLFxuICAgICAgICApLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICB0aGlzLmxvZ0V4dHJhQ2FwcyhjYXBzKTtcblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaXNNanNvbndwUHJvdG9jb2wgKCkge1xuICAgIHJldHVybiB0aGlzLnByb3RvY29sID09PSBQUk9UT0NPTFMuTUpTT05XUDtcbiAgfVxuXG4gIGlzVzNDUHJvdG9jb2wgKCkge1xuICAgIHJldHVybiB0aGlzLnByb3RvY29sID09PSBQUk9UT0NPTFMuVzNDO1xuICB9XG5cbiAgc2V0UHJvdG9jb2xNSlNPTldQICgpIHtcbiAgICB0aGlzLnByb3RvY29sID0gUFJPVE9DT0xTLk1KU09OV1A7XG4gIH1cblxuICBzZXRQcm90b2NvbFczQyAoKSB7XG4gICAgdGhpcy5wcm90b2NvbCA9IFBST1RPQ09MUy5XM0M7XG4gIH1cblxuICAvKipcbiAgKiBDaGVjayB3aGV0aGVyIGEgZ2l2ZW4gZmVhdHVyZSBpcyBlbmFibGVkIHZpYSBpdHMgbmFtZVxuICAqXG4gICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBuYW1lIG9mIGZlYXR1cmUvY29tbWFuZFxuICAqXG4gICogQHJldHVybnMge0Jvb2xlYW59XG4gICovXG4gIGlzRmVhdHVyZUVuYWJsZWQgKG5hbWUpIHtcbiAgICAvLyBpZiB3ZSBoYXZlIGV4cGxpY2l0bHkgZGVuaWVkIHRoaXMgZmVhdHVyZSwgcmV0dXJuIGZhbHNlIGltbWVkaWF0ZWx5XG4gICAgaWYgKHRoaXMuZGVueUluc2VjdXJlICYmIF8uaW5jbHVkZXModGhpcy5kZW55SW5zZWN1cmUsIG5hbWUpKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgLy8gaWYgd2Ugc3BlY2lmaWNhbGx5IGhhdmUgYWxsb3dlZCB0aGUgZmVhdHVyZSwgcmV0dXJuIHRydWVcbiAgICBpZiAodGhpcy5hbGxvd0luc2VjdXJlICYmIF8uaW5jbHVkZXModGhpcy5hbGxvd0luc2VjdXJlLCBuYW1lKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gb3RoZXJ3aXNlLCBpZiB3ZSd2ZSBnbG9iYWxseSBhbGxvd2VkIGluc2VjdXJlIGZlYXR1cmVzIGFuZCBub3QgZGVuaWVkXG4gICAgLy8gdGhpcyBvbmUsIHJldHVybiB0cnVlXG4gICAgaWYgKHRoaXMucmVsYXhlZFNlY3VyaXR5RW5hYmxlZCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgLy8gaWYgd2UgaGF2ZW4ndCBhbGxvd2VkIGFueXRoaW5nIGluc2VjdXJlLCB0aGVuIHJlamVjdFxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAqIEFzc2VydCB0aGF0IGEgZ2l2ZW4gZmVhdHVyZSBpcyBlbmFibGVkIGFuZCB0aHJvdyBhIGhlbHBmdWwgZXJyb3IgaWYgaXQnc1xuICAqIG5vdFxuICAqXG4gICogQHBhcmFtIHtzdHJpbmd9IG5hbWUgLSBuYW1lIG9mIGZlYXR1cmUvY29tbWFuZFxuICAqL1xuICBlbnN1cmVGZWF0dXJlRW5hYmxlZCAobmFtZSkge1xuICAgIGlmICghdGhpcy5pc0ZlYXR1cmVFbmFibGVkKG5hbWUpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBQb3RlbnRpYWxseSBpbnNlY3VyZSBmZWF0dXJlICcke25hbWV9JyBoYXMgbm90IGJlZW4gYCArXG4gICAgICAgICAgYGVuYWJsZWQuIElmIHlvdSB3YW50IHRvIGVuYWJsZSB0aGlzIGZlYXR1cmUgYW5kIGFjY2VwdCBgICtcbiAgICAgICAgICBgdGhlIHNlY3VyaXR5IHJhbWlmaWNhdGlvbnMsIHBsZWFzZSBkbyBzbyBieSBmb2xsb3dpbmcgYCArXG4gICAgICAgICAgYHRoZSBkb2N1bWVudGVkIGluc3RydWN0aW9ucyBhdCBodHRwczovL2dpdGh1Yi5jb20vYXBwaXVtYCArXG4gICAgICAgICAgYC9hcHBpdW0vYmxvYi9tYXN0ZXIvZG9jcy9lbi93cml0aW5nLXJ1bm5pbmctYXBwaXVtL3NlY3VyaXR5Lm1kYCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICpcbiAgKiBAcGFyYW0ge3N0cmluZ30gc3RyYXRlZ3lcbiAgKiBAcGFyYW0ge2Jvb2xlYW59IFt3ZWJDb250ZXh0XVxuICAqL1xuICB2YWxpZGF0ZUxvY2F0b3JTdHJhdGVneSAoc3RyYXRlZ3ksIHdlYkNvbnRleHQgPSBmYWxzZSkge1xuICAgIGxldCB2YWxpZFN0cmF0ZWdpZXMgPSB0aGlzLmxvY2F0b3JTdHJhdGVnaWVzO1xuICAgIHRoaXMubG9nLmRlYnVnKFxuICAgICAgYFZhbGlkIGxvY2F0b3Igc3RyYXRlZ2llcyBmb3IgdGhpcyByZXF1ZXN0OiAke3ZhbGlkU3RyYXRlZ2llcy5qb2luKFxuICAgICAgICAnLCAnLFxuICAgICAgKX1gLFxuICAgICk7XG5cbiAgICBpZiAod2ViQ29udGV4dCkge1xuICAgICAgdmFsaWRTdHJhdGVnaWVzID0gdmFsaWRTdHJhdGVnaWVzLmNvbmNhdCh0aGlzLndlYkxvY2F0b3JTdHJhdGVnaWVzKTtcbiAgICB9XG5cbiAgICBpZiAoIV8uaW5jbHVkZXModmFsaWRTdHJhdGVnaWVzLCBzdHJhdGVneSkpIHtcbiAgICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZFNlbGVjdG9yRXJyb3IoXG4gICAgICAgIGBMb2NhdG9yIFN0cmF0ZWd5ICcke3N0cmF0ZWd5fScgaXMgbm90IHN1cHBvcnRlZCBmb3IgdGhpcyBzZXNzaW9uYCxcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICpcbiAgKiBAcGFyYW0ge3N0cmluZ30gW3Nlc3Npb25JZF1cbiAgKiBAcmV0dXJucyB7Ym9vbGVhbn1cbiAgKi9cbiAgcHJveHlBY3RpdmUgKHNlc3Npb25JZCkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIC8qKlxuICAqXG4gICogQHBhcmFtIHtzdHJpbmd9IHNlc3Npb25JZFxuICAqIEByZXR1cm5zIHtbc3RyaW5nLCBSZWdFeHBdW119XG4gICovXG4gIGdldFByb3h5QXZvaWRMaXN0IChzZXNzaW9uSWQpIHtcbiAgICByZXR1cm4gW107XG4gIH1cblxuICAvKipcbiAgKlxuICAqIEBwYXJhbSB7c3RyaW5nfSBbc2Vzc2lvbklkXVxuICAqIEByZXR1cm5zIHtib29sZWFufVxuICAqL1xuICBjYW5Qcm94eSAoc2Vzc2lvbklkKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICogV2hldGhlciBhIGdpdmVuIGNvbW1hbmQgcm91dGUgKGV4cHJlc3NlZCBhcyBtZXRob2QgYW5kIHVybCkgc2hvdWxkIG5vdCBiZVxuICAqIHByb3hpZWQgYWNjb3JkaW5nIHRvIHRoaXMgZHJpdmVyXG4gICpcbiAgKiBAcGFyYW0ge3N0cmluZ30gc2Vzc2lvbklkIC0gdGhlIGN1cnJlbnQgc2Vzc2lvbklkIChpbiBjYXNlIHRoZSBkcml2ZXIgcnVuc1xuICAqIG11bHRpcGxlIHNlc3Npb24gaWRzIGFuZCByZXF1aXJlcyBpdCkuIFRoaXMgaXMgbm90IHVzZWQgaW4gdGhpcyBtZXRob2QgYnV0XG4gICogc2hvdWxkIGJlIG1hZGUgYXZhaWxhYmxlIHRvIG92ZXJyaWRkZW4gbWV0aG9kcy5cbiAgKiBAcGFyYW0ge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLkhUVFBNZXRob2R9IG1ldGhvZCAtIEhUVFAgbWV0aG9kIG9mIHRoZSByb3V0ZVxuICAqIEBwYXJhbSB7c3RyaW5nfSB1cmwgLSB1cmwgb2YgdGhlIHJvdXRlXG4gICogQHBhcmFtIHthbnl9IFtib2R5XSAtIHdlYmRyaXZlciByZXF1ZXN0IGJvZHlcbiAgKlxuICAqIEByZXR1cm5zIHtib29sZWFufSAtIHdoZXRoZXIgdGhlIHJvdXRlIHNob3VsZCBiZSBhdm9pZGVkXG4gICovXG4gIHByb3h5Um91dGVJc0F2b2lkZWQgKHNlc3Npb25JZCwgbWV0aG9kLCB1cmwsIGJvZHkpIHtcbiAgICBmb3IgKGxldCBhdm9pZFNjaGVtYSBvZiB0aGlzLmdldFByb3h5QXZvaWRMaXN0KHNlc3Npb25JZCkpIHtcbiAgICAgIGlmICghXy5pc0FycmF5KGF2b2lkU2NoZW1hKSB8fCBhdm9pZFNjaGVtYS5sZW5ndGggIT09IDIpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdQcm94eSBhdm9pZGFuY2UgbXVzdCBiZSBhIGxpc3Qgb2YgcGFpcnMnKTtcbiAgICAgIH1cbiAgICAgIGxldCBbYXZvaWRNZXRob2QsIGF2b2lkUGF0aFJlZ2V4XSA9IGF2b2lkU2NoZW1hO1xuICAgICAgaWYgKCFfLmluY2x1ZGVzKFsnR0VUJywgJ1BPU1QnLCAnREVMRVRFJ10sIGF2b2lkTWV0aG9kKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYFVucmVjb2duaXplZCBwcm94eSBhdm9pZGFuY2UgbWV0aG9kICcke2F2b2lkTWV0aG9kfSdgKTtcbiAgICAgIH1cbiAgICAgIGlmICghXy5pc1JlZ0V4cChhdm9pZFBhdGhSZWdleCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdQcm94eSBhdm9pZGFuY2UgcGF0aCBtdXN0IGJlIGEgcmVndWxhciBleHByZXNzaW9uJyk7XG4gICAgICB9XG4gICAgICBsZXQgbm9ybWFsaXplZFVybCA9IHVybC5yZXBsYWNlKFxuICAgICAgICBuZXcgUmVnRXhwKGBeJHtfLmVzY2FwZVJlZ0V4cCh0aGlzLmJhc2VQYXRoKX1gKSxcbiAgICAgICAgJycsXG4gICAgICApO1xuICAgICAgaWYgKGF2b2lkTWV0aG9kID09PSBtZXRob2QgJiYgYXZvaWRQYXRoUmVnZXgudGVzdChub3JtYWxpemVkVXJsKSkge1xuICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgLyoqXG4gICpcbiAgKiBAcGFyYW0ge0RyaXZlcn0gZHJpdmVyXG4gICovXG4gIGFkZE1hbmFnZWREcml2ZXIgKGRyaXZlcikge1xuICAgIHRoaXMubWFuYWdlZERyaXZlcnMucHVzaChkcml2ZXIpO1xuICB9XG5cbiAgZ2V0TWFuYWdlZERyaXZlcnMgKCkge1xuICAgIHJldHVybiB0aGlzLm1hbmFnZWREcml2ZXJzO1xuICB9XG5cbiAgYXN5bmMgY2xlYXJOZXdDb21tYW5kVGltZW91dCAoKSB7XG4gICAgaWYgKHRoaXMubm9Db21tYW5kVGltZXIpIHtcbiAgICAgIGNsZWFyVGltZW91dCh0aGlzLm5vQ29tbWFuZFRpbWVyKTtcbiAgICAgIHRoaXMubm9Db21tYW5kVGltZXIgPSBudWxsO1xuICAgIH1cbiAgfVxufVxuXG5leHBvcnQge0RyaXZlckNvcmV9O1xuXG4vKipcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5DYXBhYmlsaXRpZXN9IENhcGFiaWxpdGllc1xuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLlczQ0NhcGFiaWxpdGllc30gVzNDQ2FwYWJpbGl0aWVzXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRHJpdmVyfSBEcml2ZXJcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5Db3JlfSBDb3JlXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuU2VydmVyQXJnc30gRHJpdmVyT3B0c1xuICogQHR5cGVkZWYge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLkV2ZW50SGlzdG9yeX0gRXZlbnRIaXN0b3J5XG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuQXBwaXVtTG9nZ2VyfSBBcHBpdW1Mb2dnZXJcbiAqL1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUlBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUdBLE1BQU07RUFBQ0EsT0FBTyxFQUFFQztBQUFWLElBQTRCQyxZQUFHQyxtQkFBSCxDQUF1QkMsU0FBdkIsQ0FBbEM7O0FBRUEsTUFBTUMsc0JBQXNCLEdBQUcsS0FBSyxJQUFwQztBQUVBLE1BQU1DLDRCQUE0QixHQUFHLHNCQUFyQzs7QUFJQSxNQUFNQyxVQUFOLENBQWlCO0VBTUcsT0FBWEMsV0FBVyxHQUFHUCxjQUFIO0VBS2xCUSxTQUFTLEdBQUcsSUFBSDtFQUtUQyxJQUFJO0VBS0pDLFdBQVc7RUFLWEMsSUFBSTtFQUtKQyxZQUFZO0VBRVpDLE9BQU8sR0FBR0EsZ0JBQUg7RUFVUEMsUUFBUSxHQUFHQyw0QkFBSDtFQUVSQyxzQkFBc0IsR0FBRyxLQUFIO0VBR3RCQyxhQUFhLEdBQUcsRUFBSDtFQUdiQyxZQUFZLEdBQUcsRUFBSDtFQUVaQyxtQkFBbUIsR0FBR2Ysc0JBQUg7RUFFbkJnQixjQUFjLEdBQUcsQ0FBSDtFQUdkQyxpQkFBaUIsR0FBRyxFQUFIO0VBR2pCQyxvQkFBb0IsR0FBRyxFQUFIO0VBR3BCQyxjQUFjLEdBQUcsRUFBSDtFQUdkQyxjQUFjLEdBQUcsSUFBSDtFQUdkQyxhQUFhLEdBQUc7SUFBQ0MsUUFBUSxFQUFFO0VBQVgsQ0FBSDtFQUViQyxZQUFZLEdBQUdDLGdCQUFFQyxTQUFGLENBQVlDLHlDQUFaLENBQUg7RUFJWkMsWUFBWSxH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
@@ -170,4 +170,4 @@ _validate.default.promise = _bluebird.default;
170
170
  _validate.default.prettify = function prettify(val) {
171
171
  return val;
172
172
  };
173
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9iYXNlZHJpdmVyL2Rlc2lyZWQtY2Fwcy5qcyJdLCJuYW1lcyI6WyJkZXNpcmVkQ2FwYWJpbGl0eUNvbnN0cmFpbnRzIiwicGxhdGZvcm1OYW1lIiwicHJlc2VuY2UiLCJpc1N0cmluZyIsImRldmljZU5hbWUiLCJwbGF0Zm9ybVZlcnNpb24iLCJuZXdDb21tYW5kVGltZW91dCIsImlzTnVtYmVyIiwiYXV0b21hdGlvbk5hbWUiLCJhdXRvTGF1bmNoIiwiaXNCb29sZWFuIiwidWRpZCIsIm9yaWVudGF0aW9uIiwiaW5jbHVzaW9uIiwiYXV0b1dlYnZpZXciLCJub1Jlc2V0IiwiZnVsbFJlc2V0IiwibGFuZ3VhZ2UiLCJsb2NhbGUiLCJldmVudFRpbWluZ3MiLCJwcmludFBhZ2VTb3VyY2VPbkZpbmRGYWlsdXJlIiwidmFsaWRhdG9yIiwidmFsaWRhdG9ycyIsInZhbHVlIiwiaXNOYU4iLCJsb2ciLCJ3YXJuIiwiaW5jbHVkZXMiLCJpc09iamVjdCIsImlzQXJyYXkiLCJBcnJheSIsImRlcHJlY2F0ZWQiLCJvcHRpb25zIiwia2V5IiwiaW5jbHVzaW9uQ2FzZUluc2Vuc2l0aXZlIiwib3B0aW9uIiwidG9Mb3dlckNhc2UiLCJ0b1N0cmluZyIsInByb21pc2UiLCJCIiwicHJldHRpZnkiLCJ2YWwiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBQ0E7O0FBR0EsSUFBSUEsNEJBQTRCLEdBQUc7QUFDakNDLEVBQUFBLFlBQVksRUFBRTtBQUNaQyxJQUFBQSxRQUFRLEVBQUUsSUFERTtBQUVaQyxJQUFBQSxRQUFRLEVBQUU7QUFGRSxHQURtQjtBQUtqQ0MsRUFBQUEsVUFBVSxFQUFFO0FBQ1ZELElBQUFBLFFBQVEsRUFBRTtBQURBLEdBTHFCO0FBUWpDRSxFQUFBQSxlQUFlLEVBQUU7QUFDZkYsSUFBQUEsUUFBUSxFQUFFO0FBREssR0FSZ0I7QUFXakNHLEVBQUFBLGlCQUFpQixFQUFFO0FBQ2pCQyxJQUFB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cUIsU0FBU0EsUUFBVCxDQUFtQkMsR0FBbkIsRUFBd0I7QUFDM0MsU0FBT0EsR0FBUDtBQUNELENBRkQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgbG9nIGZyb20gJy4vbG9nZ2VyJztcbmltcG9ydCB2YWxpZGF0b3IgZnJvbSAndmFsaWRhdGUuanMnO1xuaW1wb3J0IEIgZnJvbSAnYmx1ZWJpcmQnO1xuXG4vKiogQHR5cGUge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLkNvbnN0cmFpbnRzfSAqL1xubGV0IGRlc2lyZWRDYXBhYmlsaXR5Q29uc3RyYWludHMgPSB7XG4gIHBsYXRmb3JtTmFtZToge1xuICAgIHByZXNlbmNlOiB0cnVlLFxuICAgIGlzU3RyaW5nOiB0cnVlLFxuICB9LFxuICBkZXZpY2VOYW1lOiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgcGxhdGZvcm1WZXJzaW9uOiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgbmV3Q29tbWFuZFRpbWVvdXQ6IHtcbiAgICBpc051bWJlcjogdHJ1ZVxuICB9LFxuICBhdXRvbWF0aW9uTmFtZToge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGF1dG9MYXVuY2g6IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgdWRpZDoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIG9yaWVudGF0aW9uOiB7XG4gICAgaW5jbHVzaW9uOiBbXG4gICAgICAnTEFORFNDQVBFJyxcbiAgICAgICdQT1JUUkFJVCdcbiAgICBdXG4gIH0sXG4gIGF1dG9XZWJ2aWV3OiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIG5vUmVzZXQ6IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbiAgZnVsbFJlc2V0OiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIGxhbmd1YWdlOiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgbG9jYWxlOiB7XG4gICAgaXNTdHJpbmc6IHRydWVcbiAgfSxcbiAgZXZlbnRUaW1pbmdzOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIHByaW50UGFnZVNvdXJjZU9uRmluZEZhaWx1cmU6IHtcbiAgICBpc0Jvb2xlYW46IHRydWVcbiAgfSxcbn07XG5cbnZhbGlkYXRvci52YWxpZGF0b3JzLmlzU3RyaW5nID0gZnVuY3Rpb24gaXNTdHJpbmcgKHZhbHVlKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuICdtdXN0IGJlIG9mIHR5cGUgc3RyaW5nJztcbn07XG52YWxpZGF0b3IudmFsaWRhdG9ycy5pc051bWJlciA9IGZ1bmN0aW9uIGlzTnVtYmVyICh2YWx1ZSkge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIC8vIGFsbG93IGEgc3RyaW5nIHZhbHVlXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnICYmICFpc05hTih2YWx1ZSkpIHtcbiAgICBsb2cud2FybignTnVtYmVyIGNhcGFiaWxpdHkgcGFzc2VkIGluIGFzIHN0cmluZy4gRnVuY3Rpb25hbGl0eSBtYXkgYmUgY29tcHJvbWlzZWQuJyk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gJ211c3QgYmUgb2YgdHlwZSBudW1iZXInO1xufTtcbnZhbGlkYXRvci52YWxpZGF0b3JzLmlzQm9vbGVhbiA9IGZ1bmN0aW9uIGlzQm9vbGVhbiAodmFsdWUpIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ2Jvb2xlYW4nKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBhbGxvdyBhIHN0cmluZyB2YWx1ZVxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiBbJ3RydWUnLCAnZmFsc2UnLCAnJ10uaW5jbHVkZXModmFsdWUpKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuICdtdXN0IGJlIG9mIHR5cGUgYm9vbGVhbic7XG59O1xudmFsaWRhdG9yLnZhbGlkYXRvcnMuaXNPYmplY3QgPSBmdW5jdGlvbiBpc09iamVjdCAodmFsdWUpIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gJ211c3QgYmUgb2YgdHlwZSBvYmplY3QnO1xufTtcbnZhbGlkYXRvci52YWxpZGF0b3JzLmlzQXJyYXkgPSBmdW5jdGlvbiBpc0FycmF5ICh2YWx1ZSkge1xuICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICByZXR1cm4gJ211c3QgYmUgb2YgdHlwZSBhcnJheSc7XG59O1xudmFsaWRhdG9yLnZhbGlkYXRvcnMuZGVwcmVjYXRlZCA9IGZ1bmN0aW9uIGRlcHJlY2F0ZWQgKHZhbHVlLCBvcHRpb25zLCBrZXkpIHtcbiAgaWYgKG9wdGlvbnMpIHtcbiAgICBsb2cud2FybihgJHtrZXl9IGlzIGEgZGVwcmVjYXRlZCBjYXBhYmlsaXR5YCk7XG4gIH1cbiAgcmV0dXJuIG51bGw7XG59O1xudmFsaWRhdG9yLnZhbGlkYXRvcnMuaW5jbHVzaW9uQ2FzZUluc2Vuc2l0aXZlID0gZnVuY3Rpb24gaW5jbHVzaW9uQ2FzZUluc2Vuc2l0aXZlICh2YWx1ZSwgb3B0aW9ucykge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiBudWxsO1xuICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICByZXR1cm4gJ3VucmVjb2duaXNlZCc7XG4gIH1cbiAgZm9yIChsZXQgb3B0aW9uIG9mIG9wdGlvbnMpIHtcbiAgICBpZiAob3B0aW9uLnRvTG93ZXJDYXNlKCkgPT09IHZhbHVlLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgfVxuICByZXR1cm4gYCR7dmFsdWV9IG5vdCBwYXJ0IG9mICR7b3B0aW9ucy50b1N0cmluZygpfWA7XG59O1xuXG52YWxpZGF0b3IucHJvbWlzZSA9IEI7XG52YWxpZGF0b3IucHJldHRpZnkgPSBmdW5jdGlvbiBwcmV0dGlmeSAodmFsKSB7XG4gIHJldHVybiB2YWw7XG59O1xuXG5cbmV4cG9ydCB7IGRlc2lyZWRDYXBhYmlsaXR5Q29uc3RyYWludHMsIHZhbGlkYXRvciB9O1xuIl19
173
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJkZXNpcmVkQ2FwYWJpbGl0eUNvbnN0cmFpbnRzIiwicGxhdGZvcm1OYW1lIiwicHJlc2VuY2UiLCJpc1N0cmluZyIsImRldmljZU5hbWUiLCJwbGF0Zm9ybVZlcnNpb24iLCJuZXdDb21tYW5kVGltZW91dCIsImlzTnVtYmVyIiwiYXV0b21hdGlvbk5hbWUiLCJhdXRvTGF1bmNoIiwiaXNCb29sZWFuIiwidWRpZCIsIm9yaWVudGF0aW9uIiwiaW5jbHVzaW9uIiwiYXV0b1dlYnZpZXciLCJub1Jlc2V0IiwiZnVsbFJlc2V0IiwibGFuZ3VhZ2UiLCJsb2NhbGUiLCJldmVudFRpbWluZ3MiLCJwcmludFBhZ2VTb3VyY2VPbkZpbmRGYWlsdXJlIiwidmFsaWRhdG9yIiwidmFsaWRhdG9ycyIsInZhbHVlIiwiaXNOYU4iLCJsb2ciLCJ3YXJuIiwiaW5jbHVkZXMiLCJpc09iamVjdCIsImlzQXJyYXkiLCJBcnJheSIsImRlcHJlY2F0ZWQiLCJvcHRpb25zIiwia2V5IiwiaW5jbHVzaW9uQ2FzZUluc2Vuc2l0aXZlIiwib3B0aW9uIiwidG9Mb3dlckNhc2UiLCJ0b1N0cmluZyIsInByb21pc2UiLCJCIiwicHJldHRpZnkiLCJ2YWwiXSwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvYmFzZWRyaXZlci9kZXNpcmVkLWNhcHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGxvZyBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgdmFsaWRhdG9yIGZyb20gJ3ZhbGlkYXRlLmpzJztcbmltcG9ydCBCIGZyb20gJ2JsdWViaXJkJztcblxuLyoqIEB0eXBlIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5Db25zdHJhaW50c30gKi9cbmxldCBkZXNpcmVkQ2FwYWJpbGl0eUNvbnN0cmFpbnRzID0ge1xuICBwbGF0Zm9ybU5hbWU6IHtcbiAgICBwcmVzZW5jZTogdHJ1ZSxcbiAgICBpc1N0cmluZzogdHJ1ZSxcbiAgfSxcbiAgZGV2aWNlTmFtZToge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIHBsYXRmb3JtVmVyc2lvbjoge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIG5ld0NvbW1hbmRUaW1lb3V0OiB7XG4gICAgaXNOdW1iZXI6IHRydWVcbiAgfSxcbiAgYXV0b21hdGlvbk5hbWU6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBhdXRvTGF1bmNoOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIHVkaWQ6IHtcbiAgICBpc1N0cmluZzogdHJ1ZVxuICB9LFxuICBvcmllbnRhdGlvbjoge1xuICAgIGluY2x1c2lvbjogW1xuICAgICAgJ0xBTkRTQ0FQRScsXG4gICAgICAnUE9SVFJBSVQnXG4gICAgXVxuICB9LFxuICBhdXRvV2Vidmlldzoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICBub1Jlc2V0OiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG4gIGZ1bGxSZXNldDoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICBsYW5ndWFnZToge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGxvY2FsZToge1xuICAgIGlzU3RyaW5nOiB0cnVlXG4gIH0sXG4gIGV2ZW50VGltaW5nczoge1xuICAgIGlzQm9vbGVhbjogdHJ1ZVxuICB9LFxuICBwcmludFBhZ2VTb3VyY2VPbkZpbmRGYWlsdXJlOiB7XG4gICAgaXNCb29sZWFuOiB0cnVlXG4gIH0sXG59O1xuXG52YWxpZGF0b3IudmFsaWRhdG9ycy5pc1N0cmluZyA9IGZ1bmN0aW9uIGlzU3RyaW5nICh2YWx1ZSkge1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiAnbXVzdCBiZSBvZiB0eXBlIHN0cmluZyc7XG59O1xudmFsaWRhdG9yLnZhbGlkYXRvcnMuaXNOdW1iZXIgPSBmdW5jdGlvbiBpc051bWJlciAodmFsdWUpIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBhbGxvdyBhIHN0cmluZyB2YWx1ZVxuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJyAmJiAhaXNOYU4odmFsdWUpKSB7XG4gICAgbG9nLndhcm4oJ051bWJlciBjYXBhYmlsaXR5IHBhc3NlZCBpbiBhcyBzdHJpbmcuIEZ1bmN0aW9uYWxpdHkgbWF5IGJlIGNvbXByb21pc2VkLicpO1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuICdtdXN0IGJlIG9mIHR5cGUgbnVtYmVyJztcbn07XG52YWxpZGF0b3IudmFsaWRhdG9ycy5pc0Jvb2xlYW4gPSBmdW5jdGlvbiBpc0Jvb2xlYW4gKHZhbHVlKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdib29sZWFuJykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gYWxsb3cgYSBzdHJpbmcgdmFsdWVcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZycgJiYgWyd0cnVlJywgJ2ZhbHNlJywgJyddLmluY2x1ZGVzKHZhbHVlKSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHJldHVybiAnbXVzdCBiZSBvZiB0eXBlIGJvb2xlYW4nO1xufTtcbnZhbGlkYXRvci52YWxpZGF0b3JzLmlzT2JqZWN0ID0gZnVuY3Rpb24gaXNPYmplY3QgKHZhbHVlKSB7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuICdtdXN0IGJlIG9mIHR5cGUgb2JqZWN0Jztcbn07XG52YWxpZGF0b3IudmFsaWRhdG9ycy5pc0FycmF5ID0gZnVuY3Rpb24gaXNBcnJheSAodmFsdWUpIHtcbiAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBpZiAodHlwZW9mIHZhbHVlID09PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcmV0dXJuICdtdXN0IGJlIG9mIHR5cGUgYXJyYXknO1xufTtcbnZhbGlkYXRvci52YWxpZGF0b3JzLmRlcHJlY2F0ZWQgPSBmdW5jdGlvbiBkZXByZWNhdGVkICh2YWx1ZSwgb3B0aW9ucywga2V5KSB7XG4gIGlmIChvcHRpb25zKSB7XG4gICAgbG9nLndhcm4oYCR7a2V5fSBpcyBhIGRlcHJlY2F0ZWQgY2FwYWJpbGl0eWApO1xuICB9XG4gIHJldHVybiBudWxsO1xufTtcbnZhbGlkYXRvci52YWxpZGF0b3JzLmluY2x1c2lvbkNhc2VJbnNlbnNpdGl2ZSA9IGZ1bmN0aW9uIGluY2x1c2lvbkNhc2VJbnNlbnNpdGl2ZSAodmFsdWUsIG9wdGlvbnMpIHtcbiAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuICd1bnJlY29nbmlzZWQnO1xuICB9XG4gIGZvciAobGV0IG9wdGlvbiBvZiBvcHRpb25zKSB7XG4gICAgaWYgKG9wdGlvbi50b0xvd2VyQ2FzZSgpID09PSB2YWx1ZS50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGAke3ZhbHVlfSBub3QgcGFydCBvZiAke29wdGlvbnMudG9TdHJpbmcoKX1gO1xufTtcblxudmFsaWRhdG9yLnByb21pc2UgPSBCO1xudmFsaWRhdG9yLnByZXR0aWZ5ID0gZnVuY3Rpb24gcHJldHRpZnkgKHZhbCkge1xuICByZXR1cm4gdmFsO1xufTtcblxuXG5leHBvcnQgeyBkZXNpcmVkQ2FwYWJpbGl0eUNvbnN0cmFpbnRzLCB2YWxpZGF0b3IgfTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFDQTs7QUFHQSxJQUFJQSw0QkFBNEIsR0FBRztFQUNqQ0MsWUFBWSxFQUFFO0lBQ1pDLFFBQVEsRUFBRSxJQURFO0lBRVpDLFFBQVEsRUFBRTtFQUZFLENBRG1CO0VBS2pDQyxVQUFVLEVBQUU7SUFDVkQsUUFBUSxFQUFFO0VBREEsQ0FMcUI7RUFRakNFLGVBQWUsRUFBRTtJQUNmRixRQUFRLEVBQUU7RUFESyxDQVJnQjtFQVdqQ0csaUJBQWlCLEVBQUU7SUFDakJDLFFBQVEsRUFBRTtFQURPLENBWGM7RUFjakNDLGNBQWMsRUFBRTtJQUNkTCxRQUFRLEVBQUU7RUFESSxDQWRpQjtFQWlCakNNLFVBQVUsRUFBRTtJQUNWQyxTQUFTLEVBQUU7RUFERCxDQWpCcUI7RUFvQmpDQyxJQUFJLEVBQUU7SUFDSlIsUUFBUSxFQUFFO0VBRE4sQ0FwQjJCO0VBdUJqQ1MsV0FBVyxFQUFFO0lBQ1hDLFNBQVMsRUFBRSxDQUNULFdBRFMsRUFFVCxVQUZTO0VBREEsQ0F2Qm9CO0VBNkJqQ0MsV0FBVyxFQUFFO0lBQ1hKLFNBQVMsRUFBRTtFQURBLENBN0JvQjtFQWdDakNLLE9BQU8sRUFBRTtJQUNQTCxTQUFTLEVBQUU7RUFESixDQWhDd0I7RUFtQ2pDTSxTQUFTLEVBQUU7SUFDVE4sU0FBUyxFQUFFO0VBREYsQ0FuQ3NCO0VBc0NqQ08sUUFBUSxFQUFFO0lBQ1JkLFFBQVEsRUFBRTtFQURGLENBdEN1QjtFQXlDakNlLE1BQU0sRUFBRTtJQUNOZixRQUFRLEVBQUU7RUFESixDQXpDeUI7RUE0Q2pDZ0IsWUFBWSxFQUFFO0lBQ1pULFNBQVMsRUFBRTtFQURDLENBNUNtQjtFQStDakNVLDRCQUE0QixFQUFFO0lBQzVCVixTQUFTLEVBQUU7RUFEaUI7QUEvQ0csQ0FBbkM7OztBQW9EQVcsa0JBQVVDLFVBQVYsQ0FBcUJuQixRQUFyQixHQUFnQyxTQUFTQSxRQUFULENBQW1Cb0IsS0FBbkIsRUFBMEI7RUFDeEQsSUFBSSxPQUFPQSxLQUFQLEtBQWlCLFFBQXJCLEVBQStCO0lBQzdCLE9BQU8sSUFBUDtFQUNEOztFQUVELElBQUksT0FBT0EsS0FBUCxLQUFpQixXQUFyQixFQUFrQztJQUNoQyxPQUFPLElBQVA7RUFDRDs7RUFFRCxPQUFPLHdCQUFQO0FBQ0QsQ0FWRDs7QUFXQUYsa0JBQVVDLFVBQVYsQ0FBcUJmLFFBQXJCLEdBQWdDLFNBQVNBLFFBQVQsQ0FBbUJnQixLQUFuQixFQUEwQjtFQUN4RCxJQUFJLE9BQU9BLEtBQVAsS0FBaUIsUUFBckIsRUFBK0I7SUFDN0IsT0FBTyxJQUFQO0VBQ0Q7O0VBRUQsSUFBSSxPQUFPQSxLQUFQLEtBQWlCLFdBQXJCLEVBQWtDO0lBQ2hDLE9BQU8sSUFBUDtFQUNEOztFQUdELElBQUksT0FBT0EsS0FBUCxLQUFpQixRQUFqQixJQUE2QixDQUFDQyxLQUFLLENBQUNELEtBQUQsQ0FBdkMsRUFBZ0Q7SUFDOUNFLGdCQUFJQyxJQUFKLENBQVMsMEVBQVQ7O0lBQ0EsT0FBTyxJQUFQO0VBQ0Q7O0VBRUQsT0FBTyx3QkFBUDtBQUNELENBaEJEOztBQWlCQUwsa0JBQVVDLFVBQVYsQ0FBcUJaLFNBQXJCLEdBQWlDLFNBQVNBLFNBQVQsQ0FBb0JhLEtBQXBCLEVBQTJCO0VBQzFELElBQUksT0FBT0EsS0FBUCxLQUFpQixTQUFyQixFQUFnQztJQUM5QixPQUFPLElBQVA7RUFDRDs7RUFHRCxJQUFJLE9BQU9BLEtBQVAsS0FBaUIsUUFBakIsSUFBNkIsQ0FBQyxNQUFELEVBQVMsT0FBVCxFQUFrQixFQUFsQixFQUFzQkksUUFBdEIsQ0FBK0JKLEtBQS9CLENBQWpDLEVBQXdFO0lBQ3RFLE9BQU8sSUFBUDtFQUNEOztFQUVELElBQUksT0FBT0EsS0FBUCxLQUFpQixXQUFyQixFQUFrQztJQUNoQyxPQUFPLElBQVA7RUFDRDs7RUFFRCxPQUFPLHlCQUFQO0FBQ0QsQ0FmRDs7QUFnQkFGLGtCQUFVQyxVQUFWLENBQXFCTSxRQUFyQixHQUFnQyxTQUFTQSxRQUFULENBQW1CTCxLQUFuQixFQUEwQjtFQUN4RCxJQUFJLE9BQU9BLEtBQVAsS0FBaUIsUUFBckIsRUFBK0I7SUFDN0IsT0FBTyxJQUFQO0VBQ0Q7O0VBRUQsSUFBSSxPQUFPQSxLQUFQLEtBQWlCLFdBQXJCLEVBQWtDO0lBQ2hDLE9BQU8sSUFBUDtFQUNEOztFQUVELE9BQU8sd0JBQVA7QUFDRCxDQVZEOztBQVdBRixrQkFBVUMsVUFBVixDQUFxQk8sT0FBckIsR0FBK0IsU0FBU0EsT0FBVCxDQUFrQk4sS0FBbEIsRUFBeUI7RUFDdEQsSUFBSU8sS0FBSyxDQUFDRCxPQUFOLENBQWNOLEtBQWQsQ0FBSixFQUEwQjtJQUN4QixPQUFPLElBQVA7RUFDRDs7RUFFRCxJQUFJLE9BQU9BLEtBQVAsS0FBaUIsV0FBckIsRUFBa0M7SUFDaEMsT0FBTyxJQUFQO0VBQ0Q7O0VBRUQsT0FBTyx1QkFBUDtBQUNELENBVkQ7O0FBV0FGLGtCQUFVQyxVQUFWLENBQXFCUyxVQUFyQixHQUFrQyxTQUFTQSxVQUFULENBQXFCUixLQUFyQixFQUE0QlMsT0FBNUIsRUFBcUNDLEdBQXJDLEVBQTBDO0VBQzFFLElBQUlELE9BQUosRUFBYTtJQUNYUCxnQkFBSUMsSUFBSixDQUFVLEdBQUVPLEdBQUksNkJBQWhCO0VBQ0Q7O0VBQ0QsT0FBTyxJQUFQO0FBQ0QsQ0FMRDs7QUFNQVosa0JBQVVDLFVBQVYsQ0FBcUJZLHdCQUFyQixHQUFnRCxTQUFTQSx3QkFBVCxDQUFtQ1gsS0FBbkMsRUFBMENTLE9BQTFDLEVBQW1EO0VBQ2pHLElBQUksT0FBT1QsS0FBUCxLQUFpQixXQUFyQixFQUFrQztJQUNoQyxPQUFPLElBQVA7RUFDRCxDQUZELE1BRU8sSUFBSSxPQUFPQSxLQUFQLEtBQWlCLFFBQXJCLEVBQStCO0lBQ3BDLE9BQU8sY0FBUDtFQUNEOztFQUNELEtBQUssSUFBSVksTUFBVCxJQUFtQkgsT0FBbkIsRUFBNEI7SUFDMUIsSUFBSUcsTUFBTSxDQUFDQyxXQUFQLE9BQXlCYixLQUFLLENBQUNhLFdBQU4sRUFBN0IsRUFBa0Q7TUFDaEQsT0FBTyxJQUFQO0lBQ0Q7RUFDRjs7RUFDRCxPQUFRLEdBQUViLEtBQU0sZ0JBQWVTLE9BQU8sQ0FBQ0ssUUFBUixFQUFtQixFQUFsRDtBQUNELENBWkQ7O0FBY0FoQixrQkFBVWlCLE9BQVYsR0FBb0JDLGlCQUFwQjs7QUFDQWxCLGtCQUFVbUIsUUFBVixHQUFxQixTQUFTQSxRQUFULENBQW1CQyxHQUFuQixFQUF3QjtFQUMzQyxPQUFPQSxHQUFQO0FBQ0QsQ0FGRCJ9
@@ -66,4 +66,4 @@ class DeviceSettings {
66
66
  exports.DeviceSettings = DeviceSettings;
67
67
  var _default = DeviceSettings;
68
68
  exports.default = _default;
69
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL2xpYi9iYXNlZHJpdmVyL2RldmljZS1zZXR0aW5ncy5qcyJdLCJuYW1lcyI6WyJNQVhfU0VUVElOR1NfU0laRSIsIkRldmljZVNldHRpbmdzIiwiX3NldHRpbmdzIiwiX29uU2V0dGluZ3NVcGRhdGUiLCJjb25zdHJ1Y3RvciIsImRlZmF1bHRTZXR0aW5ncyIsIm9uU2V0dGluZ3NVcGRhdGUiLCJ1cGRhdGUiLCJuZXdTZXR0aW5ncyIsIl8iLCJpc1BsYWluT2JqZWN0IiwiZXJyb3JzIiwiSW52YWxpZEFyZ3VtZW50RXJyb3IiLCJKU09OIiwic3RyaW5naWZ5Iiwibm9kZSIsImdldE9iamVjdFNpemUiLCJ1dGlsIiwidG9SZWFkYWJsZVNpemVTdHJpbmciLCJwcm9wcyIsImtleXMiLCJwcm9wIiwiaXNVbmRlZmluZWQiLCJsb2ciLCJkZWJ1ZyIsImdldFNldHRpbmdzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUtPLE1BQU1BLGlCQUFpQixHQUFHLEtBQUssSUFBTCxHQUFZLElBQXRDOzs7QUFNUCxNQUFNQyxjQUFOLENBQXFCO0FBTW5CQyxFQUFBQSxTQUFTO0FBTVRDLEVBQUFBLGlCQUFpQjs7QUFPakJDLEVBQUFBLFdBQVcsQ0FBRUMsZUFBRixFQUFtQkMsZ0JBQW5CLEVBQXFDO0FBQzlDLFNBQUtKLFNBQUwsR0FBa0MsRUFBQyxJQUFJRyxlQUFKLGFBQUlBLGVBQUosY0FBSUEsZUFBSixHQUF1QixFQUF2QjtBQUFELEtBQWxDO0FBQ0EsU0FBS0YsaUJBQUwsR0FBeUJHLGdCQUF6QixhQUF5QkEsZ0JBQXpCLGNBQXlCQSxnQkFBekIsR0FBOEMsWUFBWSxDQUFFLENBQTVEO0FBQ0Q7O0FBTVcsUUFBTkMsTUFBTSxDQUFFQyxXQUFGLEVBQWU7QUFDekIsUUFBSSxDQUFDQyxnQkFBRUMsYUFBRixDQUFnQkYsV0FBaEIsQ0FBTCxFQUFtQztBQUNqQyxZQUFNLElBQUlHLGVBQU9DLG9CQUFYLENBQWlDLHdEQUFELEdBQ25DLEdBQUVDLElBQUksQ0FBQ0MsU0FBTCxDQUFlTixXQUFmLENBQTRCLFVBRDNCLENBQU47QUFFRDs7QUFFRCxRQUFJTyxjQUFLQyxhQUFMLENBQW1CLEVBQUMsR0FBRyxLQUFLZCxTQUFUO0FBQW9CLFNBQUdNO0FBQXZCLEtBQW5CLEtBQTJEUixpQkFBL0QsRUFBa0Y7QUFDaEYsWUFBTSxJQUFJVyxlQUFPQyxvQkFBWCxDQUFpQyxzREFBRCxHQUNuQyw0Q0FBMkNLLGNBQUtDLG9CQUFMLENBQTBCbEIsaUJBQTFCLENBQTZDLEVBRHJGLENBQU47QUFFRDs7QUFFRCxVQUFNbUIsS0FBSyxHQUF1Q1YsZ0JBQUVXLElBQUYsQ0FBT1osV0FBUCxDQUFsRDs7QUFDQSxTQUFLLE1BQU1hLElBQVgsSUFBbUJGLEtBQW5CLEVBQTBCO0FBQ3hCLFVBQUksQ0FBQ1YsZ0JBQUVhLFdBQUYsQ0FBYyxLQUFLcEIsU0FBTCxDQUFlbUIsSUFBZixDQUFkLENBQUwsRUFBMEM7QUFDeEMsWUFBSSxLQUFLbkIsU0FBTCxDQUFlbUIsSUFBZixNQUF5QmIsV0FBVyxDQUFDYSxJQUFELENBQXhDLEVBQWdEO0FBQzlDRSwwQkFBSUMsS0FBSixDQUFXLGlCQUFnQkgsSUFBSyxzREFBaEM7O0FBQ0E7QUFDRDtBQUNGOztBQUNELFlBQU0sS0FBS2xCLGlCQUFMLENBQXVCa0IsSUFBdkIsRUFBNkJiLFdBQVcsQ0FBQ2EsSUFBRCxDQUF4QyxFQUFnRCxLQUFLbkIsU0FBTCxDQUFlbUIsSUFBZixDQUFoRCxDQUFOO0FBQ0EsV0FBS25CLFNBQUwsQ0FBZW1CLElBQWYsSUFBdUJiLFdBQVcsQ0FBQ2EsSUFBRCxDQUFsQztBQUNEO0FBQ0Y7O0FBRURJLEVBQUFBLFdBQVcsR0FBSTtBQUNiLFdBQU8sS0FBS3ZCLFNBQVo7QUFDRDs7QUF0RGtCOzs7ZUF5RE5ELGMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBAdHMtY2hlY2tcblxuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCBsb2cgZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IHsgbm9kZSwgdXRpbCB9IGZyb20gJ0BhcHBpdW0vc3VwcG9ydCc7XG5pbXBvcnQgeyBlcnJvcnMgfSBmcm9tICcuLi9wcm90b2NvbC9lcnJvcnMnO1xuXG4vKipcbiAqIE1heGltdW0gc2l6ZSAoaW4gYnl0ZXMpIG9mIGEgZ2l2ZW4gZHJpdmVyJ3Mgc2V0dGluZ3Mgb2JqZWN0ICh3aGljaCBpcyBpbnRlcm5hbCB0byB7QGxpbmtjb2RlIERyaXZlclNldHRpbmdzfSkuXG4gKi9cbmV4cG9ydCBjb25zdCBNQVhfU0VUVElOR1NfU0laRSA9IDIwICogMTAyNCAqIDEwMjQ7IC8vIDIwIE1CXG5cbi8qKlxuICogQHRlbXBsYXRlIHtSZWNvcmQ8c3RyaW5nLHVua25vd24+fSBUXG4gKiBAaW1wbGVtZW50cyB7SURldmljZVNldHRpbmdzPFQ+fVxuICovXG5jbGFzcyBEZXZpY2VTZXR0aW5ncyB7XG5cbiAgLyoqXG4gICAqIEBwcm90ZWN0ZWRcbiAgICogQHR5cGUge1R9XG4gICAqL1xuICBfc2V0dGluZ3M7XG5cbiAgLyoqXG4gICAqIEBwcm90ZWN0ZWRcbiAgICogQHR5cGUge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLlNldHRpbmdzVXBkYXRlTGlzdGVuZXI8VD59XG4gICAqL1xuICBfb25TZXR0aW5nc1VwZGF0ZTtcblxuICAvKipcbiAgICogQ3JlYXRlcyBhIF9zaGFsbG93IGNvcHlfIG9mIHRoZSBgZGVmYXVsdFNldHRpbmdzYCBwYXJhbWV0ZXIhXG4gICAqIEBwYXJhbSB7VH0gW2RlZmF1bHRTZXR0aW5nc11cbiAgICogQHBhcmFtIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5TZXR0aW5nc1VwZGF0ZUxpc3RlbmVyPFQ+fSBbb25TZXR0aW5nc1VwZGF0ZV1cbiAgICovXG4gIGNvbnN0cnVjdG9yIChkZWZhdWx0U2V0dGluZ3MsIG9uU2V0dGluZ3NVcGRhdGUpIHtcbiAgICB0aGlzLl9zZXR0aW5ncyA9IC8qKiBAdHlwZSB7VH0gKi8oey4uLihkZWZhdWx0U2V0dGluZ3MgPz8ge30pfSk7XG4gICAgdGhpcy5fb25TZXR0aW5nc1VwZGF0ZSA9IG9uU2V0dGluZ3NVcGRhdGUgPz8gKGFzeW5jICgpID0+IHt9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBjYWxscyB1cGRhdGVTZXR0aW5ncyBmcm9tIGltcGxlbWVudGluZyBkcml2ZXIgZXZlcnkgdGltZSBhIHNldHRpbmcgaXMgY2hhbmdlZC5cbiAgICogQHBhcmFtIHtUfSBuZXdTZXR0aW5nc1xuICAgKi9cbiAgYXN5bmMgdXBkYXRlIChuZXdTZXR0aW5ncykge1xuICAgIGlmICghXy5pc1BsYWluT2JqZWN0KG5ld1NldHRpbmdzKSkge1xuICAgICAgdGhyb3cgbmV3IGVycm9ycy5JbnZhbGlkQXJndW1lbnRFcnJvcihgU2V0dGluZ3MgdXBkYXRlIHNob3VsZCBiZSBjYWxsZWQgd2l0aCB2YWxpZCBKU09OLiBHb3QgYCArXG4gICAgICAgIGAke0pTT04uc3RyaW5naWZ5KG5ld1NldHRpbmdzKX0gaW5zdGVhZGApO1xuICAgIH1cblxuICAgIGlmIChub2RlLmdldE9iamVjdFNpemUoey4uLnRoaXMuX3NldHRpbmdzLCAuLi5uZXdTZXR0aW5nc30pID49IE1BWF9TRVRUSU5HU19TSVpFKSB7XG4gICAgICB0aHJvdyBuZXcgZXJyb3JzLkludmFsaWRBcmd1bWVudEVycm9yKGBOZXcgc2V0dGluZ3MgY2Fubm90IGJlIGFwcGxpZWQsIGJlY2F1c2UgdGhlIG92ZXJhbGwgYCArXG4gICAgICAgIGBvYmplY3Qgc2l6ZSBleGNlZWRzIHRoZSBhbGxvd2VkIGxpbWl0IG9mICR7dXRpbC50b1JlYWRhYmxlU2l6ZVN0cmluZyhNQVhfU0VUVElOR1NfU0laRSl9YCk7XG4gICAgfVxuXG4gICAgY29uc3QgcHJvcHMgPSAvKiogQHR5cGUgeyhrZXlvZiBUICYgc3RyaW5nKVtdfSAqLyhfLmtleXMobmV3U2V0dGluZ3MpKTtcbiAgICBmb3IgKGNvbnN0IHByb3Agb2YgcHJvcHMpIHtcbiAgICAgIGlmICghXy5pc1VuZGVmaW5lZCh0aGlzLl9zZXR0aW5nc1twcm9wXSkpIHtcbiAgICAgICAgaWYgKHRoaXMuX3NldHRpbmdzW3Byb3BdID09PSBuZXdTZXR0aW5nc1twcm9wXSkge1xuICAgICAgICAgIGxvZy5kZWJ1ZyhgVGhlIHZhbHVlIG9mICcke3Byb3B9JyBzZXR0aW5nIGRpZCBub3QgY2hhbmdlLiBTa2lwcGluZyB0aGUgdXBkYXRlIGZvciBpdGApO1xuICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBhd2FpdCB0aGlzLl9vblNldHRpbmdzVXBkYXRlKHByb3AsIG5ld1NldHRpbmdzW3Byb3BdLCB0aGlzLl9zZXR0aW5nc1twcm9wXSk7XG4gICAgICB0aGlzLl9zZXR0aW5nc1twcm9wXSA9IG5ld1NldHRpbmdzW3Byb3BdO1xuICAgIH1cbiAgfVxuXG4gIGdldFNldHRpbmdzICgpIHtcbiAgICByZXR1cm4gdGhpcy5fc2V0dGluZ3M7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgRGV2aWNlU2V0dGluZ3M7XG5leHBvcnQgeyBEZXZpY2VTZXR0aW5ncyB9O1xuXG4vKipcbiAqIEB0ZW1wbGF0ZSBUXG4gKiBAdHlwZWRlZiB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuRGV2aWNlU2V0dGluZ3M8VD59IElEZXZpY2VTZXR0aW5nc1xuICovXG4iXX0=
69
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNQVhfU0VUVElOR1NfU0laRSIsIkRldmljZVNldHRpbmdzIiwiX3NldHRpbmdzIiwiX29uU2V0dGluZ3NVcGRhdGUiLCJjb25zdHJ1Y3RvciIsImRlZmF1bHRTZXR0aW5ncyIsIm9uU2V0dGluZ3NVcGRhdGUiLCJ1cGRhdGUiLCJuZXdTZXR0aW5ncyIsIl8iLCJpc1BsYWluT2JqZWN0IiwiZXJyb3JzIiwiSW52YWxpZEFyZ3VtZW50RXJyb3IiLCJKU09OIiwic3RyaW5naWZ5Iiwibm9kZSIsImdldE9iamVjdFNpemUiLCJ1dGlsIiwidG9SZWFkYWJsZVNpemVTdHJpbmciLCJwcm9wcyIsImtleXMiLCJwcm9wIiwiaXNVbmRlZmluZWQiLCJsb2ciLCJkZWJ1ZyIsImdldFNldHRpbmdzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vbGliL2Jhc2Vkcml2ZXIvZGV2aWNlLXNldHRpbmdzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEB0cy1jaGVja1xuXG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IGxvZyBmcm9tICcuL2xvZ2dlcic7XG5pbXBvcnQgeyBub2RlLCB1dGlsIH0gZnJvbSAnQGFwcGl1bS9zdXBwb3J0JztcbmltcG9ydCB7IGVycm9ycyB9IGZyb20gJy4uL3Byb3RvY29sL2Vycm9ycyc7XG5cbi8qKlxuICogTWF4aW11bSBzaXplIChpbiBieXRlcykgb2YgYSBnaXZlbiBkcml2ZXIncyBzZXR0aW5ncyBvYmplY3QgKHdoaWNoIGlzIGludGVybmFsIHRvIHtAbGlua2NvZGUgRHJpdmVyU2V0dGluZ3N9KS5cbiAqL1xuZXhwb3J0IGNvbnN0IE1BWF9TRVRUSU5HU19TSVpFID0gMjAgKiAxMDI0ICogMTAyNDsgLy8gMjAgTUJcblxuLyoqXG4gKiBAdGVtcGxhdGUge1JlY29yZDxzdHJpbmcsdW5rbm93bj59IFRcbiAqIEBpbXBsZW1lbnRzIHtJRGV2aWNlU2V0dGluZ3M8VD59XG4gKi9cbmNsYXNzIERldmljZVNldHRpbmdzIHtcblxuICAvKipcbiAgICogQHByb3RlY3RlZFxuICAgKiBAdHlwZSB7VH1cbiAgICovXG4gIF9zZXR0aW5ncztcblxuICAvKipcbiAgICogQHByb3RlY3RlZFxuICAgKiBAdHlwZSB7aW1wb3J0KCdAYXBwaXVtL3R5cGVzJykuU2V0dGluZ3NVcGRhdGVMaXN0ZW5lcjxUPn1cbiAgICovXG4gIF9vblNldHRpbmdzVXBkYXRlO1xuXG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgX3NoYWxsb3cgY29weV8gb2YgdGhlIGBkZWZhdWx0U2V0dGluZ3NgIHBhcmFtZXRlciFcbiAgICogQHBhcmFtIHtUfSBbZGVmYXVsdFNldHRpbmdzXVxuICAgKiBAcGFyYW0ge2ltcG9ydCgnQGFwcGl1bS90eXBlcycpLlNldHRpbmdzVXBkYXRlTGlzdGVuZXI8VD59IFtvblNldHRpbmdzVXBkYXRlXVxuICAgKi9cbiAgY29uc3RydWN0b3IgKGRlZmF1bHRTZXR0aW5ncywgb25TZXR0aW5nc1VwZGF0ZSkge1xuICAgIHRoaXMuX3NldHRpbmdzID0gLyoqIEB0eXBlIHtUfSAqLyh7Li4uKGRlZmF1bHRTZXR0aW5ncyA/PyB7fSl9KTtcbiAgICB0aGlzLl9vblNldHRpbmdzVXBkYXRlID0gb25TZXR0aW5nc1VwZGF0ZSA/PyAoYXN5bmMgKCkgPT4ge30pO1xuICB9XG5cbiAgLyoqXG4gICAqIGNhbGxzIHVwZGF0ZVNldHRpbmdzIGZyb20gaW1wbGVtZW50aW5nIGRyaXZlciBldmVyeSB0aW1lIGEgc2V0dGluZyBpcyBjaGFuZ2VkLlxuICAgKiBAcGFyYW0ge1R9IG5ld1NldHRpbmdzXG4gICAqL1xuICBhc3luYyB1cGRhdGUgKG5ld1NldHRpbmdzKSB7XG4gICAgaWYgKCFfLmlzUGxhaW5PYmplY3QobmV3U2V0dGluZ3MpKSB7XG4gICAgICB0aHJvdyBuZXcgZXJyb3JzLkludmFsaWRBcmd1bWVudEVycm9yKGBTZXR0aW5ncyB1cGRhdGUgc2hvdWxkIGJlIGNhbGxlZCB3aXRoIHZhbGlkIEpTT04uIEdvdCBgICtcbiAgICAgICAgYCR7SlNPTi5zdHJpbmdpZnkobmV3U2V0dGluZ3MpfSBpbnN0ZWFkYCk7XG4gICAgfVxuXG4gICAgaWYgKG5vZGUuZ2V0T2JqZWN0U2l6ZSh7Li4udGhpcy5fc2V0dGluZ3MsIC4uLm5ld1NldHRpbmdzfSkgPj0gTUFYX1NFVFRJTkdTX1NJWkUpIHtcbiAgICAgIHRocm93IG5ldyBlcnJvcnMuSW52YWxpZEFyZ3VtZW50RXJyb3IoYE5ldyBzZXR0aW5ncyBjYW5ub3QgYmUgYXBwbGllZCwgYmVjYXVzZSB0aGUgb3ZlcmFsbCBgICtcbiAgICAgICAgYG9iamVjdCBzaXplIGV4Y2VlZHMgdGhlIGFsbG93ZWQgbGltaXQgb2YgJHt1dGlsLnRvUmVhZGFibGVTaXplU3RyaW5nKE1BWF9TRVRUSU5HU19TSVpFKX1gKTtcbiAgICB9XG5cbiAgICBjb25zdCBwcm9wcyA9IC8qKiBAdHlwZSB7KGtleW9mIFQgJiBzdHJpbmcpW119ICovKF8ua2V5cyhuZXdTZXR0aW5ncykpO1xuICAgIGZvciAoY29uc3QgcHJvcCBvZiBwcm9wcykge1xuICAgICAgaWYgKCFfLmlzVW5kZWZpbmVkKHRoaXMuX3NldHRpbmdzW3Byb3BdKSkge1xuICAgICAgICBpZiAodGhpcy5fc2V0dGluZ3NbcHJvcF0gPT09IG5ld1NldHRpbmdzW3Byb3BdKSB7XG4gICAgICAgICAgbG9nLmRlYnVnKGBUaGUgdmFsdWUgb2YgJyR7cHJvcH0nIHNldHRpbmcgZGlkIG5vdCBjaGFuZ2UuIFNraXBwaW5nIHRoZSB1cGRhdGUgZm9yIGl0YCk7XG4gICAgICAgICAgY29udGludWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGF3YWl0IHRoaXMuX29uU2V0dGluZ3NVcGRhdGUocHJvcCwgbmV3U2V0dGluZ3NbcHJvcF0sIHRoaXMuX3NldHRpbmdzW3Byb3BdKTtcbiAgICAgIHRoaXMuX3NldHRpbmdzW3Byb3BdID0gbmV3U2V0dGluZ3NbcHJvcF07XG4gICAgfVxuICB9XG5cbiAgZ2V0U2V0dGluZ3MgKCkge1xuICAgIHJldHVybiB0aGlzLl9zZXR0aW5ncztcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBEZXZpY2VTZXR0aW5ncztcbmV4cG9ydCB7IERldmljZVNldHRpbmdzIH07XG5cbi8qKlxuICogQHRlbXBsYXRlIFRcbiAqIEB0eXBlZGVmIHtpbXBvcnQoJ0BhcHBpdW0vdHlwZXMnKS5EZXZpY2VTZXR0aW5nczxUPn0gSURldmljZVNldHRpbmdzXG4gKi9cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFLTyxNQUFNQSxpQkFBaUIsR0FBRyxLQUFLLElBQUwsR0FBWSxJQUF0Qzs7O0FBTVAsTUFBTUMsY0FBTixDQUFxQjtFQU1uQkMsU0FBUztFQU1UQyxpQkFBaUI7O0VBT2pCQyxXQUFXLENBQUVDLGVBQUYsRUFBbUJDLGdCQUFuQixFQUFxQztJQUM5QyxLQUFLSixTQUFMLEdBQWtDLEVBQUMsSUFBSUcsZUFBSixhQUFJQSxlQUFKLGNBQUlBLGVBQUosR0FBdUIsRUFBdkI7SUFBRCxDQUFsQztJQUNBLEtBQUtGLGlCQUFMLEdBQXlCRyxnQkFBekIsYUFBeUJBLGdCQUF6QixjQUF5QkEsZ0JBQXpCLEdBQThDLFlBQVksQ0FBRSxDQUE1RDtFQUNEOztFQU1XLE1BQU5DLE1BQU0sQ0FBRUMsV0FBRixFQUFlO0lBQ3pCLElBQUksQ0FBQ0MsZ0JBQUVDLGFBQUYsQ0FBZ0JGLFdBQWhCLENBQUwsRUFBbUM7TUFDakMsTUFBTSxJQUFJRyxlQUFPQyxvQkFBWCxDQUFpQyx3REFBRCxHQUNuQyxHQUFFQyxJQUFJLENBQUNDLFNBQUwsQ0FBZU4sV0FBZixDQUE0QixVQUQzQixDQUFOO0lBRUQ7O0lBRUQsSUFBSU8sY0FBS0MsYUFBTCxDQUFtQixFQUFDLEdBQUcsS0FBS2QsU0FBVDtNQUFvQixHQUFHTTtJQUF2QixDQUFuQixLQUEyRFIsaUJBQS9ELEVBQWtGO01BQ2hGLE1BQU0sSUFBSVcsZUFBT0Msb0JBQVgsQ0FBaUMsc0RBQUQsR0FDbkMsNENBQTJDSyxjQUFLQyxvQkFBTCxDQUEwQmxCLGlCQUExQixDQUE2QyxFQURyRixDQUFOO0lBRUQ7O0lBRUQsTUFBTW1CLEtBQUssR0FBdUNWLGdCQUFFVyxJQUFGLENBQU9aLFdBQVAsQ0FBbEQ7O0lBQ0EsS0FBSyxNQUFNYSxJQUFYLElBQW1CRixLQUFuQixFQUEwQjtNQUN4QixJQUFJLENBQUNWLGdCQUFFYSxXQUFGLENBQWMsS0FBS3BCLFNBQUwsQ0FBZW1CLElBQWYsQ0FBZCxDQUFMLEVBQTBDO1FBQ3hDLElBQUksS0FBS25CLFNBQUwsQ0FBZW1CLElBQWYsTUFBeUJiLFdBQVcsQ0FBQ2EsSUFBRCxDQUF4QyxFQUFnRDtVQUM5Q0UsZ0JBQUlDLEtBQUosQ0FBVyxpQkFBZ0JILElBQUssc0RBQWhDOztVQUNBO1FBQ0Q7TUFDRjs7TUFDRCxNQUFNLEtBQUtsQixpQkFBTCxDQUF1QmtCLElBQXZCLEVBQTZCYixXQUFXLENBQUNhLElBQUQsQ0FBeEMsRUFBZ0QsS0FBS25CLFNBQUwsQ0FBZW1CLElBQWYsQ0FBaEQsQ0FBTjtNQUNBLEtBQUtuQixTQUFMLENBQWVtQixJQUFmLElBQXVCYixXQUFXLENBQUNhLElBQUQsQ0FBbEM7SUFDRDtFQUNGOztFQUVESSxXQUFXLEdBQUk7SUFDYixPQUFPLEtBQUt2QixTQUFaO0VBQ0Q7O0FBdERrQjs7O2VBeURORCxjIn0=