{"version":3,"file":"commons-99cfb021430b05eed4e8.js","mappings":"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","sources":["webpack://my-gatsby-site/./node_modules/react-fast-compare/index.js","webpack://my-gatsby-site/./node_modules/@fortawesome/fontawesome-svg-core/index.mjs","webpack://my-gatsby-site/./node_modules/@fortawesome/react-fontawesome/index.es.js","webpack://my-gatsby-site/./node_modules/react-side-effect/lib/index.js","webpack://my-gatsby-site/../src/image-utils.ts","webpack://my-gatsby-site/../src/components/hooks.ts","webpack://my-gatsby-site/../src/components/layout-wrapper.tsx","webpack://my-gatsby-site/../src/components/picture.tsx","webpack://my-gatsby-site/../src/components/placeholder.tsx","webpack://my-gatsby-site/../src/components/main-image.tsx","webpack://my-gatsby-site/../src/components/gatsby-image.server.tsx","webpack://my-gatsby-site/../src/components/gatsby-image.browser.tsx","webpack://my-gatsby-site/../src/components/static-image.server.tsx","webpack://my-gatsby-site/../src/components/static-image.tsx","webpack://my-gatsby-site/./node_modules/camelcase/index.js","webpack://my-gatsby-site/./src/helpers/colors.js","webpack://my-gatsby-site/./src/components/GlobalStyles.js","webpack://my-gatsby-site/./node_modules/react-helmet/es/Helmet.js","webpack://my-gatsby-site/./node_modules/gatsby/dist/internal-plugins/bundle-optimisations/polyfills/object-assign.js"],"sourcesContent":["/* global Map:readonly, Set:readonly, ArrayBuffer:readonly */\n\nvar hasElementType = typeof Element !== 'undefined';\nvar hasMap = typeof Map === 'function';\nvar hasSet = typeof Set === 'function';\nvar hasArrayBuffer = typeof ArrayBuffer === 'function' && !!ArrayBuffer.isView;\n\n// Note: We **don't** need `envHasBigInt64Array` in fde es6/index.js\n\nfunction equal(a, b) {\n // START: fast-deep-equal es6/index.js 3.1.3\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n // START: Modifications:\n // 1. Extra `has &&` helpers in initial condition allow es6 code\n // to co-exist with es5.\n // 2. Replace `for of` with es5 compliant iteration using `for`.\n // Basically, take:\n //\n // ```js\n // for (i of a.entries())\n // if (!b.has(i[0])) return false;\n // ```\n //\n // ... and convert to:\n //\n // ```js\n // it = a.entries();\n // while (!(i = it.next()).done)\n // if (!b.has(i.value[0])) return false;\n // ```\n //\n // **Note**: `i` access switches to `i.value`.\n var it;\n if (hasMap && (a instanceof Map) && (b instanceof Map)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!equal(i.value[1], b.get(i.value[0]))) return false;\n return true;\n }\n\n if (hasSet && (a instanceof Set) && (b instanceof Set)) {\n if (a.size !== b.size) return false;\n it = a.entries();\n while (!(i = it.next()).done)\n if (!b.has(i.value[0])) return false;\n return true;\n }\n // END: Modifications\n\n if (hasArrayBuffer && ArrayBuffer.isView(a) && ArrayBuffer.isView(b)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (a[i] !== b[i]) return false;\n return true;\n }\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n // START: Modifications:\n // Apply guards for `Object.create(null)` handling. See:\n // - https://github.com/FormidableLabs/react-fast-compare/issues/64\n // - https://github.com/epoberezkin/fast-deep-equal/issues/49\n if (a.valueOf !== Object.prototype.valueOf && typeof a.valueOf === 'function' && typeof b.valueOf === 'function') return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString && typeof a.toString === 'function' && typeof b.toString === 'function') return a.toString() === b.toString();\n // END: Modifications\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n // END: fast-deep-equal\n\n // START: react-fast-compare\n // custom handling for DOM elements\n if (hasElementType && a instanceof Element) return false;\n\n // custom handling for React/Preact\n for (i = length; i-- !== 0;) {\n if ((keys[i] === '_owner' || keys[i] === '__v' || keys[i] === '__o') && a.$$typeof) {\n // React-specific: avoid traversing React elements' _owner\n // Preact-specific: avoid traversing Preact elements' __v and __o\n // __v = $_original / $_vnode\n // __o = $_owner\n // These properties contain circular references and are not needed when\n // comparing the actual elements (and not their owners)\n // .$$typeof and ._store on just reasonable markers of elements\n\n continue;\n }\n\n // all other properties should be traversed as usual\n if (!equal(a[keys[i]], b[keys[i]])) return false;\n }\n // END: react-fast-compare\n\n // START: fast-deep-equal\n return true;\n }\n\n return a !== a && b !== b;\n}\n// end fast-deep-equal\n\nmodule.exports = function isEqual(a, b) {\n try {\n return equal(a, b);\n } catch (error) {\n if (((error.message || '').match(/stack|recursion/i))) {\n // warn on circular references, don't crash\n // browsers give this different errors name and messages:\n // chrome/safari: \"RangeError\", \"Maximum call stack size exceeded\"\n // firefox: \"InternalError\", too much recursion\"\n // edge: \"Error\", \"Out of stack space\"\n console.warn('react-fast-compare cannot handle circular refs');\n return false;\n }\n // some other error. we should definitely know about these\n throw error;\n }\n};\n","/*!\n * Font Awesome Free 6.7.2 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 2024 Fonticons, Inc.\n */\nfunction _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && _setPrototypeOf(t, e);\n}\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nfunction _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}\nfunction _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nfunction _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nfunction _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n}\nfunction _wrapRegExp() {\n _wrapRegExp = function (e, r) {\n return new BabelRegExp(e, void 0, r);\n };\n var e = RegExp.prototype,\n r = new WeakMap();\n function BabelRegExp(e, t, p) {\n var o = RegExp(e, t);\n return r.set(o, p || r.get(e)), _setPrototypeOf(o, BabelRegExp.prototype);\n }\n function buildGroups(e, t) {\n var p = r.get(t);\n return Object.keys(p).reduce(function (r, t) {\n var o = p[t];\n if (\"number\" == typeof o) r[t] = e[o];else {\n for (var i = 0; void 0 === e[o[i]] && i + 1 < o.length;) i++;\n r[t] = e[o[i]];\n }\n return r;\n }, Object.create(null));\n }\n return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (r) {\n var t = e.exec.call(this, r);\n if (t) {\n t.groups = buildGroups(t, this);\n var p = t.indices;\n p && (p.groups = buildGroups(p, this));\n }\n return t;\n }, BabelRegExp.prototype[Symbol.replace] = function (t, p) {\n if (\"string\" == typeof p) {\n var o = r.get(this);\n return e[Symbol.replace].call(this, t, p.replace(/\\$<([^>]+)>/g, function (e, r) {\n var t = o[r];\n return \"$\" + (Array.isArray(t) ? t.join(\"$\") : t);\n }));\n }\n if (\"function\" == typeof p) {\n var i = this;\n return e[Symbol.replace].call(this, t, function () {\n var e = arguments;\n return \"object\" != typeof e[e.length - 1] && (e = [].slice.call(e)).push(buildGroups(e, i)), p.apply(this, e);\n });\n }\n return e[Symbol.replace].call(this, t, p);\n }, _wrapRegExp.apply(this, arguments);\n}\n\nconst noop = () => {};\nlet _WINDOW = {};\nlet _DOCUMENT = {};\nlet _MUTATION_OBSERVER = null;\nlet _PERFORMANCE = {\n mark: noop,\n measure: noop\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) {}\nconst {\n userAgent = ''\n} = _WINDOW.navigator || {};\nconst WINDOW = _WINDOW;\nconst DOCUMENT = _DOCUMENT;\nconst MUTATION_OBSERVER = _MUTATION_OBSERVER;\nconst PERFORMANCE = _PERFORMANCE;\nconst IS_BROWSER = !!WINDOW.document;\nconst IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\nconst IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\nvar p = /fa(s|r|l|t|d|dr|dl|dt|b|k|kd|ss|sr|sl|st|sds|sdr|sdl|sdt)?[\\-\\ ]/,\n g = /Font ?Awesome ?([56 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp Duotone|Sharp|Kit)?.*/i;\nvar S = {\n classic: {\n fa: \"solid\",\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 fab: \"brands\",\n \"fa-brands\": \"brands\"\n },\n duotone: {\n fa: \"solid\",\n fad: \"solid\",\n \"fa-solid\": \"solid\",\n \"fa-duotone\": \"solid\",\n fadr: \"regular\",\n \"fa-regular\": \"regular\",\n fadl: \"light\",\n \"fa-light\": \"light\",\n fadt: \"thin\",\n \"fa-thin\": \"thin\"\n },\n sharp: {\n fa: \"solid\",\n fass: \"solid\",\n \"fa-solid\": \"solid\",\n fasr: \"regular\",\n \"fa-regular\": \"regular\",\n fasl: \"light\",\n \"fa-light\": \"light\",\n fast: \"thin\",\n \"fa-thin\": \"thin\"\n },\n \"sharp-duotone\": {\n fa: \"solid\",\n fasds: \"solid\",\n \"fa-solid\": \"solid\",\n fasdr: \"regular\",\n \"fa-regular\": \"regular\",\n fasdl: \"light\",\n \"fa-light\": \"light\",\n fasdt: \"thin\",\n \"fa-thin\": \"thin\"\n }\n },\n A = {\n GROUP: \"duotone-group\",\n SWAP_OPACITY: \"swap-opacity\",\n PRIMARY: \"primary\",\n SECONDARY: \"secondary\"\n },\n P = [\"fa-classic\", \"fa-duotone\", \"fa-sharp\", \"fa-sharp-duotone\"];\nvar s = \"classic\",\n t = \"duotone\",\n r = \"sharp\",\n o = \"sharp-duotone\",\n L = [s, t, r, o];\nvar G = {\n classic: {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\",\n 100: \"fat\"\n },\n duotone: {\n 900: \"fad\",\n 400: \"fadr\",\n 300: \"fadl\",\n 100: \"fadt\"\n },\n sharp: {\n 900: \"fass\",\n 400: \"fasr\",\n 300: \"fasl\",\n 100: \"fast\"\n },\n \"sharp-duotone\": {\n 900: \"fasds\",\n 400: \"fasdr\",\n 300: \"fasdl\",\n 100: \"fasdt\"\n }\n };\nvar lt = {\n \"Font Awesome 6 Free\": {\n 900: \"fas\",\n 400: \"far\"\n },\n \"Font Awesome 6 Pro\": {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\",\n 100: \"fat\"\n },\n \"Font Awesome 6 Brands\": {\n 400: \"fab\",\n normal: \"fab\"\n },\n \"Font Awesome 6 Duotone\": {\n 900: \"fad\",\n 400: \"fadr\",\n normal: \"fadr\",\n 300: \"fadl\",\n 100: \"fadt\"\n },\n \"Font Awesome 6 Sharp\": {\n 900: \"fass\",\n 400: \"fasr\",\n normal: \"fasr\",\n 300: \"fasl\",\n 100: \"fast\"\n },\n \"Font Awesome 6 Sharp Duotone\": {\n 900: \"fasds\",\n 400: \"fasdr\",\n normal: \"fasdr\",\n 300: \"fasdl\",\n 100: \"fasdt\"\n }\n };\nvar pt = new Map([[\"classic\", {\n defaultShortPrefixId: \"fas\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\", \"regular\", \"light\", \"thin\", \"brands\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"sharp\", {\n defaultShortPrefixId: \"fass\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\", \"regular\", \"light\", \"thin\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"duotone\", {\n defaultShortPrefixId: \"fad\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\", \"regular\", \"light\", \"thin\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"sharp-duotone\", {\n defaultShortPrefixId: \"fasds\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\", \"regular\", \"light\", \"thin\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }]]),\n xt = {\n classic: {\n solid: \"fas\",\n regular: \"far\",\n light: \"fal\",\n thin: \"fat\",\n brands: \"fab\"\n },\n duotone: {\n solid: \"fad\",\n regular: \"fadr\",\n light: \"fadl\",\n thin: \"fadt\"\n },\n sharp: {\n solid: \"fass\",\n regular: \"fasr\",\n light: \"fasl\",\n thin: \"fast\"\n },\n \"sharp-duotone\": {\n solid: \"fasds\",\n regular: \"fasdr\",\n light: \"fasdl\",\n thin: \"fasdt\"\n }\n };\nvar Ft = [\"fak\", \"fa-kit\", \"fakd\", \"fa-kit-duotone\"],\n St = {\n kit: {\n fak: \"kit\",\n \"fa-kit\": \"kit\"\n },\n \"kit-duotone\": {\n fakd: \"kit-duotone\",\n \"fa-kit-duotone\": \"kit-duotone\"\n }\n },\n At = [\"kit\"];\nvar Ct = {\n kit: {\n \"fa-kit\": \"fak\"\n },\n \"kit-duotone\": {\n \"fa-kit-duotone\": \"fakd\"\n }\n};\nvar Lt = [\"fak\", \"fakd\"],\n Wt = {\n kit: {\n fak: \"fa-kit\"\n },\n \"kit-duotone\": {\n fakd: \"fa-kit-duotone\"\n }\n };\nvar Et = {\n kit: {\n kit: \"fak\"\n },\n \"kit-duotone\": {\n \"kit-duotone\": \"fakd\"\n }\n };\n\nvar t$1 = {\n GROUP: \"duotone-group\",\n SWAP_OPACITY: \"swap-opacity\",\n PRIMARY: \"primary\",\n SECONDARY: \"secondary\"\n },\n r$1 = [\"fa-classic\", \"fa-duotone\", \"fa-sharp\", \"fa-sharp-duotone\"];\nvar bt$1 = [\"fak\", \"fa-kit\", \"fakd\", \"fa-kit-duotone\"];\nvar Yt = {\n \"Font Awesome Kit\": {\n 400: \"fak\",\n normal: \"fak\"\n },\n \"Font Awesome Kit Duotone\": {\n 400: \"fakd\",\n normal: \"fakd\"\n }\n };\nvar ua = {\n classic: {\n \"fa-brands\": \"fab\",\n \"fa-duotone\": \"fad\",\n \"fa-light\": \"fal\",\n \"fa-regular\": \"far\",\n \"fa-solid\": \"fas\",\n \"fa-thin\": \"fat\"\n },\n duotone: {\n \"fa-regular\": \"fadr\",\n \"fa-light\": \"fadl\",\n \"fa-thin\": \"fadt\"\n },\n sharp: {\n \"fa-solid\": \"fass\",\n \"fa-regular\": \"fasr\",\n \"fa-light\": \"fasl\",\n \"fa-thin\": \"fast\"\n },\n \"sharp-duotone\": {\n \"fa-solid\": \"fasds\",\n \"fa-regular\": \"fasdr\",\n \"fa-light\": \"fasdl\",\n \"fa-thin\": \"fasdt\"\n }\n },\n I$1 = {\n classic: [\"fas\", \"far\", \"fal\", \"fat\", \"fad\"],\n duotone: [\"fadr\", \"fadl\", \"fadt\"],\n sharp: [\"fass\", \"fasr\", \"fasl\", \"fast\"],\n \"sharp-duotone\": [\"fasds\", \"fasdr\", \"fasdl\", \"fasdt\"]\n },\n ga = {\n classic: {\n fab: \"fa-brands\",\n fad: \"fa-duotone\",\n fal: \"fa-light\",\n far: \"fa-regular\",\n fas: \"fa-solid\",\n fat: \"fa-thin\"\n },\n duotone: {\n fadr: \"fa-regular\",\n fadl: \"fa-light\",\n fadt: \"fa-thin\"\n },\n sharp: {\n fass: \"fa-solid\",\n fasr: \"fa-regular\",\n fasl: \"fa-light\",\n fast: \"fa-thin\"\n },\n \"sharp-duotone\": {\n fasds: \"fa-solid\",\n fasdr: \"fa-regular\",\n fasdl: \"fa-light\",\n fasdt: \"fa-thin\"\n }\n },\n x = [\"fa-solid\", \"fa-regular\", \"fa-light\", \"fa-thin\", \"fa-duotone\", \"fa-brands\"],\n Ia = [\"fa\", \"fas\", \"far\", \"fal\", \"fat\", \"fad\", \"fadr\", \"fadl\", \"fadt\", \"fab\", \"fass\", \"fasr\", \"fasl\", \"fast\", \"fasds\", \"fasdr\", \"fasdl\", \"fasdt\", ...r$1, ...x],\n m$1 = [\"solid\", \"regular\", \"light\", \"thin\", \"duotone\", \"brands\"],\n c$1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],\n F$1 = c$1.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]),\n ma = [...Object.keys(I$1), ...m$1, \"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\", t$1.GROUP, t$1.SWAP_OPACITY, t$1.PRIMARY, t$1.SECONDARY].concat(c$1.map(a => \"\".concat(a, \"x\"))).concat(F$1.map(a => \"w-\".concat(a)));\nvar wa = {\n \"Font Awesome 5 Free\": {\n 900: \"fas\",\n 400: \"far\"\n },\n \"Font Awesome 5 Pro\": {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\"\n },\n \"Font Awesome 5 Brands\": {\n 400: \"fab\",\n normal: \"fab\"\n },\n \"Font Awesome 5 Duotone\": {\n 900: \"fad\"\n }\n };\n\nconst NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\nconst UNITS_IN_GRID = 16;\nconst DEFAULT_CSS_PREFIX = 'fa';\nconst DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';\nconst DATA_FA_I2SVG = 'data-fa-i2svg';\nconst DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';\nconst DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';\nconst DATA_PREFIX = 'data-prefix';\nconst DATA_ICON = 'data-icon';\nconst HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';\nconst MUTATION_APPROACH_ASYNC = 'async';\nconst TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];\nconst PRODUCTION = (() => {\n try {\n return process.env.NODE_ENV === 'production';\n } catch (e$$1) {\n return false;\n }\n})();\nfunction familyProxy(obj) {\n // Defaults to the classic family if family is not available\n return new Proxy(obj, {\n get(target, prop) {\n return prop in target ? target[prop] : target[s];\n }\n });\n}\nconst _PREFIX_TO_STYLE = _objectSpread2({}, S);\n\n// We changed FACSSClassesToStyleId in the icons repo to be canonical and as such, \"classic\" family does not have any\n// duotone styles. But we do still need duotone in _PREFIX_TO_STYLE below, so we are manually adding\n// {'fa-duotone': 'duotone'}\n_PREFIX_TO_STYLE[s] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n 'fa-duotone': 'duotone'\n}), S[s]), St['kit']), St['kit-duotone']);\nconst PREFIX_TO_STYLE = familyProxy(_PREFIX_TO_STYLE);\nconst _STYLE_TO_PREFIX = _objectSpread2({}, xt);\n\n// We changed FAStyleIdToShortPrefixId in the icons repo to be canonical and as such, \"classic\" family does not have any\n// duotone styles. But we do still need duotone in _STYLE_TO_PREFIX below, so we are manually adding {duotone: 'fad'}\n_STYLE_TO_PREFIX[s] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n duotone: 'fad'\n}), _STYLE_TO_PREFIX[s]), Et['kit']), Et['kit-duotone']);\nconst STYLE_TO_PREFIX = familyProxy(_STYLE_TO_PREFIX);\nconst _PREFIX_TO_LONG_STYLE = _objectSpread2({}, ga);\n_PREFIX_TO_LONG_STYLE[s] = _objectSpread2(_objectSpread2({}, _PREFIX_TO_LONG_STYLE[s]), Wt['kit']);\nconst PREFIX_TO_LONG_STYLE = familyProxy(_PREFIX_TO_LONG_STYLE);\nconst _LONG_STYLE_TO_PREFIX = _objectSpread2({}, ua);\n_LONG_STYLE_TO_PREFIX[s] = _objectSpread2(_objectSpread2({}, _LONG_STYLE_TO_PREFIX[s]), Ct['kit']);\nconst LONG_STYLE_TO_PREFIX = familyProxy(_LONG_STYLE_TO_PREFIX);\nconst ICON_SELECTION_SYNTAX_PATTERN = p; // eslint-disable-line no-useless-escape\n\nconst LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\nconst FONT_FAMILY_PATTERN = g;\nconst _FONT_WEIGHT_TO_PREFIX = _objectSpread2({}, G);\nconst FONT_WEIGHT_TO_PREFIX = familyProxy(_FONT_WEIGHT_TO_PREFIX);\nconst ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];\nconst DUOTONE_CLASSES = A;\nconst RESERVED_CLASSES = [...At, ...ma];\n\nconst initial = WINDOW.FontAwesomeConfig || {};\nfunction getAttrConfig(attr) {\n var element = DOCUMENT.querySelector('script[' + attr + ']');\n if (element) {\n return element.getAttribute(attr);\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 if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n}\nif (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n const attrs = [['data-family-prefix', 'familyPrefix'], ['data-css-prefix', 'cssPrefix'], ['data-family-default', 'familyDefault'], ['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(_ref => {\n let [attr, key] = _ref;\n const val = coerce(getAttrConfig(attr));\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n}\nconst _default = {\n styleDefault: 'solid',\n familyDefault: s,\n cssPrefix: DEFAULT_CSS_PREFIX,\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\n// familyPrefix is deprecated but we must still support it if present\nif (initial.familyPrefix) {\n initial.cssPrefix = initial.familyPrefix;\n}\nconst _config = _objectSpread2(_objectSpread2({}, _default), initial);\nif (!_config.autoReplaceSvg) _config.observeMutations = false;\nconst config = {};\nObject.keys(_default).forEach(key => {\n Object.defineProperty(config, key, {\n enumerable: true,\n set: function (val) {\n _config[key] = val;\n _onChangeCb.forEach(cb => cb(config));\n },\n get: function () {\n return _config[key];\n }\n });\n});\n\n// familyPrefix is deprecated as of 6.2.0 and should be removed in 7.0.0\nObject.defineProperty(config, 'familyPrefix', {\n enumerable: true,\n set: function (val) {\n _config.cssPrefix = val;\n _onChangeCb.forEach(cb => cb(config));\n },\n get: function () {\n return _config.cssPrefix;\n }\n});\nWINDOW.FontAwesomeConfig = config;\nconst _onChangeCb = [];\nfunction onChange(cb) {\n _onChangeCb.push(cb);\n return () => {\n _onChangeCb.splice(_onChangeCb.indexOf(cb), 1);\n };\n}\n\nconst d$2 = UNITS_IN_GRID;\nconst 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 const style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n const headChildren = DOCUMENT.head.childNodes;\n let beforeChild = null;\n for (let i = headChildren.length - 1; i > -1; i--) {\n const child = headChildren[i];\n const tagName = (child.tagName || '').toUpperCase();\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n}\nconst idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\nfunction nextUniqueId() {\n let size = 12;\n let id = '';\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n return id;\n}\nfunction toArray(obj) {\n const array = [];\n for (let i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\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(i => i);\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((acc, attributeName) => {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n}\nfunction joinStyles(styles) {\n return Object.keys(styles || {}).reduce((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 let {\n transform,\n containerWidth,\n iconWidth\n } = _ref;\n const outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n const innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n const innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n const innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n const inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n const path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer,\n inner,\n path\n };\n}\nfunction transformForCss(_ref2) {\n let {\n transform,\n width = UNITS_IN_GRID,\n height = UNITS_IN_GRID,\n startCentered = false\n } = _ref2;\n let val = '';\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d$2 - width / 2, \"em, \").concat(transform.y / d$2 - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d$2, \"em), calc(-50% + \").concat(transform.y / d$2, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d$2, \"em, \").concat(transform.y / d$2, \"em) \");\n }\n val += \"scale(\".concat(transform.size / d$2 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d$2 * (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 Free\\\";\\n --fa-font-regular: normal 400 1em/1 \\\"Font Awesome 6 Free\\\";\\n --fa-font-light: normal 300 1em/1 \\\"Font Awesome 6 Pro\\\";\\n --fa-font-thin: normal 100 1em/1 \\\"Font Awesome 6 Pro\\\";\\n --fa-font-duotone: normal 900 1em/1 \\\"Font Awesome 6 Duotone\\\";\\n --fa-font-duotone-regular: normal 400 1em/1 \\\"Font Awesome 6 Duotone\\\";\\n --fa-font-duotone-light: normal 300 1em/1 \\\"Font Awesome 6 Duotone\\\";\\n --fa-font-duotone-thin: normal 100 1em/1 \\\"Font Awesome 6 Duotone\\\";\\n --fa-font-brands: normal 400 1em/1 \\\"Font Awesome 6 Brands\\\";\\n --fa-font-sharp-solid: normal 900 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-sharp-regular: normal 400 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-sharp-light: normal 300 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-sharp-thin: normal 100 1em/1 \\\"Font Awesome 6 Sharp\\\";\\n --fa-font-sharp-duotone-solid: normal 900 1em/1 \\\"Font Awesome 6 Sharp Duotone\\\";\\n --fa-font-sharp-duotone-regular: normal 400 1em/1 \\\"Font Awesome 6 Sharp Duotone\\\";\\n --fa-font-sharp-duotone-light: normal 300 1em/1 \\\"Font Awesome 6 Sharp Duotone\\\";\\n --fa-font-sharp-duotone-thin: normal 100 1em/1 \\\"Font Awesome 6 Sharp Duotone\\\";\\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 transform-origin: center center;\\n}\\n\\n.fa-layers-text {\\n left: 50%;\\n top: 50%;\\n transform: translate(-50%, -50%);\\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 transform: scale(var(--fa-counter-scale, 0.25));\\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 transform: scale(var(--fa-layers-scale, 0.25));\\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 transform: scale(var(--fa-layers-scale, 0.25));\\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 transform: scale(var(--fa-layers-scale, 0.25));\\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 transform: scale(var(--fa-layers-scale, 0.25));\\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(-1 * var(--fa-li-width, 2em));\\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 animation-name: fa-beat;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-bounce {\\n animation-name: fa-bounce;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\\n}\\n\\n.fa-fade {\\n animation-name: fa-fade;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-beat-fade {\\n animation-name: fa-beat-fade;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-flip {\\n animation-name: fa-flip;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-shake {\\n animation-name: fa-shake;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin {\\n animation-name: fa-spin;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 2s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\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 animation-name: fa-spin;\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\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 animation-delay: -1ms;\\n animation-duration: 1ms;\\n animation-iteration-count: 1;\\n transition-delay: 0s;\\n transition-duration: 0s;\\n }\\n}\\n@keyframes fa-beat {\\n 0%, 90% {\\n transform: scale(1);\\n }\\n 45% {\\n transform: scale(var(--fa-beat-scale, 1.25));\\n }\\n}\\n@keyframes fa-bounce {\\n 0% {\\n transform: scale(1, 1) translateY(0);\\n }\\n 10% {\\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 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 transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n }\\n 57% {\\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n }\\n 64% {\\n transform: scale(1, 1) translateY(0);\\n }\\n 100% {\\n transform: scale(1, 1) translateY(0);\\n }\\n}\\n@keyframes fa-fade {\\n 50% {\\n opacity: var(--fa-fade-opacity, 0.4);\\n }\\n}\\n@keyframes fa-beat-fade {\\n 0%, 100% {\\n opacity: var(--fa-beat-fade-opacity, 0.4);\\n transform: scale(1);\\n }\\n 50% {\\n opacity: 1;\\n transform: scale(var(--fa-beat-fade-scale, 1.125));\\n }\\n}\\n@keyframes fa-flip {\\n 50% {\\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-shake {\\n 0% {\\n transform: rotate(-15deg);\\n }\\n 4% {\\n transform: rotate(15deg);\\n }\\n 8%, 24% {\\n transform: rotate(-18deg);\\n }\\n 12%, 28% {\\n transform: rotate(18deg);\\n }\\n 16% {\\n transform: rotate(-22deg);\\n }\\n 20% {\\n transform: rotate(22deg);\\n }\\n 32% {\\n transform: rotate(-12deg);\\n }\\n 36% {\\n transform: rotate(12deg);\\n }\\n 40%, 100% {\\n transform: rotate(0deg);\\n }\\n}\\n@keyframes fa-spin {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(360deg);\\n }\\n}\\n.fa-rotate-90 {\\n transform: rotate(90deg);\\n}\\n\\n.fa-rotate-180 {\\n transform: rotate(180deg);\\n}\\n\\n.fa-rotate-270 {\\n transform: rotate(270deg);\\n}\\n\\n.fa-flip-horizontal {\\n transform: scale(-1, 1);\\n}\\n\\n.fa-flip-vertical {\\n transform: scale(1, -1);\\n}\\n\\n.fa-flip-both,\\n.fa-flip-horizontal.fa-flip-vertical {\\n transform: scale(-1, -1);\\n}\\n\\n.fa-rotate-by {\\n transform: rotate(var(--fa-rotate-angle, 0));\\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\nfunction css() {\n const dcp = DEFAULT_CSS_PREFIX;\n const drc = DEFAULT_REPLACEMENT_CLASS;\n const fp = config.cssPrefix;\n const rc = config.replacementClass;\n let s = baseStyles;\n if (fp !== dcp || rc !== drc) {\n const dPatt = new RegExp(\"\\\\.\".concat(dcp, \"\\\\-\"), 'g');\n const customPropPatt = new RegExp(\"\\\\--\".concat(dcp, \"\\\\-\"), 'g');\n const rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n return s;\n}\nlet _cssInserted = false;\nfunction ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n}\nvar InjectCSS = {\n mixout() {\n return {\n dom: {\n css,\n insertCss: ensureCss\n }\n };\n },\n hooks() {\n return {\n beforeDOMElementCreation() {\n ensureCss();\n },\n beforeI2svg() {\n ensureCss();\n }\n };\n }\n};\n\nconst 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\nconst functions = [];\nconst listener = function () {\n DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n loaded = 1;\n functions.map(fn => fn());\n};\nlet loaded = false;\nif (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n}\nfunction domready (fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n}\n\nfunction toHtml(abstractNodes) {\n const {\n tag,\n attributes = {},\n children = []\n } = abstractNodes;\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"\");\n }\n}\n\nfunction iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix,\n 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 */\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 */\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 if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\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 */\n\nfunction ucs2decode(string) {\n const output = [];\n let counter = 0;\n const length = string.length;\n while (counter < length) {\n const value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n const extra = string.charCodeAt(counter++);\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 return output;\n}\nfunction toHex(unicode) {\n const decoded = ucs2decode(unicode);\n return decoded.length === 1 ? decoded[0].toString(16) : null;\n}\nfunction codePointAt(string, index) {\n const size = string.length;\n let first = string.charCodeAt(index);\n let second;\n if (first >= 0xD800 && first <= 0xDBFF && size > index + 1) {\n second = string.charCodeAt(index + 1);\n if (second >= 0xDC00 && second <= 0xDFFF) {\n return (first - 0xD800) * 0x400 + second - 0xDC00 + 0x10000;\n }\n }\n return first;\n}\n\nfunction normalizeIcons(icons) {\n return Object.keys(icons).reduce((acc, iconName) => {\n const icon = icons[iconName];\n const expanded = !!icon.icon;\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n return acc;\n }, {});\n}\nfunction defineIcons(prefix, icons) {\n let params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n const {\n skipHooks = false\n } = params;\n const normalized = normalizeIcons(icons);\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 /**\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 if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n}\n\nconst duotonePathRe = [/*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\".*path d=\"([^\"]+)\"/, {\n d1: 1,\n d2: 2\n}), /*#__PURE__*/_wrapRegExp(/path class=\"([^\"]+)\".*d=\"([^\"]+)\".*path class=\"([^\"]+)\".*d=\"([^\"]+)\"/, {\n cls1: 1,\n d1: 2,\n cls2: 3,\n d2: 4\n}), /*#__PURE__*/_wrapRegExp(/path class=\"([^\"]+)\".*d=\"([^\"]+)\"/, {\n cls1: 1,\n d1: 2\n})];\n\nconst {\n styles,\n shims\n} = namespace;\nconst FAMILY_NAMES = Object.keys(PREFIX_TO_LONG_STYLE);\nconst PREFIXES_FOR_FAMILY = FAMILY_NAMES.reduce((acc, familyId) => {\n acc[familyId] = Object.keys(PREFIX_TO_LONG_STYLE[familyId]);\n return acc;\n}, {});\nlet _defaultUsablePrefix = null;\nlet _byUnicode = {};\nlet _byLigature = {};\nlet _byOldName = {};\nlet _byOldUnicode = {};\nlet _byAlias = {};\nfunction isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n}\nfunction getIconName(cssPrefix, cls) {\n const parts = cls.split('-');\n const prefix = parts[0];\n const iconName = parts.slice(1).join('-');\n if (prefix === cssPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n}\nconst build = () => {\n const lookup = reducer => {\n return reduce(styles, (o$$1, style, prefix) => {\n o$$1[prefix] = reduce(style, reducer, {});\n return o$$1;\n }, {});\n };\n _byUnicode = lookup((acc, icon, iconName) => {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n if (icon[2]) {\n const aliases = icon[2].filter(a$$1 => {\n return typeof a$$1 === 'number';\n });\n aliases.forEach(alias => {\n acc[alias.toString(16)] = iconName;\n });\n }\n return acc;\n });\n _byLigature = lookup((acc, icon, iconName) => {\n acc[iconName] = iconName;\n if (icon[2]) {\n const aliases = icon[2].filter(a$$1 => {\n return typeof a$$1 === 'string';\n });\n aliases.forEach(alias => {\n acc[alias] = iconName;\n });\n }\n return acc;\n });\n _byAlias = lookup((acc, icon, iconName) => {\n const aliases = icon[2];\n acc[iconName] = iconName;\n aliases.forEach(alias => {\n acc[alias] = iconName;\n });\n return acc;\n });\n\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 const hasRegular = 'far' in styles || config.autoFetchSvg;\n const shimLookups = reduce(shims, (acc, shim) => {\n const maybeNameMaybeUnicode = shim[0];\n let prefix = shim[1];\n const iconName = shim[2];\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n if (typeof maybeNameMaybeUnicode === 'string') {\n acc.names[maybeNameMaybeUnicode] = {\n prefix,\n iconName\n };\n }\n if (typeof maybeNameMaybeUnicode === 'number') {\n acc.unicodes[maybeNameMaybeUnicode.toString(16)] = {\n prefix,\n iconName\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 family: config.familyDefault\n });\n};\nonChange(c$$1 => {\n _defaultUsablePrefix = getCanonicalPrefix(c$$1.styleDefault, {\n family: config.familyDefault\n });\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 const oldUnicode = _byOldUnicode[unicode];\n const 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}\nconst emptyCanonicalIcon = () => {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n};\nfunction getFamilyId(values) {\n let family = s;\n const famProps = FAMILY_NAMES.reduce((acc, familyId) => {\n acc[familyId] = \"\".concat(config.cssPrefix, \"-\").concat(familyId);\n return acc;\n }, {});\n L.forEach(familyId => {\n if (values.includes(famProps[familyId]) || values.some(v$$1 => PREFIXES_FOR_FAMILY[familyId].includes(v$$1))) {\n family = familyId;\n }\n });\n return family;\n}\nfunction getCanonicalPrefix(styleOrPrefix) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n family = s\n } = params;\n const style = PREFIX_TO_STYLE[family][styleOrPrefix];\n\n // handles the exception of passing in only a family of 'duotone' with no style\n if (family === t && !styleOrPrefix) {\n return 'fad';\n }\n const prefix = STYLE_TO_PREFIX[family][styleOrPrefix] || STYLE_TO_PREFIX[family][style];\n const defined = styleOrPrefix in namespace.styles ? styleOrPrefix : null;\n const result = prefix || defined || null;\n return result;\n}\nfunction moveNonFaClassesToRest(classNames) {\n let rest = [];\n let iconName = null;\n classNames.forEach(cls => {\n const result = getIconName(config.cssPrefix, cls);\n if (result) {\n iconName = result;\n } else if (cls) {\n rest.push(cls);\n }\n });\n return {\n iconName,\n rest\n };\n}\nfunction sortedUniqueValues(arr) {\n return arr.sort().filter((value, index, arr) => {\n return arr.indexOf(value) === index;\n });\n}\nfunction getCanonicalIcon(values) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n skipLookups = false\n } = params;\n let givenPrefix = null;\n const faCombinedClasses = Ia.concat(bt$1);\n const faStyleOrFamilyClasses = sortedUniqueValues(values.filter(cls => faCombinedClasses.includes(cls)));\n const nonStyleOrFamilyClasses = sortedUniqueValues(values.filter(cls => !Ia.includes(cls)));\n const faStyles = faStyleOrFamilyClasses.filter(cls => {\n givenPrefix = cls;\n return !P.includes(cls);\n });\n const [styleFromValues = null] = faStyles;\n const family = getFamilyId(faStyleOrFamilyClasses);\n const canonical = _objectSpread2(_objectSpread2({}, moveNonFaClassesToRest(nonStyleOrFamilyClasses)), {}, {\n prefix: getCanonicalPrefix(styleFromValues, {\n family\n })\n });\n return _objectSpread2(_objectSpread2(_objectSpread2({}, canonical), getDefaultCanonicalPrefix({\n values,\n family,\n styles,\n config,\n canonical,\n givenPrefix\n })), applyShimAndAlias(skipLookups, givenPrefix, canonical));\n}\nfunction applyShimAndAlias(skipLookups, givenPrefix, canonical) {\n let {\n prefix,\n iconName\n } = canonical;\n if (skipLookups || !prefix || !iconName) {\n return {\n prefix,\n iconName\n };\n }\n const shim = givenPrefix === 'fa' ? byOldName(iconName) : {};\n const aliasIconName = byAlias(prefix, iconName);\n iconName = shim.iconName || aliasIconName || iconName;\n prefix = shim.prefix || prefix;\n if (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 prefix = 'fas';\n }\n return {\n prefix,\n iconName\n };\n}\nconst newCanonicalFamilies = L.filter(familyId => {\n return familyId !== s || familyId !== t;\n});\nconst newCanonicalStyles = Object.keys(ga).filter(key => key !== s).map(key => Object.keys(ga[key])).flat();\nfunction getDefaultCanonicalPrefix(prefixOptions) {\n const {\n values,\n family,\n canonical,\n givenPrefix = '',\n styles = {},\n config: config$$1 = {}\n } = prefixOptions;\n const isDuotoneFamily = family === t;\n const valuesHasDuotone = values.includes('fa-duotone') || values.includes('fad');\n const defaultFamilyIsDuotone = config$$1.familyDefault === 'duotone';\n const canonicalPrefixIsDuotone = canonical.prefix === 'fad' || canonical.prefix === 'fa-duotone';\n if (!isDuotoneFamily && (valuesHasDuotone || defaultFamilyIsDuotone || canonicalPrefixIsDuotone)) {\n canonical.prefix = 'fad';\n }\n if (values.includes('fa-brands') || values.includes('fab')) {\n canonical.prefix = 'fab';\n }\n if (!canonical.prefix && newCanonicalFamilies.includes(family)) {\n const validPrefix = Object.keys(styles).find(key => newCanonicalStyles.includes(key));\n if (validPrefix || config$$1.autoFetchSvg) {\n const defaultPrefix = pt.get(family).defaultShortPrefixId;\n canonical.prefix = defaultPrefix;\n canonical.iconName = byAlias(canonical.prefix, canonical.iconName) || canonical.iconName;\n }\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 return canonical;\n}\n\nclass Library {\n constructor() {\n this.definitions = {};\n }\n add() {\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n const additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(key => {\n this.definitions[key] = _objectSpread2(_objectSpread2({}, this.definitions[key] || {}), additions[key]);\n defineIcons(key, additions[key]);\n\n // TODO can we stop doing this? We can't get the icons by 'fa-solid' any longer so this probably needs to change\n const longPrefix = PREFIX_TO_LONG_STYLE[s][key];\n if (longPrefix) defineIcons(longPrefix, additions[key]);\n build();\n });\n }\n reset() {\n this.definitions = {};\n }\n _pullDefinitions(additions, definition) {\n const normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(key => {\n const {\n prefix,\n iconName,\n icon\n } = normalized[key];\n const aliases = icon[2];\n if (!additions[prefix]) additions[prefix] = {};\n if (aliases.length > 0) {\n aliases.forEach(alias => {\n if (typeof alias === 'string') {\n additions[prefix][alias] = icon;\n }\n });\n }\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n}\n\nlet _plugins = [];\nlet _hooks = {};\nconst providers = {};\nconst defaultProviderKeys = Object.keys(providers);\nfunction registerPlugins(nextPlugins, _ref) {\n let {\n mixoutsTo: obj\n } = _ref;\n _plugins = nextPlugins;\n _hooks = {};\n Object.keys(providers).forEach(k => {\n if (defaultProviderKeys.indexOf(k) === -1) {\n delete providers[k];\n }\n });\n _plugins.forEach(plugin => {\n const mixout = plugin.mixout ? plugin.mixout() : {};\n Object.keys(mixout).forEach(tk => {\n if (typeof mixout[tk] === 'function') {\n obj[tk] = mixout[tk];\n }\n if (typeof mixout[tk] === 'object') {\n Object.keys(mixout[tk]).forEach(sk => {\n if (!obj[tk]) {\n obj[tk] = {};\n }\n obj[tk][sk] = mixout[tk][sk];\n });\n }\n });\n if (plugin.hooks) {\n const hooks = plugin.hooks();\n Object.keys(hooks).forEach(hook => {\n if (!_hooks[hook]) {\n _hooks[hook] = [];\n }\n _hooks[hook].push(hooks[hook]);\n });\n }\n if (plugin.provides) {\n plugin.provides(providers);\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 const hookFns = _hooks[hook] || [];\n hookFns.forEach(hookFn => {\n accumulator = hookFn.apply(null, [accumulator, ...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 const hookFns = _hooks[hook] || [];\n hookFns.forEach(hookFn => {\n hookFn.apply(null, args);\n });\n return undefined;\n}\nfunction callProvided() {\n const hook = arguments[0];\n const 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 let {\n iconName\n } = iconLookup;\n const 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}\nconst library = new Library();\nconst noAuto = () => {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n callHooks('noAuto');\n};\nconst dom = {\n i2svg: function () {\n let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (IS_DOM) {\n callHooks('beforeI2svg', params);\n callProvided('pseudoElements2svg', params);\n return callProvided('i2svg', params);\n } else {\n return Promise.reject(new Error('Operation requires a DOM of some kind.'));\n }\n },\n watch: function () {\n let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const {\n autoReplaceSvgRoot\n } = params;\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n config.observeMutations = true;\n domready(() => {\n autoReplace({\n autoReplaceSvgRoot\n });\n callHooks('watch', params);\n });\n }\n};\nconst parse = {\n icon: icon => {\n if (icon === null) {\n return null;\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 if (Array.isArray(icon) && icon.length === 2) {\n const iconName = icon[1].indexOf('fa-') === 0 ? icon[1].slice(3) : icon[1];\n const prefix = getCanonicalPrefix(icon[0]);\n return {\n prefix,\n iconName: byAlias(prefix, iconName) || iconName\n };\n }\n if (typeof icon === 'string' && (icon.indexOf(\"\".concat(config.cssPrefix, \"-\")) > -1 || icon.match(ICON_SELECTION_SYNTAX_PATTERN))) {\n const 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 if (typeof icon === 'string') {\n const prefix = getDefaultUsablePrefix();\n return {\n prefix,\n iconName: byAlias(prefix, icon) || icon\n };\n }\n }\n};\nconst api = {\n noAuto,\n config,\n dom,\n parse,\n library,\n findIconDefinition,\n toHtml\n};\nconst autoReplace = function () {\n let params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n const {\n autoReplaceSvgRoot = DOCUMENT\n } = params;\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 () {\n return val.abstract.map(a => toHtml(a));\n }\n });\n Object.defineProperty(val, 'node', {\n get: function () {\n if (!IS_DOM) return;\n const container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n}\n\nfunction asIcon (_ref) {\n let {\n children,\n main,\n mask,\n attributes,\n styles,\n transform\n } = _ref;\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n const {\n width,\n height\n } = main;\n const 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 return [{\n tag: 'svg',\n attributes,\n children\n }];\n}\n\nfunction asSymbol (_ref) {\n let {\n prefix,\n iconName,\n children,\n attributes,\n symbol\n } = _ref;\n const id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.cssPrefix, \"-\").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\n }),\n children\n }]\n }];\n}\n\nfunction makeInlineSvgAbstract(params) {\n const {\n icons: {\n main,\n mask\n },\n prefix,\n iconName,\n transform,\n symbol,\n title,\n maskId,\n titleId,\n extra,\n watchable = false\n } = params;\n const {\n width,\n height\n } = mask.found ? mask : main;\n const isUploadedIcon = Lt.includes(prefix);\n const attrClass = [config.replacementClass, iconName ? \"\".concat(config.cssPrefix, \"-\").concat(iconName) : ''].filter(c$$1 => extra.classes.indexOf(c$$1) === -1).filter(c$$1 => c$$1 !== '' || !!c$$1).concat(extra.classes).join(' ');\n let 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 const uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? {\n width: \"\".concat(width / height * 16 * 0.0625, \"em\")\n } : {};\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\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 const args = _objectSpread2(_objectSpread2({}, content), {}, {\n prefix,\n iconName,\n main,\n mask,\n maskId,\n transform,\n symbol,\n styles: _objectSpread2(_objectSpread2({}, uploadedIconWidthStyle), extra.styles)\n });\n const {\n children,\n attributes\n } = mask.found && main.found ? callProvided('generateAbstractMask', args) || {\n children: [],\n attributes: {}\n } : callProvided('generateAbstractIcon', args) || {\n children: [],\n attributes: {}\n };\n args.children = children;\n args.attributes = attributes;\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n}\nfunction makeLayersTextAbstract(params) {\n const {\n content,\n width,\n height,\n transform,\n title,\n extra,\n watchable = false\n } = params;\n const attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {\n 'title': title\n } : {}), {}, {\n 'class': extra.classes.join(' ')\n });\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n const styles = _objectSpread2({}, extra.styles);\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform,\n startCentered: true,\n width,\n height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n const styleString = joinStyles(styles);\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n const val = [];\n val.push({\n tag: 'span',\n attributes,\n children: [content]\n });\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n return val;\n}\nfunction makeLayersCounterAbstract(params) {\n const {\n content,\n title,\n extra\n } = params;\n const attributes = _objectSpread2(_objectSpread2(_objectSpread2({}, extra.attributes), title ? {\n 'title': title\n } : {}), {}, {\n 'class': extra.classes.join(' ')\n });\n const styleString = joinStyles(extra.styles);\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n const val = [];\n val.push({\n tag: 'span',\n attributes,\n children: [content]\n });\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n return val;\n}\n\nconst {\n styles: styles$1\n} = namespace;\nfunction asFoundIcon(icon) {\n const width = icon[0];\n const height = icon[1];\n const [vectorData] = icon.slice(4);\n let element = null;\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").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 return {\n found: true,\n width,\n height,\n icon: element\n };\n}\nconst missingIconResolutionMixin = {\n found: false,\n width: 512,\n height: 512\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}\nfunction findIcon(iconName, prefix) {\n let givenPrefix = prefix;\n if (prefix === 'fa' && config.styleDefault !== null) {\n prefix = getDefaultUsablePrefix();\n }\n return new Promise((resolve, reject) => {\n if (givenPrefix === 'fa') {\n const shim = byOldName(iconName) || {};\n iconName = shim.iconName || iconName;\n prefix = shim.prefix || prefix;\n }\n if (iconName && prefix && styles$1[prefix] && styles$1[prefix][iconName]) {\n const icon = styles$1[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n maybeNotifyMissing(iconName, prefix);\n resolve(_objectSpread2(_objectSpread2({}, missingIconResolutionMixin), {}, {\n icon: config.showMissingIcons && iconName ? callProvided('missingIconAbstract') || {} : {}\n }));\n });\n}\n\nconst noop$1 = () => {};\nconst p$2 = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n};\nconst preamble = \"FA \\\"6.7.2\\\"\";\nconst begin = name => {\n p$2.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return () => end(name);\n};\nconst end = name => {\n p$2.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p$2.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n};\nvar perf = {\n begin,\n end\n};\n\nconst noop$2 = () => {};\nfunction isWatched(node) {\n const i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n}\nfunction hasPrefixAndIcon(node) {\n const prefix = node.getAttribute ? node.getAttribute(DATA_PREFIX) : null;\n const icon = node.getAttribute ? node.getAttribute(DATA_ICON) : null;\n return prefix && icon;\n}\nfunction hasBeenReplaced(node) {\n return node && node.classList && node.classList.contains && node.classList.contains(config.replacementClass);\n}\nfunction getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n const mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n}\nfunction createElementNS(tag) {\n return DOCUMENT.createElementNS('http://www.w3.org/2000/svg', tag);\n}\nfunction createElement(tag) {\n return DOCUMENT.createElement(tag);\n}\nfunction convertSVG(abstractObj) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n ceFn = abstractObj.tag === 'svg' ? createElementNS : createElement\n } = params;\n if (typeof abstractObj === 'string') {\n return DOCUMENT.createTextNode(abstractObj);\n }\n const tag = ceFn(abstractObj.tag);\n Object.keys(abstractObj.attributes || []).forEach(function (key) {\n tag.setAttribute(key, abstractObj.attributes[key]);\n });\n const children = abstractObj.children || [];\n children.forEach(function (child) {\n tag.appendChild(convertSVG(child, {\n ceFn\n }));\n });\n return tag;\n}\nfunction nodeAsComment(node) {\n let comment = \" \".concat(node.outerHTML, \" \");\n /* BEGIN.ATTRIBUTION */\n comment = \"\".concat(comment, \"Font Awesome fontawesome.com \");\n /* END.ATTRIBUTION */\n return comment;\n}\nconst mutators = {\n replace: function (mutation) {\n const node = mutation[0];\n if (node.parentNode) {\n mutation[1].forEach(abstract => {\n node.parentNode.insertBefore(convertSVG(abstract), node);\n });\n if (node.getAttribute(DATA_FA_I2SVG) === null && config.keepOriginalSource) {\n let comment = DOCUMENT.createComment(nodeAsComment(node));\n node.parentNode.replaceChild(comment, node);\n } else {\n node.remove();\n }\n }\n },\n nest: function (mutation) {\n const node = mutation[0];\n const abstract = mutation[1];\n\n // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n const forSvg = new RegExp(\"\".concat(config.cssPrefix, \"-.*\"));\n delete abstract[0].attributes.id;\n if (abstract[0].attributes.class) {\n const splitClasses = abstract[0].attributes.class.split(' ').reduce((acc, cls) => {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n if (splitClasses.toNode.length === 0) {\n node.removeAttribute('class');\n } else {\n node.setAttribute('class', splitClasses.toNode.join(' '));\n }\n }\n const newInnerHTML = abstract.map(a => toHtml(a)).join('\\n');\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n};\nfunction performOperationSync(op) {\n op();\n}\nfunction perform(mutations, callback) {\n const callbackFunction = typeof callback === 'function' ? callback : noop$2;\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n let frame = performOperationSync;\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n frame(() => {\n const mutator = getMutator();\n const mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n}\nlet disabled = false;\nfunction disableObservation() {\n disabled = true;\n}\nfunction enableObservation() {\n disabled = false;\n}\nlet mo = null;\nfunction observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n if (!config.observeMutations) {\n return;\n }\n const {\n treeCallback = noop$2,\n nodeCallback = noop$2,\n pseudoElementsCallback = noop$2,\n observeMutationsRoot = DOCUMENT\n } = options;\n mo = new MUTATION_OBSERVER(objects => {\n if (disabled) return;\n const defaultPrefix = getDefaultUsablePrefix();\n toArray(objects).forEach(mutationRecord => {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n treeCallback(mutationRecord.target);\n }\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target.parentNode);\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 const {\n prefix,\n iconName\n } = getCanonicalIcon(classArray(mutationRecord.target));\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 const style = node.getAttribute('style');\n let val = [];\n if (style) {\n val = style.split(';').reduce((acc, style) => {\n const styles = style.split(':');\n const prop = styles[0];\n const value = styles.slice(1);\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n return acc;\n }, {});\n }\n return val;\n}\n\nfunction classParser (node) {\n const existingPrefix = node.getAttribute('data-prefix');\n const existingIconName = node.getAttribute('data-icon');\n const innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n let val = getCanonicalIcon(classArray(node));\n if (!val.prefix) {\n val.prefix = getDefaultUsablePrefix();\n }\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n if (val.iconName && val.prefix) {\n return val;\n }\n if (val.prefix && innerText.length > 0) {\n val.iconName = byLigature(val.prefix, node.innerText) || byUnicode(val.prefix, toHex(node.innerText));\n }\n if (!val.iconName && config.autoFetchSvg && node.firstChild && node.firstChild.nodeType === Node.TEXT_NODE) {\n val.iconName = node.firstChild.data;\n }\n return val;\n}\n\nfunction attributesParser (node) {\n const extraAttributes = toArray(node.attributes).reduce((acc, attr) => {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n return acc;\n }, {});\n const title = node.getAttribute('title');\n const titleId = node.getAttribute('data-fa-title-id');\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 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 let parser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n styleParser: true\n };\n const {\n iconName,\n prefix,\n rest: extraClasses\n } = classParser(node);\n const extraAttributes = attributesParser(node);\n const pluginMeta = chainHooks('parseNodeAttributes', {}, node);\n let extraStyles = parser.styleParser ? styleParser(node) : [];\n return _objectSpread2({\n iconName,\n title: node.getAttribute('title'),\n titleId: node.getAttribute('data-fa-title-id'),\n 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\nconst {\n styles: styles$2\n} = namespace;\nfunction generateMutation(node) {\n const nodeMeta = config.autoReplaceSvg === 'nest' ? parseMeta(node, {\n styleParser: false\n }) : parseMeta(node);\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}\nfunction getKnownPrefixes() {\n return [...Ft, ...Ia];\n}\nfunction onTree(root) {\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return Promise.resolve();\n const htmlClassList = DOCUMENT.documentElement.classList;\n const hclAdd = suffix => htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n const hclRemove = suffix => htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n const prefixes = config.autoFetchSvg ? getKnownPrefixes() : P.concat(Object.keys(styles$2));\n if (!prefixes.includes('fa')) {\n prefixes.push('fa');\n }\n const prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(p$$1 => \".\".concat(p$$1, \":not([\").concat(DATA_FA_I2SVG, \"])\"))).join(', ');\n if (prefixesDomQuery.length === 0) {\n return Promise.resolve();\n }\n let candidates = [];\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e$$1) {\n // noop\n }\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return Promise.resolve();\n }\n const mark = perf.begin('onTree');\n const mutations = candidates.reduce((acc, node) => {\n try {\n const mutation = generateMutation(node);\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e$$1) {\n if (!PRODUCTION) {\n if (e$$1.name === 'MissingIcon') {\n console.error(e$$1);\n }\n }\n }\n return acc;\n }, []);\n return new Promise((resolve, reject) => {\n Promise.all(mutations).then(resolvedMutations => {\n perform(resolvedMutations, () => {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(e$$1 => {\n mark();\n reject(e$$1);\n });\n });\n}\nfunction onNode(node) {\n let callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(mutation => {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n}\nfunction resolveIcons(next) {\n return function (maybeIconDefinition) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n let {\n mask\n } = params;\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n return next(iconDefinition, _objectSpread2(_objectSpread2({}, params), {}, {\n mask\n }));\n };\n}\nconst render = function (iconDefinition) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n transform = meaninglessTransform,\n symbol = false,\n mask = null,\n maskId = null,\n title = null,\n titleId = null,\n classes = [],\n attributes = {},\n styles = {}\n } = params;\n if (!iconDefinition) return;\n const {\n prefix,\n iconName,\n icon\n } = iconDefinition;\n return domVariants(_objectSpread2({\n type: 'icon'\n }, iconDefinition), () => {\n callHooks('beforeDOMElementCreation', {\n iconDefinition,\n params\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 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,\n iconName,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n symbol,\n title,\n maskId,\n titleId,\n extra: {\n attributes,\n styles,\n classes\n }\n });\n });\n};\nvar ReplaceElements = {\n mixout() {\n return {\n icon: resolveIcons(render)\n };\n },\n hooks() {\n return {\n mutationObserverCallbacks(accumulator) {\n accumulator.treeCallback = onTree;\n accumulator.nodeCallback = onNode;\n return accumulator;\n }\n };\n },\n provides(providers$$1) {\n providers$$1.i2svg = function (params) {\n const {\n node = DOCUMENT,\n callback = () => {}\n } = params;\n return onTree(node, callback);\n };\n providers$$1.generateSvgReplacementMutation = function (node, nodeMeta) {\n const {\n iconName,\n title,\n titleId,\n prefix,\n transform,\n symbol,\n mask,\n maskId,\n extra\n } = nodeMeta;\n return new Promise((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(_ref => {\n let [main, mask] = _ref;\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main,\n mask\n },\n prefix,\n iconName,\n transform,\n symbol,\n maskId,\n title,\n titleId,\n extra,\n watchable: true\n })]);\n }).catch(reject);\n });\n };\n providers$$1.generateAbstractIcon = function (_ref2) {\n let {\n children,\n attributes,\n main,\n transform,\n styles\n } = _ref2;\n const styleString = joinStyles(styles);\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n let nextChild;\n if (transformIsMeaningful(transform)) {\n nextChild = callProvided('generateAbstractTransformGrouping', {\n main,\n transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n }\n children.push(nextChild || main.icon);\n return {\n children,\n attributes\n };\n };\n }\n};\n\nvar Layers = {\n mixout() {\n return {\n layer(assembler) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n classes = []\n } = params;\n return domVariants({\n type: 'layer'\n }, () => {\n callHooks('beforeDOMElementCreation', {\n assembler,\n params\n });\n let children = [];\n assembler(args => {\n Array.isArray(args) ? args.map(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.cssPrefix, \"-layers\"), ...classes].join(' ')\n },\n children\n }];\n });\n }\n };\n }\n};\n\nvar LayersCounter = {\n mixout() {\n return {\n counter(content) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n title = null,\n classes = [],\n attributes = {},\n styles = {}\n } = params;\n return domVariants({\n type: 'counter',\n content\n }, () => {\n callHooks('beforeDOMElementCreation', {\n content,\n params\n });\n return makeLayersCounterAbstract({\n content: content.toString(),\n title,\n extra: {\n attributes,\n styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-counter\"), ...classes]\n }\n });\n });\n }\n };\n }\n};\n\nvar LayersText = {\n mixout() {\n return {\n text(content) {\n let params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n const {\n transform = meaninglessTransform,\n title = null,\n classes = [],\n attributes = {},\n styles = {}\n } = params;\n return domVariants({\n type: 'text',\n content\n }, () => {\n callHooks('beforeDOMElementCreation', {\n content,\n params\n });\n return makeLayersTextAbstract({\n content,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n title,\n extra: {\n attributes,\n styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-text\"), ...classes]\n }\n });\n });\n }\n };\n },\n provides(providers$$1) {\n providers$$1.generateLayersText = function (node, nodeMeta) {\n const {\n title,\n transform,\n extra\n } = nodeMeta;\n let width = null;\n let height = null;\n if (IS_IE) {\n const computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n const boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n if (config.autoA11y && !title) {\n extra.attributes['aria-hidden'] = 'true';\n }\n return Promise.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width,\n height,\n transform,\n title,\n extra,\n watchable: true\n })]);\n };\n }\n};\n\nconst CLEAN_CONTENT_PATTERN = new RegExp('\\u{22}', 'ug');\nconst SECONDARY_UNICODE_RANGE = [1105920, 1112319];\nconst _FONT_FAMILY_WEIGHT_TO_PREFIX = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n FontAwesome: {\n normal: 'fas',\n 400: 'fas'\n }\n}), lt), wa), Yt);\nconst FONT_FAMILY_WEIGHT_TO_PREFIX = Object.keys(_FONT_FAMILY_WEIGHT_TO_PREFIX).reduce((acc, key) => {\n acc[key.toLowerCase()] = _FONT_FAMILY_WEIGHT_TO_PREFIX[key];\n return acc;\n}, {});\nconst FONT_FAMILY_WEIGHT_FALLBACK = Object.keys(FONT_FAMILY_WEIGHT_TO_PREFIX).reduce((acc, fontFamily) => {\n const weights = FONT_FAMILY_WEIGHT_TO_PREFIX[fontFamily];\n acc[fontFamily] = weights[900] || [...Object.entries(weights)][0][1];\n return acc;\n}, {});\nfunction hexValueFromContent(content) {\n const cleaned = content.replace(CLEAN_CONTENT_PATTERN, '');\n const codePoint = codePointAt(cleaned, 0);\n const isPrependTen = codePoint >= SECONDARY_UNICODE_RANGE[0] && codePoint <= SECONDARY_UNICODE_RANGE[1];\n const 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}\nfunction getPrefix(fontFamily, fontWeight) {\n const fontFamilySanitized = fontFamily.replace(/^['\"]|['\"]$/g, '').toLowerCase();\n const fontWeightInteger = parseInt(fontWeight);\n const fontWeightSanitized = isNaN(fontWeightInteger) ? 'normal' : fontWeightInteger;\n return (FONT_FAMILY_WEIGHT_TO_PREFIX[fontFamilySanitized] || {})[fontWeightSanitized] || FONT_FAMILY_WEIGHT_FALLBACK[fontFamilySanitized];\n}\nfunction replaceForPosition(node, position) {\n const pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new Promise((resolve, reject) => {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n const children = toArray(node.children);\n const alreadyProcessedPseudoElement = children.filter(c$$1 => c$$1.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position)[0];\n const styles = WINDOW.getComputedStyle(node, position);\n const fontFamily = styles.getPropertyValue('font-family');\n const fontFamilyMatch = fontFamily.match(FONT_FAMILY_PATTERN);\n const fontWeight = styles.getPropertyValue('font-weight');\n const content = styles.getPropertyValue('content');\n if (alreadyProcessedPseudoElement && !fontFamilyMatch) {\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 (fontFamilyMatch && content !== 'none' && content !== '') {\n const content = styles.getPropertyValue('content');\n let prefix = getPrefix(fontFamily, fontWeight);\n const {\n value: hexValue,\n isSecondary\n } = hexValueFromContent(content);\n const isV4 = fontFamilyMatch[0].startsWith('FontAwesome');\n let iconName = byUnicode(prefix, hexValue);\n let iconIdentifier = iconName;\n if (isV4) {\n const iconName4 = byOldUnicode(hexValue);\n if (iconName4.iconName && iconName4.prefix) {\n iconName = iconName4.iconName;\n prefix = iconName4.prefix;\n }\n }\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 if (iconName && !isSecondary && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n const meta = blankMeta();\n const {\n extra\n } = meta;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(main => {\n const abstract = makeInlineSvgAbstract(_objectSpread2(_objectSpread2({}, meta), {}, {\n icons: {\n main,\n mask: emptyCanonicalIcon()\n },\n prefix,\n iconName: iconIdentifier,\n extra,\n watchable: true\n }));\n const element = DOCUMENT.createElementNS('http://www.w3.org/2000/svg', 'svg');\n if (position === '::before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n element.outerHTML = abstract.map(a$$1 => toHtml(a$$1)).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n}\nfunction replace(node) {\n return Promise.all([replaceForPosition(node, '::before'), replaceForPosition(node, '::after')]);\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}\nfunction searchPseudoElements(root) {\n if (!IS_DOM) return;\n return new Promise((resolve, reject) => {\n const operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n const end = perf.begin('searchPseudoElements');\n disableObservation();\n Promise.all(operations).then(() => {\n end();\n enableObservation();\n resolve();\n }).catch(() => {\n end();\n enableObservation();\n reject();\n });\n });\n}\nvar PseudoElements = {\n hooks() {\n return {\n mutationObserverCallbacks(accumulator) {\n accumulator.pseudoElementsCallback = searchPseudoElements;\n return accumulator;\n }\n };\n },\n provides(providers) {\n providers.pseudoElements2svg = function (params) {\n const {\n node = DOCUMENT\n } = params;\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n };\n }\n};\n\nlet _unwatched = false;\nvar MutationObserver$1 = {\n mixout() {\n return {\n dom: {\n unwatch() {\n disableObservation();\n _unwatched = true;\n }\n }\n };\n },\n hooks() {\n return {\n bootstrap() {\n observe(chainHooks('mutationObserverCallbacks', {}));\n },\n noAuto() {\n disconnect();\n },\n watch(params) {\n const {\n observeMutationsRoot\n } = params;\n if (_unwatched) {\n enableObservation();\n } else {\n observe(chainHooks('mutationObserverCallbacks', {\n observeMutationsRoot\n }));\n }\n }\n };\n }\n};\n\nconst parseTransformString = transformString => {\n let 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((acc, n) => {\n const parts = n.toLowerCase().split('-');\n const first = parts[0];\n let rest = parts.slice(1).join('-');\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n rest = parseFloat(rest);\n if (isNaN(rest)) {\n return acc;\n }\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n case 'left':\n acc.x = acc.x - rest;\n break;\n case 'right':\n acc.x = acc.x + rest;\n break;\n case 'up':\n acc.y = acc.y - rest;\n break;\n case 'down':\n acc.y = acc.y + rest;\n break;\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n return acc;\n }, transform);\n};\nvar PowerTransforms = {\n mixout() {\n return {\n parse: {\n transform: transformString => {\n return parseTransformString(transformString);\n }\n }\n };\n },\n hooks() {\n return {\n parseNodeAttributes(accumulator, node) {\n const transformString = node.getAttribute('data-fa-transform');\n if (transformString) {\n accumulator.transform = parseTransformString(transformString);\n }\n return accumulator;\n }\n };\n },\n provides(providers) {\n providers.generateAbstractTransformGrouping = function (_ref) {\n let {\n main,\n transform,\n containerWidth,\n iconWidth\n } = _ref;\n const outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n const innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n const innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n const innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n const inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n const path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n const operations = {\n outer,\n inner,\n 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\nconst ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n};\nfunction fillBlack(abstract) {\n let force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (abstract.attributes && (abstract.attributes.fill || force)) {\n abstract.attributes.fill = 'black';\n }\n return abstract;\n}\nfunction deGroup(abstract) {\n if (abstract.tag === 'g') {\n return abstract.children;\n } else {\n return [abstract];\n }\n}\nvar Masks = {\n hooks() {\n return {\n parseNodeAttributes(accumulator, node) {\n const maskData = node.getAttribute('data-fa-mask');\n const mask = !maskData ? emptyCanonicalIcon() : getCanonicalIcon(maskData.split(' ').map(i => i.trim()));\n if (!mask.prefix) {\n mask.prefix = getDefaultUsablePrefix();\n }\n accumulator.mask = mask;\n accumulator.maskId = node.getAttribute('data-fa-mask-id');\n return accumulator;\n }\n };\n },\n provides(providers) {\n providers.generateAbstractMask = function (_ref) {\n let {\n children,\n attributes,\n main,\n mask,\n maskId: explicitMaskId,\n transform\n } = _ref;\n const {\n width: mainWidth,\n icon: mainPath\n } = main;\n const {\n width: maskWidth,\n icon: maskPath\n } = mask;\n const trans = transformForSvg({\n transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n const maskRect = {\n tag: 'rect',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n fill: 'white'\n })\n };\n const maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n const 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 const maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.outer),\n children: [maskInnerGroup]\n };\n const maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n const clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n const 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 const 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,\n attributes\n };\n };\n }\n};\n\nvar MissingIconIndicator = {\n provides(providers) {\n let reduceMotion = false;\n if (WINDOW.matchMedia) {\n reduceMotion = WINDOW.matchMedia('(prefers-reduced-motion: reduce)').matches;\n }\n providers.missingIconAbstract = function () {\n const gChildren = [];\n const FILL = {\n fill: 'currentColor'\n };\n const ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n };\n\n // Ring\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 const OPACITY_ANIMATE = _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'opacity'\n });\n const dot = {\n tag: 'circle',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: []\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 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 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 return {\n tag: 'g',\n attributes: {\n 'class': 'missing'\n },\n children: gChildren\n };\n };\n }\n};\n\nvar SvgSymbols = {\n hooks() {\n return {\n parseNodeAttributes(accumulator, node) {\n const symbolData = node.getAttribute('data-fa-symbol');\n const 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});\nconst noAuto$1 = api.noAuto;\nconst config$1 = api.config;\nconst library$1 = api.library;\nconst dom$1 = api.dom;\nconst parse$1 = api.parse;\nconst findIconDefinition$1 = api.findIconDefinition;\nconst toHtml$1 = api.toHtml;\nconst icon = api.icon;\nconst layer = api.layer;\nconst text = api.text;\nconst 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","import { parse, icon } from '@fortawesome/fontawesome-svg-core';\nimport PropTypes from 'prop-types';\nimport React from 'react';\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 _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n\n var target = _objectWithoutPropertiesLoose(source, excluded);\n\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\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 _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\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\n// Get CSS class list from a props object\nfunction classList(props) {\n var _classes;\n\n var beat = props.beat,\n fade = props.fade,\n beatFade = props.beatFade,\n bounce = props.bounce,\n shake = props.shake,\n flash = props.flash,\n spin = props.spin,\n spinPulse = props.spinPulse,\n spinReverse = props.spinReverse,\n pulse = props.pulse,\n fixedWidth = props.fixedWidth,\n inverse = props.inverse,\n border = props.border,\n listItem = props.listItem,\n flip = props.flip,\n size = props.size,\n rotation = props.rotation,\n pull = props.pull; // map of CSS class names to properties\n\n var classes = (_classes = {\n 'fa-beat': beat,\n 'fa-fade': fade,\n 'fa-beat-fade': beatFade,\n 'fa-bounce': bounce,\n 'fa-shake': shake,\n 'fa-flash': flash,\n 'fa-spin': spin,\n 'fa-spin-reverse': spinReverse,\n 'fa-spin-pulse': spinPulse,\n 'fa-pulse': pulse,\n 'fa-fw': fixedWidth,\n 'fa-inverse': inverse,\n 'fa-border': border,\n 'fa-li': listItem,\n 'fa-flip': flip === true,\n 'fa-flip-horizontal': flip === 'horizontal' || flip === 'both',\n 'fa-flip-vertical': flip === 'vertical' || flip === 'both'\n }, _defineProperty(_classes, \"fa-\".concat(size), typeof size !== 'undefined' && size !== null), _defineProperty(_classes, \"fa-rotate-\".concat(rotation), typeof rotation !== 'undefined' && rotation !== null && rotation !== 0), _defineProperty(_classes, \"fa-pull-\".concat(pull), typeof pull !== 'undefined' && pull !== null), _defineProperty(_classes, 'fa-swap-opacity', props.swapOpacity), _classes); // map over all the keys in the classes object\n // return an array of the keys where the value for the key is not null\n\n return Object.keys(classes).map(function (key) {\n return classes[key] ? key : null;\n }).filter(function (key) {\n return key;\n });\n}\n\n// Camelize taken from humps\n// humps is copyright © 2012+ Dom Christie\n// Released under the MIT license.\n// Performant way to determine if object coerces to a number\nfunction _isNumerical(obj) {\n obj = obj - 0; // eslint-disable-next-line no-self-compare\n\n return obj === obj;\n}\n\nfunction camelize(string) {\n if (_isNumerical(string)) {\n return string;\n } // eslint-disable-next-line no-useless-escape\n\n\n string = string.replace(/[\\-_\\s]+(.)?/g, function (match, chr) {\n return chr ? chr.toUpperCase() : '';\n }); // Ensure 1st char is always lowercase\n\n return string.substr(0, 1).toLowerCase() + string.substr(1);\n}\n\nvar _excluded = [\"style\"];\n\nfunction capitalize(val) {\n return val.charAt(0).toUpperCase() + val.slice(1);\n}\n\nfunction styleToObject(style) {\n return style.split(';').map(function (s) {\n return s.trim();\n }).filter(function (s) {\n return s;\n }).reduce(function (acc, pair) {\n var i = pair.indexOf(':');\n var prop = camelize(pair.slice(0, i));\n var value = pair.slice(i + 1).trim();\n prop.startsWith('webkit') ? acc[capitalize(prop)] = value : acc[prop] = value;\n return acc;\n }, {});\n}\n\nfunction convert(createElement, element) {\n var extraProps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (typeof element === 'string') {\n return element;\n }\n\n var children = (element.children || []).map(function (child) {\n return convert(createElement, child);\n });\n /* eslint-disable dot-notation */\n\n var mixins = Object.keys(element.attributes || {}).reduce(function (acc, key) {\n var val = element.attributes[key];\n\n switch (key) {\n case 'class':\n acc.attrs['className'] = val;\n delete element.attributes['class'];\n break;\n\n case 'style':\n acc.attrs['style'] = styleToObject(val);\n break;\n\n default:\n if (key.indexOf('aria-') === 0 || key.indexOf('data-') === 0) {\n acc.attrs[key.toLowerCase()] = val;\n } else {\n acc.attrs[camelize(key)] = val;\n }\n\n }\n\n return acc;\n }, {\n attrs: {}\n });\n\n var _extraProps$style = extraProps.style,\n existingStyle = _extraProps$style === void 0 ? {} : _extraProps$style,\n remaining = _objectWithoutProperties(extraProps, _excluded);\n\n mixins.attrs['style'] = _objectSpread2(_objectSpread2({}, mixins.attrs['style']), existingStyle);\n /* eslint-enable */\n\n return createElement.apply(void 0, [element.tag, _objectSpread2(_objectSpread2({}, mixins.attrs), remaining)].concat(_toConsumableArray(children)));\n}\n\nvar PRODUCTION = false;\n\ntry {\n PRODUCTION = process.env.NODE_ENV === 'production';\n} catch (e) {}\n\nfunction log () {\n if (!PRODUCTION && console && typeof console.error === 'function') {\n var _console;\n\n (_console = console).error.apply(_console, arguments);\n }\n}\n\nfunction normalizeIconArgs(icon) {\n // this has everything that it needs to be rendered which means it was probably imported\n // directly from an icon svg package\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName && icon.icon) {\n return icon;\n }\n\n if (parse.icon) {\n return parse.icon(icon);\n } // if the icon is null, there's nothing to do\n\n\n if (icon === null) {\n return null;\n } // if the icon is an object and has a prefix and an icon name, return it\n\n\n if (icon && _typeof(icon) === 'object' && icon.prefix && icon.iconName) {\n return icon;\n } // if it's an array with length of two\n\n\n if (Array.isArray(icon) && icon.length === 2) {\n // use the first item as prefix, second as icon name\n return {\n prefix: icon[0],\n iconName: icon[1]\n };\n } // if it's a string, use it as the icon name\n\n\n if (typeof icon === 'string') {\n return {\n prefix: 'fas',\n iconName: icon\n };\n }\n}\n\n// creates an object with a key of key\n// and a value of value\n// if certain conditions are met\nfunction objectWithKey(key, value) {\n // if the value is a non-empty array\n // or it's not an array but it is truthy\n // then create the object with the key and the value\n // if not, return an empty array\n return Array.isArray(value) && value.length > 0 || !Array.isArray(value) && value ? _defineProperty({}, key, value) : {};\n}\n\nvar defaultProps = {\n border: false,\n className: '',\n mask: null,\n maskId: null,\n fixedWidth: false,\n inverse: false,\n flip: false,\n icon: null,\n listItem: false,\n pull: null,\n pulse: false,\n rotation: null,\n size: null,\n spin: false,\n spinPulse: false,\n spinReverse: false,\n beat: false,\n fade: false,\n beatFade: false,\n bounce: false,\n shake: false,\n symbol: false,\n title: '',\n titleId: null,\n transform: null,\n swapOpacity: false\n};\nvar FontAwesomeIcon = /*#__PURE__*/React.forwardRef(function (props, ref) {\n var allProps = _objectSpread2(_objectSpread2({}, defaultProps), props);\n\n var iconArgs = allProps.icon,\n maskArgs = allProps.mask,\n symbol = allProps.symbol,\n className = allProps.className,\n title = allProps.title,\n titleId = allProps.titleId,\n maskId = allProps.maskId;\n var iconLookup = normalizeIconArgs(iconArgs);\n var classes = objectWithKey('classes', [].concat(_toConsumableArray(classList(allProps)), _toConsumableArray((className || '').split(' '))));\n var transform = objectWithKey('transform', typeof allProps.transform === 'string' ? parse.transform(allProps.transform) : allProps.transform);\n var mask = objectWithKey('mask', normalizeIconArgs(maskArgs));\n var renderedIcon = icon(iconLookup, _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, classes), transform), mask), {}, {\n symbol: symbol,\n title: title,\n titleId: titleId,\n maskId: maskId\n }));\n\n if (!renderedIcon) {\n log('Could not find icon', iconLookup);\n return null;\n }\n\n var abstract = renderedIcon.abstract;\n var extraProps = {\n ref: ref\n };\n Object.keys(allProps).forEach(function (key) {\n // eslint-disable-next-line no-prototype-builtins\n if (!defaultProps.hasOwnProperty(key)) {\n extraProps[key] = allProps[key];\n }\n });\n return convertCurry(abstract[0], extraProps);\n});\nFontAwesomeIcon.displayName = 'FontAwesomeIcon';\nFontAwesomeIcon.propTypes = {\n beat: PropTypes.bool,\n border: PropTypes.bool,\n beatFade: PropTypes.bool,\n bounce: PropTypes.bool,\n className: PropTypes.string,\n fade: PropTypes.bool,\n flash: PropTypes.bool,\n mask: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n maskId: PropTypes.string,\n fixedWidth: PropTypes.bool,\n inverse: PropTypes.bool,\n flip: PropTypes.oneOf([true, false, 'horizontal', 'vertical', 'both']),\n icon: PropTypes.oneOfType([PropTypes.object, PropTypes.array, PropTypes.string]),\n listItem: PropTypes.bool,\n pull: PropTypes.oneOf(['right', 'left']),\n pulse: PropTypes.bool,\n rotation: PropTypes.oneOf([0, 90, 180, 270]),\n shake: PropTypes.bool,\n size: PropTypes.oneOf(['2xs', 'xs', 'sm', 'lg', 'xl', '2xl', '1x', '2x', '3x', '4x', '5x', '6x', '7x', '8x', '9x', '10x']),\n spin: PropTypes.bool,\n spinPulse: PropTypes.bool,\n spinReverse: PropTypes.bool,\n symbol: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n title: PropTypes.string,\n titleId: PropTypes.string,\n transform: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n swapOpacity: PropTypes.bool\n};\nvar convertCurry = convert.bind(null, React.createElement);\n\nexport { FontAwesomeIcon };\n","'use strict';\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar React = require('react');\nvar React__default = _interopDefault(React);\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect =\n /*#__PURE__*/\n function (_PureComponent) {\n _inheritsLoose(SideEffect, _PureComponent);\n\n function SideEffect() {\n return _PureComponent.apply(this, arguments) || this;\n }\n\n // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.UNSAFE_componentWillMount = function UNSAFE_componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.PureComponent);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;\n","import camelCase from \"camelcase\"\nimport type { IGatsbyImageData } from \"./index\"\n\nconst DEFAULT_PIXEL_DENSITIES = [0.25, 0.5, 1, 2]\nexport const DEFAULT_BREAKPOINTS = [750, 1080, 1366, 1920]\nexport const EVERY_BREAKPOINT = [\n 320, 654, 768, 1024, 1366, 1600, 1920, 2048, 2560, 3440, 3840, 4096,\n]\nconst DEFAULT_FLUID_WIDTH = 800\nconst DEFAULT_FIXED_WIDTH = 800\nconst DEFAULT_ASPECT_RATIO = 4 / 3\n\nexport type Fit = \"cover\" | \"fill\" | \"inside\" | \"outside\" | \"contain\"\n\nexport type Layout = \"fixed\" | \"fullWidth\" | \"constrained\"\nexport type ImageFormat = \"jpg\" | \"png\" | \"webp\" | \"avif\" | \"auto\" | \"\"\n\n/**\n * The minimal required reporter, as we don't want to import it from gatsby-cli\n */\nexport interface IReporter {\n warn(message: string): void\n}\n\nexport interface ISharpGatsbyImageArgs {\n layout?: Layout\n formats?: Array\n placeholder?: \"tracedSVG\" | \"dominantColor\" | \"blurred\" | \"none\"\n tracedSVGOptions?: Record\n width?: number\n height?: number\n aspectRatio?: number\n sizes?: string\n quality?: number\n transformOptions?: {\n fit?: Fit\n cropFocus?: number | string\n duotone?: {\n highlight: string\n shadow: string\n opacity?: number\n }\n grayscale?: boolean\n rotate?: number\n trim?: number\n }\n jpgOptions?: Record\n pngOptions?: Record\n webpOptions?: Record\n avifOptions?: Record\n blurredOptions?: { width?: number; toFormat?: ImageFormat }\n breakpoints?: Array\n outputPixelDensities?: Array\n backgroundColor?: string\n}\n\nexport interface IImageSizeArgs {\n width?: number\n height?: number\n layout?: Layout\n filename: string\n outputPixelDensities?: Array\n breakpoints?: Array\n fit?: Fit\n reporter?: IReporter\n sourceMetadata: { width: number; height: number }\n}\n\nexport interface IImageSizes {\n sizes: Array\n presentationWidth: number\n presentationHeight: number\n aspectRatio: number\n unscaledWidth: number\n}\n\nexport interface IImage {\n src: string\n width: number\n height: number\n format: ImageFormat\n}\n\nexport interface IGatsbyImageHelperArgs {\n pluginName: string\n generateImageSource: (\n filename: string,\n width: number,\n height: number,\n format: ImageFormat,\n fit?: Fit,\n options?: Record\n ) => IImage\n layout?: Layout\n formats?: Array\n filename: string\n placeholderURL?: string\n width?: number\n height?: number\n sizes?: string\n reporter?: IReporter\n sourceMetadata?: { width: number; height: number; format: ImageFormat }\n fit?: Fit\n options?: Record\n breakpoints?: Array\n backgroundColor?: string\n aspectRatio?: number\n}\n\nconst warn = (message: string): void => console.warn(message)\n\nconst sortNumeric = (a: number, b: number): number => a - b\n\nexport const getSizes = (width: number, layout: Layout): string | undefined => {\n switch (layout) {\n // If screen is wider than the max size, image width is the max size,\n // otherwise it's the width of the screen\n case `constrained`:\n return `(min-width: ${width}px) ${width}px, 100vw`\n\n // Image is always the same width, whatever the size of the screen\n case `fixed`:\n return `${width}px`\n\n // Image is always the width of the screen\n case `fullWidth`:\n return `100vw`\n\n default:\n return undefined\n }\n}\n\nexport const getSrcSet = (images: Array): string =>\n images.map(image => `${image.src} ${image.width}w`).join(`,\\n`)\n\nexport function formatFromFilename(filename: string): ImageFormat | undefined {\n const dot = filename.lastIndexOf(`.`)\n if (dot !== -1) {\n const ext = filename.slice(dot + 1)\n if (ext === `jpeg`) {\n return `jpg`\n }\n if (ext.length === 3 || ext.length === 4) {\n return ext as ImageFormat\n }\n }\n return undefined\n}\n\nexport function setDefaultDimensions(\n args: IGatsbyImageHelperArgs\n): IGatsbyImageHelperArgs {\n let {\n layout = `constrained`,\n width,\n height,\n sourceMetadata,\n breakpoints,\n aspectRatio,\n formats = [`auto`, `webp`],\n } = args\n formats = formats.map(format => format.toLowerCase() as ImageFormat)\n layout = camelCase(layout) as Layout\n\n if (width && height) {\n return { ...args, formats, layout, aspectRatio: width / height }\n }\n if (sourceMetadata.width && sourceMetadata.height && !aspectRatio) {\n aspectRatio = sourceMetadata.width / sourceMetadata.height\n }\n\n if (layout === `fullWidth`) {\n width = width || sourceMetadata.width || breakpoints[breakpoints.length - 1]\n height = height || Math.round(width / (aspectRatio || DEFAULT_ASPECT_RATIO))\n } else {\n if (!width) {\n if (height && aspectRatio) {\n width = height * aspectRatio\n } else if (sourceMetadata.width) {\n width = sourceMetadata.width\n } else if (height) {\n width = Math.round(height / DEFAULT_ASPECT_RATIO)\n } else {\n width = DEFAULT_FIXED_WIDTH\n }\n }\n\n if (aspectRatio && !height) {\n height = Math.round(width / aspectRatio)\n } else if (!aspectRatio) {\n aspectRatio = width / height\n }\n }\n return { ...args, width, height, aspectRatio, layout, formats }\n}\n\n/**\n * Use this for getting an image for the blurred placeholder. This ensures the\n * aspect ratio and crop match the main image\n */\nexport function getLowResolutionImageURL(\n args: IGatsbyImageHelperArgs,\n width = 20\n): string {\n args = setDefaultDimensions(args)\n const { generateImageSource, filename, aspectRatio } = args\n return generateImageSource(\n filename,\n width,\n Math.round(width / aspectRatio),\n args.sourceMetadata.format || `jpg`,\n args.fit,\n args.options\n )?.src\n}\n\nexport function generateImageData(\n args: IGatsbyImageHelperArgs\n): IGatsbyImageData {\n args = setDefaultDimensions(args)\n\n let {\n pluginName,\n sourceMetadata,\n generateImageSource,\n layout,\n fit,\n options,\n width,\n height,\n filename,\n reporter = { warn },\n backgroundColor,\n placeholderURL,\n } = args\n\n if (!pluginName) {\n reporter.warn(\n `[gatsby-plugin-image] \"generateImageData\" was not passed a plugin name`\n )\n }\n\n if (typeof generateImageSource !== `function`) {\n throw new Error(`generateImageSource must be a function`)\n }\n\n if (!sourceMetadata || (!sourceMetadata.width && !sourceMetadata.height)) {\n // No metadata means we let the CDN handle max size etc, aspect ratio etc\n sourceMetadata = {\n width,\n height,\n format: sourceMetadata?.format || formatFromFilename(filename) || `auto`,\n }\n } else if (!sourceMetadata.format) {\n sourceMetadata.format = formatFromFilename(filename)\n }\n\n const formats = new Set(args.formats)\n\n if (formats.size === 0 || formats.has(`auto`) || formats.has(``)) {\n formats.delete(`auto`)\n formats.delete(``)\n formats.add(sourceMetadata.format)\n }\n\n if (formats.has(`jpg`) && formats.has(`png`)) {\n reporter.warn(\n `[${pluginName}] Specifying both 'jpg' and 'png' formats is not supported. Using 'auto' instead`\n )\n if (sourceMetadata.format === `jpg`) {\n formats.delete(`png`)\n } else {\n formats.delete(`jpg`)\n }\n }\n\n const imageSizes = calculateImageSizes({ ...args, sourceMetadata })\n\n const result: IGatsbyImageData[\"images\"] = {\n sources: [],\n }\n\n let sizes = args.sizes\n if (!sizes) {\n sizes = getSizes(imageSizes.presentationWidth, layout)\n }\n\n formats.forEach(format => {\n const images = imageSizes.sizes\n .map(size => {\n const imageSrc = generateImageSource(\n filename,\n size,\n Math.round(size / imageSizes.aspectRatio),\n format,\n fit,\n options\n )\n if (\n !imageSrc?.width ||\n !imageSrc.height ||\n !imageSrc.src ||\n !imageSrc.format\n ) {\n reporter.warn(\n `[${pluginName}] The resolver for image ${filename} returned an invalid value.`\n )\n return undefined\n }\n return imageSrc\n })\n .filter(Boolean)\n\n if (format === `jpg` || format === `png` || format === `auto`) {\n const unscaled =\n images.find(img => img.width === imageSizes.unscaledWidth) || images[0]\n\n if (unscaled) {\n result.fallback = {\n src: unscaled.src,\n srcSet: getSrcSet(images),\n sizes,\n }\n }\n } else {\n result.sources?.push({\n srcSet: getSrcSet(images),\n sizes,\n type: `image/${format}`,\n })\n }\n })\n\n const imageProps: Partial = {\n images: result,\n layout,\n backgroundColor,\n }\n\n if (placeholderURL) {\n imageProps.placeholder = { fallback: placeholderURL }\n }\n\n switch (layout) {\n case `fixed`:\n imageProps.width = imageSizes.presentationWidth\n imageProps.height = imageSizes.presentationHeight\n break\n\n case `fullWidth`:\n imageProps.width = 1\n imageProps.height = 1 / imageSizes.aspectRatio\n break\n\n case `constrained`:\n imageProps.width = args.width || imageSizes.presentationWidth || 1\n imageProps.height = (imageProps.width || 1) / imageSizes.aspectRatio\n }\n\n return imageProps as IGatsbyImageData\n}\n\nconst dedupeAndSortDensities = (values: Array): Array =>\n Array.from(new Set([1, ...values])).sort(sortNumeric)\n\nexport function calculateImageSizes(args: IImageSizeArgs): IImageSizes {\n const {\n width,\n height,\n filename,\n layout = `constrained`,\n sourceMetadata: imgDimensions,\n reporter = { warn },\n breakpoints = DEFAULT_BREAKPOINTS,\n } = args\n\n // check that all dimensions provided are positive\n const userDimensions = { width, height }\n const erroneousUserDimensions = Object.entries(userDimensions).filter(\n ([_, size]) => typeof size === `number` && size < 1\n )\n if (erroneousUserDimensions.length) {\n throw new Error(\n `Specified dimensions for images must be positive numbers (> 0). Problem dimensions you have are ${erroneousUserDimensions\n .map(dim => dim.join(`: `))\n .join(`, `)}`\n )\n }\n\n if (layout === `fixed`) {\n return fixedImageSizes(args)\n } else if (layout === `constrained`) {\n return responsiveImageSizes(args)\n } else if (layout === `fullWidth`) {\n return responsiveImageSizes({ breakpoints, ...args })\n } else {\n reporter.warn(\n `No valid layout was provided for the image at ${filename}. Valid image layouts are fixed, fullWidth, and constrained. Found ${layout}`\n )\n return {\n sizes: [imgDimensions.width],\n presentationWidth: imgDimensions.width,\n presentationHeight: imgDimensions.height,\n aspectRatio: imgDimensions.width / imgDimensions.height,\n unscaledWidth: imgDimensions.width,\n }\n }\n}\nexport function fixedImageSizes({\n filename,\n sourceMetadata: imgDimensions,\n width,\n height,\n fit = `cover`,\n outputPixelDensities = DEFAULT_PIXEL_DENSITIES,\n reporter = { warn },\n}: IImageSizeArgs): IImageSizes {\n let aspectRatio = imgDimensions.width / imgDimensions.height\n // Sort, dedupe and ensure there's a 1\n const densities = dedupeAndSortDensities(outputPixelDensities)\n\n // If both are provided then we need to check the fit\n if (width && height) {\n const calculated = getDimensionsAndAspectRatio(imgDimensions, {\n width,\n height,\n fit,\n })\n width = calculated.width\n height = calculated.height\n aspectRatio = calculated.aspectRatio\n }\n\n if (!width) {\n if (!height) {\n width = DEFAULT_FIXED_WIDTH\n } else {\n width = Math.round(height * aspectRatio)\n }\n } else if (!height) {\n height = Math.round(width / aspectRatio)\n }\n\n const originalWidth = width // will use this for presentationWidth, don't want to lose it\n const isTopSizeOverriden =\n imgDimensions.width < width || imgDimensions.height < (height as number)\n\n // If the image is smaller than requested, warn the user that it's being processed as such\n // print out this message with the necessary information before we overwrite it for sizing\n if (isTopSizeOverriden) {\n const fixedDimension = imgDimensions.width < width ? `width` : `height`\n reporter.warn(`\nThe requested ${fixedDimension} \"${\n fixedDimension === `width` ? width : height\n }px\" for the image ${filename} was larger than the actual image ${fixedDimension} of ${\n imgDimensions[fixedDimension]\n }px. If possible, replace the current image with a larger one.`)\n\n if (fixedDimension === `width`) {\n width = imgDimensions.width\n height = Math.round(width / aspectRatio)\n } else {\n height = imgDimensions.height\n width = height * aspectRatio\n }\n }\n\n const sizes = densities\n .filter(size => size >= 1) // remove smaller densities because fixed images don't need them\n .map(density => Math.round(density * (width as number)))\n .filter(size => size <= imgDimensions.width)\n\n return {\n sizes,\n aspectRatio,\n presentationWidth: originalWidth,\n presentationHeight: Math.round(originalWidth / aspectRatio),\n unscaledWidth: width,\n }\n}\n\nexport function responsiveImageSizes({\n sourceMetadata: imgDimensions,\n width,\n height,\n fit = `cover`,\n outputPixelDensities = DEFAULT_PIXEL_DENSITIES,\n breakpoints,\n layout,\n}: IImageSizeArgs): IImageSizes {\n let sizes\n let aspectRatio = imgDimensions.width / imgDimensions.height\n // Sort, dedupe and ensure there's a 1\n const densities = dedupeAndSortDensities(outputPixelDensities)\n\n // If both are provided then we need to check the fit\n if (width && height) {\n const calculated = getDimensionsAndAspectRatio(imgDimensions, {\n width,\n height,\n fit,\n })\n width = calculated.width\n height = calculated.height\n aspectRatio = calculated.aspectRatio\n }\n\n // Case 1: width of height were passed in, make sure it isn't larger than the actual image\n width = width && Math.min(width, imgDimensions.width)\n height = height && Math.min(height, imgDimensions.height)\n\n // Case 2: neither width or height were passed in, use default size\n if (!width && !height) {\n width = Math.min(DEFAULT_FLUID_WIDTH, imgDimensions.width)\n height = width / aspectRatio\n }\n\n // if it still hasn't been found, calculate width from the derived height.\n // TS isn't smart enough to realise the type for height has been narrowed here\n if (!width) {\n width = (height as number) * aspectRatio\n }\n\n const originalWidth = width\n const isTopSizeOverriden =\n imgDimensions.width < width || imgDimensions.height < (height as number)\n if (isTopSizeOverriden) {\n width = imgDimensions.width\n height = imgDimensions.height\n }\n\n width = Math.round(width)\n\n if (breakpoints?.length > 0) {\n sizes = breakpoints.filter(size => size <= imgDimensions.width)\n\n // If a larger breakpoint has been filtered-out, add the actual image width instead\n if (\n sizes.length < breakpoints.length &&\n !sizes.includes(imgDimensions.width)\n ) {\n sizes.push(imgDimensions.width)\n }\n } else {\n sizes = densities.map(density => Math.round(density * (width as number)))\n sizes = sizes.filter(size => size <= imgDimensions.width)\n }\n\n // ensure that the size passed in is included in the final output\n if (layout === `constrained` && !sizes.includes(width)) {\n sizes.push(width)\n }\n sizes = sizes.sort(sortNumeric)\n return {\n sizes,\n aspectRatio,\n presentationWidth: originalWidth,\n presentationHeight: Math.round(originalWidth / aspectRatio),\n unscaledWidth: width,\n }\n}\n\nexport function getDimensionsAndAspectRatio(\n dimensions,\n options\n): { width: number; height: number; aspectRatio: number } {\n // Calculate the eventual width/height of the image.\n const imageAspectRatio = dimensions.width / dimensions.height\n\n let width = options.width\n let height = options.height\n\n switch (options.fit) {\n case `fill`: {\n width = options.width ? options.width : dimensions.width\n height = options.height ? options.height : dimensions.height\n break\n }\n case `inside`: {\n const widthOption = options.width\n ? options.width\n : Number.MAX_SAFE_INTEGER\n const heightOption = options.height\n ? options.height\n : Number.MAX_SAFE_INTEGER\n\n width = Math.min(widthOption, Math.round(heightOption * imageAspectRatio))\n height = Math.min(\n heightOption,\n Math.round(widthOption / imageAspectRatio)\n )\n break\n }\n case `outside`: {\n const widthOption = options.width ? options.width : 0\n const heightOption = options.height ? options.height : 0\n\n width = Math.max(widthOption, Math.round(heightOption * imageAspectRatio))\n height = Math.max(\n heightOption,\n Math.round(widthOption / imageAspectRatio)\n )\n break\n }\n\n default: {\n if (options.width && !options.height) {\n width = options.width\n height = Math.round(options.width / imageAspectRatio)\n }\n\n if (options.height && !options.width) {\n width = Math.round(options.height * imageAspectRatio)\n height = options.height\n }\n }\n }\n\n return {\n width,\n height,\n aspectRatio: width / height,\n }\n}\n","/* global GATSBY___IMAGE */\nimport { generateImageData, EVERY_BREAKPOINT } from \"../image-utils\"\nimport type { CSSProperties, HTMLAttributes, ImgHTMLAttributes } from \"react\"\nimport type { Node } from \"gatsby\"\nimport type { PlaceholderProps } from \"./placeholder\"\nimport type { MainImageProps } from \"./main-image\"\nimport type { IGatsbyImageData } from \"./gatsby-image.browser\"\nimport type {\n IGatsbyImageHelperArgs,\n Layout,\n IImage,\n ImageFormat,\n} from \"../image-utils\"\n\n// Native lazy-loading support: https://addyosmani.com/blog/lazy-loading/\nexport const hasNativeLazyLoadSupport = (): boolean =>\n typeof HTMLImageElement !== `undefined` &&\n `loading` in HTMLImageElement.prototype\n\nexport function gatsbyImageIsInstalled(): boolean {\n return typeof GATSBY___IMAGE !== `undefined` && GATSBY___IMAGE\n}\n\nexport type IGatsbyImageDataParent = T & {\n gatsbyImageData: IGatsbyImageData\n}\nexport type IGatsbyImageParent = T & {\n gatsbyImage: IGatsbyImageData\n}\nexport type FileNode = Partial & {\n childImageSharp?: IGatsbyImageDataParent>\n}\n\nconst isGatsbyImageData = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageData | any\n): node is IGatsbyImageData =>\n // 🦆 check for a deep prop to be sure this is a valid gatsbyImageData object\n Boolean(node?.images?.fallback?.src)\n\nconst isGatsbyImageDataParent = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageDataParent | any\n): node is IGatsbyImageDataParent => Boolean(node?.gatsbyImageData)\n\nconst isGatsbyImageParent = (\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n node: IGatsbyImageParent | any\n): node is IGatsbyImageParent => Boolean(node?.gatsbyImage)\n\nexport type ImageDataLike =\n | FileNode\n | IGatsbyImageDataParent\n | IGatsbyImageParent\n | IGatsbyImageData\n\nexport const getImage = (\n node: ImageDataLike | null\n): IGatsbyImageData | undefined => {\n // This checks both for gatsbyImageData and gatsbyImage\n if (isGatsbyImageData(node)) {\n return node\n }\n // gatsbyImageData GraphQL field\n if (isGatsbyImageDataParent(node)) {\n return node.gatsbyImageData\n }\n // gatsbyImage GraphQL field for Gatsby's Image CDN service\n if (isGatsbyImageParent(node)) {\n return node.gatsbyImage\n }\n return node?.childImageSharp?.gatsbyImageData\n}\n\nexport const getSrc = (node: ImageDataLike): string | undefined =>\n getImage(node)?.images?.fallback?.src\n\nexport const getSrcSet = (node: ImageDataLike): string | undefined =>\n getImage(node)?.images?.fallback?.srcSet\n\nexport function getWrapperProps(\n width: number,\n height: number,\n layout: Layout\n): Pick, \"className\" | \"style\"> & {\n \"data-gatsby-image-wrapper\": string\n} {\n const wrapperStyle: CSSProperties = {}\n\n let className = `gatsby-image-wrapper`\n\n // If the plugin isn't installed we need to apply the styles inline\n if (!gatsbyImageIsInstalled()) {\n wrapperStyle.position = `relative`\n wrapperStyle.overflow = `hidden`\n }\n\n if (layout === `fixed`) {\n wrapperStyle.width = width\n wrapperStyle.height = height\n } else if (layout === `constrained`) {\n if (!gatsbyImageIsInstalled()) {\n wrapperStyle.display = `inline-block`\n wrapperStyle.verticalAlign = `top`\n }\n className = `gatsby-image-wrapper gatsby-image-wrapper-constrained`\n }\n\n return {\n className,\n \"data-gatsby-image-wrapper\": ``,\n style: wrapperStyle,\n }\n}\n\nexport interface IUrlBuilderArgs {\n width: number\n height: number\n baseUrl: string\n format: ImageFormat\n options: OptionsType\n}\nexport interface IGetImageDataArgs> {\n baseUrl: string\n /**\n * For constrained and fixed images, the size of the image element\n */\n width?: number\n height?: number\n /**\n * If available, pass the source image width and height\n */\n sourceWidth?: number\n sourceHeight?: number\n /**\n * If only one dimension is passed, then this will be used to calculate the other.\n */\n aspectRatio?: number\n layout?: Layout\n /**\n * Returns a URL based on the passed arguments. Should be a pure function\n */\n urlBuilder: (args: IUrlBuilderArgs) => string\n\n /**\n * Should be a data URI\n */\n placeholderURL?: string\n backgroundColor?: string\n /**\n * Used in error messages etc\n */\n pluginName?: string\n\n /**\n * If you do not support auto-format, pass an array of image types here\n */\n formats?: Array\n\n breakpoints?: Array\n\n /**\n * Passed to the urlBuilder function\n */\n options?: OptionsType\n}\n\n/**\n * Use this hook to generate gatsby-plugin-image data in the browser.\n */\nexport function getImageData({\n baseUrl,\n urlBuilder,\n sourceWidth,\n sourceHeight,\n pluginName = `getImageData`,\n formats = [`auto`],\n breakpoints,\n options,\n ...props\n}: IGetImageDataArgs): IGatsbyImageData {\n if (\n !breakpoints?.length &&\n (props.layout === `fullWidth` || (props.layout as string) === `FULL_WIDTH`)\n ) {\n breakpoints = EVERY_BREAKPOINT\n }\n const generateImageSource = (\n baseUrl: string,\n width: number,\n height?: number,\n format?: ImageFormat\n ): IImage => {\n return {\n width,\n height,\n format,\n src: urlBuilder({ baseUrl, width, height, options, format }),\n }\n }\n\n const sourceMetadata: IGatsbyImageHelperArgs[\"sourceMetadata\"] = {\n width: sourceWidth,\n height: sourceHeight,\n format: `auto`,\n }\n\n const args: IGatsbyImageHelperArgs = {\n ...props,\n pluginName,\n generateImageSource,\n filename: baseUrl,\n formats,\n breakpoints,\n sourceMetadata,\n }\n return generateImageData(args)\n}\n\nexport function getMainProps(\n isLoading: boolean,\n isLoaded: boolean,\n images: IGatsbyImageData[\"images\"],\n loading?: \"eager\" | \"lazy\",\n style: CSSProperties = {}\n): Partial {\n // fallback when it's not configured in gatsby-config.\n if (!gatsbyImageIsInstalled()) {\n style = {\n height: `100%`,\n left: 0,\n position: `absolute`,\n top: 0,\n transform: `translateZ(0)`,\n transition: `opacity 250ms linear`,\n width: `100%`,\n willChange: `opacity`,\n ...style,\n }\n }\n\n const result = {\n ...images,\n loading,\n shouldLoad: isLoading,\n \"data-main-image\": ``,\n style: {\n ...style,\n opacity: isLoaded ? 1 : 0,\n },\n }\n\n return result\n}\n\nexport type PlaceholderImageAttrs = ImgHTMLAttributes &\n Pick & {\n \"data-placeholder-image\"?: string\n }\n\nexport function getPlaceholderProps(\n placeholder: PlaceholderImageAttrs | undefined,\n isLoaded: boolean,\n layout: Layout,\n width?: number,\n height?: number,\n backgroundColor?: string,\n objectFit?: CSSProperties[\"objectFit\"],\n objectPosition?: CSSProperties[\"objectPosition\"]\n): PlaceholderImageAttrs {\n const wrapperStyle: CSSProperties = {}\n\n if (backgroundColor) {\n wrapperStyle.backgroundColor = backgroundColor\n\n if (layout === `fixed`) {\n wrapperStyle.width = width\n wrapperStyle.height = height\n wrapperStyle.backgroundColor = backgroundColor\n wrapperStyle.position = `relative`\n } else if (layout === `constrained`) {\n wrapperStyle.position = `absolute`\n wrapperStyle.top = 0\n wrapperStyle.left = 0\n wrapperStyle.bottom = 0\n wrapperStyle.right = 0\n } else if (layout === `fullWidth`) {\n wrapperStyle.position = `absolute`\n wrapperStyle.top = 0\n wrapperStyle.left = 0\n wrapperStyle.bottom = 0\n wrapperStyle.right = 0\n }\n }\n\n if (objectFit) {\n wrapperStyle.objectFit = objectFit\n }\n\n if (objectPosition) {\n wrapperStyle.objectPosition = objectPosition\n }\n const result: PlaceholderImageAttrs = {\n ...placeholder,\n \"aria-hidden\": true,\n \"data-placeholder-image\": ``,\n style: {\n opacity: isLoaded ? 0 : 1,\n transition: `opacity 500ms linear`,\n ...wrapperStyle,\n },\n }\n\n // fallback when it's not configured in gatsby-config.\n if (!gatsbyImageIsInstalled()) {\n result.style = {\n height: `100%`,\n left: 0,\n position: `absolute`,\n top: 0,\n width: `100%`,\n }\n }\n\n return result\n}\n\nexport interface IArtDirectedImage {\n media: string\n image: IGatsbyImageData\n}\n\n/**\n * Generate a Gatsby image data object with multiple, art-directed images that display at different\n * resolutions.\n *\n * @param defaultImage The image displayed when no media query matches.\n * It is also used for all other settings applied to the image, such as width, height and layout.\n * You should pass a className to the component with media queries to adjust the size of the container,\n * as this cannot be adjusted automatically.\n * @param artDirected Array of objects which each contains a `media` string which is a media query\n * such as `(min-width: 320px)`, and the image object to use when that query matches.\n */\nexport function withArtDirection(\n defaultImage: IGatsbyImageData,\n artDirected: Array\n): IGatsbyImageData {\n const { images, placeholder, ...props } = defaultImage\n const output: IGatsbyImageData = {\n ...props,\n images: {\n ...images,\n sources: [],\n },\n placeholder: placeholder && {\n ...placeholder,\n sources: [],\n },\n }\n\n artDirected.forEach(({ media, image }) => {\n if (!media) {\n if (process.env.NODE_ENV === `development`) {\n console.warn(\n \"[gatsby-plugin-image] All art-directed images passed to must have a value set for `media`. Skipping.\"\n )\n }\n return\n }\n\n if (\n image.layout !== defaultImage.layout &&\n process.env.NODE_ENV === `development`\n ) {\n console.warn(\n `[gatsby-plugin-image] Mismatched image layout: expected \"${defaultImage.layout}\" but received \"${image.layout}\". All art-directed images use the same layout as the default image`\n )\n }\n\n output.images.sources.push(\n ...image.images.sources.map(source => {\n return { ...source, media }\n }),\n {\n media,\n srcSet: image.images.fallback.srcSet,\n }\n )\n\n if (!output.placeholder) {\n return\n }\n\n output.placeholder.sources.push({\n media,\n srcSet: image.placeholder.fallback,\n })\n })\n output.images.sources.push(...images.sources)\n if (placeholder?.sources) {\n output.placeholder?.sources.push(...placeholder.sources)\n }\n return output\n}\n","import React, { Fragment, FunctionComponent, PropsWithChildren } from \"react\"\nimport terserMacro from \"../../macros/terser.macro\"\nimport { Layout } from \"../image-utils\"\n\nexport interface ILayoutWrapperProps {\n layout: Layout\n width: number\n height: number\n}\n\nconst NativeScriptLoading: FunctionComponent = () => (\n \n)\n\nexport function getSizer(\n layout: Layout,\n width: number,\n height: number\n): string {\n let sizer = ``\n if (layout === `fullWidth`) {\n sizer = `
`\n }\n\n if (layout === `constrained`) {\n sizer = `
\"\"
`\n }\n\n return sizer\n}\n\nconst Sizer: FunctionComponent = function Sizer({\n layout,\n width,\n height,\n}) {\n if (layout === `fullWidth`) {\n return (\n
\n )\n }\n\n if (layout === `constrained`) {\n return (\n
\n \n
\n )\n }\n\n return null\n}\n\nexport const LayoutWrapper: FunctionComponent<\n PropsWithChildren\n> = function LayoutWrapper({ children, ...props }) {\n return (\n \n \n {children}\n\n {SERVER ? : null}\n \n )\n}\n","import React, { FunctionComponent, ImgHTMLAttributes } from \"react\"\nimport * as PropTypes from \"prop-types\"\n\nexport interface IResponsiveImageProps {\n sizes?: string\n srcSet: string\n}\n\nexport type SourceProps = IResponsiveImageProps &\n (\n | {\n media: string\n type?: string\n }\n | {\n media?: string\n type: string\n }\n )\n\ntype FallbackProps = { src: string } & Partial\n\ntype ImageProps = ImgHTMLAttributes & {\n src: string\n alt: string\n shouldLoad: boolean\n}\n\nexport type PictureProps = ImgHTMLAttributes & {\n fallback?: FallbackProps\n sources?: Array\n alt: string\n shouldLoad?: boolean\n}\n\nconst Image: FunctionComponent = function Image({\n src,\n srcSet,\n loading,\n alt = ``,\n shouldLoad,\n ...props\n}) {\n return (\n \n )\n}\n\nexport const Picture: React.FC = function Picture({\n fallback,\n sources = [],\n shouldLoad = true,\n ...props\n}) {\n const sizes = props.sizes || fallback?.sizes\n const fallbackImage = (\n \n )\n\n if (!sources.length) {\n return fallbackImage\n }\n\n return (\n \n {sources.map(({ media, srcSet, type }) => (\n \n ))}\n {fallbackImage}\n \n )\n}\n\nImage.propTypes = {\n src: PropTypes.string.isRequired,\n alt: PropTypes.string.isRequired,\n sizes: PropTypes.string,\n srcSet: PropTypes.string,\n shouldLoad: PropTypes.bool,\n}\n\nPicture.displayName = `Picture`\nPicture.propTypes = {\n alt: PropTypes.string.isRequired,\n shouldLoad: PropTypes.bool,\n fallback: PropTypes.exact({\n src: PropTypes.string.isRequired,\n srcSet: PropTypes.string,\n sizes: PropTypes.string,\n }),\n sources: PropTypes.arrayOf(\n PropTypes.oneOfType([\n PropTypes.exact({\n media: PropTypes.string.isRequired,\n type: PropTypes.string,\n sizes: PropTypes.string,\n srcSet: PropTypes.string.isRequired,\n }),\n PropTypes.exact({\n media: PropTypes.string,\n type: PropTypes.string.isRequired,\n sizes: PropTypes.string,\n srcSet: PropTypes.string.isRequired,\n }),\n ])\n ),\n}\n","import React, { FunctionComponent, ImgHTMLAttributes } from \"react\"\nimport * as PropTypes from \"prop-types\"\nimport { Picture, SourceProps } from \"./picture\"\n\nexport type PlaceholderProps = ImgHTMLAttributes & {\n fallback?: string\n sources?: Array\n}\n\nexport const Placeholder: FunctionComponent =\n function Placeholder({ fallback, ...props }) {\n if (fallback) {\n return (\n \n )\n } else {\n return
\n }\n }\n\nPlaceholder.displayName = `Placeholder`\nPlaceholder.propTypes = {\n fallback: PropTypes.string,\n sources: Picture.propTypes?.sources,\n alt: function (props, propName, componentName): Error | null {\n if (!props[propName]) {\n return null\n }\n\n return new Error(\n `Invalid prop \\`${propName}\\` supplied to \\`${componentName}\\`. Validation failed.`\n )\n },\n}\n","import React from \"react\"\nimport { Picture, PictureProps } from \"./picture\"\n\nexport type MainImageProps = PictureProps\n\nexport const MainImage: React.FC = function MainImage(props) {\n return (\n <>\n \n \n \n )\n}\n\nMainImage.displayName = `MainImage`\nMainImage.propTypes = Picture.propTypes\n","import React from \"react\"\nimport { getWrapperProps, getMainProps, getPlaceholderProps } from \"./hooks\"\nimport { Placeholder } from \"./placeholder\"\nimport { MainImage, MainImageProps } from \"./main-image\"\nimport { LayoutWrapper } from \"./layout-wrapper\"\nimport PropTypes from \"prop-types\"\nimport type { FunctionComponent, WeakValidationMap } from \"react\"\nimport type { GatsbyImageProps, IGatsbyImageData } from \"./gatsby-image.browser\"\n\nconst removeNewLines = (str: string): string => str.replace(/\\n/g, ``)\n\nexport const GatsbyImage: FunctionComponent =\n function GatsbyImage({\n as = `div`,\n className,\n class: preactClass,\n style,\n image,\n loading = `lazy`,\n imgClassName,\n imgStyle,\n backgroundColor,\n objectFit,\n objectPosition,\n ...props\n }) {\n if (!image) {\n console.warn(`[gatsby-plugin-image] Missing image prop`)\n return null\n }\n\n if (preactClass) {\n className = preactClass\n }\n\n imgStyle = {\n objectFit,\n objectPosition,\n backgroundColor,\n ...imgStyle,\n }\n\n const {\n width,\n height,\n layout,\n images,\n placeholder,\n backgroundColor: placeholderBackgroundColor,\n } = image\n\n const {\n style: wStyle,\n className: wClass,\n ...wrapperProps\n } = getWrapperProps(width, height, layout)\n\n const cleanedImages: IGatsbyImageData[\"images\"] = {\n fallback: undefined,\n sources: [],\n }\n if (images.fallback) {\n cleanedImages.fallback = {\n ...images.fallback,\n srcSet: images.fallback.srcSet\n ? removeNewLines(images.fallback.srcSet)\n : undefined,\n }\n }\n\n if (images.sources) {\n cleanedImages.sources = images.sources.map(source => {\n return {\n ...source,\n srcSet: removeNewLines(source.srcSet),\n }\n })\n }\n\n return React.createElement(\n as,\n {\n ...wrapperProps,\n style: {\n ...wStyle,\n ...style,\n backgroundColor,\n },\n className: `${wClass}${className ? ` ${className}` : ``}`,\n },\n \n \n\n )}\n // When eager is set we want to start the isLoading state on true (we want to load the img without react)\n {...getMainProps(\n loading === `eager`,\n false,\n cleanedImages,\n loading,\n imgStyle\n )}\n />\n \n )\n }\n\nexport const altValidator: PropTypes.Validator = (\n props: GatsbyImageProps,\n propName,\n componentName,\n ...rest\n): Error | undefined => {\n if (!props.alt && props.alt !== ``) {\n return new Error(\n `The \"alt\" prop is required in ${componentName}. If the image is purely presentational then pass an empty string: e.g. alt=\"\". Learn more: https://a11y-style-guide.com/style-guide/section-media.html`\n )\n }\n\n return PropTypes.string(props, propName, componentName, ...rest)\n}\n\nexport const propTypes = {\n image: PropTypes.object.isRequired,\n alt: altValidator,\n} as WeakValidationMap\n","import {\n createElement,\n memo,\n useMemo,\n useEffect,\n useLayoutEffect,\n useRef,\n} from \"react\"\nimport {\n getWrapperProps,\n gatsbyImageIsInstalled,\n hasNativeLazyLoadSupport,\n} from \"./hooks\"\nimport { getSizer } from \"./layout-wrapper\"\nimport { propTypes } from \"./gatsby-image.server\"\nimport type {\n FC,\n ElementType,\n FunctionComponent,\n ImgHTMLAttributes,\n CSSProperties,\n ReactEventHandler,\n} from \"react\"\nimport type { renderImageToString } from \"./lazy-hydrate\"\nimport type { PlaceholderProps } from \"./placeholder\"\nimport type { MainImageProps } from \"./main-image\"\nimport type { Layout } from \"../image-utils\"\n\nconst imageCache = new Set()\nlet renderImageToStringPromise\nlet renderImage: typeof renderImageToString | undefined\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport interface GatsbyImageProps\n extends Omit<\n ImgHTMLAttributes,\n \"placeholder\" | \"onLoad\" | \"src\" | \"srcSet\" | \"width\" | \"height\"\n > {\n alt: string\n as?: ElementType\n className?: string\n class?: string\n imgClassName?: string\n image: IGatsbyImageData\n imgStyle?: CSSProperties\n backgroundColor?: string\n objectFit?: CSSProperties[\"objectFit\"]\n objectPosition?: CSSProperties[\"objectPosition\"]\n onLoad?: (props: { wasCached: boolean }) => void\n onError?: ReactEventHandler\n onStartLoad?: (props: { wasCached: boolean }) => void\n}\n\nexport interface IGatsbyImageData {\n layout: Layout\n width: number\n height: number\n backgroundColor?: string\n images: Pick\n placeholder?: Pick\n}\n\nconst GatsbyImageHydrator: FC = function GatsbyImageHydrator({\n as = `div`,\n image,\n style,\n backgroundColor,\n className,\n class: preactClass,\n onStartLoad,\n onLoad,\n onError,\n ...props\n}) {\n const { width, height, layout } = image\n const {\n style: wStyle,\n className: wClass,\n ...wrapperProps\n } = getWrapperProps(width, height, layout)\n const root = useRef()\n const cacheKey = useMemo(() => JSON.stringify(image.images), [image.images])\n\n // Preact uses class instead of className so we need to check for both\n if (preactClass) {\n className = preactClass\n }\n\n const sizer = getSizer(layout, width, height)\n\n useEffect(() => {\n if (!renderImageToStringPromise) {\n renderImageToStringPromise = import(`./lazy-hydrate`).then(\n ({ renderImageToString, swapPlaceholderImage }) => {\n renderImage = renderImageToString\n\n return {\n renderImageToString,\n swapPlaceholderImage,\n }\n }\n )\n }\n\n // The plugin image component is a bit special where if it's server-side rendered, we add extra script tags to support lazy-loading without\n // In this case we stop hydration but fire the correct events.\n const ssrImage = root.current.querySelector(\n `[data-gatsby-image-ssr]`\n ) as HTMLImageElement\n if (ssrImage && hasNativeLazyLoadSupport()) {\n if (ssrImage.complete) {\n // Trigger onStartload and onLoad events\n onStartLoad?.({\n wasCached: true,\n })\n onLoad?.({\n wasCached: true,\n })\n\n // remove ssr key for state updates but add delay to not fight with native code snippt of gatsby-ssr\n setTimeout(() => {\n ssrImage.removeAttribute(`data-gatsby-image-ssr`)\n }, 0)\n } else {\n onStartLoad?.({\n wasCached: true,\n })\n\n ssrImage.addEventListener(`load`, function onLoadListener() {\n ssrImage.removeEventListener(`load`, onLoadListener)\n\n onLoad?.({\n wasCached: true,\n })\n // remove ssr key for state updates but add delay to not fight with native code snippt of gatsby-ssr\n setTimeout(() => {\n ssrImage.removeAttribute(`data-gatsby-image-ssr`)\n }, 0)\n })\n }\n\n imageCache.add(cacheKey)\n\n return\n }\n\n if (renderImage && imageCache.has(cacheKey)) {\n return\n }\n\n let animationFrame\n let cleanupCallback\n renderImageToStringPromise.then(\n ({ renderImageToString, swapPlaceholderImage }) => {\n if (!root.current) {\n return\n }\n\n root.current.innerHTML = renderImageToString({\n isLoading: true,\n isLoaded: imageCache.has(cacheKey),\n image,\n ...props,\n })\n\n if (!imageCache.has(cacheKey)) {\n animationFrame = requestAnimationFrame(() => {\n if (root.current) {\n cleanupCallback = swapPlaceholderImage(\n root.current,\n cacheKey,\n imageCache,\n style,\n onStartLoad,\n onLoad,\n onError\n )\n }\n })\n }\n }\n )\n\n // eslint-disable-next-line consistent-return\n return (): void => {\n if (animationFrame) {\n cancelAnimationFrame(animationFrame)\n }\n if (cleanupCallback) {\n cleanupCallback()\n }\n }\n }, [image])\n\n // useLayoutEffect is ran before React commits to the DOM. This allows us to make sure our HTML is using our cached image version\n useLayoutEffect(() => {\n if (imageCache.has(cacheKey) && renderImage) {\n root.current.innerHTML = renderImage({\n isLoading: imageCache.has(cacheKey),\n isLoaded: imageCache.has(cacheKey),\n image,\n ...props,\n })\n\n // Trigger onStartload and onLoad events\n onStartLoad?.({\n wasCached: true,\n })\n onLoad?.({\n wasCached: true,\n })\n }\n }, [image])\n\n // By keeping all props equal React will keep the component in the DOM\n return createElement(as, {\n ...wrapperProps,\n style: {\n ...wStyle,\n ...style,\n backgroundColor,\n },\n className: `${wClass}${className ? ` ${className}` : ``}`,\n ref: root,\n dangerouslySetInnerHTML: {\n __html: sizer,\n },\n suppressHydrationWarning: true,\n })\n}\n\nexport const GatsbyImage: FunctionComponent = memo(\n function GatsbyImage(props) {\n if (!props.image) {\n if (process.env.NODE_ENV === `development`) {\n console.warn(`[gatsby-plugin-image] Missing image prop`)\n }\n\n return null\n }\n\n if (!gatsbyImageIsInstalled() && process.env.NODE_ENV === `development`) {\n console.warn(\n `[gatsby-plugin-image] You're missing out on some cool performance features. Please add \"gatsby-plugin-image\" to your gatsby-config.js`\n )\n }\n\n return createElement(GatsbyImageHydrator, props)\n }\n)\n\nGatsbyImage.propTypes = propTypes\nGatsbyImage.displayName = `GatsbyImage`\n","import React, { FunctionComponent, ReactElement } from \"react\"\nimport {\n altValidator,\n GatsbyImage as GatsbyImageServer,\n} from \"./gatsby-image.server\"\nimport { GatsbyImageProps, IGatsbyImageData } from \"./gatsby-image.browser\"\nimport PropTypes from \"prop-types\"\nimport { ISharpGatsbyImageArgs } from \"../image-utils\"\n\nexport interface IStaticImageProps\n extends Omit,\n Omit {\n src: string\n filename?: string\n}\n\n// These values are added by Babel. Do not add them manually\ninterface IPrivateProps {\n __imageData?: IGatsbyImageData\n __error?: string\n}\n\nexport function _getStaticImage(\n GatsbyImage: FunctionComponent\n): React.FC {\n return function StaticImage({\n src,\n __imageData: imageData,\n __error,\n // We extract these because they're not meant to be passed-down to GatsbyImage\n /* eslint-disable @typescript-eslint/no-unused-vars */\n width,\n height,\n aspectRatio,\n tracedSVGOptions,\n placeholder,\n formats,\n quality,\n transformOptions,\n jpgOptions,\n pngOptions,\n webpOptions,\n avifOptions,\n blurredOptions,\n breakpoints,\n outputPixelDensities,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n ...props\n }): ReactElement {\n if (__error) {\n console.warn(__error)\n }\n\n if (imageData) {\n return \n }\n console.warn(`Image not loaded`, src)\n if (!__error && process.env.NODE_ENV === `development`) {\n console.warn(\n `Please ensure that \"gatsby-plugin-image\" is included in the plugins array in gatsby-config.js, and that your version of gatsby is at least 2.24.78`\n )\n }\n return null\n }\n}\n\nconst StaticImage: React.FC =\n _getStaticImage(GatsbyImageServer)\n\nconst checkDimensionProps: PropTypes.Validator = (\n props: IStaticImageProps & IPrivateProps,\n propName: keyof IStaticImageProps & IPrivateProps,\n ...rest\n) => {\n if (\n props.layout === `fullWidth` &&\n (propName === `width` || propName === `height`) &&\n props[propName]\n ) {\n return new Error(\n `\"${propName}\" ${props[propName]} may not be passed when layout is fullWidth.`\n )\n }\n return PropTypes.number(props, propName, ...rest)\n}\n\nconst validLayouts = new Set([`fixed`, `fullWidth`, `constrained`])\n\nexport const propTypes = {\n src: PropTypes.string.isRequired,\n alt: altValidator,\n width: checkDimensionProps,\n height: checkDimensionProps,\n sizes: PropTypes.string,\n layout: (props: IStaticImageProps & IPrivateProps): Error | undefined => {\n if (props.layout === undefined) {\n return undefined\n }\n if (validLayouts.has(props.layout)) {\n return undefined\n }\n\n return new Error(\n `Invalid value ${props.layout}\" provided for prop \"layout\". Defaulting to \"constrained\". Valid values are \"fixed\", \"fullWidth\" or \"constrained\".`\n )\n },\n}\n\nStaticImage.displayName = `StaticImage`\nStaticImage.propTypes = propTypes\n\nexport { StaticImage }\n","import {\n GatsbyImage as GatsbyImageBrowser,\n IGatsbyImageData,\n} from \"./gatsby-image.browser\"\nimport React from \"react\"\nimport {\n _getStaticImage,\n propTypes,\n IStaticImageProps,\n} from \"./static-image.server\"\n// These values are added by Babel. Do not add them manually\ninterface IPrivateProps {\n __imageData?: IGatsbyImageData\n __error?: string\n}\n\nconst StaticImage: React.FC =\n _getStaticImage(GatsbyImageBrowser)\n\nStaticImage.displayName = `StaticImage`\nStaticImage.propTypes = propTypes\n\nexport { StaticImage }\n","'use strict';\n\nconst UPPERCASE = /[\\p{Lu}]/u;\nconst LOWERCASE = /[\\p{Ll}]/u;\nconst LEADING_CAPITAL = /^[\\p{Lu}](?![\\p{Lu}])/gu;\nconst IDENTIFIER = /([\\p{Alpha}\\p{N}_]|$)/u;\nconst SEPARATORS = /[_.\\- ]+/;\n\nconst LEADING_SEPARATORS = new RegExp('^' + SEPARATORS.source);\nconst SEPARATORS_AND_IDENTIFIER = new RegExp(SEPARATORS.source + IDENTIFIER.source, 'gu');\nconst NUMBERS_AND_IDENTIFIER = new RegExp('\\\\d+' + IDENTIFIER.source, 'gu');\n\nconst preserveCamelCase = (string, toLowerCase, toUpperCase) => {\n\tlet isLastCharLower = false;\n\tlet isLastCharUpper = false;\n\tlet isLastLastCharUpper = false;\n\n\tfor (let i = 0; i < string.length; i++) {\n\t\tconst character = string[i];\n\n\t\tif (isLastCharLower && UPPERCASE.test(character)) {\n\t\t\tstring = string.slice(0, i) + '-' + string.slice(i);\n\t\t\tisLastCharLower = false;\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = true;\n\t\t\ti++;\n\t\t} else if (isLastCharUpper && isLastLastCharUpper && LOWERCASE.test(character)) {\n\t\t\tstring = string.slice(0, i - 1) + '-' + string.slice(i - 1);\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = false;\n\t\t\tisLastCharLower = true;\n\t\t} else {\n\t\t\tisLastCharLower = toLowerCase(character) === character && toUpperCase(character) !== character;\n\t\t\tisLastLastCharUpper = isLastCharUpper;\n\t\t\tisLastCharUpper = toUpperCase(character) === character && toLowerCase(character) !== character;\n\t\t}\n\t}\n\n\treturn string;\n};\n\nconst preserveConsecutiveUppercase = (input, toLowerCase) => {\n\tLEADING_CAPITAL.lastIndex = 0;\n\n\treturn input.replace(LEADING_CAPITAL, m1 => toLowerCase(m1));\n};\n\nconst postProcess = (input, toUpperCase) => {\n\tSEPARATORS_AND_IDENTIFIER.lastIndex = 0;\n\tNUMBERS_AND_IDENTIFIER.lastIndex = 0;\n\n\treturn input.replace(SEPARATORS_AND_IDENTIFIER, (_, identifier) => toUpperCase(identifier))\n\t\t.replace(NUMBERS_AND_IDENTIFIER, m => toUpperCase(m));\n};\n\nconst camelCase = (input, options) => {\n\tif (!(typeof input === 'string' || Array.isArray(input))) {\n\t\tthrow new TypeError('Expected the input to be `string | string[]`');\n\t}\n\n\toptions = {\n\t\tpascalCase: false,\n\t\tpreserveConsecutiveUppercase: false,\n\t\t...options\n\t};\n\n\tif (Array.isArray(input)) {\n\t\tinput = input.map(x => x.trim())\n\t\t\t.filter(x => x.length)\n\t\t\t.join('-');\n\t} else {\n\t\tinput = input.trim();\n\t}\n\n\tif (input.length === 0) {\n\t\treturn '';\n\t}\n\n\tconst toLowerCase = options.locale === false ?\n\t\tstring => string.toLowerCase() :\n\t\tstring => string.toLocaleLowerCase(options.locale);\n\tconst toUpperCase = options.locale === false ?\n\t\tstring => string.toUpperCase() :\n\t\tstring => string.toLocaleUpperCase(options.locale);\n\n\tif (input.length === 1) {\n\t\treturn options.pascalCase ? toUpperCase(input) : toLowerCase(input);\n\t}\n\n\tconst hasUpperCase = input !== toLowerCase(input);\n\n\tif (hasUpperCase) {\n\t\tinput = preserveCamelCase(input, toLowerCase, toUpperCase);\n\t}\n\n\tinput = input.replace(LEADING_SEPARATORS, '');\n\n\tif (options.preserveConsecutiveUppercase) {\n\t\tinput = preserveConsecutiveUppercase(input, toLowerCase);\n\t} else {\n\t\tinput = toLowerCase(input);\n\t}\n\n\tif (options.pascalCase) {\n\t\tinput = toUpperCase(input.charAt(0)) + input.slice(1);\n\t}\n\n\treturn postProcess(input, toUpperCase);\n};\n\nmodule.exports = camelCase;\n// TODO: Remove this for the next major release\nmodule.exports.default = camelCase;\n","const cookies = {\n // BLUE\n mvBlue: '#57BFE3',\n mvVividBlue: '#00A3FF',\n mvLightBlue: '#CDECF7',\n mvLightestBlue: '#EEF9FC',\n mvDarkerBlue: '#0084CE',\n mvBlueHover: '#CEE3F1',\n\n // TURQUOISE\n mvLightTurqoiseBlue: '#DDFAFF',\n mvTurquoiseBlue: '#31A7C6',\n mvMediumTurqoiseBlue: '#1A7196',\n mvDarkTurqoiseBlue: '#084465',\n\n // PINK\n mvPink: '#C93644',\n mvVividPink: '#ED3459',\n mvLightPink: '#EC8D8F',\n mvLightestPink: '#FAEBEC',\n mvPinkHover: '#F4D7DA',\n mvDarkPink: '#A12B37',\n\n // PURPLE\n mvLightestPurple: '#F5EDF7',\n mvLightPurple: '#837AB9',\n mvVividPurple: '#984FB0',\n mvPurpleHover: '#E5DCF0',\n\n // INDIGO\n mvDarkIndigo: '#3C3399',\n mvIndigoHover: '#DAD6F5',\n\n //GREEN\n mvLightGreen: '#D8F3E1',\n mvVividGreen: '#3DC269',\n mvDarkGreen: '#319B54',\n mvGreenHover: '#E8F1E2',\n mvLimeGreen: '#B1D385',\n\n // YELLOW\n mvYellow: '#FFF5CC',\n mvLightYellow: '#FFFAE5',\n mvYellowHover: '#FDF5D9',\n mvDarkYellow: '#CCA300',\n mvVividYellow: '#FFCC00',\n\n // ORANGE\n mvOrange: '#F5983D',\n mvOrangeHover: '#FEF2E7',\n mvVividOrange: '#FFCC00',\n mvOrangeCta: '#F27E0D',\n\n //RED\n mvRed: 'red',\n\n //GREY\n mvLightestGrey: '#F5F5F5',\n mvLightGrey: '#EBF0F4', /* E8E8E8' */\n mvLightMediumGrey: '#C7C7C7',\n mvMediumGrey: '#797979',\n mvDarkMediumGrey: '#5C5C5C',\n mvLighterDarkGrey: '#404040',\n mvDarkGrey: '#323233',\n mvBackgroundGrey: '#F7F7F7',\n mvDGrey: '#DCDCDC',\n mvBorderGrey: '#C1C1C1',\n \n // NEUTRALS\n mvWhite: 'white',\n mvBlack: '#000',\n\n // COMPONENTS\n paragraphTextColor: '#777777',\n pressReleaseTextColor: '#4d4d4d',\n lightGreyTextColor: '#A8A8A8',\n mediumGreyTextColor: '#959595',\n faqGreyBorder: '#BFBFBF',\n mvModalOverlay: 'rgba(39, 39, 39, 0.8)',\n mvSelectBorder: '#DEDDE1',\n greyCarouselDot: '#D9D9D9',\n dividerLightGrey: '#E2E2E2',\n footerLinkTextColor: '#7C828D',\n logoTextColor: '#8B8B8B',\n\n // BOX SHADOWS\n lightGreyBoxShadow: '#0000001A',\n greyBoxShadow: '#00000029',\n darkGreyBoxShadow: '#0000006b',\n blueBoxShadow: '#2b99f748',\n darkBlueBoxShadow: '#2A87AD80',\n turqoiseBoxShadow: '#5EB5DC80'\n};\n\nexport default cookies;","import { createGlobalStyle } from 'styled-components';\n\nconst assumedBrowserDefaultFontSize = 16;\n\nconst GlobalStyle = createGlobalStyle`\n html {\n font-family: \"Roboto\", \"HelveticaNeue\", \"Helvetica Neue\", Helvetica, Arial, sans-serif ;\n font-size: ${(16 / assumedBrowserDefaultFontSize) * 100}%;\n font-weight: 300;\n scroll-behavior: smooth;\n }\n h1 {\n font-weight: 900;\n }\n h2 {\n font-weight: 900;\n }\n *, *::before, *::after {\n margin: 0;\n padding: 0;\n box-sizing: border-box;\n }\n /* Remove visible outline for non-keyboard users */\n :focus:not(:focus-visible) { outline: none }\n\n html {-webkit-box-sizing: border-box;-moz-box-sizing: border-box;box-sizing: border-box;}\n body { \n font-weight: 300;\n font-family: \"Roboto\", \"HelveticaNeue\", \"Helvetica Neue\", Helvetica, Arial, sans-serif;\n color: #393939;\n margin: 0px;\n overflow-x: clip !important;\n -moz-scrollbars-none \n overflow: clip;\n -webkit-overflow-x: clip;\n -webkit-overflow: clip;\n\n }\n\n /*\n ******** layout *******************\n *, *::before, *::after {-webkit-box-sizing: inherit; -moz-box-sizing: inherit; box-sizing: inherit; }\n */\n\n .ReactModal__Overlay.ReactModal__Overlay--after-open { z-index: 15;}\n`;\n\nexport default GlobalStyle;\n","import PropTypes from 'prop-types';\nimport withSideEffect from 'react-side-effect';\nimport isEqual from 'react-fast-compare';\nimport React from 'react';\nimport objectAssign from 'object-assign';\n\nvar ATTRIBUTE_NAMES = {\n BODY: \"bodyAttributes\",\n HTML: \"htmlAttributes\",\n TITLE: \"titleAttributes\"\n};\n\nvar TAG_NAMES = {\n BASE: \"base\",\n BODY: \"body\",\n HEAD: \"head\",\n HTML: \"html\",\n LINK: \"link\",\n META: \"meta\",\n NOSCRIPT: \"noscript\",\n SCRIPT: \"script\",\n STYLE: \"style\",\n TITLE: \"title\"\n};\n\nvar VALID_TAG_NAMES = Object.keys(TAG_NAMES).map(function (name) {\n return TAG_NAMES[name];\n});\n\nvar TAG_PROPERTIES = {\n CHARSET: \"charset\",\n CSS_TEXT: \"cssText\",\n HREF: \"href\",\n HTTPEQUIV: \"http-equiv\",\n INNER_HTML: \"innerHTML\",\n ITEM_PROP: \"itemprop\",\n NAME: \"name\",\n PROPERTY: \"property\",\n REL: \"rel\",\n SRC: \"src\",\n TARGET: \"target\"\n};\n\nvar REACT_TAG_MAP = {\n accesskey: \"accessKey\",\n charset: \"charSet\",\n class: \"className\",\n contenteditable: \"contentEditable\",\n contextmenu: \"contextMenu\",\n \"http-equiv\": \"httpEquiv\",\n itemprop: \"itemProp\",\n tabindex: \"tabIndex\"\n};\n\nvar HELMET_PROPS = {\n DEFAULT_TITLE: \"defaultTitle\",\n DEFER: \"defer\",\n ENCODE_SPECIAL_CHARACTERS: \"encodeSpecialCharacters\",\n ON_CHANGE_CLIENT_STATE: \"onChangeClientState\",\n TITLE_TEMPLATE: \"titleTemplate\"\n};\n\nvar HTML_TAG_MAP = Object.keys(REACT_TAG_MAP).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key]] = key;\n return obj;\n}, {});\n\nvar SELF_CLOSING_TAGS = [TAG_NAMES.NOSCRIPT, TAG_NAMES.SCRIPT, TAG_NAMES.STYLE];\n\nvar HELMET_ATTRIBUTE = \"data-react-helmet\";\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) {\n return typeof obj;\n} : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n};\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\nvar inherits = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\nvar objectWithoutProperties = function (obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n};\n\nvar possibleConstructorReturn = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n};\n\nvar encodeSpecialCharacters = function encodeSpecialCharacters(str) {\n var encode = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (encode === false) {\n return String(str);\n }\n\n return String(str).replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\").replace(/'/g, \"'\");\n};\n\nvar getTitleFromPropsList = function getTitleFromPropsList(propsList) {\n var innermostTitle = getInnermostProperty(propsList, TAG_NAMES.TITLE);\n var innermostTemplate = getInnermostProperty(propsList, HELMET_PROPS.TITLE_TEMPLATE);\n\n if (innermostTemplate && innermostTitle) {\n // use function arg to avoid need to escape $ characters\n return innermostTemplate.replace(/%s/g, function () {\n return Array.isArray(innermostTitle) ? innermostTitle.join(\"\") : innermostTitle;\n });\n }\n\n var innermostDefaultTitle = getInnermostProperty(propsList, HELMET_PROPS.DEFAULT_TITLE);\n\n return innermostTitle || innermostDefaultTitle || undefined;\n};\n\nvar getOnChangeClientState = function getOnChangeClientState(propsList) {\n return getInnermostProperty(propsList, HELMET_PROPS.ON_CHANGE_CLIENT_STATE) || function () {};\n};\n\nvar getAttributesFromPropsList = function getAttributesFromPropsList(tagType, propsList) {\n return propsList.filter(function (props) {\n return typeof props[tagType] !== \"undefined\";\n }).map(function (props) {\n return props[tagType];\n }).reduce(function (tagAttrs, current) {\n return _extends({}, tagAttrs, current);\n }, {});\n};\n\nvar getBaseTagFromPropsList = function getBaseTagFromPropsList(primaryAttributes, propsList) {\n return propsList.filter(function (props) {\n return typeof props[TAG_NAMES.BASE] !== \"undefined\";\n }).map(function (props) {\n return props[TAG_NAMES.BASE];\n }).reverse().reduce(function (innermostBaseTag, tag) {\n if (!innermostBaseTag.length) {\n var keys = Object.keys(tag);\n\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && tag[lowerCaseAttributeKey]) {\n return innermostBaseTag.concat(tag);\n }\n }\n }\n\n return innermostBaseTag;\n }, []);\n};\n\nvar getTagsFromPropsList = function getTagsFromPropsList(tagName, primaryAttributes, propsList) {\n // Calculate list of tags, giving priority innermost component (end of the propslist)\n var approvedSeenTags = {};\n\n return propsList.filter(function (props) {\n if (Array.isArray(props[tagName])) {\n return true;\n }\n if (typeof props[tagName] !== \"undefined\") {\n warn(\"Helmet: \" + tagName + \" should be of type \\\"Array\\\". Instead found type \\\"\" + _typeof(props[tagName]) + \"\\\"\");\n }\n return false;\n }).map(function (props) {\n return props[tagName];\n }).reverse().reduce(function (approvedTags, instanceTags) {\n var instanceSeenTags = {};\n\n instanceTags.filter(function (tag) {\n var primaryAttributeKey = void 0;\n var keys = Object.keys(tag);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var lowerCaseAttributeKey = attributeKey.toLowerCase();\n\n // Special rule with link tags, since rel and href are both primary tags, rel takes priority\n if (primaryAttributes.indexOf(lowerCaseAttributeKey) !== -1 && !(primaryAttributeKey === TAG_PROPERTIES.REL && tag[primaryAttributeKey].toLowerCase() === \"canonical\") && !(lowerCaseAttributeKey === TAG_PROPERTIES.REL && tag[lowerCaseAttributeKey].toLowerCase() === \"stylesheet\")) {\n primaryAttributeKey = lowerCaseAttributeKey;\n }\n // Special case for innerHTML which doesn't work lowercased\n if (primaryAttributes.indexOf(attributeKey) !== -1 && (attributeKey === TAG_PROPERTIES.INNER_HTML || attributeKey === TAG_PROPERTIES.CSS_TEXT || attributeKey === TAG_PROPERTIES.ITEM_PROP)) {\n primaryAttributeKey = attributeKey;\n }\n }\n\n if (!primaryAttributeKey || !tag[primaryAttributeKey]) {\n return false;\n }\n\n var value = tag[primaryAttributeKey].toLowerCase();\n\n if (!approvedSeenTags[primaryAttributeKey]) {\n approvedSeenTags[primaryAttributeKey] = {};\n }\n\n if (!instanceSeenTags[primaryAttributeKey]) {\n instanceSeenTags[primaryAttributeKey] = {};\n }\n\n if (!approvedSeenTags[primaryAttributeKey][value]) {\n instanceSeenTags[primaryAttributeKey][value] = true;\n return true;\n }\n\n return false;\n }).reverse().forEach(function (tag) {\n return approvedTags.push(tag);\n });\n\n // Update seen tags with tags from this instance\n var keys = Object.keys(instanceSeenTags);\n for (var i = 0; i < keys.length; i++) {\n var attributeKey = keys[i];\n var tagUnion = objectAssign({}, approvedSeenTags[attributeKey], instanceSeenTags[attributeKey]);\n\n approvedSeenTags[attributeKey] = tagUnion;\n }\n\n return approvedTags;\n }, []).reverse();\n};\n\nvar getInnermostProperty = function getInnermostProperty(propsList, property) {\n for (var i = propsList.length - 1; i >= 0; i--) {\n var props = propsList[i];\n\n if (props.hasOwnProperty(property)) {\n return props[property];\n }\n }\n\n return null;\n};\n\nvar reducePropsToState = function reducePropsToState(propsList) {\n return {\n baseTag: getBaseTagFromPropsList([TAG_PROPERTIES.HREF, TAG_PROPERTIES.TARGET], propsList),\n bodyAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.BODY, propsList),\n defer: getInnermostProperty(propsList, HELMET_PROPS.DEFER),\n encode: getInnermostProperty(propsList, HELMET_PROPS.ENCODE_SPECIAL_CHARACTERS),\n htmlAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.HTML, propsList),\n linkTags: getTagsFromPropsList(TAG_NAMES.LINK, [TAG_PROPERTIES.REL, TAG_PROPERTIES.HREF], propsList),\n metaTags: getTagsFromPropsList(TAG_NAMES.META, [TAG_PROPERTIES.NAME, TAG_PROPERTIES.CHARSET, TAG_PROPERTIES.HTTPEQUIV, TAG_PROPERTIES.PROPERTY, TAG_PROPERTIES.ITEM_PROP], propsList),\n noscriptTags: getTagsFromPropsList(TAG_NAMES.NOSCRIPT, [TAG_PROPERTIES.INNER_HTML], propsList),\n onChangeClientState: getOnChangeClientState(propsList),\n scriptTags: getTagsFromPropsList(TAG_NAMES.SCRIPT, [TAG_PROPERTIES.SRC, TAG_PROPERTIES.INNER_HTML], propsList),\n styleTags: getTagsFromPropsList(TAG_NAMES.STYLE, [TAG_PROPERTIES.CSS_TEXT], propsList),\n title: getTitleFromPropsList(propsList),\n titleAttributes: getAttributesFromPropsList(ATTRIBUTE_NAMES.TITLE, propsList)\n };\n};\n\nvar rafPolyfill = function () {\n var clock = Date.now();\n\n return function (callback) {\n var currentTime = Date.now();\n\n if (currentTime - clock > 16) {\n clock = currentTime;\n callback(currentTime);\n } else {\n setTimeout(function () {\n rafPolyfill(callback);\n }, 0);\n }\n };\n}();\n\nvar cafPolyfill = function cafPolyfill(id) {\n return clearTimeout(id);\n};\n\nvar requestAnimationFrame = typeof window !== \"undefined\" ? window.requestAnimationFrame && window.requestAnimationFrame.bind(window) || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || rafPolyfill : global.requestAnimationFrame || rafPolyfill;\n\nvar cancelAnimationFrame = typeof window !== \"undefined\" ? window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || cafPolyfill : global.cancelAnimationFrame || cafPolyfill;\n\nvar warn = function warn(msg) {\n return console && typeof console.warn === \"function\" && console.warn(msg);\n};\n\nvar _helmetCallback = null;\n\nvar handleClientStateChange = function handleClientStateChange(newState) {\n if (_helmetCallback) {\n cancelAnimationFrame(_helmetCallback);\n }\n\n if (newState.defer) {\n _helmetCallback = requestAnimationFrame(function () {\n commitTagChanges(newState, function () {\n _helmetCallback = null;\n });\n });\n } else {\n commitTagChanges(newState);\n _helmetCallback = null;\n }\n};\n\nvar commitTagChanges = function commitTagChanges(newState, cb) {\n var baseTag = newState.baseTag,\n bodyAttributes = newState.bodyAttributes,\n htmlAttributes = newState.htmlAttributes,\n linkTags = newState.linkTags,\n metaTags = newState.metaTags,\n noscriptTags = newState.noscriptTags,\n onChangeClientState = newState.onChangeClientState,\n scriptTags = newState.scriptTags,\n styleTags = newState.styleTags,\n title = newState.title,\n titleAttributes = newState.titleAttributes;\n\n updateAttributes(TAG_NAMES.BODY, bodyAttributes);\n updateAttributes(TAG_NAMES.HTML, htmlAttributes);\n\n updateTitle(title, titleAttributes);\n\n var tagUpdates = {\n baseTag: updateTags(TAG_NAMES.BASE, baseTag),\n linkTags: updateTags(TAG_NAMES.LINK, linkTags),\n metaTags: updateTags(TAG_NAMES.META, metaTags),\n noscriptTags: updateTags(TAG_NAMES.NOSCRIPT, noscriptTags),\n scriptTags: updateTags(TAG_NAMES.SCRIPT, scriptTags),\n styleTags: updateTags(TAG_NAMES.STYLE, styleTags)\n };\n\n var addedTags = {};\n var removedTags = {};\n\n Object.keys(tagUpdates).forEach(function (tagType) {\n var _tagUpdates$tagType = tagUpdates[tagType],\n newTags = _tagUpdates$tagType.newTags,\n oldTags = _tagUpdates$tagType.oldTags;\n\n\n if (newTags.length) {\n addedTags[tagType] = newTags;\n }\n if (oldTags.length) {\n removedTags[tagType] = tagUpdates[tagType].oldTags;\n }\n });\n\n cb && cb();\n\n onChangeClientState(newState, addedTags, removedTags);\n};\n\nvar flattenArray = function flattenArray(possibleArray) {\n return Array.isArray(possibleArray) ? possibleArray.join(\"\") : possibleArray;\n};\n\nvar updateTitle = function updateTitle(title, attributes) {\n if (typeof title !== \"undefined\" && document.title !== title) {\n document.title = flattenArray(title);\n }\n\n updateAttributes(TAG_NAMES.TITLE, attributes);\n};\n\nvar updateAttributes = function updateAttributes(tagName, attributes) {\n var elementTag = document.getElementsByTagName(tagName)[0];\n\n if (!elementTag) {\n return;\n }\n\n var helmetAttributeString = elementTag.getAttribute(HELMET_ATTRIBUTE);\n var helmetAttributes = helmetAttributeString ? helmetAttributeString.split(\",\") : [];\n var attributesToRemove = [].concat(helmetAttributes);\n var attributeKeys = Object.keys(attributes);\n\n for (var i = 0; i < attributeKeys.length; i++) {\n var attribute = attributeKeys[i];\n var value = attributes[attribute] || \"\";\n\n if (elementTag.getAttribute(attribute) !== value) {\n elementTag.setAttribute(attribute, value);\n }\n\n if (helmetAttributes.indexOf(attribute) === -1) {\n helmetAttributes.push(attribute);\n }\n\n var indexToSave = attributesToRemove.indexOf(attribute);\n if (indexToSave !== -1) {\n attributesToRemove.splice(indexToSave, 1);\n }\n }\n\n for (var _i = attributesToRemove.length - 1; _i >= 0; _i--) {\n elementTag.removeAttribute(attributesToRemove[_i]);\n }\n\n if (helmetAttributes.length === attributesToRemove.length) {\n elementTag.removeAttribute(HELMET_ATTRIBUTE);\n } else if (elementTag.getAttribute(HELMET_ATTRIBUTE) !== attributeKeys.join(\",\")) {\n elementTag.setAttribute(HELMET_ATTRIBUTE, attributeKeys.join(\",\"));\n }\n};\n\nvar updateTags = function updateTags(type, tags) {\n var headElement = document.head || document.querySelector(TAG_NAMES.HEAD);\n var tagNodes = headElement.querySelectorAll(type + \"[\" + HELMET_ATTRIBUTE + \"]\");\n var oldTags = Array.prototype.slice.call(tagNodes);\n var newTags = [];\n var indexToDelete = void 0;\n\n if (tags && tags.length) {\n tags.forEach(function (tag) {\n var newElement = document.createElement(type);\n\n for (var attribute in tag) {\n if (tag.hasOwnProperty(attribute)) {\n if (attribute === TAG_PROPERTIES.INNER_HTML) {\n newElement.innerHTML = tag.innerHTML;\n } else if (attribute === TAG_PROPERTIES.CSS_TEXT) {\n if (newElement.styleSheet) {\n newElement.styleSheet.cssText = tag.cssText;\n } else {\n newElement.appendChild(document.createTextNode(tag.cssText));\n }\n } else {\n var value = typeof tag[attribute] === \"undefined\" ? \"\" : tag[attribute];\n newElement.setAttribute(attribute, value);\n }\n }\n }\n\n newElement.setAttribute(HELMET_ATTRIBUTE, \"true\");\n\n // Remove a duplicate tag from domTagstoRemove, so it isn't cleared.\n if (oldTags.some(function (existingTag, index) {\n indexToDelete = index;\n return newElement.isEqualNode(existingTag);\n })) {\n oldTags.splice(indexToDelete, 1);\n } else {\n newTags.push(newElement);\n }\n });\n }\n\n oldTags.forEach(function (tag) {\n return tag.parentNode.removeChild(tag);\n });\n newTags.forEach(function (tag) {\n return headElement.appendChild(tag);\n });\n\n return {\n oldTags: oldTags,\n newTags: newTags\n };\n};\n\nvar generateElementAttributesAsString = function generateElementAttributesAsString(attributes) {\n return Object.keys(attributes).reduce(function (str, key) {\n var attr = typeof attributes[key] !== \"undefined\" ? key + \"=\\\"\" + attributes[key] + \"\\\"\" : \"\" + key;\n return str ? str + \" \" + attr : attr;\n }, \"\");\n};\n\nvar generateTitleAsString = function generateTitleAsString(type, title, attributes, encode) {\n var attributeString = generateElementAttributesAsString(attributes);\n var flattenedTitle = flattenArray(title);\n return attributeString ? \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeString + \">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\" : \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\">\" + encodeSpecialCharacters(flattenedTitle, encode) + \"\";\n};\n\nvar generateTagsAsString = function generateTagsAsString(type, tags, encode) {\n return tags.reduce(function (str, tag) {\n var attributeHtml = Object.keys(tag).filter(function (attribute) {\n return !(attribute === TAG_PROPERTIES.INNER_HTML || attribute === TAG_PROPERTIES.CSS_TEXT);\n }).reduce(function (string, attribute) {\n var attr = typeof tag[attribute] === \"undefined\" ? attribute : attribute + \"=\\\"\" + encodeSpecialCharacters(tag[attribute], encode) + \"\\\"\";\n return string ? string + \" \" + attr : attr;\n }, \"\");\n\n var tagContent = tag.innerHTML || tag.cssText || \"\";\n\n var isSelfClosing = SELF_CLOSING_TAGS.indexOf(type) === -1;\n\n return str + \"<\" + type + \" \" + HELMET_ATTRIBUTE + \"=\\\"true\\\" \" + attributeHtml + (isSelfClosing ? \"/>\" : \">\" + tagContent + \"\");\n }, \"\");\n};\n\nvar convertElementAttributestoReactProps = function convertElementAttributestoReactProps(attributes) {\n var initProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(attributes).reduce(function (obj, key) {\n obj[REACT_TAG_MAP[key] || key] = attributes[key];\n return obj;\n }, initProps);\n};\n\nvar convertReactPropstoHtmlAttributes = function convertReactPropstoHtmlAttributes(props) {\n var initAttributes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n return Object.keys(props).reduce(function (obj, key) {\n obj[HTML_TAG_MAP[key] || key] = props[key];\n return obj;\n }, initAttributes);\n};\n\nvar generateTitleAsReactComponent = function generateTitleAsReactComponent(type, title, attributes) {\n var _initProps;\n\n // assigning into an array to define toString function on it\n var initProps = (_initProps = {\n key: title\n }, _initProps[HELMET_ATTRIBUTE] = true, _initProps);\n var props = convertElementAttributestoReactProps(attributes, initProps);\n\n return [React.createElement(TAG_NAMES.TITLE, props, title)];\n};\n\nvar generateTagsAsReactComponent = function generateTagsAsReactComponent(type, tags) {\n return tags.map(function (tag, i) {\n var _mappedTag;\n\n var mappedTag = (_mappedTag = {\n key: i\n }, _mappedTag[HELMET_ATTRIBUTE] = true, _mappedTag);\n\n Object.keys(tag).forEach(function (attribute) {\n var mappedAttribute = REACT_TAG_MAP[attribute] || attribute;\n\n if (mappedAttribute === TAG_PROPERTIES.INNER_HTML || mappedAttribute === TAG_PROPERTIES.CSS_TEXT) {\n var content = tag.innerHTML || tag.cssText;\n mappedTag.dangerouslySetInnerHTML = { __html: content };\n } else {\n mappedTag[mappedAttribute] = tag[attribute];\n }\n });\n\n return React.createElement(type, mappedTag);\n });\n};\n\nvar getMethodsForTag = function getMethodsForTag(type, tags, encode) {\n switch (type) {\n case TAG_NAMES.TITLE:\n return {\n toComponent: function toComponent() {\n return generateTitleAsReactComponent(type, tags.title, tags.titleAttributes, encode);\n },\n toString: function toString() {\n return generateTitleAsString(type, tags.title, tags.titleAttributes, encode);\n }\n };\n case ATTRIBUTE_NAMES.BODY:\n case ATTRIBUTE_NAMES.HTML:\n return {\n toComponent: function toComponent() {\n return convertElementAttributestoReactProps(tags);\n },\n toString: function toString() {\n return generateElementAttributesAsString(tags);\n }\n };\n default:\n return {\n toComponent: function toComponent() {\n return generateTagsAsReactComponent(type, tags);\n },\n toString: function toString() {\n return generateTagsAsString(type, tags, encode);\n }\n };\n }\n};\n\nvar mapStateOnServer = function mapStateOnServer(_ref) {\n var baseTag = _ref.baseTag,\n bodyAttributes = _ref.bodyAttributes,\n encode = _ref.encode,\n htmlAttributes = _ref.htmlAttributes,\n linkTags = _ref.linkTags,\n metaTags = _ref.metaTags,\n noscriptTags = _ref.noscriptTags,\n scriptTags = _ref.scriptTags,\n styleTags = _ref.styleTags,\n _ref$title = _ref.title,\n title = _ref$title === undefined ? \"\" : _ref$title,\n titleAttributes = _ref.titleAttributes;\n return {\n base: getMethodsForTag(TAG_NAMES.BASE, baseTag, encode),\n bodyAttributes: getMethodsForTag(ATTRIBUTE_NAMES.BODY, bodyAttributes, encode),\n htmlAttributes: getMethodsForTag(ATTRIBUTE_NAMES.HTML, htmlAttributes, encode),\n link: getMethodsForTag(TAG_NAMES.LINK, linkTags, encode),\n meta: getMethodsForTag(TAG_NAMES.META, metaTags, encode),\n noscript: getMethodsForTag(TAG_NAMES.NOSCRIPT, noscriptTags, encode),\n script: getMethodsForTag(TAG_NAMES.SCRIPT, scriptTags, encode),\n style: getMethodsForTag(TAG_NAMES.STYLE, styleTags, encode),\n title: getMethodsForTag(TAG_NAMES.TITLE, { title: title, titleAttributes: titleAttributes }, encode)\n };\n};\n\nvar Helmet = function Helmet(Component) {\n var _class, _temp;\n\n return _temp = _class = function (_React$Component) {\n inherits(HelmetWrapper, _React$Component);\n\n function HelmetWrapper() {\n classCallCheck(this, HelmetWrapper);\n return possibleConstructorReturn(this, _React$Component.apply(this, arguments));\n }\n\n HelmetWrapper.prototype.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !isEqual(this.props, nextProps);\n };\n\n HelmetWrapper.prototype.mapNestedChildrenToProps = function mapNestedChildrenToProps(child, nestedChildren) {\n if (!nestedChildren) {\n return null;\n }\n\n switch (child.type) {\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.NOSCRIPT:\n return {\n innerHTML: nestedChildren\n };\n\n case TAG_NAMES.STYLE:\n return {\n cssText: nestedChildren\n };\n }\n\n throw new Error(\"<\" + child.type + \" /> elements are self-closing and can not contain children. Refer to our API for more information.\");\n };\n\n HelmetWrapper.prototype.flattenArrayTypeChildren = function flattenArrayTypeChildren(_ref) {\n var _babelHelpers$extends;\n\n var child = _ref.child,\n arrayTypeChildren = _ref.arrayTypeChildren,\n newChildProps = _ref.newChildProps,\n nestedChildren = _ref.nestedChildren;\n\n return _extends({}, arrayTypeChildren, (_babelHelpers$extends = {}, _babelHelpers$extends[child.type] = [].concat(arrayTypeChildren[child.type] || [], [_extends({}, newChildProps, this.mapNestedChildrenToProps(child, nestedChildren))]), _babelHelpers$extends));\n };\n\n HelmetWrapper.prototype.mapObjectTypeChildren = function mapObjectTypeChildren(_ref2) {\n var _babelHelpers$extends2, _babelHelpers$extends3;\n\n var child = _ref2.child,\n newProps = _ref2.newProps,\n newChildProps = _ref2.newChildProps,\n nestedChildren = _ref2.nestedChildren;\n\n switch (child.type) {\n case TAG_NAMES.TITLE:\n return _extends({}, newProps, (_babelHelpers$extends2 = {}, _babelHelpers$extends2[child.type] = nestedChildren, _babelHelpers$extends2.titleAttributes = _extends({}, newChildProps), _babelHelpers$extends2));\n\n case TAG_NAMES.BODY:\n return _extends({}, newProps, {\n bodyAttributes: _extends({}, newChildProps)\n });\n\n case TAG_NAMES.HTML:\n return _extends({}, newProps, {\n htmlAttributes: _extends({}, newChildProps)\n });\n }\n\n return _extends({}, newProps, (_babelHelpers$extends3 = {}, _babelHelpers$extends3[child.type] = _extends({}, newChildProps), _babelHelpers$extends3));\n };\n\n HelmetWrapper.prototype.mapArrayTypeChildrenToProps = function mapArrayTypeChildrenToProps(arrayTypeChildren, newProps) {\n var newFlattenedProps = _extends({}, newProps);\n\n Object.keys(arrayTypeChildren).forEach(function (arrayChildName) {\n var _babelHelpers$extends4;\n\n newFlattenedProps = _extends({}, newFlattenedProps, (_babelHelpers$extends4 = {}, _babelHelpers$extends4[arrayChildName] = arrayTypeChildren[arrayChildName], _babelHelpers$extends4));\n });\n\n return newFlattenedProps;\n };\n\n HelmetWrapper.prototype.warnOnInvalidChildren = function warnOnInvalidChildren(child, nestedChildren) {\n if (process.env.NODE_ENV !== \"production\") {\n if (!VALID_TAG_NAMES.some(function (name) {\n return child.type === name;\n })) {\n if (typeof child.type === \"function\") {\n return warn(\"You may be attempting to nest components within each other, which is not allowed. Refer to our API for more information.\");\n }\n\n return warn(\"Only elements types \" + VALID_TAG_NAMES.join(\", \") + \" are allowed. Helmet does not support rendering <\" + child.type + \"> elements. Refer to our API for more information.\");\n }\n\n if (nestedChildren && typeof nestedChildren !== \"string\" && (!Array.isArray(nestedChildren) || nestedChildren.some(function (nestedChild) {\n return typeof nestedChild !== \"string\";\n }))) {\n throw new Error(\"Helmet expects a string as a child of <\" + child.type + \">. Did you forget to wrap your children in braces? ( <\" + child.type + \">{``} ) Refer to our API for more information.\");\n }\n }\n\n return true;\n };\n\n HelmetWrapper.prototype.mapChildrenToProps = function mapChildrenToProps(children, newProps) {\n var _this2 = this;\n\n var arrayTypeChildren = {};\n\n React.Children.forEach(children, function (child) {\n if (!child || !child.props) {\n return;\n }\n\n var _child$props = child.props,\n nestedChildren = _child$props.children,\n childProps = objectWithoutProperties(_child$props, [\"children\"]);\n\n var newChildProps = convertReactPropstoHtmlAttributes(childProps);\n\n _this2.warnOnInvalidChildren(child, nestedChildren);\n\n switch (child.type) {\n case TAG_NAMES.LINK:\n case TAG_NAMES.META:\n case TAG_NAMES.NOSCRIPT:\n case TAG_NAMES.SCRIPT:\n case TAG_NAMES.STYLE:\n arrayTypeChildren = _this2.flattenArrayTypeChildren({\n child: child,\n arrayTypeChildren: arrayTypeChildren,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n\n default:\n newProps = _this2.mapObjectTypeChildren({\n child: child,\n newProps: newProps,\n newChildProps: newChildProps,\n nestedChildren: nestedChildren\n });\n break;\n }\n });\n\n newProps = this.mapArrayTypeChildrenToProps(arrayTypeChildren, newProps);\n return newProps;\n };\n\n HelmetWrapper.prototype.render = function render() {\n var _props = this.props,\n children = _props.children,\n props = objectWithoutProperties(_props, [\"children\"]);\n\n var newProps = _extends({}, props);\n\n if (children) {\n newProps = this.mapChildrenToProps(children, newProps);\n }\n\n return React.createElement(Component, newProps);\n };\n\n createClass(HelmetWrapper, null, [{\n key: \"canUseDOM\",\n\n\n // Component.peek comes from react-side-effect:\n // For testing, you may use a static peek() method available on the returned component.\n // It lets you get the current state without resetting the mounted instance stack.\n // Don’t use it for anything other than testing.\n\n /**\n * @param {Object} base: {\"target\": \"_blank\", \"href\": \"http://mysite.com/\"}\n * @param {Object} bodyAttributes: {\"className\": \"root\"}\n * @param {String} defaultTitle: \"Default Title\"\n * @param {Boolean} defer: true\n * @param {Boolean} encodeSpecialCharacters: true\n * @param {Object} htmlAttributes: {\"lang\": \"en\", \"amp\": undefined}\n * @param {Array} link: [{\"rel\": \"canonical\", \"href\": \"http://mysite.com/example\"}]\n * @param {Array} meta: [{\"name\": \"description\", \"content\": \"Test description\"}]\n * @param {Array} noscript: [{\"innerHTML\": \" console.log(newState)\"\n * @param {Array} script: [{\"type\": \"text/javascript\", \"src\": \"http://mysite.com/js/test.js\"}]\n * @param {Array} style: [{\"type\": \"text/css\", \"cssText\": \"div { display: block; color: blue; }\"}]\n * @param {String} title: \"Title\"\n * @param {Object} titleAttributes: {\"itemprop\": \"name\"}\n * @param {String} titleTemplate: \"MySite.com - %s\"\n */\n set: function set$$1(canUseDOM) {\n Component.canUseDOM = canUseDOM;\n }\n }]);\n return HelmetWrapper;\n }(React.Component), _class.propTypes = {\n base: PropTypes.object,\n bodyAttributes: PropTypes.object,\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n defaultTitle: PropTypes.string,\n defer: PropTypes.bool,\n encodeSpecialCharacters: PropTypes.bool,\n htmlAttributes: PropTypes.object,\n link: PropTypes.arrayOf(PropTypes.object),\n meta: PropTypes.arrayOf(PropTypes.object),\n noscript: PropTypes.arrayOf(PropTypes.object),\n onChangeClientState: PropTypes.func,\n script: PropTypes.arrayOf(PropTypes.object),\n style: PropTypes.arrayOf(PropTypes.object),\n title: PropTypes.string,\n titleAttributes: PropTypes.object,\n titleTemplate: PropTypes.string\n }, _class.defaultProps = {\n defer: true,\n encodeSpecialCharacters: true\n }, _class.peek = Component.peek, _class.rewind = function () {\n var mappedState = Component.rewind();\n if (!mappedState) {\n // provide fallback if mappedState is undefined\n mappedState = mapStateOnServer({\n baseTag: [],\n bodyAttributes: {},\n encodeSpecialCharacters: true,\n htmlAttributes: {},\n linkTags: [],\n metaTags: [],\n noscriptTags: [],\n scriptTags: [],\n styleTags: [],\n title: \"\",\n titleAttributes: {}\n });\n }\n\n return mappedState;\n }, _temp;\n};\n\nvar NullComponent = function NullComponent() {\n return null;\n};\n\nvar HelmetSideEffects = withSideEffect(reducePropsToState, handleClientStateChange, mapStateOnServer)(NullComponent);\n\nvar HelmetExport = Helmet(HelmetSideEffects);\nHelmetExport.renderStatic = HelmetExport.rewind;\n\nexport default HelmetExport;\nexport { HelmetExport as Helmet };\n","\"use strict\";\n\nmodule.exports = Object.assign;\n//# sourceMappingURL=object-assign.js.map"],"names":["hasElementType","Element","hasMap","Map","hasSet","Set","hasArrayBuffer","ArrayBuffer","isView","equal","a","b","constructor","length","i","keys","it","Array","isArray","size","entries","next","done","has","value","get","RegExp","source","flags","valueOf","Object","prototype","toString","hasOwnProperty","call","$$typeof","module","exports","error","message","match","console","warn","_defineProperty","e","r","t","Symbol","toPrimitive","TypeError","String","Number","_toPrimitive","_toPropertyKey","defineProperty","enumerable","configurable","writable","ownKeys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","push","apply","_objectSpread2","arguments","forEach","getOwnPropertyDescriptors","defineProperties","noop","_WINDOW","_DOCUMENT","_MUTATION_OBSERVER","_PERFORMANCE","mark","measure","window","document","MutationObserver","performance","userAgent","navigator","WINDOW","DOCUMENT","MUTATION_OBSERVER","PERFORMANCE","IS_DOM","documentElement","head","addEventListener","createElement","IS_IE","indexOf","S","classic","fa","fas","far","fal","fat","fab","duotone","fad","fadr","fadl","fadt","sharp","fass","fasr","fasl","fast","fasds","fasdr","fasdl","fasdt","P","s","L","pt","defaultShortPrefixId","defaultStyleId","styleIds","futureStyleIds","defaultFontWeight","Ft","St","fak","fakd","Lt","Et","kit","t$1","GROUP","SWAP_OPACITY","PRIMARY","SECONDARY","bt$1","ga","Ia","c$1","F$1","concat","ma","map","NAMESPACE_IDENTIFIER","UNITS_IN_GRID","DEFAULT_REPLACEMENT_CLASS","DATA_FA_I2SVG","DATA_FA_PSEUDO_ELEMENT","DATA_PREFIX","DATA_ICON","HTML_CLASS_I2SVG_BASE_CLASS","TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS","PRODUCTION","e$$1","familyProxy","obj","Proxy","target","prop","_PREFIX_TO_STYLE","PREFIX_TO_STYLE","_STYLE_TO_PREFIX","solid","regular","light","thin","brands","STYLE_TO_PREFIX","_PREFIX_TO_LONG_STYLE","PREFIX_TO_LONG_STYLE","_LONG_STYLE_TO_PREFIX","ICON_SELECTION_SYNTAX_PATTERN","LAYERS_TEXT_CLASSNAME","FONT_FAMILY_PATTERN","ATTRIBUTES_WATCHED_FOR_MUTATION","normal","DUOTONE_CLASSES","RESERVED_CLASSES","initial","FontAwesomeConfig","querySelector","_ref","attr","key","val","coerce","element","getAttribute","getAttrConfig","_default","styleDefault","familyDefault","cssPrefix","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","familyPrefix","_config","config","set","_onChangeCb","cb","d$2","meaninglessTransform","x","y","rotate","flipX","flipY","nextUniqueId","id","Math","random","toArray","array","classArray","node","classList","split","htmlEscape","str","replace","joinStyles","styles","reduce","acc","styleName","trim","transformIsMeaningful","transform","css","dcp","drc","fp","rc","dPatt","customPropPatt","rPatt","_cssInserted","ensureCss","style","setAttribute","innerHTML","headChildren","childNodes","beforeChild","child","tagName","toUpperCase","insertBefore","insertCss","InjectCSS","mixout","dom","hooks","beforeDOMElementCreation","beforeI2svg","w","shims","namespace","functions","listener","removeEventListener","loaded","fn","toHtml","abstractNodes","tag","attributes","children","attributeName","joinAttributes","join","iconFromMapping","mapping","prefix","iconName","icon","doScroll","test","readyState","subject","initialValue","thisContext","result","iterator","undefined","func","c","d","bindInternal4","toHex","unicode","decoded","string","output","counter","charCodeAt","extra","ucs2decode","normalizeIcons","icons","defineIcons","params","skipHooks","normalized","addPack","FAMILY_NAMES","PREFIXES_FOR_FAMILY","familyId","_defaultUsablePrefix","_byUnicode","_byLigature","_byOldName","_byOldUnicode","_byAlias","getIconName","cls","parts","slice","name","build","lookup","reducer","o$$1","a$$1","alias","aliases","hasRegular","autoFetchSvg","shimLookups","shim","maybeNameMaybeUnicode","names","unicodes","getCanonicalPrefix","family","byUnicode","byAlias","byOldName","getDefaultUsablePrefix","c$$1","styleOrPrefix","defined","sortedUniqueValues","arr","sort","index","getCanonicalIcon","values","skipLookups","givenPrefix","faCombinedClasses","faStyleOrFamilyClasses","includes","nonStyleOrFamilyClasses","faStyles","styleFromValues","famProps","some","v$$1","getFamilyId","canonical","classNames","rest","moveNonFaClassesToRest","prefixOptions","config$$1","isDuotoneFamily","valuesHasDuotone","defaultFamilyIsDuotone","canonicalPrefixIsDuotone","newCanonicalFamilies","find","newCanonicalStyles","defaultPrefix","getDefaultCanonicalPrefix","aliasIconName","applyShimAndAlias","flat","_plugins","_hooks","providers","defaultProviderKeys","chainHooks","hook","accumulator","_len","args","_key","hookFn","callHooks","_len2","_key2","callProvided","findIconDefinition","iconLookup","library","definitions","this","add","additions","_pullDefinitions","longPrefix","reset","definition","i2svg","Promise","reject","Error","watch","autoReplaceSvgRoot","autoReplace","setTimeout","parse","canonicalIcon","api","noAuto","domVariants","abstractCreator","abstract","container","html","makeInlineSvgAbstract","main","mask","symbol","title","maskId","titleId","watchable","width","height","found","isUploadedIcon","attrClass","classes","content","role","uploadedIconWidthStyle","asSymbol","offset","asIcon","makeLayersTextAbstract","_ref2","startCentered","transformForCss","styleString","class","styles$1","asFoundIcon","vectorData","fill","missingIconResolutionMixin","findIcon","resolve","maybeNotifyMissing","noop$1","p$2","preamble","end","perf","noop$2","isWatched","createElementNS","convertSVG","abstractObj","ceFn","createTextNode","appendChild","mutators","mutation","parentNode","comment","createComment","outerHTML","nodeAsComment","replaceChild","remove","nest","forSvg","splitClasses","toSvg","toNode","removeAttribute","newInnerHTML","performOperationSync","op","perform","mutations","callback","callbackFunction","frame","requestAnimationFrame","mutator","disabled","disableObservation","enableObservation","mo","observe","options","treeCallback","nodeCallback","pseudoElementsCallback","observeMutationsRoot","objects","mutationRecord","type","addedNodes","hasPrefixAndIcon","contains","childList","characterData","subtree","classParser","existingPrefix","existingIconName","innerText","ligature","firstChild","nodeType","Node","TEXT_NODE","data","parseMeta","parser","styleParser","extraClasses","extraAttributes","attributesParser","pluginMeta","extraStyles","styles$2","generateMutation","nodeMeta","onTree","root","htmlClassList","hclAdd","suffix","hclRemove","prefixes","prefixesDomQuery","p$$1","candidates","querySelectorAll","all","then","resolvedMutations","catch","onNode","render","iconDefinition","ReplaceElements","maybeIconDefinition","mutationObserverCallbacks","provides","providers$$1","generateSvgReplacementMutation","generateAbstractIcon","nextChild","containerWidth","iconWidth","Layers","layer","assembler","LayersCounter","makeLayersCounterAbstract","LayersText","text","generateLayersText","computedFontSize","parseInt","getComputedStyle","fontSize","boundingClientRect","getBoundingClientRect","CLEAN_CONTENT_PATTERN","SECONDARY_UNICODE_RANGE","_FONT_FAMILY_WEIGHT_TO_PREFIX","FontAwesome","FONT_FAMILY_WEIGHT_TO_PREFIX","toLowerCase","FONT_FAMILY_WEIGHT_FALLBACK","fontFamily","weights","replaceForPosition","position","pendingAttribute","alreadyProcessedPseudoElement","getPropertyValue","fontFamilyMatch","fontWeight","removeChild","fontFamilySanitized","fontWeightInteger","fontWeightSanitized","isNaN","getPrefix","hexValue","isSecondary","cleaned","codePoint","second","first","codePointAt","isPrependTen","isDoubled","hexValueFromContent","isV4","startsWith","iconIdentifier","iconName4","oldUnicode","newUnicode","byOldUnicode","meta","processable","operations","PseudoElements","pseudoElements2svg","_unwatched","MutationObserver$1","unwatch","bootstrap","disconnect","parseTransformString","transformString","n","parseFloat","PowerTransforms","parseNodeAttributes","generateAbstractTransformGrouping","outer","innerTranslate","innerScale","innerRotate","inner","path","ALL_SPACE","fillBlack","force","Masks","maskData","generateAbstractMask","explicitMaskId","mainWidth","mainPath","maskWidth","maskPath","trans","transformForSvg","maskRect","maskInnerGroupChildrenMixin","maskInnerGroup","maskOuterGroup","clipId","maskTag","maskUnits","maskContentUnits","defs","MissingIconIndicator","reduceMotion","matchMedia","matches","missingIconAbstract","gChildren","FILL","ANIMATION_BASE","attributeType","repeatCount","dur","OPACITY_ANIMATE","dot","cx","cy","opacity","nextPlugins","mixoutsTo","k","plugin","tk","sk","registerPlugins","symbolData","parse$1","object","enumerableOnly","symbols","sym","_typeof","_objectWithoutProperties","excluded","sourceKeys","_objectWithoutPropertiesLoose","sourceSymbolKeys","propertyIsEnumerable","_toConsumableArray","_arrayLikeToArray","_arrayWithoutHoles","iter","from","_iterableToArray","minLen","_unsupportedIterableToArray","_nonIterableSpread","len","arr2","camelize","chr","substr","_excluded","normalizeIconArgs","objectWithKey","defaultProps","border","className","fixedWidth","inverse","flip","listItem","pull","pulse","rotation","spin","spinPulse","spinReverse","beat","fade","beatFade","bounce","shake","swapOpacity","FontAwesomeIcon","props","ref","allProps","iconArgs","maskArgs","_classes","flash","renderedIcon","_console","log","extraProps","convertCurry","displayName","propTypes","convert","mixins","attrs","pair","charAt","_extraProps$style","existingStyle","remaining","bind","ex","React","React__default","canUseDOM","reducePropsToState","handleStateChangeOnClient","mapStateOnServer","WrappedComponent","state","mountedInstances","emitChange","instance","SideEffect","_PureComponent","subClass","superClass","create","__proto__","peek","rewind","recordedState","_proto","UNSAFE_componentWillMount","componentDidUpdate","componentWillUnmount","splice","PureComponent","getDisplayName","W","hasNativeLazyLoadSupport","HTMLImageElement","_","Boolean","images","fallback","src","gatsbyImageData","gatsbyImage","childImageSharp","z","h","loading","shouldLoad","A","l","backgroundColor","top","left","bottom","right","objectFit","objectPosition","transition","H","F","_ref5","layout","paddingTop","maxWidth","display","alt","G","u","V","B","U","srcSet","decoding","Y","sources","sizes","_ref6","media","X","isRequired","J","Z","K","Q","ee","te","ae","ie","image","se","re","ne","oe","le","de","as","g","onStartLoad","p","onLoad","m","onError","f","v","E","M","N","$","JSON","stringify","I","_ref7","renderImageToString","swapPlaceholderImage","current","complete","wasCached","_ref8","isLoading","isLoaded","cancelAnimationFrame","dangerouslySetInnerHTML","__html","suppressHydrationWarning","ce","he","ue","__imageData","__error","ge","imgClassName","imgStyle","placeholder","pe","me","fe","we","UPPERCASE","LOWERCASE","LEADING_CAPITAL","IDENTIFIER","SEPARATORS","LEADING_SEPARATORS","SEPARATORS_AND_IDENTIFIER","NUMBERS_AND_IDENTIFIER","camelCase","input","pascalCase","preserveConsecutiveUppercase","locale","toLocaleLowerCase","toLocaleUpperCase","isLastCharLower","isLastCharUpper","isLastLastCharUpper","character","preserveCamelCase","lastIndex","m1","identifier","postProcess","mvBlue","mvVividBlue","mvLightBlue","mvLightestBlue","mvDarkerBlue","mvBlueHover","mvLightTurqoiseBlue","mvTurquoiseBlue","mvMediumTurqoiseBlue","mvDarkTurqoiseBlue","mvPink","mvVividPink","mvLightPink","mvLightestPink","mvPinkHover","mvDarkPink","mvLightestPurple","mvLightPurple","mvVividPurple","mvPurpleHover","mvDarkIndigo","mvIndigoHover","mvLightGreen","mvVividGreen","mvDarkGreen","mvGreenHover","mvLimeGreen","mvYellow","mvLightYellow","mvYellowHover","mvDarkYellow","mvVividYellow","mvOrange","mvOrangeHover","mvVividOrange","mvOrangeCta","mvRed","mvLightestGrey","mvLightGrey","mvLightMediumGrey","mvMediumGrey","mvDarkMediumGrey","mvLighterDarkGrey","mvDarkGrey","mvBackgroundGrey","mvDGrey","mvBorderGrey","mvWhite","mvBlack","paragraphTextColor","pressReleaseTextColor","lightGreyTextColor","mediumGreyTextColor","faqGreyBorder","mvModalOverlay","mvSelectBorder","greyCarouselDot","dividerLightGrey","footerLinkTextColor","logoTextColor","lightGreyBoxShadow","greyBoxShadow","darkGreyBoxShadow","blueBoxShadow","darkBlueBoxShadow","turqoiseBoxShadow","GlobalStyle","createGlobalStyle","clock","Component","_class","_temp","ATTRIBUTE_NAMES","TAG_NAMES","BASE","BODY","HEAD","HTML","LINK","META","NOSCRIPT","SCRIPT","STYLE","TITLE","TAG_PROPERTIES","REACT_TAG_MAP","accesskey","charset","contenteditable","contextmenu","itemprop","tabindex","HELMET_PROPS","HTML_TAG_MAP","SELF_CLOSING_TAGS","HELMET_ATTRIBUTE","createClass","descriptor","Constructor","protoProps","staticProps","_extends","assign","objectWithoutProperties","encodeSpecialCharacters","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","tagAttrs","getBaseTagFromPropsList","primaryAttributes","reverse","innermostBaseTag","lowerCaseAttributeKey","getTagsFromPropsList","approvedSeenTags","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","tagUnion","property","rafPolyfill","Date","now","currentTime","cafPolyfill","clearTimeout","webkitRequestAnimationFrame","mozRequestAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","msg","_helmetCallback","commitTagChanges","newState","baseTag","bodyAttributes","htmlAttributes","linkTags","metaTags","noscriptTags","onChangeClientState","scriptTags","styleTags","titleAttributes","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","elementTag","getElementsByTagName","helmetAttributeString","helmetAttributes","attributesToRemove","attributeKeys","attribute","indexToSave","_i","tags","headElement","tagNodes","indexToDelete","newElement","styleSheet","cssText","existingTag","isEqualNode","generateElementAttributesAsString","convertElementAttributestoReactProps","initProps","getMethodsForTag","encode","toComponent","_initProps","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","generateTagsAsReactComponent","attributeHtml","tagContent","isSelfClosing","generateTagsAsString","_ref$title","base","link","noscript","script","HelmetSideEffects","defer","HelmetExport","_React$Component","HelmetWrapper","classCallCheck","self","ReferenceError","possibleConstructorReturn","setPrototypeOf","inherits","shouldComponentUpdate","nextProps","mapNestedChildrenToProps","nestedChildren","flattenArrayTypeChildren","_babelHelpers$extends","arrayTypeChildren","newChildProps","mapObjectTypeChildren","_babelHelpers$extends2","_babelHelpers$extends3","newProps","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","_babelHelpers$extends4","warnOnInvalidChildren","mapChildrenToProps","_this2","_child$props","initAttributes","convertReactPropstoHtmlAttributes","_props","defaultTitle","titleTemplate","mappedState","renderStatic"],"sourceRoot":""}