diff --git a/g3w-admin/qplotly/static/qplotly/js/plugin.js b/g3w-admin/qplotly/static/qplotly/js/plugin.js index 018b8e3e9..041d9a071 100644 --- a/g3w-admin/qplotly/static/qplotly/js/plugin.js +++ b/g3w-admin/qplotly/static/qplotly/js/plugin.js @@ -1,2 +1,2 @@ -!function(){var t=window&&window.initConfig&&window.initConfig.group&&window.initConfig.group.plugins;t&&(t.qplotly=Object.assign(t.qplotly||{},{version:"3.8.0",hash:"877aba7",branch:"dev"}))}(),function o(n,r,a){function s(e,t){if(!r[e]){if(!n[e]){var i="function"==typeof require&&require;if(!t&&i)return i(e,!0);if(l)return l(e,!0);throw(t=new Error("Cannot find module '"+e+"'")).code="MODULE_NOT_FOUND",t}i=r[e]={exports:{}},n[e][0].call(i.exports,function(t){return s(n[e][1][t]||t)},i,i.exports,o,n,r,a)}return r[e].exports}for(var l="function"==typeof require&&require,t=0;t{var t=window&&window.initConfig&&window.initConfig.group&&window.initConfig.group.plugins;t&&(t.qplotly=Object.assign(t.qplotly||{},{version:"3.9.0",hash:"529ea1e",branch:"v3.9.x"}))})(),function o(n,r,a){function s(e,t){if(!r[e]){if(!n[e]){var i="function"==typeof require&&require;if(!t&&i)return i(e,!0);if(l)return l(e,!0);throw(t=new Error("Cannot find module '"+e+"'")).code="MODULE_NOT_FOUND",t}i=r[e]={exports:{}},n[e][0].call(i.exports,function(t){return s(n[e][1][t]||t)},i,i.exports,o,n,r,a)}return r[e].exports}for(var l="function"==typeof require&&require,t=0;t{var t=o,e=d;if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);function o(){var t,e,i;if(this instanceof o)return t=r.default.name,e=r.default.i18n,(i=((t,e)=>{if(t)return!e||"object"!=typeof e&&"function"!=typeof e?t:e;throw new ReferenceError("this hasn't been initialised - super() hasn't been called")})(this,(o.__proto__||Object.getPrototypeOf(o)).call(this,{name:t,service:s.default,i18n:e}))).service.once("ready",function(){i.registerPlugin(i.config.gid)&&(i.setupGUI(),i.setReady(!0))}),i.service.init(i.config),i;throw new TypeError("Cannot call a class as a function")}return t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e),n(o,[{key:"setupGUI",value:function(){var e,i=this;this.createSideBarComponent(a.default,{id:"qplotly",title:"plugins.qplotly.title",open:!1,collapsible:!0,iconConfig:{color:"red",icon:"chart-area"},mobile:!0,events:{open:{when:"before",cb:(e=c(function*(t){yield i.service.showChart(t)}),function(t){return e.apply(this,arguments)})}},sidebarOptions:{position:1}})}},{key:"unload",value:function(){this.service.clear()}}]),o})())},{"./components/sidebar/Multiplot.vue":6,"./config":17,"./service":20}],19:[function(t,e,i){e.exports={name:"qplotly",version:"3.9.0",description:"Data plotly plugin ",main:"index.js",scripts:{},repository:{type:"git",url:"git+https://github.com/g3w-suite/g3w-client-plugin-qplotly.git"},author:"",license:"ISC",bugs:{url:"https://github.com/g3w-suite/g3w-client-plugin-qplotly/issues"},homepage:"https://github.com/g3w-suite/g3w-client-plugin-qplotly#readme"}},{}],20:[function(t,e,i){Object.defineProperty(i,"__esModule",{value:!0});var l=Object.assign||function(t){for(var e=1;e{var n=window&&window.initConfig&&window.initConfig.group&&window.initConfig.group.plugins;n&&(n[\"qplotly\"]=Object.assign(n[\"qplotly\"]||{},{version:\"3.9.0\",hash:\"529ea1e\",branch:\"v3.9.x\"}))})();\n(function(){function r(e,n,t){function o(i,f){if(!n[i]){if(!e[i]){var c=\"function\"==typeof require&&require;if(!f&&c)return c(i,!0);if(u)return u(i,!0);var a=new Error(\"Cannot find module '\"+i+\"'\");throw a.code=\"MODULE_NOT_FOUND\",a}var p=n[i]={exports:{}};e[i][0].call(p.exports,function(r){var n=e[i][1][r];return o(n||r)},p,p.exports,r,e,n,t)}return n[i].exports}for(var u=\"function\"==typeof require&&require,i=0;i 0)?_c('ul',{staticClass:\"skin-color\",staticStyle:{\"margin-top\":\"5px\",\"list-style-type\":\"none\",\"background-color\":\"#FFFFFF\",\"padding-left\":\"3px\",\"font-weight\":\"bold\"}},_vm._l((_vm.filters),function(filter){return _c('li',{directives:[{name:\"t-plugin\",rawName:\"v-t-plugin\",value:((\"qplotly.filters.\" + filter)),expression:\"`qplotly.filters.${filter}`\"}],key:filter})}),0):_vm._e()])}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-c1c7b9ca\"\n\n},{}],4:[function(require,module,exports){\nvar _qplotly = require(\"./qplotly.vue\");\n\nvar _qplotly2 = _interopRequireDefault(_qplotly);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _g3wsdk$core$utils = g3wsdk.core.utils,\n base = _g3wsdk$core$utils.base,\n inherit = _g3wsdk$core$utils.inherit;\n\nvar Component = g3wsdk.gui.vue.Component;\n\nfunction QPlotlyComponent() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n base(this, options);\n var service = options.service,\n ids = options.ids,\n relationData = options.relationData;\n\n this.title = \"qplotly\";\n this.state.visible = true;\n var InternalComponent = Vue.extend(_qplotly2.default);\n this.internalComponent = new InternalComponent({\n service: service,\n ids: ids,\n relationData: relationData\n });\n}\n\ninherit(QPlotlyComponent, Component);\n\nmodule.exports = QPlotlyComponent;\n\n},{\"./qplotly.vue\":5}],5:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _plotheader = require('./plotheader.vue');\n\nvar _plotheader2 = _interopRequireDefault(_plotheader);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nvar GUI = g3wsdk.gui.GUI;\nvar getUniqueDomId = g3wsdk.core.utils.getUniqueDomId;\nvar resizeMixin = g3wsdk.gui.vue.Mixins.resizeMixin;\n\n\nvar NoDataComponent = require('./nodata');\n\nvar TYPE_VALUES = {\n 'pie': 'values',\n 'scatterternary': 'a',\n 'scatterpolar': 'r'\n};\n\nexports.default = {\n name: \"qplotly\",\n mixins: [resizeMixin],\n components: {\n plotheader: _plotheader2.default\n },\n data: function data() {\n this.id = getUniqueDomId();\n this.insideCointainer = \"undefined\" !== typeof this.$options.ids;\n this.relationData = this.$options.relationData;\n return {\n state: this.$options.service.state,\n show: true,\n overflowY: 'none',\n height: 100,\n order: [] };\n },\n\n\n methods: {\n handleToggleFilter: function () {\n var _ref = _asyncToGenerator(function* () {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n layerId = _ref2.layerId;\n\n this.$options.service.setLoadingCharts(true);\n\n yield this.$options.service.toggleLayerFilter(layerId);\n });\n\n function handleToggleFilter() {\n return _ref.apply(this, arguments);\n }\n\n return handleToggleFilter;\n }(),\n handleBBoxTools: function () {\n var _ref3 = _asyncToGenerator(function* () {\n var _this = this;\n\n var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n index = _ref4.index,\n active = _ref4.active;\n\n this.$options.service.setLoadingCharts(true);\n\n var id = this.order[index];\n var _ref5 = yield this.$options.service.updateMapBBOXData({ id: id, active: active }),\n charts = _ref5.charts,\n order = _ref5.order;\n\n this.state.tools.map.toggled = Object.values(this.order).reduce(function (accumulator, id) {\n return accumulator && _this.charts[id].reduce(function (accumulator, _ref6) {\n var chart = _ref6.chart;\n\n var active = chart.tools.geolayer.show && chart.tools.geolayer.active;\n return accumulator && (chart.tools.geolayer.show ? active : true);\n }, true);\n }, true);\n\n this.setCharts({\n charts: charts,\n order: order\n });\n });\n\n function handleBBoxTools() {\n return _ref3.apply(this, arguments);\n }\n\n return handleBBoxTools;\n }(),\n showHideChart: function () {\n var _ref7 = _asyncToGenerator(function* () {\n var _ref8 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n plotId = _ref8.plotId,\n _ref8$charts = _ref8.charts,\n charts = _ref8$charts === undefined ? {} : _ref8$charts,\n _ref8$order = _ref8.order,\n order = _ref8$order === undefined ? [] : _ref8$order,\n action = _ref8.action,\n filter = _ref8.filter;\n\n this.order = order;\n yield this.$nextTick();\n this.show = this.order.length > 0;\n switch (action) {\n case 'hide':\n delete this.charts[plotId];\n\n if (this.show) {\n yield this.setCharts({ charts: charts, order: order });\n } else {\n yield this.calculateHeigths(this.order.length);\n yield this.resizePlots();\n }\n break;\n case 'show':\n this.show = true;\n yield this.calculateHeigths(this.order.length);\n yield this.drawAllCharts();\n break;\n }\n\n if (this.show) {\n this.resize();\n }\n });\n\n function showHideChart() {\n return _ref7.apply(this, arguments);\n }\n\n return showHideChart;\n }(),\n resizePlots: function () {\n var _ref9 = _asyncToGenerator(function* () {\n var _this2 = this;\n\n if (false === this.insideCointainer) {\n this.$options.service.setLoadingCharts(true);\n }\n\n var promises = [];\n this.order.forEach(function (plotId) {\n _this2.charts[plotId].forEach(function (chart, index) {\n var domElement = _this2.$refs['' + plotId][0];\n _this2.setChartPlotHeigth(domElement);\n promises.push(new Promise(function (resolve) {\n Plotly.Plots.resize(domElement).then(function () {\n resolve(plotId);\n });\n }));\n });\n });\n var chartsPlotIds = yield Promise.allSettled(promises);\n chartsPlotIds.forEach(function (_ref10) {\n var value = _ref10.value;\n return _this2.charts[value].forEach(function (_ref11) {\n var chart = _ref11.chart,\n state = _ref11.state;\n return state.loading = false;\n });\n });\n\n if (false === this.insideCointainer) {\n this.$options.service.setLoadingCharts(false);\n }\n });\n\n function resizePlots() {\n return _ref9.apply(this, arguments);\n }\n\n return resizePlots;\n }(),\n drawAllCharts: function () {\n var _ref12 = _asyncToGenerator(function* () {\n var _this3 = this;\n\n this.$options.service.setLoadingCharts(true);\n yield this.$nextTick();\n var promises = [];\n\n this.order.forEach(function (plotId) {\n var promise = _this3.drawPlotlyChart({\n plotId: plotId\n });\n promise && promises.push(promise);\n });\n if (promises.length > 0) {\n var chartPlotIds = yield Promise.allSettled(promises);\n\n chartPlotIds.forEach(function (_ref13) {\n var value = _ref13.value;\n\n\n _this3.charts[value].forEach(function (chart) {\n chart.state.loading = false;\n });\n });\n }\n\n this.$options.service.setLoadingCharts(false);\n });\n\n function drawAllCharts() {\n return _ref12.apply(this, arguments);\n }\n\n return drawAllCharts;\n }(),\n setCharts: function () {\n var _ref14 = _asyncToGenerator(function* () {\n var _this4 = this;\n\n var _ref15 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref15$charts = _ref15.charts,\n charts = _ref15$charts === undefined ? {} : _ref15$charts,\n _ref15$order = _ref15.order,\n order = _ref15$order === undefined ? [] : _ref15$order;\n\n this.$options.service.setLoadingCharts(true);\n\n this.order = order;\n\n this.show = this.order.length > 0;\n\n Object.keys(charts).forEach(function (plotId) {\n _this4.charts[plotId] = [];\n\n charts[plotId].forEach(function (chart) {\n _this4.charts[plotId].push({\n chart: chart,\n\n state: Vue.observable({\n loading: false\n })\n });\n });\n });\n\n this.$nextTick();\n\n if (this.show) {\n\n yield this.calculateHeigths(this.order.length);\n\n yield this.drawAllCharts();\n }\n setTimeout(function () {\n\n _this4.$options.service.setLoadingCharts(false);\n });\n });\n\n function setCharts() {\n return _ref14.apply(this, arguments);\n }\n\n return setCharts;\n }(),\n resize: function () {\n var _ref16 = _asyncToGenerator(function* () {\n this.mounted && (yield this.resizePlots());\n });\n\n function resize() {\n return _ref16.apply(this, arguments);\n }\n\n return resize;\n }(),\n setChartPlotHeigth: function setChartPlotHeigth(domElement) {\n setTimeout(function () {\n var jqueryContent = $(domElement);\n domElement.style.height = jqueryContent.parent().outerHeight() - jqueryContent.siblings().outerHeight() + 'px';\n });\n },\n drawPlotlyChart: function drawPlotlyChart() {\n var _this5 = this;\n\n var _ref17 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n plotId = _ref17.plotId;\n\n var promise = void 0;\n this.charts[plotId].forEach(function (_ref18, index) {\n var chart = _ref18.chart,\n state = _ref18.state;\n\n var config = _this5.$options.service.getChartConfig();\n var domElement = _this5.$refs['' + plotId][0];\n var data = chart.data,\n layout = chart.layout;\n\n _this5.setChartPlotHeigth(domElement);\n if (data && Array.isArray(data[TYPE_VALUES[data.type] || 'x']) && data[TYPE_VALUES[data.type] || 'x'].length) {\n state.loading = !_this5.relationData;\n promise = new Promise(function (resolve) {\n setTimeout(function () {\n Plotly.newPlot(domElement, [data], layout, config).then(function () {\n return resolve(plotId);\n });\n });\n });\n } else {\n domElement.innerHTML = '';\n var component = Vue.extend(NoDataComponent);\n component = new component({\n propsData: {\n title: 'Plot [' + plotId + '] ' + (layout && layout.title ? ' - ' + layout.title : '') + ' '\n }\n });\n setTimeout(function () {\n return domElement.appendChild(component.$mount().$el);\n });\n }\n });\n return promise;\n },\n calculateHeigths: function () {\n var _ref19 = _asyncToGenerator(function* () {\n var visibleCharts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n\n\n var addedHeight = this.relationData && this.relationData.height ? visibleCharts > 1 ? visibleCharts * 50 : 0 : (visibleCharts > 2 ? visibleCharts - 2 : 0) * 50;\n\n this.height = 100 + addedHeight;\n\n yield this.$nextTick();\n\n this.overflowY = addedHeight > 0 ? 'auto' : 'none';\n });\n\n function calculateHeigths() {\n return _ref19.apply(this, arguments);\n }\n\n return calculateHeigths;\n }()\n },\n\n beforeCreate: function beforeCreate() {\n this.delayType = 'debounce';\n },\n created: function created() {\n this.charts = {};\n },\n mounted: function () {\n var _ref20 = _asyncToGenerator(function* () {\n this.mounted = false;\n\n yield this.$nextTick();\n\n this.$options.service.on('change-charts', this.setCharts);\n\n this.$options.service.on('show-hide-chart', this.showHideChart);\n\n var _ref21 = yield this.$options.service.getCharts({\n layerIds: this.$options.ids,\n relationData: this.relationData }),\n charts = _ref21.charts,\n order = _ref21.order;\n\n yield this.setCharts({ charts: charts, order: order });\n\n if (\"undefined\" !== typeof this.relationData) {\n GUI.on('pop-content', this.resize);\n }\n\n this.mounted = true;\n });\n\n function mounted() {\n return _ref20.apply(this, arguments);\n }\n\n return mounted;\n }(),\n beforeDestroy: function beforeDestroy() {\n this.$options.service.off('change-charts', this.setCharts);\n\n this.$options.service.off('show-hide-chart', this.showHideChart);\n\n this.relationData && GUI.off('pop-content', this.resize);\n\n this.$options.service.clearLoadedPlots();\n\n this.charts = null;\n\n this.order = null;\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"disabled\",rawName:\"v-disabled\",value:(_vm.state.loading),expression:\"state.loading\"}],staticClass:\"skin-color\",style:({overflowY: _vm.overflowY, height: _vm.relationData && _vm.relationData.height ? ((_vm.relationData.height) + \"px\"): '100%'}),attrs:{\"id\":_vm.id}},[(_vm.insideCointainer)?_c('bar-loader',{attrs:{\"loading\":_vm.state.loading}}):_vm._e(),_vm._v(\" \"),(_vm.show)?_c('div',{staticClass:\"plot_divs_content\",staticStyle:{\"width\":\"100%\",\"background-color\":\"#FFFFFF\",\"position\":\"relative\"},style:({height: (_vm.height + \"%\")})},_vm._l((_vm.order),function(plotId,index){return _c('div',{key:plotId,staticStyle:{\"position\":\"relative\"},style:({height: _vm.relationData && _vm.relationData.height ? ((_vm.relationData.height) + \"px\") : ((100/_vm.order.length) + \"%\")})},[_vm._l((_vm.charts[plotId]),function(ref){\nvar chart = ref.chart;\nvar state = ref.state;\nreturn [_c('plotheader',{attrs:{\"index\":index,\"layerId\":chart.layerId,\"tools\":!_vm.relationData ? chart.tools : undefined,\"title\":chart.title,\"filters\":chart.filters},on:{\"toggle-bbox-tool\":_vm.handleBBoxTools,\"toggle-filter-tool\":_vm.handleToggleFilter}}),_vm._v(\" \"),_c('div',{ref:(\"\" + plotId),refInFor:true,staticClass:\"plot_div_content\",staticStyle:{\"width\":\"95%\",\"margin\":\"auto\",\"position\":\"relative\"}})]})],2)}),0):_c('div',{staticClass:\"skin-color\",staticStyle:{\"height\":\"100%\",\"width\":\"100%\",\"display\":\"flex\",\"justify-content\":\"center\",\"align-items\":\"center\",\"background-color\":\"white\"},attrs:{\"id\":\"no_plots\"}},[_c('h4',{directives:[{name:\"t-plugin\",rawName:\"v-t-plugin\",value:('qplotly.no_plots'),expression:\"'qplotly.no_plots'\"}],staticStyle:{\"text-align\":\"center\",\"font-weight\":\"bold\"}})])],1)}\n__vue__options__.staticRenderFns = []\n__vue__options__._scopeId = \"data-v-3ad2fc42\"\n\n},{\"./nodata\":2,\"./plotheader.vue\":3}],6:[function(require,module,exports){\n;(function(){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _service = require('../../service');\n\nvar _service2 = _interopRequireDefault(_service);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n name: \"Multiplot\",\n data: function data() {\n return {\n plots: _service2.default.getPlots()\n };\n },\n\n computed: {\n loading: function loading() {\n return _service2.default.state.chartsloading;\n }\n },\n\n methods: {\n showHidePlot: function showHidePlot(plot) {\n setTimeout(function () {\n _service2.default[plot.show && 'showPlot' || 'hidePlot'](plot);\n });\n }\n }\n};\n})()\nif (module.exports.__esModule) module.exports = module.exports.default\nvar __vue__options__ = (typeof module.exports === \"function\"? module.exports.options: module.exports)\n__vue__options__.render = function render () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('ul',{staticClass:\"treeview-menu\",staticStyle:{\"padding\":\"10px\",\"color\":\"#FFFFFF\"},attrs:{\"id\":\"chart_plot_multi_plot\"}},_vm._l((_vm.plots),function(plot){return _c('li',{key:plot.id},[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(plot.show),expression:\"plot.show\"}],staticClass:\"magic-checkbox\",attrs:{\"type\":\"checkbox\",\"id\":plot.id},domProps:{\"checked\":Array.isArray(plot.show)?_vm._i(plot.show,null)>-1:(plot.show)},on:{\"change\":[function($event){var $$a=plot.show,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.$set(plot, \"show\", $$a.concat([$$v])))}else{$$i>-1&&(_vm.$set(plot, \"show\", $$a.slice(0,$$i).concat($$a.slice($$i+1))))}}else{_vm.$set(plot, \"show\", $$c)}},function($event){return _vm.showHidePlot(plot)}]}}),_vm._v(\" \"),_c('label',{class:{'g3w-disabled': _vm.loading},staticStyle:{\"display\":\"flex\",\"justify-content\":\"space-between\",\"align-items\":\"center\"},attrs:{\"for\":plot.id}},[_c('span',{staticStyle:{\"white-space\":\"pre-wrap\"}},[_vm._v(_vm._s(plot.label)+\" \")]),_vm._v(\" \"),_c('span',[_vm._v(_vm._s(plot.plot.type))])])])}),0)}\n__vue__options__.staticRenderFns = []\n\n},{\"../../service\":20}],7:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar charts = exports.charts = {\n no_subplots: ['pie', 'ternary']\n};\n\nexports.default = {\n charts: charts\n};\n\n},{}],8:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n title: 'Diagramme',\n pietitle: \"Torten-Diagramme\",\n no_subplots_charts: 'Exklusive Diagramme',\n no_plots: 'Kein Diagramm vorhanden. Mindestens ein Diagramm hinzufügen',\n no_data: \"Keine Daten verfügbar\",\n tooltip: {\n show_all_features_on_map: \"Alle Diagramme nach den auf der Karte sichtbaren Elementen filtern\",\n show_feature_on_map: \"Dieses Diagramm nach den auf der Karte sichtbaren Elementen filtern\",\n filter_chart: \"Diagramme nach ausgewählten Elementen filtern\"\n },\n filters: {\n in_bbox: \"Die im Diagramm angezeigten Daten sind nach den auf der Karte sichtbaren Geometrien gefiltert\",\n filtertoken: \"Die im Diagramm angezeigten Daten sind nach den ausgewählten Elementen gefiltert\",\n in_bbox_filtertoken: \"Die im Diagramm angezeigten Daten sind nach den ausgewählten und auf der Karte sichtbaren Geometrien/Datensätzen gefiltert\",\n relation: {\n in_bbox: \"Die im Diagramm angezeigten Daten sind nach den auf der Karte sichtbaren Referenzgeometrien (Eltern) gefiltert\",\n filtertoken: \"Die im Diagramm angezeigten Daten sind nach den ausgewählten Referenzgeometrien/-datensätzen (Eltern) gefiltert.\",\n in_bbox_filtertoken: \"Die im Diagramm angezeigten Daten sind nach den ausgewählten und auf der Karte sichtbaren Referenzgeometrien/-datensätzen (Eltern) gefiltert\"\n }\n }\n};\n\n},{}],9:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n title: 'Charts',\n pietitle: \"Pie Charts\",\n no_subplots_charts: 'Exclusive plots',\n no_plots: 'No chart. Add at least one plot',\n no_data: \"No Data available\",\n tooltip: {\n show_all_features_on_map: \"Filter all plots according to the geometries visible on the map\",\n show_feature_on_map: \"Filter plot according to the geometries visible on the map\",\n filter_chart: \"Filter plots according to the selected geometries/records\"\n },\n filters: {\n in_bbox: \"The data ​​shown in the plot are filtered according to the geometries visible on the map\",\n filtertoken: \"The data ​​shown in the plot are filtered according to the selected geometries/records\",\n in_bbox_filtertoken: \"The data ​​shown in the plot are filtered according to the geometries/records selected and visible on the map\",\n relation: {\n in_bbox: \"The data​​ shown in the plot are filtered according to the reference (parents) geometries visible on the map\",\n filtertoken: \"The data ​​shown in the plot are filtered according to the reference (parents) selected geometries/records\",\n in_bbox_filtertoken: \"The data ​​shown in the plot are filtered according to the reference (parents) geometries/records selected and visible on the map\"\n }\n }\n};\n\n},{}],10:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n title: 'Charts',\n pietitle: \"Pie Charts\",\n no_subplots_charts: 'Exclusive plots',\n no_plots: 'No chart. Add at least one plot',\n no_data: \"No Data available\",\n tooltip: {\n show_all_features_on_map: \"Filter all plots according to the geometries visible on the map\",\n show_feature_on_map: \"Filter plot according to the geometries visible on the map\",\n filter_chart: \"Filter plots according to the selected geometries/records\"\n },\n filters: {\n in_bbox: \"The data ​​shown in the plot are filtered according to the geometries visible on the map\",\n filtertoken: \"The data ​​shown in the plot are filtered according to the selected geometries/records\",\n in_bbox_filtertoken: \"The data ​​shown in the plot are filtered according to the geometries/records selected and visible on the map\",\n relation: {\n in_bbox: \"The data​​ shown in the plot are filtered according to the reference (parents) geometries visible on the map\",\n filtertoken: \"The data ​​shown in the plot are filtered according to the reference (parents) selected geometries/records\",\n in_bbox_filtertoken: \"The data ​​shown in the plot are filtered according to the reference (parents) geometries/records selected and visible on the map\"\n }\n }\n};\n\n},{}],11:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n title: 'Graphiques',\n pietitle: \"Cake Charts\",\n no_subplots_charts: 'Graphiques exclusifs',\n no_plots: 'Pas de graphiques à montrer. Ajoutez au moins un graphique',\n no_data: \"Aucune donnée disponible\",\n tooltip: {\n show_all_features_on_map: \"Filtrer ce graphique en fonction des éléments visibles sur la carte\",\n show_feature_on_map: \"Filtrer tous les graphiques en fonction des éléments sélectionnés\",\n filter_chart: \"Filtrer tous les graphiques en fonction des éléments sélectionnés\"\n },\n filters: {\n in_bbox: \"Les données présentées dans le graphique sont filtrées en fonction des géométries visibles sur la carte\",\n filtertoken: \"Les données affichées dans le graphique sont filtrées en fonction des géométries/enregistrements sélectionnés\",\n in_bbox_filtertoken: \"Les données présentées dans le graphique sont filtrées en fonction des géométries/enregistrements sélectionnés visibles sur la carte\",\n relation: {\n in_bbox: \"Les données présentées dans le graphique sont filtrées en fonction des géométries de référence (parents) visibles sur la carte\",\n filtertoken: \"Les données affichées dans le graphique sont filtrées par les géométries/enregistrements de référence sélectionnés (parents)\",\n in_bbox_filtertoken: \"Les données présentées dans le graphique sont filtrées en fonction des géométries/enregistrements de référence sélectionnés (parents) visibles sur la carte\"\n }\n }\n};\n\n},{}],12:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _it = require('./it');\n\nvar _it2 = _interopRequireDefault(_it);\n\nvar _en = require('./en');\n\nvar _en2 = _interopRequireDefault(_en);\n\nvar _fi = require('./fi');\n\nvar _fi2 = _interopRequireDefault(_fi);\n\nvar _se = require('./se');\n\nvar _se2 = _interopRequireDefault(_se);\n\nvar _fr = require('./fr');\n\nvar _fr2 = _interopRequireDefault(_fr);\n\nvar _de = require('./de');\n\nvar _de2 = _interopRequireDefault(_de);\n\nvar _ro = require('./ro');\n\nvar _ro2 = _interopRequireDefault(_ro);\n\nvar _pl = require('./pl');\n\nvar _pl2 = _interopRequireDefault(_pl);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n it: _it2.default,\n en: _en2.default,\n fi: _fi2.default,\n se: _se2.default,\n fr: _fr2.default,\n de: _de2.default,\n ro: _ro2.default,\n pl: _pl2.default\n};\n\n},{\"./de\":8,\"./en\":9,\"./fi\":10,\"./fr\":11,\"./it\":13,\"./pl\":14,\"./ro\":15,\"./se\":16}],13:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n title: 'Grafici',\n pietitle: \"Grafici Torta\",\n no_subplots_charts: 'Grafici esclusivi',\n no_plots: 'Nessun grafico da mostrare. Aggiungi almeno un grafico',\n no_data: \"Nessun dato disponibile\",\n tooltip: {\n show_all_features_on_map: \"Filtra tutti i grafici sulla base degli elementi visibili in mappa\",\n show_feature_on_map: \"Filtra questo grafico sulla base degli elementi visibili in mappa\",\n filter_chart: \"Filtra i grafici sulla base degli elementi selezionati\"\n },\n filters: {\n in_bbox: \"I dati mostrati nel grafico sono filtrati in base alle geometrie visibili sulla mappa\",\n filtertoken: \"I dati mostrati nel grafico sono filtrati in base alle geometrie/records selezionati\",\n in_bbox_filtertoken: \"I dati mostrati nel grafico sono filtrati in base alle geometrie/records selezionati e visibili sulla mappa\",\n relation: {\n in_bbox: \"I dati mostrati nel grafico sono filtrati in base alle geometrie di riferimento (genitori) visibili sulla mappa\",\n filtertoken: \"I dati mostrati nel grafico sono filtrati in base alle geometrie/records selezionati di riferimento (genitori)\",\n in_bbox_filtertoken: \"I dati mostrati nel grafico sono filtrati in base alle geometrie/records di riferimento (genitori) selezionati e visibili sulla mappa\"\n }\n }\n};\n\n},{}],14:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n title: 'Charts',\n pietitle: \"Pie Charts\",\n no_subplots_charts: 'Exclusive plots',\n no_plots: 'No chart. Add at least one plot',\n no_data: \"No Data available\",\n tooltip: {\n show_all_features_on_map: \"Filter all plots according to the geometries visible on the map\",\n show_feature_on_map: \"Filter plot according to the geometries visible on the map\",\n filter_chart: \"Filter plots according to the selected geometries/records\"\n },\n filters: {\n in_bbox: \"The data ​​shown in the plot are filtered according to the geometries visible on the map\",\n filtertoken: \"The data ​​shown in the plot are filtered according to the selected geometries/records\",\n in_bbox_filtertoken: \"The data ​​shown in the plot are filtered according to the geometries/records selected and visible on the map\",\n relation: {\n in_bbox: \"The data​​ shown in the plot are filtered according to the reference (parents) geometries visible on the map\",\n filtertoken: \"The data ​​shown in the plot are filtered according to the reference (parents) selected geometries/records\",\n in_bbox_filtertoken: \"The data ​​shown in the plot are filtered according to the reference (parents) geometries/records selected and visible on the map\"\n }\n }\n};\n\n},{}],15:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n title: 'Grafice',\n pietitle: \"Diagrame radiale\",\n no_subplots_charts: 'Exclusiv grafice',\n no_plots: 'Fără grafice. Adaugă unul',\n no_data: \"Nu avem date disponibile\",\n tooltip: {\n show_all_features_on_map: \"Filtrează toate graficele după geometriile vizibile în hartă\",\n show_feature_on_map: \"Filtrează graficul cu geometriile vizibile în hartă\",\n filter_chart: \"Filtrează graficele după entitățile selectate\"\n },\n filters: {\n in_bbox: \"Datele ​​prezentate în grafic sunt filtrate după geometriile vizibile pe hartă\",\n filtertoken: \"Datele ​​prezentate în grafic sunt filtrate după entitățile selectate\",\n in_bbox_filtertoken: \"Datele ​​prezentate în grafic sunt filtrate după entitățile selectate și vizibile pe hartă\",\n relation: {\n in_bbox: \"Datele ​​ prezentate în grafic sunt filtrate după geometriile vizibile în hartă ale entităților relaționate de tip părinte\",\n filtertoken: \"Datele ​​prezentate în grafic sunt filtrate după entitățile relaționate de tip părinte care sunt selectate\",\n in_bbox_filtertoken: \"Datele ​​prezentate în grafic sunt filtrate după entitățile relaționate de tip părinte care sunt selectate și vizibile în hartă\"\n }\n }\n};\n\n},{}],16:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = {\n title: 'Charts',\n pietitle: \"Pie Charts\",\n no_subplots_charts: 'Exclusive plots',\n no_plots: 'No chart. Add at least one plot',\n no_data: \"No Data available\",\n tooltip: {\n show_all_features_on_map: \"Filter all plots according to the geometries visible on the map\",\n show_feature_on_map: \"Filter plot according to the geometries visible on the map\",\n filter_chart: \"Filter plots according to the selected geometries/records\"\n },\n filters: {\n in_bbox: \"The data ​​shown in the plot are filtered according to the geometries visible on the map\",\n filtertoken: \"The data ​​shown in the plot are filtered according to the selected geometries/records\",\n in_bbox_filtertoken: \"The data ​​shown in the plot are filtered according to the geometries/records selected and visible on the map\",\n relation: {\n in_bbox: \"The data​​ shown in the plot are filtered according to the reference (parents) geometries visible on the map\",\n filtertoken: \"The data ​​shown in the plot are filtered according to the reference (parents) selected geometries/records\",\n in_bbox_filtertoken: \"The data ​​shown in the plot are filtered according to the reference (parents) geometries/records selected and visible on the map\"\n }\n }\n};\n\n},{}],17:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _package = require('../package.json');\n\nvar _i18n = require('./i18n');\n\nvar _i18n2 = _interopRequireDefault(_i18n);\n\nvar _app = require('./app');\n\nvar _app2 = _interopRequireDefault(_app);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = {\n name: _package.name,\n i18n: _i18n2.default,\n app: _app2.default\n};\n\n},{\"../package.json\":19,\"./app\":7,\"./i18n\":12}],18:[function(require,module,exports){\nvar _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\nvar _config = require('./config');\n\nvar _config2 = _interopRequireDefault(_config);\n\nvar _Multiplot = require('./components/sidebar/Multiplot.vue');\n\nvar _Multiplot2 = _interopRequireDefault(_Multiplot);\n\nvar _service = require('./service');\n\nvar _service2 = _interopRequireDefault(_service);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar BasePlugin = g3wsdk.core.plugin.Plugin;\n\n\nnew (function (_BasePlugin) {\n _inherits(Plugin, _BasePlugin);\n\n function Plugin() {\n _classCallCheck(this, Plugin);\n\n var name = _config2.default.name,\n i18n = _config2.default.i18n;\n\n var _this = _possibleConstructorReturn(this, (Plugin.__proto__ || Object.getPrototypeOf(Plugin)).call(this, {\n name: name,\n service: _service2.default,\n i18n: i18n\n }));\n\n _this.service.once('ready', function () {\n if (_this.registerPlugin(_this.config.gid)) {\n _this.setupGUI();\n _this.setReady(true);\n }\n });\n\n _this.service.init(_this.config);\n return _this;\n }\n\n _createClass(Plugin, [{\n key: 'setupGUI',\n value: function setupGUI() {\n var _this2 = this;\n\n this.createSideBarComponent(_Multiplot2.default, {\n id: 'qplotly',\n title: 'plugins.qplotly.title',\n open: false,\n collapsible: true,\n iconConfig: {\n color: 'red',\n icon: 'chart-area'\n },\n mobile: true,\n events: {\n open: {\n when: 'before',\n cb: function () {\n var _ref = _asyncToGenerator(function* (bool) {\n yield _this2.service.showChart(bool);\n });\n\n function cb(_x) {\n return _ref.apply(this, arguments);\n }\n\n return cb;\n }()\n }\n },\n sidebarOptions: { position: 1 }\n });\n }\n }, {\n key: 'unload',\n value: function unload() {\n this.service.clear();\n }\n }]);\n\n return Plugin;\n}(BasePlugin))();\n\n},{\"./components/sidebar/Multiplot.vue\":6,\"./config\":17,\"./service\":20}],19:[function(require,module,exports){\nmodule.exports={\n \"name\": \"qplotly\",\n \"version\": \"3.9.0\",\n \"description\": \"Data plotly plugin \",\n \"main\": \"index.js\",\n \"scripts\": {},\n \"repository\": {\n \"type\": \"git\",\n \"url\": \"git+https://github.com/g3w-suite/g3w-client-plugin-qplotly.git\"\n },\n \"author\": \"\",\n \"license\": \"ISC\",\n \"bugs\": {\n \"url\": \"https://github.com/g3w-suite/g3w-client-plugin-qplotly/issues\"\n },\n \"homepage\": \"https://github.com/g3w-suite/g3w-client-plugin-qplotly#readme\"\n}\n\n},{}],20:[function(require,module,exports){\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _slicedToArray = function () { function sliceIterator(arr, i) { var _arr = []; var _n = true; var _d = false; var _e = undefined; try { for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"]) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; } return function (arr, i) { if (Array.isArray(arr)) { return arr; } else if (Symbol.iterator in Object(arr)) { return sliceIterator(arr, i); } else { throw new TypeError(\"Invalid attempt to destructure non-iterable instance\"); } }; }();\n\nvar _headeraction = require('./components/content/headeraction.vue');\n\nvar _headeraction2 = _interopRequireDefault(_headeraction);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\nfunction _asyncToGenerator(fn) { return function () { var gen = fn.apply(this, arguments); return new Promise(function (resolve, reject) { function step(key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { return Promise.resolve(value).then(function (value) { step(\"next\", value); }, function (err) { step(\"throw\", err); }); } } return step(\"next\"); }); }; }\n\nvar _g3wsdk$core$utils = g3wsdk.core.utils,\n base = _g3wsdk$core$utils.base,\n inherit = _g3wsdk$core$utils.inherit,\n XHR = _g3wsdk$core$utils.XHR,\n debounce = _g3wsdk$core$utils.debounce,\n toRawType = _g3wsdk$core$utils.toRawType;\nvar GUI = g3wsdk.gui.GUI;\nvar ApplicationState = g3wsdk.core.ApplicationState;\nvar PluginService = g3wsdk.core.plugin.PluginService;\nvar CatalogLayersStoresRegistry = g3wsdk.core.catalog.CatalogLayersStoresRegistry;\n\n\nvar QPlotlyComponent = require('./components/content/qplotly');\n\nvar BASEQPLOTLYAPIURL = '/qplotly/api/trace';\n\nfunction Service() {\n var _this2 = this;\n\n base(this);\n // get mapService\n this.mapService = GUI.getService('map');\n //get Query Service\n this.queryResultService = GUI.getService('queryresults');\n // get current map CRS\n this.mapCrs = this.mapService.getCrs();\n // initialize load plots as empty Object\n this.loadedplots = {};\n //Initial state is false\n this.loading = false;\n //Initial state is false\n this.showCharts = false;\n // set state of plugin reactive using Vue.observable\n this.state = Vue.observable({\n loading: false, // loading purpose\n geolayer: false,\n positions: [],\n tools: {\n map: {\n toggled: false,\n disabled: false\n }\n }\n });\n // relation data\n this.relationData = null;\n this._relationIdName = {};\n this.customParams = {\n bbox: undefined\n };\n //store Openlayers key event for map moveend\n this.keyMapMoveendEvent = {\n key: null,\n plotIds: []\n };\n this.mainbboxtool = false;\n var layersId = new Set();\n // init method service\n this.init = function () {\n var _this = this;\n\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n // get plugin config\n this.config = config;\n // charts container coming from query results\n this.chartContainers = [];\n //event handler of change chart\n //@param layerId Layer id passed by filter token add or remove to a specific layer\n this.changeChartsEventHandler = debounce(function () {\n var _ref2 = _asyncToGenerator(function* (_ref) {\n var layerId = _ref.layerId;\n\n // change if one of these condition is true\n var change = true === _this.showCharts && \"undefined\" === typeof _this.relationData && \"undefined\" !== _this.config.plots.find(function (plot) {\n return _this.customParams.bbox || plot.qgs_layer_id === layerId && true === plot.show;\n });\n // in case of a filter is change on showed chart it redraw the chart\n if (true === change) {\n //array of plot to reload\n var plotreload = [];\n //check if there is a plot that need to update data when move map\n var isTherePlotListensMoveEnd = _this.keyMapMoveendEvent.plotIds.length > 0;\n //it there is a plot\n if (true === isTherePlotListensMoveEnd) {\n\n _this.keyMapMoveendEvent.plotIds.forEach(function (plotId) {\n var plot = _this.config.plots.find(function (plot) {\n return plot.id === plotId.id;\n });\n plot.filters = [];\n plotreload.push(plot); //add plot to plot reaload\n });\n }\n\n _this.setBBoxParameter(isTherePlotListensMoveEnd);\n\n // check if filtertoken is added or removed from layer\n if (layerId) {\n\n _this.getShowPlots(true).forEach(function (plot) {\n if (plot.qgs_layer_id === layerId) {\n plotreload.push(plot);\n }\n });\n }\n try {\n\n var plotIds = void 0;\n\n if (plotreload.length > 0) {\n\n plotIds = plotreload.map(function (plot) {\n //need to clear data of plot\n _this.clearDataPlot(plot);\n return plot.id;\n });\n }\n\n yield _this.getChartsAndEmit({ plotIds: plotIds });\n } catch (e) {}\n }\n });\n\n return function (_x2) {\n return _ref2.apply(this, arguments);\n };\n }(), 1500);\n\n //loop over plots\n this.config.plots.forEach(function (plot, index) {\n // in case of title is an object get text attribute otherwise get title\n //It is necessary depend of which plotly library version is installed on server\n var title = toRawType(plot.plot.layout.title) === 'Object' ? plot.plot.layout.title.text : plot.plot.layout.title;\n //add plot id\n _this.state.positions.push(plot.id);\n //set relation to null\n plot.withrelations = null;\n /*\n * @since 3.5.1\n * data attribute store data\n * */\n plot.data = null;\n //set already loaded false\n plot.loaded = false;\n plot.plot.layout._title = title;\n plot.label = title || 'Plot id [' + plot.id + ']';\n // set auto margin\n plot.plot.layout.xaxis.automargin = true;\n plot.plot.layout.yaxis.automargin = true;\n //end auto margin\n plot.filters = [];\n // get layer id\n var layerId = plot.qgs_layer_id;\n //add to Array layerId\n layersId.add(layerId);\n // listen layer change filter to reload the charts\n var layer = CatalogLayersStoresRegistry.getLayerById(layerId);\n // check if layer has geometry\n var geolayer = layer.isGeoLayer();\n plot.crs = geolayer ? layer.getCrs() : undefined;\n plot.tools = {\n filter: layer.getFilter(), // get reactive layer filter attribute : {filter: {active: }}\n selection: layer.getSelection(), // get reactive layer selection attribute : {selection: {active: }}\n geolayer: Vue.observable({\n show: geolayer, // if is geolayer show map tool\n active: false // start to false\n })\n };\n // check if a layer has child (relation)\n //so add withrerlations attribute to plot\n if (layer.isFather()) {\n var relations = [];\n layer.getRelations().getArray().forEach(function (relation) {\n relation.getFather() === layerId && relations.push({\n id: relation.getId(), // relation id\n relationLayer: relation.getChild() // relation layer child\n });\n _this._relationIdName[relation.getId()] = relation.getName();\n });\n plot.withrelations = {\n relations: relations,\n data: null\n }; // add Array relations\n }\n // listen layer change filtertokenchange\n layer.on('filtertokenchange', _this.changeChartsEventHandler);\n });\n //\n BASEQPLOTLYAPIURL = BASEQPLOTLYAPIURL + '/' + this.getGid();\n\n this.queryResultService.addLayersPlotIds([].concat(_toConsumableArray(layersId)));\n // listen show-chart event from query result service\n this.queryResultService.on('show-chart', this.showChartsOnContainer);\n // listen hide-chart event from query result service\n this.queryResultService.on('hide-chart', this.clearChartContainers);\n // get close component event key when component (right element where result are show is closed)\n this.closeComponentKeyEevent = this.queryResultService.onafter('closeComponent', this.clearChartContainers);\n\n this.setContentChartTools();\n\n // Emit plugin service is ready\n this.emit('ready');\n };\n\n /**\n * Method called from queryResultService on 'show-chart' event\n * @param ids\n * @param container\n * @param relationData\n */\n this.showChartsOnContainer = function (ids, container, relationData) {\n var findContainer = _this2.chartContainers.find(function (queryresultcontainer) {\n return container.selector === queryresultcontainer.container.selector;\n });\n if (\"undefined\" === typeof findContainer) {\n _this2.chartContainers.push({\n container: container,\n component: null\n });\n }\n\n //clear already plot loaded by query service\n _this2.config.plots.forEach(function (plot) {\n if (plot.loaded) {\n _this2.clearDataPlot(plot);\n }\n });\n\n _this2.showChart(\"undefined\" === typeof findContainer, ids, container, relationData);\n };\n\n /**\n * Method to clear chart containers\n * @param container\n */\n this.clearChartContainers = function (container) {\n\n _this2.chartContainers = _this2.chartContainers.filter(function (queryResultsContainer) {\n if (!container || container.selector === queryResultsContainer.container.selector) {\n $(queryResultsContainer.component.$el).remove();\n queryResultsContainer.component.$destroy();\n return false;\n } else return true;\n });\n //clear already plot loaded by query service\n _this2.config.plots.forEach(function (plot) {\n if (plot.loaded) {\n _this2.clearDataPlot(plot);\n }\n });\n };\n\n /**\n * @since 3.5.2\n * @returns {number}\n */\n this.getNumberOfShowPlots = function () {\n return this.getShowPlots(true).length;\n };\n\n /**\n * Method to toggle filter token on project layer\n * @param layerId\n */\n this.toggleLayerFilter = function () {\n var _ref3 = _asyncToGenerator(function* (layerId) {\n var layer = CatalogLayersStoresRegistry.getLayerById(layerId);\n if (\"undefined\" !== typeof layer) {\n yield layer.toggleFilterToken();\n }\n });\n\n return function (_x3) {\n return _ref3.apply(this, arguments);\n };\n }();\n\n /**\n * Method to set array of active filter on a plot\n * map bbox or filtertoken for example\n * @param plot\n */\n this.setActiveFilters = function (plot) {\n var change = false;\n var _filters = [].concat(_toConsumableArray(plot.filters));\n plot.filters = [];\n //check if active filter filtertoken is active\n if (true === plot.tools.filter.active) {\n plot.filters.push('filtertoken');\n }\n //check if map bbox tools on plo is active\n if (true === plot.tools.geolayer.active) {\n plot.filters.length > 0 ? plot.filters.splice(0, 1, 'in_bbox_filtertoken') : plot.filters.push('in_bbox');\n }\n };\n\n /**\n * Get new data charts and emit change-charts listen by qplotly.vue component to redraw charts\n * @param plotIds\n * @returns {Promise}\n */\n this.getChartsAndEmit = _asyncToGenerator(function* () {\n var _ref5 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n plotIds = _ref5.plotIds;\n\n //get charts\n var _ref6 = yield this.getCharts({ plotIds: plotIds }),\n charts = _ref6.charts,\n order = _ref6.order;\n // charts are change\n\n\n this.emit('change-charts', { charts: charts, order: order });\n });\n\n /**\n * Method to show plot chart\n * @param plot\n * @returns {Promise}\n */\n this.showPlot = function () {\n var _ref7 = _asyncToGenerator(function* (plot) {\n var _this3 = this;\n\n // only if geolayer tools is show\n if (plot.tools.geolayer.show) {\n // get active boolean from map toggled\n plot.tools.geolayer.active = this.state.tools.map.toggled;\n // in case of already register move map event\n if (this.keyMapMoveendEvent.key) {\n // add current plot id\n this.keyMapMoveendEvent.plotIds.push({\n id: plot.id,\n active: this.state.tools.map.toggled\n });\n }\n }\n\n /**\n * set main map geolayer tools based on if there are plot belong to a geolayer\n */\n this.setContentChartTools();\n // if there are chart to reload\n // in case of parent plot relations\n if (null !== plot.withrelations) {\n //need to check if other plot with the same qgs_layer_id has already\n //loaded child plot\n if (\"undefined\" === typeof this.getShowPlots(true).find(function (_plot) {\n return _plot.id !== plot.id && _plot.qgs_layer_id === plot.qgs_layer_id;\n })) {\n //not find a show plot with same qgs_layer_id\n this.getShowPlots().forEach(function (_plot) {\n //find a child plot show\n if (_plot.id !== plot.id) {\n if (\"undefined\" !== typeof plot.withrelations.relations.find(function (_ref8) {\n var relationLayer = _ref8.relationLayer;\n return _plot.qgs_layer_id === relationLayer;\n })) {\n //if found clear plot data to force to reload by parent plot\n var plotIds = _this3.clearDataPlot(_plot);\n if (plotIds.length > 0) {\n _this3.getChartsAndEmit({\n plotIds: plotIds\n });\n }\n }\n }\n });\n }\n }\n\n yield this.getChartsAndEmit({ plotIds: [plot.id] });\n });\n\n return function (_x5) {\n return _ref7.apply(this, arguments);\n };\n }();\n\n /**\n * Method to hide plot chart\n * @param plot\n * @returns {Promise}\n * */\n this.hidePlot = function () {\n var _ref9 = _asyncToGenerator(function* (plot) {\n // check if geolayer tool (map) is show (geolayer)\n if (plot.tools.geolayer.show) {\n // deactive geolayer tools\n plot.tools.geolayer.active = false;\n //check if there is a listen key moveend\n if (this.keyMapMoveendEvent.key) {\n // remove map Move end from plotids keys\n this.keyMapMoveendEvent.plotIds = this.keyMapMoveendEvent.plotIds.filter(function (plotId) {\n return plot.id !== plotId.id;\n });\n }\n // if no plots have active geo tools\n if (this.keyMapMoveendEvent.plotIds.length === 0) {\n // set request params to undefined\n this.customParams.bbox = undefined;\n //un toggle main chart map tool\n this.state.tools.map.toggled = false;\n }\n }\n // clear data of plot\n var plotIds = this.clearDataPlot(plot);\n if (plotIds.length > 0) {\n this.getChartsAndEmit({\n plotIds: plotIds\n });\n }\n //\n this.setContentChartTools();\n // Remove filters eventually\n this.setActiveFilters(plot);\n //\n\n var _createChartsObject = this.createChartsObject(),\n charts = _createChartsObject.charts,\n order = _createChartsObject.order;\n // this is useful to Qplotly component to\n // update charts\n\n\n this.emit('show-hide-chart', {\n plotId: plot.id,\n action: 'hide',\n filter: plot.filters,\n charts: charts,\n order: order\n });\n });\n\n return function (_x6) {\n return _ref9.apply(this, arguments);\n };\n }();\n\n /**\n * TODO\n * @param order of plot ids\n * @returns {{charts: {}, order: (*|*[])}}\n */\n this.createChartsObject = function () {\n var _ref10 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n order = _ref10.order;\n\n return {\n order: order || this.getShowPlots(true).map(function (plot) {\n return plot.id;\n }),\n charts: {}\n };\n };\n\n /**\n * Method to get charts plots of plugin configuration\n * @returns {[]|*}\n */\n this.getPlots = function () {\n return this.config.plots;\n };\n\n /**\n * TODO\n */\n this.clearLoadedPlots = function () {\n var _this4 = this;\n\n this.state.tools.map.toggled = false;\n this.customParams.bbox = undefined;\n this.handleKeyMapMoveendEvent({\n listen: false\n });\n this.getShowPlots(true).forEach(function (plot) {\n _this4.clearDataPlot(plot);\n if (true === plot.tools.geolayer.show) {\n plot.tools.geolayer.active = false;\n }\n plot.filters = [];\n });\n this.showCharts = false;\n };\n\n /**\n * TODO\n * @param force\n */\n this.setBBoxParameter = function () {\n var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n this.customParams.bbox = force || true === this.state.tools.map.toggled ? this.mapService.getMapBBOX().toString() : undefined;\n };\n\n /**\n * TODO\n * @param plotIds\n * @returns {Promise}\n */\n this.updateMapBBOXData = function () {\n var _ref12 = _asyncToGenerator(function* (_ref11) {\n var _this5 = this;\n\n var id = _ref11.id,\n active = _ref11.active;\n\n var plotIds = [{\n id: id,\n active: active\n }];\n\n var plot = this.getPlotById(id);\n\n this.getShowPlots(true).forEach(function (_plot) {\n if (_plot.id !== id && _plot.qgs_layer_id === plot.qgs_layer_id) {\n _plot.tools.geolayer.active = active;\n _this5.clearDataPlot(_plot);\n plotIds.push({\n id: _plot.id,\n active: active\n });\n }\n });\n\n //set bbox parameter to force\n this.setBBoxParameter(true);\n\n this.mainbboxtool = false;\n\n this.handleKeyMapMoveendEvent({\n listen: true,\n plotIds: plotIds\n });\n\n this.clearDataPlot(plot);\n\n return yield this.getCharts({\n plotIds: plotIds.map(function (_ref13) {\n var id = _ref13.id;\n return id;\n })\n });\n });\n\n return function (_x9) {\n return _ref12.apply(this, arguments);\n };\n }();\n\n /**\n * Handle moveend map event\n * @param listen\n * @param plotIds\n */\n this.handleKeyMapMoveendEvent = function () {\n var _ref14 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref14$listen = _ref14.listen,\n listen = _ref14$listen === undefined ? false : _ref14$listen,\n _ref14$plotIds = _ref14.plotIds,\n plotIds = _ref14$plotIds === undefined ? [] : _ref14$plotIds;\n\n if (listen) {\n // which plotIds need to be trigger the moveed map event\n this.keyMapMoveendEvent.plotIds = plotIds;\n // get map moveend event just one time\n if (null === this.keyMapMoveendEvent.key) {\n this.keyMapMoveendEvent.key = this.mapService.getMap().on('moveend', this.changeChartsEventHandler);\n }\n } else {\n // remove handler of moveend map\n ol.Observable.unByKey(this.keyMapMoveendEvent.key);\n this.keyMapMoveendEvent.key = null;\n // reset to empty\n this.keyMapMoveendEvent.plotIds = [];\n }\n };\n\n /**\n * Method reload chart data for every charts\n */\n this.updateCharts = _asyncToGenerator(function* () {\n var _this6 = this;\n\n var change = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n this.setLoadingCharts(true);\n var charts = void 0;\n this.mainbboxtool = true;\n this.state.tools.map.toggled = change ? !this.state.tools.map.toggled : this.state.tools.map.toggled;\n //set bbox parameter\n this.setBBoxParameter();\n //get active plot related to geolayer\n var activeGeolayerPlots = this.getShowPlots(true).filter(function (plot) {\n if (true === plot.tools.geolayer.show) {\n plot.tools.geolayer.active = plot.tools.geolayer.show && _this6.state.tools.map.toggled;\n return _this6.state.tools.map.toggled && plot.tools.geolayer.active || true;\n } else {\n return false;\n }\n });\n\n this.handleKeyMapMoveendEvent({\n listen: this.state.tools.map.toggled,\n plotIds: activeGeolayerPlots.map(function (plot) {\n return {\n id: plot.id,\n active: plot.tools.geolayer.active\n };\n })\n });\n\n try {\n var plotIds = activeGeolayerPlots.map(function (plot) {\n _this6.clearDataPlot(plot);\n return plot.id;\n });\n charts = yield this.getCharts({\n plotIds: plotIds\n });\n } catch (e) {}\n\n return charts;\n });\n\n /**\n * @param plot object\n */\n this.clearDataPlot = function (plot) {\n var _this7 = this;\n\n //plotId eventually to reload\n var plotIds = [];\n //set loaded data to false\n plot.loaded = false;\n //set dat to null\n plot.data = null;\n //in case of plot father and has relation data\n if (null !== plot.withrelations) {\n //and data related to\n if (null !== plot.withrelations.data) {\n Object.values(plot.withrelations.data).forEach(function (dataRelationPlot) {\n dataRelationPlot.forEach(function (_ref16) {\n var id = _ref16.id;\n\n _this7.clearDataPlot(_this7.getPlotById(id));\n plotIds.push(id);\n });\n });\n plot.withrelations.data = null;\n }\n } else {\n //check if we need to remove relation data coming from parent plot\n this.getShowPlots(true).forEach(function (_plot) {\n //plot has different id from current hide plot and it has dara relations\n if (_plot.id !== plot.id && null !== _plot.withrelations && null !== _plot.withrelations.data) {\n Object.entries(_plot.withrelations.data).forEach(function (_ref17) {\n var _ref18 = _slicedToArray(_ref17, 2),\n relationId = _ref18[0],\n dataRelationPlot = _ref18[1];\n\n dataRelationPlot.forEach(function (_ref19, index) {\n var id = _ref19.id;\n\n if (id === plot.id) {\n dataRelationPlot.splice(index, 1);\n }\n });\n if (dataRelationPlot.length === 0) {\n delete _plot.withrelations.data[relationId];\n if (Object.keys(_plot.withrelations.data).length === 0) {\n _plot.withrelations.data = null;\n }\n }\n });\n }\n });\n }\n return plotIds;\n };\n\n /**\n * method to set geo-layer tools true or false if some plot chart has geolayer show\n */\n this.setContentChartTools = function () {\n // if no show plot have geolayer tool to show (geolayer) hide charts geolayer tool\n this.state.geolayer = \"undefined\" !== typeof this.getShowPlots(true).find(function (plot) {\n return plot.tools.geolayer.show;\n });\n };\n\n /**\n * Method to show loading charts data (loading === true)\n * is on going\n * @param loading \n * @returns {undefined}\n */\n this.setLoadingCharts = function (loading) {\n this.state.loading = loading;\n\n if (\"undefined\" === typeof this.relationData) {\n GUI.disableSideBar(loading);\n GUI.setLoadingContent(loading);\n }\n };\n\n /**\n * Return filter plots base on show parameter\n * @param show \n * @returns {Array} filtered plots\n */\n this.getShowPlots = function () {\n var show = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n\n return this.config.plots.filter(function (plot) {\n return show === plot.show;\n });\n };\n\n /**\n * @since 3.5.2\n */\n this.getPlotById = function (id) {\n return this.config.plots.find(function (plot) {\n return plot.id === id;\n });\n };\n\n /**\n * Method to get data charts from server\n * @param layerIds // provide by query by result service otherwise is undefined\n * @param plotIds // of plots id to show\n * @param relationData // provide by query by result service otherwise is undefined\n * @returns {Promise}\n */\n this.getCharts = _asyncToGenerator(function* () {\n var _this8 = this;\n\n var _ref21 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n layerIds = _ref21.layerIds,\n plotIds = _ref21.plotIds,\n relationData = _ref21.relationData;\n\n //console.log({layerIds, plotIds, relationData})\n // check if it has relation data\n this.relationData = relationData;\n //return a Promise\n return new Promise(function (resolve) {\n var plots = void 0; // array of plots that need to be get data to show charts\n if (\"undefined\" !== typeof layerIds) {\n //get plots request from Query Result Service\n plots = _this8.config.plots.filter(function (plot) {\n return layerIds.indexOf(plot.qgs_layer_id) !== -1;\n });\n } else if (\"undefined\" !== typeof plotIds) {\n //filter only plots that have id belong to plotIds array\n //set by check uncheck plot on sidebar interface\n plots = [];\n plotIds.forEach(function (plotId) {\n //check if is child of already show plots\n var addPlot = _this8.getShowPlots(true).find(function (plot) {\n return plot.id !== plotId && null !== plot.withrelations &&\n // find a plot that has withrelations array and with relationLayer the same\n // layer id belong to plot qgis_layer_id\n \"undefined\" !== typeof plot.withrelations.relations.find(function (_ref22) {\n var relationId = _ref22.id,\n relationLayer = _ref22.relationLayer;\n return relationLayer === _this8.getPlotById(plotId).qgs_layer_id && (null === plot.withrelations.data || \"undefined\" === typeof plot.withrelations.data[relationId] || \"undefined\" === typeof plot.withrelations.data[relationId].find(function (_ref23) {\n var id = _ref23.id;\n return id === plotId;\n }));\n });\n });\n //if not find add plot by plotId\n if (\"undefined\" === typeof addPlot) {\n addPlot = _this8.getPlotById(plotId);\n }\n //check if already (in case of parent plots) added to plots\n if (\"undefined\" === typeof plots.find(function (plot) {\n return plot === addPlot;\n })) {\n plots.push(addPlot);\n }\n });\n } else {\n // get only plots that have attribute show to true\n // and not in relation with other plot show\n plots = _this8.getShowPlots(true).filter(function (plot) {\n return (\n // and if not belong to show plot father relation\n \"undefined\" === typeof _this8.getShowPlots(true).find(function (_plot) {\n return (\n // is not the same plot id\n plot.id !== _plot.id &&\n // plat has relations\n null !== _plot.withrelations &&\n // find a plot that has withrelations array and with relationLayer the same\n // layer id belog to plot qgis_layer_id\n \"undefined\" !== typeof _plot.withrelations.relations.find(function (_ref24) {\n var id = _ref24.id,\n relationLayer = _ref24.relationLayer;\n return relationLayer === plot.qgs_layer_id;\n })\n );\n })\n );\n });\n }\n // create charts Object\n var chartsObject = _this8.createChartsObject({\n order: layerIds && plots.map(function (plot) {\n return plot.id;\n })\n });\n // set main map visible filter tool\n // check if is supported\n if (Promise.allSettled) {\n // create promises array\n var promises = [];\n // TODO\n var chartsplots = [];\n // set that register already relation loaded to avoid to replace the same plot multi time\n var relationIdAlreadyLoaded = new Set();\n //loop through array plots\n plots.forEach(function (plot) {\n var promise = void 0;\n var plotRelationData = void 0; //variable contain already data coming from father plots\n // in case of no request (relation) and not called from query\n if (\n //if already loaded (show)\n true === plot.loaded && (null === plot.withrelations || null !== plot.withrelations.data && _this8.getShowPlots(true).filter(function (_plot) {\n return \"undefined\" !== typeof plot.withrelations.relations.find(function (_ref25) {\n var relationLayer = _ref25.relationLayer;\n return _plot.qgs_layer_id === relationLayer;\n });\n }).reduce(function (notChildPlotData, _plot) {\n notChildPlotData += \"undefined\" !== typeof Object.values(plot.withrelations.data).find(function (relationData) {\n return \"undefined\" !== typeof relationData.find(function (_ref26) {\n var id = _ref26.id,\n data = _ref26.data;\n return id === _plot.id;\n });\n }) ? 0 : 1;\n return notChildPlotData;\n }, 0) === 0)) {\n promises.push(Promise.resolve({\n result: true,\n data: plot.data,\n relations: plot.withrelations && plot.withrelations.data\n }));\n } else if (\n // no relation data passed by query result service\n \"undefined\" === typeof relationData &&\n //check if plots are more than one\n _this8.getShowPlots(true).length > 1 &&\n //find if is a plots that belong to plot father\n \"undefined\" !== typeof _this8.getShowPlots(true).find(function (_plot) {\n if (_plot.id !== plot.id && null !== _plot.withrelations && null !== _plot.withrelations.data && \"undefined\" !== typeof Object.values(_plot.withrelations.data).find(function (relationData) {\n return \"undefined\" !== typeof relationData.find(function (_ref27) {\n var id = _ref27.id,\n data = _ref27.data;\n\n if (id === plot.id) {\n plotRelationData = data;\n return true;\n }\n });\n })) {\n promises.push(Promise.resolve({\n result: true,\n data: [plotRelationData]\n }));\n\n return true;\n }\n })) {} else {\n //check if we need to add bbox parameter to request\n var addInBBoxParam = _this8.keyMapMoveendEvent.plotIds.length > 0 ? _this8.keyMapMoveendEvent.plotIds.filter(function (plotIds) {\n return plotIds.active;\n }).map(function (plotId) {\n return plotId.id;\n }).indexOf(plot.id) !== -1 : true;\n\n //withrealtion get parameter.\n // Initialize as undefined\n var withrelations = void 0;\n //check if plot has relation child\n if (plot.withrelations) {\n withrelations = plot.withrelations.relations.filter(function (_ref28) {\n var relationId = _ref28.id,\n relationLayer = _ref28.relationLayer;\n\n if (\"undefined\" !== typeof _this8.getShowPlots(true).find(function (_plot) {\n return _plot.qgs_layer_id === relationLayer && false === _plot.loaded;\n }) && false === relationIdAlreadyLoaded.has(relationId)) {\n relationIdAlreadyLoaded.add(relationId);\n plot.loaded = false;\n return true;\n }\n }).map(function (_ref29) {\n var id = _ref29.id;\n return id;\n }).join(',') || undefined;\n }\n //set initial to undefined\n var relationsonetomany = [undefined];\n\n //in_bbox parameter in case of tool map toggled\n var in_bbox = addInBBoxParam && _this8.customParams.bbox ? _this8.customParams.bbox : undefined;\n\n //case called by Query result service\n if (\"undefined\" !== typeof _this8.relationData) {\n var chartsRelations = _this8.relationData.relations.filter(function (relation) {\n return plot.qgs_layer_id === relation.referencingLayer;\n }).map(function (relation) {\n return relation.id + '|' + _this8.relationData.fid;\n });\n relationsonetomany = chartsRelations.length ? chartsRelations : relationsonetomany;\n }\n\n relationsonetomany.forEach(function (relationonetomany) {\n chartsplots.push(plot);\n promise = true === plot.loaded ? Promise.resolve({\n data: plot.data\n }) :\n // server request data\n XHR.get({\n url: BASEQPLOTLYAPIURL + '/' + plot.qgs_layer_id + '/' + plot.id + '/',\n params: {\n withrelations: withrelations, // relations parameter\n filtertoken: ApplicationState.tokens.filtertoken || undefined, //filtertoken\n relationonetomany: relationonetomany,\n in_bbox: in_bbox //in bbox\n }\n });\n\n promises.push(promise);\n });\n }\n });\n // wait all promises\n Promise.allSettled(promises).then(function () {\n var _ref30 = _asyncToGenerator(function* (promisesData) {\n promisesData.forEach(function (promise, index) {\n // only if request has response\n if (promise.status === 'fulfilled' && promise.value.result) {\n var _promise$value = promise.value,\n data = _promise$value.data,\n relation = _promise$value.relation,\n relations = _promise$value.relations;\n\n if (relation) return; // in case of relation do nothing\n var plot = chartsplots[index];\n plot.data = data;\n plot.loaded = true;\n plot.plot.layout.title = plot.plot.layout._title;\n _this8.setActiveFilters(plot);\n // in case of multiple chart plot of same plot\n var chart = {};\n if (chartsObject.charts[plot.id]) {\n chartsObject.charts[plot.id].push(chart);\n } else {\n chartsObject.charts[plot.id] = [chart];\n }\n chart.filters = plot.filters;\n chart.layout = plot.plot.layout;\n chart.tools = plot.tools;\n chart.layerId = plot.qgs_layer_id;\n chart.title = plot.plot.layout.title;\n chart.data = data[0];\n //in case of return data has a relations attributes data\n if (relations) {\n //add data to relations\n if (null === plot.withrelations.data) {\n plot.withrelations.data = relations;\n } else {\n Object.keys(relations).forEach(function (relationId) {\n plot.withrelations.data[relationId] = relations[relationId];\n });\n }\n //loop through relations id plot\n Object.keys(relations).forEach(function (relationId) {\n //get relation data\n relations[relationId].forEach(function (_ref31) {\n var id = _ref31.id,\n data = _ref31.data;\n\n //get father filter plots\n var fatherPlotFilters = plot.filters;\n //filter only show plot\n _this8.config.plots.filter(function (plot) {\n return plot.show;\n }).find(function (plot, index) {\n if (plot.id === id) {\n _this8.setActiveFilters(plot);\n plot.loaded = true;\n plot.data = data;\n var _chart = {};\n if (chartsObject.charts[plot.id]) chartsObject.charts[plot.id].push(_chart);else chartsObject.charts[plot.id] = [_chart];\n var layout = plot.plot.layout;\n layout.title = _this8._relationIdName[relationId] + ' ' + layout._title;\n\n if (fatherPlotFilters.length) {\n plot.filters.push('relation.' + fatherPlotFilters[0]);\n }\n\n _chart.data = data[0];\n _chart.filters = plot.filters;\n _chart.layout = layout;\n _chart.tools = plot.tools;\n _chart.layerId = plot.qgs_layer_id;\n _chart.title = plot.plot.layout.title;\n return true;\n }\n });\n });\n });\n }\n } else {\n // some error occurs during get data from server\n var _plot2 = chartsObject[index];\n _this8.setActiveFilters(_plot2);\n var _chart2 = {};\n if (chartsObject.charts[_plot2.id]) {\n chartsObject.charts.push(_chart2);\n } else {\n chartsObject.charts = [_chart2];\n }\n _chart2.filters = _plot2.filters;\n _chart2.layout = _plot2.plot.layout;\n _chart2.tools = _plot2.tools;\n _chart2.layerId = _plot2.qgs_layer_id;\n _chart2.title = _plot2.plot.layout.title;\n _chart2.data = null;\n }\n });\n\n _this8.showCharts = true;\n\n _this8.removeInactivePlotIds();\n\n resolve(chartsObject);\n });\n\n return function (_x14) {\n return _ref30.apply(this, arguments);\n };\n }());\n }\n });\n });\n\n /**\n *\n */\n this.removeInactivePlotIds = function () {\n if (false === this.state.tools.map.toggled) {\n this.keyMapMoveendEvent.plotIds = this.keyMapMoveendEvent.plotIds.filter(function (plotId) {\n return plotId.active;\n });\n if (this.keyMapMoveendEvent.plotIds.length === 0 && this.keyMapMoveendEvent.key) {\n this.handleKeyMapMoveendEvent({ listen: false });\n }\n }\n };\n\n /**\n *\n * @returns {*}\n */\n this.getChartLayout = function () {\n return this.config.plots[0].layout;\n };\n /**\n *\n * @returns {*}\n */\n this.getChartConfig = function () {\n return this.config.plots[0].config;\n };\n\n /**\n * Called when queryResultService emit event show-chart\n * or open/close sidebar item\n * @param bool \n * @param ids passed by query result services\n * @param container DOM element - passed by query result service\n * @param relationData Passed by query result service\n * @returns {Promise}\n */\n this.showChart = function (bool, ids, container, relationData) {\n var _this9 = this;\n\n return new Promise(function (resolve) {\n // check if a set true (show chart)\n if (true === bool) {\n // need to be async\n setTimeout(function () {\n // create QPlotly Component\n var content = new QPlotlyComponent({\n service: _this9,\n ids: ids,\n relationData: relationData\n });\n\n // get Internal (Vue) component of g3w Component\n var component = content.getInternalComponent();\n // called by sidebar item\n if (\"undefined\" === typeof container) {\n // once chartsReady event resolve promise\n //set self variable to refer to service\n var self = _this9;\n GUI.showContent({\n closable: false,\n title: 'plugins.qplotly.title',\n style: {\n title: {\n fontSize: '1.3em'\n }\n },\n //set header action tools (ex. map filter)\n headertools: [Vue.extend(_extends({}, _headeraction2.default, {\n data: function data() {\n return {\n state: self.state,\n tools: {\n map: {\n show: self.state.geolayer && !self.relationData,\n disabled: true\n }\n }\n };\n },\n\n methods: {\n updateCharts: function () {\n var _ref32 = _asyncToGenerator(function* () {\n var _ref33 = yield self.updateCharts(true),\n charts = _ref33.charts,\n order = _ref33.order;\n\n yield this.$nextTick();\n self.emit('change-charts', {\n charts: charts,\n order: order\n });\n });\n\n function updateCharts() {\n return _ref32.apply(this, arguments);\n }\n\n return updateCharts;\n }()\n }\n }))],\n content: content\n });\n } else {\n //if not called from Query Result Service\n component.$once('hook:mounted', _asyncToGenerator(function* () {\n container.append(this.$el);\n }));\n component.$mount();\n _this9.chartContainers.find(function (queryResultsContainer) {\n return container.selector === queryResultsContainer.container.selector;\n }).component = component;\n }\n });\n } else {\n if (undefined === container) {\n GUI.closeContent();\n } else {\n _this9.clearChartContainers(container);\n }\n resolve();\n }\n });\n };\n\n /**\n * Clear method\n */\n this.clear = function () {\n var _this10 = this;\n\n GUI.removeComponent('qplotly', 'sidebar', { position: 1 });\n GUI.closeContent();\n // listen layer change filter to reload the charts\n layersId.forEach(function (layerId) {\n var layer = CatalogLayersStoresRegistry.getLayerById(layerId);\n if (\"undefined\" !== typeof layer) {\n layer.off('filtertokenchange', _this10.changeChartWhenFilterChange);\n }\n });\n\n this.mapService = null;\n this.chartContainers = [];\n this.queryResultService.removeListener('show-charts', this.showChartsOnContainer);\n this.queryResultService.un('closeComponent', this.closeComponentKeyEevent);\n this.closeComponentKeyEevent = null;\n layersId.clear();\n this.mainbboxtool = null;\n this.queryResultService = null;\n this.emit('clear');\n };\n}\n\ninherit(Service, PluginService);\n\nexports.default = new Service();\n\n},{\"./components/content/headeraction.vue\":1,\"./components/content/qplotly\":4}]},{},[18]);\n"],"names":["n","window","initConfig","group","plugins","Object","assign","version","hash","branch","r","e","t","o","i","f","c","require","u","a","Error","code","p","exports","call","length","1","module","_asyncToGenerator","fn","gen","apply","this","arguments","Promise","resolve","reject","step","key","arg","info","value","error","done","then","err","defineProperty","default","name","computed","showTools","tools","map","show","watch","state.geolayer","_ref","bool","yield","$nextTick","_x","__esModule","__vue__options__","options","render","_vm","_h","$createElement","_c","_self","staticClass","staticStyle","border-radius","background-color","font-size","margin-right","directives","rawName","state","expression","modifiers","create","class","g3wtemplate","getFontClass","toggled","font-weight","margin","attrs","data-placement","data-toggle","on","click","$event","stopPropagation","updateCharts","_e","staticRenderFns","2","props","title","type","String","h","style","display","flexDirection","alignItems","height","justifyContent","fontWeight","textAlign","skin-color","$props","3","index","Number","layerId","filter","active","selection","geolayer","filters","Array","showtools","methods","toggleFilter","$emit","toggleBBoxTool","width","padding","min-height","text-align","color","_v","_s","margin-top","list-style-type","padding-left","_l","_scopeId","4","_qplotly","_qplotly2","obj","_g3wsdk$core$utils","g3wsdk","core","utils","base","QPlotlyComponent","undefined","service","ids","relationData","InternalComponent","visible","Vue","extend","internalComponent","inherit","gui","vue","Component","./qplotly.vue","5","_plotheader2","_plotheader","GUI","getUniqueDomId","resizeMixin","Mixins","NoDataComponent","TYPE_VALUES","pie","scatterternary","scatterpolar","mixins","components","plotheader","data","id","insideCointainer","$options","overflowY","order","handleToggleFilter","setLoadingCharts","toggleLayerFilter","handleBBoxTools","_ref3","_this","_ref4","_ref5","updateMapBBOXData","charts","values","reduce","accumulator","_ref6","chart","setCharts","showHideChart","_ref7","_ref8","plotId","_ref8$charts","_ref8$order","action","calculateHeigths","resizePlots","drawAllCharts","resize","_ref9","_this2","promises","forEach","domElement","$refs","setChartPlotHeigth","push","Plotly","Plots","allSettled","_ref10","_ref11","loading","_ref12","_this3","promise","drawPlotlyChart","_ref13","_ref14","_this4","_ref15","_ref15$charts","_ref15$order","keys","observable","setTimeout","_ref16","mounted","jqueryContent","$","parent","outerHeight","siblings","_this5","_ref18","component","config","getChartConfig","layout","isArray","newPlot","innerHTML","propsData","appendChild","$mount","$el","_ref19","visibleCharts","addedHeight","beforeCreate","delayType","created","_ref20","_ref21","getCharts","layerIds","beforeDestroy","off","clearLoadedPlots","position","ref","toggle-bbox-tool","toggle-filter-tool","refInFor","justify-content","align-items","./nodata","./plotheader.vue","6","_service","_service2","plots","getPlots","chartsloading","showHidePlot","plot","domProps","checked","_i","change","$$i","$$a","$$el","target","$$c","$set","concat","slice","g3w-disabled","for","white-space","label","../../service","7","no_subplots","8","pietitle","no_subplots_charts","no_plots","no_data","tooltip","show_all_features_on_map","show_feature_on_map","filter_chart","in_bbox","filtertoken","in_bbox_filtertoken","relation","9","10","11","12","_it2","_interopRequireDefault","_en2","_fi2","_se2","_fr2","_de2","_ro2","_pl2","it","en","fi","se","fr","de","ro","pl","./de","./en","./fi","./fr","./it","./pl","./ro","./se","13","14","15","16","17","_package","_i18n2","_app2","i18n","app","../package.json","./app","./i18n","18","_createClass","Constructor","protoProps","staticProps","defineProperties","prototype","descriptor","enumerable","configurable","writable","_config2","_Multiplot2","BasePlugin","plugin","Plugin","_inherits","subClass","superClass","TypeError","_classCallCheck","self","ReferenceError","__proto__","getPrototypeOf","once","registerPlugin","gid","setupGUI","setReady","init","constructor","setPrototypeOf","createSideBarComponent","open","collapsible","iconConfig","icon","mobile","events","when","cb","showChart","sidebarOptions","clear","./components/sidebar/Multiplot.vue","./config","./service","19","description","main","scripts","repository","url","author","license","bugs","homepage","20","_extends","source","hasOwnProperty","_slicedToArray","arr","Symbol","iterator","sliceIterator","_arr","_n","_d","next","_headeraction","_headeraction2","_toConsumableArray","arr2","from","XHR","debounce","toRawType","ApplicationState","PluginService","CatalogLayersStoresRegistry","catalog","BASEQPLOTLYAPIURL","Service","layersId","mapService","getService","queryResultService","mapCrs","getCrs","loadedplots","showCharts","positions","disabled","_relationIdName","customParams","bbox","keyMapMoveendEvent","plotIds","mainbboxtool","Set","_ref2","chartContainers","changeChartsEventHandler","find","qgs_layer_id","plotreload","isTherePlotListensMoveEnd","setBBoxParameter","getShowPlots","clearDataPlot","getChartsAndEmit","_x2","relations","text","withrelations","loaded","_title","xaxis","automargin","yaxis","layer","add","getLayerById","isGeoLayer","crs","getFilter","getSelection","isFather","getRelations","getArray","getFather","getId","relationLayer","getChild","getName","getGid","addLayersPlotIds","showChartsOnContainer","clearChartContainers","closeComponentKeyEevent","onafter","setContentChartTools","emit","container","findContainer","queryresultcontainer","selector","queryResultsContainer","remove","$destroy","getNumberOfShowPlots","toggleFilterToken","_x3","setActiveFilters","splice","showPlot","_plot","_x5","hidePlot","_createChartsObject","createChartsObject","_x6","handleKeyMapMoveendEvent","listen","getMapBBOX","toString","getPlotById","_x9","_ref14$listen","_ref14$plotIds","getMap","ol","Observable","unByKey","_this6","activeGeolayerPlots","_this7","dataRelationPlot","entries","_ref17","relationId","disableSideBar","setLoadingContent","_this8","chartsplots","relationIdAlreadyLoaded","_ref30","chartsObject","indexOf","addPlot","_ref22","_ref23","_ref24","chartsRelations","relationsonetomany","plotRelationData","_ref25","notChildPlotData","_ref26","result","_ref27","addInBBoxParam","_ref28","has","_ref29","join","referencingLayer","fid","relationonetomany","get","params","tokens","promisesData","_chart2","status","_promise$value","_ref31","fatherPlotFilters","_chart","_plot2","removeInactivePlotIds","_x14","getChartLayout","_this9","_ref32","content","getInternalComponent","showContent","closable","fontSize","headertools","_ref33","$once","append","closeContent","_this10","removeComponent","changeChartWhenFilterChange","removeListener","un","./components/content/headeraction.vue","./components/content/qplotly"],"mappings":"CAAA,KAAM,IAAIA,EAAEC,QAAQA,OAAOC,YAAYD,OAAOC,WAAWC,OAAOF,OAAOC,WAAWC,MAAMC,QAAQJ,IAAIA,EAAW,QAAEK,OAAOC,OAAON,EAAW,SAAG,GAAG,CAACO,QAAQ,QAAQC,KAAK,UAAUC,OAAO,QAAQ,CAAC,EAAG,GAAE,EACzL,SAASC,EAAEC,EAAEX,EAAEY,GAAG,SAASC,EAAEC,EAAEC,GAAG,GAAG,CAACf,EAAEc,GAAG,CAAC,GAAG,CAACH,EAAEG,GAAG,CAAC,IAAIE,EAAE,YAAY,OAAOC,SAASA,QAAQ,GAAG,CAACF,GAAGC,EAAE,OAAOA,EAAEF,EAAE,CAAA,CAAE,EAAE,GAAGI,EAAE,OAAOA,EAAEJ,EAAE,CAAA,CAAE,EAAgD,MAA1CK,EAAE,IAAIC,MAAM,uBAAuBN,EAAE,GAAG,GAAUO,KAAK,mBAAmBF,CAAC,CAAKG,EAAEtB,EAAEc,GAAG,CAACS,QAAQ,EAAE,EAAEZ,EAAEG,GAAG,GAAGU,KAAKF,EAAEC,QAAQ,SAASb,GAAoB,OAAOG,EAAlBF,EAAEG,GAAG,GAAGJ,IAAeA,CAAC,CAAC,EAAEY,EAAEA,EAAEC,QAAQb,EAAEC,EAAEX,EAAEY,CAAC,CAAC,CAAC,OAAOZ,EAAEc,GAAGS,OAAO,CAAC,IAAI,IAAIL,EAAE,YAAY,OAAOD,SAASA,QAAQH,EAAE,EAAEA,EAAEF,EAAEa,OAAOX,CAAC,GAAGD,EAAED,EAAEE,EAAE,EAAE,OAAOD,CAAC,EAAc,CAACa,EAAE,CAAC,SAAST,EAAQU,EAAOJ,GAMxe,SAASK,EAAkBC,GAAM,OAAO,WAAc,IAAIC,EAAMD,EAAGE,MAAMC,KAAMC,SAAS,EAAG,OAAO,IAAIC,QAAQ,SAAUC,EAASC,GAA4S,OAAlS,SAASC,EAAKC,EAAKC,GAAO,IAAM,IAAIC,EAAOV,EAAIQ,GAAKC,CAAG,EAAOE,EAAQD,EAAKC,KAAgD,CAAvC,MAAOC,GAAwB,OAAfN,KAAAA,EAAOM,CAAK,CAAW,CAAE,GAAIF,CAAAA,EAAKG,KAAiC,OAAOT,QAAQC,QAAQM,CAAK,EAAEG,KAAK,SAAUH,GAASJ,EAAK,OAAQI,CAAK,CAAG,EAAG,SAAUI,GAAOR,EAAK,QAASQ,CAAG,CAAG,CAAC,EAA7IV,EAAQM,CAAK,CAAqI,EAAc,MAAM,CAAG,CAAC,CAAG,CAAG,CAJzcpC,OAAOyC,eAAevB,EAAS,aAAc,CAC3CkB,MAAO,CAAA,CACT,CAAC,EAIDlB,EAAQwB,QAAU,CAChBC,KAAM,eACNC,SAAU,CACRC,UAAW,WACT,OAAOlB,KAAKmB,MAAMC,IAAIC,IACxB,CACF,EACAC,MAAO,CACLC,kBACMC,EAAO5B,EAAkB,UAAW6B,GACtCC,MAAM1B,KAAK2B,UAAU,EACrB3B,KAAKmB,MAAMC,IAAIC,KAAOI,CACxB,CAAC,EAED,SAAuBG,GACrB,OAAOJ,EAAKzB,MAAMC,KAAMC,SAAS,CACnC,EAIJ,CACF,EAEIN,EAAOJ,QAAQsC,aAAYlC,EAAOJ,QAAUI,EAAOJ,QAAQwB,SA9B9D,IAgBSS,EAeNM,EAA8C,YAA1B,OAAOnC,EAAOJ,QAAwBI,EAAOJ,QAAQwC,QAASpC,EAAOJ,QAC7FuC,EAAiBE,OAAS,WAAoB,IAAIC,EAAIjC,KAASkC,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAQD,EAAa,UAAEG,EAAG,MAAM,CAACE,YAAY,gBAAgBC,YAAY,CAACC,gBAAgB,MAAMC,mBAAmB,UAAUC,YAAY,QAAQC,eAAe,KAAK,CAAC,EAAE,CAAEV,EAAId,MAAMC,IAAQ,KAAEgB,EAAG,OAAO,CAACQ,WAAW,CAAC,CAAC5B,KAAK,WAAW6B,QAAQ,aAAapC,MAAOwB,EAAIa,MAAa,QAAEC,WAAW,eAAe,EAAE,CAAC/B,KAAK,YAAY6B,QAAQ,qBAAqBpC,MAAM,mDAAqDsC,WAAW,qDAAqDC,UAAU,CAACC,OAAS,CAAA,CAAI,CAAC,GAAGX,YAAY,+CAA+CY,MAAM,CAACjB,EAAIkB,YAAYC,aAAa,KAAK,EAAGnB,EAAIa,MAAM3B,MAAMC,IAAIiC,QAAU,UAAY,IAAId,YAAY,CAACe,cAAc,OAAOC,OAAS,KAAK,EAAEC,MAAM,CAACC,iBAAiB,SAASC,cAAc,SAAS,EAAEC,GAAG,CAACC,MAAQ,SAASC,GAAiC,OAAzBA,EAAOC,gBAAgB,EAAS7B,EAAI8B,aAAaF,CAAM,CAAC,CAAC,CAAC,CAAC,EAAE5B,EAAI+B,GAAG,EAAE,EAAE/B,EAAI+B,GAAG,CAAC,EACl9BlC,EAAiBmC,gBAAkB,EAEnC,EAAE,IAAIC,EAAE,CAAC,SAASjF,EAAQU,EAAOJ,GACjCI,EAAOJ,QAAU,CACf4E,MAAO,CACLC,MAAO,CACLC,KAAMC,MACR,CACF,EACAtC,OAAQ,SAAgBuC,GACtB,OAAOA,EAAE,MAAO,CACdC,MAAO,CACLC,QAAS,OACTC,cAAe,SACfC,WAAY,SACZC,OAAQ,OACRC,eAAgB,QAClB,CACF,EAAG,CAACN,EAAE,KAAM,CACVC,MAAO,CACLM,WAAY,OACZC,UAAW,QACb,EACA7B,MAAO,CACL8B,aAAc,CAAA,CAChB,CACF,EAAG,GAAKhF,KAAKiF,OAAOb,KAAK,EAAGG,EAAE,MAAO,CACnC3B,WAAY,CAAC,CACX5B,KAAM,WACNP,MAAO,iBACT,GACA+D,MAAO,CACLM,WAAY,MACd,EACA5B,MAAO,CACL8B,aAAc,CAAA,CAChB,CACF,CAAC,EAAE,CACL,CACF,CAEA,EAAE,IAAIE,EAAE,CAAC,SAASjG,EAAQU,EAAOJ,GAEjClB,OAAOyC,eAAevB,EAAS,aAAc,CAC3CkB,MAAO,CAAA,CACT,CAAC,EACDlB,EAAQwB,QAAU,CAChBC,KAAM,aACNmD,MAAO,CACLgB,MAAO,CACLd,KAAMe,MACR,EACAC,QAAS,CACPhB,KAAMC,MACR,EACAF,MAAO,CACLC,KAAMC,OACNvD,QAAS,EACX,EACAI,MAAO,CACLkD,KAAMhG,OACN0C,QAAS,WACP,MAAO,CACLuE,OAAQ,CACNC,OAAQ,CAAA,CACV,EACAC,UAAW,CACTD,OAAQ,CAAA,CACV,EACAE,SAAU,CACRpE,KAAM,CAAA,EACNkE,OAAQ,CAAA,CACV,CACF,CACF,CACF,EACAG,QAAS,CACPrB,KAAMsB,MACN5E,QAAS,EACX,CACF,EACAE,SAAU,CACR2E,UAAW,WACT,OAAO5F,KAAKmB,MAAMsE,SAASpE,MAAQrB,KAAKmB,MAAMqE,UAAUD,MAC1D,CACF,EACAM,QAAS,CACPC,aAAc,WACZ9F,KAAK+F,MAAM,qBAAsB,CAC/BV,QAASrF,KAAKqF,OAChB,CAAC,CACH,EACAW,eAAgB,WACdhG,KAAKmB,MAAMsE,SAASF,OAAS,CAACvF,KAAKmB,MAAMsE,SAASF,OAClDvF,KAAK+F,MAAM,mBAAoB,CAC7BZ,MAAOnF,KAAKmF,MACZI,OAAQvF,KAAKmB,MAAMsE,SAASF,MAC9B,CAAC,CACH,CACF,CACF,EAEI5F,EAAOJ,QAAQsC,aAAYlC,EAAOJ,QAAUI,EAAOJ,QAAQwB,SAC3De,EAA8C,YAA1B,OAAOnC,EAAOJ,QAAwBI,EAAOJ,QAAQwC,QAASpC,EAAOJ,QAC7FuC,EAAiBE,OAAS,WAAoB,IAAIC,EAAIjC,KAASkC,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,mBAAmBC,YAAY,CAAC0D,MAAQ,MAAM,CAAC,EAAE,CAAC7D,EAAG,MAAM,CAACE,YAAY,wBAAwBC,YAAY,CAACkC,QAAU,OAAOwB,MAAQ,OAAO3C,cAAc,OAAO4C,QAAU,MAAMC,aAAa,OAAOzD,YAAY,QAAQ0D,aAAa,SAASC,MAAQ,SAAS,CAAC,EAAE,CAACjE,EAAG,MAAM,CAACG,YAAY,CAACgB,OAAS,MAAM,CAAC,EAAE,CAACtB,EAAIqE,GAAG,WAAWrE,EAAIsE,GAAGtE,EAAImC,KAAK,EAAE,QAAQ,EAAE,EAAEnC,EAAIqE,GAAG,GAAG,EAAGrE,EAAa,UAAEG,EAAG,MAAM,CAACE,YAAY,aAAaC,YAAY,CAACE,mBAAmB,UAAUyD,QAAU,MAAMxD,YAAY,QAAQF,gBAAgB,KAAK,CAAC,EAAE,CAAEP,EAAId,MAAMqE,UAAgB,OAAEpD,EAAG,OAAO,CAACQ,WAAW,CAAC,CAAC5B,KAAK,YAAY6B,QAAQ,qBAAqBpC,MAAM,uCAAyCsC,WAAW,yCAAyCC,UAAU,CAACC,OAAS,CAAA,CAAI,CAAC,GAAGX,YAAY,oCAAoCY,MAAM,CAACG,QAAWpB,EAAId,MAAMmE,OAAOC,MAAM,EAAEhD,YAAY,CAACgB,OAAS,MAAM,EAAEC,MAAM,CAACC,iBAAiB,SAASC,cAAc,SAAS,EAAEC,GAAG,CAACC,MAAQ,SAASC,GAAiC,OAAzBA,EAAOC,gBAAgB,EAAS7B,EAAI6D,aAAajC,CAAM,CAAC,CAAC,CAAC,EAAE,CAACzB,EAAG,OAAO,CAACE,YAAY,qBAAqBY,MAAMjB,EAAIkB,YAAYC,aAAa,QAAQ,CAAC,CAAC,EAAE,EAAEnB,EAAI+B,GAAG,EAAE/B,EAAIqE,GAAG,GAAG,EAAGrE,EAAId,MAAMsE,SAAa,KAAErD,EAAG,OAAO,CAACQ,WAAW,CAAC,CAAC5B,KAAK,YAAY6B,QAAQ,qBAAqBpC,MAAM,8CAAgDsC,WAAW,gDAAgDC,UAAU,CAACC,OAAS,CAAA,CAAI,CAAC,GAAGX,YAAY,oCAAoCY,MAAM,CAACG,QAAWpB,EAAId,MAAMsE,SAASF,MAAO,EAAEhD,YAAY,CAACgB,OAAS,MAAM,EAAEC,MAAM,CAACC,iBAAiB,SAASC,cAAc,SAAS,EAAEC,GAAG,CAACC,MAAQ,SAASC,GAAiC,OAAzBA,EAAOC,gBAAgB,EAAS7B,EAAI+D,eAAenC,CAAM,CAAC,CAAC,CAAC,EAAE,CAACzB,EAAG,OAAO,CAACE,YAAY,qBAAqBY,MAAMjB,EAAIkB,YAAYC,aAAa,KAAK,CAAC,CAAC,EAAE,EAAEnB,EAAI+B,GAAG,EAAE,EAAE/B,EAAI+B,GAAG,EAAE,EAAE/B,EAAIqE,GAAG,GAAG,EAAwB,EAArBrE,EAAIyD,QAAQjG,OAAY2C,EAAG,KAAK,CAACE,YAAY,aAAaC,YAAY,CAACiE,aAAa,MAAMC,kBAAkB,OAAOhE,mBAAmB,UAAUiE,eAAe,MAAMpD,cAAc,MAAM,CAAC,EAAErB,EAAI0E,GAAI1E,EAAW,QAAE,SAASqD,GAAQ,OAAOlD,EAAG,KAAK,CAACQ,WAAW,CAAC,CAAC5B,KAAK,WAAW6B,QAAQ,aAAapC,MAAQ,mBAAqB6E,EAASvC,WAAW,6BAA6B,GAAGzC,IAAIgF,CAAM,CAAC,CAAC,CAAC,EAAE,CAAC,EAAErD,EAAI+B,GAAG,EAAE,CAAC,EAC7vElC,EAAiBmC,gBAAkB,GACnCnC,EAAiB8E,SAAW,iBAE5B,EAAE,IAAIC,EAAE,CAAC,SAAS5H,EAAQU,EAAOJ,GACjC,IAAIuH,EAAW7H,EAAQ,eAAe,EAElC8H,GAE4BC,EAFOF,IAEcE,EAAInF,WAAamF,EAAM,CAAEjG,QAASiG,CAAI,EAE3F,IAAIC,EAAqBC,OAAOC,KAAKC,MACjCC,EAAOJ,EAAmBI,KAK9B,SAASC,IACP,IAAIvF,EAA6B,EAAnB9B,UAAUR,QAA+B8H,KAAAA,IAAjBtH,UAAU,GAAmBA,UAAU,GAAK,GAG9EuH,GADJH,EAAKrH,KAAM+B,CAAO,EACJA,EAAQyF,SAClBC,EAAM1F,EAAQ0F,IACdC,EAAe3F,EAAQ2F,aAIvBC,GAFJ3H,KAAKoE,MAAQ,UACbpE,KAAK8C,MAAM8E,QAAU,CAAA,EACGC,IAAIC,OAAOf,EAAUhG,OAAO,GACpDf,KAAK+H,kBAAoB,IAAIJ,EAAkB,CAC7CH,QAASA,EACTC,IAAKA,EACLC,aAAcA,CAChB,CAAC,CACH,EAEAM,EAtBcf,EAAmBe,SAsBzBV,EApBQJ,OAAOe,IAAIC,IAAIC,SAoBI,EAEnCxI,EAAOJ,QAAU+H,CAEjB,EAAE,CAACc,gBAAgB,CAAC,GAAGC,EAAE,CAAC,SAASpJ,EAAQU,EAAOJ,GAYlD,SAASK,EAAkBC,GAAM,OAAO,WAAc,IAAIC,EAAMD,EAAGE,MAAMC,KAAMC,SAAS,EAAG,OAAO,IAAIC,QAAQ,SAAUC,EAASC,GAA4S,OAAlS,SAASC,EAAKC,EAAKC,GAAO,IAAM,IAAIC,EAAOV,EAAIQ,GAAKC,CAAG,EAAOE,EAAQD,EAAKC,KAAgD,CAAvC,MAAOC,GAAwB,OAAfN,KAAAA,EAAOM,CAAK,CAAW,CAAE,GAAIF,CAAAA,EAAKG,KAAiC,OAAOT,QAAQC,QAAQM,CAAK,EAAEG,KAAK,SAAUH,GAASJ,EAAK,OAAQI,CAAK,CAAG,EAAG,SAAUI,GAAOR,EAAK,QAASQ,CAAG,CAAG,CAAC,EAA7IV,EAAQM,CAAK,CAAqI,EAAc,MAAM,CAAG,CAAC,CAAG,CAAG,CAVzcpC,OAAOyC,eAAevB,EAAS,aAAc,CAC3CkB,MAAO,CAAA,CACT,CAAC,EAIG6H,GAE4BtB,EAJ5BuB,EAActJ,EAAQ,kBAAkB,IAIS+H,EAAInF,WAAamF,EAAM,CAAEjG,QAASiG,CAAI,EAIvFwB,EAAMtB,OAAOe,IAAIO,IACjBC,EAAiBvB,OAAOC,KAAKC,MAAMqB,eACnCC,EAAcxB,OAAOe,IAAIC,IAAIS,OAAOD,YAGpCE,EAAkB3J,EAAQ,UAAU,EAEpC4J,EAAc,CAChBC,IAAO,SACPC,eAAkB,IAClBC,aAAgB,GAClB,EAEAzJ,EAAQwB,QAAU,CAChBC,KAAM,UACNiI,OAAQ,CAACP,GACTQ,WAAY,CACVC,WAAYb,EAAavH,OAC3B,EACAqI,KAAM,WAIJ,OAHApJ,KAAKqJ,GAAKZ,EAAe,EACzBzI,KAAKsJ,iBAAmB,KAAA,IAAuBtJ,KAAKuJ,SAAS9B,IAC7DzH,KAAK0H,aAAe1H,KAAKuJ,SAAS7B,aAC3B,CACL5E,MAAO9C,KAAKuJ,SAAS/B,QAAQ1E,MAC7BzB,KAAM,CAAA,EACNmI,UAAW,OACX5E,OAAQ,IACR6E,MAAO,EAAG,CACd,EAGA5D,QAAS,CACP6D,oBACMlI,EAAO5B,EAAkB,YAC3B,IACIyF,GAD2B,EAAnBpF,UAAUR,QAA+B8H,KAAAA,IAAjBtH,UAAU,GAAmBA,UAAU,GAAK,IAC5DoF,QAEpBrF,KAAKuJ,SAAS/B,QAAQmC,iBAAiB,CAAA,CAAI,EAE3CjI,MAAM1B,KAAKuJ,SAAS/B,QAAQoC,kBAAkBvE,CAAO,CACvD,CAAC,EAED,WACE,OAAO7D,EAAKzB,MAAMC,KAAMC,SAAS,CACnC,GAIF4J,iBACMC,EAAQlK,EAAkB,YAC5B,IAAImK,EAAQ/J,KAERgK,EAA2B,EAAnB/J,UAAUR,QAA+B8H,KAAAA,IAAjBtH,UAAU,GAAmBA,UAAU,GAAK,GAC5EkF,EAAQ6E,EAAM7E,MACdI,EAASyE,EAAMzE,OAIf8D,GAFJrJ,KAAKuJ,SAAS/B,QAAQmC,iBAAiB,CAAA,CAAI,EAElC3J,KAAKyJ,MAAMtE,IAChB8E,EAAQvI,MAAM1B,KAAKuJ,SAAS/B,QAAQ0C,kBAAkB,CAAEb,GAAIA,EAAI9D,OAAQA,CAAO,CAAC,EAChF4E,EAASF,EAAME,OACfV,EAAQQ,EAAMR,MAElBzJ,KAAK8C,MAAM3B,MAAMC,IAAIiC,QAAUhF,OAAO+L,OAAOpK,KAAKyJ,KAAK,EAAEY,OAAO,SAAUC,EAAajB,GACrF,OAAOiB,GAAeP,EAAMI,OAAOd,GAAIgB,OAAO,SAAUC,EAAaC,GACnE,IAAIC,EAAQD,EAAMC,MAEdjF,EAASiF,EAAMrJ,MAAMsE,SAASpE,MAAQmJ,EAAMrJ,MAAMsE,SAASF,OAC/D,OAAO+E,IAAgBE,CAAAA,EAAMrJ,MAAMsE,SAASpE,MAAOkE,EACrD,EAAG,CAAA,CAAI,CACT,EAAG,CAAA,CAAI,EAEPvF,KAAKyK,UAAU,CACbN,OAAQA,EACRV,MAAOA,CACT,CAAC,CACH,CAAC,EAED,WACE,OAAOK,EAAM/J,MAAMC,KAAMC,SAAS,CACpC,GAIFyK,eACMC,EAAQ/K,EAAkB,YAC5B,IAAIgL,EAA2B,EAAnB3K,UAAUR,QAA+B8H,KAAAA,IAAjBtH,UAAU,GAAmBA,UAAU,GAAK,GAC5E4K,EAASD,EAAMC,OACfC,EAAeF,EAAMT,OACrBA,EAA0B5C,KAAAA,IAAjBuD,EAA6B,GAAKA,EAC3CC,EAAcH,EAAMnB,MACpBA,EAAwBlC,KAAAA,IAAhBwD,EAA4B,GAAKA,EACzCC,EAASJ,EAAMI,OAMnB,OAHAhL,KAAKyJ,MAAQA,EACb/H,MAAM1B,KAAK2B,UAAU,EACrB3B,KAAKqB,KAA2B,EAApBrB,KAAKyJ,MAAMhK,OACfuL,GACN,IAAK,OACH,OAAOhL,KAAKmK,OAAOU,GAEf7K,KAAKqB,KACPK,MAAM1B,KAAKyK,UAAU,CAAEN,OAAQA,EAAQV,MAAOA,CAAM,CAAC,GAErD/H,MAAM1B,KAAKiL,iBAAiBjL,KAAKyJ,MAAMhK,MAAM,EAC7CiC,MAAM1B,KAAKkL,YAAY,GAEzB,MACF,IAAK,OACHlL,KAAKqB,KAAO,CAAA,EACZK,MAAM1B,KAAKiL,iBAAiBjL,KAAKyJ,MAAMhK,MAAM,EAC7CiC,MAAM1B,KAAKmL,cAAc,CAE7B,CAEInL,KAAKqB,MACPrB,KAAKoL,OAAO,CAEhB,CAAC,EAED,WACE,OAAOT,EAAM5K,MAAMC,KAAMC,SAAS,CACpC,GAIFiL,aACMG,EAAQzL,EAAkB,YAC5B,IAAI0L,EAAStL,KAMTuL,GAJA,CAAA,IAAUvL,KAAKsJ,kBACjBtJ,KAAKuJ,SAAS/B,QAAQmC,iBAAiB,CAAA,CAAI,EAG9B,IACf3J,KAAKyJ,MAAM+B,QAAQ,SAAUX,GAC3BS,EAAOnB,OAAOU,GAAQW,QAAQ,SAAUhB,EAAOrF,GAC7C,IAAIsG,EAAaH,EAAOI,MAAM,GAAKb,GAAQ,GAC3CS,EAAOK,mBAAmBF,CAAU,EACpCF,EAASK,KAAK,IAAI1L,QAAQ,SAAUC,GAClC0L,OAAOC,MAAMV,OAAOK,CAAU,EAAE7K,KAAK,WACnCT,EAAQ0K,CAAM,CAChB,CAAC,CACH,CAAC,CAAC,CACJ,CAAC,CACH,CAAC,GACmBnJ,MAAMxB,QAAQ6L,WAAWR,CAAQ,GACvCC,QAAQ,SAAUQ,GAC1BvL,EAAQuL,EAAOvL,MACnB,OAAO6K,EAAOnB,OAAO1J,GAAO+K,QAAQ,SAAUS,GAChCA,EAAOzB,MAEnB,OADYyB,EAAOnJ,MACNoJ,QAAU,CAAA,CACzB,CAAC,CACH,CAAC,EAEG,CAAA,IAAUlM,KAAKsJ,kBACjBtJ,KAAKuJ,SAAS/B,QAAQmC,iBAAiB,CAAA,CAAK,CAEhD,CAAC,EAED,WACE,OAAO0B,EAAMtL,MAAMC,KAAMC,SAAS,CACpC,GAIFkL,eACMgB,EAASvM,EAAkB,YAC7B,IAAIwM,EAASpM,KAITuL,GAFJvL,KAAKuJ,SAAS/B,QAAQmC,iBAAiB,CAAA,CAAI,EAC3CjI,MAAM1B,KAAK2B,UAAU,EACN,IAEf3B,KAAKyJ,MAAM+B,QAAQ,SAAUX,GACvBwB,EAAUD,EAAOE,gBAAgB,CACnCzB,OAAQA,CACV,CAAC,EACDwB,GAAWd,EAASK,KAAKS,CAAO,CAClC,CAAC,EACqB,EAAlBd,EAAS9L,SACQiC,MAAMxB,QAAQ6L,WAAWR,CAAQ,GAEvCC,QAAQ,SAAUe,GACzB9L,EAAQ8L,EAAO9L,MAGnB2L,EAAOjC,OAAO1J,GAAO+K,QAAQ,SAAUhB,GACrCA,EAAM1H,MAAMoJ,QAAU,CAAA,CACxB,CAAC,CACH,CAAC,EAGHlM,KAAKuJ,SAAS/B,QAAQmC,iBAAiB,CAAA,CAAK,CAC9C,CAAC,EAED,WACE,OAAOwC,EAAOpM,MAAMC,KAAMC,SAAS,CACrC,GAIFwK,WACM+B,EAAS5M,EAAkB,YAC7B,IAAI6M,EAASzM,KAET0M,EAA4B,EAAnBzM,UAAUR,QAA+B8H,KAAAA,IAAjBtH,UAAU,GAAmBA,UAAU,GAAK,GAC7E0M,EAAgBD,EAAOvC,OACvBA,EAA2B5C,KAAAA,IAAlBoF,EAA8B,GAAKA,EAC5CC,EAAeF,EAAOjD,MACtBA,EAAyBlC,KAAAA,IAAjBqF,EAA6B,GAAKA,EAE9C5M,KAAKuJ,SAAS/B,QAAQmC,iBAAiB,CAAA,CAAI,EAE3C3J,KAAKyJ,MAAQA,EAEbzJ,KAAKqB,KAA2B,EAApBrB,KAAKyJ,MAAMhK,OAEvBpB,OAAOwO,KAAK1C,CAAM,EAAEqB,QAAQ,SAAUX,GACpC4B,EAAOtC,OAAOU,GAAU,GAExBV,EAAOU,GAAQW,QAAQ,SAAUhB,GAC/BiC,EAAOtC,OAAOU,GAAQe,KAAK,CACzBpB,MAAOA,EAEP1H,MAAO+E,IAAIiF,WAAW,CACpBZ,QAAS,CAAA,CACX,CAAC,CACH,CAAC,CACH,CAAC,CACH,CAAC,EAEDlM,KAAK2B,UAAU,EAEX3B,KAAKqB,OAEPK,MAAM1B,KAAKiL,iBAAiBjL,KAAKyJ,MAAMhK,MAAM,EAE7CiC,MAAM1B,KAAKmL,cAAc,GAE3B4B,WAAW,WAETN,EAAOlD,SAAS/B,QAAQmC,iBAAiB,CAAA,CAAK,CAChD,CAAC,CACH,CAAC,EAED,WACE,OAAO6C,EAAOzM,MAAMC,KAAMC,SAAS,CACrC,GAIFmL,QACM4B,EAASpN,EAAkB,YAC7BI,KAAKiN,UAAW,MAAOjN,KAAKkL,YAAY,EAC1C,CAAC,EAED,WACE,OAAO8B,EAAOjN,MAAMC,KAAMC,SAAS,CACrC,GAIF0L,mBAAoB,SAA4BF,GAC9CsB,WAAW,WACT,IAAIG,EAAgBC,EAAE1B,CAAU,EAChCA,EAAWjH,MAAMI,OAASsI,EAAcE,OAAO,EAAEC,YAAY,EAAIH,EAAcI,SAAS,EAAED,YAAY,EAAI,IAC5G,CAAC,CACH,EACAf,gBAAiB,WACf,IAAIiB,EAASvN,KAGT6K,GAD4B,EAAnB5K,UAAUR,QAA+B8H,KAAAA,IAAjBtH,UAAU,GAAmBA,UAAU,GAAK,IAC7D4K,OAEhBwB,EAAU,KAAA,EAiCd,OAhCArM,KAAKmK,OAAOU,GAAQW,QAAQ,SAAUgC,EAAQrI,GAC5C,IAqBEsI,EArBEjD,EAAQgD,EAAOhD,MACf1H,EAAQ0K,EAAO1K,MAEf4K,EAASH,EAAOhE,SAAS/B,QAAQmG,eAAe,EAChDlC,EAAa8B,EAAO7B,MAAM,GAAKb,GAAQ,GACvCzB,EAAOoB,EAAMpB,KACbwE,EAASpD,EAAMoD,OAEnBL,EAAO5B,mBAAmBF,CAAU,EAChCrC,GAAQzD,MAAMkI,QAAQzE,EAAKP,EAAYO,EAAK/E,OAAS,IAAI,GAAK+E,EAAKP,EAAYO,EAAK/E,OAAS,KAAK5E,QACpGqD,EAAMoJ,QAAU,CAACqB,EAAO7F,aACxB2E,EAAU,IAAInM,QAAQ,SAAUC,GAC9B4M,WAAW,WACTlB,OAAOiC,QAAQrC,EAAY,CAACrC,GAAOwE,EAAQF,CAAM,EAAE9M,KAAK,WACtD,OAAOT,EAAQ0K,CAAM,CACvB,CAAC,CACH,CAAC,CACH,CAAC,IAEDY,EAAWsC,UAAY,GAEvBN,EAAY,IAAIA,EADA5F,IAAIC,OAAOc,CAAe,GAChB,CACxBoF,UAAW,CACT5J,MAAO,SAAWyG,EAAS,MAAQ+C,GAAUA,EAAOxJ,MAAQ,MAAQwJ,EAAOxJ,MAAQ,IAAM,GAC3F,CACF,CAAC,EACD2I,WAAW,WACT,OAAOtB,EAAWwC,YAAYR,EAAUS,OAAO,EAAEC,GAAG,CACtD,CAAC,EAEL,CAAC,EACM9B,CACT,EACApB,kBACMmD,EAASxO,EAAkB,YAC7B,IAAIyO,EAAmC,EAAnBpO,UAAUR,QAA+B8H,KAAAA,IAAjBtH,UAAU,GAAmBA,UAAU,GAAK,EAGpFqO,EAActO,KAAK0H,cAAgB1H,KAAK0H,aAAa9C,OAAyB,EAAhByJ,EAAoC,GAAhBA,EAAqB,EAAkD,IAA7B,EAAhBA,EAAoBA,EAAgB,EAAI,GAExJrO,KAAK4E,OAAS,IAAM0J,EAEpB5M,MAAM1B,KAAK2B,UAAU,EAErB3B,KAAKwJ,UAA0B,EAAd8E,EAAkB,OAAS,MAC9C,CAAC,EAED,WACE,OAAOF,EAAOrO,MAAMC,KAAMC,SAAS,CACrC,EAIJ,EAEAsO,aAAc,WACZvO,KAAKwO,UAAY,UACnB,EACAC,QAAS,WACPzO,KAAKmK,OAAS,EAChB,EACA8C,SACMyB,EAAS9O,EAAkB,YAC7BI,KAAKiN,QAAU,CAAA,EAEfvL,MAAM1B,KAAK2B,UAAU,EAErB3B,KAAKuJ,SAAS/B,QAAQ7D,GAAG,gBAAiB3D,KAAKyK,SAAS,EAExDzK,KAAKuJ,SAAS/B,QAAQ7D,GAAG,kBAAmB3D,KAAK0K,aAAa,EAE9D,IAAIiE,EAASjN,MAAM1B,KAAKuJ,SAAS/B,QAAQoH,UAAU,CACjDC,SAAU7O,KAAKuJ,SAAS9B,IACxBC,aAAc1H,KAAK0H,YAAa,CAAC,EAC/ByC,EAASwE,EAAOxE,OAGpBzI,MAAM1B,KAAKyK,UAAU,CAAEN,OAAQA,EAAQV,MAF3BkF,EAAOlF,KAEiC,CAAC,EAEjD,KAAA,IAAuBzJ,KAAK0H,cAC9Bc,EAAI7E,GAAG,cAAe3D,KAAKoL,MAAM,EAGnCpL,KAAKiN,QAAU,CAAA,CACjB,CAAC,EAED,WACE,OAAOyB,EAAO3O,MAAMC,KAAMC,SAAS,CACrC,GAIF6O,cAAe,WACb9O,KAAKuJ,SAAS/B,QAAQuH,IAAI,gBAAiB/O,KAAKyK,SAAS,EAEzDzK,KAAKuJ,SAAS/B,QAAQuH,IAAI,kBAAmB/O,KAAK0K,aAAa,EAE/D1K,KAAK0H,cAAgBc,EAAIuG,IAAI,cAAe/O,KAAKoL,MAAM,EAEvDpL,KAAKuJ,SAAS/B,QAAQwH,iBAAiB,EAEvChP,KAAKmK,OAAS,KAEdnK,KAAKyJ,MAAQ,IACf,CACF,EAEI9J,EAAOJ,QAAQsC,aAAYlC,EAAOJ,QAAUI,EAAOJ,QAAQwB,SAhZ9D,IAKGwH,EA8VImG,EA5BEN,EA1DApB,EAlDAR,EApCAL,EAzCAd,EA3CAV,EApCAb,EAhBAtI,EAlCNgH,EACAC,EACAC,EAGAE,EAEAC,EA6XA/G,EAA8C,YAA1B,OAAOnC,EAAOJ,QAAwBI,EAAOJ,QAAQwC,QAASpC,EAAOJ,QAC7FuC,EAAiBE,OAAS,WAAoB,IAAIC,EAAIjC,KAASkC,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACQ,WAAW,CAAC,CAAC5B,KAAK,WAAW6B,QAAQ,aAAapC,MAAOwB,EAAIa,MAAa,QAAEC,WAAW,eAAe,GAAGT,YAAY,aAAakC,MAAM,CAAEgF,UAAWvH,EAAIuH,UAAW5E,OAAQ3C,EAAIyF,cAAgBzF,EAAIyF,aAAa9C,OAAW3C,EAAIyF,aAAmB,OAAI,KAAO,MAAO,EAAElE,MAAM,CAAC6F,GAAKpH,EAAIoH,EAAE,CAAC,EAAE,CAAEpH,EAAoB,iBAAEG,EAAG,aAAa,CAACoB,MAAM,CAAC0I,QAAUjK,EAAIa,MAAMoJ,OAAO,CAAC,CAAC,EAAEjK,EAAI+B,GAAG,EAAE/B,EAAIqE,GAAG,GAAG,EAAGrE,EAAQ,KAAEG,EAAG,MAAM,CAACE,YAAY,oBAAoBC,YAAY,CAAC0D,MAAQ,OAAOxD,mBAAmB,UAAUwM,SAAW,UAAU,EAAEzK,MAAM,CAAEI,OAAS3C,EAAI2C,OAAS,GAAK,CAAC,EAAE3C,EAAI0E,GAAI1E,EAAS,MAAE,SAAS4I,EAAO1F,GAAO,OAAO/C,EAAG,MAAM,CAAC9B,IAAIuK,EAAOtI,YAAY,CAAC0M,SAAW,UAAU,EAAEzK,MAAM,CAAEI,OAAQ3C,EAAIyF,cAAgBzF,EAAIyF,aAAa9C,OAAW3C,EAAIyF,aAAmB,OAAI,KAAU,IAAIzF,EAAIwH,MAAMhK,OAAU,GAAK,CAAC,EAAE,CAACwC,EAAI0E,GAAI1E,EAAIkI,OAAOU,GAAS,SAASqE,GAC17B1E,EAAQ0E,EAAI1E,MAEhB,MAAO,CAACpI,EAAG,aAAa,CAACoB,MAAM,CAAC2B,MAAQA,EAAME,QAAUmF,EAAMnF,QAAQlE,MAASc,EAAIyF,aAA6BH,KAAAA,EAAdiD,EAAMrJ,MAAkBiD,MAAQoG,EAAMpG,MAAMsB,QAAU8E,EAAM9E,OAAO,EAAE/B,GAAG,CAACwL,mBAAmBlN,EAAI4H,gBAAgBuF,qBAAqBnN,EAAIyH,kBAAkB,CAAC,CAAC,EAAEzH,EAAIqE,GAAG,GAAG,EAAElE,EAAG,MAAM,CAAC8M,IAAK,GAAKrE,EAAQwE,SAAS,CAAA,EAAK/M,YAAY,mBAAmBC,YAAY,CAAC0D,MAAQ,MAAM1C,OAAS,OAAO0L,SAAW,UAAU,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE7M,EAAG,MAAM,CAACE,YAAY,aAAaC,YAAY,CAACqC,OAAS,OAAOqB,MAAQ,OAAOxB,QAAU,OAAO6K,kBAAkB,SAASC,cAAc,SAAS9M,mBAAmB,OAAO,EAAEe,MAAM,CAAC6F,GAAK,UAAU,CAAC,EAAE,CAACjH,EAAG,KAAK,CAACQ,WAAW,CAAC,CAAC5B,KAAK,WAAW6B,QAAQ,aAAapC,MAAM,mBAAqBsC,WAAW,oBAAoB,GAAGR,YAAY,CAAC6D,aAAa,SAAS9C,cAAc,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,EACtyBxB,EAAiBmC,gBAAkB,GACnCnC,EAAiB8E,SAAW,iBAE5B,EAAE,CAAC4I,WAAW,EAAEC,mBAAmB,CAAC,GAAGC,EAAE,CAAC,SAASzQ,EAAQU,EAAOJ,GAElElB,OAAOyC,eAAevB,EAAS,aAAc,CAC3CkB,MAAO,CAAA,CACT,CAAC,EAEGkP,EAAW1Q,EAAQ,eAAe,EAElC2Q,GAE4B5I,EAFO2I,IAEc3I,EAAInF,WAAamF,EAAM,CAAEjG,QAASiG,CAAI,EAE3FzH,EAAQwB,QAAU,CAChBC,KAAM,YACNoI,KAAM,WACJ,MAAO,CACLyG,MAAOD,EAAU7O,QAAQ+O,SAAS,CACpC,CACF,EAEA7O,SAAU,CACRiL,QAAS,WACP,OAAO0D,EAAU7O,QAAQ+B,MAAMiN,aACjC,CACF,EAEAlK,QAAS,CACPmK,aAAc,SAAsBC,GAClClD,WAAW,WACT6C,EAAU7O,QAAQkP,EAAK5O,KAAQ,WAAc,YAAY4O,CAAI,CAC/D,CAAC,CACH,CACF,CACF,EAEItQ,EAAOJ,QAAQsC,aAAYlC,EAAOJ,QAAUI,EAAOJ,QAAQwB,SAlC9D,IAOG6O,EA4BA9N,EAA8C,YAA1B,OAAOnC,EAAOJ,QAAwBI,EAAOJ,QAAQwC,QAASpC,EAAOJ,QAC7FuC,EAAiBE,OAAS,WAAoB,IAAIC,EAAIjC,KAASkC,EAAGD,EAAIE,eAAmBC,EAAGH,EAAII,MAAMD,IAAIF,EAAG,OAAOE,EAAG,KAAK,CAACE,YAAY,gBAAgBC,YAAY,CAAC2D,QAAU,OAAOG,MAAQ,SAAS,EAAE7C,MAAM,CAAC6F,GAAK,uBAAuB,CAAC,EAAEpH,EAAI0E,GAAI1E,EAAS,MAAE,SAASgO,GAAM,OAAO7N,EAAG,KAAK,CAAC9B,IAAI2P,EAAK5G,EAAE,EAAE,CAACjH,EAAG,QAAQ,CAACQ,WAAW,CAAC,CAAC5B,KAAK,QAAQ6B,QAAQ,UAAUpC,MAAOwP,EAAS,KAAElN,WAAW,WAAW,GAAGT,YAAY,iBAAiBkB,MAAM,CAACa,KAAO,WAAWgF,GAAK4G,EAAK5G,EAAE,EAAE6G,SAAS,CAACC,QAAUxK,MAAMkI,QAAQoC,EAAK5O,IAAI,EAAyB,CAAC,EAAxBY,EAAImO,GAAGH,EAAK5O,KAAK,IAAI,EAAM4O,EAAS,IAAC,EAAEtM,GAAG,CAAC0M,OAAS,CAAC,SAASxM,GAAQ,IAAyGyM,EAArGC,EAAIN,EAAK5O,KAAKmP,EAAK3M,EAAO4M,OAAOC,EAAIF,CAAAA,CAAAA,EAAKL,QAA0BxK,MAAMkI,QAAQ0C,CAAG,GAAgBD,EAAIrO,EAAImO,GAAGG,EAAhB,IAAuB,EAAKC,EAAKL,QAASG,EAAI,GAAIrO,EAAI0O,KAAKV,EAAM,OAAQM,EAAIK,OAAO,CAApF,KAAyF,CAAE,EAAW,CAAC,EAALN,GAASrO,EAAI0O,KAAKV,EAAM,OAAQM,EAAIM,MAAM,EAAEP,CAAG,EAAEM,OAAOL,EAAIM,MAAMP,EAAI,CAAC,CAAC,CAAE,GAAQrO,EAAI0O,KAAKV,EAAM,OAAQS,CAAG,CAAE,EAAE,SAAS7M,GAAQ,OAAO5B,EAAI+N,aAAaC,CAAI,CAAC,EAAE,CAAC,CAAC,EAAEhO,EAAIqE,GAAG,GAAG,EAAElE,EAAG,QAAQ,CAACc,MAAM,CAAC4N,eAAgB7O,EAAIiK,OAAO,EAAE3J,YAAY,CAACkC,QAAU,OAAO6K,kBAAkB,gBAAgBC,cAAc,QAAQ,EAAE/L,MAAM,CAACuN,IAAMd,EAAK5G,EAAE,CAAC,EAAE,CAACjH,EAAG,OAAO,CAACG,YAAY,CAACyO,cAAc,UAAU,CAAC,EAAE,CAAC/O,EAAIqE,GAAGrE,EAAIsE,GAAG0J,EAAKgB,KAAK,EAAE,GAAG,EAAE,EAAEhP,EAAIqE,GAAG,GAAG,EAAElE,EAAG,OAAO,CAACH,EAAIqE,GAAGrE,EAAIsE,GAAG0J,EAAKA,KAAK5L,IAAI,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EACrvCvC,EAAiBmC,gBAAkB,EAEnC,EAAE,CAACiN,gBAAgB,EAAE,GAAGC,EAAE,CAAC,SAASlS,EAAQU,EAAOJ,GACnDlB,OAAOyC,eAAevB,EAAS,aAAc,CAC3CkB,MAAO,CAAA,CACT,CAAC,EACD,IAAI0J,EAAS5K,EAAQ4K,OAAS,CAC5BiH,YAAa,CAAC,MAAO,UACvB,EAEA7R,EAAQwB,QAAU,CAChBoJ,OAAQA,CACV,CAEA,EAAE,IAAIkH,EAAE,CAAC,SAASpS,EAAQU,EAAOJ,GACjClB,OAAOyC,eAAevB,EAAS,aAAc,CAC3CkB,MAAO,CAAA,CACT,CAAC,EACDlB,EAAQwB,QAAU,CAChBqD,MAAO,YACPkN,SAAU,mBACVC,mBAAoB,sBACpBC,SAAU,8DACVC,QAAS,wBACTC,QAAS,CACPC,yBAA0B,qEAC1BC,oBAAqB,sEACrBC,aAAc,+CAChB,EACAnM,QAAS,CACPoM,QAAS,gGACTC,YAAa,mFACbC,oBAAqB,6HACrBC,SAAU,CACRH,QAAS,iHACTC,YAAa,mHACbC,oBAAqB,8IACvB,CACF,CACF,CAEA,EAAE,IAAIE,EAAE,CAAC,SAASjT,EAAQU,EAAOJ,GACjClB,OAAOyC,eAAevB,EAAS,aAAc,CAC3CkB,MAAO,CAAA,CACT,CAAC,EACDlB,EAAQwB,QAAU,CAChBqD,MAAO,SACPkN,SAAU,aACVC,mBAAoB,kBACpBC,SAAU,kCACVC,QAAS,oBACTC,QAAS,CACPC,yBAA0B,kEAC1BC,oBAAqB,6DACrBC,aAAc,2DAChB,EACAnM,QAAS,CACPoM,QAAS,2FACTC,YAAa,yFACbC,oBAAqB,gHACrBC,SAAU,CACRH,QAAS,+GACTC,YAAa,6GACbC,oBAAqB,mIACvB,CACF,CACF,CAEA,EAAE,IAAIG,GAAG,CAAC,SAASlT,EAAQU,EAAOJ,GAClClB,OAAOyC,eAAevB,EAAS,aAAc,CAC3CkB,MAAO,CAAA,CACT,CAAC,EACDlB,EAAQwB,QAAU,CAChBqD,MAAO,SACPkN,SAAU,aACVC,mBAAoB,kBACpBC,SAAU,kCACVC,QAAS,oBACTC,QAAS,CACPC,yBAA0B,kEAC1BC,oBAAqB,6DACrBC,aAAc,2DAChB,EACAnM,QAAS,CACPoM,QAAS,2FACTC,YAAa,yFACbC,oBAAqB,gHACrBC,SAAU,CACRH,QAAS,+GACTC,YAAa,6GACbC,oBAAqB,mIACvB,CACF,CACF,CAEA,EAAE,IAAII,GAAG,CAAC,SAASnT,EAAQU,EAAOJ,GAClClB,OAAOyC,eAAevB,EAAS,aAAc,CAC3CkB,MAAO,CAAA,CACT,CAAC,EACDlB,EAAQwB,QAAU,CAChBqD,MAAO,aACPkN,SAAU,cACVC,mBAAoB,uBACpBC,SAAU,6DACVC,QAAS,2BACTC,QAAS,CACPC,yBAA0B,sEAC1BC,oBAAqB,oEACrBC,aAAc,mEAChB,EACAnM,QAAS,CACPoM,QAAS,0GACTC,YAAa,gHACbC,oBAAqB,uIACrBC,SAAU,CACRH,QAAS,iIACTC,YAAa,+HACbC,oBAAqB,6JACvB,CACF,CACF,CAEA,EAAE,IAAIK,GAAG,CAAC,SAASpT,EAAQU,EAAOJ,GAClClB,OAAOyC,eAAevB,EAAS,aAAc,CAC3CkB,MAAO,CAAA,CACT,CAAC,EAED,IAEI6R,EAAOC,EAFDtT,EAAQ,MAAM,CAEa,EAIjCuT,EAAOD,EAFDtT,EAAQ,MAAM,CAEa,EAIjCwT,EAAOF,EAFDtT,EAAQ,MAAM,CAEa,EAIjCyT,EAAOH,EAFDtT,EAAQ,MAAM,CAEa,EAIjC0T,EAAOJ,EAFDtT,EAAQ,MAAM,CAEa,EAIjC2T,EAAOL,EAFDtT,EAAQ,MAAM,CAEa,EAIjC4T,EAAON,EAFDtT,EAAQ,MAAM,CAEa,EAIjC6T,EAAOP,EAFDtT,EAAQ,MAAM,CAEa,EAErC,SAASsT,EAAuBvL,GAAO,OAAOA,GAAOA,EAAInF,WAAamF,EAAM,CAAEjG,QAASiG,CAAI,CAAG,CAE9FzH,EAAQwB,QAAU,CAChBgS,GAAIT,EAAKvR,QACTiS,GAAIR,EAAKzR,QACTkS,GAAIR,EAAK1R,QACTmS,GAAIR,EAAK3R,QACToS,GAAIR,EAAK5R,QACTqS,GAAIR,EAAK7R,QACTsS,GAAIR,EAAK9R,QACTuS,GAAIR,EAAK/R,OACX,CAEA,EAAE,CAACwS,OAAO,EAAEC,OAAO,EAAEC,OAAO,GAAGC,OAAO,GAAGC,OAAO,GAAGC,OAAO,GAAGC,OAAO,GAAGC,OAAO,EAAE,GAAGC,GAAG,CAAC,SAAS9U,EAAQU,EAAOJ,GAC/GlB,OAAOyC,eAAevB,EAAS,aAAc,CAC3CkB,MAAO,CAAA,CACT,CAAC,EACDlB,EAAQwB,QAAU,CAChBqD,MAAO,UACPkN,SAAU,gBACVC,mBAAoB,oBACpBC,SAAU,yDACVC,QAAS,0BACTC,QAAS,CACPC,yBAA0B,qEAC1BC,oBAAqB,oEACrBC,aAAc,wDAChB,EACAnM,QAAS,CACPoM,QAAS,wFACTC,YAAa,uFACbC,oBAAqB,8GACrBC,SAAU,CACRH,QAAS,kHACTC,YAAa,iHACbC,oBAAqB,uIACvB,CACF,CACF,CAEA,EAAE,IAAIgC,GAAG,CAAC,SAAS/U,EAAQU,EAAOJ,GAClClB,OAAOyC,eAAevB,EAAS,aAAc,CAC3CkB,MAAO,CAAA,CACT,CAAC,EACDlB,EAAQwB,QAAU,CAChBqD,MAAO,SACPkN,SAAU,aACVC,mBAAoB,kBACpBC,SAAU,kCACVC,QAAS,oBACTC,QAAS,CACPC,yBAA0B,kEAC1BC,oBAAqB,6DACrBC,aAAc,2DAChB,EACAnM,QAAS,CACPoM,QAAS,2FACTC,YAAa,yFACbC,oBAAqB,gHACrBC,SAAU,CACRH,QAAS,+GACTC,YAAa,6GACbC,oBAAqB,mIACvB,CACF,CACF,CAEA,EAAE,IAAIiC,GAAG,CAAC,SAAShV,EAAQU,EAAOJ,GAClClB,OAAOyC,eAAevB,EAAS,aAAc,CAC3CkB,MAAO,CAAA,CACT,CAAC,EACDlB,EAAQwB,QAAU,CAChBqD,MAAO,UACPkN,SAAU,mBACVC,mBAAoB,mBACpBC,SAAU,4BACVC,QAAS,2BACTC,QAAS,CACPC,yBAA0B,+DAC1BC,oBAAqB,sDACrBC,aAAc,+CAChB,EACAnM,QAAS,CACPoM,QAAS,iFACTC,YAAa,wEACbC,oBAAqB,6FACrBC,SAAU,CACRH,QAAS,6HACTC,YAAa,6GACbC,oBAAqB,iIACvB,CACF,CACF,CAEA,EAAE,IAAIkC,GAAG,CAAC,SAASjV,EAAQU,EAAOJ,GAClClB,OAAOyC,eAAevB,EAAS,aAAc,CAC3CkB,MAAO,CAAA,CACT,CAAC,EACDlB,EAAQwB,QAAU,CAChBqD,MAAO,SACPkN,SAAU,aACVC,mBAAoB,kBACpBC,SAAU,kCACVC,QAAS,oBACTC,QAAS,CACPC,yBAA0B,kEAC1BC,oBAAqB,6DACrBC,aAAc,2DAChB,EACAnM,QAAS,CACPoM,QAAS,2FACTC,YAAa,yFACbC,oBAAqB,gHACrBC,SAAU,CACRH,QAAS,+GACTC,YAAa,6GACbC,oBAAqB,mIACvB,CACF,CACF,CAEA,EAAE,IAAImC,GAAG,CAAC,SAASlV,EAAQU,EAAOJ,GAClClB,OAAOyC,eAAevB,EAAS,aAAc,CAC3CkB,MAAO,CAAA,CACT,CAAC,EAED,IAAI2T,EAAWnV,EAAQ,iBAAiB,EAIpCoV,EAAS9B,EAFDtT,EAAQ,QAAQ,CAEa,EAIrCqV,EAAQ/B,EAFDtT,EAAQ,OAAO,CAEa,EAEvC,SAASsT,EAAuBvL,GAAO,OAAOA,GAAOA,EAAInF,WAAamF,EAAM,CAAEjG,QAASiG,CAAI,CAAG,CAE9FzH,EAAQwB,QAAU,CAChBC,KAAMoT,EAASpT,KACfuT,KAAMF,EAAOtT,QACbyT,IAAKF,EAAMvT,OACb,CAEA,EAAE,CAAC0T,kBAAkB,GAAGC,QAAQ,EAAEC,SAAS,EAAE,GAAGC,GAAG,CAAC,SAAS3V,EAAQU,EAAOJ,GAC5E,IAAIsV,EAAiW,SAAUC,EAAaC,EAAYC,GAAiJ,OAA9HD,GAAYE,EAAiBH,EAAYI,UAAWH,CAAU,EAAOC,GAAaC,EAAiBH,EAAaE,CAAW,EAAUF,CAAa,EAA5gB,SAASG,EAAiBxE,EAAQtM,GAAS,IAAK,IAAIrF,EAAI,EAAGA,EAAIqF,EAAM1E,OAAQX,CAAC,GAAI,CAAE,IAAIqW,EAAahR,EAAMrF,GAAIqW,EAAWC,WAAaD,EAAWC,YAAc,CAAA,EAAOD,EAAWE,aAAe,CAAA,EAAU,UAAWF,IAAYA,EAAWG,SAAW,CAAA,GAAMjX,OAAOyC,eAAe2P,EAAQ0E,EAAW7U,IAAK6U,CAAU,CAAG,CAAE,CAE5V,IAEII,EAAWhD,EAFDtT,EAAQ,UAAU,CAEa,EAIzCuW,EAAcjD,EAFDtT,EAAQ,oCAAoC,CAEV,EAI/C2Q,EAAY2C,EAFDtT,EAAQ,WAAW,CAEa,EAE/C,SAASsT,EAAuBvL,GAAO,OAAOA,GAAOA,EAAInF,WAAamF,EAAM,CAAEjG,QAASiG,CAAI,CAAG,CAE9F,SAASpH,EAAkBC,GAAM,OAAO,WAAc,IAAIC,EAAMD,EAAGE,MAAMC,KAAMC,SAAS,EAAG,OAAO,IAAIC,QAAQ,SAAUC,EAASC,GAA4S,OAAlS,SAASC,EAAKC,EAAKC,GAAO,IAAM,IAAIC,EAAOV,EAAIQ,GAAKC,CAAG,EAAOE,EAAQD,EAAKC,KAAgD,CAAvC,MAAOC,GAAwB,OAAfN,KAAAA,EAAOM,CAAK,CAAW,CAAE,GAAIF,CAAAA,EAAKG,KAAiC,OAAOT,QAAQC,QAAQM,CAAK,EAAEG,KAAK,SAAUH,GAASJ,EAAK,OAAQI,CAAK,CAAG,EAAG,SAAUI,GAAOR,EAAK,QAASQ,CAAG,CAAG,CAAC,EAA7IV,EAAQM,CAAK,CAAqI,EAAc,MAAM,CAAG,CAAC,CAAG,CAAG,CAQzc,IAAIgV,EAAavO,OAAOC,KAAKuO,OAAOC,OAGpC,KAAK,KACHC,IANiBC,EAMPF,EANiBG,EAyE3BL,EAzEyC,GAA0B,YAAtB,OAAOK,GAA4C,OAAfA,EAAuB,MAAM,IAAIC,UAAU,2DAA6D,OAAOD,CAAU,EAQ1M,SAASH,IACPK,IAEIhV,EACAuT,EAEAxK,EAlB0C,GAa9B/J,gBAAM2V,EAmBtB,OAjBI3U,EAAOuU,EAASxU,QAAQC,KACxBuT,EAAOgB,EAASxU,QAAQwT,MAExBxK,GAhBR,CAAoCkM,EAAMzW,KAAQ,GAAKyW,EAAiG,MAAOzW,CAAAA,GAAyB,UAAhB,OAAOA,GAAqC,YAAhB,OAAOA,EAA8ByW,EAAPzW,EAAnK,MAAM,IAAI0W,eAAe,2DAA2D,CAA4F,GAgBpMlW,MAAO2V,EAAOQ,WAAa9X,OAAO+X,eAAeT,CAAM,GAAGnW,KAAKQ,KAAM,CAC1GgB,KAAMA,EACNwG,QAASoI,EAAU7O,QACnBwT,KAAMA,CACR,CAAC,CAAC,GAEI/M,QAAQ6O,KAAK,QAAS,WACtBtM,EAAMuM,eAAevM,EAAM2D,OAAO6I,GAAG,IACvCxM,EAAMyM,SAAS,EACfzM,EAAM0M,SAAS,CAAA,CAAI,EAEvB,CAAC,EAED1M,EAAMvC,QAAQkP,KAAK3M,EAAM2D,MAAM,EACxB3D,EAhCiF,MAAM,IAAIgM,UAAU,mCAAmC,CAiCjJ,CA2CA,OAxE+MF,EAASX,UAAY7W,OAAO4E,OAAO6S,GAAcA,EAAWZ,UAAW,CAAEyB,YAAa,CAAElW,MAAOoV,EAAUT,WAAY,CAAA,EAAOE,SAAU,CAAA,EAAMD,aAAc,CAAA,CAAK,CAAE,CAAC,EAAOS,IAAYzX,OAAOuY,eAAiBvY,OAAOuY,eAAef,EAAUC,CAAU,EAAID,EAASM,UAAYL,GA+B/djB,EAAac,EAAQ,CAAC,CACpBrV,IAAK,WACLG,MAAO,WACL,IAgBYe,EAhBR8J,EAAStL,KAEbA,KAAK6W,uBAAuBrB,EAAYzU,QAAS,CAC/CsI,GAAI,UACJjF,MAAO,wBACP0S,KAAM,CAAA,EACNC,YAAa,CAAA,EACbC,WAAY,CACV3Q,MAAO,MACP4Q,KAAM,YACR,EACAC,OAAQ,CAAA,EACRC,OAAQ,CACNL,KAAM,CACJM,KAAM,SACNC,IACM7V,EAAO5B,EAAkB,UAAW6B,GACtCC,MAAM4J,EAAO9D,QAAQ8P,UAAU7V,CAAI,CACrC,CAAC,EAED,SAAYG,GACV,OAAOJ,EAAKzB,MAAMC,KAAMC,SAAS,CACnC,EAIJ,CACF,EACAsX,eAAgB,CAAEtI,SAAU,CAAE,CAChC,CAAC,CACH,CACF,EAAG,CACD3O,IAAK,SACLG,MAAO,WACLT,KAAKwH,QAAQgQ,MAAM,CACrB,CACF,EAAE,EAEK7B,CACT,GAAa,EAEb,EAAE,CAAC8B,qCAAqC,EAAEC,WAAW,GAAGC,YAAY,EAAE,GAAGC,GAAG,CAAC,SAAS3Y,EAAQU,EAAOJ,GACrGI,EAAOJ,QAAQ,CACbyB,KAAQ,UACRzC,QAAW,QACXsZ,YAAe,sBACfC,KAAQ,WACRC,QAAW,GACXC,WAAc,CACZ3T,KAAQ,MACR4T,IAAO,gEACT,EACAC,OAAU,GACVC,QAAW,MACXC,KAAQ,CACNH,IAAO,+DACT,EACAI,SAAY,+DACd,CAEA,EAAE,IAAIC,GAAG,CAAC,SAASrZ,EAAQU,EAAOJ,GAClClB,OAAOyC,eAAevB,EAAS,aAAc,CAC3CkB,MAAO,CAAA,CACT,CAAC,EAED,IAAI8X,EAAWla,OAAOC,QAAU,SAAUmS,GAAU,IAAK,IAAI3R,EAAI,EAAGA,EAAImB,UAAUR,OAAQX,CAAC,GAAI,CAAE,IAAoCwB,EAAhCkY,EAASvY,UAAUnB,GAAI,IAASwB,KAAOkY,EAAcna,OAAO6W,UAAUuD,eAAejZ,KAAKgZ,EAAQlY,CAAG,IAAKmQ,EAAOnQ,GAAOkY,EAAOlY,GAAU,CAAE,OAAOmQ,CAAQ,EAE3PiI,EAAgb,SAAUC,EAAK7Z,GAAK,GAAI6G,MAAMkI,QAAQ8K,CAAG,EAAK,OAAOA,EAAY,GAAIC,OAAOC,YAAYxa,OAAOsa,CAAG,EAAG,CAASG,IAAneha,EAAsfA,EAA7eia,EAAO,GAAQC,EAAK,CAAA,EAAUC,EAAK,CAAA,EAAWjV,EAAKuD,KAAAA,EAAW,IAAM,IAAK,IAAiChB,EAA7B6J,EAAKuI,EAAIC,OAAOC,UAAU,EAAO,EAAEG,GAAMzS,EAAK6J,EAAG8I,KAAK,GAAGvY,QAAoBoY,EAAKnN,KAAKrF,EAAG9F,KAAK,EAAO3B,CAAAA,GAAKia,EAAKtZ,SAAWX,GAA3Dka,EAAK,CAAA,GAAkM,CAA9H,MAAOnY,GAAOoY,EAAK,CAAA,EAAMjV,EAAKnD,CAAK,CAAE,QAAU,IAAU,CAACmY,GAAM5I,EAAW,QAAGA,EAAW,OAAE,CAAiC,CAA5B,QAAU,GAAI6I,EAAI,MAAMjV,CAAI,CAAE,CAAE,OAAO+U,CAAoJ,CAAS,MAAM,IAAIhD,UAAU,sDAAsD,CAAK,EAE7oBoD,EAAgBla,EAAQ,uCAAuC,EAE/Dma,GAE4BpS,EAFYmS,IAESnS,EAAInF,WAAamF,EAAM,CAAEjG,QAASiG,CAAI,EAE3F,SAASqS,EAAmBV,GAAO,GAAIhT,MAAMkI,QAAQ8K,CAAG,EAAG,CAAE,IAAK,IAAI7Z,EAAI,EAAGwa,EAAO3T,MAAMgT,EAAIlZ,MAAM,EAAGX,EAAI6Z,EAAIlZ,OAAQX,CAAC,GAAMwa,EAAKxa,GAAK6Z,EAAI7Z,GAAM,OAAOwa,CAAM,CAAS,OAAO3T,MAAM4T,KAAKZ,CAAG,CAAK,CAElM,SAAS/Y,EAAkBC,GAAM,OAAO,WAAc,IAAIC,EAAMD,EAAGE,MAAMC,KAAMC,SAAS,EAAG,OAAO,IAAIC,QAAQ,SAAUC,EAASC,GAA4S,OAAlS,SAASC,EAAKC,EAAKC,GAAO,IAAM,IAAIC,EAAOV,EAAIQ,GAAKC,CAAG,EAAOE,EAAQD,EAAKC,KAAgD,CAAvC,MAAOC,GAAwB,OAAfN,KAAAA,EAAOM,CAAK,CAAW,CAAE,GAAIF,CAAAA,EAAKG,KAAiC,OAAOT,QAAQC,QAAQM,CAAK,EAAEG,KAAK,SAAUH,GAASJ,EAAK,OAAQI,CAAK,CAAG,EAAG,SAAUI,GAAOR,EAAK,QAASQ,CAAG,CAAG,CAAC,EAA7IV,EAAQM,CAAK,CAAqI,EAAc,MAAM,CAAG,CAAC,CAAG,CAAG,CAEzc,IAAIwG,EAAqBC,OAAOC,KAAKC,MACjCC,EAAOJ,EAAmBI,KAC1BW,EAAUf,EAAmBe,QAC7BwR,EAAMvS,EAAmBuS,IACzBC,EAAWxS,EAAmBwS,SAC9BC,EAAYzS,EAAmByS,UAC/BlR,EAAMtB,OAAOe,IAAIO,IACjBmR,EAAmBzS,OAAOC,KAAKwS,iBAC/BC,EAAgB1S,OAAOC,KAAKuO,OAAOkE,cACnCC,EAA8B3S,OAAOC,KAAK2S,QAAQD,4BAGlDvS,EAAmBrI,EAAQ,8BAA8B,EAEzD8a,EAAoB,qBAExB,SAASC,IACP,IAyPMlQ,EAwDAa,EAgEAU,EAoHAc,EAreFb,EAAStL,KAuCTia,GArCJ5S,EAAKrH,IAAI,EAETA,KAAKka,WAAa1R,EAAI2R,WAAW,KAAK,EAEtCna,KAAKoa,mBAAqB5R,EAAI2R,WAAW,cAAc,EAEvDna,KAAKqa,OAASra,KAAKka,WAAWI,OAAO,EAErCta,KAAKua,YAAc,GAEnBva,KAAKkM,QAAU,CAAA,EAEflM,KAAKwa,WAAa,CAAA,EAElBxa,KAAK8C,MAAQ+E,IAAIiF,WAAW,CAC1BZ,QAAS,CAAA,EACTzG,SAAU,CAAA,EACVgV,UAAW,GACXtZ,MAAO,CACLC,IAAK,CACHiC,QAAS,CAAA,EACTqX,SAAU,CAAA,CACZ,CACF,CACF,CAAC,EAED1a,KAAK0H,aAAe,KACpB1H,KAAK2a,gBAAkB,GACvB3a,KAAK4a,aAAe,CAClBC,KAAMtT,KAAAA,CACR,EAEAvH,KAAK8a,mBAAqB,CACxBxa,IAAK,KACLya,QAAS,EACX,EACA/a,KAAKgb,aAAe,CAAA,EACL,IAAIC,KAEnBjb,KAAK0W,KAAO,WACV,IAWMwE,EAXFnR,EAAQ/J,KAKZA,KAAK0N,OAH2B,EAAnBzN,UAAUR,QAA+B8H,KAAAA,IAAjBtH,UAAU,GAAmBA,UAAU,GAAK,GAKjFD,KAAKmb,gBAAkB,GAGvBnb,KAAKob,yBAA2B3B,GAC1ByB,EAAQtb,EAAkB,UAAW4B,GACvC,IAAI6D,EAAU7D,EAAK6D,QAOnB,GAAI,CAAA,IAJS,CAAA,IAAS0E,EAAMyQ,YAAc,KAAA,IAAuBzQ,EAAMrC,cAAgB,cAAgBqC,EAAM2D,OAAOmC,MAAMwL,KAAK,SAAUpL,GACvI,OAAOlG,EAAM6Q,aAAaC,MAAQ5K,EAAKqL,eAAiBjW,GAAW,CAAA,IAAS4K,EAAK5O,IACnF,CAAC,GAEoB,CAEnB,IAAIka,EAAa,GAEbC,EAAsE,EAA1CzR,EAAM+Q,mBAAmBC,QAAQtb,OAE7D,CAAA,GAAS+b,GAEXzR,EAAM+Q,mBAAmBC,QAAQvP,QAAQ,SAAUX,GACjD,IAAIoF,EAAOlG,EAAM2D,OAAOmC,MAAMwL,KAAK,SAAUpL,GAC3C,OAAOA,EAAK5G,KAAOwB,EAAOxB,EAC5B,CAAC,EACD4G,EAAKvK,QAAU,GACf6V,EAAW3P,KAAKqE,CAAI,CACtB,CAAC,EAGHlG,EAAM0R,iBAAiBD,CAAyB,EAG5CnW,GAEF0E,EAAM2R,aAAa,CAAA,CAAI,EAAElQ,QAAQ,SAAUyE,GACrCA,EAAKqL,eAAiBjW,GACxBkW,EAAW3P,KAAKqE,CAAI,CAExB,CAAC,EAEH,IAEE,IAAI8K,EAAU,KAAA,EAEU,EAApBQ,EAAW9b,SAEbsb,EAAUQ,EAAWna,IAAI,SAAU6O,GAGjC,OADAlG,EAAM4R,cAAc1L,CAAI,EACjBA,EAAK5G,EACd,CAAC,GAGH3H,MAAMqI,EAAM6R,iBAAiB,CAAEb,QAASA,CAAQ,CAAC,CACtC,CAAX,MAAOpc,IACX,CACF,CAAC,EAEM,SAAUkd,GACf,OAAOX,EAAMnb,MAAMC,KAAMC,SAAS,CACpC,GACG,IAAI,EAGTD,KAAK0N,OAAOmC,MAAMrE,QAAQ,SAAUyE,EAAM9K,GAGxC,IAuCM2W,EAvCF1X,EAA8C,WAAtCsV,EAAUzJ,EAAKA,KAAKrC,OAAOxJ,KAAK,EAAiB6L,EAAKA,KAAKrC,OAAOxJ,MAAM2X,KAAO9L,EAAKA,KAAKrC,OAAOxJ,MAoBxGiB,GAlBJ0E,EAAMjH,MAAM2X,UAAU7O,KAAKqE,EAAK5G,EAAE,EAElC4G,EAAK+L,cAAgB,KAKrB/L,EAAK7G,KAAO,KAEZ6G,EAAKgM,OAAS,CAAA,EACdhM,EAAKA,KAAKrC,OAAOsO,OAAS9X,EAC1B6L,EAAKgB,MAAQ7M,GAAS,YAAc6L,EAAK5G,GAAK,IAE9C4G,EAAKA,KAAKrC,OAAOuO,MAAMC,WAAa,CAAA,EACpCnM,EAAKA,KAAKrC,OAAOyO,MAAMD,WAAa,CAAA,EAEpCnM,EAAKvK,QAAU,GAEDuK,EAAKqL,cAIfgB,GAFJrC,EAASsC,IAAIlX,CAAO,EAERwU,EAA4B2C,aAAanX,CAAO,GAExDI,EAAW6W,EAAMG,WAAW,EAChCxM,EAAKyM,IAAMjX,EAAW6W,EAAMhC,OAAO,EAAI/S,KAAAA,EACvC0I,EAAK9O,MAAQ,CACXmE,OAAQgX,EAAMK,UAAU,EACxBnX,UAAW8W,EAAMM,aAAa,EAC9BnX,SAAUoC,IAAIiF,WAAW,CACvBzL,KAAMoE,EACNF,OAAQ,CAAA,CACV,CAAC,CACH,EAGI+W,EAAMO,SAAS,IACbf,EAAY,GAChBQ,EAAMQ,aAAa,EAAEC,SAAS,EAAEvR,QAAQ,SAAUyG,GAChDA,EAAS+K,UAAU,IAAM3X,GAAWyW,EAAUlQ,KAAK,CACjDvC,GAAI4I,EAASgL,MAAM,EACnBC,cAAejL,EAASkL,SAAS,CACnC,CAAC,EACDpT,EAAM4Q,gBAAgB1I,EAASgL,MAAM,GAAKhL,EAASmL,QAAQ,CAC7D,CAAC,EACDnN,EAAK+L,cAAgB,CACnBF,UAAWA,EACX1S,KAAM,IACR,GAGFkT,EAAM3Y,GAAG,oBAAqBoG,EAAMqR,wBAAwB,CAC9D,CAAC,EAEDrB,EAAoBA,EAAoB,IAAM/Z,KAAKqd,OAAO,EAE1Drd,KAAKoa,mBAAmBkD,iBAAiB,GAAG1M,OAAOyI,EAAmBY,CAAQ,CAAC,CAAC,EAEhFja,KAAKoa,mBAAmBzW,GAAG,aAAc3D,KAAKud,qBAAqB,EAEnEvd,KAAKoa,mBAAmBzW,GAAG,aAAc3D,KAAKwd,oBAAoB,EAElExd,KAAKyd,wBAA0Bzd,KAAKoa,mBAAmBsD,QAAQ,iBAAkB1d,KAAKwd,oBAAoB,EAE1Gxd,KAAK2d,qBAAqB,EAG1B3d,KAAK4d,KAAK,OAAO,CACnB,EAQA5d,KAAKud,sBAAwB,SAAU9V,EAAKoW,EAAWnW,GACrD,IAAIoW,EAAgBxS,EAAO6P,gBAAgBE,KAAK,SAAU0C,GACxD,OAAOF,EAAUG,WAAaD,EAAqBF,UAAUG,QAC/D,CAAC,EACG,KAAA,IAAuBF,GACzBxS,EAAO6P,gBAAgBvP,KAAK,CAC1BiS,UAAWA,EACXpQ,UAAW,IACb,CAAC,EAIHnC,EAAOoC,OAAOmC,MAAMrE,QAAQ,SAAUyE,GAChCA,EAAKgM,QACP3Q,EAAOqQ,cAAc1L,CAAI,CAE7B,CAAC,EAED3E,EAAOgM,UAAU,KAAA,IAAuBwG,EAAerW,EAAKoW,EAAWnW,CAAY,CACrF,EAMA1H,KAAKwd,qBAAuB,SAAUK,GAEpCvS,EAAO6P,gBAAkB7P,EAAO6P,gBAAgB7V,OAAO,SAAU2Y,GAC/D,MAAI,EAACJ,CAAAA,GAAaA,EAAUG,WAAaC,EAAsBJ,UAAUG,YACvE7Q,EAAE8Q,EAAsBxQ,UAAUU,GAAG,EAAE+P,OAAO,EAC9CD,EAAsBxQ,UAAU0Q,SAAS,EAClC,CAAA,EAEX,CAAC,EAED7S,EAAOoC,OAAOmC,MAAMrE,QAAQ,SAAUyE,GAChCA,EAAKgM,QACP3Q,EAAOqQ,cAAc1L,CAAI,CAE7B,CAAC,CACH,EAMAjQ,KAAKoe,qBAAuB,WAC1B,OAAOpe,KAAK0b,aAAa,CAAA,CAAI,EAAEjc,MACjC,EAMAO,KAAK4J,mBACCE,EAAQlK,EAAkB,UAAWyF,GACnCiX,EAAQzC,EAA4B2C,aAAanX,CAAO,EACxD,KAAA,IAAuBiX,IACzB5a,MAAM4a,EAAM+B,kBAAkB,EAElC,CAAC,EAEM,SAAUC,GACf,OAAOxU,EAAM/J,MAAMC,KAAMC,SAAS,CACpC,GAQFD,KAAKue,iBAAmB,SAAUtO,GAEjB,GAAGW,OAAOyI,EAAmBpJ,EAAKvK,OAAO,CAAC,EACzDuK,EAAKvK,QAAU,GAEX,CAAA,IAASuK,EAAK9O,MAAMmE,OAAOC,QAC7B0K,EAAKvK,QAAQkG,KAAK,aAAa,EAG7B,CAAA,IAASqE,EAAK9O,MAAMsE,SAASF,SACT,EAAtB0K,EAAKvK,QAAQjG,OAAawQ,EAAKvK,QAAQ8Y,OAAO,EAAG,EAAG,qBAAqB,EAAIvO,EAAKvK,QAAQkG,KAAK,SAAS,EAE5G,EAOA5L,KAAK4b,iBAAmBhc,EAAkB,YACxC,IACImb,GAD2B,EAAnB9a,UAAUR,QAA+B8H,KAAAA,IAAjBtH,UAAU,GAAmBA,UAAU,GAAK,IAC5D8a,QAGhBxQ,EAAQ7I,MAAM1B,KAAK4O,UAAU,CAAEmM,QAASA,CAAQ,CAAC,EACjD5Q,EAASI,EAAMJ,OAKnBnK,KAAK4d,KAAK,gBAAiB,CAAEzT,OAAQA,EAAQV,MAJjCc,EAAMd,KAIwC,CAAC,CAC7D,CAAC,EAODzJ,KAAKye,UACC9T,EAAQ/K,EAAkB,UAAWqQ,GACvC,IAAI7D,EAASpM,KAGTiQ,EAAK9O,MAAMsE,SAASpE,OAEtB4O,EAAK9O,MAAMsE,SAASF,OAASvF,KAAK8C,MAAM3B,MAAMC,IAAIiC,QAE9CrD,KAAK8a,mBAAmBxa,MAE1BN,KAAK8a,mBAAmBC,QAAQnP,KAAK,CACnCvC,GAAI4G,EAAK5G,GACT9D,OAAQvF,KAAK8C,MAAM3B,MAAMC,IAAIiC,OAC/B,CAAC,EAOLrD,KAAK2d,qBAAqB,EAGtB,OAAS1N,EAAK+L,eAGZ,KAAA,IAAuBhc,KAAK0b,aAAa,CAAA,CAAI,EAAEL,KAAK,SAAUqD,GAChE,OAAOA,EAAMrV,KAAO4G,EAAK5G,IAAMqV,EAAMpD,eAAiBrL,EAAKqL,YAC7D,CAAC,GAECtb,KAAK0b,aAAa,EAAElQ,QAAQ,SAAUkT,GAEpC,IAMQ3D,EANJ2D,EAAMrV,KAAO4G,EAAK5G,IAChB,KAAA,IAAuB4G,EAAK+L,cAAcF,UAAUT,KAAK,SAAUzQ,GACjEsS,EAAgBtS,EAAMsS,cAC1B,OAAOwB,EAAMpD,eAAiB4B,CAChC,CAAC,GAGsB,GADjBnC,EAAU3O,EAAOuP,cAAc+C,CAAK,GAC5Bjf,QACV2M,EAAOwP,iBAAiB,CACtBb,QAASA,CACX,CAAC,CAIT,CAAC,EAILrZ,MAAM1B,KAAK4b,iBAAiB,CAAEb,QAAS,CAAC9K,EAAK5G,GAAI,CAAC,CACpD,CAAC,EAEM,SAAUsV,GACf,OAAOhU,EAAM5K,MAAMC,KAAMC,SAAS,CACpC,GAQFD,KAAK4e,UACCvT,EAAQzL,EAAkB,UAAWqQ,GAEnCA,EAAK9O,MAAMsE,SAASpE,OAEtB4O,EAAK9O,MAAMsE,SAASF,OAAS,CAAA,EAEzBvF,KAAK8a,mBAAmBxa,MAE1BN,KAAK8a,mBAAmBC,QAAU/a,KAAK8a,mBAAmBC,QAAQzV,OAAO,SAAUuF,GACjF,OAAOoF,EAAK5G,KAAOwB,EAAOxB,EAC5B,CAAC,GAG4C,IAA3CrJ,KAAK8a,mBAAmBC,QAAQtb,UAElCO,KAAK4a,aAAaC,KAAOtT,KAAAA,EAEzBvH,KAAK8C,MAAM3B,MAAMC,IAAIiC,QAAU,CAAA,GAInC,IAAI0X,EAAU/a,KAAK2b,cAAc1L,CAAI,EAYjC4O,GAXiB,EAAjB9D,EAAQtb,QACVO,KAAK4b,iBAAiB,CACpBb,QAASA,CACX,CAAC,EAGH/a,KAAK2d,qBAAqB,EAE1B3d,KAAKue,iBAAiBtO,CAAI,EAGAjQ,KAAK8e,mBAAmB,GAC9C3U,EAAS0U,EAAoB1U,OAMjCnK,KAAK4d,KAAK,kBAAmB,CAC3B/S,OAAQoF,EAAK5G,GACb2B,OAAQ,OACR1F,OAAQ2K,EAAKvK,QACbyE,OAAQA,EACRV,MAVUoV,EAAoBpV,KAWhC,CAAC,CACH,CAAC,EAEM,SAAUsV,GACf,OAAO1T,EAAMtL,MAAMC,KAAMC,SAAS,CACpC,GAQFD,KAAK8e,mBAAqB,WAIxB,MAAO,CACLrV,OAJ8B,EAAnBxJ,UAAUR,QAA+B8H,KAAAA,IAAjBtH,UAAU,GAAmBA,UAAU,GAAK,IAC9DwJ,OAGDzJ,KAAK0b,aAAa,CAAA,CAAI,EAAEta,IAAI,SAAU6O,GACpD,OAAOA,EAAK5G,EACd,CAAC,EACDc,OAAQ,EACV,CACF,EAMAnK,KAAK8P,SAAW,WACd,OAAO9P,KAAK0N,OAAOmC,KACrB,EAKA7P,KAAKgP,iBAAmB,WACtB,IAAIvC,EAASzM,KAEbA,KAAK8C,MAAM3B,MAAMC,IAAIiC,QAAU,CAAA,EAC/BrD,KAAK4a,aAAaC,KAAOtT,KAAAA,EACzBvH,KAAKgf,yBAAyB,CAC5BC,OAAQ,CAAA,CACV,CAAC,EACDjf,KAAK0b,aAAa,CAAA,CAAI,EAAElQ,QAAQ,SAAUyE,GACxCxD,EAAOkP,cAAc1L,CAAI,EACrB,CAAA,IAASA,EAAK9O,MAAMsE,SAASpE,OAC/B4O,EAAK9O,MAAMsE,SAASF,OAAS,CAAA,GAE/B0K,EAAKvK,QAAU,EACjB,CAAC,EACD1F,KAAKwa,WAAa,CAAA,CACpB,EAMAxa,KAAKyb,iBAAmB,WAGtBzb,KAAK4a,aAAaC,KAFa,EAAnB5a,UAAUR,QAA+B8H,KAAAA,IAAjBtH,UAAU,IAAmBA,UAAU,IAEzC,CAAA,IAASD,KAAK8C,MAAM3B,MAAMC,IAAIiC,QAAUrD,KAAKka,WAAWgF,WAAW,EAAEC,SAAS,EAAI5X,KAAAA,CACtH,EAOAvH,KAAKkK,mBACCiC,EAASvM,EAAkB,UAAWqM,GACxC,IAAIsB,EAASvN,KAETqJ,EAAK4C,EAAO5C,GACZ9D,EAAS0G,EAAO1G,OAEhBwV,EAAU,CAAC,CACb1R,GAAIA,EACJ9D,OAAQA,CACV,GAEI0K,EAAOjQ,KAAKof,YAAY/V,CAAE,EAyB9B,OAvBArJ,KAAK0b,aAAa,CAAA,CAAI,EAAElQ,QAAQ,SAAUkT,GACpCA,EAAMrV,KAAOA,GAAMqV,EAAMpD,eAAiBrL,EAAKqL,eACjDoD,EAAMvd,MAAMsE,SAASF,OAASA,EAC9BgI,EAAOoO,cAAc+C,CAAK,EAC1B3D,EAAQnP,KAAK,CACXvC,GAAIqV,EAAMrV,GACV9D,OAAQA,CACV,CAAC,EAEL,CAAC,EAGDvF,KAAKyb,iBAAiB,CAAA,CAAI,EAE1Bzb,KAAKgb,aAAe,CAAA,EAEpBhb,KAAKgf,yBAAyB,CAC5BC,OAAQ,CAAA,EACRlE,QAASA,CACX,CAAC,EAED/a,KAAK2b,cAAc1L,CAAI,EAEhBvO,MAAM1B,KAAK4O,UAAU,CAC1BmM,QAASA,EAAQ3Z,IAAI,SAAUmL,GAE7B,OADSA,EAAOlD,EAElB,CAAC,CACH,CAAC,CACH,CAAC,EAEM,SAAUgW,GACf,OAAOlT,EAAOpM,MAAMC,KAAMC,SAAS,CACrC,GAQFD,KAAKgf,yBAA2B,WAC9B,IAAIxS,EAA4B,EAAnBvM,UAAUR,QAA+B8H,KAAAA,IAAjBtH,UAAU,GAAmBA,UAAU,GAAK,GAC7Eqf,EAAgB9S,EAAOyS,OAEvBM,EAAiB/S,EAAOuO,QADGxT,KAAAA,IAAlB+X,GAAsCA,GAMjDtf,KAAK8a,mBAAmBC,QAJOxT,KAAAA,IAAnBgY,EAA+B,GAAKA,EAM5C,OAASvf,KAAK8a,mBAAmBxa,MACnCN,KAAK8a,mBAAmBxa,IAAMN,KAAKka,WAAWsF,OAAO,EAAE7b,GAAG,UAAW3D,KAAKob,wBAAwB,KAIpGqE,GAAGC,WAAWC,QAAQ3f,KAAK8a,mBAAmBxa,GAAG,EACjDN,KAAK8a,mBAAmBxa,IAAM,KAE9BN,KAAK8a,mBAAmBC,QAAU,GAEtC,EAKA/a,KAAK+D,aAAenE,EAAkB,YACpC,IAAIggB,EAAS5f,KAETqQ,EAA4B,EAAnBpQ,UAAUR,QAA+B8H,KAAAA,IAAjBtH,UAAU,IAAmBA,UAAU,GAGxEkK,GADJnK,KAAK2J,iBAAiB,CAAA,CAAI,EACb,KAAA,GAMTkW,GALJ7f,KAAKgb,aAAe,CAAA,EACpBhb,KAAK8C,MAAM3B,MAAMC,IAAIiC,QAAUgN,EAAS,CAACrQ,KAAK8C,MAAM3B,MAAMC,IAAIiC,QAAUrD,KAAK8C,MAAM3B,MAAMC,IAAIiC,QAE7FrD,KAAKyb,iBAAiB,EAEIzb,KAAK0b,aAAa,CAAA,CAAI,EAAEpW,OAAO,SAAU2K,GACjE,MAAI,CAAA,IAASA,EAAK9O,MAAMsE,SAASpE,OAC/B4O,EAAK9O,MAAMsE,SAASF,OAAS0K,EAAK9O,MAAMsE,SAASpE,MAAQue,EAAO9c,MAAM3B,MAAMC,IAAIiC,QACzEuc,EAAO9c,MAAM3B,MAAMC,IAAIiC,SAAW4M,EAAK9O,MAAMsE,SAASF,QAAU,CAAA,EAI3E,CAAC,GAEDvF,KAAKgf,yBAAyB,CAC5BC,OAAQjf,KAAK8C,MAAM3B,MAAMC,IAAIiC,QAC7B0X,QAAS8E,EAAoBze,IAAI,SAAU6O,GACzC,MAAO,CACL5G,GAAI4G,EAAK5G,GACT9D,OAAQ0K,EAAK9O,MAAMsE,SAASF,MAC9B,CACF,CAAC,CACH,CAAC,EAED,IACE,IAAIwV,EAAU8E,EAAoBze,IAAI,SAAU6O,GAE9C,OADA2P,EAAOjE,cAAc1L,CAAI,EAClBA,EAAK5G,EACd,CAAC,EACDc,EAASzI,MAAM1B,KAAK4O,UAAU,CAC5BmM,QAASA,CACX,CAAC,CACU,CAAX,MAAOpc,IAET,OAAOwL,CACT,CAAC,EAKDnK,KAAK2b,cAAgB,SAAU1L,GAC7B,IAAI6P,EAAS9f,KAGT+a,EAAU,GA8Cd,OA5CA9K,EAAKgM,OAAS,CAAA,GAEdhM,EAAK7G,KAAO,QAEC6G,EAAK+L,cAEZ,OAAS/L,EAAK+L,cAAc5S,OAC9B/K,OAAO+L,OAAO6F,EAAK+L,cAAc5S,IAAI,EAAEoC,QAAQ,SAAUuU,GACvDA,EAAiBvU,QAAQ,SAAUwB,GAC7B3D,EAAK2D,EAAO3D,GAEhByW,EAAOnE,cAAcmE,EAAOV,YAAY/V,CAAE,CAAC,EAC3C0R,EAAQnP,KAAKvC,CAAE,CACjB,CAAC,CACH,CAAC,EACD4G,EAAK+L,cAAc5S,KAAO,MAI5BpJ,KAAK0b,aAAa,CAAA,CAAI,EAAElQ,QAAQ,SAAUkT,GAEpCA,EAAMrV,KAAO4G,EAAK5G,IAAM,OAASqV,EAAM1C,eAAiB,OAAS0C,EAAM1C,cAAc5S,MACvF/K,OAAO2hB,QAAQtB,EAAM1C,cAAc5S,IAAI,EAAEoC,QAAQ,SAAUyU,GACzD,IAAIzS,EAASkL,EAAeuH,EAAQ,CAAC,EACjCC,EAAa1S,EAAO,GACpBuS,EAAmBvS,EAAO,GAE9BuS,EAAiBvU,QAAQ,SAAU4C,EAAQjJ,GAChCiJ,EAAO/E,KAEL4G,EAAK5G,IACd0W,EAAiBvB,OAAOrZ,EAAO,CAAC,CAEpC,CAAC,EAC+B,IAA5B4a,EAAiBtgB,SACnB,OAAOif,EAAM1C,cAAc5S,KAAK8W,GACqB,IAAjD7hB,OAAOwO,KAAK6R,EAAM1C,cAAc5S,IAAI,EAAE3J,UACxCif,EAAM1C,cAAc5S,KAAO,KAGjC,CAAC,CAEL,CAAC,EAEI2R,CACT,EAKA/a,KAAK2d,qBAAuB,WAE1B3d,KAAK8C,MAAM2C,SAAW,KAAA,IAAuBzF,KAAK0b,aAAa,CAAA,CAAI,EAAEL,KAAK,SAAUpL,GAClF,OAAOA,EAAK9O,MAAMsE,SAASpE,IAC7B,CAAC,CACH,EAQArB,KAAK2J,iBAAmB,SAAUuC,GAChClM,KAAK8C,MAAMoJ,QAAUA,EAEjB,KAAA,IAAuBlM,KAAK0H,eAC9Bc,EAAI2X,eAAejU,CAAO,EAC1B1D,EAAI4X,kBAAkBlU,CAAO,EAEjC,EAOAlM,KAAK0b,aAAe,WAClB,IAAIra,EAAOpB,EAAmB,EAAnBA,UAAUR,QAA+B8H,KAAAA,IAAjBtH,UAAU,KAAmBA,UAAU,GAE1E,OAAOD,KAAK0N,OAAOmC,MAAMvK,OAAO,SAAU2K,GACxC,OAAO5O,IAAS4O,EAAK5O,IACvB,CAAC,CACH,EAKArB,KAAKof,YAAc,SAAU/V,GAC3B,OAAOrJ,KAAK0N,OAAOmC,MAAMwL,KAAK,SAAUpL,GACtC,OAAOA,EAAK5G,KAAOA,CACrB,CAAC,CACH,EASArJ,KAAK4O,UAAYhP,EAAkB,YACjC,IAAIygB,EAASrgB,KAET2O,EAA4B,EAAnB1O,UAAUR,QAA+B8H,KAAAA,IAAjBtH,UAAU,GAAmBA,UAAU,GAAK,GAC7E4O,EAAWF,EAAOE,SAClBkM,EAAUpM,EAAOoM,QACjBrT,EAAeiH,EAAOjH,aAM1B,OAFA1H,KAAK0H,aAAeA,EAEb,IAAIxH,QAAQ,SAAUC,GAC3B,IAsEMoL,EAEA+U,EAEAC,EAwHEC,EAlMJ3Q,EAAQ,KAAA,EA6DR4Q,GA5DA,KAAA,IAAuB5R,EAEzBgB,EAAQwQ,EAAO3S,OAAOmC,MAAMvK,OAAO,SAAU2K,GAC3C,MAA+C,CAAC,IAAzCpB,EAAS6R,QAAQzQ,EAAKqL,YAAY,CAC3C,CAAC,EACQ,KAAA,IAAuBP,GAGhClL,EAAQ,GACRkL,EAAQvP,QAAQ,SAAUX,GAExB,IAAI8V,EAAUN,EAAO3E,aAAa,CAAA,CAAI,EAAEL,KAAK,SAAUpL,GACrD,OAAOA,EAAK5G,KAAOwB,GAAU,OAASoF,EAAK+L,eAG3C,KAAA,IAAuB/L,EAAK+L,cAAcF,UAAUT,KAAK,SAAUuF,GACjE,IAAIV,EAAaU,EAAOvX,GAExB,OADoBuX,EAAO1D,gBACFmD,EAAOjB,YAAYvU,CAAM,EAAEyQ,eAAiB,OAASrL,EAAK+L,cAAc5S,MAAQ,KAAA,IAAuB6G,EAAK+L,cAAc5S,KAAK8W,IAAe,KAAA,IAAuBjQ,EAAK+L,cAAc5S,KAAK8W,GAAY7E,KAAK,SAAUwF,GAE/O,OADSA,EAAOxX,KACFwB,CAChB,CAAC,EACH,CAAC,CACH,CAAC,EAEG,KAAA,IAAuB8V,IACzBA,EAAUN,EAAOjB,YAAYvU,CAAM,GAGjC,KAAA,IAAuBgF,EAAMwL,KAAK,SAAUpL,GAC9C,OAAOA,IAAS0Q,CAClB,CAAC,GACC9Q,EAAMjE,KAAK+U,CAAO,CAEtB,CAAC,GAID9Q,EAAQwQ,EAAO3E,aAAa,CAAA,CAAI,EAAEpW,OAAO,SAAU2K,GACjD,OAEE,KAAA,IAAuBoQ,EAAO3E,aAAa,CAAA,CAAI,EAAEL,KAAK,SAAUqD,GAC9D,OAEEzO,EAAK5G,KAAOqV,EAAMrV,IAElB,OAASqV,EAAM1C,eAGf,KAAA,IAAuB0C,EAAM1C,cAAcF,UAAUT,KAAK,SAAUyF,GACzDA,EAAOzX,GAEhB,OADoByX,EAAO5D,gBACFjN,EAAKqL,YAChC,CAAC,CAEL,CAAC,CAEL,CAAC,EAGgB+E,EAAOvB,mBAAmB,CAC3CrV,MAAOoF,GAAYgB,EAAMzO,IAAI,SAAU6O,GACrC,OAAOA,EAAK5G,EACd,CAAC,CACH,CAAC,GAGGnJ,QAAQ6L,aAENR,EAAW,GAEX+U,EAAc,GAEdC,EAA0B,IAAItF,IAElCpL,EAAMrE,QAAQ,SAAUyE,GACtB,IAAI5D,EA4DE2P,EAuBAlK,EAIEiP,EAKJC,EA3FAC,EAAmB,KAAA,EAIvB,CAAA,IAAShR,EAAKgM,SAAW,OAAShM,EAAK+L,eAAiB,OAAS/L,EAAK+L,cAAc5S,MAc1E,IAdkFiX,EAAO3E,aAAa,CAAA,CAAI,EAAEpW,OAAO,SAAUoZ,GACrI,OAAO,KAAA,IAAuBzO,EAAK+L,cAAcF,UAAUT,KAAK,SAAU6F,GACpEhE,EAAgBgE,EAAOhE,cAC3B,OAAOwB,EAAMpD,eAAiB4B,CAChC,CAAC,CACH,CAAC,EAAE7S,OAAO,SAAU8W,EAAkBzC,GAQpC,OAPAyC,GAAoB,KAAA,IAAuB9iB,OAAO+L,OAAO6F,EAAK+L,cAAc5S,IAAI,EAAEiS,KAAK,SAAU3T,GAC/F,OAAO,KAAA,IAAuBA,EAAa2T,KAAK,SAAU+F,GACpD/X,EAAK+X,EAAO/X,GAEhB,OAAOA,IAAOqV,EAAMrV,EACtB,CAAC,CACH,CAAC,EAAI,EAAI,CAEX,EAAG,CAAC,GACFkC,EAASK,KAAK1L,QAAQC,QAAQ,CAC5BkhB,OAAQ,CAAA,EACRjY,KAAM6G,EAAK7G,KACX0S,UAAW7L,EAAK+L,eAAiB/L,EAAK+L,cAAc5S,IACtD,CAAC,CAAC,EAGJ,KAAA,IAAuB1B,GAEY,EAAnC2Y,EAAO3E,aAAa,CAAA,CAAI,EAAEjc,QAE1B,KAAA,IAAuB4gB,EAAO3E,aAAa,CAAA,CAAI,EAAEL,KAAK,SAAUqD,GAC9D,GAAIA,EAAMrV,KAAO4G,EAAK5G,IAAM,OAASqV,EAAM1C,eAAiB,OAAS0C,EAAM1C,cAAc5S,MAAQ,KAAA,IAAuB/K,OAAO+L,OAAOsU,EAAM1C,cAAc5S,IAAI,EAAEiS,KAAK,SAAU3T,GAC7K,OAAO,KAAA,IAAuBA,EAAa2T,KAAK,SAAUiG,GAIxD,GAHSA,EAAOjY,KAGL4G,EAAK5G,GAEd,OADA4X,EAHSK,EAAOlY,KAIT,CAAA,CAEX,CAAC,CACH,CAAC,EAMC,OALAmC,EAASK,KAAK1L,QAAQC,QAAQ,CAC5BkhB,OAAQ,CAAA,EACRjY,KAAM,CAAC6X,EACT,CAAC,CAAC,EAEK,CAAA,CAEX,CAAC,IAEKM,EAAiBlB,EAA2C,EAA3CA,EAAOvF,mBAAmBC,QAAQtb,SAI/B,CAAC,IAJ2C4gB,EAAOvF,mBAAmBC,QAAQzV,OAAO,SAAUyV,GACrH,OAAOA,EAAQxV,MACjB,CAAC,EAAEnE,IAAI,SAAUyJ,GACf,OAAOA,EAAOxB,EAChB,CAAC,EAAEqX,QAAQzQ,EAAK5G,EAAE,EAId2S,EAAgB,KAAA,EAEhB/L,EAAK+L,gBACPA,EAAgB/L,EAAK+L,cAAcF,UAAUxW,OAAO,SAAUkc,GAC5D,IAAItB,EAAasB,EAAOnY,GACpB6T,EAAgBsE,EAAOtE,cAE3B,GAAI,KAAA,IAAuBmD,EAAO3E,aAAa,CAAA,CAAI,EAAEL,KAAK,SAAUqD,GAClE,OAAOA,EAAMpD,eAAiB4B,GAAiB,CAAA,IAAUwB,EAAMzC,MACjE,CAAC,GAAK,CAAA,IAAUsE,EAAwBkB,IAAIvB,CAAU,EAGpD,OAFAK,EAAwBhE,IAAI2D,CAAU,EAE/B,EADPjQ,EAAKgM,OAAS,CAAA,EAGlB,CAAC,EAAE7a,IAAI,SAAUsgB,GAEf,OADSA,EAAOrY,EAElB,CAAC,EAAEsY,KAAK,GAAG,GAAKpa,KAAAA,GAGdyZ,EAAqB,CAACzZ,KAAAA,GAGtBuK,EAAUyP,GAAkBlB,EAAOzF,aAAaC,KAAOwF,EAAOzF,aAAaC,KAAOtT,KAAAA,GASpFyZ,EANE,KAAA,IAAuBX,EAAO3Y,cAC5BqZ,EAAkBV,EAAO3Y,aAAaoU,UAAUxW,OAAO,SAAU2M,GACnE,OAAOhC,EAAKqL,eAAiBrJ,EAAS2P,gBACxC,CAAC,EAAExgB,IAAI,SAAU6Q,GACf,OAAOA,EAAS5I,GAAK,IAAMgX,EAAO3Y,aAAama,GACjD,CAAC,GACoCpiB,OAASshB,EAAkBC,EAGlEA,GAAmBxV,QAAQ,SAAUsW,GACnCxB,EAAY1U,KAAKqE,CAAI,EACrB5D,EAAU,CAAA,IAAS4D,EAAKgM,OAAS/b,QAAQC,QAAQ,CAC/CiJ,KAAM6G,EAAK7G,IACb,CAAC,EAEDoQ,EAAIuI,IAAI,CACN9J,IAAK8B,EAAoB,IAAM9J,EAAKqL,aAAe,IAAMrL,EAAK5G,GAAK,IACnE2Y,OAAQ,CACNhG,cAAeA,EACfjK,YAAa4H,EAAiBsI,OAAOlQ,aAAexK,KAAAA,EACpDua,kBAAmBA,EACnBhQ,QAASA,CACX,CACF,CAAC,EAEDvG,EAASK,KAAKS,CAAO,CACvB,CAAC,EAEL,CAAC,EAEDnM,QAAQ6L,WAAWR,CAAQ,EAAE3K,MACvB4f,EAAS5gB,EAAkB,UAAWsiB,GACxCA,EAAa1W,QAAQ,SAAUa,EAASlH,GAEtC,IAIM2W,EAGA7L,EAsEAkS,EA7EiB,cAAnB9V,EAAQ+V,QAA0B/V,EAAQ5L,MAAM4gB,QAE9CjY,GADAiZ,EAAiBhW,EAAQ5L,OACH2I,KAEtB0S,EAAYuG,EAAevG,UADhBuG,EAAepQ,YAI1BhC,EAAOqQ,EAAYnb,IAClBiE,KAAOA,EACZ6G,EAAKgM,OAAS,CAAA,EACdhM,EAAKA,KAAKrC,OAAOxJ,MAAQ6L,EAAKA,KAAKrC,OAAOsO,OAC1CmE,EAAO9B,iBAAiBtO,CAAI,EAExBzF,EAAQ,GACRiW,EAAatW,OAAO8F,EAAK5G,IAC3BoX,EAAatW,OAAO8F,EAAK5G,IAAIuC,KAAKpB,CAAK,EAEvCiW,EAAatW,OAAO8F,EAAK5G,IAAM,CAACmB,GAElCA,EAAM9E,QAAUuK,EAAKvK,QACrB8E,EAAMoD,OAASqC,EAAKA,KAAKrC,OACzBpD,EAAMrJ,MAAQ8O,EAAK9O,MACnBqJ,EAAMnF,QAAU4K,EAAKqL,aACrB9Q,EAAMpG,MAAQ6L,EAAKA,KAAKrC,OAAOxJ,MAC/BoG,EAAMpB,KAAOA,EAAK,GAEd0S,IAEE,OAAS7L,EAAK+L,cAAc5S,KAC9B6G,EAAK+L,cAAc5S,KAAO0S,EAE1Bzd,OAAOwO,KAAKiP,CAAS,EAAEtQ,QAAQ,SAAU0U,GACvCjQ,EAAK+L,cAAc5S,KAAK8W,GAAcpE,EAAUoE,EAClD,CAAC,EAGH7hB,OAAOwO,KAAKiP,CAAS,EAAEtQ,QAAQ,SAAU0U,GAEvCpE,EAAUoE,GAAY1U,QAAQ,SAAU8W,GACtC,IAAIjZ,EAAKiZ,EAAOjZ,GACZD,EAAOkZ,EAAOlZ,KAGdmZ,EAAoBtS,EAAKvK,QAE7B2a,EAAO3S,OAAOmC,MAAMvK,OAAO,SAAU2K,GACnC,OAAOA,EAAK5O,IACd,CAAC,EAAEga,KAAK,SAAUpL,EAAM9K,GACtB,IAIMqd,EAEA5U,EANN,GAAIqC,EAAK5G,KAAOA,EAmBd,OAlBAgX,EAAO9B,iBAAiBtO,CAAI,EAC5BA,EAAKgM,OAAS,CAAA,EACdhM,EAAK7G,KAAOA,EACRoZ,EAAS,GACT/B,EAAatW,OAAO8F,EAAK5G,IAAKoX,EAAatW,OAAO8F,EAAK5G,IAAIuC,KAAK4W,CAAM,EAAO/B,EAAatW,OAAO8F,EAAK5G,IAAM,CAACmZ,IAC7G5U,EAASqC,EAAKA,KAAKrC,QAChBxJ,MAAQic,EAAO1F,gBAAgBuF,GAAc,IAAMtS,EAAOsO,OAE7DqG,EAAkB9iB,QACpBwQ,EAAKvK,QAAQkG,KAAK,YAAc2W,EAAkB,EAAE,EAGtDC,EAAOpZ,KAAOA,EAAK,GACnBoZ,EAAO9c,QAAUuK,EAAKvK,QACtB8c,EAAO5U,OAASA,EAChB4U,EAAOrhB,MAAQ8O,EAAK9O,MACpBqhB,EAAOnd,QAAU4K,EAAKqL,aACtBkH,EAAOpe,MAAQ6L,EAAKA,KAAKrC,OAAOxJ,MACzB,CAAA,CAEX,CAAC,CACH,CAAC,CACH,CAAC,MAICqe,EAAShC,EAAatb,GAC1Bkb,EAAO9B,iBAAiBkE,CAAM,EAC1BN,EAAU,GACV1B,EAAatW,OAAOsY,EAAOpZ,IAC7BoX,EAAatW,OAAOyB,KAAKuW,CAAO,EAEhC1B,EAAatW,OAAS,CAACgY,GAEzBA,EAAQzc,QAAU+c,EAAO/c,QACzByc,EAAQvU,OAAS6U,EAAOxS,KAAKrC,OAC7BuU,EAAQhhB,MAAQshB,EAAOthB,MACvBghB,EAAQ9c,QAAUod,EAAOnH,aACzB6G,EAAQ/d,MAAQqe,EAAOxS,KAAKrC,OAAOxJ,MACnC+d,EAAQ/Y,KAAO,KAEnB,CAAC,EAEDiX,EAAO7F,WAAa,CAAA,EAEpB6F,EAAOqC,sBAAsB,EAE7BviB,EAAQsgB,CAAY,CACtB,CAAC,EAEM,SAAUkC,GACf,OAAOnC,EAAOzgB,MAAMC,KAAMC,SAAS,CACrC,EACC,EAEP,CAAC,CACH,CAAC,EAKDD,KAAK0iB,sBAAwB,WACvB,CAAA,IAAU1iB,KAAK8C,MAAM3B,MAAMC,IAAIiC,UACjCrD,KAAK8a,mBAAmBC,QAAU/a,KAAK8a,mBAAmBC,QAAQzV,OAAO,SAAUuF,GACjF,OAAOA,EAAOtF,MAChB,CAAC,EAC8C,IAA3CvF,KAAK8a,mBAAmBC,QAAQtb,SAAgBO,KAAK8a,mBAAmBxa,KAC1EN,KAAKgf,yBAAyB,CAAEC,OAAQ,CAAA,CAAM,CAAC,CAGrD,EAMAjf,KAAK4iB,eAAiB,WACpB,OAAO5iB,KAAK0N,OAAOmC,MAAM,GAAGjC,MAC9B,EAKA5N,KAAK2N,eAAiB,WACpB,OAAO3N,KAAK0N,OAAOmC,MAAM,GAAGnC,MAC9B,EAWA1N,KAAKsX,UAAY,SAAU7V,EAAMgG,EAAKoW,EAAWnW,GAC/C,IAAImb,EAAS7iB,KAEb,OAAO,IAAIE,QAAQ,SAAUC,GAEvB,CAAA,IAASsB,EAEXsL,WAAW,WAET,IAYMkJ,EAyBQ6M,EArCVC,EAAU,IAAIzb,EAAiB,CACjCE,QAASqb,EACTpb,IAAKA,EACLC,aAAcA,CAChB,CAAC,EAGG+F,EAAYsV,EAAQC,qBAAqB,EAEzC,KAAA,IAAuBnF,GAGrB5H,EAAO4M,EACXra,EAAIya,YAAY,CACdC,SAAU,CAAA,EACV9e,MAAO,wBACPI,MAAO,CACLJ,MAAO,CACL+e,SAAU,OACZ,CACF,EAEAC,YAAa,CAACvb,IAAIC,OAAOyQ,EAAS,GAAIa,EAAerY,QAAS,CAC5DqI,KAAM,WACJ,MAAO,CACLtG,MAAOmT,EAAKnT,MACZ3B,MAAO,CACLC,IAAK,CACHC,KAAM4U,EAAKnT,MAAM2C,UAAY,CAACwQ,EAAKvO,aACnCgT,SAAU,CAAA,CACZ,CACF,CACF,CACF,EAEA7U,QAAS,CACP9B,cACM+e,EAASljB,EAAkB,YAC7B,IAAIyjB,EAAS3hB,MAAMuU,EAAKlS,aAAa,CAAA,CAAI,EACrCoG,EAASkZ,EAAOlZ,OAChBV,EAAQ4Z,EAAO5Z,MAEnB/H,MAAM1B,KAAK2B,UAAU,EACrBsU,EAAK2H,KAAK,gBAAiB,CACzBzT,OAAQA,EACRV,MAAOA,CACT,CAAC,CACH,CAAC,EAED,WACE,OAAOqZ,EAAO/iB,MAAMC,KAAMC,SAAS,CACrC,EAIJ,CACF,CAAC,CAAC,GACF8iB,QAASA,CACX,CAAC,IAGDtV,EAAU6V,MAAM,eAAgB1jB,EAAkB,YAChDie,EAAU0F,OAAOvjB,KAAKmO,GAAG,CAC3B,CAAC,CAAC,EACFV,EAAUS,OAAO,EACjB2U,EAAO1H,gBAAgBE,KAAK,SAAU4C,GACpC,OAAOJ,EAAUG,WAAaC,EAAsBJ,UAAUG,QAChE,CAAC,EAAEvQ,UAAYA,EAEnB,CAAC,GAEGlG,KAAAA,IAAcsW,EAChBrV,EAAIgb,aAAa,EAEjBX,EAAOrF,qBAAqBK,CAAS,EAEvC1d,EAAQ,EAEZ,CAAC,CACH,EAKAH,KAAKwX,MAAQ,WACX,IAAIiM,EAAUzjB,KAEdwI,EAAIkb,gBAAgB,UAAW,UAAW,CAAEzU,SAAU,CAAE,CAAC,EACzDzG,EAAIgb,aAAa,EAEjBvJ,EAASzO,QAAQ,SAAUnG,GACrBiX,EAAQzC,EAA4B2C,aAAanX,CAAO,EACxD,KAAA,IAAuBiX,GACzBA,EAAMvN,IAAI,oBAAqB0U,EAAQE,2BAA2B,CAEtE,CAAC,EAED3jB,KAAKka,WAAa,KAClBla,KAAKmb,gBAAkB,GACvBnb,KAAKoa,mBAAmBwJ,eAAe,cAAe5jB,KAAKud,qBAAqB,EAChFvd,KAAKoa,mBAAmByJ,GAAG,iBAAkB7jB,KAAKyd,uBAAuB,EACzEzd,KAAKyd,wBAA0B,KAC/BxD,EAASzC,MAAM,EACfxX,KAAKgb,aAAe,KACpBhb,KAAKoa,mBAAqB,KAC1Bpa,KAAK4d,KAAK,OAAO,CACnB,CACF,CAEA5V,EAAQgS,EAASJ,CAAa,EAE9Bra,EAAQwB,QAAU,IAAIiZ,CAEtB,EAAE,CAAC8J,wCAAwC,EAAEC,+BAA+B,CAAC,EAAE,EAAE,GAAG,CAAC,GAAG"} \ No newline at end of file