botframework-webchat-component
Version:
React component of botframework-webchat
105 lines (104 loc) • 21.9 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 _botframeworkWebchatCore = require("botframework-webchat-core");
var _classnames = _interopRequireDefault(require("classnames"));
var _react = _interopRequireWildcard(require("react"));
var _useStyleSet3 = _interopRequireDefault(require("../hooks/useStyleSet"));
var _dereferenceBlankNodes = _interopRequireDefault(require("../Utils/JSONLinkedData/dereferenceBlankNodes"));
var _Feedback = _interopRequireDefault(require("./private/Feedback/Feedback"));
var _Originator = _interopRequireDefault(require("./private/Originator"));
var _Slotted = _interopRequireDefault(require("./Slotted"));
var _Timestamp = _interopRequireDefault(require("./Timestamp"));
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 warnRootLevelThings = (0, _botframeworkWebchatCore.warnOnce)('Root-level things are being deprecated, please relate all things to `entities[@id=""]` instead. This feature will be removed in 2025-03-06.');
var OthersActivityStatus = /*#__PURE__*/(0, _react.memo)(function (_ref) {
var activity = _ref.activity;
var _useStyleSet = (0, _useStyleSet3.default)(),
_useStyleSet2 = _slicedToArray(_useStyleSet, 1),
sendStatus = _useStyleSet2[0].sendStatus;
var timestamp = activity.timestamp;
var graph = (0, _react.useMemo)(function () {
return (0, _dereferenceBlankNodes.default)(activity.entities || []);
}, [activity.entities]);
var messageThing = (0, _react.useMemo)(function () {
return (0, _botframeworkWebchatCore.getOrgSchemaMessage)(graph);
}, [graph]);
var claimInterpreter = (0, _react.useMemo)(function () {
try {
if (messageThing) {
var _parseClaim;
return (_parseClaim = (0, _botframeworkWebchatCore.parseClaim)(((messageThing === null || messageThing === void 0 ? void 0 : messageThing.citation) || [])[0])) === null || _parseClaim === void 0 ? void 0 : _parseClaim.claimInterpreter;
}
var _graph$filter$map = graph.filter(function (_ref2) {
var type = _ref2.type;
return type === 'https://schema.org/Claim';
}).map(_botframeworkWebchatCore.parseClaim),
_graph$filter$map2 = _slicedToArray(_graph$filter$map, 1),
firstClaim = _graph$filter$map2[0];
if (firstClaim) {
warnRootLevelThings();
return firstClaim === null || firstClaim === void 0 ? void 0 : firstClaim.claimInterpreter;
}
var replyAction = (0, _botframeworkWebchatCore.parseAction)(graph.find(function (_ref3) {
var type = _ref3.type;
return type === 'https://schema.org/ReplyAction';
}));
if (replyAction) {
warnRootLevelThings();
return replyAction === null || replyAction === void 0 ? void 0 : replyAction.provider;
}
} catch (_unused) {
// Intentionally left blank.
}
}, [graph, messageThing]);
var feedbackActions = (0, _react.useMemo)(function () {
try {
var reactActions = ((messageThing === null || messageThing === void 0 ? void 0 : messageThing.potentialAction) || []).filter(function (_ref4) {
var type = _ref4['@type'];
return type === 'LikeAction' || type === 'DislikeAction';
});
if (reactActions.length) {
return Object.freeze(new Set(reactActions));
}
var voteActions = graph.filter(function (_ref5) {
var type = _ref5.type;
return type === 'https://schema.org/VoteAction';
}).map(_botframeworkWebchatCore.parseAction);
if (voteActions.length) {
return Object.freeze(new Set(voteActions));
}
} catch (_unused2) {
// Intentionally left blank.
}
}, [graph, messageThing]);
return /*#__PURE__*/_react.default.createElement(_Slotted.default, {
className: (0, _classnames.default)('webchat__activity-status', sendStatus + '')
}, (0, _react.useMemo)(function () {
return [timestamp && /*#__PURE__*/_react.default.createElement(_Timestamp.default, {
key: "timestamp",
timestamp: timestamp
}), claimInterpreter && /*#__PURE__*/_react.default.createElement(_Originator.default, {
key: "originator",
project: claimInterpreter
}), (feedbackActions === null || feedbackActions === void 0 ? void 0 : feedbackActions.size) && /*#__PURE__*/_react.default.createElement(_Feedback.default, {
actions: feedbackActions,
key: "feedback"
})].filter(Boolean);
}, [claimInterpreter, timestamp, feedbackActions]));
});
OthersActivityStatus.displayName = 'OthersActivityStatus';
var _default = OthersActivityStatus;
exports.default = _default;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfYm90ZnJhbWV3b3JrV2ViY2hhdENvcmUiLCJyZXF1aXJlIiwiX2NsYXNzbmFtZXMiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX3JlYWN0IiwiX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQiLCJfdXNlU3R5bGVTZXQzIiwiX2RlcmVmZXJlbmNlQmxhbmtOb2RlcyIsIl9GZWVkYmFjayIsIl9PcmlnaW5hdG9yIiwiX1Nsb3R0ZWQiLCJfVGltZXN0YW1wIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwibm9kZUludGVyb3AiLCJXZWFrTWFwIiwiY2FjaGVCYWJlbEludGVyb3AiLCJjYWNoZU5vZGVJbnRlcm9wIiwib2JqIiwiX19lc01vZHVsZSIsIl90eXBlb2YiLCJkZWZhdWx0IiwiY2FjaGUiLCJoYXMiLCJnZXQiLCJuZXdPYmoiLCJoYXNQcm9wZXJ0eURlc2NyaXB0b3IiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImtleSIsInByb3RvdHlwZSIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImRlc2MiLCJzZXQiLCJfc2xpY2VkVG9BcnJheSIsImFyciIsImkiLCJfYXJyYXlXaXRoSG9sZXMiLCJfaXRlcmFibGVUb0FycmF5TGltaXQiLCJfdW5zdXBwb3J0ZWRJdGVyYWJsZVRvQXJyYXkiLCJfbm9uSXRlcmFibGVSZXN0IiwiVHlwZUVycm9yIiwibyIsIm1pbkxlbiIsIl9hcnJheUxpa2VUb0FycmF5IiwibiIsInRvU3RyaW5nIiwic2xpY2UiLCJjb25zdHJ1Y3RvciIsIm5hbWUiLCJBcnJheSIsImZyb20iLCJ0ZXN0IiwibGVuIiwibGVuZ3RoIiwiYXJyMiIsIl9pIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJfYXJyIiwiX24iLCJfZCIsIl9zIiwiX2UiLCJuZXh0IiwiZG9uZSIsInB1c2giLCJ2YWx1ZSIsImVyciIsImlzQXJyYXkiLCJ3YXJuUm9vdExldmVsVGhpbmdzIiwid2Fybk9uY2UiLCJPdGhlcnNBY3Rpdml0eVN0YXR1cyIsIm1lbW8iLCJfcmVmIiwiYWN0aXZpdHkiLCJfdXNlU3R5bGVTZXQiLCJ1c2VTdHlsZVNldCIsIl91c2VTdHlsZVNldDIiLCJzZW5kU3RhdHVzIiwidGltZXN0YW1wIiwiZ3JhcGgiLCJ1c2VNZW1vIiwiZGVyZWZlcmVuY2VCbGFua05vZGVzIiwiZW50aXRpZXMiLCJtZXNzYWdlVGhpbmciLCJnZXRPcmdTY2hlbWFNZXNzYWdlIiwiY2xhaW1JbnRlcnByZXRlciIsIl9wYXJzZUNsYWltIiwicGFyc2VDbGFpbSIsImNpdGF0aW9uIiwiX2dyYXBoJGZpbHRlciRtYXAiLCJmaWx0ZXIiLCJfcmVmMiIsInR5cGUiLCJtYXAiLCJfZ3JhcGgkZmlsdGVyJG1hcDIiLCJmaXJzdENsYWltIiwicmVwbHlBY3Rpb24iLCJwYXJzZUFjdGlvbiIsImZpbmQiLCJfcmVmMyIsInByb3ZpZGVyIiwiX3VudXNlZCIsImZlZWRiYWNrQWN0aW9ucyIsInJlYWN0QWN0aW9ucyIsInBvdGVudGlhbEFjdGlvbiIsIl9yZWY0IiwiZnJlZXplIiwiU2V0Iiwidm90ZUFjdGlvbnMiLCJfcmVmNSIsIl91bnVzZWQyIiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsImNsYXNzTmFtZXMiLCJwcm9qZWN0Iiwic2l6ZSIsImFjdGlvbnMiLCJCb29sZWFuIiwiZGlzcGxheU5hbWUiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlUm9vdCI6ImNvbXBvbmVudDovLy8iLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9BY3Rpdml0eVN0YXR1cy9PdGhlcnNBY3Rpdml0eVN0YXR1cy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgZ2V0T3JnU2NoZW1hTWVzc2FnZSxcbiAgT3JnU2NoZW1hQWN0aW9uLFxuICBPcmdTY2hlbWFQcm9qZWN0LFxuICBwYXJzZUFjdGlvbixcbiAgcGFyc2VDbGFpbSxcbiAgd2Fybk9uY2UsXG4gIHR5cGUgV2ViQ2hhdEFjdGl2aXR5XG59IGZyb20gJ2JvdGZyYW1ld29yay13ZWJjaGF0LWNvcmUnO1xuaW1wb3J0IGNsYXNzTmFtZXMgZnJvbSAnY2xhc3NuYW1lcyc7XG5pbXBvcnQgUmVhY3QsIHsgbWVtbywgdXNlTWVtbywgdHlwZSBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB1c2VTdHlsZVNldCBmcm9tICcuLi9ob29rcy91c2VTdHlsZVNldCc7XG5pbXBvcnQgZGVyZWZlcmVuY2VCbGFua05vZGVzIGZyb20gJy4uL1V0aWxzL0pTT05MaW5rZWREYXRhL2RlcmVmZXJlbmNlQmxhbmtOb2Rlcyc7XG5pbXBvcnQgRmVlZGJhY2sgZnJvbSAnLi9wcml2YXRlL0ZlZWRiYWNrL0ZlZWRiYWNrJztcbmltcG9ydCBPcmlnaW5hdG9yIGZyb20gJy4vcHJpdmF0ZS9PcmlnaW5hdG9yJztcbmltcG9ydCBTbG90dGVkIGZyb20gJy4vU2xvdHRlZCc7XG5pbXBvcnQgVGltZXN0YW1wIGZyb20gJy4vVGltZXN0YW1wJztcblxudHlwZSBQcm9wcyA9IFJlYWRvbmx5PHsgYWN0aXZpdHk6IFdlYkNoYXRBY3Rpdml0eSB9PjtcblxuY29uc3Qgd2FyblJvb3RMZXZlbFRoaW5ncyA9IHdhcm5PbmNlKFxuICAnUm9vdC1sZXZlbCB0aGluZ3MgYXJlIGJlaW5nIGRlcHJlY2F0ZWQsIHBsZWFzZSByZWxhdGUgYWxsIHRoaW5ncyB0byBgZW50aXRpZXNbQGlkPVwiXCJdYCBpbnN0ZWFkLiBUaGlzIGZlYXR1cmUgd2lsbCBiZSByZW1vdmVkIGluIDIwMjUtMDMtMDYuJ1xuKTtcblxuY29uc3QgT3RoZXJzQWN0aXZpdHlTdGF0dXMgPSBtZW1vKCh7IGFjdGl2aXR5IH06IFByb3BzKSA9PiB7XG4gIGNvbnN0IFt7IHNlbmRTdGF0dXMgfV0gPSB1c2VTdHlsZVNldCgpO1xuICBjb25zdCB7IHRpbWVzdGFtcCB9ID0gYWN0aXZpdHk7XG4gIGNvbnN0IGdyYXBoID0gdXNlTWVtbygoKSA9PiBkZXJlZmVyZW5jZUJsYW5rTm9kZXMoYWN0aXZpdHkuZW50aXRpZXMgfHwgW10pLCBbYWN0aXZpdHkuZW50aXRpZXNdKTtcblxuICBjb25zdCBtZXNzYWdlVGhpbmcgPSB1c2VNZW1vKCgpID0+IGdldE9yZ1NjaGVtYU1lc3NhZ2UoZ3JhcGgpLCBbZ3JhcGhdKTtcblxuICBjb25zdCBjbGFpbUludGVycHJldGVyID0gdXNlTWVtbzxPcmdTY2hlbWFQcm9qZWN0IHwgdW5kZWZpbmVkPigoKSA9PiB7XG4gICAgdHJ5IHtcbiAgICAgIGlmIChtZXNzYWdlVGhpbmcpIHtcbiAgICAgICAgcmV0dXJuIHBhcnNlQ2xhaW0oKG1lc3NhZ2VUaGluZz8uY2l0YXRpb24gfHwgW10pWzBdKT8uY2xhaW1JbnRlcnByZXRlcjtcbiAgICAgIH1cblxuICAgICAgY29uc3QgW2ZpcnN0Q2xhaW1dID0gZ3JhcGguZmlsdGVyKCh7IHR5cGUgfSkgPT4gdHlwZSA9PT0gJ2h0dHBzOi8vc2NoZW1hLm9yZy9DbGFpbScpLm1hcChwYXJzZUNsYWltKTtcblxuICAgICAgaWYgKGZpcnN0Q2xhaW0pIHtcbiAgICAgICAgd2FyblJvb3RMZXZlbFRoaW5ncygpO1xuXG4gICAgICAgIHJldHVybiBmaXJzdENsYWltPy5jbGFpbUludGVycHJldGVyO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByZXBseUFjdGlvbiA9IHBhcnNlQWN0aW9uKGdyYXBoLmZpbmQoKHsgdHlwZSB9KSA9PiB0eXBlID09PSAnaHR0cHM6Ly9zY2hlbWEub3JnL1JlcGx5QWN0aW9uJykpO1xuXG4gICAgICBpZiAocmVwbHlBY3Rpb24pIHtcbiAgICAgICAgd2FyblJvb3RMZXZlbFRoaW5ncygpO1xuXG4gICAgICAgIHJldHVybiByZXBseUFjdGlvbj8ucHJvdmlkZXI7XG4gICAgICB9XG4gICAgfSBjYXRjaCB7XG4gICAgICAvLyBJbnRlbnRpb25hbGx5IGxlZnQgYmxhbmsuXG4gICAgfVxuICB9LCBbZ3JhcGgsIG1lc3NhZ2VUaGluZ10pO1xuXG4gIGNvbnN0IGZlZWRiYWNrQWN0aW9ucyA9IHVzZU1lbW88UmVhZG9ubHlTZXQ8T3JnU2NoZW1hQWN0aW9uPiB8IHVuZGVmaW5lZD4oKCkgPT4ge1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZWFjdEFjdGlvbnMgPSAobWVzc2FnZVRoaW5nPy5wb3RlbnRpYWxBY3Rpb24gfHwgW10pLmZpbHRlcihcbiAgICAgICAgKHsgJ0B0eXBlJzogdHlwZSB9KSA9PiB0eXBlID09PSAnTGlrZUFjdGlvbicgfHwgdHlwZSA9PT0gJ0Rpc2xpa2VBY3Rpb24nXG4gICAgICApO1xuXG4gICAgICBpZiAocmVhY3RBY3Rpb25zLmxlbmd0aCkge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmZyZWV6ZShuZXcgU2V0KHJlYWN0QWN0aW9ucykpO1xuICAgICAgfVxuXG4gICAgICBjb25zdCB2b3RlQWN0aW9ucyA9IGdyYXBoLmZpbHRlcigoeyB0eXBlIH0pID0+IHR5cGUgPT09ICdodHRwczovL3NjaGVtYS5vcmcvVm90ZUFjdGlvbicpLm1hcChwYXJzZUFjdGlvbik7XG5cbiAgICAgIGlmICh2b3RlQWN0aW9ucy5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIE9iamVjdC5mcmVlemUobmV3IFNldCh2b3RlQWN0aW9ucykpO1xuICAgICAgfVxuICAgIH0gY2F0Y2gge1xuICAgICAgLy8gSW50ZW50aW9uYWxseSBsZWZ0IGJsYW5rLlxuICAgIH1cbiAgfSwgW2dyYXBoLCBtZXNzYWdlVGhpbmddKTtcblxuICByZXR1cm4gKFxuICAgIDxTbG90dGVkIGNsYXNzTmFtZT17Y2xhc3NOYW1lcygnd2ViY2hhdF9fYWN0aXZpdHktc3RhdHVzJywgc2VuZFN0YXR1cyArICcnKX0+XG4gICAgICB7dXNlTWVtbzxSZWFjdE5vZGVbXT4oXG4gICAgICAgICgpID0+XG4gICAgICAgICAgW1xuICAgICAgICAgICAgdGltZXN0YW1wICYmIDxUaW1lc3RhbXAga2V5PVwidGltZXN0YW1wXCIgdGltZXN0YW1wPXt0aW1lc3RhbXB9IC8+LFxuICAgICAgICAgICAgY2xhaW1JbnRlcnByZXRlciAmJiA8T3JpZ2luYXRvciBrZXk9XCJvcmlnaW5hdG9yXCIgcHJvamVjdD17Y2xhaW1JbnRlcnByZXRlcn0gLz4sXG4gICAgICAgICAgICBmZWVkYmFja0FjdGlvbnM/LnNpemUgJiYgPEZlZWRiYWNrIGFjdGlvbnM9e2ZlZWRiYWNrQWN0aW9uc30ga2V5PVwiZmVlZGJhY2tcIiAvPlxuICAgICAgICAgIF0uZmlsdGVyKEJvb2xlYW4pLFxuICAgICAgICBbY2xhaW1JbnRlcnByZXRlciwgdGltZXN0YW1wLCBmZWVkYmFja0FjdGlvbnNdXG4gICAgICApfVxuICAgIDwvU2xvdHRlZD5cbiAgKTtcbn0pO1xuXG5PdGhlcnNBY3Rpdml0eVN0YXR1cy5kaXNwbGF5TmFtZSA9ICdPdGhlcnNBY3Rpdml0eVN0YXR1cyc7XG5cbmV4cG9ydCBkZWZhdWx0IE90aGVyc0FjdGl2aXR5U3RhdHVzO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQUEsSUFBQUEsd0JBQUEsR0FBQUMsT0FBQTtBQVNBLElBQUFDLFdBQUEsR0FBQUMsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFHLE1BQUEsR0FBQUMsdUJBQUEsQ0FBQUosT0FBQTtBQUVBLElBQUFLLGFBQUEsR0FBQUgsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFNLHNCQUFBLEdBQUFKLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBTyxTQUFBLEdBQUFMLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBUSxXQUFBLEdBQUFOLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBUyxRQUFBLEdBQUFQLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBVSxVQUFBLEdBQUFSLHNCQUFBLENBQUFGLE9BQUE7QUFBb0MsU0FBQVcseUJBQUFDLFdBQUEsZUFBQUMsT0FBQSxrQ0FBQUMsaUJBQUEsT0FBQUQsT0FBQSxRQUFBRSxnQkFBQSxPQUFBRixPQUFBLFlBQUFGLHdCQUFBLFlBQUFBLHlCQUFBQyxXQUFBLFdBQUFBLFdBQUEsR0FBQUcsZ0JBQUEsR0FBQUQsaUJBQUEsS0FBQUYsV0FBQTtBQUFBLFNBQUFSLHdCQUFBWSxHQUFBLEVB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
;