UNPKG

kepler.gl.geoiq

Version:

kepler.gl is a webgl based application to visualize large scale location data in the browser

469 lines (351 loc) 39.5 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.StyledMapContainer = exports.StyledModalContent = exports.Table = exports.DatasetSquare = exports.ButtonGroup = exports.StyledPanelDropdown = exports.StyledPanelHeader = exports.InlineInput = exports.InputLight = exports.Input = exports.Button = exports.Tooltip = exports.SidePanelDivider = exports.SidePanelSection = exports.PanelContent = exports.PanelHeaderContent = exports.PanelHeaderTitle = exports.PanelLabelBold = exports.PanelLabelWrapper = exports.PanelLabel = exports.CenterFlexbox = exports.IconRoundSmall = exports.SelectTextBold = exports.SelectText = void 0; var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral")); var _styledComponents = _interopRequireDefault(require("styled-components")); var _reactTooltip = _interopRequireDefault(require("react-tooltip")); function _templateObject24() { var data = (0, _taggedTemplateLiteral2["default"])(["\n .mapboxgl-map .mapboxgl-missing-css {\n display: none;\n }\n"]); _templateObject24 = function _templateObject24() { return data; }; return data; } function _templateObject23() { var data = (0, _taggedTemplateLiteral2["default"])(["\n background: ", ";\n color: ", ";\n display: flex;\n flex-direction: row;\n font-size: 10px;\n margin: 0 -96px;\n padding: 30px 96px;\n justify-content: space-between;\n"]); _templateObject23 = function _templateObject23() { return data; }; return data; } function _templateObject22() { var data = (0, _taggedTemplateLiteral2["default"])(["\n width: 100%;\n border-spacing: 0;\n\n thead {\n tr th {\n background: ", ";\n color: ", ";\n padding: 18px 12px;\n text-align: start;\n }\n }\n\n tbody {\n tr td {\n border-bottom: ", ";\n padding: 12px;\n }\n }\n"]); _templateObject22 = function _templateObject22() { return data; }; return data; } function _templateObject21() { var data = (0, _taggedTemplateLiteral2["default"])(["\n display: inline-block;\n width: 8px;\n height: 8px;\n background-color: rgb(", ");\n margin-right: 12px;\n"]); _templateObject21 = function _templateObject21() { return data; }; return data; } function _templateObject20() { var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n .button {\n border-radius: 0;\n margin-left: 2px;\n }\n .button:first-child {\n border-bottom-left-radius: ", ";\n border-top-left-radius: ", ";\n margin-left: 0;\n }\n .button:last-child {\n border-bottom-right-radius: ", ";\n border-top-right-radius: ", ";\n }\n"]); _templateObject20 = function _templateObject20() { return data; }; return data; } function _templateObject19() { var data = (0, _taggedTemplateLiteral2["default"])(["\n ", "\n background-color: ", ";\n overflow-y: auto;\n box-shadow: ", ";\n border-radius: ", ";\n margin-top: 2px;\n max-height: 500px;\n position: relative;\n z-index: 999;\n"]); _templateObject19 = function _templateObject19() { return data; }; return data; } function _templateObject18() { var data = (0, _taggedTemplateLiteral2["default"])(["\n background-color: ", ";\n border-left: 3px solid\n rgb(\n ", "\n );\n padding: 0 10px 0 0;\n height: ", "px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n transition: ", ";\n"]); _templateObject18 = function _templateObject18() { return data; }; return data; } function _templateObject17() { var data = (0, _taggedTemplateLiteral2["default"])(["\n ", ";\n"]); _templateObject17 = function _templateObject17() { return data; }; return data; } function _templateObject16() { var data = (0, _taggedTemplateLiteral2["default"])(["\n ", "\n"]); _templateObject16 = function _templateObject16() { return data; }; return data; } function _templateObject15() { var data = (0, _taggedTemplateLiteral2["default"])(["\n ", ";\n"]); _templateObject15 = function _templateObject15() { return data; }; return data; } function _templateObject14() { var data = (0, _taggedTemplateLiteral2["default"])(["\n align-items: center;\n background-color: ", ";\n border-radius: ", ";\n color: ", ";\n cursor: pointer;\n display: inline-flex;\n font-size: ", ";\n font-weight: 500;\n justify-content: center;\n letter-spacing: 0.3px;\n line-height: 14px;\n outline: 0;\n padding: ", ";\n text-align: center;\n transition: ", ";\n vertical-align: middle;\n width: ", ";\n opacity: ", ";\n pointer-events: ", ";\n margin: ", ";\n\n :hover,\n :focus,\n :active,\n &.active {\n background-color: ", ";\n color: ", ";\n }\n\n svg {\n margin-right: 8px;\n }\n"]); _templateObject14 = function _templateObject14() { return data; }; return data; } function _templateObject13() { var data = (0, _taggedTemplateLiteral2["default"])(["\n &.__react_component_tooltip {\n font-size: 9.5px;\n font-weight: 500;\n padding: 7px 18px;\n\n &.type-dark {\n background-color: ", ";\n color: ", ";\n &.place-bottom {\n :after {\n border-bottom-color: ", ";\n }\n }\n\n &.place-top {\n :after {\n border-top-color: ", ";\n }\n }\n\n &.place-right {\n :after {\n border-right-color: ", ";\n }\n }\n\n &.place-left {\n :after {\n border-left-color: ", ";\n }\n }\n }\n }\n"]); _templateObject13 = function _templateObject13() { return data; }; return data; } function _templateObject12() { var data = (0, _taggedTemplateLiteral2["default"])(["\n border-bottom: 1px solid ", ";\n height: 12px;\n margin-bottom: 12px;\n"]); _templateObject12 = function _templateObject12() { return data; }; return data; } function _templateObject11() { var data = (0, _taggedTemplateLiteral2["default"])(["\n margin-bottom: 12px;\n opacity: ", ";\n pointer-events: ", ";\n"]); _templateObject11 = function _templateObject11() { return data; }; return data; } function _templateObject10() { var data = (0, _taggedTemplateLiteral2["default"])(["\n background-color: ", ";\n padding: 12px;\n"]); _templateObject10 = function _templateObject10() { return data; }; return data; } function _templateObject9() { var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n color: ", ";\n padding-left: 12px;\n\n .icon {\n color: ", ";\n display: flex;\n align-items: center;\n margin-right: 12px;\n }\n"]); _templateObject9 = function _templateObject9() { return data; }; return data; } function _templateObject8() { var data = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-size: 13px;\n letter-spacing: 0.43px;\n text-transform: capitalize;\n"]); _templateObject8 = function _templateObject8() { return data; }; return data; } function _templateObject7() { var data = (0, _taggedTemplateLiteral2["default"])(["\n font-weight: 500;\n"]); _templateObject7 = function _templateObject7() { return data; }; return data; } function _templateObject6() { var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: self-start;\n"]); _templateObject6 = function _templateObject6() { return data; }; return data; } function _templateObject5() { var data = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n display: inline-block;\n font-size: 11px;\n font-weight: 400;\n margin-bottom: 4px;\n text-transform: capitalize;\n"]); _templateObject5 = function _templateObject5() { return data; }; return data; } function _templateObject4() { var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n align-items: center;\n"]); _templateObject4 = function _templateObject4() { return data; }; return data; } function _templateObject3() { var data = (0, _taggedTemplateLiteral2["default"])(["\n display: flex;\n width: 18px;\n height: 18px;\n border-radius: 9px;\n background-color: ", "; // updated after checking sketch file\n color: ", ";\n align-items: center;\n justify-content: center;\n\n :hover {\n cursor: pointer;\n background-color: ", ";\n }\n"]); _templateObject3 = function _templateObject3() { return data; }; return data; } function _templateObject2() { var data = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-weight: 500;\n"]); _templateObject2 = function _templateObject2() { return data; }; return data; } function _templateObject() { var data = (0, _taggedTemplateLiteral2["default"])(["\n color: ", ";\n font-size: ", ";\n font-weight: 400;\n\n i {\n font-size: 13px;\n margin-right: 6px;\n }\n"]); _templateObject = function _templateObject() { return data; }; return data; } var SelectText = _styledComponents["default"].span(_templateObject(), function (props) { return props.theme.labelColor; }, function (props) { return props.theme.selectFontSize; }); exports.SelectText = SelectText; var SelectTextBold = SelectText.extend(_templateObject2(), function (props) { return props.theme.textColor; }); exports.SelectTextBold = SelectTextBold; var IconRoundSmall = _styledComponents["default"].div(_templateObject3(), function (props) { return props.theme.secondaryBtnBgdHover; }, function (props) { return props.theme.secondaryBtnColor; }, function (props) { return props.theme.secondaryBtnBgdHover; }); exports.IconRoundSmall = IconRoundSmall; var CenterFlexbox = _styledComponents["default"].div(_templateObject4()); exports.CenterFlexbox = CenterFlexbox; var PanelLabel = _styledComponents["default"].label.attrs({ className: 'side-panel-panel__label' })(_templateObject5(), function (props) { return props.theme.labelColor; }); exports.PanelLabel = PanelLabel; var PanelLabelWrapper = _styledComponents["default"].div.attrs({ className: 'side-panel-panel__label-wrapper' })(_templateObject6()); exports.PanelLabelWrapper = PanelLabelWrapper; var PanelLabelBold = PanelLabel.extend(_templateObject7()); exports.PanelLabelBold = PanelLabelBold; var PanelHeaderTitle = _styledComponents["default"].span.attrs({ className: 'side-panel-panel__header__title' })(_templateObject8(), function (props) { return props.theme.textColor; }); exports.PanelHeaderTitle = PanelHeaderTitle; var PanelHeaderContent = _styledComponents["default"].div(_templateObject9(), function (props) { return props.theme.textColor; }, function (props) { return props.theme.labelColor; }); exports.PanelHeaderContent = PanelHeaderContent; var PanelContent = _styledComponents["default"].div.attrs({ className: 'side-panel-panel__content' })(_templateObject10(), function (props) { return props.theme.panelBackground; }); exports.PanelContent = PanelContent; var SidePanelSection = _styledComponents["default"].div.attrs({ className: 'side-panel-section' })(_templateObject11(), function (props) { return props.disabled ? 0.4 : 1; }, function (props) { return props.disabled ? 'none' : 'all'; }); exports.SidePanelSection = SidePanelSection; var SidePanelDivider = _styledComponents["default"].div.attrs({ className: 'side-panel-divider' })(_templateObject12(), function (props) { return props.theme.panelBorderColor; }); exports.SidePanelDivider = SidePanelDivider; var Tooltip = (0, _styledComponents["default"])(_reactTooltip["default"])(_templateObject13(), function (props) { return props.theme.tooltipBg; }, function (props) { return props.theme.tooltipColor; }, function (props) { return props.theme.tooltipBg; }, function (props) { return props.theme.tooltipBg; }, function (props) { return props.theme.tooltipBg; }, function (props) { return props.theme.tooltipBg; }); exports.Tooltip = Tooltip; var Button = _styledComponents["default"].div.attrs({ className: 'button' })(_templateObject14(), function (props) { return props.negative ? props.theme.negativeBtnBgd : props.secondary ? props.theme.secondaryBtnBgd : props.link ? props.theme.linkBtnBgd : props.theme.primaryBtnBgd; }, function (props) { return props.theme.primaryBtnRadius; }, function (props) { return props.negative ? props.theme.negativeBtnColor : props.secondary ? props.theme.secondaryBtnColor : props.link ? props.theme.linkBtnColor : props.theme.primaryBtnColor; }, function (props) { return props.large ? '14px' : props.small ? '10px' : '11px'; }, function (props) { return props.large ? '14px 32px' : props.small ? '6px 9px' : '9px 12px'; }, function (props) { return props.theme.transition; }, function (props) { return props.width || 'auto'; }, function (props) { return props.disabled ? 0.4 : 1; }, function (props) { return props.disabled ? 'none' : 'all'; }, function (props) { return props.margin ? '0px 0px 0px 16px' : '0px'; }, function (props) { return props.negative ? props.theme.negativeBtnBgdHover : props.secondary ? props.theme.secondaryBtnBgdHover : props.link ? props.theme.linkBtnActBgdHover : props.theme.primaryBtnBgdHover; }, function (props) { return props.negative ? props.theme.negativeBtnActColor : props.secondary ? props.theme.secondaryBtnActColor : props.link ? props.theme.linkBtnActColor : props.theme.primaryBtnActColor; }); exports.Button = Button; var Input = _styledComponents["default"].input(_templateObject15(), function (props) { return props.secondary ? props.theme.secondaryInput : props.theme.input; }); exports.Input = Input; var InputLight = _styledComponents["default"].input(_templateObject16(), function (props) { return props.theme.inputLT; }); exports.InputLight = InputLight; var InlineInput = Input.extend(_templateObject17(), function (props) { return props.theme.inlineInput; }); exports.InlineInput = InlineInput; var StyledPanelHeader = _styledComponents["default"].div(_templateObject18(), function (props) { return props.active ? props.theme.panelBackgroundHover : props.theme.panelBackground; }, function (props) { return props.labelRCGColorValues ? props.labelRCGColorValues.join(',') : 'transparent'; }, function (props) { return props.theme.panelHeaderHeight; }, function (props) { return props.theme.transition; }); exports.StyledPanelHeader = StyledPanelHeader; var StyledPanelDropdown = _styledComponents["default"].div(_templateObject19(), function (props) { return props.theme.panelDropdownScrollBar; }, function (props) { return props.theme.panelBackground; }, function (props) { return props.theme.panelBoxShadow; }, function (props) { return props.theme.panelBorderRadius; }); exports.StyledPanelDropdown = StyledPanelDropdown; var ButtonGroup = _styledComponents["default"].div(_templateObject20(), function (props) { return props.theme.primaryBtnRadius; }, function (props) { return props.theme.primaryBtnRadius; }, function (props) { return props.theme.primaryBtnRadius; }, function (props) { return props.theme.primaryBtnRadius; }); exports.ButtonGroup = ButtonGroup; var DatasetSquare = _styledComponents["default"].div(_templateObject21(), function (props) { return props.color.join(','); }); exports.DatasetSquare = DatasetSquare; var Table = _styledComponents["default"].table(_templateObject22(), function (props) { return props.theme.panelBackgroundLT; }, function (props) { return props.theme.titleColorLT; }, function (props) { return props.theme.panelBorderLT; }); exports.Table = Table; var StyledModalContent = _styledComponents["default"].div(_templateObject23(), function (props) { return props.theme.panelBackgroundLT; }, function (props) { return props.theme.textColorLT; }); /** * Newer versions of mapbox.gl display an error message banner on top of the map by default * which will cause the map to display points in the wrong locations * This workaround will hide the error banner. */ exports.StyledModalContent = StyledModalContent; var StyledMapContainer = _styledComponents["default"].div(_templateObject24()); exports.StyledMapContainer = StyledMapContainer; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2NvbW1vbi9zdHlsZWQtY29tcG9uZW50cy5qcyJdLCJuYW1lcyI6WyJTZWxlY3RUZXh0Iiwic3R5bGVkIiwic3BhbiIsInByb3BzIiwidGhlbWUiLCJsYWJlbENvbG9yIiwic2VsZWN0Rm9udFNpemUiLCJTZWxlY3RUZXh0Qm9sZCIsImV4dGVuZCIsInRleHRDb2xvciIsIkljb25Sb3VuZFNtYWxsIiwiZGl2Iiwic2Vjb25kYXJ5QnRuQmdkSG92ZXIiLCJzZWNvbmRhcnlCdG5Db2xvciIsIkNlbnRlckZsZXhib3giLCJQYW5lbExhYmVsIiwibGFiZWwiLCJhdHRycyIsImNsYXNzTmFtZSIsIlBhbmVsTGFiZWxXcmFwcGVyIiwiUGFuZWxMYWJlbEJvbGQiLCJQYW5lbEhlYWRlclRpdGxlIiwiUGFuZWxIZWFkZXJDb250ZW50IiwiUGFuZWxDb250ZW50IiwicGFuZWxCYWNrZ3JvdW5kIiwiU2lkZVBhbmVsU2VjdGlvbiIsImRpc2FibGVkIiwiU2lkZVBhbmVsRGl2aWRlciIsInBhbmVsQm9yZGVyQ29sb3IiLCJUb29sdGlwIiwiUmVhY3RUb29sdGlwIiwidG9vbHRpcEJnIiwidG9vbHRpcENvbG9yIiwiQnV0dG9uIiwibmVnYXRpdmUiLCJuZWdhdGl2ZUJ0bkJnZCIsInNlY29uZGFyeSIsInNlY29uZGFyeUJ0bkJnZCIsImxpbmsiLCJsaW5rQnRuQmdkIiwicHJpbWFyeUJ0bkJnZCIsInByaW1hcnlCdG5SYWRpdXMiLCJuZWdhdGl2ZUJ0bkNvbG9yIiwibGlua0J0bkNvbG9yIiwicHJpbWFyeUJ0bkNvbG9yIiwibGFyZ2UiLCJzbWFsbCIsInRyYW5zaXRpb24iLCJ3aWR0aCIsIm1hcmdpbiIsIm5lZ2F0aXZlQnRuQmdkSG92ZXIiLCJsaW5rQnRuQWN0QmdkSG92ZXIiLCJwcmltYXJ5QnRuQmdkSG92ZXIiLCJuZWdhdGl2ZUJ0bkFjdENvbG9yIiwic2Vjb25kYXJ5QnRuQWN0Q29sb3IiLCJsaW5rQnRuQWN0Q29sb3IiLCJwcmltYXJ5QnRuQWN0Q29sb3IiLCJJbnB1dCIsImlucHV0Iiwic2Vjb25kYXJ5SW5wdXQiLCJJbnB1dExpZ2h0IiwiaW5wdXRMVCIsIklubGluZUlucHV0IiwiaW5saW5lSW5wdXQiLCJTdHlsZWRQYW5lbEhlYWRlciIsImFjdGl2ZSIsInBhbmVsQmFja2dyb3VuZEhvdmVyIiwibGFiZWxSQ0dDb2xvclZhbHVlcyIsImpvaW4iLCJwYW5lbEhlYWRlckhlaWdodCIsIlN0eWxlZFBhbmVsRHJvcGRvd24iLCJwYW5lbERyb3Bkb3duU2Nyb2xsQmFyIiwicGFuZWxCb3hTaGFkb3ciLCJwYW5lbEJvcmRlclJhZGl1cyIsIkJ1dHRvbkdyb3VwIiwiRGF0YXNldFNxdWFyZSIsImNvbG9yIiwiVGFibGUiLCJ0YWJsZSIsInBhbmVsQmFja2dyb3VuZExUIiwidGl0bGVDb2xvckxUIiwicGFuZWxCb3JkZXJMVCIsIlN0eWxlZE1vZGFsQ29udGVudCIsInRleHRDb2xvckxUIiwiU3R5bGVkTWFwQ29udGFpbmVyIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7OztBQW9CQTs7QUFDQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFTyxJQUFNQSxVQUFVLEdBQUdDLDZCQUFPQyxJQUFWLG9CQUNaLFVBQUFDLEtBQUs7QUFBQSxTQUFJQSxLQUFLLENBQUNDLEtBQU4sQ0FBWUMsVUFBaEI7QUFBQSxDQURPLEVBRVIsVUFBQUYsS0FBSztBQUFBLFNBQUlBLEtBQUssQ0FBQ0MsS0FBTixDQUFZRSxjQUFoQjtBQUFBLENBRkcsQ0FBaEI7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VixzQkFJQSxVQUFBUixLQUFLO0FBQUEsU0FBSUEsS0FBSyxDQUFDeUUsS0FBTixDQUFZUixJQUFaLENBQWlCLEdBQWpCLENBQUo7QUFBQSxDQUpMLENBQW5COzs7O0FBUUEsSUFBTVMsS0FBSyxHQUFHNUUsNkJBQU82RSxLQUFWLHNCQU1FLFVBQUEzRSxLQUFLO0FBQUEsU0FBSUEsS0FBSyxDQUFDQyxLQUFOLENBQVkyRSxpQkFBaEI7QUFBQSxDQU5QLEVBT0gsVUFBQTVFLEtBQUs7QUFBQSxTQUFJQSxLQUFLLENBQUNDLEtBQU4sQ0FBWTRFLFlBQWhCO0FBQUEsQ0FQRixFQWVLLFVBQUE3RSxLQUFLO0FBQUEsU0FBSUEsS0FBSyxDQUFDQyxLQUFOLENBQVk2RSxhQUFoQjtBQUFBLENBZlYsQ0FBWDs7OztBQXFCQSxJQUFNQyxrQkFBa0IsR0FBR2pGLDZCQUFPVSxHQUFWLHNCQUNmLFVBQUFSLEtBQUs7QUFBQSxTQUFJQSxLQUFLLENBQUNDLEtBQU4sQ0FBWTJFLGlCQUFoQjtBQUFBLENBRFUsRUFFcEIsVUFBQTVFLEtBQUs7QUFBQSxTQUFJQSxLQUFLLENBQUNDLEtBQU4sQ0FBWStFLFdBQWhCO0FBQUEsQ0FGZSxDQUF4QjtBQVdQOzs7Ozs7Ozs7QUFLTyxJQUFNQyxrQkFBa0IsR0FBR25GLDZCQUFPVSxHQUFWLHFCQUF4QiIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAxOSBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBzdHlsZWQgZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnO1xuaW1wb3J0IFJlYWN0VG9vbHRpcCBmcm9tICdyZWFjdC10b29sdGlwJztcblxuZXhwb3J0IGNvbnN0IFNlbGVjdFRleHQgPSBzdHlsZWQuc3BhbmBcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubGFiZWxDb2xvcn07XG4gIGZvbnQtc2l6ZTogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zZWxlY3RGb250U2l6ZX07XG4gIGZvbnQtd2VpZ2h0OiA0MDA7XG5cbiAgaSB7XG4gICAgZm9udC1zaXplOiAxM3B4O1xuICAgIG1hcmdpbi1yaWdodDogNnB4O1xuICB9XG5gO1xuXG5leHBvcnQgY29uc3QgU2VsZWN0VGV4dEJvbGQgPSBTZWxlY3RUZXh0LmV4dGVuZGBcbiAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudGV4dENvbG9yfTtcbiAgZm9udC13ZWlnaHQ6IDUwMDtcbmA7XG5cbmV4cG9ydCBjb25zdCBJY29uUm91bmRTbWFsbCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAxOHB4O1xuICBoZWlnaHQ6IDE4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDlweDtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PlxuICAgIHByb3BzLnRoZW1lLnNlY29uZGFyeUJ0bkJnZEhvdmVyfTsgLy8gdXBkYXRlZCBhZnRlciBjaGVja2luZyBza2V0Y2ggZmlsZVxuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5zZWNvbmRhcnlCdG5Db2xvcn07XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuXG4gIDpob3ZlciB7XG4gICAgY3Vyc29yOiBwb2ludGVyO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUuc2Vjb25kYXJ5QnRuQmdkSG92ZXJ9O1xuICB9XG5gO1xuXG5leHBvcnQgY29uc3QgQ2VudGVyRmxleGJveCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gO1xuXG5leHBvcnQgY29uc3QgUGFuZWxMYWJlbCA9IHN0eWxlZC5sYWJlbC5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ3NpZGUtcGFuZWwtcGFuZWxfX2xhYmVsJ1xufSlgXG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLmxhYmVsQ29sb3J9O1xuICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG4gIGZvbnQtc2l6ZTogMTFweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbWFyZ2luLWJvdHRvbTogNHB4O1xuICB0ZXh0LXRyYW5zZm9ybTogY2FwaXRhbGl6ZTtcbmA7XG5cbmV4cG9ydCBjb25zdCBQYW5lbExhYmVsV3JhcHBlciA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICdzaWRlLXBhbmVsLXBhbmVsX19sYWJlbC13cmFwcGVyJ1xufSlgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBzZWxmLXN0YXJ0O1xuYDtcblxuZXhwb3J0IGNvbnN0IFBhbmVsTGFiZWxCb2xkID0gUGFuZWxMYWJlbC5leHRlbmRgXG4gIGZvbnQtd2VpZ2h0OiA1MDA7XG5gO1xuXG5leHBvcnQgY29uc3QgUGFuZWxIZWFkZXJUaXRsZSA9IHN0eWxlZC5zcGFuLmF0dHJzKHtcbiAgY2xhc3NOYW1lOiAnc2lkZS1wYW5lbC1wYW5lbF9faGVhZGVyX190aXRsZSdcbn0pYFxuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3J9O1xuICBmb250LXNpemU6IDEzcHg7XG4gIGxldHRlci1zcGFjaW5nOiAwLjQzcHg7XG4gIHRleHQtdHJhbnNmb3JtOiBjYXBpdGFsaXplO1xuYDtcblxuZXhwb3J0IGNvbnN0IFBhbmVsSGVhZGVyQ29udGVudCA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRleHRDb2xvcn07XG4gIHBhZGRpbmctbGVmdDogMTJweDtcblxuICAuaWNvbiB7XG4gICAgY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUubGFiZWxDb2xvcn07XG4gICAgZGlzcGxheTogZmxleDtcbiAgICBhbGlnbi1pdGVtczogY2VudGVyO1xuICAgIG1hcmdpbi1yaWdodDogMTJweDtcbiAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IFBhbmVsQ29udGVudCA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICdzaWRlLXBhbmVsLXBhbmVsX19jb250ZW50J1xufSlgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUucGFuZWxCYWNrZ3JvdW5kfTtcbiAgcGFkZGluZzogMTJweDtcbmA7XG5cbmV4cG9ydCBjb25zdCBTaWRlUGFuZWxTZWN0aW9uID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ3NpZGUtcGFuZWwtc2VjdGlvbidcbn0pYFxuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuICBvcGFjaXR5OiAke3Byb3BzID0+IChwcm9wcy5kaXNhYmxlZCA/IDAuNCA6IDEpfTtcbiAgcG9pbnRlci1ldmVudHM6ICR7cHJvcHMgPT4gKHByb3BzLmRpc2FibGVkID8gJ25vbmUnIDogJ2FsbCcpfTtcbmA7XG5cbmV4cG9ydCBjb25zdCBTaWRlUGFuZWxEaXZpZGVyID0gc3R5bGVkLmRpdi5hdHRycyh7XG4gIGNsYXNzTmFtZTogJ3NpZGUtcGFuZWwtZGl2aWRlcidcbn0pYFxuICBib3JkZXItYm90dG9tOiAxcHggc29saWQgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5wYW5lbEJvcmRlckNvbG9yfTtcbiAgaGVpZ2h0OiAxMnB4O1xuICBtYXJnaW4tYm90dG9tOiAxMnB4O1xuYDtcblxuZXhwb3J0IGNvbnN0IFRvb2x0aXAgPSBzdHlsZWQoUmVhY3RUb29sdGlwKWBcbiAgJi5fX3JlYWN0X2NvbXBvbmVudF90b29sdGlwIHtcbiAgICBmb250LXNpemU6IDkuNXB4O1xuICAgIGZvbnQtd2VpZ2h0OiA1MDA7XG4gICAgcGFkZGluZzogN3B4IDE4cHg7XG5cbiAgICAmLnR5cGUtZGFyayB7XG4gICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnRvb2x0aXBCZ307XG4gICAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50b29sdGlwQ29sb3J9O1xuICAgICAgJi5wbGFjZS1ib3R0b20ge1xuICAgICAgICA6YWZ0ZXIge1xuICAgICAgICAgIGJvcmRlci1ib3R0b20tY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudG9vbHRpcEJnfTtcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICAmLnBsYWNlLXRvcCB7XG4gICAgICAgIDphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLXRvcC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50b29sdGlwQmd9O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYucGxhY2UtcmlnaHQge1xuICAgICAgICA6YWZ0ZXIge1xuICAgICAgICAgIGJvcmRlci1yaWdodC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50b29sdGlwQmd9O1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgICYucGxhY2UtbGVmdCB7XG4gICAgICAgIDphZnRlciB7XG4gICAgICAgICAgYm9yZGVyLWxlZnQtY29sb3I6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudG9vbHRpcEJnfTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IEJ1dHRvbiA9IHN0eWxlZC5kaXYuYXR0cnMoe1xuICBjbGFzc05hbWU6ICdidXR0b24nXG59KWBcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PlxuICAgIHByb3BzLm5lZ2F0aXZlXG4gICAgICA/IHByb3BzLnRoZW1lLm5lZ2F0aXZlQnRuQmdkXG4gICAgICA6IHByb3BzLnNlY29uZGFyeVxuICAgICAgPyBwcm9wcy50aGVtZS5zZWNvbmRhcnlCdG5CZ2RcbiAgICAgIDogcHJvcHMubGlua1xuICAgICAgPyBwcm9wcy50aGVtZS5saW5rQnRuQmdkXG4gICAgICA6IHByb3BzLnRoZW1lLnByaW1hcnlCdG5CZ2R9O1xuICBib3JkZXItcmFkaXVzOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnByaW1hcnlCdG5SYWRpdXN9O1xuICBjb2xvcjogJHtwcm9wcyA9PlxuICAgIHByb3BzLm5lZ2F0aXZlXG4gICAgICA/IHByb3BzLnRoZW1lLm5lZ2F0aXZlQnRuQ29sb3JcbiAgICAgIDogcHJvcHMuc2Vjb25kYXJ5XG4gICAgICA/IHByb3BzLnRoZW1lLnNlY29uZGFyeUJ0bkNvbG9yXG4gICAgICA6IHByb3BzLmxpbmtcbiAgICAgID8gcHJvcHMudGhlbWUubGlua0J0bkNvbG9yXG4gICAgICA6IHByb3BzLnRoZW1lLnByaW1hcnlCdG5Db2xvcn07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG4gIGZvbnQtc2l6ZTogJHtwcm9wcyA9PiAocHJvcHMubGFyZ2UgPyAnMTRweCcgOiBwcm9wcy5zbWFsbCA/ICcxMHB4JyA6ICcxMXB4Jyl9O1xuICBmb250LXdlaWdodDogNTAwO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgbGV0dGVyLXNwYWNpbmc6IDAuM3B4O1xuICBsaW5lLWhlaWdodDogMTRweDtcbiAgb3V0bGluZTogMDtcbiAgcGFkZGluZzogJHtwcm9wcyA9PlxuICAgIHByb3BzLmxhcmdlID8gJzE0cHggMzJweCcgOiBwcm9wcy5zbWFsbCA/ICc2cHggOXB4JyA6ICc5cHggMTJweCd9O1xuICB0ZXh0LWFsaWduOiBjZW50ZXI7XG4gIHRyYW5zaXRpb246ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudHJhbnNpdGlvbn07XG4gIHZlcnRpY2FsLWFsaWduOiBtaWRkbGU7XG4gIHdpZHRoOiAke3Byb3BzID0+IHByb3BzLndpZHRoIHx8ICdhdXRvJ307XG4gIG9wYWNpdHk6ICR7cHJvcHMgPT4gKHByb3BzLmRpc2FibGVkID8gMC40IDogMSl9O1xuICBwb2ludGVyLWV2ZW50czogJHtwcm9wcyA9PiAocHJvcHMuZGlzYWJsZWQgPyAnbm9uZScgOiAnYWxsJyl9O1xuICBtYXJnaW46ICR7cHJvcHMgPT4gKHByb3BzLm1hcmdpbiA/ICcwcHggMHB4IDBweCAxNnB4JyA6ICcwcHgnKX07XG5cbiAgOmhvdmVyLFxuICA6Zm9jdXMsXG4gIDphY3RpdmUsXG4gICYuYWN0aXZlIHtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAke3Byb3BzID0+XG4gICAgICBwcm9wcy5uZWdhdGl2ZVxuICAgICAgICA/IHByb3BzLnRoZW1lLm5lZ2F0aXZlQnRuQmdkSG92ZXJcbiAgICAgICAgOiBwcm9wcy5zZWNvbmRhcnlcbiAgICAgICAgPyBwcm9wcy50aGVtZS5zZWNvbmRhcnlCdG5CZ2RIb3ZlclxuICAgICAgICA6IHByb3BzLmxpbmtcbiAgICAgICAgPyBwcm9wcy50aGVtZS5saW5rQnRuQWN0QmdkSG92ZXJcbiAgICAgICAgOiBwcm9wcy50aGVtZS5wcmltYXJ5QnRuQmdkSG92ZXJ9O1xuICAgIGNvbG9yOiAke3Byb3BzID0+XG4gICAgICBwcm9wcy5uZWdhdGl2ZVxuICAgICAgICA/IHByb3BzLnRoZW1lLm5lZ2F0aXZlQnRuQWN0Q29sb3JcbiAgICAgICAgOiBwcm9wcy5zZWNvbmRhcnlcbiAgICAgICAgPyBwcm9wcy50aGVtZS5zZWNvbmRhcnlCdG5BY3RDb2xvclxuICAgICAgICA6IHByb3BzLmxpbmtcbiAgICAgICAgPyBwcm9wcy50aGVtZS5saW5rQnRuQWN0Q29sb3JcbiAgICAgICAgOiBwcm9wcy50aGVtZS5wcmltYXJ5QnRuQWN0Q29sb3J9O1xuICB9XG5cbiAgc3ZnIHtcbiAgICBtYXJnaW4tcmlnaHQ6IDhweDtcbiAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IElucHV0ID0gc3R5bGVkLmlucHV0YFxuICAke3Byb3BzID0+XG4gICAgcHJvcHMuc2Vjb25kYXJ5ID8gcHJvcHMudGhlbWUuc2Vjb25kYXJ5SW5wdXQgOiBwcm9wcy50aGVtZS5pbnB1dH07XG5gO1xuXG5leHBvcnQgY29uc3QgSW5wdXRMaWdodCA9IHN0eWxlZC5pbnB1dGBcbiAgJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5pbnB1dExUfVxuYDtcblxuZXhwb3J0IGNvbnN0IElubGluZUlucHV0ID0gSW5wdXQuZXh0ZW5kYFxuICAke3Byb3BzID0+IHByb3BzLnRoZW1lLmlubGluZUlucHV0fTtcbmA7XG5cbmV4cG9ydCBjb25zdCBTdHlsZWRQYW5lbEhlYWRlciA9IHN0eWxlZC5kaXZgXG4gIGJhY2tncm91bmQtY29sb3I6ICR7cHJvcHMgPT5cbiAgICBwcm9wcy5hY3RpdmVcbiAgICAgID8gcHJvcHMudGhlbWUucGFuZWxCYWNrZ3JvdW5kSG92ZXJcbiAgICAgIDogcHJvcHMudGhlbWUucGFuZWxCYWNrZ3JvdW5kfTtcbiAgYm9yZGVyLWxlZnQ6IDNweCBzb2xpZFxuICAgIHJnYihcbiAgICAgICR7cHJvcHMgPT5cbiAgICAgICAgcHJvcHMubGFiZWxSQ0dDb2xvclZhbHVlc1xuICAgICAgICAgID8gcHJvcHMubGFiZWxSQ0dDb2xvclZhbHVlcy5qb2luKCcsJylcbiAgICAgICAgICA6ICd0cmFuc3BhcmVudCd9XG4gICAgKTtcbiAgcGFkZGluZzogMCAxMHB4IDAgMDtcbiAgaGVpZ2h0OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBhbmVsSGVhZGVySGVpZ2h0fXB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHNwYWNlLWJldHdlZW47XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIHRyYW5zaXRpb246ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUudHJhbnNpdGlvbn07XG5gO1xuXG5leHBvcnQgY29uc3QgU3R5bGVkUGFuZWxEcm9wZG93biA9IHN0eWxlZC5kaXZgXG4gICR7cHJvcHMgPT4gcHJvcHMudGhlbWUucGFuZWxEcm9wZG93blNjcm9sbEJhcn1cbiAgYmFja2dyb3VuZC1jb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5wYW5lbEJhY2tncm91bmR9O1xuICBvdmVyZmxvdy15OiBhdXRvO1xuICBib3gtc2hhZG93OiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnBhbmVsQm94U2hhZG93fTtcbiAgYm9yZGVyLXJhZGl1czogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5wYW5lbEJvcmRlclJhZGl1c307XG4gIG1hcmdpbi10b3A6IDJweDtcbiAgbWF4LWhlaWdodDogNTAwcHg7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgei1pbmRleDogOTk5O1xuYDtcblxuZXhwb3J0IGNvbnN0IEJ1dHRvbkdyb3VwID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgLmJ1dHRvbiB7XG4gICAgYm9yZGVyLXJhZGl1czogMDtcbiAgICBtYXJnaW4tbGVmdDogMnB4O1xuICB9XG4gIC5idXR0b246Zmlyc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b20tbGVmdC1yYWRpdXM6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUucHJpbWFyeUJ0blJhZGl1c307XG4gICAgYm9yZGVyLXRvcC1sZWZ0LXJhZGl1czogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5wcmltYXJ5QnRuUmFkaXVzfTtcbiAgICBtYXJnaW4tbGVmdDogMDtcbiAgfVxuICAuYnV0dG9uOmxhc3QtY2hpbGQge1xuICAgIGJvcmRlci1ib3R0b20tcmlnaHQtcmFkaXVzOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnByaW1hcnlCdG5SYWRpdXN9O1xuICAgIGJvcmRlci10b3AtcmlnaHQtcmFkaXVzOiAke3Byb3BzID0+IHByb3BzLnRoZW1lLnByaW1hcnlCdG5SYWRpdXN9O1xuICB9XG5gO1xuXG5leHBvcnQgY29uc3QgRGF0YXNldFNxdWFyZSA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgd2lkdGg6IDhweDtcbiAgaGVpZ2h0OiA4cHg7XG4gIGJhY2tncm91bmQtY29sb3I6IHJnYigke3Byb3BzID0+IHByb3BzLmNvbG9yLmpvaW4oJywnKX0pO1xuICBtYXJnaW4tcmlnaHQ6IDEycHg7XG5gO1xuXG5leHBvcnQgY29uc3QgVGFibGUgPSBzdHlsZWQudGFibGVgXG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItc3BhY2luZzogMDtcblxuICB0aGVhZCB7XG4gICAgdHIgdGgge1xuICAgICAgYmFja2dyb3VuZDogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS5wYW5lbEJhY2tncm91bmRMVH07XG4gICAgICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50aXRsZUNvbG9yTFR9O1xuICAgICAgcGFkZGluZzogMThweCAxMnB4O1xuICAgICAgdGV4dC1hbGlnbjogc3RhcnQ7XG4gICAgfVxuICB9XG5cbiAgdGJvZHkge1xuICAgIHRyIHRkIHtcbiAgICAgIGJvcmRlci1ib3R0b206ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUucGFuZWxCb3JkZXJMVH07XG4gICAgICBwYWRkaW5nOiAxMnB4O1xuICAgIH1cbiAgfVxuYDtcblxuZXhwb3J0IGNvbnN0IFN0eWxlZE1vZGFsQ29udGVudCA9IHN0eWxlZC5kaXZgXG4gIGJhY2tncm91bmQ6ICR7cHJvcHMgPT4gcHJvcHMudGhlbWUucGFuZWxCYWNrZ3JvdW5kTFR9O1xuICBjb2xvcjogJHtwcm9wcyA9PiBwcm9wcy50aGVtZS50ZXh0Q29sb3JMVH07XG4gIGRpc3BsYXk6IGZsZXg7XG4gIGZsZXgtZGlyZWN0aW9uOiByb3c7XG4gIGZvbnQtc2l6ZTogMTBweDtcbiAgbWFyZ2luOiAwIC05NnB4O1xuICBwYWRkaW5nOiAzMHB4IDk2cHg7XG4gIGp1c3RpZnktY29udGVudDogc3BhY2UtYmV0d2VlbjtcbmA7XG5cbi8qKlxuICogTmV3ZXIgdmVyc2lvbnMgb2YgbWFwYm94LmdsIGRpc3BsYXkgYW4gZXJyb3IgbWVzc2FnZSBiYW5uZXIgb24gdG9wIG9mIHRoZSBtYXAgYnkgZGVmYXVsdFxuICogd2hpY2ggd2lsbCBjYXVzZSB0aGUgbWFwIHRvIGRpc3BsYXkgcG9pbnRzIGluIHRoZSB3cm9uZyBsb2NhdGlvbnNcbiAqIFRoaXMgd29ya2Fyb3VuZCB3aWxsIGhpZGUgdGhlIGVycm9yIGJhbm5lci5cbiAqL1xuZXhwb3J0IGNvbnN0IFN0eWxlZE1hcENvbnRhaW5lciA9IHN0eWxlZC5kaXZgXG4gIC5tYXBib3hnbC1tYXAgLm1hcGJveGdsLW1pc3NpbmctY3NzIHtcbiAgICBkaXNwbGF5OiBub25lO1xuICB9XG5gO1xuIl19