@kepler.gl/reducers 3.0.0-alpha.1 → 3.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,23 +1,3 @@
1
- // Copyright (c) 2023 Uber Technologies, Inc.
2
- //
3
- // Permission is hereby granted, free of charge, to any person obtaining a copy
4
- // of this software and associated documentation files (the "Software"), to deal
5
- // in the Software without restriction, including without limitation the rights
6
- // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- // copies of the Software, and to permit persons to whom the Software is
8
- // furnished to do so, subject to the following conditions:
9
- //
10
- // The above copyright notice and this permission notice shall be included in
11
- // all copies or substantial portions of the Software.
12
- //
13
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
- // THE SOFTWARE.
20
-
21
1
  "use strict";
22
2
 
23
3
  var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard");
@@ -63,7 +43,7 @@ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { va
63
43
 
64
44
  var getDefaultState = function getDefaultState() {
65
45
  var visibleLayerGroups = {};
66
- var styleType = 'dark';
46
+ var styleType = 'dark-matter';
67
47
  var topLayerGroups = {};
68
48
  return {
69
49
  styleType: styleType,
@@ -754,4 +734,4 @@ function getInitialInputStyle() {
754
734
  uploadedFile: null
755
735
  };
756
736
  }
757
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYXAtc3R5bGUtdXBkYXRlcnMudHMiXSwibmFtZXMiOlsiZ2V0RGVmYXVsdFN0YXRlIiwidmlzaWJsZUxheWVyR3JvdXBzIiwic3R5bGVUeXBlIiwidG9wTGF5ZXJHcm91cHMiLCJtYXBTdHlsZXMiLCJERUZBVUxUX01BUF9TVFlMRVMiLCJyZWR1Y2UiLCJhY2N1IiwiY3VyciIsImlkIiwibWFwYm94QXBpQWNjZXNzVG9rZW4iLCJtYXBib3hBcGlVcmwiLCJERUZBVUxUX01BUEJPWF9BUElfVVJMIiwibWFwU3R5bGVzUmVwbGFjZURlZmF1bHQiLCJpbnB1dFN0eWxlIiwiZ2V0SW5pdGlhbElucHV0U3R5bGUiLCJ0aHJlZURCdWlsZGluZ0NvbG9yIiwiREVGQVVMVF9CTERHX0NPTE9SIiwiY3VzdG9tM0RCdWlsZGluZ0NvbG9yIiwiYmFja2dyb3VuZENvbG9yIiwiREVGQVVMVF9CQUNLR1JPVU5EX0NPTE9SIiwiaXNMb2FkaW5nIiwiYm90dG9tTWFwU3R5bGUiLCJ1bmRlZmluZWQiLCJ0b3BNYXBTdHlsZSIsIm1hcFN0eWxlVXBkYXRlcnMiLCJJTklUSUFMX01BUF9TVFlMRSIsImdldE1hcFN0eWxlcyIsIm1hcFN0eWxlIiwic3R5bGUiLCJlZGl0YWJsZSIsIk9iamVjdCIsImtleXMiLCJsZW5ndGgiLCJoYXNUb3BMYXllciIsInZhbHVlcyIsInNvbWUiLCJ2IiwidG9wTGF5ZXJzIiwia2V5IiwiZmluZExheWVyRmlsbENvbG9yIiwibGF5ZXIiLCJwYWludCIsImdldFBhaW50Q29sb3IiLCJjb2xvciIsIkFycmF5IiwiaXNBcnJheSIsImdldDNEQnVpbGRpbmdDb2xvciIsImJhY2tncm91bmRMYXllciIsImxheWVycyIsImZpbmQiLCJidWlsZGluZ0xheWVyIiwibWF0Y2giLCJidWlsZGluZ0NvbG9yIiwib3BlcmF0aW9uIiwiYWxwaGEiLCJyZ2JPYmoiLCJyIiwiZyIsImIiLCJnZXRCYWNrZ3JvdW5kQ29sb3JGcm9tU3R5bGVCYXNlTGF5ZXIiLCJiYWNrdXBCYWNrZ3JvdW5kQ29sb3IiLCJiYXNlTGF5ZXIiLCJCQVNFX01BUF9CQUNLR1JPVU5EX0xBWUVSX0lEUyIsImluY2x1ZGVzIiwiYmFja2dyb3VuZENvbG9yT2ZCYXNlTGF5ZXIiLCJuZXdCYWNrZ3JvdW5kQ29sb3IiLCJuZXdCYWNrZ3JvdW5kQ29sb3JBc1JHQkFycmF5IiwibWFwIiwiY2hhbm5lbE51bWJlciIsIk1hdGgiLCJyb3VuZCIsImdldEJhY2tncm91bmRDb2xvciIsInByZXZpb3VzU3RhdGUiLCJwcmV2aW91c1N0YXRlTWFwU3R5bGUiLCJOT19NQVBfSUQiLCJnZXRMYXllckdyb3Vwc0Zyb21TdHlsZSIsIkRFRkFVTFRfTEFZRVJfR1JPVVBTIiwiZmlsdGVyIiwibGciLCJyZXF1ZXN0TWFwU3R5bGVzVXBkYXRlciIsInN0YXRlIiwicGF5bG9hZCIsIm9uU3VjY2VzcyIsInRvTG9hZCIsImxvYWRNYXBTdHlsZVRhc2tzIiwiZ2V0TG9hZE1hcFN0eWxlVGFza3MiLCJuZXh0U3RhdGUiLCJpbml0TWFwU3R5bGVVcGRhdGVyIiwibWFwQ29uZmlnQ2hhbmdlVXBkYXRlciIsImFjdGlvbiIsImhhc1N0eWxlT2JqZWN0IiwibWFwU3R5bGVDaGFuZ2VVcGRhdGVyIiwiY3VzdG9tIiwidXJsIiwiZGVmYXVsdExHVmlzaWJpbGl0eSIsImxvYWRNYXBTdHlsZXNVcGRhdGVyIiwibmV3U3R5bGVzIiwiYWRkTGF5ZXJHcm91cHMiLCJsYXllckdyb3VwcyIsIm5ld1N0YXRlIiwidGFza3MiLCJjcmVhdGVBY3Rpb25UYXNrIiwiXyIsImxvYWRNYXBTdHlsZUVyclVwZGF0ZXIiLCJpZHMiLCJlcnJvciIsIkNvbnNvbGUiLCJyZWNlaXZlTWFwQ29uZmlnVXBkYXRlciIsImNvbmZpZyIsIm1lcmdlZCIsIkJvb2xlYW4iLCJUYXNrIiwiYWxsIiwiYWNjZXNzVG9rZW4iLCJMT0FEX01BUF9TVFlMRV9UQVNLIiwiYmltYXAiLCJyZXN1bHRzIiwiZXJyIiwicmVzZXRNYXBDb25maWdNYXBTdHlsZVVwZGF0ZXIiLCJlbXB0eUNvbmZpZyIsImluaXRpYWxTdGF0ZSIsImxvYWRDdXN0b21NYXBTdHlsZVVwZGF0ZXIiLCJpY29uIiwibGFiZWwiLCJuYW1lIiwiaW5wdXRNYXBTdHlsZVVwZGF0ZXIiLCJtYXBTdGF0ZSIsInVwZGF0ZWQiLCJpc1ZhbGlkVXJsIiwiaXNVcGRhdGVkSWNvbkRhdGFVcmkiLCJzdGFydHNXaXRoIiwiaXNWYWxpZCIsInVwbG9hZGVkRmlsZSIsInN0eWxlVXJsIiwiYWRkQ3VzdG9tTWFwU3R5bGVVcGRhdGVyIiwic3R5bGVJZCIsImdldE5ld1N0YXRlV2l0aEN1c3RvbU1hcFN0eWxlIiwiZWRpdEN1c3RvbU1hcFN0eWxlVXBkYXRlciIsInJlbW92ZUN1c3RvbU1hcFN0eWxlVXBkYXRlciIsInJlc3RPZk1hcFN0eWxlcyIsInNldDNkQnVpbGRpbmdDb2xvclVwZGF0ZXIiLCJzZXRCYWNrZ3JvdW5kQ29sb3JVcGRhdGVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBOztBQUNBOztBQUNBOztBQUdBOztBQWFBOztBQVNBOztBQUNBOztBQVVBOzs7Ozs7Ozs7O0FBZ0NBLElBQU1BLGVBQWUsR0FBRyxTQUFsQkEsZUFBa0IsR0FBZ0I7QUFDdEMsTUFBTUMsa0JBQWtCLEdBQUcsRUFBM0I7QUFDQSxNQUFNQyxTQUFTLEdBQUcsTUFBbEI7QUFDQSxNQUFNQyxjQUFjLEdBQUcsRUFBdkI7QUFFQSxTQUFPO0FBQ0xELElBQUFBLFNBQVMsRUFBVEEsU0FESztBQUVMRCxJQUFBQSxrQkFBa0IsRUFBbEJBLGtCQUZLO0FBR0xFLElBQUFBLGNBQWMsRUFBZEEsY0FISztBQUlMQyxJQUFBQSxTQUFTLEVBQUVDLDhCQUFtQkMsTUFBbkIsQ0FDVCxVQUFDQyxJQUFELEVBQU9DLElBQVA7QUFBQSw2Q0FDS0QsSUFETCw0Q0FFR0MsSUFBSSxDQUFDQyxFQUZSLEVBRWFELElBRmI7QUFBQSxLQURTLEVBS1QsRUFMUyxDQUpOO0FBV0w7QUFDQUUsSUFBQUEsb0JBQW9CLEVBQUUsSUFaakI7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Ly9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBUYXNrLCB7d2l0aFRhc2t9IGZyb20gJ3JlYWN0LXBhbG0vdGFza3MnO1xuaW1wb3J0IGNsb25lRGVlcCBmcm9tICdsb2Rhc2guY2xvbmVkZWVwJztcbmltcG9ydCBDb25zb2xlIGZyb20gJ2dsb2JhbC9jb25zb2xlJztcblxuLy8gVXRpbHNcbmltcG9ydCB7XG4gIGdldERlZmF1bHRMYXllckdyb3VwVmlzaWJpbGl0eSxcbiAgaXNWYWxpZFN0eWxlVXJsLFxuICBnZXRTdHlsZURvd25sb2FkVXJsLFxuICBtZXJnZUxheWVyR3JvdXBWaXNpYmlsaXR5LFxuICBlZGl0VG9wTWFwU3R5bGUsXG4gIGVkaXRCb3R0b21NYXBTdHlsZSxcbiAgZ2V0U3R5bGVJbWFnZUljb24sXG4gIGdlbmVyYXRlSGFzaElkLFxuICBpc1BsYWluT2JqZWN0LFxuICBoZXhUb1JnYixcbiAgY29sb3JNYXliZVRvUkdCXG59IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHtcbiAgREVGQVVMVF9NQVBfU1RZTEVTLFxuICBERUZBVUxUX0xBWUVSX0dST1VQUyxcbiAgREVGQVVMVF9NQVBCT1hfQVBJX1VSTCxcbiAgTk9fTUFQX0lELFxuICBERUZBVUxUX0JMREdfQ09MT1IsXG4gIERFRkFVTFRfQkFDS0dST1VORF9DT0xPUixcbiAgQkFTRV9NQVBfQkFDS0dST1VORF9MQVlFUl9JRFNcbn0gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuaW1wb3J0IHtBQ1RJT05fVEFTSywgTE9BRF9NQVBfU1RZTEVfVEFTS30gZnJvbSAnQGtlcGxlci5nbC90YXNrcyc7XG5pbXBvcnQge3JnYn0gZnJvbSAnZDMtY29sb3InO1xuXG5pbXBvcnQge1xuICBSR0JDb2xvcixcbiAgTGF5ZXJHcm91cCxcbiAgQmFzZU1hcFN0eWxlLFxuICBNYXBTdHlsZXMsXG4gIElucHV0U3R5bGUsXG4gIFZpc2libGVMYXllckdyb3Vwc1xufSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7XG4gIEFjdGlvblR5cGVzLFxuICBSZWNlaXZlTWFwQ29uZmlnUGF5bG9hZCxcbiAgS2VwbGVyR2xJbml0UGF5bG9hZCxcbiAgTWFwU3R5bGVBY3Rpb25zLFxuICBsb2FkTWFwU3R5bGVzLFxuICBsb2FkTWFwU3R5bGVFcnJcbn0gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcblxuZXhwb3J0IHR5cGUgTWFwYm94U3R5bGVVcmwgPSBzdHJpbmc7XG5cbmV4cG9ydCB0eXBlIE1hcFN0eWxlID0ge1xuICBzdHlsZVR5cGU6IHN0cmluZztcbiAgdmlzaWJsZUxheWVyR3JvdXBzOiBWaXNpYmxlTGF5ZXJHcm91cHM7XG4gIHRvcExheWVyR3JvdXBzOiBWaXNpYmxlTGF5ZXJHcm91cHM7XG4gIG1hcFN0eWxlczogTWFwU3R5bGVzO1xuICAvLyBzYXZlIG1hcGJveCBhY2Nlc3MgdG9rZW5cbiAgbWFwYm94QXBpQWNjZXNzVG9rZW46IHN0cmluZyB8IG51bGw7XG4gIG1hcGJveEFwaVVybDogc3RyaW5nO1xuICBtYXBTdHlsZXNSZXBsYWNlRGVmYXVsdDogYm9vbGVhbjtcbiAgaW5wdXRTdHlsZTogSW5wdXRTdHlsZTtcbiAgdGhyZWVEQnVpbGRpbmdDb2xvcjogUkdCQ29sb3I7XG4gIGJhY2tncm91bmRDb2xvcjogUkdCQ29sb3I7XG4gIGN1c3RvbTNEQnVpbGRpbmdDb2xvcjogYm9vbGVhbjtcbiAgYm90dG9tTWFwU3R5bGU6IGFueTtcbiAgdG9wTWFwU3R5bGU6IGFueTtcbiAgaW5pdGlhbFN0YXRlPzogTWFwU3R5bGU7XG4gIGlzTG9hZGluZzoge1xuICAgIFtrZXk6IHN0cmluZ106IGJvb2xlYW47XG4gIH07XG59O1xuXG5jb25zdCBnZXREZWZhdWx0U3RhdGUgPSAoKTogTWFwU3R5bGUgPT4ge1xuICBjb25zdCB2aXNpYmxlTGF5ZXJHcm91cHMgPSB7fTtcbiAgY29uc3Qgc3R5bGVUeXBlID0gJ2RhcmsnO1xuICBjb25zdCB0b3BMYXllckdyb3VwcyA9IHt9O1xuXG4gIHJldHVybiB7XG4gICAgc3R5bGVUeXBlLFxuICAgIHZpc2libGVMYXllckdyb3VwcyxcbiAgICB0b3BMYXllckdyb3VwcyxcbiAgICBtYXBTdHlsZXM6IERFRkFVTFRfTUFQX1NUWUxFUy5yZWR1Y2UoXG4gICAgICAoYWNjdSwgY3VycikgPT4gKHtcbiAgICAgICAgLi4uYWNjdSxcbiAgICAgICAgW2N1cnIuaWRdOiBjdXJyXG4gICAgICB9KSxcbiAgICAgIHt9XG4gICAgKSxcbiAgICAvLyBzYXZlIG1hcGJveCBhY2Nlc3MgdG9rZW5cbiAgICBtYXBib3hBcGlBY2Nlc3NUb2tlbjogbnVsbCxcbiAgICBtYXBib3hBcGlVcmw6IERFRkFVTFRfTUFQQk9YX0FQSV9VUkwsXG4gICAgbWFwU3R5bGVzUmVwbGFjZURlZmF1bHQ6IGZhbHNlLFxuICAgIGlucHV0U3R5bGU6IGdldEluaXRpYWxJbnB1dFN0eWxlKCksXG4gICAgdGhyZWVEQnVpbGRpbmdDb2xvcjogaGV4VG9SZ2IoREVGQVVMVF9CTERHX0NPTE9SKSxcbiAgICBjdXN0b20zREJ1aWxkaW5nQ29sb3I6IGZhbHNlLFxuICAgIGJhY2tncm91bmRDb2xvcjogaGV4VG9SZ2IoREVGQVVMVF9CQUNLR1JPVU5EX0NPTE9SKSxcbiAgICBpc0xvYWRpbmc6IHt9LFxuICAgIGJvdHRvbU1hcFN0eWxlOiB1bmRlZmluZWQsXG4gICAgdG9wTWFwU3R5bGU6IHVuZGVmaW5lZFxuICB9O1xufTtcblxuLyoqXG4gKiBVcGRhdGVycyBmb3IgYG1hcFN0eWxlYC4gQ2FuIGJlIHVzZWQgaW4geW91ciByb290IHJlZHVjZXIgdG8gZGlyZWN0bHkgbW9kaWZ5IGtlcGxlci5nbCdzIHN0YXRlLlxuICogUmVhZCBtb3JlIGFib3V0IFtVc2luZyB1cGRhdGVyc10oLi4vYWR2YW5jZWQtdXNhZ2UvdXNpbmctdXBkYXRlcnMubWQpXG4gKiBAcHVibGljXG4gKiBAZXhhbXBsZVxuICpcbiAqIGltcG9ydCBrZXBsZXJHbFJlZHVjZXIsIHttYXBTdHlsZVVwZGF0ZXJzfSBmcm9tICdrZXBsZXIuZ2wvcmVkdWNlcnMnO1xuICogLy8gUm9vdCBSZWR1Y2VyXG4gKiBjb25zdCByZWR1Y2VycyA9IGNvbWJpbmVSZWR1Y2Vycyh7XG4gKiAga2VwbGVyR2w6IGtlcGxlckdsUmVkdWNlcixcbiAqICBhcHA6IGFwcFJlZHVjZXJcbiAqIH0pO1xuICpcbiAqIGNvbnN0IGNvbXBvc2VkUmVkdWNlciA9IChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gKiAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICogICAgLy8gY2xpY2sgYnV0dG9uIHRvIGhpZGUgbGFiZWwgZnJvbSBiYWNrZ3JvdW5kIG1hcFxuICogICAgY2FzZSAnQ0xJQ0tfQlVUVE9OJzpcbiAqICAgICAgcmV0dXJuIHtcbiAqICAgICAgICAuLi5zdGF0ZSxcbiAqICAgICAgICBrZXBsZXJHbDoge1xuICogICAgICAgICAgLi4uc3RhdGUua2VwbGVyR2wsXG4gKiAgICAgICAgICBmb286IHtcbiAqICAgICAgICAgICAgIC4uLnN0YXRlLmtlcGxlckdsLmZvbyxcbiAqICAgICAgICAgICAgIG1hcFN0eWxlOiBtYXBTdHlsZVVwZGF0ZXJzLm1hcENvbmZpZ0NoYW5nZVVwZGF0ZXIoXG4gKiAgICAgICAgICAgICAgIG1hcFN0eWxlLFxuICogICAgICAgICAgICAgICB7cGF5bG9hZDoge3Zpc2libGVMYXllckdyb3Vwczoge2xhYmVsOiBmYWxzZSwgcm9hZDogdHJ1ZSwgYmFja2dyb3VuZDogdHJ1ZX19fVxuICogICAgICAgICAgICAgKVxuICogICAgICAgICAgfVxuICogICAgICAgIH1cbiAqICAgICAgfTtcbiAqICB9XG4gKiAgcmV0dXJuIHJlZHVjZXJzKHN0YXRlLCBhY3Rpb24pO1xuICogfTtcbiAqXG4gKiBleHBvcnQgZGVmYXVsdCBjb21wb3NlZFJlZHVjZXI7XG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG4vLyBAdHMtaWdub3JlXG5jb25zdCBtYXBTdHlsZVVwZGF0ZXJzID0gbnVsbDtcbi8qIGVzbGludC1lbmFibGUgbm8tdW51c2VkLXZhcnMgKi9cbi8qKlxuICogRGVmYXVsdCBpbml0aWFsIGBtYXBTdHlsZWBcbiAqIEBtZW1iZXJvZiBtYXBTdHlsZVVwZGF0ZXJzXG4gKiBAY29uc3RhbnRcbiAqIEBwcm9wZXJ0eSBzdHlsZVR5cGUgLSBEZWZhdWx0OiBgJ2RhcmsnYFxuICogQHByb3BlcnR5IHZpc2libGVMYXllckdyb3VwcyAtIERlZmF1bHQ6IGB7fWBcbiAqIEBwcm9wZXJ0eSB0b3BMYXllckdyb3VwcyAtIERlZmF1bHQ6IGB7fWBcbiAqIEBwcm9wZXJ0eSBtYXBTdHlsZXMgLSBtYXBwaW5nIGZyb20gc3R5bGUga2V5IHRvIHN0eWxlIG9iamVjdFxuICogQHByb3BlcnR5IG1hcGJveEFwaUFjY2Vzc1Rva2VuIC0gRGVmYXVsdDogYG51bGxgXG4gKiBAUHJvcGVydHkgbWFwYm94QXBpVXJsIC0gRGVmYXVsdCBudWxsXG4gKiBAUHJvcGVydHkgbWFwU3R5bGVzUmVwbGFjZURlZmF1bHQgLSBEZWZhdWx0OiBgZmFsc2VgXG4gKiBAcHJvcGVydHkgaW5wdXRTdHlsZSAtIERlZmF1bHQ6IGB7fWBcbiAqIEBwcm9wZXJ0eSB0aHJlZURCdWlsZGluZ0NvbG9yIC0gRGVmYXVsdDogYFtyLCBnLCBiXWBcbiAqIEBwcm9wZXJ0eSBiYWNrZ3JvdW5kQ29sb3IgLSBEZWZhdWx0OiBgW3IsIGcsIGJdYFxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgSU5JVElBTF9NQVBfU1RZTEU6IE1hcFN0eWxlID0gZ2V0RGVmYXVsdFN0YXRlKCk7XG5cbmludGVyZmFjZSBHZXRNYXBTdHlsZXNQYXJhbSB7XG4gIHN0eWxlVHlwZTogc3RyaW5nO1xuICB2aXNpYmxlTGF5ZXJHcm91cHM6IHtbaWQ6IHN0cmluZ106IExheWVyR3JvdXAgfCBib29sZWFufTtcbiAgdG9wTGF5ZXJHcm91cHM6IHtbaWQ6IHN0cmluZ106IExheWVyR3JvdXAgfCBib29sZWFufTtcbiAgbWFwU3R5bGVzOiB7W2lkOiBzdHJpbmddOiBhbnl9O1xufVxuXG4vKipcbiAqIENyZWF0ZSB0d28gbWFwIHN0eWxlcyBmcm9tIHByZXNldCBtYXAgc3R5bGUsIG9uZSBmb3IgdG9wIG1hcCBvbmUgZm9yIGJvdHRvbVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHlsZVR5cGUgLSBjdXJyZW50IG1hcCBzdHlsZVxuICogQHBhcmFtIHtPYmplY3R9IHZpc2libGVMYXllckdyb3VwcyAtIHZpc2libGUgbGF5ZXJzIG9mIGJvdHRvbSBtYXBcbiAqIEBwYXJhbSB7T2JqZWN0fSB0b3BMYXllckdyb3VwcyAtIHZpc2libGUgbGF5ZXJzIG9mIHRvcCBtYXBcbiAqIEBwYXJhbSB7T2JqZWN0fSBtYXBTdHlsZXMgLSBhIGRpY3Rpb25hcnkgb2YgYWxsIG1hcCBzdHlsZXNcbiAqIEByZXR1cm5zIHtPYmplY3R9IGJvdHRvbU1hcFN0eWxlIHwgdG9wTWFwU3R5bGUgfCBpc1Jhc3RlclxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWFwU3R5bGVzKHtcbiAgc3R5bGVUeXBlLFxuICB2aXNpYmxlTGF5ZXJHcm91cHMsXG4gIHRvcExheWVyR3JvdXBzLFxuICBtYXBTdHlsZXNcbn06IEdldE1hcFN0eWxlc1BhcmFtKSB7XG4gIGNvbnN0IG1hcFN0eWxlID0gbWFwU3R5bGVzW3N0eWxlVHlwZV07XG5cbiAgLy8gc3R5bGUgbWlnaHQgbm90IGJlIGxvYWRlZCB5ZXRcbiAgaWYgKCFtYXBTdHlsZSB8fCAhbWFwU3R5bGUuc3R5bGUpIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICBjb25zdCBlZGl0YWJsZSA9IE9iamVjdC5rZXlzKHZpc2libGVMYXllckdyb3VwcykubGVuZ3RoO1xuXG4gIGNvbnN0IGJvdHRvbU1hcFN0eWxlID0gIWVkaXRhYmxlXG4gICAgPyBtYXBTdHlsZS5zdHlsZVxuICAgIDogZWRpdEJvdHRvbU1hcFN0eWxlKHtcbiAgICAgICAgaWQ6IHN0eWxlVHlwZSxcbiAgICAgICAgbWFwU3R5bGUsXG4gICAgICAgIHZpc2libGVMYXllckdyb3Vwc1xuICAgICAgfSk7XG5cbiAgY29uc3QgaGFzVG9wTGF5ZXIgPSBlZGl0YWJsZSA+IDAgJiYgT2JqZWN0LnZhbHVlcyh0b3BMYXllckdyb3Vwcykuc29tZSh2ID0+IHYpO1xuXG4gIC8vIG11dGUgdG9wIGxheWVyIGlmIG5vdCB2aXNpYmxlIGluIGJvdHRvbSBsYXllclxuICBjb25zdCB0b3BMYXllcnMgPVxuICAgIGhhc1RvcExheWVyICYmXG4gICAgT2JqZWN0LmtleXModG9wTGF5ZXJHcm91cHMpLnJlZHVjZShcbiAgICAgIChhY2N1LCBrZXkpID0+ICh7XG4gICAgICAgIC4uLmFjY3UsXG4gICAgICAgIFtrZXldOiB0b3BMYXllckdyb3Vwc1trZXldICYmIHZpc2libGVMYXllckdyb3Vwc1trZXldXG4gICAgICB9KSxcbiAgICAgIHt9IGFzIHtbaWQ6IHN0cmluZ106IExheWVyR3JvdXAgfCBib29sZWFufVxuICAgICk7XG5cbiAgY29uc3QgdG9wTWFwU3R5bGUgPSBoYXNUb3BMYXllclxuICAgID8gZWRpdFRvcE1hcFN0eWxlKHtcbiAgICAgICAgaWQ6IHN0eWxlVHlwZSxcbiAgICAgICAgbWFwU3R5bGUsXG4gICAgICAgIHZpc2libGVMYXllckdyb3VwczogdG9wTGF5ZXJzXG4gICAgICB9KVxuICAgIDogbnVsbDtcblxuICByZXR1cm4ge2JvdHRvbU1hcFN0eWxlLCB0b3BNYXBTdHlsZSwgZWRpdGFibGV9O1xufVxuXG5mdW5jdGlvbiBmaW5kTGF5ZXJGaWxsQ29sb3IobGF5ZXIpIHtcbiAgcmV0dXJuIGxheWVyICYmIGxheWVyLnBhaW50ICYmIGxheWVyLnBhaW50WydiYWNrZ3JvdW5kLWNvbG9yJ107XG59XG5cbi8vIG5lZWQgdG8gYmUgY2FyZWZ1bCBiZWNhdXNlIHNvbWUgYmFzZW1hcCBsYXllci5wYWludFsnYmFja2dyb3VuZC1jb2xvciddIHZhbHVlcyBtYXkgYmUgYW4gaW50ZXJwb2xhdGUgYXJyYXkgZXhwcmVzc2lvbiBpbnN0ZWFkIG9mIGEgY29sb3Igc3RyaW5nXG4vLyBodHRwczovL2RvY3MubWFwYm94LmNvbS9tYXBib3gtZ2wtanMvc3R5bGUtc3BlYy9sYXllcnMvI3BhaW50LWJhY2tncm91bmQtYmFja2dyb3VuZC1jb2xvclxuLy8gaHR0cHM6Ly9kb2NzLm1hcGJveC5jb20vbWFwYm94LWdsLWpzL3N0eWxlLXNwZWMvZXhwcmVzc2lvbnMvI2ludGVycG9sYXRlXG5mdW5jdGlvbiBnZXRQYWludENvbG9yKGNvbG9yKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGNvbG9yKSAmJiBjb2xvclswXSA9PT0gJ2ludGVycG9sYXRlJykge1xuICAgIC8vIGdldCBjb2xvciBvZiBmaXJzdCB6b29tIGJyZWFrXG4gICAgLy8gW1wiaW50ZXJwb2xhdGVcIiwgW1wibGluZWFyXCJdLCBbXCJ6b29tXCJdLCAxMSwgXCJoc2woMzUsIDMyJSwgOTElKVwiLCAxMywgXCJoc2woMzUsIDEyJSwgODklKVwiXVxuICAgIHJldHVybiBjb2xvcls0XTtcbiAgfVxuICByZXR1cm4gY29sb3I7XG59XG5cbmZ1bmN0aW9uIGdldDNEQnVpbGRpbmdDb2xvcihzdHlsZSk6IFJHQkNvbG9yIHtcbiAgLy8gc2V0IGJ1aWxkaW5nIGNvbG9yIHRvIGJlIHRoZSBzYW1lIGFzIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuICBpZiAoIXN0eWxlLnN0eWxlKSB7XG4gICAgcmV0dXJuIGhleFRvUmdiKERFRkFVTFRfQkxER19DT0xPUik7XG4gIH1cblxuICBjb25zdCBiYWNrZ3JvdW5kTGF5ZXIgPSAoc3R5bGUuc3R5bGUubGF5ZXJzIHx8IFtdKS5maW5kKCh7aWR9KSA9PiBpZCA9PT0gJ2JhY2tncm91bmQnKTtcblxuICBjb25zdCBidWlsZGluZ0xheWVyID0gKHN0eWxlLnN0eWxlLmxheWVycyB8fCBbXSkuZmluZCgoe2lkfSkgPT4gaWQubWF0Y2goL2J1aWxkaW5nLykpO1xuXG4gIGNvbnN0IGJ1aWxkaW5nQ29sb3IgPVxuICAgIGZpbmRMYXllckZpbGxDb2xvcihidWlsZGluZ0xheWVyKSB8fCBmaW5kTGF5ZXJGaWxsQ29sb3IoYmFja2dyb3VuZExheWVyKSB8fCBERUZBVUxUX0JMREdfQ09MT1I7XG5cbiAgLy8gYnJpZ2h0ZW4gb3IgZGFya2VuIGJ1aWxkaW5nIGJhc2VkIG9uIHN0eWxlXG4gIGNvbnN0IG9wZXJhdGlvbiA9IHN0eWxlLmlkLm1hdGNoKC8oPz0oZGFya3xuaWdodCkpLykgPyAnYnJpZ2h0ZXInIDogJ2Rhcmtlcic7XG5cbiAgY29uc3QgYWxwaGEgPSAwLjI7XG4gIGNvbnN0IHJnYk9iaiA9IHJnYihidWlsZGluZ0NvbG9yKVtvcGVyYXRpb25dKFthbHBoYV0pO1xuICByZXR1cm4gW3JnYk9iai5yLCByZ2JPYmouZywgcmdiT2JqLmJdO1xufVxuXG5mdW5jdGlvbiBnZXRCYWNrZ3JvdW5kQ29sb3JGcm9tU3R5bGVCYXNlTGF5ZXIoXG4gIHN0eWxlOiBCYXNlTWFwU3R5bGUsXG4gIGJhY2t1cEJhY2tncm91bmRDb2xvcjogUkdCQ29sb3Jcbik6IFJHQkNvbG9yIHtcbiAgaWYgKCFzdHlsZS5zdHlsZSkge1xuICAgIHJldHVybiBjb2xvck1heWJlVG9SR0IoYmFja3VwQmFja2dyb3VuZENvbG9yKSB8fCBiYWNrdXBCYWNrZ3JvdW5kQ29sb3I7XG4gIH1cblxuICAvLyBAdHMtZXhwZWN0LWVycm9yIHN0eWxlLnN0eWxlIG5vdCB0eXBlZFxuICBjb25zdCBiYXNlTGF5ZXIgPSAoc3R5bGUuc3R5bGUubGF5ZXJzIHx8IFtdKS5maW5kKCh7aWR9KSA9PlxuICAgIEJBU0VfTUFQX0JBQ0tHUk9VTkRfTEFZRVJfSURTLmluY2x1ZGVzKGlkKVxuICApO1xuXG4gIGNvbnN0IGJhY2tncm91bmRDb2xvck9mQmFzZUxheWVyID0gZ2V0UGFpbnRDb2xvcihmaW5kTGF5ZXJGaWxsQ29sb3IoYmFzZUxheWVyKSk7XG5cbiAgY29uc3QgbmV3QmFja2dyb3VuZENvbG9yID1cbiAgICB0eXBlb2YgYmFja2dyb3VuZENvbG9yT2ZCYXNlTGF5ZXIgPT09ICdzdHJpbmcnXG4gICAgICA/IGJhY2tncm91bmRDb2xvck9mQmFzZUxheWVyXG4gICAgICA6IGJhY2t1cEJhY2tncm91bmRDb2xvcjtcblxuICBjb25zdCBuZXdCYWNrZ3JvdW5kQ29sb3JBc1JHQkFycmF5ID0gY29sb3JNYXliZVRvUkdCKG5ld0JhY2tncm91bmRDb2xvcilcbiAgICAvLyBpZiBuZXdCYWNrZ3JvdW5kQ29sb3Igd2FzIGluIHN0cmluZyBIU0wgZm9ybWF0IGl0IGNhbiBpbnRyb2R1Y2UgUkdCIG51bWJlcnMgd2l0aCBkZWNpbWFscyxcbiAgICAvLyB3aGljaCBtYXkgcmVuZGVyIHRoZSBiYWNrZ3JvdW5kLWNvbG9yIENTUyBvZiB0aGUgPFN0eWxlZE1hcD4gY29udGFpbmVyIGluY29ycmVjdGx5IHdoZW4gdXNpbmcgb3VyIG93biBjb2xvciB1dGlscyBgcmdiVG9IZXgoKWBcbiAgICAvLyBzbyB3ZSBhdHRlbXB0IHRvIHJvdW5kIHRvIG5lYXJlc3QgaW50ZWdlciBoZXJlXG4gICAgPy5tYXAoY2hhbm5lbE51bWJlciA9PiBNYXRoLnJvdW5kKGNoYW5uZWxOdW1iZXIpKSBhcyBSR0JDb2xvciB8IG51bGw7XG5cbiAgcmV0dXJuIG5ld0JhY2tncm91bmRDb2xvckFzUkdCQXJyYXkgfHwgYmFja3VwQmFja2dyb3VuZENvbG9yO1xufVxuXG4vLyBkZXRlcm1pbmUgbmV3IGJhY2tncm91bmRDb2xvciBmcm9tIGVpdGhlciBwcmV2aW91cyBzdGF0ZSBiYXNlbWFwIHN0eWxlLCBwcmV2aW91cyBzdGF0ZSBiYWNrZ3JvdW5kQ29sb3IsIG9yIHRoZSBERUZBVUxUX0JBQ0tHUk9VTkRfQ09MT1JcbmZ1bmN0aW9uIGdldEJhY2tncm91bmRDb2xvcihwcmV2aW91c1N0YXRlOiBNYXBTdHlsZSwgc3R5bGVUeXBlOiBzdHJpbmcpIHtcbiAgY29uc3QgcHJldmlvdXNTdGF0ZU1hcFN0eWxlID0gcHJldmlvdXNTdGF0ZS5tYXBTdHlsZXNbcHJldmlvdXNTdGF0ZS5zdHlsZVR5cGVdO1xuICBjb25zdCBiYWNrdXBCYWNrZ3JvdW5kQ29sb3IgPSBwcmV2aW91c1N0YXRlLmJhY2tncm91bmRDb2xvciB8fCBERUZBVUxUX0JBQ0tHUk9VTkRfQ09MT1I7XG4gIGNvbnN0IGJhY2tncm91bmRDb2xvciA9XG4gICAgc3R5bGVUeXBlID09PSBOT19NQVBfSURcbiAgICAgID8gLy8gaWYgdGhlIHN0eWxlIGhhcyBzd2l0Y2hlZCB0byB0aGUgXCJubyBiYXNlbWFwXCIgc3R5bGUsXG4gICAgICAgIC8vIGF0dGVtcHQgdG8gZGV0ZWN0IGJhY2tncm91bmRDb2xvciBvZiB0aGUgcHJldmlvdXMgYmFzZW1hcCBpZiBpdCB3YXMgYSBtYXBib3ggYmFzZW1hcFxuICAgICAgICAvLyBhbmQgc2V0IGl0IGFzIHRoZSBcIm5vIGJhc2VtYXBcIiBiYWNrZ3JvdW5kQ29sb3JcbiAgICAgICAgZ2V0QmFja2dyb3VuZENvbG9yRnJvbVN0eWxlQmFzZUxheWVyKHByZXZpb3VzU3RhdGVNYXBTdHlsZSwgYmFja3VwQmFja2dyb3VuZENvbG9yKVxuICAgICAgOiAvLyBvdGhlcndpc2UgbGVhdmUgaXQgYWxvbmUgYW5kIHJlbHkgb24gdGhlIHByZXZpb3VzIHN0YXRlJ3MgcHJlZXhpc3RpbmcgYmFja2dyb3VuZENvbG9yXG4gICAgICAgIC8vIG9yIERFRkFVTFRfQkFDS0dST1VORF9DT0xPUiBhcyBhIGxhc3QgcmVzb3J0XG4gICAgICAgIGJhY2t1cEJhY2tncm91bmRDb2xvcjtcblxuICByZXR1cm4gYmFja2dyb3VuZENvbG9yO1xufVxuXG5mdW5jdGlvbiBnZXRMYXllckdyb3Vwc0Zyb21TdHlsZShzdHlsZSkge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheShzdHlsZT8ubGF5ZXJzKVxuICAgID8gREVGQVVMVF9MQVlFUl9HUk9VUFMuZmlsdGVyKGxnID0+IHN0eWxlLmxheWVycy5maWx0ZXIobGcuZmlsdGVyKS5sZW5ndGgpXG4gICAgOiBbXTtcbn1cblxuLy8gVXBkYXRlcnNcblxuLyoqXG4gKiBAbWVtYmVyb2YgbWFwU3R5bGVVcGRhdGVyc1xuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgcmVxdWVzdE1hcFN0eWxlc1VwZGF0ZXIgPSAoXG4gIHN0YXRlOiBNYXBTdHlsZSxcbiAge3BheWxvYWQ6IHttYXBTdHlsZXMsIG9uU3VjY2Vzc319OiBNYXBTdHlsZUFjdGlvbnMuUmVxdWVzdE1hcFN0eWxlc1VwZGF0ZXJBY3Rpb25cbik6IE1hcFN0eWxlID0+IHtcbiAgY29uc3QgdG9Mb2FkID0gT2JqZWN0LmtleXMobWFwU3R5bGVzKS5yZWR1Y2UoXG4gICAgKGFjY3UsIGlkKSA9PiAoe1xuICAgICAgLi4uYWNjdSxcbiAgICAgIC4uLighc3RhdGUuaXNMb2FkaW5nW2lkXSA/IHtbaWRdOiBtYXBTdHlsZXNbaWRdfSA6IHt9KVxuICAgIH0pLFxuICAgIHt9XG4gICk7XG4gIGNvbnN0IGxvYWRNYXBTdHlsZVRhc2tzID0gZ2V0TG9hZE1hcFN0eWxlVGFza3MoXG4gICAgdG9Mb2FkLFxuICAgIHN0YXRlLm1hcGJveEFwaUFjY2Vzc1Rva2VuLFxuICAgIHN0YXRlLm1hcGJveEFwaVVybCxcbiAgICBvblN1Y2Nlc3NcbiAgKTtcblxuICBjb25zdCBpc0xvYWRpbmcgPSBPYmplY3Qua2V5cyh0b0xvYWQpLnJlZHVjZShcbiAgICAoYWNjdSwga2V5KSA9PiAoe1xuICAgICAgLi4uYWNjdSxcbiAgICAgIFtrZXldOiB0cnVlXG4gICAgfSksXG4gICAge31cbiAgKTtcbiAgY29uc3QgbmV4dFN0YXRlID0ge1xuICAgIC4uLnN0YXRlLFxuICAgIGlzTG9hZGluZ1xuICB9O1xuICByZXR1cm4gd2l0aFRhc2sobmV4dFN0YXRlLCBsb2FkTWFwU3R5bGVUYXNrcyk7XG59O1xuXG4vKipcbiAqIFByb3BhZ2F0ZSBgbWFwU3R5bGVgIHJlZHVjZXIgd2l0aCBgbWFwYm94QXBpQWNjZXNzVG9rZW5gIGFuZCBgbWFwU3R5bGVzUmVwbGFjZURlZmF1bHRgLlxuICogaWYgbWFwU3R5bGVzUmVwbGFjZURlZmF1bHQgaXMgdHJ1ZSBtYXBTdHlsZXMgaXMgZW1wdGllZDsgbG9hZE1hcFN0eWxlc1VwZGF0ZXIoKSB3aWxsXG4gKiBwb3B1bGF0ZSBtYXBTdHlsZXMuXG4gKlxuICogQG1lbWJlcm9mIG1hcFN0eWxlVXBkYXRlcnNcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IGluaXRNYXBTdHlsZVVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBNYXBTdHlsZSxcbiAge1xuICAgIHBheWxvYWQgPSB7fVxuICB9OiB7XG4gICAgdHlwZT86IHR5cGVvZiBBY3Rpb25UeXBlcy5JTklUO1xuICAgIHBheWxvYWQ6IEtlcGxlckdsSW5pdFBheWxvYWQ7XG4gIH1cbik6IE1hcFN0eWxlID0+ICh7XG4gIC4uLnN0YXRlLFxuICAvLyBzYXZlIG1hcGJveCBhY2Nlc3MgdG9rZW4gdG8gbWFwIHN0eWxlIHN0YXRlXG4gIG1hcGJveEFwaUFjY2Vzc1Rva2VuOiBwYXlsb2FkLm1hcGJveEFwaUFjY2Vzc1Rva2VuIHx8IHN0YXRlLm1hcGJveEFwaUFjY2Vzc1Rva2VuLFxuICBtYXBib3hBcGlVcmw6IHBheWxvYWQubWFwYm94QXBpVXJsIHx8IHN0YXRlLm1hcGJveEFwaVVybCxcbiAgbWFwU3R5bGVzOiAhcGF5bG9hZC5tYXBTdHlsZXNSZXBsYWNlRGVmYXVsdCA/IHN0YXRlLm1hcFN0eWxlcyA6IHt9LFxuICBtYXBTdHlsZXNSZXBsYWNlRGVmYXVsdDogcGF5bG9hZC5tYXBTdHlsZXNSZXBsYWNlRGVmYXVsdCB8fCBmYWxzZVxufSk7XG4vLyB9KTtcblxuLyoqXG4gKiBVcGRhdGUgYHZpc2libGVMYXllckdyb3Vwc2B0byBjaGFuZ2UgbGF5ZXIgZ3JvdXAgdmlzaWJpbGl0eVxuICogQG1lbWJlcm9mIG1hcFN0eWxlVXBkYXRlcnNcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IG1hcENvbmZpZ0NoYW5nZVVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBNYXBTdHlsZSxcbiAgYWN0aW9uOiBNYXBTdHlsZUFjdGlvbnMuTWFwQ29uZmlnQ2hhbmdlVXBkYXRlckFjdGlvblxuKTogTWFwU3R5bGUgPT4ge1xuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIC4uLmFjdGlvbi5wYXlsb2FkLFxuICAgIC4uLmdldE1hcFN0eWxlcyh7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIC4uLmFjdGlvbi5wYXlsb2FkXG4gICAgfSlcbiAgfTtcbn07XG5cbmNvbnN0IGhhc1N0eWxlT2JqZWN0ID0gc3R5bGUgPT4gaXNQbGFpbk9iamVjdChzdHlsZT8uc3R5bGUpO1xuXG4vKipcbiAqIENoYW5nZSB0byBhbm90aGVyIG1hcCBzdHlsZS4gVGhlIHNlbGVjdGVkIHN0eWxlIHNob3VsZCBhbHJlYWR5IGJlZW4gbG9hZGVkIGludG8gYG1hcFN0eWxlLm1hcFN0eWxlc2BcbiAqIEBtZW1iZXJvZiBtYXBTdHlsZVVwZGF0ZXJzXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBtYXBTdHlsZUNoYW5nZVVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBNYXBTdHlsZSxcbiAge3BheWxvYWQ6IHtzdHlsZVR5cGUsIG9uU3VjY2Vzc319OiBNYXBTdHlsZUFjdGlvbnMuTWFwU3R5bGVDaGFuZ2VVcGRhdGVyQWN0aW9uXG4pOiBNYXBTdHlsZSA9PiB7XG4gIGlmIChcbiAgICAvLyB3ZSBtaWdodCBub3QgaGF2ZSByZWNlaXZlZCB0aGUgc3R5bGUgeWV0XG4gICAgIXN0YXRlLm1hcFN0eWxlc1tzdHlsZVR5cGVdIHx8XG4gICAgLy8gb3IgaWYgaXQgaXMgYSBtYW5hZ2VkIGN1c3RvbSBzdHlsZSBhc3NldFxuICAgIC8vIGFuZCBpZiBpdCBoYXMgbm90IGJlZW4gaHlkcmF0ZWQgd2l0aCBVUkwgaW5mbyB5ZXQgKGR1cmluZyBhcHAgZmlyc3QgaW5pdGlhbGl6YXRpb24pXG4gICAgLy8gYW5kIGl0IGRvZXMgbm90IGhhdmUgYSBzdHlsZSBvYmplY3QgKGR1cmluZyBhZGRpbmcgYSBjdXN0b20gc3R5bGUpXG4gICAgKHN0YXRlLm1hcFN0eWxlc1tzdHlsZVR5cGVdPy5jdXN0b20gPT09ICdNQU5BR0VEJyAmJlxuICAgICAgIXN0YXRlLm1hcFN0eWxlc1tzdHlsZVR5cGVdPy51cmwgJiZcbiAgICAgICFoYXNTdHlsZU9iamVjdChzdGF0ZS5tYXBTdHlsZXNbc3R5bGVUeXBlXSkpXG4gICkge1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuXG4gIGlmICghaGFzU3R5bGVPYmplY3Qoc3RhdGUubWFwU3R5bGVzW3N0eWxlVHlwZV0pKSB7XG4gICAgLy8gc3R5bGUgaGFzbid0IGxvYWRlZCB5ZXRcbiAgICByZXR1cm4gcmVxdWVzdE1hcFN0eWxlc1VwZGF0ZXIoXG4gICAgICB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBzdHlsZVR5cGVcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICBtYXBTdHlsZXM6IHtcbiAgICAgICAgICAgIFtzdHlsZVR5cGVdOiBzdGF0ZS5tYXBTdHlsZXNbc3R5bGVUeXBlXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgb25TdWNjZXNzXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgY29uc3QgZGVmYXVsdExHVmlzaWJpbGl0eSA9IGdldERlZmF1bHRMYXllckdyb3VwVmlzaWJpbGl0eShzdGF0ZS5tYXBTdHlsZXNbc3R5bGVUeXBlXSk7XG5cbiAgY29uc3QgdmlzaWJsZUxheWVyR3JvdXBzID0gbWVyZ2VMYXllckdyb3VwVmlzaWJpbGl0eShcbiAgICBkZWZhdWx0TEdWaXNpYmlsaXR5LFxuICAgIHN0YXRlLnZpc2libGVMYXllckdyb3Vwc1xuICApO1xuXG4gIGNvbnN0IHRocmVlREJ1aWxkaW5nQ29sb3I6IFJHQkNvbG9yID0gc3RhdGUuY3VzdG9tM0RCdWlsZGluZ0NvbG9yXG4gICAgPyBzdGF0ZS50aHJlZURCdWlsZGluZ0NvbG9yXG4gICAgOiBnZXQzREJ1aWxkaW5nQ29sb3Ioc3RhdGUubWFwU3R5bGVzW3N0eWxlVHlwZV0pO1xuXG4gIC8vIGRldGVybWluZSBuZXcgYmFja2dyb3VuZENvbG9yIGZyb20gZWl0aGVyIHByZXZpb3VzIHN0YXRlIGJhc2VtYXAgc3R5bGUsIHByZXZpb3VzIHN0YXRlIGJhY2tncm91bmRDb2xvciwgb3IgdGhlIERFRkFVTFRfQkFDS0dST1VORF9DT0xPUlxuICBjb25zdCBiYWNrZ3JvdW5kQ29sb3IgPSBnZXRCYWNrZ3JvdW5kQ29sb3Ioc3RhdGUsIHN0eWxlVHlwZSk7XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5zdGF0ZSxcbiAgICBzdHlsZVR5cGUsXG4gICAgdmlzaWJsZUxheWVyR3JvdXBzLFxuICAgIHRocmVlREJ1aWxkaW5nQ29sb3IsXG4gICAgYmFja2dyb3VuZENvbG9yLFxuICAgIC4uLmdldE1hcFN0eWxlcyh7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHZpc2libGVMYXllckdyb3VwcyxcbiAgICAgIHN0eWxlVHlwZVxuICAgIH0pXG4gIH07XG59O1xuXG4vKipcbiAqIENhbGxiYWNrIHdoZW4gbG9hZCBtYXAgc3R5bGUgc3VjY2Vzc1xuICogQG1lbWJlcm9mIG1hcFN0eWxlVXBkYXRlcnNcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IGxvYWRNYXBTdHlsZXNVcGRhdGVyID0gKFxuICBzdGF0ZTogTWFwU3R5bGUsXG4gIGFjdGlvbjogTWFwU3R5bGVBY3Rpb25zLkxvYWRNYXBTdHlsZXNVcGRhdGVyQWN0aW9uXG4pOiBNYXBTdHlsZSA9PiB7XG4gIGNvbnN0IHtuZXdTdHlsZXMsIG9uU3VjY2Vzc30gPSBhY3Rpb24ucGF5bG9hZCB8fCB7fTtcblxuICBjb25zdCBhZGRMYXllckdyb3VwcyA9IE9iamVjdC5rZXlzKG5ld1N0eWxlcykucmVkdWNlKFxuICAgIChhY2N1LCBpZCkgPT4gKHtcbiAgICAgIC4uLmFjY3UsXG4gICAgICBbaWRdOiB7XG4gICAgICAgIC4uLm5ld1N0eWxlc1tpZF0sXG4gICAgICAgIGxheWVyR3JvdXBzOiBuZXdTdHlsZXNbaWRdLmxheWVyR3JvdXBzIHx8IGdldExheWVyR3JvdXBzRnJvbVN0eWxlKG5ld1N0eWxlc1tpZF0uc3R5bGUpXG4gICAgICB9XG4gICAgfSksXG4gICAge31cbiAgKTtcbiAgLy8gcmVzZXQgaXNMb2FkaW5nXG4gIGNvbnN0IGlzTG9hZGluZyA9IE9iamVjdC5rZXlzKHN0YXRlLmlzTG9hZGluZykucmVkdWNlKFxuICAgIChhY2N1LCBrZXkpID0+ICh7XG4gICAgICAuLi5hY2N1LFxuICAgICAgLi4uKHN0YXRlLmlzTG9hZGluZ1trZXldICYmIGhhc1N0eWxlT2JqZWN0KG5ld1N0eWxlc1trZXldKVxuICAgICAgICA/IHtba2V5XTogZmFsc2V9XG4gICAgICAgIDoge1trZXldOiBzdGF0ZS5pc0xvYWRpbmdba2V5XX0pXG4gICAgfSksXG4gICAge31cbiAgKTtcbiAgLy8gYWRkIG5ldyBzdHlsZXMgdG8gc3RhdGVcbiAgY29uc3QgbmV3U3RhdGUgPSB7XG4gICAgLi4uc3RhdGUsXG4gICAgaXNMb2FkaW5nLFxuICAgIG1hcFN0eWxlczoge1xuICAgICAgLi4uc3RhdGUubWFwU3R5bGVzLFxuICAgICAgLi4uYWRkTGF5ZXJHcm91cHNcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgdGFza3MgPSBjcmVhdGVBY3Rpb25UYXNrKG9uU3VjY2Vzcywge3N0eWxlVHlwZTogc3RhdGUuc3R5bGVUeXBlfSk7XG5cbiAgY29uc3QgbmV4dFN0YXRlID0gbmV3U3R5bGVzW3N0YXRlLnN0eWxlVHlwZV1cbiAgICA/IG1hcFN0eWxlQ2hhbmdlVXBkYXRlcihuZXdTdGF0ZSwge3BheWxvYWQ6IHtzdHlsZVR5cGU6IHN0YXRlLnN0eWxlVHlwZX19KVxuICAgIDogbmV3U3RhdGU7XG5cbiAgcmV0dXJuIHRhc2tzID8gd2l0aFRhc2sobmV4dFN0YXRlLCB0YXNrcykgOiBuZXh0U3RhdGU7XG59O1xuXG5mdW5jdGlvbiBjcmVhdGVBY3Rpb25UYXNrKGFjdGlvbiwgcGF5bG9hZCkge1xuICBpZiAodHlwZW9mIGFjdGlvbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBBQ1RJT05fVEFTSygpLm1hcChfID0+IGFjdGlvbihwYXlsb2FkKSk7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBDYWxsYmFjayB3aGVuIGxvYWQgbWFwIHN0eWxlIGVycm9yXG4gKiBAbWVtYmVyb2YgbWFwU3R5bGVVcGRhdGVyc1xuICogQHB1YmxpY1xuICovXG4vLyBkbyBub3RoaW5nIGZvciBub3csIGlmIGRpZG4ndCBsb2FkLCBza2lwIGl0XG5leHBvcnQgY29uc3QgbG9hZE1hcFN0eWxlRXJyVXBkYXRlciA9IChcbiAgc3RhdGU6IE1hcFN0eWxlLFxuICB7cGF5bG9hZDoge2lkcywgZXJyb3J9fTogTWFwU3R5bGVBY3Rpb25zLkxvYWRNYXBTdHlsZUVyclVwZGF0ZXJBY3Rpb25cbik6IE1hcFN0eWxlID0+IHtcbiAgQ29uc29sZS5lcnJvcihlcnJvcik7XG4gIC8vIHJlc2V0IGlzTG9hZGluZ1xuICBjb25zdCBpc0xvYWRpbmcgPSBPYmplY3Qua2V5cyhzdGF0ZS5pc0xvYWRpbmcpLnJlZHVjZShcbiAgICAoYWNjdSwga2V5KSA9PiAoe1xuICAgICAgLi4uYWNjdSxcbiAgICAgIC4uLihzdGF0ZS5pc0xvYWRpbmdba2V5XSAmJiAoaWRzIHx8IFtdKS5pbmNsdWRlcyhrZXkpXG4gICAgICAgID8ge1trZXldOiBmYWxzZX1cbiAgICAgICAgOiB7W2tleV06IHN0YXRlLmlzTG9hZGluZ1trZXldfSlcbiAgICB9KSxcbiAgICB7fVxuICApO1xuXG4gIHJldHVybiB7XG4gICAgLi4uc3RhdGUsXG4gICAgaXNMb2FkaW5nXG4gIH07XG59O1xuXG4vKipcbiAqIExvYWQgbWFwIHN0eWxlIG9iamVjdCB3aGVuIHBhc3MgaW4gc2F2ZWQgbWFwIGNvbmZpZ1xuICogQG1lbWJlcm9mIG1hcFN0eWxlVXBkYXRlcnNcbiAqIEBwYXJhbSBzdGF0ZSBgbWFwU3R5bGVgXG4gKiBAcGFyYW0gYWN0aW9uXG4gKiBAcGFyYW0gYWN0aW9uLnBheWxvYWQgc2F2ZWQgbWFwIGNvbmZpZyBge21hcFN0eWxlLCB2aXNTdGF0ZSwgbWFwU3RhdGV9YFxuICogQHJldHVybnMgbmV4dFN0YXRlIG9yIGByZWFjdC1wYW1gIHRhc2tzIHRvIGxvYWQgbWFwIHN0eWxlIG9iamVjdFxuICovXG5leHBvcnQgY29uc3QgcmVjZWl2ZU1hcENvbmZpZ1VwZGF0ZXIgPSAoXG4gIHN0YXRlOiBNYXBTdHlsZSxcbiAge1xuICAgIHBheWxvYWQ6IHtjb25maWd9XG4gIH06IHtcbiAgICB0eXBlPzogdHlwZW9mIEFjdGlvblR5cGVzLlJFQ0VJVkVfTUFQX0NPTkZJRztcbiAgICBwYXlsb2FkOiBSZWNlaXZlTWFwQ29uZmlnUGF5bG9hZDtcbiAgfVxuKTogTWFwU3R5bGUgPT4ge1xuICBjb25zdCB7bWFwU3R5bGV9ID0gY29uZmlnIHx8IHt9O1xuXG4gIGlmICghbWFwU3R5bGUpIHtcbiAgICByZXR1cm4gc3RhdGU7XG4gIH1cblxuICAvLyBtZXJnZSBkZWZhdWx0IG1hcFN0eWxlc1xuICBjb25zdCBtZXJnZWQgPSBtYXBTdHlsZS5tYXBTdHlsZXNcbiAgICA/IHtcbiAgICAgICAgLi4ubWFwU3R5bGUsXG4gICAgICAgIG1hcFN0eWxlczoge1xuICAgICAgICAgIC4uLm1hcFN0eWxlLm1hcFN0eWxlcyxcbiAgICAgICAgICAuLi5zdGF0ZS5tYXBTdHlsZXNcbiAgICAgICAgfVxuICAgICAgfVxuICAgIDogbWFwU3R5bGU7XG5cbiAgLy8gc2V0IGN1c3RvbTNEQnVpbGRpbmdDb2xvcjogdHJ1ZSBpZiBtYXBTdHlsZSBjb250YWlucyB0aHJlZURCdWlsZGluZ0NvbG9yXG4gIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgbWVyZ2VkLmN1c3RvbTNEQnVpbGRpbmdDb2xvciA9XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgIEJvb2xlYW4obWFwU3R5bGUudGhyZWVEQnVpbGRpbmdDb2xvcikgfHwgbWVyZ2VkLmN1c3RvbTNEQnVpbGRpbmdDb2xvcjtcbiAgY29uc3QgbmV3U3RhdGUgPSBtYXBDb25maWdDaGFuZ2VVcGRhdGVyKHN0YXRlLCB7cGF5bG9hZDogbWVyZ2VkfSk7XG5cbiAgcmV0dXJuIG1hcFN0eWxlQ2hhbmdlVXBkYXRlcihuZXdTdGF0ZSwge3BheWxvYWQ6IHtzdHlsZVR5cGU6IG5ld1N0YXRlLnN0eWxlVHlwZX19KTtcbn07XG5cbmZ1bmN0aW9uIGdldExvYWRNYXBTdHlsZVRhc2tzKG1hcFN0eWxlcywgbWFwYm94QXBpQWNjZXNzVG9rZW4sIG1hcGJveEFwaVVybCwgb25TdWNjZXNzKSB7XG4gIHJldHVybiBbXG4gICAgVGFzay5hbGwoXG4gICAgICBPYmplY3QudmFsdWVzKG1hcFN0eWxlcylcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgICAubWFwKCh7aWQsIHVybCwgYWNjZXNzVG9rZW59KSA9PiAoe1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIHVybDogaXNWYWxpZFN0eWxlVXJsKHVybClcbiAgICAgICAgICAgID8gZ2V0U3R5bGVEb3dubG9hZFVybCh1cmwsIGFjY2Vzc1Rva2VuIHx8IG1hcGJveEFwaUFjY2Vzc1Rva2VuLCBtYXBib3hBcGlVcmwpXG4gICAgICAgICAgICA6IHVybFxuICAgICAgICB9KSlcbiAgICAgICAgLm1hcChMT0FEX01BUF9TVFlMRV9UQVNLKVxuICAgICkuYmltYXAoXG4gICAgICAvLyBzdWNjZXNzXG4gICAgICByZXN1bHRzID0+XG4gICAgICAgIGxvYWRNYXBTdHlsZXMoXG4gICAgICAgICAgcmVzdWx0cy5yZWR1Y2UoXG4gICAgICAgICAgICAoYWNjdSwge2lkLCBzdHlsZX0pID0+ICh7XG4gICAgICAgICAgICAgIC4uLmFjY3UsXG4gICAgICAgICAgICAgIFtpZF06IHtcbiAgICAgICAgICAgICAgICAuLi5tYXBTdHlsZXNbaWRdLFxuICAgICAgICAgICAgICAgIHN0eWxlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAge31cbiAgICAgICAgICApLFxuICAgICAgICAgIG9uU3VjY2Vzc1xuICAgICAgICApLFxuICAgICAgLy8gZXJyb3JcbiAgICAgIGVyciA9PiBsb2FkTWFwU3R5bGVFcnIoT2JqZWN0LmtleXMobWFwU3R5bGVzKSwgZXJyKVxuICAgIClcbiAgXTtcbn1cbi8qKlxuICogUmVzZXQgbWFwIHN0eWxlIGNvbmZpZyB0byBpbml0aWFsIHN0YXRlXG4gKiBAbWVtYmVyb2YgbWFwU3R5bGVVcGRhdGVyc1xuICogQHBhcmFtIHN0YXRlIGBtYXBTdHlsZWBcbiAqIEByZXR1cm5zIG5leHRTdGF0ZVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgcmVzZXRNYXBDb25maWdNYXBTdHlsZVVwZGF0ZXIgPSAoc3RhdGU6IE1hcFN0eWxlKTogTWFwU3R5bGUgPT4ge1xuICBjb25zdCBlbXB0eUNvbmZpZyA9IHtcbiAgICAuLi5JTklUSUFMX01BUF9TVFlMRSxcbiAgICBtYXBib3hBcGlBY2Nlc3NUb2tlbjogc3RhdGUubWFwYm94QXBpQWNjZXNzVG9rZW4sXG4gICAgbWFwYm94QXBpVXJsOiBzdGF0ZS5tYXBib3hBcGlVcmwsXG4gICAgbWFwU3R5bGVzUmVwbGFjZURlZmF1bHQ6IHN0YXRlLm1hcFN0eWxlc1JlcGxhY2VEZWZhdWx0LFxuICAgIC4uLnN0YXRlLmluaXRpYWxTdGF0ZSxcbiAgICBtYXBTdHlsZXM6IHN0YXRlLm1hcFN0eWxlcyxcbiAgICBpbml0aWFsU3RhdGU6IHN0YXRlLmluaXRpYWxTdGF0ZVxuICB9O1xuXG4gIHJldHVybiBtYXBTdHlsZUNoYW5nZVVwZGF0ZXIoZW1wdHlDb25maWcsIHtwYXlsb2FkOiB7c3R5bGVUeXBlOiBlbXB0eUNvbmZpZy5zdHlsZVR5cGV9fSk7XG59O1xuXG4vKipcbiAqIENhbGxiYWNrIHdoZW4gYSBjdXN0b20gbWFwIHN0eWxlIG9iamVjdCBpcyByZWNlaXZlZFxuICogQG1lbWJlcm9mIG1hcFN0eWxlVXBkYXRlcnNcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IGxvYWRDdXN0b21NYXBTdHlsZVVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBNYXBTdHlsZSxcbiAge3BheWxvYWQ6IHtpY29uLCBzdHlsZSwgZXJyb3J9fTogTWFwU3R5bGVBY3Rpb25zLkxvYWRDdXN0b21NYXBTdHlsZVVwZGF0ZXJBY3Rpb25cbik6IE1hcFN0eWxlID0+ICh7XG4gIC4uLnN0YXRlLFxuICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gIGlucHV0U3R5bGU6IHtcbiAgICAuLi5zdGF0ZS5pbnB1dFN0eWxlLFxuICAgIC8vIHN0eWxlIGpzb24gYW5kIGljb24gd2lsbCBsb2FkIGFzeW5jaHJvbm91c2x5XG4gICAgLi4uKHN0eWxlXG4gICAgICA/IHtcbiAgICAgICAgICBpZDpcbiAgICAgICAgICAgIHN0YXRlLmlucHV0U3R5bGUuY3VzdG9tID09PSAnTUFOQUdFRCdcbiAgICAgICAgICAgICAgPyBzdGF0ZS5pbnB1dFN0eWxlLmlkIC8vIGN1c3RvbSBNQU5BR0VEIHR5cGVcbiAgICAgICAgICAgICAgOiAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICAgICAgICAgICAgc3R5bGUuaWQgfHwgZ2VuZXJhdGVIYXNoSWQoKSwgLy8gY3VzdG9tIExPQ0FMIHR5cGVcbiAgICAgICAgICAvLyBtYWtlIGEgY29weSBvZiB0aGUgc3R5bGUgb2JqZWN0XG4gICAgICAgICAgc3R5bGU6IGNsb25lRGVlcChzdHlsZSksXG4gICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgICAgIGxhYmVsOiBzdGF0ZS5pbnB1dFN0eWxlLmxhYmVsIHx8IHN0eWxlLm5hbWUsXG4gICAgICAgICAgLy8gZ2F0aGVyaW5nIGxheWVyIGdyb3VwIGluZm8gZnJvbSBzdHlsZSBqc29uXG4gICAgICAgICAgbGF5ZXJHcm91cHM6IGdldExheWVyR3JvdXBzRnJvbVN0eWxlKHN0eWxlKVxuICAgICAgICB9XG4gICAgICA6IHt9KSxcbiAgICAuLi4oaWNvbiA/IHtpY29ufSA6IHt9KSxcbiAgICAuLi4oZXJyb3IgPyB7ZXJyb3J9IDoge30pXG4gIH1cbn0pO1xuXG4vKipcbiAqIElucHV0IGEgY3VzdG9tIG1hcCBzdHlsZSBvYmplY3RcbiAqIEBtZW1iZXJvZiBtYXBTdHlsZVVwZGF0ZXJzXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBpbnB1dE1hcFN0eWxlVXBkYXRlciA9IChcbiAgc3RhdGU6IE1hcFN0eWxlLFxuICB7cGF5bG9hZDoge2lucHV0U3R5bGUsIG1hcFN0YXRlfX06IE1hcFN0eWxlQWN0aW9ucy5JbnB1dE1hcFN0eWxlVXBkYXRlckFjdGlvblxuKTogTWFwU3R5bGUgPT4ge1xuICBjb25zdCB1cGRhdGVkID0ge1xuICAgIC4uLnN0YXRlLmlucHV0U3R5bGUsXG4gICAgLi4uaW5wdXRTdHlsZVxuICB9O1xuXG4gIC8vIGRpZmZlcmVudGlhdGUgYmV0d2VlbiBlaXRoZXIgYSB1cmwgdG8gaG9zdGVkIHN0eWxlIGpzb24gdGhhdCBuZWVkcyBhbiBpY29uIHVybCxcbiAgLy8gb3IgYW4gaWNvbiBhbHJlYWR5IGF2YWlsYWJsZSBjbGllbnQtc2lkZSBhcyBhIGRhdGEgdXJpXG4gIGNvbnN0IGlzVmFsaWRVcmwgPSBpc1ZhbGlkU3R5bGVVcmwodXBkYXRlZC51cmwpO1xuICBjb25zdCBpc1VwZGF0ZWRJY29uRGF0YVVyaSA9IHVwZGF0ZWQuaWNvbj8uc3RhcnRzV2l0aCgnZGF0YTppbWFnZScpO1xuICBjb25zdCBpc1ZhbGlkID0gaXNWYWxpZFVybCB8fCBCb29sZWFuKHVwZGF0ZWQudXBsb2FkZWRGaWxlKTtcblxuICBjb25zdCBpY29uID1cbiAgICBpc1ZhbGlkVXJsICYmICFpc1VwZGF0ZWRJY29uRGF0YVVyaVxuICAgICAgPyBnZXRTdHlsZUltYWdlSWNvbih7XG4gICAgICAgICAgbWFwU3RhdGUsXG4gICAgICAgICAgc3R5bGVVcmw6IHVwZGF0ZWQudXJsIHx8ICcnLFxuICAgICAgICAgIG1hcGJveEFwaUFjY2Vzc1Rva2VuOiB1cGRhdGVkLmFjY2Vzc1Rva2VuIHx8IHN0YXRlLm1hcGJveEFwaUFjY2Vzc1Rva2VuIHx8ICcnLFxuICAgICAgICAgIG1hcGJveEFwaVVybDogc3RhdGUubWFwYm94QXBpVXJsIHx8IERFRkFVTFRfTUFQQk9YX0FQSV9VUkxcbiAgICAgICAgfSlcbiAgICAgIDogdXBkYXRlZC5pY29uO1xuXG4gIHJldHVybiB7XG4gICAgLi4uc3RhdGUsXG4gICAgaW5wdXRTdHlsZToge1xuICAgICAgLi4udXBkYXRlZCxcbiAgICAgIGlzVmFsaWQsXG4gICAgICBpY29uXG4gICAgfVxuICB9O1xufTtcblxuLyoqXG4gKiBBZGQgbWFwIHN0eWxlIGZyb20gdXNlciBpbnB1dCB0byByZWR1Y2VyIGFuZCBzZXQgaXQgdG8gY3VycmVudCBzdHlsZVxuICogVGhpcyBhY3Rpb24gaXMgY2FsbGVkIHdoZW4gdXNlciBjbGljayBjb25maXJtIGFmdGVyIHB1dHRpbmcgaW4gYSB2YWxpZCBzdHlsZSB1cmwgaW4gdGhlIGN1c3RvbSBtYXAgc3R5bGUgZGlhbG9nLlxuICogSXQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZnJvbSBvdXRzaWRlIGtlcGxlci5nbCB3aXRob3V0IGEgdmFsaWQgYGlucHV0U3R5bGVgIGluIHRoZSBgbWFwU3R5bGVgIHJlZHVjZXIuXG4gKiBAbWVtYmVyb2YgbWFwU3R5bGVVcGRhdGVyc1xuICovXG5leHBvcnQgY29uc3QgYWRkQ3VzdG9tTWFwU3R5bGVVcGRhdGVyID0gKHN0YXRlOiBNYXBTdHlsZSk6IE1hcFN0eWxlID0+IHtcbiAgY29uc3Qgc3R5bGVJZCA9IHN0YXRlLmlucHV0U3R5bGUuaWQ7XG4gIGlmICghc3R5bGVJZCkgcmV0dXJuIHN0YXRlO1xuXG4gIGNvbnN0IG5ld1N0YXRlID0gZ2V0TmV3U3RhdGVXaXRoQ3VzdG9tTWFwU3R5bGUoc3RhdGUpO1xuICAvLyBzZXQgbmV3IHN0eWxlXG4gIHJldHVybiBtYXBTdHlsZUNoYW5nZVVwZGF0ZXIobmV3U3RhdGUsIHtwYXlsb2FkOiB7c3R5bGVUeXBlOiBzdHlsZUlkfX0pO1xufTtcblxuLyoqXG4gKiBFZGl0IG1hcCBzdHlsZSBmcm9tIHVzZXIgaW5wdXQgdG8gcmVkdWNlci5cbiAqIFRoaXMgYWN0aW9uIGlzIGNhbGxlZCB3aGVuIHVzZXIgY2xpY2tzIGNvbmZpcm0gYWZ0ZXIgZWRpdGluZyBhbiBleGlzdGluZyBjdXN0b20gc3R5bGUgaW4gdGhlIGN1c3RvbSBtYXAgc3R5bGUgZGlhbG9nLlxuICogSXQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZnJvbSBvdXRzaWRlIGtlcGxlci5nbCB3aXRob3V0IGEgdmFsaWQgYGlucHV0U3R5bGVgIGluIHRoZSBgbWFwU3R5bGVgIHJlZHVjZXIuXG4gKiBAbWVtYmVyb2YgbWFwU3R5bGVVcGRhdGVyc1xuICovXG5leHBvcnQgY29uc3QgZWRpdEN1c3RvbU1hcFN0eWxlVXBkYXRlciA9IChzdGF0ZTogTWFwU3R5bGUpOiBNYXBTdHlsZSA9PiB7XG4gIHJldHVybiBnZXROZXdTdGF0ZVdpdGhDdXN0b21NYXBTdHlsZShzdGF0ZSk7XG59O1xuXG5mdW5jdGlvbiBnZXROZXdTdGF0ZVdpdGhDdXN0b21NYXBTdHlsZShzdGF0ZTogTWFwU3R5bGUpOiBNYXBTdHlsZSB7XG4gIGNvbnN0IHN0eWxlSWQgPSBzdGF0ZS5pbnB1dFN0eWxlLmlkO1xuICBpZiAoIXN0eWxlSWQpIHJldHVybiBzdGF0ZTtcblxuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgUHJvcGVydHkgJ2xheWVyR3JvdXBzJyBpcyBtaXNzaW5nIGluIHR5cGUgJ0lucHV0U3R5bGUnIGJ1dCByZXF1aXJlZCBpbiB0eXBlICdCYXNlTWFwU3R5bGUnLiBMZWdhY3kgY2FzZT9cbiAgICBtYXBTdHlsZXM6IHtcbiAgICAgIC4uLnN0YXRlLm1hcFN0eWxlcyxcbiAgICAgIFtzdHlsZUlkXToge1xuICAgICAgICAuLi5zdGF0ZS5tYXBTdHlsZXNbc3R5bGVJZF0sIC8vIGRvIG5vdCB1bmludGVudGlvbmFsbHkgZHJvcCBhbnkgYWRkaXRpb25hbCBwcm9wZXJ0aWVzXG4gICAgICAgIC4uLnN0YXRlLmlucHV0U3R5bGVcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIHNldCB0byBkZWZhdWx0XG4gICAgaW5wdXRTdHlsZTogZ2V0SW5pdGlhbElucHV0U3R5bGUoKVxuICB9O1xufVxuXG4vKipcbiAqIFJlbW92ZSBhIGN1c3RvbSBtYXAgc3R5bGUgZnJvbSBgc3RhdGUubWFwU3R5bGUubWFwU3R5bGVzYC5cbiAqIEBtZW1iZXJvZiBtYXBTdHlsZVVwZGF0ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCByZW1vdmVDdXN0b21NYXBTdHlsZVVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBNYXBTdHlsZSxcbiAgYWN0aW9uOiBNYXBTdHlsZUFjdGlvbnMuUmVtb3ZlQ3VzdG9tTWFwU3R5bGVVcGRhdGVyQWN0aW9uXG4pOiBNYXBTdHlsZSA9PiB7XG4gIGNvbnN0IHtpZH0gPSBhY3Rpb24ucGF5bG9hZDtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgY29uc3Qge1tpZF06IF8sIC4uLnJlc3RPZk1hcFN0eWxlc30gPSBzdGF0ZS5tYXBTdHlsZXM7XG5cbiAgY29uc3QgbmV3U3RhdGUgPSB7XG4gICAgLi4uc3RhdGUsXG4gICAgbWFwU3R5bGVzOiByZXN0T2ZNYXBTdHlsZXNcbiAgfTtcblxuICBpZiAoc3RhdGUuc3R5bGVUeXBlID09PSBpZCkge1xuICAgIC8vIGlmIHJlbW92aW5nIGEgY3VzdG9tIHN0eWxlIHRoYXQgaXMgYWxzbyB0aGUgY3VycmVudCBhY3RpdmUgYmFzZSBtYXAsXG4gICAgLy8gdGhlbiByZXNldCB0byB0aGUgZGVmYXVsdCBhY3RpdmUgYmFzZSBtYXAgKGBtYXBTdHlsZS5zdHlsZVR5cGVgKVxuICAgIHJldHVybiBtYXBTdHlsZUNoYW5nZVVwZGF0ZXIobmV3U3RhdGUsIHtwYXlsb2FkOiB7c3R5bGVUeXBlOiBnZXREZWZhdWx0U3RhdGUoKS5zdHlsZVR5cGV9fSk7XG4gIH1cblxuICByZXR1cm4gbmV3U3RhdGU7XG59O1xuXG4vKipcbiAqIFVwZGF0ZXMgM2QgYnVpbGRpbmcgY29sb3JcbiAqIEBtZW1iZXJvZiBtYXBTdHlsZVVwZGF0ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBzZXQzZEJ1aWxkaW5nQ29sb3JVcGRhdGVyID0gKFxuICBzdGF0ZTogTWFwU3R5bGUsXG4gIHtwYXlsb2FkOiBjb2xvcn06IE1hcFN0eWxlQWN0aW9ucy5TZXQzZEJ1aWxkaW5nQ29sb3JVcGRhdGVyQWN0aW9uXG4pOiBNYXBTdHlsZSA9PiAoe1xuICAuLi5zdGF0ZSxcbiAgdGhyZWVEQnVpbGRpbmdDb2xvcjogY29sb3IsXG4gIGN1c3RvbTNEQnVpbGRpbmdDb2xvcjogdHJ1ZVxufSk7XG5cbi8qKlxuICogVXBkYXRlcyBiYWNrZ3JvdW5kIGNvbG9yXG4gKiBAbWVtYmVyb2YgbWFwU3R5bGVVcGRhdGVyc1xuICovXG5leHBvcnQgY29uc3Qgc2V0QmFja2dyb3VuZENvbG9yVXBkYXRlciA9IChcbiAgc3RhdGU6IE1hcFN0eWxlLFxuICB7cGF5bG9hZDogY29sb3J9OiBNYXBTdHlsZUFjdGlvbnMuU2V0QmFja2dyb3VuZENvbG9yVXBkYXRlckFjdGlvblxuKTogTWFwU3R5bGUgPT4gKHtcbiAgLi4uc3RhdGUsXG4gIGJhY2tncm91bmRDb2xvcjogY29sb3Jcbn0pO1xuXG4vKipcbiAqIFJldHVybiB0aGUgaW5pdGlhbCBpbnB1dCBzdHlsZVxuICogQHJldHVybiBPYmplY3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEluaXRpYWxJbnB1dFN0eWxlKCk6IElucHV0U3R5bGUge1xuICByZXR1cm4ge1xuICAgIGlkOiBudWxsLFxuICAgIGFjY2Vzc1Rva2VuOiBudWxsLFxuICAgIGVycm9yOiBmYWxzZSxcbiAgICBpc1ZhbGlkOiBmYWxzZSxcbiAgICBsYWJlbDogbnVsbCxcbiAgICBzdHlsZTogbnVsbCxcbiAgICB1cmw6IG51bGwsXG4gICAgaWNvbjogbnVsbCxcbiAgICBjdXN0b206ICdMT0NBTCcsXG4gICAgdXBsb2FkZWRGaWxlOiBudWxsXG4gIH07XG59XG4iXX0=
737
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYXAtc3R5bGUtdXBkYXRlcnMudHMiXSwibmFtZXMiOlsiZ2V0RGVmYXVsdFN0YXRlIiwidmlzaWJsZUxheWVyR3JvdXBzIiwic3R5bGVUeXBlIiwidG9wTGF5ZXJHcm91cHMiLCJtYXBTdHlsZXMiLCJERUZBVUxUX01BUF9TVFlMRVMiLCJyZWR1Y2UiLCJhY2N1IiwiY3VyciIsImlkIiwibWFwYm94QXBpQWNjZXNzVG9rZW4iLCJtYXBib3hBcGlVcmwiLCJERUZBVUxUX01BUEJPWF9BUElfVVJMIiwibWFwU3R5bGVzUmVwbGFjZURlZmF1bHQiLCJpbnB1dFN0eWxlIiwiZ2V0SW5pdGlhbElucHV0U3R5bGUiLCJ0aHJlZURCdWlsZGluZ0NvbG9yIiwiREVGQVVMVF9CTERHX0NPTE9SIiwiY3VzdG9tM0RCdWlsZGluZ0NvbG9yIiwiYmFja2dyb3VuZENvbG9yIiwiREVGQVVMVF9CQUNLR1JPVU5EX0NPTE9SIiwiaXNMb2FkaW5nIiwiYm90dG9tTWFwU3R5bGUiLCJ1bmRlZmluZWQiLCJ0b3BNYXBTdHlsZSIsIm1hcFN0eWxlVXBkYXRlcnMiLCJJTklUSUFMX01BUF9TVFlMRSIsImdldE1hcFN0eWxlcyIsIm1hcFN0eWxlIiwic3R5bGUiLCJlZGl0YWJsZSIsIk9iamVjdCIsImtleXMiLCJsZW5ndGgiLCJoYXNUb3BMYXllciIsInZhbHVlcyIsInNvbWUiLCJ2IiwidG9wTGF5ZXJzIiwia2V5IiwiZmluZExheWVyRmlsbENvbG9yIiwibGF5ZXIiLCJwYWludCIsImdldFBhaW50Q29sb3IiLCJjb2xvciIsIkFycmF5IiwiaXNBcnJheSIsImdldDNEQnVpbGRpbmdDb2xvciIsImJhY2tncm91bmRMYXllciIsImxheWVycyIsImZpbmQiLCJidWlsZGluZ0xheWVyIiwibWF0Y2giLCJidWlsZGluZ0NvbG9yIiwib3BlcmF0aW9uIiwiYWxwaGEiLCJyZ2JPYmoiLCJyIiwiZyIsImIiLCJnZXRCYWNrZ3JvdW5kQ29sb3JGcm9tU3R5bGVCYXNlTGF5ZXIiLCJiYWNrdXBCYWNrZ3JvdW5kQ29sb3IiLCJiYXNlTGF5ZXIiLCJCQVNFX01BUF9CQUNLR1JPVU5EX0xBWUVSX0lEUyIsImluY2x1ZGVzIiwiYmFja2dyb3VuZENvbG9yT2ZCYXNlTGF5ZXIiLCJuZXdCYWNrZ3JvdW5kQ29sb3IiLCJuZXdCYWNrZ3JvdW5kQ29sb3JBc1JHQkFycmF5IiwibWFwIiwiY2hhbm5lbE51bWJlciIsIk1hdGgiLCJyb3VuZCIsImdldEJhY2tncm91bmRDb2xvciIsInByZXZpb3VzU3RhdGUiLCJwcmV2aW91c1N0YXRlTWFwU3R5bGUiLCJOT19NQVBfSUQiLCJnZXRMYXllckdyb3Vwc0Zyb21TdHlsZSIsIkRFRkFVTFRfTEFZRVJfR1JPVVBTIiwiZmlsdGVyIiwibGciLCJyZXF1ZXN0TWFwU3R5bGVzVXBkYXRlciIsInN0YXRlIiwicGF5bG9hZCIsIm9uU3VjY2VzcyIsInRvTG9hZCIsImxvYWRNYXBTdHlsZVRhc2tzIiwiZ2V0TG9hZE1hcFN0eWxlVGFza3MiLCJuZXh0U3RhdGUiLCJpbml0TWFwU3R5bGVVcGRhdGVyIiwibWFwQ29uZmlnQ2hhbmdlVXBkYXRlciIsImFjdGlvbiIsImhhc1N0eWxlT2JqZWN0IiwibWFwU3R5bGVDaGFuZ2VVcGRhdGVyIiwiY3VzdG9tIiwidXJsIiwiZGVmYXVsdExHVmlzaWJpbGl0eSIsImxvYWRNYXBTdHlsZXNVcGRhdGVyIiwibmV3U3R5bGVzIiwiYWRkTGF5ZXJHcm91cHMiLCJsYXllckdyb3VwcyIsIm5ld1N0YXRlIiwidGFza3MiLCJjcmVhdGVBY3Rpb25UYXNrIiwiXyIsImxvYWRNYXBTdHlsZUVyclVwZGF0ZXIiLCJpZHMiLCJlcnJvciIsIkNvbnNvbGUiLCJyZWNlaXZlTWFwQ29uZmlnVXBkYXRlciIsImNvbmZpZyIsIm1lcmdlZCIsIkJvb2xlYW4iLCJUYXNrIiwiYWxsIiwiYWNjZXNzVG9rZW4iLCJMT0FEX01BUF9TVFlMRV9UQVNLIiwiYmltYXAiLCJyZXN1bHRzIiwiZXJyIiwicmVzZXRNYXBDb25maWdNYXBTdHlsZVVwZGF0ZXIiLCJlbXB0eUNvbmZpZyIsImluaXRpYWxTdGF0ZSIsImxvYWRDdXN0b21NYXBTdHlsZVVwZGF0ZXIiLCJpY29uIiwibGFiZWwiLCJuYW1lIiwiaW5wdXRNYXBTdHlsZVVwZGF0ZXIiLCJtYXBTdGF0ZSIsInVwZGF0ZWQiLCJpc1ZhbGlkVXJsIiwiaXNVcGRhdGVkSWNvbkRhdGFVcmkiLCJzdGFydHNXaXRoIiwiaXNWYWxpZCIsInVwbG9hZGVkRmlsZSIsInN0eWxlVXJsIiwiYWRkQ3VzdG9tTWFwU3R5bGVVcGRhdGVyIiwic3R5bGVJZCIsImdldE5ld1N0YXRlV2l0aEN1c3RvbU1hcFN0eWxlIiwiZWRpdEN1c3RvbU1hcFN0eWxlVXBkYXRlciIsInJlbW92ZUN1c3RvbU1hcFN0eWxlVXBkYXRlciIsInJlc3RPZk1hcFN0eWxlcyIsInNldDNkQnVpbGRpbmdDb2xvclVwZGF0ZXIiLCJzZXRCYWNrZ3JvdW5kQ29sb3JVcGRhdGVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBR0E7O0FBQ0E7O0FBQ0E7O0FBR0E7O0FBYUE7O0FBU0E7O0FBQ0E7O0FBVUE7Ozs7Ozs7Ozs7QUFnQ0EsSUFBTUEsZUFBZSxHQUFHLFNBQWxCQSxlQUFrQixHQUFnQjtBQUN0QyxNQUFNQyxrQkFBa0IsR0FBRyxFQUEzQjtBQUNBLE1BQU1DLFNBQVMsR0FBRyxhQUFsQjtBQUNBLE1BQU1DLGNBQWMsR0FBRyxFQUF2QjtBQUVBLFNBQU87QUFDTEQsSUFBQUEsU0FBUyxFQUFUQSxTQURLO0FBRUxELElBQUFBLGtCQUFrQixFQUFsQkEsa0JBRks7QUFHTEUsSUFBQUEsY0FBYyxFQUFkQSxjQUhLO0FBSUxDLElBQUFBLFNBQVMsRUFBRUMsOEJBQW1CQyxNQUFuQixDQUNULFVBQUNDLElBQUQsRUFBT0MsSUFBUDtBQUFBLDZDQUNLRCxJQURMLDRDQUVHQyxJQUFJLENBQUNDLEVBRlIsRUFFYUQsSUFGYjtBQUFBLEtBRFMsRUFLVCxFQUxTLENBSk47QUFXTDtBQUNBRSxJQUFBQSxvQkFBb0IsRUFBRSxJQVpqQjtB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bnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFRhc2ssIHt3aXRoVGFza30gZnJvbSAncmVhY3QtcGFsbS90YXNrcyc7XG5pbXBvcnQgY2xvbmVEZWVwIGZyb20gJ2xvZGFzaC5jbG9uZWRlZXAnO1xuaW1wb3J0IENvbnNvbGUgZnJvbSAnZ2xvYmFsL2NvbnNvbGUnO1xuXG4vLyBVdGlsc1xuaW1wb3J0IHtcbiAgZ2V0RGVmYXVsdExheWVyR3JvdXBWaXNpYmlsaXR5LFxuICBpc1ZhbGlkU3R5bGVVcmwsXG4gIGdldFN0eWxlRG93bmxvYWRVcmwsXG4gIG1lcmdlTGF5ZXJHcm91cFZpc2liaWxpdHksXG4gIGVkaXRUb3BNYXBTdHlsZSxcbiAgZWRpdEJvdHRvbU1hcFN0eWxlLFxuICBnZXRTdHlsZUltYWdlSWNvbixcbiAgZ2VuZXJhdGVIYXNoSWQsXG4gIGlzUGxhaW5PYmplY3QsXG4gIGhleFRvUmdiLFxuICBjb2xvck1heWJlVG9SR0Jcbn0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge1xuICBERUZBVUxUX01BUF9TVFlMRVMsXG4gIERFRkFVTFRfTEFZRVJfR1JPVVBTLFxuICBERUZBVUxUX01BUEJPWF9BUElfVVJMLFxuICBOT19NQVBfSUQsXG4gIERFRkFVTFRfQkxER19DT0xPUixcbiAgREVGQVVMVF9CQUNLR1JPVU5EX0NPTE9SLFxuICBCQVNFX01BUF9CQUNLR1JPVU5EX0xBWUVSX0lEU1xufSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0FDVElPTl9UQVNLLCBMT0FEX01BUF9TVFlMRV9UQVNLfSBmcm9tICdAa2VwbGVyLmdsL3Rhc2tzJztcbmltcG9ydCB7cmdifSBmcm9tICdkMy1jb2xvcic7XG5cbmltcG9ydCB7XG4gIFJHQkNvbG9yLFxuICBMYXllckdyb3VwLFxuICBCYXNlTWFwU3R5bGUsXG4gIE1hcFN0eWxlcyxcbiAgSW5wdXRTdHlsZSxcbiAgVmlzaWJsZUxheWVyR3JvdXBzXG59IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtcbiAgQWN0aW9uVHlwZXMsXG4gIFJlY2VpdmVNYXBDb25maWdQYXlsb2FkLFxuICBLZXBsZXJHbEluaXRQYXlsb2FkLFxuICBNYXBTdHlsZUFjdGlvbnMsXG4gIGxvYWRNYXBTdHlsZXMsXG4gIGxvYWRNYXBTdHlsZUVyclxufSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuXG5leHBvcnQgdHlwZSBNYXBib3hTdHlsZVVybCA9IHN0cmluZztcblxuZXhwb3J0IHR5cGUgTWFwU3R5bGUgPSB7XG4gIHN0eWxlVHlwZTogc3RyaW5nO1xuICB2aXNpYmxlTGF5ZXJHcm91cHM6IFZpc2libGVMYXllckdyb3VwcztcbiAgdG9wTGF5ZXJHcm91cHM6IFZpc2libGVMYXllckdyb3VwcztcbiAgbWFwU3R5bGVzOiBNYXBTdHlsZXM7XG4gIC8vIHNhdmUgbWFwYm94IGFjY2VzcyB0b2tlblxuICBtYXBib3hBcGlBY2Nlc3NUb2tlbjogc3RyaW5nIHwgbnVsbDtcbiAgbWFwYm94QXBpVXJsOiBzdHJpbmc7XG4gIG1hcFN0eWxlc1JlcGxhY2VEZWZhdWx0OiBib29sZWFuO1xuICBpbnB1dFN0eWxlOiBJbnB1dFN0eWxlO1xuICB0aHJlZURCdWlsZGluZ0NvbG9yOiBSR0JDb2xvcjtcbiAgYmFja2dyb3VuZENvbG9yOiBSR0JDb2xvcjtcbiAgY3VzdG9tM0RCdWlsZGluZ0NvbG9yOiBib29sZWFuO1xuICBib3R0b21NYXBTdHlsZTogYW55O1xuICB0b3BNYXBTdHlsZTogYW55O1xuICBpbml0aWFsU3RhdGU/OiBNYXBTdHlsZTtcbiAgaXNMb2FkaW5nOiB7XG4gICAgW2tleTogc3RyaW5nXTogYm9vbGVhbjtcbiAgfTtcbn07XG5cbmNvbnN0IGdldERlZmF1bHRTdGF0ZSA9ICgpOiBNYXBTdHlsZSA9PiB7XG4gIGNvbnN0IHZpc2libGVMYXllckdyb3VwcyA9IHt9O1xuICBjb25zdCBzdHlsZVR5cGUgPSAnZGFyay1tYXR0ZXInO1xuICBjb25zdCB0b3BMYXllckdyb3VwcyA9IHt9O1xuXG4gIHJldHVybiB7XG4gICAgc3R5bGVUeXBlLFxuICAgIHZpc2libGVMYXllckdyb3VwcyxcbiAgICB0b3BMYXllckdyb3VwcyxcbiAgICBtYXBTdHlsZXM6IERFRkFVTFRfTUFQX1NUWUxFUy5yZWR1Y2UoXG4gICAgICAoYWNjdSwgY3VycikgPT4gKHtcbiAgICAgICAgLi4uYWNjdSxcbiAgICAgICAgW2N1cnIuaWRdOiBjdXJyXG4gICAgICB9KSxcbiAgICAgIHt9XG4gICAgKSxcbiAgICAvLyBzYXZlIG1hcGJveCBhY2Nlc3MgdG9rZW5cbiAgICBtYXBib3hBcGlBY2Nlc3NUb2tlbjogbnVsbCxcbiAgICBtYXBib3hBcGlVcmw6IERFRkFVTFRfTUFQQk9YX0FQSV9VUkwsXG4gICAgbWFwU3R5bGVzUmVwbGFjZURlZmF1bHQ6IGZhbHNlLFxuICAgIGlucHV0U3R5bGU6IGdldEluaXRpYWxJbnB1dFN0eWxlKCksXG4gICAgdGhyZWVEQnVpbGRpbmdDb2xvcjogaGV4VG9SZ2IoREVGQVVMVF9CTERHX0NPTE9SKSxcbiAgICBjdXN0b20zREJ1aWxkaW5nQ29sb3I6IGZhbHNlLFxuICAgIGJhY2tncm91bmRDb2xvcjogaGV4VG9SZ2IoREVGQVVMVF9CQUNLR1JPVU5EX0NPTE9SKSxcbiAgICBpc0xvYWRpbmc6IHt9LFxuICAgIGJvdHRvbU1hcFN0eWxlOiB1bmRlZmluZWQsXG4gICAgdG9wTWFwU3R5bGU6IHVuZGVmaW5lZFxuICB9O1xufTtcblxuLyoqXG4gKiBVcGRhdGVycyBmb3IgYG1hcFN0eWxlYC4gQ2FuIGJlIHVzZWQgaW4geW91ciByb290IHJlZHVjZXIgdG8gZGlyZWN0bHkgbW9kaWZ5IGtlcGxlci5nbCdzIHN0YXRlLlxuICogUmVhZCBtb3JlIGFib3V0IFtVc2luZyB1cGRhdGVyc10oLi4vYWR2YW5jZWQtdXNhZ2UvdXNpbmctdXBkYXRlcnMubWQpXG4gKiBAcHVibGljXG4gKiBAZXhhbXBsZVxuICpcbiAqIGltcG9ydCBrZXBsZXJHbFJlZHVjZXIsIHttYXBTdHlsZVVwZGF0ZXJzfSBmcm9tICdrZXBsZXIuZ2wvcmVkdWNlcnMnO1xuICogLy8gUm9vdCBSZWR1Y2VyXG4gKiBjb25zdCByZWR1Y2VycyA9IGNvbWJpbmVSZWR1Y2Vycyh7XG4gKiAga2VwbGVyR2w6IGtlcGxlckdsUmVkdWNlcixcbiAqICBhcHA6IGFwcFJlZHVjZXJcbiAqIH0pO1xuICpcbiAqIGNvbnN0IGNvbXBvc2VkUmVkdWNlciA9IChzdGF0ZSwgYWN0aW9uKSA9PiB7XG4gKiAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICogICAgLy8gY2xpY2sgYnV0dG9uIHRvIGhpZGUgbGFiZWwgZnJvbSBiYWNrZ3JvdW5kIG1hcFxuICogICAgY2FzZSAnQ0xJQ0tfQlVUVE9OJzpcbiAqICAgICAgcmV0dXJuIHtcbiAqICAgICAgICAuLi5zdGF0ZSxcbiAqICAgICAgICBrZXBsZXJHbDoge1xuICogICAgICAgICAgLi4uc3RhdGUua2VwbGVyR2wsXG4gKiAgICAgICAgICBmb286IHtcbiAqICAgICAgICAgICAgIC4uLnN0YXRlLmtlcGxlckdsLmZvbyxcbiAqICAgICAgICAgICAgIG1hcFN0eWxlOiBtYXBTdHlsZVVwZGF0ZXJzLm1hcENvbmZpZ0NoYW5nZVVwZGF0ZXIoXG4gKiAgICAgICAgICAgICAgIG1hcFN0eWxlLFxuICogICAgICAgICAgICAgICB7cGF5bG9hZDoge3Zpc2libGVMYXllckdyb3Vwczoge2xhYmVsOiBmYWxzZSwgcm9hZDogdHJ1ZSwgYmFja2dyb3VuZDogdHJ1ZX19fVxuICogICAgICAgICAgICAgKVxuICogICAgICAgICAgfVxuICogICAgICAgIH1cbiAqICAgICAgfTtcbiAqICB9XG4gKiAgcmV0dXJuIHJlZHVjZXJzKHN0YXRlLCBhY3Rpb24pO1xuICogfTtcbiAqXG4gKiBleHBvcnQgZGVmYXVsdCBjb21wb3NlZFJlZHVjZXI7XG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXVudXNlZC12YXJzICovXG4vLyBAdHMtaWdub3JlXG5jb25zdCBtYXBTdHlsZVVwZGF0ZXJzID0gbnVsbDtcbi8qIGVzbGludC1lbmFibGUgbm8tdW51c2VkLXZhcnMgKi9cbi8qKlxuICogRGVmYXVsdCBpbml0aWFsIGBtYXBTdHlsZWBcbiAqIEBtZW1iZXJvZiBtYXBTdHlsZVVwZGF0ZXJzXG4gKiBAY29uc3RhbnRcbiAqIEBwcm9wZXJ0eSBzdHlsZVR5cGUgLSBEZWZhdWx0OiBgJ2RhcmsnYFxuICogQHByb3BlcnR5IHZpc2libGVMYXllckdyb3VwcyAtIERlZmF1bHQ6IGB7fWBcbiAqIEBwcm9wZXJ0eSB0b3BMYXllckdyb3VwcyAtIERlZmF1bHQ6IGB7fWBcbiAqIEBwcm9wZXJ0eSBtYXBTdHlsZXMgLSBtYXBwaW5nIGZyb20gc3R5bGUga2V5IHRvIHN0eWxlIG9iamVjdFxuICogQHByb3BlcnR5IG1hcGJveEFwaUFjY2Vzc1Rva2VuIC0gRGVmYXVsdDogYG51bGxgXG4gKiBAUHJvcGVydHkgbWFwYm94QXBpVXJsIC0gRGVmYXVsdCBudWxsXG4gKiBAUHJvcGVydHkgbWFwU3R5bGVzUmVwbGFjZURlZmF1bHQgLSBEZWZhdWx0OiBgZmFsc2VgXG4gKiBAcHJvcGVydHkgaW5wdXRTdHlsZSAtIERlZmF1bHQ6IGB7fWBcbiAqIEBwcm9wZXJ0eSB0aHJlZURCdWlsZGluZ0NvbG9yIC0gRGVmYXVsdDogYFtyLCBnLCBiXWBcbiAqIEBwcm9wZXJ0eSBiYWNrZ3JvdW5kQ29sb3IgLSBEZWZhdWx0OiBgW3IsIGcsIGJdYFxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgSU5JVElBTF9NQVBfU1RZTEU6IE1hcFN0eWxlID0gZ2V0RGVmYXVsdFN0YXRlKCk7XG5cbmludGVyZmFjZSBHZXRNYXBTdHlsZXNQYXJhbSB7XG4gIHN0eWxlVHlwZTogc3RyaW5nO1xuICB2aXNpYmxlTGF5ZXJHcm91cHM6IHtbaWQ6IHN0cmluZ106IExheWVyR3JvdXAgfCBib29sZWFufTtcbiAgdG9wTGF5ZXJHcm91cHM6IHtbaWQ6IHN0cmluZ106IExheWVyR3JvdXAgfCBib29sZWFufTtcbiAgbWFwU3R5bGVzOiB7W2lkOiBzdHJpbmddOiBhbnl9O1xufVxuXG4vKipcbiAqIENyZWF0ZSB0d28gbWFwIHN0eWxlcyBmcm9tIHByZXNldCBtYXAgc3R5bGUsIG9uZSBmb3IgdG9wIG1hcCBvbmUgZm9yIGJvdHRvbVxuICpcbiAqIEBwYXJhbSB7c3RyaW5nfSBzdHlsZVR5cGUgLSBjdXJyZW50IG1hcCBzdHlsZVxuICogQHBhcmFtIHtPYmplY3R9IHZpc2libGVMYXllckdyb3VwcyAtIHZpc2libGUgbGF5ZXJzIG9mIGJvdHRvbSBtYXBcbiAqIEBwYXJhbSB7T2JqZWN0fSB0b3BMYXllckdyb3VwcyAtIHZpc2libGUgbGF5ZXJzIG9mIHRvcCBtYXBcbiAqIEBwYXJhbSB7T2JqZWN0fSBtYXBTdHlsZXMgLSBhIGRpY3Rpb25hcnkgb2YgYWxsIG1hcCBzdHlsZXNcbiAqIEByZXR1cm5zIHtPYmplY3R9IGJvdHRvbU1hcFN0eWxlIHwgdG9wTWFwU3R5bGUgfCBpc1Jhc3RlclxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TWFwU3R5bGVzKHtcbiAgc3R5bGVUeXBlLFxuICB2aXNpYmxlTGF5ZXJHcm91cHMsXG4gIHRvcExheWVyR3JvdXBzLFxuICBtYXBTdHlsZXNcbn06IEdldE1hcFN0eWxlc1BhcmFtKSB7XG4gIGNvbnN0IG1hcFN0eWxlID0gbWFwU3R5bGVzW3N0eWxlVHlwZV07XG5cbiAgLy8gc3R5bGUgbWlnaHQgbm90IGJlIGxvYWRlZCB5ZXRcbiAgaWYgKCFtYXBTdHlsZSB8fCAhbWFwU3R5bGUuc3R5bGUpIHtcbiAgICByZXR1cm4ge307XG4gIH1cblxuICBjb25zdCBlZGl0YWJsZSA9IE9iamVjdC5rZXlzKHZpc2libGVMYXllckdyb3VwcykubGVuZ3RoO1xuXG4gIGNvbnN0IGJvdHRvbU1hcFN0eWxlID0gIWVkaXRhYmxlXG4gICAgPyBtYXBTdHlsZS5zdHlsZVxuICAgIDogZWRpdEJvdHRvbU1hcFN0eWxlKHtcbiAgICAgICAgaWQ6IHN0eWxlVHlwZSxcbiAgICAgICAgbWFwU3R5bGUsXG4gICAgICAgIHZpc2libGVMYXllckdyb3Vwc1xuICAgICAgfSk7XG5cbiAgY29uc3QgaGFzVG9wTGF5ZXIgPSBlZGl0YWJsZSA+IDAgJiYgT2JqZWN0LnZhbHVlcyh0b3BMYXllckdyb3Vwcykuc29tZSh2ID0+IHYpO1xuXG4gIC8vIG11dGUgdG9wIGxheWVyIGlmIG5vdCB2aXNpYmxlIGluIGJvdHRvbSBsYXllclxuICBjb25zdCB0b3BMYXllcnMgPVxuICAgIGhhc1RvcExheWVyICYmXG4gICAgT2JqZWN0LmtleXModG9wTGF5ZXJHcm91cHMpLnJlZHVjZShcbiAgICAgIChhY2N1LCBrZXkpID0+ICh7XG4gICAgICAgIC4uLmFjY3UsXG4gICAgICAgIFtrZXldOiB0b3BMYXllckdyb3Vwc1trZXldICYmIHZpc2libGVMYXllckdyb3Vwc1trZXldXG4gICAgICB9KSxcbiAgICAgIHt9IGFzIHtbaWQ6IHN0cmluZ106IExheWVyR3JvdXAgfCBib29sZWFufVxuICAgICk7XG5cbiAgY29uc3QgdG9wTWFwU3R5bGUgPSBoYXNUb3BMYXllclxuICAgID8gZWRpdFRvcE1hcFN0eWxlKHtcbiAgICAgICAgaWQ6IHN0eWxlVHlwZSxcbiAgICAgICAgbWFwU3R5bGUsXG4gICAgICAgIHZpc2libGVMYXllckdyb3VwczogdG9wTGF5ZXJzXG4gICAgICB9KVxuICAgIDogbnVsbDtcblxuICByZXR1cm4ge2JvdHRvbU1hcFN0eWxlLCB0b3BNYXBTdHlsZSwgZWRpdGFibGV9O1xufVxuXG5mdW5jdGlvbiBmaW5kTGF5ZXJGaWxsQ29sb3IobGF5ZXIpIHtcbiAgcmV0dXJuIGxheWVyICYmIGxheWVyLnBhaW50ICYmIGxheWVyLnBhaW50WydiYWNrZ3JvdW5kLWNvbG9yJ107XG59XG5cbi8vIG5lZWQgdG8gYmUgY2FyZWZ1bCBiZWNhdXNlIHNvbWUgYmFzZW1hcCBsYXllci5wYWludFsnYmFja2dyb3VuZC1jb2xvciddIHZhbHVlcyBtYXkgYmUgYW4gaW50ZXJwb2xhdGUgYXJyYXkgZXhwcmVzc2lvbiBpbnN0ZWFkIG9mIGEgY29sb3Igc3RyaW5nXG4vLyBodHRwczovL2RvY3MubWFwYm94LmNvbS9tYXBib3gtZ2wtanMvc3R5bGUtc3BlYy9sYXllcnMvI3BhaW50LWJhY2tncm91bmQtYmFja2dyb3VuZC1jb2xvclxuLy8gaHR0cHM6Ly9kb2NzLm1hcGJveC5jb20vbWFwYm94LWdsLWpzL3N0eWxlLXNwZWMvZXhwcmVzc2lvbnMvI2ludGVycG9sYXRlXG5mdW5jdGlvbiBnZXRQYWludENvbG9yKGNvbG9yKSB7XG4gIGlmIChBcnJheS5pc0FycmF5KGNvbG9yKSAmJiBjb2xvclswXSA9PT0gJ2ludGVycG9sYXRlJykge1xuICAgIC8vIGdldCBjb2xvciBvZiBmaXJzdCB6b29tIGJyZWFrXG4gICAgLy8gW1wiaW50ZXJwb2xhdGVcIiwgW1wibGluZWFyXCJdLCBbXCJ6b29tXCJdLCAxMSwgXCJoc2woMzUsIDMyJSwgOTElKVwiLCAxMywgXCJoc2woMzUsIDEyJSwgODklKVwiXVxuICAgIHJldHVybiBjb2xvcls0XTtcbiAgfVxuICByZXR1cm4gY29sb3I7XG59XG5cbmZ1bmN0aW9uIGdldDNEQnVpbGRpbmdDb2xvcihzdHlsZSk6IFJHQkNvbG9yIHtcbiAgLy8gc2V0IGJ1aWxkaW5nIGNvbG9yIHRvIGJlIHRoZSBzYW1lIGFzIHRoZSBiYWNrZ3JvdW5kIGNvbG9yLlxuICBpZiAoIXN0eWxlLnN0eWxlKSB7XG4gICAgcmV0dXJuIGhleFRvUmdiKERFRkFVTFRfQkxER19DT0xPUik7XG4gIH1cblxuICBjb25zdCBiYWNrZ3JvdW5kTGF5ZXIgPSAoc3R5bGUuc3R5bGUubGF5ZXJzIHx8IFtdKS5maW5kKCh7aWR9KSA9PiBpZCA9PT0gJ2JhY2tncm91bmQnKTtcblxuICBjb25zdCBidWlsZGluZ0xheWVyID0gKHN0eWxlLnN0eWxlLmxheWVycyB8fCBbXSkuZmluZCgoe2lkfSkgPT4gaWQubWF0Y2goL2J1aWxkaW5nLykpO1xuXG4gIGNvbnN0IGJ1aWxkaW5nQ29sb3IgPVxuICAgIGZpbmRMYXllckZpbGxDb2xvcihidWlsZGluZ0xheWVyKSB8fCBmaW5kTGF5ZXJGaWxsQ29sb3IoYmFja2dyb3VuZExheWVyKSB8fCBERUZBVUxUX0JMREdfQ09MT1I7XG5cbiAgLy8gYnJpZ2h0ZW4gb3IgZGFya2VuIGJ1aWxkaW5nIGJhc2VkIG9uIHN0eWxlXG4gIGNvbnN0IG9wZXJhdGlvbiA9IHN0eWxlLmlkLm1hdGNoKC8oPz0oZGFya3xuaWdodCkpLykgPyAnYnJpZ2h0ZXInIDogJ2Rhcmtlcic7XG5cbiAgY29uc3QgYWxwaGEgPSAwLjI7XG4gIGNvbnN0IHJnYk9iaiA9IHJnYihidWlsZGluZ0NvbG9yKVtvcGVyYXRpb25dKFthbHBoYV0pO1xuICByZXR1cm4gW3JnYk9iai5yLCByZ2JPYmouZywgcmdiT2JqLmJdO1xufVxuXG5mdW5jdGlvbiBnZXRCYWNrZ3JvdW5kQ29sb3JGcm9tU3R5bGVCYXNlTGF5ZXIoXG4gIHN0eWxlOiBCYXNlTWFwU3R5bGUsXG4gIGJhY2t1cEJhY2tncm91bmRDb2xvcjogUkdCQ29sb3Jcbik6IFJHQkNvbG9yIHtcbiAgaWYgKCFzdHlsZS5zdHlsZSkge1xuICAgIHJldHVybiBjb2xvck1heWJlVG9SR0IoYmFja3VwQmFja2dyb3VuZENvbG9yKSB8fCBiYWNrdXBCYWNrZ3JvdW5kQ29sb3I7XG4gIH1cblxuICAvLyBAdHMtZXhwZWN0LWVycm9yIHN0eWxlLnN0eWxlIG5vdCB0eXBlZFxuICBjb25zdCBiYXNlTGF5ZXIgPSAoc3R5bGUuc3R5bGUubGF5ZXJzIHx8IFtdKS5maW5kKCh7aWR9KSA9PlxuICAgIEJBU0VfTUFQX0JBQ0tHUk9VTkRfTEFZRVJfSURTLmluY2x1ZGVzKGlkKVxuICApO1xuXG4gIGNvbnN0IGJhY2tncm91bmRDb2xvck9mQmFzZUxheWVyID0gZ2V0UGFpbnRDb2xvcihmaW5kTGF5ZXJGaWxsQ29sb3IoYmFzZUxheWVyKSk7XG5cbiAgY29uc3QgbmV3QmFja2dyb3VuZENvbG9yID1cbiAgICB0eXBlb2YgYmFja2dyb3VuZENvbG9yT2ZCYXNlTGF5ZXIgPT09ICdzdHJpbmcnXG4gICAgICA/IGJhY2tncm91bmRDb2xvck9mQmFzZUxheWVyXG4gICAgICA6IGJhY2t1cEJhY2tncm91bmRDb2xvcjtcblxuICBjb25zdCBuZXdCYWNrZ3JvdW5kQ29sb3JBc1JHQkFycmF5ID0gY29sb3JNYXliZVRvUkdCKG5ld0JhY2tncm91bmRDb2xvcilcbiAgICAvLyBpZiBuZXdCYWNrZ3JvdW5kQ29sb3Igd2FzIGluIHN0cmluZyBIU0wgZm9ybWF0IGl0IGNhbiBpbnRyb2R1Y2UgUkdCIG51bWJlcnMgd2l0aCBkZWNpbWFscyxcbiAgICAvLyB3aGljaCBtYXkgcmVuZGVyIHRoZSBiYWNrZ3JvdW5kLWNvbG9yIENTUyBvZiB0aGUgPFN0eWxlZE1hcD4gY29udGFpbmVyIGluY29ycmVjdGx5IHdoZW4gdXNpbmcgb3VyIG93biBjb2xvciB1dGlscyBgcmdiVG9IZXgoKWBcbiAgICAvLyBzbyB3ZSBhdHRlbXB0IHRvIHJvdW5kIHRvIG5lYXJlc3QgaW50ZWdlciBoZXJlXG4gICAgPy5tYXAoY2hhbm5lbE51bWJlciA9PiBNYXRoLnJvdW5kKGNoYW5uZWxOdW1iZXIpKSBhcyBSR0JDb2xvciB8IG51bGw7XG5cbiAgcmV0dXJuIG5ld0JhY2tncm91bmRDb2xvckFzUkdCQXJyYXkgfHwgYmFja3VwQmFja2dyb3VuZENvbG9yO1xufVxuXG4vLyBkZXRlcm1pbmUgbmV3IGJhY2tncm91bmRDb2xvciBmcm9tIGVpdGhlciBwcmV2aW91cyBzdGF0ZSBiYXNlbWFwIHN0eWxlLCBwcmV2aW91cyBzdGF0ZSBiYWNrZ3JvdW5kQ29sb3IsIG9yIHRoZSBERUZBVUxUX0JBQ0tHUk9VTkRfQ09MT1JcbmZ1bmN0aW9uIGdldEJhY2tncm91bmRDb2xvcihwcmV2aW91c1N0YXRlOiBNYXBTdHlsZSwgc3R5bGVUeXBlOiBzdHJpbmcpIHtcbiAgY29uc3QgcHJldmlvdXNTdGF0ZU1hcFN0eWxlID0gcHJldmlvdXNTdGF0ZS5tYXBTdHlsZXNbcHJldmlvdXNTdGF0ZS5zdHlsZVR5cGVdO1xuICBjb25zdCBiYWNrdXBCYWNrZ3JvdW5kQ29sb3IgPSBwcmV2aW91c1N0YXRlLmJhY2tncm91bmRDb2xvciB8fCBERUZBVUxUX0JBQ0tHUk9VTkRfQ09MT1I7XG4gIGNvbnN0IGJhY2tncm91bmRDb2xvciA9XG4gICAgc3R5bGVUeXBlID09PSBOT19NQVBfSURcbiAgICAgID8gLy8gaWYgdGhlIHN0eWxlIGhhcyBzd2l0Y2hlZCB0byB0aGUgXCJubyBiYXNlbWFwXCIgc3R5bGUsXG4gICAgICAgIC8vIGF0dGVtcHQgdG8gZGV0ZWN0IGJhY2tncm91bmRDb2xvciBvZiB0aGUgcHJldmlvdXMgYmFzZW1hcCBpZiBpdCB3YXMgYSBtYXBib3ggYmFzZW1hcFxuICAgICAgICAvLyBhbmQgc2V0IGl0IGFzIHRoZSBcIm5vIGJhc2VtYXBcIiBiYWNrZ3JvdW5kQ29sb3JcbiAgICAgICAgZ2V0QmFja2dyb3VuZENvbG9yRnJvbVN0eWxlQmFzZUxheWVyKHByZXZpb3VzU3RhdGVNYXBTdHlsZSwgYmFja3VwQmFja2dyb3VuZENvbG9yKVxuICAgICAgOiAvLyBvdGhlcndpc2UgbGVhdmUgaXQgYWxvbmUgYW5kIHJlbHkgb24gdGhlIHByZXZpb3VzIHN0YXRlJ3MgcHJlZXhpc3RpbmcgYmFja2dyb3VuZENvbG9yXG4gICAgICAgIC8vIG9yIERFRkFVTFRfQkFDS0dST1VORF9DT0xPUiBhcyBhIGxhc3QgcmVzb3J0XG4gICAgICAgIGJhY2t1cEJhY2tncm91bmRDb2xvcjtcblxuICByZXR1cm4gYmFja2dyb3VuZENvbG9yO1xufVxuXG5mdW5jdGlvbiBnZXRMYXllckdyb3Vwc0Zyb21TdHlsZShzdHlsZSkge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheShzdHlsZT8ubGF5ZXJzKVxuICAgID8gREVGQVVMVF9MQVlFUl9HUk9VUFMuZmlsdGVyKGxnID0+IHN0eWxlLmxheWVycy5maWx0ZXIobGcuZmlsdGVyKS5sZW5ndGgpXG4gICAgOiBbXTtcbn1cblxuLy8gVXBkYXRlcnNcblxuLyoqXG4gKiBAbWVtYmVyb2YgbWFwU3R5bGVVcGRhdGVyc1xuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgcmVxdWVzdE1hcFN0eWxlc1VwZGF0ZXIgPSAoXG4gIHN0YXRlOiBNYXBTdHlsZSxcbiAge3BheWxvYWQ6IHttYXBTdHlsZXMsIG9uU3VjY2Vzc319OiBNYXBTdHlsZUFjdGlvbnMuUmVxdWVzdE1hcFN0eWxlc1VwZGF0ZXJBY3Rpb25cbik6IE1hcFN0eWxlID0+IHtcbiAgY29uc3QgdG9Mb2FkID0gT2JqZWN0LmtleXMobWFwU3R5bGVzKS5yZWR1Y2UoXG4gICAgKGFjY3UsIGlkKSA9PiAoe1xuICAgICAgLi4uYWNjdSxcbiAgICAgIC4uLighc3RhdGUuaXNMb2FkaW5nW2lkXSA/IHtbaWRdOiBtYXBTdHlsZXNbaWRdfSA6IHt9KVxuICAgIH0pLFxuICAgIHt9XG4gICk7XG4gIGNvbnN0IGxvYWRNYXBTdHlsZVRhc2tzID0gZ2V0TG9hZE1hcFN0eWxlVGFza3MoXG4gICAgdG9Mb2FkLFxuICAgIHN0YXRlLm1hcGJveEFwaUFjY2Vzc1Rva2VuLFxuICAgIHN0YXRlLm1hcGJveEFwaVVybCxcbiAgICBvblN1Y2Nlc3NcbiAgKTtcblxuICBjb25zdCBpc0xvYWRpbmcgPSBPYmplY3Qua2V5cyh0b0xvYWQpLnJlZHVjZShcbiAgICAoYWNjdSwga2V5KSA9PiAoe1xuICAgICAgLi4uYWNjdSxcbiAgICAgIFtrZXldOiB0cnVlXG4gICAgfSksXG4gICAge31cbiAgKTtcbiAgY29uc3QgbmV4dFN0YXRlID0ge1xuICAgIC4uLnN0YXRlLFxuICAgIGlzTG9hZGluZ1xuICB9O1xuICByZXR1cm4gd2l0aFRhc2sobmV4dFN0YXRlLCBsb2FkTWFwU3R5bGVUYXNrcyk7XG59O1xuXG4vKipcbiAqIFByb3BhZ2F0ZSBgbWFwU3R5bGVgIHJlZHVjZXIgd2l0aCBgbWFwYm94QXBpQWNjZXNzVG9rZW5gIGFuZCBgbWFwU3R5bGVzUmVwbGFjZURlZmF1bHRgLlxuICogaWYgbWFwU3R5bGVzUmVwbGFjZURlZmF1bHQgaXMgdHJ1ZSBtYXBTdHlsZXMgaXMgZW1wdGllZDsgbG9hZE1hcFN0eWxlc1VwZGF0ZXIoKSB3aWxsXG4gKiBwb3B1bGF0ZSBtYXBTdHlsZXMuXG4gKlxuICogQG1lbWJlcm9mIG1hcFN0eWxlVXBkYXRlcnNcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IGluaXRNYXBTdHlsZVVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBNYXBTdHlsZSxcbiAge1xuICAgIHBheWxvYWQgPSB7fVxuICB9OiB7XG4gICAgdHlwZT86IHR5cGVvZiBBY3Rpb25UeXBlcy5JTklUO1xuICAgIHBheWxvYWQ6IEtlcGxlckdsSW5pdFBheWxvYWQ7XG4gIH1cbik6IE1hcFN0eWxlID0+ICh7XG4gIC4uLnN0YXRlLFxuICAvLyBzYXZlIG1hcGJveCBhY2Nlc3MgdG9rZW4gdG8gbWFwIHN0eWxlIHN0YXRlXG4gIG1hcGJveEFwaUFjY2Vzc1Rva2VuOiBwYXlsb2FkLm1hcGJveEFwaUFjY2Vzc1Rva2VuIHx8IHN0YXRlLm1hcGJveEFwaUFjY2Vzc1Rva2VuLFxuICBtYXBib3hBcGlVcmw6IHBheWxvYWQubWFwYm94QXBpVXJsIHx8IHN0YXRlLm1hcGJveEFwaVVybCxcbiAgbWFwU3R5bGVzOiAhcGF5bG9hZC5tYXBTdHlsZXNSZXBsYWNlRGVmYXVsdCA/IHN0YXRlLm1hcFN0eWxlcyA6IHt9LFxuICBtYXBTdHlsZXNSZXBsYWNlRGVmYXVsdDogcGF5bG9hZC5tYXBTdHlsZXNSZXBsYWNlRGVmYXVsdCB8fCBmYWxzZVxufSk7XG4vLyB9KTtcblxuLyoqXG4gKiBVcGRhdGUgYHZpc2libGVMYXllckdyb3Vwc2B0byBjaGFuZ2UgbGF5ZXIgZ3JvdXAgdmlzaWJpbGl0eVxuICogQG1lbWJlcm9mIG1hcFN0eWxlVXBkYXRlcnNcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IG1hcENvbmZpZ0NoYW5nZVVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBNYXBTdHlsZSxcbiAgYWN0aW9uOiBNYXBTdHlsZUFjdGlvbnMuTWFwQ29uZmlnQ2hhbmdlVXBkYXRlckFjdGlvblxuKTogTWFwU3R5bGUgPT4ge1xuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIC4uLmFjdGlvbi5wYXlsb2FkLFxuICAgIC4uLmdldE1hcFN0eWxlcyh7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIC4uLmFjdGlvbi5wYXlsb2FkXG4gICAgfSlcbiAgfTtcbn07XG5cbmNvbnN0IGhhc1N0eWxlT2JqZWN0ID0gc3R5bGUgPT4gaXNQbGFpbk9iamVjdChzdHlsZT8uc3R5bGUpO1xuXG4vKipcbiAqIENoYW5nZSB0byBhbm90aGVyIG1hcCBzdHlsZS4gVGhlIHNlbGVjdGVkIHN0eWxlIHNob3VsZCBhbHJlYWR5IGJlZW4gbG9hZGVkIGludG8gYG1hcFN0eWxlLm1hcFN0eWxlc2BcbiAqIEBtZW1iZXJvZiBtYXBTdHlsZVVwZGF0ZXJzXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBtYXBTdHlsZUNoYW5nZVVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBNYXBTdHlsZSxcbiAge3BheWxvYWQ6IHtzdHlsZVR5cGUsIG9uU3VjY2Vzc319OiBNYXBTdHlsZUFjdGlvbnMuTWFwU3R5bGVDaGFuZ2VVcGRhdGVyQWN0aW9uXG4pOiBNYXBTdHlsZSA9PiB7XG4gIGlmIChcbiAgICAvLyB3ZSBtaWdodCBub3QgaGF2ZSByZWNlaXZlZCB0aGUgc3R5bGUgeWV0XG4gICAgIXN0YXRlLm1hcFN0eWxlc1tzdHlsZVR5cGVdIHx8XG4gICAgLy8gb3IgaWYgaXQgaXMgYSBtYW5hZ2VkIGN1c3RvbSBzdHlsZSBhc3NldFxuICAgIC8vIGFuZCBpZiBpdCBoYXMgbm90IGJlZW4gaHlkcmF0ZWQgd2l0aCBVUkwgaW5mbyB5ZXQgKGR1cmluZyBhcHAgZmlyc3QgaW5pdGlhbGl6YXRpb24pXG4gICAgLy8gYW5kIGl0IGRvZXMgbm90IGhhdmUgYSBzdHlsZSBvYmplY3QgKGR1cmluZyBhZGRpbmcgYSBjdXN0b20gc3R5bGUpXG4gICAgKHN0YXRlLm1hcFN0eWxlc1tzdHlsZVR5cGVdPy5jdXN0b20gPT09ICdNQU5BR0VEJyAmJlxuICAgICAgIXN0YXRlLm1hcFN0eWxlc1tzdHlsZVR5cGVdPy51cmwgJiZcbiAgICAgICFoYXNTdHlsZU9iamVjdChzdGF0ZS5tYXBTdHlsZXNbc3R5bGVUeXBlXSkpXG4gICkge1xuICAgIHJldHVybiBzdGF0ZTtcbiAgfVxuXG4gIGlmICghaGFzU3R5bGVPYmplY3Qoc3RhdGUubWFwU3R5bGVzW3N0eWxlVHlwZV0pKSB7XG4gICAgLy8gc3R5bGUgaGFzbid0IGxvYWRlZCB5ZXRcbiAgICByZXR1cm4gcmVxdWVzdE1hcFN0eWxlc1VwZGF0ZXIoXG4gICAgICB7XG4gICAgICAgIC4uLnN0YXRlLFxuICAgICAgICBzdHlsZVR5cGVcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHBheWxvYWQ6IHtcbiAgICAgICAgICBtYXBTdHlsZXM6IHtcbiAgICAgICAgICAgIFtzdHlsZVR5cGVdOiBzdGF0ZS5tYXBTdHlsZXNbc3R5bGVUeXBlXVxuICAgICAgICAgIH0sXG4gICAgICAgICAgb25TdWNjZXNzXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgY29uc3QgZGVmYXVsdExHVmlzaWJpbGl0eSA9IGdldERlZmF1bHRMYXllckdyb3VwVmlzaWJpbGl0eShzdGF0ZS5tYXBTdHlsZXNbc3R5bGVUeXBlXSk7XG5cbiAgY29uc3QgdmlzaWJsZUxheWVyR3JvdXBzID0gbWVyZ2VMYXllckdyb3VwVmlzaWJpbGl0eShcbiAgICBkZWZhdWx0TEdWaXNpYmlsaXR5LFxuICAgIHN0YXRlLnZpc2libGVMYXllckdyb3Vwc1xuICApO1xuXG4gIGNvbnN0IHRocmVlREJ1aWxkaW5nQ29sb3I6IFJHQkNvbG9yID0gc3RhdGUuY3VzdG9tM0RCdWlsZGluZ0NvbG9yXG4gICAgPyBzdGF0ZS50aHJlZURCdWlsZGluZ0NvbG9yXG4gICAgOiBnZXQzREJ1aWxkaW5nQ29sb3Ioc3RhdGUubWFwU3R5bGVzW3N0eWxlVHlwZV0pO1xuXG4gIC8vIGRldGVybWluZSBuZXcgYmFja2dyb3VuZENvbG9yIGZyb20gZWl0aGVyIHByZXZpb3VzIHN0YXRlIGJhc2VtYXAgc3R5bGUsIHByZXZpb3VzIHN0YXRlIGJhY2tncm91bmRDb2xvciwgb3IgdGhlIERFRkFVTFRfQkFDS0dST1VORF9DT0xPUlxuICBjb25zdCBiYWNrZ3JvdW5kQ29sb3IgPSBnZXRCYWNrZ3JvdW5kQ29sb3Ioc3RhdGUsIHN0eWxlVHlwZSk7XG5cbiAgcmV0dXJuIHtcbiAgICAuLi5zdGF0ZSxcbiAgICBzdHlsZVR5cGUsXG4gICAgdmlzaWJsZUxheWVyR3JvdXBzLFxuICAgIHRocmVlREJ1aWxkaW5nQ29sb3IsXG4gICAgYmFja2dyb3VuZENvbG9yLFxuICAgIC4uLmdldE1hcFN0eWxlcyh7XG4gICAgICAuLi5zdGF0ZSxcbiAgICAgIHZpc2libGVMYXllckdyb3VwcyxcbiAgICAgIHN0eWxlVHlwZVxuICAgIH0pXG4gIH07XG59O1xuXG4vKipcbiAqIENhbGxiYWNrIHdoZW4gbG9hZCBtYXAgc3R5bGUgc3VjY2Vzc1xuICogQG1lbWJlcm9mIG1hcFN0eWxlVXBkYXRlcnNcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IGxvYWRNYXBTdHlsZXNVcGRhdGVyID0gKFxuICBzdGF0ZTogTWFwU3R5bGUsXG4gIGFjdGlvbjogTWFwU3R5bGVBY3Rpb25zLkxvYWRNYXBTdHlsZXNVcGRhdGVyQWN0aW9uXG4pOiBNYXBTdHlsZSA9PiB7XG4gIGNvbnN0IHtuZXdTdHlsZXMsIG9uU3VjY2Vzc30gPSBhY3Rpb24ucGF5bG9hZCB8fCB7fTtcblxuICBjb25zdCBhZGRMYXllckdyb3VwcyA9IE9iamVjdC5rZXlzKG5ld1N0eWxlcykucmVkdWNlKFxuICAgIChhY2N1LCBpZCkgPT4gKHtcbiAgICAgIC4uLmFjY3UsXG4gICAgICBbaWRdOiB7XG4gICAgICAgIC4uLm5ld1N0eWxlc1tpZF0sXG4gICAgICAgIGxheWVyR3JvdXBzOiBuZXdTdHlsZXNbaWRdLmxheWVyR3JvdXBzIHx8IGdldExheWVyR3JvdXBzRnJvbVN0eWxlKG5ld1N0eWxlc1tpZF0uc3R5bGUpXG4gICAgICB9XG4gICAgfSksXG4gICAge31cbiAgKTtcbiAgLy8gcmVzZXQgaXNMb2FkaW5nXG4gIGNvbnN0IGlzTG9hZGluZyA9IE9iamVjdC5rZXlzKHN0YXRlLmlzTG9hZGluZykucmVkdWNlKFxuICAgIChhY2N1LCBrZXkpID0+ICh7XG4gICAgICAuLi5hY2N1LFxuICAgICAgLi4uKHN0YXRlLmlzTG9hZGluZ1trZXldICYmIGhhc1N0eWxlT2JqZWN0KG5ld1N0eWxlc1trZXldKVxuICAgICAgICA/IHtba2V5XTogZmFsc2V9XG4gICAgICAgIDoge1trZXldOiBzdGF0ZS5pc0xvYWRpbmdba2V5XX0pXG4gICAgfSksXG4gICAge31cbiAgKTtcbiAgLy8gYWRkIG5ldyBzdHlsZXMgdG8gc3RhdGVcbiAgY29uc3QgbmV3U3RhdGUgPSB7XG4gICAgLi4uc3RhdGUsXG4gICAgaXNMb2FkaW5nLFxuICAgIG1hcFN0eWxlczoge1xuICAgICAgLi4uc3RhdGUubWFwU3R5bGVzLFxuICAgICAgLi4uYWRkTGF5ZXJHcm91cHNcbiAgICB9XG4gIH07XG5cbiAgY29uc3QgdGFza3MgPSBjcmVhdGVBY3Rpb25UYXNrKG9uU3VjY2Vzcywge3N0eWxlVHlwZTogc3RhdGUuc3R5bGVUeXBlfSk7XG5cbiAgY29uc3QgbmV4dFN0YXRlID0gbmV3U3R5bGVzW3N0YXRlLnN0eWxlVHlwZV1cbiAgICA/IG1hcFN0eWxlQ2hhbmdlVXBkYXRlcihuZXdTdGF0ZSwge3BheWxvYWQ6IHtzdHlsZVR5cGU6IHN0YXRlLnN0eWxlVHlwZX19KVxuICAgIDogbmV3U3RhdGU7XG5cbiAgcmV0dXJuIHRhc2tzID8gd2l0aFRhc2sobmV4dFN0YXRlLCB0YXNrcykgOiBuZXh0U3RhdGU7XG59O1xuXG5mdW5jdGlvbiBjcmVhdGVBY3Rpb25UYXNrKGFjdGlvbiwgcGF5bG9hZCkge1xuICBpZiAodHlwZW9mIGFjdGlvbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiBBQ1RJT05fVEFTSygpLm1hcChfID0+IGFjdGlvbihwYXlsb2FkKSk7XG4gIH1cblxuICByZXR1cm4gbnVsbDtcbn1cblxuLyoqXG4gKiBDYWxsYmFjayB3aGVuIGxvYWQgbWFwIHN0eWxlIGVycm9yXG4gKiBAbWVtYmVyb2YgbWFwU3R5bGVVcGRhdGVyc1xuICogQHB1YmxpY1xuICovXG4vLyBkbyBub3RoaW5nIGZvciBub3csIGlmIGRpZG4ndCBsb2FkLCBza2lwIGl0XG5leHBvcnQgY29uc3QgbG9hZE1hcFN0eWxlRXJyVXBkYXRlciA9IChcbiAgc3RhdGU6IE1hcFN0eWxlLFxuICB7cGF5bG9hZDoge2lkcywgZXJyb3J9fTogTWFwU3R5bGVBY3Rpb25zLkxvYWRNYXBTdHlsZUVyclVwZGF0ZXJBY3Rpb25cbik6IE1hcFN0eWxlID0+IHtcbiAgQ29uc29sZS5lcnJvcihlcnJvcik7XG4gIC8vIHJlc2V0IGlzTG9hZGluZ1xuICBjb25zdCBpc0xvYWRpbmcgPSBPYmplY3Qua2V5cyhzdGF0ZS5pc0xvYWRpbmcpLnJlZHVjZShcbiAgICAoYWNjdSwga2V5KSA9PiAoe1xuICAgICAgLi4uYWNjdSxcbiAgICAgIC4uLihzdGF0ZS5pc0xvYWRpbmdba2V5XSAmJiAoaWRzIHx8IFtdKS5pbmNsdWRlcyhrZXkpXG4gICAgICAgID8ge1trZXldOiBmYWxzZX1cbiAgICAgICAgOiB7W2tleV06IHN0YXRlLmlzTG9hZGluZ1trZXldfSlcbiAgICB9KSxcbiAgICB7fVxuICApO1xuXG4gIHJldHVybiB7XG4gICAgLi4uc3RhdGUsXG4gICAgaXNMb2FkaW5nXG4gIH07XG59O1xuXG4vKipcbiAqIExvYWQgbWFwIHN0eWxlIG9iamVjdCB3aGVuIHBhc3MgaW4gc2F2ZWQgbWFwIGNvbmZpZ1xuICogQG1lbWJlcm9mIG1hcFN0eWxlVXBkYXRlcnNcbiAqIEBwYXJhbSBzdGF0ZSBgbWFwU3R5bGVgXG4gKiBAcGFyYW0gYWN0aW9uXG4gKiBAcGFyYW0gYWN0aW9uLnBheWxvYWQgc2F2ZWQgbWFwIGNvbmZpZyBge21hcFN0eWxlLCB2aXNTdGF0ZSwgbWFwU3RhdGV9YFxuICogQHJldHVybnMgbmV4dFN0YXRlIG9yIGByZWFjdC1wYW1gIHRhc2tzIHRvIGxvYWQgbWFwIHN0eWxlIG9iamVjdFxuICovXG5leHBvcnQgY29uc3QgcmVjZWl2ZU1hcENvbmZpZ1VwZGF0ZXIgPSAoXG4gIHN0YXRlOiBNYXBTdHlsZSxcbiAge1xuICAgIHBheWxvYWQ6IHtjb25maWd9XG4gIH06IHtcbiAgICB0eXBlPzogdHlwZW9mIEFjdGlvblR5cGVzLlJFQ0VJVkVfTUFQX0NPTkZJRztcbiAgICBwYXlsb2FkOiBSZWNlaXZlTWFwQ29uZmlnUGF5bG9hZDtcbiAgfVxuKTogTWFwU3R5bGUgPT4ge1xuICBjb25zdCB7bWFwU3R5bGV9ID0gY29uZmlnIHx8IHt9O1xuXG4gIGlmICghbWFwU3R5bGUpIHtcbiAgICByZXR1cm4gc3RhdGU7XG4gIH1cblxuICAvLyBtZXJnZSBkZWZhdWx0IG1hcFN0eWxlc1xuICBjb25zdCBtZXJnZWQgPSBtYXBTdHlsZS5tYXBTdHlsZXNcbiAgICA/IHtcbiAgICAgICAgLi4ubWFwU3R5bGUsXG4gICAgICAgIG1hcFN0eWxlczoge1xuICAgICAgICAgIC4uLm1hcFN0eWxlLm1hcFN0eWxlcyxcbiAgICAgICAgICAuLi5zdGF0ZS5tYXBTdHlsZXNcbiAgICAgICAgfVxuICAgICAgfVxuICAgIDogbWFwU3R5bGU7XG5cbiAgLy8gc2V0IGN1c3RvbTNEQnVpbGRpbmdDb2xvcjogdHJ1ZSBpZiBtYXBTdHlsZSBjb250YWlucyB0aHJlZURCdWlsZGluZ0NvbG9yXG4gIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgbWVyZ2VkLmN1c3RvbTNEQnVpbGRpbmdDb2xvciA9XG4gICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgIEJvb2xlYW4obWFwU3R5bGUudGhyZWVEQnVpbGRpbmdDb2xvcikgfHwgbWVyZ2VkLmN1c3RvbTNEQnVpbGRpbmdDb2xvcjtcbiAgY29uc3QgbmV3U3RhdGUgPSBtYXBDb25maWdDaGFuZ2VVcGRhdGVyKHN0YXRlLCB7cGF5bG9hZDogbWVyZ2VkfSk7XG5cbiAgcmV0dXJuIG1hcFN0eWxlQ2hhbmdlVXBkYXRlcihuZXdTdGF0ZSwge3BheWxvYWQ6IHtzdHlsZVR5cGU6IG5ld1N0YXRlLnN0eWxlVHlwZX19KTtcbn07XG5cbmZ1bmN0aW9uIGdldExvYWRNYXBTdHlsZVRhc2tzKG1hcFN0eWxlcywgbWFwYm94QXBpQWNjZXNzVG9rZW4sIG1hcGJveEFwaVVybCwgb25TdWNjZXNzKSB7XG4gIHJldHVybiBbXG4gICAgVGFzay5hbGwoXG4gICAgICBPYmplY3QudmFsdWVzKG1hcFN0eWxlcylcbiAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgICAubWFwKCh7aWQsIHVybCwgYWNjZXNzVG9rZW59KSA9PiAoe1xuICAgICAgICAgIGlkLFxuICAgICAgICAgIHVybDogaXNWYWxpZFN0eWxlVXJsKHVybClcbiAgICAgICAgICAgID8gZ2V0U3R5bGVEb3dubG9hZFVybCh1cmwsIGFjY2Vzc1Rva2VuIHx8IG1hcGJveEFwaUFjY2Vzc1Rva2VuLCBtYXBib3hBcGlVcmwpXG4gICAgICAgICAgICA6IHVybFxuICAgICAgICB9KSlcbiAgICAgICAgLm1hcChMT0FEX01BUF9TVFlMRV9UQVNLKVxuICAgICkuYmltYXAoXG4gICAgICAvLyBzdWNjZXNzXG4gICAgICByZXN1bHRzID0+XG4gICAgICAgIGxvYWRNYXBTdHlsZXMoXG4gICAgICAgICAgcmVzdWx0cy5yZWR1Y2UoXG4gICAgICAgICAgICAoYWNjdSwge2lkLCBzdHlsZX0pID0+ICh7XG4gICAgICAgICAgICAgIC4uLmFjY3UsXG4gICAgICAgICAgICAgIFtpZF06IHtcbiAgICAgICAgICAgICAgICAuLi5tYXBTdHlsZXNbaWRdLFxuICAgICAgICAgICAgICAgIHN0eWxlXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAge31cbiAgICAgICAgICApLFxuICAgICAgICAgIG9uU3VjY2Vzc1xuICAgICAgICApLFxuICAgICAgLy8gZXJyb3JcbiAgICAgIGVyciA9PiBsb2FkTWFwU3R5bGVFcnIoT2JqZWN0LmtleXMobWFwU3R5bGVzKSwgZXJyKVxuICAgIClcbiAgXTtcbn1cbi8qKlxuICogUmVzZXQgbWFwIHN0eWxlIGNvbmZpZyB0byBpbml0aWFsIHN0YXRlXG4gKiBAbWVtYmVyb2YgbWFwU3R5bGVVcGRhdGVyc1xuICogQHBhcmFtIHN0YXRlIGBtYXBTdHlsZWBcbiAqIEByZXR1cm5zIG5leHRTdGF0ZVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgcmVzZXRNYXBDb25maWdNYXBTdHlsZVVwZGF0ZXIgPSAoc3RhdGU6IE1hcFN0eWxlKTogTWFwU3R5bGUgPT4ge1xuICBjb25zdCBlbXB0eUNvbmZpZyA9IHtcbiAgICAuLi5JTklUSUFMX01BUF9TVFlMRSxcbiAgICBtYXBib3hBcGlBY2Nlc3NUb2tlbjogc3RhdGUubWFwYm94QXBpQWNjZXNzVG9rZW4sXG4gICAgbWFwYm94QXBpVXJsOiBzdGF0ZS5tYXBib3hBcGlVcmwsXG4gICAgbWFwU3R5bGVzUmVwbGFjZURlZmF1bHQ6IHN0YXRlLm1hcFN0eWxlc1JlcGxhY2VEZWZhdWx0LFxuICAgIC4uLnN0YXRlLmluaXRpYWxTdGF0ZSxcbiAgICBtYXBTdHlsZXM6IHN0YXRlLm1hcFN0eWxlcyxcbiAgICBpbml0aWFsU3RhdGU6IHN0YXRlLmluaXRpYWxTdGF0ZVxuICB9O1xuXG4gIHJldHVybiBtYXBTdHlsZUNoYW5nZVVwZGF0ZXIoZW1wdHlDb25maWcsIHtwYXlsb2FkOiB7c3R5bGVUeXBlOiBlbXB0eUNvbmZpZy5zdHlsZVR5cGV9fSk7XG59O1xuXG4vKipcbiAqIENhbGxiYWNrIHdoZW4gYSBjdXN0b20gbWFwIHN0eWxlIG9iamVjdCBpcyByZWNlaXZlZFxuICogQG1lbWJlcm9mIG1hcFN0eWxlVXBkYXRlcnNcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IGxvYWRDdXN0b21NYXBTdHlsZVVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBNYXBTdHlsZSxcbiAge3BheWxvYWQ6IHtpY29uLCBzdHlsZSwgZXJyb3J9fTogTWFwU3R5bGVBY3Rpb25zLkxvYWRDdXN0b21NYXBTdHlsZVVwZGF0ZXJBY3Rpb25cbik6IE1hcFN0eWxlID0+ICh7XG4gIC4uLnN0YXRlLFxuICAvLyBAdHMtZXhwZWN0LWVycm9yXG4gIGlucHV0U3R5bGU6IHtcbiAgICAuLi5zdGF0ZS5pbnB1dFN0eWxlLFxuICAgIC8vIHN0eWxlIGpzb24gYW5kIGljb24gd2lsbCBsb2FkIGFzeW5jaHJvbm91c2x5XG4gICAgLi4uKHN0eWxlXG4gICAgICA/IHtcbiAgICAgICAgICBpZDpcbiAgICAgICAgICAgIHN0YXRlLmlucHV0U3R5bGUuY3VzdG9tID09PSAnTUFOQUdFRCdcbiAgICAgICAgICAgICAgPyBzdGF0ZS5pbnB1dFN0eWxlLmlkIC8vIGN1c3RvbSBNQU5BR0VEIHR5cGVcbiAgICAgICAgICAgICAgOiAvLyBAdHMtZXhwZWN0LWVycm9yXG4gICAgICAgICAgICAgICAgc3R5bGUuaWQgfHwgZ2VuZXJhdGVIYXNoSWQoKSwgLy8gY3VzdG9tIExPQ0FMIHR5cGVcbiAgICAgICAgICAvLyBtYWtlIGEgY29weSBvZiB0aGUgc3R5bGUgb2JqZWN0XG4gICAgICAgICAgc3R5bGU6IGNsb25lRGVlcChzdHlsZSksXG4gICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICAgICAgICAgIGxhYmVsOiBzdGF0ZS5pbnB1dFN0eWxlLmxhYmVsIHx8IHN0eWxlLm5hbWUsXG4gICAgICAgICAgLy8gZ2F0aGVyaW5nIGxheWVyIGdyb3VwIGluZm8gZnJvbSBzdHlsZSBqc29uXG4gICAgICAgICAgbGF5ZXJHcm91cHM6IGdldExheWVyR3JvdXBzRnJvbVN0eWxlKHN0eWxlKVxuICAgICAgICB9XG4gICAgICA6IHt9KSxcbiAgICAuLi4oaWNvbiA/IHtpY29ufSA6IHt9KSxcbiAgICAuLi4oZXJyb3IgPyB7ZXJyb3J9IDoge30pXG4gIH1cbn0pO1xuXG4vKipcbiAqIElucHV0IGEgY3VzdG9tIG1hcCBzdHlsZSBvYmplY3RcbiAqIEBtZW1iZXJvZiBtYXBTdHlsZVVwZGF0ZXJzXG4gKiBAcHVibGljXG4gKi9cbmV4cG9ydCBjb25zdCBpbnB1dE1hcFN0eWxlVXBkYXRlciA9IChcbiAgc3RhdGU6IE1hcFN0eWxlLFxuICB7cGF5bG9hZDoge2lucHV0U3R5bGUsIG1hcFN0YXRlfX06IE1hcFN0eWxlQWN0aW9ucy5JbnB1dE1hcFN0eWxlVXBkYXRlckFjdGlvblxuKTogTWFwU3R5bGUgPT4ge1xuICBjb25zdCB1cGRhdGVkID0ge1xuICAgIC4uLnN0YXRlLmlucHV0U3R5bGUsXG4gICAgLi4uaW5wdXRTdHlsZVxuICB9O1xuXG4gIC8vIGRpZmZlcmVudGlhdGUgYmV0d2VlbiBlaXRoZXIgYSB1cmwgdG8gaG9zdGVkIHN0eWxlIGpzb24gdGhhdCBuZWVkcyBhbiBpY29uIHVybCxcbiAgLy8gb3IgYW4gaWNvbiBhbHJlYWR5IGF2YWlsYWJsZSBjbGllbnQtc2lkZSBhcyBhIGRhdGEgdXJpXG4gIGNvbnN0IGlzVmFsaWRVcmwgPSBpc1ZhbGlkU3R5bGVVcmwodXBkYXRlZC51cmwpO1xuICBjb25zdCBpc1VwZGF0ZWRJY29uRGF0YVVyaSA9IHVwZGF0ZWQuaWNvbj8uc3RhcnRzV2l0aCgnZGF0YTppbWFnZScpO1xuICBjb25zdCBpc1ZhbGlkID0gaXNWYWxpZFVybCB8fCBCb29sZWFuKHVwZGF0ZWQudXBsb2FkZWRGaWxlKTtcblxuICBjb25zdCBpY29uID1cbiAgICBpc1ZhbGlkVXJsICYmICFpc1VwZGF0ZWRJY29uRGF0YVVyaVxuICAgICAgPyBnZXRTdHlsZUltYWdlSWNvbih7XG4gICAgICAgICAgbWFwU3RhdGUsXG4gICAgICAgICAgc3R5bGVVcmw6IHVwZGF0ZWQudXJsIHx8ICcnLFxuICAgICAgICAgIG1hcGJveEFwaUFjY2Vzc1Rva2VuOiB1cGRhdGVkLmFjY2Vzc1Rva2VuIHx8IHN0YXRlLm1hcGJveEFwaUFjY2Vzc1Rva2VuIHx8ICcnLFxuICAgICAgICAgIG1hcGJveEFwaVVybDogc3RhdGUubWFwYm94QXBpVXJsIHx8IERFRkFVTFRfTUFQQk9YX0FQSV9VUkxcbiAgICAgICAgfSlcbiAgICAgIDogdXBkYXRlZC5pY29uO1xuXG4gIHJldHVybiB7XG4gICAgLi4uc3RhdGUsXG4gICAgaW5wdXRTdHlsZToge1xuICAgICAgLi4udXBkYXRlZCxcbiAgICAgIGlzVmFsaWQsXG4gICAgICBpY29uXG4gICAgfVxuICB9O1xufTtcblxuLyoqXG4gKiBBZGQgbWFwIHN0eWxlIGZyb20gdXNlciBpbnB1dCB0byByZWR1Y2VyIGFuZCBzZXQgaXQgdG8gY3VycmVudCBzdHlsZVxuICogVGhpcyBhY3Rpb24gaXMgY2FsbGVkIHdoZW4gdXNlciBjbGljayBjb25maXJtIGFmdGVyIHB1dHRpbmcgaW4gYSB2YWxpZCBzdHlsZSB1cmwgaW4gdGhlIGN1c3RvbSBtYXAgc3R5bGUgZGlhbG9nLlxuICogSXQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZnJvbSBvdXRzaWRlIGtlcGxlci5nbCB3aXRob3V0IGEgdmFsaWQgYGlucHV0U3R5bGVgIGluIHRoZSBgbWFwU3R5bGVgIHJlZHVjZXIuXG4gKiBAbWVtYmVyb2YgbWFwU3R5bGVVcGRhdGVyc1xuICovXG5leHBvcnQgY29uc3QgYWRkQ3VzdG9tTWFwU3R5bGVVcGRhdGVyID0gKHN0YXRlOiBNYXBTdHlsZSk6IE1hcFN0eWxlID0+IHtcbiAgY29uc3Qgc3R5bGVJZCA9IHN0YXRlLmlucHV0U3R5bGUuaWQ7XG4gIGlmICghc3R5bGVJZCkgcmV0dXJuIHN0YXRlO1xuXG4gIGNvbnN0IG5ld1N0YXRlID0gZ2V0TmV3U3RhdGVXaXRoQ3VzdG9tTWFwU3R5bGUoc3RhdGUpO1xuICAvLyBzZXQgbmV3IHN0eWxlXG4gIHJldHVybiBtYXBTdHlsZUNoYW5nZVVwZGF0ZXIobmV3U3RhdGUsIHtwYXlsb2FkOiB7c3R5bGVUeXBlOiBzdHlsZUlkfX0pO1xufTtcblxuLyoqXG4gKiBFZGl0IG1hcCBzdHlsZSBmcm9tIHVzZXIgaW5wdXQgdG8gcmVkdWNlci5cbiAqIFRoaXMgYWN0aW9uIGlzIGNhbGxlZCB3aGVuIHVzZXIgY2xpY2tzIGNvbmZpcm0gYWZ0ZXIgZWRpdGluZyBhbiBleGlzdGluZyBjdXN0b20gc3R5bGUgaW4gdGhlIGN1c3RvbSBtYXAgc3R5bGUgZGlhbG9nLlxuICogSXQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZnJvbSBvdXRzaWRlIGtlcGxlci5nbCB3aXRob3V0IGEgdmFsaWQgYGlucHV0U3R5bGVgIGluIHRoZSBgbWFwU3R5bGVgIHJlZHVjZXIuXG4gKiBAbWVtYmVyb2YgbWFwU3R5bGVVcGRhdGVyc1xuICovXG5leHBvcnQgY29uc3QgZWRpdEN1c3RvbU1hcFN0eWxlVXBkYXRlciA9IChzdGF0ZTogTWFwU3R5bGUpOiBNYXBTdHlsZSA9PiB7XG4gIHJldHVybiBnZXROZXdTdGF0ZVdpdGhDdXN0b21NYXBTdHlsZShzdGF0ZSk7XG59O1xuXG5mdW5jdGlvbiBnZXROZXdTdGF0ZVdpdGhDdXN0b21NYXBTdHlsZShzdGF0ZTogTWFwU3R5bGUpOiBNYXBTdHlsZSB7XG4gIGNvbnN0IHN0eWxlSWQgPSBzdGF0ZS5pbnB1dFN0eWxlLmlkO1xuICBpZiAoIXN0eWxlSWQpIHJldHVybiBzdGF0ZTtcblxuICByZXR1cm4ge1xuICAgIC4uLnN0YXRlLFxuICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgUHJvcGVydHkgJ2xheWVyR3JvdXBzJyBpcyBtaXNzaW5nIGluIHR5cGUgJ0lucHV0U3R5bGUnIGJ1dCByZXF1aXJlZCBpbiB0eXBlICdCYXNlTWFwU3R5bGUnLiBMZWdhY3kgY2FzZT9cbiAgICBtYXBTdHlsZXM6IHtcbiAgICAgIC4uLnN0YXRlLm1hcFN0eWxlcyxcbiAgICAgIFtzdHlsZUlkXToge1xuICAgICAgICAuLi5zdGF0ZS5tYXBTdHlsZXNbc3R5bGVJZF0sIC8vIGRvIG5vdCB1bmludGVudGlvbmFsbHkgZHJvcCBhbnkgYWRkaXRpb25hbCBwcm9wZXJ0aWVzXG4gICAgICAgIC4uLnN0YXRlLmlucHV0U3R5bGVcbiAgICAgIH1cbiAgICB9LFxuICAgIC8vIHNldCB0byBkZWZhdWx0XG4gICAgaW5wdXRTdHlsZTogZ2V0SW5pdGlhbElucHV0U3R5bGUoKVxuICB9O1xufVxuXG4vKipcbiAqIFJlbW92ZSBhIGN1c3RvbSBtYXAgc3R5bGUgZnJvbSBgc3RhdGUubWFwU3R5bGUubWFwU3R5bGVzYC5cbiAqIEBtZW1iZXJvZiBtYXBTdHlsZVVwZGF0ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCByZW1vdmVDdXN0b21NYXBTdHlsZVVwZGF0ZXIgPSAoXG4gIHN0YXRlOiBNYXBTdHlsZSxcbiAgYWN0aW9uOiBNYXBTdHlsZUFjdGlvbnMuUmVtb3ZlQ3VzdG9tTWFwU3R5bGVVcGRhdGVyQWN0aW9uXG4pOiBNYXBTdHlsZSA9PiB7XG4gIGNvbnN0IHtpZH0gPSBhY3Rpb24ucGF5bG9hZDtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcbiAgY29uc3Qge1tpZF06IF8sIC4uLnJlc3RPZk1hcFN0eWxlc30gPSBzdGF0ZS5tYXBTdHlsZXM7XG5cbiAgY29uc3QgbmV3U3RhdGUgPSB7XG4gICAgLi4uc3RhdGUsXG4gICAgbWFwU3R5bGVzOiByZXN0T2ZNYXBTdHlsZXNcbiAgfTtcblxuICBpZiAoc3RhdGUuc3R5bGVUeXBlID09PSBpZCkge1xuICAgIC8vIGlmIHJlbW92aW5nIGEgY3VzdG9tIHN0eWxlIHRoYXQgaXMgYWxzbyB0aGUgY3VycmVudCBhY3RpdmUgYmFzZSBtYXAsXG4gICAgLy8gdGhlbiByZXNldCB0byB0aGUgZGVmYXVsdCBhY3RpdmUgYmFzZSBtYXAgKGBtYXBTdHlsZS5zdHlsZVR5cGVgKVxuICAgIHJldHVybiBtYXBTdHlsZUNoYW5nZVVwZGF0ZXIobmV3U3RhdGUsIHtwYXlsb2FkOiB7c3R5bGVUeXBlOiBnZXREZWZhdWx0U3RhdGUoKS5zdHlsZVR5cGV9fSk7XG4gIH1cblxuICByZXR1cm4gbmV3U3RhdGU7XG59O1xuXG4vKipcbiAqIFVwZGF0ZXMgM2QgYnVpbGRpbmcgY29sb3JcbiAqIEBtZW1iZXJvZiBtYXBTdHlsZVVwZGF0ZXJzXG4gKi9cbmV4cG9ydCBjb25zdCBzZXQzZEJ1aWxkaW5nQ29sb3JVcGRhdGVyID0gKFxuICBzdGF0ZTogTWFwU3R5bGUsXG4gIHtwYXlsb2FkOiBjb2xvcn06IE1hcFN0eWxlQWN0aW9ucy5TZXQzZEJ1aWxkaW5nQ29sb3JVcGRhdGVyQWN0aW9uXG4pOiBNYXBTdHlsZSA9PiAoe1xuICAuLi5zdGF0ZSxcbiAgdGhyZWVEQnVpbGRpbmdDb2xvcjogY29sb3IsXG4gIGN1c3RvbTNEQnVpbGRpbmdDb2xvcjogdHJ1ZVxufSk7XG5cbi8qKlxuICogVXBkYXRlcyBiYWNrZ3JvdW5kIGNvbG9yXG4gKiBAbWVtYmVyb2YgbWFwU3R5bGVVcGRhdGVyc1xuICovXG5leHBvcnQgY29uc3Qgc2V0QmFja2dyb3VuZENvbG9yVXBkYXRlciA9IChcbiAgc3RhdGU6IE1hcFN0eWxlLFxuICB7cGF5bG9hZDogY29sb3J9OiBNYXBTdHlsZUFjdGlvbnMuU2V0QmFja2dyb3VuZENvbG9yVXBkYXRlckFjdGlvblxuKTogTWFwU3R5bGUgPT4gKHtcbiAgLi4uc3RhdGUsXG4gIGJhY2tncm91bmRDb2xvcjogY29sb3Jcbn0pO1xuXG4vKipcbiAqIFJldHVybiB0aGUgaW5pdGlhbCBpbnB1dCBzdHlsZVxuICogQHJldHVybiBPYmplY3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEluaXRpYWxJbnB1dFN0eWxlKCk6IElucHV0U3R5bGUge1xuICByZXR1cm4ge1xuICAgIGlkOiBudWxsLFxuICAgIGFjY2Vzc1Rva2VuOiBudWxsLFxuICAgIGVycm9yOiBmYWxzZSxcbiAgICBpc1ZhbGlkOiBmYWxzZSxcbiAgICBsYWJlbDogbnVsbCxcbiAgICBzdHlsZTogbnVsbCxcbiAgICB1cmw6IG51bGwsXG4gICAgaWNvbjogbnVsbCxcbiAgICBjdXN0b206ICdMT0NBTCcsXG4gICAgdXBsb2FkZWRGaWxlOiBudWxsXG4gIH07XG59XG4iXX0=
package/dist/map-style.js CHANGED
@@ -1,23 +1,3 @@
1
- // Copyright (c) 2023 Uber Technologies, Inc.
2
- //
3
- // Permission is hereby granted, free of charge, to any person obtaining a copy
4
- // of this software and associated documentation files (the "Software"), to deal
5
- // in the Software without restriction, including without limitation the rights
6
- // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- // copies of the Software, and to permit persons to whom the Software is
8
- // furnished to do so, subject to the following conditions:
9
- //
10
- // The above copyright notice and this permission notice shall be included in
11
- // all copies or substantial portions of the Software.
12
- //
13
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
- // THE SOFTWARE.
20
-
21
1
  "use strict";
22
2
 
23
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
@@ -63,4 +43,4 @@ exports.mapStyleReducerFactory = mapStyleReducerFactory;
63
43
  var _default = mapStyleReducerFactory();
64
44
 
65
45
  exports["default"] = _default;
66
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYXAtc3R5bGUudHMiXSwibmFtZXMiOlsiYWN0aW9uSGFuZGxlciIsIkFjdGlvblR5cGVzIiwiSU5JVCIsIm1hcFN0eWxlVXBkYXRlcnMiLCJpbml0TWFwU3R5bGVVcGRhdGVyIiwiSU5QVVRfTUFQX1NUWUxFIiwiaW5wdXRNYXBTdHlsZVVwZGF0ZXIiLCJNQVBfQ09ORklHX0NIQU5HRSIsIm1hcENvbmZpZ0NoYW5nZVVwZGF0ZXIiLCJNQVBfU1RZTEVfQ0hBTkdFIiwibWFwU3R5bGVDaGFuZ2VVcGRhdGVyIiwiUkVRVUVTVF9NQVBfU1RZTEVTIiwicmVxdWVzdE1hcFN0eWxlc1VwZGF0ZXIiLCJMT0FEX01BUF9TVFlMRVMiLCJsb2FkTWFwU3R5bGVzVXBkYXRlciIsIkxPQURfTUFQX1NUWUxFX0VSUiIsImxvYWRNYXBTdHlsZUVyclVwZGF0ZXIiLCJSRUNFSVZFX01BUF9DT05GSUciLCJyZWNlaXZlTWFwQ29uZmlnVXBkYXRlciIsIkxPQURfQ1VTVE9NX01BUF9TVFlMRSIsImxvYWRDdXN0b21NYXBTdHlsZVVwZGF0ZXIiLCJBRERfQ1VTVE9NX01BUF9TVFlMRSIsImFkZEN1c3RvbU1hcFN0eWxlVXBkYXRlciIsIkVESVRfQ1VTVE9NX01BUF9TVFlMRSIsImVkaXRDdXN0b21NYXBTdHlsZVVwZGF0ZXIiLCJSRU1PVkVfQ1VTVE9NX01BUF9TVFlMRSIsInJlbW92ZUN1c3RvbU1hcFN0eWxlVXBkYXRlciIsIlJFU0VUX01BUF9DT05GSUciLCJyZXNldE1hcENvbmZpZ01hcFN0eWxlVXBkYXRlciIsIlNFVF8zRF9CVUlMRElOR19DT0xPUiIsInNldDNkQnVpbGRpbmdDb2xvclVwZGF0ZXIiLCJTRVRfQkFDS0dST1VORF9DT0xPUiIsInNldEJhY2tncm91bmRDb2xvclVwZGF0ZXIiLCJtYXBTdHlsZVJlZHVjZXJGYWN0b3J5IiwiaW5pdGlhbFN0YXRlIiwiSU5JVElBTF9NQVBfU1RZTEUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFvQkE7O0FBQ0E7O0FBQ0E7Ozs7Ozs7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFNQSxhQUFhLDBFQUNoQkMscUJBQVlDLElBREksRUFDR0MsZ0JBQWdCLENBQUNDLG1CQURwQixvREFFaEJILHFCQUFZSSxlQUZJLEVBRWNGLGdCQUFnQixDQUFDRyxvQkFGL0Isb0RBR2hCTCxxQkFBWU0saUJBSEksRUFHZ0JKLGdCQUFnQixDQUFDSyxzQkFIakMsb0RBSWhCUCxxQkFBWVEsZ0JBSkksRUFJZU4sZ0JBQWdCLENBQUNPLHFCQUpoQyxvREFLaEJULHFCQUFZVSxrQkFMSSxFQUtpQlIsZ0JBQWdCLENBQUNTLHVCQUxsQyxvREFNaEJYLHFCQUFZWSxlQU5JLEVBTWNWLGdCQUFnQixDQUFDVyxvQkFOL0Isb0RBT2hCYixxQkFBWWMsa0JBUEksRUFPaUJaLGdCQUFnQixDQUFDYSxzQkFQbEMsb0RBUWhCZixxQkFBWWdCLGtCQVJJLEVBUWlCZCxnQkFBZ0IsQ0FBQ2UsdUJBUmxDLG9EQVNoQmpCLHFCQUFZa0IscUJBVEksRUFTb0JoQixnQkFBZ0IsQ0FBQ2lCLHlCQVRyQyxvREFVaEJuQixxQkFBWW9CLG9CQVZJLEVBVW1CbEIsZ0JBQWdCLENBQUNtQix3QkFWcEMsb0RBV2hCckIscUJBQVlzQixxQkFYSSxFQVdvQnBCLGdCQUFnQixDQUFDcUIseUJBWHJDLG9EQVloQnZCLHFCQUFZd0IsdUJBWkksRUFZc0J0QixnQkFBZ0IsQ0FBQ3VCLDJCQVp2QyxvREFhaEJ6QixxQkFBWTBCLGdCQWJJLEVBYWV4QixnQkFBZ0IsQ0FBQ3lCLDZCQWJoQyxvREFjaEIzQixxQkFBWTRCLHFCQWRJLEVBY29CMUIsZ0JBQWdCLENBQUMyQix5QkFkckMsb0RBZWhCN0IscUJBQVk4QixvQkFmSSxFQWVtQjVCLGdCQUFnQixDQUFDNkIseUJBZnBDLG9EQWdCaEIvQixxQkFBWTBCLGdCQWhCSSxFQWdCZXhCLGdCQUFnQixDQUFDeUIsNkJBaEJoQyxrQkFBbkI7O0FBbUJPLElBQU1LLHNCQUFzQixHQUFHLFNBQXpCQSxzQkFBeUI7QUFBQSxNQUFDQyxZQUFELHVFQUFnQixFQUFoQjtBQUFBLFNBQ3BDO0FBQ0EscUNBQWNsQyxhQUFkLGdEQUNLRyxnQkFBZ0IsQ0FBQ2dDLGlCQUR0QixHQUVLRCxZQUZMO0FBR0VBLE1BQUFBLFlBQVksRUFBWkE7QUFIRjtBQUZvQztBQUFBLENBQS9COzs7O2VBUVFELHNCQUFzQixFIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIzIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IHtoYW5kbGVBY3Rpb25zfSBmcm9tICdyZWR1eC1hY3Rpb25zJztcbmltcG9ydCB7QWN0aW9uVHlwZXN9IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5pbXBvcnQgKiBhcyBtYXBTdHlsZVVwZGF0ZXJzIGZyb20gJy4vbWFwLXN0eWxlLXVwZGF0ZXJzJztcblxuLyoqXG4gKiBJbXBvcnRhbnQ6IERvIG5vdCByZW5hbWUgYGFjdGlvbkhhbmRsZXJgIG9yIHRoZSBhc3NpZ25tZW50IHBhdHRlcm4gb2YgcHJvcGVydHkgdmFsdWUuXG4gKiBJdCBpcyB1c2VkIHRvIGdlbmVyYXRlIGRvY3VtZW50YXRpb25cbiAqL1xuY29uc3QgYWN0aW9uSGFuZGxlciA9IHtcbiAgW0FjdGlvblR5cGVzLklOSVRdOiBtYXBTdHlsZVVwZGF0ZXJzLmluaXRNYXBTdHlsZVVwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5JTlBVVF9NQVBfU1RZTEVdOiBtYXBTdHlsZVVwZGF0ZXJzLmlucHV0TWFwU3R5bGVVcGRhdGVyLFxuICBbQWN0aW9uVHlwZXMuTUFQX0NPTkZJR19DSEFOR0VdOiBtYXBTdHlsZVVwZGF0ZXJzLm1hcENvbmZpZ0NoYW5nZVVwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5NQVBfU1RZTEVfQ0hBTkdFXTogbWFwU3R5bGVVcGRhdGVycy5tYXBTdHlsZUNoYW5nZVVwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5SRVFVRVNUX01BUF9TVFlMRVNdOiBtYXBTdHlsZVVwZGF0ZXJzLnJlcXVlc3RNYXBTdHlsZXNVcGRhdGVyLFxuICBbQWN0aW9uVHlwZXMuTE9BRF9NQVBfU1RZTEVTXTogbWFwU3R5bGVVcGRhdGVycy5sb2FkTWFwU3R5bGVzVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLkxPQURfTUFQX1NUWUxFX0VSUl06IG1hcFN0eWxlVXBkYXRlcnMubG9hZE1hcFN0eWxlRXJyVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLlJFQ0VJVkVfTUFQX0NPTkZJR106IG1hcFN0eWxlVXBkYXRlcnMucmVjZWl2ZU1hcENvbmZpZ1VwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5MT0FEX0NVU1RPTV9NQVBfU1RZTEVdOiBtYXBTdHlsZVVwZGF0ZXJzLmxvYWRDdXN0b21NYXBTdHlsZVVwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5BRERfQ1VTVE9NX01BUF9TVFlMRV06IG1hcFN0eWxlVXBkYXRlcnMuYWRkQ3VzdG9tTWFwU3R5bGVVcGRhdGVyLFxuICBbQWN0aW9uVHlwZXMuRURJVF9DVVNUT01fTUFQX1NUWUxFXTogbWFwU3R5bGVVcGRhdGVycy5lZGl0Q3VzdG9tTWFwU3R5bGVVcGRhdGVyLFxuICBbQWN0aW9uVHlwZXMuUkVNT1ZFX0NVU1RPTV9NQVBfU1RZTEVdOiBtYXBTdHlsZVVwZGF0ZXJzLnJlbW92ZUN1c3RvbU1hcFN0eWxlVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLlJFU0VUX01BUF9DT05GSUddOiBtYXBTdHlsZVVwZGF0ZXJzLnJlc2V0TWFwQ29uZmlnTWFwU3R5bGVVcGRhdGVyLFxuICBbQWN0aW9uVHlwZXMuU0VUXzNEX0JVSUxESU5HX0NPTE9SXTogbWFwU3R5bGVVcGRhdGVycy5zZXQzZEJ1aWxkaW5nQ29sb3JVcGRhdGVyLFxuICBbQWN0aW9uVHlwZXMuU0VUX0JBQ0tHUk9VTkRfQ09MT1JdOiBtYXBTdHlsZVVwZGF0ZXJzLnNldEJhY2tncm91bmRDb2xvclVwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5SRVNFVF9NQVBfQ09ORklHXTogbWFwU3R5bGVVcGRhdGVycy5yZXNldE1hcENvbmZpZ01hcFN0eWxlVXBkYXRlclxufTtcblxuZXhwb3J0IGNvbnN0IG1hcFN0eWxlUmVkdWNlckZhY3RvcnkgPSAoaW5pdGlhbFN0YXRlID0ge30pID0+XG4gIC8vIEB0cy1leHBlY3QtZXJyb3JcbiAgaGFuZGxlQWN0aW9ucyhhY3Rpb25IYW5kbGVyLCB7XG4gICAgLi4ubWFwU3R5bGVVcGRhdGVycy5JTklUSUFMX01BUF9TVFlMRSxcbiAgICAuLi5pbml0aWFsU3RhdGUsXG4gICAgaW5pdGlhbFN0YXRlXG4gIH0pO1xuXG5leHBvcnQgZGVmYXVsdCBtYXBTdHlsZVJlZHVjZXJGYWN0b3J5KCk7XG4iXX0=
46
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tYXAtc3R5bGUudHMiXSwibmFtZXMiOlsiYWN0aW9uSGFuZGxlciIsIkFjdGlvblR5cGVzIiwiSU5JVCIsIm1hcFN0eWxlVXBkYXRlcnMiLCJpbml0TWFwU3R5bGVVcGRhdGVyIiwiSU5QVVRfTUFQX1NUWUxFIiwiaW5wdXRNYXBTdHlsZVVwZGF0ZXIiLCJNQVBfQ09ORklHX0NIQU5HRSIsIm1hcENvbmZpZ0NoYW5nZVVwZGF0ZXIiLCJNQVBfU1RZTEVfQ0hBTkdFIiwibWFwU3R5bGVDaGFuZ2VVcGRhdGVyIiwiUkVRVUVTVF9NQVBfU1RZTEVTIiwicmVxdWVzdE1hcFN0eWxlc1VwZGF0ZXIiLCJMT0FEX01BUF9TVFlMRVMiLCJsb2FkTWFwU3R5bGVzVXBkYXRlciIsIkxPQURfTUFQX1NUWUxFX0VSUiIsImxvYWRNYXBTdHlsZUVyclVwZGF0ZXIiLCJSRUNFSVZFX01BUF9DT05GSUciLCJyZWNlaXZlTWFwQ29uZmlnVXBkYXRlciIsIkxPQURfQ1VTVE9NX01BUF9TVFlMRSIsImxvYWRDdXN0b21NYXBTdHlsZVVwZGF0ZXIiLCJBRERfQ1VTVE9NX01BUF9TVFlMRSIsImFkZEN1c3RvbU1hcFN0eWxlVXBkYXRlciIsIkVESVRfQ1VTVE9NX01BUF9TVFlMRSIsImVkaXRDdXN0b21NYXBTdHlsZVVwZGF0ZXIiLCJSRU1PVkVfQ1VTVE9NX01BUF9TVFlMRSIsInJlbW92ZUN1c3RvbU1hcFN0eWxlVXBkYXRlciIsIlJFU0VUX01BUF9DT05GSUciLCJyZXNldE1hcENvbmZpZ01hcFN0eWxlVXBkYXRlciIsIlNFVF8zRF9CVUlMRElOR19DT0xPUiIsInNldDNkQnVpbGRpbmdDb2xvclVwZGF0ZXIiLCJTRVRfQkFDS0dST1VORF9DT0xPUiIsInNldEJhY2tncm91bmRDb2xvclVwZGF0ZXIiLCJtYXBTdHlsZVJlZHVjZXJGYWN0b3J5IiwiaW5pdGlhbFN0YXRlIiwiSU5JVElBTF9NQVBfU1RZTEUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFHQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQU1BLGFBQWEsMEVBQ2hCQyxxQkFBWUMsSUFESSxFQUNHQyxnQkFBZ0IsQ0FBQ0MsbUJBRHBCLG9EQUVoQkgscUJBQVlJLGVBRkksRUFFY0YsZ0JBQWdCLENBQUNHLG9CQUYvQixvREFHaEJMLHFCQUFZTSxpQkFISSxFQUdnQkosZ0JBQWdCLENBQUNLLHNCQUhqQyxvREFJaEJQLHFCQUFZUSxnQkFKSSxFQUllTixnQkFBZ0IsQ0FBQ08scUJBSmhDLG9EQUtoQlQscUJBQVlVLGtCQUxJLEVBS2lCUixnQkFBZ0IsQ0FBQ1MsdUJBTGxDLG9EQU1oQlgscUJBQVlZLGVBTkksRUFNY1YsZ0JBQWdCLENBQUNXLG9CQU4vQixvREFPaEJiLHFCQUFZYyxrQkFQSSxFQU9pQlosZ0JBQWdCLENBQUNhLHNCQVBsQyxvREFRaEJmLHFCQUFZZ0Isa0JBUkksRUFRaUJkLGdCQUFnQixDQUFDZSx1QkFSbEMsb0RBU2hCakIscUJBQVlrQixxQkFUSSxFQVNvQmhCLGdCQUFnQixDQUFDaUIseUJBVHJDLG9EQVVoQm5CLHFCQUFZb0Isb0JBVkksRUFVbUJsQixnQkFBZ0IsQ0FBQ21CLHdCQVZwQyxvREFXaEJyQixxQkFBWXNCLHFCQVhJLEVBV29CcEIsZ0JBQWdCLENBQUNxQix5QkFYckMsb0RBWWhCdkIscUJBQVl3Qix1QkFaSSxFQVlzQnRCLGdCQUFnQixDQUFDdUIsMkJBWnZDLG9EQWFoQnpCLHFCQUFZMEIsZ0JBYkksRUFhZXhCLGdCQUFnQixDQUFDeUIsNkJBYmhDLG9EQWNoQjNCLHFCQUFZNEIscUJBZEksRUFjb0IxQixnQkFBZ0IsQ0FBQzJCLHlCQWRyQyxvREFlaEI3QixxQkFBWThCLG9CQWZJLEVBZW1CNUIsZ0JBQWdCLENBQUM2Qix5QkFmcEMsb0RBZ0JoQi9CLHFCQUFZMEIsZ0JBaEJJLEVBZ0JleEIsZ0JBQWdCLENBQUN5Qiw2QkFoQmhDLGtCQUFuQjs7QUFtQk8sSUFBTUssc0JBQXNCLEdBQUcsU0FBekJBLHNCQUF5QjtBQUFBLE1BQUNDLFlBQUQsdUVBQWdCLEVBQWhCO0FBQUEsU0FDcEM7QUFDQSxxQ0FBY2xDLGFBQWQsZ0RBQ0tHLGdCQUFnQixDQUFDZ0MsaUJBRHRCLEdBRUtELFlBRkw7QUFHRUEsTUFBQUEsWUFBWSxFQUFaQTtBQUhGO0FBRm9DO0FBQUEsQ0FBL0I7Ozs7ZUFRUUQsc0JBQXNCLEUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQge2hhbmRsZUFjdGlvbnN9IGZyb20gJ3JlZHV4LWFjdGlvbnMnO1xuaW1wb3J0IHtBY3Rpb25UeXBlc30gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcbmltcG9ydCAqIGFzIG1hcFN0eWxlVXBkYXRlcnMgZnJvbSAnLi9tYXAtc3R5bGUtdXBkYXRlcnMnO1xuXG4vKipcbiAqIEltcG9ydGFudDogRG8gbm90IHJlbmFtZSBgYWN0aW9uSGFuZGxlcmAgb3IgdGhlIGFzc2lnbm1lbnQgcGF0dGVybiBvZiBwcm9wZXJ0eSB2YWx1ZS5cbiAqIEl0IGlzIHVzZWQgdG8gZ2VuZXJhdGUgZG9jdW1lbnRhdGlvblxuICovXG5jb25zdCBhY3Rpb25IYW5kbGVyID0ge1xuICBbQWN0aW9uVHlwZXMuSU5JVF06IG1hcFN0eWxlVXBkYXRlcnMuaW5pdE1hcFN0eWxlVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLklOUFVUX01BUF9TVFlMRV06IG1hcFN0eWxlVXBkYXRlcnMuaW5wdXRNYXBTdHlsZVVwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5NQVBfQ09ORklHX0NIQU5HRV06IG1hcFN0eWxlVXBkYXRlcnMubWFwQ29uZmlnQ2hhbmdlVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLk1BUF9TVFlMRV9DSEFOR0VdOiBtYXBTdHlsZVVwZGF0ZXJzLm1hcFN0eWxlQ2hhbmdlVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLlJFUVVFU1RfTUFQX1NUWUxFU106IG1hcFN0eWxlVXBkYXRlcnMucmVxdWVzdE1hcFN0eWxlc1VwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5MT0FEX01BUF9TVFlMRVNdOiBtYXBTdHlsZVVwZGF0ZXJzLmxvYWRNYXBTdHlsZXNVcGRhdGVyLFxuICBbQWN0aW9uVHlwZXMuTE9BRF9NQVBfU1RZTEVfRVJSXTogbWFwU3R5bGVVcGRhdGVycy5sb2FkTWFwU3R5bGVFcnJVcGRhdGVyLFxuICBbQWN0aW9uVHlwZXMuUkVDRUlWRV9NQVBfQ09ORklHXTogbWFwU3R5bGVVcGRhdGVycy5yZWNlaXZlTWFwQ29uZmlnVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLkxPQURfQ1VTVE9NX01BUF9TVFlMRV06IG1hcFN0eWxlVXBkYXRlcnMubG9hZEN1c3RvbU1hcFN0eWxlVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLkFERF9DVVNUT01fTUFQX1NUWUxFXTogbWFwU3R5bGVVcGRhdGVycy5hZGRDdXN0b21NYXBTdHlsZVVwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5FRElUX0NVU1RPTV9NQVBfU1RZTEVdOiBtYXBTdHlsZVVwZGF0ZXJzLmVkaXRDdXN0b21NYXBTdHlsZVVwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5SRU1PVkVfQ1VTVE9NX01BUF9TVFlMRV06IG1hcFN0eWxlVXBkYXRlcnMucmVtb3ZlQ3VzdG9tTWFwU3R5bGVVcGRhdGVyLFxuICBbQWN0aW9uVHlwZXMuUkVTRVRfTUFQX0NPTkZJR106IG1hcFN0eWxlVXBkYXRlcnMucmVzZXRNYXBDb25maWdNYXBTdHlsZVVwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5TRVRfM0RfQlVJTERJTkdfQ09MT1JdOiBtYXBTdHlsZVVwZGF0ZXJzLnNldDNkQnVpbGRpbmdDb2xvclVwZGF0ZXIsXG4gIFtBY3Rpb25UeXBlcy5TRVRfQkFDS0dST1VORF9DT0xPUl06IG1hcFN0eWxlVXBkYXRlcnMuc2V0QmFja2dyb3VuZENvbG9yVXBkYXRlcixcbiAgW0FjdGlvblR5cGVzLlJFU0VUX01BUF9DT05GSUddOiBtYXBTdHlsZVVwZGF0ZXJzLnJlc2V0TWFwQ29uZmlnTWFwU3R5bGVVcGRhdGVyXG59O1xuXG5leHBvcnQgY29uc3QgbWFwU3R5bGVSZWR1Y2VyRmFjdG9yeSA9IChpbml0aWFsU3RhdGUgPSB7fSkgPT5cbiAgLy8gQHRzLWV4cGVjdC1lcnJvclxuICBoYW5kbGVBY3Rpb25zKGFjdGlvbkhhbmRsZXIsIHtcbiAgICAuLi5tYXBTdHlsZVVwZGF0ZXJzLklOSVRJQUxfTUFQX1NUWUxFLFxuICAgIC4uLmluaXRpYWxTdGF0ZSxcbiAgICBpbml0aWFsU3RhdGVcbiAgfSk7XG5cbmV4cG9ydCBkZWZhdWx0IG1hcFN0eWxlUmVkdWNlckZhY3RvcnkoKTtcbiJdfQ==
@@ -1,23 +1,3 @@
1
- // Copyright (c) 2023 Uber Technologies, Inc.
2
- //
3
- // Permission is hereby granted, free of charge, to any person obtaining a copy
4
- // of this software and associated documentation files (the "Software"), to deal
5
- // in the Software without restriction, including without limitation the rights
6
- // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- // copies of the Software, and to permit persons to whom the Software is
8
- // furnished to do so, subject to the following conditions:
9
- //
10
- // The above copyright notice and this permission notice shall be included in
11
- // all copies or substantial portions of the Software.
12
- //
13
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
- // THE SOFTWARE.
20
-
21
1
  "use strict";
22
2
 
23
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
@@ -140,4 +120,4 @@ function resetStateToMergeProps(state, initialState, mergerProps) {
140
120
  return _objectSpread(_objectSpread({}, accu), {}, (0, _defineProperty2["default"])({}, prop, initialState[prop]));
141
121
  }, state);
142
122
  }
143
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXJnZXItaGFuZGxlci50cyJdLCJuYW1lcyI6WyJpc1ZhbGlkTWVyZ2VyIiwibWVyZ2VyIiwibWVyZ2UiLCJwcm9wIiwiQXJyYXkiLCJpc0FycmF5IiwiY2FsbEZ1bmN0aW9uR2V0VGFzayIsImZuIiwiYmVmb3JlIiwicmV0IiwiYWZ0ZXIiLCJkaWZmIiwiZmlsdGVyIiwidCIsImluY2x1ZGVzIiwibWVyZ2VTdGF0ZUZyb21NZXJnZXJzIiwic3RhdGUiLCJpbml0aWFsU3RhdGUiLCJtZXJnZXJzIiwicG9zdE1lcmdlclBheWxvYWQiLCJtZXJnZWRTdGF0ZSIsIm1lcmdlclF1ZXVlIiwic2hpZnQiLCJ0b01lcmdlUHJvcCIsImhhc1Byb3BzVG9NZXJnZSIsIm1lcmdlckFjdGlvblBheWxvYWQiLCJ0b01lcmdlIiwiZ2V0UHJvcFZhbHVlVG9NZXJnZXIiLCJyZXNldFN0YXRlVG9NZXJnZVByb3BzIiwibWVyZ2VGdW5jIiwidXBkYXRlZFN0YXRlIiwibmV3VGFza3MiLCJsZW5ndGgiLCJ3YWl0VG9GaW5pc2giLCJhbGxNZXJnZWQiLCJtZXJnZXJQcm9wcyIsIkJvb2xlYW4iLCJzb21lIiwicCIsImhhc093blByb3BlcnR5IiwidG9NZXJnZVByb3BzIiwicmVkdWNlIiwiYWNjdSIsImkiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQTs7QUFDQTs7Ozs7O0FBSU8sU0FBU0EsYUFBVCxDQUF1QkMsTUFBdkIsRUFBcUQ7QUFDMUQsU0FDRSxxQkFBU0EsTUFBVCxLQUNBLE9BQU9BLE1BQU0sQ0FBQ0MsS0FBZCxLQUF3QixVQUR4QixLQUVDLE9BQU9ELE1BQU0sQ0FBQ0UsSUFBZCxLQUF1QixRQUF2QixJQUFtQ0MsS0FBSyxDQUFDQyxPQUFOLENBQWNKLE1BQU0sQ0FBQ0UsSUFBckIsQ0FGcEMsQ0FERjtBQUtEO0FBRUQ7QUFDQTtBQUNBOzs7QUFDQSxTQUFTRyxtQkFBVCxDQUE2QkMsRUFBN0IsRUFBd0Q7QUFDdEQsTUFBTUMs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LFdBQVcsQ0FBQ00sTUFBWixDQUFtQixVQUFDQyxJQUFELEVBQU9KLENBQVAsRUFBVUssQ0FBVixFQUFnQjtBQUNqQyxRQUFJLENBQUNILFlBQUwsRUFBbUIsT0FBT0UsSUFBUDtBQUNuQiwyQ0FBV0EsSUFBWCw0Q0FBa0JGLFlBQVksQ0FBQ0csQ0FBRCxDQUE5QixFQUFvQzNCLEtBQUssQ0FBQ3NCLENBQUQsQ0FBekM7QUFDRCxHQUhELEVBR0csRUFISCxDQURHLEdBS0h0QixLQUFLLENBQUNtQixXQUFELENBTFQ7QUFNRDs7QUFFTSxTQUFTUCxzQkFBVCxDQUNMWixLQURLLEVBRUxDLFlBRkssRUFHTGtCLFdBSEssRUFJTDtBQUNBLFNBQU8sb0JBQVFBLFdBQVIsRUFBcUJNLE1BQXJCLENBQ0wsVUFBQ0MsSUFBRCxFQUFPdkMsSUFBUDtBQUFBLDJDQUNLdUMsSUFETCw0Q0FFR3ZDLElBRkgsRUFFVWMsWUFBWSxDQUFDZCxJQUFELENBRnRCO0FBQUEsR0FESyxFQUtMYSxLQUxLLENBQVA7QUFPRCIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMyBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCB7Z2V0R2xvYmFsVGFza1F1ZXVlfSBmcm9tICdyZWFjdC1wYWxtL3Rhc2tzJztcbmltcG9ydCB7aXNPYmplY3QsIHRvQXJyYXl9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHtWYWx1ZU9mfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7VmlzU3RhdGUsIE1lcmdlciwgUG9zdE1lcmdlclBheWxvYWR9IGZyb20gJ0BrZXBsZXIuZ2wvc2NoZW1hcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc1ZhbGlkTWVyZ2VyKG1lcmdlcjogTWVyZ2VyPGFueT4pOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICBpc09iamVjdChtZXJnZXIpICYmXG4gICAgdHlwZW9mIG1lcmdlci5tZXJnZSA9PT0gJ2Z1bmN0aW9uJyAmJlxuICAgICh0eXBlb2YgbWVyZ2VyLnByb3AgPT09ICdzdHJpbmcnIHx8IEFycmF5LmlzQXJyYXkobWVyZ2VyLnByb3ApKVxuICApO1xufVxuXG4vKipcbiAqIENhbGwgc3RhdGUgdXBkYXRlciwgcmV0dXJuIHRoZSB0YXNrcyBjcmVhdGVkIGJ5IHRoZSBzdGF0ZSB1cGRhdGUgd2l0aCB3aXRoVGFzaygpXG4gKi9cbmZ1bmN0aW9uIGNhbGxGdW5jdGlvbkdldFRhc2soZm46ICgpID0+IGFueSk6IFthbnksIGFueV0ge1xuICBjb25zdCBiZWZvcmUgPSBnZXRHbG9iYWxUYXNrUXVldWUoKTtcbiAgY29uc3QgcmV0ID0gZm4oKTtcbiAgY29uc3QgYWZ0ZXIgPSBnZXRHbG9iYWxUYXNrUXVldWUoKTtcbiAgY29uc3QgZGlmZiA9IGFmdGVyLmZpbHRlcih0ID0+ICFiZWZvcmUuaW5jbHVkZXModCkpO1xuICByZXR1cm4gW3JldCwgZGlmZl07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtZXJnZVN0YXRlRnJvbU1lcmdlcnM8U3RhdGUgZXh0ZW5kcyBWaXNTdGF0ZT4oXG4gIHN0YXRlOiBTdGF0ZSxcbiAgaW5pdGlhbFN0YXRlOiBTdGF0ZSxcbiAgbWVyZ2VyczogTWVyZ2VyPGFueT5bXSxcbiAgcG9zdE1lcmdlclBheWxvYWQ6IFBvc3RNZXJnZXJQYXlsb2FkXG4pOiB7XG4gIG1lcmdlZFN0YXRlOiBTdGF0ZTtcbiAgYWxsTWVyZ2VkOiBib29sZWFuO1xufSB7XG4gIC8vIGNvbnN0IG5ld0RhdGFJZHMgPSBPYmplY3Qua2V5cyhwb3N0TWVyZ2VyUGF5bG9hZC5uZXdEYXRhRW50cmllcyk7XG4gIGxldCBtZXJnZWRTdGF0ZSA9IHN0YXRlO1xuICAvLyBtZXJnZSBzdGF0ZSB3aXRoIGNvbmZpZyB0byBiZSBtZXJnZWRcbiAgY29uc3QgbWVyZ2VyUXVldWUgPSBbLi4ubWVyZ2Vyc107XG5cbiAgd2hpbGUgKG1lcmdlclF1ZXVlLmxlbmd0aCkge1xuICAgIGNvbnN0IG1lcmdlciA9IG1lcmdlclF1ZXVlLnNoaWZ0KCk7XG5cbiAgICBpZiAoXG4gICAgICBtZXJnZXIgJiZcbiAgICAgIGlzVmFsaWRNZXJnZXIobWVyZ2VyKSAmJlxuICAgICAgbWVyZ2VyLnRvTWVyZ2VQcm9wICYmXG4gICAgICBoYXNQcm9wc1RvTWVyZ2Uoc3RhdGUsIG1lcmdlci50b01lcmdlUHJvcClcbiAgICApIHtcbiAgICAgIC8vIHB1dCB0aGUgcmVzdCBvZiBtZXJnZXJzIGFuZCBwYXlsb2FkIGZvciBwb3N0TWVyZ2VVcGRhdGVyIGluIG1lcmdlckFjdGlvblBheWxvYWRcbiAgICAgIC8vIGFuZCBwYXNzIGl0IHRvIGN1cnJlbnQgbWVyZ2VyLCB3aGljaCAoaWYgYXN5bmMpIGtub3dzIHRvIGNvbnRpbnVlIG1lcmdpbmdcbiAgICAgIGNvbnN0IG1lcmdlckFjdGlvblBheWxvYWQgPSB7XG4gICAgICAgIG1lcmdlcnM6IG1lcmdlclF1ZXVlLFxuICAgICAgICBwb3N0TWVyZ2VyUGF5bG9hZFxuICAgICAgfTtcbiAgICAgIC8vIHJlc2V0IHRvTWVyZ2VcbiAgICAgIGNvbnN0IHRvTWVyZ2UgPSBnZXRQcm9wVmFsdWVUb01lcmdlcihtZXJnZWRTdGF0ZSwgbWVyZ2VyLnRvTWVyZ2VQcm9wLCBtZXJnZXIudG9NZXJnZVByb3ApO1xuXG4gICAgICBtZXJnZWRTdGF0ZSA9IHJlc2V0U3RhdGVUb01lcmdlUHJvcHMobWVyZ2VkU3RhdGUsIGluaXRpYWxTdGF0ZSwgbWVyZ2VyLnRvTWVyZ2VQcm9wKTtcbiAgICAgIC8vIGNhbGwgbWVyZ2VyXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tbG9vcC1mdW5jXG4gICAgICBjb25zdCBtZXJnZUZ1bmMgPSAoKSA9PiBtZXJnZXIubWVyZ2UobWVyZ2VkU3RhdGUsIHRvTWVyZ2UsIGZhbHNlLCBtZXJnZXJBY3Rpb25QYXlsb2FkKTtcbiAgICAgIGNvbnN0IFt1cGRhdGVkU3RhdGUsIG5ld1Rhc2tzXSA9IGNhbGxGdW5jdGlvbkdldFRhc2sobWVyZ2VGdW5jKTtcblxuICAgICAgbWVyZ2VkU3RhdGUgPSB1cGRhdGVkU3RhdGU7XG5cbiAgICAgIC8vIGNoZWNrIGlmIGFzeW5jVGFzayB3YXMgY3JlYXRlZCAodGltZSBjb25zdW1pbmcgdGFza3MpXG4gICAgICBpZiAobmV3VGFza3MubGVuZ3RoICYmIG1lcmdlci53YWl0VG9GaW5pc2gpIHtcbiAgICAgICAgLy8gc2tpcCByZXN0LCB0aGUgYXN5bmMgbWVyZ2VyIHdpbGwgY2FsbCBhcHBseU1lcmdlcnVwZGF0ZXIoKSB0byBjb250aW51ZVxuICAgICAgICByZXR1cm4ge21lcmdlZFN0YXRlLCBhbGxNZXJnZWQ6IGZhbHNlfTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyB3ZSBtZXJnZWQgYWxsIG1lcmdlcnMgaW4gdGhlIHF1ZXVlLCBhbmQgd2UgY2FuIGNhbGwgcG9zdCBtZXJnZXIgbm93XG4gIHJldHVybiB7bWVyZ2VkU3RhdGUsIGFsbE1lcmdlZDogdHJ1ZX07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNQcm9wc1RvTWVyZ2U8U3RhdGUgZXh0ZW5kcyB7fT4oXG4gIHN0YXRlOiBTdGF0ZSxcbiAgbWVyZ2VyUHJvcHM6IHN0cmluZyB8IHN0cmluZ1tdXG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIEFycmF5LmlzQXJyYXkobWVyZ2VyUHJvcHMpXG4gICAgPyBCb29sZWFuKG1lcmdlclByb3BzLnNvbWUocCA9PiBzdGF0ZS5oYXNPd25Qcm9wZXJ0eShwKSkpXG4gICAgOiB0eXBlb2YgbWVyZ2VyUHJvcHMgPT09ICdzdHJpbmcnICYmIHN0YXRlLmhhc093blByb3BlcnR5KG1lcmdlclByb3BzKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFByb3BWYWx1ZVRvTWVyZ2VyPFN0YXRlIGV4dGVuZHMge30+KFxuICBzdGF0ZTogU3RhdGUsXG4gIG1lcmdlclByb3BzOiBzdHJpbmcgfCBzdHJpbmdbXSxcbiAgdG9NZXJnZVByb3BzPzogc3RyaW5nIHwgc3RyaW5nW11cbik6IFBhcnRpYWw8U3RhdGU+IHwgVmFsdWVPZjxTdGF0ZT4ge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheShtZXJnZXJQcm9wcylcbiAgICA/IG1lcmdlclByb3BzLnJlZHVjZSgoYWNjdSwgcCwgaSkgPT4ge1xuICAgICAgICBpZiAoIXRvTWVyZ2VQcm9wcykgcmV0dXJuIGFjY3U7XG4gICAgICAgIHJldHVybiB7Li4uYWNjdSwgW3RvTWVyZ2VQcm9wc1tpXV06IHN0YXRlW3BdfTtcbiAgICAgIH0sIHt9KVxuICAgIDogc3RhdGVbbWVyZ2VyUHJvcHNdO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gcmVzZXRTdGF0ZVRvTWVyZ2VQcm9wczxTdGF0ZSBleHRlbmRzIFZpc1N0YXRlPihcbiAgc3RhdGU6IFN0YXRlLFxuICBpbml0aWFsU3RhdGU6IFN0YXRlLFxuICBtZXJnZXJQcm9wczogc3RyaW5nIHwgc3RyaW5nW11cbikge1xuICByZXR1cm4gdG9BcnJheShtZXJnZXJQcm9wcykucmVkdWNlKFxuICAgIChhY2N1LCBwcm9wKSA9PiAoe1xuICAgICAgLi4uYWNjdSxcbiAgICAgIFtwcm9wXTogaW5pdGlhbFN0YXRlW3Byb3BdXG4gICAgfSksXG4gICAgc3RhdGVcbiAgKTtcbn1cbiJdfQ==
123
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9tZXJnZXItaGFuZGxlci50cyJdLCJuYW1lcyI6WyJpc1ZhbGlkTWVyZ2VyIiwibWVyZ2VyIiwibWVyZ2UiLCJwcm9wIiwiQXJyYXkiLCJpc0FycmF5IiwiY2FsbEZ1bmN0aW9uR2V0VGFzayIsImZuIiwiYmVmb3JlIiwicmV0IiwiYWZ0ZXIiLCJkaWZmIiwiZmlsdGVyIiwidCIsImluY2x1ZGVzIiwibWVyZ2VTdGF0ZUZyb21NZXJnZXJzIiwic3RhdGUiLCJpbml0aWFsU3RhdGUiLCJtZXJnZXJzIiwicG9zdE1lcmdlclBheWxvYWQiLCJtZXJnZWRTdGF0ZSIsIm1lcmdlclF1ZXVlIiwic2hpZnQiLCJ0b01lcmdlUHJvcCIsImhhc1Byb3BzVG9NZXJnZSIsIm1lcmdlckFjdGlvblBheWxvYWQiLCJ0b01lcmdlIiwiZ2V0UHJvcFZhbHVlVG9NZXJnZXIiLCJyZXNldFN0YXRlVG9NZXJnZVByb3BzIiwibWVyZ2VGdW5jIiwidXBkYXRlZFN0YXRlIiwibmV3VGFza3MiLCJsZW5ndGgiLCJ3YWl0VG9GaW5pc2giLCJhbGxNZXJnZWQiLCJtZXJnZXJQcm9wcyIsIkJvb2xlYW4iLCJzb21lIiwicCIsImhhc093blByb3BlcnR5IiwidG9NZXJnZVByb3BzIiwicmVkdWNlIiwiYWNjdSIsImkiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUdBOztBQUNBOzs7Ozs7QUFJTyxTQUFTQSxhQUFULENBQXVCQyxNQUF2QixFQUFxRDtBQUMxRCxTQUNFLHFCQUFTQSxNQUFULEtBQ0EsT0FBT0EsTUFBTSxDQUFDQyxLQUFkLEtBQXdCLFVBRHhCLEtBRUMsT0FBT0QsTUFBTSxDQUFDRSxJQUFkLEtBQXVCLFFBQXZCLElBQW1DQyxLQUFLLENBQUNDLE9BQU4sQ0FBY0osTUFBTSxDQUFDRSxJQUFyQixDQUZwQyxDQURGO0FBS0Q7QUFFRDtBQUNBO0FBQ0E7OztBQUNBLFNBQVNHLG1CQUFULENBQTZCQyxFQUE3QixFQUF3RDtBQUN0RCxNQUFNQyxNQUFNLEdBQUcsZ0NBQWY7QUFDQSxNQUFNQyxHQUFHLEdBQUdGLEVBQUUsRUFBZDtBQUNBLE1BQU1HLEtBQUssR0FBRyxnQ0FBZDtBQUNBLE1BQU1DLElBQUksR0FBR0QsS0FBSyxDQUFDRSxNQUFOLENBQWEsVUFBQUMsQ0FBQztBQUFBLFdBQUksQ0FBQ0wsTUFBTSxDQUFDTSxRQUFQLENBQWdCRCxDQUFoQixDQUFMO0FBQUEsR0FBZCxDQUFiO0FBQ0EsU0FBTyxDQUFDSixHQUFELEVBQU1FLElBQU4sQ0FBUDtBQUNEOztBQUVNLFNBQVNJLHFCQUFULENBQ0xDLEtBREssRUFFTEMsWUFGSyxFQUdMQyxPQUhLLEVBSUxDLGlCQUpLLEVBUUw7QUFDQTtBQUNBLE1BQUlDLFdBQVcsR0FBR0osS0FBbEIsQ0FGQSxDQUdBOztBQUNBLE1BQU1LLFdBQVcsdUNBQU9ILE9BQVAsQ0FBakI7O0FBSkE7QUFPRSxRQUFNakIsTUFBTSxHQUFHb0IsV0FBVyxDQUFDQyxLQUFaLEVBQWY7O0FBRUEsUUFDRXJCLE1BQU0sSUFDTkQsYUFBYSxDQUFDQyxNQUFELENBRGIsSUFFQUEsTUFBTSxDQUFDc0IsV0FGUCxJQUdBQyxlQUFlLENBQUNSLEtBQUQsRUFBUWYsTUFBTSxDQUFDc0IsV0FBZixDQUpqQixFQUtFO0FBQ0E7QUFDQTtBQUNBLFVBQU1FLG1CQUFtQixHQUFHO0FBQzFCUCxRQUFBQSxPQUFPLEVBQUVHLFdBRGlCO0FBRTFCRixRQUFBQSxpQkFBaUIsRUFBakJBO0FBRjBCLE9BQTVCLENBSEEsQ0FPQTs7QUFDQSxVQUFNTyxPQUFPLEdBQUdDLG9CQUFvQixDQUFDUCxXQUFELEVBQWNuQixNQUFNLENBQUNzQixXQUFyQixFQUFrQ3RCLE1BQU0sQ0FBQ3NCLFdBQXpDLENBQXBDO0FBRUFILE1BQUFBLFdBQVcsR0FBR1Esc0JBQXNCLENBQUNSLFdBQUQsRUFBY0gsWUFBZCxFQUE0QmhCLE1BQU0sQ0FBQ3NCLFdBQW5DLENBQXBDLENBVkEsQ0FXQTtBQUNBOztBQUNBLFVBQU1NLFNBQVMsR0FBRyxTQUFaQSxTQUFZO0FBQUEsZUFBTTVCLE1BQU0sQ0FBQ0MsS0FBUCxDQUFha0IsV0FBYixFQUEwQk0sT0FBMUIsRUFBbUMsS0FBbkMsRUFBMENELG1CQUExQyxDQUFOO0FBQUEsT0FBbEI7O0FBYkEsaUNBY2lDbkIsbUJBQW1CLENBQUN1QixTQUFELENBZHBEO0FBQUE7QUFBQSxVQWNPQyxZQWRQO0FBQUEsVUFjcUJDLFFBZHJCOztBQWdCQVgsTUFBQUEsV0FBVyxHQUFHVSxZQUFkLENBaEJBLENBa0JBOztBQUNBLFVBQUlDLFFBQVEsQ0FBQ0MsTUFBVCxJQUFtQi9CLE1BQU0sQ0FBQ2dDLFlBQTlCLEVBQTRDO0FBQzFDO0FBQ0E7QUFBQSxhQUFPO0FBQUNiLFlBQUFBLFdBQVcsRUFBWEEsV0FBRDtBQUFjYyxZQUFBQSxTQUFTLEVBQUU7QUFBekI7QUFBUDtBQUNEO0FBQ0Y7QUFyQ0g7O0FBTUEsU0FBT2IsV0FBVyxDQUFDVyxNQUFuQixFQUEyQjtBQUFBOztBQUFBO0FBZ0MxQixHQXRDRCxDQXdDQTs7O0FBQ0EsU0FBTztBQUFDWixJQUFBQSxXQUFXLEVBQVhBLFdBQUQ7QUFBY2MsSUFBQUEsU0FBUyxFQUFFO0FBQXpCLEdBQVA7QUFDRDs7QUFFTSxTQUFTVixlQUFULENBQ0xSLEtBREssRUFFTG1CLFdBRkssRUFHSTtBQUNULFNBQU8vQixLQUFLLENBQUNDLE9BQU4sQ0FBYzhCLFdBQWQsSUFDSEMsT0FBTyxDQUFDRCxXQUFXLENBQUNFLElBQVosQ0FBaUIsVUFBQUMsQ0FBQztBQUFBLFdBQUl0QixLQUFLLENBQUN1QixjQUFOLENBQXFCRCxDQUFyQixDQUFKO0FBQUEsR0FBbEIsQ0FBRCxDQURKLEdBRUgsT0FBT0gsV0FBUCxLQUF1QixRQUF2QixJQUFtQ25CLEtBQUssQ0FBQ3VCLGNBQU4sQ0FBcUJKLFdBQXJCLENBRnZDO0FBR0Q7O0FBRU0sU0FBU1Isb0JBQVQsQ0FDTFgsS0FESyxFQUVMbUIsV0FGSyxFQUdMSyxZQUhLLEVBSTRCO0FBQ2pDLFNBQU9wQyxLQUFLLENBQUNDLE9BQU4sQ0FBYzhCLFdBQWQsSUFDSEEsV0FBVyxDQUFDTSxNQUFaLENBQW1CLFVBQUNDLElBQUQsRUFBT0osQ0FBUCxFQUFVSyxDQUFWLEVBQWdCO0FBQ2pDLFFBQUksQ0FBQ0gsWUFBTCxFQUFtQixPQUFPRSxJQUFQO0FBQ25CLDJDQUFXQSxJQUFYLDRDQUFrQkYsWUFBWSxDQUFDRyxDQUFELENBQTlCLEVBQW9DM0IsS0FBSyxDQUFDc0IsQ0FBRCxDQUF6QztBQUNELEdBSEQsRUFHRyxFQUhILENBREcsR0FLSHRCLEtBQUssQ0FBQ21CLFdBQUQsQ0FMVDtBQU1EOztBQUVNLFNBQVNQLHNCQUFULENBQ0xaLEtBREssRUFFTEMsWUFGSyxFQUdMa0IsV0FISyxFQUlMO0FBQ0EsU0FBTyxvQkFBUUEsV0FBUixFQUFxQk0sTUFBckIsQ0FDTCxVQUFDQyxJQUFELEVBQU92QyxJQUFQO0FBQUEsMkNBQ0t1QyxJQURMLDRDQUVHdkMsSUFGSCxFQUVVYyxZQUFZLENBQUNkLElBQUQsQ0FGdEI7QUFBQSxHQURLLEVBS0xhLEtBTEssQ0FBUDtBQU9EIiwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IHtnZXRHbG9iYWxUYXNrUXVldWV9IGZyb20gJ3JlYWN0LXBhbG0vdGFza3MnO1xuaW1wb3J0IHtpc09iamVjdCwgdG9BcnJheX0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge1ZhbHVlT2Z9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtWaXNTdGF0ZSwgTWVyZ2VyLCBQb3N0TWVyZ2VyUGF5bG9hZH0gZnJvbSAnQGtlcGxlci5nbC9zY2hlbWFzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGlzVmFsaWRNZXJnZXIobWVyZ2VyOiBNZXJnZXI8YW55Pik6IGJvb2xlYW4ge1xuICByZXR1cm4gKFxuICAgIGlzT2JqZWN0KG1lcmdlcikgJiZcbiAgICB0eXBlb2YgbWVyZ2VyLm1lcmdlID09PSAnZnVuY3Rpb24nICYmXG4gICAgKHR5cGVvZiBtZXJnZXIucHJvcCA9PT0gJ3N0cmluZycgfHwgQXJyYXkuaXNBcnJheShtZXJnZXIucHJvcCkpXG4gICk7XG59XG5cbi8qKlxuICogQ2FsbCBzdGF0ZSB1cGRhdGVyLCByZXR1cm4gdGhlIHRhc2tzIGNyZWF0ZWQgYnkgdGhlIHN0YXRlIHVwZGF0ZSB3aXRoIHdpdGhUYXNrKClcbiAqL1xuZnVuY3Rpb24gY2FsbEZ1bmN0aW9uR2V0VGFzayhmbjogKCkgPT4gYW55KTogW2FueSwgYW55XSB7XG4gIGNvbnN0IGJlZm9yZSA9IGdldEdsb2JhbFRhc2tRdWV1ZSgpO1xuICBjb25zdCByZXQgPSBmbigpO1xuICBjb25zdCBhZnRlciA9IGdldEdsb2JhbFRhc2tRdWV1ZSgpO1xuICBjb25zdCBkaWZmID0gYWZ0ZXIuZmlsdGVyKHQgPT4gIWJlZm9yZS5pbmNsdWRlcyh0KSk7XG4gIHJldHVybiBbcmV0LCBkaWZmXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1lcmdlU3RhdGVGcm9tTWVyZ2VyczxTdGF0ZSBleHRlbmRzIFZpc1N0YXRlPihcbiAgc3RhdGU6IFN0YXRlLFxuICBpbml0aWFsU3RhdGU6IFN0YXRlLFxuICBtZXJnZXJzOiBNZXJnZXI8YW55PltdLFxuICBwb3N0TWVyZ2VyUGF5bG9hZDogUG9zdE1lcmdlclBheWxvYWRcbik6IHtcbiAgbWVyZ2VkU3RhdGU6IFN0YXRlO1xuICBhbGxNZXJnZWQ6IGJvb2xlYW47XG59IHtcbiAgLy8gY29uc3QgbmV3RGF0YUlkcyA9IE9iamVjdC5rZXlzKHBvc3RNZXJnZXJQYXlsb2FkLm5ld0RhdGFFbnRyaWVzKTtcbiAgbGV0IG1lcmdlZFN0YXRlID0gc3RhdGU7XG4gIC8vIG1lcmdlIHN0YXRlIHdpdGggY29uZmlnIHRvIGJlIG1lcmdlZFxuICBjb25zdCBtZXJnZXJRdWV1ZSA9IFsuLi5tZXJnZXJzXTtcblxuICB3aGlsZSAobWVyZ2VyUXVldWUubGVuZ3RoKSB7XG4gICAgY29uc3QgbWVyZ2VyID0gbWVyZ2VyUXVldWUuc2hpZnQoKTtcblxuICAgIGlmIChcbiAgICAgIG1lcmdlciAmJlxuICAgICAgaXNWYWxpZE1lcmdlcihtZXJnZXIpICYmXG4gICAgICBtZXJnZXIudG9NZXJnZVByb3AgJiZcbiAgICAgIGhhc1Byb3BzVG9NZXJnZShzdGF0ZSwgbWVyZ2VyLnRvTWVyZ2VQcm9wKVxuICAgICkge1xuICAgICAgLy8gcHV0IHRoZSByZXN0IG9mIG1lcmdlcnMgYW5kIHBheWxvYWQgZm9yIHBvc3RNZXJnZVVwZGF0ZXIgaW4gbWVyZ2VyQWN0aW9uUGF5bG9hZFxuICAgICAgLy8gYW5kIHBhc3MgaXQgdG8gY3VycmVudCBtZXJnZXIsIHdoaWNoIChpZiBhc3luYykga25vd3MgdG8gY29udGludWUgbWVyZ2luZ1xuICAgICAgY29uc3QgbWVyZ2VyQWN0aW9uUGF5bG9hZCA9IHtcbiAgICAgICAgbWVyZ2VyczogbWVyZ2VyUXVldWUsXG4gICAgICAgIHBvc3RNZXJnZXJQYXlsb2FkXG4gICAgICB9O1xuICAgICAgLy8gcmVzZXQgdG9NZXJnZVxuICAgICAgY29uc3QgdG9NZXJnZSA9IGdldFByb3BWYWx1ZVRvTWVyZ2VyKG1lcmdlZFN0YXRlLCBtZXJnZXIudG9NZXJnZVByb3AsIG1lcmdlci50b01lcmdlUHJvcCk7XG5cbiAgICAgIG1lcmdlZFN0YXRlID0gcmVzZXRTdGF0ZVRvTWVyZ2VQcm9wcyhtZXJnZWRTdGF0ZSwgaW5pdGlhbFN0YXRlLCBtZXJnZXIudG9NZXJnZVByb3ApO1xuICAgICAgLy8gY2FsbCBtZXJnZXJcbiAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1sb29wLWZ1bmNcbiAgICAgIGNvbnN0IG1lcmdlRnVuYyA9ICgpID0+IG1lcmdlci5tZXJnZShtZXJnZWRTdGF0ZSwgdG9NZXJnZSwgZmFsc2UsIG1lcmdlckFjdGlvblBheWxvYWQpO1xuICAgICAgY29uc3QgW3VwZGF0ZWRTdGF0ZSwgbmV3VGFza3NdID0gY2FsbEZ1bmN0aW9uR2V0VGFzayhtZXJnZUZ1bmMpO1xuXG4gICAgICBtZXJnZWRTdGF0ZSA9IHVwZGF0ZWRTdGF0ZTtcblxuICAgICAgLy8gY2hlY2sgaWYgYXN5bmNUYXNrIHdhcyBjcmVhdGVkICh0aW1lIGNvbnN1bWluZyB0YXNrcylcbiAgICAgIGlmIChuZXdUYXNrcy5sZW5ndGggJiYgbWVyZ2VyLndhaXRUb0ZpbmlzaCkge1xuICAgICAgICAvLyBza2lwIHJlc3QsIHRoZSBhc3luYyBtZXJnZXIgd2lsbCBjYWxsIGFwcGx5TWVyZ2VydXBkYXRlcigpIHRvIGNvbnRpbnVlXG4gICAgICAgIHJldHVybiB7bWVyZ2VkU3RhdGUsIGFsbE1lcmdlZDogZmFsc2V9O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8vIHdlIG1lcmdlZCBhbGwgbWVyZ2VycyBpbiB0aGUgcXVldWUsIGFuZCB3ZSBjYW4gY2FsbCBwb3N0IG1lcmdlciBub3dcbiAgcmV0dXJuIHttZXJnZWRTdGF0ZSwgYWxsTWVyZ2VkOiB0cnVlfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGhhc1Byb3BzVG9NZXJnZTxTdGF0ZSBleHRlbmRzIHt9PihcbiAgc3RhdGU6IFN0YXRlLFxuICBtZXJnZXJQcm9wczogc3RyaW5nIHwgc3RyaW5nW11cbik6IGJvb2xlYW4ge1xuICByZXR1cm4gQXJyYXkuaXNBcnJheShtZXJnZXJQcm9wcylcbiAgICA/IEJvb2xlYW4obWVyZ2VyUHJvcHMuc29tZShwID0+IHN0YXRlLmhhc093blByb3BlcnR5KHApKSlcbiAgICA6IHR5cGVvZiBtZXJnZXJQcm9wcyA9PT0gJ3N0cmluZycgJiYgc3RhdGUuaGFzT3duUHJvcGVydHkobWVyZ2VyUHJvcHMpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHJvcFZhbHVlVG9NZXJnZXI8U3RhdGUgZXh0ZW5kcyB7fT4oXG4gIHN0YXRlOiBTdGF0ZSxcbiAgbWVyZ2VyUHJvcHM6IHN0cmluZyB8IHN0cmluZ1tdLFxuICB0b01lcmdlUHJvcHM/OiBzdHJpbmcgfCBzdHJpbmdbXVxuKTogUGFydGlhbDxTdGF0ZT4gfCBWYWx1ZU9mPFN0YXRlPiB7XG4gIHJldHVybiBBcnJheS5pc0FycmF5KG1lcmdlclByb3BzKVxuICAgID8gbWVyZ2VyUHJvcHMucmVkdWNlKChhY2N1LCBwLCBpKSA9PiB7XG4gICAgICAgIGlmICghdG9NZXJnZVByb3BzKSByZXR1cm4gYWNjdTtcbiAgICAgICAgcmV0dXJuIHsuLi5hY2N1LCBbdG9NZXJnZVByb3BzW2ldXTogc3RhdGVbcF19O1xuICAgICAgfSwge30pXG4gICAgOiBzdGF0ZVttZXJnZXJQcm9wc107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiByZXNldFN0YXRlVG9NZXJnZVByb3BzPFN0YXRlIGV4dGVuZHMgVmlzU3RhdGU+KFxuICBzdGF0ZTogU3RhdGUsXG4gIGluaXRpYWxTdGF0ZTogU3RhdGUsXG4gIG1lcmdlclByb3BzOiBzdHJpbmcgfCBzdHJpbmdbXVxuKSB7XG4gIHJldHVybiB0b0FycmF5KG1lcmdlclByb3BzKS5yZWR1Y2UoXG4gICAgKGFjY3UsIHByb3ApID0+ICh7XG4gICAgICAuLi5hY2N1LFxuICAgICAgW3Byb3BdOiBpbml0aWFsU3RhdGVbcHJvcF1cbiAgICB9KSxcbiAgICBzdGF0ZVxuICApO1xufVxuIl19
@@ -1,23 +1,3 @@
1
- // Copyright (c) 2023 Uber Technologies, Inc.
2
- //
3
- // Permission is hereby granted, free of charge, to any person obtaining a copy
4
- // of this software and associated documentation files (the "Software"), to deal
5
- // in the Software without restriction, including without limitation the rights
6
- // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7
- // copies of the Software, and to permit persons to whom the Software is
8
- // furnished to do so, subject to the following conditions:
9
- //
10
- // The above copyright notice and this permission notice shall be included in
11
- // all copies or substantial portions of the Software.
12
- //
13
- // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14
- // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15
- // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16
- // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17
- // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18
- // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19
- // THE SOFTWARE.
20
-
21
1
  "use strict";
22
2
 
23
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
@@ -29,7 +9,11 @@ exports.enhanceReduxMiddleware = enhanceReduxMiddleware;
29
9
 
30
10
  var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
31
11
 
32
- var _tasks = require("react-palm/tasks");// Extra helpers for redux
12
+ var _tasks = require("react-palm/tasks");
13
+
14
+ // SPDX-License-Identifier: MIT
15
+ // Copyright contributors to the kepler.gl project
16
+ // Extra helpers for redux
33
17
  // We are exposing this secause react-palm has no UMD module and
34
18
  // users need taskMiddleware to initiate their redux middle ware
35
19
 
@@ -43,4 +27,4 @@ function enhanceReduxMiddleware() {
43
27
  var middlewares = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
44
28
  return [].concat((0, _toConsumableArray2["default"])(middlewares), [_tasks.taskMiddleware]);
45
29
  }
46
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9taWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbImVuaGFuY2VSZWR1eE1pZGRsZXdhcmUiLCJtaWRkbGV3YXJlcyIsInRhc2tNaWRkbGV3YXJlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQXVCQTs7QUF2QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sU0FBU0Esc0JBQVQsR0FBOEU7QUFBQSxNQUE5Q0MsV0FBOEMsdUVBQWxCLEVBQWtCO0FBQ25GLHVEQUFXQSxXQUFYLElBQXdCQyxxQkFBeEI7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMyBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbi8vIEV4dHJhIGhlbHBlcnMgZm9yIHJlZHV4XG4vLyBXZSBhcmUgZXhwb3NpbmcgdGhpcyBzZWNhdXNlIHJlYWN0LXBhbG0gaGFzIG5vIFVNRCBtb2R1bGUgYW5kXG4vLyB1c2VycyBuZWVkIHRhc2tNaWRkbGV3YXJlIHRvIGluaXRpYXRlIHRoZWlyIHJlZHV4IG1pZGRsZSB3YXJlXG5pbXBvcnQge3Rhc2tNaWRkbGV3YXJlfSBmcm9tICdyZWFjdC1wYWxtL3Rhc2tzJztcbmltcG9ydCB7TWlkZGxld2FyZX0gZnJvbSAncmVkdXgnO1xuXG4vKipcbiAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gZW5oYW5jZSByZWR1eCBtaWRkbGV3YXJlIGFuZCBwcm92aWRlXG4gKiBmdW5jdGlvbmFsaXR5IHRvIHN1cHBvcnQgcmVhY3QtcGFsbVxuICogQHBhcmFtIG1pZGRsZXdhcmVzIGN1cnJlbnQgcmVkdXggbWlkZGxld2FyZXNcbiAqIEByZXR1cm5zIHsqW119IHRoZSBvcmlnaW5hbCBsaXN0IG9mIG1pZGRsZXdhcmVzIHBsdXMgdGhlIHJlYWN0LXBhbG0gbWlkZGxld2FyZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5oYW5jZVJlZHV4TWlkZGxld2FyZShtaWRkbGV3YXJlczogTWlkZGxld2FyZVtdID0gW10pOiBNaWRkbGV3YXJlW10ge1xuICByZXR1cm4gWy4uLm1pZGRsZXdhcmVzLCB0YXNrTWlkZGxld2FyZV07XG59XG4iXX0=
30
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9taWRkbGV3YXJlLnRzIl0sIm5hbWVzIjpbImVuaGFuY2VSZWR1eE1pZGRsZXdhcmUiLCJtaWRkbGV3YXJlcyIsInRhc2tNaWRkbGV3YXJlIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQU1BOztBQU5BO0FBQ0E7QUFFQTtBQUNBO0FBQ0E7O0FBSUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ08sU0FBU0Esc0JBQVQsR0FBOEU7QUFBQSxNQUE5Q0MsV0FBOEMsdUVBQWxCLEVBQWtCO0FBQ25GLHVEQUFXQSxXQUFYLElBQXdCQyxxQkFBeEI7QUFDRCIsInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbi8vIEV4dHJhIGhlbHBlcnMgZm9yIHJlZHV4XG4vLyBXZSBhcmUgZXhwb3NpbmcgdGhpcyBzZWNhdXNlIHJlYWN0LXBhbG0gaGFzIG5vIFVNRCBtb2R1bGUgYW5kXG4vLyB1c2VycyBuZWVkIHRhc2tNaWRkbGV3YXJlIHRvIGluaXRpYXRlIHRoZWlyIHJlZHV4IG1pZGRsZSB3YXJlXG5pbXBvcnQge3Rhc2tNaWRkbGV3YXJlfSBmcm9tICdyZWFjdC1wYWxtL3Rhc2tzJztcbmltcG9ydCB7TWlkZGxld2FyZX0gZnJvbSAncmVkdXgnO1xuXG4vKipcbiAqIFRoaXMgbWV0aG9kIGlzIHVzZWQgdG8gZW5oYW5jZSByZWR1eCBtaWRkbGV3YXJlIGFuZCBwcm92aWRlXG4gKiBmdW5jdGlvbmFsaXR5IHRvIHN1cHBvcnQgcmVhY3QtcGFsbVxuICogQHBhcmFtIG1pZGRsZXdhcmVzIGN1cnJlbnQgcmVkdXggbWlkZGxld2FyZXNcbiAqIEByZXR1cm5zIHsqW119IHRoZSBvcmlnaW5hbCBsaXN0IG9mIG1pZGRsZXdhcmVzIHBsdXMgdGhlIHJlYWN0LXBhbG0gbWlkZGxld2FyZVxuICovXG5leHBvcnQgZnVuY3Rpb24gZW5oYW5jZVJlZHV4TWlkZGxld2FyZShtaWRkbGV3YXJlczogTWlkZGxld2FyZVtdID0gW10pOiBNaWRkbGV3YXJlW10ge1xuICByZXR1cm4gWy4uLm1pZGRsZXdhcmVzLCB0YXNrTWlkZGxld2FyZV07XG59XG4iXX0=
@@ -32,11 +32,4 @@ export declare const loadCloudMapUpdater: (state: ProviderState, action: ActionP
32
32
  export declare const loadCloudMapSuccessUpdater: (state: ProviderState, action: ActionPayload<ProviderActions.LoadCloudMapSuccessPayload>) => ProviderState;
33
33
  export declare const loadCloudMapErrorUpdater: (state: ProviderState, action: ActionPayload<ProviderActions.LoadCloudMapErrorPayload>) => ProviderState;
34
34
  export declare const resetProviderStatusUpdater: (state: ProviderState) => ProviderState;
35
- /**
36
- * Set current cloudProvider
37
- */
38
- export declare const setCloudProviderUpdater: (state: ProviderState, action: ActionPayload<ProviderActions.SetCloudProviderPayload>) => ProviderState;
39
- export declare const getSavedMapsUpdater: (state: ProviderState, action: ActionPayload<ProviderActions.GetSavedMapsPayload>) => ProviderState;
40
- export declare const getSavedMapsSuccessUpdater: (state: ProviderState, action: ActionPayload<ProviderActions.GetSavedMapsSuccessPayload>) => ProviderState;
41
- export declare const getSavedMapsErrorUpdater: (state: ProviderState, action: ActionPayload<ProviderActions.GetSavedMapsErrorPayload>) => ProviderState;
42
35
  export {};