matrix-react-sdk
Version:
SDK for matrix.org using React
94 lines (92 loc) • 32.6 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.onMetaSpaceChangeFactory = exports.default = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _react = _interopRequireWildcard(require("react"));
var _videoCallSolid = _interopRequireDefault(require("@vector-im/compound-design-tokens/assets/web/icons/video-call-solid"));
var _home = require("../../../../../../res/img/element-icons/home.svg");
var _favorite = require("../../../../../../res/img/element-icons/roomlist/favorite.svg");
var _members = require("../../../../../../res/img/element-icons/room/members.svg");
var _hashCircle = require("../../../../../../res/img/element-icons/roomlist/hash-circle.svg");
var _languageHandler = require("../../../../../languageHandler");
var _SettingsStore = _interopRequireDefault(require("../../../../../settings/SettingsStore"));
var _SettingLevel = require("../../../../../settings/SettingLevel");
var _StyledCheckbox = _interopRequireDefault(require("../../../elements/StyledCheckbox"));
var _useSettings = require("../../../../../hooks/useSettings");
var _spaces = require("../../../../../stores/spaces");
var _PosthogTrackers = _interopRequireDefault(require("../../../../../PosthogTrackers"));
var _SettingsTab = _interopRequireDefault(require("../SettingsTab"));
var _SettingsSection = require("../../shared/SettingsSection");
var _SettingsSubsection = _interopRequireWildcard(require("../../shared/SettingsSubsection"));
var _SdkConfig = _interopRequireDefault(require("../../../../../SdkConfig"));
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; } /*
Copyright 2024 New Vector Ltd.
Copyright 2021-2023 The Matrix.org Foundation C.I.C.
SPDX-License-Identifier: AGPL-3.0-only OR GPL-3.0-only
Please see LICENSE files in the repository root for full details.
*/
const onMetaSpaceChangeFactory = (metaSpace, interactionName) => async e => {
const currentValue = _SettingsStore.default.getValue("Spaces.enabledMetaSpaces");
await _SettingsStore.default.setValue("Spaces.enabledMetaSpaces", null, _SettingLevel.SettingLevel.ACCOUNT, _objectSpread(_objectSpread({}, currentValue), {}, {
[metaSpace]: e.target.checked
}));
_PosthogTrackers.default.trackInteraction(interactionName, e, [_spaces.MetaSpace.Home, null, _spaces.MetaSpace.Favourites, _spaces.MetaSpace.People, _spaces.MetaSpace.Orphans, _spaces.MetaSpace.VideoRooms].indexOf(metaSpace));
};
exports.onMetaSpaceChangeFactory = onMetaSpaceChangeFactory;
const SidebarUserSettingsTab = () => {
const {
[_spaces.MetaSpace.Home]: homeEnabled,
[_spaces.MetaSpace.Favourites]: favouritesEnabled,
[_spaces.MetaSpace.People]: peopleEnabled,
[_spaces.MetaSpace.Orphans]: orphansEnabled,
[_spaces.MetaSpace.VideoRooms]: videoRoomsEnabled
} = (0, _useSettings.useSettingValue)("Spaces.enabledMetaSpaces");
const allRoomsInHome = (0, _useSettings.useSettingValue)("Spaces.allRoomsInHome");
const guestSpaUrl = (0, _react.useMemo)(() => {
return _SdkConfig.default.get("element_call").guest_spa_url;
}, []);
const conferenceSubsectionText = (0, _languageHandler._t)("settings|sidebar|metaspaces_video_rooms_description") + (guestSpaUrl ? " " + (0, _languageHandler._t)("settings|sidebar|metaspaces_video_rooms_description_invite_extension") : "");
const onAllRoomsInHomeToggle = async event => {
await _SettingsStore.default.setValue("Spaces.allRoomsInHome", null, _SettingLevel.SettingLevel.ACCOUNT, event.target.checked);
_PosthogTrackers.default.trackInteraction("WebSettingsSidebarTabSpacesCheckbox", event, 1);
};
return /*#__PURE__*/_react.default.createElement(_SettingsTab.default, null, /*#__PURE__*/_react.default.createElement(_SettingsSection.SettingsSection, null, /*#__PURE__*/_react.default.createElement(_SettingsSubsection.default, {
heading: (0, _languageHandler._t)("settings|sidebar|metaspaces_subsection"),
description: (0, _languageHandler._t)("settings|sidebar|spaces_explainer")
}, /*#__PURE__*/_react.default.createElement(_StyledCheckbox.default, {
checked: !!homeEnabled,
onChange: onMetaSpaceChangeFactory(_spaces.MetaSpace.Home, "WebSettingsSidebarTabSpacesCheckbox"),
className: "mx_SidebarUserSettingsTab_checkbox",
disabled: homeEnabled
}, /*#__PURE__*/_react.default.createElement(_SettingsSubsection.SettingsSubsectionText, null, /*#__PURE__*/_react.default.createElement(_home.Icon, null), (0, _languageHandler._t)("common|home")), /*#__PURE__*/_react.default.createElement(_SettingsSubsection.SettingsSubsectionText, null, (0, _languageHandler._t)("settings|sidebar|metaspaces_home_description"))), /*#__PURE__*/_react.default.createElement(_StyledCheckbox.default, {
checked: allRoomsInHome,
disabled: !homeEnabled,
onChange: onAllRoomsInHomeToggle,
className: "mx_SidebarUserSettingsTab_checkbox mx_SidebarUserSettingsTab_homeAllRoomsCheckbox",
"data-testid": "mx_SidebarUserSettingsTab_homeAllRoomsCheckbox"
}, /*#__PURE__*/_react.default.createElement(_SettingsSubsection.SettingsSubsectionText, null, (0, _languageHandler._t)("settings|sidebar|metaspaces_home_all_rooms")), /*#__PURE__*/_react.default.createElement(_SettingsSubsection.SettingsSubsectionText, null, (0, _languageHandler._t)("settings|sidebar|metaspaces_home_all_rooms_description"))), /*#__PURE__*/_react.default.createElement(_StyledCheckbox.default, {
checked: !!favouritesEnabled,
onChange: onMetaSpaceChangeFactory(_spaces.MetaSpace.Favourites, "WebSettingsSidebarTabSpacesCheckbox"),
className: "mx_SidebarUserSettingsTab_checkbox"
}, /*#__PURE__*/_react.default.createElement(_SettingsSubsection.SettingsSubsectionText, null, /*#__PURE__*/_react.default.createElement(_favorite.Icon, null), (0, _languageHandler._t)("common|favourites")), /*#__PURE__*/_react.default.createElement(_SettingsSubsection.SettingsSubsectionText, null, (0, _languageHandler._t)("settings|sidebar|metaspaces_favourites_description"))), /*#__PURE__*/_react.default.createElement(_StyledCheckbox.default, {
checked: !!peopleEnabled,
onChange: onMetaSpaceChangeFactory(_spaces.MetaSpace.People, "WebSettingsSidebarTabSpacesCheckbox"),
className: "mx_SidebarUserSettingsTab_checkbox"
}, /*#__PURE__*/_react.default.createElement(_SettingsSubsection.SettingsSubsectionText, null, /*#__PURE__*/_react.default.createElement(_members.Icon, null), (0, _languageHandler._t)("common|people")), /*#__PURE__*/_react.default.createElement(_SettingsSubsection.SettingsSubsectionText, null, (0, _languageHandler._t)("settings|sidebar|metaspaces_people_description"))), /*#__PURE__*/_react.default.createElement(_StyledCheckbox.default, {
checked: !!orphansEnabled,
onChange: onMetaSpaceChangeFactory(_spaces.MetaSpace.Orphans, "WebSettingsSidebarTabSpacesCheckbox"),
className: "mx_SidebarUserSettingsTab_checkbox"
}, /*#__PURE__*/_react.default.createElement(_SettingsSubsection.SettingsSubsectionText, null, /*#__PURE__*/_react.default.createElement(_hashCircle.Icon, null), (0, _languageHandler._t)("settings|sidebar|metaspaces_orphans")), /*#__PURE__*/_react.default.createElement(_SettingsSubsection.SettingsSubsectionText, null, (0, _languageHandler._t)("settings|sidebar|metaspaces_orphans_description"))), _SettingsStore.default.getValue("feature_video_rooms") && /*#__PURE__*/_react.default.createElement(_StyledCheckbox.default, {
checked: !!videoRoomsEnabled,
onChange: onMetaSpaceChangeFactory(_spaces.MetaSpace.VideoRooms, "WebSettingsSidebarTabSpacesCheckbox"),
className: "mx_SidebarUserSettingsTab_checkbox"
}, /*#__PURE__*/_react.default.createElement(_SettingsSubsection.SettingsSubsectionText, null, /*#__PURE__*/_react.default.createElement(_videoCallSolid.default, null), (0, _languageHandler._t)("settings|sidebar|metaspaces_video_rooms")), /*#__PURE__*/_react.default.createElement(_SettingsSubsection.SettingsSubsectionText, null, conferenceSubsectionText)))));
};
var _default = exports.default = SidebarUserSettingsTab;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfdmlkZW9DYWxsU29saWQiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwiX2hvbWUiLCJfZmF2b3JpdGUiLCJfbWVtYmVycyIsIl9oYXNoQ2lyY2xlIiwiX2xhbmd1YWdlSGFuZGxlciIsIl9TZXR0aW5nc1N0b3JlIiwiX1NldHRpbmdMZXZlbCIsIl9TdHlsZWRDaGVja2JveCIsIl91c2VTZXR0aW5ncyIsIl9zcGFjZXMiLCJfUG9zdGhvZ1RyYWNrZXJzIiwiX1NldHRpbmdzVGFiIiwiX1NldHRpbmdzU2VjdGlvbiIsIl9TZXR0aW5nc1N1YnNlY3Rpb24iLCJfU2RrQ29uZmlnIiwiX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlIiwiZSIsIldlYWtNYXAiLCJyIiwidCIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiaGFzIiwiZ2V0IiwibiIsIl9fcHJvdG9fXyIsImEiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsInUiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJpIiwic2V0Iiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZW51bWVyYWJsZSIsInB1c2giLCJhcHBseSIsIl9vYmplY3RTcHJlYWQiLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5MiIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwib25NZXRhU3BhY2VDaGFuZ2VGYWN0b3J5IiwibWV0YVNwYWNlIiwiaW50ZXJhY3Rpb25OYW1lIiwiY3VycmVudFZhbHVlIiwiU2V0dGluZ3NTdG9yZSIsImdldFZhbHVlIiwic2V0VmFsdWUiLCJTZXR0aW5nTGV2ZWwiLCJBQ0NPVU5UIiwidGFyZ2V0IiwiY2hlY2tlZCIsIlBvc3Rob2dUcmFja2VycyIsInRyYWNrSW50ZXJhY3Rpb24iLCJNZXRhU3BhY2UiLCJIb21lIiwiRmF2b3VyaXRlcyIsIlBlb3BsZSIsIk9ycGhhbnMiLCJWaWRlb1Jvb21zIiwiaW5kZXhPZiIsImV4cG9ydHMiLCJTaWRlYmFyVXNlclNldHRpbmdzVGFiIiwiaG9tZUVuYWJsZWQiLCJmYXZvdXJpdGVzRW5hYmxlZCIsInBlb3BsZUVuYWJsZWQiLCJvcnBoYW5zRW5hYmxlZCIsInZpZGVvUm9vbXNFbmFibGVkIiwidXNlU2V0dGluZ1ZhbHVlIiwiYWxsUm9vbXNJbkhvbWUiLCJndWVzdFNwYVVybCIsInVzZU1lbW8iLCJTZGtDb25maWciLCJndWVzdF9zcGFfdXJsIiwiY29uZmVyZW5jZVN1YnNlY3Rpb25UZXh0IiwiX3QiLCJvbkFsbFJvb21zSW5Ib21lVG9nZ2xlIiwiZXZlbnQiLCJjcmVhdGVFbGVtZW50IiwiU2V0dGluZ3NTZWN0aW9uIiwiaGVhZGluZyIsImRlc2NyaXB0aW9uIiwib25DaGFuZ2UiLCJjbGFzc05hbWUiLCJkaXNhYmxlZCIsIlNldHRpbmdzU3Vic2VjdGlvblRleHQiLCJJY29uIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy92aWV3cy9zZXR0aW5ncy90YWJzL3VzZXIvU2lkZWJhclVzZXJTZXR0aW5nc1RhYi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiLypcbkNvcHlyaWdodCAyMDI0IE5ldyBWZWN0b3IgTHRkLlxuQ29weXJpZ2h0IDIwMjEtMjAyMyBUaGUgTWF0cml4Lm9yZyBGb3VuZGF0aW9uIEMuSS5DLlxuXG5TUERYLUxpY2Vuc2UtSWRlbnRpZmllcjogQUdQTC0zLjAtb25seSBPUiBHUEwtMy4wLW9ubHlcblBsZWFzZSBzZWUgTElDRU5TRSBmaWxlcyBpbiB0aGUgcmVwb3NpdG9yeSByb290IGZvciBmdWxsIGRldGFpbHMuXG4qL1xuXG5pbXBvcnQgUmVhY3QsIHsgQ2hhbmdlRXZlbnQsIHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBDYW1lcmFDaXJjbGUgZnJvbSBcIkB2ZWN0b3ItaW0vY29tcG91bmQtZGVzaWduLXRva2Vucy9hc3NldHMvd2ViL2ljb25zL3ZpZGVvLWNhbGwtc29saWRcIjtcblxuaW1wb3J0IHsgSWNvbiBhcyBIb21lSWNvbiB9IGZyb20gXCIuLi8uLi8uLi8uLi8uLi8uLi9yZXMvaW1nL2VsZW1lbnQtaWNvbnMvaG9tZS5zdmdcIjtcbmltcG9ydCB7IEljb24gYXMgRmF2b3JpdGVJY29uIH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uLy4uL3Jlcy9pbWcvZWxlbWVudC1pY29ucy9yb29tbGlzdC9mYXZvcml0ZS5zdmdcIjtcbmltcG9ydCB7IEljb24gYXMgTWVtYmVyc0ljb24gfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vLi4vcmVzL2ltZy9lbGVtZW50LWljb25zL3Jvb20vbWVtYmVycy5zdmdcIjtcbmltcG9ydCB7IEljb24gYXMgSGFzaENpcmNsZUljb24gfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vLi4vcmVzL2ltZy9lbGVtZW50LWljb25zL3Jvb21saXN0L2hhc2gtY2lyY2xlLnN2Z1wiO1xuaW1wb3J0IHsgX3QgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vbGFuZ3VhZ2VIYW5kbGVyXCI7XG5pbXBvcnQgU2V0dGluZ3NTdG9yZSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vc2V0dGluZ3MvU2V0dGluZ3NTdG9yZVwiO1xuaW1wb3J0IHsgU2V0dGluZ0xldmVsIH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL3NldHRpbmdzL1NldHRpbmdMZXZlbFwiO1xuaW1wb3J0IFN0eWxlZENoZWNrYm94IGZyb20gXCIuLi8uLi8uLi9lbGVtZW50cy9TdHlsZWRDaGVja2JveFwiO1xuaW1wb3J0IHsgdXNlU2V0dGluZ1ZhbHVlIH0gZnJvbSBcIi4uLy4uLy4uLy4uLy4uL2hvb2tzL3VzZVNldHRpbmdzXCI7XG5pbXBvcnQgeyBNZXRhU3BhY2UgfSBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vc3RvcmVzL3NwYWNlc1wiO1xuaW1wb3J0IFBvc3Rob2dUcmFja2VycyBmcm9tIFwiLi4vLi4vLi4vLi4vLi4vUG9zdGhvZ1RyYWNrZXJzXCI7XG5pbXBvcnQgU2V0dGluZ3NUYWIgZnJvbSBcIi4uL1NldHRpbmdzVGFiXCI7XG5pbXBvcnQgeyBTZXR0aW5nc1NlY3Rpb24gfSBmcm9tIFwiLi4vLi4vc2hhcmVkL1NldHRpbmdzU2VjdGlvblwiO1xuaW1wb3J0IFNldHRpbmdzU3Vic2VjdGlvbiwgeyBTZXR0aW5nc1N1YnNlY3Rpb25UZXh0IH0gZnJvbSBcIi4uLy4uL3NoYXJlZC9TZXR0aW5nc1N1YnNlY3Rpb25cIjtcbmltcG9ydCBTZGtDb25maWcgZnJvbSBcIi4uLy4uLy4uLy4uLy4uL1Nka0NvbmZpZ1wiO1xuXG50eXBlIEludGVyYWN0aW9uTmFtZSA9IFwiV2ViU2V0dGluZ3NTaWRlYmFyVGFiU3BhY2VzQ2hlY2tib3hcIiB8IFwiV2ViUXVpY2tTZXR0aW5nc1BpblRvU2lkZWJhckNoZWNrYm94XCI7XG5cbmV4cG9ydCBjb25zdCBvbk1ldGFTcGFjZUNoYW5nZUZhY3RvcnkgPVxuICAgIChtZXRhU3BhY2U6IE1ldGFTcGFjZSwgaW50ZXJhY3Rpb25OYW1lOiBJbnRlcmFjdGlvbk5hbWUpID0+IGFzeW5jIChlOiBDaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgICAgICBjb25zdCBjdXJyZW50VmFsdWUgPSBTZXR0aW5nc1N0b3JlLmdldFZhbHVlKFwiU3BhY2VzLmVuYWJsZWRNZXRhU3BhY2VzXCIpO1xuICAgICAgICBhd2FpdCBTZXR0aW5nc1N0b3JlLnNldFZhbHVlKFwiU3BhY2VzLmVuYWJsZWRNZXRhU3BhY2VzXCIsIG51bGwsIFNldHRpbmdMZXZlbC5BQ0NPVU5ULCB7XG4gICAgICAgICAgICAuLi5jdXJyZW50VmFsdWUsXG4gICAgICAgICAgICBbbWV0YVNwYWNlXTogZS50YXJnZXQuY2hlY2tlZCxcbiAgICAgICAgfSk7XG5cbiAgICAgICAgUG9zdGhvZ1RyYWNrZXJzLnRyYWNrSW50ZXJhY3Rpb24oXG4gICAgICAgICAgICBpbnRlcmFjdGlvbk5hbWUsXG4gICAgICAgICAgICBlLFxuICAgICAgICAgICAgW1xuICAgICAgICAgICAgICAgIE1ldGFTcGFjZS5Ib21lLFxuICAgICAgICAgICAgICAgIG51bGwsXG4gICAgICAgICAgICAgICAgTWV0YVNwYWNlLkZhdm91cml0ZXMsXG4gICAgICAgICAgICAgICAgTWV0YVNwYWNlLlBlb3BsZSxcbiAgICAgICAgICAgICAgICBNZXRhU3BhY2UuT3JwaGFucyxcbiAgICAgICAgICAgICAgICBNZXRhU3BhY2UuVmlkZW9Sb29tcyxcbiAgICAgICAgICAgIF0uaW5kZXhPZihtZXRhU3BhY2UpLFxuICAgICAgICApO1xuICAgIH07XG5cbmNvbnN0IFNpZGViYXJVc2VyU2V0dGluZ3NUYWI6IFJlYWN0LkZDID0gKCkgPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgICAgW01ldGFTcGFjZS5Ib21lXTogaG9tZUVuYWJsZWQsXG4gICAgICAgIFtNZXRhU3BhY2UuRmF2b3VyaXRlc106IGZhdm91cml0ZXNFbmFibGVkLFxuICAgICAgICBbTWV0YVNwYWNlLlBlb3BsZV06IHBlb3BsZUVuYWJsZWQsXG4gICAgICAgIFtNZXRhU3BhY2UuT3JwaGFuc106IG9ycGhhbnNFbmFibGVkLFxuICAgICAgICBbTWV0YVNwYWNlLlZpZGVvUm9vbXNdOiB2aWRlb1Jvb21zRW5hYmxlZCxcbiAgICB9ID0gdXNlU2V0dGluZ1ZhbHVlPFJlY29yZDxNZXRhU3BhY2UsIGJvb2xlYW4+PihcIlNwYWNlcy5lbmFibGVkTWV0YVNwYWNlc1wiKTtcbiAgICBjb25zdCBhbGxSb29tc0luSG9tZSA9IHVzZVNldHRpbmdWYWx1ZTxib29sZWFuPihcIlNwYWNlcy5hbGxSb29tc0luSG9tZVwiKTtcbiAgICBjb25zdCBndWVzdFNwYVVybCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgICAgICByZXR1cm4gU2RrQ29uZmlnLmdldChcImVsZW1lbnRfY2FsbFwiKS5ndWVzdF9zcGFfdXJsO1xuICAgIH0sIFtdKTtcbiAgICBjb25zdCBjb25mZXJlbmNlU3Vic2VjdGlvblRleHQgPVxuICAgICAgICBfdChcInNldHRpbmdzfHNpZGViYXJ8bWV0YXNwYWNlc192aWRlb19yb29tc19kZXNjcmlwdGlvblwiKSArXG4gICAgICAgIChndWVzdFNwYVVybCA/IFwiIFwiICsgX3QoXCJzZXR0aW5nc3xzaWRlYmFyfG1ldGFzcGFjZXNfdmlkZW9fcm9vbXNfZGVzY3JpcHRpb25faW52aXRlX2V4dGVuc2lvblwiKSA6IFwiXCIpO1xuXG4gICAgY29uc3Qgb25BbGxSb29tc0luSG9tZVRvZ2dsZSA9IGFzeW5jIChldmVudDogQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgYXdhaXQgU2V0dGluZ3NTdG9yZS5zZXRWYWx1ZShcIlNwYWNlcy5hbGxSb29tc0luSG9tZVwiLCBudWxsLCBTZXR0aW5nTGV2ZWwuQUNDT1VOVCwgZXZlbnQudGFyZ2V0LmNoZWNrZWQpO1xuICAgICAgICBQb3N0aG9nVHJhY2tlcnMudHJhY2tJbnRlcmFjdGlvbihcIldlYlNldHRpbmdzU2lkZWJhclRhYlNwYWNlc0NoZWNrYm94XCIsIGV2ZW50LCAxKTtcbiAgICB9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPFNldHRpbmdzVGFiPlxuICAgICAgICAgICAgPFNldHRpbmdzU2VjdGlvbj5cbiAgICAgICAgICAgICAgICA8U2V0dGluZ3NTdWJzZWN0aW9uXG4gICAgICAgICAgICAgICAgICAgIGhlYWRpbmc9e190KFwic2V0dGluZ3N8c2lkZWJhcnxtZXRhc3BhY2VzX3N1YnNlY3Rpb25cIil9XG4gICAgICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPXtfdChcInNldHRpbmdzfHNpZGViYXJ8c3BhY2VzX2V4cGxhaW5lclwiKX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRDaGVja2JveFxuICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tlZD17ISFob21lRW5hYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtvbk1ldGFTcGFjZUNoYW5nZUZhY3RvcnkoTWV0YVNwYWNlLkhvbWUsIFwiV2ViU2V0dGluZ3NTaWRlYmFyVGFiU3BhY2VzQ2hlY2tib3hcIil9XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJteF9TaWRlYmFyVXNlclNldHRpbmdzVGFiX2NoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtob21lRW5hYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFNldHRpbmdzU3Vic2VjdGlvblRleHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhvbWVJY29uIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge190KFwiY29tbW9ufGhvbWVcIil9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1NldHRpbmdzU3Vic2VjdGlvblRleHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U2V0dGluZ3NTdWJzZWN0aW9uVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7X3QoXCJzZXR0aW5nc3xzaWRlYmFyfG1ldGFzcGFjZXNfaG9tZV9kZXNjcmlwdGlvblwiKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvU2V0dGluZ3NTdWJzZWN0aW9uVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRDaGVja2JveD5cblxuICAgICAgICAgICAgICAgICAgICA8U3R5bGVkQ2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9e2FsbFJvb21zSW5Ib21lfVxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9eyFob21lRW5hYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtvbkFsbFJvb21zSW5Ib21lVG9nZ2xlfVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXhfU2lkZWJhclVzZXJTZXR0aW5nc1RhYl9jaGVja2JveCBteF9TaWRlYmFyVXNlclNldHRpbmdzVGFiX2hvbWVBbGxSb29tc0NoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwibXhfU2lkZWJhclVzZXJTZXR0aW5nc1RhYl9ob21lQWxsUm9vbXNDaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTZXR0aW5nc1N1YnNlY3Rpb25UZXh0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtfdChcInNldHRpbmdzfHNpZGViYXJ8bWV0YXNwYWNlc19ob21lX2FsbF9yb29tc1wiKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvU2V0dGluZ3NTdWJzZWN0aW9uVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTZXR0aW5nc1N1YnNlY3Rpb25UZXh0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtfdChcInNldHRpbmdzfHNpZGViYXJ8bWV0YXNwYWNlc19ob21lX2FsbF9yb29tc19kZXNjcmlwdGlvblwiKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvU2V0dGluZ3NTdWJzZWN0aW9uVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRDaGVja2JveD5cblxuICAgICAgICAgICAgICAgICAgICA8U3R5bGVkQ2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9eyEhZmF2b3VyaXRlc0VuYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17b25NZXRhU3BhY2VDaGFuZ2VGYWN0b3J5KE1ldGFTcGFjZS5GYXZvdXJpdGVzLCBcIldlYlNldHRpbmdzU2lkZWJhclRhYlNwYWNlc0NoZWNrYm94XCIpfVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXhfU2lkZWJhclVzZXJTZXR0aW5nc1RhYl9jaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTZXR0aW5nc1N1YnNlY3Rpb25UZXh0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGYXZvcml0ZUljb24gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7X3QoXCJjb21tb258ZmF2b3VyaXRlc1wiKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvU2V0dGluZ3NTdWJzZWN0aW9uVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTZXR0aW5nc1N1YnNlY3Rpb25UZXh0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtfdChcInNldHRpbmdzfHNpZGViYXJ8bWV0YXNwYWNlc19mYXZvdXJpdGVzX2Rlc2NyaXB0aW9uXCIpfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9TZXR0aW5nc1N1YnNlY3Rpb25UZXh0PlxuICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZENoZWNrYm94PlxuXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRDaGVja2JveFxuICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tlZD17ISFwZW9wbGVFbmFibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e29uTWV0YVNwYWNlQ2hhbmdlRmFjdG9yeShNZXRhU3BhY2UuUGVvcGxlLCBcIldlYlNldHRpbmdzU2lkZWJhclRhYlNwYWNlc0NoZWNrYm94XCIpfVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXhfU2lkZWJhclVzZXJTZXR0aW5nc1RhYl9jaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxTZXR0aW5nc1N1YnNlY3Rpb25UZXh0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxNZW1iZXJzSWNvbiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtfdChcImNvbW1vbnxwZW9wbGVcIil9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1NldHRpbmdzU3Vic2VjdGlvblRleHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U2V0dGluZ3NTdWJzZWN0aW9uVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7X3QoXCJzZXR0aW5nc3xzaWRlYmFyfG1ldGFzcGFjZXNfcGVvcGxlX2Rlc2NyaXB0aW9uXCIpfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9TZXR0aW5nc1N1YnNlY3Rpb25UZXh0PlxuICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZENoZWNrYm94PlxuXG4gICAgICAgICAgICAgICAgICAgIDxTdHlsZWRDaGVja2JveFxuICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tlZD17ISFvcnBoYW5zRW5hYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtvbk1ldGFTcGFjZUNoYW5nZUZhY3RvcnkoTWV0YVNwYWNlLk9ycGhhbnMsIFwiV2ViU2V0dGluZ3NTaWRlYmFyVGFiU3BhY2VzQ2hlY2tib3hcIil9XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJteF9TaWRlYmFyVXNlclNldHRpbmdzVGFiX2NoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFNldHRpbmdzU3Vic2VjdGlvblRleHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEhhc2hDaXJjbGVJY29uIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge190KFwic2V0dGluZ3N8c2lkZWJhcnxtZXRhc3BhY2VzX29ycGhhbnNcIil9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1NldHRpbmdzU3Vic2VjdGlvblRleHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8U2V0dGluZ3NTdWJzZWN0aW9uVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7X3QoXCJzZXR0aW5nc3xzaWRlYmFyfG1ldGFzcGFjZXNfb3JwaGFuc19kZXNjcmlwdGlvblwiKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvU2V0dGluZ3NTdWJzZWN0aW9uVGV4dD5cbiAgICAgICAgICAgICAgICAgICAgPC9TdHlsZWRDaGVja2JveD5cbiAgICAgICAgICAgICAgICAgICAge1NldHRpbmdzU3RvcmUuZ2V0VmFsdWUoXCJmZWF0dXJlX3ZpZGVvX3Jvb21zXCIpICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxTdHlsZWRDaGVja2JveFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9eyEhdmlkZW9Sb29tc0VuYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9e29uTWV0YVNwYWNlQ2hhbmdlRmFjdG9yeShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWV0YVNwYWNlLlZpZGVvUm9vbXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiV2ViU2V0dGluZ3NTaWRlYmFyVGFiU3BhY2VzQ2hlY2tib3hcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm14X1NpZGViYXJVc2VyU2V0dGluZ3NUYWJfY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxTZXR0aW5nc1N1YnNlY3Rpb25UZXh0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2FtZXJhQ2lyY2xlIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtfdChcInNldHRpbmdzfHNpZGViYXJ8bWV0YXNwYWNlc192aWRlb19yb29tc1wiKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L1NldHRpbmdzU3Vic2VjdGlvblRleHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPFNldHRpbmdzU3Vic2VjdGlvblRleHQ+e2NvbmZlcmVuY2VTdWJzZWN0aW9uVGV4dH08L1NldHRpbmdzU3Vic2VjdGlvblRleHQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L1N0eWxlZENoZWNrYm94PlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIDwvU2V0dGluZ3NTdWJzZWN0aW9uPlxuICAgICAgICAgICAgPC9TZXR0aW5nc1NlY3Rpb24+XG4gICAgICAgIDwvU2V0dGluZ3NUYWI+XG4gICAgKTtcbn07XG5cbmV4cG9ydCBkZWZhdWx0IFNpZGViYXJVc2VyU2V0dGluZ3NUYWI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBUUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsZUFBQSxHQUFBQyxzQkFBQSxDQUFBRixPQUFBO0FBRUEsSUFBQUcsS0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksU0FBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssUUFBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sV0FBQSxHQUFBTixPQUFBO0FBQ0EsSUFBQU8sZ0JBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLGNBQUEsR0FBQU4sc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFTLGFBQUEsR0FBQVQsT0FBQTtBQUNBLElBQUFVLGVBQUEsR0FBQVIsc0JBQUEsQ0FBQUYsT0FBQTtBQUNBLElBQUFXLFlBQUEsR0FBQVgsT0FBQTtBQUNBLElBQUFZLE9BQUEsR0FBQVosT0FBQTtBQUNBLElBQUFhLGdCQUFBLEdBQUFYLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBYyxZQUFBLEdBQUFaLHNCQUFBLENBQUFGLE9BQUE7QUFDQSxJQUFBZSxnQkFBQSxHQUFBZixPQUFBO0FBQ0EsSUFBQWdCLG1CQUFBLEdBQUFqQix1QkFBQSxDQUFBQyxPQUFB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