botframework-webchat-component
Version:
React component of botframework-webchat
82 lines (81 loc) • 20 kB
JavaScript
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _botframeworkWebchatApi = require("botframework-webchat-api");
var _classnames = _interopRequireDefault(require("classnames"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _react = _interopRequireWildcard(require("react"));
var _ScreenReaderText = _interopRequireDefault(require("../ScreenReaderText"));
var _SpinnerAnimation = _interopRequireDefault(require("./Assets/SpinnerAnimation"));
var _useForceRender = _interopRequireDefault(require("../hooks/internal/useForceRender"));
var _useStyleSet3 = _interopRequireDefault(require("../hooks/useStyleSet"));
var _useTimer = _interopRequireDefault(require("../hooks/internal/useTimer"));
var _WarningNotificationIcon = _interopRequireDefault(require("./Assets/WarningNotificationIcon"));
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(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 = {}; 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; }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
var useDirection = _botframeworkWebchatApi.hooks.useDirection,
useLocalizer = _botframeworkWebchatApi.hooks.useLocalizer,
usePonyfill = _botframeworkWebchatApi.hooks.usePonyfill,
useStyleOptions = _botframeworkWebchatApi.hooks.useStyleOptions;
var ConnectivityStatusConnecting = function ConnectivityStatusConnecting(_ref) {
var reconnect = _ref.reconnect;
var _usePonyfill = usePonyfill(),
_usePonyfill2 = _slicedToArray(_usePonyfill, 1),
Date = _usePonyfill2[0].Date;
var _useStyleOptions = useStyleOptions(),
_useStyleOptions2 = _slicedToArray(_useStyleOptions, 1),
slowConnectionAfter = _useStyleOptions2[0].slowConnectionAfter;
var _useStyleSet = (0, _useStyleSet3.default)(),
_useStyleSet2 = _slicedToArray(_useStyleSet, 1),
_useStyleSet2$ = _useStyleSet2[0],
connectivityNotificationStyleSet = _useStyleSet2$.connectivityNotification,
warningNotificationStyleSet = _useStyleSet2$.warningNotification;
var _useDirection = useDirection(),
_useDirection2 = _slicedToArray(_useDirection, 1),
direction = _useDirection2[0];
var _useState = (0, _react.useState)(function () {
return Date.now();
}),
_useState2 = _slicedToArray(_useState, 1),
initialRenderAt = _useState2[0];
var forceRender = (0, _useForceRender.default)();
var localize = useLocalizer();
var initialConnectionText = localize('CONNECTIVITY_STATUS_ALT_CONNECTING');
var interruptedConnectionText = localize('CONNECTIVITY_STATUS_ALT_RECONNECTING');
var slowConnectionText = localize('CONNECTIVITY_STATUS_ALT_SLOW_CONNECTION');
(0, _useTimer.default)(initialRenderAt + slowConnectionAfter, forceRender);
var now = Date.now();
var slow = now >= initialRenderAt + slowConnectionAfter;
return slow ? /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ScreenReaderText.default, {
text: localize('CONNECTIVITY_STATUS_ALT', slowConnectionText)
}), /*#__PURE__*/_react.default.createElement("div", {
"aria-hidden": true,
className: (0, _classnames.default)('webchat__connectivityStatus', warningNotificationStyleSet + ''),
dir: direction
}, /*#__PURE__*/_react.default.createElement(_WarningNotificationIcon.default, null), slowConnectionText)) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_ScreenReaderText.default, {
text: localize('CONNECTIVITY_STATUS_ALT', reconnect ? interruptedConnectionText : initialConnectionText)
}), /*#__PURE__*/_react.default.createElement("div", {
"aria-hidden": true,
className: (0, _classnames.default)('webchat__connectivityStatus', connectivityNotificationStyleSet + ''),
dir: direction
}, /*#__PURE__*/_react.default.createElement(_SpinnerAnimation.default, null), reconnect ? interruptedConnectionText : initialConnectionText));
};
ConnectivityStatusConnecting.defaultProps = {
reconnect: false
};
ConnectivityStatusConnecting.propTypes = {
reconnect: _propTypes.default.bool
};
var _default = ConnectivityStatusConnecting;
exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYm90ZnJhbWV3b3JrV2ViY2hhdEFwaSIsInJlcXVpcmUiLCJfY2xhc3NuYW1lcyIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfcHJvcFR5cGVzIiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfU2NyZWVuUmVhZGVyVGV4dCIsIl9TcGlubmVyQW5pbWF0aW9uIiwiX3VzZUZvcmNlUmVuZGVyIiwiX3VzZVN0eWxlU2V0MyIsIl91c2VUaW1lciIsIl9XYXJuaW5nTm90aWZpY2F0aW9uSWNvbiIsIl9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSIsIm5vZGVJbnRlcm9wIiwiV2Vha01hcCIsImNhY2hlQmFiZWxJbnRlcm9wIiwiY2FjaGVOb2RlSW50ZXJvcCIsIm9iaiIsIl9fZXNNb2R1bGUiLCJfdHlwZW9mIiwiZGVmYXVsdCIsImNhY2hlIiwiaGFzIiwiZ2V0IiwibmV3T2JqIiwiaGFzUHJvcGVydHlEZXNjcmlwdG9yIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJrZXkiLCJwcm90b3R5cGUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJkZXNjIiwic2V0IiwiX3NsaWNlZFRvQXJyYXkiLCJhcnIiLCJpIiwiX2FycmF5V2l0aEhvbGVzIiwiX2l0ZXJhYmxlVG9BcnJheUxpbWl0IiwiX3Vuc3VwcG9ydGVkSXRlcmFibGVUb0FycmF5IiwiX25vbkl0ZXJhYmxlUmVzdCIsIlR5cGVFcnJvciIsIm8iLCJtaW5MZW4iLCJfYXJyYXlMaWtlVG9BcnJheSIsIm4iLCJ0b1N0cmluZyIsInNsaWNlIiwiY29uc3RydWN0b3IiLCJuYW1lIiwiQXJyYXkiLCJmcm9tIiwidGVzdCIsImxlbiIsImxlbmd0aCIsImFycjIiLCJfaSIsIlN5bWJvbCIsIml0ZXJhdG9yIiwiX2FyciIsIl9uIiwiX2QiLCJfcyIsIl9lIiwibmV4dCIsImRvbmUiLCJwdXNoIiwidmFsdWUiLCJlcnIiLCJpc0FycmF5IiwidXNlRGlyZWN0aW9uIiwiaG9va3MiLCJ1c2VMb2NhbGl6ZXIiLCJ1c2VQb255ZmlsbCIsInVzZVN0eWxlT3B0aW9ucyIsIkNvbm5lY3Rpdml0eVN0YXR1c0Nvbm5lY3RpbmciLCJfcmVmIiwicmVjb25uZWN0IiwiX3VzZVBvbnlmaWxsIiwiX3VzZVBvbnlmaWxsMiIsIkRhdGUiLCJfdXNlU3R5bGVPcHRpb25zIiwiX3VzZVN0eWxlT3B0aW9uczIiLCJzbG93Q29ubmVjdGlvbkFmdGVyIiwiX3VzZVN0eWxlU2V0IiwidXNlU3R5bGVTZXQiLCJfdXNlU3R5bGVTZXQyIiwiX3VzZVN0eWxlU2V0MiQiLCJjb25uZWN0aXZpdHlOb3RpZmljYXRpb25TdHlsZVNldCIsImNvbm5lY3Rpdml0eU5vdGlmaWNhdGlvbiIsIndhcm5pbmdOb3RpZmljYXRpb25TdHlsZVNldCIsIndhcm5pbmdOb3RpZmljYXRpb24iLCJfdXNlRGlyZWN0aW9uIiwiX3VzZURpcmVjdGlvbjIiLCJkaXJlY3Rpb24iLCJfdXNlU3RhdGUiLCJ1c2VTdGF0ZSIsIm5vdyIsIl91c2VTdGF0ZTIiLCJpbml0aWFsUmVuZGVyQXQiLCJmb3JjZVJlbmRlciIsInVzZUZvcmNlUmVuZGVyIiwibG9jYWxpemUiLCJpbml0aWFsQ29ubmVjdGlvblRleHQiLCJpbnRlcnJ1cHRlZENvbm5lY3Rpb25UZXh0Iiwic2xvd0Nvbm5lY3Rpb25UZXh0IiwidXNlVGltZXIiLCJzbG93IiwiY3JlYXRlRWxlbWVudCIsIkZyYWdtZW50IiwidGV4dCIsImNsYXNzTmFtZSIsImNsYXNzTmFtZXMiLCJkaXIiLCJkZWZhdWx0UHJvcHMiLCJwcm9wVHlwZXMiLCJQcm9wVHlwZXMiLCJib29sIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZVJvb3QiOiJjb21wb25lbnQ6Ly8vIiwic291cmNlcyI6WyIuLi8uLi9zcmMvQ29ubmVjdGl2aXR5U3RhdHVzL0Nvbm5lY3RpbmcuanMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaG9va3MgfSBmcm9tICdib3RmcmFtZXdvcmstd2ViY2hhdC1hcGknO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgUHJvcFR5cGVzIGZyb20gJ3Byb3AtdHlwZXMnO1xuaW1wb3J0IFJlYWN0LCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgU2NyZWVuUmVhZGVyVGV4dCBmcm9tICcuLi9TY3JlZW5SZWFkZXJUZXh0JztcbmltcG9ydCBTcGlubmVyQW5pbWF0aW9uIGZyb20gJy4vQXNzZXRzL1NwaW5uZXJBbmltYXRpb24nO1xuaW1wb3J0IHVzZUZvcmNlUmVuZGVyIGZyb20gJy4uL2hvb2tzL2ludGVybmFsL3VzZUZvcmNlUmVuZGVyJztcbmltcG9ydCB1c2VTdHlsZVNldCBmcm9tICcuLi9ob29rcy91c2VTdHlsZVNldCc7XG5pbXBvcnQgdXNlVGltZXIgZnJvbSAnLi4vaG9va3MvaW50ZXJuYWwvdXNlVGltZXInO1xuaW1wb3J0IFdhcm5pbmdOb3RpZmljYXRpb25JY29uIGZyb20gJy4vQXNzZXRzL1dhcm5pbmdOb3RpZmljYXRpb25JY29uJztcblxuY29uc3QgeyB1c2VEaXJlY3Rpb24sIHVzZUxvY2FsaXplciwgdXNlUG9ueWZpbGwsIHVzZVN0eWxlT3B0aW9ucyB9ID0gaG9va3M7XG5cbmNvbnN0IENvbm5lY3Rpdml0eVN0YXR1c0Nvbm5lY3RpbmcgPSAoeyByZWNvbm5lY3QgfSkgPT4ge1xuICBjb25zdCBbeyBEYXRlIH1dID0gdXNlUG9ueWZpbGwoKTtcbiAgY29uc3QgW3sgc2xvd0Nvbm5lY3Rpb25BZnRlciB9XSA9IHVzZVN0eWxlT3B0aW9ucygpO1xuICBjb25zdCBbXG4gICAgeyBjb25uZWN0aXZpdHlOb3RpZmljYXRpb246IGNvbm5lY3Rpdml0eU5vdGlmaWNhdGlvblN0eWxlU2V0LCB3YXJuaW5nTm90aWZpY2F0aW9uOiB3YXJuaW5nTm90aWZpY2F0aW9uU3R5bGVTZXQgfVxuICBdID0gdXNlU3R5bGVTZXQoKTtcbiAgY29uc3QgW2RpcmVjdGlvbl0gPSB1c2VEaXJlY3Rpb24oKTtcbiAgY29uc3QgW2luaXRpYWxSZW5kZXJBdF0gPSB1c2VTdGF0ZSgoKSA9PiBEYXRlLm5vdygpKTtcbiAgY29uc3QgZm9yY2VSZW5kZXIgPSB1c2VGb3JjZVJlbmRlcigpO1xuICBjb25zdCBsb2NhbGl6ZSA9IHVzZUxvY2FsaXplcigpO1xuXG4gIGNvbnN0IGluaXRpYWxDb25uZWN0aW9uVGV4dCA9IGxvY2FsaXplKCdDT05ORUNUSVZJVFlfU1RBVFVTX0FMVF9DT05ORUNUSU5HJyk7XG4gIGNvbnN0IGludGVycnVwdGVkQ29ubmVjdGlvblRleHQgPSBsb2NhbGl6ZSgnQ09OTkVDVElWSVRZX1NUQVRVU19BTFRfUkVDT05ORUNUSU5HJyk7XG4gIGNvbnN0IHNsb3dDb25uZWN0aW9uVGV4dCA9IGxvY2FsaXplKCdDT05ORUNUSVZJVFlfU1RBVFVTX0FMVF9TTE9XX0NPTk5FQ1RJT04nKTtcblxuICB1c2VUaW1lcihpbml0aWFsUmVuZGVyQXQgKyBzbG93Q29ubmVjdGlvbkFmdGVyLCBmb3JjZVJlbmRlcik7XG5cbiAgY29uc3Qgbm93ID0gRGF0ZS5ub3coKTtcbiAgY29uc3Qgc2xvdyA9IG5vdyA+PSBpbml0aWFsUmVuZGVyQXQgKyBzbG93Q29ubmVjdGlvbkFmdGVyO1xuXG4gIHJldHVybiBzbG93ID8gKFxuICAgIDxSZWFjdC5GcmFnbWVudD5cbiAgICAgIDxTY3JlZW5SZWFkZXJUZXh0IHRleHQ9e2xvY2FsaXplKCdDT05ORUNUSVZJVFlfU1RBVFVTX0FMVCcsIHNsb3dDb25uZWN0aW9uVGV4dCl9IC8+XG4gICAgICA8ZGl2XG4gICAgICAgIGFyaWEtaGlkZGVuPXt0cnVlfVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoJ3dlYmNoYXRfX2Nvbm5lY3Rpdml0eVN0YXR1cycsIHdhcm5pbmdOb3RpZmljYXRpb25TdHlsZVNldCArICcnKX1cbiAgICAgICAgZGlyPXtkaXJlY3Rpb259XG4gICAgICA+XG4gICAgICAgIDxXYXJuaW5nTm90aWZpY2F0aW9uSWNvbiAvPlxuICAgICAgICB7c2xvd0Nvbm5lY3Rpb25UZXh0fVxuICAgICAgPC9kaXY+XG4gICAgPC9SZWFjdC5GcmFnbWVudD5cbiAgKSA6IChcbiAgICA8UmVhY3QuRnJhZ21lbnQ+XG4gICAgICA8U2NyZWVuUmVhZGVyVGV4dFxuICAgICAgICB0ZXh0PXtsb2NhbGl6ZSgnQ09OTkVDVElWSVRZX1NUQVRVU19BTFQnLCByZWNvbm5lY3QgPyBpbnRlcnJ1cHRlZENvbm5lY3Rpb25UZXh0IDogaW5pdGlhbENvbm5lY3Rpb25UZXh0KX1cbiAgICAgIC8+XG4gICAgICA8ZGl2XG4gICAgICAgIGFyaWEtaGlkZGVuPXt0cnVlfVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZXMoJ3dlYmNoYXRfX2Nvbm5lY3Rpdml0eVN0YXR1cycsIGNvbm5lY3Rpdml0eU5vdGlmaWNhdGlvblN0eWxlU2V0ICsgJycpfVxuICAgICAgICBkaXI9e2RpcmVjdGlvbn1cbiAgICAgID5cbiAgICAgICAgPFNwaW5uZXJBbmltYXRpb24gLz5cbiAgICAgICAge3JlY29ubmVjdCA/IGludGVycnVwdGVkQ29ubmVjdGlvblRleHQgOiBpbml0aWFsQ29ubmVjdGlvblRleHR9XG4gICAgICA8L2Rpdj5cbiAgICA8L1JlYWN0LkZyYWdtZW50PlxuICApO1xufTtcblxuQ29ubmVjdGl2aXR5U3RhdHVzQ29ubmVjdGluZy5kZWZhdWx0UHJvcHMgPSB7XG4gIHJlY29ubmVjdDogZmFsc2Vcbn07XG5cbkNvbm5lY3Rpdml0eVN0YXR1c0Nvbm5lY3RpbmcucHJvcFR5cGVzID0ge1xuICByZWNvbm5lY3Q6IFByb3BUeXBlcy5ib29sXG59O1xuXG5leHBvcnQgZGVmYXVsdCBDb25uZWN0aXZpdHlTdGF0dXNDb25uZWN0aW5nO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsdUJBQUEsR0FBQUMsT0FBQTtBQUNBLElBQUFDLFdBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLFVBQUEsR0FBQUQsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFJLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUwsT0FBQTtBQUVBLElBQUFNLGlCQUFBLEdBQUFKLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTyxpQkFBQSxHQUFBTCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVEsZUFBQSxHQUFBTixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVMsYUFBQSxHQUFBUCxzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVUsU0FBQSxHQUFBUixzQkFBQSxDQUFBRixPQUFBO0FBQ0EsSUFBQVcsd0JBQUEsR0FBQVQsc0JBQUEsQ0FBQUYsT0FBQTtBQUF1RSxTQUFBWSx5QkFBQUMsV0FBQSxlQUFBQyxPQUFBLGtDQUFBQyxpQkFBQSxPQUFBRCxPQUFBLFFBQUFFLGdCQUFBLE9BQUFGLE9BQUEsWUFBQUYsd0JBQUEsWUFBQUEseUJBQUFDLFdBQUEsV0FBQUEsV0FBQSxHQUFBRyxnQkFBQSxHQUFBRCxpQkFBQSxLQUFBRixXQUFBO0FBQUEsU0FBQVIsd0JBQUFZLEdBQUEsRUFBQUosV0FBQSxTQUFBQSxXQUFBLElBQUFJLEdBQUEsSUFBQUEsR0FBQSxDQUFBQyxVQUFBLFdBQUFELEdBQUEsUUFBQUEsR0FBQSxhQUFBRSxPQUFBLENBQUFGLEdBQUEseUJBQUFBLEdBQUEsNEJBQUFHLE9BQUEsRUFBQUgsR0FBQSxVQUFBSSxLQUFBLEdBQUFULHdCQUFBLENBQUFDLFdBQUEsT0FBQVEsS0FBQSxJQUFBQSxLQUFBLENBQUFDLEdBQUEsQ0FBQUwsR0FBQSxZQUFBSSxLQUFBLENBQUFFLEdBQUEsQ0FBQU4sR0FBQSxTQUFBTyxNQUFBLFdBQUFDLHFCQUFBLEdBQUFDLE1BQUEsQ0FBQUMsY0FBQSxJQUFBRCxNQUFBLENBQUFFLHdCQUFBLFdBQUFDLEdBQUEsSUFBQVosR0FBQSxRQUFBWSxHQUFBLGtCQUFBSCxNQUFBLENBQUFJLFNBQUEsQ0FBQUMsY0FBQSxDQUFBQyxJQUFBLENBQUFmLEdBQUEsRUFBQVksR0FBQSxTQUFBSSxJQUFBLEdBQUFSLHFCQUFBLEdBQUFDLE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQVgsR0FBQSxFQUFBWSxHQUFBLGNBQUFJLElBQUEsS0FBQUEsSUFBQSxDQUFBVixHQUFBLElBQUFVLElBQUEsQ0FBQUMsR0FBQSxLQUFBUixNQUFBLENBQUFDLGNBQUEsQ0FBQUgsTUFBQSxFQUFBSyxHQUFBLEVBQUFJLElBQUEsWUFBQVQsTUFBQSxDQUFBSyxHQUFBLElBQUFaLEdBQUEsQ0FBQVksR0FBQSxTQUFBTCxNQUFBLENBQUFKLE9BQUEsR0FBQUgsR0FBQSxNQUFBSSxLQUFBLElBQUFBLEtBQUEsQ0FBQWEsR0FBQSxDQUFBakIsR0FBQSxFQUFBTyxNQUFBLFlBQUFBLE1BQUE7QUFBQSxTQUFBdEIsdUJBQUFlLEdBQUEsV0FBQUEsR0FBQSxJQUFBQSxHQUFBLENBQUFDLFVBQUEsR0FBQUQsR0FBQSxLQUFBRyxPQUFBLEVBQUFILEdBQUE7QUFBQSxTQUFBa0IsZUFBQUMsR0FBQSxFQUFBQyxDQUFBLFdBQUFDLGVBQUEsQ0FBQUYsR0FBQSxLQUFBRyxxQkFBQSxDQUFBSCxHQUFBLEVBQUFDLENBQUEsS0FBQUcsMkJBQUEsQ0FBQUosR0FBQSxFQUFBQyxDQUFBLEtBQUFJLGdCQUFBO0FBQUEsU0FBQUEsaUJBQUEsY0FBQUMsU0FBQTtBQUFBLFNBQUFGLDRCQUFBRyxDQUFBLEVBQUFDLE1BQUEsU0FBQUQsQ0FBQSxxQkFBQUEsQ0FBQSxzQkFBQUUsaUJBQUEsQ0FBQUYsQ0FBQSxFQUFBQyxNQUFBLE9BQUFFLENBQUEsR0FBQXBCLE1BQUEsQ0FBQUksU0FBQSxDQUFBaUIsUUFBQSxDQUFBZixJQUFBLENBQUFXLENBQUEsRUFBQUssS0FBQSxhQUFBRixDQUFBLGlCQUFBSCxDQUFBLENBQUFNLFdBQUEsRUFBQUgsQ0FBQSxHQUFBSCxDQUFBLENBQUFNLFdBQUEsQ0FBQUMsSUFBQSxNQUFBSixDQUFBLGNBQUFBLENBQUEsbUJBQUFLLEtBQUEsQ0FBQUMsSUFBQSxDQUFBVCxDQUFBLE9BQUFHLENBQUEsK0RBQUFPLElBQUEsQ0FBQVAsQ0FBQSxVQUFBRCxpQkFBQSxDQUFBRixDQUFBLEVBQUFDLE1BQUE7QUFBQSxTQUFBQyxrQkFBQVQsR0FBQSxFQUFBa0IsR0FBQSxRQUFBQSxHQUFBLFlBQUFBLEdBQUEsR0FBQWxCLEdBQUEsQ0FBQW1CLE1BQUEsRUFBQUQsR0FBQSxHQUFBbEIsR0FBQSxDQUFBbUIsTUFBQSxXQUFBbEIsQ0FBQSxNQUFBbUIsSUFBQSxPQUFBTCxLQUFBLENBQUFHLEdBQUEsR0FBQWpCLENBQUEsR0FBQWlCLEdBQUEsRUFBQWpCLENBQUEsTUFBQW1CLElBQUEsQ0FBQW5CLENBQUEsSUFBQUQsR0FBQSxDQUFBQyxDQUFBLFlBQUFtQixJQUFBO0FBQUEsU0FBQWpCLHNCQUFBSCxHQUFBLEVBQUFDLENBQUEsUUFBQW9CLEVBQUEsR0FBQXJCLEdBQUEseUJBQUFzQixNQUFBLG9CQUFBdEIsR0FBQSxDQUFBc0IsTUFBQSxDQUFBQyxRQUFBLEtBQUF2QixHQUFBLG9CQUFBcUIsRUFBQSxzQkFBQUcsSUFBQSxXQUFBQyxFQUFBLGFBQUFDLEVBQUEsY0FBQUMsRUFBQSxFQUFBQyxFQUFBLGFBQUFQLEVBQUEsR0FBQUEsRUFBQSxDQUFBekIsSUFBQSxDQUFBSSxHQUFBLEtBQUF5QixFQUFBLElBQUFFLEVBQUEsR0FBQU4sRUFBQSxDQUFBUSxJQUFBLElBQUFDLElBQUEsR0FBQUwsRUFBQSxXQUFBRCxJQUFBLENBQUFPLElBQUEsQ0FBQUosRUFBQSxDQUFBSyxLQUFBLE9BQUEvQixDQUFBLElBQUF1QixJQUFBLENBQUFMLE1BQUEsS0FBQWxCLENBQUEsb0JBQUFnQyxHQUFBLElBQUFQLEVBQUEsU0FBQUUsRUFBQSxHQUFBSyxHQUFBLHlCQUFBUixFQUFBLElBQUFKLEVBQUEsb0JBQUFBLEVBQUEsOEJBQUFLLEVBQUEsUUFBQUUsRUFBQSxhQUFBSixJQUFBO0FBQUEsU0FBQXRCLGdCQUFBRixHQUFBLFFBQUFlLEtBQUEsQ0FBQW1CLE9BQUEsQ0FBQWxDLEdBQUEsVUFBQUEsR0FBQTtBQUV2RSxJQUFRbUMsWUFBWSxHQUFpREMsNkJBQUssQ0FBbEVELFlBQVk7RUFBRUUsWUFBWSxHQUFtQ0QsNkJBQUssQ0FBcERDLFlBQVk7RUFBRUMsV0FBVyxHQUFzQkYsNkJBQUssQ0FBdENFLFdBQVc7RUFBRUMsZUFBZSxHQUFLSCw2QkFBSyxDQUF6QkcsZUFBZTtBQUVoRSxJQUFNQyw0QkFBNEIsR0FBRyxTQUEvQkEsNEJBQTRCQSxDQUFBQyxJQUFBLEVBQXNCO0VBQUEsSUFBaEJDLFNBQVMsR0FBQUQsSUFBQSxDQUFUQyxTQUFTO0VBQy9DLElBQUFDLFlBQUEsR0FBbUJMLFdBQVcsQ0FBQyxDQUFDO0lBQUFNLGFBQUEsR0FBQTdDLGNBQUEsQ0FBQTRDLFlBQUE7SUFBdkJFLElBQUksR0FBQUQsYUFBQSxJQUFKQyxJQUFJO0VBQ2IsSUFBQUMsZ0JBQUEsR0FBa0NQLGVBQWUsQ0FBQyxDQUFDO0lBQUFRLGlCQUFBLEdBQUFoRCxjQUFBLENBQUErQyxnQkFBQTtJQUExQ0UsbUJBQW1CLEdBQUFELGlCQUFBLElBQW5CQyxtQkFBbUI7RUFDNUIsSUFBQUMsWUFBQSxHQUVJLElBQUFDLHFCQUFXLEVBQUMsQ0FBQztJQUFBQyxhQUFBLEdBQUFwRCxjQUFBLENBQUFrRCxZQUFBO0lBQUFHLGNBQUEsR0FBQUQsYUFBQTtJQURhRSxnQ0FBZ0MsR0FBQUQsY0FBQSxDQUExREUsd0JBQXdCO0lBQXlEQywyQkFBMkIsR0FBQUgsY0FBQSxDQUFoREksbUJBQW1CO0VBRW5GLElBQUFDLGFBQUEsR0FBb0J0QixZQUFZLENBQUMsQ0FBQztJQUFBdUIsY0FBQSxHQUFBM0QsY0FBQSxDQUFBMEQsYUFBQTtJQUEzQkUsU0FBUyxHQUFBRCxjQUFBO0VBQ2hCLElBQUFFLFNBQUEsR0FBMEIsSUFBQUMsZUFBUSxFQUFDO01BQUEsT0FBTWhCLElBQUksQ0FBQ2lCLEdBQUcsQ0FBQyxDQUFDO0lBQUEsRUFBQztJQUFBQyxVQUFBLEdBQUFoRSxjQUFBLENBQUE2RCxTQUFBO0lBQTdDSSxlQUFlLEdBQUFELFVBQUE7RUFDdEIsSUFBTUUsV0FBVyxHQUFHLElBQUFDLHVCQUFjLEVBQUMsQ0FBQztFQUNwQyxJQUFNQyxRQUFRLEdBQUc5QixZQUFZLENBQUMsQ0FBQztFQUUvQixJQUFNK0IscUJBQXFCLEdBQUdELFFBQVEsQ0FBQyxvQ0FBb0MsQ0FBQztFQUM1RSxJQUFNRSx5QkFBeUIsR0FBR0YsUUFBUSxDQUFDLHNDQUFzQyxDQUFDO0VBQ2xGLElBQU1HLGtCQUFrQixHQUFHSCxRQUFRLENBQUMseUNBQXlDLENBQUM7RUFFOUUsSUFBQUksaUJBQVEsRUFBQ1AsZUFBZSxHQUFHaEIsbUJBQW1CLEVBQUVpQixXQUFXLENBQUM7RUFFNUQsSUFBTUgsR0FBRyxHQUFHakIsSUFBSSxDQUFDaUIsR0FBRyxDQUFDLENBQUM7RUFDdEIsSUFBTVUsSUFBSSxHQUFHVixHQUFHLElBQUlFLGVBQWUsR0FBR2hCLG1CQUFtQjtFQUV6RCxPQUFPd0IsSUFBSSxnQkFDVHhHLE1BQUEsQ0FBQWdCLE9BQUEsQ0FBQXlGLGFBQUEsQ0FBQ3pHLE1BQUEsQ0FBQWdCLE9BQUssQ0FBQzBGLFFBQVEscUJBQ2IxRyxNQUFBLENBQUFnQixPQUFBLENBQUF5RixhQUFBLENBQUN2RyxpQkFBQSxDQUFBYyxPQUFnQjtJQUFDMkYsSUFBSSxFQUFFUixRQUFRLENBQUMseUJBQXlCLEVBQUVHLGtCQUFrQjtFQUFFLENBQUUsQ0FBQyxlQUNuRnRHLE1BQUEsQ0FBQWdCLE9BQUEsQ0FBQXlGLGFBQUE7SUFDRSxlQUFhLElBQUs7SUFDbEJHLFNBQVMsRUFBRSxJQUFBQyxtQkFBVSxFQUFDLDZCQUE2QixFQUFFdEIsMkJBQTJCLEdBQUcsRUFBRSxDQUFFO0lBQ3ZGdUIsR0FBRyxFQUFFbkI7RUFBVSxnQkFFZjNGLE1BQUEsQ0FBQWdCLE9BQUEsQ0FBQXlGLGFBQUEsQ0FBQ2xHLHdCQUFBLENBQUFTLE9BQXVCLE1BQUUsQ0FBQyxFQUMxQnNGLGtCQUNFLENBQ1MsQ0FBQyxnQkFFakJ0RyxNQUFBLENBQUFnQixPQUFBLENBQUF5RixhQUFBLENBQUN6RyxNQUFBLENBQUFnQixPQUFLLENBQUMwRixRQUFRLHFCQUNiMUcsTUFBQSxDQUFBZ0IsT0FBQSxDQUFBeUYsYUFBQSxDQUFDdkcsaUJBQUEsQ0FBQWMsT0FBZ0I7SUFDZjJGLElBQUksRUFBRVIsUUFBUSxDQUFDLHlCQUF5QixFQUFFekIsU0FBUyxHQUFHMkIseUJBQXlCLEdBQUdELHFCQUFxQjtFQUFFLENBQzFHLENBQUMsZUFDRnBHLE1BQUEsQ0FBQWdCLE9BQUEsQ0FBQXlGLGFBQUE7SUFDRSxlQUFhLElBQUs7SUFDbEJHLFNBQVMsRUFBRSxJQUFBQyxtQkFBVSxFQUFDLDZCQUE2QixFQUFFeEIsZ0NBQWdDLEdBQUcsRUFBRSxDQUFFO0lBQzVGeUIsR0FBRyxFQUFFbkI7RUFBVSxnQkFFZjNGLE1BQUEsQ0FBQWdCLE9BQUEsQ0FBQXlGLGFBQUEsQ0FBQ3RHLGlCQUFBLENBQUFhLE9BQWdCLE1BQUUsQ0FBQyxFQUNuQjBELFNBQVMsR0FBRzJCLHlCQUF5QixHQUFHRCxxQkFDdEMsQ0FDUyxDQUNqQjtBQUNILENBQUM7QUFFRDVCLDRCQUE0QixDQUFDdUMsWUFBWSxHQUFHO0VBQzFDckMsU0FBUyxFQUFFO0FBQ2IsQ0FBQztBQUVERiw0QkFBNEIsQ0FBQ3dDLFNBQVMsR0FBRztFQUN2Q3RDLFNBQVMsRUFBRXVDLGtCQUFTLENBQUNDO0FBQ3ZCLENBQUM7QUFBQyxJQUFBQyxRQUFBLEdBRWEzQyw0QkFBNEI7QUFBQTRDLE9BQUEsQ0FBQXBHLE9BQUEsR0FBQW1HLFFBQUEifQ==
;