kepler.gl 3.1.0 → 3.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/README.md +27 -132
  2. package/dist/src/common-utils/src/data-type.d.ts +9 -1
  3. package/dist/src/components/src/common/data-table/header-cell.d.ts +1 -0
  4. package/dist/src/components/src/common/data-table/index.d.ts +1 -0
  5. package/dist/src/components/src/common/file-uploader/file-drop.d.ts +1 -32
  6. package/dist/src/components/src/common/item-selector/dropdown-list.d.ts +2 -2
  7. package/dist/src/components/src/common/item-selector/item-selector.d.ts +1 -1
  8. package/dist/src/components/src/common/item-selector/typeahead.d.ts +1 -1
  9. package/dist/src/components/src/geocoder/geocoder.d.ts +7 -0
  10. package/dist/src/components/src/geocoder-panel.d.ts +2 -2
  11. package/dist/src/components/src/hooks/use-fetch-vector-tile-metadata.d.ts +4 -3
  12. package/dist/src/constants/src/default-settings.d.ts +14 -1
  13. package/dist/src/deckgl-arrow-layers/src/constants.d.ts +0 -12
  14. package/dist/src/deckgl-arrow-layers/src/index.d.ts +0 -1
  15. package/dist/src/deckgl-arrow-layers/src/utils/utils.d.ts +12 -1
  16. package/dist/src/duckdb/src/components/preview-data-panel.d.ts +7 -2
  17. package/dist/src/duckdb/src/components/schema-panel.d.ts +12 -3
  18. package/dist/src/duckdb/src/processors/data-processor.d.ts +1 -0
  19. package/dist/src/duckdb/src/table/duckdb-table-utils.d.ts +106 -0
  20. package/dist/src/duckdb/src/table/duckdb-table.d.ts +5 -3
  21. package/dist/src/processors/src/data-processor.d.ts +15 -1
  22. package/dist/src/reducers/src/provider-state-updaters.d.ts +1 -0
  23. package/dist/src/reducers/src/vis-state-updaters.d.ts +1 -1
  24. package/dist/src/table/src/dataset-utils.d.ts +1 -1
  25. package/dist/src/table/src/tileset/vector-tile-utils.d.ts +17 -1
  26. package/dist/src/utils/src/application-config.d.ts +4 -3
  27. package/dist/src/utils/src/data-utils.d.ts +9 -3
  28. package/dist/src/utils/src/indexed-data-container.d.ts +2 -2
  29. package/dist/src/utils/src/map-style-utils/mapbox-utils.d.ts +1 -1
  30. package/dist/src/utils/src/map-utils.d.ts +1 -1
  31. package/dist/src/utils/src/plot.d.ts +2 -2
  32. package/package.json +5 -5
  33. package/src/actions/package.json +8 -8
  34. package/src/ai-assistant/dist/components/ai-assistant-component.js +2 -1
  35. package/src/ai-assistant/package.json +7 -7
  36. package/src/ai-assistant/src/components/ai-assistant-component.tsx +1 -0
  37. package/src/cloud-providers/package.json +2 -2
  38. package/src/common-utils/dist/data-type.d.ts +9 -1
  39. package/src/common-utils/dist/data-type.js +50 -1
  40. package/src/common-utils/package.json +3 -3
  41. package/src/common-utils/src/data-type.ts +49 -1
  42. package/src/components/dist/common/data-table/header-cell.d.ts +1 -0
  43. package/src/components/dist/common/data-table/header-cell.js +2 -2
  44. package/src/components/dist/common/data-table/index.d.ts +1 -0
  45. package/src/components/dist/common/data-table/index.js +5 -1
  46. package/src/components/dist/common/file-uploader/file-drop.d.ts +1 -32
  47. package/src/components/dist/common/file-uploader/file-drop.js +152 -167
  48. package/src/components/dist/common/item-selector/dropdown-list.d.ts +2 -2
  49. package/src/components/dist/common/item-selector/dropdown-list.js +2 -3
  50. package/src/components/dist/common/item-selector/item-selector.d.ts +1 -1
  51. package/src/components/dist/common/item-selector/typeahead.d.ts +1 -1
  52. package/src/components/dist/common/range-brush.js +3 -3
  53. package/src/components/dist/geocoder/geocoder.d.ts +7 -0
  54. package/src/components/dist/geocoder/geocoder.js +19 -11
  55. package/src/components/dist/geocoder-panel.d.ts +2 -2
  56. package/src/components/dist/geocoder-panel.js +64 -91
  57. package/src/components/dist/hooks/use-fetch-vector-tile-metadata.d.ts +4 -3
  58. package/src/components/dist/hooks/use-fetch-vector-tile-metadata.js +35 -26
  59. package/src/components/dist/hooks/use-legend-position.js +8 -4
  60. package/src/components/dist/map/map-legend-panel.js +2 -3
  61. package/src/components/dist/modal-container.js +8 -8
  62. package/src/components/dist/modals/tilesets-modals/tileset-vector-form.js +31 -12
  63. package/src/components/dist/side-panel/layer-panel/color-palette-preset.js +2 -2
  64. package/src/components/dist/side-panel/layer-panel/color-range-selector.js +10 -11
  65. package/src/components/dist/side-panel/layer-panel/color-selector.js +3 -3
  66. package/src/components/dist/side-panel/layer-panel/custom-palette.js +1 -2
  67. package/src/components/dist/side-panel/layer-panel/layer-configurator.js +6 -8
  68. package/src/components/dist/side-panel/layer-panel/vector-tile-layer-configurator.js +1 -2
  69. package/src/components/package.json +16 -16
  70. package/src/components/src/common/data-table/header-cell.tsx +2 -1
  71. package/src/components/src/common/data-table/index.tsx +4 -0
  72. package/src/components/src/common/file-uploader/file-drop.tsx +186 -161
  73. package/src/components/src/common/item-selector/dropdown-list.tsx +1 -6
  74. package/src/components/src/common/range-brush.tsx +2 -2
  75. package/src/components/src/geocoder/geocoder.tsx +16 -8
  76. package/src/components/src/geocoder-panel.tsx +95 -85
  77. package/src/components/src/hooks/use-fetch-vector-tile-metadata.ts +27 -25
  78. package/src/components/src/hooks/use-legend-position.ts +5 -2
  79. package/src/components/src/map/map-legend-panel.tsx +1 -2
  80. package/src/components/src/modal-container.tsx +7 -7
  81. package/src/components/src/modals/tilesets-modals/tileset-vector-form.tsx +12 -3
  82. package/src/components/src/side-panel/layer-panel/color-palette-preset.tsx +1 -1
  83. package/src/components/src/side-panel/layer-panel/color-range-selector.tsx +6 -11
  84. package/src/components/src/side-panel/layer-panel/color-selector.tsx +2 -2
  85. package/src/components/src/side-panel/layer-panel/custom-palette.tsx +0 -1
  86. package/src/components/src/side-panel/layer-panel/layer-configurator.tsx +23 -33
  87. package/src/components/src/side-panel/layer-panel/vector-tile-layer-configurator.tsx +0 -1
  88. package/src/constants/dist/default-settings.d.ts +14 -1
  89. package/src/constants/dist/default-settings.js +20 -5
  90. package/src/constants/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/91/4f/6c65f3a1eba584ffd2d892cabc25ab5804d4a9ef53694c98707372a83e56343a274bec04f15927a6fe7602615f0f23f73ccf599f524ef97ad6c77c8832ea +1 -0
  91. package/src/constants/node_modules/.cache/terser-webpack-plugin/index-v5/a6/b2/5424aa4477192fb44cc90fd80892efdc96731f2ff0f48e8f28abf64243cc +2 -0
  92. package/src/constants/package.json +2 -2
  93. package/src/constants/src/default-settings.ts +16 -1
  94. package/src/constants/umd/keplergl.min.js +2 -2
  95. package/src/deckgl-arrow-layers/dist/constants.d.ts +0 -12
  96. package/src/deckgl-arrow-layers/dist/constants.js +4 -15
  97. package/src/deckgl-arrow-layers/dist/index.d.ts +0 -1
  98. package/src/deckgl-arrow-layers/dist/index.js +1 -8
  99. package/src/deckgl-arrow-layers/dist/layers/geo-arrow-scatterplot-layer.js +4 -4
  100. package/src/deckgl-arrow-layers/dist/layers/geo-arrow-text-layer.js +5 -5
  101. package/src/deckgl-arrow-layers/dist/utils/utils.d.ts +12 -1
  102. package/src/deckgl-arrow-layers/dist/utils/utils.js +7 -5
  103. package/src/deckgl-arrow-layers/package.json +2 -1
  104. package/src/deckgl-arrow-layers/src/constants.ts +0 -13
  105. package/src/deckgl-arrow-layers/src/index.ts +0 -2
  106. package/src/deckgl-arrow-layers/src/layers/geo-arrow-scatterplot-layer.ts +5 -3
  107. package/src/deckgl-arrow-layers/src/layers/geo-arrow-text-layer.ts +8 -4
  108. package/src/deckgl-arrow-layers/src/utils/utils.ts +7 -5
  109. package/src/deckgl-layers/dist/deckgl-extensions/filter-arrow-layer.d.ts +1 -1
  110. package/src/deckgl-layers/dist/deckgl-extensions/filter-shader-module.d.ts +1 -1
  111. package/src/deckgl-layers/dist/deckgl-extensions/filter-shader-module.js +3 -3
  112. package/src/deckgl-layers/package.json +5 -5
  113. package/src/deckgl-layers/src/deckgl-extensions/filter-shader-module.ts +4 -3
  114. package/src/duckdb/dist/components/monaco-editor.js +4 -5
  115. package/src/duckdb/dist/components/preview-data-panel.d.ts +7 -2
  116. package/src/duckdb/dist/components/preview-data-panel.js +7 -8
  117. package/src/duckdb/dist/components/schema-panel.d.ts +12 -3
  118. package/src/duckdb/dist/components/schema-panel.js +41 -24
  119. package/src/duckdb/dist/components/sql-panel.js +245 -56
  120. package/src/duckdb/dist/init.js +20 -14
  121. package/src/duckdb/dist/processors/data-processor.d.ts +1 -0
  122. package/src/duckdb/dist/processors/data-processor.js +4 -4
  123. package/src/duckdb/dist/table/duckdb-table-utils.d.ts +106 -0
  124. package/src/duckdb/dist/table/duckdb-table-utils.js +493 -2
  125. package/src/duckdb/dist/table/duckdb-table.d.ts +5 -3
  126. package/src/duckdb/dist/table/duckdb-table.js +153 -261
  127. package/src/duckdb/package.json +6 -6
  128. package/src/duckdb/src/components/monaco-editor.tsx +3 -3
  129. package/src/duckdb/src/components/preview-data-panel.tsx +15 -8
  130. package/src/duckdb/src/components/schema-panel.tsx +92 -21
  131. package/src/duckdb/src/components/sql-panel.tsx +160 -22
  132. package/src/duckdb/src/init.ts +4 -1
  133. package/src/duckdb/src/processors/data-processor.ts +2 -2
  134. package/src/duckdb/src/table/duckdb-table-utils.ts +407 -1
  135. package/src/duckdb/src/table/duckdb-table.ts +61 -92
  136. package/src/effects/package.json +5 -5
  137. package/src/layers/dist/arc-layer/arc-layer.d.ts +1 -1
  138. package/src/layers/dist/arc-layer/arc-layer.js +2 -3
  139. package/src/layers/dist/base-layer.d.ts +7 -6
  140. package/src/layers/dist/base-layer.js +36 -19
  141. package/src/layers/dist/geojson-layer/geojson-layer.js +4 -2
  142. package/src/layers/dist/geojson-layer/geojson-utils.js +10 -3
  143. package/src/layers/dist/heatmap-layer/heatmap-layer.d.ts +2 -0
  144. package/src/layers/dist/heatmap-layer/heatmap-layer.js +16 -9
  145. package/src/layers/dist/icon-layer/icon-layer.d.ts +6 -3
  146. package/src/layers/dist/icon-layer/icon-layer.js +19 -11
  147. package/src/layers/dist/index.d.ts +1 -1
  148. package/src/layers/dist/index.js +1 -1
  149. package/src/layers/dist/layer-text-label.d.ts +9 -0
  150. package/src/layers/dist/layer-text-label.js +51 -6
  151. package/src/layers/dist/layer-utils.d.ts +39 -30
  152. package/src/layers/dist/layer-utils.js +69 -9
  153. package/src/layers/dist/line-layer/line-layer.d.ts +1 -1
  154. package/src/layers/dist/line-layer/line-layer.js +2 -3
  155. package/src/layers/dist/point-layer/point-layer.d.ts +10 -7
  156. package/src/layers/dist/point-layer/point-layer.js +16 -8
  157. package/src/layers/dist/trip-layer/trip-layer.d.ts +2 -2
  158. package/src/layers/dist/trip-layer/trip-layer.js +4 -2
  159. package/src/layers/dist/vector-tile/abstract-tile-layer.d.ts +3 -7
  160. package/src/layers/dist/vector-tile/abstract-tile-layer.js +7 -6
  161. package/src/layers/dist/vector-tile/vector-tile-layer.d.ts +5 -7
  162. package/src/layers/dist/vector-tile/vector-tile-layer.js +23 -2
  163. package/src/layers/package.json +11 -10
  164. package/src/layers/src/arc-layer/arc-layer.ts +1 -1
  165. package/src/layers/src/base-layer.ts +50 -9
  166. package/src/layers/src/geojson-layer/geojson-layer.ts +3 -1
  167. package/src/layers/src/geojson-layer/geojson-utils.ts +4 -1
  168. package/src/layers/src/heatmap-layer/heatmap-layer.ts +17 -12
  169. package/src/layers/src/icon-layer/icon-layer.ts +7 -3
  170. package/src/layers/src/index.ts +1 -2
  171. package/src/layers/src/layer-text-label.ts +53 -4
  172. package/src/layers/src/layer-utils.ts +88 -9
  173. package/src/layers/src/line-layer/line-layer.ts +1 -1
  174. package/src/layers/src/point-layer/point-layer.ts +15 -11
  175. package/src/layers/src/trip-layer/trip-layer.ts +4 -2
  176. package/src/layers/src/vector-tile/abstract-tile-layer.ts +11 -5
  177. package/src/layers/src/vector-tile/vector-tile-layer.ts +33 -4
  178. package/src/localization/package.json +1 -1
  179. package/src/processors/dist/data-processor.d.ts +15 -1
  180. package/src/processors/dist/data-processor.js +104 -11
  181. package/src/processors/package.json +8 -7
  182. package/src/processors/src/data-processor.ts +116 -13
  183. package/src/reducers/dist/export-utils.js +2 -2
  184. package/src/reducers/dist/layer-utils.js +1 -1
  185. package/src/reducers/dist/provider-state-updaters.d.ts +1 -0
  186. package/src/reducers/dist/provider-state-updaters.js +5 -2
  187. package/src/reducers/dist/vis-state-updaters.d.ts +1 -1
  188. package/src/reducers/dist/vis-state-updaters.js +23 -12
  189. package/src/reducers/package.json +16 -16
  190. package/src/reducers/src/export-utils.ts +1 -1
  191. package/src/reducers/src/layer-utils.ts +2 -1
  192. package/src/reducers/src/provider-state-updaters.ts +4 -1
  193. package/src/reducers/src/vis-state-updaters.ts +45 -10
  194. package/src/schemas/dist/dataset-schema.js +35 -6
  195. package/src/schemas/package.json +7 -7
  196. package/src/schemas/src/dataset-schema.ts +36 -8
  197. package/src/styles/node_modules/.cache/terser-webpack-plugin/content-v2/sha512/a3/a9/7f26bbc52905b0e21e9366a30ef0ba98f4ccf9aa8dd8326d90ba90191ba2e305323f505bf134c825356156c793bf9386ed2cef2aeb48eb327c26d106f69a +1 -0
  198. package/src/styles/node_modules/.cache/terser-webpack-plugin/index-v5/7e/51/b8756555a0e2e696d944445ac23f7febf769006013fbc8419f39a701649d +2 -0
  199. package/src/styles/package.json +2 -2
  200. package/src/styles/umd/keplergl.min.js +2 -2
  201. package/src/table/dist/dataset-utils.js +23 -14
  202. package/src/table/dist/src/table/src/dataset-utils.d.ts +1 -1
  203. package/src/table/dist/src/table/src/tileset/vector-tile-utils.d.ts +17 -1
  204. package/src/table/dist/tileset/vector-tile-utils.js +122 -2
  205. package/src/table/package.json +5 -5
  206. package/src/table/src/dataset-utils.ts +16 -6
  207. package/src/table/src/tileset/vector-tile-utils.ts +131 -8
  208. package/src/tasks/package.json +2 -2
  209. package/src/types/actions.d.ts +1 -0
  210. package/src/types/layers.d.ts +1 -0
  211. package/src/types/package.json +1 -1
  212. package/src/types/types.d.ts +17 -0
  213. package/src/utils/dist/application-config.d.ts +4 -3
  214. package/src/utils/dist/application-config.js +3 -2
  215. package/src/utils/dist/data-scale-utils.js +4 -4
  216. package/src/utils/dist/data-utils.d.ts +9 -3
  217. package/src/utils/dist/data-utils.js +40 -7
  218. package/src/utils/dist/dataset-utils.js +23 -8
  219. package/src/utils/dist/indexed-data-container.d.ts +2 -2
  220. package/src/utils/dist/indexed-data-container.js +1 -1
  221. package/src/utils/dist/map-style-utils/mapbox-utils.d.ts +1 -1
  222. package/src/utils/dist/map-style-utils/mapbox-utils.js +3 -3
  223. package/src/utils/dist/plot.d.ts +2 -2
  224. package/src/utils/dist/plot.js +6 -6
  225. package/src/utils/map-utils.spec.js +1 -2
  226. package/src/utils/package.json +5 -4
  227. package/src/utils/src/application-config.ts +11 -8
  228. package/src/utils/src/data-scale-utils.ts +3 -3
  229. package/src/utils/src/data-utils.ts +36 -7
  230. package/src/utils/src/dataset-utils.ts +41 -9
  231. package/src/utils/src/indexed-data-container.ts +1 -1
  232. package/src/utils/src/map-style-utils/mapbox-utils.ts +2 -2
  233. package/src/utils/src/plot.ts +5 -5
  234. package/umd/keplergl.min.js +1279 -1295
@@ -1,175 +1,28 @@
1
1
  "use strict";
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ var _typeof = require("@babel/runtime/helpers/typeof");
4
5
  Object.defineProperty(exports, "__esModule", {
5
6
  value: true
6
7
  });
7
8
  exports["default"] = void 0;
8
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
9
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
10
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
11
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
12
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
13
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
- var _react = _interopRequireDefault(require("react"));
9
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
+ var _react = _interopRequireWildcard(require("react"));
15
11
  var _window = _interopRequireDefault(require("global/window"));
16
- function _callSuper(t, o, e) { return o = (0, _getPrototypeOf2["default"])(o), (0, _possibleConstructorReturn2["default"])(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2["default"])(t).constructor) : o.apply(t, e)); }
17
- function _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); } // SPDX-License-Identifier: MIT
12
+ function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
13
+ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; }
14
+ // SPDX-License-Identifier: MIT
18
15
  // Copyright contributors to the kepler.gl project
16
+
19
17
  /**
20
18
  * Copied from https://github.com/sarink/react-file-drop
21
19
  * For React 16.8 compatibility
22
20
  */
23
- /** @typedef {import('./file-drop').FileDropProps} FileDropProps */
24
- /** @augments React.PureComponent<FileDropProps> */
25
- var FileDrop = /*#__PURE__*/function (_React$PureComponent) {
26
- function FileDrop() {
27
- var _this;
28
- (0, _classCallCheck2["default"])(this, FileDrop);
29
- for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
30
- args[_key] = arguments[_key];
31
- }
32
- _this = _callSuper(this, FileDrop, [].concat(args));
33
- (0, _defineProperty2["default"])(_this, "frameDragCounter", 0);
34
- (0, _defineProperty2["default"])(_this, "state", {
35
- draggingOverFrame: false,
36
- draggingOverTarget: false
37
- });
38
- (0, _defineProperty2["default"])(_this, "resetDragging", function () {
39
- _this.frameDragCounter = 0;
40
- _this.setState({
41
- draggingOverFrame: false,
42
- draggingOverTarget: false
43
- });
44
- });
45
- (0, _defineProperty2["default"])(_this, "handleWindowDragOverOrDrop", function (event) {
46
- // This prevents the browser from trying to load whatever file the user dropped on the window
47
- event.preventDefault();
48
- });
49
- (0, _defineProperty2["default"])(_this, "handleFrameDrag", function (event) {
50
- // Only allow dragging of files
51
- if (!FileDrop.eventHasFiles(event)) return;
52
21
 
53
- // We are listening for events on the 'frame', so every time the user drags over any element in the frame's tree,
54
- // the event bubbles up to the frame. By keeping count of how many "dragenters" we get, we can tell if they are still
55
- // "draggingOverFrame" (b/c you get one "dragenter" initially, and one "dragenter"/one "dragleave" for every bubble)
56
- // This is far better than a "dragover" handler, which would be calling `setState` continuously.
57
- _this.frameDragCounter += event.type === 'dragenter' ? 1 : -1;
58
- if (_this.frameDragCounter === 1) {
59
- _this.setState({
60
- draggingOverFrame: true
61
- });
62
- if (_this.props.onFrameDragEnter) _this.props.onFrameDragEnter(event);
63
- return;
64
- }
65
- if (_this.frameDragCounter === 0) {
66
- _this.setState({
67
- draggingOverFrame: false
68
- });
69
- if (_this.props.onFrameDragLeave) _this.props.onFrameDragLeave(event);
70
- return;
71
- }
72
- });
73
- (0, _defineProperty2["default"])(_this, "handleFrameDrop", function (event) {
74
- event.preventDefault();
75
- if (!_this.state.draggingOverTarget) {
76
- _this.resetDragging();
77
- if (_this.props.onFrameDrop) _this.props.onFrameDrop(event);
78
- }
79
- });
80
- (0, _defineProperty2["default"])(_this, "handleDragOver", function (event) {
81
- if (FileDrop.eventHasFiles(event)) {
82
- _this.setState({
83
- draggingOverTarget: true
84
- });
85
- if (!FileDrop.isIE() && _this.props.dropEffect) event.dataTransfer.dropEffect = _this.props.dropEffect;
86
- if (_this.props.onDragOver) _this.props.onDragOver(event);
87
- }
88
- });
89
- (0, _defineProperty2["default"])(_this, "handleDragLeave", function (event) {
90
- _this.setState({
91
- draggingOverTarget: false
92
- });
93
- if (_this.props.onDragLeave) _this.props.onDragLeave(event);
94
- });
95
- (0, _defineProperty2["default"])(_this, "handleDrop", function (event) {
96
- if (_this.props.onDrop && FileDrop.eventHasFiles(event)) {
97
- var files = event.dataTransfer ? event.dataTransfer.files : null;
98
- _this.props.onDrop(files, event);
99
- }
100
- _this.resetDragging();
101
- });
102
- (0, _defineProperty2["default"])(_this, "stopFrameListeners", function (frame) {
103
- if (frame) {
104
- frame.removeEventListener('dragenter', _this.handleFrameDrag);
105
- frame.removeEventListener('dragleave', _this.handleFrameDrag);
106
- frame.removeEventListener('drop', _this.handleFrameDrop);
107
- }
108
- });
109
- (0, _defineProperty2["default"])(_this, "startFrameListeners", function (frame) {
110
- if (frame) {
111
- frame.addEventListener('dragenter', _this.handleFrameDrag);
112
- frame.addEventListener('dragleave', _this.handleFrameDrag);
113
- frame.addEventListener('drop', _this.handleFrameDrop);
114
- }
115
- });
116
- return _this;
117
- }
118
- (0, _inherits2["default"])(FileDrop, _React$PureComponent);
119
- return (0, _createClass2["default"])(FileDrop, [{
120
- key: "componentDidMount",
121
- value: function componentDidMount() {
122
- this.startFrameListeners(this.props.frame);
123
- this.resetDragging();
124
- _window["default"].addEventListener('dragover', this.handleWindowDragOverOrDrop);
125
- _window["default"].addEventListener('drop', this.handleWindowDragOverOrDrop);
126
- }
127
- }, {
128
- key: "componentDidUpdate",
129
- value: function componentDidUpdate(prevProps) {
130
- if (prevProps.frame !== this.props.frame) {
131
- this.resetDragging();
132
- this.stopFrameListeners(prevProps.frame);
133
- this.startFrameListeners(this.props.frame);
134
- }
135
- }
136
- }, {
137
- key: "componentWillUnmount",
138
- value: function componentWillUnmount() {
139
- this.stopFrameListeners(this.props.frame);
140
- _window["default"].removeEventListener('dragover', this.handleWindowDragOverOrDrop);
141
- _window["default"].removeEventListener('drop', this.handleWindowDragOverOrDrop);
142
- }
143
- }, {
144
- key: "render",
145
- value: function render() {
146
- var _this$props = this.props,
147
- children = _this$props.children,
148
- className = _this$props.className,
149
- targetClassName = _this$props.targetClassName,
150
- draggingOverFrameClassName = _this$props.draggingOverFrameClassName,
151
- draggingOverTargetClassName = _this$props.draggingOverTargetClassName;
152
- var _this$state = this.state,
153
- draggingOverTarget = _this$state.draggingOverTarget,
154
- draggingOverFrame = _this$state.draggingOverFrame;
155
- var fileDropTargetClassName = targetClassName;
156
- if (draggingOverFrame) fileDropTargetClassName += " ".concat(draggingOverFrameClassName);
157
- if (draggingOverTarget) fileDropTargetClassName += " ".concat(draggingOverTargetClassName);
158
- return /*#__PURE__*/_react["default"].createElement("div", {
159
- className: className,
160
- onDragOver: this.handleDragOver,
161
- onDragLeave: this.handleDragLeave,
162
- onDrop: this.handleDrop
163
- }, /*#__PURE__*/_react["default"].createElement("div", {
164
- className: fileDropTargetClassName
165
- }, children));
166
- }
167
- }]);
168
- }(_react["default"].PureComponent);
169
- (0, _defineProperty2["default"])(FileDrop, "isIE", function () {
22
+ var isIE = function isIE() {
170
23
  return _window["default"] && _window["default"].navigator && ((_window["default"].navigator.userAgent || []).includes('MSIE') || (_window["default"].navigator.appVersion || []).includes('Trident/'));
171
- });
172
- (0, _defineProperty2["default"])(FileDrop, "eventHasFiles", function (event) {
24
+ };
25
+ var eventHasFiles = function eventHasFiles(event) {
173
26
  // In most browsers this is an array, but in IE11 it's an Object :(
174
27
 
175
28
  var hasFiles = false;
@@ -183,14 +36,146 @@ var FileDrop = /*#__PURE__*/function (_React$PureComponent) {
183
36
  }
184
37
  }
185
38
  return hasFiles;
186
- });
187
- (0, _defineProperty2["default"])(FileDrop, "defaultProps", {
188
- dropEffect: 'copy',
189
- frame: _window["default"] ? _window["default"].document : undefined,
190
- className: 'file-drop',
191
- targetClassName: 'file-drop-target',
192
- draggingOverFrameClassName: 'file-drop-dragging-over-frame',
193
- draggingOverTargetClassName: 'file-drop-dragging-over-target'
194
- });
39
+ };
40
+ var FileDrop = function FileDrop(_ref) {
41
+ var _ref$dropEffect = _ref.dropEffect,
42
+ dropEffect = _ref$dropEffect === void 0 ? 'copy' : _ref$dropEffect,
43
+ _ref$frame = _ref.frame,
44
+ frame = _ref$frame === void 0 ? _window["default"] ? _window["default"].document : undefined : _ref$frame,
45
+ _ref$className = _ref.className,
46
+ className = _ref$className === void 0 ? 'file-drop' : _ref$className,
47
+ _ref$targetClassName = _ref.targetClassName,
48
+ targetClassName = _ref$targetClassName === void 0 ? 'file-drop-target' : _ref$targetClassName,
49
+ _ref$draggingOverFram = _ref.draggingOverFrameClassName,
50
+ draggingOverFrameClassName = _ref$draggingOverFram === void 0 ? 'file-drop-dragging-over-frame' : _ref$draggingOverFram,
51
+ _ref$draggingOverTarg = _ref.draggingOverTargetClassName,
52
+ draggingOverTargetClassName = _ref$draggingOverTarg === void 0 ? 'file-drop-dragging-over-target' : _ref$draggingOverTarg,
53
+ onDragOver = _ref.onDragOver,
54
+ onDragLeave = _ref.onDragLeave,
55
+ onDrop = _ref.onDrop,
56
+ onFrameDragEnter = _ref.onFrameDragEnter,
57
+ onFrameDragLeave = _ref.onFrameDragLeave,
58
+ onFrameDrop = _ref.onFrameDrop,
59
+ children = _ref.children;
60
+ var _useState = (0, _react.useState)(false),
61
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
62
+ draggingOverTarget = _useState2[0],
63
+ setDraggingOverTarget = _useState2[1];
64
+ var _useState3 = (0, _react.useState)(false),
65
+ _useState4 = (0, _slicedToArray2["default"])(_useState3, 2),
66
+ draggingOverFrame = _useState4[0],
67
+ setDraggingOverFrame = _useState4[1];
68
+ var _useState5 = (0, _react.useState)(0),
69
+ _useState6 = (0, _slicedToArray2["default"])(_useState5, 2),
70
+ frameDragCounter = _useState6[0],
71
+ setFrameDragCounter = _useState6[1];
72
+ var prevFrame = (0, _react.useRef)(frame);
73
+ (0, _react.useEffect)(function () {
74
+ // componentDidMount
75
+ startFrameListeners(frame);
76
+ resetDragging();
77
+ _window["default"].addEventListener('dragover', handleWindowDragOverOrDrop);
78
+ _window["default"].addEventListener('drop', handleWindowDragOverOrDrop);
79
+ return function () {
80
+ // componentWillUnmount
81
+ stopFrameListeners(frame);
82
+ _window["default"].removeEventListener('dragover', handleWindowDragOverOrDrop);
83
+ _window["default"].removeEventListener('drop', handleWindowDragOverOrDrop);
84
+ };
85
+
86
+ // eslint-disable-next-line react-hooks/exhaustive-deps
87
+ }, []);
88
+ var resetDragging = (0, _react.useCallback)(function () {
89
+ setFrameDragCounter(0);
90
+ setDraggingOverTarget(false);
91
+ setDraggingOverFrame(false);
92
+ }, []);
93
+ var handleWindowDragOverOrDrop = (0, _react.useCallback)(function (event) {
94
+ // This prevents the browser from trying to load whatever file the user dropped on the window
95
+ event.preventDefault();
96
+ }, []);
97
+ var handleFrameDrag = (0, _react.useCallback)(function (event) {
98
+ // Only allow dragging of files
99
+ if (!eventHasFiles(event)) return;
100
+
101
+ // We are listening for events on the 'frame', so every time the user drags over any element in the frame's tree,
102
+ // the event bubbles up to the frame. By keeping count of how many "dragenters" we get, we can tell if they are still
103
+ // "draggingOverFrame" (b/c you get one "dragenter" initially, and one "dragenter"/one "dragleave" for every bubble)
104
+ // This is far better than a "dragover" handler, which would be calling `setState` continuously.
105
+ var newDragCounterValue = frameDragCounter + (event.type === 'dragenter' ? 1 : -1);
106
+ setFrameDragCounter(newDragCounterValue);
107
+ if (newDragCounterValue === 1) {
108
+ setDraggingOverFrame(true);
109
+ if (onFrameDragEnter) onFrameDragEnter(event);
110
+ return;
111
+ }
112
+ if (newDragCounterValue === 0) {
113
+ setDraggingOverFrame(false);
114
+ if (onFrameDragLeave) onFrameDragLeave(event);
115
+ return;
116
+ }
117
+ }, [frameDragCounter, setDraggingOverFrame, onFrameDragEnter, onFrameDragLeave]);
118
+ var handleFrameDrop = (0, _react.useCallback)(function (event) {
119
+ event.preventDefault();
120
+ if (!draggingOverTarget) {
121
+ resetDragging();
122
+ if (onFrameDrop) onFrameDrop(event);
123
+ }
124
+ }, [onFrameDrop, draggingOverTarget, resetDragging]);
125
+ var handleDragOver = (0, _react.useCallback)(function (event) {
126
+ if (eventHasFiles(event)) {
127
+ setDraggingOverTarget(true);
128
+ if (!isIE() && dropEffect) event.dataTransfer.dropEffect = dropEffect;
129
+ if (onDragOver) onDragOver(event);
130
+ }
131
+ }, [dropEffect, onDragOver]);
132
+ var handleDragLeave = (0, _react.useCallback)(function (event) {
133
+ setDraggingOverTarget(false);
134
+ if (onDragLeave) onDragLeave(event);
135
+ }, [onDragLeave]);
136
+ var handleDrop = (0, _react.useCallback)(function (event) {
137
+ if (onDrop && eventHasFiles(event)) {
138
+ var files = event.dataTransfer ? event.dataTransfer.files : null;
139
+ onDrop(files, event);
140
+ }
141
+ resetDragging();
142
+ }, [onDrop, resetDragging]);
143
+ var stopFrameListeners = (0, _react.useCallback)(function (frame) {
144
+ if (frame) {
145
+ frame.removeEventListener('dragenter', handleFrameDrag);
146
+ frame.removeEventListener('dragleave', handleFrameDrag);
147
+ frame.removeEventListener('drop', handleFrameDrop);
148
+ }
149
+ }, [handleFrameDrag, handleFrameDrop]);
150
+ var startFrameListeners = (0, _react.useCallback)(function (frame) {
151
+ if (frame) {
152
+ frame.addEventListener('dragenter', handleFrameDrag);
153
+ frame.addEventListener('dragleave', handleFrameDrag);
154
+ frame.addEventListener('drop', handleFrameDrop);
155
+ }
156
+ }, [handleFrameDrag, handleFrameDrop]);
157
+ (0, _react.useEffect)(function () {
158
+ // componentDidUpdate
159
+ if (prevFrame.current !== frame) {
160
+ resetDragging();
161
+ stopFrameListeners(prevFrame.current);
162
+ startFrameListeners(frame);
163
+ prevFrame.current = frame;
164
+ }
165
+ }, [frame, resetDragging, stopFrameListeners, startFrameListeners]);
166
+
167
+ // Render
168
+ var fileDropTargetClassName = targetClassName;
169
+ if (draggingOverFrame) fileDropTargetClassName += " ".concat(draggingOverFrameClassName);
170
+ if (draggingOverTarget) fileDropTargetClassName += " ".concat(draggingOverTargetClassName);
171
+ return /*#__PURE__*/_react["default"].createElement("div", {
172
+ className: className,
173
+ onDragOver: handleDragOver,
174
+ onDragLeave: handleDragLeave,
175
+ onDrop: handleDrop
176
+ }, /*#__PURE__*/_react["default"].createElement("div", {
177
+ className: fileDropTargetClassName
178
+ }, children));
179
+ };
195
180
  var _default = exports["default"] = FileDrop;
196
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl93aW5kb3ciLCJfY2FsbFN1cGVyIiwidCIsIm8iLCJlIiwiX2dldFByb3RvdHlwZU9mMiIsIl9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiIsIl9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QiLCJSZWZsZWN0IiwiY29uc3RydWN0IiwiY29uc3RydWN0b3IiLCJhcHBseSIsIkJvb2xlYW4iLCJwcm90b3R5cGUiLCJ2YWx1ZU9mIiwiY2FsbCIsIkZpbGVEcm9wIiwiX1JlYWN0JFB1cmVDb21wb25lbnQiLCJfdGhpcyIsIl9jbGFzc0NhbGxDaGVjazIiLCJfbGVuIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiYXJncyIsIkFycmF5IiwiX2tleSIsImNvbmNhdCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJkcmFnZ2luZ092ZXJGcmFtZSIsImRyYWdnaW5nT3ZlclRhcmdldCIsImZyYW1lRHJhZ0NvdW50ZXIiLCJzZXRTdGF0ZSIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJldmVudEhhc0ZpbGVzIiwidHlwZSIsInByb3BzIiwib25GcmFtZURyYWdFbnRlciIsIm9uRnJhbWVEcmFnTGVhdmUiLCJzdGF0ZSIsInJlc2V0RHJhZ2dpbmciLCJvbkZyYW1lRHJvcCIsImlzSUUiLCJkcm9wRWZmZWN0IiwiZGF0YVRyYW5zZmVyIiwib25EcmFnT3ZlciIsIm9uRHJhZ0xlYXZlIiwib25Ecm9wIiwiZmlsZXMiLCJmcmFtZSIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJoYW5kbGVGcmFtZURyYWciLCJoYW5kbGVGcmFtZURyb3AiLCJhZGRFdmVudExpc3RlbmVyIiwiX2luaGVyaXRzMiIsIl9jcmVhdGVDbGFzczIiLCJrZXkiLCJ2YWx1ZSIsImNvbXBvbmVudERpZE1vdW50Iiwic3RhcnRGcmFtZUxpc3RlbmVycyIsIldpbmRvdyIsImhhbmRsZVdpbmRvd0RyYWdPdmVyT3JEcm9wIiwiY29tcG9uZW50RGlkVXBkYXRlIiwicHJldlByb3BzIiwic3RvcEZyYW1lTGlzdGVuZXJzIiwiY29tcG9uZW50V2lsbFVubW91bnQiLCJyZW5kZXIiLCJfdGhpcyRwcm9wcyIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwidGFyZ2V0Q2xhc3NOYW1lIiwiZHJhZ2dpbmdPdmVyRnJhbWVDbGFzc05hbWUiLCJkcmFnZ2luZ092ZXJUYXJnZXRDbGFzc05hbWUiLCJfdGhpcyRzdGF0ZSIsImZpbGVEcm9wVGFyZ2V0Q2xhc3NOYW1lIiwiY3JlYXRlRWxlbWVudCIsImhhbmRsZURyYWdPdmVyIiwiaGFuZGxlRHJhZ0xlYXZlIiwiaGFuZGxlRHJvcCIsIlJlYWN0IiwiUHVyZUNvbXBvbmVudCIsIm5hdmlnYXRvciIsInVzZXJBZ2VudCIsImluY2x1ZGVzIiwiYXBwVmVyc2lvbiIsImhhc0ZpbGVzIiwidHlwZXMiLCJrZXlPckluZGV4IiwiZG9jdW1lbnQiLCJ1bmRlZmluZWQiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbW9uL2ZpbGUtdXBsb2FkZXIvZmlsZS1kcm9wLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG4vKipcbiAqIENvcGllZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXJpbmsvcmVhY3QtZmlsZS1kcm9wXG4gKiBGb3IgUmVhY3QgMTYuOCBjb21wYXRpYmlsaXR5XG4gKi9cbmltcG9ydCBSZWFjdCwge1JlYWN0Tm9kZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFdpbmRvdyBmcm9tICdnbG9iYWwvd2luZG93JztcblxuZXhwb3J0IHR5cGUgRmlsZURyb3BQcm9wcyA9IHtcbiAgZHJvcEVmZmVjdD86ICdjb3B5JyB8ICdtb3ZlJyB8ICdsaW5rJyB8ICdub25lJztcbiAgZnJhbWU/OiB0eXBlb2YgZG9jdW1lbnQgfCB0eXBlb2YgV2luZG93IHwgSFRNTEVsZW1lbnQ7XG4gIGNsYXNzTmFtZT86IHN0cmluZztcbiAgdGFyZ2V0Q2xhc3NOYW1lPzogc3RyaW5nO1xuICBkcmFnZ2luZ092ZXJGcmFtZUNsYXNzTmFtZT86IHN0cmluZztcbiAgZHJhZ2dpbmdPdmVyVGFyZ2V0Q2xhc3NOYW1lPzogc3RyaW5nO1xuICBvbkRyYWdPdmVyPzogKGV2ZW50OiBhbnkpID0+IHZvaWQ7XG4gIG9uRHJhZ0xlYXZlPzogKGV2ZW50OiBhbnkpID0+IHZvaWQ7XG4gIG9uRHJvcD86IChmaWxlTGlzdDogRmlsZUxpc3QsIGV2ZW50OiBhbnkpID0+IHZvaWQ7XG4gIG9uRnJhbWVEcmFnRW50ZXI/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgb25GcmFtZURyYWdMZWF2ZT86IChldmVudDogYW55KSA9PiB2b2lkO1xuICBvbkZyYW1lRHJvcD86IChldmVudDogYW55KSA9PiB2b2lkO1xuICBjaGlsZHJlbj86IFJlYWN0Tm9kZTtcbn07XG5cbi8qKiBAdHlwZWRlZiB7aW1wb3J0KCcuL2ZpbGUtZHJvcCcpLkZpbGVEcm9wUHJvcHN9IEZpbGVEcm9wUHJvcHMgKi9cblxuLyoqIEBhdWdtZW50cyBSZWFjdC5QdXJlQ29tcG9uZW50PEZpbGVEcm9wUHJvcHM+ICovXG5jbGFzcyBGaWxlRHJvcCBleHRlbmRzIFJlYWN0LlB1cmVDb21wb25lbnQ8RmlsZURyb3BQcm9wcz4ge1xuICBzdGF0aWMgaXNJRSA9ICgpID0+XG4gICAgV2luZG93ICYmXG4gICAgV2luZG93Lm5hdmlnYXRvciAmJlxuICAgICgoV2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQgfHwgW10pLmluY2x1ZGVzKCdNU0lFJykgfHxcbiAgICAgIChXaW5kb3cubmF2aWdhdG9yLmFwcFZlcnNpb24gfHwgW10pLmluY2x1ZGVzKCdUcmlkZW50LycpKTtcblxuICBzdGF0aWMgZXZlbnRIYXNGaWxlcyA9IGV2ZW50ID0+IHtcbiAgICAvLyBJbiBtb3N0IGJyb3dzZXJzIHRoaXMgaXMgYW4gYXJyYXksIGJ1dCBpbiBJRTExIGl0J3MgYW4gT2JqZWN0IDooXG5cbiAgICBsZXQgaGFzRmlsZXMgPSBmYWxzZTtcbiAgICBpZiAoZXZlbnQuZGF0YVRyYW5zZmVyKSB7XG4gICAgICBjb25zdCB0eXBlcyA9IGV2ZW50LmRhdGFUcmFuc2Zlci50eXBlcztcbiAgICAgIGZvciAoY29uc3Qga2V5T3JJbmRleCBpbiB0eXBlcykge1xuICAgICAgICBpZiAodHlwZXNba2V5T3JJbmRleF0gPT09ICdGaWxlcycpIHtcbiAgICAgICAgICBoYXNGaWxlcyA9IHRydWU7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGhhc0ZpbGVzO1xuICB9O1xuXG4gIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgZHJvcEVmZmVjdDogJ2NvcHknLFxuICAgIGZyYW1lOiBXaW5kb3cgPyBXaW5kb3cuZG9jdW1lbnQgOiB1bmRlZmluZWQsXG4gICAgY2xhc3NOYW1lOiAnZmlsZS1kcm9wJyxcbiAgICB0YXJnZXRDbGFzc05hbWU6ICdmaWxlLWRyb3AtdGFyZ2V0JyxcbiAgICBkcmFnZ2luZ092ZXJGcmFtZUNsYXNzTmFtZTogJ2ZpbGUtZHJvcC1kcmFnZ2luZy1vdmVyLWZyYW1lJyxcbiAgICBkcmFnZ2luZ092ZXJUYXJnZXRDbGFzc05hbWU6ICdmaWxlLWRyb3AtZHJhZ2dpbmctb3Zlci10YXJnZXQnXG4gIH07XG5cbiAgZnJhbWVEcmFnQ291bnRlciA9IDA7XG4gIHN0YXRlID0ge2RyYWdnaW5nT3ZlckZyYW1lOiBmYWxzZSwgZHJhZ2dpbmdPdmVyVGFyZ2V0OiBmYWxzZX07XG5cbiAgY29tcG9uZW50RGlkTW91bnQoKSB7XG4gICAgdGhpcy5zdGFydEZyYW1lTGlzdGVuZXJzKHRoaXMucHJvcHMuZnJhbWUpO1xuICAgIHRoaXMucmVzZXREcmFnZ2luZygpO1xuICAgIFdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdkcmFnb3ZlcicsIHRoaXMuaGFuZGxlV2luZG93RHJhZ092ZXJPckRyb3ApO1xuICAgIFdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdkcm9wJywgdGhpcy5oYW5kbGVXaW5kb3dEcmFnT3Zlck9yRHJvcCk7XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgaWYgKHByZXZQcm9wcy5mcmFtZSAhPT0gdGhpcy5wcm9wcy5mcmFtZSkge1xuICAgICAgdGhpcy5yZXNldERyYWdnaW5nKCk7XG4gICAgICB0aGlzLnN0b3BGcmFtZUxpc3RlbmVycyhwcmV2UHJvcHMuZnJhbWUpO1xuICAgICAgdGhpcy5zdGFydEZyYW1lTGlzdGVuZXJzKHRoaXMucHJvcHMuZnJhbWUpO1xuICAgIH1cbiAgfVxuXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgIHRoaXMuc3RvcEZyYW1lTGlzdGVuZXJzKHRoaXMucHJvcHMuZnJhbWUpO1xuICAgIFdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdkcmFnb3ZlcicsIHRoaXMuaGFuZGxlV2luZG93RHJhZ092ZXJPckRyb3ApO1xuICAgIFdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdkcm9wJywgdGhpcy5oYW5kbGVXaW5kb3dEcmFnT3Zlck9yRHJvcCk7XG4gIH1cblxuICByZXNldERyYWdnaW5nID0gKCkgPT4ge1xuICAgIHRoaXMuZnJhbWVEcmFnQ291bnRlciA9IDA7XG4gICAgdGhpcy5zZXRTdGF0ZSh7ZHJhZ2dpbmdPdmVyRnJhbWU6IGZhbHNlLCBkcmFnZ2luZ092ZXJUYXJnZXQ6IGZhbHNlfSk7XG4gIH07XG5cbiAgaGFuZGxlV2luZG93RHJhZ092ZXJPckRyb3AgPSBldmVudCA9PiB7XG4gICAgLy8gVGhpcyBwcmV2ZW50cyB0aGUgYnJvd3NlciBmcm9tIHRyeWluZyB0byBsb2FkIHdoYXRldmVyIGZpbGUgdGhlIHVzZXIgZHJvcHBlZCBvbiB0aGUgd2luZG93XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfTtcblxuICBoYW5kbGVGcmFtZURyYWcgPSBldmVudCA9PiB7XG4gICAgLy8gT25seSBhbGxvdyBkcmFnZ2luZyBvZiBmaWxlc1xuICAgIGlmICghRmlsZURyb3AuZXZlbnRIYXNGaWxlcyhldmVudCkpIHJldHVybjtcblxuICAgIC8vIFdlIGFyZSBsaXN0ZW5pbmcgZm9yIGV2ZW50cyBvbiB0aGUgJ2ZyYW1lJywgc28gZXZlcnkgdGltZSB0aGUgdXNlciBkcmFncyBvdmVyIGFueSBlbGVtZW50IGluIHRoZSBmcmFtZSdzIHRyZWUsXG4gICAgLy8gdGhlIGV2ZW50IGJ1YmJsZXMgdXAgdG8gdGhlIGZyYW1lLiBCeSBrZWVwaW5nIGNvdW50IG9mIGhvdyBtYW55IFwiZHJhZ2VudGVyc1wiIHdlIGdldCwgd2UgY2FuIHRlbGwgaWYgdGhleSBhcmUgc3RpbGxcbiAgICAvLyBcImRyYWdnaW5nT3ZlckZyYW1lXCIgKGIvYyB5b3UgZ2V0IG9uZSBcImRyYWdlbnRlclwiIGluaXRpYWxseSwgYW5kIG9uZSBcImRyYWdlbnRlclwiL29uZSBcImRyYWdsZWF2ZVwiIGZvciBldmVyeSBidWJibGUpXG4gICAgLy8gVGhpcyBpcyBmYXIgYmV0dGVyIHRoYW4gYSBcImRyYWdvdmVyXCIgaGFuZGxlciwgd2hpY2ggd291bGQgYmUgY2FsbGluZyBgc2V0U3RhdGVgIGNvbnRpbnVvdXNseS5cbiAgICB0aGlzLmZyYW1lRHJhZ0NvdW50ZXIgKz0gZXZlbnQudHlwZSA9PT0gJ2RyYWdlbnRlcicgPyAxIDogLTE7XG5cbiAgICBpZiAodGhpcy5mcmFtZURyYWdDb3VudGVyID09PSAxKSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtkcmFnZ2luZ092ZXJGcmFtZTogdHJ1ZX0pO1xuICAgICAgaWYgKHRoaXMucHJvcHMub25GcmFtZURyYWdFbnRlcikgdGhpcy5wcm9wcy5vbkZyYW1lRHJhZ0VudGVyKGV2ZW50KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5mcmFtZURyYWdDb3VudGVyID09PSAwKSB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtkcmFnZ2luZ092ZXJGcmFtZTogZmFsc2V9KTtcbiAgICAgIGlmICh0aGlzLnByb3BzLm9uRnJhbWVEcmFnTGVhdmUpIHRoaXMucHJvcHMub25GcmFtZURyYWdMZWF2ZShldmVudCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICB9O1xuXG4gIGhhbmRsZUZyYW1lRHJvcCA9IGV2ZW50ID0+IHtcbiAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmICghdGhpcy5zdGF0ZS5kcmFnZ2luZ092ZXJUYXJnZXQpIHtcbiAgICAgIHRoaXMucmVzZXREcmFnZ2luZygpO1xuICAgICAgaWYgKHRoaXMucHJvcHMub25GcmFtZURyb3ApIHRoaXMucHJvcHMub25GcmFtZURyb3AoZXZlbnQpO1xuICAgIH1cbiAgfTtcblxuICBoYW5kbGVEcmFnT3ZlciA9IGV2ZW50ID0+IHtcbiAgICBpZiAoRmlsZURyb3AuZXZlbnRIYXNGaWxlcyhldmVudCkpIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe2RyYWdnaW5nT3ZlclRhcmdldDogdHJ1ZX0pO1xuICAgICAgaWYgKCFGaWxlRHJvcC5pc0lFKCkgJiYgdGhpcy5wcm9wcy5kcm9wRWZmZWN0KVxuICAgICAgICBldmVudC5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdCA9IHRoaXMucHJvcHMuZHJvcEVmZmVjdDtcbiAgICAgIGlmICh0aGlzLnByb3BzLm9uRHJhZ092ZXIpIHRoaXMucHJvcHMub25EcmFnT3ZlcihldmVudCk7XG4gICAgfVxuICB9O1xuXG4gIGhhbmRsZURyYWdMZWF2ZSA9IGV2ZW50ID0+IHtcbiAgICB0aGlzLnNldFN0YXRlKHtkcmFnZ2luZ092ZXJUYXJnZXQ6IGZhbHNlfSk7XG4gICAgaWYgKHRoaXMucHJvcHMub25EcmFnTGVhdmUpIHRoaXMucHJvcHMub25EcmFnTGVhdmUoZXZlbnQpO1xuICB9O1xuXG4gIGhhbmRsZURyb3AgPSBldmVudCA9PiB7XG4gICAgaWYgKHRoaXMucHJvcHMub25Ecm9wICYmIEZpbGVEcm9wLmV2ZW50SGFzRmlsZXMoZXZlbnQpKSB7XG4gICAgICBjb25zdCBmaWxlcyA9IGV2ZW50LmRhdGFUcmFuc2ZlciA/IGV2ZW50LmRhdGFUcmFuc2Zlci5maWxlcyA6IG51bGw7XG4gICAgICB0aGlzLnByb3BzLm9uRHJvcChmaWxlcywgZXZlbnQpO1xuICAgIH1cbiAgICB0aGlzLnJlc2V0RHJhZ2dpbmcoKTtcbiAgfTtcblxuICBzdG9wRnJhbWVMaXN0ZW5lcnMgPSBmcmFtZSA9PiB7XG4gICAgaWYgKGZyYW1lKSB7XG4gICAgICBmcmFtZS5yZW1vdmVFdmVudExpc3RlbmVyKCdkcmFnZW50ZXInLCB0aGlzLmhhbmRsZUZyYW1lRHJhZyk7XG4gICAgICBmcmFtZS5yZW1vdmVFdmVudExpc3RlbmVyKCdkcmFnbGVhdmUnLCB0aGlzLmhhbmRsZUZyYW1lRHJhZyk7XG4gICAgICBmcmFtZS5yZW1vdmVFdmVudExpc3RlbmVyKCdkcm9wJywgdGhpcy5oYW5kbGVGcmFtZURyb3ApO1xuICAgIH1cbiAgfTtcblxuICBzdGFydEZyYW1lTGlzdGVuZXJzID0gZnJhbWUgPT4ge1xuICAgIGlmIChmcmFtZSkge1xuICAgICAgZnJhbWUuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ2VudGVyJywgdGhpcy5oYW5kbGVGcmFtZURyYWcpO1xuICAgICAgZnJhbWUuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ2xlYXZlJywgdGhpcy5oYW5kbGVGcmFtZURyYWcpO1xuICAgICAgZnJhbWUuYWRkRXZlbnRMaXN0ZW5lcignZHJvcCcsIHRoaXMuaGFuZGxlRnJhbWVEcm9wKTtcbiAgICB9XG4gIH07XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtcbiAgICAgIGNoaWxkcmVuLFxuICAgICAgY2xhc3NOYW1lLFxuICAgICAgdGFyZ2V0Q2xhc3NOYW1lLFxuICAgICAgZHJhZ2dpbmdPdmVyRnJhbWVDbGFzc05hbWUsXG4gICAgICBkcmFnZ2luZ092ZXJUYXJnZXRDbGFzc05hbWVcbiAgICB9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7ZHJhZ2dpbmdPdmVyVGFyZ2V0LCBkcmFnZ2luZ092ZXJGcmFtZX0gPSB0aGlzLnN0YXRlO1xuXG4gICAgbGV0IGZpbGVEcm9wVGFyZ2V0Q2xhc3NOYW1lID0gdGFyZ2V0Q2xhc3NOYW1lO1xuICAgIGlmIChkcmFnZ2luZ092ZXJGcmFtZSkgZmlsZURyb3BUYXJnZXRDbGFzc05hbWUgKz0gYCAke2RyYWdnaW5nT3ZlckZyYW1lQ2xhc3NOYW1lfWA7XG4gICAgaWYgKGRyYWdnaW5nT3ZlclRhcmdldCkgZmlsZURyb3BUYXJnZXRDbGFzc05hbWUgKz0gYCAke2RyYWdnaW5nT3ZlclRhcmdldENsYXNzTmFtZX1gO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICAgIG9uRHJhZ092ZXI9e3RoaXMuaGFuZGxlRHJhZ092ZXJ9XG4gICAgICAgIG9uRHJhZ0xlYXZlPXt0aGlzLmhhbmRsZURyYWdMZWF2ZX1cbiAgICAgICAgb25Ecm9wPXt0aGlzLmhhbmRsZURyb3B9XG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtmaWxlRHJvcFRhcmdldENsYXNzTmFtZX0+e2NoaWxkcmVufTwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgKTtcbiAgfVxufVxuXG5leHBvcnQgZGVmYXVsdCBGaWxlRHJvcDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQU9BLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE9BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUFtQyxTQUFBRSxXQUFBQyxDQUFBLEVBQUFDLENBQUEsRUFBQUMsQ0FBQSxXQUFBRCxDQUFBLE9BQUFFLGdCQUFBLGFBQUFGLENBQUEsT0FBQUcsMkJBQUEsYUFBQUosQ0FBQSxFQUFBSyx5QkFBQSxLQUFBQyxPQUFBLENBQUFDLFNBQUEsQ0FBQU4sQ0FBQSxFQUFBQyxDQUFBLFlBQUFDLGdCQUFBLGFBQUFILENBQUEsRUFBQVEsV0FBQSxJQUFBUCxDQUFBLENB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
181
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfd2luZG93IiwiX2ludGVyb3BSZXF1aXJlRGVmYXVsdCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsImlzSUUiLCJXaW5kb3ciLCJuYXZpZ2F0b3IiLCJ1c2VyQWdlbnQiLCJpbmNsdWRlcyIsImFwcFZlcnNpb24iLCJldmVudEhhc0ZpbGVzIiwiZXZlbnQiLCJoYXNGaWxlcyIsImRhdGFUcmFuc2ZlciIsInR5cGVzIiwia2V5T3JJbmRleCIsIkZpbGVEcm9wIiwiX3JlZiIsIl9yZWYkZHJvcEVmZmVjdCIsImRyb3BFZmZlY3QiLCJfcmVmJGZyYW1lIiwiZnJhbWUiLCJkb2N1bWVudCIsInVuZGVmaW5lZCIsIl9yZWYkY2xhc3NOYW1lIiwiY2xhc3NOYW1lIiwiX3JlZiR0YXJnZXRDbGFzc05hbWUiLCJ0YXJnZXRDbGFzc05hbWUiLCJfcmVmJGRyYWdnaW5nT3ZlckZyYW0iLCJkcmFnZ2luZ092ZXJGcmFtZUNsYXNzTmFtZSIsIl9yZWYkZHJhZ2dpbmdPdmVyVGFyZyIsImRyYWdnaW5nT3ZlclRhcmdldENsYXNzTmFtZSIsIm9uRHJhZ092ZXIiLCJvbkRyYWdMZWF2ZSIsIm9uRHJvcCIsIm9uRnJhbWVEcmFnRW50ZXIiLCJvbkZyYW1lRHJhZ0xlYXZlIiwib25GcmFtZURyb3AiLCJjaGlsZHJlbiIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImRyYWdnaW5nT3ZlclRhcmdldCIsInNldERyYWdnaW5nT3ZlclRhcmdldCIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiZHJhZ2dpbmdPdmVyRnJhbWUiLCJzZXREcmFnZ2luZ092ZXJGcmFtZSIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiZnJhbWVEcmFnQ291bnRlciIsInNldEZyYW1lRHJhZ0NvdW50ZXIiLCJwcmV2RnJhbWUiLCJ1c2VSZWYiLCJ1c2VFZmZlY3QiLCJzdGFydEZyYW1lTGlzdGVuZXJzIiwicmVzZXREcmFnZ2luZyIsImFkZEV2ZW50TGlzdGVuZXIiLCJoYW5kbGVXaW5kb3dEcmFnT3Zlck9yRHJvcCIsInN0b3BGcmFtZUxpc3RlbmVycyIsInJlbW92ZUV2ZW50TGlzdGVuZXIiLCJ1c2VDYWxsYmFjayIsInByZXZlbnREZWZhdWx0IiwiaGFuZGxlRnJhbWVEcmFnIiwibmV3RHJhZ0NvdW50ZXJWYWx1ZSIsInR5cGUiLCJoYW5kbGVGcmFtZURyb3AiLCJoYW5kbGVEcmFnT3ZlciIsImhhbmRsZURyYWdMZWF2ZSIsImhhbmRsZURyb3AiLCJmaWxlcyIsImN1cnJlbnQiLCJmaWxlRHJvcFRhcmdldENsYXNzTmFtZSIsImNvbmNhdCIsImNyZWF0ZUVsZW1lbnQiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvY29tbW9uL2ZpbGUtdXBsb2FkZXIvZmlsZS1kcm9wLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG4vKipcbiAqIENvcGllZCBmcm9tIGh0dHBzOi8vZ2l0aHViLmNvbS9zYXJpbmsvcmVhY3QtZmlsZS1kcm9wXG4gKiBGb3IgUmVhY3QgMTYuOCBjb21wYXRpYmlsaXR5XG4gKi9cbmltcG9ydCBSZWFjdCwge1JlYWN0Tm9kZSwgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlU3RhdGUsIHVzZVJlZn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFdpbmRvdyBmcm9tICdnbG9iYWwvd2luZG93JztcblxuY29uc3QgaXNJRSA9ICgpID0+XG4gIFdpbmRvdyAmJlxuICBXaW5kb3cubmF2aWdhdG9yICYmXG4gICgoV2luZG93Lm5hdmlnYXRvci51c2VyQWdlbnQgfHwgW10pLmluY2x1ZGVzKCdNU0lFJykgfHxcbiAgICAoV2luZG93Lm5hdmlnYXRvci5hcHBWZXJzaW9uIHx8IFtdKS5pbmNsdWRlcygnVHJpZGVudC8nKSk7XG5cbmNvbnN0IGV2ZW50SGFzRmlsZXMgPSBldmVudCA9PiB7XG4gIC8vIEluIG1vc3QgYnJvd3NlcnMgdGhpcyBpcyBhbiBhcnJheSwgYnV0IGluIElFMTEgaXQncyBhbiBPYmplY3QgOihcblxuICBsZXQgaGFzRmlsZXMgPSBmYWxzZTtcbiAgaWYgKGV2ZW50LmRhdGFUcmFuc2Zlcikge1xuICAgIGNvbnN0IHR5cGVzID0gZXZlbnQuZGF0YVRyYW5zZmVyLnR5cGVzO1xuICAgIGZvciAoY29uc3Qga2V5T3JJbmRleCBpbiB0eXBlcykge1xuICAgICAgaWYgKHR5cGVzW2tleU9ySW5kZXhdID09PSAnRmlsZXMnKSB7XG4gICAgICAgIGhhc0ZpbGVzID0gdHJ1ZTtcbiAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBoYXNGaWxlcztcbn07XG5cbmV4cG9ydCB0eXBlIEZpbGVEcm9wUHJvcHMgPSB7XG4gIGRyb3BFZmZlY3Q/OiAnY29weScgfCAnbW92ZScgfCAnbGluaycgfCAnbm9uZSc7XG4gIGZyYW1lPzogdHlwZW9mIGRvY3VtZW50IHwgdHlwZW9mIFdpbmRvdyB8IEhUTUxFbGVtZW50O1xuICBjbGFzc05hbWU/OiBzdHJpbmc7XG4gIHRhcmdldENsYXNzTmFtZT86IHN0cmluZztcbiAgZHJhZ2dpbmdPdmVyRnJhbWVDbGFzc05hbWU/OiBzdHJpbmc7XG4gIGRyYWdnaW5nT3ZlclRhcmdldENsYXNzTmFtZT86IHN0cmluZztcbiAgb25EcmFnT3Zlcj86IChldmVudDogYW55KSA9PiB2b2lkO1xuICBvbkRyYWdMZWF2ZT86IChldmVudDogYW55KSA9PiB2b2lkO1xuICBvbkRyb3A/OiAoZmlsZUxpc3Q6IEZpbGVMaXN0LCBldmVudDogYW55KSA9PiB2b2lkO1xuICBvbkZyYW1lRHJhZ0VudGVyPzogKGV2ZW50OiBhbnkpID0+IHZvaWQ7XG4gIG9uRnJhbWVEcmFnTGVhdmU/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgb25GcmFtZURyb3A/OiAoZXZlbnQ6IGFueSkgPT4gdm9pZDtcbiAgY2hpbGRyZW4/OiBSZWFjdE5vZGU7XG59O1xuXG5jb25zdCBGaWxlRHJvcCA9ICh7XG4gIGRyb3BFZmZlY3QgPSAnY29weScsXG4gIGZyYW1lID0gV2luZG93ID8gV2luZG93LmRvY3VtZW50IDogdW5kZWZpbmVkLFxuICBjbGFzc05hbWUgPSAnZmlsZS1kcm9wJyxcbiAgdGFyZ2V0Q2xhc3NOYW1lID0gJ2ZpbGUtZHJvcC10YXJnZXQnLFxuICBkcmFnZ2luZ092ZXJGcmFtZUNsYXNzTmFtZSA9ICdmaWxlLWRyb3AtZHJhZ2dpbmctb3Zlci1mcmFtZScsXG4gIGRyYWdnaW5nT3ZlclRhcmdldENsYXNzTmFtZSA9ICdmaWxlLWRyb3AtZHJhZ2dpbmctb3Zlci10YXJnZXQnLFxuICBvbkRyYWdPdmVyLFxuICBvbkRyYWdMZWF2ZSxcbiAgb25Ecm9wLFxuICBvbkZyYW1lRHJhZ0VudGVyLFxuICBvbkZyYW1lRHJhZ0xlYXZlLFxuICBvbkZyYW1lRHJvcCxcbiAgY2hpbGRyZW5cbn06IEZpbGVEcm9wUHJvcHMpID0+IHtcbiAgY29uc3QgW2RyYWdnaW5nT3ZlclRhcmdldCwgc2V0RHJhZ2dpbmdPdmVyVGFyZ2V0XSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgY29uc3QgW2RyYWdnaW5nT3ZlckZyYW1lLCBzZXREcmFnZ2luZ092ZXJGcmFtZV0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIGNvbnN0IFtmcmFtZURyYWdDb3VudGVyLCBzZXRGcmFtZURyYWdDb3VudGVyXSA9IHVzZVN0YXRlKDApO1xuXG4gIGNvbnN0IHByZXZGcmFtZSA9IHVzZVJlZihmcmFtZSk7XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAvLyBjb21wb25lbnREaWRNb3VudFxuICAgIHN0YXJ0RnJhbWVMaXN0ZW5lcnMoZnJhbWUpO1xuICAgIHJlc2V0RHJhZ2dpbmcoKTtcbiAgICBXaW5kb3cuYWRkRXZlbnRMaXN0ZW5lcignZHJhZ292ZXInLCBoYW5kbGVXaW5kb3dEcmFnT3Zlck9yRHJvcCk7XG4gICAgV2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCBoYW5kbGVXaW5kb3dEcmFnT3Zlck9yRHJvcCk7XG5cbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgLy8gY29tcG9uZW50V2lsbFVubW91bnRcbiAgICAgIHN0b3BGcmFtZUxpc3RlbmVycyhmcmFtZSk7XG4gICAgICBXaW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignZHJhZ292ZXInLCBoYW5kbGVXaW5kb3dEcmFnT3Zlck9yRHJvcCk7XG4gICAgICBXaW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcignZHJvcCcsIGhhbmRsZVdpbmRvd0RyYWdPdmVyT3JEcm9wKTtcbiAgICB9O1xuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWhvb2tzL2V4aGF1c3RpdmUtZGVwc1xuICB9LCBbXSk7XG5cbiAgY29uc3QgcmVzZXREcmFnZ2luZyA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICBzZXRGcmFtZURyYWdDb3VudGVyKDApO1xuICAgIHNldERyYWdnaW5nT3ZlclRhcmdldChmYWxzZSk7XG4gICAgc2V0RHJhZ2dpbmdPdmVyRnJhbWUoZmFsc2UpO1xuICB9LCBbXSk7XG5cbiAgY29uc3QgaGFuZGxlV2luZG93RHJhZ092ZXJPckRyb3AgPSB1c2VDYWxsYmFjayhldmVudCA9PiB7XG4gICAgLy8gVGhpcyBwcmV2ZW50cyB0aGUgYnJvd3NlciBmcm9tIHRyeWluZyB0byBsb2FkIHdoYXRldmVyIGZpbGUgdGhlIHVzZXIgZHJvcHBlZCBvbiB0aGUgd2luZG93XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IGhhbmRsZUZyYW1lRHJhZyA9IHVzZUNhbGxiYWNrKFxuICAgIGV2ZW50ID0+IHtcbiAgICAgIC8vIE9ubHkgYWxsb3cgZHJhZ2dpbmcgb2YgZmlsZXNcbiAgICAgIGlmICghZXZlbnRIYXNGaWxlcyhldmVudCkpIHJldHVybjtcblxuICAgICAgLy8gV2UgYXJlIGxpc3RlbmluZyBmb3IgZXZlbnRzIG9uIHRoZSAnZnJhbWUnLCBzbyBldmVyeSB0aW1lIHRoZSB1c2VyIGRyYWdzIG92ZXIgYW55IGVsZW1lbnQgaW4gdGhlIGZyYW1lJ3MgdHJlZSxcbiAgICAgIC8vIHRoZSBldmVudCBidWJibGVzIHVwIHRvIHRoZSBmcmFtZS4gQnkga2VlcGluZyBjb3VudCBvZiBob3cgbWFueSBcImRyYWdlbnRlcnNcIiB3ZSBnZXQsIHdlIGNhbiB0ZWxsIGlmIHRoZXkgYXJlIHN0aWxsXG4gICAgICAvLyBcImRyYWdnaW5nT3ZlckZyYW1lXCIgKGIvYyB5b3UgZ2V0IG9uZSBcImRyYWdlbnRlclwiIGluaXRpYWxseSwgYW5kIG9uZSBcImRyYWdlbnRlclwiL29uZSBcImRyYWdsZWF2ZVwiIGZvciBldmVyeSBidWJibGUpXG4gICAgICAvLyBUaGlzIGlzIGZhciBiZXR0ZXIgdGhhbiBhIFwiZHJhZ292ZXJcIiBoYW5kbGVyLCB3aGljaCB3b3VsZCBiZSBjYWxsaW5nIGBzZXRTdGF0ZWAgY29udGludW91c2x5LlxuICAgICAgY29uc3QgbmV3RHJhZ0NvdW50ZXJWYWx1ZSA9IGZyYW1lRHJhZ0NvdW50ZXIgKyAoZXZlbnQudHlwZSA9PT0gJ2RyYWdlbnRlcicgPyAxIDogLTEpO1xuICAgICAgc2V0RnJhbWVEcmFnQ291bnRlcihuZXdEcmFnQ291bnRlclZhbHVlKTtcblxuICAgICAgaWYgKG5ld0RyYWdDb3VudGVyVmFsdWUgPT09IDEpIHtcbiAgICAgICAgc2V0RHJhZ2dpbmdPdmVyRnJhbWUodHJ1ZSk7XG4gICAgICAgIGlmIChvbkZyYW1lRHJhZ0VudGVyKSBvbkZyYW1lRHJhZ0VudGVyKGV2ZW50KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBpZiAobmV3RHJhZ0NvdW50ZXJWYWx1ZSA9PT0gMCkge1xuICAgICAgICBzZXREcmFnZ2luZ092ZXJGcmFtZShmYWxzZSk7XG4gICAgICAgIGlmIChvbkZyYW1lRHJhZ0xlYXZlKSBvbkZyYW1lRHJhZ0xlYXZlKGV2ZW50KTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgIH0sXG4gICAgW2ZyYW1lRHJhZ0NvdW50ZXIsIHNldERyYWdnaW5nT3ZlckZyYW1lLCBvbkZyYW1lRHJhZ0VudGVyLCBvbkZyYW1lRHJhZ0xlYXZlXVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZUZyYW1lRHJvcCA9IHVzZUNhbGxiYWNrKFxuICAgIGV2ZW50ID0+IHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBpZiAoIWRyYWdnaW5nT3ZlclRhcmdldCkge1xuICAgICAgICByZXNldERyYWdnaW5nKCk7XG4gICAgICAgIGlmIChvbkZyYW1lRHJvcCkgb25GcmFtZURyb3AoZXZlbnQpO1xuICAgICAgfVxuICAgIH0sXG4gICAgW29uRnJhbWVEcm9wLCBkcmFnZ2luZ092ZXJUYXJnZXQsIHJlc2V0RHJhZ2dpbmddXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlRHJhZ092ZXIgPSB1c2VDYWxsYmFjayhcbiAgICBldmVudCA9PiB7XG4gICAgICBpZiAoZXZlbnRIYXNGaWxlcyhldmVudCkpIHtcbiAgICAgICAgc2V0RHJhZ2dpbmdPdmVyVGFyZ2V0KHRydWUpO1xuICAgICAgICBpZiAoIWlzSUUoKSAmJiBkcm9wRWZmZWN0KSBldmVudC5kYXRhVHJhbnNmZXIuZHJvcEVmZmVjdCA9IGRyb3BFZmZlY3Q7XG4gICAgICAgIGlmIChvbkRyYWdPdmVyKSBvbkRyYWdPdmVyKGV2ZW50KTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtkcm9wRWZmZWN0LCBvbkRyYWdPdmVyXVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZURyYWdMZWF2ZSA9IHVzZUNhbGxiYWNrKFxuICAgIGV2ZW50ID0+IHtcbiAgICAgIHNldERyYWdnaW5nT3ZlclRhcmdldChmYWxzZSk7XG5cbiAgICAgIGlmIChvbkRyYWdMZWF2ZSkgb25EcmFnTGVhdmUoZXZlbnQpO1xuICAgIH0sXG4gICAgW29uRHJhZ0xlYXZlXVxuICApO1xuXG4gIGNvbnN0IGhhbmRsZURyb3AgPSB1c2VDYWxsYmFjayhcbiAgICBldmVudCA9PiB7XG4gICAgICBpZiAob25Ecm9wICYmIGV2ZW50SGFzRmlsZXMoZXZlbnQpKSB7XG4gICAgICAgIGNvbnN0IGZpbGVzID0gZXZlbnQuZGF0YVRyYW5zZmVyID8gZXZlbnQuZGF0YVRyYW5zZmVyLmZpbGVzIDogbnVsbDtcbiAgICAgICAgb25Ecm9wKGZpbGVzLCBldmVudCk7XG4gICAgICB9XG4gICAgICByZXNldERyYWdnaW5nKCk7XG4gICAgfSxcbiAgICBbb25Ecm9wLCByZXNldERyYWdnaW5nXVxuICApO1xuXG4gIGNvbnN0IHN0b3BGcmFtZUxpc3RlbmVycyA9IHVzZUNhbGxiYWNrKFxuICAgIGZyYW1lID0+IHtcbiAgICAgIGlmIChmcmFtZSkge1xuICAgICAgICBmcmFtZS5yZW1vdmVFdmVudExpc3RlbmVyKCdkcmFnZW50ZXInLCBoYW5kbGVGcmFtZURyYWcpO1xuICAgICAgICBmcmFtZS5yZW1vdmVFdmVudExpc3RlbmVyKCdkcmFnbGVhdmUnLCBoYW5kbGVGcmFtZURyYWcpO1xuICAgICAgICBmcmFtZS5yZW1vdmVFdmVudExpc3RlbmVyKCdkcm9wJywgaGFuZGxlRnJhbWVEcm9wKTtcbiAgICAgIH1cbiAgICB9LFxuICAgIFtoYW5kbGVGcmFtZURyYWcsIGhhbmRsZUZyYW1lRHJvcF1cbiAgKTtcblxuICBjb25zdCBzdGFydEZyYW1lTGlzdGVuZXJzID0gdXNlQ2FsbGJhY2soXG4gICAgZnJhbWUgPT4ge1xuICAgICAgaWYgKGZyYW1lKSB7XG4gICAgICAgIGZyYW1lLmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdlbnRlcicsIGhhbmRsZUZyYW1lRHJhZyk7XG4gICAgICAgIGZyYW1lLmFkZEV2ZW50TGlzdGVuZXIoJ2RyYWdsZWF2ZScsIGhhbmRsZUZyYW1lRHJhZyk7XG4gICAgICAgIGZyYW1lLmFkZEV2ZW50TGlzdGVuZXIoJ2Ryb3AnLCBoYW5kbGVGcmFtZURyb3ApO1xuICAgICAgfVxuICAgIH0sXG4gICAgW2hhbmRsZUZyYW1lRHJhZywgaGFuZGxlRnJhbWVEcm9wXVxuICApO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgLy8gY29tcG9uZW50RGlkVXBkYXRlXG4gICAgaWYgKHByZXZGcmFtZS5jdXJyZW50ICE9PSBmcmFtZSkge1xuICAgICAgcmVzZXREcmFnZ2luZygpO1xuICAgICAgc3RvcEZyYW1lTGlzdGVuZXJzKHByZXZGcmFtZS5jdXJyZW50KTtcbiAgICAgIHN0YXJ0RnJhbWVMaXN0ZW5lcnMoZnJhbWUpO1xuXG4gICAgICBwcmV2RnJhbWUuY3VycmVudCA9IGZyYW1lO1xuICAgIH1cbiAgfSwgW2ZyYW1lLCByZXNldERyYWdnaW5nLCBzdG9wRnJhbWVMaXN0ZW5lcnMsIHN0YXJ0RnJhbWVMaXN0ZW5lcnNdKTtcblxuICAvLyBSZW5kZXJcbiAgbGV0IGZpbGVEcm9wVGFyZ2V0Q2xhc3NOYW1lID0gdGFyZ2V0Q2xhc3NOYW1lO1xuICBpZiAoZHJhZ2dpbmdPdmVyRnJhbWUpIGZpbGVEcm9wVGFyZ2V0Q2xhc3NOYW1lICs9IGAgJHtkcmFnZ2luZ092ZXJGcmFtZUNsYXNzTmFtZX1gO1xuICBpZiAoZHJhZ2dpbmdPdmVyVGFyZ2V0KSBmaWxlRHJvcFRhcmdldENsYXNzTmFtZSArPSBgICR7ZHJhZ2dpbmdPdmVyVGFyZ2V0Q2xhc3NOYW1lfWA7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2XG4gICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgIG9uRHJhZ092ZXI9e2hhbmRsZURyYWdPdmVyfVxuICAgICAgb25EcmFnTGVhdmU9e2hhbmRsZURyYWdMZWF2ZX1cbiAgICAgIG9uRHJvcD17aGFuZGxlRHJvcH1cbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17ZmlsZURyb3BUYXJnZXRDbGFzc05hbWV9PntjaGlsZHJlbn08L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IEZpbGVEcm9wO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFPQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxPQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFBbUMsU0FBQUcseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFMLHdCQUFBSyxDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsZ0JBQUFLLE9BQUEsQ0FBQUwsQ0FBQSwwQkFBQUEsQ0FBQSxzQkFBQUEsQ0FBQSxRQUFBRyxDQUFBLEdBQUFKLHdCQUFBLENBQUFHLENBQUEsT0FBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFHLEdBQUEsQ0FBQU4sQ0FBQSxVQUFBRyxDQUFBLENBQUFJLEdBQUEsQ0FBQVAsQ0FBQSxPQUFBUSxDQUFBLEtBQUFDLFNBQUEsVUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxDQUFBLElBQUFkLENBQUEsb0JBQUFjLENBQUEsT0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFoQixDQUFBLEVBQUFjLENBQUEsU0FBQUcsQ0FBQSxHQUFBUCxDQUFBLEdBQUFDLE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQWIsQ0FBQSxFQUFBYyxDQUFBLFVBQUFHLENBQUEsS0FB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
@@ -14,7 +14,7 @@ export declare type ListItemProps<Option> = {
14
14
  disabled?: boolean;
15
15
  light?: boolean;
16
16
  };
17
- export declare const ListItem: ({ value, displayOption, disabled, light }: ListItemProps<any>) => React.JSX.Element;
17
+ export declare const ListItem: ({ value, displayOption, disabled }: ListItemProps<any>) => React.JSX.Element;
18
18
  export declare type DropdownListWrapperProps = BaseComponentProps & {
19
19
  light?: boolean;
20
20
  };
@@ -47,7 +47,7 @@ interface DropdownListState {
47
47
  export default class DropdownList extends Component<DropdownListProps, DropdownListState> {
48
48
  static defaultProps: {
49
49
  customClasses: {};
50
- customListItemComponent: ({ value, displayOption, disabled, light }: ListItemProps<any>) => React.JSX.Element;
50
+ customListItemComponent: ({ value, displayOption, disabled }: ListItemProps<any>) => React.JSX.Element;
51
51
  customListHeaderComponent: null;
52
52
  allowCustomValues: number;
53
53
  customValues: never[];
@@ -40,8 +40,7 @@ var ListItem = exports.ListItem = function ListItem(_ref) {
40
40
  var value = _ref.value,
41
41
  _ref$displayOption = _ref.displayOption,
42
42
  displayOption = _ref$displayOption === void 0 ? defaultDisplay : _ref$displayOption,
43
- disabled = _ref.disabled,
44
- light = _ref.light;
43
+ disabled = _ref.disabled;
45
44
  var displayValue = displayOption(value);
46
45
  return /*#__PURE__*/_react["default"].createElement("span", {
47
46
  title: displayValue,
@@ -256,4 +255,4 @@ var DropdownList = exports["default"] = /*#__PURE__*/function (_Component) {
256
255
  defaultClassNames: true,
257
256
  selectionIndex: null
258
257
  });
259
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9jb25zdGFudHMiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiX2NhbGxTdXBlciIsIm8iLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsImFwcGx5IiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJMRUZUX0JVVFRPTiIsImNsYXNzTGlzdCIsImV4cG9ydHMiLCJsaXN0IiwibGlzdEhlYWRlciIsImxpc3RTZWN0aW9uIiwibGlzdEl0ZW0iLCJsaXN0SXRlbUFuY2hvciIsImxpc3RJdGVtRml4ZWQiLCJkZWZhdWx0RGlzcGxheSIsImQiLCJMaXN0SXRlbSIsIl9yZWYiLCJ2YWx1ZSIsIl9yZWYkZGlzcGxheU9wdGlvbiIsImRpc3BsYXlPcHRpb24iLCJkaXNhYmxlZCIsImxpZ2h0IiwiZGlzcGxheVZhbHVlIiwiY3JlYXRlRWxlbWVudCIsInRpdGxlIiwiY2xhc3NOYW1lIiwiY2xhc3NOYW1lcyIsIkRyb3Bkb3duTGlzdFdyYXBwZXIiLCJzdHlsZWQiLCJkaXYiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsMiIsInByb3BzIiwidGhlbWUiLCJkcm9wZG93bkxpc3RCZ2RMVCIsImRyb3Bkb3duTGlzdEJnZCIsImRyb3Bkb3duTGlzdEJvcmRlclRvcExUIiwiZHJvcGRvd25MaXN0Qm9yZGVyVG9wIiwiZHJvcGRvd25MaXN0TFQiLCJkcm9wZG93bkxpc3QiLCJEcm9wZG93bkZvb3RlcldyYXBwZXIiLCJEcm9wZG93bkxpc3QiLCJfQ29tcG9uZW50IiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2syIiwiX2RlZmluZVByb3BlcnR5MiIsImVudGl0aWVzIiwieSIsImJvdW5kaW5nQ2xpZW50UmVjdCIsInByZXZZIiwib3B0aW9ucyIsIl9nZXRPcHRpb25zIiwicGFnZSIsInNldFN0YXRlIiwic3RhdGUiLCJpbml0TnVtYmVyT2ZPcHRpb25zIiwiSU5JVF9GSUxURVJfSVRFTVNfSU5fRFJPUERPV04iLCJsb2FkaW5nUmVmIiwiUmVhY3QiLCJjcmVhdGVSZWYiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsImNvbXBvbmVudERpZE1vdW50IiwiZGl2T3B0aW9ucyIsInJvb3QiLCJyb290TWFyZ2luIiwidGhyZXNob2xkIiwiY3VycmVudCIsIm9ic2VydmVyIiwiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLCJoYW5kbGVPYnNlcnZlciIsIm9ic2VydmUiLCJnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSIsInByZXZQcm9wcyIsImNvbXBvbmVudERpZFVwZGF0ZSIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwiX3RoaXMkb2JzZXJ2ZXIiLCJfdGhpcyRsb2FkaW5nUmVmIiwidW5vYnNlcnZlIiwibGVuZ3RoIiwic3RhcnQiLCJlbmQiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwic2xpY2UiLCJfb25DbGljayIsInJlc3VsdCIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJ0eXBlIiwiYnV0dG9uIiwiX3RoaXMkcHJvcHMkb25PcHRpb25TIiwiX3RoaXMkcHJvcHMiLCJvbk9wdGlvblNlbGVjdGVkIiwicmVuZGVyIiwiX3RoaXMkcHJvcHMkb3B0aW9ucyIsIl90aGlzJHByb3BzJGN1c3RvbUNsYSIsIl90aGlzJHByb3BzJGN1c3RvbUNsYTIiLCJfdGhpczIiLCJfdGhpcyRzdGF0ZSRvcHRpb25zIiwiX3RoaXMkcHJvcHMyIiwiZml4ZWRPcHRpb25zIiwiX3RoaXMkcHJvcHMyJGFsbG93Q3VzIiwiYWxsb3dDdXN0b21WYWx1ZXMiLCJfdGhpcyRwcm9wczIkY3VzdG9tTGkiLCJjdXN0b21MaXN0SXRlbUNvbXBvbmVudCIsIkN1c3RvbUxpc3RJdGVtQ29tcG9uZW50IiwiX3RoaXMkcHJvcHMkZGlzcGxheU9wIiwiZGlzcGxheSIsInZhbHVlT2Zmc2V0IiwiQXJyYXkiLCJpc0FycmF5IiwiY3VzdG9tQ2xhc3NlcyIsInJlc3VsdHMiLCJjdXN0b21MaXN0SGVhZGVyQ29tcG9uZW50IiwibWFwIiwiX3RoaXMyJHByb3BzJGN1c3RvbUNsIiwiaG92ZXIiLCJzZWxlY3Rpb25JbmRleCIsIm9uTW91c2VEb3duIiwib25DbGljayIsIl90aGlzMiRwcm9wcyRjdXN0b21DbDIiLCJzZWxlY3RlZCIsInNlbGVjdGVkSXRlbXMiLCJmaW5kIiwiaXRlbSIsInJlZiIsIkNvbXBvbmVudCIsImN1c3RvbVZhbHVlcyIsImRlZmF1bHRDbGFzc05hbWVzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1vbi9pdGVtLXNlbGVjdG9yL2Ryb3Bkb3duLWxpc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudCwgRWxlbWVudFR5cGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHN0eWxlZCwge0lTdHlsZWRDb21wb25lbnR9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7SU5JVF9GSUxURVJfSVRFTVNfSU5fRFJPUERPV059IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7QmFzZUNvbXBvbmVudFByb3BzfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmNvbnN0IExFRlRfQlVUVE9OID0gMDtcblxuZXhwb3J0IGNvbnN0IGNsYXNzTGlzdCA9IHtcbiAgbGlzdDogJ2xpc3Qtc2VsZWN0b3InLFxuICBsaXN0SGVhZGVyOiAnbGlzdF9faGVhZGVyJyxcbiAgbGlzdFNlY3Rpb246ICdsaXN0X19zZWN0aW9uJyxcbiAgbGlzdEl0ZW06ICdsaXN0X19pdGVtJyxcbiAgbGlzdEl0ZW1BbmNob3I6ICdsaXN0X19pdGVtX19hbmNob3InLFxuICBsaXN0SXRlbUZpeGVkOiAnbGlzdF9faXRlbV9fZml4ZWQnXG59O1xuXG5leHBvcnQgdHlwZSBMaXN0SXRlbVByb3BzPE9wdGlvbj4gPSB7XG4gIHZhbHVlOiBPcHRpb247XG4gIGRpc3BsYXlPcHRpb246IChvcHQ6IE9wdGlvbikgPT4gc3RyaW5nO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGxpZ2h0PzogYm9vbGVhbjtcbn07XG5cbmNvbnN0IGRlZmF1bHREaXNwbGF5ID0gZCA9PiBkO1xuZXhwb3J0IGNvbnN0IExpc3RJdGVtID0gKHtcbiAgdmFsdWUsXG4gIGRpc3BsYXlPcHRpb24gPSBkZWZhdWx0RGlzcGxheSxcbiAgZGlzYWJsZWQsXG4gIGxpZ2h0XG59OiBMaXN0SXRlbVByb3BzPGFueT4pID0+IHtcbiAgY29uc3QgZGlzcGxheVZhbHVlID0gZGlzcGxheU9wdGlvbih2YWx1ZSk7XG4gIHJldHVybiAoXG4gICAgPHNwYW4gdGl0bGU9e2Rpc3BsYXlWYWx1ZX0gY2xhc3NOYW1lPXtjbGFzc05hbWVzKGNsYXNzTGlzdC5saXN0SXRlbUFuY2hvciwge2Rpc2FibGVkfSl9PlxuICAgICAge2Rpc3BsYXlWYWx1ZX1cbiAgICA8L3NwYW4+XG4gICk7XG59O1xuXG5leHBvcnQgdHlwZSBEcm9wZG93bkxpc3RXcmFwcGVyUHJvcHMgPSBCYXNlQ29tcG9uZW50UHJvcHMgJiB7XG4gIGxpZ2h0PzogYm9vbGVhbjtcbn07XG5cbmNvbnN0IERyb3Bkb3duTGlzdFdyYXBwZXI6IElTdHlsZWRDb21wb25lbnQ8XG4gICd3ZWInLFxuICBEcm9wZG93bkxpc3RXcmFwcGVyUHJvcHNcbj4gPSBzdHlsZWQuZGl2PERyb3Bkb3duTGlzdFdyYXBwZXJQcm9wcz5gXG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT5cbiAgICBwcm9wcy5saWdodCA/IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdEJnZExUIDogcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0QmdkfTtcbiAgYm9yZGVyLXRvcDogMXB4IHNvbGlkXG4gICAgJHtwcm9wcyA9PlxuICAgICAgcHJvcHMubGlnaHQgPyBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RCb3JkZXJUb3BMVCA6IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdEJvcmRlclRvcH07XG4gICR7cHJvcHMgPT4gKHByb3BzLmxpZ2h0ID8gcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0TFQgOiBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3QpfTtcbmA7XG5cbmNvbnN0IERyb3Bkb3duRm9vdGVyV3JhcHBlciA9IHN0eWxlZC5kaXZgXG4gIGhlaWdodDogJzBweCc7XG5gO1xuXG50eXBlIE9wdGlvbiA9IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4gfCBvYmplY3QgfCBhbnk7XG4vLyBUT0RPOiBtYWtlIE9wdGlvbiBhIGdlbmVyaWMgdHlwZVxuaW50ZXJmYWNlIERyb3Bkb3duTGlzdFByb3BzIHtcbiAgb3B0aW9ucz86IE9wdGlvbltdO1xuICBhbGxvd0N1c3RvbVZhbHVlcz86IG51bWJlcjtcbiAgY3VzdG9tQ2xhc3Nlcz86IHtsaXN0SGVhZGVyPzogc3RyaW5nOyBsaXN0SXRlbT86IHN0cmluZzsgcmVzdWx0cz86IHN0cmluZ307XG4gIGN1c3RvbVZhbHVlcz86IGFueVtdO1xuICBjdXN0b21MaXN0SXRlbUNvbXBvbmVudD86IEVsZW1lbnRUeXBlO1xuICBjdXN0b21MaXN0SGVhZGVyQ29tcG9uZW50PzogRWxlbWVudFR5cGU7XG4gIHNlbGVjdGlvbkluZGV4PzogbnVtYmVyO1xuICBvbk9wdGlvblNlbGVjdGVkPzogKG9wdGlvbjogT3B0aW9uLCBldmVudDogUmVhY3QuTW91c2VFdmVudCkgPT4gdm9pZDtcbiAgZGlzcGxheU9wdGlvbj86IChvcHRpb246IE9wdGlvbikgPT4gc3RyaW5nO1xuICBkZWZhdWx0Q2xhc3NOYW1lcz86IGJvb2xlYW47XG4gIGFyZVJlc3VsdHNUcnVuY2F0ZWQ/OiBib29sZWFuO1xuICByZXN1bHRzVHJ1bmNhdGVkTWVzc2FnZT86IHN0cmluZztcbiAgbGlzdEl0ZW1Db21wb25lbnQ/OiBFbGVtZW50VHlwZTtcbiAgbGlnaHQ/OiBib29sZWFuO1xuICBmaXhlZE9wdGlvbnM/OiBhbnlbXTtcbiAgc2VsZWN0ZWRJdGVtcz86IGFueVtdOyAvLyBQYXNzZWQgdGhyb3VnaCBieSBUeXBlYWhlYWRcbn1cblxuaW50ZXJmYWNlIERyb3Bkb3duTGlzdFN0YXRlIHtcbiAgb3B0aW9uczogQXJyYXk8YW55PiB8IG51bGw7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIERyb3Bkb3duTGlzdCBleHRlbmRzIENvbXBvbmVudDxEcm9wZG93bkxpc3RQcm9wcywgRHJvcGRvd25MaXN0U3RhdGU+IHtcbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBjdXN0b21DbGFzc2VzOiB7fSxcbiAgICBjdXN0b21MaXN0SXRlbUNvbXBvbmVudDogTGlzdEl0ZW0sXG4gICAgY3VzdG9tTGlzdEhlYWRlckNvbXBvbmVudDogbnVsbCxcbiAgICBhbGxvd0N1c3RvbVZhbHVlczogMCxcbiAgICBjdXN0b21WYWx1ZXM6IFtdLFxuICAgIGRpc3BsYXlPcHRpb246IGRlZmF1bHREaXNwbGF5LFxuICAgIG9uT3B0aW9uU2VsZWN0ZWQ6ICgpID0+IHtcbiAgICAgIHJldHVybjtcbiAgICB9LFxuICAgIGRlZmF1bHRDbGFzc05hbWVzOiB0cnVlLFxuICAgIHNlbGVjdGlvbkluZGV4OiBudWxsXG4gIH07XG5cbiAgaW5pdE51bWJlck9mT3B0aW9uczogbnVtYmVyO1xuICBwYWdlOiBudW1iZXI7XG4gIHByZXZZOiBudW1iZXI7XG4gIGxvYWRpbmdSZWY6IFJlYWN0LlJlZk9iamVjdDxIVE1MRGl2RWxlbWVudD47XG4gIG9ic2VydmVyOiBJbnRlcnNlY3Rpb25PYnNlcnZlciB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3Rvcihwcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcblxuICAgIHRoaXMuc3RhdGUgPSB7b3B0aW9uczogW119O1xuICAgIHRoaXMuaW5pdE51bWJlck9mT3B0aW9ucyA9IElOSVRfRklMVEVSX0lURU1TX0lOX0RST1BET1dOO1xuICAgIHRoaXMucGFnZSA9IDA7XG4gICAgdGhpcy5wcmV2WSA9IDA7XG4gICAgdGhpcy5sb2FkaW5nUmVmID0gUmVhY3QuY3JlYXRlUmVmKCk7XG4gIH1cblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5fZ2V0T3B0aW9ucyh0aGlzLnBhZ2UpO1xuICAgIHRoaXMuc2V0U3RhdGUoe29wdGlvbnN9KTtcblxuICAgIGNvbnN0IGRpdk9wdGlvbnMgPSB7XG4gICAgICByb290OiBudWxsLFxuICAgICAgcm9vdE1hcmdpbjogJzAlJyxcbiAgICAgIHRocmVzaG9sZDogMS4wXG4gICAgfTtcblxuICAgIGlmICh0aGlzLmxvYWRpbmdSZWYuY3VycmVudCkge1xuICAgICAgdGhpcy5vYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcih0aGlzLmhhbmRsZU9ic2VydmVyLCBkaXZPcHRpb25zKTtcbiAgICAgIHRoaXMub2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmxvYWRpbmdSZWYuY3VycmVudCk7XG4gICAgfVxuICB9XG5cbiAgZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUocHJldlByb3BzOiBEcm9wZG93bkxpc3RQcm9wcykge1xuICAgIGlmIChwcmV2UHJvcHMub3B0aW9ucyAhPT0gdGhpcy5wcm9wcy5vcHRpb25zKSB7XG4gICAgICAvLyBjaGVjayBpZiB1c2VyIHNlYXJjaGluZywgcmVzZXQgc3RhdGUub3B0aW9ucyBhdCB0aGUgZmlyc3QgdGltZVxuICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuX2dldE9wdGlvbnMoMCk7XG4gICAgICB0aGlzLnNldFN0YXRlKHtvcHRpb25zfSk7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgLy8gcHJldmVudCBjb25zb2xlIHdhcm5pbmc6IGdldFNuYXBzaG90QmVmb3JlVXBkYXRlKCkgc2hvdWxkIGJlIHVzZWQgd2l0aCBjb21wb25lbnREaWRVcGRhdGUoKS5cbiAgY29tcG9uZW50RGlkVXBkYXRlKCkge1xuICAgIHJldHVybjtcbiAgfVxuXG4gIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgIGlmICh0aGlzLmxvYWRpbmdSZWYuY3VycmVudCkge1xuICAgICAgdGhpcy5vYnNlcnZlcj8udW5vYnNlcnZlKHRoaXMubG9hZGluZ1JlZj8uY3VycmVudCk7XG4gICAgICB0aGlzLnBhZ2UgPSAwO1xuICAgICAgdGhpcy5wcmV2WSA9IDA7XG4gICAgfVxuICB9XG5cbiAgaGFuZGxlT2JzZXJ2ZXIgPSBlbnRpdGllcyA9PiB7XG4gICAgY29uc3QgeSA9IGVudGl0aWVzWzBdLmJvdW5kaW5nQ2xpZW50UmVjdC55O1xuICAgIGlmICh0aGlzLnByZXZZID4geSkge1xuICAgICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuX2dldE9wdGlvbnModGhpcy5wYWdlKTtcbiAgICAgIGlmIChvcHRpb25zKSB0aGlzLnNldFN0YXRlKHtvcHRpb25zfSk7XG4gICAgfVxuICAgIHRoaXMucHJldlkgPSB5O1xuICB9O1xuXG4gIF9nZXRPcHRpb25zKHBhZ2UpIHtcbiAgICBpZiAoIXRoaXMucHJvcHMub3B0aW9ucykge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNvbnN0IG4gPSB0aGlzLnByb3BzLm9wdGlvbnMubGVuZ3RoO1xuICAgIGlmIChuID09PSAwKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIGNvbnN0IHN0YXJ0ID0gcGFnZSAqIHRoaXMuaW5pdE51bWJlck9mT3B0aW9ucztcbiAgICBjb25zdCBlbmQgPSBzdGFydCArIHRoaXMuaW5pdE51bWJlck9mT3B0aW9ucyA+IG4gPyBuIDogc3RhcnQgKyB0aGlzLmluaXROdW1iZXJPZk9wdGlvbnM7XG5cbiAgICBpZiAoc3RhcnQgPCBlbmQgJiYgZW5kIDw9IG4pIHtcbiAgICAgIHRoaXMucGFnZSA9IHBhZ2UgKyAxO1xuICAgICAgLy8gaW4gY2FzZSBvZiB1c2VyIHNlYXJjaGluZywgcHJvcHMub3B0aW9ucyB3aWxsIGJlIHVwZGF0ZWRcbiAgICAgIC8vIHNvIFwicGFnZVwiIHZhbHVlIHdpbGwgYmUgc2V0IHRvIDAgYW5kIHByZXZpb3VzIHN0YXRlLm9wdGlvbnMgd2lsbCBiZSBkaXNjYXJkZWRcbiAgICAgIHJldHVybiBbXG4gICAgICAgIC4uLihwYWdlID4gMCA/IHRoaXMuc3RhdGUub3B0aW9ucyB8fCBbXSA6IFtdKSxcbiAgICAgICAgLi4udGhpcy5wcm9wcy5vcHRpb25zLnNsaWNlKHN0YXJ0LCBlbmQpXG4gICAgICBdO1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgX29uQ2xpY2socmVzdWx0LCBldmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgLy8gb25seSB3b3JrIHdoZW4gbGVmdCBpcyBjbGlja2VkXG4gICAgaWYgKChldmVudC50eXBlID09PSAnbW91c2Vkb3duJyAmJiBldmVudC5idXR0b24gPT09IExFRlRfQlVUVE9OKSB8fCBldmVudC50eXBlID09PSAnY2xpY2snKSB7XG4gICAgICB0aGlzLnByb3BzLm9uT3B0aW9uU2VsZWN0ZWQ/LihyZXN1bHQsIGV2ZW50KTtcbiAgICB9XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgZml4ZWRPcHRpb25zLFxuICAgICAgbGlnaHQsXG4gICAgICBhbGxvd0N1c3RvbVZhbHVlcyA9IDAsXG4gICAgICBjdXN0b21MaXN0SXRlbUNvbXBvbmVudDogQ3VzdG9tTGlzdEl0ZW1Db21wb25lbnQgPSBMaXN0SXRlbVxuICAgIH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHtkaXNwbGF5T3B0aW9uOiBkaXNwbGF5ID0gZGVmYXVsdERpc3BsYXl9ID0gdGhpcy5wcm9wcztcblxuICAgIC8vIERvbid0IHJlbmRlciBpZiB0aGVyZSBhcmUgbm8gb3B0aW9ucyB0byBkaXNwbGF5XG4gICAgaWYgKCF0aGlzLnByb3BzLm9wdGlvbnM/Lmxlbmd0aCAmJiBhbGxvd0N1c3RvbVZhbHVlcyA8PSAwKSB7XG4gICAgICByZXR1cm4gPGRpdiAvPjtcbiAgICB9XG5cbiAgICBjb25zdCB2YWx1ZU9mZnNldCA9IEFycmF5LmlzQXJyYXkoZml4ZWRPcHRpb25zKSA/IGZpeGVkT3B0aW9ucy5sZW5ndGggOiAwO1xuXG4gICAgLy8gRm9yIHNvbWUgcmVhc29uIG9uQ2xpY2sgaXMgbm90IGZpcmVkIHdoZW4gY2xpY2tlZCBvbiBhbiBvcHRpb25cbiAgICAvLyBvbk1vdXNlRG93biBpcyB1c2VkIGhlcmUgYXMgYSB3b3JrYXJvdW5kIG9mICMyMDUgYW5kIG90aGVyXG4gICAgcmV0dXJuIChcbiAgICAgIDxEcm9wZG93bkxpc3RXcmFwcGVyXG4gICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhjbGFzc0xpc3QubGlzdCwgdGhpcy5wcm9wcy5jdXN0b21DbGFzc2VzPy5yZXN1bHRzKX1cbiAgICAgICAgbGlnaHQ9e2xpZ2h0fVxuICAgICAgPlxuICAgICAgICB7dGhpcy5wcm9wcy5jdXN0b21MaXN0SGVhZGVyQ29tcG9uZW50ID8gKFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc05hbWVzKGNsYXNzTGlzdC5saXN0SGVhZGVyLCB0aGlzLnByb3BzLmN1c3RvbUNsYXNzZXM/Lmxpc3RIZWFkZXIpfT5cbiAgICAgICAgICAgIDx0aGlzLnByb3BzLmN1c3RvbUxpc3RIZWFkZXJDb21wb25lbnQgLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKSA6IG51bGx9XG5cbiAgICAgICAge3ZhbHVlT2Zmc2V0ID4gMCA/IChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3NMaXN0Lmxpc3RTZWN0aW9ufT5cbiAgICAgICAgICAgIHtmaXhlZE9wdGlvbnM/Lm1hcCgodmFsdWUsIGkpID0+IChcbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lcyhcbiAgICAgICAgICAgICAgICAgIGNsYXNzTGlzdC5saXN0SXRlbSxcbiAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgaG92ZXI6IHRoaXMucHJvcHMuc2VsZWN0aW9uSW5kZXggPT09IGksXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc0xpc3QubGlzdEl0ZW1GaXhlZF06IHRydWVcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB0aGlzLnByb3BzLmN1c3RvbUNsYXNzZXM/Lmxpc3RJdGVtXG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICBrZXk9e2Ake2Rpc3BsYXkodmFsdWUpfV8ke2l9YH1cbiAgICAgICAgICAgICAgICBvbk1vdXNlRG93bj17ZSA9PiB0aGlzLl9vbkNsaWNrKHZhbHVlLCBlKX1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtlID0+IHRoaXMuX29uQ2xpY2sodmFsdWUsIGUpfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPEN1c3RvbUxpc3RJdGVtQ29tcG9uZW50IHZhbHVlPXt2YWx1ZX0gZGlzcGxheU9wdGlvbj17ZGlzcGxheX0gbGlnaHQ9e2xpZ2h0fSAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICkpfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApIDogbnVsbH1cblxuICAgICAgICB7dGhpcy5zdGF0ZS5vcHRpb25zPy5tYXAoKHZhbHVlLCBpKSA9PiAoXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFxuICAgICAgICAgICAgICBjbGFzc0xpc3QubGlzdEl0ZW0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBob3ZlcjogdGhpcy5wcm9wcy5zZWxlY3Rpb25JbmRleCA9PT0gaSArIHZhbHVlT2Zmc2V0LFxuICAgICAgICAgICAgICAgIHNlbGVjdGVkOiAodGhpcy5wcm9wcy5zZWxlY3RlZEl0ZW1zIHx8IFtdKS5maW5kKFxuICAgICAgICAgICAgICAgICAgaXRlbSA9PiBkaXNwbGF5KGl0ZW0pID09PSBkaXNwbGF5KHZhbHVlKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgdGhpcy5wcm9wcy5jdXN0b21DbGFzc2VzPy5saXN0SXRlbVxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIGtleT17YCR7ZGlzcGxheSh2YWx1ZSl9XyR7aX1gfVxuICAgICAgICAgICAgb25Nb3VzZURvd249e2UgPT4gdGhpcy5fb25DbGljayh2YWx1ZSwgZSl9XG4gICAgICAgICAgICBvbkNsaWNrPXtlID0+IHRoaXMuX29uQ2xpY2sodmFsdWUsIGUpfVxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxDdXN0b21MaXN0SXRlbUNvbXBvbmVudCB2YWx1ZT17dmFsdWV9IGRpc3BsYXlPcHRpb249e2Rpc3BsYXl9IC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICkpfVxuXG4gICAgICAgIDxEcm9wZG93bkZvb3RlcldyYXBwZXIgcmVmPXt0aGlzLmxvYWRpbmdSZWZ9IC8+XG4gICAgICA8L0Ryb3Bkb3duTGlzdFdyYXBwZXI+XG4gICAgKTtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsV0FBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsaUJBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFJLFVBQUEsR0FBQUosT0FBQTtBQUFtRSxJQUFBSyxlQUFBLEVBQUFDLGdCQUFBLEVBTm5FO0FBQ0E7QUFBQSxTQUFBQyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxLQUFBRixDQUFBO0FBQUEsU0FBQVQsd0JBQUFTLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSxnQkFBQUssT0FBQSxDQUFBTCxDQUFBLDBCQUFBQSxDQUFBLHNCQUFBQSxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQUcsR0FBQSxDQUFBTixDQUFBLFVBQUFHLENBQUEsQ0FBQUksR0FBQSxDQUFBUCxDQUFBLE9BQUFRLENBQUEsS0FBQUMsU0FBQSxVQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLENBQUEsSUFBQWQsQ0FBQSxvQkFBQWMsQ0FBQSxPQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWhCLENBQUEsRUFBQWMsQ0FBQSxTQUFBRyxDQUFBLEdBQUFQLENBQUEsR0FBQUMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBYixDQUFBLEVBQUFjLENBQUEsVUFBQUcsQ0FBQSxLQUFBQSxDQUFBLENBQUFWLEdBQUEsSUFBQVUsQ0FBQSxDQUFBQyxHQUFBLElBQUFQLE1BQUEsQ0FBQUMsY0FBQSxDQUFBSixDQUFBLEVBQUFNLENBQUEsRUFBQUcsQ0FBQSxJQUFBVCxDQUFBLENBQUFNLENBQUEsSUFBQWQsQ0FBQSxDQUFBYyxDQUFBLFlBQUFOLENBQUEsY0FBQVIsQ0FBQSxFQUFBRyxDQUFBLElBQUFBLENBQUEsQ0FBQWUsR0FBQSxDQUFBbEIsQ0FBQSxFQUFBUSxDQUFBLEdBQUFBLENBQUE7QUFBQSxTQUFBVyxXQUFBaEIsQ0FBQSxFQUFBaUIsQ0FBQSxFQUFBcEIsQ0FBQSxXQUFBb0IsQ0FBQSxPQUFBQyxnQkFBQSxhQUFBRCxDQUFBLE9BQUFFLDJCQUFBLGFBQUFuQixDQUFBLEVBQUFvQix5QkFBQSxLQUFBQyxPQUFBLENBQUFDLFNBQUEsQ0FBQUwsQ0FBQSxFQUFBcEIsQ0FBQSxZQUFBcUIsZ0JBQUEsYUFBQWxCLENBQUEsRUFBQXVCLFdBQUEsSUFBQU4sQ0FBQSxDQUFBTyxLQUFBLENBQUF4QixDQUFBLEVBQUFILENBQUE7QUFBQSxTQUFBdUIsMEJBQUEsY0FBQXBCLENBQUEsSUFBQXlCLE9BQUEsQ0FBQUMsU0FBQSxDQUFBQyxPQUFBLENBQUFkLElBQUEsQ0FBQVEsT0FBQSxDQUFBQyxTQUFBLENBQUFHLE9BQUEsaUNBQUF6QixDQUFBLGFBQUFvQix5QkFBQSxZQUFBQSwwQkFBQSxhQUFBcEIsQ0FBQTtBQVFBLElBQU00QixXQUFXLEdBQUcsQ0FBQztBQUVkLElBQU1DLFNBQVMsR0FBQUMsT0FBQSxDQUFBRCxTQUFBLEdBQUc7RUFDdkJFLElBQUksRUFBRSxlQUFlO0VBQ3JCQyxVQUFVLEVBQUUsY0FBYztFQUMxQkMsV0FBVyxFQUFFLGVBQWU7RUFDNUJDLFFBQVEsRUFBRSxZQUFZO0VBQ3RCQyxjQUFjLEVBQUUsb0JBQW9CO0VBQ3BDQyxhQUFhLEVBQUU7QUFDakIsQ0FBQztBQVNELElBQU1DLGNBQWMsR0FBRyxTQUFqQkEsY0FBY0EsQ0FBR0MsQ0FBQztFQUFBLE9BQUlBLENBQUM7QUFBQTtBQUN0QixJQUFNQyxRQUFRLEdBQUFULE9BQUEsQ0FBQVMsUUFBQSxHQUFHLFNBQVhBLFFBQVFBLENBQUFDLElBQUEsRUFLSztFQUFBLElBSnhCQyxLQUFLLEdBQUFELElBQUEsQ0FBTEMsS0FBSztJQUFBQyxrQkFBQSxHQUFBRixJQUFBLENBQ0xHLGFBQWE7SUFBYkEsYUFBYSxHQUFBRCxrQkFBQSxjQUFHTCxjQUFjLEdBQUFLLGtCQUFBO0lBQzlCRSxRQUFRLEdBQUFKLElBQUEsQ0FBUkksUUFBUTtJQUNSQyxLQUFLLEdBQUFMLElBQUEsQ0FBTEssS0FBSztFQUVMLElBQU1DLFlBQVksR0FBR0gsYUFBYSxDQUFDRixLQUFLLENBQUM7RUFDekMsb0JBQ0V0RCxNQUFBLFlBQUE0RCxhQUFBO0lBQU1DLEtBQUssRUFBRUYsWUFBYTtJQUFDRyxTQUFTLEVBQUUsSUFBQUMsc0JBQVUsRUFBQ3JCLFNBQVMsQ0FBQ00sY0FBYyxFQUFFO01BQUNTLFFBQVEsRUFBUkE7SUFBUSxDQUFDO0VBQUUsR0FDcEZFLFlBQ0csQ0FBQztBQUVYLENBQUM7QUFNRCxJQUFNSyxtQkFHTCxHQUFHQyw0QkFBTSxDQUFDQyxHQUFHLENBQUEzRCxlQUFBLEtBQUFBLGVBQUEsT0FBQTRELHVCQUFBLCtGQUNRLFVBQUFDLEtBQUs7RUFBQSxPQUN2QkEsS0FBSyxDQUFDVixLQUFLLEdBQUdVLEtBQUssQ0FBQ0MsS0FBSyxDQUFDQyxpQkFBaUIsR0FBR0YsS0FBSyxDQUFDQyxLQUFLLENBQUNFLGVBQWU7QUFBQSxHQUV2RSxVQUFBSCxLQUFLO0VBQUEsT0FDTEEsS0FBSyxDQUFDVixLQUFLLEdBQUdVLEtBQUssQ0FBQ0MsS0FBSyxDQUFDRyx1QkFBdUIsR0FBR0osS0FBSyxDQUFDQyxLQUFLLENBQUNJLHFCQUFxQjtBQUFBLEdBQ3ZGLFVBQUFMLEtBQUs7RUFBQSxPQUFLQSxLQUFLLENBQUNWLEtBQUssR0FBR1UsS0FBSyxDQUFDQyxLQUFLLENBQUNLLGNBQWMsR0FBR04sS0FBSyxDQUFDQyxLQUFLLENBQUNNLFlBQVk7QUFBQSxDQUFDLENBQ2pGO0FBRUQsSUFBTUMscUJBQXFCLEdBQUdYLDRCQUFNLENBQUNDLEdBQUcsQ0FBQTFELGdCQUFBLEtBQUFBLGdCQUFBLE9BQUEyRCx1QkFBQSx3Q0FFdkM7O0FBR0Q7QUFBQSxJQXdCcUJVLFlBQVksR0FBQWxDLE9BQUEscUNBQUFtQyxVQUFBO0VBcUIvQixTQUFBRCxhQUFZVCxLQUFLLEVBQUU7SUFBQSxJQUFBVyxLQUFBO0lBQUEsSUFBQUMsZ0JBQUEsbUJBQUFILFlBQUE7SUFDakJFLEtBQUEsR0FBQWxELFVBQUEsT0FBQWdELFlBQUEsR0FBTVQsS0FBSztJQUFFLElBQUFhLGdCQUFBLGFBQUFGLEtBQUE7SUFBQSxJQUFBRSxnQkFBQSxhQUFBRixLQUFBO0lBQUEsSUFBQUUsZ0JBQUEsYUFBQUYsS0FBQTtJQUFBLElBQUFFLGdCQUFBLGFBQUFGLEtBQUE7SUFBQSxJQUFBRSxnQkFBQSxhQUFBRixLQUFBO0lBQUEsSUFBQUUsZ0JBQUEsYUFBQUYsS0FBQSxvQkErQ0UsVUFBQUcsUUFBUSxFQUFJO01BQzNCLElBQU1DLENBQUMsR0FBR0QsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDRSxrQkFBa0IsQ0FBQ0QsQ0FBQztNQUMxQyxJQUFJSixLQUFBLENBQUtNLEtBQUssR0FBR0YsQ0FBQyxFQUFFO1FBQ2xCLElBQU1HLE9BQU8sR0FBR1AsS0FBQSxDQUFLUSxXQUFXLENBQUNSLEtBQUEsQ0FBS1MsSUFBSSxDQUFDO1FBQzNDLElBQUlGLE9BQU8sRUFBRVAsS0FBQSxDQUFLVSxRQUFRLENBQUM7VUFBQ0gsT0FBTyxFQUFQQTtRQUFPLENBQUMsQ0FBQztNQUN2QztNQUNBUCxLQUFBLENBQUtNLEtBQUssR0FBR0YsQ0FBQztJQUNoQixDQUFDO0lBcERDSixLQUFBLENBQUtXLEtBQUssR0FBRztNQUFDSixPQUFPLEVBQUU7SUFBRSxDQUFDO0lBQzFCUCxLQUFBLENBQUtZLG1CQUFtQixHQUFHQyx3Q0FBNkI7SUFDeERiLEtBQUEsQ0FBS1MsSUFBSSxHQUFHLENBQUM7SUFDYlQsS0FBQSxDQUFLTSxLQUFLLEdBQUcsQ0FBQztJQUNkTixLQUFBLENBQUtjLFVBQVUsZ0JBQUdDLGlCQUFLLENBQUNDLFNBQVMsQ0FBQyxDQUFDO0lBQUMsT0FBQWhCLEtBQUE7RUFDdEM7RUFBQyxJQUFBaUIsVUFBQSxhQUFBbkIsWUFBQSxFQUFBQyxVQUFBO0VBQUEsV0FBQW1CLGFBQUEsYUFBQXBCLFlBQUE7SUFBQXFCLEdBQUE7SUFBQTVDLEtBQUEsRUFFRCxTQUFBNkMsaUJBQWlCQSxDQUFBLEVBQUc7TUFDbEIsSUFBTWIsT0FBTyxHQUFHLElBQUksQ0FBQ0MsV0FBVyxDQUFDLElBQUksQ0FBQ0MsSUFBSSxDQUFDO01BQzNDLElBQUksQ0FBQ0MsUUFBUSxDQUFDO1FBQUNILE9BQU8sRUFBUEE7TUFBTyxDQUFDLENBQUM7TUFFeEIsSUFBTWMsVUFBVSxHQUFHO1FBQ2pCQyxJQUFJLEVBQUUsSUFBSTtRQUNWQyxVQUFVLEVBQUUsSUFBSTtRQUNoQkMsU0FBUyxFQUFFO01BQ2IsQ0FBQztNQUVELElBQUksSUFBSSxDQUFDVixVQUFVLENBQUNXLE9BQU8sRUFBRTtRQUMzQixJQUFJLENBQUNDLFFBQVEsR0FBRyxJQUFJQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUNDLGNBQWMsRUFBRVAsVUFBVSxDQUFDO1FBQ3pFLElBQUksQ0FBQ0ssUUFBUSxDQUFDRyxPQUFPLENBQUMsSUFBSSxDQUFDZixVQUFVLENBQUNXLE9BQU8sQ0FBQztNQUNoRDtJQUNGO0VBQUM7SUFBQU4sR0FBQTtJQUFBNUMsS0FBQSxFQUVELFNBQUF1RCx1QkFBdUJBLENBQUNDLFNBQTRCLEVBQUU7TUFDcEQsSUFBSUEsU0FBUyxDQUFDeEIsT0FBTyxLQUFLLElBQUksQ0FBQ2xCLEtBQUssQ0FBQ2tCLE9BQU8sRUFBRTtRQUM1QztRQUNBLElBQU1BLE9BQU8sR0FBRyxJQUFJLENBQUNDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDRSxRQUFRLENBQUM7VUFBQ0gsT0FBTyxFQUFQQTtRQUFPLENBQUMsQ0FBQztNQUMxQjtNQUNBLE9BQU8sSUFBSTtJQUNiOztJQUVBO0VBQUE7SUFBQVksR0FBQTtJQUFBNUMsS0FBQSxFQUNBLFNBQUF5RCxrQkFBa0JBLENBQUEsRUFBRztNQUNuQjtJQUNGO0VBQUM7SUFBQWIsR0FBQTtJQUFBNUMsS0FBQSxFQUVELFNBQUEwRCxvQkFBb0JBLENBQUEsRUFBRztNQUNyQixJQUFJLElBQUksQ0FBQ25CLFVBQVUsQ0FBQ1csT0FBTyxFQUFFO1FBQUEsSUFBQVMsY0FBQSxFQUFBQyxnQkFBQTtRQUMzQixDQUFBRCxjQUFBLE9BQUksQ0FBQ1IsUUFBUSxjQUFBUSxjQUFBLGVBQWJBLGNBQUEsQ0FBZUUsU0FBUyxFQUFBRCxnQkFBQSxHQUFDLElBQUksQ0FBQ3JCLFVBQVUsY0FBQXFCLGdCQUFBLHVCQUFmQSxnQkFBQSxDQUFpQlYsT0FBTyxDQUFDO1FBQ2xELElBQUksQ0FBQ2hCLElBQUksR0FBRyxDQUFDO1FBQ2IsSUFBSSxDQUFDSCxLQUFLLEdBQUcsQ0FBQztNQUNoQjtJQUNGO0VBQUM7SUFBQWEsR0FBQTtJQUFBNUMsS0FBQSxFQVdELFNBQUFpQyxXQUFXQSxDQUFDQyxJQUFJLEVBQUU7TUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQ3BCLEtBQUssQ0FBQ2tCLE9BQU8sRUFBRTtRQUN2QixPQUFPLEVBQUU7TUFDWDtNQUVBLElBQU1wRSxDQUFDLEdBQUcsSUFBSSxDQUFDa0QsS0FBSyxDQUFDa0IsT0FBTyxDQUFDOEIsTUFBTTtNQUNuQyxJQUFJbEcsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNYLE9BQU8sRUFBRTtNQUNYO01BQ0EsSUFBTW1HLEtBQUssR0FBRzdCLElBQUksR0FBRyxJQUFJLENBQUNHLG1CQUFtQjtNQUM3QyxJQUFNMkIsR0FBRyxHQUFHRCxLQUFLLEdBQUcsSUFBSSxDQUFDMUIsbUJBQW1CLEdBQUd6RSxDQUFDLEdBQUdBLENBQUMsR0FBR21HLEtBQUssR0FBRyxJQUFJLENBQUMxQixtQkFBbUI7TUFFdkYsSUFBSTBCLEtBQUssR0FBR0MsR0FBRyxJQUFJQSxHQUFHLElBQUlwRyxDQUFDLEVBQUU7UUFDM0IsSUFBSSxDQUFDc0UsSUFBSSxHQUFHQSxJQUFJLEdBQUcsQ0FBQztRQUNwQjtRQUNBO1FBQ0EsVUFBQStCLE1BQUEsS0FBQUMsbUJBQUEsYUFDTWhDLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDRSxLQUFLLENBQUNKLE9BQU8sSUFBSSxFQUFFLEdBQUcsRUFBRSxPQUFBa0MsbUJBQUEsYUFDekMsSUFBSSxDQUFDcEQsS0FBSyxDQUFDa0IsT0FBTyxDQUFDbUMsS0FBSyxDQUFDSixLQUFLLEVBQUVDLEdBQUcsQ0FBQztNQUUzQztNQUVBLE9BQU8sSUFBSTtJQUNiO0VBQUM7SUFBQXBCLEdBQUE7SUFBQTVDLEtBQUEsRUFFRCxTQUFBb0UsUUFBUUEsQ0FBQ0MsTUFBTSxFQUFFQyxLQUFLLEVBQUU7TUFDdEJBLEtBQUssQ0FBQ0MsY0FBYyxDQUFDLENBQUM7TUFDdEI7TUFDQSxJQUFLRCxLQUFLLENBQUNFLElBQUksS0FBSyxXQUFXLElBQUlGLEtBQUssQ0FBQ0csTUFBTSxLQUFLdEYsV0FBVyxJQUFLbUYsS0FBSyxDQUFDRSxJQUFJLEtBQUssT0FBTyxFQUFFO1FBQUEsSUFBQUUscUJBQUEsRUFBQUMsV0FBQTtRQUMxRixDQUFBRCxxQkFBQSxJQUFBQyxXQUFBLE9BQUksQ0FBQzdELEtBQUssRUFBQzhELGdCQUFnQixjQUFBRixxQkFBQSxlQUEzQkEscUJBQUEsQ0FBQXRHLElBQUEsQ0FBQXVHLFdBQUEsRUFBOEJOLE1BQU0sRUFBRUMsS0FBSyxDQUFDO01BQzlDO0lBQ0Y7RUFBQztJQUFBMUIsR0FBQTtJQUFBNUMsS0FBQSxFQUVELFNBQUE2RSxNQUFNQSxDQUFBLEVBQUc7TUFBQSxJQUFBQyxtQkFBQTtRQUFBQyxxQkFBQTtRQUFBQyxzQkFBQTtRQUFBQyxNQUFBO1FBQUFDLG1CQUFBO01BQ1AsSUFBQUMsWUFBQSxHQUtJLElBQUksQ0FBQ3JFLEtBQUs7UUFKWnNFLFlBQVksR0FBQUQsWUFBQSxDQUFaQyxZQUFZO1FBQ1poRixLQUFLLEdBQUErRSxZQUFBLENBQUwvRSxLQUFLO1FBQUFpRixxQkFBQSxHQUFBRixZQUFBLENBQ0xHLGlCQUFpQjtRQUFqQkEsaUJBQWlCLEdBQUFELHFCQUFBLGNBQUcsQ0FBQyxHQUFBQSxxQkFBQTtRQUFBRSxxQkFBQSxHQUFBSixZQUFBLENBQ3JCSyx1QkFBdUI7UUFBRUMsdUJBQXVCLEdBQUFGLHFCQUFBLGNBQUd6RixRQUFRLEdBQUF5RixxQkFBQTtNQUU3RCxJQUFBRyxxQkFBQSxHQUFrRCxJQUFJLENBQUM1RSxLQUFLLENBQXJEWixhQUFhO1FBQUV5RixPQUFPLEdBQUFELHFCQUFBLGNBQUc5RixjQUFjLEdBQUE4RixxQkFBQTs7TUFFOUM7TUFDQSxJQUFJLEdBQUFaLG1CQUFBLEdBQUMsSUFBSSxDQUFDaEUsS0FBSyxDQUFDa0IsT0FBTyxjQUFBOEMsbUJBQUEsZUFBbEJBLG1CQUFBLENBQW9CaEIsTUFBTSxLQUFJd0IsaUJBQWlCLElBQUksQ0FBQyxFQUFFO1FBQ3pELG9CQUFPNUksTUFBQSxZQUFBNEQsYUFBQSxZQUFNLENBQUM7TUFDaEI7TUFFQSxJQUFNc0YsV0FBVyxHQUFHQyxLQUFLLENBQUNDLE9BQU8sQ0FBQ1YsWUFBWSxDQUFDLEdBQUdBLFlBQVksQ0FBQ3RCLE1BQU0sR0FBRyxDQUFDOztNQUV6RTtNQUNBO01BQ0Esb0JBQ0VwSCxNQUFBLFlBQUE0RCxhQUFBLENBQUNJLG1CQUFtQjtRQUNsQkYsU0FBUyxFQUFFLElBQUFDLHNCQUFVLEVBQUNyQixTQUFTLENBQUNFLElBQUksR0FBQXlGLHFCQUFBLEdBQUUsSUFBSSxDQUFDakUsS0FBSyxDQUFDaUYsYUFBYSxjQUFBaEIscUJBQUEsdUJBQXhCQSxxQkFBQSxDQUEwQmlCLE9BQU8sQ0FBRTtRQUN6RTVGLEtBQUssRUFBRUE7TUFBTSxHQUVaLElBQUksQ0FBQ1UsS0FBSyxDQUFDbUYseUJBQXlCLGdCQUNuQ3ZKLE1BQUEsWUFBQTRELGFBQUE7UUFBS0UsU0FBUyxFQUFFLElBQUFDLHNCQUFVLEVBQUNyQixTQUFTLENBQUNHLFVBQVUsR0FBQXlGLHNCQUFBLEdBQUUsSUFBSSxDQUFDbEUsS0FBSyxDQUFDaUYsYUFBYSxjQUFBZixzQkFBQSx1QkFBeEJBLHNCQUFBLENBQTBCekYsVUFBVTtNQUFFLGdCQUNyRjdDLE1BQUEsWUFBQTRELGFBQUEsTUFBTVEsS0FBSyxDQUFDbUYseUJBQXlCLE1BQUUsQ0FDcEMsQ0FBQyxHQUNKLElBQUksRUFFUEwsV0FBVyxHQUFHLENBQUMsZ0JBQ2RsSixNQUFBLFlBQUE0RCxhQUFBO1FBQUtFLFNBQVMsRUFBRXBCLFNBQVMsQ0FBQ0k7TUFBWSxHQUNuQzRGLFlBQVksYUFBWkEsWUFBWSx1QkFBWkEsWUFBWSxDQUFFYyxHQUFHLENBQUMsVUFBQ2xHLEtBQUssRUFBRTNCLENBQUM7UUFBQSxJQUFBOEgscUJBQUE7UUFBQSxvQkFDMUJ6SixNQUFBLFlBQUE0RCxhQUFBO1VBQ0VFLFNBQVMsRUFBRSxJQUFBQyxzQkFBVSxFQUNuQnJCLFNBQVMsQ0FBQ0ssUUFBUSxNQUFBa0MsZ0JBQUE7WUFFaEJ5RSxLQUFLLEVBQUVuQixNQUFJLENBQUNuRSxLQUFLLENBQUN1RixjQUFjLEtBQUtoSTtVQUFDLEdBQ3JDZSxTQUFTLENBQUNPLGFBQWEsRUFBRyxJQUFJLElBQUF3RyxxQkFBQSxHQUVqQ2xCLE1BQUksQ0FBQ25FLEtBQUssQ0FBQ2lGLGFBQWEsY0FBQUkscUJBQUEsdUJBQXhCQSxxQkFBQSxDQUEwQjFHLFFBQzVCLENBQUU7VUFDRm1ELEdBQUcsS0FBQXFCLE1BQUEsQ0FBSzBCLE9BQU8sQ0FBQzNGLEtBQUssQ0FBQyxPQUFBaUUsTUFBQSxDQUFJNUYsQ0FBQyxDQUFHO1VBQzlCaUksV0FBVyxFQUFFLFNBQWJBLFdBQVdBLENBQUVsSixDQUFDO1lBQUEsT0FBSTZILE1BQUksQ0FBQ2IsUUFBUSxDQUFDcEUsS0FBSyxFQUFFNUMsQ0FBQyxDQUFDO1VBQUEsQ0FBQztVQUMxQ21KLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFFbkosQ0FBQztZQUFBLE9BQUk2SCxNQUFJLENBQUNiLFFBQVEsQ0FBQ3BFLEtBQUssRUFBRTVDLENBQUMsQ0FBQztVQUFBO1FBQUMsZ0JBRXRDVixNQUFBLFlBQUE0RCxhQUFBLENBQUNtRix1QkFBdUI7VUFBQ3pGLEtBQUssRUFBRUEsS0FBTTtVQUFDRSxhQUFhLEVBQUV5RixPQUFRO1VBQUN2RixLQUFLLEVBQUVBO1FBQU0sQ0FBRSxDQUMzRSxDQUFDO01BQUEsQ0FDUCxDQUNFLENBQUMsR0FDSixJQUFJLEdBQUE4RSxtQkFBQSxHQUVQLElBQUksQ0FBQzlDLEtBQUssQ0FBQ0osT0FBTyxjQUFBa0QsbUJBQUEsdUJBQWxCQSxtQkFBQSxDQUFvQmdCLEdBQUcsQ0FBQyxVQUFDbEcsS0FBSyxFQUFFM0IsQ0FBQztRQUFBLElBQUFtSSxzQkFBQTtRQUFBLG9CQUNoQzlKLE1BQUEsWUFBQTRELGFBQUE7VUFDRUUsU0FBUyxFQUFFLElBQUFDLHNCQUFVLEVBQ25CckIsU0FBUyxDQUFDSyxRQUFRLEVBQ2xCO1lBQ0UyRyxLQUFLLEVBQUVuQixNQUFJLENBQUNuRSxLQUFLLENBQUN1RixjQUFjLEtBQUtoSSxDQUFDLEdBQUd1SCxXQUFXO1lBQ3BEYSxRQUFRLEVBQUUsQ0FBQ3hCLE1BQUksQ0FBQ25FLEtBQUssQ0FBQzRGLGFBQWEsSUFBSSxFQUFFLEVBQUVDLElBQUksQ0FDN0MsVUFBQUMsSUFBSTtjQUFBLE9BQUlqQixPQUFPLENBQUNpQixJQUFJLENBQUMsS0FBS2pCLE9BQU8sQ0FBQzNGLEtBQUssQ0FBQztZQUFBLENBQzFDO1VBQ0YsQ0FBQyxHQUFBd0csc0JBQUEsR0FDRHZCLE1BQUksQ0FBQ25FLEtBQUssQ0FBQ2lGLGFBQWEsY0FBQVMsc0JBQUEsdUJBQXhCQSxzQkFBQSxDQUEwQi9HLFFBQzVCLENBQUU7VUFDRm1ELEdBQUcsS0FBQXFCLE1BQUEsQ0FBSzBCLE9BQU8sQ0FBQzNGLEtBQUssQ0FBQyxPQUFBaUUsTUFBQSxDQUFJNUYsQ0FBQyxDQUFHO1VBQzlCaUksV0FBVyxFQUFFLFNBQWJBLFdBQVdBLENBQUVsSixDQUFDO1lBQUEsT0FBSTZILE1BQUksQ0FBQ2IsUUFBUSxDQUFDcEUsS0FBSyxFQUFFNUMsQ0FBQyxDQUFDO1VBQUEsQ0FBQztVQUMxQ21KLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFFbkosQ0FBQztZQUFBLE9BQUk2SCxNQUFJLENBQUNiLFFBQVEsQ0FBQ3BFLEtBQUssRUFBRTVDLENBQUMsQ0FBQztVQUFBO1FBQUMsZ0JBRXRDVixNQUFBLFlBQUE0RCxhQUFBLENBQUNtRix1QkFBdUI7VUFBQ3pGLEtBQUssRUFBRUEsS0FBTTtVQUFDRSxhQUFhLEVBQUV5RjtRQUFRLENBQUUsQ0FDN0QsQ0FBQztNQUFBLENBQ1AsQ0FBQyxlQUVGakosTUFBQSxZQUFBNEQsYUFBQSxDQUFDZ0IscUJBQXFCO1FBQUN1RixHQUFHLEVBQUUsSUFBSSxDQUFDdEU7TUFBVyxDQUFFLENBQzNCLENBQUM7SUFFMUI7RUFBQztBQUFBLEVBekx1Q3VFLGdCQUFTO0FBQUEsSUFBQW5GLGdCQUFBLGFBQTlCSixZQUFZLGtCQUNUO0VBQ3BCd0UsYUFBYSxFQUFFLENBQUMsQ0FBQztFQUNqQlAsdUJBQXVCLEVBQUUxRixRQUFRO0VBQ2pDbUcseUJBQXlCLEVBQUUsSUFBSTtFQUMvQlgsaUJBQWlCLEVBQUUsQ0FBQztFQUNwQnlCLFlBQVksRUFBRSxFQUFFO0VBQ2hCN0csYUFBYSxFQUFFTixjQUFjO0VBQzdCZ0YsZ0JBQWdCLEVBQUUsU0FBbEJBLGdCQUFnQkEsQ0FBQSxFQUFRO0lBQ3RCO0VBQ0YsQ0FBQztFQUNEb0MsaUJBQWlCLEVBQUUsSUFBSTtFQUN2QlgsY0FBYyxFQUFFO0FBQ2xCLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
258
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9jb25zdGFudHMiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGVtcGxhdGVPYmplY3QyIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiX2NhbGxTdXBlciIsIm8iLCJfZ2V0UHJvdG90eXBlT2YyIiwiX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yIiwiX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCIsIlJlZmxlY3QiLCJjb25zdHJ1Y3QiLCJjb25zdHJ1Y3RvciIsImFwcGx5IiwiQm9vbGVhbiIsInByb3RvdHlwZSIsInZhbHVlT2YiLCJMRUZUX0JVVFRPTiIsImNsYXNzTGlzdCIsImV4cG9ydHMiLCJsaXN0IiwibGlzdEhlYWRlciIsImxpc3RTZWN0aW9uIiwibGlzdEl0ZW0iLCJsaXN0SXRlbUFuY2hvciIsImxpc3RJdGVtRml4ZWQiLCJkZWZhdWx0RGlzcGxheSIsImQiLCJMaXN0SXRlbSIsIl9yZWYiLCJ2YWx1ZSIsIl9yZWYkZGlzcGxheU9wdGlvbiIsImRpc3BsYXlPcHRpb24iLCJkaXNhYmxlZCIsImRpc3BsYXlWYWx1ZSIsImNyZWF0ZUVsZW1lbnQiLCJ0aXRsZSIsImNsYXNzTmFtZSIsImNsYXNzTmFtZXMiLCJEcm9wZG93bkxpc3RXcmFwcGVyIiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsImxpZ2h0IiwidGhlbWUiLCJkcm9wZG93bkxpc3RCZ2RMVCIsImRyb3Bkb3duTGlzdEJnZCIsImRyb3Bkb3duTGlzdEJvcmRlclRvcExUIiwiZHJvcGRvd25MaXN0Qm9yZGVyVG9wIiwiZHJvcGRvd25MaXN0TFQiLCJkcm9wZG93bkxpc3QiLCJEcm9wZG93bkZvb3RlcldyYXBwZXIiLCJEcm9wZG93bkxpc3QiLCJfQ29tcG9uZW50IiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2syIiwiX2RlZmluZVByb3BlcnR5MiIsImVudGl0aWVzIiwieSIsImJvdW5kaW5nQ2xpZW50UmVjdCIsInByZXZZIiwib3B0aW9ucyIsIl9nZXRPcHRpb25zIiwicGFnZSIsInNldFN0YXRlIiwic3RhdGUiLCJpbml0TnVtYmVyT2ZPcHRpb25zIiwiSU5JVF9GSUxURVJfSVRFTVNfSU5fRFJPUERPV04iLCJsb2FkaW5nUmVmIiwiUmVhY3QiLCJjcmVhdGVSZWYiLCJfaW5oZXJpdHMyIiwiX2NyZWF0ZUNsYXNzMiIsImtleSIsImNvbXBvbmVudERpZE1vdW50IiwiZGl2T3B0aW9ucyIsInJvb3QiLCJyb290TWFyZ2luIiwidGhyZXNob2xkIiwiY3VycmVudCIsIm9ic2VydmVyIiwiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLCJoYW5kbGVPYnNlcnZlciIsIm9ic2VydmUiLCJnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZSIsInByZXZQcm9wcyIsImNvbXBvbmVudERpZFVwZGF0ZSIsImNvbXBvbmVudFdpbGxVbm1vdW50IiwiX3RoaXMkb2JzZXJ2ZXIiLCJfdGhpcyRsb2FkaW5nUmVmIiwidW5vYnNlcnZlIiwibGVuZ3RoIiwic3RhcnQiLCJlbmQiLCJjb25jYXQiLCJfdG9Db25zdW1hYmxlQXJyYXkyIiwic2xpY2UiLCJfb25DbGljayIsInJlc3VsdCIsImV2ZW50IiwicHJldmVudERlZmF1bHQiLCJ0eXBlIiwiYnV0dG9uIiwiX3RoaXMkcHJvcHMkb25PcHRpb25TIiwiX3RoaXMkcHJvcHMiLCJvbk9wdGlvblNlbGVjdGVkIiwicmVuZGVyIiwiX3RoaXMkcHJvcHMkb3B0aW9ucyIsIl90aGlzJHByb3BzJGN1c3RvbUNsYSIsIl90aGlzJHByb3BzJGN1c3RvbUNsYTIiLCJfdGhpczIiLCJfdGhpcyRzdGF0ZSRvcHRpb25zIiwiX3RoaXMkcHJvcHMyIiwiZml4ZWRPcHRpb25zIiwiX3RoaXMkcHJvcHMyJGFsbG93Q3VzIiwiYWxsb3dDdXN0b21WYWx1ZXMiLCJfdGhpcyRwcm9wczIkY3VzdG9tTGkiLCJjdXN0b21MaXN0SXRlbUNvbXBvbmVudCIsIkN1c3RvbUxpc3RJdGVtQ29tcG9uZW50IiwiX3RoaXMkcHJvcHMkZGlzcGxheU9wIiwiZGlzcGxheSIsInZhbHVlT2Zmc2V0IiwiQXJyYXkiLCJpc0FycmF5IiwiY3VzdG9tQ2xhc3NlcyIsInJlc3VsdHMiLCJjdXN0b21MaXN0SGVhZGVyQ29tcG9uZW50IiwibWFwIiwiX3RoaXMyJHByb3BzJGN1c3RvbUNsIiwiaG92ZXIiLCJzZWxlY3Rpb25JbmRleCIsIm9uTW91c2VEb3duIiwib25DbGljayIsIl90aGlzMiRwcm9wcyRjdXN0b21DbDIiLCJzZWxlY3RlZCIsInNlbGVjdGVkSXRlbXMiLCJmaW5kIiwiaXRlbSIsInJlZiIsIkNvbXBvbmVudCIsImN1c3RvbVZhbHVlcyIsImRlZmF1bHRDbGFzc05hbWVzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbW1vbi9pdGVtLXNlbGVjdG9yL2Ryb3Bkb3duLWxpc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudCwgRWxlbWVudFR5cGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBjbGFzc05hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHN0eWxlZCwge0lTdHlsZWRDb21wb25lbnR9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7SU5JVF9GSUxURVJfSVRFTVNfSU5fRFJPUERPV059IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7QmFzZUNvbXBvbmVudFByb3BzfSBmcm9tICcuLi8uLi90eXBlcyc7XG5cbmNvbnN0IExFRlRfQlVUVE9OID0gMDtcblxuZXhwb3J0IGNvbnN0IGNsYXNzTGlzdCA9IHtcbiAgbGlzdDogJ2xpc3Qtc2VsZWN0b3InLFxuICBsaXN0SGVhZGVyOiAnbGlzdF9faGVhZGVyJyxcbiAgbGlzdFNlY3Rpb246ICdsaXN0X19zZWN0aW9uJyxcbiAgbGlzdEl0ZW06ICdsaXN0X19pdGVtJyxcbiAgbGlzdEl0ZW1BbmNob3I6ICdsaXN0X19pdGVtX19hbmNob3InLFxuICBsaXN0SXRlbUZpeGVkOiAnbGlzdF9faXRlbV9fZml4ZWQnXG59O1xuXG5leHBvcnQgdHlwZSBMaXN0SXRlbVByb3BzPE9wdGlvbj4gPSB7XG4gIHZhbHVlOiBPcHRpb247XG4gIGRpc3BsYXlPcHRpb246IChvcHQ6IE9wdGlvbikgPT4gc3RyaW5nO1xuICBkaXNhYmxlZD86IGJvb2xlYW47XG4gIGxpZ2h0PzogYm9vbGVhbjtcbn07XG5cbmNvbnN0IGRlZmF1bHREaXNwbGF5ID0gZCA9PiBkO1xuZXhwb3J0IGNvbnN0IExpc3RJdGVtID0gKHt2YWx1ZSwgZGlzcGxheU9wdGlvbiA9IGRlZmF1bHREaXNwbGF5LCBkaXNhYmxlZH06IExpc3RJdGVtUHJvcHM8YW55PikgPT4ge1xuICBjb25zdCBkaXNwbGF5VmFsdWUgPSBkaXNwbGF5T3B0aW9uKHZhbHVlKTtcbiAgcmV0dXJuIChcbiAgICA8c3BhbiB0aXRsZT17ZGlzcGxheVZhbHVlfSBjbGFzc05hbWU9e2NsYXNzTmFtZXMoY2xhc3NMaXN0Lmxpc3RJdGVtQW5jaG9yLCB7ZGlzYWJsZWR9KX0+XG4gICAgICB7ZGlzcGxheVZhbHVlfVxuICAgIDwvc3Bhbj5cbiAgKTtcbn07XG5cbmV4cG9ydCB0eXBlIERyb3Bkb3duTGlzdFdyYXBwZXJQcm9wcyA9IEJhc2VDb21wb25lbnRQcm9wcyAmIHtcbiAgbGlnaHQ/OiBib29sZWFuO1xufTtcblxuY29uc3QgRHJvcGRvd25MaXN0V3JhcHBlcjogSVN0eWxlZENvbXBvbmVudDxcbiAgJ3dlYicsXG4gIERyb3Bkb3duTGlzdFdyYXBwZXJQcm9wc1xuPiA9IHN0eWxlZC5kaXY8RHJvcGRvd25MaXN0V3JhcHBlclByb3BzPmBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PlxuICAgIHByb3BzLmxpZ2h0ID8gcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0QmdkTFQgOiBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RCZ2R9O1xuICBib3JkZXItdG9wOiAxcHggc29saWRcbiAgICAke3Byb3BzID0+XG4gICAgICBwcm9wcy5saWdodCA/IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdEJvcmRlclRvcExUIDogcHJvcHMudGhlbWUuZHJvcGRvd25MaXN0Qm9yZGVyVG9wfTtcbiAgJHtwcm9wcyA9PiAocHJvcHMubGlnaHQgPyBwcm9wcy50aGVtZS5kcm9wZG93bkxpc3RMVCA6IHByb3BzLnRoZW1lLmRyb3Bkb3duTGlzdCl9O1xuYDtcblxuY29uc3QgRHJvcGRvd25Gb290ZXJXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgaGVpZ2h0OiAnMHB4JztcbmA7XG5cbnR5cGUgT3B0aW9uID0gc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiB8IG9iamVjdCB8IGFueTtcbi8vIFRPRE86IG1ha2UgT3B0aW9uIGEgZ2VuZXJpYyB0eXBlXG5pbnRlcmZhY2UgRHJvcGRvd25MaXN0UHJvcHMge1xuICBvcHRpb25zPzogT3B0aW9uW107XG4gIGFsbG93Q3VzdG9tVmFsdWVzPzogbnVtYmVyO1xuICBjdXN0b21DbGFzc2VzPzoge2xpc3RIZWFkZXI/OiBzdHJpbmc7IGxpc3RJdGVtPzogc3RyaW5nOyByZXN1bHRzPzogc3RyaW5nfTtcbiAgY3VzdG9tVmFsdWVzPzogYW55W107XG4gIGN1c3RvbUxpc3RJdGVtQ29tcG9uZW50PzogRWxlbWVudFR5cGU7XG4gIGN1c3RvbUxpc3RIZWFkZXJDb21wb25lbnQ/OiBFbGVtZW50VHlwZTtcbiAgc2VsZWN0aW9uSW5kZXg/OiBudW1iZXI7XG4gIG9uT3B0aW9uU2VsZWN0ZWQ/OiAob3B0aW9uOiBPcHRpb24sIGV2ZW50OiBSZWFjdC5Nb3VzZUV2ZW50KSA9PiB2b2lkO1xuICBkaXNwbGF5T3B0aW9uPzogKG9wdGlvbjogT3B0aW9uKSA9PiBzdHJpbmc7XG4gIGRlZmF1bHRDbGFzc05hbWVzPzogYm9vbGVhbjtcbiAgYXJlUmVzdWx0c1RydW5jYXRlZD86IGJvb2xlYW47XG4gIHJlc3VsdHNUcnVuY2F0ZWRNZXNzYWdlPzogc3RyaW5nO1xuICBsaXN0SXRlbUNvbXBvbmVudD86IEVsZW1lbnRUeXBlO1xuICBsaWdodD86IGJvb2xlYW47XG4gIGZpeGVkT3B0aW9ucz86IGFueVtdO1xuICBzZWxlY3RlZEl0ZW1zPzogYW55W107IC8vIFBhc3NlZCB0aHJvdWdoIGJ5IFR5cGVhaGVhZFxufVxuXG5pbnRlcmZhY2UgRHJvcGRvd25MaXN0U3RhdGUge1xuICBvcHRpb25zOiBBcnJheTxhbnk+IHwgbnVsbDtcbn1cblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgRHJvcGRvd25MaXN0IGV4dGVuZHMgQ29tcG9uZW50PERyb3Bkb3duTGlzdFByb3BzLCBEcm9wZG93bkxpc3RTdGF0ZT4ge1xuICBzdGF0aWMgZGVmYXVsdFByb3BzID0ge1xuICAgIGN1c3RvbUNsYXNzZXM6IHt9LFxuICAgIGN1c3RvbUxpc3RJdGVtQ29tcG9uZW50OiBMaXN0SXRlbSxcbiAgICBjdXN0b21MaXN0SGVhZGVyQ29tcG9uZW50OiBudWxsLFxuICAgIGFsbG93Q3VzdG9tVmFsdWVzOiAwLFxuICAgIGN1c3RvbVZhbHVlczogW10sXG4gICAgZGlzcGxheU9wdGlvbjogZGVmYXVsdERpc3BsYXksXG4gICAgb25PcHRpb25TZWxlY3RlZDogKCkgPT4ge1xuICAgICAgcmV0dXJuO1xuICAgIH0sXG4gICAgZGVmYXVsdENsYXNzTmFtZXM6IHRydWUsXG4gICAgc2VsZWN0aW9uSW5kZXg6IG51bGxcbiAgfTtcblxuICBpbml0TnVtYmVyT2ZPcHRpb25zOiBudW1iZXI7XG4gIHBhZ2U6IG51bWJlcjtcbiAgcHJldlk6IG51bWJlcjtcbiAgbG9hZGluZ1JlZjogUmVhY3QuUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50PjtcbiAgb2JzZXJ2ZXI6IEludGVyc2VjdGlvbk9ic2VydmVyIHwgdW5kZWZpbmVkO1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuXG4gICAgdGhpcy5zdGF0ZSA9IHtvcHRpb25zOiBbXX07XG4gICAgdGhpcy5pbml0TnVtYmVyT2ZPcHRpb25zID0gSU5JVF9GSUxURVJfSVRFTVNfSU5fRFJPUERPV047XG4gICAgdGhpcy5wYWdlID0gMDtcbiAgICB0aGlzLnByZXZZID0gMDtcbiAgICB0aGlzLmxvYWRpbmdSZWYgPSBSZWFjdC5jcmVhdGVSZWYoKTtcbiAgfVxuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLl9nZXRPcHRpb25zKHRoaXMucGFnZSk7XG4gICAgdGhpcy5zZXRTdGF0ZSh7b3B0aW9uc30pO1xuXG4gICAgY29uc3QgZGl2T3B0aW9ucyA9IHtcbiAgICAgIHJvb3Q6IG51bGwsXG4gICAgICByb290TWFyZ2luOiAnMCUnLFxuICAgICAgdGhyZXNob2xkOiAxLjBcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMubG9hZGluZ1JlZi5jdXJyZW50KSB7XG4gICAgICB0aGlzLm9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKHRoaXMuaGFuZGxlT2JzZXJ2ZXIsIGRpdk9wdGlvbnMpO1xuICAgICAgdGhpcy5vYnNlcnZlci5vYnNlcnZlKHRoaXMubG9hZGluZ1JlZi5jdXJyZW50KTtcbiAgICB9XG4gIH1cblxuICBnZXRTbmFwc2hvdEJlZm9yZVVwZGF0ZShwcmV2UHJvcHM6IERyb3Bkb3duTGlzdFByb3BzKSB7XG4gICAgaWYgKHByZXZQcm9wcy5vcHRpb25zICE9PSB0aGlzLnByb3BzLm9wdGlvbnMpIHtcbiAgICAgIC8vIGNoZWNrIGlmIHVzZXIgc2VhcmNoaW5nLCByZXNldCBzdGF0ZS5vcHRpb25zIGF0IHRoZSBmaXJzdCB0aW1lXG4gICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5fZ2V0T3B0aW9ucygwKTtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe29wdGlvbnN9KTtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICAvLyBwcmV2ZW50IGNvbnNvbGUgd2FybmluZzogZ2V0U25hcHNob3RCZWZvcmVVcGRhdGUoKSBzaG91bGQgYmUgdXNlZCB3aXRoIGNvbXBvbmVudERpZFVwZGF0ZSgpLlxuICBjb21wb25lbnREaWRVcGRhdGUoKSB7XG4gICAgcmV0dXJuO1xuICB9XG5cbiAgY29tcG9uZW50V2lsbFVubW91bnQoKSB7XG4gICAgaWYgKHRoaXMubG9hZGluZ1JlZi5jdXJyZW50KSB7XG4gICAgICB0aGlzLm9ic2VydmVyPy51bm9ic2VydmUodGhpcy5sb2FkaW5nUmVmPy5jdXJyZW50KTtcbiAgICAgIHRoaXMucGFnZSA9IDA7XG4gICAgICB0aGlzLnByZXZZID0gMDtcbiAgICB9XG4gIH1cblxuICBoYW5kbGVPYnNlcnZlciA9IGVudGl0aWVzID0+IHtcbiAgICBjb25zdCB5ID0gZW50aXRpZXNbMF0uYm91bmRpbmdDbGllbnRSZWN0Lnk7XG4gICAgaWYgKHRoaXMucHJldlkgPiB5KSB7XG4gICAgICBjb25zdCBvcHRpb25zID0gdGhpcy5fZ2V0T3B0aW9ucyh0aGlzLnBhZ2UpO1xuICAgICAgaWYgKG9wdGlvbnMpIHRoaXMuc2V0U3RhdGUoe29wdGlvbnN9KTtcbiAgICB9XG4gICAgdGhpcy5wcmV2WSA9IHk7XG4gIH07XG5cbiAgX2dldE9wdGlvbnMocGFnZSkge1xuICAgIGlmICghdGhpcy5wcm9wcy5vcHRpb25zKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgbiA9IHRoaXMucHJvcHMub3B0aW9ucy5sZW5ndGg7XG4gICAgaWYgKG4gPT09IDApIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG4gICAgY29uc3Qgc3RhcnQgPSBwYWdlICogdGhpcy5pbml0TnVtYmVyT2ZPcHRpb25zO1xuICAgIGNvbnN0IGVuZCA9IHN0YXJ0ICsgdGhpcy5pbml0TnVtYmVyT2ZPcHRpb25zID4gbiA/IG4gOiBzdGFydCArIHRoaXMuaW5pdE51bWJlck9mT3B0aW9ucztcblxuICAgIGlmIChzdGFydCA8IGVuZCAmJiBlbmQgPD0gbikge1xuICAgICAgdGhpcy5wYWdlID0gcGFnZSArIDE7XG4gICAgICAvLyBpbiBjYXNlIG9mIHVzZXIgc2VhcmNoaW5nLCBwcm9wcy5vcHRpb25zIHdpbGwgYmUgdXBkYXRlZFxuICAgICAgLy8gc28gXCJwYWdlXCIgdmFsdWUgd2lsbCBiZSBzZXQgdG8gMCBhbmQgcHJldmlvdXMgc3RhdGUub3B0aW9ucyB3aWxsIGJlIGRpc2NhcmRlZFxuICAgICAgcmV0dXJuIFtcbiAgICAgICAgLi4uKHBhZ2UgPiAwID8gdGhpcy5zdGF0ZS5vcHRpb25zIHx8IFtdIDogW10pLFxuICAgICAgICAuLi50aGlzLnByb3BzLm9wdGlvbnMuc2xpY2Uoc3RhcnQsIGVuZClcbiAgICAgIF07XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBfb25DbGljayhyZXN1bHQsIGV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAvLyBvbmx5IHdvcmsgd2hlbiBsZWZ0IGlzIGNsaWNrZWRcbiAgICBpZiAoKGV2ZW50LnR5cGUgPT09ICdtb3VzZWRvd24nICYmIGV2ZW50LmJ1dHRvbiA9PT0gTEVGVF9CVVRUT04pIHx8IGV2ZW50LnR5cGUgPT09ICdjbGljaycpIHtcbiAgICAgIHRoaXMucHJvcHMub25PcHRpb25TZWxlY3RlZD8uKHJlc3VsdCwgZXZlbnQpO1xuICAgIH1cbiAgfVxuXG4gIHJlbmRlcigpIHtcbiAgICBjb25zdCB7XG4gICAgICBmaXhlZE9wdGlvbnMsXG4gICAgICBsaWdodCxcbiAgICAgIGFsbG93Q3VzdG9tVmFsdWVzID0gMCxcbiAgICAgIGN1c3RvbUxpc3RJdGVtQ29tcG9uZW50OiBDdXN0b21MaXN0SXRlbUNvbXBvbmVudCA9IExpc3RJdGVtXG4gICAgfSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qge2Rpc3BsYXlPcHRpb246IGRpc3BsYXkgPSBkZWZhdWx0RGlzcGxheX0gPSB0aGlzLnByb3BzO1xuXG4gICAgLy8gRG9uJ3QgcmVuZGVyIGlmIHRoZXJlIGFyZSBubyBvcHRpb25zIHRvIGRpc3BsYXlcbiAgICBpZiAoIXRoaXMucHJvcHMub3B0aW9ucz8ubGVuZ3RoICYmIGFsbG93Q3VzdG9tVmFsdWVzIDw9IDApIHtcbiAgICAgIHJldHVybiA8ZGl2IC8+O1xuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlT2Zmc2V0ID0gQXJyYXkuaXNBcnJheShmaXhlZE9wdGlvbnMpID8gZml4ZWRPcHRpb25zLmxlbmd0aCA6IDA7XG5cbiAgICAvLyBGb3Igc29tZSByZWFzb24gb25DbGljayBpcyBub3QgZmlyZWQgd2hlbiBjbGlja2VkIG9uIGFuIG9wdGlvblxuICAgIC8vIG9uTW91c2VEb3duIGlzIHVzZWQgaGVyZSBhcyBhIHdvcmthcm91bmQgb2YgIzIwNSBhbmQgb3RoZXJcbiAgICByZXR1cm4gKFxuICAgICAgPERyb3Bkb3duTGlzdFdyYXBwZXJcbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKGNsYXNzTGlzdC5saXN0LCB0aGlzLnByb3BzLmN1c3RvbUNsYXNzZXM/LnJlc3VsdHMpfVxuICAgICAgICBsaWdodD17bGlnaHR9XG4gICAgICA+XG4gICAgICAgIHt0aGlzLnByb3BzLmN1c3RvbUxpc3RIZWFkZXJDb21wb25lbnQgPyAoXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2NsYXNzTmFtZXMoY2xhc3NMaXN0Lmxpc3RIZWFkZXIsIHRoaXMucHJvcHMuY3VzdG9tQ2xhc3Nlcz8ubGlzdEhlYWRlcil9PlxuICAgICAgICAgICAgPHRoaXMucHJvcHMuY3VzdG9tTGlzdEhlYWRlckNvbXBvbmVudCAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApIDogbnVsbH1cblxuICAgICAgICB7dmFsdWVPZmZzZXQgPiAwID8gKFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbGFzc0xpc3QubGlzdFNlY3Rpb259PlxuICAgICAgICAgICAge2ZpeGVkT3B0aW9ucz8ubWFwKCh2YWx1ZSwgaSkgPT4gKFxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWVzKFxuICAgICAgICAgICAgICAgICAgY2xhc3NMaXN0Lmxpc3RJdGVtLFxuICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBob3ZlcjogdGhpcy5wcm9wcy5zZWxlY3Rpb25JbmRleCA9PT0gaSxcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzTGlzdC5saXN0SXRlbUZpeGVkXTogdHJ1ZVxuICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIHRoaXMucHJvcHMuY3VzdG9tQ2xhc3Nlcz8ubGlzdEl0ZW1cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIGtleT17YCR7ZGlzcGxheSh2YWx1ZSl9XyR7aX1gfVxuICAgICAgICAgICAgICAgIG9uTW91c2VEb3duPXtlID0+IHRoaXMuX29uQ2xpY2sodmFsdWUsIGUpfVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2UgPT4gdGhpcy5fb25DbGljayh2YWx1ZSwgZSl9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8Q3VzdG9tTGlzdEl0ZW1Db21wb25lbnQgdmFsdWU9e3ZhbHVlfSBkaXNwbGF5T3B0aW9uPXtkaXNwbGF5fSBsaWdodD17bGlnaHR9IC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICkgOiBudWxsfVxuXG4gICAgICAgIHt0aGlzLnN0YXRlLm9wdGlvbnM/Lm1hcCgodmFsdWUsIGkpID0+IChcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoXG4gICAgICAgICAgICAgIGNsYXNzTGlzdC5saXN0SXRlbSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGhvdmVyOiB0aGlzLnByb3BzLnNlbGVjdGlvbkluZGV4ID09PSBpICsgdmFsdWVPZmZzZXQsXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWQ6ICh0aGlzLnByb3BzLnNlbGVjdGVkSXRlbXMgfHwgW10pLmZpbmQoXG4gICAgICAgICAgICAgICAgICBpdGVtID0+IGRpc3BsYXkoaXRlbSkgPT09IGRpc3BsYXkodmFsdWUpXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB0aGlzLnByb3BzLmN1c3RvbUNsYXNzZXM/Lmxpc3RJdGVtXG4gICAgICAgICAgICApfVxuICAgICAgICAgICAga2V5PXtgJHtkaXNwbGF5KHZhbHVlKX1fJHtpfWB9XG4gICAgICAgICAgICBvbk1vdXNlRG93bj17ZSA9PiB0aGlzLl9vbkNsaWNrKHZhbHVlLCBlKX1cbiAgICAgICAgICAgIG9uQ2xpY2s9e2UgPT4gdGhpcy5fb25DbGljayh2YWx1ZSwgZSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEN1c3RvbUxpc3RJdGVtQ29tcG9uZW50IHZhbHVlPXt2YWx1ZX0gZGlzcGxheU9wdGlvbj17ZGlzcGxheX0gLz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKSl9XG5cbiAgICAgICAgPERyb3Bkb3duRm9vdGVyV3JhcHBlciByZWY9e3RoaXMubG9hZGluZ1JlZn0gLz5cbiAgICAgIDwvRHJvcGRvd25MaXN0V3JhcHBlcj5cbiAgICApO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxXQUFBLEdBQUFDLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBRyxpQkFBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksVUFBQSxHQUFBSixPQUFBO0FBQW1FLElBQUFLLGVBQUEsRUFBQUMsZ0JBQUEsRUFObkU7QUFDQTtBQUFBLFNBQUFDLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBVCx3QkFBQVMsQ0FBQSxFQUFBRSxDQUFBLFNBQUFBLENBQUEsSUFBQUYsQ0FBQSxJQUFBQSxDQUFBLENBQUFJLFVBQUEsU0FBQUosQ0FBQSxlQUFBQSxDQUFBLGdCQUFBSyxPQUFBLENBQUFMLENBQUEsMEJBQUFBLENBQUEsc0JBQUFBLENBQUEsUUFBQUcsQ0FBQSxHQUFBSix3QkFBQSxDQUFBRyxDQUFBLE9BQUFDLENBQUEsSUFBQUEsQ0FBQSxDQUFBRyxHQUFBLENBQUFOLENBQUEsVUFBQUcsQ0FBQSxDQUFBSSxHQUFBLENBQUFQLENBQUEsT0FBQVEsQ0FBQSxLQUFBQyxTQUFBLFVBQUFDLENBQUEsR0FBQUMsTUFBQSxDQUFBQyxjQUFBLElBQUFELE1BQUEsQ0FBQUUsd0JBQUEsV0FBQUMsQ0FBQSxJQUFBZCxDQUFBLG9CQUFBYyxDQUFBLE9BQUFDLGNBQUEsQ0FBQUMsSUFBQSxDQUFBaEIsQ0FBQSxFQUFBYyxDQUFBLFNBQUFHLENBQUEsR0FBQVAsQ0FBQSxHQUFBQyxNQUFBLENBQUFFLHdCQUFBLENBQUFiLENBQUEsRUFBQWMsQ0FBQSxVQUFBRyxDQUFBLEtBQUFBLENBQUEsQ0FBQVYsR0FBQSxJQUFBVSxDQUFBLENBQUFDLEdBQUEsSUFBQVAsTUFBQSxDQUFBQyxjQUFBLENBQUFKLENBQUEsRUFBQU0sQ0FBQSxFQUFBRyxDQUFBLElBQUFULENBQUEsQ0FBQU0sQ0FBQSxJQUFBZCxDQUFBLENBQUFjLENBQUEsWUFBQU4sQ0FBQSxjQUFBUixDQUFBLEVBQUFHLENBQUEsSUFBQUEsQ0FBQSxDQUFBZSxHQUFBLENBQUFsQixDQUFBLEVBQUFRLENBQUEsR0FBQUEsQ0FBQTtBQUFBLFNBQUFXLFdBQUFoQixDQUFBLEVBQUFpQixDQUFBLEVBQUFwQixDQUFBLFdBQUFvQixDQUFBLE9BQUFDLGdCQUFBLGFBQUFELENBQUEsT0FBQUUsMkJBQUEsYUFBQW5CLENBQUEsRUFBQW9CLHlCQUFBLEtBQUFDLE9BQUEsQ0FBQUMsU0FBQSxDQUFBTCxDQUFBLEVBQUFwQixDQUFBLFlBQUFxQixnQkFBQSxhQUFBbEIsQ0FBQSxFQUFBdUIsV0FBQSxJQUFBTixDQUFBLENBQUFPLEtBQUEsQ0FBQXhCLENBQUEsRUFBQUgsQ0FBQTtBQUFBLFNBQUF1QiwwQkFBQSxjQUFBcEIsQ0FBQSxJQUFBeUIsT0FBQSxDQUFBQyxTQUFBLENBQUFDLE9BQUEsQ0FBQWQsSUFBQSxDQUFBUSxPQUFBLENBQUFDLFNBQUEsQ0FBQUcsT0FBQSxpQ0FBQXpCLENBQUEsYUFBQW9CLHlCQUFBLFlBQUFBLDBCQUFBLGFBQUFwQixDQUFBO0FBUUEsSUFBTTRCLFdBQVcsR0FBRyxDQUFDO0FBRWQsSUFBTUMsU0FBUyxHQUFBQyxPQUFBLENBQUFELFNBQUEsR0FBRztFQUN2QkUsSUFBSSxFQUFFLGVBQWU7RUFDckJDLFVBQVUsRUFBRSxjQUFjO0VBQzFCQyxXQUFXLEVBQUUsZUFBZTtFQUM1QkMsUUFBUSxFQUFFLFlBQVk7RUFDdEJDLGNBQWMsRUFBRSxvQkFBb0I7RUFDcENDLGFBQWEsRUFBRTtBQUNqQixDQUFDO0FBU0QsSUFBTUMsY0FBYyxHQUFHLFNBQWpCQSxjQUFjQSxDQUFHQyxDQUFDO0VBQUEsT0FBSUEsQ0FBQztBQUFBO0FBQ3RCLElBQU1DLFFBQVEsR0FBQVQsT0FBQSxDQUFBUyxRQUFBLEdBQUcsU0FBWEEsUUFBUUEsQ0FBQUMsSUFBQSxFQUE4RTtFQUFBLElBQXpFQyxLQUFLLEdBQUFELElBQUEsQ0FBTEMsS0FBSztJQUFBQyxrQkFBQSxHQUFBRixJQUFBLENBQUVHLGFBQWE7SUFBYkEsYUFBYSxHQUFBRCxrQkFBQSxjQUFHTCxjQUFjLEdBQUFLLGtCQUFBO0lBQUVFLFFBQVEsR0FBQUosSUFBQSxDQUFSSSxRQUFRO0VBQ3ZFLElBQU1DLFlBQVksR0FBR0YsYUFBYSxDQUFDRixLQUFLLENBQUM7RUFDekMsb0JBQ0V0RCxNQUFBLFlBQUEyRCxhQUFBO0lBQU1DLEtBQUssRUFBRUYsWUFBYTtJQUFDRyxTQUFTLEVBQUUsSUFBQUMsc0JBQVUsRUFBQ3BCLFNBQVMsQ0FBQ00sY0FBYyxFQUFFO01BQUNTLFFBQVEsRUFBUkE7SUFBUSxDQUFDO0VBQUUsR0FDcEZDLFlBQ0csQ0FBQztBQUVYLENBQUM7QUFNRCxJQUFNSyxtQkFHTCxHQUFHQyw0QkFBTSxDQUFDQyxHQUFHLENBQUExRCxlQUFBLEtBQUFBLGVBQUEsT0FBQTJELHVCQUFBLCtGQUNRLFVBQUFDLEtBQUs7RUFBQSxPQUN2QkEsS0FBSyxDQUFDQyxLQUFLLEdBQUdELEtBQUssQ0FBQ0UsS0FBSyxDQUFDQyxpQkFBaUIsR0FBR0gsS0FBSyxDQUFDRSxLQUFLLENBQUNFLGVBQWU7QUFBQSxHQUV2RSxVQUFBSixLQUFLO0VBQUEsT0FDTEEsS0FBSyxDQUFDQyxLQUFLLEdBQUdELEtBQUssQ0FBQ0UsS0FBSyxDQUFDRyx1QkFBdUIsR0FBR0wsS0FBSyxDQUFDRSxLQUFLLENBQUNJLHFCQUFxQjtBQUFBLEdBQ3ZGLFVBQUFOLEtBQUs7RUFBQSxPQUFLQSxLQUFLLENBQUNDLEtBQUssR0FBR0QsS0FBSyxDQUFDRSxLQUFLLENBQUNLLGNBQWMsR0FBR1AsS0FBSyxDQUFDRSxLQUFLLENBQUNNLFlBQVk7QUFBQSxDQUFDLENBQ2pGO0FBRUQsSUFBTUMscUJBQXFCLEdBQUdaLDRCQUFNLENBQUNDLEdBQUcsQ0FBQXpELGdCQUFBLEtBQUFBLGdCQUFBLE9BQUEwRCx1QkFBQSx3Q0FFdkM7O0FBR0Q7QUFBQSxJQXdCcUJXLFlBQVksR0FBQWxDLE9BQUEscUNBQUFtQyxVQUFBO0VBcUIvQixTQUFBRCxhQUFZVixLQUFLLEVBQUU7SUFBQSxJQUFBWSxLQUFBO0lBQUEsSUFBQUMsZ0JBQUEsbUJBQUFILFlBQUE7SUFDakJFLEtBQUEsR0FBQWxELFVBQUEsT0FBQWdELFlBQUEsR0FBTVYsS0FBSztJQUFFLElBQUFjLGdCQUFBLGFBQUFGLEtBQUE7SUFBQSxJQUFBRSxnQkFBQSxhQUFBRixLQUFBO0lBQUEsSUFBQUUsZ0JBQUEsYUFBQUYsS0FBQTtJQUFBLElBQUFFLGdCQUFBLGFBQUFGLEtBQUE7SUFBQSxJQUFBRSxnQkFBQSxhQUFBRixLQUFBO0lBQUEsSUFBQUUsZ0JBQUEsYUFBQUYsS0FBQSxvQkErQ0UsVUFBQUcsUUFBUSxFQUFJO01BQzNCLElBQU1DLENBQUMsR0FBR0QsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDRSxrQkFBa0IsQ0FBQ0QsQ0FBQztNQUMxQyxJQUFJSixLQUFBLENBQUtNLEtBQUssR0FBR0YsQ0FBQyxFQUFFO1FBQ2xCLElBQU1HLE9BQU8sR0FBR1AsS0FBQSxDQUFLUSxXQUFXLENBQUNSLEtBQUEsQ0FBS1MsSUFBSSxDQUFDO1FBQzNDLElBQUlGLE9BQU8sRUFBRVAsS0FBQSxDQUFLVSxRQUFRLENBQUM7VUFBQ0gsT0FBTyxFQUFQQTtRQUFPLENBQUMsQ0FBQztNQUN2QztNQUNBUCxLQUFBLENBQUtNLEtBQUssR0FBR0YsQ0FBQztJQUNoQixDQUFDO0lBcERDSixLQUFBLENBQUtXLEtBQUssR0FBRztNQUFDSixPQUFPLEVBQUU7SUFBRSxDQUFDO0lBQzFCUCxLQUFBLENBQUtZLG1CQUFtQixHQUFHQyx3Q0FBNkI7SUFDeERiLEtBQUEsQ0FBS1MsSUFBSSxHQUFHLENBQUM7SUFDYlQsS0FBQSxDQUFLTSxLQUFLLEdBQUcsQ0FBQztJQUNkTixLQUFBLENBQUtjLFVBQVUsZ0JBQUdDLGlCQUFLLENBQUNDLFNBQVMsQ0FBQyxDQUFDO0lBQUMsT0FBQWhCLEtBQUE7RUFDdEM7RUFBQyxJQUFBaUIsVUFBQSxhQUFBbkIsWUFBQSxFQUFBQyxVQUFBO0VBQUEsV0FBQW1CLGFBQUEsYUFBQXBCLFlBQUE7SUFBQXFCLEdBQUE7SUFBQTVDLEtBQUEsRUFFRCxTQUFBNkMsaUJBQWlCQSxDQUFBLEVBQUc7TUFDbEIsSUFBTWIsT0FBTyxHQUFHLElBQUksQ0FBQ0MsV0FBVyxDQUFDLElBQUksQ0FBQ0MsSUFBSSxDQUFDO01BQzNDLElBQUksQ0FBQ0MsUUFBUSxDQUFDO1FBQUNILE9BQU8sRUFBUEE7TUFBTyxDQUFDLENBQUM7TUFFeEIsSUFBTWMsVUFBVSxHQUFHO1FBQ2pCQyxJQUFJLEVBQUUsSUFBSTtRQUNWQyxVQUFVLEVBQUUsSUFBSTtRQUNoQkMsU0FBUyxFQUFFO01BQ2IsQ0FBQztNQUVELElBQUksSUFBSSxDQUFDVixVQUFVLENBQUNXLE9BQU8sRUFBRTtRQUMzQixJQUFJLENBQUNDLFFBQVEsR0FBRyxJQUFJQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUNDLGNBQWMsRUFBRVAsVUFBVSxDQUFDO1FBQ3pFLElBQUksQ0FBQ0ssUUFBUSxDQUFDRyxPQUFPLENBQUMsSUFBSSxDQUFDZixVQUFVLENBQUNXLE9BQU8sQ0FBQztNQUNoRDtJQUNGO0VBQUM7SUFBQU4sR0FBQTtJQUFBNUMsS0FBQSxFQUVELFNBQUF1RCx1QkFBdUJBLENBQUNDLFNBQTRCLEVBQUU7TUFDcEQsSUFBSUEsU0FBUyxDQUFDeEIsT0FBTyxLQUFLLElBQUksQ0FBQ25CLEtBQUssQ0FBQ21CLE9BQU8sRUFBRTtRQUM1QztRQUNBLElBQU1BLE9BQU8sR0FBRyxJQUFJLENBQUNDLFdBQVcsQ0FBQyxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDRSxRQUFRLENBQUM7VUFBQ0gsT0FBTyxFQUFQQTtRQUFPLENBQUMsQ0FBQztNQUMxQjtNQUNBLE9BQU8sSUFBSTtJQUNiOztJQUVBO0VBQUE7SUFBQVksR0FBQTtJQUFBNUMsS0FBQSxFQUNBLFNBQUF5RCxrQkFBa0JBLENBQUEsRUFBRztNQUNuQjtJQUNGO0VBQUM7SUFBQWIsR0FBQTtJQUFBNUMsS0FBQSxFQUVELFNBQUEwRCxvQkFBb0JBLENBQUEsRUFBRztNQUNyQixJQUFJLElBQUksQ0FBQ25CLFVBQVUsQ0FBQ1csT0FBTyxFQUFFO1FBQUEsSUFBQVMsY0FBQSxFQUFBQyxnQkFBQTtRQUMzQixDQUFBRCxjQUFBLE9BQUksQ0FBQ1IsUUFBUSxjQUFBUSxjQUFBLGVBQWJBLGNBQUEsQ0FBZUUsU0FBUyxFQUFBRCxnQkFBQSxHQUFDLElBQUksQ0FBQ3JCLFVBQVUsY0FBQXFCLGdCQUFBLHVCQUFmQSxnQkFBQSxDQUFpQlYsT0FBTyxDQUFDO1FBQ2xELElBQUksQ0FBQ2hCLElBQUksR0FBRyxDQUFDO1FBQ2IsSUFBSSxDQUFDSCxLQUFLLEdBQUcsQ0FBQztNQUNoQjtJQUNGO0VBQUM7SUFBQWEsR0FBQTtJQUFBNUMsS0FBQSxFQVdELFNBQUFpQyxXQUFXQSxDQUFDQyxJQUFJLEVBQUU7TUFDaEIsSUFBSSxDQUFDLElBQUksQ0FBQ3JCLEtBQUssQ0FBQ21CLE9BQU8sRUFBRTtRQUN2QixPQUFPLEVBQUU7TUFDWDtNQUVBLElBQU1wRSxDQUFDLEdBQUcsSUFBSSxDQUFDaUQsS0FBSyxDQUFDbUIsT0FBTyxDQUFDOEIsTUFBTTtNQUNuQyxJQUFJbEcsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUNYLE9BQU8sRUFBRTtNQUNYO01BQ0EsSUFBTW1HLEtBQUssR0FBRzdCLElBQUksR0FBRyxJQUFJLENBQUNHLG1CQUFtQjtNQUM3QyxJQUFNMkIsR0FBRyxHQUFHRCxLQUFLLEdBQUcsSUFBSSxDQUFDMUIsbUJBQW1CLEdBQUd6RSxDQUFDLEdBQUdBLENBQUMsR0FBR21HLEtBQUssR0FBRyxJQUFJLENBQUMxQixtQkFBbUI7TUFFdkYsSUFBSTBCLEtBQUssR0FBR0MsR0FBRyxJQUFJQSxHQUFHLElBQUlwRyxDQUFDLEVBQUU7UUFDM0IsSUFBSSxDQUFDc0UsSUFBSSxHQUFHQSxJQUFJLEdBQUcsQ0FBQztRQUNwQjtRQUNBO1FBQ0EsVUFBQStCLE1BQUEsS0FBQUMsbUJBQUEsYUFDTWhDLElBQUksR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDRSxLQUFLLENBQUNKLE9BQU8sSUFBSSxFQUFFLEdBQUcsRUFBRSxPQUFBa0MsbUJBQUEsYUFDekMsSUFBSSxDQUFDckQsS0FBSyxDQUFDbUIsT0FBTyxDQUFDbUMsS0FBSyxDQUFDSixLQUFLLEVBQUVDLEdBQUcsQ0FBQztNQUUzQztNQUVBLE9BQU8sSUFBSTtJQUNiO0VBQUM7SUFBQXBCLEdBQUE7SUFBQTVDLEtBQUEsRUFFRCxTQUFBb0UsUUFBUUEsQ0FBQ0MsTUFBTSxFQUFFQyxLQUFLLEVBQUU7TUFDdEJBLEtBQUssQ0FBQ0MsY0FBYyxDQUFDLENBQUM7TUFDdEI7TUFDQSxJQUFLRCxLQUFLLENBQUNFLElBQUksS0FBSyxXQUFXLElBQUlGLEtBQUssQ0FBQ0csTUFBTSxLQUFLdEYsV0FBVyxJQUFLbUYsS0FBSyxDQUFDRSxJQUFJLEtBQUssT0FBTyxFQUFFO1FBQUEsSUFBQUUscUJBQUEsRUFBQUMsV0FBQTtRQUMxRixDQUFBRCxxQkFBQSxJQUFBQyxXQUFBLE9BQUksQ0FBQzlELEtBQUssRUFBQytELGdCQUFnQixjQUFBRixxQkFBQSxlQUEzQkEscUJBQUEsQ0FBQXRHLElBQUEsQ0FBQXVHLFdBQUEsRUFBOEJOLE1BQU0sRUFBRUMsS0FBSyxDQUFDO01BQzlDO0lBQ0Y7RUFBQztJQUFBMUIsR0FBQTtJQUFBNUMsS0FBQSxFQUVELFNBQUE2RSxNQUFNQSxDQUFBLEVBQUc7TUFBQSxJQUFBQyxtQkFBQTtRQUFBQyxxQkFBQTtRQUFBQyxzQkFBQTtRQUFBQyxNQUFBO1FBQUFDLG1CQUFBO01BQ1AsSUFBQUMsWUFBQSxHQUtJLElBQUksQ0FBQ3RFLEtBQUs7UUFKWnVFLFlBQVksR0FBQUQsWUFBQSxDQUFaQyxZQUFZO1FBQ1p0RSxLQUFLLEdBQUFxRSxZQUFBLENBQUxyRSxLQUFLO1FBQUF1RSxxQkFBQSxHQUFBRixZQUFBLENBQ0xHLGlCQUFpQjtRQUFqQkEsaUJBQWlCLEdBQUFELHFCQUFBLGNBQUcsQ0FBQyxHQUFBQSxxQkFBQTtRQUFBRSxxQkFBQSxHQUFBSixZQUFBLENBQ3JCSyx1QkFBdUI7UUFBRUMsdUJBQXVCLEdBQUFGLHFCQUFBLGNBQUd6RixRQUFRLEdBQUF5RixxQkFBQTtNQUU3RCxJQUFBRyxxQkFBQSxHQUFrRCxJQUFJLENBQUM3RSxLQUFLLENBQXJEWCxhQUFhO1FBQUV5RixPQUFPLEdBQUFELHFCQUFBLGNBQUc5RixjQUFjLEdBQUE4RixxQkFBQTs7TUFFOUM7TUFDQSxJQUFJLEdBQUFaLG1CQUFBLEdBQUMsSUFBSSxDQUFDakUsS0FBSyxDQUFDbUIsT0FBTyxjQUFBOEMsbUJBQUEsZUFBbEJBLG1CQUFBLENBQW9CaEIsTUFBTSxLQUFJd0IsaUJBQWlCLElBQUksQ0FBQyxFQUFFO1FBQ3pELG9CQUFPNUksTUFBQSxZQUFBMkQsYUFBQSxZQUFNLENBQUM7TUFDaEI7TUFFQSxJQUFNdUYsV0FBVyxHQUFHQyxLQUFLLENBQUNDLE9BQU8sQ0FBQ1YsWUFBWSxDQUFDLEdBQUdBLFlBQVksQ0FBQ3RCLE1BQU0sR0FBRyxDQUFDOztNQUV6RTtNQUNBO01BQ0Esb0JBQ0VwSCxNQUFBLFlBQUEyRCxhQUFBLENBQUNJLG1CQUFtQjtRQUNsQkYsU0FBUyxFQUFFLElBQUFDLHNCQUFVLEVBQUNwQixTQUFTLENBQUNFLElBQUksR0FBQXlGLHFCQUFBLEdBQUUsSUFBSSxDQUFDbEUsS0FBSyxDQUFDa0YsYUFBYSxjQUFBaEIscUJBQUEsdUJBQXhCQSxxQkFBQSxDQUEwQmlCLE9BQU8sQ0FBRTtRQUN6RWxGLEtBQUssRUFBRUE7TUFBTSxHQUVaLElBQUksQ0FBQ0QsS0FBSyxDQUFDb0YseUJBQXlCLGdCQUNuQ3ZKLE1BQUEsWUFBQTJELGFBQUE7UUFBS0UsU0FBUyxFQUFFLElBQUFDLHNCQUFVLEVBQUNwQixTQUFTLENBQUNHLFVBQVUsR0FBQXlGLHNCQUFBLEdBQUUsSUFBSSxDQUFDbkUsS0FBSyxDQUFDa0YsYUFBYSxjQUFBZixzQkFBQSx1QkFBeEJBLHNCQUFBLENBQTBCekYsVUFBVTtNQUFFLGdCQUNyRjdDLE1BQUEsWUFBQTJELGFBQUEsTUFBTVEsS0FBSyxDQUFDb0YseUJBQXlCLE1BQUUsQ0FDcEMsQ0FBQyxHQUNKLElBQUksRUFFUEwsV0FBVyxHQUFHLENBQUMsZ0JBQ2RsSixNQUFBLFlBQUEyRCxhQUFBO1FBQUtFLFNBQVMsRUFBRW5CLFNBQVMsQ0FBQ0k7TUFBWSxHQUNuQzRGLFlBQVksYUFBWkEsWUFBWSx1QkFBWkEsWUFBWSxDQUFFYyxHQUFHLENBQUMsVUFBQ2xHLEtBQUssRUFBRTNCLENBQUM7UUFBQSxJQUFBOEgscUJBQUE7UUFBQSxvQkFDMUJ6SixNQUFBLFlBQUEyRCxhQUFBO1VBQ0VFLFNBQVMsRUFBRSxJQUFBQyxzQkFBVSxFQUNuQnBCLFNBQVMsQ0FBQ0ssUUFBUSxNQUFBa0MsZ0JBQUE7WUFFaEJ5RSxLQUFLLEVBQUVuQixNQUFJLENBQUNwRSxLQUFLLENBQUN3RixjQUFjLEtBQUtoSTtVQUFDLEdBQ3JDZSxTQUFTLENBQUNPLGFBQWEsRUFBRyxJQUFJLElBQUF3RyxxQkFBQSxHQUVqQ2xCLE1BQUksQ0FBQ3BFLEtBQUssQ0FBQ2tGLGFBQWEsY0FBQUkscUJBQUEsdUJBQXhCQSxxQkFBQSxDQUEwQjFHLFFBQzVCLENBQUU7VUFDRm1ELEdBQUcsS0FBQXFCLE1BQUEsQ0FBSzBCLE9BQU8sQ0FBQzNGLEtBQUssQ0FBQyxPQUFBaUUsTUFBQSxDQUFJNUYsQ0FBQyxDQUFHO1VBQzlCaUksV0FBVyxFQUFFLFNBQWJBLFdBQVdBLENBQUVsSixDQUFDO1lBQUEsT0FBSTZILE1BQUksQ0FBQ2IsUUFBUSxDQUFDcEUsS0FBSyxFQUFFNUMsQ0FBQyxDQUFDO1VBQUEsQ0FBQztVQUMxQ21KLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFFbkosQ0FBQztZQUFBLE9BQUk2SCxNQUFJLENBQUNiLFFBQVEsQ0FBQ3BFLEtBQUssRUFBRTVDLENBQUMsQ0FBQztVQUFBO1FBQUMsZ0JBRXRDVixNQUFBLFlBQUEyRCxhQUFBLENBQUNvRix1QkFBdUI7VUFBQ3pGLEtBQUssRUFBRUEsS0FBTTtVQUFDRSxhQUFhLEVBQUV5RixPQUFRO1VBQUM3RSxLQUFLLEVBQUVBO1FBQU0sQ0FBRSxDQUMzRSxDQUFDO01BQUEsQ0FDUCxDQUNFLENBQUMsR0FDSixJQUFJLEdBQUFvRSxtQkFBQSxHQUVQLElBQUksQ0FBQzlDLEtBQUssQ0FBQ0osT0FBTyxjQUFBa0QsbUJBQUEsdUJBQWxCQSxtQkFBQSxDQUFvQmdCLEdBQUcsQ0FBQyxVQUFDbEcsS0FBSyxFQUFFM0IsQ0FBQztRQUFBLElBQUFtSSxzQkFBQTtRQUFBLG9CQUNoQzlKLE1BQUEsWUFBQTJELGFBQUE7VUFDRUUsU0FBUyxFQUFFLElBQUFDLHNCQUFVLEVBQ25CcEIsU0FBUyxDQUFDSyxRQUFRLEVBQ2xCO1lBQ0UyRyxLQUFLLEVBQUVuQixNQUFJLENBQUNwRSxLQUFLLENBQUN3RixjQUFjLEtBQUtoSSxDQUFDLEdBQUd1SCxXQUFXO1lBQ3BEYSxRQUFRLEVBQUUsQ0FBQ3hCLE1BQUksQ0FBQ3BFLEtBQUssQ0FBQzZGLGFBQWEsSUFBSSxFQUFFLEVBQUVDLElBQUksQ0FDN0MsVUFBQUMsSUFBSTtjQUFBLE9BQUlqQixPQUFPLENBQUNpQixJQUFJLENBQUMsS0FBS2pCLE9BQU8sQ0FBQzNGLEtBQUssQ0FBQztZQUFBLENBQzFDO1VBQ0YsQ0FBQyxHQUFBd0csc0JBQUEsR0FDRHZCLE1BQUksQ0FBQ3BFLEtBQUssQ0FBQ2tGLGFBQWEsY0FBQVMsc0JBQUEsdUJBQXhCQSxzQkFBQSxDQUEwQi9HLFFBQzVCLENBQUU7VUFDRm1ELEdBQUcsS0FBQXFCLE1BQUEsQ0FBSzBCLE9BQU8sQ0FBQzNGLEtBQUssQ0FBQyxPQUFBaUUsTUFBQSxDQUFJNUYsQ0FBQyxDQUFHO1VBQzlCaUksV0FBVyxFQUFFLFNBQWJBLFdBQVdBLENBQUVsSixDQUFDO1lBQUEsT0FBSTZILE1BQUksQ0FBQ2IsUUFBUSxDQUFDcEUsS0FBSyxFQUFFNUMsQ0FBQyxDQUFDO1VBQUEsQ0FBQztVQUMxQ21KLE9BQU8sRUFBRSxTQUFUQSxPQUFPQSxDQUFFbkosQ0FBQztZQUFBLE9BQUk2SCxNQUFJLENBQUNiLFFBQVEsQ0FBQ3BFLEtBQUssRUFBRTVDLENBQUMsQ0FBQztVQUFBO1FBQUMsZ0JBRXRDVixNQUFBLFlBQUEyRCxhQUFBLENBQUNvRix1QkFBdUI7VUFBQ3pGLEtBQUssRUFBRUEsS0FBTTtVQUFDRSxhQUFhLEVBQUV5RjtRQUFRLENBQUUsQ0FDN0QsQ0FBQztNQUFBLENBQ1AsQ0FBQyxlQUVGakosTUFBQSxZQUFBMkQsYUFBQSxDQUFDaUIscUJBQXFCO1FBQUN1RixHQUFHLEVBQUUsSUFBSSxDQUFDdEU7TUFBVyxDQUFFLENBQzNCLENBQUM7SUFFMUI7RUFBQztBQUFBLEVBekx1Q3VFLGdCQUFTO0FBQUEsSUFBQW5GLGdCQUFBLGFBQTlCSixZQUFZLGtCQUNUO0VBQ3BCd0UsYUFBYSxFQUFFLENBQUMsQ0FBQztFQUNqQlAsdUJBQXVCLEVBQUUxRixRQUFRO0VBQ2pDbUcseUJBQXlCLEVBQUUsSUFBSTtFQUMvQlgsaUJBQWlCLEVBQUUsQ0FBQztFQUNwQnlCLFlBQVksRUFBRSxFQUFFO0VBQ2hCN0csYUFBYSxFQUFFTixjQUFjO0VBQzdCZ0YsZ0JBQWdCLEVBQUUsU0FBbEJBLGdCQUFnQkEsQ0FBQSxFQUFRO0lBQ3RCO0VBQ0YsQ0FBQztFQUNEb0MsaUJBQWlCLEVBQUUsSUFBSTtFQUN2QlgsY0FBYyxFQUFFO0FBQ2xCLENBQUMiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -47,7 +47,7 @@ declare class ItemSelectorUnmemoized extends Component<ItemSelectorProps<any>> {
47
47
  closeOnSelect: boolean;
48
48
  searchable: boolean;
49
49
  DropDownRenderComponent: typeof DropdownList;
50
- DropDownLineItemRenderComponent: ({ value, displayOption, disabled, light }: import("./dropdown-list").ListItemProps<any>) => React.JSX.Element;
50
+ DropDownLineItemRenderComponent: ({ value, displayOption, disabled }: import("./dropdown-list").ListItemProps<any>) => React.JSX.Element;
51
51
  DropDownWrapperComponent: IStyledComponent<"web", DropdownWrapperProps>;
52
52
  reorderItems: undefined;
53
53
  className: string;
@@ -95,7 +95,7 @@ declare class Typeahead extends Component<TypeaheadProps, TypeaheadState> {
95
95
  inputDisplayOption: null;
96
96
  defaultClassNames: boolean;
97
97
  customListComponent: typeof DropdownList;
98
- customListItemComponent: ({ value, displayOption, disabled, light }: import("./dropdown-list").ListItemProps<any>) => React.JSX.Element;
98
+ customListItemComponent: ({ value, displayOption, disabled }: import("./dropdown-list").ListItemProps<any>) => React.JSX.Element;
99
99
  inputIcon: typeof Search;
100
100
  customListHeaderComponent: null;
101
101
  showOptionsWhenEmpty: boolean;