UNPKG

matrix-react-sdk

Version:
95 lines (92 loc) 15.8 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireDefault(require("react")); var _languageHandler = require("../../../languageHandler"); var _SettingsStore = _interopRequireDefault(require("../../../settings/SettingsStore")); var _dispatcher = _interopRequireDefault(require("../../../dispatcher/dispatcher")); var _MatrixClientPeg = require("../../../MatrixClientPeg"); var _actions = require("../../../dispatcher/actions"); var _SettingLevel = require("../../../settings/SettingLevel"); var _SettingsFlag = _interopRequireDefault(require("../elements/SettingsFlag")); var _SettingsFieldset = _interopRequireDefault(require("../settings/SettingsFieldset")); var _AccessibleButton = _interopRequireDefault(require("../elements/AccessibleButton")); /* Copyright 2024 New Vector Ltd. Copyright 2019 The Matrix.org Foundation C.I.C. Copyright 2018, 2019 New Vector Ltd Copyright 2017 Travis Ralston Copyright 2016 OpenMarket Ltd SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only Please see LICENSE files in the repository root for full details. */ class UrlPreviewSettings extends _react.default.Component { constructor(...args) { super(...args); (0, _defineProperty2.default)(this, "onClickUserSettings", e => { e.preventDefault(); e.stopPropagation(); _dispatcher.default.fire(_actions.Action.ViewUserSettings); }); } render() { const roomId = this.props.room.roomId; const isEncrypted = _MatrixClientPeg.MatrixClientPeg.safeGet().isRoomEncrypted(roomId); let previewsForAccount; let previewsForRoom; if (!isEncrypted) { // Only show account setting state and room state setting state in non-e2ee rooms where they apply const accountEnabled = _SettingsStore.default.getValueAt(_SettingLevel.SettingLevel.ACCOUNT, "urlPreviewsEnabled"); if (accountEnabled) { previewsForAccount = (0, _languageHandler._t)("room_settings|general|user_url_previews_default_on", {}, { a: sub => /*#__PURE__*/_react.default.createElement(_AccessibleButton.default, { kind: "link_inline", onClick: this.onClickUserSettings }, sub) }); } else { previewsForAccount = (0, _languageHandler._t)("room_settings|general|user_url_previews_default_off", {}, { a: sub => /*#__PURE__*/_react.default.createElement(_AccessibleButton.default, { kind: "link_inline", onClick: this.onClickUserSettings }, sub) }); } if (_SettingsStore.default.canSetValue("urlPreviewsEnabled", roomId, _SettingLevel.SettingLevel.ROOM)) { previewsForRoom = /*#__PURE__*/_react.default.createElement(_SettingsFlag.default, { name: "urlPreviewsEnabled", level: _SettingLevel.SettingLevel.ROOM, roomId: roomId, isExplicit: true }); } else { let str = (0, _languageHandler._td)("room_settings|general|default_url_previews_on"); if (!_SettingsStore.default.getValueAt(_SettingLevel.SettingLevel.ROOM, "urlPreviewsEnabled", roomId, /*explicit=*/true)) { str = (0, _languageHandler._td)("room_settings|general|default_url_previews_off"); } previewsForRoom = /*#__PURE__*/_react.default.createElement("div", null, (0, _languageHandler._t)(str)); } } else { previewsForAccount = (0, _languageHandler._t)("room_settings|general|url_preview_encryption_warning"); } const previewsForRoomAccount = /*#__PURE__*/ // in an e2ee room we use a special key to enforce per-room opt-in _react.default.createElement(_SettingsFlag.default, { name: isEncrypted ? "urlPreviewsEnabled_e2ee" : "urlPreviewsEnabled", level: _SettingLevel.SettingLevel.ROOM_DEVICE, roomId: roomId }); const description = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("p", null, (0, _languageHandler._t)("room_settings|general|url_preview_explainer")), /*#__PURE__*/_react.default.createElement("p", null, previewsForAccount)); return /*#__PURE__*/_react.default.createElement(_SettingsFieldset.default, { legend: (0, _languageHandler._t)("room_settings|general|url_previews_section"), description: description }, previewsForRoom, previewsForRoomAccount); } } exports.default = UrlPreviewSettings; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9sYW5ndWFnZUhhbmRsZXIiLCJfU2V0dGluZ3NTdG9yZSIsIl9kaXNwYXRjaGVyIiwiX01hdHJpeENsaWVudFBlZyIsIl9hY3Rpb25zIiwiX1NldHRpbmdMZXZlbCIsIl9TZXR0aW5nc0ZsYWciLCJfU2V0dGluZ3NGaWVsZHNldCIsIl9BY2Nlc3NpYmxlQnV0dG9uIiwiVXJsUHJldmlld1NldHRpbmdzIiwiUmVhY3QiLCJDb21wb25lbnQiLCJjb25zdHJ1Y3RvciIsImFyZ3MiLCJfZGVmaW5lUHJvcGVydHkyIiwiZGVmYXVsdCIsImUiLCJwcmV2ZW50RGVmYXVsdCIsInN0b3BQcm9wYWdhdGlvbiIsImRpcyIsImZpcmUiLCJBY3Rpb24iLCJWaWV3VXNlclNldHRpbmdzIiwicmVuZGVyIiwicm9vbUlkIiwicHJvcHMiLCJyb29tIiwiaXNFbmNyeXB0ZWQiLCJNYXRyaXhDbGllbnRQZWciLCJzYWZlR2V0IiwiaXNSb29tRW5jcnlwdGVkIiwicHJldmlld3NGb3JBY2NvdW50IiwicHJldmlld3NGb3JSb29tIiwiYWNjb3VudEVuYWJsZWQiLCJTZXR0aW5nc1N0b3JlIiwiZ2V0VmFsdWVBdCIsIlNldHRpbmdMZXZlbCIsIkFDQ09VTlQiLCJfdCIsImEiLCJzdWIiLCJjcmVhdGVFbGVtZW50Iiwia2luZCIsIm9uQ2xpY2siLCJvbkNsaWNrVXNlclNldHRpbmdzIiwiY2FuU2V0VmFsdWUiLCJST09NIiwibmFtZSIsImxldmVsIiwiaXNFeHBsaWNpdCIsInN0ciIsIl90ZCIsInByZXZpZXdzRm9yUm9vbUFjY291bnQiLCJST09NX0RFVklDRSIsImRlc2NyaXB0aW9uIiwiRnJhZ21lbnQiLCJsZWdlbmQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvdmlld3Mvcm9vbV9zZXR0aW5ncy9VcmxQcmV2aWV3U2V0dGluZ3MudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDE5IFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5Db3B5cmlnaHQgMjAxOCwgMjAxOSBOZXcgVmVjdG9yIEx0ZFxuQ29weXJpZ2h0IDIwMTcgVHJhdmlzIFJhbHN0b25cbkNvcHlyaWdodCAyMDE2IE9wZW5NYXJrZXQgTHRkXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbmltcG9ydCBSZWFjdCwgeyBSZWFjdE5vZGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IFJvb20gfSBmcm9tIFwibWF0cml4LWpzLXNkay9zcmMvbWF0cml4XCI7XG5cbmltcG9ydCB7IF90LCBfdGQgfSBmcm9tIFwiLi4vLi4vLi4vbGFuZ3VhZ2VIYW5kbGVyXCI7XG5pbXBvcnQgU2V0dGluZ3NTdG9yZSBmcm9tIFwiLi4vLi4vLi4vc2V0dGluZ3MvU2V0dGluZ3NTdG9yZVwiO1xuaW1wb3J0IGRpcyBmcm9tIFwiLi4vLi4vLi4vZGlzcGF0Y2hlci9kaXNwYXRjaGVyXCI7XG5pbXBvcnQgeyBNYXRyaXhDbGllbnRQZWcgfSBmcm9tIFwiLi4vLi4vLi4vTWF0cml4Q2xpZW50UGVnXCI7XG5pbXBvcnQgeyBBY3Rpb24gfSBmcm9tIFwiLi4vLi4vLi4vZGlzcGF0Y2hlci9hY3Rpb25zXCI7XG5pbXBvcnQgeyBTZXR0aW5nTGV2ZWwgfSBmcm9tIFwiLi4vLi4vLi4vc2V0dGluZ3MvU2V0dGluZ0xldmVsXCI7XG5pbXBvcnQgU2V0dGluZ3NGbGFnIGZyb20gXCIuLi9lbGVtZW50cy9TZXR0aW5nc0ZsYWdcIjtcbmltcG9ydCBTZXR0aW5nc0ZpZWxkc2V0IGZyb20gXCIuLi9zZXR0aW5ncy9TZXR0aW5nc0ZpZWxkc2V0XCI7XG5pbXBvcnQgQWNjZXNzaWJsZUJ1dHRvbiwgeyBCdXR0b25FdmVudCB9IGZyb20gXCIuLi9lbGVtZW50cy9BY2Nlc3NpYmxlQnV0dG9uXCI7XG5cbmludGVyZmFjZSBJUHJvcHMge1xuICAgIHJvb206IFJvb207XG59XG5cbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFVybFByZXZpZXdTZXR0aW5ncyBleHRlbmRzIFJlYWN0LkNvbXBvbmVudDxJUHJvcHM+IHtcbiAgICBwcml2YXRlIG9uQ2xpY2tVc2VyU2V0dGluZ3MgPSAoZTogQnV0dG9uRXZlbnQpOiB2b2lkID0+IHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBkaXMuZmlyZShBY3Rpb24uVmlld1VzZXJTZXR0aW5ncyk7XG4gICAgfTtcblxuICAgIHB1YmxpYyByZW5kZXIoKTogUmVhY3ROb2RlIHtcbiAgICAgICAgY29uc3Qgcm9vbUlkID0gdGhpcy5wcm9wcy5yb29tLnJvb21JZDtcbiAgICAgICAgY29uc3QgaXNFbmNyeXB0ZWQgPSBNYXRyaXhDbGllbnRQZWcuc2FmZUdldCgpLmlzUm9vbUVuY3J5cHRlZChyb29tSWQpO1xuXG4gICAgICAgIGxldCBwcmV2aWV3c0ZvckFjY291bnQ6IFJlYWN0Tm9kZSB8IHVuZGVmaW5lZDtcbiAgICAgICAgbGV0IHByZXZpZXdzRm9yUm9vbTogUmVhY3ROb2RlIHwgdW5kZWZpbmVkO1xuXG4gICAgICAgIGlmICghaXNFbmNyeXB0ZWQpIHtcbiAgICAgICAgICAgIC8vIE9ubHkgc2hvdyBhY2NvdW50IHNldHRpbmcgc3RhdGUgYW5kIHJvb20gc3RhdGUgc2V0dGluZyBzdGF0ZSBpbiBub24tZTJlZSByb29tcyB3aGVyZSB0aGV5IGFwcGx5XG4gICAgICAgICAgICBjb25zdCBhY2NvdW50RW5hYmxlZCA9IFNldHRpbmdzU3RvcmUuZ2V0VmFsdWVBdChTZXR0aW5nTGV2ZWwuQUNDT1VOVCwgXCJ1cmxQcmV2aWV3c0VuYWJsZWRcIik7XG4gICAgICAgICAgICBpZiAoYWNjb3VudEVuYWJsZWQpIHtcbiAgICAgICAgICAgICAgICBwcmV2aWV3c0ZvckFjY291bnQgPSBfdChcbiAgICAgICAgICAgICAgICAgICAgXCJyb29tX3NldHRpbmdzfGdlbmVyYWx8dXNlcl91cmxfcHJldmlld3NfZGVmYXVsdF9vblwiLFxuICAgICAgICAgICAgICAgICAgICB7fSxcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgYTogKHN1YikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBY2Nlc3NpYmxlQnV0dG9uIGtpbmQ9XCJsaW5rX2lubGluZVwiIG9uQ2xpY2s9e3RoaXMub25DbGlja1VzZXJTZXR0aW5nc30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtzdWJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BY2Nlc3NpYmxlQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBwcmV2aWV3c0ZvckFjY291bnQgPSBfdChcbiAgICAgICAgICAgICAgICAgICAgXCJyb29tX3NldHRpbmdzfGdlbmVyYWx8dXNlcl91cmxfcHJldmlld3NfZGVmYXVsdF9vZmZcIixcbiAgICAgICAgICAgICAgICAgICAge30sXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGE6IChzdWIpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QWNjZXNzaWJsZUJ1dHRvbiBraW5kPVwibGlua19pbmxpbmVcIiBvbkNsaWNrPXt0aGlzLm9uQ2xpY2tVc2VyU2V0dGluZ3N9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7c3VifVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQWNjZXNzaWJsZUJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKFNldHRpbmdzU3RvcmUuY2FuU2V0VmFsdWUoXCJ1cmxQcmV2aWV3c0VuYWJsZWRcIiwgcm9vbUlkLCBTZXR0aW5nTGV2ZWwuUk9PTSkpIHtcbiAgICAgICAgICAgICAgICBwcmV2aWV3c0ZvclJvb20gPSAoXG4gICAgICAgICAgICAgICAgICAgIDxTZXR0aW5nc0ZsYWdcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU9XCJ1cmxQcmV2aWV3c0VuYWJsZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgbGV2ZWw9e1NldHRpbmdMZXZlbC5ST09NfVxuICAgICAgICAgICAgICAgICAgICAgICAgcm9vbUlkPXtyb29tSWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBpc0V4cGxpY2l0PXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxldCBzdHIgPSBfdGQoXCJyb29tX3NldHRpbmdzfGdlbmVyYWx8ZGVmYXVsdF91cmxfcHJldmlld3Nfb25cIik7XG4gICAgICAgICAgICAgICAgaWYgKCFTZXR0aW5nc1N0b3JlLmdldFZhbHVlQXQoU2V0dGluZ0xldmVsLlJPT00sIFwidXJsUHJldmlld3NFbmFibGVkXCIsIHJvb21JZCwgLypleHBsaWNpdD0qLyB0cnVlKSkge1xuICAgICAgICAgICAgICAgICAgICBzdHIgPSBfdGQoXCJyb29tX3NldHRpbmdzfGdlbmVyYWx8ZGVmYXVsdF91cmxfcHJldmlld3Nfb2ZmXCIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBwcmV2aWV3c0ZvclJvb20gPSA8ZGl2PntfdChzdHIpfTwvZGl2PjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHByZXZpZXdzRm9yQWNjb3VudCA9IF90KFwicm9vbV9zZXR0aW5nc3xnZW5lcmFsfHVybF9wcmV2aWV3X2VuY3J5cHRpb25fd2FybmluZ1wiKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHByZXZpZXdzRm9yUm9vbUFjY291bnQgPSAvLyBpbiBhbiBlMmVlIHJvb20gd2UgdXNlIGEgc3BlY2lhbCBrZXkgdG8gZW5mb3JjZSBwZXItcm9vbSBvcHQtaW5cbiAgICAgICAgICAgIChcbiAgICAgICAgICAgICAgICA8U2V0dGluZ3NGbGFnXG4gICAgICAgICAgICAgICAgICAgIG5hbWU9e2lzRW5jcnlwdGVkID8gXCJ1cmxQcmV2aWV3c0VuYWJsZWRfZTJlZVwiIDogXCJ1cmxQcmV2aWV3c0VuYWJsZWRcIn1cbiAgICAgICAgICAgICAgICAgICAgbGV2ZWw9e1NldHRpbmdMZXZlbC5ST09NX0RFVklDRX1cbiAgICAgICAgICAgICAgICAgICAgcm9vbUlkPXtyb29tSWR9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgY29uc3QgZGVzY3JpcHRpb24gPSAoXG4gICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgIDxwPntfdChcInJvb21fc2V0dGluZ3N8Z2VuZXJhbHx1cmxfcHJldmlld19leHBsYWluZXJcIil9PC9wPlxuICAgICAgICAgICAgICAgIDxwPntwcmV2aWV3c0ZvckFjY291bnR9PC9wPlxuICAgICAgICAgICAgPC8+XG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxTZXR0aW5nc0ZpZWxkc2V0IGxlZ2VuZD17X3QoXCJyb29tX3NldHRpbmdzfGdlbmVyYWx8dXJsX3ByZXZpZXdzX3NlY3Rpb25cIil9IGRlc2NyaXB0aW9uPXtkZXNjcmlwdGlvbn0+XG4gICAgICAgICAgICAgICAge3ByZXZpZXdzRm9yUm9vbX1cbiAgICAgICAgICAgICAgICB7cHJldmlld3NGb3JSb29tQWNjb3VudH1cbiAgICAgICAgICAgIDwvU2V0dGluZ3NGaWVsZHNldD5cbiAgICAgICAgKTtcbiAgICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBV0EsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBR0EsSUFBQUMsZ0JBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLGNBQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLFdBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLGdCQUFBLEdBQUFKLE9BQUE7QUFDQSxJQUFBSyxRQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxhQUFBLEdBQUFOLE9BQUE7QUFDQSxJQUFBTyxhQUFBLEdBQUFSLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUSxpQkFBQSxHQUFBVCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVMsaUJBQUEsR0FBQVYsc0JBQUEsQ0FBQUMsT0FBQTtBQXRCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFtQmUsTUFBTVUsa0JBQWtCLFNBQVNDLGNBQUssQ0FBQ0MsU0FBUyxDQUFTO0VBQUFDLFlBQUEsR0FBQUMsSUFBQTtJQUFBLFNBQUFBLElBQUE7SUFBQSxJQUFBQyxnQkFBQSxDQUFBQyxPQUFBLCtCQUNyQ0MsQ0FBYyxJQUFXO01BQ3BEQSxDQUFDLENBQUNDLGNBQWMsQ0FBQyxDQUFDO01BQ2xCRCxDQUFDLENBQUNFLGVBQWUsQ0FBQyxDQUFDO01BQ25CQyxtQkFBRyxDQUFDQyxJQUFJLENBQUNDLGVBQU0sQ0FBQ0MsZ0JBQWdCLENBQUM7SUFDckMsQ0FBQztFQUFBO0VBRU1DLE1BQU1BLENBQUEsRUFBYztJQUN2QixNQUFNQyxNQUFNLEdBQUcsSUFBSSxDQUFDQyxLQUFLLENBQUNDLElBQUksQ0FBQ0YsTUFBTTtJQUNyQyxNQUFNRyxXQUFXLEdBQUdDLGdDQUFlLENBQUNDLE9BQU8sQ0FBQyxDQUFDLENBQUNDLGVBQWUsQ0FBQ04sTUFBTSxDQUFDO0lBRXJFLElBQUlPLGtCQUF5QztJQUM3QyxJQUFJQyxlQUFzQztJQUUxQyxJQUFJLENBQUNMLFdBQVcsRUFBRTtNQUNkO01BQ0EsTUFBTU0sY0FBYyxHQUFHQyxzQkFBYSxDQUFDQyxVQUFVLENBQUNDLDBCQUFZLENBQUNDLE9BQU8sRUFBRSxvQkFBb0IsQ0FBQztNQUMzRixJQUFJSixjQUFjLEVBQUU7UUFDaEJGLGtCQUFrQixHQUFHLElBQUFPLG1CQUFFLEVBQ25CLG9EQUFvRCxFQUNwRCxDQUFDLENBQUMsRUFDRjtVQUNJQyxDQUFDLEVBQUdDLEdBQUcsaUJBQ0gzQyxNQUFBLENBQUFrQixPQUFBLENBQUEwQixhQUFBLENBQUNqQyxpQkFBQSxDQUFBTyxPQUFnQjtZQUFDMkIsSUFBSSxFQUFDLGFBQWE7WUFBQ0MsT0FBTyxFQUFFLElBQUksQ0FBQ0M7VUFBb0IsR0FDbEVKLEdBQ2E7UUFFMUIsQ0FDSixDQUFDO01BQ0wsQ0FBQyxNQUFNO1FBQ0hULGtCQUFrQixHQUFHLElBQUFPLG1CQUFFLEVBQ25CLHFEQUFxRCxFQUNyRCxDQUFDLENBQUMsRUFDRjtVQUNJQyxDQUFDLEVBQUdDLEdBQUcsaUJBQ0gzQyxNQUFBLENBQUFrQixPQUFBLENBQUEwQixhQUFBLENBQUNqQyxpQkFBQSxDQUFBTyxPQUFnQjtZQUFDMkIsSUFBSSxFQUFDLGFBQWE7WUFBQ0MsT0FBTyxFQUFFLElBQUksQ0FBQ0M7VUFBb0IsR0FDbEVKLEdBQ2E7UUFFMUIsQ0FDSixDQUFDO01BQ0w7TUFFQSxJQUFJTixzQkFBYSxDQUFDVyxXQUFXLENBQUMsb0JBQW9CLEVBQUVyQixNQUFNLEVBQUVZLDBCQUFZLENBQUNVLElBQUksQ0FBQyxFQUFFO1FBQzVFZCxlQUFlLGdCQUNYbkMsTUFBQSxDQUFBa0IsT0FBQSxDQUFBMEIsYUFBQSxDQUFDbkMsYUFBQSxDQUFBUyxPQUFZO1VBQ1RnQyxJQUFJLEVBQUMsb0JBQW9CO1VBQ3pCQyxLQUFLLEVBQUVaLDBCQUFZLENBQUNVLElBQUs7VUFDekJ0QixNQUFNLEVBQUVBLE1BQU87VUFDZnlCLFVBQVUsRUFBRTtRQUFLLENBQ3BCLENBQ0o7TUFDTCxDQUFDLE1BQU07UUFDSCxJQUFJQyxHQUFHLEdBQUcsSUFBQUMsb0JBQUcsRUFBQywrQ0FBK0MsQ0FBQztRQUM5RCxJQUFJLENBQUNqQixzQkFBYSxDQUFDQyxVQUFVLENBQUNDLDBCQUFZLENBQUNVLElBQUksRUFBRSxvQkFBb0IsRUFBRXRCLE1BQU0sRUFBRSxhQUFjLElBQUksQ0FBQyxFQUFFO1VBQ2hHMEIsR0FBRyxHQUFHLElBQUFDLG9CQUFHLEVBQUMsZ0RBQWdELENBQUM7UUFDL0Q7UUFDQW5CLGVBQWUsZ0JBQUduQyxNQUFBLENBQUFrQixPQUFBLENBQUEwQixhQUFBLGNBQU0sSUFBQUgsbUJBQUUsRUFBQ1ksR0FBRyxDQUFPLENBQUM7TUFDMUM7SUFDSixDQUFDLE1BQU07TUFDSG5CLGtCQUFrQixHQUFHLElBQUFPLG1CQUFFLEVBQUMsc0RBQXNELENBQUM7SUFDbkY7SUFFQSxNQUFNYyxzQkFBc0I7SUFBQTtJQUFHO0lBRXZCdkQsTUFBQSxDQUFBa0IsT0FBQSxDQUFBMEIsYUFBQSxDQUFDbkMsYUFBQSxDQUFBUyxPQUFZO01BQ1RnQyxJQUFJLEVBQUVwQixXQUFXLEdBQUcseUJBQXlCLEdBQUcsb0JBQXFCO01BQ3JFcUIsS0FBSyxFQUFFWiwwQkFBWSxDQUFDaUIsV0FBWTtNQUNoQzdCLE1BQU0sRUFBRUE7SUFBTyxDQUNsQixDQUNKO0lBRUwsTUFBTThCLFdBQVcsZ0JBQ2J6RCxNQUFBLENBQUFrQixPQUFBLENBQUEwQixhQUFBLENBQUE1QyxNQUFBLENBQUFrQixPQUFBLENBQUF3QyxRQUFBLHFCQUNJMUQsTUFBQSxDQUFBa0IsT0FBQSxDQUFBMEIsYUFBQSxZQUFJLElBQUFILG1CQUFFLEVBQUMsNkNBQTZDLENBQUssQ0FBQyxlQUMxRHpDLE1BQUEsQ0FBQWtCLE9BQUEsQ0FBQTBCLGFBQUEsWUFBSVYsa0JBQXNCLENBQzVCLENBQ0w7SUFFRCxvQkFDSWxDLE1BQUEsQ0FBQWtCLE9BQUEsQ0FBQTBCLGFBQUEsQ0FBQ2xDLGlCQUFBLENBQUFRLE9BQWdCO01BQUN5QyxNQUFNLEVBQUUsSUFBQWxCLG1CQUFFLEVBQUMsNENBQTRDLENBQUU7TUFBQ2dCLFdBQVcsRUFBRUE7SUFBWSxHQUNoR3RCLGVBQWUsRUFDZm9CLHNCQUNhLENBQUM7RUFFM0I7QUFDSjtBQUFDSyxPQUFBLENBQUExQyxPQUFBLEdBQUFOLGtCQUFBIiwiaWdub3JlTGlzdCI6W119