@kepler.gl/components 3.0.0-alpha.0 → 3.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bottom-widget.d.ts +11 -38
- package/dist/bottom-widget.js +43 -99
- package/dist/common/action-panel.d.ts +2 -2
- package/dist/common/action-panel.js +4 -4
- package/dist/common/animation-control/animation-control.d.ts +19 -18
- package/dist/common/animation-control/animation-control.js +59 -81
- package/dist/common/animation-control/animation-controller.d.ts +6 -2
- package/dist/common/animation-control/animation-controller.js +50 -36
- package/dist/common/animation-control/animation-speed-slider.js +2 -2
- package/dist/common/animation-control/animation-window-control.js +1 -1
- package/dist/common/animation-control/floating-time-display.d.ts +2 -2
- package/dist/common/animation-control/floating-time-display.js +2 -2
- package/dist/common/animation-control/play-control.d.ts +2 -2
- package/dist/common/animation-control/play-control.js +1 -1
- package/dist/common/animation-control/playback-controls.d.ts +7 -7
- package/dist/common/animation-control/playback-controls.js +6 -6
- package/dist/common/animation-control/reset-control.d.ts +2 -2
- package/dist/common/animation-control/reset-control.js +1 -1
- package/dist/common/animation-control/speed-control.d.ts +2 -2
- package/dist/common/animation-control/speed-control.js +2 -2
- package/dist/common/animation-control/window-action-control.d.ts +2 -2
- package/dist/common/animation-control/window-action-control.js +1 -1
- package/dist/common/checkbox.d.ts +2 -2
- package/dist/common/checkbox.js +3 -3
- package/dist/common/color-legend.d.ts +3 -3
- package/dist/common/color-legend.js +11 -17
- package/dist/common/data-table/button.d.ts +1 -1
- package/dist/common/data-table/button.js +2 -2
- package/dist/common/data-table/canvas.js +2 -2
- package/dist/common/data-table/cell-size.js +44 -13
- package/dist/common/data-table/display-format.d.ts +25 -0
- package/dist/common/data-table/display-format.js +169 -0
- package/dist/common/data-table/grid.d.ts +5 -2
- package/dist/common/data-table/grid.js +45 -5
- package/dist/common/data-table/header-cell.d.ts +4 -1
- package/dist/common/data-table/header-cell.js +66 -29
- package/dist/common/data-table/index.d.ts +27 -34
- package/dist/common/data-table/index.js +148 -62
- package/dist/common/data-table/option-dropdown.d.ts +17 -3
- package/dist/common/data-table/option-dropdown.js +86 -13
- package/dist/common/dataset-label.d.ts +2 -2
- package/dist/common/dataset-label.js +3 -3
- package/dist/common/error-boundary.d.ts +6 -2
- package/dist/common/error-boundary.js +2 -2
- package/dist/common/field-selector.d.ts +9 -3
- package/dist/common/field-selector.js +3 -3
- package/dist/common/field-token.d.ts +8 -0
- package/dist/common/field-token.js +7 -3
- package/dist/common/file-uploader/file-drop.d.ts +3 -2
- package/dist/common/file-uploader/file-drop.js +2 -2
- package/dist/common/file-uploader/file-upload-progress.js +2 -2
- package/dist/common/file-uploader/file-upload.d.ts +2 -6
- package/dist/common/file-uploader/file-upload.js +2 -2
- package/dist/common/file-uploader/upload-button.d.ts +1 -0
- package/dist/common/file-uploader/upload-button.js +2 -2
- package/dist/common/histogram-plot.d.ts +2 -2
- package/dist/common/histogram-plot.js +18 -12
- package/dist/common/icon-button.d.ts +2 -1
- package/dist/common/icon-button.js +2 -2
- package/dist/common/icons/add.d.ts +2 -2
- package/dist/common/icons/add.js +2 -2
- package/dist/common/icons/anchor_window.d.ts +2 -2
- package/dist/common/icons/anchor_window.js +2 -2
- package/dist/common/icons/arrow-down-alt.d.ts +2 -2
- package/dist/common/icons/arrow-down-alt.js +2 -2
- package/dist/common/icons/arrow-down-solid.d.ts +2 -2
- package/dist/common/icons/arrow-down-solid.js +2 -2
- package/dist/common/icons/arrow-down.d.ts +2 -2
- package/dist/common/icons/arrow-down.js +2 -2
- package/dist/common/icons/arrow-left.d.ts +2 -2
- package/dist/common/icons/arrow-left.js +2 -2
- package/dist/common/icons/arrow-right.d.ts +2 -2
- package/dist/common/icons/arrow-right.js +2 -2
- package/dist/common/icons/arrow-up-alt.d.ts +2 -2
- package/dist/common/icons/arrow-up-alt.js +2 -2
- package/dist/common/icons/arrow-up-solid.d.ts +2 -2
- package/dist/common/icons/arrow-up-solid.js +2 -2
- package/dist/common/icons/arrow-up.d.ts +2 -2
- package/dist/common/icons/arrow-up.js +2 -2
- package/dist/common/icons/base.d.ts +1 -1
- package/dist/common/icons/base.js +2 -2
- package/dist/common/icons/bug.d.ts +2 -2
- package/dist/common/icons/bug.js +2 -2
- package/dist/common/icons/cancel.d.ts +2 -2
- package/dist/common/icons/cancel.js +2 -2
- package/dist/common/icons/checkmark.d.ts +2 -2
- package/dist/common/icons/checkmark.js +2 -2
- package/dist/common/icons/clipboard.d.ts +2 -2
- package/dist/common/icons/clipboard.js +2 -2
- package/dist/common/icons/clock.d.ts +2 -2
- package/dist/common/icons/clock.js +2 -2
- package/dist/common/icons/close.d.ts +2 -2
- package/dist/common/icons/close.js +2 -2
- package/dist/common/icons/code-alt.d.ts +2 -2
- package/dist/common/icons/code-alt.js +2 -2
- package/dist/common/icons/copy.d.ts +2 -2
- package/dist/common/icons/copy.js +2 -2
- package/dist/common/icons/crosshairs.d.ts +2 -2
- package/dist/common/icons/crosshairs.js +2 -2
- package/dist/common/icons/cube-3d.d.ts +2 -2
- package/dist/common/icons/cube-3d.js +2 -2
- package/dist/common/icons/cursor-click.d.ts +2 -2
- package/dist/common/icons/cursor-click.js +2 -2
- package/dist/common/icons/cursor-point.d.ts +14 -0
- package/dist/common/icons/cursor-point.js +89 -0
- package/dist/common/icons/data-table.d.ts +2 -2
- package/dist/common/icons/data-table.js +2 -2
- package/dist/common/icons/db.d.ts +2 -2
- package/dist/common/icons/db.js +2 -2
- package/dist/common/icons/delete.d.ts +2 -2
- package/dist/common/icons/delete.js +2 -2
- package/dist/common/icons/docs.d.ts +2 -2
- package/dist/common/icons/docs.js +2 -2
- package/dist/common/icons/drag-n-drop.d.ts +2 -2
- package/dist/common/icons/drag-n-drop.js +2 -2
- package/dist/common/icons/draw-polygon.d.ts +2 -2
- package/dist/common/icons/draw-polygon.js +2 -2
- package/dist/common/icons/email.d.ts +2 -2
- package/dist/common/icons/email.js +2 -2
- package/dist/common/icons/expand.d.ts +2 -2
- package/dist/common/icons/expand.js +2 -2
- package/dist/common/icons/eye-seen.d.ts +2 -2
- package/dist/common/icons/eye-seen.js +2 -2
- package/dist/common/icons/eye-unseen.d.ts +2 -2
- package/dist/common/icons/eye-unseen.js +2 -2
- package/dist/common/icons/file-type.d.ts +2 -2
- package/dist/common/icons/file-type.js +2 -2
- package/dist/common/icons/file.d.ts +2 -2
- package/dist/common/icons/file.js +2 -2
- package/dist/common/icons/files.d.ts +1 -1
- package/dist/common/icons/files.js +2 -2
- package/dist/common/icons/filter-funnel.d.ts +2 -2
- package/dist/common/icons/filter-funnel.js +2 -2
- package/dist/common/icons/free-window.d.ts +2 -2
- package/dist/common/icons/free-window.js +2 -2
- package/dist/common/icons/gear.d.ts +2 -2
- package/dist/common/icons/gear.js +2 -2
- package/dist/common/icons/hash.d.ts +2 -2
- package/dist/common/icons/hash.js +2 -2
- package/dist/common/icons/histogram.d.ts +1 -1
- package/dist/common/icons/histogram.js +2 -2
- package/dist/common/icons/index.d.ts +1 -0
- package/dist/common/icons/index.js +10 -2
- package/dist/common/icons/info.d.ts +2 -2
- package/dist/common/icons/info.js +2 -2
- package/dist/common/icons/layers.d.ts +2 -2
- package/dist/common/icons/layers.js +2 -2
- package/dist/common/icons/left-arrow.d.ts +2 -2
- package/dist/common/icons/left-arrow.js +2 -2
- package/dist/common/icons/legend.d.ts +2 -2
- package/dist/common/icons/legend.js +2 -2
- package/dist/common/icons/line-chart.d.ts +2 -2
- package/dist/common/icons/line-chart.js +2 -2
- package/dist/common/icons/login.d.ts +2 -2
- package/dist/common/icons/login.js +2 -2
- package/dist/common/icons/logout.d.ts +2 -2
- package/dist/common/icons/logout.js +2 -2
- package/dist/common/icons/map-icon.d.ts +2 -2
- package/dist/common/icons/map-icon.js +2 -2
- package/dist/common/icons/map.d.ts +2 -2
- package/dist/common/icons/map.js +2 -2
- package/dist/common/icons/messages.d.ts +2 -2
- package/dist/common/icons/messages.js +2 -2
- package/dist/common/icons/minus.d.ts +2 -2
- package/dist/common/icons/minus.js +2 -2
- package/dist/common/icons/order-by-dataset.d.ts +2 -2
- package/dist/common/icons/order-by-dataset.js +2 -2
- package/dist/common/icons/order-by-list.d.ts +2 -2
- package/dist/common/icons/order-by-list.js +2 -2
- package/dist/common/icons/pause.d.ts +2 -2
- package/dist/common/icons/pause.js +2 -2
- package/dist/common/icons/picture.d.ts +1 -1
- package/dist/common/icons/picture.js +2 -2
- package/dist/common/icons/pin.d.ts +2 -2
- package/dist/common/icons/pin.js +2 -2
- package/dist/common/icons/play.d.ts +2 -2
- package/dist/common/icons/play.js +2 -2
- package/dist/common/icons/polygon.d.ts +2 -2
- package/dist/common/icons/polygon.js +2 -2
- package/dist/common/icons/rectangle.d.ts +2 -2
- package/dist/common/icons/rectangle.js +2 -2
- package/dist/common/icons/reduce.d.ts +2 -2
- package/dist/common/icons/reduce.js +2 -2
- package/dist/common/icons/reset.d.ts +2 -2
- package/dist/common/icons/reset.js +2 -2
- package/dist/common/icons/rocket.d.ts +2 -2
- package/dist/common/icons/rocket.js +2 -2
- package/dist/common/icons/save.d.ts +2 -2
- package/dist/common/icons/save.js +2 -2
- package/dist/common/icons/save2.d.ts +2 -2
- package/dist/common/icons/save2.js +2 -2
- package/dist/common/icons/search.d.ts +2 -2
- package/dist/common/icons/search.js +2 -2
- package/dist/common/icons/settings.d.ts +2 -2
- package/dist/common/icons/settings.js +2 -2
- package/dist/common/icons/share.d.ts +2 -2
- package/dist/common/icons/share.js +2 -2
- package/dist/common/icons/split.d.ts +2 -2
- package/dist/common/icons/split.js +2 -2
- package/dist/common/icons/square-select.d.ts +2 -2
- package/dist/common/icons/square-select.js +2 -2
- package/dist/common/icons/trash.d.ts +2 -2
- package/dist/common/icons/trash.js +2 -2
- package/dist/common/icons/vert-dots.d.ts +2 -2
- package/dist/common/icons/vert-dots.js +2 -2
- package/dist/common/icons/vert-three-dots.d.ts +2 -2
- package/dist/common/icons/vert-three-dots.js +2 -2
- package/dist/common/icons/warning-sign.d.ts +2 -2
- package/dist/common/icons/warning-sign.js +2 -2
- package/dist/common/icons/warning.d.ts +2 -2
- package/dist/common/icons/warning.js +2 -2
- package/dist/common/image-preview.d.ts +2 -2
- package/dist/common/image-preview.js +2 -2
- package/dist/common/index.d.ts +1 -1
- package/dist/common/index.js +8 -2
- package/dist/common/info-helper.d.ts +2 -2
- package/dist/common/info-helper.js +2 -2
- package/dist/common/item-selector/accessor.js +2 -2
- package/dist/common/item-selector/chickleted-input.js +2 -2
- package/dist/common/item-selector/dropdown-list.d.ts +28 -8
- package/dist/common/item-selector/dropdown-list.js +144 -25
- package/dist/common/item-selector/item-selector.d.ts +2 -3
- package/dist/common/item-selector/item-selector.js +7 -3
- package/dist/common/item-selector/typeahead.d.ts +16 -12
- package/dist/common/item-selector/typeahead.js +24 -13
- package/dist/common/line-chart.d.ts +2 -2
- package/dist/common/line-chart.js +2 -2
- package/dist/common/loading-spinner.js +2 -2
- package/dist/common/logo.d.ts +2 -2
- package/dist/common/logo.js +2 -2
- package/dist/common/map-layer-selector.d.ts +2 -2
- package/dist/common/map-layer-selector.js +3 -4
- package/dist/common/modal.d.ts +24 -11
- package/dist/common/modal.js +2 -2
- package/dist/common/portaled.d.ts +513 -2
- package/dist/common/portaled.js +2 -2
- package/dist/common/progress-bar.d.ts +2 -2
- package/dist/common/progress-bar.js +2 -2
- package/dist/common/range-brush.js +2 -2
- package/dist/common/range-plot.d.ts +6 -2
- package/dist/common/range-plot.js +4 -3
- package/dist/common/range-slider.d.ts +5 -1
- package/dist/common/range-slider.js +9 -3
- package/dist/common/slider/mouse-event.js +2 -2
- package/dist/common/slider/slider-bar-handle.d.ts +2 -2
- package/dist/common/slider/slider-bar-handle.js +2 -2
- package/dist/common/slider/slider-handle.d.ts +1 -1
- package/dist/common/slider/slider-handle.js +2 -2
- package/dist/common/slider/slider.d.ts +7 -5
- package/dist/common/slider/slider.js +8 -5
- package/dist/common/styled-components.d.ts +5 -0
- package/dist/common/styled-components.js +161 -47
- package/dist/common/switch.d.ts +3 -2
- package/dist/common/switch.js +2 -2
- package/dist/common/time-range-slider-time-title.d.ts +2 -2
- package/dist/common/time-range-slider-time-title.js +2 -2
- package/dist/common/time-range-slider.d.ts +6 -3
- package/dist/common/time-range-slider.js +33 -14
- package/dist/common/time-slider-marker.d.ts +1 -1
- package/dist/common/time-slider-marker.js +3 -3
- package/dist/common/timeline-slider.d.ts +13 -0
- package/dist/common/timeline-slider.js +173 -0
- package/dist/common/tippy-tooltip.d.ts +4 -2
- package/dist/common/tippy-tooltip.js +23 -11
- package/dist/common/toolbar-item.d.ts +1 -1
- package/dist/common/toolbar-item.js +6 -4
- package/dist/common/toolbar.js +2 -2
- package/dist/common/vertical-toolbar.js +2 -2
- package/dist/connect/keplergl-connect.d.ts +5 -1
- package/dist/connect/keplergl-connect.js +2 -2
- package/dist/connect/with-local-selector.js +2 -2
- package/dist/container.js +2 -2
- package/dist/context.js +4 -3
- package/dist/dnd-context.d.ts +13 -0
- package/dist/dnd-context.js +252 -0
- package/dist/editor/editor.d.ts +11 -10
- package/dist/editor/editor.js +97 -103
- package/dist/editor/feature-action-panel.d.ts +8 -6
- package/dist/editor/feature-action-panel.js +75 -22
- package/dist/effects/effect-configurator.d.ts +18 -0
- package/dist/effects/effect-configurator.js +237 -0
- package/dist/effects/effect-list.d.ts +15 -0
- package/dist/effects/effect-list.js +173 -0
- package/dist/effects/effect-manager.d.ts +21 -0
- package/dist/effects/effect-manager.js +129 -0
- package/dist/effects/effect-panel-header.d.ts +33 -0
- package/dist/effects/effect-panel-header.js +174 -0
- package/dist/effects/effect-panel.d.ts +24 -0
- package/dist/effects/effect-panel.js +162 -0
- package/dist/effects/effect-time-configurator.d.ts +13 -0
- package/dist/effects/effect-time-configurator.js +191 -0
- package/dist/effects/effect-type-selector.d.ts +11 -0
- package/dist/effects/effect-type-selector.js +117 -0
- package/dist/effects/side-panel-title.d.ts +7 -0
- package/dist/effects/side-panel-title.js +67 -0
- package/dist/filter-animation-controller.d.ts +17 -0
- package/dist/filter-animation-controller.js +91 -0
- package/dist/filters/components.js +2 -2
- package/dist/filters/filter-panels/filter-panel-with-field-select.js +3 -3
- package/dist/filters/filter-panels/multi-select-filter-panel.js +3 -3
- package/dist/filters/filter-panels/new-filter-panel.js +2 -2
- package/dist/filters/filter-panels/polygon-filter-panel.js +3 -3
- package/dist/filters/filter-panels/range-filter-panel.js +3 -3
- package/dist/filters/filter-panels/single-select-filter-panel.js +3 -3
- package/dist/filters/filter-panels/time-range-filter-panel.js +25 -8
- package/dist/filters/filter-panels/types.d.ts +2 -1
- package/dist/filters/filter-panels/types.js +1 -1
- package/dist/filters/index.d.ts +2 -0
- package/dist/filters/index.js +18 -2
- package/dist/filters/multi-select-filter.js +2 -2
- package/dist/filters/polygon-filter.js +14 -4
- package/dist/filters/range-filter.js +6 -4
- package/dist/filters/single-select-filter.js +2 -2
- package/dist/filters/time-range-filter.d.ts +2 -1
- package/dist/filters/time-range-filter.js +10 -7
- package/dist/filters/time-widget-top.d.ts +8 -0
- package/dist/filters/time-widget-top.js +123 -0
- package/dist/filters/time-widget.d.ts +3 -7
- package/dist/filters/time-widget.js +35 -92
- package/dist/filters/types.d.ts +7 -3
- package/dist/filters/types.js +1 -1
- package/dist/geocoder/geocoder.d.ts +1 -3
- package/dist/geocoder/geocoder.js +2 -2
- package/dist/geocoder-panel.d.ts +9 -3
- package/dist/geocoder-panel.js +30 -19
- package/dist/hooks/useFeatureFlags.js +1 -1
- package/dist/index.d.ts +68 -20
- package/dist/index.js +599 -99
- package/dist/injector.d.ts +4 -4
- package/dist/injector.js +2 -2
- package/dist/kepler-gl.d.ts +58 -17
- package/dist/kepler-gl.js +78 -31
- package/dist/layer-animation-controller.d.ts +13 -0
- package/dist/layer-animation-controller.js +76 -0
- package/dist/map/coordinate-info.js +2 -2
- package/dist/map/effects/effect-control.d.ts +16 -0
- package/dist/map/effects/effect-control.js +81 -0
- package/dist/map/layer-hover-info.d.ts +2 -2
- package/dist/map/layer-hover-info.js +26 -10
- package/dist/map/layer-selector-panel.js +2 -2
- package/dist/map/lazy-tippy.js +1 -1
- package/dist/map/locale-panel.d.ts +1 -1
- package/dist/map/locale-panel.js +2 -2
- package/dist/map/map-control-panel.d.ts +6 -0
- package/dist/map/map-control-panel.js +65 -9
- package/dist/map/map-control-toolbar.js +3 -3
- package/dist/map/map-control-tooltip.js +2 -2
- package/dist/map/map-control.d.ts +15 -7
- package/dist/map/map-control.js +6 -7
- package/dist/map/map-draw-panel.d.ts +2 -2
- package/dist/map/map-draw-panel.js +2 -9
- package/dist/map/map-legend-panel.d.ts +12 -1
- package/dist/map/map-legend-panel.js +27 -14
- package/dist/map/map-legend.d.ts +1 -1
- package/dist/map/map-legend.js +2 -2
- package/dist/map/map-popover-content.d.ts +28 -0
- package/dist/map/map-popover-content.js +51 -0
- package/dist/map/map-popover.d.ts +11 -14
- package/dist/map/map-popover.js +94 -15
- package/dist/map/split-map-button.js +2 -2
- package/dist/map/toggle-3d-button.js +2 -2
- package/dist/map-container.d.ts +33 -9
- package/dist/map-container.js +530 -161
- package/dist/map-view-state-context.d.ts +12 -0
- package/dist/map-view-state-context.js +116 -0
- package/dist/maps-layout.d.ts +5 -2
- package/dist/maps-layout.js +7 -3
- package/dist/modal-container.d.ts +2 -6
- package/dist/modal-container.js +8 -6
- package/dist/modals/add-map-style-modal.d.ts +1 -3
- package/dist/modals/add-map-style-modal.js +12 -6
- package/dist/modals/cloud-tile.js +2 -2
- package/dist/modals/data-table-modal.d.ts +11 -2
- package/dist/modals/data-table-modal.js +75 -24
- package/dist/modals/delete-data-modal.js +2 -2
- package/dist/modals/error-display.js +2 -2
- package/dist/modals/export-data-modal.d.ts +1 -3
- package/dist/modals/export-data-modal.js +2 -2
- package/dist/modals/export-image-modal.d.ts +1 -3
- package/dist/modals/export-image-modal.js +2 -2
- package/dist/modals/export-map-modal/components.d.ts +2 -2
- package/dist/modals/export-map-modal/components.js +2 -2
- package/dist/modals/export-map-modal/export-html-map.js +2 -2
- package/dist/modals/export-map-modal/export-json-map.d.ts +1 -1
- package/dist/modals/export-map-modal/export-json-map.js +2 -2
- package/dist/modals/export-map-modal/export-map-modal.d.ts +2 -2
- package/dist/modals/export-map-modal/export-map-modal.js +2 -2
- package/dist/modals/image-modal-container.d.ts +1 -0
- package/dist/modals/image-modal-container.js +2 -2
- package/dist/modals/load-data-modal.js +2 -2
- package/dist/modals/load-storage-map.js +2 -2
- package/dist/modals/loading-dialog.js +2 -2
- package/dist/modals/modal-dialog.js +2 -2
- package/dist/modals/modal-tabs.d.ts +1 -1
- package/dist/modals/modal-tabs.js +2 -2
- package/dist/modals/overwrite-map-modal.js +2 -2
- package/dist/modals/provider-modal-container.d.ts +3 -2
- package/dist/modals/provider-modal-container.js +2 -2
- package/dist/modals/save-map-modal.js +2 -2
- package/dist/modals/share-map-modal.js +2 -2
- package/dist/modals/status-panel.js +2 -2
- package/dist/modals/storage-map-viewer.d.ts +1 -1
- package/dist/modals/storage-map-viewer.js +2 -2
- package/dist/notification-panel/notification-item.d.ts +7 -10
- package/dist/notification-panel/notification-item.js +45 -13
- package/dist/notification-panel.js +2 -2
- package/dist/plot-container.js +20 -8
- package/dist/side-panel/add-by-dataset-button.d.ts +12 -0
- package/dist/side-panel/add-by-dataset-button.js +173 -0
- package/dist/side-panel/cloud-storage-dropdown.d.ts +2 -2
- package/dist/side-panel/cloud-storage-dropdown.js +2 -2
- package/dist/side-panel/common/dataset-info.d.ts +10 -3
- package/dist/side-panel/common/dataset-info.js +2 -2
- package/dist/side-panel/common/dataset-tag.d.ts +15 -1
- package/dist/side-panel/common/dataset-tag.js +14 -11
- package/dist/side-panel/common/dataset-title.d.ts +16 -2
- package/dist/side-panel/common/dataset-title.js +71 -105
- package/dist/side-panel/common/source-data-catalog.d.ts +22 -3
- package/dist/side-panel/common/source-data-catalog.js +2 -2
- package/dist/side-panel/common/source-data-selector.js +2 -2
- package/dist/side-panel/common/types.d.ts +7 -27
- package/dist/side-panel/common/types.js +1 -1
- package/dist/side-panel/custom-panel.d.ts +6 -7
- package/dist/side-panel/custom-panel.js +2 -2
- package/dist/side-panel/filter-manager.d.ts +18 -6
- package/dist/side-panel/filter-manager.js +176 -65
- package/dist/side-panel/filter-panel/add-filter-button.d.ts +8 -0
- package/dist/side-panel/filter-panel/add-filter-button.js +50 -0
- package/dist/side-panel/filter-panel/filter-panel-header.d.ts +6 -3
- package/dist/side-panel/filter-panel/filter-panel-header.js +4 -4
- package/dist/side-panel/filter-panel/filter-panel.js +2 -2
- package/dist/side-panel/interaction-manager.d.ts +6 -3
- package/dist/side-panel/interaction-manager.js +21 -8
- package/dist/side-panel/interaction-panel/brush-config.d.ts +2 -2
- package/dist/side-panel/interaction-panel/brush-config.js +2 -2
- package/dist/side-panel/interaction-panel/interaction-panel.d.ts +5 -2
- package/dist/side-panel/interaction-panel/interaction-panel.js +12 -5
- package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.d.ts +3 -9
- package/dist/side-panel/interaction-panel/tooltip-config/tooltip-chicklet.js +25 -42
- package/dist/side-panel/interaction-panel/tooltip-config.d.ts +2 -3
- package/dist/side-panel/interaction-panel/tooltip-config.js +9 -7
- package/dist/side-panel/layer-manager.d.ts +8 -10
- package/dist/side-panel/layer-manager.js +71 -37
- package/dist/side-panel/layer-panel/add-layer-button.d.ts +3 -5
- package/dist/side-panel/layer-panel/add-layer-button.js +13 -139
- package/dist/side-panel/layer-panel/color-palette.js +2 -2
- package/dist/side-panel/layer-panel/color-range-selector.d.ts +1 -1
- package/dist/side-panel/layer-panel/color-range-selector.js +2 -2
- package/dist/side-panel/layer-panel/color-selector.d.ts +15 -24
- package/dist/side-panel/layer-panel/color-selector.js +175 -127
- package/dist/side-panel/layer-panel/column-selector.js +2 -2
- package/dist/side-panel/layer-panel/custom-palette.d.ts +7 -2
- package/dist/side-panel/layer-panel/custom-palette.js +6 -5
- package/dist/side-panel/layer-panel/custom-picker.d.ts +9 -36
- package/dist/side-panel/layer-panel/custom-picker.js +2 -2
- package/dist/side-panel/layer-panel/dataset-layer-group.d.ts +1 -1
- package/dist/side-panel/layer-panel/dataset-layer-group.js +3 -2
- package/dist/side-panel/layer-panel/dataset-layer-section.d.ts +3 -2
- package/dist/side-panel/layer-panel/dataset-layer-section.js +5 -4
- package/dist/side-panel/layer-panel/dataset-section.d.ts +2 -3
- package/dist/side-panel/layer-panel/dataset-section.js +6 -7
- package/dist/side-panel/layer-panel/dimension-scale-selector.js +2 -2
- package/dist/side-panel/layer-panel/how-to-button.js +2 -2
- package/dist/side-panel/layer-panel/layer-color-selector.d.ts +42 -0
- package/dist/side-panel/layer-panel/layer-color-selector.js +134 -0
- package/dist/side-panel/layer-panel/layer-column-config.d.ts +15 -9
- package/dist/side-panel/layer-panel/layer-column-config.js +35 -13
- package/dist/side-panel/layer-panel/layer-config-group.d.ts +11 -2
- package/dist/side-panel/layer-panel/layer-config-group.js +19 -11
- package/dist/side-panel/layer-panel/layer-configurator.d.ts +10 -35
- package/dist/side-panel/layer-panel/layer-configurator.js +61 -110
- package/dist/side-panel/layer-panel/layer-error-message.d.ts +6 -0
- package/dist/side-panel/layer-panel/layer-error-message.js +58 -0
- package/dist/side-panel/layer-panel/layer-list.d.ts +4 -3
- package/dist/side-panel/layer-panel/layer-list.js +112 -89
- package/dist/side-panel/layer-panel/layer-panel-header.d.ts +22 -10
- package/dist/side-panel/layer-panel/layer-panel-header.js +106 -67
- package/dist/side-panel/layer-panel/layer-panel.d.ts +3 -1
- package/dist/side-panel/layer-panel/layer-panel.js +24 -11
- package/dist/side-panel/layer-panel/layer-type-dropdown-list.js +2 -2
- package/dist/side-panel/layer-panel/layer-type-list-item.d.ts +12 -3
- package/dist/side-panel/layer-panel/layer-type-list-item.js +12 -4
- package/dist/side-panel/layer-panel/layer-type-selector.d.ts +2 -1
- package/dist/side-panel/layer-panel/layer-type-selector.js +5 -3
- package/dist/side-panel/layer-panel/single-color-palette.d.ts +1 -1
- package/dist/side-panel/layer-panel/single-color-palette.js +2 -2
- package/dist/side-panel/layer-panel/text-label-panel.d.ts +4 -2
- package/dist/side-panel/layer-panel/text-label-panel.js +62 -15
- package/dist/side-panel/layer-panel/vis-config-by-field-selector.d.ts +1 -3
- package/dist/side-panel/layer-panel/vis-config-by-field-selector.js +2 -2
- package/dist/side-panel/layer-panel/vis-config-slider.js +2 -2
- package/dist/side-panel/layer-panel/vis-config-switch.js +2 -2
- package/dist/side-panel/map-manager.d.ts +13 -6
- package/dist/side-panel/map-manager.js +56 -45
- package/dist/side-panel/map-style-panel/map-layer-group-color-picker.d.ts +14 -0
- package/dist/side-panel/map-style-panel/map-layer-group-color-picker.js +116 -0
- package/dist/side-panel/map-style-panel/map-layer-group-item.d.ts +29 -0
- package/dist/side-panel/map-style-panel/map-layer-group-item.js +131 -0
- package/dist/side-panel/map-style-panel/map-layer-selector.d.ts +16 -12
- package/dist/side-panel/map-style-panel/map-layer-selector.js +34 -51
- package/dist/side-panel/map-style-panel/map-style-selector.d.ts +11 -4
- package/dist/side-panel/map-style-panel/map-style-selector.js +54 -20
- package/dist/side-panel/panel-dropdown.d.ts +3 -2
- package/dist/side-panel/panel-dropdown.js +2 -2
- package/dist/side-panel/panel-header-action.d.ts +4 -2
- package/dist/side-panel/panel-header-action.js +11 -4
- package/dist/side-panel/panel-header.d.ts +13 -8
- package/dist/side-panel/panel-header.js +2 -2
- package/dist/side-panel/panel-tab.d.ts +2 -2
- package/dist/side-panel/panel-tab.js +2 -2
- package/dist/side-panel/panel-title.d.ts +6 -3
- package/dist/side-panel/panel-title.js +31 -14
- package/dist/side-panel/panel-toggle.d.ts +1 -1
- package/dist/side-panel/panel-toggle.js +2 -2
- package/dist/side-panel/{layer-panel/panel-view-list-toggle.d.ts → panel-view-list-toggle.d.ts} +19 -8
- package/dist/side-panel/panel-view-list-toggle.js +143 -0
- package/dist/side-panel/side-bar.d.ts +15 -16
- package/dist/side-panel/side-bar.js +8 -6
- package/dist/side-panel.d.ts +2 -117
- package/dist/side-panel.js +14 -20
- package/dist/types.d.ts +16 -9
- package/dist/types.js +1 -1
- package/package.json +41 -34
- package/dist/editor/constants.d.ts +0 -17
- package/dist/editor/constants.js +0 -47
- package/dist/editor/feature-styles.d.ts +0 -37
- package/dist/editor/feature-styles.js +0 -92
- package/dist/editor/handle-style.d.ts +0 -42
- package/dist/editor/handle-style.js +0 -100
- package/dist/side-panel/layer-panel/panel-view-list-toggle.js +0 -143
package/dist/common/portaled.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright (c)
|
|
1
|
+
// Copyright (c) 2023 Uber Technologies, Inc.
|
|
2
2
|
//
|
|
3
3
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
4
4
|
// of this software and associated documentation files (the "Software"), to deal
|
|
@@ -357,4 +357,4 @@ var Portaled = /*#__PURE__*/function (_Component) {
|
|
|
357
357
|
var _default = (0, _styledComponents.withTheme)(Portaled);
|
|
358
358
|
|
|
359
359
|
exports["default"] = _default;
|
|
360
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vcG9ydGFsZWQudHN4Il0sIm5hbWVzIjpbImxpc3RlbmVycyIsInN0YXJ0TGlzdGVuaW5nIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJrZXkiLCJnZXRQYWdlT2Zmc2V0IiwieCIsIndpbmRvdyIsInBhZ2VYT2Zmc2V0IiwidW5kZWZpbmVkIiwiZG9jdW1lbnQiLCJkb2N1bWVudEVsZW1lbnQiLCJib2R5IiwicGFyZW50Tm9kZSIsInNjcm9sbExlZnQiLCJ5IiwicGFnZVlPZmZzZXQiLCJzY3JvbGxUb3AiLCJhZGRFdmVudExpc3RlbmVycyIsImFkZEV2ZW50TGlzdGVuZXIiLCJsZWFkaW5nIiwiZ2V0Q2hpbGRQb3MiLCJvZmZzZXRzIiwicmVjdCIsImNoaWxkUmVjdCIsInBhZ2VPZmZzZXQiLCJwYWRkaW5nIiwidG9wT2Zmc2V0IiwibGVmdE9mZnNldCIsInJpZ2h0T2Zmc2V0IiwiYW5jaG9yTGVmdCIsInBvcyIsInRvcCIsImxlZnQiLCJyaWdodCIsImlubmVyV2lkdGgiLCJsZWZ0T3JSaWdodCIsIndpZHRoIiwiaGVpZ2h0IiwiaW5uZXJIZWlnaHQiLCJjYW5Vc2VET00iLCJsaXN0ZW5lcklkQ291bnRlciIsInN1YnNjcmliZSIsImZuIiwiaWQiLCJkZWZhdWx0TW9kYWxTdHlsZSIsImNvbnRlbnQiLCJib3JkZXIiLCJib3R0b20iLCJvdmVybGF5IiwiYmFja2dyb3VuZENvbG9yIiwiV0lORE9XX1BBRCIsIm5vb3AiLCJQb3J0YWxlZCIsImlzVmlzaWJsZSIsImNoaWxkIiwiY3VycmVudCIsImVsZW1lbnQiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJwcm9wcyIsInN0YXRlIiwic2V0U3RhdGUiLCJ1bnN1YnNjcmliZSIsImhhbmRsZVNjcm9sbCIsInByZXZQcm9wcyIsImRpZE9wZW4iLCJpc09wZW5lZCIsImRpZENsb3NlIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiX3VubW91bnRlZCIsIkJvb2xlYW4iLCJDb21wIiwiY29tcG9uZW50Iiwib3ZlcmxheVpJbmRleCIsIm9uQ2xvc2UiLCJjaGlsZHJlbiIsIm1vZGFsUHJvcHMiLCJtb2RhbFN0eWxlIiwibmV3TW9kYWxTdHlsZSIsInpJbmRleCIsImNvbnRleHQiLCJwb3NpdGlvbiIsIm9wYWNpdHkiLCJ0cmFuc2l0aW9uIiwidGhlbWUiLCJ0cmFuc2l0aW9uRmFzdCIsIm1hcmdpblRvcCIsImhhc0Vycm9yIiwiQ29tcG9uZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkE7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7QUFFQSxJQUFNQSxTQUFTLEdBQUcsRUFBbEI7O0FBRUEsSUFBTUMsY0FBYyxHQUFHLFNBQWpCQSxjQUFpQjtBQUFBLFNBQU1DLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZSCxTQUFaLEVBQXVCSSxPQUF2QixDQUErQixVQUFBQyxHQUFHO0FBQUEsV0FBSUwsU0FBUyxDQUFDSyxHQUFELENBQVQsRUFBSjtBQUFBLEdBQWxDLENBQU47QUFBQSxDQUF2Qjs7QUFFQSxJQUFNQyxhQUFhLEdBQUcsU0FBaEJBLGFBQWdCO0FBQUEsU0FBTztBQUMzQkMsSUFBQUEsQ0FBQyxFQUNDQyxtQkFBT0MsV0FBUCxLQUF1QkMsU0FBdkIsR0FDSUYsbUJBQU9DLFdBRFgsR0FFSSxDQUFDRSxRQUFRLENBQUNDLGVBQVQsSUFBNEJELFFBQVEsQ0FBQ0UsSUFBVCxDQUFjQyxVQUExQyxJQUF3REgsUUFBUSxDQUFDRSxJQUFsRSxFQUF3RUUsVUFKbkQ7QUFLM0JDLElBQUFBLENBQUMsRUFDQ1IsbUJBQU9TLFdBQVAsS0FBdUJQLFNBQXZCLEdBQ0lGLG1CQUFPUyxXQURYLEdBRUksQ0FBQ04sUUFBUSxDQUFDQyxlQUFULElBQTRCRCxRQUFRLENBQUNFLElBQVQsQ0FBY0MsVUFBMUMsSUFBd0RILFFBQVEsQ0FBQ0UsSUFBbEUsRUFBd0VLO0FBUm5ELEdBQVA7QUFBQSxDQUF0Qjs7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QUFDd0IsS0FEWjtBQUVFLFVBQUEsS0FBSyxFQUFFO0FBQ0wwQixZQUFBQSxRQUFRLEVBQUUsVUFETDtBQUVMRixZQUFBQSxNQUFNLEVBQUVOLGFBQWEsR0FBR0EsYUFBYSxHQUFHLENBQW5CLEdBQXVCO0FBRnZDO0FBRlQsV0FPR0UsUUFQSCxDQVpGLENBYkYsQ0FETyxHQXFDTCxJQXRDTixDQURNO0FBQUEsT0FEVixDQURGO0FBOENEOzs7V0E1SkQ7QUFDQTtBQUNBO0FBQ0Esd0NBQWtDO0FBQ2hDLGFBQU87QUFBQ1ksUUFBQUEsUUFBUSxFQUFFO0FBQVgsT0FBUDtBQUNEOzs7RUFOb0JDLGdCOztpQ0FBakJuQyxRLGtCQVFrQjtBQUNwQm1CLEVBQUFBLFNBQVMsRUFBRSxLQURTO0FBRXBCRSxFQUFBQSxPQUFPLEVBQUV0QixJQUZXO0FBR3BCZ0MsRUFBQUEsS0FBSyxFQUFMQTtBQUhvQixDOztlQXdKVCxpQ0FBVS9CLFFBQVYsQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMiBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudCwgY3JlYXRlUmVmLCBFbGVtZW50VHlwZSwgUHJvcHNXaXRoQ2hpbGRyZW59IGZyb20gJ3JlYWN0JztcbmltcG9ydCBkZWJvdW5jZSBmcm9tICdsb2Rhc2guZGVib3VuY2UnO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSAnbG9kYXNoLmlzZXF1YWwnO1xuXG5pbXBvcnQge2NhblVzZURPTX0gZnJvbSAnZXhlbnYnO1xuaW1wb3J0IHt3aXRoVGhlbWV9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7Um9vdENvbnRleHR9IGZyb20gJy4uL2NvbnRleHQnO1xuaW1wb3J0IE1vZGFsIGZyb20gJ3JlYWN0LW1vZGFsJztcbmltcG9ydCB3aW5kb3cgZnJvbSAnZ2xvYmFsL3dpbmRvdyc7XG5pbXBvcnQge3RoZW1lfSBmcm9tICdAa2VwbGVyLmdsL3N0eWxlcyc7XG5cbmNvbnN0IGxpc3RlbmVycyA9IHt9O1xuXG5jb25zdCBzdGFydExpc3RlbmluZyA9ICgpID0+IE9iamVjdC5rZXlzKGxpc3RlbmVycykuZm9yRWFjaChrZXkgPT4gbGlzdGVuZXJzW2tleV0oKSk7XG5cbmNvbnN0IGdldFBhZ2VPZmZzZXQgPSAoKSA9PiAoe1xuICB4OlxuICAgIHdpbmRvdy5wYWdlWE9mZnNldCAhPT0gdW5kZWZpbmVkXG4gICAgICA/IHdpbmRvdy5wYWdlWE9mZnNldFxuICAgICAgOiAoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50IHx8IGRvY3VtZW50LmJvZHkucGFyZW50Tm9kZSB8fCBkb2N1bWVudC5ib2R5KS5zY3JvbGxMZWZ0LFxuICB5OlxuICAgIHdpbmRvdy5wYWdlWU9mZnNldCAhPT0gdW5kZWZpbmVkXG4gICAgICA/IHdpbmRvdy5wYWdlWU9mZnNldFxuICAgICAgOiAoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50IHx8IGRvY3VtZW50LmJvZHkucGFyZW50Tm9kZSB8fCBkb2N1bWVudC5ib2R5KS5zY3JvbGxUb3Bcbn0pO1xuXG5jb25zdCBhZGRFdmVudExpc3RlbmVycyA9ICgpID0+IHtcbiAgaWYgKGRvY3VtZW50ICYmIGRvY3VtZW50LmJvZHkpXG4gICAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXdoZWVsJywgZGVib3VuY2Uoc3RhcnRMaXN0ZW5pbmcsIDEwMCwge2xlYWRpbmc6IHRydWV9KSk7XG4gIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBkZWJvdW5jZShzdGFydExpc3RlbmluZywgNTAsIHtsZWFkaW5nOiB0cnVlfSkpO1xufTtcblxuaW50ZXJmYWNlIEdldENoaWxkUG9zUHJvcHMge1xuICBvZmZzZXRzOiBQYXJ0aWFsPHtcbiAgICB0b3BPZmZzZXQ6IG51bWJlcjtcbiAgICBsZWZ0T2Zmc2V0OiBudW1iZXI7XG4gICAgcmlnaHRPZmZzZXQ6IG51bWJlcjtcbiAgfT47XG4gIHJlY3Q6IERPTVJlY3Q7XG4gIGNoaWxkUmVjdDogRE9NUmVjdDtcbiAgcGFnZU9mZnNldDoge1xuICAgIHg6IG51bWJlcjtcbiAgICB5OiBudW1iZXI7XG4gIH07XG4gIHBhZGRpbmc6IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IGdldENoaWxkUG9zID0gKHtvZmZzZXRzLCByZWN0LCBjaGlsZFJlY3QsIHBhZ2VPZmZzZXQsIHBhZGRpbmd9OiBHZXRDaGlsZFBvc1Byb3BzKSA9PiB7XG4gIGNvbnN0IHt0b3BPZmZzZXQsIGxlZnRPZmZzZXQsIHJpZ2h0T2Zmc2V0fSA9IG9mZnNldHM7XG5cbiAgY29uc3QgYW5jaG9yTGVmdCA9IGxlZnRPZmZzZXQgIT09IHVuZGVmaW5lZDtcbiAgY29uc3QgcG9zID0ge1xuICAgIHRvcDogcGFnZU9mZnNldC55ICsgcmVjdC50b3AgKyAodG9wT2Zmc2V0IHx8IDApLFxuICAgIC4uLihhbmNob3JMZWZ0XG4gICAgICA/IHtsZWZ0OiBwYWdlT2Zmc2V0LnggKyByZWN0LmxlZnQgKyBsZWZ0T2Zmc2V0IX1cbiAgICAgIDoge3JpZ2h0OiB3aW5kb3cuaW5uZXJXaWR0aCAtIHJlY3QucmlnaHQgLSBwYWdlT2Zmc2V0LnggKyAocmlnaHRPZmZzZXQgfHwgMCl9KVxuICB9O1xuXG4gIGNvbnN0IGxlZnRPclJpZ2h0ID0gYW5jaG9yTGVmdCA/ICdsZWZ0JyA6ICdyaWdodCc7XG5cbiAgaWYgKHBvc1tsZWZ0T3JSaWdodF0gJiYgcG9zW2xlZnRPclJpZ2h0XSA8IDApIHtcbiAgICBwb3NbbGVmdE9yUmlnaHRdID0gcGFkZGluZztcbiAgfSBlbHNlIGlmIChwb3NbbGVmdE9yUmlnaHRdICYmIHBvc1tsZWZ0T3JSaWdodF0gKyBjaGlsZFJlY3Qud2lkdGggPiB3aW5kb3cuaW5uZXJXaWR0aCkge1xuICAgIHBvc1tsZWZ0T3JSaWdodF0gPSB3aW5kb3cuaW5uZXJXaWR0aCAtIGNoaWxkUmVjdC53aWR0aCAtIHBhZGRpbmc7XG4gIH1cblxuICBpZiAocG9zLnRvcCA8IDApIHtcbiAgICBwb3MudG9wID0gcGFkZGluZztcbiAgfSBlbHNlIGlmIChwb3MudG9wICsgY2hpbGRSZWN0LmhlaWdodCA+IHdpbmRvdy5pbm5lckhlaWdodCkge1xuICAgIHBvcy50b3AgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSBjaGlsZFJlY3QuaGVpZ2h0IC0gcGFkZGluZztcbiAgfVxuXG4gIHJldHVybiBwb3M7XG59O1xuXG5pZiAoY2FuVXNlRE9NKSB7XG4gIGlmIChkb2N1bWVudC5ib2R5KSB7XG4gICAgYWRkRXZlbnRMaXN0ZW5lcnMoKTtcbiAgfSBlbHNlIHtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgYWRkRXZlbnRMaXN0ZW5lcnMpO1xuICB9XG59XG5cbmxldCBsaXN0ZW5lcklkQ291bnRlciA9IDA7XG5mdW5jdGlvbiBzdWJzY3JpYmUoZm4pIHtcbiAgbGlzdGVuZXJJZENvdW50ZXIgKz0gMTtcbiAgY29uc3QgaWQgPSBsaXN0ZW5lcklkQ291bnRlcjtcbiAgbGlzdGVuZXJzW2lkXSA9IGZuO1xuICByZXR1cm4gKCkgPT4gZGVsZXRlIGxpc3RlbmVyc1tpZF07XG59XG5cbmNvbnN0IGRlZmF1bHRNb2RhbFN0eWxlID0ge1xuICBjb250ZW50OiB7XG4gICAgdG9wOiAwLFxuICAgIGxlZnQ6IDAsXG4gICAgYm9yZGVyOiAwLFxuICAgIHJpZ2h0OiAnYXV0bycsXG4gICAgYm90dG9tOiAnYXV0bycsXG4gICAgcGFkZGluZzogJzBweCAwcHggMHB4IDBweCdcbiAgfSxcbiAgb3ZlcmxheToge1xuICAgIHJpZ2h0OiAnYXV0bycsXG4gICAgYm90dG9tOiAnYXV0bycsXG4gICAgd2lkdGg6ICcxMDB2dycsXG4gICAgaGVpZ2h0OiAnMTAwdmgnLFxuICAgIGJhY2tncm91bmRDb2xvcjogJ3JnYmEoMCwgMCwgMCwgMCknXG4gIH1cbn07XG5cbmNvbnN0IFdJTkRPV19QQUQgPSA0MDtcblxuY29uc3Qgbm9vcCA9ICgpID0+IHt9O1xuXG50eXBlIFBvcnRhbGVkUHJvcHMgPSBQcm9wc1dpdGhDaGlsZHJlbjx7XG4gIGNvbXBvbmVudDogRWxlbWVudFR5cGU7XG4gIG9uQ2xvc2U/OiAoXG4gICAgZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8RWxlbWVudCwgZ2xvYmFsVGhpcy5Nb3VzZUV2ZW50PiB8IFJlYWN0LktleWJvYXJkRXZlbnQ8RWxlbWVudD5cbiAgKSA9PiB2b2lkO1xuICB0aGVtZT86IGFueTtcbiAgaXNPcGVuZWQ/OiBib29sZWFuO1xuICB0b3A6IG51bWJlcjtcbiAgbGVmdD86IG51bWJlcjtcbiAgcmlnaHQ/OiBudW1iZXI7XG4gIG92ZXJsYXlaSW5kZXg/OiBudW1iZXI7XG4gIG1vZGFsUHJvcHM/OiBQYXJ0aWFsPFJlYWN0TW9kYWwuUHJvcHM+O1xuICBtb2RhbFN0eWxlPzogUGFydGlhbDx0eXBlb2YgZGVmYXVsdE1vZGFsU3R5bGU+O1xufT47XG5cbmludGVyZmFjZSBQb3J0YWxlZFN0YXRlIHtcbiAgcG9zOlxuICAgIHwge1xuICAgICAgICBsZWZ0OiBudW1iZXI7XG4gICAgICAgIHRvcDogbnVtYmVyO1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICByaWdodDogbnVtYmVyO1xuICAgICAgICB0b3A6IG51bWJlcjtcbiAgICAgIH1cbiAgICB8IG51bGw7XG4gIGlzVmlzaWJsZTogYm9vbGVhbjtcbn1cblxuY2xhc3MgUG9ydGFsZWQgZXh0ZW5kcyBDb21wb25lbnQ8UG9ydGFsZWRQcm9wcywgUG9ydGFsZWRTdGF0ZT4ge1xuICAvLyBNYWtlIFBvcnRhbGVkIGEgY29tcG9uZW50IHdpdGggRXJyb3IgQm91bmRhcnksIHNvIFJlYWN0IGNhbiByZWNyZWF0ZVxuICAvLyB0aGlzIGNvbXBvbmVudCBpZiB0aGUgY2hpbGQgJ0NvbG9yUGlja2VyJyB0aHJvd3MgY3Jvc3Mtb3JpZ2luIGVycm9yLlxuICAvLyBzZWUgZnVuY3Rpb24gY29tcG9uZW50RGlkQ2F0Y2goKVxuICBzdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKCkge1xuICAgIHJldHVybiB7aGFzRXJyb3I6IHRydWV9O1xuICB9XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBjb21wb25lbnQ6ICdkaXYnLFxuICAgIG9uQ2xvc2U6IG5vb3AsXG4gICAgdGhlbWVcbiAgfTtcblxuICBzdGF0ZSA9IHtcbiAgICBwb3M6IG51bGwsXG4gICAgaXNWaXNpYmxlOiBmYWxzZVxuICB9O1xuXG4gIHVuc3Vic2NyaWJlOiAoKCkgPT4gYm9vbGVhbikgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIF91bm1vdW50ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAvLyByZWxhdGl2ZVxuICAgIHRoaXMudW5zdWJzY3JpYmUgPSBzdWJzY3JpYmUodGhpcy5oYW5kbGVTY3JvbGwpO1xuICAgIHRoaXMuaGFuZGxlU2Nyb2xsKCk7XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgZGlkT3BlbiA9IHRoaXMucHJvcHMuaXNPcGVuZWQgJiYgIXByZXZQcm9wcy5pc09wZW5lZDtcbiAgICBjb25zdCBkaWRDbG9zZSA9ICF0aGlzLnByb3BzLmlzT3BlbmVkICYmIHByZXZQcm9wcy5pc09wZW5lZDtcbiAgICBpZiAoZGlkT3BlbiB8fCBkaWRDbG9zZSkge1xuICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLl91bm1vdW50ZWQpIHJldHVybjtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7aXNWaXNpYmxlOiBCb29sZWFuKGRpZE9wZW4pfSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmhhbmRsZVNjcm9sbCgpO1xuICB9XG5cbiAgLy8gQ29sb3JQaWNrZXIgd2lsbCB0aHJvdyBhIGNyb3NzLW9yaWdpbiBlcnJvciB3aGVuIGl0IGlzIGNsb3NlZFxuICAvLyB3aGVuIHRoZSBhcHAgaXMgd2l0aGluIGFuIGlmcmFtZS5cbiAgLy8gVGhpcyBpcyBhIGtub3duIGlzc3VlIG9mIHJlYWN0LWNvbG9yIGNvbXBvbmVudDpcbiAgLy8gc2VlOiBodHRwczovL2dpdGh1Yi5jb20vY2FzZXNhbmRiZXJnL3JlYWN0LWNvbG9yL2lzc3Vlcy84MDZcbiAgY29tcG9uZW50RGlkQ2F0Y2goKSB7XG4gICAgLy8gRG8gbm90aGluZyBoZXJlLCBzaW5jZSBSZWFjdCB3aWxsIHRyeSB0byByZWNyZWF0ZSB0aGlzIGNvbXBvbmVudFxuICAgIC8vIHRyZWUgZnJvbSBzY3JhdGNoIHVzaW5nIHRoZSBlcnJvciBib3VuZGFyeSwgd2hpY2ggaXMgdGhpcyBjb21wb25lbnRcbiAgICAvLyBpdHNlbGYuIFRoaXMgaXMgYSB0ZW1wb3JhbCBmaXggZm9yIGEgY3Jhc2guXG4gIH1cblxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICB0aGlzLl91bm1vdW50ZWQgPSB0cnVlO1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBlbGVtZW50ID0gY3JlYXRlUmVmPEhUTUxEaXZFbGVtZW50PigpO1xuICBjaGlsZCA9IGNyZWF0ZVJlZjxIVE1MRGl2RWxlbWVudD4oKTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29tcGxleGl0eVxuICBoYW5kbGVTY3JvbGwgPSAoKSA9PiB7XG4gICAgaWYgKHRoaXMuY2hpbGQuY3VycmVudCAmJiB0aGlzLmVsZW1lbnQuY3VycmVudCkge1xuICAgICAgY29uc3QgcmVjdCA9IHRoaXMuZWxlbWVudC5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3QgY2hpbGRSZWN0ID0gdGhpcy5jaGlsZC5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3QgcGFnZU9mZnNldCA9IGdldFBhZ2VPZmZzZXQoKTtcbiAgICAgIGNvbnN0IHt0b3A6IHRvcE9mZnNldCwgbGVmdDogbGVmdE9mZnNldCA9IDAsIHJpZ2h0OiByaWdodE9mZnNldH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICBjb25zdCBwb3MgPSBnZXRDaGlsZFBvcyh7XG4gICAgICAgIG9mZnNldHM6IHt0b3BPZmZzZXQsIGxlZnRPZmZzZXQsIHJpZ2h0T2Zmc2V0fSxcbiAgICAgICAgcmVjdCxcbiAgICAgICAgY2hpbGRSZWN0LFxuICAgICAgICBwYWdlT2Zmc2V0LFxuICAgICAgICBwYWRkaW5nOiBXSU5ET1dfUEFEXG4gICAgICB9KTtcblxuICAgICAgaWYgKCFpc0VxdWFsKHBvcywgdGhpcy5zdGF0ZS5wb3MpKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe3Bvc30pO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgLy8gcmVsYXRpdmVcbiAgICAgIGNvbXBvbmVudDogQ29tcCxcbiAgICAgIG92ZXJsYXlaSW5kZXgsXG4gICAgICBpc09wZW5lZCxcbiAgICAgIG9uQ2xvc2UsXG5cbiAgICAgIC8vIE1vZGFsXG4gICAgICBjaGlsZHJlbixcbiAgICAgIG1vZGFsUHJvcHMsXG4gICAgICBtb2RhbFN0eWxlID0ge31cbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHtpc1Zpc2libGUsIHBvc30gPSB0aGlzLnN0YXRlO1xuXG4gICAgY29uc3QgbmV3TW9kYWxTdHlsZSA9IHtcbiAgICAgIC4uLmRlZmF1bHRNb2RhbFN0eWxlLFxuICAgICAgY29udGVudDoge1xuICAgICAgICAuLi4obW9kYWxTdHlsZS5jb250ZW50IHx8IHt9KVxuICAgICAgfSxcbiAgICAgIG92ZXJsYXk6IHtcbiAgICAgICAgLi4uZGVmYXVsdE1vZGFsU3R5bGUub3ZlcmxheSxcbiAgICAgICAgLi4uKG1vZGFsU3R5bGUub3ZlcmxheSB8fCB7fSksXG4gICAgICAgIC8vIG5lZWRzIHRvIGJlIG9uIHRvcCBvZiBleGlzdGluZyBtb2RhbFxuICAgICAgICB6SW5kZXg6IG92ZXJsYXlaSW5kZXggfHwgOTk5OVxuICAgICAgfVxuICAgIH07XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFJvb3RDb250ZXh0LkNvbnN1bWVyPlxuICAgICAgICB7Y29udGV4dCA9PiAoXG4gICAgICAgICAgPENvbXAgcmVmPXt0aGlzLmVsZW1lbnR9PlxuICAgICAgICAgICAge2lzT3BlbmVkID8gKFxuICAgICAgICAgICAgICA8TW9kYWxcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJtb2RhbC1wb3J0YWxcIlxuICAgICAgICAgICAgICAgIHsuLi5tb2RhbFByb3BzfVxuICAgICAgICAgICAgICAgIGFyaWFIaWRlQXBwPXtmYWxzZX1cbiAgICAgICAgICAgICAgICBpc09wZW5cbiAgICAgICAgICAgICAgICBzdHlsZT17bmV3TW9kYWxTdHlsZX1cbiAgICAgICAgICAgICAgICBwYXJlbnRTZWxlY3Rvcj17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgLy8gUmVhY3QgbW9kYWwgaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWFjdGpzL3JlYWN0LW1vZGFsL2lzc3Vlcy83NjlcbiAgICAgICAgICAgICAgICAgIC8vIGZhaWxlZCB0byBleGVjdXRlIHJlbW92ZUNoaWxkIG9uIHBhcmVudCBub2RlIHdoZW4gaXQgaXMgYWxyZWFkeSB1bm1vdW50ZWRcbiAgICAgICAgICAgICAgICAgIHJldHVybiAoY29udGV4dCAmJiBjb250ZXh0LmN1cnJlbnQpIHx8IGRvY3VtZW50LmJvZHk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBvblJlcXVlc3RDbG9zZT17b25DbG9zZX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInBvcnRhbGVkLWNvbnRlbnRcIlxuICAgICAgICAgICAgICAgICAga2V5PVwiaXRlbVwiXG4gICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogJ2ZpeGVkJyxcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogaXNWaXNpYmxlID8gMSA6IDAsXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRoaXMucHJvcHMudGhlbWUudHJhbnNpdGlvbkZhc3QsXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpblRvcDogaXNWaXNpYmxlID8gJzBweCcgOiAnMTRweCcsXG4gICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgLi4ucG9zXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgcmVmPXt0aGlzLmNoaWxkfVxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgICAgICAgICAgIHpJbmRleDogb3ZlcmxheVpJbmRleCA/IG92ZXJsYXlaSW5kZXggKyAxIDogMTAwMDBcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvTW9kYWw+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L0NvbXA+XG4gICAgICAgICl9XG4gICAgICA8L1Jvb3RDb250ZXh0LkNvbnN1bWVyPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgd2l0aFRoZW1lKFBvcnRhbGVkKTtcbiJdfQ==
|
|
360
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vcG9ydGFsZWQudHN4Il0sIm5hbWVzIjpbImxpc3RlbmVycyIsInN0YXJ0TGlzdGVuaW5nIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJrZXkiLCJnZXRQYWdlT2Zmc2V0IiwieCIsIndpbmRvdyIsInBhZ2VYT2Zmc2V0IiwidW5kZWZpbmVkIiwiZG9jdW1lbnQiLCJkb2N1bWVudEVsZW1lbnQiLCJib2R5IiwicGFyZW50Tm9kZSIsInNjcm9sbExlZnQiLCJ5IiwicGFnZVlPZmZzZXQiLCJzY3JvbGxUb3AiLCJhZGRFdmVudExpc3RlbmVycyIsImFkZEV2ZW50TGlzdGVuZXIiLCJsZWFkaW5nIiwiZ2V0Q2hpbGRQb3MiLCJvZmZzZXRzIiwicmVjdCIsImNoaWxkUmVjdCIsInBhZ2VPZmZzZXQiLCJwYWRkaW5nIiwidG9wT2Zmc2V0IiwibGVmdE9mZnNldCIsInJpZ2h0T2Zmc2V0IiwiYW5jaG9yTGVmdCIsInBvcyIsInRvcCIsImxlZnQiLCJyaWdodCIsImlubmVyV2lkdGgiLCJsZWZ0T3JSaWdodCIsIndpZHRoIiwiaGVpZ2h0IiwiaW5uZXJIZWlnaHQiLCJjYW5Vc2VET00iLCJsaXN0ZW5lcklkQ291bnRlciIsInN1YnNjcmliZSIsImZuIiwiaWQiLCJkZWZhdWx0TW9kYWxTdHlsZSIsImNvbnRlbnQiLCJib3JkZXIiLCJib3R0b20iLCJvdmVybGF5IiwiYmFja2dyb3VuZENvbG9yIiwiV0lORE9XX1BBRCIsIm5vb3AiLCJQb3J0YWxlZCIsImlzVmlzaWJsZSIsImNoaWxkIiwiY3VycmVudCIsImVsZW1lbnQiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJwcm9wcyIsInN0YXRlIiwic2V0U3RhdGUiLCJ1bnN1YnNjcmliZSIsImhhbmRsZVNjcm9sbCIsInByZXZQcm9wcyIsImRpZE9wZW4iLCJpc09wZW5lZCIsImRpZENsb3NlIiwicmVxdWVzdEFuaW1hdGlvbkZyYW1lIiwiX3VubW91bnRlZCIsIkJvb2xlYW4iLCJDb21wIiwiY29tcG9uZW50Iiwib3ZlcmxheVpJbmRleCIsIm9uQ2xvc2UiLCJjaGlsZHJlbiIsIm1vZGFsUHJvcHMiLCJtb2RhbFN0eWxlIiwibmV3TW9kYWxTdHlsZSIsInpJbmRleCIsImNvbnRleHQiLCJwb3NpdGlvbiIsIm9wYWNpdHkiLCJ0cmFuc2l0aW9uIiwidGhlbWUiLCJ0cmFuc2l0aW9uRmFzdCIsIm1hcmdpblRvcCIsImhhc0Vycm9yIiwiQ29tcG9uZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkE7O0FBQ0E7O0FBQ0E7O0FBRUE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7Ozs7Ozs7Ozs7QUFFQSxJQUFNQSxTQUFTLEdBQUcsRUFBbEI7O0FBRUEsSUFBTUMsY0FBYyxHQUFHLFNBQWpCQSxjQUFpQjtBQUFBLFNBQU1DLE1BQU0sQ0FBQ0MsSUFBUCxDQUFZSCxTQUFaLEVBQXVCSSxPQUF2QixDQUErQixVQUFBQyxHQUFHO0FBQUEsV0FBSUwsU0FBUyxDQUFDSyxHQUFELENBQVQsRUFBSjtBQUFBLEdBQWxDLENBQU47QUFBQSxDQUF2Qjs7QUFFQSxJQUFNQyxhQUFhLEdBQUcsU0FBaEJBLGFBQWdCO0FBQUEsU0FBTztBQUMzQkMsSUFBQUEsQ0FBQyxFQUNDQyxtQkFBT0MsV0FBUCxLQUF1QkMsU0FBdkIsR0FDSUYsbUJBQU9DLFdBRFgsR0FFSSxDQUFDRSxRQUFRLENBQUNDLGVBQVQsSUFBNEJELFFBQVEsQ0FBQ0UsSUFBVCxDQUFjQyxVQUExQyxJQUF3REgsUUFBUSxDQUFDRSxJQUFsRSxFQUF3RUUsVUFKbkQ7QUFLM0JDLElBQUFBLENBQUMsRUFDQ1IsbUJBQU9TLFdBQVAsS0FBdUJQLFNBQXZCLEdBQ0lGLG1CQUFPUyxXQURYLEdBRUksQ0FBQ04sUUFBUSxDQUFDQyxlQUFULElBQTRCRCxRQUFRLENBQUNFLElBQVQsQ0FBY0MsVUFBMUMsSUFBd0RILFFBQVEsQ0FBQ0UsSUFBbEUsRUFBd0VLO0FBUm5ELEdBQVA7QUFBQSxDQUF0Qjs7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QUFDd0IsS0FEWjtBQUVFLFVBQUEsS0FBSyxFQUFFO0FBQ0wwQixZQUFBQSxRQUFRLEVBQUUsVUFETDtBQUVMRixZQUFBQSxNQUFNLEVBQUVOLGFBQWEsR0FBR0EsYUFBYSxHQUFHLENBQW5CLEdBQXVCO0FBRnZDO0FBRlQsV0FPR0UsUUFQSCxDQVpGLENBYkYsQ0FETyxHQXFDTCxJQXRDTixDQURNO0FBQUEsT0FEVixDQURGO0FBOENEOzs7V0E1SkQ7QUFDQTtBQUNBO0FBQ0Esd0NBQWtDO0FBQ2hDLGFBQU87QUFBQ1ksUUFBQUEsUUFBUSxFQUFFO0FBQVgsT0FBUDtBQUNEOzs7RUFOb0JDLGdCOztpQ0FBakJuQyxRLGtCQVFrQjtBQUNwQm1CLEVBQUFBLFNBQVMsRUFBRSxLQURTO0FBRXBCRSxFQUFBQSxPQUFPLEVBQUV0QixJQUZXO0FBR3BCZ0MsRUFBQUEsS0FBSyxFQUFMQTtBQUhvQixDOztlQXdKVCxpQ0FBVS9CLFFBQVYsQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMyBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudCwgY3JlYXRlUmVmLCBFbGVtZW50VHlwZSwgUHJvcHNXaXRoQ2hpbGRyZW59IGZyb20gJ3JlYWN0JztcbmltcG9ydCBkZWJvdW5jZSBmcm9tICdsb2Rhc2guZGVib3VuY2UnO1xuaW1wb3J0IGlzRXF1YWwgZnJvbSAnbG9kYXNoLmlzZXF1YWwnO1xuXG5pbXBvcnQge2NhblVzZURPTX0gZnJvbSAnZXhlbnYnO1xuaW1wb3J0IHt3aXRoVGhlbWV9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7Um9vdENvbnRleHR9IGZyb20gJy4uL2NvbnRleHQnO1xuaW1wb3J0IE1vZGFsIGZyb20gJ3JlYWN0LW1vZGFsJztcbmltcG9ydCB3aW5kb3cgZnJvbSAnZ2xvYmFsL3dpbmRvdyc7XG5pbXBvcnQge3RoZW1lfSBmcm9tICdAa2VwbGVyLmdsL3N0eWxlcyc7XG5cbmNvbnN0IGxpc3RlbmVycyA9IHt9O1xuXG5jb25zdCBzdGFydExpc3RlbmluZyA9ICgpID0+IE9iamVjdC5rZXlzKGxpc3RlbmVycykuZm9yRWFjaChrZXkgPT4gbGlzdGVuZXJzW2tleV0oKSk7XG5cbmNvbnN0IGdldFBhZ2VPZmZzZXQgPSAoKSA9PiAoe1xuICB4OlxuICAgIHdpbmRvdy5wYWdlWE9mZnNldCAhPT0gdW5kZWZpbmVkXG4gICAgICA/IHdpbmRvdy5wYWdlWE9mZnNldFxuICAgICAgOiAoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50IHx8IGRvY3VtZW50LmJvZHkucGFyZW50Tm9kZSB8fCBkb2N1bWVudC5ib2R5KS5zY3JvbGxMZWZ0LFxuICB5OlxuICAgIHdpbmRvdy5wYWdlWU9mZnNldCAhPT0gdW5kZWZpbmVkXG4gICAgICA/IHdpbmRvdy5wYWdlWU9mZnNldFxuICAgICAgOiAoZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50IHx8IGRvY3VtZW50LmJvZHkucGFyZW50Tm9kZSB8fCBkb2N1bWVudC5ib2R5KS5zY3JvbGxUb3Bcbn0pO1xuXG5jb25zdCBhZGRFdmVudExpc3RlbmVycyA9ICgpID0+IHtcbiAgaWYgKGRvY3VtZW50ICYmIGRvY3VtZW50LmJvZHkpXG4gICAgZG9jdW1lbnQuYm9keS5hZGRFdmVudExpc3RlbmVyKCdtb3VzZXdoZWVsJywgZGVib3VuY2Uoc3RhcnRMaXN0ZW5pbmcsIDEwMCwge2xlYWRpbmc6IHRydWV9KSk7XG4gIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdyZXNpemUnLCBkZWJvdW5jZShzdGFydExpc3RlbmluZywgNTAsIHtsZWFkaW5nOiB0cnVlfSkpO1xufTtcblxuaW50ZXJmYWNlIEdldENoaWxkUG9zUHJvcHMge1xuICBvZmZzZXRzOiBQYXJ0aWFsPHtcbiAgICB0b3BPZmZzZXQ6IG51bWJlcjtcbiAgICBsZWZ0T2Zmc2V0OiBudW1iZXI7XG4gICAgcmlnaHRPZmZzZXQ6IG51bWJlcjtcbiAgfT47XG4gIHJlY3Q6IERPTVJlY3Q7XG4gIGNoaWxkUmVjdDogRE9NUmVjdDtcbiAgcGFnZU9mZnNldDoge1xuICAgIHg6IG51bWJlcjtcbiAgICB5OiBudW1iZXI7XG4gIH07XG4gIHBhZGRpbmc6IG51bWJlcjtcbn1cblxuZXhwb3J0IGNvbnN0IGdldENoaWxkUG9zID0gKHtvZmZzZXRzLCByZWN0LCBjaGlsZFJlY3QsIHBhZ2VPZmZzZXQsIHBhZGRpbmd9OiBHZXRDaGlsZFBvc1Byb3BzKSA9PiB7XG4gIGNvbnN0IHt0b3BPZmZzZXQsIGxlZnRPZmZzZXQsIHJpZ2h0T2Zmc2V0fSA9IG9mZnNldHM7XG5cbiAgY29uc3QgYW5jaG9yTGVmdCA9IGxlZnRPZmZzZXQgIT09IHVuZGVmaW5lZDtcbiAgY29uc3QgcG9zID0ge1xuICAgIHRvcDogcGFnZU9mZnNldC55ICsgcmVjdC50b3AgKyAodG9wT2Zmc2V0IHx8IDApLFxuICAgIC4uLihhbmNob3JMZWZ0XG4gICAgICA/IHtsZWZ0OiBwYWdlT2Zmc2V0LnggKyByZWN0LmxlZnQgKyBsZWZ0T2Zmc2V0IX1cbiAgICAgIDoge3JpZ2h0OiB3aW5kb3cuaW5uZXJXaWR0aCAtIHJlY3QucmlnaHQgLSBwYWdlT2Zmc2V0LnggKyAocmlnaHRPZmZzZXQgfHwgMCl9KVxuICB9O1xuXG4gIGNvbnN0IGxlZnRPclJpZ2h0ID0gYW5jaG9yTGVmdCA/ICdsZWZ0JyA6ICdyaWdodCc7XG5cbiAgaWYgKHBvc1tsZWZ0T3JSaWdodF0gJiYgcG9zW2xlZnRPclJpZ2h0XSA8IDApIHtcbiAgICBwb3NbbGVmdE9yUmlnaHRdID0gcGFkZGluZztcbiAgfSBlbHNlIGlmIChwb3NbbGVmdE9yUmlnaHRdICYmIHBvc1tsZWZ0T3JSaWdodF0gKyBjaGlsZFJlY3Qud2lkdGggPiB3aW5kb3cuaW5uZXJXaWR0aCkge1xuICAgIHBvc1tsZWZ0T3JSaWdodF0gPSB3aW5kb3cuaW5uZXJXaWR0aCAtIGNoaWxkUmVjdC53aWR0aCAtIHBhZGRpbmc7XG4gIH1cblxuICBpZiAocG9zLnRvcCA8IDApIHtcbiAgICBwb3MudG9wID0gcGFkZGluZztcbiAgfSBlbHNlIGlmIChwb3MudG9wICsgY2hpbGRSZWN0LmhlaWdodCA+IHdpbmRvdy5pbm5lckhlaWdodCkge1xuICAgIHBvcy50b3AgPSB3aW5kb3cuaW5uZXJIZWlnaHQgLSBjaGlsZFJlY3QuaGVpZ2h0IC0gcGFkZGluZztcbiAgfVxuXG4gIHJldHVybiBwb3M7XG59O1xuXG5pZiAoY2FuVXNlRE9NKSB7XG4gIGlmIChkb2N1bWVudC5ib2R5KSB7XG4gICAgYWRkRXZlbnRMaXN0ZW5lcnMoKTtcbiAgfSBlbHNlIHtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdET01Db250ZW50TG9hZGVkJywgYWRkRXZlbnRMaXN0ZW5lcnMpO1xuICB9XG59XG5cbmxldCBsaXN0ZW5lcklkQ291bnRlciA9IDA7XG5mdW5jdGlvbiBzdWJzY3JpYmUoZm4pIHtcbiAgbGlzdGVuZXJJZENvdW50ZXIgKz0gMTtcbiAgY29uc3QgaWQgPSBsaXN0ZW5lcklkQ291bnRlcjtcbiAgbGlzdGVuZXJzW2lkXSA9IGZuO1xuICByZXR1cm4gKCkgPT4gZGVsZXRlIGxpc3RlbmVyc1tpZF07XG59XG5cbmNvbnN0IGRlZmF1bHRNb2RhbFN0eWxlID0ge1xuICBjb250ZW50OiB7XG4gICAgdG9wOiAwLFxuICAgIGxlZnQ6IDAsXG4gICAgYm9yZGVyOiAwLFxuICAgIHJpZ2h0OiAnYXV0bycsXG4gICAgYm90dG9tOiAnYXV0bycsXG4gICAgcGFkZGluZzogJzBweCAwcHggMHB4IDBweCdcbiAgfSxcbiAgb3ZlcmxheToge1xuICAgIHJpZ2h0OiAnYXV0bycsXG4gICAgYm90dG9tOiAnYXV0bycsXG4gICAgd2lkdGg6ICcxMDB2dycsXG4gICAgaGVpZ2h0OiAnMTAwdmgnLFxuICAgIGJhY2tncm91bmRDb2xvcjogJ3JnYmEoMCwgMCwgMCwgMCknXG4gIH1cbn07XG5cbmNvbnN0IFdJTkRPV19QQUQgPSA0MDtcblxuY29uc3Qgbm9vcCA9ICgpID0+IHt9O1xuXG50eXBlIFBvcnRhbGVkUHJvcHMgPSBQcm9wc1dpdGhDaGlsZHJlbjx7XG4gIGNvbXBvbmVudDogRWxlbWVudFR5cGU7XG4gIG9uQ2xvc2U/OiAoXG4gICAgZXZlbnQ6IFJlYWN0Lk1vdXNlRXZlbnQ8RWxlbWVudCwgZ2xvYmFsVGhpcy5Nb3VzZUV2ZW50PiB8IFJlYWN0LktleWJvYXJkRXZlbnQ8RWxlbWVudD5cbiAgKSA9PiB2b2lkO1xuICB0aGVtZT86IGFueTtcbiAgaXNPcGVuZWQ/OiBib29sZWFuO1xuICB0b3A6IG51bWJlcjtcbiAgbGVmdD86IG51bWJlcjtcbiAgcmlnaHQ/OiBudW1iZXI7XG4gIG92ZXJsYXlaSW5kZXg/OiBudW1iZXI7XG4gIG1vZGFsUHJvcHM/OiBQYXJ0aWFsPFJlYWN0TW9kYWwuUHJvcHM+O1xuICBtb2RhbFN0eWxlPzogUGFydGlhbDx0eXBlb2YgZGVmYXVsdE1vZGFsU3R5bGU+O1xufT47XG5cbmludGVyZmFjZSBQb3J0YWxlZFN0YXRlIHtcbiAgcG9zOlxuICAgIHwge1xuICAgICAgICBsZWZ0OiBudW1iZXI7XG4gICAgICAgIHRvcDogbnVtYmVyO1xuICAgICAgfVxuICAgIHwge1xuICAgICAgICByaWdodDogbnVtYmVyO1xuICAgICAgICB0b3A6IG51bWJlcjtcbiAgICAgIH1cbiAgICB8IG51bGw7XG4gIGlzVmlzaWJsZTogYm9vbGVhbjtcbn1cblxuY2xhc3MgUG9ydGFsZWQgZXh0ZW5kcyBDb21wb25lbnQ8UG9ydGFsZWRQcm9wcywgUG9ydGFsZWRTdGF0ZT4ge1xuICAvLyBNYWtlIFBvcnRhbGVkIGEgY29tcG9uZW50IHdpdGggRXJyb3IgQm91bmRhcnksIHNvIFJlYWN0IGNhbiByZWNyZWF0ZVxuICAvLyB0aGlzIGNvbXBvbmVudCBpZiB0aGUgY2hpbGQgJ0NvbG9yUGlja2VyJyB0aHJvd3MgY3Jvc3Mtb3JpZ2luIGVycm9yLlxuICAvLyBzZWUgZnVuY3Rpb24gY29tcG9uZW50RGlkQ2F0Y2goKVxuICBzdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbUVycm9yKCkge1xuICAgIHJldHVybiB7aGFzRXJyb3I6IHRydWV9O1xuICB9XG5cbiAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICBjb21wb25lbnQ6ICdkaXYnLFxuICAgIG9uQ2xvc2U6IG5vb3AsXG4gICAgdGhlbWVcbiAgfTtcblxuICBzdGF0ZSA9IHtcbiAgICBwb3M6IG51bGwsXG4gICAgaXNWaXNpYmxlOiBmYWxzZVxuICB9O1xuXG4gIHVuc3Vic2NyaWJlOiAoKCkgPT4gYm9vbGVhbikgfCB1bmRlZmluZWQgPSB1bmRlZmluZWQ7XG4gIF91bm1vdW50ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAvLyByZWxhdGl2ZVxuICAgIHRoaXMudW5zdWJzY3JpYmUgPSBzdWJzY3JpYmUodGhpcy5oYW5kbGVTY3JvbGwpO1xuICAgIHRoaXMuaGFuZGxlU2Nyb2xsKCk7XG4gIH1cblxuICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgY29uc3QgZGlkT3BlbiA9IHRoaXMucHJvcHMuaXNPcGVuZWQgJiYgIXByZXZQcm9wcy5pc09wZW5lZDtcbiAgICBjb25zdCBkaWRDbG9zZSA9ICF0aGlzLnByb3BzLmlzT3BlbmVkICYmIHByZXZQcm9wcy5pc09wZW5lZDtcbiAgICBpZiAoZGlkT3BlbiB8fCBkaWRDbG9zZSkge1xuICAgICAgd2luZG93LnJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLl91bm1vdW50ZWQpIHJldHVybjtcbiAgICAgICAgdGhpcy5zZXRTdGF0ZSh7aXNWaXNpYmxlOiBCb29sZWFuKGRpZE9wZW4pfSk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmhhbmRsZVNjcm9sbCgpO1xuICB9XG5cbiAgLy8gQ29sb3JQaWNrZXIgd2lsbCB0aHJvdyBhIGNyb3NzLW9yaWdpbiBlcnJvciB3aGVuIGl0IGlzIGNsb3NlZFxuICAvLyB3aGVuIHRoZSBhcHAgaXMgd2l0aGluIGFuIGlmcmFtZS5cbiAgLy8gVGhpcyBpcyBhIGtub3duIGlzc3VlIG9mIHJlYWN0LWNvbG9yIGNvbXBvbmVudDpcbiAgLy8gc2VlOiBodHRwczovL2dpdGh1Yi5jb20vY2FzZXNhbmRiZXJnL3JlYWN0LWNvbG9yL2lzc3Vlcy84MDZcbiAgY29tcG9uZW50RGlkQ2F0Y2goKSB7XG4gICAgLy8gRG8gbm90aGluZyBoZXJlLCBzaW5jZSBSZWFjdCB3aWxsIHRyeSB0byByZWNyZWF0ZSB0aGlzIGNvbXBvbmVudFxuICAgIC8vIHRyZWUgZnJvbSBzY3JhdGNoIHVzaW5nIHRoZSBlcnJvciBib3VuZGFyeSwgd2hpY2ggaXMgdGhpcyBjb21wb25lbnRcbiAgICAvLyBpdHNlbGYuIFRoaXMgaXMgYSB0ZW1wb3JhbCBmaXggZm9yIGEgY3Jhc2guXG4gIH1cblxuICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICB0aGlzLl91bm1vdW50ZWQgPSB0cnVlO1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICB0aGlzLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBlbGVtZW50ID0gY3JlYXRlUmVmPEhUTUxEaXZFbGVtZW50PigpO1xuICBjaGlsZCA9IGNyZWF0ZVJlZjxIVE1MRGl2RWxlbWVudD4oKTtcblxuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgY29tcGxleGl0eVxuICBoYW5kbGVTY3JvbGwgPSAoKSA9PiB7XG4gICAgaWYgKHRoaXMuY2hpbGQuY3VycmVudCAmJiB0aGlzLmVsZW1lbnQuY3VycmVudCkge1xuICAgICAgY29uc3QgcmVjdCA9IHRoaXMuZWxlbWVudC5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3QgY2hpbGRSZWN0ID0gdGhpcy5jaGlsZC5jdXJyZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgY29uc3QgcGFnZU9mZnNldCA9IGdldFBhZ2VPZmZzZXQoKTtcbiAgICAgIGNvbnN0IHt0b3A6IHRvcE9mZnNldCwgbGVmdDogbGVmdE9mZnNldCA9IDAsIHJpZ2h0OiByaWdodE9mZnNldH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICBjb25zdCBwb3MgPSBnZXRDaGlsZFBvcyh7XG4gICAgICAgIG9mZnNldHM6IHt0b3BPZmZzZXQsIGxlZnRPZmZzZXQsIHJpZ2h0T2Zmc2V0fSxcbiAgICAgICAgcmVjdCxcbiAgICAgICAgY2hpbGRSZWN0LFxuICAgICAgICBwYWdlT2Zmc2V0LFxuICAgICAgICBwYWRkaW5nOiBXSU5ET1dfUEFEXG4gICAgICB9KTtcblxuICAgICAgaWYgKCFpc0VxdWFsKHBvcywgdGhpcy5zdGF0ZS5wb3MpKSB7XG4gICAgICAgIHRoaXMuc2V0U3RhdGUoe3Bvc30pO1xuICAgICAgfVxuICAgIH1cbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgLy8gcmVsYXRpdmVcbiAgICAgIGNvbXBvbmVudDogQ29tcCxcbiAgICAgIG92ZXJsYXlaSW5kZXgsXG4gICAgICBpc09wZW5lZCxcbiAgICAgIG9uQ2xvc2UsXG5cbiAgICAgIC8vIE1vZGFsXG4gICAgICBjaGlsZHJlbixcbiAgICAgIG1vZGFsUHJvcHMsXG4gICAgICBtb2RhbFN0eWxlID0ge31cbiAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgIGNvbnN0IHtpc1Zpc2libGUsIHBvc30gPSB0aGlzLnN0YXRlO1xuXG4gICAgY29uc3QgbmV3TW9kYWxTdHlsZSA9IHtcbiAgICAgIC4uLmRlZmF1bHRNb2RhbFN0eWxlLFxuICAgICAgY29udGVudDoge1xuICAgICAgICAuLi4obW9kYWxTdHlsZS5jb250ZW50IHx8IHt9KVxuICAgICAgfSxcbiAgICAgIG92ZXJsYXk6IHtcbiAgICAgICAgLi4uZGVmYXVsdE1vZGFsU3R5bGUub3ZlcmxheSxcbiAgICAgICAgLi4uKG1vZGFsU3R5bGUub3ZlcmxheSB8fCB7fSksXG4gICAgICAgIC8vIG5lZWRzIHRvIGJlIG9uIHRvcCBvZiBleGlzdGluZyBtb2RhbFxuICAgICAgICB6SW5kZXg6IG92ZXJsYXlaSW5kZXggfHwgOTk5OVxuICAgICAgfVxuICAgIH07XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFJvb3RDb250ZXh0LkNvbnN1bWVyPlxuICAgICAgICB7Y29udGV4dCA9PiAoXG4gICAgICAgICAgPENvbXAgcmVmPXt0aGlzLmVsZW1lbnR9PlxuICAgICAgICAgICAge2lzT3BlbmVkID8gKFxuICAgICAgICAgICAgICA8TW9kYWxcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJtb2RhbC1wb3J0YWxcIlxuICAgICAgICAgICAgICAgIHsuLi5tb2RhbFByb3BzfVxuICAgICAgICAgICAgICAgIGFyaWFIaWRlQXBwPXtmYWxzZX1cbiAgICAgICAgICAgICAgICBpc09wZW5cbiAgICAgICAgICAgICAgICBzdHlsZT17bmV3TW9kYWxTdHlsZX1cbiAgICAgICAgICAgICAgICBwYXJlbnRTZWxlY3Rvcj17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgLy8gUmVhY3QgbW9kYWwgaXNzdWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yZWFjdGpzL3JlYWN0LW1vZGFsL2lzc3Vlcy83NjlcbiAgICAgICAgICAgICAgICAgIC8vIGZhaWxlZCB0byBleGVjdXRlIHJlbW92ZUNoaWxkIG9uIHBhcmVudCBub2RlIHdoZW4gaXQgaXMgYWxyZWFkeSB1bm1vdW50ZWRcbiAgICAgICAgICAgICAgICAgIHJldHVybiAoY29udGV4dCAmJiBjb250ZXh0LmN1cnJlbnQpIHx8IGRvY3VtZW50LmJvZHk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICBvblJlcXVlc3RDbG9zZT17b25DbG9zZX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInBvcnRhbGVkLWNvbnRlbnRcIlxuICAgICAgICAgICAgICAgICAga2V5PVwiaXRlbVwiXG4gICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogJ2ZpeGVkJyxcbiAgICAgICAgICAgICAgICAgICAgb3BhY2l0eTogaXNWaXNpYmxlID8gMSA6IDAsXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zaXRpb246IHRoaXMucHJvcHMudGhlbWUudHJhbnNpdGlvbkZhc3QsXG4gICAgICAgICAgICAgICAgICAgIG1hcmdpblRvcDogaXNWaXNpYmxlID8gJzBweCcgOiAnMTRweCcsXG4gICAgICAgICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcbiAgICAgICAgICAgICAgICAgICAgLi4ucG9zXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgcmVmPXt0aGlzLmNoaWxkfVxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgICAgICAgICAgIHpJbmRleDogb3ZlcmxheVpJbmRleCA/IG92ZXJsYXlaSW5kZXggKyAxIDogMTAwMDBcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvTW9kYWw+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICA8L0NvbXA+XG4gICAgICAgICl9XG4gICAgICA8L1Jvb3RDb250ZXh0LkNvbnN1bWVyPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgd2l0aFRoZW1lKFBvcnRhbGVkKTtcbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import React from 'react';
|
|
2
2
|
export declare type ProgressBarProps = {
|
|
3
3
|
percent: string;
|
|
4
4
|
height?: number;
|
|
@@ -8,5 +8,5 @@ export declare type ProgressBarProps = {
|
|
|
8
8
|
theme: any;
|
|
9
9
|
};
|
|
10
10
|
/** @type {React.FunctionComponent<ProgressBarProps>} */
|
|
11
|
-
declare const ProgressBar: ({ percent, height, isLoading, barColor, trackColor, theme }: ProgressBarProps) => JSX.Element;
|
|
11
|
+
declare const ProgressBar: ({ percent, height, isLoading, barColor, trackColor, theme }: ProgressBarProps) => React.JSX.Element;
|
|
12
12
|
export default ProgressBar;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright (c)
|
|
1
|
+
// Copyright (c) 2023 Uber Technologies, Inc.
|
|
2
2
|
//
|
|
3
3
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
4
4
|
// of this software and associated documentation files (the "Software"), to deal
|
|
@@ -71,4 +71,4 @@ var ProgressBar = function ProgressBar(_ref) {
|
|
|
71
71
|
|
|
72
72
|
var _default = ProgressBar;
|
|
73
73
|
exports["default"] = _default;
|
|
74
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
74
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vcHJvZ3Jlc3MtYmFyLnRzeCJdLCJuYW1lcyI6WyJTdHlsZWRCYXIiLCJzdHlsZWQiLCJzcGFuIiwiYXR0cnMiLCJjbGFzc05hbWUiLCJwcm9wcyIsImJhckNvbG9yIiwidGhlbWUiLCJwcm9ncmVzc0JhckNvbG9yIiwiU3R5bGVkVHJhY2siLCJkaXYiLCJ0cmFja0NvbG9yIiwicHJvZ3Jlc3NCYXJUcmFja0NvbG9yIiwiUHJvZ3Jlc3NCYXIiLCJwZXJjZW50IiwiaGVpZ2h0IiwiaXNMb2FkaW5nIiwid2lkdGgiLCJvcGFjaXR5Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQW9CQTs7QUFDQTs7OztBQVFBLElBQU1BLFNBQVMsR0FBR0MsNkJBQU9DLElBQVAsQ0FBWUMsS0FBWixDQUFrQjtBQUNsQ0MsRUFBQUEsU0FBUyxFQUFFO0FBRHVCLENBQWxCLENBQUgseUtBR08sVUFBQUMsS0FBSztBQUFBLFNBQUlBLEtBQUssQ0FBQ0MsUUFBTixJQUFrQkQsS0FBSyxDQUFDRSxLQUFOLENBQVlDLGdCQUFsQztBQUFBLENBSFosQ0FBZjs7QUFZQSxJQUFNQyxXQUFXLEdBQUdSLDZCQUFPUyxHQUFQLENBQVdQLEtBQVgsQ0FBaUI7QUFDbkNDLEVBQUFBLFNBQVMsRUFBRTtBQUR3QixDQUFqQixDQUFILHNIQUdLLFVBQUFDLEtBQUs7QUFBQSxTQUFJQSxLQUFLLENBQUNNLFVBQU4sSUFBb0JOLEtBQUssQ0FBQ0UsS0FBTixDQUFZSyxxQkFBcEM7QUFBQSxDQUhWLENBQWpCOztBQWVBO0FBQ0EsSUFBTUMsV0FBVyxHQUFHLFNBQWRBLFdBQWM7QUFBQSxNQUNsQkMsT0FEa0IsUUFDbEJBLE9BRGtCO0FBQUEseUJBRWxCQyxNQUZrQjtBQUFBLE1BRWxCQSxNQUZrQiw0QkFFVCxDQUZTO0FBQUEsTUFHbEJDLFNBSGtCLFFBR2xCQSxTQUhrQjtBQUFBLE1BSWxCVixRQUprQixRQUlsQkEsUUFKa0I7QUFBQSxNQUtsQkssVUFMa0IsUUFLbEJBLFVBTGtCO0FBQUEsTUFNbEJKLEtBTmtCLFFBTWxCQSxLQU5rQjtBQUFBLHNCQVFsQixnQ0FBQyxXQUFEO0FBQWEsSUFBQSxVQUFVLEVBQUVJLFVBQXpCO0FBQXFDLElBQUEsS0FBSyxFQUFFSjtBQUE1QyxrQkFDRSxnQ0FBQyxTQUFEO0FBQ0UsSUFBQSxRQUFRLEVBQUVELFFBRFo7QUFFRSxJQUFBLEtBQUssRUFBRTtBQUFDVyxNQUFBQSxLQUFLLEVBQUVILE9BQVI7QUFBaUJDLE1BQUFBLE1BQU0sWUFBS0EsTUFBTCxPQUF2QjtBQUF3Q0csTUFBQUEsT0FBTyxFQUFFRixTQUFTLEdBQUcsQ0FBSCxHQUFPO0FBQWpFO0FBRlQsSUFERixDQVJrQjtBQUFBLENBQXBCOztlQWdCZUgsVyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMyBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcblxuLyoqIEB0eXBlZGVmIHtpbXBvcnQoJy4vcHJvZ3Jlc3MtYmFyJykuUHJvZ3Jlc3NCYXJQcm9wc30gUHJvZ3Jlc3NCYXJQcm9wcyAqL1xuXG5pbnRlcmZhY2UgU3R5bGVkQmFyUHJvcHMge1xuICBiYXJDb2xvcj86IHN0cmluZztcbn1cblxuY29uc3QgU3R5bGVkQmFyID0gc3R5bGVkLnNwYW4uYXR0cnMoe1xuICBjbGFzc05hbWU6ICdwcm9ncmVzcy1iYXJfX2Jhcidcbn0pPFN0eWxlZEJhclByb3BzPmBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy5iYXJDb2xvciB8fCBwcm9wcy50aGVtZS5wcm9ncmVzc0JhckNvbG9yfTtcbiAgLyogdHJhbnNpdGlvbjogd2lkdGggMjAwbXM7ICovXG4gIGRpc3BsYXk6IGJsb2NrO1xuYDtcblxuaW50ZXJmYWNlIFN0eWxlZFRyYWNrUHJvcHMge1xuICB0cmFja0NvbG9yPzogc3RyaW5nO1xufVxuXG5jb25zdCBTdHlsZWRUcmFjayA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICdwcm9ncmVzcy1iYXInXG59KTxTdHlsZWRUcmFja1Byb3BzPmBcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50cmFja0NvbG9yIHx8IHByb3BzLnRoZW1lLnByb2dyZXNzQmFyVHJhY2tDb2xvcn07XG5gO1xuXG5leHBvcnQgdHlwZSBQcm9ncmVzc0JhclByb3BzID0ge1xuICBwZXJjZW50OiBzdHJpbmc7XG4gIGhlaWdodD86IG51bWJlcjtcbiAgaXNMb2FkaW5nOiBib29sZWFuO1xuICBiYXJDb2xvcjogc3RyaW5nO1xuICB0cmFja0NvbG9yPzogc3RyaW5nO1xuICB0aGVtZTogYW55O1xufTtcblxuLyoqIEB0eXBlIHtSZWFjdC5GdW5jdGlvbkNvbXBvbmVudDxQcm9ncmVzc0JhclByb3BzPn0gKi9cbmNvbnN0IFByb2dyZXNzQmFyID0gKHtcbiAgcGVyY2VudCxcbiAgaGVpZ2h0ID0gNCxcbiAgaXNMb2FkaW5nLFxuICBiYXJDb2xvcixcbiAgdHJhY2tDb2xvcixcbiAgdGhlbWVcbn06IFByb2dyZXNzQmFyUHJvcHMpID0+IChcbiAgPFN0eWxlZFRyYWNrIHRyYWNrQ29sb3I9e3RyYWNrQ29sb3J9IHRoZW1lPXt0aGVtZX0+XG4gICAgPFN0eWxlZEJhclxuICAgICAgYmFyQ29sb3I9e2JhckNvbG9yfVxuICAgICAgc3R5bGU9e3t3aWR0aDogcGVyY2VudCwgaGVpZ2h0OiBgJHtoZWlnaHR9cHhgLCBvcGFjaXR5OiBpc0xvYWRpbmcgPyAxIDogMH19XG4gICAgLz5cbiAgPC9TdHlsZWRUcmFjaz5cbik7XG5cbmV4cG9ydCBkZWZhdWx0IFByb2dyZXNzQmFyO1xuIl19
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright (c)
|
|
1
|
+
// Copyright (c) 2023 Uber Technologies, Inc.
|
|
2
2
|
//
|
|
3
3
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
4
4
|
// of this software and associated documentation files (the "Software"), to deal
|
|
@@ -343,4 +343,4 @@ function RangeBrushFactory() {
|
|
|
343
343
|
|
|
344
344
|
var _default = RangeBrushFactory;
|
|
345
345
|
exports["default"] = _default;
|
|
346
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vcmFuZ2UtYnJ1c2gudHN4Il0sIm5hbWVzIjpbIlN0eWxlZEciLCJzdHlsZWQiLCJnIiwicHJvcHMiLCJpc1JhbmdlZCIsInRoZW1lIiwicmFuZ2VCcnVzaEJnZCIsIkJMVUUyIiwibW92ZVJpZ2h0Iiwic3RhcnRTZWwiLCJzZWxlY3Rpb24iLCJzdGFydFNlbDAiLCJzZWwwIiwiQm9vbGVhbiIsImdldEhhbmRsZVBhdGgiLCJicnVzaFJlc2l6ZVBhdGgiLCJkIiwiZSIsIk51bWJlciIsInR5cGUiLCJ4IiwiaCIsInciLCJ5IiwiaGVpZ2h0IiwiUmFuZ2VCcnVzaEZhY3RvcnkiLCJSYW5nZUJydXNoIiwicm9vdENvbnRhaW5lciIsImN1cnJlbnQiLCJ1bmRlZmluZWQiLCJldnQiLCJzb3VyY2VFdmVudCIsInNlbDEiLCJyaWdodCIsIl9zdGFydFNlbCIsInJhbmdlIiwibWluIiwibWF4Iiwic3RlcCIsIndpZHRoIiwibWFya3MiLCJpbnZlcnQiLCJkMCIsImQxIiwiX21vdmUiLCJfb25CcnVzaCIsIm9uTW91c2VvdmVySGFuZGxlIiwib25Nb3VzZW91dEhhbmRsZSIsInJvb3QiLCJicnVzaCIsImhhbmRsZVNpemUiLCJvbiIsImV2ZW50Iiwib25CcnVzaFN0YXJ0IiwibW92aW5nIiwiX2xhc3RTZWwiLCJicnVzaGluZyIsIl9icnVzaGVkIiwiX2NsaWNrIiwib25CcnVzaEVuZCIsImNhbGwiLCJoYW5kbGUiLCJzZWxlY3RBbGwiLCJkYXRhIiwiZW50ZXIiLCJhcHBlbmQiLCJhdHRyIiwic2xpZGVySGFuZGxlQ29sb3IiLCJ2YWx1ZSIsInZhbDAiLCJ2YWwxIiwicHJldlByb3BzIiwicHJldlZhbDAiLCJwcmV2VmFsMSIsInNjYWxlIiwibW92ZSIsImkiLCJjdXJyZW50VmFsMCIsImN1cnJlbnRWYWwxIiwib25CcnVzaCIsIkNvbXBvbmVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9C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O0FBQUE7QUFBQSxJQUN4Q3FELGdCQUR3Qzs7QUFBQSxtQ0FDM0R0RCxVQUQyRCxrQkFFekM7QUFDcEJ0QixJQUFBQSxRQUFRLEVBQUU7QUFEVSxHQUZ5QztBQWdNakUsU0FBTyxpQ0FBVXNCLFVBQVYsQ0FBUDtBQUNEOztlQUVjRCxpQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMiBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudCwgY3JlYXRlUmVmfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkLCB7d2l0aFRoZW1lfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge3NlbGVjdCwgU2VsZWN0aW9ufSBmcm9tICdkMy1zZWxlY3Rpb24nO1xuaW1wb3J0IHtCcnVzaEJlaGF2aW9yLCBicnVzaFh9IGZyb20gJ2QzLWJydXNoJztcbmltcG9ydCB7bm9ybWFsaXplU2xpZGVyVmFsdWV9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuXG5pbnRlcmZhY2UgU3R5bGVkR1Byb3BzIHtcbiAgaXNSYW5nZWQ/OiBib29sZWFuO1xufVxuXG5jb25zdCBTdHlsZWRHID0gc3R5bGVkLmc8U3R5bGVkR1Byb3BzPmBcbiAgLnNlbGVjdGlvbiB7XG4gICAgc3Ryb2tlOiBub25lO1xuICAgIGZpbGw6ICR7cHJvcHMgPT4gKHByb3BzLmlzUmFuZ2VkID8gcHJvcHMudGhlbWUucmFuZ2VCcnVzaEJnZCA6IHByb3BzLnRoZW1lLkJMVUUyKX07XG4gICAgZmlsbC1vcGFjaXR5OiAke3Byb3BzID0+IChwcm9wcy5pc1JhbmdlZCA/IDAuMyA6IDEpfTtcbiAgfVxuICAuaGFuZGxlIHtcbiAgICBmaWxsOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLkJMVUUyfTtcbiAgICBmaWxsLW9wYWNpdHk6IDAuMztcbiAgfVxuYDtcblxuZnVuY3Rpb24gbW92ZVJpZ2h0KHN0YXJ0U2VsLCBzZWxlY3Rpb24pIHtcbiAgY29uc3QgW3N0YXJ0U2VsMF0gPSBzdGFydFNlbDtcbiAgY29uc3QgW3NlbDBdID0gc2VsZWN0aW9uO1xuXG4gIHJldHVybiBCb29sZWFuKHN0YXJ0U2VsMCA9PT0gc2VsMCk7XG59XG4vLyBzdHlsZSBicnVzaCByZXNpemUgaGFuZGxlXG4vLyBodHRwczovL2dpdGh1Yi5jb20vY3Jvc3NmaWx0ZXIvY3Jvc3NmaWx0ZXIvYmxvYi9naC1wYWdlcy9pbmRleC5odG1sI0w0NjZcbmNvbnN0IGdldEhhbmRsZVBhdGggPSAocHJvcHM6IFJhbmdlQnJ1c2hQcm9wcykgPT4ge1xuICByZXR1cm4gZnVuY3Rpb24gYnJ1c2hSZXNpemVQYXRoKGQpIHtcbiAgICBjb25zdCBlID0gTnVtYmVyKGQudHlwZSA9PT0gJ2UnKTtcbiAgICBjb25zdCB4ID0gZSA/IDEgOiAtMTtcbiAgICBjb25zdCBoID0gMzk7XG4gICAgY29uc3QgdyA9IDQuNTtcbiAgICBjb25zdCB5ID0gKHByb3BzLmhlaWdodCAtIGgpIC8gMjtcbiAgICByZXR1cm4gYE0kezAuNSAqIHh9LCR7eX1jJHsyLjUgKiB4fSwwLCR7dyAqIHh9LDIsJHt3ICogeH0sJHt3fXYke2ggLSB3ICogMn1jMCwyLjUsJHstMiAqXG4gICAgICB4fSwke3d9LCR7LXcgKiB4fSwke3d9ViR7eX16YDtcbiAgfTtcbn07XG5cbmV4cG9ydCB0eXBlIE9uQnJ1c2ggPSAodmFsMDogbnVtYmVyLCB2YWwxOiBudW1iZXIpID0+IHZvaWQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmFuZ2VCcnVzaFByb3BzIHtcbiAgaXNSYW5nZWQ/OiBib29sZWFuO1xuICB0aGVtZT86IGFueTtcbiAgcmFuZ2U6IG51bWJlcltdO1xuICB2YWx1ZTogbnVtYmVyW107XG4gIG9uQnJ1c2hTdGFydDogKCkgPT4gdm9pZDtcbiAgb25CcnVzaEVuZDogKCkgPT4gdm9pZDtcbiAgd2lkdGg6IG51bWJlcjtcbiAgaGVpZ2h0OiBudW1iZXI7XG4gIG9uQnJ1c2g6IE9uQnJ1c2g7XG4gIHN0ZXA/OiBudW1iZXI7XG4gIG1hcmtzPzogbnVtYmVyW107XG4gIG9uTW91c2VvdmVySGFuZGxlOiAoKSA9PiB2b2lkO1xuICBvbk1vdXNlb3V0SGFuZGxlOiAoKSA9PiB2b2lkO1xufVxuXG5mdW5jdGlvbiBSYW5nZUJydXNoRmFjdG9yeSgpOiBSZWFjdC5Db21wb25lbnRUeXBlPFJhbmdlQnJ1c2hQcm9wcz4ge1xuICBjbGFzcyBSYW5nZUJydXNoIGV4dGVuZHMgQ29tcG9uZW50PFJhbmdlQnJ1c2hQcm9wcz4ge1xuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICBpc1JhbmdlZDogdHJ1ZVxuICAgIH07XG5cbiAgICByb290Q29udGFpbmVyID0gY3JlYXRlUmVmPFNWR0dFbGVtZW50PigpO1xuXG4gICAgYnJ1c2hpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBtb3Zpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHJvb3QgPSB0aGlzLnJvb3RDb250YWluZXIuY3VycmVudCA/IHNlbGVjdCh0aGlzLnJvb3RDb250YWluZXIuY3VycmVudCkgOiB1bmRlZmluZWQ7XG4gICAgYnJ1c2g6IEJydXNoQmVoYXZpb3I8YW55PiB8IHVuZGVmaW5lZDtcbiAgICBfc3RhcnRTZWw6IG51bWJlcltdIHwgdW5kZWZpbmVkO1xuICAgIF9sYXN0U2VsOiBudW1iZXJbXSB8IHVuZGVmaW5lZDtcblxuICAgIGhhbmRsZTogU2VsZWN0aW9uPFNWR1BhdGhFbGVtZW50LCB7dHlwZTogc3RyaW5nfSwgU1ZHR0VsZW1lbnQgfCBudWxsLCB1bmtub3duPiB8IHVuZGVmaW5lZDtcblxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgLy8gV2Ugd2FudCB0aGUgUmVhY3QgYXBwIHRvIHJlc3BvbmQgdG8gYnJ1c2ggc3RhdGUgYW5kIHZpY2UtdmVyc2FcbiAgICAgIC8vIGJ1dCBkMy1icnVzaCBmaXJlcyB0aGUgc2FtZSBldmVudHMgZm9yIGJvdGggdXNlci1pbml0aWF0ZWQgYnJ1c2hpbmdcbiAgICAgIC8vIGFuZCBwcm9ncmFtbWF0aWMgYnJ1c2hpbmcgKGJydXNoLm1vdmUpLiBXZSBuZWVkIHRoZXNlIGZsYWdzIHRvXG4gICAgICAvLyBkaXN0aW5ndWlzaCBiZXR3ZWVuIHRoZSB1c2VzLlxuICAgICAgLy9cbiAgICAgIC8vIFdlIGRvbid0IHVzZSBzdGF0ZSBiZWNhdXNlIHRoYXQgd291bGQgdHJpZ2dlciBhbm90aGVyIGBjb21wb25lbnREaWRVcGRhdGVgXG4gICAgICBjb25zdCB7dGhlbWUsIGlzUmFuZ2VkLCBvbk1vdXNlb3ZlckhhbmRsZSwgb25Nb3VzZW91dEhhbmRsZX0gPSB0aGlzLnByb3BzO1xuXG4gICAgICB0aGlzLnJvb3QgPSB0aGlzLnJvb3RDb250YWluZXIuY3VycmVudCA/IHNlbGVjdCh0aGlzLnJvb3RDb250YWluZXIuY3VycmVudCkgOiB1bmRlZmluZWQ7XG4gICAgICB0aGlzLmJydXNoID0gYnJ1c2hYKClcbiAgICAgICAgLmhhbmRsZVNpemUoMylcbiAgICAgICAgLm9uKCdzdGFydCcsIGV2ZW50ID0+IHtcbiAgICAgICAgICBpZiAodHlwZW9mIHRoaXMucHJvcHMub25CcnVzaFN0YXJ0ID09PSAnZnVuY3Rpb24nKSB0aGlzLnByb3BzLm9uQnJ1c2hTdGFydCgpO1xuICAgICAgICAgIHRoaXMuX3N0YXJ0U2VsID0gZXZlbnQuc2VsZWN0aW9uO1xuICAgICAgICB9KVxuICAgICAgICAub24oJ2JydXNoJywgZXZlbnQgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLm1vdmluZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZXZlbnQuc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLl9sYXN0U2VsID0gZXZlbnQuc2VsZWN0aW9uO1xuICAgICAgICAgICAgdGhpcy5icnVzaGluZyA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLl9icnVzaGVkKGV2ZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIC5vbignZW5kJywgZXZlbnQgPT4ge1xuICAgICAgICAgIGlmICghZXZlbnQuc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5icnVzaGluZykge1xuICAgICAgICAgICAgICAvLyBoYW5kbGUgbnVsbCBzZWxlY3Rpb25cbiAgICAgICAgICAgICAgdGhpcy5fY2xpY2sodGhpcy5fbGFzdFNlbCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX3N0YXJ0U2VsKSB7XG4gICAgICAgICAgICAgIC8vIGhhbmRsZSBjbGlja1xuICAgICAgICAgICAgICB0aGlzLl9jbGljayh0aGlzLl9zdGFydFNlbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb3BzLm9uQnJ1c2hFbmQgPT09ICdmdW5jdGlvbicpIHRoaXMucHJvcHMub25CcnVzaEVuZCgpO1xuXG4gICAgICAgICAgdGhpcy5icnVzaGluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMubW92aW5nID0gZmFsc2U7XG4gICAgICAgIH0pO1xuXG4gICAgICB0aGlzLnJvb3Q/LmNhbGwodGhpcy5icnVzaCk7XG4gICAgICBjb25zdCBicnVzaFJlc2l6ZVBhdGggPSBnZXRIYW5kbGVQYXRoKHRoaXMucHJvcHMpO1xuICAgICAgdGhpcy5oYW5kbGUgPSB0aGlzLnJvb3RcbiAgICAgICAgPy5zZWxlY3RBbGwoJy5oYW5kbGUtLWN1c3RvbScpXG4gICAgICAgIC5kYXRhKFt7dHlwZTogJ3cnfSwge3R5cGU6ICdlJ31dKVxuICAgICAgICAuZW50ZXIoKVxuICAgICAgICAuYXBwZW5kKCdwYXRoJylcbiAgICAgICAgLmF0dHIoJ2NsYXNzJywgJ2hhbmRsZS0tY3VzdG9tJylcbiAgICAgICAgLmF0dHIoJ2Rpc3BsYXknLCBpc1JhbmdlZCA/IG51bGwgOiAnbm9uZScpXG4gICAgICAgIC5hdHRyKCdmaWxsJywgdGhlbWUgPyB0aGVtZS5zbGlkZXJIYW5kbGVDb2xvciA6ICcjRDNEOEUwJylcbiAgICAgICAgLmF0dHIoJ2N1cnNvcicsICdldy1yZXNpemUnKVxuICAgICAgICAuYXR0cignZCcsIGJydXNoUmVzaXplUGF0aClcbiAgICAgICAgLm9uKCdtb3VzZW92ZXInLCAoKSA9PiB7XG4gICAgICAgICAgaWYgKG9uTW91c2VvdmVySGFuZGxlKSBvbk1vdXNlb3ZlckhhbmRsZSgpO1xuICAgICAgICB9KVxuICAgICAgICAub24oJ21vdXNlb3V0JywgKCkgPT4ge1xuICAgICAgICAgIGlmIChvbk1vdXNlb3V0SGFuZGxlKSBvbk1vdXNlb3V0SGFuZGxlKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICBjb25zdCB7XG4gICAgICAgIHZhbHVlOiBbdmFsMCwgdmFsMV1cbiAgICAgIH0gPSB0aGlzLnByb3BzO1xuICAgICAgdGhpcy5tb3ZpbmcgPSB0cnVlO1xuICAgICAgdGhpcy5fbW92ZSh2YWwwLCB2YWwxKTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHZhbHVlOiBbdmFsMCwgdmFsMV0sXG4gICAgICAgIHdpZHRoXG4gICAgICB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IFtwcmV2VmFsMCwgcHJldlZhbDFdID0gcHJldlByb3BzLnZhbHVlO1xuXG4gICAgICBpZiAocHJldlByb3BzLndpZHRoICE9PSB3aWR0aCkge1xuICAgICAgICAvLyB3aWR0aCBjaGFuZ2Ugc2hvdWxkIG5vdCB0cmlnZ2VyIHRoaXMuX2JydXNoZWRcbiAgICAgICAgdGhpcy5tb3ZpbmcgPSB0cnVlO1xuICAgICAgICBpZiAodGhpcy5icnVzaCkgdGhpcy5yb290Py5jYWxsKHRoaXMuYnJ1c2gpO1xuICAgICAgICB0aGlzLl9tb3ZlKHZhbDAsIHZhbDEpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMuYnJ1c2hpbmcgJiYgIXRoaXMubW92aW5nKSB7XG4gICAgICAgIGlmIChwcmV2VmFsMCAhPT0gdmFsMCB8fCBwcmV2VmFsMSAhPT0gdmFsMSkge1xuICAgICAgICAgIHRoaXMubW92aW5nID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLl9tb3ZlKHZhbDAsIHZhbDEpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghdGhpcy5wcm9wcy5pc1JhbmdlZCAmJiB0aGlzLmhhbmRsZSkge1xuICAgICAgICB0aGlzLmhhbmRsZS5hdHRyKCdkaXNwbGF5JywgJ25vbmUnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBfY2xpY2soc2VsZWN0aW9uKSB7XG4gICAgICAvLyBmYWtlIGJydXNoXG4gICAgICB0aGlzLmJydXNoaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuX2JydXNoZWQoe3NvdXJjZUV2ZW50OiB7fSwgc2VsZWN0aW9ufSk7XG4gICAgfVxuXG4gICAgX21vdmUodmFsMDogbnVtYmVyID0gMCwgdmFsMTogbnVtYmVyID0gMCkge1xuICAgICAgY29uc3Qge1xuICAgICAgICByYW5nZTogW21pbiwgbWF4XSxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGlzUmFuZ2VkXG4gICAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgaWYgKHdpZHRoICYmIG1heCAtIG1pbiAmJiB0aGlzLmJydXNoICYmIHRoaXMuaGFuZGxlKSB7XG4gICAgICAgIGNvbnN0IHNjYWxlID0gKHg6IG51bWJlcikgPT4gKCh4IC0gbWluKSAqIHdpZHRoKSAvIChtYXggLSBtaW4pO1xuICAgICAgICBpZiAoIWlzUmFuZ2VkKSB7XG4gICAgICAgICAgLy8gb25seSBkcmF3IGEgMSBwaXhlbCBsaW5lXG4gICAgICAgICAgaWYgKHRoaXMucm9vdCkgdGhpcy5icnVzaC5tb3ZlKHRoaXMucm9vdCwgW3NjYWxlKHZhbDApLCBzY2FsZSh2YWwwKSArIDFdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAodGhpcy5yb290KSB0aGlzLmJydXNoLm1vdmUodGhpcy5yb290LCBbc2NhbGUodmFsMCksIHNjYWxlKHZhbDEpXSk7XG5cbiAgICAgICAgICB0aGlzLmhhbmRsZVxuICAgICAgICAgICAgLmF0dHIoJ2Rpc3BsYXknLCBudWxsKVxuICAgICAgICAgICAgLmF0dHIoJ3RyYW5zZm9ybScsIChkLCBpKSA9PiBgdHJhbnNsYXRlKCR7W2kgPT09IDAgPyBzY2FsZSh2YWwwKSA6IHNjYWxlKHZhbDEpLCAwXX0pYCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBfYnJ1c2hlZCA9IChldnQ6IHtzb3VyY2VFdmVudDogYW55OyBzZWxlY3Rpb246IG51bWJlcltdfSkgPT4ge1xuICAgICAgLy8gSWdub3JlIGJydXNoIGV2ZW50cyB3aGljaCBkb24ndCBoYXZlIGFuIHVuZGVybHlpbmcgc291cmNlRXZlbnRcbiAgICAgIGlmICghZXZ0LnNvdXJjZUV2ZW50KSByZXR1cm47XG4gICAgICBjb25zdCBbc2VsMCwgc2VsMV0gPSBldnQuc2VsZWN0aW9uO1xuICAgICAgY29uc3QgcmlnaHQgPSBtb3ZlUmlnaHQodGhpcy5fc3RhcnRTZWwsIGV2dC5zZWxlY3Rpb24pO1xuXG4gICAgICBjb25zdCB7XG4gICAgICAgIHJhbmdlOiBbbWluLCBtYXhdLFxuICAgICAgICBzdGVwID0gMCxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIG1hcmtzLFxuICAgICAgICBpc1JhbmdlZFxuICAgICAgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBpbnZlcnQgPSAoeDogbnVtYmVyKSA9PiAoeCAqIChtYXggLSBtaW4pKSAvIHdpZHRoICsgbWluO1xuICAgICAgbGV0IGQwID0gaW52ZXJ0KHNlbDApO1xuICAgICAgbGV0IGQxID0gaW52ZXJ0KHNlbDEpO1xuXG4gICAgICBkMCA9IG5vcm1hbGl6ZVNsaWRlclZhbHVlKGQwLCBtaW4sIHN0ZXAsIG1hcmtzKTtcbiAgICAgIGQxID0gbm9ybWFsaXplU2xpZGVyVmFsdWUoZDEsIG1pbiwgc3RlcCwgbWFya3MpO1xuXG4gICAgICBpZiAoaXNSYW5nZWQpIHRoaXMuX21vdmUoZDAsIGQxKTtcbiAgICAgIGVsc2UgdGhpcy5fbW92ZSguLi4ocmlnaHQgPyBbZDEsIGQxXSA6IFtkMCwgZDBdKSk7XG5cbiAgICAgIGlmIChpc1JhbmdlZCkgdGhpcy5fb25CcnVzaChkMCwgZDEpO1xuICAgICAgZWxzZSB0aGlzLl9vbkJydXNoKHJpZ2h0ID8gZDEgOiBkMCk7XG4gICAgfTtcblxuICAgIF9vbkJydXNoKHZhbDA6IG51bWJlciA9IDAsIHZhbDE6IG51bWJlciA9IDApIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgaXNSYW5nZWQsXG4gICAgICAgIHZhbHVlOiBbY3VycmVudFZhbDAsIGN1cnJlbnRWYWwxXVxuICAgICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIGlmIChjdXJyZW50VmFsMCA9PT0gdmFsMCAmJiBjdXJyZW50VmFsMSA9PT0gdmFsMSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChpc1JhbmdlZCkge1xuICAgICAgICB0aGlzLnByb3BzLm9uQnJ1c2godmFsMCwgdmFsMSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnByb3BzLm9uQnJ1c2godmFsMCwgdmFsMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3Qge2lzUmFuZ2VkfSA9IHRoaXMucHJvcHM7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkRyBjbGFzc05hbWU9XCJrZy1yYW5nZS1zbGlkZXJfX2JydXNoXCIgaXNSYW5nZWQ9e2lzUmFuZ2VkfSByZWY9e3RoaXMucm9vdENvbnRhaW5lcn0gLz5cbiAgICAgICk7XG4gICAgfVxuICB9XG4gIHJldHVybiB3aXRoVGhlbWUoUmFuZ2VCcnVzaCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFJhbmdlQnJ1c2hGYWN0b3J5O1xuIl19
|
|
346
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vcmFuZ2UtYnJ1c2gudHN4Il0sIm5hbWVzIjpbIlN0eWxlZEciLCJzdHlsZWQiLCJnIiwicHJvcHMiLCJpc1JhbmdlZCIsInRoZW1lIiwicmFuZ2VCcnVzaEJnZCIsIkJMVUUyIiwibW92ZVJpZ2h0Iiwic3RhcnRTZWwiLCJzZWxlY3Rpb24iLCJzdGFydFNlbDAiLCJzZWwwIiwiQm9vbGVhbiIsImdldEhhbmRsZVBhdGgiLCJicnVzaFJlc2l6ZVBhdGgiLCJkIiwiZSIsIk51bWJlciIsInR5cGUiLCJ4IiwiaCIsInciLCJ5IiwiaGVpZ2h0IiwiUmFuZ2VCcnVzaEZhY3RvcnkiLCJSYW5nZUJydXNoIiwicm9vdENvbnRhaW5lciIsImN1cnJlbnQiLCJ1bmRlZmluZWQiLCJldnQiLCJzb3VyY2VFdmVudCIsInNlbDEiLCJyaWdodCIsIl9zdGFydFNlbCIsInJhbmdlIiwibWluIiwibWF4Iiwic3RlcCIsIndpZHRoIiwibWFya3MiLCJpbnZlcnQiLCJkMCIsImQxIiwiX21vdmUiLCJfb25CcnVzaCIsIm9uTW91c2VvdmVySGFuZGxlIiwib25Nb3VzZW91dEhhbmRsZSIsInJvb3QiLCJicnVzaCIsImhhbmRsZVNpemUiLCJvbiIsImV2ZW50Iiwib25CcnVzaFN0YXJ0IiwibW92aW5nIiwiX2xhc3RTZWwiLCJicnVzaGluZyIsIl9icnVzaGVkIiwiX2NsaWNrIiwib25CcnVzaEVuZCIsImNhbGwiLCJoYW5kbGUiLCJzZWxlY3RBbGwiLCJkYXRhIiwiZW50ZXIiLCJhcHBlbmQiLCJhdHRyIiwic2xpZGVySGFuZGxlQ29sb3IiLCJ2YWx1ZSIsInZhbDAiLCJ2YWwxIiwicHJldlByb3BzIiwicHJldlZhbDAiLCJwcmV2VmFsMSIsInNjYWxlIiwibW92ZSIsImkiLCJjdXJyZW50VmFsMCIsImN1cnJlbnRWYWwxIiwib25CcnVzaCIsIkNvbXBvbmVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7QUFNQSxJQUFNQSxPQUFPLEdBQUdDLDZCQUFPQyxDQUFWLHNPQUdELFVBQUFDLEtBQUs7QUFBQSxTQUFLQSxLQUFLLENBQUNDLFFBQU4sR0FBaUJELEtBQUssQ0FBQ0UsS0FBTixDQUFZQyxhQUE3QixHQUE2Q0gsS0FBSyxDQUFDRSxLQUFOLENBQVlFLEtBQTlEO0FBQUEsQ0FISixFQUlPLFVBQUFKLEtBQUs7QUFBQSxTQUFLQSxLQUFLLENBQUNDLFFBQU4sR0FBaUIsR0FBakIsR0FBdUIsQ0FBNUI7QUFBQSxDQUpaLEVBT0QsVUFBQUQsS0FBSztBQUFBLFNBQUlBLEtBQUssQ0FBQ0UsS0FBTixDQUFZRSxLQUFoQjtBQUFBLENBUEosQ0FBYjs7QUFZQSxTQUFTQyxTQUFULENBQW1CQyxRQUFuQixFQUE2QkMsU0FBN0IsRUFBd0M7QUFBQSxrREFDbEJELFFBRGtCO0FBQUEsTUFDL0JFLFNBRCtCOztBQUFBLG1EQUV2QkQsU0FGdUI7QUFBQSxNQUUvQkUsSUFGK0I7O0FBSXRDLFNBQU9DLE9BQU8sQ0FBQ0YsU0FBUyxLQUFLQyxJQUFmLENBQWQ7QUFDRCxDLENBQ0Q7QUFDQTs7O0FBQ0EsSUFBTUUsYUFBYSxHQUFHLFNBQWhCQSxhQUFnQixDQUFDWCxLQUFELEVBQTRCO0FBQ2hELFNBQU8sU0FBU1ksZUFBVCxDQUF5QkMsQ0FBekIsRUFBNEI7QUFDakMsUUFBTUMsQ0FBQyxHQUFHQyxNQUFNLENBQUNGLENBQUMsQ0FBQ0csSUFBRixLQUFXLEdBQVosQ0FBaEI7QUFDQSxRQUFNQyxDQUFDLEdBQUdILENBQUMsR0FBRyxDQUFILEdBQU8sQ0FBQyxDQUFuQjtBQUNBLFFBQU1JLENBQUMsR0FBRyxFQUFWO0FBQ0EsUUFBTUMsQ0FBQyxHQUFHLEdBQVY7QUFDQSxRQUFNQyxDQUFDLEdBQUcsQ0FBQ3BCLEtBQUssQ0FBQ3FCLE1BQU4sR0FBZUgsQ0FBaEIsSUFBcUIsQ0FBL0I7QUFDQSxzQkFBVyxNQUFNRCxDQUFqQixjQUFzQkcsQ0FBdEIsY0FBMkIsTUFBTUgsQ0FBakMsZ0JBQXdDRSxDQUFDLEdBQUdGLENBQTVDLGdCQUFtREUsQ0FBQyxHQUFHRixDQUF2RCxjQUE0REUsQ0FBNUQsY0FBaUVELENBQUMsR0FBR0MsQ0FBQyxHQUFHLENBQXpFLG9CQUFvRixDQUFDLENBQUQsR0FDbEZGLENBREYsY0FDT0UsQ0FEUCxjQUNZLENBQUNBLENBQUQsR0FBS0YsQ0FEakIsY0FDc0JFLENBRHRCLGNBQzJCQyxDQUQzQjtBQUVELEdBUkQ7QUFTRCxDQVZEOztBQThCQSxTQUFTRSxpQkFBVCxHQUFtRTtBQUFBLE1BQzNEQyxVQUQyRDtBQUFBOztBQUFBOztBQUFBO0FBQUE7O0FBQUE7O0FBQUE7QUFBQTtBQUFBOztBQUFBO0FBQUEscUhBTS9DLHVCQU4rQztBQUFBLG1HQVEzQyxLQVIyQztBQUFBLGlHQVM3QyxLQVQ2QztBQUFBLCtGQVd4RCxNQUFLQyxhQUFMLENBQW1CQyxPQUFuQixHQUE2Qix5QkFBTyxNQUFLRCxhQUFMLENBQW1CQyxPQUExQixDQUE3QixHQUFrRUMsU0FYVjtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUEsbUdBNklwRCxVQUFDQyxHQUFELEVBQWtEO0FBQUE7O0FBQzNEO0FBQ0EsWUFBSSxDQUFDQSxHQUFHLENBQUNDLFdBQVQsRUFBc0I7O0FBRnFDLDZEQUd0Q0QsR0FBRyxDQUFDcEIsU0FIa0M7QUFBQSxZQUdwREUsSUFIb0Q7QUFBQSxZQUc5Q29CLElBSDhDOztBQUkzRCxZQUFNQyxLQUFLLEdBQUd6QixTQUFTLENBQUMsTUFBSzBCLFNBQU4sRUFBaUJKLEdBQUcsQ0FBQ3BCLFNBQXJCLENBQXZCOztBQUoyRCwwQkFZdkQsTUFBS1AsS0Faa0Q7QUFBQSw0RUFPekRnQyxLQVB5RDtBQUFBLFlBT2pEQyxHQVBpRDtBQUFBLFlBTzVDQyxHQVA0QztBQUFBLDJDQVF6REMsSUFSeUQ7QUFBQSxZQVF6REEsSUFSeUQsaUNBUWxELENBUmtEO0FBQUEsWUFTekRDLEtBVHlELGVBU3pEQSxLQVR5RDtBQUFBLFlBVXpEQyxLQVZ5RCxlQVV6REEsS0FWeUQ7QUFBQSxZQVd6RHBDLFFBWHlELGVBV3pEQSxRQVh5RDs7QUFhM0QsWUFBTXFDLE1BQU0sR0FBRyxTQUFUQSxNQUFTLENBQUNyQixDQUFEO0FBQUEsaUJBQWdCQSxDQUFDLElBQUlpQixHQUFHLEdBQUdELEdBQVYsQ0FBRixHQUFvQkcsS0FBcEIsR0FBNEJILEdBQTNDO0FBQUEsU0FBZjs7QUFDQSxZQUFJTSxFQUFFLEdBQUdELE1BQU0sQ0FBQzdCLElBQUQsQ0FBZjtBQUNBLFlBQUkrQixFQUFFLEdBQUdGLE1BQU0sQ0FBQ1QsSUFBRCxDQUFmO0FBRUFVLFFBQUFBLEVBQUUsR0FBRyxpQ0FBcUJBLEVBQXJCLEVBQXlCTixHQUF6QixFQUE4QkUsSUFBOUIsRUFBb0NFLEtBQXBDLENBQUw7QUFDQUcsUUFBQUEsRUFBRSxHQUFHLGlDQUFxQkEsRUFBckIsRUFBeUJQLEdBQXpCLEVBQThCRSxJQUE5QixFQUFvQ0UsS0FBcEMsQ0FBTDtBQUVBLFlBQUlwQyxRQUFKLEVBQWMsTUFBS3dDLEtBQUwsQ0FBV0YsRUFBWCxFQUFlQyxFQUFmLEVBQWQsS0FDSyxpQkFBS0MsS0FBTCxtREFBZVgsS0FBSyxHQUFHLENBQUNVLEVBQUQsRUFBS0EsRUFBTCxDQUFILEdBQWMsQ0FBQ0QsRUFBRCxFQUFLQSxFQUFMLENBQWxDO0FBRUwsWUFBSXRDLFFBQUosRUFBYyxNQUFLeUMsUUFBTCxDQUFjSCxFQUFkLEVBQWtCQyxFQUFsQixFQUFkLEtBQ0ssTUFBS0UsUUFBTCxDQUFjWixLQUFLLEdBQUdVLEVBQUgsR0FBUUQsRUFBM0I7QUFDTixPQXRLOEQ7QUFBQTtBQUFBOztBQUFBO0FBQUE7QUFBQSxhQWtCL0QsNkJBQW9CO0FBQUE7QUFBQTtBQUFBOztBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFOa0IsMkJBTzZDLEtBQUt2QyxLQVBsRDtBQUFBLFlBT1hFLEtBUFcsZ0JBT1hBLEtBUFc7QUFBQSxZQU9KRCxRQVBJLGdCQU9KQSxRQVBJO0FBQUEsWUFPTTBDLGlCQVBOLGdCQU9NQSxpQkFQTjtBQUFBLFlBT3lCQyxnQkFQekIsZ0JBT3lCQSxnQkFQekI7QUFTbEIsYUFBS0MsSUFBTCxHQUFZLEtBQUtyQixhQUFMLENBQW1CQyxPQUFuQixHQUE2Qix5QkFBTyxLQUFLRCxhQUFMLENBQW1CQyxPQUExQixDQUE3QixHQUFrRUMsU0FBOUU7QUFDQSxhQUFLb0IsS0FBTCxHQUFhLHVCQUNWQyxVQURVLENBQ0MsQ0FERCxFQUVWQyxFQUZVLENBRVAsT0FGTyxFQUVFLFVBQUFDLEtBQUssRUFBSTtBQUNwQixjQUFJLE9BQU8sTUFBSSxDQUFDakQsS0FBTCxDQUFXa0QsWUFBbEIsS0FBbUMsVUFBdkMsRUFBbUQsTUFBSSxDQUFDbEQsS0FBTCxDQUFXa0QsWUFBWDtBQUNuRCxVQUFBLE1BQUksQ0FBQ25CLFNBQUwsR0FBaUJrQixLQUFLLENBQUMxQyxTQUF2QjtBQUNELFNBTFUsRUFNVnlDLEVBTlUsQ0FNUCxPQU5PLEVBTUUsVUFBQUMsS0FBSyxFQUFJO0FBQ3BCLGNBQUksTUFBSSxDQUFDRSxNQUFULEVBQWlCO0FBQ2Y7QUFDRDs7QUFDRCxjQUFJRixLQUFLLENBQUMxQyxTQUFWLEVBQXFCO0FBQ25CLFlBQUEsTUFBSSxDQUFDNkMsUUFBTCxHQUFnQkgsS0FBSyxDQUFDMUMsU0FBdEI7QUFDQSxZQUFBLE1BQUksQ0FBQzhDLFFBQUwsR0FBZ0IsSUFBaEI7O0FBQ0EsWUFBQSxNQUFJLENBQUNDLFFBQUwsQ0FBY0wsS0FBZDtBQUNEO0FBQ0YsU0FmVSxFQWdCVkQsRUFoQlUsQ0FnQlAsS0FoQk8sRUFnQkEsVUFBQUMsS0FBSyxFQUFJO0FBQ2xCLGNBQUksQ0FBQ0EsS0FBSyxDQUFDMUMsU0FBWCxFQUFzQjtBQUNwQixnQkFBSSxNQUFJLENBQUM4QyxRQUFULEVBQW1CO0FBQ2pCO0FBQ0EsY0FBQSxNQUFJLENBQUNFLE1BQUwsQ0FBWSxNQUFJLENBQUNILFFBQWpCO0FBQ0QsYUFIRCxNQUdPLElBQUksTUFBSSxDQUFDckIsU0FBVCxFQUFvQjtBQUN6QjtBQUNBLGNBQUEsTUFBSSxDQUFDd0IsTUFBTCxDQUFZLE1BQUksQ0FBQ3hCLFNBQWpCO0FBQ0Q7QUFDRjs7QUFFRCxjQUFJLE9BQU8sTUFBSSxDQUFDL0IsS0FBTCxDQUFXd0QsVUFBbEIsS0FBaUMsVUFBckMsRUFBaUQsTUFBSSxDQUFDeEQsS0FBTCxDQUFXd0QsVUFBWDtBQUVqRCxVQUFBLE1BQUksQ0FBQ0gsUUFBTCxHQUFnQixLQUFoQjtBQUNBLFVBQUEsTUFBSSxDQUFDRixNQUFMLEdBQWMsS0FBZDtBQUNELFNBL0JVLENBQWI7QUFpQ0EsMkJBQUtOLElBQUwsMERBQVdZLElBQVgsQ0FBZ0IsS0FBS1gsS0FBckI7QUFDQSxZQUFNbEMsZUFBZSxHQUFHRCxhQUFhLENBQUMsS0FBS1gsS0FBTixDQUFyQztBQUNBLGFBQUswRCxNQUFMLGtCQUFjLEtBQUtiLElBQW5CLGdEQUFjLFlBQ1ZjLFNBRFUsQ0FDQSxpQkFEQSxFQUVYQyxJQUZXLENBRU4sQ0FBQztBQUFDNUMsVUFBQUEsSUFBSSxFQUFFO0FBQVAsU0FBRCxFQUFjO0FBQUNBLFVBQUFBLElBQUksRUFBRTtBQUFQLFNBQWQsQ0FGTSxFQUdYNkMsS0FIVyxHQUlYQyxNQUpXLENBSUosTUFKSSxFQUtYQyxJQUxXLENBS04sT0FMTSxFQUtHLGdCQUxILEVBTVhBLElBTlcsQ0FNTixTQU5NLEVBTUs5RCxRQUFRLEdBQUcsSUFBSCxHQUFVLE1BTnZCLEVBT1g4RCxJQVBXLENBT04sTUFQTSxFQU9FN0QsS0FBSyxHQUFHQSxLQUFLLENBQUM4RCxpQkFBVCxHQUE2QixTQVBwQyxFQVFYRCxJQVJXLENBUU4sUUFSTSxFQVFJLFdBUkosRUFTWEEsSUFUVyxDQVNOLEdBVE0sRUFTRG5ELGVBVEMsRUFVWG9DLEVBVlcsQ0FVUixXQVZRLEVBVUssWUFBTTtBQUNyQixjQUFJTCxpQkFBSixFQUF1QkEsaUJBQWlCO0FBQ3pDLFNBWlcsRUFhWEssRUFiVyxDQWFSLFVBYlEsRUFhSSxZQUFNO0FBQ3BCLGNBQUlKLGdCQUFKLEVBQXNCQSxnQkFBZ0I7QUFDdkMsU0FmVyxDQUFkOztBQTdDa0IsZ0VBZ0VkLEtBQUs1QyxLQWhFUyxDQStEaEJpRSxLQS9EZ0I7QUFBQSxZQStEUkMsSUEvRFE7QUFBQSxZQStERkMsSUEvREU7O0FBaUVsQixhQUFLaEIsTUFBTCxHQUFjLElBQWQ7O0FBQ0EsYUFBS1YsS0FBTCxDQUFXeUIsSUFBWCxFQUFpQkMsSUFBakI7QUFDRDtBQXJGOEQ7QUFBQTtBQUFBLGFBdUYvRCw0QkFBbUJDLFNBQW5CLEVBQThCO0FBQUEsMkJBSXhCLEtBQUtwRSxLQUptQjtBQUFBLDhFQUUxQmlFLEtBRjBCO0FBQUEsWUFFbEJDLElBRmtCO0FBQUEsWUFFWkMsSUFGWTtBQUFBLFlBRzFCL0IsS0FIMEIsZ0JBRzFCQSxLQUgwQjs7QUFBQSwrREFLQ2dDLFNBQVMsQ0FBQ0gsS0FMWDtBQUFBLFlBS3JCSSxRQUxxQjtBQUFBLFlBS1hDLFFBTFc7O0FBTzVCLFlBQUlGLFNBQVMsQ0FBQ2hDLEtBQVYsS0FBb0JBLEtBQXhCLEVBQStCO0FBQUE7O0FBQzdCO0FBQ0EsZUFBS2UsTUFBTCxHQUFjLElBQWQ7QUFDQSxjQUFJLEtBQUtMLEtBQVQsRUFBZ0Isb0JBQUtELElBQUwsNERBQVdZLElBQVgsQ0FBZ0IsS0FBS1gsS0FBckI7O0FBQ2hCLGVBQUtMLEtBQUwsQ0FBV3lCLElBQVgsRUFBaUJDLElBQWpCO0FBQ0Q7O0FBRUQsWUFBSSxDQUFDLEtBQUtkLFFBQU4sSUFBa0IsQ0FBQyxLQUFLRixNQUE1QixFQUFvQztBQUNsQyxjQUFJa0IsUUFBUSxLQUFLSCxJQUFiLElBQXFCSSxRQUFRLEtBQUtILElBQXRDLEVBQTRDO0FBQzFDLGlCQUFLaEIsTUFBTCxHQUFjLElBQWQ7O0FBQ0EsaUJBQUtWLEtBQUwsQ0FBV3lCLElBQVgsRUFBaUJDLElBQWpCO0FBQ0Q7QUFDRjs7QUFFRCxZQUFJLENBQUMsS0FBS25FLEtBQUwsQ0FBV0MsUUFBWixJQUF3QixLQUFLeUQsTUFBakMsRUFBeUM7QUFDdkMsZUFBS0EsTUFBTCxDQUFZSyxJQUFaLENBQWlCLFNBQWpCLEVBQTRCLE1BQTVCO0FBQ0Q7QUFDRjtBQS9HOEQ7QUFBQTtBQUFBLGFBaUgvRCxnQkFBT3hELFNBQVAsRUFBa0I7QUFDaEI7QUFDQSxhQUFLOEMsUUFBTCxHQUFnQixJQUFoQjs7QUFDQSxhQUFLQyxRQUFMLENBQWM7QUFBQzFCLFVBQUFBLFdBQVcsRUFBRSxFQUFkO0FBQWtCckIsVUFBQUEsU0FBUyxFQUFUQTtBQUFsQixTQUFkO0FBQ0Q7QUFySDhEO0FBQUE7QUFBQSxhQXVIL0QsaUJBQTBDO0FBQUEsWUFBcEMyRCxJQUFvQyx1RUFBckIsQ0FBcUI7QUFBQSxZQUFsQkMsSUFBa0IsdUVBQUgsQ0FBRzs7QUFBQSwyQkFLcEMsS0FBS25FLEtBTCtCO0FBQUEsOEVBRXRDZ0MsS0FGc0M7QUFBQSxZQUU5QkMsR0FGOEI7QUFBQSxZQUV6QkMsR0FGeUI7QUFBQSxZQUd0Q0UsS0FIc0MsZ0JBR3RDQSxLQUhzQztBQUFBLFlBSXRDbkMsUUFKc0MsZ0JBSXRDQSxRQUpzQzs7QUFPeEMsWUFBSW1DLEtBQUssSUFBSUYsR0FBRyxHQUFHRCxHQUFmLElBQXNCLEtBQUthLEtBQTNCLElBQW9DLEtBQUtZLE1BQTdDLEVBQXFEO0FBQ25ELGNBQU1hLEtBQUssR0FBRyxTQUFSQSxLQUFRLENBQUN0RCxDQUFEO0FBQUEsbUJBQWdCLENBQUNBLENBQUMsR0FBR2dCLEdBQUwsSUFBWUcsS0FBYixJQUF1QkYsR0FBRyxHQUFHRCxHQUE3QixDQUFmO0FBQUEsV0FBZDs7QUFDQSxjQUFJLENBQUNoQyxRQUFMLEVBQWU7QUFDYjtBQUNBLGdCQUFJLEtBQUs0QyxJQUFULEVBQWUsS0FBS0MsS0FBTCxDQUFXMEIsSUFBWCxDQUFnQixLQUFLM0IsSUFBckIsRUFBMkIsQ0FBQzBCLEtBQUssQ0FBQ0wsSUFBRCxDQUFOLEVBQWNLLEtBQUssQ0FBQ0wsSUFBRCxDQUFMLEdBQWMsQ0FBNUIsQ0FBM0I7QUFDaEIsV0FIRCxNQUdPO0FBQ0wsZ0JBQUksS0FBS3JCLElBQVQsRUFBZSxLQUFLQyxLQUFMLENBQVcwQixJQUFYLENBQWdCLEtBQUszQixJQUFyQixFQUEyQixDQUFDMEIsS0FBSyxDQUFDTCxJQUFELENBQU4sRUFBY0ssS0FBSyxDQUFDSixJQUFELENBQW5CLENBQTNCO0FBRWYsaUJBQUtULE1BQUwsQ0FDR0ssSUFESCxDQUNRLFNBRFIsRUFDbUIsSUFEbkIsRUFFR0EsSUFGSCxDQUVRLFdBRlIsRUFFcUIsVUFBQ2xELENBQUQsRUFBSTRELENBQUo7QUFBQSx5Q0FBdUIsQ0FBQ0EsQ0FBQyxLQUFLLENBQU4sR0FBVUYsS0FBSyxDQUFDTCxJQUFELENBQWYsR0FBd0JLLEtBQUssQ0FBQ0osSUFBRCxDQUE5QixFQUFzQyxDQUF0QyxDQUF2QjtBQUFBLGFBRnJCO0FBR0Q7QUFDRjtBQUNGO0FBM0k4RDtBQUFBO0FBQUEsYUF3Sy9ELG9CQUE2QztBQUFBLFlBQXBDRCxJQUFvQyx1RUFBckIsQ0FBcUI7QUFBQSxZQUFsQkMsSUFBa0IsdUVBQUgsQ0FBRzs7QUFBQSwyQkFJdkMsS0FBS25FLEtBSmtDO0FBQUEsWUFFekNDLFFBRnlDLGdCQUV6Q0EsUUFGeUM7QUFBQSw4RUFHekNnRSxLQUh5QztBQUFBLFlBR2pDUyxXQUhpQztBQUFBLFlBR3BCQyxXQUhvQjs7QUFNM0MsWUFBSUQsV0FBVyxLQUFLUixJQUFoQixJQUF3QlMsV0FBVyxLQUFLUixJQUE1QyxFQUFrRDtBQUNoRDtBQUNEOztBQUVELFlBQUlsRSxRQUFKLEVBQWM7QUFDWixlQUFLRCxLQUFMLENBQVc0RSxPQUFYLENBQW1CVixJQUFuQixFQUF5QkMsSUFBekI7QUFDRCxTQUZELE1BRU87QUFDTCxlQUFLbkUsS0FBTCxDQUFXNEUsT0FBWCxDQUFtQlYsSUFBbkIsRUFBeUJBLElBQXpCO0FBQ0Q7QUFDRjtBQXZMOEQ7QUFBQTtBQUFBLGFBeUwvRCxrQkFBUztBQUFBLFlBQ0FqRSxRQURBLEdBQ1ksS0FBS0QsS0FEakIsQ0FDQUMsUUFEQTtBQUVQLDRCQUNFLGdDQUFDLE9BQUQ7QUFBUyxVQUFBLFNBQVMsRUFBQyx3QkFBbkI7QUFBNEMsVUFBQSxRQUFRLEVBQUVBLFFBQXREO0FBQWdFLFVBQUEsR0FBRyxFQUFFLEtBQUt1QjtBQUExRSxVQURGO0FBR0Q7QUE5TDhEO0FBQUE7QUFBQSxJQUN4Q3FELGdCQUR3Qzs7QUFBQSxtQ0FDM0R0RCxVQUQyRCxrQkFFekM7QUFDcEJ0QixJQUFBQSxRQUFRLEVBQUU7QUFEVSxHQUZ5QztBQWdNakUsU0FBTyxpQ0FBVXNCLFVBQVYsQ0FBUDtBQUNEOztlQUVjRCxpQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMyBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudCwgY3JlYXRlUmVmfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkLCB7d2l0aFRoZW1lfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQge3NlbGVjdCwgU2VsZWN0aW9ufSBmcm9tICdkMy1zZWxlY3Rpb24nO1xuaW1wb3J0IHtCcnVzaEJlaGF2aW9yLCBicnVzaFh9IGZyb20gJ2QzLWJydXNoJztcbmltcG9ydCB7bm9ybWFsaXplU2xpZGVyVmFsdWV9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuXG5pbnRlcmZhY2UgU3R5bGVkR1Byb3BzIHtcbiAgaXNSYW5nZWQ/OiBib29sZWFuO1xufVxuXG5jb25zdCBTdHlsZWRHID0gc3R5bGVkLmc8U3R5bGVkR1Byb3BzPmBcbiAgLnNlbGVjdGlvbiB7XG4gICAgc3Ryb2tlOiBub25lO1xuICAgIGZpbGw6ICR7cHJvcHMgPT4gKHByb3BzLmlzUmFuZ2VkID8gcHJvcHMudGhlbWUucmFuZ2VCcnVzaEJnZCA6IHByb3BzLnRoZW1lLkJMVUUyKX07XG4gICAgZmlsbC1vcGFjaXR5OiAke3Byb3BzID0+IChwcm9wcy5pc1JhbmdlZCA/IDAuMyA6IDEpfTtcbiAgfVxuICAuaGFuZGxlIHtcbiAgICBmaWxsOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLkJMVUUyfTtcbiAgICBmaWxsLW9wYWNpdHk6IDAuMztcbiAgfVxuYDtcblxuZnVuY3Rpb24gbW92ZVJpZ2h0KHN0YXJ0U2VsLCBzZWxlY3Rpb24pIHtcbiAgY29uc3QgW3N0YXJ0U2VsMF0gPSBzdGFydFNlbDtcbiAgY29uc3QgW3NlbDBdID0gc2VsZWN0aW9uO1xuXG4gIHJldHVybiBCb29sZWFuKHN0YXJ0U2VsMCA9PT0gc2VsMCk7XG59XG4vLyBzdHlsZSBicnVzaCByZXNpemUgaGFuZGxlXG4vLyBodHRwczovL2dpdGh1Yi5jb20vY3Jvc3NmaWx0ZXIvY3Jvc3NmaWx0ZXIvYmxvYi9naC1wYWdlcy9pbmRleC5odG1sI0w0NjZcbmNvbnN0IGdldEhhbmRsZVBhdGggPSAocHJvcHM6IFJhbmdlQnJ1c2hQcm9wcykgPT4ge1xuICByZXR1cm4gZnVuY3Rpb24gYnJ1c2hSZXNpemVQYXRoKGQpIHtcbiAgICBjb25zdCBlID0gTnVtYmVyKGQudHlwZSA9PT0gJ2UnKTtcbiAgICBjb25zdCB4ID0gZSA/IDEgOiAtMTtcbiAgICBjb25zdCBoID0gMzk7XG4gICAgY29uc3QgdyA9IDQuNTtcbiAgICBjb25zdCB5ID0gKHByb3BzLmhlaWdodCAtIGgpIC8gMjtcbiAgICByZXR1cm4gYE0kezAuNSAqIHh9LCR7eX1jJHsyLjUgKiB4fSwwLCR7dyAqIHh9LDIsJHt3ICogeH0sJHt3fXYke2ggLSB3ICogMn1jMCwyLjUsJHstMiAqXG4gICAgICB4fSwke3d9LCR7LXcgKiB4fSwke3d9ViR7eX16YDtcbiAgfTtcbn07XG5cbmV4cG9ydCB0eXBlIE9uQnJ1c2ggPSAodmFsMDogbnVtYmVyLCB2YWwxOiBudW1iZXIpID0+IHZvaWQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmFuZ2VCcnVzaFByb3BzIHtcbiAgaXNSYW5nZWQ/OiBib29sZWFuO1xuICB0aGVtZT86IGFueTtcbiAgcmFuZ2U6IG51bWJlcltdO1xuICB2YWx1ZTogbnVtYmVyW107XG4gIG9uQnJ1c2hTdGFydDogKCkgPT4gdm9pZDtcbiAgb25CcnVzaEVuZDogKCkgPT4gdm9pZDtcbiAgd2lkdGg6IG51bWJlcjtcbiAgaGVpZ2h0OiBudW1iZXI7XG4gIG9uQnJ1c2g6IE9uQnJ1c2g7XG4gIHN0ZXA/OiBudW1iZXI7XG4gIG1hcmtzPzogbnVtYmVyW107XG4gIG9uTW91c2VvdmVySGFuZGxlOiAoKSA9PiB2b2lkO1xuICBvbk1vdXNlb3V0SGFuZGxlOiAoKSA9PiB2b2lkO1xufVxuXG5mdW5jdGlvbiBSYW5nZUJydXNoRmFjdG9yeSgpOiBSZWFjdC5Db21wb25lbnRUeXBlPFJhbmdlQnJ1c2hQcm9wcz4ge1xuICBjbGFzcyBSYW5nZUJydXNoIGV4dGVuZHMgQ29tcG9uZW50PFJhbmdlQnJ1c2hQcm9wcz4ge1xuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICBpc1JhbmdlZDogdHJ1ZVxuICAgIH07XG5cbiAgICByb290Q29udGFpbmVyID0gY3JlYXRlUmVmPFNWR0dFbGVtZW50PigpO1xuXG4gICAgYnJ1c2hpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBtb3Zpbmc6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIHJvb3QgPSB0aGlzLnJvb3RDb250YWluZXIuY3VycmVudCA/IHNlbGVjdCh0aGlzLnJvb3RDb250YWluZXIuY3VycmVudCkgOiB1bmRlZmluZWQ7XG4gICAgYnJ1c2g6IEJydXNoQmVoYXZpb3I8YW55PiB8IHVuZGVmaW5lZDtcbiAgICBfc3RhcnRTZWw6IG51bWJlcltdIHwgdW5kZWZpbmVkO1xuICAgIF9sYXN0U2VsOiBudW1iZXJbXSB8IHVuZGVmaW5lZDtcblxuICAgIGhhbmRsZTogU2VsZWN0aW9uPFNWR1BhdGhFbGVtZW50LCB7dHlwZTogc3RyaW5nfSwgU1ZHR0VsZW1lbnQgfCBudWxsLCB1bmtub3duPiB8IHVuZGVmaW5lZDtcblxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgLy8gV2Ugd2FudCB0aGUgUmVhY3QgYXBwIHRvIHJlc3BvbmQgdG8gYnJ1c2ggc3RhdGUgYW5kIHZpY2UtdmVyc2FcbiAgICAgIC8vIGJ1dCBkMy1icnVzaCBmaXJlcyB0aGUgc2FtZSBldmVudHMgZm9yIGJvdGggdXNlci1pbml0aWF0ZWQgYnJ1c2hpbmdcbiAgICAgIC8vIGFuZCBwcm9ncmFtbWF0aWMgYnJ1c2hpbmcgKGJydXNoLm1vdmUpLiBXZSBuZWVkIHRoZXNlIGZsYWdzIHRvXG4gICAgICAvLyBkaXN0aW5ndWlzaCBiZXR3ZWVuIHRoZSB1c2VzLlxuICAgICAgLy9cbiAgICAgIC8vIFdlIGRvbid0IHVzZSBzdGF0ZSBiZWNhdXNlIHRoYXQgd291bGQgdHJpZ2dlciBhbm90aGVyIGBjb21wb25lbnREaWRVcGRhdGVgXG4gICAgICBjb25zdCB7dGhlbWUsIGlzUmFuZ2VkLCBvbk1vdXNlb3ZlckhhbmRsZSwgb25Nb3VzZW91dEhhbmRsZX0gPSB0aGlzLnByb3BzO1xuXG4gICAgICB0aGlzLnJvb3QgPSB0aGlzLnJvb3RDb250YWluZXIuY3VycmVudCA/IHNlbGVjdCh0aGlzLnJvb3RDb250YWluZXIuY3VycmVudCkgOiB1bmRlZmluZWQ7XG4gICAgICB0aGlzLmJydXNoID0gYnJ1c2hYKClcbiAgICAgICAgLmhhbmRsZVNpemUoMylcbiAgICAgICAgLm9uKCdzdGFydCcsIGV2ZW50ID0+IHtcbiAgICAgICAgICBpZiAodHlwZW9mIHRoaXMucHJvcHMub25CcnVzaFN0YXJ0ID09PSAnZnVuY3Rpb24nKSB0aGlzLnByb3BzLm9uQnJ1c2hTdGFydCgpO1xuICAgICAgICAgIHRoaXMuX3N0YXJ0U2VsID0gZXZlbnQuc2VsZWN0aW9uO1xuICAgICAgICB9KVxuICAgICAgICAub24oJ2JydXNoJywgZXZlbnQgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLm1vdmluZykge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAoZXZlbnQuc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLl9sYXN0U2VsID0gZXZlbnQuc2VsZWN0aW9uO1xuICAgICAgICAgICAgdGhpcy5icnVzaGluZyA9IHRydWU7XG4gICAgICAgICAgICB0aGlzLl9icnVzaGVkKGV2ZW50KTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICAgIC5vbignZW5kJywgZXZlbnQgPT4ge1xuICAgICAgICAgIGlmICghZXZlbnQuc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5icnVzaGluZykge1xuICAgICAgICAgICAgICAvLyBoYW5kbGUgbnVsbCBzZWxlY3Rpb25cbiAgICAgICAgICAgICAgdGhpcy5fY2xpY2sodGhpcy5fbGFzdFNlbCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuX3N0YXJ0U2VsKSB7XG4gICAgICAgICAgICAgIC8vIGhhbmRsZSBjbGlja1xuICAgICAgICAgICAgICB0aGlzLl9jbGljayh0aGlzLl9zdGFydFNlbCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHR5cGVvZiB0aGlzLnByb3BzLm9uQnJ1c2hFbmQgPT09ICdmdW5jdGlvbicpIHRoaXMucHJvcHMub25CcnVzaEVuZCgpO1xuXG4gICAgICAgICAgdGhpcy5icnVzaGluZyA9IGZhbHNlO1xuICAgICAgICAgIHRoaXMubW92aW5nID0gZmFsc2U7XG4gICAgICAgIH0pO1xuXG4gICAgICB0aGlzLnJvb3Q/LmNhbGwodGhpcy5icnVzaCk7XG4gICAgICBjb25zdCBicnVzaFJlc2l6ZVBhdGggPSBnZXRIYW5kbGVQYXRoKHRoaXMucHJvcHMpO1xuICAgICAgdGhpcy5oYW5kbGUgPSB0aGlzLnJvb3RcbiAgICAgICAgPy5zZWxlY3RBbGwoJy5oYW5kbGUtLWN1c3RvbScpXG4gICAgICAgIC5kYXRhKFt7dHlwZTogJ3cnfSwge3R5cGU6ICdlJ31dKVxuICAgICAgICAuZW50ZXIoKVxuICAgICAgICAuYXBwZW5kKCdwYXRoJylcbiAgICAgICAgLmF0dHIoJ2NsYXNzJywgJ2hhbmRsZS0tY3VzdG9tJylcbiAgICAgICAgLmF0dHIoJ2Rpc3BsYXknLCBpc1JhbmdlZCA/IG51bGwgOiAnbm9uZScpXG4gICAgICAgIC5hdHRyKCdmaWxsJywgdGhlbWUgPyB0aGVtZS5zbGlkZXJIYW5kbGVDb2xvciA6ICcjRDNEOEUwJylcbiAgICAgICAgLmF0dHIoJ2N1cnNvcicsICdldy1yZXNpemUnKVxuICAgICAgICAuYXR0cignZCcsIGJydXNoUmVzaXplUGF0aClcbiAgICAgICAgLm9uKCdtb3VzZW92ZXInLCAoKSA9PiB7XG4gICAgICAgICAgaWYgKG9uTW91c2VvdmVySGFuZGxlKSBvbk1vdXNlb3ZlckhhbmRsZSgpO1xuICAgICAgICB9KVxuICAgICAgICAub24oJ21vdXNlb3V0JywgKCkgPT4ge1xuICAgICAgICAgIGlmIChvbk1vdXNlb3V0SGFuZGxlKSBvbk1vdXNlb3V0SGFuZGxlKCk7XG4gICAgICAgIH0pO1xuXG4gICAgICBjb25zdCB7XG4gICAgICAgIHZhbHVlOiBbdmFsMCwgdmFsMV1cbiAgICAgIH0gPSB0aGlzLnByb3BzO1xuICAgICAgdGhpcy5tb3ZpbmcgPSB0cnVlO1xuICAgICAgdGhpcy5fbW92ZSh2YWwwLCB2YWwxKTtcbiAgICB9XG5cbiAgICBjb21wb25lbnREaWRVcGRhdGUocHJldlByb3BzKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIHZhbHVlOiBbdmFsMCwgdmFsMV0sXG4gICAgICAgIHdpZHRoXG4gICAgICB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGNvbnN0IFtwcmV2VmFsMCwgcHJldlZhbDFdID0gcHJldlByb3BzLnZhbHVlO1xuXG4gICAgICBpZiAocHJldlByb3BzLndpZHRoICE9PSB3aWR0aCkge1xuICAgICAgICAvLyB3aWR0aCBjaGFuZ2Ugc2hvdWxkIG5vdCB0cmlnZ2VyIHRoaXMuX2JydXNoZWRcbiAgICAgICAgdGhpcy5tb3ZpbmcgPSB0cnVlO1xuICAgICAgICBpZiAodGhpcy5icnVzaCkgdGhpcy5yb290Py5jYWxsKHRoaXMuYnJ1c2gpO1xuICAgICAgICB0aGlzLl9tb3ZlKHZhbDAsIHZhbDEpO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXRoaXMuYnJ1c2hpbmcgJiYgIXRoaXMubW92aW5nKSB7XG4gICAgICAgIGlmIChwcmV2VmFsMCAhPT0gdmFsMCB8fCBwcmV2VmFsMSAhPT0gdmFsMSkge1xuICAgICAgICAgIHRoaXMubW92aW5nID0gdHJ1ZTtcbiAgICAgICAgICB0aGlzLl9tb3ZlKHZhbDAsIHZhbDEpO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghdGhpcy5wcm9wcy5pc1JhbmdlZCAmJiB0aGlzLmhhbmRsZSkge1xuICAgICAgICB0aGlzLmhhbmRsZS5hdHRyKCdkaXNwbGF5JywgJ25vbmUnKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBfY2xpY2soc2VsZWN0aW9uKSB7XG4gICAgICAvLyBmYWtlIGJydXNoXG4gICAgICB0aGlzLmJydXNoaW5nID0gdHJ1ZTtcbiAgICAgIHRoaXMuX2JydXNoZWQoe3NvdXJjZUV2ZW50OiB7fSwgc2VsZWN0aW9ufSk7XG4gICAgfVxuXG4gICAgX21vdmUodmFsMDogbnVtYmVyID0gMCwgdmFsMTogbnVtYmVyID0gMCkge1xuICAgICAgY29uc3Qge1xuICAgICAgICByYW5nZTogW21pbiwgbWF4XSxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIGlzUmFuZ2VkXG4gICAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgaWYgKHdpZHRoICYmIG1heCAtIG1pbiAmJiB0aGlzLmJydXNoICYmIHRoaXMuaGFuZGxlKSB7XG4gICAgICAgIGNvbnN0IHNjYWxlID0gKHg6IG51bWJlcikgPT4gKCh4IC0gbWluKSAqIHdpZHRoKSAvIChtYXggLSBtaW4pO1xuICAgICAgICBpZiAoIWlzUmFuZ2VkKSB7XG4gICAgICAgICAgLy8gb25seSBkcmF3IGEgMSBwaXhlbCBsaW5lXG4gICAgICAgICAgaWYgKHRoaXMucm9vdCkgdGhpcy5icnVzaC5tb3ZlKHRoaXMucm9vdCwgW3NjYWxlKHZhbDApLCBzY2FsZSh2YWwwKSArIDFdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBpZiAodGhpcy5yb290KSB0aGlzLmJydXNoLm1vdmUodGhpcy5yb290LCBbc2NhbGUodmFsMCksIHNjYWxlKHZhbDEpXSk7XG5cbiAgICAgICAgICB0aGlzLmhhbmRsZVxuICAgICAgICAgICAgLmF0dHIoJ2Rpc3BsYXknLCBudWxsKVxuICAgICAgICAgICAgLmF0dHIoJ3RyYW5zZm9ybScsIChkLCBpKSA9PiBgdHJhbnNsYXRlKCR7W2kgPT09IDAgPyBzY2FsZSh2YWwwKSA6IHNjYWxlKHZhbDEpLCAwXX0pYCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICBfYnJ1c2hlZCA9IChldnQ6IHtzb3VyY2VFdmVudDogYW55OyBzZWxlY3Rpb246IG51bWJlcltdfSkgPT4ge1xuICAgICAgLy8gSWdub3JlIGJydXNoIGV2ZW50cyB3aGljaCBkb24ndCBoYXZlIGFuIHVuZGVybHlpbmcgc291cmNlRXZlbnRcbiAgICAgIGlmICghZXZ0LnNvdXJjZUV2ZW50KSByZXR1cm47XG4gICAgICBjb25zdCBbc2VsMCwgc2VsMV0gPSBldnQuc2VsZWN0aW9uO1xuICAgICAgY29uc3QgcmlnaHQgPSBtb3ZlUmlnaHQodGhpcy5fc3RhcnRTZWwsIGV2dC5zZWxlY3Rpb24pO1xuXG4gICAgICBjb25zdCB7XG4gICAgICAgIHJhbmdlOiBbbWluLCBtYXhdLFxuICAgICAgICBzdGVwID0gMCxcbiAgICAgICAgd2lkdGgsXG4gICAgICAgIG1hcmtzLFxuICAgICAgICBpc1JhbmdlZFxuICAgICAgfSA9IHRoaXMucHJvcHM7XG4gICAgICBjb25zdCBpbnZlcnQgPSAoeDogbnVtYmVyKSA9PiAoeCAqIChtYXggLSBtaW4pKSAvIHdpZHRoICsgbWluO1xuICAgICAgbGV0IGQwID0gaW52ZXJ0KHNlbDApO1xuICAgICAgbGV0IGQxID0gaW52ZXJ0KHNlbDEpO1xuXG4gICAgICBkMCA9IG5vcm1hbGl6ZVNsaWRlclZhbHVlKGQwLCBtaW4sIHN0ZXAsIG1hcmtzKTtcbiAgICAgIGQxID0gbm9ybWFsaXplU2xpZGVyVmFsdWUoZDEsIG1pbiwgc3RlcCwgbWFya3MpO1xuXG4gICAgICBpZiAoaXNSYW5nZWQpIHRoaXMuX21vdmUoZDAsIGQxKTtcbiAgICAgIGVsc2UgdGhpcy5fbW92ZSguLi4ocmlnaHQgPyBbZDEsIGQxXSA6IFtkMCwgZDBdKSk7XG5cbiAgICAgIGlmIChpc1JhbmdlZCkgdGhpcy5fb25CcnVzaChkMCwgZDEpO1xuICAgICAgZWxzZSB0aGlzLl9vbkJydXNoKHJpZ2h0ID8gZDEgOiBkMCk7XG4gICAgfTtcblxuICAgIF9vbkJydXNoKHZhbDA6IG51bWJlciA9IDAsIHZhbDE6IG51bWJlciA9IDApIHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgaXNSYW5nZWQsXG4gICAgICAgIHZhbHVlOiBbY3VycmVudFZhbDAsIGN1cnJlbnRWYWwxXVxuICAgICAgfSA9IHRoaXMucHJvcHM7XG5cbiAgICAgIGlmIChjdXJyZW50VmFsMCA9PT0gdmFsMCAmJiBjdXJyZW50VmFsMSA9PT0gdmFsMSkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGlmIChpc1JhbmdlZCkge1xuICAgICAgICB0aGlzLnByb3BzLm9uQnJ1c2godmFsMCwgdmFsMSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnByb3BzLm9uQnJ1c2godmFsMCwgdmFsMCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3Qge2lzUmFuZ2VkfSA9IHRoaXMucHJvcHM7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U3R5bGVkRyBjbGFzc05hbWU9XCJrZy1yYW5nZS1zbGlkZXJfX2JydXNoXCIgaXNSYW5nZWQ9e2lzUmFuZ2VkfSByZWY9e3RoaXMucm9vdENvbnRhaW5lcn0gLz5cbiAgICAgICk7XG4gICAgfVxuICB9XG4gIHJldHVybiB3aXRoVGhlbWUoUmFuZ2VCcnVzaCk7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFJhbmdlQnJ1c2hGYWN0b3J5O1xuIl19
|
|
@@ -2,14 +2,16 @@ import React from 'react';
|
|
|
2
2
|
import RangeBrushFactory, { OnBrush } from './range-brush';
|
|
3
3
|
import HistogramPlotFactory from './histogram-plot';
|
|
4
4
|
import LineChartFactory from './line-chart';
|
|
5
|
-
import { LineChart } from '@kepler.gl/types';
|
|
5
|
+
import { LineChart, Filter } from '@kepler.gl/types';
|
|
6
|
+
import { Datasets } from '@kepler.gl/table';
|
|
6
7
|
declare function RangePlotFactory(RangeBrush: ReturnType<typeof RangeBrushFactory>, HistogramPlot: ReturnType<typeof HistogramPlotFactory>, LineChartPlot: ReturnType<typeof LineChartFactory>): React.ForwardRefExoticComponent<{
|
|
8
|
+
filter?: Filter | undefined;
|
|
7
9
|
height?: number | undefined;
|
|
8
10
|
width: number;
|
|
9
11
|
value: number[];
|
|
10
12
|
step?: number | undefined;
|
|
11
|
-
isRanged?: boolean | undefined;
|
|
12
13
|
range: number[];
|
|
14
|
+
isRanged?: boolean | undefined;
|
|
13
15
|
onBrushStart?: (() => void) | undefined;
|
|
14
16
|
onBrushEnd?: (() => void) | undefined;
|
|
15
17
|
onBrush: OnBrush;
|
|
@@ -26,6 +28,8 @@ declare function RangePlotFactory(RangeBrush: ReturnType<typeof RangeBrushFactor
|
|
|
26
28
|
timeFormat?: string | undefined;
|
|
27
29
|
plotType?: string | undefined;
|
|
28
30
|
playbackControlWidth?: number | undefined;
|
|
31
|
+
animationWindow?: string | undefined;
|
|
32
|
+
datasets?: Datasets | undefined;
|
|
29
33
|
} & {
|
|
30
34
|
theme?: any;
|
|
31
35
|
}>;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright (c)
|
|
1
|
+
// Copyright (c) 2023 Uber Technologies, Inc.
|
|
2
2
|
//
|
|
3
3
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
4
4
|
// of this software and associated documentation files (the "Software"), to deal
|
|
@@ -136,7 +136,8 @@ function RangePlotFactory(RangeBrush, HistogramPlot, LineChartPlot) {
|
|
|
136
136
|
enableChartHover: enableChartHover,
|
|
137
137
|
onMouseMove: onMouseMove,
|
|
138
138
|
hoveredDP: hoveredDP,
|
|
139
|
-
isRanged: isRanged
|
|
139
|
+
isRanged: isRanged,
|
|
140
|
+
onBrush: onBrush
|
|
140
141
|
}, chartProps);
|
|
141
142
|
|
|
142
143
|
return /*#__PURE__*/_react["default"].createElement(StyledRangePlot, {
|
|
@@ -153,4 +154,4 @@ function RangePlotFactory(RangeBrush, HistogramPlot, LineChartPlot) {
|
|
|
153
154
|
|
|
154
155
|
return (0, _styledComponents.withTheme)(RangePlot);
|
|
155
156
|
}
|
|
156
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vcmFuZ2UtcGxvdC50c3giXSwibmFtZXMiOlsiU3R5bGVkUmFuZ2VQbG90Iiwic3R5bGVkIiwiZGl2IiwicHJvcHMiLCJ0aGVtZSIsInNsaWRlckJhckhlaWdodCIsIlJhbmdlUGxvdEZhY3RvcnkiLCJkZXBzIiwiUmFuZ2VCcnVzaEZhY3RvcnkiLCJIaXN0b2dyYW1QbG90RmFjdG9yeSIsIkxpbmVDaGFydEZhY3RvcnkiLCJSYW5nZUJydXNoIiwiSGlzdG9ncmFtUGxvdCIsIkxpbmVDaGFydFBsb3QiLCJSYW5nZVBsb3QiLCJvbkJydXNoIiwicmFuZ2UiLCJ2YWx1ZSIsIndpZHRoIiwicGxvdFR5cGUiLCJsaW5lQ2hhcnQiLCJoaXN0b2dyYW0iLCJpc0VubGFyZ2VkIiwiaXNSYW5nZWQiLCJjaGFydFByb3BzIiwiYnJ1c2hpbmciLCJzZXRCcnVzaGluZyIsImhvdmVyZWREUCIsIm9uTW91c2VNb3ZlIiwiZW5hYmxlQ2hhcnRIb3ZlciIsInNldEVuYWJsZUNoYXJ0SG92ZXIiLCJoZWlnaHQiLCJicmVha1BvaW50VmFsdWVzIiwicmFuZ2VQbG90SExhcmdlUGFsbSIsInJhbmdlUGxvdEhMYXJnZSIsInJhbmdlUGxvdEgiLCJvbkJydXNoU3RhcnQiLCJvbkJydXNoRW5kIiwib25Nb3VzZW92ZXJIYW5kbGUiLCJvbk1vdXNlb3V0SGFuZGxlIiwiYnJ1c2hDb21wb25lbnQiLCJjb21tb25Qcm9wcyIsIm1hcmdpbiIsInJhbmdlUGxvdE1hcmdpbkxhcmdlIiwicmFuZ2VQbG90TWFyZ2luIiwicmFuZ2VQbG90Q29udGFpbmVySExhcmdlUGFsbSIsInJhbmdlUGxvdENvbnRhaW5lckhMYXJnZSIsInJhbmdlUGxvdENvbnRhaW5lckgiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7QUFHQSxJQUFNQSxlQUFlLEdBQUdDLDZCQUFPQyxH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c0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IFJlYWN0LCB7dXNlU3RhdGUsIHVzZUNhbGxiYWNrfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkLCB7d2l0aFRoZW1lfSBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgUmFuZ2VCcnVzaEZhY3RvcnksIHtPbkJydXNoLCBSYW5nZUJydXNoUHJvcHN9IGZyb20gJy4vcmFuZ2UtYnJ1c2gnO1xuaW1wb3J0IEhpc3RvZ3JhbVBsb3RGYWN0b3J5IGZyb20gJy4vaGlzdG9ncmFtLXBsb3QnO1xuaW1wb3J0IExpbmVDaGFydEZhY3RvcnksIHtIb3ZlckRQfSBmcm9tICcuL2xpbmUtY2hhcnQnO1xuaW1wb3J0IHtpc1Rlc3QsIGhhc01vYmlsZVdpZHRofSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7YnJlYWtQb2ludFZhbHVlc30gZnJvbSAnQGtlcGxlci5nbC9zdHlsZXMnO1xuaW1wb3J0IHtMaW5lQ2hhcnR9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG5jb25zdCBTdHlsZWRSYW5nZVBsb3QgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tYm90dG9tOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNsaWRlckJhckhlaWdodH1weDtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246ICdyZWxhdGl2ZSc7XG5gO1xuXG5pbnRlcmZhY2UgUmFuZ2VQbG90UHJvcHMge1xuICBvbkJydXNoOiBPbkJydXNoO1xuICByYW5nZTogbnVtYmVyW107XG4gIHZhbHVlOiBudW1iZXJbXTtcbiAgd2lkdGg6IG51bWJlcjtcbiAgcGxvdFR5cGU/OiBzdHJpbmc7XG4gIGxpbmVDaGFydD86IExpbmVDaGFydDtcbiAgaGlzdG9ncmFtPzoge3gwOiBudW1iZXI7IHgxOiBudW1iZXJ9W107XG4gIGlzRW5sYXJnZWQ/OiBib29sZWFuO1xuICBpc1JhbmdlZD86IGJvb2xlYW47XG4gIHRoZW1lOiBhbnk7XG4gIHRpbWVGb3JtYXQ/OiBzdHJpbmc7XG4gIHRpbWV6b25lPzogc3RyaW5nIHwgbnVsbDtcbiAgcGxheWJhY2tDb250cm9sV2lkdGg/OiBudW1iZXI7XG59XG5cblJhbmdlUGxvdEZhY3RvcnkuZGVwcyA9IFtSYW5nZUJydXNoRmFjdG9yeSwgSGlzdG9ncmFtUGxvdEZhY3RvcnksIExpbmVDaGFydEZhY3RvcnldO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBSYW5nZVBsb3RGYWN0b3J5KFxuICBSYW5nZUJydXNoOiBSZXR1cm5UeXBlPHR5cGVvZiBSYW5nZUJydXNoRmFjdG9yeT4sXG4gIEhpc3RvZ3JhbVBsb3Q6IFJldHVyblR5cGU8dHlwZW9mIEhpc3RvZ3JhbVBsb3RGYWN0b3J5PixcbiAgTGluZUNoYXJ0UGxvdDogUmV0dXJuVHlwZTx0eXBlb2YgTGluZUNoYXJ0RmFjdG9yeT5cbikge1xuICBjb25zdCBSYW5nZVBsb3QgPSAoe1xuICAgIG9uQnJ1c2gsXG4gICAgcmFuZ2UsXG4gICAgdmFsdWUsXG4gICAgd2lkdGgsXG4gICAgcGxvdFR5cGUsXG4gICAgbGluZUNoYXJ0LFxuICAgIGhpc3RvZ3JhbSxcbiAgICBpc0VubGFyZ2VkLFxuICAgIGlzUmFuZ2VkLFxuICAgIHRoZW1lLFxuICAgIC4uLmNoYXJ0UHJvcHNcbiAgfTogUmFuZ2VQbG90UHJvcHMgJiBQYXJ0aWFsPFJhbmdlQnJ1c2hQcm9wcz4pID0+IHtcbiAgICBjb25zdCBbYnJ1c2hpbmcsIHNldEJydXNoaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbaG92ZXJlZERQLCBvbk1vdXNlTW92ZV0gPSB1c2VTdGF0ZTxIb3ZlckRQIHwgbnVsbD4obnVsbCk7XG4gICAgY29uc3QgW2VuYWJsZUNoYXJ0SG92ZXIsIHNldEVuYWJsZUNoYXJ0SG92ZXJdID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IGhlaWdodCA9IGlzRW5sYXJnZWRcbiAgICAgID8gaGFzTW9iaWxlV2lkdGgoYnJlYWtQb2ludFZhbHVlcylcbiAgICAgICAgPyB0aGVtZS5yYW5nZVBsb3RITGFyZ2VQYWxtXG4gICAgICAgIDogdGhlbWUucmFuZ2VQbG90SExhcmdlXG4gICAgICA6IHRoZW1lLnJhbmdlUGxvdEg7XG5cbiAgICBjb25zdCBvbkJydXNoU3RhcnQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBzZXRCcnVzaGluZyh0cnVlKTtcbiAgICAgIG9uTW91c2VNb3ZlKG51bGwpO1xuICAgICAgc2V0RW5hYmxlQ2hhcnRIb3ZlcihmYWxzZSk7XG4gICAgfSwgW3NldEJydXNoaW5nLCBvbk1vdXNlTW92ZSwgc2V0RW5hYmxlQ2hhcnRIb3Zlcl0pO1xuXG4gICAgY29uc3Qgb25CcnVzaEVuZCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHNldEJydXNoaW5nKGZhbHNlKTtcbiAgICAgIHNldEVuYWJsZUNoYXJ0SG92ZXIodHJ1ZSk7XG4gICAgfSwgW3NldEJydXNoaW5nLCBzZXRFbmFibGVDaGFydEhvdmVyXSk7XG5cbiAgICBjb25zdCBvbk1vdXNlb3ZlckhhbmRsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIG9uTW91c2VNb3ZlKG51bGwpO1xuICAgICAgc2V0RW5hYmxlQ2hhcnRIb3ZlcihmYWxzZSk7XG4gICAgfSwgW29uTW91c2VNb3ZlLCBzZXRFbmFibGVDaGFydEhvdmVyXSk7XG5cbiAgICBjb25zdCBvbk1vdXNlb3V0SGFuZGxlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0RW5hYmxlQ2hhcnRIb3Zlcih0cnVlKTtcbiAgICB9LCBbc2V0RW5hYmxlQ2hhcnRIb3Zlcl0pO1xuXG4gICAgLy8gSnNEb20gaGF2ZSBsaW1pdGVkIHN1cHBvcnQgZm9yIFNWRywgZDMgd2lsbCBmYWlsXG4gICAgY29uc3QgYnJ1c2hDb21wb25lbnQgPSBpc1Rlc3QoKSA/IG51bGwgOiAoXG4gICAgICA8UmFuZ2VCcnVzaFxuICAgICAgICBvbkJydXNoPXtvbkJydXNofVxuICAgICAgICBvbkJydXNoU3RhcnQ9e29uQnJ1c2hTdGFydH1cbiAgICAgICAgb25CcnVzaEVuZD17b25CcnVzaEVuZH1cbiAgICAgICAgcmFuZ2U9e3JhbmdlfVxuICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgICAgaGVpZ2h0PXtoZWlnaHR9XG4gICAgICAgIGlzUmFuZ2VkPXtpc1JhbmdlZH1cbiAgICAgICAgb25Nb3VzZW92ZXJIYW5kbGU9e29uTW91c2VvdmVySGFuZGxlfVxuICAgICAgICBvbk1vdXNlb3V0SGFuZGxlPXtvbk1vdXNlb3V0SGFuZGxlfVxuICAgICAgICB7Li4uY2hhcnRQcm9wc31cbiAgICAgIC8+XG4gICAgKTtcblxuICAgIGNvbnN0IGNvbW1vblByb3BzID0ge1xuICAgICAgd2lkdGgsXG4gICAgICB2YWx1ZSxcbiAgICAgIGhlaWdodCxcbiAgICAgIG1hcmdpbjogaXNFbmxhcmdlZCA/IHRoZW1lLnJhbmdlUGxvdE1hcmdpbkxhcmdlIDogdGhlbWUucmFuZ2VQbG90TWFyZ2luLFxuICAgICAgYnJ1c2hDb21wb25lbnQsXG4gICAgICBicnVzaGluZyxcbiAgICAgIGlzRW5sYXJnZWQsXG4gICAgICBlbmFibGVDaGFydEhvdmVyLFxuICAgICAgb25Nb3VzZU1vdmUsXG4gICAgICBob3ZlcmVkRFAsXG4gICAgICBpc1JhbmdlZCxcbiAgICAgIC4uLmNoYXJ0UHJvcHNcbiAgICB9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRSYW5nZVBsb3RcbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBoZWlnaHQ6IGAke1xuICAgICAgICAgICAgaXNFbmxhcmdlZFxuICAgICAgICAgICAgICA/IGhhc01vYmlsZVdpZHRoKGJyZWFrUG9pbnRWYWx1ZXMpXG4gICAgICAgICAgICAgICAgPyB0aGVtZS5yYW5nZVBsb3RDb250YWluZXJITGFyZ2VQYWxtXG4gICAgICAgICAgICAgICAgOiB0aGVtZS5yYW5nZVBsb3RDb250YWluZXJITGFyZ2VcbiAgICAgICAgICAgICAgOiB0aGVtZS5yYW5nZVBsb3RDb250YWluZXJIXG4gICAgICAgICAgfXB4YFxuICAgICAgICB9fVxuICAgICAgICBjbGFzc05hbWU9XCJrZy1yYW5nZS1zbGlkZXJfX3Bsb3RcIlxuICAgICAgPlxuICAgICAgICB7cGxvdFR5cGUgPT09ICdsaW5lQ2hhcnQnICYmIGxpbmVDaGFydCA/IChcbiAgICAgICAgICA8TGluZUNoYXJ0UGxvdCBsaW5lQ2hhcnQ9e2xpbmVDaGFydH0gey4uLmNvbW1vblByb3BzfSAvPlxuICAgICAgICApIDogKFxuICAgICAgICAgIDxIaXN0b2dyYW1QbG90IGhpc3RvZ3JhbT17aGlzdG9ncmFtfSB7Li4uY29tbW9uUHJvcHN9IC8+XG4gICAgICAgICl9XG4gICAgICA8L1N0eWxlZFJhbmdlUGxvdD5cbiAgICApO1xuICB9O1xuXG4gIHJldHVybiB3aXRoVGhlbWUoUmFuZ2VQbG90KTtcbn1cbiJdfQ==
|
|
157
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vcmFuZ2UtcGxvdC50c3giXSwibmFtZXMiOlsiU3R5bGVkUmFuZ2VQbG90Iiwic3R5bGVkIiwiZGl2IiwicHJvcHMiLCJ0aGVtZSIsInNsaWRlckJhckhlaWdodCIsIlJhbmdlUGxvdEZhY3RvcnkiLCJkZXBzIiwiUmFuZ2VCcnVzaEZhY3RvcnkiLCJIaXN0b2dyYW1QbG90RmFjdG9yeSIsIkxpbmVDaGFydEZhY3RvcnkiLCJSYW5nZUJydXNoIiwiSGlzdG9ncmFtUGxvdCIsIkxpbmVDaGFydFBsb3QiLCJSYW5nZVBsb3QiLCJvbkJydXNoIiwicmFuZ2UiLCJ2YWx1ZSIsIndpZHRoIiwicGxvdFR5cGUiLCJsaW5lQ2hhcnQiLCJoaXN0b2dyYW0iLCJpc0VubGFyZ2VkIiwiaXNSYW5nZWQiLCJjaGFydFByb3BzIiwiYnJ1c2hpbmciLCJzZXRCcnVzaGluZyIsImhvdmVyZWREUCIsIm9uTW91c2VNb3ZlIiwiZW5hYmxlQ2hhcnRIb3ZlciIsInNldEVuYWJsZUNoYXJ0SG92ZXIiLCJoZWlnaHQiLCJicmVha1BvaW50VmFsdWVzIiwicmFuZ2VQbG90SExhcmdlUGFsbSIsInJhbmdlUGxvdEhMYXJnZSIsInJhbmdlUGxvdEgiLCJvbkJydXNoU3RhcnQiLCJvbkJydXNoRW5kIiwib25Nb3VzZW92ZXJIYW5kbGUiLCJvbk1vdXNlb3V0SGFuZGxlIiwiYnJ1c2hDb21wb25lbnQiLCJjb21tb25Qcm9wcyIsIm1hcmdpbiIsInJhbmdlUGxvdE1hcmdpbkxhcmdlIiwicmFuZ2VQbG90TWFyZ2luIiwicmFuZ2VQbG90Q29udGFpbmVySExhcmdlUGFsbSIsInJhbmdlUGxvdENvbnRhaW5lckhMYXJnZSIsInJhbmdlUGxvdENvbnRhaW5lckgiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7Ozs7Ozs7QUFJQSxJQUFNQSxlQUFlLEdBQUdDLDZCQUFPQyxH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QUFVM0IsU0FBVixDQUFQO0FBQ0QiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBDb3B5cmlnaHQgKGMpIDIwMjMgVWJlciBUZWNobm9sb2dpZXMsIEluYy5cbi8vXG4vLyBQZXJtaXNzaW9uIGlzIGhlcmVieSBncmFudGVkLCBmcmVlIG9mIGNoYXJnZSwgdG8gYW55IHBlcnNvbiBvYnRhaW5pbmcgYSBjb3B5XG4vLyBvZiB0aGlzIHNvZnR3YXJlIGFuZCBhc3NvY2lhdGVkIGRvY3VtZW50YXRpb24gZmlsZXMgKHRoZSBcIlNvZnR3YXJlXCIpLCB0byBkZWFsXG4vLyBpbiB0aGUgU29mdHdhcmUgd2l0aG91dCByZXN0cmljdGlvbiwgaW5jbHVkaW5nIHdpdGhvdXQgbGltaXRhdGlvbiB0aGUgcmlnaHRzXG4vLyB0byB1c2UsIGNvcHksIG1vZGlmeSwgbWVyZ2UsIHB1Ymxpc2gsIGRpc3RyaWJ1dGUsIHN1YmxpY2Vuc2UsIGFuZC9vciBzZWxsXG4vLyBjb3BpZXMgb2YgdGhlIFNvZnR3YXJlLCBhbmQgdG8gcGVybWl0IHBlcnNvbnMgdG8gd2hvbSB0aGUgU29mdHdhcmUgaXNcbi8vIGZ1cm5pc2hlZCB0byBkbyBzbywgc3ViamVjdCB0byB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnM6XG4vL1xuLy8gVGhlIGFib3ZlIGNvcHlyaWdodCBub3RpY2UgYW5kIHRoaXMgcGVybWlzc2lvbiBub3RpY2Ugc2hhbGwgYmUgaW5jbHVkZWQgaW5cbi8vIGFsbCBjb3BpZXMgb3Igc3Vic3RhbnRpYWwgcG9ydGlvbnMgb2YgdGhlIFNvZnR3YXJlLlxuLy9cbi8vIFRIRSBTT0ZUV0FSRSBJUyBQUk9WSURFRCBcIkFTIElTXCIsIFdJVEhPVVQgV0FSUkFOVFkgT0YgQU5ZIEtJTkQsIEVYUFJFU1MgT1Jcbi8vIElNUExJRUQsIElOQ0xVRElORyBCVVQgTk9UIExJTUlURUQgVE8gVEhFIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZLFxuLy8gRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQU5EIE5PTklORlJJTkdFTUVOVC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFXG4vLyBBVVRIT1JTIE9SIENPUFlSSUdIVCBIT0xERVJTIEJFIExJQUJMRSBGT1IgQU5ZIENMQUlNLCBEQU1BR0VTIE9SIE9USEVSXG4vLyBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQU4gQUNUSU9OIE9GIENPTlRSQUNULCBUT1JUIE9SIE9USEVSV0lTRSwgQVJJU0lORyBGUk9NLFxuLy8gT1VUIE9GIE9SIElOIENPTk5FQ1RJT04gV0lUSCBUSEUgU09GVFdBUkUgT1IgVEhFIFVTRSBPUiBPVEhFUiBERUFMSU5HUyBJTlxuLy8gVEhFIFNPRlRXQVJFLlxuXG5pbXBvcnQgUmVhY3QsIHt1c2VTdGF0ZSwgdXNlQ2FsbGJhY2t9IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQsIHt3aXRoVGhlbWV9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBSYW5nZUJydXNoRmFjdG9yeSwge09uQnJ1c2gsIFJhbmdlQnJ1c2hQcm9wc30gZnJvbSAnLi9yYW5nZS1icnVzaCc7XG5pbXBvcnQgSGlzdG9ncmFtUGxvdEZhY3RvcnkgZnJvbSAnLi9oaXN0b2dyYW0tcGxvdCc7XG5pbXBvcnQgTGluZUNoYXJ0RmFjdG9yeSwge0hvdmVyRFB9IGZyb20gJy4vbGluZS1jaGFydCc7XG5pbXBvcnQge2lzVGVzdCwgaGFzTW9iaWxlV2lkdGh9IGZyb20gJ0BrZXBsZXIuZ2wvdXRpbHMnO1xuaW1wb3J0IHticmVha1BvaW50VmFsdWVzfSBmcm9tICdAa2VwbGVyLmdsL3N0eWxlcyc7XG5pbXBvcnQge0xpbmVDaGFydCwgRmlsdGVyfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7RGF0YXNldHN9IGZyb20gJ0BrZXBsZXIuZ2wvdGFibGUnO1xuXG5jb25zdCBTdHlsZWRSYW5nZVBsb3QgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tYm90dG9tOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNsaWRlckJhckhlaWdodH1weDtcbiAgZGlzcGxheTogZmxleDtcbiAgcG9zaXRpb246ICdyZWxhdGl2ZSc7XG5gO1xuXG5pbnRlcmZhY2UgUmFuZ2VQbG90UHJvcHMge1xuICBvbkJydXNoOiBPbkJydXNoO1xuICByYW5nZTogbnVtYmVyW107XG4gIHZhbHVlOiBudW1iZXJbXTtcbiAgd2lkdGg6IG51bWJlcjtcbiAgcGxvdFR5cGU/OiBzdHJpbmc7XG4gIGxpbmVDaGFydD86IExpbmVDaGFydDtcbiAgaGlzdG9ncmFtPzoge3gwOiBudW1iZXI7IHgxOiBudW1iZXJ9W107XG4gIGlzRW5sYXJnZWQ/OiBib29sZWFuO1xuICBpc1JhbmdlZD86IGJvb2xlYW47XG4gIHRoZW1lOiBhbnk7XG4gIHRpbWVGb3JtYXQ/OiBzdHJpbmc7XG4gIHRpbWV6b25lPzogc3RyaW5nIHwgbnVsbDtcbiAgcGxheWJhY2tDb250cm9sV2lkdGg/OiBudW1iZXI7XG5cbiAgYW5pbWF0aW9uV2luZG93Pzogc3RyaW5nO1xuICBmaWx0ZXI/OiBGaWx0ZXI7XG4gIGRhdGFzZXRzPzogRGF0YXNldHM7XG59XG5cblJhbmdlUGxvdEZhY3RvcnkuZGVwcyA9IFtSYW5nZUJydXNoRmFjdG9yeSwgSGlzdG9ncmFtUGxvdEZhY3RvcnksIExpbmVDaGFydEZhY3RvcnldO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBSYW5nZVBsb3RGYWN0b3J5KFxuICBSYW5nZUJydXNoOiBSZXR1cm5UeXBlPHR5cGVvZiBSYW5nZUJydXNoRmFjdG9yeT4sXG4gIEhpc3RvZ3JhbVBsb3Q6IFJldHVyblR5cGU8dHlwZW9mIEhpc3RvZ3JhbVBsb3RGYWN0b3J5PixcbiAgTGluZUNoYXJ0UGxvdDogUmV0dXJuVHlwZTx0eXBlb2YgTGluZUNoYXJ0RmFjdG9yeT5cbikge1xuICBjb25zdCBSYW5nZVBsb3QgPSAoe1xuICAgIG9uQnJ1c2gsXG4gICAgcmFuZ2UsXG4gICAgdmFsdWUsXG4gICAgd2lkdGgsXG4gICAgcGxvdFR5cGUsXG4gICAgbGluZUNoYXJ0LFxuICAgIGhpc3RvZ3JhbSxcbiAgICBpc0VubGFyZ2VkLFxuICAgIGlzUmFuZ2VkLFxuICAgIHRoZW1lLFxuICAgIC4uLmNoYXJ0UHJvcHNcbiAgfTogUmFuZ2VQbG90UHJvcHMgJiBQYXJ0aWFsPFJhbmdlQnJ1c2hQcm9wcz4pID0+IHtcbiAgICBjb25zdCBbYnJ1c2hpbmcsIHNldEJydXNoaW5nXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbaG92ZXJlZERQLCBvbk1vdXNlTW92ZV0gPSB1c2VTdGF0ZTxIb3ZlckRQIHwgbnVsbD4obnVsbCk7XG4gICAgY29uc3QgW2VuYWJsZUNoYXJ0SG92ZXIsIHNldEVuYWJsZUNoYXJ0SG92ZXJdID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IGhlaWdodCA9IGlzRW5sYXJnZWRcbiAgICAgID8gaGFzTW9iaWxlV2lkdGgoYnJlYWtQb2ludFZhbHVlcylcbiAgICAgICAgPyB0aGVtZS5yYW5nZVBsb3RITGFyZ2VQYWxtXG4gICAgICAgIDogdGhlbWUucmFuZ2VQbG90SExhcmdlXG4gICAgICA6IHRoZW1lLnJhbmdlUGxvdEg7XG5cbiAgICBjb25zdCBvbkJydXNoU3RhcnQgPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBzZXRCcnVzaGluZyh0cnVlKTtcbiAgICAgIG9uTW91c2VNb3ZlKG51bGwpO1xuICAgICAgc2V0RW5hYmxlQ2hhcnRIb3ZlcihmYWxzZSk7XG4gICAgfSwgW3NldEJydXNoaW5nLCBvbk1vdXNlTW92ZSwgc2V0RW5hYmxlQ2hhcnRIb3Zlcl0pO1xuXG4gICAgY29uc3Qgb25CcnVzaEVuZCA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIHNldEJydXNoaW5nKGZhbHNlKTtcbiAgICAgIHNldEVuYWJsZUNoYXJ0SG92ZXIodHJ1ZSk7XG4gICAgfSwgW3NldEJydXNoaW5nLCBzZXRFbmFibGVDaGFydEhvdmVyXSk7XG5cbiAgICBjb25zdCBvbk1vdXNlb3ZlckhhbmRsZSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIG9uTW91c2VNb3ZlKG51bGwpO1xuICAgICAgc2V0RW5hYmxlQ2hhcnRIb3ZlcihmYWxzZSk7XG4gICAgfSwgW29uTW91c2VNb3ZlLCBzZXRFbmFibGVDaGFydEhvdmVyXSk7XG5cbiAgICBjb25zdCBvbk1vdXNlb3V0SGFuZGxlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgICAgc2V0RW5hYmxlQ2hhcnRIb3Zlcih0cnVlKTtcbiAgICB9LCBbc2V0RW5hYmxlQ2hhcnRIb3Zlcl0pO1xuXG4gICAgLy8gSnNEb20gaGF2ZSBsaW1pdGVkIHN1cHBvcnQgZm9yIFNWRywgZDMgd2lsbCBmYWlsXG4gICAgY29uc3QgYnJ1c2hDb21wb25lbnQgPSBpc1Rlc3QoKSA/IG51bGwgOiAoXG4gICAgICA8UmFuZ2VCcnVzaFxuICAgICAgICBvbkJydXNoPXtvbkJydXNofVxuICAgICAgICBvbkJydXNoU3RhcnQ9e29uQnJ1c2hTdGFydH1cbiAgICAgICAgb25CcnVzaEVuZD17b25CcnVzaEVuZH1cbiAgICAgICAgcmFuZ2U9e3JhbmdlfVxuICAgICAgICB2YWx1ZT17dmFsdWV9XG4gICAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgICAgaGVpZ2h0PXtoZWlnaHR9XG4gICAgICAgIGlzUmFuZ2VkPXtpc1JhbmdlZH1cbiAgICAgICAgb25Nb3VzZW92ZXJIYW5kbGU9e29uTW91c2VvdmVySGFuZGxlfVxuICAgICAgICBvbk1vdXNlb3V0SGFuZGxlPXtvbk1vdXNlb3V0SGFuZGxlfVxuICAgICAgICB7Li4uY2hhcnRQcm9wc31cbiAgICAgIC8+XG4gICAgKTtcblxuICAgIGNvbnN0IGNvbW1vblByb3BzID0ge1xuICAgICAgd2lkdGgsXG4gICAgICB2YWx1ZSxcbiAgICAgIGhlaWdodCxcbiAgICAgIG1hcmdpbjogaXNFbmxhcmdlZCA/IHRoZW1lLnJhbmdlUGxvdE1hcmdpbkxhcmdlIDogdGhlbWUucmFuZ2VQbG90TWFyZ2luLFxuICAgICAgYnJ1c2hDb21wb25lbnQsXG4gICAgICBicnVzaGluZyxcbiAgICAgIGlzRW5sYXJnZWQsXG4gICAgICBlbmFibGVDaGFydEhvdmVyLFxuICAgICAgb25Nb3VzZU1vdmUsXG4gICAgICBob3ZlcmVkRFAsXG4gICAgICBpc1JhbmdlZCxcbiAgICAgIG9uQnJ1c2gsXG4gICAgICAuLi5jaGFydFByb3BzXG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICA8U3R5bGVkUmFuZ2VQbG90XG4gICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgaGVpZ2h0OiBgJHtcbiAgICAgICAgICAgIGlzRW5sYXJnZWRcbiAgICAgICAgICAgICAgPyBoYXNNb2JpbGVXaWR0aChicmVha1BvaW50VmFsdWVzKVxuICAgICAgICAgICAgICAgID8gdGhlbWUucmFuZ2VQbG90Q29udGFpbmVySExhcmdlUGFsbVxuICAgICAgICAgICAgICAgIDogdGhlbWUucmFuZ2VQbG90Q29udGFpbmVySExhcmdlXG4gICAgICAgICAgICAgIDogdGhlbWUucmFuZ2VQbG90Q29udGFpbmVySFxuICAgICAgICAgIH1weGBcbiAgICAgICAgfX1cbiAgICAgICAgY2xhc3NOYW1lPVwia2ctcmFuZ2Utc2xpZGVyX19wbG90XCJcbiAgICAgID5cbiAgICAgICAge3Bsb3RUeXBlID09PSAnbGluZUNoYXJ0JyAmJiBsaW5lQ2hhcnQgPyAoXG4gICAgICAgICAgPExpbmVDaGFydFBsb3QgbGluZUNoYXJ0PXtsaW5lQ2hhcnR9IHsuLi5jb21tb25Qcm9wc30gLz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8SGlzdG9ncmFtUGxvdCBoaXN0b2dyYW09e2hpc3RvZ3JhbX0gey4uLmNvbW1vblByb3BzfSAvPlxuICAgICAgICApfVxuICAgICAgPC9TdHlsZWRSYW5nZVBsb3Q+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gd2l0aFRoZW1lKFJhbmdlUGxvdCk7XG59XG4iXX0=
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ComponentType, ElementType } from 'react';
|
|
2
2
|
import RangePlotFactory from './range-plot';
|
|
3
|
-
import { LineChart } from '@kepler.gl/types';
|
|
3
|
+
import { LineChart, Filter } from '@kepler.gl/types';
|
|
4
|
+
import { Datasets } from '@kepler.gl/table';
|
|
4
5
|
interface RangeSliderProps {
|
|
5
6
|
range?: number[];
|
|
6
7
|
value0: number;
|
|
@@ -22,6 +23,9 @@ interface RangeSliderProps {
|
|
|
22
23
|
marks?: number[];
|
|
23
24
|
plotType?: string;
|
|
24
25
|
plotValue?: number[];
|
|
26
|
+
animationWindow?: string;
|
|
27
|
+
filter?: Filter;
|
|
28
|
+
datasets?: Datasets;
|
|
25
29
|
}
|
|
26
30
|
declare function RangeSliderFactory(RangePlot: ReturnType<typeof RangePlotFactory>): ComponentType<RangeSliderProps>;
|
|
27
31
|
declare namespace RangeSliderFactory {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
// Copyright (c)
|
|
1
|
+
// Copyright (c) 2023 Uber Technologies, Inc.
|
|
2
2
|
//
|
|
3
3
|
// Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
4
4
|
// of this software and associated documentation files (the "Software"), to deal
|
|
@@ -241,7 +241,10 @@ function RangeSliderFactory(RangePlot) {
|
|
|
241
241
|
step = _this$props4.step,
|
|
242
242
|
timezone = _this$props4.timezone,
|
|
243
243
|
timeFormat = _this$props4.timeFormat,
|
|
244
|
-
playbackControlWidth = _this$props4.playbackControlWidth
|
|
244
|
+
playbackControlWidth = _this$props4.playbackControlWidth,
|
|
245
|
+
animationWindow = _this$props4.animationWindow,
|
|
246
|
+
filter = _this$props4.filter,
|
|
247
|
+
datasets = _this$props4.datasets;
|
|
245
248
|
var width = this.state.width;
|
|
246
249
|
var plotWidth = Math.max(width - Number(sliderHandleWidth), 0);
|
|
247
250
|
var renderPlot = histogram && histogram.length || lineChart;
|
|
@@ -261,6 +264,9 @@ function RangeSliderFactory(RangePlot) {
|
|
|
261
264
|
return onChange([val0, val1]);
|
|
262
265
|
},
|
|
263
266
|
marks: this.props.marks,
|
|
267
|
+
animationWindow: animationWindow,
|
|
268
|
+
filter: filter,
|
|
269
|
+
datasets: datasets,
|
|
264
270
|
range: range,
|
|
265
271
|
value: this.props.plotValue || this.filterValueSelector(this.props),
|
|
266
272
|
width: plotWidth,
|
|
@@ -340,4 +346,4 @@ function RangeSliderFactory(RangePlot) {
|
|
|
340
346
|
(0, _reactLifecyclesCompat.polyfill)(RangeSlider);
|
|
341
347
|
return RangeSlider;
|
|
342
348
|
}
|
|
343
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vcmFuZ2Utc2xpZGVyLnRzeCJdLCJuYW1lcyI6WyJTbGlkZXJJbnB1dCIsIklucHV0IiwicHJvcHMiLCJ0aGVtZSIsInNsaWRlcklucHV0V2lkdGgiLCJmbHVzaCIsImlucHV0U2l6ZSIsInNsaWRlcklucHV0Rm9udFNpemUiLCJzbGlkZXJJbnB1dFBhZGRpbmciLCJTbGlkZXJXcmFwcGVyIiwic3R5bGVkIiwiZGl2IiwiaXNSYW5nZWQiLCJzaG93SW5wdXQiLCJSYW5nZUlucHV0V3JhcHBlciIsIlJhbmdlU2xpZGVyRmFjdG9yeSIsImRlcHMiLCJSYW5nZVBsb3RGYWN0b3J5IiwiUmFuZ2VQbG90IiwiUmFuZ2VTbGlkZXIiLCJ2YWx1ZTAiLCJ2YWx1ZTEiLCJwcmV2VmFsdWUwIiwicHJldlZhbHVlMSIsIndpZHRoIiwiZWxlbWVudCIsInNsaWRlckNvbnRhaW5lciIsIl9yZXNpemUiLCJ2YWx1ZTBTZWxlY3RvciIsInZhbHVlMVNlbGVjdG9yIiwidmFsIiwicmFuZ2UiLCJzdGVwIiwib25DaGFuZ2UiLCJ2YWwxIiwiTnVtYmVyIiwiX3JvdW5kVmFsVG9TdGVwIiwidmFsMCIsIm9mZnNldFdpZHRoIiwic3RhdGUiLCJzZXRTdGF0ZSIsImtleSIsImUiLCJ0YXJnZXQiLCJ2YWx1ZSIsIkVsZW1lbnQiLCJzZXRSYW5nZSIsIl9zZXRSYW5nZVZhbDAiLCJfc2V0UmFuZ2VWYWwxIiwicmVmIiwiaW5wdXRWYWx1ZTAiLCJpbnB1dFZhbHVlMSIsInVwZGF0ZSIsIl9vbkNoYW5nZUlucHV0IiwiYmluZCIsImN1cnJlbnQiLCJibHVyIiwiaW5wdXRUaGVtZSIsImhpc3RvZ3JhbSIsImxpbmVDaGFydCIsInNsaWRlckhhbmRsZVdpZHRoIiwidGltZXpvbmUiLCJ0aW1lRm9ybWF0IiwicGxheWJhY2tDb250cm9sV2lkdGgiLCJwbG90V2lkdGgiLCJNYXRoIiwibWF4IiwicmVuZGVyUGxvdCIsImxlbmd0aCIsInBhZGRpbmciLCJzZXRTbGlkZXJDb250YWluZXIiLCJBcnJheSIsImlzQXJyYXkiLCJldmVyeSIsImlzRmluaXRlIiwicGxvdFR5cGUiLCJpc0VubGFyZ2VkIiwibWFya3MiLCJwbG90VmFsdWUiLCJmaWx0ZXJWYWx1ZVNlbGVjdG9yIiwieEF4aXMiLCJoZWlnaHQiLCJfcmVuZGVySW5wdXQiLCJpc05hTiIsIkNvbXBvbmVudCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBb0JBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOzs7Ozs7Ozs7Ozs7QUFRQSxJQUFNQSxXQUFXLEdBQUcsa0NBQU9DLHdCQUFQLENBQUgsbU5BQ04sVUFBQUMsS0FBSztBQUFBLFNBQUlBLEtBQUssQ0FBQ0MsS0FBTixDQUFZQyxnQkFBaEI7QUFBQSxDQURDLEVBRUEsVUFBQUYsS0FBSztBQUFBLFNBQUtBLEtBQUssQ0FBQ0csS0FBTixHQUFjLENBQWQsR0FBa0JILEtBQUssQ0FBQ0ksU0FBTixLQUFvQixNQUFwQixHQUE2QixFQUE3QixHQUFrQyxFQUF6RDtBQUFBLENBRkwsRUFHRixVQUFBSixLQUFLO0FBQUEsU0FBSUEsS0FBSyxDQUFDQyxLQUFOLENBQVlJLG1CQUFoQjtBQUFBLENBSEgsRUFJSixVQUFBTCxLQUFLO0FBQUEsU0FBSUEsS0FBSyxDQUFDQyxLQUFOLENBQVlLLGtCQUFoQjtBQUFBLENBSkQsQ0FBakI7O0FBWUEsSUFBTUMsYUFBYSxHQUFHQyw2QkFBT0MsR0FBViwwSkFHRixVQUFBVCxLQUFLO0FBQUEsU0FBSyxDQUFDQSxLQUFLLENBQUNVLFFBQVAsSUFBbUJWLEtBQUssQ0FBQ1csU0FBekIsR0FBcUMsUUFBckMsR0FBZ0QsWUFBckQ7QUFBQSxDQUhILENBQW5COztBQU1BLElBQU1DLGlCQUFpQixHQUFHSiw2QkFBT0MsR0FBVixvS0FBdkI7O0FBNkJBSSxrQkFBa0IsQ0FBQ0MsSUFBbkIsR0FBMEIsQ0FBQ0MscUJBQUQsQ0FBMUI7O0FBRWUsU0FBU0Ysa0JBQVQsQ0FDYkcs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VUFBQUEsTUFBTSxtQ0FBUUEsTUFBTSxJQUFJLEVBQWxCO0FBQXVCaEMsWUFBQUEsTUFBTSxFQUFOQSxNQUF2QjtBQUErQkUsWUFBQUEsVUFBVSxFQUFFRjtBQUEzQyxZQUFOO0FBQ0Q7O0FBQ0QsWUFBSWxCLEtBQUssQ0FBQ21CLE1BQU4sS0FBaUJrQixLQUFLLENBQUNoQixVQUF2QixJQUFxQyxDQUFDNEQsS0FBSyxDQUFDOUQsTUFBRCxDQUEvQyxFQUF5RDtBQUN2RCtCLFVBQUFBLE1BQU0sbUNBQVFBLE1BQU0sSUFBSSxFQUFsQjtBQUF1Qi9CLFlBQUFBLE1BQU0sRUFBTkEsTUFBdkI7QUFBK0JFLFlBQUFBLFVBQVUsRUFBRUY7QUFBM0MsWUFBTjtBQUNEOztBQUNELGVBQU8rQixNQUFQO0FBQ0Q7QUF0QjhCO0FBQUE7QUFBQSxJQUNQZ0MsZ0JBRE87O0FBQUEsbUNBQzNCakUsV0FEMkIsa0JBRVQ7QUFDcEJ5RCxJQUFBQSxVQUFVLEVBQUUsS0FEUTtBQUVwQmhFLElBQUFBLFFBQVEsRUFBRSxJQUZVO0FBR3BCQyxJQUFBQSxTQUFTLEVBQUUsSUFIUztBQUlwQitDLElBQUFBLGlCQUFpQixFQUFFLEVBSkM7QUFLcEJILElBQUFBLFVBQVUsRUFBRSxFQUxRO0FBTXBCbkQsSUFBQUEsU0FBUyxFQUFFLE9BTlM7QUFPcEIyQixJQUFBQSxRQUFRLEVBQUUsb0JBQU0sQ0FBRTtBQVBFLEdBRlM7QUE0TmpDLHVDQUFTZCxXQUFUO0FBRUEsU0FBT0EsV0FBUDtBQUNEIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQ29weXJpZ2h0IChjKSAyMDIyIFViZXIgVGVjaG5vbG9naWVzLCBJbmMuXG4vL1xuLy8gUGVybWlzc2lvbiBpcyBoZXJlYnkgZ3JhbnRlZCwgZnJlZSBvZiBjaGFyZ2UsIHRvIGFueSBwZXJzb24gb2J0YWluaW5nIGEgY29weVxuLy8gb2YgdGhpcyBzb2Z0d2FyZSBhbmQgYXNzb2NpYXRlZCBkb2N1bWVudGF0aW9uIGZpbGVzICh0aGUgXCJTb2Z0d2FyZVwiKSwgdG8gZGVhbFxuLy8gaW4gdGhlIFNvZnR3YXJlIHdpdGhvdXQgcmVzdHJpY3Rpb24sIGluY2x1ZGluZyB3aXRob3V0IGxpbWl0YXRpb24gdGhlIHJpZ2h0c1xuLy8gdG8gdXNlLCBjb3B5LCBtb2RpZnksIG1lcmdlLCBwdWJsaXNoLCBkaXN0cmlidXRlLCBzdWJsaWNlbnNlLCBhbmQvb3Igc2VsbFxuLy8gY29waWVzIG9mIHRoZSBTb2Z0d2FyZSwgYW5kIHRvIHBlcm1pdCBwZXJzb25zIHRvIHdob20gdGhlIFNvZnR3YXJlIGlzXG4vLyBmdXJuaXNoZWQgdG8gZG8gc28sIHN1YmplY3QgdG8gdGhlIGZvbGxvd2luZyBjb25kaXRpb25zOlxuLy9cbi8vIFRoZSBhYm92ZSBjb3B5cmlnaHQgbm90aWNlIGFuZCB0aGlzIHBlcm1pc3Npb24gbm90aWNlIHNoYWxsIGJlIGluY2x1ZGVkIGluXG4vLyBhbGwgY29waWVzIG9yIHN1YnN0YW50aWFsIHBvcnRpb25zIG9mIHRoZSBTb2Z0d2FyZS5cbi8vXG4vLyBUSEUgU09GVFdBUkUgSVMgUFJPVklERUQgXCJBUyBJU1wiLCBXSVRIT1VUIFdBUlJBTlRZIE9GIEFOWSBLSU5ELCBFWFBSRVNTIE9SXG4vLyBJTVBMSUVELCBJTkNMVURJTkcgQlVUIE5PVCBMSU1JVEVEIFRPIFRIRSBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSxcbi8vIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFORCBOT05JTkZSSU5HRU1FTlQuIElOIE5PIEVWRU5UIFNIQUxMIFRIRVxuLy8gQVVUSE9SUyBPUiBDT1BZUklHSFQgSE9MREVSUyBCRSBMSUFCTEUgRk9SIEFOWSBDTEFJTSwgREFNQUdFUyBPUiBPVEhFUlxuLy8gTElBQklMSVRZLCBXSEVUSEVSIElOIEFOIEFDVElPTiBPRiBDT05UUkFDVCwgVE9SVCBPUiBPVEhFUldJU0UsIEFSSVNJTkcgRlJPTSxcbi8vIE9VVCBPRiBPUiBJTiBDT05ORUNUSU9OIFdJVEggVEhFIFNPRlRXQVJFIE9SIFRIRSBVU0UgT1IgT1RIRVIgREVBTElOR1MgSU5cbi8vIFRIRSBTT0ZUV0FSRS5cblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50LCBDb21wb25lbnRUeXBlLCBjcmVhdGVSZWYsIEVsZW1lbnRUeXBlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge3BvbHlmaWxsfSBmcm9tICdyZWFjdC1saWZlY3ljbGVzLWNvbXBhdCc7XG5pbXBvcnQge2NyZWF0ZVNlbGVjdG9yfSBmcm9tICdyZXNlbGVjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBSYW5nZVBsb3RGYWN0b3J5IGZyb20gJy4vcmFuZ2UtcGxvdCc7XG5pbXBvcnQgU2xpZGVyIGZyb20gJy4vc2xpZGVyL3NsaWRlcic7XG5pbXBvcnQge0lucHV0fSBmcm9tICcuL3N0eWxlZC1jb21wb25lbnRzJztcblxuaW1wb3J0IHtvYnNlcnZlRGltZW5zaW9ucywgdW5vYnNlcnZlRGltZW5zaW9ucywgcm91bmRWYWxUb1N0ZXAsIGNsYW1wfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7TGluZUNoYXJ0fSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcblxuaW50ZXJmYWNlIFNsaWRlcklucHV0UHJvcHMge1xuICBmbHVzaD86IGJvb2xlYW47XG4gIGlucHV0U2l6ZT86IHN0cmluZztcbn1cblxuY29uc3QgU2xpZGVySW5wdXQgPSBzdHlsZWQoSW5wdXQpPFNsaWRlcklucHV0UHJvcHM+YFxuICB3aWR0aDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zbGlkZXJJbnB1dFdpZHRofXB4O1xuICBtYXJnaW4tbGVmdDogJHtwcm9wcyA9PiAocHJvcHMuZmx1c2ggPyAwIDogcHJvcHMuaW5wdXRTaXplID09PSAndGlueScgPyAxMiA6IDE4KX1weDtcbiAgZm9udC1zaXplOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNsaWRlcklucHV0Rm9udFNpemV9OyAvLyAxMHB4IC8vIDEycHg7XG4gIHBhZGRpbmc6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc2xpZGVySW5wdXRQYWRkaW5nfTsgLy8gNHB4IDZweDsgLy8gNnB4IDEycHg7XG5gO1xuXG5pbnRlcmZhY2UgU2xpZGVyV3JhcHBlclByb3BzIHtcbiAgaXNSYW5nZWQ/OiBib29sZWFuO1xuICBzaG93SW5wdXQ/OiBib29sZWFuO1xufVxuXG5jb25zdCBTbGlkZXJXcmFwcGVyID0gc3R5bGVkLmRpdjxTbGlkZXJXcmFwcGVyUHJvcHM+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGFsaWduLWl0ZW1zOiAke3Byb3BzID0+ICghcHJvcHMuaXNSYW5nZWQgJiYgcHJvcHMuc2hvd0lucHV0ID8gJ2NlbnRlcicgOiAnZmxleC1zdGFydCcpfTtcbmA7XG5cbmNvbnN0IFJhbmdlSW5wdXRXcmFwcGVyID0gc3R5bGVkLmRpdmBcbiAgbWFyZ2luLXRvcDogMTJweDtcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBzcGFjZS1iZXR3ZWVuO1xuYDtcblxuaW50ZXJmYWNlIFJhbmdlU2xpZGVyUHJvcHMge1xuICByYW5nZT86IG51bWJlcltdO1xuICB2YWx1ZTA6IG51bWJlcjtcbiAgdmFsdWUxOiBudW1iZXI7XG4gIG9uQ2hhbmdlPzogKHZhbDogbnVtYmVyW10pID0+IHZvaWQ7IC8vIFRPRE9cbiAgaGlzdG9ncmFtPzogYW55W107XG4gIGlzUmFuZ2VkPzogYm9vbGVhbjtcbiAgaXNFbmxhcmdlZD86IGJvb2xlYW47XG4gIHNob3dJbnB1dD86IGJvb2xlYW47XG4gIGlucHV0VGhlbWU/OiBzdHJpbmc7XG4gIGlucHV0U2l6ZT86IHN0cmluZztcbiAgc3RlcD86IG51bWJlcjtcbiAgc2xpZGVySGFuZGxlV2lkdGg/OiBudW1iZXI7XG4gIHhBeGlzPzogRWxlbWVudFR5cGU7XG4gIHRpbWV6b25lPzogc3RyaW5nIHwgbnVsbDtcbiAgdGltZUZvcm1hdD86IHN0cmluZztcbiAgcGxheWJhY2tDb250cm9sV2lkdGg/OiBudW1iZXI7XG4gIGxpbmVDaGFydD86IExpbmVDaGFydDtcbiAgbWFya3M/OiBudW1iZXJbXTtcbiAgcGxvdFR5cGU/OiBzdHJpbmc7XG4gIHBsb3RWYWx1ZT86IG51bWJlcltdO1xufVxuXG5SYW5nZVNsaWRlckZhY3RvcnkuZGVwcyA9IFtSYW5nZVBsb3RGYWN0b3J5XTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUmFuZ2VTbGlkZXJGYWN0b3J5KFxuICBSYW5nZVBsb3Q6IFJldHVyblR5cGU8dHlwZW9mIFJhbmdlUGxvdEZhY3Rvcnk+XG4pOiBDb21wb25lbnRUeXBlPFJhbmdlU2xpZGVyUHJvcHM+IHtcbiAgY2xhc3MgUmFuZ2VTbGlkZXIgZXh0ZW5kcyBDb21wb25lbnQ8UmFuZ2VTbGlkZXJQcm9wcz4ge1xuICAgIHN0YXRpYyBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICBpc0VubGFyZ2VkOiBmYWxzZSxcbiAgICAgIGlzUmFuZ2VkOiB0cnVlLFxuICAgICAgc2hvd0lucHV0OiB0cnVlLFxuICAgICAgc2xpZGVySGFuZGxlV2lkdGg6IDEyLFxuICAgICAgaW5wdXRUaGVtZTogJycsXG4gICAgICBpbnB1dFNpemU6ICdzbWFsbCcsXG4gICAgICBvbkNoYW5nZTogKCkgPT4ge31cbiAgICB9O1xuXG4gICAgc3RhdGljIGdldERlcml2ZWRTdGF0ZUZyb21Qcm9wcyhwcm9wcywgc3RhdGUpIHtcbiAgICAgIGxldCB1cGRhdGU6IHt2YWx1ZTE/OiBhbnk7IHByZXZWYWx1ZTE/OiBhbnk7IHZhbHVlMD86IGFueTsgcHJldlZhbHVlMD86IGFueX0gfCBudWxsID0gbnVsbDtcbiAgICAgIGNvbnN0IHt2YWx1ZTAsIHZhbHVlMX0gPSBwcm9wcztcbiAgICAgIGlmIChwcm9wcy52YWx1ZTAgIT09IHN0YXRlLnByZXZWYWx1ZTAgJiYgIWlzTmFOKHZhbHVlMCkpIHtcbiAgICAgICAgdXBkYXRlID0gey4uLih1cGRhdGUgfHwge30pLCB2YWx1ZTAsIHByZXZWYWx1ZTA6IHZhbHVlMH07XG4gICAgICB9XG4gICAgICBpZiAocHJvcHMudmFsdWUxICE9PSBzdGF0ZS5wcmV2VmFsdWUxICYmICFpc05hTih2YWx1ZTEpKSB7XG4gICAgICAgIHVwZGF0ZSA9IHsuLi4odXBkYXRlIHx8IHt9KSwgdmFsdWUxLCBwcmV2VmFsdWUxOiB2YWx1ZTF9O1xuICAgICAgfVxuICAgICAgcmV0dXJuIHVwZGF0ZTtcbiAgICB9XG5cbiAgICBzdGF0ZSA9IHtcbiAgICAgIHZhbHVlMDogMCxcbiAgICAgIHZhbHVlMTogMSxcbiAgICAgIHByZXZWYWx1ZTA6IDAsXG4gICAgICBwcmV2VmFsdWUxOiAxLFxuICAgICAgd2lkdGg6IDI4OFxuICAgIH07XG5cbiAgICBzbGlkZXJDb250YWluZXI6IEhUTUxEaXZFbGVtZW50IHwgbnVsbCA9IG51bGw7XG5cbiAgICBjb21wb25lbnREaWRNb3VudCgpIHtcbiAgICAgIGlmICh0aGlzLnNsaWRlckNvbnRhaW5lciBpbnN0YW5jZW9mIEVsZW1lbnQpIHtcbiAgICAgICAgb2JzZXJ2ZURpbWVuc2lvbnModGhpcy5zbGlkZXJDb250YWluZXIsIHRoaXMuX3Jlc2l6ZSwgMTAwKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb21wb25lbnRXaWxsVW5tb3VudCgpIHtcbiAgICAgIGlmICh0aGlzLnNsaWRlckNvbnRhaW5lciBpbnN0YW5jZW9mIEVsZW1lbnQpIHtcbiAgICAgICAgdW5vYnNlcnZlRGltZW5zaW9ucyh0aGlzLnNsaWRlckNvbnRhaW5lcik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgc2V0U2xpZGVyQ29udGFpbmVyOiBSZWFjdC5MZWdhY3lSZWY8SFRNTERpdkVsZW1lbnQ+ID0gZWxlbWVudCA9PiB7XG4gICAgICB0aGlzLnNsaWRlckNvbnRhaW5lciA9IGVsZW1lbnQ7XG4gICAgICB0aGlzLl9yZXNpemUoKTtcbiAgICB9O1xuICAgIGlucHV0VmFsdWUwID0gY3JlYXRlUmVmPEhUTUxJbnB1dEVsZW1lbnQ+KCk7XG4gICAgaW5wdXRWYWx1ZTEgPSBjcmVhdGVSZWY8SFRNTElucHV0RWxlbWVudD4oKTtcbiAgICB2YWx1ZTBTZWxlY3RvciA9IHByb3BzID0+IHByb3BzLnZhbHVlMDtcbiAgICB2YWx1ZTFTZWxlY3RvciA9IHByb3BzID0+IHByb3BzLnZhbHVlMTtcbiAgICBmaWx0ZXJWYWx1ZVNlbGVjdG9yID0gY3JlYXRlU2VsZWN0b3IoXG4gICAgICB0aGlzLnZhbHVlMFNlbGVjdG9yLFxuICAgICAgdGhpcy52YWx1ZTFTZWxlY3RvcixcbiAgICAgICh2YWx1ZTAsIHZhbHVlMSkgPT4gW3ZhbHVlMCwgdmFsdWUxXVxuICAgICk7XG5cbiAgICBfcm91bmRWYWxUb1N0ZXAgPSB2YWwgPT4ge1xuICAgICAgY29uc3Qge3JhbmdlLCBzdGVwfSA9IHRoaXMucHJvcHM7XG4gICAgICBpZiAoIXJhbmdlIHx8ICFzdGVwKSByZXR1cm47XG4gICAgICByZXR1cm4gcm91bmRWYWxUb1N0ZXAocmFuZ2VbMF0sIHN0ZXAsIHZhbCk7XG4gICAgfTtcblxuICAgIF9zZXRSYW5nZVZhbDEgPSB2YWwgPT4ge1xuICAgICAgY29uc3Qge3ZhbHVlMCwgcmFuZ2UsIG9uQ2hhbmdlID0gKCkgPT4ge319ID0gdGhpcy5wcm9wcztcbiAgICAgIGlmICghcmFuZ2UpIHJldHVybjtcbiAgICAgIGNvbnN0IHZhbDEgPSBOdW1iZXIodmFsKTtcbiAgICAgIG9uQ2hhbmdlKFt2YWx1ZTAsIGNsYW1wKFt2YWx1ZTAsIHJhbmdlWzFdXSwgdGhpcy5fcm91bmRWYWxUb1N0ZXAodmFsMSkpXSk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9O1xuXG4gICAgX3NldFJhbmdlVmFsMCA9IHZhbCA9PiB7XG4gICAgICBjb25zdCB7dmFsdWUxLCByYW5nZSwgb25DaGFuZ2UgPSAoKSA9PiB7fX0gPSB0aGlzLnByb3BzO1xuICAgICAgaWYgKCFyYW5nZSkgcmV0dXJuO1xuICAgICAgY29uc3QgdmFsMCA9IE51bWJlcih2YWwpO1xuICAgICAgb25DaGFuZ2UoW2NsYW1wKFtyYW5nZVswXSwgdmFsdWUxXSwgdGhpcy5fcm91bmRWYWxUb1N0ZXAodmFsMCkpLCB2YWx1ZTFdKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH07XG5cbiAgICBfcmVzaXplID0gKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuc2xpZGVyQ29udGFpbmVyKSB7XG4gICAgICAgIGNvbnN0IHdpZHRoID0gdGhpcy5zbGlkZXJDb250YWluZXIub2Zmc2V0V2lkdGg7XG4gICAgICAgIGlmICh3aWR0aCAhPT0gdGhpcy5zdGF0ZS53aWR0aCkge1xuICAgICAgICAgIHRoaXMuc2V0U3RhdGUoe3dpZHRofSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9O1xuXG4gICAgX29uQ2hhbmdlSW5wdXQgPSAoa2V5LCBlKSA9PiB7XG4gICAgICB0aGlzLnNldFN0YXRlKHtba2V5XTogZS50YXJnZXQudmFsdWV9KTtcbiAgICB9O1xuXG4gICAgX3JlbmRlcklucHV0KGtleSkge1xuICAgICAgY29uc3Qgc2V0UmFuZ2UgPSBrZXkgPT09ICd2YWx1ZTAnID8gdGhpcy5fc2V0UmFuZ2VWYWwwIDogdGhpcy5fc2V0UmFuZ2VWYWwxO1xuICAgICAgY29uc3QgcmVmID0ga2V5ID09PSAndmFsdWUwJyA/IHRoaXMuaW5wdXRWYWx1ZTAgOiB0aGlzLmlucHV0VmFsdWUxO1xuICAgICAgY29uc3QgdXBkYXRlID0gZSA9PiB7XG4gICAgICAgIGlmICghc2V0UmFuZ2UoZS50YXJnZXQudmFsdWUpKSB7XG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7W2tleV06IHRoaXMuc3RhdGVba2V5XX0pO1xuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICBjb25zdCBvbkNoYW5nZSA9IHRoaXMuX29uQ2hhbmdlSW5wdXQuYmluZCh0aGlzLCBrZXkpO1xuXG4gICAgICByZXR1cm4gKFxuICAgICAgICA8U2xpZGVySW5wdXRcbiAgICAgICAgICBjbGFzc05hbWU9XCJrZy1yYW5nZS1zbGlkZXJfX2lucHV0XCJcbiAgICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgICByZWY9e3JlZn1cbiAgICAgICAgICBpZD17YHNsaWRlci1pbnB1dC0ke2tleX1gfVxuICAgICAgICAgIGtleT17a2V5fVxuICAgICAgICAgIHZhbHVlPXt0aGlzLnN0YXRlW2tleV19XG4gICAgICAgICAgb25DaGFuZ2U9e29uQ2hhbmdlfVxuICAgICAgICAgIG9uS2V5UHJlc3M9e2UgPT4ge1xuICAgICAgICAgICAgaWYgKGUua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgIHVwZGF0ZShlKTtcbiAgICAgICAgICAgICAgKHJlZi5jdXJyZW50IGFzIGFueSkuYmx1cigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH19XG4gICAgICAgICAgb25CbHVyPXt1cGRhdGV9XG4gICAgICAgICAgZmx1c2g9e2tleSA9PT0gJ3ZhbHVlMCd9XG4gICAgICAgICAgaW5wdXRTaXplPXt0aGlzLnByb3BzLmlucHV0U2l6ZX1cbiAgICAgICAgICBzZWNvbmRhcnk9e3RoaXMucHJvcHMuaW5wdXRUaGVtZSA9PT0gJ3NlY29uZGFyeSd9XG4gICAgICAgIC8+XG4gICAgICApO1xuICAgIH1cblxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBjb21wbGV4aXR5XG4gICAgcmVuZGVyKCkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBpc1JhbmdlZCxcbiAgICAgICAgc2hvd0lucHV0LFxuICAgICAgICBoaXN0b2dyYW0sXG4gICAgICAgIGxpbmVDaGFydCxcbiAgICAgICAgcmFuZ2UsXG4gICAgICAgIG9uQ2hhbmdlID0gKCkgPT4ge30sXG4gICAgICAgIHNsaWRlckhhbmRsZVdpZHRoLFxuICAgICAgICBzdGVwLFxuICAgICAgICB0aW1lem9uZSxcbiAgICAgICAgdGltZUZvcm1hdCxcbiAgICAgICAgcGxheWJhY2tDb250cm9sV2lkdGhcbiAgICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgICBjb25zdCB7d2lkdGh9ID0gdGhpcy5zdGF0ZTtcbiAgICAgIGNvbnN0IHBsb3RXaWR0aCA9IE1hdGgubWF4KHdpZHRoIC0gTnVtYmVyKHNsaWRlckhhbmRsZVdpZHRoKSwgMCk7XG4gICAgICBjb25zdCByZW5kZXJQbG90ID0gKGhpc3RvZ3JhbSAmJiBoaXN0b2dyYW0ubGVuZ3RoKSB8fCBsaW5lQ2hhcnQ7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3NOYW1lPVwia2ctcmFuZ2Utc2xpZGVyXCJcbiAgICAgICAgICBzdHlsZT17e3dpZHRoOiAnMTAwJScsIHBhZGRpbmc6IGAwICR7TnVtYmVyKHNsaWRlckhhbmRsZVdpZHRoKSAvIDJ9cHhgfX1cbiAgICAgICAgICByZWY9e3RoaXMuc2V0U2xpZGVyQ29udGFpbmVyfVxuICAgICAgICA+XG4gICAgICAgICAge0FycmF5LmlzQXJyYXkocmFuZ2UpICYmIHJhbmdlLmV2ZXJ5KE51bWJlci5pc0Zpbml0ZSkgJiYgKFxuICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAge3JlbmRlclBsb3QgPyAoXG4gICAgICAgICAgICAgICAgPFJhbmdlUGxvdFxuICAgICAgICAgICAgICAgICAgaGlzdG9ncmFtPXtoaXN0b2dyYW19XG4gICAgICAgICAgICAgICAgICBsaW5lQ2hhcnQ9e3RoaXMucHJvcHMubGluZUNoYXJ0fVxuICAgICAgICAgICAgICAgICAgcGxvdFR5cGU9e3RoaXMucHJvcHMucGxvdFR5cGV9XG4gICAgICAgICAgICAgICAgICBpc0VubGFyZ2VkPXt0aGlzLnByb3BzLmlzRW5sYXJnZWR9XG4gICAgICAgICAgICAgICAgICBvbkJydXNoPXsodmFsMCwgdmFsMSkgPT4gb25DaGFuZ2UoW3ZhbDAsIHZhbDFdKX1cbiAgICAgICAgICAgICAgICAgIG1hcmtzPXt0aGlzLnByb3BzLm1hcmtzfVxuICAgICAgICAgICAgICAgICAgcmFuZ2U9e3JhbmdlfVxuICAgICAgICAgICAgICAgICAgdmFsdWU9e3RoaXMucHJvcHMucGxvdFZhbHVlIHx8IHRoaXMuZmlsdGVyVmFsdWVTZWxlY3Rvcih0aGlzLnByb3BzKX1cbiAgICAgICAgICAgICAgICAgIHdpZHRoPXtwbG90V2lkdGh9XG4gICAgICAgICAgICAgICAgICBpc1JhbmdlZD17aXNSYW5nZWR9XG4gICAgICAgICAgICAgICAgICBzdGVwPXtzdGVwfVxuICAgICAgICAgICAgICAgICAgdGltZXpvbmU9e3RpbWV6b25lfVxuICAgICAgICAgICAgICAgICAgdGltZUZvcm1hdD17dGltZUZvcm1hdH1cbiAgICAgICAgICAgICAgICAgIHBsYXliYWNrQ29udHJvbFdpZHRoPXtwbGF5YmFja0NvbnRyb2xXaWR0aH1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgPFNsaWRlcldyYXBwZXJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJrZy1yYW5nZS1zbGlkZXJfX3NsaWRlclwiXG4gICAgICAgICAgICAgICAgaXNSYW5nZWQ9e2lzUmFuZ2VkfVxuICAgICAgICAgICAgICAgIHNob3dJbnB1dD17c2hvd0lucHV0fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge3RoaXMucHJvcHMueEF4aXMgPyAoXG4gICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7aGVpZ2h0OiAnMzBweCd9fT5cbiAgICAgICAgICAgICAgICAgICAgPHRoaXMucHJvcHMueEF4aXNcbiAgICAgICAgICAgICAgICAgICAgICB3aWR0aD17cGxvdFdpZHRofVxuICAgICAgICAgICAgICAgICAgICAgIHRpbWV6b25lPXt0aW1lem9uZX1cbiAgICAgICAgICAgICAgICAgICAgICBkb21haW49e3JhbmdlfVxuICAgICAgICAgICAgICAgICAgICAgIGlzRW5sYXJnZWQ9e3RoaXMucHJvcHMuaXNFbmxhcmdlZH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIDxTbGlkZXJcbiAgICAgICAgICAgICAgICAgIG1hcmtzPXt0aGlzLnByb3BzLm1hcmtzfVxuICAgICAgICAgICAgICAgICAgaXNSYW5nZWQ9e2lzUmFuZ2VkfVxuICAgICAgICAgICAgICAgICAgbWluVmFsdWU9e3JhbmdlWzBdfVxuICAgICAgICAgICAgICAgICAgbWF4VmFsdWU9e3JhbmdlWzFdfVxuICAgICAgICAgICAgICAgICAgdmFsdWUwPXt0aGlzLnByb3BzLnZhbHVlMH1cbiAgICAgICAgICAgICAgICAgIHZhbHVlMT17dGhpcy5wcm9wcy52YWx1ZTF9XG4gICAgICAgICAgICAgICAgICBzdGVwPXtzdGVwfVxuICAgICAgICAgICAgICAgICAgc2xpZGVySGFuZGxlV2lkdGg9e3NsaWRlckhhbmRsZVdpZHRofVxuICAgICAgICAgICAgICAgICAgb25TbGlkZXIwQ2hhbmdlPXt0aGlzLl9zZXRSYW5nZVZhbDB9XG4gICAgICAgICAgICAgICAgICBvblNsaWRlcjFDaGFuZ2U9e3RoaXMuX3NldFJhbmdlVmFsMX1cbiAgICAgICAgICAgICAgICAgIG9uU2xpZGVyQmFyQ2hhbmdlPXsodmFsMCwgdmFsMSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZShbdmFsMCwgdmFsMV0pO1xuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIGVuYWJsZUJhckRyYWdcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIHshaXNSYW5nZWQgJiYgc2hvd0lucHV0ID8gdGhpcy5fcmVuZGVySW5wdXQoJ3ZhbHVlMScpIDogbnVsbH1cbiAgICAgICAgICAgICAgPC9TbGlkZXJXcmFwcGVyPlxuICAgICAgICAgICAgICB7aXNSYW5nZWQgJiYgc2hvd0lucHV0ID8gKFxuICAgICAgICAgICAgICAgIDxSYW5nZUlucHV0V3JhcHBlciBjbGFzc05hbWU9XCJyYW5nZS1zbGlkZXJfX2lucHV0LWdyb3VwXCI+XG4gICAgICAgICAgICAgICAgICB7dGhpcy5fcmVuZGVySW5wdXQoJ3ZhbHVlMCcpfVxuICAgICAgICAgICAgICAgICAge3RoaXMuX3JlbmRlcklucHV0KCd2YWx1ZTEnKX1cbiAgICAgICAgICAgICAgICA8L1JhbmdlSW5wdXRXcmFwcGVyPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvPlxuICAgICAgICAgICl9XG4gICAgICAgIDwvZGl2PlxuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwb2x5ZmlsbChSYW5nZVNsaWRlcik7XG5cbiAgcmV0dXJuIFJhbmdlU2xpZGVyO1xufVxuIl19
|
|
349
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jb21tb24vcmFuZ2Utc2xpZGVyLnRzeCJdLCJuYW1lcyI6WyJTbGlkZXJJbnB1dCIsIklucHV0IiwicHJvcHMiLCJ0aGVtZSIsInNsaWRlcklucHV0V2lkdGgiLCJmbHVzaCIsImlucHV0U2l6ZSIsInNsaWRlcklucHV0Rm9udFNpemUiLCJzbGlkZXJJbnB1dFBhZGRpbmciLCJTbGlkZXJXcmFwcGVyIiwic3R5bGVkIiwiZGl2IiwiaXNSYW5nZWQiLCJzaG93SW5wdXQiLCJSYW5nZUlucHV0V3JhcHBlciIsIlJhbmdlU2xpZGVyRmFjdG9yeSIsImRlcHMiLCJSYW5nZVBsb3RGYWN0b3J5IiwiUmFuZ2VQbG90IiwiUmFuZ2VTbGlkZXIiLCJ2YWx1ZTAiLCJ2YWx1ZTEiLCJwcmV2VmFsdWUwIiwicHJldlZhbHVlMSIsIndpZHRoIiwiZWxlbWVudCIsInNsaWRlckNvbnRhaW5lciIsIl9yZXNpemUiLCJ2YWx1ZTBTZWxlY3RvciIsInZhbHVlMVNlbGVjdG9yIiwidmFsIiwicmFuZ2UiLCJzdGVwIiwib25DaGFuZ2UiLCJ2YWwxIiwiTnVtYmVyIiwiX3JvdW5kVmFsVG9TdGVwIiwidmFsMCIsIm9mZnNldFdpZHRoIiwic3RhdGUiLCJzZXRTdGF0ZSIsImtleSIsImUiLCJ0YXJnZXQiLCJ2YWx1ZSIsIkVsZW1lbnQiLCJzZXRSYW5nZSIsIl9zZXRSYW5nZVZhbDAiLCJfc2V0UmFuZ2VWYWwxIiwicmVmIiwiaW5wdXRWYWx1ZTAiLCJpbnB1dFZhbHVlMSIsInVwZGF0ZSIsIl9vbkNoYW5nZUlucHV0IiwiYmluZCIsImN1cnJlbnQiLCJibHVyIiwiaW5wdXRUaGVtZSIsImhpc3RvZ3JhbSIsImxpbmVDaGFydCIsInNsaWRlckhhbmRsZVdpZHRoIiwidGltZXpvbmUiLCJ0aW1lRm9ybWF0IiwicGxheWJhY2tDb250cm9sV2lkdGgiLCJhbmltYXRpb25XaW5kb3ciLCJmaWx0ZXIiLCJkYXRhc2V0cyIsInBsb3RXaWR0aCIsIk1hdGgiLCJtYXgiLCJyZW5kZXJQbG90IiwibGVuZ3RoIiwicGFkZGluZyIsInNldFNsaWRlckNvbnRhaW5lciIsIkFycmF5IiwiaXNBcnJheSIsImV2ZXJ5IiwiaXNGaW5pdGUiLCJwbG90VHlwZSIsImlzRW5sYXJnZWQiLCJtYXJrcyIsInBsb3RWYWx1ZSIsImZpbHRlclZhbHVlU2VsZWN0b3IiLCJ4QXhpcyIsImhlaWdodCIsIl9yZW5kZXJJbnB1dCIsImlzTmFOIiwiQ29tcG9uZW50Il0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFvQkE7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBQ0E7O0FBRUE7Ozs7Ozs7Ozs7OztBQVNBLElBQU1BLFdBQVcsR0FBRyxrQ0FBT0Msd0JBQVAsQ0FBSCxtTkFDTixVQUFBQyxLQUFLO0FBQUEsU0FBSUEsS0FBSyxDQUFDQyxLQUFOLENBQVlDLGdCQUFoQjtBQUFBLENBREMsRUFFQSxVQUFBRixLQUFLO0FBQUEsU0FBS0EsS0FBSyxDQUFDRyxLQUFOLEdBQWMsQ0FBZCxHQUFrQkgsS0FBSyxDQUFDSSxTQUFOLEtBQW9CLE1BQXBCLEdBQTZCLEVBQTdCLEdBQWtDLEVBQXpEO0FBQUEsQ0FGTCxFQUdGLFVBQUFKLEtBQUs7QUFBQSxTQUFJQSxLQUFLLENBQUNDLEtBQU4sQ0FBWUksbUJBQWhCO0FBQUEsQ0FISCxFQUlKLFVBQUFMLEtBQUs7QUFBQSxTQUFJQSxLQUFLLENBQUNDLEtBQU4sQ0FBWUssa0JBQWhCO0FBQUEsQ0FKRCxDQUFqQjs7QUFZQSxJQUFNQyxhQUFhLEdBQUdDLDZCQUFPQyxHQUFWLDBKQUdGLFVBQUFULEtBQUs7QUFBQSxTQUFLLENBQUNBLEtBQUssQ0FBQ1UsUUFBUCxJQUFtQlYsS0FBSyxDQUFDVyxTQUF6QixHQUFxQyxRQUFyQyxHQUFnRCxZQUFyRDtBQUFBLENBSEgsQ0FBbkI7O0FBTUEsSUFBTUMsaUJBQWlCLEdBQUdKLDZCQUFPQyxHQUFWLG9LQUF2Qjs7QUFpQ0FJLGtCQUFrQixDQUFDQyxJQUFuQixHQUEwQixDQUFD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dCAoYykgMjAyMyBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudCwgQ29tcG9uZW50VHlwZSwgY3JlYXRlUmVmLCBFbGVtZW50VHlwZX0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtwb2x5ZmlsbH0gZnJvbSAncmVhY3QtbGlmZWN5Y2xlcy1jb21wYXQnO1xuaW1wb3J0IHtjcmVhdGVTZWxlY3Rvcn0gZnJvbSAncmVzZWxlY3QnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdzdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgUmFuZ2VQbG90RmFjdG9yeSBmcm9tICcuL3JhbmdlLXBsb3QnO1xuaW1wb3J0IFNsaWRlciBmcm9tICcuL3NsaWRlci9zbGlkZXInO1xuaW1wb3J0IHtJbnB1dH0gZnJvbSAnLi9zdHlsZWQtY29tcG9uZW50cyc7XG5cbmltcG9ydCB7b2JzZXJ2ZURpbWVuc2lvbnMsIHVub2JzZXJ2ZURpbWVuc2lvbnMsIHJvdW5kVmFsVG9TdGVwLCBjbGFtcH0gZnJvbSAnQGtlcGxlci5nbC91dGlscyc7XG5pbXBvcnQge0xpbmVDaGFydCwgRmlsdGVyfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7RGF0YXNldHN9IGZyb20gJ0BrZXBsZXIuZ2wvdGFibGUnO1xuXG5pbnRlcmZhY2UgU2xpZGVySW5wdXRQcm9wcyB7XG4gIGZsdXNoPzogYm9vbGVhbjtcbiAgaW5wdXRTaXplPzogc3RyaW5nO1xufVxuXG5jb25zdCBTbGlkZXJJbnB1dCA9IHN0eWxlZChJbnB1dCk8U2xpZGVySW5wdXRQcm9wcz5gXG4gIHdpZHRoOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnNsaWRlcklucHV0V2lkdGh9cHg7XG4gIG1hcmdpbi1sZWZ0OiAke3Byb3BzID0+IChwcm9wcy5mbHVzaCA/IDAgOiBwcm9wcy5pbnB1dFNpemUgPT09ICd0aW55JyA/IDEyIDogMTgpfXB4O1xuICBmb250LXNpemU6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc2xpZGVySW5wdXRGb250U2l6ZX07IC8vIDEwcHggLy8gMTJweDtcbiAgcGFkZGluZzogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zbGlkZXJJbnB1dFBhZGRpbmd9OyAvLyA0cHggNnB4OyAvLyA2cHggMTJweDtcbmA7XG5cbmludGVyZmFjZSBTbGlkZXJXcmFwcGVyUHJvcHMge1xuICBpc1JhbmdlZD86IGJvb2xlYW47XG4gIHNob3dJbnB1dD86IGJvb2xlYW47XG59XG5cbmNvbnN0IFNsaWRlcldyYXBwZXIgPSBzdHlsZWQuZGl2PFNsaWRlcldyYXBwZXJQcm9wcz5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgYWxpZ24taXRlbXM6ICR7cHJvcHMgPT4gKCFwcm9wcy5pc1JhbmdlZCAmJiBwcm9wcy5zaG93SW5wdXQgPyAnY2VudGVyJyA6ICdmbGV4LXN0YXJ0Jyl9O1xuYDtcblxuY29uc3QgUmFuZ2VJbnB1dFdyYXBwZXIgPSBzdHlsZWQuZGl2YFxuICBtYXJnaW4tdG9wOiAxMnB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG5gO1xuXG5pbnRlcmZhY2UgUmFuZ2VTbGlkZXJQcm9wcyB7XG4gIHJhbmdlPzogbnVtYmVyW107XG4gIHZhbHVlMDogbnVtYmVyO1xuICB2YWx1ZTE6IG51bWJlcjtcbiAgb25DaGFuZ2U/OiAodmFsOiBudW1iZXJbXSkgPT4gdm9pZDsgLy8gVE9ET1xuICBoaXN0b2dyYW0/OiBhbnlbXTtcbiAgaXNSYW5nZWQ/OiBib29sZWFuO1xuICBpc0VubGFyZ2VkPzogYm9vbGVhbjtcbiAgc2hvd0lucHV0PzogYm9vbGVhbjtcbiAgaW5wdXRUaGVtZT86IHN0cmluZztcbiAgaW5wdXRTaXplPzogc3RyaW5nO1xuICBzdGVwPzogbnVtYmVyO1xuICBzbGlkZXJIYW5kbGVXaWR0aD86IG51bWJlcjtcbiAgeEF4aXM/OiBFbGVtZW50VHlwZTtcbiAgdGltZXpvbmU/OiBzdHJpbmcgfCBudWxsO1xuICB0aW1lRm9ybWF0Pzogc3RyaW5nO1xuICBwbGF5YmFja0NvbnRyb2xXaWR0aD86IG51bWJlcjtcbiAgbGluZUNoYXJ0PzogTGluZUNoYXJ0O1xuICBtYXJrcz86IG51bWJlcltdO1xuICBwbG90VHlwZT86IHN0cmluZztcbiAgcGxvdFZhbHVlPzogbnVtYmVyW107XG5cbiAgYW5pbWF0aW9uV2luZG93Pzogc3RyaW5nO1xuICBmaWx0ZXI/OiBGaWx0ZXI7XG4gIGRhdGFzZXRzPzogRGF0YXNldHM7XG59XG5cblJhbmdlU2xpZGVyRmFjdG9yeS5kZXBzID0gW1JhbmdlUGxvdEZhY3RvcnldO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBSYW5nZVNsaWRlckZhY3RvcnkoXG4gIFJhbmdlUGxvdDogUmV0dXJuVHlwZTx0eXBlb2YgUmFuZ2VQbG90RmFjdG9yeT5cbik6IENvbXBvbmVudFR5cGU8UmFuZ2VTbGlkZXJQcm9wcz4ge1xuICBjbGFzcyBSYW5nZVNsaWRlciBleHRlbmRzIENvbXBvbmVudDxSYW5nZVNsaWRlclByb3BzPiB7XG4gICAgc3RhdGljIGRlZmF1bHRQcm9wcyA9IHtcbiAgICAgIGlzRW5sYXJnZWQ6IGZhbHNlLFxuICAgICAgaXNSYW5nZWQ6IHRydWUsXG4gICAgICBzaG93SW5wdXQ6IHRydWUsXG4gICAgICBzbGlkZXJIYW5kbGVXaWR0aDogMTIsXG4gICAgICBpbnB1dFRoZW1lOiAnJyxcbiAgICAgIGlucHV0U2l6ZTogJ3NtYWxsJyxcbiAgICAgIG9uQ2hhbmdlOiAoKSA9PiB7fVxuICAgIH07XG5cbiAgICBzdGF0aWMgZ2V0RGVyaXZlZFN0YXRlRnJvbVByb3BzKHByb3BzLCBzdGF0ZSkge1xuICAgICAgbGV0IHVwZGF0ZToge3ZhbHVlMT86IGFueTsgcHJldlZhbHVlMT86IGFueTsgdmFsdWUwPzogYW55OyBwcmV2VmFsdWUwPzogYW55fSB8IG51bGwgPSBudWxsO1xuICAgICAgY29uc3Qge3ZhbHVlMCwgdmFsdWUxfSA9IHByb3BzO1xuICAgICAgaWYgKHByb3BzLnZhbHVlMCAhPT0gc3RhdGUucHJldlZhbHVlMCAmJiAhaXNOYU4odmFsdWUwKSkge1xuICAgICAgICB1cGRhdGUgPSB7Li4uKHVwZGF0ZSB8fCB7fSksIHZhbHVlMCwgcHJldlZhbHVlMDogdmFsdWUwfTtcbiAgICAgIH1cbiAgICAgIGlmIChwcm9wcy52YWx1ZTEgIT09IHN0YXRlLnByZXZWYWx1ZTEgJiYgIWlzTmFOKHZhbHVlMSkpIHtcbiAgICAgICAgdXBkYXRlID0gey4uLih1cGRhdGUgfHwge30pLCB2YWx1ZTEsIHByZXZWYWx1ZTE6IHZhbHVlMX07XG4gICAgICB9XG4gICAgICByZXR1cm4gdXBkYXRlO1xuICAgIH1cblxuICAgIHN0YXRlID0ge1xuICAgICAgdmFsdWUwOiAwLFxuICAgICAgdmFsdWUxOiAxLFxuICAgICAgcHJldlZhbHVlMDogMCxcbiAgICAgIHByZXZWYWx1ZTE6IDEsXG4gICAgICB3aWR0aDogMjg4XG4gICAgfTtcblxuICAgIHNsaWRlckNvbnRhaW5lcjogSFRNTERpdkVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAgIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgICAgaWYgKHRoaXMuc2xpZGVyQ29udGFpbmVyIGluc3RhbmNlb2YgRWxlbWVudCkge1xuICAgICAgICBvYnNlcnZlRGltZW5zaW9ucyh0aGlzLnNsaWRlckNvbnRhaW5lciwgdGhpcy5fcmVzaXplLCAxMDApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbXBvbmVudFdpbGxVbm1vdW50KCkge1xuICAgICAgaWYgKHRoaXMuc2xpZGVyQ29udGFpbmVyIGluc3RhbmNlb2YgRWxlbWVudCkge1xuICAgICAgICB1bm9ic2VydmVEaW1lbnNpb25zKHRoaXMuc2xpZGVyQ29udGFpbmVyKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRTbGlkZXJDb250YWluZXI6IFJlYWN0LkxlZ2FjeVJlZjxIVE1MRGl2RWxlbWVudD4gPSBlbGVtZW50ID0+IHtcbiAgICAgIHRoaXMuc2xpZGVyQ29udGFpbmVyID0gZWxlbWVudDtcbiAgICAgIHRoaXMuX3Jlc2l6ZSgpO1xuICAgIH07XG4gICAgaW5wdXRWYWx1ZTAgPSBjcmVhdGVSZWY8SFRNTElucHV0RWxlbWVudD4oKTtcbiAgICBpbnB1dFZhbHVlMSA9IGNyZWF0ZVJlZjxIVE1MSW5wdXRFbGVtZW50PigpO1xuICAgIHZhbHVlMFNlbGVjdG9yID0gcHJvcHMgPT4gcHJvcHMudmFsdWUwO1xuICAgIHZhbHVlMVNlbGVjdG9yID0gcHJvcHMgPT4gcHJvcHMudmFsdWUxO1xuICAgIGZpbHRlclZhbHVlU2VsZWN0b3IgPSBjcmVhdGVTZWxlY3RvcihcbiAgICAgIHRoaXMudmFsdWUwU2VsZWN0b3IsXG4gICAgICB0aGlzLnZhbHVlMVNlbGVjdG9yLFxuICAgICAgKHZhbHVlMCwgdmFsdWUxKSA9PiBbdmFsdWUwLCB2YWx1ZTFdXG4gICAgKTtcblxuICAgIF9yb3VuZFZhbFRvU3RlcCA9IHZhbCA9PiB7XG4gICAgICBjb25zdCB7cmFuZ2UsIHN0ZXB9ID0gdGhpcy5wcm9wcztcbiAgICAgIGlmICghcmFuZ2UgfHwgIXN0ZXApIHJldHVybjtcbiAgICAgIHJldHVybiByb3VuZFZhbFRvU3RlcChyYW5nZVswXSwgc3RlcCwgdmFsKTtcbiAgICB9O1xuXG4gICAgX3NldFJhbmdlVmFsMSA9IHZhbCA9PiB7XG4gICAgICBjb25zdCB7dmFsdWUwLCByYW5nZSwgb25DaGFuZ2UgPSAoKSA9PiB7fX0gPSB0aGlzLnByb3BzO1xuICAgICAgaWYgKCFyYW5nZSkgcmV0dXJuO1xuICAgICAgY29uc3QgdmFsMSA9IE51bWJlcih2YWwpO1xuICAgICAgb25DaGFuZ2UoW3ZhbHVlMCwgY2xhbXAoW3ZhbHVlMCwgcmFuZ2VbMV1dLCB0aGlzLl9yb3VuZFZhbFRvU3RlcCh2YWwxKSldKTtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH07XG5cbiAgICBfc2V0UmFuZ2VWYWwwID0gdmFsID0+IHtcbiAgICAgIGNvbnN0IHt2YWx1ZTEsIHJhbmdlLCBvbkNoYW5nZSA9ICgpID0+IHt9fSA9IHRoaXMucHJvcHM7XG4gICAgICBpZiAoIXJhbmdlKSByZXR1cm47XG4gICAgICBjb25zdCB2YWwwID0gTnVtYmVyKHZhbCk7XG4gICAgICBvbkNoYW5nZShbY2xhbXAoW3JhbmdlWzBdLCB2YWx1ZTFdLCB0aGlzLl9yb3VuZFZhbFRvU3RlcCh2YWwwKSksIHZhbHVlMV0pO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfTtcblxuICAgIF9yZXNpemUgPSAoKSA9PiB7XG4gICAgICBpZiAodGhpcy5zbGlkZXJDb250YWluZXIpIHtcbiAgICAgICAgY29uc3Qgd2lkdGggPSB0aGlzLnNsaWRlckNvbnRhaW5lci5vZmZzZXRXaWR0aDtcbiAgICAgICAgaWYgKHdpZHRoICE9PSB0aGlzLnN0YXRlLndpZHRoKSB7XG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7d2lkdGh9KTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG5cbiAgICBfb25DaGFuZ2VJbnB1dCA9IChrZXksIGUpID0+IHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1trZXldOiBlLnRhcmdldC52YWx1ZX0pO1xuICAgIH07XG5cbiAgICBfcmVuZGVySW5wdXQoa2V5KSB7XG4gICAgICBjb25zdCBzZXRSYW5nZSA9IGtleSA9PT0gJ3ZhbHVlMCcgPyB0aGlzLl9zZXRSYW5nZVZhbDAgOiB0aGlzLl9zZXRSYW5nZVZhbDE7XG4gICAgICBjb25zdCByZWYgPSBrZXkgPT09ICd2YWx1ZTAnID8gdGhpcy5pbnB1dFZhbHVlMCA6IHRoaXMuaW5wdXRWYWx1ZTE7XG4gICAgICBjb25zdCB1cGRhdGUgPSBlID0+IHtcbiAgICAgICAgaWYgKCFzZXRSYW5nZShlLnRhcmdldC52YWx1ZSkpIHtcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtba2V5XTogdGhpcy5zdGF0ZVtrZXldfSk7XG4gICAgICAgIH1cbiAgICAgIH07XG5cbiAgICAgIGNvbnN0IG9uQ2hhbmdlID0gdGhpcy5fb25DaGFuZ2VJbnB1dC5iaW5kKHRoaXMsIGtleSk7XG5cbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxTbGlkZXJJbnB1dFxuICAgICAgICAgIGNsYXNzTmFtZT1cImtnLXJhbmdlLXNsaWRlcl9faW5wdXRcIlxuICAgICAgICAgIHR5cGU9XCJudW1iZXJcIlxuICAgICAgICAgIHJlZj17cmVmfVxuICAgICAgICAgIGlkPXtgc2xpZGVyLWlucHV0LSR7a2V5fWB9XG4gICAgICAgICAga2V5PXtrZXl9XG4gICAgICAgICAgdmFsdWU9e3RoaXMuc3RhdGVba2V5XX1cbiAgICAgICAgICBvbkNoYW5nZT17b25DaGFuZ2V9XG4gICAgICAgICAgb25LZXlQcmVzcz17ZSA9PiB7XG4gICAgICAgICAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgICAgICAgICAgdXBkYXRlKGUpO1xuICAgICAgICAgICAgICAocmVmLmN1cnJlbnQgYXMgYW55KS5ibHVyKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfX1cbiAgICAgICAgICBvbkJsdXI9e3VwZGF0ZX1cbiAgICAgICAgICBmbHVzaD17a2V5ID09PSAndmFsdWUwJ31cbiAgICAgICAgICBpbnB1dFNpemU9e3RoaXMucHJvcHMuaW5wdXRTaXplfVxuICAgICAgICAgIHNlY29uZGFyeT17dGhpcy5wcm9wcy5pbnB1dFRoZW1lID09PSAnc2Vjb25kYXJ5J31cbiAgICAgICAgLz5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGNvbXBsZXhpdHlcbiAgICByZW5kZXIoKSB7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGlzUmFuZ2VkLFxuICAgICAgICBzaG93SW5wdXQsXG4gICAgICAgIGhpc3RvZ3JhbSxcbiAgICAgICAgbGluZUNoYXJ0LFxuICAgICAgICByYW5nZSxcbiAgICAgICAgb25DaGFuZ2UgPSAoKSA9PiB7fSxcbiAgICAgICAgc2xpZGVySGFuZGxlV2lkdGgsXG4gICAgICAgIHN0ZXAsXG4gICAgICAgIHRpbWV6b25lLFxuICAgICAgICB0aW1lRm9ybWF0LFxuICAgICAgICBwbGF5YmFja0NvbnRyb2xXaWR0aCxcbiAgICAgICAgYW5pbWF0aW9uV2luZG93LFxuICAgICAgICBmaWx0ZXIsXG4gICAgICAgIGRhdGFzZXRzXG4gICAgICB9ID0gdGhpcy5wcm9wcztcblxuICAgICAgY29uc3Qge3dpZHRofSA9IHRoaXMuc3RhdGU7XG4gICAgICBjb25zdCBwbG90V2lkdGggPSBNYXRoLm1heCh3aWR0aCAtIE51bWJlcihzbGlkZXJIYW5kbGVXaWR0aCksIDApO1xuICAgICAgY29uc3QgcmVuZGVyUGxvdCA9IChoaXN0b2dyYW0gJiYgaGlzdG9ncmFtLmxlbmd0aCkgfHwgbGluZUNoYXJ0O1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzTmFtZT1cImtnLXJhbmdlLXNsaWRlclwiXG4gICAgICAgICAgc3R5bGU9e3t3aWR0aDogJzEwMCUnLCBwYWRkaW5nOiBgMCAke051bWJlcihzbGlkZXJIYW5kbGVXaWR0aCkgLyAyfXB4YH19XG4gICAgICAgICAgcmVmPXt0aGlzLnNldFNsaWRlckNvbnRhaW5lcn1cbiAgICAgICAgPlxuICAgICAgICAgIHtBcnJheS5pc0FycmF5KHJhbmdlKSAmJiByYW5nZS5ldmVyeShOdW1iZXIuaXNGaW5pdGUpICYmIChcbiAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgIHtyZW5kZXJQbG90ID8gKFxuICAgICAgICAgICAgICAgIDxSYW5nZVBsb3RcbiAgICAgICAgICAgICAgICAgIGhpc3RvZ3JhbT17aGlzdG9ncmFtfVxuICAgICAgICAgICAgICAgICAgbGluZUNoYXJ0PXt0aGlzLnByb3BzLmxpbmVDaGFydH1cbiAgICAgICAgICAgICAgICAgIHBsb3RUeXBlPXt0aGlzLnByb3BzLnBsb3RUeXBlfVxuICAgICAgICAgICAgICAgICAgaXNFbmxhcmdlZD17dGhpcy5wcm9wcy5pc0VubGFyZ2VkfVxuICAgICAgICAgICAgICAgICAgb25CcnVzaD17KHZhbDAsIHZhbDEpID0+IG9uQ2hhbmdlKFt2YWwwLCB2YWwxXSl9XG4gICAgICAgICAgICAgICAgICBtYXJrcz17dGhpcy5wcm9wcy5tYXJrc31cbiAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbldpbmRvdz17YW5pbWF0aW9uV2luZG93fVxuICAgICAgICAgICAgICAgICAgZmlsdGVyPXtmaWx0ZXJ9XG4gICAgICAgICAgICAgICAgICBkYXRhc2V0cz17ZGF0YXNldHN9XG4gICAgICAgICAgICAgICAgICByYW5nZT17cmFuZ2V9XG4gICAgICAgICAgICAgICAgICB2YWx1ZT17dGhpcy5wcm9wcy5wbG90VmFsdWUgfHwgdGhpcy5maWx0ZXJWYWx1ZVNlbGVjdG9yKHRoaXMucHJvcHMpfVxuICAgICAgICAgICAgICAgICAgd2lkdGg9e3Bsb3RXaWR0aH1cbiAgICAgICAgICAgICAgICAgIGlzUmFuZ2VkPXtpc1JhbmdlZH1cbiAgICAgICAgICAgICAgICAgIHN0ZXA9e3N0ZXB9XG4gICAgICAgICAgICAgICAgICB0aW1lem9uZT17dGltZXpvbmV9XG4gICAgICAgICAgICAgICAgICB0aW1lRm9ybWF0PXt0aW1lRm9ybWF0fVxuICAgICAgICAgICAgICAgICAgcGxheWJhY2tDb250cm9sV2lkdGg9e3BsYXliYWNrQ29udHJvbFdpZHRofVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICA8U2xpZGVyV3JhcHBlclxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImtnLXJhbmdlLXNsaWRlcl9fc2xpZGVyXCJcbiAgICAgICAgICAgICAgICBpc1JhbmdlZD17aXNSYW5nZWR9XG4gICAgICAgICAgICAgICAgc2hvd0lucHV0PXtzaG93SW5wdXR9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7dGhpcy5wcm9wcy54QXhpcyA/IChcbiAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3toZWlnaHQ6ICczMHB4J319PlxuICAgICAgICAgICAgICAgICAgICA8dGhpcy5wcm9wcy54QXhpc1xuICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXtwbG90V2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgdGltZXpvbmU9e3RpbWV6b25lfVxuICAgICAgICAgICAgICAgICAgICAgIGRvbWFpbj17cmFuZ2V9XG4gICAgICAgICAgICAgICAgICAgICAgaXNFbmxhcmdlZD17dGhpcy5wcm9wcy5pc0VubGFyZ2VkfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPFNsaWRlclxuICAgICAgICAgICAgICAgICAgbWFya3M9e3RoaXMucHJvcHMubWFya3N9XG4gICAgICAgICAgICAgICAgICBpc1JhbmdlZD17aXNSYW5nZWR9XG4gICAgICAgICAgICAgICAgICBtaW5WYWx1ZT17cmFuZ2VbMF19XG4gICAgICAgICAgICAgICAgICBtYXhWYWx1ZT17cmFuZ2VbMV19XG4gICAgICAgICAgICAgICAgICB2YWx1ZTA9e3RoaXMucHJvcHMudmFsdWUwfVxuICAgICAgICAgICAgICAgICAgdmFsdWUxPXt0aGlzLnByb3BzLnZhbHVlMX1cbiAgICAgICAgICAgICAgICAgIHN0ZXA9e3N0ZXB9XG4gICAgICAgICAgICAgICAgICBzbGlkZXJIYW5kbGVXaWR0aD17c2xpZGVySGFuZGxlV2lkdGh9XG4gICAgICAgICAgICAgICAgICBvblNsaWRlcjBDaGFuZ2U9e3RoaXMuX3NldFJhbmdlVmFsMH1cbiAgICAgICAgICAgICAgICAgIG9uU2xpZGVyMUNoYW5nZT17dGhpcy5fc2V0UmFuZ2VWYWwxfVxuICAgICAgICAgICAgICAgICAgb25TbGlkZXJCYXJDaGFuZ2U9eyh2YWwwLCB2YWwxKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlKFt2YWwwLCB2YWwxXSk7XG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgZW5hYmxlQmFyRHJhZ1xuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgeyFpc1JhbmdlZCAmJiBzaG93SW5wdXQgPyB0aGlzLl9yZW5kZXJJbnB1dCgndmFsdWUxJykgOiBudWxsfVxuICAgICAgICAgICAgICA8L1NsaWRlcldyYXBwZXI+XG4gICAgICAgICAgICAgIHtpc1JhbmdlZCAmJiBzaG93SW5wdXQgPyAoXG4gICAgICAgICAgICAgICAgPFJhbmdlSW5wdXRXcmFwcGVyIGNsYXNzTmFtZT1cInJhbmdlLXNsaWRlcl9faW5wdXQtZ3JvdXBcIj5cbiAgICAgICAgICAgICAgICAgIHt0aGlzLl9yZW5kZXJJbnB1dCgndmFsdWUwJyl9XG4gICAgICAgICAgICAgICAgICB7dGhpcy5fcmVuZGVySW5wdXQoJ3ZhbHVlMScpfVxuICAgICAgICAgICAgICAgIDwvUmFuZ2VJbnB1dFdyYXBwZXI+XG4gICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgPC8+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9kaXY+XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHBvbHlmaWxsKFJhbmdlU2xpZGVyKTtcblxuICByZXR1cm4gUmFuZ2VTbGlkZXI7XG59XG4iXX0=
|