{"ast":null,"code":"import { useFormControlProps } from '@chakra-ui/form-control';\nimport { forwardRef, useMultiStyleConfig, omitThemingProps, StylesProvider, chakra, useStyles } from '@chakra-ui/system';\nimport { getOwnerWindow, normalizeEventKey, isNull, focus, getOwnerDocument, callAllHandlers, ariaAttr, minSafeInteger, maxSafeInteger, cx, __DEV__ } from '@chakra-ui/utils';\nimport { mergeRefs, createContext } from '@chakra-ui/react-utils';\nimport * as React from 'react';\nimport { useState, useRef, useCallback } from 'react';\nimport { Icon } from '@chakra-ui/icon';\nimport { useCounter } from '@chakra-ui/counter';\nimport { useInterval, useUnmountEffect, useCallbackRef, useBoolean, useUpdateEffect, useSafeLayoutEffect, useEventListener } from '@chakra-ui/hooks';\nfunction _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n    return target;\n  };\n  return _extends.apply(this, arguments);\n}\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n  return target;\n}\nvar TriangleDownIcon = function TriangleDownIcon(props) {\n  return /*#__PURE__*/React.createElement(Icon, _extends({\n    viewBox: \"0 0 24 24\"\n  }, props), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"currentColor\",\n    d: \"M21,5H3C2.621,5,2.275,5.214,2.105,5.553C1.937,5.892,1.973,6.297,2.2,6.6l9,12 c0.188,0.252,0.485,0.4,0.8,0.4s0.611-0.148,0.8-0.4l9-12c0.228-0.303,0.264-0.708,0.095-1.047C21.725,5.214,21.379,5,21,5z\"\n  }));\n};\nvar TriangleUpIcon = function TriangleUpIcon(props) {\n  return /*#__PURE__*/React.createElement(Icon, _extends({\n    viewBox: \"0 0 24 24\"\n  }, props), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"currentColor\",\n    d: \"M12.8,5.4c-0.377-0.504-1.223-0.504-1.6,0l-9,12c-0.228,0.303-0.264,0.708-0.095,1.047 C2.275,18.786,2.621,19,3,19h18c0.379,0,0.725-0.214,0.895-0.553c0.169-0.339,0.133-0.744-0.095-1.047L12.8,5.4z\"\n  }));\n};\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n  return arr2;\n}\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n  var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n  if (it) return (it = it.call(o)).next.bind(it);\n  if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n    if (it) o = it;\n    var i = 0;\n    return function () {\n      if (i >= o.length) return {\n        done: true\n      };\n      return {\n        done: false,\n        value: o[i++]\n      };\n    };\n  }\n  throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction useAttributeObserver(ref, attributes, fn, enabled) {\n  React.useEffect(function () {\n    if (!ref.current || !enabled) return;\n    var win = getOwnerWindow(ref.current);\n    var attrs = Array.isArray(attributes) ? attributes : [attributes];\n    var obs = new win.MutationObserver(function (changes) {\n      for (var _iterator = _createForOfIteratorHelperLoose(changes), _step; !(_step = _iterator()).done;) {\n        var change = _step.value;\n        if (change.type === \"attributes\" && change.attributeName && attrs.includes(change.attributeName)) {\n          fn(change);\n        }\n      }\n    });\n    obs.observe(ref.current, {\n      attributes: true,\n      attributeFilter: attrs\n    });\n    return function () {\n      return obs.disconnect();\n    };\n  });\n}\n\n/**\n * When click and hold on a button - the speed of auto changing the value.\n */\n\nvar CONTINUOUS_CHANGE_INTERVAL = 50;\n/**\n * When click and hold on a button - the delay before auto changing the value.\n */\n\nvar CONTINUOUS_CHANGE_DELAY = 300;\n\n/**\n * React hook used in the number input to spin its\n * value on long press of the spin buttons\n *\n * @param increment the function to increment\n * @param decrement the function to decrement\n */\nfunction useSpinner(increment, decrement) {\n  /**\n   * To keep incrementing/decrementing on press, we call that `spinning`\n   */\n  var _useState = useState(false),\n    isSpinning = _useState[0],\n    setIsSpinning = _useState[1]; // This state keeps track of the action (\"increment\" or \"decrement\")\n\n  var _useState2 = useState(null),\n    action = _useState2[0],\n    setAction = _useState2[1]; // To increment the value the first time you mousedown, we call that `runOnce`\n\n  var _useState3 = useState(true),\n    runOnce = _useState3[0],\n    setRunOnce = _useState3[1]; // Store the timeout instance id in a ref, so we can clear the timeout later\n\n  var timeoutRef = useRef(null); // Clears the timeout from memory\n\n  var removeTimeout = function removeTimeout() {\n    return clearTimeout(timeoutRef.current);\n  };\n  /**\n   * useInterval hook provides a performant way to\n   * update the state value at specific interval\n   */\n\n  useInterval(function () {\n    if (action === \"increment\") {\n      increment();\n    }\n    if (action === \"decrement\") {\n      decrement();\n    }\n  }, isSpinning ? CONTINUOUS_CHANGE_INTERVAL : null); // Function to activate the spinning and increment the value\n\n  var up = useCallback(function () {\n    // increment the first time\n    if (runOnce) {\n      increment();\n    } // after a delay, keep incrementing at interval (\"spinning up\")\n\n    timeoutRef.current = setTimeout(function () {\n      setRunOnce(false);\n      setIsSpinning(true);\n      setAction(\"increment\");\n    }, CONTINUOUS_CHANGE_DELAY);\n  }, [increment, runOnce]); // Function to activate the spinning and increment the value\n\n  var down = useCallback(function () {\n    // decrement the first time\n    if (runOnce) {\n      decrement();\n    } // after a delay, keep decrementing at interval (\"spinning down\")\n\n    timeoutRef.current = setTimeout(function () {\n      setRunOnce(false);\n      setIsSpinning(true);\n      setAction(\"decrement\");\n    }, CONTINUOUS_CHANGE_DELAY);\n  }, [decrement, runOnce]); // Function to stop spinning (useful for mouseup, keyup handlers)\n\n  var stop = useCallback(function () {\n    setRunOnce(true);\n    setIsSpinning(false);\n    removeTimeout();\n  }, []);\n  /**\n   * If the component unmounts while spinning,\n   * let's clear the timeout as well\n   */\n\n  useUnmountEffect(removeTimeout);\n  return {\n    up: up,\n    down: down,\n    stop: stop,\n    isSpinning: isSpinning\n  };\n}\nvar _excluded$1 = [\"focusInputOnChange\", \"clampValueOnBlur\", \"keepWithinRange\", \"min\", \"max\", \"step\", \"isReadOnly\", \"isDisabled\", \"isRequired\", \"isInvalid\", \"pattern\", \"inputMode\", \"allowMouseWheel\", \"id\", \"onChange\", \"precision\", \"name\", \"aria-describedby\", \"aria-label\", \"aria-labelledby\", \"onFocus\", \"onBlur\", \"onInvalid\", \"getAriaValueText\", \"isValidCharacter\", \"format\", \"parse\"];\nvar FLOATING_POINT_REGEX = /^[Ee0-9+\\-.]$/;\n/**\n * Determine if a character is a DOM floating point character\n * @see https://www.w3.org/TR/2012/WD-html-markup-20120329/datatypes.html#common.data.float\n */\n\nfunction isFloatingPointNumericCharacter(character) {\n  return FLOATING_POINT_REGEX.test(character);\n}\nfunction isValidNumericKeyboardEvent(event, isValid) {\n  if (event.key == null) return true;\n  var isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n  var isSingleCharacterKey = event.key.length === 1;\n  if (!isSingleCharacterKey || isModifierKey) return true;\n  return isValid(event.key);\n}\n\n/**\n * React hook that implements the WAI-ARIA Spin Button widget\n * and used to create numeric input fields.\n *\n * It returns prop getters you can use to build your own\n * custom number inputs.\n *\n * @see WAI-ARIA https://www.w3.org/TR/wai-aria-practices-1.1/#spinbutton\n * @see Docs     https://www.chakra-ui.com/useNumberInput\n * @see WHATWG   https://html.spec.whatwg.org/multipage/input.html#number-state-(type=number)\n */\nfunction useNumberInput(props) {\n  if (props === void 0) {\n    props = {};\n  }\n  var _props = props,\n    _props$focusInputOnCh = _props.focusInputOnChange,\n    focusInputOnChange = _props$focusInputOnCh === void 0 ? true : _props$focusInputOnCh,\n    _props$clampValueOnBl = _props.clampValueOnBlur,\n    clampValueOnBlur = _props$clampValueOnBl === void 0 ? true : _props$clampValueOnBl,\n    _props$keepWithinRang = _props.keepWithinRange,\n    keepWithinRange = _props$keepWithinRang === void 0 ? true : _props$keepWithinRang,\n    _props$min = _props.min,\n    min = _props$min === void 0 ? minSafeInteger : _props$min,\n    _props$max = _props.max,\n    max = _props$max === void 0 ? maxSafeInteger : _props$max,\n    _props$step = _props.step,\n    stepProp = _props$step === void 0 ? 1 : _props$step,\n    isReadOnly = _props.isReadOnly,\n    isDisabled = _props.isDisabled,\n    isRequired = _props.isRequired,\n    isInvalid = _props.isInvalid,\n    _props$pattern = _props.pattern,\n    pattern = _props$pattern === void 0 ? \"[0-9]*(.[0-9]+)?\" : _props$pattern,\n    _props$inputMode = _props.inputMode,\n    inputMode = _props$inputMode === void 0 ? \"decimal\" : _props$inputMode,\n    allowMouseWheel = _props.allowMouseWheel,\n    id = _props.id;\n  _props.onChange;\n  _props.precision;\n  var name = _props.name,\n    ariaDescBy = _props[\"aria-describedby\"],\n    ariaLabel = _props[\"aria-label\"],\n    ariaLabelledBy = _props[\"aria-labelledby\"],\n    onFocusProp = _props.onFocus,\n    onBlurProp = _props.onBlur,\n    onInvalidProp = _props.onInvalid,\n    getAriaValueTextProp = _props.getAriaValueText,\n    isValidCharacterProp = _props.isValidCharacter,\n    formatValue = _props.format,\n    parseValue = _props.parse,\n    htmlProps = _objectWithoutPropertiesLoose(_props, _excluded$1);\n  var onFocus = useCallbackRef(onFocusProp);\n  var onBlur = useCallbackRef(onBlurProp);\n  var onInvalid = useCallbackRef(onInvalidProp);\n  var isValidCharacter = useCallbackRef(isValidCharacterProp != null ? isValidCharacterProp : isFloatingPointNumericCharacter);\n  var getAriaValueText = useCallbackRef(getAriaValueTextProp);\n  /**\n   * Leverage the `useCounter` hook since it provides\n   * the functionality to `increment`, `decrement` and `update`\n   * counter values\n   */\n\n  var counter = useCounter(props);\n  var updateFn = counter.update,\n    incrementFn = counter.increment,\n    decrementFn = counter.decrement;\n  /**\n   * Keep track of the focused state of the input,\n   * so user can this to change the styles of the\n   * `spinners`, maybe :)\n   */\n\n  var _useBoolean = useBoolean(),\n    isFocused = _useBoolean[0],\n    setFocused = _useBoolean[1];\n  var isInteractive = !(isReadOnly || isDisabled);\n  var inputRef = React.useRef(null);\n  var inputSelectionRef = React.useRef(null);\n  var incrementButtonRef = React.useRef(null);\n  var decrementButtonRef = React.useRef(null);\n  var sanitize = React.useCallback(function (value) {\n    return value.split(\"\").filter(isValidCharacter).join(\"\");\n  }, [isValidCharacter]);\n  var parse = React.useCallback(function (value) {\n    var _parseValue;\n    return (_parseValue = parseValue == null ? void 0 : parseValue(value)) != null ? _parseValue : value;\n  }, [parseValue]);\n  var format = React.useCallback(function (value) {\n    var _formatValue;\n    return ((_formatValue = formatValue == null ? void 0 : formatValue(value)) != null ? _formatValue : value).toString();\n  }, [formatValue]);\n  useUpdateEffect(function () {\n    if (counter.valueAsNumber > max) {\n      onInvalid == null ? void 0 : onInvalid(\"rangeOverflow\", format(counter.value), counter.valueAsNumber);\n    } else if (counter.valueAsNumber < min) {\n      onInvalid == null ? void 0 : onInvalid(\"rangeOverflow\", format(counter.value), counter.valueAsNumber);\n    }\n  }, [counter.valueAsNumber, counter.value, format, onInvalid]);\n  /**\n   * Sync state with uncontrolled form libraries like `react-hook-form`.\n   */\n\n  useSafeLayoutEffect(function () {\n    if (!inputRef.current) return;\n    var notInSync = inputRef.current.value != counter.value;\n    if (notInSync) {\n      var parsedInput = parse(inputRef.current.value);\n      counter.setValue(sanitize(parsedInput));\n    }\n  }, [parse, sanitize]);\n  var increment = React.useCallback(function (step) {\n    if (step === void 0) {\n      step = stepProp;\n    }\n    if (isInteractive) {\n      incrementFn(step);\n    }\n  }, [incrementFn, isInteractive, stepProp]);\n  var decrement = React.useCallback(function (step) {\n    if (step === void 0) {\n      step = stepProp;\n    }\n    if (isInteractive) {\n      decrementFn(step);\n    }\n  }, [decrementFn, isInteractive, stepProp]);\n  /**\n   * Leverage the `useSpinner` hook to spin the input's value\n   * when long press on the up and down buttons.\n   *\n   * This leverages `setInterval` internally\n   */\n\n  var spinner = useSpinner(increment, decrement);\n  useAttributeObserver(incrementButtonRef, \"disabled\", spinner.stop, spinner.isSpinning);\n  useAttributeObserver(decrementButtonRef, \"disabled\", spinner.stop, spinner.isSpinning);\n  /**\n   * The `onChange` handler filters out any character typed\n   * that isn't floating point compatible.\n   */\n\n  var onChange = React.useCallback(function (event) {\n    var evt = event.nativeEvent;\n    if (evt.isComposing) return;\n    var parsedInput = parse(event.currentTarget.value);\n    updateFn(sanitize(parsedInput));\n    inputSelectionRef.current = {\n      start: event.currentTarget.selectionStart,\n      end: event.currentTarget.selectionEnd\n    };\n  }, [updateFn, sanitize, parse]);\n  var _onFocus = React.useCallback(function (event) {\n    var _inputSelectionRef$cu, _event$currentTarget$, _inputSelectionRef$cu2;\n    onFocus == null ? void 0 : onFocus(event);\n    if (!inputSelectionRef.current) return;\n    /**\n     * restore selection if custom format string replacement moved it to the end\n     */\n\n    event.target.selectionStart = (_inputSelectionRef$cu = inputSelectionRef.current.start) != null ? _inputSelectionRef$cu : (_event$currentTarget$ = event.currentTarget.value) == null ? void 0 : _event$currentTarget$.length;\n    event.currentTarget.selectionEnd = (_inputSelectionRef$cu2 = inputSelectionRef.current.end) != null ? _inputSelectionRef$cu2 : event.currentTarget.selectionStart;\n  }, [onFocus]);\n  var onKeyDown = React.useCallback(function (event) {\n    if (event.nativeEvent.isComposing) return;\n    if (!isValidNumericKeyboardEvent(event, isValidCharacter)) {\n      event.preventDefault();\n    }\n    /**\n     * Keyboard Accessibility\n     *\n     * We want to increase or decrease the input's value\n     * based on if the user the arrow keys.\n     *\n     * @see https://www.w3.org/TR/wai-aria-practices-1.1/#keyboard-interaction-17\n     */\n\n    var stepFactor = getStepFactor(event) * stepProp;\n    var eventKey = normalizeEventKey(event);\n    var keyMap = {\n      ArrowUp: function ArrowUp() {\n        return increment(stepFactor);\n      },\n      ArrowDown: function ArrowDown() {\n        return decrement(stepFactor);\n      },\n      Home: function Home() {\n        return updateFn(min);\n      },\n      End: function End() {\n        return updateFn(max);\n      }\n    };\n    var action = keyMap[eventKey];\n    if (action) {\n      event.preventDefault();\n      action(event);\n    }\n  }, [isValidCharacter, stepProp, increment, decrement, updateFn, min, max]);\n  var getStepFactor = function getStepFactor(event) {\n    var ratio = 1;\n    if (event.metaKey || event.ctrlKey) {\n      ratio = 0.1;\n    }\n    if (event.shiftKey) {\n      ratio = 10;\n    }\n    return ratio;\n  };\n  /**\n   * If user would like to use a human-readable representation\n   * of the value, rather than the value itself they can pass `getAriaValueText`\n   *\n   * @see https://www.w3.org/TR/wai-aria-practices-1.1/#wai-aria-roles-states-and-properties-18\n   * @see https://www.w3.org/TR/wai-aria-1.1/#aria-valuetext\n   */\n\n  var ariaValueText = React.useMemo(function () {\n    var text = getAriaValueText == null ? void 0 : getAriaValueText(counter.value);\n    if (!isNull(text)) return text;\n    var defaultText = counter.value.toString(); // empty string is an invalid ARIA attribute value\n\n    return !defaultText ? undefined : defaultText;\n  }, [counter.value, getAriaValueText]);\n  /**\n   * Function that clamps the input's value on blur\n   */\n\n  var validateAndClamp = React.useCallback(function () {\n    var next = counter.value;\n    if (next === \"\") return;\n    if (counter.valueAsNumber < min) {\n      next = min;\n    }\n    if (counter.valueAsNumber > max) {\n      next = max;\n    }\n    /**\n     * `counter.cast` does 2 things:\n     *\n     * - sanitize the value by using parseFloat and some Regex\n     * - used to round value to computed precision or decimal points\n     */\n\n    counter.cast(next);\n  }, [counter, max, min]);\n  var onInputBlur = React.useCallback(function () {\n    setFocused.off();\n    if (clampValueOnBlur) {\n      validateAndClamp();\n    }\n  }, [clampValueOnBlur, setFocused, validateAndClamp]);\n  var focusInput = React.useCallback(function () {\n    if (focusInputOnChange) {\n      focus(inputRef.current, {\n        nextTick: true\n      });\n    }\n  }, [focusInputOnChange]);\n  var spinUp = React.useCallback(function (event) {\n    event.preventDefault();\n    spinner.up();\n    focusInput();\n  }, [focusInput, spinner]);\n  var spinDown = React.useCallback(function (event) {\n    event.preventDefault();\n    spinner.down();\n    focusInput();\n  }, [focusInput, spinner]);\n  useEventListener(\"wheel\", function (event) {\n    var doc = getOwnerDocument(inputRef.current);\n    var isInputFocused = doc.activeElement === inputRef.current;\n    if (!allowMouseWheel || !isInputFocused) return;\n    event.preventDefault();\n    var stepFactor = getStepFactor(event) * stepProp;\n    var direction = Math.sign(event.deltaY);\n    if (direction === -1) {\n      increment(stepFactor);\n    } else if (direction === 1) {\n      decrement(stepFactor);\n    }\n  }, inputRef.current, {\n    passive: false\n  });\n  var getIncrementButtonProps = React.useCallback(function (props, ref) {\n    if (props === void 0) {\n      props = {};\n    }\n    if (ref === void 0) {\n      ref = null;\n    }\n    var disabled = isDisabled || keepWithinRange && counter.isAtMax;\n    return _extends({}, props, {\n      ref: mergeRefs(ref, incrementButtonRef),\n      role: \"button\",\n      tabIndex: -1,\n      onPointerDown: callAllHandlers(props.onPointerDown, function (event) {\n        if (!disabled) spinUp(event);\n      }),\n      onPointerLeave: callAllHandlers(props.onPointerLeave, spinner.stop),\n      onPointerUp: callAllHandlers(props.onPointerUp, spinner.stop),\n      disabled: disabled,\n      \"aria-disabled\": ariaAttr(disabled)\n    });\n  }, [counter.isAtMax, keepWithinRange, spinUp, spinner.stop, isDisabled]);\n  var getDecrementButtonProps = React.useCallback(function (props, ref) {\n    if (props === void 0) {\n      props = {};\n    }\n    if (ref === void 0) {\n      ref = null;\n    }\n    var disabled = isDisabled || keepWithinRange && counter.isAtMin;\n    return _extends({}, props, {\n      ref: mergeRefs(ref, decrementButtonRef),\n      role: \"button\",\n      tabIndex: -1,\n      onPointerDown: callAllHandlers(props.onPointerDown, function (event) {\n        if (!disabled) spinDown(event);\n      }),\n      onPointerLeave: callAllHandlers(props.onPointerLeave, spinner.stop),\n      onPointerUp: callAllHandlers(props.onPointerUp, spinner.stop),\n      disabled: disabled,\n      \"aria-disabled\": ariaAttr(disabled)\n    });\n  }, [counter.isAtMin, keepWithinRange, spinDown, spinner.stop, isDisabled]);\n  var getInputProps = React.useCallback(function (props, ref) {\n    var _props$readOnly, _props$readOnly2, _props$required, _props$required2;\n    if (props === void 0) {\n      props = {};\n    }\n    if (ref === void 0) {\n      ref = null;\n    }\n    return _extends({\n      name: name,\n      inputMode: inputMode,\n      type: \"text\",\n      pattern: pattern,\n      \"aria-labelledby\": ariaLabelledBy,\n      \"aria-label\": ariaLabel,\n      \"aria-describedby\": ariaDescBy,\n      id: id,\n      disabled: isDisabled\n    }, props, {\n      readOnly: (_props$readOnly = props.readOnly) != null ? _props$readOnly : isReadOnly,\n      \"aria-readonly\": (_props$readOnly2 = props.readOnly) != null ? _props$readOnly2 : isReadOnly,\n      \"aria-required\": (_props$required = props.required) != null ? _props$required : isRequired,\n      required: (_props$required2 = props.required) != null ? _props$required2 : isRequired,\n      ref: mergeRefs(inputRef, ref),\n      value: format(counter.value),\n      role: \"spinbutton\",\n      \"aria-valuemin\": min,\n      \"aria-valuemax\": max,\n      \"aria-valuenow\": Number.isNaN(counter.valueAsNumber) ? undefined : counter.valueAsNumber,\n      \"aria-invalid\": ariaAttr(isInvalid != null ? isInvalid : counter.isOutOfRange),\n      \"aria-valuetext\": ariaValueText,\n      autoComplete: \"off\",\n      autoCorrect: \"off\",\n      onChange: callAllHandlers(props.onChange, onChange),\n      onKeyDown: callAllHandlers(props.onKeyDown, onKeyDown),\n      onFocus: callAllHandlers(props.onFocus, _onFocus, setFocused.on),\n      onBlur: callAllHandlers(props.onBlur, onBlur, onInputBlur)\n    });\n  }, [name, inputMode, pattern, ariaLabelledBy, ariaLabel, format, ariaDescBy, id, isDisabled, isRequired, isReadOnly, isInvalid, counter.value, counter.valueAsNumber, counter.isOutOfRange, min, max, ariaValueText, onChange, onKeyDown, _onFocus, setFocused.on, onBlur, onInputBlur]);\n  return {\n    value: format(counter.value),\n    valueAsNumber: counter.valueAsNumber,\n    isFocused: isFocused,\n    isDisabled: isDisabled,\n    isReadOnly: isReadOnly,\n    getIncrementButtonProps: getIncrementButtonProps,\n    getDecrementButtonProps: getDecrementButtonProps,\n    getInputProps: getInputProps,\n    htmlProps: htmlProps\n  };\n}\nvar _excluded = [\"htmlProps\"];\n\n/**\n * React context used to communicate between components\n */\nvar _createContext = createContext({\n    name: \"NumberInputContext\",\n    errorMessage: \"useNumberInputContext: `context` is undefined. Seems you forgot to wrap number-input's components within <NumberInput />\"\n  }),\n  NumberInputProvider = _createContext[0],\n  useNumberInputContext = _createContext[1];\n\n/**\n * NumberInput\n *\n * React component that provides context and logic to all\n * number input sub-components.\n *\n * It renders a `div` by default.\n *\n * @see Docs http://chakra-ui.com/numberinput\n */\nvar NumberInput = /*#__PURE__*/forwardRef(function (props, ref) {\n  var styles = useMultiStyleConfig(\"NumberInput\", props);\n  var ownProps = omitThemingProps(props);\n  var controlProps = useFormControlProps(ownProps);\n  var _useNumberInput = useNumberInput(controlProps),\n    htmlProps = _useNumberInput.htmlProps,\n    context = _objectWithoutPropertiesLoose(_useNumberInput, _excluded);\n  var ctx = React.useMemo(function () {\n    return context;\n  }, [context]);\n  return /*#__PURE__*/React.createElement(NumberInputProvider, {\n    value: ctx\n  }, /*#__PURE__*/React.createElement(StylesProvider, {\n    value: styles\n  }, /*#__PURE__*/React.createElement(chakra.div, _extends({}, htmlProps, {\n    ref: ref,\n    className: cx(\"chakra-numberinput\", props.className),\n    __css: _extends({\n      position: \"relative\",\n      zIndex: 0\n    }, styles.root)\n  }))));\n});\nif (__DEV__) {\n  NumberInput.displayName = \"NumberInput\";\n}\n\n/**\n * NumberInputStepper\n *\n * React component used to group the increment and decrement\n * button spinners.\n *\n * It renders a `div` by default.\n *\n * @see Docs http://chakra-ui.com/components/number-input\n */\nvar NumberInputStepper = /*#__PURE__*/forwardRef(function (props, ref) {\n  var styles = useStyles();\n  return /*#__PURE__*/React.createElement(chakra.div, _extends({\n    \"aria-hidden\": true,\n    ref: ref\n  }, props, {\n    __css: _extends({\n      display: \"flex\",\n      flexDirection: \"column\",\n      position: \"absolute\",\n      top: \"0\",\n      insetEnd: \"0px\",\n      margin: \"1px\",\n      height: \"calc(100% - 2px)\",\n      zIndex: 1\n    }, styles.stepperGroup)\n  }));\n});\nif (__DEV__) {\n  NumberInputStepper.displayName = \"NumberInputStepper\";\n}\n\n/**\n * NumberInputField\n *\n * React component that represents the actual `input` field\n * where users can type to edit numeric values.\n *\n * It renders an `input` by default and ensures only numeric\n * values can be typed.\n *\n * @see Docs http://chakra-ui.com/numberinput\n */\nvar NumberInputField = /*#__PURE__*/forwardRef(function (props, ref) {\n  var _useNumberInputContex = useNumberInputContext(),\n    getInputProps = _useNumberInputContex.getInputProps;\n  var input = getInputProps(props, ref);\n  var styles = useStyles();\n  return /*#__PURE__*/React.createElement(chakra.input, _extends({}, input, {\n    className: cx(\"chakra-numberinput__field\", props.className),\n    __css: _extends({\n      width: \"100%\"\n    }, styles.field)\n  }));\n});\nif (__DEV__) {\n  NumberInputField.displayName = \"NumberInputField\";\n}\nvar StyledStepper = chakra(\"div\", {\n  baseStyle: {\n    display: \"flex\",\n    justifyContent: \"center\",\n    alignItems: \"center\",\n    flex: 1,\n    transitionProperty: \"common\",\n    transitionDuration: \"normal\",\n    userSelect: \"none\",\n    cursor: \"pointer\",\n    lineHeight: \"normal\"\n  }\n});\n\n/**\n * NumberDecrementStepper\n *\n * React component used to decrement the number input's value\n *\n * It renders a `div` with `role=button` by default\n */\nvar NumberDecrementStepper = /*#__PURE__*/forwardRef(function (props, ref) {\n  var _props$children;\n  var styles = useStyles();\n  var _useNumberInputContex2 = useNumberInputContext(),\n    getDecrementButtonProps = _useNumberInputContex2.getDecrementButtonProps;\n  var decrement = getDecrementButtonProps(props, ref);\n  return /*#__PURE__*/React.createElement(StyledStepper, _extends({}, decrement, {\n    __css: styles.stepper\n  }), (_props$children = props.children) != null ? _props$children : /*#__PURE__*/React.createElement(TriangleDownIcon, null));\n});\nif (__DEV__) {\n  NumberDecrementStepper.displayName = \"NumberDecrementStepper\";\n}\n\n/**\n * NumberIncrementStepper\n *\n * React component used to increment the number input's value\n *\n * It renders a `div` with `role=button` by default\n */\nvar NumberIncrementStepper = /*#__PURE__*/forwardRef(function (props, ref) {\n  var _props$children2;\n  var _useNumberInputContex3 = useNumberInputContext(),\n    getIncrementButtonProps = _useNumberInputContex3.getIncrementButtonProps;\n  var increment = getIncrementButtonProps(props, ref);\n  var styles = useStyles();\n  return /*#__PURE__*/React.createElement(StyledStepper, _extends({}, increment, {\n    __css: styles.stepper\n  }), (_props$children2 = props.children) != null ? _props$children2 : /*#__PURE__*/React.createElement(TriangleUpIcon, null));\n});\nif (__DEV__) {\n  NumberIncrementStepper.displayName = \"NumberIncrementStepper\";\n}\nexport { NumberDecrementStepper, NumberIncrementStepper, NumberInput, NumberInputField, NumberInputStepper, StyledStepper, useNumberInput };","map":{"version":3,"names":["useFormControlProps","forwardRef","useMultiStyleConfig","omitThemingProps","StylesProvider","chakra","useStyles","getOwnerWindow","normalizeEventKey","isNull","focus","getOwnerDocument","callAllHandlers","ariaAttr","minSafeInteger","maxSafeInteger","cx","__DEV__","mergeRefs","createContext","React","useState","useRef","useCallback","Icon","useCounter","useInterval","useUnmountEffect","useCallbackRef","useBoolean","useUpdateEffect","useSafeLayoutEffect","useEventListener","_extends","Object","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","_objectWithoutPropertiesLoose","excluded","sourceKeys","keys","indexOf","TriangleDownIcon","props","createElement","viewBox","fill","d","TriangleUpIcon","_arrayLikeToArray","arr","len","arr2","Array","_unsupportedIterableToArray","o","minLen","n","toString","slice","constructor","name","from","test","_createForOfIteratorHelperLoose","allowArrayLike","it","Symbol","iterator","next","bind","isArray","done","value","TypeError","useAttributeObserver","ref","attributes","fn","enabled","useEffect","current","win","attrs","obs","MutationObserver","changes","_iterator","_step","change","type","attributeName","includes","observe","attributeFilter","disconnect","CONTINUOUS_CHANGE_INTERVAL","CONTINUOUS_CHANGE_DELAY","useSpinner","increment","decrement","_useState","isSpinning","setIsSpinning","_useState2","action","setAction","_useState3","runOnce","setRunOnce","timeoutRef","removeTimeout","clearTimeout","up","setTimeout","down","stop","_excluded$1","FLOATING_POINT_REGEX","isFloatingPointNumericCharacter","character","isValidNumericKeyboardEvent","event","isValid","isModifierKey","ctrlKey","altKey","metaKey","isSingleCharacterKey","useNumberInput","_props","_props$focusInputOnCh","focusInputOnChange","_props$clampValueOnBl","clampValueOnBlur","_props$keepWithinRang","keepWithinRange","_props$min","min","_props$max","max","_props$step","step","stepProp","isReadOnly","isDisabled","isRequired","isInvalid","_props$pattern","pattern","_props$inputMode","inputMode","allowMouseWheel","id","onChange","precision","ariaDescBy","ariaLabel","ariaLabelledBy","onFocusProp","onFocus","onBlurProp","onBlur","onInvalidProp","onInvalid","getAriaValueTextProp","getAriaValueText","isValidCharacterProp","isValidCharacter","formatValue","format","parseValue","parse","htmlProps","counter","updateFn","update","incrementFn","decrementFn","_useBoolean","isFocused","setFocused","isInteractive","inputRef","inputSelectionRef","incrementButtonRef","decrementButtonRef","sanitize","split","filter","join","_parseValue","_formatValue","valueAsNumber","notInSync","parsedInput","setValue","spinner","evt","nativeEvent","isComposing","currentTarget","start","selectionStart","end","selectionEnd","_onFocus","_inputSelectionRef$cu","_event$currentTarget$","_inputSelectionRef$cu2","onKeyDown","preventDefault","stepFactor","getStepFactor","eventKey","keyMap","ArrowUp","ArrowDown","Home","End","ratio","shiftKey","ariaValueText","useMemo","text","defaultText","undefined","validateAndClamp","cast","onInputBlur","off","focusInput","nextTick","spinUp","spinDown","doc","isInputFocused","activeElement","direction","Math","sign","deltaY","passive","getIncrementButtonProps","disabled","isAtMax","role","tabIndex","onPointerDown","onPointerLeave","onPointerUp","getDecrementButtonProps","isAtMin","getInputProps","_props$readOnly","_props$readOnly2","_props$required","_props$required2","readOnly","required","Number","isNaN","isOutOfRange","autoComplete","autoCorrect","on","_excluded","_createContext","errorMessage","NumberInputProvider","useNumberInputContext","NumberInput","styles","ownProps","controlProps","_useNumberInput","context","ctx","div","className","__css","position","zIndex","root","displayName","NumberInputStepper","display","flexDirection","top","insetEnd","margin","height","stepperGroup","NumberInputField","_useNumberInputContex","input","width","field","StyledStepper","baseStyle","justifyContent","alignItems","flex","transitionProperty","transitionDuration","userSelect","cursor","lineHeight","NumberDecrementStepper","_props$children","_useNumberInputContex2","stepper","children","NumberIncrementStepper","_props$children2","_useNumberInputContex3"],"sources":["D:/DSP_Management/node_modules/@chakra-ui/number-input/dist/chakra-ui-number-input.esm.js"],"sourcesContent":["import { useFormControlProps } from '@chakra-ui/form-control';\nimport { forwardRef, useMultiStyleConfig, omitThemingProps, StylesProvider, chakra, useStyles } from '@chakra-ui/system';\nimport { getOwnerWindow, normalizeEventKey, isNull, focus, getOwnerDocument, callAllHandlers, ariaAttr, minSafeInteger, maxSafeInteger, cx, __DEV__ } from '@chakra-ui/utils';\nimport { mergeRefs, createContext } from '@chakra-ui/react-utils';\nimport * as React from 'react';\nimport { useState, useRef, useCallback } from 'react';\nimport { Icon } from '@chakra-ui/icon';\nimport { useCounter } from '@chakra-ui/counter';\nimport { useInterval, useUnmountEffect, useCallbackRef, useBoolean, useUpdateEffect, useSafeLayoutEffect, useEventListener } from '@chakra-ui/hooks';\n\nfunction _extends() {\n  _extends = Object.assign || function (target) {\n    for (var i = 1; i < arguments.length; i++) {\n      var source = arguments[i];\n\n      for (var key in source) {\n        if (Object.prototype.hasOwnProperty.call(source, key)) {\n          target[key] = source[key];\n        }\n      }\n    }\n\n    return target;\n  };\n\n  return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n  if (source == null) return {};\n  var target = {};\n  var sourceKeys = Object.keys(source);\n  var key, i;\n\n  for (i = 0; i < sourceKeys.length; i++) {\n    key = sourceKeys[i];\n    if (excluded.indexOf(key) >= 0) continue;\n    target[key] = source[key];\n  }\n\n  return target;\n}\n\nvar TriangleDownIcon = function TriangleDownIcon(props) {\n  return /*#__PURE__*/React.createElement(Icon, _extends({\n    viewBox: \"0 0 24 24\"\n  }, props), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"currentColor\",\n    d: \"M21,5H3C2.621,5,2.275,5.214,2.105,5.553C1.937,5.892,1.973,6.297,2.2,6.6l9,12 c0.188,0.252,0.485,0.4,0.8,0.4s0.611-0.148,0.8-0.4l9-12c0.228-0.303,0.264-0.708,0.095-1.047C21.725,5.214,21.379,5,21,5z\"\n  }));\n};\nvar TriangleUpIcon = function TriangleUpIcon(props) {\n  return /*#__PURE__*/React.createElement(Icon, _extends({\n    viewBox: \"0 0 24 24\"\n  }, props), /*#__PURE__*/React.createElement(\"path\", {\n    fill: \"currentColor\",\n    d: \"M12.8,5.4c-0.377-0.504-1.223-0.504-1.6,0l-9,12c-0.228,0.303-0.264,0.708-0.095,1.047 C2.275,18.786,2.621,19,3,19h18c0.379,0,0.725-0.214,0.895-0.553c0.169-0.339,0.133-0.744-0.095-1.047L12.8,5.4z\"\n  }));\n};\n\nfunction _arrayLikeToArray(arr, len) {\n  if (len == null || len > arr.length) len = arr.length;\n\n  for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n  return arr2;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n  if (!o) return;\n  if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n  var n = Object.prototype.toString.call(o).slice(8, -1);\n  if (n === \"Object\" && o.constructor) n = o.constructor.name;\n  if (n === \"Map\" || n === \"Set\") return Array.from(o);\n  if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n  var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n  if (it) return (it = it.call(o)).next.bind(it);\n\n  if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n    if (it) o = it;\n    var i = 0;\n    return function () {\n      if (i >= o.length) return {\n        done: true\n      };\n      return {\n        done: false,\n        value: o[i++]\n      };\n    };\n  }\n\n  throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction useAttributeObserver(ref, attributes, fn, enabled) {\n  React.useEffect(function () {\n    if (!ref.current || !enabled) return;\n    var win = getOwnerWindow(ref.current);\n    var attrs = Array.isArray(attributes) ? attributes : [attributes];\n    var obs = new win.MutationObserver(function (changes) {\n      for (var _iterator = _createForOfIteratorHelperLoose(changes), _step; !(_step = _iterator()).done;) {\n        var change = _step.value;\n\n        if (change.type === \"attributes\" && change.attributeName && attrs.includes(change.attributeName)) {\n          fn(change);\n        }\n      }\n    });\n    obs.observe(ref.current, {\n      attributes: true,\n      attributeFilter: attrs\n    });\n    return function () {\n      return obs.disconnect();\n    };\n  });\n}\n\n/**\n * When click and hold on a button - the speed of auto changing the value.\n */\n\nvar CONTINUOUS_CHANGE_INTERVAL = 50;\n/**\n * When click and hold on a button - the delay before auto changing the value.\n */\n\nvar CONTINUOUS_CHANGE_DELAY = 300;\n\n/**\n * React hook used in the number input to spin its\n * value on long press of the spin buttons\n *\n * @param increment the function to increment\n * @param decrement the function to decrement\n */\nfunction useSpinner(increment, decrement) {\n  /**\n   * To keep incrementing/decrementing on press, we call that `spinning`\n   */\n  var _useState = useState(false),\n      isSpinning = _useState[0],\n      setIsSpinning = _useState[1]; // This state keeps track of the action (\"increment\" or \"decrement\")\n\n\n  var _useState2 = useState(null),\n      action = _useState2[0],\n      setAction = _useState2[1]; // To increment the value the first time you mousedown, we call that `runOnce`\n\n\n  var _useState3 = useState(true),\n      runOnce = _useState3[0],\n      setRunOnce = _useState3[1]; // Store the timeout instance id in a ref, so we can clear the timeout later\n\n\n  var timeoutRef = useRef(null); // Clears the timeout from memory\n\n  var removeTimeout = function removeTimeout() {\n    return clearTimeout(timeoutRef.current);\n  };\n  /**\n   * useInterval hook provides a performant way to\n   * update the state value at specific interval\n   */\n\n\n  useInterval(function () {\n    if (action === \"increment\") {\n      increment();\n    }\n\n    if (action === \"decrement\") {\n      decrement();\n    }\n  }, isSpinning ? CONTINUOUS_CHANGE_INTERVAL : null); // Function to activate the spinning and increment the value\n\n  var up = useCallback(function () {\n    // increment the first time\n    if (runOnce) {\n      increment();\n    } // after a delay, keep incrementing at interval (\"spinning up\")\n\n\n    timeoutRef.current = setTimeout(function () {\n      setRunOnce(false);\n      setIsSpinning(true);\n      setAction(\"increment\");\n    }, CONTINUOUS_CHANGE_DELAY);\n  }, [increment, runOnce]); // Function to activate the spinning and increment the value\n\n  var down = useCallback(function () {\n    // decrement the first time\n    if (runOnce) {\n      decrement();\n    } // after a delay, keep decrementing at interval (\"spinning down\")\n\n\n    timeoutRef.current = setTimeout(function () {\n      setRunOnce(false);\n      setIsSpinning(true);\n      setAction(\"decrement\");\n    }, CONTINUOUS_CHANGE_DELAY);\n  }, [decrement, runOnce]); // Function to stop spinning (useful for mouseup, keyup handlers)\n\n  var stop = useCallback(function () {\n    setRunOnce(true);\n    setIsSpinning(false);\n    removeTimeout();\n  }, []);\n  /**\n   * If the component unmounts while spinning,\n   * let's clear the timeout as well\n   */\n\n  useUnmountEffect(removeTimeout);\n  return {\n    up: up,\n    down: down,\n    stop: stop,\n    isSpinning: isSpinning\n  };\n}\n\nvar _excluded$1 = [\"focusInputOnChange\", \"clampValueOnBlur\", \"keepWithinRange\", \"min\", \"max\", \"step\", \"isReadOnly\", \"isDisabled\", \"isRequired\", \"isInvalid\", \"pattern\", \"inputMode\", \"allowMouseWheel\", \"id\", \"onChange\", \"precision\", \"name\", \"aria-describedby\", \"aria-label\", \"aria-labelledby\", \"onFocus\", \"onBlur\", \"onInvalid\", \"getAriaValueText\", \"isValidCharacter\", \"format\", \"parse\"];\nvar FLOATING_POINT_REGEX = /^[Ee0-9+\\-.]$/;\n/**\n * Determine if a character is a DOM floating point character\n * @see https://www.w3.org/TR/2012/WD-html-markup-20120329/datatypes.html#common.data.float\n */\n\nfunction isFloatingPointNumericCharacter(character) {\n  return FLOATING_POINT_REGEX.test(character);\n}\n\nfunction isValidNumericKeyboardEvent(event, isValid) {\n  if (event.key == null) return true;\n  var isModifierKey = event.ctrlKey || event.altKey || event.metaKey;\n  var isSingleCharacterKey = event.key.length === 1;\n  if (!isSingleCharacterKey || isModifierKey) return true;\n  return isValid(event.key);\n}\n\n/**\n * React hook that implements the WAI-ARIA Spin Button widget\n * and used to create numeric input fields.\n *\n * It returns prop getters you can use to build your own\n * custom number inputs.\n *\n * @see WAI-ARIA https://www.w3.org/TR/wai-aria-practices-1.1/#spinbutton\n * @see Docs     https://www.chakra-ui.com/useNumberInput\n * @see WHATWG   https://html.spec.whatwg.org/multipage/input.html#number-state-(type=number)\n */\nfunction useNumberInput(props) {\n  if (props === void 0) {\n    props = {};\n  }\n\n  var _props = props,\n      _props$focusInputOnCh = _props.focusInputOnChange,\n      focusInputOnChange = _props$focusInputOnCh === void 0 ? true : _props$focusInputOnCh,\n      _props$clampValueOnBl = _props.clampValueOnBlur,\n      clampValueOnBlur = _props$clampValueOnBl === void 0 ? true : _props$clampValueOnBl,\n      _props$keepWithinRang = _props.keepWithinRange,\n      keepWithinRange = _props$keepWithinRang === void 0 ? true : _props$keepWithinRang,\n      _props$min = _props.min,\n      min = _props$min === void 0 ? minSafeInteger : _props$min,\n      _props$max = _props.max,\n      max = _props$max === void 0 ? maxSafeInteger : _props$max,\n      _props$step = _props.step,\n      stepProp = _props$step === void 0 ? 1 : _props$step,\n      isReadOnly = _props.isReadOnly,\n      isDisabled = _props.isDisabled,\n      isRequired = _props.isRequired,\n      isInvalid = _props.isInvalid,\n      _props$pattern = _props.pattern,\n      pattern = _props$pattern === void 0 ? \"[0-9]*(.[0-9]+)?\" : _props$pattern,\n      _props$inputMode = _props.inputMode,\n      inputMode = _props$inputMode === void 0 ? \"decimal\" : _props$inputMode,\n      allowMouseWheel = _props.allowMouseWheel,\n      id = _props.id;\n      _props.onChange;\n      _props.precision;\n      var name = _props.name,\n      ariaDescBy = _props[\"aria-describedby\"],\n      ariaLabel = _props[\"aria-label\"],\n      ariaLabelledBy = _props[\"aria-labelledby\"],\n      onFocusProp = _props.onFocus,\n      onBlurProp = _props.onBlur,\n      onInvalidProp = _props.onInvalid,\n      getAriaValueTextProp = _props.getAriaValueText,\n      isValidCharacterProp = _props.isValidCharacter,\n      formatValue = _props.format,\n      parseValue = _props.parse,\n      htmlProps = _objectWithoutPropertiesLoose(_props, _excluded$1);\n\n  var onFocus = useCallbackRef(onFocusProp);\n  var onBlur = useCallbackRef(onBlurProp);\n  var onInvalid = useCallbackRef(onInvalidProp);\n  var isValidCharacter = useCallbackRef(isValidCharacterProp != null ? isValidCharacterProp : isFloatingPointNumericCharacter);\n  var getAriaValueText = useCallbackRef(getAriaValueTextProp);\n  /**\n   * Leverage the `useCounter` hook since it provides\n   * the functionality to `increment`, `decrement` and `update`\n   * counter values\n   */\n\n  var counter = useCounter(props);\n  var updateFn = counter.update,\n      incrementFn = counter.increment,\n      decrementFn = counter.decrement;\n  /**\n   * Keep track of the focused state of the input,\n   * so user can this to change the styles of the\n   * `spinners`, maybe :)\n   */\n\n  var _useBoolean = useBoolean(),\n      isFocused = _useBoolean[0],\n      setFocused = _useBoolean[1];\n\n  var isInteractive = !(isReadOnly || isDisabled);\n  var inputRef = React.useRef(null);\n  var inputSelectionRef = React.useRef(null);\n  var incrementButtonRef = React.useRef(null);\n  var decrementButtonRef = React.useRef(null);\n  var sanitize = React.useCallback(function (value) {\n    return value.split(\"\").filter(isValidCharacter).join(\"\");\n  }, [isValidCharacter]);\n  var parse = React.useCallback(function (value) {\n    var _parseValue;\n\n    return (_parseValue = parseValue == null ? void 0 : parseValue(value)) != null ? _parseValue : value;\n  }, [parseValue]);\n  var format = React.useCallback(function (value) {\n    var _formatValue;\n\n    return ((_formatValue = formatValue == null ? void 0 : formatValue(value)) != null ? _formatValue : value).toString();\n  }, [formatValue]);\n  useUpdateEffect(function () {\n    if (counter.valueAsNumber > max) {\n      onInvalid == null ? void 0 : onInvalid(\"rangeOverflow\", format(counter.value), counter.valueAsNumber);\n    } else if (counter.valueAsNumber < min) {\n      onInvalid == null ? void 0 : onInvalid(\"rangeOverflow\", format(counter.value), counter.valueAsNumber);\n    }\n  }, [counter.valueAsNumber, counter.value, format, onInvalid]);\n  /**\n   * Sync state with uncontrolled form libraries like `react-hook-form`.\n   */\n\n  useSafeLayoutEffect(function () {\n    if (!inputRef.current) return;\n    var notInSync = inputRef.current.value != counter.value;\n\n    if (notInSync) {\n      var parsedInput = parse(inputRef.current.value);\n      counter.setValue(sanitize(parsedInput));\n    }\n  }, [parse, sanitize]);\n  var increment = React.useCallback(function (step) {\n    if (step === void 0) {\n      step = stepProp;\n    }\n\n    if (isInteractive) {\n      incrementFn(step);\n    }\n  }, [incrementFn, isInteractive, stepProp]);\n  var decrement = React.useCallback(function (step) {\n    if (step === void 0) {\n      step = stepProp;\n    }\n\n    if (isInteractive) {\n      decrementFn(step);\n    }\n  }, [decrementFn, isInteractive, stepProp]);\n  /**\n   * Leverage the `useSpinner` hook to spin the input's value\n   * when long press on the up and down buttons.\n   *\n   * This leverages `setInterval` internally\n   */\n\n  var spinner = useSpinner(increment, decrement);\n  useAttributeObserver(incrementButtonRef, \"disabled\", spinner.stop, spinner.isSpinning);\n  useAttributeObserver(decrementButtonRef, \"disabled\", spinner.stop, spinner.isSpinning);\n  /**\n   * The `onChange` handler filters out any character typed\n   * that isn't floating point compatible.\n   */\n\n  var onChange = React.useCallback(function (event) {\n    var evt = event.nativeEvent;\n    if (evt.isComposing) return;\n    var parsedInput = parse(event.currentTarget.value);\n    updateFn(sanitize(parsedInput));\n    inputSelectionRef.current = {\n      start: event.currentTarget.selectionStart,\n      end: event.currentTarget.selectionEnd\n    };\n  }, [updateFn, sanitize, parse]);\n\n  var _onFocus = React.useCallback(function (event) {\n    var _inputSelectionRef$cu, _event$currentTarget$, _inputSelectionRef$cu2;\n\n    onFocus == null ? void 0 : onFocus(event);\n    if (!inputSelectionRef.current) return;\n    /**\n     * restore selection if custom format string replacement moved it to the end\n     */\n\n    event.target.selectionStart = (_inputSelectionRef$cu = inputSelectionRef.current.start) != null ? _inputSelectionRef$cu : (_event$currentTarget$ = event.currentTarget.value) == null ? void 0 : _event$currentTarget$.length;\n    event.currentTarget.selectionEnd = (_inputSelectionRef$cu2 = inputSelectionRef.current.end) != null ? _inputSelectionRef$cu2 : event.currentTarget.selectionStart;\n  }, [onFocus]);\n\n  var onKeyDown = React.useCallback(function (event) {\n    if (event.nativeEvent.isComposing) return;\n\n    if (!isValidNumericKeyboardEvent(event, isValidCharacter)) {\n      event.preventDefault();\n    }\n    /**\n     * Keyboard Accessibility\n     *\n     * We want to increase or decrease the input's value\n     * based on if the user the arrow keys.\n     *\n     * @see https://www.w3.org/TR/wai-aria-practices-1.1/#keyboard-interaction-17\n     */\n\n\n    var stepFactor = getStepFactor(event) * stepProp;\n    var eventKey = normalizeEventKey(event);\n    var keyMap = {\n      ArrowUp: function ArrowUp() {\n        return increment(stepFactor);\n      },\n      ArrowDown: function ArrowDown() {\n        return decrement(stepFactor);\n      },\n      Home: function Home() {\n        return updateFn(min);\n      },\n      End: function End() {\n        return updateFn(max);\n      }\n    };\n    var action = keyMap[eventKey];\n\n    if (action) {\n      event.preventDefault();\n      action(event);\n    }\n  }, [isValidCharacter, stepProp, increment, decrement, updateFn, min, max]);\n\n  var getStepFactor = function getStepFactor(event) {\n    var ratio = 1;\n\n    if (event.metaKey || event.ctrlKey) {\n      ratio = 0.1;\n    }\n\n    if (event.shiftKey) {\n      ratio = 10;\n    }\n\n    return ratio;\n  };\n  /**\n   * If user would like to use a human-readable representation\n   * of the value, rather than the value itself they can pass `getAriaValueText`\n   *\n   * @see https://www.w3.org/TR/wai-aria-practices-1.1/#wai-aria-roles-states-and-properties-18\n   * @see https://www.w3.org/TR/wai-aria-1.1/#aria-valuetext\n   */\n\n\n  var ariaValueText = React.useMemo(function () {\n    var text = getAriaValueText == null ? void 0 : getAriaValueText(counter.value);\n    if (!isNull(text)) return text;\n    var defaultText = counter.value.toString(); // empty string is an invalid ARIA attribute value\n\n    return !defaultText ? undefined : defaultText;\n  }, [counter.value, getAriaValueText]);\n  /**\n   * Function that clamps the input's value on blur\n   */\n\n  var validateAndClamp = React.useCallback(function () {\n    var next = counter.value;\n    if (next === \"\") return;\n\n    if (counter.valueAsNumber < min) {\n      next = min;\n    }\n\n    if (counter.valueAsNumber > max) {\n      next = max;\n    }\n    /**\n     * `counter.cast` does 2 things:\n     *\n     * - sanitize the value by using parseFloat and some Regex\n     * - used to round value to computed precision or decimal points\n     */\n\n\n    counter.cast(next);\n  }, [counter, max, min]);\n  var onInputBlur = React.useCallback(function () {\n    setFocused.off();\n\n    if (clampValueOnBlur) {\n      validateAndClamp();\n    }\n  }, [clampValueOnBlur, setFocused, validateAndClamp]);\n  var focusInput = React.useCallback(function () {\n    if (focusInputOnChange) {\n      focus(inputRef.current, {\n        nextTick: true\n      });\n    }\n  }, [focusInputOnChange]);\n  var spinUp = React.useCallback(function (event) {\n    event.preventDefault();\n    spinner.up();\n    focusInput();\n  }, [focusInput, spinner]);\n  var spinDown = React.useCallback(function (event) {\n    event.preventDefault();\n    spinner.down();\n    focusInput();\n  }, [focusInput, spinner]);\n  useEventListener(\"wheel\", function (event) {\n    var doc = getOwnerDocument(inputRef.current);\n    var isInputFocused = doc.activeElement === inputRef.current;\n    if (!allowMouseWheel || !isInputFocused) return;\n    event.preventDefault();\n    var stepFactor = getStepFactor(event) * stepProp;\n    var direction = Math.sign(event.deltaY);\n\n    if (direction === -1) {\n      increment(stepFactor);\n    } else if (direction === 1) {\n      decrement(stepFactor);\n    }\n  }, inputRef.current, {\n    passive: false\n  });\n  var getIncrementButtonProps = React.useCallback(function (props, ref) {\n    if (props === void 0) {\n      props = {};\n    }\n\n    if (ref === void 0) {\n      ref = null;\n    }\n\n    var disabled = isDisabled || keepWithinRange && counter.isAtMax;\n    return _extends({}, props, {\n      ref: mergeRefs(ref, incrementButtonRef),\n      role: \"button\",\n      tabIndex: -1,\n      onPointerDown: callAllHandlers(props.onPointerDown, function (event) {\n        if (!disabled) spinUp(event);\n      }),\n      onPointerLeave: callAllHandlers(props.onPointerLeave, spinner.stop),\n      onPointerUp: callAllHandlers(props.onPointerUp, spinner.stop),\n      disabled: disabled,\n      \"aria-disabled\": ariaAttr(disabled)\n    });\n  }, [counter.isAtMax, keepWithinRange, spinUp, spinner.stop, isDisabled]);\n  var getDecrementButtonProps = React.useCallback(function (props, ref) {\n    if (props === void 0) {\n      props = {};\n    }\n\n    if (ref === void 0) {\n      ref = null;\n    }\n\n    var disabled = isDisabled || keepWithinRange && counter.isAtMin;\n    return _extends({}, props, {\n      ref: mergeRefs(ref, decrementButtonRef),\n      role: \"button\",\n      tabIndex: -1,\n      onPointerDown: callAllHandlers(props.onPointerDown, function (event) {\n        if (!disabled) spinDown(event);\n      }),\n      onPointerLeave: callAllHandlers(props.onPointerLeave, spinner.stop),\n      onPointerUp: callAllHandlers(props.onPointerUp, spinner.stop),\n      disabled: disabled,\n      \"aria-disabled\": ariaAttr(disabled)\n    });\n  }, [counter.isAtMin, keepWithinRange, spinDown, spinner.stop, isDisabled]);\n  var getInputProps = React.useCallback(function (props, ref) {\n    var _props$readOnly, _props$readOnly2, _props$required, _props$required2;\n\n    if (props === void 0) {\n      props = {};\n    }\n\n    if (ref === void 0) {\n      ref = null;\n    }\n\n    return _extends({\n      name: name,\n      inputMode: inputMode,\n      type: \"text\",\n      pattern: pattern,\n      \"aria-labelledby\": ariaLabelledBy,\n      \"aria-label\": ariaLabel,\n      \"aria-describedby\": ariaDescBy,\n      id: id,\n      disabled: isDisabled\n    }, props, {\n      readOnly: (_props$readOnly = props.readOnly) != null ? _props$readOnly : isReadOnly,\n      \"aria-readonly\": (_props$readOnly2 = props.readOnly) != null ? _props$readOnly2 : isReadOnly,\n      \"aria-required\": (_props$required = props.required) != null ? _props$required : isRequired,\n      required: (_props$required2 = props.required) != null ? _props$required2 : isRequired,\n      ref: mergeRefs(inputRef, ref),\n      value: format(counter.value),\n      role: \"spinbutton\",\n      \"aria-valuemin\": min,\n      \"aria-valuemax\": max,\n      \"aria-valuenow\": Number.isNaN(counter.valueAsNumber) ? undefined : counter.valueAsNumber,\n      \"aria-invalid\": ariaAttr(isInvalid != null ? isInvalid : counter.isOutOfRange),\n      \"aria-valuetext\": ariaValueText,\n      autoComplete: \"off\",\n      autoCorrect: \"off\",\n      onChange: callAllHandlers(props.onChange, onChange),\n      onKeyDown: callAllHandlers(props.onKeyDown, onKeyDown),\n      onFocus: callAllHandlers(props.onFocus, _onFocus, setFocused.on),\n      onBlur: callAllHandlers(props.onBlur, onBlur, onInputBlur)\n    });\n  }, [name, inputMode, pattern, ariaLabelledBy, ariaLabel, format, ariaDescBy, id, isDisabled, isRequired, isReadOnly, isInvalid, counter.value, counter.valueAsNumber, counter.isOutOfRange, min, max, ariaValueText, onChange, onKeyDown, _onFocus, setFocused.on, onBlur, onInputBlur]);\n  return {\n    value: format(counter.value),\n    valueAsNumber: counter.valueAsNumber,\n    isFocused: isFocused,\n    isDisabled: isDisabled,\n    isReadOnly: isReadOnly,\n    getIncrementButtonProps: getIncrementButtonProps,\n    getDecrementButtonProps: getDecrementButtonProps,\n    getInputProps: getInputProps,\n    htmlProps: htmlProps\n  };\n}\n\nvar _excluded = [\"htmlProps\"];\n\n/**\n * React context used to communicate between components\n */\nvar _createContext = createContext({\n  name: \"NumberInputContext\",\n  errorMessage: \"useNumberInputContext: `context` is undefined. Seems you forgot to wrap number-input's components within <NumberInput />\"\n}),\n    NumberInputProvider = _createContext[0],\n    useNumberInputContext = _createContext[1];\n\n/**\n * NumberInput\n *\n * React component that provides context and logic to all\n * number input sub-components.\n *\n * It renders a `div` by default.\n *\n * @see Docs http://chakra-ui.com/numberinput\n */\nvar NumberInput = /*#__PURE__*/forwardRef(function (props, ref) {\n  var styles = useMultiStyleConfig(\"NumberInput\", props);\n  var ownProps = omitThemingProps(props);\n  var controlProps = useFormControlProps(ownProps);\n\n  var _useNumberInput = useNumberInput(controlProps),\n      htmlProps = _useNumberInput.htmlProps,\n      context = _objectWithoutPropertiesLoose(_useNumberInput, _excluded);\n\n  var ctx = React.useMemo(function () {\n    return context;\n  }, [context]);\n  return /*#__PURE__*/React.createElement(NumberInputProvider, {\n    value: ctx\n  }, /*#__PURE__*/React.createElement(StylesProvider, {\n    value: styles\n  }, /*#__PURE__*/React.createElement(chakra.div, _extends({}, htmlProps, {\n    ref: ref,\n    className: cx(\"chakra-numberinput\", props.className),\n    __css: _extends({\n      position: \"relative\",\n      zIndex: 0\n    }, styles.root)\n  }))));\n});\n\nif (__DEV__) {\n  NumberInput.displayName = \"NumberInput\";\n}\n\n/**\n * NumberInputStepper\n *\n * React component used to group the increment and decrement\n * button spinners.\n *\n * It renders a `div` by default.\n *\n * @see Docs http://chakra-ui.com/components/number-input\n */\nvar NumberInputStepper = /*#__PURE__*/forwardRef(function (props, ref) {\n  var styles = useStyles();\n  return /*#__PURE__*/React.createElement(chakra.div, _extends({\n    \"aria-hidden\": true,\n    ref: ref\n  }, props, {\n    __css: _extends({\n      display: \"flex\",\n      flexDirection: \"column\",\n      position: \"absolute\",\n      top: \"0\",\n      insetEnd: \"0px\",\n      margin: \"1px\",\n      height: \"calc(100% - 2px)\",\n      zIndex: 1\n    }, styles.stepperGroup)\n  }));\n});\n\nif (__DEV__) {\n  NumberInputStepper.displayName = \"NumberInputStepper\";\n}\n\n/**\n * NumberInputField\n *\n * React component that represents the actual `input` field\n * where users can type to edit numeric values.\n *\n * It renders an `input` by default and ensures only numeric\n * values can be typed.\n *\n * @see Docs http://chakra-ui.com/numberinput\n */\nvar NumberInputField = /*#__PURE__*/forwardRef(function (props, ref) {\n  var _useNumberInputContex = useNumberInputContext(),\n      getInputProps = _useNumberInputContex.getInputProps;\n\n  var input = getInputProps(props, ref);\n  var styles = useStyles();\n  return /*#__PURE__*/React.createElement(chakra.input, _extends({}, input, {\n    className: cx(\"chakra-numberinput__field\", props.className),\n    __css: _extends({\n      width: \"100%\"\n    }, styles.field)\n  }));\n});\n\nif (__DEV__) {\n  NumberInputField.displayName = \"NumberInputField\";\n}\n\nvar StyledStepper = chakra(\"div\", {\n  baseStyle: {\n    display: \"flex\",\n    justifyContent: \"center\",\n    alignItems: \"center\",\n    flex: 1,\n    transitionProperty: \"common\",\n    transitionDuration: \"normal\",\n    userSelect: \"none\",\n    cursor: \"pointer\",\n    lineHeight: \"normal\"\n  }\n});\n\n/**\n * NumberDecrementStepper\n *\n * React component used to decrement the number input's value\n *\n * It renders a `div` with `role=button` by default\n */\nvar NumberDecrementStepper = /*#__PURE__*/forwardRef(function (props, ref) {\n  var _props$children;\n\n  var styles = useStyles();\n\n  var _useNumberInputContex2 = useNumberInputContext(),\n      getDecrementButtonProps = _useNumberInputContex2.getDecrementButtonProps;\n\n  var decrement = getDecrementButtonProps(props, ref);\n  return /*#__PURE__*/React.createElement(StyledStepper, _extends({}, decrement, {\n    __css: styles.stepper\n  }), (_props$children = props.children) != null ? _props$children : /*#__PURE__*/React.createElement(TriangleDownIcon, null));\n});\n\nif (__DEV__) {\n  NumberDecrementStepper.displayName = \"NumberDecrementStepper\";\n}\n\n/**\n * NumberIncrementStepper\n *\n * React component used to increment the number input's value\n *\n * It renders a `div` with `role=button` by default\n */\nvar NumberIncrementStepper = /*#__PURE__*/forwardRef(function (props, ref) {\n  var _props$children2;\n\n  var _useNumberInputContex3 = useNumberInputContext(),\n      getIncrementButtonProps = _useNumberInputContex3.getIncrementButtonProps;\n\n  var increment = getIncrementButtonProps(props, ref);\n  var styles = useStyles();\n  return /*#__PURE__*/React.createElement(StyledStepper, _extends({}, increment, {\n    __css: styles.stepper\n  }), (_props$children2 = props.children) != null ? _props$children2 : /*#__PURE__*/React.createElement(TriangleUpIcon, null));\n});\n\nif (__DEV__) {\n  NumberIncrementStepper.displayName = \"NumberIncrementStepper\";\n}\n\nexport { NumberDecrementStepper, NumberIncrementStepper, NumberInput, NumberInputField, NumberInputStepper, StyledStepper, useNumberInput };\n"],"mappings":"AAAA,SAASA,mBAAmB,QAAQ,yBAAyB;AAC7D,SAASC,UAAU,EAAEC,mBAAmB,EAAEC,gBAAgB,EAAEC,cAAc,EAAEC,MAAM,EAAEC,SAAS,QAAQ,mBAAmB;AACxH,SAASC,cAAc,EAAEC,iBAAiB,EAAEC,MAAM,EAAEC,KAAK,EAAEC,gBAAgB,EAAEC,eAAe,EAAEC,QAAQ,EAAEC,cAAc,EAAEC,cAAc,EAAEC,EAAE,EAAEC,OAAO,QAAQ,kBAAkB;AAC7K,SAASC,SAAS,EAAEC,aAAa,QAAQ,wBAAwB;AACjE,OAAO,KAAKC,KAAK,MAAM,OAAO;AAC9B,SAASC,QAAQ,EAAEC,MAAM,EAAEC,WAAW,QAAQ,OAAO;AACrD,SAASC,IAAI,QAAQ,iBAAiB;AACtC,SAASC,UAAU,QAAQ,oBAAoB;AAC/C,SAASC,WAAW,EAAEC,gBAAgB,EAAEC,cAAc,EAAEC,UAAU,EAAEC,eAAe,EAAEC,mBAAmB,EAAEC,gBAAgB,QAAQ,kBAAkB;AAEpJ,SAASC,QAAQA,CAAA,EAAG;EAClBA,QAAQ,GAAGC,MAAM,CAACC,MAAM,IAAI,UAAUC,MAAM,EAAE;IAC5C,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGC,SAAS,CAACC,MAAM,EAAEF,CAAC,EAAE,EAAE;MACzC,IAAIG,MAAM,GAAGF,SAAS,CAACD,CAAC,CAAC;MAEzB,KAAK,IAAII,GAAG,IAAID,MAAM,EAAE;QACtB,IAAIN,MAAM,CAACQ,SAAS,CAACC,cAAc,CAACC,IAAI,CAACJ,MAAM,EAAEC,GAAG,CAAC,EAAE;UACrDL,MAAM,CAACK,GAAG,CAAC,GAAGD,MAAM,CAACC,GAAG,CAAC;QAC3B;MACF;IACF;IAEA,OAAOL,MAAM;EACf,CAAC;EAED,OAAOH,QAAQ,CAACY,KAAK,CAAC,IAAI,EAAEP,SAAS,CAAC;AACxC;AAEA,SAASQ,6BAA6BA,CAACN,MAAM,EAAEO,QAAQ,EAAE;EACvD,IAAIP,MAAM,IAAI,IAAI,EAAE,OAAO,CAAC,CAAC;EAC7B,IAAIJ,MAAM,GAAG,CAAC,CAAC;EACf,IAAIY,UAAU,GAAGd,MAAM,CAACe,IAAI,CAACT,MAAM,CAAC;EACpC,IAAIC,GAAG,EAAEJ,CAAC;EAEV,KAAKA,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGW,UAAU,CAACT,MAAM,EAAEF,CAAC,EAAE,EAAE;IACtCI,GAAG,GAAGO,UAAU,CAACX,CAAC,CAAC;IACnB,IAAIU,QAAQ,CAACG,OAAO,CAACT,GAAG,CAAC,IAAI,CAAC,EAAE;IAChCL,MAAM,CAACK,GAAG,CAAC,GAAGD,MAAM,CAACC,GAAG,CAAC;EAC3B;EAEA,OAAOL,MAAM;AACf;AAEA,IAAIe,gBAAgB,GAAG,SAASA,gBAAgBA,CAACC,KAAK,EAAE;EACtD,OAAO,aAAahC,KAAK,CAACiC,aAAa,CAAC7B,IAAI,EAAES,QAAQ,CAAC;IACrDqB,OAAO,EAAE;EACX,CAAC,EAAEF,KAAK,CAAC,EAAE,aAAahC,KAAK,CAACiC,aAAa,CAAC,MAAM,EAAE;IAClDE,IAAI,EAAE,cAAc;IACpBC,CAAC,EAAE;EACL,CAAC,CAAC,CAAC;AACL,CAAC;AACD,IAAIC,cAAc,GAAG,SAASA,cAAcA,CAACL,KAAK,EAAE;EAClD,OAAO,aAAahC,KAAK,CAACiC,aAAa,CAAC7B,IAAI,EAAES,QAAQ,CAAC;IACrDqB,OAAO,EAAE;EACX,CAAC,EAAEF,KAAK,CAAC,EAAE,aAAahC,KAAK,CAACiC,aAAa,CAAC,MAAM,EAAE;IAClDE,IAAI,EAAE,cAAc;IACpBC,CAAC,EAAE;EACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAASE,iBAAiBA,CAACC,GAAG,EAAEC,GAAG,EAAE;EACnC,IAAIA,GAAG,IAAI,IAAI,IAAIA,GAAG,GAAGD,GAAG,CAACpB,MAAM,EAAEqB,GAAG,GAAGD,GAAG,CAACpB,MAAM;EAErD,KAAK,IAAIF,CAAC,GAAG,CAAC,EAAEwB,IAAI,GAAG,IAAIC,KAAK,CAACF,GAAG,CAAC,EAAEvB,CAAC,GAAGuB,GAAG,EAAEvB,CAAC,EAAE,EAAEwB,IAAI,CAACxB,CAAC,CAAC,GAAGsB,GAAG,CAACtB,CAAC,CAAC;EAErE,OAAOwB,IAAI;AACb;AAEA,SAASE,2BAA2BA,CAACC,CAAC,EAAEC,MAAM,EAAE;EAC9C,IAAI,CAACD,CAAC,EAAE;EACR,IAAI,OAAOA,CAAC,KAAK,QAAQ,EAAE,OAAON,iBAAiB,CAACM,CAAC,EAAEC,MAAM,CAAC;EAC9D,IAAIC,CAAC,GAAGhC,MAAM,CAACQ,SAAS,CAACyB,QAAQ,CAACvB,IAAI,CAACoB,CAAC,CAAC,CAACI,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;EACtD,IAAIF,CAAC,KAAK,QAAQ,IAAIF,CAAC,CAACK,WAAW,EAAEH,CAAC,GAAGF,CAAC,CAACK,WAAW,CAACC,IAAI;EAC3D,IAAIJ,CAAC,KAAK,KAAK,IAAIA,CAAC,KAAK,KAAK,EAAE,OAAOJ,KAAK,CAACS,IAAI,CAACP,CAAC,CAAC;EACpD,IAAIE,CAAC,KAAK,WAAW,IAAI,0CAA0C,CAACM,IAAI,CAACN,CAAC,CAAC,EAAE,OAAOR,iBAAiB,CAACM,CAAC,EAAEC,MAAM,CAAC;AAClH;AAEA,SAASQ,+BAA+BA,CAACT,CAAC,EAAEU,cAAc,EAAE;EAC1D,IAAIC,EAAE,GAAG,OAAOC,MAAM,KAAK,WAAW,IAAIZ,CAAC,CAACY,MAAM,CAACC,QAAQ,CAAC,IAAIb,CAAC,CAAC,YAAY,CAAC;EAC/E,IAAIW,EAAE,EAAE,OAAO,CAACA,EAAE,GAAGA,EAAE,CAAC/B,IAAI,CAACoB,CAAC,CAAC,EAAEc,IAAI,CAACC,IAAI,CAACJ,EAAE,CAAC;EAE9C,IAAIb,KAAK,CAACkB,OAAO,CAAChB,CAAC,CAAC,KAAKW,EAAE,GAAGZ,2BAA2B,CAACC,CAAC,CAAC,CAAC,IAAIU,cAAc,IAAIV,CAAC,IAAI,OAAOA,CAAC,CAACzB,MAAM,KAAK,QAAQ,EAAE;IACpH,IAAIoC,EAAE,EAAEX,CAAC,GAAGW,EAAE;IACd,IAAItC,CAAC,GAAG,CAAC;IACT,OAAO,YAAY;MACjB,IAAIA,CAAC,IAAI2B,CAAC,CAACzB,MAAM,EAAE,OAAO;QACxB0C,IAAI,EAAE;MACR,CAAC;MACD,OAAO;QACLA,IAAI,EAAE,KAAK;QACXC,KAAK,EAAElB,CAAC,CAAC3B,CAAC,EAAE;MACd,CAAC;IACH,CAAC;EACH;EAEA,MAAM,IAAI8C,SAAS,CAAC,uIAAuI,CAAC;AAC9J;AAEA,SAASC,oBAAoBA,CAACC,GAAG,EAAEC,UAAU,EAAEC,EAAE,EAAEC,OAAO,EAAE;EAC1DpE,KAAK,CAACqE,SAAS,CAAC,YAAY;IAC1B,IAAI,CAACJ,GAAG,CAACK,OAAO,IAAI,CAACF,OAAO,EAAE;IAC9B,IAAIG,GAAG,GAAGpF,cAAc,CAAC8E,GAAG,CAACK,OAAO,CAAC;IACrC,IAAIE,KAAK,GAAG9B,KAAK,CAACkB,OAAO,CAACM,UAAU,CAAC,GAAGA,UAAU,GAAG,CAACA,UAAU,CAAC;IACjE,IAAIO,GAAG,GAAG,IAAIF,GAAG,CAACG,gBAAgB,CAAC,UAAUC,OAAO,EAAE;MACpD,KAAK,IAAIC,SAAS,GAAGvB,+BAA+B,CAACsB,OAAO,CAAC,EAAEE,KAAK,EAAE,CAAC,CAACA,KAAK,GAAGD,SAAS,CAAC,CAAC,EAAEf,IAAI,GAAG;QAClG,IAAIiB,MAAM,GAAGD,KAAK,CAACf,KAAK;QAExB,IAAIgB,MAAM,CAACC,IAAI,KAAK,YAAY,IAAID,MAAM,CAACE,aAAa,IAAIR,KAAK,CAACS,QAAQ,CAACH,MAAM,CAACE,aAAa,CAAC,EAAE;UAChGb,EAAE,CAACW,MAAM,CAAC;QACZ;MACF;IACF,CAAC,CAAC;IACFL,GAAG,CAACS,OAAO,CAACjB,GAAG,CAACK,OAAO,EAAE;MACvBJ,UAAU,EAAE,IAAI;MAChBiB,eAAe,EAAEX;IACnB,CAAC,CAAC;IACF,OAAO,YAAY;MACjB,OAAOC,GAAG,CAACW,UAAU,CAAC,CAAC;IACzB,CAAC;EACH,CAAC,CAAC;AACJ;;AAEA;AACA;AACA;;AAEA,IAAIC,0BAA0B,GAAG,EAAE;AACnC;AACA;AACA;;AAEA,IAAIC,uBAAuB,GAAG,GAAG;;AAEjC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASC,UAAUA,CAACC,SAAS,EAAEC,SAAS,EAAE;EACxC;AACF;AACA;EACE,IAAIC,SAAS,GAAGzF,QAAQ,CAAC,KAAK,CAAC;IAC3B0F,UAAU,GAAGD,SAAS,CAAC,CAAC,CAAC;IACzBE,aAAa,GAAGF,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;;EAGlC,IAAIG,UAAU,GAAG5F,QAAQ,CAAC,IAAI,CAAC;IAC3B6F,MAAM,GAAGD,UAAU,CAAC,CAAC,CAAC;IACtBE,SAAS,GAAGF,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;;EAG/B,IAAIG,UAAU,GAAG/F,QAAQ,CAAC,IAAI,CAAC;IAC3BgG,OAAO,GAAGD,UAAU,CAAC,CAAC,CAAC;IACvBE,UAAU,GAAGF,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;;EAGhC,IAAIG,UAAU,GAAGjG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;;EAE/B,IAAIkG,aAAa,GAAG,SAASA,aAAaA,CAAA,EAAG;IAC3C,OAAOC,YAAY,CAACF,UAAU,CAAC7B,OAAO,CAAC;EACzC,CAAC;EACD;AACF;AACA;AACA;;EAGEhE,WAAW,CAAC,YAAY;IACtB,IAAIwF,MAAM,KAAK,WAAW,EAAE;MAC1BN,SAAS,CAAC,CAAC;IACb;IAEA,IAAIM,MAAM,KAAK,WAAW,EAAE;MAC1BL,SAAS,CAAC,CAAC;IACb;EACF,CAAC,EAAEE,UAAU,GAAGN,0BAA0B,GAAG,IAAI,CAAC,CAAC,CAAC;;EAEpD,IAAIiB,EAAE,GAAGnG,WAAW,CAAC,YAAY;IAC/B;IACA,IAAI8F,OAAO,EAAE;MACXT,SAAS,CAAC,CAAC;IACb,CAAC,CAAC;;IAGFW,UAAU,CAAC7B,OAAO,GAAGiC,UAAU,CAAC,YAAY;MAC1CL,UAAU,CAAC,KAAK,CAAC;MACjBN,aAAa,CAAC,IAAI,CAAC;MACnBG,SAAS,CAAC,WAAW,CAAC;IACxB,CAAC,EAAET,uBAAuB,CAAC;EAC7B,CAAC,EAAE,CAACE,SAAS,EAAES,OAAO,CAAC,CAAC,CAAC,CAAC;;EAE1B,IAAIO,IAAI,GAAGrG,WAAW,CAAC,YAAY;IACjC;IACA,IAAI8F,OAAO,EAAE;MACXR,SAAS,CAAC,CAAC;IACb,CAAC,CAAC;;IAGFU,UAAU,CAAC7B,OAAO,GAAGiC,UAAU,CAAC,YAAY;MAC1CL,UAAU,CAAC,KAAK,CAAC;MACjBN,aAAa,CAAC,IAAI,CAAC;MACnBG,SAAS,CAAC,WAAW,CAAC;IACxB,CAAC,EAAET,uBAAuB,CAAC;EAC7B,CAAC,EAAE,CAACG,SAAS,EAAEQ,OAAO,CAAC,CAAC,CAAC,CAAC;;EAE1B,IAAIQ,IAAI,GAAGtG,WAAW,CAAC,YAAY;IACjC+F,UAAU,CAAC,IAAI,CAAC;IAChBN,aAAa,CAAC,KAAK,CAAC;IACpBQ,aAAa,CAAC,CAAC;EACjB,CAAC,EAAE,EAAE,CAAC;EACN;AACF;AACA;AACA;;EAEE7F,gBAAgB,CAAC6F,aAAa,CAAC;EAC/B,OAAO;IACLE,EAAE,EAAEA,EAAE;IACNE,IAAI,EAAEA,IAAI;IACVC,IAAI,EAAEA,IAAI;IACVd,UAAU,EAAEA;EACd,CAAC;AACH;AAEA,IAAIe,WAAW,GAAG,CAAC,oBAAoB,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,kBAAkB,EAAE,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAE,QAAQ,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO,CAAC;AAChY,IAAIC,oBAAoB,GAAG,eAAe;AAC1C;AACA;AACA;AACA;;AAEA,SAASC,+BAA+BA,CAACC,SAAS,EAAE;EAClD,OAAOF,oBAAoB,CAACvD,IAAI,CAACyD,SAAS,CAAC;AAC7C;AAEA,SAASC,2BAA2BA,CAACC,KAAK,EAAEC,OAAO,EAAE;EACnD,IAAID,KAAK,CAAC1F,GAAG,IAAI,IAAI,EAAE,OAAO,IAAI;EAClC,IAAI4F,aAAa,GAAGF,KAAK,CAACG,OAAO,IAAIH,KAAK,CAACI,MAAM,IAAIJ,KAAK,CAACK,OAAO;EAClE,IAAIC,oBAAoB,GAAGN,KAAK,CAAC1F,GAAG,CAACF,MAAM,KAAK,CAAC;EACjD,IAAI,CAACkG,oBAAoB,IAAIJ,aAAa,EAAE,OAAO,IAAI;EACvD,OAAOD,OAAO,CAACD,KAAK,CAAC1F,GAAG,CAAC;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAASiG,cAAcA,CAACtF,KAAK,EAAE;EAC7B,IAAIA,KAAK,KAAK,KAAK,CAAC,EAAE;IACpBA,KAAK,GAAG,CAAC,CAAC;EACZ;EAEA,IAAIuF,MAAM,GAAGvF,KAAK;IACdwF,qBAAqB,GAAGD,MAAM,CAACE,kBAAkB;IACjDA,kBAAkB,GAAGD,qBAAqB,KAAK,KAAK,CAAC,GAAG,IAAI,GAAGA,qBAAqB;IACpFE,qBAAqB,GAAGH,MAAM,CAACI,gBAAgB;IAC/CA,gBAAgB,GAAGD,qBAAqB,KAAK,KAAK,CAAC,GAAG,IAAI,GAAGA,qBAAqB;IAClFE,qBAAqB,GAAGL,MAAM,CAACM,eAAe;IAC9CA,eAAe,GAAGD,qBAAqB,KAAK,KAAK,CAAC,GAAG,IAAI,GAAGA,qBAAqB;IACjFE,UAAU,GAAGP,MAAM,CAACQ,GAAG;IACvBA,GAAG,GAAGD,UAAU,KAAK,KAAK,CAAC,GAAGpI,cAAc,GAAGoI,UAAU;IACzDE,UAAU,GAAGT,MAAM,CAACU,GAAG;IACvBA,GAAG,GAAGD,UAAU,KAAK,KAAK,CAAC,GAAGrI,cAAc,GAAGqI,UAAU;IACzDE,WAAW,GAAGX,MAAM,CAACY,IAAI;IACzBC,QAAQ,GAAGF,WAAW,KAAK,KAAK,CAAC,GAAG,CAAC,GAAGA,WAAW;IACnDG,UAAU,GAAGd,MAAM,CAACc,UAAU;IAC9BC,UAAU,GAAGf,MAAM,CAACe,UAAU;IAC9BC,UAAU,GAAGhB,MAAM,CAACgB,UAAU;IAC9BC,SAAS,GAAGjB,MAAM,CAACiB,SAAS;IAC5BC,cAAc,GAAGlB,MAAM,CAACmB,OAAO;IAC/BA,OAAO,GAAGD,cAAc,KAAK,KAAK,CAAC,GAAG,kBAAkB,GAAGA,cAAc;IACzEE,gBAAgB,GAAGpB,MAAM,CAACqB,SAAS;IACnCA,SAAS,GAAGD,gBAAgB,KAAK,KAAK,CAAC,GAAG,SAAS,GAAGA,gBAAgB;IACtEE,eAAe,GAAGtB,MAAM,CAACsB,eAAe;IACxCC,EAAE,GAAGvB,MAAM,CAACuB,EAAE;EACdvB,MAAM,CAACwB,QAAQ;EACfxB,MAAM,CAACyB,SAAS;EAChB,IAAI9F,IAAI,GAAGqE,MAAM,CAACrE,IAAI;IACtB+F,UAAU,GAAG1B,MAAM,CAAC,kBAAkB,CAAC;IACvC2B,SAAS,GAAG3B,MAAM,CAAC,YAAY,CAAC;IAChC4B,cAAc,GAAG5B,MAAM,CAAC,iBAAiB,CAAC;IAC1C6B,WAAW,GAAG7B,MAAM,CAAC8B,OAAO;IAC5BC,UAAU,GAAG/B,MAAM,CAACgC,MAAM;IAC1BC,aAAa,GAAGjC,MAAM,CAACkC,SAAS;IAChCC,oBAAoB,GAAGnC,MAAM,CAACoC,gBAAgB;IAC9CC,oBAAoB,GAAGrC,MAAM,CAACsC,gBAAgB;IAC9CC,WAAW,GAAGvC,MAAM,CAACwC,MAAM;IAC3BC,UAAU,GAAGzC,MAAM,CAAC0C,KAAK;IACzBC,SAAS,GAAGxI,6BAA6B,CAAC6F,MAAM,EAAEb,WAAW,CAAC;EAElE,IAAI2C,OAAO,GAAG7I,cAAc,CAAC4I,WAAW,CAAC;EACzC,IAAIG,MAAM,GAAG/I,cAAc,CAAC8I,UAAU,CAAC;EACvC,IAAIG,SAAS,GAAGjJ,cAAc,CAACgJ,aAAa,CAAC;EAC7C,IAAIK,gBAAgB,GAAGrJ,cAAc,CAACoJ,oBAAoB,IAAI,IAAI,GAAGA,oBAAoB,GAAGhD,+BAA+B,CAAC;EAC5H,IAAI+C,gBAAgB,GAAGnJ,cAAc,CAACkJ,oBAAoB,CAAC;EAC3D;AACF;AACA;AACA;AACA;;EAEE,IAAIS,OAAO,GAAG9J,UAAU,CAAC2B,KAAK,CAAC;EAC/B,IAAIoI,QAAQ,GAAGD,OAAO,CAACE,MAAM;IACzBC,WAAW,GAAGH,OAAO,CAAC3E,SAAS;IAC/B+E,WAAW,GAAGJ,OAAO,CAAC1E,SAAS;EACnC;AACF;AACA;AACA;AACA;;EAEE,IAAI+E,WAAW,GAAG/J,UAAU,CAAC,CAAC;IAC1BgK,SAAS,GAAGD,WAAW,CAAC,CAAC,CAAC;IAC1BE,UAAU,GAAGF,WAAW,CAAC,CAAC,CAAC;EAE/B,IAAIG,aAAa,GAAG,EAAEtC,UAAU,IAAIC,UAAU,CAAC;EAC/C,IAAIsC,QAAQ,GAAG5K,KAAK,CAACE,MAAM,CAAC,IAAI,CAAC;EACjC,IAAI2K,iBAAiB,GAAG7K,KAAK,CAACE,MAAM,CAAC,IAAI,CAAC;EAC1C,IAAI4K,kBAAkB,GAAG9K,KAAK,CAACE,MAAM,CAAC,IAAI,CAAC;EAC3C,IAAI6K,kBAAkB,GAAG/K,KAAK,CAACE,MAAM,CAAC,IAAI,CAAC;EAC3C,IAAI8K,QAAQ,GAAGhL,KAAK,CAACG,WAAW,CAAC,UAAU2D,KAAK,EAAE;IAChD,OAAOA,KAAK,CAACmH,KAAK,CAAC,EAAE,CAAC,CAACC,MAAM,CAACrB,gBAAgB,CAAC,CAACsB,IAAI,CAAC,EAAE,CAAC;EAC1D,CAAC,EAAE,CAACtB,gBAAgB,CAAC,CAAC;EACtB,IAAII,KAAK,GAAGjK,KAAK,CAACG,WAAW,CAAC,UAAU2D,KAAK,EAAE;IAC7C,IAAIsH,WAAW;IAEf,OAAO,CAACA,WAAW,GAAGpB,UAAU,IAAI,IAAI,GAAG,KAAK,CAAC,GAAGA,UAAU,CAAClG,KAAK,CAAC,KAAK,IAAI,GAAGsH,WAAW,GAAGtH,KAAK;EACtG,CAAC,EAAE,CAACkG,UAAU,CAAC,CAAC;EAChB,IAAID,MAAM,GAAG/J,KAAK,CAACG,WAAW,CAAC,UAAU2D,KAAK,EAAE;IAC9C,IAAIuH,YAAY;IAEhB,OAAO,CAAC,CAACA,YAAY,GAAGvB,WAAW,IAAI,IAAI,GAAG,KAAK,CAAC,GAAGA,WAAW,CAAChG,KAAK,CAAC,KAAK,IAAI,GAAGuH,YAAY,GAAGvH,KAAK,EAAEf,QAAQ,CAAC,CAAC;EACvH,CAAC,EAAE,CAAC+G,WAAW,CAAC,CAAC;EACjBpJ,eAAe,CAAC,YAAY;IAC1B,IAAIyJ,OAAO,CAACmB,aAAa,GAAGrD,GAAG,EAAE;MAC/BwB,SAAS,IAAI,IAAI,GAAG,KAAK,CAAC,GAAGA,SAAS,CAAC,eAAe,EAAEM,MAAM,CAACI,OAAO,CAACrG,KAAK,CAAC,EAAEqG,OAAO,CAACmB,aAAa,CAAC;IACvG,CAAC,MAAM,IAAInB,OAAO,CAACmB,aAAa,GAAGvD,GAAG,EAAE;MACtC0B,SAAS,IAAI,IAAI,GAAG,KAAK,CAAC,GAAGA,SAAS,CAAC,eAAe,EAAEM,MAAM,CAACI,OAAO,CAACrG,KAAK,CAAC,EAAEqG,OAAO,CAACmB,aAAa,CAAC;IACvG;EACF,CAAC,EAAE,CAACnB,OAAO,CAACmB,aAAa,EAAEnB,OAAO,CAACrG,KAAK,EAAEiG,MAAM,EAAEN,SAAS,CAAC,CAAC;EAC7D;AACF;AACA;;EAEE9I,mBAAmB,CAAC,YAAY;IAC9B,IAAI,CAACiK,QAAQ,CAACtG,OAAO,EAAE;IACvB,IAAIiH,SAAS,GAAGX,QAAQ,CAACtG,OAAO,CAACR,KAAK,IAAIqG,OAAO,CAACrG,KAAK;IAEvD,IAAIyH,SAAS,EAAE;MACb,IAAIC,WAAW,GAAGvB,KAAK,CAACW,QAAQ,CAACtG,OAAO,CAACR,KAAK,CAAC;MAC/CqG,OAAO,CAACsB,QAAQ,CAACT,QAAQ,CAACQ,WAAW,CAAC,CAAC;IACzC;EACF,CAAC,EAAE,CAACvB,KAAK,EAAEe,QAAQ,CAAC,CAAC;EACrB,IAAIxF,SAAS,GAAGxF,KAAK,CAACG,WAAW,CAAC,UAAUgI,IAAI,EAAE;IAChD,IAAIA,IAAI,KAAK,KAAK,CAAC,EAAE;MACnBA,IAAI,GAAGC,QAAQ;IACjB;IAEA,IAAIuC,aAAa,EAAE;MACjBL,WAAW,CAACnC,IAAI,CAAC;IACnB;EACF,CAAC,EAAE,CAACmC,WAAW,EAAEK,aAAa,EAAEvC,QAAQ,CAAC,CAAC;EAC1C,IAAI3C,SAAS,GAAGzF,KAAK,CAACG,WAAW,CAAC,UAAUgI,IAAI,EAAE;IAChD,IAAIA,IAAI,KAAK,KAAK,CAAC,EAAE;MACnBA,IAAI,GAAGC,QAAQ;IACjB;IAEA,IAAIuC,aAAa,EAAE;MACjBJ,WAAW,CAACpC,IAAI,CAAC;IACnB;EACF,CAAC,EAAE,CAACoC,WAAW,EAAEI,aAAa,EAAEvC,QAAQ,CAAC,CAAC;EAC1C;AACF;AACA;AACA;AACA;AACA;;EAEE,IAAIsD,OAAO,GAAGnG,UAAU,CAACC,SAAS,EAAEC,SAAS,CAAC;EAC9CzB,oBAAoB,CAAC8G,kBAAkB,EAAE,UAAU,EAAEY,OAAO,CAACjF,IAAI,EAAEiF,OAAO,CAAC/F,UAAU,CAAC;EACtF3B,oBAAoB,CAAC+G,kBAAkB,EAAE,UAAU,EAAEW,OAAO,CAACjF,IAAI,EAAEiF,OAAO,CAAC/F,UAAU,CAAC;EACtF;AACF;AACA;AACA;;EAEE,IAAIoD,QAAQ,GAAG/I,KAAK,CAACG,WAAW,CAAC,UAAU4G,KAAK,EAAE;IAChD,IAAI4E,GAAG,GAAG5E,KAAK,CAAC6E,WAAW;IAC3B,IAAID,GAAG,CAACE,WAAW,EAAE;IACrB,IAAIL,WAAW,GAAGvB,KAAK,CAAClD,KAAK,CAAC+E,aAAa,CAAChI,KAAK,CAAC;IAClDsG,QAAQ,CAACY,QAAQ,CAACQ,WAAW,CAAC,CAAC;IAC/BX,iBAAiB,CAACvG,OAAO,GAAG;MAC1ByH,KAAK,EAAEhF,KAAK,CAAC+E,aAAa,CAACE,cAAc;MACzCC,GAAG,EAAElF,KAAK,CAAC+E,aAAa,CAACI;IAC3B,CAAC;EACH,CAAC,EAAE,CAAC9B,QAAQ,EAAEY,QAAQ,EAAEf,KAAK,CAAC,CAAC;EAE/B,IAAIkC,QAAQ,GAAGnM,KAAK,CAACG,WAAW,CAAC,UAAU4G,KAAK,EAAE;IAChD,IAAIqF,qBAAqB,EAAEC,qBAAqB,EAAEC,sBAAsB;IAExEjD,OAAO,IAAI,IAAI,GAAG,KAAK,CAAC,GAAGA,OAAO,CAACtC,KAAK,CAAC;IACzC,IAAI,CAAC8D,iBAAiB,CAACvG,OAAO,EAAE;IAChC;AACJ;AACA;;IAEIyC,KAAK,CAAC/F,MAAM,CAACgL,cAAc,GAAG,CAACI,qBAAqB,GAAGvB,iBAAiB,CAACvG,OAAO,CAACyH,KAAK,KAAK,IAAI,GAAGK,qBAAqB,GAAG,CAACC,qBAAqB,GAAGtF,KAAK,CAAC+E,aAAa,CAAChI,KAAK,KAAK,IAAI,GAAG,KAAK,CAAC,GAAGuI,qBAAqB,CAAClL,MAAM;IAC7N4F,KAAK,CAAC+E,aAAa,CAACI,YAAY,GAAG,CAACI,sBAAsB,GAAGzB,iBAAiB,CAACvG,OAAO,CAAC2H,GAAG,KAAK,IAAI,GAAGK,sBAAsB,GAAGvF,KAAK,CAAC+E,aAAa,CAACE,cAAc;EACnK,CAAC,EAAE,CAAC3C,OAAO,CAAC,CAAC;EAEb,IAAIkD,SAAS,GAAGvM,KAAK,CAACG,WAAW,CAAC,UAAU4G,KAAK,EAAE;IACjD,IAAIA,KAAK,CAAC6E,WAAW,CAACC,WAAW,EAAE;IAEnC,IAAI,CAAC/E,2BAA2B,CAACC,KAAK,EAAE8C,gBAAgB,CAAC,EAAE;MACzD9C,KAAK,CAACyF,cAAc,CAAC,CAAC;IACxB;IACA;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;IAGI,IAAIC,UAAU,GAAGC,aAAa,CAAC3F,KAAK,CAAC,GAAGqB,QAAQ;IAChD,IAAIuE,QAAQ,GAAGvN,iBAAiB,CAAC2H,KAAK,CAAC;IACvC,IAAI6F,MAAM,GAAG;MACXC,OAAO,EAAE,SAASA,OAAOA,CAAA,EAAG;QAC1B,OAAOrH,SAAS,CAACiH,UAAU,CAAC;MAC9B,CAAC;MACDK,SAAS,EAAE,SAASA,SAASA,CAAA,EAAG;QAC9B,OAAOrH,SAAS,CAACgH,UAAU,CAAC;MAC9B,CAAC;MACDM,IAAI,EAAE,SAASA,IAAIA,CAAA,EAAG;QACpB,OAAO3C,QAAQ,CAACrC,GAAG,CAAC;MACtB,CAAC;MACDiF,GAAG,EAAE,SAASA,GAAGA,CAAA,EAAG;QAClB,OAAO5C,QAAQ,CAACnC,GAAG,CAAC;MACtB;IACF,CAAC;IACD,IAAInC,MAAM,GAAG8G,MAAM,CAACD,QAAQ,CAAC;IAE7B,IAAI7G,MAAM,EAAE;MACViB,KAAK,CAACyF,cAAc,CAAC,CAAC;MACtB1G,MAAM,CAACiB,KAAK,CAAC;IACf;EACF,CAAC,EAAE,CAAC8C,gBAAgB,EAAEzB,QAAQ,EAAE5C,SAAS,EAAEC,SAAS,EAAE2E,QAAQ,EAAErC,GAAG,EAAEE,GAAG,CAAC,CAAC;EAE1E,IAAIyE,aAAa,GAAG,SAASA,aAAaA,CAAC3F,KAAK,EAAE;IAChD,IAAIkG,KAAK,GAAG,CAAC;IAEb,IAAIlG,KAAK,CAACK,OAAO,IAAIL,KAAK,CAACG,OAAO,EAAE;MAClC+F,KAAK,GAAG,GAAG;IACb;IAEA,IAAIlG,KAAK,CAACmG,QAAQ,EAAE;MAClBD,KAAK,GAAG,EAAE;IACZ;IAEA,OAAOA,KAAK;EACd,CAAC;EACD;AACF;AACA;AACA;AACA;AACA;AACA;;EAGE,IAAIE,aAAa,GAAGnN,KAAK,CAACoN,OAAO,CAAC,YAAY;IAC5C,IAAIC,IAAI,GAAG1D,gBAAgB,IAAI,IAAI,GAAG,KAAK,CAAC,GAAGA,gBAAgB,CAACQ,OAAO,CAACrG,KAAK,CAAC;IAC9E,IAAI,CAACzE,MAAM,CAACgO,IAAI,CAAC,EAAE,OAAOA,IAAI;IAC9B,IAAIC,WAAW,GAAGnD,OAAO,CAACrG,KAAK,CAACf,QAAQ,CAAC,CAAC,CAAC,CAAC;;IAE5C,OAAO,CAACuK,WAAW,GAAGC,SAAS,GAAGD,WAAW;EAC/C,CAAC,EAAE,CAACnD,OAAO,CAACrG,KAAK,EAAE6F,gBAAgB,CAAC,CAAC;EACrC;AACF;AACA;;EAEE,IAAI6D,gBAAgB,GAAGxN,KAAK,CAACG,WAAW,CAAC,YAAY;IACnD,IAAIuD,IAAI,GAAGyG,OAAO,CAACrG,KAAK;IACxB,IAAIJ,IAAI,KAAK,EAAE,EAAE;IAEjB,IAAIyG,OAAO,CAACmB,aAAa,GAAGvD,GAAG,EAAE;MAC/BrE,IAAI,GAAGqE,GAAG;IACZ;IAEA,IAAIoC,OAAO,CAACmB,aAAa,GAAGrD,GAAG,EAAE;MAC/BvE,IAAI,GAAGuE,GAAG;IACZ;IACA;AACJ;AACA;AACA;AACA;AACA;;IAGIkC,OAAO,CAACsD,IAAI,CAAC/J,IAAI,CAAC;EACpB,CAAC,EAAE,CAACyG,OAAO,EAAElC,GAAG,EAAEF,GAAG,CAAC,CAAC;EACvB,IAAI2F,WAAW,GAAG1N,KAAK,CAACG,WAAW,CAAC,YAAY;IAC9CuK,UAAU,CAACiD,GAAG,CAAC,CAAC;IAEhB,IAAIhG,gBAAgB,EAAE;MACpB6F,gBAAgB,CAAC,CAAC;IACpB;EACF,CAAC,EAAE,CAAC7F,gBAAgB,EAAE+C,UAAU,EAAE8C,gBAAgB,CAAC,CAAC;EACpD,IAAII,UAAU,GAAG5N,KAAK,CAACG,WAAW,CAAC,YAAY;IAC7C,IAAIsH,kBAAkB,EAAE;MACtBnI,KAAK,CAACsL,QAAQ,CAACtG,OAAO,EAAE;QACtBuJ,QAAQ,EAAE;MACZ,CAAC,CAAC;IACJ;EACF,CAAC,EAAE,CAACpG,kBAAkB,CAAC,CAAC;EACxB,IAAIqG,MAAM,GAAG9N,KAAK,CAACG,WAAW,CAAC,UAAU4G,KAAK,EAAE;IAC9CA,KAAK,CAACyF,cAAc,CAAC,CAAC;IACtBd,OAAO,CAACpF,EAAE,CAAC,CAAC;IACZsH,UAAU,CAAC,CAAC;EACd,CAAC,EAAE,CAACA,UAAU,EAAElC,OAAO,CAAC,CAAC;EACzB,IAAIqC,QAAQ,GAAG/N,KAAK,CAACG,WAAW,CAAC,UAAU4G,KAAK,EAAE;IAChDA,KAAK,CAACyF,cAAc,CAAC,CAAC;IACtBd,OAAO,CAAClF,IAAI,CAAC,CAAC;IACdoH,UAAU,CAAC,CAAC;EACd,CAAC,EAAE,CAACA,UAAU,EAAElC,OAAO,CAAC,CAAC;EACzB9K,gBAAgB,CAAC,OAAO,EAAE,UAAUmG,KAAK,EAAE;IACzC,IAAIiH,GAAG,GAAGzO,gBAAgB,CAACqL,QAAQ,CAACtG,OAAO,CAAC;IAC5C,IAAI2J,cAAc,GAAGD,GAAG,CAACE,aAAa,KAAKtD,QAAQ,CAACtG,OAAO;IAC3D,IAAI,CAACuE,eAAe,IAAI,CAACoF,cAAc,EAAE;IACzClH,KAAK,CAACyF,cAAc,CAAC,CAAC;IACtB,IAAIC,UAAU,GAAGC,aAAa,CAAC3F,KAAK,CAAC,GAAGqB,QAAQ;IAChD,IAAI+F,SAAS,GAAGC,IAAI,CAACC,IAAI,CAACtH,KAAK,CAACuH,MAAM,CAAC;IAEvC,IAAIH,SAAS,KAAK,CAAC,CAAC,EAAE;MACpB3I,SAAS,CAACiH,UAAU,CAAC;IACvB,CAAC,MAAM,IAAI0B,SAAS,KAAK,CAAC,EAAE;MAC1B1I,SAAS,CAACgH,UAAU,CAAC;IACvB;EACF,CAAC,EAAE7B,QAAQ,CAACtG,OAAO,EAAE;IACnBiK,OAAO,EAAE;EACX,CAAC,CAAC;EACF,IAAIC,uBAAuB,GAAGxO,KAAK,CAACG,WAAW,CAAC,UAAU6B,KAAK,EAAEiC,GAAG,EAAE;IACpE,IAAIjC,KAAK,KAAK,KAAK,CAAC,EAAE;MACpBA,KAAK,GAAG,CAAC,CAAC;IACZ;IAEA,IAAIiC,GAAG,KAAK,KAAK,CAAC,EAAE;MAClBA,GAAG,GAAG,IAAI;IACZ;IAEA,IAAIwK,QAAQ,GAAGnG,UAAU,IAAIT,eAAe,IAAIsC,OAAO,CAACuE,OAAO;IAC/D,OAAO7N,QAAQ,CAAC,CAAC,CAAC,EAAEmB,KAAK,EAAE;MACzBiC,GAAG,EAAEnE,SAAS,CAACmE,GAAG,EAAE6G,kBAAkB,CAAC;MACvC6D,IAAI,EAAE,QAAQ;MACdC,QAAQ,EAAE,CAAC,CAAC;MACZC,aAAa,EAAErP,eAAe,CAACwC,KAAK,CAAC6M,aAAa,EAAE,UAAU9H,KAAK,EAAE;QACnE,IAAI,CAAC0H,QAAQ,EAAEX,MAAM,CAAC/G,KAAK,CAAC;MAC9B,CAAC,CAAC;MACF+H,cAAc,EAAEtP,eAAe,CAACwC,KAAK,CAAC8M,cAAc,EAAEpD,OAAO,CAACjF,IAAI,CAAC;MACnEsI,WAAW,EAAEvP,eAAe,CAACwC,KAAK,CAAC+M,WAAW,EAAErD,OAAO,CAACjF,IAAI,CAAC;MAC7DgI,QAAQ,EAAEA,QAAQ;MAClB,eAAe,EAAEhP,QAAQ,CAACgP,QAAQ;IACpC,CAAC,CAAC;EACJ,CAAC,EAAE,CAACtE,OAAO,CAACuE,OAAO,EAAE7G,eAAe,EAAEiG,MAAM,EAAEpC,OAAO,CAACjF,IAAI,EAAE6B,UAAU,CAAC,CAAC;EACxE,IAAI0G,uBAAuB,GAAGhP,KAAK,CAACG,WAAW,CAAC,UAAU6B,KAAK,EAAEiC,GAAG,EAAE;IACpE,IAAIjC,KAAK,KAAK,KAAK,CAAC,EAAE;MACpBA,KAAK,GAAG,CAAC,CAAC;IACZ;IAEA,IAAIiC,GAAG,KAAK,KAAK,CAAC,EAAE;MAClBA,GAAG,GAAG,IAAI;IACZ;IAEA,IAAIwK,QAAQ,GAAGnG,UAAU,IAAIT,eAAe,IAAIsC,OAAO,CAAC8E,OAAO;IAC/D,OAAOpO,QAAQ,CAAC,CAAC,CAAC,EAAEmB,KAAK,EAAE;MACzBiC,GAAG,EAAEnE,SAAS,CAACmE,GAAG,EAAE8G,kBAAkB,CAAC;MACvC4D,IAAI,EAAE,QAAQ;MACdC,QAAQ,EAAE,CAAC,CAAC;MACZC,aAAa,EAAErP,eAAe,CAACwC,KAAK,CAAC6M,aAAa,EAAE,UAAU9H,KAAK,EAAE;QACnE,IAAI,CAAC0H,QAAQ,EAAEV,QAAQ,CAAChH,KAAK,CAAC;MAChC,CAAC,CAAC;MACF+H,cAAc,EAAEtP,eAAe,CAACwC,KAAK,CAAC8M,cAAc,EAAEpD,OAAO,CAACjF,IAAI,CAAC;MACnEsI,WAAW,EAAEvP,eAAe,CAACwC,KAAK,CAAC+M,WAAW,EAAErD,OAAO,CAACjF,IAAI,CAAC;MAC7DgI,QAAQ,EAAEA,QAAQ;MAClB,eAAe,EAAEhP,QAAQ,CAACgP,QAAQ;IACpC,CAAC,CAAC;EACJ,CAAC,EAAE,CAACtE,OAAO,CAAC8E,OAAO,EAAEpH,eAAe,EAAEkG,QAAQ,EAAErC,OAAO,CAACjF,IAAI,EAAE6B,UAAU,CAAC,CAAC;EAC1E,IAAI4G,aAAa,GAAGlP,KAAK,CAACG,WAAW,CAAC,UAAU6B,KAAK,EAAEiC,GAAG,EAAE;IAC1D,IAAIkL,eAAe,EAAEC,gBAAgB,EAAEC,eAAe,EAAEC,gBAAgB;IAExE,IAAItN,KAAK,KAAK,KAAK,CAAC,EAAE;MACpBA,KAAK,GAAG,CAAC,CAAC;IACZ;IAEA,IAAIiC,GAAG,KAAK,KAAK,CAAC,EAAE;MAClBA,GAAG,GAAG,IAAI;IACZ;IAEA,OAAOpD,QAAQ,CAAC;MACdqC,IAAI,EAAEA,IAAI;MACV0F,SAAS,EAAEA,SAAS;MACpB7D,IAAI,EAAE,MAAM;MACZ2D,OAAO,EAAEA,OAAO;MAChB,iBAAiB,EAAES,cAAc;MACjC,YAAY,EAAED,SAAS;MACvB,kBAAkB,EAAED,UAAU;MAC9BH,EAAE,EAAEA,EAAE;MACN2F,QAAQ,EAAEnG;IACZ,CAAC,EAAEtG,KAAK,EAAE;MACRuN,QAAQ,EAAE,CAACJ,eAAe,GAAGnN,KAAK,CAACuN,QAAQ,KAAK,IAAI,GAAGJ,eAAe,GAAG9G,UAAU;MACnF,eAAe,EAAE,CAAC+G,gBAAgB,GAAGpN,KAAK,CAACuN,QAAQ,KAAK,IAAI,GAAGH,gBAAgB,GAAG/G,UAAU;MAC5F,eAAe,EAAE,CAACgH,eAAe,GAAGrN,KAAK,CAACwN,QAAQ,KAAK,IAAI,GAAGH,eAAe,GAAG9G,UAAU;MAC1FiH,QAAQ,EAAE,CAACF,gBAAgB,GAAGtN,KAAK,CAACwN,QAAQ,KAAK,IAAI,GAAGF,gBAAgB,GAAG/G,UAAU;MACrFtE,GAAG,EAAEnE,SAAS,CAAC8K,QAAQ,EAAE3G,GAAG,CAAC;MAC7BH,KAAK,EAAEiG,MAAM,CAACI,OAAO,CAACrG,KAAK,CAAC;MAC5B6K,IAAI,EAAE,YAAY;MAClB,eAAe,EAAE5G,GAAG;MACpB,eAAe,EAAEE,GAAG;MACpB,eAAe,EAAEwH,MAAM,CAACC,KAAK,CAACvF,OAAO,CAACmB,aAAa,CAAC,GAAGiC,SAAS,GAAGpD,OAAO,CAACmB,aAAa;MACxF,cAAc,EAAE7L,QAAQ,CAAC+I,SAAS,IAAI,IAAI,GAAGA,SAAS,GAAG2B,OAAO,CAACwF,YAAY,CAAC;MAC9E,gBAAgB,EAAExC,aAAa;MAC/ByC,YAAY,EAAE,KAAK;MACnBC,WAAW,EAAE,KAAK;MAClB9G,QAAQ,EAAEvJ,eAAe,CAACwC,KAAK,CAAC+G,QAAQ,EAAEA,QAAQ,CAAC;MACnDwD,SAAS,EAAE/M,eAAe,CAACwC,KAAK,CAACuK,SAAS,EAAEA,SAAS,CAAC;MACtDlD,OAAO,EAAE7J,eAAe,CAACwC,KAAK,CAACqH,OAAO,EAAE8C,QAAQ,EAAEzB,UAAU,CAACoF,EAAE,CAAC;MAChEvG,MAAM,EAAE/J,eAAe,CAACwC,KAAK,CAACuH,MAAM,EAAEA,MAAM,EAAEmE,WAAW;IAC3D,CAAC,CAAC;EACJ,CAAC,EAAE,CAACxK,IAAI,EAAE0F,SAAS,EAAEF,OAAO,EAAES,cAAc,EAAED,SAAS,EAAEa,MAAM,EAAEd,UAAU,EAAEH,EAAE,EAAER,UAAU,EAAEC,UAAU,EAAEF,UAAU,EAAEG,SAAS,EAAE2B,OAAO,CAACrG,KAAK,EAAEqG,OAAO,CAACmB,aAAa,EAAEnB,OAAO,CAACwF,YAAY,EAAE5H,GAAG,EAAEE,GAAG,EAAEkF,aAAa,EAAEpE,QAAQ,EAAEwD,SAAS,EAAEJ,QAAQ,EAAEzB,UAAU,CAACoF,EAAE,EAAEvG,MAAM,EAAEmE,WAAW,CAAC,CAAC;EACxR,OAAO;IACL5J,KAAK,EAAEiG,MAAM,CAACI,OAAO,CAACrG,KAAK,CAAC;IAC5BwH,aAAa,EAAEnB,OAAO,CAACmB,aAAa;IACpCb,SAAS,EAAEA,SAAS;IACpBnC,UAAU,EAAEA,UAAU;IACtBD,UAAU,EAAEA,UAAU;IACtBmG,uBAAuB,EAAEA,uBAAuB;IAChDQ,uBAAuB,EAAEA,uBAAuB;IAChDE,aAAa,EAAEA,aAAa;IAC5BhF,SAAS,EAAEA;EACb,CAAC;AACH;AAEA,IAAI6F,SAAS,GAAG,CAAC,WAAW,CAAC;;AAE7B;AACA;AACA;AACA,IAAIC,cAAc,GAAGjQ,aAAa,CAAC;IACjCmD,IAAI,EAAE,oBAAoB;IAC1B+M,YAAY,EAAE;EAChB,CAAC,CAAC;EACEC,mBAAmB,GAAGF,cAAc,CAAC,CAAC,CAAC;EACvCG,qBAAqB,GAAGH,cAAc,CAAC,CAAC,CAAC;;AAE7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAII,WAAW,GAAG,aAAavR,UAAU,CAAC,UAAUmD,KAAK,EAAEiC,GAAG,EAAE;EAC9D,IAAIoM,MAAM,GAAGvR,mBAAmB,CAAC,aAAa,EAAEkD,KAAK,CAAC;EACtD,IAAIsO,QAAQ,GAAGvR,gBAAgB,CAACiD,KAAK,CAAC;EACtC,IAAIuO,YAAY,GAAG3R,mBAAmB,CAAC0R,QAAQ,CAAC;EAEhD,IAAIE,eAAe,GAAGlJ,cAAc,CAACiJ,YAAY,CAAC;IAC9CrG,SAAS,GAAGsG,eAAe,CAACtG,SAAS;IACrCuG,OAAO,GAAG/O,6BAA6B,CAAC8O,eAAe,EAAET,SAAS,CAAC;EAEvE,IAAIW,GAAG,GAAG1Q,KAAK,CAACoN,OAAO,CAAC,YAAY;IAClC,OAAOqD,OAAO;EAChB,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;EACb,OAAO,aAAazQ,KAAK,CAACiC,aAAa,CAACiO,mBAAmB,EAAE;IAC3DpM,KAAK,EAAE4M;EACT,CAAC,EAAE,aAAa1Q,KAAK,CAACiC,aAAa,CAACjD,cAAc,EAAE;IAClD8E,KAAK,EAAEuM;EACT,CAAC,EAAE,aAAarQ,KAAK,CAACiC,aAAa,CAAChD,MAAM,CAAC0R,GAAG,EAAE9P,QAAQ,CAAC,CAAC,CAAC,EAAEqJ,SAAS,EAAE;IACtEjG,GAAG,EAAEA,GAAG;IACR2M,SAAS,EAAEhR,EAAE,CAAC,oBAAoB,EAAEoC,KAAK,CAAC4O,SAAS,CAAC;IACpDC,KAAK,EAAEhQ,QAAQ,CAAC;MACdiQ,QAAQ,EAAE,UAAU;MACpBC,MAAM,EAAE;IACV,CAAC,EAAEV,MAAM,CAACW,IAAI;EAChB,CAAC,CAAC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AAEF,IAAInR,OAAO,EAAE;EACXuQ,WAAW,CAACa,WAAW,GAAG,aAAa;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIC,kBAAkB,GAAG,aAAarS,UAAU,CAAC,UAAUmD,KAAK,EAAEiC,GAAG,EAAE;EACrE,IAAIoM,MAAM,GAAGnR,SAAS,CAAC,CAAC;EACxB,OAAO,aAAac,KAAK,CAACiC,aAAa,CAAChD,MAAM,CAAC0R,GAAG,EAAE9P,QAAQ,CAAC;IAC3D,aAAa,EAAE,IAAI;IACnBoD,GAAG,EAAEA;EACP,CAAC,EAAEjC,KAAK,EAAE;IACR6O,KAAK,EAAEhQ,QAAQ,CAAC;MACdsQ,OAAO,EAAE,MAAM;MACfC,aAAa,EAAE,QAAQ;MACvBN,QAAQ,EAAE,UAAU;MACpBO,GAAG,EAAE,GAAG;MACRC,QAAQ,EAAE,KAAK;MACfC,MAAM,EAAE,KAAK;MACbC,MAAM,EAAE,kBAAkB;MAC1BT,MAAM,EAAE;IACV,CAAC,EAAEV,MAAM,CAACoB,YAAY;EACxB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,IAAI5R,OAAO,EAAE;EACXqR,kBAAkB,CAACD,WAAW,GAAG,oBAAoB;AACvD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIS,gBAAgB,GAAG,aAAa7S,UAAU,CAAC,UAAUmD,KAAK,EAAEiC,GAAG,EAAE;EACnE,IAAI0N,qBAAqB,GAAGxB,qBAAqB,CAAC,CAAC;IAC/CjB,aAAa,GAAGyC,qBAAqB,CAACzC,aAAa;EAEvD,IAAI0C,KAAK,GAAG1C,aAAa,CAAClN,KAAK,EAAEiC,GAAG,CAAC;EACrC,IAAIoM,MAAM,GAAGnR,SAAS,CAAC,CAAC;EACxB,OAAO,aAAac,KAAK,CAACiC,aAAa,CAAChD,MAAM,CAAC2S,KAAK,EAAE/Q,QAAQ,CAAC,CAAC,CAAC,EAAE+Q,KAAK,EAAE;IACxEhB,SAAS,EAAEhR,EAAE,CAAC,2BAA2B,EAAEoC,KAAK,CAAC4O,SAAS,CAAC;IAC3DC,KAAK,EAAEhQ,QAAQ,CAAC;MACdgR,KAAK,EAAE;IACT,CAAC,EAAExB,MAAM,CAACyB,KAAK;EACjB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,IAAIjS,OAAO,EAAE;EACX6R,gBAAgB,CAACT,WAAW,GAAG,kBAAkB;AACnD;AAEA,IAAIc,aAAa,GAAG9S,MAAM,CAAC,KAAK,EAAE;EAChC+S,SAAS,EAAE;IACTb,OAAO,EAAE,MAAM;IACfc,cAAc,EAAE,QAAQ;IACxBC,UAAU,EAAE,QAAQ;IACpBC,IAAI,EAAE,CAAC;IACPC,kBAAkB,EAAE,QAAQ;IAC5BC,kBAAkB,EAAE,QAAQ;IAC5BC,UAAU,EAAE,MAAM;IAClBC,MAAM,EAAE,SAAS;IACjBC,UAAU,EAAE;EACd;AACF,CAAC,CAAC;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAIC,sBAAsB,GAAG,aAAa5T,UAAU,CAAC,UAAUmD,KAAK,EAAEiC,GAAG,EAAE;EACzE,IAAIyO,eAAe;EAEnB,IAAIrC,MAAM,GAAGnR,SAAS,CAAC,CAAC;EAExB,IAAIyT,sBAAsB,GAAGxC,qBAAqB,CAAC,CAAC;IAChDnB,uBAAuB,GAAG2D,sBAAsB,CAAC3D,uBAAuB;EAE5E,IAAIvJ,SAAS,GAAGuJ,uBAAuB,CAAChN,KAAK,EAAEiC,GAAG,CAAC;EACnD,OAAO,aAAajE,KAAK,CAACiC,aAAa,CAAC8P,aAAa,EAAElR,QAAQ,CAAC,CAAC,CAAC,EAAE4E,SAAS,EAAE;IAC7EoL,KAAK,EAAER,MAAM,CAACuC;EAChB,CAAC,CAAC,EAAE,CAACF,eAAe,GAAG1Q,KAAK,CAAC6Q,QAAQ,KAAK,IAAI,GAAGH,eAAe,GAAG,aAAa1S,KAAK,CAACiC,aAAa,CAACF,gBAAgB,EAAE,IAAI,CAAC,CAAC;AAC9H,CAAC,CAAC;AAEF,IAAIlC,OAAO,EAAE;EACX4S,sBAAsB,CAACxB,WAAW,GAAG,wBAAwB;AAC/D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI6B,sBAAsB,GAAG,aAAajU,UAAU,CAAC,UAAUmD,KAAK,EAAEiC,GAAG,EAAE;EACzE,IAAI8O,gBAAgB;EAEpB,IAAIC,sBAAsB,GAAG7C,qBAAqB,CAAC,CAAC;IAChD3B,uBAAuB,GAAGwE,sBAAsB,CAACxE,uBAAuB;EAE5E,IAAIhJ,SAAS,GAAGgJ,uBAAuB,CAACxM,KAAK,EAAEiC,GAAG,CAAC;EACnD,IAAIoM,MAAM,GAAGnR,SAAS,CAAC,CAAC;EACxB,OAAO,aAAac,KAAK,CAACiC,aAAa,CAAC8P,aAAa,EAAElR,QAAQ,CAAC,CAAC,CAAC,EAAE2E,SAAS,EAAE;IAC7EqL,KAAK,EAAER,MAAM,CAACuC;EAChB,CAAC,CAAC,EAAE,CAACG,gBAAgB,GAAG/Q,KAAK,CAAC6Q,QAAQ,KAAK,IAAI,GAAGE,gBAAgB,GAAG,aAAa/S,KAAK,CAACiC,aAAa,CAACI,cAAc,EAAE,IAAI,CAAC,CAAC;AAC9H,CAAC,CAAC;AAEF,IAAIxC,OAAO,EAAE;EACXiT,sBAAsB,CAAC7B,WAAW,GAAG,wBAAwB;AAC/D;AAEA,SAASwB,sBAAsB,EAAEK,sBAAsB,EAAE1C,WAAW,EAAEsB,gBAAgB,EAAER,kBAAkB,EAAEa,aAAa,EAAEzK,cAAc","ignoreList":[]},"metadata":{},"sourceType":"module","externalDependencies":[]}