{"version":3,"file":"index.cjs","sources":["../../src/constants.ts","../../src/FlameGraph/FlameGraphContextMenu.tsx","../../src/FlameGraph/FlameGraphTooltip.tsx","../../src/types.ts","../../src/FlameGraph/murmur3.ts","../../src/FlameGraph/colors.ts","../../src/FlameGraph/rendering.ts","../../src/FlameGraph/FlameGraphCanvas.tsx","../../src/FlameGraph/FlameGraphMetadata.tsx","../../src/FlameGraph/FlameGraph.tsx","../../src/FlameGraph/treeTransforms.ts","../../src/FlameGraph/dataTransform.ts","../../src/FlameGraphHeader.tsx","../../src/TopTable/FlameGraphTopTableContainer.tsx","../../src/FlameGraphContainer.tsx","../../src/FlameGraph/testData/dataNestedSet.ts"],"sourcesContent":["export const PIXELS_PER_LEVEL = 22 * window.devicePixelRatio;\nexport const MUTE_THRESHOLD = 10 * window.devicePixelRatio;\nexport const HIDE_THRESHOLD = 0.5 * window.devicePixelRatio;\nexport const LABEL_THRESHOLD = 20 * window.devicePixelRatio;\nexport const BAR_BORDER_WIDTH = 0.5 * window.devicePixelRatio;\nexport const BAR_TEXT_PADDING_LEFT = 4 * window.devicePixelRatio;\nexport const GROUP_STRIP_WIDTH = 3 * window.devicePixelRatio;\nexport const GROUP_STRIP_PADDING = 3 * window.devicePixelRatio;\nexport const GROUP_STRIP_MARGIN_LEFT = 4 * window.devicePixelRatio;\nexport const GROUP_TEXT_OFFSET = 2 * window.devicePixelRatio;\nexport const MIN_WIDTH_TO_SHOW_BOTH_TOPTABLE_AND_FLAMEGRAPH = 800;\nexport const TOP_TABLE_COLUMN_WIDTH = 120;\n","import { DataFrame } from '@grafana/data';\nimport { MenuItem, MenuGroup, ContextMenu, IconName } from '@grafana/ui';\n\nimport { ClickedItemData, SelectedView } from '../types';\n\nimport { CollapseConfig, FlameGraphDataContainer } from './dataTransform';\n\nexport type GetExtraContextMenuButtonsFunction = (\n  clickedItemData: ClickedItemData,\n  data: DataFrame,\n  state: { selectedView: SelectedView; isDiff: boolean; search: string; collapseConfig?: CollapseConfig }\n) => ExtraContextMenuButton[];\n\nexport type ExtraContextMenuButton = {\n  label: string;\n  icon: IconName;\n  onClick: () => void;\n};\n\ntype Props = {\n  data: FlameGraphDataContainer;\n  itemData: ClickedItemData;\n  onMenuItemClick: () => void;\n  onItemFocus: () => void;\n  onSandwich: () => void;\n  onExpandGroup: () => void;\n  onCollapseGroup: () => void;\n  onExpandAllGroups: () => void;\n  onCollapseAllGroups: () => void;\n  getExtraContextMenuButtons?: GetExtraContextMenuButtonsFunction;\n  collapseConfig?: CollapseConfig;\n  collapsing?: boolean;\n  allGroupsCollapsed?: boolean;\n  allGroupsExpanded?: boolean;\n  selectedView: SelectedView;\n  search: string;\n};\n\nconst FlameGraphContextMenu = ({\n  data,\n  itemData,\n  onMenuItemClick,\n  onItemFocus,\n  onSandwich,\n  collapseConfig,\n  onExpandGroup,\n  onCollapseGroup,\n  onExpandAllGroups,\n  onCollapseAllGroups,\n  getExtraContextMenuButtons,\n  collapsing,\n  allGroupsExpanded,\n  allGroupsCollapsed,\n  selectedView,\n  search,\n}: Props) => {\n  function renderItems() {\n    const extraButtons =\n      getExtraContextMenuButtons?.(itemData, data.data, {\n        selectedView,\n        isDiff: data.isDiffFlamegraph(),\n        search,\n        collapseConfig,\n      }) || [];\n    return (\n      <>\n        <MenuItem\n          label=\"Focus block\"\n          icon={'eye'}\n          onClick={() => {\n            onItemFocus();\n            onMenuItemClick();\n          }}\n        />\n        <MenuItem\n          label=\"Copy function name\"\n          icon={'copy'}\n          onClick={() => {\n            navigator.clipboard.writeText(itemData.label).then(() => {\n              onMenuItemClick();\n            });\n          }}\n        />\n        <MenuItem\n          label=\"Sandwich view\"\n          icon={'gf-show-context'}\n          onClick={() => {\n            onSandwich();\n            onMenuItemClick();\n          }}\n        />\n        {extraButtons.map(({ label, icon, onClick }) => {\n          return <MenuItem label={label} icon={icon} onClick={() => onClick()} key={label} />;\n        })}\n        {collapsing && (\n          <MenuGroup label={'Grouping'}>\n            {collapseConfig ? (\n              collapseConfig.collapsed ? (\n                <MenuItem\n                  label=\"Expand group\"\n                  icon={'angle-double-down'}\n                  onClick={() => {\n                    onExpandGroup();\n                    onMenuItemClick();\n                  }}\n                />\n              ) : (\n                <MenuItem\n                  label=\"Collapse group\"\n                  icon={'angle-double-up'}\n                  onClick={() => {\n                    onCollapseGroup();\n                    onMenuItemClick();\n                  }}\n                />\n              )\n            ) : null}\n            {!allGroupsExpanded && (\n              <MenuItem\n                label=\"Expand all groups\"\n                icon={'angle-double-down'}\n                onClick={() => {\n                  onExpandAllGroups();\n                  onMenuItemClick();\n                }}\n              />\n            )}\n            {!allGroupsCollapsed && (\n              <MenuItem\n                label=\"Collapse all groups\"\n                icon={'angle-double-up'}\n                onClick={() => {\n                  onCollapseAllGroups();\n                  onMenuItemClick();\n                }}\n              />\n            )}\n          </MenuGroup>\n        )}\n      </>\n    );\n  }\n\n  return (\n    <div data-testid=\"contextMenu\">\n      <ContextMenu\n        renderMenuItems={renderItems}\n        x={itemData.posX + 10}\n        y={itemData.posY}\n        focusOnOpen={false}\n      ></ContextMenu>\n    </div>\n  );\n};\n\nexport default FlameGraphContextMenu;\n","import { css } from '@emotion/css';\n\nimport { DisplayValue, getValueFormat, GrafanaTheme2 } from '@grafana/data';\nimport { InteractiveTable, Portal, useStyles2, VizTooltipContainer } from '@grafana/ui';\n\nimport { CollapseConfig, FlameGraphDataContainer, LevelItem } from './dataTransform';\n\ntype Props = {\n  data: FlameGraphDataContainer;\n  totalTicks: number;\n  position?: { x: number; y: number };\n  item?: LevelItem;\n  collapseConfig?: CollapseConfig;\n};\n\nconst FlameGraphTooltip = ({ data, item, totalTicks, position, collapseConfig }: Props) => {\n  const styles = useStyles2(getStyles);\n\n  if (!(item && position)) {\n    return null;\n  }\n\n  let content;\n\n  if (data.isDiffFlamegraph()) {\n    const tableData = getDiffTooltipData(data, item, totalTicks);\n    content = (\n      <InteractiveTable\n        className={styles.tooltipTable}\n        columns={[\n          { id: 'label', header: '' },\n          { id: 'baseline', header: 'Baseline' },\n          { id: 'comparison', header: 'Comparison' },\n          { id: 'diff', header: 'Diff' },\n        ]}\n        data={tableData}\n        getRowId={(originalRow) => originalRow.rowId}\n      />\n    );\n  } else {\n    const tooltipData = getTooltipData(data, item, totalTicks);\n    content = (\n      <p className={styles.lastParagraph}>\n        {tooltipData.unitTitle}\n        <br />\n        Total: <b>{tooltipData.unitValue}</b> ({tooltipData.percentValue}%)\n        <br />\n        Self: <b>{tooltipData.unitSelf}</b> ({tooltipData.percentSelf}%)\n        <br />\n        Samples: <b>{tooltipData.samples}</b>\n      </p>\n    );\n  }\n\n  return (\n    <Portal>\n      <VizTooltipContainer className={styles.tooltipContainer} position={position} offset={{ x: 15, y: 0 }}>\n        <div className={styles.tooltipContent}>\n          <p className={styles.tooltipName}>\n            {data.getLabel(item.itemIndexes[0])}\n            {collapseConfig && collapseConfig.collapsed ? (\n              <span>\n                <br />\n                and {collapseConfig.items.length} similar items\n              </span>\n            ) : (\n              ''\n            )}\n          </p>\n          {content}\n        </div>\n      </VizTooltipContainer>\n    </Portal>\n  );\n};\n\ntype TooltipData = {\n  percentValue: number;\n  percentSelf: number;\n  unitTitle: string;\n  unitValue: string;\n  unitSelf: string;\n  samples: string;\n};\n\nexport const getTooltipData = (data: FlameGraphDataContainer, item: LevelItem, totalTicks: number): TooltipData => {\n  const displayValue = data.valueDisplayProcessor(item.value);\n  const displaySelf = data.getSelfDisplay(item.itemIndexes);\n\n  const percentValue = Math.round(10000 * (displayValue.numeric / totalTicks)) / 100;\n  const percentSelf = Math.round(10000 * (displaySelf.numeric / totalTicks)) / 100;\n  let unitValue = displayValue.text + displayValue.suffix;\n  let unitSelf = displaySelf.text + displaySelf.suffix;\n\n  const unitTitle = data.getUnitTitle();\n  if (unitTitle === 'Count') {\n    if (!displayValue.suffix) {\n      // Makes sure we don't show 123undefined or something like that if suffix isn't defined\n      unitValue = displayValue.text;\n    }\n    if (!displaySelf.suffix) {\n      // Makes sure we don't show 123undefined or something like that if suffix isn't defined\n      unitSelf = displaySelf.text;\n    }\n  }\n\n  return {\n    percentValue,\n    percentSelf,\n    unitTitle,\n    unitValue,\n    unitSelf,\n    samples: displayValue.numeric.toLocaleString(),\n  };\n};\n\ntype DiffTableData = {\n  rowId: string;\n  label: string;\n  baseline: string | number;\n  comparison: string | number;\n  diff: string | number;\n};\n\nexport const getDiffTooltipData = (\n  data: FlameGraphDataContainer,\n  item: LevelItem,\n  totalTicks: number\n): DiffTableData[] => {\n  const levels = data.getLevels();\n  const totalTicksRight = levels[0][0].valueRight!;\n  const totalTicksLeft = totalTicks - totalTicksRight;\n  const valueLeft = item.value - item.valueRight!;\n\n  const percentageLeft = Math.round((10000 * valueLeft) / totalTicksLeft) / 100;\n  const percentageRight = Math.round((10000 * item.valueRight!) / totalTicksRight) / 100;\n\n  const diff = ((percentageRight - percentageLeft) / percentageLeft) * 100;\n\n  const displayValueLeft = getValueWithUnit(data, data.valueDisplayProcessor(valueLeft));\n  const displayValueRight = getValueWithUnit(data, data.valueDisplayProcessor(item.valueRight!));\n\n  const shortValFormat = getValueFormat('short');\n\n  return [\n    {\n      rowId: '1',\n      label: '% of total',\n      baseline: percentageLeft + '%',\n      comparison: percentageRight + '%',\n      diff: shortValFormat(diff).text + '%',\n    },\n    {\n      rowId: '2',\n      label: 'Value',\n      baseline: displayValueLeft,\n      comparison: displayValueRight,\n      diff: getValueWithUnit(data, data.valueDisplayProcessor(item.valueRight! - valueLeft)),\n    },\n    {\n      rowId: '3',\n      label: 'Samples',\n      baseline: shortValFormat(valueLeft).text,\n      comparison: shortValFormat(item.valueRight!).text,\n      diff: shortValFormat(item.valueRight! - valueLeft).text,\n    },\n  ];\n};\n\nfunction getValueWithUnit(data: FlameGraphDataContainer, displayValue: DisplayValue) {\n  let unitValue = displayValue.text + displayValue.suffix;\n\n  const unitTitle = data.getUnitTitle();\n  if (unitTitle === 'Count') {\n    if (!displayValue.suffix) {\n      // Makes sure we don't show 123undefined or something like that if suffix isn't defined\n      unitValue = displayValue.text;\n    }\n  }\n  return unitValue;\n}\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n  tooltipContainer: css({\n    title: 'tooltipContainer',\n    overflow: 'hidden',\n  }),\n  tooltipContent: css({\n    title: 'tooltipContent',\n    fontSize: theme.typography.bodySmall.fontSize,\n    width: '100%',\n  }),\n  tooltipName: css({\n    title: 'tooltipName',\n    marginTop: 0,\n    wordBreak: 'break-all',\n  }),\n  lastParagraph: css({\n    title: 'lastParagraph',\n    marginBottom: 0,\n  }),\n  name: css({\n    title: 'name',\n    marginBottom: '10px',\n  }),\n\n  tooltipTable: css({\n    title: 'tooltipTable',\n    maxWidth: '400px',\n  }),\n});\n\nexport default FlameGraphTooltip;\n","import { LevelItem } from './FlameGraph/dataTransform';\n\nexport { type FlameGraphDataContainer } from './FlameGraph/dataTransform';\n\nexport { type ExtraContextMenuButton } from './FlameGraph/FlameGraphContextMenu';\n\nexport type ClickedItemData = {\n  posX: number;\n  posY: number;\n  label: string;\n  item: LevelItem;\n};\n\nexport enum SampleUnit {\n  Bytes = 'bytes',\n  Short = 'short',\n  Nanoseconds = 'ns',\n}\n\nexport enum SelectedView {\n  TopTable = 'topTable',\n  FlameGraph = 'flameGraph',\n  Both = 'both',\n}\n\nexport interface TableData {\n  self: number;\n  total: number;\n  // For diff view\n  totalRight: number;\n}\n\nexport enum ColorScheme {\n  ValueBased = 'valueBased',\n  PackageBased = 'packageBased',\n}\n\nexport enum ColorSchemeDiff {\n  Default = 'default',\n  DiffColorBlind = 'diffColorBlind',\n}\n\nexport type TextAlign = 'left' | 'right';\n","// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\n/* eslint-disable @typescript-eslint/restrict-plus-operands */\n/*\n\nCopyright (c) 2011 Gary Court\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n/* eslint-disable no-plusplus */\n/* eslint-disable prefer-const */\n/* eslint-disable no-bitwise */\n/* eslint-disable camelcase */\n\nexport default function murmurhash3_32_gc(key: string, seed = 0) {\n  let remainder;\n  let bytes;\n  let h1;\n  let h1b;\n  let c1;\n  let c2;\n  let k1;\n  let i;\n\n  remainder = key.length & 3; // key.length % 4\n  bytes = key.length - remainder;\n  h1 = seed;\n  c1 = 0xcc9e2d51;\n  c2 = 0x1b873593;\n  i = 0;\n\n  while (i < bytes) {\n    k1 =\n      (key.charCodeAt(i) & 0xff) |\n      ((key.charCodeAt(++i) & 0xff) << 8) |\n      ((key.charCodeAt(++i) & 0xff) << 16) |\n      ((key.charCodeAt(++i) & 0xff) << 24);\n    ++i;\n\n    k1 = ((k1 & 0xffff) * c1 + ((((k1 >>> 16) * c1) & 0xffff) << 16)) & 0xffffffff;\n    k1 = (k1 << 15) | (k1 >>> 17);\n    k1 = ((k1 & 0xffff) * c2 + ((((k1 >>> 16) * c2) & 0xffff) << 16)) & 0xffffffff;\n\n    h1 ^= k1;\n    h1 = (h1 << 13) | (h1 >>> 19);\n    h1b = ((h1 & 0xffff) * 5 + ((((h1 >>> 16) * 5) & 0xffff) << 16)) & 0xffffffff;\n    h1 = (h1b & 0xffff) + 0x6b64 + ((((h1b >>> 16) + 0xe654) & 0xffff) << 16);\n  }\n\n  k1 = 0;\n\n  switch (remainder) {\n    case 3:\n      k1 ^= (key.charCodeAt(i + 2) & 0xff) << 16;\n    // fall through\n    case 2:\n      k1 ^= (key.charCodeAt(i + 1) & 0xff) << 8;\n    // fall through\n    case 1:\n      k1 ^= key.charCodeAt(i) & 0xff;\n    // fall through\n    default:\n      k1 = ((k1 & 0xffff) * c1 + ((((k1 >>> 16) * c1) & 0xffff) << 16)) & 0xffffffff;\n      k1 = (k1 << 15) | (k1 >>> 17);\n      k1 = ((k1 & 0xffff) * c2 + ((((k1 >>> 16) * c2) & 0xffff) << 16)) & 0xffffffff;\n      h1 ^= k1;\n  }\n\n  h1 ^= key.length;\n\n  h1 ^= h1 >>> 16;\n  h1 = ((h1 & 0xffff) * 0x85ebca6b + ((((h1 >>> 16) * 0x85ebca6b) & 0xffff) << 16)) & 0xffffffff;\n  h1 ^= h1 >>> 13;\n  h1 = ((h1 & 0xffff) * 0xc2b2ae35 + ((((h1 >>> 16) * 0xc2b2ae35) & 0xffff) << 16)) & 0xffffffff;\n  h1 ^= h1 >>> 16;\n\n  return h1 >>> 0;\n}\n","import { scaleLinear } from 'd3';\nimport color from 'tinycolor2';\n\nimport { GrafanaTheme2 } from '@grafana/data';\n\nimport { ColorSchemeDiff } from '../types';\n\nimport murmurhash3_32_gc from './murmur3';\n\n// Colors taken from pyroscope, they should be from Grafana originally, but I didn't find from where exactly.\nconst packageColors = [\n  color({ h: 24, s: 69, l: 60 }),\n  color({ h: 34, s: 65, l: 65 }),\n  color({ h: 194, s: 52, l: 61 }),\n  color({ h: 163, s: 45, l: 55 }),\n  color({ h: 211, s: 48, l: 60 }),\n  color({ h: 246, s: 40, l: 65 }),\n  color({ h: 305, s: 63, l: 79 }),\n  color({ h: 47, s: 100, l: 73 }),\n\n  color({ r: 183, g: 219, b: 171 }),\n  color({ r: 244, g: 213, b: 152 }),\n  color({ r: 78, g: 146, b: 249 }),\n  color({ r: 249, g: 186, b: 143 }),\n  color({ r: 242, g: 145, b: 145 }),\n  color({ r: 130, g: 181, b: 216 }),\n  color({ r: 229, g: 168, b: 226 }),\n  color({ r: 174, g: 162, b: 224 }),\n  color({ r: 154, g: 196, b: 138 }),\n  color({ r: 242, g: 201, b: 109 }),\n  color({ r: 101, g: 197, b: 219 }),\n  color({ r: 249, g: 147, b: 78 }),\n  color({ r: 234, g: 100, b: 96 }),\n  color({ r: 81, g: 149, b: 206 }),\n  color({ r: 214, g: 131, b: 206 }),\n  color({ r: 128, g: 110, b: 183 }),\n];\n\nconst byValueMinColor = getBarColorByValue(1, 100, 0, 1);\nconst byValueMaxColor = getBarColorByValue(100, 100, 0, 1);\nexport const byValueGradient = `linear-gradient(90deg, ${byValueMinColor} 0%, ${byValueMaxColor} 100%)`;\n\n// Handpicked some vaguely rainbow-ish colors\nexport const byPackageGradient = `linear-gradient(90deg, ${packageColors[0]} 0%, ${packageColors[2]} 30%, ${packageColors[6]} 50%, ${packageColors[7]} 70%, ${packageColors[8]} 100%)`;\n\nexport function getBarColorByValue(value: number, totalTicks: number, rangeMin: number, rangeMax: number) {\n  //  / (rangeMax - rangeMin) here so when you click a bar it will adjust the top (clicked)bar to the most 'intense' color\n  const intensity = Math.min(1, value / totalTicks / (rangeMax - rangeMin));\n  const h = 50 - 50 * intensity;\n  const l = 65 + 7 * intensity;\n\n  return color({ h, s: 100, l });\n}\n\nexport function getBarColorByPackage(label: string, theme: GrafanaTheme2) {\n  const packageName = getPackageName(label);\n  // TODO: similar thing happens in trace view with selecting colors of the spans, so maybe this could be unified.\n  const hash = murmurhash3_32_gc(packageName || '', 0);\n  const colorIndex = hash % packageColors.length;\n  let packageColor = packageColors[colorIndex].clone();\n  if (theme.isLight) {\n    packageColor = packageColor.brighten(15);\n  }\n  return packageColor;\n}\n\n// green to red\nexport const diffDefaultColors = ['rgb(0, 170, 0)', 'rgb(148, 142, 142)', 'rgb(200, 0, 0)'];\nexport const diffDefaultGradient = `linear-gradient(90deg, ${diffDefaultColors[0]} 0%, ${diffDefaultColors[1]} 50%, ${diffDefaultColors[2]} 100%)`;\nexport const diffColorBlindColors = ['rgb(26, 133, 255)', 'rgb(148, 142, 142)', 'rgb(220, 50, 32)'];\nexport const diffColorBlindGradient = `linear-gradient(90deg, ${diffColorBlindColors[0]} 0%, ${diffColorBlindColors[1]} 50%, ${diffColorBlindColors[2]} 100%)`;\n\nexport function getBarColorByDiff(\n  ticks: number,\n  ticksRight: number,\n  totalTicks: number,\n  totalTicksRight: number,\n  colorScheme: ColorSchemeDiff\n) {\n  const range = colorScheme === ColorSchemeDiff.Default ? diffDefaultColors : diffColorBlindColors;\n  const colorScale = scaleLinear()\n    .domain([-100, 0, 100])\n    // TODO types from DefinitelyTyped seem to mismatch\n    // @ts-ignore\n    .range(range);\n\n  const ticksLeft = ticks - ticksRight;\n  const totalTicksLeft = totalTicks - totalTicksRight;\n\n  if (totalTicksRight === 0 || totalTicksLeft === 0) {\n    // TODO types from DefinitelyTyped seem to mismatch\n    // @ts-ignore\n    const rgbString: string = colorScale(0);\n    // Fallback to neutral color as we probably have no data for one of the sides.\n    return color(rgbString);\n  }\n\n  const percentageLeft = Math.round((10000 * ticksLeft) / totalTicksLeft) / 100;\n  const percentageRight = Math.round((10000 * ticksRight) / totalTicksRight) / 100;\n\n  const diff = ((percentageRight - percentageLeft) / percentageLeft) * 100;\n\n  // TODO types from DefinitelyTyped seem to mismatch\n  // @ts-ignore\n  const rgbString: string = colorScale(diff);\n  return color(rgbString);\n}\n\n// const getColors = memoizeOne((theme) => getFilteredColors(colors, theme));\n\n// Different regexes to get the package name and function name from the label. We may at some point get an info about\n// the language from the backend and use the right regex but right now we just try all of them from most to least\n// specific.\nconst matchers = [\n  ['phpspy', /^(?<packageName>([^\\/]*\\/)*)(?<filename>.*\\.php+)(?<line_info>.*)$/],\n  ['pyspy', /^(?<packageName>([^\\/]*\\/)*)(?<filename>.*\\.py+)(?<line_info>.*)$/],\n  ['rbspy', /^(?<packageName>([^\\/]*\\/)*)(?<filename>.*\\.rb+)(?<line_info>.*)$/],\n  [\n    'nodespy',\n    /^(\\.\\/node_modules\\/)?(?<packageName>[^/]*)(?<filename>.*\\.?(jsx?|tsx?)?):(?<functionName>.*):(?<line_info>.*)$/,\n  ],\n  ['gospy', /^(?<packageName>.*?\\/.*?\\.|.*?\\.|.+)(?<functionName>.*)$/], // also 'scrape'\n  ['javaspy', /^(?<packageName>.+\\/)(?<filename>.+\\.)(?<functionName>.+)$/],\n  ['dotnetspy', /^(?<packageName>.+)\\.(.+)\\.(.+)\\(.*\\)$/],\n  ['tracing', /^(?<packageName>.+?):.*$/],\n  ['pyroscope-rs', /^(?<packageName>[^::]+)/],\n  ['ebpfspy', /^(?<packageName>.+)$/],\n  ['unknown', /^(?<packageName>.+)$/],\n];\n\n// Get the package name from the symbol. Try matchers from the list and return first one that matches.\nfunction getPackageName(name: string): string | undefined {\n  for (const [_, matcher] of matchers) {\n    const match = name.match(matcher);\n    if (match) {\n      return match.groups?.packageName || '';\n    }\n  }\n  return undefined;\n}\n","import { RefObject, useCallback, useEffect, useMemo, useState } from 'react';\nimport color from 'tinycolor2';\n\nimport { GrafanaTheme2 } from '@grafana/data';\nimport { useTheme2 } from '@grafana/ui';\n\nimport {\n  BAR_BORDER_WIDTH,\n  BAR_TEXT_PADDING_LEFT,\n  MUTE_THRESHOLD,\n  HIDE_THRESHOLD,\n  LABEL_THRESHOLD,\n  PIXELS_PER_LEVEL,\n  GROUP_STRIP_WIDTH,\n  GROUP_STRIP_PADDING,\n  GROUP_STRIP_MARGIN_LEFT,\n  GROUP_TEXT_OFFSET,\n} from '../constants';\nimport { ClickedItemData, ColorScheme, ColorSchemeDiff, TextAlign } from '../types';\n\nimport { getBarColorByDiff, getBarColorByPackage, getBarColorByValue } from './colors';\nimport { CollapseConfig, CollapsedMap, FlameGraphDataContainer, LevelItem } from './dataTransform';\n\ntype RenderOptions = {\n  canvasRef: RefObject<HTMLCanvasElement>;\n  data: FlameGraphDataContainer;\n  root: LevelItem;\n  direction: 'children' | 'parents';\n\n  // Depth in number of levels\n  depth: number;\n  wrapperWidth: number;\n\n  // If we are rendering only zoomed in part of the graph.\n  rangeMin: number;\n  rangeMax: number;\n\n  matchedLabels: Set<string> | undefined;\n  textAlign: TextAlign;\n\n  // Total ticks that will be used for sizing\n  totalViewTicks: number;\n  // Total ticks that will be used for computing colors as some color scheme (like in diff view) should not be affected\n  // by sandwich or focus view.\n  totalColorTicks: number;\n  // Total ticks used to compute the diff colors\n  totalTicksRight: number | undefined;\n  colorScheme: ColorScheme | ColorSchemeDiff;\n  focusedItemData?: ClickedItemData;\n  collapsedMap: CollapsedMap;\n};\n\nexport function useFlameRender(options: RenderOptions) {\n  const {\n    canvasRef,\n    data,\n    root,\n    depth,\n    direction,\n    wrapperWidth,\n    rangeMin,\n    rangeMax,\n    matchedLabels,\n    textAlign,\n    totalViewTicks,\n    totalColorTicks,\n    totalTicksRight,\n    colorScheme,\n    focusedItemData,\n    collapsedMap,\n  } = options;\n  const ctx = useSetupCanvas(canvasRef, wrapperWidth, depth);\n  const theme = useTheme2();\n\n  // There is a bit of dependency injections here that does not add readability, mainly to prevent recomputing some\n  // common stuff for all the nodes in the graph when only once is enough. perf/readability tradeoff.\n\n  const mutedColor = useMemo(() => {\n    const barMutedColor = color(theme.colors.background.secondary);\n    return theme.isLight ? barMutedColor.darken(10).toHexString() : barMutedColor.lighten(10).toHexString();\n  }, [theme]);\n\n  const getBarColor = useColorFunction(\n    totalColorTicks,\n    totalTicksRight,\n    colorScheme,\n    theme,\n    mutedColor,\n    rangeMin,\n    rangeMax,\n    matchedLabels,\n    focusedItemData ? focusedItemData.item.level : 0\n  );\n\n  const renderFunc = useRenderFunc(ctx, data, getBarColor, textAlign, collapsedMap);\n\n  useEffect(() => {\n    if (!ctx) {\n      return;\n    }\n\n    ctx.clearRect(0, 0, ctx.canvas.width, ctx.canvas.height);\n\n    const mutedPath2D = new Path2D();\n\n    //\n    // Walk the tree and compute the dimensions for each item in the flamegraph.\n    //\n    walkTree(\n      root,\n      direction,\n      data,\n      totalViewTicks,\n      rangeMin,\n      rangeMax,\n      wrapperWidth,\n      collapsedMap,\n      (item, x, y, width, height, label, muted) => {\n        if (muted) {\n          // We do a bit of optimization for muted regions, and we render them all in single fill later on as they don't\n          // have labels and are the same color.\n          mutedPath2D.rect(x, y, width, height);\n        } else {\n          renderFunc(item, x, y, width, height, label);\n        }\n      }\n    );\n\n    // Only fill the muted rects\n    ctx.fillStyle = mutedColor;\n    ctx.fill(mutedPath2D);\n  }, [\n    ctx,\n    data,\n    root,\n    wrapperWidth,\n    rangeMin,\n    rangeMax,\n    totalViewTicks,\n    direction,\n    renderFunc,\n    collapsedMap,\n    mutedColor,\n  ]);\n}\n\ntype RenderFunc = (item: LevelItem, x: number, y: number, width: number, height: number, label: string) => void;\n\ntype RenderFuncWrap = (\n  item: LevelItem,\n  x: number,\n  y: number,\n  width: number,\n  height: number,\n  label: string,\n  muted: boolean\n) => void;\n\n/**\n * Create a render function with some memoization to prevent excesive repainting of the canvas.\n * @param ctx\n * @param data\n * @param getBarColor\n * @param textAlign\n * @param collapsedMap\n */\nfunction useRenderFunc(\n  ctx: CanvasRenderingContext2D | undefined,\n  data: FlameGraphDataContainer,\n  getBarColor: (item: LevelItem, label: string, muted: boolean) => string,\n  textAlign: TextAlign,\n  collapsedMap: CollapsedMap\n) {\n  return useMemo(() => {\n    if (!ctx) {\n      return () => {};\n    }\n\n    const renderFunc: RenderFunc = (item, x, y, width, height, label) => {\n      ctx.beginPath();\n      ctx.rect(x + BAR_BORDER_WIDTH, y, width, height);\n      ctx.fillStyle = getBarColor(item, label, false);\n      ctx.stroke();\n      ctx.fill();\n\n      const collapsedItemConfig = collapsedMap.get(item);\n      let finalLabel = label;\n      if (collapsedItemConfig && collapsedItemConfig.collapsed) {\n        const numberOfCollapsedItems = collapsedItemConfig.items.length;\n        finalLabel = `(${numberOfCollapsedItems}) ` + label;\n      }\n\n      if (width >= LABEL_THRESHOLD) {\n        if (collapsedItemConfig) {\n          renderLabel(\n            ctx,\n            data,\n            finalLabel,\n            item,\n            width,\n            textAlign === 'left' ? x + GROUP_STRIP_MARGIN_LEFT + GROUP_TEXT_OFFSET : x,\n            y,\n            textAlign\n          );\n\n          renderGroupingStrip(ctx, x, y, height, item, collapsedItemConfig);\n        } else {\n          renderLabel(ctx, data, finalLabel, item, width, x, y, textAlign);\n        }\n      }\n    };\n\n    return renderFunc;\n  }, [ctx, getBarColor, textAlign, data, collapsedMap]);\n}\n\n/**\n * Render small strip on the left side of the bar to indicate that this item is part of a group that can be collapsed.\n * @param ctx\n * @param x\n * @param y\n * @param height\n * @param item\n * @param collapsedItemConfig\n */\nfunction renderGroupingStrip(\n  ctx: CanvasRenderingContext2D,\n  x: number,\n  y: number,\n  height: number,\n  item: LevelItem,\n  collapsedItemConfig: CollapseConfig\n) {\n  const groupStripX = x + GROUP_STRIP_MARGIN_LEFT;\n\n  // This is to mask the label in case we align it right to left.\n  ctx.beginPath();\n  ctx.rect(x, y, groupStripX - x + GROUP_STRIP_WIDTH + GROUP_STRIP_PADDING, height);\n  ctx.fill();\n\n  // For item in a group that can be collapsed, we draw a small strip to mark them. On the items that are at the\n  // start or and end of a group we draw just half the strip so 2 groups next to each other are separated\n  // visually.\n  ctx.beginPath();\n  if (collapsedItemConfig.collapsed) {\n    ctx.rect(groupStripX, y + height / 4, GROUP_STRIP_WIDTH, height / 2);\n  } else {\n    if (collapsedItemConfig.items[0] === item) {\n      // Top item\n      ctx.rect(groupStripX, y + height / 2, GROUP_STRIP_WIDTH, height / 2);\n    } else if (collapsedItemConfig.items[collapsedItemConfig.items.length - 1] === item) {\n      // Bottom item\n      ctx.rect(groupStripX, y, GROUP_STRIP_WIDTH, height / 2);\n    } else {\n      ctx.rect(groupStripX, y, GROUP_STRIP_WIDTH, height);\n    }\n  }\n\n  ctx.fillStyle = '#666';\n  ctx.fill();\n}\n\n/**\n * Exported for testing don't use directly\n * Walks the tree and computes coordinates, dimensions and other data needed for rendering. For each item in the tree\n * it defers the rendering to the renderFunc.\n */\nexport function walkTree(\n  root: LevelItem,\n  // In sandwich view we use parents direction to show all callers.\n  direction: 'children' | 'parents',\n  data: FlameGraphDataContainer,\n  totalViewTicks: number,\n  rangeMin: number,\n  rangeMax: number,\n  wrapperWidth: number,\n  collapsedMap: CollapsedMap,\n  renderFunc: RenderFuncWrap\n) {\n  // The levelOffset here is to keep track if items that we don't render because they are collapsed into single row.\n  // That means we have to render next items with an offset of some rows up in the stack.\n  const stack: Array<{ item: LevelItem; levelOffset: number }> = [];\n  stack.push({ item: root, levelOffset: 0 });\n\n  const pixelsPerTick = (wrapperWidth * window.devicePixelRatio) / totalViewTicks / (rangeMax - rangeMin);\n  let collapsedItemRendered: LevelItem | undefined = undefined;\n\n  while (stack.length > 0) {\n    const { item, levelOffset } = stack.shift()!;\n    let curBarTicks = item.value;\n    const muted = curBarTicks * pixelsPerTick <= MUTE_THRESHOLD;\n    const width = curBarTicks * pixelsPerTick - (muted ? 0 : BAR_BORDER_WIDTH * 2);\n    const height = PIXELS_PER_LEVEL;\n\n    if (width < HIDE_THRESHOLD) {\n      // We don't render nor it's children\n      continue;\n    }\n\n    let offsetModifier = 0;\n    let skipRender = false;\n    const collapsedItemConfig = collapsedMap.get(item);\n    const isCollapsedItem = collapsedItemConfig && collapsedItemConfig.collapsed;\n\n    if (isCollapsedItem) {\n      if (collapsedItemRendered === collapsedItemConfig.items[0]) {\n        offsetModifier = direction === 'children' ? -1 : +1;\n        skipRender = true;\n      } else {\n        // This is a case where we have another collapsed group right after different collapsed group, so we need to\n        // reset.\n        collapsedItemRendered = undefined;\n      }\n    } else {\n      collapsedItemRendered = undefined;\n    }\n\n    if (!skipRender) {\n      const barX = getBarX(item.start, totalViewTicks, rangeMin, pixelsPerTick);\n      const barY = (item.level + levelOffset) * PIXELS_PER_LEVEL;\n\n      let label = data.getLabel(item.itemIndexes[0]);\n      if (isCollapsedItem) {\n        collapsedItemRendered = item;\n      }\n\n      renderFunc(item, barX, barY, width, height, label, muted);\n    }\n\n    const nextList = direction === 'children' ? item.children : item.parents;\n    if (nextList) {\n      stack.unshift(...nextList.map((c) => ({ item: c, levelOffset: levelOffset + offsetModifier })));\n    }\n  }\n}\n\nfunction useColorFunction(\n  totalTicks: number,\n  totalTicksRight: number | undefined,\n  colorScheme: ColorScheme | ColorSchemeDiff,\n  theme: GrafanaTheme2,\n  mutedColor: string,\n  rangeMin: number,\n  rangeMax: number,\n  matchedLabels: Set<string> | undefined,\n  topLevel: number\n) {\n  return useCallback(\n    function getColor(item: LevelItem, label: string, muted: boolean) {\n      // If collapsed and no search we can quickly return the muted color\n      if (muted && !matchedLabels) {\n        // Collapsed are always grayed\n        return mutedColor;\n      }\n\n      const barColor =\n        item.valueRight !== undefined &&\n        (colorScheme === ColorSchemeDiff.Default || colorScheme === ColorSchemeDiff.DiffColorBlind)\n          ? getBarColorByDiff(item.value, item.valueRight!, totalTicks, totalTicksRight!, colorScheme)\n          : colorScheme === ColorScheme.ValueBased\n            ? getBarColorByValue(item.value, totalTicks, rangeMin, rangeMax)\n            : getBarColorByPackage(label, theme);\n\n      if (matchedLabels) {\n        // Means we are searching, we use color for matches and gray the rest\n        return matchedLabels.has(label) ? barColor.toHslString() : mutedColor;\n      }\n\n      // Mute if we are above the focused symbol\n      return item.level > topLevel - 1 ? barColor.toHslString() : barColor.lighten(15).toHslString();\n    },\n    [totalTicks, totalTicksRight, colorScheme, theme, rangeMin, rangeMax, matchedLabels, topLevel, mutedColor]\n  );\n}\n\nfunction useSetupCanvas(canvasRef: RefObject<HTMLCanvasElement>, wrapperWidth: number, numberOfLevels: number) {\n  const [ctx, setCtx] = useState<CanvasRenderingContext2D>();\n\n  useEffect(() => {\n    if (!(numberOfLevels && canvasRef.current)) {\n      return;\n    }\n    const ctx = canvasRef.current.getContext('2d')!;\n\n    const height = PIXELS_PER_LEVEL * numberOfLevels;\n    canvasRef.current.width = Math.round(wrapperWidth * window.devicePixelRatio);\n    canvasRef.current.height = Math.round(height);\n    canvasRef.current.style.width = `${wrapperWidth}px`;\n    canvasRef.current.style.height = `${height / window.devicePixelRatio}px`;\n\n    ctx.textBaseline = 'middle';\n    ctx.font = 12 * window.devicePixelRatio + 'px monospace';\n    ctx.strokeStyle = 'white';\n    setCtx(ctx);\n  }, [canvasRef, setCtx, wrapperWidth, numberOfLevels]);\n  return ctx;\n}\n\n// Renders a text inside the node rectangle. It allows setting alignment of the text left or right which takes effect\n// when text is too long to fit in the rectangle.\nfunction renderLabel(\n  ctx: CanvasRenderingContext2D,\n  data: FlameGraphDataContainer,\n  label: string,\n  item: LevelItem,\n  width: number,\n  x: number,\n  y: number,\n  textAlign: TextAlign\n) {\n  ctx.save();\n  ctx.clip(); // so text does not overflow\n  ctx.fillStyle = '#222';\n\n  const displayValue = data.valueDisplayProcessor(item.value);\n  const unit = displayValue.suffix ? displayValue.text + displayValue.suffix : displayValue.text;\n\n  // We only measure name here instead of full label because of how we deal with the units and aligning later.\n  const measure = ctx.measureText(label);\n  const spaceForTextInRect = width - BAR_TEXT_PADDING_LEFT;\n\n  let fullLabel = `${label} (${unit})`;\n  let labelX = Math.max(x, 0) + BAR_TEXT_PADDING_LEFT;\n\n  // We use the desired alignment only if there is not enough space for the text, otherwise we keep left alignment as\n  // that will already show full text.\n  if (measure.width > spaceForTextInRect) {\n    ctx.textAlign = textAlign;\n    // If aligned to the right we don't want to take the space with the unit label as the assumption is user wants to\n    // mainly see the name. This also reflects how pyro/flamegraph works.\n    if (textAlign === 'right') {\n      fullLabel = label;\n      labelX = x + width - BAR_TEXT_PADDING_LEFT;\n    }\n  }\n\n  ctx.fillText(fullLabel, labelX, y + PIXELS_PER_LEVEL / 2 + 2);\n  ctx.restore();\n}\n\n/**\n * Returns the X position of the bar. totalTicks * rangeMin is to adjust for any current zoom. So if we zoom to a\n * section of the graph we align and shift the X coordinates accordingly.\n * @param offset\n * @param totalTicks\n * @param rangeMin\n * @param pixelsPerTick\n */\nexport function getBarX(offset: number, totalTicks: number, rangeMin: number, pixelsPerTick: number) {\n  return (offset - totalTicks * rangeMin) * pixelsPerTick;\n}\n","import { css } from '@emotion/css';\nimport { MouseEvent as ReactMouseEvent, useCallback, useEffect, useRef, useState } from 'react';\nimport * as React from 'react';\nimport { useMeasure } from 'react-use';\n\nimport { PIXELS_PER_LEVEL } from '../constants';\nimport { ClickedItemData, ColorScheme, ColorSchemeDiff, SelectedView, TextAlign } from '../types';\n\nimport FlameGraphContextMenu, { GetExtraContextMenuButtonsFunction } from './FlameGraphContextMenu';\nimport FlameGraphTooltip from './FlameGraphTooltip';\nimport { CollapsedMap, FlameGraphDataContainer, LevelItem } from './dataTransform';\nimport { getBarX, useFlameRender } from './rendering';\n\ntype Props = {\n  data: FlameGraphDataContainer;\n  rangeMin: number;\n  rangeMax: number;\n  matchedLabels: Set<string> | undefined;\n  setRangeMin: (range: number) => void;\n  setRangeMax: (range: number) => void;\n  style?: React.CSSProperties;\n  onItemFocused: (data: ClickedItemData) => void;\n  focusedItemData?: ClickedItemData;\n  textAlign: TextAlign;\n  onSandwich: (label: string) => void;\n  colorScheme: ColorScheme | ColorSchemeDiff;\n\n  root: LevelItem;\n  direction: 'children' | 'parents';\n  // Depth in number of levels\n  depth: number;\n\n  totalProfileTicks: number;\n  totalProfileTicksRight?: number;\n  totalViewTicks: number;\n  showFlameGraphOnly?: boolean;\n\n  collapsedMap: CollapsedMap;\n  setCollapsedMap: (collapsedMap: CollapsedMap) => void;\n  collapsing?: boolean;\n  getExtraContextMenuButtons?: GetExtraContextMenuButtonsFunction;\n\n  selectedView: SelectedView;\n  search: string;\n};\n\nconst FlameGraphCanvas = ({\n  data,\n  rangeMin,\n  rangeMax,\n  matchedLabels,\n  setRangeMin,\n  setRangeMax,\n  onItemFocused,\n  focusedItemData,\n  textAlign,\n  onSandwich,\n  colorScheme,\n  totalProfileTicks,\n  totalProfileTicksRight,\n  totalViewTicks,\n  root,\n  direction,\n  depth,\n  showFlameGraphOnly,\n  collapsedMap,\n  setCollapsedMap,\n  collapsing,\n  getExtraContextMenuButtons,\n  selectedView,\n  search,\n}: Props) => {\n  const styles = getStyles();\n\n  const [sizeRef, { width: wrapperWidth }] = useMeasure<HTMLDivElement>();\n  const graphRef = useRef<HTMLCanvasElement>(null);\n  const [tooltipItem, setTooltipItem] = useState<LevelItem>();\n\n  const [clickedItemData, setClickedItemData] = useState<ClickedItemData>();\n\n  useFlameRender({\n    canvasRef: graphRef,\n    colorScheme,\n    data,\n    focusedItemData,\n    root,\n    direction,\n    depth,\n    rangeMax,\n    rangeMin,\n    matchedLabels,\n    textAlign,\n    totalViewTicks,\n    // We need this so that if we have a diff profile and are in sandwich view we still show the same diff colors.\n    totalColorTicks: data.isDiffFlamegraph() ? totalProfileTicks : totalViewTicks,\n    totalTicksRight: totalProfileTicksRight,\n    wrapperWidth,\n    collapsedMap,\n  });\n\n  const onGraphClick = useCallback(\n    (e: ReactMouseEvent<HTMLCanvasElement>) => {\n      setTooltipItem(undefined);\n      const pixelsPerTick = graphRef.current!.clientWidth / totalViewTicks / (rangeMax - rangeMin);\n      const item = convertPixelCoordinatesToBarCoordinates(\n        { x: e.nativeEvent.offsetX, y: e.nativeEvent.offsetY },\n        root,\n        direction,\n        depth,\n        pixelsPerTick,\n        totalViewTicks,\n        rangeMin,\n        collapsedMap\n      );\n\n      // if clicking on a block in the canvas\n      if (item) {\n        setClickedItemData({\n          posY: e.clientY,\n          posX: e.clientX,\n          item,\n          label: data.getLabel(item.itemIndexes[0]),\n        });\n      } else {\n        // if clicking on the canvas but there is no block beneath the cursor\n        setClickedItemData(undefined);\n      }\n    },\n    [data, rangeMin, rangeMax, totalViewTicks, root, direction, depth, collapsedMap]\n  );\n\n  const [mousePosition, setMousePosition] = useState<{ x: number; y: number }>();\n  const onGraphMouseMove = useCallback(\n    (e: ReactMouseEvent<HTMLCanvasElement>) => {\n      if (clickedItemData === undefined) {\n        setTooltipItem(undefined);\n        setMousePosition(undefined);\n        const pixelsPerTick = graphRef.current!.clientWidth / totalViewTicks / (rangeMax - rangeMin);\n        const item = convertPixelCoordinatesToBarCoordinates(\n          { x: e.nativeEvent.offsetX, y: e.nativeEvent.offsetY },\n          root,\n          direction,\n          depth,\n          pixelsPerTick,\n          totalViewTicks,\n          rangeMin,\n          collapsedMap\n        );\n\n        if (item) {\n          setMousePosition({ x: e.clientX, y: e.clientY });\n          setTooltipItem(item);\n        }\n      }\n    },\n    [rangeMin, rangeMax, totalViewTicks, clickedItemData, setMousePosition, root, direction, depth, collapsedMap]\n  );\n\n  const onGraphMouseLeave = useCallback(() => {\n    setTooltipItem(undefined);\n  }, []);\n\n  // hide context menu if outside the flame graph canvas is clicked\n  useEffect(() => {\n    const handleOnClick = (e: MouseEvent) => {\n      if (\n        e.target instanceof HTMLElement &&\n        e.target.parentElement?.id !== 'flameGraphCanvasContainer_clickOutsideCheck'\n      ) {\n        setClickedItemData(undefined);\n      }\n    };\n    window.addEventListener('click', handleOnClick);\n    return () => window.removeEventListener('click', handleOnClick);\n  }, [setClickedItemData]);\n\n  return (\n    <div className={styles.graph}>\n      <div className={styles.canvasWrapper} id=\"flameGraphCanvasContainer_clickOutsideCheck\" ref={sizeRef}>\n        <canvas\n          ref={graphRef}\n          data-testid=\"flameGraph\"\n          onClick={onGraphClick}\n          onMouseMove={onGraphMouseMove}\n          onMouseLeave={onGraphMouseLeave}\n        />\n      </div>\n      <FlameGraphTooltip\n        position={mousePosition}\n        item={tooltipItem}\n        data={data}\n        totalTicks={totalViewTicks}\n        collapseConfig={tooltipItem ? collapsedMap.get(tooltipItem) : undefined}\n      />\n      {!showFlameGraphOnly && clickedItemData && (\n        <FlameGraphContextMenu\n          data={data}\n          itemData={clickedItemData}\n          collapsing={collapsing}\n          collapseConfig={collapsedMap.get(clickedItemData.item)}\n          onMenuItemClick={() => {\n            setClickedItemData(undefined);\n          }}\n          onItemFocus={() => {\n            setRangeMin(clickedItemData.item.start / totalViewTicks);\n            setRangeMax((clickedItemData.item.start + clickedItemData.item.value) / totalViewTicks);\n            onItemFocused(clickedItemData);\n          }}\n          onSandwich={() => {\n            onSandwich(data.getLabel(clickedItemData.item.itemIndexes[0]));\n          }}\n          onExpandGroup={() => {\n            setCollapsedMap(collapsedMap.setCollapsedStatus(clickedItemData.item, false));\n          }}\n          onCollapseGroup={() => {\n            setCollapsedMap(collapsedMap.setCollapsedStatus(clickedItemData.item, true));\n          }}\n          onExpandAllGroups={() => {\n            setCollapsedMap(collapsedMap.setAllCollapsedStatus(false));\n          }}\n          onCollapseAllGroups={() => {\n            setCollapsedMap(collapsedMap.setAllCollapsedStatus(true));\n          }}\n          allGroupsCollapsed={Array.from(collapsedMap.values()).every((i) => i.collapsed)}\n          allGroupsExpanded={Array.from(collapsedMap.values()).every((i) => !i.collapsed)}\n          getExtraContextMenuButtons={getExtraContextMenuButtons}\n          selectedView={selectedView}\n          search={search}\n        />\n      )}\n    </div>\n  );\n};\n\nconst getStyles = () => ({\n  graph: css({\n    label: 'graph',\n    overflow: 'auto',\n    flexGrow: 1,\n    flexBasis: '50%',\n  }),\n  canvasContainer: css({\n    label: 'canvasContainer',\n    display: 'flex',\n  }),\n  canvasWrapper: css({\n    label: 'canvasWrapper',\n    cursor: 'pointer',\n    flex: 1,\n    overflow: 'hidden',\n  }),\n  sandwichMarker: css({\n    label: 'sandwichMarker',\n    writingMode: 'vertical-lr',\n    transform: 'rotate(180deg)',\n    overflow: 'hidden',\n    whiteSpace: 'nowrap',\n  }),\n  sandwichMarkerIcon: css({\n    label: 'sandwichMarkerIcon',\n    verticalAlign: 'baseline',\n  }),\n});\n\nexport const convertPixelCoordinatesToBarCoordinates = (\n  // position relative to the start of the graph\n  pos: { x: number; y: number },\n  root: LevelItem,\n  direction: 'children' | 'parents',\n  depth: number,\n  pixelsPerTick: number,\n  totalTicks: number,\n  rangeMin: number,\n  collapsedMap: CollapsedMap\n): LevelItem | undefined => {\n  let next: LevelItem | undefined = root;\n  let currentLevel = direction === 'children' ? 0 : depth - 1;\n  const levelIndex = Math.floor(pos.y / (PIXELS_PER_LEVEL / window.devicePixelRatio));\n  let found = undefined;\n\n  while (next) {\n    const node: LevelItem = next;\n    next = undefined;\n    if (currentLevel === levelIndex) {\n      found = node;\n      break;\n    }\n\n    const nextList = direction === 'children' ? node.children : node.parents || [];\n\n    for (const child of nextList) {\n      const xStart = getBarX(child.start, totalTicks, rangeMin, pixelsPerTick);\n      const xEnd = getBarX(child.start + child.value, totalTicks, rangeMin, pixelsPerTick);\n      if (xStart <= pos.x && pos.x < xEnd) {\n        next = child;\n        // Check if item is a collapsed item. if so also check if the item is the first collapsed item in the chain,\n        // which we render, or a child which we don't render. If it's a child in the chain then don't increase the\n        // level end effectively skip it.\n        const collapsedConfig = collapsedMap.get(child);\n        if (!collapsedConfig || !collapsedConfig.collapsed || collapsedConfig.items[0] === child) {\n          currentLevel = currentLevel + (direction === 'children' ? 1 : -1);\n        }\n        break;\n      }\n    }\n  }\n\n  return found;\n};\n\nexport default FlameGraphCanvas;\n","import { css } from '@emotion/css';\nimport { memo, ReactNode } from 'react';\n\nimport { getValueFormat, GrafanaTheme2 } from '@grafana/data';\nimport { Icon, IconButton, Tooltip, useStyles2 } from '@grafana/ui';\n\nimport { ClickedItemData } from '../types';\n\nimport { FlameGraphDataContainer } from './dataTransform';\n\ntype Props = {\n  data: FlameGraphDataContainer;\n  totalTicks: number;\n  onFocusPillClick: () => void;\n  onSandwichPillClick: () => void;\n  focusedItem?: ClickedItemData;\n  sandwichedLabel?: string;\n};\n\nconst FlameGraphMetadata = memo(\n  ({ data, focusedItem, totalTicks, sandwichedLabel, onFocusPillClick, onSandwichPillClick }: Props) => {\n    const styles = useStyles2(getStyles);\n    const parts: ReactNode[] = [];\n    const ticksVal = getValueFormat('short')(totalTicks);\n\n    const displayValue = data.valueDisplayProcessor(totalTicks);\n    let unitValue = displayValue.text + displayValue.suffix;\n    const unitTitle = data.getUnitTitle();\n    if (unitTitle === 'Count') {\n      if (!displayValue.suffix) {\n        // Makes sure we don't show 123undefined or something like that if suffix isn't defined\n        unitValue = displayValue.text;\n      }\n    }\n\n    parts.push(\n      <div className={styles.metadataPill} key={'default'}>\n        {unitValue} | {ticksVal.text}\n        {ticksVal.suffix} samples ({unitTitle})\n      </div>\n    );\n\n    if (sandwichedLabel) {\n      parts.push(\n        <Tooltip key={'sandwich'} content={sandwichedLabel} placement=\"top\">\n          <div>\n            <Icon size={'sm'} name={'angle-right'} />\n            <div className={styles.metadataPill}>\n              <Icon size={'sm'} name={'gf-show-context'} />{' '}\n              <span className={styles.metadataPillName}>\n                {sandwichedLabel.substring(sandwichedLabel.lastIndexOf('/') + 1)}\n              </span>\n              <IconButton\n                className={styles.pillCloseButton}\n                name={'times'}\n                size={'sm'}\n                onClick={onSandwichPillClick}\n                tooltip={'Remove sandwich view'}\n                aria-label={'Remove sandwich view'}\n              />\n            </div>\n          </div>\n        </Tooltip>\n      );\n    }\n\n    if (focusedItem) {\n      const percentValue = totalTicks > 0 ? Math.round(10000 * (focusedItem.item.value / totalTicks)) / 100 : 0;\n      const iconName = percentValue > 0 ? 'eye' : 'exclamation-circle';\n\n      parts.push(\n        <Tooltip key={'focus'} content={focusedItem.label} placement=\"top\">\n          <div>\n            <Icon size={'sm'} name={'angle-right'} />\n            <div className={styles.metadataPill}>\n              <Icon size={'sm'} name={iconName} />\n              &nbsp;{percentValue}% of total\n              <IconButton\n                className={styles.pillCloseButton}\n                name={'times'}\n                size={'sm'}\n                onClick={onFocusPillClick}\n                tooltip={'Remove focus'}\n                aria-label={'Remove focus'}\n              />\n            </div>\n          </div>\n        </Tooltip>\n      );\n    }\n\n    return <div className={styles.metadata}>{parts}</div>;\n  }\n);\n\nFlameGraphMetadata.displayName = 'FlameGraphMetadata';\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n  metadataPill: css({\n    label: 'metadataPill',\n    display: 'inline-flex',\n    alignItems: 'center',\n    background: theme.colors.background.secondary,\n    borderRadius: theme.shape.borderRadius(8),\n    padding: theme.spacing(0.5, 1),\n    fontSize: theme.typography.bodySmall.fontSize,\n    fontWeight: theme.typography.fontWeightMedium,\n    lineHeight: theme.typography.bodySmall.lineHeight,\n    color: theme.colors.text.secondary,\n  }),\n  pillCloseButton: css({\n    label: 'pillCloseButton',\n    verticalAlign: 'text-bottom',\n    margin: theme.spacing(0, 0.5),\n  }),\n  metadata: css({\n    display: 'flex',\n    alignItems: 'center',\n    justifyContent: 'center',\n    margin: '8px 0',\n  }),\n  metadataPillName: css({\n    label: 'metadataPillName',\n    maxWidth: '200px',\n    overflow: 'hidden',\n    textOverflow: 'ellipsis',\n    whiteSpace: 'nowrap',\n    marginLeft: theme.spacing(0.5),\n  }),\n});\n\nexport default FlameGraphMetadata;\n","// This component is based on logic from the flamebearer project\n// https://github.com/mapbox/flamebearer\n\n// ISC License\n\n// Copyright (c) 2018, Mapbox\n\n// Permission to use, copy, modify, and/or distribute this software for any purpose\n// with or without fee is hereby granted, provided that the above copyright notice\n// and this permission notice appear in all copies.\n\n// THE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\n// REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND\n// FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\n// INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS\n// OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER\n// TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF\n// THIS SOFTWARE.\nimport { css, cx } from '@emotion/css';\nimport { useEffect, useState } from 'react';\nimport * as React from 'react';\n\nimport { Icon } from '@grafana/ui';\n\nimport { PIXELS_PER_LEVEL } from '../constants';\nimport { ClickedItemData, ColorScheme, ColorSchemeDiff, SelectedView, TextAlign } from '../types';\n\nimport FlameGraphCanvas from './FlameGraphCanvas';\nimport { GetExtraContextMenuButtonsFunction } from './FlameGraphContextMenu';\nimport FlameGraphMetadata from './FlameGraphMetadata';\nimport { CollapsedMap, FlameGraphDataContainer, LevelItem } from './dataTransform';\n\ntype Props = {\n  data: FlameGraphDataContainer;\n  rangeMin: number;\n  rangeMax: number;\n  matchedLabels?: Set<string>;\n  setRangeMin: (range: number) => void;\n  setRangeMax: (range: number) => void;\n  style?: React.CSSProperties;\n  onItemFocused: (data: ClickedItemData) => void;\n  focusedItemData?: ClickedItemData;\n  textAlign: TextAlign;\n  sandwichItem?: string;\n  onSandwich: (label: string) => void;\n  onFocusPillClick: () => void;\n  onSandwichPillClick: () => void;\n  colorScheme: ColorScheme | ColorSchemeDiff;\n  showFlameGraphOnly?: boolean;\n  getExtraContextMenuButtons?: GetExtraContextMenuButtonsFunction;\n  collapsing?: boolean;\n  selectedView: SelectedView;\n  search: string;\n  collapsedMap: CollapsedMap;\n  setCollapsedMap: (collapsedMap: CollapsedMap) => void;\n};\n\nconst FlameGraph = ({\n  data,\n  rangeMin,\n  rangeMax,\n  matchedLabels,\n  setRangeMin,\n  setRangeMax,\n  onItemFocused,\n  focusedItemData,\n  textAlign,\n  onSandwich,\n  sandwichItem,\n  onFocusPillClick,\n  onSandwichPillClick,\n  colorScheme,\n  showFlameGraphOnly,\n  getExtraContextMenuButtons,\n  collapsing,\n  selectedView,\n  search,\n  collapsedMap,\n  setCollapsedMap,\n}: Props) => {\n  const styles = getStyles();\n\n  const [levels, setLevels] = useState<LevelItem[][]>();\n  const [levelsCallers, setLevelsCallers] = useState<LevelItem[][]>();\n  const [totalProfileTicks, setTotalProfileTicks] = useState<number>(0);\n  const [totalProfileTicksRight, setTotalProfileTicksRight] = useState<number>();\n  const [totalViewTicks, setTotalViewTicks] = useState<number>(0);\n\n  useEffect(() => {\n    if (data) {\n      let levels = data.getLevels();\n      let totalProfileTicks = levels.length ? levels[0][0].value : 0;\n      let totalProfileTicksRight = levels.length ? levels[0][0].valueRight : undefined;\n      let totalViewTicks = totalProfileTicks;\n      let levelsCallers = undefined;\n\n      if (sandwichItem) {\n        const [callers, callees] = data.getSandwichLevels(sandwichItem);\n        levels = callees;\n        levelsCallers = callers;\n        // We need this separate as in case of diff profile we want to compute diff colors based on the original ticks.\n        totalViewTicks = callees[0]?.[0]?.value ?? 0;\n      }\n      setLevels(levels);\n      setLevelsCallers(levelsCallers);\n      setTotalProfileTicks(totalProfileTicks);\n      setTotalProfileTicksRight(totalProfileTicksRight);\n      setTotalViewTicks(totalViewTicks);\n    }\n  }, [data, sandwichItem]);\n\n  if (!levels) {\n    return null;\n  }\n\n  const commonCanvasProps = {\n    data,\n    rangeMin,\n    rangeMax,\n    matchedLabels,\n    setRangeMin,\n    setRangeMax,\n    onItemFocused,\n    focusedItemData,\n    textAlign,\n    onSandwich,\n    colorScheme,\n    totalProfileTicks,\n    totalProfileTicksRight,\n    totalViewTicks,\n    showFlameGraphOnly,\n    collapsedMap,\n    setCollapsedMap,\n    getExtraContextMenuButtons,\n    collapsing,\n    search,\n    selectedView,\n  };\n  let canvas = null;\n\n  if (levelsCallers?.length) {\n    canvas = (\n      <>\n        <div className={styles.sandwichCanvasWrapper}>\n          <div className={styles.sandwichMarker}>\n            Callers\n            <Icon className={styles.sandwichMarkerIcon} name={'arrow-down'} />\n          </div>\n          <FlameGraphCanvas\n            {...commonCanvasProps}\n            root={levelsCallers[levelsCallers.length - 1][0]}\n            depth={levelsCallers.length}\n            direction={'parents'}\n            // We do not support collapsing in sandwich view for now.\n            collapsing={false}\n          />\n        </div>\n\n        <div className={styles.sandwichCanvasWrapper}>\n          <div className={cx(styles.sandwichMarker, styles.sandwichMarkerCalees)}>\n            <Icon className={styles.sandwichMarkerIcon} name={'arrow-up'} />\n            Callees\n          </div>\n          <FlameGraphCanvas\n            {...commonCanvasProps}\n            root={levels[0][0]}\n            depth={levels.length}\n            direction={'children'}\n            collapsing={false}\n          />\n        </div>\n      </>\n    );\n  } else if (levels?.length) {\n    canvas = (\n      <FlameGraphCanvas {...commonCanvasProps} root={levels[0][0]} depth={levels.length} direction={'children'} />\n    );\n  }\n\n  return (\n    <div className={styles.graph}>\n      <FlameGraphMetadata\n        data={data}\n        focusedItem={focusedItemData}\n        sandwichedLabel={sandwichItem}\n        totalTicks={totalViewTicks}\n        onFocusPillClick={onFocusPillClick}\n        onSandwichPillClick={onSandwichPillClick}\n      />\n      {canvas}\n    </div>\n  );\n};\n\nconst getStyles = () => ({\n  graph: css({\n    label: 'graph',\n    overflow: 'auto',\n    flexGrow: 1,\n    flexBasis: '50%',\n  }),\n  sandwichCanvasWrapper: css({\n    label: 'sandwichCanvasWrapper',\n    display: 'flex',\n    marginBottom: `${PIXELS_PER_LEVEL / window.devicePixelRatio}px`,\n  }),\n  sandwichMarker: css({\n    label: 'sandwichMarker',\n    writingMode: 'vertical-lr',\n    transform: 'rotate(180deg)',\n    overflow: 'hidden',\n    whiteSpace: 'nowrap',\n  }),\n  sandwichMarkerCalees: css({\n    label: 'sandwichMarkerCalees',\n    textAlign: 'right',\n  }),\n  sandwichMarkerIcon: css({\n    label: 'sandwichMarkerIcon',\n    verticalAlign: 'baseline',\n  }),\n});\n\nexport default FlameGraph;\n","import { groupBy } from 'lodash';\n\nimport { LevelItem } from './dataTransform';\n\ntype DataInterface = {\n  getLabel: (index: number) => string;\n};\n\n// Merge parent subtree of the roots for the callers tree in the sandwich view of the flame graph.\nexport function mergeParentSubtrees(roots: LevelItem[], data: DataInterface): LevelItem[][] {\n  const newRoots = getParentSubtrees(roots);\n  return mergeSubtrees(newRoots, data, 'parents');\n}\n\n// Returns a subtrees per root that will have the parents resized to the same value as the root. When doing callers\n// tree we need to keep proper sizes of the parents, before we merge them, so we correctly attribute to the parents\n// only the value it contributed to the root.\n// So if we have something like:\n// [0/////////////]\n// [1//][4/////][6]\n// [2]  [5/////]\n// [6]  [6/][8/]\n// [7]\n// Taking all the node with '6' will create:\n// [0][0/]\n// [1][4/]\n// [2][5/][0]\n// [6][6/][6]\n// Which we can later merge.\nfunction getParentSubtrees(roots: LevelItem[]) {\n  return roots.map((r) => {\n    if (!r.parents?.length) {\n      return r;\n    }\n\n    const newRoot = {\n      ...r,\n      children: [],\n    };\n    const stack: Array<{ child: undefined | LevelItem; parent: LevelItem }> = [\n      { child: newRoot, parent: r.parents[0] },\n    ];\n\n    while (stack.length) {\n      const args = stack.shift()!;\n      const newNode = {\n        ...args.parent,\n        children: args.child ? [args.child] : [],\n        parents: [],\n      };\n\n      if (args.child) {\n        newNode.value = args.child.value;\n        args.child.parents = [newNode];\n      }\n\n      if (args.parent.parents?.length) {\n        stack.push({ child: newNode, parent: args.parent.parents[0] });\n      }\n    }\n    return newRoot;\n  });\n}\n\n// Merge subtrees into a single tree. Returns an array of levels for easy rendering. It assumes roots are mergeable,\n// meaning they represent the same unit of work (same label). Then we walk the tree in a specified direction,\n// merging nodes with the same label and same parent/child into single bigger node. This copies the tree (and all nodes)\n// as we are creating new merged nodes and modifying the parents/children.\nexport function mergeSubtrees(\n  roots: LevelItem[],\n  data: DataInterface,\n  direction: 'parents' | 'children' = 'children'\n): LevelItem[][] {\n  const oppositeDirection = direction === 'parents' ? 'children' : 'parents';\n  const levels: LevelItem[][] = [];\n\n  // Loop instead of recursion to be sure we don't blow stack size limit and save some memory. Each stack item is\n  // basically a list of arrays you would pass to each level of recursion.\n  const stack: Array<{ previous: undefined | LevelItem; items: LevelItem[]; level: number }> = [\n    { previous: undefined, items: roots, level: 0 },\n  ];\n\n  while (stack.length) {\n    const args = stack.shift()!;\n    const indexes = args.items.flatMap((i) => i.itemIndexes);\n    const newItem: LevelItem = {\n      // We use the items value instead of value from the data frame, cause we could have changed it in the process\n      value: args.items.reduce((acc, i) => acc + i.value, 0),\n      itemIndexes: indexes,\n      // these will change later\n      children: [],\n      parents: [],\n      start: 0,\n      level: args.level,\n    };\n\n    levels[args.level] = levels[args.level] || [];\n    levels[args.level].push(newItem);\n\n    if (args.previous) {\n      // Not the first level, so we need to make sure we update previous items to keep the child/parent relationships\n      // and compute correct new start offset for the item.\n      newItem[oppositeDirection] = [args.previous];\n      const prevSiblingsVal =\n        args.previous[direction]?.reduce((acc, node) => {\n          return acc + node.value;\n        }, 0) || 0;\n      newItem.start = args.previous.start + prevSiblingsVal;\n      args.previous[direction]!.push(newItem);\n    }\n\n    const nextItems = args.items.flatMap((i) => i[direction] || []);\n    // Group by label which for now is the only identifier by which we decide if node represents the same unit of work.\n    const nextGroups = groupBy(nextItems, (c) => data.getLabel(c.itemIndexes[0]));\n    for (const g of Object.values(nextGroups)) {\n      stack.push({ previous: newItem, items: g, level: args.level + 1 });\n    }\n  }\n\n  // Reverse the levels if we are doing callers tree, so we return levels in the correct order.\n  if (direction === 'parents') {\n    levels.reverse();\n    levels.forEach((level, index) => {\n      level.forEach((item) => {\n        item.level = index;\n      });\n    });\n  }\n\n  return levels;\n}\n","import {\n  createTheme,\n  DataFrame,\n  DisplayProcessor,\n  Field,\n  FieldType,\n  getDisplayProcessor,\n  GrafanaTheme2,\n} from '@grafana/data';\n\nimport { SampleUnit } from '../types';\n\nimport { mergeParentSubtrees, mergeSubtrees } from './treeTransforms';\n\nexport type LevelItem = {\n  // Offset from the start of the level.\n  start: number;\n  // Value here can be different from a value of items in the data frame as for callers tree in sandwich view we have\n  // to trim the value to correspond only to the part used by the children in the subtree.\n  // In case of diff profile this is actually left + right value.\n  value: number;\n  // Only exists for diff profiles.\n  valueRight?: number;\n  // Index into the data frame. It is an array because for sandwich views we may be merging multiple items into single\n  // node.\n  itemIndexes: number[];\n  children: LevelItem[];\n  level: number;\n  parents?: LevelItem[];\n};\n\nexport type CollapseConfig = {\n  items: LevelItem[];\n  collapsed: boolean;\n};\n\n/**\n * Convert data frame with nested set format into array of level. This is mainly done for compatibility with current\n * rendering code.\n */\nexport function nestedSetToLevels(\n  container: FlameGraphDataContainer,\n  options?: Options\n): [LevelItem[][], Record<string, LevelItem[]>, CollapsedMap] {\n  const levels: LevelItem[][] = [];\n  let offset = 0;\n\n  let parent: LevelItem | undefined = undefined;\n  const uniqueLabels: Record<string, LevelItem[]> = {};\n\n  for (let i = 0; i < container.data.length; i++) {\n    const currentLevel = container.getLevel(i);\n    const prevLevel = i > 0 ? container.getLevel(i - 1) : undefined;\n\n    levels[currentLevel] = levels[currentLevel] || [];\n\n    if (prevLevel && prevLevel >= currentLevel) {\n      // We are going down a level or staying at the same level, so we are adding a sibling to the last item in a level.\n      // So we have to compute the correct offset based on the last sibling.\n      const lastSibling = levels[currentLevel][levels[currentLevel].length - 1];\n      offset =\n        lastSibling.start +\n        container.getValue(lastSibling.itemIndexes[0]) +\n        container.getValueRight(lastSibling.itemIndexes[0]);\n      // we assume there is always a single root node so lastSibling should always have a parent.\n      // Also it has to have the same parent because of how the items are ordered.\n      parent = lastSibling.parents![0];\n    }\n\n    const newItem: LevelItem = {\n      itemIndexes: [i],\n      value: container.getValue(i) + container.getValueRight(i),\n      valueRight: container.isDiffFlamegraph() ? container.getValueRight(i) : undefined,\n      start: offset,\n      parents: parent && [parent],\n      children: [],\n      level: currentLevel,\n    };\n\n    if (uniqueLabels[container.getLabel(i)]) {\n      uniqueLabels[container.getLabel(i)].push(newItem);\n    } else {\n      uniqueLabels[container.getLabel(i)] = [newItem];\n    }\n\n    if (parent) {\n      parent.children.push(newItem);\n    }\n\n    parent = newItem;\n    levels[currentLevel].push(newItem);\n  }\n\n  const collapsedMapContainer = new CollapsedMapBuilder(options?.collapsingThreshold);\n  if (options?.collapsing) {\n    // We collapse similar items here, where it seems like parent and child are the same thing and so the distinction\n    // isn't that important. We create a map of items that should be collapsed together. We need to do it with complete\n    // tree as we need to know how many children an item has to know if we can collapse it.\n    collapsedMapContainer.addTree(levels[0][0]);\n  }\n\n  return [levels, uniqueLabels, collapsedMapContainer.getCollapsedMap()];\n}\n\n/**\n * Small wrapper around the map of items that should be visually collapsed in the flame graph. Reason this is a wrapper\n * is that we want to make sure that when this is in the state we don't update the map directly but create a new map\n * and to have a place for the methods to collapse/expand either single item or all the items.\n */\nexport class CollapsedMap {\n  // The levelItem used as a key is the item that will always be rendered in the flame graph. The config.items are all\n  // the items that are in the group and if the config.collapsed is true they will be hidden.\n  private map: Map<LevelItem, CollapseConfig> = new Map();\n\n  constructor(map?: Map<LevelItem, CollapseConfig>) {\n    this.map = map || new Map();\n  }\n\n  get(item: LevelItem) {\n    return this.map.get(item);\n  }\n\n  keys() {\n    return this.map.keys();\n  }\n\n  values() {\n    return this.map.values();\n  }\n\n  size() {\n    return this.map.size;\n  }\n\n  setCollapsedStatus(item: LevelItem, collapsed: boolean) {\n    const newMap = new Map(this.map);\n    const collapsedConfig = this.map.get(item)!;\n    const newConfig = { ...collapsedConfig, collapsed };\n    for (const item of collapsedConfig.items) {\n      newMap.set(item, newConfig);\n    }\n    return new CollapsedMap(newMap);\n  }\n\n  setAllCollapsedStatus(collapsed: boolean) {\n    const newMap = new Map(this.map);\n    for (const item of this.map.keys()) {\n      const collapsedConfig = this.map.get(item)!;\n      const newConfig = { ...collapsedConfig, collapsed };\n      newMap.set(item, newConfig);\n    }\n\n    return new CollapsedMap(newMap);\n  }\n}\n\n/**\n * Similar to CollapsedMap but this one is mutable and used during transformation of the dataFrame data into structure\n * we use for rendering. This should not be passed to the React components.\n */\nexport class CollapsedMapBuilder {\n  private map = new Map();\n  private threshold = 0.99;\n\n  constructor(threshold?: number) {\n    if (threshold !== undefined) {\n      this.threshold = threshold;\n    }\n  }\n\n  addTree(root: LevelItem) {\n    const stack = [root];\n    while (stack.length) {\n      const current = stack.shift()!;\n\n      if (current.parents?.length) {\n        this.addItem(current, current.parents[0]);\n      }\n\n      if (current.children.length) {\n        stack.unshift(...current.children);\n      }\n    }\n  }\n\n  // The heuristics here is pretty simple right now. Just check if it's single child and if we are within threshold.\n  // We assume items with small self just aren't too important while we cannot really collapse items with siblings\n  // as it's not clear what to do with said sibling.\n  addItem(item: LevelItem, parent?: LevelItem) {\n    if (parent && item.value > parent.value * this.threshold && parent.children.length === 1) {\n      if (this.map.has(parent)) {\n        const config = this.map.get(parent)!;\n        this.map.set(item, config);\n        config.items.push(item);\n      } else {\n        const config = { items: [parent, item], collapsed: true };\n        this.map.set(parent, config);\n        this.map.set(item, config);\n      }\n    }\n  }\n\n  getCollapsedMap() {\n    return new CollapsedMap(this.map);\n  }\n}\n\nexport function getMessageCheckFieldsResult(wrongFields: CheckFieldsResult) {\n  if (wrongFields.missingFields.length) {\n    return `Data is missing fields: ${wrongFields.missingFields.join(', ')}`;\n  }\n\n  if (wrongFields.wrongTypeFields.length) {\n    return `Data has fields of wrong type: ${wrongFields.wrongTypeFields\n      .map((f) => `${f.name} has type ${f.type} but should be ${f.expectedTypes.join(' or ')}`)\n      .join(', ')}`;\n  }\n\n  return '';\n}\n\nexport type CheckFieldsResult = {\n  wrongTypeFields: Array<{ name: string; expectedTypes: FieldType[]; type: FieldType }>;\n  missingFields: string[];\n};\n\nexport function checkFields(data: DataFrame): CheckFieldsResult | undefined {\n  const fields: Array<[string, FieldType[]]> = [\n    ['label', [FieldType.string, FieldType.enum]],\n    ['level', [FieldType.number]],\n    ['value', [FieldType.number]],\n    ['self', [FieldType.number]],\n  ];\n\n  const missingFields = [];\n  const wrongTypeFields = [];\n\n  for (const field of fields) {\n    const [name, types] = field;\n    const frameField = data?.fields.find((f) => f.name === name);\n    if (!frameField) {\n      missingFields.push(name);\n      continue;\n    }\n    if (!types.includes(frameField.type)) {\n      wrongTypeFields.push({ name, expectedTypes: types, type: frameField.type });\n    }\n  }\n\n  if (missingFields.length > 0 || wrongTypeFields.length > 0) {\n    return {\n      wrongTypeFields,\n      missingFields,\n    };\n  }\n  return undefined;\n}\n\nexport type Options = {\n  collapsing: boolean;\n  collapsingThreshold?: number;\n};\n\nexport class FlameGraphDataContainer {\n  data: DataFrame;\n  options: Options;\n\n  labelField: Field;\n  levelField: Field;\n  valueField: Field;\n  selfField: Field;\n\n  // Optional fields for diff view\n  valueRightField?: Field;\n  selfRightField?: Field;\n\n  labelDisplayProcessor: DisplayProcessor;\n  valueDisplayProcessor: DisplayProcessor;\n  uniqueLabels: string[];\n\n  private levels: LevelItem[][] | undefined;\n  private uniqueLabelsMap: Record<string, LevelItem[]> | undefined;\n  private collapsedMap: CollapsedMap | undefined;\n\n  constructor(data: DataFrame, options: Options, theme: GrafanaTheme2 = createTheme()) {\n    this.data = data;\n    this.options = options;\n\n    const wrongFields = checkFields(data);\n    if (wrongFields) {\n      throw new Error(getMessageCheckFieldsResult(wrongFields));\n    }\n\n    this.labelField = data.fields.find((f) => f.name === 'label')!;\n    this.levelField = data.fields.find((f) => f.name === 'level')!;\n    this.valueField = data.fields.find((f) => f.name === 'value')!;\n    this.selfField = data.fields.find((f) => f.name === 'self')!;\n\n    this.valueRightField = data.fields.find((f) => f.name === 'valueRight')!;\n    this.selfRightField = data.fields.find((f) => f.name === 'selfRight')!;\n\n    if ((this.valueField || this.selfField) && !(this.valueField && this.selfField)) {\n      throw new Error(\n        'Malformed dataFrame: both valueRight and selfRight has to be present if one of them is present.'\n      );\n    }\n\n    const enumConfig = this.labelField?.config?.type?.enum;\n    // Label can actually be an enum field so depending on that we have to access it through display processor. This is\n    // both a backward compatibility but also to allow using a simple dataFrame without enum config. This would allow\n    // users to use this panel with correct query from data sources that do not return profiles natively.\n    if (enumConfig) {\n      this.labelDisplayProcessor = getDisplayProcessor({ field: this.labelField, theme });\n      this.uniqueLabels = enumConfig.text || [];\n    } else {\n      this.labelDisplayProcessor = (value) => ({\n        text: value + '',\n        numeric: 0,\n      });\n      this.uniqueLabels = [...new Set<string>(this.labelField.values)];\n    }\n\n    this.valueDisplayProcessor = getDisplayProcessor({\n      field: this.valueField,\n      theme,\n    });\n  }\n\n  isDiffFlamegraph() {\n    return Boolean(this.valueRightField && this.selfRightField);\n  }\n\n  getLabel(index: number) {\n    return this.labelDisplayProcessor(this.labelField.values[index]).text;\n  }\n\n  getLevel(index: number) {\n    return this.levelField.values[index];\n  }\n\n  getValue(index: number | number[]) {\n    return fieldAccessor(this.valueField, index);\n  }\n\n  getValueRight(index: number | number[]) {\n    return fieldAccessor(this.valueRightField, index);\n  }\n\n  getSelf(index: number | number[]) {\n    return fieldAccessor(this.selfField, index);\n  }\n\n  getSelfRight(index: number | number[]) {\n    return fieldAccessor(this.selfRightField, index);\n  }\n\n  getSelfDisplay(index: number | number[]) {\n    return this.valueDisplayProcessor(this.getSelf(index));\n  }\n\n  getUniqueLabels() {\n    return this.uniqueLabels;\n  }\n\n  getUnitTitle() {\n    switch (this.valueField.config.unit) {\n      case SampleUnit.Bytes:\n        return 'RAM';\n      case SampleUnit.Nanoseconds:\n        return 'Time';\n    }\n\n    return 'Count';\n  }\n\n  getLevels() {\n    this.initLevels();\n    return this.levels!;\n  }\n\n  getSandwichLevels(label: string): [LevelItem[][], LevelItem[][]] {\n    const nodes = this.getNodesWithLabel(label);\n\n    if (!nodes?.length) {\n      return [[], []];\n    }\n\n    const callers = mergeParentSubtrees(nodes, this);\n    const callees = mergeSubtrees(nodes, this);\n\n    return [callers, callees];\n  }\n\n  getNodesWithLabel(label: string) {\n    this.initLevels();\n    return this.uniqueLabelsMap![label];\n  }\n\n  getCollapsedMap() {\n    this.initLevels();\n    return this.collapsedMap!;\n  }\n\n  private initLevels() {\n    if (!this.levels) {\n      const [levels, uniqueLabelsMap, collapsedMap] = nestedSetToLevels(this, this.options);\n      this.levels = levels;\n      this.uniqueLabelsMap = uniqueLabelsMap;\n      this.collapsedMap = collapsedMap;\n    }\n  }\n}\n\n// Access field value with either single index or array of indexes. This is needed as we sometimes merge multiple\n// into one, and we want to access aggregated values.\nfunction fieldAccessor(field: Field | undefined, index: number | number[]) {\n  if (!field) {\n    return 0;\n  }\n  let indexArray: number[] = typeof index === 'number' ? [index] : index;\n  return indexArray.reduce((acc, index) => {\n    return acc + field.values[index];\n  }, 0);\n}\n","import { css, cx } from '@emotion/css';\nimport { useEffect, useState } from 'react';\nimport * as React from 'react';\nimport useDebounce from 'react-use/lib/useDebounce';\nimport usePrevious from 'react-use/lib/usePrevious';\n\nimport { GrafanaTheme2, SelectableValue } from '@grafana/data';\nimport { Button, ButtonGroup, Dropdown, Input, Menu, RadioButtonGroup, useStyles2 } from '@grafana/ui';\n\nimport { byPackageGradient, byValueGradient, diffColorBlindGradient, diffDefaultGradient } from './FlameGraph/colors';\nimport { CollapsedMap } from './FlameGraph/dataTransform';\nimport { MIN_WIDTH_TO_SHOW_BOTH_TOPTABLE_AND_FLAMEGRAPH } from './constants';\nimport { ColorScheme, ColorSchemeDiff, SelectedView, TextAlign } from './types';\n\ntype Props = {\n  search: string;\n  setSearch: (search: string) => void;\n  selectedView: SelectedView;\n  setSelectedView: (view: SelectedView) => void;\n  containerWidth: number;\n  onReset: () => void;\n  textAlign: TextAlign;\n  onTextAlignChange: (align: TextAlign) => void;\n  showResetButton: boolean;\n  colorScheme: ColorScheme | ColorSchemeDiff;\n  onColorSchemeChange: (colorScheme: ColorScheme | ColorSchemeDiff) => void;\n  stickyHeader: boolean;\n  vertical?: boolean;\n  isDiffMode: boolean;\n  setCollapsedMap: (collapsedMap: CollapsedMap) => void;\n  collapsedMap: CollapsedMap;\n\n  extraHeaderElements?: React.ReactNode;\n};\n\nconst FlameGraphHeader = ({\n  search,\n  setSearch,\n  selectedView,\n  setSelectedView,\n  containerWidth,\n  onReset,\n  textAlign,\n  onTextAlignChange,\n  showResetButton,\n  colorScheme,\n  onColorSchemeChange,\n  stickyHeader,\n  extraHeaderElements,\n  vertical,\n  isDiffMode,\n  setCollapsedMap,\n  collapsedMap,\n}: Props) => {\n  const styles = useStyles2(getStyles);\n  const [localSearch, setLocalSearch] = useSearchInput(search, setSearch);\n\n  const suffix =\n    localSearch !== '' ? (\n      <Button\n        icon=\"times\"\n        fill=\"text\"\n        size=\"sm\"\n        onClick={() => {\n          // We could set only one and wait them to sync but there is no need to debounce this.\n          setSearch('');\n          setLocalSearch('');\n        }}\n      >\n        Clear\n      </Button>\n    ) : null;\n\n  return (\n    <div className={cx(styles.header, { [styles.stickyHeader]: stickyHeader })}>\n      <div className={styles.inputContainer}>\n        <Input\n          value={localSearch || ''}\n          onChange={(v) => {\n            setLocalSearch(v.currentTarget.value);\n          }}\n          placeholder={'Search...'}\n          suffix={suffix}\n        />\n      </div>\n\n      <div className={styles.rightContainer}>\n        {showResetButton && (\n          <Button\n            variant={'secondary'}\n            fill={'outline'}\n            size={'sm'}\n            icon={'history-alt'}\n            tooltip={'Reset focus and sandwich state'}\n            onClick={() => {\n              onReset();\n            }}\n            className={styles.buttonSpacing}\n            aria-label={'Reset focus and sandwich state'}\n          />\n        )}\n        <ColorSchemeButton value={colorScheme} onChange={onColorSchemeChange} isDiffMode={isDiffMode} />\n        <ButtonGroup className={styles.buttonSpacing}>\n          <Button\n            variant={'secondary'}\n            fill={'outline'}\n            size={'sm'}\n            tooltip={'Expand all groups'}\n            onClick={() => {\n              setCollapsedMap(collapsedMap.setAllCollapsedStatus(false));\n            }}\n            aria-label={'Expand all groups'}\n            icon={'angle-double-down'}\n            disabled={selectedView === SelectedView.TopTable}\n          />\n          <Button\n            variant={'secondary'}\n            fill={'outline'}\n            size={'sm'}\n            tooltip={'Collapse all groups'}\n            onClick={() => {\n              setCollapsedMap(collapsedMap.setAllCollapsedStatus(true));\n            }}\n            aria-label={'Collapse all groups'}\n            icon={'angle-double-up'}\n            disabled={selectedView === SelectedView.TopTable}\n          />\n        </ButtonGroup>\n        <RadioButtonGroup<TextAlign>\n          size=\"sm\"\n          disabled={selectedView === SelectedView.TopTable}\n          options={alignOptions}\n          value={textAlign}\n          onChange={onTextAlignChange}\n          className={styles.buttonSpacing}\n        />\n        <RadioButtonGroup<SelectedView>\n          size=\"sm\"\n          options={getViewOptions(containerWidth, vertical)}\n          value={selectedView}\n          onChange={setSelectedView}\n        />\n        {extraHeaderElements && <div className={styles.extraElements}>{extraHeaderElements}</div>}\n      </div>\n    </div>\n  );\n};\n\ntype ColorSchemeButtonProps = {\n  value: ColorScheme | ColorSchemeDiff;\n  onChange: (colorScheme: ColorScheme | ColorSchemeDiff) => void;\n  isDiffMode: boolean;\n};\nfunction ColorSchemeButton(props: ColorSchemeButtonProps) {\n  // TODO: probably create separate getStyles\n  const styles = useStyles2(getStyles);\n  let menu = (\n    <Menu>\n      <Menu.Item label=\"By package name\" onClick={() => props.onChange(ColorScheme.PackageBased)} />\n      <Menu.Item label=\"By value\" onClick={() => props.onChange(ColorScheme.ValueBased)} />\n    </Menu>\n  );\n\n  // Show a bit different gradient as a way to indicate selected value\n  const colorDotStyle =\n    {\n      [ColorScheme.ValueBased]: styles.colorDotByValue,\n      [ColorScheme.PackageBased]: styles.colorDotByPackage,\n      [ColorSchemeDiff.DiffColorBlind]: styles.colorDotDiffColorBlind,\n      [ColorSchemeDiff.Default]: styles.colorDotDiffDefault,\n    }[props.value] || styles.colorDotByValue;\n\n  let contents = <span className={cx(styles.colorDot, colorDotStyle)} />;\n\n  if (props.isDiffMode) {\n    menu = (\n      <Menu>\n        <Menu.Item label=\"Default (green to red)\" onClick={() => props.onChange(ColorSchemeDiff.Default)} />\n        <Menu.Item label=\"Color blind (blue to red)\" onClick={() => props.onChange(ColorSchemeDiff.DiffColorBlind)} />\n      </Menu>\n    );\n\n    contents = (\n      <div className={cx(styles.colorDotDiff, colorDotStyle)}>\n        <div>-100% (removed)</div>\n        <div>0%</div>\n        <div>+100% (added)</div>\n      </div>\n    );\n  }\n\n  return (\n    <Dropdown overlay={menu}>\n      <Button\n        variant={'secondary'}\n        fill={'outline'}\n        size={'sm'}\n        tooltip={'Change color scheme'}\n        onClick={() => {}}\n        className={styles.buttonSpacing}\n        aria-label={'Change color scheme'}\n      >\n        {contents}\n      </Button>\n    </Dropdown>\n  );\n}\n\nconst alignOptions: Array<SelectableValue<TextAlign>> = [\n  { value: 'left', description: 'Align text left', icon: 'align-left' },\n  { value: 'right', description: 'Align text right', icon: 'align-right' },\n];\n\nfunction getViewOptions(width: number, vertical?: boolean): Array<SelectableValue<SelectedView>> {\n  let viewOptions: Array<{ value: SelectedView; label: string; description: string }> = [\n    { value: SelectedView.TopTable, label: 'Top Table', description: 'Only show top table' },\n    { value: SelectedView.FlameGraph, label: 'Flame Graph', description: 'Only show flame graph' },\n  ];\n\n  if (width >= MIN_WIDTH_TO_SHOW_BOTH_TOPTABLE_AND_FLAMEGRAPH || vertical) {\n    viewOptions.push({\n      value: SelectedView.Both,\n      label: 'Both',\n      description: 'Show both the top table and flame graph',\n    });\n  }\n\n  return viewOptions;\n}\n\nfunction useSearchInput(\n  search: string,\n  setSearch: (search: string) => void\n): [string | undefined, (search: string) => void] {\n  const [localSearchState, setLocalSearchState] = useState(search);\n  const prevSearch = usePrevious(search);\n\n  // Debouncing cause changing parent search triggers rerender on both the flamegraph and table\n  useDebounce(\n    () => {\n      setSearch(localSearchState);\n    },\n    250,\n    [localSearchState]\n  );\n\n  // Make sure we still handle updates from parent (from clicking on a table item for example). We check if the parent\n  // search value changed to something that isn't our local value.\n  useEffect(() => {\n    if (prevSearch !== search && search !== localSearchState) {\n      setLocalSearchState(search);\n    }\n  }, [search, prevSearch, localSearchState]);\n\n  return [localSearchState, setLocalSearchState];\n}\n\nconst getStyles = (theme: GrafanaTheme2) => ({\n  header: css({\n    label: 'header',\n    display: 'flex',\n    flexWrap: 'wrap',\n    justifyContent: 'space-between',\n    width: '100%',\n    top: 0,\n    gap: theme.spacing(1),\n    marginTop: theme.spacing(1),\n  }),\n  stickyHeader: css({\n    zIndex: theme.zIndex.navbarFixed,\n    position: 'sticky',\n    background: theme.colors.background.primary,\n  }),\n  inputContainer: css({\n    label: 'inputContainer',\n    flexGrow: 1,\n    minWidth: '150px',\n    maxWidth: '350px',\n  }),\n  rightContainer: css({\n    label: 'rightContainer',\n    display: 'flex',\n    alignItems: 'flex-start',\n    flexWrap: 'wrap',\n  }),\n  buttonSpacing: css({\n    label: 'buttonSpacing',\n    marginRight: theme.spacing(1),\n  }),\n  resetButton: css({\n    label: 'resetButton',\n    display: 'flex',\n    marginRight: theme.spacing(2),\n  }),\n  resetButtonIconWrapper: css({\n    label: 'resetButtonIcon',\n    padding: '0 5px',\n    color: theme.colors.text.disabled,\n  }),\n  colorDot: css({\n    label: 'colorDot',\n    display: 'inline-block',\n    width: '10px',\n    height: '10px',\n    // eslint-disable-next-line @grafana/no-border-radius-literal\n    borderRadius: '50%',\n  }),\n  colorDotDiff: css({\n    label: 'colorDotDiff',\n    display: 'flex',\n    width: '200px',\n    height: '12px',\n    color: 'white',\n    fontSize: 9,\n    lineHeight: 1.3,\n    fontWeight: 300,\n    justifyContent: 'space-between',\n    padding: '0 2px',\n    // We have a specific sizing for this so probably makes sense to use hardcoded value here\n    // eslint-disable-next-line @grafana/no-border-radius-literal\n    borderRadius: '2px',\n  }),\n  colorDotByValue: css({\n    label: 'colorDotByValue',\n    background: byValueGradient,\n  }),\n  colorDotByPackage: css({\n    label: 'colorDotByPackage',\n    background: byPackageGradient,\n  }),\n  colorDotDiffDefault: css({\n    label: 'colorDotDiffDefault',\n    background: diffDefaultGradient,\n  }),\n  colorDotDiffColorBlind: css({\n    label: 'colorDotDiffColorBlind',\n    background: diffColorBlindGradient,\n  }),\n  extraElements: css({\n    label: 'extraElements',\n    marginLeft: theme.spacing(1),\n  }),\n});\n\nexport default FlameGraphHeader;\n","import { css } from '@emotion/css';\nimport { memo, useMemo, useState } from 'react';\nimport AutoSizer from 'react-virtualized-auto-sizer';\n\nimport {\n  applyFieldOverrides,\n  DataFrame,\n  DataLinkClickEvent,\n  Field,\n  FieldType,\n  GrafanaTheme2,\n  MappingType,\n} from '@grafana/data';\nimport {\n  IconButton,\n  Table,\n  TableCellDisplayMode,\n  TableCustomCellOptions,\n  TableFieldOptions,\n  TableSortByFieldState,\n  useStyles2,\n  useTheme2,\n} from '@grafana/ui';\n\nimport { diffColorBlindColors, diffDefaultColors } from '../FlameGraph/colors';\nimport { FlameGraphDataContainer } from '../FlameGraph/dataTransform';\nimport { TOP_TABLE_COLUMN_WIDTH } from '../constants';\nimport { ColorScheme, ColorSchemeDiff, TableData } from '../types';\n\ntype Props = {\n  data: FlameGraphDataContainer;\n  onSymbolClick: (symbol: string) => void;\n  // This is used for highlighting the search button in case there is exact match.\n  search?: string;\n  // We use these to filter out rows in the table if users is doing text search.\n  matchedLabels?: Set<string>;\n  sandwichItem?: string;\n  onSearch: (str: string) => void;\n  onSandwich: (str?: string) => void;\n  onTableSort?: (sort: string) => void;\n  colorScheme: ColorScheme | ColorSchemeDiff;\n};\n\nconst FlameGraphTopTableContainer = memo(\n  ({\n    data,\n    onSymbolClick,\n    search,\n    matchedLabels,\n    onSearch,\n    sandwichItem,\n    onSandwich,\n    onTableSort,\n    colorScheme,\n  }: Props) => {\n    const table = useMemo(() => {\n      // Group the data by label, we show only one row per label and sum the values\n      // TODO: should be by filename + funcName + linenumber?\n      let filteredTable: { [key: string]: TableData } = {};\n      for (let i = 0; i < data.data.length; i++) {\n        const value = data.getValue(i);\n        const valueRight = data.getValueRight(i);\n        const self = data.getSelf(i);\n        const label = data.getLabel(i);\n\n        // If user is doing text search we filter out labels in the same way we highlight them in flame graph.\n        if (!matchedLabels || matchedLabels.has(label)) {\n          filteredTable[label] = filteredTable[label] || {};\n          filteredTable[label].self = filteredTable[label].self ? filteredTable[label].self + self : self;\n          filteredTable[label].total = filteredTable[label].total ? filteredTable[label].total + value : value;\n          filteredTable[label].totalRight = filteredTable[label].totalRight\n            ? filteredTable[label].totalRight + valueRight\n            : valueRight;\n        }\n      }\n      return filteredTable;\n    }, [data, matchedLabels]);\n\n    const styles = useStyles2(getStyles);\n    const theme = useTheme2();\n\n    const [sort, setSort] = useState<TableSortByFieldState[]>([{ displayName: 'Self', desc: true }]);\n\n    return (\n      <div className={styles.topTableContainer} data-testid=\"topTable\">\n        <AutoSizer style={{ width: '100%' }}>\n          {({ width, height }) => {\n            if (width < 3 || height < 3) {\n              return null;\n            }\n\n            const frame = buildTableDataFrame(\n              data,\n              table,\n              width,\n              onSymbolClick,\n              onSearch,\n              onSandwich,\n              theme,\n              colorScheme,\n              search,\n              sandwichItem\n            );\n            return (\n              <Table\n                initialSortBy={sort}\n                onSortByChange={(s) => {\n                  if (s && s.length) {\n                    onTableSort?.(s[0].displayName + '_' + (s[0].desc ? 'desc' : 'asc'));\n                  }\n                  setSort(s);\n                }}\n                data={frame}\n                width={width}\n                height={height}\n              />\n            );\n          }}\n        </AutoSizer>\n      </div>\n    );\n  }\n);\n\nFlameGraphTopTableContainer.displayName = 'FlameGraphTopTableContainer';\n\nfunction buildTableDataFrame(\n  data: FlameGraphDataContainer,\n  table: { [key: string]: TableData },\n  width: number,\n  onSymbolClick: (str: string) => void,\n  onSearch: (str: string) => void,\n  onSandwich: (str?: string) => void,\n  theme: GrafanaTheme2,\n  colorScheme: ColorScheme | ColorSchemeDiff,\n  search?: string,\n  sandwichItem?: string\n): DataFrame {\n  const actionField: Field = createActionField(onSandwich, onSearch, search, sandwichItem);\n\n  const symbolField: Field = {\n    type: FieldType.string,\n    name: 'Symbol',\n    values: [],\n    config: {\n      custom: { width: width - actionColumnWidth - TOP_TABLE_COLUMN_WIDTH * 2 },\n      links: [\n        {\n          title: 'Highlight symbol',\n          url: '',\n          onClick: (e: DataLinkClickEvent) => {\n            const field: Field = e.origin.field;\n            const value = field.values[e.origin.rowIndex];\n            onSymbolClick(value);\n          },\n        },\n      ],\n    },\n  };\n\n  let frame;\n\n  if (data.isDiffFlamegraph()) {\n    symbolField.config.custom.width = width - actionColumnWidth - TOP_TABLE_COLUMN_WIDTH * 3;\n\n    const baselineField = createNumberField('Baseline', 'percent');\n    const comparisonField = createNumberField('Comparison', 'percent');\n    const diffField = createNumberField('Diff', 'percent');\n    diffField.config.custom.cellOptions.type = TableCellDisplayMode.ColorText;\n\n    const [removeColor, addColor] =\n      colorScheme === ColorSchemeDiff.DiffColorBlind\n        ? [diffColorBlindColors[0], diffColorBlindColors[2]]\n        : [diffDefaultColors[0], diffDefaultColors[2]];\n\n    diffField.config.mappings = [\n      { type: MappingType.ValueToText, options: { [Infinity]: { text: 'new', color: addColor } } },\n      { type: MappingType.ValueToText, options: { [-100]: { text: 'removed', color: removeColor } } },\n      { type: MappingType.RangeToText, options: { from: 0, to: Infinity, result: { color: addColor } } },\n      { type: MappingType.RangeToText, options: { from: -Infinity, to: 0, result: { color: removeColor } } },\n    ];\n\n    // For this we don't really consider sandwich view even though you can switch it on.\n    const levels = data.getLevels();\n    const totalTicks = levels.length ? levels[0][0].value : 0;\n    const totalTicksRight = levels.length ? levels[0][0].valueRight : undefined;\n\n    for (let key in table) {\n      actionField.values.push(null);\n      symbolField.values.push(key);\n\n      const ticksLeft = table[key].total;\n      const ticksRight = table[key].totalRight;\n\n      // We are iterating over table of the data so totalTicksRight needs to be defined\n      const totalTicksLeft = totalTicks - totalTicksRight!;\n\n      const percentageLeft = Math.round((10000 * ticksLeft) / totalTicksLeft) / 100;\n      const percentageRight = Math.round((10000 * ticksRight) / totalTicksRight!) / 100;\n\n      const diff = ((percentageRight - percentageLeft) / percentageLeft) * 100;\n\n      diffField.values.push(diff);\n      baselineField.values.push(percentageLeft);\n      comparisonField.values.push(percentageRight);\n    }\n\n    frame = {\n      fields: [actionField, symbolField, baselineField, comparisonField, diffField],\n      length: symbolField.values.length,\n    };\n  } else {\n    const selfField = createNumberField('Self', data.selfField.config.unit);\n    const totalField = createNumberField('Total', data.valueField.config.unit);\n\n    for (let key in table) {\n      actionField.values.push(null);\n      symbolField.values.push(key);\n      selfField.values.push(table[key].self);\n      totalField.values.push(table[key].total);\n    }\n\n    frame = { fields: [actionField, symbolField, selfField, totalField], length: symbolField.values.length };\n  }\n\n  const dataFrames = applyFieldOverrides({\n    data: [frame],\n    fieldConfig: {\n      defaults: {},\n      overrides: [],\n    },\n    replaceVariables: (value: string) => value,\n    theme,\n  });\n\n  return dataFrames[0];\n}\n\nfunction createNumberField(name: string, unit?: string): Field {\n  const tableFieldOptions: TableFieldOptions = {\n    width: TOP_TABLE_COLUMN_WIDTH,\n    align: 'auto',\n    inspect: false,\n    cellOptions: { type: TableCellDisplayMode.Auto },\n  };\n\n  return {\n    type: FieldType.number,\n    name,\n    values: [],\n    config: {\n      unit,\n      custom: tableFieldOptions,\n    },\n  };\n}\n\nconst actionColumnWidth = 61;\n\nfunction createActionField(\n  onSandwich: (str?: string) => void,\n  onSearch: (str: string) => void,\n  search?: string,\n  sandwichItem?: string\n): Field {\n  const options: TableCustomCellOptions = {\n    type: TableCellDisplayMode.Custom,\n    cellComponent: (props) => {\n      return (\n        <ActionCell\n          frame={props.frame}\n          onSandwich={onSandwich}\n          onSearch={onSearch}\n          search={search}\n          sandwichItem={sandwichItem}\n          rowIndex={props.rowIndex}\n        />\n      );\n    },\n  };\n\n  const actionFieldTableConfig: TableFieldOptions = {\n    filterable: false,\n    width: actionColumnWidth,\n    hideHeader: true,\n    inspect: false,\n    align: 'auto',\n    cellOptions: options,\n  };\n\n  return {\n    type: FieldType.number,\n    name: 'actions',\n    values: [],\n    config: {\n      custom: actionFieldTableConfig,\n    },\n  };\n}\n\ntype ActionCellProps = {\n  frame: DataFrame;\n  rowIndex: number;\n  search?: string;\n  sandwichItem?: string;\n  onSearch: (symbol: string) => void;\n  onSandwich: (symbol: string) => void;\n};\n\nfunction ActionCell(props: ActionCellProps) {\n  const styles = getStylesActionCell();\n  const symbol = props.frame.fields.find((f: Field) => f.name === 'Symbol')?.values[props.rowIndex];\n  const isSearched = props.search === symbol;\n  const isSandwiched = props.sandwichItem === symbol;\n\n  return (\n    <div className={styles.actionCellWrapper}>\n      <IconButton\n        className={styles.actionCellButton}\n        name={'search'}\n        variant={isSearched ? 'primary' : 'secondary'}\n        tooltip={isSearched ? 'Clear from search' : 'Search for symbol'}\n        aria-label={isSearched ? 'Clear from search' : 'Search for symbol'}\n        onClick={() => {\n          props.onSearch(isSearched ? '' : symbol);\n        }}\n      />\n      <IconButton\n        className={styles.actionCellButton}\n        name={'gf-show-context'}\n        tooltip={isSandwiched ? 'Remove from sandwich view' : 'Show in sandwich view'}\n        variant={isSandwiched ? 'primary' : 'secondary'}\n        aria-label={isSandwiched ? 'Remove from sandwich view' : 'Show in sandwich view'}\n        onClick={() => {\n          props.onSandwich(isSandwiched ? undefined : symbol);\n        }}\n      />\n    </div>\n  );\n}\n\nconst getStyles = (theme: GrafanaTheme2) => {\n  return {\n    topTableContainer: css({\n      label: 'topTableContainer',\n      padding: theme.spacing(1),\n      backgroundColor: theme.colors.background.secondary,\n      height: '100%',\n    }),\n  };\n};\n\nconst getStylesActionCell = () => {\n  return {\n    actionCellWrapper: css({\n      label: 'actionCellWrapper',\n      display: 'flex',\n      height: '24px',\n    }),\n    actionCellButton: css({\n      label: 'actionCellButton',\n      marginRight: 0,\n      width: '24px',\n    }),\n  };\n};\n\nexport default FlameGraphTopTableContainer;\n","import { css } from '@emotion/css';\nimport uFuzzy from '@leeoniya/ufuzzy';\nimport { useCallback, useEffect, useMemo, useState } from 'react';\nimport * as React from 'react';\nimport { useMeasure } from 'react-use';\n\nimport { DataFrame, GrafanaTheme2 } from '@grafana/data';\nimport { ThemeContext } from '@grafana/ui';\n\nimport FlameGraph from './FlameGraph/FlameGraph';\nimport { GetExtraContextMenuButtonsFunction } from './FlameGraph/FlameGraphContextMenu';\nimport { CollapsedMap, FlameGraphDataContainer } from './FlameGraph/dataTransform';\nimport FlameGraphHeader from './FlameGraphHeader';\nimport FlameGraphTopTableContainer from './TopTable/FlameGraphTopTableContainer';\nimport { MIN_WIDTH_TO_SHOW_BOTH_TOPTABLE_AND_FLAMEGRAPH } from './constants';\nimport { ClickedItemData, ColorScheme, ColorSchemeDiff, SelectedView, TextAlign } from './types';\n\nconst ufuzzy = new uFuzzy();\n\nexport type Props = {\n  /**\n   * DataFrame with the profile data. The dataFrame needs to have the following fields:\n   * label: string - the label of the node\n   * level: number - the nesting level of the node\n   * value: number - the total value of the node\n   * self: number - the self value of the node\n   * Optionally if it represents diff of 2 different profiles it can also have fields:\n   * valueRight: number - the total value of the node in the right profile\n   * selfRight: number - the self value of the node in the right profile\n   */\n  data?: DataFrame;\n\n  /**\n   * Whether the header should be sticky and be always visible on the top when scrolling.\n   */\n  stickyHeader?: boolean;\n\n  /**\n   * Provides a theme for the visualization on which colors and some sizes are based.\n   */\n  getTheme: () => GrafanaTheme2;\n\n  /**\n   * Various interaction hooks that can be used to report on the interaction.\n   */\n  onTableSymbolClick?: (symbol: string) => void;\n  onViewSelected?: (view: string) => void;\n  onTextAlignSelected?: (align: string) => void;\n  onTableSort?: (sort: string) => void;\n\n  /**\n   * Elements that will be shown in the header on the right side of the header buttons. Useful for additional\n   * functionality.\n   */\n  extraHeaderElements?: React.ReactNode;\n\n  /**\n   * Extra buttons that will be shown in the context menu when user clicks on a Node.\n   */\n  getExtraContextMenuButtons?: GetExtraContextMenuButtonsFunction;\n\n  /**\n   * If true the flamegraph will be rendered on top of the table.\n   */\n  vertical?: boolean;\n\n  /**\n   * If true only the flamegraph will be rendered.\n   */\n  showFlameGraphOnly?: boolean;\n\n  /**\n   * Disable behaviour where similar items in the same stack will be collapsed into single item.\n   */\n  disableCollapsing?: boolean;\n  /**\n   * Whether or not to keep any focused item when the profile data changes.\n   */\n  keepFocusOnDataChange?: boolean;\n};\n\nconst FlameGraphContainer = ({\n  data,\n  onTableSymbolClick,\n  onViewSelected,\n  onTextAlignSelected,\n  onTableSort,\n  getTheme,\n  stickyHeader,\n  extraHeaderElements,\n  vertical,\n  showFlameGraphOnly,\n  disableCollapsing,\n  keepFocusOnDataChange,\n  getExtraContextMenuButtons,\n}: Props) => {\n  const [focusedItemData, setFocusedItemData] = useState<ClickedItemData>();\n\n  const [rangeMin, setRangeMin] = useState(0);\n  const [rangeMax, setRangeMax] = useState(1);\n  const [search, setSearch] = useState('');\n  const [selectedView, setSelectedView] = useState(SelectedView.Both);\n  const [sizeRef, { width: containerWidth }] = useMeasure<HTMLDivElement>();\n  const [textAlign, setTextAlign] = useState<TextAlign>('left');\n  // This is a label of the item because in sandwich view we group all items by label and present a merged graph\n  const [sandwichItem, setSandwichItem] = useState<string>();\n  const [collapsedMap, setCollapsedMap] = useState(new CollapsedMap());\n\n  const theme = useMemo(() => getTheme(), [getTheme]);\n  const dataContainer = useMemo((): FlameGraphDataContainer | undefined => {\n    if (!data) {\n      return;\n    }\n\n    const container = new FlameGraphDataContainer(data, { collapsing: !disableCollapsing }, theme);\n    setCollapsedMap(container.getCollapsedMap());\n    return container;\n  }, [data, theme, disableCollapsing]);\n  const [colorScheme, setColorScheme] = useColorScheme(dataContainer);\n  const styles = getStyles(theme);\n  const matchedLabels = useLabelSearch(search, dataContainer);\n\n  // If user resizes window with both as the selected view\n  useEffect(() => {\n    if (\n      containerWidth > 0 &&\n      containerWidth < MIN_WIDTH_TO_SHOW_BOTH_TOPTABLE_AND_FLAMEGRAPH &&\n      selectedView === SelectedView.Both &&\n      !vertical\n    ) {\n      setSelectedView(SelectedView.FlameGraph);\n    }\n  }, [selectedView, setSelectedView, containerWidth, vertical]);\n\n  const resetFocus = useCallback(() => {\n    setFocusedItemData(undefined);\n    setRangeMin(0);\n    setRangeMax(1);\n  }, [setFocusedItemData, setRangeMax, setRangeMin]);\n\n  const resetSandwich = useCallback(() => {\n    setSandwichItem(undefined);\n  }, [setSandwichItem]);\n\n  useEffect(() => {\n    if (!keepFocusOnDataChange) {\n      resetFocus();\n      resetSandwich();\n      return;\n    }\n\n    if (dataContainer && focusedItemData) {\n      const item = dataContainer.getNodesWithLabel(focusedItemData.label)?.[0];\n\n      if (item) {\n        setFocusedItemData({ ...focusedItemData, item });\n\n        const levels = dataContainer.getLevels();\n        const totalViewTicks = levels.length ? levels[0][0].value : 0;\n        setRangeMin(item.start / totalViewTicks);\n        setRangeMax((item.start + item.value) / totalViewTicks);\n      } else {\n        setFocusedItemData({\n          ...focusedItemData,\n          item: {\n            start: 0,\n            value: 0,\n            itemIndexes: [],\n            children: [],\n            level: 0,\n          },\n        });\n\n        setRangeMin(0);\n        setRangeMax(1);\n      }\n    }\n  }, [dataContainer, keepFocusOnDataChange]); // eslint-disable-line react-hooks/exhaustive-deps\n\n  const onSymbolClick = useCallback(\n    (symbol: string) => {\n      if (search === symbol) {\n        setSearch('');\n      } else {\n        onTableSymbolClick?.(symbol);\n        setSearch(symbol);\n        resetFocus();\n      }\n    },\n    [setSearch, resetFocus, onTableSymbolClick, search]\n  );\n\n  if (!dataContainer) {\n    return null;\n  }\n\n  const flameGraph = (\n    <FlameGraph\n      data={dataContainer}\n      rangeMin={rangeMin}\n      rangeMax={rangeMax}\n      matchedLabels={matchedLabels}\n      setRangeMin={setRangeMin}\n      setRangeMax={setRangeMax}\n      onItemFocused={(data) => setFocusedItemData(data)}\n      focusedItemData={focusedItemData}\n      textAlign={textAlign}\n      sandwichItem={sandwichItem}\n      onSandwich={(label: string) => {\n        resetFocus();\n        setSandwichItem(label);\n      }}\n      onFocusPillClick={resetFocus}\n      onSandwichPillClick={resetSandwich}\n      colorScheme={colorScheme}\n      showFlameGraphOnly={showFlameGraphOnly}\n      collapsing={!disableCollapsing}\n      getExtraContextMenuButtons={getExtraContextMenuButtons}\n      selectedView={selectedView}\n      search={search}\n      collapsedMap={collapsedMap}\n      setCollapsedMap={setCollapsedMap}\n    />\n  );\n\n  const table = (\n    <FlameGraphTopTableContainer\n      data={dataContainer}\n      onSymbolClick={onSymbolClick}\n      search={search}\n      matchedLabels={matchedLabels}\n      sandwichItem={sandwichItem}\n      onSandwich={setSandwichItem}\n      onSearch={setSearch}\n      onTableSort={onTableSort}\n      colorScheme={colorScheme}\n    />\n  );\n\n  let body;\n  if (showFlameGraphOnly || selectedView === SelectedView.FlameGraph) {\n    body = flameGraph;\n  } else if (selectedView === SelectedView.TopTable) {\n    body = <div className={styles.tableContainer}>{table}</div>;\n  } else if (selectedView === SelectedView.Both) {\n    if (vertical) {\n      body = (\n        <div>\n          <div className={styles.verticalGraphContainer}>{flameGraph}</div>\n          <div className={styles.verticalTableContainer}>{table}</div>\n        </div>\n      );\n    } else {\n      body = (\n        <div className={styles.horizontalContainer}>\n          <div className={styles.horizontalTableContainer}>{table}</div>\n          <div className={styles.horizontalGraphContainer}>{flameGraph}</div>\n        </div>\n      );\n    }\n  }\n\n  return (\n    // We add the theme context to bridge the gap if this is rendered in non grafana environment where the context\n    // isn't already provided.\n    <ThemeContext.Provider value={theme}>\n      <div ref={sizeRef} className={styles.container}>\n        {!showFlameGraphOnly && (\n          <FlameGraphHeader\n            search={search}\n            setSearch={setSearch}\n            selectedView={selectedView}\n            setSelectedView={(view) => {\n              setSelectedView(view);\n              onViewSelected?.(view);\n            }}\n            containerWidth={containerWidth}\n            onReset={() => {\n              resetFocus();\n              resetSandwich();\n            }}\n            textAlign={textAlign}\n            onTextAlignChange={(align) => {\n              setTextAlign(align);\n              onTextAlignSelected?.(align);\n            }}\n            showResetButton={Boolean(focusedItemData || sandwichItem)}\n            colorScheme={colorScheme}\n            onColorSchemeChange={setColorScheme}\n            stickyHeader={Boolean(stickyHeader)}\n            extraHeaderElements={extraHeaderElements}\n            vertical={vertical}\n            isDiffMode={dataContainer.isDiffFlamegraph()}\n            setCollapsedMap={setCollapsedMap}\n            collapsedMap={collapsedMap}\n          />\n        )}\n\n        <div className={styles.body}>{body}</div>\n      </div>\n    </ThemeContext.Provider>\n  );\n};\n\nfunction useColorScheme(dataContainer: FlameGraphDataContainer | undefined) {\n  const defaultColorScheme = dataContainer?.isDiffFlamegraph() ? ColorSchemeDiff.Default : ColorScheme.PackageBased;\n  const [colorScheme, setColorScheme] = useState<ColorScheme | ColorSchemeDiff>(defaultColorScheme);\n\n  // This makes sure that if we change the data to/from diff profile we reset the color scheme.\n  useEffect(() => {\n    setColorScheme(defaultColorScheme);\n  }, [defaultColorScheme]);\n\n  return [colorScheme, setColorScheme] as const;\n}\n\n/**\n * Based on the search string it does a fuzzy search over all the unique labels, so we can highlight them later.\n */\nfunction useLabelSearch(\n  search: string | undefined,\n  data: FlameGraphDataContainer | undefined\n): Set<string> | undefined {\n  return useMemo(() => {\n    if (search && data) {\n      const foundLabels = new Set<string>();\n      let idxs = ufuzzy.filter(data.getUniqueLabels(), search);\n\n      if (idxs) {\n        for (let idx of idxs) {\n          foundLabels.add(data.getUniqueLabels()[idx]);\n        }\n      }\n\n      return foundLabels;\n    }\n    // In this case undefined means there was no search so no attempt to highlighting anything should be made.\n    return undefined;\n  }, [search, data]);\n}\n\nfunction getStyles(theme: GrafanaTheme2) {\n  return {\n    container: css({\n      label: 'container',\n      overflow: 'auto',\n      height: '100%',\n      display: 'flex',\n      flex: '1 1 0',\n      flexDirection: 'column',\n      minHeight: 0,\n      gap: theme.spacing(1),\n    }),\n    body: css({\n      label: 'body',\n      flexGrow: 1,\n    }),\n\n    tableContainer: css({\n      // This is not ideal for dashboard panel where it creates a double scroll. In a panel it should be 100% but then\n      // in explore we need a specific height.\n      height: 800,\n    }),\n\n    horizontalContainer: css({\n      label: 'horizontalContainer',\n      display: 'flex',\n      minHeight: 0,\n      flexDirection: 'row',\n      columnGap: theme.spacing(1),\n      width: '100%',\n    }),\n\n    horizontalGraphContainer: css({\n      flexBasis: '50%',\n    }),\n\n    horizontalTableContainer: css({\n      flexBasis: '50%',\n      maxHeight: 800,\n    }),\n\n    verticalGraphContainer: css({\n      marginBottom: theme.spacing(1),\n    }),\n\n    verticalTableContainer: css({\n      height: 800,\n    }),\n  };\n}\n\nexport default FlameGraphContainer;\n","import { DataFrameDTO } from '@grafana/data';\n\nexport const data: DataFrameDTO = {\n  name: 'response',\n  refId: 'A',\n  // @ts-ignore\n  meta: { preferredVisualisationType: 'flamegraph' },\n  fields: [\n    {\n      name: 'level',\n      values: [\n        0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 11, 12, 13, 14, 15, 16, 10, 11, 12, 13, 9, 10, 9, 9, 7, 7, 6, 5, 6, 7,\n        8, 8, 9, 10, 11, 12, 13, 8, 9, 10, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 4, 5, 6, 7, 8, 9, 9, 10, 11, 12, 11, 12,\n        13, 8, 8, 7, 8, 8, 7, 6, 7, 8, 9, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 9, 8, 8, 7, 8, 6, 7, 8, 8, 7, 6, 7, 8,\n        8, 8, 9, 10, 11, 12, 4, 5, 6, 7, 8, 9, 9, 10, 11, 9, 10, 7, 4, 5, 6, 7, 8, 8, 7, 8, 9, 10, 11, 12, 13, 10, 10,\n        11, 9, 10, 10, 11, 12, 13, 14, 15, 16, 17, 8, 9, 5, 6, 7, 6, 7, 6, 5, 6, 6, 6, 6, 5, 6, 7, 6, 5, 6, 7, 8, 4, 5,\n        6, 5, 6, 5, 4, 5, 5, 3, 4, 5, 6, 7, 7, 8, 7, 8, 9, 8, 9, 8, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,\n        14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 24, 24, 25, 26, 24, 25, 22, 23, 23, 24, 25, 26, 27, 28, 29, 30, 31,\n        32, 21, 22, 23, 24, 25, 26, 27, 26, 24, 25, 26, 25, 24, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 25, 26,\n        27, 25, 26, 24, 23, 24, 24, 25, 23, 23, 22, 23, 24, 24, 23, 24, 25, 26, 24, 25, 23, 24, 24, 25, 23, 23, 24, 24,\n        23, 23, 23, 23, 23, 24, 25, 22, 23, 24, 25, 22, 23, 24, 25, 26, 27, 28, 25, 26, 27, 28, 29, 24, 22, 23, 24, 25,\n        26, 27, 28, 29, 30, 31, 32, 33, 21, 22, 23, 23, 24, 24, 24, 22, 23, 24, 25, 24, 23, 24, 24, 23, 22, 23, 24, 25,\n        25, 26, 27, 24, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 24, 21, 22, 23, 24, 25, 26, 27, 28, 21, 22, 19, 20,\n        21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 24, 25, 26, 27, 28, 23, 24, 25, 26, 27, 28, 19, 20,\n        21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,\n        31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 31, 30, 28, 29, 30, 31, 32, 33, 34,\n        35, 36, 37, 29, 30, 31, 26, 27, 28, 28, 28, 29, 27, 26, 27, 26, 25, 26, 27, 28, 29, 30, 31, 32, 32, 33, 34, 30,\n        31, 32, 33, 34, 33, 34, 35, 36, 37, 38, 39, 29, 30, 31, 32, 32, 27, 28, 28, 27, 28, 29, 30, 31, 32, 33, 34, 35,\n        36, 37, 38, 39, 40, 27, 28, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 28, 27, 28, 28, 29, 27, 27, 28, 27, 27, 26,\n        27, 28, 28, 29, 29, 29, 26, 27, 27, 28, 29, 30, 29, 30, 30, 29, 30, 31, 28, 29, 30, 28, 28, 28, 28, 29, 30, 29,\n        30, 27, 28, 28, 26, 27, 26, 27, 27, 28, 29, 26, 27, 28, 29, 28, 27, 28, 29, 30, 30, 28, 29, 30, 31, 32, 32, 27,\n        28, 26, 25, 25, 26, 27, 28, 29, 30, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n        48, 31, 30, 31, 32, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 29, 26, 27, 28,\n        29, 30, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 31, 30, 29, 29, 29, 25, 26, 27, 28, 26,\n        26, 27, 28, 27, 28, 28, 26, 27, 28, 28, 27, 28, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 25, 25, 26, 27, 28, 25,\n        26, 24, 25, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 33, 34, 34, 32, 33, 34, 34, 32, 28, 29, 30, 31, 27,\n        28, 29, 26, 27, 28, 29, 30, 31, 32, 33, 34, 26, 27, 28, 29, 24, 25, 26, 27, 28, 29, 30, 27, 28, 26, 27, 25, 26,\n        27, 28, 29, 26, 25, 26, 27, 26, 27, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 38, 39, 30, 31, 32, 26, 27,\n        28, 27, 28, 29, 25, 26, 27, 28, 29, 30, 31, 32, 28, 29, 28, 29, 28, 29, 27, 28, 29, 30, 31, 29, 30, 31, 32, 33,\n        34, 35, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 28, 29, 30, 31, 28, 29, 30, 31, 26, 25, 26, 27, 28, 29,\n        27, 28, 29, 30, 25, 26, 15, 14, 15, 16, 17, 13, 14, 15, 16, 15, 16, 17, 18, 19, 20, 12, 13, 14, 15, 16, 17, 10,\n        11, 12, 13, 14, 12, 13, 10, 11, 12, 13, 14, 15, 2, 3, 4, 5, 6, 7, 8, 4, 5, 6, 7, 8, 9, 2, 3, 1, 2, 3, 4, 5, 6,\n        6, 6, 6, 7, 8, 8, 9, 6, 7, 6, 6, 6, 6, 5, 5, 6, 5, 5, 5, 5, 5, 6, 7, 4, 2, 3, 4, 5, 6, 4, 5, 6, 7, 8, 9, 1, 2,\n        3, 4, 5, 6, 7, 8, 2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5, 6, 1, 2, 3, 3, 4, 3, 2, 1, 2, 3, 4, 5, 6, 5, 6, 7, 8, 5,\n        5, 6, 7, 4, 5, 6, 4, 2, 3, 4, 3, 4, 5, 6, 5, 5, 6, 4, 1, 2, 3, 4, 5, 6, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,\n        2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,\n        23, 16, 17, 18, 19, 16, 17, 18, 19, 20, 21, 22, 23, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,\n        23, 8, 9, 10, 11, 12, 13, 14, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3, 4,\n      ],\n    },\n    {\n      name: 'value',\n      values: [\n        16460000000, 4100000000, 4100000000, 3670000000, 1130000000, 1060000000, 1020000000, 150000000, 150000000,\n        50000000, 30000000, 20000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n        10000000, 10000000, 10000000, 80000000, 40000000, 10000000, 10000000, 530000000, 80000000, 40000000, 70000000,\n        50000000, 50000000, 30000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n        10000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 10000000,\n        390000000, 390000000, 180000000, 70000000, 50000000, 10000000, 20000000, 20000000, 10000000, 10000000, 10000000,\n        10000000, 10000000, 10000000, 10000000, 20000000, 10000000, 10000000, 10000000, 110000000, 80000000, 60000000,\n        10000000, 20000000, 20000000, 20000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n        20000000, 10000000, 10000000, 30000000, 20000000, 40000000, 30000000, 20000000, 10000000, 10000000, 40000000,\n        40000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 210000000, 210000000, 210000000,\n        130000000, 130000000, 10000000, 50000000, 40000000, 40000000, 70000000, 10000000, 40000000, 1840000000,\n        240000000, 240000000, 50000000, 10000000, 10000000, 190000000, 130000000, 50000000, 20000000, 10000000,\n        10000000, 10000000, 10000000, 10000000, 10000000, 80000000, 20000000, 10000000, 10000000, 10000000, 10000000,\n        10000000, 10000000, 10000000, 10000000, 60000000, 10000000, 1330000000, 1290000000, 320000000, 10000000,\n        10000000, 10000000, 130000000, 10000000, 10000000, 60000000, 30000000, 100000000, 40000000, 10000000, 10000000,\n        40000000, 30000000, 10000000, 10000000, 70000000, 10000000, 10000000, 50000000, 40000000, 10000000, 30000000,\n        20000000, 10000000, 430000000, 430000000, 430000000, 430000000, 10000000, 40000000, 20000000, 370000000,\n        20000000, 10000000, 180000000, 10000000, 30000000, 10000000, 10000000, 10000000, 5630000000, 5580000000,\n        5580000000, 5580000000, 5580000000, 5580000000, 5580000000, 5580000000, 5580000000, 5540000000, 5540000000,\n        5530000000, 5510000000, 5500000000, 5490000000, 5490000000, 1610000000, 1610000000, 1540000000, 1540000000,\n        190000000, 170000000, 170000000, 10000000, 20000000, 120000000, 10000000, 10000000, 20000000, 20000000,\n        20000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n        10000000, 850000000, 350000000, 300000000, 120000000, 110000000, 80000000, 20000000, 10000000, 80000000,\n        40000000, 20000000, 10000000, 10000000, 50000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n        10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 20000000, 20000000, 20000000,\n        20000000, 10000000, 10000000, 10000000, 10000000, 10000000, 370000000, 40000000, 20000000, 10000000, 100000000,\n        10000000, 10000000, 10000000, 30000000, 30000000, 80000000, 20000000, 10000000, 10000000, 10000000, 40000000,\n        10000000, 10000000, 10000000, 20000000, 10000000, 20000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n        10000000, 10000000, 110000000, 110000000, 60000000, 20000000, 20000000, 10000000, 10000000, 10000000, 10000000,\n        10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n        10000000, 10000000, 10000000, 10000000, 10000000, 480000000, 150000000, 10000000, 130000000, 10000000, 10000000,\n        50000000, 140000000, 80000000, 40000000, 10000000, 10000000, 20000000, 10000000, 10000000, 20000000, 120000000,\n        60000000, 40000000, 10000000, 10000000, 10000000, 10000000, 20000000, 30000000, 30000000, 20000000, 20000000,\n        20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 10000000, 10000000, 10000000, 10000000,\n        10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 60000000, 60000000, 60000000, 60000000,\n        30000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n        10000000, 10000000, 20000000, 20000000, 20000000, 20000000, 20000000, 30000000, 30000000, 30000000, 30000000,\n        30000000, 30000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n        10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 3880000000, 3880000000, 3880000000,\n        3880000000, 3870000000, 3230000000, 3230000000, 3210000000, 320000000, 70000000, 70000000, 40000000, 40000000,\n        20000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n        10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 20000000,\n        30000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 20000000,\n        20000000, 20000000, 70000000, 60000000, 20000000, 30000000, 10000000, 10000000, 10000000, 100000000, 20000000,\n        50000000, 1850000000, 410000000, 110000000, 110000000, 90000000, 60000000, 60000000, 40000000, 20000000,\n        20000000, 20000000, 30000000, 30000000, 30000000, 10000000, 10000000, 20000000, 20000000, 20000000, 20000000,\n        20000000, 20000000, 10000000, 20000000, 20000000, 20000000, 10000000, 10000000, 30000000, 20000000, 10000000,\n        40000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n        10000000, 10000000, 10000000, 40000000, 10000000, 80000000, 30000000, 30000000, 10000000, 10000000, 10000000,\n        10000000, 10000000, 10000000, 10000000, 20000000, 60000000, 30000000, 30000000, 10000000, 10000000, 10000000,\n        10000000, 10000000, 10000000, 160000000, 120000000, 20000000, 100000000, 50000000, 10000000, 10000000,\n        640000000, 10000000, 550000000, 410000000, 80000000, 60000000, 260000000, 20000000, 170000000, 60000000,\n        30000000, 20000000, 20000000, 20000000, 10000000, 10000000, 10000000, 20000000, 50000000, 40000000, 10000000,\n        10000000, 10000000, 70000000, 30000000, 40000000, 290000000, 90000000, 30000000, 10000000, 10000000, 10000000,\n        10000000, 210000000, 20000000, 10000000, 10000000, 10000000, 120000000, 90000000, 90000000, 60000000, 10000000,\n        30000000, 30000000, 30000000, 30000000, 10000000, 20000000, 50000000, 10000000, 10000000, 10000000, 280000000,\n        150000000, 150000000, 150000000, 60000000, 30000000, 80000000, 50000000, 20000000, 20000000, 20000000, 20000000,\n        20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 10000000, 10000000, 10000000,\n        10000000, 10000000, 10000000, 10000000, 20000000, 20000000, 20000000, 10000000, 10000000, 10000000, 10000000,\n        10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n        10000000, 10000000, 10000000, 10000000, 10000000, 130000000, 130000000, 130000000, 70000000, 30000000, 30000000,\n        10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n        10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 40000000, 10000000, 590000000, 20000000,\n        20000000, 10000000, 40000000, 150000000, 30000000, 30000000, 120000000, 10000000, 80000000, 370000000,\n        260000000, 40000000, 150000000, 110000000, 90000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n        10000000, 10000000, 10000000, 10000000, 20000000, 20000000, 20000000, 20000000, 20000000, 70000000, 60000000,\n        20000000, 20000000, 640000000, 640000000, 250000000, 250000000, 230000000, 180000000, 170000000, 170000000,\n        170000000, 170000000, 50000000, 10000000, 40000000, 10000000, 10000000, 60000000, 60000000, 10000000, 30000000,\n        10000000, 10000000, 10000000, 10000000, 10000000, 50000000, 50000000, 20000000, 10000000, 10000000, 10000000,\n        10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 390000000,\n        60000000, 40000000, 30000000, 20000000, 20000000, 10000000, 10000000, 10000000, 10000000, 10000000, 30000000,\n        10000000, 10000000, 10000000, 10000000, 10000000, 90000000, 10000000, 10000000, 60000000, 10000000, 40000000,\n        40000000, 40000000, 30000000, 30000000, 30000000, 30000000, 30000000, 30000000, 30000000, 30000000, 10000000,\n        10000000, 10000000, 10000000, 10000000, 10000000, 20000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n        180000000, 170000000, 50000000, 20000000, 20000000, 20000000, 20000000, 10000000, 10000000, 10000000, 10000000,\n        10000000, 10000000, 10000000, 30000000, 30000000, 20000000, 20000000, 20000000, 10000000, 10000000, 10000000,\n        10000000, 10000000, 10000000, 10000000, 90000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n        10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 70000000, 70000000,\n        70000000, 70000000, 10000000, 20000000, 20000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n        10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 20000000, 20000000, 10000000,\n        10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n        10000000, 10000000, 20000000, 20000000, 10000000, 10000000, 10000000, 10000000, 10000000, 20000000, 20000000,\n        20000000, 20000000, 20000000, 10000000, 40000000, 40000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n        30000000, 30000000, 30000000, 30000000, 30000000, 30000000, 10000000, 10000000, 6190000000, 6170000000,\n        6170000000, 6070000000, 4460000000, 10000000, 50000000, 440000000, 540000000, 20000000, 10000000, 10000000,\n        10000000, 980000000, 10000000, 50000000, 480000000, 540000000, 50000000, 210000000, 30000000, 30000000,\n        60000000, 180000000, 10000000, 210000000, 20000000, 20000000, 20000000, 100000000, 20000000, 20000000, 10000000,\n        10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 40000000, 10000000, 10000000,\n        10000000, 10000000, 10000000, 10000000, 10000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000,\n        20000000, 20000000, 10000000, 10000000, 10000000, 10000000, 10000000, 170000000, 160000000, 70000000, 30000000,\n        10000000, 40000000, 10000000, 170000000, 90000000, 90000000, 70000000, 20000000, 10000000, 30000000, 30000000,\n        30000000, 30000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 80000000,\n        10000000, 10000000, 70000000, 60000000, 10000000, 10000000, 20000000, 20000000, 20000000, 10000000, 80000000,\n        10000000, 10000000, 10000000, 10000000, 10000000, 20000000, 20000000, 20000000, 20000000, 20000000, 20000000,\n        20000000, 20000000, 20000000, 20000000, 20000000, 20000000, 50000000, 50000000, 50000000, 50000000, 50000000,\n        50000000, 50000000, 10000000, 10000000, 10000000, 60000000, 60000000, 60000000, 60000000, 60000000, 60000000,\n        60000000, 40000000, 40000000, 30000000, 30000000, 30000000, 30000000, 30000000, 30000000, 10000000, 10000000,\n        10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n        10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n        10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n        10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n        10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000, 10000000,\n        10000000, 10000000,\n      ],\n      config: {\n        unit: 'short',\n      },\n    },\n    {\n      name: 'self',\n      values: [\n        16460, 4100, 4100, 3670, 1130, 1060, 1020, 150, 150, 50, 30, 20, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 80,\n        40, 10, 10, 530, 80, 40, 70, 50, 50, 30, 10, 10, 10, 10, 10, 10, 10, 10, 10, 20, 20, 20, 20, 20, 20, 20, 20, 20,\n        10, 390, 390, 180, 70, 50, 10, 20, 20, 10, 10, 10, 10, 10, 10, 10, 20, 10, 10, 10, 110, 80, 60, 10, 20, 20, 20,\n        10, 10, 10, 10, 10, 10, 10, 20, 10, 10, 30, 20, 40, 30, 20, 10, 10, 40, 40, 10, 10, 10, 10, 10, 10, 10, 210,\n        210, 210, 130, 130, 10, 50, 40, 40, 70, 10, 40, 1840, 240, 240, 50, 10, 10, 190, 130, 50, 20, 10, 10, 10, 10,\n        10, 10, 80, 20, 10, 10, 10, 10, 10, 10, 10, 10, 60, 10, 1330, 1290, 320, 10, 10, 10, 130, 10, 10, 60, 30, 100,\n        40, 10, 10, 40, 30, 10, 10, 70, 10, 10, 50, 40, 10, 30, 20, 10, 430, 430, 430, 430, 10, 40, 20, 370, 20, 10,\n        180, 10, 30, 10, 10, 10, 5630, 5580, 5580, 5580, 5580, 5580, 5580, 5580, 5580, 5540, 5540, 5530, 5510, 5500,\n        5490, 5490, 1610, 1610, 1540, 1540, 190, 170, 170, 10, 20, 120, 10, 10, 20, 20, 20, 10, 10, 10, 10, 10, 10, 10,\n        10, 10, 10, 10, 850, 350, 300, 120, 110, 80, 20, 10, 80, 40, 20, 10, 10, 50, 10, 10, 10, 10, 10, 10, 10, 10, 10,\n        10, 10, 10, 10, 10, 20, 20, 20, 20, 10, 10, 10, 10, 10, 370, 40, 20, 10, 100, 10, 10, 10, 30, 30, 80, 20, 10,\n        10, 10, 40, 10, 10, 10, 20, 10, 20, 10, 10, 10, 10, 10, 10, 10, 110, 110, 60, 20, 20, 10, 10, 10, 10, 10, 10,\n        10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 480, 150, 10, 130, 10, 10, 50, 140, 80, 40, 10, 10, 20,\n        10, 10, 20, 120, 60, 40, 10, 10, 10, 10, 20, 30, 30, 20, 20, 20, 20, 20, 20, 20, 20, 20, 10, 10, 10, 10, 10, 10,\n        10, 10, 10, 10, 10, 60, 60, 60, 60, 30, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 20, 20, 20, 20, 20, 30,\n        30, 30, 30, 30, 30, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 3880, 3880, 3880, 3880,\n        3870, 3230, 3230, 3210, 320, 70, 70, 40, 40, 20, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,\n        10, 10, 10, 10, 20, 30, 10, 10, 10, 10, 10, 10, 10, 10, 10, 20, 20, 20, 70, 60, 20, 30, 10, 10, 10, 100, 20, 50,\n        1850, 410, 110, 110, 90, 60, 60, 40, 20, 20, 20, 30, 30, 30, 10, 10, 20, 20, 20, 20, 20, 20, 10, 20, 20, 20, 10,\n        10, 30, 20, 10, 40, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 40, 10, 80, 30, 30, 10, 10, 10, 10, 10,\n        10, 10, 20, 60, 30, 30, 10, 10, 10, 10, 10, 10, 160, 120, 20, 100, 50, 10, 10, 640, 10, 550, 410, 80, 60, 260,\n        20, 170, 60, 30, 20, 20, 20, 10, 10, 10, 20, 50, 40, 10, 10, 10, 70, 30, 40, 290, 90, 30, 10, 10, 10, 10, 210,\n        20, 10, 10, 10, 120, 90, 90, 60, 10, 30, 30, 30, 30, 10, 20, 50, 10, 10, 10, 280, 150, 150, 150, 60, 30, 80, 50,\n        20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 20, 10, 10, 10, 10, 10, 10, 10, 20, 20, 20, 10, 10, 10, 10, 10, 10,\n        10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 130, 130, 130, 70, 30, 30, 10, 10, 10, 10, 10, 10, 10,\n        10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 40, 10, 590, 20, 20, 10, 40, 150, 30, 30, 120, 10, 80, 370, 260, 40,\n        150, 110, 90, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 20, 20, 20, 20, 20, 70, 60, 20, 20, 640, 640, 250, 250,\n        230, 180, 170, 170, 170, 170, 50, 10, 40, 10, 10, 60, 60, 10, 30, 10, 10, 10, 10, 10, 50, 50, 20, 10, 10, 10,\n        10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 390, 60, 40, 30, 20, 20, 10, 10, 10, 10, 10, 30, 10, 10, 10, 10, 10, 90,\n        10, 10, 60, 10, 40, 40, 40, 30, 30, 30, 30, 30, 30, 30, 30, 10, 10, 10, 10, 10, 10, 20, 10, 10, 10, 10, 10, 180,\n        170, 50, 20, 20, 20, 20, 10, 10, 10, 10, 10, 10, 10, 30, 30, 20, 20, 20, 10, 10, 10, 10, 10, 10, 10, 90, 10, 10,\n        10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 70, 70, 70, 70, 10, 20, 20, 10, 10, 10, 10, 10, 10, 10, 10,\n        10, 10, 10, 10, 10, 10, 20, 20, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 20, 20, 10, 10, 10, 10,\n        10, 20, 20, 20, 20, 20, 10, 40, 40, 10, 10, 10, 10, 10, 30, 30, 30, 30, 30, 30, 10, 10, 6190, 6170, 6170, 6070,\n        4460, 10, 50, 440, 540, 20, 10, 10, 10, 980, 10, 50, 480, 540, 50, 210, 30, 30, 60, 180, 10, 210, 20, 20, 20,\n        100, 20, 20, 10, 10, 10, 10, 10, 10, 10, 10, 10, 40, 10, 10, 10, 10, 10, 10, 10, 20, 20, 20, 20, 20, 20, 20, 20,\n        10, 10, 10, 10, 10, 170, 160, 70, 30, 10, 40, 10, 170, 90, 90, 70, 20, 10, 30, 30, 30, 30, 10, 10, 10, 10, 10,\n        10, 10, 10, 80, 10, 10, 70, 60, 10, 10, 20, 20, 20, 10, 80, 10, 10, 10, 10, 10, 20, 20, 20, 20, 20, 20, 20, 20,\n        20, 20, 20, 20, 50, 50, 50, 50, 50, 50, 50, 10, 10, 10, 60, 60, 60, 60, 60, 60, 60, 40, 40, 30, 30, 30, 30, 30,\n        30, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,\n        10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10,\n        10, 10, 10, 10,\n      ],\n      config: {\n        unit: 'short',\n      },\n    },\n    {\n      name: 'label',\n      values: [\n        'total',\n        'test/pkg/agent.(*Target).start.func1',\n        'test/pkg/agent.(*Target).scrape',\n        'test/pkg/distributor.(*Distributor).Push',\n        'compress/gzip.(*Writer).Write',\n        'compress/flate.(*compressor).write',\n        'compress/flate.(*compressor).deflate',\n        'compress/flate.(*compressor).writeBlock',\n        'compress/flate.(*huffmanBitWriter).writeBlock',\n        'compress/flate.(*huffmanBitWriter).indexTokens',\n        'compress/flate.(*huffmanEncoder).generate',\n        'compress/flate.(*huffmanEncoder).bitCounts',\n        'runtime.memmove',\n        'compress/flate.(*huffmanEncoder).assignEncodingAndSize',\n        'sort.Sort',\n        'sort.quickSort',\n        'sort.quickSort',\n        'sort.quickSort',\n        'sort.insertionSort',\n        'compress/flate.(*byFreq).sort',\n        'sort.Sort',\n        'sort.quickSort',\n        'sort.doPivot',\n        'compress/flate.(*huffmanBitWriter).writeTokens',\n        'compress/flate.(*huffmanBitWriter).writeCode',\n        'compress/flate.offsetCode',\n        'compress/flate.(*huffmanBitWriter).dynamicSize',\n        'compress/flate.(*compressor).findMatch',\n        'compress/flate.matchLen',\n        'compress/flate.hash4',\n        'compress/flate.NewWriter',\n        'runtime.newobject',\n        'runtime.mallocgc',\n        'runtime.memclrNoHeapPointers',\n        'runtime.gcAssistAlloc',\n        'runtime.systemstack',\n        'runtime.gcAssistAlloc.func1',\n        'runtime.gcAssistAlloc1',\n        'runtime.gcDrainN',\n        'runtime.scanobject',\n        'runtime.heapBitsSetType',\n        'runtime.heapBitsSetTypeGCProg',\n        'runtime.runGCProg',\n        'compress/flate.(*compressor).initDeflate',\n        'runtime.makeslice',\n        'runtime.mallocgc',\n        'runtime.gcAssistAlloc',\n        'runtime.systemstack',\n        'runtime.gcAssistAlloc.func1',\n        'runtime.gcAssistAlloc1',\n        'runtime.gcDrainN',\n        'runtime.scanobject',\n        'runtime.pageIndexOf',\n        'test/pkg/pprof.OpenRaw',\n        'test/pkg/gen/google/v1.(*Profile).UnmarshalVT',\n        'test/pkg/gen/google/v1.(*Sample).UnmarshalVT',\n        'runtime.makeslice',\n        'runtime.mallocgc',\n        'runtime.memclrNoHeapPointers',\n        'runtime.(*mcache).nextFree',\n        'runtime.(*mcache).refill',\n        'runtime.(*mcentral).uncacheSpan',\n        'runtime.(*spanSet).push',\n        'runtime.(*mcentral).cacheSpan',\n        'runtime.(*mcentral).grow',\n        'runtime.(*mheap).alloc',\n        'runtime.getMCache',\n        'runtime.nextFreeFast',\n        'runtime.newobject',\n        'runtime.nextFreeFast',\n        'runtime.mallocgc',\n        'runtime.growslice',\n        'test/pkg/gen/google/v1.(*Location).UnmarshalVT',\n        'runtime.newobject',\n        'runtime.mallocgc',\n        'runtime.heapBitsForAddr',\n        'runtime.(*mcache).nextFree',\n        'runtime.(*mcache).refill',\n        'runtime.(*mcentral).cacheSpan',\n        'runtime.(*mcentral).grow',\n        'runtime.(*mheap).alloc',\n        'runtime.systemstack',\n        'runtime.(*mheap).alloc.func1',\n        'runtime.(*mheap).allocSpan',\n        'runtime.(*mheap).allocMSpanLocked',\n        'runtime.(*fixalloc).alloc',\n        'runtime.heapBitsSetType',\n        'runtime.nextFreeFast',\n        'runtime.getMCache',\n        'runtime.growslice',\n        'runtime.mallocgc',\n        'runtime.growslice',\n        'runtime.mallocgc',\n        'runtime.heapBitsSetType',\n        'runtime.memclrNoHeapPointers',\n        'runtime.memmove',\n        'runtime.newobject',\n        'runtime.mallocgc',\n        'runtime.heapBitsSetType',\n        'runtime.memclrNoHeapPointers',\n        'runtime.(*mcache).nextFree',\n        'runtime.(*mcache).refill',\n        'runtime.(*mcentral).uncacheSpan',\n        'runtime.(*spanSet).push',\n        'runtime.(*headTailIndex).incTail',\n        'compress/gzip.(*Writer).Close',\n        'compress/flate.(*compressor).close',\n        'compress/flate.(*compressor).deflate',\n        'compress/flate.(*compressor).writeBlock',\n        'compress/flate.(*huffmanBitWriter).writeBlock',\n        'compress/flate.offsetCode',\n        'compress/flate.(*huffmanBitWriter).indexTokens',\n        'compress/flate.(*huffmanEncoder).generate',\n        'compress/flate.(*huffmanEncoder).bitCounts',\n        'compress/flate.(*huffmanBitWriter).writeTokens',\n        'compress/flate.(*huffmanBitWriter).writeCode',\n        'compress/flate.(*compressor).findMatch',\n        'test/pkg/pprof.(*Profile).Normalize',\n        'sort.Sort',\n        'sort.quickSort',\n        'sort.doPivot',\n        'test/pkg/pprof.(*sortedSample).Less',\n        'test/pkg/pprof.(*sortedSample).Swap',\n        'sort.quickSort',\n        'sort.quickSort',\n        'sort.quickSort',\n        'sort.quickSort',\n        'sort.quickSort',\n        'sort.insertionSort',\n        'test/pkg/pprof.(*sortedSample).Less',\n        'sort.doPivot',\n        'sort.insertionSort',\n        'test/pkg/pprof.(*sortedSample).Swap',\n        'sort.doPivot',\n        'test/pkg/pprof.(*sortedSample).Less',\n        'test/pkg/pprof.(*sortedSample).Swap',\n        'runtime.gcWriteBarrierR8',\n        'runtime.gcWriteBarrier',\n        'runtime.wbBufFlush',\n        'runtime.systemstack',\n        'runtime.wbBufFlush.func1',\n        'runtime.wbBufFlush1',\n        'runtime.findObject',\n        'sort.doPivot',\n        'test/pkg/pprof.(*sortedSample).Less',\n        'test/pkg/pprof.(*Profile).clearSampleReferences',\n        'test/pkg/slices.RemoveInPlace[...]',\n        'test/pkg/pprof.(*Profile).clearSampleReferences.func1',\n        'runtime.growslice',\n        'runtime.memmove',\n        'runtime.memmove',\n        'test/pkg/pprof.StacktracesHasher.Hashes',\n        'github.com/cespare/xxhash/v2.round',\n        'github.com/cespare/xxhash/v2.(*Digest).Sum64',\n        'github.com/cespare/xxhash/v2.(*Digest).Write',\n        'github.com/cespare/xxhash/v2.u64',\n        'github.com/samber/lo.Uniq[...]',\n        'runtime.mapaccess2_fast64',\n        'runtime.memhash64',\n        'runtime.bucketMask',\n        'test/pkg/slices.RemoveInPlace[...]',\n        'test/pkg/pprof.(*Profile).Normalize.func1',\n        'test/pkg/slices.RemoveInPlace[...]',\n        'test/pkg/pprof.(*Profile).Normalize.func1.1',\n        'test/pkg/gen/google/v1.(*Profile).MarshalToVT',\n        'test/pkg/gen/google/v1.(*Profile).MarshalToSizedBufferVT',\n        'test/pkg/gen/google/v1.(*Sample).MarshalToSizedBufferVT',\n        'test/pkg/gen/google/v1.(*Profile).SizeVT',\n        'test/pkg/gen/google/v1.(*Sample).SizeVT',\n        'test/pkg/gen/google/v1.encodeVarint',\n        'test/pkg/gen/google/v1.(*Profile).SizeVT',\n        'test/pkg/gen/google/v1.(*Location).SizeVT',\n        'test/pkg/gen/google/v1.(*Sample).SizeVT',\n        'io/ioutil.ReadAll',\n        'io.ReadAll',\n        'compress/gzip.(*Reader).Read',\n        'compress/flate.(*decompressor).Read',\n        'runtime.memmove',\n        'compress/flate.(*dictDecoder).tryWriteCopy',\n        'runtime.memmove',\n        'compress/flate.(*decompressor).huffmanBlock',\n        'compress/flate.(*dictDecoder).writeCopy',\n        'runtime.memmove',\n        'compress/flate.(*decompressor).huffSym',\n        'bytes.(*Reader).ReadByte',\n        'compress/flate.(*decompressor).moreBits',\n        'compress/flate.(*decompressor).nextBlock',\n        'compress/flate.(*decompressor).huffmanBlock',\n        'compress/flate.(*decompressor).moreBits',\n        'net/http.(*conn).serve',\n        'net/http.serverHandler.ServeHTTP',\n        'net/http.HandlerFunc.ServeHTTP',\n        'test/pkg/util.glob..func1.1',\n        'golang.org/x/net/http2/h2c.h2cHandler.ServeHTTP',\n        'net/http.HandlerFunc.ServeHTTP',\n        'test/pkg/create.(*create).initServer.func2.1',\n        'net/http.HandlerFunc.ServeHTTP',\n        'github.com/opentracing-contrib/go-stdlib/nethttp.MiddlewareFunc.func5',\n        'net/http.HandlerFunc.ServeHTTP',\n        'github.com/weaveworks/common/middleware.Log.Wrap.func1',\n        'net/http.HandlerFunc.ServeHTTP',\n        'github.com/weaveworks/common/middleware.Instrument.Wrap.func1',\n        'github.com/felixge/httpsnoop.(*Metrics).CaptureMetrics',\n        'github.com/weaveworks/common/middleware.Instrument.Wrap.func1.2',\n        'github.com/gorilla/mux.(*Router).ServeHTTP',\n        'github.com/bufbuild/connect-go.(*Handler).ServeHTTP',\n        'github.com/bufbuild/connect-go.NewUnaryHandler[...].func1',\n        'github.com/bufbuild/connect-go.NewUnaryHandler[...].func1.1',\n        'test/pkg/ingester.(*Ingester).Push',\n        'io.ReadAll',\n        'github.com/klauspost/compress/gzip.(*Reader).Read',\n        'github.com/klauspost/compress/flate.(*decompressor).Read',\n        'github.com/klauspost/compress/flate.(*dictDecoder).tryWriteCopy',\n        'github.com/klauspost/compress/flate.(*dictDecoder).writeByte',\n        'github.com/klauspost/compress/flate.(*decompressor).huffmanBytesReader',\n        'github.com/klauspost/compress/flate.(*dictDecoder).writeCopy',\n        'runtime.memmove',\n        'github.com/klauspost/compress/flate.(*decompressor).nextBlock',\n        'github.com/klauspost/compress/flate.(*decompressor).huffmanBytesReader',\n        'runtime.growslice',\n        'runtime.memmove',\n        'runtime.mallocgc',\n        'runtime.(*mcache).allocLarge',\n        'runtime.(*mheap).alloc',\n        'runtime.systemstack',\n        'runtime.(*mheap).alloc.func1',\n        'runtime.(*mheap).allocSpan',\n        'runtime.(*pageAlloc).alloc',\n        'runtime.(*pageAlloc).allocRange',\n        'runtime.(*pageAlloc).update',\n        'runtime.(*pallocBits).summarize',\n        'test/pkg/create.(*Head).Ingest',\n        'test/pkg/create.(*Head).convertSamples',\n        'test/pkg/create.(*deduplicatingSlice[...]).ingest',\n        'test/pkg/create.(*stacktracesHelper).rewrite',\n        'test/pkg/create.idConversionTable.rewriteUint64',\n        'runtime.mapaccess2_fast64',\n        'runtime.memhash64',\n        'runtime.add',\n        'test/pkg/create.(*stacktracesHelper).key',\n        'github.com/cespare/xxhash/v2.(*Digest).Write',\n        'runtime.memmove',\n        'github.com/cespare/xxhash/v2.round',\n        'runtime.mapaccess2_fast64',\n        'runtime.mapassign_fast64',\n        'runtime.hashGrow',\n        'runtime.makeBucketArray',\n        'runtime.newarray',\n        'runtime.mallocgc',\n        'runtime.profilealloc',\n        'runtime.mProf_Malloc',\n        'runtime.callers',\n        'runtime.systemstack',\n        'runtime.callers.func1',\n        'runtime.gentraceback',\n        'runtime.findfunc',\n        'runtime.(*hmap).newoverflow',\n        'runtime.growslice',\n        'runtime.releasem',\n        'runtime.growWork_fast64',\n        'runtime.evacuate_fast64',\n        'encoding/binary.littleEndian.PutUint64',\n        'runtime.newobject',\n        'runtime.acquirem',\n        'runtime.mallocgc',\n        'runtime.heapBitsSetType',\n        'test/pkg/create.(*labelCache).rewriteLabels',\n        'runtime.mapaccess1_fast64',\n        'test/pkg/create.(*deduplicatingSlice[...]).ingest',\n        'runtime.mapaccess2_faststr',\n        'aeshashbody',\n        'memeqbody',\n        'runtime.mapassign_fast64',\n        'runtime.(*hmap).newoverflow',\n        'runtime.growslice',\n        'runtime.nextFreeFast',\n        'runtime.growWork_fast64',\n        'runtime.evacuate_fast64',\n        'runtime.mapaccess2',\n        'memeqbody',\n        'runtime.memhash_varlen',\n        'aeshashbody',\n        'runtime.evacuated',\n        'test/pkg/create.(*locationsHelper).key',\n        'github.com/cespare/xxhash/v2.(*Digest).Sum64',\n        'github.com/cespare/xxhash/v2.(*Digest).Write',\n        'runtime.bucketShift',\n        'test/pkg/create.(*stringsHelper).addToRewriter',\n        'encoding/binary.littleEndian.PutUint64',\n        'runtime.add',\n        'test/pkg/create.(*locationsHelper).rewrite',\n        'test/pkg/create.idConversionTable.rewriteUint64',\n        'runtime.mapaccess2_fast64',\n        'github.com/prometheus/client_golang/prometheus.(*CounterVec).WithLabelValues',\n        'github.com/prometheus/client_golang/prometheus.(*MetricVec).GetMetricWithLabelValues',\n        'github.com/prometheus/client_golang/prometheus.(*MetricVec).hashLabelValues',\n        'github.com/prometheus/client_golang/prometheus.hashAdd',\n        'test/pkg/create.(*deltaProfiles).computeDelta',\n        'test/pkg/create.deltaSamples',\n        'runtime.mapassign_fast64',\n        'runtime.growWork_fast64',\n        'runtime.evacuate_fast64',\n        'runtime.typedmemmove',\n        'runtime.bulkBarrierPreWrite',\n        'runtime.hashGrow',\n        'runtime.makeBucketArray',\n        'runtime.newarray',\n        'runtime.mallocgc',\n        'runtime.heapBitsSetType',\n        'runtime.mapaccess2_fast64',\n        'test/pkg/create.copySlice[...]',\n        'runtime.mallocgc',\n        'runtime.(*mcache).nextFree',\n        'runtime.(*mcache).refill',\n        'runtime.(*mcentral).cacheSpan',\n        'runtime.(*mcentral).grow',\n        'runtime.(*mheap).alloc',\n        'runtime.systemstack',\n        'runtime.(*mheap).alloc.func1',\n        'runtime.(*mheap).allocSpan',\n        'runtime.(*mheap).allocMSpanLocked',\n        'runtime.(*fixalloc).alloc',\n        'test/pkg/gen/google/v1.(*Profile).UnmarshalVT',\n        'runtime.newobject',\n        'runtime.nextFreeFast',\n        'runtime.mallocgc',\n        'runtime.add1',\n        'runtime.heapBitsForAddr',\n        'runtime.heapBitsSetType',\n        'test/pkg/gen/google/v1.(*Location).UnmarshalVT',\n        'runtime.growslice',\n        'runtime.mallocgc',\n        'runtime.heapBitsSetType',\n        'runtime.nextFreeFast',\n        'runtime.newobject',\n        'runtime.getMCache',\n        'runtime.mallocgc',\n        'runtime.roundupsize',\n        'test/pkg/gen/google/v1.(*Sample).UnmarshalVT',\n        'runtime.makeslice',\n        'runtime.mallocgc',\n        'runtime.memclrNoHeapPointers',\n        'runtime.(*mcache).nextFree',\n        'runtime.(*mcache).refill',\n        'runtime.(*mcentral).cacheSpan',\n        'runtime.acquirem',\n        'runtime.growslice',\n        'runtime.mallocgc',\n        'runtime.profilealloc',\n        'runtime.mProf_Malloc',\n        'runtime.callers',\n        'runtime.systemstack',\n        'runtime.callers.func1',\n        'runtime.gentraceback',\n        'runtime.pcdatavalue',\n        'runtime.pcvalue',\n        'runtime.step',\n        'runtime.memclrNoHeapPointers',\n        'github.com/go-kit/log.(*context).Log',\n        'github.com/go-kit/log.bindValues',\n        'github.com/go-kit/log.Caller.func1',\n        'runtime.Caller',\n        'runtime.(*Frames).Next',\n        'runtime.funcline1',\n        'runtime.pcvalue',\n        'runtime.readvarint',\n        'test/pkg/gen/google/v1.(*Profile).ReturnToVTPool',\n        'test/pkg/gen/google/v1.(*Profile).ResetVT',\n        'github.com/bufbuild/connect-go.(*errorTranslatingSender).Send',\n        'github.com/bufbuild/connect-go.(*connectUnaryHandlerSender).Send',\n        'github.com/bufbuild/connect-go.(*connectUnaryMarshaler).Marshal',\n        'github.com/bufbuild/connect-go.(*compressionPool).Compress',\n        'github.com/bufbuild/connect-go.(*compressionPool).putCompressor',\n        'compress/gzip.(*Writer).Close',\n        'compress/gzip.(*Writer).Write',\n        'compress/flate.NewWriter',\n        'runtime.newobject',\n        'runtime.mallocgc',\n        'runtime.gcAssistAlloc',\n        'runtime.systemstack',\n        'runtime.gcAssistAlloc.func1',\n        'runtime.gcAssistAlloc1',\n        'runtime.gcDrainN',\n        'runtime.scanobject',\n        'runtime.spanOf',\n        'compress/gzip.(*Writer).Reset',\n        'compress/gzip.(*Writer).init',\n        'compress/flate.(*Writer).Reset',\n        'compress/flate.(*compressor).reset',\n        'runtime.memclrNoHeapPointers',\n        'github.com/bufbuild/connect-go.(*compressionPool).getCompressor',\n        'compress/gzip.(*Writer).Reset',\n        'compress/gzip.(*Writer).init',\n        'compress/flate.(*Writer).Reset',\n        'compress/flate.(*compressor).reset',\n        'runtime.memclrNoHeapPointers',\n        'github.com/bufbuild/connect-go.receiveUnaryRequest[...]',\n        'github.com/bufbuild/connect-go.(*errorTranslatingReceiver).Receive',\n        'github.com/bufbuild/connect-go.(*connectUnaryHandlerReceiver).Receive',\n        'github.com/bufbuild/connect-go.(*connectUnaryUnmarshaler).UnmarshalFunc',\n        'bytes.(*Buffer).ReadFrom',\n        'github.com/weaveworks/common/middleware.(*reqBody).Read',\n        'net/http.(*body).Read',\n        'net/http.(*body).readLocked',\n        'net/http/internal.(*chunkedReader).Read',\n        'bufio.(*Reader).Read',\n        'net/http.(*connReader).Read',\n        'net.(*conn).Read',\n        'net.(*netFD).Read',\n        'syscall.Read',\n        'syscall.read',\n        'syscall.Syscall',\n        'net/http.(*ServeMux).ServeHTTP',\n        'net/http.HandlerFunc.ServeHTTP',\n        'net/http/pprof.Index',\n        'net/http/pprof.handler.ServeHTTP',\n        'runtime/pprof.(*Profile).WriteTo',\n        'runtime/pprof.writeAlloc',\n        'runtime/pprof.writeHeapInternal',\n        'runtime/pprof.writeHeapProto',\n        'runtime/pprof.(*profileBuilder).pbSample',\n        'runtime/pprof.(*profileBuilder).flush',\n        'compress/gzip.(*Writer).Write',\n        'compress/flate.(*compressor).write',\n        'compress/flate.(*compressor).encSpeed',\n        'compress/flate.(*huffmanBitWriter).writeBlockDynamic',\n        'compress/flate.(*huffmanBitWriter).writeTokens',\n        'compress/flate.(*huffmanBitWriter).writeCode',\n        'github.com/felixge/httpsnoop.(*rw).Write',\n        'github.com/felixge/httpsnoop.(*Metrics).CaptureMetrics.func2.1',\n        'github.com/weaveworks/common/middleware.(*badResponseLoggingWriter).Write',\n        'github.com/opentracing-contrib/go-stdlib/nethttp.(*statusCodeTracker).Write',\n        'net/http.(*response).Write',\n        'net/http.(*response).write',\n        'bufio.(*Writer).Write',\n        'bufio.(*Writer).Flush',\n        'net/http.(*chunkWriter).Write',\n        'bufio.(*Writer).Write',\n        'bufio.(*Writer).Flush',\n        'net/http.checkConnErrorWriter.Write',\n        'net.(*conn).Write',\n        'net.(*netFD).Write',\n        'internal/poll.(*FD).Write',\n        'syscall.write',\n        'syscall.Syscall',\n        'compress/flate.token.length',\n        'compress/flate.(*deflateFast).encode',\n        'compress/flate.NewWriter',\n        'compress/flate.(*compressor).init',\n        'runtime.makeslice',\n        'runtime.mallocgc',\n        'runtime.gcAssistAlloc',\n        'runtime.systemstack',\n        'runtime.gcAssistAlloc.func1',\n        'runtime.gcAssistAlloc1',\n        'runtime.gcDrainN',\n        'runtime.scanobject',\n        'runtime.newobject',\n        'runtime.mallocgc',\n        'runtime.memclrNoHeapPointers',\n        'runtime/pprof.writeHeapProto.func1',\n        'runtime/pprof.(*profileBuilder).pbLabel',\n        'runtime.mapaccess2_faststr',\n        'runtime/pprof.(*protobuf).int64Opt',\n        'runtime/pprof.(*protobuf).endMessage',\n        'runtime.memmove',\n        'runtime/pprof.(*protobuf).startMessage',\n        'runtime/pprof.(*protobuf).uint64s',\n        'runtime.memmove',\n        'runtime/pprof.(*protobuf).int64s',\n        'runtime/pprof.(*profileBuilder).appendLocsForStack',\n        'runtime/pprof.(*profileBuilder).emitLocation',\n        'runtime/pprof.(*profileBuilder).flush',\n        'compress/gzip.(*Writer).Write',\n        'compress/flate.NewWriter',\n        'runtime.newobject',\n        'runtime.mallocgc',\n        'runtime.memclrNoHeapPointers',\n        'runtime.heapBitsSetType',\n        'runtime.heapBitsSetTypeGCProg',\n        'runtime.runGCProg',\n        'compress/flate.(*compressor).init',\n        'runtime.makeslice',\n        'runtime.mallocgc',\n        'runtime.memclrNoHeapPointersChunked',\n        'runtime.memclrNoHeapPointers',\n        'runtime.gcAssistAlloc',\n        'runtime.systemstack',\n        'runtime.gcAssistAlloc.func1',\n        'runtime.gcAssistAlloc1',\n        'runtime.gcDrainN',\n        'runtime.scanobject',\n        'runtime.pageIndexOf',\n        'compress/flate.(*compressor).write',\n        'compress/flate.(*compressor).encSpeed',\n        'compress/flate.(*huffmanBitWriter).writeBlockDynamic',\n        'compress/flate.(*huffmanBitWriter).writeTokens',\n        'compress/flate.(*huffmanBitWriter).indexTokens',\n        'runtime.growslice',\n        'runtime.mallocgc',\n        'runtime.acquirem',\n        'runtime.mapassign_faststr',\n        'runtime.hashGrow',\n        'runtime.makeBucketArray',\n        'runtime.newarray',\n        'runtime.mallocgc',\n        'runtime.profilealloc',\n        'runtime.mProf_Malloc',\n        'runtime.callers',\n        'runtime.systemstack',\n        'runtime.callers.func1',\n        'runtime.gentraceback',\n        'runtime.pcdatavalue',\n        'runtime.pcvalue',\n        'runtime.step',\n        'runtime.mapaccess1_faststr',\n        'aeshashbody',\n        'runtime.mapassign_fast64',\n        'runtime.growWork_fast64',\n        'runtime.evacuate_fast64',\n        'runtime.memclrHasPointers',\n        'runtime.bulkBarrierPreWrite',\n        'runtime.wbBufFlush',\n        'runtime.systemstack',\n        'runtime.wbBufFlush.func1',\n        'runtime.wbBufFlush1',\n        'runtime.spanOf',\n        'runtime.memhash64',\n        'runtime/pprof.(*profileBuilder).pbLine',\n        'runtime/pprof.(*protobuf).int64Opt',\n        'runtime/pprof.(*protobuf).endMessage',\n        'runtime.memmove',\n        'runtime.duffcopy',\n        'runtime/pprof.(*protobuf).endMessage',\n        'runtime.memmove',\n        'runtime.duffzero',\n        'runtime/pprof.(*protobuf).int64Opt',\n        'runtime.CallersFrames',\n        'runtime.newobject',\n        'runtime.nextFreeFast',\n        'runtime.mallocgc',\n        'runtime.heapBitsSetType',\n        'runtime.memclrNoHeapPointers',\n        'runtime.heapBitsForAddr',\n        'runtime/pprof.allFrames',\n        'runtime.duffcopy',\n        'runtime.(*Frames).Next',\n        'runtime.funcline1',\n        'runtime.funcInfo.entry',\n        'runtime.(*moduledata).textAddr',\n        'runtime.pcvalue',\n        'runtime.readvarint',\n        'runtime.step',\n        'runtime.funcfile',\n        'runtime.findnull',\n        'indexbytebody',\n        'runtime.funcname',\n        'runtime.findnull',\n        'indexbytebody',\n        'runtime.findfunc',\n        'runtime.duffzero',\n        'runtime.(*Func).Entry',\n        'runtime.pcdatavalue1',\n        'runtime.pcvalue',\n        'runtime.step',\n        'runtime.funcInfo.entry',\n        'runtime.(*moduledata).textAddr',\n        'runtime.newobject',\n        'runtime.nextFreeFast',\n        'runtime.mallocgc',\n        'runtime.mapaccess2_fast64',\n        'runtime.memhash64',\n        'runtime/pprof.runtime_expandFinalInlineFrame',\n        'runtime.findfunc',\n        'runtime.pcdatavalue1',\n        'runtime.funcInfo.entry',\n        'runtime.(*moduledata).textAddr',\n        'runtime/pprof.(*profileBuilder).stringIndex',\n        'runtime.growslice',\n        'runtime.mallocgc',\n        'runtime.heapBitsSetType',\n        'runtime.memmove',\n        'runtime.mapassign_faststr',\n        'runtime.growWork_faststr',\n        'runtime.evacuate_faststr',\n        'aeshashbody',\n        'runtime.advanceEvacuationMark',\n        'runtime.hashGrow',\n        'runtime.makeBucketArray',\n        'runtime.newarray',\n        'runtime.mallocgc',\n        'runtime.memclrNoHeapPointers',\n        'runtime.heapBitsSetType',\n        'runtime.mapaccess2_faststr',\n        'aeshashbody',\n        'runtime/pprof.(*protobuf).uint64Opt',\n        'runtime.funcdata',\n        'runtime/pprof.(*profileBuilder).build',\n        'compress/gzip.(*Writer).Write',\n        'compress/flate.(*compressor).write',\n        'compress/flate.(*compressor).encSpeed',\n        'compress/flate.(*deflateFast).encode',\n        'compress/flate.(*deflateFast).matchLen',\n        'compress/flate.(*huffmanBitWriter).writeBlockDynamic',\n        'compress/flate.(*huffmanBitWriter).writeTokens',\n        'compress/flate.(*huffmanBitWriter).writeCode',\n        'github.com/felixge/httpsnoop.(*rw).Write',\n        'github.com/felixge/httpsnoop.(*Metrics).CaptureMetrics.func2.1',\n        'github.com/weaveworks/common/middleware.(*badResponseLoggingWriter).Write',\n        'github.com/opentracing-contrib/go-stdlib/nethttp.(*statusCodeTracker).Write',\n        'net/http.(*response).Write',\n        'net/http.(*response).write',\n        'bufio.(*Writer).Write',\n        'bufio.(*Writer).Flush',\n        'net/http.(*chunkWriter).Write',\n        'bufio.(*Writer).Write',\n        'bufio.(*Writer).Flush',\n        'net/http.checkConnErrorWriter.Write',\n        'net.(*conn).Write',\n        'net.(*netFD).Write',\n        'internal/poll.(*FD).Write',\n        'syscall.write',\n        'syscall.Syscall',\n        'compress/flate.(*huffmanBitWriter).writeBits',\n        'compress/flate.(*huffmanBitWriter).indexTokens',\n        'compress/flate.(*huffmanEncoder).generate',\n        'compress/flate.(*huffmanEncoder).bitCounts',\n        'compress/flate.(*huffmanBitWriter).writeDynamicHeader',\n        'compress/flate.(*huffmanBitWriter).writeCode',\n        'github.com/felixge/httpsnoop.(*rw).Write',\n        'github.com/felixge/httpsnoop.(*Metrics).CaptureMetrics.func2.1',\n        'github.com/weaveworks/common/middleware.(*badResponseLoggingWriter).Write',\n        'github.com/opentracing-contrib/go-stdlib/nethttp.(*statusCodeTracker).Write',\n        'net/http.(*response).Write',\n        'net/http.(*response).write',\n        'bufio.(*Writer).Write',\n        'bufio.(*Writer).Flush',\n        'net/http.(*chunkWriter).Write',\n        'bufio.(*Writer).Write',\n        'bufio.(*Writer).Flush',\n        'net/http.checkConnErrorWriter.Write',\n        'net.(*conn).Write',\n        'net.(*netFD).Write',\n        'internal/poll.(*FD).Write',\n        'syscall.write',\n        'syscall.Syscall',\n        'compress/flate.hash',\n        'compress/gzip.(*Writer).Close',\n        'compress/flate.(*compressor).close',\n        'compress/flate.(*compressor).encSpeed',\n        'compress/flate.(*huffmanBitWriter).writeBlockDynamic',\n        'compress/flate.(*huffmanBitWriter).indexTokens',\n        'compress/flate.(*huffmanBitWriter).writeTokens',\n        'compress/flate.(*huffmanBitWriter).writeBits',\n        'github.com/felixge/httpsnoop.(*rw).Write',\n        'github.com/felixge/httpsnoop.(*Metrics).CaptureMetrics.func2.1',\n        'github.com/weaveworks/common/middleware.(*badResponseLoggingWriter).Write',\n        'github.com/opentracing-contrib/go-stdlib/nethttp.(*statusCodeTracker).Write',\n        'net/http.(*response).Write',\n        'net/http.(*response).write',\n        'bufio.(*Writer).Write',\n        'bufio.(*Writer).Flush',\n        'net/http.(*chunkWriter).Write',\n        'fmt.Fprintf',\n        'fmt.(*pp).doPrintf',\n        'fmt.(*pp).printArg',\n        'fmt.(*pp).fmtInteger',\n        'fmt.(*fmt).fmtInteger',\n        'compress/flate.(*huffmanBitWriter).writeCode',\n        'compress/flate.token.offset',\n        'compress/flate.hash',\n        'compress/flate.(*deflateFast).encode',\n        'compress/flate.load64',\n        'runtime.FuncForPC',\n        'runtime.newobject',\n        'runtime.mallocgc',\n        'runtime.heapBitsSetType',\n        'runtime.findfunc',\n        'runtime.pcdatavalue1',\n        'runtime.funcInfo.entry',\n        'runtime.(*moduledata).textAddr',\n        'runtime.pcvalue',\n        'runtime.readvarint',\n        'runtime.step',\n        'runtime.funcline1',\n        'runtime.pcvalue',\n        'runtime.readvarint',\n        'runtime.step',\n        'runtime.funcInfo.entry',\n        'runtime.(*moduledata).textAddr',\n        'runtime/pprof.newProfileBuilder',\n        'runtime/pprof.(*profileBuilder).readMapping',\n        'os.ReadFile',\n        'runtime.growslice',\n        'runtime.mallocgc',\n        'runtime.gcAssistAlloc',\n        'runtime.systemstack',\n        'runtime.gcAssistAlloc.func1',\n        'runtime.gcAssistAlloc1',\n        'runtime.gcDrainN',\n        'runtime.duffcopy',\n        'runtime.(*Func).Name',\n        'runtime.funcname',\n        'runtime.findnull',\n        'indexbytebody',\n        'runtime/pprof.scaleHeapSample',\n        'math.archExp',\n        'runtime.(*MemProfileRecord).Stack',\n        'runtime.duffcopy',\n        'runtime/pprof.writeGoroutine',\n        'runtime/pprof.writeRuntimeProfile',\n        'runtime/pprof.runtime_goroutineProfileWithLabels',\n        'runtime.goroutineProfileWithLabels',\n        'runtime.forEachGRace',\n        'runtime.goroutineProfileWithLabels.func4',\n        'runtime.systemstack',\n        'runtime.goroutineProfileWithLabels.func4.1',\n        'runtime.saveg',\n        'runtime.gentraceback',\n        'runtime.pcdatavalue',\n        'runtime.funcInfo.entry',\n        'runtime.pcvalue',\n        'runtime.step',\n        'runtime.readvarint',\n        'runtime.funcspdelta',\n        'runtime.pcvalue',\n        'runtime.readvarint',\n        'runtime.step',\n        'runtime.findfunc',\n        'runtime.goroutineProfileWithLabels.func1',\n        'runtime.isSystemGoroutine',\n        'runtime.funcname',\n        'runtime.findnull',\n        'runtime.goroutineProfileWithLabels.func2',\n        'runtime.goroutineProfileWithLabels.func1',\n        'runtime.isSystemGoroutine',\n        'runtime.startTheWorld',\n        'runtime.systemstack',\n        'runtime.startTheWorld.func1',\n        'runtime.startTheWorldWithSema',\n        'runtime.wakep',\n        'runtime.startm',\n        'runtime.notewakeup',\n        'runtime.futexwakeup',\n        'runtime.futex',\n        'runtime.systemstack',\n        'runtime.goroutineProfileWithLabels.func3',\n        'runtime.saveg',\n        'runtime.gentraceback',\n        'runtime/pprof.printCountProfile',\n        'runtime/pprof.printCountProfile.func1',\n        'fmt.Fprintf',\n        'fmt.(*pp).doPrintf',\n        'fmt.(*pp).printArg',\n        'fmt.(*pp).fmtInteger',\n        'fmt.(*fmt).fmtInteger',\n        'bytes.(*Buffer).Write',\n        'runtime.memmove',\n        'runtime.slicebytetostring',\n        'runtime.nextFreeFast',\n        'runtime.mapassign_faststr',\n        'runtime.hashGrow',\n        'runtime.makeBucketArray',\n        'runtime.newarray',\n        'runtime.nextFreeFast',\n        'aeshashbody',\n        'runtime/pprof.(*profileBuilder).appendLocsForStack',\n        'runtime/pprof.(*profileBuilder).stringIndex',\n        'runtime.overLoadFactor',\n        'runtime/pprof.(*profileBuilder).emitLocation',\n        'runtime/pprof.(*profileBuilder).pbLine',\n        'runtime/pprof.(*profileBuilder).flush',\n        'compress/gzip.(*Writer).Write',\n        'compress/flate.NewWriter',\n        'compress/flate.(*compressor).init',\n        'runtime.makeslice',\n        'runtime.mallocgc',\n        'runtime.gcAssistAlloc',\n        'runtime.systemstack',\n        'runtime.gcAssistAlloc.func1',\n        'runtime.gcAssistAlloc1',\n        'runtime.gcDrainN',\n        'runtime.heapBits.bits',\n        'runtime.scanobject',\n        'runtime.greyobject',\n        'runtime.newobject',\n        'runtime.mallocgc',\n        'runtime.memclrNoHeapPointers',\n        'runtime/pprof.allFrames',\n        'runtime.newobject',\n        'runtime.nextFreeFast',\n        'runtime.(*Frames).Next',\n        'runtime.funcline1',\n        'runtime.pcvalue',\n        'runtime/pprof.newProfileBuilder',\n        'runtime/pprof.(*profileBuilder).readMapping',\n        'runtime/pprof.parseProcSelfMaps',\n        'runtime/pprof.elfBuildID',\n        'os.OpenFile',\n        'syscall.Open',\n        'syscall.openat',\n        'syscall.Syscall6',\n        'runtime/pprof.parseProcSelfMaps.func1',\n        'bytes.Cut',\n        'runtime.slicebytetostring',\n        'runtime.nextFreeFast',\n        'runtime/pprof.(*profileBuilder).addMapping',\n        'runtime.growslice',\n        'os.Open',\n        'os.OpenFile',\n        'syscall.Open',\n        'syscall.openat',\n        'syscall.Syscall6',\n        'os.openFileNolog',\n        'os.newFile',\n        'runtime.SetFinalizer',\n        'runtime.systemstack',\n        'runtime.SetFinalizer.func2',\n        'runtime.addfinalizer',\n        'runtime.addspecial',\n        'os.ReadFile',\n        'runtime.growslice',\n        'runtime.mallocgc',\n        'runtime.(*mcache).nextFree',\n        'runtime.(*mcache).refill',\n        'runtime.(*mcentral).cacheSpan',\n        'runtime.(*mcentral).grow',\n        'runtime.(*mheap).alloc',\n        'runtime.systemstack',\n        'runtime.(*mheap).alloc.func1',\n        'runtime.(*mheap).allocSpan',\n        'runtime.(*pageAlloc).allocToCache',\n        'os.(*File).Stat',\n        'internal/poll.(*FD).Fstat',\n        'syscall.Fstat',\n        'syscall.Syscall',\n        'os.(*File).Read',\n        'syscall.Read',\n        'syscall.read',\n        'syscall.Syscall',\n        'runtime.newobject',\n        'sort.Sort',\n        'sort.quickSort',\n        'sort.doPivot',\n        'runtime/pprof.(*keysByCount).Less',\n        'cmpbody',\n        'sort.quickSort',\n        'sort.insertionSort',\n        'runtime/pprof.(*keysByCount).Less',\n        'runtime.mapaccess1_faststr',\n        'runtime/pprof.(*profileBuilder).pbSample',\n        'runtime/pprof.(*protobuf).uint64s',\n        'runtime.newobject',\n        'github.com/prometheus/client_golang/prometheus.(*GaugeVec).WithLabelValues',\n        'runtime.assertI2I',\n        'runtime.getitab',\n        'runtime.(*itabTableType).find',\n        'github.com/weaveworks/common/middleware.Instrument.getRouteName',\n        'github.com/weaveworks/common/middleware.getRouteName',\n        'github.com/weaveworks/common/middleware.MakeLabelValue',\n        'strings.Trim',\n        'github.com/gorilla/mux.(*Router).Match',\n        'github.com/gorilla/mux.(*Route).Match',\n        'github.com/gorilla/mux.(*routeRegexp).Match',\n        'regexp.(*Regexp).doExecute',\n        'regexp.(*Regexp).backtrack',\n        'regexp.(*Regexp).tryBacktrack',\n        'github.com/weaveworks/common/logging.gokit.Debugf',\n        'github.com/go-kit/log.(*context).Log',\n        'github.com/go-kit/log.bindValues',\n        'github.com/go-kit/log.Caller.func1',\n        'runtime.Caller',\n        'runtime.callers',\n        'github.com/uber/jaeger-client-go.(*Tracer).Extract',\n        'github.com/uber/jaeger-client-go.(*TextMapPropagator).Extract',\n        'runtime.assertE2I2',\n        'runtime.getitab',\n        'runtime.(*itabTableType).find',\n        'runtime.newobject',\n        'runtime.nextFreeFast',\n        'github.com/weaveworks/common/middleware.Tracer.Wrap.func1',\n        'github.com/weaveworks/common/middleware.getRouteName',\n        'github.com/gorilla/mux.(*Router).Match',\n        'github.com/gorilla/mux.(*Route).Match',\n        'github.com/gorilla/mux.(*routeRegexp).Match',\n        'regexp.(*Regexp).doExecute',\n        'net/http.(*response).finishRequest',\n        'bufio.(*Writer).Flush',\n        'net/http.(*chunkWriter).Write',\n        'net/http.(*chunkWriter).writeHeader',\n        'net/http.Header.writeSubset',\n        'net/http.Header.sortedKeyValues',\n        'sync.(*Pool).Get',\n        'net/http.checkConnErrorWriter.Write',\n        'net.(*conn).Write',\n        'net.(*netFD).Write',\n        'internal/poll.(*FD).Write',\n        'syscall.write',\n        'syscall.Syscall',\n        'net/http.(*conn).readRequest',\n        'runtime.mapiterinit',\n        'runtime.gcBgMarkWorker',\n        'runtime.systemstack',\n        'runtime.gcBgMarkWorker.func2',\n        'runtime.gcDrain',\n        'runtime.scanobject',\n        'runtime.(*gcBits).bytep',\n        'runtime.(*mspan).objIndex',\n        'runtime.pageIndexOf',\n        'runtime.greyobject',\n        'runtime.(*gcWork).put',\n        'runtime.getempty',\n        'runtime.putfull',\n        'runtime.(*lfstack).push',\n        'runtime.findObject',\n        'runtime.spanOf',\n        'runtime.(*mspan).markBitsForIndex',\n        'runtime.spanOf',\n        'runtime.markBits.isMarked',\n        'runtime.arenaIndex',\n        'runtime.heapBitsForAddr',\n        'runtime.(*gcWork).tryGet',\n        'runtime.trygetfull',\n        'runtime.spanOfUnchecked',\n        'runtime.heapBits.next',\n        'runtime.gcFlushBgCredit',\n        'runtime.heapBits.bits',\n        'runtime.(*gcWork).balance',\n        'runtime.handoff',\n        'runtime.getempty',\n        'runtime.(*gcWork).tryGetFast',\n        'runtime.gcMarkDone',\n        'runtime.gcMarkTermination',\n        'runtime.mProf_Flush',\n        'runtime.mProf_FlushLocked',\n        'runtime.(*bucket).mp',\n        'runtime.systemstack',\n        'runtime.gcMarkTermination.func4',\n        'runtime.forEachP',\n        'runtime.gcMarkTermination.func4.1',\n        'runtime.(*mcache).prepareForSweep',\n        'runtime.(*mcache).releaseAll',\n        'net/http.(*persistConn).readLoop',\n        'runtime.selectgo',\n        'runtime.send',\n        'runtime.goready',\n        'runtime.systemstack',\n        'runtime.goready.func1',\n        'runtime.ready',\n        'runtime.runqput',\n        'bufio.(*Reader).Peek',\n        'bufio.(*Reader).fill',\n        'net/http.(*persistConn).Read',\n        'net.(*conn).Read',\n        'net.(*netFD).Read',\n        'syscall.Read',\n        'syscall.read',\n        'syscall.Syscall',\n        'net/http.(*persistConn).readResponse',\n        'github.com/opentracing-contrib/go-stdlib/nethttp.(*Tracer).gotFirstResponseByte',\n        'runtime.newobject',\n        'runtime.mallocgc',\n        'runtime.memclrNoHeapPointers',\n        'runtime.bgsweep',\n        'runtime.sweepone',\n        'runtime.(*sweepLocker).tryAcquire',\n        'runtime.(*sweepLocked).sweep',\n        'runtime.(*gcBitsArena).tryAlloc',\n        'runtime.spanClass.sizeclass',\n        'runtime/internal/atomic.(*Uint32).CompareAndSwap',\n        'runtime.mcall',\n        'runtime.park_m',\n        'runtime.schedule',\n        'runtime.findrunnable',\n        'runtime.netpoll',\n        'runtime.epollwait',\n        'runtime.stopm',\n        'runtime.notesleep',\n        'runtime.futexsleep',\n        'runtime.futex',\n        'runtime.(*randomOrder).start',\n        'runtime.checkTimers',\n        'runtime.runtimer',\n        'runtime.dodeltimer0',\n        'runtime.gcstopm',\n        'runtime.lock2',\n        'runtime.procyield',\n        'runtime.(*lfstack).pop',\n        'runtime.gosched_m',\n        'runtime.lock',\n        'runtime.lock2',\n        'runtime.goschedImpl',\n        'runtime.schedule',\n        'runtime.execute',\n        'runtime.casgstatus',\n        'runtime.checkTimers',\n        'runtime.findrunnable',\n        'runtime.checkTimers',\n        'runtime.casgstatus',\n        'net/http.(*persistConn).writeLoop',\n        'net/http.(*Request).write',\n        'net/http.newTransferWriter',\n        'runtime.convI2I',\n        'runtime.getitab',\n        'runtime.(*itabTableType).find',\n        'runtime.chansend1',\n        'runtime.chansend',\n        'runtime.send',\n        'runtime.goready',\n        'runtime.systemstack',\n        'runtime.goready.func1',\n        'runtime.ready',\n        'runtime.wakep',\n        'runtime.startm',\n        'runtime.notewakeup',\n        'runtime.futexwakeup',\n        'runtime.futex',\n        'bufio.(*Writer).Flush',\n        'net/http.persistConnWriter.Write',\n        'net.(*conn).Write',\n        'net.(*netFD).Write',\n        'internal/poll.(*FD).Write',\n        'syscall.write',\n        'syscall.Syscall',\n        'runtime.exitsyscall',\n        'runtime.exitsyscallfast',\n        'runtime.exitsyscallfast_reacquired',\n        'test/pkg/distributor.(*Distributor).Push.func1',\n        'test/pkg/distributor.(*Distributor).sendProfiles',\n        'test/pkg/distributor.(*Distributor).sendProfilesErr',\n        'test/pkg/gen/ingester/v1/ingesterv1connect.(*ingesterServiceClient).Push',\n        'github.com/bufbuild/connect-go.(*Client[...]).CallUnary',\n        'github.com/bufbuild/connect-go.NewClient[...].func2',\n        'github.com/bufbuild/connect-go.NewClient[...].func1',\n        'github.com/bufbuild/connect-go.receiveUnaryResponse[...]',\n        'github.com/bufbuild/connect-go.(*errorTranslatingReceiver).Receive',\n        'github.com/bufbuild/connect-go.(*connectUnaryClientReceiver).Receive',\n        'github.com/bufbuild/connect-go.(*connectUnaryUnmarshaler).UnmarshalFunc',\n        'github.com/bufbuild/connect-go.(*compressionPool).Decompress',\n        'github.com/bufbuild/connect-go.(*compressionPool).getDecompressor',\n        'compress/gzip.(*Reader).Reset',\n        'compress/gzip.(*Reader).readHeader',\n        'compress/flate.(*dictDecoder).init',\n        'runtime.makeslice',\n        'runtime.mallocgc',\n        'runtime.(*mcache).nextFree',\n        'runtime.(*mcache).refill',\n        'runtime.(*mcentral).cacheSpan',\n        'runtime.(*mcentral).grow',\n        'runtime.heapBits.initSpan',\n        'compress/flate.(*decompressor).Reset',\n        'runtime.newstack',\n        'runtime.copystack',\n        'runtime.gentraceback',\n        'compress/flate.NewReader',\n        'compress/flate.fixedHuffmanDecoderInit',\n        'runtime.newstack',\n        'runtime.copystack',\n        'runtime.gentraceback',\n        'runtime.funcspdelta',\n        'runtime.pcvalue',\n        'runtime.step',\n        'github.com/bufbuild/connect-go.(*errorTranslatingSender).Send',\n        'github.com/bufbuild/connect-go.(*connectClientSender).Send',\n        'github.com/bufbuild/connect-go.(*connectUnaryMarshaler).Marshal',\n        'github.com/bufbuild/connect-go.(*connectUnaryMarshaler).write',\n        'github.com/bufbuild/connect-go.(*duplexHTTPCall).Write',\n        'io.(*pipe).write',\n        'runtime.chanrecv1',\n        'runtime.chanrecv',\n        'runtime.recv',\n        'runtime.gcWriteBarrierR8',\n        'runtime.gcWriteBarrier',\n        'runtime.wbBufFlush',\n        'runtime.systemstack',\n        'runtime.wbBufFlush.func1',\n        'runtime.wbBufFlush1',\n        'runtime.findObject',\n        'github.com/bufbuild/connect-go.(*errorTranslatingReceiver).Close',\n        'github.com/bufbuild/connect-go.(*connectUnaryClientReceiver).Close',\n        'github.com/bufbuild/connect-go.(*duplexHTTPCall).CloseRead',\n        'github.com/opentracing-contrib/go-stdlib/nethttp.closeTracker.Close',\n        'runtime.newobject',\n        'runtime.mallocgc',\n        'runtime.heapBitsSetType',\n        'runtime/pprof.profileWriter',\n        'runtime/pprof.(*profileBuilder).addCPUData',\n        'runtime/pprof.(*profMap).lookup',\n        'runtime.makeslice',\n        'runtime.mallocgc',\n        'runtime.gcAssistAlloc',\n        'runtime.systemstack',\n        'runtime.gcAssistAlloc.func1',\n        'runtime.gcAssistAlloc1',\n        'runtime.gcDrainN',\n        'runtime.scanobject',\n        'runtime.pageIndexOf',\n        'net/http.(*connReader).backgroundRead',\n        'net.(*conn).Read',\n        'net.(*netFD).Read',\n        'internal/poll.(*FD).Read',\n      ],\n    },\n    {\n      name: 'fileName',\n      values: [\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/net.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/fd_posix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/internal/poll/fd_unix.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/zsyscall_linux_amd64.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/malloc.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/memclr_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/compress/flate/huffman_bit_writer.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/syscall_linux.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/runtime/internal/syscall/asm_linux_amd64.s',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/bufio/bufio.go',\n        '/usr/local/Cellar/go/1.19.4/libexec/src/net/http/server.go',\n      ],\n    },\n    {\n      name: 'line',\n      values: [\n        0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 11, 12, 13, 14, 15, 16, 10, 11, 12, 13, 9, 10, 9, 9, 7, 7, 6, 5, 6, 7,\n        8, 8, 9, 10, 11, 12, 13, 8, 9, 10, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 4, 5, 6, 7, 8, 9, 9, 10, 11, 12, 11, 12,\n        13, 8, 8, 7, 8, 8, 7, 6, 7, 8, 9, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 9, 8, 8, 7, 8, 6, 7, 8, 8, 7, 6, 7, 8,\n        8, 8, 9, 10, 11, 12, 4, 5, 6, 7, 8, 9, 9, 10, 11, 9, 10, 7, 4, 5, 6, 7, 8, 8, 7, 8, 9, 10, 11, 12, 13, 10, 10,\n        11, 9, 10, 10, 11, 12, 13, 14, 15, 16, 17, 8, 9, 5, 6, 7, 6, 7, 6, 5, 6, 6, 6, 6, 5, 6, 7, 6, 5, 6, 7, 8, 4, 5,\n        6, 5, 6, 5, 4, 5, 5, 3, 4, 5, 6, 7, 7, 8, 7, 8, 9, 8, 9, 8, 7, 8, 9, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,\n        14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 24, 24, 25, 26, 24, 25, 22, 23, 23, 24, 25, 26, 27, 28, 29, 30, 31,\n        32, 21, 22, 23, 24, 25, 26, 27, 26, 24, 25, 26, 25, 24, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 25, 26,\n        27, 25, 26, 24, 23, 24, 24, 25, 23, 23, 22, 23, 24, 24, 23, 24, 25, 26, 24, 25, 23, 24, 24, 25, 23, 23, 24, 24,\n        23, 23, 23, 23, 23, 24, 25, 22, 23, 24, 25, 22, 23, 24, 25, 26, 27, 28, 25, 26, 27, 28, 29, 24, 22, 23, 24, 25,\n        26, 27, 28, 29, 30, 31, 32, 33, 21, 22, 23, 23, 24, 24, 24, 22, 23, 24, 25, 24, 23, 24, 24, 23, 22, 23, 24, 25,\n        25, 26, 27, 24, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 24, 21, 22, 23, 24, 25, 26, 27, 28, 21, 22, 19, 20,\n        21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 24, 25, 26, 27, 28, 23, 24, 25, 26, 27, 28, 19, 20,\n        21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30,\n        31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 31, 30, 28, 29, 30, 31, 32, 33, 34,\n        35, 36, 37, 29, 30, 31, 26, 27, 28, 28, 28, 29, 27, 26, 27, 26, 25, 26, 27, 28, 29, 30, 31, 32, 32, 33, 34, 30,\n        31, 32, 33, 34, 33, 34, 35, 36, 37, 38, 39, 29, 30, 31, 32, 32, 27, 28, 28, 27, 28, 29, 30, 31, 32, 33, 34, 35,\n        36, 37, 38, 39, 40, 27, 28, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 28, 27, 28, 28, 29, 27, 27, 28, 27, 27, 26,\n        27, 28, 28, 29, 29, 29, 26, 27, 27, 28, 29, 30, 29, 30, 30, 29, 30, 31, 28, 29, 30, 28, 28, 28, 28, 29, 30, 29,\n        30, 27, 28, 28, 26, 27, 26, 27, 27, 28, 29, 26, 27, 28, 29, 28, 27, 28, 29, 30, 30, 28, 29, 30, 31, 32, 32, 27,\n        28, 26, 25, 25, 26, 27, 28, 29, 30, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,\n        48, 31, 30, 31, 32, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 29, 26, 27, 28,\n        29, 30, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 31, 30, 29, 29, 29, 25, 26, 27, 28, 26,\n        26, 27, 28, 27, 28, 28, 26, 27, 28, 28, 27, 28, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 25, 25, 26, 27, 28, 25,\n        26, 24, 25, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 33, 34, 34, 32, 33, 34, 34, 32, 28, 29, 30, 31, 27,\n        28, 29, 26, 27, 28, 29, 30, 31, 32, 33, 34, 26, 27, 28, 29, 24, 25, 26, 27, 28, 29, 30, 27, 28, 26, 27, 25, 26,\n        27, 28, 29, 26, 25, 26, 27, 26, 27, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 38, 39, 30, 31, 32, 26, 27,\n        28, 27, 28, 29, 25, 26, 27, 28, 29, 30, 31, 32, 28, 29, 28, 29, 28, 29, 27, 28, 29, 30, 31, 29, 30, 31, 32, 33,\n        34, 35, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 28, 29, 30, 31, 28, 29, 30, 31, 26, 25, 26, 27, 28, 29,\n        27, 28, 29, 30, 25, 26, 15, 14, 15, 16, 17, 13, 14, 15, 16, 15, 16, 17, 18, 19, 20, 12, 13, 14, 15, 16, 17, 10,\n        11, 12, 13, 14, 12, 13, 10, 11, 12, 13, 14, 15, 2, 3, 4, 5, 6, 7, 8, 4, 5, 6, 7, 8, 9, 2, 3, 1, 2, 3, 4, 5, 6,\n        6, 6, 6, 7, 8, 8, 9, 6, 7, 6, 6, 6, 6, 5, 5, 6, 5, 5, 5, 5, 5, 6, 7, 4, 2, 3, 4, 5, 6, 4, 5, 6, 7, 8, 9, 1, 2,\n        3, 4, 5, 6, 7, 8, 2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5, 6, 1, 2, 3, 3, 4, 3, 2, 1, 2, 3, 4, 5, 6, 5, 6, 7, 8, 5,\n        5, 6, 7, 4, 5, 6, 4, 2, 3, 4, 3, 4, 5, 6, 5, 5, 6, 4, 1, 2, 3, 4, 5, 6, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,\n        2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,\n        23, 16, 17, 18, 19, 16, 17, 18, 19, 20, 21, 22, 23, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22,\n        23, 8, 9, 10, 11, 12, 13, 14, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 1, 2, 3, 4,\n      ],\n    },\n  ],\n};\n"],"names":["jsxs","Fragment","jsx","MenuItem","MenuGroup","ContextMenu","useStyles2","getStyles","InteractiveTable","Portal","VizTooltipContainer","getValueFormat","css","SampleUnit","SelectedView","ColorScheme","ColorSchemeDiff","color","scaleLinear","rgbString","useTheme2","useMemo","useEffect","useCallback","useState","ctx","useMeasure","useRef","memo","Tooltip","Icon","IconButton","levels","totalProfileTicks","totalProfileTicksRight","totalViewTicks","levelsCallers","cx","groupBy","item","FieldType","createTheme","getDisplayProcessor","index","Button","Input","ButtonGroup","RadioButtonGroup","Menu","Dropdown","usePrevious","useDebounce","AutoSizer","Table","TableCellDisplayMode","MappingType","applyFieldOverrides","uFuzzy","data","ThemeContext"],"mappings":"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G,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAC7G,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC3G,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAC7G,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAC5G,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAC5G,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAC5G,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC3G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC1G,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAA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AU,GAAA;AAAA,QAAU,GAAA;AAAA,QAC9F,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,IAAA;AAAA,QAAW,GAAA;AAAA,QAAW,IAAA;AAAA,QAAW,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAC/F,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACrG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACtG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,GAAA;AAAA,QACvG,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,IAAA;AAAA,QACrG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QA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AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,IAAA;AAAA,QAAW,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACvG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,GAAA;AAAA,QACrG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,IAAA;AAAA,QAC5F,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACvG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,IAAA;AAAA,QAAW,IAAA;AAAA,QAAW,IAAA;AAAA,QAAW,IAAA;AAAA,QAAW,IAAA;AAAA,QAAW,IAAA;AAAA,QAAW,IAAA;AAAA,QACjG,IAAA;AAAA,QAAW,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACtG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,IAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,IAAA;AAAA,QAAW,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACtG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,KAAA;AAAA,QAAY,KAAA;AAAA,QAC5F,KAAA;AAAA,QAAY,KAAA;AAAA,QAAY,KAAA;AAAA,QAAY,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAClG,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,GAAA;AAAA,QAC9F,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAW,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACvG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,GAAA;AAAA,QACtG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,IAAA;AAAA,QAAW,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACrG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QACpG,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;AAAA,QAAU,GAAA;A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AA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC7G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC1G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC1G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC7G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,IAAA;AAAA,QAAM,IAAA;AAAA,QAAM,IAAA;AAAA,QAAM,IAAA;AAAA,QACtG,IAAA;AAAA,QAAM,IAAA;AAAA,QAAM,IAAA;AAAA,QAAM,IAAA;AAAA,QAAM,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC7G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAC7G,IAAA;AAAA,QAAM,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC7G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAC1G,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAC1G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC7G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC3G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,EAAA;AAAA,QAC7G,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,GAAA;AAAA,QACzG,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC1G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC7G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAC5G,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC7G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,IAAA;AAAA,QAAM,IAAA;AAAA,QAAM,IAAA;AAAA,QAAM,IAAA;AAAA,QAC1G,IAAA;AAAA,QAAM,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC1G,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC7G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,GAAA;AAAA,QAAK,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC3G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI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A;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAC7G,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC3G,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAC7G,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAC5G,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAC5G,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAC5G,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC5G,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC3G,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAC1G,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,EAAA;AAAA,QAAI,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG,CAAA;AAAA,QAAG;AAAA;AAChF;AACF;AAEJ;;;;;;;"}