UNPKG

tc-ui-toolkit

Version:

React components used to develop tools for the desktop app translationCore

211 lines (179 loc) 20.8 kB
"use strict"; var _interopRequireWildcard = require("@babel/runtime/helpers/interopRequireWildcard"); var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports["default"] = void 0; var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")); var _react = _interopRequireDefault(require("react")); var _propTypes = _interopRequireWildcard(require("prop-types")); var _styles = require("@material-ui/core/styles"); var _Dialog = _interopRequireDefault(require("@material-ui/core/Dialog")); var _DialogTitle = _interopRequireDefault(require("@material-ui/core/DialogTitle")); var _DialogActions = _interopRequireDefault(require("@material-ui/core/DialogActions")); var _DialogContent = _interopRequireDefault(require("@material-ui/core/DialogContent")); var _Toolbar = _interopRequireDefault(require("@material-ui/core/Toolbar")); var _reactBootstrap = require("react-bootstrap"); var _Paper = _interopRequireDefault(require("@material-ui/core/Paper")); var _reactDraggable = _interopRequireDefault(require("react-draggable")); var _MyTargetVerse = _interopRequireDefault(require("../MyTargetVerse")); require("./MyLanguageModal.styles.css"); var _fontUtils = require("../../common/fontUtils"); function PaperComponent(props) { // component will only be draggable by element with the className in the handle prop return /*#__PURE__*/_react["default"].createElement(_reactDraggable["default"], { handle: ".my-language-modal-draggable-handle" }, /*#__PURE__*/_react["default"].createElement(_Paper["default"], (0, _extends2["default"])({}, props, { elevation: 2 }))); } var styles = { paperRoot: { margin: '0px' } }; var MyLanguageModal = function MyLanguageModal(_ref) { var show = _ref.show, onHide = _ref.onHide, chapter = _ref.chapter, classes = _ref.classes, bookName = _ref.bookName, fontSize = _ref.fontSize, translate = _ref.translate, targetBible = _ref.targetBible, currentVerse = _ref.currentVerse, languageDirection = _ref.languageDirection, targetLanguageFont = _ref.targetLanguageFont; function scrollToCurrentVerse() { var verseReference = 'MyTargetVerse:' + chapter.toString() + currentVerse.toString(); var element = document.getElementById(verseReference); if (element) { element.scrollIntoView(); } } var title = bookName; var MyTargetLanguage = []; var targetLanguageFontClassName = (0, _fontUtils.getFontClassName)(targetLanguageFont); var contentStyle = { padding: '0px', height: '500px', overflowY: 'auto', backgroundColor: 'var(--reverse-color)' }; if (fontSize) { contentStyle.fontSize = fontSize; } if (show) { for (var key in targetBible[chapter]) { if (targetBible[chapter].hasOwnProperty(key)) { var verseText = targetBible[chapter][key]; var versePaneStyle = {}; if (key == currentVerse) { if (key % 2 == 0) { versePaneStyle = { borderLeft: '6px solid var(--accent-color)', backgroundColor: 'var(--background-color-light)', marginTop: '10px', color: 'var(--text-color-dark)', padding: '10px' }; } else { versePaneStyle = { borderLeft: '6px solid var(--accent-color)', marginTop: '10px', color: 'var(--text-color-dark)', padding: '10px' }; } } else if (key % 2 == 0) { versePaneStyle = { backgroundColor: 'var(--background-color-light)', marginTop: '10px', color: 'var(--text-color-dark)', padding: '10px' }; } else { versePaneStyle = { marginTop: '10px', color: 'var(--text-color-dark)', padding: '10px' }; } MyTargetLanguage.push( /*#__PURE__*/_react["default"].createElement("div", { key: key, id: 'MyTargetVerse:' + chapter.toString() + key.toString() }, /*#__PURE__*/_react["default"].createElement(_MyTargetVerse["default"], { chapter: chapter, verse: key, verseText: verseText, styles: versePaneStyle, dir: languageDirection, targetLanguageFontClassName: targetLanguageFontClassName }))); } } } return /*#__PURE__*/_react["default"].createElement(_Dialog["default"], { onEntered: scrollToCurrentVerse, maxWidth: 'md', fullWidth: true, open: show, onClose: onHide, PaperComponent: PaperComponent, PaperProps: { className: classes.paperRoot } }, /*#__PURE__*/_react["default"].createElement(_Toolbar["default"], { className: "my-language-modal-draggable-handle", disableGutters: true, style: { display: 'flex', justifyContent: 'flex-end', backgroundColor: 'var(--accent-color-dark)', cursor: 'move' } }, /*#__PURE__*/_react["default"].createElement(_DialogTitle["default"], { disableTypography: true, className: "verse-check-modal-title" }, /*#__PURE__*/_react["default"].createElement("h4", { style: { color: 'var(--reverse-color)' }, className: targetLanguageFontClassName }, title), /*#__PURE__*/_react["default"].createElement(_reactBootstrap.Glyphicon, { onClick: onHide, glyph: 'remove', style: { position: 'absolute', right: 0, margin: 24, color: 'var(--reverse-color)', cursor: 'pointer', fontSize: '18px' } }))), /*#__PURE__*/_react["default"].createElement(_DialogContent["default"], { style: contentStyle }, MyTargetLanguage), /*#__PURE__*/_react["default"].createElement(_DialogActions["default"], { disableSpacing: true }, /*#__PURE__*/_react["default"].createElement("button", { className: "btn-prime", onClick: onHide }, translate('close')))); }; MyLanguageModal.propTypes = { show: _propTypes["default"].bool.isRequired, onHide: _propTypes["default"].func.isRequired, targetBible: _propTypes["default"].object.isRequired, chapter: _propTypes["default"].number.isRequired, currentVerse: (0, _propTypes.oneOfType)([_propTypes["default"].string, _propTypes["default"].number]).isRequired, languageDirection: _propTypes["default"].string.isRequired, translate: _propTypes["default"].func.isRequired, classes: _propTypes["default"].object.isRequired, bookName: _propTypes["default"].string.isRequired, targetLanguageFont: _propTypes["default"].string, fontSize: _propTypes["default"].string }; var _default = (0, _styles.withStyles)(styles)(MyLanguageModal); exports["default"] = _default; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9WZXJzZUNoZWNrL015TGFuZ3VhZ2VNb2RhbC9pbmRleC5qcyJdLCJuYW1lcyI6WyJQYXBlckNvbXBvbmVudCIsInByb3BzIiwic3R5bGVzIiwicGFwZXJSb290IiwibWFyZ2luIiwiTXlMYW5ndWFnZU1vZGFsIiwic2hvdyIsIm9uSGlkZSIsImNoYXB0ZXIiLCJjbGFzc2VzIiwiYm9va05hbWUiLCJmb250U2l6ZSIsInRyYW5zbGF0ZSIsInRhcmdldEJpYmxlIiwiY3VycmVudFZlcnNlIiwibGFuZ3VhZ2VEaXJlY3Rpb24iLCJ0YXJnZXRMYW5ndWFnZUZvbnQiLCJzY3JvbGxUb0N1cnJlbnRWZXJzZSIsInZlcnNlUmVmZXJlbmNlIiwidG9TdHJpbmciLCJlbGVtZW50IiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsInNjcm9sbEludG9WaWV3IiwidGl0bGUiLCJNeVRhcmdldExhbmd1YWdlIiwidGFyZ2V0TGFuZ3VhZ2VGb250Q2xhc3NOYW1lIiwiY29udGVudFN0eWxlIiwicGFkZGluZyIsImhlaWdodCIsIm92ZXJmbG93WSIsImJhY2tncm91bmRDb2xvciIsImtleSIsImhhc093blByb3BlcnR5IiwidmVyc2VUZXh0IiwidmVyc2VQYW5lU3R5bGUiLCJib3JkZXJMZWZ0IiwibWFyZ2luVG9wIiwiY29sb3IiLCJwdXNoIiwiY2xhc3NOYW1lIiwiZGlzcGxheSIsImp1c3RpZnlDb250ZW50IiwiY3Vyc29yIiwicG9zaXRpb24iLCJyaWdodCIsInByb3BUeXBlcyIsIlByb3BUeXBlcyIsImJvb2wiLCJpc1JlcXVpcmVkIiwiZnVuYyIsIm9iamVjdCIsIm51bWJlciIsInN0cmluZyJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUFBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUNBOztBQUVBOztBQUNBOztBQUVBLFNBQVNBLGNBQVQsQ0FBd0JDLEtBQXhC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QjtBQUMxQnhDLEVBQUFBLElBQUksRUFBRXlDLHNCQUFVQyxJQUFWLENBQWVDLFVBREs7QUFFMUIxQyxFQUFBQSxNQUFNLEVBQUV3QyxzQkFBVUcsSUFBVixDQUFlRCxVQUZHO0FBRzFCcEMsRUFBQUEsV0FBVyxFQUFFa0Msc0JBQVVJLE1BQVYsQ0FBaUJGLFVBSEo7QUFJMUJ6QyxFQUFBQSxPQUFPLEVBQUV1QyxzQkFBVUssTUFBVixDQUFpQkgsVUFKQTtBQUsxQm5DLEVBQUFBLFlBQVksRUFBRSwwQkFBVSxDQUN0QmlDLHNCQUFVTSxNQURZLEVBRXRCTixzQkFBVUssTUFGWSxDQUFWLEVBR1hILFVBUnVCO0FBUzFCbEMsRUFBQUEsaUJBQWlCLEVBQUVnQyxzQkFBVU0sTUFBVixDQUFpQkosVUFUVjtBQVUxQnJDLEVBQUFBLFNBQVMsRUFBRW1DLHNCQUFVRyxJQUFWLENBQWVELFVBVkE7QUFXMUJ4QyxFQUFBQSxPQUFPLEVBQUVzQyxzQkFBVUksTUFBVixDQUFpQkYsVUFYQTtBQVkxQnZDLEVBQUFBLFFBQVEsRUFBRXFDLHNCQUFVTSxNQUFWLENBQWlCSixVQVpEO0FBYTFCakMsRUFBQUEsa0JBQWtCLEVBQUUrQixzQkFBVU0sTUFiSjtBQWMxQjFDLEVBQUFBLFFBQVEsRUFBRW9DLHNCQUFVTTtBQWRNLENBQTVCOztlQWlCZSx3QkFBV25ELE1BQVgsRUFBbUJHLGVBQW5CLEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcywgeyBvbmVPZlR5cGUgfSBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7IHdpdGhTdHlsZXMgfSBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9zdHlsZXMnO1xuaW1wb3J0IERpYWxvZyBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9EaWFsb2cnO1xuaW1wb3J0IERpYWxvZ1RpdGxlIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL0RpYWxvZ1RpdGxlJztcbmltcG9ydCBEaWFsb2dBY3Rpb25zIGZyb20gJ0BtYXRlcmlhbC11aS9jb3JlL0RpYWxvZ0FjdGlvbnMnO1xuaW1wb3J0IERpYWxvZ0NvbnRlbnQgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvRGlhbG9nQ29udGVudCc7XG5pbXBvcnQgVG9vbGJhciBmcm9tICdAbWF0ZXJpYWwtdWkvY29yZS9Ub29sYmFyJztcbmltcG9ydCB7IEdseXBoaWNvbiB9IGZyb20gJ3JlYWN0LWJvb3RzdHJhcCc7XG5pbXBvcnQgUGFwZXIgZnJvbSAnQG1hdGVyaWFsLXVpL2NvcmUvUGFwZXInO1xuaW1wb3J0IERyYWdnYWJsZSBmcm9tICdyZWFjdC1kcmFnZ2FibGUnO1xuaW1wb3J0IE15VGFyZ2V0VmVyc2UgZnJvbSAnLi4vTXlUYXJnZXRWZXJzZSc7XG5cbmltcG9ydCAnLi9NeUxhbmd1YWdlTW9kYWwuc3R5bGVzLmNzcyc7XG5pbXBvcnQgeyBnZXRGb250Q2xhc3NOYW1lIH0gZnJvbSAnLi4vLi4vY29tbW9uL2ZvbnRVdGlscyc7XG5cbmZ1bmN0aW9uIFBhcGVyQ29tcG9uZW50KHByb3BzKSB7XG4gIC8vIGNvbXBvbmVudCB3aWxsIG9ubHkgYmUgZHJhZ2dhYmxlIGJ5IGVsZW1lbnQgd2l0aCB0aGUgY2xhc3NOYW1lIGluIHRoZSBoYW5kbGUgcHJvcFxuICByZXR1cm4gKFxuICAgIDxEcmFnZ2FibGUgaGFuZGxlPVwiLm15LWxhbmd1YWdlLW1vZGFsLWRyYWdnYWJsZS1oYW5kbGVcIj5cbiAgICAgIDxQYXBlciB7Li4ucHJvcHN9IGVsZXZhdGlvbj17Mn0gLz5cbiAgICA8L0RyYWdnYWJsZT5cbiAgKTtcbn1cblxuY29uc3Qgc3R5bGVzID0geyBwYXBlclJvb3Q6IHsgbWFyZ2luOiAnMHB4JyB9IH07XG5cbmNvbnN0IE15TGFuZ3VhZ2VNb2RhbCA9ICh7XG4gIHNob3csXG4gIG9uSGlkZSxcbiAgY2hhcHRlcixcbiAgY2xhc3NlcyxcbiAgYm9va05hbWUsXG4gIGZvbnRTaXplLFxuICB0cmFuc2xhdGUsXG4gIHRhcmdldEJpYmxlLFxuICBjdXJyZW50VmVyc2UsXG4gIGxhbmd1YWdlRGlyZWN0aW9uLFxuICB0YXJnZXRMYW5ndWFnZUZvbnQsXG59KSA9PiB7XG4gIGZ1bmN0aW9uIHNjcm9sbFRvQ3VycmVudFZlcnNlKCkge1xuICAgIGxldCB2ZXJzZVJlZmVyZW5jZSA9ICdNeVRhcmdldFZlcnNlOicgKyBjaGFwdGVyLnRvU3RyaW5nKCkgKyBjdXJyZW50VmVyc2UudG9TdHJpbmcoKTtcbiAgICBsZXQgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHZlcnNlUmVmZXJlbmNlKTtcblxuICAgIGlmIChlbGVtZW50KSB7XG4gICAgICBlbGVtZW50LnNjcm9sbEludG9WaWV3KCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgdGl0bGUgPSBib29rTmFtZTtcbiAgbGV0IE15VGFyZ2V0TGFuZ3VhZ2UgPSBbXTtcbiAgY29uc3QgdGFyZ2V0TGFuZ3VhZ2VGb250Q2xhc3NOYW1lID0gZ2V0Rm9udENsYXNzTmFtZSh0YXJnZXRMYW5ndWFnZUZvbnQpO1xuICBjb25zdCBjb250ZW50U3R5bGUgPSB7XG4gICAgcGFkZGluZzogJzBweCcsXG4gICAgaGVpZ2h0OiAnNTAwcHgnLFxuICAgIG92ZXJmbG93WTogJ2F1dG8nLFxuICAgIGJhY2tncm91bmRDb2xvcjogJ3ZhcigtLXJldmVyc2UtY29sb3IpJyxcbiAgfTtcblxuICBpZiAoZm9udFNpemUpIHtcbiAgICBjb250ZW50U3R5bGUuZm9udFNpemUgPSBmb250U2l6ZTtcbiAgfVxuXG4gIGlmIChzaG93KSB7XG4gICAgZm9yIChsZXQga2V5IGluIHRhcmdldEJpYmxlW2NoYXB0ZXJdKSB7XG4gICAgICBpZiAodGFyZ2V0QmlibGVbY2hhcHRlcl0uaGFzT3duUHJvcGVydHkoa2V5KSkge1xuICAgICAgICBsZXQgdmVyc2VUZXh0ID0gdGFyZ2V0QmlibGVbY2hhcHRlcl1ba2V5XTtcbiAgICAgICAgbGV0IHZlcnNlUGFuZVN0eWxlID0ge307XG5cbiAgICAgICAgaWYgKGtleSA9PSBjdXJyZW50VmVyc2UpIHtcbiAgICAgICAgICBpZiAoa2V5ICUgMiA9PSAwKSB7XG4gICAgICAgICAgICB2ZXJzZVBhbmVTdHlsZSA9IHtcbiAgICAgICAgICAgICAgYm9yZGVyTGVmdDogJzZweCBzb2xpZCB2YXIoLS1hY2NlbnQtY29sb3IpJywgYmFja2dyb3VuZENvbG9yOiAndmFyKC0tYmFja2dyb3VuZC1jb2xvci1saWdodCknLCBtYXJnaW5Ub3A6ICcxMHB4JywgY29sb3I6ICd2YXIoLS10ZXh0LWNvbG9yLWRhcmspJywgcGFkZGluZzogJzEwcHgnLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdmVyc2VQYW5lU3R5bGUgPSB7XG4gICAgICAgICAgICAgIGJvcmRlckxlZnQ6ICc2cHggc29saWQgdmFyKC0tYWNjZW50LWNvbG9yKScsIG1hcmdpblRvcDogJzEwcHgnLCBjb2xvcjogJ3ZhcigtLXRleHQtY29sb3ItZGFyayknLCBwYWRkaW5nOiAnMTBweCcsXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIGlmIChrZXkgJSAyID09IDApIHtcbiAgICAgICAgICB2ZXJzZVBhbmVTdHlsZSA9IHtcbiAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3ZhcigtLWJhY2tncm91bmQtY29sb3ItbGlnaHQpJywgbWFyZ2luVG9wOiAnMTBweCcsIGNvbG9yOiAndmFyKC0tdGV4dC1jb2xvci1kYXJrKScsIHBhZGRpbmc6ICcxMHB4JyxcbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZlcnNlUGFuZVN0eWxlID0ge1xuICAgICAgICAgICAgbWFyZ2luVG9wOiAnMTBweCcsIGNvbG9yOiAndmFyKC0tdGV4dC1jb2xvci1kYXJrKScsIHBhZGRpbmc6ICcxMHB4JyxcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIE15VGFyZ2V0TGFuZ3VhZ2UucHVzaChcbiAgICAgICAgICA8ZGl2IGtleT17a2V5fSBpZD17J015VGFyZ2V0VmVyc2U6JyArIGNoYXB0ZXIudG9TdHJpbmcoKSArIGtleS50b1N0cmluZygpfT5cbiAgICAgICAgICAgIDxNeVRhcmdldFZlcnNlXG4gICAgICAgICAgICAgIGNoYXB0ZXI9e2NoYXB0ZXJ9XG4gICAgICAgICAgICAgIHZlcnNlPXtrZXl9XG4gICAgICAgICAgICAgIHZlcnNlVGV4dD17dmVyc2VUZXh0fVxuICAgICAgICAgICAgICBzdHlsZXM9e3ZlcnNlUGFuZVN0eWxlfVxuICAgICAgICAgICAgICBkaXI9e2xhbmd1YWdlRGlyZWN0aW9ufVxuICAgICAgICAgICAgICB0YXJnZXRMYW5ndWFnZUZvbnRDbGFzc05hbWU9e3RhcmdldExhbmd1YWdlRm9udENsYXNzTmFtZX1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+LFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPERpYWxvZ1xuICAgICAgb25FbnRlcmVkPXtzY3JvbGxUb0N1cnJlbnRWZXJzZX1cbiAgICAgIG1heFdpZHRoPXsnbWQnfVxuICAgICAgZnVsbFdpZHRoPXt0cnVlfVxuICAgICAgb3Blbj17c2hvd31cbiAgICAgIG9uQ2xvc2U9e29uSGlkZX1cbiAgICAgIFBhcGVyQ29tcG9uZW50PXtQYXBlckNvbXBvbmVudH1cbiAgICAgIFBhcGVyUHJvcHM9e3sgY2xhc3NOYW1lOiBjbGFzc2VzLnBhcGVyUm9vdCB9fVxuICAgID5cbiAgICAgIDxUb29sYmFyXG4gICAgICAgIGNsYXNzTmFtZT1cIm15LWxhbmd1YWdlLW1vZGFsLWRyYWdnYWJsZS1oYW5kbGVcIlxuICAgICAgICBkaXNhYmxlR3V0dGVycz17dHJ1ZX1cbiAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsIGp1c3RpZnlDb250ZW50OiAnZmxleC1lbmQnLCBiYWNrZ3JvdW5kQ29sb3I6ICd2YXIoLS1hY2NlbnQtY29sb3ItZGFyayknLCBjdXJzb3I6ICdtb3ZlJyxcbiAgICAgICAgfX1cbiAgICAgID5cbiAgICAgICAgPERpYWxvZ1RpdGxlIGRpc2FibGVUeXBvZ3JhcGh5PXt0cnVlfSBjbGFzc05hbWU9J3ZlcnNlLWNoZWNrLW1vZGFsLXRpdGxlJz5cbiAgICAgICAgICA8aDQgc3R5bGU9e3sgY29sb3I6ICd2YXIoLS1yZXZlcnNlLWNvbG9yKScgfX0gY2xhc3NOYW1lPXt0YXJnZXRMYW5ndWFnZUZvbnRDbGFzc05hbWV9PlxuICAgICAgICAgICAge3RpdGxlfVxuICAgICAgICAgIDwvaDQ+XG4gICAgICAgICAgPEdseXBoaWNvblxuICAgICAgICAgICAgb25DbGljaz17b25IaWRlfVxuICAgICAgICAgICAgZ2x5cGg9eydyZW1vdmUnfVxuICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgcG9zaXRpb246J2Fic29sdXRlJywgcmlnaHQ6IDAsIG1hcmdpbjogMjQsIGNvbG9yOiAndmFyKC0tcmV2ZXJzZS1jb2xvciknLCBjdXJzb3I6ICdwb2ludGVyJywgZm9udFNpemU6ICcxOHB4JyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9EaWFsb2dUaXRsZT5cbiAgICAgIDwvVG9vbGJhcj5cbiAgICAgIDxEaWFsb2dDb250ZW50IHN0eWxlPXtjb250ZW50U3R5bGV9PlxuICAgICAgICB7TXlUYXJnZXRMYW5ndWFnZX1cbiAgICAgIDwvRGlhbG9nQ29udGVudD5cbiAgICAgIDxEaWFsb2dBY3Rpb25zIGRpc2FibGVTcGFjaW5nPXt0cnVlfT5cbiAgICAgICAgPGJ1dHRvbiBjbGFzc05hbWU9J2J0bi1wcmltZScgb25DbGljaz17b25IaWRlfT57dHJhbnNsYXRlKCdjbG9zZScpfTwvYnV0dG9uPlxuICAgICAgPC9EaWFsb2dBY3Rpb25zPlxuICAgIDwvRGlhbG9nPlxuICApO1xufTtcblxuTXlMYW5ndWFnZU1vZGFsLnByb3BUeXBlcyA9IHtcbiAgc2hvdzogUHJvcFR5cGVzLmJvb2wuaXNSZXF1aXJlZCxcbiAgb25IaWRlOiBQcm9wVHlwZXMuZnVuYy5pc1JlcXVpcmVkLFxuICB0YXJnZXRCaWJsZTogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBjaGFwdGVyOiBQcm9wVHlwZXMubnVtYmVyLmlzUmVxdWlyZWQsXG4gIGN1cnJlbnRWZXJzZTogb25lT2ZUeXBlKFtcbiAgICBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIFByb3BUeXBlcy5udW1iZXIsXG4gIF0pLmlzUmVxdWlyZWQsXG4gIGxhbmd1YWdlRGlyZWN0aW9uOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gIHRyYW5zbGF0ZTogUHJvcFR5cGVzLmZ1bmMuaXNSZXF1aXJlZCxcbiAgY2xhc3NlczogUHJvcFR5cGVzLm9iamVjdC5pc1JlcXVpcmVkLFxuICBib29rTmFtZTogUHJvcFR5cGVzLnN0cmluZy5pc1JlcXVpcmVkLFxuICB0YXJnZXRMYW5ndWFnZUZvbnQ6IFByb3BUeXBlcy5zdHJpbmcsXG4gIGZvbnRTaXplOiBQcm9wVHlwZXMuc3RyaW5nLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgd2l0aFN0eWxlcyhzdHlsZXMpKE15TGFuZ3VhZ2VNb2RhbCk7XG4iXX0=