payload
Version:
Node, React and MongoDB Headless CMS and Application Framework
203 lines (202 loc) • 19.7 kB
JavaScript
"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 _useDebounce = /*#__PURE__*/ _interop_require_default(require("../../../../hooks/useDebounce"));
const _RenderCustomComponent = /*#__PURE__*/ _interop_require_default(require("../../../utilities/RenderCustomComponent"));
const _Button = /*#__PURE__*/ _interop_require_default(require("../../Button"));
const _ReactSelect = /*#__PURE__*/ _interop_require_default(require("../../ReactSelect"));
const _Date = /*#__PURE__*/ _interop_require_default(require("./Date"));
const _Number = /*#__PURE__*/ _interop_require_default(require("./Number"));
const _Relationship = /*#__PURE__*/ _interop_require_default(require("./Relationship"));
const _Select = require("./Select");
const _Text = /*#__PURE__*/ _interop_require_default(require("./Text"));
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 valueFields = {
Date: _Date.default,
Number: _Number.default,
Relationship: _Relationship.default,
Select: _Select.Select,
Text: _Text.default
};
const baseClass = 'condition';
const Condition = (props)=>{
const { andIndex, dispatch, fields, orIndex, value } = props;
const fieldName = Object.keys(value)[0];
const [activeField, setActiveField] = (0, _react.useState)(()=>fields.find((field)=>fieldName === field.value));
const operatorAndValue = value?.[fieldName] ? Object.entries(value[fieldName])[0] : undefined;
const queryValue = operatorAndValue?.[1];
const operatorValue = operatorAndValue?.[0];
const [internalValue, setInternalValue] = (0, _react.useState)(queryValue);
const [internalOperatorField, setInternalOperatorField] = (0, _react.useState)(operatorValue);
const debouncedValue = (0, _useDebounce.default)(internalValue, 300);
(0, _react.useEffect)(()=>{
const newActiveField = fields.find(({ value: name })=>name === fieldName);
if (newActiveField && newActiveField !== activeField) {
setActiveField(newActiveField);
setInternalOperatorField(null);
setInternalValue('');
}
}, [
fieldName,
fields,
activeField
]);
(0, _react.useEffect)(()=>{
dispatch({
andIndex,
orIndex,
type: 'update',
value: debouncedValue || ''
});
}, [
debouncedValue,
dispatch,
orIndex,
andIndex
]);
const booleanSelect = [
'exists'
].includes(operatorValue) || activeField.props.type === 'checkbox';
const ValueComponent = booleanSelect ? _Select.Select : valueFields[activeField?.component] || valueFields.Text;
let valueOptions;
if (booleanSelect) {
valueOptions = [
'true',
'false'
];
} else if (activeField?.props && 'options' in activeField.props) {
valueOptions = activeField.props.options;
}
return /*#__PURE__*/ _react.default.createElement("div", {
className: baseClass
}, /*#__PURE__*/ _react.default.createElement("div", {
className: `${baseClass}__wrap`
}, /*#__PURE__*/ _react.default.createElement("div", {
className: `${baseClass}__inputs`
}, /*#__PURE__*/ _react.default.createElement("div", {
className: `${baseClass}__field`
}, /*#__PURE__*/ _react.default.createElement(_ReactSelect.default, {
isClearable: false,
onChange: (field)=>{
dispatch({
andIndex: andIndex,
field: field?.value,
orIndex: orIndex,
type: 'update'
});
},
options: fields,
value: fields.find((field)=>fieldName === field.value)
})), /*#__PURE__*/ _react.default.createElement("div", {
className: `${baseClass}__operator`
}, /*#__PURE__*/ _react.default.createElement(_ReactSelect.default, {
disabled: !fieldName,
isClearable: false,
onChange: (operator)=>{
dispatch({
andIndex,
operator: operator.value,
orIndex,
type: 'update'
});
setInternalOperatorField(operator.value);
},
options: activeField.operators,
value: activeField.operators.find((operator)=>internalOperatorField === operator.value) || null
})), /*#__PURE__*/ _react.default.createElement("div", {
className: `${baseClass}__value`
}, /*#__PURE__*/ _react.default.createElement(_RenderCustomComponent.default, {
CustomComponent: activeField?.props?.admin?.components?.Filter,
DefaultComponent: ValueComponent,
componentProps: {
...activeField?.props,
disabled: !operatorValue,
onChange: setInternalValue,
operator: operatorValue,
options: valueOptions,
value: internalValue
}
}))), /*#__PURE__*/ _react.default.createElement("div", {
className: `${baseClass}__actions`
}, /*#__PURE__*/ _react.default.createElement(_Button.default, {
buttonStyle: "icon-label",
className: `${baseClass}__actions-remove`,
icon: "x",
iconStyle: "with-border",
onClick: ()=>dispatch({
andIndex,
orIndex,
type: 'remove'
}),
round: true
}), /*#__PURE__*/ _react.default.createElement(_Button.default, {
buttonStyle: "icon-label",
className: `${baseClass}__actions-add`,
icon: "plus",
iconStyle: "with-border",
onClick: ()=>dispatch({
andIndex: andIndex + 1,
field: fields[0].value,
orIndex,
relation: 'and',
type: 'add'
}),
round: true
}))));
};
const _default = Condition;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hZG1pbi9jb21wb25lbnRzL2VsZW1lbnRzL1doZXJlQnVpbGRlci9Db25kaXRpb24vaW5kZXgudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCwgeyB1c2VFZmZlY3QsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5cbmltcG9ydCB0eXBlIHsgRmllbGRDb25kaXRpb24gfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB0eXBlIHsgUHJvcHMgfSBmcm9tICcuL3R5cGVzJ1xuXG5pbXBvcnQgdXNlRGVib3VuY2UgZnJvbSAnLi4vLi4vLi4vLi4vaG9va3MvdXNlRGVib3VuY2UnXG5pbXBvcnQgUmVuZGVyQ3VzdG9tQ29tcG9uZW50IGZyb20gJy4uLy4uLy4uL3V0aWxpdGllcy9SZW5kZXJDdXN0b21Db21wb25lbnQnXG5pbXBvcnQgQnV0dG9uIGZyb20gJy4uLy4uL0J1dHRvbidcbmltcG9ydCBSZWFjdFNlbGVjdCBmcm9tICcuLi8uLi9SZWFjdFNlbGVjdCdcbmltcG9ydCBEYXRlIGZyb20gJy4vRGF0ZSdcbmltcG9ydCBOdW1iZXIgZnJvbSAnLi9OdW1iZXInXG5pbXBvcnQgUmVsYXRpb25zaGlwIGZyb20gJy4vUmVsYXRpb25zaGlwJ1xuaW1wb3J0IHsgU2VsZWN0IH0gZnJvbSAnLi9TZWxlY3QnXG5pbXBvcnQgVGV4dCBmcm9tICcuL1RleHQnXG5pbXBvcnQgJy4vaW5kZXguc2NzcydcblxuY29uc3QgdmFsdWVGaWVsZHMgPSB7XG4gIERhdGUsXG4gIE51bWJlcixcbiAgUmVsYXRpb25zaGlwLFxuICBTZWxlY3QsXG4gIFRleHQsXG59XG5cbmNvbnN0IGJhc2VDbGFzcyA9ICdjb25kaXRpb24nXG5cbmNvbnN0IENvbmRpdGlvbjogUmVhY3QuRkM8UHJvcHM+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHsgYW5kSW5kZXgsIGRpc3BhdGNoLCBmaWVsZHMsIG9ySW5kZXgsIHZhbHVlIH0gPSBwcm9wc1xuICBjb25zdCBmaWVsZE5hbWUgPSBPYmplY3Qua2V5cyh2YWx1ZSlbMF1cbiAgY29uc3QgW2FjdGl2ZUZpZWxkLCBzZXRBY3RpdmVGaWVsZF0gPSB1c2VTdGF0ZTxGaWVsZENvbmRpdGlvbj4oKCkgPT5cbiAgICBmaWVsZHMuZmluZCgoZmllbGQpID0+IGZpZWxkTmFtZSA9PT0gZmllbGQudmFsdWUpLFxuICApXG5cbiAgY29uc3Qgb3BlcmF0b3JBbmRWYWx1ZSA9IHZhbHVlPy5bZmllbGROYW1lXSA/IE9iamVjdC5lbnRyaWVzKHZhbHVlW2ZpZWxkTmFtZV0pWzBdIDogdW5kZWZpbmVkXG4gIGNvbnN0IHF1ZXJ5VmFsdWUgPSBvcGVyYXRvckFuZFZhbHVlPy5bMV1cbiAgY29uc3Qgb3BlcmF0b3JWYWx1ZSA9IG9wZXJhdG9yQW5kVmFsdWU/LlswXVxuXG4gIGNvbnN0IFtpbnRlcm5hbFZhbHVlLCBzZXRJbnRlcm5hbFZhbHVlXSA9IHVzZVN0YXRlKHF1ZXJ5VmFsdWUpXG4gIGNvbnN0IFtpbnRlcm5hbE9wZXJhdG9yRmllbGQsIHNldEludGVybmFsT3BlcmF0b3JGaWVsZF0gPSB1c2VTdGF0ZShvcGVyYXRvclZhbHVlKVxuXG4gIGNvbnN0IGRlYm91bmNlZFZhbHVlID0gdXNlRGVib3VuY2UoaW50ZXJuYWxWYWx1ZSwgMzAwKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgbmV3QWN0aXZlRmllbGQgPSBmaWVsZHMuZmluZCgoeyB2YWx1ZTogbmFtZSB9KSA9PiBuYW1lID09PSBmaWVsZE5hbWUpXG5cbiAgICBpZiAobmV3QWN0aXZlRmllbGQgJiYgbmV3QWN0aXZlRmllbGQgIT09IGFjdGl2ZUZpZWxkKSB7XG4gICAgICBzZXRBY3RpdmVGaWVsZChuZXdBY3RpdmVGaWVsZClcbiAgICAgIHNldEludGVybmFsT3BlcmF0b3JGaWVsZChudWxsKVxuICAgICAgc2V0SW50ZXJuYWxWYWx1ZSgnJylcbiAgICB9XG4gIH0sIFtmaWVsZE5hbWUsIGZpZWxkcywgYWN0aXZlRmllbGRdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgZGlzcGF0Y2goe1xuICAgICAgYW5kSW5kZXgsXG4gICAgICBvckluZGV4LFxuICAgICAgdHlwZTogJ3VwZGF0ZScsXG4gICAgICB2YWx1ZTogZGVib3VuY2VkVmFsdWUgfHwgJycsXG4gICAgfSlcbiAgfSwgW2RlYm91bmNlZFZhbHVlLCBkaXNwYXRjaCwgb3JJbmRleCwgYW5kSW5kZXhdKVxuXG4gIGNvbnN0IGJvb2xlYW5TZWxlY3QgPSBbJ2V4aXN0cyddLmluY2x1ZGVzKG9wZXJhdG9yVmFsdWUpIHx8IGFjdGl2ZUZpZWxkLnByb3BzLnR5cGUgPT09ICdjaGVja2JveCdcbiAgY29uc3QgVmFsdWVDb21wb25lbnQgPSBib29sZWFuU2VsZWN0XG4gICAgPyBTZWxlY3RcbiAgICA6IHZhbHVlRmllbGRzW2FjdGl2ZUZpZWxkPy5jb21wb25lbnRdIHx8IHZhbHVlRmllbGRzLlRleHRcblxuICBsZXQgdmFsdWVPcHRpb25zXG4gIGlmIChib29sZWFuU2VsZWN0KSB7XG4gICAgdmFsdWVPcHRpb25zID0gWyd0cnVlJywgJ2ZhbHNlJ11cbiAgfSBlbHNlIGlmIChhY3RpdmVGaWVsZD8ucHJvcHMgJiYgJ29wdGlvbnMnIGluIGFjdGl2ZUZpZWxkLnByb3BzKSB7XG4gICAgdmFsdWVPcHRpb25zID0gYWN0aXZlRmllbGQucHJvcHMub3B0aW9uc1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17YmFzZUNsYXNzfT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X193cmFwYH0+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19pbnB1dHNgfT5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZmllbGRgfT5cbiAgICAgICAgICAgIDxSZWFjdFNlbGVjdFxuICAgICAgICAgICAgICBpc0NsZWFyYWJsZT17ZmFsc2V9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZmllbGQpID0+IHtcbiAgICAgICAgICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgICAgICAgICBhbmRJbmRleDogYW5kSW5kZXgsXG4gICAgICAgICAgICAgICAgICBmaWVsZDogZmllbGQ/LnZhbHVlLFxuICAgICAgICAgICAgICAgICAgb3JJbmRleDogb3JJbmRleCxcbiAgICAgICAgICAgICAgICAgIHR5cGU6ICd1cGRhdGUnLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgIG9wdGlvbnM9e2ZpZWxkc31cbiAgICAgICAgICAgICAgdmFsdWU9e2ZpZWxkcy5maW5kKChmaWVsZCkgPT4gZmllbGROYW1lID09PSBmaWVsZC52YWx1ZSl9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtgJHtiYXNlQ2xhc3N9X19vcGVyYXRvcmB9PlxuICAgICAgICAgICAgPFJlYWN0U2VsZWN0XG4gICAgICAgICAgICAgIGRpc2FibGVkPXshZmllbGROYW1lfVxuICAgICAgICAgICAgICBpc0NsZWFyYWJsZT17ZmFsc2V9XG4gICAgICAgICAgICAgIG9uQ2hhbmdlPXsob3BlcmF0b3IpID0+IHtcbiAgICAgICAgICAgICAgICBkaXNwYXRjaCh7XG4gICAgICAgICAgICAgICAgICBhbmRJbmRleCxcbiAgICAgICAgICAgICAgICAgIG9wZXJhdG9yOiBvcGVyYXRvci52YWx1ZSxcbiAgICAgICAgICAgICAgICAgIG9ySW5kZXgsXG4gICAgICAgICAgICAgICAgICB0eXBlOiAndXBkYXRlJyxcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIHNldEludGVybmFsT3BlcmF0b3JGaWVsZChvcGVyYXRvci52YWx1ZSlcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgb3B0aW9ucz17YWN0aXZlRmllbGQub3BlcmF0b3JzfVxuICAgICAgICAgICAgICB2YWx1ZT17XG4gICAgICAgICAgICAgICAgYWN0aXZlRmllbGQub3BlcmF0b3JzLmZpbmQoXG4gICAgICAgICAgICAgICAgICAob3BlcmF0b3IpID0+IGludGVybmFsT3BlcmF0b3JGaWVsZCA9PT0gb3BlcmF0b3IudmFsdWUsXG4gICAgICAgICAgICAgICAgKSB8fCBudWxsXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3ZhbHVlYH0+XG4gICAgICAgICAgICA8UmVuZGVyQ3VzdG9tQ29tcG9uZW50XG4gICAgICAgICAgICAgIEN1c3RvbUNvbXBvbmVudD17YWN0aXZlRmllbGQ/LnByb3BzPy5hZG1pbj8uY29tcG9uZW50cz8uRmlsdGVyfVxuICAgICAgICAgICAgICBEZWZhdWx0Q29tcG9uZW50PXtWYWx1ZUNvbXBvbmVudH1cbiAgICAgICAgICAgICAgY29tcG9uZW50UHJvcHM9e3tcbiAgICAgICAgICAgICAgICAuLi5hY3RpdmVGaWVsZD8ucHJvcHMsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6ICFvcGVyYXRvclZhbHVlLFxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlOiBzZXRJbnRlcm5hbFZhbHVlLFxuICAgICAgICAgICAgICAgIG9wZXJhdG9yOiBvcGVyYXRvclZhbHVlLFxuICAgICAgICAgICAgICAgIG9wdGlvbnM6IHZhbHVlT3B0aW9ucyxcbiAgICAgICAgICAgICAgICB2YWx1ZTogaW50ZXJuYWxWYWx1ZSxcbiAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fYWN0aW9uc2B9PlxuICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgIGJ1dHRvblN0eWxlPVwiaWNvbi1sYWJlbFwiXG4gICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2FjdGlvbnMtcmVtb3ZlYH1cbiAgICAgICAgICAgIGljb249XCJ4XCJcbiAgICAgICAgICAgIGljb25TdHlsZT1cIndpdGgtYm9yZGVyXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+XG4gICAgICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgICAgICBhbmRJbmRleCxcbiAgICAgICAgICAgICAgICBvckluZGV4LFxuICAgICAgICAgICAgICAgIHR5cGU6ICdyZW1vdmUnLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcm91bmRcbiAgICAgICAgICAvPlxuICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgIGJ1dHRvblN0eWxlPVwiaWNvbi1sYWJlbFwiXG4gICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2FjdGlvbnMtYWRkYH1cbiAgICAgICAgICAgIGljb249XCJwbHVzXCJcbiAgICAgICAgICAgIGljb25TdHlsZT1cIndpdGgtYm9yZGVyXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+XG4gICAgICAgICAgICAgIGRpc3BhdGNoKHtcbiAgICAgICAgICAgICAgICBhbmRJbmRleDogYW5kSW5kZXggKyAxLFxuICAgICAgICAgICAgICAgIGZpZWxkOiBmaWVsZHNbMF0udmFsdWUsXG4gICAgICAgICAgICAgICAgb3JJbmRleCxcbiAgICAgICAgICAgICAgICByZWxhdGlvbjogJ2FuZCcsXG4gICAgICAgICAgICAgICAgdHlwZTogJ2FkZCcsXG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByb3VuZFxuICAgICAgICAgIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIClcbn1cblxuZXhwb3J0IGRlZmF1bHQgQ29uZGl0aW9uXG4iXSwibmFtZXMiOlsidmFsdWVGaWVsZHMiLCJEYXRlIiwiTnVtYmVyIiwiUmVsYXRpb25zaGlwIiwiU2VsZWN0IiwiVGV4dCIsImJhc2VDbGFzcyIsIkNvbmRpdGlvbiIsInByb3BzIiwiYW5kSW5kZXgiLCJkaXNwYXRjaCIsImZpZWxkcyIsIm9ySW5kZXgiLCJ2YWx1ZSIsImZpZWxkTmFtZSIsIk9iamVjdCIsImtleXMiLCJhY3RpdmVGaWVsZCIsInNldEFjdGl2ZUZpZWxkIiwidXNlU3RhdGUiLCJmaW5kIiwiZmllbGQiLCJvcGVyYXRvckFuZFZhbHVlIiwiZW50cmllcyIsInVuZGVmaW5lZCIsInF1ZXJ5VmFsdWUiLCJvcGVyYXRvclZhbHVlIiwiaW50ZXJuYWxWYWx1ZSIsInNldEludGVybmFsVmFsdWUiLCJpbnRlcm5hbE9wZXJhdG9yRmllbGQiLCJzZXRJbnRlcm5hbE9wZXJhdG9yRmllbGQiLCJkZWJvdW5jZWRWYWx1ZSIsInVzZURlYm91bmNlIiwidXNlRWZmZWN0IiwibmV3QWN0aXZlRmllbGQiLCJuYW1lIiwidHlwZSIsImJvb2xlYW5TZWxlY3QiLCJpbmNsdWRlcyIsIlZhbHVlQ29tcG9uZW50IiwiY29tcG9uZW50IiwidmFsdWVPcHRpb25zIiwib3B0aW9ucyIsImRpdiIsImNsYXNzTmFtZSIsIlJlYWN0U2VsZWN0IiwiaXNDbGVhcmFibGUiLCJvbkNoYW5nZSIsImRpc2FibGVkIiwib3BlcmF0b3IiLCJvcGVyYXRvcnMiLCJSZW5kZXJDdXN0b21Db21wb25lbnQiLCJDdXN0b21Db21wb25lbnQiLCJhZG1pbiIsImNvbXBvbmVudHMiLCJGaWx0ZXIiLCJEZWZhdWx0Q29tcG9uZW50IiwiY29tcG9uZW50UHJvcHMiLCJCdXR0b24iLCJidXR0b25TdHlsZSIsImljb24iLCJpY29uU3R5bGUiLCJvbkNsaWNrIiwicm91bmQiLCJyZWxhdGlvbiJdLCJtYXBwaW5ncyI6Ijs7OzsrQkFxS0E7OztlQUFBOzs7K0RBcksyQztvRUFLbkI7OEVBQ1U7K0RBQ2Y7b0VBQ0s7NkRBQ1A7K0RBQ0U7cUVBQ007d0JBQ0Y7NkRBQ047UUFDVjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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