matrix-react-sdk
Version:
SDK for matrix.org using React
118 lines (115 loc) • 20 kB
JavaScript
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.showAppDownloadDialogPrompt = exports.AppDownloadDialog = void 0;
var _react = _interopRequireDefault(require("react"));
var _fDroid = require("../../../../res/img/badges/f-droid.svg");
var _googlePlay = require("../../../../res/img/badges/google-play.svg");
var _ios = require("../../../../res/img/badges/ios.svg");
var _languageHandler = require("../../../languageHandler");
var _SdkConfig = _interopRequireDefault(require("../../../SdkConfig"));
var _AccessibleButton = _interopRequireDefault(require("../elements/AccessibleButton"));
var _QRCode = _interopRequireDefault(require("../elements/QRCode"));
var _Heading = _interopRequireDefault(require("../typography/Heading"));
var _BaseDialog = _interopRequireDefault(require("./BaseDialog"));
/*
Copyright 2024 New Vector Ltd.
Copyright 2022 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 showAppDownloadDialogPrompt = () => {
const desktopBuilds = _SdkConfig.default.getObject("desktop_builds");
const mobileBuilds = _SdkConfig.default.getObject("mobile_builds");
return !!desktopBuilds?.get("available") || !!mobileBuilds?.get("ios") || !!mobileBuilds?.get("android") || !!mobileBuilds?.get("fdroid");
};
exports.showAppDownloadDialogPrompt = showAppDownloadDialogPrompt;
const AppDownloadDialog = ({
onFinished
}) => {
const brand = _SdkConfig.default.get("brand");
const desktopBuilds = _SdkConfig.default.getObject("desktop_builds");
const mobileBuilds = _SdkConfig.default.getObject("mobile_builds");
const urlAppStore = mobileBuilds?.get("ios");
const urlGooglePlay = mobileBuilds?.get("android");
const urlFDroid = mobileBuilds?.get("fdroid");
const urlAndroid = urlGooglePlay ?? urlFDroid;
return /*#__PURE__*/_react.default.createElement(_BaseDialog.default, {
title: (0, _languageHandler._t)("onboarding|download_brand", {
brand
}),
className: "mx_AppDownloadDialog",
fixedWidth: true,
onFinished: onFinished
}, desktopBuilds?.get("available") && /*#__PURE__*/_react.default.createElement("div", {
className: "mx_AppDownloadDialog_desktop"
}, /*#__PURE__*/_react.default.createElement(_Heading.default, {
size: "3"
}, (0, _languageHandler._t)("onboarding|download_brand_desktop", {
brand
})), /*#__PURE__*/_react.default.createElement(_AccessibleButton.default, {
kind: "primary",
element: "a",
href: desktopBuilds?.get("url"),
target: "_blank",
onClick: () => {}
}, (0, _languageHandler._t)("onboarding|download_brand_desktop", {
brand
}))), /*#__PURE__*/_react.default.createElement("div", {
className: "mx_AppDownloadDialog_mobile"
}, urlAppStore && /*#__PURE__*/_react.default.createElement("div", {
className: "mx_AppDownloadDialog_app"
}, /*#__PURE__*/_react.default.createElement(_Heading.default, {
size: "3"
}, (0, _languageHandler._t)("common|ios")), /*#__PURE__*/_react.default.createElement(_QRCode.default, {
data: urlAppStore,
margin: 0,
width: 172
}), /*#__PURE__*/_react.default.createElement("div", {
className: "mx_AppDownloadDialog_info"
}, (0, _languageHandler._t)("onboarding|qr_or_app_links", {
appLinks: "",
qrCode: ""
})), /*#__PURE__*/_react.default.createElement("div", {
className: "mx_AppDownloadDialog_links"
}, /*#__PURE__*/_react.default.createElement(_AccessibleButton.default, {
element: "a",
href: urlAppStore,
target: "_blank",
"aria-label": (0, _languageHandler._t)("onboarding|download_app_store"),
onClick: () => {}
}, /*#__PURE__*/_react.default.createElement(_ios.Icon, null)))), urlAndroid && /*#__PURE__*/_react.default.createElement("div", {
className: "mx_AppDownloadDialog_app"
}, /*#__PURE__*/_react.default.createElement(_Heading.default, {
size: "3"
}, (0, _languageHandler._t)("common|android")), /*#__PURE__*/_react.default.createElement(_QRCode.default, {
data: urlAndroid,
margin: 0,
width: 172
}), /*#__PURE__*/_react.default.createElement("div", {
className: "mx_AppDownloadDialog_info"
}, (0, _languageHandler._t)("onboarding|qr_or_app_links", {
appLinks: "",
qrCode: ""
})), /*#__PURE__*/_react.default.createElement("div", {
className: "mx_AppDownloadDialog_links"
}, urlGooglePlay && /*#__PURE__*/_react.default.createElement(_AccessibleButton.default, {
element: "a",
href: urlGooglePlay,
target: "_blank",
"aria-label": (0, _languageHandler._t)("onboarding|download_google_play"),
onClick: () => {}
}, /*#__PURE__*/_react.default.createElement(_googlePlay.Icon, null)), urlFDroid && /*#__PURE__*/_react.default.createElement(_AccessibleButton.default, {
element: "a",
href: urlFDroid,
target: "_blank",
"aria-label": (0, _languageHandler._t)("onboarding|download_f_droid"),
onClick: () => {}
}, /*#__PURE__*/_react.default.createElement(_fDroid.Icon, null))))), /*#__PURE__*/_react.default.createElement("div", {
className: "mx_AppDownloadDialog_legal"
}, /*#__PURE__*/_react.default.createElement("p", null, (0, _languageHandler._t)("onboarding|apple_trademarks")), /*#__PURE__*/_react.default.createElement("p", null, (0, _languageHandler._t)("onboarding|google_trademarks"))));
};
exports.AppDownloadDialog = AppDownloadDialog;
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9mRHJvaWQiLCJfZ29vZ2xlUGxheSIsIl9pb3MiLCJfbGFuZ3VhZ2VIYW5kbGVyIiwiX1Nka0NvbmZpZyIsIl9BY2Nlc3NpYmxlQnV0dG9uIiwiX1FSQ29kZSIsIl9IZWFkaW5nIiwiX0Jhc2VEaWFsb2ciLCJzaG93QXBwRG93bmxvYWREaWFsb2dQcm9tcHQiLCJkZXNrdG9wQnVpbGRzIiwiU2RrQ29uZmlnIiwiZ2V0T2JqZWN0IiwibW9iaWxlQnVpbGRzIiwiZ2V0IiwiZXhwb3J0cyIsIkFwcERvd25sb2FkRGlhbG9nIiwib25GaW5pc2hlZCIsImJyYW5kIiwidXJsQXBwU3RvcmUiLCJ1cmxHb29nbGVQbGF5IiwidXJsRkRyb2lkIiwidXJsQW5kcm9pZCIsImRlZmF1bHQiLCJjcmVhdGVFbGVtZW50IiwidGl0bGUiLCJfdCIsImNsYXNzTmFtZSIsImZpeGVkV2lkdGgiLCJzaXplIiwia2luZCIsImVsZW1lbnQiLCJocmVmIiwidGFyZ2V0Iiwib25DbGljayIsImRhdGEiLCJtYXJnaW4iLCJ3aWR0aCIsImFwcExpbmtzIiwicXJDb2RlIiwiSWNvbiJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3ZpZXdzL2RpYWxvZ3MvQXBwRG93bmxvYWREaWFsb2cudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgMjAyNCBOZXcgVmVjdG9yIEx0ZC5cbkNvcHlyaWdodCAyMDIyIFRoZSBNYXRyaXgub3JnIEZvdW5kYXRpb24gQy5JLkMuXG5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBR1BMLTMuMC1vbmx5IE9SIEdQTC0zLjAtb25seVxuUGxlYXNlIHNlZSBMSUNFTlNFIGZpbGVzIGluIHRoZSByZXBvc2l0b3J5IHJvb3QgZm9yIGZ1bGwgZGV0YWlscy5cbiovXG5cbmltcG9ydCBSZWFjdCwgeyBGQyB9IGZyb20gXCJyZWFjdFwiO1xuXG5pbXBvcnQgeyBJY29uIGFzIEZEcm9pZEJhZGdlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3Jlcy9pbWcvYmFkZ2VzL2YtZHJvaWQuc3ZnXCI7XG5pbXBvcnQgeyBJY29uIGFzIEdvb2dsZVBsYXlCYWRnZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9yZXMvaW1nL2JhZGdlcy9nb29nbGUtcGxheS5zdmdcIjtcbmltcG9ydCB7IEljb24gYXMgSU9TQmFkZ2UgfSBmcm9tIFwiLi4vLi4vLi4vLi4vcmVzL2ltZy9iYWRnZXMvaW9zLnN2Z1wiO1xuaW1wb3J0IHsgX3QgfSBmcm9tIFwiLi4vLi4vLi4vbGFuZ3VhZ2VIYW5kbGVyXCI7XG5pbXBvcnQgU2RrQ29uZmlnIGZyb20gXCIuLi8uLi8uLi9TZGtDb25maWdcIjtcbmltcG9ydCBBY2Nlc3NpYmxlQnV0dG9uIGZyb20gXCIuLi9lbGVtZW50cy9BY2Nlc3NpYmxlQnV0dG9uXCI7XG5pbXBvcnQgUVJDb2RlIGZyb20gXCIuLi9lbGVtZW50cy9RUkNvZGVcIjtcbmltcG9ydCBIZWFkaW5nIGZyb20gXCIuLi90eXBvZ3JhcGh5L0hlYWRpbmdcIjtcbmltcG9ydCBCYXNlRGlhbG9nIGZyb20gXCIuL0Jhc2VEaWFsb2dcIjtcblxuaW50ZXJmYWNlIFByb3BzIHtcbiAgICBvbkZpbmlzaGVkKCk6IHZvaWQ7XG59XG5cbmV4cG9ydCBjb25zdCBzaG93QXBwRG93bmxvYWREaWFsb2dQcm9tcHQgPSAoKTogYm9vbGVhbiA9PiB7XG4gICAgY29uc3QgZGVza3RvcEJ1aWxkcyA9IFNka0NvbmZpZy5nZXRPYmplY3QoXCJkZXNrdG9wX2J1aWxkc1wiKTtcbiAgICBjb25zdCBtb2JpbGVCdWlsZHMgPSBTZGtDb25maWcuZ2V0T2JqZWN0KFwibW9iaWxlX2J1aWxkc1wiKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgICEhZGVza3RvcEJ1aWxkcz8uZ2V0KFwiYXZhaWxhYmxlXCIpIHx8XG4gICAgICAgICEhbW9iaWxlQnVpbGRzPy5nZXQoXCJpb3NcIikgfHxcbiAgICAgICAgISFtb2JpbGVCdWlsZHM/LmdldChcImFuZHJvaWRcIikgfHxcbiAgICAgICAgISFtb2JpbGVCdWlsZHM/LmdldChcImZkcm9pZFwiKVxuICAgICk7XG59O1xuXG5leHBvcnQgY29uc3QgQXBwRG93bmxvYWREaWFsb2c6IEZDPFByb3BzPiA9ICh7IG9uRmluaXNoZWQgfSkgPT4ge1xuICAgIGNvbnN0IGJyYW5kID0gU2RrQ29uZmlnLmdldChcImJyYW5kXCIpO1xuICAgIGNvbnN0IGRlc2t0b3BCdWlsZHMgPSBTZGtDb25maWcuZ2V0T2JqZWN0KFwiZGVza3RvcF9idWlsZHNcIik7XG4gICAgY29uc3QgbW9iaWxlQnVpbGRzID0gU2RrQ29uZmlnLmdldE9iamVjdChcIm1vYmlsZV9idWlsZHNcIik7XG5cbiAgICBjb25zdCB1cmxBcHBTdG9yZSA9IG1vYmlsZUJ1aWxkcz8uZ2V0KFwiaW9zXCIpO1xuXG4gICAgY29uc3QgdXJsR29vZ2xlUGxheSA9IG1vYmlsZUJ1aWxkcz8uZ2V0KFwiYW5kcm9pZFwiKTtcbiAgICBjb25zdCB1cmxGRHJvaWQgPSBtb2JpbGVCdWlsZHM/LmdldChcImZkcm9pZFwiKTtcbiAgICBjb25zdCB1cmxBbmRyb2lkID0gdXJsR29vZ2xlUGxheSA/PyB1cmxGRHJvaWQ7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8QmFzZURpYWxvZ1xuICAgICAgICAgICAgdGl0bGU9e190KFwib25ib2FyZGluZ3xkb3dubG9hZF9icmFuZFwiLCB7IGJyYW5kIH0pfVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwibXhfQXBwRG93bmxvYWREaWFsb2dcIlxuICAgICAgICAgICAgZml4ZWRXaWR0aFxuICAgICAgICAgICAgb25GaW5pc2hlZD17b25GaW5pc2hlZH1cbiAgICAgICAgPlxuICAgICAgICAgICAge2Rlc2t0b3BCdWlsZHM/LmdldChcImF2YWlsYWJsZVwiKSAmJiAoXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJteF9BcHBEb3dubG9hZERpYWxvZ19kZXNrdG9wXCI+XG4gICAgICAgICAgICAgICAgICAgIDxIZWFkaW5nIHNpemU9XCIzXCI+e190KFwib25ib2FyZGluZ3xkb3dubG9hZF9icmFuZF9kZXNrdG9wXCIsIHsgYnJhbmQgfSl9PC9IZWFkaW5nPlxuICAgICAgICAgICAgICAgICAgICA8QWNjZXNzaWJsZUJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAga2luZD1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudD1cImFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj17ZGVza3RvcEJ1aWxkcz8uZ2V0KFwidXJsXCIpfVxuICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHt9fVxuICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICB7X3QoXCJvbmJvYXJkaW5nfGRvd25sb2FkX2JyYW5kX2Rlc2t0b3BcIiwgeyBicmFuZCB9KX1cbiAgICAgICAgICAgICAgICAgICAgPC9BY2Nlc3NpYmxlQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXhfQXBwRG93bmxvYWREaWFsb2dfbW9iaWxlXCI+XG4gICAgICAgICAgICAgICAge3VybEFwcFN0b3JlICYmIChcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJteF9BcHBEb3dubG9hZERpYWxvZ19hcHBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxIZWFkaW5nIHNpemU9XCIzXCI+e190KFwiY29tbW9ufGlvc1wiKX08L0hlYWRpbmc+XG4gICAgICAgICAgICAgICAgICAgICAgICA8UVJDb2RlIGRhdGE9e3VybEFwcFN0b3JlfSBtYXJnaW49ezB9IHdpZHRoPXsxNzJ9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm14X0FwcERvd25sb2FkRGlhbG9nX2luZm9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7X3QoXCJvbmJvYXJkaW5nfHFyX29yX2FwcF9saW5rc1wiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcExpbmtzOiBcIlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxckNvZGU6IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXhfQXBwRG93bmxvYWREaWFsb2dfbGlua3NcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QWNjZXNzaWJsZUJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50PVwiYVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9e3VybEFwcFN0b3JlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXtfdChcIm9uYm9hcmRpbmd8ZG93bmxvYWRfYXBwX3N0b3JlXCIpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7fX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJT1NCYWRnZSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQWNjZXNzaWJsZUJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgIHt1cmxBbmRyb2lkICYmIChcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJteF9BcHBEb3dubG9hZERpYWxvZ19hcHBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxIZWFkaW5nIHNpemU9XCIzXCI+e190KFwiY29tbW9ufGFuZHJvaWRcIil9PC9IZWFkaW5nPlxuICAgICAgICAgICAgICAgICAgICAgICAgPFFSQ29kZSBkYXRhPXt1cmxBbmRyb2lkfSBtYXJnaW49ezB9IHdpZHRoPXsxNzJ9IC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm14X0FwcERvd25sb2FkRGlhbG9nX2luZm9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7X3QoXCJvbmJvYXJkaW5nfHFyX29yX2FwcF9saW5rc1wiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcExpbmtzOiBcIlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxckNvZGU6IFwiXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXhfQXBwRG93bmxvYWREaWFsb2dfbGlua3NcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7dXJsR29vZ2xlUGxheSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBY2Nlc3NpYmxlQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGVtZW50PVwiYVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBocmVmPXt1cmxHb29nbGVQbGF5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e190KFwib25ib2FyZGluZ3xkb3dubG9hZF9nb29nbGVfcGxheVwiKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHt9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8R29vZ2xlUGxheUJhZGdlIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQWNjZXNzaWJsZUJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt1cmxGRHJvaWQgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QWNjZXNzaWJsZUJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWxlbWVudD1cImFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj17dXJsRkRyb2lkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e190KFwib25ib2FyZGluZ3xkb3dubG9hZF9mX2Ryb2lkXCIpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge319XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGRHJvaWRCYWRnZSAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0FjY2Vzc2libGVCdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm14X0FwcERvd25sb2FkRGlhbG9nX2xlZ2FsXCI+XG4gICAgICAgICAgICAgICAgPHA+e190KFwib25ib2FyZGluZ3xhcHBsZV90cmFkZW1hcmtzXCIpfTwvcD5cbiAgICAgICAgICAgICAgICA8cD57X3QoXCJvbmJvYXJkaW5nfGdvb2dsZV90cmFkZW1hcmtzXCIpfTwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L0Jhc2VEaWFsb2c+XG4gICAgKTtcbn07XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFRQSxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFFQSxJQUFBQyxPQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxXQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxJQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxnQkFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssVUFBQSxHQUFBTixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU0saUJBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLE9BQUEsR0FBQVIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFRLFFBQUEsR0FBQVQsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFTLFdBQUEsR0FBQVYsc0JBQUEsQ0FBQUMsT0FBQTtBQWxCQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFrQk8sTUFBTVUsMkJBQTJCLEdBQUdBLENBQUEsS0FBZTtFQUN0RCxNQUFNQyxhQUFhLEdBQUdDLGtCQUFTLENBQUNDLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQztFQUMzRCxNQUFNQyxZQUFZLEdBQUdGLGtCQUFTLENBQUNDLFNBQVMsQ0FBQyxlQUFlLENBQUM7RUFFekQsT0FDSSxDQUFDLENBQUNGLGFBQWEsRUFBRUksR0FBRyxDQUFD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