@kepler.gl/components 3.3.0-alpha.0 → 3.3.0-alpha.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/annotations/annotation-node.d.ts +11 -0
- package/dist/annotations/annotation-node.js +145 -0
- package/dist/annotations/annotation-overlay.d.ts +16 -0
- package/dist/annotations/annotation-overlay.js +166 -0
- package/dist/annotations/annotation-panel.d.ts +24 -0
- package/dist/annotations/annotation-panel.js +362 -0
- package/dist/annotations/annotation-text.d.ts +16 -0
- package/dist/annotations/annotation-text.js +150 -0
- package/dist/annotations/annotation-utils.d.ts +39 -0
- package/dist/annotations/annotation-utils.js +156 -0
- package/dist/annotations/index.d.ts +7 -0
- package/dist/annotations/index.js +53 -0
- package/dist/annotations/lexical-editor/clickable-link-plugin.d.ts +3 -0
- package/dist/annotations/lexical-editor/clickable-link-plugin.js +71 -0
- package/dist/annotations/lexical-editor/floating-link-editor.d.ts +1 -0
- package/dist/annotations/lexical-editor/floating-link-editor.js +194 -0
- package/dist/annotations/lexical-editor/index.d.ts +7 -0
- package/dist/annotations/lexical-editor/index.js +78 -0
- package/dist/annotations/lexical-editor/lexical-constants.d.ts +12 -0
- package/dist/annotations/lexical-editor/lexical-constants.js +22 -0
- package/dist/annotations/lexical-editor/lexical-nodes.d.ts +3 -0
- package/dist/annotations/lexical-editor/lexical-nodes.js +13 -0
- package/dist/annotations/lexical-editor/lexical-rich-text-editor.d.ts +15 -0
- package/dist/annotations/lexical-editor/lexical-rich-text-editor.js +122 -0
- package/dist/annotations/lexical-editor/lexical-theme.d.ts +15 -0
- package/dist/annotations/lexical-editor/lexical-theme.js +25 -0
- package/dist/annotations/lexical-editor/lexical-toolbar.d.ts +7 -0
- package/dist/annotations/lexical-editor/lexical-toolbar.js +293 -0
- package/dist/annotations/lexical-editor/lexical-utils.d.ts +4 -0
- package/dist/annotations/lexical-editor/lexical-utils.js +45 -0
- package/dist/annotations/lexical-editor/use-lexical-toolbar.d.ts +36 -0
- package/dist/annotations/lexical-editor/use-lexical-toolbar.js +253 -0
- package/dist/bottom-widget.d.ts +1 -1
- package/dist/bottom-widget.js +12 -6
- package/dist/common/action-panel.js +1 -1
- package/dist/common/animation-control/animation-control.d.ts +1 -0
- package/dist/common/animation-control/animation-control.js +3 -1
- package/dist/common/animation-control/animation-controller.js +8 -6
- package/dist/common/animation-control/export-video-control.d.ts +9 -0
- package/dist/common/animation-control/export-video-control.js +43 -0
- package/dist/common/animation-control/playback-controls.d.ts +4 -2
- package/dist/common/animation-control/playback-controls.js +7 -4
- package/dist/common/checkbox.d.ts +5 -21
- package/dist/common/checkbox.js +58 -70
- package/dist/common/color-legend.d.ts +1 -1
- package/dist/common/color-legend.js +3 -3
- package/dist/common/data-table/canvas.d.ts +1 -1
- package/dist/common/data-table/index.d.ts +2 -2
- package/dist/common/data-table/index.js +3 -3
- package/dist/common/dnd-layer-items.d.ts +4 -0
- package/dist/common/dnd-layer-items.js +6 -2
- package/dist/common/error-boundary.d.ts +1 -1
- package/dist/common/file-uploader/file-upload.d.ts +1 -1
- package/dist/common/file-uploader/file-upload.js +4 -4
- package/dist/common/flex-container.d.ts +15 -7
- package/dist/common/histogram-plot.js +102 -53
- package/dist/common/icon-button.d.ts +53 -6
- package/dist/common/icons/3d-models/airplane.d.ts +14 -0
- package/dist/common/icons/3d-models/airplane.js +104 -0
- package/dist/common/icons/3d-models/bicycle.d.ts +14 -0
- package/dist/common/icons/3d-models/bicycle.js +426 -0
- package/dist/common/icons/3d-models/boeing.d.ts +14 -0
- package/dist/common/icons/3d-models/boeing.js +119 -0
- package/dist/common/icons/3d-models/car.d.ts +14 -0
- package/dist/common/icons/3d-models/car.js +110 -0
- package/dist/common/icons/3d-models/cargoship.d.ts +14 -0
- package/dist/common/icons/3d-models/cargoship.js +246 -0
- package/dist/common/icons/3d-models/evtol.d.ts +14 -0
- package/dist/common/icons/3d-models/evtol.js +134 -0
- package/dist/common/icons/3d-models/glider.d.ts +14 -0
- package/dist/common/icons/3d-models/glider.js +62 -0
- package/dist/common/icons/3d-models/helicopter.d.ts +14 -0
- package/dist/common/icons/3d-models/helicopter.js +110 -0
- package/dist/common/icons/3d-models/scooter.d.ts +14 -0
- package/dist/common/icons/3d-models/scooter.js +159 -0
- package/dist/common/icons/3d-models/semitruck.d.ts +14 -0
- package/dist/common/icons/3d-models/semitruck.js +177 -0
- package/dist/common/icons/3d-models/truck.d.ts +14 -0
- package/dist/common/icons/3d-models/truck.js +122 -0
- package/dist/common/icons/anchor_window.d.ts +1 -8
- package/dist/common/icons/anchor_window.js +17 -10
- package/dist/common/icons/annotation-text.d.ts +9 -0
- package/dist/common/icons/annotation-text.js +56 -0
- package/dist/common/icons/arrow-down-full.d.ts +2 -1
- package/dist/common/icons/arrow-down-full.js +1 -1
- package/dist/common/icons/folder.d.ts +10 -0
- package/dist/common/icons/folder.js +51 -0
- package/dist/common/icons/index.d.ts +2 -0
- package/dist/common/icons/index.js +15 -1
- package/dist/common/icons/timeline-marker.d.ts +2 -1
- package/dist/common/icons/timeline-marker.js +1 -1
- package/dist/common/item-selector/chickleted-input.d.ts +1 -1
- package/dist/common/item-selector/chickleted-input.js +5 -5
- package/dist/common/item-selector/dropdown-list.d.ts +1 -1
- package/dist/common/item-selector/dropdown-list.js +1 -1
- package/dist/common/item-selector/dropdown-select.d.ts +13 -7
- package/dist/common/item-selector/item-selector.d.ts +1 -1
- package/dist/common/item-selector/item-selector.js +1 -1
- package/dist/common/item-selector/typeahead.d.ts +4 -4
- package/dist/common/item-selector/typeahead.js +1 -3
- package/dist/common/layout-splitter.d.ts +45 -0
- package/dist/common/layout-splitter.js +231 -0
- package/dist/common/line-chart.d.ts +10 -3
- package/dist/common/line-chart.js +219 -52
- package/dist/common/modal.d.ts +11 -5
- package/dist/common/modal.js +1 -1
- package/dist/common/portaled.d.ts +17 -17
- package/dist/common/range-plot.js +4 -2
- package/dist/common/range-slider.d.ts +2 -0
- package/dist/common/range-slider.js +108 -45
- package/dist/common/slider/mouse-event.d.ts +1 -1
- package/dist/common/slider/mouse-event.js +1 -2
- package/dist/common/slider/slider-bar-handle.d.ts +1 -1
- package/dist/common/slider/slider-bar-handle.js +1 -1
- package/dist/common/slider/slider-handle.d.ts +3 -3
- package/dist/common/slider/slider-handle.js +1 -1
- package/dist/common/slider/slider.d.ts +8 -4
- package/dist/common/slider/slider.js +78 -35
- package/dist/common/styled-components.d.ts +628 -178
- package/dist/common/styled-components.js +2 -2
- package/dist/common/time-range-slider-time-title.d.ts +1 -1
- package/dist/common/time-range-slider-time-title.js +5 -5
- package/dist/common/time-range-slider.d.ts +2 -1
- package/dist/common/time-range-slider.js +19 -7
- package/dist/common/timeline-helpers.d.ts +3 -0
- package/dist/common/timeline-helpers.js +57 -0
- package/dist/common/timeline-slider.js +21 -12
- package/dist/common/toolbar-item.js +5 -5
- package/dist/common/toolbar.d.ts +1 -1
- package/dist/common/toolbar.js +4 -4
- package/dist/common/vertical-toolbar.d.ts +13 -3
- package/dist/container.d.ts +3 -2
- package/dist/container.js +2 -2
- package/dist/context.d.ts +1 -1
- package/dist/context.js +1 -1
- package/dist/dnd-context.d.ts +4 -3
- package/dist/dnd-context.js +64 -9
- package/dist/effects/compact-color-picker.d.ts +1 -1
- package/dist/effects/effect-configurator.d.ts +5 -6
- package/dist/effects/effect-configurator.js +213 -52
- package/dist/effects/effect-manager.js +3 -3
- package/dist/effects/effect-panel-header.js +34 -17
- package/dist/effects/effect-panel.d.ts +4 -4
- package/dist/effects/effect-panel.js +61 -86
- package/dist/effects/effect-time-configurator.js +10 -10
- package/dist/effects/effect-type-dropdown-list.d.ts +1 -0
- package/dist/effects/effect-type-dropdown-list.js +1 -1
- package/dist/effects/effect-type-list-item.d.ts +2 -1
- package/dist/effects/effect-type-list-item.js +23 -7
- package/dist/effects/effect-type-selector.d.ts +1 -0
- package/dist/effects/effect-type-selector.js +2 -2
- package/dist/effects/surface-fog-section.d.ts +14 -0
- package/dist/effects/surface-fog-section.js +263 -0
- package/dist/filters/components.d.ts +7 -5
- package/dist/filters/filter-panels/filter-synced-dataset-panel.d.ts +6 -2
- package/dist/filters/index.d.ts +1 -0
- package/dist/filters/index.js +8 -1
- package/dist/filters/polygon-filter.js +2 -2
- package/dist/filters/time-range-filter.js +3 -1
- package/dist/filters/time-widget-settings.d.ts +14 -0
- package/dist/filters/time-widget-settings.js +312 -0
- package/dist/filters/time-widget-top.d.ts +2 -3
- package/dist/filters/time-widget-top.js +32 -39
- package/dist/filters/time-widget.d.ts +3 -2
- package/dist/filters/time-widget.js +285 -9
- package/dist/filters/types.d.ts +3 -3
- package/dist/filters/types.js +1 -1
- package/dist/geocoder/geocoder.d.ts +4 -1
- package/dist/geocoder/geocoder.js +61 -14
- package/dist/geocoder-panel.d.ts +3 -2
- package/dist/geocoder-panel.js +11 -8
- package/dist/hooks/use-dnd-layers.d.ts +4 -3
- package/dist/hooks/use-dnd-layers.js +103 -42
- package/dist/index.d.ts +17 -2
- package/dist/index.js +161 -9
- package/dist/injector.d.ts +1 -1
- package/dist/kepler-gl.d.ts +179 -27
- package/dist/kepler-gl.js +91 -12
- package/dist/loading-indicator.d.ts +3 -1
- package/dist/loading-indicator.js +6 -3
- package/dist/map/annotations/annotation-control.d.ts +16 -0
- package/dist/map/annotations/annotation-control.js +56 -0
- package/dist/map/layer-hover-info.d.ts +7 -3
- package/dist/map/layer-hover-info.js +124 -55
- package/dist/map/locale-panel.d.ts +1 -1
- package/dist/map/locale-panel.js +2 -2
- package/dist/map/map-control-panel.js +3 -2
- package/dist/map/map-control-toolbar.d.ts +33 -8
- package/dist/map/map-control.d.ts +14 -4
- package/dist/map/map-control.js +18 -8
- package/dist/map/map-draw-panel.d.ts +1 -1
- package/dist/map/map-draw-panel.js +7 -4
- package/dist/map/map-legend-panel.d.ts +11 -2
- package/dist/map/map-legend-panel.js +25 -8
- package/dist/map/map-legend.d.ts +20 -3
- package/dist/map/map-legend.js +145 -31
- package/dist/map/map-navigation-control.d.ts +13 -0
- package/dist/map/map-navigation-control.js +143 -0
- package/dist/map/map-popover.js +2 -2
- package/dist/map/split-map-button.d.ts +6 -1
- package/dist/map/split-map-button.js +113 -19
- package/dist/map-container.d.ts +13 -3
- package/dist/map-container.js +269 -59
- package/dist/map-view-state-context.d.ts +1 -0
- package/dist/map-view-state-context.js +1 -1
- package/dist/maps-layout.d.ts +3 -0
- package/dist/maps-layout.js +86 -26
- package/dist/modal-container.d.ts +3 -2
- package/dist/modal-container.js +28 -6
- package/dist/modals/add-map-style-modal.js +173 -200
- package/dist/modals/cloud-tile.d.ts +1 -2
- package/dist/modals/data-table-modal.d.ts +1 -1
- package/dist/modals/data-table-modal.js +146 -194
- package/dist/modals/export-data-modal.js +117 -139
- package/dist/modals/export-map-modal/components.d.ts +9 -5
- package/dist/modals/export-video-modal.d.ts +28 -0
- package/dist/modals/export-video-modal.js +371 -0
- package/dist/modals/export-video-modal.spec.d.ts +1 -0
- package/dist/modals/export-video-modal.spec.js +686 -0
- package/dist/modals/fog-height-animation.d.ts +8 -0
- package/dist/modals/fog-height-animation.js +97 -0
- package/dist/modals/hubble-utils.d.ts +41 -0
- package/dist/modals/hubble-utils.js +294 -0
- package/dist/modals/hubble-utils.spec.d.ts +1 -0
- package/dist/modals/hubble-utils.spec.js +397 -0
- package/dist/modals/modal-dialog.d.ts +1 -1
- package/dist/modals/share-map-modal.d.ts +2 -4
- package/dist/modals/swipe-composite-utils.d.ts +10 -0
- package/dist/modals/swipe-composite-utils.js +108 -0
- package/dist/modals/swipe-export-settings.d.ts +24 -0
- package/dist/modals/swipe-export-settings.js +370 -0
- package/dist/modals/swipe-export-video-container.d.ts +122 -0
- package/dist/modals/swipe-export-video-container.js +630 -0
- package/dist/modals/swipe-export-video-preview.d.ts +68 -0
- package/dist/modals/swipe-export-video-preview.js +339 -0
- package/dist/modals/tilesets-modals/load-data-footer.js +2 -2
- package/dist/modals/tilesets-modals/load-tileset.js +21 -10
- package/dist/modals/tilesets-modals/tileset-bitmap-form.d.ts +14 -0
- package/dist/modals/tilesets-modals/tileset-bitmap-form.js +284 -0
- package/dist/modals/tilesets-modals/tileset-raster-form.js +90 -11
- package/dist/modals/tilesets-modals/tileset-tile3d-form.js +3 -2
- package/dist/modals/tilesets-modals/tileset-vector-form.js +58 -4
- package/dist/modals/tilesets-modals/tileset-wms-form.js +4 -3
- package/dist/notification-panel/notification-item.d.ts +1 -53
- package/dist/notification-panel/notification-item.js +47 -75
- package/dist/notification-panel.d.ts +1 -1
- package/dist/notification-panel.js +20 -42
- package/dist/plot-container.js +7 -6
- package/dist/side-panel/add-by-dataset-button.js +3 -3
- package/dist/side-panel/common/dataset-info.js +2 -2
- package/dist/side-panel/filter-panel/filter-panel-header.d.ts +7 -3
- package/dist/side-panel/interaction-panel/geocoder-config.d.ts +11 -0
- package/dist/side-panel/interaction-panel/geocoder-config.js +45 -0
- package/dist/side-panel/interaction-panel/interaction-panel.d.ts +3 -2
- package/dist/side-panel/interaction-panel/interaction-panel.js +10 -3
- package/dist/side-panel/layer-manager.d.ts +5 -4
- package/dist/side-panel/layer-manager.js +26 -6
- package/dist/side-panel/layer-panel/color-scale-selector.d.ts +1 -1
- package/dist/side-panel/layer-panel/color-scale-selector.js +1 -1
- package/dist/side-panel/layer-panel/color-selector.d.ts +6 -4
- package/dist/side-panel/layer-panel/custom-palette.d.ts +3 -5
- package/dist/side-panel/layer-panel/custom-palette.js +5 -5
- package/dist/side-panel/layer-panel/dataset-layer-group.d.ts +2 -1
- package/dist/side-panel/layer-panel/dataset-layer-group.js +1 -1
- package/dist/side-panel/layer-panel/dataset-layer-section.d.ts +2 -1
- package/dist/side-panel/layer-panel/dataset-layer-section.js +19 -3
- package/dist/side-panel/layer-panel/layer-config-group.d.ts +5 -11
- package/dist/side-panel/layer-panel/layer-configurator.d.ts +4 -2
- package/dist/side-panel/layer-panel/layer-configurator.js +450 -76
- package/dist/side-panel/layer-panel/layer-group-header.d.ts +15 -0
- package/dist/side-panel/layer-panel/layer-group-header.js +179 -0
- package/dist/side-panel/layer-panel/layer-list.d.ts +9 -4
- package/dist/side-panel/layer-panel/layer-list.js +197 -40
- package/dist/side-panel/layer-panel/layer-panel-header.js +2 -2
- package/dist/side-panel/layer-panel/raster-tile-layer-configurator.d.ts +1 -1
- package/dist/side-panel/layer-panel/raster-tile-layer-configurator.js +127 -27
- package/dist/side-panel/layer-panel/scenegraph-model-selector.d.ts +24 -0
- package/dist/side-panel/layer-panel/scenegraph-model-selector.js +123 -0
- package/dist/side-panel/layer-panel/text-label-panel.d.ts +1 -1
- package/dist/side-panel/layer-panel/text-label-panel.js +11 -2
- package/dist/side-panel/layer-panel/vector-tile-layer-configurator.d.ts +1 -1
- package/dist/side-panel/layer-panel/vector-tile-layer-configurator.js +2 -10
- package/dist/side-panel/layer-panel/vis-config-slider.d.ts +2 -0
- package/dist/side-panel/layer-panel/vis-config-slider.js +7 -3
- package/dist/side-panel/panel-header.d.ts +1 -0
- package/dist/side-panel/panel-header.js +9 -2
- package/dist/side-panel/panel-tab.d.ts +2 -4
- package/dist/side-panel/panel-tab.js +4 -4
- package/dist/side-panel/panel-view-list-toggle.d.ts +4 -4
- package/dist/side-panel/side-bar.d.ts +1 -6
- package/dist/side-panel.d.ts +1 -1
- package/dist/side-panel.js +5 -1
- package/dist/types.d.ts +2 -2
- package/dist/types.js +1 -1
- package/package.json +53 -48
- package/dist/map/layer-selector-panel.d.ts +0 -21
- package/dist/map/layer-selector-panel.js +0 -85
- package/dist/side-panel/layer-panel/radius-by-zoom-input.d.ts +0 -11
- package/dist/side-panel/layer-panel/radius-by-zoom-input.js +0 -220
|
@@ -16,6 +16,7 @@ var _styledComponents = _interopRequireWildcard(require("styled-components"));
|
|
|
16
16
|
var _core = require("@dnd-kit/core");
|
|
17
17
|
var _utilities = require("@dnd-kit/utilities");
|
|
18
18
|
var _react2 = require("@floating-ui/react");
|
|
19
|
+
var _constants = require("@kepler.gl/constants");
|
|
19
20
|
var _styles = require("@kepler.gl/styles");
|
|
20
21
|
var _utils = require("@kepler.gl/utils");
|
|
21
22
|
var _icons = require("../common/icons");
|
|
@@ -37,16 +38,16 @@ var DRAG_MOVE_ID = 'map-legend-move';
|
|
|
37
38
|
var StyledDraggableLegendContent = _styledComponents["default"].div(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n position: absolute;\n outline: none;\n transition: border-color 0.2s ease-in-out;\n border: 1px solid transparent;\n .legend-input-block {\n display: none;\n }\n &.is-dragging .legend-input-block {\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n background-color: transparent;\n }\n &:hover,\n &.is-dragging {\n .legend-move-handle {\n opacity: 1;\n pointer-events: auto;\n }\n .legend-resize-handle {\n opacity: 1;\n pointer-events: auto;\n }\n border-color: ", ";\n }\n .map-control__panel-content {\n max-height: ", ";\n ", ";\n }\n border-radius: 4px;\n z-index: 2;\n .map-control-panel {\n margin-bottom: 0 !important;\n }\n"])), function (props) {
|
|
38
39
|
return props.theme.activeColor;
|
|
39
40
|
}, function (props) {
|
|
40
|
-
return props
|
|
41
|
+
return props.$maxContentHeight ? "".concat(props.$maxContentHeight, "px") : 'calc(100vh - 100px)';
|
|
41
42
|
}, function (props) {
|
|
42
|
-
return props
|
|
43
|
+
return props.$contentHeight ? "height: ".concat(props.$contentHeight, "px;") : '';
|
|
43
44
|
});
|
|
44
45
|
var StyledMoveHandle = _styledComponents["default"].div(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2["default"])(["\n pointer-events: none;\n opacity: 0;\n transition: opacity 0.2s ease-in-out;\n position: absolute;\n display: flex;\n flex-direction: column;\n align-items: center;\n color: white;\n z-index: 2;\n top: 0;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 48px;\n height: 16px;\n border-radius: 4px;\n cursor: move;\n background-color: ", ";\n"])), function (props) {
|
|
45
46
|
return props.theme.activeColor;
|
|
46
47
|
});
|
|
47
48
|
var StyledResizeHandle = _styledComponents["default"].div(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2["default"])(["\n pointer-events: none;\n opacity: 0;\n transition: opacity 0.2s ease-in-out;\n position: absolute;\n display: flex;\n flex-direction: column;\n align-items: center;\n color: #f7f8fa;\n z-index: 2;\n bottom: 0;\n left: 50%;\n transform: translate(-50%, -50%);\n width: 48px;\n height: 16px;\n border-radius: 4px;\n cursor: ns-resize;\n"])));
|
|
48
49
|
var StyledFixedLegendContent = _styledComponents["default"].div(_templateObject4 || (_templateObject4 = (0, _taggedTemplateLiteral2["default"])(["\n .map-control__panel-content {\n max-height: calc(100vh - 100px);\n ", ";\n }\n\n /* Hide scrollbars in export to avoid OS default styling differences */\n .styled-color-legend {\n -ms-overflow-style: none; /* IE and old Edge */\n scrollbar-width: none; /* Firefox */\n }\n .styled-color-legend::-webkit-scrollbar {\n width: 0 !important; /* Chrome, Safari, new Edge */\n height: 0 !important;\n }\n"])), function (props) {
|
|
49
|
-
return props
|
|
50
|
+
return props.$contentHeight ? "height: ".concat(props.$contentHeight, "px;") : '';
|
|
50
51
|
});
|
|
51
52
|
var DraggableLegendContent = /*#__PURE__*/(0, _react.forwardRef)(function (props, ref) {
|
|
52
53
|
var positionStyles = props.positionStyles,
|
|
@@ -69,8 +70,8 @@ var DraggableLegendContent = /*#__PURE__*/(0, _react.forwardRef)(function (props
|
|
|
69
70
|
style: _objectSpread(_objectSpread({}, positionStyles), {}, {
|
|
70
71
|
transform: _utilities.CSS.Translate.toString(draggableMove.transform)
|
|
71
72
|
}),
|
|
72
|
-
contentHeight: contentHeight,
|
|
73
|
-
maxContentHeight: maxContentHeight
|
|
73
|
+
$contentHeight: contentHeight,
|
|
74
|
+
$maxContentHeight: maxContentHeight
|
|
74
75
|
}, draggableMove.attributes), children, isDragging ? /*#__PURE__*/_react["default"].createElement("div", {
|
|
75
76
|
className: "legend-input-block"
|
|
76
77
|
}) : null, /*#__PURE__*/_react["default"].createElement(StyledMoveHandle, (0, _extends2["default"])({
|
|
@@ -170,7 +171,7 @@ var ImageExportLegend = (0, _styledComponents.withTheme)(function (_ref2) {
|
|
|
170
171
|
position: 'absolute'
|
|
171
172
|
})
|
|
172
173
|
}, /*#__PURE__*/_react["default"].createElement(StyledFixedLegendContent, {
|
|
173
|
-
contentHeight: contentHeight
|
|
174
|
+
$contentHeight: contentHeight
|
|
174
175
|
}, children)), portalRoot) : null);
|
|
175
176
|
});
|
|
176
177
|
MapLegendPanelFactory.deps = [_mapControlTooltip["default"], _mapControlPanel["default"], _mapLegend["default"]];
|
|
@@ -184,6 +185,7 @@ var defaultActionIcons = {
|
|
|
184
185
|
var MapLegendPanelComponent = function MapLegendPanelComponent(_ref3) {
|
|
185
186
|
var _mapControls$mapLegen2, _rootContext$current;
|
|
186
187
|
var layers = _ref3.layers,
|
|
188
|
+
layerOrder = _ref3.layerOrder,
|
|
187
189
|
mapControls = _ref3.mapControls,
|
|
188
190
|
scale = _ref3.scale,
|
|
189
191
|
onToggleMapControl = _ref3.onToggleMapControl,
|
|
@@ -201,9 +203,14 @@ var MapLegendPanelComponent = function MapLegendPanelComponent(_ref3) {
|
|
|
201
203
|
_ref3$isViewportUnsyn = _ref3.isViewportUnsyncAllowed,
|
|
202
204
|
isViewportUnsyncAllowed = _ref3$isViewportUnsyn === void 0 ? true : _ref3$isViewportUnsyn,
|
|
203
205
|
className = _ref3.className,
|
|
206
|
+
isSplit = _ref3.isSplit,
|
|
207
|
+
splitMaps = _ref3.splitMaps,
|
|
208
|
+
onToggleLayerForMap = _ref3.onToggleLayerForMap,
|
|
209
|
+
mapIndex = _ref3.mapIndex,
|
|
204
210
|
MapControlTooltip = _ref3.MapControlTooltip,
|
|
205
211
|
MapControlPanel = _ref3.MapControlPanel,
|
|
206
212
|
MapLegend = _ref3.MapLegend;
|
|
213
|
+
var isSwipeMode = (mapState === null || mapState === void 0 ? void 0 : mapState.mapSplitMode) === _constants.MapSplitMode.SWIPE_COMPARE;
|
|
207
214
|
var isSidePanelShown = Boolean(activeSidePanel);
|
|
208
215
|
var settings = mapControls === null || mapControls === void 0 || (_mapControls$mapLegen2 = mapControls.mapLegend) === null || _mapControls$mapLegen2 === void 0 ? void 0 : _mapControls$mapLegen2.settings;
|
|
209
216
|
var mapLegend = (mapControls === null || mapControls === void 0 ? void 0 : mapControls.mapLegend) || {};
|
|
@@ -223,6 +230,12 @@ var MapLegendPanelComponent = function MapLegendPanelComponent(_ref3) {
|
|
|
223
230
|
e.preventDefault();
|
|
224
231
|
onToggleMapControl('mapLegend');
|
|
225
232
|
}, [onToggleMapControl]);
|
|
233
|
+
if (isSplit && !isSwipeMode && mapIndex !== 0) {
|
|
234
|
+
return null;
|
|
235
|
+
}
|
|
236
|
+
if (isSwipeMode && mapIndex !== 1) {
|
|
237
|
+
return null;
|
|
238
|
+
}
|
|
226
239
|
if (!mapLegend.show) {
|
|
227
240
|
return null;
|
|
228
241
|
}
|
|
@@ -240,11 +253,15 @@ var MapLegendPanelComponent = function MapLegendPanelComponent(_ref3) {
|
|
|
240
253
|
className: className
|
|
241
254
|
}, /*#__PURE__*/_react["default"].createElement(MapLegend, {
|
|
242
255
|
layers: layers,
|
|
256
|
+
layerOrder: layerOrder,
|
|
243
257
|
mapState: mapState,
|
|
244
258
|
disableEdit: disableEdit,
|
|
245
259
|
isExport: isExport,
|
|
246
260
|
onLayerVisConfigChange: onLayerVisConfigChange,
|
|
247
|
-
onToggleLayerVisibility: onToggleLayerVisibility
|
|
261
|
+
onToggleLayerVisibility: onToggleLayerVisibility,
|
|
262
|
+
isSplit: isSplit,
|
|
263
|
+
splitMaps: splitMaps,
|
|
264
|
+
onMapToggleLayer: onToggleLayerForMap
|
|
248
265
|
})) : null;
|
|
249
266
|
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, active ? (0, _utils.hasPortableWidth)(_styles.breakPointValues) ? legendPanel : isExport ? /*#__PURE__*/_react["default"].createElement(ImageExportLegend, {
|
|
250
267
|
isSidePanelShown: isSidePanelShown,
|
|
@@ -274,4 +291,4 @@ function MapLegendPanelFactory(MapControlTooltip, MapControlPanel, MapLegend) {
|
|
|
274
291
|
};
|
|
275
292
|
}
|
|
276
293
|
var _default = exports["default"] = MapLegendPanelFactory;
|
|
277
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3JlYWN0RG9tIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9jb3JlIiwiX3V0aWxpdGllcyIsIl9yZWFjdDIiLCJfc3R5bGVzIiwiX3V0aWxzIiwiX2ljb25zIiwiX3N0eWxlZENvbXBvbmVudHMyIiwiX2NvbnRleHQiLCJfdXNlTGVnZW5kUG9zaXRpb24zIiwiX21hcENvbnRyb2xQYW5lbCIsIl9tYXBDb250cm9sVG9vbHRpcCIsIl9tYXBMZWdlbmQiLCJfbW9kaWZpZXJzIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RlbXBsYXRlT2JqZWN0MiIsIl90ZW1wbGF0ZU9iamVjdDMiLCJfdGVtcGxhdGVPYmplY3Q0IiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0Iiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiRFJBR19SRVNJWkVfSUQiLCJEUkFHX01PVkVfSUQiLCJTdHlsZWREcmFnZ2FibGVMZWdlbmRDb250ZW50Iiwic3R5bGVkIiwiZGl2IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbDIiLCJwcm9wcyIsInRoZW1lIiwiYWN0aXZlQ29sb3IiLCJtYXhDb250ZW50SGVpZ2h0IiwiY29uY2F0IiwiY29udGVudEhlaWdodCIsIlN0eWxlZE1vdmVIYW5kbGUiLCJTdHlsZWRSZXNpemVIYW5kbGUiLCJTdHlsZWRGaXhlZExlZ2VuZENvbnRlbnQiLCJEcmFnZ2FibGVMZWdlbmRDb250ZW50IiwiZm9yd2FyZFJlZiIsInJlZiIsInBvc2l0aW9uU3R5bGVzIiwiY2hpbGRyZW4iLCJkcmFnZ2FibGVNb3ZlIiwidXNlRHJhZ2dhYmxlIiwiaWQiLCJkcmFnZ2FibGVSZXNpemUiLCJyZWZzIiwidXNlTWVyZ2VSZWZzIiwic2V0Tm9kZVJlZiIsImlzRHJhZ2dpbmciLCJjcmVhdGVFbGVtZW50IiwiX2V4dGVuZHMyIiwiY2xhc3NOYW1lIiwiY2xhc3NuYW1lcyIsInN0eWxlIiwidHJhbnNmb3JtIiwiQ1NTIiwiVHJhbnNsYXRlIiwidG9TdHJpbmciLCJhdHRyaWJ1dGVzIiwibGlzdGVuZXJzIiwiRHJhZ2dhYmxlRG90cyIsImhlaWdodCIsIkhvcml6b250YWxSZXNpemVIYW5kbGUiLCJEcmFnZ2FibGVMZWdlbmQiLCJ3aXRoVGhlbWUiLCJfcmVmIiwiX21hcENvbnRyb2xzJG1hcExlZ2VuIiwiaXNTaWRlUGFuZWxTaG93biIsIm1hcENvbnRyb2xzIiwic2V0TWFwQ29udHJvbFNldHRpbmdzIiwibWFwU3RhdGUiLCJzZXR0aW5ncyIsIm1hcExlZ2VuZCIsImxlZ2VuZENvbnRlbnRSZWYiLCJ1c2VSZWYiLCJvbkNoYW5nZVNldHRpbmdzIiwidXNlQ2FsbGJhY2siLCJuZXdTZXR0aW5ncyIsIl91c2VMZWdlbmRQb3NpdGlvbiIsInVzZUxlZ2VuZFBvc2l0aW9uIiwibWFwSGVpZ2h0IiwibWFwV2lkdGgiLCJ3aWR0aCIsInVwZGF0ZVBvc2l0aW9uIiwic3RhcnRSZXNpemUiLCJyZXNpemUiLCJoYW5kbGVEcmFnU3RhcnQiLCJldmVudCIsImFjdGl2ZSIsImhhbmRsZURyYWdFbmQiLCJoYW5kbGVEcmFnTW92ZSIsImRlbHRhIiwieSIsIkRuZENvbnRleHQiLCJvbkRyYWdTdGFydCIsIm9uRHJhZ01vdmUiLCJvbkRyYWdFbmQiLCJtb2RpZmllcnMiLCJyZXN0cmljdFRvV2luZG93RWRnZXMiLCJJbWFnZUV4cG9ydExlZ2VuZCIsIl9yZWYyIiwiX2NvbnRhaW5lclJlZiRjdXJyZW50IiwiY29udGFpbmVyUmVmIiwiX3VzZUxlZ2VuZFBvc2l0aW9uMiIsInBvcnRhbFJvb3QiLCJjdXJyZW50IiwiY2xvc2VzdCIsInF1ZXJ5U2VsZWN0b3IiLCJjcmVhdGVQb3J0YWwiLCJwb3NpdGlvbiIsIk1hcExlZ2VuZFBhbmVsRmFjdG9yeSIsImRlcHMiLCJNYXBDb250cm9sVG9vbHRpcEZhY3RvcnkiLCJNYXBDb250cm9sUGFuZWxGYWN0b3J5IiwiTWFwTGVnZW5kRmFjdG9yeSIsImRlZmF1bHRBY3Rpb25JY29ucyIsImxlZ2VuZCIsIkxlZ2VuZCIsIk1hcExlZ2VuZFBhbmVsQ29tcG9uZW50IiwiX3JlZjMiLCJfbWFwQ29udHJvbHMkbWFwTGVnZW4yIiwiX3Jvb3RDb250ZXh0JGN1cnJlbnQiLCJsYXllcnMiLCJzY2FsZSIsIm9uVG9nZ2xlTWFwQ29udHJvbCIsImlzRXhwb3J0IiwibG9nb0NvbXBvbmVudCIsIl9yZWYzJGFjdGlvbkljb25zIiwiYWN0aW9uSWNvbnMiLCJvbkxheWVyVmlzQ29uZmlnQ2hhbmdlIiwib25Ub2dnbGVMYXllclZpc2liaWxpdHkiLCJvblRvZ2dsZVNwbGl0TWFwVmlld3BvcnQiLCJvbkNsaWNrQ29udHJvbEJ0biIsImFjdGl2ZVNpZGVQYW5lbCIsIl9yZWYzJGlzVmlld3BvcnRVbnN5biIsImlzVmlld3BvcnRVbnN5bmNBbGxvd2VkIiwiTWFwQ29udHJvbFRvb2x0aXAiLCJNYXBDb250cm9sUGFuZWwiLCJNYXBMZWdlbmQiLCJCb29sZWFuIiwiX3JlZjQiLCJkaXNhYmxlRWRpdCIsInJvb3RDb250ZXh0IiwidXNlQ29udGV4dCIsIlJvb3RDb250ZXh0Iiwib25DbGljayIsIl9tYXBDb250cm9scyRtYXBEcmF3IiwibWFwRHJhdyIsIm9uQ2xvc2VDbGljayIsInByZXZlbnREZWZhdWx0Iiwic2hvdyIsImxlZ2VuZFBhbmVsIiwiaGVhZGVyIiwicGlubmFibGUiLCJkaXNhYmxlQ2xvc2UiLCJGcmFnbWVudCIsImhhc1BvcnRhYmxlV2lkdGgiLCJicmVha1BvaW50VmFsdWVzIiwiZG9jdW1lbnQiLCJib2R5IiwibWVzc2FnZSIsIk1hcENvbnRyb2xCdXR0b24iLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi9zcmMvbWFwL21hcC1sZWdlbmQtcGFuZWwudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBjbGFzc25hbWVzIGZyb20gJ2NsYXNzbmFtZXMnO1xuaW1wb3J0IHtjcmVhdGVQb3J0YWx9IGZyb20gJ3JlYWN0LWRvbSc7XG5pbXBvcnQgUmVhY3QsIHtcbiAgQ29tcG9uZW50VHlwZSxcbiAgRkMsXG4gIGZvcndhcmRSZWYsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VSZWYsXG4gIFByb3BzV2l0aENoaWxkcmVuXG59IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQsIHt3aXRoVGhlbWV9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcblxuaW1wb3J0IHtEbmRDb250ZXh0LCB1c2VEcmFnZ2FibGV9IGZyb20gJ0BkbmQta2l0L2NvcmUnO1xuaW1wb3J0IHtDU1N9IGZyb20gJ0BkbmQta2l0L3V0aWxpdGllcyc7XG5pbXBvcnQge3VzZU1lcmdlUmVmc30gZnJvbSAnQGZsb2F0aW5nLXVpL3JlYWN0JztcblxuaW1wb3J0IHtBY3Rpb25IYW5kbGVyLCBzZXRNYXBDb250cm9sU2V0dGluZ3MsIHRvZ2dsZVNwbGl0TWFwVmlld3BvcnR9IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5pbXBvcnQge0xheWVyfSBmcm9tICdAa2VwbGVyLmdsL2xheWVycyc7XG5pbXBvcnQge2JyZWFrUG9pbnRWYWx1ZXN9IGZyb20gJ0BrZXBsZXIuZ2wvc3R5bGVzJztcbmltcG9ydCB7TGF5ZXJWaXNDb25maWcsIE1hcENvbnRyb2xNYXBMZWdlbmQsIE1hcENvbnRyb2xzLCBNYXBTdGF0ZX0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge2hhc1BvcnRhYmxlV2lkdGh9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHtNYXBMZWdlbmRDb250cm9sU2V0dGluZ3N9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG5pbXBvcnQge0xlZ2VuZCwgRHJhZ2dhYmxlRG90cywgSG9yaXpvbnRhbFJlc2l6ZUhhbmRsZX0gZnJvbSAnLi4vY29tbW9uL2ljb25zJztcbmltcG9ydCB7TWFwQ29udHJvbEJ1dHRvbn0gZnJvbSAnLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7Um9vdENvbnRleHR9IGZyb20gJy4uL2NvbnRleHQnO1xuaW1wb3J0IHVzZUxlZ2VuZFBvc2l0aW9uIGZyb20gJy4uL2hvb2tzL3VzZS1sZWdlbmQtcG9zaXRpb24nO1xuaW1wb3J0IE1hcENvbnRyb2xQYW5lbEZhY3RvcnkgZnJvbSAnLi9tYXAtY29udHJvbC1wYW5lbCc7XG5pbXBvcnQgTWFwQ29udHJvbFRvb2x0aXBGYWN0b3J5IGZyb20gJy4vbWFwLWNvbnRyb2wtdG9vbHRpcCc7XG5pbXBvcnQgTWFwTGVnZW5kRmFjdG9yeSBmcm9tICcuL21hcC1sZWdlbmQnO1xuaW1wb3J0IHtyZXN0cmljdFRvV2luZG93RWRnZXN9IGZyb20gJ0BkbmQta2l0L21vZGlmaWVycyc7XG5cbmNvbnN0IERSQUdfUkVTSVpFX0lEID0gJ21hcC1sZWdlbmQtcmVzaXplJztcbmNvbnN0IERSQUdfTU9WRV9JRCA9ICdtYXAtbGVnZW5kLW1vdmUnO1xuXG5jb25zdCBTdHlsZWREcmFnZ2FibGVMZWdlbmRDb250ZW50ID0gc3R5bGVkLmRpdjx7XG4gIGNvbnRlbnRIZWlnaHQ/OiBudW1iZXI7XG4gIG1heENvbnRlbnRIZWlnaHQ/OiBudW1iZXI7XG59PmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBvdXRsaW5lOiBub25lO1xuICB0cmFuc2l0aW9uOiBib3JkZXItY29sb3IgMC4ycyBlYXNlLWluLW91dDtcbiAgYm9yZGVyOiAxcHggc29saWQgdHJhbnNwYXJlbnQ7XG4gIC5sZWdlbmQtaW5wdXQtYmxvY2sge1xuICAgIGRpc3BsYXk6IG5vbmU7XG4gIH1cbiAgJi5pcy1kcmFnZ2luZyAubGVnZW5kLWlucHV0LWJsb2NrIHtcbiAgICBkaXNwbGF5OiBibG9jaztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgdG9wOiAwO1xuICAgIGxlZnQ6IDA7XG4gICAgd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHRyYW5zcGFyZW50O1xuICB9XG4gICY6aG92ZXIsXG4gICYuaXMtZHJhZ2dpbmcge1xuICAgIC5sZWdlbmQtbW92ZS1oYW5kbGUge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgIH1cbiAgICAubGVnZW5kLXJlc2l6ZS1oYW5kbGUge1xuICAgICAgb3BhY2l0eTogMTtcbiAgICAgIHBvaW50ZXItZXZlbnRzOiBhdXRvO1xuICAgIH1cbiAgICBib3JkZXItY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuYWN0aXZlQ29sb3J9O1xuICB9XG4gIC5tYXAtY29udHJvbF9fcGFuZWwtY29udGVudCB7XG4gICAgbWF4LWhlaWdodDogJHtwcm9wcyA9PlxuICAgICAgcHJvcHMubWF4Q29udGVudEhlaWdodCA/IGAke3Byb3BzLm1heENvbnRlbnRIZWlnaHR9cHhgIDogJ2NhbGMoMTAwdmggLSAxMDBweCknfTtcbiAgICAke3Byb3BzID0+IChwcm9wcy5jb250ZW50SGVpZ2h0ID8gYGhlaWdodDogJHtwcm9wcy5jb250ZW50SGVpZ2h0fXB4O2AgOiAnJyl9O1xuICB9XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgei1pbmRleDogMjtcbiAgLm1hcC1jb250cm9sLXBhbmVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZE1vdmVIYW5kbGUgPSBzdHlsZWQuZGl2YFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UtaW4tb3V0O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgei1pbmRleDogMjtcbiAgdG9wOiAwO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB3aWR0aDogNDhweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGN1cnNvcjogbW92ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5hY3RpdmVDb2xvcn07XG5gO1xuXG5jb25zdCBTdHlsZWRSZXNpemVIYW5kbGUgPSBzdHlsZWQuZGl2YFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UtaW4tb3V0O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGNvbG9yOiAjZjdmOGZhO1xuICB6LWluZGV4OiAyO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIHdpZHRoOiA0OHB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgY3Vyc29yOiBucy1yZXNpemU7XG5gO1xuXG5jb25zdCBTdHlsZWRGaXhlZExlZ2VuZENvbnRlbnQgPSBzdHlsZWQuZGl2PHtjb250ZW50SGVpZ2h0PzogbnVtYmVyfT5gXG4gIC5tYXAtY29udHJvbF9fcGFuZWwtY29udGVudCB7XG4gICAgbWF4LWhlaWdodDogY2FsYygxMDB2aCAtIDEwMHB4KTtcbiAgICAke3Byb3BzID0+IChwcm9wcy5jb250ZW50SGVpZ2h0ID8gYGhlaWdodDogJHtwcm9wcy5jb250ZW50SGVpZ2h0fXB4O2AgOiAnJyl9O1xuICB9XG5cbiAgLyogSGlkZSBzY3JvbGxiYXJzIGluIGV4cG9ydCB0byBhdm9pZCBPUyBkZWZhdWx0IHN0eWxpbmcgZGlmZmVyZW5jZXMgKi9cbiAgLnN0eWxlZC1jb2xvci1sZWdlbmQge1xuICAgIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTsgLyogSUUgYW5kIG9sZCBFZGdlICovXG4gICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lOyAvKiBGaXJlZm94ICovXG4gIH1cbiAgLnN0eWxlZC1jb2xvci1sZWdlbmQ6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICB3aWR0aDogMCAhaW1wb3J0YW50OyAvKiBDaHJvbWUsIFNhZmFyaSwgbmV3IEVkZ2UgKi9cbiAgICBoZWlnaHQ6IDAgIWltcG9ydGFudDtcbiAgfVxuYDtcblxuZXhwb3J0IHR5cGUgTWFwTGVnZW5kUGFuZWxGYWN0b3J5RGVwcyA9IFtcbiAgdHlwZW9mIE1hcENvbnRyb2xUb29sdGlwRmFjdG9yeSxcbiAgdHlwZW9mIE1hcENvbnRyb2xQYW5lbEZhY3RvcnksXG4gIHR5cGVvZiBNYXBMZWdlbmRGYWN0b3J5XG5dO1xuXG50eXBlIERyYWdnYWJsZUxlZ2VuZENvbnRlbnRQcm9wcyA9IHtcbiAgY29udGVudEhlaWdodD86IG51bWJlcjtcbiAgbWF4Q29udGVudEhlaWdodD86IG51bWJlcjtcbiAgcG9zaXRpb25TdHlsZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufTtcblxuY29uc3QgRHJhZ2dhYmxlTGVnZW5kQ29udGVudCA9IGZvcndhcmRSZWYoKHByb3BzOiBEcmFnZ2FibGVMZWdlbmRDb250ZW50UHJvcHMsIHJlZikgPT4ge1xuICBjb25zdCB7cG9zaXRpb25TdHlsZXMsIGNoaWxkcmVuLCBjb250ZW50SGVpZ2h0LCBtYXhDb250ZW50SGVpZ2h0fSA9IHByb3BzO1xuICBjb25zdCBkcmFnZ2FibGVNb3ZlID0gdXNlRHJhZ2dhYmxlKHtpZDogRFJBR19NT1ZFX0lEfSk7XG4gIGNvbnN0IGRyYWdnYWJsZVJlc2l6ZSA9IHVzZURyYWdnYWJsZSh7aWQ6IERSQUdfUkVTSVpFX0lEfSk7XG4gIGNvbnN0IHJlZnMgPSB1c2VNZXJnZVJlZnMoW2RyYWdnYWJsZU1vdmUuc2V0Tm9kZVJlZiwgcmVmXSk7XG4gIGNvbnN0IGlzRHJhZ2dpbmcgPSBkcmFnZ2FibGVNb3ZlLmlzRHJhZ2dpbmcgfHwgZHJhZ2dhYmxlUmVzaXplLmlzRHJhZ2dpbmc7XG4gIHJldHVybiAoXG4gICAgPFN0eWxlZERyYWdnYWJsZUxlZ2VuZENvbnRlbnRcbiAgICAgIHJlZj17cmVmc31cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NuYW1lcygnZHJhZ2dhYmxlLWxlZ2VuZCcsIHsnaXMtZHJhZ2dpbmcnOiBpc0RyYWdnaW5nfSl9XG4gICAgICBzdHlsZT17ey4uLnBvc2l0aW9uU3R5bGVzLCB0cmFuc2Zvcm06IENTUy5UcmFuc2xhdGUudG9TdHJpbmcoZHJhZ2dhYmxlTW92ZS50cmFuc2Zvcm0pfX1cbiAgICAgIGNvbnRlbnRIZWlnaHQ9e2NvbnRlbnRIZWlnaHR9XG4gICAgICBtYXhDb250ZW50SGVpZ2h0PXttYXhDb250ZW50SGVpZ2h0fVxuICAgICAgey4uLmRyYWdnYWJsZU1vdmUuYXR0cmlidXRlc31cbiAgICA+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgICB7aXNEcmFnZ2luZyA/IDxkaXYgY2xhc3NOYW1lPVwibGVnZW5kLWlucHV0LWJsb2NrXCIgLz4gOiBudWxsfVxuICAgICAgPFN0eWxlZE1vdmVIYW5kbGUgY2xhc3NOYW1lPVwibGVnZW5kLW1vdmUtaGFuZGxlXCIgey4uLmRyYWdnYWJsZU1vdmUubGlzdGVuZXJzfT5cbiAgICAgICAgPERyYWdnYWJsZURvdHMgaGVpZ2h0PVwiMTZweFwiIC8+XG4gICAgICA8L1N0eWxlZE1vdmVIYW5kbGU+XG4gICAgICA8U3R5bGVkUmVzaXplSGFuZGxlXG4gICAgICAgIGNsYXNzTmFtZT1cImxlZ2VuZC1yZXNpemUtaGFuZGxlXCJcbiAgICAgICAgcmVmPXtkcmFnZ2FibGVSZXNpemUuc2V0Tm9kZVJlZn1cbiAgICAgICAgey4uLmRyYWdnYWJsZVJlc2l6ZS5saXN0ZW5lcnN9XG4gICAgICA+XG4gICAgICAgIDxIb3Jpem9udGFsUmVzaXplSGFuZGxlIGhlaWdodD1cIjE2cHhcIiAvPlxuICAgICAgPC9TdHlsZWRSZXNpemVIYW5kbGU+XG4gICAgPC9TdHlsZWREcmFnZ2FibGVMZWdlbmRDb250ZW50PlxuICApO1xufSk7XG5cbnR5cGUgRHJhZ2dhYmxlTGVnZW5kUHJvcHMgPSBQcm9wc1dpdGhDaGlsZHJlbjx7XG4gIGlzU2lkZVBhbmVsU2hvd246IGJvb2xlYW47XG4gIG1hcENvbnRyb2xzOiBNYXBDb250cm9scztcbiAgc2V0TWFwQ29udHJvbFNldHRpbmdzOiB0eXBlb2Ygc2V0TWFwQ29udHJvbFNldHRpbmdzO1xuICBtYXBTdGF0ZT86IE1hcFN0YXRlO1xufT47XG5cbmNvbnN0IERyYWdnYWJsZUxlZ2VuZCA9IHdpdGhUaGVtZShcbiAgKHtcbiAgICBpc1NpZGVQYW5lbFNob3duLFxuICAgIGNoaWxkcmVuLFxuICAgIG1hcENvbnRyb2xzLFxuICAgIHNldE1hcENvbnRyb2xTZXR0aW5ncyxcbiAgICBtYXBTdGF0ZSxcbiAgICB0aGVtZVxuICB9OiBEcmFnZ2FibGVMZWdlbmRQcm9wcyAmIHt0aGVtZTogYW55fSkgPT4ge1xuICAgIGNvbnN0IHNldHRpbmdzID0gbWFwQ29udHJvbHM/Lm1hcExlZ2VuZD8uc2V0dGluZ3M7XG5cbiAgICBjb25zdCBsZWdlbmRDb250ZW50UmVmID0gdXNlUmVmPEhUTUxFbGVtZW50PihudWxsKTtcbiAgICBjb25zdCBvbkNoYW5nZVNldHRpbmdzID0gdXNlQ2FsbGJhY2soXG4gICAgICBuZXdTZXR0aW5ncyA9PiBzZXRNYXBDb250cm9sU2V0dGluZ3MoJ21hcExlZ2VuZCcsIG5ld1NldHRpbmdzKSxcbiAgICAgIFtzZXRNYXBDb250cm9sU2V0dGluZ3NdXG4gICAgKTtcbiAgICBjb25zdCB7cG9zaXRpb25TdHlsZXMsIHVwZGF0ZVBvc2l0aW9uLCBzdGFydFJlc2l6ZSwgcmVzaXplLCBjb250ZW50SGVpZ2h0LCBtYXhDb250ZW50SGVpZ2h0fSA9XG4gICAgICB1c2VMZWdlbmRQb3NpdGlvbih7XG4gICAgICAgIGxlZ2VuZENvbnRlbnRSZWYsXG4gICAgICAgIGlzU2lkZVBhbmVsU2hvd24sXG4gICAgICAgIHRoZW1lLFxuICAgICAgICBzZXR0aW5ncyxcbiAgICAgICAgb25DaGFuZ2VTZXR0aW5ncyxcbiAgICAgICAgbWFwSGVpZ2h0OiBtYXBTdGF0ZT8uaGVpZ2h0LFxuICAgICAgICBtYXBXaWR0aDogbWFwU3RhdGU/LndpZHRoXG4gICAgICB9KTtcblxuICAgIGNvbnN0IGhhbmRsZURyYWdTdGFydCA9IHVzZUNhbGxiYWNrKFxuICAgICAgZXZlbnQgPT4ge1xuICAgICAgICBzd2l0Y2ggKGV2ZW50LmFjdGl2ZS5pZCkge1xuICAgICAgICAgIGNhc2UgRFJBR19SRVNJWkVfSUQ6XG4gICAgICAgICAgICBzdGFydFJlc2l6ZSgpO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBbdXBkYXRlUG9zaXRpb24sIHN0YXJ0UmVzaXplXVxuICAgICk7XG4gICAgY29uc3QgaGFuZGxlRHJhZ0VuZCA9IHVzZUNhbGxiYWNrKHVwZGF0ZVBvc2l0aW9uLCBbdXBkYXRlUG9zaXRpb25dKTtcbiAgICBjb25zdCBoYW5kbGVEcmFnTW92ZSA9IHVzZUNhbGxiYWNrKFxuICAgICAgZXZlbnQgPT4ge1xuICAgICAgICBzd2l0Y2ggKGV2ZW50LmFjdGl2ZS5pZCkge1xuICAgICAgICAgIGNhc2UgRFJBR19SRVNJWkVfSUQ6XG4gICAgICAgICAgICByZXNpemUoZXZlbnQuZGVsdGEueSk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFtyZXNpemVdXG4gICAgKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8RG5kQ29udGV4dFxuICAgICAgICBvbkRyYWdTdGFydD17aGFuZGxlRHJhZ1N0YXJ0fVxuICAgICAgICBvbkRyYWdNb3ZlPXtoYW5kbGVEcmFnTW92ZX1cbiAgICAgICAgb25EcmFnRW5kPXtoYW5kbGVEcmFnRW5kfVxuICAgICAgICBtb2RpZmllcnM9e1tyZXN0cmljdFRvV2luZG93RWRnZXNdfVxuICAgICAgPlxuICAgICAgICA8RHJhZ2dhYmxlTGVnZW5kQ29udGVudFxuICAgICAgICAgIHJlZj17bGVnZW5kQ29udGVudFJlZn1cbiAgICAgICAgICBwb3NpdGlvblN0eWxlcz17cG9zaXRpb25TdHlsZXN9XG4gICAgICAgICAgY29udGVudEhlaWdodD17Y29udGVudEhlaWdodH1cbiAgICAgICAgICBtYXhDb250ZW50SGVpZ2h0PXttYXhDb250ZW50SGVpZ2h0fVxuICAgICAgICA+XG4gICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICA8L0RyYWdnYWJsZUxlZ2VuZENvbnRlbnQ+XG4gICAgICA8L0RuZENvbnRleHQ+XG4gICAgKTtcbiAgfVxuKSBhcyBGQzxEcmFnZ2FibGVMZWdlbmRQcm9wcz47XG5cbnR5cGUgSW1hZ2VFeHBvcnRMZWdlbmRQcm9wcyA9IHtcbiAgc2V0dGluZ3M/OiBNYXBMZWdlbmRDb250cm9sU2V0dGluZ3M7XG4gIGlzU2lkZVBhbmVsU2hvd246IGJvb2xlYW47XG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGU7XG59O1xuXG5jb25zdCBJbWFnZUV4cG9ydExlZ2VuZCA9IHdpdGhUaGVtZSgoe3NldHRpbmdzLCBpc1NpZGVQYW5lbFNob3duLCB0aGVtZSwgY2hpbGRyZW59KSA9PiB7XG4gIGNvbnN0IGNvbnRhaW5lclJlZjogUmVhY3QuTXV0YWJsZVJlZk9iamVjdDxIVE1MRGl2RWxlbWVudCB8IG51bGw+ID0gdXNlUmVmKG51bGwpO1xuICBjb25zdCBsZWdlbmRDb250ZW50UmVmOiBSZWFjdC5NdXRhYmxlUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50IHwgbnVsbD4gPSB1c2VSZWYobnVsbCk7XG5cbiAgY29uc3Qge3Bvc2l0aW9uU3R5bGVzLCBjb250ZW50SGVpZ2h0fSA9IHVzZUxlZ2VuZFBvc2l0aW9uKHtcbiAgICBsZWdlbmRDb250ZW50UmVmLFxuICAgIGlzU2lkZVBhbmVsU2hvd24sXG4gICAgdGhlbWUsXG4gICAgc2V0dGluZ3MsXG4gICAgb25DaGFuZ2VTZXR0aW5nczogKCkgPT4ge1xuICAgICAgLy8gZG8gbm90aGluZyBieSBkZWZhdWx0XG4gICAgfVxuICB9KTtcblxuICBjb25zdCBwb3J0YWxSb290ID0gY29udGFpbmVyUmVmLmN1cnJlbnRcbiAgICA/LmNsb3Nlc3QoJy5leHBvcnQtbWFwLWluc3RhbmNlJylcbiAgICA/LnF1ZXJ5U2VsZWN0b3IoJyNkZWZhdWx0LWRlY2tnbC1vdmVybGF5LXdyYXBwZXInKTtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgcmVmPXtjb250YWluZXJSZWZ9PlxuICAgICAge3BvcnRhbFJvb3RcbiAgICAgICAgPyBjcmVhdGVQb3J0YWwoXG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZpeGVkLWxlZ2VuZFwiXG4gICAgICAgICAgICAgIHJlZj17bGVnZW5kQ29udGVudFJlZn1cbiAgICAgICAgICAgICAgc3R5bGU9e3suLi5wb3NpdGlvblN0eWxlcywgcG9zaXRpb246ICdhYnNvbHV0ZSd9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8U3R5bGVkRml4ZWRMZWdlbmRDb250ZW50IGNvbnRlbnRIZWlnaHQ9e2NvbnRlbnRIZWlnaHR9PlxuICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgICAgPC9TdHlsZWRGaXhlZExlZ2VuZENvbnRlbnQ+XG4gICAgICAgICAgICA8L2Rpdj4sXG4gICAgICAgICAgICBwb3J0YWxSb290XG4gICAgICAgICAgKVxuICAgICAgICA6IG51bGx9XG4gICAgPC9kaXY+XG4gICk7XG59KSBhcyBSZWFjdC5GQzxJbWFnZUV4cG9ydExlZ2VuZFByb3BzPjtcblxuTWFwTGVnZW5kUGFuZWxGYWN0b3J5LmRlcHMgPSBbTWFwQ29udHJvbFRvb2x0aXBGYWN0b3J5LCBNYXBDb250cm9sUGFuZWxGYWN0b3J5LCBNYXBMZWdlbmRGYWN0b3J5XTtcblxuaW50ZXJmYWNlIE1hcExlZ2VuZFBhbmVsSWNvbnMge1xuICBsZWdlbmQ6IENvbXBvbmVudFR5cGU8YW55Pjtcbn1cblxuZXhwb3J0IHR5cGUgTWFwTGVnZW5kUGFuZWxQcm9wcyA9IHtcbiAgdGhlbWU6IGFueTtcbiAgbGF5ZXJzOiBSZWFkb25seUFycmF5PExheWVyPjtcbiAgc2NhbGU6IG51bWJlcjtcbiAgb25Ub2dnbGVNYXBDb250cm9sOiAoY29udHJvbDogc3RyaW5nKSA9PiB2b2lkO1xuICBpc0V4cG9ydDogYm9vbGVhbjtcbiAgbG9nb0NvbXBvbmVudDogRWxlbWVudDtcbiAgYWN0aW9uSWNvbnM6IE1hcExlZ2VuZFBhbmVsSWNvbnM7XG4gIG1hcENvbnRyb2xzOiBNYXBDb250cm9scztcbiAgbWFwU3RhdGU/OiBNYXBTdGF0ZTtcbiAgb25MYXllclZpc0NvbmZpZ0NoYW5nZT86IChvbGRMYXllcjogTGF5ZXIsIG5ld1Zpc0NvbmZpZzogUGFydGlhbDxMYXllclZpc0NvbmZpZz4pID0+IHZvaWQ7XG4gIG9uVG9nZ2xlTGF5ZXJWaXNpYmlsaXR5PzogKGxheWVyOiBMYXllcikgPT4gdm9pZDtcbiAgb25Ub2dnbGVTcGxpdE1hcFZpZXdwb3J0PzogQWN0aW9uSGFuZGxlcjx0eXBlb2YgdG9nZ2xlU3BsaXRNYXBWaWV3cG9ydD47XG4gIGlzVmlld3BvcnRVbnN5bmNBbGxvd2VkPzogYm9vbGVhbjtcbiAgb25DbGlja0NvbnRyb2xCdG4/OiAoZT86IE1vdXNlRXZlbnQpID0+IHZvaWQ7XG4gIGNsYXNzTmFtZTogc3RyaW5nO1xuICBzZXR0aW5nczogTWFwTGVnZW5kQ29udHJvbFNldHRpbmdzO1xuICBpc1NpZGVQYW5lbFNob3duOiBib29sZWFuO1xuICBhY3RpdmVTaWRlUGFuZWw6IHN0cmluZyB8IG51bGw7XG4gIHNldE1hcENvbnRyb2xTZXR0aW5nczogYW55O1xufTtcblxudHlwZSBNYXBMZWdlbmRQYW5lbENvbXBvbmVudHMgPSB7XG4gIE1hcENvbnRyb2xUb29sdGlwOiBSZXR1cm5UeXBlPHR5cGVvZiBNYXBDb250cm9sVG9vbHRpcEZhY3Rvcnk+O1xuICBNYXBDb250cm9sUGFuZWw6IFJldHVyblR5cGU8dHlwZW9mIE1hcENvbnRyb2xQYW5lbEZhY3Rvcnk+O1xuICBNYXBMZWdlbmQ6IFJldHVyblR5cGU8dHlwZW9mIE1hcExlZ2VuZEZhY3Rvcnk+O1xufTtcblxudHlwZSBNYXBMZWdlbmRQYW5lbENvbXBvbmVudFR5cGUgPSBSZWFjdC5GQzxNYXBMZWdlbmRQYW5lbFByb3BzPjtcblxuY29uc3QgZGVmYXVsdEFjdGlvbkljb25zID0ge1xuICBsZWdlbmQ6IHByb3BzID0+IDxMZWdlbmQgey4uLnByb3BzfSBoZWlnaHQ9XCIxOHB4XCIgLz5cbn07XG5cbmNvbnN0IE1hcExlZ2VuZFBhbmVsQ29tcG9uZW50ID0gKHtcbiAgbGF5ZXJzLFxuICBtYXBDb250cm9scyxcbiAgc2NhbGUsXG4gIG9uVG9nZ2xlTWFwQ29udHJvbCxcbiAgaXNFeHBvcnQsXG4gIGxvZ29Db21wb25lbnQsXG4gIGFjdGlvbkljb25zID0gZGVmYXVsdEFjdGlvbkljb25zLFxuICBtYXBTdGF0ZSxcbiAgb25MYXllclZpc0NvbmZpZ0NoYW5nZSxcbiAgb25Ub2dnbGVMYXllclZpc2liaWxpdHksXG4gIG9uVG9nZ2xlU3BsaXRNYXBWaWV3cG9ydCxcbiAgb25DbGlja0NvbnRyb2xCdG4sXG4gIGFjdGl2ZVNpZGVQYW5lbCxcbiAgc2V0TWFwQ29udHJvbFNldHRpbmdzLFxuICBpc1ZpZXdwb3J0VW5zeW5jQWxsb3dlZCA9IHRydWUsXG4gIGNsYXNzTmFtZSxcbiAgTWFwQ29udHJvbFRvb2x0aXAsXG4gIE1hcENvbnRyb2xQYW5lbCxcbiAgTWFwTGVnZW5kXG59OiBNYXBMZWdlbmRQYW5lbFByb3BzICYgTWFwTGVnZW5kUGFuZWxDb21wb25lbnRzKSA9PiB7XG4gIGNvbnN0IGlzU2lkZVBhbmVsU2hvd24gPSBCb29sZWFuKGFjdGl2ZVNpZGVQYW5lbCk7XG4gIGNvbnN0IHNldHRpbmdzID0gbWFwQ29udHJvbHM/Lm1hcExlZ2VuZD8uc2V0dGluZ3M7XG5cbiAgY29uc3QgbWFwTGVnZW5kID0gbWFwQ29udHJvbHM/Lm1hcExlZ2VuZCB8fCAoe30gYXMgTWFwQ29udHJvbE1hcExlZ2VuZCk7XG4gIGNvbnN0IHthY3RpdmUsIGRpc2FibGVFZGl0fSA9IG1hcExlZ2VuZCB8fCB7fTtcbiAgY29uc3Qgcm9vdENvbnRleHQgPSB1c2VDb250ZXh0KFJvb3RDb250ZXh0KTtcblxuICBjb25zdCBvbkNsaWNrID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIG9uQ2xpY2tDb250cm9sQnRuPy4oKTtcbiAgICBpZiAobWFwQ29udHJvbHM/Lm1hcERyYXc/LmFjdGl2ZSkge1xuICAgICAgb25Ub2dnbGVNYXBDb250cm9sKCdtYXBEcmF3Jyk7XG4gICAgfVxuICAgIG9uVG9nZ2xlTWFwQ29udHJvbCgnbWFwTGVnZW5kJyk7XG4gIH0sIFtvbkNsaWNrQ29udHJvbEJ0biwgb25Ub2dnbGVNYXBDb250cm9sLCBtYXBDb250cm9sc10pO1xuICBjb25zdCBvbkNsb3NlQ2xpY2sgPSB1c2VDYWxsYmFjayhcbiAgICBlID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIG9uVG9nZ2xlTWFwQ29udHJvbCgnbWFwTGVnZW5kJyk7XG4gICAgfSxcbiAgICBbb25Ub2dnbGVNYXBDb250cm9sXVxuICApO1xuXG4gIGlmICghbWFwTGVnZW5kLnNob3cpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0IGxlZ2VuZFBhbmVsID0gYWN0aXZlID8gKFxuICAgIDxNYXBDb250cm9sUGFuZWxcbiAgICAgIHNjYWxlPXtzY2FsZX1cbiAgICAgIGhlYWRlcj1cImhlYWRlci5sYXllckxlZ2VuZFwiXG4gICAgICB7Li4ue29uQ2xpY2s6IG9uQ2xvc2VDbGljaywgcGlubmFibGU6IGZhbHNlLCBkaXNhYmxlQ2xvc2U6IGZhbHNlfX1cbiAgICAgIGlzRXhwb3J0PXtpc0V4cG9ydH1cbiAgICAgIGxvZ29Db21wb25lbnQ9e2xvZ29Db21wb25lbnR9XG4gICAgICBtYXBTdGF0ZT17bWFwU3RhdGV9XG4gICAgICBvblRvZ2dsZVNwbGl0TWFwVmlld3BvcnQ9e29uVG9nZ2xlU3BsaXRNYXBWaWV3cG9ydH1cbiAgICAgIGlzVmlld3BvcnRVbnN5bmNBbGxvd2VkPXtpc1ZpZXdwb3J0VW5zeW5jQWxsb3dlZH1cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgID5cbiAgICAgIDxNYXBMZWdlbmRcbiAgICAgICAgbGF5ZXJzPXtsYXllcnN9XG4gICAgICAgIG1hcFN0YXRlPXttYXBTdGF0ZX1cbiAgICAgICAgZGlzYWJsZUVkaXQ9e2Rpc2FibGVFZGl0fVxuICAgICAgICBpc0V4cG9ydD17aXNFeHBvcnR9XG4gICAgICAgIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2U9e29uTGF5ZXJWaXNDb25maWdDaGFuZ2V9XG4gICAgICAgIG9uVG9nZ2xlTGF5ZXJWaXNpYmlsaXR5PXtvblRvZ2dsZUxheWVyVmlzaWJpbGl0eX1cbiAgICAgIC8+XG4gICAgPC9NYXBDb250cm9sUGFuZWw+XG4gICkgOiBudWxsO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHthY3RpdmUgPyAoXG4gICAgICAgIGhhc1BvcnRhYmxlV2lkdGgoYnJlYWtQb2ludFZhbHVlcykgPyAoXG4gICAgICAgICAgbGVnZW5kUGFuZWxcbiAgICAgICAgKSA6IGlzRXhwb3J0ID8gKFxuICAgICAgICAgIDxJbWFnZUV4cG9ydExlZ2VuZCBpc1NpZGVQYW5lbFNob3duPXtpc1NpZGVQYW5lbFNob3dufSBzZXR0aW5ncz17c2V0dGluZ3N9PlxuICAgICAgICAgICAge2xlZ2VuZFBhbmVsfVxuICAgICAgICAgIDwvSW1hZ2VFeHBvcnRMZWdlbmQ+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgY3JlYXRlUG9ydGFsKFxuICAgICAgICAgICAgPERyYWdnYWJsZUxlZ2VuZFxuICAgICAgICAgICAgICBpc1NpZGVQYW5lbFNob3duPXtpc1NpZGVQYW5lbFNob3dufVxuICAgICAgICAgICAgICBtYXBDb250cm9scz17bWFwQ29udHJvbHN9XG4gICAgICAgICAgICAgIHNldE1hcENvbnRyb2xTZXR0aW5ncz17c2V0TWFwQ29udHJvbFNldHRpbmdzfVxuICAgICAgICAgICAgICBtYXBTdGF0ZT17bWFwU3RhdGV9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtsZWdlbmRQYW5lbH1cbiAgICAgICAgICAgIDwvRHJhZ2dhYmxlTGVnZW5kPixcbiAgICAgICAgICAgIHJvb3RDb250ZXh0Py5jdXJyZW50ID8/IGRvY3VtZW50LmJvZHlcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICkgOiBudWxsfVxuICAgICAgeyFpc0V4cG9ydCA/IChcbiAgICAgICAgPE1hcENvbnRyb2xUb29sdGlwIGlkPVwic2hvdy1sZWdlbmRcIiBtZXNzYWdlPVwidG9vbHRpcC5zaG93TGVnZW5kXCI+XG4gICAgICAgICAgPE1hcENvbnRyb2xCdXR0b24gY2xhc3NOYW1lPVwibWFwLWNvbnRyb2wtYnV0dG9uIHNob3ctbGVnZW5kXCIgb25DbGljaz17b25DbGlja30+XG4gICAgICAgICAgICA8YWN0aW9uSWNvbnMubGVnZW5kIGhlaWdodD1cIjIycHhcIiAvPlxuICAgICAgICAgIDwvTWFwQ29udHJvbEJ1dHRvbj5cbiAgICAgICAgPC9NYXBDb250cm9sVG9vbHRpcD5cbiAgICAgICkgOiBudWxsfVxuICAgIDwvPlxuICApO1xufTtcblxuZnVuY3Rpb24gTWFwTGVnZW5kUGFuZWxGYWN0b3J5KFxuICBNYXBDb250cm9sVG9vbHRpcDogUmV0dXJuVHlwZTx0eXBlb2YgTWFwQ29udHJvbFRvb2x0aXBGYWN0b3J5PixcbiAgTWFwQ29udHJvbFBhbmVsOiBSZXR1cm5UeXBlPHR5cGVvZiBNYXBDb250cm9sUGFuZWxGYWN0b3J5PixcbiAgTWFwTGVnZW5kOiBSZXR1cm5UeXBlPHR5cGVvZiBNYXBMZWdlbmRGYWN0b3J5PlxuKTogTWFwTGVnZW5kUGFuZWxDb21wb25lbnRUeXBlIHtcbiAgcmV0dXJuIChwcm9wczogTWFwTGVnZW5kUGFuZWxQcm9wcykgPT4gKFxuICAgIDxNYXBMZWdlbmRQYW5lbENvbXBvbmVudFxuICAgICAgey4uLnByb3BzfVxuICAgICAgTWFwQ29udHJvbFRvb2x0aXA9e01hcENvbnRyb2xUb29sdGlwfVxuICAgICAgTWFwQ29udHJvbFBhbmVsPXtNYXBDb250cm9sUGFuZWx9XG4gICAgICBNYXBMZWdlbmQ9e01hcExlZ2VuZH1cbiAgICAvPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBNYXBMZWdlbmRQYW5lbEZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsV0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsU0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsTUFBQSxHQUFBQyx1QkFBQSxDQUFBSCxPQUFBO0FBU0EsSUFBQUksaUJBQUEsR0FBQUQsdUJBQUEsQ0FBQUgsT0FBQTtBQUVBLElBQUFLLEtBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFVBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLE9BQUEsR0FBQVAsT0FBQTtBQUlBLElBQUFRLE9BQUEsR0FBQVIsT0FBQTtBQUVBLElBQUFTLE1BQUEsR0FBQVQsT0FBQTtBQUdBLElBQUFVLE1BQUEsR0FBQVYsT0FBQTtBQUNBLElBQUFXLGtCQUFBLEdBQUFYLE9BQUE7QUFDQSxJQUFBWSxRQUFBLEdBQUFaLE9BQUE7QUFDQSxJQUFBYSxtQkFBQSxHQUFBZCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQWMsZ0JBQUEsR0FBQWYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFlLGtCQUFBLEdBQUFoQixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQWdCLFVBQUEsR0FBQWpCLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBaUIsVUFBQSxHQUFBakIsT0FBQTtBQUF5RCxJQUFBa0IsZUFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQUFBQyxnQkFBQSxFQWxDekQ7QUFDQTtBQUFBLFNBQUFDLHlCQUFBQyxDQUFBLDZCQUFBQyxPQUFBLG1CQUFBQyxDQUFBLE9BQUFELE9BQUEsSUFBQUUsQ0FBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxDQUFBLFdBQUFBLENBQUEsR0FBQUcsQ0FBQSxHQUFBRCxDQUFBLEtBQUFGLENBQUE7QUFBQSxTQUFBcEIsd0JBQUFvQixDQUFBLEVBQUFFLENBQUEsU0FBQUEsQ0FBQSxJQUFBRixDQUFBLElBQUFBLENBQUEsQ0FBQUksVUFBQSxTQUFBSixDQUFBLGVBQUFBLENBQUEsZ0JBQUFLLE9BQUEsQ0FBQUwsQ0FBQSwwQkFBQUEsQ0FBQSxzQkFBQUEsQ0FBQSxRQUFBRyxDQUFBLEdBQUFKLHdCQUFBLENBQUFHLENBQUEsT0FBQUMsQ0FBQSxJQUFBQSxDQUFBLENBQUFHLEdBQUEsQ0FBQU4sQ0FBQSxVQUFBRyxDQUFBLENBQUFJLEdBQUEsQ0FBQVAsQ0FBQSxPQUFBUSxDQUFBLEtBQUFDLFNBQUEsVUFBQUMsQ0FBQSxHQUFBQyxNQUFBLENBQUFDLGNBQUEsSUFBQUQsTUFBQSxDQUFBRSx3QkFBQSxXQUFBQyxDQUFBLElBQUFkLENBQUEsb0JBQUFjLENBQUEsT0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFoQixDQUFBLEVBQUFjLENBQUEsU0FBQUcsQ0FBQSxHQUFBUCxDQUFBLEdBQUFDLE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQWIsQ0FBQSxFQUFBYyxDQUFBLFVBQUFHLENBQUEsS0FBQUEsQ0FBQSxDQUFBVixHQUFBLElBQUFVLENBQUEsQ0FBQUMsR0FBQSxJQUFBUCxNQUFBLENBQUFDLGNBQUEsQ0FBQUosQ0FBQSxFQUFBTSxDQUFBLEVBQUFHLENBQUEsSUFBQVQsQ0FBQSxDQUFBTSxDQUFBLElBQUFkLENBQUEsQ0FBQWMsQ0FBQSxZQUFBTixDQUFBLGNBQUFSLENBQUEsRUFBQUcsQ0FBQSxJQUFBQSxDQUFBLENBQUFlLEdBQUEsQ0FBQWxCLENBQUEsRUFBQVEsQ0FBQSxHQUFBQSxDQUFBO0FBQUEsU0FBQVcsUUFBQW5CLENBQUEsRUFBQUUsQ0FBQSxRQUFBQyxDQUFBLEdBQUFRLE1BQUEsQ0FBQVMsSUFBQSxDQUFBcEIsQ0FBQSxPQUFBVyxNQUFBLENBQUFVLHFCQUFBLFFBQUFDLENBQUEsR0FBQVgsTUFBQSxDQUFBVSxxQkFBQSxDQUFBckIsQ0FBQSxHQUFBRSxDQUFBLEtBQUFvQixDQUFBLEdBQUFBLENBQUEsQ0FBQUMsTUFBQSxXQUFBckIsQ0FBQSxXQUFBUyxNQUFBLENBQUFFLHdCQUFBLENBQUFiLENBQUEsRUFBQUUsQ0FBQSxFQUFBc0IsVUFBQSxPQUFBckIsQ0FBQSxDQUFBc0IsSUFBQSxDQUFBQyxLQUFBLENBQUF2QixDQUFBLEVBQUFtQixDQUFBLFlBQUFuQixDQUFBO0FBQUEsU0FBQXdCLGNBQUEzQixDQUFBLGFBQUFFLENBQUEsTUFBQUEsQ0FBQSxHQUFBMEIsU0FBQSxDQUFBQyxNQUFBLEVBQUEzQixDQUFBLFVBQUFDLENBQUEsV0FBQXlCLFNBQUEsQ0FBQTFCLENBQUEsSUFBQTBCLFNBQUEsQ0FBQTFCLENBQUEsUUFBQUEsQ0FBQSxPQUFBaUIsT0FBQSxDQUFBUixNQUFBLENBQUFSLENBQUEsT0FBQTJCLE9BQUEsV0FBQTVCLENBQUEsUUFBQTZCLGdCQUFBLGFBQUEvQixDQUFBLEVBQUFFLENBQUEsRUFBQUMsQ0FBQSxDQUFBRCxDQUFBLFNBQUFTLE1BQUEsQ0FBQXFCLHlCQUFBLEdBQUFyQixNQUFBLENBQUFzQixnQkFBQSxDQUFBakMsQ0FBQSxFQUFBVyxNQUFBLENBQUFxQix5QkFBQSxDQUFBN0IsQ0FBQSxLQUFBZ0IsT0FBQSxDQUFBUixNQUFBLENBQUFSLENBQUEsR0FBQTJCLE9BQUEsV0FBQTVCLENBQUEsSUFBQVMsTUFBQSxDQUFBQyxjQUFBLENBQUFaLENBQUEsRUFBQUUsQ0FBQSxFQUFBUyxNQUFBLENBQUFFLHdCQUFBLENBQUFWLENBQUEsRUFBQUQsQ0FBQSxpQkFBQUYsQ0FBQTtBQW1DQSxJQUFNa0MsY0FBYyxHQUFHLG1CQUFtQjtBQUMxQyxJQUFNQyxZQUFZLEdBQUcsaUJBQWlCO0FBRXRDLElBQU1DLDRCQUE0QixHQUFHQyw0QkFBTSxDQUFDQyxHQUFHLENBQUEzQyxlQUFBLEtBQUFBLGVBQUEsT0FBQTRDLHVCQUFBLGd4QkE4QjNCLFVBQUFDLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ0MsV0FBVztBQUFBLEdBR2xDLFVBQUFGLEtBQUs7RUFBQSxPQUNqQkEsS0FBSyxDQUFDRyxnQkFBZ0IsTUFBQUMsTUFBQSxDQUFNSixLQUFLLENBQUNHLGdCQUFnQixVQUFPLHFCQUFxQjtBQUFBLEdBQzlFLFVBQUFILEtBQUs7RUFBQSxPQUFLQSxLQUFLLENBQUNLLGFBQWEsY0FBQUQsTUFBQSxDQUFjSixLQUFLLENBQUNLLGFBQWEsV0FBUSxFQUFFO0FBQUEsQ0FBQyxDQU85RTtBQUVELElBQU1DLGdCQUFnQixHQUFHVCw0QkFBTSxDQUFDQyxHQUFHLENBQUExQyxnQkFBQSxLQUFBQSxnQkFBQSxPQUFBMkMsdUJBQUEsc1lBaUJiLFVBQUFDLEtBQUs7RUFBQSxPQUFJQSxLQUFLLENBQUNDLEtBQUssQ0FBQ0MsV0FBVztBQUFBLEVBQ3JEO0FBRUQsSUFBTUssa0JBQWtCLEdBQUdWLDRCQUFNLENBQUNDLEdBQUcsQ0FBQXpDLGdCQUFBLEtBQUFBLGdCQUFBLE9BQUEwQyx1QkFBQSxvWEFpQnBDO0FBRUQsSUFBTVMsd0JBQXdCLEdBQUdYLDRCQUFNLENBQUNDLEdBQUcsQ0FBQXhDLGdCQUFBLEtBQUFBLGdCQUFBLE9BQUF5Qyx1QkFBQSwrYkFHckMsVUFBQUMsS0FBSztFQUFBLE9BQUtBLEtBQUssQ0FBQ0ssYUFBYSxjQUFBRCxNQUFBLENBQWNKLEtBQUssQ0FBQ0ssYUFBYSxXQUFRLEVBQUU7QUFBQSxDQUFDLENBWTlFO0FBZUQsSUFBTUksc0JBQXNCLGdCQUFHLElBQUFDLGlCQUFVLEVBQUMsVUFBQ1YsS0FBa0MsRUFBRVcsR0FBRyxFQUFLO0VBQ3JGLElBQU9DLGNBQWMsR0FBK0NaLEtBQUssQ0FBbEVZLGNBQWM7SUFBRUMsUUFBUSxHQUFxQ2IsS0FBSyxDQUFsRGEsUUFBUTtJQUFFUixhQUFhLEdBQXNCTCxLQUFLLENBQXhDSyxhQUFhO0lBQUVGLGdCQUFnQixHQUFJSCxLQUFLLENBQXpCRyxnQkFBZ0I7RUFDaEUsSUFBTVcsYUFBYSxHQUFHLElBQUFDLGtCQUFZLEVBQUM7SUFBQ0MsRUFBRSxFQUFFckI7RUFBWSxDQUFDLENBQUM7RUFDdEQsSUFBTXNCLGVBQWUsR0FBRyxJQUFBRixrQkFBWSxFQUFDO0lBQUNDLEVBQUUsRUFBRXRCO0VBQWMsQ0FBQyxDQUFDO0VBQzFELElBQU13QixJQUFJLEdBQUcsSUFBQUMsb0JBQVksRUFBQyxDQUFDTCxhQUFhLENBQUNNLFVBQVUsRUFBRVQsR0FBRyxDQUFDLENBQUM7RUFDMUQsSUFBTVUsVUFBVSxHQUFHUCxhQUFhLENBQUNPLFVBQVUsSUFBSUosZUFBZSxDQUFDSSxVQUFVO0VBQ3pFLG9CQUNFbEYsTUFBQSxZQUFBbUYsYUFBQSxDQUFDMUIsNEJBQTRCLE1BQUEyQixTQUFBO0lBQzNCWixHQUFHLEVBQUVPLElBQUs7SUFDVk0sU0FBUyxFQUFFLElBQUFDLHNCQUFVLEVBQUMsa0JBQWtCLEVBQUU7TUFBQyxhQUFhLEVBQUVKO0lBQVUsQ0FBQyxDQUFFO0lBQ3ZFSyxLQUFLLEVBQUF2QyxhQUFBLENBQUFBLGFBQUEsS0FBTXlCLGNBQWM7TUFBRWUsU0FBUyxFQUFFQyxjQUFHLENBQUNDLFNBQVMsQ0FBQ0MsUUFBUSxDQUFDaEIsYUFBYSxDQUFDYSxTQUFTO0lBQUMsRUFBRTtJQUN2RnRCLGFBQWEsRUFBRUEsYUFBYztJQUM3QkYsZ0JBQWdCLEVBQUVBO0VBQWlCLEdBQy9CVyxhQUFhLENBQUNpQixVQUFVLEdBRTNCbEIsUUFBUSxFQUNSUSxVQUFVLGdCQUFHbEYsTUFBQSxZQUFBbUYsYUFBQTtJQUFLRSxTQUFTLEVBQUM7RUFBb0IsQ0FBRSxDQUFDLEdBQUcsSUFBSSxlQUMzRHJGLE1BQUEsWUFBQW1GLGFBQUEsQ0FBQ2hCLGdCQUFnQixNQUFBaUIsU0FBQTtJQUFDQyxTQUFTLEVBQUM7RUFBb0IsR0FBS1YsYUFBYSxDQUFDa0IsU0FBUyxnQkFDMUU3RixNQUFBLFlBQUFtRixhQUFBLENBQUMzRSxNQUFBLENBQUFzRixhQUFhO0lBQUNDLE1BQU0sRUFBQztFQUFNLENBQUUsQ0FDZCxDQUFDLGVBQ25CL0YsTUFBQSxZQUFBbUYsYUFBQSxDQUFDZixrQkFBa0IsTUFBQWdCLFNBQUE7SUFDakJDLFNBQVMsRUFBQyxzQkFBc0I7SUFDaENiLEdBQUcsRUFBRU0sZUFBZSxDQUFDRztFQUFXLEdBQzVCSCxlQUFlLENBQUNlLFNBQVMsZ0JBRTdCN0YsTUFBQSxZQUFBbUYsYUFBQSxDQUFDM0UsTUFBQSxDQUFBd0Ysc0JBQXNCO0lBQUNELE1BQU0sRUFBQztFQUFNLENBQUUsQ0FDckIsQ0FDUSxDQUFDO0FBRW5DLENBQUMsQ0FBQztBQVNGLElBQU1FLGVBQWUsR0FBRyxJQUFBQywyQkFBUyxFQUMvQixVQUFBQyxJQUFBLEVBTzJDO0VBQUEsSUFBQUMscUJBQUE7RUFBQSxJQU56Q0MsZ0JBQWdCLEdBQUFGLElBQUEsQ0FBaEJFLGdCQUFnQjtJQUNoQjNCLFFBQVEsR0FBQXlCLElBQUEsQ0FBUnpCLFFBQVE7SUFDUjRCLFdBQVcsR0FBQUgsSUFBQSxDQUFYRyxXQUFXO0lBQ1hDLHFCQUFxQixHQUFBSixJQUFBLENBQXJCSSxxQkFBcUI7SUFDckJDLFFBQVEsR0FBQUwsSUFBQSxDQUFSSyxRQUFRO0lBQ1IxQyxLQUFLLEdBQUFxQyxJQUFBLENBQUxyQyxLQUFLO0VBRUwsSUFBTTJDLFFBQVEsR0FBR0gsV0FBVyxhQUFYQSxXQUFXLGdCQUFBRixxQkFBQSxHQUFYRSxXQUFXLENBQUVJLFNBQVMsY0FBQU4scUJBQUEsdUJBQXRCQSxxQkFBQSxDQUF3QkssUUFBUTtFQUVqRCxJQUFNRSxnQkFBZ0IsR0FBRyxJQUFBQyxhQUFNLEVBQWMsSUFBSSxDQUFDO0VBQ2xELElBQU1DLGdCQUFnQixHQUFHLElBQUFDLGtCQUFXLEVBQ2xDLFVBQUFDLFdBQVc7SUFBQSxPQUFJUixxQkFBcUIsQ0FBQyxXQUFXLEVBQUVRLFdBQVcsQ0FBQztFQUFBLEdBQzlELENBQUNSLHFCQUFxQixDQUN4QixDQUFDO0VBQ0QsSUFBQVMsa0JBQUEsR0FDRSxJQUFBQyw4QkFBaUIsRUFBQztNQUNoQk4sZ0JBQWdCLEVBQWhCQSxnQkFBZ0I7TUFDaEJOLGdCQUFnQixFQUFoQkEsZ0JBQWdCO01BQ2hCdkMsS0FBSyxFQUFMQSxLQUFLO01BQ0wyQyxRQUFRLEVBQVJBLFFBQVE7TUFDUkksZ0JBQWdCLEVBQWhCQSxnQkFBZ0I7TUFDaEJLLFNBQVMsRUFBRVYsUUFBUSxhQUFSQSxRQUFRLHVCQUFSQSxRQUFRLENBQUVULE1BQU07TUFDM0JvQixRQUFRLEVBQUVYLFFBQVEsYUFBUkEsUUFBUSx1QkFBUkEsUUFBUSxDQUFFWTtJQUN0QixDQUFDLENBQUM7SUFURzNDLGNBQWMsR0FBQXVDLGtCQUFBLENBQWR2QyxjQUFjO0lBQUU0QyxjQUFjLEdBQUFMLGtCQUFBLENBQWRLLGNBQWM7SUFBRUMsV0FBVyxHQUFBTixrQkFBQSxDQUFYTSxXQUFXO0lBQUVDLE1BQU0sR0FBQVAsa0JBQUEsQ0FBTk8sTUFBTTtJQUFFckQsYUFBYSxHQUFBOEMsa0JBQUEsQ0FBYjlDLGFBQWE7SUFBRUYsZ0JBQWdCLEdBQUFnRCxrQkFBQSxDQUFoQmhELGdCQUFnQjtFQVczRixJQUFNd0QsZUFBZSxHQUFHLElBQUFWLGtCQUFXLEVBQ2pDLFVBQUFXLEtBQUssRUFBSTtJQUNQLFFBQVFBLEtBQUssQ0FBQ0MsTUFBTSxDQUFDN0MsRUFBRTtNQUNyQixLQUFLdEIsY0FBYztRQUNqQitELFdBQVcsQ0FBQyxDQUFDO1FBQ2I7TUFDRjtRQUNFRCxjQUFjLENBQUMsQ0FBQztJQUNwQjtFQUNGLENBQUMsRUFDRCxDQUFDQSxjQUFjLEVBQUVDLFdBQVcsQ0FDOUIsQ0FBQztFQUNELElBQU1LLGFBQWEsR0FBRyxJQUFBYixrQkFBVyxFQUFDTyxjQUFjLEVBQUUsQ0FBQ0EsY0FBYyxDQUFDLENBQUM7RUFDbkUsSUFBTU8sY0FBYyxHQUFHLElBQUFkLGtCQUFXLEVBQ2hDLFVBQUFXLEtBQUssRUFBSTtJQUNQLFFBQVFBLEtBQUssQ0FBQ0MsTUFBTSxDQUFDN0MsRUFBRTtNQUNyQixLQUFLdEIsY0FBYztRQUNqQmdFLE1BQU0sQ0FBQ0UsS0FBSyxDQUFDSSxLQUFLLENBQUNDLENBQUMsQ0FBQztRQUNyQjtJQUNKO0VBQ0YsQ0FBQyxFQUNELENBQUNQLE1BQU0sQ0FDVCxDQUFDO0VBRUQsb0JBQ0V2SCxNQUFBLFlBQUFtRixhQUFBLENBQUNoRixLQUFBLENBQUE0SCxVQUFVO0lBQ1RDLFdBQVcsRUFBRVIsZUFBZ0I7SUFDN0JTLFVBQVUsRUFBRUwsY0FBZTtJQUMzQk0sU0FBUyxFQUFFUCxhQUFjO0lBQ3pCUSxTQUFTLEVBQUUsQ0FBQ0MsZ0NBQXFCO0VBQUUsZ0JBRW5DcEksTUFBQSxZQUFBbUYsYUFBQSxDQUFDYixzQkFBc0I7SUFDckJFLEdBQUcsRUFBRW1DLGdCQUFpQjtJQUN0QmxDLGNBQWMsRUFBRUEsY0FBZTtJQUMvQlAsYUFBYSxFQUFFQSxhQUFjO0lBQzdCRixnQkFBZ0IsRUFBRUE7RUFBaUIsR0FFbENVLFFBQ3FCLENBQ2QsQ0FBQztBQUVqQixDQUNGLENBQTZCO0FBUTdCLElBQU0yRCxpQkFBaUIsR0FBRyxJQUFBbkMsMkJBQVMsRUFBQyxVQUFBb0MsS0FBQSxFQUFtRDtFQUFBLElBQUFDLHFCQUFBO0VBQUEsSUFBakQ5QixRQUFRLEdBQUE2QixLQUFBLENBQVI3QixRQUFRO0lBQUVKLGdCQUFnQixHQUFBaUMsS0FBQSxDQUFoQmpDLGdCQUFnQjtJQUFFdkMsS0FBSyxHQUFBd0UsS0FBQSxDQUFMeEUsS0FBSztJQUFFWSxRQUFRLEdBQUE0RCxLQUFBLENBQVI1RCxRQUFRO0VBQy9FLElBQU04RCxZQUEyRCxHQUFHLElBQUE1QixhQUFNLEVBQUMsSUFBSSxDQUFDO0VBQ2hGLElBQU1ELGdCQUErRCxHQUFHLElBQUFDLGFBQU0sRUFBQyxJQUFJLENBQUM7RUFFcEYsSUFBQTZCLG1CQUFBLEdBQXdDLElBQUF4Qiw4QkFBaUIsRUFBQztNQUN4RE4sZ0JBQWdCLEVBQWhCQSxnQkFBZ0I7TUFDaEJOLGdCQUFnQixFQUFoQkEsZ0JBQWdCO01BQ2hCdkMsS0FBSyxFQUFMQSxLQUFLO01BQ0wyQyxRQUFRLEVBQVJBLFFBQVE7TUFDUkksZ0JBQWdCLEVBQUUsU0FBbEJBLGdCQUFnQkEsQ0FBQSxFQUFRO1FBQ3RCO01BQUE7SUFFSixDQUFDLENBQUM7SUFSS3BDLGNBQWMsR0FBQWdFLG1CQUFBLENBQWRoRSxjQUFjO0lBQUVQLGFBQWEsR0FBQXVFLG1CQUFBLENBQWJ2RSxhQUFhO0VBVXBDLElBQU13RSxVQUFVLElBQUFILHFCQUFBLEdBQUdDLFlBQVksQ0FBQ0csT0FBTyxjQUFBSixxQkFBQSxnQkFBQUEscUJBQUEsR0FBcEJBLHFCQUFBLENBQ2ZLLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxjQUFBTCxxQkFBQSx1QkFEaEJBLHFCQUFBLENBRWZNLGFBQWEsQ0FBQyxpQ0FBaUMsQ0FBQztFQUVwRCxvQkFDRTdJLE1BQUEsWUFBQW1GLGFBQUE7SUFBS1gsR0FBRyxFQUFFZ0U7RUFBYSxHQUNwQkUsVUFBVSxnQkFDUCxJQUFBSSxzQkFBWSxnQkFDVjlJLE1BQUEsWUFBQW1GLGFBQUE7SUFDRUUsU0FBUyxFQUFDLGNBQWM7SUFDeEJiLEdBQUcsRUFBRW1DLGdCQUFpQjtJQUN0QnBCLEtBQUssRUFBQXZDLGFBQUEsQ0FBQUEsYUFBQSxLQUFNeUIsY0FBYztNQUFFc0UsUUFBUSxFQUFFO0lBQVU7RUFBRSxnQkFFakQvSSxNQUFBLFlBQUFtRixhQUFBLENBQUNkLHdCQUF3QjtJQUFDSCxhQUFhLEVBQUVBO0VBQWMsR0FDcERRLFFBQ3VCLENBQ3ZCLENBQUMsRUFDTmdFLFVBQ0YsQ0FBQyxHQUNELElBQ0QsQ0FBQztBQUVWLENBQUMsQ0FBcUM7QUFFdENNLHFCQUFxQixDQUFDQyxJQUFJLEdBQUcsQ0FBQ0MsNkJBQXdCLEVBQUVDLDJCQUFzQixFQUFFQyxxQkFBZ0IsQ0FBQztBQW9DakcsSUFBTUMsa0JBQWtCLEdBQUc7RUFDekJDLE1BQU0sRUFBRSxTQUFSQSxNQUFNQSxDQUFFekYsS0FBSztJQUFBLG9CQUFJN0QsTUFBQSxZQUFBbUYsYUFBQSxDQUFDM0UsTUFBQSxDQUFBK0ksTUFBTSxNQUFBbkUsU0FBQSxpQkFBS3ZCLEtBQUs7TUFBRWtDLE1BQU0sRUFBQztJQUFNLEVBQUUsQ0FBQztFQUFBO0FBQ3RELENBQUM7QUFFRCxJQUFNeUQsdUJBQXVCLEdBQUcsU0FBMUJBLHVCQUF1QkEsQ0FBQUMsS0FBQSxFQW9CeUI7RUFBQSxJQUFBQyxzQkFBQSxFQUFBQyxvQkFBQTtFQUFBLElBbkJwREMsTUFBTSxHQUFBSCxLQUFBLENBQU5HLE1BQU07SUFDTnRELFdBQVcsR0FBQW1ELEtBQUEsQ0FBWG5ELFdBQVc7SUFDWHVELEtBQUssR0FBQUosS0FBQSxDQUFMSSxLQUFLO0lBQ0xDLGtCQUFrQixHQUFBTCxLQUFBLENBQWxCSyxrQkFBa0I7SUFDbEJDLFFBQVEsR0FBQU4sS0FBQSxDQUFSTSxRQUFRO0lBQ1JDLGFBQWEsR0FBQVAsS0FBQSxDQUFiTyxhQUFhO0lBQUFDLGlCQUFBLEdBQUFSLEtBQUEsQ0FDYlMsV0FBVztJQUFYQSxXQUFXLEdBQUFELGlCQUFBLGNBQUdaLGtCQUFrQixHQUFBWSxpQkFBQTtJQUNoQ3pELFFBQVEsR0FBQWlELEtBQUEsQ0FBUmpELFFBQVE7SUFDUjJELHNCQUFzQixHQUFBVixLQUFBLENBQXRCVSxzQkFBc0I7SUFDdEJDLHVCQUF1QixHQUFBWCxLQUFBLENBQXZCVyx1QkFBdUI7SUFDdkJDLHdCQUF3QixHQUFBWixLQUFBLENBQXhCWSx3QkFBd0I7SUFDeEJDLGlCQUFpQixHQUFBYixLQUFBLENBQWpCYSxpQkFBaUI7SUFDakJDLGVBQWUsR0FBQWQsS0FBQSxDQUFmYyxlQUFlO0lBQ2ZoRSxxQkFBcUIsR0FBQWtELEtBQUEsQ0FBckJsRCxxQkFBcUI7SUFBQWlFLHFCQUFBLEdBQUFmLEtBQUEsQ0FDckJnQix1QkFBdUI7SUFBdkJBLHVCQUF1QixHQUFBRCxxQkFBQSxjQUFHLElBQUksR0FBQUEscUJBQUE7SUFDOUJuRixTQUFTLEdBQUFvRSxLQUFBLENBQVRwRSxTQUFTO0lBQ1RxRixpQkFBaUIsR0FBQWpCLEtBQUEsQ0FBakJpQixpQkFBaUI7SUFDakJDLGVBQWUsR0FBQWxCLEtBQUEsQ0FBZmtCLGVBQWU7SUFDZkMsU0FBUyxHQUFBbkIsS0FBQSxDQUFUbUIsU0FBUztFQUVULElBQU12RSxnQkFBZ0IsR0FBR3dFLE9BQU8sQ0FBQ04sZUFBZSxDQUFDO0VBQ2pELElBQU05RCxRQUFRLEdBQUdILFdBQVcsYUFBWEEsV0FBVyxnQkFBQW9ELHNCQUFBLEdBQVhwRCxXQUFXLENBQUVJLFNBQVMsY0FBQWdELHNCQUFBLHVCQUF0QkEsc0JBQUEsQ0FBd0JqRCxRQUFRO0VBRWpELElBQU1DLFNBQVMsR0FBRyxDQUFBSixXQUFXLGFBQVhBLFdBQVcsdUJBQVhBLFdBQVcsQ0FBRUksU0FBUyxLQUFLLENBQUMsQ0FBeUI7RUFDdkUsSUFBQW9FLEtBQUEsR0FBOEJwRSxTQUFTLElBQUksQ0FBQyxDQUFDO0lBQXRDZ0IsTUFBTSxHQUFBb0QsS0FBQSxDQUFOcEQsTUFBTTtJQUFFcUQsV0FBVyxHQUFBRCxLQUFBLENBQVhDLFdBQVc7RUFDMUIsSUFBTUMsV0FBVyxHQUFHLElBQUFDLGlCQUFVLEVBQUNDLG9CQUFXLENBQUM7RUFFM0MsSUFBTUMsT0FBTyxHQUFHLElBQUFyRSxrQkFBVyxFQUFDLFlBQU07SUFBQSxJQUFBc0Usb0JBQUE7SUFDaENkLGlCQUFpQixhQUFqQkEsaUJBQWlCLGVBQWpCQSxpQkFBaUIsQ0FBRyxDQUFDO0lBQ3JCLElBQUloRSxXQUFXLGFBQVhBLFdBQVcsZ0JBQUE4RSxvQkFBQSxHQUFYOUUsV0FBVyxDQUFFK0UsT0FBTyxjQUFBRCxvQkFBQSxlQUFwQkEsb0JBQUEsQ0FBc0IxRCxNQUFNLEVBQUU7TUFDaENvQyxrQkFBa0IsQ0FBQyxTQUFTLENBQUM7SUFDL0I7SUFDQUEsa0JBQWtCLENBQUMsV0FBVyxDQUFDO0VBQ2pDLENBQUMsRUFBRSxDQUFDUSxpQkFBaUIsRUFBRVIsa0JBQWtCLEVBQUV4RCxXQUFXLENBQUMsQ0FBQztFQUN4RCxJQUFNZ0YsWUFBWSxHQUFHLElBQUF4RSxrQkFBVyxFQUM5QixVQUFBekYsQ0FBQyxFQUFJO0lBQ0hBLENBQUMsQ0FBQ2tLLGNBQWMsQ0FBQyxDQUFDO0lBQ2xCekIsa0JBQWtCLENBQUMsV0FBVyxDQUFDO0VBQ2pDLENBQUMsRUFDRCxDQUFDQSxrQkFBa0IsQ0FDckIsQ0FBQztFQUVELElBQUksQ0FBQ3BELFNBQVMsQ0FBQzhFLElBQUksRUFBRTtJQUNuQixPQUFPLElBQUk7RUFDYjtFQUVBLElBQU1DLFdBQVcsR0FBRy9ELE1BQU0sZ0JBQ3hCMUgsTUFBQSxZQUFBbUYsYUFBQSxDQUFDd0YsZUFBZTtJQUNkZCxLQUFLLEVBQUVBLEtBQU07SUFDYjZCLE1BQU0sRUFBQyxvQkFBb0I7SUFDdEJQLE9BQU8sRUFBRUcsWUFBWTtJQUFFSyxRQUFRLEVBQUUsS0FBSztJQUFFQyxZQUFZLEVBQUUsS0FBSztJQUNoRTdCLFFBQVEsRUFBRUEsUUFBUztJQUNuQkMsYUFBYSxFQUFFQSxhQUFjO0lBQzdCeEQsUUFBUSxFQUFFQSxRQUFTO0lBQ25CNkQsd0JBQXdCLEVBQUVBLHdCQUF5QjtJQUNuREksdUJBQXVCLEVBQUVBLHVCQUF3QjtJQUNqRHBGLFNBQVMsRUFBRUE7RUFBVSxnQkFFckJyRixNQUFBLFlBQUFtRixhQUFBLENBQUN5RixTQUFTO0lBQ1JoQixNQUFNLEVBQUVBLE1BQU87SUFDZnBELFFBQVEsRUFBRUEsUUFBUztJQUNuQnVFLFdBQVcsRUFBRUEsV0FBWTtJQUN6QmhCLFFBQVEsRUFBRUEsUUFBUztJQUNuQkksc0JBQXNCLEVBQUVBLHNCQUF1QjtJQUMvQ0MsdUJBQXVCLEVBQUVBO0VBQXdCLENBQ2xELENBQ2MsQ0FBQyxHQUNoQixJQUFJO0VBRVIsb0JBQ0VwSyxNQUFBLFlBQUFtRixhQUFBLENBQUFuRixNQUFBLFlBQUE2TCxRQUFBLFFBQ0duRSxNQUFNLEdBQ0wsSUFBQW9FLHVCQUFnQixFQUFDQyx3QkFBZ0IsQ0FBQyxHQUNoQ04sV0FBVyxHQUNUMUIsUUFBUSxnQkFDVi9KLE1BQUEsWUFBQW1GLGFBQUEsQ0FBQ2tELGlCQUFpQjtJQUFDaEMsZ0JBQWdCLEVBQUVBLGdCQUFpQjtJQUFDSSxRQUFRLEVBQUVBO0VBQVMsR0FDdkVnRixXQUNnQixDQUFDLGtCQUVwQixJQUFBM0Msc0JBQVksZ0JBQ1Y5SSxNQUFBLFlBQUFtRixhQUFBLENBQUNjLGVBQWU7SUFDZEksZ0JBQWdCLEVBQUVBLGdCQUFpQjtJQUNuQ0MsV0FBVyxFQUFFQSxXQUFZO0lBQ3pCQyxxQkFBcUIsRUFBRUEscUJBQXNCO0lBQzdDQyxRQUFRLEVBQUVBO0VBQVMsR0FFbEJpRixXQUNjLENBQUMsR0FBQTlCLG9CQUFBLEdBQ2xCcUIsV0FBVyxhQUFYQSxXQUFXLHVCQUFYQSxXQUFXLENBQUVyQyxPQUFPLGNBQUFnQixvQkFBQSxjQUFBQSxvQkFBQSxHQUFJcUMsUUFBUSxDQUFDQyxJQUNuQyxDQUFDLENBQ0YsR0FDQyxJQUFJLEVBQ1AsQ0FBQ2xDLFFBQVEsZ0JBQ1IvSixNQUFBLFlBQUFtRixhQUFBLENBQUN1RixpQkFBaUI7SUFBQzdGLEVBQUUsRUFBQyxhQUFhO0lBQUNxSCxPQUFPLEVBQUM7RUFBb0IsZ0JBQzlEbE0sTUFBQSxZQUFBbUYsYUFBQSxDQUFDMUUsa0JBQUEsQ0FBQTBMLGdCQUFnQjtJQUFDOUcsU0FBUyxFQUFDLGdDQUFnQztJQUFDOEYsT0FBTyxFQUFFQTtFQUFRLGdCQUM1RW5MLE1BQUEsWUFBQW1GLGFBQUEsQ0FBQytFLFdBQVcsQ0FBQ1osTUFBTTtJQUFDdkQsTUFBTSxFQUFDO0VBQU0sQ0FBRSxDQUNuQixDQUNELENBQUMsR0FDbEIsSUFDSixDQUFDO0FBRVAsQ0FBQztBQUVELFNBQVNpRCxxQkFBcUJBLENBQzVCMEIsaUJBQThELEVBQzlEQyxlQUEwRCxFQUMxREMsU0FBOEMsRUFDakI7RUFDN0IsT0FBTyxVQUFDL0csS0FBMEI7SUFBQSxvQkFDaEM3RCxNQUFBLFlBQUFtRixhQUFBLENBQUNxRSx1QkFBdUIsTUFBQXBFLFNBQUEsaUJBQ2xCdkIsS0FBSztNQUNUNkcsaUJBQWlCLEVBQUVBLGlCQUFrQjtNQUNyQ0MsZUFBZSxFQUFFQSxlQUFnQjtNQUNqQ0MsU0FBUyxFQUFFQTtJQUFVLEVBQ3RCLENBQUM7RUFBQSxDQUNIO0FBQ0g7QUFBQyxJQUFBd0IsUUFBQSxHQUFBQyxPQUFBLGNBRWNyRCxxQkFBcUIiLCJpZ25vcmVMaXN0IjpbXX0=
|
|
294
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJyZXF1aXJlIiwiX3JlYWN0RG9tIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9jb3JlIiwiX3V0aWxpdGllcyIsIl9yZWFjdDIiLCJfY29uc3RhbnRzIiwiX3N0eWxlcyIsIl91dGlscyIsIl9pY29ucyIsIl9zdHlsZWRDb21wb25lbnRzMiIsIl9jb250ZXh0IiwiX3VzZUxlZ2VuZFBvc2l0aW9uMyIsIl9tYXBDb250cm9sUGFuZWwiLCJfbWFwQ29udHJvbFRvb2x0aXAiLCJfbWFwTGVnZW5kIiwiX21vZGlmaWVycyIsIl90ZW1wbGF0ZU9iamVjdCIsIl90ZW1wbGF0ZU9iamVjdDIiLCJfdGVtcGxhdGVPYmplY3QzIiwiX3RlbXBsYXRlT2JqZWN0NCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIkRSQUdfUkVTSVpFX0lEIiwiRFJBR19NT1ZFX0lEIiwiU3R5bGVkRHJhZ2dhYmxlTGVnZW5kQ29udGVudCIsInN0eWxlZCIsImRpdiIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwicHJvcHMiLCJ0aGVtZSIsImFjdGl2ZUNvbG9yIiwiJG1heENvbnRlbnRIZWlnaHQiLCJjb25jYXQiLCIkY29udGVudEhlaWdodCIsIlN0eWxlZE1vdmVIYW5kbGUiLCJTdHlsZWRSZXNpemVIYW5kbGUiLCJTdHlsZWRGaXhlZExlZ2VuZENvbnRlbnQiLCJEcmFnZ2FibGVMZWdlbmRDb250ZW50IiwiZm9yd2FyZFJlZiIsInJlZiIsInBvc2l0aW9uU3R5bGVzIiwiY2hpbGRyZW4iLCJjb250ZW50SGVpZ2h0IiwibWF4Q29udGVudEhlaWdodCIsImRyYWdnYWJsZU1vdmUiLCJ1c2VEcmFnZ2FibGUiLCJpZCIsImRyYWdnYWJsZVJlc2l6ZSIsInJlZnMiLCJ1c2VNZXJnZVJlZnMiLCJzZXROb2RlUmVmIiwiaXNEcmFnZ2luZyIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kczIiLCJjbGFzc05hbWUiLCJjbGFzc25hbWVzIiwic3R5bGUiLCJ0cmFuc2Zvcm0iLCJDU1MiLCJUcmFuc2xhdGUiLCJ0b1N0cmluZyIsImF0dHJpYnV0ZXMiLCJsaXN0ZW5lcnMiLCJEcmFnZ2FibGVEb3RzIiwiaGVpZ2h0IiwiSG9yaXpvbnRhbFJlc2l6ZUhhbmRsZSIsIkRyYWdnYWJsZUxlZ2VuZCIsIndpdGhUaGVtZSIsIl9yZWYiLCJfbWFwQ29udHJvbHMkbWFwTGVnZW4iLCJpc1NpZGVQYW5lbFNob3duIiwibWFwQ29udHJvbHMiLCJzZXRNYXBDb250cm9sU2V0dGluZ3MiLCJtYXBTdGF0ZSIsInNldHRpbmdzIiwibWFwTGVnZW5kIiwibGVnZW5kQ29udGVudFJlZiIsInVzZVJlZiIsIm9uQ2hhbmdlU2V0dGluZ3MiLCJ1c2VDYWxsYmFjayIsIm5ld1NldHRpbmdzIiwiX3VzZUxlZ2VuZFBvc2l0aW9uIiwidXNlTGVnZW5kUG9zaXRpb24iLCJtYXBIZWlnaHQiLCJtYXBXaWR0aCIsIndpZHRoIiwidXBkYXRlUG9zaXRpb24iLCJzdGFydFJlc2l6ZSIsInJlc2l6ZSIsImhhbmRsZURyYWdTdGFydCIsImV2ZW50IiwiYWN0aXZlIiwiaGFuZGxlRHJhZ0VuZCIsImhhbmRsZURyYWdNb3ZlIiwiZGVsdGEiLCJ5IiwiRG5kQ29udGV4dCIsIm9uRHJhZ1N0YXJ0Iiwib25EcmFnTW92ZSIsIm9uRHJhZ0VuZCIsIm1vZGlmaWVycyIsInJlc3RyaWN0VG9XaW5kb3dFZGdlcyIsIkltYWdlRXhwb3J0TGVnZW5kIiwiX3JlZjIiLCJfY29udGFpbmVyUmVmJGN1cnJlbnQiLCJjb250YWluZXJSZWYiLCJfdXNlTGVnZW5kUG9zaXRpb24yIiwicG9ydGFsUm9vdCIsImN1cnJlbnQiLCJjbG9zZXN0IiwicXVlcnlTZWxlY3RvciIsImNyZWF0ZVBvcnRhbCIsInBvc2l0aW9uIiwiTWFwTGVnZW5kUGFuZWxGYWN0b3J5IiwiZGVwcyIsIk1hcENvbnRyb2xUb29sdGlwRmFjdG9yeSIsIk1hcENvbnRyb2xQYW5lbEZhY3RvcnkiLCJNYXBMZWdlbmRGYWN0b3J5IiwiZGVmYXVsdEFjdGlvbkljb25zIiwibGVnZW5kIiwiTGVnZW5kIiwiTWFwTGVnZW5kUGFuZWxDb21wb25lbnQiLCJfcmVmMyIsIl9tYXBDb250cm9scyRtYXBMZWdlbjIiLCJfcm9vdENvbnRleHQkY3VycmVudCIsImxheWVycyIsImxheWVyT3JkZXIiLCJzY2FsZSIsIm9uVG9nZ2xlTWFwQ29udHJvbCIsImlzRXhwb3J0IiwibG9nb0NvbXBvbmVudCIsIl9yZWYzJGFjdGlvbkljb25zIiwiYWN0aW9uSWNvbnMiLCJvbkxheWVyVmlzQ29uZmlnQ2hhbmdlIiwib25Ub2dnbGVMYXllclZpc2liaWxpdHkiLCJvblRvZ2dsZVNwbGl0TWFwVmlld3BvcnQiLCJvbkNsaWNrQ29udHJvbEJ0biIsImFjdGl2ZVNpZGVQYW5lbCIsIl9yZWYzJGlzVmlld3BvcnRVbnN5biIsImlzVmlld3BvcnRVbnN5bmNBbGxvd2VkIiwiaXNTcGxpdCIsInNwbGl0TWFwcyIsIm9uVG9nZ2xlTGF5ZXJGb3JNYXAiLCJtYXBJbmRleCIsIk1hcENvbnRyb2xUb29sdGlwIiwiTWFwQ29udHJvbFBhbmVsIiwiTWFwTGVnZW5kIiwiaXNTd2lwZU1vZGUiLCJtYXBTcGxpdE1vZGUiLCJNYXBTcGxpdE1vZGUiLCJTV0lQRV9DT01QQVJFIiwiQm9vbGVhbiIsIl9yZWY0IiwiZGlzYWJsZUVkaXQiLCJyb290Q29udGV4dCIsInVzZUNvbnRleHQiLCJSb290Q29udGV4dCIsIm9uQ2xpY2siLCJfbWFwQ29udHJvbHMkbWFwRHJhdyIsIm1hcERyYXciLCJvbkNsb3NlQ2xpY2siLCJwcmV2ZW50RGVmYXVsdCIsInNob3ciLCJsZWdlbmRQYW5lbCIsImhlYWRlciIsInBpbm5hYmxlIiwiZGlzYWJsZUNsb3NlIiwib25NYXBUb2dnbGVMYXllciIsIkZyYWdtZW50IiwiaGFzUG9ydGFibGVXaWR0aCIsImJyZWFrUG9pbnRWYWx1ZXMiLCJkb2N1bWVudCIsImJvZHkiLCJtZXNzYWdlIiwiTWFwQ29udHJvbEJ1dHRvbiIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9tYXAvbWFwLWxlZ2VuZC1wYW5lbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IGNsYXNzbmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQge2NyZWF0ZVBvcnRhbH0gZnJvbSAncmVhY3QtZG9tJztcbmltcG9ydCBSZWFjdCwge1xuICBDb21wb25lbnRUeXBlLFxuICBGQyxcbiAgZm9yd2FyZFJlZixcbiAgdXNlQ2FsbGJhY2ssXG4gIHVzZUNvbnRleHQsXG4gIHVzZVJlZixcbiAgUHJvcHNXaXRoQ2hpbGRyZW5cbn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCwge3dpdGhUaGVtZX0gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQge0RuZENvbnRleHQsIHVzZURyYWdnYWJsZX0gZnJvbSAnQGRuZC1raXQvY29yZSc7XG5pbXBvcnQge0NTU30gZnJvbSAnQGRuZC1raXQvdXRpbGl0aWVzJztcbmltcG9ydCB7dXNlTWVyZ2VSZWZzfSBmcm9tICdAZmxvYXRpbmctdWkvcmVhY3QnO1xuXG5pbXBvcnQge0FjdGlvbkhhbmRsZXIsIHNldE1hcENvbnRyb2xTZXR0aW5ncywgdG9nZ2xlU3BsaXRNYXBWaWV3cG9ydH0gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcbmltcG9ydCB7TWFwU3BsaXRNb2RlfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0xheWVyfSBmcm9tICdAa2VwbGVyLmdsL2xheWVycyc7XG5pbXBvcnQge2JyZWFrUG9pbnRWYWx1ZXN9IGZyb20gJ0BrZXBsZXIuZ2wvc3R5bGVzJztcbmltcG9ydCB7TGF5ZXJWaXNDb25maWcsIExheWVyT3JkZXIsIE1hcENvbnRyb2xNYXBMZWdlbmQsIE1hcENvbnRyb2xzLCBNYXBTdGF0ZX0gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge2hhc1BvcnRhYmxlV2lkdGh9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHtNYXBMZWdlbmRDb250cm9sU2V0dGluZ3N9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG5pbXBvcnQge0xlZ2VuZCwgRHJhZ2dhYmxlRG90cywgSG9yaXpvbnRhbFJlc2l6ZUhhbmRsZX0gZnJvbSAnLi4vY29tbW9uL2ljb25zJztcbmltcG9ydCB7TWFwQ29udHJvbEJ1dHRvbn0gZnJvbSAnLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7Um9vdENvbnRleHR9IGZyb20gJy4uL2NvbnRleHQnO1xuaW1wb3J0IHVzZUxlZ2VuZFBvc2l0aW9uIGZyb20gJy4uL2hvb2tzL3VzZS1sZWdlbmQtcG9zaXRpb24nO1xuaW1wb3J0IE1hcENvbnRyb2xQYW5lbEZhY3RvcnkgZnJvbSAnLi9tYXAtY29udHJvbC1wYW5lbCc7XG5pbXBvcnQgTWFwQ29udHJvbFRvb2x0aXBGYWN0b3J5IGZyb20gJy4vbWFwLWNvbnRyb2wtdG9vbHRpcCc7XG5pbXBvcnQgTWFwTGVnZW5kRmFjdG9yeSBmcm9tICcuL21hcC1sZWdlbmQnO1xuaW1wb3J0IHtyZXN0cmljdFRvV2luZG93RWRnZXN9IGZyb20gJ0BkbmQta2l0L21vZGlmaWVycyc7XG5cbmNvbnN0IERSQUdfUkVTSVpFX0lEID0gJ21hcC1sZWdlbmQtcmVzaXplJztcbmNvbnN0IERSQUdfTU9WRV9JRCA9ICdtYXAtbGVnZW5kLW1vdmUnO1xuXG5jb25zdCBTdHlsZWREcmFnZ2FibGVMZWdlbmRDb250ZW50ID0gc3R5bGVkLmRpdjx7XG4gICRjb250ZW50SGVpZ2h0PzogbnVtYmVyO1xuICAkbWF4Q29udGVudEhlaWdodD86IG51bWJlcjtcbn0+YFxuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIHRyYW5zaXRpb246IGJvcmRlci1jb2xvciAwLjJzIGVhc2UtaW4tb3V0O1xuICBib3JkZXI6IDFweCBzb2xpZCB0cmFuc3BhcmVudDtcbiAgLmxlZ2VuZC1pbnB1dC1ibG9jayB7XG4gICAgZGlzcGxheTogbm9uZTtcbiAgfVxuICAmLmlzLWRyYWdnaW5nIC5sZWdlbmQtaW5wdXQtYmxvY2sge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgICB0b3A6IDA7XG4gICAgbGVmdDogMDtcbiAgICB3aWR0aDogMTAwJTtcbiAgICBoZWlnaHQ6IDEwMCU7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdHJhbnNwYXJlbnQ7XG4gIH1cbiAgJjpob3ZlcixcbiAgJi5pcy1kcmFnZ2luZyB7XG4gICAgLmxlZ2VuZC1tb3ZlLWhhbmRsZSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgfVxuICAgIC5sZWdlbmQtcmVzaXplLWhhbmRsZSB7XG4gICAgICBvcGFjaXR5OiAxO1xuICAgICAgcG9pbnRlci1ldmVudHM6IGF1dG87XG4gICAgfVxuICAgIGJvcmRlci1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5hY3RpdmVDb2xvcn07XG4gIH1cbiAgLm1hcC1jb250cm9sX19wYW5lbC1jb250ZW50IHtcbiAgICBtYXgtaGVpZ2h0OiAke3Byb3BzID0+XG4gICAgICBwcm9wcy4kbWF4Q29udGVudEhlaWdodCA/IGAke3Byb3BzLiRtYXhDb250ZW50SGVpZ2h0fXB4YCA6ICdjYWxjKDEwMHZoIC0gMTAwcHgpJ307XG4gICAgJHtwcm9wcyA9PiAocHJvcHMuJGNvbnRlbnRIZWlnaHQgPyBgaGVpZ2h0OiAke3Byb3BzLiRjb250ZW50SGVpZ2h0fXB4O2AgOiAnJyl9O1xuICB9XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgei1pbmRleDogMjtcbiAgLm1hcC1jb250cm9sLXBhbmVsIHtcbiAgICBtYXJnaW4tYm90dG9tOiAwICFpbXBvcnRhbnQ7XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZE1vdmVIYW5kbGUgPSBzdHlsZWQuZGl2YFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UtaW4tb3V0O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGNvbG9yOiB3aGl0ZTtcbiAgei1pbmRleDogMjtcbiAgdG9wOiAwO1xuICBsZWZ0OiA1MCU7XG4gIHRyYW5zZm9ybTogdHJhbnNsYXRlKC01MCUsIC01MCUpO1xuICB3aWR0aDogNDhweDtcbiAgaGVpZ2h0OiAxNnB4O1xuICBib3JkZXItcmFkaXVzOiA0cHg7XG4gIGN1cnNvcjogbW92ZTtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5hY3RpdmVDb2xvcn07XG5gO1xuXG5jb25zdCBTdHlsZWRSZXNpemVIYW5kbGUgPSBzdHlsZWQuZGl2YFxuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgb3BhY2l0eTogMDtcbiAgdHJhbnNpdGlvbjogb3BhY2l0eSAwLjJzIGVhc2UtaW4tb3V0O1xuICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGNvbG9yOiAjZjdmOGZhO1xuICB6LWluZGV4OiAyO1xuICBib3R0b206IDA7XG4gIGxlZnQ6IDUwJTtcbiAgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTUwJSwgLTUwJSk7XG4gIHdpZHRoOiA0OHB4O1xuICBoZWlnaHQ6IDE2cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgY3Vyc29yOiBucy1yZXNpemU7XG5gO1xuXG5jb25zdCBTdHlsZWRGaXhlZExlZ2VuZENvbnRlbnQgPSBzdHlsZWQuZGl2PHskY29udGVudEhlaWdodD86IG51bWJlcn0+YFxuICAubWFwLWNvbnRyb2xfX3BhbmVsLWNvbnRlbnQge1xuICAgIG1heC1oZWlnaHQ6IGNhbGMoMTAwdmggLSAxMDBweCk7XG4gICAgJHtwcm9wcyA9PiAocHJvcHMuJGNvbnRlbnRIZWlnaHQgPyBgaGVpZ2h0OiAke3Byb3BzLiRjb250ZW50SGVpZ2h0fXB4O2AgOiAnJyl9O1xuICB9XG5cbiAgLyogSGlkZSBzY3JvbGxiYXJzIGluIGV4cG9ydCB0byBhdm9pZCBPUyBkZWZhdWx0IHN0eWxpbmcgZGlmZmVyZW5jZXMgKi9cbiAgLnN0eWxlZC1jb2xvci1sZWdlbmQge1xuICAgIC1tcy1vdmVyZmxvdy1zdHlsZTogbm9uZTsgLyogSUUgYW5kIG9sZCBFZGdlICovXG4gICAgc2Nyb2xsYmFyLXdpZHRoOiBub25lOyAvKiBGaXJlZm94ICovXG4gIH1cbiAgLnN0eWxlZC1jb2xvci1sZWdlbmQ6Oi13ZWJraXQtc2Nyb2xsYmFyIHtcbiAgICB3aWR0aDogMCAhaW1wb3J0YW50OyAvKiBDaHJvbWUsIFNhZmFyaSwgbmV3IEVkZ2UgKi9cbiAgICBoZWlnaHQ6IDAgIWltcG9ydGFudDtcbiAgfVxuYDtcblxuZXhwb3J0IHR5cGUgTWFwTGVnZW5kUGFuZWxGYWN0b3J5RGVwcyA9IFtcbiAgdHlwZW9mIE1hcENvbnRyb2xUb29sdGlwRmFjdG9yeSxcbiAgdHlwZW9mIE1hcENvbnRyb2xQYW5lbEZhY3RvcnksXG4gIHR5cGVvZiBNYXBMZWdlbmRGYWN0b3J5XG5dO1xuXG50eXBlIERyYWdnYWJsZUxlZ2VuZENvbnRlbnRQcm9wcyA9IHtcbiAgY29udGVudEhlaWdodD86IG51bWJlcjtcbiAgbWF4Q29udGVudEhlaWdodD86IG51bWJlcjtcbiAgcG9zaXRpb25TdHlsZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlO1xufTtcblxuY29uc3QgRHJhZ2dhYmxlTGVnZW5kQ29udGVudCA9IGZvcndhcmRSZWYoKHByb3BzOiBEcmFnZ2FibGVMZWdlbmRDb250ZW50UHJvcHMsIHJlZikgPT4ge1xuICBjb25zdCB7cG9zaXRpb25TdHlsZXMsIGNoaWxkcmVuLCBjb250ZW50SGVpZ2h0LCBtYXhDb250ZW50SGVpZ2h0fSA9IHByb3BzO1xuICBjb25zdCBkcmFnZ2FibGVNb3ZlID0gdXNlRHJhZ2dhYmxlKHtpZDogRFJBR19NT1ZFX0lEfSk7XG4gIGNvbnN0IGRyYWdnYWJsZVJlc2l6ZSA9IHVzZURyYWdnYWJsZSh7aWQ6IERSQUdfUkVTSVpFX0lEfSk7XG4gIGNvbnN0IHJlZnMgPSB1c2VNZXJnZVJlZnMoW2RyYWdnYWJsZU1vdmUuc2V0Tm9kZVJlZiwgcmVmXSk7XG4gIGNvbnN0IGlzRHJhZ2dpbmcgPSBkcmFnZ2FibGVNb3ZlLmlzRHJhZ2dpbmcgfHwgZHJhZ2dhYmxlUmVzaXplLmlzRHJhZ2dpbmc7XG4gIHJldHVybiAoXG4gICAgPFN0eWxlZERyYWdnYWJsZUxlZ2VuZENvbnRlbnRcbiAgICAgIHJlZj17cmVmc31cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NuYW1lcygnZHJhZ2dhYmxlLWxlZ2VuZCcsIHsnaXMtZHJhZ2dpbmcnOiBpc0RyYWdnaW5nfSl9XG4gICAgICBzdHlsZT17ey4uLnBvc2l0aW9uU3R5bGVzLCB0cmFuc2Zvcm06IENTUy5UcmFuc2xhdGUudG9TdHJpbmcoZHJhZ2dhYmxlTW92ZS50cmFuc2Zvcm0pfX1cbiAgICAgICRjb250ZW50SGVpZ2h0PXtjb250ZW50SGVpZ2h0fVxuICAgICAgJG1heENvbnRlbnRIZWlnaHQ9e21heENvbnRlbnRIZWlnaHR9XG4gICAgICB7Li4uZHJhZ2dhYmxlTW92ZS5hdHRyaWJ1dGVzfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICAgIHtpc0RyYWdnaW5nID8gPGRpdiBjbGFzc05hbWU9XCJsZWdlbmQtaW5wdXQtYmxvY2tcIiAvPiA6IG51bGx9XG4gICAgICA8U3R5bGVkTW92ZUhhbmRsZSBjbGFzc05hbWU9XCJsZWdlbmQtbW92ZS1oYW5kbGVcIiB7Li4uZHJhZ2dhYmxlTW92ZS5saXN0ZW5lcnN9PlxuICAgICAgICA8RHJhZ2dhYmxlRG90cyBoZWlnaHQ9XCIxNnB4XCIgLz5cbiAgICAgIDwvU3R5bGVkTW92ZUhhbmRsZT5cbiAgICAgIDxTdHlsZWRSZXNpemVIYW5kbGVcbiAgICAgICAgY2xhc3NOYW1lPVwibGVnZW5kLXJlc2l6ZS1oYW5kbGVcIlxuICAgICAgICByZWY9e2RyYWdnYWJsZVJlc2l6ZS5zZXROb2RlUmVmfVxuICAgICAgICB7Li4uZHJhZ2dhYmxlUmVzaXplLmxpc3RlbmVyc31cbiAgICAgID5cbiAgICAgICAgPEhvcml6b250YWxSZXNpemVIYW5kbGUgaGVpZ2h0PVwiMTZweFwiIC8+XG4gICAgICA8L1N0eWxlZFJlc2l6ZUhhbmRsZT5cbiAgICA8L1N0eWxlZERyYWdnYWJsZUxlZ2VuZENvbnRlbnQ+XG4gICk7XG59KTtcblxudHlwZSBEcmFnZ2FibGVMZWdlbmRQcm9wcyA9IFByb3BzV2l0aENoaWxkcmVuPHtcbiAgaXNTaWRlUGFuZWxTaG93bjogYm9vbGVhbjtcbiAgbWFwQ29udHJvbHM6IE1hcENvbnRyb2xzO1xuICBzZXRNYXBDb250cm9sU2V0dGluZ3M6IHR5cGVvZiBzZXRNYXBDb250cm9sU2V0dGluZ3M7XG4gIG1hcFN0YXRlPzogTWFwU3RhdGU7XG59PjtcblxuY29uc3QgRHJhZ2dhYmxlTGVnZW5kID0gd2l0aFRoZW1lKFxuICAoe1xuICAgIGlzU2lkZVBhbmVsU2hvd24sXG4gICAgY2hpbGRyZW4sXG4gICAgbWFwQ29udHJvbHMsXG4gICAgc2V0TWFwQ29udHJvbFNldHRpbmdzLFxuICAgIG1hcFN0YXRlLFxuICAgIHRoZW1lXG4gIH06IERyYWdnYWJsZUxlZ2VuZFByb3BzICYge3RoZW1lOiBhbnl9KSA9PiB7XG4gICAgY29uc3Qgc2V0dGluZ3MgPSBtYXBDb250cm9scz8ubWFwTGVnZW5kPy5zZXR0aW5ncztcblxuICAgIGNvbnN0IGxlZ2VuZENvbnRlbnRSZWYgPSB1c2VSZWY8SFRNTEVsZW1lbnQ+KG51bGwpO1xuICAgIGNvbnN0IG9uQ2hhbmdlU2V0dGluZ3MgPSB1c2VDYWxsYmFjayhcbiAgICAgIG5ld1NldHRpbmdzID0+IHNldE1hcENvbnRyb2xTZXR0aW5ncygnbWFwTGVnZW5kJywgbmV3U2V0dGluZ3MpLFxuICAgICAgW3NldE1hcENvbnRyb2xTZXR0aW5nc11cbiAgICApO1xuICAgIGNvbnN0IHtwb3NpdGlvblN0eWxlcywgdXBkYXRlUG9zaXRpb24sIHN0YXJ0UmVzaXplLCByZXNpemUsIGNvbnRlbnRIZWlnaHQsIG1heENvbnRlbnRIZWlnaHR9ID1cbiAgICAgIHVzZUxlZ2VuZFBvc2l0aW9uKHtcbiAgICAgICAgbGVnZW5kQ29udGVudFJlZixcbiAgICAgICAgaXNTaWRlUGFuZWxTaG93bixcbiAgICAgICAgdGhlbWUsXG4gICAgICAgIHNldHRpbmdzLFxuICAgICAgICBvbkNoYW5nZVNldHRpbmdzLFxuICAgICAgICBtYXBIZWlnaHQ6IG1hcFN0YXRlPy5oZWlnaHQsXG4gICAgICAgIG1hcFdpZHRoOiBtYXBTdGF0ZT8ud2lkdGhcbiAgICAgIH0pO1xuXG4gICAgY29uc3QgaGFuZGxlRHJhZ1N0YXJ0ID0gdXNlQ2FsbGJhY2soXG4gICAgICBldmVudCA9PiB7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQuYWN0aXZlLmlkKSB7XG4gICAgICAgICAgY2FzZSBEUkFHX1JFU0laRV9JRDpcbiAgICAgICAgICAgIHN0YXJ0UmVzaXplKCk7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgdXBkYXRlUG9zaXRpb24oKTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICAgIFt1cGRhdGVQb3NpdGlvbiwgc3RhcnRSZXNpemVdXG4gICAgKTtcbiAgICBjb25zdCBoYW5kbGVEcmFnRW5kID0gdXNlQ2FsbGJhY2sodXBkYXRlUG9zaXRpb24sIFt1cGRhdGVQb3NpdGlvbl0pO1xuICAgIGNvbnN0IGhhbmRsZURyYWdNb3ZlID0gdXNlQ2FsbGJhY2soXG4gICAgICBldmVudCA9PiB7XG4gICAgICAgIHN3aXRjaCAoZXZlbnQuYWN0aXZlLmlkKSB7XG4gICAgICAgICAgY2FzZSBEUkFHX1JFU0laRV9JRDpcbiAgICAgICAgICAgIHJlc2l6ZShldmVudC5kZWx0YS55KTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgW3Jlc2l6ZV1cbiAgICApO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxEbmRDb250ZXh0XG4gICAgICAgIG9uRHJhZ1N0YXJ0PXtoYW5kbGVEcmFnU3RhcnR9XG4gICAgICAgIG9uRHJhZ01vdmU9e2hhbmRsZURyYWdNb3ZlfVxuICAgICAgICBvbkRyYWdFbmQ9e2hhbmRsZURyYWdFbmR9XG4gICAgICAgIG1vZGlmaWVycz17W3Jlc3RyaWN0VG9XaW5kb3dFZGdlc119XG4gICAgICA+XG4gICAgICAgIDxEcmFnZ2FibGVMZWdlbmRDb250ZW50XG4gICAgICAgICAgcmVmPXtsZWdlbmRDb250ZW50UmVmfVxuICAgICAgICAgIHBvc2l0aW9uU3R5bGVzPXtwb3NpdGlvblN0eWxlc31cbiAgICAgICAgICBjb250ZW50SGVpZ2h0PXtjb250ZW50SGVpZ2h0fVxuICAgICAgICAgIG1heENvbnRlbnRIZWlnaHQ9e21heENvbnRlbnRIZWlnaHR9XG4gICAgICAgID5cbiAgICAgICAgICB7Y2hpbGRyZW59XG4gICAgICAgIDwvRHJhZ2dhYmxlTGVnZW5kQ29udGVudD5cbiAgICAgIDwvRG5kQ29udGV4dD5cbiAgICApO1xuICB9XG4pIGFzIEZDPERyYWdnYWJsZUxlZ2VuZFByb3BzPjtcblxudHlwZSBJbWFnZUV4cG9ydExlZ2VuZFByb3BzID0ge1xuICBzZXR0aW5ncz86IE1hcExlZ2VuZENvbnRyb2xTZXR0aW5ncztcbiAgaXNTaWRlUGFuZWxTaG93bjogYm9vbGVhbjtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZTtcbn07XG5cbmNvbnN0IEltYWdlRXhwb3J0TGVnZW5kID0gd2l0aFRoZW1lKCh7c2V0dGluZ3MsIGlzU2lkZVBhbmVsU2hvd24sIHRoZW1lLCBjaGlsZHJlbn0pID0+IHtcbiAgY29uc3QgY29udGFpbmVyUmVmOiBSZWFjdC5NdXRhYmxlUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50IHwgbnVsbD4gPSB1c2VSZWYobnVsbCk7XG4gIGNvbnN0IGxlZ2VuZENvbnRlbnRSZWY6IFJlYWN0Lk11dGFibGVSZWZPYmplY3Q8SFRNTERpdkVsZW1lbnQgfCBudWxsPiA9IHVzZVJlZihudWxsKTtcblxuICBjb25zdCB7cG9zaXRpb25TdHlsZXMsIGNvbnRlbnRIZWlnaHR9ID0gdXNlTGVnZW5kUG9zaXRpb24oe1xuICAgIGxlZ2VuZENvbnRlbnRSZWYsXG4gICAgaXNTaWRlUGFuZWxTaG93bixcbiAgICB0aGVtZSxcbiAgICBzZXR0aW5ncyxcbiAgICBvbkNoYW5nZVNldHRpbmdzOiAoKSA9PiB7XG4gICAgICAvLyBkbyBub3RoaW5nIGJ5IGRlZmF1bHRcbiAgICB9XG4gIH0pO1xuXG4gIGNvbnN0IHBvcnRhbFJvb3QgPSBjb250YWluZXJSZWYuY3VycmVudFxuICAgID8uY2xvc2VzdCgnLmV4cG9ydC1tYXAtaW5zdGFuY2UnKVxuICAgID8ucXVlcnlTZWxlY3RvcignI2RlZmF1bHQtZGVja2dsLW92ZXJsYXktd3JhcHBlcicpO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiByZWY9e2NvbnRhaW5lclJlZn0+XG4gICAgICB7cG9ydGFsUm9vdFxuICAgICAgICA/IGNyZWF0ZVBvcnRhbChcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZml4ZWQtbGVnZW5kXCJcbiAgICAgICAgICAgICAgcmVmPXtsZWdlbmRDb250ZW50UmVmfVxuICAgICAgICAgICAgICBzdHlsZT17ey4uLnBvc2l0aW9uU3R5bGVzLCBwb3NpdGlvbjogJ2Fic29sdXRlJ319XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdHlsZWRGaXhlZExlZ2VuZENvbnRlbnQgJGNvbnRlbnRIZWlnaHQ9e2NvbnRlbnRIZWlnaHR9PlxuICAgICAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgICAgPC9TdHlsZWRGaXhlZExlZ2VuZENvbnRlbnQ+XG4gICAgICAgICAgICA8L2Rpdj4sXG4gICAgICAgICAgICBwb3J0YWxSb290XG4gICAgICAgICAgKVxuICAgICAgICA6IG51bGx9XG4gICAgPC9kaXY+XG4gICk7XG59KSBhcyBSZWFjdC5GQzxJbWFnZUV4cG9ydExlZ2VuZFByb3BzPjtcblxuTWFwTGVnZW5kUGFuZWxGYWN0b3J5LmRlcHMgPSBbTWFwQ29udHJvbFRvb2x0aXBGYWN0b3J5LCBNYXBDb250cm9sUGFuZWxGYWN0b3J5LCBNYXBMZWdlbmRGYWN0b3J5XTtcblxuaW50ZXJmYWNlIE1hcExlZ2VuZFBhbmVsSWNvbnMge1xuICBsZWdlbmQ6IENvbXBvbmVudFR5cGU8YW55Pjtcbn1cblxuZXhwb3J0IHR5cGUgTWFwTGVnZW5kUGFuZWxQcm9wcyA9IHtcbiAgdGhlbWU6IGFueTtcbiAgbGF5ZXJzOiBSZWFkb25seUFycmF5PExheWVyPjtcbiAgbGF5ZXJPcmRlcj86IExheWVyT3JkZXI7XG4gIHNjYWxlOiBudW1iZXI7XG4gIG9uVG9nZ2xlTWFwQ29udHJvbDogKGNvbnRyb2w6IHN0cmluZykgPT4gdm9pZDtcbiAgaXNFeHBvcnQ6IGJvb2xlYW47XG4gIGxvZ29Db21wb25lbnQ6IEVsZW1lbnQ7XG4gIGFjdGlvbkljb25zOiBNYXBMZWdlbmRQYW5lbEljb25zO1xuICBtYXBDb250cm9sczogTWFwQ29udHJvbHM7XG4gIG1hcFN0YXRlPzogTWFwU3RhdGU7XG4gIG9uTGF5ZXJWaXNDb25maWdDaGFuZ2U/OiAob2xkTGF5ZXI6IExheWVyLCBuZXdWaXNDb25maWc6IFBhcnRpYWw8TGF5ZXJWaXNDb25maWc+KSA9PiB2b2lkO1xuICBvblRvZ2dsZUxheWVyVmlzaWJpbGl0eT86IChsYXllcjogTGF5ZXIpID0+IHZvaWQ7XG4gIG9uVG9nZ2xlU3BsaXRNYXBWaWV3cG9ydD86IEFjdGlvbkhhbmRsZXI8dHlwZW9mIHRvZ2dsZVNwbGl0TWFwVmlld3BvcnQ+O1xuICBpc1ZpZXdwb3J0VW5zeW5jQWxsb3dlZD86IGJvb2xlYW47XG4gIG9uQ2xpY2tDb250cm9sQnRuPzogKGU/OiBNb3VzZUV2ZW50KSA9PiB2b2lkO1xuICBjbGFzc05hbWU6IHN0cmluZztcbiAgc2V0dGluZ3M6IE1hcExlZ2VuZENvbnRyb2xTZXR0aW5ncztcbiAgaXNTaWRlUGFuZWxTaG93bjogYm9vbGVhbjtcbiAgYWN0aXZlU2lkZVBhbmVsOiBzdHJpbmcgfCBudWxsO1xuICBzZXRNYXBDb250cm9sU2V0dGluZ3M6IGFueTtcbiAgaXNTcGxpdD86IGJvb2xlYW47XG4gIHNwbGl0TWFwcz86IHtsYXllcnM6IHtba2V5OiBzdHJpbmddOiBib29sZWFufX1bXTtcbiAgb25Ub2dnbGVMYXllckZvck1hcD86IChtYXBJbmRleDogbnVtYmVyLCBsYXllcklkOiBzdHJpbmcpID0+IHZvaWQ7XG4gIG1hcEluZGV4PzogbnVtYmVyO1xufTtcblxudHlwZSBNYXBMZWdlbmRQYW5lbENvbXBvbmVudHMgPSB7XG4gIE1hcENvbnRyb2xUb29sdGlwOiBSZXR1cm5UeXBlPHR5cGVvZiBNYXBDb250cm9sVG9vbHRpcEZhY3Rvcnk+O1xuICBNYXBDb250cm9sUGFuZWw6IFJldHVyblR5cGU8dHlwZW9mIE1hcENvbnRyb2xQYW5lbEZhY3Rvcnk+O1xuICBNYXBMZWdlbmQ6IFJldHVyblR5cGU8dHlwZW9mIE1hcExlZ2VuZEZhY3Rvcnk+O1xufTtcblxudHlwZSBNYXBMZWdlbmRQYW5lbENvbXBvbmVudFR5cGUgPSBSZWFjdC5GQzxNYXBMZWdlbmRQYW5lbFByb3BzPjtcblxuY29uc3QgZGVmYXVsdEFjdGlvbkljb25zID0ge1xuICBsZWdlbmQ6IHByb3BzID0+IDxMZWdlbmQgey4uLnByb3BzfSBoZWlnaHQ9XCIxOHB4XCIgLz5cbn07XG5cbmNvbnN0IE1hcExlZ2VuZFBhbmVsQ29tcG9uZW50ID0gKHtcbiAgbGF5ZXJzLFxuICBsYXllck9yZGVyLFxuICBtYXBDb250cm9scyxcbiAgc2NhbGUsXG4gIG9uVG9nZ2xlTWFwQ29udHJvbCxcbiAgaXNFeHBvcnQsXG4gIGxvZ29Db21wb25lbnQsXG4gIGFjdGlvbkljb25zID0gZGVmYXVsdEFjdGlvbkljb25zLFxuICBtYXBTdGF0ZSxcbiAgb25MYXllclZpc0NvbmZpZ0NoYW5nZSxcbiAgb25Ub2dnbGVMYXllclZpc2liaWxpdHksXG4gIG9uVG9nZ2xlU3BsaXRNYXBWaWV3cG9ydCxcbiAgb25DbGlja0NvbnRyb2xCdG4sXG4gIGFjdGl2ZVNpZGVQYW5lbCxcbiAgc2V0TWFwQ29udHJvbFNldHRpbmdzLFxuICBpc1ZpZXdwb3J0VW5zeW5jQWxsb3dlZCA9IHRydWUsXG4gIGNsYXNzTmFtZSxcbiAgaXNTcGxpdCxcbiAgc3BsaXRNYXBzLFxuICBvblRvZ2dsZUxheWVyRm9yTWFwLFxuICBtYXBJbmRleCxcbiAgTWFwQ29udHJvbFRvb2x0aXAsXG4gIE1hcENvbnRyb2xQYW5lbCxcbiAgTWFwTGVnZW5kXG59OiBNYXBMZWdlbmRQYW5lbFByb3BzICYgTWFwTGVnZW5kUGFuZWxDb21wb25lbnRzKSA9PiB7XG4gIGNvbnN0IGlzU3dpcGVNb2RlID0gbWFwU3RhdGU/Lm1hcFNwbGl0TW9kZSA9PT0gTWFwU3BsaXRNb2RlLlNXSVBFX0NPTVBBUkU7XG4gIGNvbnN0IGlzU2lkZVBhbmVsU2hvd24gPSBCb29sZWFuKGFjdGl2ZVNpZGVQYW5lbCk7XG4gIGNvbnN0IHNldHRpbmdzID0gbWFwQ29udHJvbHM/Lm1hcExlZ2VuZD8uc2V0dGluZ3M7XG5cbiAgY29uc3QgbWFwTGVnZW5kID0gbWFwQ29udHJvbHM/Lm1hcExlZ2VuZCB8fCAoe30gYXMgTWFwQ29udHJvbE1hcExlZ2VuZCk7XG4gIGNvbnN0IHthY3RpdmUsIGRpc2FibGVFZGl0fSA9IG1hcExlZ2VuZCB8fCB7fTtcbiAgY29uc3Qgcm9vdENvbnRleHQgPSB1c2VDb250ZXh0KFJvb3RDb250ZXh0KTtcblxuICBjb25zdCBvbkNsaWNrID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIG9uQ2xpY2tDb250cm9sQnRuPy4oKTtcbiAgICBpZiAobWFwQ29udHJvbHM/Lm1hcERyYXc/LmFjdGl2ZSkge1xuICAgICAgb25Ub2dnbGVNYXBDb250cm9sKCdtYXBEcmF3Jyk7XG4gICAgfVxuICAgIG9uVG9nZ2xlTWFwQ29udHJvbCgnbWFwTGVnZW5kJyk7XG4gIH0sIFtvbkNsaWNrQ29udHJvbEJ0biwgb25Ub2dnbGVNYXBDb250cm9sLCBtYXBDb250cm9sc10pO1xuICBjb25zdCBvbkNsb3NlQ2xpY2sgPSB1c2VDYWxsYmFjayhcbiAgICBlID0+IHtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgIG9uVG9nZ2xlTWFwQ29udHJvbCgnbWFwTGVnZW5kJyk7XG4gICAgfSxcbiAgICBbb25Ub2dnbGVNYXBDb250cm9sXVxuICApO1xuXG4gIGlmIChpc1NwbGl0ICYmICFpc1N3aXBlTW9kZSAmJiBtYXBJbmRleCAhPT0gMCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGlmIChpc1N3aXBlTW9kZSAmJiBtYXBJbmRleCAhPT0gMSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKCFtYXBMZWdlbmQuc2hvdykge1xuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3QgbGVnZW5kUGFuZWwgPSBhY3RpdmUgPyAoXG4gICAgPE1hcENvbnRyb2xQYW5lbFxuICAgICAgc2NhbGU9e3NjYWxlfVxuICAgICAgaGVhZGVyPVwiaGVhZGVyLmxheWVyTGVnZW5kXCJcbiAgICAgIHsuLi57b25DbGljazogb25DbG9zZUNsaWNrLCBwaW5uYWJsZTogZmFsc2UsIGRpc2FibGVDbG9zZTogZmFsc2V9fVxuICAgICAgaXNFeHBvcnQ9e2lzRXhwb3J0fVxuICAgICAgbG9nb0NvbXBvbmVudD17bG9nb0NvbXBvbmVudH1cbiAgICAgIG1hcFN0YXRlPXttYXBTdGF0ZX1cbiAgICAgIG9uVG9nZ2xlU3BsaXRNYXBWaWV3cG9ydD17b25Ub2dnbGVTcGxpdE1hcFZpZXdwb3J0fVxuICAgICAgaXNWaWV3cG9ydFVuc3luY0FsbG93ZWQ9e2lzVmlld3BvcnRVbnN5bmNBbGxvd2VkfVxuICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgPlxuICAgICAgPE1hcExlZ2VuZFxuICAgICAgICBsYXllcnM9e2xheWVyc31cbiAgICAgICAgbGF5ZXJPcmRlcj17bGF5ZXJPcmRlcn1cbiAgICAgICAgbWFwU3RhdGU9e21hcFN0YXRlfVxuICAgICAgICBkaXNhYmxlRWRpdD17ZGlzYWJsZUVkaXR9XG4gICAgICAgIGlzRXhwb3J0PXtpc0V4cG9ydH1cbiAgICAgICAgb25MYXllclZpc0NvbmZpZ0NoYW5nZT17b25MYXllclZpc0NvbmZpZ0NoYW5nZX1cbiAgICAgICAgb25Ub2dnbGVMYXllclZpc2liaWxpdHk9e29uVG9nZ2xlTGF5ZXJWaXNpYmlsaXR5fVxuICAgICAgICBpc1NwbGl0PXtpc1NwbGl0fVxuICAgICAgICBzcGxpdE1hcHM9e3NwbGl0TWFwc31cbiAgICAgICAgb25NYXBUb2dnbGVMYXllcj17b25Ub2dnbGVMYXllckZvck1hcH1cbiAgICAgIC8+XG4gICAgPC9NYXBDb250cm9sUGFuZWw+XG4gICkgOiBudWxsO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHthY3RpdmUgPyAoXG4gICAgICAgIGhhc1BvcnRhYmxlV2lkdGgoYnJlYWtQb2ludFZhbHVlcykgPyAoXG4gICAgICAgICAgbGVnZW5kUGFuZWxcbiAgICAgICAgKSA6IGlzRXhwb3J0ID8gKFxuICAgICAgICAgIDxJbWFnZUV4cG9ydExlZ2VuZCBpc1NpZGVQYW5lbFNob3duPXtpc1NpZGVQYW5lbFNob3dufSBzZXR0aW5ncz17c2V0dGluZ3N9PlxuICAgICAgICAgICAge2xlZ2VuZFBhbmVsfVxuICAgICAgICAgIDwvSW1hZ2VFeHBvcnRMZWdlbmQ+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgY3JlYXRlUG9ydGFsKFxuICAgICAgICAgICAgPERyYWdnYWJsZUxlZ2VuZFxuICAgICAgICAgICAgICBpc1NpZGVQYW5lbFNob3duPXtpc1NpZGVQYW5lbFNob3dufVxuICAgICAgICAgICAgICBtYXBDb250cm9scz17bWFwQ29udHJvbHN9XG4gICAgICAgICAgICAgIHNldE1hcENvbnRyb2xTZXR0aW5ncz17c2V0TWFwQ29udHJvbFNldHRpbmdzfVxuICAgICAgICAgICAgICBtYXBTdGF0ZT17bWFwU3RhdGV9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIHtsZWdlbmRQYW5lbH1cbiAgICAgICAgICAgIDwvRHJhZ2dhYmxlTGVnZW5kPixcbiAgICAgICAgICAgIHJvb3RDb250ZXh0Py5jdXJyZW50ID8/IGRvY3VtZW50LmJvZHlcbiAgICAgICAgICApXG4gICAgICAgIClcbiAgICAgICkgOiBudWxsfVxuICAgICAgeyFpc0V4cG9ydCA/IChcbiAgICAgICAgPE1hcENvbnRyb2xUb29sdGlwIGlkPVwic2hvdy1sZWdlbmRcIiBtZXNzYWdlPVwidG9vbHRpcC5zaG93TGVnZW5kXCI+XG4gICAgICAgICAgPE1hcENvbnRyb2xCdXR0b24gY2xhc3NOYW1lPVwibWFwLWNvbnRyb2wtYnV0dG9uIHNob3ctbGVnZW5kXCIgb25DbGljaz17b25DbGlja30+XG4gICAgICAgICAgICA8YWN0aW9uSWNvbnMubGVnZW5kIGhlaWdodD1cIjIycHhcIiAvPlxuICAgICAgICAgIDwvTWFwQ29udHJvbEJ1dHRvbj5cbiAgICAgICAgPC9NYXBDb250cm9sVG9vbHRpcD5cbiAgICAgICkgOiBudWxsfVxuICAgIDwvPlxuICApO1xufTtcblxuZnVuY3Rpb24gTWFwTGVnZW5kUGFuZWxGYWN0b3J5KFxuICBNYXBDb250cm9sVG9vbHRpcDogUmV0dXJuVHlwZTx0eXBlb2YgTWFwQ29udHJvbFRvb2x0aXBGYWN0b3J5PixcbiAgTWFwQ29udHJvbFBhbmVsOiBSZXR1cm5UeXBlPHR5cGVvZiBNYXBDb250cm9sUGFuZWxGYWN0b3J5PixcbiAgTWFwTGVnZW5kOiBSZXR1cm5UeXBlPHR5cGVvZiBNYXBMZWdlbmRGYWN0b3J5PlxuKTogTWFwTGVnZW5kUGFuZWxDb21wb25lbnRUeXBlIHtcbiAgcmV0dXJuIChwcm9wczogTWFwTGVnZW5kUGFuZWxQcm9wcykgPT4gKFxuICAgIDxNYXBMZWdlbmRQYW5lbENvbXBvbmVudFxuICAgICAgey4uLnByb3BzfVxuICAgICAgTWFwQ29udHJvbFRvb2x0aXA9e01hcENvbnRyb2xUb29sdGlwfVxuICAgICAgTWFwQ29udHJvbFBhbmVsPXtNYXBDb250cm9sUGFuZWx9XG4gICAgICBNYXBMZWdlbmQ9e01hcExlZ2VuZH1cbiAgICAvPlxuICApO1xufVxuXG5leHBvcnQgZGVmYXVsdCBNYXBMZWdlbmRQYW5lbEZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBR0EsSUFBQUEsV0FBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsU0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsTUFBQSxHQUFBQyx1QkFBQSxDQUFBSCxPQUFBO0FBU0EsSUFBQUksaUJBQUEsR0FBQUQsdUJBQUEsQ0FBQUgsT0FBQTtBQUVBLElBQUFLLEtBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLFVBQUEsR0FBQU4sT0FBQTtBQUNBLElBQUFPLE9BQUEsR0FBQVAsT0FBQTtBQUdBLElBQUFRLFVBQUEsR0FBQVIsT0FBQTtBQUVBLElBQUFTLE9BQUEsR0FBQVQsT0FBQTtBQUVBLElBQUFVLE1BQUEsR0FBQVYsT0FBQTtBQUdBLElBQUFXLE1BQUEsR0FBQVgsT0FBQTtBQUNBLElBQUFZLGtCQUFBLEdBQUFaLE9BQUE7QUFDQSxJQUFBYSxRQUFBLEdBQUFiLE9BQUE7QUFDQSxJQUFBYyxtQkFBQSxHQUFBZixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQWUsZ0JBQUEsR0FBQWhCLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBZ0Isa0JBQUEsR0FBQWpCLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBaUIsVUFBQSxHQUFBbEIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFrQixVQUFBLEdBQUFsQixPQUFBO0FBQXlELElBQUFtQixlQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBQUFDLGdCQUFBLEVBbkN6RDtBQUNBO0FBQUEsU0FBQUMseUJBQUFDLENBQUEsNkJBQUFDLE9BQUEsbUJBQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLENBQUEsV0FBQUEsQ0FBQSxHQUFBRyxDQUFBLEdBQUFELENBQUEsS0FBQUYsQ0FBQTtBQUFBLFNBQUFyQix3QkFBQXFCLENBQUEsRUFBQUUsQ0FBQSxTQUFBQSxDQUFBLElBQUFGLENBQUEsSUFBQUEsQ0FBQSxDQUFBSSxVQUFBLFNBQUFKLENBQUEsZUFBQUEsQ0FBQSxnQkFBQUssT0FBQSxDQUFBTCxDQUFBLDBCQUFBQSxDQUFBLHNCQUFBQSxDQUFBLFFBQUFHLENBQUEsR0FBQUosd0JBQUEsQ0FBQUcsQ0FBQSxPQUFBQyxDQUFBLElBQUFBLENBQUEsQ0FBQUcsR0FBQSxDQUFBTixDQUFBLFVBQUFHLENBQUEsQ0FBQUksR0FBQSxDQUFBUCxDQUFBLE9BQUFRLENBQUEsS0FBQUMsU0FBQSxVQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLENBQUEsSUFBQWQsQ0FBQSxvQkFBQWMsQ0FBQSxPQUFBQyxjQUFBLENBQUFDLElBQUEsQ0FBQWhCLENBQUEsRUFBQWMsQ0FBQSxTQUFBRyxDQUFBLEdBQUFQLENBQUEsR0FBQUMsTUFBQSxDQUFBRSx3QkFBQSxDQUFBYixDQUFBLEVBQUFjLENBQUEsVUFBQUcsQ0FBQSxLQUFBQSxDQUFBLENBQUFWLEdBQUEsSUFBQVUsQ0FBQSxDQUFBQyxHQUFBLElBQUFQLE1BQUEsQ0FBQUMsY0FBQSxDQUFBSixDQUFBLEVBQUFNLENBQUEsRUFBQUcsQ0FBQSxJQUFBVCxDQUFBLENBQUFNLENBQUEsSUFBQWQsQ0FBQSxDQUFBYyxDQUFBLFlBQUFOLENBQUEsY0FBQVIsQ0FBQSxFQUFBRyxDQUFBLElBQUFBLENBQUEsQ0FBQWUsR0FBQSxDQUFBbEIsQ0FBQSxFQUFBUSxDQUFBLEdBQUFBLENBQUE7QUFBQSxTQUFBVyxRQUFBbkIsQ0FBQSxFQUFBRSxDQUFBLFFBQUFDLENBQUEsR0FBQVEsTUFBQSxDQUFBUyxJQUFBLENBQUFwQixDQUFBLE9BQUFXLE1BQUEsQ0FBQVUscUJBQUEsUUFBQUMsQ0FBQSxHQUFBWCxNQUFBLENBQUFVLHFCQUFBLENBQUFyQixDQUFBLEdBQUFFLENBQUEsS0FBQW9CLENBQUEsR0FBQUEsQ0FBQSxDQUFBQyxNQUFBLFdBQUFyQixDQUFBLFdBQUFTLE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQWIsQ0FBQSxFQUFBRSxDQUFBLEVBQUFzQixVQUFBLE9BQUFyQixDQUFBLENBQUFzQixJQUFBLENBQUFDLEtBQUEsQ0FBQXZCLENBQUEsRUFBQW1CLENBQUEsWUFBQW5CLENBQUE7QUFBQSxTQUFBd0IsY0FBQTNCLENBQUEsYUFBQUUsQ0FBQSxNQUFBQSxDQUFBLEdBQUEwQixTQUFBLENBQUFDLE1BQUEsRUFBQTNCLENBQUEsVUFBQUMsQ0FBQSxXQUFBeUIsU0FBQSxDQUFBMUIsQ0FBQSxJQUFBMEIsU0FBQSxDQUFBMUIsQ0FBQSxRQUFBQSxDQUFBLE9BQUFpQixPQUFBLENBQUFSLE1BQUEsQ0FBQVIsQ0FBQSxPQUFBMkIsT0FBQSxXQUFBNUIsQ0FBQSxRQUFBNkIsZ0JBQUEsYUFBQS9CLENBQUEsRUFBQUUsQ0FBQSxFQUFBQyxDQUFBLENBQUFELENBQUEsU0FBQVMsTUFBQSxDQUFBcUIseUJBQUEsR0FBQXJCLE1BQUEsQ0FBQXNCLGdCQUFBLENBQUFqQyxDQUFBLEVBQUFXLE1BQUEsQ0FBQXFCLHlCQUFBLENBQUE3QixDQUFBLEtBQUFnQixPQUFBLENBQUFSLE1BQUEsQ0FBQVIsQ0FBQSxHQUFBMkIsT0FBQSxXQUFBNUIsQ0FBQSxJQUFBUyxNQUFBLENBQUFDLGNBQUEsQ0FBQVosQ0FBQSxFQUFBRSxDQUFBLEVBQUFTLE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQVYsQ0FBQSxFQUFBRCxDQUFBLGlCQUFBRixDQUFBO0FBb0NBLElBQU1rQyxjQUFjLEdBQUcsbUJBQW1CO0FBQzFDLElBQU1DLFlBQVksR0FBRyxpQkFBaUI7QUFFdEMsSUFBTUMsNEJBQTRCLEdBQUdDLDRCQUFNLENBQUNDLEdBQUcsQ0FBQTNDLGVBQUEsS0FBQUEsZUFBQSxPQUFBNEMsdUJBQUEsZ3hCQThCM0IsVUFBQUMsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDQyxXQUFXO0FBQUEsR0FHbEMsVUFBQUYsS0FBSztFQUFBLE9BQ2pCQSxLQUFLLENBQUNHLGlCQUFpQixNQUFBQyxNQUFBLENBQU1KLEtBQUssQ0FBQ0csaUJBQWlCLFVBQU8scUJBQXFCO0FBQUEsR0FDaEYsVUFBQUgsS0FBSztFQUFBLE9BQUtBLEtBQUssQ0FBQ0ssY0FBYyxjQUFBRCxNQUFBLENBQWNKLEtBQUssQ0FBQ0ssY0FBYyxXQUFRLEVBQUU7QUFBQSxDQUFDLENBT2hGO0FBRUQsSUFBTUMsZ0JBQWdCLEdBQUdULDRCQUFNLENBQUNDLEdBQUcsQ0FBQTFDLGdCQUFBLEtBQUFBLGdCQUFBLE9BQUEyQyx1QkFBQSxzWUFpQmIsVUFBQUMsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDQyxXQUFXO0FBQUEsRUFDckQ7QUFFRCxJQUFNSyxrQkFBa0IsR0FBR1YsNEJBQU0sQ0FBQ0MsR0FBRyxDQUFBekMsZ0JBQUEsS0FBQUEsZ0JBQUEsT0FBQTBDLHVCQUFBLG9YQWlCcEM7QUFFRCxJQUFNUyx3QkFBd0IsR0FBR1gsNEJBQU0sQ0FBQ0MsR0FBRyxDQUFBeEMsZ0JBQUEsS0FBQUEsZ0JBQUEsT0FBQXlDLHVCQUFBLCtiQUdyQyxVQUFBQyxLQUFLO0VBQUEsT0FBS0EsS0FBSyxDQUFDSyxjQUFjLGNBQUFELE1BQUEsQ0FBY0osS0FBSyxDQUFDSyxjQUFjLFdBQVEsRUFBRTtBQUFBLENBQUMsQ0FZaEY7QUFlRCxJQUFNSSxzQkFBc0IsZ0JBQUcsSUFBQUMsaUJBQVUsRUFBQyxVQUFDVixLQUFrQyxFQUFFVyxHQUFHLEVBQUs7RUFDckYsSUFBT0MsY0FBYyxHQUErQ1osS0FBSyxDQUFsRVksY0FBYztJQUFFQyxRQUFRLEdBQXFDYixLQUFLLENBQWxEYSxRQUFRO0lBQUVDLGFBQWEsR0FBc0JkLEtBQUssQ0FBeENjLGFBQWE7SUFBRUMsZ0JBQWdCLEdBQUlmLEtBQUssQ0FBekJlLGdCQUFnQjtFQUNoRSxJQUFNQyxhQUFhLEdBQUcsSUFBQUMsa0JBQVksRUFBQztJQUFDQyxFQUFFLEVBQUV2QjtFQUFZLENBQUMsQ0FBQztFQUN0RCxJQUFNd0IsZUFBZSxHQUFHLElBQUFGLGtCQUFZLEVBQUM7SUFBQ0MsRUFBRSxFQUFFeEI7RUFBYyxDQUFDLENBQUM7RUFDMUQsSUFBTTBCLElBQUksR0FBRyxJQUFBQyxvQkFBWSxFQUFDLENBQUNMLGFBQWEsQ0FBQ00sVUFBVSxFQUFFWCxHQUFHLENBQUMsQ0FBQztFQUMxRCxJQUFNWSxVQUFVLEdBQUdQLGFBQWEsQ0FBQ08sVUFBVSxJQUFJSixlQUFlLENBQUNJLFVBQVU7RUFDekUsb0JBQ0VyRixNQUFBLFlBQUFzRixhQUFBLENBQUM1Qiw0QkFBNEIsTUFBQTZCLFNBQUE7SUFDM0JkLEdBQUcsRUFBRVMsSUFBSztJQUNWTSxTQUFTLEVBQUUsSUFBQUMsc0JBQVUsRUFBQyxrQkFBa0IsRUFBRTtNQUFDLGFBQWEsRUFBRUo7SUFBVSxDQUFDLENBQUU7SUFDdkVLLEtBQUssRUFBQXpDLGFBQUEsQ0FBQUEsYUFBQSxLQUFNeUIsY0FBYztNQUFFaUIsU0FBUyxFQUFFQyxjQUFHLENBQUNDLFNBQVMsQ0FBQ0MsUUFBUSxDQUFDaEIsYUFBYSxDQUFDYSxTQUFTO0lBQUMsRUFBRTtJQUN2RnhCLGNBQWMsRUFBRVMsYUFBYztJQUM5QlgsaUJBQWlCLEVBQUVZO0VBQWlCLEdBQ2hDQyxhQUFhLENBQUNpQixVQUFVLEdBRTNCcEIsUUFBUSxFQUNSVSxVQUFVLGdCQUFHckYsTUFBQSxZQUFBc0YsYUFBQTtJQUFLRSxTQUFTLEVBQUM7RUFBb0IsQ0FBRSxDQUFDLEdBQUcsSUFBSSxlQUMzRHhGLE1BQUEsWUFBQXNGLGFBQUEsQ0FBQ2xCLGdCQUFnQixNQUFBbUIsU0FBQTtJQUFDQyxTQUFTLEVBQUM7RUFBb0IsR0FBS1YsYUFBYSxDQUFDa0IsU0FBUyxnQkFDMUVoRyxNQUFBLFlBQUFzRixhQUFBLENBQUM3RSxNQUFBLENBQUF3RixhQUFhO0lBQUNDLE1BQU0sRUFBQztFQUFNLENBQUUsQ0FDZCxDQUFDLGVBQ25CbEcsTUFBQSxZQUFBc0YsYUFBQSxDQUFDakIsa0JBQWtCLE1BQUFrQixTQUFBO0lBQ2pCQyxTQUFTLEVBQUMsc0JBQXNCO0lBQ2hDZixHQUFHLEVBQUVRLGVBQWUsQ0FBQ0c7RUFBVyxHQUM1QkgsZUFBZSxDQUFDZSxTQUFTLGdCQUU3QmhHLE1BQUEsWUFBQXNGLGFBQUEsQ0FBQzdFLE1BQUEsQ0FBQTBGLHNCQUFzQjtJQUFDRCxNQUFNLEVBQUM7RUFBTSxDQUFFLENBQ3JCLENBQ1EsQ0FBQztBQUVuQyxDQUFDLENBQUM7QUFTRixJQUFNRSxlQUFlLEdBQUcsSUFBQUMsMkJBQVMsRUFDL0IsVUFBQUMsSUFBQSxFQU8yQztFQUFBLElBQUFDLHFCQUFBO0VBQUEsSUFOekNDLGdCQUFnQixHQUFBRixJQUFBLENBQWhCRSxnQkFBZ0I7SUFDaEI3QixRQUFRLEdBQUEyQixJQUFBLENBQVIzQixRQUFRO0lBQ1I4QixXQUFXLEdBQUFILElBQUEsQ0FBWEcsV0FBVztJQUNYQyxxQkFBcUIsR0FBQUosSUFBQSxDQUFyQkkscUJBQXFCO0lBQ3JCQyxRQUFRLEdBQUFMLElBQUEsQ0FBUkssUUFBUTtJQUNSNUMsS0FBSyxHQUFBdUMsSUFBQSxDQUFMdkMsS0FBSztFQUVMLElBQU02QyxRQUFRLEdBQUdILFdBQVcsYUFBWEEsV0FBVyxnQkFBQUYscUJBQUEsR0FBWEUsV0FBVyxDQUFFSSxTQUFTLGNBQUFOLHFCQUFBLHVCQUF0QkEscUJBQUEsQ0FBd0JLLFFBQVE7RUFFakQsSUFBTUUsZ0JBQWdCLEdBQUcsSUFBQUMsYUFBTSxFQUFjLElBQUksQ0FBQztFQUNsRCxJQUFNQyxnQkFBZ0IsR0FBRyxJQUFBQyxrQkFBVyxFQUNsQyxVQUFBQyxXQUFXO0lBQUEsT0FBSVIscUJBQXFCLENBQUMsV0FBVyxFQUFFUSxXQUFXLENBQUM7RUFBQSxHQUM5RCxDQUFDUixxQkFBcUIsQ0FDeEIsQ0FBQztFQUNELElBQUFTLGtCQUFBLEdBQ0UsSUFBQUMsOEJBQWlCLEVBQUM7TUFDaEJOLGdCQUFnQixFQUFoQkEsZ0JBQWdCO01BQ2hCTixnQkFBZ0IsRUFBaEJBLGdCQUFnQjtNQUNoQnpDLEtBQUssRUFBTEEsS0FBSztNQUNMNkMsUUFBUSxFQUFSQSxRQUFRO01BQ1JJLGdCQUFnQixFQUFoQkEsZ0JBQWdCO01BQ2hCSyxTQUFTLEVBQUVWLFFBQVEsYUFBUkEsUUFBUSx1QkFBUkEsUUFBUSxDQUFFVCxNQUFNO01BQzNCb0IsUUFBUSxFQUFFWCxRQUFRLGFBQVJBLFFBQVEsdUJBQVJBLFFBQVEsQ0FBRVk7SUFDdEIsQ0FBQyxDQUFDO0lBVEc3QyxjQUFjLEdBQUF5QyxrQkFBQSxDQUFkekMsY0FBYztJQUFFOEMsY0FBYyxHQUFBTCxrQkFBQSxDQUFkSyxjQUFjO0lBQUVDLFdBQVcsR0FBQU4sa0JBQUEsQ0FBWE0sV0FBVztJQUFFQyxNQUFNLEdBQUFQLGtCQUFBLENBQU5PLE1BQU07SUFBRTlDLGFBQWEsR0FBQXVDLGtCQUFBLENBQWJ2QyxhQUFhO0lBQUVDLGdCQUFnQixHQUFBc0Msa0JBQUEsQ0FBaEJ0QyxnQkFBZ0I7RUFXM0YsSUFBTThDLGVBQWUsR0FBRyxJQUFBVixrQkFBVyxFQUNqQyxVQUFBVyxLQUFLLEVBQUk7SUFDUCxRQUFRQSxLQUFLLENBQUNDLE1BQU0sQ0FBQzdDLEVBQUU7TUFDckIsS0FBS3hCLGNBQWM7UUFDakJpRSxXQUFXLENBQUMsQ0FBQztRQUNiO01BQ0Y7UUFDRUQsY0FBYyxDQUFDLENBQUM7SUFDcEI7RUFDRixDQUFDLEVBQ0QsQ0FBQ0EsY0FBYyxFQUFFQyxXQUFXLENBQzlCLENBQUM7RUFDRCxJQUFNSyxhQUFhLEdBQUcsSUFBQWIsa0JBQVcsRUFBQ08sY0FBYyxFQUFFLENBQUNBLGNBQWMsQ0FBQyxDQUFDO0VBQ25FLElBQU1PLGNBQWMsR0FBRyxJQUFBZCxrQkFBVyxFQUNoQyxVQUFBVyxLQUFLLEVBQUk7SUFDUCxRQUFRQSxLQUFLLENBQUNDLE1BQU0sQ0FBQzdDLEVBQUU7TUFDckIsS0FBS3hCLGNBQWM7UUFDakJrRSxNQUFNLENBQUNFLEtBQUssQ0FBQ0ksS0FBSyxDQUFDQyxDQUFDLENBQUM7UUFDckI7SUFDSjtFQUNGLENBQUMsRUFDRCxDQUFDUCxNQUFNLENBQ1QsQ0FBQztFQUVELG9CQUNFMUgsTUFBQSxZQUFBc0YsYUFBQSxDQUFDbkYsS0FBQSxDQUFBK0gsVUFBVTtJQUNUQyxXQUFXLEVBQUVSLGVBQWdCO0lBQzdCUyxVQUFVLEVBQUVMLGNBQWU7SUFDM0JNLFNBQVMsRUFBRVAsYUFBYztJQUN6QlEsU0FBUyxFQUFFLENBQUNDLGdDQUFxQjtFQUFFLGdCQUVuQ3ZJLE1BQUEsWUFBQXNGLGFBQUEsQ0FBQ2Ysc0JBQXNCO0lBQ3JCRSxHQUFHLEVBQUVxQyxnQkFBaUI7SUFDdEJwQyxjQUFjLEVBQUVBLGNBQWU7SUFDL0JFLGFBQWEsRUFBRUEsYUFBYztJQUM3QkMsZ0JBQWdCLEVBQUVBO0VBQWlCLEdBRWxDRixRQUNxQixDQUNkLENBQUM7QUFFakIsQ0FDRixDQUE2QjtBQVE3QixJQUFNNkQsaUJBQWlCLEdBQUcsSUFBQW5DLDJCQUFTLEVBQUMsVUFBQW9DLEtBQUEsRUFBbUQ7RUFBQSxJQUFBQyxxQkFBQTtFQUFBLElBQWpEOUIsUUFBUSxHQUFBNkIsS0FBQSxDQUFSN0IsUUFBUTtJQUFFSixnQkFBZ0IsR0FBQWlDLEtBQUEsQ0FBaEJqQyxnQkFBZ0I7SUFBRXpDLEtBQUssR0FBQTBFLEtBQUEsQ0FBTDFFLEtBQUs7SUFBRVksUUFBUSxHQUFBOEQsS0FBQSxDQUFSOUQsUUFBUTtFQUMvRSxJQUFNZ0UsWUFBMkQsR0FBRyxJQUFBNUIsYUFBTSxFQUFDLElBQUksQ0FBQztFQUNoRixJQUFNRCxnQkFBK0QsR0FBRyxJQUFBQyxhQUFNLEVBQUMsSUFBSSxDQUFDO0VBRXBGLElBQUE2QixtQkFBQSxHQUF3QyxJQUFBeEIsOEJBQWlCLEVBQUM7TUFDeEROLGdCQUFnQixFQUFoQkEsZ0JBQWdCO01BQ2hCTixnQkFBZ0IsRUFBaEJBLGdCQUFnQjtNQUNoQnpDLEtBQUssRUFBTEEsS0FBSztNQUNMNkMsUUFBUSxFQUFSQSxRQUFRO01BQ1JJLGdCQUFnQixFQUFFLFNBQWxCQSxnQkFBZ0JBLENBQUEsRUFBUTtRQUN0QjtNQUFBO0lBRUosQ0FBQyxDQUFDO0lBUkt0QyxjQUFjLEdBQUFrRSxtQkFBQSxDQUFkbEUsY0FBYztJQUFFRSxhQUFhLEdBQUFnRSxtQkFBQSxDQUFiaEUsYUFBYTtFQVVwQyxJQUFNaUUsVUFBVSxJQUFBSCxxQkFBQSxHQUFHQyxZQUFZLENBQUNHLE9BQU8sY0FBQUoscUJBQUEsZ0JBQUFBLHFCQUFBLEdBQXBCQSxxQkFBQSxDQUNmSyxPQUFPLENBQUMsc0JBQXNCLENBQUMsY0FBQUwscUJBQUEsdUJBRGhCQSxxQkFBQSxDQUVmTSxhQUFhLENBQUMsaUNBQWlDLENBQUM7RUFFcEQsb0JBQ0VoSixNQUFBLFlBQUFzRixhQUFBO0lBQUtiLEdBQUcsRUFBRWtFO0VBQWEsR0FDcEJFLFVBQVUsZ0JBQ1AsSUFBQUksc0JBQVksZ0JBQ1ZqSixNQUFBLFlBQUFzRixhQUFBO0lBQ0VFLFNBQVMsRUFBQyxjQUFjO0lBQ3hCZixHQUFHLEVBQUVxQyxnQkFBaUI7SUFDdEJwQixLQUFLLEVBQUF6QyxhQUFBLENBQUFBLGFBQUEsS0FBTXlCLGNBQWM7TUFBRXdFLFFBQVEsRUFBRTtJQUFVO0VBQUUsZ0JBRWpEbEosTUFBQSxZQUFBc0YsYUFBQSxDQUFDaEIsd0JBQXdCO0lBQUNILGNBQWMsRUFBRVM7RUFBYyxHQUNyREQsUUFDdUIsQ0FDdkIsQ0FBQyxFQUNOa0UsVUFDRixDQUFDLEdBQ0QsSUFDRCxDQUFDO0FBRVYsQ0FBQyxDQUFxQztBQUV0Q00scUJBQXFCLENBQUNDLElBQUksR0FBRyxDQUFDQyw2QkFBd0IsRUFBRUMsMkJBQXNCLEVBQUVDLHFCQUFnQixDQUFDO0FBeUNqRyxJQUFNQyxrQkFBa0IsR0FBRztFQUN6QkMsTUFBTSxFQUFFLFNBQVJBLE1BQU1BLENBQUUzRixLQUFLO0lBQUEsb0JBQUk5RCxNQUFBLFlBQUFzRixhQUFBLENBQUM3RSxNQUFBLENBQUFpSixNQUFNLE1BQUFuRSxTQUFBLGlCQUFLekIsS0FBSztNQUFFb0MsTUFBTSxFQUFDO0lBQU0sRUFBRSxDQUFDO0VBQUE7QUFDdEQsQ0FBQztBQUVELElBQU15RCx1QkFBdUIsR0FBRyxTQUExQkEsdUJBQXVCQSxDQUFBQyxLQUFBLEVBeUJ5QjtFQUFBLElBQUFDLHNCQUFBLEVBQUFDLG9CQUFBO0VBQUEsSUF4QnBEQyxNQUFNLEdBQUFILEtBQUEsQ0FBTkcsTUFBTTtJQUNOQyxVQUFVLEdBQUFKLEtBQUEsQ0FBVkksVUFBVTtJQUNWdkQsV0FBVyxHQUFBbUQsS0FBQSxDQUFYbkQsV0FBVztJQUNYd0QsS0FBSyxHQUFBTCxLQUFBLENBQUxLLEtBQUs7SUFDTEMsa0JBQWtCLEdBQUFOLEtBQUEsQ0FBbEJNLGtCQUFrQjtJQUNsQkMsUUFBUSxHQUFBUCxLQUFBLENBQVJPLFFBQVE7SUFDUkMsYUFBYSxHQUFBUixLQUFBLENBQWJRLGFBQWE7SUFBQUMsaUJBQUEsR0FBQVQsS0FBQSxDQUNiVSxXQUFXO0lBQVhBLFdBQVcsR0FBQUQsaUJBQUEsY0FBR2Isa0JBQWtCLEdBQUFhLGlCQUFBO0lBQ2hDMUQsUUFBUSxHQUFBaUQsS0FBQSxDQUFSakQsUUFBUTtJQUNSNEQsc0JBQXNCLEdBQUFYLEtBQUEsQ0FBdEJXLHNCQUFzQjtJQUN0QkMsdUJBQXVCLEdBQUFaLEtBQUEsQ0FBdkJZLHVCQUF1QjtJQUN2QkMsd0JBQXdCLEdBQUFiLEtBQUEsQ0FBeEJhLHdCQUF3QjtJQUN4QkMsaUJBQWlCLEdBQUFkLEtBQUEsQ0FBakJjLGlCQUFpQjtJQUNqQkMsZUFBZSxHQUFBZixLQUFBLENBQWZlLGVBQWU7SUFDZmpFLHFCQUFxQixHQUFBa0QsS0FBQSxDQUFyQmxELHFCQUFxQjtJQUFBa0UscUJBQUEsR0FBQWhCLEtBQUEsQ0FDckJpQix1QkFBdUI7SUFBdkJBLHVCQUF1QixHQUFBRCxxQkFBQSxjQUFHLElBQUksR0FBQUEscUJBQUE7SUFDOUJwRixTQUFTLEdBQUFvRSxLQUFBLENBQVRwRSxTQUFTO0lBQ1RzRixPQUFPLEdBQUFsQixLQUFBLENBQVBrQixPQUFPO0lBQ1BDLFNBQVMsR0FBQW5CLEtBQUEsQ0FBVG1CLFNBQVM7SUFDVEMsbUJBQW1CLEdBQUFwQixLQUFBLENBQW5Cb0IsbUJBQW1CO0lBQ25CQyxRQUFRLEdBQUFyQixLQUFBLENBQVJxQixRQUFRO0lBQ1JDLGlCQUFpQixHQUFBdEIsS0FBQSxDQUFqQnNCLGlCQUFpQjtJQUNqQkMsZUFBZSxHQUFBdkIsS0FBQSxDQUFmdUIsZUFBZTtJQUNmQyxTQUFTLEdBQUF4QixLQUFBLENBQVR3QixTQUFTO0VBRVQsSUFBTUMsV0FBVyxHQUFHLENBQUExRSxRQUFRLGFBQVJBLFFBQVEsdUJBQVJBLFFBQVEsQ0FBRTJFLFlBQVksTUFBS0MsdUJBQVksQ0FBQ0MsYUFBYTtFQUN6RSxJQUFNaEYsZ0JBQWdCLEdBQUdpRixPQUFPLENBQUNkLGVBQWUsQ0FBQztFQUNqRCxJQUFNL0QsUUFBUSxHQUFHSCxXQUFXLGFBQVhBLFdBQVcsZ0JBQUFvRCxzQkFBQSxHQUFYcEQsV0FBVyxDQUFFSSxTQUFTLGNBQUFnRCxzQkFBQSx1QkFBdEJBLHNCQUFBLENBQXdCakQsUUFBUTtFQUVqRCxJQUFNQyxTQUFTLEdBQUcsQ0FBQUosV0FBVyxhQUFYQSxXQUFXLHVCQUFYQSxXQUFXLENBQUVJLFNBQVMsS0FBSyxDQUFDLENBQXlCO0VBQ3ZFLElBQUE2RSxLQUFBLEdBQThCN0UsU0FBUyxJQUFJLENBQUMsQ0FBQztJQUF0Q2dCLE1BQU0sR0FBQTZELEtBQUEsQ0FBTjdELE1BQU07SUFBRThELFdBQVcsR0FBQUQsS0FBQSxDQUFYQyxXQUFXO0VBQzFCLElBQU1DLFdBQVcsR0FBRyxJQUFBQyxpQkFBVSxFQUFDQyxvQkFBVyxDQUFDO0VBRTNDLElBQU1DLE9BQU8sR0FBRyxJQUFBOUUsa0JBQVcsRUFBQyxZQUFNO0lBQUEsSUFBQStFLG9CQUFBO0lBQ2hDdEIsaUJBQWlCLGFBQWpCQSxpQkFBaUIsZUFBakJBLGlCQUFpQixDQUFHLENBQUM7SUFDckIsSUFBSWpFLFdBQVcsYUFBWEEsV0FBVyxnQkFBQXVGLG9CQUFBLEdBQVh2RixXQUFXLENBQUV3RixPQUFPLGNBQUFELG9CQUFBLGVBQXBCQSxvQkFBQSxDQUFzQm5FLE1BQU0sRUFBRTtNQUNoQ3FDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQztJQUMvQjtJQUNBQSxrQkFBa0IsQ0FBQyxXQUFXLENBQUM7RUFDakMsQ0FBQyxFQUFFLENBQUNRLGlCQUFpQixFQUFFUixrQkFBa0IsRUFBRXpELFdBQVcsQ0FBQyxDQUFDO0VBQ3hELElBQU15RixZQUFZLEdBQUcsSUFBQWpGLGtCQUFXLEVBQzlCLFVBQUEzRixDQUFDLEVBQUk7SUFDSEEsQ0FBQyxDQUFDNkssY0FBYyxDQUFDLENBQUM7SUFDbEJqQyxrQkFBa0IsQ0FBQyxXQUFXLENBQUM7RUFDakMsQ0FBQyxFQUNELENBQUNBLGtCQUFrQixDQUNyQixDQUFDO0VBRUQsSUFBSVksT0FBTyxJQUFJLENBQUNPLFdBQVcsSUFBSUosUUFBUSxLQUFLLENBQUMsRUFBRTtJQUM3QyxPQUFPLElBQUk7RUFDYjtFQUNBLElBQUlJLFdBQVcsSUFBSUosUUFBUSxLQUFLLENBQUMsRUFBRTtJQUNqQyxPQUFPLElBQUk7RUFDYjtFQUVBLElBQUksQ0FBQ3BFLFNBQVMsQ0FBQ3VGLElBQUksRUFBRTtJQUNuQixPQUFPLElBQUk7RUFDYjtFQUVBLElBQU1DLFdBQVcsR0FBR3hFLE1BQU0sZ0JBQ3hCN0gsTUFBQSxZQUFBc0YsYUFBQSxDQUFDNkYsZUFBZTtJQUNkbEIsS0FBSyxFQUFFQSxLQUFNO0lBQ2JxQyxNQUFNLEVBQUMsb0JBQW9CO0lBQ3RCUCxPQUFPLEVBQUVHLFlBQVk7SUFBRUssUUFBUSxFQUFFLEtBQUs7SUFBRUMsWUFBWSxFQUFFLEtBQUs7SUFDaEVyQyxRQUFRLEVBQUVBLFFBQVM7SUFDbkJDLGFBQWEsRUFBRUEsYUFBYztJQUM3QnpELFFBQVEsRUFBRUEsUUFBUztJQUNuQjhELHdCQUF3QixFQUFFQSx3QkFBeUI7SUFDbkRJLHVCQUF1QixFQUFFQSx1QkFBd0I7SUFDakRyRixTQUFTLEVBQUVBO0VBQVUsZ0JBRXJCeEYsTUFBQSxZQUFBc0YsYUFBQSxDQUFDOEYsU0FBUztJQUNSckIsTUFBTSxFQUFFQSxNQUFPO0lBQ2ZDLFVBQVUsRUFBRUEsVUFBVztJQUN2QnJELFFBQVEsRUFBRUEsUUFBUztJQUNuQmdGLFdBQVcsRUFBRUEsV0FBWTtJQUN6QnhCLFFBQVEsRUFBRUEsUUFBUztJQUNuQkksc0JBQXNCLEVBQUVBLHNCQUF1QjtJQUMvQ0MsdUJBQXVCLEVBQUVBLHVCQUF3QjtJQUNqRE0sT0FBTyxFQUFFQSxPQUFRO0lBQ2pCQyxTQUFTLEVBQUVBLFNBQVU7SUFDckIwQixnQkFBZ0IsRUFBRXpCO0VBQW9CLENBQ3ZDLENBQ2MsQ0FBQyxHQUNoQixJQUFJO0VBRVIsb0JBQ0VoTCxNQUFBLFlBQUFzRixhQUFBLENBQUF0RixNQUFBLFlBQUEwTSxRQUFBLFFBQ0c3RSxNQUFNLEdBQ0wsSUFBQThFLHVCQUFnQixFQUFDQyx3QkFBZ0IsQ0FBQyxHQUNoQ1AsV0FBVyxHQUNUbEMsUUFBUSxnQkFDVm5LLE1BQUEsWUFBQXNGLGFBQUEsQ0FBQ2tELGlCQUFpQjtJQUFDaEMsZ0JBQWdCLEVBQUVBLGdCQUFpQjtJQUFDSSxRQUFRLEVBQUVBO0VBQVMsR0FDdkV5RixXQUNnQixDQUFDLGtCQUVwQixJQUFBcEQsc0JBQVksZ0JBQ1ZqSixNQUFBLFlBQUFzRixhQUFBLENBQUNjLGVBQWU7SUFDZEksZ0JBQWdCLEVBQUVBLGdCQUFpQjtJQUNuQ0MsV0FBVyxFQUFFQSxXQUFZO0lBQ3pCQyxxQkFBcUIsRUFBRUEscUJBQXNCO0lBQzdDQyxRQUFRLEVBQUVBO0VBQVMsR0FFbEIwRixXQUNjLENBQUMsR0FBQXZDLG9CQUFBLEdBQ2xCOEIsV0FBVyxhQUFYQSxXQUFXLHVCQUFYQSxXQUFXLENBQUU5QyxPQUFPLGNBQUFnQixvQkFBQSxjQUFBQSxvQkFBQSxHQUFJK0MsUUFBUSxDQUFDQyxJQUNuQyxDQUFDLENBQ0YsR0FDQyxJQUFJLEVBQ1AsQ0FBQzNDLFFBQVEsZ0JBQ1JuSyxNQUFBLFlBQUFzRixhQUFBLENBQUM0RixpQkFBaUI7SUFBQ2xHLEVBQUUsRUFBQyxhQUFhO0lBQUMrSCxPQUFPLEVBQUM7RUFBb0IsZ0JBQzlEL00sTUFBQSxZQUFBc0YsYUFBQSxDQUFDNUUsa0JBQUEsQ0FBQXNNLGdCQUFnQjtJQUFDeEgsU0FBUyxFQUFDLGdDQUFnQztJQUFDdUcsT0FBTyxFQUFFQTtFQUFRLGdCQUM1RS9MLE1BQUEsWUFBQXNGLGFBQUEsQ0FBQ2dGLFdBQVcsQ0FBQ2IsTUFBTTtJQUFDdkQsTUFBTSxFQUFDO0VBQU0sQ0FBRSxDQUNuQixDQUNELENBQUMsR0FDbEIsSUFDSixDQUFDO0FBRVAsQ0FBQztBQUVELFNBQVNpRCxxQkFBcUJBLENBQzVCK0IsaUJBQThELEVBQzlEQyxlQUEwRCxFQUMxREMsU0FBOEMsRUFDakI7RUFDN0IsT0FBTyxVQUFDdEgsS0FBMEI7SUFBQSxvQkFDaEM5RCxNQUFBLFlBQUFzRixhQUFBLENBQUNxRSx1QkFBdUIsTUFBQXBFLFNBQUEsaUJBQ2xCekIsS0FBSztNQUNUb0gsaUJBQWlCLEVBQUVBLGlCQUFrQjtNQUNyQ0MsZUFBZSxFQUFFQSxlQUFnQjtNQUNqQ0MsU0FBUyxFQUFFQTtJQUFVLEVBQ3RCLENBQUM7RUFBQSxDQUNIO0FBQ0g7QUFBQyxJQUFBNkIsUUFBQSxHQUFBQyxPQUFBLGNBRWMvRCxxQkFBcUIiLCJpZ25vcmVMaXN0IjpbXX0=
|
package/dist/map/map-legend.d.ts
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import React, { FC, ComponentType } from 'react';
|
|
2
2
|
import ColorLegendFactory, { LegendRowFactory } from '../common/color-legend';
|
|
3
3
|
import { Layer, LayerBaseConfig, VisualChannel, VisualChannelDescription } from '@kepler.gl/layers';
|
|
4
|
-
import { LayerVisConfig, MapState, RGBColor } from '@kepler.gl/types';
|
|
4
|
+
import { LayerVisConfig, LayerOrder, MapState, RGBColor } from '@kepler.gl/types';
|
|
5
5
|
import PanelHeaderActionFactory from '../side-panel/panel-header-action';
|
|
6
6
|
interface StyledMapControlLegendProps {
|
|
7
7
|
width?: number;
|
|
8
|
-
last?: boolean;
|
|
8
|
+
$last?: boolean;
|
|
9
9
|
}
|
|
10
|
-
export declare const StyledMapControlLegend: import("styled-components").
|
|
10
|
+
export declare const StyledMapControlLegend: import("styled-components/dist/types").IStyledComponentBase<"web", import("styled-components").FastOmit<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof StyledMapControlLegendProps> & StyledMapControlLegendProps, never> & Partial<Pick<import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, keyof StyledMapControlLegendProps> & StyledMapControlLegendProps, never>>> & string;
|
|
11
11
|
export declare const VisualChannelMetric: ({ name }: {
|
|
12
12
|
name: any;
|
|
13
13
|
}) => React.JSX.Element;
|
|
@@ -58,6 +58,15 @@ export type LayerLegendHeaderProps = {
|
|
|
58
58
|
};
|
|
59
59
|
isExport?: boolean;
|
|
60
60
|
onToggleLayerVisibility?: (layer: Layer) => void;
|
|
61
|
+
isSplit?: boolean;
|
|
62
|
+
splitMaps?: {
|
|
63
|
+
layers: {
|
|
64
|
+
[key: string]: boolean;
|
|
65
|
+
};
|
|
66
|
+
}[];
|
|
67
|
+
onMapToggleLayer?: (mapIndex: number, layerId: string) => void;
|
|
68
|
+
isExpanded?: boolean;
|
|
69
|
+
onToggleExpanded?: () => void;
|
|
61
70
|
};
|
|
62
71
|
export declare function LayerLegendHeaderFactory(): React.FC<LayerLegendHeaderProps>;
|
|
63
72
|
export type LayerLegendContentProps = {
|
|
@@ -75,6 +84,7 @@ export declare namespace LayerLegendContentFactory {
|
|
|
75
84
|
}
|
|
76
85
|
export type MapLegendProps = {
|
|
77
86
|
layers?: ReadonlyArray<Layer>;
|
|
87
|
+
layerOrder?: LayerOrder;
|
|
78
88
|
width?: number;
|
|
79
89
|
mapState?: MapState;
|
|
80
90
|
options?: {
|
|
@@ -84,6 +94,13 @@ export type MapLegendProps = {
|
|
|
84
94
|
isExport?: boolean;
|
|
85
95
|
onLayerVisConfigChange?: (oldLayer: Layer, newVisConfig: Partial<LayerVisConfig>) => void;
|
|
86
96
|
onToggleLayerVisibility?: (layer: Layer) => void;
|
|
97
|
+
onMapToggleLayer?: (mapIndex: number, layerId: string) => void;
|
|
98
|
+
isSplit?: boolean;
|
|
99
|
+
splitMaps?: {
|
|
100
|
+
layers: {
|
|
101
|
+
[key: string]: boolean;
|
|
102
|
+
};
|
|
103
|
+
}[];
|
|
87
104
|
actionIcons?: MapLegendIcons;
|
|
88
105
|
};
|
|
89
106
|
declare function MapLegendFactory(LayerLegendHeader: ReturnType<typeof LayerLegendHeaderFactory>, LayerLegendContent: ReturnType<typeof LayerLegendContentFactory>): React.FC<MapLegendProps>;
|