{"version":3,"file":"app-63027e283f06776a574c.js","mappings":"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","sources":["webpack://Safe-Spark-Website/./node_modules/@fortawesome/fontawesome-svg-core/index.es.js","webpack://Safe-Spark-Website/./node_modules/gatsby-page-utils/dist/apply-trailing-slash-option.js","webpack://Safe-Spark-Website/./node_modules/gatsby-react-router-scroll/index.js","webpack://Safe-Spark-Website/./node_modules/gatsby-react-router-scroll/scroll-handler.js","webpack://Safe-Spark-Website/./node_modules/gatsby-react-router-scroll/session-storage.js","webpack://Safe-Spark-Website/./node_modules/gatsby-react-router-scroll/use-scroll-restoration.js","webpack://Safe-Spark-Website/./node_modules/gatsby/dist/internal-plugins/partytown/gatsby-browser.js","webpack://Safe-Spark-Website/./node_modules/gatsby/dist/internal-plugins/partytown/utils/get-forwards.js","webpack://Safe-Spark-Website/./node_modules/gatsby/dist/internal-plugins/partytown/utils/inject-partytown-snippet.js","webpack://Safe-Spark-Website/./.cache/_this_is_virtual_fs_path_/$virtual/async-requires.js","webpack://Safe-Spark-Website/./.cache/api-runner-browser-plugins.js","webpack://Safe-Spark-Website/./.cache/api-runner-browser.js","webpack://Safe-Spark-Website/./.cache/create-content-digest-browser-shim.js","webpack://Safe-Spark-Website/./.cache/emitter.js","webpack://Safe-Spark-Website/./node_modules/mitt/dist/mitt.es.js","webpack://Safe-Spark-Website/./.cache/normalize-page-path.js","webpack://Safe-Spark-Website/./.cache/find-path.js","webpack://Safe-Spark-Website/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://Safe-Spark-Website/./node_modules/@babel/runtime/helpers/esm/construct.js","webpack://Safe-Spark-Website/./node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","webpack://Safe-Spark-Website/./node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","webpack://Safe-Spark-Website/./node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","webpack://Safe-Spark-Website/./.cache/slice/server-slice-renderer.js","webpack://Safe-Spark-Website/./.cache/slice/server-slice.js","webpack://Safe-Spark-Website/./.cache/slice/inline-slice.js","webpack://Safe-Spark-Website/./.cache/slice.js","webpack://Safe-Spark-Website/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://Safe-Spark-Website/./.cache/gatsby-browser-entry.js","webpack://Safe-Spark-Website/./.cache/prefetch.js","webpack://Safe-Spark-Website/./.cache/loader.js","webpack://Safe-Spark-Website/./.cache/head/components/fire-callback-in-effect.js","webpack://Safe-Spark-Website/./.cache/head/constants.js","webpack://Safe-Spark-Website/./.cache/head/utils.js","webpack://Safe-Spark-Website/./.cache/head/head-export-handler-for-browser.js","webpack://Safe-Spark-Website/./.cache/page-renderer.js","webpack://Safe-Spark-Website/./.cache/route-announcer-props.js","webpack://Safe-Spark-Website/./.cache/navigation.js","webpack://Safe-Spark-Website/./node_modules/shallow-compare/es/index.js","webpack://Safe-Spark-Website/./.cache/ensure-resources.js","webpack://Safe-Spark-Website/./.cache/production-app.js","webpack://Safe-Spark-Website/./.cache/public-page-renderer-prod.js","webpack://Safe-Spark-Website/./.cache/public-page-renderer.js","webpack://Safe-Spark-Website/./.cache/react-dom-utils.js","webpack://Safe-Spark-Website/./.cache/redirect-utils.js","webpack://Safe-Spark-Website/./.cache/register-service-worker.js","webpack://Safe-Spark-Website/./.cache/slice/context.js","webpack://Safe-Spark-Website/./.cache/static-query.js","webpack://Safe-Spark-Website/./.cache/context-utils.js","webpack://Safe-Spark-Website/./.cache/strip-prefix.js","webpack://Safe-Spark-Website/./node_modules/gatsby-plugin-fontawesome-css/gatsby-browser.js","webpack://Safe-Spark-Website/./node_modules/gatsby-plugin-gdpr-cookies/default-options.js","webpack://Safe-Spark-Website/./node_modules/gatsby-plugin-gdpr-cookies/gatsby-browser.js","webpack://Safe-Spark-Website/./node_modules/gatsby-plugin-gdpr-cookies/helper.js","webpack://Safe-Spark-Website/./node_modules/gatsby-plugin-gdpr-cookies/index.js","webpack://Safe-Spark-Website/./node_modules/gatsby-plugin-gdpr-cookies/services/chatwoot.js","webpack://Safe-Spark-Website/./node_modules/gatsby-plugin-gdpr-cookies/services/facebook.js","webpack://Safe-Spark-Website/./node_modules/gatsby-plugin-gdpr-cookies/services/google-analytics.js","webpack://Safe-Spark-Website/./node_modules/gatsby-plugin-gdpr-cookies/services/google-tag-manager.js","webpack://Safe-Spark-Website/./node_modules/gatsby-plugin-gdpr-cookies/services/hotjar.js","webpack://Safe-Spark-Website/./node_modules/gatsby-plugin-gdpr-cookies/services/index.js","webpack://Safe-Spark-Website/./node_modules/gatsby-plugin-gdpr-cookies/services/linkedin.js","webpack://Safe-Spark-Website/./node_modules/gatsby-plugin-gdpr-cookies/services/tiktok.js","webpack://Safe-Spark-Website/./node_modules/gatsby-plugin-manifest/gatsby-browser.js","webpack://Safe-Spark-Website/./node_modules/gatsby-plugin-manifest/get-manifest-pathname.js","webpack://Safe-Spark-Website/./node_modules/gatsby-plugin-scroll-reveal-with-new-react/Wrapper.js","webpack://Safe-Spark-Website/./node_modules/gatsby-plugin-scroll-reveal-with-new-react/gatsby-browser.js","webpack://Safe-Spark-Website/./node_modules/intersection-observer/intersection-observer.js","webpack://Safe-Spark-Website/./node_modules/invariant/browser.js","webpack://Safe-Spark-Website/./node_modules/lodash/_Hash.js","webpack://Safe-Spark-Website/./node_modules/lodash/_ListCache.js","webpack://Safe-Spark-Website/./node_modules/lodash/_Map.js","webpack://Safe-Spark-Website/./node_modules/lodash/_MapCache.js","webpack://Safe-Spark-Website/./node_modules/lodash/_Stack.js","webpack://Safe-Spark-Website/./node_modules/lodash/_Symbol.js","webpack://Safe-Spark-Website/./node_modules/lodash/_Uint8Array.js","webpack://Safe-Spark-Website/./node_modules/lodash/_apply.js","webpack://Safe-Spark-Website/./node_modules/lodash/_arrayLikeKeys.js","webpack://Safe-Spark-Website/./node_modules/lodash/_assignMergeValue.js","webpack://Safe-Spark-Website/./node_modules/lodash/_assignValue.js","webpack://Safe-Spark-Website/./node_modules/lodash/_assocIndexOf.js","webpack://Safe-Spark-Website/./node_modules/lodash/_baseAssignValue.js","webpack://Safe-Spark-Website/./node_modules/lodash/_baseCreate.js","webpack://Safe-Spark-Website/./node_modules/lodash/_baseFor.js","webpack://Safe-Spark-Website/./node_modules/lodash/_baseGetTag.js","webpack://Safe-Spark-Website/./node_modules/lodash/_baseIsArguments.js","webpack://Safe-Spark-Website/./node_modules/lodash/_baseIsNative.js","webpack://Safe-Spark-Website/./node_modules/lodash/_baseIsTypedArray.js","webpack://Safe-Spark-Website/./node_modules/lodash/_baseKeysIn.js","webpack://Safe-Spark-Website/./node_modules/lodash/_baseMerge.js","webpack://Safe-Spark-Website/./node_modules/lodash/_baseMergeDeep.js","webpack://Safe-Spark-Website/./node_modules/lodash/_baseRest.js","webpack://Safe-Spark-Website/./node_modules/lodash/_baseSetToString.js","webpack://Safe-Spark-Website/./node_modules/lodash/_baseTimes.js","webpack://Safe-Spark-Website/./node_modules/lodash/_baseUnary.js","webpack://Safe-Spark-Website/./node_modules/lodash/_cloneArrayBuffer.js","webpack://Safe-Spark-Website/./node_modules/lodash/_cloneBuffer.js","webpack://Safe-Spark-Website/./node_modules/lodash/_cloneTypedArray.js","webpack://Safe-Spark-Website/./node_modules/lodash/_copyArray.js","webpack://Safe-Spark-Website/./node_modules/lodash/_copyObject.js","webpack://Safe-Spark-Website/./node_modules/lodash/_coreJsData.js","webpack://Safe-Spark-Website/./node_modules/lodash/_createAssigner.js","webpack://Safe-Spark-Website/./node_modules/lodash/_createBaseFor.js","webpack://Safe-Spark-Website/./node_modules/lodash/_defineProperty.js","webpack://Safe-Spark-Website/./node_modules/lodash/_freeGlobal.js","webpack://Safe-Spark-Website/./node_modules/lodash/_getMapData.js","webpack://Safe-Spark-Website/./node_modules/lodash/_getNative.js","webpack://Safe-Spark-Website/./node_modules/lodash/_getPrototype.js","webpack://Safe-Spark-Website/./node_modules/lodash/_getRawTag.js","webpack://Safe-Spark-Website/./node_modules/lodash/_getValue.js","webpack://Safe-Spark-Website/./node_modules/lodash/_hashClear.js","webpack://Safe-Spark-Website/./node_modules/lodash/_hashDelete.js","webpack://Safe-Spark-Website/./node_modules/lodash/_hashGet.js","webpack://Safe-Spark-Website/./node_modules/lodash/_hashHas.js","webpack://Safe-Spark-Website/./node_modules/lodash/_hashSet.js","webpack://Safe-Spark-Website/./node_modules/lodash/_initCloneObject.js","webpack://Safe-Spark-Website/./node_modules/lodash/_isIndex.js","webpack://Safe-Spark-Website/./node_modules/lodash/_isIterateeCall.js","webpack://Safe-Spark-Website/./node_modules/lodash/_isKeyable.js","webpack://Safe-Spark-Website/./node_modules/lodash/_isMasked.js","webpack://Safe-Spark-Website/./node_modules/lodash/_isPrototype.js","webpack://Safe-Spark-Website/./node_modules/lodash/_listCacheClear.js","webpack://Safe-Spark-Website/./node_modules/lodash/_listCacheDelete.js","webpack://Safe-Spark-Website/./node_modules/lodash/_listCacheGet.js","webpack://Safe-Spark-Website/./node_modules/lodash/_listCacheHas.js","webpack://Safe-Spark-Website/./node_modules/lodash/_listCacheSet.js","webpack://Safe-Spark-Website/./node_modules/lodash/_mapCacheClear.js","webpack://Safe-Spark-Website/./node_modules/lodash/_mapCacheDelete.js","webpack://Safe-Spark-Website/./node_modules/lodash/_mapCacheGet.js","webpack://Safe-Spark-Website/./node_modules/lodash/_mapCacheHas.js","webpack://Safe-Spark-Website/./node_modules/lodash/_mapCacheSet.js","webpack://Safe-Spark-Website/./node_modules/lodash/_nativeCreate.js","webpack://Safe-Spark-Website/./node_modules/lodash/_nativeKeysIn.js","webpack://Safe-Spark-Website/./node_modules/lodash/_nodeUtil.js","webpack://Safe-Spark-Website/./node_modules/lodash/_objectToString.js","webpack://Safe-Spark-Website/./node_modules/lodash/_overArg.js","webpack://Safe-Spark-Website/./node_modules/lodash/_overRest.js","webpack://Safe-Spark-Website/./node_modules/lodash/_root.js","webpack://Safe-Spark-Website/./node_modules/lodash/_safeGet.js","webpack://Safe-Spark-Website/./node_modules/lodash/_setToString.js","webpack://Safe-Spark-Website/./node_modules/lodash/_shortOut.js","webpack://Safe-Spark-Website/./node_modules/lodash/_stackClear.js","webpack://Safe-Spark-Website/./node_modules/lodash/_stackDelete.js","webpack://Safe-Spark-Website/./node_modules/lodash/_stackGet.js","webpack://Safe-Spark-Website/./node_modules/lodash/_stackHas.js","webpack://Safe-Spark-Website/./node_modules/lodash/_stackSet.js","webpack://Safe-Spark-Website/./node_modules/lodash/_toSource.js","webpack://Safe-Spark-Website/./node_modules/lodash/constant.js","webpack://Safe-Spark-Website/./node_modules/lodash/eq.js","webpack://Safe-Spark-Website/./node_modules/lodash/identity.js","webpack://Safe-Spark-Website/./node_modules/lodash/isArguments.js","webpack://Safe-Spark-Website/./node_modules/lodash/isArray.js","webpack://Safe-Spark-Website/./node_modules/lodash/isArrayLike.js","webpack://Safe-Spark-Website/./node_modules/lodash/isArrayLikeObject.js","webpack://Safe-Spark-Website/./node_modules/lodash/isBuffer.js","webpack://Safe-Spark-Website/./node_modules/lodash/isFunction.js","webpack://Safe-Spark-Website/./node_modules/lodash/isLength.js","webpack://Safe-Spark-Website/./node_modules/lodash/isObject.js","webpack://Safe-Spark-Website/./node_modules/lodash/isObjectLike.js","webpack://Safe-Spark-Website/./node_modules/lodash/isPlainObject.js","webpack://Safe-Spark-Website/./node_modules/lodash/isTypedArray.js","webpack://Safe-Spark-Website/./node_modules/lodash/keysIn.js","webpack://Safe-Spark-Website/./node_modules/lodash/merge.js","webpack://Safe-Spark-Website/./node_modules/lodash/stubFalse.js","webpack://Safe-Spark-Website/./node_modules/lodash/toPlainObject.js","webpack://Safe-Spark-Website/./node_modules/react-server-dom-webpack/cjs/react-server-dom-webpack.production.min.js","webpack://Safe-Spark-Website/./node_modules/react-server-dom-webpack/index.js","webpack://Safe-Spark-Website/./node_modules/sal.js/dist/sal.js","webpack://Safe-Spark-Website/./node_modules/@babel/runtime/helpers/assertThisInitialized.js","webpack://Safe-Spark-Website/./node_modules/@babel/runtime/helpers/inheritsLoose.js","webpack://Safe-Spark-Website/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://Safe-Spark-Website/./node_modules/@babel/runtime/helpers/interopRequireWildcard.js","webpack://Safe-Spark-Website/./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","webpack://Safe-Spark-Website/./node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://Safe-Spark-Website/./node_modules/@babel/runtime/helpers/typeof.js","webpack://Safe-Spark-Website/./node_modules/@builder.io/partytown/integration/index.cjs","webpack://Safe-Spark-Website/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://Safe-Spark-Website/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://Safe-Spark-Website/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://Safe-Spark-Website/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://Safe-Spark-Website/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://Safe-Spark-Website/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://Safe-Spark-Website/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://Safe-Spark-Website/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://Safe-Spark-Website/./node_modules/@gatsbyjs/reach-router/dist/index.modern.mjs","webpack://Safe-Spark-Website/./node_modules/gatsby-link/dist/index.modern.mjs","webpack://Safe-Spark-Website/./node_modules/gatsby-script/dist/index.modern.mjs"],"sourcesContent":["/*!\n * Font Awesome Free 6.0.0 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n * Copyright 2022 Fonticons, Inc.\n */\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\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 = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n\n return target;\n}\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}\n\nfunction _wrapRegExp() {\n _wrapRegExp = function (re, groups) {\n return new BabelRegExp(re, void 0, groups);\n };\n\n var _super = RegExp.prototype,\n _groups = new WeakMap();\n\n function BabelRegExp(re, flags, groups) {\n var _this = new RegExp(re, flags);\n\n return _groups.set(_this, groups || _groups.get(re)), _setPrototypeOf(_this, BabelRegExp.prototype);\n }\n\n function buildGroups(result, re) {\n var g = _groups.get(re);\n\n return Object.keys(g).reduce(function (groups, name) {\n return groups[name] = result[g[name]], groups;\n }, Object.create(null));\n }\n\n return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (str) {\n var result = _super.exec.call(this, str);\n\n return result && (result.groups = buildGroups(result, this)), result;\n }, BabelRegExp.prototype[Symbol.replace] = function (str, substitution) {\n if (\"string\" == typeof substitution) {\n var groups = _groups.get(this);\n\n return _super[Symbol.replace].call(this, str, substitution.replace(/\\$<([^>]+)>/g, function (_, name) {\n return \"$\" + groups[name];\n }));\n }\n\n if (\"function\" == typeof substitution) {\n var _this = this;\n\n return _super[Symbol.replace].call(this, str, function () {\n var args = arguments;\n return \"object\" != typeof args[args.length - 1] && (args = [].slice.call(args)).push(buildGroups(args, _this)), substitution.apply(this, args);\n });\n }\n\n return _super[Symbol.replace].call(this, str, substitution);\n }, _wrapRegExp.apply(this, arguments);\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 _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _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 Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _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}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nfunction _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\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++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _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\nfunction _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\nvar noop = function noop() {};\n\nvar _WINDOW = {};\nvar _DOCUMENT = {};\nvar _MUTATION_OBSERVER = null;\nvar _PERFORMANCE = {\n mark: noop,\n measure: noop\n};\n\ntry {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver;\n if (typeof performance !== 'undefined') _PERFORMANCE = performance;\n} catch (e) {}\n\nvar _ref = _WINDOW.navigator || {},\n _ref$userAgent = _ref.userAgent,\n userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\nvar WINDOW = _WINDOW;\nvar DOCUMENT = _DOCUMENT;\nvar MUTATION_OBSERVER = _MUTATION_OBSERVER;\nvar PERFORMANCE = _PERFORMANCE;\nvar IS_BROWSER = !!WINDOW.document;\nvar IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\nvar IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\nvar NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\nvar UNITS_IN_GRID = 16;\nvar DEFAULT_FAMILY_PREFIX = 'fa';\nvar DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';\nvar DATA_FA_I2SVG = 'data-fa-i2svg';\nvar DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';\nvar DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';\nvar DATA_PREFIX = 'data-prefix';\nvar DATA_ICON = 'data-icon';\nvar HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';\nvar MUTATION_APPROACH_ASYNC = 'async';\nvar TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];\nvar PRODUCTION = function () {\n try {\n return process.env.NODE_ENV === 'production';\n } catch (e) {\n return false;\n }\n}();\nvar PREFIX_TO_STYLE = {\n 'fas': 'solid',\n 'fa-solid': 'solid',\n 'far': 'regular',\n 'fa-regular': 'regular',\n 'fal': 'light',\n 'fa-light': 'light',\n 'fat': 'thin',\n 'fa-thin': 'thin',\n 'fad': 'duotone',\n 'fa-duotone': 'duotone',\n 'fab': 'brands',\n 'fa-brands': 'brands',\n 'fak': 'kit',\n 'fa-kit': 'kit',\n 'fa': 'solid'\n};\nvar STYLE_TO_PREFIX = {\n 'solid': 'fas',\n 'regular': 'far',\n 'light': 'fal',\n 'thin': 'fat',\n 'duotone': 'fad',\n 'brands': 'fab',\n 'kit': 'fak'\n};\nvar PREFIX_TO_LONG_STYLE = {\n 'fab': 'fa-brands',\n 'fad': 'fa-duotone',\n 'fak': 'fa-kit',\n 'fal': 'fa-light',\n 'far': 'fa-regular',\n 'fas': 'fa-solid',\n 'fat': 'fa-thin'\n};\nvar LONG_STYLE_TO_PREFIX = {\n 'fa-brands': 'fab',\n 'fa-duotone': 'fad',\n 'fa-kit': 'fak',\n 'fa-light': 'fal',\n 'fa-regular': 'far',\n 'fa-solid': 'fas',\n 'fa-thin': 'fat'\n};\nvar ICON_SELECTION_SYNTAX_PATTERN = /fa[srltdbk\\-\\ ]/; // eslint-disable-line no-useless-escape\n\nvar LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\nvar FONT_FAMILY_PATTERN = /Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Kit)?.*/i; // TODO: do we need to handle font-weight for kit SVG pseudo-elements?\n\nvar FONT_WEIGHT_TO_PREFIX = {\n '900': 'fas',\n '400': 'far',\n 'normal': 'far',\n '300': 'fal',\n '100': 'fat'\n};\nvar oneToTen = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];\nvar oneToTwenty = oneToTen.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]);\nvar ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];\nvar DUOTONE_CLASSES = {\n GROUP: 'duotone-group',\n SWAP_OPACITY: 'swap-opacity',\n PRIMARY: 'primary',\n SECONDARY: 'secondary'\n};\nvar RESERVED_CLASSES = [].concat(_toConsumableArray(Object.keys(STYLE_TO_PREFIX)), ['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', 'beat', 'border', 'fade', 'beat-fade', 'bounce', 'flip-both', 'flip-horizontal', 'flip-vertical', 'flip', 'fw', 'inverse', 'layers-counter', 'layers-text', 'layers', 'li', 'pull-left', 'pull-right', 'pulse', 'rotate-180', 'rotate-270', 'rotate-90', 'rotate-by', 'shake', 'spin-pulse', 'spin-reverse', 'spin', 'stack-1x', 'stack-2x', 'stack', 'ul', DUOTONE_CLASSES.GROUP, DUOTONE_CLASSES.SWAP_OPACITY, DUOTONE_CLASSES.PRIMARY, DUOTONE_CLASSES.SECONDARY]).concat(oneToTen.map(function (n) {\n return \"\".concat(n, \"x\");\n})).concat(oneToTwenty.map(function (n) {\n return \"w-\".concat(n);\n}));\n\nvar initial = WINDOW.FontAwesomeConfig || {};\n\nfunction getAttrConfig(attr) {\n var element = DOCUMENT.querySelector('script[' + attr + ']');\n\n if (element) {\n return element.getAttribute(attr);\n }\n}\n\nfunction coerce(val) {\n // Getting an empty string will occur if the attribute is set on the HTML tag but without a value\n // We'll assume that this is an indication that it should be toggled to true\n // For example \n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n}\n\nif (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n var attrs = [['data-family-prefix', 'familyPrefix'], ['data-style-default', 'styleDefault'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n attr = _ref2[0],\n key = _ref2[1];\n\n var val = coerce(getAttrConfig(attr));\n\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n}\n\nvar _default = {\n familyPrefix: DEFAULT_FAMILY_PREFIX,\n styleDefault: 'solid',\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n autoA11y: true,\n searchPseudoElements: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n};\n\nvar _config = _objectSpread2(_objectSpread2({}, _default), initial);\n\nif (!_config.autoReplaceSvg) _config.observeMutations = false;\nvar config = {};\nObject.keys(_config).forEach(function (key) {\n Object.defineProperty(config, key, {\n enumerable: true,\n set: function set(val) {\n _config[key] = val;\n\n _onChangeCb.forEach(function (cb) {\n return cb(config);\n });\n },\n get: function get() {\n return _config[key];\n }\n });\n});\nWINDOW.FontAwesomeConfig = config;\nvar _onChangeCb = [];\nfunction onChange(cb) {\n _onChangeCb.push(cb);\n\n return function () {\n _onChangeCb.splice(_onChangeCb.indexOf(cb), 1);\n };\n}\n\nvar d = UNITS_IN_GRID;\nvar meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n};\nfunction insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n\n var style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n var headChildren = DOCUMENT.head.childNodes;\n var beforeChild = null;\n\n for (var i = headChildren.length - 1; i > -1; i--) {\n var child = headChildren[i];\n var tagName = (child.tagName || '').toUpperCase();\n\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n}\nvar idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\nfunction nextUniqueId() {\n var size = 12;\n var id = '';\n\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n\n return id;\n}\nfunction toArray(obj) {\n var array = [];\n\n for (var i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n\n return array;\n}\nfunction classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(function (i) {\n return i;\n });\n }\n}\nfunction htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n}\nfunction joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n}\nfunction joinStyles(styles) {\n return Object.keys(styles || {}).reduce(function (acc, styleName) {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName].trim(), \";\");\n }, '');\n}\nfunction transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n}\nfunction transformForSvg(_ref) {\n var transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer: outer,\n inner: inner,\n path: path\n };\n}\nfunction transformForCss(_ref2) {\n var transform = _ref2.transform,\n _ref2$width = _ref2.width,\n width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,\n _ref2$height = _ref2.height,\n height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,\n _ref2$startCentered = _ref2.startCentered,\n startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;\n var val = '';\n\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d - width / 2, \"em, \").concat(transform.y / d - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d, \"em), calc(-50% + \").concat(transform.y / d, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d, \"em, \").concat(transform.y / d, \"em) \");\n }\n\n val += \"scale(\".concat(transform.size / d * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n}\n\nvar baseStyles = \":root, :host {\\n --fa-font-solid: normal 900 1em/1 \\\"Font Awesome 6 Solid\\\";\\n --fa-font-regular: normal 400 1em/1 \\\"Font Awesome 6 Regular\\\";\\n --fa-font-light: normal 300 1em/1 \\\"Font Awesome 6 Light\\\";\\n --fa-font-thin: normal 100 1em/1 \\\"Font Awesome 6 Thin\\\";\\n --fa-font-duotone: normal 900 1em/1 \\\"Font Awesome 6 Duotone\\\";\\n --fa-font-brands: normal 400 1em/1 \\\"Font Awesome 6 Brands\\\";\\n}\\n\\nsvg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {\\n overflow: visible;\\n box-sizing: content-box;\\n}\\n\\n.svg-inline--fa {\\n display: var(--fa-display, inline-block);\\n height: 1em;\\n overflow: visible;\\n vertical-align: -0.125em;\\n}\\n.svg-inline--fa.fa-2xs {\\n vertical-align: 0.1em;\\n}\\n.svg-inline--fa.fa-xs {\\n vertical-align: 0em;\\n}\\n.svg-inline--fa.fa-sm {\\n vertical-align: -0.0714285705em;\\n}\\n.svg-inline--fa.fa-lg {\\n vertical-align: -0.2em;\\n}\\n.svg-inline--fa.fa-xl {\\n vertical-align: -0.25em;\\n}\\n.svg-inline--fa.fa-2xl {\\n vertical-align: -0.3125em;\\n}\\n.svg-inline--fa.fa-pull-left {\\n margin-right: var(--fa-pull-margin, 0.3em);\\n width: auto;\\n}\\n.svg-inline--fa.fa-pull-right {\\n margin-left: var(--fa-pull-margin, 0.3em);\\n width: auto;\\n}\\n.svg-inline--fa.fa-li {\\n width: var(--fa-li-width, 2em);\\n top: 0.25em;\\n}\\n.svg-inline--fa.fa-fw {\\n width: var(--fa-fw-width, 1.25em);\\n}\\n\\n.fa-layers svg.svg-inline--fa {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n}\\n\\n.fa-layers-counter, .fa-layers-text {\\n display: inline-block;\\n position: absolute;\\n text-align: center;\\n}\\n\\n.fa-layers {\\n display: inline-block;\\n height: 1em;\\n position: relative;\\n text-align: center;\\n vertical-align: -0.125em;\\n width: 1em;\\n}\\n.fa-layers svg.svg-inline--fa {\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-text {\\n left: 50%;\\n top: 50%;\\n -webkit-transform: translate(-50%, -50%);\\n transform: translate(-50%, -50%);\\n -webkit-transform-origin: center center;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter {\\n background-color: var(--fa-counter-background-color, #ff253a);\\n border-radius: var(--fa-counter-border-radius, 1em);\\n box-sizing: border-box;\\n color: var(--fa-inverse, #fff);\\n line-height: var(--fa-counter-line-height, 1);\\n max-width: var(--fa-counter-max-width, 5em);\\n min-width: var(--fa-counter-min-width, 1.5em);\\n overflow: hidden;\\n padding: var(--fa-counter-padding, 0.25em 0.5em);\\n right: var(--fa-right, 0);\\n text-overflow: ellipsis;\\n top: var(--fa-top, 0);\\n -webkit-transform: scale(var(--fa-counter-scale, 0.25));\\n transform: scale(var(--fa-counter-scale, 0.25));\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-bottom-right {\\n bottom: var(--fa-bottom, 0);\\n right: var(--fa-right, 0);\\n top: auto;\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: bottom right;\\n transform-origin: bottom right;\\n}\\n\\n.fa-layers-bottom-left {\\n bottom: var(--fa-bottom, 0);\\n left: var(--fa-left, 0);\\n right: auto;\\n top: auto;\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: bottom left;\\n transform-origin: bottom left;\\n}\\n\\n.fa-layers-top-right {\\n top: var(--fa-top, 0);\\n right: var(--fa-right, 0);\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: top right;\\n transform-origin: top right;\\n}\\n\\n.fa-layers-top-left {\\n left: var(--fa-left, 0);\\n right: auto;\\n top: var(--fa-top, 0);\\n -webkit-transform: scale(var(--fa-layers-scale, 0.25));\\n transform: scale(var(--fa-layers-scale, 0.25));\\n -webkit-transform-origin: top left;\\n transform-origin: top left;\\n}\\n\\n.fa-1x {\\n font-size: 1em;\\n}\\n\\n.fa-2x {\\n font-size: 2em;\\n}\\n\\n.fa-3x {\\n font-size: 3em;\\n}\\n\\n.fa-4x {\\n font-size: 4em;\\n}\\n\\n.fa-5x {\\n font-size: 5em;\\n}\\n\\n.fa-6x {\\n font-size: 6em;\\n}\\n\\n.fa-7x {\\n font-size: 7em;\\n}\\n\\n.fa-8x {\\n font-size: 8em;\\n}\\n\\n.fa-9x {\\n font-size: 9em;\\n}\\n\\n.fa-10x {\\n font-size: 10em;\\n}\\n\\n.fa-2xs {\\n font-size: 0.625em;\\n line-height: 0.1em;\\n vertical-align: 0.225em;\\n}\\n\\n.fa-xs {\\n font-size: 0.75em;\\n line-height: 0.0833333337em;\\n vertical-align: 0.125em;\\n}\\n\\n.fa-sm {\\n font-size: 0.875em;\\n line-height: 0.0714285718em;\\n vertical-align: 0.0535714295em;\\n}\\n\\n.fa-lg {\\n font-size: 1.25em;\\n line-height: 0.05em;\\n vertical-align: -0.075em;\\n}\\n\\n.fa-xl {\\n font-size: 1.5em;\\n line-height: 0.0416666682em;\\n vertical-align: -0.125em;\\n}\\n\\n.fa-2xl {\\n font-size: 2em;\\n line-height: 0.03125em;\\n vertical-align: -0.1875em;\\n}\\n\\n.fa-fw {\\n text-align: center;\\n width: 1.25em;\\n}\\n\\n.fa-ul {\\n list-style-type: none;\\n margin-left: var(--fa-li-margin, 2.5em);\\n padding-left: 0;\\n}\\n.fa-ul > li {\\n position: relative;\\n}\\n\\n.fa-li {\\n left: calc(var(--fa-li-width, 2em) * -1);\\n position: absolute;\\n text-align: center;\\n width: var(--fa-li-width, 2em);\\n line-height: inherit;\\n}\\n\\n.fa-border {\\n border-color: var(--fa-border-color, #eee);\\n border-radius: var(--fa-border-radius, 0.1em);\\n border-style: var(--fa-border-style, solid);\\n border-width: var(--fa-border-width, 0.08em);\\n padding: var(--fa-border-padding, 0.2em 0.25em 0.15em);\\n}\\n\\n.fa-pull-left {\\n float: left;\\n margin-right: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-pull-right {\\n float: right;\\n margin-left: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-beat {\\n -webkit-animation-name: fa-beat;\\n animation-name: fa-beat;\\n -webkit-animation-delay: var(--fa-animation-delay, 0);\\n animation-delay: var(--fa-animation-delay, 0);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-bounce {\\n -webkit-animation-name: fa-bounce;\\n animation-name: fa-bounce;\\n -webkit-animation-delay: var(--fa-animation-delay, 0);\\n animation-delay: var(--fa-animation-delay, 0);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\\n}\\n\\n.fa-fade {\\n -webkit-animation-name: fa-fade;\\n animation-name: fa-fade;\\n -webkit-animation-delay: var(--fa-animation-delay, 0);\\n animation-delay: var(--fa-animation-delay, 0);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-beat-fade {\\n -webkit-animation-name: fa-beat-fade;\\n animation-name: fa-beat-fade;\\n -webkit-animation-delay: var(--fa-animation-delay, 0);\\n animation-delay: var(--fa-animation-delay, 0);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-flip {\\n -webkit-animation-name: fa-flip;\\n animation-name: fa-flip;\\n -webkit-animation-delay: var(--fa-animation-delay, 0);\\n animation-delay: var(--fa-animation-delay, 0);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-shake {\\n -webkit-animation-name: fa-shake;\\n animation-name: fa-shake;\\n -webkit-animation-delay: var(--fa-animation-delay, 0);\\n animation-delay: var(--fa-animation-delay, 0);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin {\\n -webkit-animation-name: fa-spin;\\n animation-name: fa-spin;\\n -webkit-animation-delay: var(--fa-animation-delay, 0);\\n animation-delay: var(--fa-animation-delay, 0);\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 2s);\\n animation-duration: var(--fa-animation-duration, 2s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, linear);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin-reverse {\\n --fa-animation-direction: reverse;\\n}\\n\\n.fa-pulse,\\n.fa-spin-pulse {\\n -webkit-animation-name: fa-spin;\\n animation-name: fa-spin;\\n -webkit-animation-direction: var(--fa-animation-direction, normal);\\n animation-direction: var(--fa-animation-direction, normal);\\n -webkit-animation-duration: var(--fa-animation-duration, 1s);\\n animation-duration: var(--fa-animation-duration, 1s);\\n -webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n -webkit-animation-timing-function: var(--fa-animation-timing, steps(8));\\n animation-timing-function: var(--fa-animation-timing, steps(8));\\n}\\n\\n@media (prefers-reduced-motion: reduce) {\\n .fa-beat,\\n.fa-bounce,\\n.fa-fade,\\n.fa-beat-fade,\\n.fa-flip,\\n.fa-pulse,\\n.fa-shake,\\n.fa-spin,\\n.fa-spin-pulse {\\n -webkit-animation-delay: -1ms;\\n animation-delay: -1ms;\\n -webkit-animation-duration: 1ms;\\n animation-duration: 1ms;\\n -webkit-animation-iteration-count: 1;\\n animation-iteration-count: 1;\\n transition-delay: 0s;\\n transition-duration: 0s;\\n }\\n}\\n@-webkit-keyframes fa-beat {\\n 0%, 90% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 45% {\\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\\n transform: scale(var(--fa-beat-scale, 1.25));\\n }\\n}\\n@keyframes fa-beat {\\n 0%, 90% {\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 45% {\\n -webkit-transform: scale(var(--fa-beat-scale, 1.25));\\n transform: scale(var(--fa-beat-scale, 1.25));\\n }\\n}\\n@-webkit-keyframes fa-bounce {\\n 0% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 10% {\\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n }\\n 30% {\\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n }\\n 50% {\\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n }\\n 57% {\\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n }\\n 64% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 100% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n}\\n@keyframes fa-bounce {\\n 0% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 10% {\\n -webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n }\\n 30% {\\n -webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n }\\n 50% {\\n -webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n }\\n 57% {\\n -webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n }\\n 64% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n 100% {\\n -webkit-transform: scale(1, 1) translateY(0);\\n transform: scale(1, 1) translateY(0);\\n }\\n}\\n@-webkit-keyframes fa-fade {\\n 50% {\\n opacity: var(--fa-fade-opacity, 0.4);\\n }\\n}\\n@keyframes fa-fade {\\n 50% {\\n opacity: var(--fa-fade-opacity, 0.4);\\n }\\n}\\n@-webkit-keyframes fa-beat-fade {\\n 0%, 100% {\\n opacity: var(--fa-beat-fade-opacity, 0.4);\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 50% {\\n opacity: 1;\\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\\n transform: scale(var(--fa-beat-fade-scale, 1.125));\\n }\\n}\\n@keyframes fa-beat-fade {\\n 0%, 100% {\\n opacity: var(--fa-beat-fade-opacity, 0.4);\\n -webkit-transform: scale(1);\\n transform: scale(1);\\n }\\n 50% {\\n opacity: 1;\\n -webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));\\n transform: scale(var(--fa-beat-fade-scale, 1.125));\\n }\\n}\\n@-webkit-keyframes fa-flip {\\n 50% {\\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n }\\n}\\n@keyframes fa-flip {\\n 50% {\\n -webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n }\\n}\\n@-webkit-keyframes fa-shake {\\n 0% {\\n -webkit-transform: rotate(-15deg);\\n transform: rotate(-15deg);\\n }\\n 4% {\\n -webkit-transform: rotate(15deg);\\n transform: rotate(15deg);\\n }\\n 8%, 24% {\\n -webkit-transform: rotate(-18deg);\\n transform: rotate(-18deg);\\n }\\n 12%, 28% {\\n -webkit-transform: rotate(18deg);\\n transform: rotate(18deg);\\n }\\n 16% {\\n -webkit-transform: rotate(-22deg);\\n transform: rotate(-22deg);\\n }\\n 20% {\\n -webkit-transform: rotate(22deg);\\n transform: rotate(22deg);\\n }\\n 32% {\\n -webkit-transform: rotate(-12deg);\\n transform: rotate(-12deg);\\n }\\n 36% {\\n -webkit-transform: rotate(12deg);\\n transform: rotate(12deg);\\n }\\n 40%, 100% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n}\\n@keyframes fa-shake {\\n 0% {\\n -webkit-transform: rotate(-15deg);\\n transform: rotate(-15deg);\\n }\\n 4% {\\n -webkit-transform: rotate(15deg);\\n transform: rotate(15deg);\\n }\\n 8%, 24% {\\n -webkit-transform: rotate(-18deg);\\n transform: rotate(-18deg);\\n }\\n 12%, 28% {\\n -webkit-transform: rotate(18deg);\\n transform: rotate(18deg);\\n }\\n 16% {\\n -webkit-transform: rotate(-22deg);\\n transform: rotate(-22deg);\\n }\\n 20% {\\n -webkit-transform: rotate(22deg);\\n transform: rotate(22deg);\\n }\\n 32% {\\n -webkit-transform: rotate(-12deg);\\n transform: rotate(-12deg);\\n }\\n 36% {\\n -webkit-transform: rotate(12deg);\\n transform: rotate(12deg);\\n }\\n 40%, 100% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n}\\n@-webkit-keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n@keyframes fa-spin {\\n 0% {\\n -webkit-transform: rotate(0deg);\\n transform: rotate(0deg);\\n }\\n 100% {\\n -webkit-transform: rotate(360deg);\\n transform: rotate(360deg);\\n }\\n}\\n.fa-rotate-90 {\\n -webkit-transform: rotate(90deg);\\n transform: rotate(90deg);\\n}\\n\\n.fa-rotate-180 {\\n -webkit-transform: rotate(180deg);\\n transform: rotate(180deg);\\n}\\n\\n.fa-rotate-270 {\\n -webkit-transform: rotate(270deg);\\n transform: rotate(270deg);\\n}\\n\\n.fa-flip-horizontal {\\n -webkit-transform: scale(-1, 1);\\n transform: scale(-1, 1);\\n}\\n\\n.fa-flip-vertical {\\n -webkit-transform: scale(1, -1);\\n transform: scale(1, -1);\\n}\\n\\n.fa-flip-both,\\n.fa-flip-horizontal.fa-flip-vertical {\\n -webkit-transform: scale(-1, -1);\\n transform: scale(-1, -1);\\n}\\n\\n.fa-rotate-by {\\n -webkit-transform: rotate(var(--fa-rotate-angle, none));\\n transform: rotate(var(--fa-rotate-angle, none));\\n}\\n\\n.fa-stack {\\n display: inline-block;\\n vertical-align: middle;\\n height: 2em;\\n position: relative;\\n width: 2.5em;\\n}\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n bottom: 0;\\n left: 0;\\n margin: auto;\\n position: absolute;\\n right: 0;\\n top: 0;\\n z-index: var(--fa-stack-z-index, auto);\\n}\\n\\n.svg-inline--fa.fa-stack-1x {\\n height: 1em;\\n width: 1.25em;\\n}\\n.svg-inline--fa.fa-stack-2x {\\n height: 2em;\\n width: 2.5em;\\n}\\n\\n.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\\n\\n.sr-only,\\n.fa-sr-only {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border-width: 0;\\n}\\n\\n.sr-only-focusable:not(:focus),\\n.fa-sr-only-focusable:not(:focus) {\\n position: absolute;\\n width: 1px;\\n height: 1px;\\n padding: 0;\\n margin: -1px;\\n overflow: hidden;\\n clip: rect(0, 0, 0, 0);\\n white-space: nowrap;\\n border-width: 0;\\n}\\n\\n.svg-inline--fa .fa-primary {\\n fill: var(--fa-primary-color, currentColor);\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n fill: var(--fa-secondary-color, currentColor);\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa mask .fa-primary,\\n.svg-inline--fa mask .fa-secondary {\\n fill: black;\\n}\\n\\n.fad.fa-inverse,\\n.fa-duotone.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\";\n\nfunction css() {\n var dfp = DEFAULT_FAMILY_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.familyPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n\n if (fp !== dfp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dfp, \"\\\\-\"), 'g');\n var customPropPatt = new RegExp(\"\\\\--\".concat(dfp, \"\\\\-\"), 'g');\n var rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n\n return s;\n}\n\nvar _cssInserted = false;\n\nfunction ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n}\n\nvar InjectCSS = {\n mixout: function mixout() {\n return {\n dom: {\n css: css,\n insertCss: ensureCss\n }\n };\n },\n hooks: function hooks() {\n return {\n beforeDOMElementCreation: function beforeDOMElementCreation() {\n ensureCss();\n },\n beforeI2svg: function beforeI2svg() {\n ensureCss();\n }\n };\n }\n};\n\nvar w = WINDOW || {};\nif (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\nif (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\nif (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\nif (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\nvar namespace = w[NAMESPACE_IDENTIFIER];\n\nvar functions = [];\n\nvar listener = function listener() {\n DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n loaded = 1;\n functions.map(function (fn) {\n return fn();\n });\n};\n\nvar loaded = false;\n\nif (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n}\n\nfunction domready (fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n}\n\nfunction toHtml(abstractNodes) {\n var tag = abstractNodes.tag,\n _abstractNodes$attrib = abstractNodes.attributes,\n attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,\n _abstractNodes$childr = abstractNodes.children,\n children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"\").concat(tag, \">\");\n }\n}\n\nfunction iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix: prefix,\n iconName: iconName,\n icon: mapping[prefix][iconName]\n };\n }\n}\n\n/**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\n\nvar bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n};\n\n/**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\n\n\nvar reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n\n return result;\n};\n\n/**\n * ucs2decode() and codePointAt() are both works of Mathias Bynens and licensed under MIT\n *\n * Copyright Mathias Bynens \n\n * Permission is hereby granted, free of charge, to any person obtaining\n * a copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to\n * permit persons to whom the Software is furnished to do so, subject to\n * the following conditions:\n\n * The above copyright notice and this permission notice shall be\n * included in all copies or substantial portions of the Software.\n\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n * OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION\n * WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\nfunction ucs2decode(string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n\n while (counter < length) {\n var value = string.charCodeAt(counter++);\n\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n var extra = string.charCodeAt(counter++);\n\n if ((extra & 0xFC00) == 0xDC00) {\n // eslint-disable-line eqeqeq\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n\n return output;\n}\n\nfunction toHex(unicode) {\n var decoded = ucs2decode(unicode);\n return decoded.length === 1 ? decoded[0].toString(16) : null;\n}\nfunction codePointAt(string, index) {\n var size = string.length;\n var first = string.charCodeAt(index);\n var second;\n\n if (first >= 0xD800 && first <= 0xDBFF && size > index + 1) {\n second = string.charCodeAt(index + 1);\n\n if (second >= 0xDC00 && second <= 0xDFFF) {\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n\n return first;\n}\n\nfunction normalizeIcons(icons) {\n return Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n\n return acc;\n }, {});\n}\n\nfunction defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = normalizeIcons(icons);\n\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalizeIcons(icons));\n } else {\n namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized);\n }\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll ease the upgrade process for our users by automatically defining\n * this as well.\n */\n\n\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n}\n\nvar duotonePathRe = [/*#__PURE__*/_wrapRegExp(/path d=\"((?:(?!\")[\\s\\S])+)\".*path d=\"((?:(?!\")[\\s\\S])+)\"/, {\n d1: 1,\n d2: 2\n}), /*#__PURE__*/_wrapRegExp(/path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\".*path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\"/, {\n cls1: 1,\n d1: 2,\n cls2: 3,\n d2: 4\n}), /*#__PURE__*/_wrapRegExp(/path class=\"((?:(?!\")[\\s\\S])+)\".*d=\"((?:(?!\")[\\s\\S])+)\"/, {\n cls1: 1,\n d1: 2\n})];\n\nvar styles = namespace.styles,\n shims = namespace.shims;\nvar LONG_STYLE = Object.values(PREFIX_TO_LONG_STYLE);\nvar _defaultUsablePrefix = null;\nvar _byUnicode = {};\nvar _byLigature = {};\nvar _byOldName = {};\nvar _byOldUnicode = {};\nvar _byAlias = {};\nvar PREFIXES = Object.keys(PREFIX_TO_STYLE);\n\nfunction isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n}\n\nfunction getIconName(familyPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n\n if (prefix === familyPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n}\nvar build = function build() {\n var lookup = function lookup(reducer) {\n return reduce(styles, function (o, style, prefix) {\n o[prefix] = reduce(style, reducer, {});\n return o;\n }, {});\n };\n\n _byUnicode = lookup(function (acc, icon, iconName) {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n\n if (icon[2]) {\n var aliases = icon[2].filter(function (a) {\n return typeof a === 'number';\n });\n aliases.forEach(function (alias) {\n acc[alias.toString(16)] = iconName;\n });\n }\n\n return acc;\n });\n _byLigature = lookup(function (acc, icon, iconName) {\n acc[iconName] = iconName;\n\n if (icon[2]) {\n var aliases = icon[2].filter(function (a) {\n return typeof a === 'string';\n });\n aliases.forEach(function (alias) {\n acc[alias] = iconName;\n });\n }\n\n return acc;\n });\n _byAlias = lookup(function (acc, icon, iconName) {\n var aliases = icon[2];\n acc[iconName] = iconName;\n aliases.forEach(function (alias) {\n acc[alias] = iconName;\n });\n return acc;\n }); // If we have a Kit, we can't determine if regular is available since we\n // could be auto-fetching it. We'll have to assume that it is available.\n\n var hasRegular = 'far' in styles || config.autoFetchSvg;\n var shimLookups = reduce(shims, function (acc, shim) {\n var maybeNameMaybeUnicode = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n\n if (typeof maybeNameMaybeUnicode === 'string') {\n acc.names[maybeNameMaybeUnicode] = {\n prefix: prefix,\n iconName: iconName\n };\n }\n\n if (typeof maybeNameMaybeUnicode === 'number') {\n acc.unicodes[maybeNameMaybeUnicode.toString(16)] = {\n prefix: prefix,\n iconName: iconName\n };\n }\n\n return acc;\n }, {\n names: {},\n unicodes: {}\n });\n _byOldName = shimLookups.names;\n _byOldUnicode = shimLookups.unicodes;\n _defaultUsablePrefix = getCanonicalPrefix(config.styleDefault);\n};\nonChange(function (c) {\n _defaultUsablePrefix = getCanonicalPrefix(c.styleDefault);\n});\nbuild();\nfunction byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n}\nfunction byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n}\nfunction byAlias(prefix, alias) {\n return (_byAlias[prefix] || {})[alias];\n}\nfunction byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n}\nfunction byOldUnicode(unicode) {\n var oldUnicode = _byOldUnicode[unicode];\n var newUnicode = byUnicode('fas', unicode);\n return oldUnicode || (newUnicode ? {\n prefix: 'fas',\n iconName: newUnicode\n } : null) || {\n prefix: null,\n iconName: null\n };\n}\nfunction getDefaultUsablePrefix() {\n return _defaultUsablePrefix;\n}\nvar emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n};\nfunction getCanonicalPrefix(styleOrPrefix) {\n var style = PREFIX_TO_STYLE[styleOrPrefix];\n var prefix = STYLE_TO_PREFIX[styleOrPrefix] || STYLE_TO_PREFIX[style];\n var defined = styleOrPrefix in namespace.styles ? styleOrPrefix : null;\n return prefix || defined || null;\n}\nfunction getCanonicalIcon(values) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$skipLookups = params.skipLookups,\n skipLookups = _params$skipLookups === void 0 ? false : _params$skipLookups;\n var givenPrefix = null;\n var canonical = values.reduce(function (acc, cls) {\n var iconName = getIconName(config.familyPrefix, cls);\n\n if (styles[cls]) {\n cls = LONG_STYLE.includes(cls) ? LONG_STYLE_TO_PREFIX[cls] : cls;\n givenPrefix = cls;\n acc.prefix = cls;\n } else if (PREFIXES.indexOf(cls) > -1) {\n givenPrefix = cls;\n acc.prefix = getCanonicalPrefix(cls);\n } else if (iconName) {\n acc.iconName = iconName;\n } else if (cls !== config.replacementClass) {\n acc.rest.push(cls);\n }\n\n if (!skipLookups && acc.prefix && acc.iconName) {\n var shim = givenPrefix === 'fa' ? byOldName(acc.iconName) : {};\n var aliasIconName = byAlias(acc.prefix, acc.iconName);\n\n if (shim.prefix) {\n givenPrefix = null;\n }\n\n acc.iconName = shim.iconName || aliasIconName || acc.iconName;\n acc.prefix = shim.prefix || acc.prefix;\n\n if (acc.prefix === 'far' && !styles['far'] && styles['fas'] && !config.autoFetchSvg) {\n // Allow a fallback from the regular style to solid if regular is not available\n // but only if we aren't auto-fetching SVGs\n acc.prefix = 'fas';\n }\n }\n\n return acc;\n }, emptyCanonicalIcon());\n\n if (canonical.prefix === 'fa' || givenPrefix === 'fa') {\n // The fa prefix is not canonical. So if it has made it through until this point\n // we will shift it to the correct prefix.\n canonical.prefix = getDefaultUsablePrefix() || 'fas';\n }\n\n return canonical;\n}\n\nvar Library = /*#__PURE__*/function () {\n function Library() {\n _classCallCheck(this, Library);\n\n this.definitions = {};\n }\n\n _createClass(Library, [{\n key: \"add\",\n value: function add() {\n var _this = this;\n\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n\n var additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(function (key) {\n _this.definitions[key] = _objectSpread2(_objectSpread2({}, _this.definitions[key] || {}), additions[key]);\n defineIcons(key, additions[key]);\n var longPrefix = PREFIX_TO_LONG_STYLE[key];\n if (longPrefix) defineIcons(longPrefix, additions[key]);\n build();\n });\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.definitions = {};\n }\n }, {\n key: \"_pullDefinitions\",\n value: function _pullDefinitions(additions, definition) {\n var normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(function (key) {\n var _normalized$key = normalized[key],\n prefix = _normalized$key.prefix,\n iconName = _normalized$key.iconName,\n icon = _normalized$key.icon;\n var aliases = icon[2];\n if (!additions[prefix]) additions[prefix] = {};\n\n if (aliases.length > 0) {\n aliases.forEach(function (alias) {\n if (typeof alias === 'string') {\n additions[prefix][alias] = icon;\n }\n });\n }\n\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n }]);\n\n return Library;\n}();\n\nvar _plugins = [];\nvar _hooks = {};\nvar providers = {};\nvar defaultProviderKeys = Object.keys(providers);\nfunction registerPlugins(nextPlugins, _ref) {\n var obj = _ref.mixoutsTo;\n _plugins = nextPlugins;\n _hooks = {};\n Object.keys(providers).forEach(function (k) {\n if (defaultProviderKeys.indexOf(k) === -1) {\n delete providers[k];\n }\n });\n\n _plugins.forEach(function (plugin) {\n var mixout = plugin.mixout ? plugin.mixout() : {};\n Object.keys(mixout).forEach(function (tk) {\n if (typeof mixout[tk] === 'function') {\n obj[tk] = mixout[tk];\n }\n\n if (_typeof(mixout[tk]) === 'object') {\n Object.keys(mixout[tk]).forEach(function (sk) {\n if (!obj[tk]) {\n obj[tk] = {};\n }\n\n obj[tk][sk] = mixout[tk][sk];\n });\n }\n });\n\n if (plugin.hooks) {\n var hooks = plugin.hooks();\n Object.keys(hooks).forEach(function (hook) {\n if (!_hooks[hook]) {\n _hooks[hook] = [];\n }\n\n _hooks[hook].push(hooks[hook]);\n });\n }\n\n if (plugin.provides) {\n plugin.provides(providers);\n }\n });\n\n return obj;\n}\nfunction chainHooks(hook, accumulator) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n\n var hookFns = _hooks[hook] || [];\n hookFns.forEach(function (hookFn) {\n accumulator = hookFn.apply(null, [accumulator].concat(args)); // eslint-disable-line no-useless-call\n });\n return accumulator;\n}\nfunction callHooks(hook) {\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 var hookFns = _hooks[hook] || [];\n hookFns.forEach(function (hookFn) {\n hookFn.apply(null, args);\n });\n return undefined;\n}\nfunction callProvided() {\n var hook = arguments[0];\n var args = Array.prototype.slice.call(arguments, 1);\n return providers[hook] ? providers[hook].apply(null, args) : undefined;\n}\n\nfunction findIconDefinition(iconLookup) {\n if (iconLookup.prefix === 'fa') {\n iconLookup.prefix = 'fas';\n }\n\n var iconName = iconLookup.iconName;\n var prefix = iconLookup.prefix || getDefaultUsablePrefix();\n if (!iconName) return;\n iconName = byAlias(prefix, iconName) || iconName;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n}\nvar library = new Library();\nvar noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n callHooks('noAuto');\n};\nvar dom = {\n i2svg: function i2svg() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (IS_DOM) {\n callHooks('beforeI2svg', params);\n callProvided('pseudoElements2svg', params);\n return callProvided('i2svg', params);\n } else {\n return Promise.reject('Operation requires a DOM of some kind.');\n }\n },\n watch: function watch() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var autoReplaceSvgRoot = params.autoReplaceSvgRoot;\n\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n\n config.observeMutations = true;\n domready(function () {\n autoReplace({\n autoReplaceSvgRoot: autoReplaceSvgRoot\n });\n callHooks('watch', params);\n });\n }\n};\nvar parse = {\n icon: function icon(_icon) {\n if (_icon === null) {\n return null;\n }\n\n if (_typeof(_icon) === 'object' && _icon.prefix && _icon.iconName) {\n return {\n prefix: _icon.prefix,\n iconName: byAlias(_icon.prefix, _icon.iconName) || _icon.iconName\n };\n }\n\n if (Array.isArray(_icon) && _icon.length === 2) {\n var iconName = _icon[1].indexOf('fa-') === 0 ? _icon[1].slice(3) : _icon[1];\n var prefix = getCanonicalPrefix(_icon[0]);\n return {\n prefix: prefix,\n iconName: byAlias(prefix, iconName) || iconName\n };\n }\n\n if (typeof _icon === 'string' && (_icon.indexOf(\"\".concat(config.familyPrefix, \"-\")) > -1 || _icon.match(ICON_SELECTION_SYNTAX_PATTERN))) {\n var canonicalIcon = getCanonicalIcon(_icon.split(' '), {\n skipLookups: true\n });\n return {\n prefix: canonicalIcon.prefix || getDefaultUsablePrefix(),\n iconName: byAlias(canonicalIcon.prefix, canonicalIcon.iconName) || canonicalIcon.iconName\n };\n }\n\n if (typeof _icon === 'string') {\n var _prefix = getDefaultUsablePrefix();\n\n return {\n prefix: _prefix,\n iconName: byAlias(_prefix, _icon) || _icon\n };\n }\n }\n};\nvar api = {\n noAuto: noAuto,\n config: config,\n dom: dom,\n parse: parse,\n library: library,\n findIconDefinition: findIconDefinition,\n toHtml: toHtml\n};\n\nvar autoReplace = function autoReplace() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n};\n\nfunction domVariants(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n Object.defineProperty(val, 'html', {\n get: function get() {\n return val.abstract.map(function (a) {\n return toHtml(a);\n });\n }\n });\n Object.defineProperty(val, 'node', {\n get: function get() {\n if (!IS_DOM) return;\n var container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n}\n\nfunction asIcon (_ref) {\n var children = _ref.children,\n main = _ref.main,\n mask = _ref.mask,\n attributes = _ref.attributes,\n styles = _ref.styles,\n transform = _ref.transform;\n\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n var width = main.width,\n height = main.height;\n var offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles(_objectSpread2(_objectSpread2({}, styles), {}, {\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n }));\n }\n\n return [{\n tag: 'svg',\n attributes: attributes,\n children: children\n }];\n}\n\nfunction asSymbol (_ref) {\n var prefix = _ref.prefix,\n iconName = _ref.iconName,\n children = _ref.children,\n attributes = _ref.attributes,\n symbol = _ref.symbol;\n var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.familyPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread2(_objectSpread2({}, attributes), {}, {\n id: id\n }),\n children: children\n }]\n }];\n}\n\nfunction makeInlineSvgAbstract(params) {\n var _params$icons = params.icons,\n main = _params$icons.main,\n mask = _params$icons.mask,\n prefix = params.prefix,\n iconName = params.iconName,\n transform = params.transform,\n symbol = params.symbol,\n title = params.title,\n maskId = params.maskId,\n titleId = params.titleId,\n extra = params.extra,\n _params$watchable = params.watchable,\n watchable = _params$watchable === void 0 ? false : _params$watchable;\n\n var _ref = mask.found ? mask : main,\n width = _ref.width,\n height = _ref.height;\n\n var isUploadedIcon = prefix === 'fak';\n var attrClass = [config.replacementClass, iconName ? \"\".concat(config.familyPrefix, \"-\").concat(iconName) : ''].filter(function (c) {\n return extra.classes.indexOf(c) === -1;\n }).filter(function (c) {\n return c !== '' || !!c;\n }).concat(extra.classes).join(' ');\n var content = {\n children: [],\n attributes: _objectSpread2(_objectSpread2({}, extra.attributes), {}, {\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n })\n };\n var uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? {\n width: \"\".concat(width / height * 16 * 0.0625, \"em\")\n } : {};\n\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n\n if (title) {\n content.children.push({\n tag: 'title',\n attributes: {\n id: content.attributes['aria-labelledby'] || \"title-\".concat(titleId || nextUniqueId())\n },\n children: [title]\n });\n delete content.attributes.title;\n }\n\n var args = _objectSpread2(_objectSpread2({}, content), {}, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n maskId: maskId,\n transform: transform,\n symbol: symbol,\n styles: _objectSpread2(_objectSpread2({}, uploadedIconWidthStyle), extra.styles)\n });\n\n var _ref2 = mask.found && main.found ? callProvided('generateAbstractMask', args) || {\n children: [],\n attributes: {}\n } : callProvided('generateAbstractIcon', args) || {\n children: [],\n attributes: {}\n },\n children = _ref2.children,\n attributes = _ref2.attributes;\n\n args.children = children;\n args.attributes = attributes;\n\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n}\nfunction makeLayersTextAbstract(params) {\n var content = params.content,\n width = params.width,\n height = params.height,\n transform = params.transform,\n title = params.title,\n extra = params.extra,\n _params$watchable2 = params.watchable,\n watchable = _params$watchable2 === void 0 ? false : _params$watchable2;\n\n var attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {\n 'title': title\n } : {}), {}, {\n 'class': extra.classes.join(' ')\n });\n\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n\n var styles = _objectSpread2({}, extra.styles);\n\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform: transform,\n startCentered: true,\n width: width,\n height: height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\nfunction makeLayersCounterAbstract(params) {\n var content = params.content,\n title = params.title,\n extra = params.extra;\n\n var attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {\n 'title': title\n } : {}), {}, {\n 'class': extra.classes.join(' ')\n });\n\n var styleString = joinStyles(extra.styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n}\n\nvar styles$1 = namespace.styles;\nfunction asFoundIcon(icon) {\n var width = icon[0];\n var height = icon[1];\n\n var _icon$slice = icon.slice(4),\n _icon$slice2 = _slicedToArray(_icon$slice, 1),\n vectorData = _icon$slice2[0];\n\n var element = null;\n\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n\n return {\n found: true,\n width: width,\n height: height,\n icon: element\n };\n}\nvar missingIconResolutionMixin = {\n found: false,\n width: 512,\n height: 512\n};\n\nfunction maybeNotifyMissing(iconName, prefix) {\n if (!PRODUCTION && !config.showMissingIcons && iconName) {\n console.error(\"Icon with name \\\"\".concat(iconName, \"\\\" and prefix \\\"\").concat(prefix, \"\\\" is missing.\"));\n }\n}\n\nfunction findIcon(iconName, prefix) {\n var givenPrefix = prefix;\n\n if (prefix === 'fa' && config.styleDefault !== null) {\n prefix = getDefaultUsablePrefix();\n }\n\n return new Promise(function (resolve, reject) {\n var val = {\n found: false,\n width: 512,\n height: 512,\n icon: callProvided('missingIconAbstract') || {}\n };\n\n if (givenPrefix === 'fa') {\n var shim = byOldName(iconName) || {};\n iconName = shim.iconName || iconName;\n prefix = shim.prefix || prefix;\n }\n\n if (iconName && prefix && styles$1[prefix] && styles$1[prefix][iconName]) {\n var icon = styles$1[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n\n maybeNotifyMissing(iconName, prefix);\n resolve(_objectSpread2(_objectSpread2({}, missingIconResolutionMixin), {}, {\n icon: config.showMissingIcons && iconName ? callProvided('missingIconAbstract') || {} : {}\n }));\n });\n}\n\nvar noop$1 = function noop() {};\n\nvar p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n};\nvar preamble = \"FA \\\"6.0.0\\\"\";\n\nvar begin = function begin(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return function () {\n return end(name);\n };\n};\n\nvar end = function end(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n};\n\nvar perf = {\n begin: begin,\n end: end\n};\n\nvar noop$2 = function noop() {};\n\nfunction isWatched(node) {\n var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n}\n\nfunction hasPrefixAndIcon(node) {\n var prefix = node.getAttribute ? node.getAttribute(DATA_PREFIX) : null;\n var icon = node.getAttribute ? node.getAttribute(DATA_ICON) : null;\n return prefix && icon;\n}\n\nfunction hasBeenReplaced(node) {\n return node && node.classList && node.classList.contains && node.classList.contains(config.replacementClass);\n}\n\nfunction getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n\n var mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n}\n\nfunction createElementNS(tag) {\n return DOCUMENT.createElementNS('http://www.w3.org/2000/svg', tag);\n}\n\nfunction createElement(tag) {\n return DOCUMENT.createElement(tag);\n}\n\nfunction convertSVG(abstractObj) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$ceFn = params.ceFn,\n ceFn = _params$ceFn === void 0 ? abstractObj.tag === 'svg' ? createElementNS : createElement : _params$ceFn;\n\n if (typeof abstractObj === 'string') {\n return DOCUMENT.createTextNode(abstractObj);\n }\n\n var tag = ceFn(abstractObj.tag);\n Object.keys(abstractObj.attributes || []).forEach(function (key) {\n tag.setAttribute(key, abstractObj.attributes[key]);\n });\n var children = abstractObj.children || [];\n children.forEach(function (child) {\n tag.appendChild(convertSVG(child, {\n ceFn: ceFn\n }));\n });\n return tag;\n}\n\nfunction nodeAsComment(node) {\n var comment = \" \".concat(node.outerHTML, \" \");\n /* BEGIN.ATTRIBUTION */\n\n comment = \"\".concat(comment, \"Font Awesome fontawesome.com \");\n /* END.ATTRIBUTION */\n\n return comment;\n}\n\nvar mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n\n if (node.parentNode) {\n mutation[1].forEach(function (abstract) {\n node.parentNode.insertBefore(convertSVG(abstract), node);\n });\n\n if (node.getAttribute(DATA_FA_I2SVG) === null && config.keepOriginalSource) {\n var comment = DOCUMENT.createComment(nodeAsComment(node));\n node.parentNode.replaceChild(comment, node);\n } else {\n node.remove();\n }\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var abstract = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n\n var forSvg = new RegExp(\"\".concat(config.familyPrefix, \"-.*\"));\n delete abstract[0].attributes.id;\n\n if (abstract[0].attributes.class) {\n var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n\n if (splitClasses.toNode.length === 0) {\n node.removeAttribute('class');\n } else {\n node.setAttribute('class', splitClasses.toNode.join(' '));\n }\n }\n\n var newInnerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n};\n\nfunction performOperationSync(op) {\n op();\n}\n\nfunction perform(mutations, callback) {\n var callbackFunction = typeof callback === 'function' ? callback : noop$2;\n\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n var frame = performOperationSync;\n\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n\n frame(function () {\n var mutator = getMutator();\n var mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n}\nvar disabled = false;\nfunction disableObservation() {\n disabled = true;\n}\nfunction enableObservation() {\n disabled = false;\n}\nvar mo = null;\nfunction observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n\n if (!config.observeMutations) {\n return;\n }\n\n var _options$treeCallback = options.treeCallback,\n treeCallback = _options$treeCallback === void 0 ? noop$2 : _options$treeCallback,\n _options$nodeCallback = options.nodeCallback,\n nodeCallback = _options$nodeCallback === void 0 ? noop$2 : _options$nodeCallback,\n _options$pseudoElemen = options.pseudoElementsCallback,\n pseudoElementsCallback = _options$pseudoElemen === void 0 ? noop$2 : _options$pseudoElemen,\n _options$observeMutat = options.observeMutationsRoot,\n observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;\n mo = new MUTATION_OBSERVER(function (objects) {\n if (disabled) return;\n var defaultPrefix = getDefaultUsablePrefix();\n toArray(objects).forEach(function (mutationRecord) {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n\n treeCallback(mutationRecord.target);\n }\n\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target.parentNode);\n }\n\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class' && hasPrefixAndIcon(mutationRecord.target)) {\n var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n prefix = _getCanonicalIcon.prefix,\n iconName = _getCanonicalIcon.iconName;\n\n mutationRecord.target.setAttribute(DATA_PREFIX, prefix || defaultPrefix);\n if (iconName) mutationRecord.target.setAttribute(DATA_ICON, iconName);\n } else if (hasBeenReplaced(mutationRecord.target)) {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n if (!IS_DOM) return;\n mo.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n}\nfunction disconnect() {\n if (!mo) return;\n mo.disconnect();\n}\n\nfunction styleParser (node) {\n var style = node.getAttribute('style');\n var val = [];\n\n if (style) {\n val = style.split(';').reduce(function (acc, style) {\n var styles = style.split(':');\n var prop = styles[0];\n var value = styles.slice(1);\n\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n\n return acc;\n }, {});\n }\n\n return val;\n}\n\nfunction classParser (node) {\n var existingPrefix = node.getAttribute('data-prefix');\n var existingIconName = node.getAttribute('data-icon');\n var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n var val = getCanonicalIcon(classArray(node));\n\n if (!val.prefix) {\n val.prefix = getDefaultUsablePrefix();\n }\n\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n\n if (val.iconName && val.prefix) {\n return val;\n }\n\n if (val.prefix && innerText.length > 0) {\n val.iconName = byLigature(val.prefix, node.innerText) || byUnicode(val.prefix, toHex(node.innerText));\n }\n\n return val;\n}\n\nfunction attributesParser (node) {\n var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n\n return acc;\n }, {});\n var title = node.getAttribute('title');\n var titleId = node.getAttribute('data-fa-title-id');\n\n if (config.autoA11y) {\n if (title) {\n extraAttributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n extraAttributes['aria-hidden'] = 'true';\n extraAttributes['focusable'] = 'false';\n }\n }\n\n return extraAttributes;\n}\n\nfunction blankMeta() {\n return {\n iconName: null,\n title: null,\n titleId: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n}\nfunction parseMeta(node) {\n var parser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n styleParser: true\n };\n\n var _classParser = classParser(node),\n iconName = _classParser.iconName,\n prefix = _classParser.prefix,\n extraClasses = _classParser.rest;\n\n var extraAttributes = attributesParser(node);\n var pluginMeta = chainHooks('parseNodeAttributes', {}, node);\n var extraStyles = parser.styleParser ? styleParser(node) : [];\n return _objectSpread2({\n iconName: iconName,\n title: node.getAttribute('title'),\n titleId: node.getAttribute('data-fa-title-id'),\n prefix: prefix,\n transform: meaninglessTransform,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n symbol: false,\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n }, pluginMeta);\n}\n\nvar styles$2 = namespace.styles;\n\nfunction generateMutation(node) {\n var nodeMeta = config.autoReplaceSvg === 'nest' ? parseMeta(node, {\n styleParser: false\n }) : parseMeta(node);\n\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return callProvided('generateLayersText', node, nodeMeta);\n } else {\n return callProvided('generateSvgReplacementMutation', node, nodeMeta);\n }\n}\n\nfunction onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return Promise.resolve();\n var htmlClassList = DOCUMENT.documentElement.classList;\n\n var hclAdd = function hclAdd(suffix) {\n return htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var hclRemove = function hclRemove(suffix) {\n return htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var prefixes = config.autoFetchSvg ? Object.keys(PREFIX_TO_STYLE) : Object.keys(styles$2);\n var prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(function (p) {\n return \".\".concat(p, \":not([\").concat(DATA_FA_I2SVG, \"])\");\n })).join(', ');\n\n if (prefixesDomQuery.length === 0) {\n return Promise.resolve();\n }\n\n var candidates = [];\n\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e) {// noop\n }\n\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return Promise.resolve();\n }\n\n var mark = perf.begin('onTree');\n var mutations = candidates.reduce(function (acc, node) {\n try {\n var mutation = generateMutation(node);\n\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e) {\n if (!PRODUCTION) {\n if (e.name === 'MissingIcon') {\n console.error(e);\n }\n }\n }\n\n return acc;\n }, []);\n return new Promise(function (resolve, reject) {\n Promise.all(mutations).then(function (resolvedMutations) {\n perform(resolvedMutations, function () {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(function (e) {\n mark();\n reject(e);\n });\n });\n}\n\nfunction onNode(node) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(function (mutation) {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n}\n\nfunction resolveIcons(next) {\n return function (maybeIconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n var mask = params.mask;\n\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n\n return next(iconDefinition, _objectSpread2(_objectSpread2({}, params), {}, {\n mask: mask\n }));\n };\n}\n\nvar render = function render(iconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$symbol = params.symbol,\n symbol = _params$symbol === void 0 ? false : _params$symbol,\n _params$mask = params.mask,\n mask = _params$mask === void 0 ? null : _params$mask,\n _params$maskId = params.maskId,\n maskId = _params$maskId === void 0 ? null : _params$maskId,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$titleId = params.titleId,\n titleId = _params$titleId === void 0 ? null : _params$titleId,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n if (!iconDefinition) return;\n var prefix = iconDefinition.prefix,\n iconName = iconDefinition.iconName,\n icon = iconDefinition.icon;\n return domVariants(_objectSpread2({\n type: 'icon'\n }, iconDefinition), function () {\n callHooks('beforeDOMElementCreation', {\n iconDefinition: iconDefinition,\n params: params\n });\n\n if (config.autoA11y) {\n if (title) {\n attributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n attributes['aria-hidden'] = 'true';\n attributes['focusable'] = 'false';\n }\n }\n\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix: prefix,\n iconName: iconName,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n symbol: symbol,\n title: title,\n maskId: maskId,\n titleId: titleId,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: classes\n }\n });\n });\n};\nvar ReplaceElements = {\n mixout: function mixout() {\n return {\n icon: resolveIcons(render)\n };\n },\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.treeCallback = onTree;\n accumulator.nodeCallback = onNode;\n return accumulator;\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.i2svg = function (params) {\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node,\n _params$callback = params.callback,\n callback = _params$callback === void 0 ? function () {} : _params$callback;\n return onTree(node, callback);\n };\n\n providers$$1.generateSvgReplacementMutation = function (node, nodeMeta) {\n var iconName = nodeMeta.iconName,\n title = nodeMeta.title,\n titleId = nodeMeta.titleId,\n prefix = nodeMeta.prefix,\n transform = nodeMeta.transform,\n symbol = nodeMeta.symbol,\n mask = nodeMeta.mask,\n maskId = nodeMeta.maskId,\n extra = nodeMeta.extra;\n return new Promise(function (resolve, reject) {\n Promise.all([findIcon(iconName, prefix), mask.iconName ? findIcon(mask.iconName, mask.prefix) : Promise.resolve({\n found: false,\n width: 512,\n height: 512,\n icon: {}\n })]).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n main = _ref2[0],\n mask = _ref2[1];\n\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main: main,\n mask: mask\n },\n prefix: prefix,\n iconName: iconName,\n transform: transform,\n symbol: symbol,\n maskId: maskId,\n title: title,\n titleId: titleId,\n extra: extra,\n watchable: true\n })]);\n }).catch(reject);\n });\n };\n\n providers$$1.generateAbstractIcon = function (_ref3) {\n var children = _ref3.children,\n attributes = _ref3.attributes,\n main = _ref3.main,\n transform = _ref3.transform,\n styles = _ref3.styles;\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var nextChild;\n\n if (transformIsMeaningful(transform)) {\n nextChild = callProvided('generateAbstractTransformGrouping', {\n main: main,\n transform: transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n }\n\n children.push(nextChild || main.icon);\n return {\n children: children,\n attributes: attributes\n };\n };\n }\n};\n\nvar Layers = {\n mixout: function mixout() {\n return {\n layer: function layer(assembler) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes;\n return domVariants({\n type: 'layer'\n }, function () {\n callHooks('beforeDOMElementCreation', {\n assembler: assembler,\n params: params\n });\n var children = [];\n assembler(function (args) {\n Array.isArray(args) ? args.map(function (a) {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.familyPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n },\n children: children\n }];\n });\n }\n };\n }\n};\n\nvar LayersCounter = {\n mixout: function mixout() {\n return {\n counter: function counter(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n return domVariants({\n type: 'counter',\n content: content\n }, function () {\n callHooks('beforeDOMElementCreation', {\n content: content,\n params: params\n });\n return makeLayersCounterAbstract({\n content: content.toString(),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n }\n });\n });\n }\n };\n }\n};\n\nvar LayersText = {\n mixout: function mixout() {\n return {\n text: function text(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n return domVariants({\n type: 'text',\n content: content\n }, function () {\n callHooks('beforeDOMElementCreation', {\n content: content,\n params: params\n });\n return makeLayersTextAbstract({\n content: content,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n }\n });\n });\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.generateLayersText = function (node, nodeMeta) {\n var title = nodeMeta.title,\n transform = nodeMeta.transform,\n extra = nodeMeta.extra;\n var width = null;\n var height = null;\n\n if (IS_IE) {\n var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n var boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n\n if (config.autoA11y && !title) {\n extra.attributes['aria-hidden'] = 'true';\n }\n\n return Promise.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width: width,\n height: height,\n transform: transform,\n title: title,\n extra: extra,\n watchable: true\n })]);\n };\n }\n};\n\nvar CLEAN_CONTENT_PATTERN = new RegExp(\"\\\"\", 'ug');\nvar SECONDARY_UNICODE_RANGE = [1105920, 1112319];\nfunction hexValueFromContent(content) {\n var cleaned = content.replace(CLEAN_CONTENT_PATTERN, '');\n var codePoint = codePointAt(cleaned, 0);\n var isPrependTen = codePoint >= SECONDARY_UNICODE_RANGE[0] && codePoint <= SECONDARY_UNICODE_RANGE[1];\n var isDoubled = cleaned.length === 2 ? cleaned[0] === cleaned[1] : false;\n return {\n value: isDoubled ? toHex(cleaned[0]) : toHex(cleaned),\n isSecondary: isPrependTen || isDoubled\n };\n}\n\nfunction replaceForPosition(node, position) {\n var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new Promise(function (resolve, reject) {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n\n var children = toArray(node.children);\n var alreadyProcessedPseudoElement = children.filter(function (c) {\n return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;\n })[0];\n var styles = WINDOW.getComputedStyle(node, position);\n var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);\n var fontWeight = styles.getPropertyValue('font-weight');\n var content = styles.getPropertyValue('content');\n\n if (alreadyProcessedPseudoElement && !fontFamily) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamily && content !== 'none' && content !== '') {\n var _content = styles.getPropertyValue('content');\n\n var prefix = ~['Solid', 'Regular', 'Light', 'Thin', 'Duotone', 'Brands', 'Kit'].indexOf(fontFamily[2]) ? STYLE_TO_PREFIX[fontFamily[2].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[fontWeight];\n\n var _hexValueFromContent = hexValueFromContent(_content),\n hexValue = _hexValueFromContent.value,\n isSecondary = _hexValueFromContent.isSecondary;\n\n var isV4 = fontFamily[0].startsWith('FontAwesome');\n var iconName = byUnicode(prefix, hexValue);\n var iconIdentifier = iconName;\n\n if (isV4) {\n var iconName4 = byOldUnicode(hexValue);\n\n if (iconName4.iconName && iconName4.prefix) {\n iconName = iconName4.iconName;\n prefix = iconName4.prefix;\n }\n } // Only convert the pseudo element in this ::before/::after position into an icon if we haven't\n // already done so with the same prefix and iconName\n\n\n if (iconName && !isSecondary && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n\n var meta = blankMeta();\n var extra = meta.extra;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(function (main) {\n var abstract = makeInlineSvgAbstract(_objectSpread2(_objectSpread2({}, meta), {}, {\n icons: {\n main: main,\n mask: emptyCanonicalIcon()\n },\n prefix: prefix,\n iconName: iconIdentifier,\n extra: extra,\n watchable: true\n }));\n var element = DOCUMENT.createElement('svg');\n\n if (position === '::before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n\n element.outerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n}\n\nfunction replace(node) {\n return Promise.all([replaceForPosition(node, '::before'), replaceForPosition(node, '::after')]);\n}\n\nfunction processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n}\n\nfunction searchPseudoElements(root) {\n if (!IS_DOM) return;\n return new Promise(function (resolve, reject) {\n var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n var end = perf.begin('searchPseudoElements');\n disableObservation();\n Promise.all(operations).then(function () {\n end();\n enableObservation();\n resolve();\n }).catch(function () {\n end();\n enableObservation();\n reject();\n });\n });\n}\n\nvar PseudoElements = {\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.pseudoElementsCallback = searchPseudoElements;\n return accumulator;\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.pseudoElements2svg = function (params) {\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node;\n\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n };\n }\n};\n\nvar _unwatched = false;\nvar MutationObserver$1 = {\n mixout: function mixout() {\n return {\n dom: {\n unwatch: function unwatch() {\n disableObservation();\n _unwatched = true;\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n bootstrap: function bootstrap() {\n observe(chainHooks('mutationObserverCallbacks', {}));\n },\n noAuto: function noAuto() {\n disconnect();\n },\n watch: function watch(params) {\n var observeMutationsRoot = params.observeMutationsRoot;\n\n if (_unwatched) {\n enableObservation();\n } else {\n observe(chainHooks('mutationObserverCallbacks', {\n observeMutationsRoot: observeMutationsRoot\n }));\n }\n }\n };\n }\n};\n\nvar parseTransformString = function parseTransformString(transformString) {\n var transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n var parts = n.toLowerCase().split('-');\n var first = parts[0];\n var rest = parts.slice(1).join('-');\n\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n\n rest = parseFloat(rest);\n\n if (isNaN(rest)) {\n return acc;\n }\n\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n\n case 'left':\n acc.x = acc.x - rest;\n break;\n\n case 'right':\n acc.x = acc.x + rest;\n break;\n\n case 'up':\n acc.y = acc.y - rest;\n break;\n\n case 'down':\n acc.y = acc.y + rest;\n break;\n\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n\n return acc;\n }, transform);\n};\nvar PowerTransforms = {\n mixout: function mixout() {\n return {\n parse: {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var transformString = node.getAttribute('data-fa-transform');\n\n if (transformString) {\n accumulator.transform = parseTransformString(transformString);\n }\n\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractTransformGrouping = function (_ref) {\n var main = _ref.main,\n transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n var operations = {\n outer: outer,\n inner: inner,\n path: path\n };\n return {\n tag: 'g',\n attributes: _objectSpread2({}, operations.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread2({}, operations.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread2(_objectSpread2({}, main.icon.attributes), operations.path)\n }]\n }]\n };\n };\n }\n};\n\nvar ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n};\n\nfunction fillBlack(abstract) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (abstract.attributes && (abstract.attributes.fill || force)) {\n abstract.attributes.fill = 'black';\n }\n\n return abstract;\n}\n\nfunction deGroup(abstract) {\n if (abstract.tag === 'g') {\n return abstract.children;\n } else {\n return [abstract];\n }\n}\n\nvar Masks = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var maskData = node.getAttribute('data-fa-mask');\n var mask = !maskData ? emptyCanonicalIcon() : getCanonicalIcon(maskData.split(' ').map(function (i) {\n return i.trim();\n }));\n\n if (!mask.prefix) {\n mask.prefix = getDefaultUsablePrefix();\n }\n\n accumulator.mask = mask;\n accumulator.maskId = node.getAttribute('data-fa-mask-id');\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractMask = function (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n mask = _ref.mask,\n explicitMaskId = _ref.maskId,\n transform = _ref.transform;\n var mainWidth = main.width,\n mainPath = main.icon;\n var maskWidth = mask.width,\n maskPath = mask.icon;\n var trans = transformForSvg({\n transform: transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n var maskRect = {\n tag: 'rect',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n fill: 'white'\n })\n };\n var maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n var maskInnerGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.inner),\n children: [fillBlack(_objectSpread2({\n tag: mainPath.tag,\n attributes: _objectSpread2(_objectSpread2({}, mainPath.attributes), trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.outer),\n children: [maskInnerGroup]\n };\n var maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n var clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n var maskTag = {\n tag: 'mask',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n }),\n children: [maskRect, maskOuterGroup]\n };\n var defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: _objectSpread2({\n fill: 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n mask: \"url(#\".concat(maskId, \")\")\n }, ALL_SPACE)\n });\n return {\n children: children,\n attributes: attributes\n };\n };\n }\n};\n\nvar MissingIconIndicator = {\n provides: function provides(providers) {\n var reduceMotion = false;\n\n if (WINDOW.matchMedia) {\n reduceMotion = WINDOW.matchMedia('(prefers-reduced-motion: reduce)').matches;\n }\n\n providers.missingIconAbstract = function () {\n var gChildren = [];\n var FILL = {\n fill: 'currentColor'\n };\n var ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n }; // Ring\n\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n })\n });\n\n var OPACITY_ANIMATE = _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'opacity'\n });\n\n var dot = {\n tag: 'circle',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: []\n };\n\n if (!reduceMotion) {\n dot.children.push({\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;1;1;0;1;'\n })\n });\n }\n\n gChildren.push(dot);\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n }),\n children: reduceMotion ? [] : [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;0;0;0;1;'\n })\n }]\n });\n\n if (!reduceMotion) {\n // Exclamation\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '0;0;1;1;0;0;'\n })\n }]\n });\n }\n\n return {\n tag: 'g',\n attributes: {\n 'class': 'missing'\n },\n children: gChildren\n };\n };\n }\n};\n\nvar SvgSymbols = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var symbolData = node.getAttribute('data-fa-symbol');\n var symbol = symbolData === null ? false : symbolData === '' ? true : symbolData;\n accumulator['symbol'] = symbol;\n return accumulator;\n }\n };\n }\n};\n\nvar plugins = [InjectCSS, ReplaceElements, Layers, LayersCounter, LayersText, PseudoElements, MutationObserver$1, PowerTransforms, Masks, MissingIconIndicator, SvgSymbols];\n\nregisterPlugins(plugins, {\n mixoutsTo: api\n});\nvar noAuto$1 = api.noAuto;\nvar config$1 = api.config;\nvar library$1 = api.library;\nvar dom$1 = api.dom;\nvar parse$1 = api.parse;\nvar findIconDefinition$1 = api.findIconDefinition;\nvar toHtml$1 = api.toHtml;\nvar icon = api.icon;\nvar layer = api.layer;\nvar text = api.text;\nvar counter = api.counter;\n\nexport { noAuto$1 as noAuto, config$1 as config, library$1 as library, dom$1 as dom, parse$1 as parse, findIconDefinition$1 as findIconDefinition, toHtml$1 as toHtml, icon, layer, text, counter, api };\n","\"use strict\";\n\nexports.__esModule = true;\nexports.applyTrailingSlashOption = void 0;\nconst endsWithSuffixes = (suffixes, input) => {\n for (const suffix of suffixes) {\n if (input.endsWith(suffix)) return true;\n }\n return false;\n};\nconst suffixes = [`.html`, `.json`, `.js`, `.map`, `.txt`, `.xml`, `.pdf`];\nconst applyTrailingSlashOption = (input, option = `always`) => {\n if (input === `/`) return input;\n const hasTrailingSlash = input.endsWith(`/`);\n if (endsWithSuffixes(suffixes, input)) {\n return input;\n }\n if (option === `always`) {\n return hasTrailingSlash ? input : `${input}/`;\n }\n if (option === `never`) {\n return hasTrailingSlash ? input.slice(0, -1) : input;\n }\n return input;\n};\nexports.applyTrailingSlashOption = applyTrailingSlashOption;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = exports.ScrollContext = void 0;\nvar _scrollHandler = require(\"./scroll-handler\");\nexports.ScrollContext = _scrollHandler.ScrollHandler;\nvar _useScrollRestoration = require(\"./use-scroll-restoration\");\nexports.useScrollRestoration = _useScrollRestoration.useScrollRestoration;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nexports.__esModule = true;\nexports.ScrollHandler = exports.ScrollContext = void 0;\nvar _assertThisInitialized2 = _interopRequireDefault(require(\"@babel/runtime/helpers/assertThisInitialized\"));\nvar _inheritsLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/inheritsLoose\"));\nvar React = _interopRequireWildcard(require(\"react\"));\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\nvar _sessionStorage = require(\"./session-storage\");\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); }\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; }\nvar ScrollContext = /*#__PURE__*/React.createContext(new _sessionStorage.SessionStorage());\nexports.ScrollContext = ScrollContext;\nScrollContext.displayName = \"GatsbyScrollContext\";\nvar ScrollHandler = /*#__PURE__*/function (_React$Component) {\n (0, _inheritsLoose2.default)(ScrollHandler, _React$Component);\n function ScrollHandler() {\n var _this;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\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 _this.scrollListener = function () {\n _this._latestKnownScrollY = window.scrollY;\n if (!_this._isTicking) {\n _this._isTicking = true;\n requestAnimationFrame(_this._saveScroll.bind((0, _assertThisInitialized2.default)(_this)));\n }\n };\n _this.windowScroll = function (position, prevProps) {\n if (_this.shouldUpdateScroll(prevProps, _this.props)) {\n window.scrollTo(0, position);\n }\n };\n _this.scrollToHash = function (hash, prevProps) {\n var node = document.getElementById(hash.substring(1));\n if (node && _this.shouldUpdateScroll(prevProps, _this.props)) {\n node.scrollIntoView();\n }\n };\n _this.shouldUpdateScroll = function (prevRouterProps, routerProps) {\n var shouldUpdateScroll = _this.props.shouldUpdateScroll;\n if (!shouldUpdateScroll) {\n return true;\n }\n\n // Hack to allow accessing this._stateStorage.\n return shouldUpdateScroll.call((0, _assertThisInitialized2.default)(_this), prevRouterProps, routerProps);\n };\n return _this;\n }\n var _proto = ScrollHandler.prototype;\n _proto._saveScroll = function _saveScroll() {\n var key = this.props.location.key || null;\n if (key) {\n this._stateStorage.save(this.props.location, key, this._latestKnownScrollY);\n }\n this._isTicking = false;\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 if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\n\n /** If a hash is present in the browser url as the component mounts (i.e. the user is navigating\n * from an external website) then scroll to the hash instead of any previously stored scroll\n * position. */\n if (hash) {\n this.scrollToHash(decodeURI(hash), undefined);\n } else if (scrollPosition) {\n this.windowScroll(scrollPosition, undefined);\n }\n };\n _proto.componentWillUnmount = function componentWillUnmount() {\n window.removeEventListener(\"scroll\", this.scrollListener);\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 if (key) {\n scrollPosition = this._stateStorage.read(this.props.location, key);\n }\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 if (hash) {\n this.scrollToHash(decodeURI(hash), prevProps);\n } else {\n this.windowScroll(scrollPosition, prevProps);\n }\n };\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(ScrollContext.Provider, {\n value: this._stateStorage\n }, this.props.children);\n };\n return ScrollHandler;\n}(React.Component);\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\";\nvar SessionStorage = /*#__PURE__*/function () {\n function SessionStorage() {}\n var _proto = SessionStorage.prototype;\n _proto.read = function read(location, key) {\n var stateKey = this.getStateKey(location, key);\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 if (window && window[GATSBY_ROUTER_SCROLL_STATE] && window[GATSBY_ROUTER_SCROLL_STATE][stateKey]) {\n return window[GATSBY_ROUTER_SCROLL_STATE][stateKey];\n }\n return 0;\n }\n };\n _proto.save = function save(location, key, value) {\n var stateKey = this.getStateKey(location, key);\n var storedValue = JSON.stringify(value);\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 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 _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 return SessionStorage;\n}();\nexports.SessionStorage = SessionStorage;","\"use strict\";\n\nexports.__esModule = true;\nexports.useScrollRestoration = useScrollRestoration;\nvar _scrollHandler = require(\"./scroll-handler\");\nvar _react = require(\"react\");\nvar _reachRouter = require(\"@gatsbyjs/reach-router\");\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}","\"use strict\";\n\nexports.__esModule = true;\nexports.onInitialClientRender = void 0;\nvar _gatsbyScript = require(\"gatsby-script\");\nvar _injectPartytownSnippet = require(\"./utils/inject-partytown-snippet\");\n// Makes sure off-main-thread scripts are loaded in `gatsby develop`\nconst onInitialClientRender = () => {\n if (process.env.NODE_ENV !== `development`) {\n return;\n }\n (0, _injectPartytownSnippet.injectPartytownSnippet)(_gatsbyScript.collectedScriptsByPage.get(window.location.pathname));\n\n // Clear scripts after we've used them to avoid leaky behavior\n _gatsbyScript.collectedScriptsByPage.delete(window.location.pathname);\n};\n\n// Client-side navigation (CSR, e.g. Gatsby Link navigations) are broken upstream in Partytown.\n// We need an official API from Partytown for handling re-configuration and on-demand script loading.\n// Until then, `off-main-thread` scripts load only on server-side navigation (SSR).\n// See https://github.com/BuilderIO/partytown/issues/74 for more details.\nexports.onInitialClientRender = onInitialClientRender;\n//# sourceMappingURL=gatsby-browser.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.getForwards = getForwards;\nfunction getForwards(collectedScripts) {\n return collectedScripts === null || collectedScripts === void 0 ? void 0 : collectedScripts.flatMap(script => (script === null || script === void 0 ? void 0 : script.forward) || []);\n}\n//# sourceMappingURL=get-forwards.js.map","\"use strict\";\n\nexports.__esModule = true;\nexports.injectPartytownSnippet = injectPartytownSnippet;\nvar _integration = require(\"@builder.io/partytown/integration\");\nvar _getForwards = require(\"./get-forwards\");\n// Adapted from https://github.com/BuilderIO/partytown/blob/main/src/react/snippet.tsx to only include CSR logic\nfunction injectPartytownSnippet(collectedScripts) {\n if (!collectedScripts.length) {\n return;\n }\n const existingSnippet = document.querySelector(`script[data-partytown]`);\n const existingSandbox = document.querySelector(`iframe[src*=\"~partytown/partytown-sandbox-sw\"]`);\n if (existingSnippet) {\n existingSnippet.remove();\n }\n if (existingSandbox) {\n existingSandbox.remove();\n }\n const forwards = (0, _getForwards.getForwards)(collectedScripts);\n const snippet = document.createElement(`script`);\n snippet.dataset.partytown = ``;\n snippet.innerHTML = (0, _integration.partytownSnippet)({\n forward: forwards\n });\n document.head.appendChild(snippet);\n}\n//# sourceMappingURL=inject-partytown-snippet.js.map","exports.components = {\n \"component---src-pages-404-js\": () => import(\"./../../../src/pages/404.js\" /* webpackChunkName: \"component---src-pages-404-js\" */),\n \"component---src-pages-app-js\": () => import(\"./../../../src/pages/app.js\" /* webpackChunkName: \"component---src-pages-app-js\" */),\n \"component---src-pages-cookies-policy-js\": () => import(\"./../../../src/pages/Cookies-Policy.js\" /* webpackChunkName: \"component---src-pages-cookies-policy-js\" */),\n \"component---src-pages-datenschutz-js\": () => import(\"./../../../src/pages/Datenschutz.js\" /* webpackChunkName: \"component---src-pages-datenschutz-js\" */),\n \"component---src-pages-default-page-js\": () => import(\"./../../../src/pages/defaultPage.js\" /* webpackChunkName: \"component---src-pages-default-page-js\" */),\n \"component---src-pages-dienstleistungen-commission-hub-index-js\": () => import(\"./../../../src/pages/Dienstleistungen/Commission-Hub/index.js\" /* webpackChunkName: \"component---src-pages-dienstleistungen-commission-hub-index-js\" */),\n \"component---src-pages-dienstleistungen-commission-hub-kontakt-js\": () => import(\"./../../../src/pages/Dienstleistungen/Commission-Hub/Kontakt.js\" /* webpackChunkName: \"component---src-pages-dienstleistungen-commission-hub-kontakt-js\" */),\n \"component---src-pages-dienstleistungen-index-js\": () => import(\"./../../../src/pages/Dienstleistungen/index.js\" /* webpackChunkName: \"component---src-pages-dienstleistungen-index-js\" */),\n \"component---src-pages-dienstleistungen-keys-js\": () => import(\"./../../../src/pages/Dienstleistungen/Keys.js\" /* webpackChunkName: \"component---src-pages-dienstleistungen-keys-js\" */),\n \"component---src-pages-impressum-js\": () => import(\"./../../../src/pages/Impressum.js\" /* webpackChunkName: \"component---src-pages-impressum-js\" */),\n \"component---src-pages-index-js\": () => import(\"./../../../src/pages/index.js\" /* webpackChunkName: \"component---src-pages-index-js\" */),\n \"component---src-pages-informationen-faq-js\": () => import(\"./../../../src/pages/Informationen/FAQ.js\" /* webpackChunkName: \"component---src-pages-informationen-faq-js\" */),\n \"component---src-pages-kontakt-js\": () => import(\"./../../../src/pages/Kontakt.js\" /* webpackChunkName: \"component---src-pages-kontakt-js\" */),\n \"component---src-pages-mitglieder-js\": () => import(\"./../../../src/pages/Mitglieder.js\" /* webpackChunkName: \"component---src-pages-mitglieder-js\" */),\n \"component---src-pages-partnerschaften-js\": () => import(\"./../../../src/pages/Partnerschaften.js\" /* webpackChunkName: \"component---src-pages-partnerschaften-js\" */),\n \"component---src-templates-commission-category-js\": () => import(\"./../../../src/templates/CommissionCategory.js\" /* webpackChunkName: \"component---src-templates-commission-category-js\" */),\n \"component---src-templates-mitglieder-template-js\": () => import(\"./../../../src/templates/MitgliederTemplate.js\" /* webpackChunkName: \"component---src-templates-mitglieder-template-js\" */)\n}\n\n","module.exports = [{\n plugin: require('../node_modules/gatsby-plugin-fontawesome-css/gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby-plugin-gdpr-cookies/gatsby-browser.js'),\n options: {\"plugins\":[],\"googleAnalytics\":{\"trackingId\":\"G-3WM4C9S4P0\",\"cookieName\":\"gatsby-gdpr-google-analytics\",\"anonymize\":true,\"allowAdFeatures\":false},\"environments\":[\"production\",\"development\"]},\n },{\n plugin: require('../node_modules/gatsby-plugin-scroll-reveal-with-new-react/gatsby-browser.js'),\n options: {\"plugins\":[],\"threshold\":0.1,\"once\":true,\"disable\":false,\"selector\":\"[data-sal]\",\"animateClassName\":\"sal-animate\",\"disabledClassName\":\"sal-disabled\",\"rootMargin\":\"0% 70%\",\"enterEventName\":\"sal:in\",\"exitEventName\":\"sal:out\"},\n },{\n plugin: require('../node_modules/gatsby-plugin-manifest/gatsby-browser.js'),\n options: {\"plugins\":[],\"name\":\"Safe-Spark Webseite\",\"short_name\":\"Safe-Spark\",\"start_url\":\"/\",\"background_color\":\"#111827\",\"display\":\"minimal-ui\",\"icon\":\"src/assets/images/Favicon/Favicon.png\",\"legacy\":true,\"theme_color_in_head\":true,\"cache_busting_mode\":\"query\",\"crossOrigin\":\"anonymous\",\"include_favicon\":true,\"cacheDigest\":\"91168e066765e88746bcb8f31e0f466c\"},\n },{\n plugin: require('../gatsby-browser.js'),\n options: {\"plugins\":[]},\n },{\n plugin: require('../node_modules/gatsby/dist/internal-plugins/partytown/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","exports.createContentDigest = () => ``\n","import mitt from \"mitt\"\n\nconst emitter = mitt()\nexport default emitter\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","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\"\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 let newRawPathname = rawPathname\n const queryIndex = rawPathname.indexOf(`?`)\n\n if (queryIndex !== -1) {\n const [path, qs] = rawPathname.split(`?`)\n newRawPathname = `${path}?${encodeURIComponent(qs)}`\n }\n\n const pathname = decodeURIComponent(newRawPathname)\n\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","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\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.bind();\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 return _construct.apply(null, arguments);\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 try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\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 _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\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 return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}","import React from \"react\"\n\nexport const ServerSliceRenderer = ({ sliceId, children }) => {\n const contents = [\n React.createElement(`slice-start`, {\n id: `${sliceId}-1`,\n }),\n React.createElement(`slice-end`, {\n id: `${sliceId}-1`,\n }),\n ]\n\n if (children) {\n // if children exist, we split the slice into a before and after piece\n // see renderSlices in render-html\n contents.push(children)\n contents.push(\n React.createElement(`slice-start`, {\n id: `${sliceId}-2`,\n }),\n React.createElement(`slice-end`, {\n id: `${sliceId}-2`,\n })\n )\n }\n\n return contents\n}\n","import React, { useContext } from \"react\"\nimport { createContentDigest } from \"gatsby-core-utils/create-content-digest\"\nimport { SlicesMapContext, SlicesPropsContext } from \"./context\"\nimport { ServerSliceRenderer } from \"./server-slice-renderer\"\n\nconst getSliceId = (sliceName, sliceProps) => {\n if (!Object.keys(sliceProps).length) {\n return sliceName\n }\n\n const propsString = createContentDigest(sliceProps)\n return `${sliceName}-${propsString}`\n}\n\nexport const ServerSlice = ({\n sliceName,\n allowEmpty,\n children,\n ...sliceProps\n}) => {\n const slicesMap = useContext(SlicesMapContext)\n const slicesProps = useContext(SlicesPropsContext)\n const concreteSliceName = slicesMap[sliceName]\n\n if (!concreteSliceName) {\n if (allowEmpty) {\n return null\n } else {\n throw new Error(\n `Slice \"${concreteSliceName}\" for \"${sliceName}\" slot not found`\n )\n }\n }\n\n const sliceId = getSliceId(concreteSliceName, sliceProps)\n\n // set props on context object for static-entry to return\n let sliceUsage = slicesProps[sliceId]\n if (!sliceUsage) {\n slicesProps[sliceId] = sliceUsage = {\n props: sliceProps,\n sliceName: concreteSliceName,\n hasChildren: !!children,\n }\n } else {\n if (children) {\n sliceUsage.hasChildren = true\n }\n }\n\n return {children}\n}\n","import React, { useContext } from \"react\"\nimport { SlicesMapContext, SlicesResultsContext } from \"./context\"\n\nexport const InlineSlice = ({\n sliceName,\n allowEmpty,\n children,\n ...sliceProps\n}) => {\n const slicesMap = useContext(SlicesMapContext)\n const slicesResultsMap = useContext(SlicesResultsContext)\n const concreteSliceName = slicesMap[sliceName]\n const slice = slicesResultsMap.get(concreteSliceName)\n\n if (!slice) {\n if (allowEmpty) {\n return null\n } else {\n throw new Error(\n `Slice \"${concreteSliceName}\" for \"${sliceName}\" slot not found`\n )\n }\n }\n\n return (\n \n {children}\n \n )\n}\n","\"use client\"\n\nimport React, { useContext } from \"react\"\nimport { ServerSlice } from \"./slice/server-slice\"\nimport { InlineSlice } from \"./slice/inline-slice\"\nimport { SlicesContext } from \"./slice/context\"\n\nexport function Slice(props) {\n if (process.env.GATSBY_SLICES) {\n // we use sliceName internally, so remap alias to sliceName\n const internalProps = {\n ...props,\n sliceName: props.alias,\n }\n delete internalProps.alias\n delete internalProps.__renderedByLocation\n\n const slicesContext = useContext(SlicesContext)\n\n // validate props\n const propErrors = validateSliceProps(props)\n if (Object.keys(propErrors).length) {\n throw new SlicePropsError(\n slicesContext.renderEnvironment === `browser`,\n internalProps.sliceName,\n propErrors,\n props.__renderedByLocation\n )\n }\n\n if (slicesContext.renderEnvironment === `server`) {\n return \n } else if (slicesContext.renderEnvironment === `browser`) {\n // in the browser, we'll just render the component as is\n return \n } else if (\n slicesContext.renderEnvironment === `engines` ||\n slicesContext.renderEnvironment === `dev-ssr`\n ) {\n // if we're in SSR, we'll just render the component as is\n return \n } else if (slicesContext.renderEnvironment === `slices`) {\n // we are not yet supporting nested slices\n\n let additionalContextMessage = ``\n\n // just in case generating additional contextual information fails, we still want the base message to show\n // and not show another cryptic error message\n try {\n additionalContextMessage = `\\n\\nSlice component \"${slicesContext.sliceRoot.name}\" (${slicesContext.sliceRoot.componentPath}) tried to render `\n } catch {\n // don't need to handle it, we will just skip the additional context message if we fail to generate it\n }\n\n throw new Error(\n `Nested slices are not supported.${additionalContextMessage}\\n\\nSee https://gatsbyjs.com/docs/reference/built-in-components/gatsby-slice#nested-slices`\n )\n } else {\n throw new Error(\n `Slice context \"${slicesContext.renderEnvironment}\" is not supported.`\n )\n }\n } else {\n throw new Error(`Slices are disabled.`)\n }\n}\n\nclass SlicePropsError extends Error {\n constructor(inBrowser, sliceName, propErrors, renderedByLocation) {\n const errors = Object.entries(propErrors)\n .map(\n ([key, value]) =>\n `not serializable \"${value}\" type passed to \"${key}\" prop`\n )\n .join(`, `)\n\n const name = `SlicePropsError`\n let stack = ``\n let message = ``\n\n if (inBrowser) {\n // They're just (kinda) kidding, I promise... You can still work here <3\n // https://www.gatsbyjs.com/careers/\n const fullStack =\n React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactDebugCurrentFrame.getCurrentStack()\n\n // remove the first line of the stack trace\n const stackLines = fullStack.trim().split(`\\n`).slice(1)\n stackLines[0] = stackLines[0].trim()\n stack = `\\n` + stackLines.join(`\\n`)\n\n message = `Slice \"${sliceName}\" was passed props that are not serializable (${errors}).`\n } else {\n // we can't really grab any extra info outside of the browser, so just print what we can\n message = `${name}: Slice \"${sliceName}\" was passed props that are not serializable (${errors}).`\n const stackLines = new Error().stack.trim().split(`\\n`).slice(2)\n stack = `${message}\\n${stackLines.join(`\\n`)}`\n }\n\n super(message)\n this.name = name\n if (stack) {\n this.stack = stack\n } else {\n Error.captureStackTrace(this, SlicePropsError)\n }\n\n if (renderedByLocation) {\n this.forcedLocation = { ...renderedByLocation, functionName: `Slice` }\n }\n }\n}\n\nconst validateSliceProps = (\n props,\n errors = {},\n seenObjects = [],\n path = null\n) => {\n // recursively validate all props\n for (const [name, value] of Object.entries(props)) {\n if (\n value === undefined ||\n value === null ||\n (!path && name === `children`)\n ) {\n continue\n }\n\n const propPath = path ? `${path}.${name}` : name\n\n if (typeof value === `function`) {\n errors[propPath] = typeof value\n } else if (typeof value === `object` && seenObjects.indexOf(value) <= 0) {\n seenObjects.push(value)\n validateSliceProps(value, errors, seenObjects, propPath)\n }\n }\n\n return errors\n}\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 return self;\n}","import loader from \"./loader\"\n\nconst prefetchPathname = loader.enqueue\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 { default as PageRenderer } from \"./public-page-renderer\"\nexport { useScrollRestoration } from \"gatsby-react-router-scroll\"\nexport {\n Link,\n withPrefix,\n withAssetPrefix,\n navigate,\n parsePath,\n} from \"gatsby-link\"\n\nexport { graphql, prefetchPathname }\nexport { StaticQuery, StaticQueryContext, useStaticQuery } from \"./static-query\"\nexport { Slice } from \"./slice\"\nexport * from \"gatsby-script\"\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 { createFromReadableStream } from \"react-server-dom-webpack\"\nimport 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\n/**\n * Utility to check the path that goes into doFetch for e.g. potential malicious intentions.\n * It checks for \"//\" because with this you could do a fetch request to a different domain.\n */\nconst shouldAbortFetch = rawPath => rawPath.startsWith(`//`)\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\n// Regex that matches common search crawlers\nconst BOT_REGEX = /bot|crawler|spider|crawling/i\n\nconst toPageResources = (pageData, component = null, head) => {\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 slicesMap: pageData.slicesMap ?? {},\n }\n\n return {\n component,\n head,\n json: pageData.result,\n page,\n }\n}\n\nfunction waitForResponse(response) {\n return new Promise(resolve => {\n try {\n const result = response.readRoot()\n resolve(result)\n } catch (err) {\n if (\n Object.hasOwnProperty.call(err, `_response`) &&\n Object.hasOwnProperty.call(err, `_status`)\n ) {\n setTimeout(() => {\n waitForResponse(response).then(resolve)\n }, 200)\n } else {\n throw err\n }\n }\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.partialHydrationDb = new Map()\n this.slicesDataDb = new Map()\n this.sliceInflightDb = new Map()\n this.slicesDb = 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 fetchPartialHydrationJson(loadObj) {\n const { pagePath, retries = 0 } = loadObj\n const url = createPageDataUrl(pagePath).replace(`.json`, `-rsc.json`)\n return this.memoizedGet(url).then(req => {\n const { status, responseText } = req\n\n // Handle 200\n if (status === 200) {\n try {\n return Object.assign(loadObj, {\n status: PageResourceStatus.Success,\n payload: responseText,\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.fetchPartialHydrationJson(\n Object.assign(loadObj, { pagePath: `/404.html`, notFound: true })\n )\n }\n\n // handle 500 response (Unrecoverable)\n if (status === 500) {\n return this.fetchPartialHydrationJson(\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.fetchPartialHydrationJson(\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 loadPartialHydrationJson(rawPath) {\n const pagePath = findPath(rawPath)\n if (this.partialHydrationDb.has(pagePath)) {\n const pageData = this.partialHydrationDb.get(pagePath)\n if (process.env.BUILD_STAGE !== `develop` || !pageData.stale) {\n return Promise.resolve(pageData)\n }\n }\n\n return this.fetchPartialHydrationJson({ pagePath }).then(pageData => {\n this.partialHydrationDb.set(pagePath, pageData)\n\n return pageData\n })\n }\n\n loadSliceDataJson(sliceName) {\n if (this.slicesDataDb.has(sliceName)) {\n const jsonPayload = this.slicesDataDb.get(sliceName)\n return Promise.resolve({ sliceName, jsonPayload })\n }\n\n const url = `${__PATH_PREFIX__}/slice-data/${sliceName}.json`\n return doFetch(url, `GET`).then(res => {\n const jsonPayload = JSON.parse(res.responseText)\n\n this.slicesDataDb.set(sliceName, jsonPayload)\n return { sliceName, jsonPayload }\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 Promise.resolve({\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 loadDataPromises = [\n this.loadAppData(),\n this.loadPageDataJson(pagePath),\n ]\n\n if (global.hasPartialHydration) {\n loadDataPromises.push(this.loadPartialHydrationJson(pagePath))\n }\n\n const inFlightPromise = Promise.all(loadDataPromises).then(allData => {\n const [appDataResponse, pageDataResponse, rscDataResponse] = allData\n\n if (\n pageDataResponse.status === PageResourceStatus.Error ||\n rscDataResponse?.status === PageResourceStatus.Error\n ) {\n return {\n status: PageResourceStatus.Error,\n }\n }\n\n let pageData = pageDataResponse.payload\n\n const {\n componentChunkName,\n staticQueryHashes: pageStaticQueryHashes = [],\n slicesMap = {},\n } = pageData\n\n const finalResult = {}\n\n const dedupedSliceNames = Array.from(new Set(Object.values(slicesMap)))\n\n const loadSlice = slice => {\n if (this.slicesDb.has(slice.name)) {\n return this.slicesDb.get(slice.name)\n } else if (this.sliceInflightDb.has(slice.name)) {\n return this.sliceInflightDb.get(slice.name)\n }\n\n const inFlight = this.loadComponent(slice.componentChunkName).then(\n component => {\n return {\n component: preferDefault(component),\n sliceContext: slice.result.sliceContext,\n data: slice.result.data,\n }\n }\n )\n\n this.sliceInflightDb.set(slice.name, inFlight)\n inFlight.then(results => {\n this.slicesDb.set(slice.name, results)\n this.sliceInflightDb.delete(slice.name)\n })\n\n return inFlight\n }\n\n return Promise.all(\n dedupedSliceNames.map(sliceName => this.loadSliceDataJson(sliceName))\n ).then(slicesData => {\n const slices = []\n const dedupedStaticQueryHashes = [...pageStaticQueryHashes]\n\n for (const { jsonPayload, sliceName } of Object.values(slicesData)) {\n slices.push({ name: sliceName, ...jsonPayload })\n for (const staticQueryHash of jsonPayload.staticQueryHashes) {\n if (!dedupedStaticQueryHashes.includes(staticQueryHash)) {\n dedupedStaticQueryHashes.push(staticQueryHash)\n }\n }\n }\n\n const loadChunkPromises = [\n Promise.all(slices.map(loadSlice)),\n this.loadComponent(componentChunkName, `head`),\n ]\n\n if (!global.hasPartialHydration) {\n loadChunkPromises.push(this.loadComponent(componentChunkName))\n }\n\n // In develop we have separate chunks for template and Head components\n // to enable HMR (fast refresh requires single exports).\n // In production we have shared chunk with both exports. Double loadComponent here\n // will be deduped by webpack runtime resulting in single request and single module\n // being loaded for both `component` and `head`.\n // get list of components to get\n const componentChunkPromises = Promise.all(loadChunkPromises).then(\n components => {\n const [sliceComponents, headComponent, pageComponent] = components\n\n finalResult.createdAt = new Date()\n\n for (const sliceComponent of sliceComponents) {\n if (!sliceComponent || sliceComponent instanceof Error) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = sliceComponent\n }\n }\n\n if (\n !global.hasPartialHydration &&\n (!pageComponent || pageComponent instanceof Error)\n ) {\n finalResult.status = PageResourceStatus.Error\n finalResult.error = pageComponent\n }\n\n let pageResources\n\n if (finalResult.status !== PageResourceStatus.Error) {\n finalResult.status = PageResourceStatus.Success\n if (\n pageDataResponse.notFound === true ||\n rscDataResponse?.notFound === true\n ) {\n finalResult.notFound = true\n }\n pageData = Object.assign(pageData, {\n webpackCompilationHash: appDataResponse\n ? appDataResponse.webpackCompilationHash\n : ``,\n })\n\n if (typeof rscDataResponse?.payload === `string`) {\n pageResources = toPageResources(pageData, null, headComponent)\n\n pageResources.partialHydration = rscDataResponse.payload\n\n const readableStream = new ReadableStream({\n start(controller) {\n const te = new TextEncoder()\n controller.enqueue(te.encode(rscDataResponse.payload))\n },\n pull(controller) {\n // close on next read when queue is empty\n controller.close()\n },\n cancel() {},\n })\n\n return waitForResponse(\n createFromReadableStream(readableStream)\n ).then(result => {\n pageResources.partialHydration = result\n\n return pageResources\n })\n } else {\n pageResources = toPageResources(\n pageData,\n pageComponent,\n headComponent\n )\n }\n }\n\n // undefined if final result is an error\n return pageResources\n }\n )\n\n // get list of static queries to get\n const staticQueryBatchPromise = Promise.all(\n dedupedStaticQueryHashes.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([componentChunkPromises, 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\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 // Don't prefetch if this is a crawler bot\n if (navigator.userAgent && BOT_REGEX.test(navigator.userAgent)) {\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\n if (global.hasPartialHydration) {\n return Promise.all([\n 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 prefetchHelper(pageDataUrl.replace(`.json`, `-rsc.json`), {\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.loadPartialHydrationJson(pagePath)\n ),\n ])\n } else {\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\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, exportType = `components`) => {\n if (!global.hasPartialHydration) {\n exportType = `components`\n }\n\n if (!asyncRequires[exportType][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[exportType][chunkName]()\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 if (shouldAbortFetch(rawPath)) {\n return data\n }\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 loadPartialHydrationJson(rawPath) {\n return super.loadPartialHydrationJson(rawPath).then(data => {\n if (data.notFound) {\n if (shouldAbortFetch(rawPath)) {\n return data\n }\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\nexport function getSliceResults() {\n if (instance) {\n return instance.slicesDb\n } else {\n return {}\n }\n}\n","import { useEffect } from \"react\"\n\n/*\n * Calls callback in an effect and renders children\n */\nexport function FireCallbackInEffect({ children, callback }) {\n useEffect(() => {\n callback()\n })\n\n return children\n}\n","export const VALID_NODE_NAMES = [\n `link`,\n `meta`,\n `style`,\n `title`,\n `base`,\n `noscript`,\n `script`,\n `html`,\n `body`,\n]\n","import { VALID_NODE_NAMES } from \"./constants\"\n\n/**\n * Filter the props coming from a page down to just the ones that are relevant for head.\n * This e.g. filters out properties that are undefined during SSR.\n */\nexport function filterHeadProps(input) {\n return {\n location: {\n pathname: input.location.pathname,\n },\n params: input.params,\n data: input.data || {},\n serverData: input.serverData,\n pageContext: input.pageContext,\n }\n}\n\n/**\n * Throw error if Head export is not a valid function\n */\nexport function headExportValidator(head) {\n if (typeof head !== `function`)\n throw new Error(\n `Expected \"Head\" export to be a function got \"${typeof head}\".`\n )\n}\n\n/**\n * Warn once for same messsage\n */\nlet warnOnce = _ => {}\nif (process.env.NODE_ENV !== `production`) {\n const warnings = new Set()\n warnOnce = msg => {\n if (!warnings.has(msg)) {\n console.warn(msg)\n }\n warnings.add(msg)\n }\n}\n\n/**\n * Warn for invalid tags in Head which may have been directly added or introduced by `wrapRootElement`\n * @param {string} tagName\n */\nexport function warnForInvalidTag(tagName) {\n if (process.env.NODE_ENV !== `production`) {\n const warning = createWarningForInvalidTag(tagName)\n warnOnce(warning)\n }\n}\n\nfunction createWarningForInvalidTag(tagName) {\n return `<${tagName}> is not a valid head element. Please use one of the following: ${VALID_NODE_NAMES.join(\n `, `\n )}.\\n\\nAlso make sure that wrapRootElement in gatsby-ssr/gatsby-browser doesn't contain UI elements: https://gatsby.dev/invalid-head-elements`\n}\n\n/**\n * When a `nonce` is present on an element, browsers such as Chrome and Firefox strip it out of the\n * actual HTML attributes for security reasons *when the element is added to the document*. Thus,\n * given two equivalent elements that have nonces, `Element,isEqualNode()` will return false if one\n * of those elements gets added to the document. Although the `element.nonce` property will be the\n * same for both elements, the one that was added to the document will return an empty string for\n * its nonce HTML attribute value.\n *\n * This custom `isEqualNode()` function therefore removes the nonce value from the `newTag` before\n * comparing it to `oldTag`, restoring it afterwards.\n *\n * For more information, see:\n * https://bugs.chromium.org/p/chromium/issues/detail?id=1211471#c12\n */\nexport function isEqualNode(oldTag, newTag) {\n if (oldTag instanceof HTMLElement && newTag instanceof HTMLElement) {\n const nonce = newTag.getAttribute(`nonce`)\n // Only strip the nonce if `oldTag` has had it stripped. An element's nonce attribute will not\n // be stripped if there is no content security policy response header that includes a nonce.\n if (nonce && !oldTag.getAttribute(`nonce`)) {\n const cloneTag = newTag.cloneNode(true)\n cloneTag.setAttribute(`nonce`, ``)\n cloneTag.nonce = nonce\n return nonce === oldTag.nonce && oldTag.isEqualNode(cloneTag)\n }\n }\n\n return oldTag.isEqualNode(newTag)\n}\n\nexport function diffNodes({ oldNodes, newNodes, onStale, onNew }) {\n for (const existingHeadElement of oldNodes) {\n const indexInNewNodes = newNodes.findIndex(e =>\n isEqualNode(e, existingHeadElement)\n )\n\n if (indexInNewNodes === -1) {\n onStale(existingHeadElement)\n } else {\n // this node is re-created as-is, so we keep old node, and remove it from list of new nodes (as we handled it already here)\n newNodes.splice(indexInNewNodes, 1)\n }\n }\n\n // remaing new nodes didn't have matching old node, so need to be added\n for (const newNode of newNodes) {\n onNew(newNode)\n }\n}\n\nexport function getValidHeadNodesAndAttributes(\n rootNode,\n htmlAndBodyAttributes = {\n html: {},\n body: {},\n }\n) {\n const seenIds = new Map()\n const validHeadNodes = []\n\n // Filter out non-element nodes before looping since we don't care about them\n for (const node of rootNode.childNodes) {\n const nodeName = node.nodeName.toLowerCase()\n const id = node.attributes?.id?.value\n\n if (!isElementType(node)) continue\n\n if (isValidNodeName(nodeName)) {\n // and tags are treated differently, in that we don't render them, we only extract the attributes and apply them separetely\n if (nodeName === `html` || nodeName === `body`) {\n for (const attribute of node.attributes) {\n const isStyleAttribute = attribute.name === `style`\n\n // Merge attributes for same nodeName from previous loop iteration\n htmlAndBodyAttributes[nodeName] = {\n ...htmlAndBodyAttributes[nodeName],\n }\n\n if (!isStyleAttribute) {\n htmlAndBodyAttributes[nodeName][attribute.name] = attribute.value\n }\n\n // If there is already a style attribute, we need to merge them as otherwise the last one will \"win\"\n if (isStyleAttribute) {\n htmlAndBodyAttributes[nodeName].style = `${\n htmlAndBodyAttributes[nodeName]?.style\n ? htmlAndBodyAttributes[nodeName].style\n : ``\n }${attribute.value} `\n }\n }\n } else {\n let clonedNode = node.cloneNode(true)\n clonedNode.setAttribute(`data-gatsby-head`, true)\n\n // // This is hack to make script tags work\n if (clonedNode.nodeName.toLowerCase() === `script`) {\n clonedNode = massageScript(clonedNode)\n }\n // Duplicate ids are not allowed in the head, so we need to dedupe them\n if (id) {\n if (!seenIds.has(id)) {\n validHeadNodes.push(clonedNode)\n seenIds.set(id, validHeadNodes.length - 1)\n } else {\n const indexOfPreviouslyInsertedNode = seenIds.get(id)\n validHeadNodes[\n indexOfPreviouslyInsertedNode\n ].parentNode?.removeChild(\n validHeadNodes[indexOfPreviouslyInsertedNode]\n )\n validHeadNodes[indexOfPreviouslyInsertedNode] = clonedNode\n }\n } else {\n validHeadNodes.push(clonedNode)\n }\n }\n } else {\n warnForInvalidTag(nodeName)\n }\n\n if (node.childNodes.length) {\n validHeadNodes.push(\n ...getValidHeadNodesAndAttributes(node, htmlAndBodyAttributes)\n .validHeadNodes\n )\n }\n }\n\n return { validHeadNodes, htmlAndBodyAttributes }\n}\n\nfunction massageScript(node) {\n const script = document.createElement(`script`)\n for (const attr of node.attributes) {\n script.setAttribute(attr.name, attr.value)\n }\n script.innerHTML = node.innerHTML\n\n return script\n}\n\nexport function isValidNodeName(nodeName) {\n return VALID_NODE_NAMES.includes(nodeName)\n}\n/*\n * For Head, we only care about element nodes(type = 1), so this util is used to skip over non-element nodes\n * For Node type, see https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType\n */\nexport function isElementType(node) {\n return node.nodeType === 1\n}\n\n/**\n * Removes all the head elements that were added by `Head`\n */\nexport function removePrevHeadElements() {\n const prevHeadNodes = document.querySelectorAll(`[data-gatsby-head]`)\n for (const node of prevHeadNodes) {\n node.parentNode.removeChild(node)\n }\n}\n\nexport function applyHtmlAndBodyAttributes(htmlAndBodyAttributes) {\n if (!htmlAndBodyAttributes) return\n\n const { html, body } = htmlAndBodyAttributes\n\n const htmlElement = document.querySelector(`html`)\n if (htmlElement) {\n Object.entries(html).forEach(([attributeName, attributeValue]) => {\n htmlElement.setAttribute(attributeName, attributeValue)\n })\n }\n\n const bodyElement = document.querySelector(`body`)\n if (bodyElement) {\n Object.entries(body).forEach(([attributeName, attributeValue]) => {\n bodyElement.setAttribute(attributeName, attributeValue)\n })\n }\n}\n\nexport function removeHtmlAndBodyAttributes(htmlAndBodyattributeList) {\n if (!htmlAndBodyattributeList) return\n\n const { html, body } = htmlAndBodyattributeList\n\n if (html) {\n const htmlElement = document.querySelector(`html`)\n html.forEach(attributeName => {\n if (htmlElement) {\n htmlElement.removeAttribute(attributeName)\n }\n })\n }\n\n if (body) {\n const bodyElement = document.querySelector(`body`)\n body.forEach(attributeName => {\n if (bodyElement) {\n bodyElement.removeAttribute(attributeName)\n }\n })\n }\n}\n","import React from \"react\"\nimport { useEffect } from \"react\"\nimport { StaticQueryContext } from \"gatsby\"\nimport { LocationProvider } from \"@gatsbyjs/reach-router\"\nimport { reactDOMUtils } from \"../react-dom-utils\"\nimport { FireCallbackInEffect } from \"./components/fire-callback-in-effect\"\nimport {\n headExportValidator,\n filterHeadProps,\n diffNodes,\n getValidHeadNodesAndAttributes,\n removePrevHeadElements,\n applyHtmlAndBodyAttributes,\n removeHtmlAndBodyAttributes,\n} from \"./utils\"\nimport { apiRunner } from \"../api-runner-browser\"\n\nconst hiddenRoot = document.createElement(`div`)\nconst keysOfHtmlAndBodyAttributes = {\n html: [],\n body: [],\n}\n\nconst onHeadRendered = () => {\n const { validHeadNodes, htmlAndBodyAttributes } =\n getValidHeadNodesAndAttributes(hiddenRoot)\n\n keysOfHtmlAndBodyAttributes.html = Object.keys(htmlAndBodyAttributes.html)\n keysOfHtmlAndBodyAttributes.body = Object.keys(htmlAndBodyAttributes.body)\n\n applyHtmlAndBodyAttributes(htmlAndBodyAttributes)\n\n /**\n * The rest of the code block below is a diffing mechanism to ensure that\n * the head elements aren't duplicted on every re-render.\n */\n const existingHeadElements = document.querySelectorAll(`[data-gatsby-head]`)\n\n if (existingHeadElements.length === 0) {\n document.head.append(...validHeadNodes)\n return\n }\n\n const newHeadNodes = []\n diffNodes({\n oldNodes: existingHeadElements,\n newNodes: validHeadNodes,\n onStale: node => node.parentNode.removeChild(node),\n onNew: node => newHeadNodes.push(node),\n })\n\n document.head.append(...newHeadNodes)\n}\n\nif (process.env.BUILD_STAGE === `develop`) {\n // sigh ... and elements are not valid descedents of
(our hidden element)\n // react-dom in dev mode will warn about this. There doesn't seem to be a way to render arbitrary\n // user Head without hitting this issue (our hidden element could be just \"new Document()\", but\n // this can only have 1 child, and we don't control what is being rendered so that's not an option)\n // instead we continue to render to
, and just silence warnings for and elements\n // https://github.com/facebook/react/blob/e2424f33b3ad727321fc12e75c5e94838e84c2b5/packages/react-dom-bindings/src/client/validateDOMNesting.js#L498-L520\n const originalConsoleError = console.error.bind(console)\n console.error = (...args) => {\n if (\n Array.isArray(args) &&\n args.length >= 2 &&\n args[0]?.includes?.(`validateDOMNesting(...): %s cannot appear as`) &&\n (args[1] === `` || args[1] === ``)\n ) {\n return undefined\n }\n return originalConsoleError(...args)\n }\n\n /* We set up observer to be able to regenerate after react-refresh\n updates our hidden element.\n */\n const observer = new MutationObserver(onHeadRendered)\n observer.observe(hiddenRoot, {\n attributes: true,\n childList: true,\n characterData: true,\n subtree: true,\n })\n}\n\nexport function headHandlerForBrowser({\n pageComponent,\n staticQueryResults,\n pageComponentProps,\n}) {\n useEffect(() => {\n if (pageComponent?.Head) {\n headExportValidator(pageComponent.Head)\n\n const { render } = reactDOMUtils()\n\n const HeadElement = (\n \n )\n\n const WrapHeadElement = apiRunner(\n `wrapRootElement`,\n { element: HeadElement },\n HeadElement,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n render(\n // just a hack to call the callback after react has done first render\n // Note: In dev, we call onHeadRendered twice( in FireCallbackInEffect and after mutualution observer dectects initail render into hiddenRoot) this is for hot reloading\n // In Prod we only call onHeadRendered in FireCallbackInEffect to render to head\n \n \n {WrapHeadElement}\n \n ,\n hiddenRoot\n )\n }\n\n return () => {\n removePrevHeadElements()\n removeHtmlAndBodyAttributes(keysOfHtmlAndBodyAttributes)\n }\n })\n}\n","import React, { Suspense, createElement } from \"react\"\nimport PropTypes from \"prop-types\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport { grabMatchParams } from \"./find-path\"\nimport { headHandlerForBrowser } from \"./head/head-export-handler-for-browser\"\n\n// Renders page\nfunction PageRenderer(props) {\n const pageComponentProps = {\n ...props,\n params: {\n ...grabMatchParams(props.location.pathname),\n ...props.pageResources.json.pageContext.__params,\n },\n }\n\n const preferDefault = m => (m && m.default) || m\n\n let pageElement\n if (props.pageResources.partialHydration) {\n pageElement = props.pageResources.partialHydration\n } else {\n pageElement = createElement(preferDefault(props.pageResources.component), {\n ...pageComponentProps,\n key: props.path || props.pageResources.page.path,\n })\n }\n\n const pageComponent = props.pageResources.head\n\n headHandlerForBrowser({\n pageComponent,\n staticQueryResults: props.pageResources.staticQueryResults,\n pageComponentProps,\n })\n\n const wrappedPage = apiRunner(\n `wrapPageElement`,\n {\n element: pageElement,\n props: pageComponentProps,\n },\n pageElement,\n ({ result }) => {\n return { element: result, props: pageComponentProps }\n }\n ).pop()\n\n return wrappedPage\n}\n\nPageRenderer.propTypes = {\n location: PropTypes.object.isRequired,\n pageResources: PropTypes.object.isRequired,\n data: PropTypes.object,\n pageContext: PropTypes.object.isRequired,\n}\n\nexport default PageRenderer\n","// This is extracted to separate module because it's shared\n// between browser and SSR code\nexport const RouteAnnouncerProps = {\n id: `gatsby-announcer`,\n style: {\n position: `absolute`,\n top: 0,\n width: 1,\n height: 1,\n padding: 0,\n overflow: `hidden`,\n clip: `rect(0, 0, 0, 0)`,\n whiteSpace: `nowrap`,\n border: 0,\n },\n \"aria-live\": `assertive`,\n \"aria-atomic\": `true`,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport { maybeGetBrowserRedirect } from \"./redirect-utils.js\"\nimport { apiRunner } from \"./api-runner-browser\"\nimport emitter from \"./emitter\"\nimport { RouteAnnouncerProps } from \"./route-announcer-props\"\nimport {\n navigate as reachNavigate,\n globalHistory,\n} from \"@gatsbyjs/reach-router\"\nimport { parsePath } from \"gatsby-link\"\n\nfunction maybeRedirect(pathname) {\n const redirect = maybeGetBrowserRedirect(pathname)\n const { hash, search } = window.location\n\n if (redirect != null) {\n window.___replace(redirect.toPath + search + hash)\n return true\n } else {\n return false\n }\n}\n\n// Catch unhandled chunk loading errors and force a restart of the app.\nlet nextRoute = ``\n\nwindow.addEventListener(`unhandledrejection`, event => {\n if (/loading chunk \\d* failed./i.test(event.reason)) {\n if (nextRoute) {\n window.location.pathname = nextRoute\n }\n }\n})\n\nconst onPreRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n nextRoute = location.pathname\n apiRunner(`onPreRouteUpdate`, { location, prevLocation })\n }\n}\n\nconst onRouteUpdate = (location, prevLocation) => {\n if (!maybeRedirect(location.pathname)) {\n apiRunner(`onRouteUpdate`, { location, prevLocation })\n if (\n process.env.GATSBY_QUERY_ON_DEMAND &&\n process.env.GATSBY_QUERY_ON_DEMAND_LOADING_INDICATOR === `true`\n ) {\n emitter.emit(`onRouteUpdate`, { location, prevLocation })\n }\n }\n}\n\nconst navigate = (to, options = {}) => {\n // Support forward/backward navigation with numbers\n // navigate(-2) (jumps back 2 history steps)\n // navigate(2) (jumps forward 2 history steps)\n if (typeof to === `number`) {\n globalHistory.navigate(to)\n return\n }\n\n const { pathname, search, hash } = parsePath(to)\n const redirect = maybeGetBrowserRedirect(pathname)\n\n // If we're redirecting, just replace the passed in pathname\n // to the one we want to redirect to.\n if (redirect) {\n to = redirect.toPath + search + hash\n }\n\n // If we had a service worker update, no matter the path, reload window and\n // reset the pathname whitelist\n if (window.___swUpdated) {\n window.location = pathname + search + hash\n return\n }\n\n // Start a timer to wait for a second before transitioning and showing a\n // loader in case resources aren't around yet.\n const timeoutId = setTimeout(() => {\n emitter.emit(`onDelayedLoadPageResources`, { pathname })\n apiRunner(`onRouteUpdateDelayed`, {\n location: window.location,\n })\n }, 1000)\n\n loader.loadPage(pathname + search).then(pageResources => {\n // If no page resources, then refresh the page\n // Do this, rather than simply `window.location.reload()`, so that\n // pressing the back/forward buttons work - otherwise when pressing\n // back, the browser will just change the URL and expect JS to handle\n // the change, which won't always work since it might not be a Gatsby\n // page.\n if (!pageResources || pageResources.status === PageResourceStatus.Error) {\n window.history.replaceState({}, ``, location.href)\n window.location = pathname\n clearTimeout(timeoutId)\n return\n }\n\n // If the loaded page has a different compilation hash to the\n // window, then a rebuild has occurred on the server. Reload.\n if (process.env.NODE_ENV === `production` && pageResources) {\n if (\n pageResources.page.webpackCompilationHash !==\n window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n window.location = pathname + search + hash\n }\n }\n reachNavigate(to, options)\n clearTimeout(timeoutId)\n })\n}\n\nfunction shouldUpdateScroll(prevRouterProps, { location }) {\n const { pathname, hash } = location\n const results = apiRunner(`shouldUpdateScroll`, {\n prevRouterProps,\n // `pathname` for backwards compatibility\n pathname,\n routerProps: { location },\n getSavedScrollPosition: args => [\n 0,\n // FIXME this is actually a big code smell, we should fix this\n // eslint-disable-next-line @babel/no-invalid-this\n this._stateStorage.read(args, args.key),\n ],\n })\n if (results.length > 0) {\n // Use the latest registered shouldUpdateScroll result, this allows users to override plugin's configuration\n // @see https://github.com/gatsbyjs/gatsby/issues/12038\n return results[results.length - 1]\n }\n\n if (prevRouterProps) {\n const {\n location: { pathname: oldPathname },\n } = prevRouterProps\n if (oldPathname === pathname) {\n // Scroll to element if it exists, if it doesn't, or no hash is provided,\n // scroll to top.\n return hash ? decodeURI(hash.slice(1)) : [0, 0]\n }\n }\n return true\n}\n\nfunction init() {\n // The \"scroll-behavior\" package expects the \"action\" to be on the location\n // object so let's copy it over.\n globalHistory.listen(args => {\n args.location.action = args.action\n })\n\n window.___push = to => navigate(to, { replace: false })\n window.___replace = to => navigate(to, { replace: true })\n window.___navigate = (to, options) => navigate(to, options)\n}\n\nclass RouteAnnouncer extends React.Component {\n constructor(props) {\n super(props)\n this.announcementRef = React.createRef()\n }\n\n componentDidUpdate(prevProps, nextProps) {\n requestAnimationFrame(() => {\n let pageName = `new page at ${this.props.location.pathname}`\n if (document.title) {\n pageName = document.title\n }\n const pageHeadings = document.querySelectorAll(`#gatsby-focus-wrapper h1`)\n if (pageHeadings && pageHeadings.length) {\n pageName = pageHeadings[0].textContent\n }\n const newAnnouncement = `Navigated to ${pageName}`\n if (this.announcementRef.current) {\n const oldAnnouncement = this.announcementRef.current.innerText\n if (oldAnnouncement !== newAnnouncement) {\n this.announcementRef.current.innerText = newAnnouncement\n }\n }\n })\n }\n\n render() {\n return \n }\n}\n\nconst compareLocationProps = (prevLocation, nextLocation) => {\n if (prevLocation.href !== nextLocation.href) {\n return true\n }\n\n if (prevLocation?.state?.key !== nextLocation?.state?.key) {\n return true\n }\n\n return false\n}\n\n// Fire on(Pre)RouteUpdate APIs\nclass RouteUpdates extends React.Component {\n constructor(props) {\n super(props)\n onPreRouteUpdate(props.location, null)\n }\n\n componentDidMount() {\n onRouteUpdate(this.props.location, null)\n }\n\n shouldComponentUpdate(nextProps) {\n if (compareLocationProps(this.props.location, nextProps.location)) {\n onPreRouteUpdate(nextProps.location, this.props.location)\n return true\n }\n return false\n }\n\n componentDidUpdate(prevProps) {\n if (compareLocationProps(prevProps.location, this.props.location)) {\n onRouteUpdate(this.props.location, prevProps.location)\n }\n }\n\n render() {\n return (\n \n {this.props.children}\n \n \n )\n }\n}\n\nRouteUpdates.propTypes = {\n location: PropTypes.object.isRequired,\n}\n\nexport { init, shouldUpdateScroll, RouteUpdates, maybeGetBrowserRedirect }\n","// Pulled from react-compat\n// https://github.com/developit/preact-compat/blob/7c5de00e7c85e2ffd011bf3af02899b63f699d3a/src/index.js#L349\nfunction shallowDiffers(a, b) {\n for (var i in a) {\n if (!(i in b)) return true;\n }for (var _i in b) {\n if (a[_i] !== b[_i]) return true;\n }return false;\n}\n\nexport default (function (instance, nextProps, nextState) {\n return shallowDiffers(instance.props, nextProps) || shallowDiffers(instance.state, nextState);\n});","import React from \"react\"\nimport loader, { PageResourceStatus } from \"./loader\"\nimport shallowCompare from \"shallow-compare\"\n\nclass EnsureResources extends React.Component {\n constructor(props) {\n super()\n const { location, pageResources } = props\n this.state = {\n location: { ...location },\n pageResources:\n pageResources ||\n loader.loadPageSync(location.pathname + location.search, {\n withErrorDetails: true,\n }),\n }\n }\n\n static getDerivedStateFromProps({ location }, prevState) {\n if (prevState.location.href !== location.href) {\n const pageResources = loader.loadPageSync(\n location.pathname + location.search,\n {\n withErrorDetails: true,\n }\n )\n\n return {\n pageResources,\n location: { ...location },\n }\n }\n\n return {\n location: { ...location },\n }\n }\n\n loadResources(rawPath) {\n loader.loadPage(rawPath).then(pageResources => {\n if (pageResources && pageResources.status !== PageResourceStatus.Error) {\n this.setState({\n location: { ...window.location },\n pageResources,\n })\n } else {\n window.history.replaceState({}, ``, location.href)\n window.location = rawPath\n }\n })\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n // Always return false if we're missing resources.\n if (!nextState.pageResources) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n if (\n process.env.BUILD_STAGE === `develop` &&\n nextState.pageResources.stale\n ) {\n this.loadResources(\n nextProps.location.pathname + nextProps.location.search\n )\n return false\n }\n\n // Check if the component or json have changed.\n if (this.state.pageResources !== nextState.pageResources) {\n return true\n }\n if (\n this.state.pageResources.component !== nextState.pageResources.component\n ) {\n return true\n }\n\n if (this.state.pageResources.json !== nextState.pageResources.json) {\n return true\n }\n // Check if location has changed on a page using internal routing\n // via matchPath configuration.\n if (\n this.state.location.key !== nextState.location.key &&\n nextState.pageResources.page &&\n (nextState.pageResources.page.matchPath ||\n nextState.pageResources.page.path)\n ) {\n return true\n }\n return shallowCompare(this, nextProps, nextState)\n }\n\n render() {\n if (\n process.env.NODE_ENV !== `production` &&\n (!this.state.pageResources ||\n this.state.pageResources.status === PageResourceStatus.Error)\n ) {\n const message = `EnsureResources was not able to find resources for path: \"${this.props.location.pathname}\"\nThis typically means that an issue occurred building components for that path.\nRun \\`gatsby clean\\` to remove any cached elements.`\n if (this.state.pageResources?.error) {\n console.error(message)\n throw this.state.pageResources.error\n }\n\n throw new Error(message)\n }\n\n return this.props.children(this.state)\n }\n}\n\nexport default EnsureResources\n","import { apiRunner, apiRunnerAsync } from \"./api-runner-browser\"\nimport React from \"react\"\nimport { Router, navigate, Location, BaseContext } from \"@gatsbyjs/reach-router\"\nimport { ScrollContext } from \"gatsby-react-router-scroll\"\nimport { StaticQueryContext } from \"./static-query\"\nimport {\n SlicesMapContext,\n SlicesContext,\n SlicesResultsContext,\n} from \"./slice/context\"\nimport {\n shouldUpdateScroll,\n init as navigationInit,\n RouteUpdates,\n} from \"./navigation\"\nimport emitter from \"./emitter\"\nimport PageRenderer from \"./page-renderer\"\nimport asyncRequires from \"$virtual/async-requires\"\nimport {\n setLoader,\n ProdLoader,\n publicLoader,\n PageResourceStatus,\n getStaticQueryResults,\n getSliceResults,\n} from \"./loader\"\nimport EnsureResources from \"./ensure-resources\"\nimport stripPrefix from \"./strip-prefix\"\n\n// Generated during bootstrap\nimport matchPaths from \"$virtual/match-paths.json\"\nimport { reactDOMUtils } from \"./react-dom-utils\"\n\nconst loader = new ProdLoader(asyncRequires, matchPaths, window.pageData)\nsetLoader(loader)\nloader.setApiRunner(apiRunner)\n\nconst { render, hydrate } = reactDOMUtils()\n\nwindow.asyncRequires = asyncRequires\nwindow.___emitter = emitter\nwindow.___loader = publicLoader\n\nnavigationInit()\n\nconst reloadStorageKey = `gatsby-reload-compilation-hash-match`\n\napiRunnerAsync(`onClientEntry`).then(() => {\n // Let plugins register a service worker. The plugin just needs\n // to return true.\n if (apiRunner(`registerServiceWorker`).filter(Boolean).length > 0) {\n require(`./register-service-worker`)\n }\n\n // In gatsby v2 if Router is used in page using matchPaths\n // paths need to contain full path.\n // For example:\n // - page have `/app/*` matchPath\n // - inside template user needs to use `/app/xyz` as path\n // Resetting `basepath`/`baseuri` keeps current behaviour\n // to not introduce breaking change.\n // Remove this in v3\n const RouteHandler = props => (\n \n \n \n )\n\n const DataContext = React.createContext({})\n\n const slicesContext = {\n renderEnvironment: `browser`,\n }\n\n class GatsbyRoot extends React.Component {\n render() {\n const { children } = this.props\n return (\n \n {({ location }) => (\n \n {({ pageResources, location }) => {\n const staticQueryResults = getStaticQueryResults()\n const sliceResults = getSliceResults()\n\n return (\n \n \n \n \n \n {children}\n \n \n \n \n \n )\n }}\n \n )}\n \n )\n }\n }\n\n class LocationHandler extends React.Component {\n render() {\n return (\n \n {({ pageResources, location }) => (\n \n \n \n \n \n \n \n )}\n \n )\n }\n }\n\n const { pagePath, location: browserLoc } = window\n\n // Explicitly call navigate if the canonical path (window.pagePath)\n // is different to the browser path (window.location.pathname). SSR\n // page paths might include search params, while SSG and DSG won't.\n // If page path include search params we also compare query params.\n // But only if NONE of the following conditions hold:\n //\n // - The url matches a client side route (page.matchPath)\n // - it's a 404 page\n // - it's the offline plugin shell (/offline-plugin-app-shell-fallback/)\n if (\n pagePath &&\n __BASE_PATH__ + pagePath !==\n browserLoc.pathname + (pagePath.includes(`?`) ? browserLoc.search : ``) &&\n !(\n loader.findMatchPath(stripPrefix(browserLoc.pathname, __BASE_PATH__)) ||\n pagePath.match(/^\\/(404|500)(\\/?|.html)$/) ||\n pagePath.match(/^\\/offline-plugin-app-shell-fallback\\/?$/)\n )\n ) {\n navigate(\n __BASE_PATH__ +\n pagePath +\n (!pagePath.includes(`?`) ? browserLoc.search : ``) +\n browserLoc.hash,\n {\n replace: true,\n }\n )\n }\n\n // It's possible that sessionStorage can throw an exception if access is not granted, see https://github.com/gatsbyjs/gatsby/issues/34512\n const getSessionStorage = () => {\n try {\n return sessionStorage\n } catch {\n return null\n }\n }\n\n publicLoader.loadPage(browserLoc.pathname + browserLoc.search).then(page => {\n const sessionStorage = getSessionStorage()\n\n if (\n page?.page?.webpackCompilationHash &&\n page.page.webpackCompilationHash !== window.___webpackCompilationHash\n ) {\n // Purge plugin-offline cache\n if (\n `serviceWorker` in navigator &&\n navigator.serviceWorker.controller !== null &&\n navigator.serviceWorker.controller.state === `activated`\n ) {\n navigator.serviceWorker.controller.postMessage({\n gatsbyApi: `clearPathResources`,\n })\n }\n\n // We have not matching html + js (inlined `window.___webpackCompilationHash`)\n // with our data (coming from `app-data.json` file). This can cause issues such as\n // errors trying to load static queries (as list of static queries is inside `page-data`\n // which might not match to currently loaded `.js` scripts).\n // We are making attempt to reload if hashes don't match, but we also have to handle case\n // when reload doesn't fix it (possibly broken deploy) so we don't end up in infinite reload loop\n if (sessionStorage) {\n const isReloaded = sessionStorage.getItem(reloadStorageKey) === `1`\n\n if (!isReloaded) {\n sessionStorage.setItem(reloadStorageKey, `1`)\n window.location.reload(true)\n return\n }\n }\n }\n\n if (sessionStorage) {\n sessionStorage.removeItem(reloadStorageKey)\n }\n\n if (!page || page.status === PageResourceStatus.Error) {\n const message = `page resources for ${browserLoc.pathname} not found. Not rendering React`\n\n // if the chunk throws an error we want to capture the real error\n // This should help with https://github.com/gatsbyjs/gatsby/issues/19618\n if (page && page.error) {\n console.error(message)\n throw page.error\n }\n\n throw new Error(message)\n }\n\n const SiteRoot = apiRunner(\n `wrapRootElement`,\n { element: },\n ,\n ({ result }) => {\n return { element: result }\n }\n ).pop()\n\n const App = function App() {\n const onClientEntryRanRef = React.useRef(false)\n\n React.useEffect(() => {\n if (!onClientEntryRanRef.current) {\n onClientEntryRanRef.current = true\n if (performance.mark) {\n performance.mark(`onInitialClientRender`)\n }\n\n apiRunner(`onInitialClientRender`)\n }\n }, [])\n\n return {SiteRoot}\n }\n\n const focusEl = document.getElementById(`gatsby-focus-wrapper`)\n\n // Client only pages have any empty body so we just do a normal\n // render to avoid React complaining about hydration mis-matches.\n let defaultRenderer = render\n if (focusEl && focusEl.children.length) {\n defaultRenderer = hydrate\n }\n\n const renderer = apiRunner(\n `replaceHydrateFunction`,\n undefined,\n defaultRenderer\n )[0]\n\n function runRender() {\n const rootElement =\n typeof window !== `undefined`\n ? document.getElementById(`___gatsby`)\n : null\n\n renderer(, rootElement)\n }\n\n // https://github.com/madrobby/zepto/blob/b5ed8d607f67724788ec9ff492be297f64d47dfc/src/zepto.js#L439-L450\n // TODO remove IE 10 support\n const doc = document\n if (\n doc.readyState === `complete` ||\n (doc.readyState !== `loading` && !doc.documentElement.doScroll)\n ) {\n setTimeout(function () {\n runRender()\n }, 0)\n } else {\n const handler = function () {\n doc.removeEventListener(`DOMContentLoaded`, handler, false)\n window.removeEventListener(`load`, handler, false)\n\n runRender()\n }\n\n doc.addEventListener(`DOMContentLoaded`, handler, false)\n window.addEventListener(`load`, handler, false)\n }\n\n return\n })\n})\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\n\nimport loader from \"./loader\"\nimport InternalPageRenderer from \"./page-renderer\"\n\nconst ProdPageRenderer = ({ location }) => {\n const pageResources = loader.loadPageSync(location.pathname)\n if (!pageResources) {\n return null\n }\n return React.createElement(InternalPageRenderer, {\n location,\n pageResources,\n ...pageResources.json,\n })\n}\n\nProdPageRenderer.propTypes = {\n location: PropTypes.shape({\n pathname: PropTypes.string.isRequired,\n }).isRequired,\n}\n\nexport default ProdPageRenderer\n","const preferDefault = m => (m && m.default) || m\n\nif (process.env.BUILD_STAGE === `develop`) {\n module.exports = preferDefault(require(`./public-page-renderer-dev`))\n} else if (process.env.BUILD_STAGE === `build-javascript`) {\n module.exports = preferDefault(require(`./public-page-renderer-prod`))\n} else {\n module.exports = () => null\n}\n","const map = new WeakMap()\n\nexport function reactDOMUtils() {\n const reactDomClient = require(`react-dom/client`)\n\n const render = (Component, el) => {\n let root = map.get(el)\n if (!root) {\n map.set(el, (root = reactDomClient.createRoot(el)))\n }\n root.render(Component)\n }\n\n const hydrate = (Component, el) => reactDomClient.hydrateRoot(el, Component)\n\n return { render, hydrate }\n}\n","import redirects from \"./redirects.json\"\n\n// Convert to a map for faster lookup in maybeRedirect()\n\nconst redirectMap = new Map()\nconst redirectIgnoreCaseMap = new Map()\n\nredirects.forEach(redirect => {\n if (redirect.ignoreCase) {\n redirectIgnoreCaseMap.set(redirect.fromPath, redirect)\n } else {\n redirectMap.set(redirect.fromPath, redirect)\n }\n})\n\nexport function maybeGetBrowserRedirect(pathname) {\n let redirect = redirectMap.get(pathname)\n if (!redirect) {\n redirect = redirectIgnoreCaseMap.get(pathname.toLowerCase())\n }\n return redirect\n}\n","import { apiRunner } from \"./api-runner-browser\"\n\nif (\n window.location.protocol !== `https:` &&\n window.location.hostname !== `localhost`\n) {\n console.error(\n `Service workers can only be used over HTTPS, or on localhost for development`\n )\n} else if (`serviceWorker` in navigator) {\n navigator.serviceWorker\n .register(`${__BASE_PATH__}/sw.js`)\n .then(function (reg) {\n reg.addEventListener(`updatefound`, () => {\n apiRunner(`onServiceWorkerUpdateFound`, { serviceWorker: reg })\n // The updatefound event implies that reg.installing is set; see\n // https://w3c.github.io/ServiceWorker/#service-worker-registration-updatefound-event\n const installingWorker = reg.installing\n console.log(`installingWorker`, installingWorker)\n installingWorker.addEventListener(`statechange`, () => {\n switch (installingWorker.state) {\n case `installed`:\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and the fresh content will\n // have been added to the cache.\n\n // We set a flag so Gatsby Link knows to refresh the page on next navigation attempt\n window.___swUpdated = true\n // We call the onServiceWorkerUpdateReady API so users can show update prompts.\n apiRunner(`onServiceWorkerUpdateReady`, { serviceWorker: reg })\n\n // If resources failed for the current page, reload.\n if (window.___failedResources) {\n console.log(`resources failed, SW updated - reloading`)\n window.location.reload()\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a \"Content is cached for offline use.\" message.\n console.log(`Content is now available offline!`)\n\n // Post to service worker that install is complete.\n // Delay to allow time for the event listener to be added --\n // otherwise fetch is called too soon and resources aren't cached.\n apiRunner(`onServiceWorkerInstalled`, { serviceWorker: reg })\n }\n break\n\n case `redundant`:\n console.error(`The installing service worker became redundant.`)\n apiRunner(`onServiceWorkerRedundant`, { serviceWorker: reg })\n break\n\n case `activated`:\n apiRunner(`onServiceWorkerActive`, { serviceWorker: reg })\n break\n }\n })\n })\n })\n .catch(function (e) {\n console.error(`Error during service worker registration:`, e)\n })\n}\n","import React from \"react\"\n\nconst SlicesResultsContext = React.createContext({})\nconst SlicesContext = React.createContext({})\nconst SlicesMapContext = React.createContext({})\nconst SlicesPropsContext = React.createContext({})\n\nexport {\n SlicesResultsContext,\n SlicesContext,\n SlicesMapContext,\n SlicesPropsContext,\n}\n","import React from \"react\"\nimport PropTypes from \"prop-types\"\nimport { createServerOrClientContext } from \"./context-utils\"\n\nconst StaticQueryContext = createServerOrClientContext(`StaticQuery`, {})\n\nfunction StaticQueryDataRenderer({ staticQueryData, data, query, render }) {\n const finalData = data\n ? data.data\n : staticQueryData[query] && staticQueryData[query].data\n\n return (\n \n {finalData && render(finalData)}\n {!finalData &&
Loading (StaticQuery)
}\n \n )\n}\n\nlet warnedAboutStaticQuery = false\n\n// TODO(v6): Remove completely\nconst StaticQuery = props => {\n const { data, query, render, children } = props\n\n if (process.env.NODE_ENV === `development` && !warnedAboutStaticQuery) {\n console.warn(\n `The component is deprecated and will be removed in Gatsby v6. Use useStaticQuery instead. Refer to the migration guide for more information: https://gatsby.dev/migrating-4-to-5/#staticquery--is-deprecated`\n )\n warnedAboutStaticQuery = true\n }\n\n return (\n \n {staticQueryData => (\n \n )}\n \n )\n}\n\nStaticQuery.propTypes = {\n data: PropTypes.object,\n query: PropTypes.string.isRequired,\n render: PropTypes.func,\n children: PropTypes.func,\n}\n\nconst useStaticQuery = query => {\n if (\n typeof React.useContext !== `function` &&\n process.env.NODE_ENV === `development`\n ) {\n // TODO(v5): Remove since we require React >= 18\n throw new Error(\n `You're likely using a version of React that doesn't support Hooks\\n` +\n `Please update React and ReactDOM to 16.8.0 or later to use the useStaticQuery hook.`\n )\n }\n\n const context = React.useContext(StaticQueryContext)\n\n // query is a stringified number like `3303882` when wrapped with graphql, If a user forgets\n // to wrap the query in a grqphql, then casting it to a Number results in `NaN` allowing us to\n // catch the misuse of the API and give proper direction\n if (isNaN(Number(query))) {\n throw new Error(`useStaticQuery was called with a string but expects to be called using \\`graphql\\`. Try this:\n\nimport { useStaticQuery, graphql } from 'gatsby';\n\nuseStaticQuery(graphql\\`${query}\\`);\n`)\n }\n\n if (context[query]?.data) {\n return context[query].data\n } else {\n throw new Error(\n `The result of this StaticQuery could not be fetched.\\n\\n` +\n `This is likely a bug in Gatsby and if refreshing the page does not fix it, ` +\n `please open an issue in https://github.com/gatsbyjs/gatsby/issues`\n )\n }\n}\n\nexport { StaticQuery, StaticQueryContext, useStaticQuery }\n","import React from \"react\"\n\n// Ensure serverContext is not created more than once as React will throw when creating it more than once\n// https://github.com/facebook/react/blob/dd2d6522754f52c70d02c51db25eb7cbd5d1c8eb/packages/react/src/ReactServerContext.js#L101\nconst createServerContext = (name, defaultValue = null) => {\n /* eslint-disable no-undef */\n if (!globalThis.__SERVER_CONTEXT) {\n globalThis.__SERVER_CONTEXT = {}\n }\n\n if (!globalThis.__SERVER_CONTEXT[name]) {\n globalThis.__SERVER_CONTEXT[name] = React.createServerContext(\n name,\n defaultValue\n )\n }\n\n return globalThis.__SERVER_CONTEXT[name]\n}\n\nfunction createServerOrClientContext(name, defaultValue) {\n if (React.createServerContext) {\n return createServerContext(name, defaultValue)\n }\n\n return React.createContext(defaultValue)\n}\n\nexport { createServerOrClientContext }\n","/**\n * Remove a prefix from a string. Return the input string if the given prefix\n * isn't found.\n */\n\nexport default function stripPrefix(str, prefix = ``) {\n if (!prefix) {\n return str\n }\n\n if (str === prefix) {\n return `/`\n }\n\n if (str.startsWith(`${prefix}/`)) {\n return str.slice(prefix.length)\n }\n\n return str\n}\n","const { config } = require('@fortawesome/fontawesome-svg-core')\n\nexports.onClientEntry = () => {\n /* Prevents fontawesome auto css insertion */\n config.autoAddCss = false\n}\n","Object.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.defaultOptions = void 0;\nvar defaultOptions = {\n environments: [\"production\"],\n googleAnalytics: {\n cookieName: \"gatsby-gdpr-google-analytics\",\n anonymize: true,\n allowAdFeatures: false\n },\n googleTagManager: {\n cookieName: \"gatsby-gdpr-google-tagmanager\",\n dataLayerName: \"dataLayer\",\n routeChangeEvent: \"gatsbyRouteChange\"\n },\n facebookPixel: {\n cookieName: \"gatsby-gdpr-facebook-pixel\"\n },\n tikTokPixel: {\n cookieName: \"gatsby-gdpr-tiktok-pixel\"\n },\n hotjar: {\n cookieName: \"gatsby-gdpr-hotjar\"\n },\n chatwoot: {\n cookieName: 'gatsby-gdpr-chatwoot'\n },\n linkedin: {\n cookieName: 'gatsby-gdpr-linkedin'\n }\n};\nexports.defaultOptions = defaultOptions;","var _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.onRouteUpdate = exports.onClientEntry = void 0;\n\nvar _defaultOptions = require(\"./default-options\");\n\nvar _index = require(\"./index\");\n\nvar _merge = _interopRequireDefault(require(\"lodash/merge\"));\n\n// init\nvar onClientEntry = function onClientEntry(_, pluginOptions) {\n if (pluginOptions === void 0) {\n pluginOptions = {};\n }\n\n window.gatsbyPluginGDPRCookiesGoogleAnalyticsAdded = false;\n window.gatsbyPluginGDPRCookiesGoogleTagManagerAdded = false;\n window.gatsbyPluginGDPRCookiesFacebookPixelAdded = false;\n window.gatsbyPluginGDPRCookiesTikTokPixelAdded = false;\n window.gatsbyPluginGDPRCookiesHotjarAdded = false;\n window.gatsbyPluginGDPRCookiesChatwootAdded = false;\n window.gatsbyPluginGDPRCookiesLinkedinAdded = false;\n window.gatsbyPluginGDPRCookiesGoogleAnalyticsInitialized = false;\n window.gatsbyPluginGDPRCookiesGoogleTagManagerInitialized = false;\n window.gatsbyPluginGDPRCookiesFacebookPixelInitialized = false;\n window.gatsbyPluginGDPRCookiesTikTokPixelInitialized = false;\n window.gatsbyPluginGDPRCookiesHotjarInitialized = false;\n window.gatsbyPluginGDPRCookiesLinkedinInitialized = false; // google tag manager setup\n\n var _pluginOptions = pluginOptions,\n googleTagManager = _pluginOptions.googleTagManager;\n\n if (googleTagManager && googleTagManager.defaultDataLayer) {\n googleTagManager.defaultDataLayer = {\n type: typeof googleTagManager.defaultDataLayer,\n value: googleTagManager.defaultDataLayer\n };\n\n if (googleTagManager.defaultDataLayer.type === \"function\") {\n googleTagManager.defaultDataLayer.value = googleTagManager.defaultDataLayer.value.toString();\n }\n }\n\n var options = (0, _merge.default)(_defaultOptions.defaultOptions, pluginOptions);\n window.gatsbyPluginGDPRCookiesOptions = options;\n}; // track\n\n\nexports.onClientEntry = onClientEntry;\n\nvar onRouteUpdate = function onRouteUpdate(_ref) {\n var location = _ref.location;\n (0, _index.initializeAndTrack)(location);\n};\n\nexports.onRouteUpdate = onRouteUpdate;","exports.validGATrackingId = function (options) {\n return options.trackingId && options.trackingId.trim() !== \"\";\n};\n\nexports.validGTMTrackingId = function (options) {\n return options.trackingId && options.trackingId.trim() !== \"\";\n};\n\nexports.validFbPixelId = function (options) {\n return options.pixelId && options.pixelId.trim() !== \"\";\n};\n\nexports.validTikTokPixelId = function (options) {\n return options.pixelId && options.pixelId.trim() !== \"\";\n};\n\nexports.validHotjarId = function (options) {\n return options.hjid && options.hjid.trim() !== \"\" && options.hjsv && options.hjsv.trim() !== \"\";\n};\n\nexports.validChatwootConfig = function (options) {\n return options.baseUrl && options.baseUrl.trim() !== \"\" && options.websiteToken && options.websiteToken.trim() !== \"\";\n};\n\nexports.validLinkedinTrackingId = function (options) {\n return options.trackingId && options.trackingId.trim() !== \"\";\n};\n\nexports.getCookie = function (name) {\n var v = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');\n return v ? v[2] : null;\n};\n\nexports.isEnvironmentValid = function (environments) {\n var currentEnvironment = process.env.ENV || process.env.NODE_ENV || \"development\";\n return environments.includes(currentEnvironment);\n};","var _require = require('./services'),\n initializeAndTrackGoogleAnalytics = _require.initializeAndTrackGoogleAnalytics,\n initializeAndTrackGoogleTagManager = _require.initializeAndTrackGoogleTagManager,\n initializeAndTrackFacebookPixel = _require.initializeAndTrackFacebookPixel,\n initializeAndTrackTikTokPixel = _require.initializeAndTrackTikTokPixel,\n initializeAndTrackHotjar = _require.initializeAndTrackHotjar,\n initializeChatwoot = _require.initializeChatwoot,\n initializeLinkedin = _require.initializeLinkedin;\n\nvar _require2 = require('./helper'),\n isEnvironmentValid = _require2.isEnvironmentValid;\n\nexports.initializeAndTrack = function (location) {\n var options = window.gatsbyPluginGDPRCookiesOptions;\n\n if (isEnvironmentValid(options.environments)) {\n if (location === undefined || location === null) {\n console.error('Please provide a reach router location to the initializeAndTrack function.');\n } else {\n initializeAndTrackGoogleAnalytics(options.googleAnalytics, location);\n initializeAndTrackGoogleTagManager(options.googleTagManager, location);\n initializeAndTrackFacebookPixel(options.facebookPixel);\n initializeAndTrackTikTokPixel(options.tikTokPixel);\n initializeAndTrackHotjar(options.hotjar);\n initializeChatwoot(options.chatwoot);\n initializeLinkedin(options.linkedin);\n }\n }\n};","var _require = require('../helper'),\n validChatwootConfig = _require.validChatwootConfig,\n getCookie = _require.getCookie;\n\nexports.addChatwoot = function (options) {\n return new Promise(function (resolve, reject) {\n if (window.gatsbyPluginGDPRCookiesChatwootAdded) return resolve(true);\n /* eslint-disable */\n\n !function (d, t) {\n var BASE_URL = options.baseUrl;\n var g = d.createElement(t),\n s = d.getElementsByTagName(t)[0];\n g.src = BASE_URL + \"/packs/js/sdk.js\";\n g.defer = true;\n g.async = true;\n s.parentNode.insertBefore(g, s);\n\n g.onload = function () {\n window.chatwootSDK.run({\n websiteToken: options.websiteToken,\n baseUrl: BASE_URL\n });\n };\n }(document, \"script\");\n /* eslint-enable */\n\n window.gatsbyPluginGDPRCookiesChatwootAdded = true;\n resolve(true);\n });\n};","var _require = require('../helper'),\n validFbPixelId = _require.validFbPixelId,\n getCookie = _require.getCookie;\n\nexports.addFacebookPixel = function () {\n return new Promise(function (resolve, reject) {\n if (window.gatsbyPluginGDPRCookiesFacebookPixelAdded) return resolve(true);\n /* eslint-disable */\n\n !function (f, b, e, v, n, t, s) {\n if (f.fbq) return;\n\n n = f.fbq = function () {\n n.callMethod ? n.callMethod.apply(n, arguments) : n.queue.push(arguments);\n };\n\n if (!f._fbq) f._fbq = n;\n n.push = n;\n n.loaded = !0;\n n.version = '2.0';\n n.queue = [];\n t = b.createElement(e);\n t.async = !0;\n t.src = v;\n s = b.getElementsByTagName(e)[0];\n s.parentNode.insertBefore(t, s);\n }(window, document, 'script', 'https://connect.facebook.net/en_US/fbevents.js');\n /* eslint-enable */\n\n window.gatsbyPluginGDPRCookiesFacebookPixelAdded = true;\n resolve(true);\n });\n};\n\nexports.initializeFacebookPixel = function (options) {\n if (!window.gatsbyPluginGDPRCookiesFacebookPixelInitialized && getCookie(options.cookieName) === \"true\" && validFbPixelId(options)) {\n window.fbq(\"init\", options.pixelId);\n window.gatsbyPluginGDPRCookiesFacebookPixelInitialized = true;\n }\n};\n\nexports.trackFacebookPixel = function (options) {\n if (getCookie(options.cookieName) === \"true\" && validFbPixelId(options) && typeof window.fbq === \"function\") {\n window.fbq(\"track\", \"PageView\");\n }\n};","var _require = require('../helper'),\n validGATrackingId = _require.validGATrackingId,\n getCookie = _require.getCookie;\n\nexports.addGoogleAnalytics = function (_ref) {\n var trackingId = _ref.trackingId;\n return new Promise(function (resolve, reject) {\n if (window.gatsbyPluginGDPRCookiesGoogleAnalyticsAdded) return resolve(true);\n var head = document.getElementsByTagName('head')[0];\n var script = document.createElement(\"script\");\n script.type = \"text/javascript\";\n\n script.onload = function () {\n window.gatsbyPluginGDPRCookiesGoogleAnalyticsAdded = true;\n resolve(true);\n };\n\n script.src = \"https://www.googletagmanager.com/gtag/js?id=\" + trackingId;\n head.appendChild(script);\n });\n};\n\nexports.initializeGoogleAnalytics = function (options) {\n if (!window.gatsbyPluginGDPRCookiesGoogleAnalyticsInitialized && getCookie(options.cookieName) === \"true\" && validGATrackingId(options)) {\n window.dataLayer = window.dataLayer || [];\n\n window.gtag = function () {\n window.dataLayer.push(arguments);\n };\n\n window.gtag('js', new Date());\n var gaAnonymize = options.anonymize;\n var gaAllowAdFeatures = options.allowAdFeatures;\n gaAnonymize = gaAnonymize !== undefined ? gaAnonymize : true;\n gaAllowAdFeatures = gaAllowAdFeatures !== undefined ? gaAllowAdFeatures : true;\n window.gtag('config', options.trackingId, {\n 'anonymize_ip': gaAnonymize,\n 'allow_google_signals': gaAllowAdFeatures\n });\n window.gatsbyPluginGDPRCookiesGoogleAnalyticsInitialized = true;\n }\n};\n\nexports.trackGoogleAnalytics = function (options, location) {\n if (getCookie(options.cookieName) === \"true\" && validGATrackingId(options) && typeof window.gtag === \"function\") {\n var pagePath = location ? location.pathname + location.search + location.hash : undefined;\n window.gtag(\"event\", \"page_view\", {\n page_path: pagePath\n });\n }\n};","var _require = require(\"../helper\"),\n validGTMTrackingId = _require.validGTMTrackingId,\n getCookie = _require.getCookie;\n\nexports.addGoogleTagManager = function (_ref, environmentParamStr) {\n var trackingId = _ref.trackingId,\n dataLayerName = _ref.dataLayerName;\n return new Promise(function (resolve, reject) {\n if (window.gatsbyPluginGDPRCookiesGoogleTagManagerAdded) return resolve(true);\n /* eslint-disable */\n\n !function (w, d, s, l, i) {\n w[l] = w[l] || [];\n w[l].push({\n \"gtm.start\": new Date().getTime(),\n event: \"gtm.js\"\n });\n var f = d.getElementsByTagName(s)[0],\n j = d.createElement(s),\n dl = l != \"dataLayer\" ? \"&l=\" + l : \"\";\n j.async = true;\n j.src = \"https://www.googletagmanager.com/gtm.js?id=\" + i + dl + environmentParamStr;\n f.parentNode.insertBefore(j, f);\n }(window, document, \"script\", dataLayerName, trackingId);\n /* eslint-enable */\n\n var iframe = document.createElement(\"iframe\");\n iframe.key = \"gatsby-plugin-gdpr-cookies-google-tagmanager-iframe\";\n iframe.src = \"https://www.googletagmanager.com/ns.html?id=\" + trackingId + environmentParamStr;\n iframe.height = 0;\n iframe.width = 0;\n iframe.style = \"display: none; visibility: hidden\";\n document.body.insertBefore(iframe, document.body.firstChild);\n window.gatsbyPluginGDPRCookiesGoogleTagManagerAdded = true;\n resolve(true);\n });\n};\n\nexports.initializeGoogleTagManager = function (options) {\n // console.log(`initing tag manager`)\n if (!window.gatsbyPluginGDPRCookiesGoogleTagManagerInitialized && getCookie(options.cookieName) === \"true\" && validGTMTrackingId(options)) {\n window.dataLayer = window.dataLayer || [];\n\n window.gtag = function () {\n window.dataLayer.push(arguments);\n };\n\n window.gtag(\"js\", new Date());\n var gaAnonymize = options.anonymize;\n var gaAllowAdFeatures = options.allowAdFeatures;\n gaAnonymize = gaAnonymize !== undefined ? gaAnonymize : true;\n gaAllowAdFeatures = gaAllowAdFeatures !== undefined ? gaAllowAdFeatures : true;\n window.gtag(\"config\", options.trackingId, {\n anonymize_ip: gaAnonymize,\n allow_google_signals: gaAllowAdFeatures\n });\n }\n};\n\nexports.trackGoogleTagManager = function (options, location) {\n // console.log(`tracking tag manager`)\n if (getCookie(options.cookieName) === \"true\" && validGTMTrackingId(options) && typeof window.gtag === \"function\") {\n var pagePath = location ? location.pathname + location.search + location.hash : undefined;\n window.gtag(\"event\", \"page_view\", {\n page_path: pagePath\n });\n }\n\n setTimeout(function () {\n var data = options.dataLayerName ? window[options.dataLayerName] : window.dataLayer;\n\n if (typeof data === \"object\") {\n var eventName = options.routeChangeEvent || \"gatsbyRouteChange\";\n data.push({\n event: eventName\n });\n }\n }, 50);\n};","var _require = require('../helper'),\n validHotjarId = _require.validHotjarId,\n getCookie = _require.getCookie;\n\nexports.addHotjar = function (options) {\n return new Promise(function (resolve, reject) {\n if (window.gatsbyPluginGDPRCookiesHotjarAdded) return resolve(true);\n /* eslint-disable */\n\n !function (h, o, t, j, a, r) {\n h.hj = h.hj || function () {\n (h.hj.q = h.hj.q || []).push(arguments);\n };\n\n h._hjSettings = {\n hjid: options.hjid,\n hjsv: options.hjsv\n };\n a = o.getElementsByTagName('head')[0];\n r = o.createElement('script');\n r.async = 1;\n r.src = t + h._hjSettings.hjid + j + h._hjSettings.hjsv;\n a.appendChild(r);\n }(window, document, 'https://static.hotjar.com/c/hotjar-', '.js?sv=');\n /* eslint-enable */\n\n window.gatsbyPluginGDPRCookiesHotjarAdded = true;\n resolve(true);\n });\n};\n\nexports.initializeHotjar = function (options) {\n if (!window.gatsbyPluginGDPRCookiesHotjarInitialized && getCookie(options.cookieName) === \"true\" && validHotjarId(options)) {\n window.gatsbyPluginGDPRCookiesHotjarInitialized = true;\n }\n};\n\nexports.trackHotjar = function (options) {// this is supposed to so nothing\n};","var _require = require('../helper'),\n validGATrackingId = _require.validGATrackingId,\n validGTMTrackingId = _require.validGTMTrackingId,\n validFbPixelId = _require.validFbPixelId,\n validTikTokPixelId = _require.validTikTokPixelId,\n validHotjarId = _require.validHotjarId,\n validChatwootConfig = _require.validChatwootConfig,\n validLinkedinTrackingId = _require.validLinkedinTrackingId,\n getCookie = _require.getCookie;\n\nvar _require2 = require('./google-analytics'),\n addGoogleAnalytics = _require2.addGoogleAnalytics,\n initializeGoogleAnalytics = _require2.initializeGoogleAnalytics,\n trackGoogleAnalytics = _require2.trackGoogleAnalytics;\n\nvar _require3 = require('./google-tag-manager'),\n addGoogleTagManager = _require3.addGoogleTagManager,\n initializeGoogleTagManager = _require3.initializeGoogleTagManager,\n trackGoogleTagManager = _require3.trackGoogleTagManager;\n\nvar _require4 = require('./facebook'),\n addFacebookPixel = _require4.addFacebookPixel,\n initializeFacebookPixel = _require4.initializeFacebookPixel,\n trackFacebookPixel = _require4.trackFacebookPixel;\n\nvar _require5 = require('./tiktok'),\n addTikTokPixel = _require5.addTikTokPixel,\n initializeTikTokPixel = _require5.initializeTikTokPixel,\n trackTikTokPixel = _require5.trackTikTokPixel;\n\nvar _require6 = require('./hotjar'),\n addHotjar = _require6.addHotjar,\n initializeHotjar = _require6.initializeHotjar,\n trackHotjar = _require6.trackHotjar;\n\nvar _require7 = require('./chatwoot'),\n addChatwoot = _require7.addChatwoot;\n\nvar _require8 = require('./linkedin'),\n addLinkedin = _require8.addLinkedin,\n initializeLinkedin = _require8.initializeLinkedin;\n\nexports.initializeAndTrackGoogleAnalytics = function (options, location) {\n if (getCookie(options.cookieName) === \"true\" && validGATrackingId(options)) {\n addGoogleAnalytics(options).then(function (status) {\n if (status) {\n initializeGoogleAnalytics(options);\n trackGoogleAnalytics(options, location);\n }\n });\n }\n};\n\nexports.initializeAndTrackGoogleTagManager = function (options, location) {\n if (getCookie(options.cookieName) === \"true\" && validGTMTrackingId(options)) {\n var environmentParamStr = \"\";\n\n if (options.gtmAuth && options.gtmPreview) {\n environmentParamStr = \">m_auth=\" + options.gtmAuth + \">m_preview=\" + options.gtmPreview + \">m_cookies_win=x\";\n }\n\n addGoogleTagManager(options, environmentParamStr).then(function (status) {\n if (status) {\n initializeGoogleTagManager(options);\n trackGoogleTagManager(options, location);\n }\n });\n }\n};\n\nexports.initializeAndTrackFacebookPixel = function (options) {\n if (getCookie(options.cookieName) === \"true\" && validFbPixelId(options)) {\n addFacebookPixel().then(function (status) {\n if (status) {\n initializeFacebookPixel(options);\n trackFacebookPixel(options);\n }\n });\n }\n};\n\nexports.initializeAndTrackTikTokPixel = function (options) {\n if (getCookie(options.cookieName) === \"true\" && validTikTokPixelId(options)) {\n addTikTokPixel().then(function (status) {\n if (status) {\n initializeTikTokPixel(options);\n trackTikTokPixel(options);\n }\n });\n }\n};\n\nexports.initializeAndTrackHotjar = function (options) {\n if (getCookie(options.cookieName) === \"true\" && validHotjarId(options)) {\n addHotjar(options).then(function (status) {\n if (status) {\n initializeHotjar(options);\n trackHotjar(options);\n }\n });\n }\n};\n\nexports.initializeLinkedin = function (options) {\n if (getCookie(options.cookieName) === \"true\" && validLinkedinTrackingId(options)) {\n addLinkedin(options).then(function (status) {\n if (status) {\n initializeLinkedin(options);\n }\n });\n }\n};\n\nexports.initializeChatwoot = function (options) {\n if (getCookie(options.cookieName) === \"true\" && validChatwootConfig(options)) {\n addChatwoot(options).then(function (status) {\n if (status) {\n console.info('Chat is added and running');\n }\n });\n }\n};","var _require = require('../helper'),\n validLinkedinTrackingId = _require.validLinkedinTrackingId,\n getCookie = _require.getCookie;\n\nexports.addLinkedin = function (options) {\n return new Promise(function (resolve, reject) {\n if (window.gatsbyPluginGDPRCookiesLinkedinAdded) return resolve(true);\n /* eslint-disable */\n // LINKED IN SPECIFIC CODE HERE\n\n _linkedin_partner_id = options.trackingId;\n window._linkedin_data_partner_ids = window._linkedin_data_partner_ids || [];\n\n window._linkedin_data_partner_ids.push(_linkedin_partner_id);\n /* eslint-enable */\n\n\n window.gatsbyPluginGDPRCookiesLinkedinAdded = true;\n resolve(true);\n });\n};\n\nexports.initializeLinkedin = function (options) {\n if (!window.gatsbyPluginGDPRCookiesLinkedinInitialized && getCookie(options.cookieName) === \"true\" && validLinkedinTrackingId(options)) {\n // (function(){\n var s = document.getElementsByTagName(\"script\")[0];\n var b = document.createElement(\"script\");\n b.type = \"text/javascript\";\n b.async = true;\n b.src = \"https://snap.licdn.com/li.lms-analytics/insight.min.js\";\n s.parentNode.insertBefore(b, s); // })();\n\n window.gatsbyPluginGDPRCookiesLinkedinInitialized = true;\n }\n};","var _require = require('../helper'),\n validTikTokPixelId = _require.validTikTokPixelId,\n getCookie = _require.getCookie;\n\nexports.addTikTokPixel = function () {\n return new Promise(function (resolve, reject) {\n if (window.gatsbyPluginGDPRCookiesTikTokPixelAdded) return resolve(true);\n /* eslint-disable */\n\n !function (w, d, t) {\n w.TiktokAnalyticsObject = t;\n var ttq = w[t] = w[t] || [];\n ttq.methods = [\"page\", \"track\", \"identify\", \"instances\", \"debug\", \"on\", \"off\", \"once\", \"ready\", \"alias\", \"group\", \"enableCookie\", \"disableCookie\"], ttq.setAndDefer = function (t, e) {\n t[e] = function () {\n t.push([e].concat(Array.prototype.slice.call(arguments, 0)));\n };\n };\n\n for (var i = 0; i < ttq.methods.length; i++) {\n ttq.setAndDefer(ttq, ttq.methods[i]);\n }\n\n ttq.instance = function (t) {\n for (var e = ttq._i[t] || [], n = 0; n < ttq.methods.length; n++) {\n ttq.setAndDefer(e, ttq.methods[n]);\n }\n\n return e;\n }, ttq.load = function (e, n) {\n var i = \"https://analytics.tiktok.com/i18n/pixel/events.js\";\n ttq._i = ttq._i || {}, ttq._i[e] = [], ttq._i[e]._u = i, ttq._t = ttq._t || {}, ttq._t[e] = +new Date(), ttq._o = ttq._o || {}, ttq._o[e] = n || {};\n n = document.createElement(\"script\");\n n.type = \"text/javascript\", n.async = !0, n.src = i + \"?sdkid=\" + e + \"&lib=\" + t;\n e = document.getElementsByTagName(\"script\")[0];\n e.parentNode.insertBefore(n, e);\n };\n }(window, document, 'ttq');\n /* eslint-enable */\n\n window.gatsbyPluginGDPRCookiesTikTokPixelAdded = true;\n resolve(true);\n });\n};\n\nexports.initializeTikTokPixel = function (options) {\n if (!window.gatsbyPluginGDPRCookiesTikTokPixelInitialized && getCookie(options.cookieName) === \"true\" && validTikTokPixelId(options)) {\n window.ttq.load(options.pixelId);\n window.gatsbyPluginGDPRCookiesTikTokPixelInitialized = true;\n }\n};\n\nexports.trackTikTokPixel = function (options) {\n if (getCookie(options.cookieName) === \"true\" && validTikTokPixelId(options) && typeof window.fbq === \"function\") {\n window.fbq(\"track\", \"PageView\");\n window.ttq.page();\n }\n};","/* global __MANIFEST_PLUGIN_HAS_LOCALISATION__ */\nimport { withPrefix } from \"gatsby\";\nimport getManifestForPathname from \"./get-manifest-pathname\";\n\n// when we don't have localisation in our manifest, we tree shake everything away\nexport const onRouteUpdate = function onRouteUpdate({\n location\n}, pluginOptions) {\n if (__MANIFEST_PLUGIN_HAS_LOCALISATION__) {\n const {\n localize\n } = pluginOptions;\n const manifestFilename = getManifestForPathname(location.pathname, localize, true);\n const manifestEl = document.head.querySelector(`link[rel=\"manifest\"]`);\n if (manifestEl) {\n manifestEl.setAttribute(`href`, withPrefix(manifestFilename));\n }\n }\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _gatsby = require(\"gatsby\");\n/**\n * Get a manifest filename depending on localized pathname\n *\n * @param {string} pathname\n * @param {Array<{start_url: string, lang: string}>} localizedManifests\n * @param {boolean} shouldPrependPathPrefix\n * @return string\n */\nvar _default = (pathname, localizedManifests, shouldPrependPathPrefix = false) => {\n const defaultFilename = `manifest.webmanifest`;\n if (!Array.isArray(localizedManifests)) {\n return defaultFilename;\n }\n const localizedManifest = localizedManifests.find(app => {\n let startUrl = app.start_url;\n if (shouldPrependPathPrefix) {\n startUrl = (0, _gatsby.withPrefix)(startUrl);\n }\n return pathname.startsWith(startUrl);\n });\n if (!localizedManifest) {\n return defaultFilename;\n }\n return `manifest_${localizedManifest.lang}.webmanifest`;\n};\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nexports.__esModule = true;\nexports.default = Wrapper;\n\nvar _react = _interopRequireWildcard(require(\"react\"));\n\nvar _sal = _interopRequireDefault(require(\"sal.js\"));\n\nfunction Wrapper(_ref) {\n var children = _ref.children,\n path = _ref.path,\n options = _ref.options;\n (0, _react.useEffect)(function () {\n (0, _sal.default)(options);\n }, [path]);\n return children;\n}","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _objectWithoutPropertiesLoose2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutPropertiesLoose\"));\n\nrequire('sal.js/dist/sal.css');\n\nrequire('intersection-observer');\n\nvar React = require(\"react\");\n\nvar Wrapper = require('./Wrapper').default;\n\nexports.wrapPageElement = function (_ref, _ref2) {\n var element = _ref.element,\n props = _ref.props;\n var plugins = _ref2.plugins,\n options = (0, _objectWithoutPropertiesLoose2.default)(_ref2, [\"plugins\"]);\n return (\n /*#__PURE__*/\n React.createElement(Wrapper, {\n options: options,\n path: props.path\n }, element)\n );\n};","/**\n * Copyright 2016 Google Inc. All Rights Reserved.\n *\n * Licensed under the W3C SOFTWARE AND DOCUMENT NOTICE AND LICENSE.\n *\n * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document\n *\n */\n(function() {\n'use strict';\n\n// Exit early if we're not running in a browser.\nif (typeof window !== 'object') {\n return;\n}\n\n// Exit early if all IntersectionObserver and IntersectionObserverEntry\n// features are natively supported.\nif ('IntersectionObserver' in window &&\n 'IntersectionObserverEntry' in window &&\n 'intersectionRatio' in window.IntersectionObserverEntry.prototype) {\n\n // Minimal polyfill for Edge 15's lack of `isIntersecting`\n // See: https://github.com/w3c/IntersectionObserver/issues/211\n if (!('isIntersecting' in window.IntersectionObserverEntry.prototype)) {\n Object.defineProperty(window.IntersectionObserverEntry.prototype,\n 'isIntersecting', {\n get: function () {\n return this.intersectionRatio > 0;\n }\n });\n }\n return;\n}\n\n\n/**\n * A local reference to the document.\n */\nvar document = window.document;\n\n\n/**\n * An IntersectionObserver registry. This registry exists to hold a strong\n * reference to IntersectionObserver instances currently observing a target\n * element. Without this registry, instances without another reference may be\n * garbage collected.\n */\nvar registry = [];\n\n\n/**\n * Creates the global IntersectionObserverEntry constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-entry\n * @param {Object} entry A dictionary of instance properties.\n * @constructor\n */\nfunction IntersectionObserverEntry(entry) {\n this.time = entry.time;\n this.target = entry.target;\n this.rootBounds = entry.rootBounds;\n this.boundingClientRect = entry.boundingClientRect;\n this.intersectionRect = entry.intersectionRect || getEmptyRect();\n this.isIntersecting = !!entry.intersectionRect;\n\n // Calculates the intersection ratio.\n var targetRect = this.boundingClientRect;\n var targetArea = targetRect.width * targetRect.height;\n var intersectionRect = this.intersectionRect;\n var intersectionArea = intersectionRect.width * intersectionRect.height;\n\n // Sets intersection ratio.\n if (targetArea) {\n // Round the intersection ratio to avoid floating point math issues:\n // https://github.com/w3c/IntersectionObserver/issues/324\n this.intersectionRatio = Number((intersectionArea / targetArea).toFixed(4));\n } else {\n // If area is zero and is intersecting, sets to 1, otherwise to 0\n this.intersectionRatio = this.isIntersecting ? 1 : 0;\n }\n}\n\n\n/**\n * Creates the global IntersectionObserver constructor.\n * https://w3c.github.io/IntersectionObserver/#intersection-observer-interface\n * @param {Function} callback The function to be invoked after intersection\n * changes have queued. The function is not invoked if the queue has\n * been emptied by calling the `takeRecords` method.\n * @param {Object=} opt_options Optional configuration options.\n * @constructor\n */\nfunction IntersectionObserver(callback, opt_options) {\n\n var options = opt_options || {};\n\n if (typeof callback != 'function') {\n throw new Error('callback must be a function');\n }\n\n if (options.root && options.root.nodeType != 1) {\n throw new Error('root must be an Element');\n }\n\n // Binds and throttles `this._checkForIntersections`.\n this._checkForIntersections = throttle(\n this._checkForIntersections.bind(this), this.THROTTLE_TIMEOUT);\n\n // Private properties.\n this._callback = callback;\n this._observationTargets = [];\n this._queuedEntries = [];\n this._rootMarginValues = this._parseRootMargin(options.rootMargin);\n\n // Public properties.\n this.thresholds = this._initThresholds(options.threshold);\n this.root = options.root || null;\n this.rootMargin = this._rootMarginValues.map(function(margin) {\n return margin.value + margin.unit;\n }).join(' ');\n}\n\n\n/**\n * The minimum interval within which the document will be checked for\n * intersection changes.\n */\nIntersectionObserver.prototype.THROTTLE_TIMEOUT = 100;\n\n\n/**\n * The frequency in which the polyfill polls for intersection changes.\n * this can be updated on a per instance basis and must be set prior to\n * calling `observe` on the first target.\n */\nIntersectionObserver.prototype.POLL_INTERVAL = null;\n\n/**\n * Use a mutation observer on the root element\n * to detect intersection changes.\n */\nIntersectionObserver.prototype.USE_MUTATION_OBSERVER = true;\n\n\n/**\n * Starts observing a target element for intersection changes based on\n * the thresholds values.\n * @param {Element} target The DOM element to observe.\n */\nIntersectionObserver.prototype.observe = function(target) {\n var isTargetAlreadyObserved = this._observationTargets.some(function(item) {\n return item.element == target;\n });\n\n if (isTargetAlreadyObserved) {\n return;\n }\n\n if (!(target && target.nodeType == 1)) {\n throw new Error('target must be an Element');\n }\n\n this._registerInstance();\n this._observationTargets.push({element: target, entry: null});\n this._monitorIntersections();\n this._checkForIntersections();\n};\n\n\n/**\n * Stops observing a target element for intersection changes.\n * @param {Element} target The DOM element to observe.\n */\nIntersectionObserver.prototype.unobserve = function(target) {\n this._observationTargets =\n this._observationTargets.filter(function(item) {\n\n return item.element != target;\n });\n if (!this._observationTargets.length) {\n this._unmonitorIntersections();\n this._unregisterInstance();\n }\n};\n\n\n/**\n * Stops observing all target elements for intersection changes.\n */\nIntersectionObserver.prototype.disconnect = function() {\n this._observationTargets = [];\n this._unmonitorIntersections();\n this._unregisterInstance();\n};\n\n\n/**\n * Returns any queue entries that have not yet been reported to the\n * callback and clears the queue. This can be used in conjunction with the\n * callback to obtain the absolute most up-to-date intersection information.\n * @return {Array} The currently queued entries.\n */\nIntersectionObserver.prototype.takeRecords = function() {\n var records = this._queuedEntries.slice();\n this._queuedEntries = [];\n return records;\n};\n\n\n/**\n * Accepts the threshold value from the user configuration object and\n * returns a sorted array of unique threshold values. If a value is not\n * between 0 and 1 and error is thrown.\n * @private\n * @param {Array|number=} opt_threshold An optional threshold value or\n * a list of threshold values, defaulting to [0].\n * @return {Array} A sorted list of unique and valid threshold values.\n */\nIntersectionObserver.prototype._initThresholds = function(opt_threshold) {\n var threshold = opt_threshold || [0];\n if (!Array.isArray(threshold)) threshold = [threshold];\n\n return threshold.sort().filter(function(t, i, a) {\n if (typeof t != 'number' || isNaN(t) || t < 0 || t > 1) {\n throw new Error('threshold must be a number between 0 and 1 inclusively');\n }\n return t !== a[i - 1];\n });\n};\n\n\n/**\n * Accepts the rootMargin value from the user configuration object\n * and returns an array of the four margin values as an object containing\n * the value and unit properties. If any of the values are not properly\n * formatted or use a unit other than px or %, and error is thrown.\n * @private\n * @param {string=} opt_rootMargin An optional rootMargin value,\n * defaulting to '0px'.\n * @return {Array