{"version":3,"sources":["webpack:///./node_modules/gatsby/node_modules/core-js/internals/redefine.js","webpack:///./node_modules/gatsby-link/index.js","webpack:///./node_modules/@react-aria/ssr/dist/module.js","webpack:///./node_modules/gatsby-plugin-matomo/gatsby-browser.js","webpack:///./node_modules/inline-style-prefixer/lib/createPrefixer.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/native-weak-map.js","webpack:///./node_modules/gatsby-react-router-scroll/session-storage.js","webpack:///./node_modules/react-native-web/dist/modules/NativeMethodsMixin/index.js","webpack:///./node_modules/react-native-web/dist/modules/applyNativeMethods/index.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/to-absolute-index.js","webpack:///./node_modules/inline-style-prefixer/lib/utils/addNewValuesOnly.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/to-object.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/engine-user-agent.js","webpack:///./node_modules/@babel/runtime/helpers/interopRequireWildcard.js","webpack:///./node_modules/fbjs/lib/invariant.js","webpack:///./node_modules/intl-messageformat/index.js","webpack:///./node_modules/fbjs/lib/warning.js","webpack:///./.cache/normalize-page-path.js","webpack:///./.cache/find-path.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/has.js","webpack:///./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack:///./node_modules/inline-style-prefixer/lib/plugins/flex.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/create-property-descriptor.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/require-object-coercible.js","webpack:///./node_modules/react-native-web/dist/vendor/react-dom/dangerousStyleValue/index.js","webpack:///./node_modules/react-native-web/dist/vendor/react-dom/setValueForStyles/index.js","webpack:///./node_modules/react-native-web/dist/exports/UIManager/index.js","webpack:///./node_modules/mitt/dist/mitt.es.js","webpack:///./.cache/emitter.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/object-property-is-enumerable.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/copy-constructor-properties.js","webpack:///./node_modules/@babel/runtime/helpers/inherits.js","webpack:///./node_modules/gatsby-react-router-scroll/index.js","webpack:///./node_modules/inline-style-prefixer/lib/plugins/position.js","webpack:///./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/shared.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/indexed-object.js","webpack:///./.cache/react-lifecycles-compat.js","webpack:///./node_modules/@reach/router/es/lib/history.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/engine-v8-version.js","webpack:///./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/create-non-enumerable-property.js","webpack:///./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/document-create-element.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/engine-is-node.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/internal-state.js","webpack:///./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack:///./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/uid.js","webpack:///./node_modules/normalize-css-color/index.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/enum-bug-keys.js","webpack:///./node_modules/@react-aria/i18n/dist/module.js","webpack:///./node_modules/@react-aria/progress/dist/module.js","webpack:///./node_modules/@react-aria/label/dist/module.js","webpack:///./src/components/NowPlaying/components/ProgressBar.tsx","webpack:///./src/components/NowPlaying/components/JumpButton.tsx","webpack:///./src/components/NowPlaying/components/TimeRemaining.tsx","webpack:///./src/components/NowPlaying/components/Artwork.tsx","webpack:///./src/components/NowPlaying/index.tsx","webpack:///./src/components/WebAudioWrap.tsx","webpack:///./gatsby-browser.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/hidden-keys.js","webpack:///./node_modules/inline-style-prefixer/lib/utils/capitalizeString.js","webpack:///./node_modules/howler/dist/howler.js","webpack:///./node_modules/react-native-web/dist/modules/applyLayout/index.js","webpack:///./.cache/page-renderer.js","webpack:///./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack:///./node_modules/react-native-web/dist/exports/StyleSheet/flattenStyle.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/descriptors.js","webpack:///./node_modules/react-native-web/dist/modules/AccessibilityUtil/buttonLikeRoles.js","webpack:///./node_modules/react-native-web/dist/modules/AccessibilityUtil/propsToAriaRole.js","webpack:///./node_modules/react-native-web/dist/modules/AccessibilityUtil/propsToAccessibilityComponent.js","webpack:///./node_modules/react-native-web/dist/modules/AccessibilityUtil/index.js","webpack:///./node_modules/react-native-web/dist/modules/AccessibilityUtil/isDisabled.js","webpack:///./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack:///./node_modules/intl-messageformat/lib/utils.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/fails.js","webpack:///./node_modules/@reach/router/es/lib/utils.js","webpack:///./.cache/api-runner-browser-plugins.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/array-includes.js","webpack:///./node_modules/react-icons/lib/esm/iconsManifest.js","webpack:///./node_modules/react-icons/lib/esm/iconContext.js","webpack:///./node_modules/react-icons/lib/esm/iconBase.js","webpack:///./node_modules/hyphenate-style-name/index.js","webpack:///./node_modules/@mikaelkristiansson/domready/ready.js","webpack:///./node_modules/inline-style-prefixer/lib/plugins/transition.js","webpack:///./.cache/register-service-worker.js","webpack:///./src/components/NowPlaying/components/PlayPauseButton.tsx","webpack:///./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack:///./node_modules/@babel/runtime/helpers/getPrototypeOf.js","webpack:///./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/to-primitive.js","webpack:///./node_modules/react-native-web/dist/modules/getBoundingClientRect/index.js","webpack:///./node_modules/@babel/runtime/helpers/objectWithoutProperties.js","webpack:///./node_modules/invariant/browser.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/object-keys-internal.js","webpack:///./node_modules/intl-messageformat/lib/en.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/array-method-is-strict.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/global.js","webpack:///./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack:///./node_modules/gatsby/node_modules/core-js/modules/es.array.reduce.js","webpack:///./node_modules/css-in-js-utils/lib/hyphenateProperty.js","webpack:///./node_modules/@react-aria/utils/dist/module.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/ie8-dom-define.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/own-keys.js","webpack:///./node_modules/inline-style-prefixer/lib/plugins/gradient.js","webpack:///./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack:///./node_modules/react-native-web/dist/modules/isWebColor/index.js","webpack:///./node_modules/react-native-web/dist/exports/processColor/index.js","webpack:///./node_modules/react-native-web/dist/modules/normalizeColor/index.js","webpack:///./node_modules/react-native-web/dist/exports/StyleSheet/normalizeValueWithProperty.js","webpack:///./node_modules/react-native-web/dist/exports/StyleSheet/resolveShadowValue.js","webpack:///./node_modules/react-native-web/dist/exports/StyleSheet/createCompileableStyle.js","webpack:///./node_modules/react-native-web/dist/exports/StyleSheet/createOrderedCSSStyleSheet.js","webpack:///./node_modules/react-native-web/dist/modules/flattenArray/index.js","webpack:///./node_modules/react-native-web/dist/exports/I18nManager/index.js","webpack:///./node_modules/react-native-web/dist/modules/multiplyStyleLengthValue/index.js","webpack:///./node_modules/react-native-web/dist/exports/StyleSheet/i18nStyle.js","webpack:///./node_modules/react-native-web/dist/exports/StyleSheet/createReactDOMStyle.js","webpack:///./node_modules/react-native-web/dist/vendor/hash/index.js","webpack:///./node_modules/react-native-web/dist/modules/prefixStyles/static.js","webpack:///./node_modules/react-native-web/dist/modules/prefixStyles/index.js","webpack:///./node_modules/react-native-web/dist/exports/StyleSheet/compile.js","webpack:///./node_modules/react-native-web/dist/exports/StyleSheet/initialRules.js","webpack:///./node_modules/react-native-web/dist/exports/StyleSheet/modality.js","webpack:///./node_modules/react-native-web/dist/exports/StyleSheet/createStyleResolver.js","webpack:///./node_modules/react-native-web/dist/exports/StyleSheet/styleResolver.js","webpack:///./node_modules/react-native-web/dist/exports/StyleSheet/createCSSStyleSheet.js","webpack:///./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack:///./.cache/route-announcer-props.js","webpack:///./.cache/navigation.js","webpack:///./node_modules/shallow-compare/es/index.js","webpack:///./.cache/ensure-resources.js","webpack:///./.cache/production-app.js","webpack:///./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack:///./node_modules/inline-style-prefixer/lib/plugins/crossFade.js","webpack:///./node_modules/@react-aria/interactions/dist/module.js","webpack:///./node_modules/inline-style-prefixer/lib/utils/isObject.js","webpack:///./node_modules/@babel/runtime/helpers/createClass.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/to-length.js","webpack:///./.cache/gatsby-browser-entry.js","webpack:///./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack:///./node_modules/intl-messageformat/lib/compiler.js","webpack:///./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js","webpack:///./node_modules/@reach/router/es/index.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/is-forced.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/export.js","webpack:///./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack:///./node_modules/inline-style-prefixer/lib/plugins/sizing.js","webpack:///./node_modules/intl-messageformat-parser/index.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/to-indexed-object.js","webpack:///./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","webpack:///./node_modules/intl-messageformat/lib/es5.js","webpack:///./node_modules/inline-style-prefixer/lib/plugins/filter.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/classof-raw.js","webpack:///./node_modules/inline-style-prefixer/lib/utils/prefixProperty.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./.cache/strip-prefix.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/is-object.js","webpack:///./node_modules/react-native-web/dist/exports/StyleSheet/StyleSheet.js","webpack:///./node_modules/react-native-web/dist/exports/StyleSheet/index.js","webpack:///./node_modules/gatsby-link/parse-path.js","webpack:///./node_modules/gatsby-plugin-offline/gatsby-browser.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/react-native-web/dist/modules/createDOMProps/index.js","webpack:///./.cache/prefetch.js","webpack:///./.cache/loader.js","webpack:///./node_modules/intl-messageformat/lib/core.js","webpack:///./node_modules/gatsby-plugin-react-native-web/gatsby-browser.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/to-integer.js","webpack:///./node_modules/@react-aria/focus/dist/module.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/path.js","webpack:///./node_modules/gatsby-react-router-scroll/scroll-container.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/set-global.js","webpack:///./node_modules/@babel/runtime/helpers/get.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/shared-store.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/object-get-own-property-symbols.js","webpack:///./node_modules/clsx/dist/clsx.m.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/get-built-in.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/object-define-property.js","webpack:///./node_modules/react-native-web/dist/exports/View/filterSupportedProps.js","webpack:///./node_modules/react-native-web/dist/exports/View/index.js","webpack:///./node_modules/inline-style-prefixer/lib/plugins/cursor.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/inspect-source.js","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/is-pure.js","webpack:///./node_modules/intl-messageformat/lib/main.js","webpack:///./.cache/public-page-renderer.js","webpack:///./node_modules/@babel/runtime/helpers/classCallCheck.js","webpack:///./node_modules/react-native-web/dist/exports/StyleSheet/css.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/an-object.js","webpack:///./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack:///./node_modules/@babel/runtime/helpers/superPropBase.js","webpack:///./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack:///./.cache/create-react-context.js","webpack:///./node_modules/intl-messageformat-parser/lib/parser.js","webpack:///./node_modules/fbjs/lib/emptyFunction.js","webpack:///./node_modules/react-native-web/dist/modules/normalizeNativeEvent/index.js","webpack:///./node_modules/react-native-web/dist/modules/ResponderEventPlugin/index.js","webpack:///./node_modules/react-native-web/dist/exports/createElement/index.js","webpack:///./node_modules/react-native-web/dist/modules/unitlessNumbers/index.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/array-reduce.js","webpack:///./node_modules/@babel/runtime/helpers/extends.js","webpack:///./node_modules/inline-style-prefixer/lib/plugins/flexboxOld.js","webpack:///./node_modules/react-native-web/dist/modules/ReactNativePropRegistry/index.js","webpack:///./.cache/public-page-renderer-prod.js","webpack:///./node_modules/debounce/index.js","webpack:///./node_modules/css-in-js-utils/lib/isPrefixedValue.js","webpack:///./node_modules/inline-style-prefixer/lib/plugins/imageSet.js","webpack:///./node_modules/react-native-web/dist/exports/findNodeHandle/index.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/shared-key.js","webpack:///./node_modules/inline-style-prefixer/lib/plugins/backgroundClip.js","webpack:///./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/a-function.js","webpack:///./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack:///./node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./node_modules/fbjs/lib/ExecutionEnvironment.js","webpack:///./.cache/api-runner-browser.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/array-method-uses-to-length.js","webpack:///./node_modules/react-native-web/dist/exports/StyleSheet/constants.js","webpack:///./node_modules/react-native-web/dist/exports/unmountComponentAtNode/index.js","webpack:///./node_modules/react-native-web/dist/exports/AppRegistry/AppContainer.js","webpack:///./node_modules/react-native-web/dist/modules/hydrate/index.js","webpack:///./node_modules/react-native-web/dist/exports/AppRegistry/renderApplication.js","webpack:///./node_modules/react-native-web/dist/exports/AppRegistry/index.js","webpack:///./node_modules/inline-style-prefixer/lib/plugins/flexboxIE.js","webpack:///./node_modules/inline-style-prefixer/lib/utils/prefixValue.js","webpack:///./node_modules/@react-aria/button/dist/module.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack:///./node_modules/gatsby/node_modules/core-js/internals/object-get-own-property-names.js"],"names":["global","createNonEnumerableProperty","has","setGlobal","inspectSource","InternalStateModule","getInternalState","get","enforceInternalState","enforce","TEMPLATE","String","split","module","exports","O","key","value","options","state","unsafe","simple","enumerable","noTargetGet","source","join","Function","prototype","this","_interopRequireDefault","__esModule","withPrefix","withAssetPrefix","path","getGlobalPathPrefix","navigateTo","replace","push","navigate","default","_objectWithoutPropertiesLoose2","_assertThisInitialized2","_inheritsLoose2","_extends2","_propTypes","_react","_router","_utils","_parsePath","parsePath","isAbsolutePath","startsWith","prefix","_ref","_prefix","getGlobalBasePrefix","isLocalLink","base","endsWith","slice","rewriteLinkPath","relativeTo","current","resolve","absolutify","NavLinkPropTypes","activeClassName","string","activeStyle","object","partiallyActive","bool","GatsbyLinkLocationWrapper","props","createElement","Location","_ref2","location","GatsbyLink","_location","_React$Component","_this","call","defaultGetProps","_ref3","isPartiallyCurrent","isCurrent","className","filter","Boolean","style","IOSupported","window","IntersectionObserver","handleRef","bind","_proto","_prefetch","currentPath","pathname","rewrittenPath","to","newPathName","___loader","enqueue","componentDidUpdate","prevProps","prevState","componentDidMount","componentWillUnmount","io","_this$io","instance","el","unobserve","disconnect","ref","cb","_this2","innerRef","hasOwnProperty","entries","forEach","entry","target","isIntersecting","intersectionRatio","observe","render","_this3","_this$props","_this$props$getProps","getProps","_onClick","onClick","_onMouseEnter","onMouseEnter","rest","prefixedTo","Link","e","hovering","button","defaultPrevented","metaKey","altKey","ctrlKey","shiftKey","preventDefault","shouldReplace","encodeURI","___navigate","href","Component","propTypes","func","isRequired","showDeprecationWarning","functionName","altFunctionName","version","console","warn","_default","forwardRef","___push","___replace","$f01a183cc7bdff77849e49ad26eb904$var$defaultContext","Math","round","random","$f01a183cc7bdff77849e49ad26eb904$var$SSRContext","createContext","$f01a183cc7bdff77849e49ad26eb904$var$canUseDOM","document","useSSRSafeId","defaultId","ctx","useIsSSR","isInSSRContext","_useState","_useState2","isSSR","setIsSSR","onRouteUpdate","first","pluginOptions","prevLocation","_paq","start","difference","_window","dev","url","search","hash","prevUrl","_pluginOptions$trackL","trackLoad","delay","max","setTimeout","title","debug","Date","getTime","Object","defineProperty","prefixMap","plugins","property","_isObject2","Array","isArray","combinedValue","i","len","length","processedValue","_prefixValue2","_addNewValuesOnly2","_processedValue","_prefixProperty2","obj","WeakMap","test","SessionStorage","read","stateKey","getStateKey","sessionStorage","getItem","JSON","parse","save","storedValue","stringify","setItem","stateKeyBase","blur","UIManager","findNodeHandle","focus","measure","callback","measureInWindow","measureLayout","relativeToNativeNode","onSuccess","onFail","setNativeProps","nativeProps","node","domProps","createDOMProps","styleResolver","resolveWithNode","updateView","keys","method","toInteger","min","index","integer","addIfNew","list","indexOf","values","requireObjectCoercible","argument","getBuiltIn","_typeof","_getRequireWildcardCache","cache","newObj","hasPropertyDescriptor","getOwnPropertyDescriptor","desc","set","validateFormat","format","undefined","Error","condition","_len","arguments","args","_key","error","argIndex","name","framesToPop","IntlMessageFormat","warning","pathCache","matchPaths","trimPathname","rawPathname","decodeURIComponent","stripPrefix","setMatchPaths","findMatchPath","trimmedPathname","cleanPath","pickPaths","matchPath","originalPath","pick","normalizePagePath","grabMatchParams","findPath","foundPath","it","useScrollRestoration","identifier","useLocation","useContext","_scrollHandler","ScrollContext","useRef","useLayoutEffect","position","scrollTo","onScroll","scrollTop","flex","bitmap","configurable","writable","TypeError","isCustomProperty","trim","styles","getStack","styleName","styleValue","setProperty","_getBoundingClientRec","getBoundingClientRect","x","y","top","left","width","offsetWidth","height","offsetHeight","_measureLayout","relativeNode","parentNode","relativeRect","_getRect","focusableElements","A","INPUT","SELECT","TEXTAREA","err","nodeName","getAttribute","setAttribute","_getRect2","component","prop","_reactInternalInstance","configureNextLayoutAnimation","config","onAnimationDidEnd","setLayoutAnimationEnabledExperimental","emitter","all","create","on","type","handler","off","splice","emit","evt","map","mitt","nativePropertyIsEnumerable","propertyIsEnumerable","NASHORN_BUG","1","f","V","descriptor","ownKeys","getOwnPropertyDescriptorModule","definePropertyModule","setPrototypeOf","subClass","superClass","constructor","ScrollContainer","ScrollHandler","_scrollContainer","_useScrollRestoration","excluded","sourceKeys","IS_PURE","store","mode","copyright","fails","classof","_extends","assign","getLocation","_source$location","origin","protocol","host","hostname","port","canUseDOM","URL","decodeURI","history","createHistory","listeners","transitioning","resolveTransition","_onTransitionComplete","listen","listener","popstateListener","action","addEventListener","removeEventListener","fn","_ref$replace","go","now","replaceState","pushState","transition","Promise","res","createMemorySource","initialPath","searchIndex","initialLocation","substr","stack","states","_","uri","_uri$split","_uri$split$","_uri$split2","_uri$split2$","newIndex","globalHistory","match","userAgent","process","versions","v8","localizedManifests","localizedManifest","find","app","start_url","lang","DESCRIPTORS","createPropertyDescriptor","isObject","EXISTS","NATIVE_WEAK_MAP","objectHas","shared","sharedKey","hiddenKeys","wmget","wmhas","wmset","metadata","facade","STATE","getterFor","TYPE","iter","Symbol","iterator","from","_interopRequireWildcard","React","_sessionStorage","displayName","apply","concat","_stateStorage","scrollListener","scrollY","windowScroll","shouldUpdateScroll","scrollToHash","getElementById","substring","scrollIntoView","prevRouterProps","routerProps","scrollPosition","_this$props$location","_this$props$location2","Provider","children","element","id","postfix","toString","normalizeColor","color","matchers","hex6","exec","parseInt","names","rgb","parse255","rgba","parse1","hex3","hex8","hex4","hsl","hslToRgb","parse360","parsePercentage","hsla","hue2rgb","p","q","t","h","s","l","r","g","b","NUMBER","toArray","arrayLike","RegExp","str","int","parseFloat","num","transparent","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","burntsienna","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","wheat","white","whitesmoke","yellow","yellowgreen","colorInt","a","_createForOfIteratorHelperLoose","o","allowArrayLike","minLen","_arrayLikeToArray","n","_unsupportedIterableToArray","done","next","arr","arr2","$d26e725ad56fbcb2c25f52b7de27$var$RTL_SCRIPTS","Set","$d26e725ad56fbcb2c25f52b7de27$var$RTL_LANGS","$d26e725ad56fbcb2c25f52b7de27$export$isRTL","locale","Intl","Locale","script","maximize","$e851d0b81d46abd5f971c8e95c27f1$export$getDefaultLocale","navigator","language","userLanguage","direction","$e851d0b81d46abd5f971c8e95c27f1$var$currentLocale","$e851d0b81d46abd5f971c8e95c27f1$var$listeners","$e851d0b81d46abd5f971c8e95c27f1$var$updateLocale","_step","_iterator","$e851d0b81d46abd5f971c8e95c27f1$export$useDefaultLocale","defaultLocale","setDefaultLocale","size","add","delete","$cff8541df3b5c83067b2ab3ee0d20$var$I18nContext","useLocale","Map","$ece3e138e83d330f42860705a2ec18a$var$formatterCache","$ece3e138e83d330f42860705a2ec18a$var$supportsSignDisplay","NumberFormat","signDisplay","resolvedOptions","useNumberFormatter","cacheKey","sort","numberFormatter","Proxy","v","numberFormat","abs","needsPositiveSign","is","negative","noSign","minus","$d26e725ad56fbcb2c25f52b7de27$export$numberFormatSignDisplayPolyfill","useProgressBar","_props$value","_props$minValue","minValue","_props$maxValue","maxValue","valueLabel","isIndeterminate","_props$formatOptions","formatOptions","labelable","_useLabel","label","ariaLabelledby","ariaLabel","_props$labelElementTy","labelElementType","labelId","labelProps","htmlFor","fieldProps","useLabel","percentage","formatter","valueToFormat","progressBarProps","role","ProgressBar","handleSeek","step","onChange","JumpButton","useButton","buttonProps","isPressed","Icon","useFocusRing","isFocusVisible","focusProps","appearance","background","border","cursor","padding","margin","verticalAlign","outline","TimeRemaining","seconds","formatRemainingTime","image","backgroundImage","backgroundSize","maxHeight","maxWidth","useState","audio","setAudio","playState","setPlayState","progress","setProgress","setTitle","artwork","setArtwork","setRate","showSkipBack","showSkipForward","showArtwork","showProgressBar","showTitle","hideWhenInactive","useEffect","cleanUp","howl","loadEpisode","event","src","html5","tick","Number","progressInterval","isPlaying","handlePlay","useCallback","handleSkipBack","jumpTo","handleSkipForward","durationSeconds","hidePlayer","onPress","wrapRootElement","propertyIsEnumerableModule","toIndexedObject","toPrimitive","IE8_DOM_DEFINE","nativeGetOwnPropertyDescriptor","P","charAt","toUpperCase","HowlerGlobal","init","self","Howler","_counter","_html5AudioPool","html5PoolSize","_codecs","_howls","_muted","_volume","_canPlayEvent","_navigator","masterGain","noAudio","usingWebAudio","autoSuspend","autoUnlock","_setup","volume","vol","setupAudioContext","gain","setValueAtTime","currentTime","_webAudio","ids","_getSoundIds","j","sound","_soundById","_node","mute","muted","stop","unload","close","codecs","ext","_autoSuspend","Audio","oncanplaythrough","_setupCodecs","audioTest","canPlayType","mpegTest","checkOpera","isOldOpera","mp3","mpeg","opus","ogg","oga","wav","aac","caf","m4a","m4b","mp4","weba","webm","dolby","flac","_unlockAudio","_audioUnlocked","_mobileUnloaded","sampleRate","_scratchBuffer","createBuffer","unlock","audioNode","_unlocked","_releaseHtml5Audio","load","_autoResume","createBufferSource","buffer","connect","destination","noteOn","resume","onended","_emit","_obtainHtml5Audio","pop","testPlay","play","then","catch","suspend","_sounds","_paused","_suspendTimer","clearTimeout","handleSuspension","_resumeAfterSuspend","Howl","_autoplay","autoplay","_format","_html5","_loop","loop","_pool","pool","_preload","preload","_rate","rate","_sprite","sprite","_src","_xhr","xhr","headers","withCredentials","_duration","_state","_endTimers","_queue","_playLock","_onend","onend","_onfade","onfade","_onload","onload","_onloaderror","onloaderror","_onplayerror","onplayerror","_onpause","onpause","_onplay","onplay","_onstop","onstop","_onmute","onmute","_onvolume","onvolume","_onrate","onrate","_onseek","onseek","_onunlock","onunlock","_onresume","toLowerCase","Sound","loadBuffer","internal","_ended","_id","_inactiveSound","soundId","_loadQueue","seek","_seek","duration","timeout","setParams","_start","_stop","playWebAudio","_refreshBuffer","_playStart","bufferSource","noteGrainOn","Infinity","once","_clearTimer","playHtml5","playbackRate","paused","loadedNoReadyState","ejecta","readyState","isCocoonJS","pause","_rateSeek","_stopFade","noteOff","_cleanBuffer","isNaN","_clearSound","_interval","fade","end","linearRampToValueAtTime","_startFadeInterval","isGroup","diff","steps","stepLen","lastTick","_fadeTo","setInterval","clearInterval","cancelScheduledValues","loopStart","loopEnd","playing","realTime","rateSeek","seekAndEmit","emitSeek","sounds","_errorFn","_loadFn","_endFn","remCache","events","isId","msg","task","shift","ended","_drain","reset","limit","cnt","_panner","isIOS","vendor","_parent","parent","createGain","createGainNode","_errorListener","_loadListener","_endListener","code","ceil","__default","loadSound","data","atob","dataView","Uint8Array","charCodeAt","decodeAudioData","XMLHttpRequest","open","responseType","setRequestHeader","status","response","onerror","safeXhrSend","send","arraybuffer","success","AudioContext","webkitAudioContext","iOS","platform","appVersion","safari","_super","_pos","_orientation","stereo","pan","pos","z","positionX","setTargetAtTime","positionY","positionZ","setPosition","orientation","xUp","yUp","zUp","or","forwardX","forwardY","forwardZ","upX","upY","upZ","setOrientation","_stereo","_pannerAttr","coneInnerAngle","coneOuterAngle","coneOuterGain","distanceModel","maxDistance","panningModel","refDistance","rolloffFactor","_onstereo","onstereo","_onpos","onpos","_onorientation","onorientation","pannerType","createStereoPanner","setupPanner","orientationX","orientationY","orientationZ","pannerAttr","_coneInnerAngle","_coneOuterAngle","_coneOuterGain","_distanceModel","_maxDistance","_refDistance","_rolloffFactor","_panningModel","pa","panner","createPanner","resizeObserver","emptyObject","registry","guid","ResizeObserver","_layoutId","_handleLayout","safeOverride","original","_layoutState","_isMounted","onLayout","layout","nativeEvent","timeStamp","PageRenderer","params","pageResources","json","pageContext","pathContext","apiRunner","loader","pageElement","page","result","PropTypes","arrayLikeToArray","flattenStyle","getByID","getStyle","styleLength","computedStyle","accessibilityComponentTypeToRole","none","accessibilityTraitsToRole","adjustable","header","link","summary","accessibilityRoleToWebRole","imagebutton","keyboardkey","text","accessibilityComponentType","accessibilityRole","accessibilityTraits","inferredRole","trait","roleComponents","article","banner","complementary","contentinfo","form","listitem","main","navigation","region","AccessibilityUtil","buttonLikeRoles","menuitem","isDisabled","disabled","accessibilityStates","propsToAccessibilityComponent","propsToAriaRole","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","extend","sources","hop","routes","default_","uriPathname","uriSegments","segmentize","isRootUri","ranked","rankRoutes","missed","route","routeSegments","routeSegment","uriSegment","isSplat","dynamicMatch","paramRe","reservedNames","_to$split","toPathname","toQuery","basePathname","toSegments","baseSegments","addQuery","allSegments","segments","segment","insertParams","_path$split","pathBase","_path$split$","query","constructedPath","_params$location","_params$location$sear","searchSplit","validateRedirect","isDynamic","rankRoute","score","reduce","isRootSegment","SEGMENT_POINTS","shallowCompare","obj1","obj2","obj1Keys","every","plugin","require","toLength","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","fromIndex","includes","DefaultContext","attr","IconContext","__assign","__rest","getOwnPropertySymbols","GenIcon","IconBase","Tree2Element","tree","tag","child","elem","conf","svgProps","computedSize","stroke","fill","strokeWidth","xmlns","Consumer","uppercasePattern","msPattern","toHyphenLower","hName","ie10","fns","doc","hack","documentElement","doScroll","loaded","definition","propertyPrefixMap","properties","outputValue","_isPrefixedValue2","multipleValues","singleValue","dashCaseProperty","_hyphenateProperty2","prefixes","pLen","unshift","prefixMapping","prefixValue","webkitOutput","val","mozOutput","_capitalizeString2","transitionProperty","WebkitTransition","WebkitTransitionProperty","MozTransition","MozTransitionProperty","Webkit","Moz","ms","reg","serviceWorker","installingWorker","PlayPauseButton","userSelect","paddingLeft","paddingRight","lineHeight","fontSize","fontStyle","textTransform","letterSpacing","_getPrototypeOf","getPrototypeOf","__proto__","ReferenceError","input","PREFERRED_STRING","valueOf","nodeType","objectWithoutPropertiesLoose","sourceSymbolKeys","c","d","ord","v0","t0","n10","n100","METHOD_NAME","check","globalThis","arrayWithoutHoles","iterableToArray","nonIterableSpread","$","$reduce","arrayMethodIsStrict","arrayMethodUsesToLength","CHROME_VERSION","IS_NODE","STRICT_METHOD","USES_TO_LENGTH","proto","forced","callbackfn","_hyphenateStyleName2","_hyphenateStyleName","$f8b5fdd96fb429d7102983f777c41307$var$map","useId","isRendering","setValue","nextId","updateValue","newId","mergeIds","setA","setB","chain","callbacks","mergeProps","_i","_args","UNSAFE_className","_key2","$f6a965352cabf1a7c37e8c1337e5eab$var$DOMPropNames","$f6a965352cabf1a7c37e8c1337e5eab$var$labelablePropNames","$f6a965352cabf1a7c37e8c1337e5eab$var$propRe","filterDOMProps","opts","_opts","propNames","filteredProps","focusWithoutScrolling","$bc7c9c3af78f5218ff72cecce15730$var$supportsPreventScrollCached","$bc7c9c3af78f5218ff72cecce15730$var$supportsPreventScroll","preventScroll","scrollableElements","rootScrollingElement","scrollingElement","HTMLElement","scrollHeight","scrollWidth","scrollLeft","$bc7c9c3af78f5218ff72cecce15730$var$getScrollableElements","_step2","_iterator2","$bc7c9c3af78f5218ff72cecce15730$var$restoreScrollPosition","clamp","$b3e8d5c5f32fa26afa6df1b81f09b6b8$var$transitionsByElement","$b3e8d5c5f32fa26afa6df1b81f09b6b8$var$transitionCallbacks","$b3e8d5c5f32fa26afa6df1b81f09b6b8$var$setupGlobalEvents","onTransitionEnd","propertyName","_step3","_iterator3","clear","body","transitions","runAfterTransition","requestAnimationFrame","useGlobalListeners","globalListeners","addGlobalListener","eventTarget","removeGlobalListener","useLabels","defaultLabel","labelledBy","visualViewport","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","anObject","grad","_isPrefixedValue","_setPrototypeOf","int32Color","opacity","toFixed","colorProps","backgroundColor","borderColor","borderTopColor","borderRightColor","borderBottomColor","borderLeftColor","shadowColor","textDecorationColor","textShadowColor","normalizeValueWithProperty","returnValue","unitlessNumbers","defaultOffset","shadowOffset","shadowOpacity","shadowRadius","offsetX","offsetY","blurRadius","resolvedStyle","boxShadow","shadow","textShadowOffset","textShadowRadius","nextStyles","_objectWithoutPropertiesLoose","radius","textShadow","textShadowReducer","createOrderedCSSStyleSheet","sheet","group","groups","selectors","cssRules","cssRule","cssText","selectorText","decodeGroupRule","rules","getSelectorText","sheetInsert","orderedGroups","getOrderedGroups","nextGroupIndex","nextGroup","isInserted","root","insertRule","insertRuleAt","groupNumber","previousStart","getTextContent","insert","groupValue","markerRule","encodeGroupRule","pattern","selector","array","flattenDown","isPreferredLanguageRTL","isRTLAllowed","isRTLForced","allowRTL","forceRTL","setPreferredLanguageRTL","swapLeftAndRightInRTL","CSS_UNIT_RE","multiple","isFinite","PROPERTIES_FLIP","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","borderLeftStyle","borderLeftWidth","borderRightStyle","borderRightWidth","marginLeft","marginRight","right","PROPERTIES_I18N","borderTopStartRadius","borderTopEndRadius","borderBottomStartRadius","borderBottomEndRadius","borderStartColor","borderStartStyle","borderStartWidth","borderEndColor","borderEndStyle","borderEndWidth","marginStart","marginEnd","paddingStart","paddingEnd","PROPERTIES_VALUE","float","textAlign","originalStyle","doLeftAndRightSwapInRTL","isRTL","frozenProps","nextStyle","originalProp","originalValue","convertedProp","convertedValue","supportsCSS3TextDecoration","CSS","supports","transform","backgroundClip","WebkitBackgroundClip","flexGrow","flexShrink","flexBasis","fontVariant","textDecorationLine","textDecoration","transformMatrix","resolveTransform","longFormProperties","longForm","seed","k","murmurhash2_32_gc","w","m","wm","wms","wmms","animation","animationDelay","animationDirection","animationFillMode","animationDuration","animationIterationCount","animationName","animationPlayState","animationTimingFunction","textEmphasisPosition","textEmphasis","textEmphasisStyle","textEmphasisColor","boxDecorationBreak","clipPath","maskImage","maskMode","maskRepeat","maskPosition","maskClip","maskOrigin","maskSize","maskComposite","mask","maskBorderSource","maskBorderMode","maskBorderSlice","maskBorderWidth","maskBorderOutset","maskBorderRepeat","maskBorder","maskType","textDecorationStyle","textDecorationSkip","fontFeatureSettings","breakAfter","breakBefore","breakInside","columnCount","columnFill","columnGap","columnRule","columnRuleColor","columnRuleStyle","columnRuleWidth","columns","columnSpan","columnWidth","writingMode","flexDirection","flexFlow","flexWrap","alignContent","alignItems","alignSelf","justifyContent","order","transformOrigin","transformOriginX","transformOriginY","backfaceVisibility","perspective","perspectiveOrigin","transformStyle","transformOriginZ","backdropFilter","fontKerning","scrollSnapType","scrollSnapPointsX","scrollSnapPointsY","scrollSnapDestination","scrollSnapCoordinate","shapeImageThreshold","shapeImageMargin","shapeImageOutside","hyphens","flowInto","flowFrom","regionFragment","textOrientation","textAlignLast","tabSize","wrapFlow","wrapThrough","wrapMargin","touchAction","gridTemplateColumns","gridTemplateRows","gridTemplateAreas","gridTemplate","gridAutoColumns","gridAutoRows","gridAutoFlow","grid","gridRowStart","gridColumnStart","gridRowEnd","gridRow","gridColumn","gridColumnEnd","gridColumnGap","gridRowGap","gridArea","gridGap","textSizeAdjust","borderImage","borderImageOutset","borderImageRepeat","borderImageSlice","borderImageSource","borderImageWidth","transitionDelay","transitionDuration","transitionTimingFunction","prefixAll","_defineProperty","atomic","acc","valueString","stringifyValueWithProperty","cachedResult","_identifier","createIdentifier","_processKeyframesValu2","processKeyframesValue","animationNames","keyframesRules","block","createDeclarationBlock","_block","_createDeclarationBlo3","finalValue","_createDeclarationBlo","_block3","_createDeclarationBlo2","_block4","_block2","_createDeclarationBlo4","_block5","createAtomicRules","_cachedResult","classic","animationKeyframes","_processKeyframesValu","sym","_objectSpread","inline","prefixedStyles","prefixInlineStyles","normalizedValue","domStyle","prefixStyles","keyframesValue","keyframes","_createKeyframes","stepName","createKeyframes","hadKeyboardEvent","hadFocusVisibleRecently","hadFocusVisibleRecentlyTimeout","inputTypesWhitelist","tel","email","password","number","date","month","week","time","datetime","isValidFocusTarget","activeElement","addFocusVisibleAttribute","onPointerDown","tagName","isReadOnly","readOnly","isContentEditable","hasAttribute","removeFocusVisibleAttribute","visibilityState","addInitialPointerMoveListeners","classList","removeAttribute","querySelectorAll","removeAllFocusVisibleAttributes","onInitialPointerMove","createCacheKey","classListToString","hyphenPattern","getDOMStyleInfo","nodeStyle","item","getPropertyValue","inserted","lookup","resolved","css","ltr","rtl","rtlNoSwap","_element","head","insertBefore","firstChild","createCSSStyleSheet","byClassName","byProp","rule","modality","initialRules","_injectRegisteredStyle","dir","results","_results$key","addToLookup","custom","nextClassList","_resolveStyle","flatArray","isArrayOfNumbers","finalProps","flatStyle","localizedStyle","styleProp","getClassName","_atomic","getStyleSheet","textContent","createCSS","compiled","rnStyleNext","getDeclaration","_getDOMStyleInfo","rdomClassList","rdomStyle","_rdomClassList$reduce","styleProps","_getDeclaration","rnClassList","rnStyle","_resolve","rdomClassListNext","rdomStyleNext","createStyleResolver","RouteAnnouncerProps","overflow","clip","whiteSpace","redirectMap","redirects","redirect","maybeRedirect","onPreRouteUpdate","timeoutId","PageResourceStatus","gatsbyApi","reachNavigate","getSavedScrollPosition","RouteAnnouncer","nextProps","pageName","pageHeadings","newAnnouncement","compareLocationProps","nextLocation","RouteUpdates","shallowDiffers","EnsureResources","rawPath","nextState","loadResources","setLoader","apiRunnerAsync","RouteHandler","baseuri","basepath","DataContext","GatsbyRoot","staticQueryResults","getStaticQueryResults","LocationHandler","pagePath","browserLoc","__BASE_PATH__","publicLoader","SiteRoot","App","renderer","ReactDOM","domReady","$e17c9db826984f8ab8e5d837bf0b8$var$state","$e17c9db826984f8ab8e5d837bf0b8$var$savedUserSelect","$e17c9db826984f8ab8e5d837bf0b8$export$disableTextSelection","webkitUserSelect","$e17c9db826984f8ab8e5d837bf0b8$export$restoreTextSelection","$f67ef9f1b8ed09b4b00fd0840cd8b94b$export$isVirtualClick","mozInputSource","isTrusted","detail","pointerType","$a3ff51240de6f955c79cf17a88e349$export$PressResponderContext","usePress","_usePressResponderCon","context","register","contextProps","$ffc54430b1dbeee65879852feaaff07d$var$usePressResponderContext","onPressChange","onPressStart","onPressEnd","onPressUp","isPressedProp","preventFocusOnPress","setPressed","ignoreEmulatedMouseEvents","ignoreClickAfterPress","activePointerId","isOverTarget","_useGlobalListeners","pressProps","triggerPressStart","originalEvent","currentTarget","triggerPressEnd","wasPressed","triggerPressUp","onKeyDown","$ffc54430b1dbeee65879852feaaff07d$var$isValidKeyboardEvent","stopPropagation","repeat","onKeyUp","$ffc54430b1dbeee65879852feaaff07d$var$createEvent","$ffc54430b1dbeee65879852feaaff07d$var$isHTMLAnchorLink","click","PointerEvent","pointerId","onPointerMove","onPointerUp","onPointerCancel","onMouseDown","unbindEvents","$ffc54430b1dbeee65879852feaaff07d$var$isOverTarget","onMouseUp","onMouseLeave","onTouchStart","touch","targetTouches","$ffc54430b1dbeee65879852feaaff07d$var$getTouchFromEvent","onTouchMove","$ffc54430b1dbeee65879852feaaff07d$var$getTouchById","onTouchEnd","onTouchCancel","cancelTouchEvent","contains","changedTouches","point","rect","clientX","clientY","bottom","newRef","Children","only","cloneElement","isRegistered","prevContext","useFocus","onFocus","onFocusChange","onBlur","$d01f69bb2ab5f70dfd0005370a2a2cbc$var$currentModality","$d01f69bb2ab5f70dfd0005370a2a2cbc$var$changeHandlers","$d01f69bb2ab5f70dfd0005370a2a2cbc$var$hasSetupGlobalListeners","$d01f69bb2ab5f70dfd0005370a2a2cbc$var$hasEventBeforeFocus","$d01f69bb2ab5f70dfd0005370a2a2cbc$var$isMac","$d01f69bb2ab5f70dfd0005370a2a2cbc$var$FOCUS_VISIBLE_INPUT_KEYS","Tab","Escape","$d01f69bb2ab5f70dfd0005370a2a2cbc$var$triggerChangeHandlers","$d01f69bb2ab5f70dfd0005370a2a2cbc$var$handleKeyboardEvent","$d01f69bb2ab5f70dfd0005370a2a2cbc$var$isValidKey","$d01f69bb2ab5f70dfd0005370a2a2cbc$var$handlePointerEvent","$d01f69bb2ab5f70dfd0005370a2a2cbc$var$handleClickEvent","$d01f69bb2ab5f70dfd0005370a2a2cbc$var$handleFocusEvent","$d01f69bb2ab5f70dfd0005370a2a2cbc$var$handleWindowBlur","$d01f69bb2ab5f70dfd0005370a2a2cbc$var$setupGlobalFocusEvents","getInteractionModality","useFocusVisible","_props","isTextInput","autoFocus","_useState5","_useState6","isFocusVisibleState","setFocusVisible","KeyboardEvent","useFocusWithin","isFocusWithin","focusWithinProps","onFocusWithin","onFocusWithinChange","relatedTarget","onBlurWithin","$dc0d75166de722fbf58eb6c3552$export$createEventHandler","shouldStopPropagation","isDefaultPrevented","continuePropagation","useKeyboard","keyboardProps","_defineProperties","Constructor","protoProps","staticProps","prefetchPathname","StaticQueryContext","StaticQueryDataRenderer","staticQueryData","finalData","StaticQuery","useStaticQuery","graphql","Compiler","locales","formats","pluralFn","StringFormat","PluralFormat","useOrdinal","offset","PluralOffsetString","SelectFormat","compile","ast","pluralStack","currentPlural","pluralNumberFormat","compileMessage","elements","compileMessageText","compileArgument","DateTimeFormat","compileOptions","ordinal","option","optionsHash","getOption","other","_objectWithoutProperties","_classCallCheck","_possibleConstructorReturn","_inherits","createNamedContext","defaultValue","Ctx","LocationContext","LocationProvider","_temp","getContext","refs","unlisten","_props$history","componentDidCatch","info","isRedirect","_navigate","unmounted","setState","defaultProps","ServerLocation","BaseContext","Router","baseContext","locationContext","RouterImpl","_React$PureComponent","_navigate2","primary","_props$component","createRoute","clone","FocusWrapper","FocusHandler","wrapperProps","PureComponent","FocusContext","requestFocus","FocusHandlerImpl","initialRender","focusHandlerCount","_React$Component2","_temp2","_this4","_len2","shouldFocus","getDerivedStateFromProps","myURIChanged","navigatedUpToMe","_this5","_props2","_props2$component","Comp","tabIndex","C","_ref4","_ref5","_ref6","_props$getProps","anchorProps","encodedHref","shouldNavigate","_location$state","restState","RedirectRequest","redirectTo","RedirectImpl","_React$Component3","_props3","_props3$replace","noThrow","resolvedTo","_props4","Redirect","_ref7","Match","_ref8","_ref9","_ref10","resolvedPath","useNavigate","useParams","useMatch","stripSlashes","Fragment","elementPath","replacement","isForced","feature","detection","normalize","POLYFILL","NATIVE","redefine","copyConstructorProperties","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","sham","minWidth","minHeight","IndexedObject","assertThisInitialized","src$utils$$","realDefineProp","__defineGetter__","objCreate","F","prefixProperties","newStyle","requiredPrefixes","capitalizedProperty","styleProperty","_capitalizeString","absoluteFillObject","absoluteFill","ReactNativePropRegistry","compose","style1","style2","flatten","hairlineWidth","__REACT_DEVTOOLS_GLOBAL_HOOK__","resolveRNStyle","hashIndex","registerServiceWorker","whiteListLinkRels","prefetchedPathnames","setPathResources","getResourceURLsForPathname","___swUpdated","controller","resources","postMessage","onServiceWorkerActive","active","nodes","headerResources","prefetchedResources","resource","rel","remove","appendChild","onPostPrefetchPathname","classes","font","listStyle","classicReset","pointerEventsStyles","auto","pointerEvents","defaultStyleResolver","accessibilityLabel","accessibilityLiveRegion","deprecatedClassName","importantForAccessibility","nativeID","placeholderTextColor","providedStyle","testID","accessible","focusable","needsCursor","_styleResolver","supportedPrefetchStrategy","support","fakeLink","linkPrefetchStrategy","parentElement","reject","xhrPrefetchStrategy","req","preFetched","prefetch","Success","preferDefault","createPageDataUrl","doFetch","toPageResources","componentChunkName","pageData","webpackCompilationHash","staticQueryHashes","BaseLoader","pageDb","inFlightDb","staticQueryDb","pageDataDb","prefetchTriggered","prefetchCompleted","loadComponent","inFlightPromise","inFlightNetworkRequests","prefetchDisabled","loadObj","retries","responseText","jsonPayload","payload","notFound","loadPageDataJson","allData","finalResult","componentChunkPromise","staticQueryBatchPromise","staticQueryHash","staticQueryResultsMap","doesConnectionSupportPrefetch","shouldPrefetch","realPath","doPrefetch","pageDataUrl","prefetchHelper","crossOrigin","as","loadPage","createComponentUrls","appData","chunk","__PATH_PREFIX__","ProdLoader","chunkName","asyncRequires","componentUrls","_loader","getResourcesForPathname","getResourcesForPathnameSync","loadPageSync","isPageNotFound","loadAppData","src$es5$$","src$compiler$$","intl$messageformat$parser$$","MessageFormat","message","__parse","_mergeFormats","_resolveLocale","_findPluralRuleFunction","_locale","_compilePattern","messageFormat","variableId","day","year","weekday","hour","minute","second","timeZoneName","__localeData__","localeData","pluralRuleFunction","parentLocale","part","defaults","mergedType","mergedFormats","localeParts","_AppRegistry","replaceHydrateFunction","rootTag","RootComponent","registerComponent","runApplication","initialProps","floor","$c9e8f80f5bb1841844f54e4ad30b$var$focusableElements","within","isFocused","setFocused","_useState3","_useState4","setFocusWithin","$e11539c8317b2d21639df611cb5658f$var$FocusableContext","otherProps","useFocusable","domRef","interactions","interactionProps","focusableProps","excludeFromTabOrder","_reactDom","scrollKey","ScrollContainerImplementation","findDOMNode","superPropBase","_get","receiver","Reflect","toVal","mix","tmp","aFunction","variable","namespace","nativeDefineProperty","Attributes","onContextMenu","onMoveShouldSetResponder","onMoveShouldSetResponderCapture","onResponderEnd","onResponderGrant","onResponderMove","onResponderReject","onResponderRelease","onResponderStart","onResponderTerminate","onResponderTerminationRequest","onScrollShouldSetResponder","onScrollShouldSetResponderCapture","onSelectionChangeShouldSetResponder","onSelectionChangeShouldSetResponderCapture","onStartShouldSetResponder","onStartShouldSetResponderCapture","onTouchCancelCapture","onTouchEndCapture","onTouchMoveCapture","onTouchStartCapture","onWheel","onKeyPress","onMouseMove","onMouseOver","onMouseOut","itemID","itemRef","itemProp","itemScope","itemType","onClickCapture","safeProps","_Component","View","hitSlop","supportedProps","isInAParentText","view","StyleSheet","hitSlopStyle","hitStyle","calculateHitSlopStyle","hitSlopChild","contextTypes","boxSizing","display","zIndex","applyLayout","applyNativeMethods","grab","grabbing","functionToString","src$core$$","src$en$$","__addLocaleData","_arr","_n","_d","_e","_s","peg$SyntaxError","expected","found","captureStackTrace","ctor","peg$subclass","SyntaxError","peg$result","peg$FAILED","peg$startRuleFunctions","peg$parsestart","peg$startRuleFunction","peg$c0","peg$c1","outerLen","inner","innerLen","peg$c2","messageText","peg$c3","peg$c4","description","peg$c5","peg$c6","peg$c7","peg$c8","peg$c9","peg$c10","peg$c11","peg$c12","peg$c13","peg$c14","peg$c15","peg$c16","peg$c17","peg$c18","peg$c19","peg$c20","peg$c21","pluralStyle","peg$c22","peg$c23","peg$c24","peg$c25","peg$c26","peg$c27","peg$c28","peg$c29","peg$c30","peg$c31","peg$c32","peg$c33","peg$c34","peg$c35","peg$c36","peg$c37","peg$c38","peg$c39","peg$c40","peg$c41","peg$c42","peg$c43","peg$c44","peg$c45","peg$c46","peg$c47","digits","peg$c48","peg$c49","peg$c50","peg$c51","peg$c52","peg$c53","peg$c54","peg$c55","peg$c56","peg$c57","peg$c58","peg$c59","peg$c60","peg$c61","peg$c62","peg$c63","peg$c64","fromCharCode","peg$c65","chars","peg$currPos","peg$savedPos","peg$posDetailsCache","line","column","seenCR","peg$maxFailPos","peg$maxFailExpected","peg$silentFails","startRule","peg$computeLocation","peg$computePosDetails","ch","details","startPos","endPos","startPosDetails","endPosDetails","peg$fail","peg$buildException","cleanupExpected","expectedDescs","hex","stringEscape","buildMessage","peg$parsemessageFormatPattern","s0","s1","s2","peg$parsemessageFormatElement","peg$parsemessageTextElement","peg$parseargumentElement","peg$parsemessageText","s3","s4","s5","peg$parse_","peg$parsechars","peg$parsews","peg$parseargument","peg$parsenumber","s6","s7","s8","peg$parseelementFormat","peg$parsesimpleFormat","peg$parsepluralFormat","peg$parseselectOrdinalFormat","peg$parseselectFormat","peg$parsepluralStyle","peg$parseoptionalFormatPattern","peg$parseselector","peg$parseoffset","peg$parsedigit","peg$parsehexDigit","peg$parsechar","makeEmptyFunction","arg","emptyFunction","thatReturns","thatReturnsFalse","thatReturnsTrue","thatReturnsNull","thatReturnsThis","thatReturnsArgument","emptyArray","touches","_normalized","force","pageX","pageY","radiusX","radiusY","rotationAngle","screenX","screenY","timestamp","stopImmediatePropagation","bubbles","cancelable","locationX","locationY","which","normalizeMouseEvent","singleChangedTouch","normalizeTouchEvent","ResponderEventPlugin","ResponderTouchHistoryStore","eventTypes","responderMove","dependencies","endDependencies","moveDependencies","startDependencies","responderEnd","responderStart","responderRelease","responderTerminationRequest","responderGrant","responderReject","responderTerminate","moveShouldSetResponder","selectionChangeShouldSetResponder","scrollShouldSetResponder","startShouldSetResponder","lastActiveTouchTimestamp","originalExtractEvents","extractEvents","topLevelType","targetInst","nativeEventTarget","hasActiveTouches","touchHistory","numberActiveTouches","eventType","shouldSkipMouseAfterTouch","normalizedEvent","eventHandlerNames","isButtonLikeRole","isLinkRole","propName","accessibilityComponent","boxFlex","boxFlexGroup","boxOrdinalGroup","flexOrder","flexPositive","flexNegative","fontWeight","lineClamp","orphans","widows","zoom","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","scale","scaleX","scaleY","scaleZ","prefixKey","toObject","IS_RIGHT","that","argumentsLength","memo","WebkitBoxOrient","WebkitBoxDirection","alternativeProps","alternativeValues","wrap","objects","uniqueID","createKey","ProdPageRenderer","debounce","wait","immediate","later","last","debounced","callNow","flush","regex","uid","ExecutionEnvironment","canUseWorkers","Worker","canUseEventListeners","attachEvent","canUseViewport","screen","isInWorker","defaultReturn","argTransform","previous","thrower","ACCESSORS","argument0","argument1","STYLE_ELEMENT_ID","STYLE_GROUPS","borderRadius","borderStyle","borderWidth","overscrollBehavior","marginHorizontal","marginVertical","paddingHorizontal","paddingVertical","STYLE_SHORT_FORM_EXPANSIONS","MONOSPACE_FONT_STACK","SYSTEM_FONT_STACK","unmountComponentAtNode","AppContainer","mainKey","getChildContext","WrapperComponent","innerView","appContainer","childContextTypes","hydrate","renderFn","wrapperComponentProvider","runnables","componentProviderInstrumentationHook","AppRegistry","getAppKeys","getApplication","appKey","appParameters","componentProvider","getStyleElement","dangerouslySetInnerHTML","__html","run","registerConfig","registerRunnable","setComponentProviderInstrumentationHook","hook","setWrapperComponentProvider","provider","unmountApplicationComponentAtRootTag","flexShorthandMappings","msFlex","isUnitlessNumber","flexValues","inherit","initial","unset","metaData","additionalProps","_props$elementType","elementType","deprecatedOnClick","_props$type","_usePress","internalObjectKeys","getOwnPropertyNames"],"mappings":"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","file":"app-39de41fbee645e90258d.js","sourcesContent":["var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var state;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) {\n createNonEnumerableProperty(value, 'name', key);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.withPrefix = withPrefix;\nexports.withAssetPrefix = withAssetPrefix;\nexports.navigateTo = exports.replace = exports.push = exports.navigate = exports.default = void 0;\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _router = require(\"@reach/router\");\n\nvar _utils = require(\"@reach/router/lib/utils\");\n\nvar _parsePath = require(\"./parse-path\");\n\nexports.parsePath = _parsePath.parsePath;\n\nvar isAbsolutePath = function isAbsolutePath(path) {\n return path === null || path === void 0 ? void 0 : path.startsWith(\"/\");\n};\n\nfunction withPrefix(path, prefix) {\n var _ref, _prefix;\n\n if (prefix === void 0) {\n prefix = getGlobalBasePrefix();\n }\n\n if (!isLocalLink(path)) {\n return path;\n }\n\n if (path.startsWith(\"./\") || path.startsWith(\"../\")) {\n return path;\n }\n\n var base = (_ref = (_prefix = prefix) !== null && _prefix !== void 0 ? _prefix : getGlobalPathPrefix()) !== null && _ref !== void 0 ? _ref : \"/\";\n return \"\" + ((base === null || base === void 0 ? void 0 : base.endsWith(\"/\")) ? base.slice(0, -1) : base) + (path.startsWith(\"/\") ? path : \"/\" + path);\n} // These global values are wrapped in typeof clauses to ensure the values exist.\n// This is especially problematic in unit testing of this component.\n\n\nvar getGlobalPathPrefix = function getGlobalPathPrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __PATH_PREFIX__ !== \"undefined\" ? __PATH_PREFIX__ : undefined : __PATH_PREFIX__;\n};\n\nvar getGlobalBasePrefix = function getGlobalBasePrefix() {\n return process.env.NODE_ENV !== \"production\" ? typeof __BASE_PATH__ !== \"undefined\" ? __BASE_PATH__ : undefined : __BASE_PATH__;\n};\n\nvar isLocalLink = function isLocalLink(path) {\n return path && !path.startsWith(\"http://\") && !path.startsWith(\"https://\") && !path.startsWith(\"//\");\n};\n\nfunction withAssetPrefix(path) {\n return withPrefix(path, getGlobalPathPrefix());\n}\n\nfunction absolutify(path, current) {\n // If it's already absolute, return as-is\n if (isAbsolutePath(path)) {\n return path;\n }\n\n return (0, _utils.resolve)(path, current);\n}\n\nvar rewriteLinkPath = function rewriteLinkPath(path, relativeTo) {\n if (typeof path === \"number\") {\n return path;\n }\n\n if (!isLocalLink(path)) {\n return path;\n }\n\n return isAbsolutePath(path) ? withPrefix(path) : absolutify(path, relativeTo);\n};\n\nvar NavLinkPropTypes = {\n activeClassName: _propTypes.default.string,\n activeStyle: _propTypes.default.object,\n partiallyActive: _propTypes.default.bool\n}; // Set up IntersectionObserver\n\nvar createIntersectionObserver = function createIntersectionObserver(el, cb) {\n var io = new window.IntersectionObserver(function (entries) {\n entries.forEach(function (entry) {\n if (el === entry.target) {\n // Check if element is within viewport, remove listener, destroy observer, and run link callback.\n // MSEdge doesn't currently support isIntersecting, so also test for an intersectionRatio > 0\n if (entry.isIntersecting || entry.intersectionRatio > 0) {\n io.unobserve(el);\n io.disconnect();\n cb();\n }\n }\n });\n }); // Add element to the observer\n\n io.observe(el);\n return {\n instance: io,\n el: el\n };\n};\n\nfunction GatsbyLinkLocationWrapper(props) {\n return /*#__PURE__*/_react.default.createElement(_router.Location, null, function (_ref2) {\n var location = _ref2.location;\n return /*#__PURE__*/_react.default.createElement(GatsbyLink, (0, _extends2.default)({}, props, {\n _location: location\n }));\n });\n}\n\nvar GatsbyLink = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(GatsbyLink, _React$Component);\n\n function GatsbyLink(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this; // Default to no support for IntersectionObserver\n\n _this.defaultGetProps = function (_ref3) {\n var isPartiallyCurrent = _ref3.isPartiallyCurrent,\n isCurrent = _ref3.isCurrent;\n\n if (_this.props.partiallyActive ? isPartiallyCurrent : isCurrent) {\n return {\n className: [_this.props.className, _this.props.activeClassName].filter(Boolean).join(\" \"),\n style: (0, _extends2.default)({}, _this.props.style, _this.props.activeStyle)\n };\n }\n\n return null;\n };\n\n var IOSupported = false;\n\n if (typeof window !== \"undefined\" && window.IntersectionObserver) {\n IOSupported = true;\n }\n\n _this.state = {\n IOSupported: IOSupported\n };\n _this.handleRef = _this.handleRef.bind((0, _assertThisInitialized2.default)(_this));\n return _this;\n }\n\n var _proto = GatsbyLink.prototype;\n\n _proto._prefetch = function _prefetch() {\n var currentPath = window.location.pathname; // reach router should have the correct state\n\n if (this.props._location && this.props._location.pathname) {\n currentPath = this.props._location.pathname;\n }\n\n var rewrittenPath = rewriteLinkPath(this.props.to, currentPath);\n var newPathName = (0, _parsePath.parsePath)(rewrittenPath).pathname; // Prefech is used to speed up next navigations. When you use it on the current navigation,\n // there could be a race-condition where Chrome uses the stale data instead of waiting for the network to complete\n\n if (currentPath !== newPathName) {\n ___loader.enqueue(newPathName);\n }\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // Preserve non IO functionality if no support\n if (this.props.to !== prevProps.to && !this.state.IOSupported) {\n this._prefetch();\n }\n };\n\n _proto.componentDidMount = function componentDidMount() {\n // Preserve non IO functionality if no support\n if (!this.state.IOSupported) {\n this._prefetch();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (!this.io) {\n return;\n }\n\n var _this$io = this.io,\n instance = _this$io.instance,\n el = _this$io.el;\n instance.unobserve(el);\n instance.disconnect();\n };\n\n _proto.handleRef = function handleRef(ref) {\n var _this2 = this;\n\n if (this.props.innerRef && this.props.innerRef.hasOwnProperty(\"current\")) {\n this.props.innerRef.current = ref;\n } else if (this.props.innerRef) {\n this.props.innerRef(ref);\n }\n\n if (this.state.IOSupported && ref) {\n // If IO supported and element reference found, setup Observer functionality\n this.io = createIntersectionObserver(ref, function () {\n _this2._prefetch();\n });\n }\n };\n\n _proto.render = function render() {\n var _this3 = this;\n\n var _this$props = this.props,\n to = _this$props.to,\n _this$props$getProps = _this$props.getProps,\n getProps = _this$props$getProps === void 0 ? this.defaultGetProps : _this$props$getProps,\n _onClick = _this$props.onClick,\n _onMouseEnter = _this$props.onMouseEnter,\n $activeClassName = _this$props.activeClassName,\n $activeStyle = _this$props.activeStyle,\n $innerRef = _this$props.innerRef,\n partiallyActive = _this$props.partiallyActive,\n state = _this$props.state,\n replace = _this$props.replace,\n _location = _this$props._location,\n rest = (0, _objectWithoutPropertiesLoose2.default)(_this$props, [\"to\", \"getProps\", \"onClick\", \"onMouseEnter\", \"activeClassName\", \"activeStyle\", \"innerRef\", \"partiallyActive\", \"state\", \"replace\", \"_location\"]);\n\n if (process.env.NODE_ENV !== \"production\" && !isLocalLink(to)) {\n console.warn(\"External link \" + to + \" was detected in a Link component. Use the Link component only for internal links. See: https://gatsby.dev/internal-links\");\n }\n\n var prefixedTo = rewriteLinkPath(to, _location.pathname);\n\n if (!isLocalLink(prefixedTo)) {\n return /*#__PURE__*/_react.default.createElement(\"a\", (0, _extends2.default)({\n href: prefixedTo\n }, rest));\n }\n\n return /*#__PURE__*/_react.default.createElement(_router.Link, (0, _extends2.default)({\n to: prefixedTo,\n state: state,\n getProps: getProps,\n innerRef: this.handleRef,\n onMouseEnter: function onMouseEnter(e) {\n if (_onMouseEnter) {\n _onMouseEnter(e);\n }\n\n ___loader.hovering((0, _parsePath.parsePath)(prefixedTo).pathname);\n },\n onClick: function onClick(e) {\n if (_onClick) {\n _onClick(e);\n }\n\n if (e.button === 0 && // ignore right clicks\n !_this3.props.target && // let browser handle \"target=_blank\"\n !e.defaultPrevented && // onClick prevented default\n !e.metaKey && // ignore clicks with modifier keys...\n !e.altKey && !e.ctrlKey && !e.shiftKey) {\n e.preventDefault();\n var shouldReplace = replace;\n\n var isCurrent = encodeURI(prefixedTo) === _location.pathname;\n\n if (typeof replace !== \"boolean\" && isCurrent) {\n shouldReplace = true;\n } // Make sure the necessary scripts and data are\n // loaded before continuing.\n\n\n window.___navigate(prefixedTo, {\n state: state,\n replace: shouldReplace\n });\n }\n\n return true;\n }\n }, rest));\n };\n\n return GatsbyLink;\n}(_react.default.Component);\n\nGatsbyLink.propTypes = (0, _extends2.default)({}, NavLinkPropTypes, {\n onClick: _propTypes.default.func,\n to: _propTypes.default.string.isRequired,\n replace: _propTypes.default.bool,\n state: _propTypes.default.object\n});\n\nvar showDeprecationWarning = function showDeprecationWarning(functionName, altFunctionName, version) {\n return console.warn(\"The \\\"\" + functionName + \"\\\" method is now deprecated and will be removed in Gatsby v\" + version + \". Please use \\\"\" + altFunctionName + \"\\\" instead.\");\n};\n\nvar _default = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {\n return /*#__PURE__*/_react.default.createElement(GatsbyLinkLocationWrapper, (0, _extends2.default)({\n innerRef: ref\n }, props));\n});\n\nexports.default = _default;\n\nvar navigate = function navigate(to, options) {\n window.___navigate(rewriteLinkPath(to, window.location.pathname), options);\n};\n\nexports.navigate = navigate;\n\nvar push = function push(to) {\n showDeprecationWarning(\"push\", \"navigate\", 3);\n\n window.___push(rewriteLinkPath(to, window.location.pathname));\n};\n\nexports.push = push;\n\nvar replace = function replace(to) {\n showDeprecationWarning(\"replace\", \"navigate\", 3);\n\n window.___replace(rewriteLinkPath(to, window.location.pathname));\n}; // TODO: Remove navigateTo for Gatsby v3\n\n\nexports.replace = replace;\n\nvar navigateTo = function navigateTo(to) {\n showDeprecationWarning(\"navigateTo\", \"navigate\", 3);\n return push(to);\n};\n\nexports.navigateTo = navigateTo;","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _react, { useContext, useLayoutEffect, useMemo, useState } from \"react\";\nvar $f01a183cc7bdff77849e49ad26eb904$var$defaultContext = {\n prefix: Math.round(Math.random() * 10000000000),\n current: 0\n};\n\nvar $f01a183cc7bdff77849e49ad26eb904$var$SSRContext = _react.createContext($f01a183cc7bdff77849e49ad26eb904$var$defaultContext);\n\nexport function SSRProvider(props) {\n var cur = useContext($f01a183cc7bdff77849e49ad26eb904$var$SSRContext);\n var value = useMemo(function () {\n return {\n prefix: cur === $f01a183cc7bdff77849e49ad26eb904$var$defaultContext ? 0 : ++cur.prefix,\n current: 0\n };\n }, [cur]);\n return _react.createElement($f01a183cc7bdff77849e49ad26eb904$var$SSRContext.Provider, {\n value: value\n }, props.children);\n}\nvar $f01a183cc7bdff77849e49ad26eb904$var$canUseDOM = Boolean(typeof window !== 'undefined' && window.document && window.document.createElement);\nexport function useSSRSafeId(defaultId) {\n var ctx = useContext($f01a183cc7bdff77849e49ad26eb904$var$SSRContext);\n\n if (ctx === $f01a183cc7bdff77849e49ad26eb904$var$defaultContext && !$f01a183cc7bdff77849e49ad26eb904$var$canUseDOM) {\n console.warn('When server rendering, you must wrap your application in an to ensure consistent ids are generated between the client and server.');\n }\n\n return useMemo(function () {\n return defaultId || \"react-aria-\" + ctx.prefix + \"-\" + ++ctx.current;\n }, [defaultId]);\n}\nexport function useIsSSR() {\n var cur = useContext($f01a183cc7bdff77849e49ad26eb904$var$SSRContext);\n var isInSSRContext = cur !== $f01a183cc7bdff77849e49ad26eb904$var$defaultContext;\n\n var _useState = useState(isInSSRContext),\n _useState2 = _slicedToArray(_useState, 2),\n isSSR = _useState2[0],\n setIsSSR = _useState2[1];\n\n if (typeof window !== 'undefined' && isInSSRContext) {\n useLayoutEffect(function () {\n setIsSSR(false);\n }, []);\n }\n\n return isSSR;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.onRouteUpdate = void 0;\nvar first = true;\n\nfunction getDuration() {\n var start = window.start || new Date();\n var now = new Date();\n var difference = now.getTime() - start.getTime();\n\n if (difference === 0) {\n return null;\n }\n\n return difference;\n}\n\nvar onRouteUpdate = function onRouteUpdate(_ref, pluginOptions) {\n var location = _ref.location,\n prevLocation = _ref.prevLocation;\n\n if (process.env.NODE_ENV === 'production' || window.dev === true) {\n if (!window._paq) return;\n var _window = window,\n _paq = _window._paq,\n dev = _window.dev;\n var url = location && location.pathname + location.search + location.hash;\n var prevUrl = prevLocation && prevLocation.pathname + prevLocation.search + prevLocation.hash;\n var _pluginOptions$trackL = pluginOptions.trackLoad,\n trackLoad = _pluginOptions$trackL === void 0 ? true : _pluginOptions$trackL; // document.title workaround stolen from:\n // https://github.com/gatsbyjs/gatsby/blob/master/packages/gatsby-plugin-google-analytics/src/gatsby-browser.js\n\n var sendPageView = function sendPageView() {\n var _document = document,\n title = _document.title;\n prevUrl && _paq.push(['setReferrerUrl', prevUrl]);\n\n _paq.push(['setCustomUrl', url]);\n\n _paq.push(['setDocumentTitle', title]);\n\n _paq.push(['trackPageView']);\n\n _paq.push(['enableLinkTracking']);\n\n _paq.push(['trackAllContentImpressions']);\n\n if (dev) {\n console.debug(\"[Matomo] Page view for: \" + url + \" - \" + title);\n }\n }; // Minimum delay for reactHelmet's requestAnimationFrame\n\n\n var delay = Math.max(32, 0);\n setTimeout(sendPageView, delay);\n\n if (first) {\n first = false;\n\n if (trackLoad) {\n _paq.push(['trackEvent', 'javascript', 'load', 'duration', getDuration()]);\n }\n\n if (dev) {\n console.debug(\"[Matomo] Tracking duration for: \" + url);\n }\n }\n }\n\n return null;\n};\n\nexports.onRouteUpdate = onRouteUpdate;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createPrefixer;\n\nvar _prefixProperty = require('./utils/prefixProperty');\n\nvar _prefixProperty2 = _interopRequireDefault(_prefixProperty);\n\nvar _prefixValue = require('./utils/prefixValue');\n\nvar _prefixValue2 = _interopRequireDefault(_prefixValue);\n\nvar _addNewValuesOnly = require('./utils/addNewValuesOnly');\n\nvar _addNewValuesOnly2 = _interopRequireDefault(_addNewValuesOnly);\n\nvar _isObject = require('./utils/isObject');\n\nvar _isObject2 = _interopRequireDefault(_isObject);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction createPrefixer(_ref) {\n var prefixMap = _ref.prefixMap,\n plugins = _ref.plugins;\n return function prefix(style) {\n for (var property in style) {\n var value = style[property]; // handle nested objects\n\n if ((0, _isObject2.default)(value)) {\n style[property] = prefix(value); // handle array values\n } else if (Array.isArray(value)) {\n var combinedValue = [];\n\n for (var i = 0, len = value.length; i < len; ++i) {\n var processedValue = (0, _prefixValue2.default)(plugins, property, value[i], style, prefixMap);\n (0, _addNewValuesOnly2.default)(combinedValue, processedValue || value[i]);\n } // only modify the value if it was touched\n // by any plugin to prevent unnecessary mutations\n\n\n if (combinedValue.length > 0) {\n style[property] = combinedValue;\n }\n } else {\n var _processedValue = (0, _prefixValue2.default)(plugins, property, value, style, prefixMap); // only modify the value if it was touched\n // by any plugin to prevent unnecessary mutations\n\n\n if (_processedValue) {\n style[property] = _processedValue;\n }\n\n style = (0, _prefixProperty2.default)(prefixMap, property, style);\n }\n }\n\n return style;\n };\n}","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","\"use strict\";\n\nexports.__esModule = true;\nexports.SessionStorage = void 0;\nvar STATE_KEY_PREFIX = \"@@scroll|\";\nvar GATSBY_ROUTER_SCROLL_STATE = \"___GATSBY_REACT_ROUTER_SCROLL\";\n\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n\n var _proto = SessionStorage.prototype;\n\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\n\n try {\n var value = window.sessionStorage.getItem(stateKey);\n return value ? JSON.parse(value) : 0;\n } catch (e) {\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to access sessionStorage; sessionStorage is not available.\");\n }\n\n if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n\n return 0;\n }\n };\n\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\n\n try {\n window.sessionStorage.setItem(stateKey, storedValue);\n } catch (e) {\n if (window && window[GATSBY_ROUTER_SCROLL_STATE]) {\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n } else {\n window[GATSBY_ROUTER_SCROLL_STATE] = {};\n window[GATSBY_ROUTER_SCROLL_STATE][stateKey] = JSON.parse(storedValue);\n }\n\n if (process.env.NODE_ENV !== \"production\") {\n console.warn(\"[gatsby-react-router-scroll] Unable to save state in sessionStorage; sessionStorage is not available.\");\n }\n }\n };\n\n _proto.getStateKey = function getStateKey(location, key) {\n var stateKeyBase = \"\" + STATE_KEY_PREFIX + location.pathname;\n return key === null || typeof key === \"undefined\" ? stateKeyBase : stateKeyBase + \"|\" + key;\n };\n\n return SessionStorage;\n}();\n\nexports.SessionStorage = SessionStorage;","import createDOMProps from \"../createDOMProps\";\nimport findNodeHandle from \"../../exports/findNodeHandle\";\nimport styleResolver from \"../../exports/StyleSheet/styleResolver\";\nimport UIManager from \"../../exports/UIManager\";\nvar NativeMethodsMixin = {\n blur: function blur() {\n UIManager.blur(findNodeHandle(this));\n },\n focus: function focus() {\n UIManager.focus(findNodeHandle(this));\n },\n measure: function measure(callback) {\n UIManager.measure(findNodeHandle(this), callback);\n },\n measureInWindow: function measureInWindow(callback) {\n UIManager.measureInWindow(findNodeHandle(this), callback);\n },\n measureLayout: function measureLayout(relativeToNativeNode, onSuccess, onFail) {\n UIManager.measureLayout(findNodeHandle(this), relativeToNativeNode, onFail, onSuccess);\n },\n setNativeProps: function setNativeProps(nativeProps) {\n if (!nativeProps) {\n return;\n }\n\n var node = findNodeHandle(this);\n\n if (node) {\n var domProps = createDOMProps(null, nativeProps, function (style) {\n return styleResolver.resolveWithNode(style, node);\n });\n UIManager.updateView(node, domProps, this);\n }\n }\n};\nexport default NativeMethodsMixin;","import NativeMethodsMixin from \"../NativeMethodsMixin\";\n\nvar applyNativeMethods = function applyNativeMethods(Component) {\n Object.keys(NativeMethodsMixin).forEach(function (method) {\n if (!Component.prototype[method]) {\n Component.prototype[method] = NativeMethodsMixin[method];\n }\n });\n return Component;\n};\n\nexport default applyNativeMethods;","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = addNewValuesOnly;\n\nfunction addIfNew(list, value) {\n if (list.indexOf(value) === -1) {\n list.push(value);\n }\n}\n\nfunction addNewValuesOnly(list, values) {\n if (Array.isArray(values)) {\n for (var i = 0, len = values.length; i < len; ++i) {\n addIfNew(list, values[i]);\n }\n } else {\n addIfNew(list, values);\n }\n}","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var _typeof = require(\"@babel/runtime/helpers/typeof\");\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nmodule.exports = _interopRequireWildcard;","/**\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 */\n'use strict';\n\nvar validateFormat = process.env.NODE_ENV !== \"production\" ? function (format) {} : function (format) {\n if (format === undefined) {\n throw new Error('invariant(...): Second argument must be a string.');\n }\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 to provide\n * information about what broke and what you were expecting.\n *\n * The invariant message will be stripped in production, but the invariant will\n * remain to ensure logic does not differ in production.\n */\n\nfunction invariant(condition, format) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n validateFormat(format);\n\n if (!condition) {\n var error;\n\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return String(args[argIndex++]);\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // Skip invariant's own stack frame.\n\n throw error;\n }\n}\n\nmodule.exports = invariant;","/* jshint node:true */\n'use strict';\n\nvar IntlMessageFormat = require('./lib/main')['default']; // Add all locale data to `IntlMessageFormat`. This module will be ignored when\n// bundling for the browser with Browserify/Webpack.\n\n\nrequire('./lib/locales'); // Re-export `IntlMessageFormat` as the CommonJS default exports with all the\n// locale data registered, and with English set as the default locale. Define\n// the `default` prop for use with other compiled ES6 Modules.\n\n\nexports = module.exports = IntlMessageFormat;\nexports['default'] = exports;","/**\n * Copyright (c) 2014-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\nvar emptyFunction = require(\"./emptyFunction\");\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\n\nfunction printWarning(format) {\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 var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n}\n\nvar warning = process.env.NODE_ENV !== \"production\" ? function (condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(void 0, [format].concat(args));\n }\n} : emptyFunction;\nmodule.exports = warning;","export default path => {\n if (path === undefined) {\n return path\n }\n if (path === `/`) {\n return `/`\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1)\n }\n return path\n}\n","import { pick } from \"@reach/router/lib/utils\"\nimport stripPrefix from \"./strip-prefix\"\nimport normalizePagePath from \"./normalize-page-path\"\n\nconst pathCache = new Map()\nlet matchPaths = []\n\nconst trimPathname = rawPathname => {\n const pathname = decodeURIComponent(rawPathname)\n // Remove the pathPrefix from the pathname.\n const trimmedPathname = stripPrefix(pathname, __BASE_PATH__)\n // Remove any hashfragment\n .split(`#`)[0]\n // Remove search query\n .split(`?`)[0]\n\n return trimmedPathname\n}\n\nfunction absolutify(path) {\n // If it's already absolute, return as-is\n if (\n path.startsWith(`/`) ||\n path.startsWith(`https://`) ||\n path.startsWith(`http://`)\n ) {\n return path\n }\n // Calculate path relative to current location, adding a trailing slash to\n // match behavior of @reach/router\n return new URL(\n path,\n window.location.href + (window.location.href.endsWith(`/`) ? `` : `/`)\n ).pathname\n}\n\n/**\n * Set list of matchPaths\n *\n * @param {Array<{path: string, matchPath: string}>} value collection of matchPaths\n */\nexport const setMatchPaths = value => {\n matchPaths = value\n}\n\n/**\n * Return a matchpath url\n * if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n * `/foo?bar=far` => `/page1`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string|null}\n */\nexport const findMatchPath = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return normalizePagePath(path.route.originalPath)\n }\n\n return null\n}\n\n/**\n * Return a matchpath params from reach/router rules\n * if `match-paths.json` contains `{ \":bar/*foo\" }`, and the path is /baz/zaz/zoo\n * then it returns\n * { bar: baz, foo: zaz/zoo }\n *\n * @param {string} rawPathname A raw pathname\n * @return {object}\n */\nexport const grabMatchParams = rawPathname => {\n const trimmedPathname = cleanPath(rawPathname)\n\n const pickPaths = matchPaths.map(({ path, matchPath }) => {\n return {\n path: matchPath,\n originalPath: path,\n }\n })\n\n const path = pick(pickPaths, trimmedPathname)\n\n if (path) {\n return path.params\n }\n\n return {}\n}\n\n// Given a raw URL path, returns the cleaned version of it (trim off\n// `#` and query params), or if it matches an entry in\n// `match-paths.json`, its matched path is returned\n//\n// E.g. `/foo?bar=far` => `/foo`\n//\n// Or if `match-paths.json` contains `{ \"/foo*\": \"/page1\", ...}`, then\n// `/foo?bar=far` => `/page1`\nexport const findPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n if (pathCache.has(trimmedPathname)) {\n return pathCache.get(trimmedPathname)\n }\n\n let foundPath = findMatchPath(trimmedPathname)\n\n if (!foundPath) {\n foundPath = cleanPath(rawPathname)\n }\n\n pathCache.set(trimmedPathname, foundPath)\n\n return foundPath\n}\n\n/**\n * Clean a url and converts /index.html => /\n * E.g. `/foo?bar=far` => `/foo`\n *\n * @param {string} rawPathname A raw pathname\n * @return {string}\n */\nexport const cleanPath = rawPathname => {\n const trimmedPathname = trimPathname(absolutify(rawPathname))\n\n let foundPath = trimmedPathname\n if (foundPath === `/index.html`) {\n foundPath = `/`\n }\n\n foundPath = normalizePagePath(foundPath)\n\n return foundPath\n}\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nvar _react = require(\"react\");\n\nvar _router = require(\"@reach/router\");\n\nfunction useScrollRestoration(identifier) {\n var location = (0, _router.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)();\n (0, _react.useLayoutEffect)(function () {\n if (ref.current) {\n var position = state.read(location, identifier);\n ref.current.scrollTo(0, position || 0);\n }\n }, []);\n return {\n ref: ref,\n onScroll: function onScroll() {\n if (ref.current) {\n state.save(location, identifier, ref.current.scrollTop);\n }\n }\n };\n}","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = flex;\nvar values = {\n flex: ['-webkit-box', '-moz-box', '-ms-flexbox', '-webkit-flex', 'flex'],\n 'inline-flex': ['-webkit-inline-box', '-moz-inline-box', '-ms-inline-flexbox', '-webkit-inline-flex', 'inline-flex']\n};\n\nfunction flex(property, value) {\n if (property === 'display' && values.hasOwnProperty(value)) {\n return values[value];\n }\n}","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","import isUnitlessNumber from \"../../../modules/unitlessNumbers\";\n\nfunction dangerousStyleValue(name, value, isCustomProperty) {\n var isEmpty = value == null || typeof value === 'boolean' || value === '';\n\n if (isEmpty) {\n return '';\n }\n\n if (!isCustomProperty && typeof value === 'number' && value !== 0 && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) {\n return value + 'px';\n }\n\n return ('' + value).trim();\n}\n\nexport default dangerousStyleValue;","import dangerousStyleValue from \"../dangerousStyleValue\";\nimport hyphenateStyleName from 'hyphenate-style-name';\nimport warnValidStyle from \"../warnValidStyle\";\n\nfunction setValueForStyles(node, styles, getStack) {\n var style = node.style;\n\n for (var styleName in styles) {\n if (!styles.hasOwnProperty(styleName)) {\n continue;\n }\n\n var isCustomProperty = styleName.indexOf('--') === 0;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!isCustomProperty) {\n warnValidStyle(styleName, styles[styleName], getStack);\n }\n }\n\n var styleValue = dangerousStyleValue(styleName, styles[styleName], isCustomProperty);\n\n if (styleName === 'float') {\n styleName = 'cssFloat';\n }\n\n if (isCustomProperty) {\n var name = isCustomProperty ? styleName : hyphenateStyleName(styleName);\n style.setProperty(name, styleValue);\n } else {\n style[styleName] = styleValue;\n }\n }\n}\n\nexport default setValueForStyles;","import getBoundingClientRect from \"../../modules/getBoundingClientRect\";\nimport setValueForStyles from \"../../vendor/react-dom/setValueForStyles\";\n\nvar getRect = function getRect(node) {\n var _getBoundingClientRec = getBoundingClientRect(node),\n x = _getBoundingClientRec.x,\n y = _getBoundingClientRec.y,\n top = _getBoundingClientRec.top,\n left = _getBoundingClientRec.left;\n\n var width = node.offsetWidth;\n var height = node.offsetHeight;\n return {\n x: x,\n y: y,\n width: width,\n height: height,\n top: top,\n left: left\n };\n};\n\nvar _measureLayout = function measureLayout(node, relativeToNativeNode, callback) {\n var relativeNode = relativeToNativeNode || node && node.parentNode;\n\n if (node && relativeNode) {\n setTimeout(function () {\n var relativeRect = getBoundingClientRect(relativeNode);\n\n var _getRect = getRect(node),\n height = _getRect.height,\n left = _getRect.left,\n top = _getRect.top,\n width = _getRect.width;\n\n var x = left - relativeRect.left;\n var y = top - relativeRect.top;\n callback(x, y, width, height, left, top);\n }, 0);\n }\n};\n\nvar focusableElements = {\n A: true,\n INPUT: true,\n SELECT: true,\n TEXTAREA: true\n};\nvar UIManager = {\n blur: function blur(node) {\n try {\n node.blur();\n } catch (err) {}\n },\n focus: function focus(node) {\n try {\n var name = node.nodeName;\n\n if (node.getAttribute('tabIndex') == null && focusableElements[name] == null) {\n node.setAttribute('tabIndex', '-1');\n }\n\n node.focus();\n } catch (err) {}\n },\n measure: function measure(node, callback) {\n _measureLayout(node, null, callback);\n },\n measureInWindow: function measureInWindow(node, callback) {\n if (node) {\n setTimeout(function () {\n var _getRect2 = getRect(node),\n height = _getRect2.height,\n left = _getRect2.left,\n top = _getRect2.top,\n width = _getRect2.width;\n\n callback(left, top, width, height);\n }, 0);\n }\n },\n measureLayout: function measureLayout(node, relativeToNativeNode, onFail, onSuccess) {\n _measureLayout(node, relativeToNativeNode, onSuccess);\n },\n updateView: function updateView(node, props, component) {\n for (var prop in props) {\n if (!Object.prototype.hasOwnProperty.call(props, prop)) {\n continue;\n }\n\n var value = props[prop];\n\n switch (prop) {\n case 'style':\n {\n setValueForStyles(node, value, component._reactInternalInstance);\n break;\n }\n\n case 'class':\n case 'className':\n {\n node.setAttribute('class', value);\n break;\n }\n\n case 'text':\n case 'value':\n node.value = value;\n break;\n\n default:\n node.setAttribute(prop, value);\n }\n }\n },\n configureNextLayoutAnimation: function configureNextLayoutAnimation(config, onAnimationDidEnd) {\n onAnimationDidEnd();\n },\n setLayoutAnimationEnabledExperimental: function setLayoutAnimationEnabledExperimental() {}\n};\nexport default UIManager;","// \n// An event handler can take an optional event argument\n// and should not return a value\n \n \n\n// An array of all currently registered event handlers for a type\n \n \n// A map of event types and their corresponding event handlers.\n \n \n \n \n\n/** Mitt: Tiny (~200b) functional event emitter / pubsub.\n * @name mitt\n * @returns {Mitt}\n */\nfunction mitt(all ) {\n\tall = all || Object.create(null);\n\n\treturn {\n\t\t/**\n\t\t * Register an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to listen for, or `\"*\"` for all events\n\t\t * @param {Function} handler Function to call in response to given event\n\t\t * @memberOf mitt\n\t\t */\n\t\ton: function on(type , handler ) {\n\t\t\t(all[type] || (all[type] = [])).push(handler);\n\t\t},\n\n\t\t/**\n\t\t * Remove an event handler for the given type.\n\t\t *\n\t\t * @param {String} type\tType of event to unregister `handler` from, or `\"*\"`\n\t\t * @param {Function} handler Handler function to remove\n\t\t * @memberOf mitt\n\t\t */\n\t\toff: function off(type , handler ) {\n\t\t\tif (all[type]) {\n\t\t\t\tall[type].splice(all[type].indexOf(handler) >>> 0, 1);\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Invoke all handlers for the given type.\n\t\t * If present, `\"*\"` handlers are invoked after type-matched handlers.\n\t\t *\n\t\t * @param {String} type The event type to invoke\n\t\t * @param {Any} [evt] Any value (object is recommended and powerful), passed to each handler\n\t\t * @memberOf mitt\n\t\t */\n\t\temit: function emit(type , evt ) {\n\t\t\t(all[type] || []).slice().map(function (handler) { handler(evt); });\n\t\t\t(all['*'] || []).slice().map(function (handler) { handler(type, evt); });\n\t\t}\n\t};\n}\n\nexport default mitt;\n//# sourceMappingURL=mitt.es.js.map\n","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContainer = exports.ScrollContext = void 0;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nexports.ScrollContext = _scrollHandler.ScrollHandler;\n\nvar _scrollContainer = require(\"./scroll-container\");\n\nexports.ScrollContainer = _scrollContainer.ScrollContainer;\n\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\n\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = position;\n\nfunction position(property, value) {\n if (property === 'position' && value === 'sticky') {\n return ['-webkit-sticky', 'sticky'];\n }\n}","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.8.3',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","exports.polyfill = Component => Component\n","var _extends = Object.assign || 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; };\n\nvar getLocation = function getLocation(source) {\n var _source$location = source.location,\n search = _source$location.search,\n hash = _source$location.hash,\n href = _source$location.href,\n origin = _source$location.origin,\n protocol = _source$location.protocol,\n host = _source$location.host,\n hostname = _source$location.hostname,\n port = _source$location.port;\n var pathname = source.location.pathname;\n\n\n if (!pathname && href && canUseDOM) {\n var url = new URL(href);\n pathname = url.pathname;\n }\n\n return {\n pathname: encodeURI(decodeURI(pathname)),\n search: search,\n hash: hash,\n href: href,\n origin: origin,\n protocol: protocol,\n host: host,\n hostname: hostname,\n port: port,\n state: source.history.state,\n key: source.history.state && source.history.state.key || \"initial\"\n };\n};\n\nvar createHistory = function createHistory(source, options) {\n var listeners = [];\n var location = getLocation(source);\n var transitioning = false;\n var resolveTransition = function resolveTransition() {};\n\n return {\n get location() {\n return location;\n },\n\n get transitioning() {\n return transitioning;\n },\n\n _onTransitionComplete: function _onTransitionComplete() {\n transitioning = false;\n resolveTransition();\n },\n listen: function listen(listener) {\n listeners.push(listener);\n\n var popstateListener = function popstateListener() {\n location = getLocation(source);\n listener({ location: location, action: \"POP\" });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\n\n return function () {\n source.removeEventListener(\"popstate\", popstateListener);\n listeners = listeners.filter(function (fn) {\n return fn !== listener;\n });\n };\n },\n navigate: function navigate(to) {\n var _ref = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n state = _ref.state,\n _ref$replace = _ref.replace,\n replace = _ref$replace === undefined ? false : _ref$replace;\n\n if (typeof to === \"number\") {\n source.history.go(to);\n } else {\n state = _extends({}, state, { key: Date.now() + \"\" });\n // try...catch iOS Safari limits to 100 pushState calls\n try {\n if (transitioning || replace) {\n source.history.replaceState(state, null, to);\n } else {\n source.history.pushState(state, null, to);\n }\n } catch (e) {\n source.location[replace ? \"replace\" : \"assign\"](to);\n }\n }\n\n location = getLocation(source);\n transitioning = true;\n var transition = new Promise(function (res) {\n return resolveTransition = res;\n });\n listeners.forEach(function (listener) {\n return listener({ location: location, action: \"PUSH\" });\n });\n return transition;\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\n\n var searchIndex = initialPath.indexOf(\"?\");\n var initialLocation = {\n pathname: searchIndex > -1 ? initialPath.substr(0, searchIndex) : initialPath,\n search: searchIndex > -1 ? initialPath.substr(searchIndex) : \"\"\n };\n var index = 0;\n var stack = [initialLocation];\n var states = [null];\n\n return {\n get location() {\n return stack[index];\n },\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n\n history: {\n get entries() {\n return stack;\n },\n get index() {\n return index;\n },\n get state() {\n return states[index];\n },\n pushState: function pushState(state, _, uri) {\n var _uri$split = uri.split(\"?\"),\n pathname = _uri$split[0],\n _uri$split$ = _uri$split[1],\n search = _uri$split$ === undefined ? \"\" : _uri$split$;\n\n index++;\n stack.push({ pathname: pathname, search: search.length ? \"?\" + search : search });\n states.push(state);\n },\n replaceState: function replaceState(state, _, uri) {\n var _uri$split2 = uri.split(\"?\"),\n pathname = _uri$split2[0],\n _uri$split2$ = _uri$split2[1],\n search = _uri$split2$ === undefined ? \"\" : _uri$split2$;\n\n stack[index] = { pathname: pathname, search: search };\n states[index] = state;\n },\n go: function go(to) {\n var newIndex = index + to;\n\n if (newIndex < 0 || newIndex > states.length - 1) {\n return;\n }\n\n index = newIndex;\n }\n }\n };\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// global history - uses window.history as the source if available, otherwise a\n// memory history\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate;\n\n////////////////////////////////////////////////////////////////////////////////\n\nexport { globalHistory, navigate, createHistory, createMemorySource };","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\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 * @return string\n */\nvar _default = function _default(pathname, localizedManifests) {\n var defaultFilename = \"manifest.webmanifest\";\n\n if (!Array.isArray(localizedManifests)) {\n return defaultFilename;\n }\n\n var localizedManifest = localizedManifests.find(function (app) {\n return pathname.startsWith(app.start_url);\n });\n\n if (!localizedManifest) {\n return defaultFilename;\n }\n\n return \"manifest_\" + localizedManifest.lang + \".webmanifest\";\n};\n\nexports.default = _default;","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n metadata.facade = it;\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\n\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _sessionStorage = require(\"./session-storage\");\n\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\n\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n\n function ScrollHandler() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this._stateStorage = new _sessionStorage.SessionStorage();\n\n _this.scrollListener = function () {\n var key = _this.props.location.key;\n\n if (key) {\n _this._stateStorage.save(_this.props.location, key, window.scrollY);\n }\n };\n\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n\n if (!shouldUpdateScroll) {\n return true;\n } // Hack to allow accessing this._stateStorage.\n\n\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n\n return _this;\n }\n\n var _proto = ScrollHandler.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n window.addEventListener(\"scroll\", this.scrollListener);\n var scrollPosition;\n var _this$props$location = this.props.location,\n key = _this$props$location.key,\n hash = _this$props$location.hash;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n } else if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var _this$props$location2 = this.props.location,\n hash = _this$props$location2.hash,\n key = _this$props$location2.key;\n var scrollPosition;\n\n if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n /** There are two pieces of state: the browser url and\n * history state which keeps track of scroll position\n * Native behaviour prescribes that we ought to restore scroll position\n * when a user navigates back in their browser (this is the `POP` action)\n * Currently, reach router has a bug that prevents this at https://github.com/reach/router/issues/228\n * So we _always_ stick to the url as a source of truth — if the url\n * contains a hash, we scroll to it\n */\n\n\n if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n\n return ScrollHandler;\n}(React.Component);\n\nexports.ScrollHandler = ScrollHandler;\nScrollHandler.propTypes = {\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired,\n location: _propTypes.default.object.isRequired\n};","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","/*\n * Copyright (c) 2015-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\nfunction normalizeColor(color) {\n var match;\n\n if (typeof color === 'number') {\n if (color >>> 0 === color && color >= 0 && color <= 0xffffffff) {\n return color;\n }\n\n return null;\n } // Ordered based on occurrences on Facebook codebase\n\n\n if (match = matchers.hex6.exec(color)) {\n return parseInt(match[1] + 'ff', 16) >>> 0;\n }\n\n if (names.hasOwnProperty(color)) {\n return names[color];\n }\n\n if (match = matchers.rgb.exec(color)) {\n return (parse255(match[1]) << 24 | // r\n parse255(match[2]) << 16 | // g\n parse255(match[3]) << 8 | // b\n 0x000000ff // a\n ) >>> 0;\n }\n\n if (match = matchers.rgba.exec(color)) {\n return (parse255(match[1]) << 24 | // r\n parse255(match[2]) << 16 | // g\n parse255(match[3]) << 8 | // b\n parse1(match[4]) // a\n ) >>> 0;\n }\n\n if (match = matchers.hex3.exec(color)) {\n return parseInt(match[1] + match[1] + // r\n match[2] + match[2] + // g\n match[3] + match[3] + // b\n 'ff', // a\n 16) >>> 0;\n } // https://drafts.csswg.org/css-color-4/#hex-notation\n\n\n if (match = matchers.hex8.exec(color)) {\n return parseInt(match[1], 16) >>> 0;\n }\n\n if (match = matchers.hex4.exec(color)) {\n return parseInt(match[1] + match[1] + // r\n match[2] + match[2] + // g\n match[3] + match[3] + // b\n match[4] + match[4], // a\n 16) >>> 0;\n }\n\n if (match = matchers.hsl.exec(color)) {\n return (hslToRgb(parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) | 0x000000ff // a\n ) >>> 0;\n }\n\n if (match = matchers.hsla.exec(color)) {\n return (hslToRgb(parse360(match[1]), // h\n parsePercentage(match[2]), // s\n parsePercentage(match[3]) // l\n ) | parse1(match[4]) // a\n ) >>> 0;\n }\n\n return null;\n}\n\nfunction hue2rgb(p, q, t) {\n if (t < 0) {\n t += 1;\n }\n\n if (t > 1) {\n t -= 1;\n }\n\n if (t < 1 / 6) {\n return p + (q - p) * 6 * t;\n }\n\n if (t < 1 / 2) {\n return q;\n }\n\n if (t < 2 / 3) {\n return p + (q - p) * (2 / 3 - t) * 6;\n }\n\n return p;\n}\n\nfunction hslToRgb(h, s, l) {\n var q = l < 0.5 ? l * (1 + s) : l + s - l * s;\n var p = 2 * l - q;\n var r = hue2rgb(p, q, h + 1 / 3);\n var g = hue2rgb(p, q, h);\n var b = hue2rgb(p, q, h - 1 / 3);\n return Math.round(r * 255) << 24 | Math.round(g * 255) << 16 | Math.round(b * 255) << 8;\n} // var INTEGER = '[-+]?\\\\d+';\n\n\nvar NUMBER = '[-+]?\\\\d*\\\\.?\\\\d+';\nvar PERCENTAGE = NUMBER + '%';\n\nfunction toArray(arrayLike) {\n return Array.prototype.slice.call(arrayLike, 0);\n}\n\nfunction call() {\n return '\\\\(\\\\s*(' + toArray(arguments).join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nvar matchers = {\n rgb: new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER)),\n rgba: new RegExp('rgba' + call(NUMBER, NUMBER, NUMBER, NUMBER)),\n hsl: new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE)),\n hsla: new RegExp('hsla' + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER)),\n hex3: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex4: /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/,\n hex6: /^#([0-9a-fA-F]{6})$/,\n hex8: /^#([0-9a-fA-F]{8})$/\n};\n\nfunction parse255(str) {\n var int = parseInt(str, 10);\n\n if (int < 0) {\n return 0;\n }\n\n if (int > 255) {\n return 255;\n }\n\n return int;\n}\n\nfunction parse360(str) {\n var int = parseFloat(str);\n return (int % 360 + 360) % 360 / 360;\n}\n\nfunction parse1(str) {\n var num = parseFloat(str);\n\n if (num < 0) {\n return 0;\n }\n\n if (num > 1) {\n return 255;\n }\n\n return Math.round(num * 255);\n}\n\nfunction parsePercentage(str) {\n // parseFloat conveniently ignores the final %\n var int = parseFloat(str, 10);\n\n if (int < 0) {\n return 0;\n }\n\n if (int > 100) {\n return 1;\n }\n\n return int / 100;\n}\n\nvar names = {\n transparent: 0x00000000,\n // http://www.w3.org/TR/css3-color/#svg-color\n aliceblue: 0xf0f8ffff,\n antiquewhite: 0xfaebd7ff,\n aqua: 0x00ffffff,\n aquamarine: 0x7fffd4ff,\n azure: 0xf0ffffff,\n beige: 0xf5f5dcff,\n bisque: 0xffe4c4ff,\n black: 0x000000ff,\n blanchedalmond: 0xffebcdff,\n blue: 0x0000ffff,\n blueviolet: 0x8a2be2ff,\n brown: 0xa52a2aff,\n burlywood: 0xdeb887ff,\n burntsienna: 0xea7e5dff,\n cadetblue: 0x5f9ea0ff,\n chartreuse: 0x7fff00ff,\n chocolate: 0xd2691eff,\n coral: 0xff7f50ff,\n cornflowerblue: 0x6495edff,\n cornsilk: 0xfff8dcff,\n crimson: 0xdc143cff,\n cyan: 0x00ffffff,\n darkblue: 0x00008bff,\n darkcyan: 0x008b8bff,\n darkgoldenrod: 0xb8860bff,\n darkgray: 0xa9a9a9ff,\n darkgreen: 0x006400ff,\n darkgrey: 0xa9a9a9ff,\n darkkhaki: 0xbdb76bff,\n darkmagenta: 0x8b008bff,\n darkolivegreen: 0x556b2fff,\n darkorange: 0xff8c00ff,\n darkorchid: 0x9932ccff,\n darkred: 0x8b0000ff,\n darksalmon: 0xe9967aff,\n darkseagreen: 0x8fbc8fff,\n darkslateblue: 0x483d8bff,\n darkslategray: 0x2f4f4fff,\n darkslategrey: 0x2f4f4fff,\n darkturquoise: 0x00ced1ff,\n darkviolet: 0x9400d3ff,\n deeppink: 0xff1493ff,\n deepskyblue: 0x00bfffff,\n dimgray: 0x696969ff,\n dimgrey: 0x696969ff,\n dodgerblue: 0x1e90ffff,\n firebrick: 0xb22222ff,\n floralwhite: 0xfffaf0ff,\n forestgreen: 0x228b22ff,\n fuchsia: 0xff00ffff,\n gainsboro: 0xdcdcdcff,\n ghostwhite: 0xf8f8ffff,\n gold: 0xffd700ff,\n goldenrod: 0xdaa520ff,\n gray: 0x808080ff,\n green: 0x008000ff,\n greenyellow: 0xadff2fff,\n grey: 0x808080ff,\n honeydew: 0xf0fff0ff,\n hotpink: 0xff69b4ff,\n indianred: 0xcd5c5cff,\n indigo: 0x4b0082ff,\n ivory: 0xfffff0ff,\n khaki: 0xf0e68cff,\n lavender: 0xe6e6faff,\n lavenderblush: 0xfff0f5ff,\n lawngreen: 0x7cfc00ff,\n lemonchiffon: 0xfffacdff,\n lightblue: 0xadd8e6ff,\n lightcoral: 0xf08080ff,\n lightcyan: 0xe0ffffff,\n lightgoldenrodyellow: 0xfafad2ff,\n lightgray: 0xd3d3d3ff,\n lightgreen: 0x90ee90ff,\n lightgrey: 0xd3d3d3ff,\n lightpink: 0xffb6c1ff,\n lightsalmon: 0xffa07aff,\n lightseagreen: 0x20b2aaff,\n lightskyblue: 0x87cefaff,\n lightslategray: 0x778899ff,\n lightslategrey: 0x778899ff,\n lightsteelblue: 0xb0c4deff,\n lightyellow: 0xffffe0ff,\n lime: 0x00ff00ff,\n limegreen: 0x32cd32ff,\n linen: 0xfaf0e6ff,\n magenta: 0xff00ffff,\n maroon: 0x800000ff,\n mediumaquamarine: 0x66cdaaff,\n mediumblue: 0x0000cdff,\n mediumorchid: 0xba55d3ff,\n mediumpurple: 0x9370dbff,\n mediumseagreen: 0x3cb371ff,\n mediumslateblue: 0x7b68eeff,\n mediumspringgreen: 0x00fa9aff,\n mediumturquoise: 0x48d1ccff,\n mediumvioletred: 0xc71585ff,\n midnightblue: 0x191970ff,\n mintcream: 0xf5fffaff,\n mistyrose: 0xffe4e1ff,\n moccasin: 0xffe4b5ff,\n navajowhite: 0xffdeadff,\n navy: 0x000080ff,\n oldlace: 0xfdf5e6ff,\n olive: 0x808000ff,\n olivedrab: 0x6b8e23ff,\n orange: 0xffa500ff,\n orangered: 0xff4500ff,\n orchid: 0xda70d6ff,\n palegoldenrod: 0xeee8aaff,\n palegreen: 0x98fb98ff,\n paleturquoise: 0xafeeeeff,\n palevioletred: 0xdb7093ff,\n papayawhip: 0xffefd5ff,\n peachpuff: 0xffdab9ff,\n peru: 0xcd853fff,\n pink: 0xffc0cbff,\n plum: 0xdda0ddff,\n powderblue: 0xb0e0e6ff,\n purple: 0x800080ff,\n rebeccapurple: 0x663399ff,\n red: 0xff0000ff,\n rosybrown: 0xbc8f8fff,\n royalblue: 0x4169e1ff,\n saddlebrown: 0x8b4513ff,\n salmon: 0xfa8072ff,\n sandybrown: 0xf4a460ff,\n seagreen: 0x2e8b57ff,\n seashell: 0xfff5eeff,\n sienna: 0xa0522dff,\n silver: 0xc0c0c0ff,\n skyblue: 0x87ceebff,\n slateblue: 0x6a5acdff,\n slategray: 0x708090ff,\n slategrey: 0x708090ff,\n snow: 0xfffafaff,\n springgreen: 0x00ff7fff,\n steelblue: 0x4682b4ff,\n tan: 0xd2b48cff,\n teal: 0x008080ff,\n thistle: 0xd8bfd8ff,\n tomato: 0xff6347ff,\n turquoise: 0x40e0d0ff,\n violet: 0xee82eeff,\n wheat: 0xf5deb3ff,\n white: 0xffffffff,\n whitesmoke: 0xf5f5f5ff,\n yellow: 0xffff00ff,\n yellowgreen: 0x9acd32ff\n};\n\nfunction rgba(colorInt) {\n var r = Math.round((colorInt & 0xff000000) >>> 24);\n var g = Math.round((colorInt & 0x00ff0000) >>> 16);\n var b = Math.round((colorInt & 0x0000ff00) >>> 8);\n var a = ((colorInt & 0x000000ff) >>> 0) / 255;\n return {\n r: r,\n g: g,\n b: b,\n a: a\n };\n}\n\n;\nnormalizeColor.rgba = rgba;\nmodule.exports = normalizeColor;","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[typeof Symbol === \"function\" ? Symbol.iterator : \"@@iterator\"] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n it = o[typeof Symbol === \"function\" ? Symbol.iterator : \"@@iterator\"]();\n return it.next.bind(it);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nimport _babelRuntimeHelpersEsmExtends from \"@babel/runtime/helpers/esm/extends\";\nimport _intlMessageformat from \"intl-messageformat\";\nimport { useIsSSR } from \"@react-aria/ssr\";\nimport _react, { useEffect, useState, useContext, useCallback, useRef } from \"react\";\nvar $d26e725ad56fbcb2c25f52b7de27$var$RTL_SCRIPTS = new Set(['Arab', 'Syrc', 'Samr', 'Mand', 'Thaa', 'Mend', 'Nkoo', 'Adlm', 'Rohg', 'Hebr']);\nvar $d26e725ad56fbcb2c25f52b7de27$var$RTL_LANGS = new Set(['ae', 'ar', 'arc', 'bcc', 'bqi', 'ckb', 'dv', 'fa', 'glk', 'he', 'ku', 'mzn', 'nqo', 'pnb', 'ps', 'sd', 'ug', 'ur', 'yi']);\n\nfunction $d26e725ad56fbcb2c25f52b7de27$export$isRTL(locale) {\n if (Intl.Locale) {\n var script = new Intl.Locale(locale).maximize().script;\n return $d26e725ad56fbcb2c25f52b7de27$var$RTL_SCRIPTS.has(script);\n }\n\n var lang = locale.split('-')[0];\n return $d26e725ad56fbcb2c25f52b7de27$var$RTL_LANGS.has(lang);\n}\n\nfunction $d26e725ad56fbcb2c25f52b7de27$export$numberFormatSignDisplayPolyfill(numberFormat, signDisplay, num) {\n if (signDisplay === 'auto') {\n return numberFormat.format(num);\n } else if (signDisplay === 'never') {\n return numberFormat.format(Math.abs(num));\n } else {\n var needsPositiveSign = false;\n\n if (signDisplay === 'always') {\n needsPositiveSign = num > 0 || Object.is(num, 0);\n } else if (signDisplay === 'exceptZero') {\n if (Object.is(num, -0) || Object.is(num, 0)) {\n num = Math.abs(num);\n } else {\n needsPositiveSign = num > 0;\n }\n }\n\n if (needsPositiveSign) {\n var negative = numberFormat.format(-num);\n var noSign = numberFormat.format(num);\n var minus = negative.replace(noSign, '').replace(/\\u200e|\\u061C/, '');\n\n if (_toConsumableArray(minus).length !== 1) {\n console.warn('@react-aria/i18n polyfill for NumberFormat signDisplay: Unsupported case');\n }\n\n var positive = negative.replace(noSign, '!!!').replace(minus, '+').replace('!!!', noSign);\n return positive;\n } else {\n return numberFormat.format(num);\n }\n }\n}\n\nfunction $e851d0b81d46abd5f971c8e95c27f1$export$getDefaultLocale() {\n var locale = typeof navigator !== 'undefined' && (navigator.language || navigator.userLanguage) || 'en-US';\n return {\n locale: locale,\n direction: $d26e725ad56fbcb2c25f52b7de27$export$isRTL(locale) ? 'rtl' : 'ltr'\n };\n}\n\nvar $e851d0b81d46abd5f971c8e95c27f1$var$currentLocale = $e851d0b81d46abd5f971c8e95c27f1$export$getDefaultLocale();\nvar $e851d0b81d46abd5f971c8e95c27f1$var$listeners = new Set();\n\nfunction $e851d0b81d46abd5f971c8e95c27f1$var$updateLocale() {\n $e851d0b81d46abd5f971c8e95c27f1$var$currentLocale = $e851d0b81d46abd5f971c8e95c27f1$export$getDefaultLocale();\n\n for (var _iterator = _createForOfIteratorHelperLoose($e851d0b81d46abd5f971c8e95c27f1$var$listeners), _step; !(_step = _iterator()).done;) {\n var listener = _step.value;\n listener($e851d0b81d46abd5f971c8e95c27f1$var$currentLocale);\n }\n}\n\nfunction $e851d0b81d46abd5f971c8e95c27f1$export$useDefaultLocale() {\n var isSSR = useIsSSR();\n\n var _useState = useState($e851d0b81d46abd5f971c8e95c27f1$var$currentLocale),\n _useState2 = _slicedToArray(_useState, 2),\n defaultLocale = _useState2[0],\n setDefaultLocale = _useState2[1];\n\n useEffect(function () {\n if ($e851d0b81d46abd5f971c8e95c27f1$var$listeners.size === 0) {\n window.addEventListener('languagechange', $e851d0b81d46abd5f971c8e95c27f1$var$updateLocale);\n }\n\n $e851d0b81d46abd5f971c8e95c27f1$var$listeners.add(setDefaultLocale);\n return function () {\n $e851d0b81d46abd5f971c8e95c27f1$var$listeners.delete(setDefaultLocale);\n\n if ($e851d0b81d46abd5f971c8e95c27f1$var$listeners.size === 0) {\n window.removeEventListener('languagechange', $e851d0b81d46abd5f971c8e95c27f1$var$updateLocale);\n }\n };\n }, []);\n\n if (isSSR) {\n return {\n locale: 'en-US',\n direction: 'ltr'\n };\n }\n\n return defaultLocale;\n}\n\nvar $cff8541df3b5c83067b2ab3ee0d20$var$I18nContext = _react.createContext(null);\n\nexport function I18nProvider(props) {\n var locale = props.locale,\n children = props.children;\n var defaultLocale = $e851d0b81d46abd5f971c8e95c27f1$export$useDefaultLocale();\n var value = locale ? {\n locale: locale,\n direction: $d26e725ad56fbcb2c25f52b7de27$export$isRTL(locale) ? 'rtl' : 'ltr'\n } : defaultLocale;\n return _react.createElement($cff8541df3b5c83067b2ab3ee0d20$var$I18nContext.Provider, {\n value: value\n }, children);\n}\nexport function useLocale() {\n var defaultLocale = $e851d0b81d46abd5f971c8e95c27f1$export$useDefaultLocale();\n var context = useContext($cff8541df3b5c83067b2ab3ee0d20$var$I18nContext);\n return context || defaultLocale;\n}\nvar $f58d206cee90f9c2bf3c03e4522c35$var$formatterCache = new Map();\nexport function useMessageFormatter(strings) {\n var _useLocale = useLocale(),\n currentLocale = _useLocale.locale;\n\n var localeCache = $f58d206cee90f9c2bf3c03e4522c35$var$formatterCache.get(strings);\n\n if (localeCache && localeCache.has(currentLocale)) {\n return localeCache.get(currentLocale);\n }\n\n if (!localeCache) {\n localeCache = new Map();\n $f58d206cee90f9c2bf3c03e4522c35$var$formatterCache.set(strings, localeCache);\n }\n\n var localeStrings = $f58d206cee90f9c2bf3c03e4522c35$var$selectLocale(strings, currentLocale);\n var cache = {};\n\n var formatMessage = function formatMessage(key, variables) {\n var message = cache[key + '.' + currentLocale];\n\n if (!message) {\n var msg = localeStrings[key];\n\n if (!msg) {\n throw new Error(\"Could not find intl message \" + key + \" in \" + currentLocale + \" locale\");\n }\n\n message = new _intlMessageformat(msg, currentLocale);\n cache[key] = message;\n }\n\n return message.format(variables);\n };\n\n localeCache.set(currentLocale, formatMessage);\n return formatMessage;\n}\n\nfunction $f58d206cee90f9c2bf3c03e4522c35$var$selectLocale(strings, locale) {\n if (strings[locale]) {\n return strings[locale];\n }\n\n var language = $f58d206cee90f9c2bf3c03e4522c35$var$getLanguage(locale);\n\n for (var key in strings) {\n if (key.startsWith(language + '-')) {\n return strings[key];\n }\n }\n\n return strings['en-US'];\n}\n\nfunction $f58d206cee90f9c2bf3c03e4522c35$var$getLanguage(locale) {\n if (Intl.Locale) {\n return new Intl.Locale(locale).language;\n }\n\n return locale.split('-')[0];\n}\n\nvar $b0007c63a64054c318efb8b6cd0053f$var$formatterCache = new Map();\nexport function useDateFormatter(options) {\n var _useLocale2 = useLocale(),\n locale = _useLocale2.locale;\n\n var cacheKey = locale + (options ? Object.entries(options).sort(function (a, b) {\n return a[0] < b[0] ? -1 : 1;\n }).join() : '');\n\n if ($b0007c63a64054c318efb8b6cd0053f$var$formatterCache.has(cacheKey)) {\n return $b0007c63a64054c318efb8b6cd0053f$var$formatterCache.get(cacheKey);\n }\n\n var formatter = new Intl.DateTimeFormat(locale, options);\n $b0007c63a64054c318efb8b6cd0053f$var$formatterCache.set(cacheKey, formatter);\n return formatter;\n}\nexport function useNumberParser() {\n var _useLocale3 = useLocale(),\n locale = _useLocale3.locale;\n\n var numberData = useRef({\n group: null,\n decimal: null,\n numeral: null,\n index: null\n });\n useEffect(function () {\n var parts = new Intl.NumberFormat(locale).formatToParts(12345.6);\n\n var numerals = _toConsumableArray(new Intl.NumberFormat(locale, {\n useGrouping: false\n }).format(9876543210)).reverse();\n\n var index = new Map(numerals.map(function (d, i) {\n return [d, i];\n }));\n numberData.current.group = new RegExp(\"[\" + parts.find(function (d) {\n return d.type === 'group';\n }).value + \"]\", 'g');\n numberData.current.decimal = new RegExp(\"[\" + parts.find(function (d) {\n return d.type === 'decimal';\n }).value + \"]\");\n numberData.current.numeral = new RegExp(\"[\" + numerals.join('') + \"]\", 'g');\n\n numberData.current.index = function (d) {\n return index.get(d);\n };\n }, [locale]);\n var parse = useCallback(function (value) {\n value = value.trim().replace(numberData.current.group, '').replace(numberData.current.decimal, '.').replace(numberData.current.numeral, numberData.current.index);\n return value ? +value : NaN;\n }, []);\n return {\n parse: parse\n };\n}\nvar $ece3e138e83d330f42860705a2ec18a$var$formatterCache = new Map();\nvar $ece3e138e83d330f42860705a2ec18a$var$supportsSignDisplay = false;\n\ntry {\n $ece3e138e83d330f42860705a2ec18a$var$supportsSignDisplay = new Intl.NumberFormat('de-DE', {\n signDisplay: 'exceptZero'\n }).resolvedOptions().signDisplay === 'exceptZero';\n} catch (e) {}\n\nexport function useNumberFormatter(options) {\n var _useLocale4 = useLocale(),\n locale = _useLocale4.locale;\n\n var cacheKey = locale + (options ? Object.entries(options).sort(function (a, b) {\n return a[0] < b[0] ? -1 : 1;\n }).join() : '');\n\n if ($ece3e138e83d330f42860705a2ec18a$var$formatterCache.has(cacheKey)) {\n return $ece3e138e83d330f42860705a2ec18a$var$formatterCache.get(cacheKey);\n }\n\n var numberFormatter = new Intl.NumberFormat(locale, options);\n\n var _ref = options || {},\n signDisplay = _ref.signDisplay;\n\n $ece3e138e83d330f42860705a2ec18a$var$formatterCache.set(cacheKey, !$ece3e138e83d330f42860705a2ec18a$var$supportsSignDisplay && signDisplay != null ? new Proxy(numberFormatter, {\n get: function get(target, property) {\n if (property === 'format') {\n return function (v) {\n return $d26e725ad56fbcb2c25f52b7de27$export$numberFormatSignDisplayPolyfill(numberFormatter, signDisplay, v);\n };\n } else {\n return target[property];\n }\n }\n }) : numberFormatter);\n return numberFormatter;\n}\nvar $a4045a18d7252bf6de9312e613c4e$var$cache = new Map();\nexport function useCollator(options) {\n var _useLocale5 = useLocale(),\n locale = _useLocale5.locale;\n\n var cacheKey = locale + (options ? Object.entries(options).sort(function (a, b) {\n return a[0] < b[0] ? -1 : 1;\n }).join() : '');\n\n if ($a4045a18d7252bf6de9312e613c4e$var$cache.has(cacheKey)) {\n return $a4045a18d7252bf6de9312e613c4e$var$cache.get(cacheKey);\n }\n\n var formatter = new Intl.Collator(locale, options);\n $a4045a18d7252bf6de9312e613c4e$var$cache.set(cacheKey, formatter);\n return formatter;\n}\nexport function useFilter(options) {\n var collator = useCollator(_babelRuntimeHelpersEsmExtends({\n usage: 'search'\n }, options));\n return {\n startsWith: function startsWith(string, substring) {\n if (substring.length === 0) {\n return true;\n }\n\n string = string.normalize('NFC');\n substring = substring.normalize('NFC');\n return collator.compare(string.slice(0, substring.length), substring) === 0;\n },\n endsWith: function endsWith(string, substring) {\n if (substring.length === 0) {\n return true;\n }\n\n string = string.normalize('NFC');\n substring = substring.normalize('NFC');\n return collator.compare(string.slice(-substring.length), substring) === 0;\n },\n contains: function contains(string, substring) {\n if (substring.length === 0) {\n return true;\n }\n\n string = string.normalize('NFC');\n substring = substring.normalize('NFC');\n var scan = 0;\n var sliceLen = substring.length;\n\n for (; scan + sliceLen <= string.length; scan++) {\n var slice = string.slice(scan, scan + sliceLen);\n\n if (collator.compare(substring, slice) === 0) {\n return true;\n }\n }\n\n return false;\n }\n };\n}","import { useNumberFormatter } from \"@react-aria/i18n\";\nimport { useLabel } from \"@react-aria/label\";\nimport { clamp, filterDOMProps, mergeProps } from \"@react-aria/utils\";\nimport _babelRuntimeHelpersEsmExtends from \"@babel/runtime/helpers/esm/extends\";\nexport function useProgressBar(props) {\n var _props$value = props.value,\n value = _props$value === void 0 ? 0 : _props$value,\n _props$minValue = props.minValue,\n minValue = _props$minValue === void 0 ? 0 : _props$minValue,\n _props$maxValue = props.maxValue,\n maxValue = _props$maxValue === void 0 ? 100 : _props$maxValue,\n valueLabel = props.valueLabel,\n isIndeterminate = props.isIndeterminate,\n _props$formatOptions = props.formatOptions,\n formatOptions = _props$formatOptions === void 0 ? {\n style: 'percent'\n } : _props$formatOptions;\n var domProps = filterDOMProps(props, {\n labelable: true\n });\n\n var _useLabel = useLabel(_babelRuntimeHelpersEsmExtends({}, props, {\n labelElementType: 'span'\n })),\n labelProps = _useLabel.labelProps,\n fieldProps = _useLabel.fieldProps;\n\n value = clamp(value, minValue, maxValue);\n var percentage = (value - minValue) / (maxValue - minValue);\n var formatter = useNumberFormatter(formatOptions);\n\n if (!isIndeterminate && !valueLabel) {\n var valueToFormat = formatOptions.style === 'percent' ? percentage : value;\n valueLabel = formatter.format(valueToFormat);\n }\n\n return {\n progressBarProps: mergeProps(domProps, _babelRuntimeHelpersEsmExtends({}, fieldProps, {\n 'aria-valuenow': isIndeterminate ? undefined : value,\n 'aria-valuemin': minValue,\n 'aria-valuemax': maxValue,\n 'aria-valuetext': isIndeterminate ? undefined : valueLabel,\n role: 'progressbar'\n })),\n labelProps: labelProps\n };\n}","import { useId, useLabels } from \"@react-aria/utils\";\nexport function useLabel(props) {\n var id = props.id,\n label = props.label,\n ariaLabelledby = props['aria-labelledby'],\n ariaLabel = props['aria-label'],\n _props$labelElementTy = props.labelElementType,\n labelElementType = _props$labelElementTy === void 0 ? 'label' : _props$labelElementTy;\n id = useId(id);\n var labelId = useId();\n var labelProps = {};\n\n if (label) {\n ariaLabelledby = ariaLabelledby ? ariaLabelledby + \" \" + labelId : labelId;\n labelProps = {\n id: labelId,\n htmlFor: labelElementType === 'label' ? id : undefined\n };\n } else if (!ariaLabelledby && !ariaLabel) {\n console.warn('If you do not provide a visible label, you must specify an aria-label or aria-labelledby attribute for accessibility');\n }\n\n var fieldProps = useLabels({\n id: id,\n 'aria-label': ariaLabel,\n 'aria-labelledby': ariaLabelledby\n });\n return {\n labelProps: labelProps,\n fieldProps: fieldProps\n };\n}","import React from \"react\";\n\nimport { AriaProgressBarProps } from \"@react-types/progress\";\nimport { useProgressBar } from \"@react-aria/progress\";\n\n/**\n * Shows the current progress through a track and can seek to a position by clicking or pressing the arrow keys while it has focus\n */\nexport default function ProgressBar(\n props: {\n value: number;\n minValue?: number;\n maxValue?: number;\n handleSeek?: (event: React.ChangeEvent) => void;\n } & AriaProgressBarProps\n) {\n const { value, minValue = 0, maxValue = 100, handleSeek } = props;\n const { progressBarProps } = useProgressBar({\n \"aria-label\": \"Elapsed Time\",\n ...props,\n });\n\n const percentage = (value - minValue) / (maxValue - minValue);\n // const barWidth = `${Math.round(percentage * 100)}%`;\n\n return (\n
\n \n
\n );\n}\n","import React, { useRef } from \"react\";\nimport { useButton } from \"@react-aria/button\";\nimport { AriaButtonProps } from \"@react-types/button\";\nimport { MdReplay10, MdForward10 } from \"react-icons/md\";\nimport { useFocusRing } from \"@react-aria/focus\";\n\n// import { RichText } from \"prismic-reactjs\";\n\nexport default function JumpButton({\n direction = \"forwards\",\n ...props\n}: { direction: \"forwards\" | \"backwards\" } & AriaButtonProps) {\n const ref = useRef();\n const { buttonProps, isPressed } = useButton(\n {\n \"aria-label\":\n direction === \"forwards\" ? \"10 seconds forwards\" : \"10 seconds back\",\n ...props,\n },\n ref\n );\n const Icon = direction === \"forwards\" ? MdForward10 : MdReplay10;\n const { isFocusVisible, focusProps } = useFocusRing();\n\n return (\n \n \n \n );\n}\n","import React from \"react\";\n\nfunction formatRemainingTime(seconds: number) {\n const lessThanSixtyMin = seconds < 3600;\n const lessThanTwoMin = seconds < 120;\n const lessThanOneMin = seconds <= 60;\n\n if (lessThanOneMin) {\n return `${seconds}s left`;\n }\n\n if (lessThanTwoMin) {\n return `1 min ${seconds - 60}s left`;\n }\n\n if (lessThanSixtyMin) {\n return `~ ${Math.round(seconds / 60)} min left`;\n }\n\n return `${Math.floor(seconds / 60 / 60)} hours left`;\n}\n\nexport default function TimeRemaining({ seconds }: { seconds: number }) {\n return (\n {formatRemainingTime(seconds)}\n );\n}\n","import React, { StyleHTMLAttributes } from \"react\";\n\nfunction Artwork({\n image,\n styles,\n size = image.dimensions.width,\n}: {\n image: {\n url: string;\n dimensions: { width: number; height: number };\n };\n size?: number | string;\n styles?: React.CSSProperties;\n}) {\n return (\n \n );\n}\n\nexport default Artwork;\n","import React, { useEffect, useCallback, useState } from \"react\";\n\nimport { Howl, Howler } from \"howler\";\nimport ProgressBar from \"./components/ProgressBar\";\nimport PlayPauseButton from \"./components/PlayPauseButton\";\nimport JumpButton from \"./components/JumpButton\";\nimport Rate from \"./components/Rate\";\nimport TimeRemaining from \"./components/TimeRemaining\";\nimport Artwork from \"./components/Artwork\";\nimport \"./NowPlaying.css\";\n// import { RichText } from \"prismic-reactjs\";\n\ntype TPlayStates = \"playing\" | \"paused\" | \"loading\" | \"unloaded\";\n\nexport function NowPlaying(props: {\n showSkipBack?: boolean;\n showSkipForward?: boolean;\n showArtwork?: boolean;\n showProgressBar?: boolean;\n showTitle?: boolean;\n hideWhenInactive?: boolean;\n position?: \"static\" | \"sticky\";\n}) {\n const [audio, setAudio] = useState(null);\n\n const [playState, setPlayState] = useState(\"paused\");\n const [progress, setProgress] = useState(0);\n const [title, setTitle] = useState(\"\");\n const [artwork, setArtwork] = useState<{\n url: string;\n dimensions: { width: number; height: number };\n }>(null);\n const [volume, setVolume] = useState(1);\n const [rate, setRate] = useState(1);\n\n const {\n showSkipBack = true,\n showSkipForward = true,\n showArtwork = true,\n showProgressBar = true,\n showTitle = true,\n hideWhenInactive = true,\n position = \"sticky\",\n } = props;\n\n useEffect(() => {\n let howl: Howl;\n let progressInterval: number;\n\n const cleanUp = () => {\n if (howl !== undefined) {\n howl.unload();\n }\n window.cancelAnimationFrame(progressInterval);\n setAudio(null);\n };\n\n // const event = new Event('loadPodcastEpisode');\n\n //@ts-ignore Event type for addEventListener wrongly does not contain details so throws an error for custom events even though valid\n const loadEpisode: EventListener = (\n event: CustomEvent<{\n audioFile: {\n url: string;\n };\n artwork: {\n url: string;\n dimensions: { width: number; height: number };\n };\n title: string;\n }>\n ) => {\n cleanUp();\n\n const {\n audioFile: { url },\n artwork,\n title,\n } = event.detail;\n\n setTitle(title);\n setArtwork(artwork);\n\n howl = new Howl({ src: url, html5: true });\n\n const tick = () => {\n setProgress(Math.floor(Number(howl.seek())));\n progressInterval = window.requestAnimationFrame(tick);\n };\n howl.on(\"play\", () => {\n setPlayState(\"playing\");\n progressInterval = window.requestAnimationFrame(tick);\n });\n howl.on(\"pause\", () => {\n setPlayState(\"paused\");\n window.cancelAnimationFrame(progressInterval);\n });\n howl.on(\"rate\", () => {\n setRate(howl.rate());\n });\n howl.play();\n setAudio(howl);\n };\n\n document.addEventListener(\"loadPodcastEpisode\", loadEpisode);\n document.addEventListener(\"clearPodcastEpisode\", cleanUp);\n\n return () => {\n // Clean-up\n cleanUp();\n document.removeEventListener(\"loadPodcastEpisode\", loadEpisode);\n document.removeEventListener(\"clearPodcastEpisode\", cleanUp);\n };\n }, []);\n\n const isPlaying = Boolean(playState === \"playing\");\n\n const handlePlay = useCallback(() => {\n if (audio) {\n audio.load();\n playState === \"playing\" ? audio.pause() : audio.play();\n }\n }, [audio, playState]);\n\n const handleSetRate = useCallback(\n (rate: number) => {\n if (audio) {\n audio.rate(rate);\n }\n },\n [audio, playState]\n );\n\n const handleSeek = useCallback(\n (event: React.ChangeEvent) => {\n if (audio) {\n setProgress(Number(event.target.value));\n audio.seek(Number(event.target.value));\n }\n },\n [audio]\n );\n\n const handleSkipBack = useCallback(() => {\n const jumpTo = Math.max(0, progress - 10);\n setProgress(Number(jumpTo));\n audio.seek(Number(jumpTo));\n }, [audio, progress]);\n\n const handleSkipForward = useCallback(() => {\n const jumpTo = Math.min(audio.duration(), progress + 10);\n setProgress(Number(jumpTo));\n audio.seek(Number(jumpTo));\n }, [audio, progress]);\n\n const durationSeconds = Math.ceil(audio?.duration() || 0);\n\n const hidePlayer = Boolean(!audio && hideWhenInactive);\n\n return (\n \n
\n {Boolean(showSkipBack) && (\n \n )}\n \n {Boolean(showSkipForward) && (\n \n )}\n\n {/* */}\n
\n {Boolean(showTitle || showProgressBar) && (\n
\n {Boolean(showTitle) && (\n
\n

{title}

\n \n
\n )}\n {Boolean(showProgressBar) && (\n \n )}\n
\n )}\n {Boolean(showArtwork && artwork) && (\n \n )}\n \n );\n}\n\nexport default NowPlaying;\n","import React from \"react\";\nimport WebFooter from \"./WebFooter\";\nimport MainMenu from \"./MainMenu\";\nimport NowPlaying from \"./NowPlaying\";\n\ninterface IWebAudioWrapProps {\n element?: React.ReactChildren;\n}\n\nfunction WebAudioWrap({ element }: IWebAudioWrapProps) {\n return (\n <>\n {element}\n \n \n );\n}\n\nexport default WebAudioWrap;\n","import WebAudioWrap from \"./src/components/WebAudioWrap\";\nexport const wrapRootElement = WebAudioWrap;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","module.exports = {};\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = capitalizeString;\n\nfunction capitalizeString(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}","/*!\n * howler.js v2.2.1\n * howlerjs.com\n *\n * (c) 2013-2020, James Simpson of GoldFire Studios\n * goldfirestudios.com\n *\n * MIT License\n */\n(function () {\n 'use strict';\n /** Global Methods **/\n\n /***************************************************************************/\n\n /**\n * Create the global controller. All contained methods and properties apply\n * to all sounds that are currently playing or will be in the future.\n */\n\n var HowlerGlobal = function HowlerGlobal() {\n this.init();\n };\n\n HowlerGlobal.prototype = {\n /**\n * Initialize the global Howler object.\n * @return {Howler}\n */\n init: function init() {\n var self = this || Howler; // Create a global ID counter.\n\n self._counter = 1000; // Pool of unlocked HTML5 Audio objects.\n\n self._html5AudioPool = [];\n self.html5PoolSize = 10; // Internal properties.\n\n self._codecs = {};\n self._howls = [];\n self._muted = false;\n self._volume = 1;\n self._canPlayEvent = 'canplaythrough';\n self._navigator = typeof window !== 'undefined' && window.navigator ? window.navigator : null; // Public properties.\n\n self.masterGain = null;\n self.noAudio = false;\n self.usingWebAudio = true;\n self.autoSuspend = true;\n self.ctx = null; // Set to false to disable the auto audio unlocker.\n\n self.autoUnlock = true; // Setup the various state values for global tracking.\n\n self._setup();\n\n return self;\n },\n\n /**\n * Get/set the global volume for all sounds.\n * @param {Float} vol Volume from 0.0 to 1.0.\n * @return {Howler/Float} Returns self or current volume.\n */\n volume: function volume(vol) {\n var self = this || Howler;\n vol = parseFloat(vol); // If we don't have an AudioContext created yet, run the setup.\n\n if (!self.ctx) {\n setupAudioContext();\n }\n\n if (typeof vol !== 'undefined' && vol >= 0 && vol <= 1) {\n self._volume = vol; // Don't update any of the nodes if we are muted.\n\n if (self._muted) {\n return self;\n } // When using Web Audio, we just need to adjust the master gain.\n\n\n if (self.usingWebAudio) {\n self.masterGain.gain.setValueAtTime(vol, Howler.ctx.currentTime);\n } // Loop through and change volume for all HTML5 audio nodes.\n\n\n for (var i = 0; i < self._howls.length; i++) {\n if (!self._howls[i]._webAudio) {\n // Get all of the sounds in this Howl group.\n var ids = self._howls[i]._getSoundIds(); // Loop through all sounds and change the volumes.\n\n\n for (var j = 0; j < ids.length; j++) {\n var sound = self._howls[i]._soundById(ids[j]);\n\n if (sound && sound._node) {\n sound._node.volume = sound._volume * vol;\n }\n }\n }\n }\n\n return self;\n }\n\n return self._volume;\n },\n\n /**\n * Handle muting and unmuting globally.\n * @param {Boolean} muted Is muted or not.\n */\n mute: function mute(muted) {\n var self = this || Howler; // If we don't have an AudioContext created yet, run the setup.\n\n if (!self.ctx) {\n setupAudioContext();\n }\n\n self._muted = muted; // With Web Audio, we just need to mute the master gain.\n\n if (self.usingWebAudio) {\n self.masterGain.gain.setValueAtTime(muted ? 0 : self._volume, Howler.ctx.currentTime);\n } // Loop through and mute all HTML5 Audio nodes.\n\n\n for (var i = 0; i < self._howls.length; i++) {\n if (!self._howls[i]._webAudio) {\n // Get all of the sounds in this Howl group.\n var ids = self._howls[i]._getSoundIds(); // Loop through all sounds and mark the audio node as muted.\n\n\n for (var j = 0; j < ids.length; j++) {\n var sound = self._howls[i]._soundById(ids[j]);\n\n if (sound && sound._node) {\n sound._node.muted = muted ? true : sound._muted;\n }\n }\n }\n }\n\n return self;\n },\n\n /**\n * Handle stopping all sounds globally.\n */\n stop: function stop() {\n var self = this || Howler; // Loop through all Howls and stop them.\n\n for (var i = 0; i < self._howls.length; i++) {\n self._howls[i].stop();\n }\n\n return self;\n },\n\n /**\n * Unload and destroy all currently loaded Howl objects.\n * @return {Howler}\n */\n unload: function unload() {\n var self = this || Howler;\n\n for (var i = self._howls.length - 1; i >= 0; i--) {\n self._howls[i].unload();\n } // Create a new AudioContext to make sure it is fully reset.\n\n\n if (self.usingWebAudio && self.ctx && typeof self.ctx.close !== 'undefined') {\n self.ctx.close();\n self.ctx = null;\n setupAudioContext();\n }\n\n return self;\n },\n\n /**\n * Check for codec support of specific extension.\n * @param {String} ext Audio file extention.\n * @return {Boolean}\n */\n codecs: function codecs(ext) {\n return (this || Howler)._codecs[ext.replace(/^x-/, '')];\n },\n\n /**\n * Setup various state values for global tracking.\n * @return {Howler}\n */\n _setup: function _setup() {\n var self = this || Howler; // Keeps track of the suspend/resume state of the AudioContext.\n\n self.state = self.ctx ? self.ctx.state || 'suspended' : 'suspended'; // Automatically begin the 30-second suspend process\n\n self._autoSuspend(); // Check if audio is available.\n\n\n if (!self.usingWebAudio) {\n // No audio is available on this system if noAudio is set to true.\n if (typeof Audio !== 'undefined') {\n try {\n var test = new Audio(); // Check if the canplaythrough event is available.\n\n if (typeof test.oncanplaythrough === 'undefined') {\n self._canPlayEvent = 'canplay';\n }\n } catch (e) {\n self.noAudio = true;\n }\n } else {\n self.noAudio = true;\n }\n } // Test to make sure audio isn't disabled in Internet Explorer.\n\n\n try {\n var test = new Audio();\n\n if (test.muted) {\n self.noAudio = true;\n }\n } catch (e) {} // Check for supported codecs.\n\n\n if (!self.noAudio) {\n self._setupCodecs();\n }\n\n return self;\n },\n\n /**\n * Check for browser support for various codecs and cache the results.\n * @return {Howler}\n */\n _setupCodecs: function _setupCodecs() {\n var self = this || Howler;\n var audioTest = null; // Must wrap in a try/catch because IE11 in server mode throws an error.\n\n try {\n audioTest = typeof Audio !== 'undefined' ? new Audio() : null;\n } catch (err) {\n return self;\n }\n\n if (!audioTest || typeof audioTest.canPlayType !== 'function') {\n return self;\n }\n\n var mpegTest = audioTest.canPlayType('audio/mpeg;').replace(/^no$/, ''); // Opera version <33 has mixed MP3 support, so we need to check for and block it.\n\n var checkOpera = self._navigator && self._navigator.userAgent.match(/OPR\\/([0-6].)/g);\n\n var isOldOpera = checkOpera && parseInt(checkOpera[0].split('/')[1], 10) < 33;\n self._codecs = {\n mp3: !!(!isOldOpera && (mpegTest || audioTest.canPlayType('audio/mp3;').replace(/^no$/, ''))),\n mpeg: !!mpegTest,\n opus: !!audioTest.canPlayType('audio/ogg; codecs=\"opus\"').replace(/^no$/, ''),\n ogg: !!audioTest.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/, ''),\n oga: !!audioTest.canPlayType('audio/ogg; codecs=\"vorbis\"').replace(/^no$/, ''),\n wav: !!(audioTest.canPlayType('audio/wav; codecs=\"1\"') || audioTest.canPlayType('audio/wav')).replace(/^no$/, ''),\n aac: !!audioTest.canPlayType('audio/aac;').replace(/^no$/, ''),\n caf: !!audioTest.canPlayType('audio/x-caf;').replace(/^no$/, ''),\n m4a: !!(audioTest.canPlayType('audio/x-m4a;') || audioTest.canPlayType('audio/m4a;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n m4b: !!(audioTest.canPlayType('audio/x-m4b;') || audioTest.canPlayType('audio/m4b;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n mp4: !!(audioTest.canPlayType('audio/x-mp4;') || audioTest.canPlayType('audio/mp4;') || audioTest.canPlayType('audio/aac;')).replace(/^no$/, ''),\n weba: !!audioTest.canPlayType('audio/webm; codecs=\"vorbis\"').replace(/^no$/, ''),\n webm: !!audioTest.canPlayType('audio/webm; codecs=\"vorbis\"').replace(/^no$/, ''),\n dolby: !!audioTest.canPlayType('audio/mp4; codecs=\"ec-3\"').replace(/^no$/, ''),\n flac: !!(audioTest.canPlayType('audio/x-flac;') || audioTest.canPlayType('audio/flac;')).replace(/^no$/, '')\n };\n return self;\n },\n\n /**\n * Some browsers/devices will only allow audio to be played after a user interaction.\n * Attempt to automatically unlock audio on the first user interaction.\n * Concept from: http://paulbakaus.com/tutorials/html5/web-audio-on-ios/\n * @return {Howler}\n */\n _unlockAudio: function _unlockAudio() {\n var self = this || Howler; // Only run this if Web Audio is supported and it hasn't already been unlocked.\n\n if (self._audioUnlocked || !self.ctx) {\n return;\n }\n\n self._audioUnlocked = false;\n self.autoUnlock = false; // Some mobile devices/platforms have distortion issues when opening/closing tabs and/or web views.\n // Bugs in the browser (especially Mobile Safari) can cause the sampleRate to change from 44100 to 48000.\n // By calling Howler.unload(), we create a new AudioContext with the correct sampleRate.\n\n if (!self._mobileUnloaded && self.ctx.sampleRate !== 44100) {\n self._mobileUnloaded = true;\n self.unload();\n } // Scratch buffer for enabling iOS to dispose of web audio buffers correctly, as per:\n // http://stackoverflow.com/questions/24119684\n\n\n self._scratchBuffer = self.ctx.createBuffer(1, 1, 22050); // Call this method on touch start to create and play a buffer,\n // then check if the audio actually played to determine if\n // audio has now been unlocked on iOS, Android, etc.\n\n var unlock = function unlock(e) {\n // Create a pool of unlocked HTML5 Audio objects that can\n // be used for playing sounds without user interaction. HTML5\n // Audio objects must be individually unlocked, as opposed\n // to the WebAudio API which only needs a single activation.\n // This must occur before WebAudio setup or the source.onended\n // event will not fire.\n while (self._html5AudioPool.length < self.html5PoolSize) {\n try {\n var audioNode = new Audio(); // Mark this Audio object as unlocked to ensure it can get returned\n // to the unlocked pool when released.\n\n audioNode._unlocked = true; // Add the audio node to the pool.\n\n self._releaseHtml5Audio(audioNode);\n } catch (e) {\n self.noAudio = true;\n break;\n }\n } // Loop through any assigned audio nodes and unlock them.\n\n\n for (var i = 0; i < self._howls.length; i++) {\n if (!self._howls[i]._webAudio) {\n // Get all of the sounds in this Howl group.\n var ids = self._howls[i]._getSoundIds(); // Loop through all sounds and unlock the audio nodes.\n\n\n for (var j = 0; j < ids.length; j++) {\n var sound = self._howls[i]._soundById(ids[j]);\n\n if (sound && sound._node && !sound._node._unlocked) {\n sound._node._unlocked = true;\n\n sound._node.load();\n }\n }\n }\n } // Fix Android can not play in suspend state.\n\n\n self._autoResume(); // Create an empty buffer.\n\n\n var source = self.ctx.createBufferSource();\n source.buffer = self._scratchBuffer;\n source.connect(self.ctx.destination); // Play the empty buffer.\n\n if (typeof source.start === 'undefined') {\n source.noteOn(0);\n } else {\n source.start(0);\n } // Calling resume() on a stack initiated by user gesture is what actually unlocks the audio on Android Chrome >= 55.\n\n\n if (typeof self.ctx.resume === 'function') {\n self.ctx.resume();\n } // Setup a timeout to check that we are unlocked on the next event loop.\n\n\n source.onended = function () {\n source.disconnect(0); // Update the unlocked state and prevent this check from happening again.\n\n self._audioUnlocked = true; // Remove the touch start listener.\n\n document.removeEventListener('touchstart', unlock, true);\n document.removeEventListener('touchend', unlock, true);\n document.removeEventListener('click', unlock, true); // Let all sounds know that audio has been unlocked.\n\n for (var i = 0; i < self._howls.length; i++) {\n self._howls[i]._emit('unlock');\n }\n };\n }; // Setup a touch start listener to attempt an unlock in.\n\n\n document.addEventListener('touchstart', unlock, true);\n document.addEventListener('touchend', unlock, true);\n document.addEventListener('click', unlock, true);\n return self;\n },\n\n /**\n * Get an unlocked HTML5 Audio object from the pool. If none are left,\n * return a new Audio object and throw a warning.\n * @return {Audio} HTML5 Audio object.\n */\n _obtainHtml5Audio: function _obtainHtml5Audio() {\n var self = this || Howler; // Return the next object from the pool if one exists.\n\n if (self._html5AudioPool.length) {\n return self._html5AudioPool.pop();\n } //.Check if the audio is locked and throw a warning.\n\n\n var testPlay = new Audio().play();\n\n if (testPlay && typeof Promise !== 'undefined' && (testPlay instanceof Promise || typeof testPlay.then === 'function')) {\n testPlay.catch(function () {\n console.warn('HTML5 Audio pool exhausted, returning potentially locked audio object.');\n });\n }\n\n return new Audio();\n },\n\n /**\n * Return an activated HTML5 Audio object to the pool.\n * @return {Howler}\n */\n _releaseHtml5Audio: function _releaseHtml5Audio(audio) {\n var self = this || Howler; // Don't add audio to the pool if we don't know if it has been unlocked.\n\n if (audio._unlocked) {\n self._html5AudioPool.push(audio);\n }\n\n return self;\n },\n\n /**\n * Automatically suspend the Web Audio AudioContext after no sound has played for 30 seconds.\n * This saves processing/energy and fixes various browser-specific bugs with audio getting stuck.\n * @return {Howler}\n */\n _autoSuspend: function _autoSuspend() {\n var self = this;\n\n if (!self.autoSuspend || !self.ctx || typeof self.ctx.suspend === 'undefined' || !Howler.usingWebAudio) {\n return;\n } // Check if any sounds are playing.\n\n\n for (var i = 0; i < self._howls.length; i++) {\n if (self._howls[i]._webAudio) {\n for (var j = 0; j < self._howls[i]._sounds.length; j++) {\n if (!self._howls[i]._sounds[j]._paused) {\n return self;\n }\n }\n }\n }\n\n if (self._suspendTimer) {\n clearTimeout(self._suspendTimer);\n } // If no sound has played after 30 seconds, suspend the context.\n\n\n self._suspendTimer = setTimeout(function () {\n if (!self.autoSuspend) {\n return;\n }\n\n self._suspendTimer = null;\n self.state = 'suspending'; // Handle updating the state of the audio context after suspending.\n\n var handleSuspension = function handleSuspension() {\n self.state = 'suspended';\n\n if (self._resumeAfterSuspend) {\n delete self._resumeAfterSuspend;\n\n self._autoResume();\n }\n }; // Either the state gets suspended or it is interrupted.\n // Either way, we need to update the state to suspended.\n\n\n self.ctx.suspend().then(handleSuspension, handleSuspension);\n }, 30000);\n return self;\n },\n\n /**\n * Automatically resume the Web Audio AudioContext when a new sound is played.\n * @return {Howler}\n */\n _autoResume: function _autoResume() {\n var self = this;\n\n if (!self.ctx || typeof self.ctx.resume === 'undefined' || !Howler.usingWebAudio) {\n return;\n }\n\n if (self.state === 'running' && self.ctx.state !== 'interrupted' && self._suspendTimer) {\n clearTimeout(self._suspendTimer);\n self._suspendTimer = null;\n } else if (self.state === 'suspended' || self.state === 'running' && self.ctx.state === 'interrupted') {\n self.ctx.resume().then(function () {\n self.state = 'running'; // Emit to all Howls that the audio has resumed.\n\n for (var i = 0; i < self._howls.length; i++) {\n self._howls[i]._emit('resume');\n }\n });\n\n if (self._suspendTimer) {\n clearTimeout(self._suspendTimer);\n self._suspendTimer = null;\n }\n } else if (self.state === 'suspending') {\n self._resumeAfterSuspend = true;\n }\n\n return self;\n }\n }; // Setup the global audio controller.\n\n var Howler = new HowlerGlobal();\n /** Group Methods **/\n\n /***************************************************************************/\n\n /**\n * Create an audio group controller.\n * @param {Object} o Passed in properties for this group.\n */\n\n var Howl = function Howl(o) {\n var self = this; // Throw an error if no source is provided.\n\n if (!o.src || o.src.length === 0) {\n console.error('An array of source files must be passed with any new Howl.');\n return;\n }\n\n self.init(o);\n };\n\n Howl.prototype = {\n /**\n * Initialize a new Howl group object.\n * @param {Object} o Passed in properties for this group.\n * @return {Howl}\n */\n init: function init(o) {\n var self = this; // If we don't have an AudioContext created yet, run the setup.\n\n if (!Howler.ctx) {\n setupAudioContext();\n } // Setup user-defined default properties.\n\n\n self._autoplay = o.autoplay || false;\n self._format = typeof o.format !== 'string' ? o.format : [o.format];\n self._html5 = o.html5 || false;\n self._muted = o.mute || false;\n self._loop = o.loop || false;\n self._pool = o.pool || 5;\n self._preload = typeof o.preload === 'boolean' || o.preload === 'metadata' ? o.preload : true;\n self._rate = o.rate || 1;\n self._sprite = o.sprite || {};\n self._src = typeof o.src !== 'string' ? o.src : [o.src];\n self._volume = o.volume !== undefined ? o.volume : 1;\n self._xhr = {\n method: o.xhr && o.xhr.method ? o.xhr.method : 'GET',\n headers: o.xhr && o.xhr.headers ? o.xhr.headers : null,\n withCredentials: o.xhr && o.xhr.withCredentials ? o.xhr.withCredentials : false\n }; // Setup all other default properties.\n\n self._duration = 0;\n self._state = 'unloaded';\n self._sounds = [];\n self._endTimers = {};\n self._queue = [];\n self._playLock = false; // Setup event listeners.\n\n self._onend = o.onend ? [{\n fn: o.onend\n }] : [];\n self._onfade = o.onfade ? [{\n fn: o.onfade\n }] : [];\n self._onload = o.onload ? [{\n fn: o.onload\n }] : [];\n self._onloaderror = o.onloaderror ? [{\n fn: o.onloaderror\n }] : [];\n self._onplayerror = o.onplayerror ? [{\n fn: o.onplayerror\n }] : [];\n self._onpause = o.onpause ? [{\n fn: o.onpause\n }] : [];\n self._onplay = o.onplay ? [{\n fn: o.onplay\n }] : [];\n self._onstop = o.onstop ? [{\n fn: o.onstop\n }] : [];\n self._onmute = o.onmute ? [{\n fn: o.onmute\n }] : [];\n self._onvolume = o.onvolume ? [{\n fn: o.onvolume\n }] : [];\n self._onrate = o.onrate ? [{\n fn: o.onrate\n }] : [];\n self._onseek = o.onseek ? [{\n fn: o.onseek\n }] : [];\n self._onunlock = o.onunlock ? [{\n fn: o.onunlock\n }] : [];\n self._onresume = []; // Web Audio or HTML5 Audio?\n\n self._webAudio = Howler.usingWebAudio && !self._html5; // Automatically try to enable audio.\n\n if (typeof Howler.ctx !== 'undefined' && Howler.ctx && Howler.autoUnlock) {\n Howler._unlockAudio();\n } // Keep track of this Howl group in the global controller.\n\n\n Howler._howls.push(self); // If they selected autoplay, add a play event to the load queue.\n\n\n if (self._autoplay) {\n self._queue.push({\n event: 'play',\n action: function action() {\n self.play();\n }\n });\n } // Load the source file unless otherwise specified.\n\n\n if (self._preload && self._preload !== 'none') {\n self.load();\n }\n\n return self;\n },\n\n /**\n * Load the audio file.\n * @return {Howler}\n */\n load: function load() {\n var self = this;\n var url = null; // If no audio is available, quit immediately.\n\n if (Howler.noAudio) {\n self._emit('loaderror', null, 'No audio support.');\n\n return;\n } // Make sure our source is in an array.\n\n\n if (typeof self._src === 'string') {\n self._src = [self._src];\n } // Loop through the sources and pick the first one that is compatible.\n\n\n for (var i = 0; i < self._src.length; i++) {\n var ext, str;\n\n if (self._format && self._format[i]) {\n // If an extension was specified, use that instead.\n ext = self._format[i];\n } else {\n // Make sure the source is a string.\n str = self._src[i];\n\n if (typeof str !== 'string') {\n self._emit('loaderror', null, 'Non-string found in selected audio sources - ignoring.');\n\n continue;\n } // Extract the file extension from the URL or base64 data URI.\n\n\n ext = /^data:audio\\/([^;,]+);/i.exec(str);\n\n if (!ext) {\n ext = /\\.([^.]+)$/.exec(str.split('?', 1)[0]);\n }\n\n if (ext) {\n ext = ext[1].toLowerCase();\n }\n } // Log a warning if no extension was found.\n\n\n if (!ext) {\n console.warn('No file extension was found. Consider using the \"format\" property or specify an extension.');\n } // Check if this extension is available.\n\n\n if (ext && Howler.codecs(ext)) {\n url = self._src[i];\n break;\n }\n }\n\n if (!url) {\n self._emit('loaderror', null, 'No codec support for selected audio sources.');\n\n return;\n }\n\n self._src = url;\n self._state = 'loading'; // If the hosting page is HTTPS and the source isn't,\n // drop down to HTML5 Audio to avoid Mixed Content errors.\n\n if (window.location.protocol === 'https:' && url.slice(0, 5) === 'http:') {\n self._html5 = true;\n self._webAudio = false;\n } // Create a new sound object and add it to the pool.\n\n\n new Sound(self); // Load and decode the audio data for playback.\n\n if (self._webAudio) {\n loadBuffer(self);\n }\n\n return self;\n },\n\n /**\n * Play a sound or resume previous playback.\n * @param {String/Number} sprite Sprite name for sprite playback or sound id to continue previous.\n * @param {Boolean} internal Internal Use: true prevents event firing.\n * @return {Number} Sound ID.\n */\n play: function play(sprite, internal) {\n var self = this;\n var id = null; // Determine if a sprite, sound id or nothing was passed\n\n if (typeof sprite === 'number') {\n id = sprite;\n sprite = null;\n } else if (typeof sprite === 'string' && self._state === 'loaded' && !self._sprite[sprite]) {\n // If the passed sprite doesn't exist, do nothing.\n return null;\n } else if (typeof sprite === 'undefined') {\n // Use the default sound sprite (plays the full audio length).\n sprite = '__default'; // Check if there is a single paused sound that isn't ended.\n // If there is, play that sound. If not, continue as usual.\n\n if (!self._playLock) {\n var num = 0;\n\n for (var i = 0; i < self._sounds.length; i++) {\n if (self._sounds[i]._paused && !self._sounds[i]._ended) {\n num++;\n id = self._sounds[i]._id;\n }\n }\n\n if (num === 1) {\n sprite = null;\n } else {\n id = null;\n }\n }\n } // Get the selected node, or get one from the pool.\n\n\n var sound = id ? self._soundById(id) : self._inactiveSound(); // If the sound doesn't exist, do nothing.\n\n if (!sound) {\n return null;\n } // Select the sprite definition.\n\n\n if (id && !sprite) {\n sprite = sound._sprite || '__default';\n } // If the sound hasn't loaded, we must wait to get the audio's duration.\n // We also need to wait to make sure we don't run into race conditions with\n // the order of function calls.\n\n\n if (self._state !== 'loaded') {\n // Set the sprite value on this sound.\n sound._sprite = sprite; // Mark this sound as not ended in case another sound is played before this one loads.\n\n sound._ended = false; // Add the sound to the queue to be played on load.\n\n var soundId = sound._id;\n\n self._queue.push({\n event: 'play',\n action: function action() {\n self.play(soundId);\n }\n });\n\n return soundId;\n } // Don't play the sound if an id was passed and it is already playing.\n\n\n if (id && !sound._paused) {\n // Trigger the play event, in order to keep iterating through queue.\n if (!internal) {\n self._loadQueue('play');\n }\n\n return sound._id;\n } // Make sure the AudioContext isn't suspended, and resume it if it is.\n\n\n if (self._webAudio) {\n Howler._autoResume();\n } // Determine how long to play for and where to start playing.\n\n\n var seek = Math.max(0, sound._seek > 0 ? sound._seek : self._sprite[sprite][0] / 1000);\n var duration = Math.max(0, (self._sprite[sprite][0] + self._sprite[sprite][1]) / 1000 - seek);\n var timeout = duration * 1000 / Math.abs(sound._rate);\n var start = self._sprite[sprite][0] / 1000;\n var stop = (self._sprite[sprite][0] + self._sprite[sprite][1]) / 1000;\n sound._sprite = sprite; // Mark the sound as ended instantly so that this async playback\n // doesn't get grabbed by another call to play while this one waits to start.\n\n sound._ended = false; // Update the parameters of the sound.\n\n var setParams = function setParams() {\n sound._paused = false;\n sound._seek = seek;\n sound._start = start;\n sound._stop = stop;\n sound._loop = !!(sound._loop || self._sprite[sprite][2]);\n }; // End the sound instantly if seek is at the end.\n\n\n if (seek >= stop) {\n self._ended(sound);\n\n return;\n } // Begin the actual playback.\n\n\n var node = sound._node;\n\n if (self._webAudio) {\n // Fire this when the sound is ready to play to begin Web Audio playback.\n var playWebAudio = function playWebAudio() {\n self._playLock = false;\n setParams();\n\n self._refreshBuffer(sound); // Setup the playback params.\n\n\n var vol = sound._muted || self._muted ? 0 : sound._volume;\n node.gain.setValueAtTime(vol, Howler.ctx.currentTime);\n sound._playStart = Howler.ctx.currentTime; // Play the sound using the supported method.\n\n if (typeof node.bufferSource.start === 'undefined') {\n sound._loop ? node.bufferSource.noteGrainOn(0, seek, 86400) : node.bufferSource.noteGrainOn(0, seek, duration);\n } else {\n sound._loop ? node.bufferSource.start(0, seek, 86400) : node.bufferSource.start(0, seek, duration);\n } // Start a new timer if none is present.\n\n\n if (timeout !== Infinity) {\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n }\n\n if (!internal) {\n setTimeout(function () {\n self._emit('play', sound._id);\n\n self._loadQueue();\n }, 0);\n }\n };\n\n if (Howler.state === 'running' && Howler.ctx.state !== 'interrupted') {\n playWebAudio();\n } else {\n self._playLock = true; // Wait for the audio context to resume before playing.\n\n self.once('resume', playWebAudio); // Cancel the end timer.\n\n self._clearTimer(sound._id);\n }\n } else {\n // Fire this when the sound is ready to play to begin HTML5 Audio playback.\n var playHtml5 = function playHtml5() {\n node.currentTime = seek;\n node.muted = sound._muted || self._muted || Howler._muted || node.muted;\n node.volume = sound._volume * Howler.volume();\n node.playbackRate = sound._rate; // Some browsers will throw an error if this is called without user interaction.\n\n try {\n var play = node.play(); // Support older browsers that don't support promises, and thus don't have this issue.\n\n if (play && typeof Promise !== 'undefined' && (play instanceof Promise || typeof play.then === 'function')) {\n // Implements a lock to prevent DOMException: The play() request was interrupted by a call to pause().\n self._playLock = true; // Set param values immediately.\n\n setParams(); // Releases the lock and executes queued actions.\n\n play.then(function () {\n self._playLock = false;\n node._unlocked = true;\n\n if (!internal) {\n self._emit('play', sound._id);\n\n self._loadQueue();\n }\n }).catch(function () {\n self._playLock = false;\n\n self._emit('playerror', sound._id, 'Playback was unable to start. This is most commonly an issue ' + 'on mobile devices and Chrome where playback was not within a user interaction.'); // Reset the ended and paused values.\n\n\n sound._ended = true;\n sound._paused = true;\n });\n } else if (!internal) {\n self._playLock = false;\n setParams();\n\n self._emit('play', sound._id);\n\n self._loadQueue();\n } // Setting rate before playing won't work in IE, so we set it again here.\n\n\n node.playbackRate = sound._rate; // If the node is still paused, then we can assume there was a playback issue.\n\n if (node.paused) {\n self._emit('playerror', sound._id, 'Playback was unable to start. This is most commonly an issue ' + 'on mobile devices and Chrome where playback was not within a user interaction.');\n\n return;\n } // Setup the end timer on sprites or listen for the ended event.\n\n\n if (sprite !== '__default' || sound._loop) {\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n } else {\n self._endTimers[sound._id] = function () {\n // Fire ended on this audio node.\n self._ended(sound); // Clear this listener.\n\n\n node.removeEventListener('ended', self._endTimers[sound._id], false);\n };\n\n node.addEventListener('ended', self._endTimers[sound._id], false);\n }\n } catch (err) {\n self._emit('playerror', sound._id, err);\n }\n }; // If this is streaming audio, make sure the src is set and load again.\n\n\n if (node.src === 'data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA') {\n node.src = self._src;\n node.load();\n } // Play immediately if ready, or wait for the 'canplaythrough'e vent.\n\n\n var loadedNoReadyState = window && window.ejecta || !node.readyState && Howler._navigator.isCocoonJS;\n\n if (node.readyState >= 3 || loadedNoReadyState) {\n playHtml5();\n } else {\n self._playLock = true;\n\n var listener = function listener() {\n // Begin playback.\n playHtml5(); // Clear this listener.\n\n node.removeEventListener(Howler._canPlayEvent, listener, false);\n };\n\n node.addEventListener(Howler._canPlayEvent, listener, false); // Cancel the end timer.\n\n self._clearTimer(sound._id);\n }\n }\n\n return sound._id;\n },\n\n /**\n * Pause playback and save current position.\n * @param {Number} id The sound ID (empty to pause all in group).\n * @return {Howl}\n */\n pause: function pause(id) {\n var self = this; // If the sound hasn't loaded or a play() promise is pending, add it to the load queue to pause when capable.\n\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'pause',\n action: function action() {\n self.pause(id);\n }\n });\n\n return self;\n } // If no id is passed, get all ID's to be paused.\n\n\n var ids = self._getSoundIds(id);\n\n for (var i = 0; i < ids.length; i++) {\n // Clear the end timer.\n self._clearTimer(ids[i]); // Get the sound.\n\n\n var sound = self._soundById(ids[i]);\n\n if (sound && !sound._paused) {\n // Reset the seek position.\n sound._seek = self.seek(ids[i]);\n sound._rateSeek = 0;\n sound._paused = true; // Stop currently running fades.\n\n self._stopFade(ids[i]);\n\n if (sound._node) {\n if (self._webAudio) {\n // Make sure the sound has been created.\n if (!sound._node.bufferSource) {\n continue;\n }\n\n if (typeof sound._node.bufferSource.stop === 'undefined') {\n sound._node.bufferSource.noteOff(0);\n } else {\n sound._node.bufferSource.stop(0);\n } // Clean up the buffer source.\n\n\n self._cleanBuffer(sound._node);\n } else if (!isNaN(sound._node.duration) || sound._node.duration === Infinity) {\n sound._node.pause();\n }\n }\n } // Fire the pause event, unless `true` is passed as the 2nd argument.\n\n\n if (!arguments[1]) {\n self._emit('pause', sound ? sound._id : null);\n }\n }\n\n return self;\n },\n\n /**\n * Stop playback and reset to start.\n * @param {Number} id The sound ID (empty to stop all in group).\n * @param {Boolean} internal Internal Use: true prevents event firing.\n * @return {Howl}\n */\n stop: function stop(id, internal) {\n var self = this; // If the sound hasn't loaded, add it to the load queue to stop when capable.\n\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'stop',\n action: function action() {\n self.stop(id);\n }\n });\n\n return self;\n } // If no id is passed, get all ID's to be stopped.\n\n\n var ids = self._getSoundIds(id);\n\n for (var i = 0; i < ids.length; i++) {\n // Clear the end timer.\n self._clearTimer(ids[i]); // Get the sound.\n\n\n var sound = self._soundById(ids[i]);\n\n if (sound) {\n // Reset the seek position.\n sound._seek = sound._start || 0;\n sound._rateSeek = 0;\n sound._paused = true;\n sound._ended = true; // Stop currently running fades.\n\n self._stopFade(ids[i]);\n\n if (sound._node) {\n if (self._webAudio) {\n // Make sure the sound's AudioBufferSourceNode has been created.\n if (sound._node.bufferSource) {\n if (typeof sound._node.bufferSource.stop === 'undefined') {\n sound._node.bufferSource.noteOff(0);\n } else {\n sound._node.bufferSource.stop(0);\n } // Clean up the buffer source.\n\n\n self._cleanBuffer(sound._node);\n }\n } else if (!isNaN(sound._node.duration) || sound._node.duration === Infinity) {\n sound._node.currentTime = sound._start || 0;\n\n sound._node.pause(); // If this is a live stream, stop download once the audio is stopped.\n\n\n if (sound._node.duration === Infinity) {\n self._clearSound(sound._node);\n }\n }\n }\n\n if (!internal) {\n self._emit('stop', sound._id);\n }\n }\n }\n\n return self;\n },\n\n /**\n * Mute/unmute a single sound or all sounds in this Howl group.\n * @param {Boolean} muted Set to true to mute and false to unmute.\n * @param {Number} id The sound ID to update (omit to mute/unmute all).\n * @return {Howl}\n */\n mute: function mute(muted, id) {\n var self = this; // If the sound hasn't loaded, add it to the load queue to mute when capable.\n\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'mute',\n action: function action() {\n self.mute(muted, id);\n }\n });\n\n return self;\n } // If applying mute/unmute to all sounds, update the group's value.\n\n\n if (typeof id === 'undefined') {\n if (typeof muted === 'boolean') {\n self._muted = muted;\n } else {\n return self._muted;\n }\n } // If no id is passed, get all ID's to be muted.\n\n\n var ids = self._getSoundIds(id);\n\n for (var i = 0; i < ids.length; i++) {\n // Get the sound.\n var sound = self._soundById(ids[i]);\n\n if (sound) {\n sound._muted = muted; // Cancel active fade and set the volume to the end value.\n\n if (sound._interval) {\n self._stopFade(sound._id);\n }\n\n if (self._webAudio && sound._node) {\n sound._node.gain.setValueAtTime(muted ? 0 : sound._volume, Howler.ctx.currentTime);\n } else if (sound._node) {\n sound._node.muted = Howler._muted ? true : muted;\n }\n\n self._emit('mute', sound._id);\n }\n }\n\n return self;\n },\n\n /**\n * Get/set the volume of this sound or of the Howl group. This method can optionally take 0, 1 or 2 arguments.\n * volume() -> Returns the group's volume value.\n * volume(id) -> Returns the sound id's current volume.\n * volume(vol) -> Sets the volume of all sounds in this Howl group.\n * volume(vol, id) -> Sets the volume of passed sound id.\n * @return {Howl/Number} Returns self or current volume.\n */\n volume: function volume() {\n var self = this;\n var args = arguments;\n var vol, id; // Determine the values based on arguments.\n\n if (args.length === 0) {\n // Return the value of the groups' volume.\n return self._volume;\n } else if (args.length === 1 || args.length === 2 && typeof args[1] === 'undefined') {\n // First check if this is an ID, and if not, assume it is a new volume.\n var ids = self._getSoundIds();\n\n var index = ids.indexOf(args[0]);\n\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else {\n vol = parseFloat(args[0]);\n }\n } else if (args.length >= 2) {\n vol = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n } // Update the volume or return the current volume.\n\n\n var sound;\n\n if (typeof vol !== 'undefined' && vol >= 0 && vol <= 1) {\n // If the sound hasn't loaded, add it to the load queue to change volume when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'volume',\n action: function action() {\n self.volume.apply(self, args);\n }\n });\n\n return self;\n } // Set the group volume.\n\n\n if (typeof id === 'undefined') {\n self._volume = vol;\n } // Update one or all volumes.\n\n\n id = self._getSoundIds(id);\n\n for (var i = 0; i < id.length; i++) {\n // Get the sound.\n sound = self._soundById(id[i]);\n\n if (sound) {\n sound._volume = vol; // Stop currently running fades.\n\n if (!args[2]) {\n self._stopFade(id[i]);\n }\n\n if (self._webAudio && sound._node && !sound._muted) {\n sound._node.gain.setValueAtTime(vol, Howler.ctx.currentTime);\n } else if (sound._node && !sound._muted) {\n sound._node.volume = vol * Howler.volume();\n }\n\n self._emit('volume', sound._id);\n }\n }\n } else {\n sound = id ? self._soundById(id) : self._sounds[0];\n return sound ? sound._volume : 0;\n }\n\n return self;\n },\n\n /**\n * Fade a currently playing sound between two volumes (if no id is passed, all sounds will fade).\n * @param {Number} from The value to fade from (0.0 to 1.0).\n * @param {Number} to The volume to fade to (0.0 to 1.0).\n * @param {Number} len Time in milliseconds to fade.\n * @param {Number} id The sound id (omit to fade all sounds).\n * @return {Howl}\n */\n fade: function fade(from, to, len, id) {\n var self = this; // If the sound hasn't loaded, add it to the load queue to fade when capable.\n\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'fade',\n action: function action() {\n self.fade(from, to, len, id);\n }\n });\n\n return self;\n } // Make sure the to/from/len values are numbers.\n\n\n from = Math.min(Math.max(0, parseFloat(from)), 1);\n to = Math.min(Math.max(0, parseFloat(to)), 1);\n len = parseFloat(len); // Set the volume to the start position.\n\n self.volume(from, id); // Fade the volume of one or all sounds.\n\n var ids = self._getSoundIds(id);\n\n for (var i = 0; i < ids.length; i++) {\n // Get the sound.\n var sound = self._soundById(ids[i]); // Create a linear fade or fall back to timeouts with HTML5 Audio.\n\n\n if (sound) {\n // Stop the previous fade if no sprite is being used (otherwise, volume handles this).\n if (!id) {\n self._stopFade(ids[i]);\n } // If we are using Web Audio, let the native methods do the actual fade.\n\n\n if (self._webAudio && !sound._muted) {\n var currentTime = Howler.ctx.currentTime;\n var end = currentTime + len / 1000;\n sound._volume = from;\n\n sound._node.gain.setValueAtTime(from, currentTime);\n\n sound._node.gain.linearRampToValueAtTime(to, end);\n }\n\n self._startFadeInterval(sound, from, to, len, ids[i], typeof id === 'undefined');\n }\n }\n\n return self;\n },\n\n /**\n * Starts the internal interval to fade a sound.\n * @param {Object} sound Reference to sound to fade.\n * @param {Number} from The value to fade from (0.0 to 1.0).\n * @param {Number} to The volume to fade to (0.0 to 1.0).\n * @param {Number} len Time in milliseconds to fade.\n * @param {Number} id The sound id to fade.\n * @param {Boolean} isGroup If true, set the volume on the group.\n */\n _startFadeInterval: function _startFadeInterval(sound, from, to, len, id, isGroup) {\n var self = this;\n var vol = from;\n var diff = to - from;\n var steps = Math.abs(diff / 0.01);\n var stepLen = Math.max(4, steps > 0 ? len / steps : len);\n var lastTick = Date.now(); // Store the value being faded to.\n\n sound._fadeTo = to; // Update the volume value on each interval tick.\n\n sound._interval = setInterval(function () {\n // Update the volume based on the time since the last tick.\n var tick = (Date.now() - lastTick) / len;\n lastTick = Date.now();\n vol += diff * tick; // Round to within 2 decimal points.\n\n vol = Math.round(vol * 100) / 100; // Make sure the volume is in the right bounds.\n\n if (diff < 0) {\n vol = Math.max(to, vol);\n } else {\n vol = Math.min(to, vol);\n } // Change the volume.\n\n\n if (self._webAudio) {\n sound._volume = vol;\n } else {\n self.volume(vol, sound._id, true);\n } // Set the group's volume.\n\n\n if (isGroup) {\n self._volume = vol;\n } // When the fade is complete, stop it and fire event.\n\n\n if (to < from && vol <= to || to > from && vol >= to) {\n clearInterval(sound._interval);\n sound._interval = null;\n sound._fadeTo = null;\n self.volume(to, sound._id);\n\n self._emit('fade', sound._id);\n }\n }, stepLen);\n },\n\n /**\n * Internal method that stops the currently playing fade when\n * a new fade starts, volume is changed or the sound is stopped.\n * @param {Number} id The sound id.\n * @return {Howl}\n */\n _stopFade: function _stopFade(id) {\n var self = this;\n\n var sound = self._soundById(id);\n\n if (sound && sound._interval) {\n if (self._webAudio) {\n sound._node.gain.cancelScheduledValues(Howler.ctx.currentTime);\n }\n\n clearInterval(sound._interval);\n sound._interval = null;\n self.volume(sound._fadeTo, id);\n sound._fadeTo = null;\n\n self._emit('fade', id);\n }\n\n return self;\n },\n\n /**\n * Get/set the loop parameter on a sound. This method can optionally take 0, 1 or 2 arguments.\n * loop() -> Returns the group's loop value.\n * loop(id) -> Returns the sound id's loop value.\n * loop(loop) -> Sets the loop value for all sounds in this Howl group.\n * loop(loop, id) -> Sets the loop value of passed sound id.\n * @return {Howl/Boolean} Returns self or current loop value.\n */\n loop: function loop() {\n var self = this;\n var args = arguments;\n var loop, id, sound; // Determine the values for loop and id.\n\n if (args.length === 0) {\n // Return the grou's loop value.\n return self._loop;\n } else if (args.length === 1) {\n if (typeof args[0] === 'boolean') {\n loop = args[0];\n self._loop = loop;\n } else {\n // Return this sound's loop value.\n sound = self._soundById(parseInt(args[0], 10));\n return sound ? sound._loop : false;\n }\n } else if (args.length === 2) {\n loop = args[0];\n id = parseInt(args[1], 10);\n } // If no id is passed, get all ID's to be looped.\n\n\n var ids = self._getSoundIds(id);\n\n for (var i = 0; i < ids.length; i++) {\n sound = self._soundById(ids[i]);\n\n if (sound) {\n sound._loop = loop;\n\n if (self._webAudio && sound._node && sound._node.bufferSource) {\n sound._node.bufferSource.loop = loop;\n\n if (loop) {\n sound._node.bufferSource.loopStart = sound._start || 0;\n sound._node.bufferSource.loopEnd = sound._stop;\n }\n }\n }\n }\n\n return self;\n },\n\n /**\n * Get/set the playback rate of a sound. This method can optionally take 0, 1 or 2 arguments.\n * rate() -> Returns the first sound node's current playback rate.\n * rate(id) -> Returns the sound id's current playback rate.\n * rate(rate) -> Sets the playback rate of all sounds in this Howl group.\n * rate(rate, id) -> Sets the playback rate of passed sound id.\n * @return {Howl/Number} Returns self or the current playback rate.\n */\n rate: function rate() {\n var self = this;\n var args = arguments;\n var rate, id; // Determine the values based on arguments.\n\n if (args.length === 0) {\n // We will simply return the current rate of the first node.\n id = self._sounds[0]._id;\n } else if (args.length === 1) {\n // First check if this is an ID, and if not, assume it is a new rate value.\n var ids = self._getSoundIds();\n\n var index = ids.indexOf(args[0]);\n\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else {\n rate = parseFloat(args[0]);\n }\n } else if (args.length === 2) {\n rate = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n } // Update the playback rate or return the current value.\n\n\n var sound;\n\n if (typeof rate === 'number') {\n // If the sound hasn't loaded, add it to the load queue to change playback rate when capable.\n if (self._state !== 'loaded' || self._playLock) {\n self._queue.push({\n event: 'rate',\n action: function action() {\n self.rate.apply(self, args);\n }\n });\n\n return self;\n } // Set the group rate.\n\n\n if (typeof id === 'undefined') {\n self._rate = rate;\n } // Update one or all volumes.\n\n\n id = self._getSoundIds(id);\n\n for (var i = 0; i < id.length; i++) {\n // Get the sound.\n sound = self._soundById(id[i]);\n\n if (sound) {\n // Keep track of our position when the rate changed and update the playback\n // start position so we can properly adjust the seek position for time elapsed.\n if (self.playing(id[i])) {\n sound._rateSeek = self.seek(id[i]);\n sound._playStart = self._webAudio ? Howler.ctx.currentTime : sound._playStart;\n }\n\n sound._rate = rate; // Change the playback rate.\n\n if (self._webAudio && sound._node && sound._node.bufferSource) {\n sound._node.bufferSource.playbackRate.setValueAtTime(rate, Howler.ctx.currentTime);\n } else if (sound._node) {\n sound._node.playbackRate = rate;\n } // Reset the timers.\n\n\n var seek = self.seek(id[i]);\n var duration = (self._sprite[sound._sprite][0] + self._sprite[sound._sprite][1]) / 1000 - seek;\n var timeout = duration * 1000 / Math.abs(sound._rate); // Start a new end timer if sound is already playing.\n\n if (self._endTimers[id[i]] || !sound._paused) {\n self._clearTimer(id[i]);\n\n self._endTimers[id[i]] = setTimeout(self._ended.bind(self, sound), timeout);\n }\n\n self._emit('rate', sound._id);\n }\n }\n } else {\n sound = self._soundById(id);\n return sound ? sound._rate : self._rate;\n }\n\n return self;\n },\n\n /**\n * Get/set the seek position of a sound. This method can optionally take 0, 1 or 2 arguments.\n * seek() -> Returns the first sound node's current seek position.\n * seek(id) -> Returns the sound id's current seek position.\n * seek(seek) -> Sets the seek position of the first sound node.\n * seek(seek, id) -> Sets the seek position of passed sound id.\n * @return {Howl/Number} Returns self or the current seek position.\n */\n seek: function seek() {\n var self = this;\n var args = arguments;\n var seek, id; // Determine the values based on arguments.\n\n if (args.length === 0) {\n // We will simply return the current position of the first node.\n id = self._sounds[0]._id;\n } else if (args.length === 1) {\n // First check if this is an ID, and if not, assume it is a new seek position.\n var ids = self._getSoundIds();\n\n var index = ids.indexOf(args[0]);\n\n if (index >= 0) {\n id = parseInt(args[0], 10);\n } else if (self._sounds.length) {\n id = self._sounds[0]._id;\n seek = parseFloat(args[0]);\n }\n } else if (args.length === 2) {\n seek = parseFloat(args[0]);\n id = parseInt(args[1], 10);\n } // If there is no ID, bail out.\n\n\n if (typeof id === 'undefined') {\n return self;\n } // If the sound hasn't loaded, add it to the load queue to seek when capable.\n\n\n if (typeof seek === 'number' && (self._state !== 'loaded' || self._playLock)) {\n self._queue.push({\n event: 'seek',\n action: function action() {\n self.seek.apply(self, args);\n }\n });\n\n return self;\n } // Get the sound.\n\n\n var sound = self._soundById(id);\n\n if (sound) {\n if (typeof seek === 'number' && seek >= 0) {\n // Pause the sound and update position for restarting playback.\n var playing = self.playing(id);\n\n if (playing) {\n self.pause(id, true);\n } // Move the position of the track and cancel timer.\n\n\n sound._seek = seek;\n sound._ended = false;\n\n self._clearTimer(id); // Update the seek position for HTML5 Audio.\n\n\n if (!self._webAudio && sound._node && !isNaN(sound._node.duration)) {\n sound._node.currentTime = seek;\n } // Seek and emit when ready.\n\n\n var seekAndEmit = function seekAndEmit() {\n self._emit('seek', id); // Restart the playback if the sound was playing.\n\n\n if (playing) {\n self.play(id, true);\n }\n }; // Wait for the play lock to be unset before emitting (HTML5 Audio).\n\n\n if (playing && !self._webAudio) {\n var emitSeek = function emitSeek() {\n if (!self._playLock) {\n seekAndEmit();\n } else {\n setTimeout(emitSeek, 0);\n }\n };\n\n setTimeout(emitSeek, 0);\n } else {\n seekAndEmit();\n }\n } else {\n if (self._webAudio) {\n var realTime = self.playing(id) ? Howler.ctx.currentTime - sound._playStart : 0;\n var rateSeek = sound._rateSeek ? sound._rateSeek - sound._seek : 0;\n return sound._seek + (rateSeek + realTime * Math.abs(sound._rate));\n } else {\n return sound._node.currentTime;\n }\n }\n }\n\n return self;\n },\n\n /**\n * Check if a specific sound is currently playing or not (if id is provided), or check if at least one of the sounds in the group is playing or not.\n * @param {Number} id The sound id to check. If none is passed, the whole sound group is checked.\n * @return {Boolean} True if playing and false if not.\n */\n playing: function playing(id) {\n var self = this; // Check the passed sound ID (if any).\n\n if (typeof id === 'number') {\n var sound = self._soundById(id);\n\n return sound ? !sound._paused : false;\n } // Otherwise, loop through all sounds and check if any are playing.\n\n\n for (var i = 0; i < self._sounds.length; i++) {\n if (!self._sounds[i]._paused) {\n return true;\n }\n }\n\n return false;\n },\n\n /**\n * Get the duration of this sound. Passing a sound id will return the sprite duration.\n * @param {Number} id The sound id to check. If none is passed, return full source duration.\n * @return {Number} Audio duration in seconds.\n */\n duration: function duration(id) {\n var self = this;\n var duration = self._duration; // If we pass an ID, get the sound and return the sprite length.\n\n var sound = self._soundById(id);\n\n if (sound) {\n duration = self._sprite[sound._sprite][1] / 1000;\n }\n\n return duration;\n },\n\n /**\n * Returns the current loaded state of this Howl.\n * @return {String} 'unloaded', 'loading', 'loaded'\n */\n state: function state() {\n return this._state;\n },\n\n /**\n * Unload and destroy the current Howl object.\n * This will immediately stop all sound instances attached to this group.\n */\n unload: function unload() {\n var self = this; // Stop playing any active sounds.\n\n var sounds = self._sounds;\n\n for (var i = 0; i < sounds.length; i++) {\n // Stop the sound if it is currently playing.\n if (!sounds[i]._paused) {\n self.stop(sounds[i]._id);\n } // Remove the source or disconnect.\n\n\n if (!self._webAudio) {\n // Set the source to 0-second silence to stop any downloading (except in IE).\n self._clearSound(sounds[i]._node); // Remove any event listeners.\n\n\n sounds[i]._node.removeEventListener('error', sounds[i]._errorFn, false);\n\n sounds[i]._node.removeEventListener(Howler._canPlayEvent, sounds[i]._loadFn, false);\n\n sounds[i]._node.removeEventListener('ended', sounds[i]._endFn, false); // Release the Audio object back to the pool.\n\n\n Howler._releaseHtml5Audio(sounds[i]._node);\n } // Empty out all of the nodes.\n\n\n delete sounds[i]._node; // Make sure all timers are cleared out.\n\n self._clearTimer(sounds[i]._id);\n } // Remove the references in the global Howler object.\n\n\n var index = Howler._howls.indexOf(self);\n\n if (index >= 0) {\n Howler._howls.splice(index, 1);\n } // Delete this sound from the cache (if no other Howl is using it).\n\n\n var remCache = true;\n\n for (i = 0; i < Howler._howls.length; i++) {\n if (Howler._howls[i]._src === self._src || self._src.indexOf(Howler._howls[i]._src) >= 0) {\n remCache = false;\n break;\n }\n }\n\n if (cache && remCache) {\n delete cache[self._src];\n } // Clear global errors.\n\n\n Howler.noAudio = false; // Clear out `self`.\n\n self._state = 'unloaded';\n self._sounds = [];\n self = null;\n return null;\n },\n\n /**\n * Listen to a custom event.\n * @param {String} event Event name.\n * @param {Function} fn Listener to call.\n * @param {Number} id (optional) Only listen to events for this sound.\n * @param {Number} once (INTERNAL) Marks event to fire only once.\n * @return {Howl}\n */\n on: function on(event, fn, id, once) {\n var self = this;\n var events = self['_on' + event];\n\n if (typeof fn === 'function') {\n events.push(once ? {\n id: id,\n fn: fn,\n once: once\n } : {\n id: id,\n fn: fn\n });\n }\n\n return self;\n },\n\n /**\n * Remove a custom event. Call without parameters to remove all events.\n * @param {String} event Event name.\n * @param {Function} fn Listener to remove. Leave empty to remove all.\n * @param {Number} id (optional) Only remove events for this sound.\n * @return {Howl}\n */\n off: function off(event, fn, id) {\n var self = this;\n var events = self['_on' + event];\n var i = 0; // Allow passing just an event and ID.\n\n if (typeof fn === 'number') {\n id = fn;\n fn = null;\n }\n\n if (fn || id) {\n // Loop through event store and remove the passed function.\n for (i = 0; i < events.length; i++) {\n var isId = id === events[i].id;\n\n if (fn === events[i].fn && isId || !fn && isId) {\n events.splice(i, 1);\n break;\n }\n }\n } else if (event) {\n // Clear out all events of this type.\n self['_on' + event] = [];\n } else {\n // Clear out all events of every type.\n var keys = Object.keys(self);\n\n for (i = 0; i < keys.length; i++) {\n if (keys[i].indexOf('_on') === 0 && Array.isArray(self[keys[i]])) {\n self[keys[i]] = [];\n }\n }\n }\n\n return self;\n },\n\n /**\n * Listen to a custom event and remove it once fired.\n * @param {String} event Event name.\n * @param {Function} fn Listener to call.\n * @param {Number} id (optional) Only listen to events for this sound.\n * @return {Howl}\n */\n once: function once(event, fn, id) {\n var self = this; // Setup the event listener.\n\n self.on(event, fn, id, 1);\n return self;\n },\n\n /**\n * Emit all events of a specific type and pass the sound id.\n * @param {String} event Event name.\n * @param {Number} id Sound ID.\n * @param {Number} msg Message to go with event.\n * @return {Howl}\n */\n _emit: function _emit(event, id, msg) {\n var self = this;\n var events = self['_on' + event]; // Loop through event store and fire all functions.\n\n for (var i = events.length - 1; i >= 0; i--) {\n // Only fire the listener if the correct ID is used.\n if (!events[i].id || events[i].id === id || event === 'load') {\n setTimeout(function (fn) {\n fn.call(this, id, msg);\n }.bind(self, events[i].fn), 0); // If this event was setup with `once`, remove it.\n\n if (events[i].once) {\n self.off(event, events[i].fn, events[i].id);\n }\n }\n } // Pass the event type into load queue so that it can continue stepping.\n\n\n self._loadQueue(event);\n\n return self;\n },\n\n /**\n * Queue of actions initiated before the sound has loaded.\n * These will be called in sequence, with the next only firing\n * after the previous has finished executing (even if async like play).\n * @return {Howl}\n */\n _loadQueue: function _loadQueue(event) {\n var self = this;\n\n if (self._queue.length > 0) {\n var task = self._queue[0]; // Remove this task if a matching event was passed.\n\n if (task.event === event) {\n self._queue.shift();\n\n self._loadQueue();\n } // Run the task if no event type is passed.\n\n\n if (!event) {\n task.action();\n }\n }\n\n return self;\n },\n\n /**\n * Fired when playback ends at the end of the duration.\n * @param {Sound} sound The sound object to work with.\n * @return {Howl}\n */\n _ended: function _ended(sound) {\n var self = this;\n var sprite = sound._sprite; // If we are using IE and there was network latency we may be clipping\n // audio before it completes playing. Lets check the node to make sure it\n // believes it has completed, before ending the playback.\n\n if (!self._webAudio && sound._node && !sound._node.paused && !sound._node.ended && sound._node.currentTime < sound._stop) {\n setTimeout(self._ended.bind(self, sound), 100);\n return self;\n } // Should this sound loop?\n\n\n var loop = !!(sound._loop || self._sprite[sprite][2]); // Fire the ended event.\n\n self._emit('end', sound._id); // Restart the playback for HTML5 Audio loop.\n\n\n if (!self._webAudio && loop) {\n self.stop(sound._id, true).play(sound._id);\n } // Restart this timer if on a Web Audio loop.\n\n\n if (self._webAudio && loop) {\n self._emit('play', sound._id);\n\n sound._seek = sound._start || 0;\n sound._rateSeek = 0;\n sound._playStart = Howler.ctx.currentTime;\n var timeout = (sound._stop - sound._start) * 1000 / Math.abs(sound._rate);\n self._endTimers[sound._id] = setTimeout(self._ended.bind(self, sound), timeout);\n } // Mark the node as paused.\n\n\n if (self._webAudio && !loop) {\n sound._paused = true;\n sound._ended = true;\n sound._seek = sound._start || 0;\n sound._rateSeek = 0;\n\n self._clearTimer(sound._id); // Clean up the buffer source.\n\n\n self._cleanBuffer(sound._node); // Attempt to auto-suspend AudioContext if no sounds are still playing.\n\n\n Howler._autoSuspend();\n } // When using a sprite, end the track.\n\n\n if (!self._webAudio && !loop) {\n self.stop(sound._id, true);\n }\n\n return self;\n },\n\n /**\n * Clear the end timer for a sound playback.\n * @param {Number} id The sound ID.\n * @return {Howl}\n */\n _clearTimer: function _clearTimer(id) {\n var self = this;\n\n if (self._endTimers[id]) {\n // Clear the timeout or remove the ended listener.\n if (typeof self._endTimers[id] !== 'function') {\n clearTimeout(self._endTimers[id]);\n } else {\n var sound = self._soundById(id);\n\n if (sound && sound._node) {\n sound._node.removeEventListener('ended', self._endTimers[id], false);\n }\n }\n\n delete self._endTimers[id];\n }\n\n return self;\n },\n\n /**\n * Return the sound identified by this ID, or return null.\n * @param {Number} id Sound ID\n * @return {Object} Sound object or null.\n */\n _soundById: function _soundById(id) {\n var self = this; // Loop through all sounds and find the one with this ID.\n\n for (var i = 0; i < self._sounds.length; i++) {\n if (id === self._sounds[i]._id) {\n return self._sounds[i];\n }\n }\n\n return null;\n },\n\n /**\n * Return an inactive sound from the pool or create a new one.\n * @return {Sound} Sound playback object.\n */\n _inactiveSound: function _inactiveSound() {\n var self = this;\n\n self._drain(); // Find the first inactive node to recycle.\n\n\n for (var i = 0; i < self._sounds.length; i++) {\n if (self._sounds[i]._ended) {\n return self._sounds[i].reset();\n }\n } // If no inactive node was found, create a new one.\n\n\n return new Sound(self);\n },\n\n /**\n * Drain excess inactive sounds from the pool.\n */\n _drain: function _drain() {\n var self = this;\n var limit = self._pool;\n var cnt = 0;\n var i = 0; // If there are less sounds than the max pool size, we are done.\n\n if (self._sounds.length < limit) {\n return;\n } // Count the number of inactive sounds.\n\n\n for (i = 0; i < self._sounds.length; i++) {\n if (self._sounds[i]._ended) {\n cnt++;\n }\n } // Remove excess inactive sounds, going in reverse order.\n\n\n for (i = self._sounds.length - 1; i >= 0; i--) {\n if (cnt <= limit) {\n return;\n }\n\n if (self._sounds[i]._ended) {\n // Disconnect the audio source when using Web Audio.\n if (self._webAudio && self._sounds[i]._node) {\n self._sounds[i]._node.disconnect(0);\n } // Remove sounds until we have the pool size.\n\n\n self._sounds.splice(i, 1);\n\n cnt--;\n }\n }\n },\n\n /**\n * Get all ID's from the sounds pool.\n * @param {Number} id Only return one ID if one is passed.\n * @return {Array} Array of IDs.\n */\n _getSoundIds: function _getSoundIds(id) {\n var self = this;\n\n if (typeof id === 'undefined') {\n var ids = [];\n\n for (var i = 0; i < self._sounds.length; i++) {\n ids.push(self._sounds[i]._id);\n }\n\n return ids;\n } else {\n return [id];\n }\n },\n\n /**\n * Load the sound back into the buffer source.\n * @param {Sound} sound The sound object to work with.\n * @return {Howl}\n */\n _refreshBuffer: function _refreshBuffer(sound) {\n var self = this; // Setup the buffer source for playback.\n\n sound._node.bufferSource = Howler.ctx.createBufferSource();\n sound._node.bufferSource.buffer = cache[self._src]; // Connect to the correct node.\n\n if (sound._panner) {\n sound._node.bufferSource.connect(sound._panner);\n } else {\n sound._node.bufferSource.connect(sound._node);\n } // Setup looping and playback rate.\n\n\n sound._node.bufferSource.loop = sound._loop;\n\n if (sound._loop) {\n sound._node.bufferSource.loopStart = sound._start || 0;\n sound._node.bufferSource.loopEnd = sound._stop || 0;\n }\n\n sound._node.bufferSource.playbackRate.setValueAtTime(sound._rate, Howler.ctx.currentTime);\n\n return self;\n },\n\n /**\n * Prevent memory leaks by cleaning up the buffer source after playback.\n * @param {Object} node Sound's audio node containing the buffer source.\n * @return {Howl}\n */\n _cleanBuffer: function _cleanBuffer(node) {\n var self = this;\n var isIOS = Howler._navigator && Howler._navigator.vendor.indexOf('Apple') >= 0;\n\n if (Howler._scratchBuffer && node.bufferSource) {\n node.bufferSource.onended = null;\n node.bufferSource.disconnect(0);\n\n if (isIOS) {\n try {\n node.bufferSource.buffer = Howler._scratchBuffer;\n } catch (e) {}\n }\n }\n\n node.bufferSource = null;\n return self;\n },\n\n /**\n * Set the source to a 0-second silence to stop any downloading (except in IE).\n * @param {Object} node Audio node to clear.\n */\n _clearSound: function _clearSound(node) {\n var checkIE = /MSIE |Trident\\//.test(Howler._navigator && Howler._navigator.userAgent);\n\n if (!checkIE) {\n node.src = 'data:audio/wav;base64,UklGRigAAABXQVZFZm10IBIAAAABAAEARKwAAIhYAQACABAAAABkYXRhAgAAAAEA';\n }\n }\n };\n /** Single Sound Methods **/\n\n /***************************************************************************/\n\n /**\n * Setup the sound object, which each node attached to a Howl group is contained in.\n * @param {Object} howl The Howl parent group.\n */\n\n var Sound = function Sound(howl) {\n this._parent = howl;\n this.init();\n };\n\n Sound.prototype = {\n /**\n * Initialize a new Sound object.\n * @return {Sound}\n */\n init: function init() {\n var self = this;\n var parent = self._parent; // Setup the default parameters.\n\n self._muted = parent._muted;\n self._loop = parent._loop;\n self._volume = parent._volume;\n self._rate = parent._rate;\n self._seek = 0;\n self._paused = true;\n self._ended = true;\n self._sprite = '__default'; // Generate a unique ID for this sound.\n\n self._id = ++Howler._counter; // Add itself to the parent's pool.\n\n parent._sounds.push(self); // Create the new node.\n\n\n self.create();\n return self;\n },\n\n /**\n * Create and setup a new sound object, whether HTML5 Audio or Web Audio.\n * @return {Sound}\n */\n create: function create() {\n var self = this;\n var parent = self._parent;\n var volume = Howler._muted || self._muted || self._parent._muted ? 0 : self._volume;\n\n if (parent._webAudio) {\n // Create the gain node for controlling volume (the source will connect to this).\n self._node = typeof Howler.ctx.createGain === 'undefined' ? Howler.ctx.createGainNode() : Howler.ctx.createGain();\n\n self._node.gain.setValueAtTime(volume, Howler.ctx.currentTime);\n\n self._node.paused = true;\n\n self._node.connect(Howler.masterGain);\n } else if (!Howler.noAudio) {\n // Get an unlocked Audio object from the pool.\n self._node = Howler._obtainHtml5Audio(); // Listen for errors (http://dev.w3.org/html5/spec-author-view/spec.html#mediaerror).\n\n self._errorFn = self._errorListener.bind(self);\n\n self._node.addEventListener('error', self._errorFn, false); // Listen for 'canplaythrough' event to let us know the sound is ready.\n\n\n self._loadFn = self._loadListener.bind(self);\n\n self._node.addEventListener(Howler._canPlayEvent, self._loadFn, false); // Listen for the 'ended' event on the sound to account for edge-case where\n // a finite sound has a duration of Infinity.\n\n\n self._endFn = self._endListener.bind(self);\n\n self._node.addEventListener('ended', self._endFn, false); // Setup the new audio node.\n\n\n self._node.src = parent._src;\n self._node.preload = parent._preload === true ? 'auto' : parent._preload;\n self._node.volume = volume * Howler.volume(); // Begin loading the source.\n\n self._node.load();\n }\n\n return self;\n },\n\n /**\n * Reset the parameters of this sound to the original state (for recycle).\n * @return {Sound}\n */\n reset: function reset() {\n var self = this;\n var parent = self._parent; // Reset all of the parameters of this sound.\n\n self._muted = parent._muted;\n self._loop = parent._loop;\n self._volume = parent._volume;\n self._rate = parent._rate;\n self._seek = 0;\n self._rateSeek = 0;\n self._paused = true;\n self._ended = true;\n self._sprite = '__default'; // Generate a new ID so that it isn't confused with the previous sound.\n\n self._id = ++Howler._counter;\n return self;\n },\n\n /**\n * HTML5 Audio error listener callback.\n */\n _errorListener: function _errorListener() {\n var self = this; // Fire an error event and pass back the code.\n\n self._parent._emit('loaderror', self._id, self._node.error ? self._node.error.code : 0); // Clear the event listener.\n\n\n self._node.removeEventListener('error', self._errorFn, false);\n },\n\n /**\n * HTML5 Audio canplaythrough listener callback.\n */\n _loadListener: function _loadListener() {\n var self = this;\n var parent = self._parent; // Round up the duration to account for the lower precision in HTML5 Audio.\n\n parent._duration = Math.ceil(self._node.duration * 10) / 10; // Setup a sprite if none is defined.\n\n if (Object.keys(parent._sprite).length === 0) {\n parent._sprite = {\n __default: [0, parent._duration * 1000]\n };\n }\n\n if (parent._state !== 'loaded') {\n parent._state = 'loaded';\n\n parent._emit('load');\n\n parent._loadQueue();\n } // Clear the event listener.\n\n\n self._node.removeEventListener(Howler._canPlayEvent, self._loadFn, false);\n },\n\n /**\n * HTML5 Audio ended listener callback.\n */\n _endListener: function _endListener() {\n var self = this;\n var parent = self._parent; // Only handle the `ended`` event if the duration is Infinity.\n\n if (parent._duration === Infinity) {\n // Update the parent duration to match the real audio duration.\n // Round up the duration to account for the lower precision in HTML5 Audio.\n parent._duration = Math.ceil(self._node.duration * 10) / 10; // Update the sprite that corresponds to the real duration.\n\n if (parent._sprite.__default[1] === Infinity) {\n parent._sprite.__default[1] = parent._duration * 1000;\n } // Run the regular ended method.\n\n\n parent._ended(self);\n } // Clear the event listener since the duration is now correct.\n\n\n self._node.removeEventListener('ended', self._endFn, false);\n }\n };\n /** Helper Methods **/\n\n /***************************************************************************/\n\n var cache = {};\n /**\n * Buffer a sound from URL, Data URI or cache and decode to audio source (Web Audio API).\n * @param {Howl} self\n */\n\n var loadBuffer = function loadBuffer(self) {\n var url = self._src; // Check if the buffer has already been cached and use it instead.\n\n if (cache[url]) {\n // Set the duration from the cache.\n self._duration = cache[url].duration; // Load the sound into this Howl.\n\n loadSound(self);\n return;\n }\n\n if (/^data:[^;]+;base64,/.test(url)) {\n // Decode the base64 data URI without XHR, since some browsers don't support it.\n var data = atob(url.split(',')[1]);\n var dataView = new Uint8Array(data.length);\n\n for (var i = 0; i < data.length; ++i) {\n dataView[i] = data.charCodeAt(i);\n }\n\n decodeAudioData(dataView.buffer, self);\n } else {\n // Load the buffer from the URL.\n var xhr = new XMLHttpRequest();\n xhr.open(self._xhr.method, url, true);\n xhr.withCredentials = self._xhr.withCredentials;\n xhr.responseType = 'arraybuffer'; // Apply any custom headers to the request.\n\n if (self._xhr.headers) {\n Object.keys(self._xhr.headers).forEach(function (key) {\n xhr.setRequestHeader(key, self._xhr.headers[key]);\n });\n }\n\n xhr.onload = function () {\n // Make sure we get a successful response back.\n var code = (xhr.status + '')[0];\n\n if (code !== '0' && code !== '2' && code !== '3') {\n self._emit('loaderror', null, 'Failed loading audio file with status: ' + xhr.status + '.');\n\n return;\n }\n\n decodeAudioData(xhr.response, self);\n };\n\n xhr.onerror = function () {\n // If there is an error, switch to HTML5 Audio.\n if (self._webAudio) {\n self._html5 = true;\n self._webAudio = false;\n self._sounds = [];\n delete cache[url];\n self.load();\n }\n };\n\n safeXhrSend(xhr);\n }\n };\n /**\n * Send the XHR request wrapped in a try/catch.\n * @param {Object} xhr XHR to send.\n */\n\n\n var safeXhrSend = function safeXhrSend(xhr) {\n try {\n xhr.send();\n } catch (e) {\n xhr.onerror();\n }\n };\n /**\n * Decode audio data from an array buffer.\n * @param {ArrayBuffer} arraybuffer The audio data.\n * @param {Howl} self\n */\n\n\n var decodeAudioData = function decodeAudioData(arraybuffer, self) {\n // Fire a load error if something broke.\n var error = function error() {\n self._emit('loaderror', null, 'Decoding audio data failed.');\n }; // Load the sound on success.\n\n\n var success = function success(buffer) {\n if (buffer && self._sounds.length > 0) {\n cache[self._src] = buffer;\n loadSound(self, buffer);\n } else {\n error();\n }\n }; // Decode the buffer into an audio source.\n\n\n if (typeof Promise !== 'undefined' && Howler.ctx.decodeAudioData.length === 1) {\n Howler.ctx.decodeAudioData(arraybuffer).then(success).catch(error);\n } else {\n Howler.ctx.decodeAudioData(arraybuffer, success, error);\n }\n };\n /**\n * Sound is now loaded, so finish setting everything up and fire the loaded event.\n * @param {Howl} self\n * @param {Object} buffer The decoded buffer sound source.\n */\n\n\n var loadSound = function loadSound(self, buffer) {\n // Set the duration.\n if (buffer && !self._duration) {\n self._duration = buffer.duration;\n } // Setup a sprite if none is defined.\n\n\n if (Object.keys(self._sprite).length === 0) {\n self._sprite = {\n __default: [0, self._duration * 1000]\n };\n } // Fire the loaded event.\n\n\n if (self._state !== 'loaded') {\n self._state = 'loaded';\n\n self._emit('load');\n\n self._loadQueue();\n }\n };\n /**\n * Setup the audio context when available, or switch to HTML5 Audio mode.\n */\n\n\n var setupAudioContext = function setupAudioContext() {\n // If we have already detected that Web Audio isn't supported, don't run this step again.\n if (!Howler.usingWebAudio) {\n return;\n } // Check if we are using Web Audio and setup the AudioContext if we are.\n\n\n try {\n if (typeof AudioContext !== 'undefined') {\n Howler.ctx = new AudioContext();\n } else if (typeof webkitAudioContext !== 'undefined') {\n Howler.ctx = new webkitAudioContext();\n } else {\n Howler.usingWebAudio = false;\n }\n } catch (e) {\n Howler.usingWebAudio = false;\n } // If the audio context creation still failed, set using web audio to false.\n\n\n if (!Howler.ctx) {\n Howler.usingWebAudio = false;\n } // Check if a webview is being used on iOS8 or earlier (rather than the browser).\n // If it is, disable Web Audio as it causes crashing.\n\n\n var iOS = /iP(hone|od|ad)/.test(Howler._navigator && Howler._navigator.platform);\n\n var appVersion = Howler._navigator && Howler._navigator.appVersion.match(/OS (\\d+)_(\\d+)_?(\\d+)?/);\n\n var version = appVersion ? parseInt(appVersion[1], 10) : null;\n\n if (iOS && version && version < 9) {\n var safari = /safari/.test(Howler._navigator && Howler._navigator.userAgent.toLowerCase());\n\n if (Howler._navigator && !safari) {\n Howler.usingWebAudio = false;\n }\n } // Create and expose the master GainNode when using Web Audio (useful for plugins or advanced usage).\n\n\n if (Howler.usingWebAudio) {\n Howler.masterGain = typeof Howler.ctx.createGain === 'undefined' ? Howler.ctx.createGainNode() : Howler.ctx.createGain();\n Howler.masterGain.gain.setValueAtTime(Howler._muted ? 0 : Howler._volume, Howler.ctx.currentTime);\n Howler.masterGain.connect(Howler.ctx.destination);\n } // Re-run the setup on Howler.\n\n\n Howler._setup();\n }; // Add support for AMD (Asynchronous Module Definition) libraries such as require.js.\n\n\n if (typeof define === 'function' && define.amd) {\n define([], function () {\n return {\n Howler: Howler,\n Howl: Howl\n };\n });\n } // Add support for CommonJS libraries such as browserify.\n\n\n if (typeof exports !== 'undefined') {\n exports.Howler = Howler;\n exports.Howl = Howl;\n } // Add to global in Node.js (for testing, etc).\n\n\n if (typeof global !== 'undefined') {\n global.HowlerGlobal = HowlerGlobal;\n global.Howler = Howler;\n global.Howl = Howl;\n global.Sound = Sound;\n } else if (typeof window !== 'undefined') {\n // Define globally in case AMD is not available or unused.\n window.HowlerGlobal = HowlerGlobal;\n window.Howler = Howler;\n window.Howl = Howl;\n window.Sound = Sound;\n }\n})();\n/*!\n * Spatial Plugin - Adds support for stereo and 3D audio where Web Audio is supported.\n * \n * howler.js v2.2.1\n * howlerjs.com\n *\n * (c) 2013-2020, James Simpson of GoldFire Studios\n * goldfirestudios.com\n *\n * MIT License\n */\n\n\n(function () {\n 'use strict'; // Setup default properties.\n\n HowlerGlobal.prototype._pos = [0, 0, 0];\n HowlerGlobal.prototype._orientation = [0, 0, -1, 0, 1, 0];\n /** Global Methods **/\n\n /***************************************************************************/\n\n /**\n * Helper method to update the stereo panning position of all current Howls.\n * Future Howls will not use this value unless explicitly set.\n * @param {Number} pan A value of -1.0 is all the way left and 1.0 is all the way right.\n * @return {Howler/Number} Self or current stereo panning value.\n */\n\n HowlerGlobal.prototype.stereo = function (pan) {\n var self = this; // Stop right here if not using Web Audio.\n\n if (!self.ctx || !self.ctx.listener) {\n return self;\n } // Loop through all Howls and update their stereo panning.\n\n\n for (var i = self._howls.length - 1; i >= 0; i--) {\n self._howls[i].stereo(pan);\n }\n\n return self;\n };\n /**\n * Get/set the position of the listener in 3D cartesian space. Sounds using\n * 3D position will be relative to the listener's position.\n * @param {Number} x The x-position of the listener.\n * @param {Number} y The y-position of the listener.\n * @param {Number} z The z-position of the listener.\n * @return {Howler/Array} Self or current listener position.\n */\n\n\n HowlerGlobal.prototype.pos = function (x, y, z) {\n var self = this; // Stop right here if not using Web Audio.\n\n if (!self.ctx || !self.ctx.listener) {\n return self;\n } // Set the defaults for optional 'y' & 'z'.\n\n\n y = typeof y !== 'number' ? self._pos[1] : y;\n z = typeof z !== 'number' ? self._pos[2] : z;\n\n if (typeof x === 'number') {\n self._pos = [x, y, z];\n\n if (typeof self.ctx.listener.positionX !== 'undefined') {\n self.ctx.listener.positionX.setTargetAtTime(self._pos[0], Howler.ctx.currentTime, 0.1);\n self.ctx.listener.positionY.setTargetAtTime(self._pos[1], Howler.ctx.currentTime, 0.1);\n self.ctx.listener.positionZ.setTargetAtTime(self._pos[2], Howler.ctx.currentTime, 0.1);\n } else {\n self.ctx.listener.setPosition(self._pos[0], self._pos[1], self._pos[2]);\n }\n } else {\n return self._pos;\n }\n\n return self;\n };\n /**\n * Get/set the direction the listener is pointing in the 3D cartesian space.\n * A front and up vector must be provided. The front is the direction the\n * face of the listener is pointing, and up is the direction the top of the\n * listener is pointing. Thus, these values are expected to be at right angles\n * from each other.\n * @param {Number} x The x-orientation of the listener.\n * @param {Number} y The y-orientation of the listener.\n * @param {Number} z The z-orientation of the listener.\n * @param {Number} xUp The x-orientation of the top of the listener.\n * @param {Number} yUp The y-orientation of the top of the listener.\n * @param {Number} zUp The z-orientation of the top of the listener.\n * @return {Howler/Array} Returns self or the current orientation vectors.\n */\n\n\n HowlerGlobal.prototype.orientation = function (x, y, z, xUp, yUp, zUp) {\n var self = this; // Stop right here if not using Web Audio.\n\n if (!self.ctx || !self.ctx.listener) {\n return self;\n } // Set the defaults for optional 'y' & 'z'.\n\n\n var or = self._orientation;\n y = typeof y !== 'number' ? or[1] : y;\n z = typeof z !== 'number' ? or[2] : z;\n xUp = typeof xUp !== 'number' ? or[3] : xUp;\n yUp = typeof yUp !== 'number' ? or[4] : yUp;\n zUp = typeof zUp !== 'number' ? or[5] : zUp;\n\n if (typeof x === 'number') {\n self._orientation = [x, y, z, xUp, yUp, zUp];\n\n if (typeof self.ctx.listener.forwardX !== 'undefined') {\n self.ctx.listener.forwardX.setTargetAtTime(x, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.forwardY.setTargetAtTime(y, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.forwardZ.setTargetAtTime(z, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upX.setTargetAtTime(xUp, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upY.setTargetAtTime(yUp, Howler.ctx.currentTime, 0.1);\n self.ctx.listener.upZ.setTargetAtTime(zUp, Howler.ctx.currentTime, 0.1);\n } else {\n self.ctx.listener.setOrientation(x, y, z, xUp, yUp, zUp);\n }\n } else {\n return or;\n }\n\n return self;\n };\n /** Group Methods **/\n\n /***************************************************************************/\n\n /**\n * Add new properties to the core init.\n * @param {Function} _super Core init method.\n * @return {Howl}\n */\n\n\n Howl.prototype.init = function (_super) {\n return function (o) {\n var self = this; // Setup user-defined default properties.\n\n self._orientation = o.orientation || [1, 0, 0];\n self._stereo = o.stereo || null;\n self._pos = o.pos || null;\n self._pannerAttr = {\n coneInnerAngle: typeof o.coneInnerAngle !== 'undefined' ? o.coneInnerAngle : 360,\n coneOuterAngle: typeof o.coneOuterAngle !== 'undefined' ? o.coneOuterAngle : 360,\n coneOuterGain: typeof o.coneOuterGain !== 'undefined' ? o.coneOuterGain : 0,\n distanceModel: typeof o.distanceModel !== 'undefined' ? o.distanceModel : 'inverse',\n maxDistance: typeof o.maxDistance !== 'undefined' ? o.maxDistance : 10000,\n panningModel: typeof o.panningModel !== 'undefined' ? o.panningModel : 'HRTF',\n refDistance: typeof o.refDistance !== 'undefined' ? o.refDistance : 1,\n rolloffFactor: typeof o.rolloffFactor !== 'undefined' ? o.rolloffFactor : 1\n }; // Setup event listeners.\n\n self._onstereo = o.onstereo ? [{\n fn: o.onstereo\n }] : [];\n self._onpos = o.onpos ? [{\n fn: o.onpos\n }] : [];\n self._onorientation = o.onorientation ? [{\n fn: o.onorientation\n }] : []; // Complete initilization with howler.js core's init function.\n\n return _super.call(this, o);\n };\n }(Howl.prototype.init);\n /**\n * Get/set the stereo panning of the audio source for this sound or all in the group.\n * @param {Number} pan A value of -1.0 is all the way left and 1.0 is all the way right.\n * @param {Number} id (optional) The sound ID. If none is passed, all in group will be updated.\n * @return {Howl/Number} Returns self or the current stereo panning value.\n */\n\n\n Howl.prototype.stereo = function (pan, id) {\n var self = this; // Stop right here if not using Web Audio.\n\n if (!self._webAudio) {\n return self;\n } // If the sound hasn't loaded, add it to the load queue to change stereo pan when capable.\n\n\n if (self._state !== 'loaded') {\n self._queue.push({\n event: 'stereo',\n action: function action() {\n self.stereo(pan, id);\n }\n });\n\n return self;\n } // Check for PannerStereoNode support and fallback to PannerNode if it doesn't exist.\n\n\n var pannerType = typeof Howler.ctx.createStereoPanner === 'undefined' ? 'spatial' : 'stereo'; // Setup the group's stereo panning if no ID is passed.\n\n if (typeof id === 'undefined') {\n // Return the group's stereo panning if no parameters are passed.\n if (typeof pan === 'number') {\n self._stereo = pan;\n self._pos = [pan, 0, 0];\n } else {\n return self._stereo;\n }\n } // Change the streo panning of one or all sounds in group.\n\n\n var ids = self._getSoundIds(id);\n\n for (var i = 0; i < ids.length; i++) {\n // Get the sound.\n var sound = self._soundById(ids[i]);\n\n if (sound) {\n if (typeof pan === 'number') {\n sound._stereo = pan;\n sound._pos = [pan, 0, 0];\n\n if (sound._node) {\n // If we are falling back, make sure the panningModel is equalpower.\n sound._pannerAttr.panningModel = 'equalpower'; // Check if there is a panner setup and create a new one if not.\n\n if (!sound._panner || !sound._panner.pan) {\n setupPanner(sound, pannerType);\n }\n\n if (pannerType === 'spatial') {\n if (typeof sound._panner.positionX !== 'undefined') {\n sound._panner.positionX.setValueAtTime(pan, Howler.ctx.currentTime);\n\n sound._panner.positionY.setValueAtTime(0, Howler.ctx.currentTime);\n\n sound._panner.positionZ.setValueAtTime(0, Howler.ctx.currentTime);\n } else {\n sound._panner.setPosition(pan, 0, 0);\n }\n } else {\n sound._panner.pan.setValueAtTime(pan, Howler.ctx.currentTime);\n }\n }\n\n self._emit('stereo', sound._id);\n } else {\n return sound._stereo;\n }\n }\n }\n\n return self;\n };\n /**\n * Get/set the 3D spatial position of the audio source for this sound or group relative to the global listener.\n * @param {Number} x The x-position of the audio source.\n * @param {Number} y The y-position of the audio source.\n * @param {Number} z The z-position of the audio source.\n * @param {Number} id (optional) The sound ID. If none is passed, all in group will be updated.\n * @return {Howl/Array} Returns self or the current 3D spatial position: [x, y, z].\n */\n\n\n Howl.prototype.pos = function (x, y, z, id) {\n var self = this; // Stop right here if not using Web Audio.\n\n if (!self._webAudio) {\n return self;\n } // If the sound hasn't loaded, add it to the load queue to change position when capable.\n\n\n if (self._state !== 'loaded') {\n self._queue.push({\n event: 'pos',\n action: function action() {\n self.pos(x, y, z, id);\n }\n });\n\n return self;\n } // Set the defaults for optional 'y' & 'z'.\n\n\n y = typeof y !== 'number' ? 0 : y;\n z = typeof z !== 'number' ? -0.5 : z; // Setup the group's spatial position if no ID is passed.\n\n if (typeof id === 'undefined') {\n // Return the group's spatial position if no parameters are passed.\n if (typeof x === 'number') {\n self._pos = [x, y, z];\n } else {\n return self._pos;\n }\n } // Change the spatial position of one or all sounds in group.\n\n\n var ids = self._getSoundIds(id);\n\n for (var i = 0; i < ids.length; i++) {\n // Get the sound.\n var sound = self._soundById(ids[i]);\n\n if (sound) {\n if (typeof x === 'number') {\n sound._pos = [x, y, z];\n\n if (sound._node) {\n // Check if there is a panner setup and create a new one if not.\n if (!sound._panner || sound._panner.pan) {\n setupPanner(sound, 'spatial');\n }\n\n if (typeof sound._panner.positionX !== 'undefined') {\n sound._panner.positionX.setValueAtTime(x, Howler.ctx.currentTime);\n\n sound._panner.positionY.setValueAtTime(y, Howler.ctx.currentTime);\n\n sound._panner.positionZ.setValueAtTime(z, Howler.ctx.currentTime);\n } else {\n sound._panner.setPosition(x, y, z);\n }\n }\n\n self._emit('pos', sound._id);\n } else {\n return sound._pos;\n }\n }\n }\n\n return self;\n };\n /**\n * Get/set the direction the audio source is pointing in the 3D cartesian coordinate\n * space. Depending on how direction the sound is, based on the `cone` attributes,\n * a sound pointing away from the listener can be quiet or silent.\n * @param {Number} x The x-orientation of the source.\n * @param {Number} y The y-orientation of the source.\n * @param {Number} z The z-orientation of the source.\n * @param {Number} id (optional) The sound ID. If none is passed, all in group will be updated.\n * @return {Howl/Array} Returns self or the current 3D spatial orientation: [x, y, z].\n */\n\n\n Howl.prototype.orientation = function (x, y, z, id) {\n var self = this; // Stop right here if not using Web Audio.\n\n if (!self._webAudio) {\n return self;\n } // If the sound hasn't loaded, add it to the load queue to change orientation when capable.\n\n\n if (self._state !== 'loaded') {\n self._queue.push({\n event: 'orientation',\n action: function action() {\n self.orientation(x, y, z, id);\n }\n });\n\n return self;\n } // Set the defaults for optional 'y' & 'z'.\n\n\n y = typeof y !== 'number' ? self._orientation[1] : y;\n z = typeof z !== 'number' ? self._orientation[2] : z; // Setup the group's spatial orientation if no ID is passed.\n\n if (typeof id === 'undefined') {\n // Return the group's spatial orientation if no parameters are passed.\n if (typeof x === 'number') {\n self._orientation = [x, y, z];\n } else {\n return self._orientation;\n }\n } // Change the spatial orientation of one or all sounds in group.\n\n\n var ids = self._getSoundIds(id);\n\n for (var i = 0; i < ids.length; i++) {\n // Get the sound.\n var sound = self._soundById(ids[i]);\n\n if (sound) {\n if (typeof x === 'number') {\n sound._orientation = [x, y, z];\n\n if (sound._node) {\n // Check if there is a panner setup and create a new one if not.\n if (!sound._panner) {\n // Make sure we have a position to setup the node with.\n if (!sound._pos) {\n sound._pos = self._pos || [0, 0, -0.5];\n }\n\n setupPanner(sound, 'spatial');\n }\n\n if (typeof sound._panner.orientationX !== 'undefined') {\n sound._panner.orientationX.setValueAtTime(x, Howler.ctx.currentTime);\n\n sound._panner.orientationY.setValueAtTime(y, Howler.ctx.currentTime);\n\n sound._panner.orientationZ.setValueAtTime(z, Howler.ctx.currentTime);\n } else {\n sound._panner.setOrientation(x, y, z);\n }\n }\n\n self._emit('orientation', sound._id);\n } else {\n return sound._orientation;\n }\n }\n }\n\n return self;\n };\n /**\n * Get/set the panner node's attributes for a sound or group of sounds.\n * This method can optionall take 0, 1 or 2 arguments.\n * pannerAttr() -> Returns the group's values.\n * pannerAttr(id) -> Returns the sound id's values.\n * pannerAttr(o) -> Set's the values of all sounds in this Howl group.\n * pannerAttr(o, id) -> Set's the values of passed sound id.\n *\n * Attributes:\n * coneInnerAngle - (360 by default) A parameter for directional audio sources, this is an angle, in degrees,\n * inside of which there will be no volume reduction.\n * coneOuterAngle - (360 by default) A parameter for directional audio sources, this is an angle, in degrees,\n * outside of which the volume will be reduced to a constant value of `coneOuterGain`.\n * coneOuterGain - (0 by default) A parameter for directional audio sources, this is the gain outside of the\n * `coneOuterAngle`. It is a linear value in the range `[0, 1]`.\n * distanceModel - ('inverse' by default) Determines algorithm used to reduce volume as audio moves away from\n * listener. Can be `linear`, `inverse` or `exponential.\n * maxDistance - (10000 by default) The maximum distance between source and listener, after which the volume\n * will not be reduced any further.\n * refDistance - (1 by default) A reference distance for reducing volume as source moves further from the listener.\n * This is simply a variable of the distance model and has a different effect depending on which model\n * is used and the scale of your coordinates. Generally, volume will be equal to 1 at this distance.\n * rolloffFactor - (1 by default) How quickly the volume reduces as source moves from listener. This is simply a\n * variable of the distance model and can be in the range of `[0, 1]` with `linear` and `[0, ∞]`\n * with `inverse` and `exponential`.\n * panningModel - ('HRTF' by default) Determines which spatialization algorithm is used to position audio.\n * Can be `HRTF` or `equalpower`.\n *\n * @return {Howl/Object} Returns self or current panner attributes.\n */\n\n\n Howl.prototype.pannerAttr = function () {\n var self = this;\n var args = arguments;\n var o, id, sound; // Stop right here if not using Web Audio.\n\n if (!self._webAudio) {\n return self;\n } // Determine the values based on arguments.\n\n\n if (args.length === 0) {\n // Return the group's panner attribute values.\n return self._pannerAttr;\n } else if (args.length === 1) {\n if (typeof args[0] === 'object') {\n o = args[0]; // Set the grou's panner attribute values.\n\n if (typeof id === 'undefined') {\n if (!o.pannerAttr) {\n o.pannerAttr = {\n coneInnerAngle: o.coneInnerAngle,\n coneOuterAngle: o.coneOuterAngle,\n coneOuterGain: o.coneOuterGain,\n distanceModel: o.distanceModel,\n maxDistance: o.maxDistance,\n refDistance: o.refDistance,\n rolloffFactor: o.rolloffFactor,\n panningModel: o.panningModel\n };\n }\n\n self._pannerAttr = {\n coneInnerAngle: typeof o.pannerAttr.coneInnerAngle !== 'undefined' ? o.pannerAttr.coneInnerAngle : self._coneInnerAngle,\n coneOuterAngle: typeof o.pannerAttr.coneOuterAngle !== 'undefined' ? o.pannerAttr.coneOuterAngle : self._coneOuterAngle,\n coneOuterGain: typeof o.pannerAttr.coneOuterGain !== 'undefined' ? o.pannerAttr.coneOuterGain : self._coneOuterGain,\n distanceModel: typeof o.pannerAttr.distanceModel !== 'undefined' ? o.pannerAttr.distanceModel : self._distanceModel,\n maxDistance: typeof o.pannerAttr.maxDistance !== 'undefined' ? o.pannerAttr.maxDistance : self._maxDistance,\n refDistance: typeof o.pannerAttr.refDistance !== 'undefined' ? o.pannerAttr.refDistance : self._refDistance,\n rolloffFactor: typeof o.pannerAttr.rolloffFactor !== 'undefined' ? o.pannerAttr.rolloffFactor : self._rolloffFactor,\n panningModel: typeof o.pannerAttr.panningModel !== 'undefined' ? o.pannerAttr.panningModel : self._panningModel\n };\n }\n } else {\n // Return this sound's panner attribute values.\n sound = self._soundById(parseInt(args[0], 10));\n return sound ? sound._pannerAttr : self._pannerAttr;\n }\n } else if (args.length === 2) {\n o = args[0];\n id = parseInt(args[1], 10);\n } // Update the values of the specified sounds.\n\n\n var ids = self._getSoundIds(id);\n\n for (var i = 0; i < ids.length; i++) {\n sound = self._soundById(ids[i]);\n\n if (sound) {\n // Merge the new values into the sound.\n var pa = sound._pannerAttr;\n pa = {\n coneInnerAngle: typeof o.coneInnerAngle !== 'undefined' ? o.coneInnerAngle : pa.coneInnerAngle,\n coneOuterAngle: typeof o.coneOuterAngle !== 'undefined' ? o.coneOuterAngle : pa.coneOuterAngle,\n coneOuterGain: typeof o.coneOuterGain !== 'undefined' ? o.coneOuterGain : pa.coneOuterGain,\n distanceModel: typeof o.distanceModel !== 'undefined' ? o.distanceModel : pa.distanceModel,\n maxDistance: typeof o.maxDistance !== 'undefined' ? o.maxDistance : pa.maxDistance,\n refDistance: typeof o.refDistance !== 'undefined' ? o.refDistance : pa.refDistance,\n rolloffFactor: typeof o.rolloffFactor !== 'undefined' ? o.rolloffFactor : pa.rolloffFactor,\n panningModel: typeof o.panningModel !== 'undefined' ? o.panningModel : pa.panningModel\n }; // Update the panner values or create a new panner if none exists.\n\n var panner = sound._panner;\n\n if (panner) {\n panner.coneInnerAngle = pa.coneInnerAngle;\n panner.coneOuterAngle = pa.coneOuterAngle;\n panner.coneOuterGain = pa.coneOuterGain;\n panner.distanceModel = pa.distanceModel;\n panner.maxDistance = pa.maxDistance;\n panner.refDistance = pa.refDistance;\n panner.rolloffFactor = pa.rolloffFactor;\n panner.panningModel = pa.panningModel;\n } else {\n // Make sure we have a position to setup the node with.\n if (!sound._pos) {\n sound._pos = self._pos || [0, 0, -0.5];\n } // Create a new panner node.\n\n\n setupPanner(sound, 'spatial');\n }\n }\n }\n\n return self;\n };\n /** Single Sound Methods **/\n\n /***************************************************************************/\n\n /**\n * Add new properties to the core Sound init.\n * @param {Function} _super Core Sound init method.\n * @return {Sound}\n */\n\n\n Sound.prototype.init = function (_super) {\n return function () {\n var self = this;\n var parent = self._parent; // Setup user-defined default properties.\n\n self._orientation = parent._orientation;\n self._stereo = parent._stereo;\n self._pos = parent._pos;\n self._pannerAttr = parent._pannerAttr; // Complete initilization with howler.js core Sound's init function.\n\n _super.call(this); // If a stereo or position was specified, set it up.\n\n\n if (self._stereo) {\n parent.stereo(self._stereo);\n } else if (self._pos) {\n parent.pos(self._pos[0], self._pos[1], self._pos[2], self._id);\n }\n };\n }(Sound.prototype.init);\n /**\n * Override the Sound.reset method to clean up properties from the spatial plugin.\n * @param {Function} _super Sound reset method.\n * @return {Sound}\n */\n\n\n Sound.prototype.reset = function (_super) {\n return function () {\n var self = this;\n var parent = self._parent; // Reset all spatial plugin properties on this sound.\n\n self._orientation = parent._orientation;\n self._stereo = parent._stereo;\n self._pos = parent._pos;\n self._pannerAttr = parent._pannerAttr; // If a stereo or position was specified, set it up.\n\n if (self._stereo) {\n parent.stereo(self._stereo);\n } else if (self._pos) {\n parent.pos(self._pos[0], self._pos[1], self._pos[2], self._id);\n } else if (self._panner) {\n // Disconnect the panner.\n self._panner.disconnect(0);\n\n self._panner = undefined;\n\n parent._refreshBuffer(self);\n } // Complete resetting of the sound.\n\n\n return _super.call(this);\n };\n }(Sound.prototype.reset);\n /** Helper Methods **/\n\n /***************************************************************************/\n\n /**\n * Create a new panner node and save it on the sound.\n * @param {Sound} sound Specific sound to setup panning on.\n * @param {String} type Type of panner to create: 'stereo' or 'spatial'.\n */\n\n\n var setupPanner = function setupPanner(sound, type) {\n type = type || 'spatial'; // Create the new panner node.\n\n if (type === 'spatial') {\n sound._panner = Howler.ctx.createPanner();\n sound._panner.coneInnerAngle = sound._pannerAttr.coneInnerAngle;\n sound._panner.coneOuterAngle = sound._pannerAttr.coneOuterAngle;\n sound._panner.coneOuterGain = sound._pannerAttr.coneOuterGain;\n sound._panner.distanceModel = sound._pannerAttr.distanceModel;\n sound._panner.maxDistance = sound._pannerAttr.maxDistance;\n sound._panner.refDistance = sound._pannerAttr.refDistance;\n sound._panner.rolloffFactor = sound._pannerAttr.rolloffFactor;\n sound._panner.panningModel = sound._pannerAttr.panningModel;\n\n if (typeof sound._panner.positionX !== 'undefined') {\n sound._panner.positionX.setValueAtTime(sound._pos[0], Howler.ctx.currentTime);\n\n sound._panner.positionY.setValueAtTime(sound._pos[1], Howler.ctx.currentTime);\n\n sound._panner.positionZ.setValueAtTime(sound._pos[2], Howler.ctx.currentTime);\n } else {\n sound._panner.setPosition(sound._pos[0], sound._pos[1], sound._pos[2]);\n }\n\n if (typeof sound._panner.orientationX !== 'undefined') {\n sound._panner.orientationX.setValueAtTime(sound._orientation[0], Howler.ctx.currentTime);\n\n sound._panner.orientationY.setValueAtTime(sound._orientation[1], Howler.ctx.currentTime);\n\n sound._panner.orientationZ.setValueAtTime(sound._orientation[2], Howler.ctx.currentTime);\n } else {\n sound._panner.setOrientation(sound._orientation[0], sound._orientation[1], sound._orientation[2]);\n }\n } else {\n sound._panner = Howler.ctx.createStereoPanner();\n\n sound._panner.pan.setValueAtTime(sound._stereo, Howler.ctx.currentTime);\n }\n\n sound._panner.connect(sound._node); // Update the connections.\n\n\n if (!sound._paused) {\n sound._parent.pause(sound._id, true).play(sound._id, true);\n }\n };\n})();","import { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport debounce from 'debounce';\nimport findNodeHandle from \"../../exports/findNodeHandle\";\nvar emptyObject = {};\nvar registry = {};\nvar id = 1;\n\nvar guid = function guid() {\n return \"r-\" + id++;\n};\n\nvar resizeObserver;\n\nif (canUseDOM) {\n if (typeof window.ResizeObserver !== 'undefined') {\n resizeObserver = new window.ResizeObserver(function (entries) {\n entries.forEach(function (_ref) {\n var target = _ref.target;\n var instance = registry[target._layoutId];\n instance && instance._handleLayout();\n });\n });\n } else {\n if (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test') {\n console.warn('onLayout relies on ResizeObserver which is not supported by your browser. ' + 'Please include a polyfill, e.g., https://github.com/que-etc/resize-observer-polyfill. ' + 'Falling back to window.onresize.');\n }\n\n var triggerAll = function triggerAll() {\n Object.keys(registry).forEach(function (key) {\n var instance = registry[key];\n\n instance._handleLayout();\n });\n };\n\n window.addEventListener('resize', debounce(triggerAll, 16), false);\n }\n}\n\nvar observe = function observe(instance) {\n var id = guid();\n registry[id] = instance;\n\n if (resizeObserver) {\n var node = findNodeHandle(instance);\n\n if (node) {\n node._layoutId = id;\n resizeObserver.observe(node);\n }\n } else {\n instance._layoutId = id;\n\n instance._handleLayout();\n }\n};\n\nvar unobserve = function unobserve(instance) {\n if (resizeObserver) {\n var node = findNodeHandle(instance);\n\n if (node) {\n delete registry[node._layoutId];\n delete node._layoutId;\n resizeObserver.unobserve(node);\n }\n } else {\n delete registry[instance._layoutId];\n delete instance._layoutId;\n }\n};\n\nvar safeOverride = function safeOverride(original, next) {\n if (original) {\n return function prototypeOverride() {\n original.call(this, arguments);\n next.call(this, arguments);\n };\n }\n\n return next;\n};\n\nvar applyLayout = function applyLayout(Component) {\n var componentDidMount = Component.prototype.componentDidMount;\n var componentDidUpdate = Component.prototype.componentDidUpdate;\n var componentWillUnmount = Component.prototype.componentWillUnmount;\n Component.prototype.componentDidMount = safeOverride(componentDidMount, function componentDidMount() {\n this._layoutState = emptyObject;\n this._isMounted = true;\n\n if (this.props.onLayout) {\n observe(this);\n }\n });\n Component.prototype.componentDidUpdate = safeOverride(componentDidUpdate, function componentDidUpdate(prevProps) {\n if (this.props.onLayout && !prevProps.onLayout) {\n observe(this);\n } else if (!this.props.onLayout && prevProps.onLayout) {\n unobserve(this);\n }\n });\n Component.prototype.componentWillUnmount = safeOverride(componentWillUnmount, function componentWillUnmount() {\n this._isMounted = false;\n\n if (this.props.onLayout) {\n unobserve(this);\n }\n });\n\n Component.prototype._handleLayout = function () {\n var _this = this;\n\n var layout = this._layoutState;\n var onLayout = this.props.onLayout;\n\n if (onLayout) {\n this.measure(function (x, y, width, height) {\n if (_this._isMounted) {\n if (layout.x !== x || layout.y !== y || layout.width !== width || layout.height !== height) {\n _this._layoutState = {\n x: x,\n y: y,\n width: width,\n height: height\n };\n var nativeEvent = {\n layout: _this._layoutState\n };\n Object.defineProperty(nativeEvent, 'target', {\n enumerable: true,\n get: function get() {\n return findNodeHandle(_this);\n }\n });\n onLayout({\n nativeEvent: nativeEvent,\n timeStamp: Date.now()\n });\n }\n }\n });\n }\n };\n\n return Component;\n};\n\nexport default applyLayout;","import React, { createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { publicLoader } from \"./loader\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport { grabMatchParams } from \"./find-path\"\n\n// Renders page\nclass PageRenderer extends React.Component {\n render() {\n const props = {\n ...this.props,\n params: {\n ...grabMatchParams(this.props.location.pathname),\n ...this.props.pageResources.json.pageContext.__params,\n },\n pathContext: this.props.pageContext,\n }\n\n const [replacementElement] = apiRunner(`replaceComponentRenderer`, {\n props: this.props,\n loader: publicLoader,\n })\n\n const pageElement =\n replacementElement ||\n createElement(this.props.pageResources.component, {\n ...props,\n key: this.props.path || this.props.pageResources.page.path,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n { element: pageElement, props },\n pageElement,\n ({ result }) => {\n return { element: result, props }\n }\n ).pop()\n\n return wrappedPage\n }\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","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;","import ReactNativePropRegistry from \"../../modules/ReactNativePropRegistry\";\nimport invariant from 'fbjs/lib/invariant';\n\nfunction getStyle(style) {\n if (typeof style === 'number') {\n return ReactNativePropRegistry.getByID(style);\n }\n\n return style;\n}\n\nfunction flattenStyle(style) {\n if (!style) {\n return undefined;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n invariant(style !== true, 'style may be false but not true');\n }\n\n if (!Array.isArray(style)) {\n return getStyle(style);\n }\n\n var result = {};\n\n for (var i = 0, styleLength = style.length; i < styleLength; ++i) {\n var computedStyle = flattenStyle(style[i]);\n\n if (computedStyle) {\n for (var key in computedStyle) {\n var value = computedStyle[key];\n result[key] = value;\n }\n }\n }\n\n return result;\n}\n\nexport default flattenStyle;","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var buttonLikeRoles = {\n button: true,\n menuitem: true\n};\nexport default buttonLikeRoles;","var accessibilityComponentTypeToRole = {\n button: 'button',\n none: 'presentation'\n};\nvar accessibilityTraitsToRole = {\n adjustable: 'slider',\n button: 'button',\n header: 'heading',\n image: 'img',\n link: 'link',\n none: 'presentation',\n search: 'search',\n summary: 'region'\n};\nvar accessibilityRoleToWebRole = {\n adjustable: 'slider',\n button: 'button',\n header: 'heading',\n image: 'img',\n imagebutton: null,\n keyboardkey: null,\n label: null,\n link: 'link',\n none: 'presentation',\n search: 'search',\n summary: 'region',\n text: null\n};\n\nvar propsToAriaRole = function propsToAriaRole(_ref) {\n var accessibilityComponentType = _ref.accessibilityComponentType,\n accessibilityRole = _ref.accessibilityRole,\n accessibilityTraits = _ref.accessibilityTraits;\n\n if (accessibilityRole) {\n var inferredRole = accessibilityRoleToWebRole[accessibilityRole];\n\n if (inferredRole !== null) {\n return inferredRole || accessibilityRole;\n }\n }\n\n if (accessibilityTraits) {\n var trait = Array.isArray(accessibilityTraits) ? accessibilityTraits[0] : accessibilityTraits;\n return accessibilityTraitsToRole[trait];\n }\n\n if (accessibilityComponentType) {\n return accessibilityComponentTypeToRole[accessibilityComponentType];\n }\n};\n\nexport default propsToAriaRole;","import propsToAriaRole from \"./propsToAriaRole\";\nvar roleComponents = {\n article: 'article',\n banner: 'header',\n complementary: 'aside',\n contentinfo: 'footer',\n form: 'form',\n link: 'a',\n list: 'ul',\n listitem: 'li',\n main: 'main',\n navigation: 'nav',\n region: 'section'\n};\nvar emptyObject = {};\n\nvar propsToAccessibilityComponent = function propsToAccessibilityComponent(props) {\n if (props === void 0) {\n props = emptyObject;\n }\n\n if (props.accessibilityRole === 'label') {\n return 'label';\n }\n\n var role = propsToAriaRole(props);\n\n if (role) {\n if (role === 'heading') {\n var level = props['aria-level'] || 1;\n return \"h\" + level;\n }\n\n return roleComponents[role];\n }\n};\n\nexport default propsToAccessibilityComponent;","import buttonLikeRoles from \"./buttonLikeRoles\";\nimport isDisabled from \"./isDisabled\";\nimport propsToAccessibilityComponent from \"./propsToAccessibilityComponent\";\nimport propsToAriaRole from \"./propsToAriaRole\";\nvar AccessibilityUtil = {\n buttonLikeRoles: buttonLikeRoles,\n isDisabled: isDisabled,\n propsToAccessibilityComponent: propsToAccessibilityComponent,\n propsToAriaRole: propsToAriaRole\n};\nexport default AccessibilityUtil;","var isDisabled = function isDisabled(props) {\n return props.disabled || Array.isArray(props.accessibilityStates) && props.accessibilityStates.indexOf('disabled') > -1;\n};\n\nexport default isDisabled;","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\"use strict\";\n\nexports.extend = extend;\nvar hop = Object.prototype.hasOwnProperty;\n\nfunction extend(obj) {\n var sources = Array.prototype.slice.call(arguments, 1),\n i,\n len,\n source,\n key;\n\n for (i = 0, len = sources.length; i < len; i += 1) {\n source = sources[i];\n\n if (!source) {\n continue;\n }\n\n for (key in source) {\n if (hop.call(source, key)) {\n obj[key] = source[key];\n }\n }\n }\n\n return obj;\n}\n\nexports.hop = hop;","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","import invariant from \"invariant\";\n\n////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// pick(routes, uri)\n//\n// Ranks and picks the best route to match. Each segment gets the highest\n// amount of points, then the type of segment gets an additional amount of\n// points where\n//\n// static > dynamic > splat > root\n//\n// This way we don't have to worry about the order of our routes, let the\n// computers do it.\n//\n// A route looks like this\n//\n// { path, default, value }\n//\n// And a returned match looks like:\n//\n// { route, params, uri }\n//\n// I know, I should use TypeScript not comments for these types.\nvar pick = function pick(routes, uri) {\n var match = void 0;\n var default_ = void 0;\n\n var _uri$split = uri.split(\"?\"),\n uriPathname = _uri$split[0];\n\n var uriSegments = segmentize(uriPathname);\n var isRootUri = uriSegments[0] === \"\";\n var ranked = rankRoutes(routes);\n\n for (var i = 0, l = ranked.length; i < l; i++) {\n var missed = false;\n var route = ranked[i].route;\n\n if (route.default) {\n default_ = {\n route: route,\n params: {},\n uri: uri\n };\n continue;\n }\n\n var routeSegments = segmentize(route.path);\n var params = {};\n var max = Math.max(uriSegments.length, routeSegments.length);\n var index = 0;\n\n for (; index < max; index++) {\n var routeSegment = routeSegments[index];\n var uriSegment = uriSegments[index];\n\n if (isSplat(routeSegment)) {\n // Hit a splat, just grab the rest, and return a match\n // uri: /files/documents/work\n // route: /files/*\n var param = routeSegment.slice(1) || \"*\";\n params[param] = uriSegments.slice(index).map(decodeURIComponent).join(\"/\");\n break;\n }\n\n if (uriSegment === undefined) {\n // URI is shorter than the route, no match\n // uri: /users\n // route: /users/:userId\n missed = true;\n break;\n }\n\n var dynamicMatch = paramRe.exec(routeSegment);\n\n if (dynamicMatch && !isRootUri) {\n var matchIsNotReserved = reservedNames.indexOf(dynamicMatch[1]) === -1;\n !matchIsNotReserved ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : invariant(false) : void 0;\n var value = decodeURIComponent(uriSegment);\n params[dynamicMatch[1]] = value;\n } else if (routeSegment !== uriSegment) {\n // Current segments don't match, not dynamic, not splat, so no match\n // uri: /users/123/settings\n // route: /users/:id/profile\n missed = true;\n break;\n }\n }\n\n if (!missed) {\n match = {\n route: route,\n params: params,\n uri: \"/\" + uriSegments.slice(0, index).join(\"/\")\n };\n break;\n }\n }\n\n return match || default_ || null;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// match(path, uri) - Matches just one path to a uri, also lol\nvar match = function match(path, uri) {\n return pick([{ path: path }], uri);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// resolve(to, basepath)\n//\n// Resolves URIs as though every path is a directory, no files. Relative URIs\n// in the browser can feel awkward because not only can you be \"in a directory\"\n// you can be \"at a file\", too. For example\n//\n// browserSpecResolve('foo', '/bar/') => /bar/foo\n// browserSpecResolve('foo', '/bar') => /foo\n//\n// But on the command line of a file system, it's not as complicated, you can't\n// `cd` from a file, only directories. This way, links have to know less about\n// their current path. To go deeper you can do this:\n//\n// \n// // instead of\n// \n//\n// Just like `cd`, if you want to go deeper from the command line, you do this:\n//\n// cd deeper\n// # not\n// cd $(pwd)/deeper\n//\n// By treating every path as a directory, linking to relative paths should\n// require less contextual information and (fingers crossed) be more intuitive.\nvar resolve = function resolve(to, base) {\n // /foo/bar, /baz/qux => /foo/bar\n if (startsWith(to, \"/\")) {\n return to;\n }\n\n var _to$split = to.split(\"?\"),\n toPathname = _to$split[0],\n toQuery = _to$split[1];\n\n var _base$split = base.split(\"?\"),\n basePathname = _base$split[0];\n\n var toSegments = segmentize(toPathname);\n var baseSegments = segmentize(basePathname);\n\n // ?a=b, /users?b=c => /users?a=b\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n }\n\n // profile, /users/789 => /users/789/profile\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\n }\n\n // ./ /users/123 => /users/123\n // ../ /users/123 => /users\n // ../.. /users/123 => /\n // ../../one /a/b/c/d => /a/b/one\n // .././one /a/b/c/d => /a/b/c/one\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n for (var i = 0, l = allSegments.length; i < l; i++) {\n var segment = allSegments[i];\n if (segment === \"..\") segments.pop();else if (segment !== \".\") segments.push(segment);\n }\n\n return addQuery(\"/\" + segments.join(\"/\"), toQuery);\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// insertParams(path, params)\n\nvar insertParams = function insertParams(path, params) {\n var _path$split = path.split(\"?\"),\n pathBase = _path$split[0],\n _path$split$ = _path$split[1],\n query = _path$split$ === undefined ? \"\" : _path$split$;\n\n var segments = segmentize(pathBase);\n var constructedPath = \"/\" + segments.map(function (segment) {\n var match = paramRe.exec(segment);\n return match ? params[match[1]] : segment;\n }).join(\"/\");\n var _params$location = params.location;\n _params$location = _params$location === undefined ? {} : _params$location;\n var _params$location$sear = _params$location.search,\n search = _params$location$sear === undefined ? \"\" : _params$location$sear;\n\n var searchSplit = search.split(\"?\")[1] || \"\";\n constructedPath = addQuery(constructedPath, query, searchSplit);\n return constructedPath;\n};\n\nvar validateRedirect = function validateRedirect(from, to) {\n var filter = function filter(segment) {\n return isDynamic(segment);\n };\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Junk\nvar paramRe = /^:(.+)/;\n\nvar SEGMENT_POINTS = 4;\nvar STATIC_POINTS = 3;\nvar DYNAMIC_POINTS = 2;\nvar SPLAT_PENALTY = 1;\nvar ROOT_POINTS = 1;\n\nvar isRootSegment = function isRootSegment(segment) {\n return segment === \"\";\n};\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\nvar isSplat = function isSplat(segment) {\n return segment && segment[0] === \"*\";\n};\n\nvar rankRoute = function rankRoute(route, index) {\n var score = route.default ? 0 : segmentize(route.path).reduce(function (score, segment) {\n score += SEGMENT_POINTS;\n if (isRootSegment(segment)) score += ROOT_POINTS;else if (isDynamic(segment)) score += DYNAMIC_POINTS;else if (isSplat(segment)) score -= SEGMENT_POINTS + SPLAT_PENALTY;else score += STATIC_POINTS;\n return score;\n }, 0);\n return { route: route, score: score, index: index };\n};\n\nvar rankRoutes = function rankRoutes(routes) {\n return routes.map(rankRoute).sort(function (a, b) {\n return a.score < b.score ? 1 : a.score > b.score ? -1 : a.index - b.index;\n });\n};\n\nvar segmentize = function segmentize(uri) {\n return uri\n // strip starting/ending slashes\n .replace(/(^\\/+|\\/+$)/g, \"\").split(\"/\");\n};\n\nvar addQuery = function addQuery(pathname) {\n for (var _len = arguments.length, query = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n query[_key - 1] = arguments[_key];\n }\n\n query = query.filter(function (q) {\n return q && q.length > 0;\n });\n return pathname + (query && query.length > 0 ? \"?\" + query.join(\"&\") : \"\");\n};\n\nvar reservedNames = [\"uri\", \"path\"];\n\n/**\n * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\nvar shallowCompare = function shallowCompare(obj1, obj2) {\n var obj1Keys = Object.keys(obj1);\n return obj1Keys.length === Object.keys(obj2).length && obj1Keys.every(function (key) {\n return obj2.hasOwnProperty(key) && obj1[key] === obj2[key];\n });\n};\n\n////////////////////////////////////////////////////////////////////////////////\nexport { startsWith, pick, match, resolve, insertParams, validateRedirect, shallowCompare };","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-matomo/gatsby-browser.js'),\n options: {\"plugins\":[],\"siteId\":\"3\",\"matomoUrl\":\"https://s.ursaluna.studio\",\"siteUrl\":\"https://seagazing.com\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n options: {\"plugins\":[],\"name\":\"seagazing-podcast\",\"short_name\":\"seagazing\",\"start_url\":\"/\",\"background_color\":\"#663399\",\"theme_color\":\"#663399\",\"display\":\"minimal-ui\",\"icon\":\"assets/icon.png\",\"cache_busting_mode\":\"query\",\"include_favicon\":true,\"legacy\":true,\"theme_color_in_head\":true,\"cacheDigest\":\"41aba486029b982d6f7773e6eed0f5b4\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-offline/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby-plugin-react-native-web/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","export var IconsManifest = [{\n \"id\": \"fa\",\n \"name\": \"Font Awesome\",\n \"projectUrl\": \"https://fontawesome.com/\",\n \"license\": \"CC BY 4.0 License\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n}, {\n \"id\": \"io\",\n \"name\": \"Ionicons 4\",\n \"projectUrl\": \"https://ionicons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n}, {\n \"id\": \"io5\",\n \"name\": \"Ionicons 5\",\n \"projectUrl\": \"https://ionicons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/ionic-team/ionicons/blob/master/LICENSE\"\n}, {\n \"id\": \"md\",\n \"name\": \"Material Design icons\",\n \"projectUrl\": \"http://google.github.io/material-design-icons/\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"https://github.com/google/material-design-icons/blob/master/LICENSE\"\n}, {\n \"id\": \"ti\",\n \"name\": \"Typicons\",\n \"projectUrl\": \"http://s-ings.com/typicons/\",\n \"license\": \"CC BY-SA 3.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by-sa/3.0/\"\n}, {\n \"id\": \"go\",\n \"name\": \"Github Octicons icons\",\n \"projectUrl\": \"https://octicons.github.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/primer/octicons/blob/master/LICENSE\"\n}, {\n \"id\": \"fi\",\n \"name\": \"Feather\",\n \"projectUrl\": \"https://feathericons.com/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://github.com/feathericons/feather/blob/master/LICENSE\"\n}, {\n \"id\": \"gi\",\n \"name\": \"Game Icons\",\n \"projectUrl\": \"https://game-icons.net/\",\n \"license\": \"CC BY 3.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/3.0/\"\n}, {\n \"id\": \"wi\",\n \"name\": \"Weather Icons\",\n \"projectUrl\": \"https://erikflowers.github.io/weather-icons/\",\n \"license\": \"SIL OFL 1.1\",\n \"licenseUrl\": \"http://scripts.sil.org/OFL\"\n}, {\n \"id\": \"di\",\n \"name\": \"Devicons\",\n \"projectUrl\": \"https://vorillaz.github.io/devicons/\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"ai\",\n \"name\": \"Ant Design Icons\",\n \"projectUrl\": \"https://github.com/ant-design/ant-design-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"bs\",\n \"name\": \"Bootstrap Icons\",\n \"projectUrl\": \"https://github.com/twbs/icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"ri\",\n \"name\": \"Remix Icon\",\n \"projectUrl\": \"https://github.com/Remix-Design/RemixIcon\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"http://www.apache.org/licenses/\"\n}, {\n \"id\": \"fc\",\n \"name\": \"Flat Color Icons\",\n \"projectUrl\": \"https://github.com/icons8/flat-color-icons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"gr\",\n \"name\": \"Grommet-Icons\",\n \"projectUrl\": \"https://github.com/grommet/grommet-icons\",\n \"license\": \"Apache License Version 2.0\",\n \"licenseUrl\": \"http://www.apache.org/licenses/\"\n}, {\n \"id\": \"hi\",\n \"name\": \"Heroicons\",\n \"projectUrl\": \"https://github.com/refactoringui/heroicons\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"si\",\n \"name\": \"Simple Icons\",\n \"projectUrl\": \"https://simpleicons.org/\",\n \"license\": \"CC0 1.0 Universal\",\n \"licenseUrl\": \"https://creativecommons.org/publicdomain/zero/1.0/\"\n}, {\n \"id\": \"im\",\n \"name\": \"IcoMoon Free\",\n \"projectUrl\": \"https://github.com/Keyamoon/IcoMoon-Free\",\n \"license\": \"CC BY 4.0 License\"\n}, {\n \"id\": \"bi\",\n \"name\": \"BoxIcons\",\n \"projectUrl\": \"https://github.com/atisawd/boxicons\",\n \"license\": \"CC BY 4.0 License\"\n}, {\n \"id\": \"cg\",\n \"name\": \"css.gg\",\n \"projectUrl\": \"https://github.com/astrit/css.gg\",\n \"license\": \"MIT\",\n \"licenseUrl\": \"https://opensource.org/licenses/MIT\"\n}, {\n \"id\": \"vsc\",\n \"name\": \"VS Code Icons\",\n \"projectUrl\": \"https://github.com/microsoft/vscode-codicons\",\n \"license\": \"CC BY 4.0\",\n \"licenseUrl\": \"https://creativecommons.org/licenses/by/4.0/\"\n}];","import React from 'react';\nexport var DefaultContext = {\n color: undefined,\n size: undefined,\n className: undefined,\n style: undefined,\n attr: undefined\n};\nexport var IconContext = React.createContext && React.createContext(DefaultContext);","var __assign = this && this.__assign || function () {\n __assign = Object.assign || function (t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n }\n\n return t;\n };\n\n return __assign.apply(this, arguments);\n};\n\nvar __rest = this && this.__rest || function (s, e) {\n var t = {};\n\n for (var p in s) {\n if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0) t[p] = s[p];\n }\n\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\") for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i])) t[p[i]] = s[p[i]];\n }\n return t;\n};\n\nimport React from 'react';\nimport { IconContext, DefaultContext } from './iconContext';\n\nfunction Tree2Element(tree) {\n return tree && tree.map(function (node, i) {\n return React.createElement(node.tag, __assign({\n key: i\n }, node.attr), Tree2Element(node.child));\n });\n}\n\nexport function GenIcon(data) {\n return function (props) {\n return React.createElement(IconBase, __assign({\n attr: __assign({}, data.attr)\n }, props), Tree2Element(data.child));\n };\n}\nexport function IconBase(props) {\n var elem = function elem(conf) {\n var attr = props.attr,\n size = props.size,\n title = props.title,\n svgProps = __rest(props, [\"attr\", \"size\", \"title\"]);\n\n var computedSize = size || conf.size || \"1em\";\n var className;\n if (conf.className) className = conf.className;\n if (props.className) className = (className ? className + ' ' : '') + props.className;\n return React.createElement(\"svg\", __assign({\n stroke: \"currentColor\",\n fill: \"currentColor\",\n strokeWidth: \"0\"\n }, conf.attr, attr, svgProps, {\n className: className,\n style: __assign(__assign({\n color: props.color || conf.color\n }, conf.style), props.style),\n height: computedSize,\n width: computedSize,\n xmlns: \"http://www.w3.org/2000/svg\"\n }), title && React.createElement(\"title\", null, title), props.children);\n };\n\n return IconContext !== undefined ? React.createElement(IconContext.Consumer, null, function (conf) {\n return elem(conf);\n }) : elem(DefaultContext);\n}","/* eslint-disable no-var, prefer-template */\nvar uppercasePattern = /[A-Z]/g;\nvar msPattern = /^ms-/;\nvar cache = {};\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase();\n}\n\nfunction hyphenateStyleName(name) {\n if (cache.hasOwnProperty(name)) {\n return cache[name];\n }\n\n var hName = name.replace(uppercasePattern, toHyphenLower);\n return cache[name] = msPattern.test(hName) ? '-' + hName : hName;\n}\n\nexport default hyphenateStyleName;","/*!\n * domready (c) Dustin Diaz 2014 - License MIT\n * ie10 fix - Mikael Kristiansson 2019\n */\n!(function(name, definition) {\n if (typeof module != \"undefined\") module.exports = definition();\n else if (typeof define == \"function\" && typeof define.amd == \"object\")\n define(definition);\n else this[name] = definition();\n})(\"domready\", function() {\n var ie10 = false;\n if (navigator.appVersion.indexOf(\"MSIE 10\") !== -1) {\n ie10 = true;\n }\n\n var fns = [],\n listener,\n doc = typeof document === \"object\" && document,\n hack = ie10\n ? doc.documentElement.doScroll(\"left\")\n : doc.documentElement.doScroll,\n domContentLoaded = \"DOMContentLoaded\",\n loaded =\n doc && (hack ? /^loaded|^c/ : /^loaded|^i|^c/).test(doc.readyState);\n\n if (!loaded && doc)\n doc.addEventListener(\n domContentLoaded,\n (listener = function() {\n doc.removeEventListener(domContentLoaded, listener);\n loaded = 1;\n while ((listener = fns.shift())) listener();\n })\n );\n\n return function(fn) {\n loaded ? setTimeout(fn, 0) : fns.push(fn);\n };\n});\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = transition;\n\nvar _hyphenateProperty = require('css-in-js-utils/lib/hyphenateProperty');\n\nvar _hyphenateProperty2 = _interopRequireDefault(_hyphenateProperty);\n\nvar _isPrefixedValue = require('css-in-js-utils/lib/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nvar _capitalizeString = require('../utils/capitalizeString');\n\nvar _capitalizeString2 = _interopRequireDefault(_capitalizeString);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar properties = {\n transition: true,\n transitionProperty: true,\n WebkitTransition: true,\n WebkitTransitionProperty: true,\n MozTransition: true,\n MozTransitionProperty: true\n};\nvar prefixMapping = {\n Webkit: '-webkit-',\n Moz: '-moz-',\n ms: '-ms-'\n};\n\nfunction prefixValue(value, propertyPrefixMap) {\n if ((0, _isPrefixedValue2.default)(value)) {\n return value;\n } // only split multi values, not cubic beziers\n\n\n var multipleValues = value.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g);\n\n for (var i = 0, len = multipleValues.length; i < len; ++i) {\n var singleValue = multipleValues[i];\n var values = [singleValue];\n\n for (var property in propertyPrefixMap) {\n var dashCaseProperty = (0, _hyphenateProperty2.default)(property);\n\n if (singleValue.indexOf(dashCaseProperty) > -1 && dashCaseProperty !== 'order') {\n var prefixes = propertyPrefixMap[property];\n\n for (var j = 0, pLen = prefixes.length; j < pLen; ++j) {\n // join all prefixes and create a new value\n values.unshift(singleValue.replace(dashCaseProperty, prefixMapping[prefixes[j]] + dashCaseProperty));\n }\n }\n }\n\n multipleValues[i] = values.join(',');\n }\n\n return multipleValues.join(',');\n}\n\nfunction transition(property, value, style, propertyPrefixMap) {\n // also check for already prefixed transitions\n if (typeof value === 'string' && properties.hasOwnProperty(property)) {\n var outputValue = prefixValue(value, propertyPrefixMap); // if the property is already prefixed\n\n var webkitOutput = outputValue.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g).filter(function (val) {\n return !/-moz-|-ms-/.test(val);\n }).join(',');\n\n if (property.indexOf('Webkit') > -1) {\n return webkitOutput;\n }\n\n var mozOutput = outputValue.split(/,(?![^()]*(?:\\([^()]*\\))?\\))/g).filter(function (val) {\n return !/-webkit-|-ms-/.test(val);\n }).join(',');\n\n if (property.indexOf('Moz') > -1) {\n return mozOutput;\n }\n\n style['Webkit' + (0, _capitalizeString2.default)(property)] = webkitOutput;\n style['Moz' + (0, _capitalizeString2.default)(property)] = mozOutput;\n return outputValue;\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, { useRef } from \"react\";\nimport { useButton } from \"@react-aria/button\";\nimport { AriaButtonProps } from \"@react-types/button\";\nimport { FaPlayCircle, FaPauseCircle } from \"react-icons/fa\";\nimport { useFocusRing } from \"@react-aria/focus\";\n\nexport default function PlayPauseButton({\n isPlaying,\n label,\n size = 50,\n ...props\n}: { label?: string; isPlaying: boolean; size: number } & AriaButtonProps) {\n const ref = useRef(null);\n const { buttonProps, isPressed } = useButton(\n { \"aria-label\": isPlaying ? \"Pause\" : \"Play\", ...props },\n ref\n );\n const { isFocusVisible, focusProps } = useFocusRing();\n\n const Icon = isPlaying ? FaPauseCircle : FaPlayCircle;\n\n return (\n // \n \n {\" \"}\n {Boolean(label) && (\n \n {label}\n \n )}\n \n // \n );\n}\n","// prefer default export if available\nconst preferDefault = m => (m && m.default) || m\n\nexports.components = {\n \"component---cache-caches-gatsby-plugin-offline-app-shell-js\": () => import(\"./../../caches/gatsby-plugin-offline/app-shell.js\" /* webpackChunkName: \"component---cache-caches-gatsby-plugin-offline-app-shell-js\" */),\n \"component---src-pages-episodes-tsx\": () => import(\"./../../../src/pages/episodes.tsx\" /* webpackChunkName: \"component---src-pages-episodes-tsx\" */),\n \"component---src-pages-guests-tsx\": () => import(\"./../../../src/pages/guests.tsx\" /* webpackChunkName: \"component---src-pages-guests-tsx\" */),\n \"component---src-pages-index-tsx\": () => import(\"./../../../src/pages/index.tsx\" /* webpackChunkName: \"component---src-pages-index-tsx\" */)\n}\n\n","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var getBoundingClientRect = function getBoundingClientRect(node) {\n if (node) {\n var isElement = node.nodeType === 1;\n\n if (isElement && typeof node.getBoundingClientRect === 'function') {\n return node.getBoundingClientRect();\n }\n }\n};\n\nexport default getBoundingClientRect;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose\");\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutProperties;","/**\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","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","// GENERATED FILE\n\"use strict\";\n\nexports[\"default\"] = {\n \"locale\": \"en\",\n \"pluralRuleFunction\": function pluralRuleFunction(n, ord) {\n var s = String(n).split(\".\"),\n v0 = !s[1],\n t0 = Number(s[0]) == n,\n n10 = t0 && s[0].slice(-1),\n n100 = t0 && s[0].slice(-2);\n if (ord) return n10 == 1 && n100 != 11 ? \"one\" : n10 == 2 && n100 != 12 ? \"two\" : n10 == 3 && n100 != 13 ? \"few\" : \"other\";\n return n == 1 && v0 ? \"one\" : \"other\";\n }\n};","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n (function () { return this; })() || Function('return this')();\n","var arrayWithoutHoles = require(\"./arrayWithoutHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar arrayMethodUsesToLength = require('../internals/array-method-uses-to-length');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\nvar USES_TO_LENGTH = arrayMethodUsesToLength('reduce', { 1: 0 });\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || !USES_TO_LENGTH || CHROME_BUG }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = hyphenateProperty;\n\nvar _hyphenateStyleName = require('hyphenate-style-name');\n\nvar _hyphenateStyleName2 = _interopRequireDefault(_hyphenateStyleName);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction hyphenateProperty(property) {\n return (0, _hyphenateStyleName2.default)(property);\n}\n\nmodule.exports = exports['default'];","import _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[typeof Symbol === \"function\" ? Symbol.iterator : \"@@iterator\"] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n it = o[typeof Symbol === \"function\" ? Symbol.iterator : \"@@iterator\"]();\n return it.next.bind(it);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nimport _clsx from \"clsx\";\nimport { useSSRSafeId } from \"@react-aria/ssr\";\nimport _react, { useEffect, useRef, useState, useCallback } from \"react\";\nexport var useLayoutEffect = typeof window !== 'undefined' ? _react.useLayoutEffect : function () {};\nvar $f8b5fdd96fb429d7102983f777c41307$var$map = new Map();\nexport function useId(defaultId) {\n var isRendering = useRef(true);\n isRendering.current = true;\n\n var _useState = useState(defaultId),\n _useState2 = _slicedToArray(_useState, 2),\n value = _useState2[0],\n setValue = _useState2[1];\n\n var nextId = useRef(null);\n\n var updateValue = function updateValue(val) {\n if (!isRendering.current) {\n setValue(val);\n } else {\n nextId.current = val;\n }\n };\n\n useLayoutEffect(function () {\n isRendering.current = false;\n }, [updateValue]);\n useEffect(function () {\n var newId = nextId.current;\n\n if (newId) {\n setValue(newId);\n nextId.current = null;\n }\n }, [setValue, updateValue]);\n var res = useSSRSafeId(value);\n $f8b5fdd96fb429d7102983f777c41307$var$map.set(res, updateValue);\n return res;\n}\nexport function mergeIds(a, b) {\n if (a === b) {\n return a;\n }\n\n var setA = $f8b5fdd96fb429d7102983f777c41307$var$map.get(a);\n\n if (setA) {\n setA(b);\n return b;\n }\n\n var setB = $f8b5fdd96fb429d7102983f777c41307$var$map.get(b);\n\n if (setB) {\n setB(a);\n return a;\n }\n\n return b;\n}\nexport function useSlotId() {\n var _useState3 = useState(useId()),\n _useState4 = _slicedToArray(_useState3, 2),\n id = _useState4[0],\n setId = _useState4[1];\n\n useLayoutEffect(function () {\n var setCurr = $f8b5fdd96fb429d7102983f777c41307$var$map.get(id);\n\n if (setCurr && !document.getElementById(id)) {\n setId(null);\n }\n }, [id]);\n return id;\n}\nexport function chain() {\n for (var _len = arguments.length, callbacks = new Array(_len), _key = 0; _key < _len; _key++) {\n callbacks[_key] = arguments[_key];\n }\n\n return function () {\n for (var _iterator = _createForOfIteratorHelperLoose(callbacks), _step; !(_step = _iterator()).done;) {\n var callback = _step.value;\n\n if (typeof callback === 'function') {\n callback.apply(void 0, arguments);\n }\n }\n };\n}\nexport function mergeProps() {\n var result = {};\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n for (var _i = 0, _args = args; _i < _args.length; _i++) {\n var props = _args[_i];\n\n for (var key in result) {\n if (/^on[A-Z]/.test(key) && typeof result[key] === 'function' && typeof props[key] === 'function') {\n result[key] = chain(result[key], props[key]);\n } else if (key === 'className' && typeof result.className === 'string' && typeof props.className === 'string') {\n result[key] = _clsx(result.className, props.className);\n } else if (key === 'UNSAFE_className' && typeof result.UNSAFE_className === 'string' && typeof props.UNSAFE_className === 'string') {\n result[key] = _clsx(result.UNSAFE_className, props.UNSAFE_className);\n } else if (key === 'id' && result.id && props.id) {\n result.id = mergeIds(result.id, props.id);\n } else {\n result[key] = props[key] !== undefined ? props[key] : result[key];\n }\n }\n\n for (var _key2 in props) {\n if (result[_key2] === undefined) {\n result[_key2] = props[_key2];\n }\n }\n }\n\n return result;\n}\nvar $f6a965352cabf1a7c37e8c1337e5eab$var$DOMPropNames = new Set(['id']);\nvar $f6a965352cabf1a7c37e8c1337e5eab$var$labelablePropNames = new Set(['aria-label', 'aria-labelledby', 'aria-describedby', 'aria-details']);\nvar $f6a965352cabf1a7c37e8c1337e5eab$var$propRe = /^(data-.*)$/;\nexport function filterDOMProps(props, opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n var _opts = opts,\n labelable = _opts.labelable,\n propNames = _opts.propNames;\n var filteredProps = {};\n\n for (var prop in props) {\n if (Object.prototype.hasOwnProperty.call(props, prop) && ($f6a965352cabf1a7c37e8c1337e5eab$var$DOMPropNames.has(prop) || labelable && $f6a965352cabf1a7c37e8c1337e5eab$var$labelablePropNames.has(prop) || (propNames == null ? void 0 : propNames.has(prop)) || $f6a965352cabf1a7c37e8c1337e5eab$var$propRe.test(prop))) {\n filteredProps[prop] = props[prop];\n }\n }\n\n return filteredProps;\n}\nexport function focusWithoutScrolling(element) {\n if ($bc7c9c3af78f5218ff72cecce15730$var$supportsPreventScroll()) {\n element.focus({\n preventScroll: true\n });\n } else {\n var scrollableElements = $bc7c9c3af78f5218ff72cecce15730$var$getScrollableElements(element);\n element.focus();\n $bc7c9c3af78f5218ff72cecce15730$var$restoreScrollPosition(scrollableElements);\n }\n}\nvar $bc7c9c3af78f5218ff72cecce15730$var$supportsPreventScrollCached = null;\n\nfunction $bc7c9c3af78f5218ff72cecce15730$var$supportsPreventScroll() {\n if ($bc7c9c3af78f5218ff72cecce15730$var$supportsPreventScrollCached == null) {\n $bc7c9c3af78f5218ff72cecce15730$var$supportsPreventScrollCached = false;\n\n try {\n var focusElem = document.createElement('div');\n focusElem.focus({\n get preventScroll() {\n $bc7c9c3af78f5218ff72cecce15730$var$supportsPreventScrollCached = true;\n return true;\n }\n\n });\n } catch (e) {}\n }\n\n return $bc7c9c3af78f5218ff72cecce15730$var$supportsPreventScrollCached;\n}\n\nfunction $bc7c9c3af78f5218ff72cecce15730$var$getScrollableElements(element) {\n var parent = element.parentNode;\n var scrollableElements = [];\n var rootScrollingElement = document.scrollingElement || document.documentElement;\n\n while (parent instanceof HTMLElement && parent !== rootScrollingElement) {\n if (parent.offsetHeight < parent.scrollHeight || parent.offsetWidth < parent.scrollWidth) {\n scrollableElements.push({\n element: parent,\n scrollTop: parent.scrollTop,\n scrollLeft: parent.scrollLeft\n });\n }\n\n parent = parent.parentNode;\n }\n\n if (rootScrollingElement instanceof HTMLElement) {\n scrollableElements.push({\n element: rootScrollingElement,\n scrollTop: rootScrollingElement.scrollTop,\n scrollLeft: rootScrollingElement.scrollLeft\n });\n }\n\n return scrollableElements;\n}\n\nfunction $bc7c9c3af78f5218ff72cecce15730$var$restoreScrollPosition(scrollableElements) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(scrollableElements), _step2; !(_step2 = _iterator2()).done;) {\n var _ref = _step2.value;\n var element = _ref.element;\n var scrollTop = _ref.scrollTop;\n var scrollLeft = _ref.scrollLeft;\n element.scrollTop = scrollTop;\n element.scrollLeft = scrollLeft;\n }\n}\n\nexport function getOffset(element, reverse, orientation) {\n if (orientation === void 0) {\n orientation = 'horizontal';\n }\n\n var rect = element.getBoundingClientRect();\n\n if (reverse) {\n return orientation === 'horizontal' ? rect.right : rect.bottom;\n }\n\n return orientation === 'horizontal' ? rect.left : rect.top;\n}\nexport function clamp(value, min, max) {\n if (min === void 0) {\n min = -Infinity;\n }\n\n if (max === void 0) {\n max = Infinity;\n }\n\n return Math.min(Math.max(value, min), max);\n}\nvar $b3e8d5c5f32fa26afa6df1b81f09b6b8$var$transitionsByElement = new Map();\nvar $b3e8d5c5f32fa26afa6df1b81f09b6b8$var$transitionCallbacks = new Set();\n\nfunction $b3e8d5c5f32fa26afa6df1b81f09b6b8$var$setupGlobalEvents() {\n if (typeof window === 'undefined') {\n return;\n }\n\n var onTransitionStart = function onTransitionStart(e) {\n var transitions = $b3e8d5c5f32fa26afa6df1b81f09b6b8$var$transitionsByElement.get(e.target);\n\n if (!transitions) {\n transitions = new Set();\n $b3e8d5c5f32fa26afa6df1b81f09b6b8$var$transitionsByElement.set(e.target, transitions);\n e.target.addEventListener('transitioncancel', onTransitionEnd);\n }\n\n transitions.add(e.propertyName);\n };\n\n var onTransitionEnd = function onTransitionEnd(e) {\n var properties = $b3e8d5c5f32fa26afa6df1b81f09b6b8$var$transitionsByElement.get(e.target);\n\n if (!properties) {\n return;\n }\n\n properties.delete(e.propertyName);\n\n if (properties.size === 0) {\n e.target.removeEventListener('transitioncancel', onTransitionEnd);\n $b3e8d5c5f32fa26afa6df1b81f09b6b8$var$transitionsByElement.delete(e.target);\n }\n\n if ($b3e8d5c5f32fa26afa6df1b81f09b6b8$var$transitionsByElement.size === 0) {\n for (var _iterator3 = _createForOfIteratorHelperLoose($b3e8d5c5f32fa26afa6df1b81f09b6b8$var$transitionCallbacks), _step3; !(_step3 = _iterator3()).done;) {\n var cb = _step3.value;\n cb();\n }\n\n $b3e8d5c5f32fa26afa6df1b81f09b6b8$var$transitionCallbacks.clear();\n }\n };\n\n document.body.addEventListener('transitionrun', onTransitionStart);\n document.body.addEventListener('transitionend', onTransitionEnd);\n}\n\nif (typeof document !== 'undefined') {\n if (document.readyState !== 'loading') {\n $b3e8d5c5f32fa26afa6df1b81f09b6b8$var$setupGlobalEvents();\n } else {\n document.addEventListener('DOMContentLoaded', $b3e8d5c5f32fa26afa6df1b81f09b6b8$var$setupGlobalEvents);\n }\n}\n\nexport function runAfterTransition(fn) {\n requestAnimationFrame(function () {\n if ($b3e8d5c5f32fa26afa6df1b81f09b6b8$var$transitionsByElement.size === 0) {\n fn();\n } else {\n $b3e8d5c5f32fa26afa6df1b81f09b6b8$var$transitionCallbacks.add(fn);\n }\n });\n}\nvar $be9622dfd8e876c0943b0b4e429554f3$var$draggingElements = [];\nexport function useDrag1D(props) {\n var containerRef = props.containerRef,\n reverse = props.reverse,\n orientation = props.orientation,\n onHover = props.onHover,\n onDrag = props.onDrag,\n onPositionChange = props.onPositionChange,\n onIncrement = props.onIncrement,\n onDecrement = props.onDecrement,\n onIncrementToMax = props.onIncrementToMax,\n onDecrementToMin = props.onDecrementToMin,\n onCollapseToggle = props.onCollapseToggle;\n\n var getPosition = function getPosition(e) {\n return orientation === 'horizontal' ? e.clientX : e.clientY;\n };\n\n var getNextOffset = function getNextOffset(e) {\n var containerOffset = getOffset(containerRef.current, reverse, orientation);\n var mouseOffset = getPosition(e);\n var nextOffset = reverse ? containerOffset - mouseOffset : mouseOffset - containerOffset;\n return nextOffset;\n };\n\n var dragging = useRef(false);\n var prevPosition = useRef(0);\n var handlers = useRef({\n onPositionChange: onPositionChange,\n onDrag: onDrag\n });\n handlers.current.onDrag = onDrag;\n handlers.current.onPositionChange = onPositionChange;\n\n var onMouseDragged = function onMouseDragged(e) {\n e.preventDefault();\n var nextOffset = getNextOffset(e);\n\n if (!dragging.current) {\n dragging.current = true;\n\n if (handlers.current.onDrag) {\n handlers.current.onDrag(true);\n }\n\n if (handlers.current.onPositionChange) {\n handlers.current.onPositionChange(nextOffset);\n }\n }\n\n if (prevPosition.current === nextOffset) {\n return;\n }\n\n prevPosition.current = nextOffset;\n\n if (onPositionChange) {\n onPositionChange(nextOffset);\n }\n };\n\n var onMouseUp = function onMouseUp(e) {\n var target = e.target;\n dragging.current = false;\n var nextOffset = getNextOffset(e);\n\n if (handlers.current.onDrag) {\n handlers.current.onDrag(false);\n }\n\n if (handlers.current.onPositionChange) {\n handlers.current.onPositionChange(nextOffset);\n }\n\n $be9622dfd8e876c0943b0b4e429554f3$var$draggingElements.splice($be9622dfd8e876c0943b0b4e429554f3$var$draggingElements.indexOf(target), 1);\n window.removeEventListener('mouseup', onMouseUp, false);\n window.removeEventListener('mousemove', onMouseDragged, false);\n };\n\n var onMouseDown = function onMouseDown(e) {\n var target = e.currentTarget;\n\n if ($be9622dfd8e876c0943b0b4e429554f3$var$draggingElements.some(function (elt) {\n return target.contains(elt);\n })) {\n return;\n }\n\n $be9622dfd8e876c0943b0b4e429554f3$var$draggingElements.push(target);\n window.addEventListener('mousemove', onMouseDragged, false);\n window.addEventListener('mouseup', onMouseUp, false);\n };\n\n var onMouseEnter = function onMouseEnter() {\n if (onHover) {\n onHover(true);\n }\n };\n\n var onMouseOut = function onMouseOut() {\n if (onHover) {\n onHover(false);\n }\n };\n\n var onKeyDown = function onKeyDown(e) {\n switch (e.key) {\n case 'Left':\n case 'ArrowLeft':\n if (orientation === 'horizontal') {\n e.preventDefault();\n\n if (onDecrement && !reverse) {\n onDecrement();\n } else if (onIncrement && reverse) {\n onIncrement();\n }\n }\n\n break;\n\n case 'Up':\n case 'ArrowUp':\n if (orientation === 'vertical') {\n e.preventDefault();\n\n if (onDecrement && !reverse) {\n onDecrement();\n } else if (onIncrement && reverse) {\n onIncrement();\n }\n }\n\n break;\n\n case 'Right':\n case 'ArrowRight':\n if (orientation === 'horizontal') {\n e.preventDefault();\n\n if (onIncrement && !reverse) {\n onIncrement();\n } else if (onDecrement && reverse) {\n onDecrement();\n }\n }\n\n break;\n\n case 'Down':\n case 'ArrowDown':\n if (orientation === 'vertical') {\n e.preventDefault();\n\n if (onIncrement && !reverse) {\n onIncrement();\n } else if (onDecrement && reverse) {\n onDecrement();\n }\n }\n\n break;\n\n case 'Home':\n e.preventDefault();\n\n if (onDecrementToMin) {\n onDecrementToMin();\n }\n\n break;\n\n case 'End':\n e.preventDefault();\n\n if (onIncrementToMax) {\n onIncrementToMax();\n }\n\n break;\n\n case 'Enter':\n e.preventDefault();\n\n if (onCollapseToggle) {\n onCollapseToggle();\n }\n\n break;\n }\n };\n\n return {\n onMouseDown: onMouseDown,\n onMouseEnter: onMouseEnter,\n onMouseOut: onMouseOut,\n onKeyDown: onKeyDown\n };\n}\nexport function useGlobalListeners() {\n var globalListeners = useRef(new Map());\n var addGlobalListener = useCallback(function (eventTarget, type, listener, options) {\n globalListeners.current.set(listener, {\n type: type,\n eventTarget: eventTarget,\n options: options\n });\n eventTarget.addEventListener(type, listener, options);\n }, []);\n var removeGlobalListener = useCallback(function (eventTarget, type, listener, options) {\n eventTarget.removeEventListener(type, listener, options);\n globalListeners.current.delete(listener);\n }, []);\n useEffect(function () {\n return function () {\n globalListeners.current.forEach(function (value, key) {\n removeGlobalListener(value.eventTarget, value.type, key, value.options);\n });\n };\n }, [removeGlobalListener]);\n return {\n addGlobalListener: addGlobalListener,\n removeGlobalListener: removeGlobalListener\n };\n}\nexport function useLabels(props, defaultLabel) {\n var id = props.id,\n label = props['aria-label'],\n labelledBy = props['aria-labelledby'];\n id = useId(id);\n\n if (labelledBy && label) {\n var ids = new Set([].concat(_toConsumableArray(labelledBy.trim().split(/\\s+/)), [id]));\n labelledBy = _toConsumableArray(ids).join(' ');\n } else if (labelledBy) {\n labelledBy = labelledBy.trim().split(/\\s+/).join(' ');\n }\n\n if (!label && !labelledBy && defaultLabel) {\n label = defaultLabel;\n }\n\n return {\n id: id,\n 'aria-label': label,\n 'aria-labelledby': labelledBy\n };\n}\nexport function useUpdateEffect(effect, dependencies) {\n var isInitialMount = useRef(true);\n useEffect(function () {\n if (isInitialMount.current) {\n isInitialMount.current = false;\n } else {\n effect();\n }\n }, dependencies);\n}\n\nfunction $d642970c01dc21e3fe2261c17768$var$hasResizeObserver() {\n return typeof window.ResizeObserver !== 'undefined';\n}\n\nexport function useResizeObserver(options) {\n var ref = options.ref,\n onResize = options.onResize;\n useEffect(function () {\n var element = ref == null ? void 0 : ref.current;\n\n if (!element) {\n return;\n }\n\n if (!$d642970c01dc21e3fe2261c17768$var$hasResizeObserver()) {\n window.addEventListener('resize', onResize, false);\n return function () {\n window.removeEventListener('resize', onResize, false);\n };\n } else {\n var resizeObserverInstance = new window.ResizeObserver(function (entries) {\n if (!entries.length) {\n return;\n }\n\n onResize();\n });\n resizeObserverInstance.observe(element);\n return function () {\n if (element) {\n resizeObserverInstance.unobserve(element);\n }\n };\n }\n }, [onResize, ref]);\n}\nexport function getScrollParent(node) {\n while (node && !$a164c39662575b65a0b01a73e313e5$var$isScrollable(node)) {\n node = node.parentElement;\n }\n\n return node || document.scrollingElement || document.documentElement;\n}\n\nfunction $a164c39662575b65a0b01a73e313e5$var$isScrollable(node) {\n var style = window.getComputedStyle(node);\n return /(auto|scroll)/.test(style.overflow + style.overflowX + style.overflowY);\n}\n\nvar $d662329747d896105af008c761523$var$visualViewport = typeof window !== 'undefined' && window.visualViewport;\nexport function useViewportSize() {\n var _useState5 = useState(function () {\n return $d662329747d896105af008c761523$var$getViewportSize();\n }),\n _useState6 = _slicedToArray(_useState5, 2),\n size = _useState6[0],\n setSize = _useState6[1];\n\n useEffect(function () {\n var onResize = function onResize() {\n setSize($d662329747d896105af008c761523$var$getViewportSize());\n };\n\n if (!$d662329747d896105af008c761523$var$visualViewport) {\n window.addEventListener('resize', onResize);\n } else {\n $d662329747d896105af008c761523$var$visualViewport.addEventListener('resize', onResize);\n }\n\n return function () {\n if (!$d662329747d896105af008c761523$var$visualViewport) {\n window.removeEventListener('resize', onResize);\n } else {\n $d662329747d896105af008c761523$var$visualViewport.removeEventListener('resize', onResize);\n }\n };\n }, []);\n return size;\n}\n\nfunction $d662329747d896105af008c761523$var$getViewportSize() {\n return {\n width: ($d662329747d896105af008c761523$var$visualViewport == null ? void 0 : $d662329747d896105af008c761523$var$visualViewport.width) || window.innerWidth,\n height: ($d662329747d896105af008c761523$var$visualViewport == null ? void 0 : $d662329747d896105af008c761523$var$visualViewport.height) || window.innerHeight\n };\n}","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = gradient;\n\nvar _isPrefixedValue = require('css-in-js-utils/lib/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nvar prefixes = ['-webkit-', '-moz-', ''];\nvar values = /linear-gradient|radial-gradient|repeating-linear-gradient|repeating-radial-gradient/gi;\n\nfunction gradient(property, value) {\n if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && values.test(value)) {\n return prefixes.map(function (prefix) {\n return value.replace(values, function (grad) {\n return prefix + grad;\n });\n });\n }\n}","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","var isWebColor = function isWebColor(color) {\n return color === 'currentcolor' || color === 'currentColor' || color === 'inherit' || color.indexOf('var(') === 0;\n};\n\nexport default isWebColor;","import normalizeColor from 'normalize-css-color';\n\nvar processColor = function processColor(color) {\n if (color === undefined || color === null) {\n return color;\n }\n\n var int32Color = normalizeColor(color);\n\n if (int32Color === undefined || int32Color === null) {\n return undefined;\n }\n\n int32Color = (int32Color << 24 | int32Color >>> 8) >>> 0;\n return int32Color;\n};\n\nexport default processColor;","import isWebColor from \"../isWebColor\";\nimport processColor from \"../../exports/processColor\";\n\nvar normalizeColor = function normalizeColor(color, opacity) {\n if (opacity === void 0) {\n opacity = 1;\n }\n\n if (color == null) return;\n\n if (typeof color === 'string' && isWebColor(color)) {\n return color;\n }\n\n var colorInt = processColor(color);\n\n if (colorInt != null) {\n var r = colorInt >> 16 & 255;\n var g = colorInt >> 8 & 255;\n var b = colorInt & 255;\n var a = (colorInt >> 24 & 255) / 255;\n var alpha = (a * opacity).toFixed(2);\n return \"rgba(\" + r + \",\" + g + \",\" + b + \",\" + alpha + \")\";\n }\n};\n\nexport default normalizeColor;","import unitlessNumbers from \"../../modules/unitlessNumbers\";\nimport normalizeColor from \"../../modules/normalizeColor\";\nvar colorProps = {\n backgroundColor: true,\n borderColor: true,\n borderTopColor: true,\n borderRightColor: true,\n borderBottomColor: true,\n borderLeftColor: true,\n color: true,\n shadowColor: true,\n textDecorationColor: true,\n textShadowColor: true\n};\nexport default function normalizeValueWithProperty(value, property) {\n var returnValue = value;\n\n if ((property == null || !unitlessNumbers[property]) && typeof value === 'number') {\n returnValue = value + \"px\";\n } else if (property != null && colorProps[property]) {\n returnValue = normalizeColor(value);\n }\n\n return returnValue;\n}","import normalizeColor from \"../../modules/normalizeColor\";\nimport normalizeValueWithProperty from \"./normalizeValueWithProperty\";\nvar defaultOffset = {\n height: 0,\n width: 0\n};\n\nvar resolveShadowValue = function resolveShadowValue(style) {\n var shadowColor = style.shadowColor,\n shadowOffset = style.shadowOffset,\n shadowOpacity = style.shadowOpacity,\n shadowRadius = style.shadowRadius;\n\n var _ref = shadowOffset || defaultOffset,\n height = _ref.height,\n width = _ref.width;\n\n var offsetX = normalizeValueWithProperty(width);\n var offsetY = normalizeValueWithProperty(height);\n var blurRadius = normalizeValueWithProperty(shadowRadius || 0);\n var color = normalizeColor(shadowColor || 'black', shadowOpacity);\n\n if (color != null && offsetX != null && offsetY != null && blurRadius != null) {\n return offsetX + \" \" + offsetY + \" \" + blurRadius + \" \" + color;\n }\n};\n\nexport default resolveShadowValue;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nimport normalizeValueWithProperty from \"./normalizeValueWithProperty\";\nimport resolveShadowValue from \"./resolveShadowValue\";\nvar defaultOffset = {\n height: 0,\n width: 0\n};\n\nfunction boxShadowReducer(resolvedStyle, style) {\n var boxShadow = style.boxShadow;\n var shadow = resolveShadowValue(style);\n\n if (shadow != null) {\n resolvedStyle.boxShadow = boxShadow ? boxShadow + \", \" + shadow : shadow;\n }\n}\n\nfunction textShadowReducer(resolvedStyle, style) {\n var textShadowColor = style.textShadowColor,\n textShadowOffset = style.textShadowOffset,\n textShadowRadius = style.textShadowRadius;\n\n var _ref = textShadowOffset || defaultOffset,\n height = _ref.height,\n width = _ref.width;\n\n var radius = textShadowRadius || 0;\n var offsetX = normalizeValueWithProperty(width);\n var offsetY = normalizeValueWithProperty(height);\n var blurRadius = normalizeValueWithProperty(radius);\n var color = normalizeValueWithProperty(textShadowColor, 'textShadowColor');\n\n if (color && (height !== 0 || width !== 0 || radius !== 0) && offsetX != null && offsetY != null && blurRadius != null) {\n resolvedStyle.textShadow = offsetX + \" \" + offsetY + \" \" + blurRadius + \" \" + color;\n }\n}\n\nvar createCompileableStyle = function createCompileableStyle(styles) {\n var shadowColor = styles.shadowColor,\n shadowOffset = styles.shadowOffset,\n shadowOpacity = styles.shadowOpacity,\n shadowRadius = styles.shadowRadius,\n textShadowColor = styles.textShadowColor,\n textShadowOffset = styles.textShadowOffset,\n textShadowRadius = styles.textShadowRadius,\n nextStyles = _objectWithoutPropertiesLoose(styles, [\"shadowColor\", \"shadowOffset\", \"shadowOpacity\", \"shadowRadius\", \"textShadowColor\", \"textShadowOffset\", \"textShadowRadius\"]);\n\n if (shadowColor != null || shadowOffset != null || shadowOpacity != null || shadowRadius != null) {\n boxShadowReducer(nextStyles, styles);\n }\n\n if (textShadowColor != null || textShadowOffset != null || textShadowRadius != null) {\n textShadowReducer(nextStyles, styles);\n }\n\n return nextStyles;\n};\n\nexport default createCompileableStyle;","var slice = Array.prototype.slice;\nexport default function createOrderedCSSStyleSheet(sheet) {\n var groups = {};\n var selectors = {};\n\n if (sheet != null) {\n var group;\n slice.call(sheet.cssRules).forEach(function (cssRule, i) {\n var cssText = cssRule.cssText;\n\n if (cssText.indexOf('stylesheet-group') > -1) {\n group = decodeGroupRule(cssRule);\n groups[group] = {\n start: i,\n rules: [cssText]\n };\n } else {\n var selectorText = getSelectorText(cssText);\n\n if (selectorText != null) {\n selectors[selectorText] = true;\n groups[group].rules.push(cssText);\n }\n }\n });\n }\n\n function sheetInsert(sheet, group, text) {\n var orderedGroups = getOrderedGroups(groups);\n var groupIndex = orderedGroups.indexOf(group);\n var nextGroupIndex = groupIndex + 1;\n var nextGroup = orderedGroups[nextGroupIndex];\n var position = nextGroup != null && groups[nextGroup].start != null ? groups[nextGroup].start : sheet.cssRules.length;\n var isInserted = insertRuleAt(sheet, text, position);\n\n if (isInserted) {\n if (groups[group].start == null) {\n groups[group].start = position;\n }\n\n for (var i = nextGroupIndex; i < orderedGroups.length; i += 1) {\n var groupNumber = orderedGroups[i];\n var previousStart = groups[groupNumber].start;\n groups[groupNumber].start = previousStart + 1;\n }\n }\n\n return isInserted;\n }\n\n var OrderedCSSStyleSheet = {\n getTextContent: function getTextContent() {\n return getOrderedGroups(groups).map(function (group) {\n var rules = groups[group].rules;\n return rules.join('\\n');\n }).join('\\n');\n },\n insert: function insert(cssText, groupValue) {\n var group = Number(groupValue);\n\n if (groups[group] == null) {\n var markerRule = encodeGroupRule(group);\n groups[group] = {\n start: null,\n rules: [markerRule]\n };\n\n if (sheet != null) {\n sheetInsert(sheet, group, markerRule);\n }\n }\n\n var selectorText = getSelectorText(cssText);\n\n if (selectorText != null && selectors[selectorText] == null) {\n selectors[selectorText] = true;\n groups[group].rules.push(cssText);\n\n if (sheet != null) {\n var isInserted = sheetInsert(sheet, group, cssText);\n\n if (!isInserted) {\n groups[group].rules.pop();\n }\n }\n }\n }\n };\n return OrderedCSSStyleSheet;\n}\n\nfunction encodeGroupRule(group) {\n return \"[stylesheet-group=\\\"\" + group + \"\\\"]{}\";\n}\n\nfunction decodeGroupRule(cssRule) {\n return Number(cssRule.selectorText.split(/[\"']/)[1]);\n}\n\nfunction getOrderedGroups(obj) {\n return Object.keys(obj).map(Number).sort(function (a, b) {\n return a > b ? 1 : -1;\n });\n}\n\nvar pattern = /\\s*([,])\\s*/g;\n\nfunction getSelectorText(cssText) {\n var selector = cssText.split('{')[0].trim();\n return selector !== '' ? selector.replace(pattern, '$1') : null;\n}\n\nfunction insertRuleAt(root, cssText, position) {\n try {\n root.insertRule(cssText, position);\n return true;\n } catch (e) {\n return false;\n }\n}","function flattenArray(array) {\n function flattenDown(array, result) {\n for (var i = 0; i < array.length; i++) {\n var value = array[i];\n\n if (Array.isArray(value)) {\n flattenDown(value, result);\n } else if (value != null && value !== false) {\n result.push(value);\n }\n }\n\n return result;\n }\n\n return flattenDown(array, []);\n}\n\nexport default flattenArray;","import ExecutionEnvironment from 'fbjs/lib/ExecutionEnvironment';\nvar doLeftAndRightSwapInRTL = true;\nvar isPreferredLanguageRTL = false;\nvar isRTLAllowed = true;\nvar isRTLForced = false;\n\nvar isRTL = function isRTL() {\n if (isRTLForced) {\n return true;\n }\n\n return isRTLAllowed && isPreferredLanguageRTL;\n};\n\nvar onDirectionChange = function onDirectionChange() {\n if (ExecutionEnvironment.canUseDOM) {\n if (document.documentElement && document.documentElement.setAttribute) {\n document.documentElement.setAttribute('dir', isRTL() ? 'rtl' : 'ltr');\n }\n }\n};\n\nvar I18nManager = {\n allowRTL: function allowRTL(bool) {\n isRTLAllowed = bool;\n onDirectionChange();\n },\n forceRTL: function forceRTL(bool) {\n isRTLForced = bool;\n onDirectionChange();\n },\n setPreferredLanguageRTL: function setPreferredLanguageRTL(bool) {\n isPreferredLanguageRTL = bool;\n onDirectionChange();\n },\n swapLeftAndRightInRTL: function swapLeftAndRightInRTL(bool) {\n doLeftAndRightSwapInRTL = bool;\n },\n\n get doLeftAndRightSwapInRTL() {\n return doLeftAndRightSwapInRTL;\n },\n\n get isRTL() {\n return isRTL();\n }\n\n};\nexport default I18nManager;","var CSS_UNIT_RE = /^[+-]?\\d*(?:\\.\\d+)?(?:[Ee][+-]?\\d+)?(%|\\w*)/;\n\nvar getUnit = function getUnit(str) {\n return str.match(CSS_UNIT_RE)[1];\n};\n\nvar isNumeric = function isNumeric(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n};\n\nvar multiplyStyleLengthValue = function multiplyStyleLengthValue(value, multiple) {\n if (typeof value === 'string') {\n var number = parseFloat(value) * multiple;\n var unit = getUnit(value);\n return \"\" + number + unit;\n } else if (isNumeric(value)) {\n return value * multiple;\n }\n};\n\nexport default multiplyStyleLengthValue;","import I18nManager from \"../I18nManager\";\nimport multiplyStyleLengthValue from \"../../modules/multiplyStyleLengthValue\";\nvar emptyObject = {};\nvar borderTopLeftRadius = 'borderTopLeftRadius';\nvar borderTopRightRadius = 'borderTopRightRadius';\nvar borderBottomLeftRadius = 'borderBottomLeftRadius';\nvar borderBottomRightRadius = 'borderBottomRightRadius';\nvar borderLeftColor = 'borderLeftColor';\nvar borderLeftStyle = 'borderLeftStyle';\nvar borderLeftWidth = 'borderLeftWidth';\nvar borderRightColor = 'borderRightColor';\nvar borderRightStyle = 'borderRightStyle';\nvar borderRightWidth = 'borderRightWidth';\nvar right = 'right';\nvar marginLeft = 'marginLeft';\nvar marginRight = 'marginRight';\nvar paddingLeft = 'paddingLeft';\nvar paddingRight = 'paddingRight';\nvar left = 'left';\nvar PROPERTIES_FLIP = {\n borderTopLeftRadius: borderTopRightRadius,\n borderTopRightRadius: borderTopLeftRadius,\n borderBottomLeftRadius: borderBottomRightRadius,\n borderBottomRightRadius: borderBottomLeftRadius,\n borderLeftColor: borderRightColor,\n borderLeftStyle: borderRightStyle,\n borderLeftWidth: borderRightWidth,\n borderRightColor: borderLeftColor,\n borderRightStyle: borderLeftStyle,\n borderRightWidth: borderLeftWidth,\n left: right,\n marginLeft: marginRight,\n marginRight: marginLeft,\n paddingLeft: paddingRight,\n paddingRight: paddingLeft,\n right: left\n};\nvar PROPERTIES_I18N = {\n borderTopStartRadius: borderTopLeftRadius,\n borderTopEndRadius: borderTopRightRadius,\n borderBottomStartRadius: borderBottomLeftRadius,\n borderBottomEndRadius: borderBottomRightRadius,\n borderStartColor: borderLeftColor,\n borderStartStyle: borderLeftStyle,\n borderStartWidth: borderLeftWidth,\n borderEndColor: borderRightColor,\n borderEndStyle: borderRightStyle,\n borderEndWidth: borderRightWidth,\n end: right,\n marginStart: marginLeft,\n marginEnd: marginRight,\n paddingStart: paddingLeft,\n paddingEnd: paddingRight,\n start: left\n};\nvar PROPERTIES_VALUE = {\n clear: true,\n float: true,\n textAlign: true\n};\n\nvar additiveInverse = function additiveInverse(value) {\n return multiplyStyleLengthValue(value, -1);\n};\n\nvar i18nStyle = function i18nStyle(originalStyle) {\n var doLeftAndRightSwapInRTL = I18nManager.doLeftAndRightSwapInRTL,\n isRTL = I18nManager.isRTL;\n var style = originalStyle || emptyObject;\n var frozenProps = {};\n var nextStyle = {};\n\n for (var originalProp in style) {\n if (!Object.prototype.hasOwnProperty.call(style, originalProp)) {\n continue;\n }\n\n var originalValue = style[originalProp];\n var prop = originalProp;\n var value = originalValue;\n\n if (PROPERTIES_I18N.hasOwnProperty(originalProp)) {\n var convertedProp = PROPERTIES_I18N[originalProp];\n prop = isRTL ? PROPERTIES_FLIP[convertedProp] : convertedProp;\n } else if (isRTL && doLeftAndRightSwapInRTL && PROPERTIES_FLIP[originalProp]) {\n prop = PROPERTIES_FLIP[originalProp];\n }\n\n if (PROPERTIES_VALUE.hasOwnProperty(originalProp)) {\n if (originalValue === 'start') {\n value = isRTL ? 'right' : 'left';\n } else if (originalValue === 'end') {\n value = isRTL ? 'left' : 'right';\n } else if (isRTL && doLeftAndRightSwapInRTL) {\n if (originalValue === 'left') {\n value = 'right';\n } else if (originalValue === 'right') {\n value = 'left';\n }\n }\n }\n\n if (prop === 'transitionProperty') {\n if (PROPERTIES_I18N.hasOwnProperty(value)) {\n var convertedValue = PROPERTIES_I18N[originalValue];\n value = isRTL ? PROPERTIES_FLIP[convertedValue] : convertedValue;\n } else if (isRTL && doLeftAndRightSwapInRTL && PROPERTIES_FLIP[originalValue]) {\n value = PROPERTIES_FLIP[originalValue];\n }\n }\n\n if (isRTL && prop === 'textShadowOffset') {\n nextStyle[prop] = value;\n nextStyle[prop].width = additiveInverse(value.width);\n } else if (!frozenProps[prop]) {\n nextStyle[prop] = value;\n }\n\n if (PROPERTIES_I18N[originalProp]) {\n frozenProps[prop] = true;\n }\n }\n\n return nextStyle;\n};\n\nexport default i18nStyle;","import { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport { MONOSPACE_FONT_STACK, SYSTEM_FONT_STACK, STYLE_SHORT_FORM_EXPANSIONS } from \"./constants\";\nimport normalizeValueWithProperty from \"./normalizeValueWithProperty\";\nvar emptyObject = {};\nvar supportsCSS3TextDecoration = !canUseDOM || window.CSS != null && window.CSS.supports != null && (window.CSS.supports('text-decoration-line', 'none') || window.CSS.supports('-webkit-text-decoration-line', 'none'));\n\nvar mapTransform = function mapTransform(transform) {\n var type = Object.keys(transform)[0];\n var value = normalizeValueWithProperty(transform[type], type);\n return type + \"(\" + value + \")\";\n};\n\nvar convertTransformMatrix = function convertTransformMatrix(transformMatrix) {\n var matrix = transformMatrix.join(',');\n return \"matrix3d(\" + matrix + \")\";\n};\n\nvar resolveTransform = function resolveTransform(resolvedStyle, style) {\n var transform = style.transform;\n\n if (Array.isArray(style.transform)) {\n transform = style.transform.map(mapTransform).join(' ');\n } else if (style.transformMatrix) {\n transform = convertTransformMatrix(style.transformMatrix);\n }\n\n resolvedStyle.transform = transform;\n};\n\nvar createReactDOMStyle = function createReactDOMStyle(style) {\n if (!style) {\n return emptyObject;\n }\n\n var resolvedStyle = {};\n Object.keys(style).sort().forEach(function (prop) {\n var value = normalizeValueWithProperty(style[prop], prop);\n\n if (value == null) {\n return;\n }\n\n switch (prop) {\n case 'aspectRatio':\n case 'elevation':\n case 'overlayColor':\n case 'resizeMode':\n case 'tintColor':\n {\n break;\n }\n\n case 'backgroundClip':\n {\n if (value === 'text') {\n resolvedStyle.backgroundClip = value;\n resolvedStyle.WebkitBackgroundClip = value;\n }\n\n break;\n }\n\n case 'flex':\n {\n if (value > 0) {\n resolvedStyle.flexGrow = value;\n resolvedStyle.flexShrink = 1;\n resolvedStyle.flexBasis = '0%';\n } else if (value === 0) {\n resolvedStyle.flexGrow = 0;\n resolvedStyle.flexShrink = 0;\n resolvedStyle.flexBasis = '0%';\n } else if (value === -1) {\n resolvedStyle.flexGrow = 0;\n resolvedStyle.flexShrink = 1;\n resolvedStyle.flexBasis = 'auto';\n }\n\n break;\n }\n\n case 'font':\n {\n resolvedStyle[prop] = value.replace('System', SYSTEM_FONT_STACK);\n break;\n }\n\n case 'fontFamily':\n {\n if (value.indexOf('System') > -1) {\n var stack = value.split(/,\\s*/);\n stack[stack.indexOf('System')] = SYSTEM_FONT_STACK;\n resolvedStyle[prop] = stack.join(',');\n } else if (value === 'monospace') {\n resolvedStyle[prop] = MONOSPACE_FONT_STACK;\n } else {\n resolvedStyle[prop] = value;\n }\n\n break;\n }\n\n case 'fontVariant':\n {\n if (Array.isArray(value) && value.length > 0) {\n resolvedStyle.fontVariant = value.join(' ');\n }\n\n break;\n }\n\n case 'textAlignVertical':\n {\n resolvedStyle.verticalAlign = value === 'center' ? 'middle' : value;\n break;\n }\n\n case 'textDecorationLine':\n {\n if (!supportsCSS3TextDecoration) {\n resolvedStyle.textDecoration = value;\n } else {\n resolvedStyle.textDecorationLine = value;\n }\n\n break;\n }\n\n case 'transform':\n case 'transformMatrix':\n {\n resolveTransform(resolvedStyle, style);\n break;\n }\n\n case 'writingDirection':\n {\n resolvedStyle.direction = value;\n break;\n }\n\n default:\n {\n var longFormProperties = STYLE_SHORT_FORM_EXPANSIONS[prop];\n\n if (longFormProperties) {\n longFormProperties.forEach(function (longForm, i) {\n if (typeof style[longForm] === 'undefined') {\n resolvedStyle[longForm] = value;\n }\n });\n } else {\n resolvedStyle[prop] = Array.isArray(value) ? value.join(',') : value;\n }\n }\n }\n });\n return resolvedStyle;\n};\n\nexport default createReactDOMStyle;","function murmurhash2_32_gc(str, seed) {\n var l = str.length,\n h = seed ^ l,\n i = 0,\n k;\n\n while (l >= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n k ^= k >>> 24;\n k = (k & 0xffff) * 0x5bd1e995 + (((k >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16) ^ k;\n l -= 4;\n ++i;\n }\n\n switch (l) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n }\n\n h ^= h >>> 13;\n h = (h & 0xffff) * 0x5bd1e995 + (((h >>> 16) * 0x5bd1e995 & 0xffff) << 16);\n h ^= h >>> 15;\n return h >>> 0;\n}\n\nvar hash = function hash(str) {\n return murmurhash2_32_gc(str, 1).toString(36);\n};\n\nexport default hash;","import backgroundClip from 'inline-style-prefixer/lib/plugins/backgroundClip';\nimport crossFade from 'inline-style-prefixer/lib/plugins/crossFade';\nimport cursor from 'inline-style-prefixer/lib/plugins/cursor';\nimport filter from 'inline-style-prefixer/lib/plugins/filter';\nimport flex from 'inline-style-prefixer/lib/plugins/flex';\nimport flexboxIE from 'inline-style-prefixer/lib/plugins/flexboxIE';\nimport flexboxOld from 'inline-style-prefixer/lib/plugins/flexboxOld';\nimport gradient from 'inline-style-prefixer/lib/plugins/gradient';\nimport imageSet from 'inline-style-prefixer/lib/plugins/imageSet';\nimport position from 'inline-style-prefixer/lib/plugins/position';\nimport sizing from 'inline-style-prefixer/lib/plugins/sizing';\nimport transition from 'inline-style-prefixer/lib/plugins/transition';\nvar w = ['Webkit'];\nvar m = ['Moz'];\nvar ms = ['ms'];\nvar wm = ['Webkit', 'Moz'];\nvar wms = ['Webkit', 'ms'];\nvar wmms = ['Webkit', 'Moz', 'ms'];\nexport default {\n plugins: [backgroundClip, crossFade, cursor, filter, flex, flexboxIE, flexboxOld, gradient, imageSet, position, sizing, transition],\n prefixMap: {\n animation: w,\n animationDelay: w,\n animationDirection: w,\n animationFillMode: w,\n animationDuration: w,\n animationIterationCount: w,\n animationName: w,\n animationPlayState: w,\n animationTimingFunction: w,\n appearance: wm,\n userSelect: wmms,\n textEmphasisPosition: w,\n textEmphasis: w,\n textEmphasisStyle: w,\n textEmphasisColor: w,\n boxDecorationBreak: w,\n clipPath: w,\n maskImage: w,\n maskMode: w,\n maskRepeat: w,\n maskPosition: w,\n maskClip: w,\n maskOrigin: w,\n maskSize: w,\n maskComposite: w,\n mask: w,\n maskBorderSource: w,\n maskBorderMode: w,\n maskBorderSlice: w,\n maskBorderWidth: w,\n maskBorderOutset: w,\n maskBorderRepeat: w,\n maskBorder: w,\n maskType: w,\n textDecorationStyle: w,\n textDecorationSkip: w,\n textDecorationLine: w,\n textDecorationColor: w,\n filter: w,\n fontFeatureSettings: w,\n breakAfter: wmms,\n breakBefore: wmms,\n breakInside: wmms,\n columnCount: wm,\n columnFill: wm,\n columnGap: wm,\n columnRule: wm,\n columnRuleColor: wm,\n columnRuleStyle: wm,\n columnRuleWidth: wm,\n columns: wm,\n columnSpan: wm,\n columnWidth: wm,\n writingMode: wms,\n flex: wms,\n flexBasis: w,\n flexDirection: wms,\n flexGrow: w,\n flexFlow: wms,\n flexShrink: w,\n flexWrap: wms,\n alignContent: w,\n alignItems: w,\n alignSelf: w,\n justifyContent: w,\n order: w,\n transform: w,\n transformOrigin: w,\n transformOriginX: w,\n transformOriginY: w,\n backfaceVisibility: w,\n perspective: w,\n perspectiveOrigin: w,\n transformStyle: w,\n transformOriginZ: w,\n backdropFilter: w,\n fontKerning: w,\n scrollSnapType: wms,\n scrollSnapPointsX: wms,\n scrollSnapPointsY: wms,\n scrollSnapDestination: wms,\n scrollSnapCoordinate: wms,\n shapeImageThreshold: w,\n shapeImageMargin: w,\n shapeImageOutside: w,\n hyphens: wmms,\n flowInto: wms,\n flowFrom: wms,\n regionFragment: wms,\n textOrientation: w,\n textAlignLast: m,\n tabSize: m,\n wrapFlow: ms,\n wrapThrough: ms,\n wrapMargin: ms,\n touchAction: ms,\n gridTemplateColumns: ms,\n gridTemplateRows: ms,\n gridTemplateAreas: ms,\n gridTemplate: ms,\n gridAutoColumns: ms,\n gridAutoRows: ms,\n gridAutoFlow: ms,\n grid: ms,\n gridRowStart: ms,\n gridColumnStart: ms,\n gridRowEnd: ms,\n gridRow: ms,\n gridColumn: ms,\n gridColumnEnd: ms,\n gridColumnGap: ms,\n gridRowGap: ms,\n gridArea: ms,\n gridGap: ms,\n textSizeAdjust: ['ms', 'Webkit'],\n borderImage: w,\n borderImageOutset: w,\n borderImageRepeat: w,\n borderImageSlice: w,\n borderImageSource: w,\n borderImageWidth: w,\n transitionDelay: w,\n transitionDuration: w,\n transitionProperty: w,\n transitionTimingFunction: w\n }\n};","import createPrefixer from 'inline-style-prefixer/lib/createPrefixer';\nimport staticData from \"./static\";\nvar prefixAll = createPrefixer(staticData);\nexport default prefixAll;\nexport var prefixInlineStyles = function prefixInlineStyles(style) {\n var prefixedStyles = prefixAll(style);\n Object.keys(prefixedStyles).forEach(function (prop) {\n var value = prefixedStyles[prop];\n\n if (Array.isArray(value)) {\n prefixedStyles[prop] = value[value.length - 1];\n }\n });\n return prefixedStyles;\n};","import \"core-js/modules/es.array.reduce.js\";\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nimport createReactDOMStyle from \"./createReactDOMStyle\";\nimport hash from \"../../vendor/hash\";\nimport hyphenateStyleName from 'hyphenate-style-name';\nimport normalizeValueWithProperty from \"./normalizeValueWithProperty\";\nimport prefixStyles, { prefixInlineStyles } from \"../../modules/prefixStyles\";\nvar cache = {\n get: function get(property, value) {\n if (cache[property] != null && cache[property].hasOwnProperty(value) && cache[property][value] != null) {\n return cache[property][value];\n }\n },\n set: function set(property, value, object) {\n if (cache[property] == null) {\n cache[property] = {};\n }\n\n return cache[property][value] = object;\n }\n};\nexport function atomic(style) {\n return Object.keys(style).sort().reduce(function (acc, property) {\n var value = style[property];\n\n if (value != null) {\n var valueString = stringifyValueWithProperty(value, property);\n var cachedResult = cache.get(property, valueString);\n\n if (cachedResult != null) {\n var identifier = cachedResult.identifier;\n acc[identifier] = cachedResult;\n } else {\n var _identifier = createIdentifier('r', property, value);\n\n var rules = createAtomicRules(_identifier, property, value);\n\n var _cachedResult = cache.set(property, valueString, {\n property: property,\n value: stringifyValueWithProperty(value, property),\n identifier: _identifier,\n rules: rules\n });\n\n acc[_identifier] = _cachedResult;\n }\n }\n\n return acc;\n }, {});\n}\nexport function classic(style, name) {\n var _ref;\n\n var identifier = createIdentifier('css', name, style);\n\n var animationKeyframes = style.animationKeyframes,\n rest = _objectWithoutPropertiesLoose(style, [\"animationKeyframes\"]);\n\n var rules = [];\n var selector = \".\" + identifier;\n var animationName;\n\n if (animationKeyframes != null) {\n var _processKeyframesValu = processKeyframesValue(animationKeyframes),\n animationNames = _processKeyframesValu.animationNames,\n keyframesRules = _processKeyframesValu.rules;\n\n animationName = animationNames.join(',');\n rules.push.apply(rules, keyframesRules);\n }\n\n var block = createDeclarationBlock(_objectSpread({}, rest, {\n animationName: animationName\n }));\n rules.push(\"\" + selector + block);\n return _ref = {}, _ref[identifier] = {\n identifier: identifier,\n rules: rules\n }, _ref;\n}\nexport function inline(style) {\n return prefixInlineStyles(createReactDOMStyle(style));\n}\nexport function stringifyValueWithProperty(value, property) {\n var normalizedValue = normalizeValueWithProperty(value, property);\n return typeof normalizedValue !== 'string' ? JSON.stringify(normalizedValue || '') : normalizedValue;\n}\n\nfunction createAtomicRules(identifier, property, value) {\n var rules = [];\n var selector = \".\" + identifier;\n\n switch (property) {\n case 'animationKeyframes':\n {\n var _processKeyframesValu2 = processKeyframesValue(value),\n animationNames = _processKeyframesValu2.animationNames,\n keyframesRules = _processKeyframesValu2.rules;\n\n var block = createDeclarationBlock({\n animationName: animationNames.join(',')\n });\n rules.push.apply(rules, [\"\" + selector + block].concat(keyframesRules));\n break;\n }\n\n case 'placeholderTextColor':\n {\n var _block = createDeclarationBlock({\n color: value,\n opacity: 1\n });\n\n rules.push(selector + \"::-webkit-input-placeholder\" + _block, selector + \"::-moz-placeholder\" + _block, selector + \":-ms-input-placeholder\" + _block, selector + \"::placeholder\" + _block);\n break;\n }\n\n case 'scrollbarWidth':\n {\n if (value === 'none') {\n rules.push(selector + \"::-webkit-scrollbar{display:none}\", selector + \"{overflow:-moz-scrollbars-none;-ms-overflow-style:none;scrollbar-width:none;}\");\n }\n\n break;\n }\n\n case 'pointerEvents':\n {\n var _createDeclarationBlo3;\n\n var finalValue = value;\n\n if (value === 'auto' || value === 'box-only') {\n finalValue = 'auto!important';\n\n if (value === 'box-only') {\n var _createDeclarationBlo;\n\n var _block3 = createDeclarationBlock((_createDeclarationBlo = {}, _createDeclarationBlo[property] = 'none', _createDeclarationBlo));\n\n rules.push(selector + \">*\" + _block3);\n }\n } else if (value === 'none' || value === 'box-none') {\n finalValue = 'none!important';\n\n if (value === 'box-none') {\n var _createDeclarationBlo2;\n\n var _block4 = createDeclarationBlock((_createDeclarationBlo2 = {}, _createDeclarationBlo2[property] = 'auto', _createDeclarationBlo2));\n\n rules.push(selector + \">*\" + _block4);\n }\n }\n\n var _block2 = createDeclarationBlock((_createDeclarationBlo3 = {}, _createDeclarationBlo3[property] = finalValue, _createDeclarationBlo3));\n\n rules.push(\"\" + selector + _block2);\n break;\n }\n\n default:\n {\n var _createDeclarationBlo4;\n\n var _block5 = createDeclarationBlock((_createDeclarationBlo4 = {}, _createDeclarationBlo4[property] = value, _createDeclarationBlo4));\n\n rules.push(\"\" + selector + _block5);\n break;\n }\n }\n\n return rules;\n}\n\nfunction createDeclarationBlock(style) {\n var domStyle = prefixStyles(createReactDOMStyle(style));\n var declarationsString = Object.keys(domStyle).map(function (property) {\n var value = domStyle[property];\n var prop = hyphenateStyleName(property);\n\n if (Array.isArray(value)) {\n return value.map(function (v) {\n return prop + \":\" + v;\n }).join(';');\n } else {\n return prop + \":\" + value;\n }\n }).sort().join(';');\n return \"{\" + declarationsString + \";}\";\n}\n\nfunction createIdentifier(prefix, name, value) {\n var hashedString = hash(name + stringifyValueWithProperty(value, name));\n return process.env.NODE_ENV !== 'production' ? prefix + \"-\" + name + \"-\" + hashedString : prefix + \"-\" + hashedString;\n}\n\nfunction createKeyframes(keyframes) {\n var prefixes = ['-webkit-', ''];\n var identifier = createIdentifier('r', 'animation', keyframes);\n var steps = '{' + Object.keys(keyframes).map(function (stepName) {\n var rule = keyframes[stepName];\n var block = createDeclarationBlock(rule);\n return \"\" + stepName + block;\n }).join('') + '}';\n var rules = prefixes.map(function (prefix) {\n return \"@\" + prefix + \"keyframes \" + identifier + steps;\n });\n return {\n identifier: identifier,\n rules: rules\n };\n}\n\nfunction processKeyframesValue(keyframesValue) {\n if (typeof keyframesValue === 'number') {\n throw new Error('Invalid CSS keyframes type');\n }\n\n var animationNames = [];\n var rules = [];\n var value = Array.isArray(keyframesValue) ? keyframesValue : [keyframesValue];\n value.forEach(function (keyframes) {\n if (typeof keyframes === 'string') {\n animationNames.push(keyframes);\n } else {\n var _createKeyframes = createKeyframes(keyframes),\n identifier = _createKeyframes.identifier,\n keyframesRules = _createKeyframes.rules;\n\n animationNames.push(identifier);\n rules.push.apply(rules, keyframesRules);\n }\n });\n return {\n animationNames: animationNames,\n rules: rules\n };\n}","var resets = ['html{-ms-text-size-adjust:100%;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0);}', 'body{margin:0;}', 'button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0;}', 'input::-webkit-inner-spin-button,input::-webkit-outer-spin-button,' + 'input::-webkit-search-cancel-button,input::-webkit-search-decoration,' + 'input::-webkit-search-results-button,input::-webkit-search-results-decoration{display:none;}'];\nexport default resets;","import { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nvar focusVisibleAttributeName = 'data-focusvisible-polyfill';\nvar rule = \":focus:not([\" + focusVisibleAttributeName + \"]){outline: none;}\";\n\nvar modality = function modality(insertRule) {\n insertRule(rule);\n\n if (!canUseDOM) {\n return;\n }\n\n var hadKeyboardEvent = true;\n var hadFocusVisibleRecently = false;\n var hadFocusVisibleRecentlyTimeout = null;\n var inputTypesWhitelist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n };\n\n function isValidFocusTarget(el) {\n if (el && el !== document && el.nodeName !== 'HTML' && el.nodeName !== 'BODY' && 'classList' in el && 'contains' in el.classList) {\n return true;\n }\n\n return false;\n }\n\n function focusTriggersKeyboardModality(el) {\n var type = el.type;\n var tagName = el.tagName;\n var isReadOnly = el.readOnly;\n\n if (tagName === 'INPUT' && inputTypesWhitelist[type] && !isReadOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !isReadOnly) {\n return true;\n }\n\n if (el.isContentEditable) {\n return true;\n }\n\n return false;\n }\n\n function addFocusVisibleAttribute(el) {\n if (el.hasAttribute(focusVisibleAttributeName)) {\n return;\n }\n\n el.setAttribute(focusVisibleAttributeName, true);\n }\n\n function removeFocusVisibleAttribute(el) {\n el.removeAttribute(focusVisibleAttributeName);\n }\n\n function removeAllFocusVisibleAttributes() {\n var list = document.querySelectorAll(\"[\" + focusVisibleAttributeName + \"]\");\n\n for (var i = 0; i < list.length; i += 1) {\n removeFocusVisibleAttribute(list[i]);\n }\n }\n\n function onKeyDown(e) {\n if (e.key !== 'Tab' && (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)) {\n return;\n }\n\n if (isValidFocusTarget(document.activeElement)) {\n addFocusVisibleAttribute(document.activeElement);\n }\n\n hadKeyboardEvent = true;\n }\n\n function onPointerDown(e) {\n if (hadKeyboardEvent === true) {\n removeAllFocusVisibleAttributes();\n }\n\n hadKeyboardEvent = false;\n }\n\n function onFocus(e) {\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (hadKeyboardEvent || focusTriggersKeyboardModality(e.target)) {\n addFocusVisibleAttribute(e.target);\n }\n }\n\n function onBlur(e) {\n if (!isValidFocusTarget(e.target)) {\n return;\n }\n\n if (e.target.hasAttribute(focusVisibleAttributeName)) {\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function () {\n hadFocusVisibleRecently = false;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n }, 100);\n removeFocusVisibleAttribute(e.target);\n }\n }\n\n function onVisibilityChange(e) {\n if (document.visibilityState === 'hidden') {\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n\n addInitialPointerMoveListeners();\n }\n }\n\n function addInitialPointerMoveListeners() {\n document.addEventListener('mousemove', onInitialPointerMove);\n document.addEventListener('mousedown', onInitialPointerMove);\n document.addEventListener('mouseup', onInitialPointerMove);\n document.addEventListener('pointermove', onInitialPointerMove);\n document.addEventListener('pointerdown', onInitialPointerMove);\n document.addEventListener('pointerup', onInitialPointerMove);\n document.addEventListener('touchmove', onInitialPointerMove);\n document.addEventListener('touchstart', onInitialPointerMove);\n document.addEventListener('touchend', onInitialPointerMove);\n }\n\n function removeInitialPointerMoveListeners() {\n document.removeEventListener('mousemove', onInitialPointerMove);\n document.removeEventListener('mousedown', onInitialPointerMove);\n document.removeEventListener('mouseup', onInitialPointerMove);\n document.removeEventListener('pointermove', onInitialPointerMove);\n document.removeEventListener('pointerdown', onInitialPointerMove);\n document.removeEventListener('pointerup', onInitialPointerMove);\n document.removeEventListener('touchmove', onInitialPointerMove);\n document.removeEventListener('touchstart', onInitialPointerMove);\n document.removeEventListener('touchend', onInitialPointerMove);\n }\n\n function onInitialPointerMove(e) {\n if (e.target.nodeName === 'HTML') {\n return;\n }\n\n hadKeyboardEvent = false;\n removeInitialPointerMoveListeners();\n }\n\n document.addEventListener('keydown', onKeyDown, true);\n document.addEventListener('mousedown', onPointerDown, true);\n document.addEventListener('pointerdown', onPointerDown, true);\n document.addEventListener('touchstart', onPointerDown, true);\n document.addEventListener('focus', onFocus, true);\n document.addEventListener('blur', onBlur, true);\n document.addEventListener('visibilitychange', onVisibilityChange, true);\n addInitialPointerMoveListeners();\n};\n\nexport default modality;","import \"core-js/modules/es.array.reduce.js\";\nimport _extends from \"@babel/runtime/helpers/extends\";\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nimport { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport createCSSStyleSheet from \"./createCSSStyleSheet\";\nimport createCompileableStyle from \"./createCompileableStyle\";\nimport createOrderedCSSStyleSheet from \"./createOrderedCSSStyleSheet\";\nimport flattenArray from \"../../modules/flattenArray\";\nimport flattenStyle from \"./flattenStyle\";\nimport I18nManager from \"../I18nManager\";\nimport i18nStyle from \"./i18nStyle\";\nimport { atomic, classic, inline, stringifyValueWithProperty } from \"./compile\";\nimport initialRules from \"./initialRules\";\nimport modality from \"./modality\";\nimport { STYLE_ELEMENT_ID, STYLE_GROUPS } from \"./constants\";\nvar emptyObject = {};\nexport default function createStyleResolver() {\n var inserted, sheet, lookup;\n var resolved = {\n css: {},\n ltr: {},\n rtl: {},\n rtlNoSwap: {}\n };\n\n var init = function init() {\n inserted = {\n css: {},\n ltr: {},\n rtl: {},\n rtlNoSwap: {}\n };\n sheet = createOrderedCSSStyleSheet(createCSSStyleSheet(STYLE_ELEMENT_ID));\n lookup = {\n byClassName: {},\n byProp: {}\n };\n modality(function (rule) {\n return sheet.insert(rule, STYLE_GROUPS.modality);\n });\n initialRules.forEach(function (rule) {\n sheet.insert(rule, STYLE_GROUPS.reset);\n });\n };\n\n init();\n\n function addToLookup(className, prop, value) {\n if (!lookup.byProp[prop]) {\n lookup.byProp[prop] = {};\n }\n\n lookup.byProp[prop][value] = className;\n lookup.byClassName[className] = {\n prop: prop,\n value: value\n };\n }\n\n function getClassName(prop, value) {\n var val = stringifyValueWithProperty(value, prop);\n var cache = lookup.byProp;\n return cache[prop] && cache[prop].hasOwnProperty(val) && cache[prop][val];\n }\n\n function _injectRegisteredStyle(id) {\n var doLeftAndRightSwapInRTL = I18nManager.doLeftAndRightSwapInRTL,\n isRTL = I18nManager.isRTL;\n var dir = isRTL ? doLeftAndRightSwapInRTL ? 'rtl' : 'rtlNoSwap' : 'ltr';\n\n if (!inserted[dir][id]) {\n var style = createCompileableStyle(i18nStyle(flattenStyle(id)));\n var results = atomic(style);\n Object.keys(results).forEach(function (key) {\n var _results$key = results[key],\n identifier = _results$key.identifier,\n property = _results$key.property,\n rules = _results$key.rules,\n value = _results$key.value;\n addToLookup(identifier, property, value);\n rules.forEach(function (rule) {\n var group = STYLE_GROUPS.custom[property] || STYLE_GROUPS.atomic;\n sheet.insert(rule, group);\n });\n });\n inserted[dir][id] = true;\n }\n }\n\n function resolve(style, classList) {\n var nextClassList = [];\n var props = {};\n\n if (!style && !classList) {\n return props;\n }\n\n if (Array.isArray(classList)) {\n flattenArray(classList).forEach(function (identifier) {\n if (identifier) {\n if (inserted.css[identifier] == null && resolved.css[identifier] != null) {\n var item = resolved.css[identifier];\n item.rules.forEach(function (rule) {\n sheet.insert(rule, item.group);\n });\n inserted.css[identifier] = true;\n }\n\n nextClassList.push(identifier);\n }\n });\n }\n\n if (typeof style === 'number') {\n _injectRegisteredStyle(style);\n\n var key = createCacheKey(style);\n props = _resolveStyle(style, key);\n } else if (!Array.isArray(style)) {\n props = _resolveStyle(style);\n } else {\n var flatArray = flattenArray(style);\n var isArrayOfNumbers = true;\n var cacheKey = '';\n\n for (var i = 0; i < flatArray.length; i++) {\n var id = flatArray[i];\n\n if (typeof id !== 'number') {\n isArrayOfNumbers = false;\n } else {\n if (isArrayOfNumbers) {\n cacheKey += id + '-';\n }\n\n _injectRegisteredStyle(id);\n }\n }\n\n var _key = isArrayOfNumbers ? createCacheKey(cacheKey) : null;\n\n props = _resolveStyle(flatArray, _key);\n }\n\n nextClassList.push.apply(nextClassList, props.classList);\n var finalProps = {\n className: classListToString(nextClassList),\n classList: nextClassList\n };\n\n if (props.style) {\n finalProps.style = props.style;\n }\n\n return finalProps;\n }\n\n function resolveWithNode(rnStyleNext, node) {\n function getDeclaration(className) {\n return lookup.byClassName[className] || emptyObject;\n }\n\n var _getDOMStyleInfo = getDOMStyleInfo(node),\n rdomClassList = _getDOMStyleInfo.classList,\n rdomStyle = _getDOMStyleInfo.style;\n\n var _rdomClassList$reduce = rdomClassList.reduce(function (styleProps, className) {\n var _getDeclaration = getDeclaration(className),\n prop = _getDeclaration.prop,\n value = _getDeclaration.value;\n\n if (prop) {\n styleProps.style[prop] = value;\n } else {\n styleProps.classList.push(className);\n }\n\n return styleProps;\n }, {\n classList: [],\n style: {}\n }),\n rnClassList = _rdomClassList$reduce.classList,\n rnStyle = _rdomClassList$reduce.style;\n\n var _resolve = resolve([i18nStyle(rnStyle), rnStyleNext]),\n rdomClassListNext = _resolve.classList,\n rdomStyleNext = _resolve.style;\n\n var className = classListToString(rdomClassListNext.concat(rnClassList));\n\n var style = _objectSpread({}, rdomStyle);\n\n rdomClassListNext.forEach(function (className) {\n var _getDeclaration2 = getDeclaration(className),\n prop = _getDeclaration2.prop;\n\n if (style[prop]) {\n style[prop] = '';\n }\n });\n\n _extends(style, rdomStyleNext);\n\n return {\n className: className,\n style: style\n };\n }\n\n function _resolveStyle(style, key) {\n var doLeftAndRightSwapInRTL = I18nManager.doLeftAndRightSwapInRTL,\n isRTL = I18nManager.isRTL;\n var dir = isRTL ? doLeftAndRightSwapInRTL ? 'rtl' : 'rtlNoSwap' : 'ltr';\n\n if (key != null && resolved[dir][key] != null) {\n return resolved[dir][key];\n }\n\n var flatStyle = flattenStyle(style);\n var localizedStyle = createCompileableStyle(i18nStyle(flatStyle));\n var props = Object.keys(localizedStyle).sort().reduce(function (props, styleProp) {\n var value = localizedStyle[styleProp];\n\n if (value != null) {\n var className = getClassName(styleProp, value);\n\n if (className) {\n props.classList.push(className);\n } else {\n if (styleProp === 'animationKeyframes' || styleProp === 'placeholderTextColor' || styleProp === 'pointerEvents' || styleProp === 'scrollbarWidth') {\n var _atomic;\n\n var a = atomic((_atomic = {}, _atomic[styleProp] = value, _atomic));\n Object.values(a).forEach(function (_ref) {\n var identifier = _ref.identifier,\n rules = _ref.rules;\n props.classList.push(identifier);\n rules.forEach(function (rule) {\n sheet.insert(rule, STYLE_GROUPS.atomic);\n });\n });\n } else {\n if (!props.style) {\n props.style = {};\n }\n\n props.style[styleProp] = value;\n }\n }\n }\n\n return props;\n }, {\n classList: []\n });\n\n if (props.style) {\n props.style = inline(props.style);\n }\n\n if (key != null) {\n resolved[dir][key] = props;\n }\n\n return props;\n }\n\n return {\n getStyleSheet: function getStyleSheet() {\n var textContent = sheet.getTextContent();\n\n if (!canUseDOM) {\n init();\n }\n\n return {\n id: STYLE_ELEMENT_ID,\n textContent: textContent\n };\n },\n createCSS: function createCSS(rules, group) {\n var result = {};\n Object.keys(rules).forEach(function (name) {\n var style = rules[name];\n var compiled = classic(style, name);\n Object.values(compiled).forEach(function (_ref2) {\n var identifier = _ref2.identifier,\n rules = _ref2.rules;\n resolved.css[identifier] = {\n group: group || STYLE_GROUPS.classic,\n rules: rules\n };\n result[name] = identifier;\n });\n });\n return result;\n },\n resolve: resolve,\n sheet: sheet,\n resolveWithNode: resolveWithNode\n };\n}\n\nvar createCacheKey = function createCacheKey(id) {\n var prefix = 'rn';\n return prefix + \"-\" + id;\n};\n\nvar classListToString = function classListToString(list) {\n return list.join(' ').trim();\n};\n\nvar hyphenPattern = /-([a-z])/g;\n\nvar toCamelCase = function toCamelCase(str) {\n return str.replace(hyphenPattern, function (m) {\n return m[1].toUpperCase();\n });\n};\n\nvar getDOMStyleInfo = function getDOMStyleInfo(node) {\n var nodeStyle = node.style;\n var classList = Array.prototype.slice.call(node.classList);\n var style = {};\n\n for (var i = 0; i < nodeStyle.length; i += 1) {\n var property = nodeStyle.item(i);\n\n if (property) {\n style[toCamelCase(property)] = nodeStyle.getPropertyValue(property);\n }\n }\n\n return {\n classList: classList,\n style: style\n };\n};","import createStyleResolver from \"./createStyleResolver\";\nvar styleResolver = createStyleResolver();\nexport default styleResolver;","import { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nexport default function createCSSStyleSheet(id) {\n if (canUseDOM) {\n var element = document.getElementById(id);\n\n if (element != null) {\n return element.sheet;\n } else {\n var _element = document.createElement('style');\n\n _element.setAttribute('id', id);\n\n var head = document.head;\n\n if (head) {\n head.insertBefore(_element, head.firstChild);\n }\n\n return _element.sheet;\n }\n } else {\n return null;\n }\n}","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;","// 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 redirects from \"./redirects.json\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport emitter from \"./emitter\"\nimport { RouteAnnouncerProps } from \"./route-announcer-props\"\nimport { navigate as reachNavigate } from \"@reach/router\"\nimport { globalHistory } from \"@reach/router/lib/history\"\nimport { parsePath } from \"gatsby-link\"\n\n// Convert to a map for faster lookup in maybeRedirect()\nconst redirectMap = redirects.reduce((map, redirect) => {\n map[redirect.fromPath] = redirect\n return map\n}, {})\n\nfunction maybeRedirect(pathname) {\n const redirect = redirectMap[pathname]\n\n if (redirect != null) {\n if (process.env.NODE_ENV !== `production`) {\n if (!loader.isPageNotFound(pathname)) {\n console.error(\n `The route \"${pathname}\" matches both a page and a redirect; this is probably not intentional.`\n )\n }\n }\n\n window.___replace(redirect.toPath)\n return true\n } else {\n return false\n }\n}\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(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_EXPERIMENTAL_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 let { pathname } = parsePath(to)\n const redirect = redirectMap[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\n pathname = parsePath(to).pathname\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\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).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\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 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 // Check for initial page-load redirect\n maybeRedirect(window.location.pathname)\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(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onPreRouteUpdate(this.props.location, prevProps.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 }\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: pageResources || loader.loadPageSync(location.pathname),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(location.pathname)\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(nextProps.location.pathname)\n return false\n }\n\n if (\n process.env.BUILD_STAGE === `develop` &&\n nextState.pageResources.stale\n ) {\n this.loadResources(nextProps.location.pathname)\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 (process.env.NODE_ENV !== `production` && !this.state.pageResources) {\n throw new Error(\n `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 )\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 ReactDOM from \"react-dom\"\nimport { Router, navigate, Location, BaseContext } from \"@reach/router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport domReady from \"@mikaelkristiansson/domready\"\nimport { StaticQueryContext } from \"gatsby\"\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} from \"./loader\"\nimport EnsureResources from \"./ensure-resources\"\nimport stripPrefix from \"./strip-prefix\"\n\n// Generated during bootstrap\nimport matchPaths from \"$virtual/match-paths.json\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\n\napiRunnerAsync(`onClientEntry`).then(() => {\n // Let plugins register a service worker. The plugin just needs\n // to return true.\n if (apiRunner(`registerServiceWorker`).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 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 return (\n \n \n {children}\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). But\n // 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 !== browserLoc.pathname &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath === `/404.html` ||\n pagePath.match(/^\\/404\\/?$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(__BASE_PATH__ + pagePath + browserLoc.search + browserLoc.hash, {\n replace: true,\n })\n }\n\n publicLoader.loadPage(browserLoc.pathname).then(page => {\n if (!page || page.status === PageResourceStatus.Error) {\n throw new Error(\n `page resources for ${browserLoc.pathname} not found. Not rendering React`\n )\n }\n\n window.___webpackCompilationHash = page.page.webpackCompilationHash\n\n const SiteRoot = apiRunner(\n `wrapRootElement`,\n { element: },\n ,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n const App = () => {SiteRoot}\n\n const renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n ReactDOM.hydrate\n )[0]\n\n domReady(() => {\n renderer(\n ,\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : void 0,\n () => {\n apiRunner(`onInitialClientRender`)\n }\n )\n })\n })\n})\n","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inheritsLoose;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = crossFade;\n\nvar _isPrefixedValue = require('css-in-js-utils/lib/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n} // http://caniuse.com/#search=cross-fade\n\n\nvar prefixes = ['-webkit-', ''];\n\nfunction crossFade(property, value) {\n if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.indexOf('cross-fade(') > -1) {\n return prefixes.map(function (prefix) {\n return value.replace(/cross-fade\\(/g, prefix + 'cross-fade(');\n });\n }\n}","import _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[typeof Symbol === \"function\" ? Symbol.iterator : \"@@iterator\"] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n it = o[typeof Symbol === \"function\" ? Symbol.iterator : \"@@iterator\"]();\n return it.next.bind(it);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nimport _react, { useContext, useEffect, useMemo, useRef, useState } from \"react\";\nimport { mergeProps, runAfterTransition, focusWithoutScrolling, useGlobalListeners } from \"@react-aria/utils\";\nimport _babelRuntimeHelpersEsmObjectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _babelRuntimeHelpersEsmExtends from \"@babel/runtime/helpers/esm/extends\";\nvar $e17c9db826984f8ab8e5d837bf0b8$var$state = 'default';\nvar $e17c9db826984f8ab8e5d837bf0b8$var$savedUserSelect = '';\n\nfunction $e17c9db826984f8ab8e5d837bf0b8$export$disableTextSelection() {\n if ($e17c9db826984f8ab8e5d837bf0b8$var$state === 'default') {\n $e17c9db826984f8ab8e5d837bf0b8$var$savedUserSelect = document.documentElement.style.webkitUserSelect;\n document.documentElement.style.webkitUserSelect = 'none';\n }\n\n $e17c9db826984f8ab8e5d837bf0b8$var$state = 'disabled';\n}\n\nfunction $e17c9db826984f8ab8e5d837bf0b8$export$restoreTextSelection() {\n if ($e17c9db826984f8ab8e5d837bf0b8$var$state !== 'disabled') {\n return;\n }\n\n $e17c9db826984f8ab8e5d837bf0b8$var$state = 'restoring';\n setTimeout(function () {\n runAfterTransition(function () {\n if ($e17c9db826984f8ab8e5d837bf0b8$var$state === 'restoring') {\n if (document.documentElement.style.webkitUserSelect === 'none') {\n document.documentElement.style.webkitUserSelect = $e17c9db826984f8ab8e5d837bf0b8$var$savedUserSelect || '';\n }\n\n $e17c9db826984f8ab8e5d837bf0b8$var$savedUserSelect = '';\n $e17c9db826984f8ab8e5d837bf0b8$var$state = 'default';\n }\n });\n }, 300);\n}\n\nfunction $f67ef9f1b8ed09b4b00fd0840cd8b94b$export$isVirtualClick(event) {\n if (event.mozInputSource === 0 && event.isTrusted) {\n return true;\n }\n\n return event.detail === 0 && !event.pointerType;\n}\n\nvar $a3ff51240de6f955c79cf17a88e349$export$PressResponderContext = _react.createContext(null);\n\n$a3ff51240de6f955c79cf17a88e349$export$PressResponderContext.displayName = 'PressResponderContext';\n\nfunction $ffc54430b1dbeee65879852feaaff07d$var$usePressResponderContext(props) {\n var context = useContext($a3ff51240de6f955c79cf17a88e349$export$PressResponderContext);\n\n if (context) {\n var register = context.register,\n contextProps = _babelRuntimeHelpersEsmObjectWithoutPropertiesLoose(context, [\"register\"]);\n\n props = mergeProps(contextProps, props);\n register();\n }\n\n useEffect(function () {\n if (context && context.ref) {\n context.ref.current = props.ref.current;\n return function () {\n context.ref.current = null;\n };\n }\n }, [context, props.ref]);\n return props;\n}\n\nexport function usePress(props) {\n var _usePressResponderCon = $ffc54430b1dbeee65879852feaaff07d$var$usePressResponderContext(props),\n onPress = _usePressResponderCon.onPress,\n onPressChange = _usePressResponderCon.onPressChange,\n onPressStart = _usePressResponderCon.onPressStart,\n onPressEnd = _usePressResponderCon.onPressEnd,\n onPressUp = _usePressResponderCon.onPressUp,\n isDisabled = _usePressResponderCon.isDisabled,\n isPressedProp = _usePressResponderCon.isPressed,\n preventFocusOnPress = _usePressResponderCon.preventFocusOnPress,\n domProps = _babelRuntimeHelpersEsmObjectWithoutPropertiesLoose(_usePressResponderCon, [\"onPress\", \"onPressChange\", \"onPressStart\", \"onPressEnd\", \"onPressUp\", \"isDisabled\", \"isPressed\", \"preventFocusOnPress\", \"ref\"]);\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n isPressed = _useState2[0],\n setPressed = _useState2[1];\n\n var ref = useRef({\n isPressed: false,\n ignoreEmulatedMouseEvents: false,\n ignoreClickAfterPress: false,\n activePointerId: null,\n target: null,\n isOverTarget: false\n });\n\n var _useGlobalListeners = useGlobalListeners(),\n addGlobalListener = _useGlobalListeners.addGlobalListener,\n removeGlobalListener = _useGlobalListeners.removeGlobalListener;\n\n var pressProps = useMemo(function () {\n var state = ref.current;\n\n var triggerPressStart = function triggerPressStart(originalEvent, pointerType) {\n if (isDisabled) {\n return;\n }\n\n if (onPressStart) {\n onPressStart({\n type: 'pressstart',\n pointerType: pointerType,\n target: originalEvent.currentTarget,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey\n });\n }\n\n if (onPressChange) {\n onPressChange(true);\n }\n\n setPressed(true);\n };\n\n var triggerPressEnd = function triggerPressEnd(originalEvent, pointerType, wasPressed) {\n if (wasPressed === void 0) {\n wasPressed = true;\n }\n\n if (isDisabled) {\n return;\n }\n\n state.ignoreClickAfterPress = true;\n\n if (onPressEnd) {\n onPressEnd({\n type: 'pressend',\n pointerType: pointerType,\n target: originalEvent.currentTarget,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey\n });\n }\n\n if (onPressChange) {\n onPressChange(false);\n }\n\n setPressed(false);\n\n if (onPress && wasPressed) {\n onPress({\n type: 'press',\n pointerType: pointerType,\n target: originalEvent.currentTarget,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey\n });\n }\n };\n\n var triggerPressUp = function triggerPressUp(originalEvent, pointerType) {\n if (isDisabled) {\n return;\n }\n\n if (onPressUp) {\n onPressUp({\n type: 'pressup',\n pointerType: pointerType,\n target: originalEvent.currentTarget,\n shiftKey: originalEvent.shiftKey,\n metaKey: originalEvent.metaKey,\n ctrlKey: originalEvent.ctrlKey\n });\n }\n };\n\n var pressProps = {\n onKeyDown: function onKeyDown(e) {\n if ($ffc54430b1dbeee65879852feaaff07d$var$isValidKeyboardEvent(e.nativeEvent)) {\n e.preventDefault();\n e.stopPropagation();\n\n if (!state.isPressed && !e.repeat) {\n state.target = e.currentTarget;\n state.isPressed = true;\n triggerPressStart(e, 'keyboard');\n addGlobalListener(document, 'keyup', onKeyUp, false);\n }\n }\n },\n onKeyUp: function onKeyUp(e) {\n if ($ffc54430b1dbeee65879852feaaff07d$var$isValidKeyboardEvent(e.nativeEvent) && !e.repeat) {\n triggerPressUp($ffc54430b1dbeee65879852feaaff07d$var$createEvent(state.target, e), 'keyboard');\n }\n },\n onClick: function onClick(e) {\n if (e && e.button === 0) {\n e.stopPropagation();\n\n if (isDisabled) {\n e.preventDefault();\n }\n\n if (!state.ignoreClickAfterPress && !state.ignoreEmulatedMouseEvents && $f67ef9f1b8ed09b4b00fd0840cd8b94b$export$isVirtualClick(e.nativeEvent)) {\n if (!isDisabled && !preventFocusOnPress) {\n focusWithoutScrolling(e.currentTarget);\n }\n\n triggerPressStart(e, 'virtual');\n triggerPressUp(e, 'virtual');\n triggerPressEnd(e, 'virtual');\n }\n\n state.ignoreEmulatedMouseEvents = false;\n state.ignoreClickAfterPress = false;\n }\n }\n };\n\n var onKeyUp = function onKeyUp(e) {\n if (state.isPressed && $ffc54430b1dbeee65879852feaaff07d$var$isValidKeyboardEvent(e)) {\n e.preventDefault();\n e.stopPropagation();\n state.isPressed = false;\n triggerPressEnd($ffc54430b1dbeee65879852feaaff07d$var$createEvent(state.target, e), 'keyboard', e.target === state.target);\n removeGlobalListener(document, 'keyup', onKeyUp, false);\n\n if (e.target === state.target && $ffc54430b1dbeee65879852feaaff07d$var$isHTMLAnchorLink(state.target) || state.target.getAttribute('role') === 'link') {\n state.target.click();\n }\n }\n };\n\n if (typeof PointerEvent !== 'undefined') {\n pressProps.onPointerDown = function (e) {\n if (e.button !== 0) {\n return;\n }\n\n e.preventDefault();\n e.stopPropagation();\n\n if (!state.isPressed) {\n state.isPressed = true;\n state.isOverTarget = true;\n state.activePointerId = e.pointerId;\n state.target = e.currentTarget;\n\n if (!isDisabled && !preventFocusOnPress) {\n focusWithoutScrolling(e.currentTarget);\n }\n\n $e17c9db826984f8ab8e5d837bf0b8$export$disableTextSelection();\n triggerPressStart(e, e.pointerType);\n addGlobalListener(document, 'pointermove', onPointerMove, false);\n addGlobalListener(document, 'pointerup', onPointerUp, false);\n addGlobalListener(document, 'pointercancel', onPointerCancel, false);\n }\n };\n\n pressProps.onMouseDown = function (e) {\n if (e.button === 0) {\n e.preventDefault();\n }\n };\n\n var unbindEvents = function unbindEvents() {\n removeGlobalListener(document, 'pointermove', onPointerMove, false);\n removeGlobalListener(document, 'pointerup', onPointerUp, false);\n removeGlobalListener(document, 'pointercancel', onPointerCancel, false);\n };\n\n pressProps.onPointerUp = function (e) {\n if (e.button === 0 && $ffc54430b1dbeee65879852feaaff07d$var$isOverTarget(e, e.currentTarget)) {\n triggerPressUp(e, e.pointerType);\n }\n };\n\n var onPointerMove = function onPointerMove(e) {\n if (e.pointerId !== state.activePointerId) {\n return;\n }\n\n if ($ffc54430b1dbeee65879852feaaff07d$var$isOverTarget(e, state.target)) {\n if (!state.isOverTarget) {\n state.isOverTarget = true;\n triggerPressStart($ffc54430b1dbeee65879852feaaff07d$var$createEvent(state.target, e), e.pointerType);\n }\n } else if (state.isOverTarget) {\n state.isOverTarget = false;\n triggerPressEnd($ffc54430b1dbeee65879852feaaff07d$var$createEvent(state.target, e), e.pointerType, false);\n }\n };\n\n var onPointerUp = function onPointerUp(e) {\n if (e.pointerId === state.activePointerId && state.isPressed && e.button === 0) {\n if ($ffc54430b1dbeee65879852feaaff07d$var$isOverTarget(e, state.target)) {\n triggerPressEnd($ffc54430b1dbeee65879852feaaff07d$var$createEvent(state.target, e), e.pointerType);\n } else if (state.isOverTarget) {\n triggerPressEnd($ffc54430b1dbeee65879852feaaff07d$var$createEvent(state.target, e), e.pointerType, false);\n }\n\n state.isPressed = false;\n state.isOverTarget = false;\n state.activePointerId = null;\n unbindEvents();\n $e17c9db826984f8ab8e5d837bf0b8$export$restoreTextSelection();\n }\n };\n\n var onPointerCancel = function onPointerCancel(e) {\n if (state.isPressed) {\n if (state.isOverTarget) {\n triggerPressEnd($ffc54430b1dbeee65879852feaaff07d$var$createEvent(state.target, e), e.pointerType, false);\n }\n\n state.isPressed = false;\n state.isOverTarget = false;\n state.activePointerId = null;\n unbindEvents();\n $e17c9db826984f8ab8e5d837bf0b8$export$restoreTextSelection();\n }\n };\n } else {\n pressProps.onMouseDown = function (e) {\n if (e.button !== 0) {\n return;\n }\n\n e.preventDefault();\n e.stopPropagation();\n\n if (state.ignoreEmulatedMouseEvents) {\n return;\n }\n\n state.isPressed = true;\n state.isOverTarget = true;\n state.target = e.currentTarget;\n\n if (!isDisabled && !preventFocusOnPress) {\n focusWithoutScrolling(e.currentTarget);\n }\n\n triggerPressStart(e, $f67ef9f1b8ed09b4b00fd0840cd8b94b$export$isVirtualClick(e.nativeEvent) ? 'virtual' : 'mouse');\n addGlobalListener(document, 'mouseup', onMouseUp, false);\n };\n\n pressProps.onMouseEnter = function (e) {\n e.stopPropagation();\n\n if (state.isPressed && !state.ignoreEmulatedMouseEvents) {\n state.isOverTarget = true;\n triggerPressStart(e, 'mouse');\n }\n };\n\n pressProps.onMouseLeave = function (e) {\n e.stopPropagation();\n\n if (state.isPressed && !state.ignoreEmulatedMouseEvents) {\n state.isOverTarget = false;\n triggerPressEnd(e, 'mouse', false);\n }\n };\n\n pressProps.onMouseUp = function (e) {\n if (!state.ignoreEmulatedMouseEvents && e.button === 0) {\n triggerPressUp(e, $f67ef9f1b8ed09b4b00fd0840cd8b94b$export$isVirtualClick(e.nativeEvent) ? 'virtual' : 'mouse');\n }\n };\n\n var onMouseUp = function onMouseUp(e) {\n if (e.button !== 0) {\n return;\n }\n\n state.isPressed = false;\n removeGlobalListener(document, 'mouseup', onMouseUp, false);\n\n if (state.ignoreEmulatedMouseEvents) {\n state.ignoreEmulatedMouseEvents = false;\n return;\n }\n\n var pointerType = $f67ef9f1b8ed09b4b00fd0840cd8b94b$export$isVirtualClick(e) ? 'virtual' : 'mouse';\n\n if ($ffc54430b1dbeee65879852feaaff07d$var$isOverTarget(e, state.target)) {\n triggerPressEnd($ffc54430b1dbeee65879852feaaff07d$var$createEvent(state.target, e), pointerType);\n } else if (state.isOverTarget) {\n triggerPressEnd($ffc54430b1dbeee65879852feaaff07d$var$createEvent(state.target, e), pointerType, false);\n }\n\n state.isOverTarget = false;\n };\n\n pressProps.onTouchStart = function (e) {\n e.stopPropagation();\n var touch = $ffc54430b1dbeee65879852feaaff07d$var$getTouchFromEvent(e.nativeEvent);\n\n if (!touch) {\n return;\n }\n\n state.activePointerId = touch.identifier;\n state.ignoreEmulatedMouseEvents = true;\n state.isOverTarget = true;\n state.isPressed = true;\n state.target = e.currentTarget;\n\n if (!isDisabled && !preventFocusOnPress) {\n focusWithoutScrolling(e.currentTarget);\n }\n\n $e17c9db826984f8ab8e5d837bf0b8$export$disableTextSelection();\n triggerPressStart(e, 'touch');\n addGlobalListener(window, 'scroll', onScroll, true);\n };\n\n pressProps.onTouchMove = function (e) {\n e.stopPropagation();\n\n if (!state.isPressed) {\n return;\n }\n\n var touch = $ffc54430b1dbeee65879852feaaff07d$var$getTouchById(e.nativeEvent, state.activePointerId);\n\n if (touch && $ffc54430b1dbeee65879852feaaff07d$var$isOverTarget(touch, e.currentTarget)) {\n if (!state.isOverTarget) {\n state.isOverTarget = true;\n triggerPressStart(e, 'touch');\n }\n } else if (state.isOverTarget) {\n state.isOverTarget = false;\n triggerPressEnd(e, 'touch', false);\n }\n };\n\n pressProps.onTouchEnd = function (e) {\n e.stopPropagation();\n\n if (!state.isPressed) {\n return;\n }\n\n var touch = $ffc54430b1dbeee65879852feaaff07d$var$getTouchById(e.nativeEvent, state.activePointerId);\n\n if (touch && $ffc54430b1dbeee65879852feaaff07d$var$isOverTarget(touch, e.currentTarget)) {\n triggerPressUp(e, 'touch');\n triggerPressEnd(e, 'touch');\n } else if (state.isOverTarget) {\n triggerPressEnd(e, 'touch', false);\n }\n\n state.isPressed = false;\n state.activePointerId = null;\n state.isOverTarget = false;\n state.ignoreEmulatedMouseEvents = true;\n $e17c9db826984f8ab8e5d837bf0b8$export$restoreTextSelection();\n removeGlobalListener(window, 'scroll', onScroll, true);\n };\n\n pressProps.onTouchCancel = function (e) {\n e.stopPropagation();\n\n if (state.isPressed) {\n cancelTouchEvent(e, 'touch');\n }\n };\n\n var onScroll = function onScroll(e) {\n if (state.isPressed && e.target.contains(state.target)) {\n cancelTouchEvent({\n currentTarget: state.target,\n shiftKey: false,\n ctrlKey: false,\n metaKey: false\n }, 'touch');\n }\n };\n\n var cancelTouchEvent = function cancelTouchEvent(e, pointerType) {\n if (state.isOverTarget) {\n triggerPressEnd(e, pointerType, false);\n }\n\n state.isPressed = false;\n state.activePointerId = null;\n state.isOverTarget = false;\n $e17c9db826984f8ab8e5d837bf0b8$export$restoreTextSelection();\n window.removeEventListener('scroll', onScroll, true);\n };\n }\n\n return pressProps;\n }, [isDisabled, onPressStart, onPressChange, onPressEnd, onPress, onPressUp, addGlobalListener, preventFocusOnPress, removeGlobalListener]);\n useEffect(function () {\n return function () {\n return $e17c9db826984f8ab8e5d837bf0b8$export$restoreTextSelection();\n };\n }, []);\n return {\n isPressed: isPressedProp || isPressed,\n pressProps: mergeProps(domProps, pressProps)\n };\n}\n\nfunction $ffc54430b1dbeee65879852feaaff07d$var$isHTMLAnchorLink(target) {\n return target.tagName === 'A' && target.hasAttribute('href');\n}\n\nfunction $ffc54430b1dbeee65879852feaaff07d$var$isValidKeyboardEvent(event) {\n var key = event.key,\n target = event.target;\n var element = target;\n var tagName = element.tagName,\n isContentEditable = element.isContentEditable;\n var role = element.getAttribute('role');\n return (key === 'Enter' || key === ' ' || key === 'Spacebar') && tagName !== 'INPUT' && tagName !== 'TEXTAREA' && isContentEditable !== true && (!$ffc54430b1dbeee65879852feaaff07d$var$isHTMLAnchorLink(element) || role === 'button' && key !== 'Enter') && !(role === 'link' && key !== 'Enter');\n}\n\nfunction $ffc54430b1dbeee65879852feaaff07d$var$getTouchFromEvent(event) {\n var targetTouches = event.targetTouches;\n\n if (targetTouches.length > 0) {\n return targetTouches[0];\n }\n\n return null;\n}\n\nfunction $ffc54430b1dbeee65879852feaaff07d$var$getTouchById(event, pointerId) {\n var changedTouches = event.changedTouches;\n\n for (var i = 0; i < changedTouches.length; i++) {\n var touch = changedTouches[i];\n\n if (touch.identifier === pointerId) {\n return touch;\n }\n }\n\n return null;\n}\n\nfunction $ffc54430b1dbeee65879852feaaff07d$var$createEvent(target, e) {\n return {\n currentTarget: target,\n shiftKey: e.shiftKey,\n ctrlKey: e.ctrlKey,\n metaKey: e.metaKey\n };\n}\n\nfunction $ffc54430b1dbeee65879852feaaff07d$var$isOverTarget(point, target) {\n var rect = target.getBoundingClientRect();\n return (point.clientX || 0) >= (rect.left || 0) && (point.clientX || 0) <= (rect.right || 0) && (point.clientY || 0) >= (rect.top || 0) && (point.clientY || 0) <= (rect.bottom || 0);\n}\n\nexport var Pressable = _react.forwardRef(function (_ref, ref) {\n var _ref2;\n\n var children = _ref.children,\n props = _babelRuntimeHelpersEsmObjectWithoutPropertiesLoose(_ref, [\"children\"]);\n\n var newRef = useRef();\n ref = (_ref2 = ref) != null ? _ref2 : newRef;\n\n var _usePress = usePress(_babelRuntimeHelpersEsmExtends({}, props, {\n ref: ref\n })),\n pressProps = _usePress.pressProps;\n\n var child = _react.Children.only(children);\n\n return _react.cloneElement(child, _babelRuntimeHelpersEsmExtends({\n ref: ref\n }, mergeProps(child.props, pressProps)));\n});\nexport var PressResponder = _react.forwardRef(function (_ref, ref) {\n var children = _ref.children,\n props = _babelRuntimeHelpersEsmObjectWithoutPropertiesLoose(_ref, [\"children\"]);\n\n var isRegistered = useRef(false);\n var prevContext = useContext($a3ff51240de6f955c79cf17a88e349$export$PressResponderContext);\n var context = mergeProps(prevContext || {}, _babelRuntimeHelpersEsmExtends({}, props, {\n ref: ref,\n register: function register() {\n isRegistered.current = true;\n\n if (prevContext) {\n prevContext.register();\n }\n }\n }));\n useEffect(function () {\n if (!isRegistered.current) {\n console.warn('A PressResponder was rendered without a pressable child. ' + 'Either call the usePress hook, or wrap your DOM node with component.');\n }\n }, []);\n return _react.createElement($a3ff51240de6f955c79cf17a88e349$export$PressResponderContext.Provider, {\n value: context\n }, children);\n});\nexport function useFocus(props) {\n if (props.isDisabled) {\n return {\n focusProps: {}\n };\n }\n\n var onFocus, onBlur;\n\n if (props.onFocus || props.onFocusChange) {\n onFocus = function onFocus(e) {\n if (e.target === e.currentTarget) {\n if (props.onFocus) {\n props.onFocus(e);\n }\n\n if (props.onFocusChange) {\n props.onFocusChange(true);\n }\n }\n };\n }\n\n if (props.onBlur || props.onFocusChange) {\n onBlur = function onBlur(e) {\n if (e.target === e.currentTarget) {\n if (props.onBlur) {\n props.onBlur(e);\n }\n\n if (props.onFocusChange) {\n props.onFocusChange(false);\n }\n }\n };\n }\n\n return {\n focusProps: {\n onFocus: onFocus,\n onBlur: onBlur\n }\n };\n}\nvar $d01f69bb2ab5f70dfd0005370a2a2cbc$var$currentModality = null;\nvar $d01f69bb2ab5f70dfd0005370a2a2cbc$var$changeHandlers = new Set();\nvar $d01f69bb2ab5f70dfd0005370a2a2cbc$var$hasSetupGlobalListeners = false;\nvar $d01f69bb2ab5f70dfd0005370a2a2cbc$var$hasEventBeforeFocus = false;\nvar $d01f69bb2ab5f70dfd0005370a2a2cbc$var$isMac = typeof window !== 'undefined' && window.navigator != null ? /^Mac/.test(window.navigator.platform) : false;\nvar $d01f69bb2ab5f70dfd0005370a2a2cbc$var$FOCUS_VISIBLE_INPUT_KEYS = {\n Tab: true,\n Escape: true\n};\n\nfunction $d01f69bb2ab5f70dfd0005370a2a2cbc$var$triggerChangeHandlers(modality, e) {\n for (var _iterator = _createForOfIteratorHelperLoose($d01f69bb2ab5f70dfd0005370a2a2cbc$var$changeHandlers), _step; !(_step = _iterator()).done;) {\n var handler = _step.value;\n handler(modality, e);\n }\n}\n\nfunction $d01f69bb2ab5f70dfd0005370a2a2cbc$var$isValidKey(e) {\n return !(e.metaKey || !$d01f69bb2ab5f70dfd0005370a2a2cbc$var$isMac && e.altKey || e.ctrlKey);\n}\n\nfunction $d01f69bb2ab5f70dfd0005370a2a2cbc$var$handleKeyboardEvent(e) {\n $d01f69bb2ab5f70dfd0005370a2a2cbc$var$hasEventBeforeFocus = true;\n\n if ($d01f69bb2ab5f70dfd0005370a2a2cbc$var$isValidKey(e)) {\n $d01f69bb2ab5f70dfd0005370a2a2cbc$var$currentModality = 'keyboard';\n $d01f69bb2ab5f70dfd0005370a2a2cbc$var$triggerChangeHandlers('keyboard', e);\n }\n}\n\nfunction $d01f69bb2ab5f70dfd0005370a2a2cbc$var$handlePointerEvent(e) {\n $d01f69bb2ab5f70dfd0005370a2a2cbc$var$currentModality = 'pointer';\n\n if (e.type === 'mousedown' || e.type === 'pointerdown') {\n $d01f69bb2ab5f70dfd0005370a2a2cbc$var$hasEventBeforeFocus = true;\n $d01f69bb2ab5f70dfd0005370a2a2cbc$var$triggerChangeHandlers('pointer', e);\n }\n}\n\nfunction $d01f69bb2ab5f70dfd0005370a2a2cbc$var$handleClickEvent(e) {\n if ($f67ef9f1b8ed09b4b00fd0840cd8b94b$export$isVirtualClick(e)) {\n $d01f69bb2ab5f70dfd0005370a2a2cbc$var$hasEventBeforeFocus = true;\n $d01f69bb2ab5f70dfd0005370a2a2cbc$var$currentModality = 'virtual';\n }\n}\n\nfunction $d01f69bb2ab5f70dfd0005370a2a2cbc$var$handleFocusEvent(e) {\n if (e.target === window || e.target === document) {\n return;\n }\n\n if (!$d01f69bb2ab5f70dfd0005370a2a2cbc$var$hasEventBeforeFocus) {\n $d01f69bb2ab5f70dfd0005370a2a2cbc$var$currentModality = 'keyboard';\n $d01f69bb2ab5f70dfd0005370a2a2cbc$var$triggerChangeHandlers('keyboard', e);\n }\n\n $d01f69bb2ab5f70dfd0005370a2a2cbc$var$hasEventBeforeFocus = false;\n}\n\nfunction $d01f69bb2ab5f70dfd0005370a2a2cbc$var$handleWindowBlur() {\n $d01f69bb2ab5f70dfd0005370a2a2cbc$var$hasEventBeforeFocus = false;\n}\n\nfunction $d01f69bb2ab5f70dfd0005370a2a2cbc$var$setupGlobalFocusEvents() {\n if (typeof window === 'undefined' || $d01f69bb2ab5f70dfd0005370a2a2cbc$var$hasSetupGlobalListeners) {\n return;\n }\n\n var focus = HTMLElement.prototype.focus;\n\n HTMLElement.prototype.focus = function () {\n $d01f69bb2ab5f70dfd0005370a2a2cbc$var$hasEventBeforeFocus = true;\n focus.apply(this, arguments);\n };\n\n document.addEventListener('keydown', $d01f69bb2ab5f70dfd0005370a2a2cbc$var$handleKeyboardEvent, true);\n document.addEventListener('keyup', $d01f69bb2ab5f70dfd0005370a2a2cbc$var$handleKeyboardEvent, true);\n document.addEventListener('click', $d01f69bb2ab5f70dfd0005370a2a2cbc$var$handleClickEvent, true);\n window.addEventListener('focus', $d01f69bb2ab5f70dfd0005370a2a2cbc$var$handleFocusEvent, true);\n window.addEventListener('blur', $d01f69bb2ab5f70dfd0005370a2a2cbc$var$handleWindowBlur, false);\n\n if (typeof PointerEvent !== 'undefined') {\n document.addEventListener('pointerdown', $d01f69bb2ab5f70dfd0005370a2a2cbc$var$handlePointerEvent, true);\n document.addEventListener('pointermove', $d01f69bb2ab5f70dfd0005370a2a2cbc$var$handlePointerEvent, true);\n document.addEventListener('pointerup', $d01f69bb2ab5f70dfd0005370a2a2cbc$var$handlePointerEvent, true);\n } else {\n document.addEventListener('mousedown', $d01f69bb2ab5f70dfd0005370a2a2cbc$var$handlePointerEvent, true);\n document.addEventListener('mousemove', $d01f69bb2ab5f70dfd0005370a2a2cbc$var$handlePointerEvent, true);\n document.addEventListener('mouseup', $d01f69bb2ab5f70dfd0005370a2a2cbc$var$handlePointerEvent, true);\n }\n\n $d01f69bb2ab5f70dfd0005370a2a2cbc$var$hasSetupGlobalListeners = true;\n}\n\nexport function isFocusVisible() {\n return $d01f69bb2ab5f70dfd0005370a2a2cbc$var$currentModality !== 'pointer';\n}\nexport function getInteractionModality() {\n return $d01f69bb2ab5f70dfd0005370a2a2cbc$var$currentModality;\n}\nexport function setInteractionModality(modality) {\n $d01f69bb2ab5f70dfd0005370a2a2cbc$var$currentModality = modality;\n $d01f69bb2ab5f70dfd0005370a2a2cbc$var$triggerChangeHandlers(modality, null);\n}\nexport function useInteractionModality() {\n $d01f69bb2ab5f70dfd0005370a2a2cbc$var$setupGlobalFocusEvents();\n\n var _useState3 = useState($d01f69bb2ab5f70dfd0005370a2a2cbc$var$currentModality),\n _useState4 = _slicedToArray(_useState3, 2),\n modality = _useState4[0],\n setModality = _useState4[1];\n\n useEffect(function () {\n var handler = function handler() {\n setModality($d01f69bb2ab5f70dfd0005370a2a2cbc$var$currentModality);\n };\n\n $d01f69bb2ab5f70dfd0005370a2a2cbc$var$changeHandlers.add(handler);\n return function () {\n $d01f69bb2ab5f70dfd0005370a2a2cbc$var$changeHandlers.delete(handler);\n };\n }, []);\n return modality;\n}\nexport function useFocusVisible(props) {\n if (props === void 0) {\n props = {};\n }\n\n $d01f69bb2ab5f70dfd0005370a2a2cbc$var$setupGlobalFocusEvents();\n var _props = props,\n isTextInput = _props.isTextInput,\n autoFocus = _props.autoFocus;\n\n var _useState5 = useState(autoFocus || isFocusVisible()),\n _useState6 = _slicedToArray(_useState5, 2),\n isFocusVisibleState = _useState6[0],\n setFocusVisible = _useState6[1];\n\n useEffect(function () {\n var handler = function handler(modality, e) {\n if (isTextInput && modality === 'keyboard' && e instanceof KeyboardEvent && !$d01f69bb2ab5f70dfd0005370a2a2cbc$var$FOCUS_VISIBLE_INPUT_KEYS[e.key]) {\n return;\n }\n\n setFocusVisible(isFocusVisible());\n };\n\n $d01f69bb2ab5f70dfd0005370a2a2cbc$var$changeHandlers.add(handler);\n return function () {\n $d01f69bb2ab5f70dfd0005370a2a2cbc$var$changeHandlers.delete(handler);\n };\n }, [isTextInput]);\n return {\n isFocusVisible: isFocusVisibleState\n };\n}\nexport function useFocusWithin(props) {\n var state = useRef({\n isFocusWithin: false\n }).current;\n\n if (props.isDisabled) {\n return {\n focusWithinProps: {}\n };\n }\n\n var onFocus = function onFocus(e) {\n if (!state.isFocusWithin) {\n if (props.onFocusWithin) {\n props.onFocusWithin(e);\n }\n\n if (props.onFocusWithinChange) {\n props.onFocusWithinChange(true);\n }\n\n state.isFocusWithin = true;\n }\n };\n\n var onBlur = function onBlur(e) {\n if (state.isFocusWithin && !e.currentTarget.contains(e.relatedTarget)) {\n if (props.onBlurWithin) {\n props.onBlurWithin(e);\n }\n\n if (props.onFocusWithinChange) {\n props.onFocusWithinChange(false);\n }\n\n state.isFocusWithin = false;\n }\n };\n\n return {\n focusWithinProps: {\n onFocus: onFocus,\n onBlur: onBlur\n }\n };\n}\nvar $b1a784c66b81d90efa4f74e05b$var$globalIgnoreEmulatedMouseEvents = false;\nvar $b1a784c66b81d90efa4f74e05b$var$hoverCount = 0;\n\nfunction $b1a784c66b81d90efa4f74e05b$var$setGlobalIgnoreEmulatedMouseEvents() {\n $b1a784c66b81d90efa4f74e05b$var$globalIgnoreEmulatedMouseEvents = true;\n setTimeout(function () {\n $b1a784c66b81d90efa4f74e05b$var$globalIgnoreEmulatedMouseEvents = false;\n }, 50);\n}\n\nfunction $b1a784c66b81d90efa4f74e05b$var$handleGlobalPointerEvent(e) {\n if (e.pointerType === 'touch') {\n $b1a784c66b81d90efa4f74e05b$var$setGlobalIgnoreEmulatedMouseEvents();\n }\n}\n\nfunction $b1a784c66b81d90efa4f74e05b$var$setupGlobalTouchEvents() {\n if (typeof document === 'undefined') {\n return;\n }\n\n if (typeof PointerEvent !== 'undefined') {\n document.addEventListener('pointerup', $b1a784c66b81d90efa4f74e05b$var$handleGlobalPointerEvent);\n } else {\n document.addEventListener('touchend', $b1a784c66b81d90efa4f74e05b$var$setGlobalIgnoreEmulatedMouseEvents);\n }\n\n $b1a784c66b81d90efa4f74e05b$var$hoverCount++;\n return function () {\n $b1a784c66b81d90efa4f74e05b$var$hoverCount--;\n\n if ($b1a784c66b81d90efa4f74e05b$var$hoverCount > 0) {\n return;\n }\n\n if (typeof PointerEvent !== 'undefined') {\n document.removeEventListener('pointerup', $b1a784c66b81d90efa4f74e05b$var$handleGlobalPointerEvent);\n } else {\n document.removeEventListener('touchend', $b1a784c66b81d90efa4f74e05b$var$setGlobalIgnoreEmulatedMouseEvents);\n }\n };\n}\n\nexport function useHover(props) {\n var onHoverStart = props.onHoverStart,\n onHoverChange = props.onHoverChange,\n onHoverEnd = props.onHoverEnd,\n isDisabled = props.isDisabled;\n\n var _useState7 = useState(false),\n _useState8 = _slicedToArray(_useState7, 2),\n isHovered = _useState8[0],\n setHovered = _useState8[1];\n\n var state = useRef({\n isHovered: false,\n ignoreEmulatedMouseEvents: false\n }).current;\n useEffect($b1a784c66b81d90efa4f74e05b$var$setupGlobalTouchEvents, []);\n var hoverProps = useMemo(function () {\n var triggerHoverStart = function triggerHoverStart(event, pointerType) {\n if (isDisabled || pointerType === 'touch' || state.isHovered) {\n return;\n }\n\n state.isHovered = true;\n var target = event.target;\n\n if (onHoverStart) {\n onHoverStart({\n type: 'hoverstart',\n target: target,\n pointerType: pointerType\n });\n }\n\n if (onHoverChange) {\n onHoverChange(true);\n }\n\n setHovered(true);\n };\n\n var triggerHoverEnd = function triggerHoverEnd(event, pointerType) {\n if (isDisabled || pointerType === 'touch' || !state.isHovered) {\n return;\n }\n\n state.isHovered = false;\n var target = event.target;\n\n if (onHoverEnd) {\n onHoverEnd({\n type: 'hoverend',\n target: target,\n pointerType: pointerType\n });\n }\n\n if (onHoverChange) {\n onHoverChange(false);\n }\n\n setHovered(false);\n };\n\n var hoverProps = {};\n\n if (typeof PointerEvent !== 'undefined') {\n hoverProps.onPointerEnter = function (e) {\n if ($b1a784c66b81d90efa4f74e05b$var$globalIgnoreEmulatedMouseEvents && e.pointerType === 'mouse') {\n return;\n }\n\n triggerHoverStart(e, e.pointerType);\n };\n\n hoverProps.onPointerLeave = function (e) {\n triggerHoverEnd(e, e.pointerType);\n };\n } else {\n hoverProps.onTouchStart = function () {\n state.ignoreEmulatedMouseEvents = true;\n };\n\n hoverProps.onMouseEnter = function (e) {\n if (!state.ignoreEmulatedMouseEvents && !$b1a784c66b81d90efa4f74e05b$var$globalIgnoreEmulatedMouseEvents) {\n triggerHoverStart(e, 'mouse');\n }\n\n state.ignoreEmulatedMouseEvents = false;\n };\n\n hoverProps.onMouseLeave = function (e) {\n triggerHoverEnd(e, 'mouse');\n };\n }\n\n return hoverProps;\n }, [onHoverStart, onHoverChange, onHoverEnd, isDisabled, state]);\n return {\n hoverProps: hoverProps,\n isHovered: isHovered\n };\n}\nexport function useInteractOutside(props) {\n var ref = props.ref,\n onInteractOutside = props.onInteractOutside,\n isDisabled = props.isDisabled;\n var stateRef = useRef({\n isPointerDown: false,\n ignoreEmulatedMouseEvents: false\n });\n var state = stateRef.current;\n useEffect(function () {\n var onPointerDown = function onPointerDown(e) {\n if (isDisabled) {\n return;\n }\n\n if ($e415bb64ab27cb8fbfac2f417412022f$var$isValidEvent(e, ref)) {\n state.isPointerDown = true;\n }\n };\n\n var onMouseUp = function onMouseUp(e) {\n if (isDisabled) {\n return;\n }\n\n if (state.ignoreEmulatedMouseEvents) {\n state.ignoreEmulatedMouseEvents = false;\n } else if (state.isPointerDown && onInteractOutside && $e415bb64ab27cb8fbfac2f417412022f$var$isValidEvent(e, ref)) {\n state.isPointerDown = false;\n onInteractOutside(e);\n }\n };\n\n var onTouchEnd = function onTouchEnd(e) {\n if (isDisabled) {\n return;\n }\n\n state.ignoreEmulatedMouseEvents = true;\n\n if (onInteractOutside && state.isPointerDown && $e415bb64ab27cb8fbfac2f417412022f$var$isValidEvent(e, ref)) {\n state.isPointerDown = false;\n onInteractOutside(e);\n }\n };\n\n document.addEventListener('mousedown', onPointerDown, true);\n document.addEventListener('mouseup', onMouseUp, true);\n document.addEventListener('touchstart', onPointerDown, true);\n document.addEventListener('touchend', onTouchEnd, true);\n return function () {\n document.removeEventListener('mousedown', onPointerDown, true);\n document.removeEventListener('mouseup', onMouseUp, true);\n document.removeEventListener('touchstart', onPointerDown, true);\n document.removeEventListener('touchend', onTouchEnd, true);\n };\n }, [onInteractOutside, ref, state.ignoreEmulatedMouseEvents, state.isPointerDown, isDisabled]);\n}\n\nfunction $e415bb64ab27cb8fbfac2f417412022f$var$isValidEvent(event, ref) {\n if (event.button > 0) {\n return false;\n }\n\n if (event.target) {\n var ownerDocument = event.target.ownerDocument;\n\n if (!ownerDocument || !ownerDocument.body.contains(event.target)) {\n return false;\n }\n }\n\n return ref.current && !ref.current.contains(event.target);\n}\n\nfunction $dc0d75166de722fbf58eb6c3552$export$createEventHandler(handler) {\n if (!handler) {\n return;\n }\n\n var shouldStopPropagation = true;\n return function (e) {\n var event = _babelRuntimeHelpersEsmExtends({}, e, {\n preventDefault: function preventDefault() {\n e.preventDefault();\n },\n isDefaultPrevented: function isDefaultPrevented() {\n return e.isDefaultPrevented();\n },\n stopPropagation: function stopPropagation() {\n console.error('stopPropagation is now the default behavior for events in React Spectrum. You can use continuePropagation() to revert this behavior.');\n },\n continuePropagation: function continuePropagation() {\n shouldStopPropagation = false;\n }\n });\n\n handler(event);\n\n if (shouldStopPropagation) {\n e.stopPropagation();\n }\n };\n}\n\nexport function useKeyboard(props) {\n return {\n keyboardProps: props.isDisabled ? {} : {\n onKeyDown: $dc0d75166de722fbf58eb6c3552$export$createEventHandler(props.onKeyDown),\n onKeyUp: $dc0d75166de722fbf58eb6c3552$export$createEventHandler(props.onKeyUp)\n }\n };\n}\nexport function useMove(props) {\n var onMoveStart = props.onMoveStart,\n onMove = props.onMove,\n onMoveEnd = props.onMoveEnd;\n var state = useRef({\n didMove: false,\n lastPosition: null,\n id: null\n });\n\n var _useGlobalListeners2 = useGlobalListeners(),\n addGlobalListener = _useGlobalListeners2.addGlobalListener,\n removeGlobalListener = _useGlobalListeners2.removeGlobalListener;\n\n var moveProps = useMemo(function () {\n var moveProps = {};\n\n var start = function start() {\n $e17c9db826984f8ab8e5d837bf0b8$export$disableTextSelection();\n state.current.didMove = false;\n };\n\n var move = function move(pointerType, deltaX, deltaY) {\n if (deltaX === 0 && deltaY === 0) {\n return;\n }\n\n if (!state.current.didMove) {\n state.current.didMove = true;\n onMoveStart == null ? void 0 : onMoveStart({\n type: 'movestart',\n pointerType: pointerType\n });\n }\n\n onMove({\n type: 'move',\n pointerType: pointerType,\n deltaX: deltaX,\n deltaY: deltaY\n });\n };\n\n var end = function end(pointerType) {\n $e17c9db826984f8ab8e5d837bf0b8$export$restoreTextSelection();\n\n if (state.current.didMove) {\n onMoveEnd == null ? void 0 : onMoveEnd({\n type: 'moveend',\n pointerType: pointerType\n });\n }\n };\n\n if (typeof PointerEvent === 'undefined') {\n var onMouseMove = function onMouseMove(e) {\n if (e.button === 0) {\n move('mouse', e.pageX - state.current.lastPosition.pageX, e.pageY - state.current.lastPosition.pageY);\n state.current.lastPosition = {\n pageX: e.pageX,\n pageY: e.pageY\n };\n }\n };\n\n var onMouseUp = function onMouseUp(e) {\n if (e.button === 0) {\n end('mouse');\n removeGlobalListener(window, 'mousemove', onMouseMove, false);\n removeGlobalListener(window, 'mouseup', onMouseUp, false);\n }\n };\n\n moveProps.onMouseDown = function (e) {\n if (e.button === 0) {\n start();\n e.stopPropagation();\n e.preventDefault();\n state.current.lastPosition = {\n pageX: e.pageX,\n pageY: e.pageY\n };\n addGlobalListener(window, 'mousemove', onMouseMove, false);\n addGlobalListener(window, 'mouseup', onMouseUp, false);\n }\n };\n\n var onTouchMove = function onTouchMove(e) {\n var touch = _toConsumableArray(e.changedTouches).findIndex(function (_ref) {\n var identifier = _ref.identifier;\n return identifier === state.current.id;\n });\n\n if (touch >= 0) {\n var _e$changedTouches$tou = e.changedTouches[touch],\n pageX = _e$changedTouches$tou.pageX,\n pageY = _e$changedTouches$tou.pageY;\n move('touch', pageX - state.current.lastPosition.pageX, pageY - state.current.lastPosition.pageY);\n state.current.lastPosition = {\n pageX: pageX,\n pageY: pageY\n };\n }\n };\n\n var onTouchEnd = function onTouchEnd(e) {\n var touch = _toConsumableArray(e.changedTouches).findIndex(function (_ref2) {\n var identifier = _ref2.identifier;\n return identifier === state.current.id;\n });\n\n if (touch >= 0) {\n end('touch');\n state.current.id = null;\n removeGlobalListener(window, 'touchmove', onTouchMove);\n removeGlobalListener(window, 'touchend', onTouchEnd);\n removeGlobalListener(window, 'touchcancel', onTouchEnd);\n }\n };\n\n moveProps.onTouchStart = function (e) {\n if (e.changedTouches.length === 0 || state.current.id != null) {\n return;\n }\n\n var _e$changedTouches$ = e.changedTouches[0],\n pageX = _e$changedTouches$.pageX,\n pageY = _e$changedTouches$.pageY,\n identifier = _e$changedTouches$.identifier;\n start();\n e.stopPropagation();\n e.preventDefault();\n state.current.lastPosition = {\n pageX: pageX,\n pageY: pageY\n };\n state.current.id = identifier;\n addGlobalListener(window, 'touchmove', onTouchMove, false);\n addGlobalListener(window, 'touchend', onTouchEnd, false);\n addGlobalListener(window, 'touchcancel', onTouchEnd, false);\n };\n } else {\n var onPointerMove = function onPointerMove(e) {\n if (e.pointerId === state.current.id) {\n var pointerType = e.pointerType || 'mouse';\n move(pointerType, e.pageX - state.current.lastPosition.pageX, e.pageY - state.current.lastPosition.pageY);\n state.current.lastPosition = {\n pageX: e.pageX,\n pageY: e.pageY\n };\n }\n };\n\n var onPointerUp = function onPointerUp(e) {\n if (e.pointerId === state.current.id) {\n var pointerType = e.pointerType || 'mouse';\n end(pointerType);\n state.current.id = null;\n removeGlobalListener(window, 'pointermove', onPointerMove, false);\n removeGlobalListener(window, 'pointerup', onPointerUp, false);\n removeGlobalListener(window, 'pointercancel', onPointerUp, false);\n }\n };\n\n moveProps.onPointerDown = function (e) {\n if (e.button === 0 && state.current.id == null) {\n start();\n e.stopPropagation();\n e.preventDefault();\n state.current.lastPosition = {\n pageX: e.pageX,\n pageY: e.pageY\n };\n state.current.id = e.pointerId;\n addGlobalListener(window, 'pointermove', onPointerMove, false);\n addGlobalListener(window, 'pointerup', onPointerUp, false);\n addGlobalListener(window, 'pointercancel', onPointerUp, false);\n }\n };\n }\n\n var triggerKeyboardMove = function triggerKeyboardMove(deltaX, deltaY) {\n start();\n move('keyboard', deltaX, deltaY);\n end('keyboard');\n };\n\n moveProps.onKeyDown = function (e) {\n switch (e.key) {\n case 'Left':\n case 'ArrowLeft':\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(-1, 0);\n break;\n\n case 'Right':\n case 'ArrowRight':\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(1, 0);\n break;\n\n case 'Up':\n case 'ArrowUp':\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(0, -1);\n break;\n\n case 'Down':\n case 'ArrowDown':\n e.preventDefault();\n e.stopPropagation();\n triggerKeyboardMove(0, 1);\n break;\n }\n };\n\n return moveProps;\n }, [state, onMoveStart, onMove, onMoveEnd, addGlobalListener, removeGlobalListener]);\n return {\n moveProps: moveProps\n };\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isObject;\n\nfunction isObject(value) {\n return value instanceof Object && !Array.isArray(value);\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport Link, {\n withPrefix,\n withAssetPrefix,\n navigate,\n push,\n replace,\n navigateTo,\n parsePath,\n} from \"gatsby-link\"\nimport { useScrollRestoration } from \"gatsby-react-router-scroll\"\nimport PageRenderer from \"./public-page-renderer\"\nimport loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\n\nconst StaticQueryContext = React.createContext({})\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\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n return (\n \n {staticQueryData => (\n \n )}\n \n )\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\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 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\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nfunction graphql() {\n throw new Error(\n `It appears like Gatsby is misconfigured. Gatsby related \\`graphql\\` calls ` +\n `are supposed to only be evaluated at compile time, and then compiled away. ` +\n `Unfortunately, something went wrong and the query was left in the compiled code.\\n\\n` +\n `Unless your site has a complex or custom babel/Gatsby configuration this is likely a bug in Gatsby.`\n )\n}\n\nexport {\n Link,\n withAssetPrefix,\n withPrefix,\n graphql,\n parsePath,\n navigate,\n push, // TODO replace for v3\n replace, // TODO remove replace for v3\n navigateTo, // TODO: remove navigateTo for v3\n useScrollRestoration,\n StaticQueryContext,\n StaticQuery,\n PageRenderer,\n useStaticQuery,\n prefetchPathname,\n}\n","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\"use strict\";\n\nexports[\"default\"] = Compiler;\n\nfunction Compiler(locales, formats, pluralFn) {\n this.locales = locales;\n this.formats = formats;\n this.pluralFn = pluralFn;\n}\n\nCompiler.prototype.compile = function (ast) {\n this.pluralStack = [];\n this.currentPlural = null;\n this.pluralNumberFormat = null;\n return this.compileMessage(ast);\n};\n\nCompiler.prototype.compileMessage = function (ast) {\n if (!(ast && ast.type === 'messageFormatPattern')) {\n throw new Error('Message AST is not of type: \"messageFormatPattern\"');\n }\n\n var elements = ast.elements,\n pattern = [];\n var i, len, element;\n\n for (i = 0, len = elements.length; i < len; i += 1) {\n element = elements[i];\n\n switch (element.type) {\n case 'messageTextElement':\n pattern.push(this.compileMessageText(element));\n break;\n\n case 'argumentElement':\n pattern.push(this.compileArgument(element));\n break;\n\n default:\n throw new Error('Message element does not have a valid type');\n }\n }\n\n return pattern;\n};\n\nCompiler.prototype.compileMessageText = function (element) {\n // When this `element` is part of plural sub-pattern and its value contains\n // an unescaped '#', use a `PluralOffsetString` helper to properly output\n // the number with the correct offset in the string.\n if (this.currentPlural && /(^|[^\\\\])#/g.test(element.value)) {\n // Create a cache a NumberFormat instance that can be reused for any\n // PluralOffsetString instance in this message.\n if (!this.pluralNumberFormat) {\n this.pluralNumberFormat = new Intl.NumberFormat(this.locales);\n }\n\n return new PluralOffsetString(this.currentPlural.id, this.currentPlural.format.offset, this.pluralNumberFormat, element.value);\n } // Unescape the escaped '#'s in the message text.\n\n\n return element.value.replace(/\\\\#/g, '#');\n};\n\nCompiler.prototype.compileArgument = function (element) {\n var format = element.format;\n\n if (!format) {\n return new StringFormat(element.id);\n }\n\n var formats = this.formats,\n locales = this.locales,\n pluralFn = this.pluralFn,\n options;\n\n switch (format.type) {\n case 'numberFormat':\n options = formats.number[format.style];\n return {\n id: element.id,\n format: new Intl.NumberFormat(locales, options).format\n };\n\n case 'dateFormat':\n options = formats.date[format.style];\n return {\n id: element.id,\n format: new Intl.DateTimeFormat(locales, options).format\n };\n\n case 'timeFormat':\n options = formats.time[format.style];\n return {\n id: element.id,\n format: new Intl.DateTimeFormat(locales, options).format\n };\n\n case 'pluralFormat':\n options = this.compileOptions(element);\n return new PluralFormat(element.id, format.ordinal, format.offset, options, pluralFn);\n\n case 'selectFormat':\n options = this.compileOptions(element);\n return new SelectFormat(element.id, options);\n\n default:\n throw new Error('Message element does not have a valid format type');\n }\n};\n\nCompiler.prototype.compileOptions = function (element) {\n var format = element.format,\n options = format.options,\n optionsHash = {}; // Save the current plural element, if any, then set it to a new value when\n // compiling the options sub-patterns. This conforms the spec's algorithm\n // for handling `\"#\"` syntax in message text.\n\n this.pluralStack.push(this.currentPlural);\n this.currentPlural = format.type === 'pluralFormat' ? element : null;\n var i, len, option;\n\n for (i = 0, len = options.length; i < len; i += 1) {\n option = options[i]; // Compile the sub-pattern and save it under the options's selector.\n\n optionsHash[option.selector] = this.compileMessage(option.value);\n } // Pop the plural stack to put back the original current plural value.\n\n\n this.currentPlural = this.pluralStack.pop();\n return optionsHash;\n}; // -- Compiler Helper Classes --------------------------------------------------\n\n\nfunction StringFormat(id) {\n this.id = id;\n}\n\nStringFormat.prototype.format = function (value) {\n if (!value && typeof value !== 'number') {\n return '';\n }\n\n return typeof value === 'string' ? value : String(value);\n};\n\nfunction PluralFormat(id, useOrdinal, offset, options, pluralFn) {\n this.id = id;\n this.useOrdinal = useOrdinal;\n this.offset = offset;\n this.options = options;\n this.pluralFn = pluralFn;\n}\n\nPluralFormat.prototype.getOption = function (value) {\n var options = this.options;\n var option = options['=' + value] || options[this.pluralFn(value - this.offset, this.useOrdinal)];\n return option || options.other;\n};\n\nfunction PluralOffsetString(id, offset, numberFormat, string) {\n this.id = id;\n this.offset = offset;\n this.numberFormat = numberFormat;\n this.string = string;\n}\n\nPluralOffsetString.prototype.format = function (value) {\n var number = this.numberFormat.format(value - this.offset);\n return this.string.replace(/(^|[^\\\\])#/g, '$1' + number).replace(/\\\\#/g, '#');\n};\n\nfunction SelectFormat(id, options) {\n this.id = id;\n this.options = options;\n}\n\nSelectFormat.prototype.getOption = function (value) {\n var options = this.options;\n return options[value] || options.other;\n};","\"use strict\";\n\nmodule.exports = Object.assign;","var _extends = Object.assign || 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; };\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\n/* eslint-disable jsx-a11y/anchor-has-content */\nimport React, { useContext } from \"react\";\nimport PropTypes from \"prop-types\";\nimport invariant from \"invariant\";\nimport createContext from \"create-react-context\";\nimport { polyfill } from \"react-lifecycles-compat\";\nimport { startsWith, pick, resolve, match, insertParams, validateRedirect, shallowCompare } from \"./lib/utils\";\nimport { globalHistory, navigate, createHistory, createMemorySource } from \"./lib/history\";\n\n////////////////////////////////////////////////////////////////////////////////\n\nvar createNamedContext = function createNamedContext(name, defaultValue) {\n var Ctx = createContext(defaultValue);\n Ctx.displayName = name;\n return Ctx;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Location Context/Provider\nvar LocationContext = createNamedContext(\"Location\");\n\n// sets up a listener if there isn't one already so apps don't need to be\n// wrapped in some top level provider\nvar Location = function Location(_ref) {\n var children = _ref.children;\n return React.createElement(\n LocationContext.Consumer,\n null,\n function (context) {\n return context ? children(context) : React.createElement(\n LocationProvider,\n null,\n children\n );\n }\n );\n};\n\nvar LocationProvider = function (_React$Component) {\n _inherits(LocationProvider, _React$Component);\n\n function LocationProvider() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, LocationProvider);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _React$Component.call.apply(_React$Component, [this].concat(args))), _this), _this.state = {\n context: _this.getContext(),\n refs: { unlisten: null }\n }, _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n LocationProvider.prototype.getContext = function getContext() {\n var _props$history = this.props.history,\n navigate = _props$history.navigate,\n location = _props$history.location;\n\n return { navigate: navigate, location: location };\n };\n\n LocationProvider.prototype.componentDidCatch = function componentDidCatch(error, info) {\n if (isRedirect(error)) {\n var _navigate = this.props.history.navigate;\n\n _navigate(error.uri, { replace: true });\n } else {\n throw error;\n }\n };\n\n LocationProvider.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevState.context.location !== this.state.context.location) {\n this.props.history._onTransitionComplete();\n }\n };\n\n LocationProvider.prototype.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n var refs = this.state.refs,\n history = this.props.history;\n\n history._onTransitionComplete();\n refs.unlisten = history.listen(function () {\n Promise.resolve().then(function () {\n // TODO: replace rAF with react deferred update API when it's ready https://github.com/facebook/react/issues/13306\n requestAnimationFrame(function () {\n if (!_this2.unmounted) {\n _this2.setState(function () {\n return { context: _this2.getContext() };\n });\n }\n });\n });\n });\n };\n\n LocationProvider.prototype.componentWillUnmount = function componentWillUnmount() {\n var refs = this.state.refs;\n\n this.unmounted = true;\n refs.unlisten();\n };\n\n LocationProvider.prototype.render = function render() {\n var context = this.state.context,\n children = this.props.children;\n\n return React.createElement(\n LocationContext.Provider,\n { value: context },\n typeof children === \"function\" ? children(context) : children || null\n );\n };\n\n return LocationProvider;\n}(React.Component);\n\n////////////////////////////////////////////////////////////////////////////////\n\n\nLocationProvider.defaultProps = {\n history: globalHistory\n};\nprocess.env.NODE_ENV !== \"production\" ? LocationProvider.propTypes = {\n history: PropTypes.object.isRequired\n} : void 0;\nvar ServerLocation = function ServerLocation(_ref2) {\n var url = _ref2.url,\n children = _ref2.children;\n\n var searchIndex = url.indexOf(\"?\");\n var searchExists = searchIndex > -1;\n var pathname = void 0;\n var search = \"\";\n var hash = \"\";\n\n if (searchExists) {\n pathname = url.substring(0, searchIndex);\n search = url.substring(searchIndex);\n } else {\n pathname = url;\n }\n\n return React.createElement(\n LocationContext.Provider,\n {\n value: {\n location: {\n pathname: pathname,\n search: search,\n hash: hash\n },\n navigate: function navigate() {\n throw new Error(\"You can't call navigate on the server.\");\n }\n }\n },\n children\n );\n};\n////////////////////////////////////////////////////////////////////////////////\n// Sets baseuri and basepath for nested routers and links\nvar BaseContext = createNamedContext(\"Base\", { baseuri: \"/\", basepath: \"/\" });\n\n////////////////////////////////////////////////////////////////////////////////\n// The main event, welcome to the show everybody.\nvar Router = function Router(props) {\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (baseContext) {\n return React.createElement(\n Location,\n null,\n function (locationContext) {\n return React.createElement(RouterImpl, _extends({}, baseContext, locationContext, props));\n }\n );\n }\n );\n};\n\nvar RouterImpl = function (_React$PureComponent) {\n _inherits(RouterImpl, _React$PureComponent);\n\n function RouterImpl() {\n _classCallCheck(this, RouterImpl);\n\n return _possibleConstructorReturn(this, _React$PureComponent.apply(this, arguments));\n }\n\n RouterImpl.prototype.render = function render() {\n var _props = this.props,\n location = _props.location,\n _navigate2 = _props.navigate,\n basepath = _props.basepath,\n primary = _props.primary,\n children = _props.children,\n baseuri = _props.baseuri,\n _props$component = _props.component,\n component = _props$component === undefined ? \"div\" : _props$component,\n domProps = _objectWithoutProperties(_props, [\"location\", \"navigate\", \"basepath\", \"primary\", \"children\", \"baseuri\", \"component\"]);\n\n var routes = React.Children.toArray(children).reduce(function (array, child) {\n var routes = createRoute(basepath)(child);\n return array.concat(routes);\n }, []);\n var pathname = location.pathname;\n\n\n var match = pick(routes, pathname);\n\n if (match) {\n var params = match.params,\n uri = match.uri,\n route = match.route,\n element = match.route.value;\n\n // remove the /* from the end for child routes relative paths\n\n basepath = route.default ? basepath : route.path.replace(/\\*$/, \"\");\n\n var props = _extends({}, params, {\n uri: uri,\n location: location,\n navigate: function navigate(to, options) {\n return _navigate2(resolve(to, uri), options);\n }\n });\n\n var clone = React.cloneElement(element, props, element.props.children ? React.createElement(\n Router,\n { location: location, primary: primary },\n element.props.children\n ) : undefined);\n\n // using 'div' for < 16.3 support\n var FocusWrapper = primary ? FocusHandler : component;\n // don't pass any props to 'div'\n var wrapperProps = primary ? _extends({ uri: uri, location: location, component: component }, domProps) : domProps;\n\n return React.createElement(\n BaseContext.Provider,\n { value: { baseuri: uri, basepath: basepath } },\n React.createElement(\n FocusWrapper,\n wrapperProps,\n clone\n )\n );\n } else {\n // Not sure if we want this, would require index routes at every level\n // warning(\n // false,\n // `\\n\\nNothing matched:\\n\\t${\n // location.pathname\n // }\\n\\nPaths checked: \\n\\t${routes\n // .map(route => route.path)\n // .join(\n // \"\\n\\t\"\n // )}\\n\\nTo get rid of this warning, add a default NotFound component as child of Router:\n // \\n\\tlet NotFound = () =>
Not Found!
\n // \\n\\t\\n\\t \\n\\t {/* ... */}\\n\\t`\n // );\n return null;\n }\n };\n\n return RouterImpl;\n}(React.PureComponent);\n\nRouterImpl.defaultProps = {\n primary: true\n};\n\n\nvar FocusContext = createNamedContext(\"Focus\");\n\nvar FocusHandler = function FocusHandler(_ref3) {\n var uri = _ref3.uri,\n location = _ref3.location,\n component = _ref3.component,\n domProps = _objectWithoutProperties(_ref3, [\"uri\", \"location\", \"component\"]);\n\n return React.createElement(\n FocusContext.Consumer,\n null,\n function (requestFocus) {\n return React.createElement(FocusHandlerImpl, _extends({}, domProps, {\n component: component,\n requestFocus: requestFocus,\n uri: uri,\n location: location\n }));\n }\n );\n};\n\n// don't focus on initial render\nvar initialRender = true;\nvar focusHandlerCount = 0;\n\nvar FocusHandlerImpl = function (_React$Component2) {\n _inherits(FocusHandlerImpl, _React$Component2);\n\n function FocusHandlerImpl() {\n var _temp2, _this4, _ret2;\n\n _classCallCheck(this, FocusHandlerImpl);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this4 = _possibleConstructorReturn(this, _React$Component2.call.apply(_React$Component2, [this].concat(args))), _this4), _this4.state = {}, _this4.requestFocus = function (node) {\n if (!_this4.state.shouldFocus && node) {\n node.focus();\n }\n }, _temp2), _possibleConstructorReturn(_this4, _ret2);\n }\n\n FocusHandlerImpl.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n var initial = prevState.uri == null;\n if (initial) {\n return _extends({\n shouldFocus: true\n }, nextProps);\n } else {\n var myURIChanged = nextProps.uri !== prevState.uri;\n var navigatedUpToMe = prevState.location.pathname !== nextProps.location.pathname && nextProps.location.pathname === nextProps.uri;\n return _extends({\n shouldFocus: myURIChanged || navigatedUpToMe\n }, nextProps);\n }\n };\n\n FocusHandlerImpl.prototype.componentDidMount = function componentDidMount() {\n focusHandlerCount++;\n this.focus();\n };\n\n FocusHandlerImpl.prototype.componentWillUnmount = function componentWillUnmount() {\n focusHandlerCount--;\n if (focusHandlerCount === 0) {\n initialRender = true;\n }\n };\n\n FocusHandlerImpl.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n if (prevProps.location !== this.props.location && this.state.shouldFocus) {\n this.focus();\n }\n };\n\n FocusHandlerImpl.prototype.focus = function focus() {\n if (process.env.NODE_ENV === \"test\") {\n // getting cannot read property focus of null in the tests\n // and that bit of global `initialRender` state causes problems\n // should probably figure it out!\n return;\n }\n\n var requestFocus = this.props.requestFocus;\n\n\n if (requestFocus) {\n requestFocus(this.node);\n } else {\n if (initialRender) {\n initialRender = false;\n } else if (this.node) {\n // React polyfills [autofocus] and it fires earlier than cDM,\n // so we were stealing focus away, this line prevents that.\n if (!this.node.contains(document.activeElement)) {\n this.node.focus();\n }\n }\n }\n };\n\n FocusHandlerImpl.prototype.render = function render() {\n var _this5 = this;\n\n var _props2 = this.props,\n children = _props2.children,\n style = _props2.style,\n requestFocus = _props2.requestFocus,\n _props2$component = _props2.component,\n Comp = _props2$component === undefined ? \"div\" : _props2$component,\n uri = _props2.uri,\n location = _props2.location,\n domProps = _objectWithoutProperties(_props2, [\"children\", \"style\", \"requestFocus\", \"component\", \"uri\", \"location\"]);\n\n return React.createElement(\n Comp,\n _extends({\n style: _extends({ outline: \"none\" }, style),\n tabIndex: \"-1\",\n ref: function ref(n) {\n return _this5.node = n;\n }\n }, domProps),\n React.createElement(\n FocusContext.Provider,\n { value: this.requestFocus },\n this.props.children\n )\n );\n };\n\n return FocusHandlerImpl;\n}(React.Component);\n\npolyfill(FocusHandlerImpl);\n\nvar k = function k() {};\n\n////////////////////////////////////////////////////////////////////////////////\nvar forwardRef = React.forwardRef;\n\nif (typeof forwardRef === \"undefined\") {\n forwardRef = function forwardRef(C) {\n return C;\n };\n}\n\nvar Link = forwardRef(function (_ref4, ref) {\n var innerRef = _ref4.innerRef,\n props = _objectWithoutProperties(_ref4, [\"innerRef\"]);\n\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (_ref5) {\n var basepath = _ref5.basepath,\n baseuri = _ref5.baseuri;\n return React.createElement(\n Location,\n null,\n function (_ref6) {\n var location = _ref6.location,\n navigate = _ref6.navigate;\n\n var to = props.to,\n state = props.state,\n replace = props.replace,\n _props$getProps = props.getProps,\n getProps = _props$getProps === undefined ? k : _props$getProps,\n anchorProps = _objectWithoutProperties(props, [\"to\", \"state\", \"replace\", \"getProps\"]);\n\n var href = resolve(to, baseuri);\n var encodedHref = encodeURI(href);\n var isCurrent = location.pathname === encodedHref;\n var isPartiallyCurrent = startsWith(location.pathname, encodedHref);\n\n return React.createElement(\"a\", _extends({\n ref: ref || innerRef,\n \"aria-current\": isCurrent ? \"page\" : undefined\n }, anchorProps, getProps({ isCurrent: isCurrent, isPartiallyCurrent: isPartiallyCurrent, href: href, location: location }), {\n href: href,\n onClick: function onClick(event) {\n if (anchorProps.onClick) anchorProps.onClick(event);\n if (shouldNavigate(event)) {\n event.preventDefault();\n var shouldReplace = replace;\n if (typeof replace !== \"boolean\" && isCurrent) {\n var _location$state = _extends({}, location.state),\n key = _location$state.key,\n restState = _objectWithoutProperties(_location$state, [\"key\"]);\n\n shouldReplace = shallowCompare(_extends({}, state), restState);\n }\n navigate(href, {\n state: state,\n replace: shouldReplace\n });\n }\n }\n }));\n }\n );\n }\n );\n});\n\nLink.displayName = \"Link\";\n\nprocess.env.NODE_ENV !== \"production\" ? Link.propTypes = {\n to: PropTypes.string.isRequired\n} : void 0;\n\n////////////////////////////////////////////////////////////////////////////////\nfunction RedirectRequest(uri) {\n this.uri = uri;\n}\n\nvar isRedirect = function isRedirect(o) {\n return o instanceof RedirectRequest;\n};\n\nvar redirectTo = function redirectTo(to) {\n throw new RedirectRequest(to);\n};\n\nvar RedirectImpl = function (_React$Component3) {\n _inherits(RedirectImpl, _React$Component3);\n\n function RedirectImpl() {\n _classCallCheck(this, RedirectImpl);\n\n return _possibleConstructorReturn(this, _React$Component3.apply(this, arguments));\n }\n\n // Support React < 16 with this hook\n RedirectImpl.prototype.componentDidMount = function componentDidMount() {\n var _props3 = this.props,\n navigate = _props3.navigate,\n to = _props3.to,\n from = _props3.from,\n _props3$replace = _props3.replace,\n replace = _props3$replace === undefined ? true : _props3$replace,\n state = _props3.state,\n noThrow = _props3.noThrow,\n baseuri = _props3.baseuri,\n props = _objectWithoutProperties(_props3, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n\n Promise.resolve().then(function () {\n var resolvedTo = resolve(to, baseuri);\n navigate(insertParams(resolvedTo, props), { replace: replace, state: state });\n });\n };\n\n RedirectImpl.prototype.render = function render() {\n var _props4 = this.props,\n navigate = _props4.navigate,\n to = _props4.to,\n from = _props4.from,\n replace = _props4.replace,\n state = _props4.state,\n noThrow = _props4.noThrow,\n baseuri = _props4.baseuri,\n props = _objectWithoutProperties(_props4, [\"navigate\", \"to\", \"from\", \"replace\", \"state\", \"noThrow\", \"baseuri\"]);\n\n var resolvedTo = resolve(to, baseuri);\n if (!noThrow) redirectTo(insertParams(resolvedTo, props));\n return null;\n };\n\n return RedirectImpl;\n}(React.Component);\n\nvar Redirect = function Redirect(props) {\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (_ref7) {\n var baseuri = _ref7.baseuri;\n return React.createElement(\n Location,\n null,\n function (locationContext) {\n return React.createElement(RedirectImpl, _extends({}, locationContext, { baseuri: baseuri }, props));\n }\n );\n }\n );\n};\n\nprocess.env.NODE_ENV !== \"production\" ? Redirect.propTypes = {\n from: PropTypes.string,\n to: PropTypes.string.isRequired\n} : void 0;\n\n////////////////////////////////////////////////////////////////////////////////\nvar Match = function Match(_ref8) {\n var path = _ref8.path,\n children = _ref8.children;\n return React.createElement(\n BaseContext.Consumer,\n null,\n function (_ref9) {\n var baseuri = _ref9.baseuri;\n return React.createElement(\n Location,\n null,\n function (_ref10) {\n var navigate = _ref10.navigate,\n location = _ref10.location;\n\n var resolvedPath = resolve(path, baseuri);\n var result = match(resolvedPath, location.pathname);\n return children({\n navigate: navigate,\n location: location,\n match: result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null\n });\n }\n );\n }\n );\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Hooks\n\nvar useLocation = function useLocation() {\n var context = useContext(LocationContext);\n\n if (!context) {\n throw new Error(\"useLocation hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n return context.location;\n};\n\nvar useNavigate = function useNavigate() {\n var context = useContext(LocationContext);\n\n if (!context) {\n throw new Error(\"useNavigate hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n return context.navigate;\n};\n\nvar useParams = function useParams() {\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useParams hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n var location = useLocation();\n\n var results = match(context.basepath, location.pathname);\n\n return results ? results.params : null;\n};\n\nvar useMatch = function useMatch(path) {\n if (!path) {\n throw new Error(\"useMatch(path: string) requires an argument of a string to match against\");\n }\n var context = useContext(BaseContext);\n\n if (!context) {\n throw new Error(\"useMatch hook was used but a LocationContext.Provider was not found in the parent tree. Make sure this is used in a component that is a child of Router\");\n }\n\n var location = useLocation();\n\n var resolvedPath = resolve(path, context.baseuri);\n var result = match(resolvedPath, location.pathname);\n return result ? _extends({}, result.params, {\n uri: result.uri,\n path: path\n }) : null;\n};\n\n////////////////////////////////////////////////////////////////////////////////\n// Junk\nvar stripSlashes = function stripSlashes(str) {\n return str.replace(/(^\\/+|\\/+$)/g, \"\");\n};\n\nvar createRoute = function createRoute(basepath) {\n return function (element) {\n if (!element) {\n return null;\n }\n\n if (element.type === React.Fragment && element.props.children) {\n return React.Children.map(element.props.children, createRoute(basepath));\n }\n !(element.props.path || element.props.default || element.type === Redirect) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \": Children of must have a `path` or `default` prop, or be a ``. None found on element type `\" + element.type + \"`\") : invariant(false) : void 0;\n\n !!(element.type === Redirect && (!element.props.from || !element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" requires both \\\"from\\\" and \\\"to\\\" props when inside a .\") : invariant(false) : void 0;\n\n !!(element.type === Redirect && !validateRedirect(element.props.from, element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \" has mismatched dynamic segments, ensure both paths have the exact same dynamic segments.\") : invariant(false) : void 0;\n\n if (element.props.default) {\n return { value: element, default: true };\n }\n\n var elementPath = element.type === Redirect ? element.props.from : element.props.path;\n\n var path = elementPath === \"/\" ? basepath : stripSlashes(basepath) + \"/\" + stripSlashes(elementPath);\n\n return {\n value: element,\n default: element.props.default,\n path: element.props.children ? stripSlashes(path) + \"/*\" : path\n };\n };\n};\n\nvar shouldNavigate = function shouldNavigate(event) {\n return !event.defaultPrevented && event.button === 0 && !(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n};\n\n////////////////////////////////////////////////////////////////////////\nexport { Link, Location, LocationProvider, Match, Redirect, Router, ServerLocation, createHistory, createMemorySource, isRedirect, navigate, redirectTo, globalHistory, match as matchPath, useLocation, useNavigate, useParams, useMatch , BaseContext };","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = sizing;\nvar prefixes = ['-webkit-', '-moz-', ''];\nvar properties = {\n maxHeight: true,\n maxWidth: true,\n width: true,\n height: true,\n columnWidth: true,\n minWidth: true,\n minHeight: true\n};\nvar values = {\n 'min-content': true,\n 'max-content': true,\n 'fill-available': true,\n 'fit-content': true,\n 'contain-floats': true\n};\n\nfunction sizing(property, value) {\n if (properties.hasOwnProperty(property) && values.hasOwnProperty(value)) {\n return prefixes.map(function (prefix) {\n return prefix + value;\n });\n }\n}","'use strict';\n\nexports = module.exports = require('./lib/parser')['default'];\nexports['default'] = exports;","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var _typeof = require(\"@babel/runtime/helpers/typeof\");\n\nvar assertThisInitialized = require(\"./assertThisInitialized\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\"use strict\";\n\nvar src$utils$$ = require(\"./utils\"); // Purposely using the same implementation as the Intl.js `Intl` polyfill.\n// Copyright 2013 Andy Earnshaw, MIT License\n\n\nvar realDefineProp = function () {\n try {\n return !!Object.defineProperty({}, 'a', {});\n } catch (e) {\n return false;\n }\n}();\n\nvar es3 = !realDefineProp && !Object.prototype.__defineGetter__;\nvar defineProperty = realDefineProp ? Object.defineProperty : function (obj, name, desc) {\n if ('get' in desc && obj.__defineGetter__) {\n obj.__defineGetter__(name, desc.get);\n } else if (!src$utils$$.hop.call(obj, name) || 'value' in desc) {\n obj[name] = desc.value;\n }\n};\n\nvar objCreate = Object.create || function (proto, props) {\n var obj, k;\n\n function F() {}\n\n F.prototype = proto;\n obj = new F();\n\n for (k in props) {\n if (src$utils$$.hop.call(props, k)) {\n defineProperty(obj, k, props[k]);\n }\n }\n\n return obj;\n};\n\nexports.defineProperty = defineProperty, exports.objCreate = objCreate;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = filter;\n\nvar _isPrefixedValue = require('css-in-js-utils/lib/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n} // http://caniuse.com/#feat=css-filter-function\n\n\nvar prefixes = ['-webkit-', ''];\n\nfunction filter(property, value) {\n if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.indexOf('filter(') > -1) {\n return prefixes.map(function (prefix) {\n return value.replace(/filter\\(/g, prefix + 'filter(');\n });\n }\n}","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = prefixProperty;\n\nvar _capitalizeString = require('./capitalizeString');\n\nvar _capitalizeString2 = _interopRequireDefault(_capitalizeString);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction prefixProperty(prefixProperties, property, style) {\n if (prefixProperties.hasOwnProperty(property)) {\n var newStyle = {};\n var requiredPrefixes = prefixProperties[property];\n var capitalizedProperty = (0, _capitalizeString2.default)(property);\n var keys = Object.keys(style);\n\n for (var i = 0; i < keys.length; i++) {\n var styleProperty = keys[i];\n\n if (styleProperty === property) {\n for (var j = 0; j < requiredPrefixes.length; j++) {\n newStyle[requiredPrefixes[j] + capitalizedProperty] = style[property];\n }\n }\n\n newStyle[styleProperty] = style[styleProperty];\n }\n\n return newStyle;\n }\n\n return style;\n}","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","/**\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","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","import ReactNativePropRegistry from \"../../modules/ReactNativePropRegistry\";\nimport flattenStyle from \"./flattenStyle\";\nvar absoluteFillObject = {\n position: 'absolute',\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n};\nvar absoluteFill = ReactNativePropRegistry.register(absoluteFillObject);\nvar StyleSheet = {\n absoluteFill: absoluteFill,\n absoluteFillObject: absoluteFillObject,\n compose: function compose(style1, style2) {\n if (process.env.NODE_ENV !== 'production') {\n var len = arguments.length;\n\n if (len > 2) {\n var readableStyles = Array.prototype.slice.call(arguments).map(function (a) {\n return flattenStyle(a);\n });\n throw new Error(\"StyleSheet.compose() only accepts 2 arguments, received \" + len + \": \" + JSON.stringify(readableStyles));\n }\n }\n\n if (style1 && style2) {\n return [style1, style2];\n } else {\n return style1 || style2;\n }\n },\n create: function create(styles) {\n var result = {};\n Object.keys(styles).forEach(function (key) {\n if (process.env.NODE_ENV !== 'production') {\n var validate = require(\"./validate\");\n\n var interopValidate = validate.default ? validate.default : validate;\n interopValidate(key, styles);\n }\n\n var id = styles[key] && ReactNativePropRegistry.register(styles[key]);\n result[key] = id;\n });\n return result;\n },\n flatten: flattenStyle,\n hairlineWidth: 1\n};\nexport default StyleSheet;","import { canUseDOM } from 'fbjs/lib/ExecutionEnvironment';\nimport StyleSheet from \"./StyleSheet\";\n\nif (canUseDOM && window.__REACT_DEVTOOLS_GLOBAL_HOOK__) {\n window.__REACT_DEVTOOLS_GLOBAL_HOOK__.resolveRNStyle = StyleSheet.flatten;\n}\n\nexport default StyleSheet;","\"use strict\";\n\nexports.__esModule = true;\nexports.parsePath = parsePath;\n\nfunction parsePath(path) {\n var pathname = path || \"/\";\n var search = \"\";\n var hash = \"\";\n var hashIndex = pathname.indexOf(\"#\");\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf(\"?\");\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === \"?\" ? \"\" : search,\n hash: hash === \"#\" ? \"\" : hash\n };\n}","\"use strict\";\n\nexports.registerServiceWorker = function () {\n return true;\n}; // only cache relevant resources for this page\n\n\nvar whiteListLinkRels = /^(stylesheet|preload)$/;\nvar prefetchedPathnames = [];\n\nexports.onServiceWorkerActive = function (_ref) {\n var getResourceURLsForPathname = _ref.getResourceURLsForPathname,\n serviceWorker = _ref.serviceWorker;\n\n // if the SW has just updated then clear the path dependencies and don't cache\n // stuff, since we're on the old revision until we navigate to another page\n if (window.___swUpdated) {\n serviceWorker.active.postMessage({\n gatsbyApi: \"clearPathResources\"\n });\n return;\n } // grab nodes from head of document\n\n\n var nodes = document.querySelectorAll(\"\\n head > script[src],\\n head > link[href],\\n head > style[data-href]\\n \"); // get all resource URLs\n\n var headerResources = [].slice.call(nodes) // don't include preconnect/prefetch/prerender resources\n .filter(function (node) {\n return node.tagName !== \"LINK\" || whiteListLinkRels.test(node.getAttribute(\"rel\"));\n }).map(function (node) {\n return node.src || node.href || node.getAttribute(\"data-href\");\n }); // Loop over prefetched pages and add their resources to an array,\n // plus specify which resources are required for those paths.\n\n var prefetchedResources = [];\n prefetchedPathnames.forEach(function (path) {\n var resources = getResourceURLsForPathname(path);\n prefetchedResources.push.apply(prefetchedResources, resources);\n serviceWorker.active.postMessage({\n gatsbyApi: \"setPathResources\",\n path: path,\n resources: resources\n });\n }); // Loop over all resources and fetch the page component + JSON data\n // to add it to the SW cache.\n\n var resources = [].concat(headerResources, prefetchedResources);\n resources.forEach(function (resource) {\n // Create a prefetch link for each resource, so Workbox runtime-caches them\n var link = document.createElement(\"link\");\n link.rel = \"prefetch\";\n link.href = resource;\n link.onload = link.remove;\n link.onerror = link.remove;\n document.head.appendChild(link);\n });\n};\n\nfunction setPathResources(path, getResourceURLsForPathname) {\n // do nothing if the SW has just updated, since we still have old pages in\n // memory which we don't want to be whitelisted\n if (window.___swUpdated) return;\n\n if (\"serviceWorker\" in navigator) {\n var _navigator = navigator,\n serviceWorker = _navigator.serviceWorker;\n\n if (serviceWorker.controller === null) {\n // if SW is not installed, we need to record any prefetches\n // that happen so we can then add them to SW cache once installed\n prefetchedPathnames.push(path);\n } else {\n var resources = getResourceURLsForPathname(path);\n serviceWorker.controller.postMessage({\n gatsbyApi: \"setPathResources\",\n path: path,\n resources: resources\n });\n }\n }\n}\n\nexports.onRouteUpdate = function (_ref2) {\n var location = _ref2.location,\n getResourceURLsForPathname = _ref2.getResourceURLsForPathname;\n var pathname = location.pathname.replace(__BASE_PATH__, \"\");\n setPathResources(pathname, getResourceURLsForPathname);\n\n if (\"serviceWorker\" in navigator && navigator.serviceWorker.controller !== null) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: \"enableOfflineShell\"\n });\n }\n};\n\nexports.onPostPrefetchPathname = function (_ref3) {\n var pathname = _ref3.pathname,\n getResourceURLsForPathname = _ref3.getResourceURLsForPathname;\n setPathResources(pathname, getResourceURLsForPathname);\n};","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nimport AccessibilityUtil from \"../AccessibilityUtil\";\nimport css from \"../../exports/StyleSheet/css\";\nimport StyleSheet from \"../../exports/StyleSheet\";\nimport styleResolver from \"../../exports/StyleSheet/styleResolver\";\nimport { STYLE_GROUPS } from \"../../exports/StyleSheet/constants\";\nvar emptyObject = {};\nvar classes = css.create({\n reset: {\n backgroundColor: 'transparent',\n color: 'inherit',\n font: 'inherit',\n listStyle: 'none',\n margin: 0,\n textAlign: 'inherit',\n textDecoration: 'none'\n },\n cursor: {\n cursor: 'pointer'\n }\n}, STYLE_GROUPS.classicReset);\nvar pointerEventsStyles = StyleSheet.create({\n auto: {\n pointerEvents: 'auto'\n },\n 'box-none': {\n pointerEvents: 'box-none'\n },\n 'box-only': {\n pointerEvents: 'box-only'\n },\n none: {\n pointerEvents: 'none'\n }\n});\n\nvar defaultStyleResolver = function defaultStyleResolver(style, classList) {\n return styleResolver.resolve(style, classList);\n};\n\nvar createDOMProps = function createDOMProps(component, props, styleResolver) {\n if (!styleResolver) {\n styleResolver = defaultStyleResolver;\n }\n\n if (!props) {\n props = emptyObject;\n }\n\n var _props = props,\n accessibilityLabel = _props.accessibilityLabel,\n accessibilityLiveRegion = _props.accessibilityLiveRegion,\n accessibilityStates = _props.accessibilityStates,\n classList = _props.classList,\n deprecatedClassName = _props.className,\n importantForAccessibility = _props.importantForAccessibility,\n nativeID = _props.nativeID,\n placeholderTextColor = _props.placeholderTextColor,\n pointerEvents = _props.pointerEvents,\n providedStyle = _props.style,\n testID = _props.testID,\n accessible = _props.accessible,\n accessibilityComponentType = _props.accessibilityComponentType,\n accessibilityRole = _props.accessibilityRole,\n accessibilityTraits = _props.accessibilityTraits,\n domProps = _objectWithoutPropertiesLoose(_props, [\"accessibilityLabel\", \"accessibilityLiveRegion\", \"accessibilityStates\", \"classList\", \"className\", \"importantForAccessibility\", \"nativeID\", \"placeholderTextColor\", \"pointerEvents\", \"style\", \"testID\", \"accessible\", \"accessibilityComponentType\", \"accessibilityRole\", \"accessibilityTraits\"]);\n\n var disabled = AccessibilityUtil.isDisabled(props);\n var role = AccessibilityUtil.propsToAriaRole(props);\n\n if (importantForAccessibility === 'no-hide-descendants') {\n domProps['aria-hidden'] = true;\n }\n\n if (accessibilityLabel && accessibilityLabel.constructor === String) {\n domProps['aria-label'] = accessibilityLabel;\n }\n\n if (accessibilityLiveRegion && accessibilityLiveRegion.constructor === String) {\n domProps['aria-live'] = accessibilityLiveRegion === 'none' ? 'off' : accessibilityLiveRegion;\n }\n\n if (Array.isArray(accessibilityStates)) {\n for (var i = 0; i < accessibilityStates.length; i += 1) {\n domProps[\"aria-\" + accessibilityStates[i]] = true;\n }\n }\n\n if (role && role.constructor === String) {\n domProps.role = role;\n }\n\n if (disabled) {\n domProps['aria-disabled'] = disabled;\n domProps.disabled = disabled;\n }\n\n var focusable = !disabled && importantForAccessibility !== 'no' && importantForAccessibility !== 'no-hide-descendants';\n\n if (role === 'link' || component === 'a' || component === 'button' || component === 'input' || component === 'select' || component === 'textarea') {\n if (accessible === false || !focusable) {\n domProps.tabIndex = '-1';\n } else {\n domProps['data-focusable'] = true;\n }\n } else if (AccessibilityUtil.buttonLikeRoles[role] || role === 'textbox') {\n if (accessible !== false && focusable) {\n domProps['data-focusable'] = true;\n domProps.tabIndex = '0';\n }\n } else {\n if (accessible === true && focusable) {\n domProps['data-focusable'] = true;\n domProps.tabIndex = '0';\n }\n }\n\n var reactNativeStyle = StyleSheet.compose(pointerEvents && pointerEventsStyles[pointerEvents], StyleSheet.compose(providedStyle, placeholderTextColor && {\n placeholderTextColor: placeholderTextColor\n }));\n var needsCursor = (role === 'button' || role === 'link') && !disabled;\n var needsReset = component === 'a' || component === 'button' || component === 'li' || component === 'ul' || role === 'heading';\n var finalClassList = [deprecatedClassName, needsReset && classes.reset, needsCursor && classes.cursor, classList];\n\n var _styleResolver = styleResolver(reactNativeStyle, finalClassList),\n className = _styleResolver.className,\n style = _styleResolver.style;\n\n if (className != null && className !== '') {\n domProps.className = className;\n }\n\n if (style) {\n domProps.style = style;\n }\n\n if (nativeID && nativeID.constructor === String) {\n domProps.id = nativeID;\n }\n\n if (component === 'a' && domProps.target === '_blank') {\n domProps.rel = (domProps.rel || '') + \" noopener noreferrer\";\n }\n\n if (testID && testID.constructor === String) {\n domProps['data-testid'] = testID;\n }\n\n return domProps;\n};\n\nexport default createDOMProps;","const support = function (feature) {\n if (typeof document === `undefined`) {\n return false\n }\n const fakeLink = document.createElement(`link`)\n try {\n if (fakeLink.relList && typeof fakeLink.relList.supports === `function`) {\n return fakeLink.relList.supports(feature)\n }\n } catch (err) {\n return false\n }\n return false\n}\n\nconst linkPrefetchStrategy = function (url, options) {\n return new Promise((resolve, reject) => {\n if (typeof document === `undefined`) {\n reject()\n return\n }\n\n const link = document.createElement(`link`)\n link.setAttribute(`rel`, `prefetch`)\n link.setAttribute(`href`, url)\n\n Object.keys(options).forEach(key => {\n link.setAttribute(key, options[key])\n })\n\n link.onload = resolve\n link.onerror = reject\n\n const parentElement =\n document.getElementsByTagName(`head`)[0] ||\n document.getElementsByName(`script`)[0].parentNode\n parentElement.appendChild(link)\n })\n}\n\nconst xhrPrefetchStrategy = function (url) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(`GET`, url, true)\n\n req.onload = () => {\n if (req.status === 200) {\n resolve()\n } else {\n reject()\n }\n }\n\n req.send(null)\n })\n}\n\nconst supportedPrefetchStrategy = support(`prefetch`)\n ? linkPrefetchStrategy\n : xhrPrefetchStrategy\n\nconst preFetched = {}\n\nconst prefetch = function (url, options) {\n return new Promise(resolve => {\n if (preFetched[url]) {\n resolve()\n return\n }\n\n supportedPrefetchStrategy(url, options)\n .then(() => {\n resolve()\n preFetched[url] = true\n })\n .catch(() => {}) // 404s are logged to the console anyway\n })\n}\n\nexport default prefetch\n","import prefetchHelper from \"./prefetch\"\nimport emitter from \"./emitter\"\nimport { setMatchPaths, findPath, findMatchPath } from \"./find-path\"\n\n/**\n * Available resource loading statuses\n */\nexport const PageResourceStatus = {\n /**\n * At least one of critical resources failed to load\n */\n Error: `error`,\n /**\n * Resources loaded successfully\n */\n Success: `success`,\n}\n\nconst preferDefault = m => (m && m.default) || m\n\nconst stripSurroundingSlashes = s => {\n s = s[0] === `/` ? s.slice(1) : s\n s = s.endsWith(`/`) ? s.slice(0, -1) : s\n return s\n}\n\nconst createPageDataUrl = path => {\n const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json`\n}\n\nfunction doFetch(url, method = `GET`) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest()\n req.open(method, url, true)\n req.onreadystatechange = () => {\n if (req.readyState == 4) {\n resolve(req)\n }\n }\n req.send(null)\n })\n}\n\nconst doesConnectionSupportPrefetch = () => {\n if (\n `connection` in navigator &&\n typeof navigator.connection !== `undefined`\n ) {\n if ((navigator.connection.effectiveType || ``).includes(`2g`)) {\n return false\n }\n if (navigator.connection.saveData) {\n return false\n }\n }\n return true\n}\n\nconst toPageResources = (pageData, component = null) => {\n const page = {\n componentChunkName: pageData.componentChunkName,\n path: pageData.path,\n webpackCompilationHash: pageData.webpackCompilationHash,\n matchPath: pageData.matchPath,\n staticQueryHashes: pageData.staticQueryHashes,\n }\n\n return {\n component,\n json: pageData.result,\n page,\n }\n}\n\nexport class BaseLoader {\n constructor(loadComponent, matchPaths) {\n // Map of pagePath -> Page. Where Page is an object with: {\n // status: PageResourceStatus.Success || PageResourceStatus.Error,\n // payload: PageResources, // undefined if PageResourceStatus.Error\n // }\n // PageResources is {\n // component,\n // json: pageData.result,\n // page: {\n // componentChunkName,\n // path,\n // webpackCompilationHash,\n // staticQueryHashes\n // },\n // staticQueryResults\n // }\n this.pageDb = new Map()\n this.inFlightDb = new Map()\n this.staticQueryDb = {}\n this.pageDataDb = new Map()\n this.prefetchTriggered = new Set()\n this.prefetchCompleted = new Set()\n this.loadComponent = loadComponent\n setMatchPaths(matchPaths)\n }\n\n inFlightNetworkRequests = new Map()\n\n memoizedGet(url) {\n let inFlightPromise = this.inFlightNetworkRequests.get(url)\n\n if (!inFlightPromise) {\n inFlightPromise = doFetch(url, `GET`)\n this.inFlightNetworkRequests.set(url, inFlightPromise)\n }\n\n // Prefer duplication with then + catch over .finally to prevent problems in ie11 + firefox\n return inFlightPromise\n .then(response => {\n this.inFlightNetworkRequests.delete(url)\n return response\n })\n .catch(err => {\n this.inFlightNetworkRequests.delete(url)\n throw err\n })\n }\n\n setApiRunner(apiRunner) {\n this.apiRunner = apiRunner\n this.prefetchDisabled = apiRunner(`disableCorePrefetching`).some(a => a)\n }\n\n fetchPageDataJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.path === undefined) {\n throw new Error(`not a valid pageData response`)\n }\n\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: jsonPayload,\n })\n } catch (err) {\n // continue regardless of error\n }\n }\n\n // Handle 404\n if (status === 404 || status === 200) {\n // If the request was for a 404 page and it doesn't exist, we're done\n if (pagePath === `/404.html`) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Need some code here to cache the 404 request. In case\n // multiple loadPageDataJsons result in 404s\n return this.fetchPageDataJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n }\n\n // Handle everything else, including status === 0, and 503s. Should retry\n if (retries < 3) {\n return this.fetchPageDataJson(\n Object.assign(loadObj, { retries: retries + 1 })\n )\n }\n\n // Retried 3 times already, result is an error.\n return Object.assign(loadObj, {\n status: PageResourceStatus.Error,\n })\n })\n }\n\n loadPageDataJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDataDb.has(pagePath)) {\n const pageData = this.pageDataDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPageDataJson({ pagePath }).then(pageData => {\n this.pageDataDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n findMatchPath(rawPath) {\n return findMatchPath(rawPath)\n }\n\n // TODO check all uses of this and whether they use undefined for page resources not exist\n loadPage(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const page = this.pageDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !page.payload.stale) {\n return Promise.resolve(page.payload)\n }\n }\n\n if (this.inFlightDb.has(pagePath)) {\n return this.inFlightDb.get(pagePath)\n }\n\n const inFlightPromise = Promise.all([\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ]).then(allData => {\n const result = allData[1]\n if (result.status === PageResourceStatus.Error) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n let pageData = result.payload\n const { componentChunkName, staticQueryHashes = [] } = pageData\n\n const finalResult = {}\n\n const componentChunkPromise = this.loadComponent(componentChunkName).then(\n component => {\n finalResult.createdAt = new Date()\n let pageResources\n if (!component) {\n finalResult.status = PageResourceStatus.Error\n } else {\n finalResult.status = PageResourceStatus.Success\n if (result.notFound === true) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: allData[0]\n ? allData[0].webpackCompilationHash\n : ``,\n })\n pageResources = toPageResources(pageData, component)\n }\n // undefined if final result is an error\n return pageResources\n }\n )\n\n const staticQueryBatchPromise = Promise.all(\n staticQueryHashes.map(staticQueryHash => {\n // Check for cache in case this static query result has already been loaded\n if (this.staticQueryDb[staticQueryHash]) {\n const jsonPayload = this.staticQueryDb[staticQueryHash]\n return { staticQueryHash, jsonPayload }\n }\n\n return this.memoizedGet(\n `${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json`\n ).then(req => {\n const jsonPayload = JSON.parse(req.responseText)\n return { staticQueryHash, jsonPayload }\n })\n })\n ).then(staticQueryResults => {\n const staticQueryResultsMap = {}\n\n staticQueryResults.forEach(({ staticQueryHash, jsonPayload }) => {\n staticQueryResultsMap[staticQueryHash] = jsonPayload\n this.staticQueryDb[staticQueryHash] = jsonPayload\n })\n\n return staticQueryResultsMap\n })\n\n return Promise.all([componentChunkPromise, staticQueryBatchPromise]).then(\n ([pageResources, staticQueryResults]) => {\n let payload\n if (pageResources) {\n payload = { ...pageResources, staticQueryResults }\n finalResult.payload = payload\n emitter.emit(`onPostLoadPageResources`, {\n page: payload,\n pageResources: payload,\n })\n }\n\n this.pageDb.set(pagePath, finalResult)\n\n return payload\n }\n )\n })\n\n inFlightPromise\n .then(response => {\n this.inFlightDb.delete(pagePath)\n })\n .catch(error => {\n this.inFlightDb.delete(pagePath)\n throw error\n })\n\n this.inFlightDb.set(pagePath, inFlightPromise)\n\n return inFlightPromise\n }\n\n // returns undefined if loading page ran into errors\n loadPageSync(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const pageData = this.pageDb.get(pagePath).payload\n return pageData\n }\n return undefined\n }\n\n shouldPrefetch(pagePath) {\n // Skip prefetching if we know user is on slow or constrained connection\n if (!doesConnectionSupportPrefetch()) {\n return false\n }\n\n // Check if the page exists.\n if (this.pageDb.has(pagePath)) {\n return false\n }\n\n return true\n }\n\n prefetch(pagePath) {\n if (!this.shouldPrefetch(pagePath)) {\n return false\n }\n\n // Tell plugins with custom prefetching logic that they should start\n // prefetching this path.\n if (!this.prefetchTriggered.has(pagePath)) {\n this.apiRunner(`onPrefetchPathname`, { pathname: pagePath })\n this.prefetchTriggered.add(pagePath)\n }\n\n // If a plugin has disabled core prefetching, stop now.\n if (this.prefetchDisabled) {\n return false\n }\n\n const realPath = findPath(pagePath)\n // Todo make doPrefetch logic cacheable\n // eslint-disable-next-line consistent-return\n this.doPrefetch(realPath).then(() => {\n if (!this.prefetchCompleted.has(pagePath)) {\n this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath })\n this.prefetchCompleted.add(pagePath)\n }\n })\n\n return true\n }\n\n doPrefetch(pagePath) {\n const pageDataUrl = createPageDataUrl(pagePath)\n return prefetchHelper(pageDataUrl, {\n crossOrigin: `anonymous`,\n as: `fetch`,\n }).then(() =>\n // This was just prefetched, so will return a response from\n // the cache instead of making another request to the server\n this.loadPageDataJson(pagePath)\n )\n }\n\n hovering(rawPath) {\n this.loadPage(rawPath)\n }\n\n getResourceURLsForPathname(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDataDb.get(pagePath)\n if (page) {\n const pageResources = toPageResources(page.payload)\n\n return [\n ...createComponentUrls(pageResources.page.componentChunkName),\n createPageDataUrl(pagePath),\n ]\n } else {\n return null\n }\n }\n\n isPageNotFound(rawPath) {\n const pagePath = findPath(rawPath)\n const page = this.pageDb.get(pagePath)\n return !page || page.notFound\n }\n\n loadAppData(retries = 0) {\n return this.memoizedGet(`${__PATH_PREFIX__}/page-data/app-data.json`).then(\n req => {\n const { status, responseText } = req\n\n let appData\n\n if (status !== 200 && retries < 3) {\n // Retry 3 times incase of non-200 responses\n return this.loadAppData(retries + 1)\n }\n\n // Handle 200\n if (status === 200) {\n try {\n const jsonPayload = JSON.parse(responseText)\n if (jsonPayload.webpackCompilationHash === undefined) {\n throw new Error(`not a valid app-data response`)\n }\n\n appData = jsonPayload\n } catch (err) {\n // continue regardless of error\n }\n }\n\n return appData\n }\n )\n }\n}\n\nconst createComponentUrls = componentChunkName =>\n (window.___chunkMapping[componentChunkName] || []).map(\n chunk => __PATH_PREFIX__ + chunk\n )\n\nexport class ProdLoader extends BaseLoader {\n constructor(asyncRequires, matchPaths) {\n const loadComponent = chunkName =>\n asyncRequires.components[chunkName]\n ? asyncRequires.components[chunkName]()\n .then(preferDefault)\n // loader will handle the case when component is null\n .catch(() => null)\n : Promise.resolve()\n\n super(loadComponent, matchPaths)\n }\n\n doPrefetch(pagePath) {\n return super.doPrefetch(pagePath).then(result => {\n if (result.status !== PageResourceStatus.Success) {\n return Promise.resolve()\n }\n const pageData = result.payload\n const chunkName = pageData.componentChunkName\n const componentUrls = createComponentUrls(chunkName)\n return Promise.all(componentUrls.map(prefetchHelper)).then(() => pageData)\n })\n }\n\n loadPageDataJson(rawPath) {\n return super.loadPageDataJson(rawPath).then(data => {\n if (data.notFound) {\n // check if html file exist using HEAD request:\n // if it does we should navigate to it instead of showing 404\n return doFetch(rawPath, `HEAD`).then(req => {\n if (req.status === 200) {\n // page (.html file) actually exist (or we asked for 404 )\n // returning page resources status as errored to trigger\n // regular browser navigation to given page\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n // if HEAD request wasn't 200, return notFound result\n // and show 404 page\n return data\n })\n }\n return data\n })\n }\n}\n\nlet instance\n\nexport const setLoader = _loader => {\n instance = _loader\n}\n\nexport const publicLoader = {\n // Deprecated methods. As far as we're aware, these are only used by\n // core gatsby and the offline plugin, however there's a very small\n // chance they're called by others.\n getResourcesForPathname: rawPath => {\n console.warn(\n `Warning: getResourcesForPathname is deprecated. Use loadPage instead`\n )\n return instance.i.loadPage(rawPath)\n },\n getResourcesForPathnameSync: rawPath => {\n console.warn(\n `Warning: getResourcesForPathnameSync is deprecated. Use loadPageSync instead`\n )\n return instance.i.loadPageSync(rawPath)\n },\n enqueue: rawPath => instance.prefetch(rawPath),\n\n // Real methods\n getResourceURLsForPathname: rawPath =>\n instance.getResourceURLsForPathname(rawPath),\n loadPage: rawPath => instance.loadPage(rawPath),\n loadPageSync: rawPath => instance.loadPageSync(rawPath),\n prefetch: rawPath => instance.prefetch(rawPath),\n isPageNotFound: rawPath => instance.isPageNotFound(rawPath),\n hovering: rawPath => instance.hovering(rawPath),\n loadAppData: () => instance.loadAppData(),\n}\n\nexport default publicLoader\n\nexport function getStaticQueryResults() {\n if (instance) {\n return instance.staticQueryDb\n } else {\n return {}\n }\n}\n","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\n\n/* jslint esnext: true */\n\"use strict\";\n\nvar src$utils$$ = require(\"./utils\"),\n src$es5$$ = require(\"./es5\"),\n src$compiler$$ = require(\"./compiler\"),\n intl$messageformat$parser$$ = require(\"intl-messageformat-parser\");\n\nexports[\"default\"] = MessageFormat; // -- MessageFormat --------------------------------------------------------\n\nfunction MessageFormat(message, locales, formats) {\n // Parse string messages into an AST.\n var ast = typeof message === 'string' ? MessageFormat.__parse(message) : message;\n\n if (!(ast && ast.type === 'messageFormatPattern')) {\n throw new TypeError('A message must be provided as a String or AST.');\n } // Creates a new object with the specified `formats` merged with the default\n // formats.\n\n\n formats = this._mergeFormats(MessageFormat.formats, formats); // Defined first because it's used to build the format pattern.\n\n src$es5$$.defineProperty(this, '_locale', {\n value: this._resolveLocale(locales)\n }); // Compile the `ast` to a pattern that is highly optimized for repeated\n // `format()` invocations. **Note:** This passes the `locales` set provided\n // to the constructor instead of just the resolved locale.\n\n var pluralFn = this._findPluralRuleFunction(this._locale);\n\n var pattern = this._compilePattern(ast, locales, formats, pluralFn); // \"Bind\" `format()` method to `this` so it can be passed by reference like\n // the other `Intl` APIs.\n\n\n var messageFormat = this;\n\n this.format = function (values) {\n try {\n return messageFormat._format(pattern, values);\n } catch (e) {\n if (e.variableId) {\n throw new Error('The intl string context variable \\'' + e.variableId + '\\'' + ' was not provided to the string \\'' + message + '\\'');\n } else {\n throw e;\n }\n }\n };\n} // Default format options used as the prototype of the `formats` provided to the\n// constructor. These are used when constructing the internal Intl.NumberFormat\n// and Intl.DateTimeFormat instances.\n\n\nsrc$es5$$.defineProperty(MessageFormat, 'formats', {\n enumerable: true,\n value: {\n number: {\n 'currency': {\n style: 'currency'\n },\n 'percent': {\n style: 'percent'\n }\n },\n date: {\n 'short': {\n month: 'numeric',\n day: 'numeric',\n year: '2-digit'\n },\n 'medium': {\n month: 'short',\n day: 'numeric',\n year: 'numeric'\n },\n 'long': {\n month: 'long',\n day: 'numeric',\n year: 'numeric'\n },\n 'full': {\n weekday: 'long',\n month: 'long',\n day: 'numeric',\n year: 'numeric'\n }\n },\n time: {\n 'short': {\n hour: 'numeric',\n minute: 'numeric'\n },\n 'medium': {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric'\n },\n 'long': {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short'\n },\n 'full': {\n hour: 'numeric',\n minute: 'numeric',\n second: 'numeric',\n timeZoneName: 'short'\n }\n }\n }\n}); // Define internal private properties for dealing with locale data.\n\nsrc$es5$$.defineProperty(MessageFormat, '__localeData__', {\n value: src$es5$$.objCreate(null)\n});\nsrc$es5$$.defineProperty(MessageFormat, '__addLocaleData', {\n value: function value(data) {\n if (!(data && data.locale)) {\n throw new Error('Locale data provided to IntlMessageFormat is missing a ' + '`locale` property');\n }\n\n MessageFormat.__localeData__[data.locale.toLowerCase()] = data;\n }\n}); // Defines `__parse()` static method as an exposed private.\n\nsrc$es5$$.defineProperty(MessageFormat, '__parse', {\n value: intl$messageformat$parser$$[\"default\"].parse\n}); // Define public `defaultLocale` property which defaults to English, but can be\n// set by the developer.\n\nsrc$es5$$.defineProperty(MessageFormat, 'defaultLocale', {\n enumerable: true,\n writable: true,\n value: undefined\n});\n\nMessageFormat.prototype.resolvedOptions = function () {\n // TODO: Provide anything else?\n return {\n locale: this._locale\n };\n};\n\nMessageFormat.prototype._compilePattern = function (ast, locales, formats, pluralFn) {\n var compiler = new src$compiler$$[\"default\"](locales, formats, pluralFn);\n return compiler.compile(ast);\n};\n\nMessageFormat.prototype._findPluralRuleFunction = function (locale) {\n var localeData = MessageFormat.__localeData__;\n var data = localeData[locale.toLowerCase()]; // The locale data is de-duplicated, so we have to traverse the locale's\n // hierarchy until we find a `pluralRuleFunction` to return.\n\n while (data) {\n if (data.pluralRuleFunction) {\n return data.pluralRuleFunction;\n }\n\n data = data.parentLocale && localeData[data.parentLocale.toLowerCase()];\n }\n\n throw new Error('Locale data added to IntlMessageFormat is missing a ' + '`pluralRuleFunction` for :' + locale);\n};\n\nMessageFormat.prototype._format = function (pattern, values) {\n var result = '',\n i,\n len,\n part,\n id,\n value,\n err;\n\n for (i = 0, len = pattern.length; i < len; i += 1) {\n part = pattern[i]; // Exist early for string parts.\n\n if (typeof part === 'string') {\n result += part;\n continue;\n }\n\n id = part.id; // Enforce that all required values are provided by the caller.\n\n if (!(values && src$utils$$.hop.call(values, id))) {\n err = new Error('A value must be provided for: ' + id);\n err.variableId = id;\n throw err;\n }\n\n value = values[id]; // Recursively format plural and select parts' option — which can be a\n // nested pattern structure. The choosing of the option to use is\n // abstracted-by and delegated-to the part helper object.\n\n if (part.options) {\n result += this._format(part.getOption(value), values);\n } else {\n result += part.format(value);\n }\n }\n\n return result;\n};\n\nMessageFormat.prototype._mergeFormats = function (defaults, formats) {\n var mergedFormats = {},\n type,\n mergedType;\n\n for (type in defaults) {\n if (!src$utils$$.hop.call(defaults, type)) {\n continue;\n }\n\n mergedFormats[type] = mergedType = src$es5$$.objCreate(defaults[type]);\n\n if (formats && src$utils$$.hop.call(formats, type)) {\n src$utils$$.extend(mergedType, formats[type]);\n }\n }\n\n return mergedFormats;\n};\n\nMessageFormat.prototype._resolveLocale = function (locales) {\n if (typeof locales === 'string') {\n locales = [locales];\n } // Create a copy of the array so we can push on the default locale.\n\n\n locales = (locales || []).concat(MessageFormat.defaultLocale);\n var localeData = MessageFormat.__localeData__;\n var i, len, localeParts, data; // Using the set of locales + the default locale, we look for the first one\n // which that has been registered. When data does not exist for a locale, we\n // traverse its ancestors to find something that's been registered within\n // its hierarchy of locales. Since we lack the proper `parentLocale` data\n // here, we must take a naive approach to traversal.\n\n for (i = 0, len = locales.length; i < len; i += 1) {\n localeParts = locales[i].toLowerCase().split('-');\n\n while (localeParts.length) {\n data = localeData[localeParts.join('-')];\n\n if (data) {\n // Return the normalized locale string; e.g., we return \"en-US\",\n // instead of \"en-us\".\n return data.locale;\n }\n\n localeParts.pop();\n }\n }\n\n var defaultLocale = locales.pop();\n throw new Error('No locale data has been added to IntlMessageFormat for: ' + locales.join(', ') + ', or the default locale: ' + defaultLocale);\n};","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _AppRegistry = _interopRequireDefault(require(\"react-native-web/dist/exports/AppRegistry\"));\n\nfunction replaceHydrateFunction() {\n return (element, rootTag, callback) => {\n const RootComponent = () => element;\n\n _AppRegistry.default.registerComponent('main', () => RootComponent);\n\n _AppRegistry.default.runApplication('main', {\n initialProps: {},\n rootTag,\n callback\n });\n };\n}\n\nexports.replaceHydrateFunction = replaceHydrateFunction;","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.es/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","import _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _toConsumableArray from \"@babel/runtime/helpers/toConsumableArray\";\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[typeof Symbol === \"function\" ? Symbol.iterator : \"@@iterator\"] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n it = o[typeof Symbol === \"function\" ? Symbol.iterator : \"@@iterator\"]();\n return it.next.bind(it);\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nimport _babelRuntimeHelpersEsmObjectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _clsx from \"clsx\";\nimport _babelRuntimeHelpersEsmExtends from \"@babel/runtime/helpers/esm/extends\";\nimport _react, { useContext, useEffect, useRef, useState } from \"react\";\nimport { getInteractionModality, useFocus, useFocusVisible, useFocusWithin, useKeyboard } from \"@react-aria/interactions\";\nimport { focusWithoutScrolling, runAfterTransition, useLayoutEffect, mergeProps } from \"@react-aria/utils\";\nexport function focusSafely(element) {\n if (getInteractionModality() === 'virtual') {\n var lastFocusedElement = document.activeElement;\n runAfterTransition(function () {\n if (document.activeElement === lastFocusedElement && document.contains(element)) {\n focusWithoutScrolling(element);\n }\n });\n } else {\n focusWithoutScrolling(element);\n }\n}\n\nvar $c9e8f80f5bb1841844f54e4ad30b$var$FocusContext = _react.createContext(null);\n\nvar $c9e8f80f5bb1841844f54e4ad30b$var$activeScope = null;\nvar $c9e8f80f5bb1841844f54e4ad30b$var$scopes = new Set();\nexport function FocusScope(props) {\n var children = props.children,\n contain = props.contain,\n restoreFocus = props.restoreFocus,\n autoFocus = props.autoFocus;\n var startRef = useRef();\n var endRef = useRef();\n var scopeRef = useRef([]);\n useLayoutEffect(function () {\n var node = startRef.current.nextSibling;\n var nodes = [];\n\n while (node && node !== endRef.current) {\n nodes.push(node);\n node = node.nextSibling;\n }\n\n scopeRef.current = nodes;\n $c9e8f80f5bb1841844f54e4ad30b$var$scopes.add(scopeRef);\n return function () {\n $c9e8f80f5bb1841844f54e4ad30b$var$scopes.delete(scopeRef);\n };\n }, [children]);\n $c9e8f80f5bb1841844f54e4ad30b$var$useFocusContainment(scopeRef, contain);\n $c9e8f80f5bb1841844f54e4ad30b$var$useRestoreFocus(scopeRef, restoreFocus, contain);\n $c9e8f80f5bb1841844f54e4ad30b$var$useAutoFocus(scopeRef, autoFocus);\n var focusManager = $c9e8f80f5bb1841844f54e4ad30b$var$createFocusManager(scopeRef);\n return _react.createElement($c9e8f80f5bb1841844f54e4ad30b$var$FocusContext.Provider, {\n value: focusManager\n }, _react.createElement(\"span\", {\n hidden: true,\n ref: startRef\n }), children, _react.createElement(\"span\", {\n hidden: true,\n ref: endRef\n }));\n}\nexport function useFocusManager() {\n return useContext($c9e8f80f5bb1841844f54e4ad30b$var$FocusContext);\n}\n\nfunction $c9e8f80f5bb1841844f54e4ad30b$var$createFocusManager(scopeRef) {\n return {\n focusNext: function focusNext(opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n var node = opts.from || document.activeElement;\n var focusable = $c9e8f80f5bb1841844f54e4ad30b$var$getFocusableElementsInScope(scopeRef.current, opts);\n var nextNode = focusable.find(function (n) {\n return !!(node.compareDocumentPosition(n) & (Node.DOCUMENT_POSITION_FOLLOWING | Node.DOCUMENT_POSITION_CONTAINED_BY));\n });\n\n if (!nextNode && opts.wrap) {\n nextNode = focusable[0];\n }\n\n if (nextNode) {\n nextNode.focus();\n }\n\n return nextNode;\n },\n focusPrevious: function focusPrevious(opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n var node = opts.from || document.activeElement;\n var focusable = $c9e8f80f5bb1841844f54e4ad30b$var$getFocusableElementsInScope(scopeRef.current, opts).reverse();\n var previousNode = focusable.find(function (n) {\n return !!(node.compareDocumentPosition(n) & (Node.DOCUMENT_POSITION_PRECEDING | Node.DOCUMENT_POSITION_CONTAINED_BY));\n });\n\n if (!previousNode && opts.wrap) {\n previousNode = focusable[0];\n }\n\n if (previousNode) {\n previousNode.focus();\n }\n\n return previousNode;\n }\n };\n}\n\nvar $c9e8f80f5bb1841844f54e4ad30b$var$focusableElements = ['input:not([disabled]):not([type=hidden])', 'select:not([disabled])', 'textarea:not([disabled])', 'button:not([disabled])', 'a[href]', 'area[href]', 'summary', 'iframe', 'object', 'embed', 'audio[controls]', 'video[controls]', '[contenteditable]'];\nvar $c9e8f80f5bb1841844f54e4ad30b$var$FOCUSABLE_ELEMENT_SELECTOR = $c9e8f80f5bb1841844f54e4ad30b$var$focusableElements.join(',') + ',[tabindex]';\n$c9e8f80f5bb1841844f54e4ad30b$var$focusableElements.push('[tabindex]:not([tabindex=\"-1\"])');\nvar $c9e8f80f5bb1841844f54e4ad30b$var$TABBABLE_ELEMENT_SELECTOR = $c9e8f80f5bb1841844f54e4ad30b$var$focusableElements.join(':not([tabindex=\"-1\"]),');\n\nfunction $c9e8f80f5bb1841844f54e4ad30b$var$getFocusableElementsInScope(scope, opts) {\n var res = [];\n var selector = opts.tabbable ? $c9e8f80f5bb1841844f54e4ad30b$var$TABBABLE_ELEMENT_SELECTOR : $c9e8f80f5bb1841844f54e4ad30b$var$FOCUSABLE_ELEMENT_SELECTOR;\n\n for (var _iterator = _createForOfIteratorHelperLoose(scope), _step; !(_step = _iterator()).done;) {\n var node = _step.value;\n\n if (node.matches(selector)) {\n res.push(node);\n }\n\n res.push.apply(res, _toConsumableArray(Array.from(node.querySelectorAll(selector))));\n }\n\n return res;\n}\n\nfunction $c9e8f80f5bb1841844f54e4ad30b$var$useFocusContainment(scopeRef, contain) {\n var focusedNode = useRef();\n var raf = useRef(null);\n useEffect(function () {\n var scope = scopeRef.current;\n\n if (!contain) {\n return;\n }\n\n var onKeyDown = function onKeyDown(e) {\n if (e.key !== 'Tab' || e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n\n var focusedElement = document.activeElement;\n\n if (!$c9e8f80f5bb1841844f54e4ad30b$var$isElementInScope(focusedElement, scope)) {\n return;\n }\n\n var elements = $c9e8f80f5bb1841844f54e4ad30b$var$getFocusableElementsInScope(scope, {\n tabbable: true\n });\n var position = elements.indexOf(focusedElement);\n var lastPosition = elements.length - 1;\n var nextElement = null;\n\n if (e.shiftKey) {\n if (position <= 0) {\n nextElement = elements[lastPosition];\n } else {\n nextElement = elements[position - 1];\n }\n } else {\n if (position === lastPosition) {\n nextElement = elements[0];\n } else {\n nextElement = elements[position + 1];\n }\n }\n\n e.preventDefault();\n\n if (nextElement) {\n $c9e8f80f5bb1841844f54e4ad30b$var$focusElement(nextElement, true);\n }\n };\n\n var onFocus = function onFocus(e) {\n var isInAnyScope = $c9e8f80f5bb1841844f54e4ad30b$var$isElementInAnyScope(e.target, $c9e8f80f5bb1841844f54e4ad30b$var$scopes);\n\n if (!isInAnyScope) {\n if (focusedNode.current) {\n focusedNode.current.focus();\n } else if ($c9e8f80f5bb1841844f54e4ad30b$var$activeScope) {\n $c9e8f80f5bb1841844f54e4ad30b$var$focusFirstInScope($c9e8f80f5bb1841844f54e4ad30b$var$activeScope.current);\n }\n } else {\n $c9e8f80f5bb1841844f54e4ad30b$var$activeScope = scopeRef;\n focusedNode.current = e.target;\n }\n };\n\n var onBlur = function onBlur(e) {\n raf.current = requestAnimationFrame(function () {\n var isInAnyScope = $c9e8f80f5bb1841844f54e4ad30b$var$isElementInAnyScope(document.activeElement, $c9e8f80f5bb1841844f54e4ad30b$var$scopes);\n\n if (!isInAnyScope) {\n $c9e8f80f5bb1841844f54e4ad30b$var$activeScope = scopeRef;\n focusedNode.current = e.target;\n focusedNode.current.focus();\n }\n });\n };\n\n document.addEventListener('keydown', onKeyDown, false);\n document.addEventListener('focusin', onFocus, false);\n scope.forEach(function (element) {\n return element.addEventListener('focusin', onFocus, false);\n });\n scope.forEach(function (element) {\n return element.addEventListener('focusout', onBlur, false);\n });\n return function () {\n document.removeEventListener('keydown', onKeyDown, false);\n document.removeEventListener('focusin', onFocus, false);\n scope.forEach(function (element) {\n return element.removeEventListener('focusin', onFocus, false);\n });\n scope.forEach(function (element) {\n return element.removeEventListener('focusout', onBlur, false);\n });\n };\n }, [scopeRef, contain]);\n useEffect(function () {\n return function () {\n return cancelAnimationFrame(raf.current);\n };\n }, [raf]);\n}\n\nfunction $c9e8f80f5bb1841844f54e4ad30b$var$isElementInAnyScope(element, scopes) {\n for (var _iterator2 = _createForOfIteratorHelperLoose(scopes.values()), _step2; !(_step2 = _iterator2()).done;) {\n var scope = _step2.value;\n\n if ($c9e8f80f5bb1841844f54e4ad30b$var$isElementInScope(element, scope.current)) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction $c9e8f80f5bb1841844f54e4ad30b$var$isElementInScope(element, scope) {\n return scope.some(function (node) {\n return node.contains(element);\n });\n}\n\nfunction $c9e8f80f5bb1841844f54e4ad30b$var$focusElement(element, scroll) {\n if (scroll === void 0) {\n scroll = false;\n }\n\n if (element != null && !scroll) {\n try {\n focusSafely(element);\n } catch (err) {}\n } else if (element != null) {\n try {\n element.focus();\n } catch (err) {}\n }\n}\n\nfunction $c9e8f80f5bb1841844f54e4ad30b$var$focusFirstInScope(scope) {\n var elements = $c9e8f80f5bb1841844f54e4ad30b$var$getFocusableElementsInScope(scope, {\n tabbable: true\n });\n $c9e8f80f5bb1841844f54e4ad30b$var$focusElement(elements[0]);\n}\n\nfunction $c9e8f80f5bb1841844f54e4ad30b$var$useAutoFocus(scopeRef, autoFocus) {\n useEffect(function () {\n if (autoFocus) {\n $c9e8f80f5bb1841844f54e4ad30b$var$activeScope = scopeRef;\n\n if (!$c9e8f80f5bb1841844f54e4ad30b$var$isElementInScope(document.activeElement, $c9e8f80f5bb1841844f54e4ad30b$var$activeScope.current)) {\n $c9e8f80f5bb1841844f54e4ad30b$var$focusFirstInScope(scopeRef.current);\n }\n }\n }, [scopeRef, autoFocus]);\n}\n\nfunction $c9e8f80f5bb1841844f54e4ad30b$var$useRestoreFocus(scopeRef, restoreFocus, contain) {\n useLayoutEffect(function () {\n var scope = scopeRef.current;\n var nodeToRestore = document.activeElement;\n\n var onKeyDown = function onKeyDown(e) {\n if (e.key !== 'Tab' || e.altKey || e.ctrlKey || e.metaKey) {\n return;\n }\n\n var focusedElement = document.activeElement;\n\n if (!$c9e8f80f5bb1841844f54e4ad30b$var$isElementInScope(focusedElement, scope)) {\n return;\n }\n\n var walker = getFocusableTreeWalker(document.body, {\n tabbable: true\n });\n walker.currentNode = focusedElement;\n var nextElement = e.shiftKey ? walker.previousNode() : walker.nextNode();\n\n if ((!nextElement || !$c9e8f80f5bb1841844f54e4ad30b$var$isElementInScope(nextElement, scope)) && nodeToRestore) {\n walker.currentNode = nodeToRestore;\n\n do {\n nextElement = e.shiftKey ? walker.previousNode() : walker.nextNode();\n } while ($c9e8f80f5bb1841844f54e4ad30b$var$isElementInScope(nextElement, scope));\n\n e.preventDefault();\n e.stopPropagation();\n\n if (nextElement) {\n nextElement.focus();\n } else {\n focusedElement.blur();\n }\n }\n };\n\n if (!contain) {\n document.addEventListener('keydown', onKeyDown, true);\n }\n\n return function () {\n if (!contain) {\n document.removeEventListener('keydown', onKeyDown, true);\n }\n\n if (restoreFocus && nodeToRestore && $c9e8f80f5bb1841844f54e4ad30b$var$isElementInScope(document.activeElement, scope)) {\n requestAnimationFrame(function () {\n if (document.body.contains(nodeToRestore)) {\n $c9e8f80f5bb1841844f54e4ad30b$var$focusElement(nodeToRestore);\n }\n });\n }\n };\n }, [scopeRef, restoreFocus, contain]);\n}\n\nexport function getFocusableTreeWalker(root, opts) {\n var selector = (opts == null ? void 0 : opts.tabbable) ? $c9e8f80f5bb1841844f54e4ad30b$var$TABBABLE_ELEMENT_SELECTOR : $c9e8f80f5bb1841844f54e4ad30b$var$FOCUSABLE_ELEMENT_SELECTOR;\n var walker = document.createTreeWalker(root, NodeFilter.SHOW_ELEMENT, {\n acceptNode: function acceptNode(node) {\n var _opts$from;\n\n if (opts == null ? void 0 : (_opts$from = opts.from) == null ? void 0 : _opts$from.contains(node)) {\n return NodeFilter.FILTER_REJECT;\n }\n\n if (node.matches(selector)) {\n return NodeFilter.FILTER_ACCEPT;\n }\n\n return NodeFilter.FILTER_SKIP;\n }\n }, false);\n\n if (opts == null ? void 0 : opts.from) {\n walker.currentNode = opts.from;\n }\n\n return walker;\n}\nexport function useFocusRing(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n within = _props.within;\n\n var _useState = useState(false),\n _useState2 = _slicedToArray(_useState, 2),\n isFocused = _useState2[0],\n setFocused = _useState2[1];\n\n var _useState3 = useState(false),\n _useState4 = _slicedToArray(_useState3, 2),\n isFocusWithin = _useState4[0],\n setFocusWithin = _useState4[1];\n\n var _useFocusVisible = useFocusVisible(props),\n isFocusVisible = _useFocusVisible.isFocusVisible;\n\n var _useFocus = useFocus({\n isDisabled: within,\n onFocusChange: setFocused\n }),\n focusProps = _useFocus.focusProps;\n\n var _useFocusWithin = useFocusWithin({\n isDisabled: !within,\n onFocusWithinChange: setFocusWithin\n }),\n focusWithinProps = _useFocusWithin.focusWithinProps;\n\n return {\n isFocused: within ? isFocusWithin : isFocused,\n isFocusVisible: (within ? isFocusWithin : isFocused) && isFocusVisible,\n focusProps: within ? focusWithinProps : focusProps\n };\n}\nexport function FocusRing(props) {\n var _clsx2;\n\n var children = props.children,\n focusClass = props.focusClass,\n focusRingClass = props.focusRingClass;\n\n var _useFocusRing = useFocusRing(props),\n isFocused = _useFocusRing.isFocused,\n isFocusVisible = _useFocusRing.isFocusVisible,\n focusProps = _useFocusRing.focusProps;\n\n var child = _react.Children.only(children);\n\n return _react.cloneElement(child, mergeProps(child.props, _babelRuntimeHelpersEsmExtends({}, focusProps, {\n className: _clsx((_clsx2 = {}, _defineProperty(_clsx2, focusClass || '', isFocused), _defineProperty(_clsx2, focusRingClass || '', isFocusVisible), _clsx2))\n })));\n}\n\nvar $e11539c8317b2d21639df611cb5658f$var$FocusableContext = _react.createContext(null);\n\nfunction $e11539c8317b2d21639df611cb5658f$var$useFocusableContext(ref) {\n var context = useContext($e11539c8317b2d21639df611cb5658f$var$FocusableContext) || {};\n useEffect(function () {\n if (context && context.ref) {\n context.ref.current = ref.current;\n return function () {\n context.ref.current = null;\n };\n }\n }, [context, ref]);\n return context;\n}\n\nfunction $e11539c8317b2d21639df611cb5658f$var$FocusableProvider(props, ref) {\n var children = props.children,\n otherProps = _babelRuntimeHelpersEsmObjectWithoutPropertiesLoose(props, [\"children\"]);\n\n var context = _babelRuntimeHelpersEsmExtends({}, otherProps, {\n ref: ref\n });\n\n return _react.createElement($e11539c8317b2d21639df611cb5658f$var$FocusableContext.Provider, {\n value: context\n }, children);\n}\n\nexport var FocusableProvider = _react.forwardRef($e11539c8317b2d21639df611cb5658f$var$FocusableProvider);\nexport function useFocusable(props, domRef) {\n var _useFocus2 = useFocus(props),\n focusProps = _useFocus2.focusProps;\n\n var _useKeyboard = useKeyboard(props),\n keyboardProps = _useKeyboard.keyboardProps;\n\n var interactions = mergeProps(focusProps, keyboardProps);\n var domProps = $e11539c8317b2d21639df611cb5658f$var$useFocusableContext(domRef);\n var interactionProps = props.isDisabled ? {} : domProps;\n useEffect(function () {\n if (props.autoFocus && domRef.current) {\n domRef.current.focus();\n }\n }, [props.autoFocus, domRef]);\n return {\n focusableProps: mergeProps(_babelRuntimeHelpersEsmExtends({}, interactions, {\n tabIndex: props.excludeFromTabOrder && !props.isDisabled ? -1 : undefined\n }), interactionProps)\n };\n}","var global = require('../internals/global');\n\nmodule.exports = global;\n","\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.ScrollContainer = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nvar _router = require(\"@reach/router\");\n\n// TODO: In Gatsby v3, this file should be removed.\n// We are deprecating this in V2 in favor of useScrollRestoration\nvar propTypes = {\n scrollKey: _propTypes.default.string.isRequired,\n shouldUpdateScroll: _propTypes.default.func,\n children: _propTypes.default.element.isRequired\n};\nvar hasNotWarnedDeprecation = true;\n\nvar ScrollContainerImplementation = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollContainerImplementation, _React$Component);\n\n function ScrollContainerImplementation(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n\n if (process.env.NODE_ENV !== \"production\" && hasNotWarnedDeprecation) {\n hasNotWarnedDeprecation = false;\n console.log(\"Deprecation Warning:\\n\\n Gatsby is deprecated in Gatsby v2 and will be removed in Gatsby v3.\\n Update to the React hook alternative useScrollRestoration, like this:.\\n \\n ```\\n import React from 'react';\\n import { useScrollRestoration } from 'gatsby-react-router-scroll';\\n\\n function Component() {\\n const scrollRestoration = useScrollRestoration('\" + _this.props.scrollKey + \"');\\n\\n return
    ;\\n }\\n ```\\n \");\n }\n\n return _this;\n }\n\n var _proto = ScrollContainerImplementation.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n // eslint-disable-next-line react/no-find-dom-node\n var node = _reactDom.default.findDOMNode(this);\n\n var _this$props = this.props,\n location = _this$props.location,\n scrollKey = _this$props.scrollKey;\n if (!node) return;\n node.addEventListener(\"scroll\", function () {\n _this2.props.context.save(location, scrollKey, node.scrollTop);\n });\n var position = this.props.context.read(location, scrollKey);\n node.scrollTo(0, position || 0);\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return ScrollContainerImplementation;\n}(React.Component);\n\nvar ScrollContainer = function ScrollContainer(props) {\n return /*#__PURE__*/React.createElement(_router.Location, null, function (_ref) {\n var location = _ref.location;\n return /*#__PURE__*/React.createElement(_scrollHandler.ScrollContext.Consumer, null, function (context) {\n return /*#__PURE__*/React.createElement(ScrollContainerImplementation, (0, _extends2.default)({}, props, {\n context: context,\n location: location\n }));\n });\n });\n};\n\nexports.ScrollContainer = ScrollContainer;\nScrollContainer.propTypes = propTypes;","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var superPropBase = require(\"./superPropBase\");\n\nfunction _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n module.exports = _get = Reflect.get;\n } else {\n module.exports = _get = function _get(target, property, receiver) {\n var base = superPropBase(target, property);\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}\n\nmodule.exports = _get;","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","exports.f = Object.getOwnPropertySymbols;\n","function toVal(mix) {\n var k,\n y,\n str = '';\n\n if (typeof mix === 'string' || typeof mix === 'number') {\n str += mix;\n } else if (typeof mix === 'object') {\n if (Array.isArray(mix)) {\n for (k = 0; k < mix.length; k++) {\n if (mix[k]) {\n if (y = toVal(mix[k])) {\n str && (str += ' ');\n str += y;\n }\n }\n }\n } else {\n for (k in mix) {\n if (mix[k]) {\n str && (str += ' ');\n str += k;\n }\n }\n }\n }\n\n return str;\n}\n\nexport default function () {\n var i = 0,\n tmp,\n x,\n str = '';\n\n while (i < arguments.length) {\n if (tmp = arguments[i++]) {\n if (x = toVal(tmp)) {\n str && (str += ' ');\n str += x;\n }\n }\n }\n\n return str;\n}","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var supportedProps = {\n accessibilityComponentType: true,\n accessibilityLabel: true,\n accessibilityLiveRegion: true,\n accessibilityRole: true,\n accessibilityStates: true,\n accessibilityTraits: true,\n accessible: true,\n children: true,\n disabled: true,\n importantForAccessibility: true,\n nativeID: true,\n onBlur: true,\n onContextMenu: true,\n onFocus: true,\n onMoveShouldSetResponder: true,\n onMoveShouldSetResponderCapture: true,\n onResponderEnd: true,\n onResponderGrant: true,\n onResponderMove: true,\n onResponderReject: true,\n onResponderRelease: true,\n onResponderStart: true,\n onResponderTerminate: true,\n onResponderTerminationRequest: true,\n onScrollShouldSetResponder: true,\n onScrollShouldSetResponderCapture: true,\n onSelectionChangeShouldSetResponder: true,\n onSelectionChangeShouldSetResponderCapture: true,\n onStartShouldSetResponder: true,\n onStartShouldSetResponderCapture: true,\n onTouchCancel: true,\n onTouchCancelCapture: true,\n onTouchEnd: true,\n onTouchEndCapture: true,\n onTouchMove: true,\n onTouchMoveCapture: true,\n onTouchStart: true,\n onTouchStartCapture: true,\n pointerEvents: true,\n style: true,\n testID: true,\n onScroll: true,\n onWheel: true,\n onKeyDown: true,\n onKeyPress: true,\n onKeyUp: true,\n onMouseDown: true,\n onMouseEnter: true,\n onMouseLeave: true,\n onMouseMove: true,\n onMouseOver: true,\n onMouseOut: true,\n onMouseUp: true,\n className: true,\n href: true,\n itemID: true,\n itemRef: true,\n itemProp: true,\n itemScope: true,\n itemType: true,\n onClick: true,\n onClickCapture: true,\n rel: true,\n target: true\n};\n\nvar filterSupportedProps = function filterSupportedProps(props) {\n var safeProps = {};\n\n for (var prop in props) {\n if (props.hasOwnProperty(prop)) {\n if (supportedProps[prop] || prop.indexOf('aria-') === 0 || prop.indexOf('data-') === 0) {\n safeProps[prop] = props[prop];\n }\n }\n }\n\n return safeProps;\n};\n\nexport default filterSupportedProps;","function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nimport applyLayout from \"../../modules/applyLayout\";\nimport applyNativeMethods from \"../../modules/applyNativeMethods\";\nimport { bool } from 'prop-types';\nimport createElement from \"../createElement\";\nimport css from \"../StyleSheet/css\";\nimport filterSupportedProps from \"./filterSupportedProps\";\nimport invariant from 'fbjs/lib/invariant';\nimport warning from 'fbjs/lib/warning';\nimport StyleSheet from \"../StyleSheet\";\nimport ViewPropTypes from \"./ViewPropTypes\";\nimport React, { Component } from 'react';\n\nvar calculateHitSlopStyle = function calculateHitSlopStyle(hitSlop) {\n var hitStyle = {};\n\n for (var prop in hitSlop) {\n if (hitSlop.hasOwnProperty(prop)) {\n var value = hitSlop[prop];\n hitStyle[prop] = value > 0 ? -1 * value : 0;\n }\n }\n\n return hitStyle;\n};\n\nvar View = function (_Component) {\n _inheritsLoose(View, _Component);\n\n function View() {\n return _Component.apply(this, arguments) || this;\n }\n\n var _proto = View.prototype;\n\n _proto.render = function render() {\n var hitSlop = this.props.hitSlop;\n var supportedProps = filterSupportedProps(this.props);\n\n if (process.env.NODE_ENV !== 'production') {\n warning(this.props.className == null, 'Using the \"className\" prop on is deprecated.');\n React.Children.toArray(this.props.children).forEach(function (item) {\n invariant(typeof item !== 'string', \"Unexpected text node: \" + item + \". A text node cannot be a child of a .\");\n });\n }\n\n var isInAParentText = this.context.isInAParentText;\n supportedProps.classList = [this.props.className, classes.view];\n supportedProps.style = StyleSheet.compose(isInAParentText && styles.inline, this.props.style);\n\n if (hitSlop) {\n var hitSlopStyle = calculateHitSlopStyle(hitSlop);\n var hitSlopChild = createElement('span', {\n classList: [classes.hitSlop],\n style: hitSlopStyle\n });\n supportedProps.children = React.Children.toArray([hitSlopChild, supportedProps.children]);\n }\n\n return createElement('div', supportedProps);\n };\n\n return View;\n}(Component);\n\nView.displayName = 'View';\nView.contextTypes = {\n isInAParentText: bool\n};\nView.propTypes = process.env.NODE_ENV !== \"production\" ? ViewPropTypes : {};\nvar classes = css.create({\n view: {\n alignItems: 'stretch',\n border: '0 solid black',\n boxSizing: 'border-box',\n display: 'flex',\n flexBasis: 'auto',\n flexDirection: 'column',\n flexShrink: 0,\n margin: 0,\n minHeight: 0,\n minWidth: 0,\n padding: 0,\n position: 'relative',\n zIndex: 0\n },\n hitSlop: {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n zIndex: -1\n }\n});\nvar styles = StyleSheet.create({\n inline: {\n display: 'inline-flex'\n }\n});\nexport default applyLayout(applyNativeMethods(View));","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = cursor;\nvar prefixes = ['-webkit-', '-moz-', ''];\nvar values = {\n 'zoom-in': true,\n 'zoom-out': true,\n grab: true,\n grabbing: true\n};\n\nfunction cursor(property, value) {\n if (property === 'cursor' && values.hasOwnProperty(value)) {\n return prefixes.map(function (prefix) {\n return prefix + value;\n });\n }\n}","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","module.exports = false;\n","/* jslint esnext: true */\n\"use strict\";\n\nvar src$core$$ = require(\"./core\"),\n src$en$$ = require(\"./en\");\n\nsrc$core$$[\"default\"].__addLocaleData(src$en$$[\"default\"]);\n\nsrc$core$$[\"default\"].defaultLocale = 'en';\nexports[\"default\"] = src$core$$[\"default\"];","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","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","import styleResolver from \"./styleResolver\";\nvar css = {\n create: function create(rules, group) {\n return styleResolver.createCSS(rules, group);\n }\n};\nexport default css;","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;","var getPrototypeOf = require(\"./getPrototypeOf\");\n\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}\n\nmodule.exports = _superPropBase;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _gatsby = require(\"gatsby\");\n\nvar _getManifestPathname = _interopRequireDefault(require(\"./get-manifest-pathname\"));\n\n/* global __MANIFEST_PLUGIN_HAS_LOCALISATION__ */\n// when we don't have localisation in our manifest, we tree shake everything away\nif (__MANIFEST_PLUGIN_HAS_LOCALISATION__) {\n var withPrefix = _gatsby.withAssetPrefix || _gatsby.withPrefix;\n\n exports.onRouteUpdate = function (_ref, pluginOptions) {\n var location = _ref.location;\n var localize = pluginOptions.localize;\n var manifestFilename = (0, _getManifestPathname.default)(location.pathname, localize);\n var manifestEl = document.head.querySelector(\"link[rel=\\\"manifest\\\"]\");\n\n if (manifestEl) {\n manifestEl.setAttribute(\"href\", withPrefix(manifestFilename));\n }\n };\n}","/*\n Why commonjs and not ES imports/exports?\n\n This module is used to alias `create-react-context` package, but drop the the actual implementation part\n because Gatsby requires version of react that has implementatoin baked in.\n \n Package source is using ES modules:\n - https://github.com/jamiebuilds/create-react-context/blob/v0.3.0/src/index.js\n \n But to build this package `babel-plugin-add-module-exports` is used ( https://www.npmjs.com/package/babel-plugin-add-module-exports).\n Which result in both `module.exports` and `exports.default` being set to same thing.\n\n We don't use that babel plugin so we only have `exports.default`.\n\n This cause problems in various 3rd party react components that rely on `module.exports` being set.\n See https://github.com/gatsbyjs/gatsby/issues/23645 for example of it.\n \n Instead of adding same babel plugin we mimic output here. Adding babel plugin just for this would:\n a) unnecesairly slow down compilation for all other files (if we just apply it everywhere)\n b) or complicate babel-loader configuration with overwrite specifically for this file\n*/\n\nconst { createContext } = require(`react`)\n\nmodule.exports = createContext\nmodule.exports.default = createContext\n","\"use strict\";\n\nexports[\"default\"] = function () {\n \"use strict\";\n /*\n * Generated by PEG.js 0.9.0.\n *\n * http://pegjs.org/\n */\n\n function peg$subclass(child, parent) {\n function ctor() {\n this.constructor = child;\n }\n\n ctor.prototype = parent.prototype;\n child.prototype = new ctor();\n }\n\n function peg$SyntaxError(message, expected, found, location) {\n this.message = message;\n this.expected = expected;\n this.found = found;\n this.location = location;\n this.name = \"SyntaxError\";\n\n if (typeof Error.captureStackTrace === \"function\") {\n Error.captureStackTrace(this, peg$SyntaxError);\n }\n }\n\n peg$subclass(peg$SyntaxError, Error);\n\n function peg$parse(input) {\n var options = arguments.length > 1 ? arguments[1] : {},\n parser = this,\n peg$FAILED = {},\n peg$startRuleFunctions = {\n start: peg$parsestart\n },\n peg$startRuleFunction = peg$parsestart,\n peg$c0 = function peg$c0(elements) {\n return {\n type: 'messageFormatPattern',\n elements: elements,\n location: location()\n };\n },\n peg$c1 = function peg$c1(text) {\n var string = '',\n i,\n j,\n outerLen,\n inner,\n innerLen;\n\n for (i = 0, outerLen = text.length; i < outerLen; i += 1) {\n inner = text[i];\n\n for (j = 0, innerLen = inner.length; j < innerLen; j += 1) {\n string += inner[j];\n }\n }\n\n return string;\n },\n peg$c2 = function peg$c2(messageText) {\n return {\n type: 'messageTextElement',\n value: messageText,\n location: location()\n };\n },\n peg$c3 = /^[^ \\t\\n\\r,.+={}#]/,\n peg$c4 = {\n type: \"class\",\n value: \"[^ \\\\t\\\\n\\\\r,.+={}#]\",\n description: \"[^ \\\\t\\\\n\\\\r,.+={}#]\"\n },\n peg$c5 = \"{\",\n peg$c6 = {\n type: \"literal\",\n value: \"{\",\n description: \"\\\"{\\\"\"\n },\n peg$c7 = \",\",\n peg$c8 = {\n type: \"literal\",\n value: \",\",\n description: \"\\\",\\\"\"\n },\n peg$c9 = \"}\",\n peg$c10 = {\n type: \"literal\",\n value: \"}\",\n description: \"\\\"}\\\"\"\n },\n peg$c11 = function peg$c11(id, format) {\n return {\n type: 'argumentElement',\n id: id,\n format: format && format[2],\n location: location()\n };\n },\n peg$c12 = \"number\",\n peg$c13 = {\n type: \"literal\",\n value: \"number\",\n description: \"\\\"number\\\"\"\n },\n peg$c14 = \"date\",\n peg$c15 = {\n type: \"literal\",\n value: \"date\",\n description: \"\\\"date\\\"\"\n },\n peg$c16 = \"time\",\n peg$c17 = {\n type: \"literal\",\n value: \"time\",\n description: \"\\\"time\\\"\"\n },\n peg$c18 = function peg$c18(type, style) {\n return {\n type: type + 'Format',\n style: style && style[2],\n location: location()\n };\n },\n peg$c19 = \"plural\",\n peg$c20 = {\n type: \"literal\",\n value: \"plural\",\n description: \"\\\"plural\\\"\"\n },\n peg$c21 = function peg$c21(pluralStyle) {\n return {\n type: pluralStyle.type,\n ordinal: false,\n offset: pluralStyle.offset || 0,\n options: pluralStyle.options,\n location: location()\n };\n },\n peg$c22 = \"selectordinal\",\n peg$c23 = {\n type: \"literal\",\n value: \"selectordinal\",\n description: \"\\\"selectordinal\\\"\"\n },\n peg$c24 = function peg$c24(pluralStyle) {\n return {\n type: pluralStyle.type,\n ordinal: true,\n offset: pluralStyle.offset || 0,\n options: pluralStyle.options,\n location: location()\n };\n },\n peg$c25 = \"select\",\n peg$c26 = {\n type: \"literal\",\n value: \"select\",\n description: \"\\\"select\\\"\"\n },\n peg$c27 = function peg$c27(options) {\n return {\n type: 'selectFormat',\n options: options,\n location: location()\n };\n },\n peg$c28 = \"=\",\n peg$c29 = {\n type: \"literal\",\n value: \"=\",\n description: \"\\\"=\\\"\"\n },\n peg$c30 = function peg$c30(selector, pattern) {\n return {\n type: 'optionalFormatPattern',\n selector: selector,\n value: pattern,\n location: location()\n };\n },\n peg$c31 = \"offset:\",\n peg$c32 = {\n type: \"literal\",\n value: \"offset:\",\n description: \"\\\"offset:\\\"\"\n },\n peg$c33 = function peg$c33(number) {\n return number;\n },\n peg$c34 = function peg$c34(offset, options) {\n return {\n type: 'pluralFormat',\n offset: offset,\n options: options,\n location: location()\n };\n },\n peg$c35 = {\n type: \"other\",\n description: \"whitespace\"\n },\n peg$c36 = /^[ \\t\\n\\r]/,\n peg$c37 = {\n type: \"class\",\n value: \"[ \\\\t\\\\n\\\\r]\",\n description: \"[ \\\\t\\\\n\\\\r]\"\n },\n peg$c38 = {\n type: \"other\",\n description: \"optionalWhitespace\"\n },\n peg$c39 = /^[0-9]/,\n peg$c40 = {\n type: \"class\",\n value: \"[0-9]\",\n description: \"[0-9]\"\n },\n peg$c41 = /^[0-9a-f]/i,\n peg$c42 = {\n type: \"class\",\n value: \"[0-9a-f]i\",\n description: \"[0-9a-f]i\"\n },\n peg$c43 = \"0\",\n peg$c44 = {\n type: \"literal\",\n value: \"0\",\n description: \"\\\"0\\\"\"\n },\n peg$c45 = /^[1-9]/,\n peg$c46 = {\n type: \"class\",\n value: \"[1-9]\",\n description: \"[1-9]\"\n },\n peg$c47 = function peg$c47(digits) {\n return parseInt(digits, 10);\n },\n peg$c48 = /^[^{}\\\\\\0-\\x1F \\t\\n\\r]/,\n peg$c49 = {\n type: \"class\",\n value: \"[^{}\\\\\\\\\\\\0-\\\\x1F\\\\x7f \\\\t\\\\n\\\\r]\",\n description: \"[^{}\\\\\\\\\\\\0-\\\\x1F\\\\x7f \\\\t\\\\n\\\\r]\"\n },\n peg$c50 = \"\\\\\\\\\",\n peg$c51 = {\n type: \"literal\",\n value: \"\\\\\\\\\",\n description: \"\\\"\\\\\\\\\\\\\\\\\\\"\"\n },\n peg$c52 = function peg$c52() {\n return '\\\\';\n },\n peg$c53 = \"\\\\#\",\n peg$c54 = {\n type: \"literal\",\n value: \"\\\\#\",\n description: \"\\\"\\\\\\\\#\\\"\"\n },\n peg$c55 = function peg$c55() {\n return '\\\\#';\n },\n peg$c56 = \"\\\\{\",\n peg$c57 = {\n type: \"literal\",\n value: \"\\\\{\",\n description: \"\\\"\\\\\\\\{\\\"\"\n },\n peg$c58 = function peg$c58() {\n return \"{\";\n },\n peg$c59 = \"\\\\}\",\n peg$c60 = {\n type: \"literal\",\n value: \"\\\\}\",\n description: \"\\\"\\\\\\\\}\\\"\"\n },\n peg$c61 = function peg$c61() {\n return \"}\";\n },\n peg$c62 = \"\\\\u\",\n peg$c63 = {\n type: \"literal\",\n value: \"\\\\u\",\n description: \"\\\"\\\\\\\\u\\\"\"\n },\n peg$c64 = function peg$c64(digits) {\n return String.fromCharCode(parseInt(digits, 16));\n },\n peg$c65 = function peg$c65(chars) {\n return chars.join('');\n },\n peg$currPos = 0,\n peg$savedPos = 0,\n peg$posDetailsCache = [{\n line: 1,\n column: 1,\n seenCR: false\n }],\n peg$maxFailPos = 0,\n peg$maxFailExpected = [],\n peg$silentFails = 0,\n peg$result;\n\n if (\"startRule\" in options) {\n if (!(options.startRule in peg$startRuleFunctions)) {\n throw new Error(\"Can't start parsing from rule \\\"\" + options.startRule + \"\\\".\");\n }\n\n peg$startRuleFunction = peg$startRuleFunctions[options.startRule];\n }\n\n function text() {\n return input.substring(peg$savedPos, peg$currPos);\n }\n\n function location() {\n return peg$computeLocation(peg$savedPos, peg$currPos);\n }\n\n function expected(description) {\n throw peg$buildException(null, [{\n type: \"other\",\n description: description\n }], input.substring(peg$savedPos, peg$currPos), peg$computeLocation(peg$savedPos, peg$currPos));\n }\n\n function error(message) {\n throw peg$buildException(message, null, input.substring(peg$savedPos, peg$currPos), peg$computeLocation(peg$savedPos, peg$currPos));\n }\n\n function peg$computePosDetails(pos) {\n var details = peg$posDetailsCache[pos],\n p,\n ch;\n\n if (details) {\n return details;\n } else {\n p = pos - 1;\n\n while (!peg$posDetailsCache[p]) {\n p--;\n }\n\n details = peg$posDetailsCache[p];\n details = {\n line: details.line,\n column: details.column,\n seenCR: details.seenCR\n };\n\n while (p < pos) {\n ch = input.charAt(p);\n\n if (ch === \"\\n\") {\n if (!details.seenCR) {\n details.line++;\n }\n\n details.column = 1;\n details.seenCR = false;\n } else if (ch === \"\\r\" || ch === \"\\u2028\" || ch === \"\\u2029\") {\n details.line++;\n details.column = 1;\n details.seenCR = true;\n } else {\n details.column++;\n details.seenCR = false;\n }\n\n p++;\n }\n\n peg$posDetailsCache[pos] = details;\n return details;\n }\n }\n\n function peg$computeLocation(startPos, endPos) {\n var startPosDetails = peg$computePosDetails(startPos),\n endPosDetails = peg$computePosDetails(endPos);\n return {\n start: {\n offset: startPos,\n line: startPosDetails.line,\n column: startPosDetails.column\n },\n end: {\n offset: endPos,\n line: endPosDetails.line,\n column: endPosDetails.column\n }\n };\n }\n\n function peg$fail(expected) {\n if (peg$currPos < peg$maxFailPos) {\n return;\n }\n\n if (peg$currPos > peg$maxFailPos) {\n peg$maxFailPos = peg$currPos;\n peg$maxFailExpected = [];\n }\n\n peg$maxFailExpected.push(expected);\n }\n\n function peg$buildException(message, expected, found, location) {\n function cleanupExpected(expected) {\n var i = 1;\n expected.sort(function (a, b) {\n if (a.description < b.description) {\n return -1;\n } else if (a.description > b.description) {\n return 1;\n } else {\n return 0;\n }\n });\n\n while (i < expected.length) {\n if (expected[i - 1] === expected[i]) {\n expected.splice(i, 1);\n } else {\n i++;\n }\n }\n }\n\n function buildMessage(expected, found) {\n function stringEscape(s) {\n function hex(ch) {\n return ch.charCodeAt(0).toString(16).toUpperCase();\n }\n\n return s.replace(/\\\\/g, '\\\\\\\\').replace(/\"/g, '\\\\\"').replace(/\\x08/g, '\\\\b').replace(/\\t/g, '\\\\t').replace(/\\n/g, '\\\\n').replace(/\\f/g, '\\\\f').replace(/\\r/g, '\\\\r').replace(/[\\x00-\\x07\\x0B\\x0E\\x0F]/g, function (ch) {\n return '\\\\x0' + hex(ch);\n }).replace(/[\\x10-\\x1F\\x80-\\xFF]/g, function (ch) {\n return '\\\\x' + hex(ch);\n }).replace(/[\\u0100-\\u0FFF]/g, function (ch) {\n return \"\\\\u0\" + hex(ch);\n }).replace(/[\\u1000-\\uFFFF]/g, function (ch) {\n return \"\\\\u\" + hex(ch);\n });\n }\n\n var expectedDescs = new Array(expected.length),\n expectedDesc,\n foundDesc,\n i;\n\n for (i = 0; i < expected.length; i++) {\n expectedDescs[i] = expected[i].description;\n }\n\n expectedDesc = expected.length > 1 ? expectedDescs.slice(0, -1).join(\", \") + \" or \" + expectedDescs[expected.length - 1] : expectedDescs[0];\n foundDesc = found ? \"\\\"\" + stringEscape(found) + \"\\\"\" : \"end of input\";\n return \"Expected \" + expectedDesc + \" but \" + foundDesc + \" found.\";\n }\n\n if (expected !== null) {\n cleanupExpected(expected);\n }\n\n return new peg$SyntaxError(message !== null ? message : buildMessage(expected, found), expected, found, location);\n }\n\n function peg$parsestart() {\n var s0;\n s0 = peg$parsemessageFormatPattern();\n return s0;\n }\n\n function peg$parsemessageFormatPattern() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsemessageFormatElement();\n\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsemessageFormatElement();\n }\n\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c0(s1);\n }\n\n s0 = s1;\n return s0;\n }\n\n function peg$parsemessageFormatElement() {\n var s0;\n s0 = peg$parsemessageTextElement();\n\n if (s0 === peg$FAILED) {\n s0 = peg$parseargumentElement();\n }\n\n return s0;\n }\n\n function peg$parsemessageText() {\n var s0, s1, s2, s3, s4, s5;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$currPos;\n s3 = peg$parse_();\n\n if (s3 !== peg$FAILED) {\n s4 = peg$parsechars();\n\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n\n if (s5 !== peg$FAILED) {\n s3 = [s3, s4, s5];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$currPos;\n s3 = peg$parse_();\n\n if (s3 !== peg$FAILED) {\n s4 = peg$parsechars();\n\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n\n if (s5 !== peg$FAILED) {\n s3 = [s3, s4, s5];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n }\n } else {\n s1 = peg$FAILED;\n }\n\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c1(s1);\n }\n\n s0 = s1;\n\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = peg$parsews();\n\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n } else {\n s0 = s1;\n }\n }\n\n return s0;\n }\n\n function peg$parsemessageTextElement() {\n var s0, s1;\n s0 = peg$currPos;\n s1 = peg$parsemessageText();\n\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c2(s1);\n }\n\n s0 = s1;\n return s0;\n }\n\n function peg$parseargument() {\n var s0, s1, s2;\n s0 = peg$parsenumber();\n\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n s1 = [];\n\n if (peg$c3.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n\n if (peg$silentFails === 0) {\n peg$fail(peg$c4);\n }\n }\n\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n\n if (peg$c3.test(input.charAt(peg$currPos))) {\n s2 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n\n if (peg$silentFails === 0) {\n peg$fail(peg$c4);\n }\n }\n }\n } else {\n s1 = peg$FAILED;\n }\n\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n } else {\n s0 = s1;\n }\n }\n\n return s0;\n }\n\n function peg$parseargumentElement() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n s0 = peg$currPos;\n\n if (input.charCodeAt(peg$currPos) === 123) {\n s1 = peg$c5;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n\n if (peg$silentFails === 0) {\n peg$fail(peg$c6);\n }\n }\n\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n\n if (s2 !== peg$FAILED) {\n s3 = peg$parseargument();\n\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n\n if (s4 !== peg$FAILED) {\n s5 = peg$currPos;\n\n if (input.charCodeAt(peg$currPos) === 44) {\n s6 = peg$c7;\n peg$currPos++;\n } else {\n s6 = peg$FAILED;\n\n if (peg$silentFails === 0) {\n peg$fail(peg$c8);\n }\n }\n\n if (s6 !== peg$FAILED) {\n s7 = peg$parse_();\n\n if (s7 !== peg$FAILED) {\n s8 = peg$parseelementFormat();\n\n if (s8 !== peg$FAILED) {\n s6 = [s6, s7, s8];\n s5 = s6;\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n } else {\n peg$currPos = s5;\n s5 = peg$FAILED;\n }\n\n if (s5 === peg$FAILED) {\n s5 = null;\n }\n\n if (s5 !== peg$FAILED) {\n s6 = peg$parse_();\n\n if (s6 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s7 = peg$c9;\n peg$currPos++;\n } else {\n s7 = peg$FAILED;\n\n if (peg$silentFails === 0) {\n peg$fail(peg$c10);\n }\n }\n\n if (s7 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c11(s3, s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parseelementFormat() {\n var s0;\n s0 = peg$parsesimpleFormat();\n\n if (s0 === peg$FAILED) {\n s0 = peg$parsepluralFormat();\n\n if (s0 === peg$FAILED) {\n s0 = peg$parseselectOrdinalFormat();\n\n if (s0 === peg$FAILED) {\n s0 = peg$parseselectFormat();\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsesimpleFormat() {\n var s0, s1, s2, s3, s4, s5, s6;\n s0 = peg$currPos;\n\n if (input.substr(peg$currPos, 6) === peg$c12) {\n s1 = peg$c12;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n\n if (peg$silentFails === 0) {\n peg$fail(peg$c13);\n }\n }\n\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c14) {\n s1 = peg$c14;\n peg$currPos += 4;\n } else {\n s1 = peg$FAILED;\n\n if (peg$silentFails === 0) {\n peg$fail(peg$c15);\n }\n }\n\n if (s1 === peg$FAILED) {\n if (input.substr(peg$currPos, 4) === peg$c16) {\n s1 = peg$c16;\n peg$currPos += 4;\n } else {\n s1 = peg$FAILED;\n\n if (peg$silentFails === 0) {\n peg$fail(peg$c17);\n }\n }\n }\n }\n\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n\n if (s2 !== peg$FAILED) {\n s3 = peg$currPos;\n\n if (input.charCodeAt(peg$currPos) === 44) {\n s4 = peg$c7;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n\n if (peg$silentFails === 0) {\n peg$fail(peg$c8);\n }\n }\n\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n\n if (s5 !== peg$FAILED) {\n s6 = peg$parsechars();\n\n if (s6 !== peg$FAILED) {\n s4 = [s4, s5, s6];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n\n if (s3 === peg$FAILED) {\n s3 = null;\n }\n\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c18(s1, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parsepluralFormat() {\n var s0, s1, s2, s3, s4, s5;\n s0 = peg$currPos;\n\n if (input.substr(peg$currPos, 6) === peg$c19) {\n s1 = peg$c19;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n\n if (peg$silentFails === 0) {\n peg$fail(peg$c20);\n }\n }\n\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c7;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n\n if (peg$silentFails === 0) {\n peg$fail(peg$c8);\n }\n }\n\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n\n if (s4 !== peg$FAILED) {\n s5 = peg$parsepluralStyle();\n\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c21(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parseselectOrdinalFormat() {\n var s0, s1, s2, s3, s4, s5;\n s0 = peg$currPos;\n\n if (input.substr(peg$currPos, 13) === peg$c22) {\n s1 = peg$c22;\n peg$currPos += 13;\n } else {\n s1 = peg$FAILED;\n\n if (peg$silentFails === 0) {\n peg$fail(peg$c23);\n }\n }\n\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c7;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n\n if (peg$silentFails === 0) {\n peg$fail(peg$c8);\n }\n }\n\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n\n if (s4 !== peg$FAILED) {\n s5 = peg$parsepluralStyle();\n\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c24(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parseselectFormat() {\n var s0, s1, s2, s3, s4, s5, s6;\n s0 = peg$currPos;\n\n if (input.substr(peg$currPos, 6) === peg$c25) {\n s1 = peg$c25;\n peg$currPos += 6;\n } else {\n s1 = peg$FAILED;\n\n if (peg$silentFails === 0) {\n peg$fail(peg$c26);\n }\n }\n\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n\n if (s2 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 44) {\n s3 = peg$c7;\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n\n if (peg$silentFails === 0) {\n peg$fail(peg$c8);\n }\n }\n\n if (s3 !== peg$FAILED) {\n s4 = peg$parse_();\n\n if (s4 !== peg$FAILED) {\n s5 = [];\n s6 = peg$parseoptionalFormatPattern();\n\n if (s6 !== peg$FAILED) {\n while (s6 !== peg$FAILED) {\n s5.push(s6);\n s6 = peg$parseoptionalFormatPattern();\n }\n } else {\n s5 = peg$FAILED;\n }\n\n if (s5 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c27(s5);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parseselector() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n s1 = peg$currPos;\n\n if (input.charCodeAt(peg$currPos) === 61) {\n s2 = peg$c28;\n peg$currPos++;\n } else {\n s2 = peg$FAILED;\n\n if (peg$silentFails === 0) {\n peg$fail(peg$c29);\n }\n }\n\n if (s2 !== peg$FAILED) {\n s3 = peg$parsenumber();\n\n if (s3 !== peg$FAILED) {\n s2 = [s2, s3];\n s1 = s2;\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n } else {\n peg$currPos = s1;\n s1 = peg$FAILED;\n }\n\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n } else {\n s0 = s1;\n }\n\n if (s0 === peg$FAILED) {\n s0 = peg$parsechars();\n }\n\n return s0;\n }\n\n function peg$parseoptionalFormatPattern() {\n var s0, s1, s2, s3, s4, s5, s6, s7, s8;\n s0 = peg$currPos;\n s1 = peg$parse_();\n\n if (s1 !== peg$FAILED) {\n s2 = peg$parseselector();\n\n if (s2 !== peg$FAILED) {\n s3 = peg$parse_();\n\n if (s3 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 123) {\n s4 = peg$c5;\n peg$currPos++;\n } else {\n s4 = peg$FAILED;\n\n if (peg$silentFails === 0) {\n peg$fail(peg$c6);\n }\n }\n\n if (s4 !== peg$FAILED) {\n s5 = peg$parse_();\n\n if (s5 !== peg$FAILED) {\n s6 = peg$parsemessageFormatPattern();\n\n if (s6 !== peg$FAILED) {\n s7 = peg$parse_();\n\n if (s7 !== peg$FAILED) {\n if (input.charCodeAt(peg$currPos) === 125) {\n s8 = peg$c9;\n peg$currPos++;\n } else {\n s8 = peg$FAILED;\n\n if (peg$silentFails === 0) {\n peg$fail(peg$c10);\n }\n }\n\n if (s8 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c30(s2, s6);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parseoffset() {\n var s0, s1, s2, s3;\n s0 = peg$currPos;\n\n if (input.substr(peg$currPos, 7) === peg$c31) {\n s1 = peg$c31;\n peg$currPos += 7;\n } else {\n s1 = peg$FAILED;\n\n if (peg$silentFails === 0) {\n peg$fail(peg$c32);\n }\n }\n\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n\n if (s2 !== peg$FAILED) {\n s3 = peg$parsenumber();\n\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c33(s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parsepluralStyle() {\n var s0, s1, s2, s3, s4;\n s0 = peg$currPos;\n s1 = peg$parseoffset();\n\n if (s1 === peg$FAILED) {\n s1 = null;\n }\n\n if (s1 !== peg$FAILED) {\n s2 = peg$parse_();\n\n if (s2 !== peg$FAILED) {\n s3 = [];\n s4 = peg$parseoptionalFormatPattern();\n\n if (s4 !== peg$FAILED) {\n while (s4 !== peg$FAILED) {\n s3.push(s4);\n s4 = peg$parseoptionalFormatPattern();\n }\n } else {\n s3 = peg$FAILED;\n }\n\n if (s3 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c34(s1, s3);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n\n return s0;\n }\n\n function peg$parsews() {\n var s0, s1;\n peg$silentFails++;\n s0 = [];\n\n if (peg$c36.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n\n if (peg$silentFails === 0) {\n peg$fail(peg$c37);\n }\n }\n\n if (s1 !== peg$FAILED) {\n while (s1 !== peg$FAILED) {\n s0.push(s1);\n\n if (peg$c36.test(input.charAt(peg$currPos))) {\n s1 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n\n if (peg$silentFails === 0) {\n peg$fail(peg$c37);\n }\n }\n }\n } else {\n s0 = peg$FAILED;\n }\n\n peg$silentFails--;\n\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n\n if (peg$silentFails === 0) {\n peg$fail(peg$c35);\n }\n }\n\n return s0;\n }\n\n function peg$parse_() {\n var s0, s1, s2;\n peg$silentFails++;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsews();\n\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsews();\n }\n\n if (s1 !== peg$FAILED) {\n s0 = input.substring(s0, peg$currPos);\n } else {\n s0 = s1;\n }\n\n peg$silentFails--;\n\n if (s0 === peg$FAILED) {\n s1 = peg$FAILED;\n\n if (peg$silentFails === 0) {\n peg$fail(peg$c38);\n }\n }\n\n return s0;\n }\n\n function peg$parsedigit() {\n var s0;\n\n if (peg$c39.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n\n if (peg$silentFails === 0) {\n peg$fail(peg$c40);\n }\n }\n\n return s0;\n }\n\n function peg$parsehexDigit() {\n var s0;\n\n if (peg$c41.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n\n if (peg$silentFails === 0) {\n peg$fail(peg$c42);\n }\n }\n\n return s0;\n }\n\n function peg$parsenumber() {\n var s0, s1, s2, s3, s4, s5;\n s0 = peg$currPos;\n\n if (input.charCodeAt(peg$currPos) === 48) {\n s1 = peg$c43;\n peg$currPos++;\n } else {\n s1 = peg$FAILED;\n\n if (peg$silentFails === 0) {\n peg$fail(peg$c44);\n }\n }\n\n if (s1 === peg$FAILED) {\n s1 = peg$currPos;\n s2 = peg$currPos;\n\n if (peg$c45.test(input.charAt(peg$currPos))) {\n s3 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s3 = peg$FAILED;\n\n if (peg$silentFails === 0) {\n peg$fail(peg$c46);\n }\n }\n\n if (s3 !== peg$FAILED) {\n s4 = [];\n s5 = peg$parsedigit();\n\n while (s5 !== peg$FAILED) {\n s4.push(s5);\n s5 = peg$parsedigit();\n }\n\n if (s4 !== peg$FAILED) {\n s3 = [s3, s4];\n s2 = s3;\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n } else {\n peg$currPos = s2;\n s2 = peg$FAILED;\n }\n\n if (s2 !== peg$FAILED) {\n s1 = input.substring(s1, peg$currPos);\n } else {\n s1 = s2;\n }\n }\n\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c47(s1);\n }\n\n s0 = s1;\n return s0;\n }\n\n function peg$parsechar() {\n var s0, s1, s2, s3, s4, s5, s6, s7;\n\n if (peg$c48.test(input.charAt(peg$currPos))) {\n s0 = input.charAt(peg$currPos);\n peg$currPos++;\n } else {\n s0 = peg$FAILED;\n\n if (peg$silentFails === 0) {\n peg$fail(peg$c49);\n }\n }\n\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n\n if (input.substr(peg$currPos, 2) === peg$c50) {\n s1 = peg$c50;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n\n if (peg$silentFails === 0) {\n peg$fail(peg$c51);\n }\n }\n\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c52();\n }\n\n s0 = s1;\n\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n\n if (input.substr(peg$currPos, 2) === peg$c53) {\n s1 = peg$c53;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n\n if (peg$silentFails === 0) {\n peg$fail(peg$c54);\n }\n }\n\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c55();\n }\n\n s0 = s1;\n\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n\n if (input.substr(peg$currPos, 2) === peg$c56) {\n s1 = peg$c56;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n\n if (peg$silentFails === 0) {\n peg$fail(peg$c57);\n }\n }\n\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c58();\n }\n\n s0 = s1;\n\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n\n if (input.substr(peg$currPos, 2) === peg$c59) {\n s1 = peg$c59;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n\n if (peg$silentFails === 0) {\n peg$fail(peg$c60);\n }\n }\n\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c61();\n }\n\n s0 = s1;\n\n if (s0 === peg$FAILED) {\n s0 = peg$currPos;\n\n if (input.substr(peg$currPos, 2) === peg$c62) {\n s1 = peg$c62;\n peg$currPos += 2;\n } else {\n s1 = peg$FAILED;\n\n if (peg$silentFails === 0) {\n peg$fail(peg$c63);\n }\n }\n\n if (s1 !== peg$FAILED) {\n s2 = peg$currPos;\n s3 = peg$currPos;\n s4 = peg$parsehexDigit();\n\n if (s4 !== peg$FAILED) {\n s5 = peg$parsehexDigit();\n\n if (s5 !== peg$FAILED) {\n s6 = peg$parsehexDigit();\n\n if (s6 !== peg$FAILED) {\n s7 = peg$parsehexDigit();\n\n if (s7 !== peg$FAILED) {\n s4 = [s4, s5, s6, s7];\n s3 = s4;\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n } else {\n peg$currPos = s3;\n s3 = peg$FAILED;\n }\n\n if (s3 !== peg$FAILED) {\n s2 = input.substring(s2, peg$currPos);\n } else {\n s2 = s3;\n }\n\n if (s2 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c64(s2);\n s0 = s1;\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n } else {\n peg$currPos = s0;\n s0 = peg$FAILED;\n }\n }\n }\n }\n }\n }\n\n return s0;\n }\n\n function peg$parsechars() {\n var s0, s1, s2;\n s0 = peg$currPos;\n s1 = [];\n s2 = peg$parsechar();\n\n if (s2 !== peg$FAILED) {\n while (s2 !== peg$FAILED) {\n s1.push(s2);\n s2 = peg$parsechar();\n }\n } else {\n s1 = peg$FAILED;\n }\n\n if (s1 !== peg$FAILED) {\n peg$savedPos = s0;\n s1 = peg$c65(s1);\n }\n\n s0 = s1;\n return s0;\n }\n\n peg$result = peg$startRuleFunction();\n\n if (peg$result !== peg$FAILED && peg$currPos === input.length) {\n return peg$result;\n } else {\n if (peg$result !== peg$FAILED && peg$currPos < input.length) {\n peg$fail({\n type: \"end\",\n description: \"end of input\"\n });\n }\n\n throw peg$buildException(null, peg$maxFailExpected, peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null, peg$maxFailPos < input.length ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1) : peg$computeLocation(peg$maxFailPos, peg$maxFailPos));\n }\n }\n\n return {\n SyntaxError: peg$SyntaxError,\n parse: peg$parse\n };\n}();","\"use strict\";\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 */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\n\n\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\n\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\n\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;","import getBoundingClientRect from \"../getBoundingClientRect\";\nvar emptyArray = [];\n\nvar emptyFunction = function emptyFunction() {};\n\nvar normalizeTouches = function normalizeTouches(touches) {\n if (!touches) {\n return emptyArray;\n }\n\n return Array.prototype.slice.call(touches).map(function (touch) {\n var identifier = touch.identifier > 20 ? touch.identifier % 20 : touch.identifier;\n var rect;\n return {\n _normalized: true,\n clientX: touch.clientX,\n clientY: touch.clientY,\n force: touch.force,\n\n get locationX() {\n rect = rect || getBoundingClientRect(touch.target);\n\n if (rect) {\n return touch.pageX - rect.left;\n }\n },\n\n get locationY() {\n rect = rect || getBoundingClientRect(touch.target);\n\n if (rect) {\n return touch.pageY - rect.top;\n }\n },\n\n identifier: identifier,\n pageX: touch.pageX,\n pageY: touch.pageY,\n radiusX: touch.radiusX,\n radiusY: touch.radiusY,\n rotationAngle: touch.rotationAngle,\n screenX: touch.screenX,\n screenY: touch.screenY,\n target: touch.target,\n timestamp: Date.now()\n };\n });\n};\n\nfunction normalizeTouchEvent(nativeEvent) {\n var changedTouches = normalizeTouches(nativeEvent.changedTouches);\n var touches = normalizeTouches(nativeEvent.touches);\n var preventDefault = typeof nativeEvent.preventDefault === 'function' ? nativeEvent.preventDefault.bind(nativeEvent) : emptyFunction;\n var stopImmediatePropagation = typeof nativeEvent.stopImmediatePropagation === 'function' ? nativeEvent.stopImmediatePropagation.bind(nativeEvent) : emptyFunction;\n var stopPropagation = typeof nativeEvent.stopPropagation === 'function' ? nativeEvent.stopPropagation.bind(nativeEvent) : emptyFunction;\n var singleChangedTouch = changedTouches[0];\n var event = {\n _normalized: true,\n bubbles: nativeEvent.bubbles,\n cancelable: nativeEvent.cancelable,\n changedTouches: changedTouches,\n defaultPrevented: nativeEvent.defaultPrevented,\n identifier: singleChangedTouch ? singleChangedTouch.identifier : undefined,\n\n get locationX() {\n return singleChangedTouch ? singleChangedTouch.locationX : undefined;\n },\n\n get locationY() {\n return singleChangedTouch ? singleChangedTouch.locationY : undefined;\n },\n\n pageX: singleChangedTouch ? singleChangedTouch.pageX : nativeEvent.pageX,\n pageY: singleChangedTouch ? singleChangedTouch.pageY : nativeEvent.pageY,\n preventDefault: preventDefault,\n stopImmediatePropagation: stopImmediatePropagation,\n stopPropagation: stopPropagation,\n target: nativeEvent.target,\n timestamp: Date.now(),\n touches: touches,\n type: nativeEvent.type,\n which: nativeEvent.which\n };\n return event;\n}\n\nfunction normalizeMouseEvent(nativeEvent) {\n var rect;\n var touches = [{\n _normalized: true,\n clientX: nativeEvent.clientX,\n clientY: nativeEvent.clientY,\n force: nativeEvent.force,\n identifier: 0,\n\n get locationX() {\n rect = rect || getBoundingClientRect(nativeEvent.target);\n\n if (rect) {\n return nativeEvent.pageX - rect.left;\n }\n },\n\n get locationY() {\n rect = rect || getBoundingClientRect(nativeEvent.target);\n\n if (rect) {\n return nativeEvent.pageY - rect.top;\n }\n },\n\n pageX: nativeEvent.pageX,\n pageY: nativeEvent.pageY,\n screenX: nativeEvent.screenX,\n screenY: nativeEvent.screenY,\n target: nativeEvent.target,\n timestamp: Date.now()\n }];\n var preventDefault = typeof nativeEvent.preventDefault === 'function' ? nativeEvent.preventDefault.bind(nativeEvent) : emptyFunction;\n var stopImmediatePropagation = typeof nativeEvent.stopImmediatePropagation === 'function' ? nativeEvent.stopImmediatePropagation.bind(nativeEvent) : emptyFunction;\n var stopPropagation = typeof nativeEvent.stopPropagation === 'function' ? nativeEvent.stopPropagation.bind(nativeEvent) : emptyFunction;\n return {\n _normalized: true,\n bubbles: nativeEvent.bubbles,\n cancelable: nativeEvent.cancelable,\n changedTouches: touches,\n defaultPrevented: nativeEvent.defaultPrevented,\n identifier: touches[0].identifier,\n\n get locationX() {\n return touches[0].locationX;\n },\n\n get locationY() {\n return touches[0].locationY;\n },\n\n pageX: nativeEvent.pageX,\n pageY: nativeEvent.pageY,\n preventDefault: preventDefault,\n stopImmediatePropagation: stopImmediatePropagation,\n stopPropagation: stopPropagation,\n target: nativeEvent.target,\n timestamp: touches[0].timestamp,\n touches: nativeEvent.type === 'mouseup' ? emptyArray : touches,\n type: nativeEvent.type,\n which: nativeEvent.which\n };\n}\n\nfunction normalizeNativeEvent(nativeEvent) {\n if (!nativeEvent || nativeEvent._normalized) {\n return nativeEvent;\n }\n\n var eventType = nativeEvent.type || '';\n var mouse = eventType.indexOf('mouse') >= 0;\n\n if (mouse) {\n return normalizeMouseEvent(nativeEvent);\n } else {\n return normalizeTouchEvent(nativeEvent);\n }\n}\n\nexport default normalizeNativeEvent;","import normalizeNativeEvent from \"../normalizeNativeEvent\";\nimport ReactDOMUnstableNativeDependencies from 'react-dom/unstable-native-dependencies';\nvar ResponderEventPlugin = ReactDOMUnstableNativeDependencies.ResponderEventPlugin,\n ResponderTouchHistoryStore = ReactDOMUnstableNativeDependencies.ResponderTouchHistoryStore;\n\nif (!ResponderEventPlugin.eventTypes.responderMove.dependencies) {\n var topMouseDown = 'topMouseDown';\n var topMouseMove = 'topMouseMove';\n var topMouseUp = 'topMouseUp';\n var topScroll = 'topScroll';\n var topSelectionChange = 'topSelectionChange';\n var topTouchCancel = 'topTouchCancel';\n var topTouchEnd = 'topTouchEnd';\n var topTouchMove = 'topTouchMove';\n var topTouchStart = 'topTouchStart';\n var endDependencies = [topTouchCancel, topTouchEnd, topMouseUp];\n var moveDependencies = [topTouchMove, topMouseMove];\n var startDependencies = [topTouchStart, topMouseDown];\n ResponderEventPlugin.eventTypes.responderMove.dependencies = moveDependencies;\n ResponderEventPlugin.eventTypes.responderEnd.dependencies = endDependencies;\n ResponderEventPlugin.eventTypes.responderStart.dependencies = startDependencies;\n ResponderEventPlugin.eventTypes.responderRelease.dependencies = endDependencies;\n ResponderEventPlugin.eventTypes.responderTerminationRequest.dependencies = [];\n ResponderEventPlugin.eventTypes.responderGrant.dependencies = [];\n ResponderEventPlugin.eventTypes.responderReject.dependencies = [];\n ResponderEventPlugin.eventTypes.responderTerminate.dependencies = [];\n ResponderEventPlugin.eventTypes.moveShouldSetResponder.dependencies = moveDependencies;\n ResponderEventPlugin.eventTypes.selectionChangeShouldSetResponder.dependencies = [topSelectionChange];\n ResponderEventPlugin.eventTypes.scrollShouldSetResponder.dependencies = [topScroll];\n ResponderEventPlugin.eventTypes.startShouldSetResponder.dependencies = startDependencies;\n}\n\nvar lastActiveTouchTimestamp = null;\nvar EMULATED_MOUSE_THERSHOLD_MS = 1000;\nvar originalExtractEvents = ResponderEventPlugin.extractEvents;\n\nResponderEventPlugin.extractEvents = function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {\n var hasActiveTouches = ResponderTouchHistoryStore.touchHistory.numberActiveTouches > 0;\n var eventType = nativeEvent.type;\n var shouldSkipMouseAfterTouch = false;\n\n if (eventType.indexOf('touch') > -1) {\n lastActiveTouchTimestamp = Date.now();\n } else if (lastActiveTouchTimestamp && eventType.indexOf('mouse') > -1) {\n var now = Date.now();\n shouldSkipMouseAfterTouch = now - lastActiveTouchTimestamp < EMULATED_MOUSE_THERSHOLD_MS;\n }\n\n if ((eventType === 'mousemove' || eventType === 'mouseup') && !hasActiveTouches || nativeEvent.button === 1 || nativeEvent.button === 2 || shouldSkipMouseAfterTouch) {\n return;\n }\n\n var normalizedEvent = normalizeNativeEvent(nativeEvent);\n return originalExtractEvents.call(ResponderEventPlugin, topLevelType, targetInst, normalizedEvent, nativeEventTarget);\n};\n\nexport default ResponderEventPlugin;","import AccessibilityUtil from \"../../modules/AccessibilityUtil\";\nimport createDOMProps from \"../../modules/createDOMProps\";\nimport { injectEventPluginsByName } from 'react-dom/unstable-native-dependencies';\nimport normalizeNativeEvent from \"../../modules/normalizeNativeEvent\";\nimport React from 'react';\nimport ResponderEventPlugin from \"../../modules/ResponderEventPlugin\";\ninjectEventPluginsByName({\n ResponderEventPlugin: ResponderEventPlugin\n});\n\nvar isModifiedEvent = function isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n};\n\nvar eventHandlerNames = {\n onBlur: true,\n onClick: true,\n onClickCapture: true,\n onContextMenu: true,\n onFocus: true,\n onResponderRelease: true,\n onTouchCancel: true,\n onTouchCancelCapture: true,\n onTouchEnd: true,\n onTouchEndCapture: true,\n onTouchMove: true,\n onTouchMoveCapture: true,\n onTouchStart: true,\n onTouchStartCapture: true\n};\n\nvar adjustProps = function adjustProps(domProps) {\n var onClick = domProps.onClick,\n onResponderRelease = domProps.onResponderRelease,\n role = domProps.role;\n var isButtonLikeRole = AccessibilityUtil.buttonLikeRoles[role];\n var isDisabled = AccessibilityUtil.isDisabled(domProps);\n var isLinkRole = role === 'link';\n Object.keys(domProps).forEach(function (propName) {\n var prop = domProps[propName];\n var isEventHandler = typeof prop === 'function' && eventHandlerNames[propName];\n\n if (isEventHandler) {\n if (isButtonLikeRole && isDisabled) {\n domProps[propName] = undefined;\n } else {\n domProps[propName] = function (e) {\n e.nativeEvent = normalizeNativeEvent(e.nativeEvent);\n return prop(e);\n };\n }\n }\n });\n\n if (isLinkRole && onResponderRelease) {\n domProps.onClick = function (e) {\n if (!e.isDefaultPrevented() && !isModifiedEvent(e.nativeEvent) && !domProps.target) {\n e.preventDefault();\n }\n };\n }\n\n if (isButtonLikeRole && !isDisabled) {\n domProps.onKeyPress = function (e) {\n if (!e.isDefaultPrevented() && (e.which === 13 || e.which === 32)) {\n e.preventDefault();\n\n if (onClick) {\n onClick(e);\n }\n }\n };\n }\n};\n\nvar createElement = function createElement(component, props) {\n var accessibilityComponent;\n\n if (component && component.constructor === String) {\n accessibilityComponent = AccessibilityUtil.propsToAccessibilityComponent(props);\n }\n\n var Component = accessibilityComponent || component;\n var domProps = createDOMProps(Component, props);\n adjustProps(domProps);\n\n for (var _len = arguments.length, children = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n children[_key - 2] = arguments[_key];\n }\n\n return React.createElement.apply(React, [Component, domProps].concat(children));\n};\n\nexport default createElement;","var unitlessNumbers = {\n animationIterationCount: true,\n borderImageOutset: true,\n borderImageSlice: true,\n borderImageWidth: true,\n boxFlex: true,\n boxFlexGroup: true,\n boxOrdinalGroup: true,\n columnCount: true,\n flex: true,\n flexGrow: true,\n flexOrder: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n fontWeight: true,\n gridRow: true,\n gridColumn: true,\n lineClamp: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n fillOpacity: true,\n floodOpacity: true,\n stopOpacity: true,\n strokeDasharray: true,\n strokeDashoffset: true,\n strokeMiterlimit: true,\n strokeOpacity: true,\n strokeWidth: true,\n scale: true,\n scaleX: true,\n scaleY: true,\n scaleZ: true,\n shadowOpacity: true\n};\nvar prefixes = ['ms', 'Moz', 'O', 'Webkit'];\n\nvar prefixKey = function prefixKey(prefix, key) {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n};\n\nObject.keys(unitlessNumbers).forEach(function (prop) {\n prefixes.forEach(function (prefix) {\n unitlessNumbers[prefixKey(prefix, prop)] = unitlessNumbers[prop];\n });\n});\nexport default unitlessNumbers;","var aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = toLength(O.length);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = flexboxOld;\nvar alternativeValues = {\n 'space-around': 'justify',\n 'space-between': 'justify',\n 'flex-start': 'start',\n 'flex-end': 'end',\n 'wrap-reverse': 'multiple',\n wrap: 'multiple'\n};\nvar alternativeProps = {\n alignItems: 'WebkitBoxAlign',\n justifyContent: 'WebkitBoxPack',\n flexWrap: 'WebkitBoxLines',\n flexGrow: 'WebkitBoxFlex'\n};\n\nfunction flexboxOld(property, value, style) {\n if (property === 'flexDirection' && typeof value === 'string') {\n if (value.indexOf('column') > -1) {\n style.WebkitBoxOrient = 'vertical';\n } else {\n style.WebkitBoxOrient = 'horizontal';\n }\n\n if (value.indexOf('reverse') > -1) {\n style.WebkitBoxDirection = 'reverse';\n } else {\n style.WebkitBoxDirection = 'normal';\n }\n }\n\n if (alternativeProps.hasOwnProperty(property)) {\n style[alternativeProps[property]] = alternativeValues[value] || value;\n }\n}","var emptyObject = {};\nvar objects = {};\nvar prefix = 'r';\nvar uniqueID = 1;\n\nvar createKey = function createKey(id) {\n return prefix + \"-\" + id;\n};\n\nvar ReactNativePropRegistry = function () {\n function ReactNativePropRegistry() {}\n\n ReactNativePropRegistry.register = function register(object) {\n var id = uniqueID++;\n\n if (process.env.NODE_ENV !== 'production') {\n Object.freeze(object);\n }\n\n var key = createKey(id);\n objects[key] = object;\n return id;\n };\n\n ReactNativePropRegistry.getByID = function getByID(id) {\n if (!id) {\n return emptyObject;\n }\n\n var key = createKey(id);\n var object = objects[key];\n\n if (!object) {\n console.warn('Invalid style with id `' + id + '`. Skipping ...');\n return emptyObject;\n }\n\n return object;\n };\n\n return ReactNativePropRegistry;\n}();\n\nexport { ReactNativePropRegistry as default };","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","/**\n * Returns a function, that, as long as it continues to be invoked, will not\n * be triggered. The function will be called after it stops being called for\n * N milliseconds. If `immediate` is passed, trigger the function on the\n * leading edge, instead of the trailing. The function also has a property 'clear' \n * that is a function which will clear the timer to prevent previously scheduled executions. \n *\n * @source underscore.js\n * @see http://unscriptable.com/2009/03/20/debouncing-javascript-methods/\n * @param {Function} function to wrap\n * @param {Number} timeout in ms (`100`)\n * @param {Boolean} whether to execute at the beginning (`false`)\n * @api public\n */\nfunction debounce(func, wait, immediate) {\n var timeout, args, context, timestamp, result;\n if (null == wait) wait = 100;\n\n function later() {\n var last = Date.now() - timestamp;\n\n if (last < wait && last >= 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n\n if (!immediate) {\n result = func.apply(context, args);\n context = args = null;\n }\n }\n }\n\n ;\n\n var debounced = function debounced() {\n context = this;\n args = arguments;\n timestamp = Date.now();\n var callNow = immediate && !timeout;\n if (!timeout) timeout = setTimeout(later, wait);\n\n if (callNow) {\n result = func.apply(context, args);\n context = args = null;\n }\n\n return result;\n };\n\n debounced.clear = function () {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n };\n\n debounced.flush = function () {\n if (timeout) {\n result = func.apply(context, args);\n context = args = null;\n clearTimeout(timeout);\n timeout = null;\n }\n };\n\n return debounced;\n}\n\n; // Adds compatibility for ES modules\n\ndebounce.debounce = debounce;\nmodule.exports = debounce;","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = isPrefixedValue;\nvar regex = /-webkit-|-moz-|-ms-/;\n\nfunction isPrefixedValue(value) {\n return typeof value === 'string' && regex.test(value);\n}\n\nmodule.exports = exports['default'];","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = imageSet;\n\nvar _isPrefixedValue = require('css-in-js-utils/lib/isPrefixedValue');\n\nvar _isPrefixedValue2 = _interopRequireDefault(_isPrefixedValue);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n} // http://caniuse.com/#feat=css-image-set\n\n\nvar prefixes = ['-webkit-', ''];\n\nfunction imageSet(property, value) {\n if (typeof value === 'string' && !(0, _isPrefixedValue2.default)(value) && value.indexOf('image-set(') > -1) {\n return prefixes.map(function (prefix) {\n return value.replace(/image-set\\(/g, prefix + 'image-set(');\n });\n }\n}","import { findDOMNode } from 'react-dom';\n\nvar findNodeHandle = function findNodeHandle(component) {\n var node;\n\n try {\n node = findDOMNode(component);\n } catch (e) {}\n\n return node;\n};\n\nexport default findNodeHandle;","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = backgroundClip; // https://developer.mozilla.org/en-US/docs/Web/CSS/background-clip#Browser_compatibility\n\nfunction backgroundClip(property, value) {\n if (typeof value === 'string' && value === 'text') {\n return ['-webkit-text', 'text'];\n }\n}","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest;","export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","/**\n * 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\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n/**\n * Simple, lightweight module assisting with the detection and context of\n * Worker. Helps avoid circular dependencies and allows code to reason about\n * whether or not they are in a Worker, even if they never include the main\n * `ReactWorker` dependency.\n */\n\nvar ExecutionEnvironment = {\n canUseDOM: canUseDOM,\n canUseWorkers: typeof Worker !== 'undefined',\n canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent),\n canUseViewport: canUseDOM && !!window.screen,\n isInWorker: !canUseDOM // For now, this is true - might change in the future.\n\n};\nmodule.exports = ExecutionEnvironment;","const plugins = require(`./api-runner-browser-plugins`)\nconst {\n getResourcesForPathname,\n getResourcesForPathnameSync,\n getResourceURLsForPathname,\n loadPage,\n loadPageSync,\n} = require(`./loader`).publicLoader\n\nexports.apiRunner = (api, args = {}, defaultReturn, argTransform) => {\n // Hooks for gatsby-cypress's API handler\n if (process.env.CYPRESS_SUPPORT) {\n if (window.___apiHandler) {\n window.___apiHandler(api)\n } else if (window.___resolvedAPIs) {\n window.___resolvedAPIs.push(api)\n } else {\n window.___resolvedAPIs = [api]\n }\n }\n\n let results = plugins.map(plugin => {\n if (!plugin.plugin[api]) {\n return undefined\n }\n\n // Deprecated April 2019. Use `loadPageSync` instead\n args.getResourcesForPathnameSync = getResourcesForPathnameSync\n // Deprecated April 2019. Use `loadPage` instead\n args.getResourcesForPathname = getResourcesForPathname\n args.getResourceURLsForPathname = getResourceURLsForPathname\n args.loadPage = loadPage\n args.loadPageSync = loadPageSync\n\n const result = plugin.plugin[api](args, plugin.options)\n if (result && argTransform) {\n args = argTransform({ args, result, plugin })\n }\n return result\n })\n\n // Filter out undefined results.\n results = results.filter(result => typeof result !== `undefined`)\n\n if (results.length > 0) {\n return results\n } else if (defaultReturn) {\n return [defaultReturn]\n } else {\n return []\n }\n}\n\nexports.apiRunnerAsync = (api, args, defaultReturn) =>\n plugins.reduce(\n (previous, next) =>\n next.plugin[api]\n ? previous.then(() => next.plugin[api](args, next.options))\n : previous,\n Promise.resolve()\n )\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar has = require('../internals/has');\n\nvar defineProperty = Object.defineProperty;\nvar cache = {};\n\nvar thrower = function (it) { throw it; };\n\nmodule.exports = function (METHOD_NAME, options) {\n if (has(cache, METHOD_NAME)) return cache[METHOD_NAME];\n if (!options) options = {};\n var method = [][METHOD_NAME];\n var ACCESSORS = has(options, 'ACCESSORS') ? options.ACCESSORS : false;\n var argument0 = has(options, 0) ? options[0] : thrower;\n var argument1 = has(options, 1) ? options[1] : undefined;\n\n return cache[METHOD_NAME] = !!method && !fails(function () {\n if (ACCESSORS && !DESCRIPTORS) return true;\n var O = { length: -1 };\n\n if (ACCESSORS) defineProperty(O, 1, { enumerable: true, get: thrower });\n else O[1] = 1;\n\n method.call(O, argument0, argument1);\n });\n};\n","export var STYLE_ELEMENT_ID = 'react-native-stylesheet';\nexport var STYLE_GROUPS = {\n reset: 0,\n modality: 0.1,\n classicReset: 0.5,\n classic: 1,\n atomic: 2.2,\n custom: {\n borderColor: 2,\n borderRadius: 2,\n borderStyle: 2,\n borderWidth: 2,\n display: 2,\n flex: 2,\n margin: 2,\n overflow: 2,\n overscrollBehavior: 2,\n padding: 2,\n marginHorizontal: 2.1,\n marginVertical: 2.1,\n paddingHorizontal: 2.1,\n paddingVertical: 2.1\n }\n};\nexport var STYLE_SHORT_FORM_EXPANSIONS = {\n borderColor: ['borderTopColor', 'borderRightColor', 'borderBottomColor', 'borderLeftColor'],\n borderRadius: ['borderTopLeftRadius', 'borderTopRightRadius', 'borderBottomRightRadius', 'borderBottomLeftRadius'],\n borderStyle: ['borderTopStyle', 'borderRightStyle', 'borderBottomStyle', 'borderLeftStyle'],\n borderWidth: ['borderTopWidth', 'borderRightWidth', 'borderBottomWidth', 'borderLeftWidth'],\n margin: ['marginTop', 'marginRight', 'marginBottom', 'marginLeft'],\n marginHorizontal: ['marginRight', 'marginLeft'],\n marginVertical: ['marginTop', 'marginBottom'],\n overflow: ['overflowX', 'overflowY'],\n overscrollBehavior: ['overscrollBehaviorX', 'overscrollBehaviorY'],\n padding: ['paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft'],\n paddingHorizontal: ['paddingRight', 'paddingLeft'],\n paddingVertical: ['paddingTop', 'paddingBottom']\n};\nexport var MONOSPACE_FONT_STACK = 'monospace,monospace';\nexport var SYSTEM_FONT_STACK = 'system-ui,-apple-system,BlinkMacSystemFont,\"Segoe UI\",Roboto,Ubuntu,\"Helvetica Neue\",sans-serif';","import { unmountComponentAtNode } from 'react-dom';\nexport default unmountComponentAtNode;","function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nimport StyleSheet from \"../StyleSheet\";\nimport View from \"../View\";\nimport { any, node } from 'prop-types';\nimport React, { Component } from 'react';\n\nvar AppContainer = function (_Component) {\n _inheritsLoose(AppContainer, _Component);\n\n function AppContainer() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _Component.call.apply(_Component, [this].concat(args)) || this;\n _this.state = {\n mainKey: 1\n };\n return _this;\n }\n\n var _proto = AppContainer.prototype;\n\n _proto.getChildContext = function getChildContext() {\n return {\n rootTag: this.props.rootTag\n };\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n WrapperComponent = _this$props.WrapperComponent;\n var innerView = React.createElement(View, {\n children: children,\n key: this.state.mainKey,\n pointerEvents: \"box-none\",\n style: styles.appContainer\n });\n\n if (WrapperComponent) {\n innerView = React.createElement(WrapperComponent, null, innerView);\n }\n\n return React.createElement(View, {\n pointerEvents: \"box-none\",\n style: styles.appContainer\n }, innerView);\n };\n\n return AppContainer;\n}(Component);\n\nAppContainer.childContextTypes = {\n rootTag: any\n};\nexport { AppContainer as default };\nvar styles = StyleSheet.create({\n appContainer: {\n flex: 1\n }\n});","import { hydrate } from 'react-dom';\nexport default hydrate;","function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nimport AppContainer from \"./AppContainer\";\nimport invariant from 'fbjs/lib/invariant';\nimport hydrate from \"../../modules/hydrate\";\nimport render from \"../render\";\nimport styleResolver from \"../StyleSheet/styleResolver\";\nimport React from 'react';\nvar renderFn = process.env.NODE_ENV !== 'production' ? render : hydrate;\nexport default function renderApplication(RootComponent, initialProps, rootTag, WrapperComponent, callback) {\n invariant(rootTag, 'Expect to have a valid rootTag, instead got ', rootTag);\n renderFn(React.createElement(AppContainer, {\n WrapperComponent: WrapperComponent,\n rootTag: rootTag\n }, React.createElement(RootComponent, initialProps)), rootTag, callback);\n}\nexport function getApplication(RootComponent, initialProps, WrapperComponent) {\n var element = React.createElement(AppContainer, {\n WrapperComponent: WrapperComponent,\n rootTag: {}\n }, React.createElement(RootComponent, initialProps));\n\n var getStyleElement = function getStyleElement(props) {\n var sheet = styleResolver.getStyleSheet();\n return React.createElement(\"style\", _extends({}, props, {\n dangerouslySetInnerHTML: {\n __html: sheet.textContent\n },\n id: sheet.id\n }));\n };\n\n return {\n element: element,\n getStyleElement: getStyleElement\n };\n}","function _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n var ownKeys = Object.keys(source);\n\n if (typeof Object.getOwnPropertySymbols === 'function') {\n ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {\n return Object.getOwnPropertyDescriptor(source, sym).enumerable;\n }));\n }\n\n ownKeys.forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n }\n\n return target;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nimport invariant from 'fbjs/lib/invariant';\nimport unmountComponentAtNode from \"../unmountComponentAtNode\";\nimport renderApplication, { getApplication as _getApplication } from \"./renderApplication\";\nvar emptyObject = {};\nvar runnables = {};\n\nvar componentProviderInstrumentationHook = function componentProviderInstrumentationHook(component) {\n return component();\n};\n\nvar wrapperComponentProvider;\n\nvar AppRegistry = function () {\n function AppRegistry() {}\n\n AppRegistry.getAppKeys = function getAppKeys() {\n return Object.keys(runnables);\n };\n\n AppRegistry.getApplication = function getApplication(appKey, appParameters) {\n invariant(runnables[appKey] && runnables[appKey].getApplication, \"Application \" + appKey + \" has not been registered. \" + 'This is either due to an import error during initialization or failure to call AppRegistry.registerComponent.');\n return runnables[appKey].getApplication(appParameters);\n };\n\n AppRegistry.registerComponent = function registerComponent(appKey, componentProvider) {\n runnables[appKey] = {\n getApplication: function getApplication(appParameters) {\n return _getApplication(componentProviderInstrumentationHook(componentProvider), appParameters ? appParameters.initialProps : emptyObject, wrapperComponentProvider && wrapperComponentProvider(appParameters));\n },\n run: function run(appParameters) {\n return renderApplication(componentProviderInstrumentationHook(componentProvider), appParameters.initialProps || emptyObject, appParameters.rootTag, wrapperComponentProvider && wrapperComponentProvider(appParameters), appParameters.callback);\n }\n };\n return appKey;\n };\n\n AppRegistry.registerConfig = function registerConfig(config) {\n config.forEach(function (_ref) {\n var appKey = _ref.appKey,\n component = _ref.component,\n run = _ref.run;\n\n if (run) {\n AppRegistry.registerRunnable(appKey, run);\n } else {\n invariant(component, 'No component provider passed in');\n AppRegistry.registerComponent(appKey, component);\n }\n });\n };\n\n AppRegistry.registerRunnable = function registerRunnable(appKey, run) {\n runnables[appKey] = {\n run: run\n };\n return appKey;\n };\n\n AppRegistry.runApplication = function runApplication(appKey, appParameters) {\n var isDevelopment = process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test';\n\n if (isDevelopment) {\n var params = _objectSpread({}, appParameters);\n\n params.rootTag = \"#\" + params.rootTag.id;\n console.log(\"Running application \\\"\" + appKey + \"\\\" with appParams:\\n\", params, \"\\nDevelopment-level warnings: \" + (isDevelopment ? 'ON' : 'OFF') + \".\" + (\"\\nPerformance optimizations: \" + (isDevelopment ? 'OFF' : 'ON') + \".\"));\n }\n\n invariant(runnables[appKey] && runnables[appKey].run, \"Application \\\"\" + appKey + \"\\\" has not been registered. \" + 'This is either due to an import error during initialization or failure to call AppRegistry.registerComponent.');\n runnables[appKey].run(appParameters);\n };\n\n AppRegistry.setComponentProviderInstrumentationHook = function setComponentProviderInstrumentationHook(hook) {\n componentProviderInstrumentationHook = hook;\n };\n\n AppRegistry.setWrapperComponentProvider = function setWrapperComponentProvider(provider) {\n wrapperComponentProvider = provider;\n };\n\n AppRegistry.unmountApplicationComponentAtRootTag = function unmountApplicationComponentAtRootTag(rootTag) {\n unmountComponentAtNode(rootTag);\n };\n\n return AppRegistry;\n}();\n\nexport { AppRegistry as default };","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = flexboxIE;\nvar alternativeValues = {\n 'space-around': 'distribute',\n 'space-between': 'justify',\n 'flex-start': 'start',\n 'flex-end': 'end'\n};\nvar alternativeProps = {\n alignContent: 'msFlexLinePack',\n alignSelf: 'msFlexItemAlign',\n alignItems: 'msFlexAlign',\n justifyContent: 'msFlexPack',\n order: 'msFlexOrder',\n flexGrow: 'msFlexPositive',\n flexShrink: 'msFlexNegative',\n flexBasis: 'msFlexPreferredSize' // Full expanded syntax is flex-grow | flex-shrink | flex-basis.\n\n};\nvar flexShorthandMappings = {\n auto: '1 1 auto',\n inherit: 'inherit',\n initial: '0 1 auto',\n none: '0 0 auto',\n unset: 'unset'\n};\nvar isUnitlessNumber = /^\\d+(\\.\\d+)?$/;\n\nfunction flexboxIE(property, value, style) {\n if (Object.prototype.hasOwnProperty.call(alternativeProps, property)) {\n style[alternativeProps[property]] = alternativeValues[value] || value;\n }\n\n if (property === 'flex') {\n // For certain values we can do straight mappings based on the spec\n // for the expansions.\n if (Object.prototype.hasOwnProperty.call(flexShorthandMappings, value)) {\n style.msFlex = flexShorthandMappings[value];\n return;\n } // Here we have no direct mapping, so we favor looking for a\n // unitless positive number as that will be the most common use-case.\n\n\n if (isUnitlessNumber.test(value)) {\n style.msFlex = value + ' 1 0%';\n return;\n } // The next thing we can look for is if there are multiple values.\n\n\n var flexValues = value.split(/\\s/); // If we only have a single value that wasn't a positive unitless\n // or a pre-mapped value, then we can assume it is a unit value.\n\n switch (flexValues.length) {\n case 1:\n style.msFlex = '1 1 ' + value;\n return;\n\n case 2:\n // If we have 2 units, then we expect that the first will\n // always be a unitless number and represents flex-grow.\n // The second unit will represent flex-shrink for a unitless\n // value, or flex-basis otherwise.\n if (isUnitlessNumber.test(flexValues[1])) {\n style.msFlex = flexValues[0] + ' ' + flexValues[1] + ' 0%';\n } else {\n style.msFlex = flexValues[0] + ' 1 ' + flexValues[1];\n }\n\n return;\n\n default:\n style.msFlex = value;\n }\n }\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = prefixValue;\n\nfunction prefixValue(plugins, property, value, style, metaData) {\n for (var i = 0, len = plugins.length; i < len; ++i) {\n var processedValue = plugins[i](property, value, style, metaData); // we can stop processing if a value is returned\n // as all plugin criteria are unique\n\n if (processedValue) {\n return processedValue;\n }\n }\n}","import { usePress } from \"@react-aria/interactions\";\nimport { useFocusable } from \"@react-aria/focus\";\nimport { filterDOMProps, mergeProps, chain } from \"@react-aria/utils\";\nimport _babelRuntimeHelpersEsmExtends from \"@babel/runtime/helpers/esm/extends\";\nexport function useButton(props, ref) {\n var _props$elementType = props.elementType,\n elementType = _props$elementType === void 0 ? 'button' : _props$elementType,\n isDisabled = props.isDisabled,\n onPress = props.onPress,\n onPressStart = props.onPressStart,\n onPressEnd = props.onPressEnd,\n onPressChange = props.onPressChange,\n deprecatedOnClick = props.onClick,\n href = props.href,\n target = props.target,\n rel = props.rel,\n _props$type = props.type,\n type = _props$type === void 0 ? 'button' : _props$type;\n var additionalProps;\n\n if (elementType !== 'button') {\n additionalProps = {\n role: 'button',\n tabIndex: isDisabled ? undefined : 0,\n href: elementType === 'a' && isDisabled ? undefined : href,\n target: elementType === 'a' ? target : undefined,\n type: elementType === 'input' ? type : undefined,\n disabled: elementType === 'input' ? isDisabled : undefined,\n 'aria-disabled': !isDisabled || elementType === 'input' ? undefined : isDisabled,\n rel: elementType === 'a' ? rel : undefined\n };\n }\n\n var _usePress = usePress({\n onPressStart: onPressStart,\n onPressEnd: onPressEnd,\n onPressChange: onPressChange,\n onPress: onPress,\n isDisabled: isDisabled,\n ref: ref\n }),\n pressProps = _usePress.pressProps,\n isPressed = _usePress.isPressed;\n\n var _useFocusable = useFocusable(props, ref),\n focusableProps = _useFocusable.focusableProps;\n\n var buttonProps = mergeProps(focusableProps, pressProps);\n buttonProps = mergeProps(buttonProps, filterDOMProps(props, {\n labelable: true\n }));\n return {\n isPressed: isPressed,\n buttonProps: mergeProps(buttonProps, _babelRuntimeHelpersEsmExtends({\n 'aria-haspopup': props['aria-haspopup'],\n 'aria-expanded': props['aria-expanded'],\n 'aria-controls': props['aria-controls'],\n 'aria-pressed': props['aria-pressed'],\n disabled: isDisabled,\n type: type\n }, additionalProps || {}, {\n onClick: function onClick(e) {\n if (deprecatedOnClick) {\n deprecatedOnClick(e);\n console.warn('onClick is deprecated, please use onPress');\n }\n }\n }))\n };\n}\nexport function useToggleButton(props, state, ref) {\n var isSelected = state.isSelected;\n\n var _useButton = useButton(_babelRuntimeHelpersEsmExtends({}, props, {\n onPress: chain(state.toggle, props.onPress)\n }), ref),\n isPressed = _useButton.isPressed,\n buttonProps = _useButton.buttonProps;\n\n return {\n isPressed: isPressed,\n buttonProps: mergeProps(buttonProps, {\n 'aria-pressed': isSelected\n })\n };\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n"],"sourceRoot":""}