tb-react-live-chat-loader
Version:
Implement live chat in your react app without taking a performance hit.
129 lines (119 loc) • 14.5 kB
JavaScript
const _excluded = ["color"];
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
import React, { memo } from 'react';
import useProvider from "../../hooks/useProvider";
import useChat from "../../hooks/useChat";
const styles = {
appearance: 'none',
background: 'none',
borderRadius: '50%',
bottom: '18pt',
display: 'inline',
height: '45pt',
padding: '0px',
position: 'fixed',
right: '18pt',
top: 'auto',
width: '45pt',
zIndex: 2147483647,
// 1 more than the actual widget
overflow: 'hidden',
boxShadow: '0 3px 12px rgba(0, 0, 0, .15)',
transition: 'box-shadow 150ms linear',
cursor: 'pointer',
outline: 'none',
userSelect: 'none'
};
// eslint-disable-next-line react/display-name
const CustomerChat = /*#__PURE__*/memo(({
providerKey,
color,
loggedInGreeting,
loggedOutGreeting,
greetingDialogDisplay,
greetingDialogDelay
}) => {
const fields = {
page_id: providerKey,
theme_color: color,
logged_in_greeting: loggedInGreeting,
logged_out_greeting: loggedOutGreeting,
greeting_dialog_display: greetingDialogDisplay,
greeting_dialog_delay: greetingDialogDelay
};
return /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("div", _extends({
className: "fb-customerchat"
}, fields)));
});
const Widget = ({
color
}) => {
const [state, loadChat] = useChat({
loadWhenIdle: true
});
if (state === 'complete') {
return null;
}
return /*#__PURE__*/React.createElement("div", {
style: styles,
role: "button",
"aria-label": "Load Chat",
"aria-busy": "true",
"aria-live": "polite",
onClick: () => loadChat({
open: true
}),
onMouseEnter: () => loadChat({
open: false
})
}, /*#__PURE__*/React.createElement("svg", {
width: "60px",
height: "60px",
viewBox: "0 0 60 60"
}, /*#__PURE__*/React.createElement("svg", {
x: "0",
y: "0",
width: "60px",
height: "60px"
}, /*#__PURE__*/React.createElement("g", {
stroke: "none",
strokeWidth: "1",
fill: "none",
fillRule: "evenodd"
}, /*#__PURE__*/React.createElement("g", null, /*#__PURE__*/React.createElement("circle", {
fill: color ? color : '#0084FF',
cx: "30",
cy: "30",
r: "30"
}), /*#__PURE__*/React.createElement("svg", {
x: "10",
y: "10"
}, /*#__PURE__*/React.createElement("g", {
transform: "translate(0.000000, -10.000000)",
fill: "#FFFFFF"
}, /*#__PURE__*/React.createElement("g", {
id: "logo",
transform: "translate(0.000000, 10.000000)"
}, /*#__PURE__*/React.createElement("path", {
d: "M20,0 C31.2666,0 40,8.2528 40,19.4 C40,30.5472 31.2666,38.8 20,38.8 C17.9763,38.8 16.0348,38.5327 14.2106,38.0311 C13.856,37.9335 13.4789,37.9612 13.1424,38.1098 L9.1727,39.8621 C8.1343,40.3205 6.9621,39.5819 6.9273,38.4474 L6.8184,34.8894 C6.805,34.4513 6.6078,34.0414 6.2811,33.7492 C2.3896,30.2691 0,25.2307 0,19.4 C0,8.2528 8.7334,0 20,0 Z M7.99009,25.07344 C7.42629,25.96794 8.52579,26.97594 9.36809,26.33674 L15.67879,21.54734 C16.10569,21.22334 16.69559,21.22164 17.12429,21.54314 L21.79709,25.04774 C23.19919,26.09944 25.20039,25.73014 26.13499,24.24744 L32.00999,14.92654 C32.57369,14.03204 31.47419,13.02404 30.63189,13.66324 L24.32119,18.45264 C23.89429,18.77664 23.30439,18.77834 22.87569,18.45674 L18.20299,14.95224 C16.80079,13.90064 14.79959,14.26984 13.86509,15.75264 L7.99009,25.07344 Z"
})))))))));
};
const Messenger = _ref => {
let {
color = ''
} = _ref,
props = _objectWithoutProperties(_ref, _excluded);
const {
providerKey: provKey
} = useProvider();
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(CustomerChat, _extends({
color: color,
providerKey: provKey
}, props)), /*#__PURE__*/React.createElement(Widget, {
color: color
}));
};
export default Messenger;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL01lc3Nlbmdlci9pbmRleC50c3giXSwibmFtZXMiOlsiUmVhY3QiLCJtZW1vIiwidXNlUHJvdmlkZXIiLCJ1c2VDaGF0Iiwic3R5bGVzIiwiYXBwZWFyYW5jZSIsImJhY2tncm91bmQiLCJib3JkZXJSYWRpdXMiLCJib3R0b20iLCJkaXNwbGF5IiwiaGVpZ2h0IiwicGFkZGluZyIsInBvc2l0aW9uIiwicmlnaHQiLCJ0b3AiLCJ3aWR0aCIsInpJbmRleCIsIm92ZXJmbG93IiwiYm94U2hhZG93IiwidHJhbnNpdGlvbiIsImN1cnNvciIsIm91dGxpbmUiLCJ1c2VyU2VsZWN0IiwiQ3VzdG9tZXJDaGF0IiwicHJvdmlkZXJLZXkiLCJjb2xvciIsImxvZ2dlZEluR3JlZXRpbmciLCJsb2dnZWRPdXRHcmVldGluZyIsImdyZWV0aW5nRGlhbG9nRGlzcGxheSIsImdyZWV0aW5nRGlhbG9nRGVsYXkiLCJmaWVsZHMiLCJwYWdlX2lkIiwidGhlbWVfY29sb3IiLCJsb2dnZWRfaW5fZ3JlZXRpbmciLCJsb2dnZWRfb3V0X2dyZWV0aW5nIiwiZ3JlZXRpbmdfZGlhbG9nX2Rpc3BsYXkiLCJncmVldGluZ19kaWFsb2dfZGVsYXkiLCJXaWRnZXQiLCJzdGF0ZSIsImxvYWRDaGF0IiwibG9hZFdoZW5JZGxlIiwib3BlbiIsIk1lc3NlbmdlciIsInByb3BzIiwicHJvdktleSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBQSxPQUFPQSxLQUFQLElBQStCQyxJQUEvQixRQUEyQyxPQUEzQztBQUdBLE9BQU9DLFdBQVA7QUFDQSxPQUFPQyxPQUFQO0FBRUEsTUFBTUMsTUFBcUIsR0FBRztBQUM1QkMsRUFBQUEsVUFBVSxFQUFFLE1BRGdCO0FBRTVCQyxFQUFBQSxVQUFVLEVBQUUsTUFGZ0I7QUFHNUJDLEVBQUFBLFlBQVksRUFBRSxLQUhjO0FBSTVCQyxFQUFBQSxNQUFNLEVBQUUsTUFKb0I7QUFLNUJDLEVBQUFBLE9BQU8sRUFBRSxRQUxtQjtBQU01QkMsRUFBQUEsTUFBTSxFQUFFLE1BTm9CO0FBTzVCQyxFQUFBQSxPQUFPLEVBQUUsS0FQbUI7QUFRNUJDLEVBQUFBLFFBQVEsRUFBRSxPQVJrQjtBQVM1QkMsRUFBQUEsS0FBSyxFQUFFLE1BVHFCO0FBVTVCQyxFQUFBQSxHQUFHLEVBQUUsTUFWdUI7QUFXNUJDLEVBQUFBLEtBQUssRUFBRSxNQVhxQjtBQVk1QkMsRUFBQUEsTUFBTSxFQUFFLFVBWm9CO0FBWVI7QUFDcEJDLEVBQUFBLFFBQVEsRUFBRSxRQWJrQjtBQWM1QkMsRUFBQUEsU0FBUyxFQUFFLCtCQWRpQjtBQWU1QkMsRUFBQUEsVUFBVSxFQUFFLHlCQWZnQjtBQWdCNUJDLEVBQUFBLE1BQU0sRUFBRSxTQWhCb0I7QUFpQjVCQyxFQUFBQSxPQUFPLEVBQUUsTUFqQm1CO0FBa0I1QkMsRUFBQUEsVUFBVSxFQUFFO0FBbEJnQixDQUE5QjtBQWtDQTtBQUNBLE1BQU1DLFlBQVksZ0JBQUd0QixJQUFJLENBQ3ZCLENBQUM7QUFDQ3VCLEVBQUFBLFdBREQ7QUFFQ0MsRUFBQUEsS0FGRDtBQUdDQyxFQUFBQSxnQkFIRDtBQUlDQyxFQUFBQSxpQkFKRDtBQUtDQyxFQUFBQSxxQkFMRDtBQU1DQyxFQUFBQTtBQU5ELENBQUQsS0FPYTtBQUNYLFFBQU1DLE1BQU0sR0FBRztBQUNiQyxJQUFBQSxPQUFPLEVBQUVQLFdBREk7QUFFYlEsSUFBQUEsV0FBVyxFQUFFUCxLQUZBO0FBR2JRLElBQUFBLGtCQUFrQixFQUFFUCxnQkFIUDtBQUliUSxJQUFBQSxtQkFBbUIsRUFBRVAsaUJBSlI7QUFLYlEsSUFBQUEsdUJBQXVCLEVBQUVQLHFCQUxaO0FBTWJRLElBQUFBLHFCQUFxQixFQUFFUDtBQU5WLEdBQWY7QUFTQSxzQkFDRSw4Q0FDRTtBQUFLLElBQUEsU0FBUyxFQUFDO0FBQWYsS0FBcUNDLE1BQXJDLEVBREYsQ0FERjtBQUtELENBdkJzQixDQUF6Qjs7QUEwQkEsTUFBTU8sTUFBTSxHQUFHLENBQUM7QUFBRVosRUFBQUE7QUFBRixDQUFELEtBQXNEO0FBQ25FLFFBQU0sQ0FBQ2EsS0FBRCxFQUFRQyxRQUFSLElBQW9CcEMsT0FBTyxDQUFDO0FBQUVxQyxJQUFBQSxZQUFZLEVBQUU7QUFBaEIsR0FBRCxDQUFqQzs7QUFFQSxNQUFJRixLQUFLLEtBQUssVUFBZCxFQUEwQjtBQUN4QixXQUFPLElBQVA7QUFDRDs7QUFFRCxzQkFDRTtBQUNFLElBQUEsS0FBSyxFQUFFbEMsTUFEVDtBQUVFLElBQUEsSUFBSSxFQUFDLFFBRlA7QUFHRSxrQkFBVyxXQUhiO0FBSUUsaUJBQVUsTUFKWjtBQUtFLGlCQUFVLFFBTFo7QUFNRSxJQUFBLE9BQU8sRUFBRSxNQUFNbUMsUUFBUSxDQUFDO0FBQUVFLE1BQUFBLElBQUksRUFBRTtBQUFSLEtBQUQsQ0FOekI7QUFPRSxJQUFBLFlBQVksRUFBRSxNQUFNRixRQUFRLENBQUM7QUFBRUUsTUFBQUEsSUFBSSxFQUFFO0FBQVIsS0FBRDtBQVA5QixrQkFTRTtBQUFLLElBQUEsS0FBSyxFQUFDLE1BQVg7QUFBa0IsSUFBQSxNQUFNLEVBQUMsTUFBekI7QUFBZ0MsSUFBQSxPQUFPLEVBQUM7QUFBeEMsa0JBQ0U7QUFBSyxJQUFBLENBQUMsRUFBQyxHQUFQO0FBQVcsSUFBQSxDQUFDLEVBQUMsR0FBYjtBQUFpQixJQUFBLEtBQUssRUFBQyxNQUF2QjtBQUE4QixJQUFBLE1BQU0sRUFBQztBQUFyQyxrQkFDRTtBQUFHLElBQUEsTUFBTSxFQUFDLE1BQVY7QUFBaUIsSUFBQSxXQUFXLEVBQUMsR0FBN0I7QUFBaUMsSUFBQSxJQUFJLEVBQUMsTUFBdEM7QUFBNkMsSUFBQSxRQUFRLEVBQUM7QUFBdEQsa0JBQ0UsNENBQ0U7QUFBUSxJQUFBLElBQUksRUFBRWhCLEtBQUssR0FBR0EsS0FBSCxHQUFXLFNBQTlCO0FBQXlDLElBQUEsRUFBRSxFQUFDLElBQTVDO0FBQWlELElBQUEsRUFBRSxFQUFDLElBQXBEO0FBQXlELElBQUEsQ0FBQyxFQUFDO0FBQTNELElBREYsZUFFRTtBQUFLLElBQUEsQ0FBQyxFQUFDLElBQVA7QUFBWSxJQUFBLENBQUMsRUFBQztBQUFkLGtCQUNFO0FBQUcsSUFBQSxTQUFTLEVBQUMsaUNBQWI7QUFBK0MsSUFBQSxJQUFJLEVBQUM7QUFBcEQsa0JBQ0U7QUFBRyxJQUFBLEVBQUUsRUFBQyxNQUFOO0FBQWEsSUFBQSxTQUFTLEVBQUM7QUFBdkIsa0JBQ0U7QUFBTSxJQUFBLENBQUMsRUFBQztBQUFSLElBREYsQ0FERixDQURGLENBRkYsQ0FERixDQURGLENBREYsQ0FURixDQURGO0FBNEJELENBbkNEOztBQXFDQSxNQUFNaUIsU0FBUyxHQUFHLFFBQWtEO0FBQUEsTUFBakQ7QUFBRWpCLElBQUFBLEtBQUssR0FBRztBQUFWLEdBQWlEO0FBQUEsTUFBaENrQixLQUFnQzs7QUFDbEUsUUFBTTtBQUFFbkIsSUFBQUEsV0FBVyxFQUFFb0I7QUFBZixNQUEyQjFDLFdBQVcsRUFBNUM7QUFFQSxzQkFDRSx1REFDRSxvQkFBQyxZQUFEO0FBQWMsSUFBQSxLQUFLLEVBQUV1QixLQUFyQjtBQUE0QixJQUFBLFdBQVcsRUFBRW1CO0FBQXpDLEtBQXNERCxLQUF0RCxFQURGLGVBRUUsb0JBQUMsTUFBRDtBQUFRLElBQUEsS0FBSyxFQUFFbEI7QUFBZixJQUZGLENBREY7QUFNRCxDQVREOztBQVdBLGVBQWVpQixTQUFmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7IENTU1Byb3BlcnRpZXMsIG1lbW8gfSBmcm9tICdyZWFjdCdcblxuaW1wb3J0IHsgUHJvdmlkZXIgfSBmcm9tICcuLi8uLi90eXBlcydcbmltcG9ydCB1c2VQcm92aWRlciBmcm9tICcuLi8uLi9ob29rcy91c2VQcm92aWRlcidcbmltcG9ydCB1c2VDaGF0IGZyb20gJy4uLy4uL2hvb2tzL3VzZUNoYXQnXG5cbmNvbnN0IHN0eWxlczogQ1NTUHJvcGVydGllcyA9IHtcbiAgYXBwZWFyYW5jZTogJ25vbmUnLFxuICBiYWNrZ3JvdW5kOiAnbm9uZScsXG4gIGJvcmRlclJhZGl1czogJzUwJScsXG4gIGJvdHRvbTogJzE4cHQnLFxuICBkaXNwbGF5OiAnaW5saW5lJyxcbiAgaGVpZ2h0OiAnNDVwdCcsXG4gIHBhZGRpbmc6ICcwcHgnLFxuICBwb3NpdGlvbjogJ2ZpeGVkJyxcbiAgcmlnaHQ6ICcxOHB0JyxcbiAgdG9wOiAnYXV0bycsXG4gIHdpZHRoOiAnNDVwdCcsXG4gIHpJbmRleDogMjE0NzQ4MzY0NywgLy8gMSBtb3JlIHRoYW4gdGhlIGFjdHVhbCB3aWRnZXRcbiAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICBib3hTaGFkb3c6ICcwIDNweCAxMnB4IHJnYmEoMCwgMCwgMCwgLjE1KScsXG4gIHRyYW5zaXRpb246ICdib3gtc2hhZG93IDE1MG1zIGxpbmVhcicsXG4gIGN1cnNvcjogJ3BvaW50ZXInLFxuICBvdXRsaW5lOiAnbm9uZScsXG4gIHVzZXJTZWxlY3Q6ICdub25lJ1xufVxuXG5pbnRlcmZhY2UgUHJvcHMge1xuICBwcm92aWRlcktleTogUHJvdmlkZXIgfCB1bmRlZmluZWRcbiAgdGhlbWVDb2xvcj86IHN0cmluZ1xuICBsb2dnZWRJbkdyZWV0aW5nPzogc3RyaW5nXG4gIGxvZ2dlZE91dEdyZWV0aW5nPzogc3RyaW5nXG4gIHNob3c/OiBzdHJpbmdcbiAgaGlkZT86IHN0cmluZ1xuICBmYWRlPzogc3RyaW5nXG4gIGdyZWV0aW5nRGlhbG9nRGVsYXk/OiBzdHJpbmdcbiAgZ3JlZXRpbmdEaWFsb2dEaXNwbGF5Pzogc3RyaW5nXG4gIGNvbG9yPzogc3RyaW5nXG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSByZWFjdC9kaXNwbGF5LW5hbWVcbmNvbnN0IEN1c3RvbWVyQ2hhdCA9IG1lbW8oXG4gICh7XG4gICAgcHJvdmlkZXJLZXksXG4gICAgY29sb3IsXG4gICAgbG9nZ2VkSW5HcmVldGluZyxcbiAgICBsb2dnZWRPdXRHcmVldGluZyxcbiAgICBncmVldGluZ0RpYWxvZ0Rpc3BsYXksXG4gICAgZ3JlZXRpbmdEaWFsb2dEZWxheVxuICB9OiBQcm9wcykgPT4ge1xuICAgIGNvbnN0IGZpZWxkcyA9IHtcbiAgICAgIHBhZ2VfaWQ6IHByb3ZpZGVyS2V5LFxuICAgICAgdGhlbWVfY29sb3I6IGNvbG9yLFxuICAgICAgbG9nZ2VkX2luX2dyZWV0aW5nOiBsb2dnZWRJbkdyZWV0aW5nLFxuICAgICAgbG9nZ2VkX291dF9ncmVldGluZzogbG9nZ2VkT3V0R3JlZXRpbmcsXG4gICAgICBncmVldGluZ19kaWFsb2dfZGlzcGxheTogZ3JlZXRpbmdEaWFsb2dEaXNwbGF5LFxuICAgICAgZ3JlZXRpbmdfZGlhbG9nX2RlbGF5OiBncmVldGluZ0RpYWxvZ0RlbGF5XG4gICAgfVxuXG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmItY3VzdG9tZXJjaGF0XCIgey4uLmZpZWxkc30gLz5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxuKVxuXG5jb25zdCBXaWRnZXQgPSAoeyBjb2xvciB9OiB7IGNvbG9yOiBzdHJpbmcgfSk6IEpTWC5FbGVtZW50IHwgbnVsbCA9PiB7XG4gIGNvbnN0IFtzdGF0ZSwgbG9hZENoYXRdID0gdXNlQ2hhdCh7IGxvYWRXaGVuSWRsZTogdHJ1ZSB9KVxuXG4gIGlmIChzdGF0ZSA9PT0gJ2NvbXBsZXRlJykge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIHN0eWxlPXtzdHlsZXN9XG4gICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgIGFyaWEtbGFiZWw9XCJMb2FkIENoYXRcIlxuICAgICAgYXJpYS1idXN5PVwidHJ1ZVwiXG4gICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgb25DbGljaz17KCkgPT4gbG9hZENoYXQoeyBvcGVuOiB0cnVlIH0pfVxuICAgICAgb25Nb3VzZUVudGVyPXsoKSA9PiBsb2FkQ2hhdCh7IG9wZW46IGZhbHNlIH0pfVxuICAgID5cbiAgICAgIDxzdmcgd2lkdGg9XCI2MHB4XCIgaGVpZ2h0PVwiNjBweFwiIHZpZXdCb3g9XCIwIDAgNjAgNjBcIj5cbiAgICAgICAgPHN2ZyB4PVwiMFwiIHk9XCIwXCIgd2lkdGg9XCI2MHB4XCIgaGVpZ2h0PVwiNjBweFwiPlxuICAgICAgICAgIDxnIHN0cm9rZT1cIm5vbmVcIiBzdHJva2VXaWR0aD1cIjFcIiBmaWxsPVwibm9uZVwiIGZpbGxSdWxlPVwiZXZlbm9kZFwiPlxuICAgICAgICAgICAgPGc+XG4gICAgICAgICAgICAgIDxjaXJjbGUgZmlsbD17Y29sb3IgPyBjb2xvciA6ICcjMDA4NEZGJ30gY3g9XCIzMFwiIGN5PVwiMzBcIiByPVwiMzBcIiAvPlxuICAgICAgICAgICAgICA8c3ZnIHg9XCIxMFwiIHk9XCIxMFwiPlxuICAgICAgICAgICAgICAgIDxnIHRyYW5zZm9ybT1cInRyYW5zbGF0ZSgwLjAwMDAwMCwgLTEwLjAwMDAwMClcIiBmaWxsPVwiI0ZGRkZGRlwiPlxuICAgICAgICAgICAgICAgICAgPGcgaWQ9XCJsb2dvXCIgdHJhbnNmb3JtPVwidHJhbnNsYXRlKDAuMDAwMDAwLCAxMC4wMDAwMDApXCI+XG4gICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMjAsMCBDMzEuMjY2NiwwIDQwLDguMjUyOCA0MCwxOS40IEM0MCwzMC41NDcyIDMxLjI2NjYsMzguOCAyMCwzOC44IEMxNy45NzYzLDM4LjggMTYuMDM0OCwzOC41MzI3IDE0LjIxMDYsMzguMDMxMSBDMTMuODU2LDM3LjkzMzUgMTMuNDc4OSwzNy45NjEyIDEzLjE0MjQsMzguMTA5OCBMOS4xNzI3LDM5Ljg2MjEgQzguMTM0Myw0MC4zMjA1IDYuOTYyMSwzOS41ODE5IDYuOTI3MywzOC40NDc0IEw2LjgxODQsMzQuODg5NCBDNi44MDUsMzQuNDUxMyA2LjYwNzgsMzQuMDQxNCA2LjI4MTEsMzMuNzQ5MiBDMi4zODk2LDMwLjI2OTEgMCwyNS4yMzA3IDAsMTkuNCBDMCw4LjI1MjggOC43MzM0LDAgMjAsMCBaIE03Ljk5MDA5LDI1LjA3MzQ0IEM3LjQyNjI5LDI1Ljk2Nzk0IDguNTI1NzksMjYuOTc1OTQgOS4zNjgwOSwyNi4zMzY3NCBMMTUuNjc4NzksMjEuNTQ3MzQgQzE2LjEwNTY5LDIxLjIyMzM0IDE2LjY5NTU5LDIxLjIyMTY0IDE3LjEyNDI5LDIxLjU0MzE0IEwyMS43OTcwOSwyNS4wNDc3NCBDMjMuMTk5MTksMjYuMDk5NDQgMjUuMjAwMzksMjUuNzMwMTQgMjYuMTM0OTksMjQuMjQ3NDQgTDMyLjAwOTk5LDE0LjkyNjU0IEMzMi41NzM2OSwxNC4wMzIwNCAzMS40NzQxOSwxMy4wMjQwNCAzMC42MzE4OSwxMy42NjMyNCBMMjQuMzIxMTksMTguNDUyNjQgQzIzLjg5NDI5LDE4Ljc3NjY0IDIzLjMwNDM5LDE4Ljc3ODM0IDIyLjg3NTY5LDE4LjQ1Njc0IEwxOC4yMDI5OSwxNC45NTIyNCBDMTYuODAwNzksMTMuOTAwNjQgMTQuNzk5NTksMTQuMjY5ODQgMTMuODY1MDksMTUuNzUyNjQgTDcuOTkwMDksMjUuMDczNDQgWlwiIC8+XG4gICAgICAgICAgICAgICAgICA8L2c+XG4gICAgICAgICAgICAgICAgPC9nPlxuICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDwvZz5cbiAgICAgICAgICA8L2c+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9zdmc+XG4gICAgPC9kaXY+XG4gIClcbn1cblxuY29uc3QgTWVzc2VuZ2VyID0gKHsgY29sb3IgPSAnJywgLi4ucHJvcHMgfTogUHJvcHMpOiBKU1guRWxlbWVudCA9PiB7XG4gIGNvbnN0IHsgcHJvdmlkZXJLZXk6IHByb3ZLZXkgfSA9IHVzZVByb3ZpZGVyKClcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8Q3VzdG9tZXJDaGF0IGNvbG9yPXtjb2xvcn0gcHJvdmlkZXJLZXk9e3Byb3ZLZXl9IHsuLi5wcm9wc30gLz5cbiAgICAgIDxXaWRnZXQgY29sb3I9e2NvbG9yfSAvPlxuICAgIDwvPlxuICApXG59XG5cbmV4cG9ydCBkZWZhdWx0IE1lc3NlbmdlclxuIl19