UNPKG

kepler.gl

Version:

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

147 lines (119 loc) 15.3 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 _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck")); var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass")); var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn")); var _getPrototypeOf3 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf")); var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized")); var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits")); var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty")); var _react = _interopRequireWildcard(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _reactIntl = require("react-intl"); var _styledComponents = require("../../common/styled-components"); var _fieldSelector = _interopRequireDefault(require("../../common/field-selector")); var _infoHelper = _interopRequireDefault(require("../../common/info-helper")); var _dimensionScaleSelector = _interopRequireDefault(require("./dimension-scale-selector")); var _utils = require("../../../utils/utils"); // Copyright (c) 2020 Uber Technologies, Inc. // // Permission is hereby granted, free of charge, to any person obtaining a copy // of this software and associated documentation files (the "Software"), to deal // in the Software without restriction, including without limitation the rights // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell // copies of the Software, and to permit persons to whom the Software is // furnished to do so, subject to the following conditions: // // The above copyright notice and this permission notice shall be included in // all copies or substantial portions of the Software. // // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN // THE SOFTWARE. var VisConfigByFieldSelector = /*#__PURE__*/ function (_Component) { (0, _inherits2["default"])(VisConfigByFieldSelector, _Component); function VisConfigByFieldSelector() { var _getPrototypeOf2; var _this; (0, _classCallCheck2["default"])(this, VisConfigByFieldSelector); for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { args[_key] = arguments[_key]; } _this = (0, _possibleConstructorReturn2["default"])(this, (_getPrototypeOf2 = (0, _getPrototypeOf3["default"])(VisConfigByFieldSelector)).call.apply(_getPrototypeOf2, [this].concat(args))); (0, _defineProperty2["default"])((0, _assertThisInitialized2["default"])(_this), "_updateVisByField", function (val) { _this.props.updateField(val); }); return _this; } (0, _createClass2["default"])(VisConfigByFieldSelector, [{ key: "render", value: function render() { var _this$props = this.props, property = _this$props.property, showScale = _this$props.showScale, selectedField = _this$props.selectedField, description = _this$props.description, label = _this$props.label, intl = _this$props.intl, _this$props$scaleOpti = _this$props.scaleOptions, scaleOptions = _this$props$scaleOpti === void 0 ? [] : _this$props$scaleOpti; return _react["default"].createElement(_styledComponents.SidePanelSection, null, _react["default"].createElement(_styledComponents.SidePanelSection, null, _react["default"].createElement(_styledComponents.PanelLabelWrapper, null, _react["default"].createElement(_styledComponents.PanelLabel, null, label && _react["default"].createElement(_reactIntl.FormattedMessage, { id: label }) || _react["default"].createElement(_reactIntl.FormattedMessage, { id: "layer.propertyBasedOn", values: { property: intl.formatMessage({ id: "property.".concat((0, _utils.camelize)(property)), defaultMessage: property }) } })), description && _react["default"].createElement(_infoHelper["default"], { description: description, property: property, id: "".concat(this.props.id, "-").concat(property) })), _react["default"].createElement(_fieldSelector["default"], { fields: this.props.fields, value: selectedField && selectedField.name, placeholder: this.props.placeholder, onSelect: this._updateVisByField, erasable: true })), _react["default"].createElement("div", null, showScale ? _react["default"].createElement(_dimensionScaleSelector["default"], { scaleType: this.props.scaleType, options: scaleOptions, label: "".concat(property, " scale"), onSelect: this.props.updateScale, disabled: scaleOptions.length < 2 }) : null)); } }]); return VisConfigByFieldSelector; }(_react.Component); (0, _defineProperty2["default"])(VisConfigByFieldSelector, "propTypes", { channel: _propTypes["default"].string.isRequired, fields: _propTypes["default"].arrayOf(_propTypes["default"].any).isRequired, id: _propTypes["default"].string.isRequired, property: _propTypes["default"].string.isRequired, showScale: _propTypes["default"].bool.isRequired, updateField: _propTypes["default"].func.isRequired, updateScale: _propTypes["default"].func.isRequired, // optional scaleType: _propTypes["default"].string, selectedField: _propTypes["default"].object, description: _propTypes["default"].string, label: _propTypes["default"].string, placeholder: _propTypes["default"].string }); var _default = (0, _reactIntl.injectIntl)(VisConfigByFieldSelector); exports["default"] = _default; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL3NpZGUtcGFuZWwvbGF5ZXItcGFuZWwvdmlzLWNvbmZpZy1ieS1maWVsZC1zZWxlY3Rvci5qcyJdLCJuYW1lcyI6WyJWaXNDb25maWdCeUZpZWxkU2VsZWN0b3IiLCJ2YWwiLCJwcm9wcyIsInVwZGF0ZUZpZWxkIiwicHJvcGVydHkiLCJzaG93U2NhbGUiLCJzZWxlY3RlZEZpZWxkIiwiZGVzY3JpcHRpb24iLCJsYWJlbCIsImludGwiLCJzY2FsZU9wdGlvbnMiLCJmb3JtYXRNZXNzYWdlIiwiaWQiLCJkZWZhdWx0TWVzc2FnZSIsImZpZWxkcyIsIm5hbWUiLCJwbGFjZWhvbGRlciIsIl91cGRhdGVWaXNCeUZpZWxkIiwic2NhbGVUeXBlIiwidXBkYXRlU2NhbGUiLCJsZW5ndGgiLCJDb21wb25lbnQiLCJjaGFubmVsIiwiUHJvcFR5cGVzIiwic3RyaW5nIiwiaXNSZXF1aXJlZCIsImFycmF5T2YiLCJhbnkiLCJib29sIiwiZnVuYyIsIm9iamVjdCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQW9CQTs7QUFDQTs7QUFDQTs7QUFFQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUFDQTs7QUE1QkE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7SUFZTUEsd0I7Ozs7Ozs7Ozs7Ozs7Ozs7OzBHQWtCZ0IsVUFBQUMsR0FBRyxFQUFJO0FBQ3pCLFlBQUtDLEtBQUwsQ0FBV0MsV0FBWCxDQUF1QkYsR0FBdkI7QUFDRCxLOzs7Ozs7NkJBRVE7QUFBQSx3QkFTSCxLQUFLQyxLQVRGO0FBQUEsVUFFTEUsUUFGSyxlQUVMQSxRQUZLO0FBQUEsVUFHTEMsU0FISyxlQUdMQSxTQUhLO0FBQUEsVUFJTEMsYUFKSyxlQUlMQSxhQUpLO0FBQUEsVUFLTEMsV0FMSyxlQUtMQSxXQUxLO0FBQUEsVUFNTEMsS0FOSyxlQU1MQSxLQU5LO0FBQUEsVUFPTEMsSUFQSyxlQU9MQSxJQVBLO0FBQUEsOENBUUxDLFlBUks7QUFBQSxVQVFMQSxZQVJLLHNDQVFVLEVBUlY7QUFXUCxhQUNFLGdDQUFDLGtDQUFELFFBQ0UsZ0NBQUMsa0NBQUQsUUFDRSxnQ0FBQyxtQ0FBRCxRQUNFLGdDQUFDLDRCQUFELFFBQ0lGLEtBQUssSUFBSSxnQ0FBQywyQkFBRDtBQUFrQixRQUFBLEVBQUUsRUFBRUE7QUFBdEIsUUFBVixJQUNDLGdDQUFDLDJCQUFEO0FBQ0UsUUFBQSxFQUFFLEVBQUMsdUJBREw7QUFFRSxRQUFBLE1BQU0sRUFBRTtBQUNOSixVQUFBQSxRQUFRLEVBQUVLLElBQUksQ0FBQ0UsYUFBTCxDQUFtQjtBQUMzQkMsWUFBQUEsRUFBRSxxQkFBYyxxQkFBU1IsUUFBVCxDQUFkLENBRHlCO0FBRTNCUyxZQUFBQSxjQUFjLEVBQUVUO0FBRlcsV0FBbkI7QUFESjtBQUZWLFFBRkosQ0FERixFQWNHRyxXQUFXLElBQ1YsZ0NBQUMsc0JBQUQ7QUFDRSxRQUFBLFdBQVcsRUFBRUEsV0FEZjtBQUVFLFFBQUEsUUFBUSxFQUFFSCxRQUZaO0FBR0UsUUFBQSxFQUFFLFlBQUssS0FBS0YsS0FBTCxDQUFXVSxFQUFoQixjQUFzQlIsUUFBdEI7QUFISixRQWZKLENBREYsRUF1QkUsZ0NBQUMseUJBQUQ7QUFDRSxRQUFBLE1BQU0sRUFBRSxLQUFLRixLQUFMLENBQVdZLE1BRHJCO0FBRUUsUUFBQSxLQUFLLEVBQUVSLGFBQWEsSUFBSUEsYUFBYSxDQUFDUyxJQUZ4QztBQUdFLFFBQUEsV0FBVyxFQUFFLEtBQUtiLEtBQUwsQ0FBV2MsV0FIMUI7QUFJRSxRQUFBLFFBQVEsRUFBRSxLQUFLQyxpQkFKakI7QUFLRSxRQUFBLFFBQVE7QUFMVixRQXZCRixDQURGLEVBZ0NFLDZDQUNHWixTQUFTLEdBQ1IsZ0NBQUMsa0NBQUQ7QUFDRSxRQUFBLFNBQVMsRUFBRSxLQUFLSCxLQUFMLENBQVdnQixTQUR4QjtBQUVFLFFBQUEsT0FBTyxFQUFFUixZQUZYO0FBR0UsUUFBQSxLQUFLLFlBQUtOLFFBQUwsV0FIUDtBQUlFLFFBQUEsUUFBUSxFQUFFLEtBQUtGLEtBQUwsQ0FBV2lCLFdBSnZCO0FBS0UsUUFBQSxRQUFRLEVBQUVULFlBQVksQ0FBQ1UsTUFBYixHQUFzQjtBQUxsQyxRQURRLEdBUU4sSUFUTixDQWhDRixDQURGO0FBOENEOzs7RUEvRW9DQyxnQjs7aUNBQWpDckIsd0IsZUFDZTtBQUNqQnNCLEVBQUFBLE9BQU8sRUFBRUMsc0JBQVVDLE1BQVYsQ0FBaUJDLFVBRFQ7QUFFakJYLEVBQUFBLE1BQU0sRUFBRVMsc0JBQVVHLE9BQVYsQ0FBa0JILHNCQUFVSSxHQUE1QixFQUFpQ0YsVUFGeEI7QUFHakJiLEVBQUFBLEVBQUUsRUFBRVcsc0JBQVVDLE1BQVYsQ0FBaUJDLFVBSEo7QUFJakJyQixFQUFBQSxRQUFRLEVBQUVtQixzQkFBVUMsTUFBVixDQUFpQkMsVUFKVjtBQUtqQnBCLEVBQUFBLFNBQVMsRUFBRWtCLHNCQUFVSyxJQUFWLENBQWVILFVBTFQ7QUFNakJ0QixFQUFBQSxXQUFXLEVBQUVvQixzQkFBVU0sSUFBVixDQUFlSixVQU5YO0FBT2pCTixFQUFBQSxXQUFXLEVBQUVJLHNCQUFVTSxJQUFWLENBQWVKLFVBUFg7QUFTakI7QUFDQVAsRUFBQUEsU0FBUyxFQUFFSyxzQkFBVUMsTUFWSjtBQVdqQmxCLEVBQUFBLGFBQWEsRUFBRWlCLHNCQUFVTyxNQVhSO0FBWWpCdkIsRUFBQUEsV0FBVyxFQUFFZ0Isc0JBQVVDLE1BWk47QUFhakJoQixFQUFBQSxLQUFLLEVBQUVlLHNCQUFVQyxNQWJBO0FBY2pCUixFQUFBQSxXQUFXLEVBQUVPLHNCQUFVQztBQWROLEM7O2VBaUZOLDJCQUFXeEIsd0JBQVgsQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIENvcHlyaWdodCAoYykgMjAyMCBVYmVyIFRlY2hub2xvZ2llcywgSW5jLlxuLy9cbi8vIFBlcm1pc3Npb24gaXMgaGVyZWJ5IGdyYW50ZWQsIGZyZWUgb2YgY2hhcmdlLCB0byBhbnkgcGVyc29uIG9idGFpbmluZyBhIGNvcHlcbi8vIG9mIHRoaXMgc29mdHdhcmUgYW5kIGFzc29jaWF0ZWQgZG9jdW1lbnRhdGlvbiBmaWxlcyAodGhlIFwiU29mdHdhcmVcIiksIHRvIGRlYWxcbi8vIGluIHRoZSBTb2Z0d2FyZSB3aXRob3V0IHJlc3RyaWN0aW9uLCBpbmNsdWRpbmcgd2l0aG91dCBsaW1pdGF0aW9uIHRoZSByaWdodHNcbi8vIHRvIHVzZSwgY29weSwgbW9kaWZ5LCBtZXJnZSwgcHVibGlzaCwgZGlzdHJpYnV0ZSwgc3VibGljZW5zZSwgYW5kL29yIHNlbGxcbi8vIGNvcGllcyBvZiB0aGUgU29mdHdhcmUsIGFuZCB0byBwZXJtaXQgcGVyc29ucyB0byB3aG9tIHRoZSBTb2Z0d2FyZSBpc1xuLy8gZnVybmlzaGVkIHRvIGRvIHNvLCBzdWJqZWN0IHRvIHRoZSBmb2xsb3dpbmcgY29uZGl0aW9uczpcbi8vXG4vLyBUaGUgYWJvdmUgY29weXJpZ2h0IG5vdGljZSBhbmQgdGhpcyBwZXJtaXNzaW9uIG5vdGljZSBzaGFsbCBiZSBpbmNsdWRlZCBpblxuLy8gYWxsIGNvcGllcyBvciBzdWJzdGFudGlhbCBwb3J0aW9ucyBvZiB0aGUgU29mdHdhcmUuXG4vL1xuLy8gVEhFIFNPRlRXQVJFIElTIFBST1ZJREVEIFwiQVMgSVNcIiwgV0lUSE9VVCBXQVJSQU5UWSBPRiBBTlkgS0lORCwgRVhQUkVTUyBPUlxuLy8gSU1QTElFRCwgSU5DTFVESU5HIEJVVCBOT1QgTElNSVRFRCBUTyBUSEUgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFksXG4vLyBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBTkQgTk9OSU5GUklOR0VNRU5ULiBJTiBOTyBFVkVOVCBTSEFMTCBUSEVcbi8vIEFVVEhPUlMgT1IgQ09QWVJJR0hUIEhPTERFUlMgQkUgTElBQkxFIEZPUiBBTlkgQ0xBSU0sIERBTUFHRVMgT1IgT1RIRVJcbi8vIExJQUJJTElUWSwgV0hFVEhFUiBJTiBBTiBBQ1RJT04gT0YgQ09OVFJBQ1QsIFRPUlQgT1IgT1RIRVJXSVNFLCBBUklTSU5HIEZST00sXG4vLyBPVVQgT0YgT1IgSU4gQ09OTkVDVElPTiBXSVRIIFRIRSBTT0ZUV0FSRSBPUiBUSEUgVVNFIE9SIE9USEVSIERFQUxJTkdTIElOXG4vLyBUSEUgU09GVFdBUkUuXG5cbmltcG9ydCBSZWFjdCwge0NvbXBvbmVudH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tICdwcm9wLXR5cGVzJztcbmltcG9ydCB7Rm9ybWF0dGVkTWVzc2FnZSwgaW5qZWN0SW50bH0gZnJvbSAncmVhY3QtaW50bCc7XG5cbmltcG9ydCB7UGFuZWxMYWJlbCwgUGFuZWxMYWJlbFdyYXBwZXIsIFNpZGVQYW5lbFNlY3Rpb259IGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL3N0eWxlZC1jb21wb25lbnRzJztcbmltcG9ydCBGaWVsZFNlbGVjdG9yIGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL2ZpZWxkLXNlbGVjdG9yJztcbmltcG9ydCBJbmZvSGVscGVyIGZyb20gJ2NvbXBvbmVudHMvY29tbW9uL2luZm8taGVscGVyJztcbmltcG9ydCBEaW1lbnNpb25TY2FsZVNlbGVjdG9yIGZyb20gJy4vZGltZW5zaW9uLXNjYWxlLXNlbGVjdG9yJztcbmltcG9ydCB7Y2FtZWxpemV9IGZyb20gJ3V0aWxzL3V0aWxzJztcblxuY2xhc3MgVmlzQ29uZmlnQnlGaWVsZFNlbGVjdG9yIGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgc3RhdGljIHByb3BUeXBlcyA9IHtcbiAgICBjaGFubmVsOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgZmllbGRzOiBQcm9wVHlwZXMuYXJyYXlPZihQcm9wVHlwZXMuYW55KS5pc1JlcXVpcmVkLFxuICAgIGlkOiBQcm9wVHlwZXMuc3RyaW5nLmlzUmVxdWlyZWQsXG4gICAgcHJvcGVydHk6IFByb3BUeXBlcy5zdHJpbmcuaXNSZXF1aXJlZCxcbiAgICBzaG93U2NhbGU6IFByb3BUeXBlcy5ib29sLmlzUmVxdWlyZWQsXG4gICAgdXBkYXRlRmllbGQ6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG4gICAgdXBkYXRlU2NhbGU6IFByb3BUeXBlcy5mdW5jLmlzUmVxdWlyZWQsXG5cbiAgICAvLyBvcHRpb25hbFxuICAgIHNjYWxlVHlwZTogUHJvcFR5cGVzLnN0cmluZyxcbiAgICBzZWxlY3RlZEZpZWxkOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIGRlc2NyaXB0aW9uOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGxhYmVsOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIHBsYWNlaG9sZGVyOiBQcm9wVHlwZXMuc3RyaW5nXG4gIH07XG5cbiAgX3VwZGF0ZVZpc0J5RmllbGQgPSB2YWwgPT4ge1xuICAgIHRoaXMucHJvcHMudXBkYXRlRmllbGQodmFsKTtcbiAgfTtcblxuICByZW5kZXIoKSB7XG4gICAgY29uc3Qge1xuICAgICAgcHJvcGVydHksXG4gICAgICBzaG93U2NhbGUsXG4gICAgICBzZWxlY3RlZEZpZWxkLFxuICAgICAgZGVzY3JpcHRpb24sXG4gICAgICBsYWJlbCxcbiAgICAgIGludGwsXG4gICAgICBzY2FsZU9wdGlvbnMgPSBbXVxuICAgIH0gPSB0aGlzLnByb3BzO1xuXG4gICAgcmV0dXJuIChcbiAgICAgIDxTaWRlUGFuZWxTZWN0aW9uPlxuICAgICAgICA8U2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgICAgICA8UGFuZWxMYWJlbFdyYXBwZXI+XG4gICAgICAgICAgICA8UGFuZWxMYWJlbD5cbiAgICAgICAgICAgICAgeyhsYWJlbCAmJiA8Rm9ybWF0dGVkTWVzc2FnZSBpZD17bGFiZWx9IC8+KSB8fCAoXG4gICAgICAgICAgICAgICAgPEZvcm1hdHRlZE1lc3NhZ2VcbiAgICAgICAgICAgICAgICAgIGlkPVwibGF5ZXIucHJvcGVydHlCYXNlZE9uXCJcbiAgICAgICAgICAgICAgICAgIHZhbHVlcz17e1xuICAgICAgICAgICAgICAgICAgICBwcm9wZXJ0eTogaW50bC5mb3JtYXRNZXNzYWdlKHtcbiAgICAgICAgICAgICAgICAgICAgICBpZDogYHByb3BlcnR5LiR7Y2FtZWxpemUocHJvcGVydHkpfWAsXG4gICAgICAgICAgICAgICAgICAgICAgZGVmYXVsdE1lc3NhZ2U6IHByb3BlcnR5XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8L1BhbmVsTGFiZWw+XG4gICAgICAgICAgICB7ZGVzY3JpcHRpb24gJiYgKFxuICAgICAgICAgICAgICA8SW5mb0hlbHBlclxuICAgICAgICAgICAgICAgIGRlc2NyaXB0aW9uPXtkZXNjcmlwdGlvbn1cbiAgICAgICAgICAgICAgICBwcm9wZXJ0eT17cHJvcGVydHl9XG4gICAgICAgICAgICAgICAgaWQ9e2Ake3RoaXMucHJvcHMuaWR9LSR7cHJvcGVydHl9YH1cbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9QYW5lbExhYmVsV3JhcHBlcj5cbiAgICAgICAgICA8RmllbGRTZWxlY3RvclxuICAgICAgICAgICAgZmllbGRzPXt0aGlzLnByb3BzLmZpZWxkc31cbiAgICAgICAgICAgIHZhbHVlPXtzZWxlY3RlZEZpZWxkICYmIHNlbGVjdGVkRmllbGQubmFtZX1cbiAgICAgICAgICAgIHBsYWNlaG9sZGVyPXt0aGlzLnByb3BzLnBsYWNlaG9sZGVyfVxuICAgICAgICAgICAgb25TZWxlY3Q9e3RoaXMuX3VwZGF0ZVZpc0J5RmllbGR9XG4gICAgICAgICAgICBlcmFzYWJsZVxuICAgICAgICAgIC8+XG4gICAgICAgIDwvU2lkZVBhbmVsU2VjdGlvbj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICB7c2hvd1NjYWxlID8gKFxuICAgICAgICAgICAgPERpbWVuc2lvblNjYWxlU2VsZWN0b3JcbiAgICAgICAgICAgICAgc2NhbGVUeXBlPXt0aGlzLnByb3BzLnNjYWxlVHlwZX1cbiAgICAgICAgICAgICAgb3B0aW9ucz17c2NhbGVPcHRpb25zfVxuICAgICAgICAgICAgICBsYWJlbD17YCR7cHJvcGVydHl9IHNjYWxlYH1cbiAgICAgICAgICAgICAgb25TZWxlY3Q9e3RoaXMucHJvcHMudXBkYXRlU2NhbGV9XG4gICAgICAgICAgICAgIGRpc2FibGVkPXtzY2FsZU9wdGlvbnMubGVuZ3RoIDwgMn1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgKSA6IG51bGx9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9TaWRlUGFuZWxTZWN0aW9uPlxuICAgICk7XG4gIH1cbn1cblxuZXhwb3J0IGRlZmF1bHQgaW5qZWN0SW50bChWaXNDb25maWdCeUZpZWxkU2VsZWN0b3IpO1xuIl19