(our hidden element)\n // react-dom in dev mode will warn about this. There doesn't seem to be a way to render arbitrary\n // user Head without hitting this issue (our hidden element could be just \"new Document()\", but\n // this can only have 1 child, and we don't control what is being rendered so that's not an option)\n // instead we continue to render to
, and just silence warnings for and elements\n // https://github.com/facebook/react/blob/e2424f33b3ad727321fc12e75c5e94838e84c2b5/packages/react-dom-bindings/src/client/validateDOMNesting.js#L498-L520\n const originalConsoleError = console.error.bind(console)\n console.error = (...args) => {\n if (\n Array.isArray(args) &&\n args.length >= 2 &&\n args[0]?.includes?.(`validateDOMNesting(...): %s cannot appear as`) &&\n (args[1] === `` || args[1] === ``)\n ) {\n return undefined\n }\n return originalConsoleError(...args)\n }\n\n /* We set up observer to be able to regenerate after react-refresh\n updates our hidden element.\n */\n const observer = new MutationObserver(onHeadRendered)\n observer.observe(hiddenRoot, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n })\n}\n\nexport function headHandlerForBrowser({\n pageComponent,\n staticQueryResults,\n pageComponentProps,\n}) {\n useEffect(() => {\n if (pageComponent?.Head) {\n headExportValidator(pageComponent.Head)\n\n const { render } = reactDOMUtils()\n\n const HeadElement = (\n
\n )\n\n const WrapHeadElement = apiRunner(\n `wrapRootElement`,\n { element: HeadElement },\n HeadElement,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n render(\n // just a hack to call the callback after react has done first render\n // Note: In dev, we call onHeadRendered twice( in FireCallbackInEffect and after mutualution observer dectects initail render into hiddenRoot) this is for hot reloading\n // In Prod we only call onHeadRendered in FireCallbackInEffect to render to head\n
\n \n {WrapHeadElement}\n \n ,\n hiddenRoot\n )\n }\n\n return () => {\n removePrevHeadElements()\n removeHtmlAndBodyAttributes(keysOfHtmlAndBodyAttributes)\n }\n })\n}\n","import React, { Suspense, createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport { grabMatchParams } from \"./find-path\"\nimport { headHandlerForBrowser } from \"./head/head-export-handler-for-browser\"\n\n// Renders page\nfunction PageRenderer(props) {\n const pageComponentProps = {\n ...props,\n params: {\n ...grabMatchParams(props.location.pathname),\n ...props.pageResources.json.pageContext.__params,\n },\n }\n\n const preferDefault = m => (m && m.default) || m\n\n let pageElement\n if (props.pageResources.partialHydration) {\n pageElement = props.pageResources.partialHydration\n } else {\n pageElement = createElement(preferDefault(props.pageResources.component), {\n ...pageComponentProps,\n key: props.path || props.pageResources.page.path,\n })\n }\n\n const pageComponent = props.pageResources.head\n\n headHandlerForBrowser({\n pageComponent,\n staticQueryResults: props.pageResources.staticQueryResults,\n pageComponentProps,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n {\n element: pageElement,\n props: pageComponentProps,\n },\n pageElement,\n ({ result }) => {\n return { element: result, props: pageComponentProps }\n }\n ).pop()\n\n return wrappedPage\n}\n\nPageRenderer.propTypes = {\n location: PropTypes.object.isRequired,\n pageResources: PropTypes.object.isRequired,\n data: PropTypes.object,\n pageContext: PropTypes.object.isRequired,\n}\n\nexport default PageRenderer\n","// This is extracted to separate module because it's shared\n// between browser and SSR code\nexport const RouteAnnouncerProps = {\n id: `gatsby-announcer`,\n style: {\n position: `absolute`,\n top: 0,\n width: 1,\n height: 1,\n padding: 0,\n overflow: `hidden`,\n clip: `rect(0, 0, 0, 0)`,\n whiteSpace: `nowrap`,\n border: 0,\n },\n \"aria-live\": `assertive`,\n \"aria-atomic\": `true`,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport emitter from \"./emitter\"\nimport { RouteAnnouncerProps } from \"./route-announcer-props\"\nimport {\n navigate as reachNavigate,\n globalHistory,\n} from \"@gatsbyjs/reach-router\"\nimport { parsePath } from \"gatsby-link\"\n\nfunction maybeRedirect(pathname) {\n const redirect = maybeGetBrowserRedirect(pathname)\n const { hash, search } = window.location\n\n if (redirect != null) {\n window.___replace(redirect.toPath + search + hash)\n return true\n } else {\n return false\n }\n}\n\n// Catch unhandled chunk loading errors and force a restart of the app.\nlet nextRoute = ``\n\nwindow.addEventListener(`unhandledrejection`, event => {\n if (/loading chunk \\d* failed./i.test(event.reason)) {\n if (nextRoute) {\n window.location.pathname = nextRoute\n }\n }\n})\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n nextRoute = location.pathname\n apiRunner(`onPreRouteUpdate`, { location, prevLocation })\n }\n}\n\nconst onRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onRouteUpdate`, { location, prevLocation })\n if (\n process.env.GATSBY_QUERY_ON_DEMAND &&\n process.env.GATSBY_QUERY_ON_DEMAND_LOADING_INDICATOR === `true`\n ) {\n emitter.emit(`onRouteUpdate`, { location, prevLocation })\n }\n }\n}\n\nconst navigate = (to, options = {}) => {\n // Support forward/backward navigation with numbers\n // navigate(-2) (jumps back 2 history steps)\n // navigate(2) (jumps forward 2 history steps)\n if (typeof to === `number`) {\n globalHistory.navigate(to)\n return\n }\n\n const { pathname, search, hash } = parsePath(to)\n const redirect = maybeGetBrowserRedirect(pathname)\n\n // If we're redirecting, just replace the passed in pathname\n // to the one we want to redirect to.\n if (redirect) {\n to = redirect.toPath + search + hash\n }\n\n // If we had a service worker update, no matter the path, reload window and\n // reset the pathname whitelist\n if (window.___swUpdated) {\n window.location = pathname + search + hash\n return\n }\n\n // Start a timer to wait for a second before transitioning and showing a\n // loader in case resources aren't around yet.\n const timeoutId = setTimeout(() => {\n emitter.emit(`onDelayedLoadPageResources`, { pathname })\n apiRunner(`onRouteUpdateDelayed`, {\n location: window.location,\n })\n }, 1000)\n\n loader.loadPage(pathname + search).then(pageResources => {\n // If no page resources, then refresh the page\n // Do this, rather than simply `window.location.reload()`, so that\n // pressing the back/forward buttons work - otherwise when pressing\n // back, the browser will just change the URL and expect JS to handle\n // the change, which won't always work since it might not be a Gatsby\n // page.\n if (!pageResources || pageResources.status === PageResourceStatus.Error) {\n window.history.replaceState({}, ``, location.href)\n window.location = pathname\n clearTimeout(timeoutId)\n return\n }\n\n // If the loaded page has a different compilation hash to the\n // window, then a rebuild has occurred on the server. Reload.\n if (process.env.NODE_ENV === `production` && pageResources) {\n if (\n pageResources.page.webpackCompilationHash !==\n window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n window.location = pathname + search + hash\n }\n }\n reachNavigate(to, options)\n clearTimeout(timeoutId)\n })\n}\n\nfunction shouldUpdateScroll(prevRouterProps, { location }) {\n const { pathname, hash } = location\n const results = apiRunner(`shouldUpdateScroll`, {\n prevRouterProps,\n // `pathname` for backwards compatibility\n pathname,\n routerProps: { location },\n getSavedScrollPosition: args => [\n 0,\n // FIXME this is actually a big code smell, we should fix this\n // eslint-disable-next-line @babel/no-invalid-this\n this._stateStorage.read(args, args.key),\n ],\n })\n if (results.length > 0) {\n // Use the latest registered shouldUpdateScroll result, this allows users to override plugin's configuration\n // @see https://github.com/gatsbyjs/gatsby/issues/12038\n return results[results.length - 1]\n }\n\n if (prevRouterProps) {\n const {\n location: { pathname: oldPathname },\n } = prevRouterProps\n if (oldPathname === pathname) {\n // Scroll to element if it exists, if it doesn't, or no hash is provided,\n // scroll to top.\n return hash ? decodeURI(hash.slice(1)) : [0, 0]\n }\n }\n return true\n}\n\nfunction init() {\n // The \"scroll-behavior\" package expects the \"action\" to be on the location\n // object so let's copy it over.\n globalHistory.listen(args => {\n args.location.action = args.action\n })\n\n window.___push = to => navigate(to, { replace: false })\n window.___replace = to => navigate(to, { replace: true })\n window.___navigate = (to, options) => navigate(to, options)\n}\n\nclass RouteAnnouncer extends React.Component {\n constructor(props) {\n super(props)\n this.announcementRef = React.createRef()\n }\n\n componentDidUpdate(prevProps, nextProps) {\n requestAnimationFrame(() => {\n let pageName = `new page at ${this.props.location.pathname}`\n if (document.title) {\n pageName = document.title\n }\n const pageHeadings = document.querySelectorAll(`#gatsby-focus-wrapper h1`)\n if (pageHeadings && pageHeadings.length) {\n pageName = pageHeadings[0].textContent\n }\n const newAnnouncement = `Navigated to ${pageName}`\n if (this.announcementRef.current) {\n const oldAnnouncement = this.announcementRef.current.innerText\n if (oldAnnouncement !== newAnnouncement) {\n this.announcementRef.current.innerText = newAnnouncement\n }\n }\n })\n }\n\n render() {\n return
\n }\n}\n\nconst compareLocationProps = (prevLocation, nextLocation) => {\n if (prevLocation.href !== nextLocation.href) {\n return true\n }\n\n if (prevLocation?.state?.key !== nextLocation?.state?.key) {\n return true\n }\n\n return false\n}\n\n// Fire on(Pre)RouteUpdate APIs\nclass RouteUpdates extends React.Component {\n constructor(props) {\n super(props)\n onPreRouteUpdate(props.location, null)\n }\n\n componentDidMount() {\n onRouteUpdate(this.props.location, null)\n }\n\n shouldComponentUpdate(nextProps) {\n if (compareLocationProps(this.props.location, nextProps.location)) {\n onPreRouteUpdate(nextProps.location, this.props.location)\n return true\n }\n return false\n }\n\n componentDidUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onRouteUpdate(this.props.location, prevProps.location)\n }\n }\n\n render() {\n return (\n
\n {this.props.children}\n \n \n )\n }\n}\n\nRouteUpdates.propTypes = {\n location: PropTypes.object.isRequired,\n}\n\nexport { init, shouldUpdateScroll, RouteUpdates, maybeGetBrowserRedirect }\n","// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) return true;\n }for (var _i in b) {\n if (a[_i] !== b[_i]) return true;\n }return false;\n}\n\nexport default (function (instance, nextProps, nextState) {\n return shallowDiffers(instance.props, nextProps) || shallowDiffers(instance.state, nextState);\n});","import React from \"react\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport shallowCompare from \"shallow-compare\"\n\nclass EnsureResources extends React.Component {\n constructor(props) {\n super()\n const { location, pageResources } = props\n this.state = {\n location: { ...location },\n pageResources:\n pageResources ||\n loader.loadPageSync(location.pathname + location.search, {\n withErrorDetails: true,\n }),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(\n location.pathname + location.search,\n {\n withErrorDetails: true,\n }\n )\n\n return {\n pageResources,\n location: { ...location },\n }\n }\n\n return {\n location: { ...location },\n }\n }\n\n loadResources(rawPath) {\n loader.loadPage(rawPath).then(pageResources => {\n if (pageResources && pageResources.status !== PageResourceStatus.Error) {\n this.setState({\n location: { ...window.location },\n pageResources,\n })\n } else {\n window.history.replaceState({}, ``, location.href)\n window.location = rawPath\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // Always return false if we're missing resources.\n if (!nextState.pageResources) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n if (\n process.env.BUILD_STAGE === `develop` &&\n nextState.pageResources.stale\n ) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n // Check if the component or json have changed.\n if (this.state.pageResources !== nextState.pageResources) {\n return true\n }\n if (\n this.state.pageResources.component !== nextState.pageResources.component\n ) {\n return true\n }\n\n if (this.state.pageResources.json !== nextState.pageResources.json) {\n return true\n }\n // Check if location has changed on a page using internal routing\n // via matchPath configuration.\n if (\n this.state.location.key !== nextState.location.key &&\n nextState.pageResources.page &&\n (nextState.pageResources.page.matchPath ||\n nextState.pageResources.page.path)\n ) {\n return true\n }\n return shallowCompare(this, nextProps, nextState)\n }\n\n render() {\n if (\n process.env.NODE_ENV !== `production` &&\n (!this.state.pageResources ||\n this.state.pageResources.status === PageResourceStatus.Error)\n ) {\n const message = `EnsureResources was not able to find resources for path: \"${this.props.location.pathname}\"\nThis typically means that an issue occurred building components for that path.\nRun \\`gatsby clean\\` to remove any cached elements.`\n if (this.state.pageResources?.error) {\n console.error(message)\n throw this.state.pageResources.error\n }\n\n throw new Error(message)\n }\n\n return this.props.children(this.state)\n }\n}\n\nexport default EnsureResources\n","import { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React from \"react\"\nimport { Router, navigate, Location, BaseContext } from \"@gatsbyjs/reach-router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport { StaticQueryContext } from \"./static-query\"\nimport {\n SlicesMapContext,\n SlicesContext,\n SlicesResultsContext,\n} from \"./slice/context\"\nimport {\n shouldUpdateScroll,\n init as navigationInit,\n RouteUpdates,\n} from \"./navigation\"\nimport emitter from \"./emitter\"\nimport PageRenderer from \"./page-renderer\"\nimport asyncRequires from \"$virtual/async-requires\"\nimport {\n setLoader,\n ProdLoader,\n publicLoader,\n PageResourceStatus,\n getStaticQueryResults,\n getSliceResults,\n} from \"./loader\"\nimport EnsureResources from \"./ensure-resources\"\nimport stripPrefix from \"./strip-prefix\"\n\n// Generated during bootstrap\nimport matchPaths from \"$virtual/match-paths.json\"\nimport { reactDOMUtils } from \"./react-dom-utils\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths, window.pageData)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nconst { render, hydrate } = reactDOMUtils()\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\n\nconst reloadStorageKey = `gatsby-reload-compilation-hash-match`\n\napiRunnerAsync(`onClientEntry`).then(() => {\n // Let plugins register a service worker. The plugin just needs\n // to return true.\n if (apiRunner(`registerServiceWorker`).filter(Boolean).length > 0) {\n require(`./register-service-worker`)\n }\n\n // In gatsby v2 if Router is used in page using matchPaths\n // paths need to contain full path.\n // For example:\n // - page have `/app/*` matchPath\n // - inside template user needs to use `/app/xyz` as path\n // Resetting `basepath`/`baseuri` keeps current behaviour\n // to not introduce breaking change.\n // Remove this in v3\n const RouteHandler = props => (\n
\n \n \n )\n\n const DataContext = React.createContext({})\n\n const slicesContext = {\n renderEnvironment: `browser`,\n }\n\n class GatsbyRoot extends React.Component {\n render() {\n const { children } = this.props\n return (\n
\n {({ location }) => (\n \n {({ pageResources, location }) => {\n const staticQueryResults = getStaticQueryResults()\n const sliceResults = getSliceResults()\n\n return (\n \n \n \n \n \n {children}\n \n \n \n \n \n )\n }}\n \n )}\n \n )\n }\n }\n\n class LocationHandler extends React.Component {\n render() {\n return (\n
\n {({ pageResources, location }) => (\n \n \n \n \n \n \n \n )}\n \n )\n }\n }\n\n const { pagePath, location: browserLoc } = window\n\n // Explicitly call navigate if the canonical path (window.pagePath)\n // is different to the browser path (window.location.pathname). SSR\n // page paths might include search params, while SSG and DSG won't.\n // If page path include search params we also compare query params.\n // But only if NONE of the following conditions hold:\n //\n // - The url matches a client side route (page.matchPath)\n // - it's a 404 page\n // - it's the offline plugin shell (/offline-plugin-app-shell-fallback/)\n if (\n pagePath &&\n __BASE_PATH__ + pagePath !==\n browserLoc.pathname + (pagePath.includes(`?`) ? browserLoc.search : ``) &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath.match(/^\\/(404|500)(\\/?|.html)$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(\n __BASE_PATH__ +\n pagePath +\n (!pagePath.includes(`?`) ? browserLoc.search : ``) +\n browserLoc.hash,\n {\n replace: true,\n }\n )\n }\n\n // It's possible that sessionStorage can throw an exception if access is not granted, see https://github.com/gatsbyjs/gatsby/issues/34512\n const getSessionStorage = () => {\n try {\n return sessionStorage\n } catch {\n return null\n }\n }\n\n publicLoader.loadPage(browserLoc.pathname + browserLoc.search).then(page => {\n const sessionStorage = getSessionStorage()\n\n if (\n page?.page?.webpackCompilationHash &&\n page.page.webpackCompilationHash !== window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n // We have not matching html + js (inlined `window.___webpackCompilationHash`)\n // with our data (coming from `app-data.json` file). This can cause issues such as\n // errors trying to load static queries (as list of static queries is inside `page-data`\n // which might not match to currently loaded `.js` scripts).\n // We are making attempt to reload if hashes don't match, but we also have to handle case\n // when reload doesn't fix it (possibly broken deploy) so we don't end up in infinite reload loop\n if (sessionStorage) {\n const isReloaded = sessionStorage.getItem(reloadStorageKey) === `1`\n\n if (!isReloaded) {\n sessionStorage.setItem(reloadStorageKey, `1`)\n window.location.reload(true)\n return\n }\n }\n }\n\n if (sessionStorage) {\n sessionStorage.removeItem(reloadStorageKey)\n }\n\n if (!page || page.status === PageResourceStatus.Error) {\n const message = `page resources for ${browserLoc.pathname} not found. Not rendering React`\n\n // if the chunk throws an error we want to capture the real error\n // This should help with https://github.com/gatsbyjs/gatsby/issues/19618\n if (page && page.error) {\n console.error(message)\n throw page.error\n }\n\n throw new Error(message)\n }\n\n const SiteRoot = apiRunner(\n `wrapRootElement`,\n { element:
},\n
,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n const App = function App() {\n const onClientEntryRanRef = React.useRef(false)\n\n React.useEffect(() => {\n if (!onClientEntryRanRef.current) {\n onClientEntryRanRef.current = true\n if (performance.mark) {\n performance.mark(`onInitialClientRender`)\n }\n\n apiRunner(`onInitialClientRender`)\n }\n }, [])\n\n return
{SiteRoot}\n }\n\n const focusEl = document.getElementById(`gatsby-focus-wrapper`)\n\n // Client only pages have any empty body so we just do a normal\n // render to avoid React complaining about hydration mis-matches.\n let defaultRenderer = render\n if (focusEl && focusEl.children.length) {\n defaultRenderer = hydrate\n }\n\n const renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n defaultRenderer\n )[0]\n\n function runRender() {\n const rootElement =\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : null\n\n renderer(
, rootElement)\n }\n\n // https://github.com/madrobby/zepto/blob/b5ed8d607f67724788ec9ff492be297f64d47dfc/src/zepto.js#L439-L450\n // TODO remove IE 10 support\n const doc = document\n if (\n doc.readyState === `complete` ||\n (doc.readyState !== `loading` && !doc.documentElement.doScroll)\n ) {\n setTimeout(function () {\n runRender()\n }, 0)\n } else {\n const handler = function () {\n doc.removeEventListener(`DOMContentLoaded`, handler, false)\n window.removeEventListener(`load`, handler, false)\n\n runRender()\n }\n\n doc.addEventListener(`DOMContentLoaded`, handler, false)\n window.addEventListener(`load`, handler, false)\n }\n\n return\n })\n})\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport loader from \"./loader\"\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location }) => {\n const pageResources = loader.loadPageSync(location.pathname)\n if (!pageResources) {\n return null\n }\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","const map = new WeakMap()\n\nexport function reactDOMUtils() {\n const reactDomClient = require(`react-dom/client`)\n\n const render = (Component, el) => {\n let root = map.get(el)\n if (!root) {\n map.set(el, (root = reactDomClient.createRoot(el)))\n }\n root.render(Component)\n }\n\n const hydrate = (Component, el) => reactDomClient.hydrateRoot(el, Component)\n\n return { render, hydrate }\n}\n","import redirects from \"./redirects.json\"\n\n// Convert to a map for faster lookup in maybeRedirect()\n\nconst redirectMap = new Map()\nconst redirectIgnoreCaseMap = new Map()\n\nredirects.forEach(redirect => {\n if (redirect.ignoreCase) {\n redirectIgnoreCaseMap.set(redirect.fromPath, redirect)\n } else {\n redirectMap.set(redirect.fromPath, redirect)\n }\n})\n\nexport function maybeGetBrowserRedirect(pathname) {\n let redirect = redirectMap.get(pathname)\n if (!redirect) {\n redirect = redirectIgnoreCaseMap.get(pathname.toLowerCase())\n }\n return redirect\n}\n","import { apiRunner } from \"./api-runner-browser\"\n\nif (\n window.location.protocol !== `https:` &&\n window.location.hostname !== `localhost`\n) {\n console.error(\n `Service workers can only be used over HTTPS, or on localhost for development`\n )\n} else if (`serviceWorker` in navigator) {\n navigator.serviceWorker\n .register(`${__BASE_PATH__}/sw.js`)\n .then(function (reg) {\n reg.addEventListener(`updatefound`, () => {\n apiRunner(`onServiceWorkerUpdateFound`, { serviceWorker: reg })\n // The updatefound event implies that reg.installing is set; see\n // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\n const installingWorker = reg.installing\n console.log(`installingWorker`, installingWorker)\n installingWorker.addEventListener(`statechange`, () => {\n switch (installingWorker.state) {\n case `installed`:\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and the fresh content will\n // have been added to the cache.\n\n // We set a flag so Gatsby Link knows to refresh the page on next navigation attempt\n window.___swUpdated = true\n // We call the onServiceWorkerUpdateReady API so users can show update prompts.\n apiRunner(`onServiceWorkerUpdateReady`, { serviceWorker: reg })\n\n // If resources failed for the current page, reload.\n if (window.___failedResources) {\n console.log(`resources failed, SW updated - reloading`)\n window.location.reload()\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a \"Content is cached for offline use.\" message.\n console.log(`Content is now available offline!`)\n\n // Post to service worker that install is complete.\n // Delay to allow time for the event listener to be added --\n // otherwise fetch is called too soon and resources aren't cached.\n apiRunner(`onServiceWorkerInstalled`, { serviceWorker: reg })\n }\n break\n\n case `redundant`:\n console.error(`The installing service worker became redundant.`)\n apiRunner(`onServiceWorkerRedundant`, { serviceWorker: reg })\n break\n\n case `activated`:\n apiRunner(`onServiceWorkerActive`, { serviceWorker: reg })\n break\n }\n })\n })\n })\n .catch(function (e) {\n console.error(`Error during service worker registration:`, e)\n })\n}\n","import React from \"react\"\n\nconst SlicesResultsContext = React.createContext({})\nconst SlicesContext = React.createContext({})\nconst SlicesMapContext = React.createContext({})\nconst SlicesPropsContext = React.createContext({})\n\nexport {\n SlicesResultsContext,\n SlicesContext,\n SlicesMapContext,\n SlicesPropsContext,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport { createServerOrClientContext } from \"./context-utils\"\n\nconst StaticQueryContext = createServerOrClientContext(`StaticQuery`, {})\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n
\n {finalData && render(finalData)}\n {!finalData && Loading (StaticQuery)
}\n \n )\n}\n\nlet warnedAboutStaticQuery = false\n\n// TODO(v6): Remove completely\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n if (process.env.NODE_ENV === `development` && !warnedAboutStaticQuery) {\n console.warn(\n `The
component is deprecated and will be removed in Gatsby v6. Use useStaticQuery instead. Refer to the migration guide for more information: https://gatsby.dev/migrating-4-to-5/#staticquery--is-deprecated`\n )\n warnedAboutStaticQuery = true\n }\n\n return (\n
\n {staticQueryData => (\n \n )}\n \n )\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n // TODO(v5): Remove since we require React >= 18\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n\n const context = React.useContext(StaticQueryContext)\n\n // query is a stringified number like `3303882` when wrapped with graphql, If a user forgets\n // to wrap the query in a grqphql, then casting it to a Number results in `NaN` allowing us to\n // catch the misuse of the API and give proper direction\n if (isNaN(Number(query))) {\n throw new Error(`useStaticQuery was called with a string but expects to be called using \\`graphql\\`. Try this:\n\nimport { useStaticQuery, graphql } from 'gatsby';\n\nuseStaticQuery(graphql\\`${query}\\`);\n`)\n }\n\n if (context[query]?.data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nexport { StaticQuery, StaticQueryContext, useStaticQuery }\n","import React from \"react\"\n\n// Ensure serverContext is not created more than once as React will throw when creating it more than once\n// https://github.com/facebook/react/blob/dd2d6522754f52c70d02c51db25eb7cbd5d1c8eb/packages/react/src/ReactServerContext.js#L101\nconst createServerContext = (name, defaultValue = null) => {\n /* eslint-disable no-undef */\n if (!globalThis.__SERVER_CONTEXT) {\n globalThis.__SERVER_CONTEXT = {}\n }\n\n if (!globalThis.__SERVER_CONTEXT[name]) {\n globalThis.__SERVER_CONTEXT[name] = React.createServerContext(\n name,\n defaultValue\n )\n }\n\n return globalThis.__SERVER_CONTEXT[name]\n}\n\nfunction createServerOrClientContext(name, defaultValue) {\n if (React.createServerContext) {\n return createServerContext(name, defaultValue)\n }\n\n return React.createContext(defaultValue)\n}\n\nexport { createServerOrClientContext }\n","/**\n * Remove a prefix from a string. Return the input string if the given prefix\n * isn't found.\n */\n\nexport default function stripPrefix(str, prefix = ``) {\n if (!prefix) {\n return str\n }\n\n if (str === prefix) {\n return `/`\n }\n\n if (str.startsWith(`${prefix}/`)) {\n return str.slice(prefix.length)\n }\n\n return str\n}\n","import * as React from 'react';\nconst ThemeContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'ThemeContext';\n}\nexport default ThemeContext;","import * as React from 'react';\nimport ThemeContext from './ThemeContext';\nexport default function useTheme() {\n const theme = React.useContext(ThemeContext);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(theme);\n }\n return theme;\n}","const hasSymbol = typeof Symbol === 'function' && Symbol.for;\nexport default hasSymbol ? Symbol.for('mui.nested') : '__THEME_NESTED__';","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { exactProp } from '@mui/utils';\nimport ThemeContext from '../useTheme/ThemeContext';\nimport useTheme from '../useTheme';\nimport nested from './nested';\n\n// To support composition of theme.\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction mergeOuterLocalTheme(outerTheme, localTheme) {\n if (typeof localTheme === 'function') {\n const mergedTheme = localTheme(outerTheme);\n if (process.env.NODE_ENV !== 'production') {\n if (!mergedTheme) {\n console.error(['MUI: You should return an object from your theme function, i.e.', '
({})} />'].join('\\n'));\n }\n }\n return mergedTheme;\n }\n return _extends({}, outerTheme, localTheme);\n}\n\n/**\n * This component takes a `theme` prop.\n * It makes the `theme` available down the React tree thanks to React context.\n * This component should preferably be used at **the root of your component tree**.\n */\nfunction ThemeProvider(props) {\n const {\n children,\n theme: localTheme\n } = props;\n const outerTheme = useTheme();\n if (process.env.NODE_ENV !== 'production') {\n if (outerTheme === null && typeof localTheme === 'function') {\n console.error(['MUI: You are providing a theme function prop to the ThemeProvider component:', ' outerTheme} />', '', 'However, no outer theme is present.', 'Make sure a theme is already injected higher in the React tree ' + 'or provide a theme object.'].join('\\n'));\n }\n }\n const theme = React.useMemo(() => {\n const output = outerTheme === null ? localTheme : mergeOuterLocalTheme(outerTheme, localTheme);\n if (output != null) {\n output[nested] = outerTheme !== null;\n }\n return output;\n }, [localTheme, outerTheme]);\n return /*#__PURE__*/_jsx(ThemeContext.Provider, {\n value: theme,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes = {\n /**\n * Your component tree.\n */\n children: PropTypes.node,\n /**\n * A theme object. You can provide a function to extend the outer theme.\n */\n theme: PropTypes.oneOfType([PropTypes.object, PropTypes.func]).isRequired\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes = exactProp(ThemeProvider.propTypes) : void 0;\n}\nexport default ThemeProvider;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { ThemeProvider as MuiThemeProvider, useTheme as usePrivateTheme } from '@mui/private-theming';\nimport { exactProp } from '@mui/utils';\nimport { ThemeContext as StyledEngineThemeContext } from '@mui/styled-engine';\nimport useThemeWithoutDefault from '../useThemeWithoutDefault';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst EMPTY_THEME = {};\nfunction useThemeScoping(themeId, upperTheme, localTheme, isPrivate = false) {\n return React.useMemo(() => {\n const resolvedTheme = themeId ? upperTheme[themeId] || upperTheme : upperTheme;\n if (typeof localTheme === 'function') {\n const mergedTheme = localTheme(resolvedTheme);\n const result = themeId ? _extends({}, upperTheme, {\n [themeId]: mergedTheme\n }) : mergedTheme;\n // must return a function for the private theme to NOT merge with the upper theme.\n // see the test case \"use provided theme from a callback\" in ThemeProvider.test.js\n if (isPrivate) {\n return () => result;\n }\n return result;\n }\n return themeId ? _extends({}, upperTheme, {\n [themeId]: localTheme\n }) : _extends({}, upperTheme, localTheme);\n }, [themeId, upperTheme, localTheme, isPrivate]);\n}\n\n/**\n * This component makes the `theme` available down the React tree.\n * It should preferably be used at **the root of your component tree**.\n *\n * // existing use case\n * // theme scoping\n */\nfunction ThemeProvider(props) {\n const {\n children,\n theme: localTheme,\n themeId\n } = props;\n const upperTheme = useThemeWithoutDefault(EMPTY_THEME);\n const upperPrivateTheme = usePrivateTheme() || EMPTY_THEME;\n if (process.env.NODE_ENV !== 'production') {\n if (upperTheme === null && typeof localTheme === 'function' || themeId && upperTheme && !upperTheme[themeId] && typeof localTheme === 'function') {\n console.error(['MUI: You are providing a theme function prop to the ThemeProvider component:', ' outerTheme} />', '', 'However, no outer theme is present.', 'Make sure a theme is already injected higher in the React tree ' + 'or provide a theme object.'].join('\\n'));\n }\n }\n const engineTheme = useThemeScoping(themeId, upperTheme, localTheme);\n const privateTheme = useThemeScoping(themeId, upperPrivateTheme, localTheme, true);\n return /*#__PURE__*/_jsx(MuiThemeProvider, {\n theme: privateTheme,\n children: /*#__PURE__*/_jsx(StyledEngineThemeContext.Provider, {\n value: engineTheme,\n children: children\n })\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes /* remove-proptypes */ = {\n // ┌────────────────────────────── Warning ──────────────────────────────┐\n // │ These PropTypes are generated from the TypeScript type definitions. │\n // │ To update them, edit the d.ts file and run `pnpm proptypes`. │\n // └─────────────────────────────────────────────────────────────────────┘\n /**\n * Your component tree.\n */\n children: PropTypes.node,\n /**\n * A theme object. You can provide a function to extend the outer theme.\n */\n theme: PropTypes.oneOfType([PropTypes.func, PropTypes.object]).isRequired,\n /**\n * The design system's unique id for getting the corresponded theme when there are multiple design systems.\n */\n themeId: PropTypes.string\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes = exactProp(ThemeProvider.propTypes) : void 0;\n}\nexport default ThemeProvider;","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"theme\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { ThemeProvider as SystemThemeProvider } from '@mui/system';\nimport THEME_ID from './identifier';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function ThemeProvider(_ref) {\n let {\n theme: themeInput\n } = _ref,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n const scopedTheme = themeInput[THEME_ID];\n return /*#__PURE__*/_jsx(SystemThemeProvider, _extends({}, props, {\n themeId: scopedTheme ? THEME_ID : undefined,\n theme: scopedTheme || themeInput\n }));\n}\nprocess.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes = {\n /**\n * Your component tree.\n */\n children: PropTypes.node,\n /**\n * A theme object. You can provide a function to extend the outer theme.\n */\n theme: PropTypes.oneOfType([PropTypes.object, PropTypes.func]).isRequired\n} : void 0;","import * as React from \"react\";\nimport { ModalContextProvider } from \"./src/context\";\nimport { ThemeProvider } from \"@mui/material\";\nimport { mainTheme } from \"./src/config/MUI/mainTheme\";\nimport DevelopeCardModal from \"./src/components/DevelopeCardModal/DevelopeCardModal\";\nimport ScheduleModal from \"./src/components/ScheduleModal/ScheduleModal\";\n\nconst WrapRootElement = ({ children }) => (\n \n {children}\n \n);\n\nexport default WrapRootElement;\n","import \"./src/styles/global.css\";\nimport \"slick-carousel/slick/slick.css\";\nimport \"slick-carousel/slick/slick-theme.css\";\nimport * as React from \"react\";\nimport WrapRootElement from \"./wrap-root-element\";\n\nexport const wrapRootElement = ({ element }) => {\n return {element};\n};\n","/* global __MANIFEST_PLUGIN_HAS_LOCALISATION__ */\nimport { withPrefix } from \"gatsby\";\nimport getManifestForPathname from \"./get-manifest-pathname\";\n\n// when we don't have localisation in our manifest, we tree shake everything away\nexport const onRouteUpdate = function onRouteUpdate({\n location\n}, pluginOptions) {\n if (__MANIFEST_PLUGIN_HAS_LOCALISATION__) {\n const {\n localize\n } = pluginOptions;\n const manifestFilename = getManifestForPathname(location.pathname, localize, true);\n const manifestEl = document.head.querySelector(`link[rel=\"manifest\"]`);\n if (manifestEl) {\n manifestEl.setAttribute(`href`, withPrefix(manifestFilename));\n }\n }\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _gatsby = require(\"gatsby\");\n/**\n * Get a manifest filename depending on localized pathname\n *\n * @param {string} pathname\n * @param {Array<{start_url: string, lang: string}>} localizedManifests\n * @param {boolean} shouldPrependPathPrefix\n * @return string\n */\nvar _default = (pathname, localizedManifests, shouldPrependPathPrefix = false) => {\n const defaultFilename = `manifest.webmanifest`;\n if (!Array.isArray(localizedManifests)) {\n return defaultFilename;\n }\n const localizedManifest = localizedManifests.find(app => {\n let startUrl = app.start_url;\n if (shouldPrependPathPrefix) {\n startUrl = (0, _gatsby.withPrefix)(startUrl);\n }\n return pathname.startsWith(startUrl);\n });\n if (!localizedManifest) {\n return defaultFilename;\n }\n return `manifest_${localizedManifest.lang}.webmanifest`;\n};\nexports.default = _default;","var _circle, _circle2, _g, _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgAnimal = function SvgAnimal(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 150,\n height: 150,\n fill: \"none\"\n }, props), _circle || (_circle = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 75,\n cy: 75,\n r: 75,\n fill: \"#EEF8FF\"\n })), /*#__PURE__*/React.createElement(\"mask\", {\n id: \"Animal_svg__a\",\n width: 150,\n height: 150,\n x: 0,\n y: 0,\n maskUnits: \"userSpaceOnUse\",\n style: {\n maskType: \"alpha\"\n }\n }, _circle2 || (_circle2 = /*#__PURE__*/React.createElement(\"circle\", {\n cx: 75,\n cy: 75,\n r: 75,\n fill: \"#EEF8FF\"\n }))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n mask: \"url(#Animal_svg__a)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F39200\",\n d: \"m79.387 121.814.195 28.444L-9 150s8.426-20.838 19.447-37.159c3.642-5.393 9.583-12.85 9.583-12.85l59.357 21.831z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F9B233\",\n d: \"M57.902 43.871c-4.322.586-17.196 6.066-22.136 8.38-3.15 1.476-6.628 3.126-8.004 7.878s-6.378 21.143-6.128 25.895c.25 4.753.25 6.003-.75 8.88-1 2.876-2.126 5.002-.25 9.629 1.876 4.628 4.752 11.014 4.752 11.014l.75-10.138s-.375 5.002 1.126 9.63c1.5 4.627 5.253 9.004 5.253 9.004l-.876-7.254s1.751 4.628 6.128 8.88 7.004 5.502 7.004 5.502l.875-6.003s1.5 1.376 1.5 6.003c0 1.626-1.375 5.878-1.375 5.878s4.002.25 5.753-4.252c.445-1.149 1-3.251 1-3.251s3.26 4.854 15.649 7.761c1.102.258 3.556-9.153 4.744-7.269 2.986 4.745 4.971 3.979 4.971 3.979s1.657-9.974 2.032-13.726c.376-3.752-1.5-14.257-2.75-19.009-1.252-4.752-1.752-7.254 1.375-9.13s10.88-3.626 13.757-5.127 11.005-6.503 12.764-9.505c1.75-3.001 3.001-9.13 3.001-11.005s.875-2.751.875-5.253c0-2.5 1.001-4.502-.75-6.003-1.751-1.5-3.252-2-5.378-1.25s-8.941 1.563-15.077 1.188c-6.128-.375-6.316-1.313-7.691-3.19-1.478-2.016-15.195-9.066-22.144-8.128z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F39200\",\n d: \"M95.606 85.142c-3.002 1.751-2.806 2.634-12.811 5.136-3.572.89-11.389 1.625-12.89 7.253-1.5 5.628 4.917 20.174 5.151 22.019 1.4 11.224-13.944 8.48-24.285-3.01-2.25-2.501-7.613-11.427-11.255-13.506-7.879-4.502-7.379-6.879-7.379-6.879s14.851 1.603 9.138-11.38c-9.255-21.01-.5-29.022-.5-29.022s5.002-3.752 11.63.625c2.18 1.438.516 5.776.625 10.505.149 6.37 4.291 14 4.878 16.258 2.75 10.63 5.51-5.346 11.138-4.838 12.623 1.149 23.582 2.939 24.512-7.425 1.375-15.383 6.003-14.883 6.003-14.883.766.297 5.526 6.972.375 16.383-1.423 2.61-4.495 6.034-8.403 8.88-4.932 3.595-10.724 5.276-10.403 5.354 5.51 1.329 14.483-1.478 14.483-1.478z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#BC6B15\",\n d: \"M100.015 54.626c-2.502 1.587-4.417 3.752-4.417 5.417s4.166 4.002 4.417 7.34-2.173 7.503-4.167 9.84c-2 2.337-7.59 6.003-7.59 6.003s12.429-4.666 13.843-4.917c1.415-.25 2.338.024 2.338.024s1.289-.938 2.751-5.104c.399-1.126 1.086-3.838 1-5.753-.086-1.923.501-4.752.587-5.339.086-.586.336-3.587.336-3.587l-9.083-3.916z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#BC6B15\",\n d: \"M68.216 79.334c-1.118.805.11 8.106 4.69 7.879 3.431-.172 8.183 0 10.247-1.149 1.602-.891 5.51-3.04 5.51-3.04s-3.259 1.266-7.808.82c-5.503-.531-10.896-5.76-12.647-4.51z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#7D4E24\",\n d: \"M105.057 77.52c.813-1.251 2.064-4.753.75-5.073-.633-.149-1.875.813-3.126 2.313s-2.329 2.54-3.963 3.541c-1.946 1.204-6.542 3.502-6.542 3.502s7.902-2.986 10.755-4.354c1.688-.813 2.134.063 2.134.063z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F39200\",\n d: \"M82.098 58.315c2.689.407 7.942.063 9.192.75s.125 4.378-3.001 8.817c-3.127 4.44-2.189 7.441-2.814 8.692-.625 1.25-.75 1.813-5.503 1.125-4.752-.687-13.178-2.25-14.616-1.125-5.714 4.463-.766-4.307 2.446-4.948 5.831-1.164 10.52 2.931 11.85-4.244.547-2.947-5.3-2.376-7.629-4.627-.899-.868-.766-4.284-3.377-4.252-8.426.101-9.692-1.564-9.692-1.564L66.333 52s1.25-.5-.063-1.5-4.799-1.626-4.799-1.626 3.728-.97 6.003-.414c11.591 2.79 5.667 8.504 14.616 9.856z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#7D4E24\",\n d: \"M99.391 55.001c-1.305.72-1.422 2.783-1.094 3.635.32.844 3.126 2.54 4.369 2.478 1.235-.063 3.525 1.172 4.237 2.548a28 28 0 0 1 1.281 2.892s.931-6.027 1.001-7.2c.062-1.172.344-2.414-.782-4.048-.586-.844-1.758-1.657-2.931-1.696-3.783-.133-4.408.477-6.073 1.391z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#683C11\",\n d: \"M100.927 55.814c-.375 1.563-.5 1.813.875 2.501.899.453 2.971.461 4.573.805.492.11-1.993 1.892-1.665 2.134 4.002 2.97 3.416-1.407 3.556-1.212.829 1.134-.078 6.504-.078 6.504s-2.024-3.62-3.064-4.23c-2.134-1.25-4.213-.875-5.65-1.812-1.345-.876-1.814-2.47-1.377-3.377.876-1.814 2.838-1.313 2.838-1.313z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#432918\",\n d: \"M104.467 61.34c.954-.188 1.689-.344 2.025-.93.461-.813.477-1.907.234-2.908-.25-1-.938-2-1.751-1.438s-1.063 1.438-.938 2.251c.126.813.313 1.75-.312 2.064-.625.312-2.447.781-2.447.781s2.033.407 3.197.18z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#BC6B15\",\n d: \"M62.712 52.938c-2.04 1.837-3.752 4.002-3.752 4.002s2.126.813 5.128.75c2.188-.046 3.251-1 4.69-1.25 1.437-.25 2.438.563 2.688-.625.25-1.189-.531-2.26-2.626-3.19-3.815-1.688-4.995-.71-6.128.313\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#432918\",\n d: \"M68.491 53.82c.407 1.282-.758 2.799-2.595 3.385-1.844.586-3.666.016-4.072-1.266s.758-2.798 2.595-3.385c1.845-.586 3.666-.015 4.072 1.267\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#BC6B15\",\n d: \"M40.891 56.627c-.5 1.751-.625 4.627 2.127 8.254 2.75 3.627 5.752 8.38 8.504 12.381 2.75 4.002 4.877 11.256 4.877 11.256s-1.5-9.505-3.252-13.132c-1.75-3.626-4.377-5.002-5.752-8.254s.5-3.501-2.502-7.253-4.002-3.252-4.002-3.252\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#F39200\",\n d: \"M33.132 75.644c1.501 4.627 1.884 9.13.876 12.506-1 3.377-1.126 5.628-1.126 5.628l-.25 17.133s-5.252-4.252-5.503-7.629c-.25-3.376 1.868-7.996.376-10.004-5.753-7.754-4.002-11.264-4.002-11.264s1.75 2.877 4.877 2.377 4.752-8.755 4.752-8.755z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#BC6B15\",\n d: \"M32.63 91.277c.876 3.377 3.877 4.252 5.503 4.002s9.59 3.416 12.381 3.252c4.252-.25 5.628-7.754 5.628-7.754s1.5 5.628-1.5 10.755c-3.002 5.128-7.254 6.628-11.006 3.002s-6.214-5.785-8.88-6.629c-5.127-1.626-2.133-6.628-2.133-6.628z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#fff\",\n d: \"M64.154 54.376a.664.664 0 1 1-1.328.001.664.664 0 0 1 1.328-.001\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#E5E5E4\",\n d: \"M93.136 48.765a3.466 3.466 0 0 1-3.47 3.462 3.464 3.464 0 0 1-3.463-3.462 3.476 3.476 0 0 1 3.463-3.47 3.48 3.48 0 0 1 3.47 3.47M88.088 38.852a6.276 6.276 0 0 1-6.276 6.277 6.265 6.265 0 0 1-6.269-6.277 6.263 6.263 0 0 1 6.269-6.268c3.462 0 6.276 2.806 6.276 6.268\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#7D4E24\",\n d: \"M88.134 83.194c-1.11.383-5.245 1.68-11.936-.078-2.962-.774-5.925-2.83-6.503-2.525-.57.305.133 2.58 1.305 3.408 1.837 1.297 8.723 1.376 10.326 1.227 3.595-.344 6.808-2.024 6.808-2.024z\"\n }))), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n fill: \"#E5E5E4\",\n d: \"M146.25 17.74c0-6.471-5.245-11.716-11.717-11.716-2.376 0-4.588.711-6.441 1.923a21.75 21.75 0 0 0-13.029-4.307c-3.283 0-6.394.727-9.184 2.017A15.66 15.66 0 0 0 94.209.459c-8.66 0-15.687 7.019-15.687 15.687 0 8.669 6.995 15.656 15.632 15.688 2.72 8.965 11.052 15.492 20.901 15.492 10.771 0 19.728-7.801 21.518-18.056 5.487-.97 9.661-5.769 9.661-11.537z\"\n })));\n};\nexport { SvgAnimal as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTUwIiBoZWlnaHQ9IjE1MCIgdmlld0JveD0iMCAwIDE1MCAxNTAiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxjaXJjbGUgY3g9Ijc1IiBjeT0iNzUiIHI9Ijc1IiBmaWxsPSIjRUVGOEZGIi8+CjxtYXNrIGlkPSJtYXNrMF8xMzM1XzIwODMzIiBzdHlsZT0ibWFzay10eXBlOmFscGhhIiBtYXNrVW5pdHM9InVzZXJTcGFjZU9uVXNlIiB4PSIwIiB5PSIwIiB3aWR0aD0iMTUwIiBoZWlnaHQ9IjE1MCI+CjxjaXJjbGUgY3g9Ijc1IiBjeT0iNzUiIHI9Ijc1IiBmaWxsPSIjRUVGOEZGIi8+CjwvbWFzaz4KPGcgbWFzaz0idXJsKCNtYXNrMF8xMzM1XzIwODMzKSI+CjxwYXRoIGQ9Ik03OS4zODY4IDEyMS44MTRMNzkuNTgyMiAxNTAuMjU4TC05IDE1MEMtOSAxNTAgLTAuNTc0MDI0IDEyOS4xNjIgMTAuNDQ3IDExMi44NDFDMTQuMDg5NCAxMDcuNDQ4IDIwLjAyOTggOTkuOTkxMiAyMC4wMjk4IDk5Ljk5MTJMNzkuMzg2OCAxMjEuODIyVjEyMS44MTRaIiBmaWxsPSIjRjM5MjAwIi8+CjxwYXRoIGQ9Ik01Ny45MDE5IDQzLjg3MTFDNTMuNTc5NSA0NC40NTczIDQwLjcwNjEgNDkuOTM2NSAzNS43NjYyIDUyLjI1MDJDMzIuNjE2MiA1My43Mjc0IDI5LjEzNzkgNTUuMzc2NyAyNy43NjIzIDYwLjEyOUMyNi4zODY2IDY0Ljg4MTMgMjEuMzg0MiA4MS4yNzIxIDIxLjYzNDMgODYuMDI0NEMyMS44ODQ0IDkwLjc3NjcgMjEuODg0NCA5Mi4wMjczIDIwLjg4MzkgOTQuOTAzN0MxOS44ODM0IDk3Ljc4MDEgMTguNzU3OSA5OS45MDYyIDIwLjYzMzggMTA0LjUzM0MyMi41MDk3IDEwOS4xNjEgMjUuMzg2MSAxMTUuNTQ3IDI1LjM4NjEgMTE1LjU0N0wyNi4xMzY1IDEwNS40MDlDMjYuMTM2NSAxMDUuNDA5IDI1Ljc2MTMgMTEwLjQxMSAyNy4yNjIgMTE1LjAzOUMyOC43NjI4IDExOS42NjYgMzIuNTE0NiAxMjQuMDQzIDMyLjUxNDYgMTI0LjA0M0wzMS42MzkyIDExNi43ODlDMzEuNjM5MiAxMTYuNzg5IDMzLjM5IDEyMS40MTcgMzcuNzY3MSAxMjUuNjY5QzQyLjE0NDMgMTI5LjkyMSA0NC43NzA2IDEzMS4xNzEgNDQuNzcwNiAxMzEuMTcxTDQ1LjY0NiAxMjUuMTY4QzQ1LjY0NiAxMjUuMTY4IDQ3LjE0NjcgMTI2LjU0NCA0Ny4xNDY3IDEzMS4xNzFDNDcuMTQ2NyAxMzIuNzk3IDQ1Ljc3MSAxMzcuMDQ5IDQ1Ljc3MSAxMzcuMDQ5QzQ1Ljc3MSAxMzcuMDQ5IDQ5Ljc3MyAxMzcuMjk5IDUxLjUyMzggMTMyLjc5N0M1MS45Njk0IDEzMS42NDggNTIuNTI0MyAxMjkuNTQ2IDUyLjUyNDMgMTI5LjU0NkM1Mi41MjQzIDEyOS41NDYgNTUuNzgzNyAxMzQuNCA2OC4xNzI2IDEzNy4zMDdDNjkuMjc0NyAxMzcuNTY1IDcxLjcyOSAxMjguMTU0IDcyLjkxNzEgMTMwLjAzOEM3NS45MDI5IDEzNC43ODMgNzcuODg4MiAxMzQuMDE3IDc3Ljg4ODIgMTM0LjAxN0M3Ny44ODgyIDEzNC4wMTcgNzkuNTQ1MyAxMjQuMDQzIDc5LjkyMDUgMTIwLjI5MUM4MC4yOTU3IDExNi41MzkgNzguNDE5OCAxMDYuMDM0IDc3LjE2OTEgMTAxLjI4MkM3NS45MTg1IDk2LjUyOTUgNzUuNDE4MyA5NC4wMjgzIDc4LjU0NDggOTIuMTUyNEM4MS42NzEzIDkwLjI3NjUgODkuNDI1MSA4OC41MjU2IDkyLjMwMTUgODcuMDI0OUM5NS4xNzc5IDg1LjUyNDIgMTAzLjMwNyA4MC41MjE3IDEwNS4wNjYgNzcuNTIwM0MxMDYuODE2IDc0LjUxODggMTA4LjA2NyA2OC4zOTA4IDEwOC4wNjcgNjYuNTE0OUMxMDguMDY3IDY0LjYzOSAxMDguOTQyIDYzLjc2MzYgMTA4Ljk0MiA2MS4yNjI0QzEwOC45NDIgNTguNzYxMSAxMDkuOTQzIDU2Ljc2MDIgMTA4LjE5MiA1NS4yNTk0QzEwNi40NDEgNTMuNzU4NyAxMDQuOTQgNTMuMjU4NSAxMDIuODE0IDU0LjAwODhDMTAwLjY4OCA1NC43NTkyIDkzLjg3MjYgNTUuNTcyMSA4Ny43MzY4IDU1LjE5NjlDODEuNjA4OCA1NC44MjE3IDgxLjQyMTIgNTMuODgzOCA4MC4wNDU1IDUyLjAwNzlDNzguNTY4MyA0OS45OTEyIDY0Ljg1MDYgNDIuOTQwOSA1Ny45MDE5IDQzLjg3ODlWNDMuODcxMVoiIGZpbGw9IiNGOUIyMzMiLz4KPHBhdGggZD0iTTk1LjYwNTYgODUuMTQyMkM5Mi42MDQyIDg2Ljg5MzEgOTIuNzk5NiA4Ny43NzYzIDgyLjc5NDcgOTAuMjc3NUM3OS4yMjI2IDkxLjE2ODYgNzEuNDA2MyA5MS45MDMzIDY5LjkwNTYgOTcuNTMxMUM2OC40MDQ5IDEwMy4xNTkgNzQuODIyMSAxMTcuNzA1IDc1LjA1NjUgMTE5LjU1Qzc2LjQ1NTcgMTMwLjc3NCA2MS4xMTIzIDEyOC4wMyA1MC43NzEzIDExNi41NEM0OC41MjAyIDExNC4wMzkgNDMuMTU4MiAxMDUuMTEzIDM5LjUxNTggMTAzLjAzNEMzMS42MzcgOTguNTMxNiAzMi4xMzcyIDk2LjE1NTQgMzIuMTM3MiA5Ni4xNTU0QzMyLjEzNzIgOTYuMTU1NCA0Ni45ODgyIDk3Ljc1NzggNDEuMjc0NSA4NC43NzQ5QzMyLjAyIDYzLjc2NDYgNDAuNzc0MiA1NS43NTI5IDQwLjc3NDIgNTUuNzUyOUM0MC43NzQyIDU1Ljc1MjkgNDUuNzc2NyA1Mi4wMDExIDUyLjQwNDkgNTYuMzc4MkM1NC41ODU2IDU3LjgxNjQgNTIuOTIwOCA2Mi4xNTQ1IDUzLjAzMDIgNjYuODgzM0M1My4xNzg3IDczLjI1MzYgNTcuMzIxNCA4MC44ODIzIDU3LjkwNzYgODMuMTQxMkM2MC42NTg5IDkzLjc3MTQgNjMuNDE4MSA3Ny43OTQ5IDY5LjA0NTggNzguMzAzQzgxLjY2OTIgNzkuNDUyIDkyLjYyNzYgODEuMjQxOSA5My41NTc4IDcwLjg3NzVDOTQuOTMzNCA1NS40OTUgOTkuNTYwNyA1NS45OTUyIDk5LjU2MDcgNTUuOTk1MkMxMDAuMzI3IDU2LjI5MjMgMTA1LjA4NyA2Mi45Njc0IDk5LjkzNTkgNzIuMzc4MkM5OC41MTMzIDc0Ljk4ODggOTUuNDQxNSA3OC40MTI0IDkxLjUzMzMgODEuMjU3NUM4Ni42MDEyIDg0Ljg1MyA4MC44MDkzIDg2LjUzMzUgODEuMTI5OCA4Ni42MTE3Qzg2LjY0MDMgODcuOTQwNSA5NS42MTM0IDg1LjEzNDQgOTUuNjEzNCA4NS4xMzQ0TDk1LjYwNTYgODUuMTQyMloiIGZpbGw9IiNGMzkyMDAiLz4KPHBhdGggZD0iTTEwMC4wMTUgNTQuNjI2Qzk3LjUxMzMgNTYuMjEyNyA5NS41OTgzIDU4LjM3NzggOTUuNTk4MyA2MC4wNDI3Qzk1LjU5ODMgNjEuNzA3NSA5OS43NjQ0IDY0LjA0NDYgMTAwLjAxNSA2Ny4zODIyQzEwMC4yNjUgNzAuNzE5OCA5Ny44NDE2IDc0Ljg4NTggOTUuODQ4NCA3Ny4yMjI5QzkzLjg0NzUgNzkuNTYgODguMjU4OCA4My4yMjU4IDg4LjI1ODggODMuMjI1OEM4OC4yNTg4IDgzLjIyNTggMTAwLjY4NyA3OC41NTk1IDEwMi4xMDEgNzguMzA5NEMxMDMuNTE2IDc4LjA1OTMgMTA0LjQzOSA3OC4zMzI4IDEwNC40MzkgNzguMzMyOEMxMDQuNDM5IDc4LjMzMjggMTA1LjcyOCA3Ny4zOTQ5IDEwNy4xOSA3My4yMjg4QzEwNy41ODkgNzIuMTAzMiAxMDguMjc2IDY5LjM5MSAxMDguMTkgNjcuNDc2QzEwOC4xMDQgNjUuNTUzMiAxMDguNjkxIDYyLjcyMzcgMTA4Ljc3NyA2Mi4xMzc0QzEwOC44NjMgNjEuNTUxMiAxMDkuMTEzIDU4LjU0OTggMTA5LjExMyA1OC41NDk4TDEwMC4wMyA1NC42MzM4TDEwMC4wMTUgNTQuNjI2WiIgZmlsbD0iI0JDNkIxNSIvPgo8cGF0aCBkPSJNNjguMjE2IDc5LjMzNDJDNjcuMDk4MyA4MC4xMzkzIDY4LjMyNTQgODcuNDM5NyA3Mi45MDU4IDg3LjIxM0M3Ni4zMzcxIDg3LjA0MTEgODEuMDg5NCA4Ny4yMTMgODMuMTUzIDg2LjA2NEM4NC43NTUzIDg1LjE3MyA4OC42NjM1IDgzLjAyMzUgODguNjYzNSA4My4wMjM1Qzg4LjY2MzUgODMuMDIzNSA4NS40MDQxIDg0LjI4OTcgODAuODU1IDgzLjg0NDJDNzUuMzUyMyA4My4zMTI3IDY5Ljk1OSA3OC4wODM2IDY4LjIwODIgNzkuMzM0Mkg2OC4yMTZaIiBmaWxsPSIjQkM2QjE1Ii8+CjxwYXRoIGQ9Ik0xMDUuMDU3IDc3LjUxOTVDMTA1Ljg3IDc2LjI2ODkgMTA3LjEyMSA3Mi43NjcyIDEwNS44MDcgNzIuNDQ2N0MxMDUuMTc0IDcyLjI5ODIgMTAzLjkzMiA3My4yNTk2IDEwMi42ODEgNzQuNzYwM0MxMDEuNDMgNzYuMjYxMSAxMDAuMzUyIDc3LjMwMDcgOTguNzE4IDc4LjMwMTFDOTYuNzcxOCA3OS41MDQ5IDkyLjE3NTggODEuODAyOCA5Mi4xNzU4IDgxLjgwMjhDOTIuMTc1OCA4MS44MDI4IDEwMC4wNzggNzguODE3IDEwMi45MzEgNzcuNDQ5MkMxMDQuNjE5IDc2LjYzNjMgMTA1LjA2NSA3Ny41MTE3IDEwNS4wNjUgNzcuNTExN0wxMDUuMDU3IDc3LjUxOTVaIiBmaWxsPSIjN0Q0RTI0Ii8+CjxwYXRoIGQ9Ik04Mi4wOTgyIDU4LjMxNUM4NC43ODcgNTguNzIxNSA5MC4wMzk1IDU4LjM3NzUgOTEuMjkwMiA1OS4wNjU0QzkyLjU0MDggNTkuNzUzMiA5MS40MTUyIDYzLjQ0MjUgODguMjg4NyA2Ny44ODIyQzg1LjE2MjIgNzIuMzIxOCA4Ni4xMDAxIDc1LjMyMzMgODUuNDc0OCA3Ni41NzM5Qzg0Ljg0OTUgNzcuODI0NSA4NC43MjQ1IDc4LjM4NzMgNzkuOTcyMSA3Ny42OTk0Qzc1LjIxOTggNzcuMDExNiA2Ni43OTM5IDc1LjQ0ODMgNjUuMzU1NyA3Ni41NzM5QzU5LjY0MTkgODEuMDM3IDY0LjU4OTcgNzIuMjY3MSA2Ny44MDIyIDcxLjYyNjJDNzMuNjMzMSA3MC40NjE2IDc4LjMyMjkgNzQuNTU3MyA3OS42NTE3IDY3LjM4MTlDODAuMTk4OCA2NC40MzUyIDc0LjM1MjIgNjUuMDA1OCA3Mi4wMjMgNjIuNzU0N0M3MS4xMjQxIDYxLjg4NzEgNzEuMjU3IDU4LjQ3MTMgNjguNjQ2MyA1OC41MDI2QzYwLjIyMDMgNTguNjA0MiA1OC45NTQxIDU2LjkzOTMgNTguOTU0MSA1Ni45MzkzTDY2LjMzMjcgNTEuOTk5NEM2Ni4zMzI3IDUxLjk5OTQgNjcuNTgzMyA1MS40OTkyIDY2LjI3MDIgNTAuNDk4N0M2NC45NTcgNDkuNDk4MiA2MS40NzEgNDguODcyOSA2MS40NzEgNDguODcyOUM2MS40NzEgNDguODcyOSA2NS4xOTkzIDQ3LjkwMzcgNjcuNDczOSA0OC40NTg2Qzc5LjA2NTUgNTEuMjQ5MSA3My4xNDA3IDU2Ljk2MjggODIuMDkwNCA1OC4zMTVIODIuMDk4MloiIGZpbGw9IiNGMzkyMDAiLz4KPHBhdGggZD0iTTk5LjM5MSA1NS4wMDEzQzk4LjA4NTcgNTUuNzIwNCA5Ny45Njg1IDU3Ljc4MzkgOTguMjk2OCA1OC42MzU5Qzk4LjYxNzIgNTkuNDggMTAxLjQyMyA2MS4xNzYxIDEwMi42NjYgNjEuMTEzNkMxMDMuOTAxIDYxLjA1MTEgMTA2LjE5MSA2Mi4yODYxIDEwNi45MDMgNjMuNjYxN0MxMDcuNjIyIDY1LjAyOTYgMTA4LjE4NCA2Ni41NTM4IDEwOC4xODQgNjYuNTUzOEMxMDguMTg0IDY2LjU1MzggMTA5LjExNSA2MC41Mjc0IDEwOS4xODUgNTkuMzU0OUMxMDkuMjQ3IDU4LjE4MjUgMTA5LjUyOSA1Ni45Mzk3IDEwOC40MDMgNTUuMzA2MUMxMDcuODE3IDU0LjQ2MTkgMTA2LjY0NSA1My42NDkgMTA1LjQ3MiA1My42MUMxMDEuNjg5IDUzLjQ3NzEgMTAxLjA2NCA1NC4wODY4IDk5LjM5ODggNTUuMDAxM0g5OS4zOTFaIiBmaWxsPSIjN0Q0RTI0Ii8+CjxwYXRoIGQ9Ik0xMDAuOTI3IDU1LjgxMzdDMTAwLjU1MiA1Ny4zNzcgMTAwLjQyNyA1Ny42MjcxIDEwMS44MDIgNTguMzE1QzEwMi43MDEgNTguNzY4MyAxMDQuNzczIDU4Ljc3NjEgMTA2LjM3NSA1OS4xMkMxMDYuODY3IDU5LjIyOTUgMTA0LjM4MiA2MS4wMTE2IDEwNC43MSA2MS4yNTM5QzEwOC43MTIgNjQuMjI0MSAxMDguMTI2IDU5Ljg0NjkgMTA4LjI2NiA2MC4wNDI0QzEwOS4wOTUgNjEuMTc1NyAxMDguMTg4IDY2LjU0NTUgMTA4LjE4OCA2Ni41NDU1QzEwOC4xODggNjYuNTQ1NSAxMDYuMTY0IDYyLjkyNjYgMTA1LjEyNCA2Mi4zMTY5QzEwMi45OSA2MS4wNjYzIDEwMC45MTEgNjEuNDQxNSA5OS40NzMxIDYwLjUwMzVDOTguMTI4NyA1OS42MjgxIDk3LjY1OTcgNTguMDMzNiA5OC4wOTc0IDU3LjEyNjlDOTguOTcyOCA1NS4zMTM1IDEwMC45MzUgNTUuODEzNyAxMDAuOTM1IDU1LjgxMzdIMTAwLjkyN1oiIGZpbGw9IiM2ODNDMTEiLz4KPHBhdGggZD0iTTEwNC40NjcgNjEuMzRDMTA1LjQyMSA2MS4xNTI0IDEwNi4xNTYgNjAuOTk2IDEwNi40OTIgNjAuNDA5OEMxMDYuOTUzIDU5LjU5NjkgMTA2Ljk2OSA1OC41MDI2IDEwNi43MjYgNTcuNTAyMUMxMDYuNDc2IDU2LjUwMTcgMTA1Ljc4OCA1NS41MDEyIDEwNC45NzUgNTYuMDYzOUMxMDQuMTYzIDU2LjYyNjcgMTAzLjkxMiA1Ny41MDIyIDEwNC4wMzcgNTguMzE1QzEwNC4xNjMgNTkuMTI3OSAxMDQuMzUgNjAuMDY1OSAxMDMuNzI1IDYwLjM3ODVDMTAzLjEgNjAuNjkxMiAxMDEuMjc4IDYxLjE2MDIgMTAxLjI3OCA2MS4xNjAyQzEwMS4yNzggNjEuMTYwMiAxMDMuMzExIDYxLjU2NjYgMTA0LjQ3NSA2MS4zNEgxMDQuNDY3WiIgZmlsbD0iIzQzMjkxOCIvPgo8cGF0aCBkPSJNNjIuNzExOCA1Mi45MzgxQzYwLjY3MTcgNTQuNzc0OSA1OC45NiA1Ni45NCA1OC45NiA1Ni45NEM1OC45NiA1Ni45NCA2MS4wODYgNTcuNzUyOSA2NC4wODc1IDU3LjY5MDRDNjYuMjc2IDU3LjY0MzUgNjcuMzM5IDU2LjY4OTkgNjguNzc3MiA1Ni40Mzk4QzcwLjIxNTQgNTYuMTg5NyA3MS4yMTU5IDU3LjAwMjUgNzEuNDY2MSA1NS44MTQ1QzcxLjcxNjIgNTQuNjI2NCA3MC45MzQ1IDUzLjU1NTYgNjguODM5OCA1Mi42MjU0QzY1LjAyNTQgNTAuOTM3MSA2My44NDUyIDUxLjkxNDEgNjIuNzExOCA1Mi45MzgxWiIgZmlsbD0iI0JDNkIxNSIvPgo8cGF0aCBkPSJNNjguNDkxNCA1My44MjA2QzY4Ljg5NzggNTUuMTAyNSA2Ny43MzMyIDU2LjYxODggNjUuODk2NCA1Ny4yMDUxQzY0LjA1MTcgNTcuNzkxMyA2Mi4yMzA1IDU3LjIyMDcgNjEuODI0MSA1NS45Mzg4QzYxLjQxNzYgNTQuNjU2OSA2Mi41ODIzIDUzLjE0MDYgNjQuNDE5MSA1Mi41NTQ0QzY2LjI2MzcgNTEuOTY4MSA2OC4wODQ5IDUyLjUzODcgNjguNDkxNCA1My44MjA2WiIgZmlsbD0iIzQzMjkxOCIvPgo8cGF0aCBkPSJNNDAuODkxNCA1Ni42MjcyQzQwLjM5MTIgNTguMzc4IDQwLjI2NjEgNjEuMjU0NCA0My4wMTc1IDY0Ljg4MTJDNDUuNzY4OCA2OC41MDc5IDQ4Ljc3MDMgNzMuMjYwMiA1MS41MjE2IDc3LjI2MjJDNTQuMjcyOSA4MS4yNjQxIDU2LjM5OSA4OC41MTc3IDU2LjM5OSA4OC41MTc3QzU2LjM5OSA4OC41MTc3IDU0Ljg5ODIgNzkuMDEzMSA1My4xNDc0IDc1LjM4NjNDNTEuMzk2NSA3MS43NTk1IDQ4Ljc3MDMgNzAuMzgzOSA0Ny4zOTQ2IDY3LjEzMjNDNDYuMDE4OSA2My44ODA3IDQ3Ljg5NDggNjMuNjMwNiA0NC44OTM0IDU5Ljg3ODdDNDEuODkxOSA1Ni4xMjY5IDQwLjg5MTQgNTYuNjI3MiA0MC44OTE0IDU2LjYyNzJaIiBmaWxsPSIjQkM2QjE1Ii8+CjxwYXRoIGQ9Ik0zMy4xMzIzIDc1LjY0NEMzNC42MzMgODAuMjcxMyAzNS4wMTYgODQuNzczNSAzNC4wMDc3IDg4LjE1MDFDMzMuMDA3MiA5MS41MjY4IDMyLjg4MjIgOTMuNzc3OSAzMi44ODIyIDkzLjc3NzlMMzIuNjMyMSAxMTAuOTExQzMyLjYzMjEgMTEwLjkxMSAyNy4zNzk1IDEwNi42NTkgMjcuMTI5NCAxMDMuMjgyQzI2Ljg3OTMgOTkuOTA1OSAyOC45OTc1IDk1LjI4NjQgMjcuNTA0NiA5My4yNzc2QzIxLjc1MTggODUuNTIzOCAyMy41MDI2IDgyLjAxNDMgMjMuNTAyNiA4Mi4wMTQzQzIzLjUwMjYgODIuMDE0MyAyNS4yNTM1IDg0Ljg5MDcgMjguMzggODQuMzkwNUMzMS41MDY1IDgzLjg5MDIgMzMuMTMyMyA3NS42MzYyIDMzLjEzMjMgNzUuNjM2MlY3NS42NDRaIiBmaWxsPSIjRjM5MjAwIi8+CjxwYXRoIGQ9Ik0zMi42MzA0IDkxLjI3NzFDMzMuNTA1OCA5NC42NTM3IDM2LjUwNzMgOTUuNTI5MiAzOC4xMzMxIDk1LjI3OUMzOS43NTg5IDk1LjAyODkgNDcuNzIzNyA5OC42OTQ4IDUwLjUxNDEgOTguNTMwNkM1NC43NjYyIDk4LjI4MDUgNTYuMTQxOCA5MC43NzY5IDU2LjE0MTggOTAuNzc2OUM1Ni4xNDE4IDkwLjc3NjkgNTcuNjQyNiA5Ni40MDQ2IDU0LjY0MTEgMTAxLjUzMkM1MS42Mzk3IDEwNi42NiA0Ny4zODc2IDEwOC4xNiA0My42MzU4IDEwNC41MzRDMzkuODgzOSAxMDAuOTA3IDM3LjQyMTggOTguNzQ5NSAzNC43NTY0IDk3LjkwNTNDMjkuNjI4OSA5Ni4yNzk1IDMyLjYyMjYgOTEuMjc3MSAzMi42MjI2IDkxLjI3NzFIMzIuNjMwNFoiIGZpbGw9IiNCQzZCMTUiLz4KPHBhdGggZD0iTTY0LjE1NCA1NC4zNzU4QzY0LjE1NCA1NC43NDMyIDYzLjg1NyA1NS4wNDAyIDYzLjQ4OTYgNTUuMDQwMkM2My4xMjIyIDU1LjA0MDIgNjIuODI1MiA1NC43NDMyIDYyLjgyNTIgNTQuMzc1OEM2Mi44MjUyIDU0LjAwODUgNjMuMTMgNTMuNzExNCA2My40ODk2IDUzLjcxMTRDNjMuODQ5MSA1My43MTE0IDY0LjE1NCA1NC4wMDg1IDY0LjE1NCA1NC4zNzU4WiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTkzLjEzNjIgNDguNzY0OUM5My4xMzYyIDUwLjY3OTkgOTEuNTgwNyA1Mi4yMjc1IDg5LjY2NTcgNTIuMjI3NUM4Ny43NTA3IDUyLjIyNzUgODYuMjAzMSA1MC42NzIxIDg2LjIwMzEgNDguNzY0OUM4Ni4yMDMxIDQ2Ljg1NzcgODcuNzU4NiA0NS4yOTQ0IDg5LjY2NTcgNDUuMjk0NEM5MS41NzI5IDQ1LjI5NDQgOTMuMTM2MiA0Ni44NDk5IDkzLjEzNjIgNDguNzY0OVoiIGZpbGw9IiNFNUU1RTQiLz4KPHBhdGggZD0iTTg4LjA4ODEgMzguODUyMkM4OC4wODgxIDQyLjMxNDggODUuMjgyMSA0NS4xMjg3IDgxLjgxMTYgNDUuMTI4N0M3OC4zNDEyIDQ1LjEyODcgNzUuNTQzIDQyLjMyMjYgNzUuNTQzIDM4Ljg1MjJDNzUuNTQzIDM1LjM4MTcgNzguMzQ5IDMyLjU4MzUgODEuODExNiAzMi41ODM1Qzg1LjI3NDMgMzIuNTgzNSA4OC4wODgxIDM1LjM4OTYgODguMDg4MSAzOC44NTIyWiIgZmlsbD0iI0U1RTVFNCIvPgo8cGF0aCBkPSJNODguMTMzNyA4My4xOTRDODcuMDIzNyA4My41NzcgODIuODg4OSA4NC44NzQ1IDc2LjE5ODIgODMuMTE1OEM3My4yMzU4IDgyLjM0MiA3MC4yNzM0IDgwLjI4NjMgNjkuNjk1IDgwLjU5MTFDNjkuMTI0NCA4MC44OTYgNjkuODI3OSA4My4xNzA1IDcxLjAwMDMgODMuOTk5QzcyLjgzNzEgODUuMjk2NSA3OS43MjMzIDg1LjM3NDcgODEuMzI1NiA4NS4yMjYyQzg0LjkyMTEgODQuODgyMyA4OC4xMzM3IDgzLjIwMTggODguMTMzNyA4My4yMDE4VjgzLjE5NFoiIGZpbGw9IiM3RDRFMjQiLz4KPC9nPgo8cGF0aCBkPSJNMTQ2LjI1IDE3Ljc0MDhDMTQ2LjI1IDExLjI2ODkgMTQxLjAwNSA2LjAyNDE5IDEzNC41MzMgNi4wMjQxOUMxMzIuMTU3IDYuMDI0MTkgMTI5Ljk0NSA2LjczNTQ4IDEyOC4wOTIgNy45NDcwMUMxMjQuNDU4IDUuMjQyNTYgMTE5Ljk0OCAzLjY0MDIxIDExNS4wNjMgMy42NDAyMUMxMTEuNzggMy42NDAyMSAxMDguNjY5IDQuMzY3MTMgMTA1Ljg3OSA1LjY1NjgyQzEwMy4wMSAyLjQ2Nzc3IDk4Ljg0MzkgMC40NTg5ODQgOTQuMjA4OCAwLjQ1ODk4NEM4NS41NDgzIDAuNDU4OTg0IDc4LjUyMTUgNy40NzgwMiA3OC41MjE1IDE2LjE0NjNDNzguNTIxNSAyNC44MTQ2IDg1LjUxNzEgMzEuODAyNCA5NC4xNTQxIDMxLjgzMzZDOTYuODc0MiA0MC43OTg5IDEwNS4yMDYgNDcuMzI1NiAxMTUuMDU1IDQ3LjMyNTZDMTI1LjgyNiA0Ny4zMjU2IDEzNC43ODMgMzkuNTI0OSAxMzYuNTczIDI5LjI2OTlDMTQyLjA2IDI4LjMwMDcgMTQ2LjIzNCAyMy41MDE0IDE0Ni4yMzQgMTcuNzMzTDE0Ni4yNSAxNy43NDA4WiIgZmlsbD0iI0U1RTVFNCIvPgo8L3N2Zz4K\";","var _path;\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from \"react\";\nvar SvgArrowLeft = function SvgArrowLeft(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 8,\n height: 13,\n fill: \"none\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n stroke: \"#324F7B\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeMiterlimit: 10,\n strokeWidth: 1.5,\n d: \"M6.396 1.22 2.05 5.566a1.324 1.324 0 0 0 0 1.867l4.346 4.347\"\n })));\n};\nexport { SvgArrowLeft as ReactComponent };\nexport default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iOCIgaGVpZ2h0PSIxMyIgdmlld0JveD0iMCAwIDggMTMiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxwYXRoIGQ9Ik02LjM5NjQ4IDEuMjE5NzhMMi4wNDk4MiA1LjU2NjQ1QzEuNTM2NDggNi4wNzk3OSAxLjUzNjQ4IDYuOTE5NzggMi4wNDk4MiA3LjQzMzEyTDYuMzk2NDggMTEuNzc5OCIgc3Ryb2tlPSIjMzI0RjdCIiBzdHJva2Utd2lkdGg9IjEuNSIgc3Ryb2tlLW1pdGVybGltaXQ9IjEwIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9zdmc+Cg==\";","import { Box, Button, Dialog, Stack, Typography } from \"@mui/material\";\nimport React, { useContext } from \"react\";\nimport animal from \"../../media/icons/Animal.svg\";\nimport arrowLeft from \"../../media/icons/ArrowLeft.svg\";\nimport { ModalContext } from \"../../context\";\nimport { navigate } from \"gatsby\";\n\nconst modalID = \"developCard\";\n\nexport default function DevelopeCardModal() {\n const { isModalActive, setModalInactive } = useContext(ModalContext);\n\n return (\n \n );\n}\n","import React, { useContext } from \"react\";\nimport { ModalContext } from \"../../context\";\nimport {\n Box,\n Button,\n Dialog,\n FormControl,\n MenuItem,\n Select,\n Stack,\n Typography,\n} from \"@mui/material\";\nimport scheduleIcon from \"../../media/icons/Calendar.svg\";\nimport KeyboardArrowDownIcon from \"@mui/icons-material/KeyboardArrowDown\";\nimport { navigate } from \"gatsby\";\n\nconst modalID = \"scheduleModal\";\nexport default function ScheduleModal() {\n const { isModalActive, setModalInactive } = useContext(ModalContext);\n let clubRegion =\n typeof window !== \"undefined\" && localStorage.getItem(\"clubRegion\");\n return (\n \n );\n}\n","import { createTheme } from \"@mui/material\";\n\nconst colors = {\n white: \"#FFFFFF\",\n black: \"#000000\",\n blue: \"#324F7B\",\n whiteBlue: \"#EEF8FF\",\n orange: \"#FBBA00\",\n red: \"#E52330\",\n};\n\nconst palette = createTheme({\n palette: {\n primary: {\n main: colors.blue,\n contrastText: colors.white,\n black: colors.black,\n white: colors.white,\n },\n secondary: {\n main: colors.whiteBlue,\n orange: colors.orange,\n red: colors.red,\n },\n },\n});\n\nconst breakpoints = createTheme({});\n\nexport const mainTheme = createTheme(palette, {\n typography: {\n h2: {\n color: palette.palette.primary.contrastText,\n fontFamily: \"Inter\",\n fontWeight: 900,\n fontSize: 28,\n lineHeight: \"120%\",\n [breakpoints.breakpoints.up(\"md\")]: {\n fontSize: 48,\n },\n [breakpoints.breakpoints.up(\"lg\")]: {\n fontSize: 56,\n },\n },\n h5: {\n color: palette.palette.primary.contrastText,\n fontFamily: \"Inter\",\n fontWeight: 900,\n fontSize: 16,\n lineHeight: \"120%\",\n [breakpoints.breakpoints.up(\"sm\")]: {\n fontSize: 18,\n },\n [breakpoints.breakpoints.up(\"lg\")]: {\n fontSize: 24,\n },\n },\n h3: {\n color: palette.palette.primary.main,\n fontFamily: \"Inter\",\n fontWeight: 900,\n fontSize: 28,\n lineHeight: \"120%\",\n [breakpoints.breakpoints.up(\"md\")]: {\n fontSize: 48,\n },\n [breakpoints.breakpoints.up(\"lg\")]: {\n fontSize: 56,\n },\n },\n h4: {\n color: palette.palette.primary.main,\n fontFamily: \"Inter\",\n fontWeight: 900,\n fontSize: 20,\n lineHeight: \"120%\",\n [breakpoints.breakpoints.up(\"md\")]: {\n fontSize: 24,\n },\n [breakpoints.breakpoints.up(\"lg\")]: {\n fontSize: 32,\n },\n [breakpoints.breakpoints.up(\"xl\")]: {\n fontSize: 42,\n },\n },\n body1: {\n textTransform: \"none\",\n color: palette.palette.primary.contrastText,\n fontFamily: \"Inter\",\n fontWeight: 400,\n fontSize: 14,\n lineHeight: \"120%\",\n [breakpoints.breakpoints.up(\"md\")]: {\n fontSize: 16,\n },\n [breakpoints.breakpoints.up(\"xl\")]: {\n fontSize: 16,\n },\n },\n subtitle1: {\n color: palette.palette.primary.contrastText,\n fontFamily: \"Inter\",\n fontWeight: 500,\n fontSize: 18,\n lineHeight: \"120%\",\n [breakpoints.breakpoints.up(\"md\")]: {\n fontWeight: 400,\n fontSize: 18,\n },\n },\n caption: {\n textTransform: \"none\",\n color: palette.palette.primary.contrastText,\n display: \"inline-block\",\n fontFamily: \"Inter\",\n fontWeight: 300,\n fontSize: 10,\n lineHeight: \"120%\",\n [breakpoints.breakpoints.up(\"md\")]: {\n fontSize: 14,\n },\n [breakpoints.breakpoints.up(\"lg\")]: {\n fontSize: 14,\n },\n },\n },\n components: {\n MuiPickersCalendarHeader: {\n styleOverrides: {\n labelContainer: {\n color: palette.palette.primary.main,\n },\n },\n },\n MuiPickersYear: {\n styleOverrides: {\n yearButton: {\n color: palette.palette.primary.main,\n },\n },\n },\n MuiButton: {\n styleOverrides: {\n root: {\n padding: \"7px 15px\",\n },\n },\n variants: [\n {\n props: {\n variant: \"contained\",\n },\n style: {\n borderRadius: \"30px\",\n\n textTransform: \"none\",\n boxShadow: \"none\",\n minWidth: 0,\n },\n },\n {\n props: {\n variant: \"outlined\",\n },\n style: {\n borderColor: palette.palette.primary.contrastText,\n borderWidth: 1.5,\n borderRadius: \"30px\",\n\n textTransform: \"none\",\n boxShadow: \"none\",\n minWidth: 0,\n transition: \"background-color 0.2s ease-in-out\",\n \"&:hover\": {\n borderColor: palette.palette.primary.contrastText,\n backgroundColor: \"rgb(35 55 86 / 47%)\",\n },\n },\n },\n ],\n },\n MuiOutlinedInput: {\n styleOverrides: {\n root: {\n borderRadius: \"25px\",\n },\n input: {\n padding: \"10px 18px\",\n },\n },\n },\n MuiInputLabel: {\n styleOverrides: {\n filled: {\n color: palette.palette.primary.main,\n },\n },\n },\n MuiFilledInput: {\n styleOverrides: {\n root: {\n borderRadius: \"15px\",\n overflow: \"hidden\",\n },\n input: {\n backgroundColor: palette.palette.secondary.main,\n color: palette.palette.primary.main,\n },\n underline: {\n \"&:after\": {\n display: \"none\",\n },\n \"&:before\": {\n display: \"none\",\n },\n },\n },\n },\n MuiLink: {\n styleOverrides: {\n root: {\n textDecoration: \"none\",\n cursor: \"pointer\",\n },\n },\n },\n MuiSelect: {\n styleOverrides: {\n select: {\n minHeight: 0,\n },\n },\n },\n MuiSvgIcon: {\n styleOverrides: {\n root: {\n fill: palette.palette.primary.main,\n },\n },\n },\n MuiContainer: {\n styleOverrides: {\n root: {\n flexGrow: 2,\n padding: \"0 20px\",\n [breakpoints.breakpoints.up(\"md\")]: {\n padding: \"0 40px\",\n },\n [breakpoints.breakpoints.up(\"xl\")]: {\n padding: \"0 40px\",\n maxWidth: `${breakpoints.breakpoints.values.xl}px !important`,\n },\n },\n },\n },\n },\n});\n","import React, { createContext, useState } from \"react\";\n\nexport const ModalContext = createContext({\n isModalActive: () => {\n return false;\n },\n setModalActive: () => {},\n setModalInactive: () => {},\n});\n\nexport const ModalContextProvider = ({ children }) => {\n const [activeModals, setActiveModals] = useState([]);\n\n const isModalActive = (modalId) => {\n return activeModals.includes(modalId);\n };\n\n const setModalActive = (modalId) => {\n setActiveModals([...activeModals.filter((id) => id !== modalId), modalId]);\n };\n\n const setModalInactive = (modalId) => {\n setActiveModals(activeModals.filter((id) => id !== modalId));\n };\n\n return (\n \n {children}\n \n );\n};\n","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/**\n * @license React\n * react-server-dom-webpack.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var k=require(\"react\"),l={stream:!0},n=new Map,p=Symbol.for(\"react.element\"),q=Symbol.for(\"react.lazy\"),r=Symbol.for(\"react.default_value\"),t=k.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ContextRegistry;function u(a){t[a]||(t[a]=k.createServerContext(a,r));return t[a]}function v(a,b,c){this._status=a;this._value=b;this._response=c}v.prototype.then=function(a){0===this._status?(null===this._value&&(this._value=[]),this._value.push(a)):a()};\nfunction w(a){switch(a._status){case 3:return a._value;case 1:var b=JSON.parse(a._value,a._response._fromJSON);a._status=3;return a._value=b;case 2:b=a._value;for(var c=b.chunks,d=0;d (\n * \n * {state => (\n * \n * I'm a fade Transition!\n *
\n * )}\n * \n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n * \n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n if (this.props.unmountOnExit || this.props.mountOnEnter) {\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this); // https://github.com/reactjs/react-transition-group/pull/749\n // With unmountOnExit or mountOnEnter, the enter animation should happen at the transition between `exited` and `entering`.\n // To make the animation happen, we have to separate each rendering and avoid being processed as batched.\n\n if (node) forceReflow(node);\n }\n\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [ReactDOM.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || config.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : ReactDOM.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || config.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : ReactDOM.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n React.createElement(TransitionGroupContext.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : React.cloneElement(React.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(React.Component);\n\nTransition.contextType = TransitionGroupContext;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: PropTypes.shape({\n current: typeof Element === 'undefined' ? PropTypes.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return PropTypes.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nexport default Transition;","import { Children, cloneElement, isValidElement } from 'react';\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\n\nexport function getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && isValidElement(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\nexport function mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nexport function getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\nexport function getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!isValidElement(child)) return;\n var hasPrev = (key in prevChildMapping);\n var hasNext = (key in nextChildMapping);\n var prevChild = prevChildMapping[key];\n var isLeaving = isValidElement(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = cloneElement(child, {\n in: false\n });\n } else if (hasNext && hasPrev && isValidElement(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = cloneElement(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport TransitionGroupContext from './TransitionGroupContext';\nimport { getChildMapping, getInitialChildMapping, getNextChildMapping } from './utils/ChildMapping';\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n};\n/**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\nvar TransitionGroup = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_this)); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n contextValue: {\n isMounting: true\n },\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true;\n this.setState({\n contextValue: {\n isMounting: false\n }\n });\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? getInitialChildMapping(nextProps, handleExited) : getNextChildMapping(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n } // node is `undefined` when user provided `nodeRef` prop\n ;\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = getChildMapping(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var contextValue = this.state.contextValue;\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, children);\n }\n\n return /*#__PURE__*/React.createElement(TransitionGroupContext.Provider, {\n value: contextValue\n }, /*#__PURE__*/React.createElement(Component, props, children));\n };\n\n return TransitionGroup;\n}(React.Component);\n\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: PropTypes.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: PropTypes.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: PropTypes.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\nexport default TransitionGroup;","import React from 'react';\nexport default React.createContext(null);","export var forceReflow = function forceReflow(node) {\n return node.scrollTop;\n};","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _extends() {\n module.exports = _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\nmodule.exports = _inheritsLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nconst PartytownSnippet = \"/* Partytown 0.7.6 - MIT builder.io */\\n!function(t,e,n,i,r,o,a,d,s,c,p,l){function u(){l||(l=1,\\\"/\\\"==(a=(o.lib||\\\"/~partytown/\\\")+(o.debug?\\\"debug/\\\":\\\"\\\"))[0]&&(s=e.querySelectorAll('script[type=\\\"text/partytown\\\"]'),i!=t?i.dispatchEvent(new CustomEvent(\\\"pt1\\\",{detail:t})):(d=setTimeout(f,1e4),e.addEventListener(\\\"pt0\\\",w),r?h(1):n.serviceWorker?n.serviceWorker.register(a+(o.swPath||\\\"partytown-sw.js\\\"),{scope:a}).then((function(t){t.active?h():t.installing&&t.installing.addEventListener(\\\"statechange\\\",(function(t){\\\"activated\\\"==t.target.state&&h()}))}),console.error):f())))}function h(t){c=e.createElement(t?\\\"script\\\":\\\"iframe\\\"),t||(c.setAttribute(\\\"style\\\",\\\"display:block;width:0;height:0;border:0;visibility:hidden\\\"),c.setAttribute(\\\"aria-hidden\\\",!0)),c.src=a+\\\"partytown-\\\"+(t?\\\"atomics.js?v=0.7.6\\\":\\\"sandbox-sw.html?\\\"+Date.now()),e.body.appendChild(c)}function f(n,r){for(w(),i==t&&(o.forward||[]).map((function(e){delete t[e.split(\\\".\\\")[0]]})),n=0;n {\n const { forward = [], ...filteredConfig } = config || {};\n const configStr = JSON.stringify(filteredConfig, (k, v) => {\n if (typeof v === 'function') {\n v = String(v);\n if (v.startsWith(k + '(')) {\n v = 'function ' + v;\n }\n }\n return v;\n });\n return [\n `!(function(w,p,f,c){`,\n Object.keys(filteredConfig).length > 0\n ? `c=w[p]=Object.assign(w[p]||{},${configStr});`\n : `c=w[p]=w[p]||{};`,\n `c[f]=(c[f]||[])`,\n forward.length > 0 ? `.concat(${JSON.stringify(forward)})` : ``,\n `})(window,'partytown','forward');`,\n snippetCode,\n ].join('');\n};\n\n/**\n * The `type` attribute for Partytown scripts, which does two things:\n *\n * 1. Prevents the `