{"version":3,"file":"app-bcc0f8ad3d5fe46a714c.js","mappings":"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UA,GAAK,OAAgB,QAANA,GAAsB,QAANA,GAAgBA,GAAK,OAAUA,GAAK,OAAgB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAgBA,GAAK,OAAUA,GAAK,OAAUA,GAAK,OAAUA,GAAK,OAAUA,GAAK,OAAUA,GAAK,OAAgB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAgBA,GAAK,OAAUA,GAAK,OAAgB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAgBA,GAAK,OAAUA,GAAK,OAAgB,QAANA,GAAsB,QAANA,GAAgBA,GAAK,OAAUA,GAAK,OAAUA,GAAK,OAAUA,GAAK,OAAUA,GAAK,OAAUA,GAAK,OAAUA,GAAK,OAAUA,GAAK,OAAUA,GAAK,OAAUA,GAAK,OAAUA,GAAK,OAAUA,GAAK,OAAUA,GAAK,OAAUA,GAAK,OAAUA,GAAK,OAAUA,GAAK,OAAgB,QAANA,GAAgBA,GAAK,OAAUA,GAAK,OAAUA,GAAK,OAAUA,GAAK,OAAgB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAgBA,GAAK,OAAUA,GAAK,OAAgB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAgBA,GAAK,OAAUA,GAAK,OAAgB,QAANA,GAAgBA,GAAK,OAAUA,GAAK,OAAgB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAgBA,GAAK,OAAUA,GAAK,OAAgB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAsB,QAANA,GAAsB,QAAN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","sources":["webpack://elroy/./node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack://elroy/./node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack://elroy/./node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","webpack://elroy/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://elroy/./node_modules/@babel/runtime/helpers/extends.js","webpack://elroy/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://elroy/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://elroy/./node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://elroy/./node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack://elroy/./node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack://elroy/./node_modules/@babel/runtime/helpers/nonIterableSpread.js","webpack://elroy/./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://elroy/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://elroy/./node_modules/@babel/runtime/helpers/slicedToArray.js","webpack://elroy/./node_modules/@babel/runtime/helpers/toConsumableArray.js","webpack://elroy/./node_modules/@babel/runtime/helpers/typeof.js","webpack://elroy/./node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack://elroy/./node_modules/@babel/runtime/regenerator/index.js","webpack://elroy/./node_modules/stylis/src/Utility.js","webpack://elroy/./node_modules/stylis/src/Tokenizer.js","webpack://elroy/./node_modules/stylis/src/Enum.js","webpack://elroy/./node_modules/stylis/src/Serializer.js","webpack://elroy/./node_modules/stylis/src/Prefixer.js","webpack://elroy/./node_modules/stylis/src/Parser.js","webpack://elroy/./node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","webpack://elroy/./node_modules/stylis/src/Middleware.js","webpack://elroy/./node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.browser.esm.js","webpack://elroy/./node_modules/@emotion/memoize/dist/emotion-memoize.browser.esm.js","webpack://elroy/./node_modules/@emotion/react/dist/emotion-element-1c22787f.browser.esm.js","webpack://elroy/./node_modules/@emotion/react/dist/emotion-react.browser.esm.js","webpack://elroy/./node_modules/@emotion/hash/dist/hash.browser.esm.js","webpack://elroy/./node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","webpack://elroy/./node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js","webpack://elroy/./node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","webpack://elroy/./node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","webpack://elroy/./node_modules/@emotion/unitless/dist/unitless.browser.esm.js","webpack://elroy/./node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","webpack://elroy/./node_modules/@formatjs/ecma402-abstract/lib/utils.js","webpack://elroy/./node_modules/@formatjs/fast-memoize/lib/index.js","webpack://elroy/./node_modules/@formatjs/icu-messageformat-parser/node_modules/tslib/tslib.es6.js","webpack://elroy/./node_modules/@formatjs/icu-messageformat-parser/lib/error.js","webpack://elroy/./node_modules/@formatjs/icu-messageformat-parser/lib/types.js","webpack://elroy/./node_modules/@formatjs/icu-messageformat-parser/lib/regex.generated.js","webpack://elroy/./node_modules/@formatjs/icu-skeleton-parser/lib/date-time.js","webpack://elroy/./node_modules/@formatjs/icu-skeleton-parser/node_modules/tslib/tslib.es6.js","webpack://elroy/./node_modules/@formatjs/icu-skeleton-parser/lib/regex.generated.js","webpack://elroy/./node_modules/@formatjs/icu-skeleton-parser/lib/number.js","webpack://elroy/./node_modules/@formatjs/icu-messageformat-parser/lib/parser.js","webpack://elroy/./node_modules/@formatjs/icu-messageformat-parser/lib/index.js","webpack://elroy/./node_modules/@formatjs/intl/lib/src/error.js","webpack://elroy/./node_modules/@formatjs/intl/lib/src/utils.js","webpack://elroy/./node_modules/@formatjs/intl/node_modules/tslib/tslib.es6.js","webpack://elroy/./node_modules/@gatsbyjs/reach-router/lib/history.js","webpack://elroy/./node_modules/@gatsbyjs/reach-router/lib/utils.js","webpack://elroy/./node_modules/@theme-ui/color-modes/dist/theme-ui-color-modes.esm.js","webpack://elroy/./node_modules/@theme-ui/color/dist/theme-ui-color.esm.js","webpack://elroy/./node_modules/@styled-system/should-forward-prop/node_modules/@emotion/memoize/dist/memoize.browser.esm.js","webpack://elroy/./node_modules/@styled-system/should-forward-prop/node_modules/@emotion/is-prop-valid/dist/is-prop-valid.browser.esm.js","webpack://elroy/./node_modules/@styled-system/core/dist/index.esm.js","webpack://elroy/./node_modules/@styled-system/layout/dist/index.esm.js","webpack://elroy/./node_modules/@styled-system/color/dist/index.esm.js","webpack://elroy/./node_modules/@styled-system/typography/dist/index.esm.js","webpack://elroy/./node_modules/@styled-system/flexbox/dist/index.esm.js","webpack://elroy/./node_modules/@styled-system/grid/dist/index.esm.js","webpack://elroy/./node_modules/@styled-system/border/dist/index.esm.js","webpack://elroy/./node_modules/@styled-system/background/dist/index.esm.js","webpack://elroy/./node_modules/@styled-system/position/dist/index.esm.js","webpack://elroy/./node_modules/@styled-system/space/dist/index.esm.js","webpack://elroy/./node_modules/@styled-system/shadow/dist/index.esm.js","webpack://elroy/./node_modules/@styled-system/css/dist/index.esm.js","webpack://elroy/./node_modules/@styled-system/variant/dist/index.esm.js","webpack://elroy/./node_modules/@styled-system/should-forward-prop/dist/index.esm.js","webpack://elroy/./node_modules/styled-system/dist/index.esm.js","webpack://elroy/./node_modules/@theme-ui/components/dist/theme-ui-components.esm.js","webpack://elroy/./node_modules/@theme-ui/parse-props/dist/theme-ui-parse-props.esm.js","webpack://elroy/./node_modules/@theme-ui/core/dist/theme-ui-core.esm.js","webpack://elroy/./node_modules/@theme-ui/css/dist/theme-ui-css.esm.js","webpack://elroy/./node_modules/@unleash/proxy-client-react/dist/index.browser.js","webpack://elroy/./node_modules/axios/index.js","webpack://elroy/./node_modules/axios/lib/adapters/xhr.js","webpack://elroy/./node_modules/axios/lib/axios.js","webpack://elroy/./node_modules/axios/lib/cancel/Cancel.js","webpack://elroy/./node_modules/axios/lib/cancel/CancelToken.js","webpack://elroy/./node_modules/axios/lib/cancel/isCancel.js","webpack://elroy/./node_modules/axios/lib/core/Axios.js","webpack://elroy/./node_modules/axios/lib/core/InterceptorManager.js","webpack://elroy/./node_modules/axios/lib/core/buildFullPath.js","webpack://elroy/./node_modules/axios/lib/core/createError.js","webpack://elroy/./node_modules/axios/lib/core/dispatchRequest.js","webpack://elroy/./node_modules/axios/lib/core/enhanceError.js","webpack://elroy/./node_modules/axios/lib/core/mergeConfig.js","webpack://elroy/./node_modules/axios/lib/core/settle.js","webpack://elroy/./node_modules/axios/lib/core/transformData.js","webpack://elroy/./node_modules/axios/lib/defaults.js","webpack://elroy/./node_modules/axios/lib/helpers/bind.js","webpack://elroy/./node_modules/axios/lib/helpers/buildURL.js","webpack://elroy/./node_modules/axios/lib/helpers/combineURLs.js","webpack://elroy/./node_modules/axios/lib/helpers/cookies.js","webpack://elroy/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://elroy/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://elroy/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://elroy/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://elroy/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://elroy/./node_modules/axios/lib/helpers/spread.js","webpack://elroy/./node_modules/axios/lib/helpers/validator.js","webpack://elroy/./node_modules/axios/lib/utils.js","webpack://elroy/./node_modules/common-tags/es/TemplateTag/TemplateTag.js","webpack://elroy/./node_modules/common-tags/es/inlineArrayTransformer/inlineArrayTransformer.js","webpack://elroy/./node_modules/common-tags/es/stripIndentTransformer/stripIndentTransformer.js","webpack://elroy/./node_modules/common-tags/es/trimResultTransformer/trimResultTransformer.js","webpack://elroy/./node_modules/common-tags/es/splitStringTransformer/splitStringTransformer.js","webpack://elroy/./node_modules/common-tags/es/commaLists/commaLists.js","webpack://elroy/./node_modules/common-tags/es/commaListsAnd/commaListsAnd.js","webpack://elroy/./node_modules/common-tags/es/commaListsOr/commaListsOr.js","webpack://elroy/./node_modules/common-tags/es/removeNonPrintingValuesTransformer/removeNonPrintingValuesTransformer.js","webpack://elroy/./node_modules/common-tags/es/replaceSubstitutionTransformer/replaceSubstitutionTransformer.js","webpack://elroy/./node_modules/common-tags/es/html/html.js","webpack://elroy/./node_modules/common-tags/es/replaceResultTransformer/replaceResultTransformer.js","webpack://elroy/./node_modules/common-tags/es/safeHtml/safeHtml.js","webpack://elroy/./node_modules/common-tags/es/oneLine/oneLine.js","webpack://elroy/./node_modules/common-tags/es/oneLineTrim/oneLineTrim.js","webpack://elroy/./node_modules/common-tags/es/oneLineCommaLists/oneLineCommaLists.js","webpack://elroy/./node_modules/common-tags/es/oneLineCommaListsOr/oneLineCommaListsOr.js","webpack://elroy/./node_modules/common-tags/es/oneLineCommaListsAnd/oneLineCommaListsAnd.js","webpack://elroy/./node_modules/common-tags/es/inlineLists/inlineLists.js","webpack://elroy/./node_modules/common-tags/es/oneLineInlineLists/oneLineInlineLists.js","webpack://elroy/./node_modules/common-tags/es/stripIndent/stripIndent.js","webpack://elroy/./node_modules/common-tags/es/stripIndents/stripIndents.js","webpack://elroy/./node_modules/decode-uri-component/index.js","webpack://elroy/./node_modules/deepmerge/dist/cjs.js","webpack://elroy/./node_modules/filter-obj/index.js","webpack://elroy/./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js","webpack://elroy/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://elroy/./node_modules/intl-messageformat/lib/src/core.js","webpack://elroy/./node_modules/intl-messageformat/lib/src/error.js","webpack://elroy/./node_modules/intl-messageformat/lib/src/formatters.js","webpack://elroy/./node_modules/intl-messageformat/node_modules/tslib/tslib.es6.js","webpack://elroy/./node_modules/js-cookie/src/js.cookie.js","webpack://elroy/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://elroy/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://elroy/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://elroy/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://elroy/./node_modules/polished/dist/polished.esm.js","webpack://elroy/./node_modules/query-string/index.js","webpack://elroy/./node_modules/react-fast-compare/index.js","webpack://elroy/./node_modules/react-helmet/es/Helmet.js","webpack://elroy/./node_modules/react-intl/lib/src/components/injectIntl.js","webpack://elroy/./node_modules/react-intl/lib/src/utils.js","webpack://elroy/./node_modules/react-intl/node_modules/tslib/tslib.es6.js","webpack://elroy/./node_modules/react-is/cjs/react-is.production.min.js","webpack://elroy/./node_modules/react-is/index.js","webpack://elroy/./node_modules/react-side-effect/lib/index.js","webpack://elroy/./node_modules/recompose/getDisplayName.js","webpack://elroy/./node_modules/recompose/nest.js","webpack://elroy/./node_modules/split-on-first/index.js","webpack://elroy/./node_modules/strict-uri-encode/index.js","webpack://elroy/./node_modules/theme-ui/dist/theme-ui.esm.js","webpack://elroy/./node_modules/core-js/internals/a-callable.js","webpack://elroy/./node_modules/core-js/internals/an-object.js","webpack://elroy/./node_modules/core-js/internals/array-includes.js","webpack://elroy/./node_modules/core-js/internals/classof-raw.js","webpack://elroy/./node_modules/core-js/internals/classof.js","webpack://elroy/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://elroy/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://elroy/./node_modules/core-js/internals/create-property-descriptor.js","webpack://elroy/./node_modules/core-js/internals/create-property.js","webpack://elroy/./node_modules/core-js/internals/descriptors.js","webpack://elroy/./node_modules/core-js/internals/document-create-element.js","webpack://elroy/./node_modules/core-js/internals/engine-user-agent.js","webpack://elroy/./node_modules/core-js/internals/engine-v8-version.js","webpack://elroy/./node_modules/core-js/internals/enum-bug-keys.js","webpack://elroy/./node_modules/core-js/internals/export.js","webpack://elroy/./node_modules/core-js/internals/fails.js","webpack://elroy/./node_modules/core-js/internals/function-bind-context.js","webpack://elroy/./node_modules/core-js/internals/function-call.js","webpack://elroy/./node_modules/core-js/internals/function-name.js","webpack://elroy/./node_modules/core-js/internals/function-uncurry-this.js","webpack://elroy/./node_modules/core-js/internals/get-built-in.js","webpack://elroy/./node_modules/core-js/internals/get-iterator-method.js","webpack://elroy/./node_modules/core-js/internals/get-iterator.js","webpack://elroy/./node_modules/core-js/internals/get-method.js","webpack://elroy/./node_modules/core-js/internals/global.js","webpack://elroy/./node_modules/core-js/internals/has-own-property.js","webpack://elroy/./node_modules/core-js/internals/hidden-keys.js","webpack://elroy/./node_modules/core-js/internals/ie8-dom-define.js","webpack://elroy/./node_modules/core-js/internals/indexed-object.js","webpack://elroy/./node_modules/core-js/internals/inspect-source.js","webpack://elroy/./node_modules/core-js/internals/internal-state.js","webpack://elroy/./node_modules/core-js/internals/is-array-iterator-method.js","webpack://elroy/./node_modules/core-js/internals/is-callable.js","webpack://elroy/./node_modules/core-js/internals/is-forced.js","webpack://elroy/./node_modules/core-js/internals/is-object.js","webpack://elroy/./node_modules/core-js/internals/is-pure.js","webpack://elroy/./node_modules/core-js/internals/is-symbol.js","webpack://elroy/./node_modules/core-js/internals/iterate.js","webpack://elroy/./node_modules/core-js/internals/iterator-close.js","webpack://elroy/./node_modules/core-js/internals/iterators.js","webpack://elroy/./node_modules/core-js/internals/length-of-array-like.js","webpack://elroy/./node_modules/core-js/internals/native-symbol.js","webpack://elroy/./node_modules/core-js/internals/native-weak-map.js","webpack://elroy/./node_modules/core-js/internals/object-define-property.js","webpack://elroy/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://elroy/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://elroy/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://elroy/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://elroy/./node_modules/core-js/internals/object-keys-internal.js","webpack://elroy/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://elroy/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://elroy/./node_modules/core-js/internals/own-keys.js","webpack://elroy/./node_modules/core-js/internals/redefine.js","webpack://elroy/./node_modules/core-js/internals/require-object-coercible.js","webpack://elroy/./node_modules/core-js/internals/set-global.js","webpack://elroy/./node_modules/core-js/internals/shared-key.js","webpack://elroy/./node_modules/core-js/internals/shared-store.js","webpack://elroy/./node_modules/core-js/internals/shared.js","webpack://elroy/./node_modules/core-js/internals/string-trim-forced.js","webpack://elroy/./node_modules/core-js/internals/string-trim.js","webpack://elroy/./node_modules/core-js/internals/to-absolute-index.js","webpack://elroy/./node_modules/core-js/internals/to-indexed-object.js","webpack://elroy/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://elroy/./node_modules/core-js/internals/to-length.js","webpack://elroy/./node_modules/core-js/internals/to-object.js","webpack://elroy/./node_modules/core-js/internals/to-primitive.js","webpack://elroy/./node_modules/core-js/internals/to-property-key.js","webpack://elroy/./node_modules/core-js/internals/to-string-tag-support.js","webpack://elroy/./node_modules/core-js/internals/to-string.js","webpack://elroy/./node_modules/core-js/internals/try-to-string.js","webpack://elroy/./node_modules/core-js/internals/uid.js","webpack://elroy/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://elroy/./node_modules/core-js/internals/well-known-symbol.js","webpack://elroy/./node_modules/core-js/internals/whitespaces.js","webpack://elroy/./node_modules/core-js/modules/es.global-this.js","webpack://elroy/./node_modules/core-js/modules/es.object.from-entries.js","webpack://elroy/./node_modules/core-js/modules/es.string.trim-end.js","webpack://elroy/./node_modules/core-js/modules/es.string.trim-start.js","webpack://elroy/./node_modules/core-js/modules/esnext.global-this.js","webpack://elroy/./node_modules/gatsby-link/index.js","webpack://elroy/./node_modules/gatsby-link/parse-path.js","webpack://elroy/./node_modules/gatsby-react-router-scroll/index.js","webpack://elroy/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://elroy/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://elroy/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://elroy/./src/api/index.ts","webpack://elroy/./src/components/Link/ExternalLink.tsx","webpack://elroy/./src/components/Link/LocalizedLink.tsx","webpack://elroy/./src/components/Link/index.tsx","webpack://elroy/./src/context/CurrencyContext/index.tsx","webpack://elroy/./src/context/IntlContext/index.tsx","webpack://elroy/./src/context/LocationContext/index.tsx","webpack://elroy/./src/constants/product-name.ts","webpack://elroy/./src/context/SavingProductsContext/index.tsx","webpack://elroy/./src/context/ViewerContext/constants.ts","webpack://elroy/./src/context/ViewerContext/index.tsx","webpack://elroy/./src/theme/index.ts","webpack://elroy/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://elroy/./.cache/api-runner-browser-plugins.js","webpack://elroy/./.cache/api-runner-browser.js","webpack://elroy/./node_modules/mitt/dist/mitt.es.js","webpack://elroy/./.cache/emitter.js","webpack://elroy/./.cache/normalize-page-path.js","webpack://elroy/./.cache/find-path.js","webpack://elroy/./.cache/gatsby-browser-entry.js","webpack://elroy/./.cache/prefetch.js","webpack://elroy/./.cache/loader.js","webpack://elroy/./.cache/page-renderer.js","webpack://elroy/./.cache/route-announcer-props.js","webpack://elroy/./.cache/navigation.js","webpack://elroy/./node_modules/shallow-compare/es/index.js","webpack://elroy/./.cache/ensure-resources.js","webpack://elroy/./.cache/production-app.js","webpack://elroy/./.cache/public-page-renderer-prod.js","webpack://elroy/./.cache/public-page-renderer.js","webpack://elroy/./.cache/react-lifecycles-compat.js","webpack://elroy/./.cache/redirect-utils.js","webpack://elroy/./.cache/register-service-worker.js","webpack://elroy/./.cache/strip-prefix.js","webpack://elroy/./src/components/Freshchat/index.tsx","webpack://elroy/./src/components/Logo/icons/Logotipo_Safe_Company_negativo.png","webpack://elroy/./src/components/Logo/icons/Logo-SC-02.png","webpack://elroy/./src/components/Logo/index.tsx","webpack://elroy/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://elroy/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://elroy/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://elroy/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://elroy/./node_modules/react-spring/web.js","webpack://elroy/./src/components/Header/styled.ts","webpack://elroy/./src/components/Header/MobileMenu.tsx","webpack://elroy/./src/context/NavigationContext/index.tsx","webpack://elroy/./src/components/Header/NavigationMenu.tsx","webpack://elroy/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://elroy/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://elroy/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://elroy/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://elroy/./node_modules/@theme-ui/match-media/dist/theme-ui-match-media.esm.js","webpack://elroy/./src/components/selector/index.tsx","webpack://elroy/./node_modules/@formatjs/intl/lib/src/message.js","webpack://elroy/./node_modules/@formatjs/intl/lib/src/number.js","webpack://elroy/./node_modules/@formatjs/intl/lib/src/relativeTime.js","webpack://elroy/./node_modules/@formatjs/intl/lib/src/dateTime.js","webpack://elroy/./node_modules/@formatjs/intl/lib/src/plural.js","webpack://elroy/./node_modules/@formatjs/intl/lib/src/list.js","webpack://elroy/./node_modules/@formatjs/intl/lib/src/displayName.js","webpack://elroy/./node_modules/@formatjs/intl/lib/src/create-intl.js","webpack://elroy/./node_modules/react-intl/lib/src/components/provider.js","webpack://elroy/./src/context/I18nContext/index.tsx","webpack://elroy/./src/components/LanguageSelector/index.tsx","webpack://elroy/./src/components/Header/index.tsx","webpack://elroy/./src/components/Footer/index.tsx","webpack://elroy/./node_modules/react-cookie-consent/dist/react-cookie-consent.esm.js","webpack://elroy/./src/components/CookieBanner/index.tsx","webpack://elroy/./src/components/layout.tsx","webpack://elroy/./src/utils/build-canonical.ts","webpack://elroy/./config/wrapPageElement.js","webpack://elroy/./config/wrapRootElement.js","webpack://elroy/../src/image-utils.ts","webpack://elroy/../src/components/hooks.ts","webpack://elroy/../src/components/layout-wrapper.tsx","webpack://elroy/../src/components/picture.tsx","webpack://elroy/../src/components/placeholder.tsx","webpack://elroy/../src/components/main-image.tsx","webpack://elroy/../src/components/gatsby-image.server.tsx","webpack://elroy/../src/components/gatsby-image.browser.tsx","webpack://elroy/../src/components/static-image.server.tsx","webpack://elroy/../src/components/static-image.tsx","webpack://elroy/../src/components/later-hydrator.tsx","webpack://elroy/./node_modules/gatsby-plugin-image/gatsby-browser.js","webpack://elroy/./node_modules/gatsby-plugin-image/node_modules/camelcase/index.js","webpack://elroy/./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack://elroy/./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack://elroy/./node_modules/@mdx-js/react/dist/esm.js","webpack://elroy/./node_modules/@theme-ui/mdx/dist/theme-ui-mdx.esm.js","webpack://elroy/./node_modules/@theme-ui/theme-provider/dist/theme-ui-theme-provider.esm.js","webpack://elroy/./src/gatsby-plugin-theme-ui/index.js","webpack://elroy/./node_modules/gatsby-plugin-theme-ui/src/components.js","webpack://elroy/./node_modules/gatsby-plugin-theme-ui/src/hooks/configOptions.js","webpack://elroy/./node_modules/gatsby-plugin-theme-ui/src/provider.js","webpack://elroy/./node_modules/gatsby-plugin-theme-ui/gatsby-browser.js","webpack://elroy/./node_modules/date-fns/esm/_lib/requiredArgs/index.js","webpack://elroy/./node_modules/date-fns/esm/toDate/index.js","webpack://elroy/./node_modules/date-fns/esm/_lib/toInteger/index.js","webpack://elroy/./node_modules/date-fns/esm/addDays/index.js","webpack://elroy/./src/context/LinksContext/index.jsx","webpack://elroy/./node_modules/date-fns/esm/isBefore/index.js","webpack://elroy/./node_modules/date-fns/esm/subDays/index.js","webpack://elroy/./src/utils/replace-all.ts","webpack://elroy/./node_modules/@gatsbyjs/reach-router/es/lib/utils.js","webpack://elroy/./node_modules/@gatsbyjs/reach-router/es/lib/history.js","webpack://elroy/./node_modules/@gatsbyjs/reach-router/es/index.js","webpack://elroy/./node_modules/invariant/browser.js","webpack://elroy/./node_modules/regenerator-runtime/runtime.js","webpack://elroy/./src/components/Logo/icons/SVG-THESAFECOMPANY.svg","webpack://elroy/./src/components/Logo/icons/SafeBrok-MKP.svg","webpack://elroy/./src/components/Logo/icons/neowintech.svg","webpack://elroy/./src/images/icons/app-stores/android.svg","webpack://elroy/./src/images/icons/app-stores/ios.svg","webpack://elroy/./src/images/icons/arrow-icon.svg","webpack://elroy/./src/images/icons/green-arrow.svg","webpack://elroy/./src/images/icons/menu-icon.svg","webpack://elroy/./src/images/icons/x.svg","webpack://elroy/./node_modules/unleash-proxy-client/build/index.cjs","webpack://elroy/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://elroy/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://elroy/./node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js","webpack://elroy/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://elroy/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://elroy/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://elroy/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://elroy/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://elroy/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://elroy/./node_modules/@babel/runtime/helpers/esm/taggedTemplateLiteralLoose.js","webpack://elroy/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://elroy/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://elroy/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://elroy/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://elroy/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js"],"sourcesContent":["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;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","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;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","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 module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\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;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\n\nmodule.exports = _interopRequireDefault;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_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;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","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;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","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;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","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;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableRest = require(\"./nonIterableRest.js\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\n\nvar iterableToArray = require(\"./iterableToArray.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","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\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\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 module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\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;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","module.exports = require(\"regenerator-runtime\");\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs;\n/**\n * @param {number}\n * @return {string}\n */\n\nexport var from = String.fromCharCode;\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\n\nexport function hash(value, length) {\n return (((length << 2 ^ charat(value, 0)) << 2 ^ charat(value, 1)) << 2 ^ charat(value, 2)) << 2 ^ charat(value, 3);\n}\n/**\n * @param {string} value\n * @return {string}\n */\n\nexport function trim(value) {\n return value.trim();\n}\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\n\nexport function match(value, pattern) {\n return (value = pattern.exec(value)) ? value[0] : value;\n}\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\n\nexport function replace(value, pattern, replacement) {\n return value.replace(pattern, replacement);\n}\n/**\n * @param {string} value\n * @param {string} value\n * @return {number}\n */\n\nexport function indexof(value, search) {\n return value.indexOf(search);\n}\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\n\nexport function charat(value, index) {\n return value.charCodeAt(index) | 0;\n}\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\n\nexport function substr(value, begin, end) {\n return value.slice(begin, end);\n}\n/**\n * @param {string} value\n * @return {number}\n */\n\nexport function strlen(value) {\n return value.length;\n}\n/**\n * @param {any[]} value\n * @return {number}\n */\n\nexport function sizeof(value) {\n return value.length;\n}\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\n\nexport function append(value, array) {\n return array.push(value), value;\n}\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\n\nexport function combine(array, callback) {\n return array.map(callback).join('');\n}","import { from, trim, charat, strlen, substr, append } from './Utility.js';\nexport var line = 1;\nexport var column = 1;\nexport var length = 0;\nexport var position = 0;\nexport var character = 0;\nexport var characters = '';\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string} type\n * @param {string[]} props\n * @param {object[]} children\n * @param {number} length\n */\n\nexport function node(value, root, parent, type, props, children, length) {\n return {\n value: value,\n root: root,\n parent: parent,\n type: type,\n props: props,\n children: children,\n line: line,\n column: column,\n length: length,\n return: ''\n };\n}\n/**\n * @param {string} value\n * @param {object} root\n * @param {string} type\n */\n\nexport function copy(value, root, type) {\n return node(value, root.root, root.parent, type, root.props, root.children, 0);\n}\n/**\n * @return {number}\n */\n\nexport function char() {\n return character;\n}\n/**\n * @return {number}\n */\n\nexport function prev() {\n character = position > 0 ? charat(characters, --position) : 0;\n if (column--, character === 10) column = 1, line--;\n return character;\n}\n/**\n * @return {number}\n */\n\nexport function next() {\n character = position < length ? charat(characters, position++) : 0;\n if (column++, character === 10) column = 1, line++;\n return character;\n}\n/**\n * @return {number}\n */\n\nexport function peek() {\n return charat(characters, position);\n}\n/**\n * @return {number}\n */\n\nexport function caret() {\n return position;\n}\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\n\nexport function slice(begin, end) {\n return substr(characters, begin, end);\n}\n/**\n * @param {number} type\n * @return {number}\n */\n\nexport function token(type) {\n switch (type) {\n // \\0 \\t \\n \\r \\s whitespace token\n case 0:\n case 9:\n case 10:\n case 13:\n case 32:\n return 5;\n // ! + , / > @ ~ isolate token\n\n case 33:\n case 43:\n case 44:\n case 47:\n case 62:\n case 64:\n case 126: // ; { } breakpoint token\n\n case 59:\n case 123:\n case 125:\n return 4;\n // : accompanied token\n\n case 58:\n return 3;\n // \" ' ( [ opening delimit token\n\n case 34:\n case 39:\n case 40:\n case 91:\n return 2;\n // ) ] closing delimit token\n\n case 41:\n case 93:\n return 1;\n }\n\n return 0;\n}\n/**\n * @param {string} value\n * @return {any[]}\n */\n\nexport function alloc(value) {\n return line = column = 1, length = strlen(characters = value), position = 0, [];\n}\n/**\n * @param {any} value\n * @return {any}\n */\n\nexport function dealloc(value) {\n return characters = '', value;\n}\n/**\n * @param {number} type\n * @return {string}\n */\n\nexport function delimit(type) {\n return trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)));\n}\n/**\n * @param {string} value\n * @return {string[]}\n */\n\nexport function tokenize(value) {\n return dealloc(tokenizer(alloc(value)));\n}\n/**\n * @param {number} type\n * @return {string}\n */\n\nexport function whitespace(type) {\n while (character = peek()) {\n if (character < 33) next();else break;\n }\n\n return token(type) > 2 || token(character) > 3 ? '' : ' ';\n}\n/**\n * @param {string[]} children\n * @return {string[]}\n */\n\nexport function tokenizer(children) {\n while (next()) {\n switch (token(character)) {\n case 0:\n append(identifier(position - 1), children);\n break;\n\n case 2:\n append(delimit(character), children);\n break;\n\n default:\n append(from(character), children);\n }\n }\n\n return children;\n}\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\n\nexport function escaping(index, count) {\n while (--count && next()) {\n // not 0-9 A-F a-f\n if (character < 48 || character > 102 || character > 57 && character < 65 || character > 70 && character < 97) break;\n }\n\n return slice(index, caret() + (count < 6 && peek() == 32 && next() == 32));\n}\n/**\n * @param {number} type\n * @return {number}\n */\n\nexport function delimiter(type) {\n while (next()) {\n switch (character) {\n // ] ) \" '\n case type:\n return position;\n // \" '\n\n case 34:\n case 39:\n return delimiter(type === 34 || type === 39 ? type : character);\n // (\n\n case 40:\n if (type === 41) delimiter(type);\n break;\n // \\\n\n case 92:\n next();\n break;\n }\n }\n\n return position;\n}\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\n\nexport function commenter(type, index) {\n while (next()) {\n // //\n if (type + character === 47 + 10) break; // /*\n else if (type + character === 42 + 42 && peek() === 47) break;\n }\n\n return '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next());\n}\n/**\n * @param {number} index\n * @return {string}\n */\n\nexport function identifier(index) {\n while (!token(peek())) {\n next();\n }\n\n return slice(index, position);\n}","export var MS = '-ms-';\nexport var MOZ = '-moz-';\nexport var WEBKIT = '-webkit-';\nexport var COMMENT = 'comm';\nexport var RULESET = 'rule';\nexport var DECLARATION = 'decl';\nexport var PAGE = '@page';\nexport var MEDIA = '@media';\nexport var IMPORT = '@import';\nexport var CHARSET = '@charset';\nexport var VIEWPORT = '@viewport';\nexport var SUPPORTS = '@supports';\nexport var DOCUMENT = '@document';\nexport var NAMESPACE = '@namespace';\nexport var KEYFRAMES = '@keyframes';\nexport var FONT_FACE = '@font-face';\nexport var COUNTER_STYLE = '@counter-style';\nexport var FONT_FEATURE_VALUES = '@font-feature-values';","import { IMPORT, COMMENT, RULESET, DECLARATION } from './Enum.js';\nimport { strlen, sizeof } from './Utility.js';\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\n\nexport function serialize(children, callback) {\n var output = '';\n var length = sizeof(children);\n\n for (var i = 0; i < length; i++) {\n output += callback(children[i], i, children, callback) || '';\n }\n\n return output;\n}\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\n\nexport function stringify(element, index, children, callback) {\n switch (element.type) {\n case IMPORT:\n case DECLARATION:\n return element.return = element.return || element.value;\n\n case COMMENT:\n return '';\n\n case RULESET:\n element.value = element.props.join(',');\n }\n\n return strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : '';\n}","import { MS, MOZ, WEBKIT } from './Enum.js';\nimport { hash, charat, strlen, indexof, replace } from './Utility.js';\n/**\n * @param {string} value\n * @param {number} length\n * @return {string}\n */\n\nexport function prefix(value, length) {\n switch (hash(value, length)) {\n // color-adjust\n case 5103:\n return WEBKIT + 'print-' + value + value;\n // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n case 5737:\n case 4201:\n case 3177:\n case 3433:\n case 1641:\n case 4457:\n case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n case 5572:\n case 6356:\n case 5844:\n case 3191:\n case 6645:\n case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n case 6391:\n case 5879:\n case 5623:\n case 6135:\n case 4599:\n case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n case 4215:\n case 6389:\n case 5109:\n case 5365:\n case 5621:\n case 3829:\n return WEBKIT + value + value;\n // appearance, user-select, transform, hyphens, text-size-adjust\n\n case 5349:\n case 4246:\n case 4810:\n case 6968:\n case 2756:\n return WEBKIT + value + MOZ + value + MS + value + value;\n // flex, flex-direction\n\n case 6828:\n case 4268:\n return WEBKIT + value + MS + value + value;\n // order\n\n case 6165:\n return WEBKIT + value + MS + 'flex-' + value + value;\n // align-items\n\n case 5187:\n return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n // align-self\n\n case 5443:\n return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n // align-content\n\n case 4675:\n return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n // flex-shrink\n\n case 5548:\n return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n // flex-basis\n\n case 5292:\n return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n // flex-grow\n\n case 6060:\n return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n // transition\n\n case 4554:\n return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n // cursor\n\n case 6187:\n return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n // background, background-image\n\n case 5495:\n case 3959:\n return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n // justify-content\n\n case 4968:\n return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n // (margin|padding)-inline-(start|end)\n\n case 4095:\n case 3583:\n case 4068:\n case 2532:\n return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n // (min|max)?(width|height|inline-size|block-size)\n\n case 8116:\n case 7059:\n case 5753:\n case 5535:\n case 5445:\n case 5701:\n case 4933:\n case 4677:\n case 5533:\n case 5789:\n case 5021:\n case 4765:\n // stretch, max-content, min-content, fill-available\n if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n // (m)ax-content, (m)in-content\n case 109:\n // -\n if (charat(value, length + 4) !== 45) break;\n // (f)ill-available, (f)it-content\n\n case 102:\n return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n // (s)tretch\n\n case 115:\n return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n }\n break;\n // position: sticky\n\n case 4949:\n // (s)ticky?\n if (charat(value, length + 1) !== 115) break;\n // display: (flex|inline-flex)\n\n case 6444:\n switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n // stic(k)y\n case 107:\n return replace(value, ':', ':' + WEBKIT) + value;\n // (inline-)?fl(e)x\n\n case 101:\n return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n }\n\n break;\n // writing-mode\n\n case 5936:\n switch (charat(value, length + 11)) {\n // vertical-l(r)\n case 114:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n // vertical-r(l)\n\n case 108:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n // horizontal(-)tb\n\n case 45:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n }\n\n return WEBKIT + value + MS + value + value;\n }\n\n return value;\n}","import { COMMENT, RULESET, DECLARATION } from './Enum.js';\nimport { abs, trim, from, sizeof, strlen, substr, append, replace } from './Utility.js';\nimport { node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter } from './Tokenizer.js';\n/**\n * @param {string} value\n * @return {object[]}\n */\n\nexport function compile(value) {\n return dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value));\n}\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\n\nexport function parse(value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n var index = 0;\n var offset = 0;\n var length = pseudo;\n var atrule = 0;\n var property = 0;\n var previous = 0;\n var variable = 1;\n var scanning = 1;\n var ampersand = 1;\n var character = 0;\n var type = '';\n var props = rules;\n var children = rulesets;\n var reference = rule;\n var characters = type;\n\n while (scanning) {\n switch (previous = character, character = next()) {\n // \" ' [ (\n case 34:\n case 39:\n case 91:\n case 40:\n characters += delimit(character);\n break;\n // \\t \\n \\r \\s\n\n case 9:\n case 10:\n case 13:\n case 32:\n characters += whitespace(previous);\n break;\n // \\\n\n case 92:\n characters += escaping(caret() - 1, 7);\n continue;\n // /\n\n case 47:\n switch (peek()) {\n case 42:\n case 47:\n append(comment(commenter(next(), caret()), root, parent), declarations);\n break;\n\n default:\n characters += '/';\n }\n\n break;\n // {\n\n case 123 * variable:\n points[index++] = strlen(characters) * ampersand;\n // } ; \\0\n\n case 125 * variable:\n case 59:\n case 0:\n switch (character) {\n // \\0 }\n case 0:\n case 125:\n scanning = 0;\n // ;\n\n case 59 + offset:\n if (property > 0 && strlen(characters) - length) append(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations);\n break;\n // @ ;\n\n case 59:\n characters += ';';\n // { rule/at-rule\n\n default:\n append(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets);\n if (character === 123) if (offset === 0) parse(characters, root, reference, reference, props, rulesets, length, points, children);else switch (atrule) {\n // d m s\n case 100:\n case 109:\n case 115:\n parse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children);\n break;\n\n default:\n parse(characters, reference, reference, reference, [''], children, length, points, children);\n }\n }\n\n index = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo;\n break;\n // :\n\n case 58:\n length = 1 + strlen(characters), property = previous;\n\n default:\n if (variable < 1) if (character == 123) --variable;else if (character == 125 && variable++ == 0 && prev() == 125) continue;\n\n switch (characters += from(character), character * variable) {\n // &\n case 38:\n ampersand = offset > 0 ? 1 : (characters += '\\f', -1);\n break;\n // ,\n\n case 44:\n points[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1;\n break;\n // @\n\n case 64:\n // -\n if (peek() === 45) characters += delimit(next());\n atrule = peek(), offset = strlen(type = characters += identifier(caret())), character++;\n break;\n // -\n\n case 45:\n if (previous === 45 && strlen(characters) == 2) variable = 0;\n }\n\n }\n }\n\n return rulesets;\n}\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\n\nexport function ruleset(value, root, parent, index, offset, rules, points, type, props, children, length) {\n var post = offset - 1;\n var rule = offset === 0 ? rules : [''];\n var size = sizeof(rule);\n\n for (var i = 0, j = 0, k = 0; i < index; ++i) {\n for (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x) {\n if (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x]))) props[k++] = z;\n }\n }\n\n return node(value, root, parent, offset === 0 ? RULESET : type, props, children, length);\n}\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\n\nexport function comment(value, root, parent) {\n return node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0);\n}\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\n\nexport function declaration(value, root, parent, length) {\n return node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length);\n}","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, stringify, COMMENT, rulesheet, middleware, prefixer, serialize, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar last = function last(arr) {\n return arr.length ? arr[arr.length - 1] : null;\n}; // based on https://github.com/thysultan/stylis.js/blob/e6843c373ebcbbfade25ebcc23f540ed8508da0a/src/Tokenizer.js#L239-L244\n\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\n\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // .length indicates if this rule contains pseudo or not\n !element.length) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\n\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\n\nvar ignoreFlag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n\nvar isIgnoringComment = function isIgnoringComment(element) {\n return !!element && element.type === 'comm' && element.children.indexOf(ignoreFlag) > -1;\n};\n\nvar createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) {\n return function (element, index, children) {\n if (element.type !== 'rule') return;\n var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses && cache.compat !== true) {\n var prevElement = index > 0 ? children[index - 1] : null;\n\n if (prevElement && isIgnoringComment(last(prevElement.children))) {\n return;\n }\n\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n });\n }\n };\n};\n\nvar isImportRule = function isImportRule(element) {\n return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64;\n};\n\nvar isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) {\n for (var i = index - 1; i >= 0; i--) {\n if (!isImportRule(children[i])) {\n return true;\n }\n }\n\n return false;\n}; // use this to remove incorrect elements from further processing\n// so they don't get handed to the `sheet` (or anything else)\n// as that could potentially lead to additional logs which in turn could be overhelming to the user\n\n\nvar nullifyElement = function nullifyElement(element) {\n element.type = '';\n element.value = '';\n element[\"return\"] = '';\n element.children = '';\n element.props = '';\n};\n\nvar incorrectImportAlarm = function incorrectImportAlarm(element, index, children) {\n if (!isImportRule(element)) {\n return;\n }\n\n if (element.parent) {\n console.error(\"`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles.\");\n nullifyElement(element);\n } else if (isPrependedWithRegularRules(index, children)) {\n console.error(\"`@import` rules can't be after other rules. Please put your `@import` rules before your other rules.\");\n nullifyElement(element);\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (process.env.NODE_ENV !== 'production' && !key) {\n throw new Error(\"You have to configure `key` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache.\\n\" + \"If multiple caches share the same key they might \\\"fight\\\" for each other's style elements.\");\n }\n\n if (key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {}; // $FlowFixMe\n\n var container;\n var nodesToHydrate = [];\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' '); // $FlowFixMe\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n if (process.env.NODE_ENV !== 'production') {\n omnipresentPlugins.push(createUnsafeSelectorsAlarm({\n get compat() {\n return cache.compat;\n }\n\n }), incorrectImportAlarm);\n }\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, process.env.NODE_ENV !== 'production' ? function (element) {\n if (!element.root) {\n if (element[\"return\"]) {\n currentSheet.insert(element[\"return\"]);\n } else if (element.value && element.type !== COMMENT) {\n // insert empty rule in non-production environments\n // so @emotion/jest can grab `key` from the (JS)DOM for caches without any rules inserted yet\n currentSheet.insert(element.value + \"{}\");\n }\n }\n } : rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n currentSheet = {\n insert: function insert(rule) {\n sheet.insert(rule + serialized.map);\n }\n };\n }\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport default createCache;","import { MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION } from './Enum.js';\nimport { match, charat, substr, strlen, sizeof, replace, combine } from './Utility.js';\nimport { copy, tokenize } from './Tokenizer.js';\nimport { serialize } from './Serializer.js';\nimport { prefix } from './Prefixer.js';\n/**\n * @param {function[]} collection\n * @return {function}\n */\n\nexport function middleware(collection) {\n var length = sizeof(collection);\n return function (element, index, children, callback) {\n var output = '';\n\n for (var i = 0; i < length; i++) {\n output += collection[i](element, index, children, callback) || '';\n }\n\n return output;\n };\n}\n/**\n * @param {function} callback\n * @return {function}\n */\n\nexport function rulesheet(callback) {\n return function (element) {\n if (!element.root) if (element = element.return) callback(element);\n };\n}\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\n\nexport function prefixer(element, index, children, callback) {\n if (!element.return) switch (element.type) {\n case DECLARATION:\n element.return = prefix(element.value, element.length);\n break;\n\n case KEYFRAMES:\n return serialize([copy(replace(element.value, '@', '@' + WEBKIT), element, '')], callback);\n\n case RULESET:\n if (element.length) return combine(element.props, function (value) {\n switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n // :read-(only|write)\n case ':read-only':\n case ':read-write':\n return serialize([copy(replace(value, /:(read-\\w+)/, ':' + MOZ + '$1'), element, '')], callback);\n // :placeholder\n\n case '::placeholder':\n return serialize([copy(replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1'), element, ''), copy(replace(value, /:(plac\\w+)/, ':' + MOZ + '$1'), element, ''), copy(replace(value, /:(plac\\w+)/, MS + 'input-$1'), element, '')], callback);\n }\n\n return '';\n });\n }\n}\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\n\nexport function namespace(element) {\n switch (element.type) {\n case RULESET:\n element.props = element.props.map(function (value) {\n return combine(tokenize(value), function (value, index, children) {\n switch (charat(value, 0)) {\n // \\f\n case 12:\n return substr(value, 1, strlen(value));\n // \\0 ( + > ~\n\n case 0:\n case 40:\n case 43:\n case 62:\n case 126:\n return value;\n // :\n\n case 58:\n if (children[++index] === 'global') children[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1);\n // \\s\n\n case 32:\n return index === 1 ? '' : value;\n\n default:\n switch (index) {\n case 0:\n element = value;\n return sizeof(children) > 1 ? '' : value;\n\n case index = sizeof(children) - 1:\n case 2:\n return index === 2 ? value + element + element : value + element;\n\n default:\n return value;\n }\n\n }\n });\n });\n }\n}","import memoize from '@emotion/memoize';\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\nexport default isPropValid;","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;","import { createContext, useContext, forwardRef, createElement, Fragment } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nvar hasOwnProperty = {}.hasOwnProperty;\nvar EmotionCacheContext = /* #__PURE__ */createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nif (process.env.NODE_ENV !== 'production') {\n EmotionCacheContext.displayName = 'EmotionCacheContext';\n}\n\nvar CacheProvider = EmotionCacheContext.Provider;\n\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n // $FlowFixMe\n return /*#__PURE__*/forwardRef(function (props, ref) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nvar ThemeContext = /* #__PURE__ */createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'EmotionThemeContext';\n}\n\nvar useTheme = function useTheme() {\n return useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme == null || typeof mergedTheme !== 'object' || Array.isArray(mergedTheme))) {\n throw new Error('[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!');\n }\n\n return mergedTheme;\n }\n\n if (process.env.NODE_ENV !== 'production' && (theme == null || typeof theme !== 'object' || Array.isArray(theme))) {\n throw new Error('[ThemeProvider] Please make your theme prop a plain object');\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\n\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\n\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || 'Component';\n\n var render = function render(props, ref) {\n var theme = useContext(ThemeContext);\n return /*#__PURE__*/createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n }; // $FlowFixMe\n\n\n var WithTheme = /*#__PURE__*/forwardRef(render);\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n} // thus we only need to replace what is a valid character for JS, but not for CSS\n\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\n};\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\n\nvar createEmotionProps = function createEmotionProps(type, props) {\n if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n props.css.indexOf(':') !== -1) {\n throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/react' like this: css`\" + props.css + \"`\");\n }\n\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type;\n\n if (process.env.NODE_ENV !== 'production') {\n var error = new Error();\n\n if (error.stack) {\n // chrome\n var match = error.stack.match(/at (?:Object\\.|Module\\.|)(?:jsx|createEmotionProps).*\\n\\s+at (?:Object\\.|)([A-Z][A-Za-z0-9$]+) /);\n\n if (!match) {\n // safari and firefox\n match = error.stack.match(/.*\\n([A-Z][A-Za-z0-9$]+)@/);\n }\n\n if (match) {\n newProps[labelPropName] = sanitizeIdentifier(match[1]);\n }\n }\n }\n\n return newProps;\n};\n\nvar Noop = function Noop() {\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var type = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, useContext(ThemeContext));\n\n if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n var labelFromStack = props[labelPropName];\n\n if (labelFromStack) {\n serialized = serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n }\n }\n\n var rules = insertStyles(cache, serialized, typeof type === 'string');\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n var ele = /*#__PURE__*/createElement(type, newProps);\n var possiblyStyleElement = /*#__PURE__*/createElement(Noop, null);\n return /*#__PURE__*/createElement(Fragment, null, possiblyStyleElement, ele);\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nexport { CacheProvider as C, Emotion as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwnProperty as h, useTheme as u, withEmotionCache as w };","import \"core-js/modules/esnext.global-this.js\";\nimport { createElement, useContext, useRef, useLayoutEffect, Fragment } from 'react';\nimport '@emotion/cache';\nimport { h as hasOwnProperty, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext } from './emotion-element-1c22787f.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, a as ThemeProvider, _ as __unsafe_useEmotionCache, u as useTheme, w as withEmotionCache, b as withTheme } from './emotion-element-1c22787f.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport 'hoist-non-react-statics';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { insertStyles, getRegisteredStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { StyleSheet } from '@emotion/sheet';\nvar pkg = {\n name: \"@emotion/react\",\n version: \"11.6.0\",\n main: \"dist/emotion-react.cjs.js\",\n module: \"dist/emotion-react.esm.js\",\n browser: {\n \"./dist/emotion-react.cjs.js\": \"./dist/emotion-react.browser.cjs.js\",\n \"./dist/emotion-react.esm.js\": \"./dist/emotion-react.browser.esm.js\"\n },\n types: \"types/index.d.ts\",\n files: [\"src\", \"dist\", \"jsx-runtime\", \"jsx-dev-runtime\", \"_isolated-hnrs\", \"types/*.d.ts\", \"macro.js\", \"macro.d.ts\", \"macro.js.flow\"],\n sideEffects: false,\n author: \"mitchellhamilton <mitchell@mitchellhamilton.me>\",\n license: \"MIT\",\n scripts: {\n \"test:typescript\": \"dtslint types\"\n },\n dependencies: {\n \"@babel/runtime\": \"^7.13.10\",\n \"@emotion/cache\": \"^11.6.0\",\n \"@emotion/serialize\": \"^1.0.2\",\n \"@emotion/sheet\": \"^1.1.0\",\n \"@emotion/utils\": \"^1.0.0\",\n \"@emotion/weak-memoize\": \"^0.2.5\",\n \"hoist-non-react-statics\": \"^3.3.1\"\n },\n peerDependencies: {\n \"@babel/core\": \"^7.0.0\",\n react: \">=16.8.0\"\n },\n peerDependenciesMeta: {\n \"@babel/core\": {\n optional: true\n },\n \"@types/react\": {\n optional: true\n }\n },\n devDependencies: {\n \"@babel/core\": \"^7.13.10\",\n \"@emotion/css\": \"11.5.0\",\n \"@emotion/css-prettifier\": \"1.0.0\",\n \"@emotion/server\": \"11.4.0\",\n \"@emotion/styled\": \"11.6.0\",\n \"@types/react\": \"^16.9.11\",\n dtslint: \"^0.3.0\",\n \"html-tag-names\": \"^1.1.2\",\n react: \"16.14.0\",\n \"svg-tag-names\": \"^1.1.1\"\n },\n repository: \"https://github.com/emotion-js/emotion/tree/main/packages/react\",\n publishConfig: {\n access: \"public\"\n },\n \"umd:main\": \"dist/emotion-react.umd.min.js\",\n preconstruct: {\n entrypoints: [\"./index.js\", \"./jsx-runtime.js\", \"./jsx-dev-runtime.js\", \"./_isolated-hnrs.js\"],\n umdName: \"emotionReact\"\n }\n};\n\nvar jsx = function jsx(type, props) {\n var args = arguments;\n\n if (props == null || !hasOwnProperty.call(props, 'css')) {\n // $FlowFixMe\n return createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n } // $FlowFixMe\n\n\n return createElement.apply(null, createElementArgArray);\n};\n\nvar warnedAboutCssPropForGlobal = false; // maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n if (process.env.NODE_ENV !== 'production' && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is\n // probably using the custom createElement which\n // means it will be turned into a className prop\n // $FlowFixMe I don't really want to add it to the type since it shouldn't be used\n props.className || props.css)) {\n console.error(\"It looks like you're using the css prop on Global, did you mean to use the styles prop instead?\");\n warnedAboutCssPropForGlobal = true;\n }\n\n var styles = props.styles;\n var serialized = serializeStyles([styles], undefined, useContext(ThemeContext)); // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n var sheetRef = useRef();\n useLayoutEffect(function () {\n var key = cache.key + \"-global\";\n var sheet = new StyleSheet({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false; // $FlowFixMe\n\n var node = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other <Global/>s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useLayoutEffect(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Global.displayName = 'EmotionGlobal';\n}\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nvar keyframes = function keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n if (process.env.NODE_ENV !== 'production' && arg.styles !== undefined && arg.name !== undefined) {\n console.error('You have passed styles created with `css` from `@emotion/react` package to the `cx`.\\n' + '`cx` is meant to compose class names (strings) so you should convert those styles to a class name by passing them to the `css` received from <ClassNames/> component.');\n }\n\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Noop = function Noop() {\n return null;\n};\n\nvar ClassNames = /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n\n var css = function css() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n {\n insertStyles(cache, serialized, false);\n }\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n var possiblyStyleElement = /*#__PURE__*/createElement(Noop, null);\n return /*#__PURE__*/createElement(Fragment, null, possiblyStyleElement, ele);\n});\n\nif (process.env.NODE_ENV !== 'production') {\n ClassNames.displayName = 'EmotionClassNames';\n}\n\nif (process.env.NODE_ENV !== 'production') {\n var isBrowser = \"object\" !== 'undefined'; // #1727 for some reason Jest evaluates modules twice if some consuming module gets mocked with jest.mock\n\n var isJest = typeof jest !== 'undefined';\n\n if (isBrowser && !isJest) {\n // globalThis has wide browser support - https://caniuse.com/?search=globalThis, Node.js 12 and later\n var globalContext = // $FlowIgnore\n typeof globalThis !== 'undefined' ? globalThis // eslint-disable-line no-undef\n : isBrowser ? window : global;\n var globalKey = \"__EMOTION_REACT_\" + pkg.version.split('.')[0] + \"__\";\n\n if (globalContext[globalKey]) {\n console.warn('You are loading @emotion/react when it is already loaded. Running ' + 'multiple instances may cause problems. This can happen if multiple ' + 'versions are used, or if multiple builds of the same version are ' + 'used.');\n }\n\n globalContext[globalKey] = true;\n }\n}\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\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 =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport default murmur2;","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(attr|counters?|url|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/;\n var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n throw new Error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error('Component selectors can only be used in conjunction with @emotion/babel-plugin.');\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n return cached !== undefined ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error('Component selectors can only be used in conjunction with @emotion/babel-plugin.');\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\n\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };","/*\n\nBased off glamor's StyleSheet, thanks Sunil â¤ï¸\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (process.env.NODE_ENV !== 'production') {\n var isImportRule = rule.charCodeAt(0) === 64 && rule.charCodeAt(1) === 105;\n\n if (isImportRule && this._alreadyInsertedOrderInsensitiveRule) {\n // this would only cause problem in speedy mode\n // but we don't want enabling speedy to affect the observable behavior\n // so we report this error at all times\n console.error(\"You're attempting to insert the following rule:\\n\" + rule + '\\n\\n`@import` rules must be before all other types of rules in a stylesheet but other rules have already been inserted. Please ensure that `@import` rules are before all other rules.');\n }\n\n this._alreadyInsertedOrderInsensitiveRule = this._alreadyInsertedOrderInsensitiveRule || !isImportRule;\n }\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production' && !/:(-moz-placeholder|-moz-focus-inner|-moz-focusring|-ms-input-placeholder|-moz-read-write|-moz-read-only|-ms-clear){/.test(rule)) {\n console.error(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode && tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n\n if (process.env.NODE_ENV !== 'production') {\n this._alreadyInsertedOrderInsensitiveRule = false;\n }\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };","import _extends from '@babel/runtime/helpers/esm/extends';\nimport { useContext, createElement, Fragment } from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { withEmotionCache, ThemeContext } from '@emotion/react';\nimport { getRegisteredStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {\n return key !== 'theme';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {\n return typeof tag === 'string' && // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\n\nvar composeShouldForwardProps = function composeShouldForwardProps(tag, options, isReal) {\n var shouldForwardProp;\n\n if (options) {\n var optionsShouldForwardProp = options.shouldForwardProp;\n shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName) {\n return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);\n } : optionsShouldForwardProp;\n }\n\n if (typeof shouldForwardProp !== 'function' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp;\n }\n\n return shouldForwardProp;\n};\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\n\nvar Noop = function Noop() {\n return null;\n};\n\nvar createStyled = function createStyled(tag, options) {\n if (process.env.NODE_ENV !== 'production') {\n if (tag === undefined) {\n throw new Error('You are trying to create a styled element with an undefined component.\\nYou may have forgotten to import it.');\n }\n }\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = isReal && tag.__emotion_base || tag;\n var identifierName;\n var targetClassName;\n\n if (options !== undefined) {\n identifierName = options.label;\n targetClassName = options.target;\n }\n\n var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);\n var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n var shouldUseAs = !defaultShouldForwardProp('as');\n return function () {\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push(\"label:\" + identifierName + \";\");\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n styles.push.apply(styles, args);\n } else {\n if (process.env.NODE_ENV !== 'production' && args[0][0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[0][0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n if (process.env.NODE_ENV !== 'production' && args[0][i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[i], args[0][i]);\n }\n } // $FlowFixMe: we need to cast StatelessFunctionalComponent to our PrivateStyledComponent class\n\n\n var Styled = withEmotionCache(function (props, cache, ref) {\n var finalTag = shouldUseAs && props.as || baseTag;\n var className = '';\n var classInterpolations = [];\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = useContext(ThemeContext);\n }\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, classInterpolations, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(styles.concat(classInterpolations), cache.registered, mergedProps);\n var rules = insertStyles(cache, serialized, typeof finalTag === 'string');\n className += cache.key + \"-\" + serialized.name;\n\n if (targetClassName !== undefined) {\n className += \" \" + targetClassName;\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(finalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key in props) {\n if (shouldUseAs && _key === 'as') continue;\n\n if ( // $FlowFixMe\n finalShouldForwardProp(_key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps.className = className;\n newProps.ref = ref;\n var ele = /*#__PURE__*/createElement(finalTag, newProps);\n var possiblyStyleElement = /*#__PURE__*/createElement(Noop, null);\n return /*#__PURE__*/createElement(Fragment, null, possiblyStyleElement, ele);\n });\n Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n Styled.defaultProps = tag.defaultProps;\n Styled.__emotion_real = Styled;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_styles = styles;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, 'toString', {\n value: function value() {\n if (targetClassName === undefined && process.env.NODE_ENV !== 'production') {\n return 'NO_COMPONENT_SELECTOR';\n } // $FlowFixMe: coerce undefined to string\n\n\n return \".\" + targetClassName;\n }\n });\n\n Styled.withComponent = function (nextTag, nextOptions) {\n return createStyled(nextTag, _extends({}, options, nextOptions, {\n shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)\n })).apply(void 0, styles);\n };\n\n return Styled;\n };\n};\n\nexport default createStyled;","import '@babel/runtime/helpers/extends';\nimport 'react';\nimport '@emotion/is-prop-valid';\nimport createStyled from '../base/dist/emotion-styled-base.browser.esm.js';\nimport '@emotion/react';\nimport '@emotion/utils';\nimport '@emotion/serialize';\nvar tags = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\nvar newStyled = createStyled.bind();\ntags.forEach(function (tagName) {\n // $FlowFixMe: we can ignore this because its exposed type is defined by the CreateStyled type\n newStyled[tagName] = newStyled(tagName);\n});\nexport default newStyled;","var unitlessKeys = {\n animationIterationCount: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\nexport default unitlessKeys;","var isBrowser = \"object\" !== 'undefined';\n\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\n\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n var maybeStyles = cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles };","/**\n * Cannot do Math.log(x) / Math.log(10) bc if IEEE floating point issue\n * @param x number\n */\nexport function getMagnitude(x) {\n // Cannot count string length via Number.toString because it may use scientific notation\n // for very small or very large numbers.\n return Math.floor(Math.log(x) * Math.LOG10E);\n}\nexport function repeat(s, times) {\n if (typeof s.repeat === 'function') {\n return s.repeat(times);\n }\n\n var arr = new Array(times);\n\n for (var i = 0; i < arr.length; i++) {\n arr[i] = s;\n }\n\n return arr.join('');\n}\nexport function setInternalSlot(map, pl, field, value) {\n if (!map.get(pl)) {\n map.set(pl, Object.create(null));\n }\n\n var slots = map.get(pl);\n slots[field] = value;\n}\nexport function setMultiInternalSlots(map, pl, props) {\n for (var _i = 0, _a = Object.keys(props); _i < _a.length; _i++) {\n var k = _a[_i];\n setInternalSlot(map, pl, k, props[k]);\n }\n}\nexport function getInternalSlot(map, pl, field) {\n return getMultiInternalSlots(map, pl, field)[field];\n}\nexport function getMultiInternalSlots(map, pl) {\n var fields = [];\n\n for (var _i = 2; _i < arguments.length; _i++) {\n fields[_i - 2] = arguments[_i];\n }\n\n var slots = map.get(pl);\n\n if (!slots) {\n throw new TypeError(pl + \" InternalSlot has not been initialized\");\n }\n\n return fields.reduce(function (all, f) {\n all[f] = slots[f];\n return all;\n }, Object.create(null));\n}\nexport function isLiteralPart(patternPart) {\n return patternPart.type === 'literal';\n}\n/*\n 17 ECMAScript Standard Built-in Objects:\n Every built-in Function object, including constructors, that is not\n identified as an anonymous function has a name property whose value\n is a String.\n\n Unless otherwise specified, the name property of a built-in Function\n object, if it exists, has the attributes { [[Writable]]: false,\n [[Enumerable]]: false, [[Configurable]]: true }.\n*/\n\nexport function defineProperty(target, name, _a) {\n var value = _a.value;\n Object.defineProperty(target, name, {\n configurable: true,\n enumerable: false,\n writable: true,\n value: value\n });\n}\nexport var UNICODE_EXTENSION_SEQUENCE_REGEX = /-u(?:-[0-9a-z]{2,8})+/gi;\nexport function invariant(condition, message, Err) {\n if (Err === void 0) {\n Err = Error;\n }\n\n if (!condition) {\n throw new Err(message);\n }\n}","//\n// Main\n//\nexport default function memoize(fn, options) {\n var cache = options && options.cache ? options.cache : cacheDefault;\n var serializer = options && options.serializer ? options.serializer : serializerDefault;\n var strategy = options && options.strategy ? options.strategy : strategyDefault;\n return strategy(fn, {\n cache: cache,\n serializer: serializer\n });\n} //\n// Strategy\n//\n\nfunction isPrimitive(value) {\n return value == null || typeof value === 'number' || typeof value === 'boolean'; // || typeof value === \"string\" 'unsafe' primitive for our needs\n}\n\nfunction monadic(fn, cache, serializer, arg) {\n var cacheKey = isPrimitive(arg) ? arg : serializer(arg);\n var computedValue = cache.get(cacheKey);\n\n if (typeof computedValue === 'undefined') {\n computedValue = fn.call(this, arg);\n cache.set(cacheKey, computedValue);\n }\n\n return computedValue;\n}\n\nfunction variadic(fn, cache, serializer) {\n var args = Array.prototype.slice.call(arguments, 3);\n var cacheKey = serializer(args);\n var computedValue = cache.get(cacheKey);\n\n if (typeof computedValue === 'undefined') {\n computedValue = fn.apply(this, args);\n cache.set(cacheKey, computedValue);\n }\n\n return computedValue;\n}\n\nfunction assemble(fn, context, strategy, cache, serialize) {\n return strategy.bind(context, fn, cache, serialize);\n}\n\nfunction strategyDefault(fn, options) {\n var strategy = fn.length === 1 ? monadic : variadic;\n return assemble(fn, this, strategy, options.cache.create(), options.serializer);\n}\n\nfunction strategyVariadic(fn, options) {\n return assemble(fn, this, variadic, options.cache.create(), options.serializer);\n}\n\nfunction strategyMonadic(fn, options) {\n return assemble(fn, this, monadic, options.cache.create(), options.serializer);\n} //\n// Serializer\n//\n\n\nvar serializerDefault = function serializerDefault() {\n return JSON.stringify(arguments);\n}; //\n// Cache\n//\n\n\nfunction ObjectWithoutPrototypeCache() {\n this.cache = Object.create(null);\n}\n\nObjectWithoutPrototypeCache.prototype.get = function (key) {\n return this.cache[key];\n};\n\nObjectWithoutPrototypeCache.prototype.set = function (key, value) {\n this.cache[key] = value;\n};\n\nvar cacheDefault = {\n create: function create() {\n // @ts-ignore\n return new ObjectWithoutPrototypeCache();\n }\n};\nexport var strategies = {\n variadic: strategyVariadic,\n monadic: strategyMonadic\n};","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(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\nexport { _assign as __assign };\nexport function __rest(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}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport var __createBinding = Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n });\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n};\nexport function __exportStar(m, o) {\n for (var p in m) {\n if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\n\nvar __setModuleDefault = Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n }\n\n __setModuleDefault(result, mod);\n\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;\n}","export var ErrorKind;\n\n(function (ErrorKind) {\n /** Argument is unclosed (e.g. `{0`) */\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_CLOSING_BRACE\"] = 1] = \"EXPECT_ARGUMENT_CLOSING_BRACE\";\n /** Argument is empty (e.g. `{}`). */\n\n ErrorKind[ErrorKind[\"EMPTY_ARGUMENT\"] = 2] = \"EMPTY_ARGUMENT\";\n /** Argument is malformed (e.g. `{foo!}``) */\n\n ErrorKind[ErrorKind[\"MALFORMED_ARGUMENT\"] = 3] = \"MALFORMED_ARGUMENT\";\n /** Expect an argument type (e.g. `{foo,}`) */\n\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_TYPE\"] = 4] = \"EXPECT_ARGUMENT_TYPE\";\n /** Unsupported argument type (e.g. `{foo,foo}`) */\n\n ErrorKind[ErrorKind[\"INVALID_ARGUMENT_TYPE\"] = 5] = \"INVALID_ARGUMENT_TYPE\";\n /** Expect an argument style (e.g. `{foo, number, }`) */\n\n ErrorKind[ErrorKind[\"EXPECT_ARGUMENT_STYLE\"] = 6] = \"EXPECT_ARGUMENT_STYLE\";\n /** The number skeleton is invalid. */\n\n ErrorKind[ErrorKind[\"INVALID_NUMBER_SKELETON\"] = 7] = \"INVALID_NUMBER_SKELETON\";\n /** The date time skeleton is invalid. */\n\n ErrorKind[ErrorKind[\"INVALID_DATE_TIME_SKELETON\"] = 8] = \"INVALID_DATE_TIME_SKELETON\";\n /** Exepct a number skeleton following the `::` (e.g. `{foo, number, ::}`) */\n\n ErrorKind[ErrorKind[\"EXPECT_NUMBER_SKELETON\"] = 9] = \"EXPECT_NUMBER_SKELETON\";\n /** Exepct a date time skeleton following the `::` (e.g. `{foo, date, ::}`) */\n\n ErrorKind[ErrorKind[\"EXPECT_DATE_TIME_SKELETON\"] = 10] = \"EXPECT_DATE_TIME_SKELETON\";\n /** Unmatched apostrophes in the argument style (e.g. `{foo, number, 'test`) */\n\n ErrorKind[ErrorKind[\"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\"] = 11] = \"UNCLOSED_QUOTE_IN_ARGUMENT_STYLE\";\n /** Missing select argument options (e.g. `{foo, select}`) */\n\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_OPTIONS\"] = 12] = \"EXPECT_SELECT_ARGUMENT_OPTIONS\";\n /** Expecting an offset value in `plural` or `selectordinal` argument (e.g `{foo, plural, offset}`) */\n\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 13] = \"EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Offset value in `plural` or `selectordinal` is invalid (e.g. `{foo, plural, offset: x}`) */\n\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\"] = 14] = \"INVALID_PLURAL_ARGUMENT_OFFSET_VALUE\";\n /** Expecting a selector in `select` argument (e.g `{foo, select}`) */\n\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR\"] = 15] = \"EXPECT_SELECT_ARGUMENT_SELECTOR\";\n /** Expecting a selector in `plural` or `selectordinal` argument (e.g `{foo, plural}`) */\n\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR\"] = 16] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR\";\n /** Expecting a message fragment after the `select` selector (e.g. `{foo, select, apple}`) */\n\n ErrorKind[ErrorKind[\"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\"] = 17] = \"EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT\";\n /**\n * Expecting a message fragment after the `plural` or `selectordinal` selector\n * (e.g. `{foo, plural, one}`)\n */\n\n ErrorKind[ErrorKind[\"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\"] = 18] = \"EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT\";\n /** Selector in `plural` or `selectordinal` is malformed (e.g. `{foo, plural, =x {#}}`) */\n\n ErrorKind[ErrorKind[\"INVALID_PLURAL_ARGUMENT_SELECTOR\"] = 19] = \"INVALID_PLURAL_ARGUMENT_SELECTOR\";\n /**\n * Duplicate selectors in `plural` or `selectordinal` argument.\n * (e.g. {foo, plural, one {#} one {#}})\n */\n\n ErrorKind[ErrorKind[\"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\"] = 20] = \"DUPLICATE_PLURAL_ARGUMENT_SELECTOR\";\n /** Duplicate selectors in `select` argument.\n * (e.g. {foo, select, apple {apple} apple {apple}})\n */\n\n ErrorKind[ErrorKind[\"DUPLICATE_SELECT_ARGUMENT_SELECTOR\"] = 21] = \"DUPLICATE_SELECT_ARGUMENT_SELECTOR\";\n /** Plural or select argument option must have `other` clause. */\n\n ErrorKind[ErrorKind[\"MISSING_OTHER_CLAUSE\"] = 22] = \"MISSING_OTHER_CLAUSE\";\n /** The tag is malformed. (e.g. `<bold!>foo</bold!>) */\n\n ErrorKind[ErrorKind[\"INVALID_TAG\"] = 23] = \"INVALID_TAG\";\n /** The tag name is invalid. (e.g. `<123>foo</123>`) */\n\n ErrorKind[ErrorKind[\"INVALID_TAG_NAME\"] = 25] = \"INVALID_TAG_NAME\";\n /** The closing tag does not match the opening tag. (e.g. `<bold>foo</italic>`) */\n\n ErrorKind[ErrorKind[\"UNMATCHED_CLOSING_TAG\"] = 26] = \"UNMATCHED_CLOSING_TAG\";\n /** The opening tag has unmatched closing tag. (e.g. `<bold>foo`) */\n\n ErrorKind[ErrorKind[\"UNCLOSED_TAG\"] = 27] = \"UNCLOSED_TAG\";\n})(ErrorKind || (ErrorKind = {}));","export var TYPE;\n\n(function (TYPE) {\n /**\n * Raw text\n */\n TYPE[TYPE[\"literal\"] = 0] = \"literal\";\n /**\n * Variable w/o any format, e.g `var` in `this is a {var}`\n */\n\n TYPE[TYPE[\"argument\"] = 1] = \"argument\";\n /**\n * Variable w/ number format\n */\n\n TYPE[TYPE[\"number\"] = 2] = \"number\";\n /**\n * Variable w/ date format\n */\n\n TYPE[TYPE[\"date\"] = 3] = \"date\";\n /**\n * Variable w/ time format\n */\n\n TYPE[TYPE[\"time\"] = 4] = \"time\";\n /**\n * Variable w/ select format\n */\n\n TYPE[TYPE[\"select\"] = 5] = \"select\";\n /**\n * Variable w/ plural format\n */\n\n TYPE[TYPE[\"plural\"] = 6] = \"plural\";\n /**\n * Only possible within plural argument.\n * This is the `#` symbol that will be substituted with the count.\n */\n\n TYPE[TYPE[\"pound\"] = 7] = \"pound\";\n /**\n * XML-like tag\n */\n\n TYPE[TYPE[\"tag\"] = 8] = \"tag\";\n})(TYPE || (TYPE = {}));\n\nexport var SKELETON_TYPE;\n\n(function (SKELETON_TYPE) {\n SKELETON_TYPE[SKELETON_TYPE[\"number\"] = 0] = \"number\";\n SKELETON_TYPE[SKELETON_TYPE[\"dateTime\"] = 1] = \"dateTime\";\n})(SKELETON_TYPE || (SKELETON_TYPE = {}));\n/**\n * Type Guards\n */\n\n\nexport function isLiteralElement(el) {\n return el.type === TYPE.literal;\n}\nexport function isArgumentElement(el) {\n return el.type === TYPE.argument;\n}\nexport function isNumberElement(el) {\n return el.type === TYPE.number;\n}\nexport function isDateElement(el) {\n return el.type === TYPE.date;\n}\nexport function isTimeElement(el) {\n return el.type === TYPE.time;\n}\nexport function isSelectElement(el) {\n return el.type === TYPE.select;\n}\nexport function isPluralElement(el) {\n return el.type === TYPE.plural;\n}\nexport function isPoundElement(el) {\n return el.type === TYPE.pound;\n}\nexport function isTagElement(el) {\n return el.type === TYPE.tag;\n}\nexport function isNumberSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.number);\n}\nexport function isDateTimeSkeleton(el) {\n return !!(el && typeof el === 'object' && el.type === SKELETON_TYPE.dateTime);\n}\nexport function createLiteralElement(value) {\n return {\n type: TYPE.literal,\n value: value\n };\n}\nexport function createNumberElement(value, style) {\n return {\n type: TYPE.number,\n value: value,\n style: style\n };\n}","// @generated from regex-gen.ts\nexport var SPACE_SEPARATOR_REGEX = /[ \\xA0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]/;\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/;","/**\n * https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * Credit: https://github.com/caridy/intl-datetimeformat-pattern/blob/master/index.js\n * with some tweaks\n */\nvar DATE_TIME_REGEX = /(?:[Eec]{1,6}|G{1,5}|[Qq]{1,5}|(?:[yYur]+|U{1,5})|[ML]{1,5}|d{1,2}|D{1,3}|F{1}|[abB]{1,5}|[hkHK]{1,2}|w{1,2}|W{1}|m{1,2}|s{1,2}|[zZOvVxX]{1,4})(?=([^']*'[^']*')*[^']*$)/g;\n/**\n * Parse Date time skeleton into Intl.DateTimeFormatOptions\n * Ref: https://unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * @public\n * @param skeleton skeleton string\n */\n\nexport function parseDateTimeSkeleton(skeleton) {\n var result = {};\n skeleton.replace(DATE_TIME_REGEX, function (match) {\n var len = match.length;\n\n switch (match[0]) {\n // Era\n case 'G':\n result.era = len === 4 ? 'long' : len === 5 ? 'narrow' : 'short';\n break;\n // Year\n\n case 'y':\n result.year = len === 2 ? '2-digit' : 'numeric';\n break;\n\n case 'Y':\n case 'u':\n case 'U':\n case 'r':\n throw new RangeError('`Y/u/U/r` (year) patterns are not supported, use `y` instead');\n // Quarter\n\n case 'q':\n case 'Q':\n throw new RangeError('`q/Q` (quarter) patterns are not supported');\n // Month\n\n case 'M':\n case 'L':\n result.month = ['numeric', '2-digit', 'short', 'long', 'narrow'][len - 1];\n break;\n // Week\n\n case 'w':\n case 'W':\n throw new RangeError('`w/W` (week) patterns are not supported');\n\n case 'd':\n result.day = ['numeric', '2-digit'][len - 1];\n break;\n\n case 'D':\n case 'F':\n case 'g':\n throw new RangeError('`D/F/g` (day) patterns are not supported, use `d` instead');\n // Weekday\n\n case 'E':\n result.weekday = len === 4 ? 'short' : len === 5 ? 'narrow' : 'short';\n break;\n\n case 'e':\n if (len < 4) {\n throw new RangeError('`e..eee` (weekday) patterns are not supported');\n }\n\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n\n case 'c':\n if (len < 4) {\n throw new RangeError('`c..ccc` (weekday) patterns are not supported');\n }\n\n result.weekday = ['short', 'long', 'narrow', 'short'][len - 4];\n break;\n // Period\n\n case 'a':\n // AM, PM\n result.hour12 = true;\n break;\n\n case 'b': // am, pm, noon, midnight\n\n case 'B':\n // flexible day periods\n throw new RangeError('`b/B` (period) patterns are not supported, use `a` instead');\n // Hour\n\n case 'h':\n result.hourCycle = 'h12';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n\n case 'H':\n result.hourCycle = 'h23';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n\n case 'K':\n result.hourCycle = 'h11';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n\n case 'k':\n result.hourCycle = 'h24';\n result.hour = ['numeric', '2-digit'][len - 1];\n break;\n\n case 'j':\n case 'J':\n case 'C':\n throw new RangeError('`j/J/C` (hour) patterns are not supported, use `h/H/K/k` instead');\n // Minute\n\n case 'm':\n result.minute = ['numeric', '2-digit'][len - 1];\n break;\n // Second\n\n case 's':\n result.second = ['numeric', '2-digit'][len - 1];\n break;\n\n case 'S':\n case 'A':\n throw new RangeError('`S/A` (second) patterns are not supported, use `s` instead');\n // Zone\n\n case 'z':\n // 1..3, 4: specific non-location format\n result.timeZoneName = len < 4 ? 'short' : 'long';\n break;\n\n case 'Z': // 1..3, 4, 5: The ISO8601 varios formats\n\n case 'O': // 1, 4: miliseconds in day short, long\n\n case 'v': // 1, 4: generic non-location format\n\n case 'V': // 1, 2, 3, 4: time zone ID or city\n\n case 'X': // 1, 2, 3, 4: The ISO8601 varios formats\n\n case 'x':\n // 1, 2, 3, 4: The ISO8601 varios formats\n throw new RangeError('`Z/O/v/V/X/x` (timeZone) patterns are not supported, use `z` instead');\n }\n\n return '';\n });\n return result;\n}","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(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\nexport { _assign as __assign };\nexport function __rest(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}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport var __createBinding = Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n });\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n};\nexport function __exportStar(m, o) {\n for (var p in m) {\n if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\n\nvar __setModuleDefault = Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n }\n\n __setModuleDefault(result, mod);\n\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;\n}","// @generated from regex-gen.ts\nexport var WHITE_SPACE_REGEX = /[\\t-\\r \\x85\\u200E\\u200F\\u2028\\u2029]/i;","import { __assign } from \"tslib\";\nimport { WHITE_SPACE_REGEX } from './regex.generated';\nexport function parseNumberSkeletonFromString(skeleton) {\n if (skeleton.length === 0) {\n throw new Error('Number skeleton cannot be empty');\n } // Parse the skeleton\n\n\n var stringTokens = skeleton.split(WHITE_SPACE_REGEX).filter(function (x) {\n return x.length > 0;\n });\n var tokens = [];\n\n for (var _i = 0, stringTokens_1 = stringTokens; _i < stringTokens_1.length; _i++) {\n var stringToken = stringTokens_1[_i];\n var stemAndOptions = stringToken.split('/');\n\n if (stemAndOptions.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n\n var stem = stemAndOptions[0],\n options = stemAndOptions.slice(1);\n\n for (var _a = 0, options_1 = options; _a < options_1.length; _a++) {\n var option = options_1[_a];\n\n if (option.length === 0) {\n throw new Error('Invalid number skeleton');\n }\n }\n\n tokens.push({\n stem: stem,\n options: options\n });\n }\n\n return tokens;\n}\n\nfunction icuUnitToEcma(unit) {\n return unit.replace(/^(.*?)-/, '');\n}\n\nvar FRACTION_PRECISION_REGEX = /^\\.(?:(0+)(\\*)?|(#+)|(0+)(#+))$/g;\nvar SIGNIFICANT_PRECISION_REGEX = /^(@+)?(\\+|#+)?[rs]?$/g;\nvar INTEGER_WIDTH_REGEX = /(\\*)(0+)|(#+)(0+)|(0+)/g;\nvar CONCISE_INTEGER_WIDTH_REGEX = /^(0+)$/;\n\nfunction parseSignificantPrecision(str) {\n var result = {};\n\n if (str[str.length - 1] === 'r') {\n result.roundingPriority = 'morePrecision';\n } else if (str[str.length - 1] === 's') {\n result.roundingPriority = 'lessPrecision';\n }\n\n str.replace(SIGNIFICANT_PRECISION_REGEX, function (_, g1, g2) {\n // @@@ case\n if (typeof g2 !== 'string') {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits = g1.length;\n } // @@@+ case\n else if (g2 === '+') {\n result.minimumSignificantDigits = g1.length;\n } // .### case\n else if (g1[0] === '#') {\n result.maximumSignificantDigits = g1.length;\n } // .@@## or .@@@ case\n else {\n result.minimumSignificantDigits = g1.length;\n result.maximumSignificantDigits = g1.length + (typeof g2 === 'string' ? g2.length : 0);\n }\n\n return '';\n });\n return result;\n}\n\nfunction parseSign(str) {\n switch (str) {\n case 'sign-auto':\n return {\n signDisplay: 'auto'\n };\n\n case 'sign-accounting':\n case '()':\n return {\n currencySign: 'accounting'\n };\n\n case 'sign-always':\n case '+!':\n return {\n signDisplay: 'always'\n };\n\n case 'sign-accounting-always':\n case '()!':\n return {\n signDisplay: 'always',\n currencySign: 'accounting'\n };\n\n case 'sign-except-zero':\n case '+?':\n return {\n signDisplay: 'exceptZero'\n };\n\n case 'sign-accounting-except-zero':\n case '()?':\n return {\n signDisplay: 'exceptZero',\n currencySign: 'accounting'\n };\n\n case 'sign-never':\n case '+_':\n return {\n signDisplay: 'never'\n };\n }\n}\n\nfunction parseConciseScientificAndEngineeringStem(stem) {\n // Engineering\n var result;\n\n if (stem[0] === 'E' && stem[1] === 'E') {\n result = {\n notation: 'engineering'\n };\n stem = stem.slice(2);\n } else if (stem[0] === 'E') {\n result = {\n notation: 'scientific'\n };\n stem = stem.slice(1);\n }\n\n if (result) {\n var signDisplay = stem.slice(0, 2);\n\n if (signDisplay === '+!') {\n result.signDisplay = 'always';\n stem = stem.slice(2);\n } else if (signDisplay === '+?') {\n result.signDisplay = 'exceptZero';\n stem = stem.slice(2);\n }\n\n if (!CONCISE_INTEGER_WIDTH_REGEX.test(stem)) {\n throw new Error('Malformed concise eng/scientific notation');\n }\n\n result.minimumIntegerDigits = stem.length;\n }\n\n return result;\n}\n\nfunction parseNotationOptions(opt) {\n var result = {};\n var signOpts = parseSign(opt);\n\n if (signOpts) {\n return signOpts;\n }\n\n return result;\n}\n/**\n * https://github.com/unicode-org/icu/blob/master/docs/userguide/format_parse/numbers/skeletons.md#skeleton-stems-and-options\n */\n\n\nexport function parseNumberSkeleton(tokens) {\n var result = {};\n\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n\n switch (token.stem) {\n case 'percent':\n case '%':\n result.style = 'percent';\n continue;\n\n case '%x100':\n result.style = 'percent';\n result.scale = 100;\n continue;\n\n case 'currency':\n result.style = 'currency';\n result.currency = token.options[0];\n continue;\n\n case 'group-off':\n case ',_':\n result.useGrouping = false;\n continue;\n\n case 'precision-integer':\n case '.':\n result.maximumFractionDigits = 0;\n continue;\n\n case 'measure-unit':\n case 'unit':\n result.style = 'unit';\n result.unit = icuUnitToEcma(token.options[0]);\n continue;\n\n case 'compact-short':\n case 'K':\n result.notation = 'compact';\n result.compactDisplay = 'short';\n continue;\n\n case 'compact-long':\n case 'KK':\n result.notation = 'compact';\n result.compactDisplay = 'long';\n continue;\n\n case 'scientific':\n result = __assign(__assign(__assign({}, result), {\n notation: 'scientific'\n }), token.options.reduce(function (all, opt) {\n return __assign(__assign({}, all), parseNotationOptions(opt));\n }, {}));\n continue;\n\n case 'engineering':\n result = __assign(__assign(__assign({}, result), {\n notation: 'engineering'\n }), token.options.reduce(function (all, opt) {\n return __assign(__assign({}, all), parseNotationOptions(opt));\n }, {}));\n continue;\n\n case 'notation-simple':\n result.notation = 'standard';\n continue;\n // https://github.com/unicode-org/icu/blob/master/icu4c/source/i18n/unicode/unumberformatter.h\n\n case 'unit-width-narrow':\n result.currencyDisplay = 'narrowSymbol';\n result.unitDisplay = 'narrow';\n continue;\n\n case 'unit-width-short':\n result.currencyDisplay = 'code';\n result.unitDisplay = 'short';\n continue;\n\n case 'unit-width-full-name':\n result.currencyDisplay = 'name';\n result.unitDisplay = 'long';\n continue;\n\n case 'unit-width-iso-code':\n result.currencyDisplay = 'symbol';\n continue;\n\n case 'scale':\n result.scale = parseFloat(token.options[0]);\n continue;\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n\n case 'integer-width':\n if (token.options.length > 1) {\n throw new RangeError('integer-width stems only accept a single optional option');\n }\n\n token.options[0].replace(INTEGER_WIDTH_REGEX, function (_, g1, g2, g3, g4, g5) {\n if (g1) {\n result.minimumIntegerDigits = g2.length;\n } else if (g3 && g4) {\n throw new Error('We currently do not support maximum integer digits');\n } else if (g5) {\n throw new Error('We currently do not support exact integer digits');\n }\n\n return '';\n });\n continue;\n } // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#integer-width\n\n\n if (CONCISE_INTEGER_WIDTH_REGEX.test(token.stem)) {\n result.minimumIntegerDigits = token.stem.length;\n continue;\n }\n\n if (FRACTION_PRECISION_REGEX.test(token.stem)) {\n // Precision\n // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#fraction-precision\n // precision-integer case\n if (token.options.length > 1) {\n throw new RangeError('Fraction-precision stems only accept a single optional option');\n }\n\n token.stem.replace(FRACTION_PRECISION_REGEX, function (_, g1, g2, g3, g4, g5) {\n // .000* case (before ICU67 it was .000+)\n if (g2 === '*') {\n result.minimumFractionDigits = g1.length;\n } // .### case\n else if (g3 && g3[0] === '#') {\n result.maximumFractionDigits = g3.length;\n } // .00## case\n else if (g4 && g5) {\n result.minimumFractionDigits = g4.length;\n result.maximumFractionDigits = g4.length + g5.length;\n } else {\n result.minimumFractionDigits = g1.length;\n result.maximumFractionDigits = g1.length;\n }\n\n return '';\n });\n var opt = token.options[0]; // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#trailing-zero-display\n\n if (opt === 'w') {\n result = __assign(__assign({}, result), {\n trailingZeroDisplay: 'stripIfInteger'\n });\n } else if (opt) {\n result = __assign(__assign({}, result), parseSignificantPrecision(opt));\n }\n\n continue;\n } // https://unicode-org.github.io/icu/userguide/format_parse/numbers/skeletons.html#significant-digits-precision\n\n\n if (SIGNIFICANT_PRECISION_REGEX.test(token.stem)) {\n result = __assign(__assign({}, result), parseSignificantPrecision(token.stem));\n continue;\n }\n\n var signOpts = parseSign(token.stem);\n\n if (signOpts) {\n result = __assign(__assign({}, result), signOpts);\n }\n\n var conciseScientificAndEngineeringOpts = parseConciseScientificAndEngineeringStem(token.stem);\n\n if (conciseScientificAndEngineeringOpts) {\n result = __assign(__assign({}, result), conciseScientificAndEngineeringOpts);\n }\n }\n\n return result;\n}","import \"core-js/modules/es.object.from-entries.js\";\nimport \"core-js/modules/es.string.trim-start.js\";\nimport \"core-js/modules/es.string.trim-end.js\";\n\nvar _a;\n\nimport { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { SKELETON_TYPE, TYPE } from './types';\nimport { SPACE_SEPARATOR_REGEX } from './regex.generated';\nimport { parseNumberSkeleton, parseNumberSkeletonFromString, parseDateTimeSkeleton } from '@formatjs/icu-skeleton-parser';\nvar SPACE_SEPARATOR_START_REGEX = new RegExp(\"^\" + SPACE_SEPARATOR_REGEX.source + \"*\");\nvar SPACE_SEPARATOR_END_REGEX = new RegExp(SPACE_SEPARATOR_REGEX.source + \"*$\");\n\nfunction createLocation(start, end) {\n return {\n start: start,\n end: end\n };\n} // #region Ponyfills\n// Consolidate these variables up top for easier toggling during debugging\n\n\nvar hasNativeStartsWith = !!String.prototype.startsWith;\nvar hasNativeFromCodePoint = !!String.fromCodePoint;\nvar hasNativeFromEntries = !!Object.fromEntries;\nvar hasNativeCodePointAt = !!String.prototype.codePointAt;\nvar hasTrimStart = !!String.prototype.trimStart;\nvar hasTrimEnd = !!String.prototype.trimEnd;\nvar hasNativeIsSafeInteger = !!Number.isSafeInteger;\nvar isSafeInteger = hasNativeIsSafeInteger ? Number.isSafeInteger : function (n) {\n return typeof n === 'number' && isFinite(n) && Math.floor(n) === n && Math.abs(n) <= 0x1fffffffffffff;\n}; // IE11 does not support y and u.\n\nvar REGEX_SUPPORTS_U_AND_Y = true;\n\ntry {\n var re = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n /**\n * legacy Edge or Xbox One browser\n * Unicode flag support: supported\n * Pattern_Syntax support: not supported\n * See https://github.com/formatjs/formatjs/issues/2822\n */\n\n REGEX_SUPPORTS_U_AND_Y = ((_a = re.exec('a')) === null || _a === void 0 ? void 0 : _a[0]) === 'a';\n} catch (_) {\n REGEX_SUPPORTS_U_AND_Y = false;\n}\n\nvar startsWith = hasNativeStartsWith ? // Native\nfunction startsWith(s, search, position) {\n return s.startsWith(search, position);\n} : // For IE11\nfunction startsWith(s, search, position) {\n return s.slice(position, position + search.length) === search;\n};\nvar fromCodePoint = hasNativeFromCodePoint ? String.fromCodePoint : // IE11\nfunction fromCodePoint() {\n var codePoints = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n codePoints[_i] = arguments[_i];\n }\n\n var elements = '';\n var length = codePoints.length;\n var i = 0;\n var code;\n\n while (length > i) {\n code = codePoints[i++];\n if (code > 0x10ffff) throw RangeError(code + ' is not a valid code point');\n elements += code < 0x10000 ? String.fromCharCode(code) : String.fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00);\n }\n\n return elements;\n};\nvar fromEntries = // native\nhasNativeFromEntries ? Object.fromEntries : // Ponyfill\nfunction fromEntries(entries) {\n var obj = {};\n\n for (var _i = 0, entries_1 = entries; _i < entries_1.length; _i++) {\n var _a = entries_1[_i],\n k = _a[0],\n v = _a[1];\n obj[k] = v;\n }\n\n return obj;\n};\nvar codePointAt = hasNativeCodePointAt ? // Native\nfunction codePointAt(s, index) {\n return s.codePointAt(index);\n} : // IE 11\nfunction codePointAt(s, index) {\n var size = s.length;\n\n if (index < 0 || index >= size) {\n return undefined;\n }\n\n var first = s.charCodeAt(index);\n var second;\n return first < 0xd800 || first > 0xdbff || index + 1 === size || (second = s.charCodeAt(index + 1)) < 0xdc00 || second > 0xdfff ? first : (first - 0xd800 << 10) + (second - 0xdc00) + 0x10000;\n};\nvar trimStart = hasTrimStart ? // Native\nfunction trimStart(s) {\n return s.trimStart();\n} : // Ponyfill\nfunction trimStart(s) {\n return s.replace(SPACE_SEPARATOR_START_REGEX, '');\n};\nvar trimEnd = hasTrimEnd ? // Native\nfunction trimEnd(s) {\n return s.trimEnd();\n} : // Ponyfill\nfunction trimEnd(s) {\n return s.replace(SPACE_SEPARATOR_END_REGEX, '');\n}; // Prevent minifier to translate new RegExp to literal form that might cause syntax error on IE11.\n\nfunction RE(s, flag) {\n return new RegExp(s, flag);\n} // #endregion\n\n\nvar matchIdentifierAtIndex;\n\nif (REGEX_SUPPORTS_U_AND_Y) {\n // Native\n var IDENTIFIER_PREFIX_RE_1 = RE('([^\\\\p{White_Space}\\\\p{Pattern_Syntax}]*)', 'yu');\n\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var _a;\n\n IDENTIFIER_PREFIX_RE_1.lastIndex = index;\n var match = IDENTIFIER_PREFIX_RE_1.exec(s);\n return (_a = match[1]) !== null && _a !== void 0 ? _a : '';\n };\n} else {\n // IE11\n matchIdentifierAtIndex = function matchIdentifierAtIndex(s, index) {\n var match = [];\n\n while (true) {\n var c = codePointAt(s, index);\n\n if (c === undefined || _isWhiteSpace(c) || _isPatternSyntax(c)) {\n break;\n }\n\n match.push(c);\n index += c >= 0x10000 ? 2 : 1;\n }\n\n return fromCodePoint.apply(void 0, match);\n };\n}\n\nvar Parser =\n/** @class */\nfunction () {\n function Parser(message, options) {\n if (options === void 0) {\n options = {};\n }\n\n this.message = message;\n this.position = {\n offset: 0,\n line: 1,\n column: 1\n };\n this.ignoreTag = !!options.ignoreTag;\n this.requiresOtherClause = !!options.requiresOtherClause;\n this.shouldParseSkeletons = !!options.shouldParseSkeletons;\n }\n\n Parser.prototype.parse = function () {\n if (this.offset() !== 0) {\n throw Error('parser can only be used once');\n }\n\n return this.parseMessage(0, '', false);\n };\n\n Parser.prototype.parseMessage = function (nestingLevel, parentArgType, expectingCloseTag) {\n var elements = [];\n\n while (!this.isEOF()) {\n var char = this.char();\n\n if (char === 123\n /* `{` */\n ) {\n var result = this.parseArgument(nestingLevel, expectingCloseTag);\n\n if (result.err) {\n return result;\n }\n\n elements.push(result.val);\n } else if (char === 125\n /* `}` */\n && nestingLevel > 0) {\n break;\n } else if (char === 35\n /* `#` */\n && (parentArgType === 'plural' || parentArgType === 'selectordinal')) {\n var position = this.clonePosition();\n this.bump();\n elements.push({\n type: TYPE.pound,\n location: createLocation(position, this.clonePosition())\n });\n } else if (char === 60\n /* `<` */\n && !this.ignoreTag && this.peek() === 47 // char code for '/'\n ) {\n if (expectingCloseTag) {\n break;\n } else {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(this.clonePosition(), this.clonePosition()));\n }\n } else if (char === 60\n /* `<` */\n && !this.ignoreTag && _isAlpha(this.peek() || 0)) {\n var result = this.parseTag(nestingLevel, parentArgType);\n\n if (result.err) {\n return result;\n }\n\n elements.push(result.val);\n } else {\n var result = this.parseLiteral(nestingLevel, parentArgType);\n\n if (result.err) {\n return result;\n }\n\n elements.push(result.val);\n }\n }\n\n return {\n val: elements,\n err: null\n };\n };\n /**\n * A tag name must start with an ASCII lower/upper case letter. The grammar is based on the\n * [custom element name][] except that a dash is NOT always mandatory and uppercase letters\n * are accepted:\n *\n * ```\n * tag ::= \"<\" tagName (whitespace)* \"/>\" | \"<\" tagName (whitespace)* \">\" message \"</\" tagName (whitespace)* \">\"\n * tagName ::= [a-z] (PENChar)*\n * PENChar ::=\n * \"-\" | \".\" | [0-9] | \"_\" | [a-z] | [A-Z] | #xB7 | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x37D] |\n * [#x37F-#x1FFF] | [#x200C-#x200D] | [#x203F-#x2040] | [#x2070-#x218F] | [#x2C00-#x2FEF] |\n * [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\n * ```\n *\n * [custom element name]: https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name\n * NOTE: We're a bit more lax here since HTML technically does not allow uppercase HTML element but we do\n * since other tag-based engines like React allow it\n */\n\n\n Parser.prototype.parseTag = function (nestingLevel, parentArgType) {\n var startPosition = this.clonePosition();\n this.bump(); // `<`\n\n var tagName = this.parseTagName();\n this.bumpSpace();\n\n if (this.bumpIf('/>')) {\n // Self closing tag\n return {\n val: {\n type: TYPE.literal,\n value: \"<\" + tagName + \"/>\",\n location: createLocation(startPosition, this.clonePosition())\n },\n err: null\n };\n } else if (this.bumpIf('>')) {\n var childrenResult = this.parseMessage(nestingLevel + 1, parentArgType, true);\n\n if (childrenResult.err) {\n return childrenResult;\n }\n\n var children = childrenResult.val; // Expecting a close tag\n\n var endTagStartPosition = this.clonePosition();\n\n if (this.bumpIf('</')) {\n if (this.isEOF() || !_isAlpha(this.char())) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n\n var closingTagNameStartPosition = this.clonePosition();\n var closingTagName = this.parseTagName();\n\n if (tagName !== closingTagName) {\n return this.error(ErrorKind.UNMATCHED_CLOSING_TAG, createLocation(closingTagNameStartPosition, this.clonePosition()));\n }\n\n this.bumpSpace();\n\n if (!this.bumpIf('>')) {\n return this.error(ErrorKind.INVALID_TAG, createLocation(endTagStartPosition, this.clonePosition()));\n }\n\n return {\n val: {\n type: TYPE.tag,\n value: tagName,\n children: children,\n location: createLocation(startPosition, this.clonePosition())\n },\n err: null\n };\n } else {\n return this.error(ErrorKind.UNCLOSED_TAG, createLocation(startPosition, this.clonePosition()));\n }\n } else {\n return this.error(ErrorKind.INVALID_TAG, createLocation(startPosition, this.clonePosition()));\n }\n };\n /**\n * This method assumes that the caller has peeked ahead for the first tag character.\n */\n\n\n Parser.prototype.parseTagName = function () {\n var startOffset = this.offset();\n this.bump(); // the first tag name character\n\n while (!this.isEOF() && _isPotentialElementNameChar(this.char())) {\n this.bump();\n }\n\n return this.message.slice(startOffset, this.offset());\n };\n\n Parser.prototype.parseLiteral = function (nestingLevel, parentArgType) {\n var start = this.clonePosition();\n var value = '';\n\n while (true) {\n var parseQuoteResult = this.tryParseQuote(parentArgType);\n\n if (parseQuoteResult) {\n value += parseQuoteResult;\n continue;\n }\n\n var parseUnquotedResult = this.tryParseUnquoted(nestingLevel, parentArgType);\n\n if (parseUnquotedResult) {\n value += parseUnquotedResult;\n continue;\n }\n\n var parseLeftAngleResult = this.tryParseLeftAngleBracket();\n\n if (parseLeftAngleResult) {\n value += parseLeftAngleResult;\n continue;\n }\n\n break;\n }\n\n var location = createLocation(start, this.clonePosition());\n return {\n val: {\n type: TYPE.literal,\n value: value,\n location: location\n },\n err: null\n };\n };\n\n Parser.prototype.tryParseLeftAngleBracket = function () {\n if (!this.isEOF() && this.char() === 60\n /* `<` */\n && (this.ignoreTag || // If at the opening tag or closing tag position, bail.\n !_isAlphaOrSlash(this.peek() || 0))) {\n this.bump(); // `<`\n\n return '<';\n }\n\n return null;\n };\n /**\n * Starting with ICU 4.8, an ASCII apostrophe only starts quoted text if it immediately precedes\n * a character that requires quoting (that is, \"only where needed\"), and works the same in\n * nested messages as on the top level of the pattern. The new behavior is otherwise compatible.\n */\n\n\n Parser.prototype.tryParseQuote = function (parentArgType) {\n if (this.isEOF() || this.char() !== 39\n /* `'` */\n ) {\n return null;\n } // Parse escaped char following the apostrophe, or early return if there is no escaped char.\n // Check if is valid escaped character\n\n\n switch (this.peek()) {\n case 39\n /* `'` */\n :\n // double quote, should return as a single quote.\n this.bump();\n this.bump();\n return \"'\";\n // '{', '<', '>', '}'\n\n case 123:\n case 60:\n case 62:\n case 125:\n break;\n\n case 35:\n // '#'\n if (parentArgType === 'plural' || parentArgType === 'selectordinal') {\n break;\n }\n\n return null;\n\n default:\n return null;\n }\n\n this.bump(); // apostrophe\n\n var codePoints = [this.char()]; // escaped char\n\n this.bump(); // read chars until the optional closing apostrophe is found\n\n while (!this.isEOF()) {\n var ch = this.char();\n\n if (ch === 39\n /* `'` */\n ) {\n if (this.peek() === 39\n /* `'` */\n ) {\n codePoints.push(39); // Bump one more time because we need to skip 2 characters.\n\n this.bump();\n } else {\n // Optional closing apostrophe.\n this.bump();\n break;\n }\n } else {\n codePoints.push(ch);\n }\n\n this.bump();\n }\n\n return fromCodePoint.apply(void 0, codePoints);\n };\n\n Parser.prototype.tryParseUnquoted = function (nestingLevel, parentArgType) {\n if (this.isEOF()) {\n return null;\n }\n\n var ch = this.char();\n\n if (ch === 60\n /* `<` */\n || ch === 123\n /* `{` */\n || ch === 35\n /* `#` */\n && (parentArgType === 'plural' || parentArgType === 'selectordinal') || ch === 125\n /* `}` */\n && nestingLevel > 0) {\n return null;\n } else {\n this.bump();\n return fromCodePoint(ch);\n }\n };\n\n Parser.prototype.parseArgument = function (nestingLevel, expectingCloseTag) {\n var openingBracePosition = this.clonePosition();\n this.bump(); // `{`\n\n this.bumpSpace();\n\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n\n if (this.char() === 125\n /* `}` */\n ) {\n this.bump();\n return this.error(ErrorKind.EMPTY_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n } // argument name\n\n\n var value = this.parseIdentifierIfPossible().value;\n\n if (!value) {\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n\n this.bumpSpace();\n\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n\n switch (this.char()) {\n // Simple argument: `{name}`\n case 125\n /* `}` */\n :\n {\n this.bump(); // `}`\n\n return {\n val: {\n type: TYPE.argument,\n // value does not include the opening and closing braces.\n value: value,\n location: createLocation(openingBracePosition, this.clonePosition())\n },\n err: null\n };\n }\n // Argument with options: `{name, format, ...}`\n\n case 44\n /* `,` */\n :\n {\n this.bump(); // `,`\n\n this.bumpSpace();\n\n if (this.isEOF()) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n\n return this.parseArgumentOptions(nestingLevel, expectingCloseTag, value, openingBracePosition);\n }\n\n default:\n return this.error(ErrorKind.MALFORMED_ARGUMENT, createLocation(openingBracePosition, this.clonePosition()));\n }\n };\n /**\n * Advance the parser until the end of the identifier, if it is currently on\n * an identifier character. Return an empty string otherwise.\n */\n\n\n Parser.prototype.parseIdentifierIfPossible = function () {\n var startingPosition = this.clonePosition();\n var startOffset = this.offset();\n var value = matchIdentifierAtIndex(this.message, startOffset);\n var endOffset = startOffset + value.length;\n this.bumpTo(endOffset);\n var endPosition = this.clonePosition();\n var location = createLocation(startingPosition, endPosition);\n return {\n value: value,\n location: location\n };\n };\n\n Parser.prototype.parseArgumentOptions = function (nestingLevel, expectingCloseTag, value, openingBracePosition) {\n var _a; // Parse this range:\n // {name, type, style}\n // ^---^\n\n\n var typeStartPosition = this.clonePosition();\n var argType = this.parseIdentifierIfPossible().value;\n var typeEndPosition = this.clonePosition();\n\n switch (argType) {\n case '':\n // Expecting a style string number, date, time, plural, selectordinal, or select.\n return this.error(ErrorKind.EXPECT_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n\n case 'number':\n case 'date':\n case 'time':\n {\n // Parse this range:\n // {name, number, style}\n // ^-------^\n this.bumpSpace();\n var styleAndLocation = null;\n\n if (this.bumpIf(',')) {\n this.bumpSpace();\n var styleStartPosition = this.clonePosition();\n var result = this.parseSimpleArgStyleIfPossible();\n\n if (result.err) {\n return result;\n }\n\n var style = trimEnd(result.val);\n\n if (style.length === 0) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_STYLE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n\n var styleLocation = createLocation(styleStartPosition, this.clonePosition());\n styleAndLocation = {\n style: style,\n styleLocation: styleLocation\n };\n }\n\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n\n if (argCloseResult.err) {\n return argCloseResult;\n }\n\n var location_1 = createLocation(openingBracePosition, this.clonePosition()); // Extract style or skeleton\n\n if (styleAndLocation && startsWith(styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style, '::', 0)) {\n // Skeleton starts with `::`.\n var skeleton = trimStart(styleAndLocation.style.slice(2));\n\n if (argType === 'number') {\n var result = this.parseNumberSkeletonFromString(skeleton, styleAndLocation.styleLocation);\n\n if (result.err) {\n return result;\n }\n\n return {\n val: {\n type: TYPE.number,\n value: value,\n location: location_1,\n style: result.val\n },\n err: null\n };\n } else {\n if (skeleton.length === 0) {\n return this.error(ErrorKind.EXPECT_DATE_TIME_SKELETON, location_1);\n }\n\n var style = {\n type: SKELETON_TYPE.dateTime,\n pattern: skeleton,\n location: styleAndLocation.styleLocation,\n parsedOptions: this.shouldParseSkeletons ? parseDateTimeSkeleton(skeleton) : {}\n };\n var type = argType === 'date' ? TYPE.date : TYPE.time;\n return {\n val: {\n type: type,\n value: value,\n location: location_1,\n style: style\n },\n err: null\n };\n }\n } // Regular style or no style.\n\n\n return {\n val: {\n type: argType === 'number' ? TYPE.number : argType === 'date' ? TYPE.date : TYPE.time,\n value: value,\n location: location_1,\n style: (_a = styleAndLocation === null || styleAndLocation === void 0 ? void 0 : styleAndLocation.style) !== null && _a !== void 0 ? _a : null\n },\n err: null\n };\n }\n\n case 'plural':\n case 'selectordinal':\n case 'select':\n {\n // Parse this range:\n // {name, plural, options}\n // ^---------^\n var typeEndPosition_1 = this.clonePosition();\n this.bumpSpace();\n\n if (!this.bumpIf(',')) {\n return this.error(ErrorKind.EXPECT_SELECT_ARGUMENT_OPTIONS, createLocation(typeEndPosition_1, __assign({}, typeEndPosition_1)));\n }\n\n this.bumpSpace(); // Parse offset:\n // {name, plural, offset:1, options}\n // ^-----^\n //\n // or the first option:\n //\n // {name, plural, one {...} other {...}}\n // ^--^\n\n var identifierAndLocation = this.parseIdentifierIfPossible();\n var pluralOffset = 0;\n\n if (argType !== 'select' && identifierAndLocation.value === 'offset') {\n if (!this.bumpIf(':')) {\n return this.error(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n\n this.bumpSpace();\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE, ErrorKind.INVALID_PLURAL_ARGUMENT_OFFSET_VALUE);\n\n if (result.err) {\n return result;\n } // Parse another identifier for option parsing\n\n\n this.bumpSpace();\n identifierAndLocation = this.parseIdentifierIfPossible();\n pluralOffset = result.val;\n }\n\n var optionsResult = this.tryParsePluralOrSelectOptions(nestingLevel, argType, expectingCloseTag, identifierAndLocation);\n\n if (optionsResult.err) {\n return optionsResult;\n }\n\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n\n if (argCloseResult.err) {\n return argCloseResult;\n }\n\n var location_2 = createLocation(openingBracePosition, this.clonePosition());\n\n if (argType === 'select') {\n return {\n val: {\n type: TYPE.select,\n value: value,\n options: fromEntries(optionsResult.val),\n location: location_2\n },\n err: null\n };\n } else {\n return {\n val: {\n type: TYPE.plural,\n value: value,\n options: fromEntries(optionsResult.val),\n offset: pluralOffset,\n pluralType: argType === 'plural' ? 'cardinal' : 'ordinal',\n location: location_2\n },\n err: null\n };\n }\n }\n\n default:\n return this.error(ErrorKind.INVALID_ARGUMENT_TYPE, createLocation(typeStartPosition, typeEndPosition));\n }\n };\n\n Parser.prototype.tryParseArgumentClose = function (openingBracePosition) {\n // Parse: {value, number, ::currency/GBP }\n //\n if (this.isEOF() || this.char() !== 125\n /* `}` */\n ) {\n return this.error(ErrorKind.EXPECT_ARGUMENT_CLOSING_BRACE, createLocation(openingBracePosition, this.clonePosition()));\n }\n\n this.bump(); // `}`\n\n return {\n val: true,\n err: null\n };\n };\n /**\n * See: https://github.com/unicode-org/icu/blob/af7ed1f6d2298013dc303628438ec4abe1f16479/icu4c/source/common/messagepattern.cpp#L659\n */\n\n\n Parser.prototype.parseSimpleArgStyleIfPossible = function () {\n var nestedBraces = 0;\n var startPosition = this.clonePosition();\n\n while (!this.isEOF()) {\n var ch = this.char();\n\n switch (ch) {\n case 39\n /* `'` */\n :\n {\n // Treat apostrophe as quoting but include it in the style part.\n // Find the end of the quoted literal text.\n this.bump();\n var apostrophePosition = this.clonePosition();\n\n if (!this.bumpUntil(\"'\")) {\n return this.error(ErrorKind.UNCLOSED_QUOTE_IN_ARGUMENT_STYLE, createLocation(apostrophePosition, this.clonePosition()));\n }\n\n this.bump();\n break;\n }\n\n case 123\n /* `{` */\n :\n {\n nestedBraces += 1;\n this.bump();\n break;\n }\n\n case 125\n /* `}` */\n :\n {\n if (nestedBraces > 0) {\n nestedBraces -= 1;\n } else {\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null\n };\n }\n\n break;\n }\n\n default:\n this.bump();\n break;\n }\n }\n\n return {\n val: this.message.slice(startPosition.offset, this.offset()),\n err: null\n };\n };\n\n Parser.prototype.parseNumberSkeletonFromString = function (skeleton, location) {\n var tokens = [];\n\n try {\n tokens = parseNumberSkeletonFromString(skeleton);\n } catch (e) {\n return this.error(ErrorKind.INVALID_NUMBER_SKELETON, location);\n }\n\n return {\n val: {\n type: SKELETON_TYPE.number,\n tokens: tokens,\n location: location,\n parsedOptions: this.shouldParseSkeletons ? parseNumberSkeleton(tokens) : {}\n },\n err: null\n };\n };\n /**\n * @param nesting_level The current nesting level of messages.\n * This can be positive when parsing message fragment in select or plural argument options.\n * @param parent_arg_type The parent argument's type.\n * @param parsed_first_identifier If provided, this is the first identifier-like selector of\n * the argument. It is a by-product of a previous parsing attempt.\n * @param expecting_close_tag If true, this message is directly or indirectly nested inside\n * between a pair of opening and closing tags. The nested message will not parse beyond\n * the closing tag boundary.\n */\n\n\n Parser.prototype.tryParsePluralOrSelectOptions = function (nestingLevel, parentArgType, expectCloseTag, parsedFirstIdentifier) {\n var _a;\n\n var hasOtherClause = false;\n var options = [];\n var parsedSelectors = new Set();\n var selector = parsedFirstIdentifier.value,\n selectorLocation = parsedFirstIdentifier.location; // Parse:\n // one {one apple}\n // ^--^\n\n while (true) {\n if (selector.length === 0) {\n var startPosition = this.clonePosition();\n\n if (parentArgType !== 'select' && this.bumpIf('=')) {\n // Try parse `={number}` selector\n var result = this.tryParseDecimalInteger(ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, ErrorKind.INVALID_PLURAL_ARGUMENT_SELECTOR);\n\n if (result.err) {\n return result;\n }\n\n selectorLocation = createLocation(startPosition, this.clonePosition());\n selector = this.message.slice(startPosition.offset, this.offset());\n } else {\n break;\n }\n } // Duplicate selector clauses\n\n\n if (parsedSelectors.has(selector)) {\n return this.error(parentArgType === 'select' ? ErrorKind.DUPLICATE_SELECT_ARGUMENT_SELECTOR : ErrorKind.DUPLICATE_PLURAL_ARGUMENT_SELECTOR, selectorLocation);\n }\n\n if (selector === 'other') {\n hasOtherClause = true;\n } // Parse:\n // one {one apple}\n // ^----------^\n\n\n this.bumpSpace();\n var openingBracePosition = this.clonePosition();\n\n if (!this.bumpIf('{')) {\n return this.error(parentArgType === 'select' ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT, createLocation(this.clonePosition(), this.clonePosition()));\n }\n\n var fragmentResult = this.parseMessage(nestingLevel + 1, parentArgType, expectCloseTag);\n\n if (fragmentResult.err) {\n return fragmentResult;\n }\n\n var argCloseResult = this.tryParseArgumentClose(openingBracePosition);\n\n if (argCloseResult.err) {\n return argCloseResult;\n }\n\n options.push([selector, {\n value: fragmentResult.val,\n location: createLocation(openingBracePosition, this.clonePosition())\n }]); // Keep track of the existing selectors\n\n parsedSelectors.add(selector); // Prep next selector clause.\n\n this.bumpSpace();\n _a = this.parseIdentifierIfPossible(), selector = _a.value, selectorLocation = _a.location;\n }\n\n if (options.length === 0) {\n return this.error(parentArgType === 'select' ? ErrorKind.EXPECT_SELECT_ARGUMENT_SELECTOR : ErrorKind.EXPECT_PLURAL_ARGUMENT_SELECTOR, createLocation(this.clonePosition(), this.clonePosition()));\n }\n\n if (this.requiresOtherClause && !hasOtherClause) {\n return this.error(ErrorKind.MISSING_OTHER_CLAUSE, createLocation(this.clonePosition(), this.clonePosition()));\n }\n\n return {\n val: options,\n err: null\n };\n };\n\n Parser.prototype.tryParseDecimalInteger = function (expectNumberError, invalidNumberError) {\n var sign = 1;\n var startingPosition = this.clonePosition();\n\n if (this.bumpIf('+')) {} else if (this.bumpIf('-')) {\n sign = -1;\n }\n\n var hasDigits = false;\n var decimal = 0;\n\n while (!this.isEOF()) {\n var ch = this.char();\n\n if (ch >= 48\n /* `0` */\n && ch <= 57\n /* `9` */\n ) {\n hasDigits = true;\n decimal = decimal * 10 + (ch - 48);\n this.bump();\n } else {\n break;\n }\n }\n\n var location = createLocation(startingPosition, this.clonePosition());\n\n if (!hasDigits) {\n return this.error(expectNumberError, location);\n }\n\n decimal *= sign;\n\n if (!isSafeInteger(decimal)) {\n return this.error(invalidNumberError, location);\n }\n\n return {\n val: decimal,\n err: null\n };\n };\n\n Parser.prototype.offset = function () {\n return this.position.offset;\n };\n\n Parser.prototype.isEOF = function () {\n return this.offset() === this.message.length;\n };\n\n Parser.prototype.clonePosition = function () {\n // This is much faster than `Object.assign` or spread.\n return {\n offset: this.position.offset,\n line: this.position.line,\n column: this.position.column\n };\n };\n /**\n * Return the code point at the current position of the parser.\n * Throws if the index is out of bound.\n */\n\n\n Parser.prototype.char = function () {\n var offset = this.position.offset;\n\n if (offset >= this.message.length) {\n throw Error('out of bound');\n }\n\n var code = codePointAt(this.message, offset);\n\n if (code === undefined) {\n throw Error(\"Offset \" + offset + \" is at invalid UTF-16 code unit boundary\");\n }\n\n return code;\n };\n\n Parser.prototype.error = function (kind, location) {\n return {\n val: null,\n err: {\n kind: kind,\n message: this.message,\n location: location\n }\n };\n };\n /** Bump the parser to the next UTF-16 code unit. */\n\n\n Parser.prototype.bump = function () {\n if (this.isEOF()) {\n return;\n }\n\n var code = this.char();\n\n if (code === 10\n /* '\\n' */\n ) {\n this.position.line += 1;\n this.position.column = 1;\n this.position.offset += 1;\n } else {\n this.position.column += 1; // 0 ~ 0x10000 -> unicode BMP, otherwise skip the surrogate pair.\n\n this.position.offset += code < 0x10000 ? 1 : 2;\n }\n };\n /**\n * If the substring starting at the current position of the parser has\n * the given prefix, then bump the parser to the character immediately\n * following the prefix and return true. Otherwise, don't bump the parser\n * and return false.\n */\n\n\n Parser.prototype.bumpIf = function (prefix) {\n if (startsWith(this.message, prefix, this.offset())) {\n for (var i = 0; i < prefix.length; i++) {\n this.bump();\n }\n\n return true;\n }\n\n return false;\n };\n /**\n * Bump the parser until the pattern character is found and return `true`.\n * Otherwise bump to the end of the file and return `false`.\n */\n\n\n Parser.prototype.bumpUntil = function (pattern) {\n var currentOffset = this.offset();\n var index = this.message.indexOf(pattern, currentOffset);\n\n if (index >= 0) {\n this.bumpTo(index);\n return true;\n } else {\n this.bumpTo(this.message.length);\n return false;\n }\n };\n /**\n * Bump the parser to the target offset.\n * If target offset is beyond the end of the input, bump the parser to the end of the input.\n */\n\n\n Parser.prototype.bumpTo = function (targetOffset) {\n if (this.offset() > targetOffset) {\n throw Error(\"targetOffset \" + targetOffset + \" must be greater than or equal to the current offset \" + this.offset());\n }\n\n targetOffset = Math.min(targetOffset, this.message.length);\n\n while (true) {\n var offset = this.offset();\n\n if (offset === targetOffset) {\n break;\n }\n\n if (offset > targetOffset) {\n throw Error(\"targetOffset \" + targetOffset + \" is at invalid UTF-16 code unit boundary\");\n }\n\n this.bump();\n\n if (this.isEOF()) {\n break;\n }\n }\n };\n /** advance the parser through all whitespace to the next non-whitespace code unit. */\n\n\n Parser.prototype.bumpSpace = function () {\n while (!this.isEOF() && _isWhiteSpace(this.char())) {\n this.bump();\n }\n };\n /**\n * Peek at the *next* Unicode codepoint in the input without advancing the parser.\n * If the input has been exhausted, then this returns null.\n */\n\n\n Parser.prototype.peek = function () {\n if (this.isEOF()) {\n return null;\n }\n\n var code = this.char();\n var offset = this.offset();\n var nextCode = this.message.charCodeAt(offset + (code >= 0x10000 ? 2 : 1));\n return nextCode !== null && nextCode !== void 0 ? nextCode : null;\n };\n\n return Parser;\n}();\n\nexport { Parser };\n/**\n * This check if codepoint is alphabet (lower & uppercase)\n * @param codepoint\n * @returns\n */\n\nfunction _isAlpha(codepoint) {\n return codepoint >= 97 && codepoint <= 122 || codepoint >= 65 && codepoint <= 90;\n}\n\nfunction _isAlphaOrSlash(codepoint) {\n return _isAlpha(codepoint) || codepoint === 47;\n /* '/' */\n}\n/** See `parseTag` function docs. */\n\n\nfunction _isPotentialElementNameChar(c) {\n return c === 45\n /* '-' */\n || c === 46\n /* '.' */\n || c >= 48 && c <= 57\n /* 0..9 */\n || c === 95\n /* '_' */\n || c >= 97 && c <= 122\n /** a..z */\n || c >= 65 && c <= 90\n /* A..Z */\n || c == 0xb7 || c >= 0xc0 && c <= 0xd6 || c >= 0xd8 && c <= 0xf6 || c >= 0xf8 && c <= 0x37d || c >= 0x37f && c <= 0x1fff || c >= 0x200c && c <= 0x200d || c >= 0x203f && c <= 0x2040 || c >= 0x2070 && c <= 0x218f || c >= 0x2c00 && c <= 0x2fef || c >= 0x3001 && c <= 0xd7ff || c >= 0xf900 && c <= 0xfdcf || c >= 0xfdf0 && c <= 0xfffd || c >= 0x10000 && c <= 0xeffff;\n}\n/**\n * Code point equivalent of regex `\\p{White_Space}`.\n * From: https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\n\n\nfunction _isWhiteSpace(c) {\n return c >= 0x0009 && c <= 0x000d || c === 0x0020 || c === 0x0085 || c >= 0x200e && c <= 0x200f || c === 0x2028 || c === 0x2029;\n}\n/**\n * Code point equivalent of regex `\\p{Pattern_Syntax}`.\n * See https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt\n */\n\n\nfunction _isPatternSyntax(c) {\n return c >= 0x0021 && c <= 0x0023 || c === 0x0024 || c >= 0x0025 && c <= 0x0027 || c === 0x0028 || c === 0x0029 || c === 0x002a || c === 0x002b || c === 0x002c || c === 0x002d || c >= 0x002e && c <= 0x002f || c >= 0x003a && c <= 0x003b || c >= 0x003c && c <= 0x003e || c >= 0x003f && c <= 0x0040 || c === 0x005b || c === 0x005c || c === 0x005d || c === 0x005e || c === 0x0060 || c === 0x007b || c === 0x007c || c === 0x007d || c === 0x007e || c === 0x00a1 || c >= 0x00a2 && c <= 0x00a5 || c === 0x00a6 || c === 0x00a7 || c === 0x00a9 || c === 0x00ab || c === 0x00ac || c === 0x00ae || c === 0x00b0 || c === 0x00b1 || c === 0x00b6 || c === 0x00bb || c === 0x00bf || c === 0x00d7 || c === 0x00f7 || c >= 0x2010 && c <= 0x2015 || c >= 0x2016 && c <= 0x2017 || c === 0x2018 || c === 0x2019 || c === 0x201a || c >= 0x201b && c <= 0x201c || c === 0x201d || c === 0x201e || c === 0x201f || c >= 0x2020 && c <= 0x2027 || c >= 0x2030 && c <= 0x2038 || c === 0x2039 || c === 0x203a || c >= 0x203b && c <= 0x203e || c >= 0x2041 && c <= 0x2043 || c === 0x2044 || c === 0x2045 || c === 0x2046 || c >= 0x2047 && c <= 0x2051 || c === 0x2052 || c === 0x2053 || c >= 0x2055 && c <= 0x205e || c >= 0x2190 && c <= 0x2194 || c >= 0x2195 && c <= 0x2199 || c >= 0x219a && c <= 0x219b || c >= 0x219c && c <= 0x219f || c === 0x21a0 || c >= 0x21a1 && c <= 0x21a2 || c === 0x21a3 || c >= 0x21a4 && c <= 0x21a5 || c === 0x21a6 || c >= 0x21a7 && c <= 0x21ad || c === 0x21ae || c >= 0x21af && c <= 0x21cd || c >= 0x21ce && c <= 0x21cf || c >= 0x21d0 && c <= 0x21d1 || c === 0x21d2 || c === 0x21d3 || c === 0x21d4 || c >= 0x21d5 && c <= 0x21f3 || c >= 0x21f4 && c <= 0x22ff || c >= 0x2300 && c <= 0x2307 || c === 0x2308 || c === 0x2309 || c === 0x230a || c === 0x230b || c >= 0x230c && c <= 0x231f || c >= 0x2320 && c <= 0x2321 || c >= 0x2322 && c <= 0x2328 || c === 0x2329 || c === 0x232a || c >= 0x232b && c <= 0x237b || c === 0x237c || c >= 0x237d && c <= 0x239a || c >= 0x239b && c <= 0x23b3 || c >= 0x23b4 && c <= 0x23db || c >= 0x23dc && c <= 0x23e1 || c >= 0x23e2 && c <= 0x2426 || c >= 0x2427 && c <= 0x243f || c >= 0x2440 && c <= 0x244a || c >= 0x244b && c <= 0x245f || c >= 0x2500 && c <= 0x25b6 || c === 0x25b7 || c >= 0x25b8 && c <= 0x25c0 || c === 0x25c1 || c >= 0x25c2 && c <= 0x25f7 || c >= 0x25f8 && c <= 0x25ff || c >= 0x2600 && c <= 0x266e || c === 0x266f || c >= 0x2670 && c <= 0x2767 || c === 0x2768 || c === 0x2769 || c === 0x276a || c === 0x276b || c === 0x276c || c === 0x276d || c === 0x276e || c === 0x276f || c === 0x2770 || c === 0x2771 || c === 0x2772 || c === 0x2773 || c === 0x2774 || c === 0x2775 || c >= 0x2794 && c <= 0x27bf || c >= 0x27c0 && c <= 0x27c4 || c === 0x27c5 || c === 0x27c6 || c >= 0x27c7 && c <= 0x27e5 || c === 0x27e6 || c === 0x27e7 || c === 0x27e8 || c === 0x27e9 || c === 0x27ea || c === 0x27eb || c === 0x27ec || c === 0x27ed || c === 0x27ee || c === 0x27ef || c >= 0x27f0 && c <= 0x27ff || c >= 0x2800 && c <= 0x28ff || c >= 0x2900 && c <= 0x2982 || c === 0x2983 || c === 0x2984 || c === 0x2985 || c === 0x2986 || c === 0x2987 || c === 0x2988 || c === 0x2989 || c === 0x298a || c === 0x298b || c === 0x298c || c === 0x298d || c === 0x298e || c === 0x298f || c === 0x2990 || c === 0x2991 || c === 0x2992 || c === 0x2993 || c === 0x2994 || c === 0x2995 || c === 0x2996 || c === 0x2997 || c === 0x2998 || c >= 0x2999 && c <= 0x29d7 || c === 0x29d8 || c === 0x29d9 || c === 0x29da || c === 0x29db || c >= 0x29dc && c <= 0x29fb || c === 0x29fc || c === 0x29fd || c >= 0x29fe && c <= 0x2aff || c >= 0x2b00 && c <= 0x2b2f || c >= 0x2b30 && c <= 0x2b44 || c >= 0x2b45 && c <= 0x2b46 || c >= 0x2b47 && c <= 0x2b4c || c >= 0x2b4d && c <= 0x2b73 || c >= 0x2b74 && c <= 0x2b75 || c >= 0x2b76 && c <= 0x2b95 || c === 0x2b96 || c >= 0x2b97 && c <= 0x2bff || c >= 0x2e00 && c <= 0x2e01 || c === 0x2e02 || c === 0x2e03 || c === 0x2e04 || c === 0x2e05 || c >= 0x2e06 && c <= 0x2e08 || c === 0x2e09 || c === 0x2e0a || c === 0x2e0b || c === 0x2e0c || c === 0x2e0d || c >= 0x2e0e && c <= 0x2e16 || c === 0x2e17 || c >= 0x2e18 && c <= 0x2e19 || c === 0x2e1a || c === 0x2e1b || c === 0x2e1c || c === 0x2e1d || c >= 0x2e1e && c <= 0x2e1f || c === 0x2e20 || c === 0x2e21 || c === 0x2e22 || c === 0x2e23 || c === 0x2e24 || c === 0x2e25 || c === 0x2e26 || c === 0x2e27 || c === 0x2e28 || c === 0x2e29 || c >= 0x2e2a && c <= 0x2e2e || c === 0x2e2f || c >= 0x2e30 && c <= 0x2e39 || c >= 0x2e3a && c <= 0x2e3b || c >= 0x2e3c && c <= 0x2e3f || c === 0x2e40 || c === 0x2e41 || c === 0x2e42 || c >= 0x2e43 && c <= 0x2e4f || c >= 0x2e50 && c <= 0x2e51 || c === 0x2e52 || c >= 0x2e53 && c <= 0x2e7f || c >= 0x3001 && c <= 0x3003 || c === 0x3008 || c === 0x3009 || c === 0x300a || c === 0x300b || c === 0x300c || c === 0x300d || c === 0x300e || c === 0x300f || c === 0x3010 || c === 0x3011 || c >= 0x3012 && c <= 0x3013 || c === 0x3014 || c === 0x3015 || c === 0x3016 || c === 0x3017 || c === 0x3018 || c === 0x3019 || c === 0x301a || c === 0x301b || c === 0x301c || c === 0x301d || c >= 0x301e && c <= 0x301f || c === 0x3020 || c === 0x3030 || c === 0xfd3e || c === 0xfd3f || c >= 0xfe45 && c <= 0xfe46;\n}","import { __assign } from \"tslib\";\nimport { ErrorKind } from './error';\nimport { Parser } from './parser';\nimport { isDateElement, isDateTimeSkeleton, isNumberElement, isNumberSkeleton, isPluralElement, isSelectElement, isTagElement, isTimeElement } from './types';\n\nfunction pruneLocation(els) {\n els.forEach(function (el) {\n delete el.location;\n\n if (isSelectElement(el) || isPluralElement(el)) {\n for (var k in el.options) {\n delete el.options[k].location;\n pruneLocation(el.options[k].value);\n }\n } else if (isNumberElement(el) && isNumberSkeleton(el.style)) {\n delete el.style.location;\n } else if ((isDateElement(el) || isTimeElement(el)) && isDateTimeSkeleton(el.style)) {\n delete el.style.location;\n } else if (isTagElement(el)) {\n pruneLocation(el.children);\n }\n });\n}\n\nexport function parse(message, opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n opts = __assign({\n shouldParseSkeletons: true,\n requiresOtherClause: true\n }, opts);\n var result = new Parser(message, opts).parse();\n\n if (result.err) {\n var error = SyntaxError(ErrorKind[result.err.kind]); // @ts-expect-error Assign to error object\n\n error.location = result.err.location; // @ts-expect-error Assign to error object\n\n error.originalMessage = result.err.message;\n throw error;\n }\n\n if (!(opts === null || opts === void 0 ? void 0 : opts.captureLocation)) {\n pruneLocation(result.val);\n }\n\n return result.val;\n}\nexport * from './types';","import { __extends } from \"tslib\";\nexport var IntlErrorCode;\n\n(function (IntlErrorCode) {\n IntlErrorCode[\"FORMAT_ERROR\"] = \"FORMAT_ERROR\";\n IntlErrorCode[\"UNSUPPORTED_FORMATTER\"] = \"UNSUPPORTED_FORMATTER\";\n IntlErrorCode[\"INVALID_CONFIG\"] = \"INVALID_CONFIG\";\n IntlErrorCode[\"MISSING_DATA\"] = \"MISSING_DATA\";\n IntlErrorCode[\"MISSING_TRANSLATION\"] = \"MISSING_TRANSLATION\";\n})(IntlErrorCode || (IntlErrorCode = {}));\n\nvar IntlError =\n/** @class */\nfunction (_super) {\n __extends(IntlError, _super);\n\n function IntlError(code, message, exception) {\n var _this = this;\n\n var err = exception ? exception instanceof Error ? exception : new Error(String(exception)) : undefined;\n _this = _super.call(this, \"[@formatjs/intl Error \" + code + \"] \" + message + \" \\n\" + (err ? \"\\n\" + err.message + \"\\n\" + err.stack : '')) || this;\n _this.code = code; // @ts-ignore just so we don't need to declare dep on @types/node\n\n if (typeof Error.captureStackTrace === 'function') {\n // @ts-ignore just so we don't need to declare dep on @types/node\n Error.captureStackTrace(_this, IntlError);\n }\n\n return _this;\n }\n\n return IntlError;\n}(Error);\n\nexport { IntlError };\n\nvar UnsupportedFormatterError =\n/** @class */\nfunction (_super) {\n __extends(UnsupportedFormatterError, _super);\n\n function UnsupportedFormatterError(message, exception) {\n return _super.call(this, IntlErrorCode.UNSUPPORTED_FORMATTER, message, exception) || this;\n }\n\n return UnsupportedFormatterError;\n}(IntlError);\n\nexport { UnsupportedFormatterError };\n\nvar InvalidConfigError =\n/** @class */\nfunction (_super) {\n __extends(InvalidConfigError, _super);\n\n function InvalidConfigError(message, exception) {\n return _super.call(this, IntlErrorCode.INVALID_CONFIG, message, exception) || this;\n }\n\n return InvalidConfigError;\n}(IntlError);\n\nexport { InvalidConfigError };\n\nvar MissingDataError =\n/** @class */\nfunction (_super) {\n __extends(MissingDataError, _super);\n\n function MissingDataError(message, exception) {\n return _super.call(this, IntlErrorCode.MISSING_DATA, message, exception) || this;\n }\n\n return MissingDataError;\n}(IntlError);\n\nexport { MissingDataError };\n\nvar IntlFormatError =\n/** @class */\nfunction (_super) {\n __extends(IntlFormatError, _super);\n\n function IntlFormatError(message, locale, exception) {\n return _super.call(this, IntlErrorCode.FORMAT_ERROR, message + \" \\nLocale: \" + locale + \"\\n\", exception) || this;\n }\n\n return IntlFormatError;\n}(IntlError);\n\nexport { IntlFormatError };\n\nvar MessageFormatError =\n/** @class */\nfunction (_super) {\n __extends(MessageFormatError, _super);\n\n function MessageFormatError(message, locale, descriptor, exception) {\n var _this = _super.call(this, message + \" \\nMessageID: \" + (descriptor === null || descriptor === void 0 ? void 0 : descriptor.id) + \"\\nDefault Message: \" + (descriptor === null || descriptor === void 0 ? void 0 : descriptor.defaultMessage) + \"\\nDescription: \" + (descriptor === null || descriptor === void 0 ? void 0 : descriptor.description) + \" \\n\", locale, exception) || this;\n\n _this.descriptor = descriptor;\n return _this;\n }\n\n return MessageFormatError;\n}(IntlFormatError);\n\nexport { MessageFormatError };\n\nvar MissingTranslationError =\n/** @class */\nfunction (_super) {\n __extends(MissingTranslationError, _super);\n\n function MissingTranslationError(descriptor, locale) {\n var _this = _super.call(this, IntlErrorCode.MISSING_TRANSLATION, \"Missing message: \\\"\" + descriptor.id + \"\\\" for locale \\\"\" + locale + \"\\\", using \" + (descriptor.defaultMessage ? 'default message' : 'id') + \" as fallback.\") || this;\n\n _this.descriptor = descriptor;\n return _this;\n }\n\n return MissingTranslationError;\n}(IntlError);\n\nexport { MissingTranslationError };","import { __assign, __spreadArray } from \"tslib\";\nimport { IntlMessageFormat } from 'intl-messageformat';\nimport memoize, { strategies } from '@formatjs/fast-memoize';\nimport { UnsupportedFormatterError } from './error';\nexport function filterProps(props, whitelist, defaults) {\n if (defaults === void 0) {\n defaults = {};\n }\n\n return whitelist.reduce(function (filtered, name) {\n if (name in props) {\n filtered[name] = props[name];\n } else if (name in defaults) {\n filtered[name] = defaults[name];\n }\n\n return filtered;\n }, {});\n}\n\nvar defaultErrorHandler = function defaultErrorHandler(error) {\n // @ts-ignore just so we don't need to declare dep on @types/node\n if (process.env.NODE_ENV !== 'production') {\n console.error(error);\n }\n};\n\nexport var DEFAULT_INTL_CONFIG = {\n formats: {},\n messages: {},\n timeZone: undefined,\n defaultLocale: 'en',\n defaultFormats: {},\n fallbackOnEmptyString: true,\n onError: defaultErrorHandler\n};\nexport function createIntlCache() {\n return {\n dateTime: {},\n number: {},\n message: {},\n relativeTime: {},\n pluralRules: {},\n list: {},\n displayNames: {}\n };\n}\n\nfunction createFastMemoizeCache(store) {\n return {\n create: function create() {\n return {\n get: function get(key) {\n return store[key];\n },\n set: function set(key, value) {\n store[key] = value;\n }\n };\n }\n };\n}\n/**\n * Create intl formatters and populate cache\n * @param cache explicit cache to prevent leaking memory\n */\n\n\nexport function createFormatters(cache) {\n if (cache === void 0) {\n cache = createIntlCache();\n }\n\n var RelativeTimeFormat = Intl.RelativeTimeFormat;\n var ListFormat = Intl.ListFormat;\n var DisplayNames = Intl.DisplayNames;\n var getDateTimeFormat = memoize(function () {\n var _a;\n\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: strategies.variadic\n });\n var getNumberFormat = memoize(function () {\n var _a;\n\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: strategies.variadic\n });\n var getPluralRules = memoize(function () {\n var _a;\n\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: strategies.variadic\n });\n return {\n getDateTimeFormat: getDateTimeFormat,\n getNumberFormat: getNumberFormat,\n getMessageFormat: memoize(function (message, locales, overrideFormats, opts) {\n return new IntlMessageFormat(message, locales, overrideFormats, __assign({\n formatters: {\n getNumberFormat: getNumberFormat,\n getDateTimeFormat: getDateTimeFormat,\n getPluralRules: getPluralRules\n }\n }, opts || {}));\n }, {\n cache: createFastMemoizeCache(cache.message),\n strategy: strategies.variadic\n }),\n getRelativeTimeFormat: memoize(function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return new (RelativeTimeFormat.bind.apply(RelativeTimeFormat, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.relativeTime),\n strategy: strategies.variadic\n }),\n getPluralRules: getPluralRules,\n getListFormat: memoize(function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return new (ListFormat.bind.apply(ListFormat, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.list),\n strategy: strategies.variadic\n }),\n getDisplayNames: memoize(function () {\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return new (DisplayNames.bind.apply(DisplayNames, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.displayNames),\n strategy: strategies.variadic\n })\n };\n}\nexport function getNamedFormat(formats, type, name, onError) {\n var formatType = formats && formats[type];\n var format;\n\n if (formatType) {\n format = formatType[name];\n }\n\n if (format) {\n return format;\n }\n\n onError(new UnsupportedFormatterError(\"No \" + type + \" format named: \" + name));\n}","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(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\nexport { _assign as __assign };\nexport function __rest(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}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport var __createBinding = Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n });\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n};\nexport function __exportStar(m, o) {\n for (var p in m) {\n if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\n\nvar __setModuleDefault = Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n }\n\n __setModuleDefault(result, mod);\n\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;\n}","\"use strict\";\n\nexports.__esModule = true;\n\nvar _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\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 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\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({\n location: location,\n action: \"POP\"\n });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\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, {\n key: Date.now() + \"\"\n }); // try...catch iOS Safari limits to 100 pushState calls\n\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({\n location: location,\n action: \"PUSH\"\n });\n });\n return transition;\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\n\n\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\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 return {\n get location() {\n return stack[index];\n },\n\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n history: {\n get entries() {\n return stack;\n },\n\n get index() {\n return index;\n },\n\n get state() {\n return states[index];\n },\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({\n pathname: pathname,\n search: search.length ? \"?\" + search : search\n });\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] = {\n pathname: pathname,\n search: search\n };\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// global history - uses window.history as the source if available, otherwise a\n// memory history\n\n\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate; ////////////////////////////////////////////////////////////////////////////////\n\nexports.globalHistory = globalHistory;\nexports.navigate = navigate;\nexports.createHistory = createHistory;\nexports.createMemorySource = createMemorySource;","\"use strict\";\n\nexports.__esModule = true;\nexports.shallowCompare = exports.validateRedirect = exports.insertParams = exports.resolve = exports.match = exports.pick = exports.startsWith = undefined;\n\nvar _invariant = require(\"invariant\");\n\nvar _invariant2 = _interopRequireDefault(_invariant);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n} ////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\n\n\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\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.\n\n\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\" ? (0, _invariant2.default)(false, \"<Router> dynamic segment \\\"\" + dynamicMatch[1] + \"\\\" is a reserved name. Please use a different name in path \\\"\" + route.path + \"\\\".\") : (0, _invariant2.default)(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// match(path, uri) - Matches just one path to a uri, also lol\n\n\nvar match = function match(path, uri) {\n return pick([{\n path: path\n }], uri);\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// <Link to=\"deeper\"/>\n// // instead of\n// <Link to=`{${props.uri}/deeper}`/>\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.\n\n\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); // ?a=b, /users?b=c => /users?a=b\n\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n } // profile, /users/789 => /users/789/profile\n\n\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\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\n\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n\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// insertParams(path, params)\n\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 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\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Junk\n\n\nvar paramRe = /^:(.+)/;\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};\n\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\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 {\n route: route,\n score: score,\n index: index\n };\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 // 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 * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\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\nexports.startsWith = startsWith;\nexports.pick = pick;\nexports.match = match;\nexports.resolve = resolve;\nexports.insertParams = insertParams;\nexports.validateRedirect = validateRedirect;\nexports.shallowCompare = shallowCompare;","import React, { useState, useEffect, useCallback, useMemo, useLayoutEffect } from 'react';\nimport { useThemeUI, jsx, __ThemeUIInternalBaseThemeProvider } from '@theme-ui/core';\nimport { css, get } from '@theme-ui/css';\nimport { Global } from '@emotion/react';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar toVarName = function toVarName(key) {\n return \"--theme-ui-\" + key.replace('-__default', '');\n};\n\nvar toVarValue = function toVarValue(key) {\n return \"var(\" + toVarName(key) + \")\";\n};\n\nvar join = function join() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return args.filter(Boolean).join('-');\n};\n\nvar reservedKeys = new Set(['useCustomProperties', 'initialColorModeName', 'printColorModeName', 'initialColorMode', 'useLocalStorage', 'config']); // convert theme values to custom properties\n\nvar toCustomProperties = function toCustomProperties(obj, parent) {\n var next = Array.isArray(obj) ? [] : {};\n\n for (var key in obj) {\n var value = obj[key];\n var name = join(parent, key);\n\n if (value && typeof value === 'object') {\n next[key] = toCustomProperties(value, name);\n continue;\n }\n\n if (reservedKeys.has(key)) {\n next[key] = value;\n continue;\n }\n\n next[key] = toVarValue(name);\n }\n\n return next;\n};\n/**\n * @internal\n * Recursively transforms an object into CSS variables excluding \"modes\" key.\n */\n\n\nvar __objectToVars = function __objectToVars(parent, obj) {\n var vars = {};\n\n for (var key in obj) {\n if (key === 'modes') continue;\n var name = join(parent, key);\n var value = obj[key];\n\n if (value && typeof value === 'object') {\n vars = _extends({}, vars, __objectToVars(name, value));\n } else {\n vars[toVarName(name)] = value;\n }\n }\n\n return vars;\n};\n/**\n * @internal\n * Creates root styles for color modes.\n * - Transforms color scale into CSS variables.\n * - Sets background and text color.\n */\n\n\nvar __createColorStyles = function __createColorStyles(theme) {\n if (theme === void 0) {\n theme = {};\n }\n\n var _ref = theme.config || theme || {},\n useCustomProperties = _ref.useCustomProperties,\n initialColorModeName = _ref.initialColorModeName,\n printColorModeName = _ref.printColorModeName,\n useRootStyles = _ref.useRootStyles;\n\n var colors = theme.rawColors || theme.colors;\n if (!colors || useRootStyles === false) return {};\n\n if (useCustomProperties === false) {\n return css({\n color: 'text',\n bg: 'background'\n })(theme);\n }\n\n var modes = colors.modes || {};\n\n var styles = __createColorProperties(colors, modes);\n\n if (printColorModeName) {\n var mode = printColorModeName === 'initial' || printColorModeName === initialColorModeName ? colors : modes[printColorModeName];\n styles['@media print'] = __objectToVars('colors', mode);\n }\n\n var colorToVarValue = function colorToVarValue(color) {\n return toVarValue(\"colors-\" + color);\n };\n\n return css(_extends({}, styles, {\n color: colorToVarValue('text'),\n bg: colorToVarValue('background')\n }))(theme);\n};\n/**\n * @internal\n * Returns an object with colors turned into Custom CSS Properties and\n * .theme-ui-<colormode> classes used for no-flash serverside rendering.\n */\n\n\nfunction __createColorProperties(colors, modes) {\n var styles = __objectToVars('colors', colors);\n\n Object.keys(modes).forEach(function (mode) {\n var className = \".theme-ui-\" + mode;\n var key = \"&\" + className + \", \" + className + \" &\";\n styles[key] = __objectToVars('colors', modes[mode]);\n });\n return styles;\n}\n\nvar STORAGE_KEY = 'theme-ui-color-mode';\nvar DARK_QUERY = '(prefers-color-scheme: dark)';\nvar LIGHT_QUERY = '(prefers-color-scheme: light)';\nvar storage = {\n get: function get() {\n try {\n return window.localStorage.getItem(STORAGE_KEY);\n } catch (err) {\n console.warn('localStorage is disabled and color mode might not work as expected.', 'Please check your Site Settings.', err);\n }\n },\n set: function set(value) {\n try {\n window.localStorage.setItem(STORAGE_KEY, value);\n } catch (err) {\n console.warn('localStorage is disabled and color mode might not work as expected.', 'Please check your Site Settings.', err);\n }\n }\n};\n\nvar getPreferredColorScheme = function getPreferredColorScheme() {\n if (typeof window !== 'undefined' && window.matchMedia) {\n if (window.matchMedia(DARK_QUERY).matches) {\n return 'dark';\n }\n\n if (window.matchMedia(LIGHT_QUERY).matches) {\n return 'light';\n }\n }\n\n return null;\n};\n\nvar useClientsideEffect = typeof window === 'undefined' ? function () {} : useLayoutEffect;\n\nvar TopLevelColorModeProvider = function TopLevelColorModeProvider(_ref) {\n var outerCtx = _ref.outerCtx,\n children = _ref.children;\n var outerTheme = outerCtx.theme || {};\n\n var _ref2 = outerTheme.config || outerTheme,\n initialColorModeName = _ref2.initialColorModeName,\n useColorSchemeMediaQuery = _ref2.useColorSchemeMediaQuery,\n useLocalStorage = _ref2.useLocalStorage;\n\n var _useState = useState(function () {\n var preferredMode = useColorSchemeMediaQuery !== false && getPreferredColorScheme();\n return preferredMode || initialColorModeName;\n }),\n colorMode = _useState[0],\n setColorMode = _useState[1]; // on first render, we read the color mode from localStorage and\n // clear the class on document element body\n\n\n useClientsideEffect(function () {\n var stored = useLocalStorage !== false && storage.get();\n\n if (typeof document !== 'undefined') {\n document.documentElement.classList.remove('theme-ui-' + stored);\n }\n\n if (useColorSchemeMediaQuery !== 'system' && stored && stored !== colorMode) {\n colorMode = stored;\n setColorMode(stored);\n }\n }, []); // when mode changes, we save it to localStorage\n\n useEffect(function () {\n if (colorMode && useLocalStorage !== false) {\n storage.set(colorMode);\n }\n }, [colorMode, useLocalStorage]);\n var setPreferredColorScheme = useCallback(function () {\n var preferredColorScheme = getPreferredColorScheme();\n setColorMode(preferredColorScheme || initialColorModeName);\n }, [initialColorModeName]);\n useEffect(function () {\n if (useColorSchemeMediaQuery === 'system' && window.matchMedia) {\n // It doesn't matter if we add the listener only to the dark media query\n // Because in our callback function we'll check for both media queries (light and dark).\n var darkMQL = window.matchMedia(DARK_QUERY);\n\n if (typeof darkMQL.addEventListener === 'function') {\n darkMQL.addEventListener('change', setPreferredColorScheme);\n } else if (typeof darkMQL.addListener === 'function') {\n darkMQL.addListener(setPreferredColorScheme);\n }\n }\n\n return function () {\n if (useColorSchemeMediaQuery === 'system' && window.matchMedia) {\n var _darkMQL = window.matchMedia(DARK_QUERY);\n\n if (typeof _darkMQL.removeEventListener === 'function') {\n _darkMQL.removeEventListener('change', setPreferredColorScheme);\n } else if (typeof _darkMQL.removeListener === 'function') {\n _darkMQL.removeListener(setPreferredColorScheme);\n }\n }\n };\n }, [useColorSchemeMediaQuery, setPreferredColorScheme]);\n\n if (process.env.NODE_ENV !== 'production') {\n var _outerTheme$colors;\n\n if ((_outerTheme$colors = outerTheme.colors) != null && _outerTheme$colors.modes && initialColorModeName && Object.keys(outerTheme.colors.modes).indexOf(initialColorModeName) > -1) {\n console.warn('[theme-ui] The `initialColorModeName` value should be a unique name' + ' and cannot reference a key in `theme.colors.modes`.');\n }\n }\n\n var newTheme = useThemeWithAppliedColorMode({\n colorMode: colorMode,\n outerTheme: outerTheme\n });\n\n var newCtx = _extends({}, outerCtx, {\n theme: newTheme,\n colorMode: colorMode,\n setColorMode: setColorMode\n });\n\n return /*#__PURE__*/React.createElement(__ThemeUIInternalBaseThemeProvider, {\n context: newCtx\n }, /*#__PURE__*/React.createElement(GlobalColorStyles, {\n theme: newTheme\n }), children);\n};\n\nfunction useColorMode() {\n var _useThemeUI = useThemeUI(),\n colorMode = _useThemeUI.colorMode,\n setColorMode = _useThemeUI.setColorMode;\n\n if (typeof setColorMode !== 'function') {\n throw new Error(\"[useColorMode] requires the ColorModeProvider component\");\n } // We're allowing the user to specify a narrower type for its color mode name.\n\n\n return [colorMode, setColorMode];\n}\n\nvar omitModes = function omitModes(colors) {\n var res = _extends({}, colors);\n\n delete res.modes;\n return res;\n};\n\nfunction copyRawColors(colors, outerThemeRawColors) {\n for (var _i = 0, _Object$entries = Object.entries(colors); _i < _Object$entries.length; _i++) {\n var _Object$entries$_i = _Object$entries[_i],\n key = _Object$entries$_i[0],\n value = _Object$entries$_i[1];\n\n if (typeof value === 'string' && !value.startsWith('var(')) {\n outerThemeRawColors[key] = value;\n } else if (typeof value === 'object') {\n var newValue = _extends({}, outerThemeRawColors[key]);\n\n copyRawColors(value, newValue);\n outerThemeRawColors[key] = newValue;\n }\n }\n}\n\nfunction useThemeWithAppliedColorMode(_ref3) {\n var outerTheme = _ref3.outerTheme,\n colorMode = _ref3.colorMode;\n var theme = useMemo(function () {\n var res = _extends({}, outerTheme);\n\n var modes = get(res, 'colors.modes', {});\n var currentColorMode = get(modes, colorMode, {});\n\n if (colorMode) {\n res.colors = _extends({}, res.colors, currentColorMode);\n }\n\n var _ref4 = outerTheme.config || outerTheme,\n useCustomProperties = _ref4.useCustomProperties,\n _ref4$initialColorMod = _ref4.initialColorModeName,\n initialColorModeName = _ref4$initialColorMod === void 0 ? '__default' : _ref4$initialColorMod;\n\n var outerThemeRawColors = outerTheme.rawColors || outerTheme.colors || {};\n\n if (useCustomProperties !== false) {\n var alreadyHasRawColors = res.rawColors != null;\n var colors = res.colors || {};\n\n if (alreadyHasRawColors) {\n outerThemeRawColors = _extends({}, outerThemeRawColors);\n copyRawColors(colors, outerThemeRawColors);\n\n if (outerThemeRawColors.modes) {\n outerThemeRawColors.modes[initialColorModeName] = omitModes(outerThemeRawColors);\n }\n\n res.rawColors = outerThemeRawColors;\n } else {\n if (!('modes' in outerThemeRawColors)) {\n res.rawColors = colors;\n } else {\n var _extends2;\n\n var _modes = _extends((_extends2 = {}, _extends2[initialColorModeName] = omitModes(outerThemeRawColors), _extends2), outerThemeRawColors.modes);\n\n res.rawColors = _extends({}, colors, {\n modes: _modes\n });\n /* modes doesn't match index signature by design */\n }\n }\n\n res.colors = toCustomProperties(omitModes(outerThemeRawColors), 'colors');\n }\n\n return res;\n }, [colorMode, outerTheme]);\n return theme;\n}\n\nfunction GlobalColorStyles(_ref5) {\n var theme = _ref5.theme;\n return jsx(Global, {\n styles: function styles() {\n return {\n html: __createColorStyles(theme)\n };\n }\n });\n}\n\nfunction NestedColorModeProvider(_ref6) {\n var _newTheme$config2;\n\n var outerCtx = _ref6.outerCtx,\n children = _ref6.children;\n var newTheme = useThemeWithAppliedColorMode({\n outerTheme: outerCtx.theme,\n colorMode: outerCtx.colorMode\n }); // Nested theme providers need to be rerendered after hydration for the correct\n // color mode to apply.\n\n var _useState2 = useState( // Note: we could also check some \"ssr-enabled\" flag as an optimization for\n // SPAs, as deeply nested theme providers will also pay a performance penalty\n // for this SSR bug fix\n function () {\n var _newTheme$config;\n\n return ((_newTheme$config = newTheme.config) == null ? void 0 : _newTheme$config.useLocalStorage) !== false;\n }),\n needsRerender = _useState2[0],\n setNeedsRerender = _useState2[1];\n\n useClientsideEffect(function () {\n return void setNeedsRerender(false);\n }, []);\n var themeColors = newTheme.rawColors || newTheme.colors;\n var useCustomProperties = (_newTheme$config2 = newTheme.config) == null ? void 0 : _newTheme$config2.useCustomProperties;\n var colorVars = useMemo(function () {\n if (useCustomProperties === false) {\n return {};\n }\n\n var colors = themeColors || {};\n return css(__createColorProperties(colors, colors.modes || {}))(newTheme);\n }, [newTheme, themeColors, useCustomProperties]);\n return /*#__PURE__*/React.createElement(__ThemeUIInternalBaseThemeProvider, {\n context: _extends({}, outerCtx, {\n theme: newTheme\n })\n }, jsx('div', {\n 'data-themeui-nested-provider': true,\n // the key here ensures that children will be rerendered after color\n // mode is read from localStorage\n key: Number(needsRerender),\n suppressHydrationWarning: true,\n css: colorVars,\n children: children\n }));\n}\n\nvar ColorModeProvider = function ColorModeProvider(_ref7) {\n var children = _ref7.children;\n var outerCtx = useThemeUI();\n var isTopLevelColorModeProvider = typeof outerCtx.setColorMode !== 'function';\n return isTopLevelColorModeProvider ? /*#__PURE__*/React.createElement(TopLevelColorModeProvider, {\n outerCtx: outerCtx\n }, children) : /*#__PURE__*/React.createElement(NestedColorModeProvider, {\n outerCtx: outerCtx\n }, children);\n};\n\nvar noflash = \"(function() { try {\\n var mode = localStorage.getItem('theme-ui-color-mode');\\n if (!mode) return\\n document.documentElement.classList.add('theme-ui-' + mode);\\n} catch (e) {} })();\";\n\nvar InitializeColorMode = function InitializeColorMode() {\n return jsx('script', {\n key: 'theme-ui-no-flash',\n dangerouslySetInnerHTML: {\n __html: noflash\n }\n });\n};\n\nexport { ColorModeProvider, InitializeColorMode, useColorMode };","import { darken as darken$1, lighten as lighten$1, adjustHue, setHue, setSaturation, setLightness, desaturate as desaturate$1, saturate as saturate$1, shade as shade$1, tint as tint$1, transparentize as transparentize$1, rgba, mix as mix$1, complement as complement$1, invert as invert$1 } from 'polished';\nimport { get } from '@theme-ui/css';\n/**\n * Get color from theme.colors\n */\n\nvar getColor = function getColor(theme, color) {\n if (typeof color === 'object') {\n color = Array.isArray(color) ? color[0] : color.__default;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (color && /^var\\(--theme-ui-colors-(.+)\\)$/.test(color)) {\n throw new Error('A CSS property was passed to `getColor`. ' + '`theme.colors` contains CSS custom properties. ' + 'Use `theme.rawColors` instead.');\n }\n }\n\n return get(theme, 'rawColors' in theme ? \"rawColors.\" + color : \"colors.\" + color, color);\n};\n/**\n * Darken a color by an amount 0–1\n */\n\n\nvar darken = function darken(c, n) {\n return function (t) {\n return darken$1(n, getColor(t, c));\n };\n};\n/**\n * Lighten a color by an amount 0–1\n */\n\n\nvar lighten = function lighten(c, n) {\n return function (t) {\n return lighten$1(n, getColor(t, c));\n };\n};\n/**\n * Rotate the hue of a color by an amount 0–360\n */\n\n\nvar rotate = function rotate(c, d) {\n return function (t) {\n return adjustHue(d, getColor(t, c));\n };\n};\n/**\n * Set the hue of a color to a degree 0–360\n */\n\n\nvar hue = function hue(c, h) {\n return function (t) {\n return setHue(h, getColor(t, c));\n };\n};\n/**\n * Set the saturation of a color to an amount 0–1\n */\n\n\nvar saturation = function saturation(c, s) {\n return function (t) {\n return setSaturation(s, getColor(t, c));\n };\n};\n/**\n * Set the lightness of a color to an amount 0–1\n */\n\n\nvar lightness = function lightness(c, l) {\n return function (t) {\n return setLightness(l, getColor(t, c));\n };\n};\n/**\n * Desaturate a color by an amount 0–1\n */\n\n\nvar desaturate = function desaturate(c, n) {\n return function (t) {\n return desaturate$1(n, getColor(t, c));\n };\n};\n/**\n * Saturate a color by an amount 0–1\n */\n\n\nvar saturate = function saturate(c, n) {\n return function (t) {\n return saturate$1(n, getColor(t, c));\n };\n};\n/**\n * Shade a color by an amount 0–1\n */\n\n\nvar shade = function shade(c, n) {\n return function (t) {\n return shade$1(n, getColor(t, c));\n };\n};\n/**\n * Tint a color by an amount 0–1\n */\n\n\nvar tint = function tint(c, n) {\n return function (t) {\n return tint$1(n, getColor(t, c));\n };\n};\n\nvar transparentize = function transparentize(c, n) {\n return function (t) {\n return transparentize$1(n, getColor(t, c));\n };\n};\n/**\n * Set the transparency of a color to an amount 0-1\n */\n\n\nvar alpha = function alpha(c, n) {\n return function (t) {\n return rgba(getColor(t, c), n);\n };\n};\n/**\n * Mix two colors by a specific ratio\n */\n\n\nvar mix = function mix(a, b, n) {\n if (n === void 0) {\n n = 0.5;\n }\n\n return function (t) {\n return mix$1(n, getColor(t, a), getColor(t, b));\n };\n};\n/**\n * Get the complement of a color\n */\n\n\nvar complement = function complement(c) {\n return function (t) {\n return complement$1(getColor(t, c));\n };\n};\n/**\n * Get the inverted color\n */\n\n\nvar invert = function invert(c) {\n return function (t) {\n return invert$1(getColor(t, c));\n };\n};\n/**\n * Desaturate the color to grayscale\n */\n\n\nvar grayscale = function grayscale(c) {\n return desaturate(c, 1);\n};\n\nexport { alpha, complement, darken, desaturate, getColor, grayscale, hue, invert, lighten, lightness, mix, rotate, saturate, saturation, shade, tint, transparentize };","function memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport default memoize;","import memoize from '@emotion/memoize';\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|inert|itemProp|itemScope|itemType|itemID|itemRef|on|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar index = memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\nexport default index;","import assign from 'object-assign';\nexport var merge = function merge(a, b) {\n var result = assign({}, a, b);\n\n for (var key in a) {\n var _assign;\n\n if (!a[key] || typeof b[key] !== 'object') continue;\n assign(result, (_assign = {}, _assign[key] = assign(a[key], b[key]), _assign));\n }\n\n return result;\n}; // sort object-value responsive styles\n\nvar sort = function sort(obj) {\n var next = {};\n Object.keys(obj).sort(function (a, b) {\n return a.localeCompare(b, undefined, {\n numeric: true,\n sensitivity: 'base'\n });\n }).forEach(function (key) {\n next[key] = obj[key];\n });\n return next;\n};\n\nvar defaults = {\n breakpoints: [40, 52, 64].map(function (n) {\n return n + 'em';\n })\n};\n\nvar createMediaQuery = function createMediaQuery(n) {\n return \"@media screen and (min-width: \" + n + \")\";\n};\n\nvar getValue = function getValue(n, scale) {\n return get(scale, n, n);\n};\n\nexport var get = function get(obj, key, def, p, undef) {\n key = key && key.split ? key.split('.') : [key];\n\n for (p = 0; p < key.length; p++) {\n obj = obj ? obj[key[p]] : undef;\n }\n\n return obj === undef ? def : obj;\n};\nexport var createParser = function createParser(config) {\n var cache = {};\n\n var parse = function parse(props) {\n var styles = {};\n var shouldSort = false;\n var isCacheDisabled = props.theme && props.theme.disableStyledSystemCache;\n\n for (var key in props) {\n if (!config[key]) continue;\n var sx = config[key];\n var raw = props[key];\n var scale = get(props.theme, sx.scale, sx.defaults);\n\n if (typeof raw === 'object') {\n cache.breakpoints = !isCacheDisabled && cache.breakpoints || get(props.theme, 'breakpoints', defaults.breakpoints);\n\n if (Array.isArray(raw)) {\n cache.media = !isCacheDisabled && cache.media || [null].concat(cache.breakpoints.map(createMediaQuery));\n styles = merge(styles, parseResponsiveStyle(cache.media, sx, scale, raw, props));\n continue;\n }\n\n if (raw !== null) {\n styles = merge(styles, parseResponsiveObject(cache.breakpoints, sx, scale, raw, props));\n shouldSort = true;\n }\n\n continue;\n }\n\n assign(styles, sx(raw, scale, props));\n } // sort object-based responsive styles\n\n\n if (shouldSort) {\n styles = sort(styles);\n }\n\n return styles;\n };\n\n parse.config = config;\n parse.propNames = Object.keys(config);\n parse.cache = cache;\n var keys = Object.keys(config).filter(function (k) {\n return k !== 'config';\n });\n\n if (keys.length > 1) {\n keys.forEach(function (key) {\n var _createParser;\n\n parse[key] = createParser((_createParser = {}, _createParser[key] = config[key], _createParser));\n });\n }\n\n return parse;\n};\n\nvar parseResponsiveStyle = function parseResponsiveStyle(mediaQueries, sx, scale, raw, _props) {\n var styles = {};\n raw.slice(0, mediaQueries.length).forEach(function (value, i) {\n var media = mediaQueries[i];\n var style = sx(value, scale, _props);\n\n if (!media) {\n assign(styles, style);\n } else {\n var _assign2;\n\n assign(styles, (_assign2 = {}, _assign2[media] = assign({}, styles[media], style), _assign2));\n }\n });\n return styles;\n};\n\nvar parseResponsiveObject = function parseResponsiveObject(breakpoints, sx, scale, raw, _props) {\n var styles = {};\n\n for (var key in raw) {\n var breakpoint = breakpoints[key];\n var value = raw[key];\n var style = sx(value, scale, _props);\n\n if (!breakpoint) {\n assign(styles, style);\n } else {\n var _assign3;\n\n var media = createMediaQuery(breakpoint);\n assign(styles, (_assign3 = {}, _assign3[media] = assign({}, styles[media], style), _assign3));\n }\n }\n\n return styles;\n};\n\nexport var createStyleFunction = function createStyleFunction(_ref) {\n var properties = _ref.properties,\n property = _ref.property,\n scale = _ref.scale,\n _ref$transform = _ref.transform,\n transform = _ref$transform === void 0 ? getValue : _ref$transform,\n defaultScale = _ref.defaultScale;\n properties = properties || [property];\n\n var sx = function sx(value, scale, _props) {\n var result = {};\n var n = transform(value, scale, _props);\n if (n === null) return;\n properties.forEach(function (prop) {\n result[prop] = n;\n });\n return result;\n };\n\n sx.scale = scale;\n sx.defaults = defaultScale;\n return sx;\n}; // new v5 API\n\nexport var system = function system(args) {\n if (args === void 0) {\n args = {};\n }\n\n var config = {};\n Object.keys(args).forEach(function (key) {\n var conf = args[key];\n\n if (conf === true) {\n // shortcut definition\n config[key] = createStyleFunction({\n property: key,\n scale: key\n });\n return;\n }\n\n if (typeof conf === 'function') {\n config[key] = conf;\n return;\n }\n\n config[key] = createStyleFunction(conf);\n });\n var parser = createParser(config);\n return parser;\n};\nexport var compose = function compose() {\n var config = {};\n\n for (var _len = arguments.length, parsers = new Array(_len), _key = 0; _key < _len; _key++) {\n parsers[_key] = arguments[_key];\n }\n\n parsers.forEach(function (parser) {\n if (!parser || !parser.config) return;\n assign(config, parser.config);\n });\n var parser = createParser(config);\n return parser;\n};","import { system, get } from '@styled-system/core';\n\nvar isNumber = function isNumber(n) {\n return typeof n === 'number' && !isNaN(n);\n};\n\nvar getWidth = function getWidth(n, scale) {\n return get(scale, n, !isNumber(n) || n > 1 ? n : n * 100 + '%');\n};\n\nvar config = {\n width: {\n property: 'width',\n scale: 'sizes',\n transform: getWidth\n },\n height: {\n property: 'height',\n scale: 'sizes'\n },\n minWidth: {\n property: 'minWidth',\n scale: 'sizes'\n },\n minHeight: {\n property: 'minHeight',\n scale: 'sizes'\n },\n maxWidth: {\n property: 'maxWidth',\n scale: 'sizes'\n },\n maxHeight: {\n property: 'maxHeight',\n scale: 'sizes'\n },\n size: {\n properties: ['width', 'height'],\n scale: 'sizes'\n },\n overflow: true,\n overflowX: true,\n overflowY: true,\n display: true,\n verticalAlign: true\n};\nexport var layout = system(config);\nexport default layout;","import { system } from '@styled-system/core';\nvar config = {\n color: {\n property: 'color',\n scale: 'colors'\n },\n backgroundColor: {\n property: 'backgroundColor',\n scale: 'colors'\n },\n opacity: true\n};\nconfig.bg = config.backgroundColor;\nexport var color = system(config);\nexport default color;","import { system } from '@styled-system/core';\nvar defaults = {\n fontSizes: [12, 14, 16, 20, 24, 32, 48, 64, 72]\n};\nvar config = {\n fontFamily: {\n property: 'fontFamily',\n scale: 'fonts'\n },\n fontSize: {\n property: 'fontSize',\n scale: 'fontSizes',\n defaultScale: defaults.fontSizes\n },\n fontWeight: {\n property: 'fontWeight',\n scale: 'fontWeights'\n },\n lineHeight: {\n property: 'lineHeight',\n scale: 'lineHeights'\n },\n letterSpacing: {\n property: 'letterSpacing',\n scale: 'letterSpacings'\n },\n textAlign: true,\n fontStyle: true\n};\nexport var typography = system(config);\nexport default typography;","import { system } from '@styled-system/core';\nvar config = {\n alignItems: true,\n alignContent: true,\n justifyItems: true,\n justifyContent: true,\n flexWrap: true,\n flexDirection: true,\n // item\n flex: true,\n flexGrow: true,\n flexShrink: true,\n flexBasis: true,\n justifySelf: true,\n alignSelf: true,\n order: true\n};\nexport var flexbox = system(config);\nexport default flexbox;","import { system } from '@styled-system/core';\nvar defaults = {\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512]\n};\nvar config = {\n gridGap: {\n property: 'gridGap',\n scale: 'space',\n defaultScale: defaults.space\n },\n gridColumnGap: {\n property: 'gridColumnGap',\n scale: 'space',\n defaultScale: defaults.space\n },\n gridRowGap: {\n property: 'gridRowGap',\n scale: 'space',\n defaultScale: defaults.space\n },\n gridColumn: true,\n gridRow: true,\n gridAutoFlow: true,\n gridAutoColumns: true,\n gridAutoRows: true,\n gridTemplateColumns: true,\n gridTemplateRows: true,\n gridTemplateAreas: true,\n gridArea: true\n};\nexport var grid = system(config);\nexport default grid;","import { system } from '@styled-system/core';\nvar config = {\n border: {\n property: 'border',\n scale: 'borders'\n },\n borderWidth: {\n property: 'borderWidth',\n scale: 'borderWidths'\n },\n borderStyle: {\n property: 'borderStyle',\n scale: 'borderStyles'\n },\n borderColor: {\n property: 'borderColor',\n scale: 'colors'\n },\n borderRadius: {\n property: 'borderRadius',\n scale: 'radii'\n },\n borderTop: {\n property: 'borderTop',\n scale: 'borders'\n },\n borderTopLeftRadius: {\n property: 'borderTopLeftRadius',\n scale: 'radii'\n },\n borderTopRightRadius: {\n property: 'borderTopRightRadius',\n scale: 'radii'\n },\n borderRight: {\n property: 'borderRight',\n scale: 'borders'\n },\n borderBottom: {\n property: 'borderBottom',\n scale: 'borders'\n },\n borderBottomLeftRadius: {\n property: 'borderBottomLeftRadius',\n scale: 'radii'\n },\n borderBottomRightRadius: {\n property: 'borderBottomRightRadius',\n scale: 'radii'\n },\n borderLeft: {\n property: 'borderLeft',\n scale: 'borders'\n },\n borderX: {\n properties: ['borderLeft', 'borderRight'],\n scale: 'borders'\n },\n borderY: {\n properties: ['borderTop', 'borderBottom'],\n scale: 'borders'\n }\n};\nconfig.borderTopWidth = {\n property: 'borderTopWidth',\n scale: 'borderWidths'\n};\nconfig.borderTopColor = {\n property: 'borderTopColor',\n scale: 'colors'\n};\nconfig.borderTopStyle = {\n property: 'borderTopStyle',\n scale: 'borderStyles'\n};\nconfig.borderTopLeftRadius = {\n property: 'borderTopLeftRadius',\n scale: 'radii'\n};\nconfig.borderTopRightRadius = {\n property: 'borderTopRightRadius',\n scale: 'radii'\n};\nconfig.borderBottomWidth = {\n property: 'borderBottomWidth',\n scale: 'borderWidths'\n};\nconfig.borderBottomColor = {\n property: 'borderBottomColor',\n scale: 'colors'\n};\nconfig.borderBottomStyle = {\n property: 'borderBottomStyle',\n scale: 'borderStyles'\n};\nconfig.borderBottomLeftRadius = {\n property: 'borderBottomLeftRadius',\n scale: 'radii'\n};\nconfig.borderBottomRightRadius = {\n property: 'borderBottomRightRadius',\n scale: 'radii'\n};\nconfig.borderLeftWidth = {\n property: 'borderLeftWidth',\n scale: 'borderWidths'\n};\nconfig.borderLeftColor = {\n property: 'borderLeftColor',\n scale: 'colors'\n};\nconfig.borderLeftStyle = {\n property: 'borderLeftStyle',\n scale: 'borderStyles'\n};\nconfig.borderRightWidth = {\n property: 'borderRightWidth',\n scale: 'borderWidths'\n};\nconfig.borderRightColor = {\n property: 'borderRightColor',\n scale: 'colors'\n};\nconfig.borderRightStyle = {\n property: 'borderRightStyle',\n scale: 'borderStyles'\n};\nexport var border = system(config);\nexport default border;","import { system } from '@styled-system/core';\nvar config = {\n background: true,\n backgroundImage: true,\n backgroundSize: true,\n backgroundPosition: true,\n backgroundRepeat: true\n};\nconfig.bgImage = config.backgroundImage;\nconfig.bgSize = config.backgroundSize;\nconfig.bgPosition = config.backgroundPosition;\nconfig.bgRepeat = config.backgroundRepeat;\nexport var background = system(config);\nexport default background;","import { system } from '@styled-system/core';\nvar defaults = {\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512]\n};\nvar config = {\n position: true,\n zIndex: {\n property: 'zIndex',\n scale: 'zIndices'\n },\n top: {\n property: 'top',\n scale: 'space',\n defaultScale: defaults.space\n },\n right: {\n property: 'right',\n scale: 'space',\n defaultScale: defaults.space\n },\n bottom: {\n property: 'bottom',\n scale: 'space',\n defaultScale: defaults.space\n },\n left: {\n property: 'left',\n scale: 'space',\n defaultScale: defaults.space\n }\n};\nexport var position = system(config);\nexport default position;","import { get, system, compose } from '@styled-system/core';\nvar defaults = {\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512]\n};\n\nvar isNumber = function isNumber(n) {\n return typeof n === 'number' && !isNaN(n);\n};\n\nvar getMargin = function getMargin(n, scale) {\n if (!isNumber(n)) {\n return get(scale, n, n);\n }\n\n var isNegative = n < 0;\n var absolute = Math.abs(n);\n var value = get(scale, absolute, absolute);\n\n if (!isNumber(value)) {\n return isNegative ? '-' + value : value;\n }\n\n return value * (isNegative ? -1 : 1);\n};\n\nvar configs = {};\nconfigs.margin = {\n margin: {\n property: 'margin',\n scale: 'space',\n transform: getMargin,\n defaultScale: defaults.space\n },\n marginTop: {\n property: 'marginTop',\n scale: 'space',\n transform: getMargin,\n defaultScale: defaults.space\n },\n marginRight: {\n property: 'marginRight',\n scale: 'space',\n transform: getMargin,\n defaultScale: defaults.space\n },\n marginBottom: {\n property: 'marginBottom',\n scale: 'space',\n transform: getMargin,\n defaultScale: defaults.space\n },\n marginLeft: {\n property: 'marginLeft',\n scale: 'space',\n transform: getMargin,\n defaultScale: defaults.space\n },\n marginX: {\n properties: ['marginLeft', 'marginRight'],\n scale: 'space',\n transform: getMargin,\n defaultScale: defaults.space\n },\n marginY: {\n properties: ['marginTop', 'marginBottom'],\n scale: 'space',\n transform: getMargin,\n defaultScale: defaults.space\n }\n};\nconfigs.margin.m = configs.margin.margin;\nconfigs.margin.mt = configs.margin.marginTop;\nconfigs.margin.mr = configs.margin.marginRight;\nconfigs.margin.mb = configs.margin.marginBottom;\nconfigs.margin.ml = configs.margin.marginLeft;\nconfigs.margin.mx = configs.margin.marginX;\nconfigs.margin.my = configs.margin.marginY;\nconfigs.padding = {\n padding: {\n property: 'padding',\n scale: 'space',\n defaultScale: defaults.space\n },\n paddingTop: {\n property: 'paddingTop',\n scale: 'space',\n defaultScale: defaults.space\n },\n paddingRight: {\n property: 'paddingRight',\n scale: 'space',\n defaultScale: defaults.space\n },\n paddingBottom: {\n property: 'paddingBottom',\n scale: 'space',\n defaultScale: defaults.space\n },\n paddingLeft: {\n property: 'paddingLeft',\n scale: 'space',\n defaultScale: defaults.space\n },\n paddingX: {\n properties: ['paddingLeft', 'paddingRight'],\n scale: 'space',\n defaultScale: defaults.space\n },\n paddingY: {\n properties: ['paddingTop', 'paddingBottom'],\n scale: 'space',\n defaultScale: defaults.space\n }\n};\nconfigs.padding.p = configs.padding.padding;\nconfigs.padding.pt = configs.padding.paddingTop;\nconfigs.padding.pr = configs.padding.paddingRight;\nconfigs.padding.pb = configs.padding.paddingBottom;\nconfigs.padding.pl = configs.padding.paddingLeft;\nconfigs.padding.px = configs.padding.paddingX;\nconfigs.padding.py = configs.padding.paddingY;\nexport var margin = system(configs.margin);\nexport var padding = system(configs.padding);\nexport var space = compose(margin, padding);\nexport default space;","import { system } from '@styled-system/core';\nexport var shadow = system({\n boxShadow: {\n property: 'boxShadow',\n scale: 'shadows'\n },\n textShadow: {\n property: 'textShadow',\n scale: 'shadows'\n }\n});\nexport default shadow;","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} // based on https://github.com/developit/dlv\n\n\nexport var get = function get(obj, key, def, p, undef) {\n key = key && key.split ? key.split('.') : [key];\n\n for (p = 0; p < key.length; p++) {\n obj = obj ? obj[key[p]] : undef;\n }\n\n return obj === undef ? def : obj;\n};\nvar defaultBreakpoints = [40, 52, 64].map(function (n) {\n return n + 'em';\n});\nvar defaultTheme = {\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512],\n fontSizes: [12, 14, 16, 20, 24, 32, 48, 64, 72]\n};\nvar aliases = {\n bg: 'backgroundColor',\n m: 'margin',\n mt: 'marginTop',\n mr: 'marginRight',\n mb: 'marginBottom',\n ml: 'marginLeft',\n mx: 'marginX',\n my: 'marginY',\n p: 'padding',\n pt: 'paddingTop',\n pr: 'paddingRight',\n pb: 'paddingBottom',\n pl: 'paddingLeft',\n px: 'paddingX',\n py: 'paddingY'\n};\nvar multiples = {\n marginX: ['marginLeft', 'marginRight'],\n marginY: ['marginTop', 'marginBottom'],\n paddingX: ['paddingLeft', 'paddingRight'],\n paddingY: ['paddingTop', 'paddingBottom'],\n size: ['width', 'height']\n};\nvar scales = {\n color: 'colors',\n backgroundColor: 'colors',\n borderColor: 'colors',\n margin: 'space',\n marginTop: 'space',\n marginRight: 'space',\n marginBottom: 'space',\n marginLeft: 'space',\n marginX: 'space',\n marginY: 'space',\n padding: 'space',\n paddingTop: 'space',\n paddingRight: 'space',\n paddingBottom: 'space',\n paddingLeft: 'space',\n paddingX: 'space',\n paddingY: 'space',\n top: 'space',\n right: 'space',\n bottom: 'space',\n left: 'space',\n gridGap: 'space',\n gridColumnGap: 'space',\n gridRowGap: 'space',\n gap: 'space',\n columnGap: 'space',\n rowGap: 'space',\n fontFamily: 'fonts',\n fontSize: 'fontSizes',\n fontWeight: 'fontWeights',\n lineHeight: 'lineHeights',\n letterSpacing: 'letterSpacings',\n border: 'borders',\n borderTop: 'borders',\n borderRight: 'borders',\n borderBottom: 'borders',\n borderLeft: 'borders',\n borderWidth: 'borderWidths',\n borderStyle: 'borderStyles',\n borderRadius: 'radii',\n borderTopRightRadius: 'radii',\n borderTopLeftRadius: 'radii',\n borderBottomRightRadius: 'radii',\n borderBottomLeftRadius: 'radii',\n borderTopWidth: 'borderWidths',\n borderTopColor: 'colors',\n borderTopStyle: 'borderStyles',\n borderBottomWidth: 'borderWidths',\n borderBottomColor: 'colors',\n borderBottomStyle: 'borderStyles',\n borderLeftWidth: 'borderWidths',\n borderLeftColor: 'colors',\n borderLeftStyle: 'borderStyles',\n borderRightWidth: 'borderWidths',\n borderRightColor: 'colors',\n borderRightStyle: 'borderStyles',\n outlineColor: 'colors',\n boxShadow: 'shadows',\n textShadow: 'shadows',\n zIndex: 'zIndices',\n width: 'sizes',\n minWidth: 'sizes',\n maxWidth: 'sizes',\n height: 'sizes',\n minHeight: 'sizes',\n maxHeight: 'sizes',\n flexBasis: 'sizes',\n size: 'sizes',\n // svg\n fill: 'colors',\n stroke: 'colors'\n};\n\nvar positiveOrNegative = function positiveOrNegative(scale, value) {\n if (typeof value !== 'number' || value >= 0) {\n return get(scale, value, value);\n }\n\n var absolute = Math.abs(value);\n var n = get(scale, absolute, absolute);\n if (typeof n === 'string') return '-' + n;\n return n * -1;\n};\n\nvar transforms = ['margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'top', 'bottom', 'left', 'right'].reduce(function (acc, curr) {\n var _extends2;\n\n return _extends({}, acc, (_extends2 = {}, _extends2[curr] = positiveOrNegative, _extends2));\n}, {});\nexport var responsive = function responsive(styles) {\n return function (theme) {\n var next = {};\n var breakpoints = get(theme, 'breakpoints', defaultBreakpoints);\n var mediaQueries = [null].concat(breakpoints.map(function (n) {\n return \"@media screen and (min-width: \" + n + \")\";\n }));\n\n for (var key in styles) {\n var value = typeof styles[key] === 'function' ? styles[key](theme) : styles[key];\n if (value == null) continue;\n\n if (!Array.isArray(value)) {\n next[key] = value;\n continue;\n }\n\n for (var i = 0; i < value.slice(0, mediaQueries.length).length; i++) {\n var media = mediaQueries[i];\n\n if (!media) {\n next[key] = value[i];\n continue;\n }\n\n next[media] = next[media] || {};\n if (value[i] == null) continue;\n next[media][key] = value[i];\n }\n }\n\n return next;\n };\n};\nexport var css = function css(args) {\n return function (props) {\n if (props === void 0) {\n props = {};\n }\n\n var theme = _extends({}, defaultTheme, {}, props.theme || props);\n\n var result = {};\n var obj = typeof args === 'function' ? args(theme) : args;\n var styles = responsive(obj)(theme);\n\n for (var key in styles) {\n var x = styles[key];\n var val = typeof x === 'function' ? x(theme) : x;\n\n if (key === 'variant') {\n var variant = css(get(theme, val))(theme);\n result = _extends({}, result, {}, variant);\n continue;\n }\n\n if (val && typeof val === 'object') {\n result[key] = css(val)(theme);\n continue;\n }\n\n var prop = get(aliases, key, key);\n var scaleName = get(scales, prop);\n var scale = get(theme, scaleName, get(theme, prop, {}));\n var transform = get(transforms, prop, get);\n var value = transform(scale, val, val);\n\n if (multiples[prop]) {\n var dirs = multiples[prop];\n\n for (var i = 0; i < dirs.length; i++) {\n result[dirs[i]] = value;\n }\n } else {\n result[prop] = value;\n }\n }\n\n return result;\n };\n};\nexport default css;","import { get, createParser } from '@styled-system/core';\nimport css from '@styled-system/css';\nexport var variant = function variant(_ref) {\n var _config;\n\n var scale = _ref.scale,\n _ref$prop = _ref.prop,\n prop = _ref$prop === void 0 ? 'variant' : _ref$prop,\n _ref$variants = _ref.variants,\n variants = _ref$variants === void 0 ? {} : _ref$variants,\n key = _ref.key;\n var sx;\n\n if (Object.keys(variants).length) {\n sx = function sx(value, scale, props) {\n return css(get(scale, value, null))(props.theme);\n };\n } else {\n sx = function sx(value, scale) {\n return get(scale, value, null);\n };\n }\n\n sx.scale = scale || key;\n sx.defaults = variants;\n var config = (_config = {}, _config[prop] = sx, _config);\n var parser = createParser(config);\n return parser;\n};\nexport default variant;\nexport var buttonStyle = variant({\n key: 'buttons'\n});\nexport var textStyle = variant({\n key: 'textStyles',\n prop: 'textStyle'\n});\nexport var colorStyle = variant({\n key: 'colorStyles',\n prop: 'colors'\n});","import memoize from '@emotion/memoize';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { compose, space, typography, color, layout, flexbox, border, background, position, grid, shadow, buttonStyle, textStyle, colorStyle } from 'styled-system';\nvar all = compose(space, typography, color, layout, flexbox, border, background, position, grid, shadow, buttonStyle, textStyle, colorStyle);\nexport var props = all.propNames;\nexport var createShouldForwardProp = function createShouldForwardProp(props) {\n var regex = new RegExp(\"^(\" + props.join('|') + \")$\");\n return memoize(function (prop) {\n return isPropValid(prop) && !regex.test(prop);\n });\n};\nexport default createShouldForwardProp(props);","import { createStyleFunction, createParser } from '@styled-system/core'; // v4 api shims\n\nimport layout from '@styled-system/layout';\nimport color from '@styled-system/color';\nimport typography from '@styled-system/typography';\nimport flexbox from '@styled-system/flexbox';\nimport grid from '@styled-system/grid';\nimport border from '@styled-system/border';\nimport background from '@styled-system/background';\nimport position from '@styled-system/position';\nexport { get, createParser, createStyleFunction, compose, system } from '@styled-system/core';\nexport { margin, padding, space } from '@styled-system/space';\nexport { color } from '@styled-system/color';\nexport { layout } from '@styled-system/layout';\nexport { typography } from '@styled-system/typography';\nexport { flexbox } from '@styled-system/flexbox';\nexport { border } from '@styled-system/border';\nexport { background } from '@styled-system/background';\nexport { position } from '@styled-system/position';\nexport { grid } from '@styled-system/grid';\nexport { shadow } from '@styled-system/shadow';\nexport { default as boxShadow, default as textShadow } from '@styled-system/shadow';\nexport { variant, buttonStyle, textStyle, colorStyle } from '@styled-system/variant';\nvar width = layout.width,\n height = layout.height,\n minWidth = layout.minWidth,\n minHeight = layout.minHeight,\n maxWidth = layout.maxWidth,\n maxHeight = layout.maxHeight,\n size = layout.size,\n verticalAlign = layout.verticalAlign,\n display = layout.display,\n overflow = layout.overflow,\n overflowX = layout.overflowX,\n overflowY = layout.overflowY;\nvar opacity = color.opacity;\nvar fontSize = typography.fontSize,\n fontFamily = typography.fontFamily,\n fontWeight = typography.fontWeight,\n lineHeight = typography.lineHeight,\n textAlign = typography.textAlign,\n fontStyle = typography.fontStyle,\n letterSpacing = typography.letterSpacing;\nvar alignItems = flexbox.alignItems,\n alignContent = flexbox.alignContent,\n justifyItems = flexbox.justifyItems,\n justifyContent = flexbox.justifyContent,\n flexWrap = flexbox.flexWrap,\n flexDirection = flexbox.flexDirection,\n flex = flexbox.flex,\n flexGrow = flexbox.flexGrow,\n flexShrink = flexbox.flexShrink,\n flexBasis = flexbox.flexBasis,\n justifySelf = flexbox.justifySelf,\n alignSelf = flexbox.alignSelf,\n order = flexbox.order;\nvar gridGap = grid.gridGap,\n gridColumnGap = grid.gridColumnGap,\n gridRowGap = grid.gridRowGap,\n gridColumn = grid.gridColumn,\n gridRow = grid.gridRow,\n gridAutoFlow = grid.gridAutoFlow,\n gridAutoColumns = grid.gridAutoColumns,\n gridAutoRows = grid.gridAutoRows,\n gridTemplateColumns = grid.gridTemplateColumns,\n gridTemplateRows = grid.gridTemplateRows,\n gridTemplateAreas = grid.gridTemplateAreas,\n gridArea = grid.gridArea;\nvar borderWidth = border.borderWidth,\n borderStyle = border.borderStyle,\n borderColor = border.borderColor,\n borderTop = border.borderTop,\n borderRight = border.borderRight,\n borderBottom = border.borderBottom,\n borderLeft = border.borderLeft,\n borderRadius = border.borderRadius;\nvar backgroundImage = background.backgroundImage,\n backgroundSize = background.backgroundSize,\n backgroundPosition = background.backgroundPosition,\n backgroundRepeat = background.backgroundRepeat;\nvar zIndex = position.zIndex,\n top = position.top,\n right = position.right,\n bottom = position.bottom,\n left = position.left;\nexport { default as borders } from '@styled-system/border';\nexport { width, height, minWidth, minHeight, maxWidth, maxHeight, size, verticalAlign, display, overflow, overflowX, overflowY // color\n, opacity // typography\n, fontSize, fontFamily, fontWeight, lineHeight, textAlign, fontStyle, letterSpacing // flexbox\n, alignItems, alignContent, justifyItems, justifyContent, flexWrap, flexDirection, flex, flexGrow, flexShrink, flexBasis, justifySelf, alignSelf, order // grid\n, gridGap, gridColumnGap, gridRowGap, gridColumn, gridRow, gridAutoFlow, gridAutoColumns, gridAutoRows, gridTemplateColumns, gridTemplateRows, gridTemplateAreas, gridArea // border\n, borderWidth, borderStyle, borderColor, borderTop, borderRight, borderBottom, borderLeft, borderRadius // background\n, backgroundImage, backgroundSize, backgroundPosition, backgroundRepeat // position\n, zIndex, top, right, bottom, left }; // v4 style API shim\n\nexport var style = function style(_ref) {\n var prop = _ref.prop,\n cssProperty = _ref.cssProperty,\n alias = _ref.alias,\n key = _ref.key,\n transformValue = _ref.transformValue,\n scale = _ref.scale,\n properties = _ref.properties;\n var config = {};\n config[prop] = createStyleFunction({\n properties: properties,\n property: cssProperty || prop,\n scale: key,\n defaultScale: scale,\n transform: transformValue\n });\n if (alias) config[alias] = config[prop];\n var parse = createParser(config);\n return parse;\n};","import styled from '@emotion/styled';\nimport { css, get } from '@theme-ui/css';\nimport { createShouldForwardProp } from '@styled-system/should-forward-prop';\nimport space from '@styled-system/space';\nimport color from '@styled-system/color';\nimport React from 'react';\nimport { keyframes } from '@emotion/react';\nvar boxSystemProps = [].concat(space.propNames, color.propNames);\n/**\n * @internal\n * @type {(prop: string) => boolean}\n */\n\nvar __isBoxStyledSystemProp = function __isBoxStyledSystemProp(prop) {\n return boxSystemProps.includes(prop);\n};\n\nvar shouldForwardProp = createShouldForwardProp(boxSystemProps);\n\nvar sx = function sx(props) {\n return css(props.sx)(props.theme);\n};\n\nvar base = function base(props) {\n return css(props.__css)(props.theme);\n};\n\nvar variant = function variant(_ref) {\n var theme = _ref.theme,\n variant = _ref.variant,\n _ref$__themeKey = _ref.__themeKey,\n __themeKey = _ref$__themeKey === void 0 ? 'variants' : _ref$__themeKey;\n\n return css(get(theme, __themeKey + '.' + variant, get(theme, variant)));\n};\n\nvar Box = styled('div', {\n shouldForwardProp: shouldForwardProp\n})({\n boxSizing: 'border-box',\n margin: 0,\n minWidth: 0\n}, base, variant, space, color, sx, function (props) {\n return props.css;\n});\nBox.displayName = 'Box';\nvar Flex = styled(Box)({\n display: 'flex'\n});\nFlex.displayName = 'Flex';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar _excluded = [\"width\", \"columns\", \"gap\", \"repeat\"];\n\nvar px = function px(n) {\n return typeof n === 'number' ? n + 'px' : n;\n};\n\nvar widthToColumns = function widthToColumns(width, repeat) {\n return Array.isArray(width) ? width.map(function (w) {\n return widthToColumns(w, repeat);\n }) : !!width && \"repeat(auto-\" + repeat + \", minmax(\" + px(width) + \", 1fr))\";\n};\n\nvar countToColumns = function countToColumns(n) {\n return Array.isArray(n) ? n.map(countToColumns) : !!n && (typeof n === 'number' ? \"repeat(\" + n + \", 1fr)\" : n);\n};\n\nvar Grid = /*#__PURE__*/React.forwardRef(function Grid(_ref, ref) {\n var width = _ref.width,\n columns = _ref.columns,\n _ref$gap = _ref.gap,\n gap = _ref$gap === void 0 ? 3 : _ref$gap,\n _ref$repeat = _ref.repeat,\n repeat = _ref$repeat === void 0 ? 'fit' : _ref$repeat,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var gridTemplateColumns = !!width ? widthToColumns(width, repeat) : countToColumns(columns);\n return /*#__PURE__*/React.createElement(Box, _extends({\n ref: ref\n }, props, {\n __themeKey: \"grids\",\n __css: {\n display: 'grid',\n gridGap: gap,\n gridTemplateColumns: gridTemplateColumns\n }\n }));\n});\nvar Button = /*#__PURE__*/React.forwardRef(function Button(props, ref) {\n return /*#__PURE__*/React.createElement(Box, _extends({\n ref: ref,\n as: \"button\",\n variant: \"primary\"\n }, props, {\n __themeKey: \"buttons\",\n __css: {\n appearance: 'none',\n display: props.hidden ? undefined : 'inline-block',\n textAlign: 'center',\n lineHeight: 'inherit',\n textDecoration: 'none',\n fontSize: 'inherit',\n px: 3,\n py: 2,\n color: 'white',\n bg: 'primary',\n border: 0,\n borderRadius: 4\n }\n }));\n});\nvar Link = /*#__PURE__*/React.forwardRef(function Link(props, ref) {\n return /*#__PURE__*/React.createElement(Box, _extends({\n ref: ref,\n as: \"a\",\n variant: \"styles.a\"\n }, props, {\n __themeKey: \"links\"\n }));\n});\nvar Paragraph = /*#__PURE__*/React.forwardRef(function Paragraph(props, ref) {\n return /*#__PURE__*/React.createElement(Box, _extends({\n ref: ref,\n as: \"p\",\n variant: \"paragraph\",\n __themeKey: \"text\",\n __css: {\n fontFamily: 'body',\n fontWeight: 'body',\n lineHeight: 'body'\n }\n }, props));\n});\nvar Text = /*#__PURE__*/React.forwardRef(function Text(props, ref) {\n return /*#__PURE__*/React.createElement(Box, _extends({\n as: \"span\",\n ref: ref,\n variant: \"default\"\n }, props, {\n __themeKey: \"text\"\n }));\n});\nvar Heading = /*#__PURE__*/React.forwardRef(function Heading(props, ref) {\n return /*#__PURE__*/React.createElement(Box, _extends({\n ref: ref,\n as: \"h2\",\n variant: \"heading\"\n }, props, {\n __themeKey: \"text\",\n __css: {\n fontFamily: 'heading',\n fontWeight: 'heading',\n lineHeight: 'heading'\n }\n }));\n});\nvar Image = /*#__PURE__*/React.forwardRef(function Image(props, ref) {\n return /*#__PURE__*/React.createElement(Box, _extends({\n ref: ref,\n as: \"img\"\n }, props, {\n __themeKey: \"images\",\n __css: _extends({\n maxWidth: '100%',\n height: 'auto'\n }, props.__css)\n }));\n});\nvar Card = /*#__PURE__*/React.forwardRef(function Card(props, ref) {\n return /*#__PURE__*/React.createElement(Box, _extends({\n ref: ref,\n variant: \"primary\"\n }, props, {\n __themeKey: \"cards\"\n }));\n});\nvar Label = /*#__PURE__*/React.forwardRef(function Label(props, ref) {\n return /*#__PURE__*/React.createElement(Box, _extends({\n ref: ref,\n as: \"label\",\n variant: \"label\"\n }, props, {\n __themeKey: \"forms\",\n __css: {\n width: '100%',\n display: 'flex'\n }\n }));\n});\nvar _excluded$1 = [\"sx\", \"autofillBackgroundColor\"];\n/** @type {import('theme-ui').ThemeUIStyleObject} */\n\nvar autofillStyles = {\n boxShadow: 'inset 0 0 0 1000px var(--theme-ui-input-autofill-bg)',\n fontSize: 'inherit',\n ':first-line': {\n fontSize: '1rem'\n }\n};\n/** @type {import('theme-ui').ThemeUIStyleObject} */\n\nvar defaultInputStyles = {\n display: 'block',\n width: '100%',\n p: 2,\n appearance: 'none',\n fontSize: 'inherit',\n lineHeight: 'inherit',\n border: '1px solid',\n borderRadius: 4,\n color: 'inherit',\n bg: 'transparent',\n ':autofill, :autofill:hover, :autofill:focus': autofillStyles,\n ':-webkit-autofill, :-webkit-autofill:hover, :-webkit-autofill:focus': autofillStyles\n};\nvar Input = /*#__PURE__*/React.forwardRef(function Input(_ref, ref) {\n var sx = _ref.sx,\n _ref$autofillBackgrou = _ref.autofillBackgroundColor,\n autofillBackgroundColor = _ref$autofillBackgrou === void 0 ? 'background' : _ref$autofillBackgrou,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$1);\n\n return /*#__PURE__*/React.createElement(Box, _extends({\n ref: ref,\n as: \"input\",\n variant: \"input\",\n sx: _extends({\n '--theme-ui-input-autofill-bg': function themeUiInputAutofillBg(theme) {\n return get(theme.colors, autofillBackgroundColor, null);\n }\n }, sx)\n }, rest, {\n __themeKey: \"forms\",\n __css: defaultInputStyles\n }));\n});\nvar _excluded$2 = [\"size\"];\n\nvar SVG = function SVG(_ref) {\n var _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size,\n props = _objectWithoutPropertiesLoose(_ref, _excluded$2);\n\n return /*#__PURE__*/React.createElement(Box, _extends({\n as: \"svg\",\n xmlns: \"http://www.w3.org/2000/svg\",\n width: size + '',\n height: size + '',\n viewBox: \"0 0 24 24\",\n fill: \"currentcolor\"\n }, props));\n};\n\nSVG.displayName = 'SVG';\n\nvar getProps = function getProps(test) {\n return function (props) {\n var next = {};\n\n for (var key in props) {\n if (test(key || '')) next[key] = props[key];\n }\n\n return next;\n };\n};\n\nvar MRE = /^m[trblxy]?$/;\nvar getMargin = getProps(function (k) {\n return MRE.test(k);\n});\nvar omitMargin = getProps(function (k) {\n return !MRE.test(k);\n});\nvar _excluded$3 = [\"arrow\"];\n\nvar DownArrow = function DownArrow(props) {\n return /*#__PURE__*/React.createElement(SVG, props, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M7 10l5 5 5-5z\"\n }));\n};\n\nvar Select = /*#__PURE__*/React.forwardRef(function Select(_ref, ref) {\n var arrow = _ref.arrow,\n props = _objectWithoutPropertiesLoose(_ref, _excluded$3);\n\n return /*#__PURE__*/React.createElement(Box, _extends({}, getMargin(props), {\n sx: {\n display: 'flex'\n }\n }), /*#__PURE__*/React.createElement(Box, _extends({\n ref: ref,\n as: \"select\",\n variant: \"select\"\n }, omitMargin(props), {\n __themeKey: \"forms\",\n __css: {\n display: 'block',\n width: '100%',\n p: 2,\n appearance: 'none',\n fontSize: 'inherit',\n lineHeight: 'inherit',\n border: '1px solid',\n borderRadius: 4,\n color: 'inherit',\n backgroundColor: function backgroundColor(theme) {\n return get(theme, 'colors.background', null);\n }\n }\n })), arrow || /*#__PURE__*/React.createElement(DownArrow, {\n sx: {\n ml: -28,\n alignSelf: 'center',\n pointerEvents: 'none'\n }\n }));\n});\nvar Textarea = /*#__PURE__*/React.forwardRef(function Textarea(props, ref) {\n return /*#__PURE__*/React.createElement(Box, _extends({\n ref: ref,\n as: \"textarea\",\n variant: \"textarea\"\n }, props, {\n __themeKey: \"forms\",\n __css: {\n display: 'block',\n width: '100%',\n p: 2,\n appearance: 'none',\n fontSize: 'inherit',\n lineHeight: 'inherit',\n border: '1px solid',\n borderRadius: 4,\n color: 'inherit',\n bg: 'transparent'\n }\n }));\n});\nvar _excluded$4 = [\"className\", \"sx\", \"variant\"];\n\nvar RadioChecked = function RadioChecked(props) {\n return /*#__PURE__*/React.createElement(SVG, props, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 7c-2.76 0-5 2.24-5 5s2.24 5 5 5 5-2.24 5-5-2.24-5-5-5zm0-5C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"\n }));\n};\n\nvar RadioUnchecked = function RadioUnchecked(props) {\n return /*#__PURE__*/React.createElement(SVG, props, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8z\"\n }));\n};\n\nvar RadioIcon = function RadioIcon(props) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(RadioChecked, _extends({}, props, {\n __css: {\n display: 'none',\n 'input:checked ~ &': {\n display: 'block'\n }\n }\n })), /*#__PURE__*/React.createElement(RadioUnchecked, _extends({}, props, {\n __css: {\n display: 'block',\n 'input:checked ~ &': {\n display: 'none'\n }\n }\n })));\n};\n\nvar Radio = /*#__PURE__*/React.forwardRef(function Radio(_ref, ref) {\n var className = _ref.className,\n sx = _ref.sx,\n _ref$variant = _ref.variant,\n variant = _ref$variant === void 0 ? 'radio' : _ref$variant,\n props = _objectWithoutPropertiesLoose(_ref, _excluded$4);\n\n return /*#__PURE__*/React.createElement(Box, {\n sx: {\n minWidth: 'min-content'\n }\n }, /*#__PURE__*/React.createElement(Box, _extends({\n ref: ref,\n as: \"input\",\n type: \"radio\"\n }, props, {\n sx: {\n position: 'absolute',\n opacity: 0,\n zIndex: -1,\n width: 1,\n height: 1,\n overflow: 'hidden'\n }\n })), /*#__PURE__*/React.createElement(Box, {\n as: RadioIcon,\n \"aria-hidden\": \"true\",\n __themeKey: \"forms\",\n variant: variant,\n className: className,\n sx: sx,\n __css: {\n // todo: system props??\n mr: 2,\n borderRadius: 9999,\n color: 'gray',\n flexShrink: 0,\n 'input:checked ~ &': {\n color: 'primary'\n },\n 'input:focus ~ &': {\n bg: 'highlight'\n }\n }\n }));\n});\nvar _excluded$5 = [\"className\", \"sx\", \"variant\", \"children\"];\n\nvar CheckboxChecked = function CheckboxChecked(props) {\n return /*#__PURE__*/React.createElement(SVG, props, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"\n }));\n};\n\nvar CheckboxUnchecked = function CheckboxUnchecked(props) {\n return /*#__PURE__*/React.createElement(SVG, props, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"\n }));\n};\n\nvar CheckboxIcon = function CheckboxIcon(props) {\n return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(CheckboxChecked, _extends({}, props, {\n __css: {\n display: 'none',\n 'input:checked ~ &': {\n display: 'block'\n }\n }\n })), /*#__PURE__*/React.createElement(CheckboxUnchecked, _extends({}, props, {\n __css: {\n display: 'block',\n 'input:checked ~ &': {\n display: 'none'\n }\n }\n })));\n};\n\nvar Checkbox = /*#__PURE__*/React.forwardRef(function Checkbox(_ref, ref) {\n var className = _ref.className,\n sx = _ref.sx,\n _ref$variant = _ref.variant,\n variant = _ref$variant === void 0 ? 'checkbox' : _ref$variant,\n children = _ref.children,\n props = _objectWithoutPropertiesLoose(_ref, _excluded$5);\n\n return /*#__PURE__*/React.createElement(Box, {\n sx: {\n minWidth: 'min-content'\n }\n }, /*#__PURE__*/React.createElement(Box, _extends({\n ref: ref,\n as: \"input\",\n type: \"checkbox\"\n }, props, {\n sx: {\n position: 'absolute',\n opacity: 0,\n zIndex: -1,\n width: 1,\n height: 1,\n overflow: 'hidden'\n }\n })), /*#__PURE__*/React.createElement(Box, {\n as: CheckboxIcon,\n \"aria-hidden\": \"true\",\n __themeKey: \"forms\",\n variant: variant,\n className: className,\n sx: sx,\n __css: {\n mr: 2,\n borderRadius: 4,\n color: 'gray',\n flexShrink: 0,\n 'input:checked ~ &': {\n color: 'primary'\n },\n 'input:focus ~ &': {\n color: 'primary',\n bg: 'highlight'\n }\n }\n }), children);\n});\nvar _excluded$6 = [\"className\", \"label\", \"sx\", \"variant\"];\nvar GUTTER = 2;\nvar SIZE = 18;\nvar Switch = /*#__PURE__*/React.forwardRef(function Switch(_ref, ref) {\n var className = _ref.className,\n label = _ref.label,\n sx = _ref.sx,\n _ref$variant = _ref.variant,\n variant = _ref$variant === void 0 ? 'switch' : _ref$variant,\n props = _objectWithoutPropertiesLoose(_ref, _excluded$6);\n\n return /*#__PURE__*/React.createElement(Label, {\n sx: {\n cursor: 'pointer'\n }\n }, /*#__PURE__*/React.createElement(Box, _extends({\n ref: ref,\n as: \"input\",\n type: \"checkbox\",\n __themeKey: \"forms\",\n \"aria-label\": label\n }, props, {\n sx: {\n position: 'absolute',\n opacity: 0,\n zIndex: -1,\n width: 1,\n height: 1,\n overflow: 'hidden'\n }\n })), /*#__PURE__*/React.createElement(Box, {\n css: {\n padding: GUTTER\n },\n __themeKey: \"forms\",\n variant: variant,\n className: className,\n sx: sx,\n __css: {\n position: 'relative',\n bg: 'gray',\n borderRadius: SIZE,\n height: SIZE + GUTTER * 2,\n width: SIZE * 2 + GUTTER * 2,\n mr: 2,\n 'input:disabled ~ &': {\n opacity: 0.5,\n cursor: 'not-allowed'\n },\n '& > div': {\n display: 'flex',\n alignItems: 'center',\n borderRadius: '50%',\n height: SIZE,\n width: SIZE,\n bg: 'white',\n boxShadow: '0 1px 2px rgba(0, 0, 0, 0.1)',\n position: 'relative',\n transform: 'translateX(0%)',\n transition: \"transform 240ms cubic-bezier(0.165, 0.840, 0.440, 1.000)\"\n },\n 'input:checked ~ &': {\n bg: 'primary',\n '> div': {\n transform: 'translateX(100%)'\n }\n }\n }\n }, /*#__PURE__*/React.createElement(Box, null)), /*#__PURE__*/React.createElement(\"span\", null, label));\n});\nvar thumb = {\n appearance: 'none',\n width: 16,\n height: 16,\n bg: 'currentcolor',\n border: 0,\n borderRadius: 9999,\n variant: 'forms.slider.thumb'\n};\nvar Slider = /*#__PURE__*/React.forwardRef(function Slider(props, ref) {\n return /*#__PURE__*/React.createElement(Box, _extends({\n ref: ref,\n as: \"input\",\n type: \"range\",\n variant: \"slider\"\n }, props, {\n __themeKey: \"forms\",\n __css: {\n display: 'block',\n width: '100%',\n height: 4,\n my: 2,\n cursor: 'pointer',\n appearance: 'none',\n borderRadius: 9999,\n color: 'inherit',\n bg: 'gray',\n ':focus': {\n outline: 'none',\n color: 'primary'\n },\n '&::-webkit-slider-thumb': thumb,\n '&::-moz-range-thumb': thumb,\n '&::-ms-thumb': thumb\n }\n }));\n});\nvar _excluded$7 = [\"as\", \"label\", \"id\", \"name\"];\nvar Field = /*#__PURE__*/React.forwardRef(function Field(_ref, ref) {\n var _ref$as = _ref.as,\n Control = _ref$as === void 0 ? Input : _ref$as,\n label = _ref.label,\n id = _ref.id,\n name = _ref.name,\n props = _objectWithoutPropertiesLoose(_ref, _excluded$7);\n\n var fieldIdentifier = id || name;\n return /*#__PURE__*/React.createElement(Box, getMargin(props), /*#__PURE__*/React.createElement(Label, {\n htmlFor: fieldIdentifier\n }, label), /*#__PURE__*/React.createElement(Control, _extends({\n ref: ref,\n id: fieldIdentifier,\n name: name\n }, omitMargin(props))));\n});\nvar Progress = /*#__PURE__*/React.forwardRef(function Progress(props, ref) {\n return /*#__PURE__*/React.createElement(Box, _extends({\n ref: ref,\n as: \"progress\",\n variant: \"styles.progress\"\n }, props, {\n __css: {\n display: 'block',\n width: '100%',\n height: '4px',\n margin: 0,\n padding: 0,\n overflow: 'hidden',\n appearance: 'none',\n color: 'primary',\n bg: 'gray',\n borderRadius: 9999,\n border: 'none',\n '&::-webkit-progress-bar': {\n bg: 'transparent'\n },\n '&::-webkit-progress-value': {\n bg: 'currentcolor'\n },\n '&::-moz-progress-bar': {\n bg: 'currentcolor'\n }\n }\n }));\n});\nvar _excluded$8 = [\"size\", \"strokeWidth\", \"value\", \"min\", \"max\", \"title\"];\nvar Donut = /*#__PURE__*/React.forwardRef(function Donut(_ref, ref) {\n var _ref$size = _ref.size,\n size = _ref$size === void 0 ? 128 : _ref$size,\n _ref$strokeWidth = _ref.strokeWidth,\n strokeWidth = _ref$strokeWidth === void 0 ? 2 : _ref$strokeWidth,\n _ref$value = _ref.value,\n value = _ref$value === void 0 ? 0 : _ref$value,\n _ref$min = _ref.min,\n min = _ref$min === void 0 ? 0 : _ref$min,\n _ref$max = _ref.max,\n max = _ref$max === void 0 ? 1 : _ref$max,\n title = _ref.title,\n props = _objectWithoutPropertiesLoose(_ref, _excluded$8);\n\n var r = 16 - strokeWidth;\n var C = 2 * r * Math.PI;\n var offset = C - (value - min) / (max - min) * C;\n return /*#__PURE__*/React.createElement(Box, _extends({\n ref: ref,\n as: \"svg\",\n viewBox: \"0 0 32 32\",\n width: size,\n height: size,\n strokeWidth: strokeWidth,\n fill: \"none\",\n stroke: \"currentcolor\",\n role: \"img\",\n \"aria-valuenow\": value,\n \"aria-valuemin\": min,\n \"aria-valuemax\": max\n }, props, {\n __css: {\n color: 'primary'\n }\n }), title && /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 16,\n cy: 16,\n r: r,\n opacity: 1 / 8\n }), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 16,\n cy: 16,\n r: r,\n strokeDasharray: C,\n strokeDashoffset: offset,\n transform: \"rotate(-90 16 16)\"\n }));\n});\nvar _excluded$9 = [\"size\", \"strokeWidth\", \"max\", \"title\", \"duration\"];\nvar spin = keyframes({\n from: {\n transform: 'rotate(0deg)'\n },\n to: {\n transform: 'rotate(360deg)'\n }\n});\nvar Spinner = /*#__PURE__*/React.forwardRef(function Spinner(_ref, ref) {\n var _ref$size = _ref.size,\n size = _ref$size === void 0 ? 48 : _ref$size,\n _ref$strokeWidth = _ref.strokeWidth,\n strokeWidth = _ref$strokeWidth === void 0 ? 4 : _ref$strokeWidth,\n _ref$max = _ref.max,\n _ref$title = _ref.title,\n title = _ref$title === void 0 ? 'Loading...' : _ref$title,\n _ref$duration = _ref.duration,\n duration = _ref$duration === void 0 ? 500 : _ref$duration,\n props = _objectWithoutPropertiesLoose(_ref, _excluded$9);\n\n var r = 16 - strokeWidth;\n var C = 2 * r * Math.PI;\n var offset = C - 1 / 4 * C;\n return /*#__PURE__*/React.createElement(Box, _extends({\n ref: ref,\n as: \"svg\",\n viewBox: \"0 0 32 32\",\n width: size,\n height: size,\n strokeWidth: strokeWidth,\n fill: \"none\",\n stroke: \"currentcolor\",\n role: \"img\"\n }, props, {\n __css: {\n color: 'primary',\n overflow: 'visible'\n }\n }), /*#__PURE__*/React.createElement(\"title\", null, title), /*#__PURE__*/React.createElement(\"circle\", {\n cx: 16,\n cy: 16,\n r: r,\n opacity: 1 / 8\n }), /*#__PURE__*/React.createElement(Box, {\n as: \"circle\",\n cx: 16,\n cy: 16,\n r: r,\n strokeDasharray: C,\n strokeDashoffset: offset,\n __css: {\n transformOrigin: '50% 50%',\n animationName: spin.toString(),\n animationTimingFunction: 'linear',\n animationDuration: duration + 'ms',\n animationIterationCount: 'infinite'\n }\n }));\n});\nvar _excluded$a = [\"size\"];\nvar Avatar = /*#__PURE__*/React.forwardRef(function Avatar(_ref, ref) {\n var _ref$size = _ref.size,\n size = _ref$size === void 0 ? 48 : _ref$size,\n props = _objectWithoutPropertiesLoose(_ref, _excluded$a);\n\n return /*#__PURE__*/React.createElement(Image, _extends({\n ref: ref,\n width: size,\n height: size,\n variant: \"avatar\"\n }, props, {\n __css: {\n borderRadius: 9999\n }\n }));\n});\nvar Badge = /*#__PURE__*/React.forwardRef(function Badge(props, ref) {\n return /*#__PURE__*/React.createElement(Box, _extends({\n ref: ref,\n variant: \"primary\"\n }, props, {\n __themeKey: \"badges\",\n __css: {\n display: 'inline-block',\n verticalAlign: 'baseline',\n fontSize: 0,\n fontWeight: 'bold',\n whiteSpace: 'nowrap',\n px: 1,\n borderRadius: 2,\n color: 'white',\n bg: 'primary'\n }\n }));\n});\nvar _excluded$b = [\"size\"];\nvar IconButton = /*#__PURE__*/React.forwardRef(function IconButton(_ref, ref) {\n var _props$__css;\n\n var _ref$size = _ref.size,\n size = _ref$size === void 0 ? 32 : _ref$size,\n props = _objectWithoutPropertiesLoose(_ref, _excluded$b);\n\n return /*#__PURE__*/React.createElement(Box, _extends({\n ref: ref,\n as: \"button\",\n variant: \"icon\"\n }, props, {\n __themeKey: \"buttons\",\n __css: {\n label: ((_props$__css = props.__css) == null ? void 0 : _props$__css.label) || 'IconButton',\n appearance: 'none',\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: 1,\n width: size,\n height: size,\n color: 'inherit',\n bg: 'transparent',\n border: 'none',\n borderRadius: 4\n }\n }));\n});\nvar _excluded$c = [\"size\"];\nvar x = /*#__PURE__*/React.createElement(\"svg\", {\n xmlns: \"http://www.w3.org/2000/svg\",\n width: \"24\",\n height: \"24\",\n fill: \"currentcolor\",\n viewBox: \"0 0 24 24\"\n}, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}));\nvar Close = /*#__PURE__*/React.forwardRef(function Close(_ref, ref) {\n var _ref$size = _ref.size,\n size = _ref$size === void 0 ? 32 : _ref$size,\n props = _objectWithoutPropertiesLoose(_ref, _excluded$c);\n\n return /*#__PURE__*/React.createElement(IconButton, _extends({\n ref: ref,\n size: size,\n title: \"Close\",\n \"aria-label\": \"Close\",\n variant: \"close\"\n }, props, {\n children: x\n }));\n});\nvar Alert = /*#__PURE__*/React.forwardRef(function Alert(props, ref) {\n return /*#__PURE__*/React.createElement(Box, _extends({\n ref: ref,\n variant: \"primary\"\n }, props, {\n __themeKey: \"alerts\",\n __css: {\n display: 'flex',\n alignItems: 'center',\n px: 3,\n py: 2,\n fontWeight: 'bold',\n color: 'white',\n bg: 'primary',\n borderRadius: 4\n }\n }));\n});\nvar Divider = /*#__PURE__*/React.forwardRef(function Divider(props, ref) {\n return /*#__PURE__*/React.createElement(Box, _extends({\n ref: ref,\n as: \"hr\",\n variant: \"styles.hr\"\n }, props, {\n __css: {\n color: 'gray',\n m: 0,\n my: 2,\n border: 0,\n borderBottom: '1px solid'\n }\n }));\n});\nvar _excluded$d = [\"variant\", \"sx\", \"ratio\", \"src\", \"frameBorder\", \"allowFullScreen\", \"width\", \"height\", \"allow\"];\nvar getContainerProps = getProps(__isBoxStyledSystemProp);\nvar getIframeProps = getProps(function (str) {\n return !__isBoxStyledSystemProp(str);\n});\n/** @typedef {import(\"../index\").EmbedProps} EmbedProps */\n\n/** @type {React.ForwardRefExoticComponent<EmbedProps>} */\n\nvar Embed = /*#__PURE__*/React.forwardRef(function Embed(_ref, ref) {\n var variant = _ref.variant,\n sx = _ref.sx,\n _ref$ratio = _ref.ratio,\n ratio = _ref$ratio === void 0 ? 16 / 9 : _ref$ratio,\n src = _ref.src,\n _ref$frameBorder = _ref.frameBorder,\n frameBorder = _ref$frameBorder === void 0 ? 0 : _ref$frameBorder,\n _ref$allowFullScreen = _ref.allowFullScreen,\n allowFullScreen = _ref$allowFullScreen === void 0 ? true : _ref$allowFullScreen,\n _ref$width = _ref.width,\n width = _ref$width === void 0 ? 560 : _ref$width,\n _ref$height = _ref.height,\n height = _ref$height === void 0 ? 315 : _ref$height,\n allow = _ref.allow,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded$d);\n\n return /*#__PURE__*/React.createElement(Box, _extends({\n variant: variant,\n sx: sx,\n __css: {\n width: '100%',\n height: 0,\n paddingBottom: 100 / ratio + '%',\n position: 'relative',\n overflow: 'hidden'\n }\n }, getContainerProps(rest)), /*#__PURE__*/React.createElement(Box, _extends({\n ref: ref,\n as: \"iframe\",\n src: src,\n width: width,\n height: height,\n frameBorder: frameBorder,\n allowFullScreen: allowFullScreen,\n allow: allow\n }, getIframeProps(rest), {\n __css: {\n position: 'absolute',\n width: '100%',\n height: '100%',\n top: 0,\n bottom: 0,\n left: 0,\n border: 0\n }\n })));\n});\nvar _excluded$e = [\"ratio\", \"children\"];\nvar AspectRatio = /*#__PURE__*/React.forwardRef(function AspectRatio(_ref, ref) {\n var _ref$ratio = _ref.ratio,\n ratio = _ref$ratio === void 0 ? 4 / 3 : _ref$ratio,\n children = _ref.children,\n props = _objectWithoutPropertiesLoose(_ref, _excluded$e);\n\n return /*#__PURE__*/React.createElement(Box, {\n ref: ref,\n sx: {\n position: 'relative',\n overflow: 'hidden'\n }\n }, /*#__PURE__*/React.createElement(Box, {\n sx: {\n width: '100%',\n height: 0,\n paddingBottom: 100 / ratio + '%'\n }\n }), /*#__PURE__*/React.createElement(Box, _extends({}, props, {\n __css: {\n position: 'absolute',\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n }), children));\n});\nvar _excluded$f = [\"ratio\"];\nvar AspectImage = /*#__PURE__*/React.forwardRef(function AspectImage(_ref, ref) {\n var ratio = _ref.ratio,\n props = _objectWithoutPropertiesLoose(_ref, _excluded$f);\n\n return /*#__PURE__*/React.createElement(AspectRatio, {\n ratio: ratio\n }, /*#__PURE__*/React.createElement(Image, _extends({\n ref: ref\n }, props, {\n __css: {\n objectFit: 'cover'\n }\n })));\n});\nvar Container = /*#__PURE__*/React.forwardRef(function Container(props, ref) {\n return /*#__PURE__*/React.createElement(Box, _extends({\n ref: ref,\n variant: \"container\"\n }, props, {\n __themeKey: \"layout\",\n __css: {\n width: '100%',\n maxWidth: 'container',\n mx: 'auto'\n }\n }));\n});\nvar NavLink = /*#__PURE__*/React.forwardRef(function NavLink(props, ref) {\n return /*#__PURE__*/React.createElement(Link, _extends({\n ref: ref,\n variant: \"nav\"\n }, props, {\n __css: {\n color: 'inherit',\n textDecoration: 'none',\n fontWeight: 'bold',\n display: 'inline-block',\n '&:hover, &:focus, &.active': {\n color: 'primary'\n }\n }\n }));\n});\nvar Message = /*#__PURE__*/React.forwardRef(function Message(props, ref) {\n return /*#__PURE__*/React.createElement(Box, _extends({\n ref: ref\n }, props, {\n __themeKey: \"messages\",\n __css: {\n padding: 3,\n paddingLeft: function paddingLeft(t) {\n return t.space[3] - t.space[1];\n },\n borderLeftWidth: function borderLeftWidth(t) {\n return t.space[1];\n },\n borderLeftStyle: 'solid',\n borderLeftColor: 'primary',\n borderRadius: 4,\n bg: 'highlight'\n }\n }));\n});\n\nvar MenuIcon = function MenuIcon(_ref) {\n var _ref$size = _ref.size,\n size = _ref$size === void 0 ? 24 : _ref$size;\n return /*#__PURE__*/React.createElement(Box, {\n as: \"svg\",\n xmlns: \"http://www.w3.org/2000/svg\",\n width: size,\n height: size,\n fill: \"currentcolor\",\n viewBox: \"0 0 24 24\",\n sx: {\n display: 'block',\n margin: 0\n }\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z\"\n }));\n};\n\nvar MenuButton = /*#__PURE__*/React.forwardRef(function MenuButton(props, ref) {\n return /*#__PURE__*/React.createElement(IconButton, _extends({\n ref: ref,\n title: \"Menu\",\n \"aria-label\": \"Toggle Menu\",\n variant: \"menu\"\n }, props), /*#__PURE__*/React.createElement(MenuIcon, null));\n});\nexport { Alert, AspectImage, AspectRatio, Avatar, Badge, Box, Button, Card, Checkbox, Close, Container, Divider, Donut, Embed, Field, Flex, Grid, Heading, IconButton, Image, Input, Label, Link, MenuButton, Message, NavLink, Paragraph, Progress, Radio, Select, Slider, Spinner, Switch, Text, Textarea };","import { css } from '@theme-ui/css';\n\nvar getCSS = function getCSS(props) {\n return function (theme) {\n var styles = css(props.sx)(theme);\n var raw = typeof props.css === 'function' ? props.css(theme) : props.css;\n return [styles, raw];\n };\n};\n\nvar parseProps = function parseProps(props) {\n if (!props || !props.sx && !props.css) return props;\n var next = {};\n\n for (var key in props) {\n if (key === 'sx') continue;\n next[key] = props[key];\n }\n\n next.css = getCSS(props);\n return next;\n};\n\nexport default parseProps;","import { jsx as jsx$1, ThemeContext } from '@emotion/react';\nimport { createContext, useContext } from 'react';\nimport deepmerge from 'deepmerge';\nimport packageInfo from '@emotion/react/package.json';\nimport parseProps from '@theme-ui/parse-props';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar __EMOTION_VERSION__ = packageInfo.version;\n\nvar jsx = function jsx(type, props) {\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 jsx$1.apply(void 0, [type, parseProps(props)].concat(children));\n};\n/**\n * @internal for Babel JSX pragma\n * @see https://github.com/system-ui/theme-ui/issues/1603\n */\n\n\nvar createElement = jsx;\n/**\n * @internal\n */\n\nvar __themeUiDefaultContextValue = {\n __EMOTION_VERSION__: __EMOTION_VERSION__,\n theme: {}\n};\n/**\n * @internal\n */\n\nvar __ThemeUIContext = /*#__PURE__*/createContext(__themeUiDefaultContextValue);\n\nvar useThemeUI = function useThemeUI() {\n return useContext(__ThemeUIContext);\n};\n\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\nvar FORWARD_REF = canUseSymbol ? Symbol.for('react.forward_ref') : 0xeac7;\nvar deepmergeOptions = {\n isMergeableObject: function isMergeableObject(n) {\n return !!n && typeof n === 'object' && n.$$typeof !== REACT_ELEMENT && n.$$typeof !== FORWARD_REF;\n },\n arrayMerge: function arrayMerge(_leftArray, rightArray) {\n return rightArray;\n }\n};\n/**\n * Deeply merge themes\n */\n\nvar merge = function merge(a, b) {\n return deepmerge(a, b, deepmergeOptions);\n};\n\nfunction mergeAll() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return deepmerge.all(args, deepmergeOptions);\n}\n\nmerge.all = mergeAll;\n/**\n * @internal\n */\n\nvar __ThemeUIInternalBaseThemeProvider = function __ThemeUIInternalBaseThemeProvider(_ref) {\n var context = _ref.context,\n children = _ref.children;\n return jsx(ThemeContext.Provider, {\n value: context.theme\n }, jsx(__ThemeUIContext.Provider, {\n value: context,\n children: children\n }));\n};\n\nfunction ThemeProvider(_ref2) {\n var theme = _ref2.theme,\n children = _ref2.children;\n var outer = useThemeUI();\n\n if (process.env.NODE_ENV !== 'production') {\n if (outer.__EMOTION_VERSION__ !== __EMOTION_VERSION__) {\n console.warn('Multiple versions of Emotion detected,', 'and theming might not work as expected.', 'Please ensure there is only one copy of @emotion/react installed in your application.');\n }\n }\n\n var context = typeof theme === 'function' ? _extends({}, outer, {\n theme: theme(outer.theme)\n }) : merge.all({}, outer, {\n theme: theme\n });\n return jsx(__ThemeUIInternalBaseThemeProvider, {\n context: context,\n children: children\n });\n}\n\nexport { ThemeProvider, __ThemeUIContext, __ThemeUIInternalBaseThemeProvider, __themeUiDefaultContextValue, createElement, jsx, merge, useThemeUI };","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/**\n * Allows for nested scales with shorthand values\n * @example\n * {\n * colors: {\n * primary: { __default: '#00f', light: '#33f' }\n * }\n * }\n * css({ color: 'primary' }); // { color: '#00f' }\n * css({ color: 'primary.light' }) // { color: '#33f' }\n */\n\n\nvar THEME_UI_DEFAULT_KEY = '__default';\n\nvar hasDefault = function hasDefault(x) {\n return typeof x === 'object' && x !== null && THEME_UI_DEFAULT_KEY in x;\n};\n/**\n * Extracts value under path from a deeply nested object.\n * Used for Themes, variants and Theme UI style objects.\n * Given a path to object with `__default` key, returns the value under that key.\n *\n * @param obj a theme, variant or style object\n * @param path path separated with dots (`.`)\n * @param fallback default value returned if get(obj, path) is not found\n */\n\n\nfunction get(obj, path, fallback, p, undef) {\n var pathArray = path && typeof path === 'string' ? path.split('.') : [path];\n\n for (p = 0; p < pathArray.length; p++) {\n obj = obj ? obj[pathArray[p]] : undef;\n }\n\n if (obj === undef) return fallback;\n return hasDefault(obj) ? obj[THEME_UI_DEFAULT_KEY] : obj;\n}\n\nvar getObjectWithVariants = function getObjectWithVariants(obj, theme) {\n if (obj && obj['variant']) {\n var result = {};\n\n for (var key in obj) {\n var x = obj[key];\n\n if (key === 'variant') {\n var val = typeof x === 'function' ? x(theme) : x;\n var variant = getObjectWithVariants(get(theme, val), theme);\n result = _extends({}, result, variant);\n } else {\n result[key] = x;\n }\n }\n\n return result;\n }\n\n return obj;\n};\n\nvar defaultBreakpoints = [40, 52, 64].map(function (n) {\n return n + 'em';\n});\nvar defaultTheme = {\n space: [0, 4, 8, 16, 32, 64, 128, 256, 512],\n fontSizes: [12, 14, 16, 20, 24, 32, 48, 64, 72]\n};\nvar aliases = {\n bg: 'backgroundColor',\n m: 'margin',\n mt: 'marginTop',\n mr: 'marginRight',\n mb: 'marginBottom',\n ml: 'marginLeft',\n mx: 'marginX',\n my: 'marginY',\n p: 'padding',\n pt: 'paddingTop',\n pr: 'paddingRight',\n pb: 'paddingBottom',\n pl: 'paddingLeft',\n px: 'paddingX',\n py: 'paddingY'\n};\nvar multiples = {\n marginX: ['marginLeft', 'marginRight'],\n marginY: ['marginTop', 'marginBottom'],\n paddingX: ['paddingLeft', 'paddingRight'],\n paddingY: ['paddingTop', 'paddingBottom'],\n scrollMarginX: ['scrollMarginLeft', 'scrollMarginRight'],\n scrollMarginY: ['scrollMarginTop', 'scrollMarginBottom'],\n scrollPaddingX: ['scrollPaddingLeft', 'scrollPaddingRight'],\n scrollPaddingY: ['scrollPaddingTop', 'scrollPaddingBottom'],\n size: ['width', 'height']\n};\nvar scales = {\n color: 'colors',\n backgroundColor: 'colors',\n borderColor: 'colors',\n caretColor: 'colors',\n columnRuleColor: 'colors',\n textDecorationColor: 'colors',\n opacity: 'opacities',\n transition: 'transitions',\n margin: 'space',\n marginTop: 'space',\n marginRight: 'space',\n marginBottom: 'space',\n marginLeft: 'space',\n marginX: 'space',\n marginY: 'space',\n marginBlock: 'space',\n marginBlockEnd: 'space',\n marginBlockStart: 'space',\n marginInline: 'space',\n marginInlineEnd: 'space',\n marginInlineStart: 'space',\n padding: 'space',\n paddingTop: 'space',\n paddingRight: 'space',\n paddingBottom: 'space',\n paddingLeft: 'space',\n paddingX: 'space',\n paddingY: 'space',\n paddingBlock: 'space',\n paddingBlockEnd: 'space',\n paddingBlockStart: 'space',\n paddingInline: 'space',\n paddingInlineEnd: 'space',\n paddingInlineStart: 'space',\n scrollMargin: 'space',\n scrollMarginTop: 'space',\n scrollMarginRight: 'space',\n scrollMarginBottom: 'space',\n scrollMarginLeft: 'space',\n scrollMarginX: 'space',\n scrollMarginY: 'space',\n scrollPadding: 'space',\n scrollPaddingTop: 'space',\n scrollPaddingRight: 'space',\n scrollPaddingBottom: 'space',\n scrollPaddingLeft: 'space',\n scrollPaddingX: 'space',\n scrollPaddingY: 'space',\n inset: 'space',\n insetBlock: 'space',\n insetBlockEnd: 'space',\n insetBlockStart: 'space',\n insetInline: 'space',\n insetInlineEnd: 'space',\n insetInlineStart: 'space',\n top: 'space',\n right: 'space',\n bottom: 'space',\n left: 'space',\n gridGap: 'space',\n gridColumnGap: 'space',\n gridRowGap: 'space',\n gap: 'space',\n columnGap: 'space',\n rowGap: 'space',\n fontFamily: 'fonts',\n fontSize: 'fontSizes',\n fontWeight: 'fontWeights',\n lineHeight: 'lineHeights',\n letterSpacing: 'letterSpacings',\n border: 'borders',\n borderTop: 'borders',\n borderRight: 'borders',\n borderBottom: 'borders',\n borderLeft: 'borders',\n borderWidth: 'borderWidths',\n borderStyle: 'borderStyles',\n borderRadius: 'radii',\n borderTopRightRadius: 'radii',\n borderTopLeftRadius: 'radii',\n borderBottomRightRadius: 'radii',\n borderBottomLeftRadius: 'radii',\n borderTopWidth: 'borderWidths',\n borderTopColor: 'colors',\n borderTopStyle: 'borderStyles',\n borderBottomWidth: 'borderWidths',\n borderBottomColor: 'colors',\n borderBottomStyle: 'borderStyles',\n borderLeftWidth: 'borderWidths',\n borderLeftColor: 'colors',\n borderLeftStyle: 'borderStyles',\n borderRightWidth: 'borderWidths',\n borderRightColor: 'colors',\n borderRightStyle: 'borderStyles',\n borderBlock: 'borders',\n borderBlockColor: 'colors',\n borderBlockEnd: 'borders',\n borderBlockEndColor: 'colors',\n borderBlockEndStyle: 'borderStyles',\n borderBlockEndWidth: 'borderWidths',\n borderBlockStart: 'borders',\n borderBlockStartColor: 'colors',\n borderBlockStartStyle: 'borderStyles',\n borderBlockStartWidth: 'borderWidths',\n borderBlockStyle: 'borderStyles',\n borderBlockWidth: 'borderWidths',\n borderEndEndRadius: 'radii',\n borderEndStartRadius: 'radii',\n borderInline: 'borders',\n borderInlineColor: 'colors',\n borderInlineEnd: 'borders',\n borderInlineEndColor: 'colors',\n borderInlineEndStyle: 'borderStyles',\n borderInlineEndWidth: 'borderWidths',\n borderInlineStart: 'borders',\n borderInlineStartColor: 'colors',\n borderInlineStartStyle: 'borderStyles',\n borderInlineStartWidth: 'borderWidths',\n borderInlineStyle: 'borderStyles',\n borderInlineWidth: 'borderWidths',\n borderStartEndRadius: 'radii',\n borderStartStartRadius: 'radii',\n columnRuleWidth: 'borderWidths',\n outlineColor: 'colors',\n boxShadow: 'shadows',\n textShadow: 'shadows',\n zIndex: 'zIndices',\n width: 'sizes',\n minWidth: 'sizes',\n maxWidth: 'sizes',\n height: 'sizes',\n minHeight: 'sizes',\n maxHeight: 'sizes',\n flexBasis: 'sizes',\n size: 'sizes',\n blockSize: 'sizes',\n inlineSize: 'sizes',\n maxBlockSize: 'sizes',\n maxInlineSize: 'sizes',\n minBlockSize: 'sizes',\n minInlineSize: 'sizes',\n columnWidth: 'sizes',\n // svg\n fill: 'colors',\n stroke: 'colors'\n};\n\nvar positiveOrNegative = function positiveOrNegative(scale, value) {\n if (typeof value !== 'number' || value >= 0) {\n if (typeof value === 'string' && value.startsWith('-')) {\n var valueWithoutMinus = value.substring(1);\n\n var _n = get(scale, valueWithoutMinus, valueWithoutMinus);\n\n if (typeof _n === 'number') {\n return _n * -1;\n }\n\n return \"-\" + _n;\n }\n\n return get(scale, value, value);\n }\n\n var absolute = Math.abs(value);\n var n = get(scale, absolute, absolute);\n if (typeof n === 'string') return '-' + n;\n return Number(n) * -1;\n};\n\nvar transforms = ['margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'marginBlock', 'marginBlockEnd', 'marginBlockStart', 'marginInline', 'marginInlineEnd', 'marginInlineStart', 'top', 'bottom', 'left', 'right'].reduce(function (acc, curr) {\n var _extends2;\n\n return _extends({}, acc, (_extends2 = {}, _extends2[curr] = positiveOrNegative, _extends2));\n}, {});\n\nvar responsive = function responsive(styles) {\n return function (theme) {\n var next = {};\n var breakpoints = theme && theme.breakpoints || defaultBreakpoints;\n var mediaQueries = [null].concat(breakpoints.map(function (n) {\n return n.includes('@media') ? n : \"@media screen and (min-width: \" + n + \")\";\n }));\n\n for (var k in styles) {\n var key = k;\n var value = styles[key];\n\n if (typeof value === 'function') {\n value = value(theme || {});\n }\n\n if (value === false || value == null) {\n continue;\n }\n\n if (!Array.isArray(value)) {\n next[key] = value;\n continue;\n }\n\n for (var i = 0; i < value.slice(0, mediaQueries.length).length; i++) {\n var media = mediaQueries[i];\n\n if (!media) {\n next[key] = value[i];\n continue;\n }\n\n next[media] = next[media] || {};\n if (value[i] == null) continue;\n next[media][key] = value[i];\n }\n }\n\n return next;\n };\n};\n\nvar css = function css(args) {\n if (args === void 0) {\n args = {};\n }\n\n return function (props) {\n if (props === void 0) {\n props = {};\n }\n\n var theme = _extends({}, defaultTheme, 'theme' in props ? props.theme : props); // insert variant props before responsive styles, so they can be merged\n // we need to maintain order of the style props, so if a variant is place in the middle\n // of other props, it will extends its props at that same location order.\n\n\n var obj = getObjectWithVariants(typeof args === 'function' ? args(theme) : args, theme);\n var styles = responsive(obj)(theme);\n var result = {};\n\n for (var key in styles) {\n var x = styles[key];\n var val = typeof x === 'function' ? x(theme) : x;\n\n if (val && typeof val === 'object') {\n if (hasDefault(val)) {\n result[key] = val[THEME_UI_DEFAULT_KEY];\n continue;\n } // On type level, val can also be an array here,\n // but we transform all arrays in `responsive` function.\n\n\n result[key] = css(val)(theme);\n continue;\n }\n\n var prop = key in aliases ? aliases[key] : key;\n var scaleName = prop in scales ? scales[prop] : undefined;\n var scale = scaleName ? theme == null ? void 0 : theme[scaleName] : get(theme, prop, {});\n var transform = get(transforms, prop, get);\n var value = transform(scale, val, val);\n\n if (prop in multiples) {\n var dirs = multiples[prop];\n\n for (var i = 0; i < dirs.length; i++) {\n result[dirs[i]] = value;\n }\n } else {\n result[prop] = value;\n }\n }\n\n return result;\n };\n};\n\nexport { THEME_UI_DEFAULT_KEY, css, defaultBreakpoints, get, getObjectWithVariants, multiples, scales };","(function () {\n \"use strict\";\n\n var e = {\n n: function n(_n) {\n var t = _n && _n.__esModule ? function () {\n return _n.default;\n } : function () {\n return _n;\n };\n return e.d(t, {\n a: t\n }), t;\n },\n d: function d(n, t) {\n for (var r in t) {\n e.o(t, r) && !e.o(n, r) && Object.defineProperty(n, r, {\n enumerable: !0,\n get: t[r]\n });\n }\n },\n o: function o(e, n) {\n return Object.prototype.hasOwnProperty.call(e, n);\n },\n r: function r(e) {\n \"undefined\" != typeof Symbol && Symbol.toStringTag && Object.defineProperty(e, Symbol.toStringTag, {\n value: \"Module\"\n }), Object.defineProperty(e, \"__esModule\", {\n value: !0\n });\n }\n },\n n = {};\n e.r(n), e.d(n, {\n FlagContext: function FlagContext() {\n return o;\n },\n FlagProvider: function FlagProvider() {\n return a;\n },\n InMemoryStorageProvider: function InMemoryStorageProvider() {\n return t.InMemoryStorageProvider;\n },\n LocalStorageProvider: function LocalStorageProvider() {\n return t.LocalStorageProvider;\n },\n UnleashClient: function UnleashClient() {\n return t.UnleashClient;\n },\n default: function _default() {\n return v;\n },\n useFlag: function useFlag() {\n return i;\n },\n useFlags: function useFlags() {\n return l;\n },\n useFlagsStatus: function useFlagsStatus() {\n return c;\n },\n useUnleashClient: function useUnleashClient() {\n return d;\n },\n useUnleashContext: function useUnleashContext() {\n return s;\n },\n useVariant: function useVariant() {\n return f;\n }\n });\n\n var t = require(\"unleash-proxy-client\"),\n r = require(\"react\"),\n o = e.n(r)().createContext(null);\n\n var u = {\n bootstrap: [],\n disableRefresh: !0,\n disableMetrics: !0,\n url: \"http://localhost\",\n appName: \"offline\",\n clientKey: \"not-used\"\n };\n\n var a = function a(e) {\n var n = e.config,\n a = e.children,\n i = e.unleashClient,\n l = e.startClient,\n c = void 0 === l || l,\n f = n || u,\n s = r.useRef(i || new t.UnleashClient(f)),\n d = r.useState(Boolean(i ? (null == n ? void 0 : n.bootstrap) && !1 !== (null == n ? void 0 : n.bootstrapOverride) : f.bootstrap && !1 !== f.bootstrapOverride)),\n v = d[0],\n p = d[1],\n b = r.useState(null),\n g = b[0],\n y = b[1],\n h = r.useRef(null);\n r.useEffect(function () {\n f || i || console.error(\"You must provide either a config or an unleash client to the flag provider.\\n If you are initializing the client in useEffect, you can avoid this warning\\n by checking if the client exists before rendering.\");\n\n var e,\n n = function n(e) {\n h.current = e, null === h.current && y(e);\n },\n t = function t() {\n e = setTimeout(function () {\n p(!0);\n }, 0);\n };\n\n return s.current.on(\"ready\", t), s.current.on(\"error\", n), (c || !i) && (s.current.stop(), s.current.start()), function () {\n s.current && (s.current.off(\"error\", n), s.current.off(\"ready\", t), s.current.stop()), e && clearTimeout(e);\n };\n }, []);\n\n var m = function m(e) {\n return n = void 0, t = void 0, o = function o() {\n return function (e, n) {\n var t,\n r,\n o,\n u,\n a = {\n label: 0,\n sent: function sent() {\n if (1 & o[0]) throw o[1];\n return o[1];\n },\n trys: [],\n ops: []\n };\n return u = {\n next: i(0),\n throw: i(1),\n return: i(2)\n }, \"function\" == typeof Symbol && (u[Symbol.iterator] = function () {\n return this;\n }), u;\n\n function i(u) {\n return function (i) {\n return function (u) {\n if (t) throw new TypeError(\"Generator is already executing.\");\n\n for (; a;) {\n try {\n if (t = 1, r && (o = 2 & u[0] ? r.return : u[0] ? r.throw || ((o = r.return) && o.call(r), 0) : r.next) && !(o = o.call(r, u[1])).done) return o;\n\n switch (r = 0, o && (u = [2 & u[0], o.value]), u[0]) {\n case 0:\n case 1:\n o = u;\n break;\n\n case 4:\n return a.label++, {\n value: u[1],\n done: !1\n };\n\n case 5:\n a.label++, r = u[1], u = [0];\n continue;\n\n case 7:\n u = a.ops.pop(), a.trys.pop();\n continue;\n\n default:\n if (!((o = (o = a.trys).length > 0 && o[o.length - 1]) || 6 !== u[0] && 2 !== u[0])) {\n a = 0;\n continue;\n }\n\n if (3 === u[0] && (!o || u[1] > o[0] && u[1] < o[3])) {\n a.label = u[1];\n break;\n }\n\n if (6 === u[0] && a.label < o[1]) {\n a.label = o[1], o = u;\n break;\n }\n\n if (o && a.label < o[2]) {\n a.label = o[2], a.ops.push(u);\n break;\n }\n\n o[2] && a.ops.pop(), a.trys.pop();\n continue;\n }\n\n u = n.call(e, a);\n } catch (e) {\n u = [6, e], r = 0;\n } finally {\n t = o = 0;\n }\n }\n\n if (5 & u[0]) throw u[1];\n return {\n value: u[0] ? u[1] : void 0,\n done: !0\n };\n }([u, i]);\n };\n }\n }(this, function (n) {\n switch (n.label) {\n case 0:\n return [4, s.current.updateContext(e)];\n\n case 1:\n return n.sent(), [2];\n }\n });\n }, new ((r = void 0) || (r = Promise))(function (e, u) {\n function a(e) {\n try {\n l(o.next(e));\n } catch (e) {\n u(e);\n }\n }\n\n function i(e) {\n try {\n l(o.throw(e));\n } catch (e) {\n u(e);\n }\n }\n\n function l(n) {\n var t;\n n.done ? e(n.value) : (t = n.value, t instanceof r ? t : new r(function (e) {\n e(t);\n })).then(a, i);\n }\n\n l((o = o.apply(n, t || [])).next());\n });\n var n, t, r, o;\n },\n x = function x(e) {\n return s.current.isEnabled(e);\n },\n C = function C(e) {\n return s.current.getVariant(e);\n },\n S = function S(e, n, t) {\n return s.current.on(e, n, t);\n },\n w = r.useMemo(function () {\n return {\n on: S,\n updateContext: m,\n isEnabled: x,\n getVariant: C,\n client: s.current,\n flagsReady: v,\n flagsError: g,\n setFlagsReady: p,\n setFlagsError: y\n };\n }, [v, g]);\n\n return r.createElement(o.Provider, {\n value: w\n }, a);\n },\n i = function i(e) {\n var n = (0, r.useContext)(o),\n t = n.isEnabled,\n u = n.client,\n a = (0, r.useState)(!!t(e)),\n i = a[0],\n l = a[1],\n c = (0, r.useRef)();\n return c.current = i, (0, r.useEffect)(function () {\n if (u) {\n var n = function n() {\n var n = t(e);\n n !== c.current && (c.current = n, l(!!n));\n },\n r = function r() {\n var n = t(e);\n c.current = n, l(n);\n };\n\n return u.on(\"update\", n), u.on(\"ready\", r), function () {\n u.off(\"update\", n), u.off(\"ready\", r);\n };\n }\n }, [u]), i;\n },\n l = function l() {\n var e = (0, r.useContext)(o).client,\n n = (0, r.useState)(e.getAllToggles()),\n t = n[0],\n u = n[1];\n return (0, r.useEffect)(function () {\n var n = function n() {\n u(e.getAllToggles());\n };\n\n return e.on(\"update\", n), function () {\n e.off(\"update\", n);\n };\n }, []), t;\n },\n c = function c() {\n var e = (0, r.useContext)(o);\n return {\n flagsReady: e.flagsReady,\n flagsError: e.flagsError\n };\n },\n f = function f(e) {\n var n = (0, r.useContext)(o),\n t = n.getVariant,\n u = n.client,\n a = (0, r.useState)(t(e)),\n i = a[0],\n l = a[1],\n c = (0, r.useRef)({\n name: i.name,\n enabled: i.enabled\n });\n return c.current = i, (0, r.useEffect)(function () {\n if (u) {\n var n = function n() {\n var n = t(e);\n c.current.name === (null == n ? void 0 : n.name) && c.current.enabled === (null == n ? void 0 : n.enabled) || (l(n), c.current = n);\n },\n r = function r() {\n var n = t(e);\n c.current.name = null == n ? void 0 : n.name, c.current.enabled = null == n ? void 0 : n.enabled, l(n);\n };\n\n return u.on(\"update\", n), u.on(\"ready\", r), function () {\n u.off(\"update\", n), u.off(\"ready\", r);\n };\n }\n }, [u]), i || {};\n },\n s = function s() {\n return (0, r.useContext)(o).updateContext;\n },\n d = function d() {\n return (0, r.useContext)(o).client;\n },\n v = a;\n\n module.exports = n;\n})();","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\n\nvar settle = require('./../core/settle');\n\nvar cookies = require('./../helpers/cookies');\n\nvar buildURL = require('./../helpers/buildURL');\n\nvar buildFullPath = require('../core/buildFullPath');\n\nvar parseHeaders = require('./../helpers/parseHeaders');\n\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\n\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest(); // HTTP basic authentication\n\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true); // Set the request timeout in MS\n\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n } // Prepare the response\n\n\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n settle(resolve, reject, response); // Clean up request\n\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n } // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n\n\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n } // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n\n\n setTimeout(onloadend);\n };\n } // Handle browser request cancellation (as opposed to a manual cancellation)\n\n\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(createError('Request aborted', config, 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Handle low level network errors\n\n\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request)); // Clean up request\n\n request = null;\n }; // Handle timeout\n\n\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = 'timeout of ' + config.timeout + 'ms exceeded';\n\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n\n reject(createError(timeoutErrorMessage, config, config.transitional && config.transitional.clarifyTimeoutError ? 'ETIMEDOUT' : 'ECONNABORTED', request)); // Clean up request\n\n request = null;\n }; // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n\n\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ? cookies.read(config.xsrfCookieName) : undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n } // Add headers to the request\n\n\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n } // Add withCredentials to request if needed\n\n\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n } // Add responseType to request if needed\n\n\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n } // Handle progress if needed\n\n\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n } // Not all browsers support upload events\n\n\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel); // Clean up request\n\n request = null;\n });\n }\n\n if (!requestData) {\n requestData = null;\n } // Send the request\n\n\n request.send(requestData);\n });\n};","'use strict';\n\nvar utils = require('./utils');\n\nvar bind = require('./helpers/bind');\n\nvar Axios = require('./core/Axios');\n\nvar mergeConfig = require('./core/mergeConfig');\n\nvar defaults = require('./defaults');\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\n\n\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context); // Copy axios.prototype to instance\n\n utils.extend(instance, Axios.prototype, context); // Copy context to instance\n\n utils.extend(instance, context);\n return instance;\n} // Create the default instance to be exported\n\n\nvar axios = createInstance(defaults); // Expose Axios class to allow class inheritance\n\naxios.Axios = Axios; // Factory for creating new instances\n\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n}; // Expose Cancel & CancelToken\n\n\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel'); // Expose all/spread\n\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\n\naxios.spread = require('./helpers/spread'); // Expose isAxiosError\n\naxios.isAxiosError = require('./helpers/isAxiosError');\nmodule.exports = axios; // Allow use of default import syntax in TypeScript\n\nmodule.exports.default = axios;","'use strict';\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\n\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\nmodule.exports = Cancel;","'use strict';\n\nvar Cancel = require('./Cancel');\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\n\n\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\n\n\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};","'use strict';\n\nvar utils = require('./../utils');\n\nvar buildURL = require('../helpers/buildURL');\n\nvar InterceptorManager = require('./InterceptorManager');\n\nvar dispatchRequest = require('./dispatchRequest');\n\nvar mergeConfig = require('./mergeConfig');\n\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\n\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\n\n\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\n }\n\n config = mergeConfig(this.defaults, config); // Set config.method\n\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n forcedJSONParsing: validators.transitional(validators.boolean, '1.0.0'),\n clarifyTimeoutError: validators.transitional(validators.boolean, '1.0.0')\n }, false);\n } // filter out skipped interceptors\n\n\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n promise = Promise.resolve(config);\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n var newConfig = config;\n\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n return buildURL(config.url, config.params, config.paramsSerializer).replace(/^\\?/, '');\n}; // Provide aliases for supported request methods\n\n\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function (url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\nmodule.exports = Axios;","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\n\n\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\n\n\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\n\n\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\n\nvar combineURLs = require('../helpers/combineURLs');\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\n\n\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n\n return requestedURL;\n};","'use strict';\n\nvar enhanceError = require('./enhanceError');\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\n\n\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};","'use strict';\n\nvar utils = require('./../utils');\n\nvar transformData = require('./transformData');\n\nvar isCancel = require('../cancel/isCancel');\n\nvar defaults = require('../defaults');\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\n\n\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\n\n\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config); // Ensure headers exist\n\n config.headers = config.headers || {}; // Transform request data\n\n config.data = transformData.call(config, config.data, config.headers, config.transformRequest); // Flatten headers\n\n config.headers = utils.merge(config.headers.common || {}, config.headers[config.method] || {}, config.headers);\n utils.forEach(['delete', 'get', 'head', 'post', 'put', 'patch', 'common'], function cleanHeaderConfig(method) {\n delete config.headers[method];\n });\n var adapter = config.adapter || defaults.adapter;\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config); // Transform response data\n\n response.data = transformData.call(config, response.data, response.headers, config.transformResponse);\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config); // Transform response data\n\n if (reason && reason.response) {\n reason.response.data = transformData.call(config, reason.response.data, reason.response.headers, config.transformResponse);\n }\n }\n\n return Promise.reject(reason);\n });\n};","'use strict';\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\n\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n\n if (code) {\n error.code = code;\n }\n\n error.request = request;\n error.response = response;\n error.isAxiosError = true;\n\n error.toJSON = function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code\n };\n };\n\n return error;\n};","'use strict';\n\nvar utils = require('../utils');\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\n\n\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = ['baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer', 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName', 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress', 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent', 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'];\n var directMergeKeys = ['validateStatus'];\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n\n return source;\n }\n\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n var axiosKeys = valueFromConfig2Keys.concat(mergeDeepPropertiesKeys).concat(defaultToConfig2Keys).concat(directMergeKeys);\n var otherKeys = Object.keys(config1).concat(Object.keys(config2)).filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n utils.forEach(otherKeys, mergeDeepProperties);\n return config;\n};","'use strict';\n\nvar createError = require('./createError');\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\n\n\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError('Request failed with status code ' + response.status, response.config, null, response.request, response));\n }\n};","'use strict';\n\nvar utils = require('./../utils');\n\nvar defaults = require('./../defaults');\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\n\n\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n return data;\n};","'use strict';\n\nvar utils = require('./utils');\n\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar enhanceError = require('./core/enhanceError');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n transitional: {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n },\n adapter: getDefaultAdapter(),\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) || utils.isArrayBuffer(data) || utils.isBuffer(data) || utils.isStream(data) || utils.isFile(data) || utils.isBlob(data)) {\n return data;\n }\n\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n if (utils.isObject(data) || headers && headers['Content-Type'] === 'application/json') {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n\n return data;\n }],\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || forcedJSONParsing && utils.isString(data) && data.length) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw enhanceError(e, this, 'E_JSON_PARSE');\n }\n\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n maxContentLength: -1,\n maxBodyLength: -1,\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\nmodule.exports = defaults;","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n return fn.apply(thisArg, args);\n };\n};","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).replace(/%3A/gi, ':').replace(/%24/g, '$').replace(/%2C/gi, ',').replace(/%20/g, '+').replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n}\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\n\n\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};","'use strict';\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\n\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '') : baseURL;\n};","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs support document.cookie\nfunction standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return match ? decodeURIComponent(match[3]) : null;\n },\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n}() : // Non standard browser env (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() {\n return null;\n },\n remove: function remove() {}\n };\n}();","'use strict';\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\n\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"<scheme>://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};","'use strict';\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\n\nmodule.exports = function isAxiosError(payload) {\n return typeof payload === 'object' && payload.isAxiosError === true;\n};","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = utils.isStandardBrowserEnv() ? // Standard browser envs have full support of the APIs needed to test\n// whether the request URL is of the same origin as current location.\nfunction standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href); // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: urlParsingNode.pathname.charAt(0) === '/' ? urlParsingNode.pathname : '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n\n return function isURLSameOrigin(requestURL) {\n var parsed = utils.isString(requestURL) ? resolveURL(requestURL) : requestURL;\n return parsed.protocol === originURL.protocol && parsed.host === originURL.host;\n };\n}() : // Non standard browser envs (web workers, react-native) lack needed support.\nfunction nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n}();","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};","'use strict';\n\nvar utils = require('./../utils'); // Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\n\n\nvar ignoreDuplicateOf = ['age', 'authorization', 'content-length', 'content-type', 'etag', 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since', 'last-modified', 'location', 'max-forwards', 'proxy-authorization', 'referer', 'retry-after', 'user-agent'];\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\n\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) {\n return parsed;\n }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n return parsed;\n};","'use strict';\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\n\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};","'use strict';\n\nvar pkg = require('./../../package.json');\n\nvar validators = {}; // eslint-disable-next-line func-names\n\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function (type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\nvar deprecatedWarnings = {};\nvar currentVerArr = pkg.version.split('.');\n/**\n * Compare package versions\n * @param {string} version\n * @param {string?} thanVersion\n * @returns {boolean}\n */\n\nfunction isOlderVersion(version, thanVersion) {\n var pkgVersionArr = thanVersion ? thanVersion.split('.') : currentVerArr;\n var destVer = version.split('.');\n\n for (var i = 0; i < 3; i++) {\n if (pkgVersionArr[i] > destVer[i]) {\n return true;\n } else if (pkgVersionArr[i] < destVer[i]) {\n return false;\n }\n }\n\n return false;\n}\n/**\n * Transitional option validator\n * @param {function|boolean?} validator\n * @param {string?} version\n * @param {string} message\n * @returns {function}\n */\n\n\nvalidators.transitional = function transitional(validator, version, message) {\n var isDeprecated = version && isOlderVersion(version);\n\n function formatMessage(opt, desc) {\n return '[Axios v' + pkg.version + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n } // eslint-disable-next-line func-names\n\n\n return function (value, opt, opts) {\n if (validator === false) {\n throw new Error(formatMessage(opt, ' has been removed in ' + version));\n }\n\n if (isDeprecated && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true; // eslint-disable-next-line no-console\n\n console.warn(formatMessage(opt, ' has been deprecated since v' + version + ' and will be removed in the near future'));\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new TypeError('options must be an object');\n }\n\n var keys = Object.keys(options);\n var i = keys.length;\n\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n\n if (result !== true) {\n throw new TypeError('option ' + opt + ' must be ' + result);\n }\n\n continue;\n }\n\n if (allowUnknown !== true) {\n throw Error('Unknown option ' + opt);\n }\n }\n}\n\nmodule.exports = {\n isOlderVersion: isOlderVersion,\n assertOptions: assertOptions,\n validators: validators\n};","'use strict';\n\nvar bind = require('./helpers/bind'); // utils is a library of generic helper functions non-specific to axios\n\n\nvar toString = Object.prototype.toString;\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\n\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\n\n\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\n\n\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor) && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\n\n\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\n\n\nfunction isFormData(val) {\n return typeof FormData !== 'undefined' && val instanceof FormData;\n}\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\n\n\nfunction isArrayBufferView(val) {\n var result;\n\n if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n result = ArrayBuffer.isView(val);\n } else {\n result = val && val.buffer && val.buffer instanceof ArrayBuffer;\n }\n\n return result;\n}\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\n\n\nfunction isString(val) {\n return typeof val === 'string';\n}\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\n\n\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\n\n\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\n\n\nfunction isPlainObject(val) {\n if (toString.call(val) !== '[object Object]') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\n\n\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\n\n\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\n\n\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\n\n\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\n\n\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\n\n\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\n\n\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\n\n\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' || navigator.product === 'NativeScript' || navigator.product === 'NS')) {\n return false;\n }\n\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\n\n\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n } // Force an array if not already something iterable\n\n\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\n\n\nfunction\n /* obj1, obj2, obj3, ... */\nmerge() {\n var result = {};\n\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n\n return result;\n}\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\n\n\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\n\n\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n\n return content;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM\n};","var _createClass = function () {\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _templateObject = _taggedTemplateLiteral(['', ''], ['', '']);\n\nfunction _taggedTemplateLiteral(strings, raw) {\n return Object.freeze(Object.defineProperties(strings, {\n raw: {\n value: Object.freeze(raw)\n }\n }));\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n/**\n * @class TemplateTag\n * @classdesc Consumes a pipeline of composable transformer plugins and produces a template tag.\n */\n\n\nvar TemplateTag = function () {\n /**\n * constructs a template tag\n * @constructs TemplateTag\n * @param {...Object} [...transformers] - an array or arguments list of transformers\n * @return {Function} - a template tag\n */\n function TemplateTag() {\n var _this = this;\n\n for (var _len = arguments.length, transformers = Array(_len), _key = 0; _key < _len; _key++) {\n transformers[_key] = arguments[_key];\n }\n\n _classCallCheck(this, TemplateTag);\n\n this.tag = function (strings) {\n for (var _len2 = arguments.length, expressions = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n expressions[_key2 - 1] = arguments[_key2];\n }\n\n if (typeof strings === 'function') {\n // if the first argument passed is a function, assume it is a template tag and return\n // an intermediary tag that processes the template using the aforementioned tag, passing the\n // result to our tag\n return _this.interimTag.bind(_this, strings);\n }\n\n if (typeof strings === 'string') {\n // if the first argument passed is a string, just transform it\n return _this.transformEndResult(strings);\n } // else, return a transformed end result of processing the template with our tag\n\n\n strings = strings.map(_this.transformString.bind(_this));\n return _this.transformEndResult(strings.reduce(_this.processSubstitutions.bind(_this, expressions)));\n }; // if first argument is an array, extrude it as a list of transformers\n\n\n if (transformers.length > 0 && Array.isArray(transformers[0])) {\n transformers = transformers[0];\n } // if any transformers are functions, this means they are not initiated - automatically initiate them\n\n\n this.transformers = transformers.map(function (transformer) {\n return typeof transformer === 'function' ? transformer() : transformer;\n }); // return an ES2015 template tag\n\n return this.tag;\n }\n /**\n * Applies all transformers to a template literal tagged with this method.\n * If a function is passed as the first argument, assumes the function is a template tag\n * and applies it to the template, returning a template tag.\n * @param {(Function|String|Array<String>)} strings - Either a template tag or an array containing template strings separated by identifier\n * @param {...*} ...expressions - Optional list of substitution values.\n * @return {(String|Function)} - Either an intermediary tag function or the results of processing the template.\n */\n\n\n _createClass(TemplateTag, [{\n key: 'interimTag',\n\n /**\n * An intermediary template tag that receives a template tag and passes the result of calling the template with the received\n * template tag to our own template tag.\n * @param {Function} nextTag - the received template tag\n * @param {Array<String>} template - the template to process\n * @param {...*} ...substitutions - `substitutions` is an array of all substitutions in the template\n * @return {*} - the final processed value\n */\n value: function interimTag(previousTag, template) {\n for (var _len3 = arguments.length, substitutions = Array(_len3 > 2 ? _len3 - 2 : 0), _key3 = 2; _key3 < _len3; _key3++) {\n substitutions[_key3 - 2] = arguments[_key3];\n }\n\n return this.tag(_templateObject, previousTag.apply(undefined, [template].concat(substitutions)));\n }\n /**\n * Performs bulk processing on the tagged template, transforming each substitution and then\n * concatenating the resulting values into a string.\n * @param {Array<*>} substitutions - an array of all remaining substitutions present in this template\n * @param {String} resultSoFar - this iteration's result string so far\n * @param {String} remainingPart - the template chunk after the current substitution\n * @return {String} - the result of joining this iteration's processed substitution with the result\n */\n\n }, {\n key: 'processSubstitutions',\n value: function processSubstitutions(substitutions, resultSoFar, remainingPart) {\n var substitution = this.transformSubstitution(substitutions.shift(), resultSoFar);\n return ''.concat(resultSoFar, substitution, remainingPart);\n }\n /**\n * Iterate through each transformer, applying the transformer's `onString` method to the template\n * strings before all substitutions are processed.\n * @param {String} str - The input string\n * @return {String} - The final results of processing each transformer\n */\n\n }, {\n key: 'transformString',\n value: function transformString(str) {\n var cb = function cb(res, transform) {\n return transform.onString ? transform.onString(res) : res;\n };\n\n return this.transformers.reduce(cb, str);\n }\n /**\n * When a substitution is encountered, iterates through each transformer and applies the transformer's\n * `onSubstitution` method to the substitution.\n * @param {*} substitution - The current substitution\n * @param {String} resultSoFar - The result up to and excluding this substitution.\n * @return {*} - The final result of applying all substitution transformations.\n */\n\n }, {\n key: 'transformSubstitution',\n value: function transformSubstitution(substitution, resultSoFar) {\n var cb = function cb(res, transform) {\n return transform.onSubstitution ? transform.onSubstitution(res, resultSoFar) : res;\n };\n\n return this.transformers.reduce(cb, substitution);\n }\n /**\n * Iterates through each transformer, applying the transformer's `onEndResult` method to the\n * template literal after all substitutions have finished processing.\n * @param {String} endResult - The processed template, just before it is returned from the tag\n * @return {String} - The final results of processing each transformer\n */\n\n }, {\n key: 'transformEndResult',\n value: function transformEndResult(endResult) {\n var cb = function cb(res, transform) {\n return transform.onEndResult ? transform.onEndResult(res) : res;\n };\n\n return this.transformers.reduce(cb, endResult);\n }\n }]);\n\n return TemplateTag;\n}();\n\nexport default TemplateTag;","var defaults = {\n separator: '',\n conjunction: '',\n serial: false\n};\n/**\n * Converts an array substitution to a string containing a list\n * @param {String} [opts.separator = ''] - the character that separates each item\n * @param {String} [opts.conjunction = ''] - replace the last separator with this\n * @param {Boolean} [opts.serial = false] - include the separator before the conjunction? (Oxford comma use-case)\n *\n * @return {Object} - a TemplateTag transformer\n */\n\nvar inlineArrayTransformer = function inlineArrayTransformer() {\n var opts = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : defaults;\n return {\n onSubstitution: function onSubstitution(substitution, resultSoFar) {\n // only operate on arrays\n if (Array.isArray(substitution)) {\n var arrayLength = substitution.length;\n var separator = opts.separator;\n var conjunction = opts.conjunction;\n var serial = opts.serial; // join each item in the array into a string where each item is separated by separator\n // be sure to maintain indentation\n\n var indent = resultSoFar.match(/(\\n?[^\\S\\n]+)$/);\n\n if (indent) {\n substitution = substitution.join(separator + indent[1]);\n } else {\n substitution = substitution.join(separator + ' ');\n } // if conjunction is set, replace the last separator with conjunction, but only if there is more than one substitution\n\n\n if (conjunction && arrayLength > 1) {\n var separatorIndex = substitution.lastIndexOf(separator);\n substitution = substitution.slice(0, separatorIndex) + (serial ? separator : '') + ' ' + conjunction + substitution.slice(separatorIndex + 1);\n }\n }\n\n return substitution;\n }\n };\n};\n\nexport default inlineArrayTransformer;","function _toConsumableArray(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return Array.from(arr);\n }\n}\n/**\n * strips indentation from a template literal\n * @param {String} type = 'initial' - whether to remove all indentation or just leading indentation. can be 'all' or 'initial'\n * @return {Object} - a TemplateTag transformer\n */\n\n\nvar stripIndentTransformer = function stripIndentTransformer() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'initial';\n return {\n onEndResult: function onEndResult(endResult) {\n if (type === 'initial') {\n // remove the shortest leading indentation from each line\n var match = endResult.match(/^[^\\S\\n]*(?=\\S)/gm);\n var indent = match && Math.min.apply(Math, _toConsumableArray(match.map(function (el) {\n return el.length;\n })));\n\n if (indent) {\n var regexp = new RegExp('^.{' + indent + '}', 'gm');\n return endResult.replace(regexp, '');\n }\n\n return endResult;\n }\n\n if (type === 'all') {\n // remove all indentation from each line\n return endResult.replace(/^[^\\S\\n]+/gm, '');\n }\n\n throw new Error('Unknown type: ' + type);\n }\n };\n};\n\nexport default stripIndentTransformer;","/**\n * TemplateTag transformer that trims whitespace on the end result of a tagged template\n * @param {String} side = '' - The side of the string to trim. Can be 'start' or 'end' (alternatively 'left' or 'right')\n * @return {Object} - a TemplateTag transformer\n */\nvar trimResultTransformer = function trimResultTransformer() {\n var side = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return {\n onEndResult: function onEndResult(endResult) {\n if (side === '') {\n return endResult.trim();\n }\n\n side = side.toLowerCase();\n\n if (side === 'start' || side === 'left') {\n return endResult.replace(/^\\s*/, '');\n }\n\n if (side === 'end' || side === 'right') {\n return endResult.replace(/\\s*$/, '');\n }\n\n throw new Error('Side not supported: ' + side);\n }\n };\n};\n\nexport default trimResultTransformer;","var splitStringTransformer = function splitStringTransformer(splitBy) {\n return {\n onSubstitution: function onSubstitution(substitution, resultSoFar) {\n if (splitBy != null && typeof splitBy === 'string') {\n if (typeof substitution === 'string' && substitution.includes(splitBy)) {\n substitution = substitution.split(splitBy);\n }\n } else {\n throw new Error('You need to specify a string character to split by.');\n }\n\n return substitution;\n }\n };\n};\n\nexport default splitStringTransformer;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nvar commaLists = new TemplateTag(inlineArrayTransformer({\n separator: ','\n}), stripIndentTransformer, trimResultTransformer);\nexport default commaLists;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nvar commaListsAnd = new TemplateTag(inlineArrayTransformer({\n separator: ',',\n conjunction: 'and'\n}), stripIndentTransformer, trimResultTransformer);\nexport default commaListsAnd;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nvar commaListsOr = new TemplateTag(inlineArrayTransformer({\n separator: ',',\n conjunction: 'or'\n}), stripIndentTransformer, trimResultTransformer);\nexport default commaListsOr;","var isValidValue = function isValidValue(x) {\n return x != null && !Number.isNaN(x) && typeof x !== 'boolean';\n};\n\nvar removeNonPrintingValuesTransformer = function removeNonPrintingValuesTransformer() {\n return {\n onSubstitution: function onSubstitution(substitution) {\n if (Array.isArray(substitution)) {\n return substitution.filter(isValidValue);\n }\n\n if (isValidValue(substitution)) {\n return substitution;\n }\n\n return '';\n }\n };\n};\n\nexport default removeNonPrintingValuesTransformer;","var replaceSubstitutionTransformer = function replaceSubstitutionTransformer(replaceWhat, replaceWith) {\n return {\n onSubstitution: function onSubstitution(substitution, resultSoFar) {\n if (replaceWhat == null || replaceWith == null) {\n throw new Error('replaceSubstitutionTransformer requires at least 2 arguments.');\n } // Do not touch if null or undefined\n\n\n if (substitution == null) {\n return substitution;\n } else {\n return substitution.toString().replace(replaceWhat, replaceWith);\n }\n }\n };\n};\n\nexport default replaceSubstitutionTransformer;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport splitStringTransformer from '../splitStringTransformer';\nimport removeNonPrintingValuesTransformer from '../removeNonPrintingValuesTransformer';\nvar html = new TemplateTag(splitStringTransformer('\\n'), removeNonPrintingValuesTransformer, inlineArrayTransformer, stripIndentTransformer, trimResultTransformer);\nexport default html;","/**\n * Replaces tabs, newlines and spaces with the chosen value when they occur in sequences\n * @param {(String|RegExp)} replaceWhat - the value or pattern that should be replaced\n * @param {*} replaceWith - the replacement value\n * @return {Object} - a TemplateTag transformer\n */\nvar replaceResultTransformer = function replaceResultTransformer(replaceWhat, replaceWith) {\n return {\n onEndResult: function onEndResult(endResult) {\n if (replaceWhat == null || replaceWith == null) {\n throw new Error('replaceResultTransformer requires at least 2 arguments.');\n }\n\n return endResult.replace(replaceWhat, replaceWith);\n }\n };\n};\n\nexport default replaceResultTransformer;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport splitStringTransformer from '../splitStringTransformer';\nimport replaceSubstitutionTransformer from '../replaceSubstitutionTransformer';\nvar safeHtml = new TemplateTag(splitStringTransformer('\\n'), inlineArrayTransformer, stripIndentTransformer, trimResultTransformer, replaceSubstitutionTransformer(/&/g, '&'), replaceSubstitutionTransformer(/</g, '<'), replaceSubstitutionTransformer(/>/g, '>'), replaceSubstitutionTransformer(/\"/g, '"'), replaceSubstitutionTransformer(/'/g, '''), replaceSubstitutionTransformer(/`/g, '`'));\nexport default safeHtml;","import TemplateTag from '../TemplateTag';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\nvar oneLine = new TemplateTag(replaceResultTransformer(/(?:\\n(?:\\s*))+/g, ' '), trimResultTransformer);\nexport default oneLine;","import TemplateTag from '../TemplateTag';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\nvar oneLineTrim = new TemplateTag(replaceResultTransformer(/(?:\\n\\s*)/g, ''), trimResultTransformer);\nexport default oneLineTrim;","import TemplateTag from '../TemplateTag';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\nvar oneLineCommaLists = new TemplateTag(inlineArrayTransformer({\n separator: ','\n}), replaceResultTransformer(/(?:\\s+)/g, ' '), trimResultTransformer);\nexport default oneLineCommaLists;","import TemplateTag from '../TemplateTag';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\nvar oneLineCommaListsOr = new TemplateTag(inlineArrayTransformer({\n separator: ',',\n conjunction: 'or'\n}), replaceResultTransformer(/(?:\\s+)/g, ' '), trimResultTransformer);\nexport default oneLineCommaListsOr;","import TemplateTag from '../TemplateTag';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\nvar oneLineCommaListsAnd = new TemplateTag(inlineArrayTransformer({\n separator: ',',\n conjunction: 'and'\n}), replaceResultTransformer(/(?:\\s+)/g, ' '), trimResultTransformer);\nexport default oneLineCommaListsAnd;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nvar inlineLists = new TemplateTag(inlineArrayTransformer, stripIndentTransformer, trimResultTransformer);\nexport default inlineLists;","import TemplateTag from '../TemplateTag';\nimport inlineArrayTransformer from '../inlineArrayTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nimport replaceResultTransformer from '../replaceResultTransformer';\nvar oneLineInlineLists = new TemplateTag(inlineArrayTransformer, replaceResultTransformer(/(?:\\s+)/g, ' '), trimResultTransformer);\nexport default oneLineInlineLists;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nvar stripIndent = new TemplateTag(stripIndentTransformer, trimResultTransformer);\nexport default stripIndent;","import TemplateTag from '../TemplateTag';\nimport stripIndentTransformer from '../stripIndentTransformer';\nimport trimResultTransformer from '../trimResultTransformer';\nvar stripIndents = new TemplateTag(stripIndentTransformer('all'), trimResultTransformer);\nexport default stripIndents;","'use strict';\n\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp(token, 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n try {\n // Try to decode the entire string first\n return decodeURIComponent(components.join(''));\n } catch (err) {// Do nothing\n }\n\n if (components.length === 1) {\n return components;\n }\n\n split = split || 1; // Split the array in 2 parts\n\n var left = components.slice(0, split);\n var right = components.slice(split);\n return Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n try {\n return decodeURIComponent(input);\n } catch (err) {\n var tokens = input.match(singleMatcher);\n\n for (var i = 1; i < tokens.length; i++) {\n input = decodeComponents(tokens, i).join('');\n tokens = input.match(singleMatcher);\n }\n\n return input;\n }\n}\n\nfunction customDecodeURIComponent(input) {\n // Keep track of all the replacements and prefill the map with the `BOM`\n var replaceMap = {\n '%FE%FF': \"\\uFFFD\\uFFFD\",\n '%FF%FE': \"\\uFFFD\\uFFFD\"\n };\n var match = multiMatcher.exec(input);\n\n while (match) {\n try {\n // Decode as big chunks as possible\n replaceMap[match[0]] = decodeURIComponent(match[0]);\n } catch (err) {\n var result = decode(match[0]);\n\n if (result !== match[0]) {\n replaceMap[match[0]] = result;\n }\n }\n\n match = multiMatcher.exec(input);\n } // Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\n\n replaceMap['%C2'] = \"\\uFFFD\";\n var entries = Object.keys(replaceMap);\n\n for (var i = 0; i < entries.length; i++) {\n // Replace all decoded components\n var key = entries[i];\n input = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n }\n\n return input;\n}\n\nmodule.exports = function (encodedURI) {\n if (typeof encodedURI !== 'string') {\n throw new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n }\n\n try {\n encodedURI = encodedURI.replace(/\\+/g, ' '); // Try the built in decoder first\n\n return decodeURIComponent(encodedURI);\n } catch (err) {\n // Fallback to a more advanced decoder\n return customDecodeURIComponent(encodedURI);\n }\n};","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n return isNonNullObject(value) && !isSpecial(value);\n};\n\nfunction isNonNullObject(value) {\n return !!value && typeof value === 'object';\n}\n\nfunction isSpecial(value) {\n var stringValue = Object.prototype.toString.call(value);\n return stringValue === '[object RegExp]' || stringValue === '[object Date]' || isReactElement(value);\n} // see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\n\n\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n return value.$$typeof === REACT_ELEMENT_TYPE;\n}\n\nfunction emptyTarget(val) {\n return Array.isArray(val) ? [] : {};\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n return options.clone !== false && options.isMergeableObject(value) ? deepmerge(emptyTarget(value), value, options) : value;\n}\n\nfunction defaultArrayMerge(target, source, options) {\n return target.concat(source).map(function (element) {\n return cloneUnlessOtherwiseSpecified(element, options);\n });\n}\n\nfunction getMergeFunction(key, options) {\n if (!options.customMerge) {\n return deepmerge;\n }\n\n var customMerge = options.customMerge(key);\n return typeof customMerge === 'function' ? customMerge : deepmerge;\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n return Object.getOwnPropertySymbols ? Object.getOwnPropertySymbols(target).filter(function (symbol) {\n return target.propertyIsEnumerable(symbol);\n }) : [];\n}\n\nfunction getKeys(target) {\n return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target));\n}\n\nfunction propertyIsOnObject(object, property) {\n try {\n return property in object;\n } catch (_) {\n return false;\n }\n} // Protects from prototype poisoning and unexpected merging up the prototype chain.\n\n\nfunction propertyIsUnsafe(target, key) {\n return propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n && !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n && Object.propertyIsEnumerable.call(target, key)); // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n var destination = {};\n\n if (options.isMergeableObject(target)) {\n getKeys(target).forEach(function (key) {\n destination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n });\n }\n\n getKeys(source).forEach(function (key) {\n if (propertyIsUnsafe(target, key)) {\n return;\n }\n\n if (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n destination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n } else {\n destination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n }\n });\n return destination;\n}\n\nfunction deepmerge(target, source, options) {\n options = options || {};\n options.arrayMerge = options.arrayMerge || defaultArrayMerge;\n options.isMergeableObject = options.isMergeableObject || isMergeableObject; // cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n // implementations can use it. The caller may not replace it.\n\n options.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n var sourceIsArray = Array.isArray(source);\n var targetIsArray = Array.isArray(target);\n var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n if (!sourceAndTargetTypesMatch) {\n return cloneUnlessOtherwiseSpecified(source, options);\n } else if (sourceIsArray) {\n return options.arrayMerge(target, source, options);\n } else {\n return mergeObject(target, source, options);\n }\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n if (!Array.isArray(array)) {\n throw new Error('first argument should be an array');\n }\n\n return array.reduce(function (prev, next) {\n return deepmerge(prev, next, options);\n }, {});\n};\n\nvar deepmerge_1 = deepmerge;\nmodule.exports = deepmerge_1;","'use strict';\n\nmodule.exports = function (obj, predicate) {\n var ret = {};\n var keys = Object.keys(obj);\n var isArr = Array.isArray(predicate);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var val = obj[key];\n\n if (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n ret[key] = val;\n }\n }\n\n return ret;\n};","\"use strict\";\n\nmodule.exports = Object.assign;","'use strict';\n\nvar reactIs = require('react-is');\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\n\n\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\n\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;","/*\nCopyright (c) 2014, Yahoo! Inc. All rights reserved.\nCopyrights licensed under the New BSD License.\nSee the accompanying LICENSE file for terms.\n*/\nimport { __assign, __spreadArray } from \"tslib\";\nimport { parse } from '@formatjs/icu-messageformat-parser';\nimport memoize, { strategies } from '@formatjs/fast-memoize';\nimport { formatToParts, PART_TYPE } from './formatters'; // -- MessageFormat --------------------------------------------------------\n\nfunction mergeConfig(c1, c2) {\n if (!c2) {\n return c1;\n }\n\n return __assign(__assign(__assign({}, c1 || {}), c2 || {}), Object.keys(c1).reduce(function (all, k) {\n all[k] = __assign(__assign({}, c1[k]), c2[k] || {});\n return all;\n }, {}));\n}\n\nfunction mergeConfigs(defaultConfig, configs) {\n if (!configs) {\n return defaultConfig;\n }\n\n return Object.keys(defaultConfig).reduce(function (all, k) {\n all[k] = mergeConfig(defaultConfig[k], configs[k]);\n return all;\n }, __assign({}, defaultConfig));\n}\n\nfunction createFastMemoizeCache(store) {\n return {\n create: function create() {\n return {\n get: function get(key) {\n return store[key];\n },\n set: function set(key, value) {\n store[key] = value;\n }\n };\n }\n };\n}\n\nfunction createDefaultFormatters(cache) {\n if (cache === void 0) {\n cache = {\n number: {},\n dateTime: {},\n pluralRules: {}\n };\n }\n\n return {\n getNumberFormat: memoize(function () {\n var _a;\n\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return new ((_a = Intl.NumberFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.number),\n strategy: strategies.variadic\n }),\n getDateTimeFormat: memoize(function () {\n var _a;\n\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return new ((_a = Intl.DateTimeFormat).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.dateTime),\n strategy: strategies.variadic\n }),\n getPluralRules: memoize(function () {\n var _a;\n\n var args = [];\n\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n\n return new ((_a = Intl.PluralRules).bind.apply(_a, __spreadArray([void 0], args, false)))();\n }, {\n cache: createFastMemoizeCache(cache.pluralRules),\n strategy: strategies.variadic\n })\n };\n}\n\nvar IntlMessageFormat =\n/** @class */\nfunction () {\n function IntlMessageFormat(message, locales, overrideFormats, opts) {\n var _this = this;\n\n if (locales === void 0) {\n locales = IntlMessageFormat.defaultLocale;\n }\n\n this.formatterCache = {\n number: {},\n dateTime: {},\n pluralRules: {}\n };\n\n this.format = function (values) {\n var parts = _this.formatToParts(values); // Hot path for straight simple msg translations\n\n\n if (parts.length === 1) {\n return parts[0].value;\n }\n\n var result = parts.reduce(function (all, part) {\n if (!all.length || part.type !== PART_TYPE.literal || typeof all[all.length - 1] !== 'string') {\n all.push(part.value);\n } else {\n all[all.length - 1] += part.value;\n }\n\n return all;\n }, []);\n\n if (result.length <= 1) {\n return result[0] || '';\n }\n\n return result;\n };\n\n this.formatToParts = function (values) {\n return formatToParts(_this.ast, _this.locales, _this.formatters, _this.formats, values, undefined, _this.message);\n };\n\n this.resolvedOptions = function () {\n return {\n locale: Intl.NumberFormat.supportedLocalesOf(_this.locales)[0]\n };\n };\n\n this.getAst = function () {\n return _this.ast;\n };\n\n if (typeof message === 'string') {\n this.message = message;\n\n if (!IntlMessageFormat.__parse) {\n throw new TypeError('IntlMessageFormat.__parse must be set to process `message` of type `string`');\n } // Parse string messages into an AST.\n\n\n this.ast = IntlMessageFormat.__parse(message, {\n ignoreTag: opts === null || opts === void 0 ? void 0 : opts.ignoreTag\n });\n } else {\n this.ast = message;\n }\n\n if (!Array.isArray(this.ast)) {\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 this.formats = mergeConfigs(IntlMessageFormat.formats, overrideFormats); // Defined first because it's used to build the format pattern.\n\n this.locales = locales;\n this.formatters = opts && opts.formatters || createDefaultFormatters(this.formatterCache);\n }\n\n Object.defineProperty(IntlMessageFormat, \"defaultLocale\", {\n get: function get() {\n if (!IntlMessageFormat.memoizedDefaultLocale) {\n IntlMessageFormat.memoizedDefaultLocale = new Intl.NumberFormat().resolvedOptions().locale;\n }\n\n return IntlMessageFormat.memoizedDefaultLocale;\n },\n enumerable: false,\n configurable: true\n });\n IntlMessageFormat.memoizedDefaultLocale = null;\n IntlMessageFormat.__parse = parse; // 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 IntlMessageFormat.formats = {\n number: {\n integer: {\n maximumFractionDigits: 0\n },\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 return IntlMessageFormat;\n}();\n\nexport { IntlMessageFormat };","import { __extends } from \"tslib\";\nexport var ErrorCode;\n\n(function (ErrorCode) {\n // When we have a placeholder but no value to format\n ErrorCode[\"MISSING_VALUE\"] = \"MISSING_VALUE\"; // When value supplied is invalid\n\n ErrorCode[\"INVALID_VALUE\"] = \"INVALID_VALUE\"; // When we need specific Intl API but it's not available\n\n ErrorCode[\"MISSING_INTL_API\"] = \"MISSING_INTL_API\";\n})(ErrorCode || (ErrorCode = {}));\n\nvar FormatError =\n/** @class */\nfunction (_super) {\n __extends(FormatError, _super);\n\n function FormatError(msg, code, originalMessage) {\n var _this = _super.call(this, msg) || this;\n\n _this.code = code;\n _this.originalMessage = originalMessage;\n return _this;\n }\n\n FormatError.prototype.toString = function () {\n return \"[formatjs Error: \" + this.code + \"] \" + this.message;\n };\n\n return FormatError;\n}(Error);\n\nexport { FormatError };\n\nvar InvalidValueError =\n/** @class */\nfunction (_super) {\n __extends(InvalidValueError, _super);\n\n function InvalidValueError(variableId, value, options, originalMessage) {\n return _super.call(this, \"Invalid values for \\\"\" + variableId + \"\\\": \\\"\" + value + \"\\\". Options are \\\"\" + Object.keys(options).join('\", \"') + \"\\\"\", ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n\n return InvalidValueError;\n}(FormatError);\n\nexport { InvalidValueError };\n\nvar InvalidValueTypeError =\n/** @class */\nfunction (_super) {\n __extends(InvalidValueTypeError, _super);\n\n function InvalidValueTypeError(value, type, originalMessage) {\n return _super.call(this, \"Value for \\\"\" + value + \"\\\" must be of type \" + type, ErrorCode.INVALID_VALUE, originalMessage) || this;\n }\n\n return InvalidValueTypeError;\n}(FormatError);\n\nexport { InvalidValueTypeError };\n\nvar MissingValueError =\n/** @class */\nfunction (_super) {\n __extends(MissingValueError, _super);\n\n function MissingValueError(variableId, originalMessage) {\n return _super.call(this, \"The intl string context variable \\\"\" + variableId + \"\\\" was not provided to the string \\\"\" + originalMessage + \"\\\"\", ErrorCode.MISSING_VALUE, originalMessage) || this;\n }\n\n return MissingValueError;\n}(FormatError);\n\nexport { MissingValueError };","import { isArgumentElement, isDateElement, isDateTimeSkeleton, isLiteralElement, isNumberElement, isNumberSkeleton, isPluralElement, isPoundElement, isSelectElement, isTimeElement, isTagElement } from '@formatjs/icu-messageformat-parser';\nimport { MissingValueError, InvalidValueError, ErrorCode, FormatError, InvalidValueTypeError } from './error';\nexport var PART_TYPE;\n\n(function (PART_TYPE) {\n PART_TYPE[PART_TYPE[\"literal\"] = 0] = \"literal\";\n PART_TYPE[PART_TYPE[\"object\"] = 1] = \"object\";\n})(PART_TYPE || (PART_TYPE = {}));\n\nfunction mergeLiteral(parts) {\n if (parts.length < 2) {\n return parts;\n }\n\n return parts.reduce(function (all, part) {\n var lastPart = all[all.length - 1];\n\n if (!lastPart || lastPart.type !== PART_TYPE.literal || part.type !== PART_TYPE.literal) {\n all.push(part);\n } else {\n lastPart.value += part.value;\n }\n\n return all;\n }, []);\n}\n\nexport function isFormatXMLElementFn(el) {\n return typeof el === 'function';\n} // TODO(skeleton): add skeleton support\n\nexport function formatToParts(els, locales, formatters, formats, values, currentPluralValue, // For debugging\noriginalMessage) {\n // Hot path for straight simple msg translations\n if (els.length === 1 && isLiteralElement(els[0])) {\n return [{\n type: PART_TYPE.literal,\n value: els[0].value\n }];\n }\n\n var result = [];\n\n for (var _i = 0, els_1 = els; _i < els_1.length; _i++) {\n var el = els_1[_i]; // Exit early for string parts.\n\n if (isLiteralElement(el)) {\n result.push({\n type: PART_TYPE.literal,\n value: el.value\n });\n continue;\n } // TODO: should this part be literal type?\n // Replace `#` in plural rules with the actual numeric value.\n\n\n if (isPoundElement(el)) {\n if (typeof currentPluralValue === 'number') {\n result.push({\n type: PART_TYPE.literal,\n value: formatters.getNumberFormat(locales).format(currentPluralValue)\n });\n }\n\n continue;\n }\n\n var varName = el.value; // Enforce that all required values are provided by the caller.\n\n if (!(values && varName in values)) {\n throw new MissingValueError(varName, originalMessage);\n }\n\n var value = values[varName];\n\n if (isArgumentElement(el)) {\n if (!value || typeof value === 'string' || typeof value === 'number') {\n value = typeof value === 'string' || typeof value === 'number' ? String(value) : '';\n }\n\n result.push({\n type: typeof value === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: value\n });\n continue;\n } // 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\n if (isDateElement(el)) {\n var style = typeof el.style === 'string' ? formats.date[el.style] : isDateTimeSkeleton(el.style) ? el.style.parsedOptions : undefined;\n result.push({\n type: PART_TYPE.literal,\n value: formatters.getDateTimeFormat(locales, style).format(value)\n });\n continue;\n }\n\n if (isTimeElement(el)) {\n var style = typeof el.style === 'string' ? formats.time[el.style] : isDateTimeSkeleton(el.style) ? el.style.parsedOptions : undefined;\n result.push({\n type: PART_TYPE.literal,\n value: formatters.getDateTimeFormat(locales, style).format(value)\n });\n continue;\n }\n\n if (isNumberElement(el)) {\n var style = typeof el.style === 'string' ? formats.number[el.style] : isNumberSkeleton(el.style) ? el.style.parsedOptions : undefined;\n\n if (style && style.scale) {\n value = value * (style.scale || 1);\n }\n\n result.push({\n type: PART_TYPE.literal,\n value: formatters.getNumberFormat(locales, style).format(value)\n });\n continue;\n }\n\n if (isTagElement(el)) {\n var children = el.children,\n value_1 = el.value;\n var formatFn = values[value_1];\n\n if (!isFormatXMLElementFn(formatFn)) {\n throw new InvalidValueTypeError(value_1, 'function', originalMessage);\n }\n\n var parts = formatToParts(children, locales, formatters, formats, values, currentPluralValue);\n var chunks = formatFn(parts.map(function (p) {\n return p.value;\n }));\n\n if (!Array.isArray(chunks)) {\n chunks = [chunks];\n }\n\n result.push.apply(result, chunks.map(function (c) {\n return {\n type: typeof c === 'string' ? PART_TYPE.literal : PART_TYPE.object,\n value: c\n };\n }));\n }\n\n if (isSelectElement(el)) {\n var opt = el.options[value] || el.options.other;\n\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values));\n continue;\n }\n\n if (isPluralElement(el)) {\n var opt = el.options[\"=\" + value];\n\n if (!opt) {\n if (!Intl.PluralRules) {\n throw new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", ErrorCode.MISSING_INTL_API, originalMessage);\n }\n\n var rule = formatters.getPluralRules(locales, {\n type: el.pluralType\n }).select(value - (el.offset || 0));\n opt = el.options[rule] || el.options.other;\n }\n\n if (!opt) {\n throw new InvalidValueError(el.value, value, Object.keys(el.options), originalMessage);\n }\n\n result.push.apply(result, formatToParts(opt.value, locales, formatters, formats, values, value - (el.offset || 0)));\n continue;\n }\n }\n\n return mergeLiteral(result);\n}","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(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\nexport { _assign as __assign };\nexport function __rest(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}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport var __createBinding = Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n });\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n};\nexport function __exportStar(m, o) {\n for (var p in m) {\n if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\n\nvar __setModuleDefault = Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n }\n\n __setModuleDefault(result, mod);\n\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;\n}","/*!\n * JavaScript Cookie v2.2.1\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;\n\n(function (factory) {\n var registeredInModuleLoader;\n\n if (typeof define === 'function' && define.amd) {\n define(factory);\n registeredInModuleLoader = true;\n }\n\n if (typeof exports === 'object') {\n module.exports = factory();\n registeredInModuleLoader = true;\n }\n\n if (!registeredInModuleLoader) {\n var OldCookies = window.Cookies;\n var api = window.Cookies = factory();\n\n api.noConflict = function () {\n window.Cookies = OldCookies;\n return api;\n };\n }\n})(function () {\n function extend() {\n var i = 0;\n var result = {};\n\n for (; i < arguments.length; i++) {\n var attributes = arguments[i];\n\n for (var key in attributes) {\n result[key] = attributes[key];\n }\n }\n\n return result;\n }\n\n function decode(s) {\n return s.replace(/(%[0-9A-Z]{2})+/g, decodeURIComponent);\n }\n\n function init(converter) {\n function api() {}\n\n function set(key, value, attributes) {\n if (typeof document === 'undefined') {\n return;\n }\n\n attributes = extend({\n path: '/'\n }, api.defaults, attributes);\n\n if (typeof attributes.expires === 'number') {\n attributes.expires = new Date(new Date() * 1 + attributes.expires * 864e+5);\n } // We're using \"expires\" because \"max-age\" is not supported by IE\n\n\n attributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n try {\n var result = JSON.stringify(value);\n\n if (/^[\\{\\[]/.test(result)) {\n value = result;\n }\n } catch (e) {}\n\n value = converter.write ? converter.write(value, key) : encodeURIComponent(String(value)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n key = encodeURIComponent(String(key)).replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent).replace(/[\\(\\)]/g, escape);\n var stringifiedAttributes = '';\n\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue;\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue;\n } // Considers RFC 6265 section 5.2:\n // ...\n // 3. If the remaining unparsed-attributes contains a %x3B (\";\")\n // character:\n // Consume the characters of the unparsed-attributes up to,\n // not including, the first %x3B (\";\") character.\n // ...\n\n\n stringifiedAttributes += '=' + attributes[attributeName].split(';')[0];\n }\n\n return document.cookie = key + '=' + value + stringifiedAttributes;\n }\n\n function get(key, json) {\n if (typeof document === 'undefined') {\n return;\n }\n\n var jar = {}; // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all.\n\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var i = 0;\n\n for (; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var cookie = parts.slice(1).join('=');\n\n if (!json && cookie.charAt(0) === '\"') {\n cookie = cookie.slice(1, -1);\n }\n\n try {\n var name = decode(parts[0]);\n cookie = (converter.read || converter)(cookie, name) || decode(cookie);\n\n if (json) {\n try {\n cookie = JSON.parse(cookie);\n } catch (e) {}\n }\n\n jar[name] = cookie;\n\n if (key === name) {\n break;\n }\n } catch (e) {}\n }\n\n return key ? jar[key] : jar;\n }\n\n api.set = set;\n\n api.get = function (key) {\n return get(key, false\n /* read as raw */\n );\n };\n\n api.getJSON = function (key) {\n return get(key, true\n /* read as json */\n );\n };\n\n api.remove = function (key, attributes) {\n set(key, '', extend(attributes, {\n expires: -1\n }));\n };\n\n api.defaults = {};\n api.withConverter = init;\n return api;\n }\n\n return init(function () {});\n});","export default function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeReflectConstruct from \"./isNativeReflectConstruct.js\";\nexport default function _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}","import getPrototypeOf from \"./getPrototypeOf.js\";\nimport setPrototypeOf from \"./setPrototypeOf.js\";\nimport isNativeFunction from \"./isNativeFunction.js\";\nimport construct from \"./construct.js\";\nexport default function _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _wrapNativeSuper from '@babel/runtime/helpers/esm/wrapNativeSuper';\nimport _taggedTemplateLiteralLoose from '@babel/runtime/helpers/esm/taggedTemplateLiteralLoose';\n\nfunction last() {\n var _ref;\n\n return _ref = arguments.length - 1, _ref < 0 || arguments.length <= _ref ? undefined : arguments[_ref];\n}\n\nfunction negation(a) {\n return -a;\n}\n\nfunction addition(a, b) {\n return a + b;\n}\n\nfunction subtraction(a, b) {\n return a - b;\n}\n\nfunction multiplication(a, b) {\n return a * b;\n}\n\nfunction division(a, b) {\n return a / b;\n}\n\nfunction max() {\n return Math.max.apply(Math, arguments);\n}\n\nfunction min() {\n return Math.min.apply(Math, arguments);\n}\n\nfunction comma() {\n return Array.of.apply(Array, arguments);\n}\n\nvar defaultSymbols = {\n symbols: {\n '*': {\n infix: {\n symbol: '*',\n f: multiplication,\n notation: 'infix',\n precedence: 4,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: '*',\n regSymbol: '\\\\*'\n },\n '/': {\n infix: {\n symbol: '/',\n f: division,\n notation: 'infix',\n precedence: 4,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: '/',\n regSymbol: '/'\n },\n '+': {\n infix: {\n symbol: '+',\n f: addition,\n notation: 'infix',\n precedence: 2,\n rightToLeft: 0,\n argCount: 2\n },\n prefix: {\n symbol: '+',\n f: last,\n notation: 'prefix',\n precedence: 3,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '+',\n regSymbol: '\\\\+'\n },\n '-': {\n infix: {\n symbol: '-',\n f: subtraction,\n notation: 'infix',\n precedence: 2,\n rightToLeft: 0,\n argCount: 2\n },\n prefix: {\n symbol: '-',\n f: negation,\n notation: 'prefix',\n precedence: 3,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '-',\n regSymbol: '-'\n },\n ',': {\n infix: {\n symbol: ',',\n f: comma,\n notation: 'infix',\n precedence: 1,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: ',',\n regSymbol: ','\n },\n '(': {\n prefix: {\n symbol: '(',\n f: last,\n notation: 'prefix',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '(',\n regSymbol: '\\\\('\n },\n ')': {\n postfix: {\n symbol: ')',\n f: undefined,\n notation: 'postfix',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: ')',\n regSymbol: '\\\\)'\n },\n min: {\n func: {\n symbol: 'min',\n f: min,\n notation: 'func',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: 'min',\n regSymbol: 'min\\\\b'\n },\n max: {\n func: {\n symbol: 'max',\n f: max,\n notation: 'func',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: 'max',\n regSymbol: 'max\\\\b'\n }\n }\n}; // based on https://github.com/styled-components/styled-components/blob/fcf6f3804c57a14dd7984dfab7bc06ee2edca044/src/utils/error.js\n\n/**\n * Parse errors.md and turn it into a simple hash of code: message\n * @private\n */\n\nvar ERRORS = {\n \"1\": \"Passed invalid arguments to hsl, please pass multiple numbers e.g. hsl(360, 0.75, 0.4) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75 }).\\n\\n\",\n \"2\": \"Passed invalid arguments to hsla, please pass multiple numbers e.g. hsla(360, 0.75, 0.4, 0.7) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75, alpha: 0.7 }).\\n\\n\",\n \"3\": \"Passed an incorrect argument to a color function, please pass a string representation of a color.\\n\\n\",\n \"4\": \"Couldn't generate valid rgb string from %s, it returned %s.\\n\\n\",\n \"5\": \"Couldn't parse the color string. Please provide the color as a string in hex, rgb, rgba, hsl or hsla notation.\\n\\n\",\n \"6\": \"Passed invalid arguments to rgb, please pass multiple numbers e.g. rgb(255, 205, 100) or an object e.g. rgb({ red: 255, green: 205, blue: 100 }).\\n\\n\",\n \"7\": \"Passed invalid arguments to rgba, please pass multiple numbers e.g. rgb(255, 205, 100, 0.75) or an object e.g. rgb({ red: 255, green: 205, blue: 100, alpha: 0.75 }).\\n\\n\",\n \"8\": \"Passed invalid argument to toColorString, please pass a RgbColor, RgbaColor, HslColor or HslaColor object.\\n\\n\",\n \"9\": \"Please provide a number of steps to the modularScale helper.\\n\\n\",\n \"10\": \"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\\n\\n\",\n \"11\": \"Invalid value passed as base to modularScale, expected number or em string but got \\\"%s\\\"\\n\\n\",\n \"12\": \"Expected a string ending in \\\"px\\\" or a number passed as the first argument to %s(), got \\\"%s\\\" instead.\\n\\n\",\n \"13\": \"Expected a string ending in \\\"px\\\" or a number passed as the second argument to %s(), got \\\"%s\\\" instead.\\n\\n\",\n \"14\": \"Passed invalid pixel value (\\\"%s\\\") to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"15\": \"Passed invalid base value (\\\"%s\\\") to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"16\": \"You must provide a template to this method.\\n\\n\",\n \"17\": \"You passed an unsupported selector state to this method.\\n\\n\",\n \"18\": \"minScreen and maxScreen must be provided as stringified numbers with the same units.\\n\\n\",\n \"19\": \"fromSize and toSize must be provided as stringified numbers with the same units.\\n\\n\",\n \"20\": \"expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\\n\\n\",\n \"21\": \"expects the objects in the first argument array to have the properties `prop`, `fromSize`, and `toSize`.\\n\\n\",\n \"22\": \"expects the first argument object to have the properties `prop`, `fromSize`, and `toSize`.\\n\\n\",\n \"23\": \"fontFace expects a name of a font-family.\\n\\n\",\n \"24\": \"fontFace expects either the path to the font file(s) or a name of a local copy.\\n\\n\",\n \"25\": \"fontFace expects localFonts to be an array.\\n\\n\",\n \"26\": \"fontFace expects fileFormats to be an array.\\n\\n\",\n \"27\": \"radialGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"28\": \"Please supply a filename to retinaImage() as the first argument.\\n\\n\",\n \"29\": \"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\\n\\n\",\n \"30\": \"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\\n\\n\",\n \"31\": \"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation\\n\\n\",\n \"32\": \"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s')\\n\\n\",\n \"33\": \"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation\\n\\n\",\n \"34\": \"borderRadius expects a radius value as a string or number as the second argument.\\n\\n\",\n \"35\": \"borderRadius expects one of \\\"top\\\", \\\"bottom\\\", \\\"left\\\" or \\\"right\\\" as the first argument.\\n\\n\",\n \"36\": \"Property must be a string value.\\n\\n\",\n \"37\": \"Syntax Error at %s.\\n\\n\",\n \"38\": \"Formula contains a function that needs parentheses at %s.\\n\\n\",\n \"39\": \"Formula is missing closing parenthesis at %s.\\n\\n\",\n \"40\": \"Formula has too many closing parentheses at %s.\\n\\n\",\n \"41\": \"All values in a formula must have the same unit or be unitless.\\n\\n\",\n \"42\": \"Please provide a number of steps to the modularScale helper.\\n\\n\",\n \"43\": \"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\\n\\n\",\n \"44\": \"Invalid value passed as base to modularScale, expected number or em/rem string but got %s.\\n\\n\",\n \"45\": \"Passed invalid argument to hslToColorString, please pass a HslColor or HslaColor object.\\n\\n\",\n \"46\": \"Passed invalid argument to rgbToColorString, please pass a RgbColor or RgbaColor object.\\n\\n\",\n \"47\": \"minScreen and maxScreen must be provided as stringified numbers with the same units.\\n\\n\",\n \"48\": \"fromSize and toSize must be provided as stringified numbers with the same units.\\n\\n\",\n \"49\": \"Expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\\n\\n\",\n \"50\": \"Expects the objects in the first argument array to have the properties prop, fromSize, and toSize.\\n\\n\",\n \"51\": \"Expects the first argument object to have the properties prop, fromSize, and toSize.\\n\\n\",\n \"52\": \"fontFace expects either the path to the font file(s) or a name of a local copy.\\n\\n\",\n \"53\": \"fontFace expects localFonts to be an array.\\n\\n\",\n \"54\": \"fontFace expects fileFormats to be an array.\\n\\n\",\n \"55\": \"fontFace expects a name of a font-family.\\n\\n\",\n \"56\": \"linearGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"57\": \"radialGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"58\": \"Please supply a filename to retinaImage() as the first argument.\\n\\n\",\n \"59\": \"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\\n\\n\",\n \"60\": \"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\\n\\n\",\n \"61\": \"Property must be a string value.\\n\\n\",\n \"62\": \"borderRadius expects a radius value as a string or number as the second argument.\\n\\n\",\n \"63\": \"borderRadius expects one of \\\"top\\\", \\\"bottom\\\", \\\"left\\\" or \\\"right\\\" as the first argument.\\n\\n\",\n \"64\": \"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation.\\n\\n\",\n \"65\": \"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s').\\n\\n\",\n \"66\": \"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation.\\n\\n\",\n \"67\": \"You must provide a template to this method.\\n\\n\",\n \"68\": \"You passed an unsupported selector state to this method.\\n\\n\",\n \"69\": \"Expected a string ending in \\\"px\\\" or a number passed as the first argument to %s(), got %s instead.\\n\\n\",\n \"70\": \"Expected a string ending in \\\"px\\\" or a number passed as the second argument to %s(), got %s instead.\\n\\n\",\n \"71\": \"Passed invalid pixel value %s to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"72\": \"Passed invalid base value %s to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"73\": \"Please provide a valid CSS variable.\\n\\n\",\n \"74\": \"CSS variable not found and no default was provided.\\n\\n\",\n \"75\": \"important requires a valid style object, got a %s instead.\\n\\n\",\n \"76\": \"fromSize and toSize must be provided as stringified numbers with the same units as minScreen and maxScreen.\\n\\n\",\n \"77\": \"remToPx expects a value in \\\"rem\\\" but you provided it in \\\"%s\\\".\\n\\n\",\n \"78\": \"base must be set in \\\"px\\\" or \\\"%\\\" but you set it in \\\"%s\\\".\\n\"\n};\n/**\n * super basic version of sprintf\n * @private\n */\n\nfunction format() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var a = args[0];\n var b = [];\n var c;\n\n for (c = 1; c < args.length; c += 1) {\n b.push(args[c]);\n }\n\n b.forEach(function (d) {\n a = a.replace(/%[a-z]/, d);\n });\n return a;\n}\n/**\n * Create an error file out of errors.md for development and a simple web link to the full errors\n * in production mode.\n * @private\n */\n\n\nvar PolishedError = /*#__PURE__*/function (_Error) {\n _inheritsLoose(PolishedError, _Error);\n\n function PolishedError(code) {\n var _this;\n\n if (process.env.NODE_ENV === 'production') {\n _this = _Error.call(this, \"An error occurred. See https://github.com/styled-components/polished/blob/main/src/internalHelpers/errors.md#\" + code + \" for more information.\") || this;\n } else {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n _this = _Error.call(this, format.apply(void 0, [ERRORS[code]].concat(args))) || this;\n }\n\n return _assertThisInitialized(_this);\n }\n\n return PolishedError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nvar unitRegExp = /((?!\\w)a|na|hc|mc|dg|me[r]?|xe|ni(?![a-zA-Z])|mm|cp|tp|xp|q(?!s)|hv|xamv|nimv|wv|sm|s(?!\\D|$)|ged|darg?|nrut)/g; // Merges additional math functionality into the defaults.\n\nfunction mergeSymbolMaps(additionalSymbols) {\n var symbolMap = {};\n symbolMap.symbols = additionalSymbols ? _extends({}, defaultSymbols.symbols, additionalSymbols.symbols) : _extends({}, defaultSymbols.symbols);\n return symbolMap;\n}\n\nfunction exec(operators, values) {\n var _ref;\n\n var op = operators.pop();\n values.push(op.f.apply(op, (_ref = []).concat.apply(_ref, values.splice(-op.argCount))));\n return op.precedence;\n}\n\nfunction calculate(expression, additionalSymbols) {\n var symbolMap = mergeSymbolMaps(additionalSymbols);\n var match;\n var operators = [symbolMap.symbols['('].prefix];\n var values = [];\n var pattern = new RegExp( // Pattern for numbers\n \"\\\\d+(?:\\\\.\\\\d+)?|\" + // ...and patterns for individual operators/function names\n Object.keys(symbolMap.symbols).map(function (key) {\n return symbolMap.symbols[key];\n }) // longer symbols should be listed first\n // $FlowFixMe\n .sort(function (a, b) {\n return b.symbol.length - a.symbol.length;\n }) // $FlowFixMe\n .map(function (val) {\n return val.regSymbol;\n }).join('|') + \"|(\\\\S)\", 'g');\n pattern.lastIndex = 0; // Reset regular expression object\n\n var afterValue = false;\n\n do {\n match = pattern.exec(expression);\n\n var _ref2 = match || [')', undefined],\n token = _ref2[0],\n bad = _ref2[1];\n\n var notNumber = symbolMap.symbols[token];\n var notNewValue = notNumber && !notNumber.prefix && !notNumber.func;\n var notAfterValue = !notNumber || !notNumber.postfix && !notNumber.infix; // Check for syntax errors:\n\n if (bad || (afterValue ? notAfterValue : notNewValue)) {\n throw new PolishedError(37, match ? match.index : expression.length, expression);\n }\n\n if (afterValue) {\n // We either have an infix or postfix operator (they should be mutually exclusive)\n var curr = notNumber.postfix || notNumber.infix;\n\n do {\n var prev = operators[operators.length - 1];\n if ((curr.precedence - prev.precedence || prev.rightToLeft) > 0) break; // Apply previous operator, since it has precedence over current one\n } while (exec(operators, values)); // Exit loop after executing an opening parenthesis or function\n\n\n afterValue = curr.notation === 'postfix';\n\n if (curr.symbol !== ')') {\n operators.push(curr); // Postfix always has precedence over any operator that follows after it\n\n if (afterValue) exec(operators, values);\n }\n } else if (notNumber) {\n // prefix operator or function\n operators.push(notNumber.prefix || notNumber.func);\n\n if (notNumber.func) {\n // Require an opening parenthesis\n match = pattern.exec(expression);\n\n if (!match || match[0] !== '(') {\n throw new PolishedError(38, match ? match.index : expression.length, expression);\n }\n }\n } else {\n // number\n values.push(+token);\n afterValue = true;\n }\n } while (match && operators.length);\n\n if (operators.length) {\n throw new PolishedError(39, match ? match.index : expression.length, expression);\n } else if (match) {\n throw new PolishedError(40, match ? match.index : expression.length, expression);\n } else {\n return values.pop();\n }\n}\n\nfunction reverseString(str) {\n return str.split('').reverse().join('');\n}\n/**\n * Helper for doing math with CSS Units. Accepts a formula as a string. All values in the formula must have the same unit (or be unitless). Supports complex formulas utliziing addition, subtraction, multiplication, division, square root, powers, factorial, min, max, as well as parentheses for order of operation.\n *\n *In cases where you need to do calculations with mixed units where one unit is a [relative length unit](https://developer.mozilla.org/en-US/docs/Web/CSS/length#Relative_length_units), you will want to use [CSS Calc](https://developer.mozilla.org/en-US/docs/Web/CSS/calc).\n *\n * *warning* While we've done everything possible to ensure math safely evalutes formulas expressed as strings, you should always use extreme caution when passing `math` user provided values.\n * @example\n * // Styles as object usage\n * const styles = {\n * fontSize: math('12rem + 8rem'),\n * fontSize: math('(12px + 2px) * 3'),\n * fontSize: math('3px^2 + sqrt(4)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * fontSize: ${math('12rem + 8rem')};\n * fontSize: ${math('(12px + 2px) * 3')};\n * fontSize: ${math('3px^2 + sqrt(4)')};\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * fontSize: '20rem',\n * fontSize: '42px',\n * fontSize: '11px',\n * }\n */\n\n\nfunction math(formula, additionalSymbols) {\n var reversedFormula = reverseString(formula);\n var formulaMatch = reversedFormula.match(unitRegExp); // Check that all units are the same\n\n if (formulaMatch && !formulaMatch.every(function (unit) {\n return unit === formulaMatch[0];\n })) {\n throw new PolishedError(41);\n }\n\n var cleanFormula = reverseString(reversedFormula.replace(unitRegExp, ''));\n return \"\" + calculate(cleanFormula, additionalSymbols) + (formulaMatch ? reverseString(formulaMatch[0]) : '');\n}\n\nvar cssVariableRegex = /--[\\S]*/g;\n/**\n * Fetches the value of a passed CSS Variable in the :root scope, or otherwise returns a defaultValue if provided.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'background': cssVar('--background-color'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${cssVar('--background-color')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'background': 'red'\n * }\n */\n\nfunction cssVar(cssVariable, defaultValue) {\n if (!cssVariable || !cssVariable.match(cssVariableRegex)) {\n throw new PolishedError(73);\n }\n\n var variableValue;\n /* eslint-disable */\n\n /* istanbul ignore next */\n\n if (typeof document !== 'undefined' && document.documentElement !== null) {\n variableValue = getComputedStyle(document.documentElement).getPropertyValue(cssVariable);\n }\n /* eslint-enable */\n\n\n if (variableValue) {\n return variableValue.trim();\n } else if (defaultValue) {\n return defaultValue;\n }\n\n throw new PolishedError(74);\n} // @private\n\n\nfunction capitalizeString(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar positionMap$1 = ['Top', 'Right', 'Bottom', 'Left'];\n\nfunction generateProperty(property, position) {\n if (!property) return position.toLowerCase();\n var splitProperty = property.split('-');\n\n if (splitProperty.length > 1) {\n splitProperty.splice(1, 0, position);\n return splitProperty.reduce(function (acc, val) {\n return \"\" + acc + capitalizeString(val);\n });\n }\n\n var joinedProperty = property.replace(/([a-z])([A-Z])/g, \"$1\" + position + \"$2\");\n return property === joinedProperty ? \"\" + property + position : joinedProperty;\n}\n\nfunction generateStyles(property, valuesWithDefaults) {\n var styles = {};\n\n for (var i = 0; i < valuesWithDefaults.length; i += 1) {\n if (valuesWithDefaults[i] || valuesWithDefaults[i] === 0) {\n styles[generateProperty(property, positionMap$1[i])] = valuesWithDefaults[i];\n }\n }\n\n return styles;\n}\n/**\n * Enables shorthand for direction-based properties. It accepts a property (hyphenated or camelCased) and up to four values that map to top, right, bottom, and left, respectively. You can optionally pass an empty string to get only the directional values as properties. You can also optionally pass a null argument for a directional value to ignore it.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...directionalProperty('padding', '12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${directionalProperty('padding', '12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'paddingTop': '12px',\n * 'paddingRight': '24px',\n * 'paddingBottom': '36px',\n * 'paddingLeft': '48px'\n * }\n */\n\n\nfunction directionalProperty(property) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n } // prettier-ignore\n\n\n var firstValue = values[0],\n _values$ = values[1],\n secondValue = _values$ === void 0 ? firstValue : _values$,\n _values$2 = values[2],\n thirdValue = _values$2 === void 0 ? firstValue : _values$2,\n _values$3 = values[3],\n fourthValue = _values$3 === void 0 ? secondValue : _values$3;\n var valuesWithDefaults = [firstValue, secondValue, thirdValue, fourthValue];\n return generateStyles(property, valuesWithDefaults);\n}\n/**\n * Check if a string ends with something\n * @private\n */\n\n\nfunction endsWith(string, suffix) {\n return string.substr(-suffix.length) === suffix;\n}\n\nvar cssRegex$1 = /^([+-]?(?:\\d+|\\d*\\.\\d+))([a-z]*|%)$/;\n/**\n * Returns a given CSS value minus its unit of measure.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * '--dimension': stripUnit('100px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * --dimension: ${stripUnit('100px')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * '--dimension': 100\n * }\n */\n\nfunction stripUnit(value) {\n if (typeof value !== 'string') return value;\n var matchedValue = value.match(cssRegex$1);\n return matchedValue ? parseFloat(value) : value;\n}\n/**\n * Factory function that creates pixel-to-x converters\n * @private\n */\n\n\nvar pxtoFactory = function pxtoFactory(to) {\n return function (pxval, base) {\n if (base === void 0) {\n base = '16px';\n }\n\n var newPxval = pxval;\n var newBase = base;\n\n if (typeof pxval === 'string') {\n if (!endsWith(pxval, 'px')) {\n throw new PolishedError(69, to, pxval);\n }\n\n newPxval = stripUnit(pxval);\n }\n\n if (typeof base === 'string') {\n if (!endsWith(base, 'px')) {\n throw new PolishedError(70, to, base);\n }\n\n newBase = stripUnit(base);\n }\n\n if (typeof newPxval === 'string') {\n throw new PolishedError(71, pxval, to);\n }\n\n if (typeof newBase === 'string') {\n throw new PolishedError(72, base, to);\n }\n\n return \"\" + newPxval / newBase + to;\n };\n};\n/**\n * Convert pixel value to ems. The default base value is 16px, but can be changed by passing a\n * second argument to the function.\n * @function\n * @param {string|number} pxval\n * @param {string|number} [base='16px']\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': em('16px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${em('16px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '1em'\n * }\n */\n\n\nvar em = /*#__PURE__*/pxtoFactory('em');\nvar cssRegex = /^([+-]?(?:\\d+|\\d*\\.\\d+))([a-z]*|%)$/;\n/**\n * Returns a given CSS value and its unit as elements of an array.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * '--dimension': getValueAndUnit('100px')[0],\n * '--unit': getValueAndUnit('100px')[1],\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * --dimension: ${getValueAndUnit('100px')[0]};\n * --unit: ${getValueAndUnit('100px')[1]};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * '--dimension': 100,\n * '--unit': 'px',\n * }\n */\n\nfunction getValueAndUnit(value) {\n if (typeof value !== 'string') return [value, ''];\n var matchedValue = value.match(cssRegex);\n if (matchedValue) return [parseFloat(value), matchedValue[2]];\n return [value, undefined];\n}\n/**\n * Helper for targeting rules in a style block generated by polished modules that need !important-level specificity. Can optionally specify a rule (or rules) to target specific rules.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...important(cover())\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${important(cover())}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'position': 'absolute !important',\n * 'top': '0 !important',\n * 'right: '0 !important',\n * 'bottom': '0 !important',\n * 'left: '0 !important'\n * }\n */\n\n\nfunction important(styleBlock, rules) {\n if (typeof styleBlock !== 'object' || styleBlock === null) {\n throw new PolishedError(75, typeof styleBlock);\n }\n\n var newStyleBlock = {};\n Object.keys(styleBlock).forEach(function (key) {\n if (typeof styleBlock[key] === 'object' && styleBlock[key] !== null) {\n newStyleBlock[key] = important(styleBlock[key], rules);\n } else if (!rules || rules && (rules === key || rules.indexOf(key) >= 0)) {\n newStyleBlock[key] = styleBlock[key] + \" !important\";\n } else {\n newStyleBlock[key] = styleBlock[key];\n }\n });\n return newStyleBlock;\n}\n\nvar ratioNames = {\n minorSecond: 1.067,\n majorSecond: 1.125,\n minorThird: 1.2,\n majorThird: 1.25,\n perfectFourth: 1.333,\n augFourth: 1.414,\n perfectFifth: 1.5,\n minorSixth: 1.6,\n goldenSection: 1.618,\n majorSixth: 1.667,\n minorSeventh: 1.778,\n majorSeventh: 1.875,\n octave: 2,\n majorTenth: 2.5,\n majorEleventh: 2.667,\n majorTwelfth: 3,\n doubleOctave: 4\n};\n\nfunction getRatio(ratioName) {\n return ratioNames[ratioName];\n}\n/**\n * Establish consistent measurements and spacial relationships throughout your projects by incrementing an em or rem value up or down a defined scale. We provide a list of commonly used scales as pre-defined variables.\n * @example\n * // Styles as object usage\n * const styles = {\n * // Increment two steps up the default scale\n * 'fontSize': modularScale(2)\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * // Increment two steps up the default scale\n * fontSize: ${modularScale(2)}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'fontSize': '1.77689em'\n * }\n */\n\n\nfunction modularScale(steps, base, ratio) {\n if (base === void 0) {\n base = '1em';\n }\n\n if (ratio === void 0) {\n ratio = 1.333;\n }\n\n if (typeof steps !== 'number') {\n throw new PolishedError(42);\n }\n\n if (typeof ratio === 'string' && !ratioNames[ratio]) {\n throw new PolishedError(43);\n }\n\n var _ref = typeof base === 'string' ? getValueAndUnit(base) : [base, ''],\n realBase = _ref[0],\n unit = _ref[1];\n\n var realRatio = typeof ratio === 'string' ? getRatio(ratio) : ratio;\n\n if (typeof realBase === 'string') {\n throw new PolishedError(44, base);\n }\n\n return \"\" + realBase * Math.pow(realRatio, steps) + (unit || '');\n}\n/**\n * Convert pixel value to rems. The default base value is 16px, but can be changed by passing a\n * second argument to the function.\n * @function\n * @param {string|number} pxval\n * @param {string|number} [base='16px']\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': rem('16px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${rem('16px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '1rem'\n * }\n */\n\n\nvar rem = /*#__PURE__*/pxtoFactory('rem');\nvar defaultFontSize = 16;\n\nfunction convertBase(base) {\n var deconstructedValue = getValueAndUnit(base);\n\n if (deconstructedValue[1] === 'px') {\n return parseFloat(base);\n }\n\n if (deconstructedValue[1] === '%') {\n return parseFloat(base) / 100 * defaultFontSize;\n }\n\n throw new PolishedError(78, deconstructedValue[1]);\n}\n\nfunction getBaseFromDoc() {\n /* eslint-disable */\n\n /* istanbul ignore next */\n if (typeof document !== 'undefined' && document.documentElement !== null) {\n var rootFontSize = getComputedStyle(document.documentElement).fontSize;\n return rootFontSize ? convertBase(rootFontSize) : defaultFontSize;\n }\n /* eslint-enable */\n\n /* istanbul ignore next */\n\n\n return defaultFontSize;\n}\n/**\n * Convert rem values to px. By default, the base value is pulled from the font-size property on the root element (if it is set in % or px). It defaults to 16px if not found on the root. You can also override the base value by providing your own base in % or px.\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': remToPx('1.6rem')\n * 'height': remToPx('1.6rem', '10px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${remToPx('1.6rem')}\n * height: ${remToPx('1.6rem', '10px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '25.6px',\n * 'height': '16px',\n * }\n */\n\n\nfunction remToPx(value, base) {\n var deconstructedValue = getValueAndUnit(value);\n\n if (deconstructedValue[1] !== 'rem' && deconstructedValue[1] !== '') {\n throw new PolishedError(77, deconstructedValue[1]);\n }\n\n var newBase = base ? convertBase(base) : getBaseFromDoc();\n return deconstructedValue[0] * newBase + \"px\";\n}\n\nvar functionsMap$3 = {\n back: 'cubic-bezier(0.600, -0.280, 0.735, 0.045)',\n circ: 'cubic-bezier(0.600, 0.040, 0.980, 0.335)',\n cubic: 'cubic-bezier(0.550, 0.055, 0.675, 0.190)',\n expo: 'cubic-bezier(0.950, 0.050, 0.795, 0.035)',\n quad: 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n quart: 'cubic-bezier(0.895, 0.030, 0.685, 0.220)',\n quint: 'cubic-bezier(0.755, 0.050, 0.855, 0.060)',\n sine: 'cubic-bezier(0.470, 0.000, 0.745, 0.715)'\n};\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeIn('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeIn('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n * }\n */\n\nfunction easeIn(functionName) {\n return functionsMap$3[functionName.toLowerCase().trim()];\n}\n\nvar functionsMap$2 = {\n back: 'cubic-bezier(0.680, -0.550, 0.265, 1.550)',\n circ: 'cubic-bezier(0.785, 0.135, 0.150, 0.860)',\n cubic: 'cubic-bezier(0.645, 0.045, 0.355, 1.000)',\n expo: 'cubic-bezier(1.000, 0.000, 0.000, 1.000)',\n quad: 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n quart: 'cubic-bezier(0.770, 0.000, 0.175, 1.000)',\n quint: 'cubic-bezier(0.860, 0.000, 0.070, 1.000)',\n sine: 'cubic-bezier(0.445, 0.050, 0.550, 0.950)'\n};\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeInOut('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeInOut('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n * }\n */\n\nfunction easeInOut(functionName) {\n return functionsMap$2[functionName.toLowerCase().trim()];\n}\n\nvar functionsMap$1 = {\n back: 'cubic-bezier(0.175, 0.885, 0.320, 1.275)',\n cubic: 'cubic-bezier(0.215, 0.610, 0.355, 1.000)',\n circ: 'cubic-bezier(0.075, 0.820, 0.165, 1.000)',\n expo: 'cubic-bezier(0.190, 1.000, 0.220, 1.000)',\n quad: 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n quart: 'cubic-bezier(0.165, 0.840, 0.440, 1.000)',\n quint: 'cubic-bezier(0.230, 1.000, 0.320, 1.000)',\n sine: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)'\n};\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeOut('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeOut('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n * }\n */\n\nfunction easeOut(functionName) {\n return functionsMap$1[functionName.toLowerCase().trim()];\n}\n/**\n * Returns a CSS calc formula for linear interpolation of a property between two values. Accepts optional minScreen (defaults to '320px') and maxScreen (defaults to '1200px').\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * fontSize: between('20px', '100px', '400px', '1000px'),\n * fontSize: between('20px', '100px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * fontSize: ${between('20px', '100px', '400px', '1000px')};\n * fontSize: ${between('20px', '100px')}\n * `\n *\n * // CSS as JS Output\n *\n * h1: {\n * 'fontSize': 'calc(-33.33333333333334px + 13.333333333333334vw)',\n * 'fontSize': 'calc(-9.090909090909093px + 9.090909090909092vw)'\n * }\n */\n\n\nfunction between(fromSize, toSize, minScreen, maxScreen) {\n if (minScreen === void 0) {\n minScreen = '320px';\n }\n\n if (maxScreen === void 0) {\n maxScreen = '1200px';\n }\n\n var _getValueAndUnit = getValueAndUnit(fromSize),\n unitlessFromSize = _getValueAndUnit[0],\n fromSizeUnit = _getValueAndUnit[1];\n\n var _getValueAndUnit2 = getValueAndUnit(toSize),\n unitlessToSize = _getValueAndUnit2[0],\n toSizeUnit = _getValueAndUnit2[1];\n\n var _getValueAndUnit3 = getValueAndUnit(minScreen),\n unitlessMinScreen = _getValueAndUnit3[0],\n minScreenUnit = _getValueAndUnit3[1];\n\n var _getValueAndUnit4 = getValueAndUnit(maxScreen),\n unitlessMaxScreen = _getValueAndUnit4[0],\n maxScreenUnit = _getValueAndUnit4[1];\n\n if (typeof unitlessMinScreen !== 'number' || typeof unitlessMaxScreen !== 'number' || !minScreenUnit || !maxScreenUnit || minScreenUnit !== maxScreenUnit) {\n throw new PolishedError(47);\n }\n\n if (typeof unitlessFromSize !== 'number' || typeof unitlessToSize !== 'number' || fromSizeUnit !== toSizeUnit) {\n throw new PolishedError(48);\n }\n\n if (fromSizeUnit !== minScreenUnit || toSizeUnit !== maxScreenUnit) {\n throw new PolishedError(76);\n }\n\n var slope = (unitlessFromSize - unitlessToSize) / (unitlessMinScreen - unitlessMaxScreen);\n var base = unitlessToSize - slope * unitlessMaxScreen;\n return \"calc(\" + base.toFixed(2) + (fromSizeUnit || '') + \" + \" + (100 * slope).toFixed(2) + \"vw)\";\n}\n/**\n * CSS to contain a float (credit to CSSMojo).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...clearFix(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${clearFix()}\n * `\n *\n * // CSS as JS Output\n *\n * '&::after': {\n * 'clear': 'both',\n * 'content': '\"\"',\n * 'display': 'table'\n * }\n */\n\n\nfunction clearFix(parent) {\n var _ref;\n\n if (parent === void 0) {\n parent = '&';\n }\n\n var pseudoSelector = parent + \"::after\";\n return _ref = {}, _ref[pseudoSelector] = {\n clear: 'both',\n content: '\"\"',\n display: 'table'\n }, _ref;\n}\n/**\n * CSS to fully cover an area. Can optionally be passed an offset to act as a \"padding\".\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...cover()\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${cover()}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'position': 'absolute',\n * 'top': '0',\n * 'right: '0',\n * 'bottom': '0',\n * 'left: '0'\n * }\n */\n\n\nfunction cover(offset) {\n if (offset === void 0) {\n offset = 0;\n }\n\n return {\n position: 'absolute',\n top: offset,\n right: offset,\n bottom: offset,\n left: offset\n };\n}\n/**\n * CSS to represent truncated text with an ellipsis. You can optionally pass a max-width and number of lines before truncating.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...ellipsis('250px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${ellipsis('250px')}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'display': 'inline-block',\n * 'maxWidth': '250px',\n * 'overflow': 'hidden',\n * 'textOverflow': 'ellipsis',\n * 'whiteSpace': 'nowrap',\n * 'wordWrap': 'normal'\n * }\n */\n\n\nfunction ellipsis(width, lines) {\n if (lines === void 0) {\n lines = 1;\n }\n\n var styles = {\n display: 'inline-block',\n maxWidth: width || '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n wordWrap: 'normal'\n };\n return lines > 1 ? _extends({}, styles, {\n WebkitBoxOrient: 'vertical',\n WebkitLineClamp: lines,\n display: '-webkit-box',\n whiteSpace: 'normal'\n }) : styles;\n}\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) {\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\n if (it) return (it = it.call(o)).next.bind(it);\n\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n return function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _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/**\n * Returns a set of media queries that resizes a property (or set of properties) between a provided fromSize and toSize. Accepts optional minScreen (defaults to '320px') and maxScreen (defaults to '1200px') to constrain the interpolation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...fluidRange(\n * {\n * prop: 'padding',\n * fromSize: '20px',\n * toSize: '100px',\n * },\n * '400px',\n * '1000px',\n * )\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${fluidRange(\n * {\n * prop: 'padding',\n * fromSize: '20px',\n * toSize: '100px',\n * },\n * '400px',\n * '1000px',\n * )}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * \"@media (min-width: 1000px)\": Object {\n * \"padding\": \"100px\",\n * },\n * \"@media (min-width: 400px)\": Object {\n * \"padding\": \"calc(-33.33333333333334px + 13.333333333333334vw)\",\n * },\n * \"padding\": \"20px\",\n * }\n */\n\n\nfunction fluidRange(cssProp, minScreen, maxScreen) {\n if (minScreen === void 0) {\n minScreen = '320px';\n }\n\n if (maxScreen === void 0) {\n maxScreen = '1200px';\n }\n\n if (!Array.isArray(cssProp) && typeof cssProp !== 'object' || cssProp === null) {\n throw new PolishedError(49);\n }\n\n if (Array.isArray(cssProp)) {\n var mediaQueries = {};\n var fallbacks = {};\n\n for (var _iterator = _createForOfIteratorHelperLoose(cssProp), _step; !(_step = _iterator()).done;) {\n var _extends2, _extends3;\n\n var obj = _step.value;\n\n if (!obj.prop || !obj.fromSize || !obj.toSize) {\n throw new PolishedError(50);\n }\n\n fallbacks[obj.prop] = obj.fromSize;\n mediaQueries[\"@media (min-width: \" + minScreen + \")\"] = _extends({}, mediaQueries[\"@media (min-width: \" + minScreen + \")\"], (_extends2 = {}, _extends2[obj.prop] = between(obj.fromSize, obj.toSize, minScreen, maxScreen), _extends2));\n mediaQueries[\"@media (min-width: \" + maxScreen + \")\"] = _extends({}, mediaQueries[\"@media (min-width: \" + maxScreen + \")\"], (_extends3 = {}, _extends3[obj.prop] = obj.toSize, _extends3));\n }\n\n return _extends({}, fallbacks, mediaQueries);\n } else {\n var _ref, _ref2, _ref3;\n\n if (!cssProp.prop || !cssProp.fromSize || !cssProp.toSize) {\n throw new PolishedError(51);\n }\n\n return _ref3 = {}, _ref3[cssProp.prop] = cssProp.fromSize, _ref3[\"@media (min-width: \" + minScreen + \")\"] = (_ref = {}, _ref[cssProp.prop] = between(cssProp.fromSize, cssProp.toSize, minScreen, maxScreen), _ref), _ref3[\"@media (min-width: \" + maxScreen + \")\"] = (_ref2 = {}, _ref2[cssProp.prop] = cssProp.toSize, _ref2), _ref3;\n }\n}\n\nvar dataURIRegex = /^\\s*data:([a-z]+\\/[a-z-]+(;[a-z-]+=[a-z-]+)?)?(;charset=[a-z0-9-]+)?(;base64)?,[a-z0-9!$&',()*+,;=\\-._~:@/?%\\s]*\\s*$/i;\nvar formatHintMap = {\n woff: 'woff',\n woff2: 'woff2',\n ttf: 'truetype',\n otf: 'opentype',\n eot: 'embedded-opentype',\n svg: 'svg',\n svgz: 'svg'\n};\n\nfunction generateFormatHint(format, formatHint) {\n if (!formatHint) return '';\n return \" format(\\\"\" + formatHintMap[format] + \"\\\")\";\n}\n\nfunction isDataURI(fontFilePath) {\n return !!fontFilePath.replace(/\\s+/g, ' ').match(dataURIRegex);\n}\n\nfunction generateFileReferences(fontFilePath, fileFormats, formatHint) {\n if (isDataURI(fontFilePath)) {\n return \"url(\\\"\" + fontFilePath + \"\\\")\" + generateFormatHint(fileFormats[0], formatHint);\n }\n\n var fileFontReferences = fileFormats.map(function (format) {\n return \"url(\\\"\" + fontFilePath + \".\" + format + \"\\\")\" + generateFormatHint(format, formatHint);\n });\n return fileFontReferences.join(', ');\n}\n\nfunction generateLocalReferences(localFonts) {\n var localFontReferences = localFonts.map(function (font) {\n return \"local(\\\"\" + font + \"\\\")\";\n });\n return localFontReferences.join(', ');\n}\n\nfunction generateSources(fontFilePath, localFonts, fileFormats, formatHint) {\n var fontReferences = [];\n if (localFonts) fontReferences.push(generateLocalReferences(localFonts));\n\n if (fontFilePath) {\n fontReferences.push(generateFileReferences(fontFilePath, fileFormats, formatHint));\n }\n\n return fontReferences.join(', ');\n}\n/**\n * CSS for a @font-face declaration. Defaults to check for local copies of the font on the user's machine. You can disable this by passing `null` to localFonts.\n *\n * @example\n * // Styles as object basic usage\n * const styles = {\n * ...fontFace({\n * 'fontFamily': 'Sans-Pro',\n * 'fontFilePath': 'path/to/file'\n * })\n * }\n *\n * // styled-components basic usage\n * const GlobalStyle = createGlobalStyle`${\n * fontFace({\n * 'fontFamily': 'Sans-Pro',\n * 'fontFilePath': 'path/to/file'\n * }\n * )}`\n *\n * // CSS as JS Output\n *\n * '@font-face': {\n * 'fontFamily': 'Sans-Pro',\n * 'src': 'url(\"path/to/file.eot\"), url(\"path/to/file.woff2\"), url(\"path/to/file.woff\"), url(\"path/to/file.ttf\"), url(\"path/to/file.svg\")',\n * }\n */\n\n\nfunction fontFace(_ref) {\n var fontFamily = _ref.fontFamily,\n fontFilePath = _ref.fontFilePath,\n fontStretch = _ref.fontStretch,\n fontStyle = _ref.fontStyle,\n fontVariant = _ref.fontVariant,\n fontWeight = _ref.fontWeight,\n _ref$fileFormats = _ref.fileFormats,\n fileFormats = _ref$fileFormats === void 0 ? ['eot', 'woff2', 'woff', 'ttf', 'svg'] : _ref$fileFormats,\n _ref$formatHint = _ref.formatHint,\n formatHint = _ref$formatHint === void 0 ? false : _ref$formatHint,\n _ref$localFonts = _ref.localFonts,\n localFonts = _ref$localFonts === void 0 ? [fontFamily] : _ref$localFonts,\n unicodeRange = _ref.unicodeRange,\n fontDisplay = _ref.fontDisplay,\n fontVariationSettings = _ref.fontVariationSettings,\n fontFeatureSettings = _ref.fontFeatureSettings; // Error Handling\n\n if (!fontFamily) throw new PolishedError(55);\n\n if (!fontFilePath && !localFonts) {\n throw new PolishedError(52);\n }\n\n if (localFonts && !Array.isArray(localFonts)) {\n throw new PolishedError(53);\n }\n\n if (!Array.isArray(fileFormats)) {\n throw new PolishedError(54);\n }\n\n var fontFaceDeclaration = {\n '@font-face': {\n fontFamily: fontFamily,\n src: generateSources(fontFilePath, localFonts, fileFormats, formatHint),\n unicodeRange: unicodeRange,\n fontStretch: fontStretch,\n fontStyle: fontStyle,\n fontVariant: fontVariant,\n fontWeight: fontWeight,\n fontDisplay: fontDisplay,\n fontVariationSettings: fontVariationSettings,\n fontFeatureSettings: fontFeatureSettings\n }\n }; // Removes undefined fields for cleaner css object.\n\n return JSON.parse(JSON.stringify(fontFaceDeclaration));\n}\n/**\n * CSS to hide text to show a background image in a SEO-friendly way.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'backgroundImage': 'url(logo.png)',\n * ...hideText(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * backgroundImage: url(logo.png);\n * ${hideText()};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'backgroundImage': 'url(logo.png)',\n * 'textIndent': '101%',\n * 'overflow': 'hidden',\n * 'whiteSpace': 'nowrap',\n * }\n */\n\n\nfunction hideText() {\n return {\n textIndent: '101%',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n };\n}\n/**\n * CSS to hide content visually but remain accessible to screen readers.\n * from [HTML5 Boilerplate](https://github.com/h5bp/html5-boilerplate/blob/9a176f57af1cfe8ec70300da4621fb9b07e5fa31/src/css/main.css#L121)\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...hideVisually(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${hideVisually()};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'border': '0',\n * 'clip': 'rect(0 0 0 0)',\n * 'height': '1px',\n * 'margin': '-1px',\n * 'overflow': 'hidden',\n * 'padding': '0',\n * 'position': 'absolute',\n * 'whiteSpace': 'nowrap',\n * 'width': '1px',\n * }\n */\n\n\nfunction hideVisually() {\n return {\n border: '0',\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0',\n position: 'absolute',\n whiteSpace: 'nowrap',\n width: '1px'\n };\n}\n/**\n * Generates a media query to target HiDPI devices.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * [hiDPI(1.5)]: {\n * width: 200px;\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${hiDPI(1.5)} {\n * width: 200px;\n * }\n * `\n *\n * // CSS as JS Output\n *\n * '@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n * only screen and (min--moz-device-pixel-ratio: 1.5),\n * only screen and (-o-min-device-pixel-ratio: 1.5/1),\n * only screen and (min-resolution: 144dpi),\n * only screen and (min-resolution: 1.5dppx)': {\n * 'width': '200px',\n * }\n */\n\n\nfunction hiDPI(ratio) {\n if (ratio === void 0) {\n ratio = 1.3;\n }\n\n return \"\\n @media only screen and (-webkit-min-device-pixel-ratio: \" + ratio + \"),\\n only screen and (min--moz-device-pixel-ratio: \" + ratio + \"),\\n only screen and (-o-min-device-pixel-ratio: \" + ratio + \"/1),\\n only screen and (min-resolution: \" + Math.round(ratio * 96) + \"dpi),\\n only screen and (min-resolution: \" + ratio + \"dppx)\\n \";\n}\n\nfunction constructGradientValue(literals) {\n var template = '';\n\n for (var _len = arguments.length, substitutions = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n substitutions[_key - 1] = arguments[_key];\n }\n\n for (var i = 0; i < literals.length; i += 1) {\n template += literals[i];\n\n if (i === substitutions.length - 1 && substitutions[i]) {\n var definedValues = substitutions.filter(function (substitute) {\n return !!substitute;\n }); // Adds leading coma if properties preceed color-stops\n\n if (definedValues.length > 1) {\n template = template.slice(0, -1);\n template += \", \" + substitutions[i]; // No trailing space if color-stops is the only param provided\n } else if (definedValues.length === 1) {\n template += \"\" + substitutions[i];\n }\n } else if (substitutions[i]) {\n template += substitutions[i] + \" \";\n }\n }\n\n return template.trim();\n}\n\nvar _templateObject$1;\n/**\n * CSS for declaring a linear gradient, including a fallback background-color. The fallback is either the first color-stop or an explicitly passed fallback color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...linearGradient({\n colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n toDirection: 'to top right',\n fallback: '#FFF',\n })\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${linearGradient({\n colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n toDirection: 'to top right',\n fallback: '#FFF',\n })}\n *`\n *\n * // CSS as JS Output\n *\n * div: {\n * 'backgroundColor': '#FFF',\n * 'backgroundImage': 'linear-gradient(to top right, #00FFFF 0%, rgba(0, 0, 255, 0) 50%, #0000FF 95%)',\n * }\n */\n\n\nfunction linearGradient(_ref) {\n var colorStops = _ref.colorStops,\n fallback = _ref.fallback,\n _ref$toDirection = _ref.toDirection,\n toDirection = _ref$toDirection === void 0 ? '' : _ref$toDirection;\n\n if (!colorStops || colorStops.length < 2) {\n throw new PolishedError(56);\n }\n\n return {\n backgroundColor: fallback || colorStops[0].replace(/,\\s+/g, ',').split(' ')[0].replace(/,(?=\\S)/g, ', '),\n backgroundImage: constructGradientValue(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteralLoose([\"linear-gradient(\", \"\", \")\"])), toDirection, colorStops.join(', ').replace(/,(?=\\S)/g, ', '))\n };\n}\n/**\n * CSS to normalize abnormalities across browsers (normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css)\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...normalize(),\n * }\n *\n * // styled-components usage\n * const GlobalStyle = createGlobalStyle`${normalize()}`\n *\n * // CSS as JS Output\n *\n * html {\n * lineHeight: 1.15,\n * textSizeAdjust: 100%,\n * } ...\n */\n\n\nfunction normalize() {\n var _ref;\n\n return [(_ref = {\n html: {\n lineHeight: '1.15',\n textSizeAdjust: '100%'\n },\n body: {\n margin: '0'\n },\n main: {\n display: 'block'\n },\n h1: {\n fontSize: '2em',\n margin: '0.67em 0'\n },\n hr: {\n boxSizing: 'content-box',\n height: '0',\n overflow: 'visible'\n },\n pre: {\n fontFamily: 'monospace, monospace',\n fontSize: '1em'\n },\n a: {\n backgroundColor: 'transparent'\n },\n 'abbr[title]': {\n borderBottom: 'none',\n textDecoration: 'underline'\n }\n }, _ref[\"b,\\n strong\"] = {\n fontWeight: 'bolder'\n }, _ref[\"code,\\n kbd,\\n samp\"] = {\n fontFamily: 'monospace, monospace',\n fontSize: '1em'\n }, _ref.small = {\n fontSize: '80%'\n }, _ref[\"sub,\\n sup\"] = {\n fontSize: '75%',\n lineHeight: '0',\n position: 'relative',\n verticalAlign: 'baseline'\n }, _ref.sub = {\n bottom: '-0.25em'\n }, _ref.sup = {\n top: '-0.5em'\n }, _ref.img = {\n borderStyle: 'none'\n }, _ref[\"button,\\n input,\\n optgroup,\\n select,\\n textarea\"] = {\n fontFamily: 'inherit',\n fontSize: '100%',\n lineHeight: '1.15',\n margin: '0'\n }, _ref[\"button,\\n input\"] = {\n overflow: 'visible'\n }, _ref[\"button,\\n select\"] = {\n textTransform: 'none'\n }, _ref[\"button,\\n html [type=\\\"button\\\"],\\n [type=\\\"reset\\\"],\\n [type=\\\"submit\\\"]\"] = {\n WebkitAppearance: 'button'\n }, _ref[\"button::-moz-focus-inner,\\n [type=\\\"button\\\"]::-moz-focus-inner,\\n [type=\\\"reset\\\"]::-moz-focus-inner,\\n [type=\\\"submit\\\"]::-moz-focus-inner\"] = {\n borderStyle: 'none',\n padding: '0'\n }, _ref[\"button:-moz-focusring,\\n [type=\\\"button\\\"]:-moz-focusring,\\n [type=\\\"reset\\\"]:-moz-focusring,\\n [type=\\\"submit\\\"]:-moz-focusring\"] = {\n outline: '1px dotted ButtonText'\n }, _ref.fieldset = {\n padding: '0.35em 0.625em 0.75em'\n }, _ref.legend = {\n boxSizing: 'border-box',\n color: 'inherit',\n display: 'table',\n maxWidth: '100%',\n padding: '0',\n whiteSpace: 'normal'\n }, _ref.progress = {\n verticalAlign: 'baseline'\n }, _ref.textarea = {\n overflow: 'auto'\n }, _ref[\"[type=\\\"checkbox\\\"],\\n [type=\\\"radio\\\"]\"] = {\n boxSizing: 'border-box',\n padding: '0'\n }, _ref[\"[type=\\\"number\\\"]::-webkit-inner-spin-button,\\n [type=\\\"number\\\"]::-webkit-outer-spin-button\"] = {\n height: 'auto'\n }, _ref['[type=\"search\"]'] = {\n WebkitAppearance: 'textfield',\n outlineOffset: '-2px'\n }, _ref['[type=\"search\"]::-webkit-search-decoration'] = {\n WebkitAppearance: 'none'\n }, _ref['::-webkit-file-upload-button'] = {\n WebkitAppearance: 'button',\n font: 'inherit'\n }, _ref.details = {\n display: 'block'\n }, _ref.summary = {\n display: 'list-item'\n }, _ref.template = {\n display: 'none'\n }, _ref['[hidden]'] = {\n display: 'none'\n }, _ref), {\n 'abbr[title]': {\n textDecoration: 'underline dotted'\n }\n }];\n}\n\nvar _templateObject;\n/**\n * CSS for declaring a radial gradient, including a fallback background-color. The fallback is either the first color-stop or an explicitly passed fallback color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...radialGradient({\n * colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n * extent: 'farthest-corner at 45px 45px',\n * position: 'center',\n * shape: 'ellipse',\n * })\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${radialGradient({\n * colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n * extent: 'farthest-corner at 45px 45px',\n * position: 'center',\n * shape: 'ellipse',\n * })}\n *`\n *\n * // CSS as JS Output\n *\n * div: {\n * 'backgroundColor': '#00FFFF',\n * 'backgroundImage': 'radial-gradient(center ellipse farthest-corner at 45px 45px, #00FFFF 0%, rgba(0, 0, 255, 0) 50%, #0000FF 95%)',\n * }\n */\n\n\nfunction radialGradient(_ref) {\n var colorStops = _ref.colorStops,\n _ref$extent = _ref.extent,\n extent = _ref$extent === void 0 ? '' : _ref$extent,\n fallback = _ref.fallback,\n _ref$position = _ref.position,\n position = _ref$position === void 0 ? '' : _ref$position,\n _ref$shape = _ref.shape,\n shape = _ref$shape === void 0 ? '' : _ref$shape;\n\n if (!colorStops || colorStops.length < 2) {\n throw new PolishedError(57);\n }\n\n return {\n backgroundColor: fallback || colorStops[0].split(' ')[0],\n backgroundImage: constructGradientValue(_templateObject || (_templateObject = _taggedTemplateLiteralLoose([\"radial-gradient(\", \"\", \"\", \"\", \")\"])), position, shape, extent, colorStops.join(', '))\n };\n}\n/**\n * A helper to generate a retina background image and non-retina\n * background image. The retina background image will output to a HiDPI media query. The mixin uses\n * a _2x.png filename suffix by default.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...retinaImage('my-img')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${retinaImage('my-img')}\n * `\n *\n * // CSS as JS Output\n * div {\n * backgroundImage: 'url(my-img.png)',\n * '@media only screen and (-webkit-min-device-pixel-ratio: 1.3),\n * only screen and (min--moz-device-pixel-ratio: 1.3),\n * only screen and (-o-min-device-pixel-ratio: 1.3/1),\n * only screen and (min-resolution: 144dpi),\n * only screen and (min-resolution: 1.5dppx)': {\n * backgroundImage: 'url(my-img_2x.png)',\n * }\n * }\n */\n\n\nfunction retinaImage(filename, backgroundSize, extension, retinaFilename, retinaSuffix) {\n var _ref;\n\n if (extension === void 0) {\n extension = 'png';\n }\n\n if (retinaSuffix === void 0) {\n retinaSuffix = '_2x';\n }\n\n if (!filename) {\n throw new PolishedError(58);\n } // Replace the dot at the beginning of the passed extension if one exists\n\n\n var ext = extension.replace(/^\\./, '');\n var rFilename = retinaFilename ? retinaFilename + \".\" + ext : \"\" + filename + retinaSuffix + \".\" + ext;\n return _ref = {\n backgroundImage: \"url(\" + filename + \".\" + ext + \")\"\n }, _ref[hiDPI()] = _extends({\n backgroundImage: \"url(\" + rFilename + \")\"\n }, backgroundSize ? {\n backgroundSize: backgroundSize\n } : {}), _ref;\n}\n/* eslint-disable key-spacing */\n\n\nvar functionsMap = {\n easeInBack: 'cubic-bezier(0.600, -0.280, 0.735, 0.045)',\n easeInCirc: 'cubic-bezier(0.600, 0.040, 0.980, 0.335)',\n easeInCubic: 'cubic-bezier(0.550, 0.055, 0.675, 0.190)',\n easeInExpo: 'cubic-bezier(0.950, 0.050, 0.795, 0.035)',\n easeInQuad: 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n easeInQuart: 'cubic-bezier(0.895, 0.030, 0.685, 0.220)',\n easeInQuint: 'cubic-bezier(0.755, 0.050, 0.855, 0.060)',\n easeInSine: 'cubic-bezier(0.470, 0.000, 0.745, 0.715)',\n easeOutBack: 'cubic-bezier(0.175, 0.885, 0.320, 1.275)',\n easeOutCubic: 'cubic-bezier(0.215, 0.610, 0.355, 1.000)',\n easeOutCirc: 'cubic-bezier(0.075, 0.820, 0.165, 1.000)',\n easeOutExpo: 'cubic-bezier(0.190, 1.000, 0.220, 1.000)',\n easeOutQuad: 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n easeOutQuart: 'cubic-bezier(0.165, 0.840, 0.440, 1.000)',\n easeOutQuint: 'cubic-bezier(0.230, 1.000, 0.320, 1.000)',\n easeOutSine: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)',\n easeInOutBack: 'cubic-bezier(0.680, -0.550, 0.265, 1.550)',\n easeInOutCirc: 'cubic-bezier(0.785, 0.135, 0.150, 0.860)',\n easeInOutCubic: 'cubic-bezier(0.645, 0.045, 0.355, 1.000)',\n easeInOutExpo: 'cubic-bezier(1.000, 0.000, 0.000, 1.000)',\n easeInOutQuad: 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n easeInOutQuart: 'cubic-bezier(0.770, 0.000, 0.175, 1.000)',\n easeInOutQuint: 'cubic-bezier(0.860, 0.000, 0.070, 1.000)',\n easeInOutSine: 'cubic-bezier(0.445, 0.050, 0.550, 0.950)'\n};\n/* eslint-enable key-spacing */\n\nfunction getTimingFunction(functionName) {\n return functionsMap[functionName];\n}\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @deprecated - This will be deprecated in v5 in favor of `easeIn`, `easeOut`, `easeInOut`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': timingFunctions('easeInQuad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${timingFunctions('easeInQuad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n * }\n */\n\n\nfunction timingFunctions(timingFunction) {\n return getTimingFunction(timingFunction);\n}\n\nvar getBorderWidth = function getBorderWidth(pointingDirection, height, width) {\n var fullWidth = \"\" + width[0] + (width[1] || '');\n var halfWidth = \"\" + width[0] / 2 + (width[1] || '');\n var fullHeight = \"\" + height[0] + (height[1] || '');\n var halfHeight = \"\" + height[0] / 2 + (height[1] || '');\n\n switch (pointingDirection) {\n case 'top':\n return \"0 \" + halfWidth + \" \" + fullHeight + \" \" + halfWidth;\n\n case 'topLeft':\n return fullWidth + \" \" + fullHeight + \" 0 0\";\n\n case 'left':\n return halfHeight + \" \" + fullWidth + \" \" + halfHeight + \" 0\";\n\n case 'bottomLeft':\n return fullWidth + \" 0 0 \" + fullHeight;\n\n case 'bottom':\n return fullHeight + \" \" + halfWidth + \" 0 \" + halfWidth;\n\n case 'bottomRight':\n return \"0 0 \" + fullWidth + \" \" + fullHeight;\n\n case 'right':\n return halfHeight + \" 0 \" + halfHeight + \" \" + fullWidth;\n\n case 'topRight':\n default:\n return \"0 \" + fullWidth + \" \" + fullHeight + \" 0\";\n }\n};\n\nvar getBorderColor = function getBorderColor(pointingDirection, foregroundColor) {\n switch (pointingDirection) {\n case 'top':\n case 'bottomRight':\n return {\n borderBottomColor: foregroundColor\n };\n\n case 'right':\n case 'bottomLeft':\n return {\n borderLeftColor: foregroundColor\n };\n\n case 'bottom':\n case 'topLeft':\n return {\n borderTopColor: foregroundColor\n };\n\n case 'left':\n case 'topRight':\n return {\n borderRightColor: foregroundColor\n };\n\n default:\n throw new PolishedError(59);\n }\n};\n/**\n * CSS to represent triangle with any pointing direction with an optional background color.\n *\n * @example\n * // Styles as object usage\n *\n * const styles = {\n * ...triangle({ pointingDirection: 'right', width: '100px', height: '100px', foregroundColor: 'red' })\n * }\n *\n *\n * // styled-components usage\n * const div = styled.div`\n * ${triangle({ pointingDirection: 'right', width: '100px', height: '100px', foregroundColor: 'red' })}\n *\n *\n * // CSS as JS Output\n *\n * div: {\n * 'borderColor': 'transparent transparent transparent red',\n * 'borderStyle': 'solid',\n * 'borderWidth': '50px 0 50px 100px',\n * 'height': '0',\n * 'width': '0',\n * }\n */\n\n\nfunction triangle(_ref) {\n var pointingDirection = _ref.pointingDirection,\n height = _ref.height,\n width = _ref.width,\n foregroundColor = _ref.foregroundColor,\n _ref$backgroundColor = _ref.backgroundColor,\n backgroundColor = _ref$backgroundColor === void 0 ? 'transparent' : _ref$backgroundColor;\n var widthAndUnit = getValueAndUnit(width);\n var heightAndUnit = getValueAndUnit(height);\n\n if (isNaN(heightAndUnit[0]) || isNaN(widthAndUnit[0])) {\n throw new PolishedError(60);\n }\n\n return _extends({\n width: '0',\n height: '0',\n borderColor: backgroundColor\n }, getBorderColor(pointingDirection, foregroundColor), {\n borderStyle: 'solid',\n borderWidth: getBorderWidth(pointingDirection, heightAndUnit, widthAndUnit)\n });\n}\n/**\n * Provides an easy way to change the `wordWrap` property.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...wordWrap('break-word')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${wordWrap('break-word')}\n * `\n *\n * // CSS as JS Output\n *\n * const styles = {\n * overflowWrap: 'break-word',\n * wordWrap: 'break-word',\n * wordBreak: 'break-all',\n * }\n */\n\n\nfunction wordWrap(wrap) {\n if (wrap === void 0) {\n wrap = 'break-word';\n }\n\n var wordBreak = wrap === 'break-word' ? 'break-all' : wrap;\n return {\n overflowWrap: wrap,\n wordWrap: wrap,\n wordBreak: wordBreak\n };\n}\n\nfunction colorToInt(color) {\n return Math.round(color * 255);\n}\n\nfunction convertToInt(red, green, blue) {\n return colorToInt(red) + \",\" + colorToInt(green) + \",\" + colorToInt(blue);\n}\n\nfunction hslToRgb(hue, saturation, lightness, convert) {\n if (convert === void 0) {\n convert = convertToInt;\n }\n\n if (saturation === 0) {\n // achromatic\n return convert(lightness, lightness, lightness);\n } // formulae from https://en.wikipedia.org/wiki/HSL_and_HSV\n\n\n var huePrime = (hue % 360 + 360) % 360 / 60;\n var chroma = (1 - Math.abs(2 * lightness - 1)) * saturation;\n var secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1));\n var red = 0;\n var green = 0;\n var blue = 0;\n\n if (huePrime >= 0 && huePrime < 1) {\n red = chroma;\n green = secondComponent;\n } else if (huePrime >= 1 && huePrime < 2) {\n red = secondComponent;\n green = chroma;\n } else if (huePrime >= 2 && huePrime < 3) {\n green = chroma;\n blue = secondComponent;\n } else if (huePrime >= 3 && huePrime < 4) {\n green = secondComponent;\n blue = chroma;\n } else if (huePrime >= 4 && huePrime < 5) {\n red = secondComponent;\n blue = chroma;\n } else if (huePrime >= 5 && huePrime < 6) {\n red = chroma;\n blue = secondComponent;\n }\n\n var lightnessModification = lightness - chroma / 2;\n var finalRed = red + lightnessModification;\n var finalGreen = green + lightnessModification;\n var finalBlue = blue + lightnessModification;\n return convert(finalRed, finalGreen, finalBlue);\n}\n\nvar namedColorMap = {\n aliceblue: 'f0f8ff',\n antiquewhite: 'faebd7',\n aqua: '00ffff',\n aquamarine: '7fffd4',\n azure: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '000',\n blanchedalmond: 'ffebcd',\n blue: '0000ff',\n blueviolet: '8a2be2',\n brown: 'a52a2a',\n burlywood: 'deb887',\n cadetblue: '5f9ea0',\n chartreuse: '7fff00',\n chocolate: 'd2691e',\n coral: 'ff7f50',\n cornflowerblue: '6495ed',\n cornsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: '00ffff',\n darkblue: '00008b',\n darkcyan: '008b8b',\n darkgoldenrod: 'b8860b',\n darkgray: 'a9a9a9',\n darkgreen: '006400',\n darkgrey: 'a9a9a9',\n darkkhaki: 'bdb76b',\n darkmagenta: '8b008b',\n darkolivegreen: '556b2f',\n darkorange: 'ff8c00',\n darkorchid: '9932cc',\n darkred: '8b0000',\n darksalmon: 'e9967a',\n darkseagreen: '8fbc8f',\n darkslateblue: '483d8b',\n darkslategray: '2f4f4f',\n darkslategrey: '2f4f4f',\n darkturquoise: '00ced1',\n darkviolet: '9400d3',\n deeppink: 'ff1493',\n deepskyblue: '00bfff',\n dimgray: '696969',\n dimgrey: '696969',\n dodgerblue: '1e90ff',\n firebrick: 'b22222',\n floralwhite: 'fffaf0',\n forestgreen: '228b22',\n fuchsia: 'ff00ff',\n gainsboro: 'dcdcdc',\n ghostwhite: 'f8f8ff',\n gold: 'ffd700',\n goldenrod: 'daa520',\n gray: '808080',\n green: '008000',\n greenyellow: 'adff2f',\n grey: '808080',\n honeydew: 'f0fff0',\n hotpink: 'ff69b4',\n indianred: 'cd5c5c',\n indigo: '4b0082',\n ivory: 'fffff0',\n khaki: 'f0e68c',\n lavender: 'e6e6fa',\n lavenderblush: 'fff0f5',\n lawngreen: '7cfc00',\n lemonchiffon: 'fffacd',\n lightblue: 'add8e6',\n lightcoral: 'f08080',\n lightcyan: 'e0ffff',\n lightgoldenrodyellow: 'fafad2',\n lightgray: 'd3d3d3',\n lightgreen: '90ee90',\n lightgrey: 'd3d3d3',\n lightpink: 'ffb6c1',\n lightsalmon: 'ffa07a',\n lightseagreen: '20b2aa',\n lightskyblue: '87cefa',\n lightslategray: '789',\n lightslategrey: '789',\n lightsteelblue: 'b0c4de',\n lightyellow: 'ffffe0',\n lime: '0f0',\n limegreen: '32cd32',\n linen: 'faf0e6',\n magenta: 'f0f',\n maroon: '800000',\n mediumaquamarine: '66cdaa',\n mediumblue: '0000cd',\n mediumorchid: 'ba55d3',\n mediumpurple: '9370db',\n mediumseagreen: '3cb371',\n mediumslateblue: '7b68ee',\n mediumspringgreen: '00fa9a',\n mediumturquoise: '48d1cc',\n mediumvioletred: 'c71585',\n midnightblue: '191970',\n mintcream: 'f5fffa',\n mistyrose: 'ffe4e1',\n moccasin: 'ffe4b5',\n navajowhite: 'ffdead',\n navy: '000080',\n oldlace: 'fdf5e6',\n olive: '808000',\n olivedrab: '6b8e23',\n orange: 'ffa500',\n orangered: 'ff4500',\n orchid: 'da70d6',\n palegoldenrod: 'eee8aa',\n palegreen: '98fb98',\n paleturquoise: 'afeeee',\n palevioletred: 'db7093',\n papayawhip: 'ffefd5',\n peachpuff: 'ffdab9',\n peru: 'cd853f',\n pink: 'ffc0cb',\n plum: 'dda0dd',\n powderblue: 'b0e0e6',\n purple: '800080',\n rebeccapurple: '639',\n red: 'f00',\n rosybrown: 'bc8f8f',\n royalblue: '4169e1',\n saddlebrown: '8b4513',\n salmon: 'fa8072',\n sandybrown: 'f4a460',\n seagreen: '2e8b57',\n seashell: 'fff5ee',\n sienna: 'a0522d',\n silver: 'c0c0c0',\n skyblue: '87ceeb',\n slateblue: '6a5acd',\n slategray: '708090',\n slategrey: '708090',\n snow: 'fffafa',\n springgreen: '00ff7f',\n steelblue: '4682b4',\n tan: 'd2b48c',\n teal: '008080',\n thistle: 'd8bfd8',\n tomato: 'ff6347',\n turquoise: '40e0d0',\n violet: 'ee82ee',\n wheat: 'f5deb3',\n white: 'fff',\n whitesmoke: 'f5f5f5',\n yellow: 'ff0',\n yellowgreen: '9acd32'\n};\n/**\n * Checks if a string is a CSS named color and returns its equivalent hex value, otherwise returns the original color.\n * @private\n */\n\nfunction nameToHex(color) {\n if (typeof color !== 'string') return color;\n var normalizedColorName = color.toLowerCase();\n return namedColorMap[normalizedColorName] ? \"#\" + namedColorMap[normalizedColorName] : color;\n}\n\nvar hexRegex = /^#[a-fA-F0-9]{6}$/;\nvar hexRgbaRegex = /^#[a-fA-F0-9]{8}$/;\nvar reducedHexRegex = /^#[a-fA-F0-9]{3}$/;\nvar reducedRgbaHexRegex = /^#[a-fA-F0-9]{4}$/;\nvar rgbRegex = /^rgb\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*\\)$/i;\nvar rgbaRegex = /^rgba\\(\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*(\\d{1,3})\\s*,\\s*([-+]?[0-9]*[.]?[0-9]+)\\s*\\)$/i;\nvar hslRegex = /^hsl\\(\\s*(\\d{0,3}[.]?[0-9]+)\\s*,\\s*(\\d{1,3}[.]?[0-9]?)%\\s*,\\s*(\\d{1,3}[.]?[0-9]?)%\\s*\\)$/i;\nvar hslaRegex = /^hsla\\(\\s*(\\d{0,3}[.]?[0-9]+)\\s*,\\s*(\\d{1,3}[.]?[0-9]?)%\\s*,\\s*(\\d{1,3}[.]?[0-9]?)%\\s*,\\s*([-+]?[0-9]*[.]?[0-9]+)\\s*\\)$/i;\n/**\n * Returns an RgbColor or RgbaColor object. This utility function is only useful\n * if want to extract a color component. With the color util `toColorString` you\n * can convert a RgbColor or RgbaColor object back to a string.\n *\n * @example\n * // Assigns `{ red: 255, green: 0, blue: 0 }` to color1\n * const color1 = parseToRgb('rgb(255, 0, 0)');\n * // Assigns `{ red: 92, green: 102, blue: 112, alpha: 0.75 }` to color2\n * const color2 = parseToRgb('hsla(210, 10%, 40%, 0.75)');\n */\n\nfunction parseToRgb(color) {\n if (typeof color !== 'string') {\n throw new PolishedError(3);\n }\n\n var normalizedColor = nameToHex(color);\n\n if (normalizedColor.match(hexRegex)) {\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16)\n };\n }\n\n if (normalizedColor.match(hexRgbaRegex)) {\n var alpha = parseFloat((parseInt(\"\" + normalizedColor[7] + normalizedColor[8], 16) / 255).toFixed(2));\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16),\n alpha: alpha\n };\n }\n\n if (normalizedColor.match(reducedHexRegex)) {\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16)\n };\n }\n\n if (normalizedColor.match(reducedRgbaHexRegex)) {\n var _alpha = parseFloat((parseInt(\"\" + normalizedColor[4] + normalizedColor[4], 16) / 255).toFixed(2));\n\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16),\n alpha: _alpha\n };\n }\n\n var rgbMatched = rgbRegex.exec(normalizedColor);\n\n if (rgbMatched) {\n return {\n red: parseInt(\"\" + rgbMatched[1], 10),\n green: parseInt(\"\" + rgbMatched[2], 10),\n blue: parseInt(\"\" + rgbMatched[3], 10)\n };\n }\n\n var rgbaMatched = rgbaRegex.exec(normalizedColor.substring(0, 50));\n\n if (rgbaMatched) {\n return {\n red: parseInt(\"\" + rgbaMatched[1], 10),\n green: parseInt(\"\" + rgbaMatched[2], 10),\n blue: parseInt(\"\" + rgbaMatched[3], 10),\n alpha: parseFloat(\"\" + rgbaMatched[4])\n };\n }\n\n var hslMatched = hslRegex.exec(normalizedColor);\n\n if (hslMatched) {\n var hue = parseInt(\"\" + hslMatched[1], 10);\n var saturation = parseInt(\"\" + hslMatched[2], 10) / 100;\n var lightness = parseInt(\"\" + hslMatched[3], 10) / 100;\n var rgbColorString = \"rgb(\" + hslToRgb(hue, saturation, lightness) + \")\";\n var hslRgbMatched = rgbRegex.exec(rgbColorString);\n\n if (!hslRgbMatched) {\n throw new PolishedError(4, normalizedColor, rgbColorString);\n }\n\n return {\n red: parseInt(\"\" + hslRgbMatched[1], 10),\n green: parseInt(\"\" + hslRgbMatched[2], 10),\n blue: parseInt(\"\" + hslRgbMatched[3], 10)\n };\n }\n\n var hslaMatched = hslaRegex.exec(normalizedColor.substring(0, 50));\n\n if (hslaMatched) {\n var _hue = parseInt(\"\" + hslaMatched[1], 10);\n\n var _saturation = parseInt(\"\" + hslaMatched[2], 10) / 100;\n\n var _lightness = parseInt(\"\" + hslaMatched[3], 10) / 100;\n\n var _rgbColorString = \"rgb(\" + hslToRgb(_hue, _saturation, _lightness) + \")\";\n\n var _hslRgbMatched = rgbRegex.exec(_rgbColorString);\n\n if (!_hslRgbMatched) {\n throw new PolishedError(4, normalizedColor, _rgbColorString);\n }\n\n return {\n red: parseInt(\"\" + _hslRgbMatched[1], 10),\n green: parseInt(\"\" + _hslRgbMatched[2], 10),\n blue: parseInt(\"\" + _hslRgbMatched[3], 10),\n alpha: parseFloat(\"\" + hslaMatched[4])\n };\n }\n\n throw new PolishedError(5);\n}\n\nfunction rgbToHsl(color) {\n // make sure rgb are contained in a set of [0, 255]\n var red = color.red / 255;\n var green = color.green / 255;\n var blue = color.blue / 255;\n var max = Math.max(red, green, blue);\n var min = Math.min(red, green, blue);\n var lightness = (max + min) / 2;\n\n if (max === min) {\n // achromatic\n if (color.alpha !== undefined) {\n return {\n hue: 0,\n saturation: 0,\n lightness: lightness,\n alpha: color.alpha\n };\n } else {\n return {\n hue: 0,\n saturation: 0,\n lightness: lightness\n };\n }\n }\n\n var hue;\n var delta = max - min;\n var saturation = lightness > 0.5 ? delta / (2 - max - min) : delta / (max + min);\n\n switch (max) {\n case red:\n hue = (green - blue) / delta + (green < blue ? 6 : 0);\n break;\n\n case green:\n hue = (blue - red) / delta + 2;\n break;\n\n default:\n // blue case\n hue = (red - green) / delta + 4;\n break;\n }\n\n hue *= 60;\n\n if (color.alpha !== undefined) {\n return {\n hue: hue,\n saturation: saturation,\n lightness: lightness,\n alpha: color.alpha\n };\n }\n\n return {\n hue: hue,\n saturation: saturation,\n lightness: lightness\n };\n}\n/**\n * Returns an HslColor or HslaColor object. This utility function is only useful\n * if want to extract a color component. With the color util `toColorString` you\n * can convert a HslColor or HslaColor object back to a string.\n *\n * @example\n * // Assigns `{ hue: 0, saturation: 1, lightness: 0.5 }` to color1\n * const color1 = parseToHsl('rgb(255, 0, 0)');\n * // Assigns `{ hue: 128, saturation: 1, lightness: 0.5, alpha: 0.75 }` to color2\n * const color2 = parseToHsl('hsla(128, 100%, 50%, 0.75)');\n */\n\n\nfunction parseToHsl(color) {\n // Note: At a later stage we can optimize this function as right now a hsl\n // color would be parsed converted to rgb values and converted back to hsl.\n return rgbToHsl(parseToRgb(color));\n}\n/**\n * Reduces hex values if possible e.g. #ff8866 to #f86\n * @private\n */\n\n\nvar reduceHexValue = function reduceHexValue(value) {\n if (value.length === 7 && value[1] === value[2] && value[3] === value[4] && value[5] === value[6]) {\n return \"#\" + value[1] + value[3] + value[5];\n }\n\n return value;\n};\n\nfunction numberToHex(value) {\n var hex = value.toString(16);\n return hex.length === 1 ? \"0\" + hex : hex;\n}\n\nfunction colorToHex(color) {\n return numberToHex(Math.round(color * 255));\n}\n\nfunction convertToHex(red, green, blue) {\n return reduceHexValue(\"#\" + colorToHex(red) + colorToHex(green) + colorToHex(blue));\n}\n\nfunction hslToHex(hue, saturation, lightness) {\n return hslToRgb(hue, saturation, lightness, convertToHex);\n}\n/**\n * Returns a string value for the color. The returned result is the smallest possible hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hsl(359, 0.75, 0.4),\n * background: hsl({ hue: 360, saturation: 0.75, lightness: 0.4 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hsl(359, 0.75, 0.4)};\n * background: ${hsl({ hue: 360, saturation: 0.75, lightness: 0.4 })};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#b3191c\";\n * background: \"#b3191c\";\n * }\n */\n\n\nfunction hsl(value, saturation, lightness) {\n if (typeof value === 'number' && typeof saturation === 'number' && typeof lightness === 'number') {\n return hslToHex(value, saturation, lightness);\n } else if (typeof value === 'object' && saturation === undefined && lightness === undefined) {\n return hslToHex(value.hue, value.saturation, value.lightness);\n }\n\n throw new PolishedError(1);\n}\n/**\n * Returns a string value for the color. The returned result is the smallest possible rgba or hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hsla(359, 0.75, 0.4, 0.7),\n * background: hsla({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0,7 }),\n * background: hsla(359, 0.75, 0.4, 1),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hsla(359, 0.75, 0.4, 0.7)};\n * background: ${hsla({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0,7 })};\n * background: ${hsla(359, 0.75, 0.4, 1)};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(179,25,28,0.7)\";\n * background: \"rgba(179,25,28,0.7)\";\n * background: \"#b3191c\";\n * }\n */\n\n\nfunction hsla(value, saturation, lightness, alpha) {\n if (typeof value === 'number' && typeof saturation === 'number' && typeof lightness === 'number' && typeof alpha === 'number') {\n return alpha >= 1 ? hslToHex(value, saturation, lightness) : \"rgba(\" + hslToRgb(value, saturation, lightness) + \",\" + alpha + \")\";\n } else if (typeof value === 'object' && saturation === undefined && lightness === undefined && alpha === undefined) {\n return value.alpha >= 1 ? hslToHex(value.hue, value.saturation, value.lightness) : \"rgba(\" + hslToRgb(value.hue, value.saturation, value.lightness) + \",\" + value.alpha + \")\";\n }\n\n throw new PolishedError(2);\n}\n/**\n * Returns a string value for the color. The returned result is the smallest possible hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgb(255, 205, 100),\n * background: rgb({ red: 255, green: 205, blue: 100 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgb(255, 205, 100)};\n * background: ${rgb({ red: 255, green: 205, blue: 100 })};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#ffcd64\";\n * background: \"#ffcd64\";\n * }\n */\n\n\nfunction rgb(value, green, blue) {\n if (typeof value === 'number' && typeof green === 'number' && typeof blue === 'number') {\n return reduceHexValue(\"#\" + numberToHex(value) + numberToHex(green) + numberToHex(blue));\n } else if (typeof value === 'object' && green === undefined && blue === undefined) {\n return reduceHexValue(\"#\" + numberToHex(value.red) + numberToHex(value.green) + numberToHex(value.blue));\n }\n\n throw new PolishedError(6);\n}\n/**\n * Returns a string value for the color. The returned result is the smallest possible rgba or hex notation.\n *\n * Can also be used to fade a color by passing a hex value or named CSS color along with an alpha value.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgba(255, 205, 100, 0.7),\n * background: rgba({ red: 255, green: 205, blue: 100, alpha: 0.7 }),\n * background: rgba(255, 205, 100, 1),\n * background: rgba('#ffffff', 0.4),\n * background: rgba('black', 0.7),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgba(255, 205, 100, 0.7)};\n * background: ${rgba({ red: 255, green: 205, blue: 100, alpha: 0.7 })};\n * background: ${rgba(255, 205, 100, 1)};\n * background: ${rgba('#ffffff', 0.4)};\n * background: ${rgba('black', 0.7)};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(255,205,100,0.7)\";\n * background: \"rgba(255,205,100,0.7)\";\n * background: \"#ffcd64\";\n * background: \"rgba(255,255,255,0.4)\";\n * background: \"rgba(0,0,0,0.7)\";\n * }\n */\n\n\nfunction rgba(firstValue, secondValue, thirdValue, fourthValue) {\n if (typeof firstValue === 'string' && typeof secondValue === 'number') {\n var rgbValue = parseToRgb(firstValue);\n return \"rgba(\" + rgbValue.red + \",\" + rgbValue.green + \",\" + rgbValue.blue + \",\" + secondValue + \")\";\n } else if (typeof firstValue === 'number' && typeof secondValue === 'number' && typeof thirdValue === 'number' && typeof fourthValue === 'number') {\n return fourthValue >= 1 ? rgb(firstValue, secondValue, thirdValue) : \"rgba(\" + firstValue + \",\" + secondValue + \",\" + thirdValue + \",\" + fourthValue + \")\";\n } else if (typeof firstValue === 'object' && secondValue === undefined && thirdValue === undefined && fourthValue === undefined) {\n return firstValue.alpha >= 1 ? rgb(firstValue.red, firstValue.green, firstValue.blue) : \"rgba(\" + firstValue.red + \",\" + firstValue.green + \",\" + firstValue.blue + \",\" + firstValue.alpha + \")\";\n }\n\n throw new PolishedError(7);\n}\n\nvar isRgb = function isRgb(color) {\n return typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number' && (typeof color.alpha !== 'number' || typeof color.alpha === 'undefined');\n};\n\nvar isRgba = function isRgba(color) {\n return typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number' && typeof color.alpha === 'number';\n};\n\nvar isHsl = function isHsl(color) {\n return typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number' && (typeof color.alpha !== 'number' || typeof color.alpha === 'undefined');\n};\n\nvar isHsla = function isHsla(color) {\n return typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number' && typeof color.alpha === 'number';\n};\n/**\n * Converts a RgbColor, RgbaColor, HslColor or HslaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `rgb`, `rgba`, `hsl` or `hsla`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: toColorString({ red: 255, green: 205, blue: 100 }),\n * background: toColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 }),\n * background: toColorString({ hue: 240, saturation: 1, lightness: 0.5 }),\n * background: toColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${toColorString({ red: 255, green: 205, blue: 100 })};\n * background: ${toColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 })};\n * background: ${toColorString({ hue: 240, saturation: 1, lightness: 0.5 })};\n * background: ${toColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#ffcd64\";\n * background: \"rgba(255,205,100,0.72)\";\n * background: \"#00f\";\n * background: \"rgba(179,25,25,0.72)\";\n * }\n */\n\n\nfunction toColorString(color) {\n if (typeof color !== 'object') throw new PolishedError(8);\n if (isRgba(color)) return rgba(color);\n if (isRgb(color)) return rgb(color);\n if (isHsla(color)) return hsla(color);\n if (isHsl(color)) return hsl(color);\n throw new PolishedError(8);\n} // Type definitions taken from https://github.com/gcanti/flow-static-land/blob/master/src/Fun.js\n// eslint-disable-next-line no-unused-vars\n// eslint-disable-next-line no-unused-vars\n// eslint-disable-next-line no-redeclare\n\n\nfunction curried(f, length, acc) {\n return function fn() {\n // eslint-disable-next-line prefer-rest-params\n var combined = acc.concat(Array.prototype.slice.call(arguments));\n return combined.length >= length ? f.apply(this, combined) : curried(f, length, combined);\n };\n} // eslint-disable-next-line no-redeclare\n\n\nfunction curry(f) {\n // eslint-disable-line no-redeclare\n return curried(f, f.length, []);\n}\n/**\n * Changes the hue of the color. Hue is a number between 0 to 360. The first\n * argument for adjustHue is the amount of degrees the color is rotated around\n * the color wheel, always producing a positive hue value.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: adjustHue(180, '#448'),\n * background: adjustHue('180', 'rgba(101,100,205,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${adjustHue(180, '#448')};\n * background: ${adjustHue('180', 'rgba(101,100,205,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#888844\";\n * background: \"rgba(136,136,68,0.7)\";\n * }\n */\n\n\nfunction adjustHue(degree, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n hue: hslColor.hue + parseFloat(degree)\n }));\n} // prettier-ignore\n\n\nvar curriedAdjustHue = /*#__PURE__*/curry\n/* ::<number | string, string, string> */\n(adjustHue);\n/**\n * Returns the complement of the provided color. This is identical to adjustHue(180, <color>).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: complement('#448'),\n * background: complement('rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${complement('#448')};\n * background: ${complement('rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#884\";\n * background: \"rgba(153,153,153,0.7)\";\n * }\n */\n\nfunction complement(color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n hue: (hslColor.hue + 180) % 360\n }));\n}\n\nfunction guard(lowerBoundary, upperBoundary, value) {\n return Math.max(lowerBoundary, Math.min(upperBoundary, value));\n}\n/**\n * Returns a string value for the darkened color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: darken(0.2, '#FFCD64'),\n * background: darken('0.2', 'rgba(255,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${darken(0.2, '#FFCD64')};\n * background: ${darken('0.2', 'rgba(255,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#ffbd31\";\n * background: \"rgba(255,189,49,0.7)\";\n * }\n */\n\n\nfunction darken(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n lightness: guard(0, 1, hslColor.lightness - parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedDarken = /*#__PURE__*/curry\n/* ::<number | string, string, string> */\n(darken);\n/**\n * Decreases the intensity of a color. Its range is between 0 to 1. The first\n * argument of the desaturate function is the amount by how much the color\n * intensity should be decreased.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: desaturate(0.2, '#CCCD64'),\n * background: desaturate('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${desaturate(0.2, '#CCCD64')};\n * background: ${desaturate('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#b8b979\";\n * background: \"rgba(184,185,121,0.7)\";\n * }\n */\n\nfunction desaturate(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n saturation: guard(0, 1, hslColor.saturation - parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedDesaturate = /*#__PURE__*/curry\n/* ::<number | string, string, string> */\n(desaturate);\n/**\n * Returns a number (float) representing the luminance of a color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: getLuminance('#CCCD64') >= getLuminance('#0000ff') ? '#CCCD64' : '#0000ff',\n * background: getLuminance('rgba(58, 133, 255, 1)') >= getLuminance('rgba(255, 57, 149, 1)') ?\n * 'rgba(58, 133, 255, 1)' :\n * 'rgba(255, 57, 149, 1)',\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${getLuminance('#CCCD64') >= getLuminance('#0000ff') ? '#CCCD64' : '#0000ff'};\n * background: ${getLuminance('rgba(58, 133, 255, 1)') >= getLuminance('rgba(255, 57, 149, 1)') ?\n * 'rgba(58, 133, 255, 1)' :\n * 'rgba(255, 57, 149, 1)'};\n *\n * // CSS in JS Output\n *\n * div {\n * background: \"#CCCD64\";\n * background: \"rgba(58, 133, 255, 1)\";\n * }\n */\n\nfunction getLuminance(color) {\n if (color === 'transparent') return 0;\n var rgbColor = parseToRgb(color);\n\n var _Object$keys$map = Object.keys(rgbColor).map(function (key) {\n var channel = rgbColor[key] / 255;\n return channel <= 0.03928 ? channel / 12.92 : Math.pow((channel + 0.055) / 1.055, 2.4);\n }),\n r = _Object$keys$map[0],\n g = _Object$keys$map[1],\n b = _Object$keys$map[2];\n\n return parseFloat((0.2126 * r + 0.7152 * g + 0.0722 * b).toFixed(3));\n}\n/**\n * Returns the contrast ratio between two colors based on\n * [W3's recommended equation for calculating contrast](http://www.w3.org/TR/WCAG20/#contrast-ratiodef).\n *\n * @example\n * const contrastRatio = getContrast('#444', '#fff');\n */\n\n\nfunction getContrast(color1, color2) {\n var luminance1 = getLuminance(color1);\n var luminance2 = getLuminance(color2);\n return parseFloat((luminance1 > luminance2 ? (luminance1 + 0.05) / (luminance2 + 0.05) : (luminance2 + 0.05) / (luminance1 + 0.05)).toFixed(2));\n}\n/**\n * Converts the color to a grayscale, by reducing its saturation to 0.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: grayscale('#CCCD64'),\n * background: grayscale('rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${grayscale('#CCCD64')};\n * background: ${grayscale('rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#999\";\n * background: \"rgba(153,153,153,0.7)\";\n * }\n */\n\n\nfunction grayscale(color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n saturation: 0\n }));\n}\n/**\n * Converts a HslColor or HslaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `hsl` or `hsla`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hslToColorString({ hue: 240, saturation: 1, lightness: 0.5 }),\n * background: hslToColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hslToColorString({ hue: 240, saturation: 1, lightness: 0.5 })};\n * background: ${hslToColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#00f\";\n * background: \"rgba(179,25,25,0.72)\";\n * }\n */\n\n\nfunction hslToColorString(color) {\n if (typeof color === 'object' && typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number') {\n if (color.alpha && typeof color.alpha === 'number') {\n return hsla({\n hue: color.hue,\n saturation: color.saturation,\n lightness: color.lightness,\n alpha: color.alpha\n });\n }\n\n return hsl({\n hue: color.hue,\n saturation: color.saturation,\n lightness: color.lightness\n });\n }\n\n throw new PolishedError(45);\n}\n/**\n * Inverts the red, green and blue values of a color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: invert('#CCCD64'),\n * background: invert('rgba(101,100,205,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${invert('#CCCD64')};\n * background: ${invert('rgba(101,100,205,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#33329b\";\n * background: \"rgba(154,155,50,0.7)\";\n * }\n */\n\n\nfunction invert(color) {\n if (color === 'transparent') return color; // parse color string to rgb\n\n var value = parseToRgb(color);\n return toColorString(_extends({}, value, {\n red: 255 - value.red,\n green: 255 - value.green,\n blue: 255 - value.blue\n }));\n}\n/**\n * Returns a string value for the lightened color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: lighten(0.2, '#CCCD64'),\n * background: lighten('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${lighten(0.2, '#FFCD64')};\n * background: ${lighten('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#e5e6b1\";\n * background: \"rgba(229,230,177,0.7)\";\n * }\n */\n\n\nfunction lighten(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n lightness: guard(0, 1, hslColor.lightness + parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedLighten = /*#__PURE__*/curry\n/* ::<number | string, string, string> */\n(lighten);\n/**\n * Determines which contrast guidelines have been met for two colors.\n * Based on the [contrast calculations recommended by W3](https://www.w3.org/WAI/WCAG21/Understanding/contrast-enhanced.html).\n *\n * @example\n * const scores = meetsContrastGuidelines('#444', '#fff');\n */\n\nfunction meetsContrastGuidelines(color1, color2) {\n var contrastRatio = getContrast(color1, color2);\n return {\n AA: contrastRatio >= 4.5,\n AALarge: contrastRatio >= 3,\n AAA: contrastRatio >= 7,\n AAALarge: contrastRatio >= 4.5\n };\n}\n/**\n * Mixes the two provided colors together by calculating the average of each of the RGB components weighted to the first color by the provided weight.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: mix(0.5, '#f00', '#00f')\n * background: mix(0.25, '#f00', '#00f')\n * background: mix('0.5', 'rgba(255, 0, 0, 0.5)', '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${mix(0.5, '#f00', '#00f')};\n * background: ${mix(0.25, '#f00', '#00f')};\n * background: ${mix('0.5', 'rgba(255, 0, 0, 0.5)', '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#7f007f\";\n * background: \"#3f00bf\";\n * background: \"rgba(63, 0, 191, 0.75)\";\n * }\n */\n\n\nfunction mix(weight, color, otherColor) {\n if (color === 'transparent') return otherColor;\n if (otherColor === 'transparent') return color;\n if (weight === 0) return otherColor;\n var parsedColor1 = parseToRgb(color);\n\n var color1 = _extends({}, parsedColor1, {\n alpha: typeof parsedColor1.alpha === 'number' ? parsedColor1.alpha : 1\n });\n\n var parsedColor2 = parseToRgb(otherColor);\n\n var color2 = _extends({}, parsedColor2, {\n alpha: typeof parsedColor2.alpha === 'number' ? parsedColor2.alpha : 1\n }); // The formula is copied from the original Sass implementation:\n // http://sass-lang.com/documentation/Sass/Script/Functions.html#mix-instance_method\n\n\n var alphaDelta = color1.alpha - color2.alpha;\n var x = parseFloat(weight) * 2 - 1;\n var y = x * alphaDelta === -1 ? x : x + alphaDelta;\n var z = 1 + x * alphaDelta;\n var weight1 = (y / z + 1) / 2.0;\n var weight2 = 1 - weight1;\n var mixedColor = {\n red: Math.floor(color1.red * weight1 + color2.red * weight2),\n green: Math.floor(color1.green * weight1 + color2.green * weight2),\n blue: Math.floor(color1.blue * weight1 + color2.blue * weight2),\n alpha: color1.alpha * (parseFloat(weight) / 1.0) + color2.alpha * (1 - parseFloat(weight) / 1.0)\n };\n return rgba(mixedColor);\n} // prettier-ignore\n\n\nvar curriedMix = /*#__PURE__*/curry\n/* ::<number | string, string, string, string> */\n(mix);\n/**\n * Increases the opacity of a color. Its range for the amount is between 0 to 1.\n *\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: opacify(0.1, 'rgba(255, 255, 255, 0.9)');\n * background: opacify(0.2, 'hsla(0, 0%, 100%, 0.5)'),\n * background: opacify('0.5', 'rgba(255, 0, 0, 0.2)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${opacify(0.1, 'rgba(255, 255, 255, 0.9)')};\n * background: ${opacify(0.2, 'hsla(0, 0%, 100%, 0.5)')},\n * background: ${opacify('0.5', 'rgba(255, 0, 0, 0.2)')},\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#fff\";\n * background: \"rgba(255,255,255,0.7)\";\n * background: \"rgba(255,0,0,0.7)\";\n * }\n */\n\nfunction opacify(amount, color) {\n if (color === 'transparent') return color;\n var parsedColor = parseToRgb(color);\n var alpha = typeof parsedColor.alpha === 'number' ? parsedColor.alpha : 1;\n\n var colorWithAlpha = _extends({}, parsedColor, {\n alpha: guard(0, 1, (alpha * 100 + parseFloat(amount) * 100) / 100)\n });\n\n return rgba(colorWithAlpha);\n} // prettier-ignore\n\n\nvar curriedOpacify = /*#__PURE__*/curry\n/* ::<number | string, string, string> */\n(opacify);\nvar defaultReturnIfLightColor = '#000';\nvar defaultReturnIfDarkColor = '#fff';\n/**\n * Returns black or white (or optional passed colors) for best\n * contrast depending on the luminosity of the given color.\n * When passing custom return colors, strict mode ensures that the\n * return color always meets or exceeds WCAG level AA or greater. If this test\n * fails, the default return color (black or white) is returned in place of the\n * custom return color. You can optionally turn off strict mode.\n *\n * Follows [W3C specs for readability](https://www.w3.org/TR/WCAG20-TECHS/G18.html).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * color: readableColor('#000'),\n * color: readableColor('black', '#001', '#ff8'),\n * color: readableColor('white', '#001', '#ff8'),\n * color: readableColor('red', '#333', '#ddd', true)\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * color: ${readableColor('#000')};\n * color: ${readableColor('black', '#001', '#ff8')};\n * color: ${readableColor('white', '#001', '#ff8')};\n * color: ${readableColor('red', '#333', '#ddd', true)};\n * `\n *\n * // CSS in JS Output\n * element {\n * color: \"#fff\";\n * color: \"#ff8\";\n * color: \"#001\";\n * color: \"#000\";\n * }\n */\n\nfunction readableColor(color, returnIfLightColor, returnIfDarkColor, strict) {\n if (returnIfLightColor === void 0) {\n returnIfLightColor = defaultReturnIfLightColor;\n }\n\n if (returnIfDarkColor === void 0) {\n returnIfDarkColor = defaultReturnIfDarkColor;\n }\n\n if (strict === void 0) {\n strict = true;\n }\n\n var isColorLight = getLuminance(color) > 0.179;\n var preferredReturnColor = isColorLight ? returnIfLightColor : returnIfDarkColor;\n\n if (!strict || getContrast(color, preferredReturnColor) >= 4.5) {\n return preferredReturnColor;\n }\n\n return isColorLight ? defaultReturnIfLightColor : defaultReturnIfDarkColor;\n}\n/**\n * Converts a RgbColor or RgbaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `rgb` or `rgba`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgbToColorString({ red: 255, green: 205, blue: 100 }),\n * background: rgbToColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgbToColorString({ red: 255, green: 205, blue: 100 })};\n * background: ${rgbToColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#ffcd64\";\n * background: \"rgba(255,205,100,0.72)\";\n * }\n */\n\n\nfunction rgbToColorString(color) {\n if (typeof color === 'object' && typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number') {\n if (typeof color.alpha === 'number') {\n return rgba({\n red: color.red,\n green: color.green,\n blue: color.blue,\n alpha: color.alpha\n });\n }\n\n return rgb({\n red: color.red,\n green: color.green,\n blue: color.blue\n });\n }\n\n throw new PolishedError(46);\n}\n/**\n * Increases the intensity of a color. Its range is between 0 to 1. The first\n * argument of the saturate function is the amount by how much the color\n * intensity should be increased.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: saturate(0.2, '#CCCD64'),\n * background: saturate('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${saturate(0.2, '#FFCD64')};\n * background: ${saturate('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#e0e250\";\n * background: \"rgba(224,226,80,0.7)\";\n * }\n */\n\n\nfunction saturate(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n saturation: guard(0, 1, hslColor.saturation + parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedSaturate = /*#__PURE__*/curry\n/* ::<number | string, string, string> */\n(saturate);\n/**\n * Sets the hue of a color to the provided value. The hue range can be\n * from 0 and 359.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setHue(42, '#CCCD64'),\n * background: setHue('244', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setHue(42, '#CCCD64')};\n * background: ${setHue('244', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#cdae64\";\n * background: \"rgba(107,100,205,0.7)\";\n * }\n */\n\nfunction setHue(hue, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n hue: parseFloat(hue)\n }));\n} // prettier-ignore\n\n\nvar curriedSetHue = /*#__PURE__*/curry\n/* ::<number | string, string, string> */\n(setHue);\n/**\n * Sets the lightness of a color to the provided value. The lightness range can be\n * from 0 and 1.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setLightness(0.2, '#CCCD64'),\n * background: setLightness('0.75', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setLightness(0.2, '#CCCD64')};\n * background: ${setLightness('0.75', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#4d4d19\";\n * background: \"rgba(223,224,159,0.7)\";\n * }\n */\n\nfunction setLightness(lightness, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n lightness: parseFloat(lightness)\n }));\n} // prettier-ignore\n\n\nvar curriedSetLightness = /*#__PURE__*/curry\n/* ::<number | string, string, string> */\n(setLightness);\n/**\n * Sets the saturation of a color to the provided value. The saturation range can be\n * from 0 and 1.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setSaturation(0.2, '#CCCD64'),\n * background: setSaturation('0.75', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setSaturation(0.2, '#CCCD64')};\n * background: ${setSaturation('0.75', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#adad84\";\n * background: \"rgba(228,229,76,0.7)\";\n * }\n */\n\nfunction setSaturation(saturation, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n saturation: parseFloat(saturation)\n }));\n} // prettier-ignore\n\n\nvar curriedSetSaturation = /*#__PURE__*/curry\n/* ::<number | string, string, string> */\n(setSaturation);\n/**\n * Shades a color by mixing it with black. `shade` can produce\n * hue shifts, where as `darken` manipulates the luminance channel and therefore\n * doesn't produce hue shifts.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: shade(0.25, '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${shade(0.25, '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#00003f\";\n * }\n */\n\nfunction shade(percentage, color) {\n if (color === 'transparent') return color;\n return curriedMix(parseFloat(percentage), 'rgb(0, 0, 0)', color);\n} // prettier-ignore\n\n\nvar curriedShade = /*#__PURE__*/curry\n/* ::<number | string, string, string> */\n(shade);\n/**\n * Tints a color by mixing it with white. `tint` can produce\n * hue shifts, where as `lighten` manipulates the luminance channel and therefore\n * doesn't produce hue shifts.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: tint(0.25, '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${tint(0.25, '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#bfbfff\";\n * }\n */\n\nfunction tint(percentage, color) {\n if (color === 'transparent') return color;\n return curriedMix(parseFloat(percentage), 'rgb(255, 255, 255)', color);\n} // prettier-ignore\n\n\nvar curriedTint = /*#__PURE__*/curry\n/* ::<number | string, string, string> */\n(tint);\n/**\n * Decreases the opacity of a color. Its range for the amount is between 0 to 1.\n *\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: transparentize(0.1, '#fff');\n * background: transparentize(0.2, 'hsl(0, 0%, 100%)'),\n * background: transparentize('0.5', 'rgba(255, 0, 0, 0.8)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${transparentize(0.1, '#fff')};\n * background: ${transparentize(0.2, 'hsl(0, 0%, 100%)')},\n * background: ${transparentize('0.5', 'rgba(255, 0, 0, 0.8)')},\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(255,255,255,0.9)\";\n * background: \"rgba(255,255,255,0.8)\";\n * background: \"rgba(255,0,0,0.3)\";\n * }\n */\n\nfunction transparentize(amount, color) {\n if (color === 'transparent') return color;\n var parsedColor = parseToRgb(color);\n var alpha = typeof parsedColor.alpha === 'number' ? parsedColor.alpha : 1;\n\n var colorWithAlpha = _extends({}, parsedColor, {\n alpha: guard(0, 1, +(alpha * 100 - parseFloat(amount) * 100).toFixed(2) / 100)\n });\n\n return rgba(colorWithAlpha);\n} // prettier-ignore\n\n\nvar curriedTransparentize = /*#__PURE__*/curry\n/* ::<number | string, string, string> */\n(transparentize);\n/**\n * Shorthand for easily setting the animation property. Allows either multiple arrays with animations\n * or a single animation spread over the arguments.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...animation(['rotate', '1s', 'ease-in-out'], ['colorchange', '2s'])\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${animation(['rotate', '1s', 'ease-in-out'], ['colorchange', '2s'])}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'animation': 'rotate 1s ease-in-out, colorchange 2s'\n * }\n * @example\n * // Styles as object usage\n * const styles = {\n * ...animation('rotate', '1s', 'ease-in-out')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${animation('rotate', '1s', 'ease-in-out')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'animation': 'rotate 1s ease-in-out'\n * }\n */\n\nfunction animation() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n } // Allow single or multiple animations passed\n\n\n var multiMode = Array.isArray(args[0]);\n\n if (!multiMode && args.length > 8) {\n throw new PolishedError(64);\n }\n\n var code = args.map(function (arg) {\n if (multiMode && !Array.isArray(arg) || !multiMode && Array.isArray(arg)) {\n throw new PolishedError(65);\n }\n\n if (Array.isArray(arg) && arg.length > 8) {\n throw new PolishedError(66);\n }\n\n return Array.isArray(arg) ? arg.join(' ') : arg;\n }).join(', ');\n return {\n animation: code\n };\n}\n/**\n * Shorthand that accepts any number of backgroundImage values as parameters for creating a single background statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...backgroundImages('url(\"/image/background.jpg\")', 'linear-gradient(red, green)')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${backgroundImages('url(\"/image/background.jpg\")', 'linear-gradient(red, green)')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'backgroundImage': 'url(\"/image/background.jpg\"), linear-gradient(red, green)'\n * }\n */\n\n\nfunction backgroundImages() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n\n return {\n backgroundImage: properties.join(', ')\n };\n}\n/**\n * Shorthand that accepts any number of background values as parameters for creating a single background statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...backgrounds('url(\"/image/background.jpg\")', 'linear-gradient(red, green)', 'center no-repeat')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${backgrounds('url(\"/image/background.jpg\")', 'linear-gradient(red, green)', 'center no-repeat')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'background': 'url(\"/image/background.jpg\"), linear-gradient(red, green), center no-repeat'\n * }\n */\n\n\nfunction backgrounds() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n\n return {\n background: properties.join(', ')\n };\n}\n\nvar sideMap = ['top', 'right', 'bottom', 'left'];\n/**\n * Shorthand for the border property that splits out individual properties for use with tools like Fela and Styletron. A side keyword can optionally be passed to target only one side's border properties.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...border('1px', 'solid', 'red')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${border('1px', 'solid', 'red')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderColor': 'red',\n * 'borderStyle': 'solid',\n * 'borderWidth': `1px`,\n * }\n *\n * // Styles as object usage\n * const styles = {\n * ...border('top', '1px', 'solid', 'red')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${border('top', '1px', 'solid', 'red')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopColor': 'red',\n * 'borderTopStyle': 'solid',\n * 'borderTopWidth': `1px`,\n * }\n */\n\nfunction border(sideKeyword) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n\n if (typeof sideKeyword === 'string' && sideMap.indexOf(sideKeyword) >= 0) {\n var _ref;\n\n return _ref = {}, _ref[\"border\" + capitalizeString(sideKeyword) + \"Width\"] = values[0], _ref[\"border\" + capitalizeString(sideKeyword) + \"Style\"] = values[1], _ref[\"border\" + capitalizeString(sideKeyword) + \"Color\"] = values[2], _ref;\n } else {\n values.unshift(sideKeyword);\n return {\n borderWidth: values[0],\n borderStyle: values[1],\n borderColor: values[2]\n };\n }\n}\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderColor('red', 'green', 'blue', 'yellow')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderColor('red', 'green', 'blue', 'yellow')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopColor': 'red',\n * 'borderRightColor': 'green',\n * 'borderBottomColor': 'blue',\n * 'borderLeftColor': 'yellow'\n * }\n */\n\n\nfunction borderColor() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['borderColor'].concat(values));\n}\n/**\n * Shorthand that accepts a value for side and a value for radius and applies the radius value to both corners of the side.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderRadius('top', '5px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderRadius('top', '5px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopRightRadius': '5px',\n * 'borderTopLeftRadius': '5px',\n * }\n */\n\n\nfunction borderRadius(side, radius) {\n var uppercaseSide = capitalizeString(side);\n\n if (!radius && radius !== 0) {\n throw new PolishedError(62);\n }\n\n if (uppercaseSide === 'Top' || uppercaseSide === 'Bottom') {\n var _ref;\n\n return _ref = {}, _ref[\"border\" + uppercaseSide + \"RightRadius\"] = radius, _ref[\"border\" + uppercaseSide + \"LeftRadius\"] = radius, _ref;\n }\n\n if (uppercaseSide === 'Left' || uppercaseSide === 'Right') {\n var _ref2;\n\n return _ref2 = {}, _ref2[\"borderTop\" + uppercaseSide + \"Radius\"] = radius, _ref2[\"borderBottom\" + uppercaseSide + \"Radius\"] = radius, _ref2;\n }\n\n throw new PolishedError(63);\n}\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderStyle('solid', 'dashed', 'dotted', 'double')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderStyle('solid', 'dashed', 'dotted', 'double')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopStyle': 'solid',\n * 'borderRightStyle': 'dashed',\n * 'borderBottomStyle': 'dotted',\n * 'borderLeftStyle': 'double'\n * }\n */\n\n\nfunction borderStyle() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['borderStyle'].concat(values));\n}\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderWidth('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderWidth('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopWidth': '12px',\n * 'borderRightWidth': '24px',\n * 'borderBottomWidth': '36px',\n * 'borderLeftWidth': '48px'\n * }\n */\n\n\nfunction borderWidth() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['borderWidth'].concat(values));\n}\n\nfunction generateSelectors(template, state) {\n var stateSuffix = state ? \":\" + state : '';\n return template(stateSuffix);\n}\n/**\n * Function helper that adds an array of states to a template of selectors. Used in textInputs and buttons.\n * @private\n */\n\n\nfunction statefulSelectors(states, template, stateMap) {\n if (!template) throw new PolishedError(67);\n if (states.length === 0) return generateSelectors(template, null);\n var selectors = [];\n\n for (var i = 0; i < states.length; i += 1) {\n if (stateMap && stateMap.indexOf(states[i]) < 0) {\n throw new PolishedError(68);\n }\n\n selectors.push(generateSelectors(template, states[i]));\n }\n\n selectors = selectors.join(',');\n return selectors;\n}\n\nvar stateMap$1 = [undefined, null, 'active', 'focus', 'hover'];\n\nfunction template$1(state) {\n return \"button\" + state + \",\\n input[type=\\\"button\\\"]\" + state + \",\\n input[type=\\\"reset\\\"]\" + state + \",\\n input[type=\\\"submit\\\"]\" + state;\n}\n/**\n * Populates selectors that target all buttons. You can pass optional states to append to the selectors.\n * @example\n * // Styles as object usage\n * const styles = {\n * [buttons('active')]: {\n * 'border': 'none'\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * > ${buttons('active')} {\n * border: none;\n * }\n * `\n *\n * // CSS in JS Output\n *\n * 'button:active,\n * 'input[type=\"button\"]:active,\n * 'input[type=\\\"reset\\\"]:active,\n * 'input[type=\\\"submit\\\"]:active: {\n * 'border': 'none'\n * }\n */\n\n\nfunction buttons() {\n for (var _len = arguments.length, states = new Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n\n return statefulSelectors(states, template$1, stateMap$1);\n}\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...margin('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${margin('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'marginTop': '12px',\n * 'marginRight': '24px',\n * 'marginBottom': '36px',\n * 'marginLeft': '48px'\n * }\n */\n\n\nfunction margin() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['margin'].concat(values));\n}\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...padding('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${padding('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'paddingTop': '12px',\n * 'paddingRight': '24px',\n * 'paddingBottom': '36px',\n * 'paddingLeft': '48px'\n * }\n */\n\n\nfunction padding() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['padding'].concat(values));\n}\n\nvar positionMap = ['absolute', 'fixed', 'relative', 'static', 'sticky'];\n/**\n * Shorthand accepts up to five values, including null to skip a value, and maps them to their respective directions. The first value can optionally be a position keyword.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...position('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${position('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'top': '12px',\n * 'right': '24px',\n * 'bottom': '36px',\n * 'left': '48px'\n * }\n *\n * // Styles as object usage\n * const styles = {\n * ...position('absolute', '12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${position('absolute', '12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'position': 'absolute',\n * 'top': '12px',\n * 'right': '24px',\n * 'bottom': '36px',\n * 'left': '48px'\n * }\n */\n\nfunction position(firstValue) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n\n if (positionMap.indexOf(firstValue) >= 0 && firstValue) {\n return _extends({}, directionalProperty.apply(void 0, [''].concat(values)), {\n position: firstValue\n });\n } else {\n return directionalProperty.apply(void 0, ['', firstValue].concat(values));\n }\n}\n/**\n * Shorthand to set the height and width properties in a single statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...size('300px', '250px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${size('300px', '250px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'height': '300px',\n * 'width': '250px',\n * }\n */\n\n\nfunction size(height, width) {\n if (width === void 0) {\n width = height;\n }\n\n return {\n height: height,\n width: width\n };\n}\n\nvar stateMap = [undefined, null, 'active', 'focus', 'hover'];\n\nfunction template(state) {\n return \"input[type=\\\"color\\\"]\" + state + \",\\n input[type=\\\"date\\\"]\" + state + \",\\n input[type=\\\"datetime\\\"]\" + state + \",\\n input[type=\\\"datetime-local\\\"]\" + state + \",\\n input[type=\\\"email\\\"]\" + state + \",\\n input[type=\\\"month\\\"]\" + state + \",\\n input[type=\\\"number\\\"]\" + state + \",\\n input[type=\\\"password\\\"]\" + state + \",\\n input[type=\\\"search\\\"]\" + state + \",\\n input[type=\\\"tel\\\"]\" + state + \",\\n input[type=\\\"text\\\"]\" + state + \",\\n input[type=\\\"time\\\"]\" + state + \",\\n input[type=\\\"url\\\"]\" + state + \",\\n input[type=\\\"week\\\"]\" + state + \",\\n input:not([type])\" + state + \",\\n textarea\" + state;\n}\n/**\n * Populates selectors that target all text inputs. You can pass optional states to append to the selectors.\n * @example\n * // Styles as object usage\n * const styles = {\n * [textInputs('active')]: {\n * 'border': 'none'\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * > ${textInputs('active')} {\n * border: none;\n * }\n * `\n *\n * // CSS in JS Output\n *\n * 'input[type=\"color\"]:active,\n * input[type=\"date\"]:active,\n * input[type=\"datetime\"]:active,\n * input[type=\"datetime-local\"]:active,\n * input[type=\"email\"]:active,\n * input[type=\"month\"]:active,\n * input[type=\"number\"]:active,\n * input[type=\"password\"]:active,\n * input[type=\"search\"]:active,\n * input[type=\"tel\"]:active,\n * input[type=\"text\"]:active,\n * input[type=\"time\"]:active,\n * input[type=\"url\"]:active,\n * input[type=\"week\"]:active,\n * input:not([type]):active,\n * textarea:active': {\n * 'border': 'none'\n * }\n */\n\n\nfunction textInputs() {\n for (var _len = arguments.length, states = new Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n\n return statefulSelectors(states, template, stateMap);\n}\n/**\n * Accepts any number of transition values as parameters for creating a single transition statement. You may also pass an array of properties as the first parameter that you would like to apply the same transition values to (second parameter).\n * @example\n * // Styles as object usage\n * const styles = {\n * ...transitions('opacity 1.0s ease-in 0s', 'width 2.0s ease-in 2s'),\n * ...transitions(['color', 'background-color'], '2.0s ease-in 2s')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${transitions('opacity 1.0s ease-in 0s', 'width 2.0s ease-in 2s')};\n * ${transitions(['color', 'background-color'], '2.0s ease-in 2s'),};\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'transition': 'opacity 1.0s ease-in 0s, width 2.0s ease-in 2s'\n * 'transition': 'color 2.0s ease-in 2s, background-color 2.0s ease-in 2s',\n * }\n */\n\n\nfunction transitions() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n\n if (Array.isArray(properties[0]) && properties.length === 2) {\n var value = properties[1];\n\n if (typeof value !== 'string') {\n throw new PolishedError(61);\n }\n\n var transitionsString = properties[0].map(function (property) {\n return property + \" \" + value;\n }).join(', ');\n return {\n transition: transitionsString\n };\n } else {\n return {\n transition: properties.join(', ')\n };\n }\n}\n\nexport { curriedAdjustHue as adjustHue, animation, backgroundImages, backgrounds, between, border, borderColor, borderRadius, borderStyle, borderWidth, buttons, clearFix, complement, cover, cssVar, curriedDarken as darken, curriedDesaturate as desaturate, directionalProperty, easeIn, easeInOut, easeOut, ellipsis, em, fluidRange, fontFace, getContrast, getLuminance, getValueAndUnit, grayscale, hiDPI, hideText, hideVisually, hsl, hslToColorString, hsla, important, invert, curriedLighten as lighten, linearGradient, margin, math, meetsContrastGuidelines, curriedMix as mix, modularScale, normalize, curriedOpacify as opacify, padding, parseToHsl, parseToRgb, position, radialGradient, readableColor, rem, remToPx, retinaImage, rgb, rgbToColorString, rgba, curriedSaturate as saturate, curriedSetHue as setHue, curriedSetLightness as setLightness, curriedSetSaturation as setSaturation, curriedShade as shade, size, stripUnit, textInputs, timingFunctions, curriedTint as tint, toColorString, transitions, curriedTransparentize as transparentize, triangle, wordWrap };","'use strict';\n\nvar _slicedToArray = require(\"/codebuild/output/src372243558/src/tsc-betty/node_modules/@babel/runtime/helpers/slicedToArray.js\");\n\nvar _toConsumableArray = require(\"/codebuild/output/src372243558/src/tsc-betty/node_modules/@babel/runtime/helpers/toConsumableArray.js\");\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nvar strictUriEncode = require('strict-uri-encode');\n\nvar decodeComponent = require('decode-uri-component');\n\nvar splitOnFirst = require('split-on-first');\n\nvar filterObject = require('filter-obj');\n\nvar isNullOrUndefined = function isNullOrUndefined(value) {\n return value === null || value === undefined;\n};\n\nfunction encoderForArrayFormat(options) {\n switch (options.arrayFormat) {\n case 'index':\n return function (key) {\n return function (result, value) {\n var index = result.length;\n\n if (value === undefined || options.skipNull && value === null || options.skipEmptyString && value === '') {\n return result;\n }\n\n if (value === null) {\n return [].concat(_toConsumableArray(result), [[encode(key, options), '[', index, ']'].join('')]);\n }\n\n return [].concat(_toConsumableArray(result), [[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')]);\n };\n };\n\n case 'bracket':\n return function (key) {\n return function (result, value) {\n if (value === undefined || options.skipNull && value === null || options.skipEmptyString && value === '') {\n return result;\n }\n\n if (value === null) {\n return [].concat(_toConsumableArray(result), [[encode(key, options), '[]'].join('')]);\n }\n\n return [].concat(_toConsumableArray(result), [[encode(key, options), '[]=', encode(value, options)].join('')]);\n };\n };\n\n case 'comma':\n case 'separator':\n return function (key) {\n return function (result, value) {\n if (value === null || value === undefined || value.length === 0) {\n return result;\n }\n\n if (result.length === 0) {\n return [[encode(key, options), '=', encode(value, options)].join('')];\n }\n\n return [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n };\n };\n\n default:\n return function (key) {\n return function (result, value) {\n if (value === undefined || options.skipNull && value === null || options.skipEmptyString && value === '') {\n return result;\n }\n\n if (value === null) {\n return [].concat(_toConsumableArray(result), [encode(key, options)]);\n }\n\n return [].concat(_toConsumableArray(result), [[encode(key, options), '=', encode(value, options)].join('')]);\n };\n };\n }\n}\n\nfunction parserForArrayFormat(options) {\n var result;\n\n switch (options.arrayFormat) {\n case 'index':\n return function (key, value, accumulator) {\n result = /\\[(\\d*)\\]$/.exec(key);\n key = key.replace(/\\[\\d*\\]$/, '');\n\n if (!result) {\n accumulator[key] = value;\n return;\n }\n\n if (accumulator[key] === undefined) {\n accumulator[key] = {};\n }\n\n accumulator[key][result[1]] = value;\n };\n\n case 'bracket':\n return function (key, value, accumulator) {\n result = /(\\[\\])$/.exec(key);\n key = key.replace(/\\[\\]$/, '');\n\n if (!result) {\n accumulator[key] = value;\n return;\n }\n\n if (accumulator[key] === undefined) {\n accumulator[key] = [value];\n return;\n }\n\n accumulator[key] = [].concat(accumulator[key], value);\n };\n\n case 'comma':\n case 'separator':\n return function (key, value, accumulator) {\n var isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n var isEncodedArray = typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator);\n value = isEncodedArray ? decode(value, options) : value;\n var newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(function (item) {\n return decode(item, options);\n }) : value === null ? value : decode(value, options);\n accumulator[key] = newValue;\n };\n\n default:\n return function (key, value, accumulator) {\n if (accumulator[key] === undefined) {\n accumulator[key] = value;\n return;\n }\n\n accumulator[key] = [].concat(accumulator[key], value);\n };\n }\n}\n\nfunction validateArrayFormatSeparator(value) {\n if (typeof value !== 'string' || value.length !== 1) {\n throw new TypeError('arrayFormatSeparator must be single character string');\n }\n}\n\nfunction encode(value, options) {\n if (options.encode) {\n return options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n }\n\n return value;\n}\n\nfunction decode(value, options) {\n if (options.decode) {\n return decodeComponent(value);\n }\n\n return value;\n}\n\nfunction keysSorter(input) {\n if (Array.isArray(input)) {\n return input.sort();\n }\n\n if (typeof input === 'object') {\n return keysSorter(Object.keys(input)).sort(function (a, b) {\n return Number(a) - Number(b);\n }).map(function (key) {\n return input[key];\n });\n }\n\n return input;\n}\n\nfunction removeHash(input) {\n var hashStart = input.indexOf('#');\n\n if (hashStart !== -1) {\n input = input.slice(0, hashStart);\n }\n\n return input;\n}\n\nfunction getHash(url) {\n var hash = '';\n var hashStart = url.indexOf('#');\n\n if (hashStart !== -1) {\n hash = url.slice(hashStart);\n }\n\n return hash;\n}\n\nfunction extract(input) {\n input = removeHash(input);\n var queryStart = input.indexOf('?');\n\n if (queryStart === -1) {\n return '';\n }\n\n return input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n if (options.parseNumbers && !Number.isNaN(Number(value)) && typeof value === 'string' && value.trim() !== '') {\n value = Number(value);\n } else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n value = value.toLowerCase() === 'true';\n }\n\n return value;\n}\n\nfunction parse(query, options) {\n options = Object.assign({\n decode: true,\n sort: true,\n arrayFormat: 'none',\n arrayFormatSeparator: ',',\n parseNumbers: false,\n parseBooleans: false\n }, options);\n validateArrayFormatSeparator(options.arrayFormatSeparator);\n var formatter = parserForArrayFormat(options); // Create an object with no prototype\n\n var ret = Object.create(null);\n\n if (typeof query !== 'string') {\n return ret;\n }\n\n query = query.trim().replace(/^[?#&]/, '');\n\n if (!query) {\n return ret;\n }\n\n var _iterator = _createForOfIteratorHelper(query.split('&')),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var param = _step.value;\n\n if (param === '') {\n continue;\n }\n\n var _splitOnFirst = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '='),\n _splitOnFirst2 = _slicedToArray(_splitOnFirst, 2),\n _key = _splitOnFirst2[0],\n _value = _splitOnFirst2[1]; // Missing `=` should be `null`:\n // http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\n\n _value = _value === undefined ? null : ['comma', 'separator'].includes(options.arrayFormat) ? _value : decode(_value, options);\n formatter(decode(_key, options), _value, ret);\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n for (var _i = 0, _Object$keys = Object.keys(ret); _i < _Object$keys.length; _i++) {\n var key = _Object$keys[_i];\n var value = ret[key];\n\n if (typeof value === 'object' && value !== null) {\n for (var _i2 = 0, _Object$keys2 = Object.keys(value); _i2 < _Object$keys2.length; _i2++) {\n var k = _Object$keys2[_i2];\n value[k] = parseValue(value[k], options);\n }\n } else {\n ret[key] = parseValue(value, options);\n }\n }\n\n if (options.sort === false) {\n return ret;\n }\n\n return (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce(function (result, key) {\n var value = ret[key];\n\n if (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n // Sort object keys, not values\n result[key] = keysSorter(value);\n } else {\n result[key] = value;\n }\n\n return result;\n }, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = function (object, options) {\n if (!object) {\n return '';\n }\n\n options = Object.assign({\n encode: true,\n strict: true,\n arrayFormat: 'none',\n arrayFormatSeparator: ','\n }, options);\n validateArrayFormatSeparator(options.arrayFormatSeparator);\n\n var shouldFilter = function shouldFilter(key) {\n return options.skipNull && isNullOrUndefined(object[key]) || options.skipEmptyString && object[key] === '';\n };\n\n var formatter = encoderForArrayFormat(options);\n var objectCopy = {};\n\n for (var _i3 = 0, _Object$keys3 = Object.keys(object); _i3 < _Object$keys3.length; _i3++) {\n var key = _Object$keys3[_i3];\n\n if (!shouldFilter(key)) {\n objectCopy[key] = object[key];\n }\n }\n\n var keys = Object.keys(objectCopy);\n\n if (options.sort !== false) {\n keys.sort(options.sort);\n }\n\n return keys.map(function (key) {\n var value = object[key];\n\n if (value === undefined) {\n return '';\n }\n\n if (value === null) {\n return encode(key, options);\n }\n\n if (Array.isArray(value)) {\n return value.reduce(formatter(key), []).join('&');\n }\n\n return encode(key, options) + '=' + encode(value, options);\n }).filter(function (x) {\n return x.length > 0;\n }).join('&');\n};\n\nexports.parseUrl = function (url, options) {\n options = Object.assign({\n decode: true\n }, options);\n\n var _splitOnFirst3 = splitOnFirst(url, '#'),\n _splitOnFirst4 = _slicedToArray(_splitOnFirst3, 2),\n url_ = _splitOnFirst4[0],\n hash = _splitOnFirst4[1];\n\n return Object.assign({\n url: url_.split('?')[0] || '',\n query: parse(extract(url), options)\n }, options && options.parseFragmentIdentifier && hash ? {\n fragmentIdentifier: decode(hash, options)\n } : {});\n};\n\nexports.stringifyUrl = function (object, options) {\n options = Object.assign({\n encode: true,\n strict: true\n }, options);\n var url = removeHash(object.url).split('?')[0] || '';\n var queryFromUrl = exports.extract(object.url);\n var parsedQueryFromUrl = exports.parse(queryFromUrl, {\n sort: false\n });\n var query = Object.assign(parsedQueryFromUrl, object.query);\n var queryString = exports.stringify(query, options);\n\n if (queryString) {\n queryString = \"?\".concat(queryString);\n }\n\n var hash = getHash(object.url);\n\n if (object.fragmentIdentifier) {\n hash = \"#\".concat(encode(object.fragmentIdentifier, options));\n }\n\n return \"\".concat(url).concat(queryString).concat(hash);\n};\n\nexports.pick = function (input, filter, options) {\n options = Object.assign({\n parseFragmentIdentifier: true\n }, options);\n\n var _exports$parseUrl = exports.parseUrl(input, options),\n url = _exports$parseUrl.url,\n query = _exports$parseUrl.query,\n fragmentIdentifier = _exports$parseUrl.fragmentIdentifier;\n\n return exports.stringifyUrl({\n url: url,\n query: filterObject(query, filter),\n fragmentIdentifier: fragmentIdentifier\n }, options);\n};\n\nexports.exclude = function (input, filter, options) {\n var exclusionFilter = Array.isArray(filter) ? function (key) {\n return !filter.includes(key);\n } : function (key, value) {\n return !filter(key, value);\n };\n return exports.pick(input, exclusionFilter, options);\n};","/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView; // Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.1\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n var length, i, keys;\n\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!equal(a[i], b[i])) return false;\n }\n\n return true;\n } // START: Modifications:\n // 1. Extra `has<Type> &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n\n\n var it;\n\n if (hasMap && a instanceof Map && b instanceof Map) {\n if (a.size !== b.size) return false;\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!b.has(i.value[0])) return false;\n }\n\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n }\n\n return true;\n }\n\n if (hasSet && a instanceof Set && b instanceof Set) {\n if (a.size !== b.size) return false;\n it = a.entries();\n\n while (!(i = it.next()).done) {\n if (!b.has(i.value[0])) return false;\n }\n\n return true;\n } // END: Modifications\n\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n\n for (i = length; i-- !== 0;) {\n if (a[i] !== b[i]) return false;\n }\n\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;) {\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n } // END: fast-deep-equal\n // START: react-fast-compare\n // custom handling for DOM elements\n\n\n if (hasElementType && a instanceof Element) return false; // custom handling for React/Preact\n\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n continue;\n } // all other properties should be traversed as usual\n\n\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n } // END: react-fast-compare\n // START: fast-deep-equal\n\n\n return true;\n }\n\n return a !== a && b !== b;\n} // end fast-deep-equal\n\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if ((error.message || '').match(/stack|recursion/i)) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n } // some other error. we should definitely know about these\n\n\n throw error;\n }\n};","import PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\nimport isEqual from 'react-fast-compare';\nimport React from 'react';\nimport objectAssign from 'object-assign';\nvar ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\nvar TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\nvar VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\nvar TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\",\n TARGET: \"target\"\n};\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\nvar HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\nvar SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\nvar HELMET_ATTRIBUTE = \"data-react-helmet\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _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\nvar inherits = function inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(/</g, \"<\").replace(/>/g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return Array.isArray(innermostTitle) ? innermostTitle.join(\"\") : innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase(); // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n } // Special case for innerHTML which doesn't work lowercased\n\n\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === TAG_PROPERTIES.INNER_HTML || attributeKey === TAG_PROPERTIES.CSS_TEXT || attributeKey === TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n }); // Update seen tags with tags from this instance\n\n var keys = Object.keys(instanceSeenTags);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF, TAG_PROPERTIES.TARGET], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(TAG_NAMES.LINK, [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(TAG_NAMES.META, [TAG_PROPERTIES.NAME, TAG_PROPERTIES.CHARSET, TAG_PROPERTIES.HTTPEQUIV, TAG_PROPERTIES.PROPERTY, TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(TAG_NAMES.SCRIPT, [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n updateTitle(title, titleAttributes);\n var tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags)\n };\n var addedTags = {};\n var removedTags = {};\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n cb && cb();\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\"); // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"</\" + type + \">\" : \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"</\" + type + \">\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n var isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n return str + \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"</\" + type + \">\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Object.keys(props).reduce(function (obj, key) {\n obj[HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps; // assigning into an array to define toString function on it\n\n\n var initProps = (_initProps = {\n key: title\n }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[HELMET_ATTRIBUTE] = true, _mappedTag);\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === TAG_PROPERTIES.INNER_HTML || mappedAttribute === TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = {\n __html: content\n };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n return React.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, {\n title: title,\n titleAttributes: titleAttributes\n }, encode)\n };\n};\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n classCallCheck(this, HelmetWrapper);\n return possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !isEqual(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _babelHelpers$extends;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n return _extends({}, arrayTypeChildren, (_babelHelpers$extends = {}, _babelHelpers$extends[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _babelHelpers$extends));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _babelHelpers$extends2, _babelHelpers$extends3;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return _extends({}, newProps, (_babelHelpers$extends2 = {}, _babelHelpers$extends2[child.type] = nestedChildren, _babelHelpers$extends2.titleAttributes = _extends({}, newChildProps), _babelHelpers$extends2));\n\n case TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_babelHelpers$extends3 = {}, _babelHelpers$extends3[child.type] = _extends({}, newChildProps), _babelHelpers$extends3));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _babelHelpers$extends4;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_babelHelpers$extends4 = {}, _babelHelpers$extends4[arrayChildName] = arrayTypeChildren[arrayChildName], _babelHelpers$extends4));\n });\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return warn(\"You may be attempting to nest <Helmet> components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return warn(\"Only elements types \" + VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``}</\" + child.type + \"> ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n React.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = objectWithoutProperties(_child$props, [\"children\"]);\n var newChildProps = convertReactPropstoHtmlAttributes(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return React.createElement(Component, newProps);\n };\n\n createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \"<img src='http://mysite.com/js/test.js'\"}]\n * @param {Function} onChangeClientState: \"(newState) => console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set$$1(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n return HelmetWrapper;\n }(React.Component), _class.propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = mapStateOnServer({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\nexport default HelmetExport;\nexport { HelmetExport as Helmet };","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport { invariantIntlContext } from '../utils';\n\nfunction getDisplayName(Component) {\n return Component.displayName || Component.name || 'Component';\n} // TODO: We should provide initial value here\n\n\nvar IntlContext = React.createContext(null);\nvar IntlConsumer = IntlContext.Consumer,\n IntlProvider = IntlContext.Provider;\nexport var Provider = IntlProvider;\nexport var Context = IntlContext;\nexport default function injectIntl(WrappedComponent, options) {\n var _a = options || {},\n _b = _a.intlPropName,\n intlPropName = _b === void 0 ? 'intl' : _b,\n _c = _a.forwardRef,\n forwardRef = _c === void 0 ? false : _c,\n _d = _a.enforceContext,\n enforceContext = _d === void 0 ? true : _d;\n\n var WithIntl = function WithIntl(props) {\n return React.createElement(IntlConsumer, null, function (intl) {\n var _a;\n\n if (enforceContext) {\n invariantIntlContext(intl);\n }\n\n var intlProp = (_a = {}, _a[intlPropName] = intl, _a);\n return React.createElement(WrappedComponent, __assign({}, props, intlProp, {\n ref: forwardRef ? props.forwardedRef : null\n }));\n });\n };\n\n WithIntl.displayName = \"injectIntl(\" + getDisplayName(WrappedComponent) + \")\";\n WithIntl.WrappedComponent = WrappedComponent;\n\n if (forwardRef) {\n return hoistNonReactStatics(React.forwardRef(function (props, ref) {\n return React.createElement(WithIntl, __assign({}, props, {\n forwardedRef: ref\n }));\n }), WrappedComponent);\n }\n\n return hoistNonReactStatics(WithIntl, WrappedComponent);\n}","import { __assign } from \"tslib\";\nimport * as React from 'react';\nimport { invariant } from '@formatjs/ecma402-abstract';\nimport { DEFAULT_INTL_CONFIG as CORE_DEFAULT_INTL_CONFIG } from '@formatjs/intl';\nexport function invariantIntlContext(intl) {\n invariant(intl, '[React Intl] Could not find required `intl` object. ' + '<IntlProvider> needs to exist in the component ancestry.');\n}\nexport var DEFAULT_INTL_CONFIG = __assign(__assign({}, CORE_DEFAULT_INTL_CONFIG), {\n textComponent: React.Fragment\n});\n/**\n * Takes a `formatXMLElementFn`, and composes it in function, which passes\n * argument `parts` through, assigning unique key to each part, to prevent\n * \"Each child in a list should have a unique \"key\"\" React error.\n * @param formatXMLElementFn\n */\n\nexport function assignUniqueKeysToParts(formatXMLElementFn) {\n return function (parts) {\n // eslint-disable-next-line prefer-rest-params\n return formatXMLElementFn(React.Children.toArray(parts));\n };\n}\nexport function shallowEqual(objA, objB) {\n if (objA === objB) {\n return true;\n }\n\n if (!objA || !objB) {\n return false;\n }\n\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n var len = aKeys.length;\n\n if (bKeys.length !== len) {\n return false;\n }\n\n for (var i = 0; i < len; i++) {\n var key = aKeys[i];\n\n if (objA[key] !== objB[key] || !Object.prototype.hasOwnProperty.call(objB, key)) {\n return false;\n }\n }\n\n return true;\n}","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\n\n/* global Reflect, Promise */\nvar _extendStatics = function extendStatics(d, b) {\n _extendStatics = Object.setPrototypeOf || {\n __proto__: []\n } instanceof Array && function (d, b) {\n d.__proto__ = b;\n } || function (d, b) {\n for (var p in b) {\n if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p];\n }\n };\n\n return _extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null) throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n\n _extendStatics(d, b);\n\n function __() {\n this.constructor = d;\n }\n\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nvar _assign = function __assign() {\n _assign = Object.assign || function __assign(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\nexport { _assign as __assign };\nexport function __rest(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}\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length,\n r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc,\n d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);else for (var i = decorators.length - 1; i >= 0; i--) {\n if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n }\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\nexport function __param(paramIndex, decorator) {\n return function (target, key) {\n decorator(target, key, paramIndex);\n };\n}\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) {\n return value instanceof P ? value : new P(function (resolve) {\n resolve(value);\n });\n }\n\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) {\n try {\n step(generator.next(value));\n } catch (e) {\n reject(e);\n }\n }\n\n function rejected(value) {\n try {\n step(generator[\"throw\"](value));\n } catch (e) {\n reject(e);\n }\n }\n\n function step(result) {\n result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected);\n }\n\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\nexport function __generator(thisArg, body) {\n var _ = {\n label: 0,\n sent: function sent() {\n if (t[0] & 1) throw t[1];\n return t[1];\n },\n trys: [],\n ops: []\n },\n f,\n y,\n t,\n g;\n return g = {\n next: verb(0),\n \"throw\": verb(1),\n \"return\": verb(2)\n }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function () {\n return this;\n }), g;\n\n function verb(n) {\n return function (v) {\n return step([n, v]);\n };\n }\n\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n\n while (_) {\n try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n\n switch (op[0]) {\n case 0:\n case 1:\n t = op;\n break;\n\n case 4:\n _.label++;\n return {\n value: op[1],\n done: false\n };\n\n case 5:\n _.label++;\n y = op[1];\n op = [0];\n continue;\n\n case 7:\n op = _.ops.pop();\n\n _.trys.pop();\n\n continue;\n\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) {\n _ = 0;\n continue;\n }\n\n if (op[0] === 3 && (!t || op[1] > t[0] && op[1] < t[3])) {\n _.label = op[1];\n break;\n }\n\n if (op[0] === 6 && _.label < t[1]) {\n _.label = t[1];\n t = op;\n break;\n }\n\n if (t && _.label < t[2]) {\n _.label = t[2];\n\n _.ops.push(op);\n\n break;\n }\n\n if (t[2]) _.ops.pop();\n\n _.trys.pop();\n\n continue;\n }\n\n op = body.call(thisArg, _);\n } catch (e) {\n op = [6, e];\n y = 0;\n } finally {\n f = t = 0;\n }\n }\n\n if (op[0] & 5) throw op[1];\n return {\n value: op[0] ? op[1] : void 0,\n done: true\n };\n }\n}\nexport var __createBinding = Object.create ? function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, {\n enumerable: true,\n get: function get() {\n return m[k];\n }\n });\n} : function (o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n};\nexport function __exportStar(m, o) {\n for (var p in m) {\n if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n }\n}\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator,\n m = s && o[s],\n i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function next() {\n if (o && i >= o.length) o = void 0;\n return {\n value: o && o[i++],\n done: !o\n };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o),\n r,\n ar = [],\n e;\n\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) {\n ar.push(r.value);\n }\n } catch (error) {\n e = {\n error: error\n };\n } finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n } finally {\n if (e) throw e.error;\n }\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++) {\n ar = ar.concat(__read(arguments[i]));\n }\n\n return ar;\n}\n/** @deprecated */\n\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) {\n s += arguments[i].length;\n }\n\n for (var r = Array(s), k = 0, i = 0; i < il; i++) {\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++) {\n r[k] = a[j];\n }\n }\n\n return r;\n}\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []),\n i,\n q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i;\n\n function verb(n) {\n if (g[n]) i[n] = function (v) {\n return new Promise(function (a, b) {\n q.push([n, v, a, b]) > 1 || resume(n, v);\n });\n };\n }\n\n function resume(n, v) {\n try {\n step(g[n](v));\n } catch (e) {\n settle(q[0][3], e);\n }\n }\n\n function step(r) {\n r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r);\n }\n\n function fulfill(value) {\n resume(\"next\", value);\n }\n\n function reject(value) {\n resume(\"throw\", value);\n }\n\n function settle(f, v) {\n if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]);\n }\n}\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) {\n throw e;\n }), verb(\"return\"), i[Symbol.iterator] = function () {\n return this;\n }, i;\n\n function verb(n, f) {\n i[n] = o[n] ? function (v) {\n return (p = !p) ? {\n value: __await(o[n](v)),\n done: n === \"return\"\n } : f ? f(v) : v;\n } : f;\n }\n}\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator],\n i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () {\n return this;\n }, i);\n\n function verb(n) {\n i[n] = o[n] && function (v) {\n return new Promise(function (resolve, reject) {\n v = o[n](v), settle(resolve, reject, v.done, v.value);\n });\n };\n }\n\n function settle(resolve, reject, d, v) {\n Promise.resolve(v).then(function (v) {\n resolve({\n value: v,\n done: d\n });\n }, reject);\n }\n}\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) {\n Object.defineProperty(cooked, \"raw\", {\n value: raw\n });\n } else {\n cooked.raw = raw;\n }\n\n return cooked;\n}\n;\n\nvar __setModuleDefault = Object.create ? function (o, v) {\n Object.defineProperty(o, \"default\", {\n enumerable: true,\n value: v\n });\n} : function (o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) {\n if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n }\n\n __setModuleDefault(result, mod);\n\n return result;\n}\nexport function __importDefault(mod) {\n return mod && mod.__esModule ? mod : {\n default: mod\n };\n}\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value), value;\n}","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';\n\nvar b = \"function\" === typeof Symbol && Symbol.for,\n c = b ? Symbol.for(\"react.element\") : 60103,\n d = b ? Symbol.for(\"react.portal\") : 60106,\n e = b ? Symbol.for(\"react.fragment\") : 60107,\n f = b ? Symbol.for(\"react.strict_mode\") : 60108,\n g = b ? Symbol.for(\"react.profiler\") : 60114,\n h = b ? Symbol.for(\"react.provider\") : 60109,\n k = b ? Symbol.for(\"react.context\") : 60110,\n l = b ? Symbol.for(\"react.async_mode\") : 60111,\n m = b ? Symbol.for(\"react.concurrent_mode\") : 60111,\n n = b ? Symbol.for(\"react.forward_ref\") : 60112,\n p = b ? Symbol.for(\"react.suspense\") : 60113,\n q = b ? Symbol.for(\"react.suspense_list\") : 60120,\n r = b ? Symbol.for(\"react.memo\") : 60115,\n t = b ? Symbol.for(\"react.lazy\") : 60116,\n v = b ? Symbol.for(\"react.block\") : 60121,\n w = b ? Symbol.for(\"react.fundamental\") : 60117,\n x = b ? Symbol.for(\"react.responder\") : 60118,\n y = b ? Symbol.for(\"react.scope\") : 60119;\n\nfunction z(a) {\n if (\"object\" === typeof a && null !== a) {\n var u = a.$$typeof;\n\n switch (u) {\n case c:\n switch (a = a.type, a) {\n case l:\n case m:\n case e:\n case g:\n case f:\n case p:\n return a;\n\n default:\n switch (a = a && a.$$typeof, a) {\n case k:\n case n:\n case t:\n case r:\n case h:\n return a;\n\n default:\n return u;\n }\n\n }\n\n case d:\n return u;\n }\n }\n}\n\nfunction A(a) {\n return z(a) === m;\n}\n\nexports.AsyncMode = l;\nexports.ConcurrentMode = m;\nexports.ContextConsumer = k;\nexports.ContextProvider = h;\nexports.Element = c;\nexports.ForwardRef = n;\nexports.Fragment = e;\nexports.Lazy = t;\nexports.Memo = r;\nexports.Portal = d;\nexports.Profiler = g;\nexports.StrictMode = f;\nexports.Suspense = p;\n\nexports.isAsyncMode = function (a) {\n return A(a) || z(a) === l;\n};\n\nexports.isConcurrentMode = A;\n\nexports.isContextConsumer = function (a) {\n return z(a) === k;\n};\n\nexports.isContextProvider = function (a) {\n return z(a) === h;\n};\n\nexports.isElement = function (a) {\n return \"object\" === typeof a && null !== a && a.$$typeof === c;\n};\n\nexports.isForwardRef = function (a) {\n return z(a) === n;\n};\n\nexports.isFragment = function (a) {\n return z(a) === e;\n};\n\nexports.isLazy = function (a) {\n return z(a) === t;\n};\n\nexports.isMemo = function (a) {\n return z(a) === r;\n};\n\nexports.isPortal = function (a) {\n return z(a) === d;\n};\n\nexports.isProfiler = function (a) {\n return z(a) === g;\n};\n\nexports.isStrictMode = function (a) {\n return z(a) === f;\n};\n\nexports.isSuspense = function (a) {\n return z(a) === p;\n};\n\nexports.isValidElementType = function (a) {\n return \"string\" === typeof a || \"function\" === typeof a || a === e || a === m || a === g || a === f || a === p || a === q || \"object\" === typeof a && null !== a && (a.$$typeof === t || a.$$typeof === r || a.$$typeof === h || a.$$typeof === k || a.$$typeof === n || a.$$typeof === w || a.$$typeof === x || a.$$typeof === y || a.$$typeof === v);\n};\n\nexports.typeOf = z;","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}","'use strict';\n\nfunction _interopDefault(ex) {\n return ex && typeof ex === 'object' && 'default' in ex ? ex['default'] : ex;\n}\n\nvar React = require('react');\n\nvar React__default = _interopDefault(React);\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 _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect = /*#__PURE__*/function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n } // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n\n\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar getDisplayName = function getDisplayName(Component) {\n if (typeof Component === 'string') {\n return Component;\n }\n\n if (!Component) {\n return undefined;\n }\n\n return Component.displayName || Component.name || 'Component';\n};\n\nvar _default = getDisplayName;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nvar _react = require(\"react\");\n\nvar _getDisplayName = _interopRequireDefault(require(\"./getDisplayName\"));\n\nvar nest = function nest() {\n for (var _len = arguments.length, Components = new Array(_len), _key = 0; _key < _len; _key++) {\n Components[_key] = arguments[_key];\n }\n\n var factories = Components.map(_react.createFactory);\n\n var Nest = function Nest(_ref) {\n var children = _ref.children,\n props = (0, _objectWithoutPropertiesLoose2.default)(_ref, [\"children\"]);\n return factories.reduceRight(function (child, factory) {\n return factory(props, child);\n }, children);\n };\n\n if (process.env.NODE_ENV !== 'production') {\n var displayNames = Components.map(_getDisplayName.default);\n Nest.displayName = \"nest(\" + displayNames.join(', ') + \")\";\n }\n\n return Nest;\n};\n\nvar _default = nest;\nexports.default = _default;","'use strict';\n\nmodule.exports = function (string, separator) {\n if (!(typeof string === 'string' && typeof separator === 'string')) {\n throw new TypeError('Expected the arguments to be of type `string`');\n }\n\n if (separator === '') {\n return [string];\n }\n\n var separatorIndex = string.indexOf(separator);\n\n if (separatorIndex === -1) {\n return [string];\n }\n\n return [string.slice(0, separatorIndex), string.slice(separatorIndex + separator.length)];\n};","'use strict';\n\nmodule.exports = function (str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (x) {\n return \"%\".concat(x.charCodeAt(0).toString(16).toUpperCase());\n });\n};","import { jsx as jsx$1 } from '@theme-ui/core';\nexport { __ThemeUIContext, createElement, merge, useThemeUI } from '@theme-ui/core';\nexport { InitializeColorMode, useColorMode } from '@theme-ui/color-modes';\nexport { Styled, Themed, components } from '@theme-ui/mdx';\nexport { ThemeProvider } from '@theme-ui/theme-provider';\nexport * from '@theme-ui/components';\nexport { css, get } from '@theme-ui/css';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nvar BaseStyles = function BaseStyles(props) {\n return jsx('div', _extends({}, props, {\n sx: {\n fontFamily: 'body',\n lineHeight: 'body',\n fontWeight: 'body',\n variant: 'styles'\n }\n }));\n};\n\nvar jsx = jsx$1;\nexport { BaseStyles, jsx };","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar TypeError = global.TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw TypeError(tryToString(argument) + ' is not a function');\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar String = global.String;\nvar TypeError = global.TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw TypeError(String(argument) + ' is not an object');\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\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 = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\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","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var global = require('../internals/global');\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar Object = global.Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","var hasOwn = require('../internals/has-own-property');\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 (!hasOwn(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","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","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","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","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 getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && 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;\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\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 options.name - the .name of the function if it does not match the key\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","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : bind ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var call = Function.prototype.call;\n\nmodule.exports = call.bind ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var FunctionPrototype = Function.prototype;\nvar bind = FunctionPrototype.bind;\nvar call = FunctionPrototype.call;\nvar callBind = bind && bind.bind(call);\n\nmodule.exports = bind ? function (fn) {\n return fn && callBind(call, fn);\n} : function (fn) {\n return fn && function () {\n return call.apply(fn, arguments);\n };\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar TypeError = global.TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw TypeError(tryToString(argument) + ' is not iterable');\n};\n","var aCallable = require('../internals/a-callable');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return func == null ? undefined : aCallable(func);\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 es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\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 // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar Object = global.Object;\nvar split = uncurryThis(''.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 -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : Object(it);\n} : Object;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\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 || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = uncurryThis(store.get);\n var wmhas = uncurryThis(store.has);\n var wmset = uncurryThis(store.set);\n set = function (it, metadata) {\n if (wmhas(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget(store, it) || {};\n };\n has = function (it) {\n return wmhas(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = function (argument) {\n return typeof argument == 'function';\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\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 : isCallable(detection) ? 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 isCallable = require('../internals/is-callable');\n\nmodule.exports = function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Object = global.Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, Object(it));\n};\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar TypeError = global.TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","module.exports = {};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(inspectSource(WeakMap));\n","var global = require('../internals/global');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar TypeError = global.TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(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 DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\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\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\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) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.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} : $propertyIsEnumerable;\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar TypeError = global.TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\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\nvar concat = uncurryThis([].concat);\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 ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\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 name = options && options.name !== undefined ? options.name : key;\n var state;\n if (isCallable(value)) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n createNonEnumerableProperty(value, 'name', name);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\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 isCallable(this) && getInternalState(this).source || inspectSource(this);\n});\n","var global = require('../internals/global');\n\nvar TypeError = global.TypeError;\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","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","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","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","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.19.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar fails = require('../internals/fails');\nvar whitespaces = require('../internals/whitespaces');\n\nvar non = '\\u200B\\u0085\\u180E';\n\n// check that a method works with the correct list\n// of whitespaces and has a correct name\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n return !!whitespaces[METHOD_NAME]()\n || non[METHOD_NAME]() !== non\n || (PROPER_FUNCTION_NAME && whitespaces[METHOD_NAME].name !== METHOD_NAME);\n });\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar whitespaces = require('../internals/whitespaces');\n\nvar replace = uncurryThis(''.replace);\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = toString(requireObjectCoercible($this));\n if (TYPE & 1) string = replace(string, ltrim, '');\n if (TYPE & 2) string = replace(string, rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\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 = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// 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 ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- safe\n return number !== number || number === 0 ? 0 : (number > 0 ? floor : ceil)(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\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(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var global = require('../internals/global');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar Object = global.Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TypeError = global.TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var global = require('../internals/global');\nvar classof = require('../internals/classof');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return String(argument);\n};\n","var global = require('../internals/global');\n\nvar String = global.String;\n\nmodule.exports = function (argument) {\n try {\n return String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var $ = require('../internals/export');\nvar global = require('../internals/global');\n\n// `globalThis` object\n// https://tc39.es/ecma262/#sec-globalthis\n$({ global: true }, {\n globalThis: global\n});\n","var $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar createProperty = require('../internals/create-property');\n\n// `Object.fromEntries` method\n// https://github.com/tc39/proposal-object-from-entries\n$({ target: 'Object', stat: true }, {\n fromEntries: function fromEntries(iterable) {\n var obj = {};\n iterate(iterable, function (k, v) {\n createProperty(obj, k, v);\n }, { AS_ENTRIES: true });\n return obj;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $trimEnd = require('../internals/string-trim').end;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\nvar FORCED = forcedStringTrimMethod('trimEnd');\n\nvar trimEnd = FORCED ? function trimEnd() {\n return $trimEnd(this);\n// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe\n} : ''.trimEnd;\n\n// `String.prototype.{ trimEnd, trimRight }` methods\n// https://tc39.es/ecma262/#sec-string.prototype.trimend\n// https://tc39.es/ecma262/#String.prototype.trimright\n$({ target: 'String', proto: true, name: 'trimEnd', forced: FORCED }, {\n trimEnd: trimEnd,\n trimRight: trimEnd\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $trimStart = require('../internals/string-trim').start;\nvar forcedStringTrimMethod = require('../internals/string-trim-forced');\n\nvar FORCED = forcedStringTrimMethod('trimStart');\n\nvar trimStart = FORCED ? function trimStart() {\n return $trimStart(this);\n// eslint-disable-next-line es/no-string-prototype-trimstart-trimend -- safe\n} : ''.trimStart;\n\n// `String.prototype.{ trimStart, trimLeft }` methods\n// https://tc39.es/ecma262/#sec-string.prototype.trimstart\n// https://tc39.es/ecma262/#String.prototype.trimleft\n$({ target: 'String', proto: true, name: 'trimStart', forced: FORCED }, {\n trimStart: trimStart,\n trimLeft: trimStart\n});\n","// TODO: Remove from `core-js@4`\nrequire('../modules/es.global-this');\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.withPrefix = withPrefix;\nexports.withAssetPrefix = withAssetPrefix;\nexports.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 _reachRouter = require(\"@gatsbyjs/reach-router\");\n\nvar _utils = require(\"@gatsbyjs/reach-router/lib/utils\");\n\nvar _parsePath = require(\"./parse-path\");\n\nexports.parsePath = _parsePath.parsePath;\nvar _excluded = [\"to\", \"getProps\", \"onClick\", \"onMouseEnter\", \"activeClassName\", \"activeStyle\", \"innerRef\", \"partiallyActive\", \"state\", \"replace\", \"_location\"];\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 && 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 cb(entry.isIntersecting || entry.intersectionRatio > 0);\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(_reachRouter.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.abortPrefetch = null;\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 + window.location.search; // reach router should have the correct state\n\n if (this.props._location && this.props._location.pathname) {\n currentPath = this.props._location.pathname + this.props._location.search;\n }\n\n var rewrittenPath = rewriteLinkPath(this.props.to, currentPath);\n var parsed = (0, _parsePath.parsePath)(rewrittenPath);\n var newPathName = parsed.pathname + parsed.search; // Prefetch 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 return ___loader.enqueue(newPathName);\n }\n\n return undefined;\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\n if (this.abortPrefetch) {\n this.abortPrefetch.abort();\n }\n\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 && Object.prototype.hasOwnProperty.call(this.props.innerRef, \"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 (inViewPort) {\n if (inViewPort) {\n _this2.abortPrefetch = _this2._prefetch();\n } else {\n if (_this2.abortPrefetch) {\n _this2.abortPrefetch.abort();\n }\n }\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, _excluded);\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(_reachRouter.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 var parsed = (0, _parsePath.parsePath)(prefixedTo);\n\n ___loader.hovering(parsed.pathname + parsed.search);\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 _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;","\"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.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nexports.ScrollContext = _scrollHandler.ScrollHandler;\n\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\n\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use strict\";\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\nfunction _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== \"function\") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }\n\nfunction _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== \"object\" && typeof obj !== \"function\") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== \"default\" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }\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 _this._isTicking = false;\n _this._latestKnownScrollY = 0;\n\n _this.scrollListener = function () {\n _this._latestKnownScrollY = window.scrollY;\n\n if (!_this._isTicking) {\n _this._isTicking = true;\n requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\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._saveScroll = function _saveScroll() {\n var key = this.props.location.key || null;\n\n if (key) {\n this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n }\n\n this._isTicking = false;\n };\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};","\"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;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\n\nvar _scrollHandler = require(\"./scroll-handler\");\n\nvar _react = require(\"react\");\n\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\n\nfunction useScrollRestoration(identifier) {\n var location = (0, _reachRouter.useLocation)();\n var state = (0, _react.useContext)(_scrollHandler.ScrollContext);\n var ref = (0, _react.useRef)(null);\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 }, [location.key]);\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}","import axios from 'axios';\n\nconst apiBaseURL =\n process.env.GATSBY_API_URL || 'https://api.dev.ibanwallet.com/';\n\nconst APPLICATION_NAME = 'barney';\n\naxios.interceptors.request.use((config) => {\n if (config.method === 'get') {\n // eslint-disable-next-line no-param-reassign\n config.headers.pragma = 'no-cache';\n // eslint-disable-next-line no-param-reassign\n config.headers['cache-control'] = 'no-cache';\n // eslint-disable-next-line no-param-reassign\n config.headers['x-application-name'] = APPLICATION_NAME;\n }\n return config;\n});\n\nconst submitEmail = async ({\n email,\n locale,\n profileType,\n login,\n signup,\n}: SubmitEmailRequestParams) => {\n const encodedEmail = encodeURIComponent(email);\n\n try {\n const token = (\n await axios.post(\n `${apiBaseURL}api/v1/registration/email`,\n { sendEmailVerificationEmail: false, email },\n {\n params: { locale, profileType },\n headers: { 'x-application-name': APPLICATION_NAME },\n },\n )\n ).data.data;\n\n window.location.replace(`${signup}&token=${token}&email=${encodedEmail}`);\n return '';\n } catch (err) {\n const errorCode =\n err?.response?.data?.meta?.errorCode ?? 'generic.try_again';\n\n if (errorCode === 'ALREADY_EXISTS') {\n window.location.replace(`${login}&email=${encodedEmail}`);\n return '';\n }\n\n return errorCode;\n }\n};\n\nconst viewerCountry = async (): Promise<Country | undefined> => {\n try {\n const {\n data: { data },\n } = await axios.get(`${apiBaseURL}api/v1/countries/viewer`);\n return data;\n } catch (err) {\n return undefined;\n }\n};\n\nconst countriesList = async (): Promise<Country[] | undefined> => {\n try {\n const {\n data: { data },\n } = await axios.get(`${apiBaseURL}api/v1/countries/all?language=en`);\n return data;\n } catch (err) {\n return undefined;\n }\n};\n\nconst getProducts = async (\n countryCode: string,\n currency: string,\n): Promise<Product[] | null> => {\n try {\n return (\n await axios.get(\n `${apiBaseURL}api/v1/product/country/${countryCode}?currencyAlpha3Code~eq=${currency}&sortBy=interestRate&sortDir=asc&productType~neq=FUND`,\n )\n ).data.data.values;\n } catch (err) {\n return null;\n }\n};\n\nconst getRecurringProducts = \n async (\n productName: string, \n currencyCode: string, \n countryCode: string,\n initialInvestment: number,\n monthlyInstallment: number,\n adjustInflation: boolean,\n termPeriodYears: number,\n ): Promise<Product | null> => {\n try {\n return await axios.post(`${apiBaseURL}api/v1/recurringInstallmentProduct/preview`, {\n productName,\n currencyCode,\n countryCode,\n initialInvestment,\n monthlyInstallment,\n adjustInflation,\n termPeriodYears\n }\n );\n } catch (err) {\n return null;\n }\n};\n\nexport { submitEmail, viewerCountry, countriesList, getProducts, getRecurringProducts };\n","/** @jsx jsx */\nimport { jsx } from 'theme-ui';\n\ninterface ExternalLinkProps {\n href: string;\n to: string;\n variant?: string;\n sameTab?: boolean;\n}\n\nconst ExternalLink: React.FC<ExternalLinkProps> = ({\n children,\n to,\n sameTab,\n ...rest\n}) => {\n const target = sameTab\n ? {}\n : { target: '_blank', rel: 'noopener noreferrer' };\n return (\n <a href={to} {...target} {...rest}>\n {children}\n </a>\n );\n};\n\nexport default ExternalLink;\n","/** @jsx jsx */\nimport { jsx } from 'theme-ui';\n\nimport { Link } from 'gatsby';\nimport { useIntl } from '../../context/IntlContext';\n\ninterface LocalizedLinkProps {\n to: string;\n}\n\nconst LocalizedLink: React.FC<LocalizedLinkProps> = ({ to, ...props }) => {\n const { locale, defaultLocale } = useIntl();\n\n const linkLocale = locale === defaultLocale ? '' : `/${locale}`;\n\n return <Link {...props} to={`${linkLocale}${to}`} />;\n};\n\nexport default LocalizedLink;\n","import React from 'react';\nimport { Link as UILink } from '@theme-ui/components';\nimport ExternalLink from './ExternalLink';\nimport LocalizedLink from './LocalizedLink';\n\ninterface LinkProps {\n to: string;\n}\n\nconst Link: React.FC<LinkProps> = ({ children, to, ...rest }) => {\n const isExternalLink = /^(https?|mailto):/.test(to);\n\n if (isExternalLink) {\n return (\n <UILink {...rest} to={to} as={ExternalLink}>\n {children}\n </UILink>\n );\n }\n\n return (\n <UILink {...rest} to={to} as={LocalizedLink}>\n {children}\n </UILink>\n );\n};\n\nexport default Link;\n","import React, { useState, useEffect, useContext } from 'react';\nimport ViewerContext from 'context/ViewerContext';\n\nconst localStorageCurrencyKey = 'curr';\n\nconst getCurrencyCode = (alpha3Code: string) => (currenciesList: string[]) => {\n const code = alpha3Code && currenciesList.find((c) => c === alpha3Code);\n return !!code;\n};\n\nconst getLocalStorageCurrency = () =>\n sessionStorage.getItem(localStorageCurrencyKey);\n\nconst CurrencyContext = React.createContext<CurrencyContext>({\n currency: 'EUR',\n currenciesList: [],\n getLocalStorageCurrency,\n setCurrency: () => undefined,\n});\n\nexport const CurrencyProvider: React.FC = ({ children }) => {\n const { allowedCurrencies } = useContext(ViewerContext);\n const [currency, setCurrency] = useState(allowedCurrencies[0]);\n\n const setCurrencyCode = (selectedCurrencyCode: string) => {\n setCurrency(selectedCurrencyCode);\n sessionStorage.setItem(localStorageCurrencyKey, selectedCurrencyCode);\n };\n\n useEffect(() => {\n const sessionStorageCurrency = getLocalStorageCurrency();\n if (\n sessionStorageCurrency &&\n getCurrencyCode(sessionStorageCurrency)(allowedCurrencies)\n ) {\n setCurrencyCode(sessionStorageCurrency);\n } else {\n setCurrencyCode(allowedCurrencies[0]);\n }\n }, [allowedCurrencies]);\n\n return (\n <CurrencyContext.Provider\n value={{\n currenciesList: allowedCurrencies,\n currency,\n setCurrency: setCurrencyCode,\n getLocalStorageCurrency,\n }}\n >\n {children}\n </CurrencyContext.Provider>\n );\n};\n\nexport default CurrencyContext;\n","import React, { useContext, useEffect, useState, useCallback } from 'react';\nimport { injectIntl } from 'react-intl';\n\nimport CurrencyContext from '../CurrencyContext';\nimport { useProducts } from '../SavingProductsContext';\n\ninterface IntlContext {\n t: (_id: string, _values?: { [key: string]: string | number }) => string;\n formatPercentage: (value: any) => string;\n formatMoney: (value: any) => string;\n formatAmount: (value: any) => string;\n formatMoneyShort: (value: any) => string;\n locale: string;\n}\n\nconst IntlContext = React.createContext<IntlContext>({\n t: (id, values) => id,\n formatPercentage: (value) => value,\n formatMoney: (value) => value,\n formatAmount: (value) => value,\n formatMoneyShort: (value) => value,\n locale: 'es'\n});\n\nconst REFERRAL_BONUS_PER_CURRENCY: any = {\n MXN: '100',\n EUR: '25',\n USD: '25',\n default: '25',\n};\n\nexport const IntlContextProvider = injectIntl(\n ({ intl, children, ...props }) => {\n const { currency, setCurrency } = useContext(CurrencyContext);\n const { productList: products } = useProducts();\n const [globalVariables, setGlobalVariables] = useState({});\n const { locale } = intl;\n\n useEffect(() => {\n if (locale === 'es-MX' && currency !== 'MXN') {\n setCurrency('MXN');\n }\n }, [currency, locale, setCurrency]);\n\n const formatNumber = useCallback(\n (n, ...rest) => intl.formatNumber(parseFloat(n), ...rest),\n [intl],\n );\n\n const formatAmount = (amount: number) =>\n formatNumber(amount, { minimumFractionDigits: 2 });\n\n const formatMoney = (amount: number) =>\n formatNumber(amount, { style: 'currency', currency });\n\n const formatMoneyShort = useCallback(\n (amount) =>\n formatNumber(amount, {\n style: 'currency',\n currency,\n minimumFractionDigits: 0,\n }),\n [currency, formatNumber],\n );\n\n const formatPercentage = useCallback(\n (n) =>\n formatNumber(n / 100, {\n style: 'percent',\n maximumFractionDigits: 2,\n }).replace(/\\s/g, ''),\n [formatNumber],\n );\n\n useEffect(() => {\n setGlobalVariables(\n products.reduce((acc, product: any, index) => {\n const values: any = {};\n\n const {\n productName,\n minimumInvestment: min,\n interestRate,\n years,\n } = product;\n const name = productName ? productName.replace('iban_', '') : '';\n\n values[`${name}_minimum`] = formatMoneyShort(min);\n values[`${name}_interest_rate`] = formatPercentage(interestRate);\n\n if (years) {\n values[`${name}_term`] = years;\n }\n\n // If it's the first product in the array, it's the one with the lowest\n // interest rate because they're ordered by interest rate\n if (!index) {\n values.minimum_interest_rate = formatPercentage(interestRate);\n } else if (index === products.length - 1) {\n values.maximum_interest_rate = formatPercentage(interestRate);\n }\n\n const sortBy = (key: string) => {\n return (a: any, b: any) => (a[key] > b[key] ? 1 : b[key] > a[key] ? -1 : 0);\n };\n\n const productsByMinInvestment: any = products\n .concat()\n .sort(sortBy('minimumInvestment'));\n\n values.minimum_deposit_amount = formatMoneyShort(\n productsByMinInvestment[0]?.minimumInvestment ?? 1,\n );\n\n values.minimum_investment_amount = formatMoneyShort(\n productsByMinInvestment.filter((p: any) => !!p.years)[0]\n ?.minimumInvestment ?? 1000,\n );\n\n values.maximum_term =\n productsByMinInvestment.filter((p: any) => !!p.years).reverse()[0]\n ?.years ?? 5;\n\n return { ...acc, ...values };\n }, {}),\n );\n }, [formatMoneyShort, formatPercentage, products]);\n\n const t = (id: string, values = { defaultMessage: ' ' }) => {\n const { defaultMessage } = values;\n const key = id;\n\n if (process.env.NODE_ENV !== 'production' && typeof values === 'string') {\n // eslint-disable-next-line no-console\n console.warn('[intl] Using default value for', key);\n }\n\n return intl\n .formatMessage(\n { id: key, defaultMessage },\n {\n minimum_interest_rate: formatPercentage('2.5'),\n maximum_interest_rate: formatPercentage('6'),\n minimum_deposit_amount: formatMoneyShort('1'),\n minimum_investment_amount: formatMoneyShort('1000'),\n referral_bonus: formatMoneyShort(\n REFERRAL_BONUS_PER_CURRENCY[currency] ||\n REFERRAL_BONUS_PER_CURRENCY.default,\n ),\n ...values,\n ...globalVariables,\n },\n )\n .trim();\n };\n\n return (\n <IntlContext.Provider\n {...props}\n value={{\n ...intl,\n locale: intl.locale,\n t,\n formatPercentage,\n formatMoney,\n formatAmount,\n formatMoneyShort,\n }}\n >\n {children}\n </IntlContext.Provider>\n );\n },\n);\n\nexport const useIntl = () => useContext(IntlContext);\n","import React, { useContext } from 'react';\nimport { Location, WindowLocation, NavigateFn } from '@reach/router';\nimport queryString from 'query-string';\n\ninterface LocationContext {\n search: any;\n location?: WindowLocation;\n navigate?: NavigateFn;\n}\n\nconst defaultValue = {\n search: {},\n};\n\nconst LocationContext = React.createContext<LocationContext>(defaultValue);\n\nexport const LocationProvider: React.FC = ({ ...props }) => (\n <Location>\n {({ location, navigate }) => (\n <LocationContext.Provider\n {...props}\n value={{\n location,\n navigate,\n search: location.search ? queryString.parse(location.search) : {},\n }}\n />\n )}\n </Location>\n);\n\nexport const useLocation = (): LocationContext => {\n const context = useContext(LocationContext);\n if (context === undefined) {\n throw new TypeError('useLocation must be used within a LocationProvider');\n }\n return context;\n};\n\nexport default LocationContext;\n","export enum ProductName {\n STAR = 'star',\n STARV4 = 'starv4',\n STARV5 = 'starv5',\n AURA = 'aura',\n ANTARES = 'antares',\n}\n","import React, { useContext, useEffect, useState } from 'react';\nimport * as api from 'api';\nimport CurrencyContext from 'context/CurrencyContext';\nimport ViewerContext from 'context/ViewerContext';\nimport { ProductName } from '../../constants/product-name';\n\ninterface SavingsProductsContextProps {\n productList: Array<Product & ExtraProductInformation>;\n}\n\nconst SavingsProductsContext = React.createContext<SavingsProductsContextProps>(\n { productList: [] },\n);\n\nconst projectId = process.env.APPLICATION_ID;\n\nconst IbanExtraProductInformation: ExtraProductInformation = {\n iban_account: {\n productName: 'homepage.offer.product_boxes.base.product_name',\n isAssetBacked: true,\n useShortName: false,\n hasBuybackGuarantee: true,\n hasSafeguardTrust: true,\n calculatorColor: {\n css: 'rgba(68, 176, 79, 1)',\n },\n hideInHomePage: false,\n },\n iban_one: {\n productName: 'global.product_name.one',\n isAssetBacked: true,\n useShortName: true,\n hasBuybackGuarantee: true,\n hasSafeguardTrust: true,\n calculatorColor: {\n css: '#rgba(68, 176, 79, 1)',\n },\n hideInHomePage: true,\n },\n iban_one3: {\n productName: 'homepage.offer.product_boxes.one.product_name',\n isAssetBacked: true,\n useShortName: true,\n hasBuybackGuarantee: true,\n hasSafeguardTrust: true,\n calculatorColor: {\n css: 'rgba(68, 176, 79, 0.5)',\n },\n hideInHomePage: false,\n },\n iban_market: {\n productName: 'global.product_name.market',\n isAssetBacked: true,\n useShortName: true,\n hasBuybackGuarantee: true,\n hasSafeguardTrust: true,\n calculatorColor: {\n css: 'rgba(68, 176, 79, 0.5)',\n },\n hideInHomePage: true,\n },\n iban_market4: {\n productName: 'homepage.offer.product_boxes.market.product_name',\n isAssetBacked: true,\n useShortName: true,\n hasBuybackGuarantee: true,\n hasSafeguardTrust: true,\n calculatorColor: {\n css: 'rgba(68, 176, 79, 0.3)',\n },\n hideInHomePage: false,\n },\n iban_dynamic: {\n productName: 'iban_dynamic',\n isAssetBacked: true,\n useShortName: true,\n hasBuybackGuarantee: true,\n hasSafeguardTrust: false,\n calculatorColor: undefined,\n hideInHomePage: true,\n },\n iban_30: {\n hideInHomePage: true,\n shortTerm: true,\n },\n iban_90: {\n hideInHomePage: true,\n shortTerm: true,\n },\n iban_180: {\n hideInHomePage: true,\n shortTerm: true,\n },\n};\n\nconst TheSafeCompanyExtraProductInformation: ExtraProductInformation = {\n iban_account: {\n productName: 'global.product_name.account',\n isAssetBacked: true,\n useShortName: false,\n hasBuybackGuarantee: true,\n hasSafeguardTrust: true,\n calculatorColor: {\n css: '#367fff',\n },\n hideInHomePage: false,\n },\n iban_one: {\n productName: 'global.product_name.one',\n isAssetBacked: true,\n useShortName: true,\n hasBuybackGuarantee: true,\n hasSafeguardTrust: true,\n calculatorColor: {\n css: '#367fff',\n },\n hideInHomePage: false,\n },\n iban_one3: {\n productName: 'global.product_name.one',\n isAssetBacked: true,\n useShortName: true,\n hasBuybackGuarantee: true,\n hasSafeguardTrust: true,\n calculatorColor: {\n css: 'rgba(56, 85, 134, 0.4)',\n },\n hideInHomePage: false,\n },\n iban_market: {\n productName: 'global.product_name.market',\n isAssetBacked: true,\n useShortName: true,\n hasBuybackGuarantee: true,\n hasSafeguardTrust: true,\n calculatorColor: {\n css: 'rgba(56, 85, 134, 0.2)',\n },\n hideInHomePage: false,\n },\n iban_market4: {\n productName: 'global.product_name.market',\n isAssetBacked: true,\n useShortName: true,\n hasBuybackGuarantee: true,\n hasSafeguardTrust: true,\n calculatorColor: {\n css: 'rgba(56, 85, 134, 0.2)',\n },\n hideInHomePage: false,\n },\n iban_dynamic: {\n productName: 'iban_dynamic',\n isAssetBacked: true,\n useShortName: true,\n hasBuybackGuarantee: true,\n hasSafeguardTrust: false,\n calculatorColor: undefined,\n hideInHomePage: true,\n },\n iban_30: {\n hideInHomePage: true,\n shortTerm: true,\n },\n iban_90: {\n hideInHomePage: true,\n shortTerm: true,\n },\n iban_180: {\n hideInHomePage: true,\n shortTerm: true,\n },\n};\n\nexport interface ExtraProductInformation {\n [key: string]: {\n productName?: string;\n isAssetBacked?: boolean;\n useShortName?: boolean;\n hasBuybackGuarantee?: boolean;\n hasSafeguardTrust?: boolean;\n calculatorColor?: {\n css: string;\n };\n hideInHomePage?: boolean;\n shortTerm?: boolean;\n };\n}\n\nexport const SavingsProductsProvider: React.FC = ({ children, ...rest }) => {\n const [rawProductList, setRawProductsLis] = useState<any>();\n const { currency } = useContext(CurrencyContext);\n const { countryCode } = useContext(ViewerContext);\n const [productList, setProducts] = useState<\n (Product & ExtraProductInformation)[]\n >([]);\n\n const ExtraProductInformation: ExtraProductInformation =\n projectId === 'groot'\n ? IbanExtraProductInformation\n : TheSafeCompanyExtraProductInformation;\n\n useEffect(() => {\n let isMounted: boolean = true;\n\n if (!isMounted) return;\n\n // If already have set this tuple of values them return\n if ((rawProductList || {})[`${countryCode}-${currency}`]) return;\n\n // Fetch the product for the tuple\n const fetchProducts = async () => {\n const products = await api.getProducts(countryCode, currency);\n setRawProductsLis({\n ...rawProductList,\n [`${countryCode}-${currency}`]: products,\n });\n };\n\n fetchProducts();\n\n return () => {\n isMounted = false;\n };\n }, [countryCode, currency]);\n\n useEffect(() => {\n let isMounted: boolean = true;\n\n // If any of these are false/undefined/null return\n if (!isMounted || !rawProductList || !countryCode || !currency) return;\n\n // If there is no data yet\n if (!rawProductList[`${countryCode}-${currency}`]) return;\n\n const newProducts = rawProductList[`${countryCode}-${currency}`]\n ?.filter(\n (p: Product) =>\n p.name !== ProductName.STAR &&\n p.name !== ProductName.STARV4 &&\n p.name !== ProductName.STARV5 &&\n p.name !== ProductName.ANTARES &&\n p.name !== ProductName.AURA,\n )\n ?.map((product: Product) => ({\n ...ExtraProductInformation[product.name],\n interestRate: product.interestRate,\n minimumInvestment: product.minimumDepositAmount,\n years: product.termInDays ? Math.ceil(product.termInDays / 365) : null,\n compoundInterest: product.interestStrategy === 'COMPOUND',\n earlyTermination: product.penalty && +product.penalty > 0 ? true : null,\n }))\n .filter((p: Product & ExtraProductInformation) => !p.shortTerm);\n\n setProducts(newProducts);\n\n return () => {\n isMounted = false;\n };\n }, [rawProductList, countryCode, currency]);\n\n return (\n <SavingsProductsContext.Provider\n {...rest}\n value={{\n productList,\n }}\n >\n {children}\n </SavingsProductsContext.Provider>\n );\n};\n\nexport const useProducts = () => useContext(SavingsProductsContext);\n","export const defaultData: Country = {\n allowedCurrencies: ['EUR', 'USD', 'MXN'],\n countryCode: 'IE',\n locales: ['en', 'pt', 'es', 'es-MX', 'fr', 'it', 'de'],\n name: '',\n};\n","import React, { useState, useEffect } from 'react';\nimport * as api from 'api';\nimport { defaultData } from './constants';\n\nconst cleanUnderscoreLocale = (locale: string) => locale.replace('_', '-');\n\nconst saveLocalStorage = (c: Record<string, any>) => {\n Object.keys(c).forEach((key) => {\n localStorage.setItem(`viewer.${key}`, JSON.stringify(c[key]));\n });\n};\n\nconst loadLocalStorage = (): ViewerData | undefined => {\n if (typeof window === `undefined`) return undefined;\n const copied: Record<string, ViewerData> = {};\n Object.keys(defaultData).forEach((key) => {\n const val = localStorage.getItem(`viewer.${key}`);\n if (val) copied[key] = JSON.parse(val);\n });\n\n if (Object.keys(defaultData).length !== Object.keys(copied).length) {\n return undefined;\n }\n\n return { loadedFromSession: true, ...(copied as unknown as ViewerData) };\n};\n\nconst ViewerContext = React.createContext<ViewerProviderProps>(defaultData);\n\nconst ViewerProvider: React.FC = ({ children }) => {\n const [viewerData, setData] = useState<ViewerData>(defaultData);\n const [countriesList, setCountriesList] = useState<Country[] | undefined>();\n\n // Fetch country list\n useEffect(() => {\n const fetchCountryList = async () => {\n const list: Country[] | undefined = await api.countriesList();\n\n if (!list) return;\n\n list\n ?.filter(\n (c: Country) =>\n c.isBusinessProfileAvailable || c.isPersonalProfileAvailable,\n )\n .map((c: Country) => {\n const { allowedCurrencies, locales, countryCode, name } = c;\n const nLocal = locales.map(cleanUnderscoreLocale);\n return {\n allowedCurrencies,\n locales: nLocal,\n countryCode,\n name,\n };\n });\n\n setCountriesList(list);\n };\n\n fetchCountryList();\n }, []);\n\n useEffect(() => {\n if (!countriesList) return;\n\n // If we have the country view from the localStorage\n const localStorageViewerData = loadLocalStorage();\n \n if (localStorageViewerData) {\n setData(localStorageViewerData);\n return;\n }\n \n // Else we fetch the view country from our API\n const fecthViewerCountry = async () => {\n const country: Country | undefined = await api.viewerCountry();\n // If there isnt any data. e.g. Network Error\n // Fallback is the default language imported from const\n // Then return\n if (!country) return;\n const { locales, ...rest } = country;\n const nLocal = locales.map(cleanUnderscoreLocale);\n\n const data = { locales: nLocal, ...rest };\n \n saveLocalStorage(data);\n setData(data);\n };\n\n fecthViewerCountry();\n }, [countriesList]);\n\n return (\n <ViewerContext.Provider\n value={{ ...viewerData }}\n >\n {!!viewerData && children}\n </ViewerContext.Provider>\n );\n};\n\nexport { ViewerProvider };\nexport default ViewerContext;\n","export default {\n colors: {\n primary: '#FFFFFF',//Boton 1\n secondary: '#293242',//Secciones\n tertiary: '#293242',//TextosHome\n quaternary: '#293242',//Textos mas abajo\n quinary: '#293242',//Textos de parrafos\n senary: '#293242 ',//Contorno\n septenary: '#ACE522',\n success: '#31ac55',\n primaryBackground: '#FFFFFF',//Fondo\n secondaryBackground: '#FFFFFF',\n tertiaryBackground: '#e8e8e8',//FondoHome\n quaternaryBackground: '#eaf1ff',\n quinaryBackground: '#28519F',//\n \n navigationPrimaryText: '#293242',//Textos navigation\n navigationSecondaryText: '#293242',//\n navigationPrimaryBackground: '#e8e8e8',//Navigation\n navigationSecondaryBackground: '#e8e8e8',\n\n\n primaryBlue: '#ACE522',\n primaryDarkBlue: '#000638',\n primaryBlack: '#000000',\n primaryGray: '#DDDDDD',\n secondaryPaleBlue: '#03DDF4',\n secondaryBlue: '#1B0DD9',\n secondaryDarkBlue: '#122663',\n secondaryLightBlue: '#0D84D9',\n // modes: {\n // light: {\n // navigationPrimaryText: '#FFFFFF',\n // navigationPrimaryBackground: '#233143',\n // },\n // },\n },\n fonts: {\n body: 'Syne, sans-serif',\n heading: 'Arial, sans-serif',\n },\n fontWeights: {\n normal: 400,\n semibold: 600,\n bold: 700,\n },\n lineHeights: {\n body: 1.5,\n heading: 1.125,\n title: 1.22,\n subtitle: 1.56,\n normal: 1.2,\n submenu: 1.44,\n subtitleprimary: 1.25,\n subtitlesecondary: 1.17,\n subtitletertiary: 1.26,\n textprimary: 1.63,\n comfortable: 3,\n },\n fontSizes: [\n '12px', // 0\n '14px', // 1\n '16px', // 2\n '18px', // 3\n '20px', // 4\n '24px', // 5\n '32px', // 6\n '38px', // 7\n '40px', // 8\n '46px', // 9\n ],\n space: [\n '0', // 0\n '4px', // 1\n '8px', // 2\n '12px', // 3\n '14px', // 4\n '16px', // 5\n '18px', // 6\n '24px', // 7\n '32px', // 8\n '40px', // 9\n '44px', // 10\n '48px', // 11\n '56px', // 12\n '64px', // 13\n '80px', // 14\n '128px', // 15\n '256px', // 16\n '512px', // 17\n ],\n sizes: {\n container: '1064px',\n },\n radii: ['0', '2px', '4px', '8px', '16px'],\n display: {\n none: 'none',\n inherit: 'inherit',\n },\n breakpoints: ['320px', '640px', '768px', '1024px', '1280px'],\n // Variants\n text: {\n heading: {\n fontWeight: 'semibold',\n lineHeight: 'heading',\n paddingTop: [0, 0, 0, 32, 32],\n },\n heroTitle: {\n py: 8,\n variant: 'text.heading',\n fontSize: [8, 8, 8, 9],\n lineHeight: 'heading',\n },\n sectionTitle: {\n py: 6,\n variant: 'text.heading',\n fontSize: [6, 6, 6, 7],\n color: 'quaternary',\n display: 'block',\n },\n contentTitle: {\n py: 6,\n variant: 'text.heading',\n fontSize: 3,\n color: 'quaternary',\n display: 'block',\n },\n contentTitleLight: {\n py: 3,\n variant: 'text.heading',\n fontSize: 3,\n color: 'tertiary',\n display: 'block',\n },\n content: {\n py: 2,\n fontSize: 3,\n color: 'quaternary',\n },\n underHero: {\n display: 'block',\n fontSize: [1, 1, 1, 3],\n color: 'quinary',\n fontWeight: 'normal',\n },\n underContent: {\n fontSize: 2,\n color: 'quinary',\n fontWeight: 'normal',\n display: 'block',\n textAlign: 'justify',\n },\n underContentLight: {\n fontSize: 2,\n color: 'tertiary',\n fontWeight: ['semibold', 'normal'],\n textAlign: 'justify',\n },\n smallReferences: {\n fontSize: 1,\n fontWeight: 'normal',\n },\n },\n buttons: {\n default: {\n display: 'inline-flex',\n borderRadius: 2,\n paddingTop: 3,\n paddingBottom: 4,\n paddingX: 7,\n fontSize: 3,\n lineHeight: 'subtitleprimary',\n minWidth: 'auto',\n fontFamily: 'body',\n fontWeight: 'semibold',\n textAlign: 'center',\n whiteSpace: 'nowrap',\n alignItems: 'center',\n justifyContent: 'center',\n cursor: 'pointer',\n },\n primary: {\n variant: 'buttons.default',\n color: 'tertiary',\n bg: 'primary',\n },\n secondary: {\n variant: 'buttons.default',\n color: 'primary',\n bg: 'transparent',\n border: '1px',\n borderColor: 'senary',\n borderStyle: 'solid',\n },\n dark: {\n variant: 'buttons.default',\n color: 'tertiary',\n bg: 'quaternary',\n },\n },\n forms: {\n input: {\n paddingY: 5,\n paddingX: 4,\n borderRadius: 2,\n marginRight: 2,\n fontSize: 1,\n lineHeight: 'normal',\n display: 'inline-block',\n '&::placeholder': {\n fontSize: 4,\n },\n },\n select: {\n fullWidth: {\n width: '100%',\n },\n },\n },\n container: {\n px: ['20px', 5],\n },\n heading: {\n color: 'tertiary',\n fontFamily: 'heading',\n fontSize: [34, 40, 46],\n width: ['275px', '335px', '532px'],\n pl: ['20px', '20px', '151px'],\n },\n subtitle: {\n color: 'tertiary',\n fontFamily: 'heading',\n fontSize: [16, 16, 18],\n width: ['275px', '335px', '531px'],\n pl: ['20px', '20px', '151px'],\n pt: ['20px', '20px', '24px'],\n },\n styles: {\n root: {\n fontFamily: 'body',\n lineHeight: 'body',\n fontWeight: 'normal',\n backgroundColor: 'primaryBackground',\n },\n a: {\n textDecoration: 'none',\n color: 'primary',\n transition: 'all 0.2s ease-in',\n '&:hover': {\n opacity: '0.8',\n },\n },\n },\n};\n","exports.components = {\n \"component---src-pages-404-tsx\": () => import(\"./../../../src/pages/404.tsx\" /* webpackChunkName: \"component---src-pages-404-tsx\" */),\n \"component---src-pages-account-tsx\": () => import(\"./../../../src/pages/account.tsx\" /* webpackChunkName: \"component---src-pages-account-tsx\" */),\n \"component---src-pages-cash-conversion-cycle-tsx\": () => import(\"./../../../src/pages/cash-conversion-cycle.tsx\" /* webpackChunkName: \"component---src-pages-cash-conversion-cycle-tsx\" */),\n \"component---src-pages-company-about-us-tsx\": () => import(\"./../../../src/pages/company/about-us.tsx\" /* webpackChunkName: \"component---src-pages-company-about-us-tsx\" */),\n \"component---src-pages-company-security-tsx\": () => import(\"./../../../src/pages/company/security.tsx\" /* webpackChunkName: \"component---src-pages-company-security-tsx\" */),\n \"component---src-pages-help-contact-us-tsx\": () => import(\"./../../../src/pages/help/contact-us.tsx\" /* webpackChunkName: \"component---src-pages-help-contact-us-tsx\" */),\n \"component---src-pages-index-tsx\": () => import(\"./../../../src/pages/index.tsx\" /* webpackChunkName: \"component---src-pages-index-tsx\" */),\n \"component---src-pages-marketplace-tsx\": () => import(\"./../../../src/pages/marketplace.tsx\" /* webpackChunkName: \"component---src-pages-marketplace-tsx\" */),\n \"component---src-pages-privacy-policy-tsx\": () => import(\"./../../../src/pages/privacy-policy.tsx\" /* webpackChunkName: \"component---src-pages-privacy-policy-tsx\" */),\n \"component---src-pages-terms-and-conditions-tsx\": () => import(\"./../../../src/pages/terms-and-conditions.tsx\" /* webpackChunkName: \"component---src-pages-terms-and-conditions-tsx\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-theme-ui/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby-plugin-image/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n options: {\"plugins\":[],\"name\":\"The Safe Company\",\"short_name\":\"starter\",\"start_url\":\"/\",\"background_color\":\"#233143\",\"theme_color\":\"#233143\",\"icon\":\"src/images/favicon_Safe_Company.png\",\"legacy\":true,\"theme_color_in_head\":true,\"cache_busting_mode\":\"query\",\"crossOrigin\":\"anonymous\",\"include_favicon\":true,\"cacheDigest\":\"ec35766d9ac811536e1059170aea6077\"},\n },{\n plugin: require('../gatsby-browser.js'),\n options: {\"plugins\":[]},\n }]\n","const plugins = require(`./api-runner-browser-plugins`)\nconst { getResourceURLsForPathname, loadPage, 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 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","// \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","export default pathAndSearch => {\n if (pathAndSearch === undefined) {\n return pathAndSearch\n }\n let [path, search = ``] = pathAndSearch.split(`?`)\n if (search) {\n search = `?` + search\n }\n\n if (path === `/`) {\n return `/` + search\n }\n if (path.charAt(path.length - 1) === `/`) {\n return path.slice(0, -1) + search\n }\n return path + search\n}\n","import { pick } from \"@gatsbyjs/reach-router/lib/utils\"\nimport stripPrefix from \"./strip-prefix\"\nimport normalizePagePath from \"./normalize-page-path\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\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(\n pathname,\n decodeURIComponent(__BASE_PATH__)\n )\n // Remove any hashfragment\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 const redirect = maybeGetBrowserRedirect(rawPathname)\n if (redirect) {\n return findPath(redirect.toPath)\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","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 <React.Fragment>\n {finalData && render(finalData)}\n {!finalData && <div>Loading (StaticQuery)</div>}\n </React.Fragment>\n )\n}\n\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n return (\n <StaticQueryContext.Consumer>\n {staticQueryData => (\n <StaticQueryDataRenderer\n data={data}\n query={query}\n render={render || children}\n staticQueryData={staticQueryData}\n />\n )}\n </StaticQueryContext.Consumer>\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 useScrollRestoration,\n StaticQueryContext,\n StaticQuery,\n PageRenderer,\n useStaticQuery,\n prefetchPathname,\n}\n","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 = rawPath => {\n const [path, maybeSearch] = rawPath.split(`?`)\n const fixedPath = path === `/` ? `index` : stripSurroundingSlashes(path)\n return `${__PATH_PREFIX__}/page-data/${fixedPath}/page-data.json${\n maybeSearch ? `?${maybeSearch}` : ``\n }`\n}\n\nfunction doFetch(url, method = `GET`) {\n return new Promise(resolve => {\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 getServerDataError: pageData.getServerDataError,\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.isPrefetchQueueRunning = false\n this.prefetchQueued = []\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 const maybeSearch = pagePath.split(`?`)[1]\n if (maybeSearch && !jsonPayload.path.includes(maybeSearch)) {\n jsonPayload.path += `?${maybeSearch}`\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/500 page and it doesn't exist, we're done\n if (pagePath === `/404.html` || pagePath === `/500.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 this.fetchPageDataJson(\n Object.assign(loadObj, {\n pagePath: `/500.html`,\n internalServerError: true,\n })\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 if (page.error) {\n return {\n error: page.error,\n status: page.status,\n }\n }\n\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 || component instanceof Error) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = component\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 )\n .then(req => {\n const jsonPayload = JSON.parse(req.responseText)\n return { staticQueryHash, jsonPayload }\n })\n .catch(() => {\n throw new Error(\n `We couldn't load \"${__PATH_PREFIX__}/page-data/sq/d/${staticQueryHash}.json\"`\n )\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 (\n Promise.all([componentChunkPromise, staticQueryBatchPromise])\n .then(([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 if (finalResult.error) {\n return {\n error: finalResult.error,\n status: finalResult.status,\n }\n }\n\n return payload\n })\n // when static-query fail to load we throw a better error\n .catch(err => {\n return {\n error: err,\n status: PageResourceStatus.Error,\n }\n })\n )\n })\n\n inFlightPromise\n .then(() => {\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 the page does not exists in cache\n loadPageSync(rawPath, options = {}) {\n const pagePath = findPath(rawPath)\n if (this.pageDb.has(pagePath)) {\n const pageData = this.pageDb.get(pagePath)\n\n if (pageData.payload) {\n return pageData.payload\n }\n\n if (options?.withErrorDetails) {\n return {\n error: pageData.error,\n status: pageData.status,\n }\n }\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 {\n then: resolve => resolve(false),\n abort: () => {},\n }\n }\n if (this.prefetchTriggered.has(pagePath)) {\n return {\n then: resolve => resolve(true),\n abort: () => {},\n }\n }\n\n const defer = {\n resolve: null,\n reject: null,\n promise: null,\n }\n defer.promise = new Promise((resolve, reject) => {\n defer.resolve = resolve\n defer.reject = reject\n })\n this.prefetchQueued.push([pagePath, defer])\n const abortC = new AbortController()\n abortC.signal.addEventListener(`abort`, () => {\n const index = this.prefetchQueued.findIndex(([p]) => p === pagePath)\n // remove from the queue\n if (index !== -1) {\n this.prefetchQueued.splice(index, 1)\n }\n })\n\n if (!this.isPrefetchQueueRunning) {\n this.isPrefetchQueueRunning = true\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n }\n\n return {\n then: (resolve, reject) => defer.promise.then(resolve, reject),\n abort: abortC.abort.bind(abortC),\n }\n }\n\n _processNextPrefetchBatch() {\n const idleCallback = window.requestIdleCallback || (cb => setTimeout(cb, 0))\n\n idleCallback(() => {\n const toPrefetch = this.prefetchQueued.splice(0, 4)\n const prefetches = Promise.all(\n toPrefetch.map(([pagePath, dPromise]) => {\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 dPromise.resolve(false)\n }\n\n return this.doPrefetch(findPath(pagePath)).then(() => {\n if (!this.prefetchCompleted.has(pagePath)) {\n this.apiRunner(`onPostPrefetchPathname`, { pathname: pagePath })\n this.prefetchCompleted.add(pagePath)\n }\n\n dPromise.resolve(true)\n })\n })\n )\n\n if (this.prefetchQueued.length) {\n prefetches.then(() => {\n setTimeout(() => {\n this._processNextPrefetchBatch()\n }, 3000)\n })\n } else {\n this.isPrefetchQueueRunning = false\n }\n })\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, pageData) {\n const loadComponent = chunkName => {\n if (!asyncRequires.components[chunkName]) {\n throw new Error(\n `We couldn't find the correct component chunk with the name ${chunkName}`\n )\n }\n\n return (\n asyncRequires.components[chunkName]()\n .then(preferDefault)\n // loader will handle the case when component is error\n .catch(err => err)\n )\n }\n\n super(loadComponent, matchPaths)\n\n if (pageData) {\n this.pageDataDb.set(findPath(pageData.path), {\n pagePath: pageData.path,\n payload: pageData,\n status: `success`,\n })\n }\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 enqueue: rawPath => instance.prefetch(rawPath),\n\n // Real methods\n getResourceURLsForPathname: rawPath =>\n instance.getResourceURLsForPathname(rawPath),\n loadPage: rawPath => instance.loadPage(rawPath),\n // TODO add deprecation to v4 so people use withErrorDetails and then we can remove in v5 and change default behaviour\n loadPageSync: (rawPath, options = {}) =>\n instance.loadPageSync(rawPath, options),\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","import React, { createElement } from \"react\"\nimport PropTypes from \"prop-types\"\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 }\n\n const pageElement = 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","// This is extracted to separate module because it's shared\n// between browser and SSR code\nexport const RouteAnnouncerProps = {\n id: `gatsby-announcer`,\n style: {\n position: `absolute`,\n top: 0,\n width: 1,\n height: 1,\n padding: 0,\n overflow: `hidden`,\n clip: `rect(0, 0, 0, 0)`,\n whiteSpace: `nowrap`,\n border: 0,\n },\n \"aria-live\": `assertive`,\n \"aria-atomic\": `true`,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport emitter from \"./emitter\"\nimport { RouteAnnouncerProps } from \"./route-announcer-props\"\nimport { navigate as reachNavigate } from \"@gatsbyjs/reach-router\"\nimport { globalHistory } from \"@gatsbyjs/reach-router/lib/history\"\nimport { parsePath } from \"gatsby-link\"\n\nfunction maybeRedirect(pathname) {\n const redirect = maybeGetBrowserRedirect(pathname)\n const { hash, search } = window.location\n\n if (redirect != null) {\n window.___replace(redirect.toPath + search + hash)\n return true\n } else {\n return false\n }\n}\n\n// Catch unhandled chunk loading errors and force a restart of the app.\nlet nextRoute = ``\n\nwindow.addEventListener(`unhandledrejection`, event => {\n if (/loading chunk \\d* failed./i.test(event.reason)) {\n if (nextRoute) {\n window.location.pathname = nextRoute\n }\n }\n})\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n nextRoute = location.pathname\n apiRunner(`onPreRouteUpdate`, { location, prevLocation })\n }\n}\n\nconst onRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onRouteUpdate`, { location, prevLocation })\n if (\n process.env.GATSBY_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 const { pathname, search, hash } = parsePath(to)\n const redirect = maybeGetBrowserRedirect(pathname)\n\n // If we're redirecting, just replace the passed in pathname\n // to the one we want to redirect to.\n if (redirect) {\n to = redirect.toPath + search + hash\n }\n\n // If we had a service worker update, no matter the path, reload window and\n // reset the pathname whitelist\n if (window.___swUpdated) {\n window.location = pathname + search + hash\n return\n }\n\n // Start a timer to wait for a second before transitioning and showing a\n // loader in case resources aren't around yet.\n const timeoutId = setTimeout(() => {\n emitter.emit(`onDelayedLoadPageResources`, { pathname })\n apiRunner(`onRouteUpdateDelayed`, {\n location: window.location,\n })\n }, 1000)\n\n loader.loadPage(pathname + search).then(pageResources => {\n // If no page resources, then refresh the page\n // Do this, rather than simply `window.location.reload()`, so that\n // pressing the back/forward buttons work - otherwise when pressing\n // back, the browser will just change the URL and expect JS to handle\n // the change, which won't always work since it might not be a Gatsby\n // page.\n if (!pageResources || pageResources.status === PageResourceStatus.Error) {\n window.history.replaceState({}, ``, location.href)\n window.location = pathname\n clearTimeout(timeoutId)\n return\n }\n\n // If the loaded page has a different compilation hash to the\n // window, then a rebuild has occurred on the server. Reload.\n if (process.env.NODE_ENV === `production` && pageResources) {\n if (\n pageResources.page.webpackCompilationHash !==\n window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n window.location = pathname + search + hash\n }\n }\n reachNavigate(to, options)\n clearTimeout(timeoutId)\n })\n}\n\nfunction shouldUpdateScroll(prevRouterProps, { location }) {\n const { pathname, hash } = location\n const results = apiRunner(`shouldUpdateScroll`, {\n prevRouterProps,\n // `pathname` for backwards compatibility\n pathname,\n routerProps: { location },\n getSavedScrollPosition: args => [\n 0,\n // FIXME this is actually a big code smell, we should fix this\n // eslint-disable-next-line @babel/no-invalid-this\n this._stateStorage.read(args, args.key),\n ],\n })\n if (results.length > 0) {\n // Use the latest registered shouldUpdateScroll result, this allows users to override plugin's configuration\n // @see https://github.com/gatsbyjs/gatsby/issues/12038\n return results[results.length - 1]\n }\n\n if (prevRouterProps) {\n const {\n location: { pathname: oldPathname },\n } = prevRouterProps\n if (oldPathname === pathname) {\n // Scroll to element if it exists, if it doesn't, or no hash is provided,\n // scroll to top.\n return hash ? decodeURI(hash.slice(1)) : [0, 0]\n }\n }\n return true\n}\n\nfunction init() {\n // The \"scroll-behavior\" package expects the \"action\" to be on the location\n // object so let's copy it over.\n globalHistory.listen(args => {\n args.location.action = args.action\n })\n\n window.___push = to => navigate(to, { replace: false })\n window.___replace = to => navigate(to, { replace: true })\n window.___navigate = (to, options) => navigate(to, options)\n}\n\nclass RouteAnnouncer extends React.Component {\n constructor(props) {\n super(props)\n this.announcementRef = React.createRef()\n }\n\n componentDidUpdate(prevProps, nextProps) {\n requestAnimationFrame(() => {\n let pageName = `new page at ${this.props.location.pathname}`\n if (document.title) {\n pageName = document.title\n }\n const pageHeadings = document.querySelectorAll(`#gatsby-focus-wrapper h1`)\n if (pageHeadings && pageHeadings.length) {\n pageName = pageHeadings[0].textContent\n }\n const newAnnouncement = `Navigated to ${pageName}`\n if (this.announcementRef.current) {\n const oldAnnouncement = this.announcementRef.current.innerText\n if (oldAnnouncement !== newAnnouncement) {\n this.announcementRef.current.innerText = newAnnouncement\n }\n }\n })\n }\n\n render() {\n return <div {...RouteAnnouncerProps} ref={this.announcementRef}></div>\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 <React.Fragment>\n {this.props.children}\n <RouteAnnouncer location={location} />\n </React.Fragment>\n )\n }\n}\n\nRouteUpdates.propTypes = {\n location: PropTypes.object.isRequired,\n}\n\nexport { init, shouldUpdateScroll, RouteUpdates, maybeGetBrowserRedirect }\n","// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) return true;\n }for (var _i in b) {\n if (a[_i] !== b[_i]) return true;\n }return false;\n}\n\nexport default (function (instance, nextProps, nextState) {\n return shallowDiffers(instance.props, nextProps) || shallowDiffers(instance.state, nextState);\n});","import React from \"react\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport shallowCompare from \"shallow-compare\"\n\nclass EnsureResources extends React.Component {\n constructor(props) {\n super()\n const { location, pageResources } = props\n this.state = {\n location: { ...location },\n pageResources:\n pageResources ||\n loader.loadPageSync(location.pathname + location.search, {\n withErrorDetails: true,\n }),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(\n location.pathname + location.search,\n {\n withErrorDetails: true,\n }\n )\n\n return {\n pageResources,\n location: { ...location },\n }\n }\n\n return {\n location: { ...location },\n }\n }\n\n loadResources(rawPath) {\n loader.loadPage(rawPath).then(pageResources => {\n if (pageResources && pageResources.status !== PageResourceStatus.Error) {\n this.setState({\n location: { ...window.location },\n pageResources,\n })\n } else {\n window.history.replaceState({}, ``, location.href)\n window.location = rawPath\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // Always return false if we're missing resources.\n if (!nextState.pageResources) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n if (\n process.env.BUILD_STAGE === `develop` &&\n nextState.pageResources.stale\n ) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n // Check if the component or json have changed.\n if (this.state.pageResources !== nextState.pageResources) {\n return true\n }\n if (\n this.state.pageResources.component !== nextState.pageResources.component\n ) {\n return true\n }\n\n if (this.state.pageResources.json !== nextState.pageResources.json) {\n return true\n }\n // Check if location has changed on a page using internal routing\n // via matchPath configuration.\n if (\n this.state.location.key !== nextState.location.key &&\n nextState.pageResources.page &&\n (nextState.pageResources.page.matchPath ||\n nextState.pageResources.page.path)\n ) {\n return true\n }\n return shallowCompare(this, nextProps, nextState)\n }\n\n render() {\n if (\n process.env.NODE_ENV !== `production` &&\n (!this.state.pageResources ||\n this.state.pageResources.status === PageResourceStatus.Error)\n ) {\n const message = `EnsureResources was not able to find resources for path: \"${this.props.location.pathname}\"\nThis typically means that an issue occurred building components for that path.\nRun \\`gatsby clean\\` to remove any cached elements.`\n if (this.state.pageResources?.error) {\n console.error(message)\n throw this.state.pageResources.error\n }\n\n throw new Error(message)\n }\n\n return this.props.children(this.state)\n }\n}\n\nexport default EnsureResources\n","import { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React from \"react\"\nimport ReactDOM from \"react-dom\"\nimport { Router, navigate, Location, BaseContext } from \"@gatsbyjs/reach-router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\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, window.pageData)\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`).filter(Boolean).length > 0) {\n require(`./register-service-worker`)\n }\n\n // In gatsby v2 if Router is used in page using matchPaths\n // paths need to contain full path.\n // For example:\n // - page have `/app/*` matchPath\n // - inside template user needs to use `/app/xyz` as path\n // Resetting `basepath`/`baseuri` keeps current behaviour\n // to not introduce breaking change.\n // Remove this in v3\n const RouteHandler = props => (\n <BaseContext.Provider\n value={{\n baseuri: `/`,\n basepath: `/`,\n }}\n >\n <PageRenderer {...props} />\n </BaseContext.Provider>\n )\n\n const DataContext = React.createContext({})\n\n class GatsbyRoot extends React.Component {\n render() {\n const { children } = this.props\n return (\n <Location>\n {({ location }) => (\n <EnsureResources location={location}>\n {({ pageResources, location }) => {\n const staticQueryResults = getStaticQueryResults()\n return (\n <StaticQueryContext.Provider value={staticQueryResults}>\n <DataContext.Provider value={{ pageResources, location }}>\n {children}\n </DataContext.Provider>\n </StaticQueryContext.Provider>\n )\n }}\n </EnsureResources>\n )}\n </Location>\n )\n }\n }\n\n class LocationHandler extends React.Component {\n render() {\n return (\n <DataContext.Consumer>\n {({ pageResources, location }) => (\n <RouteUpdates location={location}>\n <ScrollContext\n location={location}\n shouldUpdateScroll={shouldUpdateScroll}\n >\n <Router\n basepath={__BASE_PATH__}\n location={location}\n id=\"gatsby-focus-wrapper\"\n >\n <RouteHandler\n path={\n pageResources.page.path === `/404.html` ||\n pageResources.page.path === `/500.html`\n ? stripPrefix(location.pathname, __BASE_PATH__)\n : encodeURI(\n (\n pageResources.page.matchPath ||\n pageResources.page.path\n ).split(`?`)[0]\n )\n }\n {...this.props}\n location={location}\n pageResources={pageResources}\n {...pageResources.json}\n />\n </Router>\n </ScrollContext>\n </RouteUpdates>\n )}\n </DataContext.Consumer>\n )\n }\n }\n\n const { pagePath, location: browserLoc } = window\n\n // Explicitly call navigate if the canonical path (window.pagePath)\n // is different to the browser path (window.location.pathname). SSR\n // page paths might include search params, while SSG and DSG won't.\n // If page path include search params we also compare query params.\n // But only if NONE of the following conditions hold:\n //\n // - The url matches a client side route (page.matchPath)\n // - it's a 404 page\n // - it's the offline plugin shell (/offline-plugin-app-shell-fallback/)\n if (\n pagePath &&\n __BASE_PATH__ + pagePath !==\n browserLoc.pathname + (pagePath.includes(`?`) ? browserLoc.search : ``) &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath.match(/^\\/(404|500)(\\/?|.html)$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(\n __BASE_PATH__ +\n pagePath +\n (!pagePath.includes(`?`) ? browserLoc.search : ``) +\n browserLoc.hash,\n {\n replace: true,\n }\n )\n }\n\n publicLoader.loadPage(browserLoc.pathname + browserLoc.search).then(page => {\n if (!page || page.status === PageResourceStatus.Error) {\n const message = `page resources for ${browserLoc.pathname} not found. Not rendering React`\n\n // if the chunk throws an error we want to capture the real error\n // This should help with https://github.com/gatsbyjs/gatsby/issues/19618\n if (page && page.error) {\n console.error(message)\n throw page.error\n }\n\n throw new Error(message)\n }\n\n window.___webpackCompilationHash = page.page.webpackCompilationHash\n\n const SiteRoot = apiRunner(\n `wrapRootElement`,\n { element: <LocationHandler /> },\n <LocationHandler />,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n const App = function App() {\n const onClientEntryRanRef = React.useRef(false)\n\n React.useEffect(() => {\n if (!onClientEntryRanRef.current) {\n onClientEntryRanRef.current = true\n if (performance.mark) {\n performance.mark(`onInitialClientRender`)\n }\n\n apiRunner(`onInitialClientRender`)\n }\n }, [])\n\n return <GatsbyRoot>{SiteRoot}</GatsbyRoot>\n }\n\n const renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n ReactDOM.hydrateRoot ? ReactDOM.hydrateRoot : ReactDOM.hydrate\n )[0]\n\n function runRender() {\n const rootElement =\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : null\n\n if (renderer === ReactDOM.hydrateRoot) {\n renderer(rootElement, <App />)\n } else {\n renderer(<App />, rootElement)\n }\n }\n\n // https://github.com/madrobby/zepto/blob/b5ed8d607f67724788ec9ff492be297f64d47dfc/src/zepto.js#L439-L450\n // TODO remove IE 10 support\n const doc = document\n if (\n doc.readyState === `complete` ||\n (doc.readyState !== `loading` && !doc.documentElement.doScroll)\n ) {\n setTimeout(function () {\n runRender()\n }, 0)\n } else {\n const handler = function () {\n doc.removeEventListener(`DOMContentLoaded`, handler, false)\n window.removeEventListener(`load`, handler, false)\n\n runRender()\n }\n\n doc.addEventListener(`DOMContentLoaded`, handler, false)\n window.addEventListener(`load`, handler, false)\n }\n })\n})\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport loader from \"./loader\"\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location }) => {\n const pageResources = loader.loadPageSync(location.pathname)\n if (!pageResources) {\n return null\n }\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","exports.polyfill = Component => Component\n","import redirects from \"./redirects.json\"\n\n// Convert to a map for faster lookup in maybeRedirect()\n\nconst redirectMap = new Map()\nconst redirectIgnoreCaseMap = new Map()\n\nredirects.forEach(redirect => {\n if (redirect.ignoreCase) {\n redirectIgnoreCaseMap.set(redirect.fromPath, redirect)\n } else {\n redirectMap.set(redirect.fromPath, redirect)\n }\n})\n\nexport function maybeGetBrowserRedirect(pathname) {\n let redirect = redirectMap.get(pathname)\n if (!redirect) {\n redirect = redirectIgnoreCaseMap.get(pathname.toLowerCase())\n }\n return redirect\n}\n","import { apiRunner } from \"./api-runner-browser\"\n\nif (\n window.location.protocol !== `https:` &&\n window.location.hostname !== `localhost`\n) {\n console.error(\n `Service workers can only be used over HTTPS, or on localhost for development`\n )\n} else if (`serviceWorker` in navigator) {\n navigator.serviceWorker\n .register(`${__BASE_PATH__}/sw.js`)\n .then(function (reg) {\n reg.addEventListener(`updatefound`, () => {\n apiRunner(`onServiceWorkerUpdateFound`, { serviceWorker: reg })\n // The updatefound event implies that reg.installing is set; see\n // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\n const installingWorker = reg.installing\n console.log(`installingWorker`, installingWorker)\n installingWorker.addEventListener(`statechange`, () => {\n switch (installingWorker.state) {\n case `installed`:\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and the fresh content will\n // have been added to the cache.\n\n // We set a flag so Gatsby Link knows to refresh the page on next navigation attempt\n window.___swUpdated = true\n // We call the onServiceWorkerUpdateReady API so users can show update prompts.\n apiRunner(`onServiceWorkerUpdateReady`, { serviceWorker: reg })\n\n // If resources failed for the current page, reload.\n if (window.___failedResources) {\n console.log(`resources failed, SW updated - reloading`)\n window.location.reload()\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a \"Content is cached for offline use.\" message.\n console.log(`Content is now available offline!`)\n\n // Post to service worker that install is complete.\n // Delay to allow time for the event listener to be added --\n // otherwise fetch is called too soon and resources aren't cached.\n apiRunner(`onServiceWorkerInstalled`, { serviceWorker: reg })\n }\n break\n\n case `redundant`:\n console.error(`The installing service worker became redundant.`)\n apiRunner(`onServiceWorkerRedundant`, { serviceWorker: reg })\n break\n\n case `activated`:\n apiRunner(`onServiceWorkerActive`, { serviceWorker: reg })\n break\n }\n })\n })\n })\n .catch(function (e) {\n console.error(`Error during service worker registration:`, e)\n })\n}\n","/**\n * Remove a prefix from a string. Return the input string if the given prefix\n * isn't found.\n */\n\nexport default function stripPrefix(str, prefix = ``) {\n if (!prefix) {\n return str\n }\n\n if (str === prefix) {\n return `/`\n }\n\n if (str.startsWith(`${prefix}/`)) {\n return str.slice(prefix.length)\n }\n\n return str\n}\n","import { useCallback, useEffect } from 'react';\nimport { useIntl } from 'context/IntlContext';\nimport { useStaticQuery, graphql } from 'gatsby';\nimport theme from 'theme';\n// import Logo from '../../images/icons/neowintech.svg';\n\nconst chatQuery = graphql`\n query ChatQuery {\n site {\n siteMetadata {\n chat {\n status\n token\n }\n }\n }\n allFile(filter: { name: { eq: \"chatLogo\" } }) {\n nodes {\n publicURL\n }\n }\n }\n`;\n\nconst Freshchat = () => {\n const { locale } = useIntl();\n\n const data = useStaticQuery(chatQuery);\n const projectId = process.env.APPLICATION_ID;\n\n const initFreshchat = useCallback(() => {\n\n window.fcWidget.init({\n token: data.site.siteMetadata.chat.token,\n host: 'https://wchat.freshchat.com',\n locale,\n tags: ['the-safe-company'],\n siteId: 'the-safe-company',\n faqTags: {\n // Array of Tags\n tags: ['the-safe-company'],\n filterType: 'category',\n },\n config: {\n headerProperty: {\n backgroundColor: theme.colors?.quaternary,\n foregroundColor: theme.colors?.primary,\n },\n },\n });\n }, [\n data.site.siteMetadata.chat.token,\n locale,\n theme.colors?.quaternary,\n theme.colors?.tertiary,\n ]);\n\n const addFreshchatScript = useCallback(() => {\n const script = document.createElement('script');\n script.async = true;\n script.src = 'https://wchat.freshchat.com/js/widget.js';\n script.onload = () => initFreshchat();\n document.head.appendChild(script);\n }, [initFreshchat]);\n\n useEffect(() => {\n // if (!data.site.siteMetadata.chat.status) return;\n\n setTimeout(() => {\n addFreshchatScript();\n }, 3000);\n }, [addFreshchatScript, data.site.siteMetadata.chat.status]);\n\n useEffect(() => {\n let cancel = false;\n\n if (window.fcWidget) {\n setTimeout(() => {\n if (cancel) return;\n initFreshchat();\n }, 500);\n }\n\n return () => {\n cancel = true;\n\n if (!window.fcWidget) return;\n window.fcWidget.destroy();\n };\n }, [initFreshchat, locale]);\n\n return null;\n};\n\nexport default Freshchat;\n","export default __webpack_public_path__ + \"static/Logotipo_Safe_Company_negativo-8f2ec387575b0682e21703cb88893e80.png\";","export default __webpack_public_path__ + \"static/Logo-SC-02-3993fb95d7d9422ed06ac19a9141435c.png\";","import React from 'react';\nimport NeowintechLogo from './icons/neowintech.svg';\nimport IbanLogo from './icons/iban.svg';\nimport SafeBrokLogo from './icons/SafeBrok-MKP.svg';\nimport TheSafeCompany from './icons/SVG-THESAFECOMPANY.svg';\nimport TheSafeCompanyWhite from './icons/THESAFECOMPANY-BCO.svg';\nimport TheSafeCompanyFooter from './icons/SVG-THESAFECOMPANY-FOOTER.svg';\nimport TheSafeCompanyVertical from './icons/tsc-log-vertical.svg';\nimport TheSafeCompanyHorizontal from './icons/Logotipo_Safe_Company_negativo.png';\nimport TheSafeCompanyHorizontalWhite from './icons/Logo-SC-02.png';\n\nconst getBrand = (applicationID: string) => {\n switch (applicationID) {\n case 'groot':\n return 'iban';\n case 'safebrok':\n return 'safebrok';\n case 'neowintech':\n return 'neowintech';\n default:\n return 'the-safe-company';\n }\n}\n\nconst currentBrand: Brand = getBrand(process.env.APPLICATION_ID || 'the-safe-company');\n\nconst getTheSafeCompanyLogo: any = ({ position, ...props }: any) => {\n const style = { width: '120px', height: 'auto' }; // Ajusta el tamaño según lo necesites\n\n switch (position) {\n case 'footer':\n return <img src={TheSafeCompanyHorizontal} alt=\"The Safe Company\" {...props} />;\n case 'header':\n return <img src={TheSafeCompanyHorizontalWhite} alt=\"The Safe Company\" style={style} {...props} />;\n default:\n return <TheSafeCompany {...props} />;\n }\n};\n\n\nconst Logo = ({ ...props }: any) => {\n switch (currentBrand) {\n case 'neowintech':\n return <NeowintechLogo {...props} />;\n case 'iban':\n return <IbanLogo {...props} />;\n case 'safebrok':\n return <SafeBrokLogo {...props} />;\n case 'the-safe-company':\n return getTheSafeCompanyLogo(props);\n default:\n return null;\n }\n};\n\nexport default Logo;\n","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _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}","import _typeof from \"@babel/runtime/helpers/typeof\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\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\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","import _toConsumableArray from \"/codebuild/output/src372243558/src/tsc-betty/node_modules/@babel/runtime/helpers/esm/toConsumableArray.js\";\nimport _assertThisInitialized from \"/codebuild/output/src372243558/src/tsc-betty/node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js\";\nimport _inherits from \"/codebuild/output/src372243558/src/tsc-betty/node_modules/@babel/runtime/helpers/esm/inherits.js\";\nimport _possibleConstructorReturn from \"/codebuild/output/src372243558/src/tsc-betty/node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js\";\nimport _getPrototypeOf from \"/codebuild/output/src372243558/src/tsc-betty/node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js\";\nimport _classCallCheck from \"/codebuild/output/src372243558/src/tsc-betty/node_modules/@babel/runtime/helpers/esm/classCallCheck.js\";\nimport _createClass from \"/codebuild/output/src372243558/src/tsc-betty/node_modules/@babel/runtime/helpers/esm/createClass.js\";\nimport _defineProperty from \"/codebuild/output/src372243558/src/tsc-betty/node_modules/@babel/runtime/helpers/esm/defineProperty.js\";\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport React, { useState, useCallback, forwardRef, useRef, useEffect, useImperativeHandle, useMemo } from 'react';\nvar is = {\n arr: Array.isArray,\n obj: function obj(a) {\n return Object.prototype.toString.call(a) === '[object Object]';\n },\n fun: function fun(a) {\n return typeof a === 'function';\n },\n str: function str(a) {\n return typeof a === 'string';\n },\n num: function num(a) {\n return typeof a === 'number';\n },\n und: function und(a) {\n return a === void 0;\n },\n nul: function nul(a) {\n return a === null;\n },\n set: function set(a) {\n return a instanceof Set;\n },\n map: function map(a) {\n return a instanceof Map;\n },\n equ: function equ(a, b) {\n if (typeof a !== typeof b) return false;\n if (is.str(a) || is.num(a)) return a === b;\n if (is.obj(a) && is.obj(b) && Object.keys(a).length + Object.keys(b).length === 0) return true;\n var i;\n\n for (i in a) {\n if (!(i in b)) return false;\n }\n\n for (i in b) {\n if (a[i] !== b[i]) return false;\n }\n\n return is.und(i) ? a === b : true;\n }\n};\n\nfunction merge(target, lowercase) {\n if (lowercase === void 0) {\n lowercase = true;\n }\n\n return function (object) {\n return (is.arr(object) ? object : Object.keys(object)).reduce(function (acc, element) {\n var key = lowercase ? element[0].toLowerCase() + element.substring(1) : element;\n acc[key] = target(key);\n return acc;\n }, target);\n };\n}\n\nfunction useForceUpdate() {\n var _useState = useState(false),\n f = _useState[1];\n\n var forceUpdate = useCallback(function () {\n return f(function (v) {\n return !v;\n });\n }, []);\n return forceUpdate;\n}\n\nfunction withDefault(value, defaultValue) {\n return is.und(value) || is.nul(value) ? defaultValue : value;\n}\n\nfunction toArray(a) {\n return !is.und(a) ? is.arr(a) ? a : [a] : [];\n}\n\nfunction callProp(obj) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return is.fun(obj) ? obj.apply(void 0, args) : obj;\n}\n\nfunction getForwardProps(props) {\n var to = props.to,\n from = props.from,\n config = props.config,\n onStart = props.onStart,\n onRest = props.onRest,\n onFrame = props.onFrame,\n children = props.children,\n reset = props.reset,\n reverse = props.reverse,\n force = props.force,\n immediate = props.immediate,\n delay = props.delay,\n attach = props.attach,\n destroyed = props.destroyed,\n interpolateTo = props.interpolateTo,\n ref = props.ref,\n lazy = props.lazy,\n forward = _objectWithoutPropertiesLoose(props, [\"to\", \"from\", \"config\", \"onStart\", \"onRest\", \"onFrame\", \"children\", \"reset\", \"reverse\", \"force\", \"immediate\", \"delay\", \"attach\", \"destroyed\", \"interpolateTo\", \"ref\", \"lazy\"]);\n\n return forward;\n}\n\nfunction interpolateTo(props) {\n var forward = getForwardProps(props);\n if (is.und(forward)) return _extends({\n to: forward\n }, props);\n var rest = Object.keys(props).reduce(function (a, k) {\n return !is.und(forward[k]) ? a : _extends({}, a, _defineProperty({}, k, props[k]));\n }, {});\n return _extends({\n to: forward\n }, rest);\n}\n\nfunction handleRef(ref, forward) {\n if (forward) {\n // If it's a function, assume it's a ref callback\n if (is.fun(forward)) forward(ref);else if (is.obj(forward)) {\n forward.current = ref;\n }\n }\n\n return ref;\n}\n\nvar Animated = /*#__PURE__*/function () {\n function Animated() {\n _classCallCheck(this, Animated);\n\n this.payload = void 0;\n this.children = [];\n }\n\n _createClass(Animated, [{\n key: \"getAnimatedValue\",\n value: function getAnimatedValue() {\n return this.getValue();\n }\n }, {\n key: \"getPayload\",\n value: function getPayload() {\n return this.payload || this;\n }\n }, {\n key: \"attach\",\n value: function attach() {}\n }, {\n key: \"detach\",\n value: function detach() {}\n }, {\n key: \"getChildren\",\n value: function getChildren() {\n return this.children;\n }\n }, {\n key: \"addChild\",\n value: function addChild(child) {\n if (this.children.length === 0) this.attach();\n this.children.push(child);\n }\n }, {\n key: \"removeChild\",\n value: function removeChild(child) {\n var index = this.children.indexOf(child);\n this.children.splice(index, 1);\n if (this.children.length === 0) this.detach();\n }\n }]);\n\n return Animated;\n}();\n\nvar AnimatedArray = /*#__PURE__*/function (_Animated) {\n _inherits(AnimatedArray, _Animated);\n\n var _super = _createSuper(AnimatedArray);\n\n function AnimatedArray() {\n var _this2;\n\n _classCallCheck(this, AnimatedArray);\n\n _this2 = _super.apply(this, arguments);\n _this2.payload = [];\n\n _this2.attach = function () {\n return _this2.payload.forEach(function (p) {\n return p instanceof Animated && p.addChild(_assertThisInitialized(_this2));\n });\n };\n\n _this2.detach = function () {\n return _this2.payload.forEach(function (p) {\n return p instanceof Animated && p.removeChild(_assertThisInitialized(_this2));\n });\n };\n\n return _this2;\n }\n\n return AnimatedArray;\n}(Animated);\n\nvar AnimatedObject = /*#__PURE__*/function (_Animated2) {\n _inherits(AnimatedObject, _Animated2);\n\n var _super2 = _createSuper(AnimatedObject);\n\n function AnimatedObject() {\n var _this3;\n\n _classCallCheck(this, AnimatedObject);\n\n _this3 = _super2.apply(this, arguments);\n _this3.payload = {};\n\n _this3.attach = function () {\n return Object.values(_this3.payload).forEach(function (s) {\n return s instanceof Animated && s.addChild(_assertThisInitialized(_this3));\n });\n };\n\n _this3.detach = function () {\n return Object.values(_this3.payload).forEach(function (s) {\n return s instanceof Animated && s.removeChild(_assertThisInitialized(_this3));\n });\n };\n\n return _this3;\n }\n\n _createClass(AnimatedObject, [{\n key: \"getValue\",\n value: function getValue(animated) {\n if (animated === void 0) {\n animated = false;\n }\n\n var payload = {};\n\n for (var key in this.payload) {\n var value = this.payload[key];\n if (animated && !(value instanceof Animated)) continue;\n payload[key] = value instanceof Animated ? value[animated ? 'getAnimatedValue' : 'getValue']() : value;\n }\n\n return payload;\n }\n }, {\n key: \"getAnimatedValue\",\n value: function getAnimatedValue() {\n return this.getValue(true);\n }\n }]);\n\n return AnimatedObject;\n}(Animated);\n\nvar applyAnimatedValues;\n\nfunction injectApplyAnimatedValues(fn, transform) {\n applyAnimatedValues = {\n fn: fn,\n transform: transform\n };\n}\n\nvar colorNames;\n\nfunction injectColorNames(names) {\n colorNames = names;\n}\n\nvar requestFrame = function requestFrame(cb) {\n return typeof window !== 'undefined' ? window.requestAnimationFrame(cb) : -1;\n};\n\nvar cancelFrame = function cancelFrame(id) {\n typeof window !== 'undefined' && window.cancelAnimationFrame(id);\n};\n\nfunction injectFrame(raf, caf) {\n requestFrame = raf;\n cancelFrame = caf;\n}\n\nvar interpolation;\n\nfunction injectStringInterpolator(fn) {\n interpolation = fn;\n}\n\nvar now = function now() {\n return Date.now();\n};\n\nfunction injectNow(nowFn) {\n now = nowFn;\n}\n\nvar defaultElement;\n\nfunction injectDefaultElement(el) {\n defaultElement = el;\n}\n\nvar animatedApi = function animatedApi(node) {\n return node.current;\n};\n\nfunction injectAnimatedApi(fn) {\n animatedApi = fn;\n}\n\nvar createAnimatedStyle;\n\nfunction injectCreateAnimatedStyle(factory) {\n createAnimatedStyle = factory;\n}\n\nvar manualFrameloop;\n\nfunction injectManualFrameloop(callback) {\n manualFrameloop = callback;\n}\n\nvar Globals = /*#__PURE__*/Object.freeze({\n get applyAnimatedValues() {\n return applyAnimatedValues;\n },\n\n injectApplyAnimatedValues: injectApplyAnimatedValues,\n\n get colorNames() {\n return colorNames;\n },\n\n injectColorNames: injectColorNames,\n\n get requestFrame() {\n return requestFrame;\n },\n\n get cancelFrame() {\n return cancelFrame;\n },\n\n injectFrame: injectFrame,\n\n get interpolation() {\n return interpolation;\n },\n\n injectStringInterpolator: injectStringInterpolator,\n\n get now() {\n return now;\n },\n\n injectNow: injectNow,\n\n get defaultElement() {\n return defaultElement;\n },\n\n injectDefaultElement: injectDefaultElement,\n\n get animatedApi() {\n return animatedApi;\n },\n\n injectAnimatedApi: injectAnimatedApi,\n\n get createAnimatedStyle() {\n return createAnimatedStyle;\n },\n\n injectCreateAnimatedStyle: injectCreateAnimatedStyle,\n\n get manualFrameloop() {\n return manualFrameloop;\n },\n\n injectManualFrameloop: injectManualFrameloop\n});\n/**\n * Wraps the `style` property with `AnimatedStyle`.\n */\n\nvar AnimatedProps = /*#__PURE__*/function (_AnimatedObject) {\n _inherits(AnimatedProps, _AnimatedObject);\n\n var _super3 = _createSuper(AnimatedProps);\n\n function AnimatedProps(props, callback) {\n var _this4;\n\n _classCallCheck(this, AnimatedProps);\n\n _this4 = _super3.call(this);\n _this4.update = void 0;\n _this4.payload = !props.style ? props : _extends({}, props, {\n style: createAnimatedStyle(props.style)\n });\n _this4.update = callback;\n\n _this4.attach();\n\n return _this4;\n }\n\n return AnimatedProps;\n}(AnimatedObject);\n\nvar isFunctionComponent = function isFunctionComponent(val) {\n return is.fun(val) && !(val.prototype instanceof React.Component);\n};\n\nvar createAnimatedComponent = function createAnimatedComponent(Component) {\n var AnimatedComponent = forwardRef(function (props, ref) {\n var forceUpdate = useForceUpdate();\n var mounted = useRef(true);\n var propsAnimated = useRef(null);\n var node = useRef(null);\n var attachProps = useCallback(function (props) {\n var oldPropsAnimated = propsAnimated.current;\n\n var callback = function callback() {\n var didUpdate = false;\n\n if (node.current) {\n didUpdate = applyAnimatedValues.fn(node.current, propsAnimated.current.getAnimatedValue());\n }\n\n if (!node.current || didUpdate === false) {\n // If no referenced node has been found, or the update target didn't have a\n // native-responder, then forceUpdate the animation ...\n forceUpdate();\n }\n };\n\n propsAnimated.current = new AnimatedProps(props, callback);\n oldPropsAnimated && oldPropsAnimated.detach();\n }, []);\n useEffect(function () {\n return function () {\n mounted.current = false;\n propsAnimated.current && propsAnimated.current.detach();\n };\n }, []);\n useImperativeHandle(ref, function () {\n return animatedApi(node, mounted, forceUpdate);\n });\n attachProps(props);\n\n var _getValue = propsAnimated.current.getValue(),\n scrollTop = _getValue.scrollTop,\n scrollLeft = _getValue.scrollLeft,\n animatedProps = _objectWithoutPropertiesLoose(_getValue, [\"scrollTop\", \"scrollLeft\"]); // Functions cannot have refs, see:\n // See: https://github.com/react-spring/react-spring/issues/569\n\n\n var refFn = isFunctionComponent(Component) ? undefined : function (childRef) {\n return node.current = handleRef(childRef, ref);\n };\n return React.createElement(Component, _extends({}, animatedProps, {\n ref: refFn\n }));\n });\n return AnimatedComponent;\n};\n\nvar active = false;\nvar controllers = new Set();\n\nvar update = function update() {\n if (!active) return false;\n var time = now();\n\n var _iterator = _createForOfIteratorHelper(controllers),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var controller = _step.value;\n var isActive = false;\n\n for (var configIdx = 0; configIdx < controller.configs.length; configIdx++) {\n var _config = controller.configs[configIdx];\n var endOfAnimation = void 0,\n lastTime = void 0;\n\n for (var valIdx = 0; valIdx < _config.animatedValues.length; valIdx++) {\n var animation = _config.animatedValues[valIdx]; // If an animation is done, skip, until all of them conclude\n\n if (animation.done) continue;\n var from = _config.fromValues[valIdx];\n var to = _config.toValues[valIdx];\n var position = animation.lastPosition;\n var isAnimated = to instanceof Animated;\n var velocity = Array.isArray(_config.initialVelocity) ? _config.initialVelocity[valIdx] : _config.initialVelocity;\n if (isAnimated) to = to.getValue(); // Conclude animation if it's either immediate, or from-values match end-state\n\n if (_config.immediate) {\n animation.setValue(to);\n animation.done = true;\n continue;\n } // Break animation when string values are involved\n\n\n if (typeof from === 'string' || typeof to === 'string') {\n animation.setValue(to);\n animation.done = true;\n continue;\n }\n\n if (_config.duration !== void 0) {\n /** Duration easing */\n position = from + _config.easing((time - animation.startTime) / _config.duration) * (to - from);\n endOfAnimation = time >= animation.startTime + _config.duration;\n } else if (_config.decay) {\n /** Decay easing */\n position = from + velocity / (1 - 0.998) * (1 - Math.exp(-(1 - 0.998) * (time - animation.startTime)));\n endOfAnimation = Math.abs(animation.lastPosition - position) < 0.1;\n if (endOfAnimation) to = position;\n } else {\n /** Spring easing */\n lastTime = animation.lastTime !== void 0 ? animation.lastTime : time;\n velocity = animation.lastVelocity !== void 0 ? animation.lastVelocity : _config.initialVelocity; // If we lost a lot of frames just jump to the end.\n\n if (time > lastTime + 64) lastTime = time; // http://gafferongames.com/game-physics/fix-your-timestep/\n\n var numSteps = Math.floor(time - lastTime);\n\n for (var i = 0; i < numSteps; ++i) {\n var force = -_config.tension * (position - to);\n var damping = -_config.friction * velocity;\n var acceleration = (force + damping) / _config.mass;\n velocity = velocity + acceleration * 1 / 1000;\n position = position + velocity * 1 / 1000;\n } // Conditions for stopping the spring animation\n\n\n var isOvershooting = _config.clamp && _config.tension !== 0 ? from < to ? position > to : position < to : false;\n\n var isVelocity = Math.abs(velocity) <= _config.precision;\n\n var isDisplacement = _config.tension !== 0 ? Math.abs(to - position) <= _config.precision : true;\n endOfAnimation = isOvershooting || isVelocity && isDisplacement;\n animation.lastVelocity = velocity;\n animation.lastTime = time;\n } // Trails aren't done until their parents conclude\n\n\n if (isAnimated && !_config.toValues[valIdx].done) endOfAnimation = false;\n\n if (endOfAnimation) {\n // Ensure that we end up with a round value\n if (animation.value !== to) position = to;\n animation.done = true;\n } else isActive = true;\n\n animation.setValue(position);\n animation.lastPosition = position;\n } // Keep track of updated values only when necessary\n\n\n if (controller.props.onFrame) controller.values[_config.name] = _config.interpolation.getValue();\n } // Update callbacks in the end of the frame\n\n\n if (controller.props.onFrame) controller.props.onFrame(controller.values); // Either call onEnd or next frame\n\n if (!isActive) {\n controllers.delete(controller);\n controller.stop(true);\n }\n } // Loop over as long as there are controllers ...\n\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n if (controllers.size) {\n if (manualFrameloop) manualFrameloop();else requestFrame(update);\n } else {\n active = false;\n }\n\n return active;\n};\n\nvar _start = function start(controller) {\n if (!controllers.has(controller)) controllers.add(controller);\n\n if (!active) {\n active = true;\n if (manualFrameloop) requestFrame(manualFrameloop);else requestFrame(update);\n }\n};\n\nvar stop = function stop(controller) {\n if (controllers.has(controller)) controllers.delete(controller);\n};\n\nfunction createInterpolator(range, output, extrapolate) {\n if (typeof range === 'function') {\n return range;\n }\n\n if (Array.isArray(range)) {\n return createInterpolator({\n range: range,\n output: output,\n extrapolate: extrapolate\n });\n }\n\n if (interpolation && typeof range.output[0] === 'string') {\n return interpolation(range);\n }\n\n var config = range;\n var outputRange = config.output;\n var inputRange = config.range || [0, 1];\n var extrapolateLeft = config.extrapolateLeft || config.extrapolate || 'extend';\n var extrapolateRight = config.extrapolateRight || config.extrapolate || 'extend';\n\n var easing = config.easing || function (t) {\n return t;\n };\n\n return function (input) {\n var range = findRange(input, inputRange);\n return interpolate(input, inputRange[range], inputRange[range + 1], outputRange[range], outputRange[range + 1], easing, extrapolateLeft, extrapolateRight, config.map);\n };\n}\n\nfunction interpolate(input, inputMin, inputMax, outputMin, outputMax, easing, extrapolateLeft, extrapolateRight, map) {\n var result = map ? map(input) : input; // Extrapolate\n\n if (result < inputMin) {\n if (extrapolateLeft === 'identity') return result;else if (extrapolateLeft === 'clamp') result = inputMin;\n }\n\n if (result > inputMax) {\n if (extrapolateRight === 'identity') return result;else if (extrapolateRight === 'clamp') result = inputMax;\n }\n\n if (outputMin === outputMax) return outputMin;\n if (inputMin === inputMax) return input <= inputMin ? outputMin : outputMax; // Input Range\n\n if (inputMin === -Infinity) result = -result;else if (inputMax === Infinity) result = result - inputMin;else result = (result - inputMin) / (inputMax - inputMin); // Easing\n\n result = easing(result); // Output Range\n\n if (outputMin === -Infinity) result = -result;else if (outputMax === Infinity) result = result + outputMin;else result = result * (outputMax - outputMin) + outputMin;\n return result;\n}\n\nfunction findRange(input, inputRange) {\n for (var i = 1; i < inputRange.length - 1; ++i) {\n if (inputRange[i] >= input) break;\n }\n\n return i - 1;\n}\n\nvar AnimatedInterpolation = /*#__PURE__*/function (_AnimatedArray) {\n _inherits(AnimatedInterpolation, _AnimatedArray);\n\n var _super4 = _createSuper(AnimatedInterpolation);\n\n function AnimatedInterpolation(parents, range, output, extrapolate) {\n var _this5;\n\n _classCallCheck(this, AnimatedInterpolation);\n\n _this5 = _super4.call(this);\n _this5.calc = void 0;\n _this5.payload = parents instanceof AnimatedArray && !(parents instanceof AnimatedInterpolation) ? parents.getPayload() : Array.isArray(parents) ? parents : [parents];\n _this5.calc = createInterpolator(range, output, extrapolate);\n return _this5;\n }\n\n _createClass(AnimatedInterpolation, [{\n key: \"getValue\",\n value: function getValue() {\n return this.calc.apply(this, _toConsumableArray(this.payload.map(function (value) {\n return value.getValue();\n })));\n }\n }, {\n key: \"updateConfig\",\n value: function updateConfig(range, output, extrapolate) {\n this.calc = createInterpolator(range, output, extrapolate);\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(range, output, extrapolate) {\n return new AnimatedInterpolation(this, range, output, extrapolate);\n }\n }]);\n\n return AnimatedInterpolation;\n}(AnimatedArray);\n\nvar interpolate$1 = function interpolate$1(parents, range, output) {\n return parents && new AnimatedInterpolation(parents, range, output);\n};\n\nvar config = {\n default: {\n tension: 170,\n friction: 26\n },\n gentle: {\n tension: 120,\n friction: 14\n },\n wobbly: {\n tension: 180,\n friction: 12\n },\n stiff: {\n tension: 210,\n friction: 20\n },\n slow: {\n tension: 280,\n friction: 60\n },\n molasses: {\n tension: 280,\n friction: 120\n }\n};\n/** API\n * useChain(references, timeSteps, timeFrame)\n */\n\nfunction useChain(refs, timeSteps, timeFrame) {\n if (timeFrame === void 0) {\n timeFrame = 1000;\n }\n\n var previous = useRef();\n useEffect(function () {\n if (is.equ(refs, previous.current)) refs.forEach(function (_ref) {\n var current = _ref.current;\n return current && current.start();\n });else if (timeSteps) {\n refs.forEach(function (_ref2, index) {\n var current = _ref2.current;\n\n if (current) {\n var ctrls = current.controllers;\n\n if (ctrls.length) {\n var t = timeFrame * timeSteps[index];\n ctrls.forEach(function (ctrl) {\n ctrl.queue = ctrl.queue.map(function (e) {\n return _extends({}, e, {\n delay: e.delay + t\n });\n });\n ctrl.start();\n });\n }\n }\n });\n } else refs.reduce(function (q, _ref3, rI) {\n var current = _ref3.current;\n return q = q.then(function () {\n return current.start();\n });\n }, Promise.resolve());\n previous.current = refs;\n });\n}\n/**\n * Animated works by building a directed acyclic graph of dependencies\n * transparently when you render your Animated components.\n *\n * new Animated.Value(0)\n * .interpolate() .interpolate() new Animated.Value(1)\n * opacity translateY scale\n * style transform\n * View#234 style\n * View#123\n *\n * A) Top Down phase\n * When an AnimatedValue is updated, we recursively go down through this\n * graph in order to find leaf nodes: the views that we flag as needing\n * an update.\n *\n * B) Bottom Up phase\n * When a view is flagged as needing an update, we recursively go back up\n * in order to build the new value that it needs. The reason why we need\n * this two-phases process is to deal with composite props such as\n * transform which can receive values from multiple parents.\n */\n\n\nfunction addAnimatedStyles(node, styles) {\n if ('update' in node) {\n styles.add(node);\n } else {\n node.getChildren().forEach(function (child) {\n return addAnimatedStyles(child, styles);\n });\n }\n}\n\nvar AnimatedValue = /*#__PURE__*/function (_Animated3) {\n _inherits(AnimatedValue, _Animated3);\n\n var _super5 = _createSuper(AnimatedValue);\n\n function AnimatedValue(_value) {\n var _this6;\n\n _classCallCheck(this, AnimatedValue);\n\n var _this;\n\n _this6 = _super5.call(this);\n _this = _assertThisInitialized(_this6);\n _this6.animatedStyles = new Set();\n _this6.value = void 0;\n _this6.startPosition = void 0;\n _this6.lastPosition = void 0;\n _this6.lastVelocity = void 0;\n _this6.startTime = void 0;\n _this6.lastTime = void 0;\n _this6.done = false;\n\n _this6.setValue = function (value, flush) {\n if (flush === void 0) {\n flush = true;\n }\n\n _this.value = value;\n if (flush) _this.flush();\n };\n\n _this6.value = _value;\n _this6.startPosition = _value;\n _this6.lastPosition = _value;\n return _this6;\n }\n\n _createClass(AnimatedValue, [{\n key: \"flush\",\n value: function flush() {\n if (this.animatedStyles.size === 0) {\n addAnimatedStyles(this, this.animatedStyles);\n }\n\n this.animatedStyles.forEach(function (animatedStyle) {\n return animatedStyle.update();\n });\n }\n }, {\n key: \"clearStyles\",\n value: function clearStyles() {\n this.animatedStyles.clear();\n }\n }, {\n key: \"getValue\",\n value: function getValue() {\n return this.value;\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(range, output, extrapolate) {\n return new AnimatedInterpolation(this, range, output, extrapolate);\n }\n }]);\n\n return AnimatedValue;\n}(Animated);\n\nvar AnimatedValueArray = /*#__PURE__*/function (_AnimatedArray2) {\n _inherits(AnimatedValueArray, _AnimatedArray2);\n\n var _super6 = _createSuper(AnimatedValueArray);\n\n function AnimatedValueArray(values) {\n var _this7;\n\n _classCallCheck(this, AnimatedValueArray);\n\n _this7 = _super6.call(this);\n _this7.payload = values.map(function (n) {\n return new AnimatedValue(n);\n });\n return _this7;\n }\n\n _createClass(AnimatedValueArray, [{\n key: \"setValue\",\n value: function setValue(value, flush) {\n var _this8 = this;\n\n if (flush === void 0) {\n flush = true;\n }\n\n if (Array.isArray(value)) {\n if (value.length === this.payload.length) {\n value.forEach(function (v, i) {\n return _this8.payload[i].setValue(v, flush);\n });\n }\n } else {\n this.payload.forEach(function (p) {\n return p.setValue(value, flush);\n });\n }\n }\n }, {\n key: \"getValue\",\n value: function getValue() {\n return this.payload.map(function (v) {\n return v.getValue();\n });\n }\n }, {\n key: \"interpolate\",\n value: function interpolate(range, output) {\n return new AnimatedInterpolation(this, range, output);\n }\n }]);\n\n return AnimatedValueArray;\n}(AnimatedArray);\n\nvar G = 0;\n\nvar Controller = /*#__PURE__*/function () {\n function Controller() {\n var _this9 = this;\n\n _classCallCheck(this, Controller);\n\n this.id = void 0;\n this.idle = true;\n this.hasChanged = false;\n this.guid = 0;\n this.local = 0;\n this.props = {};\n this.merged = {};\n this.animations = {};\n this.interpolations = {};\n this.values = {};\n this.configs = [];\n this.listeners = [];\n this.queue = [];\n this.localQueue = void 0;\n\n this.getValues = function () {\n return _this9.interpolations;\n };\n\n this.id = G++;\n }\n /** update(props)\n * This function filters input props and creates an array of tasks which are executed in .start()\n * Each task is allowed to carry a delay, which means it can execute asnychroneously */\n\n\n _createClass(Controller, [{\n key: \"update\",\n value: function update(args) {\n //this._id = n + this.id\n if (!args) return this; // Extract delay and the to-prop from props\n\n var _ref = interpolateTo(args),\n _ref$delay = _ref.delay,\n delay = _ref$delay === void 0 ? 0 : _ref$delay,\n to = _ref.to,\n props = _objectWithoutPropertiesLoose(_ref, [\"delay\", \"to\"]);\n\n if (is.arr(to) || is.fun(to)) {\n // If config is either a function or an array queue it up as is\n this.queue.push(_extends({}, props, {\n delay: delay,\n to: to\n }));\n } else if (to) {\n // Otherwise go through each key since it could be delayed individually\n var ops = {};\n Object.entries(to).forEach(function (_ref2) {\n var k = _ref2[0],\n v = _ref2[1]; // Fetch delay and create an entry, consisting of the to-props, the delay, and basic props\n\n var entry = _extends({\n to: _defineProperty({}, k, v),\n delay: callProp(delay, k)\n }, props);\n\n var previous = ops[entry.delay] && ops[entry.delay].to;\n ops[entry.delay] = _extends({}, ops[entry.delay], entry, {\n to: _extends({}, previous, entry.to)\n });\n });\n this.queue = Object.values(ops);\n } // Sort queue, so that async calls go last\n\n\n this.queue = this.queue.sort(function (a, b) {\n return a.delay - b.delay;\n }); // Diff the reduced props immediately (they'll contain the from-prop and some config)\n\n this.diff(props);\n return this;\n }\n /** start(onEnd)\n * This function either executes a queue, if present, or starts the frameloop, which animates */\n\n }, {\n key: \"start\",\n value: function start(onEnd) {\n var _this10 = this;\n\n // If a queue is present we must excecute it\n if (this.queue.length) {\n this.idle = false; // Updates can interrupt trailing queues, in that case we just merge values\n\n if (this.localQueue) {\n this.localQueue.forEach(function (_ref3) {\n var _ref3$from = _ref3.from,\n from = _ref3$from === void 0 ? {} : _ref3$from,\n _ref3$to = _ref3.to,\n to = _ref3$to === void 0 ? {} : _ref3$to;\n if (is.obj(from)) _this10.merged = _extends({}, from, _this10.merged);\n if (is.obj(to)) _this10.merged = _extends({}, _this10.merged, to);\n });\n } // The guid helps us tracking frames, a new queue over an old one means an override\n // We discard async calls in that caseÃ\n\n\n var local = this.local = ++this.guid;\n var queue = this.localQueue = this.queue;\n this.queue = []; // Go through each entry and execute it\n\n queue.forEach(function (_ref4, index) {\n var delay = _ref4.delay,\n props = _objectWithoutPropertiesLoose(_ref4, [\"delay\"]);\n\n var cb = function cb(finished) {\n if (index === queue.length - 1 && local === _this10.guid && finished) {\n _this10.idle = true;\n if (_this10.props.onRest) _this10.props.onRest(_this10.merged);\n }\n\n if (onEnd) onEnd();\n }; // Entries can be delayed, ansyc or immediate\n\n\n var async = is.arr(props.to) || is.fun(props.to);\n\n if (delay) {\n setTimeout(function () {\n if (local === _this10.guid) {\n if (async) _this10.runAsync(props, cb);else _this10.diff(props).start(cb);\n }\n }, delay);\n } else if (async) _this10.runAsync(props, cb);else _this10.diff(props).start(cb);\n });\n } // Otherwise we kick of the frameloop\n else {\n if (is.fun(onEnd)) this.listeners.push(onEnd);\n if (this.props.onStart) this.props.onStart();\n\n _start(this);\n }\n\n return this;\n }\n }, {\n key: \"stop\",\n value: function stop(finished) {\n this.listeners.forEach(function (onEnd) {\n return onEnd(finished);\n });\n this.listeners = [];\n return this;\n }\n /** Pause sets onEnd listeners free, but also removes the controller from the frameloop */\n\n }, {\n key: \"pause\",\n value: function pause(finished) {\n this.stop(true);\n if (finished) stop(this);\n return this;\n }\n }, {\n key: \"runAsync\",\n value: function runAsync(_ref5, onEnd) {\n var _this11 = this;\n\n var _this = this;\n\n var delay = _ref5.delay,\n props = _objectWithoutPropertiesLoose(_ref5, [\"delay\"]);\n\n var local = this.local; // If \"to\" is either a function or an array it will be processed async, therefor \"to\" should be empty right now\n // If the view relies on certain values \"from\" has to be present\n\n var queue = Promise.resolve(undefined);\n\n if (is.arr(props.to)) {\n var _loop = function _loop(i) {\n var index = i;\n\n var fresh = _extends({}, props, interpolateTo(props.to[index]));\n\n if (is.arr(fresh.config)) fresh.config = fresh.config[index];\n queue = queue.then(function () {\n //this.stop()\n if (local === _this11.guid) return new Promise(function (r) {\n return _this11.diff(fresh).start(r);\n });\n });\n };\n\n for (var i = 0; i < props.to.length; i++) {\n _loop(i);\n }\n } else if (is.fun(props.to)) {\n var index = 0;\n var last;\n queue = queue.then(function () {\n return props.to( // next(props)\n function (p) {\n var fresh = _extends({}, props, interpolateTo(p));\n\n if (is.arr(fresh.config)) fresh.config = fresh.config[index];\n index++; //this.stop()\n\n if (local === _this11.guid) return last = new Promise(function (r) {\n return _this11.diff(fresh).start(r);\n });\n return;\n }, // cancel()\n function (finished) {\n if (finished === void 0) {\n finished = true;\n }\n\n return _this.stop(finished);\n }).then(function () {\n return last;\n });\n });\n }\n\n queue.then(onEnd);\n }\n }, {\n key: \"diff\",\n value: function diff(props) {\n var _this12 = this;\n\n this.props = _extends({}, this.props, props);\n var _this$props = this.props,\n _this$props$from = _this$props.from,\n from = _this$props$from === void 0 ? {} : _this$props$from,\n _this$props$to = _this$props.to,\n to = _this$props$to === void 0 ? {} : _this$props$to,\n _this$props$config = _this$props.config,\n config = _this$props$config === void 0 ? {} : _this$props$config,\n reverse = _this$props.reverse,\n attach = _this$props.attach,\n reset = _this$props.reset,\n immediate = _this$props.immediate; // Reverse values when requested\n\n if (reverse) {\n var _ref6 = [to, from];\n from = _ref6[0];\n to = _ref6[1];\n } // This will collect all props that were ever set, reset merged props when necessary\n\n\n this.merged = _extends({}, from, this.merged, to);\n this.hasChanged = false; // Attachment handling, trailed springs can \"attach\" themselves to a previous spring\n\n var target = attach && attach(this); // Reduces input { name: value } pairs into animated values\n\n this.animations = Object.entries(this.merged).reduce(function (acc, _ref7) {\n var name = _ref7[0],\n value = _ref7[1]; // Issue cached entries, except on reset\n\n var entry = acc[name] || {}; // Figure out what the value is supposed to be\n\n var isNumber = is.num(value);\n var isString = is.str(value) && !value.startsWith('#') && !/\\d/.test(value) && !colorNames[value];\n var isArray = is.arr(value);\n var isInterpolation = !isNumber && !isArray && !isString;\n var fromValue = !is.und(from[name]) ? from[name] : value;\n var toValue = isNumber || isArray ? value : isString ? value : 1;\n var toConfig = callProp(config, name);\n if (target) toValue = target.animations[name].parent;\n var parent = entry.parent,\n interpolation$$1 = entry.interpolation,\n toValues = toArray(target ? toValue.getPayload() : toValue),\n animatedValues;\n var newValue = value;\n if (isInterpolation) newValue = interpolation({\n range: [0, 1],\n output: [value, value]\n })(1);\n var currentValue = interpolation$$1 && interpolation$$1.getValue(); // Change detection flags\n\n var isFirst = is.und(parent);\n var isActive = !isFirst && entry.animatedValues.some(function (v) {\n return !v.done;\n });\n var currentValueDiffersFromGoal = !is.equ(newValue, currentValue);\n var hasNewGoal = !is.equ(newValue, entry.previous);\n var hasNewConfig = !is.equ(toConfig, entry.config); // Change animation props when props indicate a new goal (new value differs from previous one)\n // and current values differ from it. Config changes trigger a new update as well (though probably shouldn't?)\n\n if (reset || hasNewGoal && currentValueDiffersFromGoal || hasNewConfig) {\n // Convert regular values into animated values, ALWAYS re-use if possible\n if (isNumber || isString) parent = interpolation$$1 = entry.parent || new AnimatedValue(fromValue);else if (isArray) parent = interpolation$$1 = entry.parent || new AnimatedValueArray(fromValue);else if (isInterpolation) {\n var prev = entry.interpolation && entry.interpolation.calc(entry.parent.value);\n prev = prev !== void 0 && !reset ? prev : fromValue;\n\n if (entry.parent) {\n parent = entry.parent;\n parent.setValue(0, false);\n } else parent = new AnimatedValue(0);\n\n var range = {\n output: [prev, value]\n };\n\n if (entry.interpolation) {\n interpolation$$1 = entry.interpolation;\n entry.interpolation.updateConfig(range);\n } else interpolation$$1 = parent.interpolate(range);\n }\n toValues = toArray(target ? toValue.getPayload() : toValue);\n animatedValues = toArray(parent.getPayload());\n if (reset && !isInterpolation) parent.setValue(fromValue, false);\n _this12.hasChanged = true; // Reset animated values\n\n animatedValues.forEach(function (value) {\n value.startPosition = value.value;\n value.lastPosition = value.value;\n value.lastVelocity = isActive ? value.lastVelocity : undefined;\n value.lastTime = isActive ? value.lastTime : undefined;\n value.startTime = now();\n value.done = false;\n value.animatedStyles.clear();\n }); // Set immediate values\n\n if (callProp(immediate, name)) {\n parent.setValue(isInterpolation ? toValue : value, false);\n }\n\n return _extends({}, acc, _defineProperty({}, name, _extends({}, entry, {\n name: name,\n parent: parent,\n interpolation: interpolation$$1,\n animatedValues: animatedValues,\n toValues: toValues,\n previous: newValue,\n config: toConfig,\n fromValues: toArray(parent.getValue()),\n immediate: callProp(immediate, name),\n initialVelocity: withDefault(toConfig.velocity, 0),\n clamp: withDefault(toConfig.clamp, false),\n precision: withDefault(toConfig.precision, 0.01),\n tension: withDefault(toConfig.tension, 170),\n friction: withDefault(toConfig.friction, 26),\n mass: withDefault(toConfig.mass, 1),\n duration: toConfig.duration,\n easing: withDefault(toConfig.easing, function (t) {\n return t;\n }),\n decay: toConfig.decay\n })));\n } else {\n if (!currentValueDiffersFromGoal) {\n // So ... the current target value (newValue) appears to be different from the previous value,\n // which normally constitutes an update, but the actual value (currentValue) matches the target!\n // In order to resolve this without causing an animation update we silently flag the animation as done,\n // which it technically is. Interpolations also needs a config update with their target set to 1.\n if (isInterpolation) {\n parent.setValue(1, false);\n interpolation$$1.updateConfig({\n output: [newValue, newValue]\n });\n }\n\n parent.done = true;\n _this12.hasChanged = true;\n return _extends({}, acc, _defineProperty({}, name, _extends({}, acc[name], {\n previous: newValue\n })));\n }\n\n return acc;\n }\n }, this.animations);\n\n if (this.hasChanged) {\n // Make animations available to frameloop\n this.configs = Object.values(this.animations);\n this.values = {};\n this.interpolations = {};\n\n for (var key in this.animations) {\n this.interpolations[key] = this.animations[key].interpolation;\n this.values[key] = this.animations[key].interpolation.getValue();\n }\n }\n\n return this;\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.stop();\n this.props = {};\n this.merged = {};\n this.animations = {};\n this.interpolations = {};\n this.values = {};\n this.configs = [];\n this.local = 0;\n }\n }]);\n\n return Controller;\n}();\n/** API\n * const props = useSprings(number, [{ ... }, { ... }, ...])\n * const [props, set] = useSprings(number, (i, controller) => ({ ... }))\n */\n\n\nvar useSprings = function useSprings(length, props) {\n var mounted = useRef(false);\n var ctrl = useRef();\n var isFn = is.fun(props); // The controller maintains the animation values, starts and stops animations\n\n var _useMemo = useMemo(function () {\n // Remove old controllers\n if (ctrl.current) {\n ctrl.current.map(function (c) {\n return c.destroy();\n });\n ctrl.current = undefined;\n }\n\n var ref;\n return [new Array(length).fill().map(function (_, i) {\n var ctrl = new Controller();\n var newProps = isFn ? callProp(props, i, ctrl) : props[i];\n if (i === 0) ref = newProps.ref;\n ctrl.update(newProps);\n if (!ref) ctrl.start();\n return ctrl;\n }), ref];\n }, [length]),\n controllers = _useMemo[0],\n ref = _useMemo[1];\n\n ctrl.current = controllers; // The hooks reference api gets defined here ...\n\n var api = useImperativeHandle(ref, function () {\n return {\n start: function start() {\n return Promise.all(ctrl.current.map(function (c) {\n return new Promise(function (r) {\n return c.start(r);\n });\n }));\n },\n stop: function stop(finished) {\n return ctrl.current.forEach(function (c) {\n return c.stop(finished);\n });\n },\n\n get controllers() {\n return ctrl.current;\n }\n\n };\n }); // This function updates the controllers\n\n var updateCtrl = useMemo(function () {\n return function (updateProps) {\n return ctrl.current.map(function (c, i) {\n c.update(isFn ? callProp(updateProps, i, c) : updateProps[i]);\n if (!ref) c.start();\n });\n };\n }, [length]); // Update controller if props aren't functional\n\n useEffect(function () {\n if (mounted.current) {\n if (!isFn) updateCtrl(props);\n } else if (!ref) ctrl.current.forEach(function (c) {\n return c.start();\n });\n }); // Update mounted flag and destroy controller on unmount\n\n useEffect(function () {\n return mounted.current = true, function () {\n return ctrl.current.forEach(function (c) {\n return c.destroy();\n });\n };\n }, []); // Return animated props, or, anim-props + the update-setter above\n\n var propValues = ctrl.current.map(function (c) {\n return c.getValues();\n });\n return isFn ? [propValues, updateCtrl, function (finished) {\n return ctrl.current.forEach(function (c) {\n return c.pause(finished);\n });\n }] : propValues;\n};\n/** API\n * const props = useSpring({ ... })\n * const [props, set] = useSpring(() => ({ ... }))\n */\n\n\nvar useSpring = function useSpring(props) {\n var isFn = is.fun(props);\n\n var _useSprings = useSprings(1, isFn ? props : [props]),\n result = _useSprings[0],\n set = _useSprings[1],\n pause = _useSprings[2];\n\n return isFn ? [result[0], set, pause] : result;\n};\n/** API\n * const trails = useTrail(number, { ... })\n * const [trails, set] = useTrail(number, () => ({ ... }))\n */\n\n\nvar useTrail = function useTrail(length, props) {\n var mounted = useRef(false);\n var isFn = is.fun(props);\n var updateProps = callProp(props);\n var instances = useRef();\n\n var _useSprings = useSprings(length, function (i, ctrl) {\n if (i === 0) instances.current = [];\n instances.current.push(ctrl);\n return _extends({}, updateProps, {\n config: callProp(updateProps.config, i),\n attach: i > 0 && function () {\n return instances.current[i - 1];\n }\n });\n }),\n result = _useSprings[0],\n set = _useSprings[1],\n pause = _useSprings[2]; // Set up function to update controller\n\n\n var updateCtrl = useMemo(function () {\n return function (props) {\n return set(function (i, ctrl) {\n var last = props.reverse ? i === 0 : length - 1 === i;\n var attachIdx = props.reverse ? i + 1 : i - 1;\n var attachController = instances.current[attachIdx];\n return _extends({}, props, {\n config: callProp(props.config || updateProps.config, i),\n attach: attachController && function () {\n return attachController;\n }\n });\n });\n };\n }, [length, updateProps.reverse]); // Update controller if props aren't functional\n\n useEffect(function () {\n return void (mounted.current && !isFn && updateCtrl(props));\n }); // Update mounted flag and destroy controller on unmount\n\n useEffect(function () {\n return void (mounted.current = true);\n }, []);\n return isFn ? [result, updateCtrl, pause] : result;\n};\n/** API\n * const transitions = useTransition(items, itemKeys, { ... })\n * const [transitions, update] = useTransition(items, itemKeys, () => ({ ... }))\n */\n\n\nvar guid = 0;\nvar ENTER = 'enter';\nvar LEAVE = 'leave';\nvar UPDATE = 'update';\n\nvar mapKeys = function mapKeys(items, keys) {\n return (typeof keys === 'function' ? items.map(keys) : toArray(keys)).map(String);\n};\n\nvar get = function get(props) {\n var items = props.items,\n _props$keys = props.keys,\n keys = _props$keys === void 0 ? function (item) {\n return item;\n } : _props$keys,\n rest = _objectWithoutPropertiesLoose(props, [\"items\", \"keys\"]);\n\n items = toArray(items !== void 0 ? items : null);\n return _extends({\n items: items,\n keys: mapKeys(items, keys)\n }, rest);\n};\n\nfunction useTransition(input, keyTransform, config) {\n var props = _extends({\n items: input,\n keys: keyTransform || function (i) {\n return i;\n }\n }, config);\n\n var _get = get(props),\n _get$lazy = _get.lazy,\n lazy = _get$lazy === void 0 ? false : _get$lazy,\n _get$unique = _get.unique,\n _get$reset = _get.reset,\n reset = _get$reset === void 0 ? false : _get$reset,\n enter = _get.enter,\n leave = _get.leave,\n update = _get.update,\n onDestroyed = _get.onDestroyed,\n keys = _get.keys,\n items = _get.items,\n onFrame = _get.onFrame,\n _onRest = _get.onRest,\n onStart = _get.onStart,\n ref = _get.ref,\n extra = _objectWithoutPropertiesLoose(_get, [\"lazy\", \"unique\", \"reset\", \"enter\", \"leave\", \"update\", \"onDestroyed\", \"keys\", \"items\", \"onFrame\", \"onRest\", \"onStart\", \"ref\"]);\n\n var forceUpdate = useForceUpdate();\n var mounted = useRef(false);\n var state = useRef({\n mounted: false,\n first: true,\n deleted: [],\n current: {},\n transitions: [],\n prevProps: {},\n paused: !!props.ref,\n instances: !mounted.current && new Map(),\n forceUpdate: forceUpdate\n });\n useImperativeHandle(props.ref, function () {\n return {\n start: function start() {\n return Promise.all(Array.from(state.current.instances).map(function (_ref) {\n var c = _ref[1];\n return new Promise(function (r) {\n return c.start(r);\n });\n }));\n },\n stop: function stop(finished) {\n return Array.from(state.current.instances).forEach(function (_ref2) {\n var c = _ref2[1];\n return c.stop(finished);\n });\n },\n\n get controllers() {\n return Array.from(state.current.instances).map(function (_ref3) {\n var c = _ref3[1];\n return c;\n });\n }\n\n };\n }); // Update state\n\n state.current = diffItems(state.current, props);\n\n if (state.current.changed) {\n // Update state\n state.current.transitions.forEach(function (transition) {\n var slot = transition.slot,\n from = transition.from,\n to = transition.to,\n config = transition.config,\n trail = transition.trail,\n key = transition.key,\n item = transition.item;\n if (!state.current.instances.has(key)) state.current.instances.set(key, new Controller()); // update the map object\n\n var ctrl = state.current.instances.get(key);\n\n var newProps = _extends({}, extra, {\n to: to,\n from: from,\n config: config,\n ref: ref,\n onRest: function onRest(values) {\n if (state.current.mounted) {\n if (transition.destroyed) {\n // If no ref is given delete destroyed items immediately\n if (!ref && !lazy) cleanUp(state, key);\n if (onDestroyed) onDestroyed(item);\n } // A transition comes to rest once all its springs conclude\n\n\n var curInstances = Array.from(state.current.instances);\n\n var _active = curInstances.some(function (_ref4) {\n var c = _ref4[1];\n return !c.idle;\n });\n\n if (!_active && (ref || lazy) && state.current.deleted.length > 0) cleanUp(state);\n if (_onRest) _onRest(item, slot, values);\n }\n },\n onStart: onStart && function () {\n return onStart(item, slot);\n },\n onFrame: onFrame && function (values) {\n return onFrame(item, slot, values);\n },\n delay: trail,\n reset: reset && slot === ENTER // Update controller\n\n });\n\n ctrl.update(newProps);\n if (!state.current.paused) ctrl.start();\n });\n }\n\n useEffect(function () {\n state.current.mounted = mounted.current = true;\n return function () {\n state.current.mounted = mounted.current = false;\n Array.from(state.current.instances).map(function (_ref5) {\n var c = _ref5[1];\n return c.destroy();\n });\n state.current.instances.clear();\n };\n }, []);\n return state.current.transitions.map(function (_ref6) {\n var item = _ref6.item,\n slot = _ref6.slot,\n key = _ref6.key;\n return {\n item: item,\n key: key,\n state: slot,\n props: state.current.instances.get(key).getValues()\n };\n });\n}\n\nfunction cleanUp(state, filterKey) {\n var deleted = state.current.deleted;\n\n var _iterator2 = _createForOfIteratorHelper(deleted),\n _step2;\n\n try {\n var _loop2 = function _loop2() {\n var _ref7 = _step2.value;\n var key = _ref7.key;\n\n var filter = function filter(t) {\n return t.key !== key;\n };\n\n if (is.und(filterKey) || filterKey === key) {\n state.current.instances.delete(key);\n state.current.transitions = state.current.transitions.filter(filter);\n state.current.deleted = state.current.deleted.filter(filter);\n }\n };\n\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n _loop2();\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n state.current.forceUpdate();\n}\n\nfunction diffItems(_ref8, props) {\n var first = _ref8.first,\n prevProps = _ref8.prevProps,\n state = _objectWithoutPropertiesLoose(_ref8, [\"first\", \"prevProps\"]);\n\n var _get2 = get(props),\n items = _get2.items,\n keys = _get2.keys,\n initial = _get2.initial,\n from = _get2.from,\n enter = _get2.enter,\n leave = _get2.leave,\n update = _get2.update,\n _get2$trail = _get2.trail,\n trail = _get2$trail === void 0 ? 0 : _get2$trail,\n unique = _get2.unique,\n config = _get2.config,\n _get2$order = _get2.order,\n order = _get2$order === void 0 ? [ENTER, LEAVE, UPDATE] : _get2$order;\n\n var _get3 = get(prevProps),\n _keys = _get3.keys,\n _items = _get3.items;\n\n var current = _extends({}, state.current);\n\n var deleted = _toConsumableArray(state.deleted); // Compare next keys with current keys\n\n\n var currentKeys = Object.keys(current);\n var currentSet = new Set(currentKeys);\n var nextSet = new Set(keys);\n var added = keys.filter(function (item) {\n return !currentSet.has(item);\n });\n var removed = state.transitions.filter(function (item) {\n return !item.destroyed && !nextSet.has(item.originalKey);\n }).map(function (i) {\n return i.originalKey;\n });\n var updated = keys.filter(function (item) {\n return currentSet.has(item);\n });\n var delay = -trail;\n\n while (order.length) {\n var changeType = order.shift();\n\n switch (changeType) {\n case ENTER:\n {\n added.forEach(function (key, index) {\n // In unique mode, remove fading out transitions if their key comes in again\n if (unique && deleted.find(function (d) {\n return d.originalKey === key;\n })) deleted = deleted.filter(function (t) {\n return t.originalKey !== key;\n });\n var keyIndex = keys.indexOf(key);\n var item = items[keyIndex];\n var slot = first && initial !== void 0 ? 'initial' : ENTER;\n current[key] = {\n slot: slot,\n originalKey: key,\n key: unique ? String(key) : guid++,\n item: item,\n trail: delay = delay + trail,\n config: callProp(config, item, slot),\n from: callProp(first ? initial !== void 0 ? initial || {} : from : from, item),\n to: callProp(enter, item)\n };\n });\n break;\n }\n\n case LEAVE:\n {\n removed.forEach(function (key) {\n var keyIndex = _keys.indexOf(key);\n\n var item = _items[keyIndex];\n var slot = LEAVE;\n deleted.unshift(_extends({}, current[key], {\n slot: slot,\n destroyed: true,\n left: _keys[Math.max(0, keyIndex - 1)],\n right: _keys[Math.min(_keys.length, keyIndex + 1)],\n trail: delay = delay + trail,\n config: callProp(config, item, slot),\n to: callProp(leave, item)\n }));\n delete current[key];\n });\n break;\n }\n\n case UPDATE:\n {\n updated.forEach(function (key) {\n var keyIndex = keys.indexOf(key);\n var item = items[keyIndex];\n var slot = UPDATE;\n current[key] = _extends({}, current[key], {\n item: item,\n slot: slot,\n trail: delay = delay + trail,\n config: callProp(config, item, slot),\n to: callProp(update, item)\n });\n });\n break;\n }\n }\n }\n\n var out = keys.map(function (key) {\n return current[key];\n }); // This tries to restore order for deleted items by finding their last known siblings\n // only using the left sibling to keep order placement consistent for all deleted items\n\n deleted.forEach(function (_ref9) {\n var left = _ref9.left,\n right = _ref9.right,\n item = _objectWithoutPropertiesLoose(_ref9, [\"left\", \"right\"]);\n\n var pos; // Was it the element on the left, if yes, move there ...\n\n if ((pos = out.findIndex(function (t) {\n return t.originalKey === left;\n })) !== -1) pos += 1; // And if nothing else helps, move it to the start ¯\\_(ツ)_/¯\n\n pos = Math.max(0, pos);\n out = [].concat(_toConsumableArray(out.slice(0, pos)), [item], _toConsumableArray(out.slice(pos)));\n });\n return _extends({}, state, {\n changed: added.length || removed.length || updated.length,\n first: first && added.length === 0,\n transitions: out,\n current: current,\n deleted: deleted,\n prevProps: props\n });\n}\n\nvar AnimatedStyle = /*#__PURE__*/function (_AnimatedObject2) {\n _inherits(AnimatedStyle, _AnimatedObject2);\n\n var _super7 = _createSuper(AnimatedStyle);\n\n function AnimatedStyle(style) {\n var _this13;\n\n _classCallCheck(this, AnimatedStyle);\n\n if (style === void 0) {\n style = {};\n }\n\n _this13 = _super7.call(this);\n\n if (style.transform && !(style.transform instanceof Animated)) {\n style = applyAnimatedValues.transform(style);\n }\n\n _this13.payload = style;\n return _this13;\n }\n\n return AnimatedStyle;\n}(AnimatedObject); // http://www.w3.org/TR/css3-color/#svg-color\n\n\nvar colors = {\n transparent: 0x00000000,\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}; // const INTEGER = '[-+]?\\\\d+';\n\nvar NUMBER = '[-+]?\\\\d*\\\\.?\\\\d+';\nvar PERCENTAGE = NUMBER + '%';\n\nfunction call() {\n for (var _len = arguments.length, parts = new Array(_len), _key = 0; _key < _len; _key++) {\n parts[_key] = arguments[_key];\n }\n\n return '\\\\(\\\\s*(' + parts.join(')\\\\s*,\\\\s*(') + ')\\\\s*\\\\)';\n}\n\nvar rgb = new RegExp('rgb' + call(NUMBER, NUMBER, NUMBER));\nvar rgba = new RegExp('rgba' + call(NUMBER, NUMBER, NUMBER, NUMBER));\nvar hsl = new RegExp('hsl' + call(NUMBER, PERCENTAGE, PERCENTAGE));\nvar hsla = new RegExp('hsla' + call(NUMBER, PERCENTAGE, PERCENTAGE, NUMBER));\nvar hex3 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\nvar hex4 = /^#([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})([0-9a-fA-F]{1})$/;\nvar hex6 = /^#([0-9a-fA-F]{6})$/;\nvar hex8 = /^#([0-9a-fA-F]{8})$/;\n/*\nhttps://github.com/react-community/normalize-css-color\n\nBSD 3-Clause License\n\nCopyright (c) 2016, React Community\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\"\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n*/\n\nfunction normalizeColor(color) {\n var match;\n\n if (typeof color === 'number') {\n return color >>> 0 === color && color >= 0 && color <= 0xffffffff ? color : null;\n } // Ordered based on occurrences on Facebook codebase\n\n\n if (match = hex6.exec(color)) return parseInt(match[1] + 'ff', 16) >>> 0;\n if (colors.hasOwnProperty(color)) return colors[color];\n\n if (match = 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 = 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 = 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 = hex8.exec(color)) return parseInt(match[1], 16) >>> 0;\n\n if (match = 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 = 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 = 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) t += 1;\n if (t > 1) t -= 1;\n if (t < 1 / 6) return p + (q - p) * 6 * t;\n if (t < 1 / 2) return q;\n if (t < 2 / 3) return p + (q - p) * (2 / 3 - t) * 6;\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}\n\nfunction parse255(str) {\n var int = parseInt(str, 10);\n if (int < 0) return 0;\n if (int > 255) return 255;\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 if (num < 0) return 0;\n if (num > 1) return 255;\n return Math.round(num * 255);\n}\n\nfunction parsePercentage(str) {\n // parseFloat conveniently ignores the final %\n var int = parseFloat(str);\n if (int < 0) return 0;\n if (int > 100) return 1;\n return int / 100;\n}\n\nfunction colorToRgba(input) {\n var int32Color = normalizeColor(input);\n if (int32Color === null) return input;\n int32Color = int32Color || 0;\n var r = (int32Color & 0xff000000) >>> 24;\n var g = (int32Color & 0x00ff0000) >>> 16;\n var b = (int32Color & 0x0000ff00) >>> 8;\n var a = (int32Color & 0x000000ff) / 255;\n return \"rgba(\".concat(r, \", \").concat(g, \", \").concat(b, \", \").concat(a, \")\");\n} // Problem: https://github.com/animatedjs/animated/pull/102\n// Solution: https://stackoverflow.com/questions/638565/parsing-scientific-notation-sensibly/658662\n\n\nvar stringShapeRegex = /[+\\-]?(?:0|[1-9]\\d*)(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g; // Covers rgb, rgba, hsl, hsla\n// Taken from https://gist.github.com/olmokramer/82ccce673f86db7cda5e\n\nvar colorRegex = /(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\\((-?\\d+%?[,\\s]+){2,3}\\s*[\\d\\.]+%?\\))/gi; // Covers color names (transparent, blue, etc.)\n\nvar colorNamesRegex = new RegExp(\"(\".concat(Object.keys(colors).join('|'), \")\"), 'g');\n/**\n * Supports string shapes by extracting numbers so new values can be computed,\n * and recombines those values into new strings of the same shape. Supports\n * things like:\n *\n * rgba(123, 42, 99, 0.36) // colors\n * -45deg // values with units\n * 0 2px 2px 0px rgba(0, 0, 0, 0.12) // box shadows\n */\n\nvar createStringInterpolator = function createStringInterpolator(config) {\n // Replace colors with rgba\n var outputRange = config.output.map(function (rangeValue) {\n return rangeValue.replace(colorRegex, colorToRgba);\n }).map(function (rangeValue) {\n return rangeValue.replace(colorNamesRegex, colorToRgba);\n });\n var outputRanges = outputRange[0].match(stringShapeRegex).map(function () {\n return [];\n });\n outputRange.forEach(function (value) {\n value.match(stringShapeRegex).forEach(function (number, i) {\n return outputRanges[i].push(+number);\n });\n });\n var interpolations = outputRange[0].match(stringShapeRegex).map(function (_value, i) {\n return createInterpolator(_extends({}, config, {\n output: outputRanges[i]\n }));\n });\n return function (input) {\n var i = 0;\n return outputRange[0] // 'rgba(0, 100, 200, 0)'\n // ->\n // 'rgba(${interpolations[0](input)}, ${interpolations[1](input)}, ...'\n .replace(stringShapeRegex, function () {\n return interpolations[i++](input);\n }) // rgba requires that the r,g,b are integers.... so we want to round them, but we *dont* want to\n // round the opacity (4th column).\n .replace(/rgba\\(([0-9\\.-]+), ([0-9\\.-]+), ([0-9\\.-]+), ([0-9\\.-]+)\\)/gi, function (_, p1, p2, p3, p4) {\n return \"rgba(\".concat(Math.round(p1), \", \").concat(Math.round(p2), \", \").concat(Math.round(p3), \", \").concat(p4, \")\");\n });\n };\n};\n\nvar isUnitlessNumber = {\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 columns: true,\n flex: true,\n flexGrow: true,\n flexPositive: true,\n flexShrink: true,\n flexNegative: true,\n flexOrder: true,\n gridRow: true,\n gridRowEnd: true,\n gridRowSpan: true,\n gridRowStart: true,\n gridColumn: true,\n gridColumnEnd: true,\n gridColumnSpan: true,\n gridColumnStart: true,\n fontWeight: true,\n lineClamp: true,\n lineHeight: true,\n opacity: true,\n order: true,\n orphans: true,\n tabSize: true,\n widows: true,\n zIndex: true,\n zoom: true,\n // SVG-related properties\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};\n\nvar prefixKey = function prefixKey(prefix, key) {\n return prefix + key.charAt(0).toUpperCase() + key.substring(1);\n};\n\nvar prefixes = ['Webkit', 'Ms', 'Moz', 'O'];\nisUnitlessNumber = Object.keys(isUnitlessNumber).reduce(function (acc, prop) {\n prefixes.forEach(function (prefix) {\n return acc[prefixKey(prefix, prop)] = acc[prop];\n });\n return acc;\n}, isUnitlessNumber);\n\nfunction dangerousStyleValue(name, value, isCustomProperty) {\n if (value == null || typeof value === 'boolean' || value === '') return '';\n if (!isCustomProperty && typeof value === 'number' && value !== 0 && !(isUnitlessNumber.hasOwnProperty(name) && isUnitlessNumber[name])) return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers\n\n return ('' + value).trim();\n}\n\nvar attributeCache = {};\ninjectCreateAnimatedStyle(function (style) {\n return new AnimatedStyle(style);\n});\ninjectDefaultElement('div');\ninjectStringInterpolator(createStringInterpolator);\ninjectColorNames(colors);\ninjectApplyAnimatedValues(function (instance, props) {\n if (instance.nodeType && instance.setAttribute !== undefined) {\n var style = props.style,\n children = props.children,\n scrollTop = props.scrollTop,\n scrollLeft = props.scrollLeft,\n attributes = _objectWithoutPropertiesLoose(props, [\"style\", \"children\", \"scrollTop\", \"scrollLeft\"]);\n\n var filter = instance.nodeName === 'filter' || instance.parentNode && instance.parentNode.nodeName === 'filter';\n if (scrollTop !== void 0) instance.scrollTop = scrollTop;\n if (scrollLeft !== void 0) instance.scrollLeft = scrollLeft; // Set textContent, if children is an animatable value\n\n if (children !== void 0) instance.textContent = children; // Set styles ...\n\n for (var styleName in style) {\n if (!style.hasOwnProperty(styleName)) continue;\n var isCustomProperty = styleName.indexOf('--') === 0;\n var styleValue = dangerousStyleValue(styleName, style[styleName], isCustomProperty);\n if (styleName === 'float') styleName = 'cssFloat';\n if (isCustomProperty) instance.style.setProperty(styleName, styleValue);else instance.style[styleName] = styleValue;\n } // Set attributes ...\n\n\n for (var name in attributes) {\n // Attributes are written in dash case\n var dashCase = filter ? name : attributeCache[name] || (attributeCache[name] = name.replace(/([A-Z])/g, function (n) {\n return '-' + n.toLowerCase();\n }));\n if (typeof instance.getAttribute(dashCase) !== 'undefined') instance.setAttribute(dashCase, attributes[name]);\n }\n\n return;\n } else return false;\n}, function (style) {\n return style;\n});\nvar domElements = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan']; // Extend animated with all the available THREE elements\n\nvar apply = merge(createAnimatedComponent, false);\nvar extendedAnimated = apply(domElements);\nexport { apply, config, update, extendedAnimated as animated, extendedAnimated as a, interpolate$1 as interpolate, Globals, useSpring, useTrail, useTransition, useChain, useSprings };","import styled from '@emotion/styled';\nimport { animated } from 'react-spring';\n\nexport const Background = styled.div<{ usePrimaryBackground: boolean }>`\n align-items: center;\n background-color: ${({ theme, usePrimaryBackground }) =>\n usePrimaryBackground\n ? theme.colors.primaryBackground\n : theme.colors.tertiaryBackground};\n color: ${({ theme }) => theme.colors.quaternary};\n`;\n\nexport const LogoContainer = styled.div<{ usePrimaryBackground: boolean }>`\n width: 100%;\n max-width: 168px;\n color: ${({ theme, usePrimaryBackground }) =>\n usePrimaryBackground ? theme.colors.quaternary : theme.colors.tertiary};\n`;\n\nexport const Wrapper = styled.div`\n padding: 26px 0 24px;\n display: flex;\n justify-content: space-between;\n align-items: center;\n`;\n\nexport const MobileMenuWrapper = styled.div`\n position: relative;\n button {\n display: flex;\n justify-content: center;\n align-items: center;\n background: transparent;\n border: 0;\n padding: 0;\n z-index: 2000;\n }\n`;\n\nexport const MobileMenuIcon = styled.div`\n svg {\n color: ${({ theme }) => theme.colors.navigationPrimaryText};\n }\n`;\n\nexport const MobileNav = styled(animated.div)`\n position: fixed;\n top: 0;\n right: 0;\n z-index: 1000;\n height: 100%;\n\n display: flex;\n flex-direction: column;\n align-items: flex-end;\n\n background-color: ${({ theme }) =>\n theme.colors.navigationSecondaryBackground};\n box-shadow: 0 4px 8px -2px rgba(0, 0, 0, 0.2);\n padding: 1.5rem 2.5rem;\n`;\n","/** @jsx jsx */\nimport { jsx } from 'theme-ui';\nimport { FC } from 'react';\nimport { useSpring } from 'react-spring';\nimport CloseIcon from 'images/icons/x.svg';\n\nimport { MobileMenuWrapper, MobileMenuIcon, MobileNav } from './styled';\nimport MenuIcon from '../../images/icons/menu-icon.svg';\n\nconst MobileMenu: FC = ({ children }) => {\n const [animationProps, setSpring] = useSpring(() => ({\n opacity: 0,\n transform: `translateX(105%)`,\n }));\n const setOpen = (show: boolean) => {\n setSpring({\n opacity: show ? 1 : 0,\n transform: `translateX(${show ? '0px' : '105%'})`,\n });\n };\n\n return (\n <MobileMenuWrapper\n sx={{\n display: ['flex', 'flex', 'none'],\n alignItems: 'center',\n }}\n >\n <MobileMenuIcon>\n <button onClick={() => setOpen(true)} type=\"button\">\n <MenuIcon />\n </button>\n </MobileMenuIcon>\n <MobileNav style={animationProps}>\n <button\n id=\"mobile-nav-close\"\n onClick={() => setOpen(false)}\n type=\"button\"\n >\n <CloseIcon\n sx={{\n color: 'navigationSecondaryText',\n }}\n />\n </button>\n {children}\n </MobileNav>\n </MobileMenuWrapper>\n );\n};\n\nexport default MobileMenu;\n","import React, { useCallback, useContext } from 'react';\nimport { useStaticQuery, graphql } from 'gatsby';\nimport * as Navigation from 'gatsby-theme-jane/Navigation';\n\nimport '../../fragments';\n\nconst query = graphql`\n query NavigationQuery {\n site {\n siteMetadata {\n navigation {\n id\n menu {\n ...MenuLevel0\n items {\n id\n label\n to\n hidden\n menu {\n ...MenuLevel1\n }\n }\n }\n }\n }\n }\n }\n`;\n\nconst NavigationContext = React.createContext<\n Navigation.NavigationContext | undefined\n>(undefined);\n\nexport const NavigationProvider: React.FC<{ currentPageName: string}> = ({ currentPageName, ...props }) => {\n const data = useStaticQuery(query);\n\n const {\n navigation,\n }: { navigation: Navigation.NavMenu[] } = data.site.siteMetadata;\n\n const selectMenu = useCallback(\n (id: Navigation.MenuItem['id']) => {\n const lookup = navigation.find((menu) => menu.id === id);\n if (lookup === undefined) {\n throw new TypeError(`Navigation menu with id \"${id}\" not found!`);\n }\n return lookup;\n },\n [navigation],\n );\n\n return (\n <NavigationContext.Provider\n {...props}\n value={{ navigation, selectMenu, currentPageName }}\n />\n );\n};\n\nexport const useNavigation = (): Navigation.NavigationContext => {\n const context = useContext(NavigationContext);\n if (context === undefined) {\n throw new TypeError(\n 'useNavigation must be used within a NavigationProvider',\n );\n }\n return context;\n};\n\nexport default NavigationContext;\n","/** @jsx jsx */\nimport { jsx } from 'theme-ui';\nimport { alpha } from '@theme-ui/color';\n\nimport { FC, useRef, useEffect, useCallback, useState, useContext } from 'react';\nimport { Menu, MenuItem } from 'gatsby-theme-jane/Navigation';\nimport { Flex, Text, Box } from '..';\n\nimport { useNavigation } from '../../context/NavigationContext';\nimport ViewerContext from '../../context/ViewerContext';\nimport { useIntl } from '../../context/IntlContext';\nimport ArrowIcon from '../../images/icons/arrow-icon.svg';\n\nimport Link from '../Link';\n\ntype Variant = 'horizontal' | 'vertical';\ninterface NavigationMenuProps {\n variant?: Variant;\n}\n\ninterface SubNavigationProps extends MenuItem {\n variant?: Variant;\n}\n\nconst shouldShow = (\n item: MenuItem, \n locale: string, \n countryCode: string): boolean => {\n if (!!item.hidden) return false;\n if (item.onlyCountries && item.onlyCountries?.length > 0) {\n if (item.onlyCountries?.includes(countryCode)) return true;\n return false;\n }\n\n if (!item.countryRestriction && !item.localeRestriction) \n return true;\n \n if (item.countryRestriction?.includes(countryCode)) return false;\n if (item.localeRestriction?.includes(locale)) return false;\n \n return true;\n}\n\nconst SubNavigation: FC<SubNavigationProps> = ({\n label,\n to,\n menu,\n variant,\n}) => {\n if (menu === undefined) {\n throw new TypeError(`Menu is undefined`);\n }\n\n const [dropdownVisible, toggleDropdown] = useState<boolean>(false);\n const listNode = useRef<HTMLLIElement>(null);\n const { countryCode } = useContext(ViewerContext);\n const { t, locale } = useIntl();\n\n const { type } = menu;\n\n const union = type === 'page' ? '/' : '#';\n const path = to ? `/${to}${union}` : '/';\n\n const handleClickOutside = useCallback((e) => {\n if (!listNode || listNode.current?.contains(e.target)) {\n return;\n }\n toggleDropdown(false);\n }, []);\n\n useEffect(() => {\n if (dropdownVisible && variant === 'horizontal') {\n document.addEventListener('mousedown', handleClickOutside);\n } else {\n document.removeEventListener('mousedown', handleClickOutside);\n }\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [dropdownVisible, handleClickOutside, variant]);\n\n return (\n <li\n ref={listNode}\n sx={{\n display: 'flex',\n flexDirection: variant === 'vertical' ? 'column' : 'row',\n position: 'relative',\n listStyle: 'none',\n paddingX: 6,\n lineHeight: 'comfortable',\n }}\n >\n <Flex\n sx={{\n alignItems: 'center',\n }}\n > \n <Text\n as=\"span\"\n sx={{\n fontSize: 2,\n color:\n variant === 'vertical'\n ? 'secondary'\n : ('secondary'),\n textDecoration: 'none',\n fontWeight: 'bold',\n marginLeft: '30px',\n }}\n onClick={() => {\n toggleDropdown((state) => !state);\n }}\n >\n {t(label) || label}\n </Text>\n {variant === 'horizontal' && (\n <button\n key=\"button\"\n type=\"button\"\n onClick={() => {\n toggleDropdown((state) => !state);\n }}\n sx={{\n border: 'none',\n background: 'none',\n padding: 0,\n ml: 1,\n height: '24px',\n '&:focus': { outline: 0 },\n }}\n >\n <ArrowIcon\n sx={{\n color: 'navigationPrimaryText',\n transform: dropdownVisible ? 'rotate(180deg)' : 'none',\n }}\n />\n </button>\n )}\n </Flex>\n <ul\n sx={{\n display: dropdownVisible || variant === 'vertical' ? 'flex' : 'none',\n position: variant === 'vertical' ? 'initial' : 'absolute',\n flexDirection: 'column',\n top: '3rem',\n width: 'auto',\n p: 0,\n m: 0,\n listStyle: 'none',\n backgroundColor:\n variant === 'vertical'\n ? 'navigationSecondaryBackground'\n : 'primaryBackground',\n minWidth: variant === 'vertical' ? null : '12rem',\n borderRadius: variant === 'vertical' ? null : 2,\n borderStyle: variant === 'vertical' ? null : 'solid',\n borderWidth: variant === 'vertical' ? null : 1,\n borderColor: variant === 'vertical' ? null : 'secondaryBackground',\n zIndex: 1,\n '& > li': {\n borderBottom: variant === 'vertical' ? null : '1px solid',\n borderBottomColor:\n variant === 'vertical' ? null : 'secondaryBackground',\n ':last-child': {\n borderBottom: 'none',\n },\n },\n }}\n >\n {menu.items.map((item: any) => (\n <li\n sx={{\n alignItems: 'center',\n whiteSpace: 'nowrap',\n lineHeight: 'comfortable',\n paddingX: 5,\n '&:hover': {\n backgroundColor: 'secondary',\n a: {\n color: 'primary',\n },\n },\n }}\n key={`${path}${item.to}`}\n >\n {shouldShow(item, locale, countryCode) && <Link\n sx={{\n color:\n variant === 'vertical'\n ? 'navigationSecondaryText'\n : 'navigationSecondaryText',\n textDecoration: 'none',\n fontSize: 2,\n }}\n to={`${path}${item.to}`}\n >\n {t(item.label)}\n </Link>}\n </li>\n ))}\n </ul>\n </li>\n );\n};\n\nconst NavigationMenu: FC<NavigationMenuProps> = ({\n variant = 'horizontal',\n}) => {\n const { selectMenu } = useNavigation();\n const { menu } = selectMenu('main');\n const { t, locale } = useIntl();\n const { countryCode } = useContext(ViewerContext);\n\n return (\n <Box\n as=\"nav\"\n sx={{\n px: 6,\n }}\n >\n <Box\n as=\"ul\"\n sx={{\n display: 'flex',\n flexDirection: variant === 'vertical' ? 'column' : 'row',\n listStyle: 'none',\n paddingX: 0,\n paddingY: 3,\n m: 0,\n alignItems: variant === 'vertical' ? 'baseline' : 'center',\n }}\n >\n {menu.items.map((menuItem) =>\n menuItem.menu ? (\n <SubNavigation {...menuItem} variant={variant} key={menuItem.to} />\n ) : (\n <li\n key={menuItem.to}\n sx={{\n variant: 'navigation.listItem',\n display: 'flex',\n position: 'relative',\n listStyle: 'none',\n paddingX: 6,\n minHeight: '24px',\n lineHeight: 'comfortable',\n }}\n >\n {shouldShow(menuItem, locale, countryCode) && <Link\n sx={{\n color:\n variant === 'vertical'\n ? 'navigationSecondaryText'\n : alpha('navigationPrimaryText', 0.5),\n textDecoration: 'none',\n fontSize: 1,\n }}\n to={`/${menuItem.to}`}\n >\n {t(menuItem.label)}\n </Link>}\n </li>\n ),\n )}\n </Box>\n </Box>\n );\n};\n\nexport default NavigationMenu;\n","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_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}","export default 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}","import _slicedToArray from \"/codebuild/output/src372243558/src/tsc-betty/node_modules/@babel/runtime/helpers/esm/slicedToArray.js\";\nimport { useState, useEffect } from 'react';\nimport { useThemeUI } from '@theme-ui/core';\nimport { defaultBreakpoints } from '@theme-ui/css';\n\nvar useBreakpointIndex = function useBreakpointIndex() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var context = useThemeUI();\n var _options$defaultIndex = options.defaultIndex,\n defaultIndex = _options$defaultIndex === void 0 ? 0 : _options$defaultIndex;\n var breakpoints = context.theme && context.theme.breakpoints || defaultBreakpoints;\n\n if (typeof defaultIndex !== 'number') {\n throw new TypeError(\"Default breakpoint index should be a number. Got: \".concat(defaultIndex, \", \").concat(typeof defaultIndex));\n } else if (defaultIndex < 0 || defaultIndex > breakpoints.length - 1) {\n throw new RangeError(\"Default breakpoint index out of range. Theme has \".concat(breakpoints.length, \" breakpoints, got index \").concat(defaultIndex));\n }\n\n var _useState = useState(defaultIndex),\n _useState2 = _slicedToArray(_useState, 2),\n value = _useState2[0],\n setValue = _useState2[1];\n\n useEffect(function () {\n var getIndex = function getIndex() {\n return breakpoints.filter(function (bp) {\n return window.matchMedia(\"screen and (min-width: \".concat(bp, \")\")).matches;\n }).length;\n };\n\n var onResize = function onResize() {\n var newValue = getIndex();\n\n if (value !== newValue) {\n setValue(newValue);\n }\n };\n\n onResize();\n window.addEventListener('resize', onResize);\n return function () {\n return window.removeEventListener('resize', onResize);\n };\n }, [breakpoints, value]);\n return value;\n};\n\nfunction useResponsiveValue(values) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var _useThemeUI = useThemeUI(),\n theme = _useThemeUI.theme;\n\n var array = typeof values === 'function' ? values(theme) : values;\n var index = useBreakpointIndex(options);\n return array[index >= array.length ? array.length - 1 : index];\n}\n\nexport { useBreakpointIndex, useResponsiveValue };","/** @jsx jsx */\nimport { jsx, Box, Button, Flex } from 'theme-ui';\nimport {\n FC,\n useState,\n useRef,\n useEffect,\n} from 'react';\n\nimport { useResponsiveValue } from '@theme-ui/match-media';\n\nimport ArrowIcon from '../../images/icons/arrow-icon.svg';\nimport GreenArrowIcon from '../../images/icons/green-arrow.svg';\n\ninterface SelectorProps {\n options: Language[];\n onChange: (newLanguage: string) => void;\n value: string;\n label: string;\n fixed: boolean;\n}\n\nconst Selector: FC<SelectorProps> = ({\n options,\n onChange,\n value,\n label,\n fixed,\n}) => {\n const projectId = process.env.APPLICATION_ID;\n const [open, setOpen] = useState(false);\n const containerNode = useRef<HTMLDivElement>(null);\n\n const containerWidthHeader = useResponsiveValue(['90px', '90px', '128px']);\n const containerWidthFooter = useResponsiveValue(['100%', '100%', '128px']);\n const optionsTopDistance = useResponsiveValue(['50px', '50px', '4rem']);\n const optionsFontSize = useResponsiveValue(['14px', '14px', '18px']);\n const containerJustifyContentHeader = useResponsiveValue(['right', 'right', 'space-between']);\n\n const onChangeDropDown = (option: Language['lang_iso']) => () => {\n setOpen(false);\n onChange(option);\n };\n\n const handleClickOutside = (e: MouseEvent) => {\n if (containerNode?.current?.contains(e.target as Node)) {\n return;\n }\n setOpen(false);\n };\n\n useEffect(() => {\n if (open) {\n document.addEventListener('mousedown', handleClickOutside);\n } else {\n document.removeEventListener('mousedown', handleClickOutside);\n }\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [open]);\n\n function getFlagEmoji(countryCode: string) {\n const langCode = countryCode.toUpperCase() !== 'EN' ? countryCode : 'GB';\n const codePoints = langCode\n .toUpperCase()\n .split('')\n .map(char => 127397 + char.charCodeAt());\n return String.fromCodePoint(...codePoints);\n }\n\n return (\n <Flex\n ref={containerNode}\n sx={{\n alignItems: 'center',\n ml: ['auto', 'auto', 0],\n border: 'none',\n borderColor: 'none',\n borderRadius: 2,\n position: 'relative',\n minWidth: projectId === 'groot' ? ['0', '0', '0', '0', '95px'] : '0',\n width: fixed ? containerWidthFooter : containerWidthHeader\n }}\n >\n <Flex\n sx={{\n px: 6,\n py: 2,\n minWidth: '100%',\n justifyContent: fixed ? 'space-between' : containerJustifyContentHeader,\n cursor: 'pointer',\n border: '2px solid',\n borderColor: fixed ? 'primary' : 'navigationPrimaryText',\n borderRadius: 15,\n }}\n onClick={() => setOpen((val) => !val)}\n >\n <Box\n as=\"span\"\n sx={{\n color: fixed ? 'primary' : 'navigationPrimaryText',\n fontSize: projectId === 'groot' ? 1 : 2\n }}\n >\n { projectId === 'groot' ? `${label} ${getFlagEmoji(label)}` : label}\n </Box>\n <Button\n sx={{\n padding: 0,\n border: 'none',\n background: 'none',\n ml: 1,\n height: '24px',\n '&:focus': { outline: 0 },\n }}\n >\n {projectId === 'groot' ? <GreenArrowIcon\n sx={{\n transform: open ? 'rotate(180deg)' : 'none',\n }}\n /> : <ArrowIcon\n sx={{\n color: fixed ? 'primary' : 'navigationPrimaryText',\n transform: open ? 'rotate(180deg)' : 'none',\n }}\n />}\n </Button>\n </Flex>\n <Flex\n sx={{\n color: 'secondary',\n display: open ? 'flex' : 'none',\n position: 'absolute',\n flexDirection: 'column',\n top: fixed ? '3rem' : optionsTopDistance,\n left: 0,\n width: '100%',\n p: 0,\n m: 0,\n listStyle: 'none',\n backgroundColor: 'primaryBackground',\n borderRadius: fixed ? '0' : '4px',\n zIndex: 1,\n '& > li': {\n borderBottom: '1px solid',\n borderBottomColor: 'secondaryBackground',\n ':last-child': {\n borderBottom: 'none'\n }\n },\n }}\n >\n {options.map((option) => (\n <Button\n key={option.lang_id}\n onClick={onChangeDropDown(option.lang_iso)}\n type=\"button\"\n sx={{\n variant: 'navigation.listItem',\n display: 'flex',\n position: 'relative',\n listStyle: 'none',\n paddingX: 6,\n width: '100%',\n background: 'transparent',\n borderTop: fixed ? 1 : '0',\n borderColor: 'primary',\n borderStyle: 'solid',\n borderRadius: '0px',\n color:\n option.lang_iso === value\n ? 'secondary'\n : 'secondary',\n fontSize: optionsFontSize,\n fontWeight: option.lang_iso === value ? 600 : 400,\n cursor: 'pointer',\n '&:hover': {\n color: 'primary',\n backgroundColor: 'secondary',\n },\n ':first-of-type': {\n borderRadius: fixed ? '0px' : '4px 4px 0px 0px'\n },\n ':last-child': {\n borderRadius: fixed ? '0px' : '0px 0px 4px 4px'\n }\n }}\n >\n {projectId === 'groot' ? `${option.lang_name} ${getFlagEmoji(option.lang_iso)}` : `${option.lang_name}`}\n </Button>\n ))}\n </Flex>\n </Flex>\n );\n};\n\nexport default Selector;\n","import { __assign } from \"tslib\";\nimport { invariant } from '@formatjs/ecma402-abstract';\nimport { IntlMessageFormat } from 'intl-messageformat';\nimport { MissingTranslationError, MessageFormatError } from './error';\nimport { TYPE } from '@formatjs/icu-messageformat-parser';\n\nfunction setTimeZoneInOptions(opts, timeZone) {\n return Object.keys(opts).reduce(function (all, k) {\n all[k] = __assign({\n timeZone: timeZone\n }, opts[k]);\n return all;\n }, {});\n}\n\nfunction deepMergeOptions(opts1, opts2) {\n var keys = Object.keys(__assign(__assign({}, opts1), opts2));\n return keys.reduce(function (all, k) {\n all[k] = __assign(__assign({}, opts1[k] || {}), opts2[k] || {});\n return all;\n }, {});\n}\n\nfunction deepMergeFormatsAndSetTimeZone(f1, timeZone) {\n if (!timeZone) {\n return f1;\n }\n\n var mfFormats = IntlMessageFormat.formats;\n return __assign(__assign(__assign({}, mfFormats), f1), {\n date: deepMergeOptions(setTimeZoneInOptions(mfFormats.date, timeZone), setTimeZoneInOptions(f1.date || {}, timeZone)),\n time: deepMergeOptions(setTimeZoneInOptions(mfFormats.time, timeZone), setTimeZoneInOptions(f1.time || {}, timeZone))\n });\n}\n\nexport function formatMessage(_a, state, messageDescriptor, values, opts) {\n var locale = _a.locale,\n formats = _a.formats,\n messages = _a.messages,\n defaultLocale = _a.defaultLocale,\n defaultFormats = _a.defaultFormats,\n fallbackOnEmptyString = _a.fallbackOnEmptyString,\n onError = _a.onError,\n timeZone = _a.timeZone,\n defaultRichTextElements = _a.defaultRichTextElements;\n\n if (messageDescriptor === void 0) {\n messageDescriptor = {\n id: ''\n };\n }\n\n var msgId = messageDescriptor.id,\n defaultMessage = messageDescriptor.defaultMessage; // `id` is a required field of a Message Descriptor.\n\n invariant(!!msgId, \"[@formatjs/intl] An `id` must be provided to format a message. You can either:\\n1. Configure your build toolchain with [babel-plugin-formatjs](https://formatjs.io/docs/tooling/babel-plugin)\\nor [@formatjs/ts-transformer](https://formatjs.io/docs/tooling/ts-transformer) OR\\n2. Configure your `eslint` config to include [eslint-plugin-formatjs](https://formatjs.io/docs/tooling/linter#enforce-id)\\nto autofix this issue\");\n var id = String(msgId);\n var message = // In case messages is Object.create(null)\n // e.g import('foo.json') from webpack)\n // See https://github.com/formatjs/formatjs/issues/1914\n messages && Object.prototype.hasOwnProperty.call(messages, id) && messages[id]; // IMPORTANT: Hot path if `message` is AST with a single literal node\n\n if (Array.isArray(message) && message.length === 1 && message[0].type === TYPE.literal) {\n return message[0].value;\n } // IMPORTANT: Hot path straight lookup for performance\n\n\n if (!values && message && typeof message === 'string' && !defaultRichTextElements) {\n return message.replace(/'\\{(.*?)\\}'/gi, \"{$1}\");\n }\n\n values = __assign(__assign({}, defaultRichTextElements), values || {});\n formats = deepMergeFormatsAndSetTimeZone(formats, timeZone);\n defaultFormats = deepMergeFormatsAndSetTimeZone(defaultFormats, timeZone);\n\n if (!message) {\n if (fallbackOnEmptyString === false && message === '') {\n return message;\n }\n\n if (!defaultMessage || locale && locale.toLowerCase() !== defaultLocale.toLowerCase()) {\n // This prevents warnings from littering the console in development\n // when no `messages` are passed into the <IntlProvider> for the\n // default locale.\n onError(new MissingTranslationError(messageDescriptor, locale));\n }\n\n if (defaultMessage) {\n try {\n var formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats, opts);\n return formatter.format(values);\n } catch (e) {\n onError(new MessageFormatError(\"Error formatting default message for: \\\"\" + id + \"\\\", rendering default message verbatim\", locale, messageDescriptor, e));\n return typeof defaultMessage === 'string' ? defaultMessage : id;\n }\n }\n\n return id;\n } // We have the translated message\n\n\n try {\n var formatter = state.getMessageFormat(message, locale, formats, __assign({\n formatters: state\n }, opts || {}));\n return formatter.format(values);\n } catch (e) {\n onError(new MessageFormatError(\"Error formatting message: \\\"\" + id + \"\\\", using \" + (defaultMessage ? 'default message' : 'id') + \" as fallback.\", locale, messageDescriptor, e));\n }\n\n if (defaultMessage) {\n try {\n var formatter = state.getMessageFormat(defaultMessage, defaultLocale, defaultFormats, opts);\n return formatter.format(values);\n } catch (e) {\n onError(new MessageFormatError(\"Error formatting the default message for: \\\"\" + id + \"\\\", rendering message verbatim\", locale, messageDescriptor, e));\n }\n }\n\n if (typeof message === 'string') {\n return message;\n }\n\n if (typeof defaultMessage === 'string') {\n return defaultMessage;\n }\n\n return id;\n}","import { getNamedFormat, filterProps } from './utils';\nimport { IntlError, IntlErrorCode } from './error';\nvar NUMBER_FORMAT_OPTIONS = ['localeMatcher', 'style', 'currency', 'currencyDisplay', 'unit', 'unitDisplay', 'useGrouping', 'minimumIntegerDigits', 'minimumFractionDigits', 'maximumFractionDigits', 'minimumSignificantDigits', 'maximumSignificantDigits', // ES2020 NumberFormat\n'compactDisplay', 'currencyDisplay', 'currencySign', 'notation', 'signDisplay', 'unit', 'unitDisplay', 'numberingSystem'];\nexport function getFormatter(_a, getNumberFormat, options) {\n var locale = _a.locale,\n formats = _a.formats,\n onError = _a.onError;\n\n if (options === void 0) {\n options = {};\n }\n\n var format = options.format;\n var defaults = format && getNamedFormat(formats, 'number', format, onError) || {};\n var filteredOptions = filterProps(options, NUMBER_FORMAT_OPTIONS, defaults);\n return getNumberFormat(locale, filteredOptions);\n}\nexport function formatNumber(config, getNumberFormat, value, options) {\n if (options === void 0) {\n options = {};\n }\n\n try {\n return getFormatter(config, getNumberFormat, options).format(value);\n } catch (e) {\n config.onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting number.', e));\n }\n\n return String(value);\n}\nexport function formatNumberToParts(config, getNumberFormat, value, options) {\n if (options === void 0) {\n options = {};\n }\n\n try {\n return getFormatter(config, getNumberFormat, options).formatToParts(value);\n } catch (e) {\n config.onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting number.', e));\n }\n\n return [];\n}","import { getNamedFormat, filterProps } from './utils';\nimport { FormatError, ErrorCode } from 'intl-messageformat';\nimport { IntlFormatError } from './error';\nvar RELATIVE_TIME_FORMAT_OPTIONS = ['numeric', 'style'];\n\nfunction getFormatter(_a, getRelativeTimeFormat, options) {\n var locale = _a.locale,\n formats = _a.formats,\n onError = _a.onError;\n\n if (options === void 0) {\n options = {};\n }\n\n var format = options.format;\n var defaults = !!format && getNamedFormat(formats, 'relative', format, onError) || {};\n var filteredOptions = filterProps(options, RELATIVE_TIME_FORMAT_OPTIONS, defaults);\n return getRelativeTimeFormat(locale, filteredOptions);\n}\n\nexport function formatRelativeTime(config, getRelativeTimeFormat, value, unit, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (!unit) {\n unit = 'second';\n }\n\n var RelativeTimeFormat = Intl.RelativeTimeFormat;\n\n if (!RelativeTimeFormat) {\n config.onError(new FormatError(\"Intl.RelativeTimeFormat is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-relativetimeformat\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n\n try {\n return getFormatter(config, getRelativeTimeFormat, options).format(value, unit);\n } catch (e) {\n config.onError(new IntlFormatError('Error formatting relative time.', config.locale, e));\n }\n\n return String(value);\n}","import { __assign } from \"tslib\";\nimport { filterProps, getNamedFormat } from './utils';\nimport { IntlError, IntlErrorCode } from './error';\nvar DATE_TIME_FORMAT_OPTIONS = ['localeMatcher', 'formatMatcher', 'timeZone', 'hour12', 'weekday', 'era', 'year', 'month', 'day', 'hour', 'minute', 'second', 'timeZoneName', 'hourCycle', 'dateStyle', 'timeStyle', 'calendar', // 'dayPeriod',\n'numberingSystem'];\nexport function getFormatter(_a, type, getDateTimeFormat, options) {\n var locale = _a.locale,\n formats = _a.formats,\n onError = _a.onError,\n timeZone = _a.timeZone;\n\n if (options === void 0) {\n options = {};\n }\n\n var format = options.format;\n\n var defaults = __assign(__assign({}, timeZone && {\n timeZone: timeZone\n }), format && getNamedFormat(formats, type, format, onError));\n\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, // @ts-expect-error es2020 has a lot stuff from es2021 bleed in\n defaults);\n\n if (type === 'time' && !filteredOptions.hour && !filteredOptions.minute && !filteredOptions.second && !filteredOptions.timeStyle && !filteredOptions.dateStyle) {\n // Add default formatting options if hour, minute, or second isn't defined.\n filteredOptions = __assign(__assign({}, filteredOptions), {\n hour: 'numeric',\n minute: 'numeric'\n });\n }\n\n return getDateTimeFormat(locale, filteredOptions);\n}\nexport function formatDate(config, getDateTimeFormat) {\n var _a = [];\n\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n\n var value = _a[0],\n _b = _a[1],\n options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n\n try {\n return getFormatter(config, 'date', getDateTimeFormat, options).format(date);\n } catch (e) {\n config.onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting date.', e));\n }\n\n return String(date);\n}\nexport function formatTime(config, getDateTimeFormat) {\n var _a = [];\n\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n\n var value = _a[0],\n _b = _a[1],\n options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n\n try {\n return getFormatter(config, 'time', getDateTimeFormat, options).format(date);\n } catch (e) {\n config.onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting time.', e));\n }\n\n return String(date);\n}\nexport function formatDateTimeRange(config, getDateTimeFormat) {\n var _a = [];\n\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n\n var from = _a[0],\n to = _a[1],\n _b = _a[2],\n options = _b === void 0 ? {} : _b;\n var timeZone = config.timeZone,\n locale = config.locale,\n onError = config.onError;\n var filteredOptions = filterProps(options, DATE_TIME_FORMAT_OPTIONS, timeZone ? {\n timeZone: timeZone\n } : {});\n\n try {\n return getDateTimeFormat(locale, filteredOptions).formatRange(from, to);\n } catch (e) {\n onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting date time range.', e));\n }\n\n return String(from);\n}\nexport function formatDateToParts(config, getDateTimeFormat) {\n var _a = [];\n\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n\n var value = _a[0],\n _b = _a[1],\n options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n\n try {\n return getFormatter(config, 'date', getDateTimeFormat, options).formatToParts(date);\n } catch (e) {\n config.onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting date.', e));\n }\n\n return [];\n}\nexport function formatTimeToParts(config, getDateTimeFormat) {\n var _a = [];\n\n for (var _i = 2; _i < arguments.length; _i++) {\n _a[_i - 2] = arguments[_i];\n }\n\n var value = _a[0],\n _b = _a[1],\n options = _b === void 0 ? {} : _b;\n var date = typeof value === 'string' ? new Date(value || 0) : value;\n\n try {\n return getFormatter(config, 'time', getDateTimeFormat, options).formatToParts(date);\n } catch (e) {\n config.onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting time.', e));\n }\n\n return [];\n}","import { filterProps } from './utils';\nimport { IntlFormatError } from './error';\nimport { ErrorCode, FormatError } from 'intl-messageformat';\nvar PLURAL_FORMAT_OPTIONS = ['localeMatcher', 'type'];\nexport function formatPlural(_a, getPluralRules, value, options) {\n var locale = _a.locale,\n onError = _a.onError;\n\n if (options === void 0) {\n options = {};\n }\n\n if (!Intl.PluralRules) {\n onError(new FormatError(\"Intl.PluralRules is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-pluralrules\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n\n var filteredOptions = filterProps(options, PLURAL_FORMAT_OPTIONS);\n\n try {\n return getPluralRules(locale, filteredOptions).select(value);\n } catch (e) {\n onError(new IntlFormatError('Error formatting plural.', locale, e));\n }\n\n return 'other';\n}","import { __assign } from \"tslib\";\nimport { filterProps } from './utils';\nimport { FormatError, ErrorCode } from 'intl-messageformat';\nimport { IntlError, IntlErrorCode } from './error';\nvar LIST_FORMAT_OPTIONS = ['localeMatcher', 'type', 'style'];\nvar now = Date.now();\n\nfunction generateToken(i) {\n return now + \"_\" + i + \"_\" + now;\n}\n\nexport function formatList(opts, getListFormat, values, options) {\n if (options === void 0) {\n options = {};\n }\n\n var results = formatListToParts(opts, getListFormat, values, options).reduce(function (all, el) {\n var val = el.value;\n\n if (typeof val !== 'string') {\n all.push(val);\n } else if (typeof all[all.length - 1] === 'string') {\n all[all.length - 1] += val;\n } else {\n all.push(val);\n }\n\n return all;\n }, []);\n return results.length === 1 ? results[0] : results;\n}\nexport function formatListToParts(_a, getListFormat, values, options) {\n var locale = _a.locale,\n onError = _a.onError;\n\n if (options === void 0) {\n options = {};\n }\n\n var ListFormat = Intl.ListFormat;\n\n if (!ListFormat) {\n onError(new FormatError(\"Intl.ListFormat is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-listformat\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n\n var filteredOptions = filterProps(options, LIST_FORMAT_OPTIONS);\n\n try {\n var richValues_1 = {};\n var serializedValues = values.map(function (v, i) {\n if (typeof v === 'object') {\n var id = generateToken(i);\n richValues_1[id] = v;\n return id;\n }\n\n return String(v);\n });\n return getListFormat(locale, filteredOptions).formatToParts(serializedValues).map(function (part) {\n return part.type === 'literal' ? part : __assign(__assign({}, part), {\n value: richValues_1[part.value] || part.value\n });\n });\n } catch (e) {\n onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting list.', e));\n } // @ts-ignore\n\n\n return values;\n}","import { filterProps } from './utils';\nimport { FormatError, ErrorCode } from 'intl-messageformat';\nimport { IntlErrorCode, IntlError } from './error';\nvar DISPLAY_NAMES_OPTONS = ['localeMatcher', 'style', 'type', 'fallback'];\nexport function formatDisplayName(_a, getDisplayNames, value, options) {\n var locale = _a.locale,\n onError = _a.onError;\n var DisplayNames = Intl.DisplayNames;\n\n if (!DisplayNames) {\n onError(new FormatError(\"Intl.DisplayNames is not available in this environment.\\nTry polyfilling it using \\\"@formatjs/intl-displaynames\\\"\\n\", ErrorCode.MISSING_INTL_API));\n }\n\n var filteredOptions = filterProps(options, DISPLAY_NAMES_OPTONS);\n\n try {\n return getDisplayNames(locale, filteredOptions).of(value);\n } catch (e) {\n onError(new IntlError(IntlErrorCode.FORMAT_ERROR, 'Error formatting display name.', e));\n }\n}","import { __assign } from \"tslib\";\nimport { createFormatters, DEFAULT_INTL_CONFIG } from './utils';\nimport { InvalidConfigError, MissingDataError } from './error';\nimport { formatNumber, formatNumberToParts } from './number';\nimport { formatRelativeTime } from './relativeTime';\nimport { formatDate, formatDateToParts, formatTime, formatTimeToParts, formatDateTimeRange } from './dateTime';\nimport { formatPlural } from './plural';\nimport { formatMessage } from './message';\nimport { formatList, formatListToParts } from './list';\nimport { formatDisplayName } from './displayName';\n\nfunction messagesContainString(messages) {\n var firstMessage = messages ? messages[Object.keys(messages)[0]] : undefined;\n return typeof firstMessage === 'string';\n}\n\nfunction verifyConfigMessages(config) {\n if (config.defaultRichTextElements && messagesContainString(config.messages || {})) {\n console.warn(\"[@formatjs/intl] \\\"defaultRichTextElements\\\" was specified but \\\"message\\\" was not pre-compiled. \\nPlease consider using \\\"@formatjs/cli\\\" to pre-compile your messages for performance.\\nFor more details see https://formatjs.io/docs/getting-started/message-distribution\");\n }\n}\n/**\n * Create intl object\n * @param config intl config\n * @param cache cache for formatter instances to prevent memory leak\n */\n\n\nexport function createIntl(config, cache) {\n var formatters = createFormatters(cache);\n\n var resolvedConfig = __assign(__assign({}, DEFAULT_INTL_CONFIG), config);\n\n var locale = resolvedConfig.locale,\n defaultLocale = resolvedConfig.defaultLocale,\n onError = resolvedConfig.onError;\n\n if (!locale) {\n if (onError) {\n onError(new InvalidConfigError(\"\\\"locale\\\" was not configured, using \\\"\" + defaultLocale + \"\\\" as fallback. See https://formatjs.io/docs/react-intl/api#intlshape for more details\"));\n } // Since there's no registered locale data for `locale`, this will\n // fallback to the `defaultLocale` to make sure things can render.\n // The `messages` are overridden to the `defaultProps` empty object\n // to maintain referential equality across re-renders. It's assumed\n // each <FormattedMessage> contains a `defaultMessage` prop.\n\n\n resolvedConfig.locale = resolvedConfig.defaultLocale || 'en';\n } else if (!Intl.NumberFormat.supportedLocalesOf(locale).length && onError) {\n onError(new MissingDataError(\"Missing locale data for locale: \\\"\" + locale + \"\\\" in Intl.NumberFormat. Using default locale: \\\"\" + defaultLocale + \"\\\" as fallback. See https://formatjs.io/docs/react-intl#runtime-requirements for more details\"));\n } else if (!Intl.DateTimeFormat.supportedLocalesOf(locale).length && onError) {\n onError(new MissingDataError(\"Missing locale data for locale: \\\"\" + locale + \"\\\" in Intl.DateTimeFormat. Using default locale: \\\"\" + defaultLocale + \"\\\" as fallback. See https://formatjs.io/docs/react-intl#runtime-requirements for more details\"));\n }\n\n verifyConfigMessages(resolvedConfig);\n return __assign(__assign({}, resolvedConfig), {\n formatters: formatters,\n formatNumber: formatNumber.bind(null, resolvedConfig, formatters.getNumberFormat),\n formatNumberToParts: formatNumberToParts.bind(null, resolvedConfig, formatters.getNumberFormat),\n formatRelativeTime: formatRelativeTime.bind(null, resolvedConfig, formatters.getRelativeTimeFormat),\n formatDate: formatDate.bind(null, resolvedConfig, formatters.getDateTimeFormat),\n formatDateToParts: formatDateToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat),\n formatTime: formatTime.bind(null, resolvedConfig, formatters.getDateTimeFormat),\n formatDateTimeRange: formatDateTimeRange.bind(null, resolvedConfig, formatters.getDateTimeFormat),\n formatTimeToParts: formatTimeToParts.bind(null, resolvedConfig, formatters.getDateTimeFormat),\n formatPlural: formatPlural.bind(null, resolvedConfig, formatters.getPluralRules),\n formatMessage: formatMessage.bind(null, resolvedConfig, formatters),\n formatList: formatList.bind(null, resolvedConfig, formatters.getListFormat),\n formatListToParts: formatListToParts.bind(null, resolvedConfig, formatters.getListFormat),\n formatDisplayName: formatDisplayName.bind(null, resolvedConfig, formatters.getDisplayNames)\n });\n}","/*\n * Copyright 2015, Yahoo Inc.\n * Copyrights licensed under the New BSD License.\n * See the accompanying LICENSE file for terms.\n */\nimport { __assign, __extends, __rest, __spreadArray } from \"tslib\";\nimport * as React from 'react';\nimport { Provider } from './injectIntl';\nimport { DEFAULT_INTL_CONFIG, invariantIntlContext, assignUniqueKeysToParts, shallowEqual } from '../utils';\nimport { formatMessage as coreFormatMessage, createIntl as coreCreateIntl, createIntlCache } from '@formatjs/intl';\nimport { isFormatXMLElementFn } from 'intl-messageformat';\n\nfunction processIntlConfig(config) {\n return {\n locale: config.locale,\n timeZone: config.timeZone,\n fallbackOnEmptyString: config.fallbackOnEmptyString,\n formats: config.formats,\n textComponent: config.textComponent,\n messages: config.messages,\n defaultLocale: config.defaultLocale,\n defaultFormats: config.defaultFormats,\n onError: config.onError,\n wrapRichTextChunksInFragment: config.wrapRichTextChunksInFragment,\n defaultRichTextElements: config.defaultRichTextElements\n };\n}\n\nfunction assignUniqueKeysToFormatXMLElementFnArgument(values) {\n if (!values) {\n return values;\n }\n\n return Object.keys(values).reduce(function (acc, k) {\n var v = values[k];\n acc[k] = isFormatXMLElementFn(v) ? assignUniqueKeysToParts(v) : v;\n return acc;\n }, {});\n}\n\nvar formatMessage = function formatMessage(config, formatters, descriptor, rawValues) {\n var rest = [];\n\n for (var _i = 4; _i < arguments.length; _i++) {\n rest[_i - 4] = arguments[_i];\n }\n\n var values = assignUniqueKeysToFormatXMLElementFnArgument(rawValues);\n var chunks = coreFormatMessage.apply(void 0, __spreadArray([config, formatters, descriptor, values], rest, false));\n\n if (Array.isArray(chunks)) {\n return React.Children.toArray(chunks);\n }\n\n return chunks;\n};\n/**\n * Create intl object\n * @param config intl config\n * @param cache cache for formatter instances to prevent memory leak\n */\n\n\nexport var createIntl = function createIntl(_a, cache) {\n var rawDefaultRichTextElements = _a.defaultRichTextElements,\n config = __rest(_a, [\"defaultRichTextElements\"]);\n\n var defaultRichTextElements = assignUniqueKeysToFormatXMLElementFnArgument(rawDefaultRichTextElements);\n var coreIntl = coreCreateIntl(__assign(__assign(__assign({}, DEFAULT_INTL_CONFIG), config), {\n defaultRichTextElements: defaultRichTextElements\n }), cache);\n return __assign(__assign({}, coreIntl), {\n formatMessage: formatMessage.bind(null, {\n locale: coreIntl.locale,\n timeZone: coreIntl.timeZone,\n formats: coreIntl.formats,\n defaultLocale: coreIntl.defaultLocale,\n defaultFormats: coreIntl.defaultFormats,\n messages: coreIntl.messages,\n onError: coreIntl.onError,\n defaultRichTextElements: defaultRichTextElements\n }, coreIntl.formatters)\n });\n};\n\nvar IntlProvider =\n/** @class */\nfunction (_super) {\n __extends(IntlProvider, _super);\n\n function IntlProvider() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n\n _this.cache = createIntlCache();\n _this.state = {\n cache: _this.cache,\n intl: createIntl(processIntlConfig(_this.props), _this.cache),\n prevConfig: processIntlConfig(_this.props)\n };\n return _this;\n }\n\n IntlProvider.getDerivedStateFromProps = function (props, _a) {\n var prevConfig = _a.prevConfig,\n cache = _a.cache;\n var config = processIntlConfig(props);\n\n if (!shallowEqual(prevConfig, config)) {\n return {\n intl: createIntl(config, cache),\n prevConfig: config\n };\n }\n\n return null;\n };\n\n IntlProvider.prototype.render = function () {\n invariantIntlContext(this.state.intl);\n return React.createElement(Provider, {\n value: this.state.intl\n }, this.props.children);\n };\n\n IntlProvider.displayName = 'IntlProvider';\n IntlProvider.defaultProps = DEFAULT_INTL_CONFIG;\n return IntlProvider;\n}(React.PureComponent);\n\nexport default IntlProvider;","import React, { useContext, useEffect, useState } from 'react';\n// import { useStaticQuery, graphql } from 'gatsby';\nimport { IntlProvider } from 'react-intl';\n\nimport EN from 'assets/locales/en.json';\nimport ES from 'assets/locales/es.json';\nimport IT from 'assets/locales/it.json';\nimport PT from 'assets/locales/pt.json';\n\ninterface I18nContext {\n locale: string;\n defaultLocale: string;\n setLocale: (newLocale: string) => void;\n}\n\nconst I18nContext = React.createContext<I18nContext>({\n locale: 'es',\n defaultLocale: 'es',\n setLocale: () => {},\n});\n\ninterface I18nContextProviderProps {\n locale: string;\n defaultLocale: string;\n}\n\nexport const I18nContextProvider: React.FC<I18nContextProviderProps> = ({\n children,\n locale: incomingLocale,\n defaultLocale,\n}) => {\n const [locale, setLocale] = useState(incomingLocale);\n const [messages, setMessages] = useState<any>({});\n\n useEffect(() => {\n let isMounted = true;\n\n if (!isMounted) return;\n\n switch (locale) {\n case 'en':\n setMessages(EN);\n break;\n\n case 'es':\n setMessages(ES);\n break;\n\n case 'it':\n setMessages(IT);\n break;\n\n case 'pt':\n setMessages(PT);\n break;\n\n default:\n setMessages(ES);\n break;\n }\n\n return () => {\n isMounted = false;\n };\n }, [locale]);\n\n return (\n <I18nContext.Provider\n value={{\n locale,\n defaultLocale,\n setLocale: (newLocale) => {\n if (newLocale !== locale) {\n setLocale(newLocale);\n }\n },\n }}\n >\n <IntlProvider\n locale={locale}\n defaultLocale={defaultLocale}\n messages={messages}\n >\n {children}\n </IntlProvider>\n </I18nContext.Provider>\n );\n};\n\nexport const useI18n = () => useContext(I18nContext);\n","import React, { FC } from 'react';\nimport { navigate, useStaticQuery, graphql } from 'gatsby';\n\nimport Selector from '../selector';\nimport { useI18n } from 'context/I18nContext';\n\nconst query = graphql`\n query LanguageSelectorQuery {\n allSitePage {\n nodes {\n path\n pageContext \n }\n }\n allLokaliseLanguageList {\n nodes {\n lang_name\n lang_iso\n lang_id\n }\n }\n }\n`;\n\ninterface LanguageSelectorProps {\n fixed?: boolean;\n}\nconst LanguageSelector: FC<LanguageSelectorProps> = ({ fixed = false }) => {\n const { locale, defaultLocale, setLocale } = useI18n();\n\n const data: LanguageSelectorData = useStaticQuery(query);\n\n const { allLokaliseLanguageList } = data;\n\n const onLanguageChange = (newLanguage: string) => {\n if (newLanguage !== locale) {\n let newPath: string;\n const currentPath: Array<string> = window.location.pathname.split('/');\n // If it's comming back to the default locale\n if (newLanguage === defaultLocale) {\n currentPath.splice(1, 1);\n newPath = `${currentPath.join('/')}`;\n } else {\n // If it's going to another language from default language\n if (locale === defaultLocale) {\n newPath = `/${newLanguage}${window.location.pathname}`;\n } else {\n // It's comming from language a to b and neither of them are the default\n currentPath.splice(1, 1, newLanguage); \n newPath = `${currentPath.join('/')}`;\n }\n }\n navigate(newPath);\n }\n }\n\n return (\n <Selector\n options={allLokaliseLanguageList?.nodes}\n onChange={onLanguageChange}\n value={locale ? locale : defaultLocale}\n label={locale ? locale?.toUpperCase() : defaultLocale.toUpperCase()}\n fixed={fixed}\n />\n );\n};\n\nexport default LanguageSelector;\n","/** @jsx jsx */\nimport { Container, jsx } from 'theme-ui';\nimport { FC } from 'react';\n\nimport { useIntl } from '../../context/IntlContext';\n\nimport { Box, Button, Flex } from '..';\nimport Link from '../Link';\nimport Logo from '../Logo';\n\nimport MobileMenu from './MobileMenu';\nimport NavigationMenu from './NavigationMenu';\nimport LanguageSelector from '../LanguageSelector';\nimport { color } from 'src/theme/types'\n\nexport const Header: FC = () => {\n const { t } = useIntl();\n\n return (\n <Box\n as=\"header\"\n bg=\"navigationPrimaryBackground\"\n sx={{\n paddingY: 2,\n position: 'sticky',\n top: 0,\n zIndex: 9,\n }}\n >\n <Container>\n <Flex>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n >\n <Link to=\"/\">\n <Logo\n sx={{\n color: 'navigationPrimaryText',\n }}\n position='header'\n />\n </Link>\n </Box>\n <Box\n sx={{\n display: ['none', 'none', 'flex'],\n justifyContent: 'space-between',\n }}\n >\n <NavigationMenu />\n </Box>\n <Box\n sx={{\n display: ['none', 'none', 'flex'],\n alignItems: 'center',\n justifyContent: 'flex-end',\n ml: 'auto',\n }}\n >\n <Flex sx={{ display: 'none' }}>\n <Link\n sx={{\n textDecoration: 'none',\n color: 'primary',\n appearance: 'none',\n textAlign: 'center',\n px: 6,\n py: 3,\n fontWeight: 600,\n }}\n to={t('global.buttons.login.link')}\n >\n {t('global.buttons.login')}\n </Link>\n <Button\n as={Link}\n variant=\"primary\"\n to={t('global.buttons.signup.link')}\n >\n {t('global.buttons.signup')}\n </Button>\n </Flex>\n </Box>\n <LanguageSelector />\n <MobileMenu>\n {/* <Flex>\n <Link variant=\"button\" to=\"https://app.ibanwallet.com\">\n {t('global.buttons.login')}\n </Link>\n <Button\n as={Link}\n variant=\"primary\"\n to=\"https://app.ibanwallet.com\"\n >\n {t('global.buttons.signup')}\n </Button>\n </Flex> */}\n <NavigationMenu variant=\"vertical\" />\n </MobileMenu>\n </Flex>\n </Container>\n </Box>\n );\n};\n","/** @jsx jsx */\nimport { Button, Container, Box, Flex, Divider, jsx, Text } from 'theme-ui';\nimport { FC, useContext } from 'react';\n\nimport { NavMenu, MenuItem } from 'gatsby-theme-jane/Navigation';\nimport { useNavigation } from '../../context/NavigationContext';\nimport { useIntl } from '../../context/IntlContext';\nimport ViewerContext from '../../context/ViewerContext';\n\nimport Link from '../Link';\nimport Logo from '../Logo';\nimport LanguageSelector from '../LanguageSelector';\n\ninterface MenuProps {\n item: MenuItem | NavMenu;\n before?: JSX.Element;\n after?: JSX.Element;\n}\n\nconst Menu: FC<MenuProps> = ({ item, before, after, ...props }) => {\n const { t, locale } = useIntl();\n const { countryCode } = useContext(ViewerContext);\n const { menu } = item;\n const union = menu.type === 'tab' ? '#' : '/';\n const path = item?.to ? `/${item.to}` : '';\n\n const shouldShow = (\n item: MenuItem,\n locale: string,\n countryCode: string,\n ): boolean => {\n if (!!item.hidden) return false;\n if (item.onlyCountries && item.onlyCountries?.length > 0) {\n if (item.onlyCountries?.includes(countryCode)) return true;\n return false;\n }\n\n if (!item.countryRestriction && !item.localeRestriction) return true;\n\n if (item.countryRestriction?.includes(countryCode)) return false;\n if (item.localeRestriction?.includes(locale)) return false;\n\n return true;\n };\n\n return (\n <ul {...props}>\n {before}\n {menu.items.map((i: MenuItem) => {\n if (shouldShow(i, locale, countryCode))\n return (\n <li key={i.label}>\n {i.menu ? (\n t(i.label)\n ) : (\n <Link key={i.label} to={i.external || `${path}${union}${i.to}`}>\n {t(i.label)}\n </Link>\n )}\n {i.menu && <Menu item={i} />}\n </li>\n );\n })}\n {after}\n </ul>\n );\n};\n\nexport const Footer: FC = ({ children }) => {\n const { t } = useIntl();\n const { selectMenu } = useNavigation();\n const menu = selectMenu('footer');\n\n return (\n <Box\n as=\"footer\"\n bg=\"secondary\"\n sx={{\n borderTop: '1px solid',\n borderColor: 'senary',\n paddingY: 14,\n }}\n >\n <Container>\n <Flex>\n <Box\n as=\"nav\"\n sx={{\n width: '100%',\n }}\n >\n <Menu\n item={menu}\n before={\n <li>\n <Link to=\"/\">\n <Logo\n sx={{\n maxWidth: '8rem',\n color: 'primary',\n marginBottom: 7,\n }}\n position='footer'\n />\n </Link>\n \n <LanguageSelector fixed/>\n \n </li>\n }\n sx={{\n display: 'flex',\n flexDirection: ['column', 'column', 'row'],\n justifyContent: 'space-between',\n listStyle: 'none',\n p: 0,\n m: 0,\n '& > li': {\n p: 0,\n mr: 14,\n mb: 12,\n color: 'primary',\n },\n '& > li > a': {\n color: 'secondary',\n },\n '& > li > ul > li': {\n py: 2,\n '&:hover': {\n a: {\n color: '9599a6',\n },\n },\n },\n '& > li > ul > li > a': {\n color: 'primary',\n textAlign: 'right',\n },\n '& ul': {\n listStyle: 'none',\n m: 0,\n py: 6,\n px: 0,\n \n \n },\n }}\n />\n </Box>\n </Flex>\n <Divider />\n <Flex\n sx={{\n flexDirection: ['column', 'column', 'row'],\n bg: 'secondary',\n py: 6,\n }}\n >\n <Box>\n <Flex>\n <Link to=\"/privacy-policy\" sx={{ color: 'primary', mr: 2 }}>\n {t('footer.privacy_policy')}\n </Link>\n <Link to=\"/terms-and-conditions\" sx={{ color: 'primary' }}>\n {t('footer.terms')}\n </Link>\n </Flex>\n <Text variant=\"smallReferences\" sx={{ color: 'primary' }}>\n {t('footer.trademark')}\n </Text>\n </Box>\n <Box\n sx={{\n // display: ['flex', 'flex', 'none'],\n display: 'none',\n flexDirection: ['row', 'row', 'initial'],\n py: [6, 6, 0],\n justifyContent: 'center',\n }}\n >\n <Button\n as={Link}\n variant=\"dark\"\n mr={2}\n to={t('homepage.home.cta.mobile.ios.link')}\n >\n <svg\n sx={{ mr: 3 }}\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"24px\"\n height=\"24px\"\n preserveAspectRatio=\"xMidYMid meet\"\n viewBox=\"0 0 24 24\"\n >\n <path\n fill=\"currentColor\"\n d=\"M3 17a1 1 0 0 1 0-2h10.5c1 0 2 2 1.5 2H3zm14 0a1 1 0 0 1 0-2h4a1 1 0 0 1 0 2h-4zM12.633 3.501a1 1 0 0 1 1.734.998L7.46 16.495a1 1 0 0 1-1.734-.997L12.633 3.5zM4 18.5c.5-1 3.5-2 2.5-.28A852.88 852.88 0 0 1 4.867 21a1 1 0 0 1-1.734-.998L4 18.5zM9.133 4.499a1 1 0 1 1 1.734-.998L12.61 6.53a1 1 0 1 1-1.733.998L9.133 4.499zM13 11.5c-.898-1.5 0-4.5.716-3.004L20.366 20a1 1 0 0 1-1.733.998L13 11.5z\"\n />\n <rect\n x=\"0\"\n y=\"0\"\n width=\"24\"\n height=\"24\"\n fill=\"rgba(0, 0, 0, 0)\"\n />\n </svg>\n {t('homepage.home.cta.mobile.ios')}\n </Button>\n <Button\n as={Link}\n to={t('homepage.home.cta.mobile.android.link')}\n variant=\"dark\"\n >\n <svg\n sx={{ mr: 3 }}\n aria-hidden=\"true\"\n focusable=\"false\"\n width=\"24px\"\n height=\"24px\"\n preserveAspectRatio=\"xMidYMid meet\"\n viewBox=\"0 0 24 24\"\n >\n <path\n d=\"M12.954 11.616l2.957-2.957L6.36 3.291c-.633-.342-1.226-.39-1.746-.016l8.34 8.341zm3.461 3.462l3.074-1.729c.6-.336.929-.812.929-1.34c0-.527-.329-1.004-.928-1.34l-2.783-1.563l-3.133 3.132l2.841 2.84zM4.1 4.002c-.064.197-.1.417-.1.658v14.705c0 .381.084.709.236.97l8.097-8.098L4.1 4.002zm8.854 8.855L4.902 20.91c.154.059.32.09.495.09c.312 0 .637-.092.968-.276l9.255-5.197l-2.666-2.67z\"\n fill=\"currentColor\"\n />\n <rect\n x=\"0\"\n y=\"0\"\n width=\"24\"\n height=\"24\"\n fill=\"rgba(0, 0, 0, 0)\"\n />\n </svg>\n {t('homepage.home.cta.mobile.android')}\n </Button>\n </Box>\n </Flex>\n </Container>\n </Box>\n );\n};\n\nexport default Footer;\n","import Cookies from 'js-cookie';\nexport { default as Cookies } from 'js-cookie';\nimport React, { Component } from 'react';\n/**\r\n * A function to wrap elements with a \"wrapper\" on a condition\r\n * @param {object} wrappingOptions\r\n * condition == boolean condition, when to wrap\r\n * wrapper == style to wrap. e.g <div>{children}</div>\r\n * children == react passes whatever is between tags as children. Don't supply this yourself.\r\n */\n\nvar ConditionalWrapper = function ConditionalWrapper(_ref) {\n var condition = _ref.condition,\n wrapper = _ref.wrapper,\n children = _ref.children;\n return condition ? wrapper(children) : children;\n};\n\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : 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 return _extends.apply(this, arguments);\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n\n _setPrototypeOf(subClass, superClass);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar POSITION_OPTIONS = {\n TOP: \"top\",\n BOTTOM: \"bottom\",\n NONE: \"none\"\n};\nvar SAME_SITE_OPTIONS;\n\n(function (SAME_SITE_OPTIONS) {\n SAME_SITE_OPTIONS[\"STRICT\"] = \"strict\";\n SAME_SITE_OPTIONS[\"LAX\"] = \"lax\";\n SAME_SITE_OPTIONS[\"NONE\"] = \"none\";\n})(SAME_SITE_OPTIONS || (SAME_SITE_OPTIONS = {}));\n\nvar VISIBILITY_OPTIONS = {\n HIDDEN: \"hidden\",\n SHOW: \"show\",\n BY_COOKIE_VALUE: \"byCookieValue\"\n};\nvar defaultCookieConsentName = \"CookieConsent\";\nvar _excluded = [\"children\"];\n\nvar DefaultButtonComponent = function DefaultButtonComponent(_ref) {\n var children = _ref.children,\n props = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n return React.createElement(\"button\", Object.assign({}, props), children);\n};\n\nvar defaultCookieConsentProps = {\n disableStyles: false,\n hideOnAccept: true,\n hideOnDecline: true,\n location: POSITION_OPTIONS.BOTTOM,\n visible: VISIBILITY_OPTIONS.BY_COOKIE_VALUE,\n onAccept: function onAccept(_acceptedByScrolling) {},\n onDecline: function onDecline() {},\n cookieName: defaultCookieConsentName,\n cookieValue: \"true\",\n declineCookieValue: \"false\",\n setDeclineCookie: true,\n buttonText: \"I understand\",\n declineButtonText: \"I decline\",\n debug: false,\n expires: 365,\n containerClasses: \"CookieConsent\",\n contentClasses: \"\",\n buttonClasses: \"\",\n buttonWrapperClasses: \"\",\n declineButtonClasses: \"\",\n buttonId: \"rcc-confirm-button\",\n declineButtonId: \"rcc-decline-button\",\n extraCookieOptions: {},\n disableButtonStyles: false,\n enableDeclineButton: false,\n flipButtons: false,\n sameSite: SAME_SITE_OPTIONS.LAX,\n ButtonComponent: DefaultButtonComponent,\n overlay: false,\n overlayClasses: \"\",\n onOverlayClick: function onOverlayClick() {},\n acceptOnOverlayClick: false,\n ariaAcceptLabel: \"Accept cookies\",\n ariaDeclineLabel: \"Decline cookies\",\n acceptOnScroll: false,\n acceptOnScrollPercentage: 25,\n customContentAttributes: {},\n customContainerAttributes: {},\n customButtonProps: {},\n customDeclineButtonProps: {},\n customButtonWrapperAttributes: {},\n style: {},\n buttonStyle: {},\n declineButtonStyle: {},\n contentStyle: {},\n overlayStyle: {}\n};\nvar defaultState = {\n visible: false,\n style: {\n alignItems: \"baseline\",\n background: \"#353535\",\n color: \"white\",\n display: \"flex\",\n flexWrap: \"wrap\",\n justifyContent: \"space-between\",\n left: \"0\",\n position: \"fixed\",\n width: \"100%\",\n zIndex: \"999\"\n },\n buttonStyle: {\n background: \"#ffd42d\",\n border: \"0\",\n borderRadius: \"0px\",\n boxShadow: \"none\",\n color: \"black\",\n cursor: \"pointer\",\n flex: \"0 0 auto\",\n padding: \"5px 10px\",\n margin: \"15px\"\n },\n declineButtonStyle: {\n background: \"#c12a2a\",\n border: \"0\",\n borderRadius: \"0px\",\n boxShadow: \"none\",\n color: \"#e5e5e5\",\n cursor: \"pointer\",\n flex: \"0 0 auto\",\n padding: \"5px 10px\",\n margin: \"15px\"\n },\n contentStyle: {\n flex: \"1 0 300px\",\n margin: \"15px\"\n },\n overlayStyle: {\n position: \"fixed\",\n left: 0,\n top: 0,\n width: \"100%\",\n height: \"100%\",\n zIndex: \"999\",\n backgroundColor: \"rgba(0,0,0,0.3)\"\n }\n};\n/**\r\n * Returns the value of the consent cookie\r\n * Retrieves the regular value first and if not found the legacy one according\r\n * to: https://web.dev/samesite-cookie-recipes/#handling-incompatible-clients\r\n * @param {*} name optional name of the cookie\r\n */\n\nvar getCookieConsentValue = function getCookieConsentValue(name) {\n if (name === void 0) {\n name = defaultCookieConsentName;\n }\n\n var cookieValue = Cookies.get(name); // if the cookieValue is undefined check for the legacy cookie\n\n if (cookieValue === undefined) {\n return Cookies.get(getLegacyCookieName(name));\n }\n\n return cookieValue;\n};\n/**\r\n * Reset the consent cookie\r\n * Remove the cookie on browser in order to allow user to change their consent\r\n * @param {*} name optional name of the cookie\r\n */\n\n\nvar resetCookieConsentValue = function resetCookieConsentValue(name) {\n if (name === void 0) {\n name = defaultCookieConsentName;\n }\n\n Cookies.remove(name);\n};\n/**\r\n * Get the legacy cookie name by the regular cookie name\r\n * @param {string} name of cookie to get\r\n */\n\n\nvar getLegacyCookieName = function getLegacyCookieName(name) {\n return name + \"-legacy\";\n};\n\nvar CookieConsent = /*#__PURE__*/function (_Component) {\n _inheritsLoose(CookieConsent, _Component);\n\n function CookieConsent() {\n var _this;\n\n _this = _Component.apply(this, arguments) || this;\n _this.state = defaultState;\n /**\r\n * checks whether scroll has exceeded set amount and fire accept if so.\r\n */\n\n _this.handleScroll = function () {\n var acceptOnScrollPercentage = _this.props.acceptOnScrollPercentage; // (top / height) - height * 100\n\n var rootNode = document.documentElement;\n var body = document.body;\n var top = \"scrollTop\";\n var height = \"scrollHeight\";\n var percentage = (rootNode[top] || body[top]) / ((rootNode[height] || body[height]) - rootNode.clientHeight) * 100;\n\n if (percentage > acceptOnScrollPercentage) {\n _this.accept(true);\n }\n };\n\n _this.removeScrollListener = function () {\n var acceptOnScroll = _this.props.acceptOnScroll;\n\n if (acceptOnScroll) {\n window.removeEventListener(\"scroll\", _this.handleScroll);\n }\n };\n\n return _this;\n }\n\n var _proto = CookieConsent.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n var debug = this.props.debug; // if cookie undefined or debug\n\n if (this.getCookieValue() === undefined || debug) {\n this.setState({\n visible: true\n }); // if acceptOnScroll is set to true and (cookie is undefined or debug is set to true), add a listener.\n\n if (this.props.acceptOnScroll) {\n window.addEventListener(\"scroll\", this.handleScroll, {\n passive: true\n });\n }\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n // remove listener if still set\n this.removeScrollListener();\n }\n /**\r\n * Set a persistent accept cookie\r\n */\n ;\n\n _proto.accept = function accept(acceptedByScrolling) {\n var _acceptedByScrolling;\n\n if (acceptedByScrolling === void 0) {\n acceptedByScrolling = false;\n }\n\n var _this$props = this.props,\n cookieName = _this$props.cookieName,\n cookieValue = _this$props.cookieValue,\n hideOnAccept = _this$props.hideOnAccept,\n onAccept = _this$props.onAccept;\n this.setCookie(cookieName, cookieValue);\n onAccept((_acceptedByScrolling = acceptedByScrolling) != null ? _acceptedByScrolling : false);\n\n if (hideOnAccept) {\n this.setState({\n visible: false\n });\n this.removeScrollListener();\n }\n }\n /**\r\n * Handle a click on the overlay\r\n */\n ;\n\n _proto.overlayClick = function overlayClick() {\n var _this$props2 = this.props,\n acceptOnOverlayClick = _this$props2.acceptOnOverlayClick,\n onOverlayClick = _this$props2.onOverlayClick;\n\n if (acceptOnOverlayClick) {\n this.accept();\n }\n\n onOverlayClick();\n }\n /**\r\n * Set a persistent decline cookie\r\n */\n ;\n\n _proto.decline = function decline() {\n var _this$props3 = this.props,\n cookieName = _this$props3.cookieName,\n declineCookieValue = _this$props3.declineCookieValue,\n hideOnDecline = _this$props3.hideOnDecline,\n onDecline = _this$props3.onDecline,\n setDeclineCookie = _this$props3.setDeclineCookie;\n\n if (setDeclineCookie) {\n this.setCookie(cookieName, declineCookieValue);\n }\n\n onDecline();\n\n if (hideOnDecline) {\n this.setState({\n visible: false\n });\n }\n }\n /**\r\n * Function to set the consent cookie based on the provided variables\r\n * Sets two cookies to handle incompatible browsers, more details:\r\n * https://web.dev/samesite-cookie-recipes/#handling-incompatible-clients\r\n */\n ;\n\n _proto.setCookie = function setCookie(cookieName, cookieValue) {\n var _this$props4 = this.props,\n extraCookieOptions = _this$props4.extraCookieOptions,\n expires = _this$props4.expires,\n sameSite = _this$props4.sameSite;\n var cookieSecurity = this.props.cookieSecurity;\n\n if (cookieSecurity === undefined) {\n cookieSecurity = window.location ? window.location.protocol === \"https:\" : true;\n }\n\n var cookieOptions = _extends({\n expires: expires\n }, extraCookieOptions, {\n sameSite: sameSite,\n secure: cookieSecurity\n }); // Fallback for older browsers where can not set SameSite=None,\n // SEE: https://web.dev/samesite-cookie-recipes/#handling-incompatible-clients\n\n\n if (sameSite === SAME_SITE_OPTIONS.NONE) {\n Cookies.set(getLegacyCookieName(cookieName), cookieValue, cookieOptions);\n } // set the regular cookie\n\n\n Cookies.set(cookieName, cookieValue, cookieOptions);\n }\n /**\r\n * Returns the value of the consent cookie\r\n * Retrieves the regular value first and if not found the legacy one according\r\n * to: https://web.dev/samesite-cookie-recipes/#handling-incompatible-clients\r\n */\n ;\n\n _proto.getCookieValue = function getCookieValue() {\n var cookieName = this.props.cookieName;\n return getCookieConsentValue(cookieName);\n };\n\n _proto.render = function render() {\n var _this2 = this; // If the bar shouldn't be visible don't render anything.\n\n\n switch (this.props.visible) {\n case VISIBILITY_OPTIONS.HIDDEN:\n return null;\n\n case VISIBILITY_OPTIONS.BY_COOKIE_VALUE:\n if (!this.state.visible) {\n return null;\n }\n\n break;\n }\n\n var _this$props5 = this.props,\n location = _this$props5.location,\n style = _this$props5.style,\n buttonStyle = _this$props5.buttonStyle,\n declineButtonStyle = _this$props5.declineButtonStyle,\n contentStyle = _this$props5.contentStyle,\n disableStyles = _this$props5.disableStyles,\n buttonText = _this$props5.buttonText,\n declineButtonText = _this$props5.declineButtonText,\n containerClasses = _this$props5.containerClasses,\n contentClasses = _this$props5.contentClasses,\n buttonClasses = _this$props5.buttonClasses,\n buttonWrapperClasses = _this$props5.buttonWrapperClasses,\n declineButtonClasses = _this$props5.declineButtonClasses,\n buttonId = _this$props5.buttonId,\n declineButtonId = _this$props5.declineButtonId,\n disableButtonStyles = _this$props5.disableButtonStyles,\n enableDeclineButton = _this$props5.enableDeclineButton,\n flipButtons = _this$props5.flipButtons,\n ButtonComponent = _this$props5.ButtonComponent,\n overlay = _this$props5.overlay,\n overlayClasses = _this$props5.overlayClasses,\n overlayStyle = _this$props5.overlayStyle,\n ariaAcceptLabel = _this$props5.ariaAcceptLabel,\n ariaDeclineLabel = _this$props5.ariaDeclineLabel,\n customContainerAttributes = _this$props5.customContainerAttributes,\n customContentAttributes = _this$props5.customContentAttributes,\n customButtonProps = _this$props5.customButtonProps,\n customDeclineButtonProps = _this$props5.customDeclineButtonProps,\n customButtonWrapperAttributes = _this$props5.customButtonWrapperAttributes;\n var myStyle = {};\n var myButtonStyle = {};\n var myDeclineButtonStyle = {};\n var myContentStyle = {};\n var myOverlayStyle = {};\n\n if (disableStyles) {\n // if styles are disabled use the provided styles (or none)\n myStyle = Object.assign({}, style);\n myButtonStyle = Object.assign({}, buttonStyle);\n myDeclineButtonStyle = Object.assign({}, declineButtonStyle);\n myContentStyle = Object.assign({}, contentStyle);\n myOverlayStyle = Object.assign({}, overlayStyle);\n } else {\n // if styles aren't disabled merge them with the styles that are provided (or use default styles)\n myStyle = Object.assign({}, _extends({}, this.state.style, style));\n myContentStyle = Object.assign({}, _extends({}, this.state.contentStyle, contentStyle));\n myOverlayStyle = Object.assign({}, _extends({}, this.state.overlayStyle, overlayStyle)); // switch to disable JUST the button styles\n\n if (disableButtonStyles) {\n myButtonStyle = Object.assign({}, buttonStyle);\n myDeclineButtonStyle = Object.assign({}, declineButtonStyle);\n } else {\n myButtonStyle = Object.assign({}, _extends({}, this.state.buttonStyle, buttonStyle));\n myDeclineButtonStyle = Object.assign({}, _extends({}, this.state.declineButtonStyle, declineButtonStyle));\n }\n } // syntactic sugar to enable user to easily select top / bottom\n\n\n switch (location) {\n case POSITION_OPTIONS.TOP:\n myStyle.top = \"0\";\n break;\n\n case POSITION_OPTIONS.BOTTOM:\n myStyle.bottom = \"0\";\n break;\n }\n\n var buttonsToRender = []; // add decline button\n\n enableDeclineButton && buttonsToRender.push(React.createElement(ButtonComponent, Object.assign({\n key: \"declineButton\",\n style: myDeclineButtonStyle,\n className: declineButtonClasses,\n id: declineButtonId,\n \"aria-label\": ariaDeclineLabel,\n onClick: function onClick() {\n _this2.decline();\n }\n }, customDeclineButtonProps), declineButtonText)); // add accept button\n\n buttonsToRender.push(React.createElement(ButtonComponent, Object.assign({\n key: \"acceptButton\",\n style: myButtonStyle,\n className: buttonClasses,\n id: buttonId,\n \"aria-label\": ariaAcceptLabel,\n onClick: function onClick() {\n _this2.accept();\n }\n }, customButtonProps), buttonText));\n\n if (flipButtons) {\n buttonsToRender.reverse();\n }\n\n return React.createElement(ConditionalWrapper, {\n condition: overlay,\n wrapper: function wrapper(children) {\n return React.createElement(\"div\", {\n style: myOverlayStyle,\n className: overlayClasses,\n onClick: function onClick() {\n _this2.overlayClick();\n }\n }, children);\n }\n }, React.createElement(\"div\", Object.assign({\n className: \"\" + containerClasses,\n style: myStyle\n }, customContainerAttributes), React.createElement(\"div\", Object.assign({\n style: myContentStyle,\n className: contentClasses\n }, customContentAttributes), this.props.children), React.createElement(\"div\", Object.assign({\n className: \"\" + buttonWrapperClasses\n }, customButtonWrapperAttributes), buttonsToRender.map(function (button) {\n return button;\n }))));\n };\n\n return CookieConsent;\n}(Component);\n\nCookieConsent.defaultProps = defaultCookieConsentProps;\nexport default CookieConsent;\nexport { ConditionalWrapper, CookieConsent, POSITION_OPTIONS as OPTIONS, POSITION_OPTIONS, SAME_SITE_OPTIONS, VISIBILITY_OPTIONS, VISIBILITY_OPTIONS as VISIBLE_OPTIONS, defaultCookieConsentName, getCookieConsentValue, getLegacyCookieName, resetCookieConsentValue };","import React from 'react';\nimport 'components/CookieBanner/styles.css';\nimport CookieConsent from 'react-cookie-consent';\nimport theme from 'theme';\nimport { rem } from 'polished';\nimport { useIntl } from 'context/IntlContext';\n\ninterface CookieBannerProps {\n onConsent: (value: boolean) => void;\n}\n\nconst CookieBanner = ({ onConsent }: CookieBannerProps) => {\n const { t } = useIntl();\n const { colors, fontWeights } = theme;\n const DAYS_TO_EXPIRE_COOKIES = 30;\n\n const handleAccept = () => {\n onConsent(true);\n };\n\n const handleDecline = () => {\n onConsent(false);\n };\n\n return (\n <CookieConsent\n location=\"bottom\"\n buttonText={t('home.cookies_banner.accept')}\n enableDeclineButton\n declineButtonText={t('home.cookies_banner.reject')}\n onAccept={handleAccept}\n onDecline={handleDecline}\n buttonStyle={{\n backgroundColor: colors.primary,\n color: colors.tertiary,\n padding: '12px 24px 12px 24px',\n margin: 0,\n marginRight: '22px',\n borderRadius: '4px',\n fontWeight: fontWeights.bold,\n }}\n declineButtonStyle={{\n backgroundColor: colors.tertiary,\n border: `1px solid ${colors.primary}`,\n color: colors.primary,\n padding: '12px 24px 12px 24px',\n marginLeft: 0,\n marginRight: '22px',\n borderRadius: '4px',\n fontWeight: fontWeights.bold,\n }}\n style={{\n background: '#EDF3FC',\n boxShadow: '0px 3px 16px rgba(0, 0, 0, 0.15)',\n color: colors.primary,\n fontWeight: fontWeights.normal,\n fontSize: rem('16px'),\n lineHeight: '24px',\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center',\n alignItems: 'center',\n }}\n contentStyle={{\n margin: 0,\n color: colors.quaternary,\n opacity: 0.8,\n }}\n containerClasses=\"cookieContainerClass\"\n expires={DAYS_TO_EXPIRE_COOKIES}\n >\n {t('home.cookies_banner.body')}\n </CookieConsent>\n );\n};\n\nexport default CookieBanner;\n","import React, { useState, useEffect } from 'react';\nimport { useStaticQuery, graphql } from 'gatsby';\nimport { Helmet } from 'react-helmet';\n\nimport Freshchat from './Freshchat';\nimport { Header } from './Header';\nimport { Footer } from './Footer';\n\nimport { buildCanonical } from 'utils';\nimport { useI18n } from 'context/I18nContext';\n\nimport CookieBanner from 'components/CookieBanner';\nimport { getCookieConsentValue } from 'react-cookie-consent';\n\nconst query = graphql`\n query IntlQuery {\n site {\n siteMetadata {\n siteUrl\n intl {\n defaultLocale\n locales {\n path\n lcid\n }\n }\n chat {\n freshchatEnabled\n }\n }\n }\n }\n`;\n\nexport const Layout: React.FC<{ locale: string }> = ({ children, locale }) => {\n const [hasConsentValue, setConsentValue] = useState(false);\n\n useEffect(() => {\n const consentValue = getCookieConsentValue();\n setConsentValue(consentValue === 'true');\n }, []);\n\n const handleCookieConsent = (value: boolean) => {\n setConsentValue(value);\n };\n\n const {\n site: {\n siteMetadata: { intl, siteUrl, chat: { freshchatEnabled } },\n },\n } = useStaticQuery(query);\n\n const { locale: currentLocale, setLocale } = useI18n();\n\n useEffect(() => {\n let isMounted = true;\n\n if (!isMounted && currentLocale === locale) return;\n setLocale(locale || 'es');\n\n return () => {\n isMounted = false;\n };\n }, [locale]);\n\n return (\n <>\n <Helmet>\n {intl.locales.map((lang: any) => {\n const href = buildCanonical(lang, intl.defaultLocale, siteUrl, '');\n return (\n <link\n key={lang.lcid}\n rel={lang.lcid === intl.defaultLocale ? 'canonical' : 'alternate'}\n href={href}\n hrefLang={lang.lcid}\n />\n );\n })}\n </Helmet>\n <Header />\n {children}\n <Footer />\n <CookieBanner onConsent={handleCookieConsent} />\n {(hasConsentValue && freshchatEnabled) ? <Freshchat /> : null}\n </>\n );\n};\n","import { Locale } from 'locales/Locale';\n\nexport const buildCanonical = (\n lang: Locale,\n defaultLocale: string,\n baseURL: string,\n path: string,\n) => {\n const finalPath = path === '' ? path : `${path}/`;\n return lang.lcid === defaultLocale\n ? `${baseURL}/${finalPath}`\n : `${baseURL}/${lang.path}/${finalPath}`;\n};\n","import React from 'react';\nimport nest from 'recompose/nest';\n\nimport { IntlContextProvider } from 'context/IntlContext';\nimport { Layout } from 'components/layout';\nimport { LinksProvider } from 'context/LinksContext';\nimport { NavigationProvider } from 'context/NavigationContext';\n\nconst wrapPageElement = ({ element, props }) => {\n const {\n pageContext: { hideHeaders, locale, name },\n location,\n } = props;\n\n if (hideHeaders && window.fcWidget) {\n window.fcWidget.destroy();\n }\n\n const AllPageProviders = nest(\n NavigationProvider,\n IntlContextProvider,\n LinksProvider,\n );\n\n return (\n <AllPageProviders location={location} currentPageName={name}>\n <Layout locale={locale}>{element}</Layout>\n </AllPageProviders>\n );\n};\n\nexport default wrapPageElement;\n","import React from 'react';\nimport nest from 'recompose/nest';\n\nimport { CurrencyProvider } from 'context/CurrencyContext';\nimport { I18nContextProvider } from 'context/I18nContext';\nimport { SavingsProductsProvider } from 'context/SavingProductsContext';\nimport { ViewerProvider } from 'context/ViewerContext';\n\nimport { LocationProvider } from 'context/LocationContext';\nimport FlagProvider from '@unleash/proxy-client-react';\n\n// const config = {\n// url: process.env.GATSBY_UNLEASH_URL,\n// clientKey: process.env.GATSBY_UNLEASH_CLIENT_KEY,\n// refreshInterval: 15,\n// appName: process.env.GATSBY_UNLEASH_APP_NAME,\n// environment: process.env.GATSBY_UNLEASH_ENVIRONMENT,\n// };\n\nconst wrapRootElement = ({ element }) => {\n const AllRootProviders = nest(\n I18nContextProvider,\n LocationProvider,\n ViewerProvider,\n CurrencyProvider,\n SavingsProductsProvider,\n );\n\n return (\n <AllRootProviders locale=\"es\" defaultLocale=\"es\">\n <FlagProvider>{element}</FlagProvider>\n </AllRootProviders>\n );\n};\n\nexport default wrapRootElement;\n","/* eslint-disable no-unused-expressions */\nimport { stripIndent } from \"common-tags\"\nimport camelCase from \"camelcase\"\nimport { IGatsbyImageData } from \".\"\n\nconst DEFAULT_PIXEL_DENSITIES = [0.25, 0.5, 1, 2]\nexport const DEFAULT_BREAKPOINTS = [750, 1080, 1366, 1920]\nexport const EVERY_BREAKPOINT = [\n 320, 654, 768, 1024, 1366, 1600, 1920, 2048, 2560, 3440, 3840, 4096,\n]\nconst DEFAULT_FLUID_WIDTH = 800\nconst DEFAULT_FIXED_WIDTH = 800\nconst DEFAULT_ASPECT_RATIO = 4 / 3\n\nexport type Fit = \"cover\" | \"fill\" | \"inside\" | \"outside\" | \"contain\"\n\nexport type Layout = \"fixed\" | \"fullWidth\" | \"constrained\"\nexport type ImageFormat = \"jpg\" | \"png\" | \"webp\" | \"avif\" | \"auto\" | \"\"\n\n/**\n * The minimal required reporter, as we don't want to import it from gatsby-cli\n */\nexport interface IReporter {\n warn(message: string): void\n}\n\nexport interface ISharpGatsbyImageArgs {\n layout?: Layout\n formats?: Array<ImageFormat>\n placeholder?: \"tracedSVG\" | \"dominantColor\" | \"blurred\" | \"none\"\n tracedSVGOptions?: Record<string, unknown>\n width?: number\n height?: number\n aspectRatio?: number\n sizes?: string\n quality?: number\n transformOptions?: {\n fit?: Fit\n cropFocus?: number | string\n duotone?: {\n highlight: string\n shadow: string\n opacity?: number\n }\n grayscale?: boolean\n rotate?: number\n trim?: number\n }\n jpgOptions?: Record<string, unknown>\n pngOptions?: Record<string, unknown>\n webpOptions?: Record<string, unknown>\n avifOptions?: Record<string, unknown>\n blurredOptions?: { width?: number; toFormat?: ImageFormat }\n breakpoints?: Array<number>\n backgroundColor?: string\n}\n\nexport interface IImageSizeArgs {\n width?: number\n height?: number\n layout?: Layout\n filename: string\n outputPixelDensities?: Array<number>\n breakpoints?: Array<number>\n fit?: Fit\n reporter?: IReporter\n sourceMetadata: { width: number; height: number }\n}\n\nexport interface IImageSizes {\n sizes: Array<number>\n presentationWidth: number\n presentationHeight: number\n aspectRatio: number\n unscaledWidth: number\n}\n\nexport interface IImage {\n src: string\n width: number\n height: number\n format: ImageFormat\n}\n\nexport interface IGatsbyImageHelperArgs {\n pluginName: string\n generateImageSource: (\n filename: string,\n width: number,\n height: number,\n format: ImageFormat,\n fit?: Fit,\n options?: Record<string, unknown>\n ) => IImage\n layout?: Layout\n formats?: Array<ImageFormat>\n filename: string\n placeholderURL?: string\n width?: number\n height?: number\n sizes?: string\n reporter?: IReporter\n sourceMetadata?: { width: number; height: number; format: ImageFormat }\n fit?: Fit\n options?: Record<string, unknown>\n breakpoints?: Array<number>\n backgroundColor?: string\n aspectRatio?: number\n}\n\nconst warn = (message: string): void => console.warn(message)\n\nconst sortNumeric = (a: number, b: number): number => a - b\n\nexport const getSizes = (width: number, layout: Layout): string | undefined => {\n switch (layout) {\n // If screen is wider than the max size, image width is the max size,\n // otherwise it's the width of the screen\n case `constrained`:\n return `(min-width: ${width}px) ${width}px, 100vw`\n\n // Image is always the same width, whatever the size of the screen\n case `fixed`:\n return `${width}px`\n\n // Image is always the width of the screen\n case `fullWidth`:\n return `100vw`\n\n default:\n return undefined\n }\n}\n\nexport const getSrcSet = (images: Array<IImage>): string =>\n images.map(image => `${image.src} ${image.width}w`).join(`,\\n`)\n\nexport function formatFromFilename(filename: string): ImageFormat | undefined {\n const dot = filename.lastIndexOf(`.`)\n if (dot !== -1) {\n const ext = filename.substr(dot + 1)\n if (ext === `jpeg`) {\n return `jpg`\n }\n if (ext.length === 3 || ext.length === 4) {\n return ext as ImageFormat\n }\n }\n return undefined\n}\n\nexport function setDefaultDimensions(\n args: IGatsbyImageHelperArgs\n): IGatsbyImageHelperArgs {\n let {\n layout = `constrained`,\n width,\n height,\n sourceMetadata,\n breakpoints,\n aspectRatio,\n formats = [`auto`, `webp`],\n } = args\n formats = formats.map(format => format.toLowerCase() as ImageFormat)\n layout = camelCase(layout) as Layout\n\n if (width && height) {\n return { ...args, formats, layout, aspectRatio: width / height }\n }\n if (sourceMetadata.width && sourceMetadata.height && !aspectRatio) {\n aspectRatio = sourceMetadata.width / sourceMetadata.height\n }\n\n if (layout === `fullWidth`) {\n width = width || sourceMetadata.width || breakpoints[breakpoints.length - 1]\n height = height || Math.round(width / (aspectRatio || DEFAULT_ASPECT_RATIO))\n } else {\n if (!width) {\n if (height && aspectRatio) {\n width = height * aspectRatio\n } else if (sourceMetadata.width) {\n width = sourceMetadata.width\n } else if (height) {\n width = Math.round(height / DEFAULT_ASPECT_RATIO)\n } else {\n width = DEFAULT_FIXED_WIDTH\n }\n }\n\n if (aspectRatio && !height) {\n height = Math.round(width / aspectRatio)\n } else if (!aspectRatio) {\n aspectRatio = width / height\n }\n }\n return { ...args, width, height, aspectRatio, layout, formats }\n}\n\n/**\n * Use this for getting an image for the blurred placeholder. This ensures the\n * aspect ratio and crop match the main image\n */\nexport function getLowResolutionImageURL(\n args: IGatsbyImageHelperArgs,\n width = 20\n): string {\n args = setDefaultDimensions(args)\n const { generateImageSource, filename, aspectRatio } = args\n return generateImageSource(\n filename,\n width,\n Math.round(width / aspectRatio),\n args.sourceMetadata.format || `jpg`,\n args.fit,\n args.options\n )?.src\n}\n\nexport function generateImageData(\n args: IGatsbyImageHelperArgs\n): IGatsbyImageData {\n args = setDefaultDimensions(args)\n\n let {\n pluginName,\n sourceMetadata,\n generateImageSource,\n layout,\n fit,\n options,\n width,\n height,\n filename,\n reporter = { warn },\n backgroundColor,\n placeholderURL,\n } = args\n\n if (!pluginName) {\n reporter.warn(\n `[gatsby-plugin-image] \"generateImageData\" was not passed a plugin name`\n )\n }\n\n if (typeof generateImageSource !== `function`) {\n throw new Error(`generateImageSource must be a function`)\n }\n\n if (!sourceMetadata || (!sourceMetadata.width && !sourceMetadata.height)) {\n // No metadata means we let the CDN handle max size etc, aspect ratio etc\n sourceMetadata = {\n width,\n height,\n format: sourceMetadata?.format || formatFromFilename(filename) || `auto`,\n }\n } else if (!sourceMetadata.format) {\n sourceMetadata.format = formatFromFilename(filename)\n }\n\n const formats = new Set<ImageFormat>(args.formats)\n\n if (formats.size === 0 || formats.has(`auto`) || formats.has(``)) {\n formats.delete(`auto`)\n formats.delete(``)\n formats.add(sourceMetadata.format)\n }\n\n if (formats.has(`jpg`) && formats.has(`png`)) {\n reporter.warn(\n `[${pluginName}] Specifying both 'jpg' and 'png' formats is not supported. Using 'auto' instead`\n )\n if (sourceMetadata.format === `jpg`) {\n formats.delete(`png`)\n } else {\n formats.delete(`jpg`)\n }\n }\n\n const imageSizes = calculateImageSizes({ ...args, sourceMetadata })\n\n const result: IGatsbyImageData[\"images\"] = {\n sources: [],\n }\n\n let sizes = args.sizes\n if (!sizes) {\n sizes = getSizes(imageSizes.presentationWidth, layout)\n }\n\n formats.forEach(format => {\n const images = imageSizes.sizes\n .map(size => {\n const imageSrc = generateImageSource(\n filename,\n size,\n Math.round(size / imageSizes.aspectRatio),\n format,\n fit,\n options\n )\n if (\n !imageSrc?.width ||\n !imageSrc.height ||\n !imageSrc.src ||\n !imageSrc.format\n ) {\n reporter.warn(\n `[${pluginName}] The resolver for image ${filename} returned an invalid value.`\n )\n return undefined\n }\n return imageSrc\n })\n .filter(Boolean)\n\n if (format === `jpg` || format === `png` || format === `auto`) {\n const unscaled =\n images.find(img => img.width === imageSizes.unscaledWidth) || images[0]\n\n if (unscaled) {\n result.fallback = {\n src: unscaled.src,\n srcSet: getSrcSet(images),\n sizes,\n }\n }\n } else {\n result.sources?.push({\n srcSet: getSrcSet(images),\n sizes,\n type: `image/${format}`,\n })\n }\n })\n\n const imageProps: Partial<IGatsbyImageData> = {\n images: result,\n layout,\n backgroundColor,\n }\n\n if (placeholderURL) {\n imageProps.placeholder = { fallback: placeholderURL }\n }\n\n switch (layout) {\n case `fixed`:\n imageProps.width = imageSizes.presentationWidth\n imageProps.height = imageSizes.presentationHeight\n break\n\n case `fullWidth`:\n imageProps.width = 1\n imageProps.height = 1 / imageSizes.aspectRatio\n break\n\n case `constrained`:\n imageProps.width = args.width || imageSizes.presentationWidth || 1\n imageProps.height = (imageProps.width || 1) / imageSizes.aspectRatio\n }\n\n return imageProps as IGatsbyImageData\n}\n\nconst dedupeAndSortDensities = (values: Array<number>): Array<number> =>\n Array.from(new Set([1, ...values])).sort(sortNumeric)\n\nexport function calculateImageSizes(args: IImageSizeArgs): IImageSizes {\n const {\n width,\n height,\n filename,\n layout = `constrained`,\n sourceMetadata: imgDimensions,\n reporter = { warn },\n breakpoints = DEFAULT_BREAKPOINTS,\n } = args\n\n // check that all dimensions provided are positive\n const userDimensions = { width, height }\n const erroneousUserDimensions = Object.entries(userDimensions).filter(\n ([_, size]) => typeof size === `number` && size < 1\n )\n if (erroneousUserDimensions.length) {\n throw new Error(\n `Specified dimensions for images must be positive numbers (> 0). Problem dimensions you have are ${erroneousUserDimensions\n .map(dim => dim.join(`: `))\n .join(`, `)}`\n )\n }\n\n if (layout === `fixed`) {\n return fixedImageSizes(args)\n } else if (layout === `constrained`) {\n return responsiveImageSizes(args)\n } else if (layout === `fullWidth`) {\n return responsiveImageSizes({ breakpoints, ...args })\n } else {\n reporter.warn(\n `No valid layout was provided for the image at ${filename}. Valid image layouts are fixed, fullWidth, and constrained. Found ${layout}`\n )\n return {\n sizes: [imgDimensions.width],\n presentationWidth: imgDimensions.width,\n presentationHeight: imgDimensions.height,\n aspectRatio: imgDimensions.width / imgDimensions.height,\n unscaledWidth: imgDimensions.width,\n }\n }\n}\nexport function fixedImageSizes({\n filename,\n sourceMetadata: imgDimensions,\n width,\n height,\n fit = `cover`,\n outputPixelDensities = DEFAULT_PIXEL_DENSITIES,\n reporter = { warn },\n}: IImageSizeArgs): IImageSizes {\n let aspectRatio = imgDimensions.width / imgDimensions.height\n // Sort, dedupe and ensure there's a 1\n const densities = dedupeAndSortDensities(outputPixelDensities)\n\n // If both are provided then we need to check the fit\n if (width && height) {\n const calculated = getDimensionsAndAspectRatio(imgDimensions, {\n width,\n height,\n fit,\n })\n width = calculated.width\n height = calculated.height\n aspectRatio = calculated.aspectRatio\n }\n\n if (!width) {\n if (!height) {\n width = DEFAULT_FIXED_WIDTH\n } else {\n width = Math.round(height * aspectRatio)\n }\n } else if (!height) {\n height = Math.round(width / aspectRatio)\n }\n\n const originalWidth = width // will use this for presentationWidth, don't want to lose it\n const isTopSizeOverriden =\n imgDimensions.width < width || imgDimensions.height < (height as number)\n\n // If the image is smaller than requested, warn the user that it's being processed as such\n // print out this message with the necessary information before we overwrite it for sizing\n if (isTopSizeOverriden) {\n const fixedDimension = imgDimensions.width < width ? `width` : `height`\n reporter.warn(stripIndent`\n The requested ${fixedDimension} \"${\n fixedDimension === `width` ? width : height\n }px\" for the image ${filename} was larger than the actual image ${fixedDimension} of ${\n imgDimensions[fixedDimension]\n }px. If possible, replace the current image with a larger one.`)\n\n if (fixedDimension === `width`) {\n width = imgDimensions.width\n height = Math.round(width / aspectRatio)\n } else {\n height = imgDimensions.height\n width = height * aspectRatio\n }\n }\n\n const sizes = densities\n .filter(size => size >= 1) // remove smaller densities because fixed images don't need them\n .map(density => Math.round(density * (width as number)))\n .filter(size => size <= imgDimensions.width)\n\n return {\n sizes,\n aspectRatio,\n presentationWidth: originalWidth,\n presentationHeight: Math.round(originalWidth / aspectRatio),\n unscaledWidth: width,\n }\n}\n\nexport function responsiveImageSizes({\n sourceMetadata: imgDimensions,\n width,\n height,\n fit = `cover`,\n outputPixelDensities = DEFAULT_PIXEL_DENSITIES,\n breakpoints,\n layout,\n}: IImageSizeArgs): IImageSizes {\n let sizes\n let aspectRatio = imgDimensions.width / imgDimensions.height\n // Sort, dedupe and ensure there's a 1\n const densities = dedupeAndSortDensities(outputPixelDensities)\n\n // If both are provided then we need to check the fit\n if (width && height) {\n const calculated = getDimensionsAndAspectRatio(imgDimensions, {\n width,\n height,\n fit,\n })\n width = calculated.width\n height = calculated.height\n aspectRatio = calculated.aspectRatio\n }\n\n // Case 1: width of height were passed in, make sure it isn't larger than the actual image\n width = width && Math.min(width, imgDimensions.width)\n height = height && Math.min(height, imgDimensions.height)\n\n // Case 2: neither width or height were passed in, use default size\n if (!width && !height) {\n width = Math.min(DEFAULT_FLUID_WIDTH, imgDimensions.width)\n height = width / aspectRatio\n }\n\n // if it still hasn't been found, calculate width from the derived height.\n // TS isn't smart enough to realise the type for height has been narrowed here\n if (!width) {\n width = (height as number) * aspectRatio\n }\n\n const originalWidth = width\n const isTopSizeOverriden =\n imgDimensions.width < width || imgDimensions.height < (height as number)\n if (isTopSizeOverriden) {\n width = imgDimensions.width\n height = imgDimensions.height\n }\n\n width = Math.round(width)\n\n if (breakpoints?.length > 0) {\n sizes = breakpoints.filter(size => size <= imgDimensions.width)\n\n // If a larger breakpoint has been filtered-out, add the actual image width instead\n if (\n sizes.length < breakpoints.length &&\n !sizes.includes(imgDimensions.width)\n ) {\n sizes.push(imgDimensions.width)\n }\n } else {\n sizes = densities.map(density => Math.round(density * (width as number)))\n sizes = sizes.filter(size => size <= imgDimensions.width)\n }\n\n // ensure that the size passed in is included in the final output\n if (layout === `constrained` && !sizes.includes(width)) {\n sizes.push(width)\n }\n sizes = sizes.sort(sortNumeric)\n return {\n sizes,\n aspectRatio,\n presentationWidth: originalWidth,\n presentationHeight: Math.round(originalWidth / aspectRatio),\n unscaledWidth: width,\n }\n}\n\nexport function getDimensionsAndAspectRatio(\n dimensions,\n options\n): { width: number; height: number; aspectRatio: number } {\n // Calculate the eventual width/height of the image.\n const imageAspectRatio = dimensions.width / dimensions.height\n\n let width = options.width\n let height = options.height\n\n switch (options.fit) {\n case `fill`: {\n width = options.width ? options.width : dimensions.width\n height = options.height ? options.height : dimensions.height\n break\n }\n case `inside`: {\n const widthOption = options.width\n ? options.width\n : Number.MAX_SAFE_INTEGER\n const heightOption = options.height\n ? options.height\n : Number.MAX_SAFE_INTEGER\n\n width = Math.min(widthOption, Math.round(heightOption * imageAspectRatio))\n height = Math.min(\n heightOption,\n Math.round(widthOption / imageAspectRatio)\n )\n break\n }\n case `outside`: {\n const widthOption = options.width ? options.width : 0\n const heightOption = options.height ? options.height : 0\n\n width = Math.max(widthOption, Math.round(heightOption * imageAspectRatio))\n height = Math.max(\n heightOption,\n Math.round(widthOption / imageAspectRatio)\n )\n break\n }\n\n default: {\n if (options.width && !options.height) {\n width = options.width\n height = Math.round(options.width / imageAspectRatio)\n }\n\n if (options.height && !options.width) {\n width = Math.round(options.height * imageAspectRatio)\n height = options.height\n }\n }\n }\n\n return {\n width,\n height,\n aspectRatio: width / height,\n }\n}\n","/* eslint-disable no-unused-expressions */\nimport {\n useState,\n CSSProperties,\n useEffect,\n HTMLAttributes,\n ImgHTMLAttributes,\n ReactEventHandler,\n SetStateAction,\n Dispatch,\n RefObject,\n} from \"react\"\nimport { Node } from \"gatsby\"\nimport { PlaceholderProps } from \"./placeholder\"\nimport { MainImageProps } from \"./main-image\"\nimport type { IGatsbyImageData } from \"./gatsby-image.browser\"\nimport {\n IGatsbyImageHelperArgs,\n generateImageData,\n Layout,\n EVERY_BREAKPOINT,\n IImage,\n ImageFormat,\n} from \"../image-utils\"\nconst imageCache = new Set<string>()\n\n// Native lazy-loading support: https://addyosmani.com/blog/lazy-loading/\nexport const hasNativeLazyLoadSupport = (): boolean =>\n typeof HTMLImageElement !== `undefined` &&\n `loading` in HTMLImageElement.prototype\n\nexport function gatsbyImageIsInstalled(): boolean {\n return typeof GATSBY___IMAGE !== `undefined` && GATSBY___IMAGE\n}\n\nexport function storeImageloaded(cacheKey?: string): void {\n if (cacheKey) {\n imageCache.add(cacheKey)\n }\n}\n\nexport function hasImageLoaded(cacheKey: string): boolean {\n return imageCache.has(cacheKey)\n}\nexport type IGatsbyImageDataParent<T = never> = T & {\n gatsbyImageData: IGatsbyImageData\n}\nexport type FileNode = Node & {\n childImageSharp?: IGatsbyImageDataParent<Node>\n}\n\nconst isGatsbyImageData = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageData | any\n): node is IGatsbyImageData =>\n // 🦆 check for a deep prop to be sure this is a valid gatsbyImageData object\n Boolean(node?.images?.fallback?.src)\n\nconst isGatsbyImageDataParent = <T>(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageDataParent<T> | any\n): node is IGatsbyImageDataParent<T> => Boolean(node?.gatsbyImageData)\n\nexport type ImageDataLike = FileNode | IGatsbyImageDataParent | IGatsbyImageData\nexport const getImage = (node: ImageDataLike): IGatsbyImageData | undefined => {\n if (isGatsbyImageData(node)) {\n return node\n }\n if (isGatsbyImageDataParent(node)) {\n return node.gatsbyImageData\n }\n return node?.childImageSharp?.gatsbyImageData\n}\n\nexport const getSrc = (node: ImageDataLike): string | undefined =>\n getImage(node)?.images?.fallback?.src\n\nexport const getSrcSet = (node: ImageDataLike): string | undefined =>\n getImage(node)?.images?.fallback?.srcSet\n\nexport function getWrapperProps(\n width: number,\n height: number,\n layout: Layout\n): Pick<HTMLAttributes<HTMLElement>, \"className\" | \"style\"> & {\n \"data-gatsby-image-wrapper\": string\n} {\n const wrapperStyle: CSSProperties = {}\n\n let className = `gatsby-image-wrapper`\n\n // If the plugin isn't installed we need to apply the styles inline\n if (!gatsbyImageIsInstalled()) {\n wrapperStyle.position = `relative`\n wrapperStyle.overflow = `hidden`\n }\n\n if (layout === `fixed`) {\n wrapperStyle.width = width\n wrapperStyle.height = height\n } else if (layout === `constrained`) {\n if (!gatsbyImageIsInstalled()) {\n wrapperStyle.display = `inline-block`\n wrapperStyle.verticalAlign = `top`\n }\n className = `gatsby-image-wrapper gatsby-image-wrapper-constrained`\n }\n\n return {\n className,\n \"data-gatsby-image-wrapper\": ``,\n style: wrapperStyle,\n }\n}\n\nexport async function applyPolyfill(\n ref: RefObject<HTMLImageElement>\n): Promise<void> {\n if (!(`objectFitPolyfill` in window)) {\n await import(\n // @ts-ignore typescript can't find the module for some reason ¯\\_(ツ)_/¯\n /* webpackChunkName: \"gatsby-plugin-image-objectfit-polyfill\" */ `objectFitPolyfill`\n )\n }\n ;(window as any).objectFitPolyfill(ref.current)\n}\n\nexport interface IUrlBuilderArgs<OptionsType> {\n width: number\n height: number\n baseUrl: string\n format: ImageFormat\n options: OptionsType\n}\nexport interface IGetImageDataArgs<OptionsType = Record<string, unknown>> {\n baseUrl: string\n /**\n * For constrained and fixed images, the size of the image element\n */\n width?: number\n height?: number\n /**\n * If available, pass the source image width and height\n */\n sourceWidth?: number\n sourceHeight?: number\n /**\n * If only one dimension is passed, then this will be used to calculate the other.\n */\n aspectRatio?: number\n layout?: Layout\n /**\n * Returns a URL based on the passed arguments. Should be a pure function\n */\n urlBuilder: (args: IUrlBuilderArgs<OptionsType>) => string\n\n /**\n * Should be a data URI\n */\n placeholderURL?: string\n backgroundColor?: string\n /**\n * Used in error messages etc\n */\n pluginName?: string\n\n /**\n * If you do not support auto-format, pass an array of image types here\n */\n formats?: Array<ImageFormat>\n\n breakpoints?: Array<number>\n\n /**\n * Passed to the urlBuilder function\n */\n options?: OptionsType\n}\n\n/**\n * Use this hook to generate gatsby-plugin-image data in the browser.\n */\nexport function getImageData<OptionsType>({\n baseUrl,\n urlBuilder,\n sourceWidth,\n sourceHeight,\n pluginName = `getImageData`,\n formats = [`auto`],\n breakpoints,\n options,\n ...props\n}: IGetImageDataArgs<OptionsType>): IGatsbyImageData {\n if (\n !breakpoints?.length &&\n (props.layout === `fullWidth` || (props.layout as string) === `FULL_WIDTH`)\n ) {\n breakpoints = EVERY_BREAKPOINT\n }\n const generateImageSource = (\n baseUrl: string,\n width: number,\n height?: number,\n format?: ImageFormat\n ): IImage => {\n return {\n width,\n height,\n format,\n src: urlBuilder({ baseUrl, width, height, options, format }),\n }\n }\n\n const sourceMetadata: IGatsbyImageHelperArgs[\"sourceMetadata\"] = {\n width: sourceWidth,\n height: sourceHeight,\n format: `auto`,\n }\n\n const args: IGatsbyImageHelperArgs = {\n ...props,\n pluginName,\n generateImageSource,\n filename: baseUrl,\n formats,\n breakpoints,\n sourceMetadata,\n }\n return generateImageData(args)\n}\n\nexport function getMainProps(\n isLoading: boolean,\n isLoaded: boolean,\n images: IGatsbyImageData[\"images\"],\n loading?: \"eager\" | \"lazy\",\n toggleLoaded?: (loaded: boolean) => void,\n cacheKey?: string,\n ref?: RefObject<HTMLImageElement>,\n style: CSSProperties = {}\n): Partial<MainImageProps> {\n const onLoad: ReactEventHandler<HTMLImageElement> = function (e) {\n if (isLoaded) {\n return\n }\n\n storeImageloaded(cacheKey)\n\n const target = e.currentTarget\n const img = new Image()\n img.src = target.currentSrc\n\n if (img.decode) {\n // Decode the image through javascript to support our transition\n img\n .decode()\n .catch(() => {\n // ignore error, we just go forward\n })\n .then(() => {\n toggleLoaded(true)\n })\n } else {\n toggleLoaded(true)\n }\n }\n\n // Polyfill \"object-fit\" if unsupported (mostly IE)\n if (ref?.current && !(`objectFit` in document.documentElement.style)) {\n ref.current.dataset.objectFit = style.objectFit ?? `cover`\n ref.current.dataset.objectPosition = `${style.objectPosition ?? `50% 50%`}`\n applyPolyfill(ref)\n }\n\n // fallback when it's not configured in gatsby-config.\n if (!gatsbyImageIsInstalled()) {\n style = {\n height: `100%`,\n left: 0,\n position: `absolute`,\n top: 0,\n transform: `translateZ(0)`,\n transition: `opacity 250ms linear`,\n width: `100%`,\n willChange: `opacity`,\n ...style,\n }\n }\n\n const result = {\n ...images,\n loading,\n shouldLoad: isLoading,\n \"data-main-image\": ``,\n style: {\n ...style,\n opacity: isLoaded ? 1 : 0,\n },\n onLoad,\n ref,\n }\n\n return result\n}\n\nexport type PlaceholderImageAttrs = ImgHTMLAttributes<HTMLImageElement> &\n Pick<PlaceholderProps, \"sources\" | \"fallback\"> & {\n \"data-placeholder-image\"?: string\n }\n\nexport function getPlaceholderProps(\n placeholder: PlaceholderImageAttrs | undefined,\n isLoaded: boolean,\n layout: Layout,\n width?: number,\n height?: number,\n backgroundColor?: string,\n objectFit?: CSSProperties[\"objectFit\"],\n objectPosition?: CSSProperties[\"objectPosition\"]\n): PlaceholderImageAttrs {\n const wrapperStyle: CSSProperties = {}\n\n if (backgroundColor) {\n wrapperStyle.backgroundColor = backgroundColor\n\n if (layout === `fixed`) {\n wrapperStyle.width = width\n wrapperStyle.height = height\n wrapperStyle.backgroundColor = backgroundColor\n wrapperStyle.position = `relative`\n } else if (layout === `constrained`) {\n wrapperStyle.position = `absolute`\n wrapperStyle.top = 0\n wrapperStyle.left = 0\n wrapperStyle.bottom = 0\n wrapperStyle.right = 0\n } else if (layout === `fullWidth`) {\n wrapperStyle.position = `absolute`\n wrapperStyle.top = 0\n wrapperStyle.left = 0\n wrapperStyle.bottom = 0\n wrapperStyle.right = 0\n }\n }\n\n if (objectFit) {\n wrapperStyle.objectFit = objectFit\n }\n\n if (objectPosition) {\n wrapperStyle.objectPosition = objectPosition\n }\n const result: PlaceholderImageAttrs = {\n ...placeholder,\n \"aria-hidden\": true,\n \"data-placeholder-image\": ``,\n style: {\n opacity: isLoaded ? 0 : 1,\n transition: `opacity 500ms linear`,\n ...wrapperStyle,\n },\n }\n\n // fallback when it's not configured in gatsby-config.\n if (!gatsbyImageIsInstalled()) {\n result.style = {\n height: `100%`,\n left: 0,\n position: `absolute`,\n top: 0,\n width: `100%`,\n }\n }\n\n return result\n}\n\nexport function useImageLoaded(\n cacheKey: string,\n loading: \"lazy\" | \"eager\",\n ref: any\n): {\n isLoaded: boolean\n isLoading: boolean\n toggleLoaded: Dispatch<SetStateAction<boolean>>\n} {\n const [isLoaded, toggleLoaded] = useState(false)\n const [isLoading, toggleIsLoading] = useState(loading === `eager`)\n\n const rAF =\n typeof window !== `undefined` && `requestAnimationFrame` in window\n ? requestAnimationFrame\n : function (cb: TimerHandler): number {\n return setTimeout(cb, 16)\n }\n const cRAF =\n typeof window !== `undefined` && `cancelAnimationFrame` in window\n ? cancelAnimationFrame\n : clearTimeout\n\n useEffect(() => {\n let interval: number\n // @see https://stackoverflow.com/questions/44074747/componentdidmount-called-before-ref-callback/50019873#50019873\n function toggleIfRefExists(): void {\n if (ref.current) {\n if (loading === `eager` && ref.current.complete) {\n storeImageloaded(cacheKey)\n toggleLoaded(true)\n } else {\n toggleIsLoading(true)\n }\n } else {\n interval = rAF(toggleIfRefExists)\n }\n }\n toggleIfRefExists()\n\n return (): void => {\n cRAF(interval)\n }\n }, [])\n\n return {\n isLoading,\n isLoaded,\n toggleLoaded,\n }\n}\n\nexport interface IArtDirectedImage {\n media: string\n image: IGatsbyImageData\n}\n\n/**\n * Generate a Gatsby image data object with multiple, art-directed images that display at different\n * resolutions.\n *\n * @param defaultImage The image displayed when no media query matches.\n * It is also used for all other settings applied to the image, such as width, height and layout.\n * You should pass a className to the component with media queries to adjust the size of the container,\n * as this cannot be adjusted automatically.\n * @param artDirected Array of objects which each contains a `media` string which is a media query\n * such as `(min-width: 320px)`, and the image object to use when that query matches.\n */\nexport function withArtDirection(\n defaultImage: IGatsbyImageData,\n artDirected: Array<IArtDirectedImage>\n): IGatsbyImageData {\n const { images, placeholder, ...props } = defaultImage\n const output: IGatsbyImageData = {\n ...props,\n images: {\n ...images,\n sources: [],\n },\n placeholder: placeholder && {\n ...placeholder,\n sources: [],\n },\n }\n\n artDirected.forEach(({ media, image }) => {\n if (!media) {\n if (process.env.NODE_ENV === `development`) {\n console.warn(\n \"[gatsby-plugin-image] All art-directed images passed to must have a value set for `media`. Skipping.\"\n )\n }\n return\n }\n\n if (\n image.layout !== defaultImage.layout &&\n process.env.NODE_ENV === `development`\n ) {\n console.warn(\n `[gatsby-plugin-image] Mismatched image layout: expected \"${defaultImage.layout}\" but received \"${image.layout}\". All art-directed images use the same layout as the default image`\n )\n }\n\n output.images.sources.push(\n ...image.images.sources.map(source => {\n return { ...source, media }\n }),\n {\n media,\n srcSet: image.images.fallback.srcSet,\n }\n )\n\n if (!output.placeholder) {\n return\n }\n\n output.placeholder.sources.push({\n media,\n srcSet: image.placeholder.fallback,\n })\n })\n output.images.sources.push(...images.sources)\n if (placeholder?.sources) {\n output.placeholder?.sources.push(...placeholder.sources)\n }\n return output\n}\n","// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// <reference path=\"../global.d.ts\" />\n\nimport React, { Fragment, FunctionComponent } from \"react\"\nimport terserMacro from \"../../macros/terser.macro\"\nimport { Layout } from \"../image-utils\"\n\nexport interface ILayoutWrapperProps {\n layout: Layout\n width: number\n height: number\n}\n\nconst NativeScriptLoading: FunctionComponent = () => (\n <script\n type=\"module\"\n dangerouslySetInnerHTML={{\n __html: terserMacro`\nconst hasNativeLazyLoadSupport = typeof HTMLImageElement !== \"undefined\" && \"loading\" in HTMLImageElement.prototype;\nif (hasNativeLazyLoadSupport) {\n const gatsbyImages = document.querySelectorAll('img[data-main-image]');\n for (let mainImage of gatsbyImages) {\n if (mainImage.dataset.src) {\n mainImage.setAttribute('src', mainImage.dataset.src)\n mainImage.removeAttribute('data-src')\n }\n if (mainImage.dataset.srcset) {\n mainImage.setAttribute('srcset', mainImage.dataset.srcset)\n mainImage.removeAttribute('data-srcset')\n }\n\n const sources = mainImage.parentNode.querySelectorAll('source[data-srcset]');\n for (let source of sources) {\n source.setAttribute('srcset', source.dataset.srcset)\n source.removeAttribute('data-srcset')\n }\n\n if (mainImage.complete) {\n mainImage.style.opacity = 1;\n }\n }\n}\n`,\n }}\n />\n)\n\nexport function getSizer(\n layout: Layout,\n width: number,\n height: number\n): string {\n let sizer: string | null = null\n if (layout === `fullWidth`) {\n sizer = `<div aria-hidden=\"true\" style=\"padding-top: ${\n (height / width) * 100\n }%;\"></div>`\n }\n if (layout === `constrained`) {\n sizer = `<div style=\"max-width: ${width}px; display: block;\"><img alt=\"\" role=\"presentation\" aria-hidden=\"true\" src=\"data:image/svg+xml;charset=utf-8,%3Csvg height='${height}' width='${width}' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E\" style=\"max-width: 100%; display: block; position: static;\"></div>`\n }\n return sizer\n}\n\nconst Sizer: FunctionComponent<ILayoutWrapperProps> = function Sizer({\n layout,\n width,\n height,\n}) {\n if (layout === `fullWidth`) {\n return (\n <div aria-hidden style={{ paddingTop: `${(height / width) * 100}%` }} />\n )\n }\n if (layout === `constrained`) {\n return (\n <div style={{ maxWidth: width, display: `block` }}>\n <img\n alt=\"\"\n role=\"presentation\"\n aria-hidden=\"true\"\n src={`data:image/svg+xml;charset=utf-8,%3Csvg height='${height}' width='${width}' xmlns='http://www.w3.org/2000/svg' version='1.1'%3E%3C/svg%3E`}\n style={{\n maxWidth: `100%`,\n display: `block`,\n position: `static`,\n }}\n />\n </div>\n )\n }\n\n return null\n}\n\nexport const LayoutWrapper: FunctionComponent<ILayoutWrapperProps> =\n function LayoutWrapper({ children, ...props }) {\n return (\n <Fragment>\n <Sizer {...props} />\n {children}\n\n {\n // eslint-disable-next-line no-undef\n SERVER && <NativeScriptLoading />\n }\n </Fragment>\n )\n }\n","/* eslint-disable filenames/match-regex */\nimport React, {\n FunctionComponent,\n ImgHTMLAttributes,\n forwardRef,\n LegacyRef,\n} from \"react\"\nimport * as PropTypes from \"prop-types\"\n\nexport interface IResponsiveImageProps {\n sizes?: string\n srcSet: string\n}\n\nexport type SourceProps = IResponsiveImageProps &\n (\n | {\n media: string\n type?: string\n }\n | {\n media?: string\n type: string\n }\n )\n\ntype FallbackProps = { src: string } & Partial<IResponsiveImageProps>\n\ntype ImageProps = ImgHTMLAttributes<HTMLImageElement> & {\n src: string\n alt: string\n shouldLoad: boolean\n innerRef: LegacyRef<HTMLImageElement>\n}\n\nexport type PictureProps = ImgHTMLAttributes<HTMLImageElement> & {\n fallback?: FallbackProps\n sources?: Array<SourceProps>\n alt: string\n shouldLoad?: boolean\n}\n\nconst Image: FunctionComponent<ImageProps> = function Image({\n src,\n srcSet,\n loading,\n alt = ``,\n shouldLoad,\n innerRef,\n ...props\n}) {\n return (\n <img\n {...props}\n decoding=\"async\"\n loading={loading}\n src={shouldLoad ? src : undefined}\n data-src={!shouldLoad ? src : undefined}\n srcSet={shouldLoad ? srcSet : undefined}\n data-srcset={!shouldLoad ? srcSet : undefined}\n alt={alt}\n ref={innerRef}\n />\n )\n}\n\nexport const Picture = forwardRef<HTMLImageElement, PictureProps>(\n function Picture(\n { fallback, sources = [], shouldLoad = true, ...props },\n ref\n ) {\n const sizes = props.sizes || fallback?.sizes\n const fallbackImage = (\n <Image\n {...props}\n {...fallback}\n sizes={sizes}\n shouldLoad={shouldLoad}\n innerRef={ref}\n />\n )\n\n if (!sources.length) {\n return fallbackImage\n }\n\n return (\n <picture>\n {sources.map(({ media, srcSet, type }) => (\n <source\n key={`${media}-${type}-${srcSet}`}\n type={type}\n media={media}\n srcSet={shouldLoad ? srcSet : undefined}\n data-srcset={!shouldLoad ? srcSet : undefined}\n sizes={sizes}\n />\n ))}\n {fallbackImage}\n </picture>\n )\n }\n)\n\nImage.propTypes = {\n src: PropTypes.string.isRequired,\n alt: PropTypes.string.isRequired,\n sizes: PropTypes.string,\n srcSet: PropTypes.string,\n shouldLoad: PropTypes.bool,\n}\n\nPicture.displayName = `Picture`\nPicture.propTypes = {\n alt: PropTypes.string.isRequired,\n shouldLoad: PropTypes.bool,\n fallback: PropTypes.exact({\n src: PropTypes.string.isRequired,\n srcSet: PropTypes.string,\n sizes: PropTypes.string,\n }),\n sources: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.exact({\n media: PropTypes.string.isRequired,\n type: PropTypes.string,\n sizes: PropTypes.string,\n srcSet: PropTypes.string.isRequired,\n }),\n PropTypes.exact({\n media: PropTypes.string,\n type: PropTypes.string.isRequired,\n sizes: PropTypes.string,\n srcSet: PropTypes.string.isRequired,\n }),\n ])\n ),\n}\n","import React, { FunctionComponent, ImgHTMLAttributes } from \"react\"\nimport * as PropTypes from \"prop-types\"\nimport { Picture, SourceProps } from \"./picture\"\n\nexport type PlaceholderProps = ImgHTMLAttributes<HTMLImageElement> & {\n fallback?: string\n sources?: Array<SourceProps>\n}\n\nexport const Placeholder: FunctionComponent<PlaceholderProps> =\n function Placeholder({ fallback, ...props }) {\n if (fallback) {\n return (\n <Picture\n {...props}\n fallback={{\n src: fallback,\n }}\n aria-hidden\n alt=\"\"\n />\n )\n } else {\n return <div {...props}></div>\n }\n }\n\nPlaceholder.displayName = `Placeholder`\nPlaceholder.propTypes = {\n fallback: PropTypes.string,\n sources: Picture.propTypes?.sources,\n alt: function (props, propName, componentName): Error | null {\n if (!props[propName]) {\n return null\n }\n return new Error(\n `Invalid prop \\`${propName}\\` supplied to \\`${componentName}\\`. Validation failed.`\n )\n },\n}\n","import React, { forwardRef } from \"react\"\nimport { Picture, PictureProps } from \"./picture\"\n\nexport type MainImageProps = PictureProps\n\nexport const MainImage = forwardRef<HTMLImageElement, MainImageProps>(\n function MainImage(props, ref) {\n return (\n <>\n <Picture ref={ref} {...props} />\n <noscript>\n <Picture {...props} shouldLoad={true} />\n </noscript>\n </>\n )\n }\n)\n\nMainImage.displayName = `MainImage`\nMainImage.propTypes = Picture.propTypes\n","import React, {\n ElementType,\n FunctionComponent,\n CSSProperties,\n WeakValidationMap,\n} from \"react\"\nimport { GatsbyImageProps, IGatsbyImageData } from \"./gatsby-image.browser\"\nimport { getWrapperProps, getMainProps, getPlaceholderProps } from \"./hooks\"\nimport { Placeholder } from \"./placeholder\"\nimport { MainImage, MainImageProps } from \"./main-image\"\nimport { LayoutWrapper } from \"./layout-wrapper\"\nimport PropTypes from \"prop-types\"\n\nconst removeNewLines = (str: string): string => str.replace(/\\n/g, ``)\n\nexport const GatsbyImageHydrator: FunctionComponent<{\n as?: ElementType\n style?: CSSProperties\n className?: string\n}> = function GatsbyImageHydrator({ as: Type = `div`, children, ...props }) {\n return <Type {...props}>{children}</Type>\n}\n\nexport const GatsbyImage: FunctionComponent<GatsbyImageProps> =\n function GatsbyImage({\n as,\n className,\n class: preactClass,\n style,\n image,\n loading = `lazy`,\n imgClassName,\n imgStyle,\n backgroundColor,\n objectFit,\n objectPosition,\n ...props\n }) {\n if (!image) {\n console.warn(`[gatsby-plugin-image] Missing image prop`)\n return null\n }\n if (preactClass) {\n className = preactClass\n }\n imgStyle = {\n objectFit,\n objectPosition,\n backgroundColor,\n ...imgStyle,\n }\n\n const {\n width,\n height,\n layout,\n images,\n placeholder,\n backgroundColor: placeholderBackgroundColor,\n } = image\n\n const {\n style: wStyle,\n className: wClass,\n ...wrapperProps\n } = getWrapperProps(width, height, layout)\n\n const cleanedImages: IGatsbyImageData[\"images\"] = {\n fallback: undefined,\n sources: [],\n }\n if (images.fallback) {\n cleanedImages.fallback = {\n ...images.fallback,\n srcSet: images.fallback.srcSet\n ? removeNewLines(images.fallback.srcSet)\n : undefined,\n }\n }\n\n if (images.sources) {\n cleanedImages.sources = images.sources.map(source => {\n return {\n ...source,\n srcSet: removeNewLines(source.srcSet),\n }\n })\n }\n\n return (\n <GatsbyImageHydrator\n {...wrapperProps}\n as={as}\n style={{\n ...wStyle,\n ...style,\n backgroundColor,\n }}\n className={`${wClass}${className ? ` ${className}` : ``}`}\n >\n <LayoutWrapper layout={layout} width={width} height={height}>\n <Placeholder\n {...getPlaceholderProps(\n placeholder,\n false,\n layout,\n width,\n height,\n placeholderBackgroundColor,\n objectFit,\n objectPosition\n )}\n />\n\n <MainImage\n data-gatsby-image-ssr=\"\"\n className={imgClassName}\n {...(props as Omit<MainImageProps, \"images\" | \"fallback\">)}\n // When eager is set we want to start the isLoading state on true (we want to load the img without react)\n {...getMainProps(\n loading === `eager`,\n false,\n cleanedImages,\n loading,\n undefined,\n undefined,\n undefined,\n imgStyle\n )}\n />\n </LayoutWrapper>\n </GatsbyImageHydrator>\n )\n }\n\nexport const altValidator: PropTypes.Validator<string> = (\n props: GatsbyImageProps,\n propName,\n componentName,\n ...rest\n): Error | undefined => {\n if (!props.alt && props.alt !== ``) {\n return new Error(\n `The \"alt\" prop is required in ${componentName}. If the image is purely presentational then pass an empty string: e.g. alt=\"\". Learn more: https://a11y-style-guide.com/style-guide/section-media.html`\n )\n }\n return PropTypes.string(props, propName, componentName, ...rest)\n}\nexport const propTypes = {\n image: PropTypes.object.isRequired,\n alt: altValidator,\n} as WeakValidationMap<GatsbyImageProps>\n","/* eslint-disable no-unused-expressions */\nimport React, {\n Component,\n ElementType,\n createRef,\n MutableRefObject,\n FunctionComponent,\n ImgHTMLAttributes,\n RefObject,\n CSSProperties,\n} from \"react\"\nimport {\n getWrapperProps,\n hasNativeLazyLoadSupport,\n storeImageloaded,\n hasImageLoaded,\n gatsbyImageIsInstalled,\n} from \"./hooks\"\nimport { PlaceholderProps } from \"./placeholder\"\nimport { MainImageProps } from \"./main-image\"\nimport { Layout } from \"../image-utils\"\nimport { getSizer } from \"./layout-wrapper\"\nimport { propTypes } from \"./gatsby-image.server\"\nimport { Unobserver } from \"./intersection-observer\"\nimport { render } from \"react-dom\"\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport interface GatsbyImageProps\n extends Omit<\n ImgHTMLAttributes<HTMLImageElement>,\n \"placeholder\" | \"onLoad\" | \"src\" | \"srcSet\" | \"width\" | \"height\"\n > {\n alt: string\n as?: ElementType\n className?: string\n class?: string\n imgClassName?: string\n image: IGatsbyImageData\n imgStyle?: CSSProperties\n backgroundColor?: string\n objectFit?: CSSProperties[\"objectFit\"]\n objectPosition?: CSSProperties[\"objectPosition\"]\n onLoad?: () => void\n onError?: () => void\n onStartLoad?: (props: { wasCached?: boolean }) => void\n}\n\nexport interface IGatsbyImageData {\n layout: Layout\n width: number\n height: number\n backgroundColor?: string\n images: Pick<MainImageProps, \"sources\" | \"fallback\">\n placeholder?: Pick<PlaceholderProps, \"sources\" | \"fallback\">\n}\n\nclass GatsbyImageHydrator extends Component<\n GatsbyImageProps,\n { isLoading: boolean; isLoaded: boolean }\n> {\n root: RefObject<HTMLImageElement | undefined> = createRef<\n HTMLImageElement | undefined\n >()\n hydrated: MutableRefObject<boolean> = { current: false }\n forceRender: MutableRefObject<boolean> = {\n // In dev we use render not hydrate, to avoid hydration warnings\n current: process.env.NODE_ENV === `development`,\n }\n lazyHydrator: () => void | null = null\n ref = createRef<HTMLImageElement>()\n unobserveRef: Unobserver\n\n constructor(props) {\n super(props)\n\n this.state = {\n isLoading: hasNativeLazyLoadSupport(),\n isLoaded: false,\n }\n }\n\n _lazyHydrate(props, state): Promise<void> {\n const hasSSRHtml = this.root.current.querySelector(\n `[data-gatsby-image-ssr]`\n )\n // On first server hydration do nothing\n if (hasNativeLazyLoadSupport() && hasSSRHtml && !this.hydrated.current) {\n this.hydrated.current = true\n return Promise.resolve()\n }\n\n return import(`./lazy-hydrate`).then(({ lazyHydrate }) => {\n const cacheKey = JSON.stringify(this.props.image.images)\n this.lazyHydrator = lazyHydrate(\n {\n image: props.image.images,\n isLoading: state.isLoading || hasImageLoaded(cacheKey),\n isLoaded: state.isLoaded || hasImageLoaded(cacheKey),\n toggleIsLoaded: () => {\n props.onLoad?.()\n\n this.setState({\n isLoaded: true,\n })\n },\n ref: this.ref,\n ...props,\n },\n this.root,\n this.hydrated,\n this.forceRender\n )\n })\n }\n\n /**\n * Choose if setupIntersectionObserver should use the image cache or not.\n */\n _setupIntersectionObserver(useCache = true): void {\n import(`./intersection-observer`).then(({ createIntersectionObserver }) => {\n const intersectionObserver = createIntersectionObserver(() => {\n if (this.root.current) {\n const cacheKey = JSON.stringify(this.props.image.images)\n this.props.onStartLoad?.({\n wasCached: useCache && hasImageLoaded(cacheKey),\n })\n this.setState({\n isLoading: true,\n isLoaded: useCache && hasImageLoaded(cacheKey),\n })\n }\n })\n\n if (this.root.current) {\n this.unobserveRef = intersectionObserver(this.root)\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState): boolean {\n let hasChanged = false\n if (!this.state.isLoading && nextState.isLoading && !nextState.isLoaded) {\n // Props have changed between SSR and hydration, so we need to force render instead of hydrate\n this.forceRender.current = true\n }\n // this check mostly means people do not have the correct ref checks in place, we want to reset some state to suppport loading effects\n if (this.props.image.images !== nextProps.image.images) {\n // reset state, we'll rely on intersection observer to reload\n if (this.unobserveRef) {\n // unregister intersectionObserver\n this.unobserveRef()\n\n // // on unmount, make sure we cleanup\n if (this.hydrated.current && this.lazyHydrator) {\n render(null, this.root.current)\n }\n }\n\n this.setState(\n {\n isLoading: false,\n isLoaded: false,\n },\n () => {\n this._setupIntersectionObserver(false)\n }\n )\n\n hasChanged = true\n }\n\n if (this.root.current && !hasChanged) {\n this._lazyHydrate(nextProps, nextState)\n }\n\n return false\n }\n\n componentDidMount(): void {\n if (this.root.current) {\n const ssrElement = this.root.current.querySelector(\n `[data-gatsby-image-ssr]`\n ) as HTMLImageElement\n const cacheKey = JSON.stringify(this.props.image.images)\n\n // when SSR and native lazyload is supported we'll do nothing ;)\n if (\n hasNativeLazyLoadSupport() &&\n ssrElement &&\n gatsbyImageIsInstalled()\n ) {\n this.props.onStartLoad?.({ wasCached: false })\n\n // When the image is already loaded before we have hydrated, we trigger onLoad and cache the item\n if (ssrElement.complete) {\n this.props.onLoad?.()\n storeImageloaded(cacheKey)\n } else {\n // We need the current class context (this) inside our named onLoad function\n // The named function is necessary to easily remove the listener afterward.\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const _this = this\n // add an onLoad to the image\n ssrElement.addEventListener(`load`, function onLoad() {\n ssrElement.removeEventListener(`load`, onLoad)\n\n _this.props.onLoad?.()\n storeImageloaded(cacheKey)\n })\n }\n\n return\n }\n\n // Fallback to custom lazy loading (intersection observer)\n this._setupIntersectionObserver(true)\n }\n }\n\n componentWillUnmount(): void {\n // Cleanup when onmount happens\n if (this.unobserveRef) {\n // unregister intersectionObserver\n this.unobserveRef()\n\n // on unmount, make sure we cleanup\n if (this.hydrated.current && this.lazyHydrator) {\n this.lazyHydrator()\n }\n }\n\n return\n }\n\n render(): JSX.Element {\n const Type = this.props.as || `div`\n const { width, height, layout } = this.props.image\n const {\n style: wStyle,\n className: wClass,\n ...wrapperProps\n } = getWrapperProps(width, height, layout)\n\n let className = this.props.className\n // preact class\n if (this.props.class) {\n className = this.props.class\n }\n\n const sizer = getSizer(layout, width, height)\n\n return (\n <Type\n {...wrapperProps}\n style={{\n ...wStyle,\n ...this.props.style,\n backgroundColor: this.props.backgroundColor,\n }}\n className={`${wClass}${className ? ` ${className}` : ``}`}\n ref={this.root}\n dangerouslySetInnerHTML={{\n __html: sizer,\n }}\n suppressHydrationWarning\n />\n )\n }\n}\n\nexport const GatsbyImage: FunctionComponent<GatsbyImageProps> =\n function GatsbyImage(props) {\n if (!props.image) {\n if (process.env.NODE_ENV === `development`) {\n console.warn(`[gatsby-plugin-image] Missing image prop`)\n }\n return null\n }\n\n if (!gatsbyImageIsInstalled() && process.env.NODE_ENV === `development`) {\n console.warn(\n `[gatsby-plugin-image] You're missing out on some cool performance features. Please add \"gatsby-plugin-image\" to your gatsby-config.js`\n )\n }\n const { className, class: classSafe, backgroundColor, image } = props\n const { width, height, layout } = image\n const propsKey = JSON.stringify([\n width,\n height,\n layout,\n className,\n classSafe,\n backgroundColor,\n ])\n return <GatsbyImageHydrator key={propsKey} {...props} />\n }\n\nGatsbyImage.propTypes = propTypes\n\nGatsbyImage.displayName = `GatsbyImage`\n","import React, { FunctionComponent, ReactElement } from \"react\"\nimport {\n altValidator,\n GatsbyImage as GatsbyImageServer,\n} from \"./gatsby-image.server\"\nimport { GatsbyImageProps, IGatsbyImageData } from \"./gatsby-image.browser\"\nimport PropTypes from \"prop-types\"\nimport { ISharpGatsbyImageArgs } from \"../image-utils\"\n\nexport interface IStaticImageProps\n extends Omit<GatsbyImageProps, \"image\">,\n Omit<ISharpGatsbyImageArgs, \"backgroundColor\"> {\n src: string\n}\n\n// These values are added by Babel. Do not add them manually\ninterface IPrivateProps {\n __imageData?: IGatsbyImageData\n __error?: string\n}\n\nexport function _getStaticImage(\n GatsbyImage: FunctionComponent<GatsbyImageProps>\n): React.FC<IStaticImageProps & IPrivateProps> {\n return function StaticImage({\n src,\n __imageData: imageData,\n __error,\n // We extract these because they're not meant to be passed-down to GatsbyImage\n /* eslint-disable @typescript-eslint/no-unused-vars */\n width,\n height,\n aspectRatio,\n tracedSVGOptions,\n placeholder,\n formats,\n quality,\n transformOptions,\n jpgOptions,\n pngOptions,\n webpOptions,\n avifOptions,\n blurredOptions,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ...props\n }): ReactElement {\n if (__error) {\n console.warn(__error)\n }\n\n if (imageData) {\n return <GatsbyImage image={imageData} {...props} />\n }\n console.warn(`Image not loaded`, src)\n if (!__error && process.env.NODE_ENV === `development`) {\n console.warn(\n `Please ensure that \"gatsby-plugin-image\" is included in the plugins array in gatsby-config.js, and that your version of gatsby is at least 2.24.78`\n )\n }\n return null\n }\n}\n\nconst StaticImage: React.FC<IStaticImageProps & IPrivateProps> =\n _getStaticImage(GatsbyImageServer)\n\nconst checkDimensionProps: PropTypes.Validator<number> = (\n props: IStaticImageProps & IPrivateProps,\n propName: keyof IStaticImageProps & IPrivateProps,\n ...rest\n) => {\n if (\n props.layout === `fullWidth` &&\n (propName === `width` || propName === `height`) &&\n props[propName]\n ) {\n return new Error(\n `\"${propName}\" ${props[propName]} may not be passed when layout is fullWidth.`\n )\n }\n return PropTypes.number(props, propName, ...rest)\n}\n\nconst validLayouts = new Set([`fixed`, `fullWidth`, `constrained`])\n\nexport const propTypes = {\n src: PropTypes.string.isRequired,\n alt: altValidator,\n width: checkDimensionProps,\n height: checkDimensionProps,\n sizes: PropTypes.string,\n layout: (props: IStaticImageProps & IPrivateProps): Error | undefined => {\n if (props.layout === undefined) {\n return undefined\n }\n if (validLayouts.has(props.layout)) {\n return undefined\n }\n\n return new Error(\n `Invalid value ${props.layout}\" provided for prop \"layout\". Defaulting to \"constrained\". Valid values are \"fixed\", \"fullWidth\" or \"constrained\".`\n )\n },\n}\n\nStaticImage.displayName = `StaticImage`\nStaticImage.propTypes = propTypes\n\nexport { StaticImage }\n","import {\n GatsbyImage as GatsbyImageBrowser,\n IGatsbyImageData,\n} from \"./gatsby-image.browser\"\nimport React from \"react\"\nimport {\n _getStaticImage,\n propTypes,\n IStaticImageProps,\n} from \"./static-image.server\"\n// These values are added by Babel. Do not add them manually\ninterface IPrivateProps {\n __imageData?: IGatsbyImageData\n __error?: string\n}\n\nconst StaticImage: React.FC<IStaticImageProps & IPrivateProps> =\n _getStaticImage(GatsbyImageBrowser)\n\nStaticImage.displayName = `StaticImage`\nStaticImage.propTypes = propTypes\n\nexport { StaticImage }\n","import * as React from \"react\"\nexport function LaterHydrator({\n children,\n}: React.PropsWithChildren<Record<string, unknown>>): React.ReactNode {\n React.useEffect(() => {\n // eslint-disable-next-line no-unused-expressions\n import(`./lazy-hydrate`)\n }, [])\n\n return children\n}\n","import React from \"react\"\nimport { LaterHydrator } from \".\"\n\nexport function wrapRootElement({ element }) {\n return <LaterHydrator>{element}</LaterHydrator>\n}\n","'use strict';\n\nconst preserveCamelCase = string => {\n\tlet isLastCharLower = false;\n\tlet isLastCharUpper = false;\n\tlet isLastLastCharUpper = false;\n\n\tfor (let i = 0; i < string.length; i++) {\n\t\tconst character = string[i];\n\n\t\tif (isLastCharLower && /[a-zA-Z]/.test(character) && character.toUpperCase() === character) {\n\t\t\tstring = string.slice(0, i) + '-' + string.slice(i);\n\t\t\tisLastCharLower = false;\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = true;\n\t\t\ti++;\n\t\t} else if (isLastCharUpper && isLastLastCharUpper && /[a-zA-Z]/.test(character) && character.toLowerCase() === character) {\n\t\t\tstring = string.slice(0, i - 1) + '-' + string.slice(i - 1);\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = false;\n\t\t\tisLastCharLower = true;\n\t\t} else {\n\t\t\tisLastCharLower = character.toLowerCase() === character && character.toUpperCase() !== character;\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = character.toUpperCase() === character && character.toLowerCase() !== character;\n\t\t}\n\t}\n\n\treturn string;\n};\n\nconst camelCase = (input, options) => {\n\tif (!(typeof input === 'string' || Array.isArray(input))) {\n\t\tthrow new TypeError('Expected the input to be `string | string[]`');\n\t}\n\n\toptions = Object.assign({\n\t\tpascalCase: false\n\t}, options);\n\n\tconst postProcess = x => options.pascalCase ? x.charAt(0).toUpperCase() + x.slice(1) : x;\n\n\tif (Array.isArray(input)) {\n\t\tinput = input.map(x => x.trim())\n\t\t\t.filter(x => x.length)\n\t\t\t.join('-');\n\t} else {\n\t\tinput = input.trim();\n\t}\n\n\tif (input.length === 0) {\n\t\treturn '';\n\t}\n\n\tif (input.length === 1) {\n\t\treturn options.pascalCase ? input.toUpperCase() : input.toLowerCase();\n\t}\n\n\tconst hasUpperCase = input !== input.toLowerCase();\n\n\tif (hasUpperCase) {\n\t\tinput = preserveCamelCase(input);\n\t}\n\n\tinput = input\n\t\t.replace(/^[_.\\- ]+/, '')\n\t\t.toLowerCase()\n\t\t.replace(/[_.\\- ]+(\\w|$)/g, (_, p1) => p1.toUpperCase())\n\t\t.replace(/\\d+(\\w|$)/g, m => m.toUpperCase());\n\n\treturn postProcess(input);\n};\n\nmodule.exports = camelCase;\n// TODO: Remove this for the next major release\nmodule.exports.default = camelCase;\n","\"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 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\", (0, _gatsby.withPrefix)(manifestFilename));\n }\n };\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;","import React from 'react';\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 _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\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\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\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\nvar isFunction = function isFunction(obj) {\n return typeof obj === 'function';\n};\n\nvar MDXContext = /*#__PURE__*/React.createContext({});\n\nvar withMDXComponents = function withMDXComponents(Component) {\n return function (props) {\n var allComponents = useMDXComponents(props.components);\n return /*#__PURE__*/React.createElement(Component, _extends({}, props, {\n components: allComponents\n }));\n };\n};\n\nvar useMDXComponents = function useMDXComponents(components) {\n var contextComponents = React.useContext(MDXContext);\n var allComponents = contextComponents;\n\n if (components) {\n allComponents = isFunction(components) ? components(contextComponents) : _objectSpread2(_objectSpread2({}, contextComponents), components);\n }\n\n return allComponents;\n};\n\nvar MDXProvider = function MDXProvider(props) {\n var allComponents = useMDXComponents(props.components);\n return /*#__PURE__*/React.createElement(MDXContext.Provider, {\n value: allComponents\n }, props.children);\n};\n\nvar TYPE_PROP_NAME = 'mdxType';\nvar DEFAULTS = {\n inlineCode: 'code',\n wrapper: function wrapper(_ref) {\n var children = _ref.children;\n return /*#__PURE__*/React.createElement(React.Fragment, {}, children);\n }\n};\nvar MDXCreateElement = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var propComponents = props.components,\n mdxType = props.mdxType,\n originalType = props.originalType,\n parentName = props.parentName,\n etc = _objectWithoutProperties(props, [\"components\", \"mdxType\", \"originalType\", \"parentName\"]);\n\n var components = useMDXComponents(propComponents);\n var type = mdxType;\n var Component = components[\"\".concat(parentName, \".\").concat(type)] || components[type] || DEFAULTS[type] || originalType;\n\n if (propComponents) {\n return /*#__PURE__*/React.createElement(Component, _objectSpread2(_objectSpread2({\n ref: ref\n }, etc), {}, {\n components: propComponents\n }));\n }\n\n return /*#__PURE__*/React.createElement(Component, _objectSpread2({\n ref: ref\n }, etc));\n});\nMDXCreateElement.displayName = 'MDXCreateElement';\n\nfunction createElement(type, props) {\n var args = arguments;\n var mdxType = props && props.mdxType;\n\n if (typeof type === 'string' || mdxType) {\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = MDXCreateElement;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.originalType = type;\n newProps[TYPE_PROP_NAME] = typeof type === 'string' ? type : mdxType;\n createElementArgArray[1] = newProps;\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n }\n\n return React.createElement.apply(null, createElementArgArray);\n }\n\n return React.createElement.apply(null, args);\n}\n\nexport { MDXContext, MDXProvider, createElement as mdx, useMDXComponents, withMDXComponents };","import { jsx } from '@theme-ui/core';\nimport { css, get } from '@theme-ui/css';\nimport { useEffect, createElement } from 'react';\nimport styled from '@emotion/styled';\nimport { useMDXComponents, MDXProvider as MDXProvider$1 } from '@mdx-js/react';\n\nfunction _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nvar _excluded = [\"theme\"]; // mdx components\n\nvar tags = ['p', 'b', 'i', 'a', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'img', 'pre', 'code', 'ol', 'ul', 'li', 'blockquote', 'hr', 'em', 'table', 'tr', 'th', 'td', 'em', 'strong', 'del', // mdx\n'inlineCode', 'thematicBreak', // other\n'div', // theme-ui\n'root'];\nvar aliases = {\n inlineCode: 'code',\n thematicBreak: 'hr',\n root: 'div'\n};\n\nvar isAlias = function isAlias(x) {\n return x in aliases;\n};\n\nvar alias = function alias(n) {\n return isAlias(n) ? aliases[n] : n;\n};\n\nvar propOverrides = {\n th: {\n align: 'textAlign'\n },\n td: {\n align: 'textAlign'\n }\n};\n\nvar themed = function themed(key) {\n return function (_ref) {\n var theme = _ref.theme,\n rest = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var propsStyle = propOverrides[key];\n var extraStyles = propsStyle ? Object.keys(rest).filter(function (prop) {\n return propsStyle[prop] !== undefined;\n }).reduce(function (acc, prop) {\n var _extends2;\n\n return _extends({}, acc, (_extends2 = {}, _extends2[propsStyle[prop]] = rest[prop], _extends2));\n }, {}) : undefined;\n return css(_extends({}, get(theme, \"styles.\" + key), extraStyles))(theme);\n };\n}; // opt out of typechecking whenever `as` prop is used\n\n\nvar Themed = styled('div')(themed('div'));\n/**\n * @deprecated since 0.6.0.\n *\n * `Styled` was renamed to `Themed` to avoid confusion with styled components.\n */\n\nvar Styled = styled('div')(themed('div'));\n\nvar warnStyled = function warnStyled(tag) {\n return function (props) {\n useEffect(function () {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('[theme-ui] The Styled component from \"@theme-ui/mdx\" is deprecated and will be removed in a future version. It has been renamed to Themed with the same API.');\n }\n }, []);\n return /*#__PURE__*/createElement(alias(tag), props);\n };\n};\n\nvar components = {};\ntags.forEach(function (tag) {\n // fixme?\n components[tag] = styled(alias(tag))(themed(tag));\n Themed[tag] = components[tag];\n Styled[tag] = styled(warnStyled(tag))(themed(tag));\n});\n\nvar createComponents = function createComponents(comps) {\n var next = _extends({}, components);\n\n var componentKeys = Object.keys(comps);\n componentKeys.forEach(function (key) {\n next[key] = styled(comps[key])(themed(key));\n });\n return next;\n};\n\nvar MDXProvider = function MDXProvider(_ref2) {\n var components = _ref2.components,\n children = _ref2.children;\n var outer = useMDXComponents();\n return jsx(MDXProvider$1, {\n components: createComponents(_extends({}, outer, components)),\n children: children\n });\n};\n\nexport { MDXProvider, Styled, Themed, components, themed };","import React from 'react';\nimport { useThemeUI, ThemeProvider as ThemeProvider$1, jsx, __themeUiDefaultContextValue } from '@theme-ui/core';\nimport { css } from '@theme-ui/css';\nimport { ColorModeProvider } from '@theme-ui/color-modes';\nimport { MDXProvider } from '@theme-ui/mdx';\nimport { Global } from '@emotion/react';\n\nvar RootStyles = function RootStyles() {\n return jsx(Global, {\n styles: function styles(emotionTheme) {\n var _theme$config;\n\n var theme = emotionTheme;\n\n var _ref = theme.config || theme,\n useRootStyles = _ref.useRootStyles;\n\n if (useRootStyles === false || theme.styles && !theme.styles.root) {\n return null;\n }\n\n var boxSizing = ((_theme$config = theme.config) == null ? void 0 : _theme$config.useBorderBox) === false ? undefined : 'border-box';\n return css({\n '*': {\n boxSizing: boxSizing\n },\n html: {\n variant: 'styles.root'\n },\n body: {\n margin: 0\n }\n })(theme);\n }\n });\n};\n\nvar ThemeProvider = function ThemeProvider(_ref2) {\n var theme = _ref2.theme,\n components = _ref2.components,\n children = _ref2.children;\n var outer = useThemeUI();\n var isTopLevel = outer === __themeUiDefaultContextValue;\n return /*#__PURE__*/React.createElement(ThemeProvider$1, {\n theme: theme\n }, /*#__PURE__*/React.createElement(ColorModeProvider, null, isTopLevel && /*#__PURE__*/React.createElement(RootStyles, null), /*#__PURE__*/React.createElement(MDXProvider, {\n components: components\n }, children)));\n};\n\nexport { ThemeProvider };","import baseTheme from '../theme';\n\nexport default {\n useLocalStorage: false,\n ...baseTheme,\n};\n","// add custom MDX components here\nconst components = {}\n\nexport default components\n","import { useStaticQuery, graphql } from 'gatsby'\n\nconst useThemeUiConfig = () => {\n const data = useStaticQuery(graphql`\n query {\n themeUiConfig(id: { eq: \"gatsby-plugin-theme-ui-config\" }) {\n preset\n prismPreset\n }\n }\n `)\n\n return data.themeUiConfig\n}\n\nexport default useThemeUiConfig\n","import { ThemeProvider, merge } from 'theme-ui'\nimport React from 'react'\n\nimport localTheme from './index'\nimport components from './components'\nimport useThemeUiConfig from './hooks/configOptions'\n\nconst Root = ({ children }) => {\n const themeUiConfig = useThemeUiConfig()\n const { preset, prismPreset } = themeUiConfig\n\n const theme = preset.default || preset\n\n const themeWithPrism = merge(theme, {\n styles: {\n pre: prismPreset,\n },\n })\n\n const fullTheme = merge(themeWithPrism, localTheme)\n\n return (\n <ThemeProvider theme={fullTheme} components={components}>\n {children}\n </ThemeProvider>\n )\n}\n\nexport const WrapRootElement = ({ element }) => {\n return <Root>{element}</Root>\n}\n","import * as React from \"react\"\nimport { WrapRootElement } from './src/provider'\n\nexport const wrapRootElement = ({ element }) => (\n <WrapRootElement element={element} />\n)\n","export default function requiredArgs(required, args) {\n if (args.length < required) {\n throw new TypeError(required + ' argument' + (required > 1 ? 's' : '') + ' required, but only ' + args.length + ' present');\n }\n}","import requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name toDate\n * @category Common Helpers\n * @summary Convert the given argument to an instance of Date.\n *\n * @description\n * Convert the given argument to an instance of Date.\n *\n * If the argument is an instance of Date, the function returns its clone.\n *\n * If the argument is a number, it is treated as a timestamp.\n *\n * If the argument is none of the above, the function returns Invalid Date.\n *\n * **Note**: *all* Date arguments passed to any *date-fns* function is processed by `toDate`.\n *\n * @param {Date|Number} argument - the value to convert\n * @returns {Date} the parsed date in the local time zone\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Clone the date:\n * const result = toDate(new Date(2014, 1, 11, 11, 30, 30))\n * //=> Tue Feb 11 2014 11:30:30\n *\n * @example\n * // Convert the timestamp to date:\n * const result = toDate(1392098430000)\n * //=> Tue Feb 11 2014 11:30:30\n */\n\nexport default function toDate(argument) {\n requiredArgs(1, arguments);\n var argStr = Object.prototype.toString.call(argument); // Clone the date\n\n if (argument instanceof Date || typeof argument === 'object' && argStr === '[object Date]') {\n // Prevent the date to lose the milliseconds when passed to new Date() in IE10\n return new Date(argument.getTime());\n } else if (typeof argument === 'number' || argStr === '[object Number]') {\n return new Date(argument);\n } else {\n if ((typeof argument === 'string' || argStr === '[object String]') && typeof console !== 'undefined') {\n // eslint-disable-next-line no-console\n console.warn(\"Starting with v2.0.0-beta.1 date-fns doesn't accept strings as date arguments. Please use `parseISO` to parse strings. See: https://git.io/fjule\"); // eslint-disable-next-line no-console\n\n console.warn(new Error().stack);\n }\n\n return new Date(NaN);\n }\n}","export default function toInteger(dirtyNumber) {\n if (dirtyNumber === null || dirtyNumber === true || dirtyNumber === false) {\n return NaN;\n }\n\n var number = Number(dirtyNumber);\n\n if (isNaN(number)) {\n return number;\n }\n\n return number < 0 ? Math.ceil(number) : Math.floor(number);\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} - the new date with the days added\n * @throws {TypeError} - 2 arguments required\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * const result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\n\nexport default function addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n\n if (isNaN(amount)) {\n return new Date(NaN);\n }\n\n if (!amount) {\n // If 0 days, no-op to avoid changing times in the hour before end of DST\n return date;\n }\n\n date.setDate(date.getDate() + amount);\n return date;\n}","import React, { useContext, useEffect, useState } from 'react';\nimport { useStaticQuery, graphql } from 'gatsby';\nimport { isBefore, subDays } from 'date-fns';\nimport Link from 'components/Link';\n\nimport { useIntl } from 'context/IntlContext';\nimport LocationContext from 'context/LocationContext';\nimport ViewerContext from 'context/ViewerContext';\n\nimport { replaceAll } from 'utils';\n\nimport playStoreIcon from 'images/icons/app-stores/android.svg';\nimport appStoreIcon from 'images/icons/app-stores/ios.svg';\n\nconst defaultValue = {\n login: '',\n signup: '',\n help: '',\n privacy: '',\n terms: '',\n cookies: '',\n apps: {\n iOS: '',\n android: '',\n },\n affiliatesTerms: {\n registrationForm: '',\n terms: '',\n },\n};\n\n/**\n * Provides links with the right language prefixes and profile type\n */\nconst LinksContext = React.createContext(defaultValue);\n\nconst linksQuery = graphql`\n query LinksQuery {\n site {\n siteMetadata {\n links {\n login {\n personal {\n lang\n link\n }\n business {\n lang\n link\n }\n }\n signup {\n personal {\n lang\n link\n }\n business {\n lang\n link\n }\n }\n help {\n lang\n link\n }\n affiliates {\n terms\n registrationForm\n registrationWithAffiliate\n }\n }\n }\n }\n \n }\n`;\n\nconst TARGET_CIRCLE_ID = 'click_id';\nconst TARGET_CIRCLE_DATE = 'click_id_date';\n\nconst getTargetCircleId = () => localStorage.getItem(TARGET_CIRCLE_ID);\nconst setTargetCircleId = (date) =>\n localStorage.setItem(TARGET_CIRCLE_ID, date);\n\nconst getTargetCircleDate = () => localStorage.getItem(TARGET_CIRCLE_DATE);\nconst setTargetCircleDate = (date) =>\n localStorage.setItem(TARGET_CIRCLE_DATE, date);\n\nconst removeTargetCircleInfo = () => {\n localStorage.removeItem(TARGET_CIRCLE_ID);\n localStorage.removeItem(TARGET_CIRCLE_DATE);\n};\n\nexport const LinksProvider = ({ profileType = 'personal', ...props }) => {\n const data = useStaticQuery(linksQuery);\n const { locale } = useIntl();\n const { search } = useContext(LocationContext);\n const { countryCode } = useContext(ViewerContext);\n const [clickId, setClickId] = useState(null);\n\n useEffect(() => {\n const storedId = getTargetCircleId();\n const paramId = search.click_id;\n\n // Check param, then localStorage, then state\n const id = paramId || storedId || clickId;\n\n // if there's no click_id coming from anywhere, stop\n if (!id) return;\n\n const date = getTargetCircleDate();\n\n // If the query param exists, record the ID and time\n if (paramId) {\n setTargetCircleDate(new Date().toUTCString());\n setTargetCircleId(paramId);\n setClickId(paramId);\n return;\n }\n\n // If no param exists and this is a repeat visit happening after 30 days\n if (date && isBefore(date, subDays(Date.now(), 30))) {\n removeTargetCircleInfo();\n return;\n }\n\n // If the ID comes from localStorage or it is (somehow) a different\n // click_id, set it in state\n if (clickId !== id) setClickId(id);\n }, [clickId, search]);\n\n const { links } = data.site.siteMetadata;\n const langWithUnderscore = locale.replace('-', '_');\n\n const signup = clickId\n ? replaceAll(links.affiliates.registrationWithAffiliate, {\n affiliateToken: clickId,\n langQueryParam: locale,\n profileTypeQueryParam: profileType,\n })\n : links.signup[profileType].find((l) => l.lang === langWithUnderscore);\n // const {\n // graphCMS: { pages },\n // } = data;\n\n // const doesSelectedCountryHaveOwnTermsPage =\n // pages.filter((p) => p.country === countryCode && p.name === 'terms')\n // .length > 0;\n\n // const termsLink =\n // doesSelectedCountryHaveOwnTermsPage && locale === 'en'\n // ? `/${locale}/terms/${countryCode}`\n // : `/${locale}/terms`;\n\n // const doesSelectedCountryHaveOwnPrivacyPage =\n // pages.filter(\n // (p) => p.country === countryCode && p.name === 'privacy-policy-cookies',\n // ).length > 0;\n // const privacyAndCookiesLink =\n // doesSelectedCountryHaveOwnPrivacyPage && locale === 'en'\n // ? `/${locale}/privacy-policy-cookies/${countryCode}`\n // : `/${locale}/privacy-policy-cookies`;\n\n const loginLink = `${\n links.login[profileType].find((l) => l.lang === langWithUnderscore)?.link\n }&country=${countryCode}`;\n\n const value = {\n login: loginLink,\n signup,\n help: links.help[langWithUnderscore],\n // privacy: privacyAndCookiesLink,\n // terms: termsLink,\n // cookies: privacyAndCookiesLink\n };\n\n return <LinksContext.Provider {...props} value={value} />;\n};\n\nexport const useLinks = () => useContext(LinksContext);\n\n// export const useAppLinks = () => {\n// const PlayStore = playStoreIcon;\n// const AppStore = appStoreIcon;\n// const links = useLinks();\n\n// return {\n// PlayStoreLink: (props) => (\n// <Link href={links.apps.android} title=\"Google Play Store\">\n// {/*\n// * The viewBox prop is to remove the blank space that surrounds the logo; see:\n// * https://github.com/steverichey/google-play-badge-svg/issues/2#issuecomment-341644889\n// */}\n// <PlayStore height=\"40px\" viewBox=\"10 10 135 40\" {...props} />\n// </Link>\n// ),\n// AppStoreLink: (props) => (\n// <Link href={links.apps.iOS} title=\"App Store\">\n// <AppStore height=\"40px\" {...props} />\n// </Link>\n// ),\n// };\n// };\n\nexport default LinksContext;\n","import toDate from \"../toDate/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name isBefore\n * @category Common Helpers\n * @summary Is the first date before the second one?\n *\n * @description\n * Is the first date before the second one?\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date that should be before the other one to return true\n * @param {Date|Number} dateToCompare - the date to compare with\n * @returns {Boolean} the first date is before the second date\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Is 10 July 1989 before 11 February 1987?\n * var result = isBefore(new Date(1989, 6, 10), new Date(1987, 1, 11))\n * //=> false\n */\n\nexport default function isBefore(dirtyDate, dirtyDateToCompare) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var dateToCompare = toDate(dirtyDateToCompare);\n return date.getTime() < dateToCompare.getTime();\n}","import toInteger from \"../_lib/toInteger/index.js\";\nimport addDays from \"../addDays/index.js\";\nimport requiredArgs from \"../_lib/requiredArgs/index.js\";\n/**\n * @name subDays\n * @category Day Helpers\n * @summary Subtract the specified number of days from the given date.\n *\n * @description\n * Subtract the specified number of days from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be subtracted. Positive decimals will be rounded using `Math.floor`, decimals less than zero will be rounded using `Math.ceil`.\n * @returns {Date} the new date with the days subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 10 days from 1 September 2014:\n * const result = subDays(new Date(2014, 8, 1), 10)\n * //=> Fri Aug 22 2014 00:00:00\n */\n\nexport default function subDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addDays(dirtyDate, -amount);\n}","export function replaceAll(str: string, mapObj: any) {\n const re = new RegExp(Object.keys(mapObj).join('|'), 'gi');\n\n return str.replace(re, (matched) => mapObj[matched]);\n}\n","import invariant from \"invariant\"; ////////////////////////////////////////////////////////////////////////////////\n// startsWith(string, search) - Check if `string` starts with `search`\n\nvar startsWith = function startsWith(string, search) {\n return string.substr(0, search.length) === search;\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.\n\n\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, \"<Router> 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// match(path, uri) - Matches just one path to a uri, also lol\n\n\nvar match = function match(path, uri) {\n return pick([{\n path: path\n }], uri);\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// <Link to=\"deeper\"/>\n// // instead of\n// <Link to=`{${props.uri}/deeper}`/>\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.\n\n\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); // ?a=b, /users?b=c => /users?a=b\n\n if (toSegments[0] === \"\") {\n return addQuery(basePathname, toQuery);\n } // profile, /users/789 => /users/789/profile\n\n\n if (!startsWith(toSegments[0], \".\")) {\n var pathname = baseSegments.concat(toSegments).join(\"/\");\n return addQuery((basePathname === \"/\" ? \"\" : \"/\") + pathname, toQuery);\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\n\n var allSegments = baseSegments.concat(toSegments);\n var segments = [];\n\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// insertParams(path, params)\n\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 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\n var fromString = segmentize(from).filter(filter).sort().join(\"/\");\n var toString = segmentize(to).filter(filter).sort().join(\"/\");\n return fromString === toString;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Junk\n\n\nvar paramRe = /^:(.+)/;\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};\n\nvar isDynamic = function isDynamic(segment) {\n return paramRe.test(segment);\n};\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 {\n route: route,\n score: score,\n index: index\n };\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 // 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 * Shallow compares two objects.\n * @param {Object} obj1 The first object to compare.\n * @param {Object} obj2 The second object to compare.\n */\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 };","var _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\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 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\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({\n location: location,\n action: \"POP\"\n });\n };\n\n source.addEventListener(\"popstate\", popstateListener);\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, {\n key: Date.now() + \"\"\n }); // try...catch iOS Safari limits to 100 pushState calls\n\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({\n location: location,\n action: \"PUSH\"\n });\n });\n return transition;\n }\n };\n}; ////////////////////////////////////////////////////////////////////////////////\n// Stores history entries in memory for testing or other platforms like Native\n\n\nvar createMemorySource = function createMemorySource() {\n var initialPath = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"/\";\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 return {\n get location() {\n return stack[index];\n },\n\n addEventListener: function addEventListener(name, fn) {},\n removeEventListener: function removeEventListener(name, fn) {},\n history: {\n get entries() {\n return stack;\n },\n\n get index() {\n return index;\n },\n\n get state() {\n return states[index];\n },\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({\n pathname: pathname,\n search: search.length ? \"?\" + search : search\n });\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] = {\n pathname: pathname,\n search: search\n };\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// global history - uses window.history as the source if available, otherwise a\n// memory history\n\n\nvar canUseDOM = !!(typeof window !== \"undefined\" && window.document && window.document.createElement);\n\nvar getSource = function getSource() {\n return canUseDOM ? window : createMemorySource();\n};\n\nvar globalHistory = createHistory(getSource());\nvar navigate = globalHistory.navigate; ////////////////////////////////////////////////////////////////////////////////\n\nexport { globalHistory, navigate, createHistory, createMemorySource };","var _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\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\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, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n/* eslint-disable jsx-a11y/anchor-has-content */\n\n\nimport React, { useContext, createContext } from \"react\";\nimport invariant from \"invariant\";\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\nvar createNamedContext = function createNamedContext(name, defaultValue) {\n var Ctx = createContext(defaultValue);\n Ctx.displayName = name;\n return Ctx;\n}; ////////////////////////////////////////////////////////////////////////////////\n// Location Context/Provider\n\n\nvar LocationContext = createNamedContext(\"Location\"); // sets up a listener if there isn't one already so apps don't need to be\n// wrapped in some top level provider\n\nvar Location = function Location(_ref) {\n var children = _ref.children;\n return React.createElement(LocationContext.Consumer, null, function (context) {\n return context ? children(context) : React.createElement(LocationProvider, null, children);\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: {\n unlisten: null\n }\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 return {\n navigate: navigate,\n location: location\n };\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, {\n replace: true\n });\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\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 {\n context: _this2.getContext()\n };\n });\n }\n });\n });\n });\n };\n\n LocationProvider.prototype.componentWillUnmount = function componentWillUnmount() {\n var refs = this.state.refs;\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 return React.createElement(LocationContext.Provider, {\n value: context\n }, typeof children === \"function\" ? children(context) : children || null);\n };\n\n return LocationProvider;\n}(React.Component); ////////////////////////////////////////////////////////////////////////////////\n\n\nLocationProvider.defaultProps = {\n history: globalHistory\n};\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0;\n\nvar ServerLocation = function ServerLocation(_ref2) {\n var url = _ref2.url,\n children = _ref2.children;\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(LocationContext.Provider, {\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 }, children);\n}; ////////////////////////////////////////////////////////////////////////////////\n// Sets baseuri and basepath for nested routers and links\n\n\nvar BaseContext = createNamedContext(\"Base\", {\n baseuri: \"/\",\n basepath: \"/\",\n navigate: globalHistory.navigate\n}); ////////////////////////////////////////////////////////////////////////////////\n// The main event, welcome to the show everybody.\n\nvar Router = function Router(props) {\n return React.createElement(BaseContext.Consumer, null, function (baseContext) {\n return React.createElement(Location, null, function (locationContext) {\n return React.createElement(RouterImpl, _extends({}, baseContext, locationContext, props));\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 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; // 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(Router, {\n location: location,\n primary: primary\n }, element.props.children) : undefined); // using 'div' for < 16.3 support\n\n var FocusWrapper = primary ? FocusHandler : component; // don't pass any props to 'div'\n\n var wrapperProps = primary ? _extends({\n uri: uri,\n location: location,\n component: component\n }, domProps) : domProps;\n return React.createElement(BaseContext.Provider, {\n value: {\n baseuri: uri,\n basepath: basepath,\n navigate: props.navigate\n }\n }, React.createElement(FocusWrapper, wrapperProps, clone));\n } else {\n // Not sure if we want this, would require index routes at every level\n // warning(\n // false,\n // `<Router basepath=\"${basepath}\">\\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 = () => <div>Not Found!</div>\n // \\n\\t<Router>\\n\\t <NotFound default/>\\n\\t {/* ... */}\\n\\t</Router>`\n // );\n return null;\n }\n };\n\n return RouterImpl;\n}(React.PureComponent);\n\nRouterImpl.defaultProps = {\n primary: true\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(FocusContext.Consumer, null, function (requestFocus) {\n return React.createElement(FocusHandlerImpl, _extends({}, domProps, {\n component: component,\n requestFocus: requestFocus,\n uri: uri,\n location: location\n }));\n });\n}; // don't focus on initial render\n\n\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\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\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 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(Comp, _extends({\n style: _extends({\n outline: \"none\"\n }, style),\n tabIndex: \"-1\",\n ref: function ref(n) {\n return _this5.node = n;\n }\n }, domProps), React.createElement(FocusContext.Provider, {\n value: this.requestFocus\n }, this.props.children));\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(BaseContext.Consumer, null, function (_ref5) {\n var basepath = _ref5.basepath,\n baseuri = _ref5.baseuri;\n return React.createElement(Location, null, 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 return React.createElement(\"a\", _extends({\n ref: ref || innerRef,\n \"aria-current\": isCurrent ? \"page\" : undefined\n }, anchorProps, getProps({\n isCurrent: isCurrent,\n isPartiallyCurrent: isPartiallyCurrent,\n href: href,\n location: location\n }), {\n href: href,\n onClick: function onClick(event) {\n if (anchorProps.onClick) anchorProps.onClick(event);\n\n if (shouldNavigate(event)) {\n event.preventDefault();\n var shouldReplace = replace;\n\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\n navigate(href, {\n state: state,\n replace: shouldReplace\n });\n }\n }\n }));\n });\n });\n});\nLink.displayName = \"Link\";\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0; ////////////////////////////////////////////////////////////////////////////////\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 } // Support React < 16 with this hook\n\n\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), {\n replace: replace,\n state: state\n });\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(BaseContext.Consumer, null, function (_ref7) {\n var baseuri = _ref7.baseuri;\n return React.createElement(Location, null, function (locationContext) {\n return React.createElement(RedirectImpl, _extends({}, locationContext, {\n baseuri: baseuri\n }, props));\n });\n });\n};\n\nprocess.env.NODE_ENV !== \"production\" ? void 0 : void 0; ////////////////////////////////////////////////////////////////////////////////\n\nvar Match = function Match(_ref8) {\n var path = _ref8.path,\n children = _ref8.children;\n return React.createElement(BaseContext.Consumer, null, function (_ref9) {\n var baseuri = _ref9.baseuri;\n return React.createElement(Location, null, function (_ref10) {\n var navigate = _ref10.navigate,\n location = _ref10.location;\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// Hooks\n\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(BaseContext);\n\n if (!context) {\n throw new Error(\"useNavigate hook was used but a BaseContext.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 var results = match(context.basepath, location.pathname);\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\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 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// Junk\n\n\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\n !(element.props.path || element.props.default || element.type === Redirect) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"<Router>: Children of <Router> must have a `path` or `default` prop, or be a `<Redirect>`. None found on element type `\" + element.type + \"`\") : invariant(false) : void 0;\n !!(element.type === Redirect && (!element.props.from || !element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"<Redirect from=\\\"\" + element.props.from + \"\\\" to=\\\"\" + element.props.to + \"\\\"/> requires both \\\"from\\\" and \\\"to\\\" props when inside a <Router>.\") : invariant(false) : void 0;\n !!(element.type === Redirect && !validateRedirect(element.props.from, element.props.to)) ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"<Redirect from=\\\"\" + element.props.from + \" to=\\\"\" + element.props.to + \"\\\"/> 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 {\n value: element,\n default: true\n };\n }\n\n var elementPath = element.type === Redirect ? element.props.from : element.props.path;\n var path = elementPath === \"/\" ? basepath : stripSlashes(basepath) + \"/\" + stripSlashes(elementPath);\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 };","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","/**\n * 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\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","var React = require('react');\n\nfunction SVGTHESAFECOMPANY (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"style\",{\"type\":\"text/css\",\"key\":0},\"\\r\\n\\t.st0{fill:url(#SVGID_1_);}\\r\\n\\t.st1{fill:url(#SVGID_00000005238077914764499970000015240633488967945917_);}\\r\\n\\t.st2{fill:url(#SVGID_00000080898907777520164350000005262043670193963705_);}\\r\\n\\t.st3{fill:url(#SVGID_00000131358096272896654400000014993771527459719603_);}\\r\\n\\t.st4{fill:url(#SVGID_00000042735067826618989880000012621433553707394205_);}\\r\\n\\t.st5{fill:url(#SVGID_00000069397182694411238260000007622679458673791638_);}\\r\\n\\t.st6{fill:url(#SVGID_00000088839723731152354880000014265881561328350387_);}\\r\\n\"),React.createElement(\"g\",{\"key\":1},[React.createElement(\"g\",{\"key\":0},React.createElement(\"g\",null,React.createElement(\"g\",null,[React.createElement(\"path\",{\"d\":\"M1007,443.19c0.49,0.49,0.73,1.08,0.73,1.78v16.1c0,0.7-0.25,1.29-0.73,1.78c-0.49,0.49-1.08,0.73-1.78,0.73h-38.47\\r\\n\\t\\t\\t\\t\\tc-0.7,0-1.05,0.35-1.05,1.05v121.69c0,0.7-0.25,1.29-0.73,1.78c-0.49,0.49-1.08,0.73-1.78,0.73h-19.24\\r\\n\\t\\t\\t\\t\\tc-0.7,0-1.29-0.24-1.78-0.73c-0.49-0.49-0.73-1.08-0.73-1.78V464.63c0-0.7-0.35-1.05-1.05-1.05h-37.01\\r\\n\\t\\t\\t\\t\\tc-0.7,0-1.29-0.24-1.78-0.73c-0.49-0.49-0.73-1.08-0.73-1.78v-16.1c0-0.7,0.24-1.29,0.73-1.78c0.49-0.49,1.08-0.73,1.78-0.73\\r\\n\\t\\t\\t\\t\\th101.83C1005.92,442.46,1006.51,442.71,1007,443.19z\",\"key\":0}),React.createElement(\"path\",{\"d\":\"M1106.11,490.35c6.76,6.69,10.14,15.82,10.14,27.39v68.58c0,0.7-0.25,1.29-0.73,1.78c-0.49,0.49-1.08,0.73-1.78,0.73\\r\\n\\t\\t\\t\\t\\th-19.24c-0.7,0-1.29-0.24-1.78-0.73c-0.49-0.49-0.73-1.08-0.73-1.78v-63.56c0-6.41-1.81-11.6-5.44-15.58\\r\\n\\t\\t\\t\\t\\tc-3.63-3.97-8.44-5.96-14.43-5.96c-6,0-10.84,1.95-14.53,5.85c-3.7,3.9-5.54,9.06-5.54,15.47v63.77c0,0.7-0.25,1.29-0.73,1.78\\r\\n\\t\\t\\t\\t\\tc-0.49,0.49-1.08,0.73-1.78,0.73h-19.24c-0.7,0-1.29-0.24-1.78-0.73c-0.49-0.49-0.73-1.08-0.73-1.78V444.97\\r\\n\\t\\t\\t\\t\\tc0-0.7,0.24-1.29,0.73-1.78c0.49-0.49,1.08-0.73,1.78-0.73h19.24c0.7,0,1.29,0.25,1.78,0.73c0.49,0.49,0.73,1.08,0.73,1.78\\r\\n\\t\\t\\t\\t\\tv46.21c0,0.42,0.14,0.7,0.42,0.84c0.28,0.14,0.49,0,0.63-0.42c5.71-7.53,14.36-11.29,25.93-11.29\\r\\n\\t\\t\\t\\t\\tC1090.32,480.31,1099.35,483.65,1106.11,490.35z\",\"key\":1}),React.createElement(\"path\",{\"d\":\"M1231.67,535.09l-0.21,6.48c0,1.67-0.84,2.51-2.51,2.51h-65.45c-0.7,0-1.04,0.35-1.04,1.04\\r\\n\\t\\t\\t\\t\\tc0.42,4.6,1.04,7.74,1.88,9.41c3.35,10.04,11.5,15.13,24.46,15.26c9.48,0,17.01-3.9,22.58-11.71c0.56-0.84,1.25-1.25,2.09-1.25\\r\\n\\t\\t\\t\\t\\tc0.55,0,1.04,0.21,1.46,0.63l12.96,10.66c1.25,0.98,1.46,2.09,0.63,3.35c-4.32,6.13-10.07,10.87-17.25,14.22\\r\\n\\t\\t\\t\\t\\tc-7.18,3.35-15.16,5.02-23.94,5.02c-10.87,0-20.11-2.44-27.71-7.32c-7.6-4.88-13.14-11.71-16.62-20.49\\r\\n\\t\\t\\t\\t\\tc-3.21-7.53-4.81-17.98-4.81-31.36c0-8.08,0.84-14.64,2.51-19.66c2.79-9.76,8.05-17.46,15.79-23.1\\r\\n\\t\\t\\t\\t\\tc7.74-5.65,17.04-8.47,27.91-8.47c27.46,0,42.93,14.36,46.42,43.07C1231.39,526.87,1231.67,530.77,1231.67,535.09z\\r\\n\\t\\t\\t\\t\\t M1171.56,505.09c-3.42,2.58-5.82,6.17-7.21,10.77c-0.84,2.37-1.4,5.44-1.67,9.2c-0.28,0.7,0,1.05,0.84,1.05h42.45\\r\\n\\t\\t\\t\\t\\tc0.7,0,1.05-0.35,1.05-1.05c-0.28-3.48-0.7-6.13-1.25-7.95c-1.25-5.02-3.73-8.92-7.42-11.71c-3.69-2.79-8.33-4.18-13.9-4.18\\r\\n\\t\\t\\t\\t\\tC1179.26,501.22,1174.97,502.51,1171.56,505.09z\",\"key\":2}),React.createElement(\"path\",{\"d\":\"M1316.77,585.27c-8.09-3.48-14.32-8.36-18.71-14.64c-4.39-6.27-6.59-13.66-6.59-22.16v-5.23c0-0.7,0.24-1.29,0.73-1.78\\r\\n\\t\\t\\t\\t\\tc0.49-0.49,1.08-0.73,1.78-0.73h18.61c0.7,0,1.29,0.25,1.78,0.73c0.49,0.49,0.73,1.08,0.73,1.78v3.97c0,6.41,2.86,11.75,8.57,16\\r\\n\\t\\t\\t\\t\\tc5.71,4.25,13.52,6.38,23.42,6.38c8.5,0,14.91-1.81,19.24-5.44c4.32-3.62,6.48-8.29,6.48-14.01c0-3.9-1.19-7.21-3.55-9.93\\r\\n\\t\\t\\t\\t\\tc-2.37-2.72-5.75-5.19-10.14-7.42c-4.39-2.23-10.98-5.02-19.76-8.36c-9.9-3.62-17.91-7.04-24.05-10.25\\r\\n\\t\\t\\t\\t\\tc-6.14-3.21-11.26-7.56-15.37-13.07c-4.11-5.51-6.17-12.37-6.17-20.6c0-12.26,4.46-21.96,13.38-29.06\\r\\n\\t\\t\\t\\t\\tc8.92-7.11,20.84-10.66,35.76-10.66c10.45,0,19.69,1.81,27.71,5.44c8.01,3.63,14.25,8.68,18.71,15.16\\r\\n\\t\\t\\t\\t\\tc4.46,6.48,6.69,13.98,6.69,22.48v3.55c0,0.7-0.25,1.29-0.73,1.78c-0.49,0.49-1.08,0.73-1.78,0.73h-18.82\\r\\n\\t\\t\\t\\t\\tc-0.7,0-1.29-0.24-1.78-0.73c-0.49-0.49-0.73-1.08-0.73-1.78v-2.3c0-6.55-2.69-12.09-8.05-16.62c-5.37-4.53-12.79-6.8-22.27-6.8\\r\\n\\t\\t\\t\\t\\tc-7.67,0-13.63,1.6-17.88,4.81c-4.25,3.21-6.38,7.74-6.38,13.59c0,4.18,1.11,7.6,3.35,10.25c2.23,2.65,5.57,5.05,10.04,7.21\\r\\n\\t\\t\\t\\t\\tc4.46,2.16,11.36,4.91,20.7,8.26c9.9,3.76,17.81,7.18,23.73,10.25c5.92,3.07,11.01,7.35,15.26,12.86\\r\\n\\t\\t\\t\\t\\tc4.25,5.51,6.38,12.37,6.38,20.6c0,12.54-4.64,22.51-13.9,29.9c-9.27,7.39-21.92,11.08-37.95,11.08\\r\\n\\t\\t\\t\\t\\tC1334.33,590.5,1324.85,588.76,1316.77,585.27z\",\"key\":3}),React.createElement(\"path\",{\"d\":\"M1482.16,484.91c6.69,3.07,11.85,7.29,15.47,12.65c3.62,5.37,5.44,11.47,5.44,18.3v70.46c0,0.7-0.25,1.29-0.73,1.78\\r\\n\\t\\t\\t\\t\\tc-0.49,0.49-1.08,0.73-1.78,0.73h-19.24c-0.7,0-1.29-0.24-1.78-0.73c-0.49-0.49-0.73-1.08-0.73-1.78v-6.69\\r\\n\\t\\t\\t\\t\\tc0-0.42-0.14-0.66-0.42-0.73c-0.28-0.07-0.56,0.04-0.84,0.31c-6.83,7.53-16.73,11.29-29.69,11.29\\r\\n\\t\\t\\t\\t\\tc-10.46,0-19.06-2.65-25.82-7.95c-6.76-5.3-10.14-13.17-10.14-23.63c0-10.87,3.8-19.34,11.4-25.4c7.6-6.06,18.3-9.1,32.1-9.1\\r\\n\\t\\t\\t\\t\\th22.37c0.7,0,1.05-0.35,1.05-1.05v-5.02c0-5.44-1.6-9.65-4.81-12.65c-3.21-3-8.02-4.5-14.43-4.5c-5.3,0-9.59,0.94-12.86,2.82\\r\\n\\t\\t\\t\\t\\tc-3.28,1.88-5.33,4.5-6.17,7.84c-0.42,1.67-1.39,2.37-2.93,2.09l-20.28-2.51c-0.7-0.14-1.29-0.38-1.78-0.73\\r\\n\\t\\t\\t\\t\\tc-0.49-0.35-0.66-0.8-0.52-1.36c1.11-8.5,5.68-15.47,13.7-20.91c8.01-5.44,18.09-8.15,30.21-8.15\\r\\n\\t\\t\\t\\t\\tC1467.73,480.31,1475.47,481.84,1482.16,484.91z M1471.5,565.83c4.88-3.62,7.32-8.22,7.32-13.8v-9.83c0-0.7-0.35-1.05-1.05-1.05\\r\\n\\t\\t\\t\\t\\th-17.56c-7.39,0-13.21,1.4-17.46,4.18c-4.25,2.79-6.38,6.76-6.38,11.92c0,4.46,1.64,7.91,4.91,10.35\\r\\n\\t\\t\\t\\t\\tc3.27,2.44,7.49,3.66,12.65,3.66C1460.76,571.26,1466.62,569.46,1471.5,565.83z\",\"key\":4}),React.createElement(\"path\",{\"d\":\"M1583.05,482.5c0.49,0.49,0.73,1.08,0.73,1.78v16.52c0,0.7-0.25,1.29-0.73,1.78c-0.49,0.49-1.08,0.73-1.78,0.73h-20.7\\r\\n\\t\\t\\t\\t\\tc-0.7,0-1.05,0.35-1.05,1.05v81.97c0,0.7-0.24,1.29-0.73,1.78c-0.49,0.49-1.08,0.73-1.78,0.73h-19.24\\r\\n\\t\\t\\t\\t\\tc-0.7,0-1.29-0.24-1.78-0.73c-0.49-0.49-0.73-1.08-0.73-1.78v-81.97c0-0.7-0.35-1.05-1.04-1.05h-12.96\\r\\n\\t\\t\\t\\t\\tc-0.7,0-1.29-0.24-1.78-0.73c-0.49-0.49-0.73-1.08-0.73-1.78v-16.52c0-0.7,0.24-1.29,0.73-1.78c0.49-0.49,1.08-0.73,1.78-0.73\\r\\n\\t\\t\\t\\t\\th12.96c0.7,0,1.04-0.35,1.04-1.05v-3.76c0-9.06,1.18-16.06,3.55-21.01c2.37-4.95,6.27-8.47,11.71-10.56s13.1-3.06,23-2.93h7.32\\r\\n\\t\\t\\t\\t\\tc0.7,0,1.29,0.25,1.78,0.73c0.49,0.49,0.73,1.08,0.73,1.78v14.64c0,0.7-0.25,1.29-0.73,1.78c-0.49,0.49-1.08,0.73-1.78,0.73\\r\\n\\t\\t\\t\\t\\th-5.44c-6,0-10.14,1.19-12.44,3.55c-2.3,2.37-3.45,6.69-3.45,12.96v2.09c0,0.7,0.35,1.05,1.05,1.05h20.7\\r\\n\\t\\t\\t\\t\\tC1581.97,481.77,1582.56,482.02,1583.05,482.5z\",\"key\":5}),React.createElement(\"path\",{\"d\":\"M1687.7,535.09l-0.21,6.48c0,1.67-0.84,2.51-2.51,2.51h-65.45c-0.7,0-1.04,0.35-1.04,1.04c0.42,4.6,1.04,7.74,1.88,9.41\\r\\n\\t\\t\\t\\t\\tc3.35,10.04,11.5,15.13,24.46,15.26c9.48,0,17.01-3.9,22.58-11.71c0.56-0.84,1.25-1.25,2.09-1.25c0.55,0,1.04,0.21,1.46,0.63\\r\\n\\t\\t\\t\\t\\tl12.96,10.66c1.25,0.98,1.46,2.09,0.63,3.35c-4.32,6.13-10.07,10.87-17.25,14.22c-7.18,3.35-15.16,5.02-23.94,5.02\\r\\n\\t\\t\\t\\t\\tc-10.87,0-20.11-2.44-27.71-7.32c-7.6-4.88-13.14-11.71-16.62-20.49c-3.21-7.53-4.81-17.98-4.81-31.36\\r\\n\\t\\t\\t\\t\\tc0-8.08,0.84-14.64,2.51-19.66c2.79-9.76,8.05-17.46,15.79-23.1c7.74-5.65,17.04-8.47,27.91-8.47\\r\\n\\t\\t\\t\\t\\tc27.46,0,42.93,14.36,46.42,43.07C1687.42,526.87,1687.7,530.77,1687.7,535.09z M1627.59,505.09\\r\\n\\t\\t\\t\\t\\tc-3.42,2.58-5.82,6.17-7.21,10.77c-0.84,2.37-1.4,5.44-1.67,9.2c-0.28,0.7,0,1.05,0.84,1.05h42.45c0.7,0,1.05-0.35,1.05-1.05\\r\\n\\t\\t\\t\\t\\tc-0.28-3.48-0.7-6.13-1.25-7.95c-1.25-5.02-3.73-8.92-7.42-11.71c-3.69-2.79-8.33-4.18-13.9-4.18\\r\\n\\t\\t\\t\\t\\tC1635.29,501.22,1631,502.51,1627.59,505.09z\",\"key\":6}),React.createElement(\"path\",{\"d\":\"M923.11,732.15c-5.41-2.81-9.6-6.79-12.56-11.94c-2.96-5.15-4.45-11.05-4.45-17.71v-44.47c0-6.66,1.48-12.51,4.45-17.55\\r\\n\\t\\t\\t\\t\\tc2.96-5.04,7.15-8.97,12.56-11.78c5.41-2.81,11.65-4.21,18.72-4.21c6.97,0,13.16,1.38,18.57,4.13\\r\\n\\t\\t\\t\\t\\tc5.41,2.76,9.6,6.63,12.56,11.62s4.45,10.77,4.45,17.32v0.16c0,0.52-0.16,0.94-0.47,1.25c-0.31,0.31-0.68,0.47-1.09,0.47\\r\\n\\t\\t\\t\\t\\tl-5.15,0.31c-1.04,0-1.56-0.52-1.56-1.56v-0.47c0-7.8-2.5-14.07-7.49-18.8c-4.99-4.73-11.6-7.1-19.82-7.1\\r\\n\\t\\t\\t\\t\\tc-8.32,0-14.98,2.37-19.97,7.1c-4.99,4.73-7.49,11-7.49,18.8v45.25c0,7.8,2.52,14.1,7.57,18.88c5.04,4.79,11.68,7.18,19.89,7.18\\r\\n\\t\\t\\t\\t\\tc8.22,0,14.82-2.39,19.82-7.18c4.99-4.78,7.49-11.08,7.49-18.88v-0.31c0-0.94,0.52-1.4,1.56-1.4l5.15,0.31\\r\\n\\t\\t\\t\\t\\tc1.04,0,1.56,0.47,1.56,1.4c0,6.55-1.48,12.35-4.45,17.4c-2.96,5.05-7.15,8.97-12.56,11.78c-5.41,2.81-11.6,4.21-18.57,4.21\\r\\n\\t\\t\\t\\t\\tC934.76,736.36,928.52,734.96,923.11,732.15z\",\"key\":7}),React.createElement(\"path\",{\"d\":\"M1011.74,730.43c-5.2-3.85-8.74-9-10.61-15.45c-1.15-4.16-1.72-10.66-1.72-19.5c0-8.84,0.57-15.29,1.72-19.35\\r\\n\\t\\t\\t\\t\\tc1.87-6.45,5.38-11.57,10.53-15.37c5.15-3.8,11.47-5.7,18.96-5.7c7.28,0,13.55,1.93,18.8,5.77c5.25,3.85,8.76,8.95,10.53,15.29\\r\\n\\t\\t\\t\\t\\tc0.62,2.39,1.04,5.07,1.25,8.04c0.21,2.96,0.31,6.74,0.31,11.31c0,4.79-0.11,8.64-0.31,11.55c-0.21,2.91-0.62,5.57-1.25,7.96\\r\\n\\t\\t\\t\\t\\tc-1.77,6.45-5.28,11.6-10.53,15.45c-5.25,3.85-11.57,5.77-18.96,5.77C1023.18,736.21,1016.94,734.28,1011.74,730.43z\\r\\n\\t\\t\\t\\t\\t M1044.58,724.27c3.9-3.07,6.42-7.1,7.57-12.09c0.73-2.81,1.09-8.32,1.09-16.54c0-8.32-0.31-13.83-0.94-16.54\\r\\n\\t\\t\\t\\t\\tc-1.15-5.09-3.67-9.15-7.57-12.17c-3.9-3.02-8.66-4.52-14.28-4.52s-10.35,1.51-14.2,4.52c-3.85,3.02-6.35,7.08-7.49,12.17\\r\\n\\t\\t\\t\\t\\tc-0.73,3.23-1.09,8.74-1.09,16.54s0.36,13.32,1.09,16.54c1.14,5.1,3.64,9.16,7.49,12.17c3.85,3.02,8.58,4.53,14.2,4.53\\r\\n\\t\\t\\t\\t\\tC1035.97,728.87,1040.68,727.34,1044.58,724.27z\",\"key\":8}),React.createElement(\"path\",{\"d\":\"M1182.44,662.09c4.58,4.58,6.87,10.87,6.87,18.88v52.43c0,1.04-0.52,1.56-1.56,1.56h-4.99c-1.04,0-1.56-0.52-1.56-1.56\\r\\n\\t\\t\\t\\t\\tv-50.87c0-6.14-1.79-11-5.38-14.59s-8.25-5.38-13.96-5.38c-6.03,0-10.9,1.77-14.59,5.3c-3.69,3.54-5.54,8.32-5.54,14.36v51.18\\r\\n\\t\\t\\t\\t\\tc0,1.04-0.52,1.56-1.56,1.56h-4.99c-1.04,0-1.56-0.52-1.56-1.56v-50.87c0-6.14-1.77-11-5.3-14.59\\r\\n\\t\\t\\t\\t\\tc-3.54-3.59-8.17-5.38-13.89-5.38c-6.14,0-11,1.77-14.59,5.3c-3.59,3.54-5.38,8.32-5.38,14.36v51.18c0,1.04-0.52,1.56-1.56,1.56\\r\\n\\t\\t\\t\\t\\th-5.15c-1.04,0-1.56-0.52-1.56-1.56v-75.52c0-1.04,0.52-1.56,1.56-1.56h5.15c1.04,0,1.56,0.52,1.56,1.56v7.02\\r\\n\\t\\t\\t\\t\\tc0,0.21,0.1,0.37,0.31,0.47c0.21,0.1,0.36,0.05,0.47-0.16c2.18-3.33,5.12-5.82,8.82-7.49c3.69-1.66,7.88-2.5,12.56-2.5\\r\\n\\t\\t\\t\\t\\tc5.41,0,10.06,1.17,13.97,3.51c3.9,2.34,6.84,5.64,8.82,9.91c0.21,0.42,0.47,0.47,0.78,0.16c2.18-4.47,5.36-7.85,9.52-10.14\\r\\n\\t\\t\\t\\t\\tc4.16-2.29,9-3.43,14.51-3.43C1171.77,655.22,1177.86,657.51,1182.44,662.09z\",\"key\":9}),React.createElement(\"path\",{\"d\":\"M1275.75,683.86c0.21,2.96,0.31,6.84,0.31,11.62c0,4.79-0.11,8.66-0.31,11.62c-0.21,2.96-0.62,5.64-1.25,8.04\\r\\n\\t\\t\\t\\t\\tc-1.56,6.45-4.81,11.57-9.75,15.37c-4.94,3.8-11.05,5.7-18.33,5.7c-4.58,0-8.66-0.91-12.25-2.73c-3.59-1.82-6.48-4.45-8.66-7.88\\r\\n\\t\\t\\t\\t\\tc-0.21-0.21-0.39-0.29-0.55-0.23c-0.16,0.05-0.23,0.23-0.23,0.55v38.07c0,1.04-0.52,1.56-1.56,1.56h-5.15\\r\\n\\t\\t\\t\\t\\tc-1.04,0-1.56-0.52-1.56-1.56v-106.1c0-1.04,0.52-1.56,1.56-1.56h5.15c1.04,0,1.56,0.52,1.56,1.56v7.49\\r\\n\\t\\t\\t\\t\\tc0,0.31,0.08,0.49,0.23,0.55c0.16,0.05,0.34-0.02,0.55-0.23c2.18-3.43,5.07-6.06,8.66-7.88c3.59-1.82,7.67-2.73,12.25-2.73\\r\\n\\t\\t\\t\\t\\tc7.07,0,13.05,1.87,17.94,5.62c4.89,3.75,8.22,8.79,9.99,15.14C1275.07,678.21,1275.54,680.89,1275.75,683.86z M1265.6,713.89\\r\\n\\t\\t\\t\\t\\tc0.83-1.87,1.4-4.06,1.72-6.55c0.31-2.5,0.47-6.4,0.47-11.7c0-5.41-0.16-9.33-0.47-11.78c-0.31-2.44-0.83-4.71-1.56-6.79\\r\\n\\t\\t\\t\\t\\tc-1.04-4.37-3.38-7.9-7.02-10.61c-3.64-2.7-8.01-4.06-13.11-4.06c-4.89,0-8.97,1.38-12.25,4.13c-3.28,2.76-5.49,6.27-6.63,10.53\\r\\n\\t\\t\\t\\t\\tc-0.73,1.87-1.25,4.06-1.56,6.55c-0.31,2.5-0.47,6.5-0.47,12.01c0,5.51,0.16,9.52,0.47,12.01c0.31,2.5,0.83,4.79,1.56,6.87\\r\\n\\t\\t\\t\\t\\tc1.14,4.27,3.35,7.72,6.63,10.38c3.28,2.65,7.36,3.98,12.25,3.98c4.78,0,8.89-1.22,12.33-3.67c3.43-2.44,5.77-5.64,7.02-9.6\\r\\n\\t\\t\\t\\t\\tL1265.6,713.89z\",\"key\":10}),React.createElement(\"path\",{\"d\":\"M1347.68,662.17c4.78,4.74,7.18,11.11,7.18,19.11v52.12c0,1.04-0.52,1.56-1.56,1.56h-5.15c-1.04,0-1.56-0.52-1.56-1.56\\r\\n\\t\\t\\t\\t\\tv-7.33c0-0.21-0.08-0.36-0.23-0.47c-0.16-0.1-0.34-0.05-0.55,0.16c-2.71,3.43-6.22,6.03-10.53,7.8\\r\\n\\t\\t\\t\\t\\tc-4.32,1.77-9.13,2.65-14.43,2.65c-7.18,0-13.26-1.82-18.26-5.46c-4.99-3.64-7.49-9.21-7.49-16.7c0-7.7,2.86-13.78,8.58-18.26\\r\\n\\t\\t\\t\\t\\tc5.72-4.47,13.58-6.71,23.56-6.71h18.72c0.42,0,0.62-0.21,0.62-0.62v-7.02c0-5.82-1.64-10.45-4.92-13.89\\r\\n\\t\\t\\t\\t\\tc-3.28-3.43-8.3-5.15-15.06-5.15c-5.31,0-9.67,1.09-13.11,3.28s-5.57,5.1-6.4,8.74c-0.31,1.04-0.94,1.51-1.87,1.4l-5.46-0.78\\r\\n\\t\\t\\t\\t\\tc-1.15-0.21-1.61-0.62-1.4-1.25c0.94-5.62,3.98-10.14,9.13-13.58c5.15-3.43,11.57-5.15,19.27-5.15\\r\\n\\t\\t\\t\\t\\tC1335.92,655.07,1342.89,657.43,1347.68,662.17z M1339.33,724.19c4.84-3.22,7.26-7.7,7.26-13.42v-14.2\\r\\n\\t\\t\\t\\t\\tc0-0.42-0.21-0.62-0.62-0.62h-17.94c-7.39,0-13.34,1.56-17.87,4.68c-4.53,3.12-6.79,7.44-6.79,12.95c0,5.1,1.77,8.95,5.31,11.55\\r\\n\\t\\t\\t\\t\\tc3.54,2.6,8.06,3.9,13.58,3.9C1328.8,729.03,1334.49,727.42,1339.33,724.19z\",\"key\":11}),React.createElement(\"path\",{\"d\":\"M1429.99,662.56c4.94,4.89,7.41,11.34,7.41,19.35v51.49c0,1.04-0.52,1.56-1.56,1.56h-5.15c-1.04,0-1.56-0.52-1.56-1.56\\r\\n\\t\\t\\t\\t\\tv-49.93c0-6.14-1.87-11.16-5.62-15.06c-3.74-3.9-8.63-5.85-14.67-5.85c-6.24,0-11.29,1.9-15.14,5.7\\r\\n\\t\\t\\t\\t\\tc-3.85,3.8-5.77,8.76-5.77,14.9v50.24c0,1.04-0.52,1.56-1.56,1.56h-5.15c-1.04,0-1.56-0.52-1.56-1.56v-75.52\\r\\n\\t\\t\\t\\t\\tc0-1.04,0.52-1.56,1.56-1.56h5.15c1.04,0,1.56,0.52,1.56,1.56v7.65c0,0.31,0.08,0.5,0.23,0.55c0.16,0.05,0.29-0.02,0.39-0.23\\r\\n\\t\\t\\t\\t\\tc2.29-3.43,5.31-6.06,9.05-7.88c3.75-1.82,8.06-2.73,12.95-2.73C1418.57,655.22,1425.04,657.67,1429.99,662.56z\",\"key\":12}),React.createElement(\"path\",{\"d\":\"M1457.06,764.6v-4.06c0-1.04,0.52-1.56,1.56-1.56h0.62c3.95-0.1,7.05-0.76,9.28-1.95c2.24-1.2,4.16-3.41,5.77-6.63\\r\\n\\t\\t\\t\\t\\tc1.61-3.23,3.51-8.22,5.7-14.98c0.21-0.42,0.21-0.73,0-0.94l-26.68-76.46l-0.16-0.62c0-0.73,0.47-1.09,1.4-1.09h5.31\\r\\n\\t\\t\\t\\t\\tc0.94,0,1.56,0.42,1.87,1.25l22.16,66.16c0.1,0.21,0.26,0.31,0.47,0.31c0.21,0,0.36-0.1,0.47-0.31l21.53-66.16\\r\\n\\t\\t\\t\\t\\tc0.31-0.83,0.94-1.25,1.87-1.25h5.3c1.14,0,1.56,0.57,1.25,1.72l-29.49,84.88c-2.39,6.76-4.63,11.75-6.71,14.98\\r\\n\\t\\t\\t\\t\\tc-2.08,3.22-4.55,5.41-7.41,6.55c-2.86,1.14-6.84,1.72-11.94,1.72h-1.09C1457.42,766.17,1457.06,765.64,1457.06,764.6z\",\"key\":13})]))),React.createElement(\"g\",{\"key\":1},[React.createElement(\"linearGradient\",{\"id\":\"SVGID_1_\",\"gradientUnits\":\"userSpaceOnUse\",\"x1\":\"223.1031\",\"y1\":\"527.9801\",\"x2\":\"823.6932\",\"y2\":\"527.9801\",\"key\":0},[React.createElement(\"stop\",{\"offset\":\"2.237672e-07\",\"style\":{\"stopColor\":\"#00FF7F\"},\"key\":0}),React.createElement(\"stop\",{\"offset\":\"1\",\"style\":{\"stopColor\":\"#04AF9A\"},\"key\":1})]),React.createElement(\"path\",{\"className\":\"st0\",\"d\":\"M823.69,394.85l-18.88,122.12l-28.91-28.92l-61.66,61.73L585.19,678.95l-4.61,4.57l-1.92,1.91\\r\\n\\t\\t\\tc-4.2,3.96-8.58,7.8-13.14,11.45c-11.29,9.03-23.27,16.67-35.87,22.88c-0.05,0.02-0.1,0.04-0.15,0.07\\r\\n\\t\\t\\tc-28.78,15.16-61.43,23.7-96.01,23.7c-116.2,0-210.39-96.5-210.39-215.55s94.19-215.55,210.39-215.55\\r\\n\\t\\t\\tc104.61,0,191.39,78.23,207.66,180.69l-65.75,65.75c2.31-10.68,3.53-21.79,3.53-33.19c0-83.5-65.23-151.19-145.69-151.19\\r\\n\\t\\t\\tc-80.47,0-145.71,67.69-145.71,151.19c0,83.49,65.24,151.18,145.71,151.18c45.36,0,86.49-20.45,113.21-54.19l43.16-43.24\\r\\n\\t\\t\\tl54.26-54.3l32.55-32.57l51.97-52.01l-26.81-26.82L823.69,394.85z\",\"key\":1})]),React.createElement(\"g\",{\"key\":2},[React.createElement(\"linearGradient\",{\"id\":\"SVGID_00000016048872965236382040000002822441379454334848_\",\"gradientUnits\":\"userSpaceOnUse\",\"x1\":\"731.8791\",\"y1\":\"574.6414\",\"x2\":\"808.2139\",\"y2\":\"697.1789\",\"key\":0},[React.createElement(\"stop\",{\"offset\":\"0\",\"style\":{\"stopColor\":\"#266EFB\"},\"key\":0}),React.createElement(\"stop\",{\"offset\":\"1\",\"style\":{\"stopColor\":\"#002087\"},\"key\":1})]),React.createElement(\"polygon\",{\"style\":{\"fill\":\"url(#SVGID_00000016048872965236382040000002822441379454334848_)\"},\"points\":\"804.1,550.2 804.1,743.2 \\r\\n\\t\\t\\t749.43,743.2 749.43,548.51 775.91,522 787.84,533.94 \\t\\t\",\"key\":1}),React.createElement(\"linearGradient\",{\"id\":\"SVGID_00000026880349917362198170000016794791215529264810_\",\"gradientUnits\":\"userSpaceOnUse\",\"x1\":\"674.285\",\"y1\":\"616.1151\",\"x2\":\"742.8776\",\"y2\":\"726.2242\",\"key\":2},[React.createElement(\"stop\",{\"offset\":\"0\",\"style\":{\"stopColor\":\"#266EFB\"},\"key\":0}),React.createElement(\"stop\",{\"offset\":\"1\",\"style\":{\"stopColor\":\"#002087\"},\"key\":1})]),React.createElement(\"polygon\",{\"style\":{\"fill\":\"url(#SVGID_00000026880349917362198170000016794791215529264810_)\"},\"points\":\"725.96,572 725.96,743.2 \\r\\n\\t\\t\\t674.29,743.2 674.29,623.72 \\t\\t\",\"key\":3}),React.createElement(\"linearGradient\",{\"id\":\"SVGID_00000167386866847758985940000001878193229276912279_\",\"gradientUnits\":\"userSpaceOnUse\",\"x1\":\"607.8342\",\"y1\":\"667.6345\",\"x2\":\"663.2611\",\"y2\":\"756.6093\",\"key\":4},[React.createElement(\"stop\",{\"offset\":\"0\",\"style\":{\"stopColor\":\"#266EFB\"},\"key\":0}),React.createElement(\"stop\",{\"offset\":\"1\",\"style\":{\"stopColor\":\"#002087\"},\"key\":1})]),React.createElement(\"polygon\",{\"style\":{\"fill\":\"url(#SVGID_00000167386866847758985940000001878193229276912279_)\"},\"points\":\"650.84,647.19 650.84,743.2 \\r\\n\\t\\t\\t599.16,743.2 599.16,698.9 602.09,695.99 602.13,695.95 602.17,695.91 \\t\\t\",\"key\":5}),React.createElement(\"linearGradient\",{\"id\":\"SVGID_00000008124766781418069720000011111846618127210670_\",\"gradientUnits\":\"userSpaceOnUse\",\"x1\":\"541.5055\",\"y1\":\"718.3496\",\"x2\":\"575.1726\",\"y2\":\"772.3942\",\"key\":6},[React.createElement(\"stop\",{\"offset\":\"0\",\"style\":{\"stopColor\":\"#266EFB\"},\"key\":0}),React.createElement(\"stop\",{\"offset\":\"1\",\"style\":{\"stopColor\":\"#002087\"},\"key\":1})]),React.createElement(\"path\",{\"style\":{\"fill\":\"url(#SVGID_00000008124766781418069720000011111846618127210670_)\"},\"d\":\"M575.72,719.36v23.84H523.4l15.61-4.67\\r\\n\\t\\t\\tc11.46-3.43,22.28-8.74,32.01-15.7C572.59,721.69,574.16,720.54,575.72,719.36z\",\"key\":7})]),React.createElement(\"linearGradient\",{\"id\":\"SVGID_00000034089952798931462000000005092680389526987958_\",\"gradientUnits\":\"userSpaceOnUse\",\"x1\":\"310.599\",\"y1\":\"521.6384\",\"x2\":\"555.6354\",\"y2\":\"527.1845\",\"key\":3},[React.createElement(\"stop\",{\"offset\":\"2.237672e-07\",\"style\":{\"stopColor\":\"#00FF7F\"},\"key\":0}),React.createElement(\"stop\",{\"offset\":\"1\",\"style\":{\"stopColor\":\"#04AF9A\"},\"key\":1})]),React.createElement(\"path\",{\"style\":{\"fill\":\"url(#SVGID_00000034089952798931462000000005092680389526987958_)\"},\"d\":\"M433.12,398.77\\r\\n\\t\\tc-67.68,0-122.55,56.25-122.55,125.64c0,69.39,54.87,125.64,122.55,125.64s122.55-56.25,122.55-125.64\\r\\n\\t\\tC555.66,455.02,500.8,398.77,433.12,398.77z M433.12,593.99c-37.47,0-67.86-31.15-67.86-69.58s30.39-69.56,67.86-69.56\\r\\n\\t\\ts67.85,31.14,67.85,69.56S470.59,593.99,433.12,593.99z\",\"key\":4}),React.createElement(\"linearGradient\",{\"id\":\"SVGID_00000173129756299944428960000017840883629173842832_\",\"gradientUnits\":\"userSpaceOnUse\",\"x1\":\"1942.2936\",\"y1\":\"-513.2201\",\"x2\":\"1942.2936\",\"y2\":\"-513.2201\",\"gradientTransform\":\"matrix(0.7071 -0.7071 0.7071 0.7071 -187.1257 2335.9663)\",\"key\":5},[React.createElement(\"stop\",{\"offset\":\"0\",\"style\":{\"stopColor\":\"#340391\"},\"key\":0}),React.createElement(\"stop\",{\"offset\":\"2.237670e-07\",\"style\":{\"stopColor\":\"#340391\"},\"key\":1}),React.createElement(\"stop\",{\"offset\":\"0.2243\",\"style\":{\"stopColor\":\"#39039A\"},\"key\":2}),React.createElement(\"stop\",{\"offset\":\"0.598\",\"style\":{\"stopColor\":\"#4504B4\"},\"key\":3}),React.createElement(\"stop\",{\"offset\":\"0.9944\",\"style\":{\"stopColor\":\"#5605D6\"},\"key\":4}),React.createElement(\"stop\",{\"offset\":\"1\",\"style\":{\"stopColor\":\"#5605D6\"},\"key\":5})]),React.createElement(\"path\",{\"style\":{\"fill\":\"url(#SVGID_00000173129756299944428960000017840883629173842832_)\"},\"d\":\"M823.38,599.66\",\"key\":6})])]);\n}\n\nSVGTHESAFECOMPANY.defaultProps = {\"width\":\"172\",\"height\":\"56\",\"version\":\"1.1\",\"id\":\"Capa_1\",\"x\":\"0px\",\"y\":\"0px\",\"viewBox\":\"650 300 600 500\",\"style\":{\"enableBackground\":\"new 0 0 1920 1080\"},\"xmlSpace\":\"preserve\"};\n\nmodule.exports = SVGTHESAFECOMPANY;\n\nSVGTHESAFECOMPANY.default = SVGTHESAFECOMPANY;\n","var React = require('react');\n\nfunction SafeBrokMKP (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"rect\",{\"y\":\"0.655762\",\"width\":\"172\",\"height\":\"54.6883\",\"fill\":\"url(#pattern0)\",\"key\":0}),React.createElement(\"defs\",{\"key\":1},[React.createElement(\"pattern\",{\"id\":\"pattern0\",\"patternContentUnits\":\"objectBoundingBox\",\"width\":\"1\",\"height\":\"1\",\"key\":0},React.createElement(\"use\",{\"xlinkHref\":\"#image0_13211_49532\",\"transform\":\"scale(0.000244205 0.000768049)\"})),React.createElement(\"image\",{\"id\":\"image0_13211_49532\",\"width\":\"4096\",\"height\":\"1302\",\"xlinkHref\":\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAA/wAAAGkCAYAAACM4y5IAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAWEFJREFUeNrs3Wl8ZFl93/9TPcNWkEwN2AkOf9PVThzHS6Jq5+U87dKTmK1pyQa7gYBKzADDYiQxL+M4iS3JC/8YGyTBAAMGVGJLJ8RWNW22PFHpUfIg/79KwQY7we7q2MaAjacGHIEZ6JvzK52aLkm13O2cu33eL19rmJFu3Tp3O99zzj1XKQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQZUogmyYuXGton/UMrTJ3cPLV7t+f7m89GCQ7zfid73+/4XU00vn8RWcXU/n6J0bPY5CAAAAAAR+xBHu63q5ZIJtPaNfpa2XeR38e1PCfkP/2Pa1Rs+LadPGhvtpumbR38k71H/f7TcIPLTZ4cgFAAAAQODHqJBf1T/mTMify9FXW9eBf21s2H/jmyqqVLqppNc+tjBvkrwX47r8NQ5I6G/rZV9+Hj20yagAAAAAAIm5myJINORXTLhfUtkarh/EpSn/vaaDfiUDYd7PempmWZb/WX79kjQAXNdL6+hdW4wAAAAAAEDgL0DQr+sfC3ppUBq2ArildQVb36ABYFWH/67+w63j8P+OLvsZAAAAAIE/X0FfAn6ee/ND5OiwaTzxMD99XSf/Z1UvG7KUX/fGlv65dfTud7Q5AAAAAAAQ+LMf9FdN6CuaerKB3kmYD2pO//Fc+XU/19XrWD96zzubnCUAAAAACPwE/XyJNFFfbAHc7rrGr0+Oi+3ya39OjhGCPwAAAAACfwaCvgzZl+HbdUojpuCcvTAfZF3Hwf+BN8jjHitHDz/UZt8DAAAAIPCnK+jLbPPSW7tMaQQIvakZam8lzAdZnzQU7eng39K/uHj08Lt4rR8AAACA0M5RBLGF/br+cUDYjycXn/yFocUbtZz6NT/rGbk+ZXddnu91zekfN8uveT3HEgAAAAACf8JhX4bv7yme1Q+Z+KOGeRVjAPcT6COFeb/rktEiG+XXvG5XLxWOEwAAAAAEfrdBv6oXevVjyvvhw3yqeuenr8cL0DAgM/pLb/+rX1fnYAEAAABA4HcT9iWASdivURpxJf4MhPnAPf2ej3VNy/z93v698qtfu8bxAgAAAIDAbzfsN9TxEH6GWk/XDpr3Ux3mvaDrUj7X5U1fPLVaftVrd/XCcQcAAACAwG8h7K/pH9uURNwyFuZV3OtSPhsHvDm97JVf9QChHwAAAACBP8awL0F/lZKIM+cHGbafojDvJbSu41+p6eWgfP8DPE4CAAAAgMAfU9hvUBKB1QOkf+WmNz32ofbu1nWnp7/a7+m//zWEfgAAAAAEfsJ+GqX+uXm/AVz57J2Pc10VveyV7yP0AwAAACDwhwn7a4R9u3nfd5hP7rn5eMK8F2Bdyve6Kv2e/vteTegHAAAAQOAPEPYl6PPMfjSd6Yk/yefmUxrmvUDrOu7pfyWhHwAAAACB30/Yl/DEbPzR9fzm/QBpOO5J8GJqHLAQ5pXvdUlP/3b5la9i9n4AAAAABP4JYb+qf+xRErHYn/yfvY5eehl6bj6Gnv4AYd4LsC7Vn72fRioAAAAAfXdRBGc986UvkrBfpSQiax1evvraSb/w2P/337/1hB//ia+o49n8n3wyCfvgxfZL8a5r6q96wUvT8/Uf/skTLv74o491/v//xuEHAAAAFFuJIjjJTNKX1uf22+r4mfhHzc9eiouyq8N+1+8vl1/1gAxFr33nSX/rfEPPfecude6xu6al6/72mX++pP9zzfy7eAK9F9N6jv9EjosLR8339zijAQAAAAI/1OPP7R+kaJMksLX0cl2H5xZ7KF3Kr3xVVR2PTLikl7mxDQBOevrP/MvWUfMD8+wlAAAAgMCP48AvYT8NM51LuN8h5Gcq/FdMr780AiwcNwRYG7bvd13zRzsf4BgCAAAACPyFD/trKvmh/E29rAcZCo+UNgAs3l83x1PdSpgf+2cn/uXx0P6dDzK0HwAAACDwFzbsy1Dsm2riM9lWSS/sCkE/h8G/IcHfk5nzqzGHeb/r2Tz60AdX2BMAAAAAgb+ogV8CWSOBj5ae10WG7uc99N8nDUnS2788Prt74T9g+rouHH1ou8ueAAAAAIql8K/l02G/qo6H0rsms+zP6rDP69Ny7rHOwbf08tknzPz4oQ7jz1EnXj8YOcz7UXnssHOdPQEAAAAUS+F7+BPq3W/qoL/I4Vc85YVXysR+e2rw+IgXOcyP+fMRvfwfbnbZAwAAAEBxnCt42K8Q9uHS0c4HO8rzLuhFfppg7k0P+yd+1Ru9TF7XEqUPAAAAEPiLZJmwD+eh/0PbMnfDrF66ZwN9qDA/pnHgxDoalDwAAABA4C+SBYef1Sbs40To97x5vfROBnoffDcOnFAp/6sFQj8AAABQIHcX9YvP3LhWV0FflRZeVy/zKfneVfO95XGGmsWPkl5saeTo+Pnl8tKDsi1z1rbG84Z/SsjuHD202U409H+42Sm/vCGNQLsnwvzJf4jwnc+s54pKZoJKAAAAAAko7KR9jifrk9n42wl8Rwn1db1cMuG+nkBRb+rvvjIl7Mt+2LYa9CX4emd+9vT/a+uf1/XP1tG739lL4lgs/6uFDRXm8RIvVMPAvUcf/VBPAQAAACDw5zjwP6IGM6UnHHgthHzpKV9IKOCPcnFcT78O+7K9j1gN+/5/tvT/vy4/j977LqehWIf+AzU84iJcmJ9eFkrNH33swy0ufQAAAED+FfIZfh2Ka47Cflcv646+U9WMWpDwvJ2isC8mDdWP/7GCcc+2Dz/jPvrnnP6py867WX7167bLr35t1VkJed7K2efwY/q+3ol1XeKyBwAAABD482zO0eesH16+arWneCjo31TuXzGYLmMDvTr505v6s6L/X0P/vFm+/4G98v2vqdve9KOPfqitf7QihvlpBSS/X1cAAAAACqGok/a56OXs6rDftLXyf3b9YzJCYcPjdWtnA72fn6Of6R/1s65/1sv3vVqe9V88+uD7uha/gzz6EbIxyvM7KKDGwQIAAAAUQ1F7+OsOPsPaUP5/uvuROR30b0rY927fVhlYzlsN+sGG7fvrNT+7rnp/qP/i/Rt6sfI4yNHHPiyNCa3RYX7a4r9hoPySl9W59AEAAAAE/twxr+OzrTc6uEXzY7/zocqP/e6Hd3XQ39UhupKRsC9L1VrYH/fTC/BzWi//yd9f1j8PyguvrFv6TjtRwvz0xoH+r9DLDwAAABD4c8lF2GnF/ez+j/7nnZoO+nt6kd59lbUl9qDvv2dexdLbf/JvpAFjr/yKxbW4D5yj//ARaSjqRgjzflS49AEAAAD5V8Rn+M87+Izrca7sR/7Tds27fXtPlUoVFXd4zpLwz+FP/zlq/Y//HPu3q+WXN2b07y0efWSnF+P3lNC/HGEFJ36MwEz9AAAAQAHQw2/B4eWrsQ3n/+FrHxj07GdpCP+ZJfawb3fY/qmfE0cIyCR7e+WXvSLOXvP9yWF+Wm+/mtLT79HDDwAAABD4c8l22GnHtaJ/8rHfPg772XpeP97An9yw/SDrqOllr/zSl8dybB1d+2hrapifOtBjUsMAz/ADAAAABP58sh129uNYyQ999H2Vx3v2M/jMfuRn+GObbV/F1Mt/6qc68/M49L/kZXE1KLV9hXkVtWEAAAAAQF7dTRHErhPHSrzbt3cL+8y+54X7af1Z/qk/pTFpTy8XYyiErlJRA7s39n+WX3y1dvTxax1OVwAAAIDAnwszN665GMocefK2H/zQe5Y9ee970cJ++gO9n+2plX/2JdtH//E/LEYrC3UrUJgP3jjAc/wAAAAAgT9XrIecw8tX21H+/h813yUz8q/mrNz3fQX9MwFaJdPLH71xoFF+8dXrRx+/FmHyRq8TIczH2TAAAAAAIKPOUQTposP+dl6e2/f1DP/EWfdjnVjPzrrGr2O7/KKfrYY/EFRv+nP43uhl3LP8PNMPAAAAFArP8KfID7x/a807nvG9QC0cqeyhj2MdMv/Chv45HzbxB/nXodYFAAAAgMAP+y68b0N69ZeKN0lfwsP3IzUKTN2eufJPvbh+9Lsfb9vN6HE2DgAAAAAg8CPe2Cu9wZ5XvInUPJXiXv5Ytmtb/8OFaAUUV5inBQAAAAAokqI9w99L40adf89vVXXgb+TtuX3/z/Dbeg5fjZkbYMzPaaHfz3rOhv5qee6nGyFagCpjn8H3xracqMnP9Cue5QcAAAAI/Pl0ePmq9feOz9y4FriXvh/2b99WOV66EwN/sAB98ufEv/c5OZ+yPtHfQohDqRYpzI8N9iR+AAAAoCgY0h8/CWrtQIH/9u2lXJdIqTShPLxOf0Z6JT3aPgJ+Ooftq5GvFLzz7+rlF87Xjj6x67/ByfPOq5KK51l+n/8ZAOLyw7W63AsrQ/fFSY3hl6asrquX/S902k1KFgAAAv80Ej7rFtdfDfLL/887/t85Hfjz+ux+T4f9lT97wy90x/3C0bvf2Ss/8IYVnUY3dCCtjJzEL23P9If7fOnl7wQ6jjxbYZ7kDyC2YF8199QZE+ynhfuwGvqzLunQv0ipAwBA4J8cQu2aCRS9bt++okNxEuUgIbyll0fVnREJ1SkNFp1T5VdRJ4ae97WHf//P3/iLU8v76OGHmvpHs/ya19fjDfveccXzZGC/pH/WLQT6aQ0Mc3pZCXBk1MNldM/Xrxy1fqfN5Q9AhJC/ZK5rVYcfLaF/S4f+DnsBAAAC/ziHppJiSz1Q4Pe8Ocev4pNwvfWllX8XV4WpFdeGHb33XXGH0JHrK7/05dIIsKxLf+nkqIIQrwj0H/6r5ee/sHb0yU9MLffy/Ivq4yfmiyfzA0CIoC/3t1Vld5TcNNKQS+AHAIDAP5btikJt5sa16uHlq91pv/h9b/uVusPh/DK8fv4v3vRL7aIf9Ecf+7CMOlgrX33Zpg7uu/3Kq83e/jvrm/N3/HlXooX5qb/UVchSyKqqO72ofoZL94aOs+4XOm32N+I4BjeU3cZyv6rsEQDwde2uqOMG2lqE1UgdosPIKgI/gf8sObmaU2OZd2rYtt3vPPvlB3+5xyE/FPyvfVTKY7b8My/Z1nuj4WBegEu+NsybVqmO3NNPAExvqBo8A31JTX/Exu96B9cA2e8ywqltbt5cD+Dn+GmYsF+hNAAgM9duqUvsxXXt1utrMocKgT8zpOd95sa1nuXKy5KvwP/d7844eH5fvuv8V968TuV+7I7wVvoh6/iZf5vP9E9tYS3P/VRdhv9HCPN+folW2vTckKVxR0Z01JXdnstBQ4J83qr5bDkOruulRcs9xhyf2/pHg5Io9PVpwVw7qgluSldFb6iWOtCh+ee2/G+ue8i53ZizjsyhwttSCPyZ0lZ2hyb6GtbveTrY2X9+f+Wr//pXuxzq4x19/Fqv/KKfXdR75MDyWwAq5ec8r3r0mU91J2T0BZ+tFAEaNM78m1vs9UQr0XVTiZ5TyfaaDhoBVvU2yTG5o5cmjwCAsA8zsmM7JZtTjanBYVDvGzR6yo+OWfqjn2gEQE7O34qy00gnow8J/AT+zNhX9p9FlBvKxKEv3u3bNcvb0P3Lf/PrnJh+Qv9//o+d8k+/uKnDcSP8sH1fjQJyAR4ZqMpX5qvHFexIYd7PL1ChSebmKxXoJZXOZ5Cr5pol4V+uGTu64ttmzxH2UVirBfmeg4bPwbEvIwFkMuLr+hrY4jBAho9rW3UFZNC5gn5vFxXZhvTyj/uP3/Nrv1j1dFC0vGxxiAfgqa2xQd3z89MsauLP2uQKlncyq09cPB+/pM6s7+gTLYKcw6CvlzX9jzfV8XPQWbhZStDb09u9Z0YjoFjH7DJhHwWu2A8aZ3f1ufCINH6ZZ6EBgMCfJYeXr55+n7wtG2Oz5e3bNb0oywut0wEc/e7HOzpEd0+E91GLmvJz4t+OHsJdfuFcrT+6IGKYH9swcGd99O67C05SaTxQxz1lWZzwrG6C/7aZUBD5P2Zrk+5bQEHD/wENoAAI/NnkIgzPzdy4NvIG4Xme7cDf+dov/fsuh3hAnoz+mDIs309vvxrx89g9Yz55O4YwP71hwM3olqKHpqpUDo/3aS56yQYV3jX2bu5tUwQg2I4kZTJoAOWNFQAI/Bmx7+hzdnXoP3Nz0IH8vOXAz6z8oQK/d2tqL33QXv6TzgwNLF+eW9N/VoshzE9vGPC8fXay1YpyPxybymGeyDVMnu8/oLc/18cuQ5eByeQ8uWneYAAABP6UczXcXSrK22dzpWf9GX6ECvzRh+2PDvojlS9f0RVsbzWmMO+nYaDNTrYWmLbNuZ7n3h8JhAcmHCJfVikCwHe9bpdRTwAI/Cl3ePlqz2Hol6H9J24MDp7f5+gOl/gDTNKnpg3fnxb2q/rHnu9A77eXf/y6Wke/9wlGfsQf9GViPunVL0oI7jdi6u/Ms975OYbl2K1mZHO5hiEtVk1DLwAQ+FPsussbgw79DQJ/2vN+gGH7Klyvfj/sv+CFFf37u3qpxBfop/b0X2cHxx/21XGjTRGHQi9T2c2NKxnaViYeRZo0uA4CIPCn2OHlq03ltrdgexD6dSCvWw78dQ7vkIE/yLD94V7+IGF/UkicFua90A0DvLWBsE9lF6OO46w8j9z5QqfdZq8hhdfBZYoBAIE/vZqOP09C/5rt5/dledqbX88ETIEDv5LX8kmFsu3vZ+C5Eir6T/ZOTtIXMsyrQA0DraNP3WAobMznsmKSM0J/9qU97PfU8dwj63qZZXchpTbMay0BIHXupgjUll5ct8yu/p3v/V719a98xXJ49eqK4Y+BHH3yE00VshGo/C+fUzf/WFPHzzlfMj/vVALuuqvmu5HAm/ovgh7niInpzWGW5pOhv/eFTnuFosicS44+R0YYyWNFXXrpkVMykd9FfXzTuA6AwJ8mh5evdmduXJOA13D5uX/vh35IPfmee9RffvGL6vZ3vmPrY5b0sslh7qix4L98ZlCJbY9oDKj1w/65czP9BgDv9GvbIr5VwZu4rvbRpz9JBTu+sC8NOExYd5Y803+oK7tNiiJTbPdKyrVnUR8XXYoaOVdVxx1IaxQFAAJ/+uyoBGbY/rvPfKZ6SqWivvS5z6m//cY3rNx8nrLy6sY3N95HBTz5xgAZaXFitEX5eS+Q0C/LJTXpve1e5IaBdfZArAj7E8pGh/424Y7Ab7T0sTBPEaNAlvQ1cJNefgBpwjP8qt/L31YJvZ/8CU9+sjr/Ez+hnlGtqtJdd8X/LP/t2xtPXrq/wl5OYSPAp36vrZc1vczqHH+vXub1TmvqpTf+mf4pzj7LT+9+jMzry+qUxFj9V/ZRDJk5nqsWVy+BZ5FSRgGvgUzgB4DAn1KJPnv6jB/4AVX9F/+i3+sf62z9nlfRP/ee9HOvJPSnOfx/+vd6emnpcL6ol3v1v5JeseaUMD9hkj4q3JasUgRT1U3DCNLPZuDfopcTBbVEEQBIE4b0G4eXr3aSeJZ/2BOe8hT1fT/6o+p7dPj/yz/+Y/U3X/2q+u5jj8WxahmyefDENyzOf/uhbSbxy0QDwCdlgqtW+TnPWzHH5FKgyvlx5l8/+uynupRmPEyIraZkcyRIdU6d42lq1JOGkSZHTaHxGlCM09bLvoX13mOuhUlfDyv6fjH3hU6bcwAAgT+FJFzNJV1xluD/D37sx9R3v/Md9Tdf+Yr6hg7+R3/91/3/HUHVhH6phK/r4E8QzELw/8ynJNjJxIubOvzX+0Hq8Qn/Jg7xbx199tNM2BivhYQ+tztUQZb3kHcmNEoMKrsz5lqWVANFVRpImMAv9eq2VjzpOEXhrdt+U4O5FtbNdTuJ1+VdUTR6ASDwp8/h5au9mRvXZIKzVEzKddfdd6t7nvWs/iIe++Y3+4v41je+EXZ2/0bp3Lm5Z9y4RmUsHhLID80/d8z/7sixZCH8SwWpXf7J5x4H//GVddkOhvLHW3msKvfP7ktY3glSMTYha3Bur5hKr1R4G8p9Q+aSope/qNoUAZI0dC3c1NfBafdMG+a4DwMg8Kc39G/q0H9FpXBiLun5l0WUn/70KKuqKCYei/vGfoI+hgaV3o5pEJBGgFgaWY4+++k7wd/zZIK06qkGiMWj//IZnp21vI8tkl6hlThmuh+q9K6YRxI2HAb/mjQ40NMLIOHw379n6uvRsnLXoVPh+geAwJ9u0ip7oNL1TCyyp66GGlZmblzrqTtDs9tRGwBM8L9Q/pfPWVPHvamy/nnzCkDE65Kjz2nqCqKVXiEZXq8roNKYsKfcDXGtq1OvowSAhIK/9PbLfdLVm0S4/gFIhULN0q+DUV0vB9N+Twexrkp41n7kkjQgSU+x9DAczNy4dlMv23qJ1HusA/6aXu7VywXCvtWKW2bD/lCFVyq7sw4roVc4dACkKPQ3HdbvZihxAAR+10olWWrln3zumo/QLzeFJocILKqq42erd3XofySO8I/4mefgbY/26doO+yNCf9fBx9U5ggCkLPTLhLZtR/d4AEhcUYf0r+rQL7OYd6aE/kUdwAazXgM2VUz4b+hjToKYDL3eMqNNkCwXlbZ1xxXe3g/X6tLAsGf7s7L2HKuZ4GuUbhzzKqTMJU7vWI6Z6rjrhO3Z6BHalrLfIFmnmFN/7lam1fE5h0Hgz7ZdHfov6tA/bXKzWeX2mVdAKo4yudCyDv9yo9kxI06QDNvnfjeJ19dJJUZXdjoOvl+q5kIxFby6uvP6wkGFr+Ljbx/fZ2aR8rtlfnbM6IksqRRhn8cU6GsxHTP75mc7hw1ImaHLvmWe52eupvjOk8HBnrpr4alX1tZMPavq828H/zh4E9P+0DWfcxgE/tSRIf0nQ5VM3DI/6U/Mq/ok9N/kxoAEyJ2mro9BeaWQ9Eg0bbzyD4lqJ/jZO6oAjZm6wiaPykhv9pyKZ8TGoLJYP/U5HTU0MafLSq95C8OlAN+vquyNXpE3NByYynEUg9eeNl1WrIcahQZv7LFyzOjPke8ko7l2mM09sWvvnO1jKex1wFy3llT0kQJtc4w1I4TlugnLVeWjsWsoJPfUnTfPuLweDrb5kvkZR/29NlQvGz6HpXyvu77m5/h+XTXn5ZURx9q0+tLpERtyXZV9tFX0kRqlIn3Z8nOeJyfp6SGsK0ef+dTmtL81Q/v3CP1IWM8E/02Cv7Obz56yOzRzXd+I1hL6bnI9O1B2H1uYTeJGayp8S6bikNR1e1ARbNqsCJpwnfeGG+vHkemhXFDHj1e5JpXSHdeNGxPKYS9v14QR31Ouu6tpPG5N2N+NeVsW/YZ+8/lXYrx+ShiedXDNX1DxNeyGIY0b15MYtefoHLa2H019ZMPi9Xcx6f2SpGJN2tdv3xhe+jbKz3ne1BZe8wo1VxNdAeNUTAVFZvhf0wsNUAjNhFAZ5WQrjHZdV+ylomMaaQ5MxSHJc6RuKjCP6G3anTA/QJTvO6eK8cjZksVjpqGXm6aC3Ejo+1UH13a9LdumlwvFteB6nRK4hs6F3Zivn3UT6Gydvwfmmr+skp0sUa7Hcv7KNX+D89j3PpR72E3L19/VIpdxwWbpP72UBst2+bnPn1phMqH/ouK9qkhP8JfX+zUojkw7n3DoH1zXmjEG/55Z36yr7yEVBhP0bY/IiFIR3JNtjDn4F2V+maqFY2bOhJttla4Z1RsE/8KzcV7XJ4VmE5htngu1mM/fNQnWZpvTdh2smMYHzmN/Yd/FCOpC74O7OdQePzH3dOifPfr0J6fN3D94pp+J/JCWSrC8zk9a7ldMoxSyJfFwaoYQL5ola5WFQePXcob2t/R2tdXxEMMup4DbsGAq39sq/bOoSwiTRomtpB77yTkXja1h78lOwkmGzoXhbZbG040MBTjO4+TDvij0vbZgPfyls8ud7n59sJX2ys97gZ+e/p5eBj1iQFpChPT2czPJ3k2iamOod0EqC/3jPkNh/8w5a3rW4DYsHGQo4PQbtGTIsqkcIz7WyzOFs9VXs3oumEcO5FGDXZW93trBeXyT8ziRsC9WCPxFdnKY/3FPv4/Qb4J/JnvEkGurOvQfmEkmEY9bDj5jg2IOXFlYM5WFaoa/htxzZLjnNnvUyTGzYcJCFuc+6VeOaSCKLzw6CPzdFH716tD1MzPnwtAz3nMZP/Sk/A9M+RP23R1/m/IqTgJ/IdP9xApYkNDfVDzXj/RVDCX0L1MUsXDRQ1Mj9PmvqJuyytMEPA3zbD+TcNo7ZiTcZP2aOGgg4toenYvgmMZ6YS9r18+h+QXydH1cNc/2F+6an0DYlzefFLp3v3iBf/SEfaOW4+H9z79c9xn6BzP4byogPTZ06N9lJv/MVNoaRa0ABAluKtmZ1G2S+w2NPvaOmbkcfa0NGggjW3DwGftpDJpZun6asJ/XY12+W6Eaeoeuxy7DPiOxFUP6JzUOHPf0P/+yrwujea5/xQR/evuRFv1n9BjiH57j18rJ9eaAZ/rHyvtkqXMEOY4Zv9cK84gCgocOub66uMa2U/j15zK0n/Ic9gdqRQn9hH0Cv9MU73953LYO/Xp5oa8DVIf+tpnQb125GQoMTFOVi6wO/XMURSYqblVl5/VtWa8spPHVS7aCHOcqx4wfyzzTHyp0uAiRXfPKU4TbT3VVnBFPco3aKMB557LxlbBf6MAfJO+fHOLf0P9ur/yCF/o+UHXoX9M/LhD8kRJysZXh/VQOw7mewGfWh4J/ofeb+f5FKgMe7Yh+zCwX5JjZpmEwcOioOvi4HUo89H6S/bNbsK/dyOtEfoR9An9CiT+0/kRoOvT7PiHNMH+CP1JVOWQyv1CSnN21bir1j5hn/Av1eIapLBRt6HIRv3Ocx0ytYOW3SwORrxDpKnRIXY85nSIczypfE/T5tZq3xjvCPoE/ubx/eoI+FXhZLb/gig7+V3yflKeCvzzn3+XQQ4JkMj+eEw5A30DknG2nIAQ21PEz/vIu342CDP3eKGjlrzH8zmwEDgyu9My1QQLeullajq8XroapZzJwmJ7TA4ehY0vfM+jgCbe/llUxHt0aJzejuwj76XJ34UsgXKd/f5KN8uUrTbm5H9247ivAS/A3lYJNM4nagqnA0zIP52FCH4NyTHJx9E+GaNZTsi0SBKViJM/w9kzAkBmhW3mqaJrA23D0cfK87XUT1Dqny9H0Gsv2XFLHE1+5COMyozbn6J394+eYWXOwb+TYkPv/zrTntE2j3IKyP1maTPhYdzzJaJQGCpvXjZqppw3OVZd1LHr3o13vVwteDIMyWMn4viTs5yLuZlT58lzdHIATeGEu7ltygdfBP1RFeyj811WxWzbh3qIO/U2KwfdN7KajoBdHcG1lfdIoE95sVwAlIK0HDUpDk0rZPB7knnJhUiNOQWay7u8nXQ6zPgLDTcvbIY1ri0Eb1kwItT2JoEwUdyGG885HXSmW8y7uRoQ01J/m9T5oxbAPvByew7OTrrNmks2Gw+0ZjM7ZN/fN3uCeaa4lVXNMzSj3DUcXzMjCtJ3Dfq7DUma7DutKhH0C/6nA/8I5/ydA8Ett7657Kyvf+FAzUngy70yvmfA/Y/65yqEKQn8qAqiLirCNCs11c6PuZqy8bTaw9Exwa0XYPhe9GLKNzSnb4XK4cmqDlIPAMHVf+DhmsrCNWbvOpcWmLvtYemaLFvgdNdYNyH1wPeh5YhpXlxxdayOF2KQCvwn7vHqPwJ+hwB/Gubs6R63fuWhj1WYUQMVUfocrwPf4uPjIxe1WHvbhV/7wD698/S/+IvjFtlQ69T/jOfSfUqk8/vMJT36yeuJTn6qe9LSnZfJGLK+U5JLo60YqLddZfXZergWD4f/tNA//t1wB7JjKZy+G7ZSLwIHFhompFRqzDVIZvRSwolW3uAv7PWYxHbM700ZgOAgMkYO0o9AfuZefwB9/ECLw943ttXbYuy9Bfy3ivpG/X02yvNIY+An7BP4UBf75mE6A8dfho0+0ShxWlvfjm14j+3Gh/7rEuE6ExydxjO7c3Xerpz3jGeqp3/M96qn6Z0b0TOjnvcH+At5NlY+5N9rqzrP/nZSVs60KS2xhf2hb5Vpka1i9DDO911IZy4SINt7aEWv4SUGIXtHfZzPm7bXZcBipcYLAn4prSt4C/6Sg6OqeGmejnc1rfuTGCdeBn7CffgWcpT/iMnVFsO3o7e9t60VO9Fkd0rsS1qMufZ7XX0qmASDs4n33u+obX/2q+vLnP69u/tf/qv7qT/5Efedb30p7sfZneTaPlGACU6mbz8nXkUqB9FQcDL32by7Hr/hqxV0xN8eEVCK7ts5Ni7P1P5qHnWqOV1vhuR132B+ED2XvVb1LXKmzfU3JW9ifcs908Xz8Slxhf+iabztwLmTk+kvYz4CCzdI/LZB70VfhQ/knn9swJ0bz6LOf5iYRNvi/7eH2U3/+dRdVzM/Qeib8x9Hrf1uH/0e/9KX+8pR77lH3PvvZ/Z8pNZhUap6ja+rNvq1vcosqX5OlDYaFN8xNXCqyST77H/dn2q4kSHktWzw3u5x5iQQGK8eMBER9jq1YuobUpBKe9Uk7MyC2Z/ZTqGMWeRy0p3y+JWPUvdLHr12x3eBgo9FOQr8+z64oe42NVWmAj2MSSIthv66OJ+gj7BP4U573vZjTvK/tKA1m5N8oP+d5TalUH33mUy0Ox+D+z2++u/e0N79+th/6S6WavV0W/dj41te/rv7i939fPVkH/qd///f3f6ax4jxz49ry4eWrvFbI381+xmLIS0OImjM3dansydtInL32TxoZYmxUifzcpg/7lgM/94jxbPVoN202dplriIywqVpY/ULYkIapIk/4mVJyrK+7vM5bHp3z+PXf4rpXLG//pbRe+xN4Qwxhn8AfcyNAGOGftpITpqGD/+Bd2oT/gP7mre/qPe0X3jBbkmfASqXUD0X+1qOPqi/ppd/jn87gv6pDf0uH/i5H19QK+4q+6UkPyEbOv+pg9IcM+W9K+HfRe2gCkVwP6yrcKB45hl2NULD5Gfdwto2tdFaVvVmztxx8hXVLleY5lfF3eafYbM5GT0j9c93SoyvT1C2vvx30lasB71Fdc09sWPqIVJ7HhH0Cf87TvRfPqkf3Fj8+nLb83Of3L1LqzrtBu0ef/iQt9ZNC/2881Ps7v/jGrZKbmVPjCf7S4/8Hf6DKT3+6esaFC+ruJz0pLZtWMRfyWY4sXzf8TX3z65nQX4Q5EPrXKf2d5Rq1aDtMm56mlkp5D7cEAF0mtlZf40xzHhg6jkJdy1LFucqwfmt2ddnO56Rsewk3YFyyvP4dB99h3WLgl/O4mqJX6sqcMsvKbScHYZ/AbzHvezYaDAJXYh6vyJhGgMFrjvRSOpzy95tHn/69Qs0PUCqVpHV6yXLo2jQX9tg+4+iRR/qL9Pb/3Wc+sz/Lfxoq0QztDxT2mmbY+3aBwplcn27q7y3HyDqTViEhtp7/bTu6dvTMtaNm6Rwl8FsIYXrZM6G/nfHvkvRohbrl9bccnMNdi+ewUumaw6XmuI5D2I9JsWbpDzKzfqRZ/Kcm07BLTS91vczpz1qdshSuR+jrb9nq6dDfLp07pywuMonZbL/RJfx+HLk88md/pv78c5/r9/ynxCqz9ge66UuPoEwiuaLszb6dRtLaf2Bm6i06wlV+AsO+w+9gKzRe4vCwpmJCf5bncFlJwSgFm/eNtsOG6J2MllGaEfYJ/K4aAmykfZfbXsA9WSrtx/GavknL19+y1dE/L+gS7pRiPHpk+e7f/m3/dX5/fetWf4b/FFRoNrg+BA7+0uN9QR0P8ytK8K+aym+j4LufUQ4OmUYmW42SXYdf5dDSeuscJdZtyOtMM7jd3YSe2R8+f20fn9cdfh2bIwmK2HBH2CfwJ5zrp36Ar1Qa40LeP3lEn+vE3fN+ZtEe/fVN6eFf1EvPxmd8/ctfVl/63OfUt4+Oki7RxsyNa/TcBg/9PTMrvAT/FVWMV6r1534oaug34bPK0e9U3eI57LLn09b1oWImNYTl+2QGQ/9WCrbB9gjCtsN7vpzDthp8i1YHI+xbwKR9vnnRV+F8m4snjtfn+fXor210Kr/0Jhnef2Bj/d/99rf7r/G799nP7j/bnyDp5WcCv5DBXx3P+yAT+8lsu/KqrLmcf20J/f15DXIY6qsm1EsF7Lz5WXUQ9Alto81QBL6OnS7F4CT0qwwFlTRcn60G2QQeV5DPq1tYb5EerSTsE/gtZWcvyh+HTqUcebZ28TnLg1Y870QLbu9X396p/PKDK8ri0PdH/vRP1WPf/GZ/Jv+EyAR+9cPLV9scYZEqH/2Z5k1olNC/lOMgJ6G/l8X3VJ8K9VLRumR+JtnLQuCnXEJfv5XDnk5Cf/+6l/bXIXZSMsmqzdeNJnHM71sK/P3HH3IwQSRhn8CfYOIvefGs2otxmxB+D1tuTPna6lvPtBj3fuVtm/f+8oNX+hMqWvJ/vva1/s8EQ/8qlcbYgn9X3en1lxA56PXPW3iR0N9J0euETlegakPBfmbon5GtMGvr+JCRW65Ckc1z/x4OE6eW9bGzn/LGzrTcy21eb5OYjNDm9SLvvfyEfQJ/Ao0AoVYTIPHTw28z8dcT+ly5UN20+RES+stPf3r3Kffck0QwpJffTvjvmIrJylDP/xWVj8m2+s/0qxQ8DmLKViqXl8zPOkdftul9arsCnJfGn6x9j57PsFZJ8XeTxs52il9VeqsAl4hHE/jMjuXzuJXTfUXYJ/AnmO09mysn8NvL3aUrFlc/9mL+yPpvdZ++9vMyK/uqze/3V1/84tb3//N/Lr2RjQSKV3qiCfz2wn9X3en5r5hQOgj/1Yx+rbpM4pfE8/xmzgQJ+HkcPQFGY2TZvK0e8KFHcpS5ds4o9/OmDBo751Na/kV4fSh1FcI+Chv4gwTtUujkT95PyPe+5d9WLVcCe1NaGySsLSm7Q68uHV6+Oj9z45pKIPTLjP3r+vO7HG3Ww78cay2zDCqxww0AWRreJ6+tarno7TKveRo8IlHhSAJS2TBi7VpgGk67w6HPNKAuO7g/D5sryHPXUVRzdt9uy8SNlpwn7COKcxSBn3Qe23v7Qq7TyjsEc7irSqsuXsk3zl+vvlVe0deSeQQsLv3Kmw7diyqZ4V0NrgmJVCTknclyc5SesXv1v7qoFxlRkoWemkFl21bIl1ePyXOz8kjNnjlGCfuEBdw5/4p+/Rx+TarL++Yqhx/nMGU11ha7lcBvKxD6e3+97QxdUvvk/Xj9vX//S3UdhhuWw/a+j6acLcuNDtVn/Oq/Hlz4FxMIfAtcNlNRgZXJ8Nb0ctFUYpNqAErsuDFBXyrxEvQ3qDxSAQZ8BH8ZZt909JF1Mzko3OtQBKm37WAuFhQy8J+OZmGWMwEsTMi2mPJ99kbnyd9/62pNh/Fdy2FflqnDEL/2y7/RcXCjGfTyy/ZI5cXlxEDVmRvX5hTSVIkd7v0vmWOi6fi4mHrcmGfq4wr7g6AvPWhUGAAEuWYuOgz9S5R4Ivu4RymkntRldykGAr+bjB/7SpPN+0Xr4n/mb65J2N8rnTtX0YuyvPgK8np7rrsY1m9Cf1cd9+66dIVLZ6orOvK8/KIZ+p+m8B/5uJFnYs3QfYI+gKih30UvMA3kwHhyT9+mGAj89hP/xOHTytLweYu9+gXJ+9/3W+sVvazp73ygl4r1Z/f18uWfX2v7272ltuVtmRn+OB36ZSj3psPipwJD+Hd+3OhKgQzbl2f0q+xZADFw0VheMZOJwiEz0S2yoWFG7YHAn6IGgmmh23reHzWRXHEe4v++t/1KXS8b+nvflEn6HAzjHyy+ewL+6t++pW15W0b1bMoEbl1Hu6HCsP7shn9155n/tuNNqIR5nlUqbno5UBYn/gNQyGui3NebDj6KwO8egT9bVuUVvhSDPcV6Ld/jgdzHq/Y8qxuS6J+n0T/Y+LVl5Xky5FfC7HAokBtyz1y8k7yABw1HHWXvdUhnKg/yPL8O4RLi9hyVh+yrlkIWK7k9U8ltmufqt5W74fF1FWAYrWkg2FMM3wdgx3Vl/+0zlyjm/GMkR2QyiV+XV1naUdAe/jCT8/kc8h/p4/2+Gi5f0/Q/a/PXZcK9jdK5c3W91E49N18z/77q4Bn9Scv1QEdYqdS12cs/ig79bYchnBtbPsK/HC+zyt0wf9/vEk552JfykvNNHqVZMWU4zxEFZPIaaPv6x0z9gD+7vNnCjrspgqgNB47+LqfP5D9r6y1yYqd9eHjvz5f+TTvY/iodJvS9Vhx9rszWXzu8fJVX32S/wtvRN1gJrAcOPs7Xjdy8qicNYb9rlv3BP0/qfdDbbXNkD07i2kM5xVlGdYvrl8eZKswcf7ZuZfEaz6iwbOrf+/X5clHeQERxEPhD5my/qdkL9Z/i344i7JJSFi7KzRDfK5ENlVn7dRCX7W04+Lg6lclchX6ZB2I1JZuURNiXyoWEeWms64QcVkiF3m1YwHTrFMFU+8r+qLWacj9vStrZbGiR8m7lrKyKFPqlp3+WRjICv+0YGuo/udqEnAX+LGzmTqiLs8Xv9vffulr5ypvXexMqeC4CvzyXuKmQF00HgX9q5c7M1uuql7xjzu8WvQkY0aCQ5Uq2bPsWxzXgTNXiuh8tWFkOHum7yGFF4I8nRHtJbAc9/I87l/JpJDyv/adv+IVO8F1csh1YxvYWOOzlrxfhEDXPk1XU2Qklg5B91TOzQqeSBAP9XdtJ7lfzKqUlB0GuSRjKNhmBoY8Xm+u/l1IGMut8Ap9pM/AXsae7pq/x2+btQiDwR0z8obK3Z6fhoIDtAKnv4S+VdkL+XdJbvuMg8Mvr+arSwJDToC9zIWzEdBNfNeuUslpM8Sy0tp9l9VNONofyyxDPFYtBn+f3ASB51QQ+8x7L9+a0kPuoqzmqGrreJJ0lKxzS0ZyjCMIm8zGz+vsNg5Fm38/PLP2W31cfden+79f9fDN04Le9TGBm7HcRxOs5PtG3LVQaZH17KX59T2LDBs1EfQ2LHyENLfOWe/WZKMqtNkWAGPDavGTs5+xabLPBNy09/DK/jbyRpunwM5d1/aDB6ULgjzmEKbfP6dtcCPzRXn1XKq2n+Xv54GLCmmoeLxUmkNusMGyn9KvbHgY5KaDZDvtNy8cMvfvudS1fA1AMnLvs01R/ZooeB+yZ7VlUbhtct82oSxD4Y07hFnpdzzQ8kPjlGf56/zn+tC2lUvvWAw+GDwgJ9/AbOw72ID0jIRtKUtpinWTF94ql9W7aDvuEhsQcWlw3ozUKYGiOFrjXdrBv83AcpXXun3nH27ZNwzqBP5NtCtGXGBofki6KtPbwnzu3HnEXzyTdnHN4+apciG0PA+PiG96GGcaelopv1cH+nFQ5qFv4PDn+Xb2WjMYv9zrsT0S05OJDUjxvS5Js10/qDr+Lzc9KZeA3r8ybdbh9Ul/aM3UVEPgnpksXvaoOE38edkkqA//mzVcttyN+sYrlHn6/N8q2gwswQSJ82aVpaH/DwWfcGtPYYKuy1HT4Hl+GG7qvcNq8vtUp4XwzDa4uzlveJT76/LV9n3XZaHfF4roPU7wP5dhedHiMyzm7m6bOEgJ/URsNYsv7aWmcKFbg1/+vG+XZ/aHvVbe5nV9a+Xd+b5T7tvfhzI1ruasYm5tY10VI1Deu5RRUfKVnfzXBhhRbN+/rjspvTjEsOCm2QkONnqTc23B03nYo6rHalu+v1s9hEz7rGS2juBpuZh2Gfqmv7HHqEPiDhfVEesuL0Xvv7whM1XP7PR2m5//kvjdGumg9a+sttRQ8v++yokEvf8RKZ5LP85vKiouRBr0JPbJZfzRkSSGPgaFB8eaTuea62r/7lHhi91kX+9jmKJFeiibsmxb6Fx1+pDTIbnP6+Hd34UugdOYfwvES+MxctMGU0rQxK19svL4TwyFlO7z4ruDK6/lmblyzfuFVbt4I4Nq+cjdMWyajmXH9rlnTs7/tKHC3c3iMDHr361QnEiOjOGyNklnQy5qj42gwvPySOR+Hz8legGAkv3vd0USVWT1npWw3HH5km1KfeJ+1OcptSe/vTcuPdq1y7PRDf0uX9aJy96hiQ39ez3W9KasY0h9nw0HJyi/nPvCnZFnUYb8Z05e6YrmHvxtwi3h+MBzXjRjyrtkDF68Dk3ChFwkyB8pd7/r1BPZhzXY5Og4OOFvJbFu8xlXNeWL7XJQK8k1TUW6MOG4HQ4b9LNJoIA2IaT4uE7snmQa6PeVuZFqPCfsmh0TLH2F1BJt5JK+as/tmlP0p9eh1hx+5nNI3HhH4E06XAYZMWxxm7+KVbRl5ht9ZWUxeFv/Xwuua8X0lu8/v6/8XdAIX28PBZnJaEekq989e9p9N0zewPRvBX55nNAFGwsWqw+/VU8mMArE91H7bcmUP/tg8tpZsPQdswudNE/LjDqDLad1ZSQxRHmpY2VVuH0NrcXomXkZzNkKho7lvMnf86PNb6hhNhx+5ba6lIPCHSW0q3ER6CBqOu6Vz51Rii4T9V7w2tgvT9z/0Gw3bM/TrbU7b81x5nqxsK6HPrZvgf1N66uRmFjZ0SMOBhHwZPTAU9F3vs9aUIZVtS59btfWcn1kvlYx02LF8fdu1cPxsJBA+U8Hx+9HnhkZQNHJ2bOaFi17s7ThDvxndZfv8bTl8y0zcoX/RcWPFtsvrShYV7Bn+cYHcc7wZNAw8XhTnznUT+uiu8rz5P3r5A52Y9+2C7Q3/09e/OWg42lc8Yxz2ptU0FfOkKuUS8pfNIpUM+SHHbM8so0Z7nDd/N1jSYH3q+WiPPOc3qIDEGfYbnCGpOU/bep90LR7v/Qmi4jqGHB0/3RTvsl2zv2xfO5O+/nUZzp+q+6yEwor+vM2I529duWmsu57xXbtozkEXQVz2hXSSXDSjM1HowF8K/B8Ctg14HFGB87H7xg+9l+Riv/5HL3t1rC2nz373b9aV59kO1lQe3JNe/tUUbc/wzTMLPczNaTdg+e8y+Y7FClTDtP4vRhlObEZZSFirc1qkzrqyO1lUw/TqLYbtdRua86HhoDzSfK9IQxh3dUwiXfdZGTF3RfZN0MYYc/1fdXT+drM+8aZcJ3WZyev69hyGfmlMnM3qyAgCfyYaDQI0HNDDn1RZyMV95Y9ecr+tIfGrDr7PdQ4a56SBaEHxrHYYvQCV3pblipRUOGRSRKlEbQUJ/o4reghXuZRewlXL56k0sElv/2KIsODyjRiCoeTJ6vKmhMD3WVcN63VZzCgTue/IKMjO6YZpc92vmt+/oty+PnYrDzvVhP55dTxBsIuRkjXTwHCRU6rIgX9UGPPVKZ+VnvtSBndJqWs1JHveYLKwrS9cvc/as+/n3/Nbrl7N1VZI4oYlr33ZpTSCV1oCDK+77ihQy2c0TlX2TsyknXBFD+HZ7uVX5riQoaNtc3y3pgR9OYYWlNvGojZDyRO3SBEEvs+uK7ej6eRcPv3IXBrIvamZo33bHerpdxL643wEi8Cfm0aAmH4pSJsAPfx3LgRX7+v+yH/absZcGZKKTsfzvH29fuuThpx/+G1WX/syfBO49cCDHY6aRG5Y8n5ZOZaYpM2/jpmtN0gZd5W7kRRprewh/HkqvfwSrl3sTPmMunkURa7L+6f+u7y9pKaSGRnEUPJktWhwCUV6+ZdUASeyPH3+5m1IuoyoMz39e44+Uhr1pSF/hdOqkIG/FCGlx9FwkIkPce7zP7O4+CMfb+5HqBgNJjHrfv7Fja7zo6pU2nZyg/I8Xu+TLJcT0GRdT4Xr4ZJhyKsUHyKQCt6Bw8+rDMI/YRMRrn2FNzSabrvAxdDO66MgZnLVRYf7d1l/3iGP1hQx8JcCBOhAbQEBGw7o4T8b+l/cyOQJWX3v29eUq17fUolnMpOvjMjNytWwtCwLOzkePTyIep52TGjYKODX7xI2E8eEYdHOX5ejdNIm941FZv9WlbuG/W3T01/4DrNzXF4mNA74Xobek+7mA6cvNCpYd+F9G41SqbQqbxpwsHS6r3kTw/lTECakQmduzBgf9lshyzfIJH/AuONIGo6KVsGTc2eesJn4tY/7dHTzBb3HrhThlXLmUb+mw4/cNpOmEvhJ8ZMWG5tRGrHEnPlhN+z/9mZDyVD+kfvSyhJlxtYZ9hih32GFtxmxfCWsUWlG5GOxYMfRPGEz29c+PH4P6BXwHtss0vFjJtRz1SgrIwb3zMgCAj95X03vvS/FlbRLykqP/plthQ0/8P6tNXlu31HPvjI3vVbEi51NXUI/Yq7wLlK2iCk05D0Ey/e8yHP7hP0c3mOL8nhKs6AzyrtslJV68K4O/YV9XLDAPfyWGg0SyvtwEPQ/8I6KDvvyajank4rp0L9181XLUcKP7QvcrQJXSC4oeqMHQ4mbMZdtFmfXpYeV0O9SVx0/M85xl9y1j7Bv7/xtFSD0tzJ6r8vi9VmG9e8V9XwqcA+/3x57G0nbUo8+PfzW/MMPvKOuZObnUmnO4TB+WXp62YzhIgdLNyy9XFTFfe5cbtQXbUyIYyrRWSrXtqm8gNDv6ni7SNhP9No3S9i3fv5K+V5U+RzxJT37hZ53w3x3lyP6aj9cqxfyLRBM2hc5e59oOOi4+UxuAs6C/gffWdGLPKu/VyqVqq6G8Q8tW39y3xtDXwhnblxzMXypTaWkPwmNhIpugb62vCv4os1Jhky5bmagLKTixuzcKa5Umoa5zRydexxvyV/7aGxxc/52TOjPU3mvFHQY/7j96/IRyYYO/XNFK2cm7YsrUR//WS/+7QjYq08PfzxBf/uhil7WdDne1EvDca/+nd796BVUevfd3bTk/bkyxH9d5fv5c+nNv2DCuItyleGOaa4YbVJxO6Ob0nNUjqUszwA+GFGzVsT9lwJNl9c+nDh3uzkZTSfn1qyZnBYnQ7/LRxsK99pWJu0bm/ctdr3Tq59a/6j5ropeZFK+m+aVe5UEevWPF33x++NX/lzUiqn1wH94+WqbI+fEjUsqg3kM/m1TUZl3/eogM6wzbSMoBnMXrDj6rCy5leLzs2XOzyxVuAfPijvpVS7Cq8FCBH0p+8WclE1m70vm/npRZXNk4bpigs1p93lXjefVor2q7+5iHU6Smj3/v2p1O5LeBjwe8nfeLcPe68rzLumfDWV/kjtf4eqLi29oxrAe26/ko2I4+sYlFao1fUORULGslwW5wWS4sruV9PBVqSTp8pSK3qop0yT1J1oaU/mXcoq7ImGr7HtFvC6Y83NFH09b5nhqpDiYyTZuJjB8v5eSe2FSuqbsWwmF/Ha/XmLn+M/00PjBEHB9/tbN+VtP+SbLPXTd5XFk7pc2Vr1vO/Sb7XbxnH2hrm8FC/xxpmgv4U2YupK64tnqsX5w5901Uym/YsqqkqLHIAaTmMTBdgsmgd9H8Dfhf84E/yw8OyYVqh11/Gx6L2XlmWRQk+N9cUoPzXUL552tSlbLlGOcFZ+orxF1eTz196c+ntZNOcylpBIo27VuwmZS519LpbchxGbIlvO3nYJQvGMpyDZzdH+V/dU2wX8hZcdrd+gemlQ9qWmhTFoO9quE/p4J/RXL+4j0m1fl+1/jRVrB5L9uH33gvVNnaS7f95o1Ne7VbvHukaQCvz5RS1JBbR69/2FflZUf/NB7KqaSXLe4XefVcS9rPeWH6fr/esVr16KuxEzY94jtbT28fHVNwTfzHlgJFpdSFDCGK7utrAxb1WUp5/OSKceq5bLZ8vs2Ar1d8nxgXKMQWqaRoWepDOumYhVH+XXMtnYyfm5eUe4b5rpmX++kofxMWWzkNPT3zLEqZX7LBPx2Co/HNXN9i+seIQFwJa+TPSZ8/g6fw/s23lyT8Dks323d5VspzPbbGCHZM+dBUxVIoQJ/+f4HpGLj4x2ModsE2kfv9xH4758Q+PO1W3r6q1w8+u2HJ4aHf/zhh+eU/Za8rOj+z5c/cCGOFenAL+W6a3l7F3Xgb7LbIt3UBg1d0gBQU26G/g8qu4dpreyGLMcFFV/DYaQGEFNZidrT33FVOY+6vXl7LtWUR92Eh5qKf9RG15yH+yodPco2j+NU3Fuz+vy9ubZVivjdYzh/Lyl7nUmdU+dwN8XlEeX7d5JuJDKN+7HUjYo6h0KxAv+rRgR+L9aP0IH/YR+B/4E7gb+U+8OqefTb75k4PP0ff+S9jxD2B8ejN6sDfywXIx344+xlHOeiDvy8msjOzXm4oj0T4hzZP1Ux6RWp4mfKcFBJuGdKaOmZxo+eqdy0OQox5ZhSJkwEORe7g6DPK/UA5+fvoEFdfp4fOo9HNWoNztXT57DcG3q8khFZc3fhSyCJR/rz/Mq8s1+tOunXf+gj743acp2frK/Uelxh37A9pK1H2LdjKHC2KI3IZQhwTAGcv4Meee6rIPCT7kOm+1ICm5HpMhysrkTYN8Huf77s1WtxrWzmxjUXQ8Op/AIAAAAE/gxmVc9m6C0VqVxrUwI/Z6GZ6CrmdS442O5Ddh0AAABA4M9I4vfcZPJSVssnlMrkvF/wwO958hzn7B++9FVxP8/pYoZahsUBAAAABP68NAjkPvHnetNTqKdKpdk/fMn9sYZ9Mzt/1fa28/w+AAAAQODPV1j1UrIdOUnrBe7h7/fsf+HqfTZCs4vh/PTuAwAAAAT+PCV+L6bMXCpWsU1O/EU87/rP7H/hZ18Ze9ifuXGtqtwM59/n8gkAAAAQ+NMfXL2oK0hDgE5tcO5NzvuFC/wdz/Nmddi39Q7mVUffgx5+AAAAgMCfgcRfCpT6x3PdcOC4mMIG3MmfVaDA73kSkhdthX3Tu99wEfYPL1/tKQAAAAAE/kw3BthYRSmh7ctnqWcj6yu1/vmfWVyz/DEbjr7Oda4XAAAAAIE/2+nSS8uG5Dh557+HX3rC5z//ooW2zQ+ZuXGtrtw8uy/fh+H8AAAAAIE/46m2ZCn9lzLQAOAs7+f3u3vHwXjxD376FS6Gv287+loM5wcAAAAI/AVvLHC2rqQ3IeKK8hn4e8rzJOg76QmfuXFtTf+oOvpuO1wLAAAAAAJ/CjP7qHAZsOfes7UdBZW3svC8df3/N3/fTa++hP2acjczf+fw8tU2By0AAABA4M9K4ozp173cfVUXIxFyFPebeln/3E+9vOvqA3XYr+gfuw6/4xbXCwAAAIDAn53A69lc+bhfpYc/R2VxHPTnXtZN4LMl7FcdfVb38PLVJgcsAAAAQODPTuKfmjd9tgh42fi6AX/BQd7PZODvmaC/9T+uvDSJoC+9+zJJX93hR9K7DwAAABD4C9BIEDU708OfzbLwvLY6nrSupYN+YjPVm0n6Gg4/ctDAAQAAAIDAn5VwOaFb3svqdzzzD0nrTPvvKY/8bX0oXDchv5v0xuiwL0F/1fHHrvMqPgAA3HriG99UV6NH8zW//Y63dymh1O+/qhrdQdPW+69NCYHA7zYdB/pPkVsHitPDLzej9Um/8D9e+JKeDrGb+h+XU7LNHbNIyG+nKejqcpIy2nC9D3UZbHKpBADAOQn7oxr526aOhXSrqvGdNAR+EPhz03AwmryffUYvlZwWiATmW3ppHm29bWpg1oFyRYfZQ/2Pl5S7SegGZPsOzYW3k9aebPPMfiOBj17h/AaAYnniG99UG1NH6druWTa92iPrFvqzGW0GAAT+Sbk8aDD3fP2roHQIlkA8z+F3IvQ3Fc+Jjwr6UuGSsD+XwMfLCIcWewEACkdGk40K3m29zFoM+1X9Y2/Mf55V9Irmmt7/Df1jYcR/Wvn2O97eoYSAcM5RBBNbCM4upSkLEF/Yr5mKz1xCm0DvPgBgWH1CD3wcViniQquq44am00uFogEI/D7z+yCYD2V4IJ1hX57XP9BLLaFNkIn6aE0HAJy2ZGOlT3zjmyTUNSheACDwx5H8le8e+4kLDQeIPehX9SK9+hsJbobMZbDG3gAAjDBnht7HbZmiBQACf/obDoDwYV9CtvTq1xPelEX2BgBgAhtD75coVgAg8EfM5wF67gF3Qb+hl5umApX0c2oM5QcATDNnhuDHwkzWxnPaAGABr+Ub3TJA6IeToG9CfjUlm9RmKD8AwAcJ5zIEP657hvXJ+kwDxel5cRJ/1d/QJIiZee3gqIkb9ba3s3xAm8dUqln5TiP2gfVXZvotN63n4q0KeTwOCfxAPkL+YFKipRQF/f7FWfGqSACAfwtxBH5TabdyPzRhRO63c+M+Q/+OhCR5Be3WcGDS/14aB0bNp7Ojf6854TNHvVZQwvzKqe882K6BWF87aBo45LW+lQn3/UU/jQxD5SjbXRvzO/3vqZfremn6DZ/67zaG1jnuONjQvzdyO/XnzE5Z59jfNfthweyHyoTvtGO+U2INMkOTWi5M2Ac9cyzvnA6+fo7LANsi5XVlXLkNlV176HjoxXg+x34cEvgBxBH0BxfHRgo3Ty7Cs4eXr/bYUwAAn6oyFH9S+PUp9t59E45kvX4mAqya31vWf7epf66bcFJRo+fU2Z+yvrqPEO7idbuTPqd/358WwkzAWg1Qd6mZZVX/rRwXKz6CXk1Nn7so6BuLalP2g3yvDZ/7Yfg7SaPQWgJhf1n5e+xz0CjQ0H8jYXtxKPDWY9iOujmuqj7/pG6WSGXn6DjMNSbtA+wE/Jq8Wk8vu3p5RP+rXZXe1w2t8Nw+ACCESBPtmYp8Pc4NMj3zByrcrP/9V+KaddhohNhzEfZND/ekz5mdNuTazKtwEKHuIn93c9Sw6ySZ3umDEPuhYgLkXpzzV0w7ZkzP/IYKPsdF3RzLjRiPqT0VbjTOoOwOgpZdXo9D1+jhj1edIihcsK+ai99guaSOWxWzMvmQTNLXZE8CAEKoSUU6wnOzsfbum6C+F/EeXDXrWI+5rHZV8J7qMGXQUJMbOxZ9hv3tGDan38ih17cYw0iQuMom6veqm+80a7PXeKiBqBax/LfNMPco27Kt4um0qgUpu7wehwT+HCgvPeip42dHij48uis3y6Ott3V9Bmc5qa9kJChnKdBP0mSSPgBAAPJ88NyI0B448A89k3xaW4XoQDGjBfyE/a5ZhgPcqIAQZ2NE3cXOMQ0e21PCfnPKOuZ8hCzZR4NHG86rO0Oox5HQ2RnT0DD876pqdA9yXPXqjTH/vndqO6bV8wYNSxct7k4/Yd/vdm9YDPs9czwcDqr0ZjuqUcougeOQwI9QgRD6AlFeenBWh/72lLC/phzM0IszYX+RYgAABLA1IvDXJWyHmBxreUwY3w8ZkLenhDR5Pn/r9Haahoc5dfatObYb9k83PEQKtEMNHuOs+Aj71SkhS0Y9bI7qnR2aUG3c6IJd/TsXT//tqckMx9UHV2Kafb0yIjDKMdEa8X3qZlvGHYsyumXNxjP9phwmZYnBJJPtMUF56dR2V0Jux9yEsC/H7vq4Y2rK8/4Tyy6J45DAD0SzpCa0/JtZ6wn7hH0AQMpJwJAeshFhRO7jQe8rS2Mq8tUQwaQxIZhJMJkf16tnKv5NvQ4JURvK/nw7LRNgu3Gt0DRa7E4IdjJb+aaPVY2bGG4wyV9nwrEh32dFb8v1MdtSVfG+yjGqiaMdTJhuD/U0jyqX/qRwMe/L6oR6cU9NabgxjRctM9HfRsTNGff3HTVl0kdzrZBe/HEjFZZkkswx6yjScegEk/bBtmmTojAagrAPAMiOrRH/rhFkMi4T0E//fi/C87WTAtJFP0N4JXjoRe6PTYtlJyFz3sKrwrYn1Kea5nv5CZrjGjtm/Q6DNkF53Gt+l1JyDPt+ltsE6PkQx56K+VgW8wG2Wxp4Qtf3zDlanRC6e37OKVN2o363MiojFOw4JPADIOwDANLFBI5RgTXIrPirPhsS/ASTuho/KmA+6NBdE45tPOPbtjFhmBn+PRcl7E8JQetBn3k2YWvUd62YHvMkbQbdD+b7jJvEcS7GfVmZsL71oI81mO+5GXJzJh0PvQDb0FXjG9GuFPg4JPADIOwDAFJrJ0BF3W9ADxtMrkwI2O2Q61yxUGZbca/Q9MKO6xHuBPwe9XH1hxiPkUn7y4WeCvn2BfO8eddyeJR9MG4oe9jzY10FnB/CNDzUxmxHM0TZyWMIpRHLfEGPQwI/gNgtEvYBADHaHBEiKj7f+T0qoDYjTKJVjztgm4aCbsxl1o5zZWZG/tDPWI8wKuB1wj5+MKGxJclHOVsRJ2trWf5Ol8aF3bDbbf6uFfDPxn2ftoPJ7opwHDrHpH1AfvVM2G9RFACAuEilXyYrU2eH8UuYb04JqaMCepR33tfGbGPUe58EhUZc9+OYg9KkSfoCh30z6mLk55hHBmwHOleux/D3ywGCelxlE3W79wMey+OOh0ObO6dAxyGBH0AsOibsdygKAIAFWyPCT1WGN08I26OG/bctTGIXx/puxXxPjtO4WeP7Df0xNi5UVb7epNRN2X50td3dlB7HRT0OnWNIP5A/UtGaJewDAGyZMBnXyGf5J8y+Hbp336zTVsBpp7j4Q72ybEqgKsIx24n497aHs1cnnGtRtjvosXx+zL9P5PuDwA/gpBUd9Of10qMoAACWjZoQq26G7p82Kux3I0yspyyMDMiyrop/3gG434dpcItdQeAHkD7San1RB/1NigIA4IIJ66MC+4lefjPr96ie/3VLm1aNYR31jO0OaWTZM2Wd1aBp1YQRIX7/vpLR7Y7rWLb9/QtxHCaBZ/iB7FvXQX+NYgAAJGBnRDhu6JCxPtQDPzciLHRtvJd+EPglnEUcgn1PistcGveXx4V+vVyM6XPkEcGtHB2rtYihspbR7a7EuB1JTASdt+OQwA/ANybmAwAkSkK7DtcyoVb1dOjXy5r559UxDQVxaKvRvfH1iOFkLsXFLrO2y4zp26NCmd4f23q/BHkd77h6RCXKIxcpdCniMTHu3e37MW3f/phj2dZ2Bz0eZhzUa4twHDrHkH4ge6THQnr1LxL2AQApMKr3bUl62WXW/hGNAXIfi+sRtHH3waWwKzRDoKtpLnAzOqI55j/LCIvtAOvqjSnHelLD2C1phP0+5u8aY/5z2/KxHHW7gzZejfs+dcvHdFGOQ+fo4QeypWnCfpeiAACk6N4kvfjDlfJB0FgY8futGGc8l5ECy2NCQj1kz2AmXgEmvfgTAp2ERBWgp1/KadSQdSnbtRBBc1w47DiY7X6cStjvY/5u5NsR4up9ltdZ6nLrjfgcG9s9MXjr7eiMOB6kAa8R9FEc/TeyDVfGHAsrBTwOnaOHH8gGuQDKq/YWCfsAgJQFT6k4j+rl31CjewXXY/xsCSbj7ou7QXsG9e+vqWxN2CeBflLPcMPnesY9I7005q0Lk8pQGiD2Riy7KSiv1RDfR35/XCNQ3M+0tyZsdz3gdtdV+MarrQnbUQmwDRWzDfURy2GBj0MCP4AzQV+WNsUBAEip5oh/NyoYtCy8Tm9cA4J8/p7fWc5NT+RqlgrdNLbMqvHvSN/2E/rNPhm3D7cDlKGEsnGPEzRD9qrGPVnent/wbH5vL8SxF/exLHYDbneUYCsND6PO06oK9jaIjTHXgd6oxo2UH4cEfgCx6ZmL3QWCPgAgI8FzXEX9tC0Lny2f254QFg+k535cSJFwpJc9E06yWPaxhH4TNnsTyrAxJWQ1TDgeF/CmhePumH8fuHd3ikFD0NgAKf/ezIMw7vv0yyvuxiuzvnXL2+33mFqZcE5NbDQx2yHb0JhQdr2UHoe5wzP8QHp0TEWopUN+j+IAAGTM1oQKfv8+Z3G2bRnafjCmkj8YVizDkeXzB7Oqn1fHQ4urWS94ebRBf7d5Nb43WkJixzwCMTZs6t+RctwdU4bb5o0MUoa3hv6bvMJwbko5LvroVR13bFRN0OuebhTQ65yNUGxyrDbM8+ry2Y+a71JX00cVSFmuWdqX0jh1ZcI2RNnuINshcwo0x5zTg9Av23D91H+bUZMnCmzrdW+m+Dgk8AMBEVynh/wdE/K7FAcAIOOhs63GPwO/ZfGzJSTMquk9m3U1/Rn9QS/gRsbKv22C0rihzBLQZqeE/taUdVTV5EadcSGr5XMfTjp+qipa48y471ULGJQHIypsGhzLk7bL73ZP2p/TrEz5nKBlJ8fevM/GhkSOwzxiSD9sa0/570ULuXKh2zQXu3vNq/U2CfsAgJwYF+q7QWf3DtPgoCYPbQ8S5jL52ltTxuN6TwdDwms+1rGo4um0WQy431eUpc6ioe8VtR53wXYv8dBjGh3H5T9uO+IIyv3z02/ZJXwcEviBADfNic/JmKDbzuF3H3yvTXPzkmfxSybgr+iFYfsAgNwxPWjdEf9px9HnS6i4GLJu0TJhrpPxfSD1juaU0F/xEbbClqMyf3cxaMgaarTpWgz9F0MG6c0ggTXG0L8ZMlxfjCPkynboZT5C+O7nAb2Oi0HLLqnjMG8KNaT/aOtt7fLSg7LDq9ySrZKLjDxT09Rl7ufElouIDJubUxEmGInQKNEJ8TeHY9bRpbceAFBw0ti/feo+uenqw83EZ7NmUrElNfl5YmXC8Y7F+QWSMGko9iD0Twyvp8pxwWc9TRpNtqKUpQn9F8zka4Nn2asxHh/9MGzWv6QmD0kfTKS8ZeHtEn5D/4reVhk5s+pjH7TNsdy0sC1NvR2yfxvmeJg2lF/KSxr6mlHKLqnjME9KFAHSZObGtcrQBaRDLzgAAIjKhIXqUHCUENElEAQux5oJW/Whfy0BupeWsjSzw9dHBMfSmN8f1D1rQ0GyY46PTkr3QXWovjzoeOq4nJBuqNyGz6veUNl1i3wcEvgBAAAAIOHAD+Qdz/ADAAAAAEDgBwAAAAAABH4AAAAAAEDgBwAAAAAABH4AAAAAAEDgBwAAAACAwA8AAAAAAAj8AAAAAACAwA8AAAAAAAj8AAAAAACAwA8AAAAAQOHdTREAAAAAyIkVvVQoBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACC7/q8AAwDWEI1OPcESnQAAAABJRU5ErkJggg==\",\"key\":1})])]);\n}\n\nSafeBrokMKP.defaultProps = {\"width\":\"172\",\"height\":\"56\",\"viewBox\":\"0 0 172 56\",\"fill\":\"none\"};\n\nmodule.exports = SafeBrokMKP;\n\nSafeBrokMKP.default = SafeBrokMKP;\n","var React = require('react');\n\nfunction Neowintech (props) {\n return React.createElement(\"svg\",props,React.createElement(\"g\",{\"fill\":\"none\"},[React.createElement(\"path\",{\"fill\":\"currentColor\",\"d\":\"M48.303 26.257v-9.804c0-.166 0-.357.139-.523.127-.131.273-.142.422-.143h2.79c.993 0 1.547.238 1.94.761.44.595.508 1.404.508 2.237v7.472h2.704v-8.305c0-1.737-.555-2.689-1.202-3.283-.97-.905-2.148-1.024-3.42-1.024H47.69c-.526.002-1.242.038-1.697.571-.37.405-.393.976-.393 1.357v10.684h2.703zm21.71 0v-2.141h-5.984c-.994 0-2.126-.143-2.472-1.5-.093-.38-.162-1.19-.162-1.737h7.116c.485 0 .947-.095 1.317-.476.508-.523.578-1.26.578-1.903 0-1.595-.3-3.165-1.733-4.093-1.098-.716-2.522-.804-3.913-.81h-.283c-1.178.003-3.14.051-4.422 1.19-1.315 1.168-1.451 2.863-1.456 5.153v.13c0 1.666.07 3.403.878 4.593.997 1.446 2.438 1.589 3.67 1.594h6.866zm-3.004-7.52h-5.614c.023-.832 0-1.522.554-2.165.74-.856 1.849-.833 2.565-.833.763 0 1.64.048 2.31.571.393.31.786.905.786 1.69 0 .333-.07.738-.6.738zm16.327 6.307c.9-.88 1.57-2.475 1.57-5.14 0-1.333-.16-3.712-1.57-5.069-1.34-1.285-3.49-1.332-4.945-1.332s-3.604.047-4.944 1.332c-1.382 1.33-1.564 3.643-1.571 5.079v.085c0 1.285.115 3.664 1.57 5.045 1.312 1.234 3.399 1.351 4.851 1.356h.094c1.41 0 3.628-.095 4.945-1.356zm-4.945-.786c-.97 0-2.148-.119-2.934-1.047-.74-.877-.783-2.111-.785-3.14v-.238c.002-.845.042-2.335.762-3.19.741-.879 2.007-.993 2.883-.999h.074c.97 0 2.149.095 2.935 1 .854.975.785 2.403.785 3.331 0 1.095 0 2.308-.809 3.236-.808.928-1.894 1.047-2.91 1.047zm20.67 2.142c.901 0 1.71-.238 2.103-1.713l2.911-11.042h-2.588l-2.333 9.328c-.046.167-.139.381-.254.381-.116 0-.185-.262-.208-.357l-2.265-8.328c-.277-1.047-1.224-1.166-1.779-1.166-.462 0-1.478.047-1.779 1.166l-2.24 8.328c-.024.072-.093.357-.232.357-.115 0-.208-.262-.231-.38l-2.357-9.329h-2.587l2.91 11.042c.163.666.463 1.713 2.103 1.713 1.41 0 1.918-.761 2.103-1.404l2.125-7.9c.024-.095.07-.405.185-.405.116 0 .162.31.185.405l2.126 7.9c.346 1.285 1.455 1.404 2.102 1.404zm8.818-14.587V9.6h-2.704v2.213h2.704zm0 14.444V13.645h-2.704v12.612h2.704zm4.82 0v-9.804c0-.166 0-.357.139-.523.127-.131.273-.142.421-.143h2.79c.994 0 1.548.238 1.94.761.44.595.51 1.404.51 2.237v7.472h2.702v-8.305c0-1.737-.554-2.689-1.201-3.283-.97-.905-2.149-1.024-3.42-1.024h-4.494c-.526.002-1.242.038-1.698.571-.352.387-.39.924-.392 1.304v10.737h2.703zm17.574 0v-2.141h-.67c-.485 0-1.502-.024-2.103-.548-.763-.648-.72-1.79-.716-2.64v-5.141h3.42v-2.142h-3.42V9.6h-2.703v4.045h-1.687v2.142h1.687v6.354c0 1.594.439 2.522 1.224 3.188.763.643 1.64.928 3.281.928h1.687zm12.283 0v-2.141h-5.984c-.994 0-2.126-.143-2.472-1.5-.093-.38-.162-1.19-.162-1.737h7.116c.485 0 .947-.095 1.317-.476.508-.523.578-1.26.578-1.903 0-1.595-.3-3.165-1.733-4.093-1.098-.716-2.522-.804-3.913-.81h-.283c-1.178.003-3.14.051-4.422 1.19-1.315 1.168-1.451 2.863-1.456 5.153v.13c0 1.666.07 3.403.878 4.593.997 1.446 2.438 1.589 3.67 1.594h6.866zm-3.004-7.52h-5.614c.023-.832 0-1.522.554-2.165.74-.856 1.849-.833 2.565-.833.763 0 1.64.048 2.31.571.393.31.786.905.786 1.69 0 .333-.07.738-.6.738zm15.518 7.52v-2.141h-4.39c-1.132 0-2.472-.12-3.073-1.333-.323-.666-.393-1.88-.393-2.618 0-.38.024-1.713.208-2.38.3-1.07 1.179-1.998 3.004-1.998h4.367v-2.142h-5.245c-2.195 0-3.235.833-3.743 1.357-1.309 1.393-1.382 3.445-1.386 4.933v.183c0 1.785.092 3.355 1.109 4.592 1.086 1.329 2.659 1.539 3.592 1.547h5.95zm4.497 0v-10.47h3.165c.532 0 1.363.048 1.964.738.555.642.6 1.642.6 2.165v7.567H168v-8.305c0-1.737-.647-2.831-1.317-3.402-.878-.738-2.08-.905-3.443-.905h-3.673V9.6h-2.703v16.657h2.703z\",\"key\":0}),React.createElement(\"g\",{\"fill\":\"#367FFF\",\"key\":1},[React.createElement(\"path\",{\"d\":\"M6.157 27.269V6.22c0-.37 0-.791.316-1.16.29-.29.623-.314.96-.316h6.354c2.263 0 3.526.527 4.42 1.687 1 1.318 1.158 3.11 1.158 4.955V25.03c0 1.607 1.303 2.91 2.91 2.91h2.576c.37 0 .671-.3.671-.671V9.542c0-3.848-1.263-5.957-2.736-7.275C20.576.264 17.892 0 14.998 0H4.76C3.563.004 1.933.084.895 1.265.053 2.162 0 3.427 0 4.27V27.27c0 .37.3.671.672.671h4.813c.371 0 .672-.3.672-.671z\",\"key\":0}),React.createElement(\"path\",{\"d\":\"M29.037 8.731V29.78c0 .37 0 .791-.316 1.16-.29.29-.623.314-.96.316h-6.354c-2.263 0-3.526-.527-4.42-1.687-1-1.318-1.158-3.11-1.158-4.955V10.97c0-1.607-1.303-2.91-2.91-2.91h-2.576c-.37 0-.671.3-.671.671v17.727c0 3.848 1.263 5.957 2.736 7.275C14.618 35.736 17.302 36 20.196 36h10.237c1.198-.004 2.828-.084 3.866-1.265.842-.897.895-2.162.895-3.005V10.97c0-1.607-1.303-2.91-2.91-2.91h-2.575c-.371 0-.672.3-.672.671z\",\"key\":1})])]));\n}\n\nNeowintech.defaultProps = {\"width\":\"168\",\"height\":\"36\",\"viewBox\":\"0 0 168 36\"};\n\nmodule.exports = Neowintech;\n\nNeowintech.default = Neowintech;\n","var React = require('react');\n\nfunction Android (props) {\n return React.createElement(\"svg\",props,React.createElement(\"g\",{\"fill\":\"none\",\"fillRule\":\"evenodd\"},[React.createElement(\"rect\",{\"width\":\"156\",\"height\":\"48\",\"fill\":\"#233143\",\"rx\":\"8\",\"key\":0}),React.createElement(\"text\",{\"fill\":\"#FFF\",\"fontFamily\":\"ProductSans-Bold, Product Sans\",\"fontSize\":\"16\",\"fontWeight\":\"bold\",\"key\":1},React.createElement(\"tspan\",{\"x\":\"60\",\"y\":\"29\"},\"Play Store\")),React.createElement(\"g\",{\"fill\":\"#FFF\",\"fillRule\":\"nonzero\",\"stroke\":\"#262626\",\"key\":2},[React.createElement(\"path\",{\"d\":\"M.382.22C.143.473 0 .869 0 1.37v18.122c0 .503.143.899.382 1.15l.06.06 10.132-10.157v-.24L.442.15.382.22z\",\"transform\":\"translate(25 14)\",\"key\":0}),React.createElement(\"path\",{\"d\":\"M13.805 14l-3.38-3.38v-.24L13.818 7l.072.048 4.014 2.27c1.15.644 1.15 1.708 0 2.365l-4.014 2.27-.084.047z\",\"transform\":\"translate(25 14)\",\"key\":1}),React.createElement(\"path\",{\"d\":\"M14 13.897l-3.468-3.471L.298 20.673c.372.396 1.008.456 1.704.048L14 13.897z\",\"transform\":\"translate(25 14)\",\"key\":2}),React.createElement(\"path\",{\"d\":\"M14 7.101L2.002.275C1.294-.122.67-.074.298.323l10.234 10.251L14 7.101z\",\"transform\":\"translate(25 14)\",\"key\":3})])]));\n}\n\nAndroid.defaultProps = {\"width\":\"156\",\"height\":\"48\",\"viewBox\":\"0 0 156 48\"};\n\nmodule.exports = Android;\n\nAndroid.default = Android;\n","var React = require('react');\n\nfunction Ios (props) {\n return React.createElement(\"svg\",props,React.createElement(\"g\",{\"fill\":\"none\",\"fillRule\":\"evenodd\"},[React.createElement(\"rect\",{\"width\":\"156\",\"height\":\"48\",\"fill\":\"#233143\",\"rx\":\"8\",\"key\":0}),React.createElement(\"text\",{\"fill\":\"#FFF\",\"fontFamily\":\"ProductSans-Bold, Product Sans\",\"fontSize\":\"16\",\"fontWeight\":\"bold\",\"key\":1},React.createElement(\"tspan\",{\"x\":\"60\",\"y\":\"29\"},\"App Store\")),React.createElement(\"path\",{\"fill\":\"#FFF\",\"fillRule\":\"nonzero\",\"d\":\"M26.03 31.478l.003.001-1.143 2c-.418.729-1.342.979-2.065.558-.723-.421-.97-1.355-.553-2.084l.842-1.473.08-.141c.145-.21.502-.571 1.214-.503 0 0 1.677.184 1.799 1.063 0 0 .016.29-.177.58zm16.442-5.18h-3.606c-.245-.017-.353-.106-.395-.157l-.002-.005-3.86-6.738-.005.003-.231-.334c-.38-.585-.982.91-.982.91-.72 1.667.102 3.562.389 4.134l5.36 9.36c.422.737 1.357.99 2.088.564.73-.426.981-1.368.56-2.105l-1.341-2.34c-.026-.057-.071-.21.203-.211h1.822c.844 0 1.528-.69 1.528-1.541 0-.85-.684-1.54-1.528-1.54zm-6.984 2.131s.193.985-.555.985H21.536c-.848 0-1.536-.688-1.536-1.537 0-.85.688-1.538 1.536-1.538h3.444c.556-.032.688-.353.688-.353l.003.001 4.496-7.792h-.001c.082-.15.013-.293.001-.315l-1.484-2.574c-.424-.735-.173-1.675.562-2.1.735-.424 1.674-.172 2.098.563l.689 1.193.687-1.191c.425-.735 1.364-.987 2.099-.563.735.425.986 1.365.562 2.1l-6.256 10.843c-.027.066-.036.17.168.188h3.74v.037s2.162.033 2.456 2.053z\",\"key\":2})]));\n}\n\nIos.defaultProps = {\"width\":\"156\",\"height\":\"48\",\"viewBox\":\"0 0 156 48\"};\n\nmodule.exports = Ios;\n\nIos.default = Ios;\n","var React = require('react');\n\nfunction ArrowIcon (props) {\n return React.createElement(\"svg\",props,React.createElement(\"g\",{\"fill\":\"none\",\"fillRule\":\"evenodd\"},[React.createElement(\"path\",{\"d\":\"M0 0H40V40H0z\",\"transform\":\"rotate(90 20 20) matrix(1 0 0 -1 0 40)\",\"key\":0}),React.createElement(\"path\",{\"stroke\":\"currentColor\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"strokeWidth\":\"1.5\",\"d\":\"M14 18L20 22 26 18\",\"transform\":\"rotate(90 20 20) rotate(-90 20 20)\",\"key\":1})]));\n}\n\nArrowIcon.defaultProps = {\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 40 40\"};\n\nmodule.exports = ArrowIcon;\n\nArrowIcon.default = ArrowIcon;\n","var React = require('react');\n\nfunction GreenArrow (props) {\n return React.createElement(\"svg\",props,React.createElement(\"path\",{\"d\":\"M4.86603 6.5C4.48113 7.16667 3.51887 7.16667 3.13397 6.5L0.535898 2C0.150998 1.33333 0.632122 0.500001 1.40192 0.500001L6.59807 0.5C7.36788 0.5 7.849 1.33333 7.4641 2L4.86603 6.5Z\",\"fill\":\"#293242\"}));\n}\n\nGreenArrow.defaultProps = {\"width\":\"8\",\"height\":\"7\",\"viewBox\":\"0 0 8 7\",\"fill\":\"none\"};\n\nmodule.exports = GreenArrow;\n\nGreenArrow.default = GreenArrow;\n","var React = require('react');\n\nfunction MenuIcon (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"line\",{\"x1\":\"3\",\"y1\":\"12\",\"x2\":\"21\",\"y2\":\"12\",\"key\":0}),React.createElement(\"line\",{\"x1\":\"3\",\"y1\":\"6\",\"x2\":\"21\",\"y2\":\"6\",\"key\":1}),React.createElement(\"line\",{\"x1\":\"3\",\"y1\":\"18\",\"x2\":\"21\",\"y2\":\"18\",\"key\":2})]);\n}\n\nMenuIcon.defaultProps = {\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"feather feather-menu\"};\n\nmodule.exports = MenuIcon;\n\nMenuIcon.default = MenuIcon;\n","var React = require('react');\n\nfunction X (props) {\n return React.createElement(\"svg\",props,[React.createElement(\"line\",{\"x1\":\"18\",\"y1\":\"6\",\"x2\":\"6\",\"y2\":\"18\",\"key\":0}),React.createElement(\"line\",{\"x1\":\"6\",\"y1\":\"6\",\"x2\":\"18\",\"y2\":\"18\",\"key\":1})]);\n}\n\nX.defaultProps = {\"width\":\"24\",\"height\":\"24\",\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\",\"className\":\"feather feather-x\"};\n\nmodule.exports = X;\n\nX.default = X;\n","\"use strict\";var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r])},t(e,r)};var e=function(){return e=Object.assign||function(t){for(var e,r=1,n=arguments.length;r<n;r++)for(var o in e=arguments[r])Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t},e.apply(this,arguments)};function r(t,e,r,n){return new(r||(r=Promise))((function(o,i){function s(t){try{c(n.next(t))}catch(t){i(t)}}function a(t){try{c(n.throw(t))}catch(t){i(t)}}function c(t){var e;t.done?o(t.value):(e=t.value,e instanceof r?e:new r((function(t){t(e)}))).then(s,a)}c((n=n.apply(t,e||[])).next())}))}function n(t,e){var r,n,o,i,s={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return i={next:a(0),throw:a(1),return:a(2)},\"function\"==typeof Symbol&&(i[Symbol.iterator]=function(){return this}),i;function a(a){return function(c){return function(a){if(r)throw new TypeError(\"Generator is already executing.\");for(;i&&(i=0,a[0]&&(s=0)),s;)try{if(r=1,n&&(o=2&a[0]?n.return:a[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,a[1])).done)return o;switch(n=0,o&&(a=[2&a[0],o.value]),a[0]){case 0:case 1:o=a;break;case 4:return s.label++,{value:a[1],done:!1};case 5:s.label++,n=a[1],a=[0];continue;case 7:a=s.ops.pop(),s.trys.pop();continue;default:if(!(o=s.trys,(o=o.length>0&&o[o.length-1])||6!==a[0]&&2!==a[0])){s=0;continue}if(3===a[0]&&(!o||a[1]>o[0]&&a[1]<o[3])){s.label=a[1];break}if(6===a[0]&&s.label<o[1]){s.label=o[1],o=a;break}if(o&&s.label<o[2]){s.label=o[2],s.ops.push(a);break}o[2]&&s.ops.pop(),s.trys.pop();continue}a=e.call(t,s)}catch(t){a=[6,t],n=0}finally{r=o=0}if(5&a[0])throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}([a,c])}}}\"function\"==typeof SuppressedError&&SuppressedError;var o={exports:{}};function i(){}i.prototype={on:function(t,e,r){var n=this.e||(this.e={});return(n[t]||(n[t]=[])).push({fn:e,ctx:r}),this},once:function(t,e,r){var n=this;function o(){n.off(t,o),e.apply(r,arguments)}return o._=e,this.on(t,o,r)},emit:function(t){for(var e=[].slice.call(arguments,1),r=((this.e||(this.e={}))[t]||[]).slice(),n=0,o=r.length;n<o;n++)r[n].fn.apply(r[n].ctx,e);return this},off:function(t,e){var r=this.e||(this.e={}),n=r[t],o=[];if(n&&e)for(var i=0,s=n.length;i<s;i++)n[i].fn!==e&&n[i].fn._!==e&&o.push(n[i]);return o.length?r[t]=o:delete r[t],this}},o.exports=i;var s=o.exports.TinyEmitter=i,a=function(t){var e=t[1];return null!=e},c=function(){},u=function(){function t(t){var e=t.onError,r=t.onSent,n=t.appName,o=t.metricsInterval,i=t.disableMetrics,s=void 0!==i&&i,a=t.url,u=t.clientKey,l=t.fetch,h=t.headerName,p=t.customHeaders,f=void 0===p?{}:p,d=t.metricsIntervalInitial;this.onError=e,this.onSent=r||c,this.disabled=s,this.metricsInterval=1e3*o,this.metricsIntervalInitial=1e3*d,this.appName=n,this.url=a instanceof URL?a:new URL(a),this.clientKey=u,this.bucket=this.createEmptyBucket(),this.fetch=l,this.headerName=h,this.customHeaders=f}return t.prototype.start=function(){var t=this;if(this.disabled)return!1;\"number\"==typeof this.metricsInterval&&this.metricsInterval>0&&(this.metricsIntervalInitial>0?setTimeout((function(){t.startTimer(),t.sendMetrics()}),this.metricsIntervalInitial):this.startTimer())},t.prototype.stop=function(){this.timer&&(clearTimeout(this.timer),delete this.timer)},t.prototype.createEmptyBucket=function(){return{start:new Date,stop:null,toggles:{}}},t.prototype.getHeaders=function(){var t,e=((t={})[this.headerName]=this.clientKey,t.Accept=\"application/json\",t[\"Content-Type\"]=\"application/json\",t);return Object.entries(this.customHeaders).filter(a).forEach((function(t){var r=t[0],n=t[1];return e[r]=n})),e},t.prototype.sendMetrics=function(){return r(this,void 0,void 0,(function(){var t,e,r;return n(this,(function(n){switch(n.label){case 0:if(t=\"\".concat(this.url,\"/client/metrics\"),e=this.getPayload(),this.bucketIsEmpty(e))return[2];n.label=1;case 1:return n.trys.push([1,3,,4]),[4,this.fetch(t,{cache:\"no-cache\",method:\"POST\",headers:this.getHeaders(),body:JSON.stringify(e)})];case 2:return n.sent(),this.onSent(e),[3,4];case 3:return r=n.sent(),console.error(\"Unleash: unable to send feature metrics\",r),this.onError(r),[3,4];case 4:return[2]}}))}))},t.prototype.count=function(t,e){return!(this.disabled||!this.bucket)&&(this.assertBucket(t),this.bucket.toggles[t][e?\"yes\":\"no\"]++,!0)},t.prototype.countVariant=function(t,e){return!(this.disabled||!this.bucket)&&(this.assertBucket(t),this.bucket.toggles[t].variants[e]?this.bucket.toggles[t].variants[e]+=1:this.bucket.toggles[t].variants[e]=1,!0)},t.prototype.assertBucket=function(t){if(this.disabled||!this.bucket)return!1;this.bucket.toggles[t]||(this.bucket.toggles[t]={yes:0,no:0,variants:{}})},t.prototype.startTimer=function(){var t=this;this.timer=setInterval((function(){t.sendMetrics()}),this.metricsInterval)},t.prototype.bucketIsEmpty=function(t){return 0===Object.keys(t.bucket.toggles).length},t.prototype.getPayload=function(){var t=e(e({},this.bucket),{stop:new Date});return this.bucket=this.createEmptyBucket(),{bucket:t,appName:this.appName,instanceId:\"browser\"}},t}(),l=function(){function t(){this.store=new Map}return t.prototype.save=function(t,e){return r(this,void 0,void 0,(function(){return n(this,(function(r){return this.store.set(t,e),[2]}))}))},t.prototype.get=function(t){return r(this,void 0,void 0,(function(){return n(this,(function(e){return[2,this.store.get(t)]}))}))},t}(),h=function(){function t(){this.prefix=\"unleash:repository\"}return t.prototype.save=function(t,e){return r(this,void 0,void 0,(function(){var r,o;return n(this,(function(n){r=JSON.stringify(e),o=\"\".concat(this.prefix,\":\").concat(t);try{window.localStorage.setItem(o,r)}catch(t){console.error(t)}return[2]}))}))},t.prototype.get=function(t){try{var e=\"\".concat(this.prefix,\":\").concat(t),r=window.localStorage.getItem(e);return r?JSON.parse(r):void 0}catch(t){console.error(t)}},t}();let p;const f=new Uint8Array(16);function d(){if(!p&&(p=\"undefined\"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!p))throw new Error(\"crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported\");return p(f)}const v=[];for(let t=0;t<256;++t)v.push((t+256).toString(16).slice(1));var m={randomUUID:\"undefined\"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};function y(t,e,r){if(m.randomUUID&&!e&&!t)return m.randomUUID();const n=(t=t||{}).random||(t.rng||d)();if(n[6]=15&n[6]|64,n[8]=63&n[8]|128,e){r=r||0;for(let t=0;t<16;++t)e[r+t]=n[t];return e}return function(t,e=0){return v[t[e+0]]+v[t[e+1]]+v[t[e+2]]+v[t[e+3]]+\"-\"+v[t[e+4]]+v[t[e+5]]+\"-\"+v[t[e+6]]+v[t[e+7]]+\"-\"+v[t[e+8]]+v[t[e+9]]+\"-\"+v[t[e+10]]+v[t[e+11]]+v[t[e+12]]+v[t[e+13]]+v[t[e+14]]+v[t[e+15]]}(n)}var g=function(){function t(){}return t.prototype.generateEventId=function(){return y()},t.prototype.createImpressionEvent=function(t,r,n,o,i,s){var a=this.createBaseEvent(t,r,n,o,i);return s?e(e({},a),{variant:s}):a},t.prototype.createBaseEvent=function(t,e,r,n,o){return{eventType:n,eventId:this.generateEventId(),context:t,enabled:e,featureName:r,impressionData:o}},t}(),b=[\"userId\",\"sessionId\",\"remoteAddress\",\"currentTime\"],w=function(t){return b.includes(t)},E={INIT:\"initialized\",ERROR:\"error\",READY:\"ready\",UPDATE:\"update\",IMPRESSION:\"impression\",SENT:\"sent\",RECOVERED:\"recovered\"},I=\"isEnabled\",x=\"getVariant\",S={name:\"disabled\",enabled:!1,feature_enabled:!1},T=\"repo\",R=function(){try{if(\"undefined\"!=typeof window&&\"fetch\"in window)return fetch.bind(window);if(\"fetch\"in globalThis)return fetch.bind(globalThis)}catch(t){console.error('Unleash failed to resolve \"fetch\"',t)}},k=function(o){function i(t){var r=t.storageProvider,n=t.url,i=t.clientKey,s=t.disableRefresh,a=void 0!==s&&s,c=t.refreshInterval,p=void 0===c?30:c,f=t.metricsInterval,d=void 0===f?30:f,v=t.metricsIntervalInitial,m=void 0===v?2:v,y=t.disableMetrics,b=void 0!==y&&y,w=t.appName,I=t.environment,x=void 0===I?\"default\":I,S=t.context,T=t.fetch,k=void 0===T?R():T,O=t.createAbortController,N=void 0===O?function(){try{if(\"undefined\"!=typeof window&&\"AbortController\"in window)return function(){return new window.AbortController};if(\"fetch\"in globalThis)return function(){return new globalThis.AbortController}}catch(t){console.error('Unleash failed to resolve \"AbortController\" factory',t)}}():O,A=t.bootstrap,D=t.bootstrapOverride,C=void 0===D||D,U=t.headerName,P=void 0===U?\"Authorization\":U,j=t.customHeaders,H=void 0===j?{}:j,M=t.impressionDataAll,_=void 0!==M&&M,K=t.usePOSTrequests,V=void 0!==K&&K,q=o.call(this)||this;if(q.toggles=[],q.etag=\"\",q.readyEventEmitted=!1,q.usePOSTrequests=!1,q.started=!1,!n)throw new Error(\"url is required\");if(!i)throw new Error(\"clientKey is required\");if(!w)throw new Error(\"appName is required.\");return q.eventsHandler=new g,q.impressionDataAll=_,q.toggles=A&&A.length>0?A:[],q.url=n instanceof URL?n:new URL(n),q.clientKey=i,q.headerName=P,q.customHeaders=H,q.storage=r||(\"undefined\"!=typeof window?new h:new l),q.refreshInterval=a?0:1e3*p,q.context=e({appName:w,environment:x},S),q.usePOSTrequests=V,q.sdkState=\"initializing\",q.ready=new Promise((function(t){q.init().then(t).catch((function(e){console.error(e),q.sdkState=\"error\",q.emit(E.ERROR,e),t()}))})),k||console.error('Unleash: You must either provide your own \"fetch\" implementation or run in an environment where \"fetch\" is available.'),N||console.error('Unleash: You must either provide your own \"AbortController\" implementation or run in an environment where \"AbortController\" is available.'),q.fetch=k,q.createAbortController=N,q.bootstrap=A&&A.length>0?A:void 0,q.bootstrapOverride=C,q.metrics=new u({onError:q.emit.bind(q,E.ERROR),onSent:q.emit.bind(q,E.SENT),appName:w,metricsInterval:d,disableMetrics:b,url:q.url,clientKey:i,fetch:k,headerName:P,customHeaders:H,metricsIntervalInitial:m}),q}return function(e,r){if(\"function\"!=typeof r&&null!==r)throw new TypeError(\"Class extends value \"+String(r)+\" is not a constructor or null\");function n(){this.constructor=e}t(e,r),e.prototype=null===r?Object.create(r):(n.prototype=r.prototype,new n)}(i,o),i.prototype.getAllToggles=function(){return function(t,e,r){if(r||2===arguments.length)for(var n,o=0,i=e.length;o<i;o++)!n&&o in e||(n||(n=Array.prototype.slice.call(e,0,o)),n[o]=e[o]);return t.concat(n||Array.prototype.slice.call(e))}([],this.toggles,!0)},i.prototype.isEnabled=function(t){var e,r=this.toggles.find((function(e){return e.name===t})),n=!!r&&r.enabled;if(this.metrics.count(t,n),(null==r?void 0:r.impressionData)||this.impressionDataAll){var o=this.eventsHandler.createImpressionEvent(this.context,n,t,I,null!==(e=null==r?void 0:r.impressionData)&&void 0!==e?e:void 0);this.emit(E.IMPRESSION,o)}return n},i.prototype.getVariant=function(t){var r,n=this.toggles.find((function(e){return e.name===t})),o=(null==n?void 0:n.enabled)||!1,i=n?n.variant:S;if(i.name&&this.metrics.countVariant(t,i.name),this.metrics.count(t,o),(null==n?void 0:n.impressionData)||this.impressionDataAll){var s=this.eventsHandler.createImpressionEvent(this.context,o,t,x,null!==(r=null==n?void 0:n.impressionData)&&void 0!==r?r:void 0,i.name);this.emit(E.IMPRESSION,s)}return e(e({},i),{feature_enabled:o})},i.prototype.updateToggles=function(){return r(this,void 0,void 0,(function(){var t=this;return n(this,(function(e){switch(e.label){case 0:return this.timerRef||this.readyEventEmitted?[4,this.fetchToggles()]:[3,2];case 1:return e.sent(),[3,4];case 2:return this.started?[4,new Promise((function(e){var r=function(){t.fetchToggles().then((function(){t.off(E.READY,r),e()}))};t.once(E.READY,r)}))]:[3,4];case 3:e.sent(),e.label=4;case 4:return[2]}}))}))},i.prototype.updateContext=function(t){return r(this,void 0,void 0,(function(){var r;return n(this,(function(n){switch(n.label){case 0:return(t.appName||t.environment)&&console.warn(\"appName and environment are static. They can't be updated with updateContext.\"),r={environment:this.context.environment,appName:this.context.appName,sessionId:this.context.sessionId},this.context=e(e({},r),t),[4,this.updateToggles()];case 1:return n.sent(),[2]}}))}))},i.prototype.getContext=function(){return e({},this.context)},i.prototype.setContextField=function(t,r){var n,o;if(w(t))this.context=e(e({},this.context),((n={})[t]=r,n));else{var i=e(e({},this.context.properties),((o={})[t]=r,o));this.context=e(e({},this.context),{properties:i})}this.updateToggles()},i.prototype.removeContextField=function(t){var r;w(t)?this.context=e(e({},this.context),((r={})[t]=void 0,r)):\"object\"==typeof this.context.properties&&delete this.context.properties[t],this.updateToggles()},i.prototype.init=function(){return r(this,void 0,void 0,(function(){var t,r;return n(this,(function(n){switch(n.label){case 0:return[4,this.resolveSessionId()];case 1:return t=n.sent(),this.context=e({sessionId:t},this.context),r=this,[4,this.storage.get(T)];case 2:return r.toggles=n.sent()||[],!this.bootstrap||!this.bootstrapOverride&&0!==this.toggles.length?[3,4]:[4,this.storage.save(T,this.bootstrap)];case 3:n.sent(),this.toggles=this.bootstrap,this.emit(E.READY),n.label=4;case 4:return this.sdkState=\"healthy\",this.emit(E.INIT),[2]}}))}))},i.prototype.start=function(){return r(this,void 0,void 0,(function(){var t,e=this;return n(this,(function(r){switch(r.label){case 0:return this.started=!0,this.timerRef?(console.error(\"Unleash SDK has already started, if you want to restart the SDK you should call client.stop() before starting again.\"),[2]):[4,this.ready];case 1:return r.sent(),this.metrics.start(),t=this.refreshInterval,[4,this.fetchToggles()];case 2:return r.sent(),t>0&&(this.timerRef=setInterval((function(){return e.fetchToggles()}),t)),[2]}}))}))},i.prototype.stop=function(){this.timerRef&&(clearInterval(this.timerRef),this.timerRef=void 0),this.metrics.stop()},i.prototype.resolveSessionId=function(){return r(this,void 0,void 0,(function(){var t;return n(this,(function(e){switch(e.label){case 0:return this.context.sessionId?[2,this.context.sessionId]:[4,this.storage.get(\"sessionId\")];case 1:return(t=e.sent())?[3,3]:(t=Math.floor(1e9*Math.random()),[4,this.storage.save(\"sessionId\",t)]);case 2:e.sent(),e.label=3;case 3:return[2,t]}}))}))},i.prototype.getHeaders=function(){var t,e=this.usePOSTrequests,r=((t={})[this.headerName]=this.clientKey,t.Accept=\"application/json\",t);return e&&(r[\"Content-Type\"]=\"application/json\"),this.etag&&(r[\"If-None-Match\"]=this.etag),Object.entries(this.customHeaders).filter(a).forEach((function(t){var e=t[0],n=t[1];return r[e]=n})),r},i.prototype.storeToggles=function(t){return r(this,void 0,void 0,(function(){return n(this,(function(e){switch(e.label){case 0:return this.toggles=t,this.emit(E.UPDATE),[4,this.storage.save(T,t)];case 1:return e.sent(),[2]}}))}))},i.prototype.fetchToggles=function(){return r(this,void 0,void 0,(function(){var t,e,r,o,i,s,c,u;return n(this,(function(n){switch(n.label){case 0:if(!this.fetch)return[3,9];this.abortController&&this.abortController.abort(),this.abortController=this.createAbortController&&this.createAbortController(),t=this.abortController?this.abortController.signal:void 0,n.label=1;case 1:return n.trys.push([1,7,8,9]),e=this.usePOSTrequests,r=e?this.url:function(t,e){var r=new URL(t.toString());return Object.entries(e).filter(a).forEach((function(t){var e=t[0],n=t[1];\"properties\"===e&&n?Object.entries(n).filter(a).forEach((function(t){var e=t[0],n=t[1];return r.searchParams.append(\"properties[\".concat(e,\"]\"),n)})):r.searchParams.append(e,n)})),r}(this.url,this.context),o=e?\"POST\":\"GET\",i=e?JSON.stringify({context:this.context}):void 0,[4,this.fetch(r.toString(),{method:o,cache:\"no-cache\",headers:this.getHeaders(),body:i,signal:t})];case 2:return s=n.sent(),\"error\"===this.sdkState&&s.status<400&&(this.sdkState=\"healthy\",this.emit(E.RECOVERED)),s.ok&&304!==s.status?(this.etag=s.headers.get(\"ETag\")||\"\",[4,s.json()]):[3,5];case 3:return c=n.sent(),[4,this.storeToggles(c.toggles)];case 4:return n.sent(),\"healthy\"!==this.sdkState&&(this.sdkState=\"healthy\"),this.readyEventEmitted||(this.emit(E.READY),this.readyEventEmitted=!0),[3,6];case 5:s.ok||304===s.status||(console.error(\"Unleash: Fetching feature toggles did not have an ok response\"),this.sdkState=\"error\",this.emit(E.ERROR,{type:\"HttpError\",code:s.status})),n.label=6;case 6:return[3,9];case 7:return(u=n.sent())instanceof DOMException&&\"AbortError\"===u.name||(console.error(\"Unleash: unable to fetch feature toggles\",u),this.sdkState=\"error\",this.emit(E.ERROR,u)),[3,9];case 8:return this.abortController=null,[7];case 9:return[2]}}))}))},i}(s);exports.EVENTS=E,exports.InMemoryStorageProvider=l,exports.LocalStorageProvider=h,exports.UnleashClient=k,exports.resolveFetch=R;\n//# sourceMappingURL=index.cjs.map\n","export default 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}","export default 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}","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nexport default function _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}","export default 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}","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}","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\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}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}","export default function _taggedTemplateLiteralLoose(strings, raw) {\n if (!raw) {\n raw = strings.slice(0);\n }\n\n strings.raw = raw;\n return strings;\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default 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}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _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}"],"names":["module","exports","arr","len","length","i","arr2","Array","__esModule","isArray","arrayLikeToArray","self","ReferenceError","_extends","Object","assign","target","arguments","source","key","prototype","hasOwnProperty","call","apply","this","setPrototypeOf","subClass","superClass","create","constructor","obj","iter","Symbol","iterator","from","_i","_s","_e","_arr","_n","_d","next","done","push","value","err","TypeError","excluded","sourceKeys","keys","indexOf","_setPrototypeOf","o","p","__proto__","arrayWithHoles","iterableToArrayLimit","unsupportedIterableToArray","nonIterableRest","arrayWithoutHoles","iterableToArray","nonIterableSpread","_typeof","minLen","n","toString","slice","name","test","abs","Math","String","fromCharCode","trim","replace","pattern","replacement","indexof","search","index","charCodeAt","begin","end","array","line","column","position","character","characters","node","root","parent","type","props","children","return","copy","prev","peek","caret","token","alloc","dealloc","delimit","delimiter","whitespace","escaping","count","commenter","identifier","MS","MOZ","WEBKIT","COMMENT","DECLARATION","serialize","callback","output","stringify","element","join","prefix","hash","compile","parse","rule","rules","rulesets","pseudo","points","declarations","offset","atrule","property","previous","variable","scanning","ampersand","reference","comment","declaration","ruleset","post","size","j","k","x","y","z","identifierWithPointTracking","getRules","parsed","toRules","fixedElements","WeakMap","compat","isImplicitRule","get","set","parentRules","removeLabel","defaultStylisPlugins","map","exec","match","options","ssrStyles","document","querySelectorAll","forEach","getAttribute","head","appendChild","setAttribute","stylisPlugins","container","_insert","inserted","nodesToHydrate","attrib","split","currentSheet","collection","finalizingPlugins","insert","serializer","concat","selector","serialized","sheet","shouldCache","styles","cache","nonce","speedy","prepend","insertionPoint","registered","hydrate","reactPropsRegex","isPropValid","prop","fn","arg","undefined","EmotionCacheContext","createContext","HTMLElement","Provider","withEmotionCache","func","forwardRef","ref","useContext","ThemeContext","typePropName","createEmotionProps","newProps","Noop","Emotion","cssProp","css","registeredStyles","className","ele","createElement","possiblyStyleElement","Fragment","jsx","args","h","argsLength","createElementArgArray","E","c","Global","w","T","sheetRef","useRef","useLayoutEffect","isSpeedy","rehydrating","querySelector","tags","before","current","flush","sheetRefCurrent","nextElementSibling","_len","_key","keyframes","insertable","anim","str","hyphenateRegex","animationRegex","isCustomProperty","isProcessableValue","processStyleName","styleName","toLowerCase","processStyleValue","p1","p2","cursor","handleInterpolation","mergedProps","interpolation","__emotion_styles","string","interpolated","createStringFromObject","previousCursor","result","cached","labelPattern","serializeStyles","stringMode","strings","raw","lastIndex","identifierName","StyleSheet","_this","_insertTag","tag","nextSibling","firstChild","insertBefore","ctr","_proto","nodes","createTextNode","createStyleElement","styleSheets","ownerNode","sheetForTag","insertRule","cssRules","e","parentNode","removeChild","testOmitPropsOnStringTag","testOmitPropsOnComponent","getDefaultShouldForwardProp","composeShouldForwardProps","isReal","shouldForwardProp","optionsShouldForwardProp","__emotion_forwardProp","propName","createStyled","targetClassName","__emotion_real","baseTag","__emotion_base","label","defaultShouldForwardProp","shouldUseAs","Styled","finalTag","as","classInterpolations","theme","finalShouldForwardProp","displayName","defaultProps","defineProperty","withComponent","nextTag","nextOptions","newStyled","tagName","animationIterationCount","borderImageOutset","borderImageSlice","borderImageWidth","boxFlex","boxFlexGroup","boxOrdinalGroup","columnCount","columns","flex","flexGrow","flexPositive","flexShrink","flexNegative","flexOrder","gridRow","gridRowEnd","gridRowSpan","gridRowStart","gridColumn","gridColumnEnd","gridColumnSpan","gridColumnStart","msGridRow","msGridRowSpan","msGridColumn","msGridColumnSpan","fontWeight","lineHeight","opacity","order","orphans","tabSize","widows","zIndex","zoom","WebkitLineClamp","fillOpacity","floodOpacity","stopOpacity","strokeDasharray","strokeDashoffset","strokeMiterlimit","strokeOpacity","strokeWidth","getRegisteredStyles","classNames","rawClassName","insertStyles","isStringTag","invariant","condition","message","Err","Error","memoize","cacheDefault","serializerDefault","strategy","strategyDefault","monadic","cacheKey","computedValue","variadic","assemble","context","bind","JSON","ObjectWithoutPrototypeCache","strategies","_assign","t","s","ErrorKind","TYPE","SKELETON_TYPE","isLiteralElement","el","literal","isArgumentElement","argument","isNumberElement","number","isDateElement","date","isTimeElement","time","isSelectElement","select","isPluralElement","plural","isPoundElement","pound","isTagElement","isNumberSkeleton","isDateTimeSkeleton","dateTime","SPACE_SEPARATOR_REGEX","DATE_TIME_REGEX","parseDateTimeSkeleton","skeleton","era","year","RangeError","month","day","weekday","hour12","hourCycle","hour","minute","second","timeZoneName","_a","FRACTION_PRECISION_REGEX","SIGNIFICANT_PRECISION_REGEX","INTEGER_WIDTH_REGEX","CONCISE_INTEGER_WIDTH_REGEX","parseSignificantPrecision","roundingPriority","_","g1","g2","minimumSignificantDigits","maximumSignificantDigits","parseSign","signDisplay","currencySign","parseConciseScientificAndEngineeringStem","stem","notation","minimumIntegerDigits","parseNotationOptions","opt","signOpts","parseNumberSkeleton","tokens","tokens_1","style","scale","currency","useGrouping","maximumFractionDigits","unit","compactDisplay","reduce","all","currencyDisplay","unitDisplay","parseFloat","g3","g4","g5","minimumFractionDigits","trailingZeroDisplay","conciseScientificAndEngineeringOpts","SPACE_SEPARATOR_START_REGEX","RegExp","SPACE_SEPARATOR_END_REGEX","createLocation","start","hasNativeStartsWith","startsWith","hasNativeFromCodePoint","fromCodePoint","hasNativeFromEntries","fromEntries","hasNativeCodePointAt","codePointAt","hasTrimStart","trimStart","hasTrimEnd","trimEnd","isSafeInteger","Number","isFinite","floor","REGEX_SUPPORTS_U_AND_Y","RE","matchIdentifierAtIndex","codePoints","code","elements","entries","entries_1","v","first","flag","IDENTIFIER_PREFIX_RE_1","_isWhiteSpace","_isPatternSyntax","Parser","ignoreTag","requiresOtherClause","shouldParseSkeletons","parseMessage","nestingLevel","parentArgType","expectingCloseTag","isEOF","char","parseArgument","val","error","UNMATCHED_CLOSING_TAG","clonePosition","_isAlpha","parseTag","parseLiteral","bump","location","startPosition","parseTagName","bumpSpace","bumpIf","childrenResult","endTagStartPosition","INVALID_TAG","closingTagNameStartPosition","UNCLOSED_TAG","startOffset","parseQuoteResult","tryParseQuote","parseUnquotedResult","tryParseUnquoted","parseLeftAngleResult","tryParseLeftAngleBracket","codepoint","ch","openingBracePosition","EXPECT_ARGUMENT_CLOSING_BRACE","EMPTY_ARGUMENT","parseIdentifierIfPossible","MALFORMED_ARGUMENT","parseArgumentOptions","startingPosition","endOffset","bumpTo","typeStartPosition","argType","typeEndPosition","EXPECT_ARGUMENT_TYPE","styleAndLocation","styleStartPosition","parseSimpleArgStyleIfPossible","EXPECT_ARGUMENT_STYLE","styleLocation","argCloseResult","tryParseArgumentClose","location_1","parseNumberSkeletonFromString","EXPECT_DATE_TIME_SKELETON","parsedOptions","typeEndPosition_1","EXPECT_SELECT_ARGUMENT_OPTIONS","identifierAndLocation","pluralOffset","EXPECT_PLURAL_ARGUMENT_OFFSET_VALUE","tryParseDecimalInteger","INVALID_PLURAL_ARGUMENT_OFFSET_VALUE","optionsResult","tryParsePluralOrSelectOptions","location_2","pluralType","INVALID_ARGUMENT_TYPE","nestedBraces","apostrophePosition","bumpUntil","UNCLOSED_QUOTE_IN_ARGUMENT_STYLE","stringTokens_1","filter","stemAndOptions","options_1","INVALID_NUMBER_SKELETON","expectCloseTag","parsedFirstIdentifier","hasOtherClause","parsedSelectors","Set","selectorLocation","EXPECT_PLURAL_ARGUMENT_SELECTOR","INVALID_PLURAL_ARGUMENT_SELECTOR","has","DUPLICATE_SELECT_ARGUMENT_SELECTOR","DUPLICATE_PLURAL_ARGUMENT_SELECTOR","EXPECT_SELECT_ARGUMENT_SELECTOR_FRAGMENT","EXPECT_PLURAL_ARGUMENT_SELECTOR_FRAGMENT","fragmentResult","add","EXPECT_SELECT_ARGUMENT_SELECTOR","MISSING_OTHER_CLAUSE","expectNumberError","invalidNumberError","sign","hasDigits","decimal","kind","currentOffset","targetOffset","min","nextCode","pruneLocation","els","opts","SyntaxError","originalMessage","captureLocation","IntlErrorCode","IntlError","_super","exception","stack","captureStackTrace","UnsupportedFormatterError","UNSUPPORTED_FORMATTER","InvalidConfigError","INVALID_CONFIG","MissingDataError","MISSING_DATA","IntlFormatError","locale","FORMAT_ERROR","MessageFormatError","descriptor","id","defaultMessage","description","MissingTranslationError","MISSING_TRANSLATION","filterProps","whitelist","defaults","filtered","DEFAULT_INTL_CONFIG","formats","messages","timeZone","defaultLocale","defaultFormats","fallbackOnEmptyString","onError","createIntlCache","relativeTime","pluralRules","list","displayNames","createFastMemoizeCache","store","createFormatters","RelativeTimeFormat","Intl","ListFormat","DisplayNames","getDateTimeFormat","DateTimeFormat","getNumberFormat","NumberFormat","getPluralRules","PluralRules","getMessageFormat","locales","overrideFormats","formatters","getRelativeTimeFormat","getListFormat","getDisplayNames","getNamedFormat","format","formatType","_extendStatics","d","b","__extends","__","__spreadArray","to","pack","ar","l","getLocation","_source$location","href","origin","protocol","host","hostname","port","pathname","canUseDOM","URL","encodeURI","decodeURI","state","history","createHistory","listeners","transitioning","resolveTransition","_onTransitionComplete","listen","listener","popstateListener","action","addEventListener","removeEventListener","navigate","_ref","_ref$replace","go","Date","now","replaceState","pushState","transition","Promise","res","createMemorySource","initialPath","searchIndex","initialLocation","substr","states","uri","_uri$split","_uri$split$","_uri$split2","_uri$split2$","newIndex","window","globalHistory","shallowCompare","validateRedirect","insertParams","resolve","pick","_invariant","_invariant2","default","routes","default_","uriPathname","uriSegments","segmentize","isRootUri","ranked","rankRoutes","missed","route","params","routeSegments","path","max","routeSegment","uriSegment","isSplat","decodeURIComponent","dynamicMatch","paramRe","reservedNames","isDynamic","segment","rankRoute","score","isRootSegment","SEGMENT_POINTS","sort","a","addQuery","query","q","base","_to$split","toPathname","toQuery","basePathname","toSegments","baseSegments","allSegments","segments","pop","_path$split","pathBase","_path$split$","constructedPath","_params$location","_params$location$sear","searchSplit","obj1","obj2","obj1Keys","every","toVarName","toVarValue","Boolean","reservedKeys","toCustomProperties","__objectToVars","vars","__createColorStyles","config","useCustomProperties","initialColorModeName","printColorModeName","useRootStyles","colors","rawColors","color","bg","modes","__createColorProperties","mode","colorToVarValue","STORAGE_KEY","DARK_QUERY","storage","localStorage","getItem","console","warn","setItem","getPreferredColorScheme","matchMedia","matches","useClientsideEffect","TopLevelColorModeProvider","outerCtx","outerTheme","_ref2","useColorSchemeMediaQuery","useLocalStorage","_useState","useState","colorMode","setColorMode","stored","documentElement","classList","remove","useEffect","setPreferredColorScheme","useCallback","preferredColorScheme","darkMQL","addListener","_darkMQL","removeListener","newTheme","useThemeWithAppliedColorMode","newCtx","GlobalColorStyles","useColorMode","_useThemeUI","omitModes","copyRawColors","outerThemeRawColors","_Object$entries","_Object$entries$_i","newValue","_ref3","useMemo","currentColorMode","_ref4","_ref4$initialColorMod","alreadyHasRawColors","_extends2","_modes","_ref5","html","NestedColorModeProvider","_ref6","_newTheme$config2","_useState2","_newTheme$config","needsRerender","setNeedsRerender","themeColors","colorVars","suppressHydrationWarning","ColorModeProvider","_ref7","getColor","__default","alpha","merge","breakpoints","createMediaQuery","getValue","def","undef","createParser","shouldSort","isCacheDisabled","disableStyledSystemCache","sx","media","parseResponsiveStyle","parseResponsiveObject","localeCompare","numeric","sensitivity","propNames","_createParser","mediaQueries","_props","_assign2","breakpoint","_assign3","properties","_ref$transform","transform","defaultScale","system","conf","compose","parsers","parser","layout","width","isNaN","isNumber","height","minWidth","minHeight","maxWidth","maxHeight","overflow","overflowX","overflowY","display","verticalAlign","backgroundColor","typography","fontFamily","fontSize","letterSpacing","textAlign","fontStyle","flexbox","alignItems","alignContent","justifyItems","justifyContent","flexWrap","flexDirection","flexBasis","justifySelf","alignSelf","space","grid","gridGap","gridColumnGap","gridRowGap","gridAutoFlow","gridAutoColumns","gridAutoRows","gridTemplateColumns","gridTemplateRows","gridTemplateAreas","gridArea","border","borderWidth","borderStyle","borderColor","borderRadius","borderTop","borderTopLeftRadius","borderTopRightRadius","borderRight","borderBottom","borderBottomLeftRadius","borderBottomRightRadius","borderLeft","borderX","borderY","borderBottomWidth","borderBottomColor","borderBottomStyle","borderLeftWidth","borderLeftColor","borderLeftStyle","borderRightWidth","borderRightColor","borderRightStyle","background","backgroundImage","backgroundSize","backgroundPosition","backgroundRepeat","bgImage","bgSize","bgPosition","bgRepeat","top","right","bottom","left","getMargin","isNegative","absolute","configs","margin","marginTop","marginRight","marginBottom","marginLeft","marginX","marginY","m","mt","mr","mb","ml","mx","my","padding","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingX","paddingY","pt","pr","pb","pl","px","py","shadow","boxShadow","textShadow","defaultBreakpoints","defaultTheme","fontSizes","aliases","multiples","scales","gap","columnGap","rowGap","borderTopWidth","borderTopColor","borderTopStyle","outlineColor","fill","stroke","positiveOrNegative","transforms","acc","curr","responsive","scaleName","dirs","variant","_config","_ref$prop","_ref$variants","variants","buttonStyle","textStyle","colorStyle","createShouldForwardProp","regex","boxSystemProps","__isBoxStyledSystemProp","includes","Box","boxSizing","__css","_ref$__themeKey","__themeKey","Flex","_objectWithoutPropertiesLoose","_excluded","widthToColumns","repeat","countToColumns","Grid","_ref$gap","_ref$repeat","Button","appearance","hidden","textDecoration","Link","Text","Heading","Image","_excluded$1","autofillStyles","defaultInputStyles","Input","_ref$autofillBackgrou","autofillBackgroundColor","rest","_excluded$2","SVG","_ref$size","xmlns","viewBox","getProps","MRE","omitMargin","_excluded$3","DownArrow","Select","arrow","pointerEvents","Divider","Container","getCSS","__themeUiDefaultContextValue","__EMOTION_VERSION__","__ThemeUIContext","useThemeUI","canUseSymbol","for","REACT_ELEMENT","FORWARD_REF","deepmergeOptions","isMergeableObject","$$typeof","arrayMerge","_leftArray","rightArray","_len2","_key2","__ThemeUIInternalBaseThemeProvider","ThemeProvider","outer","THEME_UI_DEFAULT_KEY","hasDefault","fallback","pathArray","getObjectWithVariants","scrollMarginX","scrollMarginY","scrollPaddingX","scrollPaddingY","caretColor","columnRuleColor","textDecorationColor","marginBlock","marginBlockEnd","marginBlockStart","marginInline","marginInlineEnd","marginInlineStart","paddingBlock","paddingBlockEnd","paddingBlockStart","paddingInline","paddingInlineEnd","paddingInlineStart","scrollMargin","scrollMarginTop","scrollMarginRight","scrollMarginBottom","scrollMarginLeft","scrollPadding","scrollPaddingTop","scrollPaddingRight","scrollPaddingBottom","scrollPaddingLeft","inset","insetBlock","insetBlockEnd","insetBlockStart","insetInline","insetInlineEnd","insetInlineStart","borderBlock","borderBlockColor","borderBlockEnd","borderBlockEndColor","borderBlockEndStyle","borderBlockEndWidth","borderBlockStart","borderBlockStartColor","borderBlockStartStyle","borderBlockStartWidth","borderBlockStyle","borderBlockWidth","borderEndEndRadius","borderEndStartRadius","borderInline","borderInlineColor","borderInlineEnd","borderInlineEndColor","borderInlineEndStyle","borderInlineEndWidth","borderInlineStart","borderInlineStartColor","borderInlineStartStyle","borderInlineStartWidth","borderInlineStyle","borderInlineWidth","borderStartEndRadius","borderStartStartRadius","columnRuleWidth","blockSize","inlineSize","maxBlockSize","maxInlineSize","minBlockSize","minInlineSize","columnWidth","valueWithoutMinus","substring","r","enumerable","toStringTag","FlagContext","FlagProvider","InMemoryStorageProvider","LocalStorageProvider","UnleashClient","useFlag","useFlags","useFlagsStatus","useUnleashClient","useUnleashContext","useVariant","f","u","bootstrap","disableRefresh","disableMetrics","url","appName","clientKey","unleashClient","startClient","bootstrapOverride","g","setTimeout","on","stop","off","clearTimeout","sent","trys","ops","throw","updateContext","then","isEnabled","C","getVariant","S","client","flagsReady","flagsError","setFlagsReady","setFlagsError","getAllToggles","enabled","utils","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","reject","requestData","data","requestHeaders","headers","responseType","isFormData","request","XMLHttpRequest","auth","username","password","unescape","encodeURIComponent","Authorization","btoa","fullPath","baseURL","onloadend","responseHeaders","getAllResponseHeaders","response","responseText","status","statusText","open","method","toUpperCase","paramsSerializer","timeout","onreadystatechange","readyState","responseURL","onabort","onerror","ontimeout","timeoutErrorMessage","transitional","clarifyTimeoutError","isStandardBrowserEnv","xsrfValue","withCredentials","xsrfCookieName","read","xsrfHeaderName","setRequestHeader","isUndefined","onDownloadProgress","onUploadProgress","upload","cancelToken","promise","cancel","abort","send","Axios","mergeConfig","createInstance","defaultConfig","instance","extend","axios","instanceConfig","Cancel","CancelToken","isCancel","promises","spread","isAxiosError","__CANCEL__","executor","resolvePromise","reason","throwIfRequested","InterceptorManager","dispatchRequest","validator","validators","interceptors","assertOptions","silentJSONParsing","boolean","forcedJSONParsing","requestInterceptorChain","synchronousRequestInterceptors","interceptor","runWhen","synchronous","unshift","fulfilled","rejected","responseInterceptorChain","chain","shift","newConfig","onFulfilled","onRejected","getUri","handlers","use","eject","isAbsoluteURL","combineURLs","requestedURL","enhanceError","transformData","throwIfCancellationRequested","transformRequest","common","adapter","transformResponse","toJSON","fileName","lineNumber","columnNumber","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","isPlainObject","mergeDeepProperties","axiosKeys","otherKeys","validateStatus","fns","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","process","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","isObject","rawValue","encoder","isString","stringifySafely","strictJSONParsing","maxContentLength","maxBodyLength","thisArg","encode","serializedParams","parts","isDate","toISOString","hashmarkIndex","relativeURL","write","expires","domain","secure","cookie","toGMTString","payload","originURL","msie","navigator","userAgent","urlParsingNode","resolveURL","charAt","requestURL","normalizedName","ignoreDuplicateOf","pkg","thing","deprecatedWarnings","currentVerArr","version","isOlderVersion","thanVersion","pkgVersionArr","destVer","isDeprecated","formatMessage","desc","schema","allowUnknown","getPrototypeOf","isFunction","FormData","ArrayBuffer","isView","pipe","URLSearchParams","product","assignValue","stripBOM","content","_createClass","defineProperties","configurable","writable","Constructor","protoProps","staticProps","_templateObject","freeze","_classCallCheck","TemplateTag","transformers","expressions","interimTag","transformEndResult","transformString","processSubstitutions","transformer","previousTag","template","_len3","substitutions","_key3","resultSoFar","remainingPart","substitution","transformSubstitution","onString","onSubstitution","endResult","onEndResult","separator","conjunction","serial","arrayLength","indent","separatorIndex","lastIndexOf","_toConsumableArray","regexp","side","splitBy","isValidValue","replaceWhat","replaceWith","singleMatcher","multiMatcher","decodeComponents","components","decode","input","encodedURI","replaceMap","customDecodeURIComponent","isNonNullObject","stringValue","REACT_ELEMENT_TYPE","isReactElement","isSpecial","cloneUnlessOtherwiseSpecified","clone","deepmerge","defaultArrayMerge","getKeys","getOwnPropertySymbols","symbol","propertyIsEnumerable","getEnumerableOwnPropertySymbols","propertyIsOnObject","object","mergeObject","destination","propertyIsUnsafe","customMerge","getMergeFunction","sourceIsArray","deepmerge_1","predicate","ret","isArr","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","KNOWN_STATICS","caller","callee","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","render","Memo","getOwnPropertyNames","getOwnPropertyDescriptor","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","targetStatics","sourceStatics","mergeConfigs","c1","c2","IntlMessageFormat","formatterCache","values","formatToParts","part","ast","resolvedOptions","supportedLocalesOf","getAst","__parse","memoizedDefaultLocale","integer","percent","short","medium","long","full","ErrorCode","FormatError","msg","InvalidValueError","variableId","INVALID_VALUE","InvalidValueTypeError","MissingValueError","MISSING_VALUE","PART_TYPE","isFormatXMLElementFn","currentPluralValue","els_1","varName","value_1","formatFn","chunks","other","lastPart","mergeLiteral","factory","OldCookies","Cookies","api","noConflict","attributes","init","converter","toUTCString","escape","stringifiedAttributes","attributeName","json","jar","getJSON","withConverter","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","valueOf","_construct","Parent","Class","Function","_wrapNativeSuper","_cache","Map","Wrapper","PolishedError","_Error","endsWith","suffix","cssRegex$1","stripUnit","pxtoFactory","pxval","newPxval","newBase","rem","colorToInt","round","convertToInt","red","green","blue","hslToRgb","hue","saturation","lightness","convert","huePrime","chroma","secondComponent","lightnessModification","namedColorMap","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blueviolet","brown","burlywood","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","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","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","hexRegex","hexRgbaRegex","reducedHexRegex","reducedRgbaHexRegex","rgbRegex","rgbaRegex","hslRegex","hslaRegex","parseToRgb","normalizedColor","normalizedColorName","nameToHex","parseInt","toFixed","_alpha","rgbMatched","rgbaMatched","hslMatched","rgbColorString","hslRgbMatched","hslaMatched","_rgbColorString","_hslRgbMatched","reduceHexValue","numberToHex","hex","rgb","rgba","firstValue","secondValue","thirdValue","fourthValue","rgbValue","_slicedToArray","_createForOfIteratorHelper","allowArrayLike","it","_arrayLikeToArray","_unsupportedIterableToArray","F","normalCompletion","didErr","step","_e2","strictUriEncode","decodeComponent","splitOnFirst","filterObject","validateArrayFormatSeparator","strict","keysSorter","removeHash","hashStart","extract","queryStart","parseValue","parseNumbers","parseBooleans","arrayFormat","arrayFormatSeparator","formatter","accumulator","isEncodedArray","item","parserForArrayFormat","_step","_iterator","param","_splitOnFirst","_splitOnFirst2","_value","_Object$keys","_i2","_Object$keys2","shouldFilter","skipNull","skipEmptyString","encoderForArrayFormat","objectCopy","_i3","_Object$keys3","parseUrl","_splitOnFirst3","_splitOnFirst4","url_","parseFragmentIdentifier","fragmentIdentifier","stringifyUrl","queryFromUrl","parsedQueryFromUrl","queryString","getHash","_exports$parseUrl","exclude","exclusionFilter","hasElementType","Element","hasMap","hasSet","hasArrayBuffer","equal","flags","clock","Component","_class","_temp","ATTRIBUTE_NAMES","TAG_NAMES","BASE","BODY","HEAD","HTML","LINK","META","NOSCRIPT","SCRIPT","STYLE","TITLE","TAG_PROPERTIES","REACT_TAG_MAP","accesskey","charset","class","contenteditable","contextmenu","itemprop","tabindex","HELMET_PROPS","HTML_TAG_MAP","SELF_CLOSING_TAGS","HELMET_ATTRIBUTE","classCallCheck","createClass","objectWithoutProperties","possibleConstructorReturn","encodeSpecialCharacters","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","tagAttrs","getBaseTagFromPropsList","primaryAttributes","reverse","innermostBaseTag","lowerCaseAttributeKey","getTagsFromPropsList","approvedSeenTags","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","tagUnion","rafPolyfill","currentTime","cafPolyfill","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","_helmetCallback","commitTagChanges","newState","cb","bodyAttributes","htmlAttributes","linkTags","metaTags","noscriptTags","onChangeClientState","scriptTags","styleTags","title","titleAttributes","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","elementTag","getElementsByTagName","helmetAttributeString","helmetAttributes","attributesToRemove","attributeKeys","attribute","indexToSave","splice","removeAttribute","headElement","tagNodes","indexToDelete","newElement","innerHTML","styleSheet","cssText","some","existingTag","isEqualNode","generateElementAttributesAsString","attr","convertElementAttributestoReactProps","initProps","getMethodsForTag","toComponent","_initProps","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","dangerouslySetInnerHTML","__html","generateTagsAsReactComponent","attributeHtml","tagContent","isSelfClosing","generateTagsAsString","mapStateOnServer","_ref$title","link","meta","noscript","script","HelmetSideEffects","defer","HelmetExport","_React$Component","HelmetWrapper","inherits","shouldComponentUpdate","nextProps","mapNestedChildrenToProps","child","nestedChildren","flattenArrayTypeChildren","_babelHelpers$extends","arrayTypeChildren","newChildProps","mapObjectTypeChildren","_babelHelpers$extends2","_babelHelpers$extends3","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","_babelHelpers$extends4","warnOnInvalidChildren","mapChildrenToProps","_this2","_child$props","initAttributes","convertReactPropstoHtmlAttributes","defaultTitle","titleTemplate","rewind","mappedState","renderStatic","IntlContext","IntlConsumer","Consumer","Context","injectIntl","WrappedComponent","_b","intlPropName","_c","enforceContext","WithIntl","intl","intlProp","forwardedRef","invariantIntlContext","textComponent","assignUniqueKeysToParts","formatXMLElementFn","shallowEqual","objA","objB","aKeys","bKeys","__rest","A","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","ex","React","React__default","_defineProperty","reducePropsToState","handleStateChangeOnClient","mountedInstances","emitChange","SideEffect","_PureComponent","recordedState","UNSAFE_componentWillMount","componentDidUpdate","componentWillUnmount","PureComponent","getDisplayName","_default","_interopRequireDefault","_objectWithoutPropertiesLoose2","_react","Components","factories","createFactory","Nest","reduceRight","global","isCallable","tryToString","toIndexedObject","toAbsoluteIndex","lengthOfArrayLike","createMethod","IS_INCLUDES","$this","fromIndex","O","uncurryThis","stringSlice","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","wellKnownSymbol","CORRECT_ARGUMENTS","tryGet","hasOwn","ownKeys","getOwnPropertyDescriptorModule","definePropertyModule","DESCRIPTORS","createPropertyDescriptor","bitmap","toPropertyKey","propertyKey","fails","EXISTS","getBuiltIn","Deno","versions","v8","createNonEnumerableProperty","redefine","setGlobal","copyConstructorProperties","isForced","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","noTargetGet","forced","aCallable","that","FunctionPrototype","getDescriptor","PROPER","CONFIGURABLE","callBind","aFunction","namespace","classof","getMethod","Iterators","ITERATOR","anObject","getIteratorMethod","usingIterator","iteratorMethod","V","P","check","globalThis","toObject","functionToString","inspectSource","NATIVE_WEAK_MAP","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","wmget","wmhas","wmset","metadata","facade","STATE","enforce","getterFor","ArrayPrototype","feature","detection","normalize","POLYFILL","NATIVE","isPrototypeOf","USE_SYMBOL_AS_UID","$Symbol","isArrayIteratorMethod","getIterator","iteratorClose","Result","stopped","ResultPrototype","iterable","unboundFunction","iterFn","AS_ENTRIES","IS_ITERATOR","INTERRUPTED","callFn","innerResult","innerError","toLength","V8_VERSION","IE8_DOM_DEFINE","$defineProperty","Attributes","propertyIsEnumerableModule","$getOwnPropertyDescriptor","internalObjectKeys","names","$propertyIsEnumerable","NASHORN_BUG","pref","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","InternalStateModule","CONFIGURABLE_FUNCTION_NAME","getInternalState","enforceInternalState","TEMPLATE","unsafe","simple","uid","SHARED","IS_PURE","copyright","PROPER_FUNCTION_NAME","whitespaces","METHOD_NAME","requireObjectCoercible","ltrim","rtrim","toIntegerOrInfinity","IndexedObject","ceil","isSymbol","ordinaryToPrimitive","TO_PRIMITIVE","exoticToPrim","toPrimitive","postfix","random","NATIVE_SYMBOL","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","$","iterate","createProperty","$trimEnd","FORCED","forcedStringTrimMethod","proto","trimRight","$trimStart","trimLeft","withPrefix","getGlobalPathPrefix","_assertThisInitialized2","_inheritsLoose2","_propTypes","_reachRouter","_utils","_parsePath","parsePath","isAbsolutePath","_prefix","getGlobalBasePrefix","isLocalLink","rewriteLinkPath","relativeTo","absolutify","NavLinkPropTypes","activeClassName","activeStyle","partiallyActive","bool","GatsbyLinkLocationWrapper","Location","GatsbyLink","_location","defaultGetProps","isPartiallyCurrent","isCurrent","IOSupported","IntersectionObserver","abortPrefetch","handleRef","_prefetch","currentPath","rewrittenPath","newPathName","___loader","enqueue","io","_this$io","unobserve","disconnect","innerRef","inViewPort","entry","isIntersecting","intersectionRatio","observe","_this3","_this$props","_this$props$getProps","_onClick","onClick","_onMouseEnter","onMouseEnter","prefixedTo","hovering","button","defaultPrevented","metaKey","altKey","ctrlKey","shiftKey","preventDefault","shouldReplace","___navigate","isRequired","hashIndex","_scrollHandler","ScrollHandler","_useScrollRestoration","useScrollRestoration","ScrollContext","nodeInterop","_getRequireWildcardCache","newObj","hasPropertyDescriptor","_interopRequireWildcard","_sessionStorage","cacheBabelInterop","cacheNodeInterop","SessionStorage","_stateStorage","_isTicking","_latestKnownScrollY","scrollListener","scrollY","_saveScroll","windowScroll","prevProps","shouldUpdateScroll","scrollTo","scrollToHash","getElementById","scrollIntoView","prevRouterProps","routerProps","save","componentDidMount","scrollPosition","_this$props$location","_this$props$location2","GATSBY_ROUTER_SCROLL_STATE","stateKey","getStateKey","sessionStorage","storedValue","stateKeyBase","useLocation","onScroll","scrollTop","apiBaseURL","APPLICATION_NAME","pragma","submitEmail","email","profileType","login","signup","encodedEmail","sendEmailVerificationEmail","errorCode","viewerCountry","countriesList","getProducts","countryCode","sameTab","rel","useIntl","linkLocale","ExternalLink","LocalizedLink","localStorageCurrencyKey","getLocalStorageCurrency","CurrencyContext","currenciesList","setCurrency","CurrencyProvider","allowedCurrencies","ViewerContext","setCurrencyCode","selectedCurrencyCode","alpha3Code","sessionStorageCurrency","find","formatPercentage","formatMoney","formatAmount","formatMoneyShort","REFERRAL_BONUS_PER_CURRENCY","MXN","EUR","USD","IntlContextProvider","products","useProducts","productList","globalVariables","setGlobalVariables","formatNumber","amount","productName","minimumInvestment","interestRate","years","maximum_interest_rate","minimum_interest_rate","productsByMinInvestment","minimum_deposit_amount","minimum_investment_amount","maximum_term","referral_bonus","defaultValue","LocationContext","LocationProvider","ProductName","SavingsProductsContext","projectId","APPLICATION_ID","IbanExtraProductInformation","iban_account","isAssetBacked","useShortName","hasBuybackGuarantee","hasSafeguardTrust","calculatorColor","hideInHomePage","iban_one","iban_one3","iban_market","iban_market4","iban_dynamic","iban_30","shortTerm","iban_90","iban_180","TheSafeCompanyExtraProductInformation","SavingsProductsProvider","rawProductList","setRawProductsLis","setProducts","ExtraProductInformation","isMounted","fetchProducts","newProducts","STAR","STARV4","STARV5","ANTARES","AURA","minimumDepositAmount","termInDays","compoundInterest","interestStrategy","earlyTermination","penalty","defaultData","cleanUnderscoreLocale","saveLocalStorage","ViewerProvider","viewerData","setData","setCountriesList","fetchCountryList","isBusinessProfileAvailable","isPersonalProfileAvailable","localStorageViewerData","copied","loadedFromSession","loadLocalStorage","fecthViewerCountry","country","nLocal","primary","secondary","tertiary","quaternary","quinary","senary","septenary","success","primaryBackground","secondaryBackground","tertiaryBackground","quaternaryBackground","quinaryBackground","navigationPrimaryText","navigationSecondaryText","navigationPrimaryBackground","navigationSecondaryBackground","primaryBlue","primaryDarkBlue","primaryBlack","primaryGray","secondaryPaleBlue","secondaryBlue","secondaryDarkBlue","secondaryLightBlue","fonts","body","heading","fontWeights","normal","semibold","bold","lineHeights","subtitle","submenu","subtitleprimary","subtitlesecondary","subtitletertiary","textprimary","comfortable","sizes","radii","none","inherit","text","heroTitle","sectionTitle","contentTitle","contentTitleLight","underHero","underContent","underContentLight","smallReferences","buttons","whiteSpace","dark","forms","fullWidth","plugin","require","plugins","getResourceURLsForPathname","loadPage","loadPageSync","defaultReturn","argTransform","results","handler","emit","evt","mitt","pathAndSearch","pathCache","matchPaths","trimPathname","rawPathname","stripPrefix","__BASE_PATH__","setMatchPaths","findMatchPath","trimmedPathname","cleanPath","pickPaths","matchPath","originalPath","normalizePagePath","grabMatchParams","findPath","redirect","maybeGetBrowserRedirect","toPath","foundPath","prefetchPathname","loader","StaticQueryContext","StaticQueryDataRenderer","staticQueryData","finalData","StaticQuery","useStaticQuery","graphql","supportedPrefetchStrategy","fakeLink","relList","supports","support","onload","getElementsByName","req","preFetched","catch","PageResourceStatus","Success","preferDefault","createPageDataUrl","rawPath","maybeSearch","stripSurroundingSlashes","doFetch","toPageResources","pageData","page","componentChunkName","webpackCompilationHash","staticQueryHashes","getServerDataError","BaseLoader","loadComponent","inFlightNetworkRequests","pageDb","inFlightDb","staticQueryDb","pageDataDb","isPrefetchQueueRunning","prefetchQueued","prefetchTriggered","prefetchCompleted","memoizedGet","inFlightPromise","delete","setApiRunner","apiRunner","prefetchDisabled","fetchPageDataJson","loadObj","pagePath","retries","jsonPayload","notFound","internalServerError","loadPageDataJson","loadAppData","allData","finalResult","componentChunkPromise","pageResources","createdAt","staticQueryBatchPromise","staticQueryHash","staticQueryResults","staticQueryResultsMap","emitter","withErrorDetails","shouldPrefetch","connection","effectiveType","saveData","doesConnectionSupportPrefetch","prefetch","abortC","AbortController","signal","findIndex","_processNextPrefetchBatch","requestIdleCallback","toPrefetch","prefetches","dPromise","doPrefetch","pageDataUrl","prefetchHelper","crossOrigin","createComponentUrls","isPageNotFound","appData","___chunkMapping","chunk","__PATH_PREFIX__","ProdLoader","asyncRequires","chunkName","componentUrls","setLoader","_loader","publicLoader","getStaticQueryResults","PageRenderer","pageContext","__params","pageElement","RouteAnnouncerProps","clip","maybeRedirect","___replace","nextRoute","event","onPreRouteUpdate","prevLocation","onRouteUpdate","___swUpdated","timeoutId","___webpackCompilationHash","serviceWorker","controller","postMessage","gatsbyApi","reachNavigate","getSavedScrollPosition","RouteAnnouncer","announcementRef","pageName","pageHeadings","textContent","newAnnouncement","innerText","compareLocationProps","nextLocation","RouteUpdates","shallowDiffers","EnsureResources","prevState","loadResources","setState","nextState","___emitter","___push","apiRunnerAsync","RouteHandler","BaseContext","baseuri","basepath","DataContext","GatsbyRoot","LocationHandler","Router","browserLoc","SiteRoot","App","onClientEntryRanRef","performance","mark","renderer","ReactDOM","runRender","rootElement","doc","doScroll","InternalPageRenderer","redirectMap","redirectIgnoreCaseMap","redirects","ignoreCase","fromPath","register","reg","installingWorker","installing","log","___failedResources","reload","initFreshchat","fcWidget","site","siteMetadata","chat","siteId","faqTags","filterType","headerProperty","foregroundColor","addFreshchatScript","async","src","destroy","currentBrand","applicationID","getBrand","TheSafeCompanyHorizontal","alt","TheSafeCompanyHorizontalWhite","getTheSafeCompanyLogo","_inherits","_possibleConstructorReturn","assertThisInitialized","_defineProperties","_createSuper","Derived","hasNativeReflectConstruct","Super","NewTarget","is","fun","num","und","nul","equ","useForceUpdate","withDefault","toArray","callProp","interpolateTo","forward","onStart","onRest","onFrame","reset","force","immediate","delay","attach","destroyed","lazy","getForwardProps","applyAnimatedValues","colorNames","Animated","detach","AnimatedArray","_Animated","addChild","AnimatedObject","_Animated2","_super2","animated","injectApplyAnimatedValues","injectColorNames","requestFrame","injectStringInterpolator","injectDefaultElement","createAnimatedStyle","manualFrameloop","animatedApi","injectCreateAnimatedStyle","AnimatedProps","_AnimatedObject","_super3","_this4","update","active","controllers","isActive","configIdx","endOfAnimation","lastTime","valIdx","animatedValues","animation","fromValues","toValues","lastPosition","isAnimated","velocity","initialVelocity","setValue","duration","easing","startTime","decay","exp","lastVelocity","numSteps","tension","friction","mass","isOvershooting","clamp","isVelocity","precision","isDisplacement","createInterpolator","range","extrapolate","outputRange","inputRange","extrapolateLeft","extrapolateRight","findRange","inputMin","inputMax","outputMin","outputMax","Infinity","interpolate","AnimatedInterpolation","_AnimatedArray","_super4","parents","_this5","calc","getPayload","addAnimatedStyles","getChildren","AnimatedValue","_Animated3","_super5","_this6","animatedStyles","animatedStyle","clear","AnimatedValueArray","_AnimatedArray2","_super6","_this7","_this8","G","Controller","_this9","idle","hasChanged","guid","local","merged","animations","interpolations","queue","localQueue","getValues","_ref$delay","diff","onEnd","_this10","_ref3$from","_ref3$to","finished","runAsync","_this11","_loop","fresh","last","_this12","_this$props$from","_this$props$to","_this$props$config","isInterpolation","fromValue","toValue","toConfig","interpolation$$1","currentValue","currentValueDiffersFromGoal","hasNewGoal","hasNewConfig","updateConfig","useSprings","mounted","ctrl","isFn","_useMemo","useImperativeHandle","updateCtrl","updateProps","propValues","pause","AnimatedStyle","_AnimatedObject2","_super7","_this13","transparent","burntsienna","NUMBER","PERCENTAGE","hsl","hsla","hex3","hex4","hex6","hex8","hue2rgb","parse255","int","parse360","parse1","parsePercentage","colorToRgba","int32Color","stringShapeRegex","colorRegex","colorNamesRegex","isUnitlessNumber","lineClamp","prefixes","dangerousStyleValue","prefixKey","attributeCache","rangeValue","outputRanges","p3","p4","nodeType","scrollLeft","nodeName","styleValue","setProperty","dashCase","lowercase","extendedAnimated","forceUpdate","propsAnimated","attachProps","oldPropsAnimated","didUpdate","getAnimatedValue","_getValue","animatedProps","refFn","childRef","MobileMenuWrapper","styled","usePrimaryBackground","MobileMenuIcon","MobileNav","_useSprings","animationProps","setSpring","setOpen","show","NavigationContext","NavigationProvider","currentPageName","navigation","selectMenu","lookup","menu","useNavigation","shouldShow","onlyCountries","countryRestriction","localeRestriction","SubNavigation","dropdownVisible","toggleDropdown","listNode","handleClickOutside","contains","listStyle","outline","items","menuItem","useBreakpointIndex","_options$defaultIndex","defaultIndex","onResize","bp","useResponsiveValue","onChange","fixed","containerNode","containerWidthHeader","containerWidthFooter","optionsTopDistance","optionsFontSize","containerJustifyContentHeader","onChangeDropDown","option","getFlagEmoji","lang_id","lang_iso","lang_name","setTimeZoneInOptions","deepMergeOptions","opts1","opts2","deepMergeFormatsAndSetTimeZone","f1","mfFormats","messageDescriptor","defaultRichTextElements","msgId","NUMBER_FORMAT_OPTIONS","getFormatter","formatNumberToParts","RELATIVE_TIME_FORMAT_OPTIONS","formatRelativeTime","DATE_TIME_FORMAT_OPTIONS","filteredOptions","timeStyle","dateStyle","formatDate","formatTime","formatDateTimeRange","formatRange","formatDateToParts","formatTimeToParts","PLURAL_FORMAT_OPTIONS","formatPlural","LIST_FORMAT_OPTIONS","formatList","formatListToParts","richValues_1","serializedValues","generateToken","DISPLAY_NAMES_OPTONS","formatDisplayName","of","verifyConfigMessages","processIntlConfig","wrapRichTextChunksInFragment","assignUniqueKeysToFormatXMLElementFnArgument","rawValues","createIntl","rawDefaultRichTextElements","coreIntl","resolvedConfig","IntlProvider","prevConfig","I18nContext","setLocale","I18nContextProvider","incomingLocale","setMessages","EN","ES","IT","PT","newLocale","useI18n","allLokaliseLanguageList","newLanguage","newPath","Header","Menu","after","union","external","Footer","focusable","preserveAspectRatio","ConditionalWrapper","wrapper","SAME_SITE_OPTIONS","POSITION_OPTIONS","VISIBILITY_OPTIONS","defaultCookieConsentName","defaultCookieConsentProps","disableStyles","hideOnAccept","hideOnDecline","visible","onAccept","_acceptedByScrolling","onDecline","cookieName","cookieValue","declineCookieValue","setDeclineCookie","buttonText","declineButtonText","debug","containerClasses","contentClasses","buttonClasses","buttonWrapperClasses","declineButtonClasses","buttonId","declineButtonId","extraCookieOptions","disableButtonStyles","enableDeclineButton","flipButtons","sameSite","LAX","ButtonComponent","overlay","overlayClasses","onOverlayClick","acceptOnOverlayClick","ariaAcceptLabel","ariaDeclineLabel","acceptOnScroll","acceptOnScrollPercentage","customContentAttributes","customContainerAttributes","customButtonProps","customDeclineButtonProps","customButtonWrapperAttributes","declineButtonStyle","contentStyle","overlayStyle","defaultState","getCookieConsentValue","getLegacyCookieName","CookieConsent","_Component","handleScroll","rootNode","clientHeight","accept","removeScrollListener","getCookieValue","passive","acceptedByScrolling","setCookie","overlayClick","_this$props2","decline","_this$props3","_this$props4","cookieSecurity","cookieOptions","NONE","_this$props5","myStyle","myButtonStyle","myDeclineButtonStyle","myContentStyle","myOverlayStyle","buttonsToRender","onConsent","Layout","hasConsentValue","setConsentValue","consentValue","siteUrl","freshchatEnabled","currentLocale","Helmet","lang","finalPath","lcid","buildCanonical","hrefLang","hideHeaders","AllPageProviders","nest","LinksProvider","AllRootProviders","imageCache","hasNativeLazyLoadSupport","HTMLImageElement","GATSBY___IMAGE","storeImageloaded","hasImageLoaded","getMainProps","isLoading","isLoaded","images","loading","toggleLoaded","dataset","objectFit","objectPosition","objectFitPolyfill","import","shouldLoad","onLoad","currentTarget","img","currentSrc","getPlaceholderProps","placeholder","wrapperStyle","Sizer","role","LayoutWrapper","srcSet","decoding","Picture","sources","fallbackImage","PropTypes","Placeholder","componentName","MainImage","altValidator","image","GatsbyImageHydrator","createRef","hydrated","forceRender","NODE_ENV","lazyHydrator","unobserveRef","_lazyHydrate","hasSSRHtml","lazyHydrate","toggleIsLoaded","_setupIntersectionObserver","useCache","intersectionObserver","createIntersectionObserver","onStartLoad","wasCached","ssrElement","complete","Type","wStyle","wClass","wrapperProps","sizer","GatsbyImage","propsKey","checkDimensionProps","validLayouts","StaticImage","GatsbyImageBrowser","imageData","__imageData","__error","LaterHydrator","wrapRootElement","camelCase","pascalCase","isLastCharLower","isLastCharUpper","isLastLastCharUpper","preserveCamelCase","localizedManifests","defaultFilename","localizedManifest","app","start_url","enumerableOnly","symbols","sym","_objectSpread2","getOwnPropertyDescriptors","_objectWithoutProperties","sourceSymbolKeys","MDXContext","useMDXComponents","contextComponents","allComponents","DEFAULTS","inlineCode","MDXCreateElement","propComponents","mdxType","originalType","parentName","etc","thematicBreak","alias","propOverrides","th","align","td","themed","propsStyle","extraStyles","Themed","warnStyled","createComponents","comps","MDXProvider","RootStyles","emotionTheme","_theme$config","useBorderBox","isTopLevel","baseTheme","themeUiConfig","Root","useThemeUiConfig","preset","prismPreset","themeWithPrism","pre","fullTheme","localTheme","WrapRootElement","requiredArgs","required","toDate","argStr","getTime","NaN","toInteger","dirtyNumber","addDays","dirtyDate","dirtyAmount","setDate","getDate","help","privacy","terms","apps","iOS","android","affiliatesTerms","registrationForm","LinksContext","TARGET_CIRCLE_ID","TARGET_CIRCLE_DATE","clickId","setClickId","storedId","paramId","click_id","setTargetCircleDate","setTargetCircleId","dirtyDateToCompare","dateToCompare","isBefore","subDays","removeItem","mapObj","re","links","langWithUnderscore","affiliates","registrationWithAffiliate","affiliateToken","langQueryParam","profileTypeQueryParam","matched","useLinks","createNamedContext","Ctx","getContext","refs","unlisten","_props$history","componentDidCatch","info","isRedirect","_navigate","unmounted","ServerLocation","baseContext","locationContext","RouterImpl","_React$PureComponent","_navigate2","_props$component","domProps","createRoute","FocusWrapper","FocusHandler","FocusContext","requestFocus","FocusHandlerImpl","initialRender","focusHandlerCount","_React$Component2","_temp2","shouldFocus","focus","myURIChanged","navigatedUpToMe","activeElement","_props2","_props2$component","Comp","tabIndex","_props$getProps","anchorProps","encodedHref","shouldNavigate","_location$state","restState","RedirectRequest","redirectTo","RedirectImpl","_React$Component3","_props3","_props3$replace","noThrow","resolvedTo","_props4","Redirect","Match","_ref8","_ref9","_ref10","resolvedPath","useNavigate","useParams","useMatch","stripSlashes","elementPath","argIndex","framesToPop","runtime","Op","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","wrap","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","isGeneratorFunction","genFun","ctor","awrap","skipTempReset","rootRecord","rval","handle","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","SVGTHESAFECOMPANY","SafeBrokMKP","Neowintech","Android","Ios","ArrowIcon","GreenArrow","MenuIcon","X","SuppressedError","ctx","once","TinyEmitter","onSent","metricsInterval","fetch","headerName","customHeaders","metricsIntervalInitial","disabled","bucket","createEmptyBucket","startTimer","sendMetrics","timer","toggles","getHeaders","Accept","bucketIsEmpty","assertBucket","countVariant","yes","no","setInterval","instanceId","Uint8Array","crypto","getRandomValues","randomUUID","rng","generateEventId","createImpressionEvent","createBaseEvent","eventType","eventId","featureName","impressionData","INIT","ERROR","READY","UPDATE","IMPRESSION","SENT","RECOVERED","feature_enabled","R","storageProvider","refreshInterval","I","environment","createAbortController","N","D","U","H","M","impressionDataAll","K","usePOSTrequests","etag","readyEventEmitted","started","eventsHandler","sdkState","ready","metrics","updateToggles","timerRef","fetchToggles","sessionId","setContextField","removeContextField","resolveSessionId","clearInterval","storeToggles","abortController","searchParams","append","ok","DOMException","EVENTS","resolveFetch","_assertThisInitialized","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","_getPrototypeOf","_inheritsLoose","_taggedTemplateLiteralLoose"],"sourceRoot":""}