verdaccio 5.4.0 → 5.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (67) hide show
  1. package/CHANGELOG.md +56 -0
  2. package/CODE_OF_CONDUCT.md +10 -10
  3. package/CONTRIBUTING.md +28 -27
  4. package/SECURITY.md +8 -9
  5. package/build/api/debug/index.js +1 -1
  6. package/build/api/endpoint/api/dist-tags.js +4 -4
  7. package/build/api/endpoint/api/package.js +3 -3
  8. package/build/api/endpoint/api/ping.js +1 -1
  9. package/build/api/endpoint/api/publish.js +11 -11
  10. package/build/api/endpoint/api/star.js +5 -5
  11. package/build/api/endpoint/api/stars.js +1 -1
  12. package/build/api/endpoint/api/user.js +6 -6
  13. package/build/api/endpoint/api/v1/index.js +1 -1
  14. package/build/api/endpoint/api/v1/profile.js +4 -4
  15. package/build/api/endpoint/api/v1/search.js +4 -4
  16. package/build/api/endpoint/api/v1/token.js +8 -8
  17. package/build/api/endpoint/api/whoami.js +1 -1
  18. package/build/api/endpoint/index.js +9 -9
  19. package/build/api/index.js +13 -13
  20. package/build/api/middleware.js +6 -6
  21. package/build/api/rate-limiter.js +3 -3
  22. package/build/api/web/api.js +3 -3
  23. package/build/api/web/endpoint/index.js +10 -4
  24. package/build/api/web/endpoint/package.js +9 -9
  25. package/build/api/web/endpoint/search.js +3 -3
  26. package/build/api/web/endpoint/user.js +4 -4
  27. package/build/api/web/html/renderHTML.js +13 -9
  28. package/build/api/web/html/template.js +1 -1
  29. package/build/api/web/index.js +10 -10
  30. package/build/config/env.js +1 -1
  31. package/build/index.js +1 -1
  32. package/build/lib/auth-utils.js +5 -5
  33. package/build/lib/auth.js +7 -17
  34. package/build/lib/bootstrap.js +8 -8
  35. package/build/lib/cli/cli.js +3 -3
  36. package/build/lib/cli/commands/info.js +3 -3
  37. package/build/lib/cli/commands/init.js +3 -3
  38. package/build/lib/cli/commands/version.js +1 -1
  39. package/build/lib/cli/utils.js +3 -3
  40. package/build/lib/config-path.js +3 -3
  41. package/build/lib/config-utils.js +3 -3
  42. package/build/lib/config.js +8 -32
  43. package/build/lib/crypto-utils.js +3 -3
  44. package/build/lib/local-storage.js +7 -15
  45. package/build/lib/logger/formatter/index.js +1 -1
  46. package/build/lib/logger/formatter/prettifier.js +3 -3
  47. package/build/lib/logger/levels.js +1 -1
  48. package/build/lib/logger/logger.js +10 -6
  49. package/build/lib/logger/utils.js +1 -1
  50. package/build/lib/metadata-utils.js +3 -3
  51. package/build/lib/notify/index.js +3 -3
  52. package/build/lib/notify/notify-request.js +5 -5
  53. package/build/lib/plugin-loader.js +4 -4
  54. package/build/lib/search.js +2 -6
  55. package/build/lib/storage-utils.js +3 -3
  56. package/build/lib/storage.js +10 -22
  57. package/build/lib/up-storage.js +9 -43
  58. package/build/lib/uplink-util.js +1 -1
  59. package/build/lib/utils.js +22 -13
  60. package/build/utils/user.js +1 -1
  61. package/conf/README.md +3 -3
  62. package/eslintrc.js +92 -92
  63. package/index.js +1 -1
  64. package/package.json +64 -63
  65. package/prettier.config.js +15 -0
  66. package/tsconfig.json +3 -10
  67. package/yarn-plugins/plugin-postinstall.js +10 -10
@@ -5,10 +5,10 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.mergeVersions = mergeVersions;
7
7
 
8
- var _semver = _interopRequireDefault(require("semver"));
9
-
10
8
  var _lodash = _interopRequireDefault(require("lodash"));
11
9
 
10
+ var _semver = _interopRequireDefault(require("semver"));
11
+
12
12
  var _constants = require("./constants");
13
13
 
14
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
@@ -48,4 +48,4 @@ function mergeVersions(local, up) {
48
48
  }
49
49
  }
50
50
  }
51
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvbWV0YWRhdGEtdXRpbHMudHMiXSwibmFtZXMiOlsibWVyZ2VWZXJzaW9ucyIsImxvY2FsIiwidXAiLCJpIiwidmVyc2lvbnMiLCJfIiwiaXNOaWwiLCJESVNUX1RBR1MiLCJzZW12ZXIiLCJsdGUiLCJyZWFkbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFLQTs7QUFDQTs7QUFFQTs7OztBQVJBO0FBQ0E7QUFDQTtBQUNBOztBQU9BO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxTQUFTQSxhQUFULENBQXVCQyxLQUF2QixFQUF1Q0MsRUFBdkMsRUFBb0Q7QUFDekQ7QUFDQTtBQUNBLE9BQUssTUFBTUMsQ0FBWCxJQUFnQkQsRUFBRSxDQUFDRSxRQUFuQixFQUE2QjtBQUMzQixRQUFJQyxnQkFBRUMsS0FBRixDQUFRTCxLQUFLLENBQUNHLFFBQU4sQ0FBZUQsQ0FBZixDQUFSLENBQUosRUFBZ0M7QUFDOUJGLE1BQUFBLEtBQUssQ0FBQ0csUUFBTixDQUFlRCxDQUFmLElBQW9CRCxFQUFFLENBQUNFLFFBQUgsQ0FBWUQsQ0FBWixDQUFwQjtBQUNEO0FBQ0Y7O0FBRUQsT0FBSyxNQUFNQSxDQUFYLElBQWdCRCxFQUFFLENBQUNLLG9CQUFELENBQWxCLEVBQStCO0FBQzdCLFFBQUlOLEtBQUssQ0FBQ00sb0JBQUQsQ0FBTCxDQUFpQkosQ0FBakIsTUFBd0JELEVBQUUsQ0FBQ0ssb0JBQUQsQ0FBRixDQUFjSixDQUFkLENBQTVCLEVBQThDO0FBQzVDLFVBQUksQ0FBQ0YsS0FBSyxDQUFDTSxvQkFBRCxDQUFMLENBQWlCSixDQUFqQixDQUFELElBQXdCSyxnQkFBT0MsR0FBUCxDQUFXUixLQUFLLENBQUNNLG9CQUFELENBQUwsQ0FBaUJKLENBQWpCLENBQVgsRUFBZ0NELEVBQUUsQ0FBQ0ssb0JBQUQsQ0FBRixDQUFjSixDQUFkLENBQWhDLENBQTVCLEVBQStFO0FBQzdFRixRQUFBQSxLQUFLLENBQUNNLG9CQUFELENBQUwsQ0FBaUJKLENBQWpCLElBQXNCRCxFQUFFLENBQUNLLG9CQUFELENBQUYsQ0FBY0osQ0FBZCxDQUF0QjtBQUNEOztBQUNELFVBQUlBLENBQUMsS0FBSyxRQUFOLElBQWtCRixLQUFLLENBQUNNLG9CQUFELENBQUwsQ0FBaUJKLENBQWpCLE1BQXdCRCxFQUFFLENBQUNLLG9CQUFELENBQUYsQ0FBY0osQ0FBZCxDQUE5QyxFQUFnRTtBQUM5RDtBQUNBRixRQUFBQSxLQUFLLENBQUNTLE1BQU4sR0FBZVIsRUFBRSxDQUFDUSxNQUFsQjtBQUNEO0FBQ0Y7QUFDRjtBQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqIEBmbG93XG4gKi9cblxuaW1wb3J0IHNlbXZlciBmcm9tICdzZW12ZXInO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFBhY2thZ2UgfSBmcm9tICdAdmVyZGFjY2lvL3R5cGVzJztcbmltcG9ydCB7IERJU1RfVEFHUyB9IGZyb20gJy4vY29uc3RhbnRzJztcblxuLyoqXG4gKiBGdW5jdGlvbiBnZXRzIGEgbG9jYWwgaW5mbyBhbmQgYW4gaW5mbyBmcm9tIHVwbGlua3MgYW5kIHRyaWVzIHRvIG1lcmdlIGl0XG4gZXhwb3J0ZWQgZm9yIHVuaXQgdGVzdHMgb25seS5cbiAgKiBAcGFyYW0geyp9IGxvY2FsXG4gICogQHBhcmFtIHsqfSB1cFxuICAqIEBwYXJhbSB7Kn0gY29uZmlnXG4gICogQHN0YXRpY1xuICAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlVmVyc2lvbnMobG9jYWw6IFBhY2thZ2UsIHVwOiBQYWNrYWdlKSB7XG4gIC8vIGNvcHkgbmV3IHZlcnNpb25zIHRvIGEgY2FjaGVcbiAgLy8gTk9URTogaWYgYSBjZXJ0YWluIHZlcnNpb24gd2FzIHVwZGF0ZWQsIHdlIGNhbid0IHJlZnJlc2ggaXQgcmVsaWFibHlcbiAgZm9yIChjb25zdCBpIGluIHVwLnZlcnNpb25zKSB7XG4gICAgaWYgKF8uaXNOaWwobG9jYWwudmVyc2lvbnNbaV0pKSB7XG4gICAgICBsb2NhbC52ZXJzaW9uc1tpXSA9IHVwLnZlcnNpb25zW2ldO1xuICAgIH1cbiAgfVxuXG4gIGZvciAoY29uc3QgaSBpbiB1cFtESVNUX1RBR1NdKSB7XG4gICAgaWYgKGxvY2FsW0RJU1RfVEFHU11baV0gIT09IHVwW0RJU1RfVEFHU11baV0pIHtcbiAgICAgIGlmICghbG9jYWxbRElTVF9UQUdTXVtpXSB8fCBzZW12ZXIubHRlKGxvY2FsW0RJU1RfVEFHU11baV0sIHVwW0RJU1RfVEFHU11baV0pKSB7XG4gICAgICAgIGxvY2FsW0RJU1RfVEFHU11baV0gPSB1cFtESVNUX1RBR1NdW2ldO1xuICAgICAgfVxuICAgICAgaWYgKGkgPT09ICdsYXRlc3QnICYmIGxvY2FsW0RJU1RfVEFHU11baV0gPT09IHVwW0RJU1RfVEFHU11baV0pIHtcbiAgICAgICAgLy8gaWYgcmVtb3RlIGhhcyBtb3JlIGZyZXNoIHBhY2thZ2UsIHdlIHNob3VsZCBib3Jyb3cgaXRzIHJlYWRtZVxuICAgICAgICBsb2NhbC5yZWFkbWUgPSB1cC5yZWFkbWU7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iXX0=
51
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvbWV0YWRhdGEtdXRpbHMudHMiXSwibmFtZXMiOlsibWVyZ2VWZXJzaW9ucyIsImxvY2FsIiwidXAiLCJpIiwidmVyc2lvbnMiLCJfIiwiaXNOaWwiLCJESVNUX1RBR1MiLCJzZW12ZXIiLCJsdGUiLCJyZWFkbWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFJQTs7QUFDQTs7QUFJQTs7OztBQVRBO0FBQ0E7QUFDQTtBQUNBOztBQVFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDTyxTQUFTQSxhQUFULENBQXVCQyxLQUF2QixFQUF1Q0MsRUFBdkMsRUFBb0Q7QUFDekQ7QUFDQTtBQUNBLE9BQUssTUFBTUMsQ0FBWCxJQUFnQkQsRUFBRSxDQUFDRSxRQUFuQixFQUE2QjtBQUMzQixRQUFJQyxnQkFBRUMsS0FBRixDQUFRTCxLQUFLLENBQUNHLFFBQU4sQ0FBZUQsQ0FBZixDQUFSLENBQUosRUFBZ0M7QUFDOUJGLE1BQUFBLEtBQUssQ0FBQ0csUUFBTixDQUFlRCxDQUFmLElBQW9CRCxFQUFFLENBQUNFLFFBQUgsQ0FBWUQsQ0FBWixDQUFwQjtBQUNEO0FBQ0Y7O0FBRUQsT0FBSyxNQUFNQSxDQUFYLElBQWdCRCxFQUFFLENBQUNLLG9CQUFELENBQWxCLEVBQStCO0FBQzdCLFFBQUlOLEtBQUssQ0FBQ00sb0JBQUQsQ0FBTCxDQUFpQkosQ0FBakIsTUFBd0JELEVBQUUsQ0FBQ0ssb0JBQUQsQ0FBRixDQUFjSixDQUFkLENBQTVCLEVBQThDO0FBQzVDLFVBQUksQ0FBQ0YsS0FBSyxDQUFDTSxvQkFBRCxDQUFMLENBQWlCSixDQUFqQixDQUFELElBQXdCSyxnQkFBT0MsR0FBUCxDQUFXUixLQUFLLENBQUNNLG9CQUFELENBQUwsQ0FBaUJKLENBQWpCLENBQVgsRUFBZ0NELEVBQUUsQ0FBQ0ssb0JBQUQsQ0FBRixDQUFjSixDQUFkLENBQWhDLENBQTVCLEVBQStFO0FBQzdFRixRQUFBQSxLQUFLLENBQUNNLG9CQUFELENBQUwsQ0FBaUJKLENBQWpCLElBQXNCRCxFQUFFLENBQUNLLG9CQUFELENBQUYsQ0FBY0osQ0FBZCxDQUF0QjtBQUNEOztBQUNELFVBQUlBLENBQUMsS0FBSyxRQUFOLElBQWtCRixLQUFLLENBQUNNLG9CQUFELENBQUwsQ0FBaUJKLENBQWpCLE1BQXdCRCxFQUFFLENBQUNLLG9CQUFELENBQUYsQ0FBY0osQ0FBZCxDQUE5QyxFQUFnRTtBQUM5RDtBQUNBRixRQUFBQSxLQUFLLENBQUNTLE1BQU4sR0FBZVIsRUFBRSxDQUFDUSxNQUFsQjtBQUNEO0FBQ0Y7QUFDRjtBQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAcHJldHRpZXJcbiAqIEBmbG93XG4gKi9cbmltcG9ydCBfIGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgc2VtdmVyIGZyb20gJ3NlbXZlcic7XG5cbmltcG9ydCB7IFBhY2thZ2UgfSBmcm9tICdAdmVyZGFjY2lvL3R5cGVzJztcblxuaW1wb3J0IHsgRElTVF9UQUdTIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG4vKipcbiAqIEZ1bmN0aW9uIGdldHMgYSBsb2NhbCBpbmZvIGFuZCBhbiBpbmZvIGZyb20gdXBsaW5rcyBhbmQgdHJpZXMgdG8gbWVyZ2UgaXRcbiBleHBvcnRlZCBmb3IgdW5pdCB0ZXN0cyBvbmx5LlxuICAqIEBwYXJhbSB7Kn0gbG9jYWxcbiAgKiBAcGFyYW0geyp9IHVwXG4gICogQHBhcmFtIHsqfSBjb25maWdcbiAgKiBAc3RhdGljXG4gICovXG5leHBvcnQgZnVuY3Rpb24gbWVyZ2VWZXJzaW9ucyhsb2NhbDogUGFja2FnZSwgdXA6IFBhY2thZ2UpIHtcbiAgLy8gY29weSBuZXcgdmVyc2lvbnMgdG8gYSBjYWNoZVxuICAvLyBOT1RFOiBpZiBhIGNlcnRhaW4gdmVyc2lvbiB3YXMgdXBkYXRlZCwgd2UgY2FuJ3QgcmVmcmVzaCBpdCByZWxpYWJseVxuICBmb3IgKGNvbnN0IGkgaW4gdXAudmVyc2lvbnMpIHtcbiAgICBpZiAoXy5pc05pbChsb2NhbC52ZXJzaW9uc1tpXSkpIHtcbiAgICAgIGxvY2FsLnZlcnNpb25zW2ldID0gdXAudmVyc2lvbnNbaV07XG4gICAgfVxuICB9XG5cbiAgZm9yIChjb25zdCBpIGluIHVwW0RJU1RfVEFHU10pIHtcbiAgICBpZiAobG9jYWxbRElTVF9UQUdTXVtpXSAhPT0gdXBbRElTVF9UQUdTXVtpXSkge1xuICAgICAgaWYgKCFsb2NhbFtESVNUX1RBR1NdW2ldIHx8IHNlbXZlci5sdGUobG9jYWxbRElTVF9UQUdTXVtpXSwgdXBbRElTVF9UQUdTXVtpXSkpIHtcbiAgICAgICAgbG9jYWxbRElTVF9UQUdTXVtpXSA9IHVwW0RJU1RfVEFHU11baV07XG4gICAgICB9XG4gICAgICBpZiAoaSA9PT0gJ2xhdGVzdCcgJiYgbG9jYWxbRElTVF9UQUdTXVtpXSA9PT0gdXBbRElTVF9UQUdTXVtpXSkge1xuICAgICAgICAvLyBpZiByZW1vdGUgaGFzIG1vcmUgZnJlc2ggcGFja2FnZSwgd2Ugc2hvdWxkIGJvcnJvdyBpdHMgcmVhZG1lXG4gICAgICAgIGxvY2FsLnJlYWRtZSA9IHVwLnJlYWRtZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -15,9 +15,9 @@ var _notifyRequest = require("./notify-request");
15
15
 
16
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
17
 
18
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
18
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
19
19
 
20
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
20
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
21
21
 
22
22
  function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
23
23
 
@@ -98,4 +98,4 @@ function notify(metadata, config, remoteUser, publishedPackage) {
98
98
 
99
99
  return Promise.resolve();
100
100
  }
101
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvbm90aWZ5L2luZGV4LnRzIl0sIm5hbWVzIjpbImhhbmRsZU5vdGlmeSIsIm1ldGFkYXRhIiwibm90aWZ5RW50cnkiLCJyZW1vdGVVc2VyIiwicHVibGlzaGVkUGFja2FnZSIsInJlZ2V4IiwibmFtZSIsInBhY2thZ2VQYXR0ZXJuIiwiUmVnRXhwIiwicGFja2FnZVBhdHRlcm5GbGFncyIsInRlc3QiLCJ0ZW1wbGF0ZSIsIkhhbmRsZWJhcnMiLCJjb21waWxlIiwiY29udGVudCIsIl8iLCJpc05pbCIsInB1Ymxpc2hlciIsIm9wdGlvbnMiLCJib2R5IiwidXJsIiwiaGVhZGVycyIsImlzQXJyYXkiLCJoZWFkZXIiLCJtYXAiLCJpdGVtIiwiT2JqZWN0IiwiaXMiLCJrZXkiLCJoYXNPd25Qcm9wZXJ0eSIsIm1ldGhvZCIsImVuZHBvaW50Iiwic2VuZE5vdGlmaWNhdGlvbiIsIm5vdGlmeSIsImNvbmZpZyIsIlByb21pc2UiLCJhbGwiLCJyZXNvbHZlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFJQTs7Ozs7Ozs7OztBQUlPLFNBQVNBLFlBQVQsQ0FDTEMsUUFESyxFQUVMQyxXQUZLLEVBR0xDLFVBSEssRUFJTEMsZ0JBSkssRUFLZ0I7QUFDckIsTUFBSUMsS0FBSjs7QUFDQSxNQUFJSixRQUFRLENBQUNLLElBQVQsSUFBaUJKLFdBQVcsQ0FBQ0ssY0FBakMsRUFBaUQ7QUFDL0NGLElBQUFBLEtBQUssR0FBRyxJQUFJRyxNQUFKLENBQVdOLFdBQVcsQ0FBQ0ssY0FBdkIsRUFBdUNMLFdBQVcsQ0FBQ08sbUJBQVosSUFBbUMsRUFBMUUsQ0FBUjs7QUFDQSxRQUFJLENBQUNKLEtBQUssQ0FBQ0ssSUFBTixDQUFXVCxRQUFRLENBQUNLLElBQXBCLENBQUwsRUFBZ0M7QUFDOUI7QUFDRDtBQUNGOztBQUVELFFBQU1LLFFBQVEsR0FBR0Msb0JBQVdDLE9BQVgsQ0FBbUJYLFdBQVcsQ0FBQ1ksT0FBL0IsQ0FBakIs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LE9BQVIsRUFBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEhhbmRsZWJhcnMgZnJvbSAnaGFuZGxlYmFycyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuXG5pbXBvcnQgeyBPcHRpb25zV2l0aFVybCB9IGZyb20gJ3JlcXVlc3QnO1xuaW1wb3J0IHsgQ29uZmlnLCBQYWNrYWdlLCBSZW1vdGVVc2VyIH0gZnJvbSAnQHZlcmRhY2Npby90eXBlcyc7XG5pbXBvcnQgeyBub3RpZnlSZXF1ZXN0IH0gZnJvbSAnLi9ub3RpZnktcmVxdWVzdCc7XG5cbnR5cGUgVGVtcGxhdGVNZXRhZGF0YSA9IFBhY2thZ2UgJiB7IHB1Ymxpc2hlZFBhY2thZ2U6IHN0cmluZyB9O1xuXG5leHBvcnQgZnVuY3Rpb24gaGFuZGxlTm90aWZ5KFxuICBtZXRhZGF0YTogUGFja2FnZSxcbiAgbm90aWZ5RW50cnksXG4gIHJlbW90ZVVzZXI6IFJlbW90ZVVzZXIsXG4gIHB1Ymxpc2hlZFBhY2thZ2U6IHN0cmluZ1xuKTogUHJvbWlzZTxhbnk+IHwgdm9pZCB7XG4gIGxldCByZWdleDtcbiAgaWYgKG1ldGFkYXRhLm5hbWUgJiYgbm90aWZ5RW50cnkucGFja2FnZVBhdHRlcm4pIHtcbiAgICByZWdleCA9IG5ldyBSZWdFeHAobm90aWZ5RW50cnkucGFja2FnZVBhdHRlcm4sIG5vdGlmeUVudHJ5LnBhY2thZ2VQYXR0ZXJuRmxhZ3MgfHwgJycpO1xuICAgIGlmICghcmVnZXgudGVzdChtZXRhZGF0YS5uYW1lKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IHRlbXBsYXRlID0gSGFuZGxlYmFycy5jb21waWxlKG5vdGlmeUVudHJ5LmNvbnRlbnQpO1xuICAvLyBkb24ndCBvdmVycmlkZSAncHVibGlzaGVyJyBpZiBwYWNrYWdlLmpzb24gYWxyZWFkeSBoYXMgdGhhdFxuICAvKiBlc2xpbnQgbm8tdW51c2VkLXZhcnM6IDAgKi9cbiAgLyogZXNsaW50IEB0eXBlc2NyaXB0LWVzbGludC9uby11bnVzZWQtdmFyczogMCAqL1xuICAvLyBAdHMtaWdub3JlXG4gIGlmIChfLmlzTmlsKG1ldGFkYXRhLnB1Ymxpc2hlcikpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgbWV0YWRhdGEgPSB7IC4uLm1ldGFkYXRhLCBwdWJsaXNoZWRQYWNrYWdlLCBwdWJsaXNoZXI6IHsgbmFtZTogcmVtb3RlVXNlci5uYW1lIGFzIHN0cmluZyB9IH07XG4gIH1cblxuICBjb25zdCBjb250ZW50OiBzdHJpbmcgPSB0ZW1wbGF0ZShtZXRhZGF0YSk7XG5cbiAgY29uc3Qgb3B0aW9uczogT3B0aW9uc1dpdGhVcmwgPSB7XG4gICAgYm9keTogY29udGVudCxcbiAgICB1cmw6ICcnXG4gIH07XG5cbiAgLy8gcHJvdmlkZXMgZmFsbGJhY2sgc3VwcG9ydCwgaXQncyBhY2NlcHQgYW4gT2JqZWN0IHt9IGFuZCBBcnJheSBvZiB7fVxuICBpZiAobm90aWZ5RW50cnkuaGVhZGVycyAmJiBfLmlzQXJyYXkobm90aWZ5RW50cnkuaGVhZGVycykpIHtcbiAgICBjb25zdCBoZWFkZXIgPSB7fTtcbiAgICBub3RpZnlFbnRyeS5oZWFkZXJzLm1hcChmdW5jdGlvbiAoaXRlbSk6IHZvaWQge1xuICAgICAgaWYgKE9iamVjdC5pcyhpdGVtLCBpdGVtKSkge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpdGVtKSB7XG4gICAgICAgICAgLyogZXNsaW50IG5vLXByb3RvdHlwZS1idWlsdGluczogMCAqL1xuICAgICAgICAgIGlmIChpdGVtLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICAgIGhlYWRlcltrZXldID0gaXRlbVtrZXldO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIG9wdGlvbnMuaGVhZGVycyA9IGhlYWRlcjtcbiAgfSBlbHNlIGlmIChPYmplY3QuaXMobm90aWZ5RW50cnkuaGVhZGVycywgbm90aWZ5RW50cnkuaGVhZGVycykpIHtcbiAgICBvcHRpb25zLmhlYWRlcnMgPSBub3RpZnlFbnRyeS5oZWFkZXJzO1xuICB9XG5cbiAgb3B0aW9ucy5tZXRob2QgPSBub3RpZnlFbnRyeS5tZXRob2Q7XG5cbiAgaWYgKG5vdGlmeUVudHJ5LmVuZHBvaW50KSB7XG4gICAgb3B0aW9ucy51cmwgPSBub3RpZnlFbnRyeS5lbmRwb2ludDtcbiAgfVxuXG4gIHJldHVybiBub3RpZnlSZXF1ZXN0KG9wdGlvbnMsIGNvbnRlbnQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2VuZE5vdGlmaWNhdGlvbihcbiAgbWV0YWRhdGE6IFBhY2thZ2UsXG4gIG5vdGlmeTogYW55LFxuICByZW1vdGVVc2VyOiBSZW1vdGVVc2VyLFxuICBwdWJsaXNoZWRQYWNrYWdlOiBzdHJpbmdcbik6IFByb21pc2U8YW55PiB7XG4gIHJldHVybiBoYW5kbGVOb3RpZnkobWV0YWRhdGEsIG5vdGlmeSwgcmVtb3RlVXNlciwgcHVibGlzaGVkUGFja2FnZSkgYXMgUHJvbWlzZTxhbnk+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbm90aWZ5KFxuICBtZXRhZGF0YTogUGFja2FnZSxcbiAgY29uZmlnOiBDb25maWcsXG4gIHJlbW90ZVVzZXI6IFJlbW90ZVVzZXIsXG4gIHB1Ymxpc2hlZFBhY2thZ2U6IHN0cmluZ1xuKTogUHJvbWlzZTxhbnk+IHwgdm9pZCB7XG4gIGlmIChjb25maWcubm90aWZ5KSB7XG4gICAgaWYgKGNvbmZpZy5ub3RpZnkuY29udGVudCkge1xuICAgICAgcmV0dXJuIHNlbmROb3RpZmljYXRpb24oXG4gICAgICAgIG1ldGFkYXRhLFxuICAgICAgICAoY29uZmlnLm5vdGlmeSBhcyB1bmtub3duKSBhcyBhbnksXG4gICAgICAgIHJlbW90ZVVzZXIsXG4gICAgICAgIHB1Ymxpc2hlZFBhY2thZ2VcbiAgICAgICk7XG4gICAgfVxuICAgIC8vIG11bHRpcGxlIG5vdGlmaWNhdGlvbnMgZW5kcG9pbnRzIFBSICMxMDhcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoXG4gICAgICBfLm1hcChjb25maWcubm90aWZ5LCAoa2V5KSA9PiBzZW5kTm90aWZpY2F0aW9uKG1ldGFkYXRhLCBrZXksIHJlbW90ZVVzZXIsIHB1Ymxpc2hlZFBhY2thZ2UpKVxuICAgICk7XG4gIH1cblxuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG59XG4iXX0=
101
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvbm90aWZ5L2luZGV4LnRzIl0sIm5hbWVzIjpbImhhbmRsZU5vdGlmeSIsIm1ldGFkYXRhIiwibm90aWZ5RW50cnkiLCJyZW1vdGVVc2VyIiwicHVibGlzaGVkUGFja2FnZSIsInJlZ2V4IiwibmFtZSIsInBhY2thZ2VQYXR0ZXJuIiwiUmVnRXhwIiwicGFja2FnZVBhdHRlcm5GbGFncyIsInRlc3QiLCJ0ZW1wbGF0ZSIsIkhhbmRsZWJhcnMiLCJjb21waWxlIiwiY29udGVudCIsIl8iLCJpc05pbCIsInB1Ymxpc2hlciIsIm9wdGlvbnMiLCJib2R5IiwidXJsIiwiaGVhZGVycyIsImlzQXJyYXkiLCJoZWFkZXIiLCJtYXAiLCJpdGVtIiwiT2JqZWN0IiwiaXMiLCJrZXkiLCJoYXNPd25Qcm9wZXJ0eSIsIm1ldGhvZCIsImVuZHBvaW50Iiwic2VuZE5vdGlmaWNhdGlvbiIsIm5vdGlmeSIsImNvbmZpZyIsIlByb21pc2UiLCJhbGwiLCJyZXNvbHZlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBQTs7QUFDQTs7QUFLQTs7Ozs7Ozs7OztBQUlPLFNBQVNBLFlBQVQsQ0FBc0JDLFFBQXRCLEVBQXlDQyxXQUF6QyxFQUFzREMsVUFBdEQsRUFBOEVDLGdCQUE5RSxFQUE2SDtBQUNsSSxNQUFJQyxLQUFKOztBQUNBLE1BQUlKLFFBQVEsQ0FBQ0ssSUFBVCxJQUFpQkosV0FBVyxDQUFDSyxjQUFqQyxFQUFpRDtBQUMvQ0YsSUFBQUEsS0FBSyxHQUFHLElBQUlHLE1BQUosQ0FBV04sV0FBVyxDQUFDSyxjQUF2QixFQUF1Q0wsV0FBVyxDQUFDTyxtQkFBWixJQUFtQyxFQUExRSxDQUFSOztBQUNBLFFBQUksQ0FBQ0osS0FBSyxDQUFDSyxJQUFOLENBQVdULFFBQVEsQ0FBQ0ssSUFBcEIsQ0FBTCxFQUFnQztBQUM5QjtBQUNEO0FBQ0Y7O0FBRUQsUUFBTUssUUFBUSxHQUFHQyxvQkFBV0MsT0FBWCxDQUFtQlgsV0FBVyxDQUFDWSxPQUEv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OztBQUVELFNBQU8rQixPQUFPLENBQUNFLE9BQVIsRUFBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IEhhbmRsZWJhcnMgZnJvbSAnaGFuZGxlYmFycyc7XG5pbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgT3B0aW9uc1dpdGhVcmwgfSBmcm9tICdyZXF1ZXN0JztcblxuaW1wb3J0IHsgQ29uZmlnLCBQYWNrYWdlLCBSZW1vdGVVc2VyIH0gZnJvbSAnQHZlcmRhY2Npby90eXBlcyc7XG5cbmltcG9ydCB7IG5vdGlmeVJlcXVlc3QgfSBmcm9tICcuL25vdGlmeS1yZXF1ZXN0JztcblxudHlwZSBUZW1wbGF0ZU1ldGFkYXRhID0gUGFja2FnZSAmIHsgcHVibGlzaGVkUGFja2FnZTogc3RyaW5nIH07XG5cbmV4cG9ydCBmdW5jdGlvbiBoYW5kbGVOb3RpZnkobWV0YWRhdGE6IFBhY2thZ2UsIG5vdGlmeUVudHJ5LCByZW1vdGVVc2VyOiBSZW1vdGVVc2VyLCBwdWJsaXNoZWRQYWNrYWdlOiBzdHJpbmcpOiBQcm9taXNlPGFueT4gfCB2b2lkIHtcbiAgbGV0IHJlZ2V4O1xuICBpZiAobWV0YWRhdGEubmFtZSAmJiBub3RpZnlFbnRyeS5wYWNrYWdlUGF0dGVybikge1xuICAgIHJlZ2V4ID0gbmV3IFJlZ0V4cChub3RpZnlFbnRyeS5wYWNrYWdlUGF0dGVybiwgbm90aWZ5RW50cnkucGFja2FnZVBhdHRlcm5GbGFncyB8fCAnJyk7XG4gICAgaWYgKCFyZWdleC50ZXN0KG1ldGFkYXRhLm5hbWUpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9XG5cbiAgY29uc3QgdGVtcGxhdGUgPSBIYW5kbGViYXJzLmNvbXBpbGUobm90aWZ5RW50cnkuY29udGVudCk7XG4gIC8vIGRvbid0IG92ZXJyaWRlICdwdWJsaXNoZXInIGlmIHBhY2thZ2UuanNvbiBhbHJlYWR5IGhhcyB0aGF0XG4gIC8qIGVzbGludCBuby11bnVzZWQtdmFyczogMCAqL1xuICAvKiBlc2xpbnQgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzOiAwICovXG4gIC8vIEB0cy1pZ25vcmVcbiAgaWYgKF8uaXNOaWwobWV0YWRhdGEucHVibGlzaGVyKSkge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBtZXRhZGF0YSA9IHsgLi4ubWV0YWRhdGEsIHB1Ymxpc2hlZFBhY2thZ2UsIHB1Ymxpc2hlcjogeyBuYW1lOiByZW1vdGVVc2VyLm5hbWUgYXMgc3RyaW5nIH0gfTtcbiAgfVxuXG4gIGNvbnN0IGNvbnRlbnQ6IHN0cmluZyA9IHRlbXBsYXRlKG1ldGFkYXRhKTtcblxuICBjb25zdCBvcHRpb25zOiBPcHRpb25zV2l0aFVybCA9IHtcbiAgICBib2R5OiBjb250ZW50LFxuICAgIHVybDogJycsXG4gIH07XG5cbiAgLy8gcHJvdmlkZXMgZmFsbGJhY2sgc3VwcG9ydCwgaXQncyBhY2NlcHQgYW4gT2JqZWN0IHt9IGFuZCBBcnJheSBvZiB7fVxuICBpZiAobm90aWZ5RW50cnkuaGVhZGVycyAmJiBfLmlzQXJyYXkobm90aWZ5RW50cnkuaGVhZGVycykpIHtcbiAgICBjb25zdCBoZWFkZXIgPSB7fTtcbiAgICBub3RpZnlFbnRyeS5oZWFkZXJzLm1hcChmdW5jdGlvbiAoaXRlbSk6IHZvaWQge1xuICAgICAgaWYgKE9iamVjdC5pcyhpdGVtLCBpdGVtKSkge1xuICAgICAgICBmb3IgKGNvbnN0IGtleSBpbiBpdGVtKSB7XG4gICAgICAgICAgLyogZXNsaW50IG5vLXByb3RvdHlwZS1idWlsdGluczogMCAqL1xuICAgICAgICAgIGlmIChpdGVtLmhhc093blByb3BlcnR5KGtleSkpIHtcbiAgICAgICAgICAgIGhlYWRlcltrZXldID0gaXRlbVtrZXldO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIG9wdGlvbnMuaGVhZGVycyA9IGhlYWRlcjtcbiAgfSBlbHNlIGlmIChPYmplY3QuaXMobm90aWZ5RW50cnkuaGVhZGVycywgbm90aWZ5RW50cnkuaGVhZGVycykpIHtcbiAgICBvcHRpb25zLmhlYWRlcnMgPSBub3RpZnlFbnRyeS5oZWFkZXJzO1xuICB9XG5cbiAgb3B0aW9ucy5tZXRob2QgPSBub3RpZnlFbnRyeS5tZXRob2Q7XG5cbiAgaWYgKG5vdGlmeUVudHJ5LmVuZHBvaW50KSB7XG4gICAgb3B0aW9ucy51cmwgPSBub3RpZnlFbnRyeS5lbmRwb2ludDtcbiAgfVxuXG4gIHJldHVybiBub3RpZnlSZXF1ZXN0KG9wdGlvbnMsIGNvbnRlbnQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2VuZE5vdGlmaWNhdGlvbihtZXRhZGF0YTogUGFja2FnZSwgbm90aWZ5OiBhbnksIHJlbW90ZVVzZXI6IFJlbW90ZVVzZXIsIHB1Ymxpc2hlZFBhY2thZ2U6IHN0cmluZyk6IFByb21pc2U8YW55PiB7XG4gIHJldHVybiBoYW5kbGVOb3RpZnkobWV0YWRhdGEsIG5vdGlmeSwgcmVtb3RlVXNlciwgcHVibGlzaGVkUGFja2FnZSkgYXMgUHJvbWlzZTxhbnk+O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gbm90aWZ5KG1ldGFkYXRhOiBQYWNrYWdlLCBjb25maWc6IENvbmZpZywgcmVtb3RlVXNlcjogUmVtb3RlVXNlciwgcHVibGlzaGVkUGFja2FnZTogc3RyaW5nKTogUHJvbWlzZTxhbnk+IHwgdm9pZCB7XG4gIGlmIChjb25maWcubm90aWZ5KSB7XG4gICAgaWYgKGNvbmZpZy5ub3RpZnkuY29udGVudCkge1xuICAgICAgcmV0dXJuIHNlbmROb3RpZmljYXRpb24obWV0YWRhdGEsIGNvbmZpZy5ub3RpZnkgYXMgdW5rbm93biBhcyBhbnksIHJlbW90ZVVzZXIsIHB1Ymxpc2hlZFBhY2thZ2UpO1xuICAgIH1cbiAgICAvLyBtdWx0aXBsZSBub3RpZmljYXRpb25zIGVuZHBvaW50cyBQUiAjMTA4XG4gICAgcmV0dXJuIFByb21pc2UuYWxsKF8ubWFwKGNvbmZpZy5ub3RpZnksIChrZXkpID0+IHNlbmROb3RpZmljYXRpb24obWV0YWRhdGEsIGtleSwgcmVtb3RlVXNlciwgcHVibGlzaGVkUGFja2FnZSkpKTtcbiAgfVxuXG4gIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcbn1cbiJdfQ==
@@ -5,16 +5,16 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.notifyRequest = notifyRequest;
7
7
 
8
- var _isNil = _interopRequireDefault(require("lodash/isNil"));
9
-
10
8
  var _debug = _interopRequireDefault(require("debug"));
11
9
 
12
- var _request = _interopRequireDefault(require("request"));
10
+ var _isNil = _interopRequireDefault(require("lodash/isNil"));
13
11
 
14
- var _logger = require("../logger");
12
+ var _request = _interopRequireDefault(require("request"));
15
13
 
16
14
  var _constants = require("../constants");
17
15
 
16
+ var _logger = require("../logger");
17
+
18
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
19
 
20
20
  const debug = (0, _debug.default)('verdaccio:notify-request');
@@ -48,4 +48,4 @@ function notifyRequest(options, content) {
48
48
  });
49
49
  });
50
50
  }
51
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvbm90aWZ5L25vdGlmeS1yZXF1ZXN0LnRzIl0sIm5hbWVzIjpbImRlYnVnIiwibm90aWZ5UmVxdWVzdCIsIm9wdGlvbnMiLCJjb250ZW50IiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJlcnIiLCJyZXNwb25zZSIsImJvZHkiLCJzdGF0dXNDb2RlIiwiSFRUUF9TVEFUVVMiLCJCQURfUkVRVUVTVCIsImVycm9yTWVzc2FnZSIsIm1lc3NhZ2UiLCJsb2dnZXIiLCJlcnJvciIsImluZm8iLCJFcnJvciJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBRUEsTUFBTUEsS0FBSyxHQUFHLG9CQUFXLDBCQUFYLENBQWQ7O0FBQ08sU0FBU0MsYUFBVCxDQUF1QkMsT0FBdkIsRUFBZ0RDLE9BQWhELEVBQStFO0FBQ3BGLFNBQU8sSUFBSUMsT0FBSixDQUFZLENBQUNDLE9BQUQsRUFBVUMsTUFBVixLQUEyQjtBQUM1QywwQkFBUUosT0FBUixFQUFpQixVQUFVSyxHQUFWLEVBQWVDLFFBQWYsRUFBeUJDLElBQXpCLEVBQXFDO0FBQ3BELFVBQUlGLEdBQUcsSUFBSUMsUUFBUSxDQUFDRSxVQUFULElBQXVCQyx1QkFBWUMsV0FBOUMsRUFBMkQ7QUFDekQsY0FBTUMsWUFBWSxHQUFHLG9CQUFNTixHQUFOLElBQWFDLFFBQVEsQ0FBQ0MsSUFBdEIsR0FBNkJGLEdBQUcsQ0FBQ08sT0FBdEQ7O0FBQ0FDLHVCQUFPQyxLQUFQLENBQWE7QUFBRUgsVUFBQUE7QUFBRixTQUFiLEVBQStCLHFEQUEvQjs7QUFDQVAsUUFBQUEsTUFBTSxDQUFDTyxZQUFELENBQU47QUFDRDs7QUFDREUscUJBQU9FLElBQVAsQ0FBWTtBQUFFZCxRQUFBQTtBQUFGLE9BQVosRUFBeUIsNkNBQXpCOztBQUNBLFVBQUksb0JBQU1NLElBQU4sTUFBZ0IsS0FBcEIsRUFBMkI7QUFDekJNLHVCQUFPZixLQUFQLENBQWE7QUFBRVMsVUFBQUE7QUFBRixTQUFiLEVBQXVCLGdCQUF2Qjs7QUFDQUosUUFBQUEsT0FBTyxDQUFDSSxJQUFELENBQVA7QUFDRDs7QUFDREgsTUFBQUEsTUFBTSxDQUFDWSxLQUFLLENBQUMsaUJBQUQsQ0FBTixDQUFOO0FBQ0QsS0FaRDtBQWFELEdBZE0sQ0FBUDtBQWVEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGlzTmlsIGZyb20gJ2xvZGFzaC9pc05pbCc7XG5pbXBvcnQgYnVpbGREZWJ1ZyBmcm9tICdkZWJ1Zyc7XG5pbXBvcnQgcmVxdWVzdCwgeyBSZXF1aXJlZFVyaVVybCB9IGZyb20gJ3JlcXVlc3QnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi4vbG9nZ2VyJztcbmltcG9ydCB7IEhUVFBfU1RBVFVTIH0gZnJvbSAnLi4vY29uc3RhbnRzJztcblxuY29uc3QgZGVidWcgPSBidWlsZERlYnVnKCd2ZXJkYWNjaW86bm90aWZ5LXJlcXVlc3QnKTtcbmV4cG9ydCBmdW5jdGlvbiBub3RpZnlSZXF1ZXN0KG9wdGlvbnM6IFJlcXVpcmVkVXJpVXJsLCBjb250ZW50KTogUHJvbWlzZTxhbnkgfCBFcnJvcj4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCk6IHZvaWQgPT4ge1xuICAgIHJlcXVlc3Qob3B0aW9ucywgZnVuY3Rpb24gKGVyciwgcmVzcG9uc2UsIGJvZHkpOiB2b2lkIHtcbiAgICAgIGlmIChlcnIgfHwgcmVzcG9uc2Uuc3RhdHVzQ29kZSA+PSBIVFRQX1NUQVRVUy5CQURfUkVRVUVTVCkge1xuICAgICAgICBjb25zdCBlcnJvck1lc3NhZ2UgPSBpc05pbChlcnIpID8gcmVzcG9uc2UuYm9keSA6IGVyci5tZXNzYWdlO1xuICAgICAgICBsb2dnZXIuZXJyb3IoeyBlcnJvck1lc3NhZ2UgfSwgJ25vdGlmeSBzZXJ2aWNlIGhhcyB0aHJvd24gYW4gZXJyb3I6IEB7ZXJyb3JNZXNzYWdlfScpO1xuICAgICAgICByZWplY3QoZXJyb3JNZXNzYWdlKTtcbiAgICAgIH1cbiAgICAgIGxvZ2dlci5pbmZvKHsgY29udGVudCB9LCAnQSBub3RpZmljYXRpb24gaGFzIGJlZW4gc2hpcHBlZDogQHtjb250ZW50fScpO1xuICAgICAgaWYgKGlzTmlsKGJvZHkpID09PSBmYWxzZSkge1xuICAgICAgICBsb2dnZXIuZGVidWcoeyBib2R5IH0sICcgYm9keTogQHtib2R5fScpO1xuICAgICAgICByZXNvbHZlKGJvZHkpO1xuICAgICAgfVxuICAgICAgcmVqZWN0KEVycm9yKCdib2R5IGlzIG1pc3NpbmcnKSk7XG4gICAgfSk7XG4gIH0pO1xufVxuIl19
51
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvbm90aWZ5L25vdGlmeS1yZXF1ZXN0LnRzIl0sIm5hbWVzIjpbImRlYnVnIiwibm90aWZ5UmVxdWVzdCIsIm9wdGlvbnMiLCJjb250ZW50IiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJlcnIiLCJyZXNwb25zZSIsImJvZHkiLCJzdGF0dXNDb2RlIiwiSFRUUF9TVEFUVVMiLCJCQURfUkVRVUVTVCIsImVycm9yTWVzc2FnZSIsIm1lc3NhZ2UiLCJsb2dnZXIiLCJlcnJvciIsImluZm8iLCJFcnJvciJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOzs7O0FBRUEsTUFBTUEsS0FBSyxHQUFHLG9CQUFXLDBCQUFYLENBQWQ7O0FBQ08sU0FBU0MsYUFBVCxDQUF1QkMsT0FBdkIsRUFBZ0RDLE9BQWhELEVBQStFO0FBQ3BGLFNBQU8sSUFBSUMsT0FBSixDQUFZLENBQUNDLE9BQUQsRUFBVUMsTUFBVixLQUEyQjtBQUM1QywwQkFBUUosT0FBUixFQUFpQixVQUFVSyxHQUFWLEVBQWVDLFFBQWYsRUFBeUJDLElBQXpCLEVBQXFDO0FBQ3BELFVBQUlGLEdBQUcsSUFBSUMsUUFBUSxDQUFDRSxVQUFULElBQXVCQyx1QkFBWUMsV0FBOUMsRUFBMkQ7QUFDekQsY0FBTUMsWUFBWSxHQUFHLG9CQUFNTixHQUFOLElBQWFDLFFBQVEsQ0FBQ0MsSUFBdEIsR0FBNkJGLEdBQUcsQ0FBQ08sT0FBdEQ7O0FBQ0FDLHVCQUFPQyxLQUFQLENBQWE7QUFBRUgsVUFBQUE7QUFBRixTQUFiLEVBQStCLHFEQUEvQjs7QUFDQVAsUUFBQUEsTUFBTSxDQUFDTyxZQUFELENBQU47QUFDRDs7QUFDREUscUJBQU9FLElBQVAsQ0FBWTtBQUFFZCxRQUFBQTtBQUFGLE9BQVosRUFBeUIsNkNBQXpCOztBQUNBLFVBQUksb0JBQU1NLElBQU4sTUFBZ0IsS0FBcEIsRUFBMkI7QUFDekJNLHVCQUFPZixLQUFQLENBQWE7QUFBRVMsVUFBQUE7QUFBRixTQUFiLEVBQXVCLGdCQUF2Qjs7QUFDQUosUUFBQUEsT0FBTyxDQUFDSSxJQUFELENBQVA7QUFDRDs7QUFDREgsTUFBQUEsTUFBTSxDQUFDWSxLQUFLLENBQUMsaUJBQUQsQ0FBTixDQUFOO0FBQ0QsS0FaRDtBQWFELEdBZE0sQ0FBUDtBQWVEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGJ1aWxkRGVidWcgZnJvbSAnZGVidWcnO1xuaW1wb3J0IGlzTmlsIGZyb20gJ2xvZGFzaC9pc05pbCc7XG5pbXBvcnQgcmVxdWVzdCwgeyBSZXF1aXJlZFVyaVVybCB9IGZyb20gJ3JlcXVlc3QnO1xuXG5pbXBvcnQgeyBIVFRQX1NUQVRVUyB9IGZyb20gJy4uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBsb2dnZXIgfSBmcm9tICcuLi9sb2dnZXInO1xuXG5jb25zdCBkZWJ1ZyA9IGJ1aWxkRGVidWcoJ3ZlcmRhY2Npbzpub3RpZnktcmVxdWVzdCcpO1xuZXhwb3J0IGZ1bmN0aW9uIG5vdGlmeVJlcXVlc3Qob3B0aW9uczogUmVxdWlyZWRVcmlVcmwsIGNvbnRlbnQpOiBQcm9taXNlPGFueSB8IEVycm9yPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KTogdm9pZCA9PiB7XG4gICAgcmVxdWVzdChvcHRpb25zLCBmdW5jdGlvbiAoZXJyLCByZXNwb25zZSwgYm9keSk6IHZvaWQge1xuICAgICAgaWYgKGVyciB8fCByZXNwb25zZS5zdGF0dXNDb2RlID49IEhUVFBfU1RBVFVTLkJBRF9SRVFVRVNUKSB7XG4gICAgICAgIGNvbnN0IGVycm9yTWVzc2FnZSA9IGlzTmlsKGVycikgPyByZXNwb25zZS5ib2R5IDogZXJyLm1lc3NhZ2U7XG4gICAgICAgIGxvZ2dlci5lcnJvcih7IGVycm9yTWVzc2FnZSB9LCAnbm90aWZ5IHNlcnZpY2UgaGFzIHRocm93biBhbiBlcnJvcjogQHtlcnJvck1lc3NhZ2V9Jyk7XG4gICAgICAgIHJlamVjdChlcnJvck1lc3NhZ2UpO1xuICAgICAgfVxuICAgICAgbG9nZ2VyLmluZm8oeyBjb250ZW50IH0sICdBIG5vdGlmaWNhdGlvbiBoYXMgYmVlbiBzaGlwcGVkOiBAe2NvbnRlbnR9Jyk7XG4gICAgICBpZiAoaXNOaWwoYm9keSkgPT09IGZhbHNlKSB7XG4gICAgICAgIGxvZ2dlci5kZWJ1Zyh7IGJvZHkgfSwgJyBib2R5OiBAe2JvZHl9Jyk7XG4gICAgICAgIHJlc29sdmUoYm9keSk7XG4gICAgICB9XG4gICAgICByZWplY3QoRXJyb3IoJ2JvZHkgaXMgbWlzc2luZycpKTtcbiAgICB9KTtcbiAgfSk7XG59XG4iXX0=
@@ -5,14 +5,14 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.default = loadPlugin;
7
7
 
8
- var _path = _interopRequireDefault(require("path"));
9
-
10
8
  var _lodash = _interopRequireDefault(require("lodash"));
11
9
 
12
- var _logger = require("./logger");
10
+ var _path = _interopRequireDefault(require("path"));
13
11
 
14
12
  var _constants = require("./constants");
15
13
 
14
+ var _logger = require("./logger");
15
+
16
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
17
 
18
18
  /**
@@ -151,4 +151,4 @@ function loadPlugin(config, pluginConfigs = {}, params, sanityCheck, prefix = 'v
151
151
  return plugin;
152
152
  });
153
153
  }
154
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcGx1Z2luLWxvYWRlci50cyJdLCJuYW1lcyI6WyJ0cnlMb2FkIiwicGF0aCIsInJlcXVpcmUiLCJlcnIiLCJjb2RlIiwiTU9EVUxFX05PVF9GT1VORCIsIm1lcmdlQ29uZmlnIiwiYXBwQ29uZmlnIiwicGx1Z2luQ29uZmlnIiwiXyIsIm1lcmdlIiwiaXNWYWxpZCIsInBsdWdpbiIsImlzRnVuY3Rpb24iLCJkZWZhdWx0IiwiaXNFUzYiLCJPYmplY3QiLCJrZXlzIiwiaW5jbHVkZXMiLCJsb2FkUGx1Z2luIiwiY29uZmlnIiwicGx1Z2luQ29uZmlncyIsInBhcmFtcyIsInNhbml0eUNoZWNrIiwicHJlZml4IiwibWFwIiwicGx1Z2luSWQiLCJsb2NhbFBsdWdpbiIsIlBhdGgiLCJyZXNvbHZlIiwiX19kaXJuYW1lIiwicGx1Z2lucyIsInBsdWdpbkRpciIsImV4dGVybmFsRmlsZVBsdWdpbiIsIm1hdGNoIiwiZGlybmFtZSIsInNlbGZfcGF0aCIsImxvZ2dlciIsImVycm9yIiwiY29udGVudCIsIkVycm9yIiwid2FybiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUVBOztBQUNBOzs7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLE9BQVQsQ0FBaUJDLElBQWpCLEVBQW9DO0FBQ2xDLE1BQUk7QUFDRixXQUFPQyxPQUFPLENBQUNELElBQUQsQ0FBZDtBQUNELEdBRkQsQ0FFRSxPQUFPRSxHQUFQLEVBQVk7QUFDWixRQUFJQSxHQUFHLENBQUNDLElBQUosS0FBYUMsMkJBQWpCLEVBQW1DO0FBQ2pDLGFBQU8sSUFBUDtBQUNEOztBQUNELFVBQU1GLEdBQU47QUFDRDtBQUNGOztBQUVELFNBQVNHLFdBQVQsQ0FBcUJDLFNBQXJCLEVBQWdDQyxZQUFoQyxFQUFzRDtBQUNwRCxTQUFPQyxnQkFBRUMsS0FBRixDQUFRSCxTQUFSLEVBQW1CQyxZQUFuQixDQUFQO0FBQ0Q7O0FBRUQsU0FBU0csT0FBVCxD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QSxPQUFPLEVBQUViLFFBQVg7QUFBcUJGLE1BQUFBO0FBQXJCLEtBREYsRUFFRSxrREFGRjs7QUFJQSxXQUFPWixNQUFQO0FBQ0QsR0FuRkksQ0FBUDtBQXFGRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBQYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IENvbmZpZywgSVBsdWdpbiB9IGZyb20gJ0B2ZXJkYWNjaW8vdHlwZXMnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi9sb2dnZXInO1xuaW1wb3J0IHsgTU9EVUxFX05PVF9GT1VORCB9IGZyb20gJy4vY29uc3RhbnRzJztcblxuLyoqXG4gKiBSZXF1aXJlcyBhIG1vZHVsZS5cbiAqIEBwYXJhbSB7Kn0gcGF0aCB0aGUgbW9kdWxlJ3MgcGF0aFxuICogQHJldHVybiB7T2JqZWN0fVxuICovXG5mdW5jdGlvbiB0cnlMb2FkKHBhdGg6IHN0cmluZyk6IGFueSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIHJlcXVpcmUocGF0aCk7XG4gIH0gY2F0Y2ggKGVycikge1xuICAgIGlmIChlcnIuY29kZSA9PT0gTU9EVUxFX05PVF9GT1VORCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHRocm93IGVycjtcbiAgfVxufVxuXG5mdW5jdGlvbiBtZXJnZUNvbmZpZyhhcHBDb25maWcsIHBsdWdpbkNvbmZpZyk6IENvbmZpZyB7XG4gIHJldHVybiBfLm1lcmdlKGFwcENvbmZpZywgcGx1Z2luQ29uZmlnKTtcbn1cblxuZnVuY3Rpb24gaXNWYWxpZChwbHVnaW4pOiBib29sZWFuIHtcbiAgcmV0dXJuIF8uaXNGdW5jdGlvbihwbHVnaW4pIHx8IF8uaXNGdW5jdGlvbihwbHVnaW4uZGVmYXVsdCk7XG59XG5cbmZ1bmN0aW9uIGlzRVM2KHBsdWdpbik6IGJvb2xlYW4ge1xuICByZXR1cm4gT2JqZWN0LmtleXMocGx1Z2luKS5pbmNsdWRlcygnZGVmYXVsdCcpO1xufVxuXG4vLyBleHBvcnQgdHlwZSBQbHVnaW5HZW5lcmljPFIsIFQgZXh0ZW5kcyBJUGx1Z2luPFI+ID0gO1xuXG4vKipcbiAqIExvYWQgYSBwbHVnaW4gZm9sbG93aW5nIHRoZSBydWxlc1xuICogLSBGaXJzdCB0cnkgdG8gbG9hZCBmcm9tIHRoZSBpbnRlcm5hbCBkaXJlY3RvcnkgcGx1Z2lucyAod2hpY2ggd2lsbCBkaXNhcHBlYXIgc29vbiBvciBsYXRlcikuXG4gKiAtIEEgc2Vjb25kIGF0dGVtcHQgZnJvbSB0aGUgZXh0ZXJuYWwgcGx1Z2luIGRpcmVjdG9yeVxuICogLSBBIHRoaXJkIGF0dGVtcHQgZnJvbSBub2RlX21vZHVsZXMsIGluIGNhc2UgdG8gaGF2ZSBtdWx0aXBsZSBtYXRjaCBhcyBmb3IgaW5zdGFuY2UgdmVyZGFjY2lvLWxkYXBcbiAqIGFuZCBzaW5vcGlhLWxkYXAuIEFsbCB2ZXJkYWNjaW8gcHJlZml4IHdpbGwgaGF2ZSBwcmVmZXJlbmNlcy5cbiAqIEBwYXJhbSB7Kn0gY29uZmlnIGEgcmVmZXJlbmNlIG9mIHRoZSBjb25maWd1cmF0aW9uIHNldHRpbmdzXG4gKiBAcGFyYW0geyp9IHBsdWdpbkNvbmZpZ3NcbiAqIEBwYXJhbSB7Kn0gcGFyYW1zIGEgc2V0IG9mIHBhcmFtcyB0byBpbml0aWFsaXplIHRoZSBwbHVnaW5cbiAqIEBwYXJhbSB7Kn0gc2FuaXR5Q2hlY2sgY2FsbGJhY2sgdGhhdCBjaGVjayB0aGUgc2hhcGUgdGhhdCBzaG91bGQgZnVsZmlsbCB0aGUgcGx1Z2luXG4gKiBAcmV0dXJuIHtBcnJheX0gbGlzdCBvZiBwbHVnaW5zXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIGxvYWRQbHVnaW48VCBleHRlbmRzIElQbHVnaW48VD4+KFxuICBjb25maWc6IENvbmZpZyxcbiAgcGx1Z2luQ29uZmlnczogYW55ID0ge30sXG4gIHBhcmFtczogYW55LFxuICBzYW5pdHlDaGVjazogYW55LFxuICBwcmVmaXg6IHN0cmluZyA9ICd2ZXJkYWNjaW8nXG4pOiBhbnlbXSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhwbHVnaW5Db25maWdzKS5tYXAoXG4gICAgKHBsdWdpbklkOiBzdHJpbmcpOiBJUGx1Z2luPFQ+ID0+IHtcbiAgICAgIGxldCBwbHVnaW47XG5cbiAgICAgIGNvbnN0IGxvY2FsUGx1Z2luID0gUGF0aC5yZXNvbHZlKF9fZGlybmFtZSArICcvLi4vcGx1Z2lucycsIHBsdWdpbklkKTtcbiAgICAgIC8vIHRyeSBsb2NhbCBwbHVnaW5zIGZpcnN0XG4gICAgICBwbHVnaW4gPSB0cnlMb2FkKGxvY2FsUGx1Z2luKTtcblxuICAgICAgLy8gdHJ5IHRoZSBleHRlcm5hbCBwbHVnaW4gZGlyZWN0b3J5XG4gICAgICBpZiAocGx1Z2luID09PSBudWxsICYmIGNvbmZpZy5wbHVnaW5zKSB7XG4gICAgICAgIGNvbnN0IHBsdWdpbkRpciA9IGNvbmZpZy5wbHVnaW5zO1xuICAgICAgICBjb25zdCBleHRlcm5hbEZpbGVQbHVnaW4gPSBQYXRoLnJlc29sdmUocGx1Z2luRGlyLCBwbHVnaW5JZCk7XG4gICAgICAgIHBsdWdpbiA9IHRyeUxvYWQoZXh0ZXJuYWxGaWxlUGx1Z2luKTtcblxuICAgICAgICAvLyBucG0gcGFja2FnZVxuICAgICAgICBpZiAocGx1Z2luID09PSBudWxsICYmIHBsdWdpbklkLm1hdGNoKC9eW15cXC5cXC9dLykpIHtcbiAgICAgICAgICBwbHVnaW4gPSB0cnlMb2FkKFBhdGgucmVzb2x2ZShwbHVnaW5EaXIsIGAke3ByZWZpeH0tJHtwbHVnaW5JZH1gKSk7XG4gICAgICAgICAgLy8gY29tcGF0aWJpbGl0eSBmb3Igb2xkIHNpbm9waWEgcGx1Z2luc1xuICAgICAgICAgIGlmICghcGx1Z2luKSB7XG4gICAgICAgICAgICBwbHVnaW4gPSB0cnlMb2FkKFBhdGgucmVzb2x2ZShwbHVnaW5EaXIsIGBzaW5vcGlhLSR7cGx1Z2luSWR9YCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAvLyBucG0gcGFja2FnZVxuICAgICAgaWYgKHBsdWdpbiA9PT0gbnVsbCAmJiBwbHVnaW5JZC5tYXRjaCgvXlteXFwuXFwvXS8pKSB7XG4gICAgICAgIHBsdWdpbiA9IHRyeUxvYWQoYCR7cHJlZml4fS0ke3BsdWdpbklkfWApO1xuICAgICAgICAvLyBjb21wYXRpYmlsaXR5IGZvciBvbGQgc2lub3BpYSBwbHVnaW5zXG4gICAgICAgIGlmICghcGx1Z2luKSB7XG4gICAgICAgICAgcGx1Z2luID0gdHJ5TG9hZChgc2lub3BpYS0ke3BsdWdpbklkfWApO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmIChwbHVnaW4gPT09IG51bGwpIHtcbiAgICAgICAgcGx1Z2luID0gdHJ5TG9hZChwbHVnaW5JZCk7XG4gICAgICB9XG5cbiAgICAgIC8vIHJlbGF0aXZlIHRvIGNvbmZpZyBwYXRoXG4gICAgICBpZiAocGx1Z2luID09PSBudWxsICYmIHBsdWdpbklkLm1hdGNoKC9eXFwuXFwuPygkfFxcLykvKSkge1xuICAgICAgICBwbHVnaW4gPSB0cnlMb2FkKFBhdGgucmVzb2x2ZShQYXRoLmRpcm5hbWUoY29uZmlnLnNlbGZfcGF0aCksIHBsdWdpbklkKSk7XG4gICAgICB9XG5cbiAgICAgIGlmIChwbHVnaW4gPT09IG51bGwpIHtcbiAgICAgICAgbG9nZ2VyLmVycm9yKFxuICAgICAgICAgIHsgY29udGVudDogcGx1Z2luSWQsIHByZWZpeCB9LFxuICAgICAgICAgICdwbHVnaW4gbm90IGZvdW5kLiB0cnkgbnBtIGluc3RhbGwgQHtwcmVmaXh9LUB7Y29udGVudH0nXG4gICAgICAgICk7XG4gICAgICAgIHRocm93IEVycm9yKGBcbiAgICAgICAgJHtwcmVmaXh9LSR7cGx1Z2luSWR9IHBsdWdpbiBub3QgZm91bmQuIHRyeSBcIm5wbSBpbnN0YWxsICR7cHJlZml4fS0ke3BsdWdpbklkfVwiYCk7XG4gICAgICB9XG5cbiAgICAgIGlmICghaXNWYWxpZChwbHVnaW4pKSB7XG4gICAgICAgIGxvZ2dlci5lcnJvcihcbiAgICAgICAgICB7IGNvbnRlbnQ6IHBsdWdpbklkIH0sXG4gICAgICAgICAgJ0B7cHJlZml4fS1Ae2NvbnRlbnR9IHBsdWdpbiBkb2VzIG5vdCBoYXZlIHRoZSByaWdodCBjb2RlIHN0cnVjdHVyZSdcbiAgICAgICAgKTtcbiAgICAgICAgdGhyb3cgRXJyb3IoYFwiJHtwbHVnaW5JZH1cIiBwbHVnaW4gZG9lcyBub3QgaGF2ZSB0aGUgcmlnaHQgY29kZSBzdHJ1Y3R1cmVgKTtcbiAgICAgIH1cblxuICAgICAgLyogZXNsaW50IG5ldy1jYXA6b2ZmICovXG4gICAgICB0cnkge1xuICAgICAgICBwbHVnaW4gPSBpc0VTNihwbHVnaW4pXG4gICAgICAgICAgPyBuZXcgcGx1Z2luLmRlZmF1bHQobWVyZ2VDb25maWcoY29uZmlnLCBwbHVnaW5Db25maWdzW3BsdWdpbklkXSksIHBhcmFtcylcbiAgICAgICAgICA6IHBsdWdpbihwbHVnaW5Db25maWdzW3BsdWdpbklkXSwgcGFyYW1zKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHBsdWdpbiA9IG51bGw7XG4gICAgICAgIGxvZ2dlci5lcnJvcih7IGVycm9yLCBwbHVnaW5JZCB9LCAnZXJyb3IgbG9hZGluZyBhIHBsdWdpbiBAe3BsdWdpbklkfTogQHtlcnJvcn0nKTtcbiAgICAgIH1cbiAgICAgIC8qIGVzbGludCBuZXctY2FwOm9mZiAqL1xuXG4gICAgICBpZiAocGx1Z2luID09PSBudWxsIHx8ICFzYW5pdHlDaGVjayhwbHVnaW4pKSB7XG4gICAgICAgIGxvZ2dlci5lcnJvcihcbiAgICAgICAgICB7IGNvbnRlbnQ6IHBsdWdpbklkLCBwcmVmaXggfSxcbiAgICAgICAgICBcIkB7cHJlZml4fS1Ae2NvbnRlbnR9IGRvZXNuJ3QgbG9vayBsaWtlIGEgdmFsaWQgcGx1Z2luXCJcbiAgICAgICAgKTtcbiAgICAgICAgdGhyb3cgRXJyb3IoYHNhbml0eSBjaGVjayBoYXMgZmFpbGVkLCBcIiR7cGx1Z2luSWR9XCIgaXMgbm90IGEgdmFsaWQgcGx1Z2luYCk7XG4gICAgICB9XG5cbiAgICAgIGxvZ2dlci53YXJuKFxuICAgICAgICB7IGNvbnRlbnQ6IHBsdWdpbklkLCBwcmVmaXggfSxcbiAgICAgICAgJ1BsdWdpbiBzdWNjZXNzZnVsbHkgbG9hZGVkOiBAe3ByZWZpeH0tQHtjb250ZW50fSdcbiAgICAgICk7XG4gICAgICByZXR1cm4gcGx1Z2luO1xuICAgIH1cbiAgKTtcbn1cbiJdfQ==
154
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvcGx1Z2luLWxvYWRlci50cyJdLCJuYW1lcyI6WyJ0cnlMb2FkIiwicGF0aCIsInJlcXVpcmUiLCJlcnIiLCJjb2RlIiwiTU9EVUxFX05PVF9GT1VORCIsIm1lcmdlQ29uZmlnIiwiYXBwQ29uZmlnIiwicGx1Z2luQ29uZmlnIiwiXyIsIm1lcmdlIiwiaXNWYWxpZCIsInBsdWdpbiIsImlzRnVuY3Rpb24iLCJkZWZhdWx0IiwiaXNFUzYiLCJPYmplY3QiLCJrZXlzIiwiaW5jbHVkZXMiLCJsb2FkUGx1Z2luIiwiY29uZmlnIiwicGx1Z2luQ29uZmlncyIsInBhcmFtcyIsInNhbml0eUNoZWNrIiwicHJlZml4IiwibWFwIiwicGx1Z2luSWQiLCJsb2NhbFBsdWdpbiIsIlBhdGgiLCJyZXNvbHZlIiwiX19kaXJuYW1lIiwicGx1Z2lucyIsInBsdWdpbkRpciIsImV4dGVybmFsRmlsZVBsdWdpbiIsIm1hdGNoIiwiZGlybmFtZSIsInNlbGZfcGF0aCIsImxvZ2dlciIsImVycm9yIiwiY29udGVudCIsIkVycm9yIiwid2FybiJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUFBOztBQUNBOztBQUlBOztBQUNBOzs7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVNBLE9BQVQsQ0FBaUJDLElBQWpCLEVBQW9DO0FBQ2xDLE1BQUk7QUFDRixXQUFPQyxPQUFPLENBQUNELElBQUQsQ0FBZDtBQUNELEdBRkQsQ0FFRSxPQUFPRSxHQUFQLEVBQVk7QUFDWixRQUFJQSxHQUFHLENBQUNDLElBQUosS0FBYUMsMkJBQWpCLEVBQW1DO0FBQ2pDLGFBQU8sSUFBUDtBQUNEOztBQUNELFVBQU1GLEdBQU47QUFDRDtBQUNGOztBQUVELFNBQVNHLFdBQVQsQ0FBcUJDLFNBQXJCLEVBQWdDQyxZQUFoQyxFQUFzRDtBQUNwRCxTQUFPQyxnQkFBRUMsS0FBRixDQUFRSCxTQUFSLEVBQW1CQyxZQUFuQixDQUFQO0FBQ0Q7O0FBRUQsU0FBU0csT0FBVCxD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T0ksSUFBUCxDQUFZO0FBQUVGLE1BQUFBLE9BQU8sRUFBRWIsUUFBWDtBQUFxQkYsTUFBQUE7QUFBckIsS0FBWixFQUEyQyxrREFBM0M7O0FBQ0EsV0FBT1osTUFBUDtBQUNELEdBcEVNLENBQVA7QUFxRUQiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgXyBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IFBhdGggZnJvbSAncGF0aCc7XG5cbmltcG9ydCB7IENvbmZpZywgSVBsdWdpbiB9IGZyb20gJ0B2ZXJkYWNjaW8vdHlwZXMnO1xuXG5pbXBvcnQgeyBNT0RVTEVfTk9UX0ZPVU5EIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuaW1wb3J0IHsgbG9nZ2VyIH0gZnJvbSAnLi9sb2dnZXInO1xuXG4vKipcbiAqIFJlcXVpcmVzIGEgbW9kdWxlLlxuICogQHBhcmFtIHsqfSBwYXRoIHRoZSBtb2R1bGUncyBwYXRoXG4gKiBAcmV0dXJuIHtPYmplY3R9XG4gKi9cbmZ1bmN0aW9uIHRyeUxvYWQocGF0aDogc3RyaW5nKTogYW55IHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gcmVxdWlyZShwYXRoKTtcbiAgfSBjYXRjaCAoZXJyKSB7XG4gICAgaWYgKGVyci5jb2RlID09PSBNT0RVTEVfTk9UX0ZPVU5EKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgdGhyb3cgZXJyO1xuICB9XG59XG5cbmZ1bmN0aW9uIG1lcmdlQ29uZmlnKGFwcENvbmZpZywgcGx1Z2luQ29uZmlnKTogQ29uZmlnIHtcbiAgcmV0dXJuIF8ubWVyZ2UoYXBwQ29uZmlnLCBwbHVnaW5Db25maWcpO1xufVxuXG5mdW5jdGlvbiBpc1ZhbGlkKHBsdWdpbik6IGJvb2xlYW4ge1xuICByZXR1cm4gXy5pc0Z1bmN0aW9uKHBsdWdpbikgfHwgXy5pc0Z1bmN0aW9uKHBsdWdpbi5kZWZhdWx0KTtcbn1cblxuZnVuY3Rpb24gaXNFUzYocGx1Z2luKTogYm9vbGVhbiB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhwbHVnaW4pLmluY2x1ZGVzKCdkZWZhdWx0Jyk7XG59XG5cbi8vIGV4cG9ydCB0eXBlIFBsdWdpbkdlbmVyaWM8UiwgVCBleHRlbmRzIElQbHVnaW48Uj4gPSA7XG5cbi8qKlxuICogTG9hZCBhIHBsdWdpbiBmb2xsb3dpbmcgdGhlIHJ1bGVzXG4gKiAtIEZpcnN0IHRyeSB0byBsb2FkIGZyb20gdGhlIGludGVybmFsIGRpcmVjdG9yeSBwbHVnaW5zICh3aGljaCB3aWxsIGRpc2FwcGVhciBzb29uIG9yIGxhdGVyKS5cbiAqIC0gQSBzZWNvbmQgYXR0ZW1wdCBmcm9tIHRoZSBleHRlcm5hbCBwbHVnaW4gZGlyZWN0b3J5XG4gKiAtIEEgdGhpcmQgYXR0ZW1wdCBmcm9tIG5vZGVfbW9kdWxlcywgaW4gY2FzZSB0byBoYXZlIG11bHRpcGxlIG1hdGNoIGFzIGZvciBpbnN0YW5jZSB2ZXJkYWNjaW8tbGRhcFxuICogYW5kIHNpbm9waWEtbGRhcC4gQWxsIHZlcmRhY2NpbyBwcmVmaXggd2lsbCBoYXZlIHByZWZlcmVuY2VzLlxuICogQHBhcmFtIHsqfSBjb25maWcgYSByZWZlcmVuY2Ugb2YgdGhlIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3NcbiAqIEBwYXJhbSB7Kn0gcGx1Z2luQ29uZmlnc1xuICogQHBhcmFtIHsqfSBwYXJhbXMgYSBzZXQgb2YgcGFyYW1zIHRvIGluaXRpYWxpemUgdGhlIHBsdWdpblxuICogQHBhcmFtIHsqfSBzYW5pdHlDaGVjayBjYWxsYmFjayB0aGF0IGNoZWNrIHRoZSBzaGFwZSB0aGF0IHNob3VsZCBmdWxmaWxsIHRoZSBwbHVnaW5cbiAqIEByZXR1cm4ge0FycmF5fSBsaXN0IG9mIHBsdWdpbnNcbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gbG9hZFBsdWdpbjxUIGV4dGVuZHMgSVBsdWdpbjxUPj4oY29uZmlnOiBDb25maWcsIHBsdWdpbkNvbmZpZ3M6IGFueSA9IHt9LCBwYXJhbXM6IGFueSwgc2FuaXR5Q2hlY2s6IGFueSwgcHJlZml4OiBzdHJpbmcgPSAndmVyZGFjY2lvJyk6IGFueVtdIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKHBsdWdpbkNvbmZpZ3MpLm1hcCgocGx1Z2luSWQ6IHN0cmluZyk6IElQbHVnaW48VD4gPT4ge1xuICAgIGxldCBwbHVnaW47XG5cbiAgICBjb25zdCBsb2NhbFBsdWdpbiA9IFBhdGgucmVzb2x2ZShfX2Rpcm5hbWUgKyAnLy4uL3BsdWdpbnMnLCBwbHVnaW5JZCk7XG4gICAgLy8gdHJ5IGxvY2FsIHBsdWdpbnMgZmlyc3RcbiAgICBwbHVnaW4gPSB0cnlMb2FkKGxvY2FsUGx1Z2luKTtcblxuICAgIC8vIHRyeSB0aGUgZXh0ZXJuYWwgcGx1Z2luIGRpcmVjdG9yeVxuICAgIGlmIChwbHVnaW4gPT09IG51bGwgJiYgY29uZmlnLnBsdWdpbnMpIHtcbiAgICAgIGNvbnN0IHBsdWdpbkRpciA9IGNvbmZpZy5wbHVnaW5zO1xuICAgICAgY29uc3QgZXh0ZXJuYWxGaWxlUGx1Z2luID0gUGF0aC5yZXNvbHZlKHBsdWdpbkRpciwgcGx1Z2luSWQpO1xuICAgICAgcGx1Z2luID0gdHJ5TG9hZChleHRlcm5hbEZpbGVQbHVnaW4pO1xuXG4gICAgICAvLyBucG0gcGFja2FnZVxuICAgICAgaWYgKHBsdWdpbiA9PT0gbnVsbCAmJiBwbHVnaW5JZC5tYXRjaCgvXlteXFwuXFwvXS8pKSB7XG4gICAgICAgIHBsdWdpbiA9IHRyeUxvYWQoUGF0aC5yZXNvbHZlKHBsdWdpbkRpciwgYCR7cHJlZml4fS0ke3BsdWdpbklkfWApKTtcbiAgICAgICAgLy8gY29tcGF0aWJpbGl0eSBmb3Igb2xkIHNpbm9waWEgcGx1Z2luc1xuICAgICAgICBpZiAoIXBsdWdpbikge1xuICAgICAgICAgIHBsdWdpbiA9IHRyeUxvYWQoUGF0aC5yZXNvbHZlKHBsdWdpbkRpciwgYHNpbm9waWEtJHtwbHVnaW5JZH1gKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBucG0gcGFja2FnZVxuICAgIGlmIChwbHVnaW4gPT09IG51bGwgJiYgcGx1Z2luSWQubWF0Y2goL15bXlxcLlxcL10vKSkge1xuICAgICAgcGx1Z2luID0gdHJ5TG9hZChgJHtwcmVmaXh9LSR7cGx1Z2luSWR9YCk7XG4gICAgICAvLyBjb21wYXRpYmlsaXR5IGZvciBvbGQgc2lub3BpYSBwbHVnaW5zXG4gICAgICBpZiAoIXBsdWdpbikge1xuICAgICAgICBwbHVnaW4gPSB0cnlMb2FkKGBzaW5vcGlhLSR7cGx1Z2luSWR9YCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHBsdWdpbiA9PT0gbnVsbCkge1xuICAgICAgcGx1Z2luID0gdHJ5TG9hZChwbHVnaW5JZCk7XG4gICAgfVxuXG4gICAgLy8gcmVsYXRpdmUgdG8gY29uZmlnIHBhdGhcbiAgICBpZiAocGx1Z2luID09PSBudWxsICYmIHBsdWdpbklkLm1hdGNoKC9eXFwuXFwuPygkfFxcLykvKSkge1xuICAgICAgcGx1Z2luID0gdHJ5TG9hZChQYXRoLnJlc29sdmUoUGF0aC5kaXJuYW1lKGNvbmZpZy5zZWxmX3BhdGgpLCBwbHVnaW5JZCkpO1xuICAgIH1cblxuICAgIGlmIChwbHVnaW4gPT09IG51bGwpIHtcbiAgICAgIGxvZ2dlci5lcnJvcih7IGNvbnRlbnQ6IHBsdWdpbklkLCBwcmVmaXggfSwgJ3BsdWdpbiBub3QgZm91bmQuIHRyeSBucG0gaW5zdGFsbCBAe3ByZWZpeH0tQHtjb250ZW50fScpO1xuICAgICAgdGhyb3cgRXJyb3IoYFxuICAgICAgICAke3ByZWZpeH0tJHtwbHVnaW5JZH0gcGx1Z2luIG5vdCBmb3VuZC4gdHJ5IFwibnBtIGluc3RhbGwgJHtwcmVmaXh9LSR7cGx1Z2luSWR9XCJgKTtcbiAgICB9XG5cbiAgICBpZiAoIWlzVmFsaWQocGx1Z2luKSkge1xuICAgICAgbG9nZ2VyLmVycm9yKHsgY29udGVudDogcGx1Z2luSWQgfSwgJ0B7cHJlZml4fS1Ae2NvbnRlbnR9IHBsdWdpbiBkb2VzIG5vdCBoYXZlIHRoZSByaWdodCBjb2RlIHN0cnVjdHVyZScpO1xuICAgICAgdGhyb3cgRXJyb3IoYFwiJHtwbHVnaW5JZH1cIiBwbHVnaW4gZG9lcyBub3QgaGF2ZSB0aGUgcmlnaHQgY29kZSBzdHJ1Y3R1cmVgKTtcbiAgICB9XG5cbiAgICAvKiBlc2xpbnQgbmV3LWNhcDpvZmYgKi9cbiAgICB0cnkge1xuICAgICAgcGx1Z2luID0gaXNFUzYocGx1Z2luKSA/IG5ldyBwbHVnaW4uZGVmYXVsdChtZXJnZUNvbmZpZyhjb25maWcsIHBsdWdpbkNvbmZpZ3NbcGx1Z2luSWRdKSwgcGFyYW1zKSA6IHBsdWdpbihwbHVnaW5Db25maWdzW3BsdWdpbklkXSwgcGFyYW1zKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgcGx1Z2luID0gbnVsbDtcbiAgICAgIGxvZ2dlci5lcnJvcih7IGVycm9yLCBwbHVnaW5JZCB9LCAnZXJyb3IgbG9hZGluZyBhIHBsdWdpbiBAe3BsdWdpbklkfTogQHtlcnJvcn0nKTtcbiAgICB9XG4gICAgLyogZXNsaW50IG5ldy1jYXA6b2ZmICovXG5cbiAgICBpZiAocGx1Z2luID09PSBudWxsIHx8ICFzYW5pdHlDaGVjayhwbHVnaW4pKSB7XG4gICAgICBsb2dnZXIuZXJyb3IoeyBjb250ZW50OiBwbHVnaW5JZCwgcHJlZml4IH0sIFwiQHtwcmVmaXh9LUB7Y29udGVudH0gZG9lc24ndCBsb29rIGxpa2UgYSB2YWxpZCBwbHVnaW5cIik7XG4gICAgICB0aHJvdyBFcnJvcihgc2FuaXR5IGNoZWNrIGhhcyBmYWlsZWQsIFwiJHtwbHVnaW5JZH1cIiBpcyBub3QgYSB2YWxpZCBwbHVnaW5gKTtcbiAgICB9XG5cbiAgICBsb2dnZXIud2Fybih7IGNvbnRlbnQ6IHBsdWdpbklkLCBwcmVmaXggfSwgJ1BsdWdpbiBzdWNjZXNzZnVsbHkgbG9hZGVkOiBAe3ByZWZpeH0tQHtjb250ZW50fScpO1xuICAgIHJldHVybiBwbHVnaW47XG4gIH0pO1xufVxuIl19
@@ -9,7 +9,7 @@ var _lunrMutableIndexes = _interopRequireDefault(require("lunr-mutable-indexes")
9
9
 
10
10
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
11
11
 
12
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
12
+ // eslint-disable no-invalid-this
13
13
 
14
14
  /**
15
15
  * Handle the search Indexer.
@@ -21,10 +21,6 @@ class Search {
21
21
  * Constructor.
22
22
  */
23
23
  constructor() {
24
- _defineProperty(this, "index", void 0);
25
-
26
- _defineProperty(this, "storage", void 0);
27
-
28
24
  this.index = (0, _lunrMutableIndexes.default)(function () {
29
25
  // FIXME: there is no types for this library
30
26
 
@@ -142,4 +138,4 @@ class Search {
142
138
  var _default = new Search();
143
139
 
144
140
  exports.default = _default;
145
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvc2VhcmNoLnRzIl0sIm5hbWVzIjpbIlNlYXJjaCIsImNvbnN0cnVjdG9yIiwiaW5kZXgiLCJmaWVsZCIsImJvb3N0IiwicXVlcnkiLCJsb2NhbFN0b3JhZ2UiLCJzdG9yYWdlIiwiaGFzU2NvcGUiLCJzdGFydHNXaXRoIiwicmVwbGFjZSIsInJlc3VsdHMiLCJzdG9yYWdlUGx1Z2luIiwiZ2V0IiwiaXRlbXMiLCJtYXAiLCJwa2ciLCJyZWYiLCJzY29yZSIsInNlYXJjaCIsImZpbHRlciIsImFkZCIsImlkIiwibmFtZSIsImRlc2NyaXB0aW9uIiwidmVyc2lvbiIsImtleXdvcmRzIiwiYXV0aG9yIiwiX25wbVVzZXIiLCJyZW1vdmUiLCJyZWluZGV4IiwiZ2V0TG9jYWxEYXRhYmFzZSIsImVycm9yIiwicGFja2FnZXMiLCJpIiwibGVuZ3RoIiwiY29uZmlndXJlU3RvcmFnZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUVBOzs7Ozs7QUFHQTtBQUNBO0FBQ0E7QUFDQSxNQUFNQSxNQUFOLENBQW1DO0FBRWpDOztBQUdBO0FBQ0Y7QUFDQTtBQUNTQyxFQUFBQSxXQUFXLEdBQUc7QUFBQTs7QUFBQTs7QUFDbkIsU0FBS0MsS0FBTCxHQUFhLGlDQUFZLFlBQWtCO0FBQ3pDOztBQUNBO0FBQ0E7QUFDQSxXQUFLQyxLQUFMLENBQVcsTUFBWCxFQUFtQjtBQUFFQyxRQUFBQSxLQUFLLEVBQUU7QUFBVCxPQUFuQixFQUp5QyxDQUt6Qzs7QUFDQSxXQUFLRCxLQUFMLENBQVcsYUFBWCxFQUEwQjtBQUFFQyxRQUFBQSxLQUFLLEVBQUU7QUFBVCxPQUExQixFQU55QyxDQU96Qzs7QUFDQSxXQUFLRCxLQUFMLENBQVcsUUFBWCxFQUFxQjtBQUFFQyxRQUFBQSxLQUFLLEVBQUU7QUFBVCxPQUFyQixFQVJ5QyxDQVN6Qzs7QUFDQSxXQUFLRCxLQUFMLENBQVcsVUFBWCxFQUF1QjtBQUFFQyxRQUFBQSxLQUFLLEVBQUU7QUFBVCxPQUF2QixFQVZ5QyxD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IGx1bnJNdXRhYmxlIGZyb20gJ2x1bnItbXV0YWJsZS1pbmRleGVzJztcbmltcG9ydCB7IFZlcnNpb24gfSBmcm9tICdAdmVyZGFjY2lvL3R5cGVzJztcbmltcG9ydCB7IElTdG9yYWdlSGFuZGxlciwgSVdlYlNlYXJjaCwgSVN0b3JhZ2UgfSBmcm9tICcuLi8uLi90eXBlcyc7XG4vKipcbiAqIEhhbmRsZSB0aGUgc2VhcmNoIEluZGV4ZXIuXG4gKi9cbmNsYXNzIFNlYXJjaCBpbXBsZW1lbnRzIElXZWJTZWFyY2gge1xuICBwdWJsaWMgaW5kZXg6IGx1bnJNdXRhYmxlLmluZGV4O1xuICAvLyBAdHMtaWdub3JlXG4gIHB1YmxpYyBzdG9yYWdlOiBJU3RvcmFnZUhhbmRsZXI7XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdG9yLlxuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuaW5kZXggPSBsdW5yTXV0YWJsZShmdW5jdGlvbiAoKTogdm9pZCB7XG4gICAgICAvLyBGSVhNRTogdGhlcmUgaXMgbm8gdHlwZXMgZm9yIHRoaXMgbGlicmFyeVxuICAgICAgLyogZXNsaW50IG5vLWludmFsaWQtdGhpczpvZmYgKi9cbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHRoaXMuZmllbGQoJ25hbWUnLCB7IGJvb3N0OiAxMCB9KTtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHRoaXMuZmllbGQoJ2Rlc2NyaXB0aW9uJywgeyBib29zdDogNCB9KTtcbiAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgIHRoaXMuZmllbGQoJ2F1dGhvcicsIHsgYm9vc3Q6IDYgfSk7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICB0aGlzLmZpZWxkKCdrZXl3b3JkcycsIHsgYm9vc3Q6IDcgfSk7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICB0aGlzLmZpZWxkKCd2ZXJzaW9uJyk7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICB0aGlzLmZpZWxkKCdyZWFkbWUnKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQZXJmb3JtcyBhIHF1ZXJ5IHRvIHRoZSBpbmRleGVyLlxuICAgKiBJZiB0aGUga2V5d29yZCBpcyBhICogaXQgcmV0dXJucyBhbGwgbG9jYWwgZWxlbWVudHNcbiAgICogb3RoZXJ3aXNlIHBlcmZvcm1zIGEgc2VhcmNoXG4gICAqIEBwYXJhbSB7Kn0gcSB0aGUga2V5d29yZFxuICAgKiBAcmV0dXJuIHtBcnJheX0gbGlzdCBvZiByZXN1bHRzLlxuICAgKi9cbiAgcHVibGljIHF1ZXJ5KHF1ZXJ5OiBzdHJpbmcpOiBhbnlbXSB7XG4gICAgY29uc3QgbG9jYWxTdG9yYWdlID0gdGhpcy5zdG9yYWdlLmxvY2FsU3RvcmFnZSBhcyBJU3RvcmFnZTtcblxuICAgIGNvbnN0IGhhc1Njb3BlID0gcXVlcnkuc3RhcnRzV2l0aCgnQCcpO1xuICAgIC8vIEZJWE1FOiBsdW5yLW11dGFibGUtaW5kZXhlcyBpZ25vcmVkICdAJyBkdXJpbmcgaW5kZXhpbmdcbiAgICBpZiAoaGFzU2NvcGUpIHtcbiAgICAgIHF1ZXJ5ID0gcXVlcnkucmVwbGFjZSgnQCcsICcnKTtcbiAgICB9XG5cbiAgICBjb25zdCByZXN1bHRzID0gcXVlcnkgPT09ICcqJ1xuICAgICAgPyBsb2NhbFN0b3JhZ2Uuc3RvcmFnZVBsdWdpbi5nZXQoKGl0ZW1zKTogYW55ID0+IHtcbiAgICAgICAgICBpdGVtcy5tYXAoZnVuY3Rpb24gKHBrZyk6IGFueSB7XG4gICAgICAgICAgICByZXR1cm4geyByZWY6IHBrZywgc2NvcmU6IDEgfTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSlcbiAgICAgIDogdGhpcy5pbmRleC5zZWFyY2goYCoke3F1ZXJ5fSpgKTtcblxuICAgIHJldHVybiBoYXNTY29wZVxuICAgICAgPyByZXN1bHRzLmZpbHRlcigoeyByZWYgfSkgPT4gcmVmLnN0YXJ0c1dpdGgoJ0AnKSlcbiAgICAgIDogcmVzdWx0cztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBuZXcgZWxlbWVudCB0byBpbmRleFxuICAgKiBAcGFyYW0geyp9IHBrZyB0aGUgcGFja2FnZVxuICAgKi9cbiAgcHVibGljIGFkZChwa2c6IFZlcnNpb24pOiB2b2lkIHtcbiAgICB0aGlzLmluZGV4LmFkZCh7XG4gICAgICBpZDogcGtnLm5hbWUsXG4gICAgICBuYW1lOiBwa2cubmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBwa2cuZGVzY3JpcHRpb24sXG4gICAgICB2ZXJzaW9uOiBgdiR7cGtnLnZlcnNpb259YCxcbiAgICAgIGtleXdvcmRzOiBwa2cua2V5d29yZHMsXG4gICAgICBhdXRob3I6IHBrZy5fbnBtVXNlciA/IHBrZy5fbnBtVXNlci5uYW1lIDogJz8/PydcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgYW4gZWxlbWVudCBmcm9tIHRoZSBpbmRleC5cbiAgICogQHBhcmFtIHsqfSBuYW1lIHRoZSBpZCBlbGVtZW50XG4gICAqL1xuICBwdWJsaWMgcmVtb3ZlKG5hbWU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuaW5kZXgucmVtb3ZlKHsgaWQ6IG5hbWUgfSk7XG4gIH1cblxuICAvKipcbiAgICogRm9yY2UgYSByZS1pbmRleC5cbiAgICovXG4gIHB1YmxpYyByZWluZGV4KCk6IHZvaWQge1xuICAgIHRoaXMuc3RvcmFnZS5nZXRMb2NhbERhdGFiYXNlKChlcnJvciwgcGFja2FnZXMpOiB2b2lkID0+IHtcbiAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAvLyB0aGF0IGZ1bmN0aW9uIHNob3VsZG4ndCBwcm9kdWNlIGFueVxuICAgICAgICB0aHJvdyBlcnJvcjtcbiAgICAgIH1cbiAgICAgIGxldCBpID0gcGFja2FnZXMubGVuZ3RoO1xuICAgICAgd2hpbGUgKGktLSkge1xuICAgICAgICB0aGlzLmFkZChwYWNrYWdlc1tpXSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogU2V0IHVwIHRoZSB7U3RvcmFnZX1cbiAgICogQHBhcmFtIHsqfSBzdG9yYWdlIEFuIHN0b3JhZ2UgcmVmZXJlbmNlLlxuICAgKi9cbiAgcHVibGljIGNvbmZpZ3VyZVN0b3JhZ2Uoc3RvcmFnZTogSVN0b3JhZ2VIYW5kbGVyKTogdm9pZCB7XG4gICAgdGhpcy5zdG9yYWdlID0gc3RvcmFnZTtcbiAgICB0aGlzLnJlaW5kZXgoKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBuZXcgU2VhcmNoKCk7XG4iXX0=
141
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvc2VhcmNoLnRzIl0sIm5hbWVzIjpbIlNlYXJjaCIsImNvbnN0cnVjdG9yIiwiaW5kZXgiLCJmaWVsZCIsImJvb3N0IiwicXVlcnkiLCJsb2NhbFN0b3JhZ2UiLCJzdG9yYWdlIiwiaGFzU2NvcGUiLCJzdGFydHNXaXRoIiwicmVwbGFjZSIsInJlc3VsdHMiLCJzdG9yYWdlUGx1Z2luIiwiZ2V0IiwiaXRlbXMiLCJtYXAiLCJwa2ciLCJyZWYiLCJzY29yZSIsInNlYXJjaCIsImZpbHRlciIsImFkZCIsImlkIiwibmFtZSIsImRlc2NyaXB0aW9uIiwidmVyc2lvbiIsImtleXdvcmRzIiwiYXV0aG9yIiwiX25wbVVzZXIiLCJyZW1vdmUiLCJyZWluZGV4IiwiZ2V0TG9jYWxEYXRhYmFzZSIsImVycm9yIiwicGFja2FnZXMiLCJpIiwibGVuZ3RoIiwiY29uZmlndXJlU3RvcmFnZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7OztBQUNBOzs7O0FBREE7O0FBT0E7QUFDQTtBQUNBO0FBQ0EsTUFBTUEsTUFBTixDQUFtQztBQUVqQzs7QUFHQTtBQUNGO0FBQ0E7QUFDU0MsRUFBQUEsV0FBVyxHQUFHO0FBQ25CLFNBQUtDLEtBQUwsR0FBYSxpQ0FBWSxZQUFrQjtBQUN6Qzs7QUFDQTtBQUNBO0FBQ0EsV0FBS0MsS0FBTCxDQUFXLE1BQVgsRUFBbUI7QUFBRUMsUUFBQUEsS0FBSyxFQUFFO0FBQVQsT0FBbkIsRUFKeUMsQ0FLekM7O0FBQ0EsV0FBS0QsS0FBTCxDQUFXLGFBQVgsRUFBMEI7QUFBRUMsUUFBQUEsS0FBSyxFQUFFO0FBQVQsT0FBMUIsRUFOeUMsQ0FPekM7O0FBQ0EsV0FBS0QsS0FBTCxDQUFXLFFBQVgsRUFBcUI7QUFBRUMsUUFBQUEsS0FBSyxFQUFFO0FBQVQsT0FBckIsRUFSeUMsQ0FTekM7O0FBQ0EsV0FBS0QsS0FBTCxDQUFXLFVBQVgsRUFBdUI7QUFBRUMsUUFBQUEsS0FBSyxFQUFFO0FBQVQsT0FBdkIsRUFWeUMsQ0FXekM7O0FB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YWJsZSBmcm9tICdsdW5yLW11dGFibGUtaW5kZXhlcyc7XG5cbmltcG9ydCB7IFZlcnNpb24gfSBmcm9tICdAdmVyZGFjY2lvL3R5cGVzJztcblxuaW1wb3J0IHsgSVN0b3JhZ2UsIElTdG9yYWdlSGFuZGxlciwgSVdlYlNlYXJjaCB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuLyoqXG4gKiBIYW5kbGUgdGhlIHNlYXJjaCBJbmRleGVyLlxuICovXG5jbGFzcyBTZWFyY2ggaW1wbGVtZW50cyBJV2ViU2VhcmNoIHtcbiAgcHVibGljIGluZGV4OiBsdW5yTXV0YWJsZS5pbmRleDtcbiAgLy8gQHRzLWlnbm9yZVxuICBwdWJsaWMgc3RvcmFnZTogSVN0b3JhZ2VIYW5kbGVyO1xuXG4gIC8qKlxuICAgKiBDb25zdHJ1Y3Rvci5cbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmluZGV4ID0gbHVuck11dGFibGUoZnVuY3Rpb24gKCk6IHZvaWQge1xuICAgICAgLy8gRklYTUU6IHRoZXJlIGlzIG5vIHR5cGVzIGZvciB0aGlzIGxpYnJhcnlcbiAgICAgIC8qIGVzbGludCBuby1pbnZhbGlkLXRoaXM6b2ZmICovXG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICB0aGlzLmZpZWxkKCduYW1lJywgeyBib29zdDogMTAgfSk7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICB0aGlzLmZpZWxkKCdkZXNjcmlwdGlvbicsIHsgYm9vc3Q6IDQgfSk7XG4gICAgICAvLyBAdHMtaWdub3JlXG4gICAgICB0aGlzLmZpZWxkKCdhdXRob3InLCB7IGJvb3N0OiA2IH0pO1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgdGhpcy5maWVsZCgna2V5d29yZHMnLCB7IGJvb3N0OiA3IH0pO1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgdGhpcy5maWVsZCgndmVyc2lvbicpO1xuICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgdGhpcy5maWVsZCgncmVhZG1lJyk7XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUGVyZm9ybXMgYSBxdWVyeSB0byB0aGUgaW5kZXhlci5cbiAgICogSWYgdGhlIGtleXdvcmQgaXMgYSAqIGl0IHJldHVybnMgYWxsIGxvY2FsIGVsZW1lbnRzXG4gICAqIG90aGVyd2lzZSBwZXJmb3JtcyBhIHNlYXJjaFxuICAgKiBAcGFyYW0geyp9IHEgdGhlIGtleXdvcmRcbiAgICogQHJldHVybiB7QXJyYXl9IGxpc3Qgb2YgcmVzdWx0cy5cbiAgICovXG4gIHB1YmxpYyBxdWVyeShxdWVyeTogc3RyaW5nKTogYW55W10ge1xuICAgIGNvbnN0IGxvY2FsU3RvcmFnZSA9IHRoaXMuc3RvcmFnZS5sb2NhbFN0b3JhZ2UgYXMgSVN0b3JhZ2U7XG5cbiAgICBjb25zdCBoYXNTY29wZSA9IHF1ZXJ5LnN0YXJ0c1dpdGgoJ0AnKTtcbiAgICAvLyBGSVhNRTogbHVuci1tdXRhYmxlLWluZGV4ZXMgaWdub3JlZCAnQCcgZHVyaW5nIGluZGV4aW5nXG4gICAgaWYgKGhhc1Njb3BlKSB7XG4gICAgICBxdWVyeSA9IHF1ZXJ5LnJlcGxhY2UoJ0AnLCAnJyk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVzdWx0cyA9XG4gICAgICBxdWVyeSA9PT0gJyonXG4gICAgICAgID8gbG9jYWxTdG9yYWdlLnN0b3JhZ2VQbHVnaW4uZ2V0KChpdGVtcyk6IGFueSA9PiB7XG4gICAgICAgICAgICBpdGVtcy5tYXAoZnVuY3Rpb24gKHBrZyk6IGFueSB7XG4gICAgICAgICAgICAgIHJldHVybiB7IHJlZjogcGtnLCBzY29yZTogMSB9O1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSlcbiAgICAgICAgOiB0aGlzLmluZGV4LnNlYXJjaChgKiR7cXVlcnl9KmApO1xuXG4gICAgcmV0dXJuIGhhc1Njb3BlID8gcmVzdWx0cy5maWx0ZXIoKHsgcmVmIH0pID0+IHJlZi5zdGFydHNXaXRoKCdAJykpIDogcmVzdWx0cztcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGQgYSBuZXcgZWxlbWVudCB0byBpbmRleFxuICAgKiBAcGFyYW0geyp9IHBrZyB0aGUgcGFja2FnZVxuICAgKi9cbiAgcHVibGljIGFkZChwa2c6IFZlcnNpb24pOiB2b2lkIHtcbiAgICB0aGlzLmluZGV4LmFkZCh7XG4gICAgICBpZDogcGtnLm5hbWUsXG4gICAgICBuYW1lOiBwa2cubmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBwa2cuZGVzY3JpcHRpb24sXG4gICAgICB2ZXJzaW9uOiBgdiR7cGtnLnZlcnNpb259YCxcbiAgICAgIGtleXdvcmRzOiBwa2cua2V5d29yZHMsXG4gICAgICBhdXRob3I6IHBrZy5fbnBtVXNlciA/IHBrZy5fbnBtVXNlci5uYW1lIDogJz8/PycsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGFuIGVsZW1lbnQgZnJvbSB0aGUgaW5kZXguXG4gICAqIEBwYXJhbSB7Kn0gbmFtZSB0aGUgaWQgZWxlbWVudFxuICAgKi9cbiAgcHVibGljIHJlbW92ZShuYW1lOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmluZGV4LnJlbW92ZSh7IGlkOiBuYW1lIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEZvcmNlIGEgcmUtaW5kZXguXG4gICAqL1xuICBwdWJsaWMgcmVpbmRleCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3JhZ2UuZ2V0TG9jYWxEYXRhYmFzZSgoZXJyb3IsIHBhY2thZ2VzKTogdm9pZCA9PiB7XG4gICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgLy8gdGhhdCBmdW5jdGlvbiBzaG91bGRuJ3QgcHJvZHVjZSBhbnlcbiAgICAgICAgdGhyb3cgZXJyb3I7XG4gICAgICB9XG4gICAgICBsZXQgaSA9IHBhY2thZ2VzLmxlbmd0aDtcbiAgICAgIHdoaWxlIChpLS0pIHtcbiAgICAgICAgdGhpcy5hZGQocGFja2FnZXNbaV0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB1cCB0aGUge1N0b3JhZ2V9XG4gICAqIEBwYXJhbSB7Kn0gc3RvcmFnZSBBbiBzdG9yYWdlIHJlZmVyZW5jZS5cbiAgICovXG4gIHB1YmxpYyBjb25maWd1cmVTdG9yYWdlKHN0b3JhZ2U6IElTdG9yYWdlSGFuZGxlcik6IHZvaWQge1xuICAgIHRoaXMuc3RvcmFnZSA9IHN0b3JhZ2U7XG4gICAgdGhpcy5yZWluZGV4KCk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgbmV3IFNlYXJjaCgpO1xuIl19
@@ -22,11 +22,11 @@ var _lodash = _interopRequireDefault(require("lodash"));
22
22
 
23
23
  var _cryptoUtils = require("../lib/crypto-utils");
24
24
 
25
- var _utils = require("./utils");
25
+ var _constants = require("./constants");
26
26
 
27
27
  var _search = _interopRequireDefault(require("./search"));
28
28
 
29
- var _constants = require("./constants");
29
+ var _utils = require("./utils");
30
30
 
31
31
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
32
32
 
@@ -267,4 +267,4 @@ function isPublishablePackage(pkg) {
267
267
  const keys = Object.keys(pkg);
268
268
  return _lodash.default.includes(keys, 'versions');
269
269
  }
270
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvc3RvcmFnZS11dGlscy50cyJdLCJuYW1lcyI6WyJnZW5lcmF0ZVBhY2thZ2VUZW1wbGF0ZSIsIm5hbWUiLCJ2ZXJzaW9ucyIsInRpbWUiLCJVU0VSUyIsIkRJU1RfVEFHUyIsIl91cGxpbmtzIiwiX2Rpc3RmaWxlcyIsIl9hdHRhY2htZW50cyIsIl9yZXYiLCJub3JtYWxpemVQYWNrYWdlIiwicGtnIiwicGtnUHJvcGVydGllcyIsImZvckVhY2giLCJrZXkiLCJwa2dQcm9wIiwiXyIsImlzTmlsIiwiaXNTdHJpbmciLCJTVE9SQUdFIiwiREVGQVVMVF9SRVZJU0lPTiIsIl9pZCIsImdlbmVyYXRlUmV2aXNpb24iLCJyZXYiLCJzcGxpdCIsImdldExhdGVzdFJlYWRtZSIsImRpc3RUYWdzIiwibGF0ZXN0VmVyc2lvbiIsInJlYWRtZSIsInRyaW0iLCJyZWFkbWVEaXN0VGFnc1ByaW9yaXR5IiwibWFwIiwidGFnIiwidmVyc2lvbiIsImNsZWFuVXBSZWFkbWUiLCJub3JtYWxpemVDb250cmlidXRvcnMiLCJjb250cmlidXRvcnMiLCJpc0FycmF5IiwiV0hJVEVMSVNUIiwiY2xlYW5VcExpbmtzUmVmIiwia2VlcFVwTGlua0RhdGEiLCJyZXN1bHQiLCJwcm9wZXJ0eVRvS2VlcCIsInB1c2giLCJpIiwiaW5kZXhPZiIsImNoZWNrUGFja2FnZUxvY2FsIiwibG9jYWxTdG9yYWdlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJnZXRQYWNrYWdlTWV0YWRhdGEiLCJlcnIiLCJyZXN1bHRzIiwic3RhdHVzIiwiSFRUUF9TVEFUVVMiLCJOT1RfRk9VTkQiLCJFcnJvckNvZGUiLCJnZXRDb25mbGljdCIsIkFQSV9FUlJPUiIsIlBBQ0tBR0VfRVhJU1QiLCJwdWJsaXNoUGFja2FnZSIsIm1ldGFkYXRhIiwiYWRkUGFja2FnZSIsImxhdGVzdCIsImlzTnVsbCIsImlzVW5kZWZpbmVkIiwiU2VhcmNoIiwiYWRkIiwiY2hlY2tQYWNrYWdlUmVtb3RlIiwiaXNBbGxvd1B1Ymxpc2hPZmZsaW5lIiwic3luY01ldGFkYXRhIiwicGFja2FnZUpzb25Mb2NhbCIsInVwTGlua3NFcnJvcnMiLCJlcnJvckl0ZW0iLCJsZW5ndGgiLCJnZXRTZXJ2aWNlVW5hdmFpbGFibGUiLCJVUExJTktfT0ZGTElORV9QVUJMSVNIIiwibWVyZ2VVcGxpbmtUaW1lSW50b0xvY2FsIiwibG9jYWxNZXRhZGF0YSIsInJlbW90ZU1ldGFkYXRhIiwiT2JqZWN0IiwiYXNzaWduIiwicHJlcGFyZVNlYXJjaFBhY2thZ2UiLCJkYXRhIiwibGlzdFZlcnNpb25zIiwia2V5cyIsInBvcCIsImRlc2NyaXB0aW9uIiwibWFpbnRhaW5lcnMiLCJhdXRob3IiLCJmaWx0ZXIiLCJCb29sZWFuIiwicmVwb3NpdG9yeSIsInJlYWRtZUZpbGVuYW1lIiwiaG9tZXBhZ2UiLCJrZXl3b3JkcyIsImJ1Z3MiLCJsaWNlbnNlIiwibW9kaWZpZWQiLCJpc1B1Ymxpc2hhYmxlUGFja2FnZSIsImluY2x1ZGVzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUVBOztBQUVBOztBQUNBOztBQUVBOzs7O0FBRU8sU0FBU0EsdUJBQVQsQ0FBaUNDLElBQWpDLEVBQXdEO0FBQzdELFNBQU87QUFDTDtBQUNBQSxJQUFBQSxJQUZLO0FBR0xDLElBQUFBLFFBQVEsRUFBRSxFQUhMO0FBSUxDLElBQUFBLElBQUksRUFBRSxFQUpEO0FBS0wsS0FBQ0MsZ0JBQUQsR0FBUyxFQUxKO0FBTUwsS0FBQ0Msb0JBQUQsR0FBYSxFQU5SO0FBT0xDLElBQUFBLFFBQVEsRUFBRSxFQVBMO0FBUUxDLElBQUFBLFVBQVUsRUFBRSxFQVJQO0FBU0xDLElBQUFBLFlBQVksRUFBRSxFQVRUO0FBVUxDLElBQUFBLElBQUksRUFBRTtBQVZELEdBQVA7QUFZRDtBQUVEO0FBQ0E7QUFDQTtBQUNBOzs7QUFDTyxTQUFTQyxnQkFBVCxDQUEwQkMsR0FBMUIsRUFBaUQ7QUFDdEQsUUFBTUMsYUFBYSxHQUFHLENB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eEQsT0FBTyxDQUFDeUQsTUFBVCxFQUFpQkMsTUFBakIsQ0FBd0JDLE9BQXhCLENBSnJCO0FBS2ZGLE1BQUFBLE1BQU0sRUFBRXpELE9BQU8sQ0FBQ3lELE1BTEQ7QUFNZkcsTUFBQUEsVUFBVSxFQUFFNUQsT0FBTyxDQUFDNEQsVUFOTDtBQU9mQyxNQUFBQSxjQUFjLEVBQUU3RCxPQUFPLENBQUM2RCxjQUFSLElBQTBCLEVBUDNCO0FBUWZDLE1BQUFBLFFBQVEsRUFBRTlELE9BQU8sQ0FBQzhELFFBUkg7QUFTZkMsTUFBQUEsUUFBUSxFQUFFL0QsT0FBTyxDQUFDK0QsUUFUSDtBQVVmQyxNQUFBQSxJQUFJLEVBQUVoRSxPQUFPLENBQUNnRSxJQVZDO0FBV2ZDLE1BQUFBLE9BQU8sRUFBRWpFLE9BQU8sQ0FBQ2lFLE9BWEY7QUFZZi9GLE1BQUFBLElBQUksRUFBRTtBQUNKZ0csUUFBQUEsUUFBUSxFQUFFaEc7QUFETixPQVpTO0FBZWZELE1BQUFBO0FBZmUsS0FBakI7QUFrQkEsV0FBT1MsR0FBUDtBQUNEO0FBQ0Y7QUFFRDtBQUNBO0FBQ0E7QUFDQTs7O0FBQ08sU0FBU3lGLG9CQUFULENBQThCekYsR0FBOUIsRUFBcUQ7QUFDMUQsUUFBTTJFLElBQWMsR0FBR0wsTUFBTSxDQUFDSyxJQUFQLENBQVkzRSxHQUFaLENBQXZCO0FBRUEsU0FBT0ssZ0JBQUVxRixRQUFGLENBQVdmLElBQVgsRUFBaUIsVUFBakIsQ0FBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFBhY2thZ2UsIFZlcnNpb24sIEF1dGhvciB9IGZyb20gJ0B2ZXJkYWNjaW8vdHlwZXMnO1xuaW1wb3J0IHsgZ2VuZXJhdGVSYW5kb21IZXhTdHJpbmcgfSBmcm9tICcuLi9saWIvY3J5cHRvLXV0aWxzJztcbmltcG9ydCB7IElTdG9yYWdlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgRXJyb3JDb2RlLCBpc09iamVjdCwgbm9ybWFsaXplRGlzdFRhZ3MsIHNlbXZlclNvcnQgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCBTZWFyY2ggZnJvbSAnLi9zZWFyY2gnO1xuXG5pbXBvcnQgeyBBUElfRVJST1IsIEhUVFBfU1RBVFVTLCBESVNUX1RBR1MsIFVTRVJTLCBTVE9SQUdFIH0gZnJvbSAnLi9jb25zdGFudHMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVQYWNrYWdlVGVtcGxhdGUobmFtZTogc3RyaW5nKTogUGFja2FnZSB7XG4gIHJldHVybiB7XG4gICAgLy8gc3RhbmRhcmQgdGhpbmdzXG4gICAgbmFtZSxcbiAgICB2ZXJzaW9uczoge30sXG4gICAgdGltZToge30sXG4gICAgW1VTRVJTXToge30sXG4gICAgW0RJU1RfVEFHU106IHt9LFxuICAgIF91cGxpbmtzOiB7fSxcbiAgICBfZGlzdGZpbGVzOiB7fSxcbiAgICBfYXR0YWNobWVudHM6IHt9LFxuICAgIF9yZXY6ICcnXG4gIH07XG59XG5cbi8qKlxuICogTm9ybWFsaXplIHBhY2thZ2UgcHJvcGVydGllcywgdGFncywgcmV2aXNpb24gaWQuXG4gKiBAcGFyYW0ge09iamVjdH0gcGtnIHBhY2thZ2UgcmVmZXJlbmNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplUGFja2FnZShwa2c6IFBhY2thZ2UpOiBQYWNrYWdlIHtcbiAgY29uc3QgcGtnUHJvcGVydGllcyA9IFsndmVyc2lvbnMnLCAnZGlzdC10YWdzJywgJ19kaXN0ZmlsZXMnLCAnX2F0dGFjaG1lbnRzJywgJ191cGxpbmtzJywgJ3RpbWUnXTtcblxuICBwa2dQcm9wZXJ0aWVzLmZvckVhY2goKGtleSk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IHBrZ1Byb3AgPSBwa2dba2V5XTtcblxuICAgIGlmIChfLmlzTmlsKHBrZ1Byb3ApIHx8IGlzT2JqZWN0KHBrZ1Byb3ApID09PSBmYWxzZSkge1xuICAgICAgcGtnW2tleV0gPSB7fTtcbiAgICB9XG4gIH0pO1xuXG4gIGlmIChfLmlzU3RyaW5nKHBrZy5fcmV2KSA9PT0gZmFsc2UpIHtcbiAgICBwa2cuX3JldiA9IFNUT1JBR0UuREVGQVVMVF9SRVZJU0lPTjtcbiAgfVxuXG4gIGlmIChfLmlzU3RyaW5nKHBrZy5faWQpID09PSBmYWxzZSkge1xuICAgIHBrZy5faWQgPSBwa2cubmFtZTtcbiAgfVxuXG4gIC8vIG5vcm1hbGl6ZSBkaXN0LXRhZ3NcbiAgbm9ybWFsaXplRGlzdFRhZ3MocGtnKTtcblxuICByZXR1cm4gcGtnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVSZXZpc2lvbihyZXY6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IF9yZXYgPSByZXYuc3BsaXQoJy0nKTtcblxuICByZXR1cm4gKCtfcmV2WzBdIHx8IDApICsgMSArICctJyArIGdlbmVyYXRlUmFuZG9tSGV4U3RyaW5nKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMYXRlc3RSZWFkbWUocGtnOiBQYWNrYWdlKTogc3RyaW5nIHtcbiAgY29uc3QgdmVyc2lvbnMgPSBwa2dbJ3ZlcnNpb25zJ10gfHwge307XG4gIGNvbnN0IGRpc3RUYWdzID0gcGtnW0RJU1RfVEFHU10gfHwge307XG4gIC8vIEZJWE1FOiBoZXJlIGlzIGEgYml0IHRyaWNreSBhZGQgdGhlIHR5cGVzXG4gIGNvbnN0IGxhdGVzdFZlcnNpb246IFZlcnNpb24gfCBhbnkgPSBkaXN0VGFnc1snbGF0ZXN0J10gPyB2ZXJzaW9uc1tkaXN0VGFnc1snbGF0ZXN0J11dIHx8IHt9IDoge307XG4gIGxldCByZWFkbWUgPSBfLnRyaW0ocGtnLnJlYWRtZSB8fCBsYXRlc3RWZXJzaW9uLnJlYWRtZSB8fCAnJyk7XG4gIGlmIChyZWFkbWUpIHtcbiAgICByZXR1cm4gcmVhZG1lO1xuICB9XG5cbiAgLy8gSW4gY2FzZSBvZiBlbXB0eSByZWFkbWUgLSB0cnlpbmcgdG8gZ2V0IEFOWSByZWFkbWUgaW4gdGhlIGZvbGxvd2luZyBvcmRlcjogJ25leHQnLCdiZXRhJywnYWxwaGEnLCd0ZXN0JywnZGV2JywnY2FuYXJ5J1xuICBjb25zdCByZWFkbWVEaXN0VGFnc1ByaW9yaXR5ID0gWyduZXh0JywgJ2JldGEnLCAnYWxwaGEnLCAndGVzdCcsICdkZXYnLCAnY2FuYXJ5J107XG4gIHJlYWRtZURpc3RUYWdzUHJpb3JpdHkubWFwKGZ1bmN0aW9uICh0YWcpOiBzdHJpbmcgfCB2b2lkIHtcbiAgICBpZiAocmVhZG1lKSB7XG4gICAgICByZXR1cm4gcmVhZG1lO1xuICAgIH1cbiAgICBjb25zdCB2ZXJzaW9uOiBWZXJzaW9uIHwgYW55ID0gZGlzdFRhZ3NbdGFnXSA/IHZlcnNpb25zW2Rpc3RUYWdzW3RhZ11dIHx8IHt9IDoge307XG4gICAgcmVhZG1lID0gXy50cmltKHZlcnNpb24ucmVhZG1lIHx8IHJlYWRtZSk7XG4gIH0pO1xuICByZXR1cm4gcmVhZG1lO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xlYW5VcFJlYWRtZSh2ZXJzaW9uOiBWZXJzaW9uKTogVmVyc2lvbiB7XG4gIGlmIChfLmlzTmlsKHZlcnNpb24pID09PSBmYWxzZSkge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBkZWxldGUgdmVyc2lvbi5yZWFkbWU7XG4gIH1cblxuICByZXR1cm4gdmVyc2lvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUNvbnRyaWJ1dG9ycyhjb250cmlidXRvcnM6IEF1dGhvcltdKTogQXV0aG9yW10ge1xuICBpZiAoXy5pc05pbChjb250cmlidXRvcnMpKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9IGVsc2UgaWYgKGNvbnRyaWJ1dG9ycyAmJiBfLmlzQXJyYXkoY29udHJpYnV0b3JzKSA9PT0gZmFsc2UpIHtcbiAgICAvLyBGSVhNRTogdGhpcyBicmFuY2ggaXMgY2xlYXJseSBubyBhbiBhcnJheSwgc3RpbGwgdHNjIGNvbXBsYWluc1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICByZXR1cm4gW2NvbnRyaWJ1dG9yc107XG4gIH0gZWxzZSBpZiAoXy5pc1N0cmluZyhjb250cmlidXRvcnMpKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogY29udHJpYnV0b3JzXG4gICAgICB9XG4gICAgXTtcbiAgfVxuXG4gIHJldHVybiBjb250cmlidXRvcnM7XG59XG5cbmV4cG9ydCBjb25zdCBXSElURUxJU1QgPSBbXG4gICdfcmV2JyxcbiAgJ25hbWUnLFxuICAndmVyc2lvbnMnLFxuICAnZGlzdC10YWdzJyxcbiAgJ3JlYWRtZScsXG4gICd0aW1lJyxcbiAgJ19pZCcsXG4gICd1c2Vycydcbl07XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhblVwTGlua3NSZWYoa2VlcFVwTGlua0RhdGE6IGJvb2xlYW4sIHJlc3VsdDogUGFja2FnZSk6IFBhY2thZ2Uge1xuICBjb25zdCBwcm9wZXJ0eVRvS2VlcCA9IFsuLi5XSElURUxJU1RdO1xuICBpZiAoa2VlcFVwTGlua0RhdGEgPT09IHRydWUpIHtcbiAgICBwcm9wZXJ0eVRvS2VlcC5wdXNoKCdfdXBsaW5rcycpO1xuICB9XG5cbiAgZm9yIChjb25zdCBpIGluIHJlc3VsdCkge1xuICAgIGlmIChwcm9wZXJ0eVRvS2VlcC5pbmRleE9mKGkpID09PSAtMSkge1xuICAgICAgLy8gUmVtb3ZlIHNlY3Rpb25zIGxpa2UgJ191cGxpbmtzJyBmcm9tIHJlc3BvbnNlXG4gICAgICBkZWxldGUgcmVzdWx0W2ldO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiByZXN1bHQ7XG59XG5cbi8qKlxuICogQ2hlY2sgd2hldGhlciBhIHBhY2thZ2UgaXQgaXMgYWxyZWFkeSBhIGxvY2FsIHBhY2thZ2VcbiAqIEBwYXJhbSB7Kn0gbmFtZVxuICogQHBhcmFtIHsqfSBsb2NhbFN0b3JhZ2VcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrUGFja2FnZUxvY2FsKG5hbWU6IHN0cmluZywgbG9jYWxTdG9yYWdlOiBJU3RvcmFnZSk6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCk6IHZvaWQgPT4ge1xuICAgIGxvY2FsU3RvcmFnZS5nZXRQYWNrYWdlTWV0YWRhdGEobmFtZSwgKGVyciwgcmVzdWx0cyk6IHZvaWQgPT4ge1xuICAgICAgaWYgKCFfLmlzTmlsKGVycikgJiYgZXJyLnN0YXR1cyAhPT0gSFRUUF9TVEFUVVMuTk9UX0ZPVU5EKSB7XG4gICAgICAgIHJldHVybiByZWplY3QoZXJyKTtcbiAgICAgIH1cbiAgICAgIGlmIChyZXN1bHRzKSB7XG4gICAgICAgIHJldHVybiByZWplY3QoRXJyb3JDb2RlLmdldENvbmZsaWN0KEFQSV9FUlJPUi5QQUNLQUdFX0VYSVNUKSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzb2x2ZSgpO1xuICAgIH0pO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHB1Ymxpc2hQYWNrYWdlKG5hbWU6IHN0cmluZywgbWV0YWRhdGE6IGFueSwgbG9jYWxTdG9yYWdlOiBJU3RvcmFnZSk6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCk6IHZvaWQgPT4ge1xuICAgIGxvY2FsU3RvcmFnZS5hZGRQYWNrYWdlKG5hbWUsIG1ldGFkYXRhLCAoZXJyLCBsYXRlc3QpOiB2b2lkID0+IHtcbiAgICAgIGlmICghXy5pc051bGwoZXJyKSkge1xuICAgICAgICByZXR1cm4gcmVqZWN0KGVycik7XG4gICAgICB9IGVsc2UgaWYgKCFfLmlzVW5kZWZpbmVkKGxhdGVzdCkpIHtcbiAgICAgICAgU2VhcmNoLmFkZChsYXRlc3QpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJlc29sdmUoKTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjaGVja1BhY2thZ2VSZW1vdGUoXG4gIG5hbWU6IHN0cmluZyxcbiAgaXNBbGxvd1B1Ymxpc2hPZmZsaW5lOiBib29sZWFuLFxuICBzeW5jTWV0YWRhdGE6IEZ1bmN0aW9uXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpOiB2b2lkID0+IHtcbiAgICBzeW5jTWV0YWRhdGEobmFtZSwgbnVsbCwge30sIChlcnIsIHBhY2thZ2VKc29uTG9jYWwsIHVwTGlua3NFcnJvcnMpOiB2b2lkID0+IHtcbiAgICAgIC8vIHNvbWV0aGluZyB3ZWlyZFxuICAgICAgaWYgKGVyciAmJiBlcnIuc3RhdHVzICE9PSBIVFRQX1NUQVRVUy5OT1RfRk9VTkQpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnIpO1xuICAgICAgfVxuXG4gICAgICAvLyBjaGVja2luZyBwYWNrYWdlIGV4aXN0IGFscmVhZHlcbiAgICAgIGlmIChfLmlzTmlsKHBhY2thZ2VKc29uTG9jYWwpID09PSBmYWxzZSkge1xuICAgICAgICByZXR1cm4gcmVqZWN0KEVycm9yQ29kZS5nZXRDb25mbGljdChBUElfRVJST1IuUEFDS0FHRV9FWElTVCkpO1xuICAgICAgfVxuXG4gICAgICBmb3IgKGxldCBlcnJvckl0ZW0gPSAwOyBlcnJvckl0ZW0gPCB1cExpbmtzRXJyb3JzLmxlbmd0aDsgZXJyb3JJdGVtKyspIHtcbiAgICAgICAgLy8gY2hlY2tpbmcgZXJyb3JcbiAgICAgICAgLy8gaWYgdXBsaW5rIGZhaWxzIHdpdGggYSBzdGF0dXMgb3RoZXIgdGhhbiA0MDQsIHdlIHJlcG9ydCBmYWlsdXJlXG4gICAgICAgIGlmIChfLmlzTmlsKHVwTGlua3NFcnJvcnNbZXJyb3JJdGVtXVswXSkgPT09IGZhbHNlKSB7XG4gICAgICAgICAgaWYgKHVwTGlua3NFcnJvcnNbZXJyb3JJdGVtXVswXS5zdGF0dXMgIT09IEhUVFBfU1RBVFVTLk5PVF9GT1VORCkge1xuICAgICAgICAgICAgaWYgKGlzQWxsb3dQdWJsaXNoT2ZmbGluZSkge1xuICAgICAgICAgICAgICByZXR1cm4gcmVzb2x2ZSgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcmVqZWN0KEVycm9yQ29kZS5nZXRTZXJ2aWNlVW5hdmFpbGFibGUoQVBJX0VSUk9SLlVQTElOS19PRkZMSU5FX1BVQkxJU0gpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHJlc29sdmUoKTtcbiAgICB9KTtcbiAgfSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZVVwbGlua1RpbWVJbnRvTG9jYWwobG9jYWxNZXRhZGF0YTogUGFja2FnZSwgcmVtb3RlTWV0YWRhdGE6IFBhY2thZ2UpOiBhbnkge1xuICBpZiAoJ3RpbWUnIGluIHJlbW90ZU1ldGFkYXRhKSB7XG4gICAgcmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIGxvY2FsTWV0YWRhdGEudGltZSwgcmVtb3RlTWV0YWRhdGEudGltZSk7XG4gIH1cblxuICByZXR1cm4gbG9jYWxNZXRhZGF0YS50aW1lO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHJlcGFyZVNlYXJjaFBhY2thZ2UoZGF0YTogUGFja2FnZSwgdGltZTogdW5rbm93bik6IGFueSB7XG4gIGNvbnN0IGxpc3RWZXJzaW9uczogc3RyaW5nW10gPSBPYmplY3Qua2V5cyhkYXRhLnZlcnNpb25zKTtcbiAgY29uc3QgdmVyc2lvbnM6IHN0cmluZ1tdID0gc2VtdmVyU29ydChsaXN0VmVyc2lvbnMpO1xuICBjb25zdCBsYXRlc3Q6IHN0cmluZyB8IHVuZGVmaW5lZCA9XG4gICAgZGF0YVtESVNUX1RBR1NdICYmIGRhdGFbRElTVF9UQUdTXS5sYXRlc3QgPyBkYXRhW0RJU1RfVEFHU10ubGF0ZXN0IDogdmVyc2lvbnMucG9wKCk7XG5cbiAgaWYgKGxhdGVzdCAmJiBkYXRhLnZlcnNpb25zW2xhdGVzdF0pIHtcbiAgICBjb25zdCB2ZXJzaW9uOiBWZXJzaW9uID0gZGF0YS52ZXJzaW9uc1tsYXRlc3RdO1xuICAgIGNvbnN0IHZlcnNpb25zOiBhbnkgPSB7IFtsYXRlc3RdOiAnbGF0ZXN0JyB9O1xuICAgIGNvbnN0IHBrZzogYW55ID0ge1xuICAgICAgbmFtZTogdmVyc2lvbi5uYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHZlcnNpb24uZGVzY3JpcHRpb24sXG4gICAgICBbRElTVF9UQUdTXTogeyBsYXRlc3QgfSxcbiAgICAgIG1haW50YWluZXJzOiB2ZXJzaW9uLm1haW50YWluZXJzIHx8IFt2ZXJzaW9uLmF1dGhvcl0uZmlsdGVyKEJvb2xlYW4pLFxuICAgICAgYXV0aG9yOiB2ZXJzaW9uLmF1dGhvcixcbiAgICAgIHJlcG9zaXRvcnk6IHZlcnNpb24ucmVwb3NpdG9yeSxcbiAgICAgIHJlYWRtZUZpbGVuYW1lOiB2ZXJzaW9uLnJlYWRtZUZpbGVuYW1lIHx8ICcnLFxuICAgICAgaG9tZXBhZ2U6IHZlcnNpb24uaG9tZXBhZ2UsXG4gICAgICBrZXl3b3JkczogdmVyc2lvbi5rZXl3b3JkcyxcbiAgICAgIGJ1Z3M6IHZlcnNpb24uYnVncyxcbiAgICAgIGxpY2Vuc2U6IHZlcnNpb24ubGljZW5zZSxcbiAgICAgIHRpbWU6IHtcbiAgICAgICAgbW9kaWZpZWQ6IHRpbWVcbiAgICAgIH0sXG4gICAgICB2ZXJzaW9uc1xuICAgIH07XG5cbiAgICByZXR1cm4gcGtnO1xuICB9XG59XG5cbi8qKlxuICogQ2hlY2sgd2hldGhlciB0aGUgcGFja2FnZSBtZXRhZHRhIGhhcyBlbm91Z2ggZGF0YSB0byBiZSBwdWJsaXNoZWRcbiAqIEBwYXJhbSBwa2cgbWV0YWRhdGFcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzUHVibGlzaGFibGVQYWNrYWdlKHBrZzogUGFja2FnZSk6IGJvb2xlYW4ge1xuICBjb25zdCBrZXlzOiBzdHJpbmdbXSA9IE9iamVjdC5rZXlzKHBrZyk7XG5cbiAgcmV0dXJuIF8uaW5jbHVkZXMoa2V5cywgJ3ZlcnNpb25zJyk7XG59XG4iXX0=
270
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvc3RvcmFnZS11dGlscy50cyJdLCJuYW1lcyI6WyJnZW5lcmF0ZVBhY2thZ2VUZW1wbGF0ZSIsIm5hbWUiLCJ2ZXJzaW9ucyIsInRpbWUiLCJVU0VSUyIsIkRJU1RfVEFHUyIsIl91cGxpbmtzIiwiX2Rpc3RmaWxlcyIsIl9hdHRhY2htZW50cyIsIl9yZXYiLCJub3JtYWxpemVQYWNrYWdlIiwicGtnIiwicGtnUHJvcGVydGllcyIsImZvckVhY2giLCJrZXkiLCJwa2dQcm9wIiwiXyIsImlzTmlsIiwiaXNTdHJpbmciLCJTVE9SQUdFIiwiREVGQVVMVF9SRVZJU0lPTiIsIl9pZCIsImdlbmVyYXRlUmV2aXNpb24iLCJyZXYiLCJzcGxpdCIsImdldExhdGVzdFJlYWRtZSIsImRpc3RUYWdzIiwibGF0ZXN0VmVyc2lvbiIsInJlYWRtZSIsInRyaW0iLCJyZWFkbWVEaXN0VGFnc1ByaW9yaXR5IiwibWFwIiwidGFnIiwidmVyc2lvbiIsImNsZWFuVXBSZWFkbWUiLCJub3JtYWxpemVDb250cmlidXRvcnMiLCJjb250cmlidXRvcnMiLCJpc0FycmF5IiwiV0hJVEVMSVNUIiwiY2xlYW5VcExpbmtzUmVmIiwia2VlcFVwTGlua0RhdGEiLCJyZXN1bHQiLCJwcm9wZXJ0eVRvS2VlcCIsInB1c2giLCJpIiwiaW5kZXhPZiIsImNoZWNrUGFja2FnZUxvY2FsIiwibG9jYWxTdG9yYWdlIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJnZXRQYWNrYWdlTWV0YWRhdGEiLCJlcnIiLCJyZXN1bHRzIiwic3RhdHVzIiwiSFRUUF9TVEFUVVMiLCJOT1RfRk9VTkQiLCJFcnJvckNvZGUiLCJnZXRDb25mbGljdCIsIkFQSV9FUlJPUiIsIlBBQ0tBR0VfRVhJU1QiLCJwdWJsaXNoUGFja2FnZSIsIm1ldGFkYXRhIiwiYWRkUGFja2FnZSIsImxhdGVzdCIsImlzTnVsbCIsImlzVW5kZWZpbmVkIiwiU2VhcmNoIiwiYWRkIiwiY2hlY2tQYWNrYWdlUmVtb3RlIiwiaXNBbGxvd1B1Ymxpc2hPZmZsaW5lIiwic3luY01ldGFkYXRhIiwicGFja2FnZUpzb25Mb2NhbCIsInVwTGlua3NFcnJvcnMiLCJlcnJvckl0ZW0iLCJsZW5ndGgiLCJnZXRTZXJ2aWNlVW5hdmFpbGFibGUiLCJVUExJTktfT0ZGTElORV9QVUJMSVNIIiwibWVyZ2VVcGxpbmtUaW1lSW50b0xvY2FsIiwibG9jYWxNZXRhZGF0YSIsInJlbW90ZU1ldGFkYXRhIiwiT2JqZWN0IiwiYXNzaWduIiwicHJlcGFyZVNlYXJjaFBhY2thZ2UiLCJkYXRhIiwibGlzdFZlcnNpb25zIiwia2V5cyIsInBvcCIsImRlc2NyaXB0aW9uIiwibWFpbnRhaW5lcnMiLCJhdXRob3IiLCJmaWx0ZXIiLCJCb29sZWFuIiwicmVwb3NpdG9yeSIsInJlYWRtZUZpbGVuYW1lIiwiaG9tZXBhZ2UiLCJrZXl3b3JkcyIsImJ1Z3MiLCJsaWNlbnNlIiwibW9kaWZpZWQiLCJpc1B1Ymxpc2hhYmxlUGFja2FnZSIsImluY2x1ZGVzIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBOztBQUtBOztBQUNBOztBQUNBOztBQUNBOzs7O0FBRU8sU0FBU0EsdUJBQVQsQ0FBaUNDLElBQWpDLEVBQXdEO0FBQzdELFNBQU87QUFDTDtBQUNBQSxJQUFBQSxJQUZLO0FBR0xDLElBQUFBLFFBQVEsRUFBRSxFQUhMO0FBSUxDLElBQUFBLElBQUksRUFBRSxFQUpEO0FBS0wsS0FBQ0MsZ0JBQUQsR0FBUyxFQUxKO0FBTUwsS0FBQ0Msb0JBQUQsR0FBYSxFQU5SO0FBT0xDLElBQUFBLFFBQVEsRUFBRSxFQVBMO0FBUUxDLElBQUFBLFVBQVUsRUFBRSxFQVJQO0FBU0xDLElBQUFBLFlBQVksRUFBRSxFQVRUO0FBVUxDLElBQUFBLElBQUksRUFBRTtBQVZELEdBQVA7QUFZRDtBQUVEO0FBQ0E7QUFDQTtBQUNBOzs7QUFDTyxTQUFTQyxnQkFBVCxDQUEwQkMsR0FBMUIsRUFBaUQ7QUFDdEQsUUFBTUMsYUFBYSxHQUFHLENB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QUFDeEQsT0FBTyxDQUFDeUQsTUFBVCxFQUFpQkMsTUFBakIsQ0FBd0JDLE9BQXhCLENBSnJCO0FBS2ZGLE1BQUFBLE1BQU0sRUFBRXpELE9BQU8sQ0FBQ3lELE1BTEQ7QUFNZkcsTUFBQUEsVUFBVSxFQUFFNUQsT0FBTyxDQUFDNEQsVUFOTDtBQU9mQyxNQUFBQSxjQUFjLEVBQUU3RCxPQUFPLENBQUM2RCxjQUFSLElBQTBCLEVBUDNCO0FBUWZDLE1BQUFBLFFBQVEsRUFBRTlELE9BQU8sQ0FBQzhELFFBUkg7QUFTZkMsTUFBQUEsUUFBUSxFQUFFL0QsT0FBTyxDQUFDK0QsUUFUSDtBQVVmQyxNQUFBQSxJQUFJLEVBQUVoRSxPQUFPLENBQUNnRSxJQVZDO0FBV2ZDLE1BQUFBLE9BQU8sRUFBRWpFLE9BQU8sQ0FBQ2lFLE9BWEY7QUFZZi9GLE1BQUFBLElBQUksRUFBRTtBQUNKZ0csUUFBQUEsUUFBUSxFQUFFaEc7QUFETixPQVpTO0FBZWZELE1BQUFBO0FBZmUsS0FBakI7QUFrQkEsV0FBT1MsR0FBUDtBQUNEO0FBQ0Y7QUFFRDtBQUNBO0FBQ0E7QUFDQTs7O0FBQ08sU0FBU3lGLG9CQUFULENBQThCekYsR0FBOUIsRUFBcUQ7QUFDMUQsUUFBTTJFLElBQWMsR0FBR0wsTUFBTSxDQUFDSyxJQUFQLENBQVkzRSxHQUFaLENBQXZCO0FBRUEsU0FBT0ssZ0JBQUVxRixRQUFGLENBQVdmLElBQVgsRUFBaUIsVUFBakIsQ0FBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IF8gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IHsgQXV0aG9yLCBQYWNrYWdlLCBWZXJzaW9uIH0gZnJvbSAnQHZlcmRhY2Npby90eXBlcyc7XG5cbmltcG9ydCB7IElTdG9yYWdlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgZ2VuZXJhdGVSYW5kb21IZXhTdHJpbmcgfSBmcm9tICcuLi9saWIvY3J5cHRvLXV0aWxzJztcbmltcG9ydCB7IEFQSV9FUlJPUiwgRElTVF9UQUdTLCBIVFRQX1NUQVRVUywgU1RPUkFHRSwgVVNFUlMgfSBmcm9tICcuL2NvbnN0YW50cyc7XG5pbXBvcnQgU2VhcmNoIGZyb20gJy4vc2VhcmNoJztcbmltcG9ydCB7IEVycm9yQ29kZSwgaXNPYmplY3QsIG5vcm1hbGl6ZURpc3RUYWdzLCBzZW12ZXJTb3J0IH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBnZW5lcmF0ZVBhY2thZ2VUZW1wbGF0ZShuYW1lOiBzdHJpbmcpOiBQYWNrYWdlIHtcbiAgcmV0dXJuIHtcbiAgICAvLyBzdGFuZGFyZCB0aGluZ3NcbiAgICBuYW1lLFxuICAgIHZlcnNpb25zOiB7fSxcbiAgICB0aW1lOiB7fSxcbiAgICBbVVNFUlNdOiB7fSxcbiAgICBbRElTVF9UQUdTXToge30sXG4gICAgX3VwbGlua3M6IHt9LFxuICAgIF9kaXN0ZmlsZXM6IHt9LFxuICAgIF9hdHRhY2htZW50czoge30sXG4gICAgX3JldjogJycsXG4gIH07XG59XG5cbi8qKlxuICogTm9ybWFsaXplIHBhY2thZ2UgcHJvcGVydGllcywgdGFncywgcmV2aXNpb24gaWQuXG4gKiBAcGFyYW0ge09iamVjdH0gcGtnIHBhY2thZ2UgcmVmZXJlbmNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gbm9ybWFsaXplUGFja2FnZShwa2c6IFBhY2thZ2UpOiBQYWNrYWdlIHtcbiAgY29uc3QgcGtnUHJvcGVydGllcyA9IFsndmVyc2lvbnMnLCAnZGlzdC10YWdzJywgJ19kaXN0ZmlsZXMnLCAnX2F0dGFjaG1lbnRzJywgJ191cGxpbmtzJywgJ3RpbWUnXTtcblxuICBwa2dQcm9wZXJ0aWVzLmZvckVhY2goKGtleSk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IHBrZ1Byb3AgPSBwa2dba2V5XTtcblxuICAgIGlmIChfLmlzTmlsKHBrZ1Byb3ApIHx8IGlzT2JqZWN0KHBrZ1Byb3ApID09PSBmYWxzZSkge1xuICAgICAgcGtnW2tleV0gPSB7fTtcbiAgICB9XG4gIH0pO1xuXG4gIGlmIChfLmlzU3RyaW5nKHBrZy5fcmV2KSA9PT0gZmFsc2UpIHtcbiAgICBwa2cuX3JldiA9IFNUT1JBR0UuREVGQVVMVF9SRVZJU0lPTjtcbiAgfVxuXG4gIGlmIChfLmlzU3RyaW5nKHBrZy5faWQpID09PSBmYWxzZSkge1xuICAgIHBrZy5faWQgPSBwa2cubmFtZTtcbiAgfVxuXG4gIC8vIG5vcm1hbGl6ZSBkaXN0LXRhZ3NcbiAgbm9ybWFsaXplRGlzdFRhZ3MocGtnKTtcblxuICByZXR1cm4gcGtnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVSZXZpc2lvbihyZXY6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IF9yZXYgPSByZXYuc3BsaXQoJy0nKTtcblxuICByZXR1cm4gKCtfcmV2WzBdIHx8IDApICsgMSArICctJyArIGdlbmVyYXRlUmFuZG9tSGV4U3RyaW5nKCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMYXRlc3RSZWFkbWUocGtnOiBQYWNrYWdlKTogc3RyaW5nIHtcbiAgY29uc3QgdmVyc2lvbnMgPSBwa2dbJ3ZlcnNpb25zJ10gfHwge307XG4gIGNvbnN0IGRpc3RUYWdzID0gcGtnW0RJU1RfVEFHU10gfHwge307XG4gIC8vIEZJWE1FOiBoZXJlIGlzIGEgYml0IHRyaWNreSBhZGQgdGhlIHR5cGVzXG4gIGNvbnN0IGxhdGVzdFZlcnNpb246IFZlcnNpb24gfCBhbnkgPSBkaXN0VGFnc1snbGF0ZXN0J10gPyB2ZXJzaW9uc1tkaXN0VGFnc1snbGF0ZXN0J11dIHx8IHt9IDoge307XG4gIGxldCByZWFkbWUgPSBfLnRyaW0ocGtnLnJlYWRtZSB8fCBsYXRlc3RWZXJzaW9uLnJlYWRtZSB8fCAnJyk7XG4gIGlmIChyZWFkbWUpIHtcbiAgICByZXR1cm4gcmVhZG1lO1xuICB9XG5cbiAgLy8gSW4gY2FzZSBvZiBlbXB0eSByZWFkbWUgLSB0cnlpbmcgdG8gZ2V0IEFOWSByZWFkbWUgaW4gdGhlIGZvbGxvd2luZyBvcmRlcjogJ25leHQnLCdiZXRhJywnYWxwaGEnLCd0ZXN0JywnZGV2JywnY2FuYXJ5J1xuICBjb25zdCByZWFkbWVEaXN0VGFnc1ByaW9yaXR5ID0gWyduZXh0JywgJ2JldGEnLCAnYWxwaGEnLCAndGVzdCcsICdkZXYnLCAnY2FuYXJ5J107XG4gIHJlYWRtZURpc3RUYWdzUHJpb3JpdHkubWFwKGZ1bmN0aW9uICh0YWcpOiBzdHJpbmcgfCB2b2lkIHtcbiAgICBpZiAocmVhZG1lKSB7XG4gICAgICByZXR1cm4gcmVhZG1lO1xuICAgIH1cbiAgICBjb25zdCB2ZXJzaW9uOiBWZXJzaW9uIHwgYW55ID0gZGlzdFRhZ3NbdGFnXSA/IHZlcnNpb25zW2Rpc3RUYWdzW3RhZ11dIHx8IHt9IDoge307XG4gICAgcmVhZG1lID0gXy50cmltKHZlcnNpb24ucmVhZG1lIHx8IHJlYWRtZSk7XG4gIH0pO1xuICByZXR1cm4gcmVhZG1lO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xlYW5VcFJlYWRtZSh2ZXJzaW9uOiBWZXJzaW9uKTogVmVyc2lvbiB7XG4gIGlmIChfLmlzTmlsKHZlcnNpb24pID09PSBmYWxzZSkge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICBkZWxldGUgdmVyc2lvbi5yZWFkbWU7XG4gIH1cblxuICByZXR1cm4gdmVyc2lvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG5vcm1hbGl6ZUNvbnRyaWJ1dG9ycyhjb250cmlidXRvcnM6IEF1dGhvcltdKTogQXV0aG9yW10ge1xuICBpZiAoXy5pc05pbChjb250cmlidXRvcnMpKSB7XG4gICAgcmV0dXJuIFtdO1xuICB9IGVsc2UgaWYgKGNvbnRyaWJ1dG9ycyAmJiBfLmlzQXJyYXkoY29udHJpYnV0b3JzKSA9PT0gZmFsc2UpIHtcbiAgICAvLyBGSVhNRTogdGhpcyBicmFuY2ggaXMgY2xlYXJseSBubyBhbiBhcnJheSwgc3RpbGwgdHNjIGNvbXBsYWluc1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICByZXR1cm4gW2NvbnRyaWJ1dG9yc107XG4gIH0gZWxzZSBpZiAoXy5pc1N0cmluZyhjb250cmlidXRvcnMpKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogY29udHJpYnV0b3JzLFxuICAgICAgfSxcbiAgICBdO1xuICB9XG5cbiAgcmV0dXJuIGNvbnRyaWJ1dG9ycztcbn1cblxuZXhwb3J0IGNvbnN0IFdISVRFTElTVCA9IFsnX3JldicsICduYW1lJywgJ3ZlcnNpb25zJywgJ2Rpc3QtdGFncycsICdyZWFkbWUnLCAndGltZScsICdfaWQnLCAndXNlcnMnXTtcblxuZXhwb3J0IGZ1bmN0aW9uIGNsZWFuVXBMaW5rc1JlZihrZWVwVXBMaW5rRGF0YTogYm9vbGVhbiwgcmVzdWx0OiBQYWNrYWdlKTogUGFja2FnZSB7XG4gIGNvbnN0IHByb3BlcnR5VG9LZWVwID0gWy4uLldISVRFTElTVF07XG4gIGlmIChrZWVwVXBMaW5rRGF0YSA9PT0gdHJ1ZSkge1xuICAgIHByb3BlcnR5VG9LZWVwLnB1c2goJ191cGxpbmtzJyk7XG4gIH1cblxuICBmb3IgKGNvbnN0IGkgaW4gcmVzdWx0KSB7XG4gICAgaWYgKHByb3BlcnR5VG9LZWVwLmluZGV4T2YoaSkgPT09IC0xKSB7XG4gICAgICAvLyBSZW1vdmUgc2VjdGlvbnMgbGlrZSAnX3VwbGlua3MnIGZyb20gcmVzcG9uc2VcbiAgICAgIGRlbGV0ZSByZXN1bHRbaV07XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIHJlc3VsdDtcbn1cblxuLyoqXG4gKiBDaGVjayB3aGV0aGVyIGEgcGFja2FnZSBpdCBpcyBhbHJlYWR5IGEgbG9jYWwgcGFja2FnZVxuICogQHBhcmFtIHsqfSBuYW1lXG4gKiBAcGFyYW0geyp9IGxvY2FsU3RvcmFnZVxuICovXG5leHBvcnQgZnVuY3Rpb24gY2hlY2tQYWNrYWdlTG9jYWwobmFtZTogc3RyaW5nLCBsb2NhbFN0b3JhZ2U6IElTdG9yYWdlKTogUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KTogdm9pZCA9PiB7XG4gICAgbG9jYWxTdG9yYWdlLmdldFBhY2thZ2VNZXRhZGF0YShuYW1lLCAoZXJyLCByZXN1bHRzKTogdm9pZCA9PiB7XG4gICAgICBpZiAoIV8uaXNOaWwoZXJyKSAmJiBlcnIuc3RhdHVzICE9PSBIVFRQX1NUQVRVUy5OT1RfRk9VTkQpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChlcnIpO1xuICAgICAgfVxuICAgICAgaWYgKHJlc3VsdHMpIHtcbiAgICAgICAgcmV0dXJuIHJlamVjdChFcnJvckNvZGUuZ2V0Q29uZmxpY3QoQVBJX0VSUk9SLlBBQ0tBR0VfRVhJU1QpKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXNvbHZlKCk7XG4gICAgfSk7XG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcHVibGlzaFBhY2thZ2UobmFtZTogc3RyaW5nLCBtZXRhZGF0YTogYW55LCBsb2NhbFN0b3JhZ2U6IElTdG9yYWdlKTogUHJvbWlzZTx2b2lkPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KTogdm9pZCA9PiB7XG4gICAgbG9jYWxTdG9yYWdlLmFkZFBhY2thZ2UobmFtZSwgbWV0YWRhdGEsIChlcnIsIGxhdGVzdCk6IHZvaWQgPT4ge1xuICAgICAgaWYgKCFfLmlzTnVsbChlcnIpKSB7XG4gICAgICAgIHJldHVybiByZWplY3QoZXJyKTtcbiAgICAgIH0gZWxzZSBpZiAoIV8uaXNVbmRlZmluZWQobGF0ZXN0KSkge1xuICAgICAgICBTZWFyY2guYWRkKGxhdGVzdCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzb2x2ZSgpO1xuICAgIH0pO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrUGFja2FnZVJlbW90ZShuYW1lOiBzdHJpbmcsIGlzQWxsb3dQdWJsaXNoT2ZmbGluZTogYm9vbGVhbiwgc3luY01ldGFkYXRhOiBGdW5jdGlvbik6IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCk6IHZvaWQgPT4ge1xuICAgIHN5bmNNZXRhZGF0YShuYW1lLCBudWxsLCB7fSwgKGVyciwgcGFja2FnZUpzb25Mb2NhbCwgdXBMaW5rc0Vycm9ycyk6IHZvaWQgPT4ge1xuICAgICAgLy8gc29tZXRoaW5nIHdlaXJkXG4gICAgICBpZiAoZXJyICYmIGVyci5zdGF0dXMgIT09IEhUVFBfU1RBVFVTLk5PVF9GT1VORCkge1xuICAgICAgICByZXR1cm4gcmVqZWN0KGVycik7XG4gICAgICB9XG5cbiAgICAgIC8vIGNoZWNraW5nIHBhY2thZ2UgZXhpc3QgYWxyZWFkeVxuICAgICAgaWYgKF8uaXNOaWwocGFja2FnZUpzb25Mb2NhbCkgPT09IGZhbHNlKSB7XG4gICAgICAgIHJldHVybiByZWplY3QoRXJyb3JDb2RlLmdldENvbmZsaWN0KEFQSV9FUlJPUi5QQUNLQUdFX0VYSVNUKSk7XG4gICAgICB9XG5cbiAgICAgIGZvciAobGV0IGVycm9ySXRlbSA9IDA7IGVycm9ySXRlbSA8IHVwTGlua3NFcnJvcnMubGVuZ3RoOyBlcnJvckl0ZW0rKykge1xuICAgICAgICAvLyBjaGVja2luZyBlcnJvclxuICAgICAgICAvLyBpZiB1cGxpbmsgZmFpbHMgd2l0aCBhIHN0YXR1cyBvdGhlciB0aGFuIDQwNCwgd2UgcmVwb3J0IGZhaWx1cmVcbiAgICAgICAgaWYgKF8uaXNOaWwodXBMaW5rc0Vycm9yc1tlcnJvckl0ZW1dWzBdKSA9PT0gZmFsc2UpIHtcbiAgICAgICAgICBpZiAodXBMaW5rc0Vycm9yc1tlcnJvckl0ZW1dWzBdLnN0YXR1cyAhPT0gSFRUUF9TVEFUVVMuTk9UX0ZPVU5EKSB7XG4gICAgICAgICAgICBpZiAoaXNBbGxvd1B1Ymxpc2hPZmZsaW5lKSB7XG4gICAgICAgICAgICAgIHJldHVybiByZXNvbHZlKCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiByZWplY3QoRXJyb3JDb2RlLmdldFNlcnZpY2VVbmF2YWlsYWJsZShBUElfRVJST1IuVVBMSU5LX09GRkxJTkVfUFVCTElTSCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gcmVzb2x2ZSgpO1xuICAgIH0pO1xuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlVXBsaW5rVGltZUludG9Mb2NhbChsb2NhbE1ldGFkYXRhOiBQYWNrYWdlLCByZW1vdGVNZXRhZGF0YTogUGFja2FnZSk6IGFueSB7XG4gIGlmICgndGltZScgaW4gcmVtb3RlTWV0YWRhdGEpIHtcbiAgICByZXR1cm4gT2JqZWN0LmFzc2lnbih7fSwgbG9jYWxNZXRhZGF0YS50aW1lLCByZW1vdGVNZXRhZGF0YS50aW1lKTtcbiAgfVxuXG4gIHJldHVybiBsb2NhbE1ldGFkYXRhLnRpbWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBwcmVwYXJlU2VhcmNoUGFja2FnZShkYXRhOiBQYWNrYWdlLCB0aW1lOiB1bmtub3duKTogYW55IHtcbiAgY29uc3QgbGlzdFZlcnNpb25zOiBzdHJpbmdbXSA9IE9iamVjdC5rZXlzKGRhdGEudmVyc2lvbnMpO1xuICBjb25zdCB2ZXJzaW9uczogc3RyaW5nW10gPSBzZW12ZXJTb3J0KGxpc3RWZXJzaW9ucyk7XG4gIGNvbnN0IGxhdGVzdDogc3RyaW5nIHwgdW5kZWZpbmVkID0gZGF0YVtESVNUX1RBR1NdICYmIGRhdGFbRElTVF9UQUdTXS5sYXRlc3QgPyBkYXRhW0RJU1RfVEFHU10ubGF0ZXN0IDogdmVyc2lvbnMucG9wKCk7XG5cbiAgaWYgKGxhdGVzdCAmJiBkYXRhLnZlcnNpb25zW2xhdGVzdF0pIHtcbiAgICBjb25zdCB2ZXJzaW9uOiBWZXJzaW9uID0gZGF0YS52ZXJzaW9uc1tsYXRlc3RdO1xuICAgIGNvbnN0IHZlcnNpb25zOiBhbnkgPSB7IFtsYXRlc3RdOiAnbGF0ZXN0JyB9O1xuICAgIGNvbnN0IHBrZzogYW55ID0ge1xuICAgICAgbmFtZTogdmVyc2lvbi5uYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHZlcnNpb24uZGVzY3JpcHRpb24sXG4gICAgICBbRElTVF9UQUdTXTogeyBsYXRlc3QgfSxcbiAgICAgIG1haW50YWluZXJzOiB2ZXJzaW9uLm1haW50YWluZXJzIHx8IFt2ZXJzaW9uLmF1dGhvcl0uZmlsdGVyKEJvb2xlYW4pLFxuICAgICAgYXV0aG9yOiB2ZXJzaW9uLmF1dGhvcixcbiAgICAgIHJlcG9zaXRvcnk6IHZlcnNpb24ucmVwb3NpdG9yeSxcbiAgICAgIHJlYWRtZUZpbGVuYW1lOiB2ZXJzaW9uLnJlYWRtZUZpbGVuYW1lIHx8ICcnLFxuICAgICAgaG9tZXBhZ2U6IHZlcnNpb24uaG9tZXBhZ2UsXG4gICAgICBrZXl3b3JkczogdmVyc2lvbi5rZXl3b3JkcyxcbiAgICAgIGJ1Z3M6IHZlcnNpb24uYnVncyxcbiAgICAgIGxpY2Vuc2U6IHZlcnNpb24ubGljZW5zZSxcbiAgICAgIHRpbWU6IHtcbiAgICAgICAgbW9kaWZpZWQ6IHRpbWUsXG4gICAgICB9LFxuICAgICAgdmVyc2lvbnMsXG4gICAgfTtcblxuICAgIHJldHVybiBwa2c7XG4gIH1cbn1cblxuLyoqXG4gKiBDaGVjayB3aGV0aGVyIHRoZSBwYWNrYWdlIG1ldGFkdGEgaGFzIGVub3VnaCBkYXRhIHRvIGJlIHB1Ymxpc2hlZFxuICogQHBhcmFtIHBrZyBtZXRhZGF0YVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNQdWJsaXNoYWJsZVBhY2thZ2UocGtnOiBQYWNrYWdlKTogYm9vbGVhbiB7XG4gIGNvbnN0IGtleXM6IHN0cmluZ1tdID0gT2JqZWN0LmtleXMocGtnKTtcblxuICByZXR1cm4gXy5pbmNsdWRlcyhrZXlzLCAndmVyc2lvbnMnKTtcbn1cbiJdfQ==