UNPKG

kepler.gl

Version:

kepler.gl is a webgl based application to visualize large scale location data in the browser

98 lines (97 loc) 20.5 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.LoadDataModalFactory = LoadDataModalFactory; exports["default"] = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties")); var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral")); var _react = _interopRequireWildcard(require("react")); var _styledComponents = _interopRequireDefault(require("styled-components")); var _lodash = _interopRequireDefault(require("lodash.get")); var _reactIntl = require("react-intl"); var _fileUpload = _interopRequireDefault(require("../common/file-uploader/file-upload")); var _loadStorageMap = _interopRequireDefault(require("./load-storage-map")); var _loadTileset = _interopRequireDefault(require("./tilesets-modals/load-tileset")); var _modalTabs = _interopRequireDefault(require("./modal-tabs")); var _loadingDialog = _interopRequireDefault(require("./loading-dialog")); var _constants = require("@kepler.gl/constants"); var _excluded = ["onFileUpload", "onTilesetAdded", "fileLoading", "loadingMethods", "isCloudMapLoading"]; var _templateObject; // SPDX-License-Identifier: MIT // Copyright contributors to the kepler.gl project function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); } function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { "default": e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n["default"] = e, t && t.set(e, n), n; } function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; } function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } var StyledLoadDataModal = _styledComponents["default"].div.attrs({ className: 'load-data-modal' })(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2["default"])(["\n padding: ", ";\n min-height: 440px;\n display: flex;\n flex-direction: column;\n"])), function (props) { return props.theme.modalPadding; }); var noop = function noop() { return; }; var getDefaultMethod = function getDefaultMethod() { var methods = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : []; return Array.isArray(methods) ? (0, _lodash["default"])(methods, [0]) : null; }; LoadDataModalFactory.deps = [_modalTabs["default"], _fileUpload["default"], _loadStorageMap["default"], _loadTileset["default"]]; function LoadDataModalFactory(ModalTabs, FileUpload, LoadStorageMap, LoadTileset) { var defaultLoadingMethods = [{ id: _constants.LOADING_METHODS.upload, label: 'modal.loadData.upload', elementType: FileUpload }, { id: _constants.LOADING_METHODS.tileset, label: 'modal.loadData.tileset', elementType: LoadTileset }, { id: _constants.LOADING_METHODS.storage, label: 'modal.loadData.storage', elementType: LoadStorageMap }]; var LoadDataModal = function LoadDataModal(_ref) { var _ref$onFileUpload = _ref.onFileUpload, onFileUpload = _ref$onFileUpload === void 0 ? noop : _ref$onFileUpload, _ref$onTilesetAdded = _ref.onTilesetAdded, onTilesetAdded = _ref$onTilesetAdded === void 0 ? noop : _ref$onTilesetAdded, _ref$fileLoading = _ref.fileLoading, fileLoading = _ref$fileLoading === void 0 ? false : _ref$fileLoading, _ref$loadingMethods = _ref.loadingMethods, loadingMethods = _ref$loadingMethods === void 0 ? defaultLoadingMethods : _ref$loadingMethods, isCloudMapLoading = _ref.isCloudMapLoading, restProps = (0, _objectWithoutProperties2["default"])(_ref, _excluded); var intl = (0, _reactIntl.useIntl)(); var currentModalProps = _objectSpread(_objectSpread({}, restProps), {}, { onFileUpload: onFileUpload, onTilesetAdded: onTilesetAdded, fileLoading: fileLoading, isCloudMapLoading: isCloudMapLoading }); // const {loadingMethods, isCloudMapLoading} = props; var _useState = (0, _react.useState)(getDefaultMethod(loadingMethods)), _useState2 = (0, _slicedToArray2["default"])(_useState, 2), currentMethod = _useState2[0], toggleMethod = _useState2[1]; var ElementType = currentMethod === null || currentMethod === void 0 ? void 0 : currentMethod.elementType; return /*#__PURE__*/_react["default"].createElement(StyledLoadDataModal, null, /*#__PURE__*/_react["default"].createElement(ModalTabs, { currentMethod: currentMethod === null || currentMethod === void 0 ? void 0 : currentMethod.id, loadingMethods: loadingMethods, toggleMethod: toggleMethod }), isCloudMapLoading ? /*#__PURE__*/_react["default"].createElement(_loadingDialog["default"], { size: 64 }) : ElementType && /*#__PURE__*/_react["default"].createElement(ElementType, (0, _extends2["default"])({ key: currentMethod === null || currentMethod === void 0 ? void 0 : currentMethod.id, intl: intl }, currentModalProps))); }; LoadDataModal.defaultLoadingMethods = defaultLoadingMethods; return LoadDataModal; } var _default = exports["default"] = LoadDataModalFactory; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfc3R5bGVkQ29tcG9uZW50cyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfbG9kYXNoIiwiX3JlYWN0SW50bCIsIl9maWxlVXBsb2FkIiwiX2xvYWRTdG9yYWdlTWFwIiwiX2xvYWRUaWxlc2V0IiwiX21vZGFsVGFicyIsIl9sb2FkaW5nRGlhbG9nIiwiX2NvbnN0YW50cyIsIl9leGNsdWRlZCIsIl90ZW1wbGF0ZU9iamVjdCIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsImUiLCJXZWFrTWFwIiwiciIsInQiLCJfX2VzTW9kdWxlIiwiX3R5cGVvZiIsImhhcyIsImdldCIsIm4iLCJfX3Byb3RvX18iLCJhIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJ1IiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiaSIsInNldCIsIm93bktleXMiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eTIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsIlN0eWxlZExvYWREYXRhTW9kYWwiLCJzdHlsZWQiLCJkaXYiLCJhdHRycyIsImNsYXNzTmFtZSIsIl90YWdnZWRUZW1wbGF0ZUxpdGVyYWwyIiwicHJvcHMiLCJ0aGVtZSIsIm1vZGFsUGFkZGluZyIsIm5vb3AiLCJnZXREZWZhdWx0TWV0aG9kIiwibWV0aG9kcyIsInVuZGVmaW5lZCIsIkFycmF5IiwiaXNBcnJheSIsIkxvYWREYXRhTW9kYWxGYWN0b3J5IiwiZGVwcyIsIk1vZGFsVGFic0ZhY3RvcnkiLCJGaWxlVXBsb2FkRmFjdG9yeSIsIkxvYWRTdG9yYWdlTWFwRmFjdG9yeSIsIkxvYWRUaWxlc2V0RmFjdG9yeSIsIk1vZGFsVGFicyIsIkZpbGVVcGxvYWQiLCJMb2FkU3RvcmFnZU1hcCIsIkxvYWRUaWxlc2V0IiwiZGVmYXVsdExvYWRpbmdNZXRob2RzIiwiaWQiLCJMT0FESU5HX01FVEhPRFMiLCJ1cGxvYWQiLCJsYWJlbCIsImVsZW1lbnRUeXBlIiwidGlsZXNldCIsInN0b3JhZ2UiLCJMb2FkRGF0YU1vZGFsIiwiX3JlZiIsIl9yZWYkb25GaWxlVXBsb2FkIiwib25GaWxlVXBsb2FkIiwiX3JlZiRvblRpbGVzZXRBZGRlZCIsIm9uVGlsZXNldEFkZGVkIiwiX3JlZiRmaWxlTG9hZGluZyIsImZpbGVMb2FkaW5nIiwiX3JlZiRsb2FkaW5nTWV0aG9kcyIsImxvYWRpbmdNZXRob2RzIiwiaXNDbG91ZE1hcExvYWRpbmciLCJyZXN0UHJvcHMiLCJfb2JqZWN0V2l0aG91dFByb3BlcnRpZXMyIiwiaW50bCIsInVzZUludGwiLCJjdXJyZW50TW9kYWxQcm9wcyIsIl91c2VTdGF0ZSIsInVzZVN0YXRlIiwiX3VzZVN0YXRlMiIsIl9zbGljZWRUb0FycmF5MiIsImN1cnJlbnRNZXRob2QiLCJ0b2dnbGVNZXRob2QiLCJFbGVtZW50VHlwZSIsImNyZWF0ZUVsZW1lbnQiLCJzaXplIiwiX2V4dGVuZHMyIiwia2V5IiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL21vZGFscy9sb2FkLWRhdGEtbW9kYWwudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCBSZWFjdCwge3VzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBnZXQgZnJvbSAnbG9kYXNoLmdldCc7XG5pbXBvcnQge0ludGxTaGFwZSwgdXNlSW50bH0gZnJvbSAncmVhY3QtaW50bCc7XG5cbmltcG9ydCBGaWxlVXBsb2FkRmFjdG9yeSBmcm9tICcuLi9jb21tb24vZmlsZS11cGxvYWRlci9maWxlLXVwbG9hZCc7XG5pbXBvcnQgTG9hZFN0b3JhZ2VNYXBGYWN0b3J5IGZyb20gJy4vbG9hZC1zdG9yYWdlLW1hcCc7XG5pbXBvcnQgTG9hZFRpbGVzZXRGYWN0b3J5IGZyb20gJy4vdGlsZXNldHMtbW9kYWxzL2xvYWQtdGlsZXNldCc7XG5pbXBvcnQgTW9kYWxUYWJzRmFjdG9yeSBmcm9tICcuL21vZGFsLXRhYnMnO1xuaW1wb3J0IExvYWRpbmdEaWFsb2cgZnJvbSAnLi9sb2FkaW5nLWRpYWxvZyc7XG5cbmltcG9ydCB7TE9BRElOR19NRVRIT0RTfSBmcm9tICdAa2VwbGVyLmdsL2NvbnN0YW50cyc7XG5pbXBvcnQge0ZpbGVMb2FkaW5nLCBGaWxlTG9hZGluZ1Byb2dyZXNzLCBMb2FkRmlsZXN9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuXG5jb25zdCBTdHlsZWRMb2FkRGF0YU1vZGFsID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ2xvYWQtZGF0YS1tb2RhbCdcbn0pYFxuICBwYWRkaW5nOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLm1vZGFsUGFkZGluZ307XG4gIG1pbi1oZWlnaHQ6IDQ0MHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuYDtcblxuY29uc3Qgbm9vcCA9ICgpID0+IHtcbiAgcmV0dXJuO1xufTtcbmNvbnN0IGdldERlZmF1bHRNZXRob2QgPSA8VCw+KG1ldGhvZHM6IFRbXSA9IFtdKSA9PlxuICBBcnJheS5pc0FycmF5KG1ldGhvZHMpID8gZ2V0KG1ldGhvZHMsIFswXSkgOiBudWxsO1xuZXhwb3J0IGludGVyZmFjZSBMb2FkaW5nTWV0aG9kIHtcbiAgaWQ6IHN0cmluZztcbiAgbGFiZWw6IHN0cmluZztcbiAgZWxlbWVudFR5cGU6IFJlYWN0LkNvbXBvbmVudFR5cGU8YW55PjtcbiAgdGFiRWxlbWVudFR5cGU/OiBSZWFjdC5Db21wb25lbnRUeXBlPHtvbkNsaWNrOiBSZWFjdC5Nb3VzZUV2ZW50SGFuZGxlcjsgaW50bDogSW50bFNoYXBlfT47XG59XG5cbnR5cGUgTG9hZERhdGFNb2RhbFByb3BzID0ge1xuICAvLyBjYWxsIGJhY2tzXG4gIG9uRmlsZVVwbG9hZDogKGZpbGVzOiBGaWxlW10pID0+IHZvaWQ7XG4gIG9uTG9hZENsb3VkTWFwOiAocHJvdmlkZXI6IGFueSwgdmlzOiBhbnkpID0+IHZvaWQ7XG4gIG9uVGlsZXNldEFkZGVkOiAoXG4gICAgdGlsZXNldDoge25hbWU6IHN0cmluZzsgdHlwZTogc3RyaW5nOyBtZXRhZGF0YTogUmVjb3JkPHN0cmluZywgYW55Pn0sXG4gICAgcHJvY2Vzc2VkTWV0YWRhdGE/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+XG4gICkgPT4gdm9pZDtcbiAgZmlsZUxvYWRpbmc6IEZpbGVMb2FkaW5nIHwgZmFsc2U7XG4gIGxvYWRpbmdNZXRob2RzPzogTG9hZGluZ01ldGhvZFtdO1xuICAvKiogQSBsaXN0IG9mIG5hbWVzIG9mIHN1cHBvcnRlZCBmb3JtYXRzIHN1aXRhYmxlIHRvIHByZXNlbnQgdG8gdXNlciAqL1xuICBmaWxlRm9ybWF0TmFtZXM6IHN0cmluZ1tdO1xuICAvKiogQSBsaXN0IG9mIHR5cGljYWxseSAzIGxldHRlciBleHRlbnNpb25zICh3aXRob3V0ICcuJykgZm9yIGZpbGUgbWF0Y2hpbmcgKi9cbiAgZmlsZUV4dGVuc2lvbnM6IHN0cmluZ1tdO1xuICBpc0Nsb3VkTWFwTG9hZGluZzogYm9vbGVhbjtcbiAgLyoqIFNldCB0byB0cnVlIGlmIGFwcCB3YW50cyB0byBkbyBpdHMgb3duIGZpbGUgZmlsdGVyaW5nICovXG4gIGRpc2FibGVFeHRlbnNpb25GaWx0ZXI/OiBib29sZWFuO1xuICBvbkNsb3NlPzogKC4uLmFyZ3M6IGFueSkgPT4gYW55O1xuXG4gIGxvYWRGaWxlczogTG9hZEZpbGVzO1xuICBmaWxlTG9hZGluZ1Byb2dyZXNzOiBGaWxlTG9hZGluZ1Byb2dyZXNzO1xufTtcblxuTG9hZERhdGFNb2RhbEZhY3RvcnkuZGVwcyA9IFtcbiAgTW9kYWxUYWJzRmFjdG9yeSxcbiAgRmlsZVVwbG9hZEZhY3RvcnksXG4gIExvYWRTdG9yYWdlTWFwRmFjdG9yeSxcbiAgTG9hZFRpbGVzZXRGYWN0b3J5XG5dO1xuXG5leHBvcnQgZnVuY3Rpb24gTG9hZERhdGFNb2RhbEZhY3RvcnkoXG4gIE1vZGFsVGFiczogUmV0dXJuVHlwZTx0eXBlb2YgTW9kYWxUYWJzRmFjdG9yeT4sXG4gIEZpbGVVcGxvYWQ6IFJldHVyblR5cGU8dHlwZW9mIEZpbGVVcGxvYWRGYWN0b3J5PixcbiAgTG9hZFN0b3JhZ2VNYXA6IFJldHVyblR5cGU8dHlwZW9mIExvYWRTdG9yYWdlTWFwRmFjdG9yeT4sXG4gIExvYWRUaWxlc2V0OiBSZXR1cm5UeXBlPHR5cGVvZiBMb2FkVGlsZXNldEZhY3Rvcnk+XG4pIHtcbiAgY29uc3QgZGVmYXVsdExvYWRpbmdNZXRob2RzID0gW1xuICAgIHtcbiAgICAgIGlkOiBMT0FESU5HX01FVEhPRFMudXBsb2FkLFxuICAgICAgbGFiZWw6ICdtb2RhbC5sb2FkRGF0YS51cGxvYWQnLFxuICAgICAgZWxlbWVudFR5cGU6IEZpbGVVcGxvYWRcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiBMT0FESU5HX01FVEhPRFMudGlsZXNldCxcbiAgICAgIGxhYmVsOiAnbW9kYWwubG9hZERhdGEudGlsZXNldCcsXG4gICAgICBlbGVtZW50VHlwZTogTG9hZFRpbGVzZXRcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiBMT0FESU5HX01FVEhPRFMuc3RvcmFnZSxcbiAgICAgIGxhYmVsOiAnbW9kYWwubG9hZERhdGEuc3RvcmFnZScsXG4gICAgICBlbGVtZW50VHlwZTogTG9hZFN0b3JhZ2VNYXBcbiAgICB9XG4gIF07XG5cbiAgY29uc3QgTG9hZERhdGFNb2RhbDogUmVhY3QuRkM8TG9hZERhdGFNb2RhbFByb3BzPiAmIHtcbiAgICBkZWZhdWx0TG9hZGluZ01ldGhvZHM6IExvYWREYXRhTW9kYWxQcm9wc1snbG9hZGluZ01ldGhvZHMnXTtcbiAgfSA9ICh7XG4gICAgb25GaWxlVXBsb2FkID0gbm9vcCxcbiAgICBvblRpbGVzZXRBZGRlZCA9IG5vb3AsXG4gICAgZmlsZUxvYWRpbmcgPSBmYWxzZSxcbiAgICBsb2FkaW5nTWV0aG9kcyA9IGRlZmF1bHRMb2FkaW5nTWV0aG9kcyxcbiAgICBpc0Nsb3VkTWFwTG9hZGluZyxcbiAgICAuLi5yZXN0UHJvcHNcbiAgfSkgPT4ge1xuICAgIGNvbnN0IGludGwgPSB1c2VJbnRsKCk7XG4gICAgY29uc3QgY3VycmVudE1vZGFsUHJvcHMgPSB7XG4gICAgICAuLi5yZXN0UHJvcHMsXG4gICAgICBvbkZpbGVVcGxvYWQsXG4gICAgICBvblRpbGVzZXRBZGRlZCxcbiAgICAgIGZpbGVMb2FkaW5nLFxuICAgICAgaXNDbG91ZE1hcExvYWRpbmdcbiAgICB9O1xuICAgIC8vIGNvbnN0IHtsb2FkaW5nTWV0aG9kcywgaXNDbG91ZE1hcExvYWRpbmd9ID0gcHJvcHM7XG4gICAgY29uc3QgW2N1cnJlbnRNZXRob2QsIHRvZ2dsZU1ldGhvZF0gPSB1c2VTdGF0ZShnZXREZWZhdWx0TWV0aG9kKGxvYWRpbmdNZXRob2RzKSk7XG5cbiAgICBjb25zdCBFbGVtZW50VHlwZSA9IGN1cnJlbnRNZXRob2Q/LmVsZW1lbnRUeXBlO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTdHlsZWRMb2FkRGF0YU1vZGFsPlxuICAgICAgICA8TW9kYWxUYWJzXG4gICAgICAgICAgY3VycmVudE1ldGhvZD17Y3VycmVudE1ldGhvZD8uaWR9XG4gICAgICAgICAgbG9hZGluZ01ldGhvZHM9e2xvYWRpbmdNZXRob2RzfVxuICAgICAgICAgIHRvZ2dsZU1ldGhvZD17dG9nZ2xlTWV0aG9kfVxuICAgICAgICAvPlxuICAgICAgICB7aXNDbG91ZE1hcExvYWRpbmcgPyAoXG4gICAgICAgICAgPExvYWRpbmdEaWFsb2cgc2l6ZT17NjR9IC8+XG4gICAgICAgICkgOiAoXG4gICAgICAgICAgRWxlbWVudFR5cGUgJiYgPEVsZW1lbnRUeXBlIGtleT17Y3VycmVudE1ldGhvZD8uaWR9IGludGw9e2ludGx9IHsuLi5jdXJyZW50TW9kYWxQcm9wc30gLz5cbiAgICAgICAgKX1cbiAgICAgIDwvU3R5bGVkTG9hZERhdGFNb2RhbD5cbiAgICApO1xuICB9O1xuXG4gIExvYWREYXRhTW9kYWwuZGVmYXVsdExvYWRpbmdNZXRob2RzID0gZGVmYXVsdExvYWRpbmdNZXRob2RzO1xuXG4gIHJldHVybiBMb2FkRGF0YU1vZGFsO1xufVxuXG5leHBvcnQgZGVmYXVsdCBMb2FkRGF0YU1vZGFsRmFjdG9yeTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7QUFHQSxJQUFBQSxNQUFBLEdBQUFDLHVCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBQyxpQkFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUcsT0FBQSxHQUFBRCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQUksVUFBQSxHQUFBSixPQUFBO0FBRUEsSUFBQUssV0FBQSxHQUFBSCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQU0sZUFBQSxHQUFBSixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQU8sWUFBQSxHQUFBTCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVEsVUFBQSxHQUFBTixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVMsY0FBQSxHQUFBUCxzQkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQVUsVUFBQSxHQUFBVixPQUFBO0FBQXFELElBQUFXLFNBQUE7QUFBQSxJQUFBQyxlQUFBLEVBZHJEO0FBQ0E7QUFBQSxTQUFBQyx5QkFBQUMsQ0FBQSw2QkFBQUMsT0FBQSxtQkFBQUMsQ0FBQSxPQUFBRCxPQUFBLElBQUFFLENBQUEsT0FBQUYsT0FBQSxZQUFBRix3QkFBQSxZQUFBQSx5QkFBQUMsQ0FBQSxXQUFBQSxDQUFBLEdBQUFH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