Hacked By AnonymousFox
{"version":3,"sources":["<anon>"],"sourcesContent":["/**\n * @license Highcharts JS v12.1.2 (2025-01-09)\n * @module highcharts/modules/flowmap\n * @requires highcharts\n *\n * (c) 2009-2024\n *\n * License: www.highcharts.com/license\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"highcharts\"), require(\"highcharts\")[\"SeriesRegistry\"]);\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"highcharts/modules/flowmap\", [[\"highcharts/highcharts\"], [\"highcharts/highcharts\",\"SeriesRegistry\"]], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"highcharts/modules/flowmap\"] = factory(require(\"highcharts\"), require(\"highcharts\")[\"SeriesRegistry\"]);\n\telse\n\t\troot[\"Highcharts\"] = factory(root[\"Highcharts\"], root[\"Highcharts\"][\"SeriesRegistry\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE__944__, __WEBPACK_EXTERNAL_MODULE__512__) {\nreturn /******/ (function() { // webpackBootstrap\n/******/ \t\"use strict\";\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 512:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__512__;\n\n/***/ }),\n\n/***/ 944:\n/***/ (function(module) {\n\nmodule.exports = __WEBPACK_EXTERNAL_MODULE__944__;\n\n/***/ })\n\n/******/ \t});\n/************************************************************************/\n/******/ \t// The module cache\n/******/ \tvar __webpack_module_cache__ = {};\n/******/ \t\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/ \t\t// Check if module is in cache\n/******/ \t\tvar cachedModule = __webpack_module_cache__[moduleId];\n/******/ \t\tif (cachedModule !== undefined) {\n/******/ \t\t\treturn cachedModule.exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = __webpack_module_cache__[moduleId] = {\n/******/ \t\t\t// no module.id needed\n/******/ \t\t\t// no module.loaded needed\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/ \t\n/******/ \t\t// Execute the module function\n/******/ \t\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n/******/ \t\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/ \t\n/************************************************************************/\n/******/ \t/* webpack/runtime/compat get default export */\n/******/ \t!function() {\n/******/ \t\t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t\t__webpack_require__.n = function(module) {\n/******/ \t\t\tvar getter = module && module.__esModule ?\n/******/ \t\t\t\tfunction() { return module['default']; } :\n/******/ \t\t\t\tfunction() { return module; };\n/******/ \t\t\t__webpack_require__.d(getter, { a: getter });\n/******/ \t\t\treturn getter;\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/define property getters */\n/******/ \t!function() {\n/******/ \t\t// define getter functions for harmony exports\n/******/ \t\t__webpack_require__.d = function(exports, definition) {\n/******/ \t\t\tfor(var key in definition) {\n/******/ \t\t\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n/******/ \t\t\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n/******/ \t\t\t\t}\n/******/ \t\t\t}\n/******/ \t\t};\n/******/ \t}();\n/******/ \t\n/******/ \t/* webpack/runtime/hasOwnProperty shorthand */\n/******/ \t!function() {\n/******/ \t\t__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }\n/******/ \t}();\n/******/ \t\n/************************************************************************/\nvar __webpack_exports__ = {};\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, {\n \"default\": function() { return /* binding */ flowmap_src; }\n});\n\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\"],\"commonjs\":[\"highcharts\"],\"commonjs2\":[\"highcharts\"],\"root\":[\"Highcharts\"]}\nvar highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_ = __webpack_require__(944);\nvar highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default = /*#__PURE__*/__webpack_require__.n(highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_);\n// EXTERNAL MODULE: external {\"amd\":[\"highcharts/highcharts\",\"SeriesRegistry\"],\"commonjs\":[\"highcharts\",\"SeriesRegistry\"],\"commonjs2\":[\"highcharts\",\"SeriesRegistry\"],\"root\":[\"Highcharts\",\"SeriesRegistry\"]}\nvar highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_ = __webpack_require__(512);\nvar highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default = /*#__PURE__*/__webpack_require__.n(highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_);\n;// ./code/es5/es-modules/Series/FlowMap/FlowMapPoint.js\n/* *\n *\n * (c) 2010-2024 Askel Eirik Johansson, Piotr Madej\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d,\n b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d,\n b) { d.__proto__ = b; }) ||\n function (d,\n b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n\nvar MapLinePoint = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes.mapline.prototype.pointClass;\n\nvar pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick, isString = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isString, isNumber = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isNumber;\n/* *\n *\n * Class\n *\n * */\nvar FlowMapPoint = /** @class */ (function (_super) {\n __extends(FlowMapPoint, _super);\n function FlowMapPoint() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /* *\n *\n * Functions\n *\n * */\n /**\n * @private\n */\n FlowMapPoint.prototype.isValid = function () {\n var valid = !!(this.options.to && this.options.from);\n [this.options.to, this.options.from]\n .forEach(function (toOrFrom) {\n valid = !!(valid && (toOrFrom && (isString(toOrFrom) || ( // Point id or has lat/lon coords\n isNumber(pick(toOrFrom[0], toOrFrom.lat)) &&\n isNumber(pick(toOrFrom[1], toOrFrom.lon))))));\n });\n return valid;\n };\n return FlowMapPoint;\n}(MapLinePoint));\n/* *\n *\n * Default Export\n *\n * */\n/* harmony default export */ var FlowMap_FlowMapPoint = (FlowMapPoint);\n\n;// ./code/es5/es-modules/Series/FlowMap/FlowMapSeries.js\n/* *\n *\n * (c) 2010-2024 Askel Eirik Johansson, Piotr Madej\n *\n * License: www.highcharts.com/license\n *\n * !!!!!!! SOURCE GETS TRANSPILED BY TYPESCRIPT. EDIT TS FILE ONLY. !!!!!!!\n *\n * */\n\nvar FlowMapSeries_extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d,\n b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d,\n b) { d.__proto__ = b; }) ||\n function (d,\n b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b,\n p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __spreadArray = (undefined && undefined.__spreadArray) || function (to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n};\n\n\nvar Point = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).series.prototype.pointClass, _a = (highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default()).seriesTypes, ColumnSeries = _a.column, MapSeries = _a.map, MapLineSeries = _a.mapline;\n\nvar addEvent = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).addEvent, arrayMax = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).arrayMax, arrayMin = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).arrayMin, defined = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).defined, extend = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).extend, isArray = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).isArray, merge = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).merge, FlowMapSeries_pick = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).pick, relativeLength = (highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()).relativeLength;\n/**\n * The flowmap series type\n *\n * @private\n * @class\n * @name Highcharts.seriesTypes.flowmap\n *\n * @augments Highcharts.Series\n */\nvar FlowMapSeries = /** @class */ (function (_super) {\n FlowMapSeries_extends(FlowMapSeries, _super);\n function FlowMapSeries() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /* *\n *\n * Static Function\n *\n * */\n /**\n * Get vector length.\n * @private\n */\n FlowMapSeries.getLength = function (x, y) {\n return Math.sqrt(x * x + y * y);\n };\n /**\n * Return a normalized vector.\n * @private\n */\n FlowMapSeries.normalize = function (x, y) {\n var length = this.getLength(x,\n y);\n return [x / length, y / length];\n };\n /**\n * Return an SVGPath for markerEnd.\n * @private\n */\n FlowMapSeries.markerEndPath = function (lCorner, rCorner, topCorner, options) {\n var width = relativeLength(options.width || 0,\n this.getLength(rCorner[0] - lCorner[0],\n rCorner[1] - lCorner[1]));\n var type = options.markerType || 'arrow',\n _a = this.normalize(rCorner[0] - lCorner[0],\n rCorner[1] - lCorner[1]),\n edgeX = _a[0],\n edgeY = _a[1];\n var path = [];\n // For arrow head calculation.\n if (type === 'arrow') {\n // Left side of arrow head.\n var x = lCorner[0],\n y = lCorner[1];\n x -= edgeX * width;\n y -= edgeY * width;\n path.push(['L', x, y]);\n // Tip of arrow head.\n path.push(['L', topCorner[0], topCorner[1]]);\n // Right side of arrow head.\n x = rCorner[0], y = rCorner[1];\n x += edgeX * width;\n y += edgeY * width;\n path.push(['L', x, y]);\n }\n // For mushroom head calculation.\n if (type === 'mushroom') {\n var xLeft = lCorner[0],\n yLeft = lCorner[1],\n xRight = rCorner[0],\n yRight = rCorner[1];\n var xTop = topCorner[0], yTop = topCorner[1], xMid = (xRight - xLeft) / 2 + xLeft, yMid = (yRight - yLeft) / 2 + yLeft, \n // Control point for curve.\n xControl = (xTop - xMid) * 2 + xMid, yControl = (yTop - yMid) * 2 + yMid;\n // Left side of arrow head.\n xLeft -= edgeX * width;\n yLeft -= edgeY * width;\n path.push(['L', xLeft, yLeft]);\n // Right side of arrow head.\n xRight += edgeX * width;\n yRight += edgeY * width;\n // Curve from left to right.\n path.push(['Q', xControl, yControl, xRight, yRight]);\n }\n return path;\n };\n /**\n *\n * Functions\n *\n */\n /**\n * Animate the flowmap point one by one from 'fromPoint'.\n *\n * @private\n * @function Highcharts.seriesTypes.flowmap#animate\n *\n * @param {boolean} init\n * Whether to initialize the animation or run it\n */\n FlowMapSeries.prototype.animate = function (init) {\n var series = this,\n points = series.points;\n if (!init) { // Run the animation\n points.forEach(function (point) {\n if (point.shapeArgs &&\n isArray(point.shapeArgs.d) &&\n point.shapeArgs.d.length) {\n var path = point.shapeArgs.d,\n x = path[0][1],\n y = path[0][2];\n // To animate SVG path the initial path array needs to be\n // same as target, but element should be visible, so we\n // insert array elements with start (M) values\n if (x && y) {\n var start = [];\n for (var i = 0; i < path.length; i++) {\n // Added any when merging master into another branch\n // :((. The spread looks correct, but TS complains\n // about possible number in the first position,\n // which is the segment type.\n start.push(__spreadArray([], path[i], true));\n for (var j = 1; j < path[i].length; j++) {\n start[i][j] = j % 2 ? x : y;\n }\n }\n if (point.graphic) {\n point.graphic.attr({ d: start });\n point.graphic.animate({ d: path });\n }\n }\n }\n });\n }\n };\n /**\n * Get the actual width of a link either as a mapped weight between\n * `minWidth` and `maxWidth` or a specified width.\n * @private\n */\n FlowMapSeries.prototype.getLinkWidth = function (point) {\n var width = this.options.width,\n weight = point.options.weight || this.options.weight;\n point.options.weight = weight;\n if (width && !weight) {\n return width;\n }\n var smallestWeight = this.smallestWeight,\n greatestWeight = this.greatestWeight;\n if (!defined(weight) || !smallestWeight || !greatestWeight) {\n return 0;\n }\n var minWidthLimit = this.options.minWidth,\n maxWidthLimit = this.options.maxWidth;\n return (weight - smallestWeight) * (maxWidthLimit - minWidthLimit) /\n ((greatestWeight - smallestWeight) || 1) + minWidthLimit;\n };\n /**\n * Automatically calculate the optimal curve based on a reference point.\n * @private\n */\n FlowMapSeries.prototype.autoCurve = function (fromX, fromY, toX, toY, centerX, centerY) {\n var linkV = {\n x: (toX - fromX),\n y: (toY - fromY)\n },\n half = {\n x: (toX - fromX) / 2 + fromX,\n y: (toY - fromY) / 2 + fromY\n },\n centerV = {\n x: half.x - centerX,\n y: half.y - centerY\n };\n // Dot product and determinant\n var dot = linkV.x * centerV.x + linkV.y * centerV.y,\n det = linkV.x * centerV.y - linkV.y * centerV.x;\n // Calculate the angle and base the curveFactor on it.\n var angle = Math.atan2(det,\n dot),\n angleDeg = angle * 180 / Math.PI;\n if (angleDeg < 0) {\n angleDeg = 360 + angleDeg;\n }\n angle = angleDeg * Math.PI / 180;\n // A more subtle result.\n return -Math.sin(angle) * 0.7;\n };\n /**\n * Get point attributes.\n * @private\n */\n FlowMapSeries.prototype.pointAttribs = function (point, state) {\n var attrs = MapSeries.prototype.pointAttribs.call(this,\n point,\n state);\n attrs.fill = FlowMapSeries_pick(point.options.fillColor, point.options.color, this.options.fillColor === 'none' ? null : this.options.fillColor, this.color);\n attrs['fill-opacity'] = FlowMapSeries_pick(point.options.fillOpacity, this.options.fillOpacity);\n attrs['stroke-width'] = FlowMapSeries_pick(point.options.lineWidth, this.options.lineWidth, 1);\n if (point.options.opacity) {\n attrs.opacity = point.options.opacity;\n }\n return attrs;\n };\n /**\n * Draw shapeArgs based on from/to options. Run translation operations. We\n * need two loops: first loop to calculate data, like smallest/greatest\n * weights and centerOfPoints, which needs the calculated positions, second\n * loop for calculating shapes of points based on previous calculations.\n * @private\n */\n FlowMapSeries.prototype.translate = function () {\n var _this = this;\n if (this.chart.hasRendered && (this.isDirtyData || !this.hasRendered)) {\n this.processData();\n this.generatePoints();\n }\n var weights = [];\n var averageX = 0,\n averageY = 0;\n this.points.forEach(function (point) {\n var chart = _this.chart,\n mapView = chart.mapView,\n options = point.options,\n dirtySeries = function () {\n point.series.isDirty = true;\n }, getPointXY = function (pointId) {\n var foundPoint = chart.get(pointId);\n // Connect to the linked parent point (in mappoint) to\n // trigger series redraw for the linked point (in flow).\n if ((foundPoint instanceof Point) &&\n foundPoint.plotX &&\n foundPoint.plotY) {\n // After linked point update flowmap point should\n // be also updated\n addEvent(foundPoint, 'update', dirtySeries);\n return {\n x: foundPoint.plotX,\n y: foundPoint.plotY\n };\n }\n }, getLonLatXY = function (lonLat) {\n if (isArray(lonLat)) {\n return {\n lon: lonLat[0],\n lat: lonLat[1]\n };\n }\n return lonLat;\n };\n var fromPos,\n toPos;\n if (typeof options.from === 'string') {\n fromPos = getPointXY(options.from);\n }\n else if (typeof options.from === 'object' && mapView) {\n fromPos = mapView.lonLatToPixels(getLonLatXY(options.from));\n }\n if (typeof options.to === 'string') {\n toPos = getPointXY(options.to);\n }\n else if (typeof options.to === 'object' && mapView) {\n toPos = mapView.lonLatToPixels(getLonLatXY(options.to));\n }\n // Save original point location.\n point.fromPos = fromPos;\n point.toPos = toPos;\n if (fromPos && toPos) {\n averageX += (fromPos.x + toPos.x) / 2;\n averageY += (fromPos.y + toPos.y) / 2;\n }\n if (FlowMapSeries_pick(point.options.weight, _this.options.weight)) {\n weights.push(FlowMapSeries_pick(point.options.weight, _this.options.weight));\n }\n });\n this.smallestWeight = arrayMin(weights);\n this.greatestWeight = arrayMax(weights);\n this.centerOfPoints = {\n x: averageX / this.points.length,\n y: averageY / this.points.length\n };\n this.points.forEach(function (point) {\n // Don't draw point if weight is not valid.\n if (!_this.getLinkWidth(point)) {\n point.shapeArgs = {\n d: []\n };\n return;\n }\n if (point.fromPos) {\n point.plotX = point.fromPos.x;\n point.plotY = point.fromPos.y;\n }\n // Calculate point shape\n point.shapeType = 'path';\n point.shapeArgs = _this.getPointShapeArgs(point);\n // When updating point from null to normal value, set a real color\n // (don't keep nullColor).\n point.color = FlowMapSeries_pick(point.options.color, point.series.color);\n });\n };\n FlowMapSeries.prototype.getPointShapeArgs = function (point) {\n var _a;\n var fromPos = point.fromPos,\n toPos = point.toPos;\n if (!fromPos || !toPos) {\n return {};\n }\n var finalWidth = this.getLinkWidth(point) / 2,\n pointOptions = point.options,\n markerEndOptions = merge(this.options.markerEnd,\n pointOptions.markerEnd),\n growTowards = FlowMapSeries_pick(pointOptions.growTowards,\n this.options.growTowards),\n fromX = fromPos.x || 0,\n fromY = fromPos.y || 0;\n var toX = toPos.x || 0,\n toY = toPos.y || 0,\n curveFactor = FlowMapSeries_pick(pointOptions.curveFactor,\n this.options.curveFactor),\n offset = markerEndOptions && markerEndOptions.enabled &&\n markerEndOptions.height || 0;\n if (!defined(curveFactor)) { // Automate the curveFactor value.\n curveFactor = this.autoCurve(fromX, fromY, toX, toY, this.centerOfPoints.x, this.centerOfPoints.y);\n }\n // An offset makes room for arrows if they are specified.\n if (offset) {\n // Prepare offset if it's a percentage by converting to number.\n offset = relativeLength(offset, finalWidth * 4);\n // Vector between the points.\n var dX_1 = toX - fromX,\n dY_1 = toY - fromY;\n // Vector is halved.\n dX_1 *= 0.5;\n dY_1 *= 0.5;\n // Vector points exactly between the points.\n var mX_1 = fromX + dX_1,\n mY_1 = fromY + dY_1;\n // Rotating the halfway distance by 90 anti-clockwise.\n // We can then use this to create an arc.\n var tmp_1 = dX_1;\n dX_1 = dY_1;\n dY_1 = -tmp_1;\n // Calculate the arc strength.\n var arcPointX_1 = (mX_1 + dX_1 * curveFactor),\n arcPointY_1 = (mY_1 + dY_1 * curveFactor);\n var _b = FlowMapSeries.normalize(arcPointX_1 - toX,\n arcPointY_1 - toY),\n offsetX = _b[0],\n offsetY = _b[1];\n offsetX *= offset;\n offsetY *= offset;\n toX += offsetX;\n toY += offsetY;\n }\n // Vector between the points.\n var dX = toX - fromX,\n dY = toY - fromY;\n // Vector is halved.\n dX *= 0.5;\n dY *= 0.5;\n // Vector points exactly between the points.\n var mX = fromX + dX,\n mY = fromY + dY;\n // Rotating the halfway distance by 90 anti-clockwise.\n // We can then use this to create an arc.\n var tmp = dX;\n dX = dY;\n dY = -tmp;\n // Weight vector calculation for the middle of the curve.\n var _c = FlowMapSeries.normalize(dX,\n dY),\n wX = _c[0],\n wY = _c[1];\n // The `fineTune` prevents an obvious mismatch along the curve.\n var fineTune = 1 + Math.sqrt(curveFactor * curveFactor) * 0.25;\n wX *= finalWidth * fineTune;\n wY *= finalWidth * fineTune;\n // Calculate the arc strength.\n var arcPointX = (mX + dX * curveFactor),\n arcPointY = (mY + dY * curveFactor);\n // Calculate edge vectors in the from-point.\n var _d = FlowMapSeries.normalize(arcPointX - fromX,\n arcPointY - fromY),\n fromXToArc = _d[0],\n fromYToArc = _d[1];\n tmp = fromXToArc;\n fromXToArc = fromYToArc;\n fromYToArc = -tmp;\n fromXToArc *= finalWidth;\n fromYToArc *= finalWidth;\n // Calculate edge vectors in the to-point.\n var _e = FlowMapSeries.normalize(arcPointX - toX,\n arcPointY - toY),\n toXToArc = _e[0],\n toYToArc = _e[1];\n tmp = toXToArc;\n toXToArc = -toYToArc;\n toYToArc = tmp;\n toXToArc *= finalWidth;\n toYToArc *= finalWidth;\n // Shrink the starting edge and middle thickness to make it grow\n // towards the end.\n if (growTowards) {\n fromXToArc /= finalWidth;\n fromYToArc /= finalWidth;\n wX /= 4;\n wY /= 4;\n }\n var shapeArgs = {\n d: [[\n 'M',\n fromX - fromXToArc,\n fromY - fromYToArc\n ],\n [\n 'Q',\n arcPointX - wX,\n arcPointY - wY,\n toX - toXToArc,\n toY - toYToArc\n ],\n [\n 'L',\n toX + toXToArc,\n toY + toYToArc\n ],\n [\n 'Q',\n arcPointX + wX,\n arcPointY + wY,\n fromX + fromXToArc,\n fromY + fromYToArc\n ],\n [\n 'Z'\n ]]\n };\n if (markerEndOptions && markerEndOptions.enabled && shapeArgs.d) {\n var marker = FlowMapSeries.markerEndPath([toX - toXToArc,\n toY - toYToArc],\n [toX + toXToArc,\n toY + toYToArc],\n [toPos.x,\n toPos.y],\n markerEndOptions);\n (_a = shapeArgs.d).splice.apply(_a, __spreadArray([2, 0], marker, false));\n }\n // Objects converted to string to be used in tooltip.\n var fromPoint = point.options.from,\n toPoint = point.options.to,\n fromLat = fromPoint.lat,\n fromLon = fromPoint.lon,\n toLat = toPoint.lat,\n toLon = toPoint.lon;\n if (fromLat && fromLon) {\n point.options.from = \"\" + (+fromLat) + \", \".concat(+fromLon);\n }\n if (toLat && toLon) {\n point.options.to = \"\" + (+toLat) + \", \".concat(+toLon);\n }\n return shapeArgs;\n };\n /* *\n *\n * Static properties\n *\n * */\n /**\n * A flowmap series is a series laid out on top of a map series allowing to\n * display route paths (e.g. flight or ship routes) or flows on a map. It\n * creates a link between two points on a map chart.\n *\n * @since 11.0.0\n * @extends plotOptions.mapline\n * @excluding affectsMapView, allAreas, allowPointSelect, boostBlending,\n * boostThreshold, borderColor, borderWidth, dashStyle, dataLabels,\n * dragDrop, joinBy, mapData, negativeColor, onPoint, shadow, showCheckbox\n * @product highmaps\n * @requires modules/flowmap\n * @optionparent plotOptions.flowmap\n */\n FlowMapSeries.defaultOptions = merge(MapLineSeries.defaultOptions, {\n animation: true,\n /**\n * The `curveFactor` option for all links. Value higher than 0 will\n * curve the link clockwise. A negative value will curve it counter\n * clockwise. If the value is 0 the link will be a straight line. By\n * default undefined curveFactor get an automatic curve.\n *\n * @sample {highmaps} maps/series-flowmap/curve-factor Setting different\n * values for curveFactor\n *\n * @type {number}\n * @default undefined\n * @apioption plotOptions.flowmap.curveFactor\n */\n dataLabels: {\n enabled: false\n },\n /**\n * The fill color of all the links. If not set, the series color will be\n * used with the opacity set in\n * [fillOpacity](#plotOptions.flowmap.fillOpacity).\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n * @apioption plotOptions.flowmap.fillColor\n */\n /**\n * The opacity of the color fill for all links.\n *\n * @type {number}\n * @sample {highmaps} maps/series-flowmap/fill-opacity\n * Setting different values for fillOpacity\n */\n fillOpacity: 0.5,\n /**\n * The [id](#series.id) of another series to link to. Additionally, the\n * value can be \":previous\" to link to the previous series. When two\n * series are linked, only the first one appears in the legend. Toggling\n * the visibility of this also toggles the linked series, which is\n * necessary for operations such as zoom or updates on the flowmap\n * series.\n *\n * @type {string}\n * @apioption plotOptions.flowmap.linkedTo\n */\n /**\n * A `markerEnd` creates an arrow symbol indicating the direction of\n * flow at the destination. Specifying a `markerEnd` here will create\n * one for each link.\n *\n * @declare Highcharts.SeriesFlowMapSeriesOptionsObject\n */\n markerEnd: {\n /**\n * Enable or disable the `markerEnd`.\n *\n * @type {boolean}\n * @sample {highmaps} maps/series-flowmap/marker-end\n * Setting different markerType for markerEnd\n */\n enabled: true,\n /**\n * Height of the `markerEnd`. Can be a number in pixels or a\n * percentage based on the weight of the link.\n *\n * @type {number|string}\n */\n height: '40%',\n /**\n * Width of the `markerEnd`. Can be a number in pixels or a\n * percentage based on the weight of the link.\n *\n * @type {number|string}\n */\n width: '40%',\n /**\n * Change the shape of the `markerEnd`.\n * Can be `arrow` or `mushroom`.\n *\n * @type {string}\n */\n markerType: 'arrow'\n },\n /**\n * If no weight has previously been specified, this will set the width\n * of all the links without being compared to and scaled according to\n * other weights.\n *\n * @type {number}\n */\n width: 1,\n /**\n * Maximum width of a link expressed in pixels. The weight of a link is\n * mapped between `maxWidth` and `minWidth`.\n *\n * @type {number}\n */\n maxWidth: 25,\n /**\n * Minimum width of a link expressed in pixels. The weight of a link is\n * mapped between `maxWidth` and `minWidth`.\n *\n * @type {number}\n */\n minWidth: 5,\n /**\n * Specify the `lineWidth` of the links if they are not specified.\n *\n * @type {number}\n */\n lineWidth: void 0,\n /**\n * The opacity of all the links. Affects the opacity for the entire\n * link, including stroke. See also\n * [fillOpacity](#plotOptions.flowmap.fillOpacity), that affects the\n * opacity of only the fill color.\n *\n * @apioption plotOptions.flowmap.opacity\n */\n /**\n * The weight for all links with unspecified weights. The weight of a\n * link determines its thickness compared to other links.\n *\n * @sample {highmaps} maps/series-flowmap/ship-route/ Example ship route\n *\n * @type {number}\n * @product highmaps\n * @apioption plotOptions.flowmap.weight\n */\n tooltip: {\n /**\n * The HTML for the flowmaps' route description in the tooltip. It\n * consists of the `headerFormat` and `pointFormat`, which can be\n * edited. Variables are enclosed by curly brackets. Available\n * variables are `series.name`, `point.options.from`,\n * `point.options.to`, `point.options.weight` and other properties in the\n * same form.\n *\n * @product highmaps\n */\n headerFormat: '<span style=\"font-size: 0.8em\">{series.name}</span><br/>',\n pointFormat: '{point.options.from} \\u2192 {point.options.to}: <b>{point.options.weight}</b>'\n }\n });\n return FlowMapSeries;\n}(MapLineSeries));\nextend(FlowMapSeries.prototype, {\n pointClass: FlowMap_FlowMapPoint,\n pointArrayMap: ['from', 'to', 'weight'],\n drawPoints: ColumnSeries.prototype.drawPoints,\n dataColumnKeys: ColumnSeries.prototype.dataColumnKeys,\n // Make it work on zoom or pan.\n useMapGeometry: true\n});\nhighcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default().registerSeriesType('flowmap', FlowMapSeries);\n/* *\n *\n * Default export\n *\n * */\n/* harmony default export */ var FlowMap_FlowMapSeries = ((/* unused pure expression or super */ null && (FlowMapSeries)));\n/* *\n *\n * API options\n *\n * */\n/**\n * A `flowmap` series. If the [type](#series.flowmap.type) option\n * is not specified, it is inherited from [chart.type](#chart.type).\n *\n * @extends series,plotOptions.flowmap\n * @excluding affectsMapView, allAreas, allowPointSelect, boostBlending,\n * boostThreshold, borderColor, borderWidth, dashStyle, dataLabels, dragDrop,\n * joinBy, mapData, negativeColor, onPoint, shadow, showCheckbox\n * @product highmaps\n * @apioption series.flowmap\n */\n/**\n * An array of data points for the series. For the `flowmap` series\n * type, points can be given in the following ways:\n *\n * 1. An array of arrays with options as values. In this case,\n * the values correspond to `from, to, weight`. Example:\n * ```js\n * data: [\n * ['Point 1', 'Point 2', 4]\n * ]\n * ```\n *\n * 2. An array of objects with named values. The following snippet shows only a\n * few settings, see the complete options set below.\n *\n * ```js\n * data: [{\n * from: 'Point 1',\n * to: 'Point 2',\n * curveFactor: 0.4,\n * weight: 5,\n * growTowards: true,\n * markerEnd: {\n * enabled: true,\n * height: 15,\n * width: 8\n * }\n * }]\n * ```\n *\n * 3. For objects with named values, instead of using the `mappoint` `id`,\n * you can use `[longitude, latitude]` arrays.\n *\n * ```js\n * data: [{\n * from: [longitude, latitude],\n * to: [longitude, latitude]\n * }]\n * ```\n *\n * @type {Array<number|null|*>}\n * @apioption series.flowmap.data\n */\n/**\n * A `curveFactor` with a higher value than 0 will curve the link clockwise.\n * A negative value will curve the link counter clockwise.\n * If the value is 0 the link will be straight.\n *\n * @sample {highmaps} maps/series-flowmap/ship-route/\n * Example ship route\n *\n * @type {number}\n * @apioption series.flowmap.data.curveFactor\n */\n/**\n * The fill color of an individual link.\n *\n * @type {Highcharts.ColorString|Highcharts.GradientColorObject|Highcharts.PatternObject}\n * @apioption series.flowmap.data.fillColor\n */\n/**\n * ID referencing a map point holding coordinates of the link origin or\n * coordinates in terms of array of `[longitude, latitude]` or object with `lon`\n * and `lat` properties.\n *\n * @sample {highmaps} maps/series-flowmap/from-to-lon-lat\n * Flowmap point using lonlat coordinates\n * @sample {highmaps} maps/series-flowmap/flight-routes\n * Highmaps basic flight routes demo\n *\n * @type {string|Highcharts.LonLatArray|Highcharts.MapLonLatObject}\n * @apioption series.flowmap.data.from\n */\n/**\n * ID referencing a map point holding coordinates of the link origin or\n * coordinates in terms of array of `[longitude, latitude]` or object with `lon`\n * and `lat` properties.\n *\n * @sample {highmaps} maps/series-flowmap/from-to-lon-lat\n * Flowmap point using lonlat coordinates\n * @sample {highmaps} maps/series-flowmap/flight-routes\n * Highmaps basic flight routes demo\n *\n * @type {string|Highcharts.LonLatArray|Highcharts.MapLonLatObject}\n * @apioption series.flowmap.data.to\n */\n/**\n * The opacity of the link color fill.\n *\n * @type {number}\n * @apioption series.flowmap.data.fillOpacity\n */\n/**\n * If set to `true`, the line will grow towards its end.\n *\n * @sample {highmaps} maps/series-flowmap/ship-route/\n * Example ship route\n *\n * @type {boolean}\n * @apioption series.flowmap.data.growTowards\n */\n/**\n * Specifying a `markerEnd` here will create an arrow symbol\n * indicating the direction of flow at the destination of one individual link.\n * If one has been previously specified at the higher level option it will be\n * overridden for the current link.\n *\n * @sample {highmaps} maps/series-flowmap/ship-route/\n * Example ship route\n *\n * @type {*|null}\n * @apioption series.flowmap.data.markerEnd\n */\n/**\n * Enable or disable the `markerEnd`.\n *\n * @type {boolean}\n * @apioption series.flowmap.data.markerEnd.enabled\n */\n/**\n * Height of the `markerEnd`. Can be a number in pixels\n * or a percentage based on the weight of the link.\n *\n * @type {number|string}\n * @apioption series.flowmap.data.markerEnd.height\n */\n/**\n * Width of the `markerEnd`. Can be a number in pixels\n * or a percentage based on the weight of the link.\n *\n * @type {number|string}\n * @apioption series.flowmap.data.markerEnd.width\n */\n/**\n * Change the shape of the `markerEnd`. Can be `arrow` or `mushroom`.\n *\n * @type {string}\n * @apioption series.flowmap.data.markerEnd.markerType\n */\n/**\n * The opacity of an individual link.\n *\n * @type {number}\n * @apioption series.flowmap.data.opacity\n */\n/**\n * The weight of a link determines its thickness compared to\n * other links.\n *\n * @sample {highmaps} maps/series-flowmap/ship-route/\n * Example ship route\n *\n * @type {number}\n * @apioption series.flowmap.data.weight\n */\n/**\n * Specify the `lineWidth` of the link.\n *\n * @type {number}\n * @apioption series.flowmap.data.lineWidth\n */\n''; // Adds doclets above to transpiled file\n\n;// ./code/es5/es-modules/masters/modules/flowmap.src.js\n\n\n\n\n/* harmony default export */ var flowmap_src = ((highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default()));\n\n__webpack_exports__ = __webpack_exports__[\"default\"];\n/******/ \treturn __webpack_exports__;\n/******/ })()\n;\n});"],"names":["root","factory","exports","module","require","define","amd","__WEBPACK_EXTERNAL_MODULE__944__","__WEBPACK_EXTERNAL_MODULE__512__","extendStatics","__webpack_modules__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","n","getter","__esModule","d","a","definition","key","o","Object","defineProperty","enumerable","get","obj","prop","prototype","hasOwnProperty","call","__webpack_exports__","flowmap_src","highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_","highcharts_commonjs_highcharts_commonjs2_highcharts_root_Highcharts_default","highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_","highcharts_SeriesRegistry_commonjs_highcharts_SeriesRegistry_commonjs2_highcharts_SeriesRegistry_root_Highcharts_SeriesRegistry_default","__extends","b","setPrototypeOf","__proto__","Array","p","__","constructor","create","MapLinePoint","seriesTypes","mapline","pointClass","pick","isString","isNumber","FlowMapPoint","_super","apply","arguments","isValid","valid","options","to","from","forEach","toOrFrom","lat","lon","FlowMapSeries_extends","TypeError","String","__spreadArray","pack","length","ar","i","l","slice","concat","Point","series","_a","ColumnSeries","column","MapSeries","map","MapLineSeries","addEvent","arrayMax","arrayMin","defined","extend","isArray","merge","FlowMapSeries_pick","relativeLength","FlowMapSeries","getLength","x","y","Math","sqrt","normalize","markerEndPath","lCorner","rCorner","topCorner","width","type","markerType","edgeX","edgeY","path","push","xLeft","yLeft","xRight","yRight","xTop","yTop","xMid","yMid","animate","init","points","point","shapeArgs","start","j","graphic","attr","getLinkWidth","weight","smallestWeight","greatestWeight","minWidthLimit","minWidth","maxWidthLimit","maxWidth","autoCurve","fromX","fromY","toX","toY","centerX","centerY","linkV","half","centerV","dot","angle","atan2","angleDeg","PI","sin","pointAttribs","state","attrs","fill","fillColor","color","fillOpacity","lineWidth","opacity","translate","_this","chart","hasRendered","isDirtyData","processData","generatePoints","weights","averageX","averageY","fromPos","toPos","mapView","dirtySeries","isDirty","getPointXY","pointId","foundPoint","plotX","plotY","getLonLatXY","lonLat","lonLatToPixels","centerOfPoints","shapeType","getPointShapeArgs","finalWidth","pointOptions","markerEndOptions","markerEnd","growTowards","curveFactor","offset","enabled","height","dX_1","dY_1","mX_1","mY_1","tmp_1","arcPointX_1","arcPointY_1","_b","offsetX","offsetY","dX","dY","mX","mY","tmp","_c","wX","wY","fineTune","arcPointX","arcPointY","_d","fromXToArc","fromYToArc","_e","toXToArc","toYToArc","marker","splice","fromPoint","toPoint","fromLat","fromLon","toLat","toLon","defaultOptions","animation","dataLabels","tooltip","headerFormat","pointFormat","pointArrayMap","drawPoints","dataColumnKeys","useMapGeometry","registerSeriesType"],"mappings":"CASA,AATA;;;;;;;;CAQC,EACA,SAA0CA,CAAI,CAAEC,CAAO,EACpD,AAAmB,UAAnB,OAAOC,SAAwB,AAAkB,UAAlB,OAAOC,OACxCA,OAAOD,OAAO,CAAGD,EAAQG,QAAQ,cAAeA,QAAQ,cAAc,cAAiB,EAChF,AAAkB,YAAlB,OAAOC,QAAyBA,OAAOC,GAAG,CACjDD,OAAO,6BAA8B,CAAC,CAAC,wBAAwB,CAAE,CAAC,wBAAwB,iBAAiB,CAAC,CAAEJ,GACvG,AAAmB,UAAnB,OAAOC,QACdA,OAAO,CAAC,6BAA6B,CAAGD,EAAQG,QAAQ,cAAeA,QAAQ,cAAc,cAAiB,EAE9GJ,EAAK,UAAa,CAAGC,EAAQD,EAAK,UAAa,CAAEA,EAAK,UAAa,CAAC,cAAiB,CACvF,EAAG,IAAI,CAAE,SAASO,CAAgC,CAAEC,CAAgC,EACpF,OAAgB,AAAC,WACP,aACA,IAkGFC,EAoEAA,EAtKMC,EAAuB,CAE/B,IACC,SAASP,CAAM,EAEtBA,EAAOD,OAAO,CAAGM,CAEX,EAEA,IACC,SAASL,CAAM,EAEtBA,EAAOD,OAAO,CAAGK,CAEX,CAEI,EAGII,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,CAAQ,EAEpC,IAAIC,EAAeH,CAAwB,CAACE,EAAS,CACrD,GAAIC,AAAiBC,KAAAA,IAAjBD,EACH,OAAOA,EAAaZ,OAAO,CAG5B,IAAIC,EAASQ,CAAwB,CAACE,EAAS,CAAG,CAGjDX,QAAS,CAAC,CACX,EAMA,OAHAQ,CAAmB,CAACG,EAAS,CAACV,EAAQA,EAAOD,OAAO,CAAEU,GAG/CT,EAAOD,OAAO,AACtB,CAMCU,EAAoBI,CAAC,CAAG,SAASb,CAAM,EACtC,IAAIc,EAASd,GAAUA,EAAOe,UAAU,CACvC,WAAa,OAAOf,EAAO,OAAU,AAAE,EACvC,WAAa,OAAOA,CAAQ,EAE7B,OADAS,EAAoBO,CAAC,CAACF,EAAQ,CAAEG,EAAGH,CAAO,GACnCA,CACR,EAMAL,EAAoBO,CAAC,CAAG,SAASjB,CAAO,CAAEmB,CAAU,EACnD,IAAI,IAAIC,KAAOD,EACXT,EAAoBW,CAAC,CAACF,EAAYC,IAAQ,CAACV,EAAoBW,CAAC,CAACrB,EAASoB,IAC5EE,OAAOC,cAAc,CAACvB,EAASoB,EAAK,CAAEI,WAAY,CAAA,EAAMC,IAAKN,CAAU,CAACC,EAAI,AAAC,EAGhF,EAKAV,EAAoBW,CAAC,CAAG,SAASK,CAAG,CAAEC,CAAI,EAAI,OAAOL,OAAOM,SAAS,CAACC,cAAc,CAACC,IAAI,CAACJ,EAAKC,EAAO,EAIjH,IAAII,EAAsB,CAAC,EAG3BrB,EAAoBO,CAAC,CAACc,EAAqB,CACzC,QAAW,WAAa,OAAqBC,CAAa,CAC5D,GAGA,IAAIC,EAAuEvB,EAAoB,KAC3FwB,EAA2FxB,EAAoBI,CAAC,CAACmB,GAEjHE,EAAmIzB,EAAoB,KACvJ0B,EAAuJ1B,EAAoBI,CAAC,CAACqB,GAY7KE,GACI9B,EAAgB,SAAUU,CAAC,CAC3BqB,CAAC,EAMD,MAAO/B,AALHA,CAAAA,EAAgBe,OAAOiB,cAAc,EAChC,CAAA,CAAEC,UAAW,EAAE,AAAC,CAAA,YAAaC,OAAS,SAAUxB,CAAC,CAC1DqB,CAAC,EAAIrB,EAAEuB,SAAS,CAAGF,CAAG,GACd,SAAUrB,CAAC,CACnBqB,CAAC,EAAI,IAAK,IAAII,KAAKJ,EAAOA,EAAET,cAAc,CAACa,IAAIzB,CAAAA,CAAC,CAACyB,EAAE,CAAGJ,CAAC,CAACI,EAAE,AAAD,CAAG,CAAA,EACvCzB,EAAGqB,EAC5B,EACO,SAAUrB,CAAC,CAAEqB,CAAC,EAEjB,SAASK,IAAO,IAAI,CAACC,WAAW,CAAG3B,CAAG,CADtCV,EAAcU,EAAGqB,GAEjBrB,EAAEW,SAAS,CAAGU,AAAM,OAANA,EAAahB,OAAOuB,MAAM,CAACP,GAAMK,CAAAA,EAAGf,SAAS,CAAGU,EAAEV,SAAS,CAAE,IAAIe,CAAG,CACtF,GAGAG,EAAe,AAACV,IAA2IW,WAAW,CAACC,OAAO,CAACpB,SAAS,CAACqB,UAAU,CAEnMC,EAAO,AAAChB,IAA+EgB,IAAI,CAAEC,EAAW,AAACjB,IAA+EiB,QAAQ,CAAEC,EAAW,AAAClB,IAA+EkB,QAAQ,CAMrSC,EAA8B,SAAUC,CAAM,EAE9C,SAASD,IACL,OAAOC,AAAW,OAAXA,GAAmBA,EAAOC,KAAK,CAAC,IAAI,CAAEC,YAAc,IAAI,AACnE,CAmBA,OAtBAnB,EAAUgB,EAAcC,GAYxBD,EAAazB,SAAS,CAAC6B,OAAO,CAAG,WAC7B,IAAIC,EAAQ,CAAC,CAAE,CAAA,IAAI,CAACC,OAAO,CAACC,EAAE,EAAI,IAAI,CAACD,OAAO,CAACE,IAAI,AAAD,EAOlD,MANA,CAAC,IAAI,CAACF,OAAO,CAACC,EAAE,CAAE,IAAI,CAACD,OAAO,CAACE,IAAI,CAAC,CAC/BC,OAAO,CAAC,SAAUC,CAAQ,EAC3BL,EAAQ,CAAC,CAAEA,CAAAA,GAAUK,GAAaZ,CAAAA,EAASY,IAC3CX,EAASF,EAAKa,CAAQ,CAAC,EAAE,CAAEA,EAASC,GAAG,IACnCZ,EAASF,EAAKa,CAAQ,CAAC,EAAE,CAAEA,EAASE,GAAG,EAAE,CAAE,CACnD,GACOP,CACX,EACOL,CACX,EAAEP,GAmBEoB,GACI3D,EAAgB,SAAUU,CAAC,CAC3BqB,CAAC,EAOD,MAAO/B,AANHA,CAAAA,EAAgBe,OAAOiB,cAAc,EAChC,CAAA,CAAEC,UAAW,EAAE,AAAC,CAAA,YAAaC,OAAS,SAAUxB,CAAC,CAC1DqB,CAAC,EAAIrB,EAAEuB,SAAS,CAAGF,CAAG,GACd,SAAUrB,CAAC,CACnBqB,CAAC,EAAI,IAAK,IAAII,KAAKJ,EAAOhB,OAAOM,SAAS,CAACC,cAAc,CAACC,IAAI,CAACQ,EAC/DI,IAAIzB,CAAAA,CAAC,CAACyB,EAAE,CAAGJ,CAAC,CAACI,EAAE,AAAD,CAAG,CAAA,EACIzB,EAAGqB,EAC5B,EACO,SAAUrB,CAAC,CAAEqB,CAAC,EACjB,GAAI,AAAa,YAAb,OAAOA,GAAoBA,AAAM,OAANA,EAC3B,MAAM,AAAI6B,UAAU,uBAAyBC,OAAO9B,GAAK,iCAE7D,SAASK,IAAO,IAAI,CAACC,WAAW,CAAG3B,CAAG,CADtCV,EAAcU,EAAGqB,GAEjBrB,EAAEW,SAAS,CAAGU,AAAM,OAANA,EAAahB,OAAOuB,MAAM,CAACP,GAAMK,CAAAA,EAAGf,SAAS,CAAGU,EAAEV,SAAS,CAAE,IAAIe,CAAG,CACtF,GAEA0B,EAA0D,SAAUT,CAAE,CAAEC,CAAI,CAAES,CAAI,EAClF,GAAIA,GAAQd,AAAqB,GAArBA,UAAUe,MAAM,CAAQ,IAAK,IAA4BC,EAAxBC,EAAI,EAAGC,EAAIb,EAAKU,MAAM,CAAME,EAAIC,EAAGD,KACxED,GAAQC,KAAKZ,IACRW,GAAIA,CAAAA,EAAK/B,MAAMb,SAAS,CAAC+C,KAAK,CAAC7C,IAAI,CAAC+B,EAAM,EAAGY,EAAC,EACnDD,CAAE,CAACC,EAAE,CAAGZ,CAAI,CAACY,EAAE,EAGvB,OAAOb,EAAGgB,MAAM,CAACJ,GAAM/B,MAAMb,SAAS,CAAC+C,KAAK,CAAC7C,IAAI,CAAC+B,GACtD,EAGIgB,EAAQ,AAACzC,IAA2I0C,MAAM,CAAClD,SAAS,CAACqB,UAAU,CAAE8B,EAAK,AAAC3C,IAA2IW,WAAW,CAAEiC,EAAeD,EAAGE,MAAM,CAAEC,EAAYH,EAAGI,GAAG,CAAEC,EAAgBL,EAAG/B,OAAO,CAEvZqC,EAAW,AAACnD,IAA+EmD,QAAQ,CAAEC,EAAW,AAACpD,IAA+EoD,QAAQ,CAAEC,EAAW,AAACrD,IAA+EqD,QAAQ,CAAEC,EAAU,AAACtD,IAA+EsD,OAAO,CAAEC,EAAS,AAACvD,IAA+EuD,MAAM,CAAEC,EAAU,AAACxD,IAA+EwD,OAAO,CAAEC,EAAQ,AAACzD,IAA+EyD,KAAK,CAAEC,EAAqB,AAAC1D,IAA+EgB,IAAI,CAAE2C,EAAiB,AAAC3D,IAA+E2D,cAAc,CAU/4BC,EAA+B,SAAUxC,CAAM,EAE/C,SAASwC,IACL,OAAOxC,AAAW,OAAXA,GAAmBA,EAAOC,KAAK,CAAC,IAAI,CAAEC,YAAc,IAAI,AACnE,CAqmBA,OAxmBAU,EAAsB4B,EAAexC,GAarCwC,EAAcC,SAAS,CAAG,SAAUC,CAAC,CAAEC,CAAC,EACpC,OAAOC,KAAKC,IAAI,CAACH,EAAIA,EAAIC,EAAIA,EACjC,EAKAH,EAAcM,SAAS,CAAG,SAAUJ,CAAC,CAAEC,CAAC,EACpC,IAAI1B,EAAS,IAAI,CAACwB,SAAS,CAACC,EACxBC,GACJ,MAAO,CAACD,EAAIzB,EAAQ0B,EAAI1B,EAAO,AACnC,EAKAuB,EAAcO,aAAa,CAAG,SAAUC,CAAO,CAAEC,CAAO,CAAEC,CAAS,CAAE7C,CAAO,EACxE,IAAI8C,EAAQZ,EAAelC,EAAQ8C,KAAK,EAAI,EACxC,IAAI,CAACV,SAAS,CAACQ,CAAO,CAAC,EAAE,CAAGD,CAAO,CAAC,EAAE,CACtCC,CAAO,CAAC,EAAE,CAAGD,CAAO,CAAC,EAAE,GACvBI,EAAO/C,EAAQgD,UAAU,EAAI,QAC7B5B,EAAK,IAAI,CAACqB,SAAS,CAACG,CAAO,CAAC,EAAE,CAAGD,CAAO,CAAC,EAAE,CAC3CC,CAAO,CAAC,EAAE,CAAGD,CAAO,CAAC,EAAE,EACvBM,EAAQ7B,CAAE,CAAC,EAAE,CACb8B,EAAQ9B,CAAE,CAAC,EAAE,CACb+B,EAAO,EAAE,CAEb,GAAIJ,AAAS,UAATA,EAAkB,CAElB,IAAIV,EAAIM,CAAO,CAAC,EAAE,CACdL,EAAIK,CAAO,CAAC,EAAE,CAClBN,GAAKY,EAAQH,EACbR,GAAKY,EAAQJ,EACbK,EAAKC,IAAI,CAAC,CAAC,IAAKf,EAAGC,EAAE,EAErBa,EAAKC,IAAI,CAAC,CAAC,IAAKP,CAAS,CAAC,EAAE,CAAEA,CAAS,CAAC,EAAE,CAAC,EAE3CR,EAAIO,CAAO,CAAC,EAAE,CAAEN,EAAIM,CAAO,CAAC,EAAE,CAC9BP,GAAKY,EAAQH,EACbR,GAAKY,EAAQJ,EACbK,EAAKC,IAAI,CAAC,CAAC,IAAKf,EAAGC,EAAE,CACzB,CAEA,GAAIS,AAAS,aAATA,EAAqB,CACrB,IAAIM,EAAQV,CAAO,CAAC,EAAE,CAClBW,EAAQX,CAAO,CAAC,EAAE,CAClBY,EAASX,CAAO,CAAC,EAAE,CACnBY,EAASZ,CAAO,CAAC,EAAE,CACnBa,EAAOZ,CAAS,CAAC,EAAE,CAAEa,EAAOb,CAAS,CAAC,EAAE,CAAEc,EAAO,AAACJ,CAAAA,EAASF,CAAI,EAAK,EAAIA,EAAOO,EAAO,AAACJ,CAAAA,EAASF,CAAI,EAAK,EAAIA,EAIjHD,GAASJ,EAAQH,EACjBQ,GAASJ,EAAQJ,EACjBK,EAAKC,IAAI,CAAC,CAAC,IAAKC,EAAOC,EAAM,EAE7BC,GAAUN,EAAQH,EAClBU,GAAUN,EAAQJ,EAElBK,EAAKC,IAAI,CAAC,CAAC,IATI,AAACK,CAAAA,EAAOE,CAAG,EAAK,EAAIA,EAAiB,AAACD,CAAAA,EAAOE,CAAG,EAAK,EAAIA,EASpCL,EAAQC,EAAO,CACvD,CACA,OAAOL,CACX,EAeAhB,EAAclE,SAAS,CAAC4F,OAAO,CAAG,SAAUC,CAAI,EAC5C,IACIC,EAAS5C,AADA,IAAI,CACG4C,MAAM,CACrBD,GACDC,EAAO5D,OAAO,CAAC,SAAU6D,CAAK,EAC1B,GAAIA,EAAMC,SAAS,EACflC,EAAQiC,EAAMC,SAAS,CAAC3G,CAAC,GACzB0G,EAAMC,SAAS,CAAC3G,CAAC,CAACsD,MAAM,CAAE,CAC1B,IAAIuC,EAAOa,EAAMC,SAAS,CAAC3G,CAAC,CACxB+E,EAAIc,CAAI,CAAC,EAAE,CAAC,EAAE,CACdb,EAAIa,CAAI,CAAC,EAAE,CAAC,EAAE,CAIlB,GAAId,GAAKC,EAAG,CAER,IAAK,IADD4B,EAAQ,EAAE,CACLpD,EAAI,EAAGA,EAAIqC,EAAKvC,MAAM,CAAEE,IAAK,CAKlCoD,EAAMd,IAAI,CAAC1C,EAAc,EAAE,CAAEyC,CAAI,CAACrC,EAAE,CAAE,CAAA,IACtC,IAAK,IAAIqD,EAAI,EAAGA,EAAIhB,CAAI,CAACrC,EAAE,CAACF,MAAM,CAAEuD,IAChCD,CAAK,CAACpD,EAAE,CAACqD,EAAE,CAAGA,EAAI,EAAI9B,EAAIC,CAElC,CACI0B,EAAMI,OAAO,GACbJ,EAAMI,OAAO,CAACC,IAAI,CAAC,CAAE/G,EAAG4G,CAAM,GAC9BF,EAAMI,OAAO,CAACP,OAAO,CAAC,CAAEvG,EAAG6F,CAAK,GAExC,CACJ,CACJ,EAER,EAMAhB,EAAclE,SAAS,CAACqG,YAAY,CAAG,SAAUN,CAAK,EAClD,IAAIlB,EAAQ,IAAI,CAAC9C,OAAO,CAAC8C,KAAK,CAC1ByB,EAASP,EAAMhE,OAAO,CAACuE,MAAM,EAAI,IAAI,CAACvE,OAAO,CAACuE,MAAM,CAExD,GADAP,EAAMhE,OAAO,CAACuE,MAAM,CAAGA,EACnBzB,GAAS,CAACyB,EACV,OAAOzB,EAEX,IAAI0B,EAAiB,IAAI,CAACA,cAAc,CACpCC,EAAiB,IAAI,CAACA,cAAc,CACxC,GAAI,CAAC5C,EAAQ0C,IAAW,CAACC,GAAkB,CAACC,EACxC,OAAO,EAEX,IAAIC,EAAgB,IAAI,CAAC1E,OAAO,CAAC2E,QAAQ,CAEzC,MAAO,AAACJ,CAAAA,EAASC,CAAa,EAAMI,CAAAA,AADhB,IAAI,CAAC5E,OAAO,CAAC6E,QAAQ,CACWH,CAAY,EAC3D,CAAA,AAACD,EAAiBD,GAAmB,CAAA,EAAKE,CACnD,EAKAvC,EAAclE,SAAS,CAAC6G,SAAS,CAAG,SAAUC,CAAK,CAAEC,CAAK,CAAEC,CAAG,CAAEC,CAAG,CAAEC,CAAO,CAAEC,CAAO,EAClF,IAAIC,EAAQ,CACJhD,EAAI4C,EAAMF,EACVzC,EAAI4C,EAAMF,CACd,EACAM,EAAO,CACHjD,EAAG,AAAC4C,CAAAA,EAAMF,CAAI,EAAK,EAAIA,EACvBzC,EAAG,AAAC4C,CAAAA,EAAMF,CAAI,EAAK,EAAIA,CAC3B,EACAO,EAAU,CACNlD,EAAGiD,EAAKjD,CAAC,CAAG8C,EACZ7C,EAAGgD,EAAKhD,CAAC,CAAG8C,CAChB,EAEAI,EAAMH,EAAMhD,CAAC,CAAGkD,EAAQlD,CAAC,CAAGgD,EAAM/C,CAAC,CAAGiD,EAAQjD,CAAC,CAG/CmD,EAAQlD,KAAKmD,KAAK,CAFZL,EAAMhD,CAAC,CAAGkD,EAAQjD,CAAC,CAAG+C,EAAM/C,CAAC,CAAGiD,EAAQlD,CAAC,CAG/CmD,GACAG,EAAWF,AAAQ,IAARA,EAAclD,KAAKqD,EAAE,CAMpC,OALID,EAAW,GACXA,CAAAA,EAAW,IAAMA,CAAO,EAIrB,CAAA,CAAA,AAAmB,GAAlBpD,KAAKsD,GAAG,CAFhBJ,EAAQE,EAAWpD,KAAKqD,EAAE,CAAG,IAED,CAChC,EAKAzD,EAAclE,SAAS,CAAC6H,YAAY,CAAG,SAAU9B,CAAK,CAAE+B,CAAK,EACzD,IAAIC,EAAQzE,EAAUtD,SAAS,CAAC6H,YAAY,CAAC3H,IAAI,CAAC,IAAI,CAClD6F,EACA+B,GAOJ,OANAC,EAAMC,IAAI,CAAGhE,EAAmB+B,EAAMhE,OAAO,CAACkG,SAAS,CAAElC,EAAMhE,OAAO,CAACmG,KAAK,CAAE,AAA2B,SAA3B,IAAI,CAACnG,OAAO,CAACkG,SAAS,CAAc,KAAO,IAAI,CAAClG,OAAO,CAACkG,SAAS,CAAE,IAAI,CAACC,KAAK,EAC3JH,CAAK,CAAC,eAAe,CAAG/D,EAAmB+B,EAAMhE,OAAO,CAACoG,WAAW,CAAE,IAAI,CAACpG,OAAO,CAACoG,WAAW,EAC9FJ,CAAK,CAAC,eAAe,CAAG/D,EAAmB+B,EAAMhE,OAAO,CAACqG,SAAS,CAAE,IAAI,CAACrG,OAAO,CAACqG,SAAS,CAAE,GACxFrC,EAAMhE,OAAO,CAACsG,OAAO,EACrBN,CAAAA,EAAMM,OAAO,CAAGtC,EAAMhE,OAAO,CAACsG,OAAO,AAAD,EAEjCN,CACX,EAQA7D,EAAclE,SAAS,CAACsI,SAAS,CAAG,WAChC,IAAIC,EAAQ,IAAI,AACZ,CAAA,IAAI,CAACC,KAAK,CAACC,WAAW,EAAK,CAAA,IAAI,CAACC,WAAW,EAAI,CAAC,IAAI,CAACD,WAAW,AAAD,IAC/D,IAAI,CAACE,WAAW,GAChB,IAAI,CAACC,cAAc,IAEvB,IAAIC,EAAU,EAAE,CACZC,EAAW,EACXC,EAAW,EACf,IAAI,CAACjD,MAAM,CAAC5D,OAAO,CAAC,SAAU6D,CAAK,EAC/B,IA6BIiD,EACAC,EA9BAT,EAAQD,EAAMC,KAAK,CACnBU,EAAUV,EAAMU,OAAO,CACvBnH,EAAUgE,EAAMhE,OAAO,CACvBoH,EAAc,WACVpD,EAAM7C,MAAM,CAACkG,OAAO,CAAG,CAAA,CAC/B,EAAGC,EAAa,SAAUC,CAAO,EAC7B,IAAIC,EAAaf,EAAM3I,GAAG,CAACyJ,GAG3B,GAAI,AAACC,aAAsBtG,GACvBsG,EAAWC,KAAK,EAChBD,EAAWE,KAAK,CAIhB,OADAhG,EAAS8F,EAAY,SAAUJ,GACxB,CACH/E,EAAGmF,EAAWC,KAAK,CACnBnF,EAAGkF,EAAWE,KAAK,AACvB,CAER,EAAGC,EAAc,SAAUC,CAAM,SAC7B,AAAI7F,EAAQ6F,GACD,CACHtH,IAAKsH,CAAM,CAAC,EAAE,CACdvH,IAAKuH,CAAM,CAAC,EAAE,AAClB,EAEGA,CACX,CAGI,AAAwB,CAAA,UAAxB,OAAO5H,EAAQE,IAAI,CACnB+G,EAAUK,EAAWtH,EAAQE,IAAI,EAEJ,UAAxB,OAAOF,EAAQE,IAAI,EAAiBiH,GACzCF,CAAAA,EAAUE,EAAQU,cAAc,CAACF,EAAY3H,EAAQE,IAAI,EAAC,EAE1D,AAAsB,UAAtB,OAAOF,EAAQC,EAAE,CACjBiH,EAAQI,EAAWtH,EAAQC,EAAE,EAEF,UAAtB,OAAOD,EAAQC,EAAE,EAAiBkH,GACvCD,CAAAA,EAAQC,EAAQU,cAAc,CAACF,EAAY3H,EAAQC,EAAE,EAAC,EAG1D+D,EAAMiD,OAAO,CAAGA,EAChBjD,EAAMkD,KAAK,CAAGA,EACVD,GAAWC,IACXH,GAAY,AAACE,CAAAA,EAAQ5E,CAAC,CAAG6E,EAAM7E,CAAC,AAADA,EAAK,EACpC2E,GAAY,AAACC,CAAAA,EAAQ3E,CAAC,CAAG4E,EAAM5E,CAAC,AAADA,EAAK,GAEpCL,EAAmB+B,EAAMhE,OAAO,CAACuE,MAAM,CAAEiC,EAAMxG,OAAO,CAACuE,MAAM,GAC7DuC,EAAQ1D,IAAI,CAACnB,EAAmB+B,EAAMhE,OAAO,CAACuE,MAAM,CAAEiC,EAAMxG,OAAO,CAACuE,MAAM,EAElF,GACA,IAAI,CAACC,cAAc,CAAG5C,EAASkF,GAC/B,IAAI,CAACrC,cAAc,CAAG9C,EAASmF,GAC/B,IAAI,CAACgB,cAAc,CAAG,CAClBzF,EAAG0E,EAAW,IAAI,CAAChD,MAAM,CAACnD,MAAM,CAChC0B,EAAG0E,EAAW,IAAI,CAACjD,MAAM,CAACnD,MAAM,AACpC,EACA,IAAI,CAACmD,MAAM,CAAC5D,OAAO,CAAC,SAAU6D,CAAK,EAE/B,GAAI,CAACwC,EAAMlC,YAAY,CAACN,GAAQ,CAC5BA,EAAMC,SAAS,CAAG,CACd3G,EAAG,EAAE,AACT,EACA,MACJ,CACI0G,EAAMiD,OAAO,GACbjD,EAAMyD,KAAK,CAAGzD,EAAMiD,OAAO,CAAC5E,CAAC,CAC7B2B,EAAM0D,KAAK,CAAG1D,EAAMiD,OAAO,CAAC3E,CAAC,EAGjC0B,EAAM+D,SAAS,CAAG,OAClB/D,EAAMC,SAAS,CAAGuC,EAAMwB,iBAAiB,CAAChE,GAG1CA,EAAMmC,KAAK,CAAGlE,EAAmB+B,EAAMhE,OAAO,CAACmG,KAAK,CAAEnC,EAAM7C,MAAM,CAACgF,KAAK,CAC5E,EACJ,EACAhE,EAAclE,SAAS,CAAC+J,iBAAiB,CAAG,SAAUhE,CAAK,EAEvD,IADI5C,EACA6F,EAAUjD,EAAMiD,OAAO,CACvBC,EAAQlD,EAAMkD,KAAK,CACvB,GAAI,CAACD,GAAW,CAACC,EACb,MAAO,CAAC,EAEZ,IAAIe,EAAa,IAAI,CAAC3D,YAAY,CAACN,GAAS,EACxCkE,EAAelE,EAAMhE,OAAO,CAC5BmI,EAAmBnG,EAAM,IAAI,CAAChC,OAAO,CAACoI,SAAS,CAC/CF,EAAaE,SAAS,EACtBC,EAAcpG,EAAmBiG,EAAaG,WAAW,CACzD,IAAI,CAACrI,OAAO,CAACqI,WAAW,EACxBtD,EAAQkC,EAAQ5E,CAAC,EAAI,EACrB2C,EAAQiC,EAAQ3E,CAAC,EAAI,EACrB2C,EAAMiC,EAAM7E,CAAC,EAAI,EACjB6C,EAAMgC,EAAM5E,CAAC,EAAI,EACjBgG,EAAcrG,EAAmBiG,EAAaI,WAAW,CACzD,IAAI,CAACtI,OAAO,CAACsI,WAAW,EACxBC,EAASJ,GAAoBA,EAAiBK,OAAO,EACjDL,EAAiBM,MAAM,EAAI,EAKnC,GAJK5G,EAAQyG,IACTA,CAAAA,EAAc,IAAI,CAACxD,SAAS,CAACC,EAAOC,EAAOC,EAAKC,EAAK,IAAI,CAAC4C,cAAc,CAACzF,CAAC,CAAE,IAAI,CAACyF,cAAc,CAACxF,CAAC,CAAA,EAGjGiG,EAAQ,CAERA,EAASrG,EAAeqG,EAAQN,AAAa,EAAbA,GAEhC,IAAIS,EAAOzD,EAAMF,EACb4D,EAAOzD,EAAMF,EAKb4D,EAAO7D,EAHX2D,CAAAA,GAAQ,EAAE,EAING,EAAO7D,EAHX2D,CAAAA,GAAQ,EAAE,EAMNG,EAAQJ,EAIRK,EAAeH,EAAOF,AAH1BA,CAAAA,EAAOC,CAAG,EAGuBL,EAC7BU,EAAeH,EAAOF,AAH1BA,CAAAA,EAAO,CAACG,CAAI,EAGqBR,EAC7BW,EAAK9G,EAAcM,SAAS,CAACsG,EAAc9D,EAC3C+D,EAAc9D,GACdgE,EAAUD,CAAE,CAAC,EAAE,CACfE,EAAUF,CAAE,CAAC,EAAE,CACnBC,GAAWX,EACXY,GAAWZ,EACXtD,GAAOiE,EACPhE,GAAOiE,CACX,CAEA,IAAIC,EAAKnE,EAAMF,EACXsE,EAAKnE,EAAMF,EAKXsE,EAAKvE,EAHTqE,CAAAA,GAAM,EAAE,EAIJG,EAAKvE,EAHTqE,CAAAA,GAAM,EAAE,EAMJG,EAAMJ,EACVA,EAAKC,EACLA,EAAK,CAACG,EAEN,IAAIC,EAAKtH,EAAcM,SAAS,CAAC2G,EAC7BC,GACAK,EAAKD,CAAE,CAAC,EAAE,CACVE,EAAKF,CAAE,CAAC,EAAE,CAEVG,EAAW,EAAIrH,AAAuC,IAAvCA,KAAKC,IAAI,CAAC8F,EAAcA,GAC3CoB,GAAMzB,EAAa2B,EACnBD,GAAM1B,EAAa2B,EAEnB,IAAIC,EAAaP,EAAKF,EAAKd,EACvBwB,EAAaP,EAAKF,EAAKf,EAEvByB,EAAK5H,EAAcM,SAAS,CAACoH,EAAY9E,EACzC+E,EAAY9E,GACZgF,EAAaD,CAAE,CAAC,EAAE,CAClBE,EAAaF,CAAE,CAAC,EAAE,CACtBP,EAAMQ,EACNA,EAAaC,EACbA,EAAa,CAACT,EACdQ,GAAc/B,EACdgC,GAAchC,EAEd,IAAIiC,EAAK/H,EAAcM,SAAS,CAACoH,EAAY5E,EACzC6E,EAAY5E,GACZiF,EAAWD,CAAE,CAAC,EAAE,CAChBE,EAAWF,CAAE,CAAC,EAAE,CACpBV,EAAMW,EACNA,EAAW,CAACC,EACZA,EAAWZ,EACXW,GAAYlC,EACZmC,GAAYnC,EAGRI,IACA2B,GAAc/B,EACdgC,GAAchC,EACdyB,GAAM,EACNC,GAAM,GAEV,IAAI1F,EAAY,CACR3G,EAAG,CAAC,CACI,IACAyH,EAAQiF,EACRhF,EAAQiF,EACX,CACT,CACY,IACAJ,EAAYH,EACZI,EAAYH,EACZ1E,EAAMkF,EACNjF,EAAMkF,EACT,CACT,CACY,IACAnF,EAAMkF,EACNjF,EAAMkF,EACT,CACT,CACY,IACAP,EAAYH,EACZI,EAAYH,EACZ5E,EAAQiF,EACRhF,EAAQiF,EACX,CACT,CACY,IACH,CAAC,AACV,EACJ,GAAI9B,GAAoBA,EAAiBK,OAAO,EAAIvE,EAAU3G,CAAC,CAAE,CAC7D,IAAI+M,EAASlI,EAAcO,aAAa,CAAC,CAACuC,EAAMkF,EAC5CjF,EAAMkF,EAAS,CACf,CAACnF,EAAMkF,EACPjF,EAAMkF,EAAS,CACf,CAAClD,EAAM7E,CAAC,CACR6E,EAAM5E,CAAC,CAAC,CACR6F,GACJ,AAAC/G,CAAAA,EAAK6C,EAAU3G,CAAC,AAADA,EAAGgN,MAAM,CAAC1K,KAAK,CAACwB,EAAIV,EAAc,CAAC,EAAG,EAAE,CAAE2J,EAAQ,CAAA,GACtE,CAEA,IAAIE,EAAYvG,EAAMhE,OAAO,CAACE,IAAI,CAC9BsK,EAAUxG,EAAMhE,OAAO,CAACC,EAAE,CAC1BwK,EAAUF,EAAUlK,GAAG,CACvBqK,EAAUH,EAAUjK,GAAG,CACvBqK,EAAQH,EAAQnK,GAAG,CACnBuK,GAAQJ,EAAQlK,GAAG,CAOvB,OANImK,GAAWC,GACX1G,CAAAA,EAAMhE,OAAO,CAACE,IAAI,CAAG,IAAM,CAACuK,EAAW,KAAKxJ,MAAM,CAAC,CAACyJ,EAAO,EAE3DC,GAASC,IACT5G,CAAAA,EAAMhE,OAAO,CAACC,EAAE,CAAG,IAAM,CAAC0K,EAAS,KAAK1J,MAAM,CAAC,CAAC2J,GAAK,EAElD3G,CACX,EAoBA9B,EAAc0I,cAAc,CAAG7I,EAAMP,EAAcoJ,cAAc,CAAE,CAC/DC,UAAW,CAAA,EAcXC,WAAY,CACRvC,QAAS,CAAA,CACb,EAgBApC,YAAa,GAmBbgC,UAAW,CAQPI,QAAS,CAAA,EAOTC,OAAQ,MAOR3F,MAAO,MAOPE,WAAY,OAChB,EAQAF,MAAO,EAOP+B,SAAU,GAOVF,SAAU,EAMV0B,UAAW,KAAK,EAmBhB2E,QAAS,CAWLC,aAAc,2DACdC,YAAa,0EACjB,CACJ,GACO/I,CACX,EAAEV,GACFK,EAAOK,EAAclE,SAAS,CAAE,CAC5BqB,WAnqBqDI,EAoqBrDyL,cAAe,CAAC,OAAQ,KAAM,SAAS,CACvCC,WAAY/J,EAAapD,SAAS,CAACmN,UAAU,CAC7CC,eAAgBhK,EAAapD,SAAS,CAACoN,cAAc,CAErDC,eAAgB,CAAA,CACpB,GACA7M,IAA0I8M,kBAAkB,CAAC,UAAWpJ,GA+L3I,IAAI9D,EAAgBE,IAGvC,OADYH,EAAoB,OAAU,AAE3C,GAET"}
Hacked By AnonymousFox1.0, Coded By AnonymousFox