@carto/kepler.gl 0.0.71 → 0.0.72-alpha.2

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 (44) hide show
  1. package/dist/components/common/item-selector/accessor.js +2 -2
  2. package/dist/components/common/item-selector/dropdown-list.js +12 -9
  3. package/dist/components/common/item-selector/item-selector.js +2 -2
  4. package/dist/components/side-panel/layer-panel/color-range-selector.js +28 -7
  5. package/dist/components/side-panel/layer-panel/color-selector.js +4 -1
  6. package/dist/components/side-panel/layer-panel/hex-column-config.js +97 -0
  7. package/dist/components/side-panel/layer-panel/layer-configurator.js +45 -11
  8. package/dist/constants/color-ranges.js +12 -2
  9. package/dist/constants/default-settings.js +7 -4
  10. package/dist/layers/base-layer.js +197 -49
  11. package/dist/layers/point-layer/point-layer.js +2 -3
  12. package/dist/localization/en.js +5 -2
  13. package/dist/reducers/vis-state-merger.js +16 -2
  14. package/dist/schemas/vis-state-schema.js +69 -34
  15. package/dist/utils/color-utils.js +17 -21
  16. package/dist/utils/custom-scales.js +28 -0
  17. package/dist/utils/data-utils.js +31 -1
  18. package/dist/utils/index.js +7 -1
  19. package/dist/utils/layer-utils.js +2 -1
  20. package/dist/utils/table-utils/kepler-table.js +20 -1
  21. package/package.json +2 -1
  22. package/src/components/common/item-selector/accessor.js +1 -1
  23. package/src/components/common/item-selector/dropdown-list.js +23 -15
  24. package/src/components/common/item-selector/item-selector.js +1 -1
  25. package/src/components/side-panel/layer-panel/color-range-selector.js +30 -7
  26. package/src/components/side-panel/layer-panel/color-selector.js +3 -0
  27. package/src/components/side-panel/layer-panel/hex-column-config.js +45 -0
  28. package/src/components/side-panel/layer-panel/layer-configurator.js +52 -7
  29. package/src/constants/color-ranges.js +9 -0
  30. package/src/constants/default-settings.js +5 -2
  31. package/src/layers/base-layer.js +138 -30
  32. package/src/layers/index.d.ts +3 -1
  33. package/src/layers/layer-factory.d.ts +1 -0
  34. package/src/layers/point-layer/point-layer.js +1 -1
  35. package/src/localization/en.js +4 -1
  36. package/src/reducers/vis-state-merger.js +13 -1
  37. package/src/schemas/vis-state-schema.js +24 -1
  38. package/src/utils/color-utils.js +9 -0
  39. package/src/utils/custom-scales.js +20 -0
  40. package/src/utils/data-utils.d.ts +1 -0
  41. package/src/utils/data-utils.js +19 -0
  42. package/src/utils/index.js +1 -1
  43. package/src/utils/layer-utils.js +1 -0
  44. package/src/utils/table-utils/kepler-table.js +22 -0
@@ -25,7 +25,7 @@ exports["default"] = void 0;
25
25
  // THE SOFTWARE.
26
26
  var Accessor = {
27
27
  IDENTITY_FN: function IDENTITY_FN(input) {
28
- return input;
28
+ return input.value || input;
29
29
  },
30
30
  generateAccessor: function generateAccessor(field) {
31
31
  return function (object) {
@@ -53,4 +53,4 @@ var Accessor = {
53
53
  };
54
54
  var _default = Accessor;
55
55
  exports["default"] = _default;
56
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2NvbW1vbi9pdGVtLXNlbGVjdG9yL2FjY2Vzc29yLmpzIl0sIm5hbWVzIjpbIkFjY2Vzc29yIiwiSURFTlRJVFlfRk4iLCJpbnB1dCIsImdlbmVyYXRlQWNjZXNzb3IiLCJmaWVsZCIsIm9iamVjdCIsImdlbmVyYXRlT3B0aW9uVG9TdHJpbmdGb3IiLCJwcm9wIiwidmFsdWVGb3JPcHRpb24iLCJvcHRpb24iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBRUEsSUFBTUEsUUFBUSxHQUFHO0FBQ2ZDLEVBQUFBLFdBQVcsRUFBRSxxQkFBQUMsS0FBSztBQUFBLFdBQUlBLEtBQUo7QUFBQSxHQURIO0FBR2ZDLEVBQUFBLGdCQUFnQixFQUFFLDBCQUFBQyxLQUFLO0FBQUEsV0FBSSxVQUFBQyxNQUFNO0FBQUEsYUFBSUEsTUFBTSxDQUFDRCxLQUFELENBQVY7QUFBQSxLQUFWO0FBQUEsR0FIUjtBQUtmRSxFQUFBQSx5QkFBeUIsRUFBRSxTQUFTQSx5QkFBVCxDQUFtQ0MsSUFBbkMsRUFBeUM7QUFDbEUsUUFBSSxPQUFPQSxJQUFQLEtBQWdCLFFBQXBCLEVBQThCO0FBQzVCLGFBQU8sS0FBS0osZ0JBQUwsQ0FBc0JJLElBQXRCLENBQVA7QUFDRCxLQUZELE1BRU8sSUFBSSxPQUFPQSxJQUFQLEtBQWdCLFVBQXBCLEVBQWdDO0FBQ3JDLGFBQU9BLElBQVA7QUFDRDs7QUFDRCxXQUFPLEtBQUtOLFdBQVo7QUFDRCxHQVpjO0FBY2ZPLEVBQUFBLGNBQWMsRUFBRSx3QkFBQ0MsTUFBRCxFQUFTSixNQUFULEVBQW9CO0FBQ2xDLFFBQUksT0FBT0ksTUFBUCxLQUFrQixRQUF0QixFQUFnQztBQUM5QixhQUFPSixNQUFNLENBQUNJLE1BQUQsQ0FBYjtBQUNELEtBRkQsTUFFTyxJQUFJLE9BQU9BLE1BQVAsS0FBa0IsVUFBdEIsRUFBa0M7QUFDdkMsYUFBT0EsTUFBTSxDQUFDSixNQUFELENBQWI7QUFDRDs7QUFDRCxXQUFPQSxNQUFQO0FBQ0Q7QUFyQmMsQ0FBakI7ZUF3QmVMLFEiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5jb25zdCBBY2Nlc3NvciA9IHtcbiAgSURFTlRJVFlfRk46IGlucHV0ID0+IGlucHV0LFxuXG4gIGdlbmVyYXRlQWNjZXNzb3I6IGZpZWxkID0+IG9iamVjdCA9PiBvYmplY3RbZmllbGRdLFxuXG4gIGdlbmVyYXRlT3B0aW9uVG9TdHJpbmdGb3I6IGZ1bmN0aW9uIGdlbmVyYXRlT3B0aW9uVG9TdHJpbmdGb3IocHJvcCkge1xuICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiB0aGlzLmdlbmVyYXRlQWNjZXNzb3IocHJvcCk7XG4gICAgfSBlbHNlIGlmICh0eXBlb2YgcHJvcCA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgcmV0dXJuIHByb3A7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLklERU5USVRZX0ZOO1xuICB9LFxuXG4gIHZhbHVlRm9yT3B0aW9uOiAob3B0aW9uLCBvYmplY3QpID0+IHtcbiAgICBpZiAodHlwZW9mIG9wdGlvbiA9PT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBvYmplY3Rbb3B0aW9uXTtcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBvcHRpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBvcHRpb24ob2JqZWN0KTtcbiAgICB9XG4gICAgcmV0dXJuIG9iamVjdDtcbiAgfVxufTtcblxuZXhwb3J0IGRlZmF1bHQgQWNjZXNzb3I7XG4iXX0=
56
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2NvbW1vbi9pdGVtLXNlbGVjdG9yL2FjY2Vzc29yLmpzIl0sIm5hbWVzIjpbIkFjY2Vzc29yIiwiSURFTlRJVFlfRk4iLCJpbnB1dCIsInZhbHVlIiwiZ2VuZXJhdGVBY2Nlc3NvciIsImZpZWxkIiwib2JqZWN0IiwiZ2VuZXJhdGVPcHRpb25Ub1N0cmluZ0ZvciIsInByb3AiLCJ2YWx1ZUZvck9wdGlvbiIsIm9wdGlvbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQSxJQUFNQSxRQUFRLEdBQUc7QUFDZkMsRUFBQUEsV0FBVyxFQUFFLHFCQUFBQyxLQUFLO0FBQUEsV0FBSUEsS0FBSyxDQUFDQyxLQUFOLElBQWVELEtBQW5CO0FBQUEsR0FESDtBQUdmRSxFQUFBQSxnQkFBZ0IsRUFBRSwwQkFBQUMsS0FBSztBQUFBLFdBQUksVUFBQUMsTUFBTTtBQUFBLGFBQUlBLE1BQU0sQ0FBQ0QsS0FBRCxDQUFWO0FBQUEsS0FBVjtBQUFBLEdBSFI7QUFLZkUsRUFBQUEseUJBQXlCLEVBQUUsU0FBU0EseUJBQVQsQ0FBbUNDLElBQW5DLEVBQXlDO0FBQ2xFLFFBQUksT0FBT0EsSUFBUCxLQUFnQixRQUFwQixFQUE4QjtBQUM1QixhQUFPLEtBQUtKLGdCQUFMLENBQXNCSSxJQUF0QixDQUFQO0FBQ0QsS0FGRCxNQUVPLElBQUksT0FBT0EsSUFBUCxLQUFnQixVQUFwQixFQUFnQztBQUNyQyxhQUFPQSxJQUFQO0FBQ0Q7O0FBQ0QsV0FBTyxLQUFLUCxXQUFaO0FBQ0QsR0FaYztBQWNmUSxFQUFBQSxjQUFjLEVBQUUsd0JBQUNDLE1BQUQsRUFBU0osTUFBVCxFQUFvQjtBQUNsQyxRQUFJLE9BQU9JLE1BQVAsS0FBa0IsUUFBdEIsRUFBZ0M7QUFDOUIsYUFBT0osTUFBTSxDQUFDSSxNQUFELENBQWI7QUFDRCxLQUZELE1BRU8sSUFBSSxPQUFPQSxNQUFQLEtBQWtCLFVBQXRCLEVBQWtDO0FBQ3ZDLGFBQU9BLE1BQU0sQ0FBQ0osTUFBRCxDQUFiO0FBQ0Q7O0FBQ0QsV0FBT0EsTUFBUDtBQUNEO0FBckJjLENBQWpCO2VBd0JlTixRIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuY29uc3QgQWNjZXNzb3IgPSB7XG4gIElERU5USVRZX0ZOOiBpbnB1dCA9PiBpbnB1dC52YWx1ZSB8fCBpbnB1dCxcblxuICBnZW5lcmF0ZUFjY2Vzc29yOiBmaWVsZCA9PiBvYmplY3QgPT4gb2JqZWN0W2ZpZWxkXSxcblxuICBnZW5lcmF0ZU9wdGlvblRvU3RyaW5nRm9yOiBmdW5jdGlvbiBnZW5lcmF0ZU9wdGlvblRvU3RyaW5nRm9yKHByb3ApIHtcbiAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZW5lcmF0ZUFjY2Vzc29yKHByb3ApO1xuICAgIH0gZWxzZSBpZiAodHlwZW9mIHByb3AgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHJldHVybiBwcm9wO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5JREVOVElUWV9GTjtcbiAgfSxcblxuICB2YWx1ZUZvck9wdGlvbjogKG9wdGlvbiwgb2JqZWN0KSA9PiB7XG4gICAgaWYgKHR5cGVvZiBvcHRpb24gPT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gb2JqZWN0W29wdGlvbl07XG4gICAgfSBlbHNlIGlmICh0eXBlb2Ygb3B0aW9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gb3B0aW9uKG9iamVjdCk7XG4gICAgfVxuICAgIHJldHVybiBvYmplY3Q7XG4gIH1cbn07XG5cbmV4cG9ydCBkZWZhdWx0IEFjY2Vzc29yO1xuIl19
@@ -43,7 +43,7 @@ var _defaultSettings = require("../../../constants/default-settings");
43
43
 
44
44
  var _portaled = _interopRequireDefault(require("../portaled"));
45
45
 
46
- var _templateObject, _templateObject2, _templateObject3;
46
+ var _templateObject, _templateObject2, _templateObject3, _templateObject4;
47
47
 
48
48
  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; }
49
49
 
@@ -63,9 +63,11 @@ var classList = {
63
63
  exports.classList = classList;
64
64
 
65
65
  var defaultDisplay = function defaultDisplay(d) {
66
- return d;
66
+ return d.value || d;
67
67
  };
68
68
 
69
+ var Divider = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n border-top: 1px solid rgba(44, 48, 50, 0.12);\n margin: 8px 0;\n"])));
70
+
69
71
  var ListItem = function ListItem(_ref) {
70
72
  var value = _ref.value,
71
73
  _ref$displayOption = _ref.displayOption,
@@ -77,7 +79,7 @@ var ListItem = function ListItem(_ref) {
77
79
 
78
80
  exports.ListItem = ListItem;
79
81
 
80
- var DropdownListWrapper = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n background-color: ", ";\n border-top: 1px solid\n ", ";\n ", ";\n"])), function (props) {
82
+ var DropdownListWrapper = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n background-color: ", ";\n border-top: 1px solid\n ", ";\n ", ";\n"])), function (props) {
81
83
  return props.light ? props.theme.dropdownListBgdLT : props.theme.dropdownListBgd;
82
84
  }, function (props) {
83
85
  return props.light ? props.theme.dropdownListBorderTopLT : props.theme.dropdownListBorderTop;
@@ -85,9 +87,9 @@ var DropdownListWrapper = _styledComponents["default"].div(_templateObject || (_
85
87
  return props.light ? props.theme.dropdownListLT : props.theme.dropdownList;
86
88
  });
87
89
 
88
- var DropdownListContainer = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n"])));
90
+ var DropdownListContainer = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n"])));
89
91
 
90
- var Item = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n padding-right: 25px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n svg {\n position: absolute;\n right: 0;\n top: 50%;\n transform: translateY(-50%);\n opacity: 0.6;\n }\n &:hover, &.hover {\n svg {\n opacity: 1;\n }\n }\n"])));
92
+ var Item = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n position: relative;\n padding-right: 25px;\n display: flex;\n align-items: center;\n justify-content: space-between;\n svg {\n position: absolute;\n right: 0;\n top: 50%;\n transform: translateY(-50%);\n opacity: 0.6;\n }\n &:hover, &.hover {\n svg {\n opacity: 1;\n }\n }\n"])));
91
93
 
92
94
  var DropdownList = /*#__PURE__*/function (_Component) {
93
95
  (0, _inherits2["default"])(DropdownList, _Component);
@@ -229,12 +231,13 @@ var DropdownList = /*#__PURE__*/function (_Component) {
229
231
  })) : null, this.props.options.map(function (value, i) {
230
232
  var _this3$state$currentO2;
231
233
 
232
- return /*#__PURE__*/_react["default"].createElement(Item, {
234
+ return /*#__PURE__*/_react["default"].createElement("div", {
235
+ key: "".concat(display(value), "_").concat(i)
236
+ }, value.divider && /*#__PURE__*/_react["default"].createElement(Divider, null), /*#__PURE__*/_react["default"].createElement(Item, {
233
237
  className: (0, _classnames["default"])(classList.listItem, {
234
238
  active: _this3.props.selectionIndex === i + valueOffset,
235
239
  hover: value.id && ((_this3$state$currentO2 = _this3.state.currentOption) === null || _this3$state$currentO2 === void 0 ? void 0 : _this3$state$currentO2.id) === value.id
236
240
  }),
237
- key: "".concat(display(value), "_").concat(i),
238
241
  onMouseDown: function onMouseDown(e) {
239
242
  return !_this3.hasSubOptions && _this3._onClick(value, null, e);
240
243
  },
@@ -247,7 +250,7 @@ var DropdownList = /*#__PURE__*/function (_Component) {
247
250
  }, /*#__PURE__*/_react["default"].createElement(_this3.props.customListItemComponent, {
248
251
  value: value,
249
252
  displayOption: display
250
- }), _this3.props.withSubOptions && value.aggregators && /*#__PURE__*/_react["default"].createElement(_icons.ChevronRight, null));
253
+ }), _this3.props.withSubOptions && value.aggregators && /*#__PURE__*/_react["default"].createElement(_icons.ChevronRight, null)));
251
254
  }))), this.props.withSubOptions &&
252
255
  /*#__PURE__*/
253
256
  // The display: 'none' is a trick to be able to render the ItemSelectorSubmenu in the correct position
@@ -313,4 +316,4 @@ exports["default"] = DropdownList;
313
316
  selectionIndex: null,
314
317
  withSubOptions: false
315
318
  });
316
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2NvbW1vbi9pdGVtLXNlbGVjdG9yL2Ryb3Bkb3duLWxpc3QuanMiXSwibmFtZXMiOlsiY2xhc3NMaXN0IiwibGlzdCIsImxpc3RIZWFkZXIiLCJsaXN0U2VjdGlvbiIsImxpc3RJdGVtIiwibGlzdEl0ZW1BbmNob3IiLCJkZWZhdWx0RGlzcGxheSIsImQiLCJMaXN0SXRlbSIsInZhbHVlIiwiZGlzcGxheU9wdGlvbiIsIkRyb3Bkb3duTGlzdFdyYXBwZXIiLCJzdHlsZWQiLCJkaXYiLCJwcm9wcyIsImxpZ2h0IiwidGhlbWUiLCJkcm9wZG93bkxpc3RCZ2RMVCIsImRyb3Bkb3duTGlzdEJnZCIsImRyb3Bkb3duTGlzdEJvcmRlclRvcExUIiwiZHJvcGRvd25MaXN0Qm9yZGVyVG9wIiwiZHJvcGRvd25MaXN0TFQiLCJkcm9wZG93bkxpc3QiLCJEcm9wZG93bkxpc3RDb250YWluZXIiLCJJdGVtIiwiRHJvcGRvd25MaXN0IiwiY3VycmVudE9wdGlvbiIsInN1Ym1lbnVWaXNpYmxlIiwic3VibWVudVBvc2l0aW9uIiwic3ViT3B0aW9ucyIsImNhbGxiYWNrIiwic2V0U3RhdGUiLCJvcHRpb24iLCJzdWJPcHRpb24iLCJldmVudCIsIm9wdGlvblNlbGVjdGVkIiwic2VsZWN0ZWRBZ2dyZWdhdG9yIiwiaWQiLCJ3aXRoU3ViT3B0aW9ucyIsImFnZ3JlZ2F0b3JzIiwib25PcHRpb25TZWxlY3RlZCIsImVsIiwidGFyZ2V0IiwicHJldmlvdXNTdGF0ZSIsInRvcCIsImdldEJvdW5kaW5nQ2xpZW50UmVjdCIsImxlZnQiLCJyZWYiLCJjdXJyZW50IiwicmlnaHQiLCJwcmV2UHJvcHMiLCJzZWFyY2hFbnRyeVZhbHVlIiwiX3Jlc2V0U3RhdGUiLCJzdWJNZW51UG9zaXRpb24iLCJmaXhlZE9wdGlvbnMiLCJkaXNwbGF5Iiwib3B0aW9ucyIsImxlbmd0aCIsImFsbG93Q3VzdG9tVmFsdWVzIiwidmFsdWVPZmZzZXQiLCJBcnJheSIsImlzQXJyYXkiLCJjdXN0b21MaXN0SGVhZGVyQ29tcG9uZW50IiwibWFwIiwiaSIsImFjdGl2ZSIsInNlbGVjdGlvbkluZGV4IiwiaG92ZXIiLCJzdGF0ZSIsImZpeGVkIiwiZSIsImhhc1N1Yk9wdGlvbnMiLCJfb25DbGljayIsIl9vbk1vdXNlT3ZlciIsIm92ZXJsYXkiLCJ3aWR0aCIsImhlaWdodCIsImEiLCJGSUVMRF9BR0dSRUdBVE9SUyIsImZpbmQiLCJhbSIsImFnZ3JlZ2F0b3IiLCJDb21wb25lbnQiLCJQcm9wVHlwZXMiLCJhcnJheU9mIiwiYW55IiwibnVtYmVyIiwiY3VzdG9tQ2xhc3NlcyIsIm9iamVjdCIsImN1c3RvbVZhbHVlcyIsImN1c3RvbUxpc3RJdGVtQ29tcG9uZW50Iiwib25lT2ZUeXBlIiwiZWxlbWVudCIsImZ1bmMiLCJpc1JlcXVpcmVkIiwiZGVmYXVsdENsYXNzTmFtZXMiLCJib29sIiwiYXJlUmVzdWx0c1RydW5jYXRlZCIsInJlc3VsdHNUcnVuY2F0ZWRNZXNzYWdlIiwic3RyaW5nIiwibGlzdEl0ZW1Db21wb25lbnQiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7Ozs7Ozs7QUFFTyxJQUFNQSxTQUFTLEdBQUc7QUFDdkJDLEVBQUFBLElBQUksRUFBRSxlQURpQjtBQUV2QkMsRUFBQUEsVUFBVSxFQUFFLGNBRlc7QUFHdkJDLEVBQUFBLFdBQVcsRUFBRSxlQUhVO0FBSXZCQyxFQUFBQSxRQUFRLEVBQUUsWUFKYTtBQUt2QkMsRUFBQUEsY0FBYyxFQUFFO0FBTE8sQ0FBbEI7OztBQVFQLElBQU1DLGNBQWMsR0FBRyxTQUFqQkEsY0FBaUIsQ0FBQUMsQ0FBQztBQUFBLFNBQUlBLENBQUo7QUFBQSxDQUF4Qjs7QUFDTyxJQUFNQyxRQUFRLEdBQUcsU0FBWEEsUUFBVztBQUFBLE1BQUVDLEtBQUYsUUFBRUEsS0FBRjtBQUFBLGdDQUFT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LHNCQUFVVSxJQVRYO0FBVWpCbkYsRUFBQUEsYUFBYSxFQUFFeUUsc0JBQVVVLElBQVYsQ0FBZUMsVUFWYjtBQVdqQkMsRUFBQUEsaUJBQWlCLEVBQUVaLHNCQUFVYSxJQVhaO0FBWWpCQyxFQUFBQSxtQkFBbUIsRUFBRWQsc0JBQVVhLElBWmQ7QUFhakJFLEVBQUFBLHVCQUF1QixFQUFFZixzQkFBVWdCLE1BYmxCO0FBY2pCQyxFQUFBQSxpQkFBaUIsRUFBRWpCLHNCQUFVVSxJQWRaO0FBZWpCMUMsRUFBQUEsZ0JBQWdCLEVBQUVnQyxzQkFBVWdCLE1BZlg7QUFnQmpCN0QsRUFBQUEsY0FBYyxFQUFFNkMsc0JBQVVhO0FBaEJULEM7aUNBREF2RSxZLGtCQW9CRztBQUNwQjhELEVBQUFBLGFBQWEsRUFBRSxFQURLO0FBRXBCRyxFQUFBQSx1QkFBdUIsRUFBRWxGLFFBRkw7QUFHcEJzRCxFQUFBQSx5QkFBeUIsRUFBRSxJQUhQO0FBSXBCSixFQUFBQSxpQkFBaUIsRUFBRSxDQUpDO0FBS3BCK0IsRUFBQUEsWUFBWSxFQUFFLEVBTE07QUFNcEIvRSxFQUFBQSxhQUFhLEVBQUVKLGNBTks7QUFPcEJrQyxFQUFBQSxnQkFBZ0IsRUFBRSw0QkFBTSxDQUFFLENBUE47QUFRcEJ1RCxFQUFBQSxpQkFBaUIsRUFBRSxJQVJDO0FBU3BCN0IsRUFBQUEsY0FBYyxFQUFFLElBVEk7QUFVcEI1QixFQUFBQSxjQUFjLEVBQUU7QUFWSSxDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50LCBjcmVhdGVSZWZ9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IEl0ZW1TZWxlY3RvclN1Ym1lbnUgZnJvbSAnLi9pdGVtLXNlbGVjdG9yLXN1Ym1lbnUnO1xuaW1wb3J0IHtDaGV2cm9uUmlnaHR9IGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL2ljb25zJztcbmltcG9ydCB7RklFTERfQUdHUkVHQVRPUlN9IGZyb20gJ2NvbnN0YW50cy9kZWZhdWx0LXNldHRpbmdzJztcbmltcG9ydCBQb3J0YWxlZCBmcm9tICcuLi9wb3J0YWxlZCc7XG5cbmV4cG9ydCBjb25zdCBjbGFzc0xpc3QgPSB7XG4gIGxpc3Q6ICdsaXN0LXNlbGVjdG9yJyxcbiAgbGlzdEhlYWRlcjogJ2xpc3RfX2hlYWRlcicsXG4gIGxpc3RTZWN0aW9uOiAnbGlzdF9fc2VjdGlvbicsXG4gIGxpc3RJdGVtOiAnbGlzdF9faXRlbScsXG4gIGxpc3RJdGVtQW5jaG9yOiAnbGlzdF9faXRlbV9fYW5jaG9yJ1xufTtcblxuY29uc3QgZGVmYXVsdERpc3BsYXkgPSBkID0+IGQ7XG5leHBvcnQgY29uc3QgTGlzdEl0ZW0gPSAoe3ZhbHVlLCBkaXNwbGF5T3B0aW9uID0gZGVmYXVsdERpc3BsYXl9KSA9PiAoXG4gIDxzcGFuIGNsYXNzTmFtZT17Y2xhc3NMaXN0Lmxpc3RJdGVtQW5jaG9yfT57ZGlzcGxheU9wdGlvbih2YWx1ZSl9PC9zcGFuPlxuKTtcblxuY29uc3QgRHJvcGRvd25MaXN0V3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT5cbiAgICBwcm9wcy5saWdodCA/IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdEJnZExUIDogcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0QmdkfTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkXG4gICAgJHtwcm9wcyA9PlxuICAgICAgcHJvcHMubGlnaHQgPyBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RCb3JkZXJUb3BMVCA6IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdEJvcmRlclRvcH07XG4gICR7cHJvcHMgPT4gKHByb3BzLmxpZ2h0ID8gcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0TFQgOiBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3QpfTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duTGlzdENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IEl0ZW0gPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmctcmlnaHQ6IDI1cHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbiAgc3ZnIHtcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgcmlnaHQ6IDA7XG4gICAgdG9wOiA1MCU7XG4gICAgdHJhbnNmb3JtOiB0cmFuc2xhdGVZKC01MCUpO1xuICAgIG9wYWNpdHk6IDAuNjtcbiAgfVxuICAmOmhvdmVyLCAmLmhvdmVyIHtcbiAgICBzdmcge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICB9XG4gIH1cbmA7XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERyb3Bkb3duTGlzdCBleHRlbmRzIENvbXBvbmVudCB7XG4gIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgb3B0aW9uczogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLmFueSksXG4gICAgc3ViT3B0aW9uczogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLmFueSksXG4gICAgYWxsb3dDdXN0b21WYWx1ZXM6IFByb3BUeXBlcy5udW1iZXIsXG4gICAgY3VzdG9tQ2xhc3NlczogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBjdXN0b21WYWx1ZXM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5hbnkpLFxuICAgIGN1c3RvbUxpc3RJdGVtQ29tcG9uZW50OiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuZWxlbWVudCwgUHJvcFR5cGVzLmZ1bmNdKSxcbiAgICBjdXN0b21MaXN0SGVhZGVyQ29tcG9uZW50OiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuZWxlbWVudCwgUHJvcFR5cGVzLmZ1bmNdKSxcbiAgICBzZWxlY3Rpb25JbmRleDogUHJvcFR5cGVzLm51bWJlcixcbiAgICBvbk9wdGlvblNlbGVjdGVkOiBQcm9wVHlwZXMuZnVuYyxcbiAgICBkaXNwbGF5T3B0aW9uOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgIGRlZmF1bHRDbGFzc05hbWVzOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBhcmVSZXN1bHRzVHJ1bmNhdGVkOiBQcm9wVHlwZXMuYm9vbCxcbiAgICByZXN1bHRzVHJ1bmNhdGVkTWVzc2FnZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBsaXN0SXRlbUNvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgc2VhcmNoRW50cnlWYWx1ZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICB3aXRoU3ViT3B0aW9uczogUHJvcFR5cGVzLmJvb2xcbiAgfTtcblxuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIGN1c3RvbUNsYXNzZXM6IHt9LFxuICAgIGN1c3RvbUxpc3RJdGVtQ29tcG9uZW50OiBMaXN0SXRlbSxcbiAgICBjdXN0b21MaXN0SGVhZGVyQ29tcG9uZW50OiBudWxsLFxuICAgIGFsbG93Q3VzdG9tVmFsdWVzOiAwLFxuICAgIGN1c3RvbVZhbHVlczogW10sXG4gICAgZGlzcGxheU9wdGlvbjogZGVmYXVsdERpc3BsYXksXG4gICAgb25PcHRpb25TZWxlY3RlZDogKCkgPT4ge30sXG4gICAgZGVmYXVsdENsYXNzTmFtZXM6IHRydWUsXG4gICAgc2VsZWN0aW9uSW5kZXg6IG51bGwsXG4gICAgd2l0aFN1Yk9wdGlvbnM6IGZhbHNlXG4gIH07XG5cbiAgc3RhdGUgPSB7XG4gICAgY3VycmVudE9wdGlvbjoge30sXG4gICAgc3VibWVudVZpc2libGU6IGZhbHNlLFxuICAgIHN1Ym1lbnVQb3NpdGlvbjoge31cbiAgfTtcblxuICBoYXNTdWJPcHRpb25zID0gISF0aGlzLnByb3BzLnN1Yk9wdGlvbnNcblxuICByZWYgPSBjcmVhdGVSZWYoKTtcblxuICBfcmVzZXRTdGF0ZShjYWxsYmFjaykge1xuICAgIHRoaXMuc2V0U3RhdGUoe2N1cnJlbnRPcHRpb246IHt9LCBzdWJtZW51VmlzaWJsZTogZmFsc2UsIHN1Ym1lbnVQb3NpdGlvbjoge319LCBjYWxsYmFjayk7XG4gIH1cblxuICBfb25DbGljayhvcHRpb24sIHN1Yk9wdGlvbiwgZXZlbnQpIHtcbiAgICBjb25zdCBvcHRpb25TZWxlY3RlZCA9XG4gICAgICB0eXBlb2Ygb3B0aW9uICE9PSAnb2JqZWN0J1xuICAgICAgICA/IG9wdGlvblxuICAgICAgICA6IHtcbiAgICAgICAgICAgIC4uLm9wdGlvbixcbiAgICAgICAgICAgIHNlbGVjdGVkQWdncmVnYXRvcjogc3ViT3B0aW9uPy5pZFxuICAgICAgICAgIH07XG4gICAgaWYgKFxuICAgICAgKHRoaXMucHJvcHMud2l0aFN1Yk9wdGlvbnMgJiYgKHN1Yk9wdGlvbj8uaWQgfHwgIW9wdGlvbi5hZ2dyZWdhdG9ycykpIHx8XG4gICAgICAhdGhpcy5wcm9wcy53aXRoU3ViT3B0aW9uc1xuICAgICkge1xuICAgICAgdGhpcy5wcm9wcy5vbk9wdGlvblNlbGVjdGVkKG9wdGlvblNlbGVjdGVkLCBldmVudCk7XG4gICAgfVxuICB9XG5cbiAgX29uTW91c2VPdmVyKG9wdGlvbiwgZXZlbnQpIHtcbiAgICBjb25zdCBlbCA9IGV2ZW50LnRhcmdldFxuICAgIHRoaXMuc2V0U3RhdGUoKHByZXZpb3VzU3RhdGUpID0+ICh7XG4gICAgICBjdXJyZW50T3B0aW9uOiBvcHRpb24sXG4gICAgICBzdWJtZW51VmlzaWJsZTogdHJ1ZSxcbiAgICAgIHN1Ym1lbnVQb3NpdGlvbjoge1xuICAgICAgICB0b3A6IGVsLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCxcbiAgICAgICAgbGVmdDogcHJldmlvdXNTdGF0ZS5zdWJtZW51UG9zaXRpb24ubGVmdCA/cHJldmlvdXNTdGF0ZS5zdWJtZW51UG9zaXRpb24ubGVmdCA6IHRoaXMucmVmLmN1cnJlbnQ/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnJpZ2h0XG4gICAgICB9XG4gICAgfSkpO1xuICB9XG5cbiAgY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wcykge1xuICAgIGlmIChwcmV2UHJvcHMuc2VhcmNoRW50cnlWYWx1ZSAhPT0gdGhpcy5wcm9wcy5zZWFyY2hFbnRyeVZhbHVlKSB7XG4gICAgICB0aGlzLl9yZXNldFN0YXRlKCk7XG4gICAgfVxuICB9XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7XG4gICAgICBzdWJNZW51UG9zaXRpb246IHsgbGVmdDogdGhpcy5yZWYuY3VycmVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucmlnaHQgfVxuICAgIH0pXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge2ZpeGVkT3B0aW9ucywgbGlnaHR9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBkaXNwbGF5ID0gdGhpcy5wcm9wcy5kaXNwbGF5T3B0aW9uO1xuXG4gICAgLy8gRG9uJ3QgcmVuZGVyIGlmIHRoZXJlIGFyZSBubyBvcHRpb25zIHRvIGRpc3BsYXlcbiAgICBpZiAoIXRoaXMucHJvcHMub3B0aW9ucy5sZW5ndGggJiYgdGhpcy5wcm9wcy5hbGxvd0N1c3RvbVZhbHVlcyA8PSAwKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWVPZmZzZXQgPSBBcnJheS5pc0FycmF5KGZpeGVkT3B0aW9ucykgPyBmaXhlZE9wdGlvbnMubGVuZ3RoIDogMDtcblxuICAgIC8vIEZvciBzb21lIHJlYXNvbiBvbkNsaWNrIGlzIG5vdCBmaXJlZCB3aGVuIGNsaWNrZWQgb24gYW4gb3B0aW9uXG4gICAgLy8gb25Nb3VzZURvd24gaXMgdXNlZCBoZXJlIGFzIGEgd29ya2Fyb3VuZCBvZiAjMjA1IGFuZCBvdGhlclxuICAgIHJldHVybiAoXG4gICAgICA8RHJvcGRvd25MaXN0Q29udGFpbmVyIG9uTW91c2VMZWF2ZT17KCkgPT4gdGhpcy5fcmVzZXRTdGF0ZSgpfT5cbiAgICAgICAgPERyb3Bkb3duTGlzdFdyYXBwZXIgY2xhc3NOYW1lPXtjbGFzc0xpc3QubGlzdH0gbGlnaHQ9e2xpZ2h0fT5cbiAgICAgICAgICB7dGhpcy5wcm9wcy5jdXN0b21MaXN0SGVhZGVyQ29tcG9uZW50ID8gKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzTGlzdC5saXN0SGVhZGVyfT5cbiAgICAgICAgICAgICAgPHRoaXMucHJvcHMuY3VzdG9tTGlzdEhlYWRlckNvbXBvbmVudCAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPGRpdiByZWY9e3RoaXMucmVmfT5cbiAgICAgICAgICAgIHt2YWx1ZU9mZnNldCA+IDAgPyAoXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc0xpc3QubGlzdFNlY3Rpb259PlxuICAgICAgICAgICAgICAgIHtmaXhlZE9wdGlvbnMubWFwKCh2YWx1ZSwgaSkgPT4gKFxuICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoY2xhc3NMaXN0Lmxpc3RJdGVtLCB7XG4gICAgICAgICAgICAgICAgICAgICAgYWN0aXZlOiB0aGlzLnByb3BzLnNlbGVjdGlvbkluZGV4ID09PSBpLFxuICAgICAgICAgICAgICAgICAgICAgIGhvdmVyOiB2YWx1ZS5pZCAmJiAodGhpcy5zdGF0ZS5jdXJyZW50T3B0aW9uPy5pZCA9PT0gdmFsdWUuaWQpLFxuICAgICAgICAgICAgICAgICAgICAgIGZpeGVkOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgICAgICBrZXk9e2Ake2Rpc3BsYXkodmFsdWUpfV8ke2l9YH1cbiAgICAgICAgICAgICAgICAgICAgb25Nb3VzZURvd249e2UgPT4gIXRoaXMuaGFzU3ViT3B0aW9ucyAmJiB0aGlzLl9vbkNsaWNrKHZhbHVlLCBudWxsLCBlKX1cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17ZSA9PiAhdGhpcy5oYXNTdWJPcHRpb25zICYmIHRoaXMuX29uQ2xpY2sodmFsdWUsIG51bGwsIGUpfVxuICAgICAgICAgICAgICAgICAgICBvbk1vdXNlRW50ZXI9e2UgPT4gdGhpcy5fb25Nb3VzZU92ZXIodmFsdWUsIGUpfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8dGhpcy5wcm9wcy5jdXN0b21MaXN0SXRlbUNvbXBvbmVudCB2YWx1ZT17dmFsdWV9IGRpc3BsYXlPcHRpb249e2Rpc3BsYXl9IC8+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApIDogbnVsbH1cblxuICAgICAgICAgICAge3RoaXMucHJvcHMub3B0aW9ucy5tYXAoKHZhbHVlLCBpKSA9PiAoXG4gICAgICAgICAgICAgIDxJdGVtXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKGNsYXNzTGlzdC5saXN0SXRlbSwge1xuICAgICAgICAgICAgICAgICAgYWN0aXZlOiB0aGlzLnByb3BzLnNlbGVjdGlvbkluZGV4ID09PSBpICsgdmFsdWVPZmZzZXQsXG4gICAgICAgICAgICAgICAgICBob3ZlcjogdmFsdWUuaWQgJiYgKHRoaXMuc3RhdGUuY3VycmVudE9wdGlvbj8uaWQgPT09IHZhbHVlLmlkKVxuICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgIGtleT17YCR7ZGlzcGxheSh2YWx1ZSl9XyR7aX1gfVxuICAgICAgICAgICAgICAgIG9uTW91c2VEb3duPXtlID0+ICF0aGlzLmhhc1N1Yk9wdGlvbnMgJiYgdGhpcy5fb25DbGljayh2YWx1ZSwgbnVsbCwgZSl9XG4gICAgICAgICAgICAgICAgb25DbGljaz17ZSA9PiAhdGhpcy5oYXNTdWJPcHRpb25zICYmIHRoaXMuX29uQ2xpY2sodmFsdWUsIG51bGwsIGUpfVxuICAgICAgICAgICAgICAgIG9uTW91c2VFbnRlcj17ZSA9PiB0aGlzLl9vbk1vdXNlT3Zlcih2YWx1ZSwgZSl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8dGhpcy5wcm9wcy5jdXN0b21MaXN0SXRlbUNvbXBvbmVudCB2YWx1ZT17dmFsdWV9IGRpc3BsYXlPcHRpb249e2Rpc3BsYXl9IC8+XG4gICAgICAgICAgICAgICAge3RoaXMucHJvcHMud2l0aFN1Yk9wdGlvbnMgJiYgdmFsdWUuYWdncmVnYXRvcnMgJiYgPENoZXZyb25SaWdodCAvPn1cbiAgICAgICAgICAgICAgPC9JdGVtPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvRHJvcGRvd25MaXN0V3JhcHBlcj5cbiAgICAgICAge3RoaXMucHJvcHMud2l0aFN1Yk9wdGlvbnMgJiYgKFxuICAgICAgICAgIC8vIFRoZSBkaXNwbGF5OiAnbm9uZScgaXMgYSB0cmljayB0byBiZSBhYmxlIHRvIHJlbmRlciB0aGUgSXRlbVNlbGVjdG9yU3VibWVudSBpbiB0aGUgY29ycmVjdCBwb3NpdGlvblxuICAgICAgICAgIC8vIEV2ZW4gd2l0aCBkaXNwbGF5OiAnbm9uZScgdGhlIFBvcnRhbGVkIGNvbXBvbmVudCByZW5kZXIgaXRzIGNoaWxkIG9uIHRoZSB0b3Agb2YgdGhlIERPTVxuICAgICAgICAgIDxkaXYgc3R5bGU9e3tkaXNwbGF5OiAnbm9uZSd9fT5cbiAgICAgICAgICAgIDxQb3J0YWxlZFxuICAgICAgICAgICAgICBpc09wZW5lZD17dGhpcy5zdGF0ZS5jdXJyZW50T3B0aW9uICYmIHRoaXMuc3RhdGUuY3VycmVudE9wdGlvbi5hZ2dyZWdhdG9yc31cbiAgICAgICAgICAgICAgbGVmdD17dGhpcy5zdGF0ZS5zdWJtZW51UG9zaXRpb24ubGVmdH1cbiAgICAgICAgICAgICAgdG9wPXt0aGlzLnN0YXRlLnN1Ym1lbnVQb3NpdGlvbi50b3B9XG4gICAgICAgICAgICAgIG1vZGFsU3R5bGU9e3tcbiAgICAgICAgICAgICAgICBvdmVybGF5OiB7XG4gICAgICAgICAgICAgICAgICB3aWR0aDogMCxcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogMFxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPEl0ZW1TZWxlY3RvclN1Ym1lbnVcbiAgICAgICAgICAgICAgICBwb3NpdGlvbj17dGhpcy5zdGF0ZS5zdWJtZW51UG9zaXRpb259XG4gICAgICAgICAgICAgICAgb3B0aW9ucz17dGhpcy5zdGF0ZS5jdXJyZW50T3B0aW9uPy5hZ2dyZWdhdG9ycz8ubWFwKGEgPT5cbiAgICAgICAgICAgICAgICAgIEZJRUxEX0FHR1JFR0FUT1JTLmZpbmQoYW0gPT4gYW0uaWQgPT09IGEpXG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoYWdncmVnYXRvciwgZSkgPT4gdGhpcy5fb25DbGljayh0aGlzLnN0YXRlLmN1cnJlbnRPcHRpb24sIGFnZ3JlZ2F0b3IsIGUpfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9Qb3J0YWxlZD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgIDwvRHJvcGRvd25MaXN0Q29udGFpbmVyPlxuICAgICk7XG4gIH1cbn1cbiJdfQ==
319
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2NvbW1vbi9pdGVtLXNlbGVjdG9yL2Ryb3Bkb3duLWxpc3QuanMiXSwibmFtZXMiOlsiY2xhc3NMaXN0IiwibGlzdCIsImxpc3RIZWFkZXIiLCJsaXN0U2VjdGlvbiIsImxpc3RJdGVtIiwibGlzdEl0ZW1BbmNob3IiLCJkZWZhdWx0RGlzcGxheSIsImQiLCJ2YWx1ZSIsIkRpdmlkZXIiLCJzdHlsZWQiLCJkaXYiLCJMaXN0SXRlbSIsImRpc3BsYXlPcHRpb24iLCJEcm9wZG93bkxpc3RXcmFwcGVyIiwicHJvcHMiLCJsaWdodCIsInRoZW1lIiwiZHJvcGRvd25MaXN0QmdkTFQiLCJkcm9wZG93bkxpc3RCZ2QiLCJkcm9wZG93bkxpc3RCb3JkZXJUb3BMVCIsImRyb3Bkb3duTGlzdEJvcmRlclRvcCIsImRyb3Bkb3duTGlzdExUIiwiZHJvcGRvd25MaXN0IiwiRHJvcGRvd25MaXN0Q29udGFpbmVyIiwiSXRlbSIsIkRyb3Bkb3duTGlzdCIsImN1cnJlbnRPcHRpb24iLCJzdWJtZW51VmlzaWJsZSIsInN1Ym1lbnVQb3NpdGlvbiIsInN1Yk9wdGlvbnMiLCJjYWxsYmFjayIsInNldFN0YXRlIiwib3B0aW9uIiwic3ViT3B0aW9uIiwiZXZlbnQiLCJvcHRpb25TZWxlY3RlZCIsInNlbGVjdGVkQWdncmVnYXRvciIsImlkIiwid2l0aFN1Yk9wdGlvbnMiLCJhZ2dyZWdhdG9ycyIsIm9uT3B0aW9uU2VsZWN0ZWQiLCJlbCIsInRhcmdldCIsInByZXZpb3VzU3RhdGUiLCJ0b3AiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJsZWZ0IiwicmVmIiwiY3VycmVudCIsInJpZ2h0IiwicHJldlByb3BzIiwic2VhcmNoRW50cnlWYWx1ZSIsIl9yZXNldFN0YXRlIiwic3ViTWVudVBvc2l0aW9uIiwiZml4ZWRPcHRpb25zIiwiZGlzcGxheSIsIm9wdGlvbnMiLCJsZW5ndGgiLCJhbGxvd0N1c3RvbVZhbHVlcyIsInZhbHVlT2Zmc2V0IiwiQXJyYXkiLCJpc0FycmF5IiwiY3VzdG9tTGlzdEhlYWRlckNvbXBvbmVudCIsIm1hcCIsImkiLCJhY3RpdmUiLCJzZWxlY3Rpb25JbmRleCIsImhvdmVyIiwic3RhdGUiLCJmaXhlZCIsImUiLCJoYXNTdWJPcHRpb25zIiwiX29uQ2xpY2siLCJfb25Nb3VzZU92ZXIiLCJkaXZpZGVyIiwib3ZlcmxheSIsIndpZHRoIiwiaGVpZ2h0IiwiYSIsIkZJRUxEX0FHR1JFR0FUT1JTIiwiZmluZCIsImFtIiwiYWdncmVnYXRvciIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsImFycmF5T2YiLCJhbnkiLCJudW1iZXIiLCJjdXN0b21DbGFzc2VzIiwib2JqZWN0IiwiY3VzdG9tVmFsdWVzIiwiY3VzdG9tTGlzdEl0ZW1Db21wb25lbnQiLCJvbmVPZlR5cGUiLCJlbGVtZW50IiwiZnVuYyIsImlzUmVxdWlyZWQiLCJkZWZhdWx0Q2xhc3NOYW1lcyIsImJvb2wiLCJhcmVSZXN1bHRzVHJ1bmNhdGVkIiwicmVzdWx0c1RydW5jYXRlZE1lc3NhZ2UiLCJzdHJpbmciLCJsaXN0SXRlbUNvbXBvbmVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7OztBQUVPLElBQU1BLFNBQVMsR0FBRztBQUN2QkMsRUFBQUEsSUFBSSxFQUFFLGVBRGlCO0FBRXZCQyxFQUFBQSxVQUFVLEVBQUUsY0FGVztBQUd2QkMsRUFBQUEsV0FBVyxFQUFFLGVBSFU7QUFJdkJDLEVBQUFBLFFBQVEsRUFBRSxZQUphO0FBS3ZCQyxFQUFBQSxjQUFjLEVBQUU7QUFMTyxDQUFsQjs7O0FBUVAsSUFBTUMsY0FBYyxHQUFHLFNBQWpCQSxjQUFpQixDQUFBQyxDQUFDO0FBQUEsU0FBSUEsQ0FBQyxDQUFDQyxLQUFGLElBQVdELENBQWY7QUFBQSxDQUF4Qjs7QUFFQSxJQUFNRSxPQUFPLEdBQUdDLDZCQUFP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QixFQUFFc0Isc0JBQVVRLFNBQVYsQ0FBb0IsQ0FBQ1Isc0JBQVVTLE9BQVgsRUFBb0JULHNCQUFVVSxJQUE5QixDQUFwQixDQVBWO0FBUWpCNUIsRUFBQUEsY0FBYyxFQUFFa0Isc0JBQVVHLE1BUlQ7QUFTakIvQyxFQUFBQSxnQkFBZ0IsRUFBRTRDLHNCQUFVVSxJQVRYO0FBVWpCbEYsRUFBQUEsYUFBYSxFQUFFd0Usc0JBQVVVLElBQVYsQ0FBZUMsVUFWYjtBQVdqQkMsRUFBQUEsaUJBQWlCLEVBQUVaLHNCQUFVYSxJQVhaO0FBWWpCQyxFQUFBQSxtQkFBbUIsRUFBRWQsc0JBQVVhLElBWmQ7QUFhakJFLEVBQUFBLHVCQUF1QixFQUFFZixzQkFBVWdCLE1BYmxCO0FBY2pCQyxFQUFBQSxpQkFBaUIsRUFBRWpCLHNCQUFVVSxJQWRaO0FBZWpCM0MsRUFBQUEsZ0JBQWdCLEVBQUVpQyxzQkFBVWdCLE1BZlg7QUFnQmpCOUQsRUFBQUEsY0FBYyxFQUFFOEMsc0JBQVVhO0FBaEJULEM7aUNBREF4RSxZLGtCQW9CRztBQUNwQitELEVBQUFBLGFBQWEsRUFBRSxFQURLO0FBRXBCRyxFQUFBQSx1QkFBdUIsRUFBRWhGLFFBRkw7QUFHcEJtRCxFQUFBQSx5QkFBeUIsRUFBRSxJQUhQO0FBSXBCSixFQUFBQSxpQkFBaUIsRUFBRSxDQUpDO0FBS3BCZ0MsRUFBQUEsWUFBWSxFQUFFLEVBTE07QUFNcEI5RSxFQUFBQSxhQUFhLEVBQUVQLGNBTks7QUFPcEJtQyxFQUFBQSxnQkFBZ0IsRUFBRSw0QkFBTSxDQUFFLENBUE47QUFRcEJ3RCxFQUFBQSxpQkFBaUIsRUFBRSxJQVJDO0FBU3BCOUIsRUFBQUEsY0FBYyxFQUFFLElBVEk7QUFVcEI1QixFQUFBQSxjQUFjLEVBQUU7QUFWSSxDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50LCBjcmVhdGVSZWZ9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgY2xhc3NOYW1lcyBmcm9tICdjbGFzc25hbWVzJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IEl0ZW1TZWxlY3RvclN1Ym1lbnUgZnJvbSAnLi9pdGVtLXNlbGVjdG9yLXN1Ym1lbnUnO1xuaW1wb3J0IHtDaGV2cm9uUmlnaHR9IGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL2ljb25zJztcbmltcG9ydCB7RklFTERfQUdHUkVHQVRPUlN9IGZyb20gJ2NvbnN0YW50cy9kZWZhdWx0LXNldHRpbmdzJztcbmltcG9ydCBQb3J0YWxlZCBmcm9tICcuLi9wb3J0YWxlZCc7XG5cbmV4cG9ydCBjb25zdCBjbGFzc0xpc3QgPSB7XG4gIGxpc3Q6ICdsaXN0LXNlbGVjdG9yJyxcbiAgbGlzdEhlYWRlcjogJ2xpc3RfX2hlYWRlcicsXG4gIGxpc3RTZWN0aW9uOiAnbGlzdF9fc2VjdGlvbicsXG4gIGxpc3RJdGVtOiAnbGlzdF9faXRlbScsXG4gIGxpc3RJdGVtQW5jaG9yOiAnbGlzdF9faXRlbV9fYW5jaG9yJ1xufTtcblxuY29uc3QgZGVmYXVsdERpc3BsYXkgPSBkID0+IGQudmFsdWUgfHwgZDtcblxuY29uc3QgRGl2aWRlciA9IHN0eWxlZC5kaXZgXG4gIGJvcmRlci10b3A6IDFweCBzb2xpZCByZ2JhKDQ0LCA0OCwgNTAsIDAuMTIpO1xuICBtYXJnaW46IDhweCAwO1xuYDtcblxuZXhwb3J0IGNvbnN0IExpc3RJdGVtID0gKHt2YWx1ZSwgZGlzcGxheU9wdGlvbiA9IGRlZmF1bHREaXNwbGF5fSkgPT4gKFxuICA8c3BhbiBjbGFzc05hbWU9e2NsYXNzTGlzdC5saXN0SXRlbUFuY2hvcn0+e2Rpc3BsYXlPcHRpb24odmFsdWUpfTwvc3Bhbj5cbik7XG5cbmNvbnN0IERyb3Bkb3duTGlzdFdyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+XG4gICAgcHJvcHMubGlnaHQgPyBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RCZ2RMVCA6IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdEJnZH07XG4gIGJvcmRlci10b3A6IDFweCBzb2xpZFxuICAgICR7cHJvcHMgPT5cbiAgICAgIHByb3BzLmxpZ2h0ID8gcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0Qm9yZGVyVG9wTFQgOiBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RCb3JkZXJUb3B9O1xuICAke3Byb3BzID0+IChwcm9wcy5saWdodCA/IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdExUIDogcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0KX07XG5gO1xuXG5jb25zdCBEcm9wZG93bkxpc3RDb250YWluZXIgPSBzdHlsZWQuZGl2YFxuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gO1xuXG5jb25zdCBJdGVtID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBwYWRkaW5nLXJpZ2h0OiAyNXB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIHN2ZyB7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIHJpZ2h0OiAwO1xuICAgIHRvcDogNTAlO1xuICAgIHRyYW5zZm9ybTogdHJhbnNsYXRlWSgtNTAlKTtcbiAgICBvcGFjaXR5OiAwLjY7XG4gIH1cbiAgJjpob3ZlciwgJi5ob3ZlciB7XG4gICAgc3ZnIHtcbiAgICAgIG9wYWNpdHk6IDE7XG4gICAgfVxuICB9XG5gO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBEcm9wZG93bkxpc3QgZXh0ZW5kcyBDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIG9wdGlvbnM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5hbnkpLFxuICAgIHN1Yk9wdGlvbnM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5hbnkpLFxuICAgIGFsbG93Q3VzdG9tVmFsdWVzOiBQcm9wVHlwZXMubnVtYmVyLFxuICAgIGN1c3RvbUNsYXNzZXM6IFByb3BUeXBlcy5vYmplY3QsXG4gICAgY3VzdG9tVmFsdWVzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuYW55KSxcbiAgICBjdXN0b21MaXN0SXRlbUNvbXBvbmVudDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmVsZW1lbnQsIFByb3BUeXBlcy5mdW5jXSksXG4gICAgY3VzdG9tTGlzdEhlYWRlckNvbXBvbmVudDogUHJvcFR5cGVzLm9uZU9mVHlwZShbUHJvcFR5cGVzLmVsZW1lbnQsIFByb3BUeXBlcy5mdW5jXSksXG4gICAgc2VsZWN0aW9uSW5kZXg6IFByb3BUeXBlcy5udW1iZXIsXG4gICAgb25PcHRpb25TZWxlY3RlZDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgZGlzcGxheU9wdGlvbjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICBkZWZhdWx0Q2xhc3NOYW1lczogUHJvcFR5cGVzLmJvb2wsXG4gICAgYXJlUmVzdWx0c1RydW5jYXRlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgcmVzdWx0c1RydW5jYXRlZE1lc3NhZ2U6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgbGlzdEl0ZW1Db21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLFxuICAgIHNlYXJjaEVudHJ5VmFsdWU6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgd2l0aFN1Yk9wdGlvbnM6IFByb3BUeXBlcy5ib29sXG4gIH07XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBjdXN0b21DbGFzc2VzOiB7fSxcbiAgICBjdXN0b21MaXN0SXRlbUNvbXBvbmVudDogTGlzdEl0ZW0sXG4gICAgY3VzdG9tTGlzdEhlYWRlckNvbXBvbmVudDogbnVsbCxcbiAgICBhbGxvd0N1c3RvbVZhbHVlczogMCxcbiAgICBjdXN0b21WYWx1ZXM6IFtdLFxuICAgIGRpc3BsYXlPcHRpb246IGRlZmF1bHREaXNwbGF5LFxuICAgIG9uT3B0aW9uU2VsZWN0ZWQ6ICgpID0+IHt9LFxuICAgIGRlZmF1bHRDbGFzc05hbWVzOiB0cnVlLFxuICAgIHNlbGVjdGlvbkluZGV4OiBudWxsLFxuICAgIHdpdGhTdWJPcHRpb25zOiBmYWxzZVxuICB9O1xuXG4gIHN0YXRlID0ge1xuICAgIGN1cnJlbnRPcHRpb246IHt9LFxuICAgIHN1Ym1lbnVWaXNpYmxlOiBmYWxzZSxcbiAgICBzdWJtZW51UG9zaXRpb246IHt9XG4gIH07XG5cbiAgaGFzU3ViT3B0aW9ucyA9ICEhdGhpcy5wcm9wcy5zdWJPcHRpb25zO1xuXG4gIHJlZiA9IGNyZWF0ZVJlZigpO1xuXG4gIF9yZXNldFN0YXRlKGNhbGxiYWNrKSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7Y3VycmVudE9wdGlvbjoge30sIHN1Ym1lbnVWaXNpYmxlOiBmYWxzZSwgc3VibWVudVBvc2l0aW9uOiB7fX0sIGNhbGxiYWNrKTtcbiAgfVxuXG4gIF9vbkNsaWNrKG9wdGlvbiwgc3ViT3B0aW9uLCBldmVudCkge1xuICAgIGNvbnN0IG9wdGlvblNlbGVjdGVkID1cbiAgICAgIHR5cGVvZiBvcHRpb24gIT09ICdvYmplY3QnXG4gICAgICAgID8gb3B0aW9uXG4gICAgICAgIDoge1xuICAgICAgICAgICAgLi4ub3B0aW9uLFxuICAgICAgICAgICAgc2VsZWN0ZWRBZ2dyZWdhdG9yOiBzdWJPcHRpb24/LmlkXG4gICAgICAgICAgfTtcbiAgICBpZiAoXG4gICAgICAodGhpcy5wcm9wcy53aXRoU3ViT3B0aW9ucyAmJiAoc3ViT3B0aW9uPy5pZCB8fCAhb3B0aW9uLmFnZ3JlZ2F0b3JzKSkgfHxcbiAgICAgICF0aGlzLnByb3BzLndpdGhTdWJPcHRpb25zXG4gICAgKSB7XG4gICAgICB0aGlzLnByb3BzLm9uT3B0aW9uU2VsZWN0ZWQob3B0aW9uU2VsZWN0ZWQsIGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICBfb25Nb3VzZU92ZXIob3B0aW9uLCBldmVudCkge1xuICAgIGNvbnN0IGVsID0gZXZlbnQudGFyZ2V0XG4gICAgdGhpcy5zZXRTdGF0ZSgocHJldmlvdXNTdGF0ZSkgPT4gKHtcbiAgICAgIGN1cnJlbnRPcHRpb246IG9wdGlvbixcbiAgICAgIHN1Ym1lbnVWaXNpYmxlOiB0cnVlLFxuICAgICAgc3VibWVudVBvc2l0aW9uOiB7XG4gICAgICAgIHRvcDogZWwuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wLFxuICAgICAgICBsZWZ0OiBwcmV2aW91c1N0YXRlLnN1Ym1lbnVQb3NpdGlvbi5sZWZ0ID9wcmV2aW91c1N0YXRlLnN1Ym1lbnVQb3NpdGlvbi5sZWZ0IDogdGhpcy5yZWYuY3VycmVudD8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkucmlnaHRcbiAgICAgIH1cbiAgICB9KSk7XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgaWYgKHByZXZQcm9wcy5zZWFyY2hFbnRyeVZhbHVlICE9PSB0aGlzLnByb3BzLnNlYXJjaEVudHJ5VmFsdWUpIHtcbiAgICAgIHRoaXMuX3Jlc2V0U3RhdGUoKTtcbiAgICB9XG4gIH1cblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICB0aGlzLnNldFN0YXRlKHtcbiAgICAgIHN1Yk1lbnVQb3NpdGlvbjogeyBsZWZ0OiB0aGlzLnJlZi5jdXJyZW50Py5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS5yaWdodCB9XG4gICAgfSlcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7Zml4ZWRPcHRpb25zLCBsaWdodH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGRpc3BsYXkgPSB0aGlzLnByb3BzLmRpc3BsYXlPcHRpb247XG5cbiAgICAvLyBEb24ndCByZW5kZXIgaWYgdGhlcmUgYXJlIG5vIG9wdGlvbnMgdG8gZGlzcGxheVxuICAgIGlmICghdGhpcy5wcm9wcy5vcHRpb25zLmxlbmd0aCAmJiB0aGlzLnByb3BzLmFsbG93Q3VzdG9tVmFsdWVzIDw9IDApIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZU9mZnNldCA9IEFycmF5LmlzQXJyYXkoZml4ZWRPcHRpb25zKSA/IGZpeGVkT3B0aW9ucy5sZW5ndGggOiAwO1xuXG4gICAgLy8gRm9yIHNvbWUgcmVhc29uIG9uQ2xpY2sgaXMgbm90IGZpcmVkIHdoZW4gY2xpY2tlZCBvbiBhbiBvcHRpb25cbiAgICAvLyBvbk1vdXNlRG93biBpcyB1c2VkIGhlcmUgYXMgYSB3b3JrYXJvdW5kIG9mICMyMDUgYW5kIG90aGVyXG4gICAgcmV0dXJuIChcbiAgICAgIDxEcm9wZG93bkxpc3RDb250YWluZXIgb25Nb3VzZUxlYXZlPXsoKSA9PiB0aGlzLl9yZXNldFN0YXRlKCl9PlxuICAgICAgICA8RHJvcGRvd25MaXN0V3JhcHBlciBjbGFzc05hbWU9e2NsYXNzTGlzdC5saXN0fSBsaWdodD17bGlnaHR9PlxuICAgICAgICAgIHt0aGlzLnByb3BzLmN1c3RvbUxpc3RIZWFkZXJDb21wb25lbnQgPyAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3NMaXN0Lmxpc3RIZWFkZXJ9PlxuICAgICAgICAgICAgICA8dGhpcy5wcm9wcy5jdXN0b21MaXN0SGVhZGVyQ29tcG9uZW50IC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8ZGl2IHJlZj17dGhpcy5yZWZ9PlxuICAgICAgICAgICAge3ZhbHVlT2Zmc2V0ID4gMCA/IChcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzTGlzdC5saXN0U2VjdGlvbn0+XG4gICAgICAgICAgICAgICAge2ZpeGVkT3B0aW9ucy5tYXAoKHZhbHVlLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhjbGFzc0xpc3QubGlzdEl0ZW0sIHtcbiAgICAgICAgICAgICAgICAgICAgICBhY3RpdmU6IHRoaXMucHJvcHMuc2VsZWN0aW9uSW5kZXggPT09IGksXG4gICAgICAgICAgICAgICAgICAgICAgaG92ZXI6IHZhbHVlLmlkICYmICh0aGlzLnN0YXRlLmN1cnJlbnRPcHRpb24/LmlkID09PSB2YWx1ZS5pZCksXG4gICAgICAgICAgICAgICAgICAgICAgZml4ZWQ6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgICAgIGtleT17YCR7ZGlzcGxheSh2YWx1ZSl9XyR7aX1gfVxuICAgICAgICAgICAgICAgICAgICBvbk1vdXNlRG93bj17ZSA9PiAhdGhpcy5oYXNTdWJPcHRpb25zICYmIHRoaXMuX29uQ2xpY2sodmFsdWUsIG51bGwsIGUpfVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtlID0+ICF0aGlzLmhhc1N1Yk9wdGlvbnMgJiYgdGhpcy5fb25DbGljayh2YWx1ZSwgbnVsbCwgZSl9XG4gICAgICAgICAgICAgICAgICAgIG9uTW91c2VFbnRlcj17ZSA9PiB0aGlzLl9vbk1vdXNlT3Zlcih2YWx1ZSwgZSl9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDx0aGlzLnByb3BzLmN1c3RvbUxpc3RJdGVtQ29tcG9uZW50IHZhbHVlPXt2YWx1ZX0gZGlzcGxheU9wdGlvbj17ZGlzcGxheX0gLz5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkgOiBudWxsfVxuXG4gICAgICAgICAgICB7dGhpcy5wcm9wcy5vcHRpb25zLm1hcCgodmFsdWUsIGkpID0+IChcbiAgICAgICAgICAgICAgPGRpdiBrZXk9e2Ake2Rpc3BsYXkodmFsdWUpfV8ke2l9YH0+XG4gICAgICAgICAgICAgICAge3ZhbHVlLmRpdmlkZXIgJiYgPERpdmlkZXIgLz59XG4gICAgICAgICAgICAgICAgPEl0ZW1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhjbGFzc0xpc3QubGlzdEl0ZW0sIHtcbiAgICAgICAgICAgICAgICAgICAgYWN0aXZlOiB0aGlzLnByb3BzLnNlbGVjdGlvbkluZGV4ID09PSBpICsgdmFsdWVPZmZzZXQsXG4gICAgICAgICAgICAgICAgICAgIGhvdmVyOiB2YWx1ZS5pZCAmJiAodGhpcy5zdGF0ZS5jdXJyZW50T3B0aW9uPy5pZCA9PT0gdmFsdWUuaWQpXG4gICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgIG9uTW91c2VEb3duPXtlID0+ICF0aGlzLmhhc1N1Yk9wdGlvbnMgJiYgdGhpcy5fb25DbGljayh2YWx1ZSwgbnVsbCwgZSl9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXtlID0+ICF0aGlzLmhhc1N1Yk9wdGlvbnMgJiYgdGhpcy5fb25DbGljayh2YWx1ZSwgbnVsbCwgZSl9XG4gICAgICAgICAgICAgICAgICBvbk1vdXNlRW50ZXI9e2UgPT4gdGhpcy5fb25Nb3VzZU92ZXIodmFsdWUsIGUpfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDx0aGlzLnByb3BzLmN1c3RvbUxpc3RJdGVtQ29tcG9uZW50IHZhbHVlPXt2YWx1ZX0gZGlzcGxheU9wdGlvbj17ZGlzcGxheX0gLz5cbiAgICAgICAgICAgICAgICAgIHt0aGlzLnByb3BzLndpdGhTdWJPcHRpb25zICYmIHZhbHVlLmFnZ3JlZ2F0b3JzICYmIDxDaGV2cm9uUmlnaHQgLz59XG4gICAgICAgICAgICAgICAgPC9JdGVtPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L0Ryb3Bkb3duTGlzdFdyYXBwZXI+XG4gICAgICAgIHt0aGlzLnByb3BzLndpdGhTdWJPcHRpb25zICYmIChcbiAgICAgICAgICAvLyBUaGUgZGlzcGxheTogJ25vbmUnIGlzIGEgdHJpY2sgdG8gYmUgYWJsZSB0byByZW5kZXIgdGhlIEl0ZW1TZWxlY3RvclN1Ym1lbnUgaW4gdGhlIGNvcnJlY3QgcG9zaXRpb25cbiAgICAgICAgICAvLyBFdmVuIHdpdGggZGlzcGxheTogJ25vbmUnIHRoZSBQb3J0YWxlZCBjb21wb25lbnQgcmVuZGVyIGl0cyBjaGlsZCBvbiB0aGUgdG9wIG9mIHRoZSBET01cbiAgICAgICAgICA8ZGl2IHN0eWxlPXt7ZGlzcGxheTogJ25vbmUnfX0+XG4gICAgICAgICAgICA8UG9ydGFsZWRcbiAgICAgICAgICAgICAgaXNPcGVuZWQ9e3RoaXMuc3RhdGUuY3VycmVudE9wdGlvbiAmJiB0aGlzLnN0YXRlLmN1cnJlbnRPcHRpb24uYWdncmVnYXRvcnN9XG4gICAgICAgICAgICAgIGxlZnQ9e3RoaXMuc3RhdGUuc3VibWVudVBvc2l0aW9uLmxlZnR9XG4gICAgICAgICAgICAgIHRvcD17dGhpcy5zdGF0ZS5zdWJtZW51UG9zaXRpb24udG9wfVxuICAgICAgICAgICAgICBtb2RhbFN0eWxlPXt7XG4gICAgICAgICAgICAgICAgb3ZlcmxheToge1xuICAgICAgICAgICAgICAgICAgd2lkdGg6IDAsXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ6IDBcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxJdGVtU2VsZWN0b3JTdWJtZW51XG4gICAgICAgICAgICAgICAgcG9zaXRpb249e3RoaXMuc3RhdGUuc3VibWVudVBvc2l0aW9ufVxuICAgICAgICAgICAgICAgIG9wdGlvbnM9e3RoaXMuc3RhdGUuY3VycmVudE9wdGlvbj8uYWdncmVnYXRvcnM/Lm1hcChhID0+XG4gICAgICAgICAgICAgICAgICBGSUVMRF9BR0dSRUdBVE9SUy5maW5kKGFtID0+IGFtLmlkID09PSBhKVxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KGFnZ3JlZ2F0b3IsIGUpID0+IHRoaXMuX29uQ2xpY2sodGhpcy5zdGF0ZS5jdXJyZW50T3B0aW9uLCBhZ2dyZWdhdG9yLCBlKX1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvUG9ydGFsZWQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICA8L0Ryb3Bkb3duTGlzdENvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG4iXX0=
@@ -91,7 +91,7 @@ var DropdownSelectActionRight = _styledComponents["default"].div(_templateObject
91
91
  return props.theme.textColor;
92
92
  });
93
93
 
94
- var DropdownWrapper = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n border: 0;\n width: 100%;\n left: 0;\n z-index: ", ";\n position: absolute;\n bottom: ", ";\n margin-top: ", ";\n margin-bottom: ", ";\n"])), function (props) {
94
+ var DropdownWrapper = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n border: 0;\n width: auto;\n left: 0;\n z-index: ", ";\n position: absolute;\n bottom: ", ";\n margin-top: ", ";\n margin-bottom: ", ";\n"])), function (props) {
95
95
  return props.theme.dropdownWrapperZ;
96
96
  }, function (props) {
97
97
  return props.placement === 'top' ? props.theme.inputBoxHeight : 'auto';
@@ -360,4 +360,4 @@ exports.ItemSelectorListen = ItemSelectorListen;
360
360
  var _default = (0, _reactIntl.injectIntl)((0, _reactOnclickoutside["default"])(ItemSelector));
361
361
 
362
362
  exports["default"] = _default;
363
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2NvbW1vbi9pdGVtLXNlbGVjdG9yL2l0ZW0tc2VsZWN0b3IuanMiXSwibmFtZXMiOlsiU3R5bGVkRHJvcGRvd25TZWxlY3QiLCJzdHlsZWQiLCJkaXYiLCJhdHRycyIsImNsYXNzTmFtZSIsInByb3BzIiwiaW5wdXRUaGVtZSIsInRoZW1lIiwic2Vjb25kYXJ5SW5wdXQiLCJpbnB1dExUIiwiaW5wdXQiLCJzaXplIiwiaW5wdXRCb3hIZWlnaHRTbWFsbCIsImlucHV0Qm94SGVpZ2h0IiwiZHJvcGRvd25MaXN0QW5jaG9yIiwiRHJvcGRvd25TZWxlY3RWYWx1ZSIsInNwYW4iLCJoYXNQbGFjZWhvbGRlciIsInNlbGVjdENvbG9yUGxhY2VIb2xkZXJMVCIsInNlbGVjdENvbG9yUGxhY2VIb2xkZXIiLCJzZWxlY3RDb2xvckxUIiwic2VsZWN0Q29sb3IiLCJkcm9wZG93bkxpc3RJdGVtTFQiLCJkcm9wZG93bkxpc3RJdGVtIiwiZHJvcGRvd25MaXN0QW5jaG9yTFQiLCJEcm9wZG93blNlbGVjdEFjdGlvblJpZ2h0Iiwic3VidGV4dENvbG9yIiwidGV4dENvbG9yIiwiRHJvcGRvd25XcmFwcGVyIiwiZHJvcGRvd25XcmFwcGVyWiIsInBsYWNlbWVudCIsImRyb3Bkb3duV2FwcGVyTWFyZ2luIiwicHJldmVudENsb3NlU2VsZWN0b3IiLCJJdGVtU2VsZWN0b3IiLCJzaG93VHlwZWFoZWFkIiwiZSIsInRhcmdldCIsImNsYXNzTGlzdCIsImNvbnRhaW5zIiwiX2hpZGVUeXBlYWhlYWQiLCJvbkJsdXIiLCJpdGVtIiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJzZWxlY3RlZEl0ZW1zIiwiaW5kZXgiLCJmaW5kSW5kZXgiLCJ0IiwiaXRlbXMiLCJzbGljZSIsImxlbmd0aCIsIm9uQ2hhbmdlIiwiY2xvc2VPblNlbGVjdCIsInNldFN0YXRlIiwiX29uQmx1ciIsImdldFZhbHVlIiwiQWNjZXNzb3IiLCJnZW5lcmF0ZU9wdGlvblRvU3RyaW5nRm9yIiwiZ2V0T3B0aW9uVmFsdWUiLCJkaXNwbGF5T3B0aW9uIiwicHJldmlvdXNTZWxlY3RlZCIsIm11bHRpU2VsZWN0IiwiY29uY2F0IiwiZGlzYWJsZWQiLCJpc0xvYWRpbmciLCJzdGF0ZSIsIm9uRm9jdXMiLCJpbnRsIiwicmVzdWx0cyIsImxpc3RJdGVtIiwibGlzdEFuY2hvciIsIm9wdGlvbnMiLCJmaWx0ZXJPcHRpb24iLCJmaXhlZE9wdGlvbnMiLCJ0eXBlYWhlYWRQbGFjZWhvbGRlciIsImZvcm1hdE1lc3NhZ2UiLCJpZCIsIl9zZWxlY3RJdGVtIiwiRHJvcERvd25SZW5kZXJDb21wb25lbnQiLCJEcm9wZG93bkhlYWRlckNvbXBvbmVudCIsIkRyb3BEb3duTGluZUl0ZW1SZW5kZXJDb21wb25lbnQiLCJzZWFyY2hhYmxlIiwid2l0aFN1Yk9wdGlvbnMiLCJzZWxlY3RlZCIsImhhc1ZhbHVlIiwiZHJvcGRvd25TZWxlY3RQcm9wcyIsImFjdGl2ZSIsIm9uQ2xpY2siLCJfc2hvd1R5cGVhaGVhZCIsImVycm9yIiwiaXNFcnJvciIsInBvc2l0aW9uIiwicGxhY2Vob2xkZXIiLCJfcmVtb3ZlSXRlbSIsIkN1c3RvbUNoaWNrbGV0Q29tcG9uZW50IiwiZXJhc2FibGUiLCJfb25FcmFzZSIsInNob3dBcnJvdyIsIl9yZW5kZXJEcm9wZG93biIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsIm9uZU9mVHlwZSIsImFycmF5Iiwic3RyaW5nIiwibnVtYmVyIiwiYm9vbCIsIm9iamVjdCIsImZ1bmMiLCJpc1JlcXVpcmVkIiwiYXJyYXlPZiIsImFueSIsImRyb3Bkb3duSGVhZGVyIiwiRHJvcGRvd25MaXN0IiwiTGlzdEl0ZW0iLCJJdGVtU2VsZWN0b3JMaXN0ZW4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FB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QzFCO0FBaUNqQmIsRUFBQUEsdUJBQXVCLEVBQUVNLHNCQUFVTyxJQWpDbEI7QUFrQ2pCekIsRUFBQUEsY0FBYyxFQUFFa0Isc0JBQVVLO0FBbENULEM7aUNBRGZ4RSxZLGtCQXNDa0I7QUFDcEI4RCxFQUFBQSxRQUFRLEVBQUUsS0FEVTtBQUVwQkUsRUFBQUEsU0FBUyxFQUFFLEtBRlM7QUFHcEJuRSxFQUFBQSxTQUFTLEVBQUUsUUFIUztBQUlwQmMsRUFBQUEsYUFBYSxFQUFFLEVBSks7QUFLcEJlLEVBQUFBLGFBQWEsRUFBRSxJQUxLO0FBTXBCRCxFQUFBQSxjQUFjLEVBQUUsSUFOSTtBQU9wQmMsRUFBQUEsWUFBWSxFQUFFLElBUE07QUFRcEJDLEVBQUFBLFlBQVksRUFBRSxJQVJNO0FBU3BCbkUsRUFBQUEsVUFBVSxFQUFFLFNBVFE7QUFVcEJ1RCxFQUFBQSxXQUFXLEVBQUUsSUFWTztBQVdwQitCLEVBQUFBLFdBQVcsRUFBRSx3QkFYTztBQVlwQnhDLEVBQUFBLGFBQWEsRUFBRSxJQVpLO0FBYXBCNkIsRUFBQUEsVUFBVSxFQUFFLElBYlE7QUFjcEI4QixFQUFBQSxjQUFjLEVBQUUsSUFkSTtBQWVwQmhDLEVBQUFBLHVCQUF1QixFQUFFLElBZkw7QUFnQnBCRCxFQUFBQSx1QkFBdUIsRUFBRWtDLHdCQWhCTDtBQWlCcEJoQyxFQUFBQSwrQkFBK0IsRUFBRWlDLHNCQWpCYjtBQWtCcEIvQixFQUFBQSxjQUFjLEVBQUU7QUFsQkksQztBQWtOakIsSUFBTWdDLGtCQUFrQixHQUFHLHFDQUFzQmpGLFlBQXRCLENBQTNCOzs7ZUFDUSwyQkFBVyxxQ0FBc0JBLFlBQXRCLENBQVgsQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMiBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHVuaXFCeSBmcm9tICdsb2Rhc2gudW5pcWJ5JztcbmltcG9ydCBsaXN0ZW5zVG9DbGlja091dHNpZGUgZnJvbSAncmVhY3Qtb25jbGlja291dHNpZGUnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5cbmltcG9ydCBBY2Nlc3NvciBmcm9tICcuL2FjY2Vzc29yJztcbmltcG9ydCBDaGlja2xldGVkSW5wdXQgZnJvbSAnLi9jaGlja2xldGVkLWlucHV0JztcbmltcG9ydCBUeXBlYWhlYWQgZnJvbSAnLi90eXBlYWhlYWQnO1xuaW1wb3J0IHtEZWxldGUsIEFycm93RG93bn0gZnJvbSAnY29tcG9uZW50cy9jb21tb24vaWNvbnMnO1xuaW1wb3J0IExvYWRpbmdTcGlubmVyIGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL2xvYWRpbmctc3Bpbm5lcic7XG5pbXBvcnQgRHJvcGRvd25MaXN0LCB7TGlzdEl0ZW19IGZyb20gJy4vZHJvcGRvd24tbGlzdCc7XG5cbmltcG9ydCB7dG9BcnJheX0gZnJvbSAndXRpbHMvdXRpbHMnO1xuaW1wb3J0IHtpbmplY3RJbnRsfSBmcm9tICdyZWFjdC1pbnRsJztcbmltcG9ydCB7Rm9ybWF0dGVkTWVzc2FnZX0gZnJvbSAnbG9jYWxpemF0aW9uJztcblxuZXhwb3J0IGNvbnN0IFN0eWxlZERyb3Bkb3duU2VsZWN0ID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ2l0ZW0tc2VsZWN0b3JfX2Ryb3Bkb3duJ1xufSlgXG4gICR7cHJvcHMgPT5cbiAgICBwcm9wcy5pbnB1dFRoZW1lID09PSAnc2Vjb25kYXJ5J1xuICAgICAgPyBwcm9wcy50aGVtZS5zZWNvbmRhcnlJbnB1dFxuICAgICAgOiBwcm9wcy5pbnB1dFRoZW1lID09PSAnbGlnaHQnXG4gICAgICA/IHByb3BzLnRoZW1lLmlucHV0TFRcbiAgICAgIDogcHJvcHMudGhlbWUuaW5wdXR9O1xuXG4gIGhlaWdodDogJHtwcm9wcyA9PlxuICAgIHByb3BzLnNpemUgPT09ICdzbWFsbCcgPyBwcm9wcy50aGVtZS5pbnB1dEJveEhlaWdodFNtYWxsIDogcHJvcHMudGhlbWUuaW5wdXRCb3hIZWlnaHR9O1xuXG4gIC5saXN0X19pdGVtX19hbmNob3Ige1xuICAgICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0QW5jaG9yfTtcbiAgfVxuYDtcblxuY29uc3QgRHJvcGRvd25TZWxlY3RWYWx1ZSA9IHN0eWxlZC5zcGFuYFxuICBjb2xvcjogJHtwcm9wcyA9PlxuICAgIHByb3BzLmhhc1BsYWNlaG9sZGVyICYmIHByb3BzLmlucHV0VGhlbWUgPT09ICdsaWdodCdcbiAgICAgID8gcHJvcHMudGhlbWUuc2VsZWN0Q29sb3JQbGFjZUhvbGRlckxUXG4gICAgICA6IHByb3BzLmhhc1BsYWNlaG9sZGVyXG4gICAgICA/IHByb3BzLnRoZW1lLnNlbGVjdENvbG9yUGxhY2VIb2xkZXJcbiAgICAgIDogcHJvcHMuaW5wdXRUaGVtZSA9PT0gJ2xpZ2h0J1xuICAgICAgPyBwcm9wcy50aGVtZS5zZWxlY3RDb2xvckxUXG4gICAgICA6IHByb3BzLnRoZW1lLnNlbGVjdENvbG9yfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgLmxpc3RfX2l0ZW0ge1xuICAgICR7cHJvcHMgPT5cbiAgICAgIHByb3BzLmlucHV0VGhlbWUgPT09ICdsaWdodCcgPyBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RJdGVtTFQgOiBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RJdGVtfTtcbiAgfVxuXG4gIC5saXN0X19pdGVtX19hbmNob3Ige1xuICAgICR7cHJvcHMgPT5cbiAgICAgIHByb3BzLmlucHV0VGhlbWUgPT09ICdsaWdodCdcbiAgICAgICAgPyBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RBbmNob3JMVFxuICAgICAgICA6IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdEFuY2hvcn07XG4gIH1cbmA7XG5cbmNvbnN0IERyb3Bkb3duU2VsZWN0QWN0aW9uUmlnaHQgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgZGlzcGxheTogZmxleDtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3VidGV4dENvbG9yfTtcblxuICA6aG92ZXIge1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvcn07XG4gIH1cbmA7XG5cbmNvbnN0IERyb3Bkb3duV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIGJvcmRlcjogMDtcbiAgd2lkdGg6IDEwMCU7XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZHJvcGRvd25XcmFwcGVyWn07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAke3Byb3BzID0+IChwcm9wcy5wbGFjZW1lbnQgPT09ICd0b3AnID8gcHJvcHMudGhlbWUuaW5wdXRCb3hIZWlnaHQgOiAnYXV0bycpfTtcbiAgbWFyZ2luLXRvcDogJHtwcm9wcyA9PlxuICAgIHByb3BzLnBsYWNlbWVudCA9PT0gJ2JvdHRvbScgPyBgJHtwcm9wcy50aGVtZS5kcm9wZG93bldhcHBlck1hcmdpbn1weGAgOiAnYXV0byd9O1xuICBtYXJnaW4tYm90dG9tOiAke3Byb3BzID0+XG4gICAgcHJvcHMucGxhY2VtZW50ID09PSAndG9wJyA/IGAke3Byb3BzLnRoZW1lLmRyb3Bkb3duV2FwcGVyTWFyZ2lufXB4YCA6ICdhdXRvJ307XG5gO1xuXG4vLyBUaGUgaXRlbS1zZWxlY3RvciBjb21wb25lbnQgZGlzbW91bnQgYWxsIGl0cyBjaGlsZHJlbiBpZiB5b3UgY2xpY2sgb3V0c2lkZSBvZiB0aGUgY29tcG9uZW50IGJlY2F1c2Ugb2YgbGlzdGVuc1RvQ2xpY2tPdXRzaWRlIGZ1bmN0aW9uLlxuLy8gSWYgeW91IHdhbnQgdG8gcHJldmVudCB0aGlzIGJlaGF2aW91ciB3aGVuIHlvdSBjbGljayBvbiBhIGNoaWxkIGFkZCB0aGlzIGNsYXNzIHRvIGl0LlxuLy8gSXQgaXMgdXNlZnVsIGZvciBleGFtcGxlLCB3aGVuIHlvdSBhZGQgdGhlIGNoaWxkIGNvbXBvbmVudCBvbiB0aGUgdG9wIG9mIHRyZWUgd2l0aCBhIFBvcnRhbCBhcyBkcm9wZG93bi1saXN0IGRvZXMgd2l0aCBpdGVtLXNlbGVjdG9yLXN1Ym1lbnVcbmV4cG9ydCBjb25zdCBwcmV2ZW50Q2xvc2VTZWxlY3RvciA9ICdwcmV2ZW50X19jbG9zZV9fc2VsZWN0b3InO1xuXG5jbGFzcyBJdGVtU2VsZWN0b3IgZXh0ZW5kcyBDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIC8vIHJlcXVpcmVkIHByb3BlcnRpZXNcbiAgICBzZWxlY3RlZEl0ZW1zOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtcbiAgICAgIFByb3BUeXBlcy5hcnJheSxcbiAgICAgIFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICBQcm9wVHlwZXMubnVtYmVyLFxuICAgICAgUHJvcFR5cGVzLmJvb2wsXG4gICAgICBQcm9wVHlwZXMub2JqZWN0XG4gICAgXSksXG4gICAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb3B0aW9uczogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLmFueSkuaXNSZXF1aXJlZCxcblxuICAgIC8vIG9wdGlvbmFsIHByb3BlcnRpZXNcbiAgICBmaXhlZE9wdGlvbnM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5hbnkpLFxuICAgIGVyYXNhYmxlOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBzaG93QXJyb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIGRpc3BsYXlPcHRpb246IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5mdW5jXSksXG4gICAgZ2V0T3B0aW9uVmFsdWU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5mdW5jXSksXG4gICAgZmlsdGVyT3B0aW9uOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMuZnVuY10pLFxuICAgIHBsYWNlbWVudDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNFcnJvcjogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNMb2FkaW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBtdWx0aVNlbGVjdDogUHJvcFR5cGVzLmJvb2wsXG4gICAgaW5wdXRUaGVtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkJsdXI6IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uRm9jdXM6IFByb3BUeXBlcy5mdW5jLFxuICAgIHBsYWNlaG9sZGVyOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNsb3NlT25TZWxlY3Q6IFByb3BUeXBlcy5ib29sLFxuICAgIHR5cGVhaGVhZFBsYWNlaG9sZGVyOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIERyb3Bkb3duSGVhZGVyQ29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYyxcbiAgICBEcm9wRG93blJlbmRlckNvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgRHJvcERvd25MaW5lSXRlbVJlbmRlckNvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgQ3VzdG9tQ2hpY2tsZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLFxuICAgIHdpdGhTdWJPcHRpb25zOiBQcm9wVHlwZXMuYm9vbFxuICB9O1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgZXJhc2FibGU6IGZhbHNlLFxuICAgIHNob3dBcnJvdzogZmFsc2UsXG4gICAgcGxhY2VtZW50OiAnYm90dG9tJyxcbiAgICBzZWxlY3RlZEl0ZW1zOiBbXSxcbiAgICBkaXNwbGF5T3B0aW9uOiBudWxsLFxuICAgIGdldE9wdGlvblZhbHVlOiBudWxsLFxuICAgIGZpbHRlck9wdGlvbjogbnVsbCxcbiAgICBmaXhlZE9wdGlvbnM6IG51bGwsXG4gICAgaW5wdXRUaGVtZTogJ3ByaW1hcnknLFxuICAgIG11bHRpU2VsZWN0OiB0cnVlLFxuICAgIHBsYWNlaG9sZGVyOiAncGxhY2Vob2xkZXIuZW50ZXJWYWx1ZScsXG4gICAgY2xvc2VPblNlbGVjdDogdHJ1ZSxcbiAgICBzZWFyY2hhYmxlOiB0cnVlLFxuICAgIGRyb3Bkb3duSGVhZGVyOiBudWxsLFxuICAgIERyb3Bkb3duSGVhZGVyQ29tcG9uZW50OiBudWxsLFxuICAgIERyb3BEb3duUmVuZGVyQ29tcG9uZW50OiBEcm9wZG93bkxpc3QsXG4gICAgRHJvcERvd25MaW5lSXRlbVJlbmRlckNvbXBvbmVudDogTGlzdEl0ZW0sXG4gICAgd2l0aFN1Yk9wdGlvbnM6IGZhbHNlXG4gIH07XG5cbiAgc3RhdGUgPSB7XG4gICAgc2hvd1R5cGVhaGVhZDogZmFsc2VcbiAgfTtcblxuICBoYW5kbGVDbGlja091dHNpZGUgPSBlID0+IHtcbiAgICBpZiAoZT8udGFyZ2V0Py5jbGFzc0xpc3Q/LmNvbnRhaW5zKHByZXZlbnRDbG9zZVNlbGVjdG9yKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9oaWRlVHlwZWFoZWFkKCk7XG4gIH07XG5cbiAgX2hpZGVUeXBlYWhlYWQoKSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7c2hvd1R5cGVhaGVhZDogZmFsc2V9KTtcbiAgICB0aGlzLl9vbkJsdXIoKTtcbiAgfVxuXG4gIF9vbkJsdXIgPSAoKSA9PiB7XG4gICAgLy8gbm90ZTogY2hpY2tsZXRlZCBpbnB1dCBpcyBub3QgYSByZWFsIGZvcm0gZWxlbWVudCBzbyB3ZSBjYWxsIG9uQmx1cigpXG4gICAgLy8gd2hlbiB3ZSBmZWVsIHRoZSBldmVudHMgYXJlIGFwcHJvcHJpYXRlXG4gICAgaWYgKHRoaXMucHJvcHMub25CbHVyKSB7XG4gICAgICB0aGlzLnByb3BzLm9uQmx1cigpO1xuICAgIH1cbiAgfTtcblxuICBfcmVtb3ZlSXRlbSA9IChpdGVtLCBlKSA9PiB7XG4gICAgLy8gb25seSB1c2VkIHdoZW4gbXVsdGlTZWxlY3QgPSB0cnVlXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgY29uc3Qge3NlbGVjdGVkSXRlbXN9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBpbmRleCA9IHNlbGVjdGVkSXRlbXMuZmluZEluZGV4KHQgPT4gdCA9PT0gaXRlbSk7XG5cbiAgICBpZiAoaW5kZXggPCAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaXRlbXMgPSBbXG4gICAgICAuLi5zZWxlY3RlZEl0ZW1zLnNsaWNlKDAsIGluZGV4KSxcbiAgICAgIC4uLnNlbGVjdGVkSXRlbXMuc2xpY2UoaW5kZXggKyAxLCBzZWxlY3RlZEl0ZW1zLmxlbmd0aClcbiAgICBdO1xuXG4gICAgdGhpcy5wcm9wcy5vbkNoYW5nZShpdGVtcyk7XG5cbiAgICBpZiAodGhpcy5wcm9wcy5jbG9zZU9uU2VsZWN0KSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtzaG93VHlwZWFoZWFkOiBmYWxzZX0pO1xuICAgICAgdGhpcy5fb25CbHVyKCk7XG4gICAgfVxuICB9O1xuXG4gIF9zZWxlY3RJdGVtID0gaXRlbSA9PiB7XG4gICAgY29uc3QgZ2V0VmFsdWUgPSBBY2Nlc3Nvci5nZW5lcmF0ZU9wdGlvblRvU3RyaW5nRm9yKFxuICAgICAgdGhpcy5wcm9wcy5nZXRPcHRpb25WYWx1ZSB8fCB0aGlzLnByb3BzLmRpc3BsYXlPcHRpb25cbiAgICApO1xuXG4gICAgY29uc3QgcHJldmlvdXNTZWxlY3RlZCA9IHRvQXJyYXkodGhpcy5wcm9wcy5zZWxlY3RlZEl0ZW1zKTtcblxuICAgIGlmICh0aGlzLnByb3BzLm11bHRpU2VsZWN0KSB7XG4gICAgICBjb25zdCBpdGVtcyA9IHVuaXFCeShwcmV2aW91c1NlbGVjdGVkLmNvbmNhdCh0b0FycmF5KGl0ZW0pKSwgZ2V0VmFsdWUpO1xuICAgICAgdGhpcy5wcm9wcy5vbkNoYW5nZShpdGVtcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJvcHMub25DaGFuZ2UoZ2V0VmFsdWUoaXRlbSkpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByb3BzLmNsb3NlT25TZWxlY3QpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe3Nob3dUeXBlYWhlYWQ6IGZhbHNlfSk7XG4gICAgICB0aGlzLl9vbkJsdXIoKTtcbiAgICB9XG4gIH07XG5cbiAgX29uRXJhc2UgPSBlID0+IHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMucHJvcHMub25DaGFuZ2UobnVsbCk7XG4gIH07XG5cbiAgX3Nob3dUeXBlYWhlYWQgPSBlID0+IHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICghdGhpcy5wcm9wcy5kaXNhYmxlZCAmJiAhdGhpcy5wcm9wcy5pc0xvYWRpbmcpIHtcbiAgICAgIGlmICghdGhpcy5zdGF0ZS5zaG93VHlwZWFoZWFkICYmIHRoaXMucHJvcHMub25Gb2N1cykge1xuICAgICAgICB0aGlzLnByb3BzLm9uRm9jdXMoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICBzaG93VHlwZWFoZWFkOiB0cnVlXG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgX3JlbmRlckRyb3Bkb3duKGludGwpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPERyb3Bkb3duV3JhcHBlciBwbGFjZW1lbnQ9e3RoaXMucHJvcHMucGxhY2VtZW50fT5cbiAgICAgICAgPFR5cGVhaGVhZFxuICAgICAgICAgIGN1c3RvbUNsYXNzZXM9e3tcbiAgICAgICAgICAgIHJlc3VsdHM6ICdsaXN0LXNlbGVjdG9yJyxcbiAgICAgICAgICAgIGlucHV0OiAndHlwZWFoZWFkX19pbnB1dCcsXG4gICAgICAgICAgICBsaXN0SXRlbTogJ2xpc3RfX2l0ZW0nLFxuICAgICAgICAgICAgbGlzdEFuY2hvcjogJ2xpc3RfX2l0ZW1fX2FuY2hvcidcbiAgICAgICAgICB9fVxuICAgICAgICAgIG9wdGlvbnM9e3RoaXMucHJvcHMub3B0aW9uc31cbiAgICAgICAgICBmaWx0ZXJPcHRpb249e3RoaXMucHJvcHMuZmlsdGVyT3B0aW9ufVxuICAgICAgICAgIGZpeGVkT3B0aW9ucz17dGhpcy5wcm9wcy5maXhlZE9wdGlvbnN9XG4gICAgICAgICAgcGxhY2Vob2xkZXI9e1xuICAgICAgICAgICAgdGhpcy5wcm9wcy50eXBlYWhlYWRQbGFjZWhvbGRlciB8fCBpbnRsXG4gICAgICAgICAgICAgID8gaW50bC5mb3JtYXRNZXNzYWdlKHtpZDogJ3BsYWNlaG9sZGVyLnNlYXJjaCd9KVxuICAgICAgICAgICAgICA6ICdTZWFyY2gnXG4gICAgICAgICAgfVxuICAgICAgICAgIG9uT3B0aW9uU2VsZWN0ZWQ9e3RoaXMuX3NlbGVjdEl0ZW19XG4gICAgICAgICAgY3VzdG9tTGlzdENvbXBvbmVudD17dGhpcy5wcm9wcy5Ecm9wRG93blJlbmRlckNvbXBvbmVudH1cbiAgICAgICAgICBjdXN0b21MaXN0SGVhZGVyQ29tcG9uZW50PXt0aGlzLnByb3BzLkRyb3Bkb3duSGVhZGVyQ29tcG9uZW50fVxuICAgICAgICAgIGN1c3RvbUxpc3RJdGVtQ29tcG9uZW50PXt0aGlzLnByb3BzLkRyb3BEb3duTGluZUl0ZW1SZW5kZXJDb21wb25lbnR9XG4gICAgICAgICAgZGlzcGxheU9wdGlvbj17QWNjZXNzb3IuZ2VuZXJhdGVPcHRpb25Ub1N0cmluZ0Zvcih0aGlzLnByb3BzLmRpc3BsYXlPcHRpb24pfVxuICAgICAgICAgIHNlYXJjaGFibGU9e3RoaXMucHJvcHMuc2VhcmNoYWJsZX1cbiAgICAgICAgICBzaG93T3B0aW9uc1doZW5FbXB0eVxuICAgICAgICAgIHNlbGVjdGVkSXRlbXM9e3RvQXJyYXkodGhpcy5wcm9wcy5zZWxlY3RlZEl0ZW1zKX1cbiAgICAgICAgICBsaWdodD17dGhpcy5wcm9wcy5pbnB1dFRoZW1lID09PSAnbGlnaHQnfVxuICAgICAgICAgIHdpdGhTdWJPcHRpb25zPXt0aGlzLnByb3BzLndpdGhTdWJPcHRpb25zfVxuICAgICAgICAvPlxuICAgICAgPC9Ecm9wZG93bldyYXBwZXI+XG4gICAgKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCBzZWxlY3RlZCA9IHRvQXJyYXkodGhpcy5wcm9wcy5zZWxlY3RlZEl0ZW1zKTtcbiAgICBjb25zdCBoYXNWYWx1ZSA9IHNlbGVjdGVkLmxlbmd0aDtcbiAgICBjb25zdCBkaXNwbGF5T3B0aW9uID0gQWNjZXNzb3IuZ2VuZXJhdGVPcHRpb25Ub1N0cmluZ0Zvcih0aGlzLnByb3BzLmRpc3BsYXlPcHRpb24pO1xuXG4gICAgY29uc3QgZHJvcGRvd25TZWxlY3RQcm9wcyA9IHtcbiAgICAgIGNsYXNzTmFtZTogY2xhc3NuYW1lcyh7XG4gICAgICAgIGFjdGl2ZTogdGhpcy5zdGF0ZS5zaG93VHlwZWFoZWFkXG4gICAgICB9KSxcbiAgICAgIGRpc3BsYXlPcHRpb24sXG4gICAgICBkaXNhYmxlZDogdGhpcy5wcm9wcy5kaXNhYmxlZCxcbiAgICAgIG9uQ2xpY2s6IHRoaXMuX3Nob3dUeXBlYWhlYWQsXG4gICAgICBlcnJvcjogdGhpcy5wcm9wcy5pc0Vycm9yLFxuICAgICAgaW5wdXRUaGVtZTogdGhpcy5wcm9wcy5pbnB1dFRoZW1lLFxuICAgICAgc2l6ZTogdGhpcy5wcm9wcy5zaXplXG4gICAgfTtcbiAgICBjb25zdCBpbnRsID0gdGhpcy5wcm9wcy5pbnRsO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1zZWxlY3RvclwiPlxuICAgICAgICA8ZGl2IHN0eWxlPXt7cG9zaXRpb246ICdyZWxhdGl2ZSd9fT5cbiAgICAgICAgICB7LyogdGhpcyBwYXJ0IGlzIHVzZWQgdG8gZGlzcGxheSB0aGUgbGFiZWwgKi99XG4gICAgICAgICAge3RoaXMucHJvcHMubXVsdGlTZWxlY3QgPyAoXG4gICAgICAgICAgICA8Q2hpY2tsZXRlZElucHV0XG4gICAgICAgICAgICAgIHsuLi5kcm9wZG93blNlbGVjdFByb3BzfVxuICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW1zPXt0b0FycmF5KHRoaXMucHJvcHMuc2VsZWN0ZWRJdGVtcyl9XG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXt0aGlzLnByb3BzLnBsYWNlaG9sZGVyfVxuICAgICAgICAgICAgICByZW1vdmVJdGVtPXt0aGlzLl9yZW1vdmVJdGVtfVxuICAgICAgICAgICAgICBDdXN0b21DaGlja2xldENvbXBvbmVudD17dGhpcy5wcm9wcy5DdXN0b21DaGlja2xldENvbXBvbmVudH1cbiAgICAgICAgICAgICAgaW5wdXRUaGVtZT17dGhpcy5wcm9wcy5pbnB1dFRoZW1lfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0eWxlZERyb3Bkb3duU2VsZWN0IHsuLi5kcm9wZG93blNlbGVjdFByb3BzfT5cbiAgICAgICAgICAgICAgPERyb3Bkb3duU2VsZWN0VmFsdWVcbiAgICAgICAgICAgICAgICBoYXNQbGFjZWhvbGRlcj17IWhhc1ZhbHVlfVxuICAgICAgICAgICAgICAgIGlucHV0VGhlbWU9e3RoaXMucHJvcHMuaW5wdXRUaGVtZX1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpdGVtLXNlbGVjdG9yX19kcm9wZG93bl9fdmFsdWVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2hhc1ZhbHVlID8gKFxuICAgICAgICAgICAgICAgICAgPHRoaXMucHJvcHMuRHJvcERvd25MaW5lSXRlbVJlbmRlckNvbXBvbmVudFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5T3B0aW9uPXtkaXNwbGF5T3B0aW9ufVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17c2VsZWN0ZWRbMF19XG4gICAgICAgICAgICAgICAgICAgIGxpZ2h0PXt0aGlzLnByb3BzLmlucHV0VGhlbWUgPT09ICdsaWdodCd9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17dGhpcy5wcm9wcy5wbGFjZWhvbGRlciB8fCAncGxhY2Vob2xkZXIuc2VsZWN0VmFsdWUnfSAvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvRHJvcGRvd25TZWxlY3RWYWx1ZT5cbiAgICAgICAgICAgICAge3RoaXMucHJvcHMuZXJhc2FibGUgJiYgaGFzVmFsdWUgPyAoXG4gICAgICAgICAgICAgICAgPERyb3Bkb3duU2VsZWN0QWN0aW9uUmlnaHQ+XG4gICAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy5pc0xvYWRpbmcgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxMb2FkaW5nU3Bpbm5lciBzaXplPXsxOH0gc3Ryb2tlV2lkdGg9ezJ9IGdhcD17MH0gLz5cbiAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgIDxEZWxldGUgaGVpZ2h0PVwiMTJweFwiIG9uQ2xpY2s9e3RoaXMuX29uRXJhc2V9IC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvRHJvcGRvd25TZWxlY3RBY3Rpb25SaWdodD5cbiAgICAgICAgICAgICAgKSA6IHRoaXMucHJvcHMuc2hvd0Fycm93ID8gKFxuICAgICAgICAgICAgICAgIDxEcm9wZG93blNlbGVjdEFjdGlvblJpZ2h0PlxuICAgICAgICAgICAgICAgICAgPEFycm93RG93biBoZWlnaHQ9XCIxNHB4XCIgb25DbGljaz17dGhpcy5fc2hvd1R5cGVhaGVhZH0gLz5cbiAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duU2VsZWN0QWN0aW9uUmlnaHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdHlsZWREcm9wZG93blNlbGVjdD5cbiAgICAgICAgICApfVxuICAgICAgICAgIHsvKiB0aGlzIHBhcnQgaXMgdXNlZCB0byBidWlsdCB0aGUgbGlzdCAqL31cbiAgICAgICAgICB7dGhpcy5zdGF0ZS5zaG93VHlwZWFoZWFkICYmIHRoaXMuX3JlbmRlckRyb3Bkb3duKGludGwpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW1TZWxlY3Rvckxpc3RlbiA9IGxpc3RlbnNUb0NsaWNrT3V0c2lkZShJdGVtU2VsZWN0b3IpO1xuZXhwb3J0IGRlZmF1bHQgaW5qZWN0SW50bChsaXN0ZW5zVG9DbGlja091dHNpZGUoSXRlbVNlbGVjdG9yKSk7XG4iXX0=
363
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2NvbW1vbi9pdGVtLXNlbGVjdG9yL2l0ZW0tc2VsZWN0b3IuanMiXSwibmFtZXMiOlsiU3R5bGVkRHJvcGRvd25TZWxlY3QiLCJzdHlsZWQiLCJkaXYiLCJhdHRycyIsImNsYXNzTmFtZSIsInByb3BzIiwiaW5wdXRUaGVtZSIsInRoZW1lIiwic2Vjb25kYXJ5SW5wdXQiLCJpbnB1dExUIiwiaW5wdXQiLCJzaXplIiwiaW5wdXRCb3hIZWlnaHRTbWFsbCIsImlucHV0Qm94SGVpZ2h0IiwiZHJvcGRvd25MaXN0QW5jaG9yIiwiRHJvcGRvd25TZWxlY3RWYWx1ZSIsInNwYW4iLCJoYXNQbGFjZWhvbGRlciIsInNlbGVjdENvbG9yUGxhY2VIb2xkZXJMVCIsInNlbGVjdENvbG9yUGxhY2VIb2xkZXIiLCJzZWxlY3RDb2xvckxUIiwic2VsZWN0Q29sb3IiLCJkcm9wZG93bkxpc3RJdGVtTFQiLCJkcm9wZG93bkxpc3RJdGVtIiwiZHJvcGRvd25MaXN0QW5jaG9yTFQiLCJEcm9wZG93blNlbGVjdEFjdGlvblJpZ2h0Iiwic3VidGV4dENvbG9yIiwidGV4dENvbG9yIiwiRHJvcGRvd25XcmFwcGVyIiwiZHJvcGRvd25XcmFwcGVyWiIsInBsYWNlbWVudCIsImRyb3Bkb3duV2FwcGVyTWFyZ2luIiwicHJldmVudENsb3NlU2VsZWN0b3IiLCJJdGVtU2VsZWN0b3IiLCJzaG93VHlwZWFoZWFkIiwiZSIsInRhcmdldCIsImNsYXNzTGlzdCIsImNvbnRhaW5zIiwiX2hpZGVUeXBlYWhlYWQiLCJvbkJsdXIiLCJpdGVtIiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJzZWxlY3RlZEl0ZW1zIiwiaW5kZXgiLCJmaW5kSW5kZXgiLCJ0IiwiaXRlbXMiLCJzbGljZSIsImxlbmd0aCIsIm9uQ2hhbmdlIiwiY2xvc2VPblNlbGVjdCIsInNldFN0YXRlIiwiX29uQmx1ciIsImdldFZhbHVlIiwiQWNjZXNzb3IiLCJnZW5lcmF0ZU9wdGlvblRvU3RyaW5nRm9yIiwiZ2V0T3B0aW9uVmFsdWUiLCJkaXNwbGF5T3B0aW9uIiwicHJldmlvdXNTZWxlY3RlZCIsIm11bHRpU2VsZWN0IiwiY29uY2F0IiwiZGlzYWJsZWQiLCJpc0xvYWRpbmciLCJzdGF0ZSIsIm9uRm9jdXMiLCJpbnRsIiwicmVzdWx0cyIsImxpc3RJdGVtIiwibGlzdEFuY2hvciIsIm9wdGlvbnMiLCJmaWx0ZXJPcHRpb24iLCJmaXhlZE9wdGlvbnMiLCJ0eXBlYWhlYWRQbGFjZWhvbGRlciIsImZvcm1hdE1lc3NhZ2UiLCJpZCIsIl9zZWxlY3RJdGVtIiwiRHJvcERvd25SZW5kZXJDb21wb25lbnQiLCJEcm9wZG93bkhlYWRlckNvbXBvbmVudCIsIkRyb3BEb3duTGluZUl0ZW1SZW5kZXJDb21wb25lbnQiLCJzZWFyY2hhYmxlIiwid2l0aFN1Yk9wdGlvbnMiLCJzZWxlY3RlZCIsImhhc1ZhbHVlIiwiZHJvcGRvd25TZWxlY3RQcm9wcyIsImFjdGl2ZSIsIm9uQ2xpY2siLCJfc2hvd1R5cGVhaGVhZCIsImVycm9yIiwiaXNFcnJvciIsInBvc2l0aW9uIiwicGxhY2Vob2xkZXIiLCJfcmVtb3ZlSXRlbSIsIkN1c3RvbUNoaWNrbGV0Q29tcG9uZW50IiwiZXJhc2FibGUiLCJfb25FcmFzZSIsInNob3dBcnJvdyIsIl9yZW5kZXJEcm9wZG93biIsIkNvbXBvbmVudCIsIlByb3BUeXBlcyIsIm9uZU9mVHlwZSIsImFycmF5Iiwic3RyaW5nIiwibnVtYmVyIiwiYm9vbCIsIm9iamVjdCIsImZ1bmMiLCJpc1JlcXVpcmVkIiwiYXJyYXlPZiIsImFueSIsImRyb3Bkb3duSGVhZGVyIiwiRHJvcGRvd25MaXN0IiwiTGlzdEl0ZW0iLCJJdGVtU2VsZWN0b3JMaXN0ZW4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FB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QzFCO0FBaUNqQmIsRUFBQUEsdUJBQXVCLEVBQUVNLHNCQUFVTyxJQWpDbEI7QUFrQ2pCekIsRUFBQUEsY0FBYyxFQUFFa0Isc0JBQVVLO0FBbENULEM7aUNBRGZ4RSxZLGtCQXNDa0I7QUFDcEI4RCxFQUFBQSxRQUFRLEVBQUUsS0FEVTtBQUVwQkUsRUFBQUEsU0FBUyxFQUFFLEtBRlM7QUFHcEJuRSxFQUFBQSxTQUFTLEVBQUUsUUFIUztBQUlwQmMsRUFBQUEsYUFBYSxFQUFFLEVBSks7QUFLcEJlLEVBQUFBLGFBQWEsRUFBRSxJQUxLO0FBTXBCRCxFQUFBQSxjQUFjLEVBQUUsSUFOSTtBQU9wQmMsRUFBQUEsWUFBWSxFQUFFLElBUE07QUFRcEJDLEVBQUFBLFlBQVksRUFBRSxJQVJNO0FBU3BCbkUsRUFBQUEsVUFBVSxFQUFFLFNBVFE7QUFVcEJ1RCxFQUFBQSxXQUFXLEVBQUUsSUFWTztBQVdwQitCLEVBQUFBLFdBQVcsRUFBRSx3QkFYTztBQVlwQnhDLEVBQUFBLGFBQWEsRUFBRSxJQVpLO0FBYXBCNkIsRUFBQUEsVUFBVSxFQUFFLElBYlE7QUFjcEI4QixFQUFBQSxjQUFjLEVBQUUsSUFkSTtBQWVwQmhDLEVBQUFBLHVCQUF1QixFQUFFLElBZkw7QUFnQnBCRCxFQUFBQSx1QkFBdUIsRUFBRWtDLHdCQWhCTDtBQWlCcEJoQyxFQUFBQSwrQkFBK0IsRUFBRWlDLHNCQWpCYjtBQWtCcEIvQixFQUFBQSxjQUFjLEVBQUU7QUFsQkksQztBQWtOakIsSUFBTWdDLGtCQUFrQixHQUFHLHFDQUFzQmpGLFlBQXRCLENBQTNCOzs7ZUFDUSwyQkFBVyxxQ0FBc0JBLFlBQXRCLENBQVgsQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMiBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHVuaXFCeSBmcm9tICdsb2Rhc2gudW5pcWJ5JztcbmltcG9ydCBsaXN0ZW5zVG9DbGlja091dHNpZGUgZnJvbSAncmVhY3Qtb25jbGlja291dHNpZGUnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5cbmltcG9ydCBBY2Nlc3NvciBmcm9tICcuL2FjY2Vzc29yJztcbmltcG9ydCBDaGlja2xldGVkSW5wdXQgZnJvbSAnLi9jaGlja2xldGVkLWlucHV0JztcbmltcG9ydCBUeXBlYWhlYWQgZnJvbSAnLi90eXBlYWhlYWQnO1xuaW1wb3J0IHtEZWxldGUsIEFycm93RG93bn0gZnJvbSAnY29tcG9uZW50cy9jb21tb24vaWNvbnMnO1xuaW1wb3J0IExvYWRpbmdTcGlubmVyIGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL2xvYWRpbmctc3Bpbm5lcic7XG5pbXBvcnQgRHJvcGRvd25MaXN0LCB7TGlzdEl0ZW19IGZyb20gJy4vZHJvcGRvd24tbGlzdCc7XG5cbmltcG9ydCB7dG9BcnJheX0gZnJvbSAndXRpbHMvdXRpbHMnO1xuaW1wb3J0IHtpbmplY3RJbnRsfSBmcm9tICdyZWFjdC1pbnRsJztcbmltcG9ydCB7Rm9ybWF0dGVkTWVzc2FnZX0gZnJvbSAnbG9jYWxpemF0aW9uJztcblxuZXhwb3J0IGNvbnN0IFN0eWxlZERyb3Bkb3duU2VsZWN0ID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ2l0ZW0tc2VsZWN0b3JfX2Ryb3Bkb3duJ1xufSlgXG4gICR7cHJvcHMgPT5cbiAgICBwcm9wcy5pbnB1dFRoZW1lID09PSAnc2Vjb25kYXJ5J1xuICAgICAgPyBwcm9wcy50aGVtZS5zZWNvbmRhcnlJbnB1dFxuICAgICAgOiBwcm9wcy5pbnB1dFRoZW1lID09PSAnbGlnaHQnXG4gICAgICA/IHByb3BzLnRoZW1lLmlucHV0TFRcbiAgICAgIDogcHJvcHMudGhlbWUuaW5wdXR9O1xuXG4gIGhlaWdodDogJHtwcm9wcyA9PlxuICAgIHByb3BzLnNpemUgPT09ICdzbWFsbCcgPyBwcm9wcy50aGVtZS5pbnB1dEJveEhlaWdodFNtYWxsIDogcHJvcHMudGhlbWUuaW5wdXRCb3hIZWlnaHR9O1xuXG4gIC5saXN0X19pdGVtX19hbmNob3Ige1xuICAgICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0QW5jaG9yfTtcbiAgfVxuYDtcblxuY29uc3QgRHJvcGRvd25TZWxlY3RWYWx1ZSA9IHN0eWxlZC5zcGFuYFxuICBjb2xvcjogJHtwcm9wcyA9PlxuICAgIHByb3BzLmhhc1BsYWNlaG9sZGVyICYmIHByb3BzLmlucHV0VGhlbWUgPT09ICdsaWdodCdcbiAgICAgID8gcHJvcHMudGhlbWUuc2VsZWN0Q29sb3JQbGFjZUhvbGRlckxUXG4gICAgICA6IHByb3BzLmhhc1BsYWNlaG9sZGVyXG4gICAgICA/IHByb3BzLnRoZW1lLnNlbGVjdENvbG9yUGxhY2VIb2xkZXJcbiAgICAgIDogcHJvcHMuaW5wdXRUaGVtZSA9PT0gJ2xpZ2h0J1xuICAgICAgPyBwcm9wcy50aGVtZS5zZWxlY3RDb2xvckxUXG4gICAgICA6IHByb3BzLnRoZW1lLnNlbGVjdENvbG9yfTtcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgdGV4dC1vdmVyZmxvdzogZWxsaXBzaXM7XG4gIHdoaXRlLXNwYWNlOiBub3dyYXA7XG5cbiAgLmxpc3RfX2l0ZW0ge1xuICAgICR7cHJvcHMgPT5cbiAgICAgIHByb3BzLmlucHV0VGhlbWUgPT09ICdsaWdodCcgPyBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RJdGVtTFQgOiBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RJdGVtfTtcbiAgfVxuXG4gIC5saXN0X19pdGVtX19hbmNob3Ige1xuICAgICR7cHJvcHMgPT5cbiAgICAgIHByb3BzLmlucHV0VGhlbWUgPT09ICdsaWdodCdcbiAgICAgICAgPyBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RBbmNob3JMVFxuICAgICAgICA6IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdEFuY2hvcn07XG4gIH1cbmA7XG5cbmNvbnN0IERyb3Bkb3duU2VsZWN0QWN0aW9uUmlnaHQgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tcmlnaHQ6IDZweDtcbiAgZGlzcGxheTogZmxleDtcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc3VidGV4dENvbG9yfTtcblxuICA6aG92ZXIge1xuICAgIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvcn07XG4gIH1cbmA7XG5cbmNvbnN0IERyb3Bkb3duV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIGJvcmRlcjogMDtcbiAgd2lkdGg6IGF1dG87XG4gIGxlZnQ6IDA7XG4gIHotaW5kZXg6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuZHJvcGRvd25XcmFwcGVyWn07XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgYm90dG9tOiAke3Byb3BzID0+IChwcm9wcy5wbGFjZW1lbnQgPT09ICd0b3AnID8gcHJvcHMudGhlbWUuaW5wdXRCb3hIZWlnaHQgOiAnYXV0bycpfTtcbiAgbWFyZ2luLXRvcDogJHtwcm9wcyA9PlxuICAgIHByb3BzLnBsYWNlbWVudCA9PT0gJ2JvdHRvbScgPyBgJHtwcm9wcy50aGVtZS5kcm9wZG93bldhcHBlck1hcmdpbn1weGAgOiAnYXV0byd9O1xuICBtYXJnaW4tYm90dG9tOiAke3Byb3BzID0+XG4gICAgcHJvcHMucGxhY2VtZW50ID09PSAndG9wJyA/IGAke3Byb3BzLnRoZW1lLmRyb3Bkb3duV2FwcGVyTWFyZ2lufXB4YCA6ICdhdXRvJ307XG5gO1xuXG4vLyBUaGUgaXRlbS1zZWxlY3RvciBjb21wb25lbnQgZGlzbW91bnQgYWxsIGl0cyBjaGlsZHJlbiBpZiB5b3UgY2xpY2sgb3V0c2lkZSBvZiB0aGUgY29tcG9uZW50IGJlY2F1c2Ugb2YgbGlzdGVuc1RvQ2xpY2tPdXRzaWRlIGZ1bmN0aW9uLlxuLy8gSWYgeW91IHdhbnQgdG8gcHJldmVudCB0aGlzIGJlaGF2aW91ciB3aGVuIHlvdSBjbGljayBvbiBhIGNoaWxkIGFkZCB0aGlzIGNsYXNzIHRvIGl0LlxuLy8gSXQgaXMgdXNlZnVsIGZvciBleGFtcGxlLCB3aGVuIHlvdSBhZGQgdGhlIGNoaWxkIGNvbXBvbmVudCBvbiB0aGUgdG9wIG9mIHRyZWUgd2l0aCBhIFBvcnRhbCBhcyBkcm9wZG93bi1saXN0IGRvZXMgd2l0aCBpdGVtLXNlbGVjdG9yLXN1Ym1lbnVcbmV4cG9ydCBjb25zdCBwcmV2ZW50Q2xvc2VTZWxlY3RvciA9ICdwcmV2ZW50X19jbG9zZV9fc2VsZWN0b3InO1xuXG5jbGFzcyBJdGVtU2VsZWN0b3IgZXh0ZW5kcyBDb21wb25lbnQge1xuICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgIC8vIHJlcXVpcmVkIHByb3BlcnRpZXNcbiAgICBzZWxlY3RlZEl0ZW1zOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtcbiAgICAgIFByb3BUeXBlcy5hcnJheSxcbiAgICAgIFByb3BUeXBlcy5zdHJpbmcsXG4gICAgICBQcm9wVHlwZXMubnVtYmVyLFxuICAgICAgUHJvcFR5cGVzLmJvb2wsXG4gICAgICBQcm9wVHlwZXMub2JqZWN0XG4gICAgXSksXG4gICAgb25DaGFuZ2U6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgb3B0aW9uczogUHJvcFR5cGVzLmFycmF5T2YoUHJvcFR5cGVzLmFueSkuaXNSZXF1aXJlZCxcblxuICAgIC8vIG9wdGlvbmFsIHByb3BlcnRpZXNcbiAgICBmaXhlZE9wdGlvbnM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5hbnkpLFxuICAgIGVyYXNhYmxlOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBzaG93QXJyb3c6IFByb3BUeXBlcy5ib29sLFxuICAgIGRpc3BsYXlPcHRpb246IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5mdW5jXSksXG4gICAgZ2V0T3B0aW9uVmFsdWU6IFByb3BUeXBlcy5vbmVPZlR5cGUoW1Byb3BUeXBlcy5zdHJpbmcsIFByb3BUeXBlcy5mdW5jXSksXG4gICAgZmlsdGVyT3B0aW9uOiBQcm9wVHlwZXMub25lT2ZUeXBlKFtQcm9wVHlwZXMuc3RyaW5nLCBQcm9wVHlwZXMuZnVuY10pLFxuICAgIHBsYWNlbWVudDogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBkaXNhYmxlZDogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNFcnJvcjogUHJvcFR5cGVzLmJvb2wsXG4gICAgaXNMb2FkaW5nOiBQcm9wVHlwZXMuYm9vbCxcbiAgICBtdWx0aVNlbGVjdDogUHJvcFR5cGVzLmJvb2wsXG4gICAgaW5wdXRUaGVtZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBvbkJsdXI6IFByb3BUeXBlcy5mdW5jLFxuICAgIG9uRm9jdXM6IFByb3BUeXBlcy5mdW5jLFxuICAgIHBsYWNlaG9sZGVyOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGNsb3NlT25TZWxlY3Q6IFByb3BUeXBlcy5ib29sLFxuICAgIHR5cGVhaGVhZFBsYWNlaG9sZGVyOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIERyb3Bkb3duSGVhZGVyQ29tcG9uZW50OiBQcm9wVHlwZXMuZnVuYyxcbiAgICBEcm9wRG93blJlbmRlckNvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgRHJvcERvd25MaW5lSXRlbVJlbmRlckNvbXBvbmVudDogUHJvcFR5cGVzLmZ1bmMsXG4gICAgQ3VzdG9tQ2hpY2tsZXRDb21wb25lbnQ6IFByb3BUeXBlcy5mdW5jLFxuICAgIHdpdGhTdWJPcHRpb25zOiBQcm9wVHlwZXMuYm9vbFxuICB9O1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgZXJhc2FibGU6IGZhbHNlLFxuICAgIHNob3dBcnJvdzogZmFsc2UsXG4gICAgcGxhY2VtZW50OiAnYm90dG9tJyxcbiAgICBzZWxlY3RlZEl0ZW1zOiBbXSxcbiAgICBkaXNwbGF5T3B0aW9uOiBudWxsLFxuICAgIGdldE9wdGlvblZhbHVlOiBudWxsLFxuICAgIGZpbHRlck9wdGlvbjogbnVsbCxcbiAgICBmaXhlZE9wdGlvbnM6IG51bGwsXG4gICAgaW5wdXRUaGVtZTogJ3ByaW1hcnknLFxuICAgIG11bHRpU2VsZWN0OiB0cnVlLFxuICAgIHBsYWNlaG9sZGVyOiAncGxhY2Vob2xkZXIuZW50ZXJWYWx1ZScsXG4gICAgY2xvc2VPblNlbGVjdDogdHJ1ZSxcbiAgICBzZWFyY2hhYmxlOiB0cnVlLFxuICAgIGRyb3Bkb3duSGVhZGVyOiBudWxsLFxuICAgIERyb3Bkb3duSGVhZGVyQ29tcG9uZW50OiBudWxsLFxuICAgIERyb3BEb3duUmVuZGVyQ29tcG9uZW50OiBEcm9wZG93bkxpc3QsXG4gICAgRHJvcERvd25MaW5lSXRlbVJlbmRlckNvbXBvbmVudDogTGlzdEl0ZW0sXG4gICAgd2l0aFN1Yk9wdGlvbnM6IGZhbHNlXG4gIH07XG5cbiAgc3RhdGUgPSB7XG4gICAgc2hvd1R5cGVhaGVhZDogZmFsc2VcbiAgfTtcblxuICBoYW5kbGVDbGlja091dHNpZGUgPSBlID0+IHtcbiAgICBpZiAoZT8udGFyZ2V0Py5jbGFzc0xpc3Q/LmNvbnRhaW5zKHByZXZlbnRDbG9zZVNlbGVjdG9yKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9oaWRlVHlwZWFoZWFkKCk7XG4gIH07XG5cbiAgX2hpZGVUeXBlYWhlYWQoKSB7XG4gICAgdGhpcy5zZXRTdGF0ZSh7c2hvd1R5cGVhaGVhZDogZmFsc2V9KTtcbiAgICB0aGlzLl9vbkJsdXIoKTtcbiAgfVxuXG4gIF9vbkJsdXIgPSAoKSA9PiB7XG4gICAgLy8gbm90ZTogY2hpY2tsZXRlZCBpbnB1dCBpcyBub3QgYSByZWFsIGZvcm0gZWxlbWVudCBzbyB3ZSBjYWxsIG9uQmx1cigpXG4gICAgLy8gd2hlbiB3ZSBmZWVsIHRoZSBldmVudHMgYXJlIGFwcHJvcHJpYXRlXG4gICAgaWYgKHRoaXMucHJvcHMub25CbHVyKSB7XG4gICAgICB0aGlzLnByb3BzLm9uQmx1cigpO1xuICAgIH1cbiAgfTtcblxuICBfcmVtb3ZlSXRlbSA9IChpdGVtLCBlKSA9PiB7XG4gICAgLy8gb25seSB1c2VkIHdoZW4gbXVsdGlTZWxlY3QgPSB0cnVlXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgY29uc3Qge3NlbGVjdGVkSXRlbXN9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCBpbmRleCA9IHNlbGVjdGVkSXRlbXMuZmluZEluZGV4KHQgPT4gdCA9PT0gaXRlbSk7XG5cbiAgICBpZiAoaW5kZXggPCAwKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaXRlbXMgPSBbXG4gICAgICAuLi5zZWxlY3RlZEl0ZW1zLnNsaWNlKDAsIGluZGV4KSxcbiAgICAgIC4uLnNlbGVjdGVkSXRlbXMuc2xpY2UoaW5kZXggKyAxLCBzZWxlY3RlZEl0ZW1zLmxlbmd0aClcbiAgICBdO1xuXG4gICAgdGhpcy5wcm9wcy5vbkNoYW5nZShpdGVtcyk7XG5cbiAgICBpZiAodGhpcy5wcm9wcy5jbG9zZU9uU2VsZWN0KSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtzaG93VHlwZWFoZWFkOiBmYWxzZX0pO1xuICAgICAgdGhpcy5fb25CbHVyKCk7XG4gICAgfVxuICB9O1xuXG4gIF9zZWxlY3RJdGVtID0gaXRlbSA9PiB7XG4gICAgY29uc3QgZ2V0VmFsdWUgPSBBY2Nlc3Nvci5nZW5lcmF0ZU9wdGlvblRvU3RyaW5nRm9yKFxuICAgICAgdGhpcy5wcm9wcy5nZXRPcHRpb25WYWx1ZSB8fCB0aGlzLnByb3BzLmRpc3BsYXlPcHRpb25cbiAgICApO1xuXG4gICAgY29uc3QgcHJldmlvdXNTZWxlY3RlZCA9IHRvQXJyYXkodGhpcy5wcm9wcy5zZWxlY3RlZEl0ZW1zKTtcblxuICAgIGlmICh0aGlzLnByb3BzLm11bHRpU2VsZWN0KSB7XG4gICAgICBjb25zdCBpdGVtcyA9IHVuaXFCeShwcmV2aW91c1NlbGVjdGVkLmNvbmNhdCh0b0FycmF5KGl0ZW0pKSwgZ2V0VmFsdWUpO1xuICAgICAgdGhpcy5wcm9wcy5vbkNoYW5nZShpdGVtcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucHJvcHMub25DaGFuZ2UoZ2V0VmFsdWUoaXRlbSkpO1xuICAgIH1cblxuICAgIGlmICh0aGlzLnByb3BzLmNsb3NlT25TZWxlY3QpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe3Nob3dUeXBlYWhlYWQ6IGZhbHNlfSk7XG4gICAgICB0aGlzLl9vbkJsdXIoKTtcbiAgICB9XG4gIH07XG5cbiAgX29uRXJhc2UgPSBlID0+IHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMucHJvcHMub25DaGFuZ2UobnVsbCk7XG4gIH07XG5cbiAgX3Nob3dUeXBlYWhlYWQgPSBlID0+IHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGlmICghdGhpcy5wcm9wcy5kaXNhYmxlZCAmJiAhdGhpcy5wcm9wcy5pc0xvYWRpbmcpIHtcbiAgICAgIGlmICghdGhpcy5zdGF0ZS5zaG93VHlwZWFoZWFkICYmIHRoaXMucHJvcHMub25Gb2N1cykge1xuICAgICAgICB0aGlzLnByb3BzLm9uRm9jdXMoKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuc2V0U3RhdGUoe1xuICAgICAgICBzaG93VHlwZWFoZWFkOiB0cnVlXG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgX3JlbmRlckRyb3Bkb3duKGludGwpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPERyb3Bkb3duV3JhcHBlciBwbGFjZW1lbnQ9e3RoaXMucHJvcHMucGxhY2VtZW50fT5cbiAgICAgICAgPFR5cGVhaGVhZFxuICAgICAgICAgIGN1c3RvbUNsYXNzZXM9e3tcbiAgICAgICAgICAgIHJlc3VsdHM6ICdsaXN0LXNlbGVjdG9yJyxcbiAgICAgICAgICAgIGlucHV0OiAndHlwZWFoZWFkX19pbnB1dCcsXG4gICAgICAgICAgICBsaXN0SXRlbTogJ2xpc3RfX2l0ZW0nLFxuICAgICAgICAgICAgbGlzdEFuY2hvcjogJ2xpc3RfX2l0ZW1fX2FuY2hvcidcbiAgICAgICAgICB9fVxuICAgICAgICAgIG9wdGlvbnM9e3RoaXMucHJvcHMub3B0aW9uc31cbiAgICAgICAgICBmaWx0ZXJPcHRpb249e3RoaXMucHJvcHMuZmlsdGVyT3B0aW9ufVxuICAgICAgICAgIGZpeGVkT3B0aW9ucz17dGhpcy5wcm9wcy5maXhlZE9wdGlvbnN9XG4gICAgICAgICAgcGxhY2Vob2xkZXI9e1xuICAgICAgICAgICAgdGhpcy5wcm9wcy50eXBlYWhlYWRQbGFjZWhvbGRlciB8fCBpbnRsXG4gICAgICAgICAgICAgID8gaW50bC5mb3JtYXRNZXNzYWdlKHtpZDogJ3BsYWNlaG9sZGVyLnNlYXJjaCd9KVxuICAgICAgICAgICAgICA6ICdTZWFyY2gnXG4gICAgICAgICAgfVxuICAgICAgICAgIG9uT3B0aW9uU2VsZWN0ZWQ9e3RoaXMuX3NlbGVjdEl0ZW19XG4gICAgICAgICAgY3VzdG9tTGlzdENvbXBvbmVudD17dGhpcy5wcm9wcy5Ecm9wRG93blJlbmRlckNvbXBvbmVudH1cbiAgICAgICAgICBjdXN0b21MaXN0SGVhZGVyQ29tcG9uZW50PXt0aGlzLnByb3BzLkRyb3Bkb3duSGVhZGVyQ29tcG9uZW50fVxuICAgICAgICAgIGN1c3RvbUxpc3RJdGVtQ29tcG9uZW50PXt0aGlzLnByb3BzLkRyb3BEb3duTGluZUl0ZW1SZW5kZXJDb21wb25lbnR9XG4gICAgICAgICAgZGlzcGxheU9wdGlvbj17QWNjZXNzb3IuZ2VuZXJhdGVPcHRpb25Ub1N0cmluZ0Zvcih0aGlzLnByb3BzLmRpc3BsYXlPcHRpb24pfVxuICAgICAgICAgIHNlYXJjaGFibGU9e3RoaXMucHJvcHMuc2VhcmNoYWJsZX1cbiAgICAgICAgICBzaG93T3B0aW9uc1doZW5FbXB0eVxuICAgICAgICAgIHNlbGVjdGVkSXRlbXM9e3RvQXJyYXkodGhpcy5wcm9wcy5zZWxlY3RlZEl0ZW1zKX1cbiAgICAgICAgICBsaWdodD17dGhpcy5wcm9wcy5pbnB1dFRoZW1lID09PSAnbGlnaHQnfVxuICAgICAgICAgIHdpdGhTdWJPcHRpb25zPXt0aGlzLnByb3BzLndpdGhTdWJPcHRpb25zfVxuICAgICAgICAvPlxuICAgICAgPC9Ecm9wZG93bldyYXBwZXI+XG4gICAgKTtcbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCBzZWxlY3RlZCA9IHRvQXJyYXkodGhpcy5wcm9wcy5zZWxlY3RlZEl0ZW1zKTtcbiAgICBjb25zdCBoYXNWYWx1ZSA9IHNlbGVjdGVkLmxlbmd0aDtcbiAgICBjb25zdCBkaXNwbGF5T3B0aW9uID0gQWNjZXNzb3IuZ2VuZXJhdGVPcHRpb25Ub1N0cmluZ0Zvcih0aGlzLnByb3BzLmRpc3BsYXlPcHRpb24pO1xuXG4gICAgY29uc3QgZHJvcGRvd25TZWxlY3RQcm9wcyA9IHtcbiAgICAgIGNsYXNzTmFtZTogY2xhc3NuYW1lcyh7XG4gICAgICAgIGFjdGl2ZTogdGhpcy5zdGF0ZS5zaG93VHlwZWFoZWFkXG4gICAgICB9KSxcbiAgICAgIGRpc3BsYXlPcHRpb24sXG4gICAgICBkaXNhYmxlZDogdGhpcy5wcm9wcy5kaXNhYmxlZCxcbiAgICAgIG9uQ2xpY2s6IHRoaXMuX3Nob3dUeXBlYWhlYWQsXG4gICAgICBlcnJvcjogdGhpcy5wcm9wcy5pc0Vycm9yLFxuICAgICAgaW5wdXRUaGVtZTogdGhpcy5wcm9wcy5pbnB1dFRoZW1lLFxuICAgICAgc2l6ZTogdGhpcy5wcm9wcy5zaXplXG4gICAgfTtcbiAgICBjb25zdCBpbnRsID0gdGhpcy5wcm9wcy5pbnRsO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiaXRlbS1zZWxlY3RvclwiPlxuICAgICAgICA8ZGl2IHN0eWxlPXt7cG9zaXRpb246ICdyZWxhdGl2ZSd9fT5cbiAgICAgICAgICB7LyogdGhpcyBwYXJ0IGlzIHVzZWQgdG8gZGlzcGxheSB0aGUgbGFiZWwgKi99XG4gICAgICAgICAge3RoaXMucHJvcHMubXVsdGlTZWxlY3QgPyAoXG4gICAgICAgICAgICA8Q2hpY2tsZXRlZElucHV0XG4gICAgICAgICAgICAgIHsuLi5kcm9wZG93blNlbGVjdFByb3BzfVxuICAgICAgICAgICAgICBzZWxlY3RlZEl0ZW1zPXt0b0FycmF5KHRoaXMucHJvcHMuc2VsZWN0ZWRJdGVtcyl9XG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXt0aGlzLnByb3BzLnBsYWNlaG9sZGVyfVxuICAgICAgICAgICAgICByZW1vdmVJdGVtPXt0aGlzLl9yZW1vdmVJdGVtfVxuICAgICAgICAgICAgICBDdXN0b21DaGlja2xldENvbXBvbmVudD17dGhpcy5wcm9wcy5DdXN0b21DaGlja2xldENvbXBvbmVudH1cbiAgICAgICAgICAgICAgaW5wdXRUaGVtZT17dGhpcy5wcm9wcy5pbnB1dFRoZW1lfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPFN0eWxlZERyb3Bkb3duU2VsZWN0IHsuLi5kcm9wZG93blNlbGVjdFByb3BzfT5cbiAgICAgICAgICAgICAgPERyb3Bkb3duU2VsZWN0VmFsdWVcbiAgICAgICAgICAgICAgICBoYXNQbGFjZWhvbGRlcj17IWhhc1ZhbHVlfVxuICAgICAgICAgICAgICAgIGlucHV0VGhlbWU9e3RoaXMucHJvcHMuaW5wdXRUaGVtZX1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJpdGVtLXNlbGVjdG9yX19kcm9wZG93bl9fdmFsdWVcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge2hhc1ZhbHVlID8gKFxuICAgICAgICAgICAgICAgICAgPHRoaXMucHJvcHMuRHJvcERvd25MaW5lSXRlbVJlbmRlckNvbXBvbmVudFxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5T3B0aW9uPXtkaXNwbGF5T3B0aW9ufVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17c2VsZWN0ZWRbMF19XG4gICAgICAgICAgICAgICAgICAgIGxpZ2h0PXt0aGlzLnByb3BzLmlucHV0VGhlbWUgPT09ICdsaWdodCd9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17dGhpcy5wcm9wcy5wbGFjZWhvbGRlciB8fCAncGxhY2Vob2xkZXIuc2VsZWN0VmFsdWUnfSAvPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvRHJvcGRvd25TZWxlY3RWYWx1ZT5cbiAgICAgICAgICAgICAge3RoaXMucHJvcHMuZXJhc2FibGUgJiYgaGFzVmFsdWUgPyAoXG4gICAgICAgICAgICAgICAgPERyb3Bkb3duU2VsZWN0QWN0aW9uUmlnaHQ+XG4gICAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy5pc0xvYWRpbmcgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxMb2FkaW5nU3Bpbm5lciBzaXplPXsxOH0gc3Ryb2tlV2lkdGg9ezJ9IGdhcD17MH0gLz5cbiAgICAgICAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgICAgIDxEZWxldGUgaGVpZ2h0PVwiMTJweFwiIG9uQ2xpY2s9e3RoaXMuX29uRXJhc2V9IC8+XG4gICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvRHJvcGRvd25TZWxlY3RBY3Rpb25SaWdodD5cbiAgICAgICAgICAgICAgKSA6IHRoaXMucHJvcHMuc2hvd0Fycm93ID8gKFxuICAgICAgICAgICAgICAgIDxEcm9wZG93blNlbGVjdEFjdGlvblJpZ2h0PlxuICAgICAgICAgICAgICAgICAgPEFycm93RG93biBoZWlnaHQ9XCIxNHB4XCIgb25DbGljaz17dGhpcy5fc2hvd1R5cGVhaGVhZH0gLz5cbiAgICAgICAgICAgICAgICA8L0Ryb3Bkb3duU2VsZWN0QWN0aW9uUmlnaHQ+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC9TdHlsZWREcm9wZG93blNlbGVjdD5cbiAgICAgICAgICApfVxuICAgICAgICAgIHsvKiB0aGlzIHBhcnQgaXMgdXNlZCB0byBidWlsdCB0aGUgbGlzdCAqL31cbiAgICAgICAgICB7dGhpcy5zdGF0ZS5zaG93VHlwZWFoZWFkICYmIHRoaXMuX3JlbmRlckRyb3Bkb3duKGludGwpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IEl0ZW1TZWxlY3Rvckxpc3RlbiA9IGxpc3RlbnNUb0NsaWNrT3V0c2lkZShJdGVtU2VsZWN0b3IpO1xuZXhwb3J0IGRlZmF1bHQgaW5qZWN0SW50bChsaXN0ZW5zVG9DbGlja091dHNpZGUoSXRlbVNlbGVjdG9yKSk7XG4iXX0=
@@ -62,6 +62,8 @@ var _localization = require("../../../localization");
62
62
 
63
63
  var _icons = require("../../common/icons");
64
64
 
65
+ var _hexColumnConfig = require("./hex-column-config");
66
+
65
67
  var _templateObject, _templateObject2, _templateObject3, _templateObject4;
66
68
 
67
69
  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; }
@@ -76,7 +78,10 @@ var ALL_TYPES = (0, _lodash["default"])(['all'].concat((0, _toConsumableArray2["
76
78
  return c.type;
77
79
  }).filter(function (ctype) {
78
80
  return ctype;
79
- })), ['custom']));
81
+ })), ['custom', {
82
+ value: _colorRanges.hexColor,
83
+ divider: true
84
+ }]));
80
85
  exports.ALL_TYPES = ALL_TYPES;
81
86
  var ALL_STEPS = (0, _lodash["default"])(_colorRanges.COLOR_RANGES.map(function (d) {
82
87
  return d.colors.length;
@@ -108,9 +113,9 @@ var CONFIG_SETTINGS = {
108
113
  options: [true, false]
109
114
  }
110
115
  };
111
- ColorRangeSelectFactory.deps = [ColorPaletteGroupFactory, PaletteConfigFactory];
116
+ ColorRangeSelectFactory.deps = [ColorPaletteGroupFactory, PaletteConfigFactory, _hexColumnConfig.HexColumnConfigFactory];
112
117
 
113
- function ColorRangeSelectFactory(ColorPaletteGroup, PaletteConfig) {
118
+ function ColorRangeSelectFactory(ColorPaletteGroup, PaletteConfig, HexColumnConfig) {
114
119
  var ColorRangeSelect = /*#__PURE__*/function (_Component) {
115
120
  (0, _inherits2["default"])(ColorRangeSelect, _Component);
116
121
 
@@ -147,7 +152,8 @@ function ColorRangeSelectFactory(ColorPaletteGroup, PaletteConfig) {
147
152
  value = _ref.value;
148
153
 
149
154
  _this._setColorRangeConfig(_objectSpread((0, _defineProperty2["default"])({}, key, value), key === 'type' && {
150
- custom: value === 'custom'
155
+ custom: value === 'custom',
156
+ isHexColumn: value === _colorRanges.hexColor
151
157
  }));
152
158
  });
153
159
  (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onSetCustomPalette", function (config) {
@@ -164,7 +170,8 @@ function ColorRangeSelectFactory(ColorPaletteGroup, PaletteConfig) {
164
170
  _this.props.setColorPaletteUI({
165
171
  showSketcher: false,
166
172
  colorRangeConfig: {
167
- custom: false
173
+ custom: false,
174
+ isHexColumn: false
168
175
  }
169
176
  });
170
177
  });
@@ -173,6 +180,14 @@ function ColorRangeSelectFactory(ColorPaletteGroup, PaletteConfig) {
173
180
  showSketcher: val
174
181
  });
175
182
  });
183
+ (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_onSelectColumn", function (column) {
184
+ _this.props.onSelectColorColumn(column);
185
+
186
+ _this._setColorRangeConfig({
187
+ type: _colorRanges.hexColor,
188
+ hexColumn: column === null || column === void 0 ? void 0 : column.name
189
+ });
190
+ });
176
191
  return _this;
177
192
  }
178
193
 
@@ -189,7 +204,7 @@ function ColorRangeSelectFactory(ColorPaletteGroup, PaletteConfig) {
189
204
  return /*#__PURE__*/_react["default"].createElement(StyledColorRangeSelector, null, /*#__PURE__*/_react["default"].createElement(StyledColorConfig, {
190
205
  className: "color-range-selector__config"
191
206
  }, Object.keys(colorRangeConfig).filter(function (key) {
192
- return Boolean(CONFIG_SETTINGS[key]) && (colorRangeConfig.custom ? key === 'type' : true);
207
+ return Boolean(CONFIG_SETTINGS[key]) && (colorRangeConfig.custom || colorRangeConfig.isHexColumn ? key === 'type' : true);
193
208
  }).map(function (key) {
194
209
  return /*#__PURE__*/_react["default"].createElement(PaletteConfig, {
195
210
  key: key,
@@ -211,6 +226,10 @@ function ColorRangeSelectFactory(ColorPaletteGroup, PaletteConfig) {
211
226
  onToggleSketcher: this._onToggleSketcher,
212
227
  setCustomPalette: this._onSetCustomPalette,
213
228
  onCancel: this._onCustomPaletteCancel
229
+ }) : colorRangeConfig.isHexColumn ? /*#__PURE__*/_react["default"].createElement(HexColumnConfig, {
230
+ fields: this.props.fields,
231
+ value: colorRangeConfig.hexColumn,
232
+ onSelectColumn: this._onSelectColumn
214
233
  }) : /*#__PURE__*/_react["default"].createElement(ColorPaletteGroup, {
215
234
  colorRanges: filteredColorRanges,
216
235
  onSelect: this.props.onSelectColorRange,
@@ -229,9 +248,11 @@ function ColorRangeSelectFactory(ColorPaletteGroup, PaletteConfig) {
229
248
  }(_react.Component);
230
249
 
231
250
  (0, _defineProperty2["default"])(ColorRangeSelect, "propTypes", {
251
+ fields: _propTypes["default"].arrayOf(_propTypes["default"].any),
232
252
  colorPaletteUI: _propTypes["default"].object.isRequired,
233
253
  selectedColorRange: _propTypes["default"].object.isRequired,
234
254
  onSelectColorRange: _propTypes["default"].func.isRequired,
255
+ onSelectColorColumn: _propTypes["default"].func.isRequired,
235
256
  setColorPaletteUI: _propTypes["default"].func.isRequired,
236
257
  // optional
237
258
  colorRanges: _propTypes["default"].arrayOf(_propTypes["default"].any)
@@ -367,4 +388,4 @@ function ColorPaletteGroupFactory() {
367
388
 
368
389
  return ColorPaletteGroup;
369
390
  }
370
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvY29sb3ItcmFuZ2Utc2VsZWN0b3IuanMiXSwibmFtZXMiOlsiQUxMX1RZUEVTIiwiQ09MT1JfUkFOR0VTIiwibWFwIiwiYyIsInR5cGUiLCJmaWx0ZXIiLCJjdHlwZSIsIkFMTF9TVEVQUyIsImQiLCJjb2xvcnMiLCJsZW5ndGgiLCJzb3J0IiwibnVtYmVyU29ydCIsIlN0eWxlZENvbG9yQ29uZmlnIiwic3R5bGVkIiwiZGl2IiwiU3R5bGVkQ29sb3JSYW5nZVNlbGVjdG9yIiwiYXR0cnMiLCJjbGFzc05hbWUiLCJTdHlsZWRQYWxldHRlQ29uZmlnIiwicHJvcHMiLCJ0aGVtZSIsInNlY29uZGFyeUlucHV0IiwiQ09ORklHX1NFVFRJTkdTX0NVU1RPTV9SRVZFUlNFRF9CVVRUT05fVFlQRSIsIkNPTkZJR19TRVRUSU5HUyIsIm9wdGlvbnMiLCJzdGVwcyIsInJldmVyc2VkIiwiQ29sb3JSYW5nZVNlbGVjdEZhY3RvcnkiLCJkZXBzIiwiQ29sb3JQYWxldHRlR3JvdXBGYWN0b3J5IiwiUGFsZXR0ZUNvbmZpZ0ZhY3RvcnkiLCJDb2xvclBhbGV0dGVHcm91cCIsIlBhbGV0dGVDb25maWciLCJDb2xvclJhbmdlU2VsZWN0IiwiY29sb3JSYW5nZXMiLCJjb2xvclBhbGV0dGVVSSIsImNvbG9yUmFuZ2VDb25maWciLCJjb2xvclJhbmdlc1NlbGVjdG9yIiwiY29uZmlnVHlwZVNlbGVjdG9yIiwiY29uZmlnU3RlcFNlbGVjdG9yIiwiY29sb3JSYW5nZSIsImlzVHlwZSIsImlzU3RlcCIsIk51bWJlciIsImtleSIsInZhbHVlIiwiX3NldENvbG9yUmFuZ2VDb25maWciLCJjdXN0b20iLCJjb25maWciLCJzZXRDb2xvclBhbGV0dGVVSSIsImN1c3RvbVBhbGV0dGUiLCJuZXdDb25maWciLCJzaG93U2tldGNoZXIiLCJ2YWwiLCJmaWx0ZXJlZENvbG9yUmFuZ2VzIiwiZmlsdGVyZWRDb2xvclJhbmdlIiwiT2JqZWN0Iiwia2V5cyIsIkJvb2xlYW4iLCJsYWJlbCIsIl91cGRhdGVDb25maWciLCJzZWxlY3RlZENvbG9yUmFuZ2UiLCJvblNlbGVjdENvbG9yUmFuZ2UiLCJfb25Ub2dnbGVTa2V0Y2hlciIsIl9vblNldEN1c3RvbVBhbGV0dGUiLCJfb25DdXN0b21QYWxldHRlQ2FuY2VsIiwiQ29tcG9uZW50IiwiUHJvcFR5cGVzIiwib2JqZWN0IiwiaXNSZXF1aXJlZCIsImZ1bmMiLCJhcnJheU9mIiwiYW55Iiwib25DaGFuZ2UiLCJlIiwic3RvcFByb3BhZ2F0aW9uIiwibGluayIsIlN0eWxlZENvbG9yUmFuZ2UiLCJwYW5lbEJhY2tncm91bmRIb3ZlciIsIm9uU2VsZWN0Iiwic2VsZWN0ZWQiLCJ0aXRsZSIsImkiLCJuYW1lIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOzs7Ozs7Ozs7Ozs7QUFFTyxJQUFNQSxTQUFTLEdBQUcseUJBQ3ZCLEtBRHVCLDZDQUVwQkMsMEJBQWFDLEdBQWIsQ0FBaUIsVUFBQUMsQ0FBQztBQUFBLFNBQUlBLENBQUMsQ0FBQ0MsSUFBTjtBQUFBLENBQWxCLEVBQThCQyxNQUE5QixDQUFxQyxVQUFBQyxLQUFLO0FBQUEsU0FBSUEsS0FBSjtBQUFBLENBQTFDLENBRm9CLElBR3ZCLFFBSHVCLEdBQWxCOztBQU1BLElBQU1DLFNBQVMsR0FBRyx3QkFBS04sMEJBQWFDLEdBQWIsQ0FBaUIsVUFBQU0sQ0FBQztBQUFBLFNBQUlBLENBQUMsQ0FBQ0MsTUFBRixDQUFTQyxNQUFiO0FBQUEsQ0FBbEIsQ0FBTCxFQUE2Q0MsSUFBN0MsQ0FBa0RDLHFCQUFsRCxDQUFsQjs7O0FBRVAsSUFBTUMsaUJBQWlCLEdBQUdDLDZCQUFPQyxHQUFWLHNIQUF2Qjs7QUFJQSxJ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QUFBLHFCQUNSSyxRQUFRLENBQUNyRCxRQUFRLEdBQUcsbUNBQWtCLElBQWxCLEVBQXdCYyxVQUF4QixDQUFILEdBQXlDQSxVQUFsRCxFQUE4RGtDLENBQTlELENBREE7QUFBQTtBQUZaLDBCQU1FLGdDQUFDLHdCQUFEO0FBQ0UsWUFBQSxNQUFNLEVBQUVsQyxVQUFVLENBQUNoQyxNQURyQjtBQUVFLFlBQUEsVUFBVSxFQUFFa0IsUUFGZDtBQUdFLFlBQUEsVUFBVSxFQUFFYyxVQUFVLENBQUMyQyxJQUFYLEtBQW9CSCxRQUFRLENBQUNHLElBSDNDO0FBSUUsWUFBQSxTQUFTLEVBQUU7QUFDVCwwQkFBWSxJQURIO0FBRVQsZ0RBQTJCRCxDQUEzQjtBQUZTO0FBSmIsMEJBU0UsZ0NBQUMsMEJBQUQ7QUFBUyxZQUFBLEVBQUUsd0JBQWlCQSxDQUFqQixhQUFYO0FBQXlDLFlBQUEsTUFBTSxFQUFDLE9BQWhEO0FBQXdELFlBQUEsS0FBSyxFQUFDO0FBQTlELGFBQ0cxQyxVQUFVLENBQUMyQyxJQURkLENBVEYsQ0FORixDQURlO0FBQUEsU0FBaEIsQ0FGSCxDQURGO0FBMkJEO0FBL0JzQztBQUFBO0FBQUEsSUFDVGpCLGdCQURTOztBQWlDekMsU0FBT25DLGlCQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgUmVhY3QsIHtDb21wb25lbnR9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgdW5pcSBmcm9tICdsb2Rhc2gudW5pcSc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7Y3JlYXRlU2VsZWN0b3J9IGZyb20gJ3Jlc2VsZWN0JztcblxuaW1wb3J0IEl0ZW1TZWxlY3RvciBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9pdGVtLXNlbGVjdG9yL2l0ZW0tc2VsZWN0b3InO1xuaW1wb3J0IHtQYW5lbExhYmVsLCBCdXR0b24sIFRvb2x0aXB9IGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBTd2l0Y2ggZnJvbSAnY29tcG9uZW50cy9jb21tb24vc3dpdGNoJztcbmltcG9ydCBDb2xvclBhbGV0dGUgZnJvbSAnLi9jb2xvci1wYWxldHRlJztcbmltcG9ydCBDdXN0b21QYWxldHRlIGZyb20gJy4vY3VzdG9tLXBhbGV0dGUnO1xuaW1wb3J0IHtDT0xPUl9SQU5HRVN9IGZyb20gJ2NvbnN0YW50cy9jb2xvci1yYW5nZXMnO1xuaW1wb3J0IHtudW1iZXJTb3J0fSBmcm9tICd1dGlscy9kYXRhLXV0aWxzJztcbmltcG9ydCB7cmV2ZXJzZUNvbG9yUmFuZ2V9IGZyb20gJ3V0aWxzL2NvbG9yLXV0aWxzJztcbmltcG9ydCB7Rm9ybWF0dGVkTWVzc2FnZX0gZnJvbSAnbG9jYWxpemF0aW9uJztcbmltcG9ydCB7U3dhcEhvcml6b250YWx9IGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL2ljb25zJztcblxuZXhwb3J0IGNvbnN0IEFMTF9UWVBFUyA9IHVuaXEoW1xuICAnYWxsJyxcbiAgLi4uQ09MT1JfUkFOR0VTLm1hcChjID0+IGMudHlwZSkuZmlsdGVyKGN0eXBlID0+IGN0eXBlKSxcbiAgJ2N1c3RvbSdcbl0pO1xuXG5leHBvcnQgY29uc3QgQUxMX1NURVBTID0gdW5pcShDT0xPUl9SQU5HRVMubWFwKGQgPT4gZC5jb2xvcnMubGVuZ3RoKSkuc29ydChudW1iZXJTb3J0KTtcblxuY29uc3QgU3R5bGVkQ29sb3JDb25maWcgPSBzdHlsZWQuZGl2YFxuICBwYWRkaW5nOiAxMnB4IDEycHggMCAxMnB4O1xuYDtcblxuY29uc3QgU3R5bGVkQ29sb3JSYW5nZVNlbGVjdG9yID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ2NvbG9yLXJhbmdlLXNlbGVjdG9yJ1xufSlgXG4gIHBhZGRpbmctYm90dG9tOiAxMnB4O1xuYDtcblxuY29uc3QgU3R5bGVkUGFsZXR0ZUNvbmZpZyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi1ib3R0b206IDhweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAuY29sb3ItcGFsZXR0ZV9fY29uZmlnX19sYWJlbCB7XG4gICAgZmxleC1ncm93OiAxO1xuICB9XG4gIC5jb2xvci1wYWxldHRlX19jb25maWdfX3NlbGVjdCB7XG4gICAgZmxleC1ncm93OiAxO1xuICB9XG4gIC5pdGVtLXNlbGVjdG9yIC5pdGVtLXNlbGVjdG9yX19kcm9wZG93biB7XG4gICAgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zZWNvbmRhcnlJbnB1dH07XG4gIH1cbiAgLmNvbG9yLXBhbGV0dGVfX2NvbmZpZ19fYnV0dG9uIHtcbiAgICBzdmcge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgfVxuYDtcblxuY29uc3QgQ09ORklHX1NFVFRJTkdTX0NVU1RPTV9SRVZFUlNFRF9CVVRUT05fVFlQRSA9ICdjdXN0b20tcmV2ZXJzZWQtYnV0dG9uJztcblxuY29uc3QgQ09ORklHX1NFVFRJTkdTID0ge1xuICB0eXBlOiB7XG4gICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgb3B0aW9uczogQUxMX1RZUEVTXG4gIH0sXG4gIHN0ZXBzOiB7XG4gICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgb3B0aW9uczogQUxMX1NURVBTXG4gIH0sXG4gIHJldmVyc2VkOiB7XG4gICAgdHlwZTogQ09ORklHX1NFVFRJTkdTX0NVU1RPTV9SRVZFUlNFRF9CVVRUT05fVFlQRSxcbiAgICBvcHRpb25zOiBbdHJ1ZSwgZmFsc2VdXG4gIH1cbn07XG5cbkNvbG9yUmFuZ2VTZWxlY3RGYWN0b3J5LmRlcHMgPSBbQ29sb3JQYWxldHRlR3JvdXBGYWN0b3J5LCBQYWxldHRlQ29uZmlnRmFjdG9yeV07XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBDb2xvclJhbmdlU2VsZWN0RmFjdG9yeShDb2xvclBhbGV0dGVHcm91cCwgUGFsZXR0ZUNvbmZpZykge1xuICBjbGFzcyBDb2xvclJhbmdlU2VsZWN0IGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgICBzdGF0aWMgcHJvcFR5cGVzID0ge1xuICAgICAgY29sb3JQYWxldHRlVUk6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAgIHNlbGVjdGVkQ29sb3JSYW5nZTogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgICAgb25TZWxlY3RDb2xvclJhbmdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgc2V0Q29sb3JQYWxldHRlVUk6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgICAvLyBvcHRpb25hbFxuICAgICAgY29sb3JSYW5nZXM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5hbnkpXG4gICAgfTtcblxuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICBjb2xvclJhbmdlczogQ09MT1JfUkFOR0VTLFxuICAgICAgb25TZWxlY3RDb2xvclJhbmdlOiAoKSA9PiB7fSxcbiAgICAgIHNldENvbG9yUGFsZXR0ZVVJOiAoKSA9PiB7fVxuICAgIH07XG5cbiAgICBjb2xvclJhbmdlc1NlbGVjdG9yID0gcHJvcHMgPT4gcHJvcHMuY29sb3JSYW5nZXM7XG4gICAgY29uZmlnVHlwZVNlbGVjdG9yID0gcHJvcHMgPT4gcHJvcHMuY29sb3JQYWxldHRlVUkuY29sb3JSYW5nZUNvbmZpZy50eXBlO1xuICAgIGNvbmZpZ1N0ZXBTZWxlY3RvciA9IHByb3BzID0+IHByb3BzLmNvbG9yUGFsZXR0ZVVJLmNvbG9yUmFuZ2VDb25maWcuc3RlcHM7XG4gICAgZmlsdGVyZWRDb2xvclJhbmdlID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICB0aGlzLmNvbG9yUmFuZ2VzU2VsZWN0b3IsXG4gICAgICB0aGlzLmNvbmZpZ1R5cGVTZWxlY3RvcixcbiAgICAgIHRoaXMuY29uZmlnU3RlcFNlbGVjdG9yLFxuICAgICAgKGNvbG9yUmFuZ2VzLCB0eXBlLCBzdGVwcykgPT4ge1xuICAgICAgICByZXR1cm4gY29sb3JSYW5nZXMuZmlsdGVyKGNvbG9yUmFuZ2UgPT4ge1xuICAgICAgICAgIGNvbnN0IGlzVHlwZSA9IHR5cGUgPT09ICdhbGwnIHx8IHR5cGUgPT09IGNvbG9yUmFuZ2UudHlwZTtcbiAgICAgICAgICBjb25zdCBpc1N0ZXAgPSBOdW1iZXIoc3RlcHMpID09PSBjb2xvclJhbmdlLmNvbG9ycy5sZW5ndGg7XG5cbiAgICAgICAgICByZXR1cm4gaXNUeXBlICYmIGlzU3RlcDtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgKTtcblxuICAgIF91cGRhdGVDb25maWcgPSAoe2tleSwgdmFsdWV9KSA9PiB7XG4gICAgICB0aGlzLl9zZXRDb2xvclJhbmdlQ29uZmlnKHtcbiAgICAgICAgW2tleV06IHZhbHVlLFxuICAgICAgICAuLi4oa2V5ID09PSAndHlwZScgJiYge2N1c3RvbTogdmFsdWUgPT09ICdjdXN0b20nfSlcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBfb25TZXRDdXN0b21QYWxldHRlID0gY29uZmlnID0+IHtcbiAgICAgIHRoaXMucHJvcHMuc2V0Q29sb3JQYWxldHRlVUkoe1xuICAgICAgICBjdXN0b21QYWxldHRlOiBjb25maWdcbiAgICAgIH0pO1xuICAgIH07XG5cbiAgICBfc2V0Q29sb3JSYW5nZUNvbmZpZyA9IG5ld0NvbmZpZyA9PiB7XG4gICAgICB0aGlzLnByb3BzLnNldENvbG9yUGFsZXR0ZVVJKHtcbiAgICAgICAgY29sb3JSYW5nZUNvbmZpZzogbmV3Q29uZmlnXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgX29uQ3VzdG9tUGFsZXR0ZUNhbmNlbCA9IG5ld0NvbmZpZyA9PiB7XG4gICAgICB0aGlzLnByb3BzLnNldENvbG9yUGFsZXR0ZVVJKHtcbiAgICAgICAgc2hvd1NrZXRjaGVyOiBmYWxzZSxcbiAgICAgICAgY29sb3JSYW5nZUNvbmZpZzoge2N1c3RvbTogZmFsc2V9XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgX29uVG9nZ2xlU2tldGNoZXIgPSB2YWwgPT4ge1xuICAgICAgdGhpcy5wcm9wcy5zZXRDb2xvclBhbGV0dGVVSSh7XG4gICAgICAgIHNob3dTa2V0Y2hlcjogdmFsXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3Qge2N1c3RvbVBhbGV0dGUsIHNob3dTa2V0Y2hlciwgY29sb3JSYW5nZUNvbmZpZ30gPSB0aGlzLnByb3BzLmNvbG9yUGFsZXR0ZVVJO1xuICAgICAgY29uc3QgZmlsdGVyZWRDb2xvclJhbmdlcyA9IHRoaXMuZmlsdGVyZWRDb2xvclJhbmdlKHRoaXMucHJvcHMpO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkQ29sb3JSYW5nZVNlbGVjdG9yPlxuICAgICAgICAgIDxTdHlsZWRDb2xvckNvbmZpZyBjbGFzc05hbWU9XCJjb2xvci1yYW5nZS1zZWxlY3Rvcl9fY29uZmlnXCI+XG4gICAgICAgICAgICB7T2JqZWN0LmtleXMoY29sb3JSYW5nZUNvbmZpZylcbiAgICAgICAgICAgICAgLmZpbHRlcihcbiAgICAgICAgICAgICAgICBrZXkgPT5cbiAgICAgICAgICAgICAgICAgIEJvb2xlYW4oQ09ORklHX1NFVFRJTkdTW2tleV0pICYmIChjb2xvclJhbmdlQ29uZmlnLmN1c3RvbSA/IGtleSA9PT0gJ3R5cGUnIDogdHJ1ZSlcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAubWFwKGtleSA9PiB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgIDxQYWxldHRlQ29uZmlnXG4gICAgICAgICAgICAgICAgICAgIGtleT17a2V5fVxuICAgICAgICAgICAgICAgICAgICBsYWJlbD17Q09ORklHX1NFVFRJTkdTW2tleV0ubGFiZWwgfHwga2V5fVxuICAgICAgICAgICAgICAgICAgICBjb25maWc9e0NPTkZJR19TRVRUSU5HU1trZXldfVxuICAgICAgICAgICAgICAgICAgICB2YWx1ZT17Y29sb3JSYW5nZUNvbmZpZ1trZXldfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17dmFsdWUgPT4gdGhpcy5fdXBkYXRlQ29uZmlnKHtrZXksIHZhbHVlfSl9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgIH0pfVxuICAgICAgICAgIDwvU3R5bGVkQ29sb3JDb25maWc+XG5cbiAgICAgICAgICB7Y29sb3JSYW5nZUNvbmZpZy5jdXN0b20gPyAoXG4gICAgICAgICAgICA8Q3VzdG9tUGFsZXR0ZVxuICAgICAgICAgICAgICBjdXN0b21QYWxldHRlPXtjdXN0b21QYWxldHRlfVxuICAgICAgICAgICAgICBzaG93U2tldGNoZXI9e3Nob3dTa2V0Y2hlcn1cbiAgICAgICAgICAgICAgc2VsZWN0ZWQ9e3RoaXMucHJvcHMuc2VsZWN0ZWRDb2xvclJhbmdlfVxuICAgICAgICAgICAgICBvbkFwcGx5PXt0aGlzLnByb3BzLm9uU2VsZWN0Q29sb3JSYW5nZX1cbiAgICAgICAgICAgICAgb25Ub2dnbGVTa2V0Y2hlcj17dGhpcy5fb25Ub2dnbGVTa2V0Y2hlcn1cbiAgICAgICAgICAgICAgc2V0Q3VzdG9tUGFsZXR0ZT17dGhpcy5fb25TZXRDdXN0b21QYWxldHRlfVxuICAgICAgICAgICAgICBvbkNhbmNlbD17dGhpcy5fb25DdXN0b21QYWxldHRlQ2FuY2VsfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPENvbG9yUGFsZXR0ZUdyb3VwXG4gICAgICAgICAgICAgIGNvbG9yUmFuZ2VzPXtmaWx0ZXJlZENvbG9yUmFuZ2VzfVxuICAgICAgICAgICAgICBvblNlbGVjdD17dGhpcy5wcm9wcy5vblNlbGVjdENvbG9yUmFuZ2V9XG4gICAgICAgICAgICAgIHNlbGVjdGVkPXt0aGlzLnByb3BzLnNlbGVjdGVkQ29sb3JSYW5nZX1cbiAgICAgICAgICAgICAgcmV2ZXJzZWQ9e2NvbG9yUmFuZ2VDb25maWcucmV2ZXJzZWR9XG4gICAgICAgICAgICAgIGNvbmZpZ1R5cGVTZWxlY3Rvcj17KCkgPT4gdGhpcy5wcm9wcy5jb2xvclBhbGV0dGVVSS5jb2xvclJhbmdlQ29uZmlnLnR5cGV9XG4gICAgICAgICAgICAgIGNvbmZpZ1N0ZXBTZWxlY3Rvcj17KCkgPT4gdGhpcy5wcm9wcy5jb2xvclBhbGV0dGVVSS5jb2xvclJhbmdlQ29uZmlnLnN0ZXBzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1N0eWxlZENvbG9yUmFuZ2VTZWxlY3Rvcj5cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIENvbG9yUmFuZ2VTZWxlY3Q7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBQYWxldHRlQ29uZmlnRmFjdG9yeSgpIHtcbiAgY2xhc3MgUGFsZXR0ZUNvbmZpZyBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBsYWJlbCxcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIGNvbmZpZzoge3R5cGUsIG9wdGlvbnN9LFxuICAgICAgICBvbkNoYW5nZVxuICAgICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRQYWxldHRlQ29uZmlnXG4gICAgICAgICAgY2xhc3NOYW1lPXtgY29sb3ItcGFsZXR0ZV9fY29uZmlnIGNvbG9yLXBhbGV0dGVfX2NvbmZpZy0tJHtsYWJlbH1gfVxuICAgICAgICAgIG9uQ2xpY2s9e2UgPT4gZS5zdG9wUHJvcGFnYXRpb24oKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sb3ItcGFsZXR0ZV9fY29uZmlnX19sYWJlbFwiPlxuICAgICAgICAgICAge3R5cGUgIT09IENPTkZJR19TRVRUSU5HU19DVVNUT01fUkVWRVJTRURfQlVUVE9OX1RZUEUgJiYgKFxuICAgICAgICAgICAgICA8UGFuZWxMYWJlbD5cbiAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17YGNvbG9yLiR7bGFiZWx9YH0gLz5cbiAgICAgICAgICAgICAgPC9QYW5lbExhYmVsPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB7dHlwZSA9PT0gJ3NlbGVjdCcgJiYgKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xvci1wYWxldHRlX19jb25maWdfX3NlbGVjdFwiPlxuICAgICAgICAgICAgICA8SXRlbVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtcz17dmFsdWV9XG4gICAgICAgICAgICAgICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICAgICAgICAgICAgICBtdWx0aVNlbGVjdD17ZmFsc2V9XG4gICAgICAgICAgICAgICAgc2VhcmNoYWJsZT17ZmFsc2V9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7dHlwZSA9PT0gJ3N3aXRjaCcgJiYgKFxuICAgICAgICAgICAgPFN3aXRjaFxuICAgICAgICAgICAgICBjaGVja2VkPXt2YWx1ZX1cbiAgICAgICAgICAgICAgaWQ9e2Ake2xhYmVsfS10b2dnbGVgfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17KCkgPT4gb25DaGFuZ2UoIXZhbHVlKX1cbiAgICAgICAgICAgICAgc2Vjb25kYXJ5XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgICAge3R5cGUgPT09IENPTkZJR19TRVRUSU5HU19DVVNUT01fUkVWRVJTRURfQlVUVE9OX1RZUEUgJiYgKFxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2Bjb2xvci1wYWxldHRlX19jb25maWdfX2J1dHRvbiAke1xuICAgICAgICAgICAgICAgIHZhbHVlID8gJ2NvbG9yLXBhbGV0dGVfX2NvbmZpZ19fYnV0dG9uLS1hY3RpdmUnIDogJydcbiAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICAgIGRhdGEtdGlwXG4gICAgICAgICAgICAgIGRhdGEtZm9yPXtgJHtsYWJlbH0tdG9vbHRpcGB9XG4gICAgICAgICAgICAgIHsuLi4oIXZhbHVlICYmIHtsaW5rOiB0cnVlfSl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlKCF2YWx1ZSl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTd2FwSG9yaXpvbnRhbCAvPlxuICAgICAgICAgICAgICA8VG9vbHRpcCBpZD17YCR7bGFiZWx9LXRvb2x0aXBgfSBlZmZlY3Q9XCJzb2xpZFwiIHBsYWNlPVwidG9wXCI+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA8L1N0eWxlZFBhbGV0dGVDb25maWc+XG4gICAgICApO1xuICAgIH1cbiAgfVxuICByZXR1cm4gUGFsZXR0ZUNvbmZpZztcbn1cblxuY29uc3QgU3R5bGVkQ29sb3JSYW5nZSA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICdjb2xvci1wYWxldHRlLW91dGVyJ1xufSlgXG4gIHBhZGRpbmc6IDAgOHB4O1xuICA6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUucGFuZWxCYWNrZ3JvdW5kSG92ZXJ9O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuYDtcblxuZXhwb3J0IGZ1bmN0aW9uIENvbG9yUGFsZXR0ZUdyb3VwRmFjdG9yeSgpIHtcbiAgY2xhc3MgQ29sb3JQYWxldHRlR3JvdXAgZXh0ZW5kcyBDb21wb25lbnQge1xuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHtyZXZlcnNlZCwgb25TZWxlY3QsIHNlbGVjdGVkLCBjb2xvclJhbmdlcywgdGl0bGV9ID0gdGhpcy5wcm9wcztcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sb3ItcGFsZXR0ZV9fZ3JvdXBcIj5cbiAgICAgICAgICB7dGl0bGUgJiYgdGl0bGV9XG4gICAgICAgICAge2NvbG9yUmFuZ2VzLm1hcCgoY29sb3JSYW5nZSwgaSkgPT4gKFxuICAgICAgICAgICAgPFN0eWxlZENvbG9yUmFuZ2VcbiAgICAgICAgICAgICAga2V5PXtgJHtjb2xvclJhbmdlLm5hbWV9LSR7aX1gfVxuICAgICAgICAgICAgICBvbkNsaWNrPXtlID0+XG4gICAgICAgICAgICAgICAgb25TZWxlY3QocmV2ZXJzZWQgPyByZXZlcnNlQ29sb3JSYW5nZSh0cnVlLCBjb2xvclJhbmdlKSA6IGNvbG9yUmFuZ2UsIGUpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPENvbG9yUGFsZXR0ZVxuICAgICAgICAgICAgICAgIGNvbG9ycz17Y29sb3JSYW5nZS5jb2xvcnN9XG4gICAgICAgICAgICAgICAgaXNSZXZlcnNlZD17cmV2ZXJzZWR9XG4gICAgICAgICAgICAgICAgaXNTZWxlY3RlZD17Y29sb3JSYW5nZS5uYW1lID09PSBzZWxlY3RlZC5uYW1lfVxuICAgICAgICAgICAgICAgIHJvb3RQcm9wcz17e1xuICAgICAgICAgICAgICAgICAgJ2RhdGEtdGlwJzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICdkYXRhLWZvcic6IGBjb2xvci1yYW5nZS0ke2l9LXRvb2x0aXBgXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxUb29sdGlwIGlkPXtgY29sb3ItcmFuZ2UtJHtpfS10b29sdGlwYH0gZWZmZWN0PVwic29saWRcIiBwbGFjZT1cInRvcFwiPlxuICAgICAgICAgICAgICAgICAge2NvbG9yUmFuZ2UubmFtZX1cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgIDwvQ29sb3JQYWxldHRlPlxuICAgICAgICAgICAgPC9TdHlsZWRDb2xvclJhbmdlPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfVxuICB9XG4gIHJldHVybiBDb2xvclBhbGV0dGVHcm91cDtcbn1cbiJdfQ==
391
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvY29sb3ItcmFuZ2Utc2VsZWN0b3IuanMiXSwibmFtZXMiOlsiQUxMX1RZUEVTIiwiQ09MT1JfUkFOR0VTIiwibWFwIiwiYyIsInR5cGUiLCJmaWx0ZXIiLCJjdHlwZSIsInZhbHVlIiwiaGV4Q29sb3IiLCJkaXZpZGVyIiwiQUxMX1NURVBTIiwiZCIsImNvbG9ycyIsImxlbmd0aCIsInNvcnQiLCJudW1iZXJTb3J0IiwiU3R5bGVkQ29sb3JDb25maWciLCJzdHlsZWQiLCJkaXYiLCJTdHlsZWRDb2xvclJhbmdlU2VsZWN0b3IiLCJhdHRycyIsImNsYXNzTmFtZSIsIlN0eWxlZFBhbGV0dGVDb25maWciLCJwcm9wcyIsInRoZW1lIiwic2Vjb25kYXJ5SW5wdXQiLCJDT05GSUdfU0VUVElOR1NfQ1VTVE9NX1JFVkVSU0VEX0JVVFRPTl9UWVBFIiwiQ09ORklHX1NFVFRJTkdTIiwib3B0aW9ucyIsInN0ZXBzIiwicmV2ZXJzZWQiLCJDb2xvclJhbmdlU2VsZWN0RmFjdG9yeSIsImRlcHMiLCJDb2xvclBhbGV0dGVHcm91cEZhY3RvcnkiLCJQYWxldHRlQ29uZmlnRmFjdG9yeSIsIkhleENvbHVtbkNvbmZpZ0ZhY3RvcnkiLCJDb2xvclBhbGV0dGVHcm91cCIsIlBhbGV0dGVDb25maWciLCJIZXhDb2x1bW5Db25maWciLCJDb2xvclJhbmdlU2VsZWN0IiwiY29sb3JSYW5nZXMiLCJjb2xvclBhbGV0dGVVSSIsImNvbG9yUmFuZ2VDb25maWciLCJjb2xvclJhbmdlc1NlbGVjdG9yIiwiY29uZmlnVHlwZVNlbGVjdG9yIiwiY29uZmlnU3RlcFNlbGVjdG9yIiwiY29sb3JSYW5nZSIsImlzVHlwZSIsImlzU3RlcCIsIk51bWJlciIsImtleSIsIl9zZXRDb2xvclJhbmdlQ29uZmlnIiwiY3VzdG9tIiwiaXNIZXhDb2x1bW4iLCJjb25maWciLCJzZXRDb2xvclBhbGV0dGVVSSIsImN1c3RvbVBhbGV0dGUiLCJuZXdDb25maWciLCJzaG93U2tldGNoZXIiLCJ2YWwiLCJjb2x1bW4iLCJvblNlbGVjdENvbG9yQ29sdW1uIiwiaGV4Q29sdW1uIiwibmFtZSIsImZpbHRlcmVkQ29sb3JSYW5nZXMiLCJmaWx0ZXJlZENvbG9yUmFuZ2UiLCJPYmplY3QiLCJrZXlzIiwiQm9vbGVhbiIsImxhYmVsIiwiX3VwZGF0ZUNvbmZpZyIsInNlbGVjdGVkQ29sb3JSYW5nZSIsIm9uU2VsZWN0Q29sb3JSYW5nZSIsIl9vblRvZ2dsZVNrZXRjaGVyIiwiX29uU2V0Q3VzdG9tUGFsZXR0ZSIsIl9vbkN1c3RvbVBhbGV0dGVDYW5jZWwiLCJmaWVsZHMiLCJfb25TZWxlY3RDb2x1bW4iLCJDb21wb25lbnQiLCJQcm9wVHlwZXMiLCJhcnJheU9mIiwiYW55Iiwib2JqZWN0IiwiaXNSZXF1aXJlZCIsImZ1bmMiLCJvbkNoYW5nZSIsImUiLCJzdG9wUHJvcGFnYXRpb24iLCJsaW5rIiwiU3R5bGVkQ29sb3JSYW5nZSIsInBhbmVsQmFja2dyb3VuZEhvdmVyIiwib25TZWxlY3QiLCJzZWxlY3RlZCIsInRpdGxlIiwiaSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7Ozs7O0FBRU8sSUFBTUEsU0FBUyxHQUFHLHlCQUN2QixLQUR1Qiw2Q0FFcEJDLDBCQUFhQyxHQUFiLENBQWlCLFVBQUFDLENBQUM7QUFBQSxTQUFJQSxDQUFDLENBQUNDLElBQU47QUFBQSxDQUFsQixFQUE4QkMsTUFBOUIsQ0FBcUMsVUFBQUMsS0FBSztBQUFBLFNBQUlBLEtBQUo7QUFBQSxDQUExQyxDQUZvQixJQUd2QixRQUh1QixFQUl2QjtBQUFDQyxFQUFBQSxLQUFLLEVBQUVDLHFCQUFSO0FBQWtCQyxFQUFBQSxP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RyxtQ0FBa0IsSUFBbEIsRUFBd0JnQixVQUF4QixDQUFILEdBQXlDQSxVQUFsRCxFQUE4RHdDLENBQTlELENBREE7QUFBQTtBQUZaLDBCQU1FLGdDQUFDLHdCQUFEO0FBQ0UsWUFBQSxNQUFNLEVBQUV4QyxVQUFVLENBQUNsQyxNQURyQjtBQUVFLFlBQUEsVUFBVSxFQUFFa0IsUUFGZDtBQUdFLFlBQUEsVUFBVSxFQUFFZ0IsVUFBVSxDQUFDaUIsSUFBWCxLQUFvQjZCLFFBQVEsQ0FBQzdCLElBSDNDO0FBSUUsWUFBQSxTQUFTLEVBQUU7QUFDVCwwQkFBWSxJQURIO0FBRVQsZ0RBQTJCK0IsQ0FBM0I7QUFGUztBQUpiLDBCQVNFLGdDQUFDLDBCQUFEO0FBQVMsWUFBQSxFQUFFLHdCQUFpQkEsQ0FBakIsYUFBWDtBQUF5QyxZQUFBLE1BQU0sRUFBQyxPQUFoRDtBQUF3RCxZQUFBLEtBQUssRUFBQztBQUE5RCxhQUNHaEQsVUFBVSxDQUFDaUIsSUFEZCxDQVRGLENBTkYsQ0FEZTtBQUFBLFNBQWhCLENBRkgsQ0FERjtBQTJCRDtBQS9Cc0M7QUFBQTtBQUFBLElBQ1RlLGdCQURTOztBQWlDekMsU0FBTzFDLGlCQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjIgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgUmVhY3QsIHtDb21wb25lbnR9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSAncHJvcC10eXBlcyc7XG5pbXBvcnQgdW5pcSBmcm9tICdsb2Rhc2gudW5pcSc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7Y3JlYXRlU2VsZWN0b3J9IGZyb20gJ3Jlc2VsZWN0JztcblxuaW1wb3J0IEl0ZW1TZWxlY3RvciBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9pdGVtLXNlbGVjdG9yL2l0ZW0tc2VsZWN0b3InO1xuaW1wb3J0IHtQYW5lbExhYmVsLCBCdXR0b24sIFRvb2x0aXB9IGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBTd2l0Y2ggZnJvbSAnY29tcG9uZW50cy9jb21tb24vc3dpdGNoJztcbmltcG9ydCBDb2xvclBhbGV0dGUgZnJvbSAnLi9jb2xvci1wYWxldHRlJztcbmltcG9ydCBDdXN0b21QYWxldHRlIGZyb20gJy4vY3VzdG9tLXBhbGV0dGUnO1xuaW1wb3J0IHtDT0xPUl9SQU5HRVMsIGhleENvbG9yfSBmcm9tICdjb25zdGFudHMvY29sb3ItcmFuZ2VzJztcbmltcG9ydCB7bnVtYmVyU29ydH0gZnJvbSAndXRpbHMvZGF0YS11dGlscyc7XG5pbXBvcnQge3JldmVyc2VDb2xvclJhbmdlfSBmcm9tICd1dGlscy9jb2xvci11dGlscyc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ2xvY2FsaXphdGlvbic7XG5pbXBvcnQge1N3YXBIb3Jpem9udGFsfSBmcm9tICdjb21wb25lbnRzL2NvbW1vbi9pY29ucyc7XG5pbXBvcnQge0hleENvbHVtbkNvbmZpZ0ZhY3Rvcnl9IGZyb20gJy4vaGV4LWNvbHVtbi1jb25maWcnO1xuXG5leHBvcnQgY29uc3QgQUxMX1RZUEVTID0gdW5pcShbXG4gICdhbGwnLFxuICAuLi5DT0xPUl9SQU5HRVMubWFwKGMgPT4gYy50eXBlKS5maWx0ZXIoY3R5cGUgPT4gY3R5cGUpLFxuICAnY3VzdG9tJyxcbiAge3ZhbHVlOiBoZXhDb2xvciwgZGl2aWRlcjogdHJ1ZX1cbl0pO1xuXG5leHBvcnQgY29uc3QgQUxMX1NURVBTID0gdW5pcShDT0xPUl9SQU5HRVMubWFwKGQgPT4gZC5jb2xvcnMubGVuZ3RoKSkuc29ydChudW1iZXJTb3J0KTtcblxuY29uc3QgU3R5bGVkQ29sb3JDb25maWcgPSBzdHlsZWQuZGl2YFxuICBwYWRkaW5nOiAxMnB4IDEycHggMCAxMnB4O1xuYDtcblxuY29uc3QgU3R5bGVkQ29sb3JSYW5nZVNlbGVjdG9yID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ2NvbG9yLXJhbmdlLXNlbGVjdG9yJ1xufSlgXG4gIHBhZGRpbmctYm90dG9tOiAxMnB4O1xuYDtcblxuY29uc3QgU3R5bGVkUGFsZXR0ZUNvbmZpZyA9IHN0eWxlZC5kaXZgXG4gIG1hcmdpbi1ib3R0b206IDhweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAuY29sb3ItcGFsZXR0ZV9fY29uZmlnX19sYWJlbCB7XG4gICAgZmxleC1ncm93OiAxO1xuICB9XG4gIC5jb2xvci1wYWxldHRlX19jb25maWdfX3NlbGVjdCB7XG4gICAgZmxleC1ncm93OiAxO1xuICB9XG4gIC5pdGVtLXNlbGVjdG9yIC5pdGVtLXNlbGVjdG9yX19kcm9wZG93biB7XG4gICAgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zZWNvbmRhcnlJbnB1dH07XG4gIH1cbiAgLmNvbG9yLXBhbGV0dGVfX2NvbmZpZ19fYnV0dG9uIHtcbiAgICBzdmcge1xuICAgICAgbWFyZ2luOiAwO1xuICAgIH1cbiAgfVxuYDtcblxuY29uc3QgQ09ORklHX1NFVFRJTkdTX0NVU1RPTV9SRVZFUlNFRF9CVVRUT05fVFlQRSA9ICdjdXN0b20tcmV2ZXJzZWQtYnV0dG9uJztcblxuY29uc3QgQ09ORklHX1NFVFRJTkdTID0ge1xuICB0eXBlOiB7XG4gICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgb3B0aW9uczogQUxMX1RZUEVTXG4gIH0sXG4gIHN0ZXBzOiB7XG4gICAgdHlwZTogJ3NlbGVjdCcsXG4gICAgb3B0aW9uczogQUxMX1NURVBTXG4gIH0sXG4gIHJldmVyc2VkOiB7XG4gICAgdHlwZTogQ09ORklHX1NFVFRJTkdTX0NVU1RPTV9SRVZFUlNFRF9CVVRUT05fVFlQRSxcbiAgICBvcHRpb25zOiBbdHJ1ZSwgZmFsc2VdXG4gIH1cbn07XG5cbkNvbG9yUmFuZ2VTZWxlY3RGYWN0b3J5LmRlcHMgPSBbXG4gIENvbG9yUGFsZXR0ZUdyb3VwRmFjdG9yeSxcbiAgUGFsZXR0ZUNvbmZpZ0ZhY3RvcnksXG4gIEhleENvbHVtbkNvbmZpZ0ZhY3Rvcnlcbl07XG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBDb2xvclJhbmdlU2VsZWN0RmFjdG9yeShDb2xvclBhbGV0dGVHcm91cCwgUGFsZXR0ZUNvbmZpZywgSGV4Q29sdW1uQ29uZmlnKSB7XG4gIGNsYXNzIENvbG9yUmFuZ2VTZWxlY3QgZXh0ZW5kcyBDb21wb25lbnQge1xuICAgIHN0YXRpYyBwcm9wVHlwZXMgPSB7XG4gICAgICBmaWVsZHM6IFByb3BUeXBlcy5hcnJheU9mKFByb3BUeXBlcy5hbnkpLFxuICAgICAgY29sb3JQYWxldHRlVUk6IFByb3BUeXBlcy5vYmplY3QuaXNSZXF1aXJlZCxcbiAgICAgIHNlbGVjdGVkQ29sb3JSYW5nZTogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICAgICAgb25TZWxlY3RDb2xvclJhbmdlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgb25TZWxlY3RDb2xvckNvbHVtbjogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgICAgIHNldENvbG9yUGFsZXR0ZVVJOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICAgICAgLy8gb3B0aW9uYWxcbiAgICAgIGNvbG9yUmFuZ2VzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuYW55KVxuICAgIH07XG5cbiAgICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgICAgY29sb3JSYW5nZXM6IENPTE9SX1JBTkdFUyxcbiAgICAgIG9uU2VsZWN0Q29sb3JSYW5nZTogKCkgPT4ge30sXG4gICAgICBzZXRDb2xvclBhbGV0dGVVSTogKCkgPT4ge31cbiAgICB9O1xuXG4gICAgY29sb3JSYW5nZXNTZWxlY3RvciA9IHByb3BzID0+IHByb3BzLmNvbG9yUmFuZ2VzO1xuICAgIGNvbmZpZ1R5cGVTZWxlY3RvciA9IHByb3BzID0+IHByb3BzLmNvbG9yUGFsZXR0ZVVJLmNvbG9yUmFuZ2VDb25maWcudHlwZTtcbiAgICBjb25maWdTdGVwU2VsZWN0b3IgPSBwcm9wcyA9PiBwcm9wcy5jb2xvclBhbGV0dGVVSS5jb2xvclJhbmdlQ29uZmlnLnN0ZXBzO1xuICAgIGZpbHRlcmVkQ29sb3JSYW5nZSA9IGNyZWF0ZVNlbGVjdG9yKFxuICAgICAgdGhpcy5jb2xvclJhbmdlc1NlbGVjdG9yLFxuICAgICAgdGhpcy5jb25maWdUeXBlU2VsZWN0b3IsXG4gICAgICB0aGlzLmNvbmZpZ1N0ZXBTZWxlY3RvcixcbiAgICAgIChjb2xvclJhbmdlcywgdHlwZSwgc3RlcHMpID0+IHtcbiAgICAgICAgcmV0dXJuIGNvbG9yUmFuZ2VzLmZpbHRlcihjb2xvclJhbmdlID0+IHtcbiAgICAgICAgICBjb25zdCBpc1R5cGUgPSB0eXBlID09PSAnYWxsJyB8fCB0eXBlID09PSBjb2xvclJhbmdlLnR5cGU7XG4gICAgICAgICAgY29uc3QgaXNTdGVwID0gTnVtYmVyKHN0ZXBzKSA9PT0gY29sb3JSYW5nZS5jb2xvcnMubGVuZ3RoO1xuXG4gICAgICAgICAgcmV0dXJuIGlzVHlwZSAmJiBpc1N0ZXA7XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgICk7XG5cbiAgICBfdXBkYXRlQ29uZmlnID0gKHtrZXksIHZhbHVlfSkgPT4ge1xuICAgICAgdGhpcy5fc2V0Q29sb3JSYW5nZUNvbmZpZyh7XG4gICAgICAgIFtrZXldOiB2YWx1ZSxcbiAgICAgICAgLi4uKGtleSA9PT0gJ3R5cGUnICYmIHtjdXN0b206IHZhbHVlID09PSAnY3VzdG9tJywgaXNIZXhDb2x1bW46IHZhbHVlID09PSBoZXhDb2xvcn0pXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgX29uU2V0Q3VzdG9tUGFsZXR0ZSA9IGNvbmZpZyA9PiB7XG4gICAgICB0aGlzLnByb3BzLnNldENvbG9yUGFsZXR0ZVVJKHtcbiAgICAgICAgY3VzdG9tUGFsZXR0ZTogY29uZmlnXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgX3NldENvbG9yUmFuZ2VDb25maWcgPSBuZXdDb25maWcgPT4ge1xuICAgICAgdGhpcy5wcm9wcy5zZXRDb2xvclBhbGV0dGVVSSh7XG4gICAgICAgIGNvbG9yUmFuZ2VDb25maWc6IG5ld0NvbmZpZ1xuICAgICAgfSk7XG4gICAgfTtcblxuICAgIF9vbkN1c3RvbVBhbGV0dGVDYW5jZWwgPSBuZXdDb25maWcgPT4ge1xuICAgICAgdGhpcy5wcm9wcy5zZXRDb2xvclBhbGV0dGVVSSh7XG4gICAgICAgIHNob3dTa2V0Y2hlcjogZmFsc2UsXG4gICAgICAgIGNvbG9yUmFuZ2VDb25maWc6IHtjdXN0b206IGZhbHNlLCBpc0hleENvbHVtbjogZmFsc2V9XG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgX29uVG9nZ2xlU2tldGNoZXIgPSB2YWwgPT4ge1xuICAgICAgdGhpcy5wcm9wcy5zZXRDb2xvclBhbGV0dGVVSSh7XG4gICAgICAgIHNob3dTa2V0Y2hlcjogdmFsXG4gICAgICB9KTtcbiAgICB9O1xuXG4gICAgX29uU2VsZWN0Q29sdW1uID0gY29sdW1uID0+IHtcbiAgICAgIHRoaXMucHJvcHMub25TZWxlY3RDb2xvckNvbHVtbihjb2x1bW4pO1xuICAgICAgdGhpcy5fc2V0Q29sb3JSYW5nZUNvbmZpZyh7XG4gICAgICAgIHR5cGU6IGhleENvbG9yLFxuICAgICAgICBoZXhDb2x1bW46IGNvbHVtbj8ubmFtZVxuICAgICAgfSk7XG4gICAgfTtcblxuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHtjdXN0b21QYWxldHRlLCBzaG93U2tldGNoZXIsIGNvbG9yUmFuZ2VDb25maWd9ID0gdGhpcy5wcm9wcy5jb2xvclBhbGV0dGVVSTtcbiAgICAgIGNvbnN0IGZpbHRlcmVkQ29sb3JSYW5nZXMgPSB0aGlzLmZpbHRlcmVkQ29sb3JSYW5nZSh0aGlzLnByb3BzKTtcblxuICAgICAgcmV0dXJuIChcbiAgICAgICAgPFN0eWxlZENvbG9yUmFuZ2VTZWxlY3Rvcj5cbiAgICAgICAgICA8U3R5bGVkQ29sb3JDb25maWcgY2xhc3NOYW1lPVwiY29sb3ItcmFuZ2Utc2VsZWN0b3JfX2NvbmZpZ1wiPlxuICAgICAgICAgICAge09iamVjdC5rZXlzKGNvbG9yUmFuZ2VDb25maWcpXG4gICAgICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAgICAga2V5ID0+XG4gICAgICAgICAgICAgICAgICBCb29sZWFuKENPTkZJR19TRVRUSU5HU1trZXldKSAmJlxuICAgICAgICAgICAgICAgICAgKGNvbG9yUmFuZ2VDb25maWcuY3VzdG9tIHx8IGNvbG9yUmFuZ2VDb25maWcuaXNIZXhDb2x1bW4gPyBrZXkgPT09ICd0eXBlJyA6IHRydWUpXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgLm1hcChrZXkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICA8UGFsZXR0ZUNvbmZpZ1xuICAgICAgICAgICAgICAgICAgICBrZXk9e2tleX1cbiAgICAgICAgICAgICAgICAgICAgbGFiZWw9e0NPTkZJR19TRVRUSU5HU1trZXldLmxhYmVsIHx8IGtleX1cbiAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtDT05GSUdfU0VUVElOR1Nba2V5XX1cbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e2NvbG9yUmFuZ2VDb25maWdba2V5XX1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e3ZhbHVlID0+IHRoaXMuX3VwZGF0ZUNvbmZpZyh7a2V5LCB2YWx1ZX0pfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICA8L1N0eWxlZENvbG9yQ29uZmlnPlxuXG4gICAgICAgICAge2NvbG9yUmFuZ2VDb25maWcuY3VzdG9tID8gKFxuICAgICAgICAgICAgPEN1c3RvbVBhbGV0dGVcbiAgICAgICAgICAgICAgY3VzdG9tUGFsZXR0ZT17Y3VzdG9tUGFsZXR0ZX1cbiAgICAgICAgICAgICAgc2hvd1NrZXRjaGVyPXtzaG93U2tldGNoZXJ9XG4gICAgICAgICAgICAgIHNlbGVjdGVkPXt0aGlzLnByb3BzLnNlbGVjdGVkQ29sb3JSYW5nZX1cbiAgICAgICAgICAgICAgb25BcHBseT17dGhpcy5wcm9wcy5vblNlbGVjdENvbG9yUmFuZ2V9XG4gICAgICAgICAgICAgIG9uVG9nZ2xlU2tldGNoZXI9e3RoaXMuX29uVG9nZ2xlU2tldGNoZXJ9XG4gICAgICAgICAgICAgIHNldEN1c3RvbVBhbGV0dGU9e3RoaXMuX29uU2V0Q3VzdG9tUGFsZXR0ZX1cbiAgICAgICAgICAgICAgb25DYW5jZWw9e3RoaXMuX29uQ3VzdG9tUGFsZXR0ZUNhbmNlbH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSA6IGNvbG9yUmFuZ2VDb25maWcuaXNIZXhDb2x1bW4gPyAoXG4gICAgICAgICAgICA8SGV4Q29sdW1uQ29uZmlnXG4gICAgICAgICAgICAgIGZpZWxkcz17dGhpcy5wcm9wcy5maWVsZHN9XG4gICAgICAgICAgICAgIHZhbHVlPXtjb2xvclJhbmdlQ29uZmlnLmhleENvbHVtbn1cbiAgICAgICAgICAgICAgb25TZWxlY3RDb2x1bW49e3RoaXMuX29uU2VsZWN0Q29sdW1ufVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApIDogKFxuICAgICAgICAgICAgPENvbG9yUGFsZXR0ZUdyb3VwXG4gICAgICAgICAgICAgIGNvbG9yUmFuZ2VzPXtmaWx0ZXJlZENvbG9yUmFuZ2VzfVxuICAgICAgICAgICAgICBvblNlbGVjdD17dGhpcy5wcm9wcy5vblNlbGVjdENvbG9yUmFuZ2V9XG4gICAgICAgICAgICAgIHNlbGVjdGVkPXt0aGlzLnByb3BzLnNlbGVjdGVkQ29sb3JSYW5nZX1cbiAgICAgICAgICAgICAgcmV2ZXJzZWQ9e2NvbG9yUmFuZ2VDb25maWcucmV2ZXJzZWR9XG4gICAgICAgICAgICAgIGNvbmZpZ1R5cGVTZWxlY3Rvcj17KCkgPT4gdGhpcy5wcm9wcy5jb2xvclBhbGV0dGVVSS5jb2xvclJhbmdlQ29uZmlnLnR5cGV9XG4gICAgICAgICAgICAgIGNvbmZpZ1N0ZXBTZWxlY3Rvcj17KCkgPT4gdGhpcy5wcm9wcy5jb2xvclBhbGV0dGVVSS5jb2xvclJhbmdlQ29uZmlnLnN0ZXBzfVxuICAgICAgICAgICAgLz5cbiAgICAgICAgICApfVxuICAgICAgICA8L1N0eWxlZENvbG9yUmFuZ2VTZWxlY3Rvcj5cbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIENvbG9yUmFuZ2VTZWxlY3Q7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBQYWxldHRlQ29uZmlnRmFjdG9yeSgpIHtcbiAgY2xhc3MgUGFsZXR0ZUNvbmZpZyBleHRlbmRzIENvbXBvbmVudCB7XG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBsYWJlbCxcbiAgICAgICAgdmFsdWUsXG4gICAgICAgIGNvbmZpZzoge3R5cGUsIG9wdGlvbnN9LFxuICAgICAgICBvbkNoYW5nZVxuICAgICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTdHlsZWRQYWxldHRlQ29uZmlnXG4gICAgICAgICAgY2xhc3NOYW1lPXtgY29sb3ItcGFsZXR0ZV9fY29uZmlnIGNvbG9yLXBhbGV0dGVfX2NvbmZpZy0tJHtsYWJlbH1gfVxuICAgICAgICAgIG9uQ2xpY2s9e2UgPT4gZS5zdG9wUHJvcGFnYXRpb24oKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sb3ItcGFsZXR0ZV9fY29uZmlnX19sYWJlbFwiPlxuICAgICAgICAgICAge3R5cGUgIT09IENPTkZJR19TRVRUSU5HU19DVVNUT01fUkVWRVJTRURfQlVUVE9OX1RZUEUgJiYgKFxuICAgICAgICAgICAgICA8UGFuZWxMYWJlbD5cbiAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17YGNvbG9yLiR7bGFiZWx9YH0gLz5cbiAgICAgICAgICAgICAgPC9QYW5lbExhYmVsPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB7dHlwZSA9PT0gJ3NlbGVjdCcgJiYgKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjb2xvci1wYWxldHRlX19jb25maWdfX3NlbGVjdFwiPlxuICAgICAgICAgICAgICA8SXRlbVNlbGVjdG9yXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRJdGVtcz17dmFsdWV9XG4gICAgICAgICAgICAgICAgb3B0aW9ucz17b3B0aW9uc31cbiAgICAgICAgICAgICAgICBtdWx0aVNlbGVjdD17ZmFsc2V9XG4gICAgICAgICAgICAgICAgc2VhcmNoYWJsZT17ZmFsc2V9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgICB7dHlwZSA9PT0gJ3N3aXRjaCcgJiYgKFxuICAgICAgICAgICAgPFN3aXRjaFxuICAgICAgICAgICAgICBjaGVja2VkPXt2YWx1ZX1cbiAgICAgICAgICAgICAgaWQ9e2Ake2xhYmVsfS10b2dnbGVgfVxuICAgICAgICAgICAgICBvbkNoYW5nZT17KCkgPT4gb25DaGFuZ2UoIXZhbHVlKX1cbiAgICAgICAgICAgICAgc2Vjb25kYXJ5XG4gICAgICAgICAgICAvPlxuICAgICAgICAgICl9XG4gICAgICAgICAge3R5cGUgPT09IENPTkZJR19TRVRUSU5HU19DVVNUT01fUkVWRVJTRURfQlVUVE9OX1RZUEUgJiYgKFxuICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICBjbGFzc05hbWU9e2Bjb2xvci1wYWxldHRlX19jb25maWdfX2J1dHRvbiAke1xuICAgICAgICAgICAgICAgIHZhbHVlID8gJ2NvbG9yLXBhbGV0dGVfX2NvbmZpZ19fYnV0dG9uLS1hY3RpdmUnIDogJydcbiAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICAgIGRhdGEtdGlwXG4gICAgICAgICAgICAgIGRhdGEtZm9yPXtgJHtsYWJlbH0tdG9vbHRpcGB9XG4gICAgICAgICAgICAgIHsuLi4oIXZhbHVlICYmIHtsaW5rOiB0cnVlfSl9XG4gICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IG9uQ2hhbmdlKCF2YWx1ZSl9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTd2FwSG9yaXpvbnRhbCAvPlxuICAgICAgICAgICAgICA8VG9vbHRpcCBpZD17YCR7bGFiZWx9LXRvb2x0aXBgfSBlZmZlY3Q9XCJzb2xpZFwiIHBsYWNlPVwidG9wXCI+XG4gICAgICAgICAgICAgICAge2xhYmVsfVxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICApfVxuICAgICAgICA8L1N0eWxlZFBhbGV0dGVDb25maWc+XG4gICAgICApO1xuICAgIH1cbiAgfVxuICByZXR1cm4gUGFsZXR0ZUNvbmZpZztcbn1cblxuY29uc3QgU3R5bGVkQ29sb3JSYW5nZSA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICdjb2xvci1wYWxldHRlLW91dGVyJ1xufSlgXG4gIHBhZGRpbmc6IDAgOHB4O1xuICA6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUucGFuZWxCYWNrZ3JvdW5kSG92ZXJ9O1xuICAgIGN1cnNvcjogcG9pbnRlcjtcbiAgfVxuYDtcblxuZXhwb3J0IGZ1bmN0aW9uIENvbG9yUGFsZXR0ZUdyb3VwRmFjdG9yeSgpIHtcbiAgY2xhc3MgQ29sb3JQYWxldHRlR3JvdXAgZXh0ZW5kcyBDb21wb25lbnQge1xuICAgIHJlbmRlcigpIHtcbiAgICAgIGNvbnN0IHtyZXZlcnNlZCwgb25TZWxlY3QsIHNlbGVjdGVkLCBjb2xvclJhbmdlcywgdGl0bGV9ID0gdGhpcy5wcm9wcztcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29sb3ItcGFsZXR0ZV9fZ3JvdXBcIj5cbiAgICAgICAgICB7dGl0bGUgJiYgdGl0bGV9XG4gICAgICAgICAge2NvbG9yUmFuZ2VzLm1hcCgoY29sb3JSYW5nZSwgaSkgPT4gKFxuICAgICAgICAgICAgPFN0eWxlZENvbG9yUmFuZ2VcbiAgICAgICAgICAgICAga2V5PXtgJHtjb2xvclJhbmdlLm5hbWV9LSR7aX1gfVxuICAgICAgICAgICAgICBvbkNsaWNrPXtlID0+XG4gICAgICAgICAgICAgICAgb25TZWxlY3QocmV2ZXJzZWQgPyByZXZlcnNlQ29sb3JSYW5nZSh0cnVlLCBjb2xvclJhbmdlKSA6IGNvbG9yUmFuZ2UsIGUpXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPENvbG9yUGFsZXR0ZVxuICAgICAgICAgICAgICAgIGNvbG9ycz17Y29sb3JSYW5nZS5jb2xvcnN9XG4gICAgICAgICAgICAgICAgaXNSZXZlcnNlZD17cmV2ZXJzZWR9XG4gICAgICAgICAgICAgICAgaXNTZWxlY3RlZD17Y29sb3JSYW5nZS5uYW1lID09PSBzZWxlY3RlZC5uYW1lfVxuICAgICAgICAgICAgICAgIHJvb3RQcm9wcz17e1xuICAgICAgICAgICAgICAgICAgJ2RhdGEtdGlwJzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICdkYXRhLWZvcic6IGBjb2xvci1yYW5nZS0ke2l9LXRvb2x0aXBgXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxUb29sdGlwIGlkPXtgY29sb3ItcmFuZ2UtJHtpfS10b29sdGlwYH0gZWZmZWN0PVwic29saWRcIiBwbGFjZT1cInRvcFwiPlxuICAgICAgICAgICAgICAgICAge2NvbG9yUmFuZ2UubmFtZX1cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgIDwvQ29sb3JQYWxldHRlPlxuICAgICAgICAgICAgPC9TdHlsZWRDb2xvclJhbmdlPlxuICAgICAgICAgICkpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICk7XG4gICAgfVxuICB9XG4gIHJldHVybiBDb2xvclBhbGV0dGVHcm91cDtcbn1cbiJdfQ==