{"version":3,"file":"index.mjs","sources":["index.mjs"],"sourcesContent":["/*!\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, '&amp;').replace(/\"/g, '&quot;').replace(/'/g, '&#39;').replace(/</g, '&lt;').replace(/>/g, '&gt;');\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(''), \"</\").concat(tag, \">\");\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 <https://mathiasbynens.be/>\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"],"names":["_defineProperty","e","r","t","_toPropertyKey","Object","defineProperty","value","enumerable","configurable","writable","_inherits","TypeError","prototype","create","constructor","_setPrototypeOf","ownKeys","keys","getOwnPropertySymbols","o","filter","getOwnPropertyDescriptor","push","apply","_objectSpread2","arguments","length","forEach","getOwnPropertyDescriptors","defineProperties","setPrototypeOf","bind","__proto__","_toPrimitive","Symbol","toPrimitive","i","call","String","Number","_wrapRegExp","BabelRegExp","RegExp","WeakMap","p","set","get","buildGroups","reduce","exec","this","groups","indices","replace","Array","isArray","join","slice","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","g","S","classic","fa","fas","far","fal","fat","fab","duotone","fad","fadr","fadl","fadt","sharp","fass","fasr","fasl","fast","fasds","fasdr","fasdl","fasdt","A","GROUP","SWAP_OPACITY","PRIMARY","SECONDARY","P","s","L","G","normal","lt","pt","Map","defaultShortPrefixId","defaultStyleId","styleIds","futureStyleIds","defaultFontWeight","xt","solid","regular","light","thin","brands","Ft","St","kit","fak","fakd","At","Ct","Lt","Wt","Et","t$1","r$1","bt$1","Yt","ua","I$1","ga","x","Ia","m$1","c$1","F$1","concat","ma","map","a","wa","NAMESPACE_IDENTIFIER","UNITS_IN_GRID","DEFAULT_CSS_PREFIX","DEFAULT_REPLACEMENT_CLASS","DATA_FA_I2SVG","DATA_FA_PSEUDO_ELEMENT","DATA_FA_PSEUDO_ELEMENT_PENDING","DATA_PREFIX","DATA_ICON","HTML_CLASS_I2SVG_BASE_CLASS","MUTATION_APPROACH_ASYNC","TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS","PRODUCTION","process","env","NODE_ENV","e$$1","familyProxy","obj","Proxy","target","prop","_PREFIX_TO_STYLE","PREFIX_TO_STYLE","_STYLE_TO_PREFIX","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","_FONT_WEIGHT_TO_PREFIX","ATTRIBUTES_WATCHED_FOR_MUTATION","DUOTONE_CLASSES","RESERVED_CLASSES","initial","FontAwesomeConfig","getAttrConfig","attr","element","querySelector","getAttribute","coerce","val","attrs","_ref","key","undefined","_default","styleDefault","familyDefault","cssPrefix","replacementClass","autoReplaceSvg","autoAddCss","autoA11y","searchPseudoElements","observeMutations","mutateApproach","keepOriginalSource","measurePerformance","showMissingIcons","familyPrefix","_config","config","_onChangeCb","cb","onChange","splice","d$2","meaninglessTransform","size","y","rotate","flipX","flipY","insertCss","css","style","setAttribute","innerHTML","headChildren","childNodes","beforeChild","child","tagName","toUpperCase","insertBefore","idPool","nextUniqueId","id","Math","random","toArray","array","classArray","node","classList","split","htmlEscape","str","joinAttributes","attributes","acc","attributeName","trim","joinStyles","styles","styleName","transformIsMeaningful","transform","transformForSvg","containerWidth","iconWidth","outer","innerTranslate","innerScale","innerRotate","inner","path","transformForCss","_ref2","width","height","startCentered","baseStyles","dcp","drc","fp","rc","dPatt","customPropPatt","rPatt","_cssInserted","ensureCss","InjectCSS","mixout","dom","hooks","beforeDOMElementCreation","beforeI2svg","w","shims","namespace","functions","listener","removeEventListener","loaded","fn","doScroll","test","readyState","domready","setTimeout","toHtml","abstractNodes","tag","children","iconFromMapping","mapping","prefix","iconName","icon","bindInternal4","func","thisContext","b","c","d","fastReduceObject","subject","initialValue","result","iterator","ucs2decode","string","output","counter","charCodeAt","extra","toHex","unicode","decoded","toString","codePointAt","index","first","second","normalizeIcons","icons","expanded","defineIcons","params","skipHooks","normalized","addPack","d1","d2","cls1","cls2","FAMILY_NAMES","PREFIXES_FOR_FAMILY","familyId","_defaultUsablePrefix","_byUnicode","_byLigature","_byOldName","_byOldUnicode","_byAlias","isReserved","name","getIconName","cls","parts","build","lookup","reducer","o$$1","aliases","a$$1","alias","hasRegular","autoFetchSvg","shimLookups","shim","maybeNameMaybeUnicode","names","unicodes","getCanonicalPrefix","family","c$$1","byUnicode","byLigature","ligature","byAlias","byOldName","byOldUnicode","oldUnicode","newUnicode","getDefaultUsablePrefix","emptyCanonicalIcon","rest","getFamilyId","values","famProps","includes","some","v$$1","styleOrPrefix","defined","moveNonFaClassesToRest","classNames","sortedUniqueValues","arr","sort","getCanonicalIcon","skipLookups","givenPrefix","faCombinedClasses","faStyleOrFamilyClasses","nonStyleOrFamilyClasses","faStyles","styleFromValues","canonical","getDefaultCanonicalPrefix","applyShimAndAlias","aliasIconName","newCanonicalFamilies","newCanonicalStyles","flat","prefixOptions","config$$1","isDuotoneFamily","valuesHasDuotone","defaultFamilyIsDuotone","canonicalPrefixIsDuotone","validPrefix","find","defaultPrefix","Library","definitions","add","_len","_key","additions","_pullDefinitions","longPrefix","reset","definition","_plugins","_hooks","providers","defaultProviderKeys","registerPlugins","nextPlugins","mixoutsTo","k","plugin","tk","sk","hook","provides","chainHooks","accumulator","args","hookFns","hookFn","callHooks","_len2","_key2","callProvided","findIconDefinition","iconLookup","library","noAuto","i2svg","Promise","reject","Error","watch","autoReplaceSvgRoot","autoReplace","parse","match","canonicalIcon","api","domVariants","abstractCreator","abstract","container","html","asIcon","main","mask","found","offset","asSymbol","symbol","makeInlineSvgAbstract","title","maskId","titleId","watchable","isUploadedIcon","attrClass","classes","content","class","role","xmlns","viewBox","uploadedIconWidthStyle","makeLayersTextAbstract","styleString","makeLayersCounterAbstract","styles$1","asFoundIcon","vectorData","fill","missingIconResolutionMixin","maybeNotifyMissing","console","error","findIcon","resolve","noop$1","p$2","preamble","begin","end","perf","noop$2","isWatched","hasPrefixAndIcon","hasBeenReplaced","contains","getMutator","mutators","mutator","createElementNS","convertSVG","abstractObj","ceFn","createTextNode","appendChild","nodeAsComment","comment","outerHTML","mutation","parentNode","createComment","replaceChild","remove","nest","forSvg","splitClasses","toSvg","toNode","removeAttribute","newInnerHTML","performOperationSync","op","perform","mutations","callback","callbackFunction","frame","requestAnimationFrame","disabled","disableObservation","enableObservation","mo","observe","options","treeCallback","nodeCallback","pseudoElementsCallback","observeMutationsRoot","objects","mutationRecord","type","addedNodes","childList","characterData","subtree","disconnect","styleParser","classParser","existingPrefix","existingIconName","innerText","firstChild","nodeType","Node","TEXT_NODE","data","attributesParser","extraAttributes","blankMeta","parseMeta","parser","extraClasses","pluginMeta","extraStyles","styles$2","generateMutation","nodeMeta","getKnownPrefixes","onTree","root","htmlClassList","hclAdd","suffix","hclRemove","prefixes","prefixesDomQuery","p$$1","candidates","querySelectorAll","all","then","resolvedMutations","catch","onNode","resolveIcons","next","maybeIconDefinition","iconDefinition","render","ReplaceElements","mutationObserverCallbacks","providers$$1","generateSvgReplacementMutation","generateAbstractIcon","nextChild","Layers","layer","assembler","LayersCounter","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","entries","hexValueFromContent","cleaned","codePoint","isPrependTen","isDoubled","isSecondary","getPrefix","fontWeight","fontFamilySanitized","fontWeightInteger","fontWeightSanitized","isNaN","replaceForPosition","position","pendingAttribute","alreadyProcessedPseudoElement","getPropertyValue","fontFamilyMatch","removeChild","hexValue","isV4","startsWith","iconIdentifier","iconName4","meta","processable","operations","PseudoElements","pseudoElements2svg","_unwatched","MutationObserver$1","unwatch","bootstrap","parseTransformString","transformString","n","parseFloat","PowerTransforms","parseNodeAttributes","generateAbstractTransformGrouping","ALL_SPACE","fillBlack","force","deGroup","Masks","maskData","generateAbstractMask","explicitMaskId","mainWidth","mainPath","maskWidth","maskPath","trans","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","SvgSymbols","symbolData","plugins","noAuto$1","config$1","library$1","dom$1","parse$1","findIconDefinition$1","toHtml$1"],"mappings":"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"}