{"version":3,"file":"react-yandex-maps.modern.mjs","sources":["../src/util/omit.ts","../src/Context.tsx","../src/hooks/useYMaps.ts","../src/hocs/withYMaps.tsx","../src/util/set.ts","../src/util/is-browser.ts","../src/util/create-api-loader.ts","../src/Provider.tsx","../src/util/events.ts","../src/util/props.ts","../src/util/ref.ts","../src/util/getParentElementSize.ts","../src/hocs/with-error-boundary.tsx","../src/Map.tsx","../src/Panorama.tsx","../src/controls/BaseControl.tsx","../src/controls/Button.tsx","../src/controls/FullscreenControl.tsx","../src/controls/GeolocationControl.tsx","../src/controls/ListBox.tsx","../src/controls/ListBoxItem.tsx","../src/controls/RouteButton.tsx","../src/controls/RouteEditor.tsx","../src/controls/RoutePanel.tsx","../src/controls/RulerControl.tsx","../src/controls/SearchControl.tsx","../src/controls/TrafficControl.tsx","../src/controls/TypeSelector.tsx","../src/controls/ZoomControl.tsx","../src/clusterization/Clusterer.tsx","../src/clusterization/ObjectManager.tsx","../src/geo-objects/BaseGeoObject.tsx","../src/geo-objects/GeoObject.tsx","../src/geo-objects/Circle.tsx","../src/geo-objects/Placemark.tsx","../src/geo-objects/Polygon.tsx","../src/geo-objects/Polyline.tsx","../src/geo-objects/Rectangle.tsx"],"sourcesContent":["// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\n/**\n * Helper method to remove keys from the object\n *\n * @param {Object} obj Object to remove keys from\n * @param {string[]} arr List of keys to remove\n * @returns {Object} Object with omitted keys\n */\nexport const omit = (obj, arr) => {\n  const res = {};\n  for (const n in obj) {\n    if (arr.indexOf(n) === -1) res[n] = obj[n];\n  }\n  return res;\n};\n","import React, { useContext } from 'react';\nimport { ApiLoader } from './util/create-api-loader';\nimport { AnyObject } from './util/typing';\n\nexport const YMapsApiLoaderContext = React.createContext<ApiLoader | null>(\n  null\n);\n\nexport const withYMapsContext = <TProps extends AnyObject>(\n  Component: React.FC<React.PropsWithChildren<TProps>>\n): React.FC<React.PropsWithChildren<TProps>> => {\n  const WithYMapsContext: React.FC<React.PropsWithChildren<TProps>> = (\n    props\n  ) => (\n    <YMapsApiLoaderContext.Consumer>\n      {(apiLoader) => {\n        if (apiLoader === null) {\n          const message =\n            \"Couldn't find Yandex.Maps API in the context. \" +\n            `Make sure that <${Component.displayName} /> is inside <YMaps /> provider`;\n\n          throw new Error(message);\n        }\n\n        // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n        // @ts-ignore\n        return <Component apiLoader={apiLoader} {...props} />;\n      }}\n    </YMapsApiLoaderContext.Consumer>\n  );\n\n  return WithYMapsContext;\n};\n\nexport const useYMapsApiLoader = () => {\n  const apiLoader = useContext(YMapsApiLoaderContext);\n  if (apiLoader === null) {\n    const message =\n      \"Couldn't find Yandex.Maps API in the context. \" +\n      `Make sure that hook useYMaps is inside <YMaps /> provider`;\n\n    throw new Error(message);\n  }\n\n  return apiLoader;\n};\n\nexport const ParentContext = React.createContext(null);\n\nexport const withParentContext = <TProps extends AnyObject>(\n  Component: React.FC<React.PropsWithChildren<TProps>>\n): React.FC<React.PropsWithChildren<TProps>> => {\n  const WithParentContext: React.FC<React.PropsWithChildren<TProps>> = (\n    props\n  ) => (\n    <ParentContext.Consumer>\n      {(parent) => {\n        // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n        // @ts-ignore\n        return <Component parent={parent} {...props} />;\n      }}\n    </ParentContext.Consumer>\n  );\n\n  return WithParentContext;\n};\n","import { useEffect, useRef, useState } from 'react';\nimport { useYMapsApiLoader } from '../Context';\nimport { YMapsApi } from '../util/typing';\n\n/**\n * Return loaded ymaps instance\n * @param modules\n * @param onError\n */\nexport const useYMaps = (modules: string[] = []): YMapsApi | null => {\n  const [loaded, setLoaded] = useState(false);\n  const modulesRef = useRef(modules);\n  const apiLoader = useYMapsApiLoader();\n  const api = apiLoader.getApi();\n\n  useEffect(() => {\n    apiLoader\n      .load()\n      .then(() => Promise.all(modulesRef.current.map(apiLoader.loadModule)))\n      .then(() => setLoaded(true));\n  }, []);\n\n  return loaded && api ? api : null;\n};\n","import React, { useEffect } from 'react';\nimport { omit } from '../util/omit';\nimport { AnyObject, YMapsApi, YMapsModules } from '../util/typing';\nimport { ApiLoader } from '../util/create-api-loader';\nimport { useYMaps } from '../hooks/useYMaps';\n\nexport interface WithYMapsProps {\n  modules?: YMapsModules;\n  width?: string | number;\n  height?: string | number;\n  onLoad?: (api: YMapsApi) => void;\n}\n\nconst defaultFunction = () => void 0;\nconst omitProps = ['onLoad', 'onError', 'modules', 'apiLoader'];\n\nexport default function withYMaps<TProps extends AnyObject>(\n  Component: React.FC<TProps> | React.Component<TProps>,\n  waitForApi = false,\n  hocModules: YMapsModules = []\n): React.FC<TProps> {\n  const WithYMaps: React.FC<WithYMapsProps & { apiLoader: ApiLoader }> = (\n    props\n  ) => {\n    const { width, height, modules = [], onLoad = defaultFunction } = props;\n    const ymaps = useYMaps(hocModules.concat(modules));\n    const shouldRender = !waitForApi || !!ymaps;\n    const newProps = omit(props, omitProps);\n\n    useEffect(() => (ymaps ? onLoad(ymaps) : void 0), [ymaps]);\n\n    if (!shouldRender) {\n      return <div style={{ width, height }} />;\n    }\n\n    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n    // @ts-ignore\n    return <Component ymaps={ymaps} {...newProps} />;\n  };\n\n  return WithYMaps as unknown as React.FC<React.PropsWithChildren<TProps>>;\n}\n","/**\n * Set value in object by path\n *\n * @param {Object} object Object to set value to\n * @param {string | string[]} path Path to value\n * @param {any} value Value\n * @param {boolean} [ifNotExists] Will skip setting value if value exists\n */\nexport const set = <TValue>(\n  object: Record<string, unknown>,\n  path: string | string[],\n  value: TValue,\n  ifNotExists = false\n) => {\n  const setPath = typeof path === 'string' ? path.split('.') : path.slice();\n\n  let key: string;\n  let ref = object;\n\n  while (setPath.length > 1) {\n    // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n    key = setPath.shift()!;\n    if (!ref[key]) ref[key] = {};\n    ref = ref[key] as Record<string, unknown>;\n  }\n\n  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n  const lastPathKey = setPath[0]!;\n\n  ref[lastPathKey] = ifNotExists === true ? ref[lastPathKey] || value : value;\n  return object;\n};\n","export const isBrowser = typeof window !== 'undefined';\n","import { set } from './set';\nimport { AnyObject, YMapsApi, YMapsModules } from './typing';\nimport { isDevEnv } from './is-dev-env';\nimport { isBrowser } from './is-browser';\n\ninterface YMapsQuery {\n  lang?: 'tr_TR' | 'en_US' | 'en_RU' | 'ru_RU' | 'ru_UA' | 'uk_UA';\n  apikey?: string;\n  coordorder?: 'latlong' | 'longlat';\n  load?: string;\n  mode?: 'release' | 'debug';\n  csp?: boolean;\n  ns?: string;\n}\n\ninterface CreateYMapsLoaderOptions {\n  version?: string;\n  enterprise?: boolean;\n  query?: YMapsQuery;\n  preload?: boolean;\n}\n\nexport type ApiLoader = ReturnType<typeof createApiLoader>;\n\nconst YMAPS_ONLOAD = '__yandex-maps-api-onload__';\nconst YMAPS_ONERROR = '__yandex-maps-api-onerror__';\n\nconst YMAPS_DEFAULT_QUERY: YMapsQuery = {\n  lang: 'ru_RU',\n  load: '',\n  ns: '',\n  mode: isDevEnv ? 'debug' : 'release',\n};\n\nconst getBaseUrl = (isEnterprise?: boolean) =>\n  `https://${isEnterprise ? 'enterprise.' : ''}api-maps.yandex.ru`;\n\nconst fetchScript = (url: string) => {\n  return new Promise((resolve, reject) => {\n    const script = document.createElement('script');\n\n    script.type = 'text/javascript';\n    script.onload = resolve;\n    script.onerror = reject;\n    script.src = url;\n    script.async = true;\n\n    document.head.appendChild(script);\n  });\n};\n\nexport const createApiLoader = (options: CreateYMapsLoaderOptions) => {\n  const { query = YMAPS_DEFAULT_QUERY } = options;\n  const hash = Date.now().toString(32);\n  const namespace = query.ns || '';\n  const onload = YMAPS_ONLOAD + '$$' + hash;\n  const onerror = YMAPS_ONERROR + '$$' + hash;\n  const windowObj: AnyObject = isBrowser ? window : {};\n\n  const PROMISES: Record<string, Promise<YMapsApi> | undefined> = {};\n  let api: YMapsApi;\n\n  const getApi = (): YMapsApi =>\n    typeof isBrowser && namespace ? windowObj[namespace] : api;\n\n  const loadModule = (moduleName: string): Promise<YMapsApi> => {\n    return new Promise((res, rej) => {\n      api.modules.require(moduleName).done((modules: YMapsModules[]) => {\n        modules.forEach((module) => {\n          set(api, moduleName, module, true);\n        });\n\n        res(api);\n      }, rej);\n    });\n  };\n\n  const clearWindow = () => {\n    delete windowObj[onload];\n    delete windowObj[onerror];\n  };\n\n  const load = (): Promise<YMapsApi> => {\n    if (getApi()) {\n      return Promise.resolve(api);\n    }\n\n    if (PROMISES[namespace]) {\n      return PROMISES[namespace] as Promise<YMapsApi>;\n    }\n\n    const ymapsQuery: Record<string, string | boolean> = {\n      onload,\n      onerror,\n      ...YMAPS_DEFAULT_QUERY,\n      ...query,\n    };\n\n    const queryString = Object.keys(ymapsQuery)\n      .map((key) => `${key}=${ymapsQuery[key]}`)\n      .join('&');\n\n    const baseUrl = getBaseUrl(options.enterprise);\n\n    const url = [baseUrl, options.version, '?' + queryString].join('/');\n\n    PROMISES[namespace] = new Promise<YMapsApi>((resolve, reject) => {\n      windowObj[onload] = (ym: YMapsApi) => {\n        clearWindow();\n\n        void ym.ready(() => {\n          api = ym;\n\n          resolve(ym);\n        });\n      };\n\n      windowObj[onerror] = (err: Error) => {\n        clearWindow();\n        reject(err);\n      };\n\n      fetchScript(url).catch(windowObj[onerror]);\n    });\n\n    return PROMISES[namespace] as Promise<YMapsApi>;\n  };\n\n  return { load, getApi, loadModule };\n};\n","import React, { useEffect, useRef } from 'react';\nimport { YMapsApiLoaderContext } from './Context';\nimport { createApiLoader } from './util/create-api-loader';\n\ninterface YMapProvider {\n  version?: string;\n  enterprise?: boolean;\n  /**\n   *  Yandex.Maps API avaliable query params\n   *  https://tech.yandex.com/maps/doc/jsapi/2.1/dg/concepts/load-docpage/\n   *  Some query params will be omitted in any case because they are used\n   *  by the library: onload, onerror\n   */\n  query?: {\n    lang?: 'tr_TR' | 'en_US' | 'en_RU' | 'ru_RU' | 'ru_UA' | 'uk_UA';\n    apikey?: string;\n    suggest_apikey?: string;\n    coordorder?: 'latlong' | 'longlat';\n    load?: string;\n    mode?: 'release' | 'debug';\n    csp?: boolean;\n    ns?: string;\n  };\n  /**\n   *  Allows provider to preload Yandex.Maps API even if\n   *  there are no map components on the page\n   */\n  preload?: boolean;\n}\n\nexport const Provider: React.FC<React.PropsWithChildren<YMapProvider>> = (\n  props\n) => {\n  const {\n    version = '2.1',\n    enterprise = false,\n    query = { lang: 'ru_RU', load: '', ns: '' },\n    preload = false,\n    children,\n  } = props;\n\n  const ymapsRef = useRef(\n    createApiLoader({ version, enterprise, query, preload })\n  );\n\n  useEffect(() => {\n    if (preload) {\n      ymapsRef.current.load();\n    }\n  }, [ymapsRef.current]);\n\n  return (\n    <YMapsApiLoaderContext.Provider value={ymapsRef.current}>\n      {children}\n    </YMapsApiLoaderContext.Provider>\n  );\n};\n","// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nconst EVENTS_REGEX = /^on(?=[A-Z])/;\n\n/**\n * Separates YMaps events from other component props based on prop name\n *\n * @param {Object} props Component props\n * @returns {Object} Separated _event props and other component props\n */\nexport function separateEvents(props) {\n  return Object.keys(props).reduce(\n    (acc, key) => {\n      if (EVENTS_REGEX.test(key)) {\n        const eventName = key.replace(EVENTS_REGEX, '').toLowerCase();\n        acc._events[eventName] = props[key];\n      } else {\n        acc[key] = props[key];\n      }\n\n      return acc;\n    },\n    { _events: {} }\n  );\n}\n\n/**\n * Adds event to YMaps object\n *\n * @param {Object} instance YMaps object instance\n * @param {string} eventName Event name (e.g., \"onclick\", \"ontouchstart\")\n * @param {Function} handler Event handler method\n */\nexport function addEvent(instance, eventName, handler) {\n  if (typeof handler === 'function') {\n    instance.events.add(eventName, handler);\n  }\n}\n\n/**\n * Removes event from YMaps object\n *\n * @param {Object} instance YMaps object instance\n * @param {string} eventName Event name (e.g., \"onclick\", \"ontouchstart\")\n * @param {Function} handler Event handler method\n */\nexport function removeEvent(instance, eventName, handler) {\n  if (typeof handler === 'function') {\n    instance.events.remove(eventName, handler);\n  }\n}\n\n/**\n * Given two objects with new and old events, checks if event was\n * changed and updates it by removing the old one and adding the\n * new one\n *\n * @param {Object} instance YMaps object instance\n * @param {Object} oldEvents Map of old events\n * @param {Object} newEvents Map of new events\n */\nexport function updateEvents(instance, oldEvents, newEvents) {\n  Object.keys(Object.assign({}, oldEvents, newEvents)).forEach((eventName) => {\n    if (oldEvents[eventName] !== newEvents[eventName]) {\n      removeEvent(instance, eventName, oldEvents[eventName]);\n      addEvent(instance, eventName, newEvents[eventName]);\n    }\n  });\n}\n","// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nconst defaultName = (name) =>\n  'default' + name.charAt(0).toUpperCase() + name.slice(1);\n\n/**\n * Checks if key exists on an object\n *\n * @param {Object} props Component props\n * @param {string} key Prop key\n * @returns {boolean} Check result\n */\nexport function isControlledProp(props, key) {\n  return props[key] !== undefined || props[defaultName(key)] === undefined;\n}\n\n/**\n * Checks if prop exists, otherwise returns \"uncontrolled\"\n * prop that starts with default (e.g., defaultValue)\n *\n * @param {Object} props Component props\n * @param {string} key Prop key\n * @param {any} defaultValue\n * @return {any} Prop value\n */\nexport function getProp(props, key, defaultValue) {\n  return (\n    (isControlledProp(props, key) ? props[key] : props[defaultName(key)]) ||\n    defaultValue\n  );\n}\n","// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\n/**\n * Mimics React ref behavior. First cleans oldRef, if possible, then applies new ref value\n * https://reactjs.org/docs/refs-and-the-dom.html#caveats-with-callback-refs\n *\n * @param {Object<{current: T}> | Function} oldRef\n * @param {Object<{current: T}> | Function?} newRef\n * @param {T?} value\n */\nexport default function applyRef(oldRef, newRef, value = null) {\n  if (oldRef !== newRef) {\n    if (oldRef) {\n      if ('current' in oldRef) {\n        oldRef.current = null;\n      } else if (typeof oldRef === 'function') {\n        oldRef(null);\n      }\n    }\n\n    if (!newRef) return;\n\n    if ('current' in newRef) {\n      newRef.current = value;\n    } else if (typeof newRef === 'function') {\n      newRef(value);\n    }\n  }\n}\n","// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\n/**\n * Return style object depends on props\n *\n * @param {Object} props Component props\n * @returns {Object} Style object result\n */\nexport default function getParentElementSize(props) {\n  const { width, height, style, className } = props;\n\n  if (typeof style !== 'undefined' || typeof className !== 'undefined') {\n    return Object.assign({}, style && { style }, className && { className });\n  }\n\n  return { style: { width, height } };\n}\n","import React, { ErrorInfo } from 'react';\nimport { AnyObject } from '../util/typing';\n\nexport interface ErrorBoundaryProps {\n  onError?: (err: Error) => void;\n}\n\ninterface ErrorBoundaryState {\n  error: Error | null;\n  errorInfo: ErrorInfo | null;\n}\n\nclass ErrorBoundary extends React.Component<\n  React.PropsWithChildren<ErrorBoundaryProps>,\n  ErrorBoundaryState\n> {\n  constructor(props: React.PropsWithChildren<ErrorBoundaryProps>) {\n    super(props);\n    this.state = { error: null, errorInfo: null };\n  }\n\n  override componentDidCatch(error: Error, errorInfo: ErrorInfo) {\n    const { onError = () => void 0 } = this.props;\n\n    onError(error);\n\n    this.setState({\n      error: error,\n      errorInfo: errorInfo,\n    });\n  }\n\n  override render() {\n    return this.state.error ? null : this.props.children;\n  }\n}\n\n/**\n * Prevent map tree crashing if components throw an error\n * @param Component\n */\nexport const withErrorBoundary = <TProps extends AnyObject>(\n  Component: React.FC<React.PropsWithChildren<TProps>>\n): React.FC<React.PropsWithChildren<TProps & ErrorBoundaryProps>> => {\n  const WithErrorBoundary: React.FC<TProps & ErrorBoundaryProps> = ({\n    onError,\n    ...props\n  }) => {\n    return (\n      <ErrorBoundary onError={onError}>\n        {/* eslint-disable-next-line @typescript-eslint/ban-ts-comment */}\n        {/* @ts-ignore */}\n        <Component {...props} />\n      </ErrorBoundary>\n    );\n  };\n\n  return WithErrorBoundary;\n};\n","// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nimport React, { CSSProperties } from 'react';\nimport * as events from './util/events';\nimport { omit } from './util/omit';\nimport { getProp, isControlledProp } from './util/props';\nimport withYMaps, { WithYMapsProps } from './hocs/withYMaps';\nimport { ParentContext } from './Context';\nimport applyRef from './util/ref';\nimport getParentElementSize from './util/getParentElementSize';\nimport ymaps from 'yandex-maps';\nimport { AnyObject, WithInstanceRef } from './util/typing';\nimport {\n  ErrorBoundaryProps,\n  withErrorBoundary,\n} from './hocs/with-error-boundary';\n\ninterface MapProps {\n  /**\n   * [Map state parameters](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/Map-docpage/#param-state)\n   */\n  state?: ymaps.IMapState;\n  /**\n   * Uncontrolled [Map state parameters](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/Map-docpage/#param-state)\n   */\n  defaultState?: ymaps.IMapState;\n\n  /**\n   * [Map options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/Map-docpage/#Map__param-options)\n   */\n  options?: ymaps.IMapOptions;\n  /**\n   * Uncontrolled [Map options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/Map-docpage/#Map__param-options)\n   */\n  defaultOptions?: ymaps.IMapOptions;\n\n  /**\n   * Yandex.Maps Map parent element should have at least\n   * some size set to it, otherwise the map is rendered\n   * into the container with size 0\n   *\n   * To avoid this we will use `width` and `height` props as default\n   * way of sizing the map element, but then if we see that\n   * the library user also provides `style` or `className` prop,\n   * we will assume that the Map is sized by those and will\n   * not use these\n   */\n\n  /**\n   * Map container width\n   */\n  width?: string | number;\n\n  /**\n   * Map container height\n   */\n  height?: string | number;\n\n  /**\n   * Map container style\n   */\n  style?: CSSProperties;\n\n  /**\n   * Map container className\n   */\n  className?: string;\n}\n\nexport class Map extends React.Component<\n  MapProps & WithYMapsProps & WithInstanceRef & ErrorBoundaryProps\n> {\n  constructor() {\n    super();\n    this.instance = null;\n    this.state = { instance: null };\n    this._parentElement = null;\n    this._getRef = (ref) => {\n      this._parentElement = ref;\n    };\n  }\n\n  componentDidMount() {\n    this.instance = Map.mountObject(\n      this._parentElement,\n      // eslint-disable-next-line react/prop-types\n      this.props.ymaps.Map,\n      this.props\n    );\n\n    this.setState({ instance: this.instance });\n  }\n\n  componentDidUpdate(prevProps) {\n    if (this.instance !== null) {\n      Map.updateObject(this.instance, prevProps, this.props);\n    }\n  }\n\n  componentWillUnmount() {\n    Map.unmountObject(this.instance, this.props);\n  }\n\n  render() {\n    const parentElementStyle = getParentElementSize(this.props);\n    const separatedProps = events.separateEvents(this.props);\n\n    const parentElementProps = omit(separatedProps, [\n      '_events',\n      'state',\n      'defaultState',\n      'options',\n      'defaultOptions',\n      'instanceRef',\n      'ymaps',\n      'children',\n      'width',\n      'height',\n      'style',\n      'className',\n    ]);\n\n    return (\n      <ParentContext.Provider value={this.state.instance}>\n        <div ref={this._getRef} {...parentElementStyle} {...parentElementProps}>\n          {this.props.children}\n        </div>\n      </ParentContext.Provider>\n    );\n  }\n\n  static mountObject(parentElement, Map, props) {\n    const { instanceRef, _events } = events.separateEvents(props);\n\n    const state = getProp(props, 'state');\n    const options = getProp(props, 'options');\n\n    const instance = new Map(parentElement, state, options);\n\n    Object.keys(_events).forEach((key) =>\n      events.addEvent(instance, key, _events[key])\n    );\n\n    applyRef(null, instanceRef, instance);\n\n    return instance;\n  }\n\n  static updateObject(instance, oldProps, newProps) {\n    const { _events: newEvents, instanceRef } = events.separateEvents(newProps);\n    const { _events: oldEvents, instanceRef: oldRef } =\n      events.separateEvents(oldProps);\n\n    if (isControlledProp(newProps, 'state')) {\n      const oldState = getProp(oldProps, 'state', {});\n      const newState = getProp(newProps, 'state', {});\n\n      if (oldState.type !== newState.type) {\n        instance.setType(newState.type);\n      }\n\n      if (oldState.behaviors !== newState.behaviors) {\n        if (oldState.behaviors) instance.behaviors.disable(oldState.behaviors);\n        if (newState.behaviors) instance.behaviors.enable(newState.behaviors);\n      }\n\n      if (newState.zoom && oldState.zoom !== newState.zoom) {\n        instance.setZoom(newState.zoom);\n      }\n\n      if (newState.center && oldState.center !== newState.center) {\n        instance.setCenter(newState.center);\n      }\n\n      if (newState.bounds && oldState.bounds !== newState.bounds) {\n        instance.setBounds(newState.bounds);\n      }\n    }\n\n    if (isControlledProp(newProps, 'options')) {\n      const oldOptions = getProp(oldProps, 'options');\n      const newOptions = getProp(newProps, 'options', {});\n\n      if (oldOptions !== newOptions) {\n        instance.options.set(newOptions);\n      }\n    }\n\n    if (\n      getProp(oldProps, 'width') !== getProp(newProps, 'width') ||\n      getProp(oldProps, 'height') !== getProp(newProps, 'height')\n    ) {\n      instance.container.fitToViewport();\n    }\n\n    events.updateEvents(instance, oldEvents, newEvents);\n\n    applyRef(oldRef, instanceRef, instance);\n  }\n\n  static unmountObject(instance, props) {\n    const { instanceRef, _events } = events.separateEvents(props);\n\n    if (instance !== null) {\n      Object.keys(_events).forEach((key) =>\n        events.removeEvent(instance, key, _events[key])\n      );\n\n      instance.destroy();\n\n      // Clean used ref\n      applyRef(instanceRef);\n    }\n  }\n}\n\nconst YMapsMap = withErrorBoundary(\n  withYMaps<MapProps & WithYMapsProps & WithInstanceRef & AnyObject>(\n    Map,\n    true,\n    ['Map']\n  )\n);\n\nexport default YMapsMap;\n","// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nimport React, { CSSProperties } from 'react';\nimport { getProp, isControlledProp } from './util/props';\nimport withYMaps, { WithYMapsProps } from './hocs/withYMaps';\nimport * as events from './util/events';\nimport applyRef from './util/ref';\nimport getParentElementSize from './util/getParentElementSize';\nimport ymaps from 'yandex-maps';\nimport { AnyObject, WithInstanceRef } from './util/typing';\nimport {\n  ErrorBoundaryProps,\n  withErrorBoundary,\n} from './hocs/with-error-boundary';\n\ninterface PanoramaOptions {\n  autoFitToViewport?: 'none' | 'ifNull' | 'always' | undefined;\n  controls?: string[] | undefined;\n  direction?: number[] | string | undefined;\n  hotkeysEnabled?: boolean | undefined;\n  scrollZoomBehavior?: boolean | undefined;\n  span?: number[] | string | undefined;\n  suppressMapOpenBlock?: boolean | undefined;\n}\n\ninterface PanoramaProps {\n  /**\n   * [Panorama options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/panorama.Player-docpage/#panorama.Player__param-options)\n   */\n  options?: PanoramaOptions;\n  /**\n   * Uncontrolled [Panorama options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/panorama.Player-docpage/#panorama.Player__param-options)\n   */\n  defaultOptions?: PanoramaOptions;\n\n  /**\n   * The point for searching for nearby panoramas.\n   */\n  point?: number[];\n  /**\n   * Uncontrolled point for searching for nearby panoramas.\n   */\n  defaultPoint?: number[];\n\n  /**\n   * Panorama [locate options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/panorama.locate-docpage/#panorama.locate__param-options)\n   */\n  locateOptions?: { layer: ymaps.panorama.Layer };\n\n  /**\n   * Yandex.Maps Panorama parent element should have at least\n   * some size set to it, otherwise the panorama is rendered\n   * into the container with size 0\n   *\n   * To avoid this we will use `width` and `height` props as default\n   * way of sizing the panorama element, but then if we see that\n   * the library user also provides `style` or `className` prop,\n   * we will assume that the panorama is sized by those and will\n   * not use these\n   */\n\n  /**\n   * Panorama container width\n   */\n  width?: string | number;\n\n  /**\n   * Panorama container height\n   */\n  height?: string | number;\n\n  /**\n   * Panorama container style\n   */\n  style?: CSSProperties;\n\n  /**\n   * Panorama container className\n   */\n  className?: string;\n}\n\nexport class Panorama extends React.Component<\n  PanoramaProps & WithYMapsProps & WithInstanceRef & ErrorBoundaryProps\n> {\n  constructor() {\n    super();\n    this.state = { instance: null };\n    this._parentElement = null;\n    this._getRef = (ref) => {\n      this._parentElement = ref;\n    };\n  }\n\n  componentDidMount() {\n    this._mounted = true;\n\n    // eslint-disable-next-line react/prop-types\n    if (!this.props.ymaps.panorama.isSupported()) {\n      return;\n    }\n\n    Panorama.mountObject(\n      this._parentElement,\n      // eslint-disable-next-line react/prop-types\n      this.props.ymaps.panorama,\n      this.props\n    ).then((instance) => this._mounted && this.setState({ instance }));\n  }\n\n  componentDidUpdate(prevProps) {\n    if (this.state.instance !== null) {\n      Panorama.updateObject(this.state.instance, prevProps, this.props);\n    }\n  }\n\n  componentWillUnmount() {\n    this._mounted = false;\n    Panorama.unmountObject(this.state.instance, this.props);\n  }\n\n  render() {\n    const parentElementStyle = getParentElementSize(this.props);\n\n    return <div ref={this._getRef} {...parentElementStyle} />;\n  }\n\n  static mountObject(parentElement, panorama, props) {\n    const { instanceRef, _events } = events.separateEvents(props);\n\n    const point = getProp(props, 'point');\n    const locateOptions = getProp(props, 'locateOptions');\n    const options = getProp(props, 'options');\n\n    return new Promise((resolve, reject) => {\n      panorama.locate(point, locateOptions).done((panoramas) => {\n        if (panoramas.length > 0) {\n          const instance = new panorama.Player(\n            parentElement,\n            panoramas[0],\n            options\n          );\n\n          applyRef(null, instanceRef, instance);\n\n          Object.keys(_events).forEach((key) =>\n            events.addEvent(instance, key, _events[key])\n          );\n\n          resolve(instance);\n        }\n      }, reject);\n    });\n  }\n\n  static updateObject(instance, oldProps, newProps) {\n    const { _events: newEvents, instanceRef } = events.separateEvents(newProps);\n    const { _events: oldEvents, instanceRef: oldRef } =\n      events.separateEvents(oldProps);\n\n    if (isControlledProp(newProps, 'options')) {\n      const oldOptions = getProp(oldProps, 'options');\n      const newOptions = getProp(newProps, 'options');\n\n      if (oldOptions !== newOptions) {\n        instance.options.set(newOptions);\n      }\n    }\n\n    if (isControlledProp(newProps, 'point')) {\n      const point = getProp(newProps, 'point');\n      const oldPoint = getProp(oldProps, 'point');\n      const locateOptions = getProp(newProps, 'locateOptions');\n\n      if (point !== oldPoint) {\n        instance.moveTo(point, locateOptions);\n      }\n    }\n\n    events.updateEvents(instance, oldEvents, newEvents);\n\n    applyRef(oldRef, instanceRef, instance);\n  }\n\n  static unmountObject(instance, props) {\n    const { instanceRef, _events } = events.separateEvents(props);\n\n    if (instance !== null) {\n      Object.keys(_events).forEach((key) =>\n        events.removeEvent(instance, key, _events[key])\n      );\n\n      // Clean used ref\n      applyRef(instanceRef);\n    }\n  }\n}\n\nconst YMapsPanorama = withErrorBoundary(\n  withYMaps<PanoramaProps & WithYMapsProps & WithInstanceRef & AnyObject>(\n    Panorama,\n    true,\n    [\n      'panorama.isSupported',\n      'panorama.locate',\n      'panorama.createPlayer',\n      'panorama.Player',\n    ]\n  )\n);\n\nexport default YMapsPanorama;\n","// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nimport React from 'react';\n\nimport * as events from '../util/events';\nimport { getProp, isControlledProp } from '../util/props';\nimport { ParentContext } from '../Context';\nimport applyRef from '../util/ref';\nimport { AnyObject, WithInstanceRef } from '../util/typing';\n\nexport interface BaseControlProps {\n  /** Parent object (e.g, ymaps.Map or ymaps.Clusterer) */\n  parent?: AnyObject;\n\n  /** Control name */\n  name: Required<\n    | 'Button'\n    | 'FullscreenControl'\n    | 'GeolocationControl'\n    | 'ListBox'\n    | 'ListBoxItem'\n    | 'RouteButton'\n    | 'RouteEditor'\n    | 'RoutePanel'\n    | 'RulerControl'\n    | 'SearchControl'\n    | 'TrafficControl'\n    | 'TypeSelector'\n    | 'ZoomControl'\n  >;\n}\n\nexport class BaseControl extends React.Component<\n  BaseControlProps & WithInstanceRef\n> {\n  constructor() {\n    super();\n    this.state = { instance: null };\n    this.instance = null;\n  }\n\n  componentDidMount() {\n    const instance = BaseControl.mountControl(\n      this.props.ymaps.control[this.props.name],\n      this.props\n    );\n\n    this.instance = instance;\n    this.setState({ instance });\n  }\n\n  componentDidUpdate(prevProps) {\n    if (this.instance !== null) {\n      BaseControl.updateControl(this.instance, prevProps, this.props);\n    }\n  }\n\n  componentWillUnmount() {\n    BaseControl.unmountControl(this.instance, this.props);\n  }\n\n  render() {\n    return (\n      <ParentContext.Provider value={this.state.instance}>\n        {this.props.children}\n      </ParentContext.Provider>\n    );\n  }\n\n  static mountControl(Control, props) {\n    const { instanceRef, parent, lazy, _events } = events.separateEvents(props);\n\n    const data = getProp(props, 'data');\n    const options = getProp(props, 'options');\n    const state = getProp(props, 'state');\n    const mapTypes = getProp(props, 'mapTypes');\n\n    const instance = new Control({ data, options, state, mapTypes, lazy });\n\n    Object.keys(_events).forEach((key) =>\n      events.addEvent(instance, key, _events[key])\n    );\n\n    if (\n      parent &&\n      parent.controls &&\n      typeof parent.controls.add === 'function'\n    ) {\n      parent.controls.add(instance);\n    } else if (parent && parent.add && typeof parent.add === 'function') {\n      parent.add(instance);\n    } else {\n      throw new Error(`No parent found to mount ${props.name}`);\n    }\n\n    applyRef(null, instanceRef, instance);\n\n    return instance;\n  }\n\n  static updateControl(instance, oldProps, newProps) {\n    const { _events: newEvents, instanceRef } = events.separateEvents(newProps);\n    const { _events: oldEvents, instanceRef: oldRef } =\n      events.separateEvents(oldProps);\n\n    if (isControlledProp(newProps, 'options')) {\n      const oldOptions = getProp(oldProps, 'options');\n      const newOptions = getProp(newProps, 'options');\n\n      if (oldOptions !== newOptions) {\n        instance.options.set(newOptions);\n      }\n    }\n\n    if (isControlledProp(newProps, 'data')) {\n      const oldData = getProp(oldProps, 'data');\n      const newData = getProp(newProps, 'data');\n\n      if (oldData !== newData) {\n        instance.data.set(newData);\n      }\n    }\n\n    if (isControlledProp(newProps, 'state')) {\n      const oldState = getProp(oldProps, 'state');\n      const newState = getProp(newProps, 'state');\n\n      if (oldState !== newState) {\n        instance.state.set(newState);\n      }\n    }\n\n    if (isControlledProp(newProps, 'mapTypes')) {\n      const oldMapTypes = getProp(oldProps, 'mapTypes');\n      const newMapTypes = getProp(newProps, 'mapTypes');\n\n      if (oldMapTypes !== newMapTypes) {\n        instance.removeAllMapTypes();\n        newMapTypes.forEach((type) => instance.addMapType(type));\n      }\n    }\n\n    events.updateEvents(instance, oldEvents, newEvents);\n\n    applyRef(oldRef, instanceRef, instance);\n  }\n\n  static unmountControl(instance, props) {\n    const { instanceRef, parent, _events } = events.separateEvents(props);\n\n    if (instance !== null) {\n      Object.keys(_events).forEach((key) =>\n        events.removeEvent(instance, key, _events[key])\n      );\n\n      if (parent.controls && typeof parent.controls.remove === 'function') {\n        parent.controls.remove(instance);\n      } else if (parent.remove && typeof parent.remove === 'function') {\n        parent.remove(instance);\n      }\n\n      applyRef(instanceRef);\n    }\n  }\n}\n","import React from 'react';\n\nimport { withParentContext } from '../Context';\nimport withYMaps, { WithYMapsProps } from '../hocs/withYMaps';\n\nimport { BaseControl, BaseControlProps } from './BaseControl';\nimport { control } from 'yandex-maps';\nimport { AnyObject, WithInstanceRef } from '../util/typing';\nimport {\n  ErrorBoundaryProps,\n  withErrorBoundary,\n} from '../hocs/with-error-boundary';\n\ninterface ButtonProps extends Omit<BaseControlProps, 'name'> {\n  /**\n   * Control [data](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.Button-docpage/#control.Button__param-parameters.data)\n   */\n  data?: control.IButtonParameters['data'];\n  /**\n   * Uncontrolled control [data](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.Button-docpage/#control.Button__param-parameters.data)\n   */\n  defaultData?: control.IButtonParameters['data'];\n  /**\n   * Control [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.Button-docpage/#control.Button__param-parameters.options)\n   */\n  options?: control.IButtonParameters['options'];\n  /**\n   * Uncontrolled control [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.Button-docpage/#control.Button__param-parameters.options)\n   */\n  defaultOptions?: control.IButtonParameters['options'];\n  /**\n   * Control [state](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.Button-docpage/#control.Button__param-parameters.state)\n   */\n  state?: control.IButtonParameters['state'];\n  /**\n   * Uncontrolled control [state](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.Button-docpage/#control.Button__param-parameters.state)\n   */\n  defaultState?: control.IButtonParameters['state'];\n}\n\nexport const Button: React.FC<\n  React.PropsWithChildren<\n    ButtonProps &\n      WithYMapsProps &\n      WithInstanceRef &\n      ErrorBoundaryProps &\n      AnyObject\n  >\n> = (props) => {\n  return <BaseControl {...props} name=\"Button\" />;\n};\n\nexport default withErrorBoundary(\n  withParentContext(withYMaps(Button, true, [`control.Button`]))\n);\n","import React from 'react';\n\nimport { withParentContext } from '../Context';\nimport withYMaps, { WithYMapsProps } from '../hocs/withYMaps';\n\nimport { BaseControl, BaseControlProps } from './BaseControl';\nimport { control, IDataManager } from 'yandex-maps';\nimport { AnyObject, WithInstanceRef } from '../util/typing';\nimport {\n  ErrorBoundaryProps,\n  withErrorBoundary,\n} from '../hocs/with-error-boundary';\n\ninterface FullscreenControlProps extends Omit<BaseControlProps, 'name'> {\n  /**\n   * Control [data](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.FullscreenControl-docpage/#control.FullscreenControl__param-parameters.data)\n   */\n  data?: control.IFullscreenControlParameters['data'];\n  /**\n   * Uncontrolled control [data](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.FullscreenControl-docpage/#control.FullscreenControl__param-parameters.data)\n   */\n  defaultData?: control.IFullscreenControlParameters['data'];\n  /**\n   * Control [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.FullscreenControl-docpage/#control.FullscreenControl__param-parameters.options)\n   */\n  options?: control.IFullscreenControlParameters['options'];\n  /**\n   * Uncontrolled control [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.FullscreenControl-docpage/#control.FullscreenControl__param-parameters.options)\n   */\n  defaultOptions?: control.IFullscreenControlParameters['options'];\n  /**\n   * Control [state](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.FullscreenControl-docpage/#control.FullscreenControl__param-parameters.state)\n   */\n  state?: IDataManager;\n  /**\n   * Uncontrolled control [state](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.FullscreenControl-docpage/#control.FullscreenControl__param-parameters.state)\n   */\n  defaultState?: IDataManager;\n}\n\nexport const FullscreenControl: React.FC<\n  React.PropsWithChildren<\n    FullscreenControlProps &\n      WithYMapsProps &\n      WithInstanceRef &\n      ErrorBoundaryProps &\n      AnyObject\n  >\n> = (props) => {\n  return <BaseControl {...props} name=\"FullscreenControl\" />;\n};\n\nexport default withErrorBoundary(\n  withParentContext(\n    withYMaps(FullscreenControl, true, [`control.FullscreenControl`])\n  )\n);\n","import React from 'react';\n\nimport { withParentContext } from '../Context';\nimport withYMaps, { WithYMapsProps } from '../hocs/withYMaps';\n\nimport { BaseControl, BaseControlProps } from './BaseControl';\nimport { control } from 'yandex-maps';\nimport { AnyObject, WithInstanceRef } from '../util/typing';\nimport {\n  ErrorBoundaryProps,\n  withErrorBoundary,\n} from '../hocs/with-error-boundary';\n\ninterface GeolocationControlProps extends Omit<BaseControlProps, 'name'> {\n  /**\n   * Control [data](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.GeolocationControl-docpage/#control.GeolocationControl__param-parameters.data)\n   */\n  data?: control.IGeolocationControlParameters['data'];\n  /**\n   * Uncontrolled control [data](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.GeolocationControl-docpage/#control.GeolocationControl__param-parameters.data)\n   */\n  defaultData?: control.IGeolocationControlParameters['data'];\n  /**\n   * Control [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.GeolocationControl-docpage/#control.GeolocationControl__param-parameters.options)\n   */\n  options?: control.IGeolocationControlParameters['options'];\n  /**\n   * Uncontrolled control [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.GeolocationControl-docpage/#control.GeolocationControl__param-parameters.options)\n   */\n  defaultOptions?: control.IGeolocationControlParameters['options'];\n  /**\n   * Control [state](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.GeolocationControl-docpage/#control.GeolocationControl__param-parameters.state)\n   */\n  state?: control.IGeolocationControlParameters['state'];\n  /**\n   * Uncontrolled control [state](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.GeolocationControl-docpage/#control.GeolocationControl__param-parameters.state)\n   */\n  defaultState?: control.IGeolocationControlParameters['state'];\n}\n\nexport const GeolocationControl: React.FC<\n  React.PropsWithChildren<\n    GeolocationControlProps &\n      WithYMapsProps &\n      WithInstanceRef &\n      ErrorBoundaryProps &\n      AnyObject\n  >\n> = (props) => {\n  return <BaseControl {...props} name=\"GeolocationControl\" />;\n};\n\nexport default withErrorBoundary(\n  withParentContext(\n    withYMaps(GeolocationControl, true, [`control.GeolocationControl`])\n  )\n);\n","import React from 'react';\n\nimport { withParentContext } from '../Context';\nimport withYMaps, { WithYMapsProps } from '../hocs/withYMaps';\n\nimport { BaseControl, BaseControlProps } from './BaseControl';\nimport { control } from 'yandex-maps';\nimport { AnyObject, WithInstanceRef } from '../util/typing';\nimport {\n  ErrorBoundaryProps,\n  withErrorBoundary,\n} from '../hocs/with-error-boundary';\n\ninterface ListBoxProps extends Omit<BaseControlProps, 'name'> {\n  /**\n   * Control [data](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.ListBox-docpage/#control.ListBox__param-parameters.data)\n   */\n  data?: control.IListBoxParameters['data'];\n  /**\n   * Uncontrolled control [data](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.ListBox-docpage/#control.ListBox__param-parameters.data)\n   */\n  defaultData?: control.IListBoxParameters['data'];\n\n  /**\n   * Control [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.ListBox-docpage/#control.ListBox__param-parameters.options)\n   */\n  options?: control.IListBoxParameters['options'];\n  /**\n   * Uncontrolled control [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.ListBox-docpage/#control.ListBox__param-parameters.options)\n   */\n  defaultOptions?: control.IListBoxParameters['options'];\n\n  /**\n   * Control [state](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.ListBox-docpage/#control.ListBox__param-parameters.state)\n   */\n  state?: control.IListBoxParameters['state'];\n  /**\n   * Uncontrolled control [state](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.ListBox-docpage/#control.ListBox__param-parameters.state)\n   */\n  defaultState?: control.IListBoxParameters['state'];\n}\n\nexport const ListBox: React.FC<\n  React.PropsWithChildren<\n    ListBoxProps &\n      WithYMapsProps &\n      WithInstanceRef &\n      ErrorBoundaryProps &\n      AnyObject\n  >\n> = (props) => {\n  return <BaseControl {...props} name=\"ListBox\" />;\n};\n\nexport default withErrorBoundary(\n  withParentContext(withYMaps(ListBox, true, [`control.ListBox`]))\n);\n","import React from 'react';\n\nimport { withParentContext } from '../Context';\nimport withYMaps, { WithYMapsProps } from '../hocs/withYMaps';\n\nimport { BaseControl } from './BaseControl';\nimport { control } from 'yandex-maps';\nimport { AnyObject, WithInstanceRef } from '../util/typing';\nimport {\n  ErrorBoundaryProps,\n  withErrorBoundary,\n} from '../hocs/with-error-boundary';\n\ninterface ListBoxItemProps {\n  /**\n   * Control [data](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.ListBoxItem-docpage/#control.ListBoxItem__param-parameters.data)\n   */\n  data?: control.IListBoxItemParameters['data'];\n  /**\n   * Uncontrolled control [data](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.ListBoxItem-docpage/#control.ListBoxItem__param-parameters.data)\n   */\n  defaultData?: control.IListBoxItemParameters['data'];\n  /**\n   * Control [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.ListBoxItem-docpage/#control.ListBoxItem__param-parameters.options)\n   */\n  options?: control.IListBoxItemParameters['options'];\n  /**\n   * Uncontrolled control [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.ListBoxItem-docpage/#control.ListBoxItem__param-parameters.options)\n   */\n  defaultOptions?: control.IListBoxItemParameters['options'];\n  /**\n   * Control [state](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.ListBoxItem-docpage/#control.ListBoxItem__param-parameters.state)\n   */\n  state?: control.IListBoxItemParameters['state'];\n  /**\n   * Uncontrolled control [state](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.ListBoxItem-docpage/#control.ListBoxItem__param-parameters.state)\n   */\n  defaultState?: control.IListBoxItemParameters['state'];\n}\n\nexport const ListBoxItem: React.FC<\n  React.PropsWithChildren<\n    ListBoxItemProps &\n      WithYMapsProps &\n      WithInstanceRef &\n      ErrorBoundaryProps &\n      AnyObject\n  >\n> = (props) => {\n  return <BaseControl {...props} name=\"ListBoxItem\" />;\n};\n\nexport default withErrorBoundary(\n  withParentContext(withYMaps(ListBoxItem, true, [`control.ListBoxItem`]))\n);\n","import React from 'react';\n\nimport { withParentContext } from '../Context';\nimport withYMaps, { WithYMapsProps } from '../hocs/withYMaps';\n\nimport { BaseControl, BaseControlProps } from './BaseControl';\nimport { control } from 'yandex-maps';\nimport { AnyObject, WithInstanceRef } from '../util/typing';\nimport {\n  ErrorBoundaryProps,\n  withErrorBoundary,\n} from '../hocs/with-error-boundary';\n\ninterface RouteButtonProps extends Omit<BaseControlProps, 'name'> {\n  /**\n   * Control [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.RouteButton-docpage/#control.RouteButton__param-parameters.options)\n   */\n  options?: control.IRouteButtonParameters['options'];\n  /**\n   * Uncontrolled control [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.RouteButton-docpage/#control.RouteButton__param-parameters.options)\n   */\n  defaultOptions?: control.IRouteButtonParameters['options'];\n  /**\n   * Control [state](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.RouteButton-docpage/#control.RouteButton__param-parameters.state)\n   */\n  state?: control.IRouteButtonParameters['state'];\n  /**\n   * Uncontrolled control [state](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.RouteButton-docpage/#control.RouteButton__param-parameters.state)\n   */\n  defaultState?: control.IRouteButtonParameters['state'];\n}\n\nexport const RouteButton: React.FC<\n  React.PropsWithChildren<\n    RouteButtonProps &\n      WithYMapsProps &\n      WithInstanceRef &\n      ErrorBoundaryProps &\n      AnyObject\n  >\n> = (props) => {\n  return <BaseControl {...props} name=\"RouteButton\" />;\n};\n\nexport default withErrorBoundary(\n  withParentContext(withYMaps(RouteButton, true, [`control.RouteButton`]))\n);\n","import React from 'react';\n\nimport { withParentContext } from '../Context';\nimport withYMaps, { WithYMapsProps } from '../hocs/withYMaps';\n\nimport { BaseControl, BaseControlProps } from './BaseControl';\nimport { control } from 'yandex-maps';\nimport { AnyObject, WithInstanceRef } from '../util/typing';\nimport {\n  ErrorBoundaryProps,\n  withErrorBoundary,\n} from '../hocs/with-error-boundary';\n\ninterface RouteEditorProps extends Omit<BaseControlProps, 'name'> {\n  /**\n   * Control [data](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.RouteEditor-docpage/#control.RouteEditor__param-parameters.data)\n   */\n  data?: control.IRouteEditorParameters['data'];\n  /**\n   * Uncontrolled control [data](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.RouteEditor-docpage/#control.RouteEditor__param-parameters.data)\n   */\n  defaultData?: control.IRouteEditorParameters['data'];\n  /**\n   * Control [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.RouteEditor-docpage/#control.RouteEditor__param-parameters.options)\n   */\n  options?: control.IRouteEditorParameters['options'];\n  /**\n   * Uncontrolled control [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.RouteEditor-docpage/#control.RouteEditor__param-parameters.options)\n   */\n  defaultOptions?: control.IRouteEditorParameters['options'];\n  /**\n   * Control [state](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.RouteEditor-docpage/#control.RouteEditor__param-parameters.state)\n   */\n  state?: control.IRouteEditorParameters['state'];\n  /**\n   * Uncontrolled control [state](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.RouteEditor-docpage/#control.RouteEditor__param-parameters.state)\n   */\n  defaultState?: control.IRouteEditorParameters['state'];\n}\n\nexport const RouteEditor: React.FC<\n  React.PropsWithChildren<\n    RouteEditorProps &\n      WithYMapsProps &\n      WithInstanceRef &\n      ErrorBoundaryProps &\n      AnyObject\n  >\n> = (props) => {\n  return <BaseControl {...props} name=\"RouteEditor\" />;\n};\n\nexport default withErrorBoundary(\n  withParentContext(withYMaps(RouteEditor, true, [`control.RouteEditor`]))\n);\n","import React from 'react';\n\nimport { withParentContext } from '../Context';\nimport withYMaps, { WithYMapsProps } from '../hocs/withYMaps';\n\nimport { BaseControl, BaseControlProps } from './BaseControl';\nimport { control } from 'yandex-maps';\nimport { AnyObject, WithInstanceRef } from '../util/typing';\nimport {\n  ErrorBoundaryProps,\n  withErrorBoundary,\n} from '../hocs/with-error-boundary';\n\ninterface RoutePanelProps extends Omit<BaseControlProps, 'name'> {\n  /**\n   * Control [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.RoutePanel-docpage/#control.RoutePanel__param-parameters.options)\n   */\n  options?: control.IRoutePanelParameters['options'];\n  /**\n   * Uncontrolled control [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.RoutePanel-docpage/#control.RoutePanel__param-parameters.options)\n   */\n  defaultOptions?: control.IRoutePanelParameters['options'];\n\n  /**\n   * Control [state](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.RoutePanel-docpage/#control.RoutePanel__param-parameters.state)\n   */\n  state?: control.IRoutePanelParameters['state'];\n  /**\n   * Uncontrolled control [state](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.RoutePanel-docpage/#control.RoutePanel__param-parameters.state)\n   */\n  defaultState?: control.IRoutePanelParameters['state'];\n}\n\nexport const RoutePanel: React.FC<\n  React.PropsWithChildren<\n    RoutePanelProps &\n      WithYMapsProps &\n      WithInstanceRef &\n      ErrorBoundaryProps &\n      AnyObject\n  >\n> = (props) => {\n  return <BaseControl {...props} name=\"RoutePanel\" />;\n};\n\nexport default withErrorBoundary(\n  withParentContext(withYMaps(RoutePanel, true, [`control.RoutePanel`]))\n);\n","import React from 'react';\n\nimport { withParentContext } from '../Context';\nimport withYMaps, { WithYMapsProps } from '../hocs/withYMaps';\n\nimport { BaseControl, BaseControlProps } from './BaseControl';\nimport { control } from 'yandex-maps';\nimport { AnyObject, WithInstanceRef } from '../util/typing';\nimport {\n  ErrorBoundaryProps,\n  withErrorBoundary,\n} from '../hocs/with-error-boundary';\n\ninterface RulerControlProps extends Omit<BaseControlProps, 'name'> {\n  /**\n   * Control [data](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.RulerControl-docpage/#control.RulerControl__param-parameters.data)\n   */\n  data?: control.IRulerControlParameters['data'];\n  /**\n   * Uncontrolled control [data](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.RulerControl-docpage/#control.RulerControl__param-parameters.data)\n   */\n  defaultData?: control.IRulerControlParameters['data'];\n  /**\n   * Control [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.RulerControl-docpage/#control.RulerControl__param-parameters.options)\n   */\n  options?: control.IRulerControlParameters['options'];\n  /**\n   * Uncontrolled control [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.RulerControl-docpage/#control.RulerControl__param-parameters.options)\n   */\n  defaultOptions?: control.IRulerControlParameters['options'];\n  /**\n   * Control [state](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.RulerControl-docpage/#control.RulerControl__param-parameters.state)\n   */\n  state?: control.IRulerControlParameters['state'];\n  /**\n   * Uncontrolled control [state](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.RulerControl-docpage/#control.RulerControl__param-parameters.state)\n   */\n  defaultState?: control.IRulerControlParameters['state'];\n}\n\nexport const RulerControl: React.FC<\n  React.PropsWithChildren<\n    RulerControlProps &\n      WithYMapsProps &\n      WithInstanceRef &\n      ErrorBoundaryProps &\n      AnyObject\n  >\n> = (props) => {\n  return <BaseControl {...props} name=\"RulerControl\" />;\n};\n\nexport default withErrorBoundary(\n  withParentContext(withYMaps(RulerControl, true, [`control.RulerControl`]))\n);\n","import React from 'react';\n\nimport { withParentContext } from '../Context';\nimport withYMaps, { WithYMapsProps } from '../hocs/withYMaps';\n\nimport { BaseControl, BaseControlProps } from './BaseControl';\nimport { control } from 'yandex-maps';\nimport { AnyObject, WithInstanceRef } from '../util/typing';\nimport {\n  ErrorBoundaryProps,\n  withErrorBoundary,\n} from '../hocs/with-error-boundary';\n\ninterface SearchControlProps extends Omit<BaseControlProps, 'name'> {\n  /**\n   * Control [data](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.SearchControl-docpage/#control.SearchControl__param-parameters.data)\n   */\n  data?: control.ISearchControlParameters['data'];\n  /**\n   * Uncontrolled control [data](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.SearchControl-docpage/#control.SearchControl__param-parameters.data)\n   */\n  defaultData?: control.ISearchControlParameters['data'];\n  /**\n   * Control [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.SearchControl-docpage/#control.SearchControl__param-parameters.options)\n   */\n  options?: control.ISearchControlParameters['options'];\n  /**\n   * Uncontrolled control [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.SearchControl-docpage/#control.SearchControl__param-parameters.options)\n   */\n  defaultOptions?: control.ISearchControlParameters['options'];\n  /**\n   * Control [state](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.SearchControl-docpage/#control.SearchControl__param-parameters.state)\n   */\n  state?: control.ISearchControlParameters['state'];\n  /**\n   * Uncontrolled control [state](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.SearchControl-docpage/#control.SearchControl__param-parameters.state)\n   */\n  defaultState?: control.ISearchControlParameters['state'];\n}\n\nexport const SearchControl: React.FC<\n  React.PropsWithChildren<\n    SearchControlProps &\n      WithYMapsProps &\n      WithInstanceRef &\n      ErrorBoundaryProps &\n      AnyObject\n  >\n> = (props) => {\n  return <BaseControl {...props} name=\"SearchControl\" />;\n};\n\nexport default withErrorBoundary(\n  withParentContext(withYMaps(SearchControl, true, [`control.SearchControl`]))\n);\n","import React from 'react';\n\nimport { withParentContext } from '../Context';\nimport withYMaps, { WithYMapsProps } from '../hocs/withYMaps';\n\nimport { BaseControl, BaseControlProps } from './BaseControl';\nimport { data, IOptionManager } from 'yandex-maps';\nimport { AnyObject, WithInstanceRef } from '../util/typing';\nimport {\n  ErrorBoundaryProps,\n  withErrorBoundary,\n} from '../hocs/with-error-boundary';\n\ninterface TrafficControlProps extends Omit<BaseControlProps, 'name'> {\n  /**\n   * Control [data](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.TrafficControl-docpage/#control.TrafficControl__param-parameters.data)\n   */\n  data?: data.Manager;\n  /**\n   * Uncontrolled control [data](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.TrafficControl-docpage/#control.TrafficControl__param-parameters.data)\n   */\n  defaultData?: data.Manager;\n  /**\n   * Control [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.TrafficControl-docpage/#control.TrafficControl__param-parameters.options)\n   */\n  options?: IOptionManager;\n  /**\n   * Uncontrolled control [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.TrafficControl-docpage/#control.TrafficControl__param-parameters.options)\n   */\n  defaultOptions?: IOptionManager;\n\n  /**\n   * Control [state](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.TrafficControl-docpage/#control.TrafficControl__param-parameters.state)\n   */\n  state?: data.Manager;\n  /**\n   * Uncontrolled control [state](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.TrafficControl-docpage/#control.TrafficControl__param-parameters.state)\n   */\n  defaultState?: data.Manager;\n}\n\nexport const TrafficControl: React.FC<\n  React.PropsWithChildren<\n    TrafficControlProps &\n      WithYMapsProps &\n      WithInstanceRef &\n      ErrorBoundaryProps &\n      AnyObject\n  >\n> = (props) => {\n  return <BaseControl {...props} name=\"TrafficControl\" />;\n};\n\nexport default withErrorBoundary(\n  withParentContext(withYMaps(TrafficControl, true, [`control.TrafficControl`]))\n);\n","import React from 'react';\n\nimport { withParentContext } from '../Context';\nimport withYMaps, { WithYMapsProps } from '../hocs/withYMaps';\n\nimport { BaseControl, BaseControlProps } from './BaseControl';\nimport { data, IOptionManager } from 'yandex-maps';\nimport { AnyObject, WithInstanceRef } from '../util/typing';\nimport {\n  ErrorBoundaryProps,\n  withErrorBoundary,\n} from '../hocs/with-error-boundary';\n\ninterface TypeSelectorProps extends Omit<BaseControlProps, 'name'> {\n  /**\n   * [Array of constructors for map types](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.TypeSelector-docpage/#control.TypeSelector__param-parameters.mapTypes) or keys. If the parameter is omitted, the item is added to the standard set of map types.\n   */\n  mapTypes?: 'yandex#map' | 'yandex#satellite' | 'yandex#hybrid';\n  /**\n   * Uncontroled [array of constructors for map types](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.TypeSelector-docpage/#control.TypeSelector__param-parameters.mapTypes) or keys. If the parameter is omitted, the item is added to the standard set of map types.\n   */\n  defaultMapTypes?: 'yandex#map' | 'yandex#satellite' | 'yandex#hybrid';\n  /**\n   * Control [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.TypeSelector-docpage/#control.TypeSelector__param-parameters.options)\n   */\n  options?: IOptionManager;\n  /**\n   * Uncontrolled control [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.TypeSelector-docpage/#control.TypeSelector__param-parameters.options)\n   */\n  defaultOptions?: IOptionManager;\n  /**\n   * Control [state](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.TypeSelector-docpage/#control.TypeSelector__param-parameters.state)\n   */\n  state?: data.Manager;\n  /**\n   * Uncontrolled control [state](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.TypeSelector-docpage/#control.TypeSelector__param-parameters.state)\n   */\n  defaultState?: data.Manager;\n}\n\nexport const TypeSelector: React.FC<\n  React.PropsWithChildren<\n    TypeSelectorProps &\n      WithYMapsProps &\n      WithInstanceRef &\n      ErrorBoundaryProps &\n      AnyObject\n  >\n> = (props) => {\n  return <BaseControl {...props} name=\"TypeSelector\" />;\n};\n\nexport default withErrorBoundary(\n  withParentContext(withYMaps(TypeSelector, true, [`control.TypeSelector`]))\n);\n","import React from 'react';\n\nimport { withParentContext } from '../Context';\nimport withYMaps, { WithYMapsProps } from '../hocs/withYMaps';\n\nimport { BaseControl, BaseControlProps } from './BaseControl';\nimport { control, data } from 'yandex-maps';\nimport { AnyObject, WithInstanceRef } from '../util/typing';\nimport {\n  ErrorBoundaryProps,\n  withErrorBoundary,\n} from '../hocs/with-error-boundary';\n\ninterface ZoomControlProps extends Omit<BaseControlProps, 'name'> {\n  /**\n   * Control [data](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.ZoomControl-docpage/#control.ZoomControl__param-parameters.data)\n   */\n  data?: data.Manager;\n  /**\n   * Uncontrolled control [data](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.ZoomControl-docpage/#control.ZoomControl__param-parameters.data)\n   */\n  defaultData?: data.Manager;\n  /**\n   * Control [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.ZoomControl-docpage/#control.ZoomControl__param-parameters.options)\n   */\n  options?: control.IZoomControlParameters['options'];\n  /**\n   * Uncontrolled control [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.ZoomControl-docpage/#control.ZoomControl__param-parameters.options)\n   */\n  defaultOptions?: control.IZoomControlParameters['options'];\n\n  /**\n   * Control [state](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.ZoomControl-docpage/#control.ZoomControl__param-parameters.state)\n   */\n  state?: data.Manager;\n  /**\n   * Uncontrolled control [state](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/control.ZoomControl-docpage/#control.ZoomControl__param-parameters.state)\n   */\n  defaultState?: data.Manager;\n}\n\nexport const ZoomControl: React.FC<\n  React.PropsWithChildren<\n    ZoomControlProps &\n      WithYMapsProps &\n      WithInstanceRef &\n      ErrorBoundaryProps &\n      AnyObject\n  >\n> = (props) => {\n  return <BaseControl {...props} name=\"ZoomControl\" />;\n};\n\nexport default withErrorBoundary(\n  withParentContext(withYMaps(ZoomControl, true, [`control.ZoomControl`]))\n);\n","// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nimport React, { ReactNode } from 'react';\n\nimport * as events from '../util/events';\nimport { getProp, isControlledProp } from '../util/props';\nimport { withParentContext, ParentContext } from '../Context';\nimport withYMaps, { WithYMapsProps } from '../hocs/withYMaps';\nimport applyRef from '../util/ref';\nimport { IClustererOptions } from 'yandex-maps';\nimport { AnyFunction, AnyObject, WithInstanceRef } from '../util/typing';\nimport {\n  ErrorBoundaryProps,\n  withErrorBoundary,\n} from '../hocs/with-error-boundary';\n\ninterface ClusterProps {\n  /** Clusterer [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/Clusterer-docpage/) */\n  options?: IClustererOptions;\n  /** Uncontrolled Clusterer [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/Clusterer-docpage/) */\n  defaultOptions?: IClustererOptions;\n\n  instanceRef?: AnyFunction;\n\n  ymaps?: typeof ymaps;\n\n  parent?: AnyObject;\n\n  children?: ReactNode;\n}\n\nexport class Clusterer extends React.Component<\n  ClusterProps &\n    WithYMapsProps &\n    WithInstanceRef &\n    ErrorBoundaryProps &\n    AnyObject\n> {\n  constructor() {\n    super();\n    this.state = { instance: null };\n    this.instance = null;\n  }\n\n  componentDidMount() {\n    const instance = Clusterer.mountObject(\n      // eslint-disable-next-line react/prop-types\n      this.props.ymaps.Clusterer,\n      this.props\n    );\n\n    this.instance = instance;\n    this.setState({ instance });\n  }\n\n  componentDidUpdate(prevProps) {\n    if (this.state.instance !== null) {\n      Clusterer.updateObject(this.instance, prevProps, this.props);\n    }\n  }\n\n  componentWillUnmount() {\n    Clusterer.unmountObject(this.instance, this.props);\n  }\n\n  render() {\n    return (\n      <ParentContext.Provider value={this.state.instance}>\n        {this.props.children}\n      </ParentContext.Provider>\n    );\n  }\n\n  static mountObject(Clusterer, props) {\n    const { instanceRef, parent, _events } = events.separateEvents(props);\n\n    const options = getProp(props, 'options');\n\n    const instance = new Clusterer(options);\n\n    Object.keys(_events).forEach((key) =>\n      events.addEvent(instance, key, _events[key])\n    );\n\n    if (parent.geoObjects && typeof parent.geoObjects.add === 'function') {\n      parent.geoObjects.add(instance);\n    } else if (parent.add && typeof parent.add === 'function') {\n      parent.add(instance);\n    } else {\n      throw new Error('No parent found to mount Clusterer');\n    }\n\n    applyRef(null, instanceRef, instance);\n\n    return instance;\n  }\n\n  static updateObject(instance, oldProps, newProps) {\n    const { _events: newEvents, instanceRef } = events.separateEvents(newProps);\n    const { _events: oldEvents, instanceRef: oldRef } =\n      events.separateEvents(oldProps);\n\n    if (isControlledProp(newProps, 'options')) {\n      const oldOptions = getProp(oldProps, 'options');\n      const newOptions = getProp(newProps, 'options');\n\n      if (oldOptions !== newOptions) {\n        instance.options.set(newOptions);\n      }\n    }\n\n    events.updateEvents(instance, oldEvents, newEvents);\n\n    applyRef(oldRef, instanceRef, instance);\n  }\n\n  static unmountObject(instance, props) {\n    const { instanceRef, parent, _events } = events.separateEvents(props);\n\n    if (instance !== null) {\n      Object.keys(_events).forEach((key) =>\n        events.removeEvent(instance, key, _events[key])\n      );\n\n      if (parent.geoObjects && typeof parent.geoObjects.remove === 'function') {\n        parent.geoObjects.remove(instance);\n      } else if (parent.remove && typeof parent.remove === 'function') {\n        parent.remove(instance);\n      }\n\n      applyRef(instanceRef);\n    }\n  }\n}\n\nexport default withErrorBoundary(\n  withParentContext(withYMaps(Clusterer, true, ['Clusterer']))\n);\n","// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nimport React from 'react';\n\nimport * as events from '../util/events';\nimport { getProp, isControlledProp } from '../util/props';\nimport { withParentContext } from '../Context';\nimport withYMaps, { WithYMapsProps } from '../hocs/withYMaps';\nimport applyRef from '../util/ref';\nimport { AnyFunction, AnyObject, WithInstanceRef } from '../util/typing';\nimport {\n  ErrorBoundaryProps,\n  withErrorBoundary,\n} from '../hocs/with-error-boundary';\n\ninterface ObjectManagerProps {\n  /**\n   * ObjectManager [features](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/ObjectManager-docpage/#method_detail__add-param-objects)\n   */\n  features?: AnyObject;\n  /**\n   * Uncontrolled ObjectManager [features](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/ObjectManager-docpage/#method_detail__add-param-objects)\n   */\n  defaultFeatures?: AnyObject;\n  /**\n   * ObjectManager [features filter](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/ObjectManager-docpage/#method_detail__setFilter-param-filterFunction)\n   */\n  filter?: AnyFunction;\n  /**\n   * Uncontrolled ObjectManager [features filter](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/ObjectManager-docpage/#method_detail__setFilter-param-filterFunction)\n   */\n  defaultFilter?: AnyFunction;\n  /**\n   * ObjectManager [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/ObjectManager-docpage/#ObjectManager__param-options)\n   */\n  options?: AnyObject;\n  /**\n   * Uncontrolled ObjectManager [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/ObjectManager-docpage/#ObjectManager__param-options)\n   */\n  defaultOptions?: AnyObject;\n  /** ObjectManager object options */\n  objects?: AnyObject;\n  defaultObjects?: AnyObject;\n  /** ObjectManager clusters options */\n  clusters?: AnyObject;\n  defaultClusters?: AnyObject;\n}\n\nexport class ObjectManager extends React.Component<\n  ObjectManagerProps &\n    WithYMapsProps &\n    WithInstanceRef &\n    ErrorBoundaryProps &\n    AnyObject\n> {\n  constructor() {\n    super();\n    this.state = { instance: null };\n  }\n\n  componentDidMount() {\n    const instance = ObjectManager.mountObject(\n      // eslint-disable-next-line react/prop-types\n      this.props.ymaps.ObjectManager,\n      this.props\n    );\n\n    this.instance = instance;\n    this.setState({ instance });\n  }\n\n  componentDidUpdate(prevProps) {\n    if (this.instance !== null) {\n      ObjectManager.updateObject(this.instance, prevProps, this.props);\n    }\n  }\n\n  componentWillUnmount() {\n    ObjectManager.unmountObject(this.instance, this.props);\n  }\n\n  render() {\n    return null;\n  }\n\n  static mountObject(ObjectManager, props) {\n    const { instanceRef, parent, _events } = events.separateEvents(props);\n\n    const options = getProp(props, 'options', {});\n    const features = getProp(props, 'features', {});\n    const filter = getProp(props, 'filter', null);\n    const objects = getProp(props, 'objects', {});\n    const clusters = getProp(props, 'clusters', {});\n\n    const instance = new ObjectManager(options);\n\n    instance.add(features || []);\n\n    instance.setFilter(filter);\n\n    instance.objects.options.set(objects);\n    instance.clusters.options.set(clusters);\n\n    Object.keys(_events).forEach((key) =>\n      events.addEvent(instance, key, _events[key])\n    );\n\n    if (parent.geoObjects && typeof parent.geoObjects.add === 'function') {\n      parent.geoObjects.add(instance);\n    } else if (parent.add && typeof parent.add === 'function') {\n      parent.add(instance);\n    } else {\n      throw new Error('No parent found to mount ObjectManager');\n    }\n\n    applyRef(null, instanceRef, instance);\n\n    return instance;\n  }\n\n  static updateObject(instance, oldProps, newProps) {\n    const { _events: newEvents, instanceRef } = events.separateEvents(newProps);\n    const { _events: oldEvents, instanceRef: oldRef } =\n      events.separateEvents(oldProps);\n\n    if (isControlledProp(newProps, 'options')) {\n      const oldOptions = getProp(oldProps, 'options');\n      const newOptions = getProp(newProps, 'options');\n\n      if (oldOptions !== newOptions) {\n        instance.options.set(newOptions);\n      }\n    }\n\n    if (isControlledProp(newProps, 'objects')) {\n      const oldObjectsOptions = getProp(oldProps, 'objects');\n      const newObjectsOptions = getProp(newProps, 'objects');\n\n      if (oldObjectsOptions !== newObjectsOptions) {\n        instance.objects.options.set(newObjectsOptions);\n      }\n    }\n\n    if (isControlledProp(newProps, 'clusters')) {\n      const oldClustersOptions = getProp(oldProps, 'clusters');\n      const newClustersOptions = getProp(newProps, 'clusters');\n\n      if (oldClustersOptions !== newClustersOptions) {\n        instance.clusters.options.set(newClustersOptions);\n      }\n    }\n\n    if (isControlledProp(newProps, 'filter')) {\n      const oldFilter = getProp(oldProps, 'filter');\n      const newFilter = getProp(newProps, 'filter');\n\n      if (oldFilter !== newFilter) {\n        instance.setFilter(newFilter);\n      }\n    }\n\n    if (isControlledProp(newProps, 'features')) {\n      const oldFeatures = getProp(oldProps, 'features');\n      const newFeatures = getProp(newProps, 'features');\n\n      if (oldFeatures !== newFeatures) {\n        instance.remove(oldFeatures);\n        instance.add(newFeatures);\n      }\n    }\n\n    events.updateEvents(instance, oldEvents, newEvents);\n\n    applyRef(oldRef, instanceRef, instance);\n  }\n\n  static unmountObject(instance, props) {\n    const { instanceRef, parent, _events } = events.separateEvents(props);\n\n    if (instance !== null) {\n      Object.keys(_events).forEach((key) =>\n        events.removeEvent(instance, key, _events[key])\n      );\n\n      if (parent.geoObjects && typeof parent.geoObjects.remove === 'function') {\n        parent.geoObjects.remove(instance);\n      } else if (parent.remove && typeof parent.remove === 'function') {\n        parent.remove(instance);\n      }\n\n      applyRef(instanceRef);\n    }\n  }\n}\n\nexport default withErrorBoundary(\n  withParentContext(withYMaps(ObjectManager, true, ['ObjectManager']))\n);\n","// eslint-disable-next-line @typescript-eslint/ban-ts-comment\n// @ts-nocheck\nimport React from 'react';\nimport * as events from '../util/events';\nimport { getProp, isControlledProp } from '../util/props';\nimport applyRef from '../util/ref';\nimport { AnyFunction, AnyObject, WithInstanceRef } from '../util/typing';\n\nexport interface BaseGeoObjectProps {\n  /** Parent object (e.g, ymaps.Map or ymaps.Clusterer) */\n  parent?: AnyObject;\n\n  /** GeoObject name */\n  name: Required<\n    'GeoObject' | 'Placemark' | 'Polyline' | 'Rectangle' | 'Polygon' | 'Circle'\n  >;\n\n  /**\n   * Used in a special case where constructor needs to be\n   * modified before passing it to the mount method\n   */\n  dangerZone?: { modifyConstructor: AnyFunction };\n}\n\nexport class BaseGeoObject extends React.Component<\n  BaseGeoObjectProps & WithInstanceRef\n> {\n  constructor() {\n    super();\n    this.state = { instance: null };\n    this.instance = null;\n  }\n\n  componentDidMount() {\n    const { name, ymaps, dangerZone } = this.props;\n\n    const instance = BaseGeoObject.mountObject(\n      dangerZone && typeof dangerZone.modifyConstructor === 'function'\n        ? dangerZone.modifyConstructor(ymaps[name])\n        : ymaps[name],\n      this.props\n    );\n\n    this.instance = instance;\n    this.setState({ instance });\n  }\n\n  componentDidUpdate(prevProps) {\n    if (this.instance !== null) {\n      BaseGeoObject.updateObject(this.instance, prevProps, this.props);\n    }\n  }\n\n  componentWillUnmount() {\n    BaseGeoObject.unmountObject(this.instance, this.props);\n  }\n\n  render() {\n    return null;\n  }\n\n  static mountObject(GeoObject, props) {\n    const { instanceRef, parent, _events } = events.separateEvents(props);\n\n    const geometry = getProp(props, 'geometry');\n    const properties = getProp(props, 'properties');\n    const options = getProp(props, 'options');\n\n    const instance = new GeoObject(geometry, properties, options);\n\n    Object.keys(_events).forEach((key) =>\n      events.addEvent(instance, key, _events[key])\n    );\n\n    if (\n      parent &&\n      parent.geoObjects &&\n      typeof parent.geoObjects.add === 'function'\n    ) {\n      parent.geoObjects.add(instance);\n    } else if (parent && parent.add && typeof parent.add === 'function') {\n      parent.add(instance);\n    } else {\n      throw new Error(`No parent found to mount ${props.name}`);\n    }\n\n    applyRef(null, instanceRef, instance);\n\n    return instance;\n  }\n\n  static updateObject(instance, oldProps, newProps) {\n    const { _events: newEvents, instanceRef } = events.separateEvents(newProps);\n    const { _events: oldEvents, instanceRef: oldRef } =\n      events.separateEvents(oldProps);\n\n    if (isControlledProp(newProps, 'geometry')) {\n      const oldGeometry = getProp(oldProps, 'geometry', {});\n      const newGeometry = getProp(newProps, 'geometry', {});\n\n      if (Array.isArray(newGeometry) && newGeometry !== oldGeometry) {\n        if (\n          // Circle geometry is a special case\n          Array.isArray(newGeometry[0]) &&\n          typeof newGeometry[1] === 'number'\n        ) {\n          instance.geometry.setCoordinates(newGeometry[0]);\n          instance.geometry.setRadius(newGeometry[1]);\n        } else {\n          instance.geometry.setCoordinates(newGeometry);\n        }\n      } else if (typeof newGeometry === 'object') {\n        if (newGeometry.coordinates !== oldGeometry.coordinates) {\n          instance.geometry.setCoordinates(newGeometry.coordinates);\n        }\n\n        if (newGeometry.radius !== oldGeometry.radius) {\n          instance.geometry.setRadius(newGeometry.radius);\n        }\n      }\n    }\n\n    if (isControlledProp(newProps, 'properties')) {\n      const oldProperties = getProp(oldProps, 'properties');\n      const newProperties = getProp(newProps, 'properties');\n\n      if (oldProperties !== newProperties) {\n        instance.properties.set(newProperties);\n      }\n    }\n\n    if (isControlledProp(newProps, 'options')) {\n      const oldOptions = getProp(oldProps, 'options');\n      const newOptions = getProp(newProps, 'options');\n\n      if (oldOptions !== newOptions) {\n        instance.options.set(newOptions);\n      }\n    }\n\n    events.updateEvents(instance, oldEvents, newEvents);\n\n    applyRef(oldRef, instanceRef, instance);\n  }\n\n  static unmountObject(instance, props) {\n    const { instanceRef, parent, _events } = events.separateEvents(props);\n\n    if (instance !== null) {\n      Object.keys(_events).forEach((key) =>\n        events.removeEvent(instance, key, _events[key])\n      );\n\n      if (parent.geoObjects && typeof parent.geoObjects.remove === 'function') {\n        parent.geoObjects.remove(instance);\n      } else if (parent.remove && typeof parent.remove === 'function') {\n        parent.remove(instance);\n      }\n\n      applyRef(instanceRef);\n    }\n  }\n}\n","import React from 'react';\n\nimport { withParentContext } from '../Context';\nimport withYMaps, { WithYMapsProps } from '../hocs/withYMaps';\n\nimport { BaseGeoObject, BaseGeoObjectProps } from './BaseGeoObject';\nimport { AnyObject, WithInstanceRef } from '../util/typing';\nimport { IDataManager, IGeometry } from 'yandex-maps';\nimport {\n  ErrorBoundaryProps,\n  withErrorBoundary,\n} from '../hocs/with-error-boundary';\n\ninterface GeoObjectProps extends Omit<BaseGeoObjectProps, 'name'> {\n  /**\n   * GeoObject [feature.geometry](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/GeoObject-docpage/#param-feature.geometry)\n   */\n  geometry?: IGeometry[][][][] | number[][] | object;\n  /**\n   * Uncontrolled GeoObject [feature.geometry](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/GeoObject-docpage/#param-feature.geometry)\n   */\n  defaultGeometry?: IGeometry[][][][] | number[][] | object;\n  /**\n   * GeoObject [feature.properties](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/GeoObject-docpage/#param-feature.properties)\n   */\n  properties?: AnyObject | IDataManager;\n  /**\n   * Uncontrolled GeoObject [feature.properties](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/GeoObject-docpage/#param-feature.properties)\n   */\n  defaultProperties?: AnyObject | IDataManager;\n  /**\n   * GeoObject [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/GeoObject-docpage/#param-options)\n   */\n  options?: AnyObject;\n  /**\n   * Uncontrolled GeoObject [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/GeoObject-docpage/#param-options)\n   */\n  defaultOptions?: AnyObject;\n}\n\nconst geoObjectDangerZoneProps = {\n  // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n  // @ts-ignore\n  modifyConstructor(Constructor) {\n    /**\n     * The only difference between GeoObject and all the other,\n     * more specific GeoObject constructors (like Placemark, Circle,\n     * or Polyline) is the way in which the arguments are passed to\n     * the constructor. GeoObject expects `feature` with `geometry` and\n     * `properties` keys and all the other GeoObject constructors\n     * expect `geometry` and `properties` as separate arguments\n     *\n     * We will hack around this difference with our custom constructor.\n     * That way we can completely reuse GeoObject static methods.\n     */\n    // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n    // @ts-ignore\n    function GeoObjectConstructor(geometry, properties, options) {\n      // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n      // @ts-ignore\n      Constructor.call(this, { geometry, properties }, options);\n    }\n\n    GeoObjectConstructor.prototype = Constructor.prototype;\n\n    return GeoObjectConstructor;\n  },\n};\n\nexport const GeoObject: React.FC<\n  React.PropsWithChildren<\n    GeoObjectProps &\n      WithYMapsProps &\n      WithInstanceRef &\n      ErrorBoundaryProps &\n      AnyObject\n  >\n> = (props) => {\n  return (\n    <BaseGeoObject\n      {...props}\n      name=\"GeoObject\"\n      dangerZone={geoObjectDangerZoneProps}\n    />\n  );\n};\n\nexport default withErrorBoundary(\n  withParentContext(withYMaps(GeoObject, true, ['GeoObject']))\n);\n","import React from 'react';\n\nimport { withParentContext } from '../Context';\nimport withYMaps, { WithYMapsProps } from '../hocs/withYMaps';\n\nimport { BaseGeoObject, BaseGeoObjectProps } from './BaseGeoObject';\nimport { ICircleGeometry, ICircleOptions, IDataManager } from 'yandex-maps';\nimport { AnyObject, WithInstanceRef } from '../util/typing';\nimport {\n  ErrorBoundaryProps,\n  withErrorBoundary,\n} from '../hocs/with-error-boundary';\n\ninterface CircleProps extends Omit<BaseGeoObjectProps, 'name'> {\n  /**\n   * Circle [geometry](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/Circle-docpage/#param-geometry)\n   */\n  geometry?: ICircleGeometry[][][][] | number[][] | object;\n  /**\n   * Uncontrolled circle [geometry](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/Circle-docpage/#param-geometry)\n   */\n  defaultGeometry?: ICircleGeometry[][][][] | number[][] | object;\n  /**\n   * Circle [properties](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/Circle-docpage/#param-properties)\n   */\n  properties?: AnyObject | IDataManager;\n  /**\n   * Uncontrolled circle [properties](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/Circle-docpage/#param-properties)\n   */\n  defaultProperties?: AnyObject | IDataManager;\n  /**\n   * Circle [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/Circle-docpage/#param-options)\n   */\n  options?: ICircleOptions;\n  /**\n   * Uncontrolled circle [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/Circle-docpage/#param-options)\n   */\n  defaultOptions?: ICircleOptions;\n}\n\nexport const Circle: React.FC<\n  React.PropsWithChildren<\n    CircleProps &\n      WithYMapsProps &\n      WithInstanceRef &\n      ErrorBoundaryProps &\n      AnyObject\n  >\n> = (props) => {\n  return <BaseGeoObject {...props} name=\"Circle\" />;\n};\n\nexport default withErrorBoundary(\n  withParentContext(withYMaps(Circle, true, ['Circle']))\n);\n","import React from 'react';\n\nimport { withParentContext } from '../Context';\nimport withYMaps, { WithYMapsProps } from '../hocs/withYMaps';\n\nimport { BaseGeoObject, BaseGeoObjectProps } from './BaseGeoObject';\nimport { IDataManager, IGeometry, IPlacemarkOptions } from 'yandex-maps';\nimport { AnyObject, WithInstanceRef } from '../util/typing';\nimport {\n  ErrorBoundaryProps,\n  withErrorBoundary,\n} from '../hocs/with-error-boundary';\n\ninterface PlacemarkProps extends Omit<BaseGeoObjectProps, 'name'> {\n  /**\n   * Placemark [geometry](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/Placemark-docpage/#param-geometry)\n   */\n  geometry?: IGeometry[][][][] | number[][] | object;\n  /**\n   * Uncontrolled Placemark [geometry](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/Placemark-docpage/#param-geometry)\n   */\n  defaultGeometry?: IGeometry[][][][] | number[][] | object;\n  /**\n   * Placemark [properties](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/Placemark-docpage/#param-properties)\n   */\n  properties?: AnyObject | IDataManager;\n  /**\n   * Uncontrolled Placemark [properties](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/Placemark-docpage/#param-properties)\n   */\n  defaultProperties?: AnyObject | IDataManager;\n  /**\n   * Placemark [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/Placemark-docpage/#param-options)\n   */\n  options?: IPlacemarkOptions;\n  /**\n   * Uncontrolled Placemark [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/Placemark-docpage/#param-options)\n   */\n  defaultOptions?: IPlacemarkOptions;\n}\n\nexport const Placemark: React.FC<\n  React.PropsWithChildren<\n    PlacemarkProps &\n      WithYMapsProps &\n      WithInstanceRef &\n      ErrorBoundaryProps &\n      AnyObject\n  >\n> = (props) => {\n  return <BaseGeoObject {...props} name=\"Placemark\" />;\n};\n\nexport default withErrorBoundary(\n  withParentContext(withYMaps(Placemark, true, ['Placemark']))\n);\n","import React from 'react';\n\nimport { withParentContext } from '../Context';\nimport withYMaps, { WithYMapsProps } from '../hocs/withYMaps';\n\nimport { BaseGeoObject, BaseGeoObjectProps } from './BaseGeoObject';\nimport { IDataManager, IGeometry, IPolygonOptions } from 'yandex-maps';\nimport { AnyObject, WithInstanceRef } from '../util/typing';\nimport {\n  ErrorBoundaryProps,\n  withErrorBoundary,\n} from '../hocs/with-error-boundary';\n\ninterface PolygonProps extends Omit<BaseGeoObjectProps, 'name'> {\n  /**\n   * Polygon [geometry](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/Polygon-docpage/#param-geometry)\n   */\n  geometry?: IGeometry[][][][] | number[][] | object;\n  /**\n   * Uncontrolled Polygon [geometry](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/Polygon-docpage/#param-geometry)\n   */\n  defaultGeometry?: IGeometry[][][][] | number[][] | object;\n  /**\n   * Polygon [properties](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/Polygon-docpage/#param-properties)\n   */\n  properties?: AnyObject | IDataManager;\n  /**\n   * Uncontrolled Polygon [properties](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/Polygon-docpage/#param-properties)\n   */\n  defaultProperties?: AnyObject | IDataManager;\n  /**\n   * Polygon [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/Polygon-docpage/#param-options)\n   */\n  options?: IPolygonOptions;\n  /**\n   * Uncontrolled Polygon [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/Polygon-docpage/#param-options)\n   */\n  defaultOptions?: IPolygonOptions;\n}\n\nexport const Polygon: React.FC<\n  React.PropsWithChildren<\n    PolygonProps &\n      WithYMapsProps &\n      WithInstanceRef &\n      ErrorBoundaryProps &\n      AnyObject\n  >\n> = (props) => {\n  return <BaseGeoObject {...props} name=\"Polygon\" />;\n};\n\nexport default withErrorBoundary(\n  withParentContext(withYMaps(Polygon, true, ['Polygon']))\n);\n","import React from 'react';\n\nimport { withParentContext } from '../Context';\nimport withYMaps, { WithYMapsProps } from '../hocs/withYMaps';\n\nimport { BaseGeoObject, BaseGeoObjectProps } from './BaseGeoObject';\nimport {\n  IDataManager,\n  ILineStringGeometry,\n  IPolylineOptions,\n} from 'yandex-maps';\nimport { AnyObject, WithInstanceRef } from '../util/typing';\nimport {\n  ErrorBoundaryProps,\n  withErrorBoundary,\n} from '../hocs/with-error-boundary';\n\ninterface PolylineProps extends Omit<BaseGeoObjectProps, 'name'> {\n  /**\n   * Polyline [geometry](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/Polyline-docpage/#param-geometry)\n   */\n  geometry?: number[][] | AnyObject | ILineStringGeometry;\n  /**\n   * Uncontrolled Polyline [geometry](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/Polyline-docpage/#param-geometry)\n   */\n  defaultGeometry?: number[][] | AnyObject | ILineStringGeometry;\n  /**\n   * Polyline [properties](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/Polyline-docpage/#param-properties)\n   */\n  properties?: AnyObject | IDataManager;\n  /**\n   * Uncontrolled Polyline [properties](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/Polyline-docpage/#param-properties)\n   */\n  defaultProperties?: AnyObject | IDataManager;\n  /**\n   * Polyline [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/Polyline-docpage/#param-options)\n   */\n  options?: IPolylineOptions;\n  /**\n   * Uncontrolled Polyline [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/Polyline-docpage/#param-options)\n   */\n  defaultOptions?: IPolylineOptions;\n}\n\nexport const Polyline: React.FC<\n  React.PropsWithChildren<\n    PolylineProps &\n      WithYMapsProps &\n      WithInstanceRef &\n      ErrorBoundaryProps &\n      AnyObject\n  >\n> = (props) => {\n  return <BaseGeoObject {...props} name=\"Polyline\" />;\n};\n\nexport default withErrorBoundary(\n  withParentContext(withYMaps(Polyline, true, ['Polyline']))\n);\n","import React from 'react';\n\nimport { withParentContext } from '../Context';\nimport withYMaps, { WithYMapsProps } from '../hocs/withYMaps';\n\nimport { BaseGeoObject, BaseGeoObjectProps } from './BaseGeoObject';\nimport { IDataManager, IGeometry, IOptionManager } from 'yandex-maps';\nimport { AnyObject, WithInstanceRef } from '../util/typing';\nimport {\n  ErrorBoundaryProps,\n  withErrorBoundary,\n} from '../hocs/with-error-boundary';\n\ninterface RectangleProps extends Omit<BaseGeoObjectProps, 'name'> {\n  /**\n   * Rectangle [geometry](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/Rectangle-docpage/#param-geometry)\n   */\n  geometry?: IGeometry[][][][] | number[][] | object;\n  /**\n   * Uncontrolled Rectangle [geometry](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/Rectangle-docpage/#param-geometry)\n   */\n  defaultGeometry?: IGeometry[][][][] | number[][] | object;\n  /**\n   * Rectangle [properties](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/Rectangle-docpage/#param-properties)\n   */\n  properties?: AnyObject | IDataManager;\n  /**\n   * Uncontrolled Rectangle [properties](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/Rectangle-docpage/#param-properties)\n   */\n  defaultProperties?: AnyObject | IDataManager;\n  /**\n   * Rectangle [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/Rectangle-docpage/#param-options)\n   */\n  options?: IOptionManager;\n  /**\n   * Uncontrolled Rectangle [options](https://tech.yandex.com/maps/doc/jsapi/2.1/ref/reference/Rectangle-docpage/#param-options)\n   */\n  defaultOptions?: IOptionManager;\n}\n\nexport const Rectangle: React.FC<\n  React.PropsWithChildren<\n    RectangleProps &\n      WithYMapsProps &\n      WithInstanceRef &\n      ErrorBoundaryProps &\n      AnyObject\n  >\n> = (props) => {\n  return <BaseGeoObject {...props} name=\"Rectangle\" />;\n};\n\nexport default withErrorBoundary(\n  withParentContext(withYMaps(Rectangle, true, ['Rectangle']))\n);\n"],"names":["omit","obj","arr","res","n","indexOf","YMapsApiLoaderContext","React","createContext","ParentContext","withParentContext","Component","props","createElement","Consumer","parent","_extends","useYMaps","modules","loaded","setLoaded","useState","modulesRef","useRef","apiLoader","useYMapsApiLoader","useContext","Error","api","getApi","useEffect","load","then","Promise","all","current","map","loadModule","defaultFunction","omitProps","withYMaps","waitForApi","hocModules","width","height","onLoad","ymaps","concat","shouldRender","newProps","style","isBrowser","window","YMAPS_DEFAULT_QUERY","lang","ns","mode","Provider","version","enterprise","query","preload","children","ymapsRef","options","hash","Date","now","toString","namespace","onload","YMAPS_ONLOAD","onerror","YMAPS_ONERROR","windowObj","PROMISES","clearWindow","resolve","ymapsQuery","queryString","Object","keys","key","join","url","reject","ym","ready","err","script","document","type","src","async","head","appendChild","fetchScript","catch","moduleName","rej","require","done","forEach","module","set","object","path","value","ifNotExists","setPath","split","slice","ref","length","shift","lastPathKey","createApiLoader","EVENTS_REGEX","separateEvents","reduce","acc","test","eventName","replace","toLowerCase","_events","addEvent","instance","handler","events","add","removeEvent","remove","updateEvents","oldEvents","newEvents","assign","defaultName","name","charAt","toUpperCase","isControlledProp","undefined","getProp","defaultValue","applyRef","oldRef","newRef","getParentElementSize","className","_excluded","ErrorBoundary","constructor","super","this","state","error","errorInfo","componentDidCatch","onError","setState","render","withErrorBoundary","_ref","_objectWithoutPropertiesLoose","Map","_parentElement","_getRef","componentDidMount","mountObject","componentDidUpdate","prevProps","updateObject","componentWillUnmount","unmountObject","parentElementStyle","separatedProps","parentElementProps","static","parentElement","instanceRef","oldProps","oldState","newState","setType","behaviors","disable","enable","zoom","setZoom","center","setCenter","bounds","setBounds","oldOptions","newOptions","container","fitToViewport","destroy","YMapsMap","Panorama","_mounted","panorama","isSupported","point","locateOptions","locate","panoramas","Player","oldPoint","moveTo","YMapsPanorama","BaseControl","mountControl","control","updateControl","unmountControl","Control","lazy","data","mapTypes","controls","oldData","newData","oldMapTypes","newMapTypes","removeAllMapTypes","addMapType","Button$1","FullscreenControl$1","GeolocationControl$1","ListBox$1","ListBoxItem$1","RouteButton$1","RouteEditor$1","RoutePanel$1","RulerControl$1","SearchControl$1","TrafficControl$1","TypeSelector$1","ZoomControl$1","Clusterer","geoObjects","ObjectManager","features","filter","objects","clusters","setFilter","oldObjectsOptions","newObjectsOptions","oldClustersOptions","newClustersOptions","oldFilter","newFilter","oldFeatures","newFeatures","BaseGeoObject","dangerZone","modifyConstructor","GeoObject","oldGeometry","newGeometry","Array","isArray","geometry","setCoordinates","setRadius","coordinates","radius","oldProperties","newProperties","properties","geoObjectDangerZoneProps","Constructor","GeoObjectConstructor","call","prototype"],"mappings":"uSASO,MAAMA,EAAOA,CAACC,EAAKC,KACxB,MAAMC,EAAM,CAAA,EACZ,IAAK,MAAMC,KAAKH,GACU,IAApBC,EAAIG,QAAQD,KAAWD,EAAIC,GAAKH,EAAIG,IAE1C,OAAOD,GCVIG,eAAwBC,EAAMC,cACzC,MA0CWC,eAAgBF,EAAMC,cAAc,MAEpCE,EACXC,GAGEC,gBAEAL,EAAAM,cAACJ,EAAcK,SACXC,KAAAA,gBAGOR,EAAAM,cAACF,EAASK,EAAA,CAACD,OAAQA,GAAYH,KClDjCK,EAAWA,CAACC,EAAoB,MAC3C,MAAOC,EAAQC,GAAaC,GAAS,GAC/BC,EAAaC,EAAOL,GACpBM,EDsByBC,MAC/B,MAAMD,EAAYE,EAAWpB,GAC7B,GAAkB,OAAdkB,EAKF,UAAUG,MAHR,2GAMJ,OAAOH,GChCWC,GACZG,EAAMJ,EAAUK,SAStB,OAPAC,EAAU,KACRN,EACGO,OACAC,KAAK,IAAMC,QAAQC,IAAIZ,EAAWa,QAAQC,IAAIZ,EAAUa,cACxDL,KAAK,IAAMZ,GAAU,KACvB,IAEID,GAAUS,EAAMA,EAAM,MCTzBU,EAAkBA,KAAY,EAC9BC,EAAY,CAAC,SAAU,UAAW,UAAW,aAE3B,SAAAC,EACtB7B,EACA8B,GAAa,EACbC,EAA2B,IAqB3B,OAlBE9B,IAEA,MAAM+B,MAAEA,EAAKC,OAAEA,EAAM1B,QAAEA,EAAU,GAAE2B,OAAEA,EAASP,GAAoB1B,EAC5DkC,EAAQ7B,EAASyB,EAAWK,OAAO7B,IACnC8B,GAAgBP,KAAgBK,EAChCG,EAAWjD,EAAKY,EAAO2B,GAI7B,OAFAT,EAAU,IAAOgB,EAAQD,EAAOC,QAAS,EAAS,CAACA,IAE9CE,eAMEzC,EAAAM,cAACF,EAASK,EAAC8B,CAAAA,MAAOA,GAAWG,iBAL3B1C,EAAAM,cAAA,MAAA,CAAKqC,MAAO,CAAEP,QAAOC,YASlC,CCjCO,MCRMO,EAA8B,oBAAXC,OC2B1BC,EAAkC,CACtCC,KAAM,QACNvB,KAAM,GACNwB,GAAI,GACJC,KAA2B,WCDhBC,EACX7C,IAEA,MAAM8C,QACJA,EAAU,MAAKC,WACfA,GAAa,EAAKC,MAClBA,EAAQ,CAAEN,KAAM,QAASvB,KAAM,GAAIwB,GAAI,IAAIM,QAC3CA,GAAU,EAAKC,SACfA,GACElD,EAEEmD,EAAWxC,EDUayC,KAC9B,MAAMJ,MAAEA,EAAQP,GAAwBW,EAClCC,EAAOC,KAAKC,MAAMC,SAAS,IAC3BC,EAAYT,EAAML,IAAM,GACxBe,EAASC,+BAAsBN,EAC/BO,EAAUC,gCAAuBR,EACjCS,EAAuBvB,EAAYC,OAAS,CAAE,EAE9CuB,EAA0D,CAAE,EAClE,IAAI/C,EAEJ,MAAMC,EAASA,IACOwC,EAAYK,EAAUL,GAAazC,EAcnDgD,EAAcA,YACXF,EAAUJ,UACVI,EAAUF,EAAO,EAiD1B,MAAO,CAAEzC,KA9CIA,KACX,GAAIF,IACF,OAAOI,QAAQ4C,QAAQjD,GAGzB,GAAI+C,EAASN,GACX,OAAOM,EAASN,GAGlB,MAAMS,EAAU9D,EAAA,CACdsD,SACAE,WACGnB,EACAO,GAGCmB,EAAcC,OAAOC,KAAKH,GAC7B1C,IAAK8C,GAAQ,GAAGA,KAAOJ,EAAWI,MAClCC,KAAK,KAIFC,EAAM,CArEd,WAmE6BpB,EAAQL,WAnEX,cAAgB,uBAqElBK,EAAQN,QAAS,IAAMqB,GAAaI,KAAK,KAqB/D,OAnBAR,EAASN,GAAa,IAAIpC,QAAkB,CAAC4C,EAASQ,KACpDX,EAAUJ,GAAWgB,IACnBV,IAEKU,EAAGC,MAAM,KACZ3D,EAAM0D,EAENT,EAAQS,EACV,EACF,EAEAZ,EAAUF,GAAYgB,IACpBZ,IACAS,EAAOG,EACT,EAnFeJ,IACZ,IAAInD,QAAQ,CAAC4C,EAASQ,KAC3B,MAAMI,EAASC,SAAS7E,cAAc,UAEtC4E,EAAOE,KAAO,kBACdF,EAAOnB,OAASO,EAChBY,EAAOjB,QAAUa,EACjBI,EAAOG,IAAMR,EACbK,EAAOI,OAAQ,EAEfH,SAASI,KAAKC,YAAYN,EAC5B,GA0EIO,CAAYZ,GAAKa,MAAMvB,EAAUF,GAAQ,GAGpCG,EAASN,EAAS,EAGZxC,SAAQQ,WA/DH6D,GACP,IAAAjE,QAAQ,CAAC9B,EAAKgG,KACvBvE,EAAIV,QAAQkF,QAAQF,GAAYG,KAAMnF,IACpCA,EAAQoF,QAASC,IF5DNC,EACjBC,EACAC,EACAC,EACAC,GAAc,KAEd,MAAMC,EAA0B,iBAATH,EAAoBA,EAAKI,MAAM,KAAOJ,EAAKK,QAElE,IAAI7B,EACA8B,EAAMP,EAEV,KAAOI,EAAQI,OAAS,GAEtB/B,EAAM2B,EAAQK,QACTF,EAAI9B,KAAM8B,EAAI9B,GAAO,CAAE,GAC5B8B,EAAMA,EAAI9B,GAIZ,MAAMiC,EAAcN,EAAQ,GAE5BG,EAAIG,IAA+B,IAAhBP,GAAuBI,EAAIG,IAAwBR,CAC/DF,EEuCCD,CAAI5E,EAAKsE,EAAYK,GAAQ,EAC/B,GAEApG,EAAIyB,EAAG,EACNuE,EACL,KChCAiB,CAAgB,CAAE1D,UAASC,aAAYC,QAAOC,aAShD,OANA/B,EAAU,KACJ+B,GACFE,EAAS5B,QAAQJ,MAClB,EACA,CAACgC,EAAS5B,uBAGX5B,EAAAM,cAACP,EAAsBmD,SAAQ,CAACkD,MAAO5C,EAAS5B,SAC7C2B,EAC6B,ECpD9BuD,EAAe,eAQL,SAAAC,EAAe1G,GAC7B,OAAOoE,OAAOC,KAAKrE,GAAO2G,OACxB,CAACC,EAAKtC,KACJ,GAAImC,EAAaI,KAAKvC,GAAM,CAC1B,MAAMwC,EAAYxC,EAAIyC,QAAQN,EAAc,IAAIO,cAChDJ,EAAIK,QAAQH,GAAa9G,EAAMsE,EAChC,MACCsC,EAAItC,GAAOtE,EAAMsE,GAGnB,OAAOsC,GAET,CAAEK,QAAS,IAEf,UASgBC,EAASC,EAAUL,EAAWM,GACrB,mBAAZA,GACTD,EAASE,OAAOC,IAAIR,EAAWM,EAEnC,CASgB,SAAAG,EAAYJ,EAAUL,EAAWM,GACxB,mBAAZA,GACTD,EAASE,OAAOG,OAAOV,EAAWM,EAEtC,CAWgB,SAAAK,EAAaN,EAAUO,EAAWC,GAChDvD,OAAOC,KAAKD,OAAOwD,OAAO,CAAA,EAAIF,EAAWC,IAAYjC,QAASoB,IACxDY,EAAUZ,KAAea,EAAUb,KACrCS,EAAYJ,EAAUL,EAAWY,EAAUZ,IAC3CI,EAASC,EAAUL,EAAWa,EAAUb,IACzC,EAEL,CClEA,MAAMe,EAAeC,GACnB,UAAYA,EAAKC,OAAO,GAAGC,cAAgBF,EAAK3B,MAAM,YASxC8B,EAAiBjI,EAAOsE,GACtC,YAAsB4D,IAAflI,EAAMsE,SAAkD4D,IAA5BlI,EAAM6H,EAAYvD,GACvD,UAWgB6D,EAAQnI,EAAOsE,EAAK8D,GAClC,OACGH,EAAiBjI,EAAOsE,GAAOtE,EAAMsE,GAAOtE,EAAM6H,EAAYvD,MAC/D8D,CAEJ,UCpBwBC,EAASC,EAAQC,EAAQxC,EAAQ,MACvD,GAAIuC,IAAWC,EAAQ,CASrB,GARID,IACE,YAAaA,EACfA,EAAO/G,QAAU,KACU,mBAAX+G,GAChBA,EAAO,QAINC,EAAQ,OAET,YAAaA,EACfA,EAAOhH,QAAUwE,EACU,mBAAXwC,GAChBA,EAAOxC,EAEV,CACH,CCpBwB,SAAAyC,EAAqBxI,GAC3C,MAAM+B,MAAEA,EAAKC,OAAEA,EAAMM,MAAEA,EAAKmG,UAAEA,GAAczI,EAE5C,YAAqB,IAAVsC,QAA8C,IAAdmG,EAClCrE,OAAOwD,OAAO,CAAE,EAAEtF,GAAS,CAAEA,SAASmG,GAAa,CAAEA,cAGvD,CAAEnG,MAAO,CAAEP,QAAOC,UAC3B,CChBA,MAAA0G,EAAA,CAAA,WAYA,MAAMC,UAAsBhJ,EAAMI,UAIhC6I,YAAY5I,GACV6I,MAAM7I,GACN8I,KAAKC,MAAQ,CAAEC,MAAO,KAAMC,UAAW,KACzC,CAESC,kBAAkBF,EAAcC,GACvC,MAAME,QAAEA,EAAUA,MAAc,IAAGL,KAAK9I,MAExCmJ,EAAQH,GAERF,KAAKM,SAAS,CACZJ,MAAOA,EACPC,UAAWA,GAEf,CAESI,SACP,OAAOP,KAAKC,MAAMC,MAAQ,KAAOF,KAAK9I,MAAMkD,QAC9C,EAOW,MAAAoG,EACXvJ,GAEiEwJ,IAAC,IAAAJ,QAChEA,GAEDI,EADIvJ,6IAAKwJ,CAAAD,EAAAb,gBAER,OACE/I,EAAAM,cAAC0I,EAAa,CAACQ,QAASA,gBAGtBxJ,EAAAM,cAACF,EAAcC,GACF,ECgBR,MAAAyJ,UAAY9J,EAAMI,UAG7B6I,cACEC,QACAC,KAAK3B,SAAW,KAChB2B,KAAKC,MAAQ,CAAE5B,SAAU,MACzB2B,KAAKY,eAAiB,KACtBZ,KAAKa,QAAWvD,IACd0C,KAAKY,eAAiBtD,CACxB,CACF,CAEAwD,oBACEd,KAAK3B,SAAWsC,EAAII,YAClBf,KAAKY,eAELZ,KAAK9I,MAAMkC,MAAMuH,IACjBX,KAAK9I,OAGP8I,KAAKM,SAAS,CAAEjC,SAAU2B,KAAK3B,UACjC,CAEA2C,mBAAmBC,GACK,OAAlBjB,KAAK3B,UACPsC,EAAIO,aAAalB,KAAK3B,SAAU4C,EAAWjB,KAAK9I,MAEpD,CAEAiK,uBACER,EAAIS,cAAcpB,KAAK3B,SAAU2B,KAAK9I,MACxC,CAEAqJ,SACE,MAAMc,EAAqB3B,EAAqBM,KAAK9I,OAC/CoK,EAAiB/C,EAAsByB,KAAK9I,OAE5CqK,EAAqBjL,EAAKgL,EAAgB,CAC9C,UACA,QACA,eACA,UACA,iBACA,cACA,QACA,WACA,QACA,SACA,QACA,2BAGF,OACEzK,EAAAM,cAACJ,EAAcgD,SAAQ,CAACkD,MAAO+C,KAAKC,MAAM5B,uBACxCxH,EAAAM,cAAAG,MAAAA,GAAKgG,IAAK0C,KAAKa,SAAaQ,EAAwBE,GACjDvB,KAAK9I,MAAMkD,UAIpB,CAEAoH,mBAAmBC,EAAed,EAAKzJ,GACrC,MAAMwK,YAAEA,EAAWvD,QAAEA,GAAYI,EAAsBrH,GAKjDmH,EAAW,IAAIsC,EAAIc,EAHXpC,EAAQnI,EAAO,SACbmI,EAAQnI,EAAO,YAU/B,OANAoE,OAAOC,KAAK4C,GAASvB,QAASpB,GAC5B+C,EAAgBF,EAAU7C,EAAK2C,EAAQ3C,KAGzC+D,EAAS,KAAMmC,EAAarD,GAErBA,CACT,CAEAmD,oBAAoBnD,EAAUsD,EAAUpI,GACtC,MAAQ4E,QAASU,EAAS6C,YAAEA,GAAgBnD,EAAsBhF,IAC1D4E,QAASS,EAAW8C,YAAalC,GACvCjB,EAAsBoD,GAExB,GAAIxC,EAAiB5F,EAAU,SAAU,CACvC,MAAMqI,EAAWvC,EAAQsC,EAAU,QAAS,CAAA,GACtCE,EAAWxC,EAAQ9F,EAAU,QAAS,CAAE,GAE1CqI,EAAS3F,OAAS4F,EAAS5F,MAC7BoC,EAASyD,QAAQD,EAAS5F,MAGxB2F,EAASG,YAAcF,EAASE,YAC9BH,EAASG,WAAW1D,EAAS0D,UAAUC,QAAQJ,EAASG,WACxDF,EAASE,WAAW1D,EAAS0D,UAAUE,OAAOJ,EAASE,YAGzDF,EAASK,MAAQN,EAASM,OAASL,EAASK,MAC9C7D,EAAS8D,QAAQN,EAASK,MAGxBL,EAASO,QAAUR,EAASQ,SAAWP,EAASO,QAClD/D,EAASgE,UAAUR,EAASO,QAG1BP,EAASS,QAAUV,EAASU,SAAWT,EAASS,QAClDjE,EAASkE,UAAUV,EAASS,OAE/B,CAED,GAAInD,EAAiB5F,EAAU,WAAY,CACzC,MAAMiJ,EAAanD,EAAQsC,EAAU,WAC/Bc,EAAapD,EAAQ9F,EAAU,UAAW,IAE5CiJ,IAAeC,GACjBpE,EAAS/D,QAAQwC,IAAI2F,EAExB,CAGCpD,EAAQsC,EAAU,WAAatC,EAAQ9F,EAAU,UACjD8F,EAAQsC,EAAU,YAActC,EAAQ9F,EAAU,WAElD8E,EAASqE,UAAUC,gBAGrBpE,EAAoBF,EAAUO,EAAWC,GAEzCU,EAASC,EAAQkC,EAAarD,EAChC,CAEAmD,qBAAqBnD,EAAUnH,GAC7B,MAAMwK,YAAEA,EAAWvD,QAAEA,GAAYI,EAAsBrH,GAEtC,OAAbmH,IACF/C,OAAOC,KAAK4C,GAASvB,QAASpB,GAC5B+C,EAAmBF,EAAU7C,EAAK2C,EAAQ3C,KAG5C6C,EAASuE,UAGTrD,EAASmC,GAEb,EAGI,MAAAmB,EAAWrC,EACf1H,EACE6H,GACA,EACA,CAAC,SC1IQ,MAAAmC,UAAiBjM,EAAMI,UAGlC6I,cACEC,QACAC,KAAKC,MAAQ,CAAE5B,SAAU,MACzB2B,KAAKY,eAAiB,KACtBZ,KAAKa,QAAWvD,IACd0C,KAAKY,eAAiBtD,CAAAA,CAE1B,CAEAwD,oBACEd,KAAK+C,UAAW,EAGX/C,KAAK9I,MAAMkC,MAAM4J,SAASC,eAI/BH,EAAS/B,YACPf,KAAKY,eAELZ,KAAK9I,MAAMkC,MAAM4J,SACjBhD,KAAK9I,OACLoB,KAAM+F,GAAa2B,KAAK+C,UAAY/C,KAAKM,SAAS,CAAEjC,aACxD,CAEA2C,mBAAmBC,GACW,OAAxBjB,KAAKC,MAAM5B,UACbyE,EAAS5B,aAAalB,KAAKC,MAAM5B,SAAU4C,EAAWjB,KAAK9I,MAE/D,CAEAiK,uBACEnB,KAAK+C,UAAW,EAChBD,EAAS1B,cAAcpB,KAAKC,MAAM5B,SAAU2B,KAAK9I,MACnD,CAEAqJ,SACE,MAAMc,EAAqB3B,EAAqBM,KAAK9I,oBAErD,OAAOL,EAAAM,oBAAAG,EAAA,CAAKgG,IAAK0C,KAAKa,SAAaQ,GACrC,CAEAG,mBAAmBC,EAAeuB,EAAU9L,GAC1C,MAAMwK,YAAEA,EAAWvD,QAAEA,GAAYI,EAAsBrH,GAEjDgM,EAAQ7D,EAAQnI,EAAO,SACvBiM,EAAgB9D,EAAQnI,EAAO,iBAC/BoD,EAAU+E,EAAQnI,EAAO,WAE/B,OAAW,IAAAqB,QAAQ,CAAC4C,EAASQ,KAC3BqH,EAASI,OAAOF,EAAOC,GAAexG,KAAM0G,IAC1C,GAAIA,EAAU9F,OAAS,EAAG,CACxB,MAAMc,EAAW,IAAI2E,EAASM,OAC5B7B,EACA4B,EAAU,GACV/I,GAGFiF,EAAS,KAAMmC,EAAarD,GAE5B/C,OAAOC,KAAK4C,GAASvB,QAASpB,GAC5B+C,EAAgBF,EAAU7C,EAAK2C,EAAQ3C,KAGzCL,EAAQkD,EACT,GACA1C,IAEP,CAEA6F,oBAAoBnD,EAAUsD,EAAUpI,GACtC,MAAQ4E,QAASU,EAAS6C,YAAEA,GAAgBnD,EAAsBhF,IAC1D4E,QAASS,EAAW8C,YAAalC,GACvCjB,EAAsBoD,GAExB,GAAIxC,EAAiB5F,EAAU,WAAY,CACzC,MAAMiJ,EAAanD,EAAQsC,EAAU,WAC/Bc,EAAapD,EAAQ9F,EAAU,WAEjCiJ,IAAeC,GACjBpE,EAAS/D,QAAQwC,IAAI2F,EAExB,CAED,GAAItD,EAAiB5F,EAAU,SAAU,CACvC,MAAM2J,EAAQ7D,EAAQ9F,EAAU,SAC1BgK,EAAWlE,EAAQsC,EAAU,SAC7BwB,EAAgB9D,EAAQ9F,EAAU,iBAEpC2J,IAAUK,GACZlF,EAASmF,OAAON,EAAOC,EAE1B,CAED5E,EAAoBF,EAAUO,EAAWC,GAEzCU,EAASC,EAAQkC,EAAarD,EAChC,CAEAmD,qBAAqBnD,EAAUnH,GAC7B,MAAMwK,YAAEA,EAAWvD,QAAEA,GAAYI,EAAsBrH,GAEtC,OAAbmH,IACF/C,OAAOC,KAAK4C,GAASvB,QAASpB,GAC5B+C,EAAmBF,EAAU7C,EAAK2C,EAAQ3C,KAI5C+D,EAASmC,GAEb,EAGI,MAAA+B,EAAgBjD,EACpB1H,EACEgK,GACA,EACA,CACE,uBACA,kBACA,wBACA,qBC9KO,MAAAY,UAAoB7M,EAAMI,UAGrC6I,cACEC,QACAC,KAAKC,MAAQ,CAAE5B,SAAU,MACzB2B,KAAK3B,SAAW,IAClB,CAEAyC,oBACE,MAAMzC,EAAWqF,EAAYC,aAC3B3D,KAAK9I,MAAMkC,MAAMwK,QAAQ5D,KAAK9I,MAAM8H,MACpCgB,KAAK9I,OAGP8I,KAAK3B,SAAWA,EAChB2B,KAAKM,SAAS,CAAEjC,YAClB,CAEA2C,mBAAmBC,GACK,OAAlBjB,KAAK3B,UACPqF,EAAYG,cAAc7D,KAAK3B,SAAU4C,EAAWjB,KAAK9I,MAE7D,CAEAiK,uBACEuC,EAAYI,eAAe9D,KAAK3B,SAAU2B,KAAK9I,MACjD,CAEAqJ,sBACE,OACE1J,EAAAM,cAACJ,EAAcgD,UAASkD,MAAO+C,KAAKC,MAAM5B,UACvC2B,KAAK9I,MAAMkD,SAGlB,CAEAoH,oBAAoBuC,EAAS7M,GAC3B,MAAMwK,YAAEA,EAAWrK,OAAEA,EAAM2M,KAAEA,EAAI7F,QAAEA,GAAYI,EAAsBrH,GAO/DmH,EAAW,IAAI0F,EAAQ,CAAEE,KALlB5E,EAAQnI,EAAO,QAKSoD,QAJrB+E,EAAQnI,EAAO,WAIe+I,MAHhCZ,EAAQnI,EAAO,SAGwBgN,SAFpC7E,EAAQnI,EAAO,YAE+B8M,SAM/D,GAJA1I,OAAOC,KAAK4C,GAASvB,QAASpB,GAC5B+C,EAAgBF,EAAU7C,EAAK2C,EAAQ3C,KAIvCnE,GACAA,EAAO8M,UACwB,mBAAxB9M,EAAO8M,SAAS3F,IAEvBnH,EAAO8M,SAAS3F,IAAIH,OACf,KAAIhH,IAAUA,EAAOmH,KAA6B,mBAAfnH,EAAOmH,IAG/C,MAAU,IAAAvG,MAAM,4BAA4Bf,EAAM8H,QAFlD3H,EAAOmH,IAAIH,EAGZ,CAID,OAFAkB,EAAS,KAAMmC,EAAarD,GAErBA,CACT,CAEAmD,qBAAqBnD,EAAUsD,EAAUpI,GACvC,MAAQ4E,QAASU,EAAS6C,YAAEA,GAAgBnD,EAAsBhF,IAC1D4E,QAASS,EAAW8C,YAAalC,GACvCjB,EAAsBoD,GAExB,GAAIxC,EAAiB5F,EAAU,WAAY,CACzC,MAAMiJ,EAAanD,EAAQsC,EAAU,WAC/Bc,EAAapD,EAAQ9F,EAAU,WAEjCiJ,IAAeC,GACjBpE,EAAS/D,QAAQwC,IAAI2F,EAExB,CAED,GAAItD,EAAiB5F,EAAU,QAAS,CACtC,MAAM6K,EAAU/E,EAAQsC,EAAU,QAC5B0C,EAAUhF,EAAQ9F,EAAU,QAE9B6K,IAAYC,GACdhG,EAAS4F,KAAKnH,IAAIuH,EAErB,CAED,GAAIlF,EAAiB5F,EAAU,SAAU,CACvC,MAAMqI,EAAWvC,EAAQsC,EAAU,SAC7BE,EAAWxC,EAAQ9F,EAAU,SAE/BqI,IAAaC,GACfxD,EAAS4B,MAAMnD,IAAI+E,EAEtB,CAED,GAAI1C,EAAiB5F,EAAU,YAAa,CAC1C,MAAM+K,EAAcjF,EAAQsC,EAAU,YAChC4C,EAAclF,EAAQ9F,EAAU,YAElC+K,IAAgBC,IAClBlG,EAASmG,oBACTD,EAAY3H,QAASX,GAASoC,EAASoG,WAAWxI,IAErD,CAEDsC,EAAoBF,EAAUO,EAAWC,GAEzCU,EAASC,EAAQkC,EAAarD,EAChC,CAEAmD,sBAAsBnD,EAAUnH,GAC9B,MAAMwK,YAAEA,EAAWrK,OAAEA,EAAM8G,QAAEA,GAAYI,EAAsBrH,GAE9C,OAAbmH,IACF/C,OAAOC,KAAK4C,GAASvB,QAASpB,GAC5B+C,EAAmBF,EAAU7C,EAAK2C,EAAQ3C,KAGxCnE,EAAO8M,UAA8C,mBAA3B9M,EAAO8M,SAASzF,OAC5CrH,EAAO8M,SAASzF,OAAOL,GACdhH,EAAOqH,QAAmC,mBAAlBrH,EAAOqH,QACxCrH,EAAOqH,OAAOL,GAGhBkB,EAASmC,GAEb,EC/GF,IAAAgD,EAAelE,EACbxJ,EAAkB8B,EALf5B,gBACIL,EAAAM,cAACuM,EAAWpM,EAAA,CAAA,EAAKJ,EAAK,CAAE8H,KAAK,aAIA,EAAM,CAAC,qBCD7C2F,EAAenE,EACbxJ,EACE8B,EANC5B,gBACIL,EAAAM,cAACuM,EAAWpM,EAAA,CAAA,EAAKJ,EAAK,CAAE8H,KAAK,wBAKL,EAAM,CAAC,gCCFxC4F,EAAepE,EACbxJ,EACE8B,EANC5B,gBACIL,EAAAM,cAACuM,EAAWpM,EAAA,CAAA,EAAKJ,EAAK,CAAE8H,KAAK,yBAKJ,EAAM,CAAC,iCCAzC6F,EAAerE,EACbxJ,EAAkB8B,EALf5B,gBACIL,EAAAM,cAACuM,EAAWpM,EAAA,CAAA,EAAKJ,EAAK,CAAE8H,KAAK,cAIC,EAAM,CAAC,sBCH9C8F,EAAetE,EACbxJ,EAAkB8B,EALf5B,gBACIL,EAAAM,cAACuM,EAAWpM,EAAA,CAAA,EAAKJ,EAAK,CAAE8H,KAAK,kBAIK,EAAM,CAAC,0BCTlD+F,EAAevE,EACbxJ,EAAkB8B,EALf5B,gBACIL,EAAAM,cAACuM,EAAWpM,EAAA,CAAA,EAAKJ,EAAK,CAAE8H,KAAK,kBAIK,EAAM,CAAC,0BCOlDgG,EAAexE,EACbxJ,EAAkB8B,EALf5B,gBACIL,EAAAM,cAACuM,EAAWpM,EAAA,CAAA,EAAKJ,EAAK,CAAE8H,KAAK,kBAIK,EAAM,CAAC,0BCRlDiG,EAAezE,EACbxJ,EAAkB8B,EALf5B,gBACIL,EAAAM,cAACuM,EAAWpM,EAAA,CAAA,EAAKJ,EAAK,CAAE8H,KAAK,iBAII,EAAM,CAAC,yBCMjDkG,EAAe1E,EACbxJ,EAAkB8B,EALf5B,gBACIL,EAAAM,cAACuM,EAAWpM,EAAA,CAAA,EAAKJ,EAAK,CAAE8H,KAAK,mBAIM,EAAM,CAAC,2BCDnDmG,EAAe3E,EACbxJ,EAAkB8B,EALf5B,gBACIL,EAAAM,cAACuM,EAAWpM,EAAA,CAAA,EAAKJ,EAAK,CAAE8H,KAAK,oBAIO,EAAM,CAAC,4BCApDoG,EAAe5E,EACbxJ,EAAkB8B,EALf5B,gBACIL,EAAAM,cAACuM,EAAWpM,EAAA,CAAA,EAAKJ,EAAK,CAAE8H,KAAK,qBAIQ,EAAM,CAAC,6BCFrDqG,EAAe7E,EACbxJ,EAAkB8B,EALf5B,gBACIL,EAAAM,cAACuM,EAAWpM,EAAA,CAAA,EAAKJ,EAAK,CAAE8H,KAAK,mBAIM,EAAM,CAAC,2BCAnDsG,EAAe9E,EACbxJ,EAAkB8B,EALf5B,gBACIL,EAAAM,cAACuM,EAAWpM,EAAA,CAAA,EAAKJ,EAAK,CAAE8H,KAAK,kBAIK,EAAM,CAAC,0BCvBrC,MAAAuG,UAAkB1O,EAAMI,UAOnC6I,cACEC,QACAC,KAAKC,MAAQ,CAAE5B,SAAU,MACzB2B,KAAK3B,SAAW,IAClB,CAEAyC,oBACE,MAAMzC,EAAWkH,EAAUxE,YAEzBf,KAAK9I,MAAMkC,MAAMmM,UACjBvF,KAAK9I,OAGP8I,KAAK3B,SAAWA,EAChB2B,KAAKM,SAAS,CAAEjC,YAClB,CAEA2C,mBAAmBC,GACW,OAAxBjB,KAAKC,MAAM5B,UACbkH,EAAUrE,aAAalB,KAAK3B,SAAU4C,EAAWjB,KAAK9I,MAE1D,CAEAiK,uBACEoE,EAAUnE,cAAcpB,KAAK3B,SAAU2B,KAAK9I,MAC9C,CAEAqJ,sBACE,OACE1J,EAAAM,cAACJ,EAAcgD,SAASkD,CAAAA,MAAO+C,KAAKC,MAAM5B,UACvC2B,KAAK9I,MAAMkD,SAGlB,CAEAoH,mBAAmB+D,EAAWrO,GAC5B,MAAMwK,YAAEA,EAAWrK,OAAEA,EAAM8G,QAAEA,GAAYI,EAAsBrH,GAIzDmH,EAAW,IAAIkH,EAFLlG,EAAQnI,EAAO,YAQ/B,GAJAoE,OAAOC,KAAK4C,GAASvB,QAASpB,GAC5B+C,EAAgBF,EAAU7C,EAAK2C,EAAQ3C,KAGrCnE,EAAOmO,YAA+C,mBAA1BnO,EAAOmO,WAAWhH,IAChDnH,EAAOmO,WAAWhH,IAAIH,OACbhH,KAAAA,EAAOmH,KAA6B,mBAAfnH,EAAOmH,IAGrC,MAAM,IAAIvG,MAAM,sCAFhBZ,EAAOmH,IAAIH,EAGZ,CAID,OAFAkB,EAAS,KAAMmC,EAAarD,GAErBA,CACT,CAEAmD,oBAAoBnD,EAAUsD,EAAUpI,GACtC,MAAQ4E,QAASU,EAAS6C,YAAEA,GAAgBnD,EAAsBhF,IAC1D4E,QAASS,EAAW8C,YAAalC,GACvCjB,EAAsBoD,GAExB,GAAIxC,EAAiB5F,EAAU,WAAY,CACzC,MAAMiJ,EAAanD,EAAQsC,EAAU,WAC/Bc,EAAapD,EAAQ9F,EAAU,WAEjCiJ,IAAeC,GACjBpE,EAAS/D,QAAQwC,IAAI2F,EAExB,CAEDlE,EAAoBF,EAAUO,EAAWC,GAEzCU,EAASC,EAAQkC,EAAarD,EAChC,CAEAmD,qBAAqBnD,EAAUnH,GAC7B,MAAMwK,YAAEA,EAAWrK,OAAEA,EAAM8G,QAAEA,GAAYI,EAAsBrH,GAE9C,OAAbmH,IACF/C,OAAOC,KAAK4C,GAASvB,QAASpB,GAC5B+C,EAAmBF,EAAU7C,EAAK2C,EAAQ3C,KAGxCnE,EAAOmO,YAAkD,mBAA7BnO,EAAOmO,WAAW9G,OAChDrH,EAAOmO,WAAW9G,OAAOL,GAChBhH,EAAOqH,QAAmC,mBAAlBrH,EAAOqH,QACxCrH,EAAOqH,OAAOL,GAGhBkB,EAASmC,GAEb,EAGF,IAAelB,EAAAA,EACbxJ,EAAkB8B,EAAUyM,GAAW,EAAM,CAAC,gBCxFnC,MAAAE,UAAsB5O,EAAMI,UAOvC6I,cACEC,QACAC,KAAKC,MAAQ,CAAE5B,SAAU,KAC3B,CAEAyC,oBACE,MAAMzC,EAAWoH,EAAc1E,YAE7Bf,KAAK9I,MAAMkC,MAAMqM,cACjBzF,KAAK9I,OAGP8I,KAAK3B,SAAWA,EAChB2B,KAAKM,SAAS,CAAEjC,YAClB,CAEA2C,mBAAmBC,GACK,OAAlBjB,KAAK3B,UACPoH,EAAcvE,aAAalB,KAAK3B,SAAU4C,EAAWjB,KAAK9I,MAE9D,CAEAiK,uBACEsE,EAAcrE,cAAcpB,KAAK3B,SAAU2B,KAAK9I,MAClD,CAEAqJ,SACE,OAAO,IACT,CAEAiB,mBAAmBiE,EAAevO,GAChC,MAAMwK,YAAEA,EAAWrK,OAAEA,EAAM8G,QAAEA,GAAYI,EAAsBrH,GAEzDoD,EAAU+E,EAAQnI,EAAO,UAAW,IACpCwO,EAAWrG,EAAQnI,EAAO,WAAY,IACtCyO,EAAStG,EAAQnI,EAAO,SAAU,MAClC0O,EAAUvG,EAAQnI,EAAO,UAAW,IACpC2O,EAAWxG,EAAQnI,EAAO,WAAY,CAAE,GAExCmH,EAAW,IAAIoH,EAAcnL,GAanC,GAXA+D,EAASG,IAAIkH,GAAY,IAEzBrH,EAASyH,UAAUH,GAEnBtH,EAASuH,QAAQtL,QAAQwC,IAAI8I,GAC7BvH,EAASwH,SAASvL,QAAQwC,IAAI+I,GAE9BvK,OAAOC,KAAK4C,GAASvB,QAASpB,GAC5B+C,EAAgBF,EAAU7C,EAAK2C,EAAQ3C,KAGrCnE,EAAOmO,YAA+C,mBAA1BnO,EAAOmO,WAAWhH,IAChDnH,EAAOmO,WAAWhH,IAAIH,OACjB,KAAIhH,EAAOmH,KAA6B,mBAAfnH,EAAOmH,IAGrC,UAAUvG,MAAM,0CAFhBZ,EAAOmH,IAAIH,EAGZ,CAID,OAFAkB,EAAS,KAAMmC,EAAarD,GAErBA,CACT,CAEAmD,oBAAoBnD,EAAUsD,EAAUpI,GACtC,MAAQ4E,QAASU,EAAS6C,YAAEA,GAAgBnD,EAAsBhF,IAC1D4E,QAASS,EAAW8C,YAAalC,GACvCjB,EAAsBoD,GAExB,GAAIxC,EAAiB5F,EAAU,WAAY,CACzC,MAAMiJ,EAAanD,EAAQsC,EAAU,WAC/Bc,EAAapD,EAAQ9F,EAAU,WAEjCiJ,IAAeC,GACjBpE,EAAS/D,QAAQwC,IAAI2F,EAExB,CAED,GAAItD,EAAiB5F,EAAU,WAAY,CACzC,MAAMwM,EAAoB1G,EAAQsC,EAAU,WACtCqE,EAAoB3G,EAAQ9F,EAAU,WAExCwM,IAAsBC,GACxB3H,EAASuH,QAAQtL,QAAQwC,IAAIkJ,EAEhC,CAED,GAAI7G,EAAiB5F,EAAU,YAAa,CAC1C,MAAM0M,EAAqB5G,EAAQsC,EAAU,YACvCuE,EAAqB7G,EAAQ9F,EAAU,YAEzC0M,IAAuBC,GACzB7H,EAASwH,SAASvL,QAAQwC,IAAIoJ,EAEjC,CAED,GAAI/G,EAAiB5F,EAAU,UAAW,CACxC,MAAM4M,EAAY9G,EAAQsC,EAAU,UAC9ByE,EAAY/G,EAAQ9F,EAAU,UAEhC4M,IAAcC,GAChB/H,EAASyH,UAAUM,EAEtB,CAED,GAAIjH,EAAiB5F,EAAU,YAAa,CAC1C,MAAM8M,EAAchH,EAAQsC,EAAU,YAChC2E,EAAcjH,EAAQ9F,EAAU,YAElC8M,IAAgBC,IAClBjI,EAASK,OAAO2H,GAChBhI,EAASG,IAAI8H,GAEhB,CAED/H,EAAoBF,EAAUO,EAAWC,GAEzCU,EAASC,EAAQkC,EAAarD,EAChC,CAEAmD,qBAAqBnD,EAAUnH,GAC7B,MAAMwK,YAAEA,EAAWrK,OAAEA,EAAM8G,QAAEA,GAAYI,EAAsBrH,GAE9C,OAAbmH,IACF/C,OAAOC,KAAK4C,GAASvB,QAASpB,GAC5B+C,EAAmBF,EAAU7C,EAAK2C,EAAQ3C,KAGxCnE,EAAOmO,YAAkD,mBAA7BnO,EAAOmO,WAAW9G,OAChDrH,EAAOmO,WAAW9G,OAAOL,GAChBhH,EAAOqH,QAAmC,mBAAlBrH,EAAOqH,QACxCrH,EAAOqH,OAAOL,GAGhBkB,EAASmC,GAEb,EAGF,MAAelB,EACbxJ,EAAkB8B,EAAU2M,GAAe,EAAM,CAAC,oBC5KvC,MAAAc,UAAsB1P,EAAMI,UAGvC6I,cACEC,QACAC,KAAKC,MAAQ,CAAE5B,SAAU,MACzB2B,KAAK3B,SAAW,IAClB,CAEAyC,oBACE,MAAM9B,KAAEA,EAAI5F,MAAEA,EAAKoN,WAAEA,GAAexG,KAAK9I,MAEnCmH,EAAWkI,EAAcxF,YAC7ByF,GAAsD,mBAAjCA,EAAWC,kBAC5BD,EAAWC,kBAAkBrN,EAAM4F,IACnC5F,EAAM4F,GACVgB,KAAK9I,OAGP8I,KAAK3B,SAAWA,EAChB2B,KAAKM,SAAS,CAAEjC,YAClB,CAEA2C,mBAAmBC,GACK,OAAlBjB,KAAK3B,UACPkI,EAAcrF,aAAalB,KAAK3B,SAAU4C,EAAWjB,KAAK9I,MAE9D,CAEAiK,uBACEoF,EAAcnF,cAAcpB,KAAK3B,SAAU2B,KAAK9I,MAClD,CAEAqJ,SACE,OACF,IAAA,CAEAiB,mBAAmBkF,EAAWxP,GAC5B,MAAMwK,YAAEA,EAAWrK,OAAEA,EAAM8G,QAAEA,GAAYI,EAAsBrH,GAMzDmH,EAAW,IAAIqI,EAJJrH,EAAQnI,EAAO,YACbmI,EAAQnI,EAAO,cAClBmI,EAAQnI,EAAO,YAQ/B,GAJAoE,OAAOC,KAAK4C,GAASvB,QAASpB,GAC5B+C,EAAgBF,EAAU7C,EAAK2C,EAAQ3C,KAIvCnE,GACAA,EAAOmO,YAC0B,mBAA1BnO,EAAOmO,WAAWhH,IAEzBnH,EAAOmO,WAAWhH,IAAIH,YACbhH,IAAUA,EAAOmH,KAA6B,mBAAfnH,EAAOmH,IAG/C,MAAM,IAAIvG,MAAM,4BAA4Bf,EAAM8H,QAFlD3H,EAAOmH,IAAIH,EAGZ,CAID,OAFAkB,EAAS,KAAMmC,EAAarD,GAErBA,CACT,CAEAmD,oBAAoBnD,EAAUsD,EAAUpI,GACtC,MAAQ4E,QAASU,EAAS6C,YAAEA,GAAgBnD,EAAsBhF,IAC1D4E,QAASS,EAAW8C,YAAalC,GACvCjB,EAAsBoD,GAExB,GAAIxC,EAAiB5F,EAAU,YAAa,CAC1C,MAAMoN,EAActH,EAAQsC,EAAU,WAAY,CAAA,GAC5CiF,EAAcvH,EAAQ9F,EAAU,WAAY,IAE9CsN,MAAMC,QAAQF,IAAgBA,IAAgBD,EAG9CE,MAAMC,QAAQF,EAAY,KACA,iBAAnBA,EAAY,IAEnBvI,EAAS0I,SAASC,eAAeJ,EAAY,IAC7CvI,EAAS0I,SAASE,UAAUL,EAAY,KAExCvI,EAAS0I,SAASC,eAAeJ,GAEH,iBAAhBA,IACZA,EAAYM,cAAgBP,EAAYO,aAC1C7I,EAAS0I,SAASC,eAAeJ,EAAYM,aAG3CN,EAAYO,SAAWR,EAAYQ,QACrC9I,EAAS0I,SAASE,UAAUL,EAAYO,QAG7C,CAED,GAAIhI,EAAiB5F,EAAU,cAAe,CAC5C,MAAM6N,EAAgB/H,EAAQsC,EAAU,cAClC0F,EAAgBhI,EAAQ9F,EAAU,cAEpC6N,IAAkBC,GACpBhJ,EAASiJ,WAAWxK,IAAIuK,EAE3B,CAED,GAAIlI,EAAiB5F,EAAU,WAAY,CACzC,MAAMiJ,EAAanD,EAAQsC,EAAU,WAC/Bc,EAAapD,EAAQ9F,EAAU,WAEjCiJ,IAAeC,GACjBpE,EAAS/D,QAAQwC,IAAI2F,EAExB,CAEDlE,EAAoBF,EAAUO,EAAWC,GAEzCU,EAASC,EAAQkC,EAAarD,EAChC,CAEAmD,qBAAqBnD,EAAUnH,GAC7B,MAAMwK,YAAEA,EAAWrK,OAAEA,EAAM8G,QAAEA,GAAYI,EAAsBrH,GAE9C,OAAbmH,IACF/C,OAAOC,KAAK4C,GAASvB,QAASpB,GAC5B+C,EAAmBF,EAAU7C,EAAK2C,EAAQ3C,KAGxCnE,EAAOmO,YAAkD,mBAA7BnO,EAAOmO,WAAW9G,OAChDrH,EAAOmO,WAAW9G,OAAOL,GAChBhH,EAAOqH,QAAmC,mBAAlBrH,EAAOqH,QACxCrH,EAAOqH,OAAOL,GAGhBkB,EAASmC,GAEb,ECzHF,MAAM6F,EAA2B,CAG/Bd,kBAAkBe,GAchB,SAASC,EAAqBV,EAAUO,EAAYhN,GAGlDkN,EAAYE,KAAK1H,KAAM,CAAE+G,WAAUO,cAAchN,EACnD,CAIA,OAFAmN,EAAqBE,UAAYH,EAAYG,UAEtCF,CACT,GAqBF,IAAejH,GAAAA,EACbxJ,EAAkB8B,EAXf5B,gBAEDL,EAAAM,cAACoP,EAAajP,EAAA,CAAA,EACRJ,EAAK,CACT8H,KAAK,YACLwH,WAAYe,MAMuB,EAAM,CAAC,mBCpCjC/G,EACbxJ,EAAkB8B,EALf5B,gBACIL,EAAAM,cAACoP,EAAajP,EAAA,CAAA,EAAKJ,EAAK,CAAE8H,KAAK,aAIF,EAAM,CAAC,gBCD9BwB,EACbxJ,EAAkB8B,EALf5B,gBACIL,EAAAM,cAACoP,EAAajP,EAAA,CAAA,EAAKJ,EAAK,CAAE8H,KAAK,gBAIC,EAAM,CAAC,mBCDjCwB,EACbxJ,EAAkB8B,EALf5B,gBACIL,EAAAM,cAACoP,EAAajP,EAAA,CAAA,EAAKJ,EAAK,CAAE8H,KAAK,cAID,EAAM,CAAC,iBCG/BwB,EACbxJ,EAAkB8B,EALf5B,gBACIL,EAAAM,cAACoP,EAAajP,EAAA,CAAA,EAAKJ,EAAK,CAAE8H,KAAK,eAIA,EAAM,CAAC,kBCLhCwB,EACbxJ,EAAkB8B,EALf5B,gBACIL,EAAAM,cAACoP,EAAajP,EAAA,CAAA,EAAKJ,EAAK,CAAE8H,KAAK,gBAIC,EAAM,CAAC"}