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
JavaScript
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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
;