UNPKG

payload

Version:

Node, React and MongoDB Headless CMS and Application Framework

170 lines (169 loc) • 16.8 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "default", { enumerable: true, get: function() { return _default; } }); const _react = /*#__PURE__*/ _interop_require_wildcard(require("react")); const _Meta = /*#__PURE__*/ _interop_require_default(require("../FileDetails/Meta")); require("./index.scss"); function _interop_require_default(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interop_require_wildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = { __proto__: null }; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for(var key in obj){ if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } const baseClass = 'preview-sizes'; const sortSizes = (sizes, imageSizes)=>{ if (!imageSizes || imageSizes.length === 0) return sizes; const orderedSizes = {}; imageSizes.forEach(({ name })=>{ if (sizes[name]) { orderedSizes[name] = sizes[name]; } }); return orderedSizes; }; const PreviewSizeCard = ({ name, active, baseURL, meta, onClick, previewSrc })=>{ return /*#__PURE__*/ _react.default.createElement("div", { className: [ `${baseClass}__sizeOption`, active && `${baseClass}--selected` ].filter(Boolean).join(' '), onClick: typeof onClick === 'function' ? onClick : undefined, onKeyDown: (e)=>{ if (typeof onClick !== 'function') return; if (e.key === 'Enter') onClick(); }, role: "button", tabIndex: 0 }, /*#__PURE__*/ _react.default.createElement("div", { className: `${baseClass}__image` }, /*#__PURE__*/ _react.default.createElement("img", { alt: meta.filename, src: previewSrc })), /*#__PURE__*/ _react.default.createElement("div", { className: `${baseClass}__sizeMeta` }, /*#__PURE__*/ _react.default.createElement("div", { className: `${baseClass}__sizeName` }, name), /*#__PURE__*/ _react.default.createElement(_Meta.default, { ...meta, staticURL: baseURL }))); }; const PreviewSizes = ({ collection, doc, imageCacheTag })=>{ const { upload: { imageSizes, staticURL } } = collection; const { sizes } = doc; const [orderedSizes, setOrderedSizes] = (0, _react.useState)(()=>sortSizes(sizes, imageSizes)); const [selectedSize, setSelectedSize] = (0, _react.useState)(null); const generateImageUrl = (doc)=>{ if (!doc.filename) return null; if (doc.url) return `${doc.url}${imageCacheTag ? `?${imageCacheTag}` : ''}`; }; (0, _react.useEffect)(()=>{ setOrderedSizes(sortSizes(sizes, imageSizes)); }, [ sizes, imageSizes, imageCacheTag ]); const mainPreviewSrc = selectedSize ? generateImageUrl(doc.sizes[selectedSize]) : generateImageUrl(doc); const originalImage = (0, _react.useMemo)(()=>({ filename: doc.filename, filesize: doc.filesize, height: doc.height, mimeType: doc.mimeType, width: doc.width }), [ doc ]); const originalFilename = 'Original'; return /*#__PURE__*/ _react.default.createElement("div", { className: baseClass }, /*#__PURE__*/ _react.default.createElement("div", { className: `${baseClass}__imageWrap` }, /*#__PURE__*/ _react.default.createElement("div", { className: `${baseClass}__meta` }, /*#__PURE__*/ _react.default.createElement("div", { className: `${baseClass}__sizeName` }, selectedSize || originalFilename), /*#__PURE__*/ _react.default.createElement(_Meta.default, { ...selectedSize ? orderedSizes[selectedSize] : originalImage, staticURL: staticURL })), /*#__PURE__*/ _react.default.createElement("img", { alt: doc.filename, className: `${baseClass}__preview`, src: mainPreviewSrc })), /*#__PURE__*/ _react.default.createElement("div", { className: `${baseClass}__listWrap` }, /*#__PURE__*/ _react.default.createElement("div", { className: `${baseClass}__list` }, /*#__PURE__*/ _react.default.createElement(PreviewSizeCard, { active: !selectedSize, baseURL: staticURL, meta: originalImage, name: originalFilename, onClick: ()=>setSelectedSize(null), previewSrc: generateImageUrl(doc) }), Object.entries(orderedSizes).map(([key, val])=>{ const selected = selectedSize === key; const previewSrc = generateImageUrl(val); if (previewSrc) { return /*#__PURE__*/ _react.default.createElement(PreviewSizeCard, { active: selected, baseURL: staticURL, key: key, meta: val, name: key, onClick: ()=>setSelectedSize(key), previewSrc: previewSrc }); } return null; })))); }; const _default = PreviewSizes; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL1ByZXZpZXdTaXplcy9pbmRleC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHR5cGUgeyBTYW5pdGl6ZWRDb2xsZWN0aW9uQ29uZmlnIH0gZnJvbSAnLi4vLi4vLi4vLi4vZXhwb3J0cy90eXBlcydcbmltcG9ydCB0eXBlIHsgRmlsZVNpemVzLCBVcGxvYWQgfSBmcm9tICcuLi8uLi8uLi8uLi91cGxvYWRzL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBEYXRhIH0gZnJvbSAnLi4vLi4vZm9ybXMvRm9ybS90eXBlcydcblxuaW1wb3J0IE1ldGEgZnJvbSAnLi4vRmlsZURldGFpbHMvTWV0YSdcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuXG5jb25zdCBiYXNlQ2xhc3MgPSAncHJldmlldy1zaXplcydcblxuY29uc3Qgc29ydFNpemVzID0gKHNpemVzOiBGaWxlU2l6ZXMsIGltYWdlU2l6ZXM6IFVwbG9hZFsnaW1hZ2VTaXplcyddKSA9PiB7XG4gIGlmICghaW1hZ2VTaXplcyB8fCBpbWFnZVNpemVzLmxlbmd0aCA9PT0gMCkgcmV0dXJuIHNpemVzXG5cbiAgY29uc3Qgb3JkZXJlZFNpemVzOiBGaWxlU2l6ZXMgPSB7fVxuXG4gIGltYWdlU2l6ZXMuZm9yRWFjaCgoeyBuYW1lIH0pID0+IHtcbiAgICBpZiAoc2l6ZXNbbmFtZV0pIHtcbiAgICAgIG9yZGVyZWRTaXplc1tuYW1lXSA9IHNpemVzW25hbWVdXG4gICAgfVxuICB9KVxuXG4gIHJldHVybiBvcmRlcmVkU2l6ZXNcbn1cblxudHlwZSBQcmV2aWV3U2l6ZUNhcmRQcm9wcyA9IHtcbiAgYWN0aXZlOiBib29sZWFuXG4gIGJhc2VVUkw6IHN0cmluZ1xuICBtZXRhOiBGaWxlU2l6ZXNbMF1cbiAgbmFtZTogc3RyaW5nXG4gIG9uQ2xpY2s/OiAoKSA9PiB2b2lkXG4gIHByZXZpZXdTcmM6IHN0cmluZ1xufVxuY29uc3QgUHJldmlld1NpemVDYXJkOiBSZWFjdC5GQzxQcmV2aWV3U2l6ZUNhcmRQcm9wcz4gPSAoe1xuICBuYW1lLFxuICBhY3RpdmUsXG4gIGJhc2VVUkwsXG4gIG1ldGEsXG4gIG9uQ2xpY2ssXG4gIHByZXZpZXdTcmMsXG59KSA9PiB7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY2xhc3NOYW1lPXtbYCR7YmFzZUNsYXNzfV9fc2l6ZU9wdGlvbmAsIGFjdGl2ZSAmJiBgJHtiYXNlQ2xhc3N9LS1zZWxlY3RlZGBdXG4gICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgICAgLmpvaW4oJyAnKX1cbiAgICAgIG9uQ2xpY2s9e3R5cGVvZiBvbkNsaWNrID09PSAnZnVuY3Rpb24nID8gb25DbGljayA6IHVuZGVmaW5lZH1cbiAgICAgIG9uS2V5RG93bj17KGUpID0+IHtcbiAgICAgICAgaWYgKHR5cGVvZiBvbkNsaWNrICE9PSAnZnVuY3Rpb24nKSByZXR1cm5cbiAgICAgICAgaWYgKGUua2V5ID09PSAnRW50ZXInKSBvbkNsaWNrKClcbiAgICAgIH19XG4gICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgIHRhYkluZGV4PXswfVxuICAgID5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19pbWFnZWB9PlxuICAgICAgICA8aW1nIGFsdD17bWV0YS5maWxlbmFtZX0gc3JjPXtwcmV2aWV3U3JjfSAvPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fc2l6ZU1ldGFgfT5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3NpemVOYW1lYH0+e25hbWV9PC9kaXY+XG4gICAgICAgIDxNZXRhIHsuLi5tZXRhfSBzdGF0aWNVUkw9e2Jhc2VVUkx9IC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5jb25zdCBQcmV2aWV3U2l6ZXM6IFJlYWN0LkZDPHtcbiAgY29sbGVjdGlvbjogU2FuaXRpemVkQ29sbGVjdGlvbkNvbmZpZ1xuICBkb2M6IERhdGEgJiB7XG4gICAgc2l6ZXM/OiBGaWxlU2l6ZXNcbiAgfVxuICBpbWFnZUNhY2hlVGFnPzogc3RyaW5nXG59PiA9ICh7IGNvbGxlY3Rpb24sIGRvYywgaW1hZ2VDYWNoZVRhZyB9KSA9PiB7XG4gIGNvbnN0IHtcbiAgICB1cGxvYWQ6IHsgaW1hZ2VTaXplcywgc3RhdGljVVJMIH0sXG4gIH0gPSBjb2xsZWN0aW9uXG4gIGNvbnN0IHsgc2l6ZXMgfSA9IGRvY1xuXG4gIGNvbnN0IFtvcmRlcmVkU2l6ZXMsIHNldE9yZGVyZWRTaXplc10gPSB1c2VTdGF0ZTxGaWxlU2l6ZXM+KCgpID0+IHNvcnRTaXplcyhzaXplcywgaW1hZ2VTaXplcykpXG4gIGNvbnN0IFtzZWxlY3RlZFNpemUsIHNldFNlbGVjdGVkU2l6ZV0gPSB1c2VTdGF0ZTxudWxsIHwgc3RyaW5nPihudWxsKVxuXG4gIGNvbnN0IGdlbmVyYXRlSW1hZ2VVcmwgPSAoZG9jKSA9PiB7XG4gICAgaWYgKCFkb2MuZmlsZW5hbWUpIHJldHVybiBudWxsXG4gICAgaWYgKGRvYy51cmwpIHJldHVybiBgJHtkb2MudXJsfSR7aW1hZ2VDYWNoZVRhZyA/IGA/JHtpbWFnZUNhY2hlVGFnfWAgOiAnJ31gXG4gIH1cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRPcmRlcmVkU2l6ZXMoc29ydFNpemVzKHNpemVzLCBpbWFnZVNpemVzKSlcbiAgfSwgW3NpemVzLCBpbWFnZVNpemVzLCBpbWFnZUNhY2hlVGFnXSlcblxuICBjb25zdCBtYWluUHJldmlld1NyYyA9IHNlbGVjdGVkU2l6ZVxuICAgID8gZ2VuZXJhdGVJbWFnZVVybChkb2Muc2l6ZXNbc2VsZWN0ZWRTaXplXSlcbiAgICA6IGdlbmVyYXRlSW1hZ2VVcmwoZG9jKVxuXG4gIGNvbnN0IG9yaWdpbmFsSW1hZ2UgPSB1c2VNZW1vKFxuICAgICgpOiBGaWxlU2l6ZXNbMF0gPT4gKHtcbiAgICAgIGZpbGVuYW1lOiBkb2MuZmlsZW5hbWUsXG4gICAgICBmaWxlc2l6ZTogZG9jLmZpbGVzaXplLFxuICAgICAgaGVpZ2h0OiBkb2MuaGVpZ2h0LFxuICAgICAgbWltZVR5cGU6IGRvYy5taW1lVHlwZSxcbiAgICAgIHdpZHRoOiBkb2Mud2lkdGgsXG4gICAgfSksXG4gICAgW2RvY10sXG4gIClcbiAgY29uc3Qgb3JpZ2luYWxGaWxlbmFtZSA9ICdPcmlnaW5hbCdcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtiYXNlQ2xhc3N9PlxuICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2ltYWdlV3JhcGB9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fbWV0YWB9PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19zaXplTmFtZWB9PntzZWxlY3RlZFNpemUgfHwgb3JpZ2luYWxGaWxlbmFtZX08L2Rpdj5cbiAgICAgICAgICA8TWV0YVxuICAgICAgICAgICAgey4uLihzZWxlY3RlZFNpemUgPyBvcmRlcmVkU2l6ZXNbc2VsZWN0ZWRTaXplXSA6IG9yaWdpbmFsSW1hZ2UpfVxuICAgICAgICAgICAgc3RhdGljVVJMPXtzdGF0aWNVUkx9XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxpbWcgYWx0PXtkb2MuZmlsZW5hbWV9IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fcHJldmlld2B9IHNyYz17bWFpblByZXZpZXdTcmN9IC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19saXN0V3JhcGB9PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fbGlzdGB9PlxuICAgICAgICAgIDxQcmV2aWV3U2l6ZUNhcmRcbiAgICAgICAgICAgIGFjdGl2ZT17IXNlbGVjdGVkU2l6ZX1cbiAgICAgICAgICAgIGJhc2VVUkw9e3N0YXRpY1VSTH1cbiAgICAgICAgICAgIG1ldGE9e29yaWdpbmFsSW1hZ2V9XG4gICAgICAgICAgICBuYW1lPXtvcmlnaW5hbEZpbGVuYW1lfVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0U2VsZWN0ZWRTaXplKG51bGwpfVxuICAgICAgICAgICAgcHJldmlld1NyYz17Z2VuZXJhdGVJbWFnZVVybChkb2MpfVxuICAgICAgICAgIC8+XG5cbiAgICAgICAgICB7T2JqZWN0LmVudHJpZXMob3JkZXJlZFNpemVzKS5tYXAoKFtrZXksIHZhbF0pID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkID0gc2VsZWN0ZWRTaXplID09PSBrZXlcbiAgICAgICAgICAgIGNvbnN0IHByZXZpZXdTcmMgPSBnZW5lcmF0ZUltYWdlVXJsKHZhbClcblxuICAgICAgICAgICAgaWYgKHByZXZpZXdTcmMpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8UHJldmlld1NpemVDYXJkXG4gICAgICAgICAgICAgICAgICBhY3RpdmU9e3NlbGVjdGVkfVxuICAgICAgICAgICAgICAgICAgYmFzZVVSTD17c3RhdGljVVJMfVxuICAgICAgICAgICAgICAgICAga2V5PXtrZXl9XG4gICAgICAgICAgICAgICAgICBtZXRhPXt2YWx9XG4gICAgICAgICAgICAgICAgICBuYW1lPXtrZXl9XG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRTZWxlY3RlZFNpemUoa2V5KX1cbiAgICAgICAgICAgICAgICAgIHByZXZpZXdTcmM9e3ByZXZpZXdTcmN9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgIH0pfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApXG59XG5leHBvcnQgZGVmYXVsdCBQcmV2aWV3U2l6ZXNcbiJdLCJuYW1lcyI6WyJiYXNlQ2xhc3MiLCJzb3J0U2l6ZXMiLCJzaXplcyIsImltYWdlU2l6ZXMiLCJsZW5ndGgiLCJvcmRlcmVkU2l6ZXMiLCJmb3JFYWNoIiwibmFtZSIsIlByZXZpZXdTaXplQ2FyZCIsImFjdGl2ZSIsImJhc2VVUkwiLCJtZXRhIiwib25DbGljayIsInByZXZpZXdTcmMiLCJkaXYiLCJjbGFzc05hbWUiLCJmaWx0ZXIiLCJCb29sZWFuIiwiam9pbiIsInVuZGVmaW5lZCIsIm9uS2V5RG93biIsImUiLCJrZXkiLCJyb2xlIiwidGFiSW5kZXgiLCJpbWciLCJhbHQiLCJmaWxlbmFtZSIsInNyYyIsIk1ldGEiLCJzdGF0aWNVUkwiLCJQcmV2aWV3U2l6ZXMiLCJjb2xsZWN0aW9uIiwiZG9jIiwiaW1hZ2VDYWNoZVRhZyIsInVwbG9hZCIsInNldE9yZGVyZWRTaXplcyIsInVzZVN0YXRlIiwic2VsZWN0ZWRTaXplIiwic2V0U2VsZWN0ZWRTaXplIiwiZ2VuZXJhdGVJbWFnZVVybCIsInVybCIsInVzZUVmZmVjdCIsIm1haW5QcmV2aWV3U3JjIiwib3JpZ2luYWxJbWFnZSIsInVzZU1lbW8iLCJmaWxlc2l6ZSIsImhlaWdodCIsIm1pbWVUeXBlIiwid2lkdGgiLCJvcmlnaW5hbEZpbGVuYW1lIiwiT2JqZWN0IiwiZW50cmllcyIsIm1hcCIsInZhbCIsInNlbGVjdGVkIl0sIm1hcHBpbmdzIjoiOzs7OytCQXdKQTs7O2VBQUE7OzsrREF4Sm9EOzZEQU1uQztRQUNWOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUVQLE1BQU1BLFlBQVk7QUFFbEIsTUFBTUMsWUFBWSxDQUFDQyxPQUFrQkM7SUFDbkMsSUFBSSxDQUFDQSxjQUFjQSxXQUFXQyxNQUFNLEtBQUssR0FBRyxPQUFPRjtJQUVuRCxNQUFNRyxlQUEwQixDQUFDO0lBRWpDRixXQUFXRyxPQUFPLENBQUMsQ0FBQyxFQUFFQyxJQUFJLEVBQUU7UUFDMUIsSUFBSUwsS0FBSyxDQUFDSyxLQUFLLEVBQUU7WUFDZkYsWUFBWSxDQUFDRSxLQUFLLEdBQUdMLEtBQUssQ0FBQ0ssS0FBSztRQUNsQztJQUNGO0lBRUEsT0FBT0Y7QUFDVDtBQVVBLE1BQU1HLGtCQUFrRCxDQUFDLEVBQ3ZERCxJQUFJLEVBQ0pFLE1BQU0sRUFDTkMsT0FBTyxFQUNQQyxJQUFJLEVBQ0pDLE9BQU8sRUFDUEMsVUFBVSxFQUNYO0lBQ0MscUJBQ0UsNkJBQUNDO1FBQ0NDLFdBQVc7WUFBQyxDQUFDLEVBQUVmLFVBQVUsWUFBWSxDQUFDO1lBQUVTLFVBQVUsQ0FBQyxFQUFFVCxVQUFVLFVBQVUsQ0FBQztTQUFDLENBQ3hFZ0IsTUFBTSxDQUFDQyxTQUNQQyxJQUFJLENBQUM7UUFDUk4sU0FBUyxPQUFPQSxZQUFZLGFBQWFBLFVBQVVPO1FBQ25EQyxXQUFXLENBQUNDO1lBQ1YsSUFBSSxPQUFPVCxZQUFZLFlBQVk7WUFDbkMsSUFBSVMsRUFBRUMsR0FBRyxLQUFLLFNBQVNWO1FBQ3pCO1FBQ0FXLE1BQUs7UUFDTEMsVUFBVTtxQkFFViw2QkFBQ1Y7UUFBSUMsV0FBVyxDQUFDLEVBQUVmLFVBQVUsT0FBTyxDQUFDO3FCQUNuQyw2QkFBQ3lCO1FBQUlDLEtBQUtmLEtBQUtnQixRQUFRO1FBQUVDLEtBQUtmO3VCQUVoQyw2QkFBQ0M7UUFBSUMsV0FBVyxDQUFDLEVBQUVmLFVBQVUsVUFBVSxDQUFDO3FCQUN0Qyw2QkFBQ2M7UUFBSUMsV0FBVyxDQUFDLEVBQUVmLFVBQVUsVUFBVSxDQUFDO09BQUdPLHFCQUMzQyw2QkFBQ3NCLGFBQUk7UUFBRSxHQUFHbEIsSUFBSTtRQUFFbUIsV0FBV3BCOztBQUluQztBQUVBLE1BQU1xQixlQU1ELENBQUMsRUFBRUMsVUFBVSxFQUFFQyxHQUFHLEVBQUVDLGFBQWEsRUFBRTtJQUN0QyxNQUFNLEVBQ0pDLFFBQVEsRUFBRWhDLFVBQVUsRUFBRTJCLFNBQVMsRUFBRSxFQUNsQyxHQUFHRTtJQUNKLE1BQU0sRUFBRTlCLEtBQUssRUFBRSxHQUFHK0I7SUFFbEIsTUFBTSxDQUFDNUIsY0FBYytCLGdCQUFnQixHQUFHQyxJQUFBQSxlQUFRLEVBQVksSUFBTXBDLFVBQVVDLE9BQU9DO0lBQ25GLE1BQU0sQ0FBQ21DLGNBQWNDLGdCQUFnQixHQUFHRixJQUFBQSxlQUFRLEVBQWdCO0lBRWhFLE1BQU1HLG1CQUFtQixDQUFDUDtRQUN4QixJQUFJLENBQUNBLElBQUlOLFFBQVEsRUFBRSxPQUFPO1FBQzFCLElBQUlNLElBQUlRLEdBQUcsRUFBRSxPQUFPLENBQUMsRUFBRVIsSUFBSVEsR0FBRyxDQUFDLEVBQUVQLGdCQUFnQixDQUFDLENBQUMsRUFBRUEsY0FBYyxDQUFDLEdBQUcsR0FBRyxDQUFDO0lBQzdFO0lBQ0FRLElBQUFBLGdCQUFTLEVBQUM7UUFDUk4sZ0JBQWdCbkMsVUFBVUMsT0FBT0M7SUFDbkMsR0FBRztRQUFDRDtRQUFPQztRQUFZK0I7S0FBYztJQUVyQyxNQUFNUyxpQkFBaUJMLGVBQ25CRSxpQkFBaUJQLElBQUkvQixLQUFLLENBQUNvQyxhQUFhLElBQ3hDRSxpQkFBaUJQO0lBRXJCLE1BQU1XLGdCQUFnQkMsSUFBQUEsY0FBTyxFQUMzQixJQUFxQixDQUFBO1lBQ25CbEIsVUFBVU0sSUFBSU4sUUFBUTtZQUN0Qm1CLFVBQVViLElBQUlhLFFBQVE7WUFDdEJDLFFBQVFkLElBQUljLE1BQU07WUFDbEJDLFVBQVVmLElBQUllLFFBQVE7WUFDdEJDLE9BQU9oQixJQUFJZ0IsS0FBSztRQUNsQixDQUFBLEdBQ0E7UUFBQ2hCO0tBQUk7SUFFUCxNQUFNaUIsbUJBQW1CO0lBRXpCLHFCQUNFLDZCQUFDcEM7UUFBSUMsV0FBV2Y7cUJBQ2QsNkJBQUNjO1FBQUlDLFdBQVcsQ0FBQyxFQUFFZixVQUFVLFdBQVcsQ0FBQztxQkFDdkMsNkJBQUNjO1FBQUlDLFdBQVcsQ0FBQyxFQUFFZixVQUFVLE1BQU0sQ0FBQztxQkFDbEMsNkJBQUNjO1FBQUlDLFdBQVcsQ0FBQyxFQUFFZixVQUFVLFVBQVUsQ0FBQztPQUFHc0MsZ0JBQWdCWSxpQ0FDM0QsNkJBQUNyQixhQUFJO1FBQ0YsR0FBSVMsZUFBZWpDLFlBQVksQ0FBQ2lDLGFBQWEsR0FBR00sYUFBYTtRQUM5RGQsV0FBV0E7dUJBR2YsNkJBQUNMO1FBQUlDLEtBQUtPLElBQUlOLFFBQVE7UUFBRVosV0FBVyxDQUFDLEVBQUVmLFVBQVUsU0FBUyxDQUFDO1FBQUU0QixLQUFLZTt1QkFFbkUsNkJBQUM3QjtRQUFJQyxXQUFXLENBQUMsRUFBRWYsVUFBVSxVQUFVLENBQUM7cUJBQ3RDLDZCQUFDYztRQUFJQyxXQUFXLENBQUMsRUFBRWYsVUFBVSxNQUFNLENBQUM7cUJBQ2xDLDZCQUFDUTtRQUNDQyxRQUFRLENBQUM2QjtRQUNUNUIsU0FBU29CO1FBQ1RuQixNQUFNaUM7UUFDTnJDLE1BQU0yQztRQUNOdEMsU0FBUyxJQUFNMkIsZ0JBQWdCO1FBQy9CMUIsWUFBWTJCLGlCQUFpQlA7UUFHOUJrQixPQUFPQyxPQUFPLENBQUMvQyxjQUFjZ0QsR0FBRyxDQUFDLENBQUMsQ0FBQy9CLEtBQUtnQyxJQUFJO1FBQzNDLE1BQU1DLFdBQVdqQixpQkFBaUJoQjtRQUNsQyxNQUFNVCxhQUFhMkIsaUJBQWlCYztRQUVwQyxJQUFJekMsWUFBWTtZQUNkLHFCQUNFLDZCQUFDTDtnQkFDQ0MsUUFBUThDO2dCQUNSN0MsU0FBU29CO2dCQUNUUixLQUFLQTtnQkFDTFgsTUFBTTJDO2dCQUNOL0MsTUFBTWU7Z0JBQ05WLFNBQVMsSUFBTTJCLGdCQUFnQmpCO2dCQUMvQlQsWUFBWUE7O1FBR2xCO1FBRUEsT0FBTztJQUNUO0FBS1Y7TUFDQSxXQUFla0IifQ==