UNPKG

kepler.gl

Version:

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

92 lines (90 loc) 17.6 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _objectDestructuringEmpty2 = _interopRequireDefault(require("@babel/runtime/helpers/objectDestructuringEmpty")); var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _constants = require("@kepler.gl/constants"); var _localization = require("@kepler.gl/localization"); var _utils = require("@kepler.gl/utils"); var _react = _interopRequireWildcard(require("react")); var _itemSelector = _interopRequireDefault(require("../../common/item-selector/item-selector")); var _styledComponents = require("../../common/styled-components"); var _colorScaleSelector = _interopRequireDefault(require("./color-scale-selector")); 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; } // SPDX-License-Identifier: MIT // Copyright contributors to the kepler.gl project var SizeScaleSelector = function SizeScaleSelector(_ref) { var dropdownSelectProps = (0, _extends2["default"])({}, ((0, _objectDestructuringEmpty2["default"])(_ref), _ref)); return /*#__PURE__*/_react["default"].createElement(_itemSelector["default"], dropdownSelectProps); }; DimensionScaleSelectorFactory.deps = [_colorScaleSelector["default"]]; function DimensionScaleSelectorFactory(ColorScaleSelector) { var DimensionScaleSelector = function DimensionScaleSelector(_ref2) { var _layer$config$colorUI; var layer = _ref2.layer, channel = _ref2.channel, dataset = _ref2.dataset, label = _ref2.label, onChange = _ref2.onChange, setColorUI = _ref2.setColorUI; var channelScaleType = channel.channelScaleType, domain = channel.domain, field = channel.field, key = channel.key, range = channel.range, scale = channel.scale; var scaleType = scale ? layer.config[scale] : null; var layerScaleOptions = layer.getScaleOptions(key); var scaleOptions = layerScaleOptions.map(function (op) { return { label: _constants.SCALE_TYPE_NAMES[op] || op, value: op }; }); var disabled = scaleOptions.length < 2; var isColorScale = channelScaleType === _constants.CHANNEL_SCALES.color || layer.config.aggregatedBins && channelScaleType === _constants.CHANNEL_SCALES.colorAggr; var onSelect = (0, _react.useCallback)(function (val, newRange) { return onChange((0, _defineProperty2["default"])({}, scale, val), key, newRange ? (0, _defineProperty2["default"])({}, range, newRange) : undefined); }, [onChange, range, scale, key]); var _setColorUI = (0, _react.useCallback)(function (newConfig) { return setColorUI(range, newConfig); }, [range, setColorUI]); var dropdownSelectProps = { disabled: disabled, selectedItems: scaleOptions.filter(function (op) { return op.value === scaleType; }), options: scaleOptions, multiSelect: false, searchable: false, onChange: onSelect, displayOption: 'label', getOptionValue: 'value', channelKey: key }; return /*#__PURE__*/_react["default"].createElement(_styledComponents.SidePanelSection, null, /*#__PURE__*/_react["default"].createElement(_styledComponents.PanelLabel, null, /*#__PURE__*/_react["default"].createElement(_localization.FormattedMessage, { id: label ? "scale.".concat((0, _utils.camelize)(label)) : 'misc.scale', defaultMessage: label })), isColorScale && dataset ? /*#__PURE__*/_react["default"].createElement(ColorScaleSelector, (0, _extends2["default"])({}, dropdownSelectProps, { layer: layer, field: layer.config[field], dataset: dataset, onSelect: onSelect, scaleType: scaleType, domain: layer.config[domain], aggregatedBins: layer.config.aggregatedBins, range: layer.config.visConfig[range], setColorUI: _setColorUI, colorUIConfig: (_layer$config$colorUI = layer.config.colorUI) === null || _layer$config$colorUI === void 0 ? void 0 : _layer$config$colorUI[range] })) : /*#__PURE__*/_react["default"].createElement(SizeScaleSelector, dropdownSelectProps)); }; return DimensionScaleSelector; } var _default = exports["default"] = DimensionScaleSelectorFactory; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfY29uc3RhbnRzIiwicmVxdWlyZSIsIl9sb2NhbGl6YXRpb24iLCJfdXRpbHMiLCJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsIl9pdGVtU2VsZWN0b3IiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3N0eWxlZENvbXBvbmVudHMiLCJfY29sb3JTY2FsZVNlbGVjdG9yIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0IiwiU2l6ZVNjYWxlU2VsZWN0b3IiLCJfcmVmIiwiZHJvcGRvd25TZWxlY3RQcm9wcyIsIl9leHRlbmRzMiIsIl9vYmplY3REZXN0cnVjdHVyaW5nRW1wdHkyIiwiY3JlYXRlRWxlbWVudCIsIkRpbWVuc2lvblNjYWxlU2VsZWN0b3JGYWN0b3J5IiwiZGVwcyIsIkNvbG9yU2NhbGVTZWxlY3RvckZhY3RvcnkiLCJDb2xvclNjYWxlU2VsZWN0b3IiLCJEaW1lbnNpb25TY2FsZVNlbGVjdG9yIiwiX3JlZjIiLCJfbGF5ZXIkY29uZmlnJGNvbG9yVUkiLCJsYXllciIsImNoYW5uZWwiLCJkYXRhc2V0IiwibGFiZWwiLCJvbkNoYW5nZSIsInNldENvbG9yVUkiLCJjaGFubmVsU2NhbGVUeXBlIiwiZG9tYWluIiwiZmllbGQiLCJrZXkiLCJyYW5nZSIsInNjYWxlIiwic2NhbGVUeXBlIiwiY29uZmlnIiwibGF5ZXJTY2FsZU9wdGlvbnMiLCJnZXRTY2FsZU9wdGlvbnMiLCJzY2FsZU9wdGlvbnMiLCJtYXAiLCJvcCIsIlNDQUxFX1RZUEVfTkFNRVMiLCJ2YWx1ZSIsImRpc2FibGVkIiwibGVuZ3RoIiwiaXNDb2xvclNjYWxlIiwiQ0hBTk5FTF9TQ0FMRVMiLCJjb2xvciIsImFnZ3JlZ2F0ZWRCaW5zIiwiY29sb3JBZ2dyIiwib25TZWxlY3QiLCJ1c2VDYWxsYmFjayIsInZhbCIsIm5ld1JhbmdlIiwiX2RlZmluZVByb3BlcnR5MiIsInVuZGVmaW5lZCIsIl9zZXRDb2xvclVJIiwibmV3Q29uZmlnIiwic2VsZWN0ZWRJdGVtcyIsImZpbHRlciIsIm9wdGlvbnMiLCJtdWx0aVNlbGVjdCIsInNlYXJjaGFibGUiLCJkaXNwbGF5T3B0aW9uIiwiZ2V0T3B0aW9uVmFsdWUiLCJjaGFubmVsS2V5IiwiU2lkZVBhbmVsU2VjdGlvbiIsIlBhbmVsTGFiZWwiLCJGb3JtYXR0ZWRNZXNzYWdlIiwiaWQiLCJjb25jYXQiLCJjYW1lbGl6ZSIsImRlZmF1bHRNZXNzYWdlIiwidmlzQ29uZmlnIiwiY29sb3JVSUNvbmZpZyIsImNvbG9yVUkiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvc2lkZS1wYW5lbC9sYXllci1wYW5lbC9kaW1lbnNpb24tc2NhbGUtc2VsZWN0b3IudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBNSVRcbi8vIENvcHlyaWdodCBjb250cmlidXRvcnMgdG8gdGhlIGtlcGxlci5nbCBwcm9qZWN0XG5cbmltcG9ydCB7Q0hBTk5FTF9TQ0FMRVMsIFNDQUxFX1RZUEVfTkFNRVN9IGZyb20gJ0BrZXBsZXIuZ2wvY29uc3RhbnRzJztcbmltcG9ydCB7Rm9ybWF0dGVkTWVzc2FnZX0gZnJvbSAnQGtlcGxlci5nbC9sb2NhbGl6YXRpb24nO1xuaW1wb3J0IHtDb2xvclVJLCBMYXllclZpc0NvbmZpZ30gZnJvbSAnQGtlcGxlci5nbC90eXBlcyc7XG5pbXBvcnQge2NhbWVsaXplfSBmcm9tICdAa2VwbGVyLmdsL3V0aWxzJztcbmltcG9ydCB7TGF5ZXIsIFZpc3VhbENoYW5uZWx9IGZyb20gJ0BrZXBsZXIuZ2wvbGF5ZXJzJztcbmltcG9ydCB7ZGVmYXVsdCBhcyBSZWFjdCwgdXNlQ2FsbGJhY2t9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7RmllbGR9IGZyb20gJ0BrZXBsZXIuZ2wvdHlwZXMnO1xuaW1wb3J0IEl0ZW1TZWxlY3RvciBmcm9tICcuLi8uLi9jb21tb24vaXRlbS1zZWxlY3Rvci9pdGVtLXNlbGVjdG9yJztcbmltcG9ydCB7UGFuZWxMYWJlbCwgU2lkZVBhbmVsU2VjdGlvbn0gZnJvbSAnLi4vLi4vY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBDb2xvclNjYWxlU2VsZWN0b3JGYWN0b3J5IGZyb20gJy4vY29sb3Itc2NhbGUtc2VsZWN0b3InO1xuaW1wb3J0IHtLZXBsZXJUYWJsZX0gZnJvbSAnQGtlcGxlci5nbC90YWJsZSc7XG5cbmNvbnN0IFNpemVTY2FsZVNlbGVjdG9yID0gKHsuLi5kcm9wZG93blNlbGVjdFByb3BzfTogYW55KSA9PiAoXG4gIDxJdGVtU2VsZWN0b3Igey4uLmRyb3Bkb3duU2VsZWN0UHJvcHN9IC8+XG4pO1xuXG5leHBvcnQgdHlwZSBEaW1lbnNpb25TY2FsZVNlbGVjdG9yUHJvcHMgPSB7XG4gIGxheWVyOiBMYXllcjtcbiAgY2hhbm5lbDogVmlzdWFsQ2hhbm5lbDtcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIGRhdGFzZXQ6IEtlcGxlclRhYmxlIHwgdW5kZWZpbmVkO1xuICBvbkNoYW5nZTogKFxuICAgIG5ld0NvbmZpZzoge1trZXk6IHN0cmluZ106IEZpZWxkIHwgbnVsbCB8IHN0cmluZ30sXG4gICAga2V5OiBzdHJpbmcsXG4gICAgbmV3VmlzQ29uZmlnPzogUGFydGlhbDxMYXllclZpc0NvbmZpZz5cbiAgKSA9PiB2b2lkO1xuICBzZXRDb2xvclVJOiAocmFuZ2U6IHN0cmluZywgbmV3Q29uZmlnOiB7W2tleSBpbiBrZXlvZiBDb2xvclVJXTogQ29sb3JVSVtrZXldfSkgPT4gdm9pZDtcbn07XG5cbkRpbWVuc2lvblNjYWxlU2VsZWN0b3JGYWN0b3J5LmRlcHMgPSBbQ29sb3JTY2FsZVNlbGVjdG9yRmFjdG9yeV07XG5cbmZ1bmN0aW9uIERpbWVuc2lvblNjYWxlU2VsZWN0b3JGYWN0b3J5KFxuICBDb2xvclNjYWxlU2VsZWN0b3I6IFJldHVyblR5cGU8dHlwZW9mIENvbG9yU2NhbGVTZWxlY3RvckZhY3Rvcnk+XG4pOiBSZWFjdC5GQzxEaW1lbnNpb25TY2FsZVNlbGVjdG9yUHJvcHM+IHtcbiAgY29uc3QgRGltZW5zaW9uU2NhbGVTZWxlY3RvcjogUmVhY3QuRkM8RGltZW5zaW9uU2NhbGVTZWxlY3RvclByb3BzPiA9ICh7XG4gICAgbGF5ZXIsXG4gICAgY2hhbm5lbCxcbiAgICBkYXRhc2V0LFxuICAgIGxhYmVsLFxuICAgIG9uQ2hhbmdlLFxuICAgIHNldENvbG9yVUlcbiAgfSkgPT4ge1xuICAgIGNvbnN0IHtjaGFubmVsU2NhbGVUeXBlLCBkb21haW4sIGZpZWxkLCBrZXksIHJhbmdlLCBzY2FsZX0gPSBjaGFubmVsO1xuICAgIGNvbnN0IHNjYWxlVHlwZSA9IHNjYWxlID8gbGF5ZXIuY29uZmlnW3NjYWxlXSA6IG51bGw7XG4gICAgY29uc3QgbGF5ZXJTY2FsZU9wdGlvbnMgPSBsYXllci5nZXRTY2FsZU9wdGlvbnMoa2V5KTtcbiAgICBjb25zdCBzY2FsZU9wdGlvbnMgPSBsYXllclNjYWxlT3B0aW9ucy5tYXAob3AgPT4gKHtcbiAgICAgIGxhYmVsOiBTQ0FMRV9UWVBFX05BTUVTW29wXSB8fCBvcCxcbiAgICAgIHZhbHVlOiBvcFxuICAgIH0pKTtcbiAgICBjb25zdCBkaXNhYmxlZCA9IHNjYWxlT3B0aW9ucy5sZW5ndGggPCAyO1xuICAgIGNvbnN0IGlzQ29sb3JTY2FsZSA9XG4gICAgICBjaGFubmVsU2NhbGVUeXBlID09PSBDSEFOTkVMX1NDQUxFUy5jb2xvciB8fFxuICAgICAgKGxheWVyLmNvbmZpZy5hZ2dyZWdhdGVkQmlucyAmJiBjaGFubmVsU2NhbGVUeXBlID09PSBDSEFOTkVMX1NDQUxFUy5jb2xvckFnZ3IpO1xuXG4gICAgY29uc3Qgb25TZWxlY3QgPSB1c2VDYWxsYmFjayhcbiAgICAgICh2YWwsIG5ld1JhbmdlKSA9PiBvbkNoYW5nZSh7W3NjYWxlXTogdmFsfSwga2V5LCBuZXdSYW5nZSA/IHtbcmFuZ2VdOiBuZXdSYW5nZX0gOiB1bmRlZmluZWQpLFxuICAgICAgW29uQ2hhbmdlLCByYW5nZSwgc2NhbGUsIGtleV1cbiAgICApO1xuICAgIGNvbnN0IF9zZXRDb2xvclVJID0gdXNlQ2FsbGJhY2sobmV3Q29uZmlnID0+IHNldENvbG9yVUkocmFuZ2UsIG5ld0NvbmZpZyksIFtyYW5nZSwgc2V0Q29sb3JVSV0pO1xuXG4gICAgY29uc3QgZHJvcGRvd25TZWxlY3RQcm9wcyA9IHtcbiAgICAgIGRpc2FibGVkLFxuICAgICAgc2VsZWN0ZWRJdGVtczogc2NhbGVPcHRpb25zLmZpbHRlcihvcCA9PiBvcC52YWx1ZSA9PT0gc2NhbGVUeXBlKSxcbiAgICAgIG9wdGlvbnM6IHNjYWxlT3B0aW9ucyxcbiAgICAgIG11bHRpU2VsZWN0OiBmYWxzZSxcbiAgICAgIHNlYXJjaGFibGU6IGZhbHNlLFxuICAgICAgb25DaGFuZ2U6IG9uU2VsZWN0LFxuICAgICAgZGlzcGxheU9wdGlvbjogJ2xhYmVsJyxcbiAgICAgIGdldE9wdGlvblZhbHVlOiAndmFsdWUnLFxuICAgICAgY2hhbm5lbEtleToga2V5XG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICA8U2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgICAgPFBhbmVsTGFiZWw+XG4gICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2VcbiAgICAgICAgICAgIGlkPXtsYWJlbCA/IGBzY2FsZS4ke2NhbWVsaXplKGxhYmVsKX1gIDogJ21pc2Muc2NhbGUnfVxuICAgICAgICAgICAgZGVmYXVsdE1lc3NhZ2U9e2xhYmVsfVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvUGFuZWxMYWJlbD5cbiAgICAgICAge2lzQ29sb3JTY2FsZSAmJiBkYXRhc2V0ID8gKFxuICAgICAgICAgIDxDb2xvclNjYWxlU2VsZWN0b3JcbiAgICAgICAgICAgIHsuLi5kcm9wZG93blNlbGVjdFByb3BzfVxuICAgICAgICAgICAgbGF5ZXI9e2xheWVyfVxuICAgICAgICAgICAgZmllbGQ9e2xheWVyLmNvbmZpZ1tmaWVsZF19XG4gICAgICAgICAgICBkYXRhc2V0PXtkYXRhc2V0fVxuICAgICAgICAgICAgb25TZWxlY3Q9e29uU2VsZWN0fVxuICAgICAgICAgICAgc2NhbGVUeXBlPXtzY2FsZVR5cGV9XG4gICAgICAgICAgICBkb21haW49e2xheWVyLmNvbmZpZ1tkb21haW5dfVxuICAgICAgICAgICAgYWdncmVnYXRlZEJpbnM9e2xheWVyLmNvbmZpZy5hZ2dyZWdhdGVkQmluc31cbiAgICAgICAgICAgIHJhbmdlPXtsYXllci5jb25maWcudmlzQ29uZmlnW3JhbmdlXX1cbiAgICAgICAgICAgIHNldENvbG9yVUk9e19zZXRDb2xvclVJfVxuICAgICAgICAgICAgY29sb3JVSUNvbmZpZz17bGF5ZXIuY29uZmlnLmNvbG9yVUk/LltyYW5nZV19XG4gICAgICAgICAgLz5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8U2l6ZVNjYWxlU2VsZWN0b3Igey4uLmRyb3Bkb3duU2VsZWN0UHJvcHN9IC8+XG4gICAgICAgICl9XG4gICAgICA8L1NpZGVQYW5lbFNlY3Rpb24+XG4gICAgKTtcbiAgfTtcbiAgcmV0dXJuIERpbWVuc2lvblNjYWxlU2VsZWN0b3I7XG59XG5cbmV4cG9ydCBkZWZhdWx0IERpbWVuc2lvblNjYWxlU2VsZWN0b3JGYWN0b3J5O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQUdBLElBQUFBLFVBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLGFBQUEsR0FBQUQsT0FBQTtBQUVBLElBQUFFLE1BQUEsR0FBQUYsT0FBQTtBQUVBLElBQUFHLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUosT0FBQTtBQUVBLElBQUFLLGFBQUEsR0FBQUMsc0JBQUEsQ0FBQU4sT0FBQTtBQUNBLElBQUFPLGlCQUFBLEdBQUFQLE9BQUE7QUFDQSxJQUFBUSxtQkFB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QUFBLEVBQUM7TUFDaEUwQixPQUFPLEVBQUV0QixZQUFZO01BQ3JCdUIsV0FBVyxFQUFFLEtBQUs7TUFDbEJDLFVBQVUsRUFBRSxLQUFLO01BQ2pCcEMsUUFBUSxFQUFFd0IsUUFBUTtNQUNsQmEsYUFBYSxFQUFFLE9BQU87TUFDdEJDLGNBQWMsRUFBRSxPQUFPO01BQ3ZCQyxVQUFVLEVBQUVsQztJQUNkLENBQUM7SUFFRCxvQkFDRWhELE1BQUEsWUFBQStCLGFBQUEsQ0FBQzNCLGlCQUFBLENBQUErRSxnQkFBZ0IscUJBQ2ZuRixNQUFBLFlBQUErQixhQUFBLENBQUMzQixpQkFBQSxDQUFBZ0YsVUFBVSxxQkFDVHBGLE1BQUEsWUFBQStCLGFBQUEsQ0FBQ2pDLGFBQUEsQ0FBQXVGLGdCQUFnQjtNQUNmQyxFQUFFLEVBQUU1QyxLQUFLLFlBQUE2QyxNQUFBLENBQVksSUFBQUMsZUFBUSxFQUFDOUMsS0FBSyxDQUFDLElBQUssWUFBYTtNQUN0RCtDLGNBQWMsRUFBRS9DO0lBQU0sQ0FDdkIsQ0FDUyxDQUFDLEVBQ1pvQixZQUFZLElBQUlyQixPQUFPLGdCQUN0QnpDLE1BQUEsWUFBQStCLGFBQUEsQ0FBQ0ksa0JBQWtCLE1BQUFOLFNBQUEsaUJBQ2JELG1CQUFtQjtNQUN2QlcsS0FBSyxFQUFFQSxLQUFNO01BQ2JRLEtBQUssRUFBRVIsS0FBSyxDQUFDYSxNQUFNLENBQUNMLEtBQUssQ0FBRTtNQUMzQk4sT0FBTyxFQUFFQSxPQUFRO01BQ2pCMEIsUUFBUSxFQUFFQSxRQUFTO01BQ25CaEIsU0FBUyxFQUFFQSxTQUFVO01BQ3JCTCxNQUFNLEVBQUVQLEtBQUssQ0FBQ2EsTUFBTSxDQUFDTixNQUFNLENBQUU7TUFDN0JtQixjQUFjLEVBQUUxQixLQUFLLENBQUNhLE1BQU0sQ0FBQ2EsY0FBZTtNQUM1Q2hCLEtBQUssRUFBRVYsS0FBSyxDQUFDYSxNQUFNLENBQUNzQyxTQUFTLENBQUN6QyxLQUFLLENBQUU7TUFDckNMLFVBQVUsRUFBRTZCLFdBQVk7TUFDeEJrQixhQUFhLEdBQUFyRCxxQkFBQSxHQUFFQyxLQUFLLENBQUNhLE1BQU0sQ0FBQ3dDLE9BQU8sY0FBQXRELHFCQUFBLHVCQUFwQkEscUJBQUEsQ0FBdUJXLEtBQUs7SUFBRSxFQUM5QyxDQUFDLGdCQUVGakQsTUFBQSxZQUFBK0IsYUFBQSxDQUFDTCxpQkFBaUIsRUFBS0UsbUJBQXNCLENBRS9CLENBQUM7RUFFdkIsQ0FBQztFQUNELE9BQU9RLHNCQUFzQjtBQUMvQjtBQUFDLElBQUF5RCxRQUFBLEdBQUFDLE9BQUEsY0FFYzlELDZCQUE2QiIsImlnbm9yZUxpc3QiOltdfQ==