{"version":3,"file":"utils.mjs","sources":["../../../../../../packages/components/chart/src/utils.ts"],"sourcesContent":["import type { ChartOptions, ChartType, ScriptableContext } from 'chart.js'\n\nconst colors = [\n  '#A268FF',\n  '#FF7777',\n  '#FFCC68',\n  '#00C2EE',\n  '#679BFF',\n  '#00EE98',\n  '#BAC3CF',\n  '#505D6F',\n]\n\nconst oColors = [\n  'rgba(162, 104, 255, 0.1)',\n  'rgba(255, 119, 119, 0.1)',\n  'rgba(255, 204, 104, 0.1)',\n  'rgba(0, 194, 238, 0.1)',\n  'rgba(103, 155, 255, 0.1)',\n  'rgba(0, 238, 152, 0.1)',\n  'rgba(186, 195, 207, 0.1)',\n  'rgba(80, 93, 111, 0.1)',\n]\n\nconst oColors2 = [\n  'rgba(162, 104, 255, 0.2)',\n  'rgba(255, 119, 119, 0.2)',\n  'rgba(255, 204, 104, 0.2)',\n  'rgba(0, 194, 238, 0.2)',\n  'rgba(103, 155, 255, 0.2)',\n  'rgba(0, 238, 152, 0.2)',\n  'rgba(186, 195, 207, 0.2)',\n  'rgba(80, 93, 111, 0.2)',\n]\n\nconst oColors7 = [\n  'rgba(162, 104, 255, 0.7)',\n  'rgba(255, 119, 119, 0.7)',\n  'rgba(255, 204, 104, 0.7)',\n  'rgba(0, 194, 238, 0.7)',\n  'rgba(103, 155, 255, 0.7)',\n  'rgba(0, 238, 152, 0.7)',\n  'rgba(186, 195, 207, 0.7)',\n  'rgba(80, 93, 111, 0.7)',\n]\n\nconst gradients = [\n  [\n    { offset: 0, color: '#FFC371' },\n    { offset: 1, color: '#FF5F6D' },\n  ],\n  [\n    { offset: 0.7858, color: '#FF8A1E' },\n    { offset: 0.1544, color: '#FBDA61' },\n  ],\n  [\n    { offset: 0.8351, color: '#68C121' },\n    { offset: 0.1649, color: '#FFD705' },\n  ],\n  [\n    { offset: 0.1649, color: '#A1FF8B' },\n    { offset: 0.8351, color: '#3F93FF' },\n  ],\n  [\n    { offset: 0.141, color: '#10D7E2' },\n    { offset: 0.859, color: '#9358F7' },\n  ],\n  [\n    { offset: 0.1649, color: '#7570FF' },\n    { offset: 0.8351, color: '#CF36AD' },\n  ],\n  [\n    { offset: 0.1649, color: '#FF56DA' },\n    { offset: 0.8351, color: '#FF1B1B' },\n  ],\n  [\n    { offset: 0, color: '#FF5959' },\n    { offset: 1, color: '#FF7A00' },\n  ],\n]\n\nexport const flatColors = (ctx: ScriptableContext<ChartType>) => {\n  return colors[ctx.datasetIndex % colors.length]\n}\n\nexport const opaqueColors = (ctx: ScriptableContext<ChartType>) => {\n  return oColors[ctx.datasetIndex % colors.length]\n}\n\nexport const opaqueColors2 = (ctx: ScriptableContext<ChartType>) => {\n  return oColors2[ctx.datasetIndex % colors.length]\n}\n\nexport const opaqueColors7 = (ctx: ScriptableContext<ChartType>) => {\n  return oColors7[ctx.datasetIndex % colors.length]\n}\n\nexport const getFlatColor = (idx: number) => colors[idx % colors.length]\n\nexport const getGradientColor = (\n  context: { chart: { ctx: any; chartArea: any } },\n  idx: number\n) => {\n  let gradient: { addColorStop: (arg0: number, arg1: string) => void } | null =\n    null\n  const { chart } = context\n  const { ctx, chartArea } = chart\n\n  if (!chartArea) {\n    // This case happens on initial chart load\n    return\n  }\n\n  if (!gradient) {\n    gradient = ctx.createLinearGradient(0, 0, 0, chartArea.height)\n    gradients[idx % gradients.length].forEach((stop) => {\n      gradient!.addColorStop(stop.offset, stop.color)\n    })\n  }\n\n  return gradient\n}\n\nexport const getOpaqueGradientColor = (\n  context: ScriptableContext<ChartType>,\n  idx: number,\n  endColor: string | undefined = undefined\n) => {\n  let gradient\n  const { chart } = context\n  const { ctx, chartArea } = chart\n\n  if (!chartArea) {\n    // This case happens on initial chart load\n    return\n  }\n\n  if (!gradient) {\n    gradient = ctx.createLinearGradient(0, 0, 0, chartArea.height)\n    gradient.addColorStop(0, colors[idx % colors.length])\n    gradient.addColorStop(1, endColor || oColors[idx % colors.length])\n  }\n\n  return gradient\n}\n\nfunction getRadialGradientColor(\n  context: ScriptableContext<ChartType>,\n  idx = 0\n) {\n  const chartArea = context.chart.chartArea\n  let width, height\n  const cache = new Map()\n\n  if (!chartArea) {\n    // This case happens on initial chart load\n    return\n  }\n\n  const chartWidth = chartArea.right - chartArea.left\n  const chartHeight = chartArea.bottom - chartArea.top\n  if (width !== chartWidth || height !== chartHeight) {\n    cache.clear()\n  }\n  let gradient = cache.get(idx)\n  if (!gradient) {\n    // Create the gradient because this is either the first render\n    // or the size of the chart has changed\n    width = chartWidth\n    height = chartHeight\n    const centerX = (chartArea.left + chartArea.right) / 2\n    const centerY = (chartArea.top + chartArea.bottom) / 2\n    const r = Math.min(\n      (chartArea.right - chartArea.left) / 2,\n      (chartArea.bottom - chartArea.top) / 2\n    )\n    const ctx = context.chart.ctx\n    gradient = ctx.createRadialGradient(\n      centerX,\n      centerY,\n      0,\n      centerX,\n      centerY,\n      r\n    )\n    gradients[idx % gradients.length].forEach((stop) => {\n      gradient.addColorStop(stop.offset, stop.color)\n    })\n\n    cache.set(idx, gradient)\n  }\n\n  return gradient\n}\n\nfunction getOpaqueRadialGradientColor(\n  context: ScriptableContext<ChartType>,\n  idx = 0,\n  endColor: string | undefined = undefined\n) {\n  const chartArea = context.chart.chartArea\n  let width, height\n  const cache = new Map()\n\n  if (!chartArea) {\n    // This case happens on initial chart load\n    return\n  }\n\n  const chartWidth = chartArea.right - chartArea.left\n  const chartHeight = chartArea.bottom - chartArea.top\n  if (width !== chartWidth || height !== chartHeight) {\n    cache.clear()\n  }\n  let gradient = cache.get(idx)\n  if (!gradient) {\n    // Create the gradient because this is either the first render\n    // or the size of the chart has changed\n    width = chartWidth\n    height = chartHeight\n    const centerX = (chartArea.left + chartArea.right) / 2\n    const centerY = (chartArea.top + chartArea.bottom) / 2\n    const r = Math.min(\n      (chartArea.right - chartArea.left) / 2,\n      (chartArea.bottom - chartArea.top) / 2\n    )\n    const ctx = context.chart.ctx\n    gradient = ctx.createRadialGradient(\n      centerX,\n      centerY,\n      0,\n      centerX,\n      centerY,\n      r\n    )\n\n    gradient.addColorStop(0, endColor || oColors[idx % colors.length])\n    gradient.addColorStop(1, oColors2[idx % colors.length])\n\n    cache.set(idx, gradient)\n  }\n\n  return gradient\n}\n\nexport const gradientColors = (ctx: ScriptableContext<ChartType>) => {\n  return getGradientColor(ctx, ctx.datasetIndex)\n}\n\nexport const radialGradientColors = (ctx: ScriptableContext<ChartType>) => {\n  return getRadialGradientColor(ctx, ctx.dataIndex)\n}\n\nexport const opaqueGradientColors = (ctx: ScriptableContext<ChartType>) => {\n  return getOpaqueGradientColor(ctx, ctx.datasetIndex)\n}\n\nexport const opaqueDarkGradientColors = (ctx: ScriptableContext<ChartType>) => {\n  return getOpaqueGradientColor(ctx, ctx.datasetIndex, 'rgba(0,0,0,0)')\n}\n\nexport const opaqueLightGradientColors = (\n  ctx: ScriptableContext<ChartType>\n) => {\n  return getOpaqueGradientColor(ctx, ctx.datasetIndex, 'rgba(255,255,255,0)')\n}\n\nexport const opaqueRadialGradientColors = (\n  ctx: ScriptableContext<ChartType>\n) => {\n  return getOpaqueRadialGradientColor(ctx, ctx.datasetIndex)\n}\n\nexport const opaqueDarkRadialGradientColors = (\n  ctx: ScriptableContext<ChartType>\n) => {\n  return getOpaqueRadialGradientColor(ctx, ctx.datasetIndex, 'rgba(0,0,0,0)')\n}\n\nexport const opaqueLightRadialGradientColors = (\n  ctx: ScriptableContext<ChartType>\n) => {\n  return getOpaqueRadialGradientColor(\n    ctx,\n    ctx.datasetIndex,\n    'rgba(255,255,255,0)'\n  )\n}\n\nexport const getChartDefaultOptions = (\n  type:\n    | 'bar'\n    | 'bubble'\n    | 'donut'\n    | 'line'\n    | 'pie'\n    | 'polar'\n    | 'radar'\n    | 'scatter'\n    | 'custom'\n    | ''\n): ChartOptions => {\n  return {\n    responsive: true,\n    maintainAspectRatio: true,\n    color: '#333333',\n    font: {\n      family: \"'Inter', sans-serif\",\n      weight: '600',\n      size: 12,\n      lineHeight: 1.33333333,\n    },\n    scales: {\n      x: {\n        beginAtZero: true,\n        ticks: {\n          display: ['bar', 'line', 'bubble', 'scatter'].includes(type)\n            ? true\n            : false,\n          padding: 8,\n        },\n        grid: {\n          display: false,\n          drawTicks: false,\n        },\n        border: {\n          display: false,\n          dash: [2, 2],\n          color: '#eaeaea',\n        },\n      },\n      y: {\n        beginAtZero: true,\n        ticks: {\n          display: ['bar', 'line', 'bubble', 'scatter'].includes(type)\n            ? true\n            : false,\n          padding: 8,\n        },\n        grid: {\n          display: ['bar', 'line', 'bubble', 'scatter'].includes(type)\n            ? true\n            : false,\n          drawTicks: false,\n        },\n        border: {\n          display: false,\n          dash: [2, 2],\n          color: '#eaeaea',\n        },\n      },\n    },\n    plugins: {\n      legend: {\n        display: type === 'polar' ? false : true,\n        labels: {\n          boxWidth: 12,\n          boxHeight: 12,\n          usePointStyle: true,\n          pointStyle: 'rectRounded',\n          padding: 24,\n        },\n      },\n    },\n    elements: {\n      bar:\n        type === 'bar'\n          ? {\n              borderSkipped: false,\n              borderRadius: 4,\n              backgroundColor: flatColors,\n            }\n          : {},\n      line:\n        type === 'line'\n          ? {\n              borderColor: flatColors,\n              backgroundColor: opaqueLightGradientColors,\n              borderWidth: 1,\n              tension: 0.33,\n              fill: 'start',\n            }\n          : type === 'radar'\n          ? {\n              tension: 0,\n              backgroundColor: opaqueColors2,\n              borderColor: flatColors,\n              borderWidth: 1,\n            }\n          : {},\n      point: ['line', 'radar'].includes(type)\n        ? {\n            borderColor: 'rgba(255,255,255,0.7)',\n            radius: 4,\n            backgroundColor: flatColors,\n          }\n        : ['bubble', 'scatter'].includes(type)\n        ? {\n            hoverBorderColor: 'rgba(255,255,255,0.7)',\n            backgroundColor: flatColors,\n          }\n        : {},\n      arc: ['donut', 'pie'].includes(type)\n        ? {\n            borderWidth: 2,\n            borderRadius: 6,\n            borderColor: '#ffffff',\n            hoverBorderColor: '#ffffff',\n            backgroundColor: colors,\n            hoverOffset: 4,\n          }\n        : ['polar', 'radar'].includes(type)\n        ? {\n            borderWidth: 1,\n            borderColor: opaqueColors7,\n            backgroundColor: opaqueRadialGradientColors,\n            hoverBackgroundColor: opaqueColors7,\n          }\n        : {},\n    },\n  }\n}\n\nexport const CHART_COLORS = colors\nexport const CHART_GRADIENTS = gradients\nexport const CHART_COLOR_OPAQUE_1 = oColors\nexport const CHART_COLOR_OPAQUE_2 = oColors2\nexport const CHART_COLOR_OPAQUE_7 = oColors7\n"],"names":[],"mappings":"AAEA,MAAM,MAAS,GAAA;AAAA,EACb,SAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AACF,CAAA,CAAA;AAEA,MAAM,OAAU,GAAA;AAAA,EACd,0BAAA;AAAA,EACA,0BAAA;AAAA,EACA,0BAAA;AAAA,EACA,wBAAA;AAAA,EACA,0BAAA;AAAA,EACA,wBAAA;AAAA,EACA,0BAAA;AAAA,EACA,wBAAA;AACF,CAAA,CAAA;AAEA,MAAM,QAAW,GAAA;AAAA,EACf,0BAAA;AAAA,EACA,0BAAA;AAAA,EACA,0BAAA;AAAA,EACA,wBAAA;AAAA,EACA,0BAAA;AAAA,EACA,wBAAA;AAAA,EACA,0BAAA;AAAA,EACA,wBAAA;AACF,CAAA,CAAA;AAEA,MAAM,QAAW,GAAA;AAAA,EACf,0BAAA;AAAA,EACA,0BAAA;AAAA,EACA,0BAAA;AAAA,EACA,wBAAA;AAAA,EACA,0BAAA;AAAA,EACA,wBAAA;AAAA,EACA,0BAAA;AAAA,EACA,wBAAA;AACF,CAAA,CAAA;AAEA,MAAM,SAAY,GAAA;AAAA,EAChB;AAAA,IACE,EAAE,MAAA,EAAQ,CAAG,EAAA,KAAA,EAAO,SAAU,EAAA;AAAA,IAC9B,EAAE,MAAA,EAAQ,CAAG,EAAA,KAAA,EAAO,SAAU,EAAA;AAAA,GAChC;AAAA,EACA;AAAA,IACE,EAAE,MAAA,EAAQ,MAAQ,EAAA,KAAA,EAAO,SAAU,EAAA;AAAA,IACnC,EAAE,MAAA,EAAQ,MAAQ,EAAA,KAAA,EAAO,SAAU,EAAA;AAAA,GACrC;AAAA,EACA;AAAA,IACE,EAAE,MAAA,EAAQ,MAAQ,EAAA,KAAA,EAAO,SAAU,EAAA;AAAA,IACnC,EAAE,MAAA,EAAQ,MAAQ,EAAA,KAAA,EAAO,SAAU,EAAA;AAAA,GACrC;AAAA,EACA;AAAA,IACE,EAAE,MAAA,EAAQ,MAAQ,EAAA,KAAA,EAAO,SAAU,EAAA;AAAA,IACnC,EAAE,MAAA,EAAQ,MAAQ,EAAA,KAAA,EAAO,SAAU,EAAA;AAAA,GACrC;AAAA,EACA;AAAA,IACE,EAAE,MAAA,EAAQ,KAAO,EAAA,KAAA,EAAO,SAAU,EAAA;AAAA,IAClC,EAAE,MAAA,EAAQ,KAAO,EAAA,KAAA,EAAO,SAAU,EAAA;AAAA,GACpC;AAAA,EACA;AAAA,IACE,EAAE,MAAA,EAAQ,MAAQ,EAAA,KAAA,EAAO,SAAU,EAAA;AAAA,IACnC,EAAE,MAAA,EAAQ,MAAQ,EAAA,KAAA,EAAO,SAAU,EAAA;AAAA,GACrC;AAAA,EACA;AAAA,IACE,EAAE,MAAA,EAAQ,MAAQ,EAAA,KAAA,EAAO,SAAU,EAAA;AAAA,IACnC,EAAE,MAAA,EAAQ,MAAQ,EAAA,KAAA,EAAO,SAAU,EAAA;AAAA,GACrC;AAAA,EACA;AAAA,IACE,EAAE,MAAA,EAAQ,CAAG,EAAA,KAAA,EAAO,SAAU,EAAA;AAAA,IAC9B,EAAE,MAAA,EAAQ,CAAG,EAAA,KAAA,EAAO,SAAU,EAAA;AAAA,GAChC;AACF,CAAA,CAAA;AAEa,MAAA,UAAA,GAAa,CAAC,GAAsC,KAAA;AAC/D,EAAO,OAAA,MAAA,CAAO,GAAI,CAAA,YAAA,GAAe,MAAO,CAAA,MAAA,CAAA,CAAA;AAC1C,EAAA;AAEa,MAAA,YAAA,GAAe,CAAC,GAAsC,KAAA;AACjE,EAAO,OAAA,OAAA,CAAQ,GAAI,CAAA,YAAA,GAAe,MAAO,CAAA,MAAA,CAAA,CAAA;AAC3C,EAAA;AAEa,MAAA,aAAA,GAAgB,CAAC,GAAsC,KAAA;AAClE,EAAO,OAAA,QAAA,CAAS,GAAI,CAAA,YAAA,GAAe,MAAO,CAAA,MAAA,CAAA,CAAA;AAC5C,EAAA;AAEa,MAAA,aAAA,GAAgB,CAAC,GAAsC,KAAA;AAClE,EAAO,OAAA,QAAA,CAAS,GAAI,CAAA,YAAA,GAAe,MAAO,CAAA,MAAA,CAAA,CAAA;AAC5C,EAAA;AAEO,MAAM,YAAe,GAAA,CAAC,GAAgB,KAAA,MAAA,CAAO,MAAM,MAAO,CAAA,MAAA,EAAA;AAEpD,MAAA,gBAAA,GAAmB,CAC9B,OAAA,EACA,GACG,KAAA;AACH,EAAA,IAAI,QACF,GAAA,IAAA,CAAA;AACF,EAAM,MAAA,EAAE,OAAU,GAAA,OAAA,CAAA;AAClB,EAAM,MAAA,EAAE,GAAK,EAAA,SAAA,EAAc,GAAA,KAAA,CAAA;AAE3B,EAAA,IAAI,CAAC,SAAW,EAAA;AAEd,IAAA,OAAA;AAAA,GACF;AAEA,EAAA,IAAI,CAAC,QAAU,EAAA;AACb,IAAA,QAAA,GAAW,IAAI,oBAAqB,CAAA,CAAA,EAAG,CAAG,EAAA,CAAA,EAAG,UAAU,MAAM,CAAA,CAAA;AAC7D,IAAA,SAAA,CAAU,GAAM,GAAA,SAAA,CAAU,MAAQ,CAAA,CAAA,OAAA,CAAQ,CAAC,IAAS,KAAA;AAClD,MAAA,QAAA,CAAU,YAAa,CAAA,IAAA,CAAK,MAAQ,EAAA,IAAA,CAAK,KAAK,CAAA,CAAA;AAAA,KAC/C,CAAA,CAAA;AAAA,GACH;AAEA,EAAO,OAAA,QAAA,CAAA;AACT,EAAA;AAEO,MAAM,sBAAyB,GAAA,CACpC,OACA,EAAA,GAAA,EACA,WAA+B,KAC5B,CAAA,KAAA;AACH,EAAI,IAAA,QAAA,CAAA;AACJ,EAAM,MAAA,EAAE,OAAU,GAAA,OAAA,CAAA;AAClB,EAAM,MAAA,EAAE,GAAK,EAAA,SAAA,EAAc,GAAA,KAAA,CAAA;AAE3B,EAAA,IAAI,CAAC,SAAW,EAAA;AAEd,IAAA,OAAA;AAAA,GACF;AAEA,EAAA,IAAI,CAAC,QAAU,EAAA;AACb,IAAA,QAAA,GAAW,IAAI,oBAAqB,CAAA,CAAA,EAAG,CAAG,EAAA,CAAA,EAAG,UAAU,MAAM,CAAA,CAAA;AAC7D,IAAA,QAAA,CAAS,YAAa,CAAA,CAAA,EAAG,MAAO,CAAA,GAAA,GAAM,OAAO,MAAO,CAAA,CAAA,CAAA;AACpD,IAAA,QAAA,CAAS,aAAa,CAAG,EAAA,QAAA,IAAY,OAAQ,CAAA,GAAA,GAAM,OAAO,MAAO,CAAA,CAAA,CAAA;AAAA,GACnE;AAEA,EAAO,OAAA,QAAA,CAAA;AACT,EAAA;AAEA,SAAS,sBAAA,CACP,OACA,EAAA,GAAA,GAAM,CACN,EAAA;AACA,EAAM,MAAA,SAAA,GAAY,QAAQ,KAAM,CAAA,SAAA,CAAA;AAChC,EAAA,IAAI,KAAO,EAAA,MAAA,CAAA;AACX,EAAM,MAAA,KAAA,uBAAY,GAAI,EAAA,CAAA;AAEtB,EAAA,IAAI,CAAC,SAAW,EAAA;AAEd,IAAA,OAAA;AAAA,GACF;AAEA,EAAM,MAAA,UAAA,GAAa,SAAU,CAAA,KAAA,GAAQ,SAAU,CAAA,IAAA,CAAA;AAC/C,EAAM,MAAA,WAAA,GAAc,SAAU,CAAA,MAAA,GAAS,SAAU,CAAA,GAAA,CAAA;AACjD,EAAI,IAAA,KAAA,KAAU,UAAc,IAAA,MAAA,KAAW,WAAa,EAAA;AAClD,IAAA,KAAA,CAAM,KAAM,EAAA,CAAA;AAAA,GACd;AACA,EAAI,IAAA,QAAA,GAAW,KAAM,CAAA,GAAA,CAAI,GAAG,CAAA,CAAA;AAC5B,EAAA,IAAI,CAAC,QAAU,EAAA;AAGb,IAAQ,KAAA,GAAA,UAAA,CAAA;AACR,IAAS,MAAA,GAAA,WAAA,CAAA;AACT,IAAA,MAAM,OAAW,GAAA,CAAA,SAAA,CAAU,IAAO,GAAA,SAAA,CAAU,KAAS,IAAA,CAAA,CAAA;AACrD,IAAA,MAAM,OAAW,GAAA,CAAA,SAAA,CAAU,GAAM,GAAA,SAAA,CAAU,MAAU,IAAA,CAAA,CAAA;AACrD,IAAA,MAAM,IAAI,IAAK,CAAA,GAAA;AAAA,MACZ,CAAA,SAAA,CAAU,KAAQ,GAAA,SAAA,CAAU,IAAQ,IAAA,CAAA;AAAA,MACpC,CAAA,SAAA,CAAU,MAAS,GAAA,SAAA,CAAU,GAAO,IAAA,CAAA;AAAA,KACvC,CAAA;AACA,IAAM,MAAA,GAAA,GAAM,QAAQ,KAAM,CAAA,GAAA,CAAA;AAC1B,IAAA,QAAA,GAAW,GAAI,CAAA,oBAAA;AAAA,MACb,OAAA;AAAA,MACA,OAAA;AAAA,MACA,CAAA;AAAA,MACA,OAAA;AAAA,MACA,OAAA;AAAA,MACA,CAAA;AAAA,KACF,CAAA;AACA,IAAA,SAAA,CAAU,GAAM,GAAA,SAAA,CAAU,MAAQ,CAAA,CAAA,OAAA,CAAQ,CAAC,IAAS,KAAA;AAClD,MAAA,QAAA,CAAS,YAAa,CAAA,IAAA,CAAK,MAAQ,EAAA,IAAA,CAAK,KAAK,CAAA,CAAA;AAAA,KAC9C,CAAA,CAAA;AAED,IAAM,KAAA,CAAA,GAAA,CAAI,KAAK,QAAQ,CAAA,CAAA;AAAA,GACzB;AAEA,EAAO,OAAA,QAAA,CAAA;AACT,CAAA;AAEA,SAAS,4BACP,CAAA,OAAA,EACA,GAAM,GAAA,CAAA,EACN,WAA+B,KAC/B,CAAA,EAAA;AACA,EAAM,MAAA,SAAA,GAAY,QAAQ,KAAM,CAAA,SAAA,CAAA;AAChC,EAAA,IAAI,KAAO,EAAA,MAAA,CAAA;AACX,EAAM,MAAA,KAAA,uBAAY,GAAI,EAAA,CAAA;AAEtB,EAAA,IAAI,CAAC,SAAW,EAAA;AAEd,IAAA,OAAA;AAAA,GACF;AAEA,EAAM,MAAA,UAAA,GAAa,SAAU,CAAA,KAAA,GAAQ,SAAU,CAAA,IAAA,CAAA;AAC/C,EAAM,MAAA,WAAA,GAAc,SAAU,CAAA,MAAA,GAAS,SAAU,CAAA,GAAA,CAAA;AACjD,EAAI,IAAA,KAAA,KAAU,UAAc,IAAA,MAAA,KAAW,WAAa,EAAA;AAClD,IAAA,KAAA,CAAM,KAAM,EAAA,CAAA;AAAA,GACd;AACA,EAAI,IAAA,QAAA,GAAW,KAAM,CAAA,GAAA,CAAI,GAAG,CAAA,CAAA;AAC5B,EAAA,IAAI,CAAC,QAAU,EAAA;AAGb,IAAQ,KAAA,GAAA,UAAA,CAAA;AACR,IAAS,MAAA,GAAA,WAAA,CAAA;AACT,IAAA,MAAM,OAAW,GAAA,CAAA,SAAA,CAAU,IAAO,GAAA,SAAA,CAAU,KAAS,IAAA,CAAA,CAAA;AACrD,IAAA,MAAM,OAAW,GAAA,CAAA,SAAA,CAAU,GAAM,GAAA,SAAA,CAAU,MAAU,IAAA,CAAA,CAAA;AACrD,IAAA,MAAM,IAAI,IAAK,CAAA,GAAA;AAAA,MACZ,CAAA,SAAA,CAAU,KAAQ,GAAA,SAAA,CAAU,IAAQ,IAAA,CAAA;AAAA,MACpC,CAAA,SAAA,CAAU,MAAS,GAAA,SAAA,CAAU,GAAO,IAAA,CAAA;AAAA,KACvC,CAAA;AACA,IAAM,MAAA,GAAA,GAAM,QAAQ,KAAM,CAAA,GAAA,CAAA;AAC1B,IAAA,QAAA,GAAW,GAAI,CAAA,oBAAA;AAAA,MACb,OAAA;AAAA,MACA,OAAA;AAAA,MACA,CAAA;AAAA,MACA,OAAA;AAAA,MACA,OAAA;AAAA,MACA,CAAA;AAAA,KACF,CAAA;AAEA,IAAA,QAAA,CAAS,aAAa,CAAG,EAAA,QAAA,IAAY,OAAQ,CAAA,GAAA,GAAM,OAAO,MAAO,CAAA,CAAA,CAAA;AACjE,IAAA,QAAA,CAAS,YAAa,CAAA,CAAA,EAAG,QAAS,CAAA,GAAA,GAAM,OAAO,MAAO,CAAA,CAAA,CAAA;AAEtD,IAAM,KAAA,CAAA,GAAA,CAAI,KAAK,QAAQ,CAAA,CAAA;AAAA,GACzB;AAEA,EAAO,OAAA,QAAA,CAAA;AACT,CAAA;AAEa,MAAA,cAAA,GAAiB,CAAC,GAAsC,KAAA;AACnE,EAAO,OAAA,gBAAA,CAAiB,GAAK,EAAA,GAAA,CAAI,YAAY,CAAA,CAAA;AAC/C,EAAA;AAEa,MAAA,oBAAA,GAAuB,CAAC,GAAsC,KAAA;AACzE,EAAO,OAAA,sBAAA,CAAuB,GAAK,EAAA,GAAA,CAAI,SAAS,CAAA,CAAA;AAClD,EAAA;AAEa,MAAA,oBAAA,GAAuB,CAAC,GAAsC,KAAA;AACzE,EAAO,OAAA,sBAAA,CAAuB,GAAK,EAAA,GAAA,CAAI,YAAY,CAAA,CAAA;AACrD,EAAA;AAEa,MAAA,wBAAA,GAA2B,CAAC,GAAsC,KAAA;AAC7E,EAAA,OAAO,sBAAuB,CAAA,GAAA,EAAK,GAAI,CAAA,YAAA,EAAc,eAAe,CAAA,CAAA;AACtE,EAAA;AAEa,MAAA,yBAAA,GAA4B,CACvC,GACG,KAAA;AACH,EAAA,OAAO,sBAAuB,CAAA,GAAA,EAAK,GAAI,CAAA,YAAA,EAAc,qBAAqB,CAAA,CAAA;AAC5E,EAAA;AAEa,MAAA,0BAAA,GAA6B,CACxC,GACG,KAAA;AACH,EAAO,OAAA,4BAAA,CAA6B,GAAK,EAAA,GAAA,CAAI,YAAY,CAAA,CAAA;AAC3D,EAAA;AAEa,MAAA,8BAAA,GAAiC,CAC5C,GACG,KAAA;AACH,EAAA,OAAO,4BAA6B,CAAA,GAAA,EAAK,GAAI,CAAA,YAAA,EAAc,eAAe,CAAA,CAAA;AAC5E,EAAA;AAEa,MAAA,+BAAA,GAAkC,CAC7C,GACG,KAAA;AACH,EAAO,OAAA,4BAAA;AAAA,IACL,GAAA;AAAA,IACA,GAAI,CAAA,YAAA;AAAA,IACJ,qBAAA;AAAA,GACF,CAAA;AACF,EAAA;AAEa,MAAA,sBAAA,GAAyB,CACpC,IAWiB,KAAA;AACjB,EAAO,OAAA;AAAA,IACL,UAAY,EAAA,IAAA;AAAA,IACZ,mBAAqB,EAAA,IAAA;AAAA,IACrB,KAAO,EAAA,SAAA;AAAA,IACP,IAAM,EAAA;AAAA,MACJ,MAAQ,EAAA,qBAAA;AAAA,MACR,MAAQ,EAAA,KAAA;AAAA,MACR,IAAM,EAAA,EAAA;AAAA,MACN,UAAY,EAAA,UAAA;AAAA,KACd;AAAA,IACA,MAAQ,EAAA;AAAA,MACN,CAAG,EAAA;AAAA,QACD,WAAa,EAAA,IAAA;AAAA,QACb,KAAO,EAAA;AAAA,UACL,OAAA,EAAS,CAAC,KAAA,EAAO,MAAQ,EAAA,QAAA,EAAU,SAAS,CAAE,CAAA,QAAA,CAAS,IAAI,CAAA,GACvD,IACA,GAAA,KAAA;AAAA,UACJ,OAAS,EAAA,CAAA;AAAA,SACX;AAAA,QACA,IAAM,EAAA;AAAA,UACJ,OAAS,EAAA,KAAA;AAAA,UACT,SAAW,EAAA,KAAA;AAAA,SACb;AAAA,QACA,MAAQ,EAAA;AAAA,UACN,OAAS,EAAA,KAAA;AAAA,UACT,IAAA,EAAM,CAAC,CAAA,EAAG,CAAC,CAAA;AAAA,UACX,KAAO,EAAA,SAAA;AAAA,SACT;AAAA,OACF;AAAA,MACA,CAAG,EAAA;AAAA,QACD,WAAa,EAAA,IAAA;AAAA,QACb,KAAO,EAAA;AAAA,UACL,OAAA,EAAS,CAAC,KAAA,EAAO,MAAQ,EAAA,QAAA,EAAU,SAAS,CAAE,CAAA,QAAA,CAAS,IAAI,CAAA,GACvD,IACA,GAAA,KAAA;AAAA,UACJ,OAAS,EAAA,CAAA;AAAA,SACX;AAAA,QACA,IAAM,EAAA;AAAA,UACJ,OAAA,EAAS,CAAC,KAAA,EAAO,MAAQ,EAAA,QAAA,EAAU,SAAS,CAAE,CAAA,QAAA,CAAS,IAAI,CAAA,GACvD,IACA,GAAA,KAAA;AAAA,UACJ,SAAW,EAAA,KAAA;AAAA,SACb;AAAA,QACA,MAAQ,EAAA;AAAA,UACN,OAAS,EAAA,KAAA;AAAA,UACT,IAAA,EAAM,CAAC,CAAA,EAAG,CAAC,CAAA;AAAA,UACX,KAAO,EAAA,SAAA;AAAA,SACT;AAAA,OACF;AAAA,KACF;AAAA,IACA,OAAS,EAAA;AAAA,MACP,MAAQ,EAAA;AAAA,QACN,OAAA,EAAS,IAAS,KAAA,OAAA,GAAU,KAAQ,GAAA,IAAA;AAAA,QACpC,MAAQ,EAAA;AAAA,UACN,QAAU,EAAA,EAAA;AAAA,UACV,SAAW,EAAA,EAAA;AAAA,UACX,aAAe,EAAA,IAAA;AAAA,UACf,UAAY,EAAA,aAAA;AAAA,UACZ,OAAS,EAAA,EAAA;AAAA,SACX;AAAA,OACF;AAAA,KACF;AAAA,IACA,QAAU,EAAA;AAAA,MACR,GAAA,EACE,SAAS,KACL,GAAA;AAAA,QACE,aAAe,EAAA,KAAA;AAAA,QACf,YAAc,EAAA,CAAA;AAAA,QACd,eAAiB,EAAA,UAAA;AAAA,UAEnB,EAAC;AAAA,MACP,IAAA,EACE,SAAS,MACL,GAAA;AAAA,QACE,WAAa,EAAA,UAAA;AAAA,QACb,eAAiB,EAAA,yBAAA;AAAA,QACjB,WAAa,EAAA,CAAA;AAAA,QACb,OAAS,EAAA,IAAA;AAAA,QACT,IAAM,EAAA,OAAA;AAAA,OACR,GACA,SAAS,OACT,GAAA;AAAA,QACE,OAAS,EAAA,CAAA;AAAA,QACT,eAAiB,EAAA,aAAA;AAAA,QACjB,WAAa,EAAA,UAAA;AAAA,QACb,WAAa,EAAA,CAAA;AAAA,UAEf,EAAC;AAAA,MACP,OAAO,CAAC,MAAA,EAAQ,OAAO,CAAE,CAAA,QAAA,CAAS,IAAI,CAClC,GAAA;AAAA,QACE,WAAa,EAAA,uBAAA;AAAA,QACb,MAAQ,EAAA,CAAA;AAAA,QACR,eAAiB,EAAA,UAAA;AAAA,UAEnB,CAAC,QAAA,EAAU,SAAS,CAAE,CAAA,QAAA,CAAS,IAAI,CACnC,GAAA;AAAA,QACE,gBAAkB,EAAA,uBAAA;AAAA,QAClB,eAAiB,EAAA,UAAA;AAAA,UAEnB,EAAC;AAAA,MACL,KAAK,CAAC,OAAA,EAAS,KAAK,CAAE,CAAA,QAAA,CAAS,IAAI,CAC/B,GAAA;AAAA,QACE,WAAa,EAAA,CAAA;AAAA,QACb,YAAc,EAAA,CAAA;AAAA,QACd,WAAa,EAAA,SAAA;AAAA,QACb,gBAAkB,EAAA,SAAA;AAAA,QAClB,eAAiB,EAAA,MAAA;AAAA,QACjB,WAAa,EAAA,CAAA;AAAA,UAEf,CAAC,OAAA,EAAS,OAAO,CAAE,CAAA,QAAA,CAAS,IAAI,CAChC,GAAA;AAAA,QACE,WAAa,EAAA,CAAA;AAAA,QACb,WAAa,EAAA,aAAA;AAAA,QACb,eAAiB,EAAA,0BAAA;AAAA,QACjB,oBAAsB,EAAA,aAAA;AAAA,UAExB,EAAC;AAAA,KACP;AAAA,GACF,CAAA;AACF,EAAA;AAEO,MAAM,YAAe,GAAA,OAAA;AACrB,MAAM,eAAkB,GAAA,UAAA;AACxB,MAAM,oBAAuB,GAAA,QAAA;AAC7B,MAAM,oBAAuB,GAAA,SAAA;AAC7B,MAAM,oBAAuB,GAAA;;;;"}