@kepler.gl/components 3.3.0-alpha.7 → 3.3.0-alpha.9
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/cjs/common/data-table/grid.js +2 -2
- package/dist/cjs/common/data-table/index.js +3 -3
- package/dist/cjs/common/file-uploader/file-upload.js +251 -40
- package/dist/cjs/common/icons/circle.js +54 -0
- package/dist/cjs/common/icons/index.js +8 -1
- package/dist/cjs/common/item-selector/item-selector.js +2 -2
- package/dist/cjs/common/portaled.js +3 -3
- package/dist/cjs/common/time-range-slider.js +2 -2
- package/dist/cjs/common/timeline-slider.js +2 -2
- package/dist/cjs/editor/editor.js +2 -2
- package/dist/cjs/effects/effect-configurator.js +2 -2
- package/dist/cjs/effects/effect-manager.js +32 -17
- package/dist/cjs/effects/effect-time-configurator.js +110 -42
- package/dist/cjs/filters/filter-panels/polygon-filter-panel.js +2 -2
- package/dist/cjs/filters/time-widget.js +2 -2
- package/dist/cjs/kepler-gl.js +6 -2
- package/dist/cjs/map/layer-hover-info.js +2 -2
- package/dist/cjs/map/map-control.js +2 -2
- package/dist/cjs/map/map-draw-panel.js +10 -1
- package/dist/cjs/map-container.js +2 -2
- package/dist/cjs/map-view-state-context.js +3 -3
- package/dist/cjs/modal-container.js +2 -2
- package/dist/cjs/modals/cloud-components/cloud-storage-disclaimer.js +24 -0
- package/dist/cjs/modals/cloud-tile.js +39 -10
- package/dist/cjs/modals/export-map-modal/components.js +16 -7
- package/dist/cjs/modals/export-map-modal/export-html-map.js +5 -9
- package/dist/cjs/modals/export-map-modal/export-json-map.js +4 -8
- package/dist/cjs/modals/export-map-modal/export-map-modal.js +21 -16
- package/dist/cjs/modals/image-modal-container.js +2 -2
- package/dist/cjs/modals/load-data-modal.js +3 -3
- package/dist/cjs/modals/load-storage-map.js +9 -6
- package/dist/cjs/modals/save-map-modal.js +4 -3
- package/dist/cjs/modals/share-map-modal.js +5 -4
- package/dist/cjs/modals/swipe-export-video-preview.js +2 -2
- package/dist/cjs/notification-panel/notification-item.js +58 -12
- package/dist/cjs/plot-container.js +12 -5
- package/dist/cjs/remote-dataset-refresh-controller.js +50 -0
- package/dist/cjs/side-panel/common/dataset-info.js +187 -8
- package/dist/cjs/side-panel/common/dataset-refresh-progress.js +63 -0
- package/dist/cjs/side-panel/common/dataset-title.js +76 -13
- package/dist/cjs/side-panel/common/source-data-catalog.js +31 -6
- package/dist/cjs/side-panel/filter-manager.js +7 -3
- package/dist/cjs/side-panel/filter-panel/filter-panel.js +2 -2
- package/dist/cjs/side-panel/layer-manager.js +14 -4
- package/dist/cjs/side-panel/layer-panel/custom-palette.js +2 -2
- package/dist/cjs/side-panel/layer-panel/dataset-layer-section.js +14 -4
- package/dist/cjs/side-panel/layer-panel/dataset-section.js +7 -3
- package/dist/cjs/side-panel/layer-panel/layer-configurator.js +49 -35
- package/dist/cjs/side-panel/layer-panel/vector-tile-layer-configurator.js +4 -3
- package/dist/common/icons/circle.d.ts +10 -0
- package/dist/common/icons/index.d.ts +1 -0
- package/dist/effects/effect-manager.d.ts +1 -1
- package/dist/esm/common/data-table/grid.js +2 -2
- package/dist/esm/common/data-table/index.js +3 -3
- package/dist/esm/common/file-uploader/file-upload.js +252 -41
- package/dist/esm/common/icons/circle.js +48 -0
- package/dist/esm/common/icons/index.js +2 -1
- package/dist/esm/common/item-selector/item-selector.js +2 -2
- package/dist/esm/common/portaled.js +3 -3
- package/dist/esm/common/time-range-slider.js +2 -2
- package/dist/esm/common/timeline-slider.js +2 -2
- package/dist/esm/editor/editor.js +2 -2
- package/dist/esm/effects/effect-configurator.js +2 -2
- package/dist/esm/effects/effect-manager.js +34 -19
- package/dist/esm/effects/effect-time-configurator.js +111 -43
- package/dist/esm/filters/filter-panels/polygon-filter-panel.js +2 -2
- package/dist/esm/filters/time-widget.js +2 -2
- package/dist/esm/kepler-gl.js +6 -2
- package/dist/esm/map/layer-hover-info.js +2 -2
- package/dist/esm/map/map-control.js +2 -2
- package/dist/esm/map/map-draw-panel.js +11 -2
- package/dist/esm/map-container.js +2 -2
- package/dist/esm/map-view-state-context.js +3 -3
- package/dist/esm/modal-container.js +2 -2
- package/dist/esm/modals/cloud-components/cloud-storage-disclaimer.js +19 -0
- package/dist/esm/modals/cloud-tile.js +39 -10
- package/dist/esm/modals/export-map-modal/components.js +16 -7
- package/dist/esm/modals/export-map-modal/export-html-map.js +6 -10
- package/dist/esm/modals/export-map-modal/export-json-map.js +5 -9
- package/dist/esm/modals/export-map-modal/export-map-modal.js +21 -14
- package/dist/esm/modals/image-modal-container.js +2 -2
- package/dist/esm/modals/load-data-modal.js +3 -3
- package/dist/esm/modals/load-storage-map.js +8 -3
- package/dist/esm/modals/save-map-modal.js +4 -3
- package/dist/esm/modals/share-map-modal.js +5 -4
- package/dist/esm/modals/swipe-export-video-preview.js +2 -2
- package/dist/esm/notification-panel/notification-item.js +60 -14
- package/dist/esm/plot-container.js +12 -5
- package/dist/esm/remote-dataset-refresh-controller.js +44 -0
- package/dist/esm/side-panel/common/dataset-info.js +186 -9
- package/dist/esm/side-panel/common/dataset-refresh-progress.js +56 -0
- package/dist/esm/side-panel/common/dataset-title.js +77 -14
- package/dist/esm/side-panel/common/source-data-catalog.js +29 -6
- package/dist/esm/side-panel/filter-manager.js +7 -3
- package/dist/esm/side-panel/filter-panel/filter-panel.js +2 -2
- package/dist/esm/side-panel/layer-manager.js +14 -4
- package/dist/esm/side-panel/layer-panel/custom-palette.js +2 -2
- package/dist/esm/side-panel/layer-panel/dataset-layer-section.js +14 -4
- package/dist/esm/side-panel/layer-panel/dataset-section.js +7 -3
- package/dist/esm/side-panel/layer-panel/layer-configurator.js +49 -35
- package/dist/esm/side-panel/layer-panel/vector-tile-layer-configurator.js +4 -3
- package/dist/kepler-gl.d.ts +1 -0
- package/dist/modals/cloud-components/cloud-storage-disclaimer.d.ts +2 -0
- package/dist/modals/export-map-modal/components.d.ts +14 -0
- package/dist/remote-dataset-refresh-controller.d.ts +11 -0
- package/dist/side-panel/common/dataset-info.d.ts +10 -0
- package/dist/side-panel/common/dataset-refresh-progress.d.ts +11 -0
- package/dist/side-panel/common/dataset-title.d.ts +5 -0
- package/dist/side-panel/common/source-data-catalog.d.ts +3 -0
- package/dist/side-panel/layer-panel/dataset-section.d.ts +2 -0
- package/package.json +17 -18
|
@@ -10,6 +10,7 @@ import ImageModalContainer from './image-modal-container';
|
|
|
10
10
|
import { FlexContainer } from '../common/flex-container';
|
|
11
11
|
import StatusPanel, { UploadAnimation } from './status-panel';
|
|
12
12
|
import { ProviderSelect } from './cloud-components/provider-select';
|
|
13
|
+
import { CloudStorageDisclaimer } from './cloud-components/cloud-storage-disclaimer';
|
|
13
14
|
import { MAP_THUMBNAIL_DIMENSION, MAP_INFO_CHARACTER, dataTestIds } from '@kepler.gl/constants';
|
|
14
15
|
import { StyledModalContent, InputLight, TextAreaLight, StyledExportSection, StyledModalSection, StyledModalInputFootnote } from '../common/styled-components';
|
|
15
16
|
import ImagePreview from '../common/image-preview';
|
|
@@ -18,7 +19,7 @@ import { ModalFooter } from '../common/modal';
|
|
|
18
19
|
import { useCloudListProvider } from '../hooks/use-cloud-list-provider';
|
|
19
20
|
var StyledSaveMapModal = styled.div.attrs({
|
|
20
21
|
className: 'save-map-modal'
|
|
21
|
-
})(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .save-map-modal-content {\n min-height: 400px;\n flex-direction: column;\n }\n\n .description {\n width: 300px;\n }\n\n .image-preview-panel {\n width: 300px;\n\n .image-preview {\n padding: 0;\n }\n }\n\n .map-info-panel {\n flex-direction: column;\n }\n\n .save-map-modal-description {\n .modal-section-subtitle {\n margin-left: 6px;\n }\n }\n"])));
|
|
22
|
+
})(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n .save-map-modal-content {\n min-height: 400px;\n display: flex;\n flex-direction: column;\n }\n\n .description {\n width: 300px;\n }\n\n .image-preview-panel {\n width: 300px;\n\n .image-preview {\n padding: 0;\n }\n }\n\n .map-info-panel {\n flex-direction: column;\n }\n\n .save-map-modal-description {\n .modal-section-subtitle {\n margin-left: 6px;\n }\n }\n"])));
|
|
22
23
|
var StyledCompactExportSection = styled(StyledExportSection)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n margin: 5px 0;\n"])));
|
|
23
24
|
var nop = function nop() {
|
|
24
25
|
return;
|
|
@@ -160,7 +161,7 @@ function SaveMapModalFactory() {
|
|
|
160
161
|
isLoading: false,
|
|
161
162
|
error: providerError.message,
|
|
162
163
|
providerIcon: provider && provider.icon
|
|
163
|
-
}) : null)), /*#__PURE__*/React.createElement(ModalFooter, {
|
|
164
|
+
}) : null, /*#__PURE__*/React.createElement(CloudStorageDisclaimer, null))), /*#__PURE__*/React.createElement(ModalFooter, {
|
|
164
165
|
cancel: onCancel,
|
|
165
166
|
confirm: confirm,
|
|
166
167
|
confirmButton: confirmButton
|
|
@@ -169,4 +170,4 @@ function SaveMapModalFactory() {
|
|
|
169
170
|
return SaveMapModal;
|
|
170
171
|
}
|
|
171
172
|
export default SaveMapModalFactory;
|
|
172
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsInN0eWxlZCIsIkltYWdlTW9kYWxDb250YWluZXIiLCJGbGV4Q29udGFpbmVyIiwiU3RhdHVzUGFuZWwiLCJVcGxvYWRBbmltYXRpb24iLCJQcm92aWRlclNlbGVjdCIsIk1BUF9USFVNQk5BSUxfRElNRU5TSU9OIiwiTUFQX0lORk9fQ0hBUkFDVEVSIiwiZGF0YVRlc3RJZHMiLCJTdHlsZWRNb2RhbENvbnRlbnQiLCJJbnB1dExpZ2h0IiwiVGV4dEFyZWFMaWdodCIsIlN0eWxlZEV4cG9ydFNlY3Rpb24iLCJTdHlsZWRNb2RhbFNlY3Rpb24iLCJTdHlsZWRNb2RhbElucHV0Rm9vdG5vdGUiLCJJbWFnZVByZXZpZXciLCJGb3JtYXR0ZWRNZXNzYWdlIiwiTW9kYWxGb290ZXIiLCJ1c2VDbG91ZExpc3RQcm92aWRlciIsIlN0eWxlZFNhdmVNYXBNb2RhbCIsImRpdiIsImF0dHJzIiwiY2xhc3NOYW1lIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbCIsIlN0eWxlZENvbXBhY3RFeHBvcnRTZWN0aW9uIiwiX3RlbXBsYXRlT2JqZWN0MiIsIm5vcCIsIlRFWFRfQVJFQV9MSUdIVF9TVFlMRSIsInJlc2l6ZSIsIk1hcEluZm9QYW5lbCIsIl9yZWYiLCJtYXBJbmZvIiwiY2hhcmFjdGVyTGltaXRzIiwib25DaGFuZ2VJbnB1dCIsIl9tYXBJbmZvJGRlc2NyaXB0aW9uIiwiZGVzY3JpcHRpb24iLCJfbWFwSW5mbyR0aXRsZSIsInRpdGxlIiwiY3JlYXRlRWxlbWVudCIsInByb3ZpZGVyTWFwSW5mb1BhbmVsIiwiaWQiLCJ0eXBlIiwidmFsdWUiLCJvbkNoYW5nZSIsImUiLCJwbGFjZWhvbGRlciIsInJvd3MiLCJzdHlsZSIsImVycm9yIiwiQm9vbGVhbiIsImxlbmd0aCIsIk51bWJlciIsIlNhdmVNYXBIZWFkZXIiLCJfcmVmMiIsImNsb3VkUHJvdmlkZXJzIiwiU1RZTEVEX0VYUE9SVF9TRUNUSU9OX1NUWUxFIiwibWFyZ2luIiwiUFJPVklERVJfTUFOQUdFUl9VUkxfU1RZTEUiLCJ0ZXh0RGVjb3JhdGlvbiIsIlNhdmVNYXBNb2RhbEZhY3RvcnkiLCJTYXZlTWFwTW9kYWwiLCJfcmVmMyIsImV4cG9ydEltYWdlIiwiX3JlZjMkY2hhcmFjdGVyTGltaXRzIiwiaXNQcm92aWRlckxvYWRpbmciLCJwcm92aWRlckVycm9yIiwiX3JlZjMkb25VcGRhdGVJbWFnZVNlIiwib25VcGRhdGVJbWFnZVNldHRpbmciLCJjbGVhbnVwRXhwb3J0SW1hZ2UiLCJvblNldE1hcEluZm8iLCJvbkNhbmNlbCIsIm9uQ29uZmlybSIsIl91c2VDbG91ZExpc3RQcm92aWRlciIsInByb3ZpZGVyIiwia2V5IiwiX3JlZjQiLCJ0YXJnZXQiLCJfZGVmaW5lUHJvcGVydHkiLCJjb25maXJtQnV0dG9uIiwibGFyZ2UiLCJkaXNhYmxlZCIsImNoaWxkcmVuIiwiY29uZmlybSIsIkZyYWdtZW50IiwiZ2V0TWFuYWdlbWVudFVybCIsImhyZWYiLCJyZWwiLCJkaXNwbGF5TmFtZSIsIndpZHRoIiwic2hvd0RpbWVuc2lvbiIsInByb3ZpZGVyTG9hZGluZyIsImljb24iLCJpc0xvYWRpbmciLCJtZXNzYWdlIiwicHJvdmlkZXJJY29uIiwiY2FuY2VsIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGFscy9zYXZlLW1hcC1tb2RhbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlQ2FsbGJhY2ssIHVzZU1lbW99IGZyb20gJ3JlYWN0JztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IEltYWdlTW9kYWxDb250YWluZXIsIHtJbWFnZU1vZGFsQ29udGFpbmVyUHJvcHN9IGZyb20gJy4vaW1hZ2UtbW9kYWwtY29udGFpbmVyJztcbmltcG9ydCB7RmxleENvbnRhaW5lcn0gZnJvbSAnLi4vY29tbW9uL2ZsZXgtY29udGFpbmVyJztcbmltcG9ydCBTdGF0dXNQYW5lbCwge1VwbG9hZEFuaW1hdGlvbn0gZnJvbSAnLi9zdGF0dXMtcGFuZWwnO1xuaW1wb3J0IHtQcm92aWRlclNlbGVjdH0gZnJvbSAnLi9jbG91ZC1jb21wb25lbnRzL3Byb3ZpZGVyLXNlbGVjdCc7XG5pbXBvcnQge01BUF9USFVNQk5BSUxfRElNRU5TSU9OLCBNQVBfSU5GT19DSEFSQUNURVIsIGRhdGFUZXN0SWRzfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5cbmltcG9ydCB7XG4gIFN0eWxlZE1vZGFsQ29udGVudCxcbiAgSW5wdXRMaWdodCxcbiAgVGV4dEFyZWFMaWdodCxcbiAgU3R5bGVkRXhwb3J0U2VjdGlvbixcbiAgU3R5bGVkTW9kYWxTZWN0aW9uLFxuICBTdHlsZWRNb2RhbElucHV0Rm9vdG5vdGVcbn0gZnJvbSAnLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBJbWFnZVByZXZpZXcgZnJvbSAnLi4vY29tbW9uL2ltYWdlLXByZXZpZXcnO1xuaW1wb3J0IHtGb3JtYXR0ZWRNZXNzYWdlfSBmcm9tICdAa2VwbGVyLmdsL2xvY2FsaXphdGlvbic7XG5pbXBvcnQge01hcEluZm8sIEV4cG9ydEltYWdlfSBmcm9tICdAa2VwbGVyLmdsL3R5cGVzJztcbmltcG9ydCB7UHJvdmlkZXJ9IGZyb20gJ0BrZXBsZXIuZ2wvY2xvdWQtcHJvdmlkZXJzJztcbmltcG9ydCB7c2V0TWFwSW5mbywgY2xlYW51cEV4cG9ydEltYWdlIGFzIGNsZWFudXBFeHBvcnRJbWFnZUFjdGlvbn0gZnJvbSAnQGtlcGxlci5nbC9hY3Rpb25zJztcbmltcG9ydCB7TW9kYWxGb290ZXJ9IGZyb20gJy4uL2NvbW1vbi9tb2RhbCc7XG5pbXBvcnQge3VzZUNsb3VkTGlzdFByb3ZpZGVyfSBmcm9tICcuLi9ob29rcy91c2UtY2xvdWQtbGlzdC1wcm92aWRlcic7XG5cbmNvbnN0IFN0eWxlZFNhdmVNYXBNb2RhbCA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICdzYXZlLW1hcC1tb2RhbCdcbn0pYFxuICAuc2F2ZS1tYXAtbW9kYWwtY29udGVudCB7XG4gICAgbWluLWhlaWdodDogNDAwcHg7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuXG4gIC5kZXNjcmlwdGlvbiB7XG4gICAgd2lkdGg6IDMwMHB4O1xuICB9XG5cbiAgLmltYWdlLXByZXZpZXctcGFuZWwge1xuICAgIHdpZHRoOiAzMDBweDtcblxuICAgIC5pbWFnZS1wcmV2aWV3IHtcbiAgICAgIHBhZGRpbmc6IDA7XG4gICAgfVxuICB9XG5cbiAgLm1hcC1pbmZvLXBhbmVsIHtcbiAgICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICB9XG5cbiAgLnNhdmUtbWFwLW1vZGFsLWRlc2NyaXB0aW9uIHtcbiAgICAubW9kYWwtc2VjdGlvbi1zdWJ0aXRsZSB7XG4gICAgICBtYXJnaW4tbGVmdDogNnB4O1xuICAgIH1cbiAgfVxuYDtcblxuY29uc3QgU3R5bGVkQ29tcGFjdEV4cG9ydFNlY3Rpb24gPSBzdHlsZWQoU3R5bGVkRXhwb3J0U2VjdGlvbilgXG4gIG1hcmdpbjogNXB4IDA7XG5gO1xuXG5jb25zdCBub3AgPSAoKSA9PiB7XG4gIHJldHVybjtcbn07XG5jb25zdCBURVhUX0FSRUFfTElHSFRfU1RZTEUgPSB7cmVzaXplOiAnbm9uZSd9O1xuXG50eXBlIENoYXJhY3RlckxpbWl0cyA9IHtcbiAgdGl0bGU/OiBudW1iZXI7XG4gIGRlc2NyaXB0aW9uPzogbnVtYmVyO1xufTtcblxudHlwZSBTYXZlTWFwTW9kYWxQcm9wcyA9IHtcbiAgbWFwSW5mbzogTWFwSW5mbztcbiAgZXhwb3J0SW1hZ2U6IEV4cG9ydEltYWdlO1xuICBpc1Byb3ZpZGVyTG9hZGluZzogYm9vbGVhbjtcbiAgcHJvdmlkZXJFcnJvcj86IEVycm9yO1xuICBjaGFyYWN0ZXJMaW1pdHM/OiBDaGFyYWN0ZXJMaW1pdHM7XG5cbiAgLy8gY2FsbGJhY2tzXG4gIG9uVXBkYXRlSW1hZ2VTZXR0aW5nOiBJbWFnZU1vZGFsQ29udGFpbmVyUHJvcHNbJ29uVXBkYXRlSW1hZ2VTZXR0aW5nJ107XG4gIGNsZWFudXBFeHBvcnRJbWFnZTogdHlwZW9mIGNsZWFudXBFeHBvcnRJbWFnZUFjdGlvbjtcbiAgb25TZXRNYXBJbmZvOiB0eXBlb2Ygc2V0TWFwSW5mbztcbiAgb25Db25maXJtOiAocHJvdmlkZXI6IFByb3ZpZGVyKSA9PiB2b2lkO1xuICBvbkNhbmNlbDogKCkgPT4gdm9pZDtcbn07XG5cbnR5cGUgTWFwSW5mb1BhbmVsUHJvcHMgPSBQaWNrPFNhdmVNYXBNb2RhbFByb3BzLCAnbWFwSW5mbycgfCAnY2hhcmFjdGVyTGltaXRzJz4gJiB7XG4gIG9uQ2hhbmdlSW5wdXQ6IChcbiAgICB0eXBlOiBzdHJpbmcsXG4gICAgZXZlbnQ6IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxUZXh0QXJlYUVsZW1lbnQgfCBIVE1MSW5wdXRFbGVtZW50PlxuICApID0+IHZvaWQ7XG59O1xuXG5leHBvcnQgY29uc3QgTWFwSW5mb1BhbmVsOiBSZWFjdC5GQzxNYXBJbmZvUGFuZWxQcm9wcz4gPSAoe1xuICBtYXBJbmZvLFxuICBjaGFyYWN0ZXJMaW1pdHMsXG4gIG9uQ2hhbmdlSW5wdXRcbn0pID0+IHtcbiAgY29uc3Qge2Rlc2NyaXB0aW9uID0gJycsIHRpdGxlID0gJyd9ID0gbWFwSW5mbztcbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInNlbGVjdGlvbiBtYXAtaW5mby1wYW5lbFwiIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkcy5wcm92aWRlck1hcEluZm9QYW5lbH0+XG4gICAgICA8U3R5bGVkTW9kYWxTZWN0aW9uIGNsYXNzTmFtZT1cInNhdmUtbWFwLW1vZGFsLW5hbWVcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtb2RhbC1zZWN0aW9uLXRpdGxlXCI+TmFtZSo8L2Rpdj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8SW5wdXRMaWdodFxuICAgICAgICAgICAgaWQ9XCJtYXAtdGl0bGVcIlxuICAgICAgICAgICAgdHlwZT1cInRleHRcIlxuICAgICAgICAgICAgdmFsdWU9e3RpdGxlfVxuICAgICAgICAgICAgb25DaGFuZ2U9e2UgPT4gb25DaGFuZ2VJbnB1dCgndGl0bGUnLCBlKX1cbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiVHlwZSBtYXAgdGl0bGVcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9TdHlsZWRNb2RhbFNlY3Rpb24+XG4gICAgICA8U3R5bGVkTW9kYWxTZWN0aW9uPlxuICAgICAgICA8RmxleENvbnRhaW5lciBjbGFzc05hbWU9XCJzYXZlLW1hcC1tb2RhbC1kZXNjcmlwdGlvblwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibW9kYWwtc2VjdGlvbi10aXRsZVwiPkRlc2NyaXB0aW9uPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtb2RhbC1zZWN0aW9uLXN1YnRpdGxlXCI+KG9wdGlvbmFsKTwvZGl2PlxuICAgICAgICA8L0ZsZXhDb250YWluZXI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPFRleHRBcmVhTGlnaHRcbiAgICAgICAgICAgIHJvd3M9ezN9XG4gICAgICAgICAgICBpZD1cIm1hcC1kZXNjcmlwdGlvblwiXG4gICAgICAgICAgICBzdHlsZT17VEVYVF9BUkVBX0xJR0hUX1NUWUxFIGFzIFJlYWN0LkNTU1Byb3BlcnRpZXN9XG4gICAgICAgICAgICB2YWx1ZT17ZGVzY3JpcHRpb259XG4gICAgICAgICAgICBvbkNoYW5nZT17ZSA9PiBvbkNoYW5nZUlucHV0KCdkZXNjcmlwdGlvbicsIGUpfVxuICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJUeXBlIG1hcCBkZXNjcmlwdGlvblwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxTdHlsZWRNb2RhbElucHV0Rm9vdG5vdGVcbiAgICAgICAgICBlcnJvcj17XG4gICAgICAgICAgICBCb29sZWFuKGNoYXJhY3RlckxpbWl0cz8uZGVzY3JpcHRpb24pICYmXG4gICAgICAgICAgICBkZXNjcmlwdGlvbi5sZW5ndGggPiBOdW1iZXIoY2hhcmFjdGVyTGltaXRzPy5kZXNjcmlwdGlvbilcbiAgICAgICAgICB9XG4gICAgICAgID5cbiAgICAgICAgICB7ZGVzY3JpcHRpb24ubGVuZ3RofS97Y2hhcmFjdGVyTGltaXRzPy5kZXNjcmlwdGlvbiB8fCBNQVBfSU5GT19DSEFSQUNURVIuZGVzY3JpcHRpb259eycgJ31cbiAgICAgICAgICBjaGFyYWN0ZXJzXG4gICAgICAgIDwvU3R5bGVkTW9kYWxJbnB1dEZvb3Rub3RlPlxuICAgICAgPC9TdHlsZWRNb2RhbFNlY3Rpb24+XG4gICAgPC9kaXY+XG4gICk7XG59O1xuXG5jb25zdCBTYXZlTWFwSGVhZGVyID0gKHtjbG91ZFByb3ZpZGVyc30pID0+IHtcbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkRXhwb3J0U2VjdGlvbj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aXRsZVwiPlxuICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuc2F2ZU1hcC50aXRsZSd9IC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInN1YnRpdGxlXCI+XG4gICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5zYXZlTWFwLnN1YnRpdGxlJ30gLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxQcm92aWRlclNlbGVjdCBjbG91ZFByb3ZpZGVycz17Y2xvdWRQcm92aWRlcnN9IC8+XG4gICAgPC9TdHlsZWRFeHBvcnRTZWN0aW9uPlxuICApO1xufTtcblxuY29uc3QgU1RZTEVEX0VYUE9SVF9TRUNUSU9OX1NUWUxFID0ge21hcmdpbjogJzJweCAwJ307XG5jb25zdCBQUk9WSURFUl9NQU5BR0VSX1VSTF9TVFlMRSA9IHt0ZXh0RGVjb3JhdGlvbjogJ3VuZGVybGluZSd9O1xuXG5mdW5jdGlvbiBTYXZlTWFwTW9kYWxGYWN0b3J5KCkge1xuICBjb25zdCBTYXZlTWFwTW9kYWw6IFJlYWN0LkZDPFNhdmVNYXBNb2RhbFByb3BzPiA9ICh7XG4gICAgbWFwSW5mbyxcbiAgICBleHBvcnRJbWFnZSxcbiAgICBjaGFyYWN0ZXJMaW1pdHMgPSBNQVBfSU5GT19DSEFSQUNURVIsXG4gICAgaXNQcm92aWRlckxvYWRpbmcsXG4gICAgcHJvdmlkZXJFcnJvcixcbiAgICBvblVwZGF0ZUltYWdlU2V0dGluZyA9IG5vcCxcbiAgICBjbGVhbnVwRXhwb3J0SW1hZ2UsXG4gICAgb25TZXRNYXBJbmZvLFxuICAgIG9uQ2FuY2VsLFxuICAgIG9uQ29uZmlybVxuICB9KSA9PiB7XG4gICAgY29uc3Qge3Byb3ZpZGVyLCBjbG91ZFByb3ZpZGVyc30gPSB1c2VDbG91ZExpc3RQcm92aWRlcigpO1xuXG4gICAgY29uc3Qgb25DaGFuZ2VJbnB1dCA9IChcbiAgICAgIGtleTogc3RyaW5nLFxuICAgICAge3RhcmdldDoge3ZhbHVlfX06IFJlYWN0LkNoYW5nZUV2ZW50PEhUTUxUZXh0QXJlYUVsZW1lbnQgfCBIVE1MSW5wdXRFbGVtZW50PlxuICAgICkgPT4ge1xuICAgICAgb25TZXRNYXBJbmZvKHtba2V5XTogdmFsdWV9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgY29uZmlybUJ1dHRvbiA9IHVzZU1lbW8oXG4gICAgICAoKSA9PiAoe1xuICAgICAgICBsYXJnZTogdHJ1ZSxcbiAgICAgICAgZGlzYWJsZWQ6IEJvb2xlYW4oIShwcm92aWRlciAmJiBtYXBJbmZvLnRpdGxlKSksXG4gICAgICAgIGNoaWxkcmVuOiAnbW9kYWwuYnV0dG9uLnNhdmUnXG4gICAgICB9KSxcbiAgICAgIFtwcm92aWRlciwgbWFwSW5mb11cbiAgICApO1xuXG4gICAgY29uc3QgY29uZmlybSA9IHVzZUNhbGxiYWNrKCgpID0+IHtcbiAgICAgIGlmIChwcm92aWRlcikge1xuICAgICAgICBvbkNvbmZpcm0ocHJvdmlkZXIpO1xuICAgICAgfVxuICAgIH0sIFtvbkNvbmZpcm0sIHByb3ZpZGVyXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPEltYWdlTW9kYWxDb250YWluZXJcbiAgICAgICAgcHJvdmlkZXI9e3Byb3ZpZGVyfVxuICAgICAgICBvblVwZGF0ZUltYWdlU2V0dGluZz17b25VcGRhdGVJbWFnZVNldHRpbmd9XG4gICAgICAgIGNsZWFudXBFeHBvcnRJbWFnZT17Y2xlYW51cEV4cG9ydEltYWdlfVxuICAgICAgPlxuICAgICAgICA8U3R5bGVkU2F2ZU1hcE1vZGFsPlxuICAgICAgICAgIDxTdHlsZWRNb2RhbENvbnRlbnQgY2xhc3NOYW1lPVwic2F2ZS1tYXAtbW9kYWwtY29udGVudFwiPlxuICAgICAgICAgICAgPFNhdmVNYXBIZWFkZXIgY2xvdWRQcm92aWRlcnM9e2Nsb3VkUHJvdmlkZXJzfSAvPlxuICAgICAgICAgICAge3Byb3ZpZGVyICYmIChcbiAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICB7cHJvdmlkZXIuZ2V0TWFuYWdlbWVudFVybCA/IChcbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRFeHBvcnRTZWN0aW9uIHN0eWxlPXtTVFlMRURfRVhQT1JUX1NFQ1RJT05fU1RZTEV9PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNlbGVjdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9ezF9XG4gICAgICAgICAgICAgICAgICAgICAgICBocmVmPXtwcm92aWRlci5nZXRNYW5hZ2VtZW50VXJsKCl9XG4gICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17UFJPVklERVJfTUFOQUdFUl9VUkxfU1RZTEV9XG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgR28gdG8geW91ciBLZXBsZXIuZ2wge3Byb3ZpZGVyLmRpc3BsYXlOYW1lfSBwYWdlXG4gICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkRXhwb3J0U2VjdGlvbj5cbiAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICA8U3R5bGVkQ29tcGFjdEV4cG9ydFNlY3Rpb24+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRlc2NyaXB0aW9uIGltYWdlLXByZXZpZXctcGFuZWxcIj5cbiAgICAgICAgICAgICAgICAgICAgPEltYWdlUHJldmlld1xuICAgICAgICAgICAgICAgICAgICAgIGV4cG9ydEltYWdlPXtleHBvcnRJbWFnZX1cbiAgICAgICAgICAgICAgICAgICAgICB3aWR0aD17TUFQX1RIVU1CTkFJTF9ESU1FTlNJT04ud2lkdGh9XG4gICAgICAgICAgICAgICAgICAgICAgc2hvd0RpbWVuc2lvbj17ZmFsc2V9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIHtpc1Byb3ZpZGVyTG9hZGluZyA/IChcbiAgICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkcy5wcm92aWRlckxvYWRpbmd9XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwic2VsZWN0aW9uIG1hcC1zYXZpbmctYW5pbWF0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxVcGxvYWRBbmltYXRpb24gaWNvbj17cHJvdmlkZXIgJiYgcHJvdmlkZXIuaWNvbn0gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICA8TWFwSW5mb1BhbmVsXG4gICAgICAgICAgICAgICAgICAgICAgbWFwSW5mbz17bWFwSW5mb31cbiAgICAgICAgICAgICAgICAgICAgICBjaGFyYWN0ZXJMaW1pdHM9e2NoYXJhY3RlckxpbWl0c31cbiAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZUlucHV0PXtvbkNoYW5nZUlucHV0fVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L1N0eWxlZENvbXBhY3RFeHBvcnRTZWN0aW9uPlxuICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICB7cHJvdmlkZXJFcnJvciA/IChcbiAgICAgICAgICAgICAgPFN0YXR1c1BhbmVsXG4gICAgICAgICAgICAgICAgaXNMb2FkaW5nPXtmYWxzZX1cbiAgICAgICAgICAgICAgICBlcnJvcj17cHJvdmlkZXJFcnJvci5tZXNzYWdlfVxuICAgICAgICAgICAgICAgIHByb3ZpZGVySWNvbj17cHJvdmlkZXIgJiYgcHJvdmlkZXIuaWNvbn1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgIDwvU3R5bGVkTW9kYWxDb250ZW50PlxuICAgICAgICA8L1N0eWxlZFNhdmVNYXBNb2RhbD5cbiAgICAgICAgPE1vZGFsRm9vdGVyIGNhbmNlbD17b25DYW5jZWx9IGNvbmZpcm09e2NvbmZpcm19IGNvbmZpcm1CdXR0b249e2NvbmZpcm1CdXR0b259IC8+XG4gICAgICA8L0ltYWdlTW9kYWxDb250YWluZXI+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gU2F2ZU1hcE1vZGFsO1xufVxuXG5leHBvcnQgZGVm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
|
|
173
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUNhbGxiYWNrIiwidXNlTWVtbyIsInN0eWxlZCIsIkltYWdlTW9kYWxDb250YWluZXIiLCJGbGV4Q29udGFpbmVyIiwiU3RhdHVzUGFuZWwiLCJVcGxvYWRBbmltYXRpb24iLCJQcm92aWRlclNlbGVjdCIsIkNsb3VkU3RvcmFnZURpc2NsYWltZXIiLCJNQVBfVEhVTUJOQUlMX0RJTUVOU0lPTiIsIk1BUF9JTkZPX0NIQVJBQ1RFUiIsImRhdGFUZXN0SWRzIiwiU3R5bGVkTW9kYWxDb250ZW50IiwiSW5wdXRMaWdodCIsIlRleHRBcmVhTGlnaHQiLCJTdHlsZWRFeHBvcnRTZWN0aW9uIiwiU3R5bGVkTW9kYWxTZWN0aW9uIiwiU3R5bGVkTW9kYWxJbnB1dEZvb3Rub3RlIiwiSW1hZ2VQcmV2aWV3IiwiRm9ybWF0dGVkTWVzc2FnZSIsIk1vZGFsRm9vdGVyIiwidXNlQ2xvdWRMaXN0UHJvdmlkZXIiLCJTdHlsZWRTYXZlTWFwTW9kYWwiLCJkaXYiLCJhdHRycyIsImNsYXNzTmFtZSIsIl90ZW1wbGF0ZU9iamVjdCIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwiLCJTdHlsZWRDb21wYWN0RXhwb3J0U2VjdGlvbiIsIl90ZW1wbGF0ZU9iamVjdDIiLCJub3AiLCJURVhUX0FSRUFfTElHSFRfU1RZTEUiLCJyZXNpemUiLCJNYXBJbmZvUGFuZWwiLCJfcmVmIiwibWFwSW5mbyIsImNoYXJhY3RlckxpbWl0cyIsIm9uQ2hhbmdlSW5wdXQiLCJfbWFwSW5mbyRkZXNjcmlwdGlvbiIsImRlc2NyaXB0aW9uIiwiX21hcEluZm8kdGl0bGUiLCJ0aXRsZSIsImNyZWF0ZUVsZW1lbnQiLCJwcm92aWRlck1hcEluZm9QYW5lbCIsImlkIiwidHlwZSIsInZhbHVlIiwib25DaGFuZ2UiLCJlIiwicGxhY2Vob2xkZXIiLCJyb3dzIiwic3R5bGUiLCJlcnJvciIsIkJvb2xlYW4iLCJsZW5ndGgiLCJOdW1iZXIiLCJTYXZlTWFwSGVhZGVyIiwiX3JlZjIiLCJjbG91ZFByb3ZpZGVycyIsIlNUWUxFRF9FWFBPUlRfU0VDVElPTl9TVFlMRSIsIm1hcmdpbiIsIlBST1ZJREVSX01BTkFHRVJfVVJMX1NUWUxFIiwidGV4dERlY29yYXRpb24iLCJTYXZlTWFwTW9kYWxGYWN0b3J5IiwiU2F2ZU1hcE1vZGFsIiwiX3JlZjMiLCJleHBvcnRJbWFnZSIsIl9yZWYzJGNoYXJhY3RlckxpbWl0cyIsImlzUHJvdmlkZXJMb2FkaW5nIiwicHJvdmlkZXJFcnJvciIsIl9yZWYzJG9uVXBkYXRlSW1hZ2VTZSIsIm9uVXBkYXRlSW1hZ2VTZXR0aW5nIiwiY2xlYW51cEV4cG9ydEltYWdlIiwib25TZXRNYXBJbmZvIiwib25DYW5jZWwiLCJvbkNvbmZpcm0iLCJfdXNlQ2xvdWRMaXN0UHJvdmlkZXIiLCJwcm92aWRlciIsImtleSIsIl9yZWY0IiwidGFyZ2V0IiwiX2RlZmluZVByb3BlcnR5IiwiY29uZmlybUJ1dHRvbiIsImxhcmdlIiwiZGlzYWJsZWQiLCJjaGlsZHJlbiIsImNvbmZpcm0iLCJGcmFnbWVudCIsImdldE1hbmFnZW1lbnRVcmwiLCJocmVmIiwicmVsIiwiZGlzcGxheU5hbWUiLCJ3aWR0aCIsInNob3dEaW1lbnNpb24iLCJwcm92aWRlckxvYWRpbmciLCJpY29uIiwiaXNMb2FkaW5nIiwibWVzc2FnZSIsInByb3ZpZGVySWNvbiIsImNhbmNlbCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RhbHMvc2F2ZS1tYXAtbW9kYWwudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZUNhbGxiYWNrLCB1c2VNZW1vfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBJbWFnZU1vZGFsQ29udGFpbmVyLCB7SW1hZ2VNb2RhbENvbnRhaW5lclByb3BzfSBmcm9tICcuL2ltYWdlLW1vZGFsLWNvbnRhaW5lcic7XG5pbXBvcnQge0ZsZXhDb250YWluZXJ9IGZyb20gJy4uL2NvbW1vbi9mbGV4LWNvbnRhaW5lcic7XG5pbXBvcnQgU3RhdHVzUGFuZWwsIHtVcGxvYWRBbmltYXRpb259IGZyb20gJy4vc3RhdHVzLXBhbmVsJztcbmltcG9ydCB7UHJvdmlkZXJTZWxlY3R9IGZyb20gJy4vY2xvdWQtY29tcG9uZW50cy9wcm92aWRlci1zZWxlY3QnO1xuaW1wb3J0IHtDbG91ZFN0b3JhZ2VEaXNjbGFpbWVyfSBmcm9tICcuL2Nsb3VkLWNvbXBvbmVudHMvY2xvdWQtc3RvcmFnZS1kaXNjbGFpbWVyJztcbmltcG9ydCB7TUFQX1RIVU1CTkFJTF9ESU1FTlNJT04sIE1BUF9JTkZPX0NIQVJBQ1RFUiwgZGF0YVRlc3RJZHN9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcblxuaW1wb3J0IHtcbiAgU3R5bGVkTW9kYWxDb250ZW50LFxuICBJbnB1dExpZ2h0LFxuICBUZXh0QXJlYUxpZ2h0LFxuICBTdHlsZWRFeHBvcnRTZWN0aW9uLFxuICBTdHlsZWRNb2RhbFNlY3Rpb24sXG4gIFN0eWxlZE1vZGFsSW5wdXRGb290bm90ZVxufSBmcm9tICcuLi9jb21tb24vc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IEltYWdlUHJldmlldyBmcm9tICcuLi9jb21tb24vaW1hZ2UtcHJldmlldyc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcbmltcG9ydCB7TWFwSW5mbywgRXhwb3J0SW1hZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IHtQcm92aWRlcn0gZnJvbSAnQGtlcGxlci5nbC9jbG91ZC1wcm92aWRlcnMnO1xuaW1wb3J0IHtzZXRNYXBJbmZvLCBjbGVhbnVwRXhwb3J0SW1hZ2UgYXMgY2xlYW51cEV4cG9ydEltYWdlQWN0aW9ufSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuaW1wb3J0IHtNb2RhbEZvb3Rlcn0gZnJvbSAnLi4vY29tbW9uL21vZGFsJztcbmltcG9ydCB7dXNlQ2xvdWRMaXN0UHJvdmlkZXJ9IGZyb20gJy4uL2hvb2tzL3VzZS1jbG91ZC1saXN0LXByb3ZpZGVyJztcblxuY29uc3QgU3R5bGVkU2F2ZU1hcE1vZGFsID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ3NhdmUtbWFwLW1vZGFsJ1xufSlgXG4gIC5zYXZlLW1hcC1tb2RhbC1jb250ZW50IHtcbiAgICBtaW4taGVpZ2h0OiA0MDBweDtcbiAgICBkaXNwbGF5OiBmbGV4O1xuICAgIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG4gIH1cblxuICAuZGVzY3JpcHRpb24ge1xuICAgIHdpZHRoOiAzMDBweDtcbiAgfVxuXG4gIC5pbWFnZS1wcmV2aWV3LXBhbmVsIHtcbiAgICB3aWR0aDogMzAwcHg7XG5cbiAgICAuaW1hZ2UtcHJldmlldyB7XG4gICAgICBwYWRkaW5nOiAwO1xuICAgIH1cbiAgfVxuXG4gIC5tYXAtaW5mby1wYW5lbCB7XG4gICAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgfVxuXG4gIC5zYXZlLW1hcC1tb2RhbC1kZXNjcmlwdGlvbiB7XG4gICAgLm1vZGFsLXNlY3Rpb24tc3VidGl0bGUge1xuICAgICAgbWFyZ2luLWxlZnQ6IDZweDtcbiAgICB9XG4gIH1cbmA7XG5cbmNvbnN0IFN0eWxlZENvbXBhY3RFeHBvcnRTZWN0aW9uID0gc3R5bGVkKFN0eWxlZEV4cG9ydFNlY3Rpb24pYFxuICBtYXJnaW46IDVweCAwO1xuYDtcblxuY29uc3Qgbm9wID0gKCkgPT4ge1xuICByZXR1cm47XG59O1xuY29uc3QgVEVYVF9BUkVBX0xJR0hUX1NUWUxFID0ge3Jlc2l6ZTogJ25vbmUnfTtcblxudHlwZSBDaGFyYWN0ZXJMaW1pdHMgPSB7XG4gIHRpdGxlPzogbnVtYmVyO1xuICBkZXNjcmlwdGlvbj86IG51bWJlcjtcbn07XG5cbnR5cGUgU2F2ZU1hcE1vZGFsUHJvcHMgPSB7XG4gIG1hcEluZm86IE1hcEluZm87XG4gIGV4cG9ydEltYWdlOiBFeHBvcnRJbWFnZTtcbiAgaXNQcm92aWRlckxvYWRpbmc6IGJvb2xlYW47XG4gIHByb3ZpZGVyRXJyb3I/OiBFcnJvcjtcbiAgY2hhcmFjdGVyTGltaXRzPzogQ2hhcmFjdGVyTGltaXRzO1xuXG4gIC8vIGNhbGxiYWNrc1xuICBvblVwZGF0ZUltYWdlU2V0dGluZzogSW1hZ2VNb2RhbENvbnRhaW5lclByb3BzWydvblVwZGF0ZUltYWdlU2V0dGluZyddO1xuICBjbGVhbnVwRXhwb3J0SW1hZ2U6IHR5cGVvZiBjbGVhbnVwRXhwb3J0SW1hZ2VBY3Rpb247XG4gIG9uU2V0TWFwSW5mbzogdHlwZW9mIHNldE1hcEluZm87XG4gIG9uQ29uZmlybTogKHByb3ZpZGVyOiBQcm92aWRlcikgPT4gdm9pZDtcbiAgb25DYW5jZWw6ICgpID0+IHZvaWQ7XG59O1xuXG50eXBlIE1hcEluZm9QYW5lbFByb3BzID0gUGljazxTYXZlTWFwTW9kYWxQcm9wcywgJ21hcEluZm8nIHwgJ2NoYXJhY3RlckxpbWl0cyc+ICYge1xuICBvbkNoYW5nZUlucHV0OiAoXG4gICAgdHlwZTogc3RyaW5nLFxuICAgIGV2ZW50OiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MVGV4dEFyZWFFbGVtZW50IHwgSFRNTElucHV0RWxlbWVudD5cbiAgKSA9PiB2b2lkO1xufTtcblxuZXhwb3J0IGNvbnN0IE1hcEluZm9QYW5lbDogUmVhY3QuRkM8TWFwSW5mb1BhbmVsUHJvcHM+ID0gKHtcbiAgbWFwSW5mbyxcbiAgY2hhcmFjdGVyTGltaXRzLFxuICBvbkNoYW5nZUlucHV0XG59KSA9PiB7XG4gIGNvbnN0IHtkZXNjcmlwdGlvbiA9ICcnLCB0aXRsZSA9ICcnfSA9IG1hcEluZm87XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJzZWxlY3Rpb24gbWFwLWluZm8tcGFuZWxcIiBkYXRhLXRlc3RpZD17ZGF0YVRlc3RJZHMucHJvdmlkZXJNYXBJbmZvUGFuZWx9PlxuICAgICAgPFN0eWxlZE1vZGFsU2VjdGlvbiBjbGFzc05hbWU9XCJzYXZlLW1hcC1tb2RhbC1uYW1lXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibW9kYWwtc2VjdGlvbi10aXRsZVwiPk5hbWUqPC9kaXY+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPElucHV0TGlnaHRcbiAgICAgICAgICAgIGlkPVwibWFwLXRpdGxlXCJcbiAgICAgICAgICAgIHR5cGU9XCJ0ZXh0XCJcbiAgICAgICAgICAgIHZhbHVlPXt0aXRsZX1cbiAgICAgICAgICAgIG9uQ2hhbmdlPXtlID0+IG9uQ2hhbmdlSW5wdXQoJ3RpdGxlJywgZSl9XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlR5cGUgbWFwIHRpdGxlXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvU3R5bGVkTW9kYWxTZWN0aW9uPlxuICAgICAgPFN0eWxlZE1vZGFsU2VjdGlvbj5cbiAgICAgICAgPEZsZXhDb250YWluZXIgY2xhc3NOYW1lPVwic2F2ZS1tYXAtbW9kYWwtZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1vZGFsLXNlY3Rpb24tdGl0bGVcIj5EZXNjcmlwdGlvbjwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibW9kYWwtc2VjdGlvbi1zdWJ0aXRsZVwiPihvcHRpb25hbCk8L2Rpdj5cbiAgICAgICAgPC9GbGV4Q29udGFpbmVyPlxuICAgICAgICA8ZGl2PlxuICAgICAgICAgIDxUZXh0QXJlYUxpZ2h0XG4gICAgICAgICAgICByb3dzPXszfVxuICAgICAgICAgICAgaWQ9XCJtYXAtZGVzY3JpcHRpb25cIlxuICAgICAgICAgICAgc3R5bGU9e1RFWFRfQVJFQV9MSUdIVF9TVFlMRSBhcyBSZWFjdC5DU1NQcm9wZXJ0aWVzfVxuICAgICAgICAgICAgdmFsdWU9e2Rlc2NyaXB0aW9ufVxuICAgICAgICAgICAgb25DaGFuZ2U9e2UgPT4gb25DaGFuZ2VJbnB1dCgnZGVzY3JpcHRpb24nLCBlKX1cbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiVHlwZSBtYXAgZGVzY3JpcHRpb25cIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8U3R5bGVkTW9kYWxJbnB1dEZvb3Rub3RlXG4gICAgICAgICAgZXJyb3I9e1xuICAgICAgICAgICAgQm9vbGVhbihjaGFyYWN0ZXJMaW1pdHM/LmRlc2NyaXB0aW9uKSAmJlxuICAgICAgICAgICAgZGVzY3JpcHRpb24ubGVuZ3RoID4gTnVtYmVyKGNoYXJhY3RlckxpbWl0cz8uZGVzY3JpcHRpb24pXG4gICAgICAgICAgfVxuICAgICAgICA+XG4gICAgICAgICAge2Rlc2NyaXB0aW9uLmxlbmd0aH0ve2NoYXJhY3RlckxpbWl0cz8uZGVzY3JpcHRpb24gfHwgTUFQX0lORk9fQ0hBUkFDVEVSLmRlc2NyaXB0aW9ufXsnICd9XG4gICAgICAgICAgY2hhcmFjdGVyc1xuICAgICAgICA8L1N0eWxlZE1vZGFsSW5wdXRGb290bm90ZT5cbiAgICAgIDwvU3R5bGVkTW9kYWxTZWN0aW9uPlxuICAgIDwvZGl2PlxuICApO1xufTtcblxuY29uc3QgU2F2ZU1hcEhlYWRlciA9ICh7Y2xvdWRQcm92aWRlcnN9KSA9PiB7XG4gIHJldHVybiAoXG4gICAgPFN0eWxlZEV4cG9ydFNlY3Rpb24+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGl0bGVcIj5cbiAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLnNhdmVNYXAudGl0bGUnfSAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzdWJ0aXRsZVwiPlxuICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuc2F2ZU1hcC5zdWJ0aXRsZSd9IC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8UHJvdmlkZXJTZWxlY3QgY2xvdWRQcm92aWRlcnM9e2Nsb3VkUHJvdmlkZXJzfSAvPlxuICAgIDwvU3R5bGVkRXhwb3J0U2VjdGlvbj5cbiAgKTtcbn07XG5cbmNvbnN0IFNUWUxFRF9FWFBPUlRfU0VDVElPTl9TVFlMRSA9IHttYXJnaW46ICcycHggMCd9O1xuY29uc3QgUFJPVklERVJfTUFOQUdFUl9VUkxfU1RZTEUgPSB7dGV4dERlY29yYXRpb246ICd1bmRlcmxpbmUnfTtcblxuZnVuY3Rpb24gU2F2ZU1hcE1vZGFsRmFjdG9yeSgpIHtcbiAgY29uc3QgU2F2ZU1hcE1vZGFsOiBSZWFjdC5GQzxTYXZlTWFwTW9kYWxQcm9wcz4gPSAoe1xuICAgIG1hcEluZm8sXG4gICAgZXhwb3J0SW1hZ2UsXG4gICAgY2hhcmFjdGVyTGltaXRzID0gTUFQX0lORk9fQ0hBUkFDVEVSLFxuICAgIGlzUHJvdmlkZXJMb2FkaW5nLFxuICAgIHByb3ZpZGVyRXJyb3IsXG4gICAgb25VcGRhdGVJbWFnZVNldHRpbmcgPSBub3AsXG4gICAgY2xlYW51cEV4cG9ydEltYWdlLFxuICAgIG9uU2V0TWFwSW5mbyxcbiAgICBvbkNhbmNlbCxcbiAgICBvbkNvbmZpcm1cbiAgfSkgPT4ge1xuICAgIGNvbnN0IHtwcm92aWRlciwgY2xvdWRQcm92aWRlcnN9ID0gdXNlQ2xvdWRMaXN0UHJvdmlkZXIoKTtcblxuICAgIGNvbnN0IG9uQ2hhbmdlSW5wdXQgPSAoXG4gICAgICBrZXk6IHN0cmluZyxcbiAgICAgIHt0YXJnZXQ6IHt2YWx1ZX19OiBSZWFjdC5DaGFuZ2VFdmVudDxIVE1MVGV4dEFyZWFFbGVtZW50IHwgSFRNTElucHV0RWxlbWVudD5cbiAgICApID0+IHtcbiAgICAgIG9uU2V0TWFwSW5mbyh7W2tleV06IHZhbHVlfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGNvbmZpcm1CdXR0b24gPSB1c2VNZW1vKFxuICAgICAgKCkgPT4gKHtcbiAgICAgICAgbGFyZ2U6IHRydWUsXG4gICAgICAgIGRpc2FibGVkOiBCb29sZWFuKCEocHJvdmlkZXIgJiYgbWFwSW5mby50aXRsZSkpLFxuICAgICAgICBjaGlsZHJlbjogJ21vZGFsLmJ1dHRvbi5zYXZlJ1xuICAgICAgfSksXG4gICAgICBbcHJvdmlkZXIsIG1hcEluZm9dXG4gICAgKTtcblxuICAgIGNvbnN0IGNvbmZpcm0gPSB1c2VDYWxsYmFjaygoKSA9PiB7XG4gICAgICBpZiAocHJvdmlkZXIpIHtcbiAgICAgICAgb25Db25maXJtKHByb3ZpZGVyKTtcbiAgICAgIH1cbiAgICB9LCBbb25Db25maXJtLCBwcm92aWRlcl0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxJbWFnZU1vZGFsQ29udGFpbmVyXG4gICAgICAgIHByb3ZpZGVyPXtwcm92aWRlcn1cbiAgICAgICAgb25VcGRhdGVJbWFnZVNldHRpbmc9e29uVXBkYXRlSW1hZ2VTZXR0aW5nfVxuICAgICAgICBjbGVhbnVwRXhwb3J0SW1hZ2U9e2NsZWFudXBFeHBvcnRJbWFnZX1cbiAgICAgID5cbiAgICAgICAgPFN0eWxlZFNhdmVNYXBNb2RhbD5cbiAgICAgICAgICA8U3R5bGVkTW9kYWxDb250ZW50IGNsYXNzTmFtZT1cInNhdmUtbWFwLW1vZGFsLWNvbnRlbnRcIj5cbiAgICAgICAgICAgIDxTYXZlTWFwSGVhZGVyIGNsb3VkUHJvdmlkZXJzPXtjbG91ZFByb3ZpZGVyc30gLz5cbiAgICAgICAgICAgIHtwcm92aWRlciAmJiAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAge3Byb3ZpZGVyLmdldE1hbmFnZW1lbnRVcmwgPyAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkRXhwb3J0U2VjdGlvbiBzdHlsZT17U1RZTEVEX0VYUE9SVF9TRUNUSU9OX1NUWUxFfT5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWxlY3Rpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgICAgICAgICAga2V5PXsxfVxuICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj17cHJvdmlkZXIuZ2V0TWFuYWdlbWVudFVybCgpfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e1BST1ZJREVSX01BTkFHRVJfVVJMX1NUWUxFfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIEdvIHRvIHlvdXIgS2VwbGVyLmdsIHtwcm92aWRlci5kaXNwbGF5TmFtZX0gcGFnZVxuICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L1N0eWxlZEV4cG9ydFNlY3Rpb24+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAgPFN0eWxlZENvbXBhY3RFeHBvcnRTZWN0aW9uPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkZXNjcmlwdGlvbiBpbWFnZS1wcmV2aWV3LXBhbmVsXCI+XG4gICAgICAgICAgICAgICAgICAgIDxJbWFnZVByZXZpZXdcbiAgICAgICAgICAgICAgICAgICAgICBleHBvcnRJbWFnZT17ZXhwb3J0SW1hZ2V9XG4gICAgICAgICAgICAgICAgICAgICAgd2lkdGg9e01BUF9USFVNQk5BSUxfRElNRU5TSU9OLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgIHNob3dEaW1lbnNpb249e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICB7aXNQcm92aWRlckxvYWRpbmcgPyAoXG4gICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICBkYXRhLXRlc3RpZD17ZGF0YVRlc3RJZHMucHJvdmlkZXJMb2FkaW5nfVxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInNlbGVjdGlvbiBtYXAtc2F2aW5nLWFuaW1hdGlvblwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8VXBsb2FkQW5pbWF0aW9uIGljb249e3Byb3ZpZGVyICYmIHByb3ZpZGVyLmljb259IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgPE1hcEluZm9QYW5lbFxuICAgICAgICAgICAgICAgICAgICAgIG1hcEluZm89e21hcEluZm99XG4gICAgICAgICAgICAgICAgICAgICAgY2hhcmFjdGVyTGltaXRzPXtjaGFyYWN0ZXJMaW1pdHN9XG4gICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2VJbnB1dD17b25DaGFuZ2VJbnB1dH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRDb21wYWN0RXhwb3J0U2VjdGlvbj5cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApfVxuICAgICAgICAgICAge3Byb3ZpZGVyRXJyb3IgPyAoXG4gICAgICAgICAgICAgIDxTdGF0dXNQYW5lbFxuICAgICAgICAgICAgICAgIGlzTG9hZGluZz17ZmFsc2V9XG4gICAgICAgICAgICAgICAgZXJyb3I9e3Byb3ZpZGVyRXJyb3IubWVzc2FnZX1cbiAgICAgICAgICAgICAgICBwcm92aWRlckljb249e3Byb3ZpZGVyICYmIHByb3ZpZGVyLmljb259XG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxDbG91ZFN0b3JhZ2VEaXNjbGFpbWVyIC8+XG4gICAgICAgICAgPC9TdHlsZWRNb2RhbENvbnRlbnQ+XG4gICAgICAgIDwvU3R5bGVkU2F2ZU1hcE1vZGFsPlxuICAgICAgICA8TW9kYWxGb290ZXIgY2FuY2VsPXtvbkNhbmNlbH0gY29uZmlybT17Y29uZmlybX0gY29uZmlybUJ1dHRvbj17Y29uZmlybUJ1dHRvbn0gLz5cbiAgICAgIDwvSW1hZ2VNb2RhbENvbnRhaW5lcj5cbiAgICApO1xuICB9O1xuXG4gIHJldHVybiBTYXZlTWFwTW9kYWw7XG59XG5cbmV4cG9ydCBkZWZhdWx0IFNhdmVNYXBNb2RhbEZhY3Rvcnk7XG4iXSwibWFwcGluZ3MiOiI7OztBQUFBO0FBQ0E7O0FBRUEsT0FBT0EsS0FBSyxJQUFHQyxXQUFXLEVBQUVDLE9BQU8sUUFBTyxPQUFPO0FBQ2pELE9BQU9DLE1BQU0sTUFBTSxtQkFBbUI7QUFDdEMsT0FBT0MsbUJBQW1CLE1BQWtDLHlCQUF5QjtBQUNyRixTQUFRQyxhQUFhLFFBQU8sMEJBQTBCO0FBQ3RELE9BQU9DLFdBQVcsSUFBR0MsZUFBZSxRQUFPLGdCQUFnQjtBQUMzRCxTQUFRQyxjQUFjLFFBQU8sb0NBQW9DO0FBQ2pFLFNBQVFDLHNCQUFzQixRQUFPLDZDQUE2QztBQUNsRixTQUFRQyx1QkFBdUIsRUFBRUMsa0JBQWtCLEVBQUVDLFdBQVcsUUFBTyxzQkFBc0I7QUFFN0YsU0FDRUMsa0JBQWtCLEVBQ2xCQyxVQUFVLEVBQ1ZDLGFBQWEsRUFDYkMsbUJBQW1CLEVBQ25CQyxrQkFBa0IsRUFDbEJDLHdCQUF3QixRQUNuQiw2QkFBNkI7QUFDcEMsT0FBT0MsWUFBWSxNQUFNLHlCQUF5QjtBQUNsRCxTQUFRQyxnQkFBZ0IsUUFBTyx5QkFBeUI7QUFJeEQsU0FBUUMsV0FBVyxRQUFPLGlCQUFpQjtBQUMzQyxTQUFRQyxvQkFBb0IsUUFBTyxrQ0FBa0M7QUFFckUsSUFBTUMsa0JBQWtCLEdBQUdwQixNQUFNLENBQUNxQixHQUFHLENBQUNDLEtBQUssQ0FBQztFQUMxQ0MsU0FBUyxFQUFFO0FBQ2IsQ0FBQyxDQUFDLENBQUFDLGVBQUEsS0FBQUEsZUFBQSxHQUFBQyxzQkFBQSx1YUE0QkQ7QUFFRCxJQUFNQywwQkFBMEIsR0FBRzFCLE1BQU0sQ0FB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
|
|
@@ -14,6 +14,7 @@ import StatusPanel from './status-panel';
|
|
|
14
14
|
import { FormattedMessage } from '@kepler.gl/localization';
|
|
15
15
|
import { useCloudListProvider } from '../hooks/use-cloud-list-provider';
|
|
16
16
|
import { ProviderSelect } from './cloud-components/provider-select';
|
|
17
|
+
import { CloudStorageDisclaimer } from './cloud-components/cloud-storage-disclaimer';
|
|
17
18
|
import { dataTestIds } from '@kepler.gl/constants';
|
|
18
19
|
export var StyledInputLabel = styled.label(_templateObject || (_templateObject = _taggedTemplateLiteral(["\n font-size: 12px;\n color: ", ";\n letter-spacing: 0.2px;\n"])), function (props) {
|
|
19
20
|
return props.theme.textColorLT;
|
|
@@ -49,8 +50,8 @@ export var SharingUrl = function SharingUrl(_ref) {
|
|
|
49
50
|
var nop = function nop() {
|
|
50
51
|
return;
|
|
51
52
|
};
|
|
52
|
-
var StyledShareMapModal = styled(StyledModalContent)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n padding: 24px 72px 40px 72px;\n margin: 0 -72px -40px -72px;\n display: flex;\n flex-direction: column;\n"])));
|
|
53
|
-
var StyledInnerDiv = styled.div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n
|
|
53
|
+
var StyledShareMapModal = styled(StyledModalContent)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n padding: 24px 72px 40px 72px;\n margin: 0 -72px -40px -72px;\n display: flex;\n flex-direction: column;\n min-height: 500px;\n"])));
|
|
54
|
+
var StyledInnerDiv = styled.div(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n flex: 1;\n"])));
|
|
54
55
|
var UNDERLINE_TEXT_DECORATION_STYLE = {
|
|
55
56
|
textDecoration: 'underline'
|
|
56
57
|
};
|
|
@@ -153,8 +154,8 @@ export default function ShareMapUrlModalFactory() {
|
|
|
153
154
|
target: "_blank",
|
|
154
155
|
rel: "noopener noreferrer",
|
|
155
156
|
style: UNDERLINE_TEXT_DECORATION_STYLE
|
|
156
|
-
}, provider.name)))) : null)));
|
|
157
|
+
}, provider.name)))) : null, /*#__PURE__*/React.createElement(CloudStorageDisclaimer, null))));
|
|
157
158
|
};
|
|
158
159
|
return ShareMapUrlModal;
|
|
159
160
|
}
|
|
160
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUVmZmVjdCIsInVzZVN0YXRlIiwidXNlTWVtbyIsInN0eWxlZCIsIlRoZW1lUHJvdmlkZXIiLCJDb3B5VG9DbGlwYm9hcmQiLCJ0aGVtZUxUIiwiSW1hZ2VNb2RhbENvbnRhaW5lciIsIlN0eWxlZE1vZGFsQ29udGVudCIsIlN0eWxlZEV4cG9ydFNlY3Rpb24iLCJJbnB1dExpZ2h0IiwiQnV0dG9uIiwiU3RhdHVzUGFuZWwiLCJGb3JtYXR0ZWRNZXNzYWdlIiwidXNlQ2xvdWRMaXN0UHJvdmlkZXIiLCJQcm92aWRlclNlbGVjdCIsImRhdGFUZXN0SWRzIiwiU3R5bGVkSW5wdXRMYWJlbCIsImxhYmVsIiwiX3RlbXBsYXRlT2JqZWN0IiwiX3RhZ2dlZFRlbXBsYXRlTGl0ZXJhbCIsInByb3BzIiwidGhlbWUiLCJ0ZXh0Q29sb3JMVCIsIlN0eWxlU2hhcmluZ1VybCIsImRpdiIsImF0dHJzIiwiY2xhc3NOYW1lIiwiX3RlbXBsYXRlT2JqZWN0MiIsIlNoYXJpbmdVcmwiLCJfcmVmIiwidXJsIiwiX3JlZiRtZXNzYWdlIiwibWVzc2FnZSIsIl91c2VTdGF0ZSIsIl91c2VTdGF0ZTIiLCJfc2xpY2VkVG9BcnJheSIsImNvcGllZCIsInNldENvcHkiLCJjcmVhdGVFbGVtZW50Iiwic3R5bGUiLCJkaXNwbGF5IiwidHlwZSIsInZhbHVlIiwicmVhZE9ubHkiLCJ0ZXh0Iiwib25Db3B5Iiwid2lkdGgiLCJub3AiLCJTdHlsZWRTaGFyZU1hcE1vZGFsIiwiX3RlbXBsYXRlT2JqZWN0MyIsIlN0eWxlZElubmVyRGl2IiwiX3RlbXBsYXRlT2JqZWN0NCIsIlVOREVSTElORV9URVhUX0RFQ09SQVRJT05fU1RZTEUiLCJ0ZXh0RGVjb3JhdGlvbiIsIlNoYXJlTWFwSGVhZGVyIiwiX3JlZjIiLCJjbG91ZFByb3ZpZGVycyIsInNoYXJlYWJsZUNsb3VkUHJvdmlkZXJzIiwiZmlsdGVyIiwiY3AiLCJoYXNTaGFyaW5nVXJsIiwiaWQiLCJTaGFyZU1hcFVybE1vZGFsRmFjdG9yeSIsIlNoYXJlTWFwVXJsTW9kYWwiLCJfcmVmMyIsIl9yZWYzJGlzUHJvdmlkZXJMb2FkaSIsImlzUHJvdmlkZXJMb2FkaW5nIiwiX3JlZjMkb25FeHBvcnQiLCJvbkV4cG9ydCIsIl9yZWYzJHByb3ZpZGVyRXJyb3IiLCJwcm92aWRlckVycm9yIiwiX3JlZjMkc3VjY2Vzc0luZm8iLCJzdWNjZXNzSW5mbyIsIl9yZWYzJG9uVXBkYXRlSW1hZ2VTZSIsIm9uVXBkYXRlSW1hZ2VTZXR0aW5nIiwiY2xlYW51cEV4cG9ydEltYWdlIiwiX3VzZUNsb3VkTGlzdFByb3ZpZGVyIiwicHJvdmlkZXIiLCJzaGFyZVVybCIsImZvbGRlckxpbmsiLCJwcm92aWRlclNoYXJlTWFwIiwiZGlzYWJsZWQiLCJpc0xvYWRpbmciLCJlcnJvciIsInByb3ZpZGVySWNvbiIsImljb24iLCJrZXkiLCJocmVmIiwidGFyZ2V0IiwicmVsIiwibmFtZSJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9tb2RhbHMvc2hhcmUtbWFwLW1vZGFsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogTUlUXG4vLyBDb3B5cmlnaHQgY29udHJpYnV0b3JzIHRvIHRoZSBrZXBsZXIuZ2wgcHJvamVjdFxuXG5pbXBvcnQgUmVhY3QsIHt1c2VFZmZlY3QsIHVzZVN0YXRlLCB1c2VNZW1vfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkLCB7VGhlbWVQcm92aWRlcn0gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IHtDb3B5VG9DbGlwYm9hcmR9IGZyb20gJ3JlYWN0LWNvcHktdG8tY2xpcGJvYXJkJztcbmltcG9ydCB7dGhlbWVMVH0gZnJvbSAnQGtlcGxlci5nbC9zdHlsZXMnO1xuaW1wb3J0IEltYWdlTW9kYWxDb250YWluZXIsIHtJbWFnZU1vZGFsQ29udGFpbmVyUHJvcHN9IGZyb20gJy4vaW1hZ2UtbW9kYWwtY29udGFpbmVyJztcblxuaW1wb3J0IHtcbiAgU3R5bGVkTW9kYWxDb250ZW50LFxuICBTdHlsZWRFeHBvcnRTZWN0aW9uLFxuICBJbnB1dExpZ2h0LFxuICBCdXR0b25cbn0gZnJvbSAnLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBTdGF0dXNQYW5lbCBmcm9tICcuL3N0YXR1cy1wYW5lbCc7XG5pbXBvcnQge0Zvcm1hdHRlZE1lc3NhZ2V9IGZyb20gJ0BrZXBsZXIuZ2wvbG9jYWxpemF0aW9uJztcbmltcG9ydCB7dXNlQ2xvdWRMaXN0UHJvdmlkZXJ9IGZyb20gJy4uL2hvb2tzL3VzZS1jbG91ZC1saXN0LXByb3ZpZGVyJztcbmltcG9ydCB7UHJvdmlkZXJTZWxlY3R9IGZyb20gJy4vY2xvdWQtY29tcG9uZW50cy9wcm92aWRlci1zZWxlY3QnO1xuaW1wb3J0IHtQcm92aWRlcn0gZnJvbSAnQGtlcGxlci5nbC9jbG91ZC1wcm92aWRlcnMnO1xuaW1wb3J0IHtjbGVhbnVwRXhwb3J0SW1hZ2UgYXMgY2xlYW51cEV4cG9ydEltYWdlQWN0aW9ufSBmcm9tICdAa2VwbGVyLmdsL2FjdGlvbnMnO1xuaW1wb3J0IHtkYXRhVGVzdElkc30gZnJvbSAnQGtlcGxlci5nbC9jb25zdGFudHMnO1xuXG5leHBvcnQgY29uc3QgU3R5bGVkSW5wdXRMYWJlbCA9IHN0eWxlZC5sYWJlbGBcbiAgZm9udC1zaXplOiAxMnB4O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3JMVH07XG4gIGxldHRlci1zcGFjaW5nOiAwLjJweDtcbmA7XG5cbmV4cG9ydCBjb25zdCBTdHlsZVNoYXJpbmdVcmwgPSBzdHlsZWQuZGl2LmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnc2hhcmluZy11cmwnXG59KWBcbiAgd2lkdGg6IDEwMCU7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIG1hcmdpbi1ib3R0b206IDE0cHg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5cbiAgaW5wdXQge1xuICAgIGJvcmRlci1yaWdodDogMDtcbiAgfVxuXG4gIC5idXR0b24ge1xuICAgIGJvcmRlci10b3AtbGVmdC1yYWRpdXM6IDA7XG4gICAgYm9yZGVyLWJvdHRvbS1sZWZ0LXJhZGl1czogMDtcbiAgfVxuYDtcblxuaW50ZXJmYWNlIFNoYXJpbmdVcmxQcm9wcyB7XG4gIHVybDogc3RyaW5nO1xuICBtZXNzYWdlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgU2hhcmluZ1VybDogUmVhY3QuRkM8U2hhcmluZ1VybFByb3BzPiA9ICh7dXJsLCBtZXNzYWdlID0gJyd9KSA9PiB7XG4gIGNvbnN0IFtjb3BpZWQsIHNldENvcHldID0gdXNlU3RhdGUoZmFsc2UpO1xuICByZXR1cm4gKFxuICAgIDxTdHlsZVNoYXJpbmdVcmw+XG4gICAgICA8U3R5bGVkSW5wdXRMYWJlbD57bWVzc2FnZX08L1N0eWxlZElucHV0TGFiZWw+XG4gICAgICA8ZGl2IHN0eWxlPXt7ZGlzcGxheTogJ2ZsZXgnfX0+XG4gICAgICAgIDxJbnB1dExpZ2h0IHR5cGU9XCJ0ZXh0XCIgdmFsdWU9e3VybH0gcmVhZE9ubHkgLz5cbiAgICAgICAgPENvcHlUb0NsaXBib2FyZCB0ZXh0PXt1cmx9IG9uQ29weT17KCkgPT4gc2V0Q29weSh0cnVlKX0+XG4gICAgICAgICAgPEJ1dHRvbiB3aWR0aD1cIjgwcHhcIj57Y29waWVkID8gJ0NvcGllZCEnIDogJ0NvcHknfTwvQnV0dG9uPlxuICAgICAgICA8L0NvcHlUb0NsaXBib2FyZD5cbiAgICAgIDwvZGl2PlxuICAgIDwvU3R5bGVTaGFyaW5nVXJsPlxuICApO1xufTtcbmNvbnN0IG5vcCA9ICgpID0+IHtcbiAgcmV0dXJuO1xufTtcblxuY29uc3QgU3R5bGVkU2hhcmVNYXBNb2RhbCA9IHN0eWxlZChTdHlsZWRNb2RhbENvbnRlbnQpYFxuICBwYWRkaW5nOiAyNHB4IDcycHggNDBweCA3MnB4O1xuICBtYXJnaW46IDAgLTcycHggLTQwcHggLTcycHg7XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiBjb2x1bW47XG5gO1xuXG5jb25zdCBTdHlsZWRJbm5lckRpdiA9IHN0eWxlZC5kaXZgXG4gIG1pbi1oZWlnaHQ6IDUwMHB4O1xuYDtcblxuY29uc3QgVU5ERVJMSU5FX1RFWFRfREVDT1JBVElPTl9TVFlMRSA9IHt0ZXh0RGVjb3JhdGlvbjogJ3VuZGVybGluZSd9O1xuXG5jb25zdCBTaGFyZU1hcEhlYWRlciA9ICh7Y2xvdWRQcm92aWRlcnN9KSA9PiB7XG4gIGNvbnN0IHNoYXJlYWJsZUNsb3VkUHJvdmlkZXJzID0gdXNlTWVtbyhcbiAgICAoKSA9PiBjbG91ZFByb3ZpZGVycy5maWx0ZXIoY3AgPT4gY3AuaGFzU2hhcmluZ1VybCgpKSxcbiAgICBbY2xvdWRQcm92aWRlcnNdXG4gICk7XG5cbiAgcmV0dXJuIChcbiAgICA8U3R5bGVkRXhwb3J0U2VjdGlvbj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aXRsZVwiPlxuICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuc2hhcmVNYXAudGl0bGUnfSAvPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgICAgPFByb3ZpZGVyU2VsZWN0IGNsb3VkUHJvdmlkZXJzPXtzaGFyZWFibGVDbG91ZFByb3ZpZGVyc30gLz5cbiAgICA8L1N0eWxlZEV4cG9ydFNlY3Rpb24+XG4gICk7XG59O1xuXG5pbnRlcmZhY2UgU2hhcmVNYXBVcmxNb2RhbEZhY3RvcnlQcm9wcyB7XG4gIGlzUHJvdmlkZXJMb2FkaW5nPzogYm9vbGVhbjtcbiAgb25FeHBvcnQ/OiAocHJvdmlkZXI6IFByb3ZpZGVyKSA9PiB2b2lkO1xuICBwcm92aWRlckVycm9yPzogc3RyaW5nO1xuICBzdWNjZXNzSW5mbz86IHtzaGFyZVVybD86IHN0cmluZzsgZm9sZGVyTGluaz86IHN0cmluZ307XG4gIG9uVXBkYXRlSW1hZ2VTZXR0aW5nOiBJbWFnZU1vZGFsQ29udGFpbmVyUHJvcHNbJ29uVXBkYXRlSW1hZ2VTZXR0aW5nJ107XG4gIGNsZWFudXBFeHBvcnRJbWFnZTogdHlwZW9mIGNsZWFudXBFeHBvcnRJbWFnZUFjdGlvbjtcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gU2hhcmVNYXBVcmxNb2RhbEZhY3RvcnkoKSB7XG4gIGNvbnN0IFNoYXJlTWFwVXJsTW9kYWw6IFJlYWN0LkZDPFNoYXJlTWFwVXJsTW9kYWxGYWN0b3J5UHJvcHM+ID0gKHtcbiAgICBpc1Byb3ZpZGVyTG9hZGluZyA9IGZhbHNlLFxuICAgIG9uRXhwb3J0ID0gbm9wLFxuICAgIHByb3ZpZGVyRXJyb3IgPSBudWxsLFxuICAgIHN1Y2Nlc3NJbmZvID0ge30sXG4gICAgb25VcGRhdGVJbWFnZVNldHRpbmcgPSBub3AsXG4gICAgY2xlYW51cEV4cG9ydEltYWdlXG4gIH0pID0+IHtcbiAgICBjb25zdCB7cHJvdmlkZXIsIGNsb3VkUHJvdmlkZXJzfSA9IHVzZUNsb3VkTGlzdFByb3ZpZGVyKCk7XG4gICAgY29uc3Qge3NoYXJlVXJsLCBmb2xkZXJMaW5rfSA9IHN1Y2Nlc3NJbmZvO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIGlmIChwcm92aWRlcikge1xuICAgICAgICBvbkV4cG9ydChwcm92aWRlcik7XG4gICAgICB9XG4gICAgfSwgW29uRXhwb3J0LCBwcm92aWRlcl0pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxUaGVtZVByb3ZpZGVyIHRoZW1lPXt0aGVtZUxUfT5cbiAgICAgICAgPEltYWdlTW9kYWxDb250YWluZXJcbiAgICAgICAgICBwcm92aWRlcj17cHJvdmlkZXJ9XG4gICAgICAgICAgb25VcGRhdGVJbWFnZVNldHRpbmc9e29uVXBkYXRlSW1hZ2VTZXR0aW5nfVxuICAgICAgICAgIGNsZWFudXBFeHBvcnRJbWFnZT17Y2xlYW51cEV4cG9ydEltYWdlfVxuICAgICAgICA+XG4gICAgICAgICAgPFN0eWxlZFNoYXJlTWFwTW9kYWwgY2xhc3NOYW1lPVwiZXhwb3J0LWNsb3VkLW1vZGFsXCI+XG4gICAgICAgICAgICA8U2hhcmVNYXBIZWFkZXIgY2xvdWRQcm92aWRlcnM9e2Nsb3VkUHJvdmlkZXJzfSAvPlxuICAgICAgICAgICAge3Byb3ZpZGVyPy5oYXNTaGFyaW5nVXJsKCkgPyAoXG4gICAgICAgICAgICAgIDxTdHlsZWRJbm5lckRpdiBkYXRhLXRlc3RpZD17ZGF0YVRlc3RJZHMucHJvdmlkZXJTaGFyZU1hcH0+XG4gICAgICAgICAgICAgICAgPFN0eWxlZEV4cG9ydFNlY3Rpb24+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLnNoYXJlTWFwLnNoYXJlVXJpVGl0bGUnfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzdWJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuc2hhcmVNYXAuc2hhcmVVcmlTdWJ0aXRsZSd9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNlbGVjdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpdGxlIHdhcm5pbmdcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLnNoYXJlTWFwLnNoYXJlRGlzY2xhaW1lcid9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRFeHBvcnRTZWN0aW9uPlxuICAgICAgICAgICAgICAgIDxTdHlsZWRFeHBvcnRTZWN0aW9uIGRpc2FibGVkPXtpc1Byb3ZpZGVyTG9hZGluZ30+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGl0bGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17J21vZGFsLnNoYXJlTWFwLmNsb3VkVGl0bGUnfSAvPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzdWJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuc2hhcmVNYXAuY2xvdWRTdWJ0aXRsZSd9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9TdHlsZWRFeHBvcnRTZWN0aW9uPlxuICAgICAgICAgICAgICAgIHtpc1Byb3ZpZGVyTG9hZGluZyB8fCBwcm92aWRlckVycm9yID8gKFxuICAgICAgICAgICAgICAgICAgPFN0YXR1c1BhbmVsXG4gICAgICAgICAgICAgICAgICAgIGlzTG9hZGluZz17aXNQcm92aWRlckxvYWRpbmd9XG4gICAgICAgICAgICAgICAgICAgIGVycm9yPXtwcm92aWRlckVycm9yfVxuICAgICAgICAgICAgICAgICAgICBwcm92aWRlckljb249e3Byb3ZpZGVyLmljb259XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICkgOiBudWxsfVxuICAgICAgICAgICAgICAgIHtzaGFyZVVybCAmJiAoXG4gICAgICAgICAgICAgICAgICA8U3R5bGVkRXhwb3J0U2VjdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGl0bGVcIj5TaGFyZSBVcmw8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2VsZWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPFNoYXJpbmdVcmwga2V5PXswfSB1cmw9e3NoYXJlVXJsfSAvPlxuICAgICAgICAgICAgICAgICAgICAgIHtwcm92aWRlciAmJiBmb2xkZXJMaW5rICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17MX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj17Zm9sZGVyTGlua31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXtVTkRFUkxJTkVfVEVYVF9ERUNPUkFUSU9OX1NUWUxFfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7cHJvdmlkZXIubmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkRXhwb3J0U2VjdGlvbj5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L1N0eWxlZElubmVyRGl2PlxuICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgPC9TdHlsZWRTaGFyZU1hcE1vZGFsPlxuICAgICAgICA8L0ltYWdlTW9kYWxDb250YWluZXI+XG4gICAgICA8L1RoZW1lUHJvdmlkZXI+XG4gICAgKTtcbiAgfTtc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
|
|
161
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsInVzZUVmZmVjdCIsInVzZVN0YXRlIiwidXNlTWVtbyIsInN0eWxlZCIsIlRoZW1lUHJvdmlkZXIiLCJDb3B5VG9DbGlwYm9hcmQiLCJ0aGVtZUxUIiwiSW1hZ2VNb2RhbENvbnRhaW5lciIsIlN0eWxlZE1vZGFsQ29udGVudCIsIlN0eWxlZEV4cG9ydFNlY3Rpb24iLCJJbnB1dExpZ2h0IiwiQnV0dG9uIiwiU3RhdHVzUGFuZWwiLCJGb3JtYXR0ZWRNZXNzYWdlIiwidXNlQ2xvdWRMaXN0UHJvdmlkZXIiLCJQcm92aWRlclNlbGVjdCIsIkNsb3VkU3RvcmFnZURpc2NsYWltZXIiLCJkYXRhVGVzdElkcyIsIlN0eWxlZElucHV0TGFiZWwiLCJsYWJlbCIsIl90ZW1wbGF0ZU9iamVjdCIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwiLCJwcm9wcyIsInRoZW1lIiwidGV4dENvbG9yTFQiLCJTdHlsZVNoYXJpbmdVcmwiLCJkaXYiLCJhdHRycyIsImNsYXNzTmFtZSIsIl90ZW1wbGF0ZU9iamVjdDIiLCJTaGFyaW5nVXJsIiwiX3JlZiIsInVybCIsIl9yZWYkbWVzc2FnZSIsIm1lc3NhZ2UiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJjb3BpZWQiLCJzZXRDb3B5IiwiY3JlYXRlRWxlbWVudCIsInN0eWxlIiwiZGlzcGxheSIsInR5cGUiLCJ2YWx1ZSIsInJlYWRPbmx5IiwidGV4dCIsIm9uQ29weSIsIndpZHRoIiwibm9wIiwiU3R5bGVkU2hhcmVNYXBNb2RhbCIsIl90ZW1wbGF0ZU9iamVjdDMiLCJTdHlsZWRJbm5lckRpdiIsIl90ZW1wbGF0ZU9iamVjdDQiLCJVTkRFUkxJTkVfVEVYVF9ERUNPUkFUSU9OX1NUWUxFIiwidGV4dERlY29yYXRpb24iLCJTaGFyZU1hcEhlYWRlciIsIl9yZWYyIiwiY2xvdWRQcm92aWRlcnMiLCJzaGFyZWFibGVDbG91ZFByb3ZpZGVycyIsImZpbHRlciIsImNwIiwiaGFzU2hhcmluZ1VybCIsImlkIiwiU2hhcmVNYXBVcmxNb2RhbEZhY3RvcnkiLCJTaGFyZU1hcFVybE1vZGFsIiwiX3JlZjMiLCJfcmVmMyRpc1Byb3ZpZGVyTG9hZGkiLCJpc1Byb3ZpZGVyTG9hZGluZyIsIl9yZWYzJG9uRXhwb3J0Iiwib25FeHBvcnQiLCJfcmVmMyRwcm92aWRlckVycm9yIiwicHJvdmlkZXJFcnJvciIsIl9yZWYzJHN1Y2Nlc3NJbmZvIiwic3VjY2Vzc0luZm8iLCJfcmVmMyRvblVwZGF0ZUltYWdlU2UiLCJvblVwZGF0ZUltYWdlU2V0dGluZyIsImNsZWFudXBFeHBvcnRJbWFnZSIsIl91c2VDbG91ZExpc3RQcm92aWRlciIsInByb3ZpZGVyIiwic2hhcmVVcmwiLCJmb2xkZXJMaW5rIiwicHJvdmlkZXJTaGFyZU1hcCIsImRpc2FibGVkIiwiaXNMb2FkaW5nIiwiZXJyb3IiLCJwcm92aWRlckljb24iLCJpY29uIiwia2V5IiwiaHJlZiIsInRhcmdldCIsInJlbCIsIm5hbWUiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbW9kYWxzL3NoYXJlLW1hcC1tb2RhbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7dXNlRWZmZWN0LCB1c2VTdGF0ZSwgdXNlTWVtb30gZnJvbSAncmVhY3QnO1xuaW1wb3J0IHN0eWxlZCwge1RoZW1lUHJvdmlkZXJ9IGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCB7Q29weVRvQ2xpcGJvYXJkfSBmcm9tICdyZWFjdC1jb3B5LXRvLWNsaXBib2FyZCc7XG5pbXBvcnQge3RoZW1lTFR9IGZyb20gJ0BrZXBsZXIuZ2wvc3R5bGVzJztcbmltcG9ydCBJbWFnZU1vZGFsQ29udGFpbmVyLCB7SW1hZ2VNb2RhbENvbnRhaW5lclByb3BzfSBmcm9tICcuL2ltYWdlLW1vZGFsLWNvbnRhaW5lcic7XG5cbmltcG9ydCB7XG4gIFN0eWxlZE1vZGFsQ29udGVudCxcbiAgU3R5bGVkRXhwb3J0U2VjdGlvbixcbiAgSW5wdXRMaWdodCxcbiAgQnV0dG9uXG59IGZyb20gJy4uL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cyc7XG5pbXBvcnQgU3RhdHVzUGFuZWwgZnJvbSAnLi9zdGF0dXMtcGFuZWwnO1xuaW1wb3J0IHtGb3JtYXR0ZWRNZXNzYWdlfSBmcm9tICdAa2VwbGVyLmdsL2xvY2FsaXphdGlvbic7XG5pbXBvcnQge3VzZUNsb3VkTGlzdFByb3ZpZGVyfSBmcm9tICcuLi9ob29rcy91c2UtY2xvdWQtbGlzdC1wcm92aWRlcic7XG5pbXBvcnQge1Byb3ZpZGVyU2VsZWN0fSBmcm9tICcuL2Nsb3VkLWNvbXBvbmVudHMvcHJvdmlkZXItc2VsZWN0JztcbmltcG9ydCB7Q2xvdWRTdG9yYWdlRGlzY2xhaW1lcn0gZnJvbSAnLi9jbG91ZC1jb21wb25lbnRzL2Nsb3VkLXN0b3JhZ2UtZGlzY2xhaW1lcic7XG5pbXBvcnQge1Byb3ZpZGVyfSBmcm9tICdAa2VwbGVyLmdsL2Nsb3VkLXByb3ZpZGVycyc7XG5pbXBvcnQge2NsZWFudXBFeHBvcnRJbWFnZSBhcyBjbGVhbnVwRXhwb3J0SW1hZ2VBY3Rpb259IGZyb20gJ0BrZXBsZXIuZ2wvYWN0aW9ucyc7XG5pbXBvcnQge2RhdGFUZXN0SWRzfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRJbnB1dExhYmVsID0gc3R5bGVkLmxhYmVsYFxuICBmb250LXNpemU6IDEycHg7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvckxUfTtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuMnB4O1xuYDtcblxuZXhwb3J0IGNvbnN0IFN0eWxlU2hhcmluZ1VybCA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICdzaGFyaW5nLXVybCdcbn0pYFxuICB3aWR0aDogMTAwJTtcbiAgZGlzcGxheTogZmxleDtcbiAgbWFyZ2luLWJvdHRvbTogMTRweDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICBpbnB1dCB7XG4gICAgYm9yZGVyLXJpZ2h0OiAwO1xuICB9XG5cbiAgLmJ1dHRvbiB7XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogMDtcbiAgICBib3JkZXItYm90dG9tLWxlZnQtcmFkaXVzOiAwO1xuICB9XG5gO1xuXG5pbnRlcmZhY2UgU2hhcmluZ1VybFByb3BzIHtcbiAgdXJsOiBzdHJpbmc7XG4gIG1lc3NhZ2U/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBTaGFyaW5nVXJsOiBSZWFjdC5GQzxTaGFyaW5nVXJsUHJvcHM+ID0gKHt1cmwsIG1lc3NhZ2UgPSAnJ30pID0+IHtcbiAgY29uc3QgW2NvcGllZCwgc2V0Q29weV0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gIHJldHVybiAoXG4gICAgPFN0eWxlU2hhcmluZ1VybD5cbiAgICAgIDxTdHlsZWRJbnB1dExhYmVsPnttZXNzYWdlfTwvU3R5bGVkSW5wdXRMYWJlbD5cbiAgICAgIDxkaXYgc3R5bGU9e3tkaXNwbGF5OiAnZmxleCd9fT5cbiAgICAgICAgPElucHV0TGlnaHQgdHlwZT1cInRleHRcIiB2YWx1ZT17dXJsfSByZWFkT25seSAvPlxuICAgICAgICA8Q29weVRvQ2xpcGJvYXJkIHRleHQ9e3VybH0gb25Db3B5PXsoKSA9PiBzZXRDb3B5KHRydWUpfT5cbiAgICAgICAgICA8QnV0dG9uIHdpZHRoPVwiODBweFwiPntjb3BpZWQgPyAnQ29waWVkIScgOiAnQ29weSd9PC9CdXR0b24+XG4gICAgICAgIDwvQ29weVRvQ2xpcGJvYXJkPlxuICAgICAgPC9kaXY+XG4gICAgPC9TdHlsZVNoYXJpbmdVcmw+XG4gICk7XG59O1xuY29uc3Qgbm9wID0gKCkgPT4ge1xuICByZXR1cm47XG59O1xuXG5jb25zdCBTdHlsZWRTaGFyZU1hcE1vZGFsID0gc3R5bGVkKFN0eWxlZE1vZGFsQ29udGVudClgXG4gIHBhZGRpbmc6IDI0cHggNzJweCA0MHB4IDcycHg7XG4gIG1hcmdpbjogMCAtNzJweCAtNDBweCAtNzJweDtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgbWluLWhlaWdodDogNTAwcHg7XG5gO1xuXG5jb25zdCBTdHlsZWRJbm5lckRpdiA9IHN0eWxlZC5kaXZgXG4gIGZsZXg6IDE7XG5gO1xuXG5jb25zdCBVTkRFUkxJTkVfVEVYVF9ERUNPUkFUSU9OX1NUWUxFID0ge3RleHREZWNvcmF0aW9uOiAndW5kZXJsaW5lJ307XG5cbmNvbnN0IFNoYXJlTWFwSGVhZGVyID0gKHtjbG91ZFByb3ZpZGVyc30pID0+IHtcbiAgY29uc3Qgc2hhcmVhYmxlQ2xvdWRQcm92aWRlcnMgPSB1c2VNZW1vKFxuICAgICgpID0+IGNsb3VkUHJvdmlkZXJzLmZpbHRlcihjcCA9PiBjcC5oYXNTaGFyaW5nVXJsKCkpLFxuICAgIFtjbG91ZFByb3ZpZGVyc11cbiAgKTtcblxuICByZXR1cm4gKFxuICAgIDxTdHlsZWRFeHBvcnRTZWN0aW9uPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJkZXNjcmlwdGlvblwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRpdGxlXCI+XG4gICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5zaGFyZU1hcC50aXRsZSd9IC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8UHJvdmlkZXJTZWxlY3QgY2xvdWRQcm92aWRlcnM9e3NoYXJlYWJsZUNsb3VkUHJvdmlkZXJzfSAvPlxuICAgIDwvU3R5bGVkRXhwb3J0U2VjdGlvbj5cbiAgKTtcbn07XG5cbmludGVyZmFjZSBTaGFyZU1hcFVybE1vZGFsRmFjdG9yeVByb3BzIHtcbiAgaXNQcm92aWRlckxvYWRpbmc/OiBib29sZWFuO1xuICBvbkV4cG9ydD86IChwcm92aWRlcjogUHJvdmlkZXIpID0+IHZvaWQ7XG4gIHByb3ZpZGVyRXJyb3I/OiBzdHJpbmc7XG4gIHN1Y2Nlc3NJbmZvPzoge3NoYXJlVXJsPzogc3RyaW5nOyBmb2xkZXJMaW5rPzogc3RyaW5nfTtcbiAgb25VcGRhdGVJbWFnZVNldHRpbmc6IEltYWdlTW9kYWxDb250YWluZXJQcm9wc1snb25VcGRhdGVJbWFnZVNldHRpbmcnXTtcbiAgY2xlYW51cEV4cG9ydEltYWdlOiB0eXBlb2YgY2xlYW51cEV4cG9ydEltYWdlQWN0aW9uO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBTaGFyZU1hcFVybE1vZGFsRmFjdG9yeSgpIHtcbiAgY29uc3QgU2hhcmVNYXBVcmxNb2RhbDogUmVhY3QuRkM8U2hhcmVNYXBVcmxNb2RhbEZhY3RvcnlQcm9wcz4gPSAoe1xuICAgIGlzUHJvdmlkZXJMb2FkaW5nID0gZmFsc2UsXG4gICAgb25FeHBvcnQgPSBub3AsXG4gICAgcHJvdmlkZXJFcnJvciA9IG51bGwsXG4gICAgc3VjY2Vzc0luZm8gPSB7fSxcbiAgICBvblVwZGF0ZUltYWdlU2V0dGluZyA9IG5vcCxcbiAgICBjbGVhbnVwRXhwb3J0SW1hZ2VcbiAgfSkgPT4ge1xuICAgIGNvbnN0IHtwcm92aWRlciwgY2xvdWRQcm92aWRlcnN9ID0gdXNlQ2xvdWRMaXN0UHJvdmlkZXIoKTtcbiAgICBjb25zdCB7c2hhcmVVcmwsIGZvbGRlckxpbmt9ID0gc3VjY2Vzc0luZm87XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgaWYgKHByb3ZpZGVyKSB7XG4gICAgICAgIG9uRXhwb3J0KHByb3ZpZGVyKTtcbiAgICAgIH1cbiAgICB9LCBbb25FeHBvcnQsIHByb3ZpZGVyXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFRoZW1lUHJvdmlkZXIgdGhlbWU9e3RoZW1lTFR9PlxuICAgICAgICA8SW1hZ2VNb2RhbENvbnRhaW5lclxuICAgICAgICAgIHByb3ZpZGVyPXtwcm92aWRlcn1cbiAgICAgICAgICBvblVwZGF0ZUltYWdlU2V0dGluZz17b25VcGRhdGVJbWFnZVNldHRpbmd9XG4gICAgICAgICAgY2xlYW51cEV4cG9ydEltYWdlPXtjbGVhbnVwRXhwb3J0SW1hZ2V9XG4gICAgICAgID5cbiAgICAgICAgICA8U3R5bGVkU2hhcmVNYXBNb2RhbCBjbGFzc05hbWU9XCJleHBvcnQtY2xvdWQtbW9kYWxcIj5cbiAgICAgICAgICAgIDxTaGFyZU1hcEhlYWRlciBjbG91ZFByb3ZpZGVycz17Y2xvdWRQcm92aWRlcnN9IC8+XG4gICAgICAgICAgICB7cHJvdmlkZXI/Lmhhc1NoYXJpbmdVcmwoKSA/IChcbiAgICAgICAgICAgICAgPFN0eWxlZElubmVyRGl2IGRhdGEtdGVzdGlkPXtkYXRhVGVzdElkcy5wcm92aWRlclNoYXJlTWFwfT5cbiAgICAgICAgICAgICAgICA8U3R5bGVkRXhwb3J0U2VjdGlvbj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuc2hhcmVNYXAuc2hhcmVVcmlUaXRsZSd9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInN1YnRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5zaGFyZU1hcC5zaGFyZVVyaVN1YnRpdGxlJ30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic2VsZWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGl0bGUgd2FybmluZ1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuc2hhcmVNYXAuc2hhcmVEaXNjbGFpbWVyJ30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L1N0eWxlZEV4cG9ydFNlY3Rpb24+XG4gICAgICAgICAgICAgICAgPFN0eWxlZEV4cG9ydFNlY3Rpb24gZGlzYWJsZWQ9e2lzUHJvdmlkZXJMb2FkaW5nfT5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZGVzY3JpcHRpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aXRsZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxGb3JtYXR0ZWRNZXNzYWdlIGlkPXsnbW9kYWwuc2hhcmVNYXAuY2xvdWRUaXRsZSd9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInN1YnRpdGxlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2UgaWQ9eydtb2RhbC5zaGFyZU1hcC5jbG91ZFN1YnRpdGxlJ30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L1N0eWxlZEV4cG9ydFNlY3Rpb24+XG4gICAgICAgICAgICAgICAge2lzUHJvdmlkZXJMb2FkaW5nIHx8IHByb3ZpZGVyRXJyb3IgPyAoXG4gICAgICAgICAgICAgICAgICA8U3RhdHVzUGFuZWxcbiAgICAgICAgICAgICAgICAgICAgaXNMb2FkaW5nPXtpc1Byb3ZpZGVyTG9hZGluZ31cbiAgICAgICAgICAgICAgICAgICAgZXJyb3I9e3Byb3ZpZGVyRXJyb3J9XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGVySWNvbj17cHJvdmlkZXIuaWNvbn1cbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgICAgICAgICAge3NoYXJlVXJsICYmIChcbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRFeHBvcnRTZWN0aW9uPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRlc2NyaXB0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0aXRsZVwiPlNoYXJlIFVybDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzZWxlY3Rpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICA8U2hhcmluZ1VybCBrZXk9ezB9IHVybD17c2hhcmVVcmx9IC8+XG4gICAgICAgICAgICAgICAgICAgICAge3Byb3ZpZGVyICYmIGZvbGRlckxpbmsgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXsxfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPXtmb2xkZXJMaW5rfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e1VOREVSTElORV9URVhUX0RFQ09SQVRJT05fU1RZTEV9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtwcm92aWRlci5uYW1lfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9TdHlsZWRFeHBvcnRTZWN0aW9uPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvU3R5bGVkSW5uZXJEaXY+XG4gICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDxDbG91ZFN0b3JhZ2VEaXNjbGFpbWVyIC8+XG4gICAgICAgICAgPC9TdHlsZWRTaGFyZU1hcE1vZGFsPlxuICAgICAgICA8L0ltYWdlTW9kYWxDb250YWluZXI+XG4gICAgICA8L1RoZW1lUHJvdmlkZXI+XG4gICAgKTtcbiAgfTtcblxuICByZXR1cm4gU2hhcmVNYXBVcmxNb2RhbDtcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7O0FBQUE7QUFDQTs7QUFFQSxPQUFPQSxLQUFLLElBQUdDLFNBQVMsRUFBRUMsUUFBUSxFQUFFQyxPQUFPLFFBQU8sT0FBTztBQUN6RCxPQUFPQyxNQUFNLElBQUdDLGFBQWEsUUFBTyxtQkFBbUI7QUFDdkQsU0FBUUMsZUFBZSxRQUFPLHlCQUF5QjtBQUN2RCxTQUFRQyxPQUFPLFFBQU8sbUJBQW1CO0FBQ3pDLE9BQU9DLG1CQUFtQixNQUFrQyx5QkFBeUI7QUFFckYsU0FDRUMsa0JBQWtCLEVBQ2xCQyxtQkFBbUIsRUFDbkJDLFVBQVUsRUFDVkMsTUFBTSxRQUNELDZCQUE2QjtBQUNwQyxPQUFPQyxXQUFXLE1BQU0sZ0JBQWdCO0FBQ3hDLFNBQVFDLGdCQUFnQixRQUFPLHlCQUF5QjtBQUN4RCxTQUFRQyxvQkFBb0IsUUFBTyxrQ0FBa0M7QUFDckUsU0FBUUMsY0FBYyxRQUFPLG9DQUFvQztBQUNqRSxTQUFRQyxzQkFBc0IsUUFBTyw2Q0FBNkM7QUFHbEYsU0FBUUMsV0FBVyxRQUFPLHNCQUFzQjtBQUVoRCxPQUFPLElBQU1DLGdCQUFnQixHQUFHZixNQUFNLENBQUNnQixLQUFLLENBQUFDLGVBQUEsS0FBQUEsZUFBQSxHQUFBQyxzQkFBQSx5RUFFakMsVUFBQUMsS0FBSztFQUFBLE9BQUlBLEtBQUssQ0FBQ0MsS0FBSyxDQUFDQyxXQUFXO0FBQUEsRUFFMUM7QUFFRCxPQUFPLElBQU1DLGVBQWUsR0FBR3RCLE1BQU0sQ0FBQ3VCLEdBQUcsQ0FBQ0MsS0FBSyxDQUFDO0VBQzlDQyxTQUFTLEVBQUU7QUFDYixDQUFDLENB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RUFBRWY7SUFBa0IsZ0JBQy9DckUsS0FBQSxDQUFBeUMsYUFBQTtNQUFLWixTQUFTLEVBQUM7SUFBYSxnQkFDMUI3QixLQUFBLENBQUF5QyxhQUFBO01BQUtaLFNBQVMsRUFBQztJQUFPLGdCQUNwQjdCLEtBQUEsQ0FBQXlDLGFBQUEsQ0FBQzNCLGdCQUFnQjtNQUFDa0QsRUFBRSxFQUFFO0lBQTRCLENBQUUsQ0FDakQsQ0FBQyxlQUNOaEUsS0FBQSxDQUFBeUMsYUFBQTtNQUFLWixTQUFTLEVBQUM7SUFBVSxnQkFDdkI3QixLQUFBLENBQUF5QyxhQUFBLENBQUMzQixnQkFBZ0I7TUFBQ2tELEVBQUUsRUFBRTtJQUErQixDQUFFLENBQ3BELENBQ0YsQ0FDYyxDQUFDLEVBQ3JCSyxpQkFBaUIsSUFBSUksYUFBYSxnQkFDakN6RSxLQUFBLENBQUF5QyxhQUFBLENBQUM1QixXQUFXO01BQ1Z3RSxTQUFTLEVBQUVoQixpQkFBa0I7TUFDN0JpQixLQUFLLEVBQUViLGFBQWM7TUFDckJjLFlBQVksRUFBRVAsUUFBUSxDQUFDUTtJQUFLLENBQzdCLENBQUMsR0FDQSxJQUFJLEVBQ1BQLFFBQVEsaUJBQ1BqRixLQUFBLENBQUF5QyxhQUFBLENBQUMvQixtQkFBbUIscUJBQ2xCVixLQUFBLENBQUF5QyxhQUFBO01BQUtaLFNBQVMsRUFBQztJQUFhLGdCQUMxQjdCLEtBQUEsQ0FBQXlDLGFBQUE7TUFBS1osU0FBUyxFQUFDO0lBQU8sR0FBQyxXQUFjLENBQ2xDLENBQUMsZUFDTjdCLEtBQUEsQ0FBQXlDLGFBQUE7TUFBS1osU0FBUyxFQUFDO0lBQVcsZ0JBQ3hCN0IsS0FBQSxDQUFBeUMsYUFBQSxDQUFDVixVQUFVO01BQUMwRCxHQUFHLEVBQUUsQ0FBRTtNQUFDeEQsR0FBRyxFQUFFZ0Q7SUFBUyxDQUFFLENBQUMsRUFDcENELFFBQVEsSUFBSUUsVUFBVSxpQkFDckJsRixLQUFBLENBQUF5QyxhQUFBO01BQ0VnRCxHQUFHLEVBQUUsQ0FBRTtNQUNQQyxJQUFJLEVBQUVSLFVBQVc7TUFDakJTLE1BQU0sRUFBQyxRQUFRO01BQ2ZDLEdBQUcsRUFBQyxxQkFBcUI7TUFDekJsRCxLQUFLLEVBQUVhO0lBQWdDLEdBRXRDeUIsUUFBUSxDQUFDYSxJQUNULENBRUYsQ0FDYyxDQUVULENBQUMsR0FDZixJQUFJLGVBQ1I3RixLQUFBLENBQUF5QyxhQUFBLENBQUN4QixzQkFBc0IsTUFBRSxDQUNOLENBQ0YsQ0FDUixDQUFDO0VBRXBCLENBQUM7RUFFRCxPQUFPaUQsZ0JBQWdCO0FBQ3pCIiwiaWdub3JlTGlzdCI6W119
|
|
@@ -19,7 +19,7 @@ import DeckGL from '@deck.gl/react';
|
|
|
19
19
|
import ReactMapGL, { useControl } from 'react-map-gl/maplibre';
|
|
20
20
|
// @ts-ignore module resolution mismatch with moduleResolution:"node"
|
|
21
21
|
import { MapboxOverlay } from '@deck.gl/mapbox';
|
|
22
|
-
import isEqual from '
|
|
22
|
+
import isEqual from 'es-toolkit/compat/isEqual';
|
|
23
23
|
import styled from 'styled-components';
|
|
24
24
|
import { createKeplerLayers } from '@hubble.gl/react';
|
|
25
25
|
import { compositeSwipeFrame, getSwipePercentageAtTime } from './swipe-composite-utils';
|
|
@@ -385,4 +385,4 @@ export var SwipeExportVideoPreview = /*#__PURE__*/function (_Component) {
|
|
|
385
385
|
}
|
|
386
386
|
}]);
|
|
387
387
|
}(Component);
|
|
388
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIkNvbXBvbmVudCIsImZvcndhcmRSZWYiLCJEZWNrR0wiLCJSZWFjdE1hcEdMIiwidXNlQ29udHJvbCIsIk1hcGJveE92ZXJsYXkiLCJpc0VxdWFsIiwic3R5bGVkIiwiY3JlYXRlS2VwbGVyTGF5ZXJzIiwiY29tcG9zaXRlU3dpcGVGcmFtZSIsImdldFN3aXBlUGVyY2VudGFnZUF0VGltZSIsIkVYUE9SVF9ERUNLX0RFVklDRV9QUk9QUyIsIkVYUE9SVF9PVkVSTEFZX0RFVklDRV9QUk9QUyIsImdldEdsb2JlRXhwb3J0TGF5ZXJzIiwic2V0UmVmIiwicmVmIiwidmFsdWUiLCJjdXJyZW50IiwiRGVja0dMT3ZlcmxheSIsInByb3BzIiwib3ZlcmxheSIsIl9vYmplY3RTcHJlYWQiLCJpbnRlcmxlYXZlZCIsInNldFByb3BzIiwiX2RlY2siLCJkaXNwbGF5TmFtZSIsIlByZXZpZXdDb250YWluZXIiLCJkaXYiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsIiwiJHdpZHRoIiwiJGhlaWdodCIsIlZpc2libGVDYW52YXMiLCJjYW52YXMiLCJfdGVtcGxhdGVPYmplY3QyIiwiTWFwTGF5ZXIiLCJfdGVtcGxhdGVPYmplY3QzIiwiU3dpcGVFeHBvcnRWaWRlb1ByZXZpZXciLCJfQ29tcG9uZW50IiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2siLCJfY2FsbFN1cGVyIiwiX2RlZmluZVByb3BlcnR5IiwiY3JlYXRlUmVmIiwicHJvY2VlZFRvTmV4dEZyYW1lIiwibGVmdExvYWRlZCIsIl9hcmVMYXllcnNMb2FkZWQiLCJyaWdodExvYWRlZCIsImxlZnRUaWxlc1JlYWR5IiwiZGlzYWJsZUJhc2VNYXAiLCJsZWZ0TWFwUmVmIiwiZ2V0TWFwIiwiYXJlVGlsZXNMb2FkZWQiLCJyaWdodFRpbGVzUmVhZHkiLCJyaWdodE1hcFJlZiIsIl9jb21wb3NpdGVGcmFtZSIsIl90aGlzJGxlZnRNYXBSZWYkY3VyciIsIm1hcCIsIm9uIiwic3RhdGUiLCJsZWZ0UmVhZHkiLCJzZXRTdGF0ZSIsIl90cnlDb21wb3NpdGUiLCJfdGhpcyRyaWdodE1hcFJlZiRjdXIiLCJyaWdodFJlYWR5Iiwic2lkZSIsInJlYWR5S2V5IiwibGVmdERlY2tSZWYiLCJyaWdodERlY2tSZWYiLCJfcmVzaXplVmlkZW8iLCJfaW5oZXJpdHMiLCJfY3JlYXRlQ2xhc3MiLCJrZXkiLCJjb21wb25lbnREaWRVcGRhdGUiLCJwcmV2UHJvcHMiLCJyZXNvbHV0aW9uIiwiY3VycmVudFRpbWVNcyIsInN3aXBlU3RhcnRQY3QiLCJzd2lwZUVuZFBjdCIsInN3aXBlRWFzaW5nIiwiX3RoaXMkcHJvcHMiLCJleHBvcnRWaWRlb1dpZHRoIiwiX3NldERldmljZVBpeGVsUmF0aW8iLCJkZXZpY2VQaXhlbFJhdGlvIiwid2luZG93IiwiX2dldENvbnRhaW5lciIsIl90aGlzJHByb3BzMiIsImFzcGVjdFJhdGlvIiwiaGVpZ2h0Iiwid2lkdGgiLCJfZ2V0Q3VycmVudFN3aXBlUGVyY2VudGFnZSIsIl90aGlzJHByb3BzMyIsImR1cmF0aW9uTXMiLCJfZ2V0TGVmdENhbnZhcyIsImdldENhbnZhcyIsIl9nZXRDYW52YXMiLCJfcmVmIiwiY2FsbCIsIl9nZXRSaWdodENhbnZhcyIsIl9nZXRDYW52YXMyIiwiX3JlZjIiLCJfdGhpcyRwcm9wcyRtYXBEYXRhIiwiX2dsb2JlJGNvbmZpZyIsImxlZnRDYW52YXMiLCJyaWdodENhbnZhcyIsIm91dHB1dENhbnZhcyIsImNvbXBvc2l0ZUNhbnZhc1JlZiIsInBlcmNlbnRhZ2UiLCJnbG9iZSIsIm1hcERhdGEiLCJtYXBTdGF0ZSIsInNob3dTdGFycyIsIkJvb2xlYW4iLCJlbmFibGVkIiwiY29uZmlnIiwic3RhcnMiLCJiYWNrZ3JvdW5kQ29sb3IiLCJkZWNrUmVmIiwibGF5ZXJzIiwiZXZlcnkiLCJsYXllciIsImlzTG9hZGVkIiwiZ2V0Q29tcG9zaXRlQ2FudmFzIiwiX2NyZWF0ZUxheWVycyIsIm1hcEluZGV4IiwiYmVmb3JlSWQiLCJfbWFwRGF0YSRtYXBTdGF0ZSIsIl90aGlzJHByb3BzNCIsImRlY2tQcm9wcyIsInZpZXdTdGF0ZSIsIm1hcFByb3BzIiwibWFwYm94QXBpQWNjZXNzVG9rZW4iLCJtYXBib3hBcGlVcmwiLCJjbG9uZSIsImlkIiwiY29uY2F0IiwiX3JlbmRlck1hcENhbnZhcyIsIl90aGlzMiIsIl90aGlzJHByb3BzNSIsImFkYXB0ZXIiLCJtYXBib3hMYXllckJlZm9yZUlkIiwiX3RoaXMkX2dldENvbnRhaW5lciIsImtlcGxlckxheWVycyIsIm1hcFJlZiIsIm9uTWFwTG9hZCIsIl9vbkxlZnRNYXBMb2FkIiwiX29uUmlnaHRNYXBMb2FkIiwiZGVjayIsImFkYXB0ZXJQcm9wcyIsImdldFByb3BzIiwiZXh0cmFQcm9wcyIsImFkYXB0ZXJPbkFmdGVyUmVuZGVyIiwib25BZnRlclJlbmRlciIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kcyIsImRldmljZVByb3BzIiwib25WaWV3U3RhdGVDaGFuZ2UiLCJfcmVmMyIsInZzIiwic2V0Vmlld1N0YXRlIiwicGFyYW1zIiwiX29uRGVja1JlbmRlciIsIl9yZWY1IiwibWFwU3R5bGVGcm9tUHJvcHMiLCJtYXBTdHlsZSIsIm1hcExpYiIsInRyYW5zZm9ybVJlcXVlc3QiLCJzdHlsZSIsImFudGlhbGlhcyIsInByZXNlcnZlRHJhd2luZ0J1ZmZlciIsIm9uTG9hZCIsInJlbmRlciIsIl90aGlzJF9nZXRDb250YWluZXIyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGFscy9zd2lwZS1leHBvcnQtdmlkZW8tcHJldmlldy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50LCBSZWZPYmplY3QsIGZvcndhcmRSZWYsIEZvcndhcmRlZFJlZn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IERlY2tHTCBmcm9tICdAZGVjay5nbC9yZWFjdCc7XG5pbXBvcnQgUmVhY3RNYXBHTCwge3R5cGUgTWFwUmVmLCB1c2VDb250cm9sfSBmcm9tICdyZWFjdC1tYXAtZ2wvbWFwbGlicmUnO1xuLy8gQHRzLWlnbm9yZSBtb2R1bGUgcmVzb2x1dGlvbiBtaXNtYXRjaCB3aXRoIG1vZHVsZVJlc29sdXRpb246XCJub2RlXCJcbmltcG9ydCB7TWFwYm94T3ZlcmxheX0gZnJvbSAnQGRlY2suZ2wvbWFwYm94JztcbmltcG9ydCB0eXBlIHtEZWNrLCBEZWNrUHJvcHMsIE1hcFZpZXdTdGF0ZX0gZnJvbSAnQGRlY2suZ2wvY29yZSc7XG5pbXBvcnQgaXNFcXVhbCBmcm9tICdsb2Rhc2gvaXNFcXVhbCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcblxuaW1wb3J0IHtEZWNrQWRhcHRlcn0gZnJvbSAnQGh1YmJsZS5nbC9jb3JlJztcbmltcG9ydCB7Y3JlYXRlS2VwbGVyTGF5ZXJzfSBmcm9tICdAaHViYmxlLmdsL3JlYWN0JztcbmltcG9ydCB7Y29tcG9zaXRlU3dpcGVGcmFtZSwgZ2V0U3dpcGVQZXJjZW50YWdlQXRUaW1lLCBTd2lwZUVhc2luZ30gZnJvbSAnLi9zd2lwZS1jb21wb3NpdGUtdXRpbHMnO1xuaW1wb3J0IHtcbiAgRVhQT1JUX0RFQ0tfREVWSUNFX1BST1BTLFxuICBFWFBPUlRfT1ZFUkxBWV9ERVZJQ0VfUFJPUFMsXG4gIGdldEdsb2JlRXhwb3J0TGF5ZXJzXG59IGZyb20gJy4vaHViYmxlLXV0aWxzJztcblxuZnVuY3Rpb24gc2V0UmVmPFQ+KHJlZjogUmVhY3QuUmVmPFQ+IHwgUmVhY3QuTXV0YWJsZVJlZk9iamVjdDxUPiwgdmFsdWU6IFQpIHtcbiAgaWYgKHR5cGVvZiByZWYgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZWYodmFsdWUpO1xuICB9IGVsc2UgaWYgKHJlZikge1xuICAgIChyZWYgYXMgUmVhY3QuTXV0YWJsZVJlZk9iamVjdDxUPikuY3VycmVudCA9IHZhbHVlO1xuICB9XG59XG5cbmNvbnN0IERlY2tHTE92ZXJsYXkgPSBmb3J3YXJkUmVmPERlY2ssIGFueT4oXG4gIChwcm9wczogYW55LCByZWY6IEZvcndhcmRlZFJlZjxEZWNrPikgPT4ge1xuICAgIGNvbnN0IG92ZXJsYXkgPSB1c2VDb250cm9sPE1hcGJveE92ZXJsYXk+KCgpID0+IG5ldyBNYXBib3hPdmVybGF5KHsuLi5wcm9wcywgaW50ZXJsZWF2ZWQ6IHRydWV9KSk7XG4gICAgb3ZlcmxheS5zZXRQcm9wcyhwcm9wcyk7XG4gICAgc2V0UmVmKHJlZiwgKG92ZXJsYXkgYXMgYW55KS5fZGVjayk7XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cbik7XG5EZWNrR0xPdmVybGF5LmRpc3BsYXlOYW1lID0gJ0RlY2tHTE92ZXJsYXknO1xuXG5jb25zdCBQcmV2aWV3Q29udGFpbmVyID0gc3R5bGVkLmRpdjx7JHdpZHRoOiBudW1iZXI7ICRoZWlnaHQ6IG51bWJlcn0+YFxuICB3aWR0aDogJHtwcm9wcyA9PiBwcm9wcy4kd2lkdGh9cHg7XG4gIGhlaWdodDogJHtwcm9wcyA9PiBwcm9wcy4kaGVpZ2h0fXB4O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5gO1xuXG5jb25zdCBWaXNpYmxlQ2FudmFzID0gc3R5bGVkLmNhbnZhczx7JHdpZHRoOiBudW1iZXI7ICRoZWlnaHQ6IG51bWJlcn0+YFxuICB3aWR0aDogJHtwcm9wcyA9PiBwcm9wcy4kd2lkdGh9cHg7XG4gIGhlaWdodDogJHtwcm9wcyA9PiBwcm9wcy4kaGVpZ2h0fXB4O1xuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICB6LWluZGV4OiAxO1xuYDtcblxuY29uc3QgTWFwTGF5ZXIgPSBzdHlsZWQuZGl2PHskd2lkdGg6IG51bWJlcjsgJGhlaWdodDogbnVtYmVyfT5gXG4gIHdpZHRoOiAke3Byb3BzID0+IHByb3BzLiR3aWR0aH1weDtcbiAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLiRoZWlnaHR9cHg7XG4gIHBvc2l0aW9uOiBhYnNvbHV0ZTtcbiAgdG9wOiAwO1xuICBsZWZ0OiAwO1xuICBvcGFjaXR5OiAwO1xuICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgei1pbmRleDogMDtcbmA7XG5cbmV4cG9ydCB0eXBlIFN3aXBlRXhwb3J0VmlkZW9QcmV2aWV3UHJvcHMgPSB7XG4gIG1hcERhdGE6IGFueTtcbiAgcmVzb2x1dGlvbjogW251bWJlciwgbnVtYmVyXTtcbiAgZXhwb3J0VmlkZW9XaWR0aDogbnVtYmVyO1xuICBkaXNhYmxlQmFzZU1hcDogYm9vbGVhbjtcbiAgZGVja1Byb3BzPzogRGVja1Byb3BzO1xuICB2aWV3U3RhdGU6IE1hcFZpZXdTdGF0ZTtcbiAgYWRhcHRlcjogRGVja0FkYXB0ZXI7XG4gIG1hcGJveExheWVyQmVmb3JlSWQ/OiBzdHJpbmc7XG4gIHJlbmRlcmluZzogYm9vbGVhbjtcbiAgc2F2aW5nOiBib29sZWFuO1xuICBzZXRWaWV3U3RhdGU6ICh2aWV3U3RhdGU6IE1hcFZpZXdTdGF0ZSkgPT4gdm9pZDtcbiAgZHVyYXRpb25NczogbnVtYmVyO1xuICBtYXBQcm9wcz86IFJlY29yZDxzdHJpbmcsIGFueT47XG4gIHN3aXBlU3RhcnRQY3Q6IG51bWJlcjtcbiAgc3dpcGVFbmRQY3Q6IG51bWJlcjtcbiAgc3dpcGVFYXNpbmc6IFN3aXBlRWFzaW5nO1xuICBjdXJyZW50VGltZU1zOiBudW1iZXI7XG4gIGJhY2tncm91bmRDb2xvcj86IHN0cmluZztcbn07XG5cbnR5cGUgU3dpcGVFeHBvcnRWaWRlb1ByZXZpZXdTdGF0ZSA9IHtcbiAgbGVmdFJlYWR5OiBib29sZWFuO1xuICByaWdodFJlYWR5OiBib29sZWFuO1xufTtcblxuLyoqXG4gKiBBIGR1YWwtY2FudmFzIHZpZGVvIGV4cG9ydCBwcmV2aWV3IHRoYXQgcmVuZGVycyBsZWZ0L3JpZ2h0IHNwbGl0IG1hcCBsYXllcnNcbiAqIGFuZCBjb21wb3NpdGVzIHRoZW0gd2l0aCBhbiBhbmltYXRlZCBzd2lwZSBkaXZpZGVyLlxuICovXG5leHBvcnQgY2xhc3MgU3dpcGVFeHBvcnRWaWRlb1ByZXZpZXcgZXh0ZW5kcyBDb21wb25lbnQ8XG4gIFN3aXBlRXhwb3J0VmlkZW9QcmV2aWV3UHJvcHMsXG4gIFN3aXBlRXhwb3J0VmlkZW9QcmV2aWV3U3RhdGVcbj4ge1xuICBsZWZ0TWFwUmVmOiBSZWZPYmplY3Q8TWFwUmVmIHwgbnVsbD4gPSBSZWFjdC5jcmVhdGVSZWY8TWFwUmVmIHwgbnVsbD4oKTtcbiAgcmlnaHRNYXBSZWY6IFJlZk9iamVjdDxNYXBSZWYgfCBudWxsPiA9IFJlYWN0LmNyZWF0ZVJlZjxNYXBSZWYgfCBudWxsPigpO1xuICBsZWZ0RGVja1JlZjogUmVmT2JqZWN0PERlY2sgfCBudWxsPiA9IFJlYWN0LmNyZWF0ZVJlZjxEZWNrIHwgbnVsbD4oKTtcbiAgcmlnaHREZWNrUmVmOiBSZWZPYmplY3Q8RGVjayB8IG51bGw+ID0gUmVhY3QuY3JlYXRlUmVmPERlY2sgfCBudWxsPigpO1xuICBjb21wb3NpdGVDYW52YXNSZWY6IFJlZk9iamVjdDxIVE1MQ2FudmFzRWxlbWVudCB8IG51bGw+ID0gUmVhY3QuY3JlYXRlUmVmPEhUTUxDYW52YXNFbGVtZW50IHwgbnVsbD4oKTtcblxuICBjb25zdHJ1Y3Rvcihwcm9wczogU3dpcGVFeHBvcnRWaWRlb1ByZXZpZXdQcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcblxuICAgIHRoaXMuc3RhdGUgPSB7XG4gICAgICBsZWZ0UmVhZHk6IGZhbHNlLFxuICAgICAgcmlnaHRSZWFkeTogZmFsc2VcbiAgICB9O1xuXG4gICAgdGhpcy5fcmVzaXplVmlkZW8oKTtcbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZShwcmV2UHJvcHM6IFN3aXBlRXhwb3J0VmlkZW9QcmV2aWV3UHJvcHMpIHtcbiAgICBpZiAoIWlzRXF1YWwocHJldlByb3BzLnJlc29sdXRpb24sIHRoaXMucHJvcHMucmVzb2x1dGlvbikpIHtcbiAgICAgIHRoaXMuX3Jlc2l6ZVZpZGVvKCk7XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgcHJldlByb3BzLmN1cnJlbnRUaW1lTXMgIT09IHRoaXMucHJvcHMuY3VycmVudFRpbWVNcyB8fFxuICAgICAgcHJldlByb3BzLnN3aXBlU3RhcnRQY3QgIT09IHRoaXMucHJvcHMuc3dpcGVTdGFydFBjdCB8fFxuICAgICAgcHJldlByb3BzLnN3aXBlRW5kUGN0ICE9PSB0aGlzLnByb3BzLnN3aXBlRW5kUGN0IHx8XG4gICAgICBwcmV2UHJvcHMuc3dpcGVFYXNpbmcgIT09IHRoaXMucHJvcHMuc3dpcGVFYXNpbmdcbiAgICApIHtcbiAgICAgIHRoaXMuX2NvbXBvc2l0ZUZyYW1lKCk7XG4gICAgfVxuICB9XG5cbiAgX3Jlc2l6ZVZpZGVvKCkge1xuICAgIGNvbnN0IHtleHBvcnRWaWRlb1dpZHRoLCByZXNvbHV0aW9ufSA9IHRoaXMucHJvcHM7XG4gICAgdGhpcy5fc2V0RGV2aWNlUGl4ZWxSYXRpbyhyZXNvbHV0aW9uWzBdIC8gZXhwb3J0VmlkZW9XaWR0aCk7XG4gIH1cblxuICBfc2V0RGV2aWNlUGl4ZWxSYXRpbyhkZXZpY2VQaXhlbFJhdGlvOiBudW1iZXIpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgd2luZG93LmRldmljZVBpeGVsUmF0aW8gPSBkZXZpY2VQaXhlbFJhdGlvO1xuICB9XG5cbiAgX2dldENvbnRhaW5lcigpIHtcbiAgICBjb25zdCB7ZXhwb3J0VmlkZW9XaWR0aCwgcmVzb2x1dGlvbn0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IGFzcGVjdFJhdGlvID0gcmVzb2x1dGlvblswXSAvIHJlc29sdXRpb25bMV07XG4gICAgcmV0dXJuIHtoZWlnaHQ6IGV4cG9ydFZpZGVvV2lkdGggLyBhc3BlY3RSYXRpbywgd2lkdGg6IGV4cG9ydFZpZGVvV2lkdGh9O1xuICB9XG5cbiAgX2dldEN1cnJlbnRTd2lwZVBlcmNlbnRhZ2UoKTogbnVtYmVyIHtcbiAgICBjb25zdCB7Y3VycmVudFRpbWVNcywgZHVyYXRpb25Ncywgc3dpcGVTdGFydFBjdCwgc3dpcGVFbmRQY3QsIHN3aXBlRWFzaW5nfSA9IHRoaXMucHJvcHM7XG4gICAgcmV0dXJuIGdldFN3aXBlUGVyY2VudGFnZUF0VGltZShjdXJyZW50VGltZU1zLCBkdXJhdGlvbk1zLCBzd2lwZVN0YXJ0UGN0LCBzd2lwZUVuZFBjdCwgc3dpcGVFYXNpbmcpO1xuICB9XG5cbiAgX2dldExlZnRDYW52YXMoKTogSFRNTENhbnZhc0VsZW1lbnQgfCBudWxsIHtcbiAgICBpZiAodGhpcy5sZWZ0TWFwUmVmLmN1cnJlbnQpIHtcbiAgICAgIHJldHVybiB0aGlzLmxlZnRNYXBSZWYuY3VycmVudC5nZXRNYXAoKS5nZXRDYW52YXMoKTtcbiAgICB9XG4gICAgLy8gRmFsbGJhY2s6IERlY2tHTCBjYW52YXMgKG5vIGJhc2VtYXAgbW9kZSlcbiAgICBpZiAodGhpcy5sZWZ0RGVja1JlZi5jdXJyZW50KSB7XG4gICAgICByZXR1cm4gKHRoaXMubGVmdERlY2tSZWYuY3VycmVudCBhcyBhbnkpLmdldENhbnZhcz8uKCkgfHwgbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBfZ2V0UmlnaHRDYW52YXMoKTogSFRNTENhbnZhc0VsZW1lbnQgfCBudWxsIHtcbiAgICBpZiAodGhpcy5yaWdodE1hcFJlZi5jdXJyZW50KSB7XG4gICAgICByZXR1cm4gdGhpcy5yaWdodE1hcFJlZi5jdXJyZW50LmdldE1hcCgpLmdldENhbnZhcygpO1xuICAgIH1cbiAgICBpZiAodGhpcy5yaWdodERlY2tSZWYuY3VycmVudCkge1xuICAgICAgcmV0dXJuICh0aGlzLnJpZ2h0RGVja1JlZi5jdXJyZW50IGFzIGFueSkuZ2V0Q2FudmFzPy4oKSB8fCBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIF9jb21wb3NpdGVGcmFtZSgpIHtcbiAgICBjb25zdCBsZWZ0Q2FudmFzID0gdGhpcy5fZ2V0TGVmdENhbnZhcygpO1xuICAgIGNvbnN0IHJpZ2h0Q2FudmFzID0gdGhpcy5fZ2V0UmlnaHRDYW52YXMoKTtcbiAgICBjb25zdCBvdXRwdXRDYW52YXMgPSB0aGlzLmNvbXBvc2l0ZUNhbnZhc1JlZi5jdXJyZW50O1xuXG4gICAgaWYgKCFsZWZ0Q2FudmFzIHx8ICFyaWdodENhbnZhcyB8fCAhb3V0cHV0Q2FudmFzKSByZXR1cm47XG5cbiAgICBjb25zdCBwZXJjZW50YWdlID0gdGhpcy5fZ2V0Q3VycmVudFN3aXBlUGVyY2VudGFnZSgpO1xuICAgIGNvbnN0IGdsb2JlID0gdGhpcy5wcm9wcy5tYXBEYXRhPy5tYXBTdGF0ZT8uZ2xvYmU7XG4gICAgY29uc3Qgc2hvd1N0YXJzID0gQm9vbGVhbihnbG9iZT8uZW5hYmxlZCAmJiBnbG9iZT8uY29uZmlnPy5zdGFycyk7XG5cbiAgICBjb21wb3NpdGVTd2lwZUZyYW1lKFxuICAgICAgbGVmdENhbnZhcyxcbiAgICAgIHJpZ2h0Q2FudmFzLFxuICAgICAgb3V0cHV0Q2FudmFzLFxuICAgICAgcGVyY2VudGFnZSxcbiAgICAgIHRydWUsXG4gICAgICB0aGlzLnByb3BzLmJhY2tncm91bmRDb2xvcixcbiAgICAgIHNob3dTdGFyc1xuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIGJ5IHRoZSBwYXJlbnQgY29udGFpbmVyJ3MgYWRhcHRlciBhZnRlciBlYWNoIHJlbmRlci5cbiAgICogV2UgbmVlZCBib3RoIG1hcHMgdG8gYmUgbG9hZGVkIGJlZm9yZSBjb21wb3NpdGluZyBhbmQgY2FwdHVyaW5nLlxuICAgKi9cbiAgb25BZnRlclJlbmRlciA9IChwcm9jZWVkVG9OZXh0RnJhbWU6ICgpID0+IHZvaWQpID0+IHtcbiAgICBjb25zdCBsZWZ0TG9hZGVkID0gdGhpcy5fYXJlTGF5ZXJzTG9hZGVkKCdsZWZ0Jyk7XG4gICAgY29uc3QgcmlnaHRMb2FkZWQgPSB0aGlzLl9hcmVMYXllcnNMb2FkZWQoJ3JpZ2h0Jyk7XG4gICAgY29uc3QgbGVmdFRpbGVzUmVhZHkgPVxuICAgICAgdGhpcy5wcm9wcy5kaXNhYmxlQmFzZU1hcCB8fCAhdGhpcy5sZWZ0TWFwUmVmLmN1cnJlbnQgfHwgdGhpcy5sZWZ0TWFwUmVmLmN1cnJlbnQuZ2V0TWFwKCkuYXJlVGlsZXNMb2FkZWQoKTtcbiAgICBjb25zdCByaWdodFRpbGVzUmVhZHkgPVxuICAgICAgdGhpcy5wcm9wcy5kaXNhYmxlQmFzZU1hcCB8fCAhdGhpcy5yaWdodE1hcFJlZi5jdXJyZW50IHx8IHRoaXMucmlnaHRNYXBSZWYuY3VycmVudC5nZXRNYXAoKS5hcmVUaWxlc0xvYWRlZCgpO1xuXG4gICAgaWYgKGxlZnRMb2FkZWQgJiYgcmlnaHRMb2FkZWQgJiYgbGVmdFRpbGVzUmVhZHkgJiYgcmlnaHRUaWxlc1JlYWR5KSB7XG4gICAgICB0aGlzLl9jb21wb3NpdGVGcmFtZSgpO1xuICAgICAgcHJvY2VlZFRvTmV4dEZyYW1lKCk7XG4gICAgfVxuICB9O1xuXG4gIF9hcmVMYXllcnNMb2FkZWQoc2lkZTogJ2xlZnQnIHwgJ3JpZ2h0Jyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGRlY2tSZWYgPSBzaWRlID09PSAnbGVmdCcgPyB0aGlzLmxlZnREZWNrUmVmIDogdGhpcy5yaWdodERlY2tSZWY7XG4gICAgaWYgKCFkZWNrUmVmLmN1cnJlbnQpIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCBsYXllcnMgPSBkZWNrUmVmLmN1cnJlbnQucHJvcHMubGF5ZXJzIHx8IFtdO1xuICAgIHJldHVybiBsYXllcnMuZXZlcnkoKGxheWVyOiBhbnkpID0+IGxheWVyLmlzTG9hZGVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGNvbXBvc2l0ZWQgY2FudmFzIGVsZW1lbnQgZm9yIHZpZGVvIGNhcHR1cmUuXG4gICAqL1xuICBnZXRDb21wb3NpdGVDYW52YXMoKTogSFRNTENhbnZhc0VsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5jb21wb3NpdGVDYW52YXNSZWYuY3VycmVudDtcbiAgfVxuXG4gIF9jcmVhdGVMYXllcnMobWFwSW5kZXg6IG51bWJlciwgYmVmb3JlSWQ/OiBzdHJpbmcpIHtcbiAgICBjb25zdCB7ZGVja1Byb3BzLCBtYXBEYXRhLCB2aWV3U3RhdGUsIGRpc2FibGVCYXNlTWFwLCBtYXBQcm9wc30gPSB0aGlzLnByb3BzO1xuXG4gICAgLy8gR2xvYmUgc3dpcGU6IGJ1aWxkIGEgZnJlc2ggc2V0IG9mIGdsb2JlIGxheWVycyBwZXIgc2lkZS4gRWFjaCBzaWRlIGlzIGFcbiAgICAvLyBzZXBhcmF0ZSBEZWNrLCBzbyBpdCBuZWVkcyBpdHMgT1dOIExheWVyIGluc3RhbmNlcyAoZGVjay5nbCBMYXllciBvYmplY3RzXG4gICAgLy8gYXJlIHN0YXRlZnVsIGFuZCBib3VuZCB0byBvbmUgRGVjayDigJQgc2hhcmluZyB0aGVtIG1ha2VzIHRoZSBzZWNvbmQgRGVja1xuICAgIC8vIGFzc2VydCB3aGlsZSBpbml0aWFsaXppbmcgdGhlbSkuIEJ1aWxkaW5nIHBlciBgbWFwSW5kZXhgIGFsc28gcmVzcGVjdHMgdGhlXG4gICAgLy8gc3BsaXQtbWFwIGxheWVyIHZpc2liaWxpdHkgb24gZWFjaCBoYWxmIG9mIHRoZSBzd2lwZS5cbiAgICBpZiAoZGlzYWJsZUJhc2VNYXAgJiYgbWFwRGF0YT8ubWFwU3RhdGU/Lmdsb2JlPy5lbmFibGVkKSB7XG4gICAgICByZXR1cm4gZ2V0R2xvYmVFeHBvcnRMYXllcnMobWFwRGF0YSwge1xuICAgICAgICBtYXBJbmRleCxcbiAgICAgICAgbWFwYm94QXBpQWNjZXNzVG9rZW46IG1hcFByb3BzPy5tYXBib3hBcGlBY2Nlc3NUb2tlbixcbiAgICAgICAgbWFwYm94QXBpVXJsOiBtYXBQcm9wcz8ubWFwYm94QXBpVXJsLFxuICAgICAgICB2aWV3U3RhdGVcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChkZWNrUHJvcHMgJiYgZGVja1Byb3BzLmxheWVycykge1xuICAgICAgLy8gTm9uLWdsb2JlIHBhdGggd2l0aCBleHBsaWNpdCBsYXllcnM6IGNsb25lIHBlciBzaWRlIHdpdGggYSB1bmlxdWUgaWQgc29cbiAgICAgIC8vIHRoZSB0d28gRGVjayBpbnN0YW5jZXMgZG9uJ3Qgc2hhcmUgdGhlIHNhbWUgc3RhdGVmdWwgTGF5ZXIgb2JqZWN0cy5cbiAgICAgIHJldHVybiBkZWNrUHJvcHMubGF5ZXJzLm1hcCgobGF5ZXI6IGFueSkgPT5cbiAgICAgICAgbGF5ZXIgJiYgdHlwZW9mIGxheWVyLmNsb25lID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgPyBsYXllci5jbG9uZSh7aWQ6IGAke2xheWVyLmlkfS1zd2lwZS0ke21hcEluZGV4fWB9KVxuICAgICAgICAgIDogbGF5ZXJcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBjcmVhdGVLZXBsZXJMYXllcnMobWFwRGF0YSwgdmlld1N0YXRlLCBtYXBJbmRleCwgYmVmb3JlSWQpO1xuICB9XG5cbiAgX29uTGVmdE1hcExvYWQgPSAoKSA9PiB7XG4gICAgY29uc3QgbWFwID0gdGhpcy5sZWZ0TWFwUmVmLmN1cnJlbnQ/LmdldE1hcCgpO1xuICAgIGlmIChtYXApIHtcbiAgICAgIG1hcC5vbigncmVuZGVyJywgKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuc3RhdGUubGVmdFJlYWR5KSB7XG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7bGVmdFJlYWR5OiB0cnVlfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fdHJ5Q29tcG9zaXRlKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgX29uUmlnaHRNYXBMb2FkID0gKCkgPT4ge1xuICAgIGNvbnN0IG1hcCA9IHRoaXMucmlnaHRNYXBSZWYuY3VycmVudD8uZ2V0TWFwKCk7XG4gICAgaWYgKG1hcCkge1xuICAgICAgbWFwLm9uKCdyZW5kZXInLCAoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5zdGF0ZS5yaWdodFJlYWR5KSB7XG4gICAgICAgICAgdGhpcy5zZXRTdGF0ZSh7cmlnaHRSZWFkeTogdHJ1ZX0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX3RyeUNvbXBvc2l0ZSgpO1xuICAgICAgfSk7XG4gICAgfVxuICB9O1xuXG4gIF90cnlDb21wb3NpdGUoKSB7XG4gICAgaWYgKHRoaXMuc3RhdGUubGVmdFJlYWR5ICYmIHRoaXMuc3RhdGUucmlnaHRSZWFkeSkge1xuICAgICAgdGhpcy5fY29tcG9zaXRlRnJhbWUoKTtcbiAgICB9XG4gIH1cblxuICAvLyBHbG9iZSAoZGlzYWJsZUJhc2VNYXApIG1vZGUgaGFzIG5vIFJlYWN0TWFwR0wgYW5kIHRoZXJlZm9yZSBubyBtYXAgJ3JlbmRlcidcbiAgLy8gZXZlbnQgdG8gZHJpdmUgY29tcG9zaXRpbmcuIEluc3RlYWQgZWFjaCBiYXJlIDxEZWNrR0w+IHJlcG9ydHMgd2hlbiBpdCBoYXNcbiAgLy8gZHJhd24gdmlhIG9uQWZ0ZXJSZW5kZXI7IG9uY2UgYm90aCBzaWRlcyBoYXZlIHJlbmRlcmVkIHdlIGNvbXBvc2l0ZS4gV2l0aG91dFxuICAvLyB0aGlzIHRoZSBjb21wb3NpdGUgb3V0cHV0IGNhbnZhcyBpcyBuZXZlciBwYWludGVkIHVudGlsIHRoZSB1c2VyIHByZXNzZXNcbiAgLy8gcGxheSwgc28gdGhlIHByZXZpZXcgc2hvd3MgYSBibGFuayAod2hpdGUpIGZyYW1lIG9uIG1vdW50LlxuICBfb25EZWNrUmVuZGVyID0gKHNpZGU6ICdsZWZ0JyB8ICdyaWdodCcpID0+IHtcbiAgICBjb25zdCByZWFkeUtleSA9IHNpZGUgPT09ICdsZWZ0JyA/ICdsZWZ0UmVhZHknIDogJ3JpZ2h0UmVhZHknO1xuICAgIGlmICghdGhpcy5zdGF0ZVtyZWFkeUtleV0pIHtcbiAgICAgIHRoaXMuc2V0U3RhdGUoe1tyZWFkeUtleV06IHRydWV9IGFzIGFueSk7XG4gICAgfVxuICAgIC8vIENvbXBvc2l0ZSBhcyBzb29uIGFzIGJvdGggZGVja3MgZXhpc3QgYW5kIGhhdmUgZHJhd24uIFdlIGNoZWNrIHRoZSBkZWNrXG4gICAgLy8gcmVmcyBkaXJlY3RseSAobm90IFJlYWN0IHN0YXRlLCB3aGljaCBjYW4gYmUgc3RhbGUgcmlnaHQgYWZ0ZXIgc2V0U3RhdGUpXG4gICAgLy8gYW5kIGludGVudGlvbmFsbHkgZG9uJ3QgZ2F0ZSBvbiBsYXllcnMgYmVpbmcgZnVsbHkgbG9hZGVkIGhlcmUgKHRoYXQgZ2F0ZVxuICAgIC8vIGxpdmVzIGluIHRoZSBjYXB0dXJlIGxvb3ApOiBmb3IgYSBsaXZlIHByZXZpZXcgd2Ugd2FudCB0byBzaG93IHRoZSBnbG9iZVxuICAgIC8vIGFzIGl0IHN0cmVhbXMgaW4gcmF0aGVyIHRoYW4gYSBibGFuayBmcmFtZSB3aGlsZSB0aWxlcyBsb2FkLlxuICAgIGlmICh0aGlzLmxlZnREZWNrUmVmLmN1cnJlbnQgJiYgdGhpcy5yaWdodERlY2tSZWYuY3VycmVudCkge1xuICAgICAgdGhpcy5fY29tcG9zaXRlRnJhbWUoKTtcbiAgICB9XG4gIH07XG5cbiAgX3JlbmRlck1hcENhbnZhcyhcbiAgICBzaWRlOiAnbGVmdCcgfCAncmlnaHQnLFxuICAgIG1hcEluZGV4OiBudW1iZXJcbiAgKSB7XG4gICAgY29uc3Qge3ZpZXdTdGF0ZSwgYWRhcHRlciwgZGVja1Byb3BzLCBtYXBQcm9wcywgZGlzYWJsZUJhc2VNYXAsIG1hcGJveExheWVyQmVmb3JlSWR9ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7d2lkdGgsIGhlaWdodH0gPSB0aGlzLl9nZXRDb250YWluZXIoKTtcbiAgICBjb25zdCBrZXBsZXJMYXllcnMgPSB0aGlzLl9jcmVhdGVMYXllcnMobWFwSW5kZXgsIG1hcGJveExheWVyQmVmb3JlSWQpO1xuICAgIGNvbnN0IG1hcFJlZiA9IHNpZGUgPT09ICdsZWZ0JyA/IHRoaXMubGVmdE1hcFJlZiA6IHRoaXMucmlnaHRNYXBSZWY7XG4gICAgY29uc3QgZGVja1JlZiA9IHNpZGUgPT09ICdsZWZ0JyA/IHRoaXMubGVmdERlY2tSZWYgOiB0aGlzLnJpZ2h0RGVja1JlZjtcbiAgICBjb25zdCBvbk1hcExvYWQgPSBzaWRlID09PSAnbGVmdCcgPyB0aGlzLl9vbkxlZnRNYXBMb2FkIDogdGhpcy5fb25SaWdodE1hcExvYWQ7XG4gICAgY29uc3QgZGVjayA9IGRlY2tSZWYuY3VycmVudDtcblxuICAgIGlmIChkaXNhYmxlQmFzZU1hcCkge1xuICAgICAgY29uc3QgYWRhcHRlclByb3BzID0gYWRhcHRlci5nZXRQcm9wcyh7XG4gICAgICAgIGRlY2s6IGRlY2sgYXMgYW55LFxuICAgICAgICBleHRyYVByb3BzOiB7Li4uZGVja1Byb3BzLCBsYXllcnM6IGtlcGxlckxheWVyc31cbiAgICAgIH0pIGFzIGFueTtcbiAgICAgIGNvbnN0IGFkYXB0ZXJPbkFmdGVyUmVuZGVyID0gYWRhcHRlclByb3BzLm9uQWZ0ZXJSZW5kZXI7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8TWFwTGF5ZXIgJHdpZHRoPXt3aWR0aH0gJGhlaWdodD17aGVpZ2h0fT5cbiAgICAgICAgICA8RGVja0dMXG4gICAgICAgICAgICByZWY9e3JlZiA9PiBzZXRSZWYoZGVja1JlZiwgcmVmPy5kZWNrIGFzIGFueSl9XG4gICAgICAgICAgICBkZXZpY2VQcm9wcz17RVhQT1JUX0RFQ0tfREVWSUNFX1BST1BTfVxuICAgICAgICAgICAgey4uLmFkYXB0ZXJQcm9wc31cbiAgICAgICAgICAgIHZpZXdTdGF0ZT17dmlld1N0YXRlfVxuICAgICAgICAgICAgb25WaWV3U3RhdGVDaGFuZ2U9eyh7dmlld1N0YXRlOiB2c306IGFueSkgPT4gdGhpcy5wcm9wcy5zZXRWaWV3U3RhdGUodnMpfVxuICAgICAgICAgICAgb25BZnRlclJlbmRlcj17KHBhcmFtczogYW55KSA9PiB7XG4gICAgICAgICAgICAgIGlmICh0eXBlb2YgYWRhcHRlck9uQWZ0ZXJSZW5kZXIgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICBhZGFwdGVyT25BZnRlclJlbmRlcihwYXJhbXMpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIHRoaXMuX29uRGVja1JlbmRlcihzaWRlKTtcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgICB7Li4udGhpcy5fZ2V0Q29udGFpbmVyKCl9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9NYXBMYXllcj5cbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3Qge1xuICAgICAgbWFwU3R5bGU6IG1hcFN0eWxlRnJvbVByb3BzLFxuICAgICAgbWFwTGliLFxuICAgICAgdHJhbnNmb3JtUmVxdWVzdFxuICAgIH0gPSAobWFwUHJvcHMgfHwge30pIGFzIGFueTtcblxuICAgIHJldHVybiAoXG4gICAgICA8TWFwTGF5ZXIgJHdpZHRoPXt3aWR0aH0gJGhlaWdodD17aGVpZ2h0fT5cbiAgICAgICAgPFJlYWN0TWFwR0xcbiAgICAgICAgICByZWY9e21hcFJlZn1cbiAgICAgICAgICBzdHlsZT17e3dpZHRoLCBoZWlnaHR9fVxuICAgICAgICAgIGFudGlhbGlhc1xuICAgICAgICAgIG1hcExpYj17bWFwTGlifVxuICAgICAgICAgIHRyYW5zZm9ybVJlcXVlc3Q9e3RyYW5zZm9ybVJlcXVlc3R9XG4gICAgICAgICAgcHJlc2VydmVEcmF3aW5nQnVmZmVyXG4gICAgICAgICAgey4uLnZpZXdTdGF0ZX1cbiAgICAgICAgICBtYXBTdHlsZT17bWFwU3R5bGVGcm9tUHJvcHN9XG4gICAgICAgICAgb25Mb2FkPXtvbk1hcExvYWR9XG4gICAgICAgID5cbiAgICAgICAgICA8RGVja0dMT3ZlcmxheVxuICAgICAgICAgICAgcmVmPXtkZWNrUmVmfVxuICAgICAgICAgICAgZGV2aWNlUHJvcHM9e0VYUE9SVF9PVkVSTEFZX0RFVklDRV9QUk9QU31cbiAgICAgICAgICAgIHsuLi5hZGFwdGVyLmdldFByb3BzKHtkZWNrOiBkZWNrIGFzIGFueSwgZXh0cmFQcm9wczogey4uLmRlY2tQcm9wcywgbGF5ZXJzOiBrZXBsZXJMYXllcnN9fSl9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9SZWFjdE1hcEdMPlxuICAgICAgPC9NYXBMYXllcj5cbiAgICApO1xuICB9XG5cbiAgcmVuZGVyKCkge1xuICAgIGNvbnN0IHtyZXNvbHV0aW9ufSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3Qge3dpZHRoLCBoZWlnaHR9ID0gdGhpcy5fZ2V0Q29udGFpbmVyKCk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgPFByZXZpZXdDb250YWluZXIgJHdpZHRoPXt3aWR0aH0gJGhlaWdodD17aGVpZ2h0fT5cbiAgICAgICAgey8qIEhpZGRlbiBtYXAgY2FudmFzZXMgZm9yIGxlZnQgKG1hcEluZGV4PTApIGFuZCByaWdodCAobWFwSW5kZXg9MSkgKi99XG4gICAgICAgIHt0aGlzLl9yZW5kZXJNYXBDYW52YXMoJ2xlZnQnLCAwKX1cbiAgICAgICAge3RoaXMuX3JlbmRlck1hcENhbnZhcygncmlnaHQnLCAxKX1cblxuICAgICAgICB7LyogVmlzaWJsZSBjb21wb3NpdGVkIG91dHB1dCAqL31cbiAgICAgICAgPFZpc2libGVDYW52YXNcbiAgICAgICAgICByZWY9e3RoaXMuY29tcG9zaXRlQ2FudmFzUmVmfVxuICAgICAgICAgIHdpZHRoPXtyZXNvbHV0aW9uWzBdfVxuICAgICAgICAgIGhlaWdodD17cmVzb2x1dGlvblsxXX1cbiAgICAgICAgICAkd2lkdGg9e3dpZHRofVxuICAgICAgICAgICRoZWlnaHQ9e2hlaWdodH1cbiAgICAgICAgLz5cbiAgICAgIDwvUHJldmlld0NvbnRhaW5lcj5cbiAgICApO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFBQTtBQUNBOztBQUVBLE9BQU9BLEtBQUssSUFBR0MsU0FBUyxFQUFhQyxVQUFVLFFBQXFCLE9BQU87QUFDM0UsT0FBT0MsTUFBTSxNQUFNLGdCQUFnQjtBQUNuQyxPQUFPQyxVQUFVLElBQWdCQyxVQUFVLFFBQU8sdUJBQXVCO0FBQ3pFO0FBQ0EsU0FBUUMsYUFBYSxRQUFPLGlCQUFpQjtBQUU3QyxPQUFPQyxPQUFPLE1BQU0sZ0JBQWdCO0FBQ3BDLE9BQU9DLE1BQU0sTUFBTSxtQkFBbUI7QUFHdEMsU0FBUUMsa0JBQWtCLFFBQU8sa0JBQWtCO0FBQ25ELFNBQVFDLG1CQUFtQixFQUFFQyx3QkFBd0IsUUFBb0IseUJBQXlCO0FBQ2xHLFNBQ0VDLHdCQUF3QixFQUN4QkMsMkJBQTJC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
|
|
388
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIkNvbXBvbmVudCIsImZvcndhcmRSZWYiLCJEZWNrR0wiLCJSZWFjdE1hcEdMIiwidXNlQ29udHJvbCIsIk1hcGJveE92ZXJsYXkiLCJpc0VxdWFsIiwic3R5bGVkIiwiY3JlYXRlS2VwbGVyTGF5ZXJzIiwiY29tcG9zaXRlU3dpcGVGcmFtZSIsImdldFN3aXBlUGVyY2VudGFnZUF0VGltZSIsIkVYUE9SVF9ERUNLX0RFVklDRV9QUk9QUyIsIkVYUE9SVF9PVkVSTEFZX0RFVklDRV9QUk9QUyIsImdldEdsb2JlRXhwb3J0TGF5ZXJzIiwic2V0UmVmIiwicmVmIiwidmFsdWUiLCJjdXJyZW50IiwiRGVja0dMT3ZlcmxheSIsInByb3BzIiwib3ZlcmxheSIsIl9vYmplY3RTcHJlYWQiLCJpbnRlcmxlYXZlZCIsInNldFByb3BzIiwiX2RlY2siLCJkaXNwbGF5TmFtZSIsIlByZXZpZXdDb250YWluZXIiLCJkaXYiLCJfdGVtcGxhdGVPYmplY3QiLCJfdGFnZ2VkVGVtcGxhdGVMaXRlcmFsIiwiJHdpZHRoIiwiJGhlaWdodCIsIlZpc2libGVDYW52YXMiLCJjYW52YXMiLCJfdGVtcGxhdGVPYmplY3QyIiwiTWFwTGF5ZXIiLCJfdGVtcGxhdGVPYmplY3QzIiwiU3dpcGVFeHBvcnRWaWRlb1ByZXZpZXciLCJfQ29tcG9uZW50IiwiX3RoaXMiLCJfY2xhc3NDYWxsQ2hlY2siLCJfY2FsbFN1cGVyIiwiX2RlZmluZVByb3BlcnR5IiwiY3JlYXRlUmVmIiwicHJvY2VlZFRvTmV4dEZyYW1lIiwibGVmdExvYWRlZCIsIl9hcmVMYXllcnNMb2FkZWQiLCJyaWdodExvYWRlZCIsImxlZnRUaWxlc1JlYWR5IiwiZGlzYWJsZUJhc2VNYXAiLCJsZWZ0TWFwUmVmIiwiZ2V0TWFwIiwiYXJlVGlsZXNMb2FkZWQiLCJyaWdodFRpbGVzUmVhZHkiLCJyaWdodE1hcFJlZiIsIl9jb21wb3NpdGVGcmFtZSIsIl90aGlzJGxlZnRNYXBSZWYkY3VyciIsIm1hcCIsIm9uIiwic3RhdGUiLCJsZWZ0UmVhZHkiLCJzZXRTdGF0ZSIsIl90cnlDb21wb3NpdGUiLCJfdGhpcyRyaWdodE1hcFJlZiRjdXIiLCJyaWdodFJlYWR5Iiwic2lkZSIsInJlYWR5S2V5IiwibGVmdERlY2tSZWYiLCJyaWdodERlY2tSZWYiLCJfcmVzaXplVmlkZW8iLCJfaW5oZXJpdHMiLCJfY3JlYXRlQ2xhc3MiLCJrZXkiLCJjb21wb25lbnREaWRVcGRhdGUiLCJwcmV2UHJvcHMiLCJyZXNvbHV0aW9uIiwiY3VycmVudFRpbWVNcyIsInN3aXBlU3RhcnRQY3QiLCJzd2lwZUVuZFBjdCIsInN3aXBlRWFzaW5nIiwiX3RoaXMkcHJvcHMiLCJleHBvcnRWaWRlb1dpZHRoIiwiX3NldERldmljZVBpeGVsUmF0aW8iLCJkZXZpY2VQaXhlbFJhdGlvIiwid2luZG93IiwiX2dldENvbnRhaW5lciIsIl90aGlzJHByb3BzMiIsImFzcGVjdFJhdGlvIiwiaGVpZ2h0Iiwid2lkdGgiLCJfZ2V0Q3VycmVudFN3aXBlUGVyY2VudGFnZSIsIl90aGlzJHByb3BzMyIsImR1cmF0aW9uTXMiLCJfZ2V0TGVmdENhbnZhcyIsImdldENhbnZhcyIsIl9nZXRDYW52YXMiLCJfcmVmIiwiY2FsbCIsIl9nZXRSaWdodENhbnZhcyIsIl9nZXRDYW52YXMyIiwiX3JlZjIiLCJfdGhpcyRwcm9wcyRtYXBEYXRhIiwiX2dsb2JlJGNvbmZpZyIsImxlZnRDYW52YXMiLCJyaWdodENhbnZhcyIsIm91dHB1dENhbnZhcyIsImNvbXBvc2l0ZUNhbnZhc1JlZiIsInBlcmNlbnRhZ2UiLCJnbG9iZSIsIm1hcERhdGEiLCJtYXBTdGF0ZSIsInNob3dTdGFycyIsIkJvb2xlYW4iLCJlbmFibGVkIiwiY29uZmlnIiwic3RhcnMiLCJiYWNrZ3JvdW5kQ29sb3IiLCJkZWNrUmVmIiwibGF5ZXJzIiwiZXZlcnkiLCJsYXllciIsImlzTG9hZGVkIiwiZ2V0Q29tcG9zaXRlQ2FudmFzIiwiX2NyZWF0ZUxheWVycyIsIm1hcEluZGV4IiwiYmVmb3JlSWQiLCJfbWFwRGF0YSRtYXBTdGF0ZSIsIl90aGlzJHByb3BzNCIsImRlY2tQcm9wcyIsInZpZXdTdGF0ZSIsIm1hcFByb3BzIiwibWFwYm94QXBpQWNjZXNzVG9rZW4iLCJtYXBib3hBcGlVcmwiLCJjbG9uZSIsImlkIiwiY29uY2F0IiwiX3JlbmRlck1hcENhbnZhcyIsIl90aGlzMiIsIl90aGlzJHByb3BzNSIsImFkYXB0ZXIiLCJtYXBib3hMYXllckJlZm9yZUlkIiwiX3RoaXMkX2dldENvbnRhaW5lciIsImtlcGxlckxheWVycyIsIm1hcFJlZiIsIm9uTWFwTG9hZCIsIl9vbkxlZnRNYXBMb2FkIiwiX29uUmlnaHRNYXBMb2FkIiwiZGVjayIsImFkYXB0ZXJQcm9wcyIsImdldFByb3BzIiwiZXh0cmFQcm9wcyIsImFkYXB0ZXJPbkFmdGVyUmVuZGVyIiwib25BZnRlclJlbmRlciIsImNyZWF0ZUVsZW1lbnQiLCJfZXh0ZW5kcyIsImRldmljZVByb3BzIiwib25WaWV3U3RhdGVDaGFuZ2UiLCJfcmVmMyIsInZzIiwic2V0Vmlld1N0YXRlIiwicGFyYW1zIiwiX29uRGVja1JlbmRlciIsIl9yZWY1IiwibWFwU3R5bGVGcm9tUHJvcHMiLCJtYXBTdHlsZSIsIm1hcExpYiIsInRyYW5zZm9ybVJlcXVlc3QiLCJzdHlsZSIsImFudGlhbGlhcyIsInByZXNlcnZlRHJhd2luZ0J1ZmZlciIsIm9uTG9hZCIsInJlbmRlciIsIl90aGlzJF9nZXRDb250YWluZXIyIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL21vZGFscy9zd2lwZS1leHBvcnQtdmlkZW8tcHJldmlldy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IE1JVFxuLy8gQ29weXJpZ2h0IGNvbnRyaWJ1dG9ycyB0byB0aGUga2VwbGVyLmdsIHByb2plY3RcblxuaW1wb3J0IFJlYWN0LCB7Q29tcG9uZW50LCBSZWZPYmplY3QsIGZvcndhcmRSZWYsIEZvcndhcmRlZFJlZn0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IERlY2tHTCBmcm9tICdAZGVjay5nbC9yZWFjdCc7XG5pbXBvcnQgUmVhY3RNYXBHTCwge3R5cGUgTWFwUmVmLCB1c2VDb250cm9sfSBmcm9tICdyZWFjdC1tYXAtZ2wvbWFwbGlicmUnO1xuLy8gQHRzLWlnbm9yZSBtb2R1bGUgcmVzb2x1dGlvbiBtaXNtYXRjaCB3aXRoIG1vZHVsZVJlc29sdXRpb246XCJub2RlXCJcbmltcG9ydCB7TWFwYm94T3ZlcmxheX0gZnJvbSAnQGRlY2suZ2wvbWFwYm94JztcbmltcG9ydCB0eXBlIHtEZWNrLCBEZWNrUHJvcHMsIE1hcFZpZXdTdGF0ZX0gZnJvbSAnQGRlY2suZ2wvY29yZSc7XG5pbXBvcnQgaXNFcXVhbCBmcm9tICdlcy10b29sa2l0L2NvbXBhdC9pc0VxdWFsJztcbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuXG5pbXBvcnQge0RlY2tBZGFwdGVyfSBmcm9tICdAaHViYmxlLmdsL2NvcmUnO1xuaW1wb3J0IHtjcmVhdGVLZXBsZXJMYXllcnN9IGZyb20gJ0BodWJibGUuZ2wvcmVhY3QnO1xuaW1wb3J0IHtjb21wb3NpdGVTd2lwZUZyYW1lLCBnZXRTd2lwZVBlcmNlbnRhZ2VBdFRpbWUsIFN3aXBlRWFzaW5nfSBmcm9tICcuL3N3aXBlLWNvbXBvc2l0ZS11dGlscyc7XG5pbXBvcnQge1xuICBFWFBPUlRfREVDS19ERVZJQ0VfUFJPUFMsXG4gIEVYUE9SVF9PVkVSTEFZX0RFVklDRV9QUk9QUyxcbiAgZ2V0R2xvYmVFeHBvcnRMYXllcnNcbn0gZnJvbSAnLi9odWJibGUtdXRpbHMnO1xuXG5mdW5jdGlvbiBzZXRSZWY8VD4ocmVmOiBSZWFjdC5SZWY8VD4gfCBSZWFjdC5NdXRhYmxlUmVmT2JqZWN0PFQ+LCB2YWx1ZTogVCkge1xuICBpZiAodHlwZW9mIHJlZiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJlZih2YWx1ZSk7XG4gIH0gZWxzZSBpZiAocmVmKSB7XG4gICAgKHJlZiBhcyBSZWFjdC5NdXRhYmxlUmVmT2JqZWN0PFQ+KS5jdXJyZW50ID0gdmFsdWU7XG4gIH1cbn1cblxuY29uc3QgRGVja0dMT3ZlcmxheSA9IGZvcndhcmRSZWY8RGVjaywgYW55PihcbiAgKHByb3BzOiBhbnksIHJlZjogRm9yd2FyZGVkUmVmPERlY2s+KSA9PiB7XG4gICAgY29uc3Qgb3ZlcmxheSA9IHVzZUNvbnRyb2w8TWFwYm94T3ZlcmxheT4oKCkgPT4gbmV3IE1hcGJveE92ZXJsYXkoey4uLnByb3BzLCBpbnRlcmxlYXZlZDogdHJ1ZX0pKTtcbiAgICBvdmVybGF5LnNldFByb3BzKHByb3BzKTtcbiAgICBzZXRSZWYocmVmLCAob3ZlcmxheSBhcyBhbnkpLl9kZWNrKTtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuKTtcbkRlY2tHTE92ZXJsYXkuZGlzcGxheU5hbWUgPSAnRGVja0dMT3ZlcmxheSc7XG5cbmNvbnN0IFByZXZpZXdDb250YWluZXIgPSBzdHlsZWQuZGl2PHskd2lkdGg6IG51bWJlcjsgJGhlaWdodDogbnVtYmVyfT5gXG4gIHdpZHRoOiAke3Byb3BzID0+IHByb3BzLiR3aWR0aH1weDtcbiAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLiRoZWlnaHR9cHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbmA7XG5cbmNvbnN0IFZpc2libGVDYW52YXMgPSBzdHlsZWQuY2FudmFzPHskd2lkdGg6IG51bWJlcjsgJGhlaWdodDogbnVtYmVyfT5gXG4gIHdpZHRoOiAke3Byb3BzID0+IHByb3BzLiR3aWR0aH1weDtcbiAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLiRoZWlnaHR9cHg7XG4gIGRpc3BsYXk6IGJsb2NrO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHotaW5kZXg6IDE7XG5gO1xuXG5jb25zdCBNYXBMYXllciA9IHN0eWxlZC5kaXY8eyR3aWR0aDogbnVtYmVyOyAkaGVpZ2h0OiBudW1iZXJ9PmBcbiAgd2lkdGg6ICR7cHJvcHMgPT4gcHJvcHMuJHdpZHRofXB4O1xuICBoZWlnaHQ6ICR7cHJvcHMgPT4gcHJvcHMuJGhlaWdodH1weDtcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICB0b3A6IDA7XG4gIGxlZnQ6IDA7XG4gIG9wYWNpdHk6IDA7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICB6LWluZGV4OiAwO1xuYDtcblxuZXhwb3J0IHR5cGUgU3dpcGVFeHBvcnRWaWRlb1ByZXZpZXdQcm9wcyA9IHtcbiAgbWFwRGF0YTogYW55O1xuICByZXNvbHV0aW9uOiBbbnVtYmVyLCBudW1iZXJdO1xuICBleHBvcnRWaWRlb1dpZHRoOiBudW1iZXI7XG4gIGRpc2FibGVCYXNlTWFwOiBib29sZWFuO1xuICBkZWNrUHJvcHM/OiBEZWNrUHJvcHM7XG4gIHZpZXdTdGF0ZTogTWFwVmlld1N0YXRlO1xuICBhZGFwdGVyOiBEZWNrQWRhcHRlcjtcbiAgbWFwYm94TGF5ZXJCZWZvcmVJZD86IHN0cmluZztcbiAgcmVuZGVyaW5nOiBib29sZWFuO1xuICBzYXZpbmc6IGJvb2xlYW47XG4gIHNldFZpZXdTdGF0ZTogKHZpZXdTdGF0ZTogTWFwVmlld1N0YXRlKSA9PiB2b2lkO1xuICBkdXJhdGlvbk1zOiBudW1iZXI7XG4gIG1hcFByb3BzPzogUmVjb3JkPHN0cmluZywgYW55PjtcbiAgc3dpcGVTdGFydFBjdDogbnVtYmVyO1xuICBzd2lwZUVuZFBjdDogbnVtYmVyO1xuICBzd2lwZUVhc2luZzogU3dpcGVFYXNpbmc7XG4gIGN1cnJlbnRUaW1lTXM6IG51bWJlcjtcbiAgYmFja2dyb3VuZENvbG9yPzogc3RyaW5nO1xufTtcblxudHlwZSBTd2lwZUV4cG9ydFZpZGVvUHJldmlld1N0YXRlID0ge1xuICBsZWZ0UmVhZHk6IGJvb2xlYW47XG4gIHJpZ2h0UmVhZHk6IGJvb2xlYW47XG59O1xuXG4vKipcbiAqIEEgZHVhbC1jYW52YXMgdmlkZW8gZXhwb3J0IHByZXZpZXcgdGhhdCByZW5kZXJzIGxlZnQvcmlnaHQgc3BsaXQgbWFwIGxheWVyc1xuICogYW5kIGNvbXBvc2l0ZXMgdGhlbSB3aXRoIGFuIGFuaW1hdGVkIHN3aXBlIGRpdmlkZXIuXG4gKi9cbmV4cG9ydCBjbGFzcyBTd2lwZUV4cG9ydFZpZGVvUHJldmlldyBleHRlbmRzIENvbXBvbmVudDxcbiAgU3dpcGVFeHBvcnRWaWRlb1ByZXZpZXdQcm9wcyxcbiAgU3dpcGVFeHBvcnRWaWRlb1ByZXZpZXdTdGF0ZVxuPiB7XG4gIGxlZnRNYXBSZWY6IFJlZk9iamVjdDxNYXBSZWYgfCBudWxsPiA9IFJlYWN0LmNyZWF0ZVJlZjxNYXBSZWYgfCBudWxsPigpO1xuICByaWdodE1hcFJlZjogUmVmT2JqZWN0PE1hcFJlZiB8IG51bGw+ID0gUmVhY3QuY3JlYXRlUmVmPE1hcFJlZiB8IG51bGw+KCk7XG4gIGxlZnREZWNrUmVmOiBSZWZPYmplY3Q8RGVjayB8IG51bGw+ID0gUmVhY3QuY3JlYXRlUmVmPERlY2sgfCBudWxsPigpO1xuICByaWdodERlY2tSZWY6IFJlZk9iamVjdDxEZWNrIHwgbnVsbD4gPSBSZWFjdC5jcmVhdGVSZWY8RGVjayB8IG51bGw+KCk7XG4gIGNvbXBvc2l0ZUNhbnZhc1JlZjogUmVmT2JqZWN0PEhUTUxDYW52YXNFbGVtZW50IHwgbnVsbD4gPSBSZWFjdC5jcmVhdGVSZWY8SFRNTENhbnZhc0VsZW1lbnQgfCBudWxsPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBTd2lwZUV4cG9ydFZpZGVvUHJldmlld1Byb3BzKSB7XG4gICAgc3VwZXIocHJvcHMpO1xuXG4gICAgdGhpcy5zdGF0ZSA9IHtcbiAgICAgIGxlZnRSZWFkeTogZmFsc2UsXG4gICAgICByaWdodFJlYWR5OiBmYWxzZVxuICAgIH07XG5cbiAgICB0aGlzLl9yZXNpemVWaWRlbygpO1xuICB9XG5cbiAgY29tcG9uZW50RGlkVXBkYXRlKHByZXZQcm9wczogU3dpcGVFeHBvcnRWaWRlb1ByZXZpZXdQcm9wcykge1xuICAgIGlmICghaXNFcXVhbChwcmV2UHJvcHMucmVzb2x1dGlvbiwgdGhpcy5wcm9wcy5yZXNvbHV0aW9uKSkge1xuICAgICAgdGhpcy5fcmVzaXplVmlkZW8oKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICBwcmV2UHJvcHMuY3VycmVudFRpbWVNcyAhPT0gdGhpcy5wcm9wcy5jdXJyZW50VGltZU1zIHx8XG4gICAgICBwcmV2UHJvcHMuc3dpcGVTdGFydFBjdCAhPT0gdGhpcy5wcm9wcy5zd2lwZVN0YXJ0UGN0IHx8XG4gICAgICBwcmV2UHJvcHMuc3dpcGVFbmRQY3QgIT09IHRoaXMucHJvcHMuc3dpcGVFbmRQY3QgfHxcbiAgICAgIHByZXZQcm9wcy5zd2lwZUVhc2luZyAhPT0gdGhpcy5wcm9wcy5zd2lwZUVhc2luZ1xuICAgICkge1xuICAgICAgdGhpcy5fY29tcG9zaXRlRnJhbWUoKTtcbiAgICB9XG4gIH1cblxuICBfcmVzaXplVmlkZW8oKSB7XG4gICAgY29uc3Qge2V4cG9ydFZpZGVvV2lkdGgsIHJlc29sdXRpb259ID0gdGhpcy5wcm9wcztcbiAgICB0aGlzLl9zZXREZXZpY2VQaXhlbFJhdGlvKHJlc29sdXRpb25bMF0gLyBleHBvcnRWaWRlb1dpZHRoKTtcbiAgfVxuXG4gIF9zZXREZXZpY2VQaXhlbFJhdGlvKGRldmljZVBpeGVsUmF0aW86IG51bWJlcikge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICB3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpbyA9IGRldmljZVBpeGVsUmF0aW87XG4gIH1cblxuICBfZ2V0Q29udGFpbmVyKCkge1xuICAgIGNvbnN0IHtleHBvcnRWaWRlb1dpZHRoLCByZXNvbHV0aW9ufSA9IHRoaXMucHJvcHM7XG4gICAgY29uc3QgYXNwZWN0UmF0aW8gPSByZXNvbHV0aW9uWzBdIC8gcmVzb2x1dGlvblsxXTtcbiAgICByZXR1cm4ge2hlaWdodDogZXhwb3J0VmlkZW9XaWR0aCAvIGFzcGVjdFJhdGlvLCB3aWR0aDogZXhwb3J0VmlkZW9XaWR0aH07XG4gIH1cblxuICBfZ2V0Q3VycmVudFN3aXBlUGVyY2VudGFnZSgpOiBudW1iZXIge1xuICAgIGNvbnN0IHtjdXJyZW50VGltZU1zLCBkdXJhdGlvbk1zLCBzd2lwZVN0YXJ0UGN0LCBzd2lwZUVuZFBjdCwgc3dpcGVFYXNpbmd9ID0gdGhpcy5wcm9wcztcbiAgICByZXR1cm4gZ2V0U3dpcGVQZXJjZW50YWdlQXRUaW1lKGN1cnJlbnRUaW1lTXMsIGR1cmF0aW9uTXMsIHN3aXBlU3RhcnRQY3QsIHN3aXBlRW5kUGN0LCBzd2lwZUVhc2luZyk7XG4gIH1cblxuICBfZ2V0TGVmdENhbnZhcygpOiBIVE1MQ2FudmFzRWxlbWVudCB8IG51bGwge1xuICAgIGlmICh0aGlzLmxlZnRNYXBSZWYuY3VycmVudCkge1xuICAgICAgcmV0dXJuIHRoaXMubGVmdE1hcFJlZi5jdXJyZW50LmdldE1hcCgpLmdldENhbnZhcygpO1xuICAgIH1cbiAgICAvLyBGYWxsYmFjazogRGVja0dMIGNhbnZhcyAobm8gYmFzZW1hcCBtb2RlKVxuICAgIGlmICh0aGlzLmxlZnREZWNrUmVmLmN1cnJlbnQpIHtcbiAgICAgIHJldHVybiAodGhpcy5sZWZ0RGVja1JlZi5jdXJyZW50IGFzIGFueSkuZ2V0Q2FudmFzPy4oKSB8fCBudWxsO1xuICAgIH1cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIF9nZXRSaWdodENhbnZhcygpOiBIVE1MQ2FudmFzRWxlbWVudCB8IG51bGwge1xuICAgIGlmICh0aGlzLnJpZ2h0TWFwUmVmLmN1cnJlbnQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJpZ2h0TWFwUmVmLmN1cnJlbnQuZ2V0TWFwKCkuZ2V0Q2FudmFzKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnJpZ2h0RGVja1JlZi5jdXJyZW50KSB7XG4gICAgICByZXR1cm4gKHRoaXMucmlnaHREZWNrUmVmLmN1cnJlbnQgYXMgYW55KS5nZXRDYW52YXM/LigpIHx8IG51bGw7XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgX2NvbXBvc2l0ZUZyYW1lKCkge1xuICAgIGNvbnN0IGxlZnRDYW52YXMgPSB0aGlzLl9nZXRMZWZ0Q2FudmFzKCk7XG4gICAgY29uc3QgcmlnaHRDYW52YXMgPSB0aGlzLl9nZXRSaWdodENhbnZhcygpO1xuICAgIGNvbnN0IG91dHB1dENhbnZhcyA9IHRoaXMuY29tcG9zaXRlQ2FudmFzUmVmLmN1cnJlbnQ7XG5cbiAgICBpZiAoIWxlZnRDYW52YXMgfHwgIXJpZ2h0Q2FudmFzIHx8ICFvdXRwdXRDYW52YXMpIHJldHVybjtcblxuICAgIGNvbnN0IHBlcmNlbnRhZ2UgPSB0aGlzLl9nZXRDdXJyZW50U3dpcGVQZXJjZW50YWdlKCk7XG4gICAgY29uc3QgZ2xvYmUgPSB0aGlzLnByb3BzLm1hcERhdGE/Lm1hcFN0YXRlPy5nbG9iZTtcbiAgICBjb25zdCBzaG93U3RhcnMgPSBCb29sZWFuKGdsb2JlPy5lbmFibGVkICYmIGdsb2JlPy5jb25maWc/LnN0YXJzKTtcblxuICAgIGNvbXBvc2l0ZVN3aXBlRnJhbWUoXG4gICAgICBsZWZ0Q2FudmFzLFxuICAgICAgcmlnaHRDYW52YXMsXG4gICAgICBvdXRwdXRDYW52YXMsXG4gICAgICBwZXJjZW50YWdlLFxuICAgICAgdHJ1ZSxcbiAgICAgIHRoaXMucHJvcHMuYmFja2dyb3VuZENvbG9yLFxuICAgICAgc2hvd1N0YXJzXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgYnkgdGhlIHBhcmVudCBjb250YWluZXIncyBhZGFwdGVyIGFmdGVyIGVhY2ggcmVuZGVyLlxuICAgKiBXZSBuZWVkIGJvdGggbWFwcyB0byBiZSBsb2FkZWQgYmVmb3JlIGNvbXBvc2l0aW5nIGFuZCBjYXB0dXJpbmcuXG4gICAqL1xuICBvbkFmdGVyUmVuZGVyID0gKHByb2NlZWRUb05leHRGcmFtZTogKCkgPT4gdm9pZCkgPT4ge1xuICAgIGNvbnN0IGxlZnRMb2FkZWQgPSB0aGlzLl9hcmVMYXllcnNMb2FkZWQoJ2xlZnQnKTtcbiAgICBjb25zdCByaWdodExvYWRlZCA9IHRoaXMuX2FyZUxheWVyc0xvYWRlZCgncmlnaHQnKTtcbiAgICBjb25zdCBsZWZ0VGlsZXNSZWFkeSA9XG4gICAgICB0aGlzLnByb3BzLmRpc2FibGVCYXNlTWFwIHx8ICF0aGlzLmxlZnRNYXBSZWYuY3VycmVudCB8fCB0aGlzLmxlZnRNYXBSZWYuY3VycmVudC5nZXRNYXAoKS5hcmVUaWxlc0xvYWRlZCgpO1xuICAgIGNvbnN0IHJpZ2h0VGlsZXNSZWFkeSA9XG4gICAgICB0aGlzLnByb3BzLmRpc2FibGVCYXNlTWFwIHx8ICF0aGlzLnJpZ2h0TWFwUmVmLmN1cnJlbnQgfHwgdGhpcy5yaWdodE1hcFJlZi5jdXJyZW50LmdldE1hcCgpLmFyZVRpbGVzTG9hZGVkKCk7XG5cbiAgICBpZiAobGVmdExvYWRlZCAmJiByaWdodExvYWRlZCAmJiBsZWZ0VGlsZXNSZWFkeSAmJiByaWdodFRpbGVzUmVhZHkpIHtcbiAgICAgIHRoaXMuX2NvbXBvc2l0ZUZyYW1lKCk7XG4gICAgICBwcm9jZWVkVG9OZXh0RnJhbWUoKTtcbiAgICB9XG4gIH07XG5cbiAgX2FyZUxheWVyc0xvYWRlZChzaWRlOiAnbGVmdCcgfCAncmlnaHQnKTogYm9vbGVhbiB7XG4gICAgY29uc3QgZGVja1JlZiA9IHNpZGUgPT09ICdsZWZ0JyA/IHRoaXMubGVmdERlY2tSZWYgOiB0aGlzLnJpZ2h0RGVja1JlZjtcbiAgICBpZiAoIWRlY2tSZWYuY3VycmVudCkgcmV0dXJuIGZhbHNlO1xuICAgIGNvbnN0IGxheWVycyA9IGRlY2tSZWYuY3VycmVudC5wcm9wcy5sYXllcnMgfHwgW107XG4gICAgcmV0dXJuIGxheWVycy5ldmVyeSgobGF5ZXI6IGFueSkgPT4gbGF5ZXIuaXNMb2FkZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgY29tcG9zaXRlZCBjYW52YXMgZWxlbWVudCBmb3IgdmlkZW8gY2FwdHVyZS5cbiAgICovXG4gIGdldENvbXBvc2l0ZUNhbnZhcygpOiBIVE1MQ2FudmFzRWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmNvbXBvc2l0ZUNhbnZhc1JlZi5jdXJyZW50O1xuICB9XG5cbiAgX2NyZWF0ZUxheWVycyhtYXBJbmRleDogbnVtYmVyLCBiZWZvcmVJZD86IHN0cmluZykge1xuICAgIGNvbnN0IHtkZWNrUHJvcHMsIG1hcERhdGEsIHZpZXdTdGF0ZSwgZGlzYWJsZUJhc2VNYXAsIG1hcFByb3BzfSA9IHRoaXMucHJvcHM7XG5cbiAgICAvLyBHbG9iZSBzd2lwZTogYnVpbGQgYSBmcmVzaCBzZXQgb2YgZ2xvYmUgbGF5ZXJzIHBlciBzaWRlLiBFYWNoIHNpZGUgaXMgYVxuICAgIC8vIHNlcGFyYXRlIERlY2ssIHNvIGl0IG5lZWRzIGl0cyBPV04gTGF5ZXIgaW5zdGFuY2VzIChkZWNrLmdsIExheWVyIG9iamVjdHNcbiAgICAvLyBhcmUgc3RhdGVmdWwgYW5kIGJvdW5kIHRvIG9uZSBEZWNrIOKAlCBzaGFyaW5nIHRoZW0gbWFrZXMgdGhlIHNlY29uZCBEZWNrXG4gICAgLy8gYXNzZXJ0IHdoaWxlIGluaXRpYWxpemluZyB0aGVtKS4gQnVpbGRpbmcgcGVyIGBtYXBJbmRleGAgYWxzbyByZXNwZWN0cyB0aGVcbiAgICAvLyBzcGxpdC1tYXAgbGF5ZXIgdmlzaWJpbGl0eSBvbiBlYWNoIGhhbGYgb2YgdGhlIHN3aXBlLlxuICAgIGlmIChkaXNhYmxlQmFzZU1hcCAmJiBtYXBEYXRhPy5tYXBTdGF0ZT8uZ2xvYmU/LmVuYWJsZWQpIHtcbiAgICAgIHJldHVybiBnZXRHbG9iZUV4cG9ydExheWVycyhtYXBEYXRhLCB7XG4gICAgICAgIG1hcEluZGV4LFxuICAgICAgICBtYXBib3hBcGlBY2Nlc3NUb2tlbjogbWFwUHJvcHM/Lm1hcGJveEFwaUFjY2Vzc1Rva2VuLFxuICAgICAgICBtYXBib3hBcGlVcmw6IG1hcFByb3BzPy5tYXBib3hBcGlVcmwsXG4gICAgICAgIHZpZXdTdGF0ZVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgaWYgKGRlY2tQcm9wcyAmJiBkZWNrUHJvcHMubGF5ZXJzKSB7XG4gICAgICAvLyBOb24tZ2xvYmUgcGF0aCB3aXRoIGV4cGxpY2l0IGxheWVyczogY2xvbmUgcGVyIHNpZGUgd2l0aCBhIHVuaXF1ZSBpZCBzb1xuICAgICAgLy8gdGhlIHR3byBEZWNrIGluc3RhbmNlcyBkb24ndCBzaGFyZSB0aGUgc2FtZSBzdGF0ZWZ1bCBMYXllciBvYmplY3RzLlxuICAgICAgcmV0dXJuIGRlY2tQcm9wcy5sYXllcnMubWFwKChsYXllcjogYW55KSA9PlxuICAgICAgICBsYXllciAmJiB0eXBlb2YgbGF5ZXIuY2xvbmUgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICA/IGxheWVyLmNsb25lKHtpZDogYCR7bGF5ZXIuaWR9LXN3aXBlLSR7bWFwSW5kZXh9YH0pXG4gICAgICAgICAgOiBsYXllclxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGNyZWF0ZUtlcGxlckxheWVycyhtYXBEYXRhLCB2aWV3U3RhdGUsIG1hcEluZGV4LCBiZWZvcmVJZCk7XG4gIH1cblxuICBfb25MZWZ0TWFwTG9hZCA9ICgpID0+IHtcbiAgICBjb25zdCBtYXAgPSB0aGlzLmxlZnRNYXBSZWYuY3VycmVudD8uZ2V0TWFwKCk7XG4gICAgaWYgKG1hcCkge1xuICAgICAgbWFwLm9uKCdyZW5kZXInLCAoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5zdGF0ZS5sZWZ0UmVhZHkpIHtcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtsZWZ0UmVhZHk6IHRydWV9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl90cnlDb21wb3NpdGUoKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcblxuICBfb25SaWdodE1hcExvYWQgPSAoKSA9PiB7XG4gICAgY29uc3QgbWFwID0gdGhpcy5yaWdodE1hcFJlZi5jdXJyZW50Py5nZXRNYXAoKTtcbiAgICBpZiAobWFwKSB7XG4gICAgICBtYXAub24oJ3JlbmRlcicsICgpID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLnN0YXRlLnJpZ2h0UmVhZHkpIHtcbiAgICAgICAgICB0aGlzLnNldFN0YXRlKHtyaWdodFJlYWR5OiB0cnVlfSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5fdHJ5Q29tcG9zaXRlKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH07XG5cbiAgX3RyeUNvbXBvc2l0ZSgpIHtcbiAgICBpZiAodGhpcy5zdGF0ZS5sZWZ0UmVhZHkgJiYgdGhpcy5zdGF0ZS5yaWdodFJlYWR5KSB7XG4gICAgICB0aGlzLl9jb21wb3NpdGVGcmFtZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEdsb2JlIChkaXNhYmxlQmFzZU1hcCkgbW9kZSBoYXMgbm8gUmVhY3RNYXBHTCBhbmQgdGhlcmVmb3JlIG5vIG1hcCAncmVuZGVyJ1xuICAvLyBldmVudCB0byBkcml2ZSBjb21wb3NpdGluZy4gSW5zdGVhZCBlYWNoIGJhcmUgPERlY2tHTD4gcmVwb3J0cyB3aGVuIGl0IGhhc1xuICAvLyBkcmF3biB2aWEgb25BZnRlclJlbmRlcjsgb25jZSBib3RoIHNpZGVzIGhhdmUgcmVuZGVyZWQgd2UgY29tcG9zaXRlLiBXaXRob3V0XG4gIC8vIHRoaXMgdGhlIGNvbXBvc2l0ZSBvdXRwdXQgY2FudmFzIGlzIG5ldmVyIHBhaW50ZWQgdW50aWwgdGhlIHVzZXIgcHJlc3Nlc1xuICAvLyBwbGF5LCBzbyB0aGUgcHJldmlldyBzaG93cyBhIGJsYW5rICh3aGl0ZSkgZnJhbWUgb24gbW91bnQuXG4gIF9vbkRlY2tSZW5kZXIgPSAoc2lkZTogJ2xlZnQnIHwgJ3JpZ2h0JykgPT4ge1xuICAgIGNvbnN0IHJlYWR5S2V5ID0gc2lkZSA9PT0gJ2xlZnQnID8gJ2xlZnRSZWFkeScgOiAncmlnaHRSZWFkeSc7XG4gICAgaWYgKCF0aGlzLnN0YXRlW3JlYWR5S2V5XSkge1xuICAgICAgdGhpcy5zZXRTdGF0ZSh7W3JlYWR5S2V5XTogdHJ1ZX0gYXMgYW55KTtcbiAgICB9XG4gICAgLy8gQ29tcG9zaXRlIGFzIHNvb24gYXMgYm90aCBkZWNrcyBleGlzdCBhbmQgaGF2ZSBkcmF3bi4gV2UgY2hlY2sgdGhlIGRlY2tcbiAgICAvLyByZWZzIGRpcmVjdGx5IChub3QgUmVhY3Qgc3RhdGUsIHdoaWNoIGNhbiBiZSBzdGFsZSByaWdodCBhZnRlciBzZXRTdGF0ZSlcbiAgICAvLyBhbmQgaW50ZW50aW9uYWxseSBkb24ndCBnYXRlIG9uIGxheWVycyBiZWluZyBmdWxseSBsb2FkZWQgaGVyZSAodGhhdCBnYXRlXG4gICAgLy8gbGl2ZXMgaW4gdGhlIGNhcHR1cmUgbG9vcCk6IGZvciBhIGxpdmUgcHJldmlldyB3ZSB3YW50IHRvIHNob3cgdGhlIGdsb2JlXG4gICAgLy8gYXMgaXQgc3RyZWFtcyBpbiByYXRoZXIgdGhhbiBhIGJsYW5rIGZyYW1lIHdoaWxlIHRpbGVzIGxvYWQuXG4gICAgaWYgKHRoaXMubGVmdERlY2tSZWYuY3VycmVudCAmJiB0aGlzLnJpZ2h0RGVja1JlZi5jdXJyZW50KSB7XG4gICAgICB0aGlzLl9jb21wb3NpdGVGcmFtZSgpO1xuICAgIH1cbiAgfTtcblxuICBfcmVuZGVyTWFwQ2FudmFzKFxuICAgIHNpZGU6ICdsZWZ0JyB8ICdyaWdodCcsXG4gICAgbWFwSW5kZXg6IG51bWJlclxuICApIHtcbiAgICBjb25zdCB7dmlld1N0YXRlLCBhZGFwdGVyLCBkZWNrUHJvcHMsIG1hcFByb3BzLCBkaXNhYmxlQmFzZU1hcCwgbWFwYm94TGF5ZXJCZWZvcmVJZH0gPSB0aGlzLnByb3BzO1xuICAgIGNvbnN0IHt3aWR0aCwgaGVpZ2h0fSA9IHRoaXMuX2dldENvbnRhaW5lcigpO1xuICAgIGNvbnN0IGtlcGxlckxheWVycyA9IHRoaXMuX2NyZWF0ZUxheWVycyhtYXBJbmRleCwgbWFwYm94TGF5ZXJCZWZvcmVJZCk7XG4gICAgY29uc3QgbWFwUmVmID0gc2lkZSA9PT0gJ2xlZnQnID8gdGhpcy5sZWZ0TWFwUmVmIDogdGhpcy5yaWdodE1hcFJlZjtcbiAgICBjb25zdCBkZWNrUmVmID0gc2lkZSA9PT0gJ2xlZnQnID8gdGhpcy5sZWZ0RGVja1JlZiA6IHRoaXMucmlnaHREZWNrUmVmO1xuICAgIGNvbnN0IG9uTWFwTG9hZCA9IHNpZGUgPT09ICdsZWZ0JyA/IHRoaXMuX29uTGVmdE1hcExvYWQgOiB0aGlzLl9vblJpZ2h0TWFwTG9hZDtcbiAgICBjb25zdCBkZWNrID0gZGVja1JlZi5jdXJyZW50O1xuXG4gICAgaWYgKGRpc2FibGVCYXNlTWFwKSB7XG4gICAgICBjb25zdCBhZGFwdGVyUHJvcHMgPSBhZGFwdGVyLmdldFByb3BzKHtcbiAgICAgICAgZGVjazogZGVjayBhcyBhbnksXG4gICAgICAgIGV4dHJhUHJvcHM6IHsuLi5kZWNrUHJvcHMsIGxheWVyczoga2VwbGVyTGF5ZXJzfVxuICAgICAgfSkgYXMgYW55O1xuICAgICAgY29uc3QgYWRhcHRlck9uQWZ0ZXJSZW5kZXIgPSBhZGFwdGVyUHJvcHMub25BZnRlclJlbmRlcjtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIDxNYXBMYXllciAkd2lkdGg9e3dpZHRofSAkaGVpZ2h0PXtoZWlnaHR9PlxuICAgICAgICAgIDxEZWNrR0xcbiAgICAgICAgICAgIHJlZj17cmVmID0+IHNldFJlZihkZWNrUmVmLCByZWY/LmRlY2sgYXMgYW55KX1cbiAgICAgICAgICAgIGRldmljZVByb3BzPXtFWFBPUlRfREVDS19ERVZJQ0VfUFJPUFN9XG4gICAgICAgICAgICB7Li4uYWRhcHRlclByb3BzfVxuICAgICAgICAgICAgdmlld1N0YXRlPXt2aWV3U3RhdGV9XG4gICAgICAgICAgICBvblZpZXdTdGF0ZUNoYW5nZT17KHt2aWV3U3RhdGU6IHZzfTogYW55KSA9PiB0aGlzLnByb3BzLnNldFZpZXdTdGF0ZSh2cyl9XG4gICAgICAgICAgICBvbkFmdGVyUmVuZGVyPXsocGFyYW1zOiBhbnkpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHR5cGVvZiBhZGFwdGVyT25BZnRlclJlbmRlciA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgIGFkYXB0ZXJPbkFmdGVyUmVuZGVyKHBhcmFtcyk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgdGhpcy5fb25EZWNrUmVuZGVyKHNpZGUpO1xuICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIHsuLi50aGlzLl9nZXRDb250YWluZXIoKX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L01hcExheWVyPlxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCB7XG4gICAgICBtYXBTdHlsZTogbWFwU3R5bGVGcm9tUHJvcHMsXG4gICAgICBtYXBMaWIsXG4gICAgICB0cmFuc2Zvcm1SZXF1ZXN0XG4gICAgfSA9IChtYXBQcm9wcyB8fCB7fSkgYXMgYW55O1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxNYXBMYXllciAkd2lkdGg9e3dpZHRofSAkaGVpZ2h0PXtoZWlnaHR9PlxuICAgICAgICA8UmVhY3RNYXBHTFxuICAgICAgICAgIHJlZj17bWFwUmVmfVxuICAgICAgICAgIHN0eWxlPXt7d2lkdGgsIGhlaWdodH19XG4gICAgICAgICAgYW50aWFsaWFzXG4gICAgICAgICAgbWFwTGliPXttYXBMaWJ9XG4gICAgICAgICAgdHJhbnNmb3JtUmVxdWVzdD17dHJhbnNmb3JtUmVxdWVzdH1cbiAgICAgICAgICBwcmVzZXJ2ZURyYXdpbmdCdWZmZXJcbiAgICAgICAgICB7Li4udmlld1N0YXRlfVxuICAgICAgICAgIG1hcFN0eWxlPXttYXBTdHlsZUZyb21Qcm9wc31cbiAgICAgICAgICBvbkxvYWQ9e29uTWFwTG9hZH1cbiAgICAgICAgPlxuICAgICAgICAgIDxEZWNrR0xPdmVybGF5XG4gICAgICAgICAgICByZWY9e2RlY2tSZWZ9XG4gICAgICAgICAgICBkZXZpY2VQcm9wcz17RVhQT1JUX09WRVJMQVlfREVWSUNFX1BST1BTfVxuICAgICAgICAgICAgey4uLmFkYXB0ZXIuZ2V0UHJvcHMoe2RlY2s6IGRlY2sgYXMgYW55LCBleHRyYVByb3BzOiB7Li4uZGVja1Byb3BzLCBsYXllcnM6IGtlcGxlckxheWVyc319KX1cbiAgICAgICAgICAvPlxuICAgICAgICA8L1JlYWN0TWFwR0w+XG4gICAgICA8L01hcExheWVyPlxuICAgICk7XG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge3Jlc29sdXRpb259ID0gdGhpcy5wcm9wcztcbiAgICBjb25zdCB7d2lkdGgsIGhlaWdodH0gPSB0aGlzLl9nZXRDb250YWluZXIoKTtcblxuICAgIHJldHVybiAoXG4gICAgICA8UHJldmlld0NvbnRhaW5lciAkd2lkdGg9e3dpZHRofSAkaGVpZ2h0PXtoZWlnaHR9PlxuICAgICAgICB7LyogSGlkZGVuIG1hcCBjYW52YXNlcyBmb3IgbGVmdCAobWFwSW5kZXg9MCkgYW5kIHJpZ2h0IChtYXBJbmRleD0xKSAqL31cbiAgICAgICAge3RoaXMuX3JlbmRlck1hcENhbnZhcygnbGVmdCcsIDApfVxuICAgICAgICB7dGhpcy5fcmVuZGVyTWFwQ2FudmFzKCdyaWdodCcsIDEpfVxuXG4gICAgICAgIHsvKiBWaXNpYmxlIGNvbXBvc2l0ZWQgb3V0cHV0ICovfVxuICAgICAgICA8VmlzaWJsZUNhbnZhc1xuICAgICAgICAgIHJlZj17dGhpcy5jb21wb3NpdGVDYW52YXNSZWZ9XG4gICAgICAgICAgd2lkdGg9e3Jlc29sdXRpb25bMF19XG4gICAgICAgICAgaGVpZ2h0PXtyZXNvbHV0aW9uWzFdfVxuICAgICAgICAgICR3aWR0aD17d2lkdGh9XG4gICAgICAgICAgJGhlaWdodD17aGVpZ2h0fVxuICAgICAgICAvPlxuICAgICAgPC9QcmV2aWV3Q29udGFpbmVyPlxuICAgICk7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBO0FBQ0E7O0FBRUEsT0FBT0EsS0FBSyxJQUFHQyxTQUFTLEVBQWFDLFVBQVUsUUFBcUIsT0FBTztBQUMzRSxPQUFPQyxNQUFNLE1BQU0sZ0JBQWdCO0FBQ25DLE9BQU9DLFVBQVUsSUFBZ0JDLFVBQVUsUUFBTyx1QkFBdUI7QUFDekU7QUFDQSxTQUFRQyxhQUFhLFFBQU8saUJBQWlCO0FBRTdDLE9BQU9DLE9BQU8sTUFBTSwyQkFBMkI7QUFDL0MsT0FBT0MsTUFBTSxNQUFNLG1CQUFtQjtBQUd0QyxTQUFRQyxrQkFBa0IsUUFBTyxrQkFBa0I7QUFDbkQsU0FBUUMsbUJBQW1CLEVBQUVDLHdCQUF3QixRQUFvQix5QkFBeUI7QUFDbEcsU0FDRUMsd0JBQXdCLEVB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
|