{
  "version": 3,
  "sources": ["../../node_modules/.pnpm/browser-update@3.3.63/node_modules/browser-update/update.npm.full.js", "../../vendor/moxiltd/framework/assets/src/i18n.ts", "../../vendor/moxiltd/framework/assets/src/components/notification.ts", "../../vendor/moxiltd/framework/assets/src/components/message.ts", "../../vendor/moxiltd/framework/assets/src/errors/invalidInputError.ts", "../../vendor/moxiltd/framework/assets/src/form/formLogger.ts", "../../vendor/moxiltd/framework/assets/src/api/adminResourceApi.ts", "../../vendor/moxiltd/framework/assets/src/api/bulkApi.ts", "../../vendor/moxiltd/framework/assets/src/api/token.ts", "../../vendor/moxiltd/framework/assets/src/api/filemanagerApi.ts", "../../vendor/moxiltd/framework/assets/src/api/formApi.ts", "../../vendor/moxiltd/framework/assets/src/api/metaApi.ts", "../../vendor/moxiltd/framework/assets/src/api/resourceApi.ts", "../../vendor/moxiltd/framework/assets/src/api/uploadApi.ts", "../../vendor/moxiltd/framework/assets/src/api/userApi.ts", "../../vendor/moxiltd/framework/assets/src/api/webauthnApi.ts", "../../vendor/moxiltd/framework/assets/src/api/widgetGroupApi.ts", "../../vendor/moxiltd/framework/assets/src/api/apiclientfactory.ts", "../../vendor/moxiltd/framework/assets/src/api/api.ts", "../js/src/_site.js", "../../node_modules/.pnpm/notyf@3.10.0/node_modules/notyf/notyf.es.js", "../js/src/functions.ts", "../js/src/general.ts", "../js/src/mobile-menu.ts", "../js/src/onepager.ts", "../js/src/legacySupport.js", "../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/src/css-tag.ts", "../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/src/reactive-element.ts", "../../node_modules/.pnpm/lit-html@3.3.3/node_modules/lit-html/src/lit-html.ts", "../../node_modules/.pnpm/lit-element@4.2.2/node_modules/lit-element/src/lit-element.ts", "../js/src/components/baseComponent.ts", "../js/src/components/accordion.ts", "../js/src/components/modal.ts", "../../node_modules/.pnpm/swiper@12.2.0/node_modules/swiper/shared/ssr-window.esm.mjs", "../../node_modules/.pnpm/swiper@12.2.0/node_modules/swiper/shared/utils.mjs", "../../node_modules/.pnpm/swiper@12.2.0/node_modules/swiper/shared/swiper-core.mjs", "../../node_modules/.pnpm/swiper@12.2.0/node_modules/swiper/modules/virtual.mjs", "../../node_modules/.pnpm/swiper@12.2.0/node_modules/swiper/modules/keyboard.mjs", "../../node_modules/.pnpm/swiper@12.2.0/node_modules/swiper/modules/mousewheel.mjs", "../../node_modules/.pnpm/swiper@12.2.0/node_modules/swiper/shared/create-element-if-not-defined.mjs", "../../node_modules/.pnpm/swiper@12.2.0/node_modules/swiper/modules/navigation.mjs", "../../node_modules/.pnpm/swiper@12.2.0/node_modules/swiper/shared/classes-to-selector.mjs", "../../node_modules/.pnpm/swiper@12.2.0/node_modules/swiper/modules/pagination.mjs", "../../node_modules/.pnpm/swiper@12.2.0/node_modules/swiper/modules/a11y.mjs", "../../node_modules/.pnpm/swiper@12.2.0/node_modules/swiper/modules/autoplay.mjs", "../../node_modules/.pnpm/swiper@12.2.0/node_modules/swiper/modules/manipulation.mjs", "../js/src/components/slider.ts", "../js/src/components/tabs.ts", "../../vendor/moxiltd/framework/assets/src/errors/widgetexception.ts", "../../vendor/moxiltd/framework/assets/src/widget/widget.ts", "../../vendor/moxiltd/framework/assets/src/widget/widgetToggler.ts", "../../vendor/moxiltd/framework/assets/src/widget/widgetIndex.ts", "../../vendor/moxiltd/framework/assets/src/form/form.ts", "../../vendor/moxiltd/framework/assets/src/form/frontendform.ts", "../../vendor/moxiltd/framework/assets/src/widgets/checkbox.ts", "../../vendor/moxiltd/framework/assets/src/widgets/date.ts", "../../vendor/moxiltd/framework/assets/src/widgets/dropdown.ts", "../../vendor/moxiltd/framework/assets/src/widgets/fileUpload.ts", "../../vendor/moxiltd/framework/assets/src/widgets/float.ts", "../../vendor/moxiltd/framework/assets/src/widgets/hidden.ts", "../../vendor/moxiltd/framework/assets/src/widgets/number.ts", "../../vendor/moxiltd/framework/assets/src/widgets/radiobutton.ts", "../../vendor/moxiltd/framework/assets/src/widgets/text.ts", "../js/src/form.ts", "../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/src/decorators/custom-element.ts", "../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/src/decorators/property.ts", "../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/src/decorators/state.ts", "../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/src/decorators/base.ts", "../../node_modules/.pnpm/@lit+reactive-element@2.1.2/node_modules/@lit/reactive-element/src/decorators/query.ts", "../../node_modules/.pnpm/@fortawesome+fontawesome-svg-core@7.3.1/node_modules/@fortawesome/fontawesome-svg-core/index.mjs", "../../node_modules/.pnpm/@fortawesome+free-solid-svg-icons@7.3.1/node_modules/@fortawesome/free-solid-svg-icons/index.mjs", "../../vendor/moxiltd/framework/assets/src/admin/icons/icons.ts", "../../vendor/moxiltd/framework/assets/src/widget/widgetComponent.ts", "../../vendor/moxiltd/framework/assets/src/widgets/otpDigits.ts", "../../node_modules/.pnpm/@deltablot+dropzone@7.4.4/node_modules/@deltablot/dropzone/dist/src/dropzone.js", "../../node_modules/.pnpm/@deltablot+dropzone@7.4.4/node_modules/@deltablot/dropzone/dist/src/emitter.js", "../../node_modules/.pnpm/@deltablot+dropzone@7.4.4/node_modules/@deltablot/dropzone/dist/src/options.js", "../../node_modules/.pnpm/@deltablot+dropzone@7.4.4/node_modules/@deltablot/dropzone/dist/src/preview-template.js", "../../node_modules/.pnpm/sortablejs@1.15.7/node_modules/sortablejs/modular/sortable.esm.js", "../js/src/components/uploader.ts", "../js/src/components/avatarUploader.ts", "../js/src/components/categoryWizard.ts", "../js/src/components/cameraUser.ts", "../js/src/components/barcodeScanner.ts", "../js/src/components/numberScanner.ts"],
  "sourcesContent": ["//(c)2025, MIT Style License <browser-update.org/LICENSE.txt>\r\n//it is recommended to directly link to this file because we update the detection code\r\n\"use strict\";\r\n\r\nvar $bu_= new function() {\r\n    var s=this;\r\n    this.version=\"3.3.63npm\";\r\n    this.vsakt = {c:\"141\",f:\"143\",s:\"18.5\",e:\"141\",i:\"12\",ios:\"18.5\",samsung:\"28\",o:\"120\",e_a:\"140\",o_a:\"90\",y:\"25.6\",v:\"7.5\",uc:\"14.1.0\"};\r\n    //severely insecure below(!) this version, insecure means remote code execution that is actively being exploited\r\n    this.vsinsecure_below = {c:\"136\",f:\"136\",s:\"11.1.1\",e:\"130\",i:11,ios:\"16.5\",samsung:\"26.0\",o:\"115\",o_a:\"84\",y:\"20\",v:\"7.0\",uc:\"13.8.3\"};\r\n    this.vsdefault = {c:-3,f:-3,s:-2,e:17,i:11,ios:12,samsung:-3,o:-3,o_a:-3,y:-1,v:-1,uc:-0.2,a:535};\r\n    this.names={c:\"Chrome\",f:'Firefox',s:'Safari',e:\"Edge\",i:'Internet Explorer',ios:\"iOS\",samsung:\"Samsung Internet\",o:'Opera',o_a:'Opera', e_a:\"Edge\", y:\"Yandex Browser\",v:\"Vivaldi\",uc:\"UC Browser\",a:\"Android Browser\",x:\"Other\",silk:\"Silk\"};\r\n\r\n    this.get_browser = function(ua) {\r\n    var n,ua=(ua||navigator.userAgent).replace(\"_\",\".\"),r={n:\"x\",v:0,t:\"other browser\",age_years:undefined,no_device_update:false,available:s.vsakt};\r\n    function ignore(reason,pattern){if (new RegExp(pattern,\"i\").test(ua)) return reason;return false}\r\n    r.other=ignore(\"bot\",\"Pagespeed|pingdom|Preview|ktxn|dynatrace|Ruxit|PhantomJS|Headless|Lighthouse|bot|spider|archiver|transcoder|crawl|checker|monitoring|prerender|screenshot|python-|php|uptime|validator|fetcher|facebook|slurp|google|yahoo|node|mail.ru|github|cloudflare|addthis|thumb|proxy|feed|fetch|favicon|link|http|scrape|seo|page|search console|AOLBuild|Teoma|Expeditor\")||\r\n        ignore(\"TV\",\"SMART-TV|SmartTV\") ||\r\n        ignore(\"niche browser\",\"motorola edge|Comodo.Dragon|OculusBrowser|Falkon|Brave|Classic Browser|Dorado|LBBROWSER|Focus|waterfox|Firefox/56.2|Firefox/56.3|Whale|MIDP|k-meleon|sparrow|wii|Chromium|Puffin|Opera Mini|maxthon|maxton|dolfin|dolphin|seamonkey|opera mini|netfront|moblin|maemo|arora|kazehakase|epiphany|konqueror|rekonq|symbian|webos|PaleMoon|Basilisk|QupZilla|Otter|Midori|qutebrowser|slimjet\") ||\r\n        ignore(\"mobile without upgrade path or landing page\",\"OPR/44.12.2246|cros|kindle|tizen|silk|blackberry|bb10|RIM|PlayBook|meego|nokia|ucweb|ZuneWP7|537.85.10\");\r\n//        ignore(\"android(chrome) web view\",\"; wv\");\r\n    r.embedded=/\"QtWebEngine|Teams|Electron/i.test(ua);\r\n    r.mobile=(/iphone|ipod|ipad|android|mobile|phone|ios|iemobile/i.test(ua));\r\n    r.discontinued=(/netscape|greenbrowser|camino|flot|fennec|galeon|coolnovo/i.test(ua));\r\n\r\n    var pats=[\r\n        [\"CriOS.VV\",\"c\",'ios'],\r\n        [\"FxiOS.VV\",\"f\",'ios'],\r\n        [\"Trident.*rv:VV\",\"i\",'i'],\r\n        [\"Trident.VV\",\"i\",'i'],\r\n        [\"UCBrowser.VV\",\"uc\",'c'],\r\n        [\"MSIE.VV\",\"i\",'i'],\r\n        [\"Edge.VV\",\"e\",'e'],\r\n        [\"Edg.VV\",\"e\",'c'],\r\n        [\"EdgA.VV\",\"e_a\",'c'],\r\n        [\"Vivaldi.VV\",\"v\",'c'],\r\n        [\"Android.*OPR.VV\",\"o_a\",'c'],\r\n        [\"OPR.VV\",\"o\",'c'],\r\n        [\"YaBrowser.VV\",\"y\",'c'],\r\n        [\"SamsungBrowser.VV\",\"samsung\",'c'],\r\n        [\"Silk.VV\",\"silk\",'c'],\r\n        [\"Chrome.VV\",\"c\",'c'],\r\n        [\"Firefox.VV\",\"f\",'f'],\r\n        [\" OS.VV.*Safari\",\"ios\",'ios'],\r\n        [\"Version.VV.*Safari\",\"s\",'s'],\r\n        [\"Safari.VV\",\"s\",'s'],\r\n        [\"Opera.*Version.VV\",\"o\"],\r\n        [\"Opera.VV\",\"o\"]\r\n    ];\r\n    var VV=\"(\\\\d+\\\\.?\\\\d+\\\\.?\\\\d*\\\\.?\\\\d*)\";\r\n    for (var i=0; i < pats.length; i++) {\r\n        if (ua.match(new RegExp(pats[i][0].replace(\"VV\",VV),\"i\"))) {\r\n            r.n=pats[i][1];\r\n            r.engine=pats[i][2];\r\n            break;\r\n        }        \r\n    }\r\n    r.fullv=RegExp.$1;\r\n    r.v=parseFloat(r.fullv);\r\n\r\n    // Special treatment of some systems\r\n    //do not notify old systems since there is no up-to-date browser available\r\n    if (/windows.nt.5|windows.nt.4|windows.nt.6.0|windows.95|windows.98|os x 10.2|os x 10.3|os x 10.4|os x 10.5/i.test(ua)) {\r\n        r.no_device_update=true;\r\n        r.available={}\r\n    }\r\n    //Safari on iOS >=13 in Desktop mode\r\n    if (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1) {\r\n        ua.match(new RegExp(\"Version.\"+VV,\"i\"));\r\n        r.n=\"ios\";\r\n        r.engine='ios';\r\n        r.fullv=RegExp.$1;\r\n        r.v=parseFloat(r.fullv);\r\n    }\r\n    //iOS\r\n    if (/iphone|ipod|ipad|ios/i.test(ua)) {\r\n        ua.match(new RegExp(\"OS.\"+VV,\"i\"));\r\n        r.n=\"ios\";\r\n        r.fullv=RegExp.$1;\r\n        r.v=parseFloat(r.fullv);\r\n        r.engine='ios';\r\n        var av=s.available_ios(ua,r.v);\r\n        /*\r\n        var newmap={10:\"10.3.4\",11:\"12.4.3\",12:\"12.4.3\",13:s.vsakt[\"ios\"]};\r\n        if (av in newmap)\r\n            av=newmap[av];\r\n        */\r\n        if (av < 12 && Math.round(r.v)===11)// all devices with ios 11 support ios 12\r\n            av=12\r\n        r.available = {\"ios\": av};\r\n        if (parseFloat(r.available.ios)<15)\r\n            r.no_device_update=true;\r\n    }\r\n    //winxp/vista/2003\r\n    if (/windows.nt.5.1|windows.nt.5.2|windows.nt.6.0/i.test(ua)) {\r\n        r.available={\"c\":49.9,\"f\":52.9}\r\n        r.no_device_update=true;\r\n    }\r\n    //old mac\r\n    if (/os x 10.6/i.test(ua)) {\r\n        r.available = {\"s\": \"5.1.10\", \"c\": 49.9, \"f\": 48}\r\n        r.no_device_update=true;\r\n    }\r\n\r\n    if (/os x 10.7|os x 10.8/i.test(ua)) {\r\n        r.available = {\"s\": \"6.2.8\", \"c\": 49.9, \"f\": 48}\r\n        r.no_device_update=true;\r\n    }\r\n    if (/os x 10.9/i.test(ua))\r\n        r.available.s=\"9.1.3\"\r\n\r\n    if (/os x 10.10/i.test(ua))\r\n        r.available.s=\"10.1.2\"\r\n\r\n    //check for android stock browser\r\n    if (ua.indexOf('Android')>-1 && r.n===\"s\") {\r\n        var v=parseInt((/WebKit\\/([0-9]+)/i.exec(ua) || 0)[1],10) || 2000;\r\n        if (v <= 534) {\r\n            r.n=\"a\";\r\n            r.fullv=r.v=v;\r\n            r.is_insecure=true;\r\n        }\r\n    }\r\n\r\n    r.t=s.names[r.n]+\" \"+r.v;\r\n    r.is_supported=r.is_latest= !s.vsakt[r.n] ? undefined : s.less(r.fullv,s.vsakt[r.n])<=0;\r\n    \r\n    r.vmaj=Math.round(r.v);\r\n\r\n    r.is_insecure= r.is_insecure|| !s.vsinsecure_below[r.n] ? undefined :  s.less(r.fullv,s.vsinsecure_below[r.n])===1;\r\n    \r\n    // extended stable, LTS and ESR releases\r\n    var esr=[\r\n        \"f:115\",\"f:128\",\"f:140\", // Firefox ESR\r\n        \"c:138\", // Chrome LTS\r\n        \"c:132\", // Chrome LTS\r\n        \"c:140\", // Chrome Extended Stable, updated every 8 weeks\r\n        \"e:140\"];// Edge Extended Stable, updated every 8 weeks\r\n    if (esr.indexOf(r.n+\":\"+r.vmaj)>-1) {\r\n        r.is_supported=true;\r\n        r.is_insecure=false;\r\n        r.esr=true;\r\n    }\r\n    \r\n    if (r.n===\"ios\" && r.v>=15)\r\n        r.is_supported=true;\r\n    if (r.n===\"a\" || r.n===\"x\")\r\n        r.t=s.names[r.n];\r\n    if (r.n===\"e\") {\r\n        r.t = s.names[r.n] + \" \" + r.vmaj;\r\n        r.is_supported = s.less(r.fullv, \"18.15063\") != 1\r\n    }\r\n    if (r.n in [\"c\",\"f\",\"o\",\"e\"] && s.less(r.fullv,parseFloat(s.vsakt[r.n])-1)<=0)\r\n        r.is_supported=true; //mark also the version before the current version as supported to make the transitions smoother\r\n\r\n    var releases_per_year={'f':7,'c':8,'o':8,'i':1,'e':1,'s':1}//,'v':1}\r\n    if (releases_per_year[r.n]) {\r\n        r.age_years=Math.round(((s.vsakt[r.n]-r.v)/releases_per_year[r.n])*10)/10 || 0\r\n    }\r\n    var engines={e:\"Edge.VV\",c:\"Chrome.VV\",f:\"Firefox.VV\",s:\"Version.VV\",i:\"MSIE.VV\",\"ios\":\" OS.VV\"}\r\n    if (r.engine) {\r\n        ua.match(new RegExp(engines[r.engine].replace(\"VV\",VV),\"i\"))\r\n        r.engine_version=parseFloat(RegExp.$1)\r\n    }    \r\n    return r\r\n}\r\nthis.semver = function(vstr) {\r\n    if (vstr instanceof Array)\r\n        return vstr\r\n    var x = (vstr+(\".0.0.0\")).split('.')\r\n    return [parseInt(x[0]) || 0, parseInt(x[1]) || 0, parseInt(x[2]) || 0, parseInt(x[3]) || 0]\r\n}\r\nthis.less= function(v1,v2) {\r\n    //semantic version comparison: returns 1 if v1<v2 , 0 if equal, -1 if v1>v2\r\n    v1=s.semver(v1)\r\n    v2=s.semver(v2)\r\n    for (var i=0; ;i++) {\r\n        if (i>=v1.length) return i>=v2.length ? 0 : 1;\r\n        if (i>=v2.length) return -1;\r\n        var diff = v2[i]-v1[i]\r\n        if (diff) return diff>0 ? 1 : -1;\r\n    }\r\n}\r\nthis.available_ios=function(ua,v) {\r\n    //https://support.apple.com/de-de/guide/iphone/iphe3fa5df43/ios\r\n    //https://en.wikipedia.org/wiki/IOS_version_history\r\n    //https://www.ios-resolution.com/\r\n    \r\n    var h = Math.max(window.screen.height, window.screen.width),pr = window.devicePixelRatio\r\n    if (/ipad/i.test(ua)) {\r\n        if (h == 1024 && pr == 2) // iPad 3 (iOS 9), 4, 5, Mini 2, Mini 3, Mini 4, Air, Air 2, Pro 9.7\r\n            return 10//? only ipad 4 has ios 10, all other can have ios 11\r\n        if (h == 1112)// iPad Pro 10.5\r\n            return 15;\r\n        if (h == 1366)//iPad Pro 12.9, Pro 12.9 (2nd Gen)\r\n            return 15\r\n        if (h == 1024 && v < 6)\r\n            return 5 // iPad\r\n        return 9 // iPad 2, iPad Mini\r\n    }\r\n    if (pr == 1)// 1/3G/3GS\r\n        return 6//for 3GS\r\n    if (h >= 812 && pr == 3)// >=XR\r\n        return 16\r\n    if (h >= 812 && pr == 3)// >=X\r\n        return 16\r\n    if (pr == 3) //6plus, 7plus, 8plus, >=X\r\n        return 15\r\n\r\n    if ((h == 736 || h == 667))// && pr == 3)// 6+/6s+/7+ and 8+ or // 6+/6s+/7+ and 8+ in zoom mode + // 6/6s/7 and 8\r\n        return 15//slightly wrong as latest version for iphone 6 is 12\r\n    if (h == 568) // 5/5C/5s/SE or 6/6s/7 and 8 in zoom mode\r\n        return 10\r\n    if (h == 480) // i4/4s\r\n        return 7\r\n    return 6\r\n}\r\n/*\r\nthis.sub= function(v,minus) {\r\n    //semantic version subtraction\r\n    v=s.semver(v)\r\n    minus=s.semver(minus)\r\n    for (var i=0; ;i++) {\r\n        if (i>=v.length||i>minus.length) break;\r\n        v[i]-=v[minus];\r\n    }\r\n    return v.join('.')\r\n}\r\n*/\r\n}\r\n\r\nwindow.$bu_getBrowser=$bu_.get_browser;\r\n\r\nvar $buo = function(op,test) {\r\nvar n = window.navigator,b;\r\nop=window._buorgres=op||{};\r\nvar ll = op.l||(n.languages ? n.languages[0] : null) || n.language || n.browserLanguage || n.userLanguage||document.documentElement.getAttribute(\"lang\")||\"en\";\r\nop.llfull=ll.replace(\"_\",\"-\").toLowerCase().substr(0,5);\r\nop.ll=op.llfull.substr(0,2);\r\nop.domain=op.domain!==undefined?op.domain:(/file:/.test(location.href)?\"https:\":\"\")+\"//browser-update.org\";\r\nop.apiver=op.api||op.c||-1;\r\nop.jsv=$bu_.version;\r\n\r\nvar required_min=(op.apiver<2018&&{i:10,f:11,o:21,s:8,c:30})||{};\r\n\r\nvar vs=op.notify||op.vs||{};//legacy config: maximum version to notify\r\nif (vs.e!==0)\r\n    vs.e=vs.e||vs.i;\r\nvs.i=vs.i||vs.e;\r\nvar required=op.required||{};//minimum browser versions needed\r\nif (required.e!==0)\r\n    required.e=required.e||required.i;\r\nif (!required.i) {\r\n    required.i=required.e;\r\n    $bu_.vsakt.i=$bu_.vsakt.e;\r\n}\r\n\r\nfor (b in $bu_.vsdefault) {\r\n    if (vs[b]) {//legacy style config: browsers to notify\r\n        if ($bu_.less(vs[b],0)>=0) // required <= 0\r\n            required[b]= parseFloat($bu_.vsakt[b])+parseFloat(vs[b])+0.01\r\n        else\r\n            required[b] = parseFloat(vs[b]) + 0.01\r\n    }\r\n    if (!(b in required) || required[b]==null)\r\n        required[b]=$bu_.vsdefault[b]\r\n    if ($bu_.less(required[b],0)>=0) // case for required <= 0 --> relative to latest version\r\n        required[b]=parseFloat($bu_.vsakt[b])+parseFloat(required[b]) // TODO: make it work for string version\r\n    if (required_min[b] && $bu_.less(required[b],required_min[b])===1) // required < required_min\r\n        required[b]=required_min[b]\r\n}\r\nrequired.ios=required.ios||required.s;\r\n\r\nif (required.i<79 && required.i>65)\r\n    required.i=required.i-60\r\nif (required.e<79 && required.e>65)\r\n    required.e=required.e-60\r\nop.required=required;\r\nop.reminder=op.reminder<0.1 ? 0 : op.reminder||(24*7);\r\nop.reminderClosed=op.reminderClosed<1 ? 0 : op.reminderClosed||(24*7);\r\nop.onshow = op.onshow||function(o){};\r\nop.onclick = op.onclick||function(o){};\r\nop.onclose = op.onclose||function(o){};\r\nop.pageurl = op.pageurl || location.hostname || \"x\";\r\nop.newwindow=(op.newwindow!==false);\r\n\r\nop.test=test||op.test||(location.hash===\"#test-bu\")||false;\r\nop.ignorecookie=op.ignorecookie||location.hash===\"#ignorecookie-bu\";\r\n\r\nop.reasons=[];\r\nop.hide_reasons=[];\r\nfunction check_show(op) {\r\n    var bb=op.browser=$bu_.get_browser(op.override_ua);\r\n    op.is_below_required = required[bb.n] && $bu_.less(bb.fullv,required[bb.n])===1; //bb.fullv<required\r\n    if (bb.other!==false)\r\n        op.hide_reasons.push(\"is other browser:\" + bb.other)\r\n    if (bb.embedded!==false)\r\n        op.hide_reasons.push(\"is embedded browser:\" + bb.embedded)\r\n    if ( bb.esr && !op.notify_esr)// || (bb.is_supported && !op.notify_also_supported))\r\n        op.hide_reasons.push(\"Extended support (ESR)\")\r\n    if (bb.mobile&&op.mobile===false)\r\n        op.hide_reasons.push(\"do not notify mobile\")\r\n    if (bb.is_latest)//the latest versions of a browser can not be notified\r\n            op.hide_reasons.push(\"is latest version of the browser\")\r\n    if (bb.no_device_update)\r\n        op.hide_reasons.push(\"no device update\")\r\n    if (op.is_below_required)\r\n        op.reasons.push(\"below required\")\r\n    if ((op.insecure||op.unsecure) && bb.is_insecure)\r\n        op.reasons.push(\"insecure\")\r\n    if (op.unsupported && !bb.is_supported)\r\n        op.reasons.push(\"no vendor support\")\r\n    if (op.hide_reasons.length>0)\r\n        return false\r\n    if (op.reasons.length>0)\r\n        return true\r\n    return false\r\n }\r\n\r\nop.notified=check_show(op);\r\n\r\nop.already_shown=document.cookie.indexOf(\"browserupdateorg=pause\")>-1 && !op.ignorecookie;\r\n\r\nif (!op.test && (!op.notified || op.already_shown))\r\n    return;\r\n\r\nop.setCookie=function(hours) { //sets a cookie that the user has already seen the notification, closed it or permanently wants to hide it. No information on the user is stored.\r\n    document.cookie = 'browserupdateorg=pause; expires='+(new Date(new Date().getTime()+3600000*hours)).toGMTString()+'; path=/; SameSite=Lax'+(/https:/.test(location.href)?'; Secure':'')\r\n}\r\n\r\nif (op.already_shown && (op.ignorecookie || op.test))\r\n    op.setCookie(-10)// remove old cookies if in test mode\r\n\r\nif (op.reminder>0)\r\n    op.setCookie(op.reminder);\r\n\r\nif (op.nomessage) {\r\n    op.onshow(op);\r\n    return;\r\n}\r\n\r\n$buo_show();\r\n};\r\n\r\n\r\nif( typeof( module ) !== 'undefined' ) {\r\n    module.exports = $buo;\r\n}\r\n\r\n\r\n\r\n\"use strict\";\r\nvar $buo_show = function () {\r\n    var op = window._buorgres;\r\n    var bb = $bu_getBrowser();\r\n    var burl = op.burl || (\"http\" + (/MSIE/i.test(navigator.userAgent) ? \"\" : \"s\") + \"://browser-update.org/\");\r\n    if (!op.url) {\r\n        op.url = burl + ((op.l && (op.l + \"/\")) || \"\") + \"update-browser.html\" + (op.test ? \"?force_outdated=true\" : \"\") + \"#\" + op.jsv + \":\" + op.pageurl;\r\n    }\r\n    op.url_permanent_hide=op.url_permanent_hide || \"#\"; //(burl + \"block-ignore-browser-update-warning.html\");\r\n    /*\r\n     if (Math.random()*1000<1 && !op.test && !op.betatest) {\r\n     var i = new Image();\r\n     var txt=op[\"text_\"+ll]||op.text||\"\";\r\n     var extra=encodeURIComponent(\"frac=\"+frac+\"&txt=\"+txt+\"&apiver=\"+op.apiver);\r\n     i.src=\"https://browser-update.org/cnt?what=noti&from=\"+bb.n+\"&fromv=\"+bb.v + \"&ref=\"+ escape(op.pageurl) + \"&jsv=\"+op.jsv+\"&tv=\"+op.style+\"&extra=\"+extra;\r\n     }\r\n     */\r\n    function busprintf() {\r\n        var args = arguments;\r\n        var data = args[0];\r\n        for (var k = 1; k < args.length; ++k) {\r\n            data = data.replace(/%s/, args[k]);\r\n        }\r\n        return data;\r\n    }\r\n\r\n\r\nvar t = {}, ta;\r\nt.en= {'msg': 'Your web browser ({brow_name}) is out of date.', 'msgmore': 'Update your browser for more security, speed and the best experience on this site.', 'bupdate': 'Update browser', 'bignore': 'Ignore','remind': 'You will be reminded in {days} days.','bnever': 'Never show again','insecure':'Your web browser ({brow_name}) has a serious security vulnerability!'}\r\nt.ar= {'msg': '\u0645\u062A\u0635\u0641\u062D \u0627\u0644\u0625\u0646\u062A\u0631\u0646\u062A \u0627\u0644\u062E\u0627\u0635 \u0628\u0643 ({brow_name}) \u063A\u064A\u0631 \u0645\u064F\u062D\u062F\u0651\u062B.','msgmore': '\u0642\u0645 \u0628\u062A\u062D\u062F\u064A\u062B \u0627\u0644\u0645\u062A\u0635\u0641\u062D \u0627\u0644\u062E\u0627\u0635 \u0628\u0643 \u0644\u0645\u0632\u064A\u062F \u0645\u0646 \u0627\u0644\u0623\u0645\u0627\u0646 \u0648\u0627\u0644\u0633\u0631\u0639\u0629 \u0648\u0644\u0623\u0641\u0636\u0644 \u062A\u062C\u0631\u0628\u0629 \u0639\u0644\u0649 \u0647\u0630\u0627 \u0627\u0644\u0645\u0648\u0642\u0639.','bupdate': '\u062A\u062D\u062F\u064A\u062B \u0627\u0644\u0645\u062A\u0635\u0641\u062D','bignore': '\u062A\u062C\u0627\u0647\u0644', 'remind': '\u0633\u064A\u062A\u0645 \u062A\u0630\u0643\u064A\u0631\u0643 \u0641\u064A \u063A\u0636\u0648\u0646 {days} \u0623\u064A\u0627\u0645.', 'bnever': '\u0644\u0627 \u062A\u0638\u0647\u0631 \u0645\u0631\u0629 \u0623\u062E\u0631\u0649'}\r\nt.bg= {'msg': '\u0412\u0430\u0448\u0438\u044F\u0442 \u0443\u0435\u0431 \u0431\u0440\u0430\u0443\u0437\u044A\u0440 ({brow_name}) \u0435 \u043E\u0441\u0442\u0430\u0440\u044F\u043B.','msgmore': '\u0410\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0438\u0440\u0430\u0439\u0442\u0435 \u0431\u0440\u0430\u0443\u0437\u044A\u0440\u0430 \u0441\u0438 \u0437\u0430 \u043F\u043E\u0432\u0435\u0447\u0435 \u0441\u0438\u0433\u0443\u0440\u043D\u043E\u0441\u0442, \u0431\u044A\u0440\u0437\u0438\u043D\u0430 \u0438 \u043D\u0430\u0439-\u0434\u043E\u0431\u0440\u043E\u0442\u043E \u0438\u0437\u0436\u0438\u0432\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u0442\u043E\u0437\u0438 \u0441\u0430\u0439\u0442.','bupdate': '\u0410\u043A\u0442\u0443\u0430\u043B\u0438\u0437\u0438\u0440\u0430\u043D\u0435 \u043D\u0430 \u0431\u0440\u0430\u0443\u0437\u044A\u0440\u0430','bignore': '\u0438\u0433\u043D\u043E\u0440\u0438\u0440\u0430\u0439', 'remind': '\u0429\u0435 \u0432\u0438 \u0431\u044A\u0434\u0435 \u043D\u0430\u043F\u043E\u043C\u043D\u0435\u043D\u043E \u0441\u043B\u0435\u0434 {days} \u0434\u043D\u0438.', 'bnever': '\u041D\u0438\u043A\u043E\u0433\u0430 \u043F\u043E\u0432\u0435\u0447\u0435 \u0434\u0430 \u043D\u0435 \u0441\u0435 \u043F\u043E\u043A\u0430\u0437\u0432\u0430'}\r\nt.ca= {'msg': 'El teu navegador ({brow_name}) est\u00E0 desactualitzat.','msgmore': 'Actualitzeu el vostre navegador per obtenir m\u00E9s seguretat, velocitat i una millor experi\u00E8ncia en aquest lloc.','bupdate': 'Actualitza el navegador','bignore': 'Ignorar', 'remind': 'T\\'ho recordarem d\\'aqu\u00ED a {days} dies.', 'bnever': 'No ho tornis a mostrar'}\r\nt.cs= {'msg': 'V\u00E1\u0161 prohl\u00ED\u017Ee\u010D ({brow_name}) je zastaral\u00FD.','msgmore': 'Aktualizujte prohl\u00ED\u017Ee\u010D pro lep\u0161\u00ED zabezpe\u010Den\u00ED, rychlost a nejlep\u0161\u00ED z\u00E1\u017Eitek z tohoto webu.','bupdate': 'Aktualizovat prohl\u00ED\u017Ee\u010D','bignore': 'Ignorovat', 'remind': 'Znovu budete upozorn\u011Bni za {days} dn\u016F.', 'bnever': 'Ji\u017E nezobrazovat'}\r\nt.cy= {'msg': 'Mae eich porwr gwe ({brow_name}) angen ei ddiweddaru.','msgmore': 'Diweddarwch eich porwr i gael mwy o ddiogelwch, cyflymder a\\'r profiad gorau ar y safle hwn.','bupdate': 'Diweddaru porwr','bignore': 'Anwybyddu', 'remind': 'Byddwn yn eich atgoffa mewn {days} diwrnod.', 'bnever': 'Peidiwch \u00E2 dangos eto'}\r\nt.da= {'msg': 'Din web browser ({brow_name}) er for\u00E6ldet','msgmore': 'Opdater din browser for mere sikkerhed, hastighed og den bedste oplevelse p\u00E5 denne side.','bupdate': 'Opdater browser','bignore': 'Ignorer', 'remind': 'Du vil blive p\u00E5mindet om {days} dage.', 'bnever': 'Vis aldrig igen'}\r\nt.de= {'msg': 'Ihr Webbrowser ({brow_name}) ist veraltet.','msgmore': 'Aktualisieren Sie Ihren Browser f\u00FCr mehr Sicherheit, Geschwindigkeit und den besten Komfort auf dieser Seite.','bupdate': 'Browser aktualisieren','bignore': 'Ignorieren', 'remind': 'Sie werden in {days} Tagen wieder erinnert.', 'bnever': 'Nie wieder anzeigen','insecure':'Ihr Webbrowser ({brow_name}) hat eine ernsthafte Sicherheitsl\u00FCcke!'}\r\nt.el= {'msg': '\u03A4\u03BF \u03C0\u03C1\u03CC\u03B3\u03C1\u03B1\u03BC\u03BC\u03B1 \u03C0\u03B5\u03C1\u03B9\u03AE\u03B3\u03B7\u03C3\u03AE\u03C2 \u03C3\u03B1\u03C2 ({brow_name}) \u03B5\u03AF\u03BD\u03B1\u03B9 \u03B1\u03C0\u03B1\u03C1\u03C7\u03B1\u03B9\u03C9\u03BC\u03AD\u03BD\u03BF.','msgmore': '\u0395\u03BD\u03B7\u03BC\u03B5\u03C1\u03CE\u03C3\u03C4\u03B5 \u03C4\u03BF \u03C0\u03C1\u03CC\u03B3\u03C1\u03B1\u03BC\u03BC\u03B1 \u03C0\u03B5\u03C1\u03B9\u03AE\u03B3\u03B7\u03C3\u03AE\u03C2 \u03C3\u03B1\u03C2 \u03B3\u03B9\u03B1 \u03C0\u03B5\u03C1\u03B9\u03C3\u03C3\u03CC\u03C4\u03B5\u03C1\u03B7 \u03B1\u03C3\u03C6\u03AC\u03BB\u03B5\u03B9\u03B1, \u03C4\u03B1\u03C7\u03CD\u03C4\u03B7\u03C4\u03B1 \u03BA\u03B1\u03B9 \u03C4\u03B7\u03BD \u03BA\u03B1\u03BB\u03CD\u03C4\u03B5\u03C1\u03B7 \u03B5\u03BC\u03C0\u03B5\u03B9\u03C1\u03AF\u03B1 \u03C3\\' \u03B1\u03C5\u03C4\u03CC\u03BD \u03C4\u03BF\u03BD \u03B9\u03C3\u03C4\u03CC\u03C4\u03BF\u03C0\u03BF.','bupdate': '\u0395\u03BD\u03B7\u03BC\u03B5\u03C1\u03CE\u03C3\u03C4\u03B5 \u03C4\u03BF \u03C0\u03C1\u03CC\u03B3\u03C1\u03B1\u03BC\u03BC\u03B1 \u03C0\u03B5\u03C1\u03B9\u03AE\u03B3\u03B7\u03C3\u03B7\u03C2','bignore': '\u0391\u03B3\u03BD\u03BF\u03AE\u03C3\u03C4\u03B5', 'remind': '\u0398\u03B1 \u03C3\u03B1\u03C2 \u03C4\u03BF \u03C5\u03C0\u03B5\u03BD\u03B8\u03C5\u03BC\u03AF\u03C3\u03BF\u03C5\u03BC\u03B5 \u03C3\u03B5 {days} \u03B7\u03BC\u03AD\u03C1\u03B5\u03C2.', 'bnever': '\u039D\u03B1 \u03BC\u03B7\u03BD \u03B5\u03BC\u03C6\u03B1\u03BD\u03B9\u03C3\u03C4\u03B5\u03AF \u03BE\u03B1\u03BD\u03AC'}\r\nt.es= {'msg': 'Su navegador web ({brow_name}) est\u00E1 desactualizado.','msgmore': 'Actualice su navegador para obtener m\u00E1s seguridad, velocidad y para disfrutar de la mejor experiencia en este sitio.','bupdate': 'Actualizar navegador','bignore': 'Ignorar', 'remind': 'Se le recordar\u00E1 en {days} d\u00EDas.', 'bnever': 'No mostrar de nuevo'}\r\nt.et= {'msg': 'Teie veebilehitseja ({brow_name}) on vananenud.','msgmore': 'Veebilehitseja uuendamisega kaasneb nii parem turvalisus, kiirus kui ka kasutusmugavus.','bupdate': 'Uuenda veebilehitsejat','bignore': 'Eira', 'remind': 'Uus meeldetuletus {days} p\u00E4eva p\u00E4rast.', 'bnever': '\u00C4ra kunagi enam n\u00E4ita'}\r\nt.fa= {'msg': '\u0645\u0631\u0648\u0631\u06AF\u0631 \u0634\u0645\u0627 ({brow_name}) \u0642\u062F\u06CC\u0645\u06CC \u0627\u0633\u062A.','msgmore': '\u0628\u0631\u0627\u06CC \u0627\u06CC\u0645\u0646\u06CC\u060C \u0633\u0631\u0639\u062A \u0648 \u062A\u062C\u0631\u0628\u0647 \u0628\u0647\u062A\u0631 \u0645\u0631\u0648\u0631\u06AF\u0631 \u062E\u0648\u062F \u0631\u0627 \u0628\u0647\u200C\u0631\u0648\u0632 \u06A9\u0646\u06CC\u062F.','bupdate': '\u0628\u0647\u200C\u0631\u0648\u0632\u0631\u0633\u0627\u0646\u06CC \u0645\u0631\u0648\u0631\u06AF\u0631','bignore': '\u0646\u0627\u062F\u06CC\u062F\u0647 \u06AF\u0631\u0641\u062A\u0646', 'remind': '\u0628\u0647 \u0634\u0645\u0627 \u062A\u0627 {days} \u0631\u0648\u0632 \u062F\u06CC\u06AF\u0631 \u062F\u0648\u0628\u0627\u0631\u0647 \u06CC\u0627\u062F\u200C\u0622\u0648\u0631\u06CC \u062E\u0648\u0627\u0647\u062F \u0634\u062F.', 'bnever': '\u0647\u0631\u06AF\u0632 \u0646\u0645\u0627\u06CC\u0634 \u0646\u062F\u0647'}\r\nt.fi= {'msg': 'Selaimesi ({brow_name}) on vanhentunut.','msgmore': 'P\u00E4ivit\u00E4 selaimesi saadaksesi tietoturvap\u00E4ivityksi\u00E4, nopeutta sek\u00E4 parhaan k\u00E4ytt\u00F6kokemuksen sivustolla.','bupdate': 'P\u00E4ivit\u00E4 selain','bignore': 'Ohita', 'remind': 'Saat uuden muistutuksen {days} p\u00E4iv\u00E4n p\u00E4\u00E4st\u00E4.', 'bnever': '\u00C4l\u00E4 n\u00E4yt\u00E4 uudestaan'}\r\nt.fr= {'msg': 'Votre navigateur Web ({brow_name}) n\\'est pas \u00E0 jour.','msgmore': 'Mettez \u00E0 jour votre navigateur pour plus de s\u00E9curit\u00E9 et de rapidit\u00E9 et une meilleure exp\u00E9rience sur ce site.','bupdate': 'Mettre \u00E0 jour le navigateur','bignore': 'Ignorer', 'remind': 'Vous serez rappel\u00E9 dans {days} jours.', 'bnever': 'Ne plus afficher'}\r\nt.gl= {'msg': 'T\u00E1 an l\u00EDonl\u00E9itheoir agat ({brow_name}) as d\u00E1ta.','msgmore': 'Actualiza o teu navegador para obter m\u00E1is seguridade, rapidez e mellor experiencia neste sitio.','bupdate': 'Actualizar navegador web','bignore': 'Ignorar', 'remind': 'Lembraralle en {days} d\u00EDas.', 'bnever': 'Non volver mostrar m\u00E1is'}\r\nt.he= {'msg': '\u05D3\u05E4\u05D3\u05E4\u05DF ({brow_name}) \u05E9\u05DC\u05DA \u05D0\u05D9\u05E0\u05D5 \u05DE\u05E2\u05D5\u05D3\u05DB\u05DF.','msgmore': '\u05E2\u05D3\u05DB\u05DF/\u05D9 \u05D0\u05EA \u05D4\u05D3\u05E4\u05D3\u05E4\u05DF \u05E9\u05DC\u05DA \u05DC\u05E9\u05D9\u05E4\u05D5\u05E8 \u05D4\u05D0\u05D1\u05D8\u05D7\u05D4 \u05D5\u05D4\u05DE\u05D4\u05D9\u05E8\u05D5\u05EA \u05D5\u05DB\u05D3\u05D9 \u05DC\u05D9\u05D4\u05E0\u05D5\u05EA \u05DE\u05D4\u05D7\u05D5\u05D5\u05D9\u05D4 \u05D4\u05D8\u05D5\u05D1\u05D4 \u05D1\u05D9\u05D5\u05EA\u05E8 \u05D1\u05D0\u05EA\u05E8 \u05D6\u05D4.','bupdate': '\u05E2\u05D3\u05DB\u05DF \u05D3\u05E4\u05D3\u05E4\u05DF','bignore': '\u05D4\u05EA\u05E2\u05DC\u05DD', 'remind': '\u05EA\u05E7\u05D1\u05DC/\u05D9 \u05EA\u05D6\u05DB\u05D5\u05E8\u05EA \u05D1\u05E2\u05D5\u05D3  {days} \u05D9\u05DE\u05D9\u05DD.', 'bnever': '\u05D0\u05DC \u05EA\u05E6\u05D9\u05D2 \u05E9\u05D5\u05D1'}\r\nt.hi= {'msg': '\u0906\u092A\u0915\u093E \u0935\u0947\u092C \u092C\u094D\u0930\u093E\u0909\u091C\u093C\u0930 ({brow_name}) \u092A\u0941\u0930\u093E\u0928\u093E \u0939\u0948\u0964','msgmore': '\u0907\u0938 \u0938\u093E\u0907\u091F \u092A\u0930 \u0905\u0927\u093F\u0915 \u0938\u0941\u0930\u0915\u094D\u0937\u093E, \u0917\u0924\u093F \u0914\u0930 \u0938\u0930\u094D\u0935\u094B\u0924\u094D\u0924\u092E \u0905\u0928\u0941\u092D\u0935 \u0915\u0930\u0928\u0947 \u0915\u0947 \u0932\u093F\u090F \u0905\u092A\u0928\u0947 \u092C\u094D\u0930\u093E\u0909\u095B\u0930 \u0915\u094B \u0905\u092A\u0921\u0947\u091F \u0915\u0930\u0947\u0902 \u0964','bupdate': '\u092C\u094D\u0930\u093E\u0909\u091C\u093C\u0930 \u0905\u092A\u0921\u0947\u091F \u0915\u0930\u0947\u0902','bignore': '\u0928\u091C\u0930\u0905\u0902\u0926\u093E\u091C \u0915\u0930\u0947\u0902', 'remind': '\u0906\u092A\u0915\u094B {days} \u0926\u093F\u0928\u094B\u0902 \u092E\u0947\u0902 \u092F\u093E\u0926 \u0926\u093F\u0932\u093E\u092F\u093E \u091C\u093E\u090F\u0917\u093E\u0964', 'bnever': '\u092B\u093F\u0930 \u0915\u092D\u0940 \u092E\u0924 \u0926\u093F\u0916\u093E\u0928\u093E'}\r\nt.hu= {'msg': 'Az \u00D6n webb\u00F6ng\u00E9sz\u0151je ({brow_name}) elavult.','msgmore': 'Friss\u00EDtse b\u00F6ng\u00E9sz\u0151j\u00E9t a nagyobb biztons\u00E1g, sebess\u00E9g \u00E9s \u00E9lm\u00E9ny \u00E9rdek\u00E9ben!','bupdate': 'B\u00F6ng\u00E9sz\u0151 friss\u00EDt\u00E9se','bignore': 'Mell\u0151z\u00E9s', 'remind': '\u00DAjra eml\u00E9keztet\u00FCnk {days} napon bel\u00FCl.', 'bnever': 'Ne mutassa t\u00F6bbet'}\r\nt.id= {'msg': 'Peramban web ({brow_name}) Anda sudah usang.','msgmore': 'Perbarui peramban Anda untuk pengalaman terbaik, lebih aman, dan cepat di situs ini.','bupdate': 'Perbarui peramban','bignore': 'Abaikan', 'remind': 'Anda akan diingatkan kembali dalam {days} hari.', 'bnever': 'Jangan pernah tampilkan lagi'}\r\nt.it= {'msg': 'Il tuo browser ({brow_name}) non \u00E8 aggiornato.','msgmore': 'Aggiorna il browser per una maggiore sicurezza, velocit\u00E0 e la migliore esperienza su questo sito.','bupdate': 'Aggiorna browser','bignore': 'Ignora', 'remind': 'Riceverai un promemoria tra {days} giorni.', 'bnever': 'Non mostrare di nuovo'}\r\nt.ja= {'msg': '\u304A\u4F7F\u3044\u306E\u30D6\u30E9\u30A6\u30B6\uFF08{brow_name}\uFF09\u306F\u6700\u65B0\u7248\u3067\u306F\u3042\u308A\u307E\u305B\u3093\u3002','msgmore': '\u30BB\u30AD\u30E5\u30EA\u30C6\u30A3\u3001\u30B9\u30D4\u30FC\u30C9\u3001\u305D\u3057\u3066\u3053\u306E\u30B5\u30A4\u30C8\u3067\u306E\u6700\u826F\u306E\u4F53\u9A13\u306E\u305F\u3081\u306B\u304A\u4F7F\u3044\u306E\u30D6\u30E9\u30A6\u30B6\u3092\u66F4\u65B0\u3057\u3066\u304F\u3060\u3055\u3044\u3002','bupdate': '\u30D6\u30E9\u30A6\u30B6\u3092\u66F4\u65B0\u3059\u308B','bignore': '\u7121\u8996\u3059\u308B', 'remind': '{days} \u65E5\u5F8C\u306B\u3082\u3046\u4E00\u5EA6\u304A\u77E5\u3089\u305B\u3057\u307E\u3059\u3002', 'bnever': '\u6B21\u56DE\u304B\u3089\u8868\u793A\u3057\u306A\u3044'}\r\nt.ko= {'msg': '\uADC0\uD558\uC758 \uC6F9 \uBE0C\uB77C\uC6B0\uC800({brow_name})\uB294 \uC624\uB798\uB418\uC5C8\uC2B5\uB2C8\uB2E4.','msgmore': '\uC774 \uC0AC\uC774\uD2B8\uC5D0\uC11C \uBCF4\uC548, \uC18D\uB3C4\uC640 \uCD5C\uC0C1\uC758 \uACBD\uD5D8\uC744 \uC5BB\uC73C\uB824\uBA74 \uBE0C\uB77C\uC6B0\uC800\uB97C \uC5C5\uB370\uC774\uD2B8\uD558\uC2ED\uC2DC\uC624.','bupdate': '\uBE0C\uB77C\uC6B0\uC800 \uC5C5\uB370\uC774\uD2B8\uD558\uAE30','bignore': '\uBB34\uC2DC\uD558\uAE30', 'remind': '{days}\uC77C \uD6C4\uC5D0 \uC54C\uB824 \uB4DC\uB9BD\uB2C8\uB2E4.', 'bnever': '\uB2E4\uC2DC \uD45C\uC2DC\uD558\uC9C0 \uC54A\uAE30'}\r\nt.lt= {'msg': 'J\u016Bs\u0173 nar\u0161ykl\u0117 ({brow_name}) yra pasenusi.','msgmore': 'Atsinaujinkite savo nar\u0161ykl\u0119 nor\u0117dami gauti daugiau saugumo, grei\u010Dio ir pa\u010Di\u0173 geriausi\u0173 patir\u010Di\u0173 \u0161ioje svetain\u0117je.','bupdate': 'Atnaujinti nar\u0161ykl\u0119','bignore': 'Nepaisyti', 'remind': 'Jums bus priminta po {days} dien\u0173.', 'bnever': 'Daugiau niekada nerodyti'}\r\nt.lv= {'msg': 'J\u016Bsu p\u0101rl\u016Bkprogramma ({brow_name}) ir novecojusi.','msgmore': 'Atjaunojiet savu p\u0101rl\u016Bkprogrammu liel\u0101kai dro\u0161\u012Bbai, \u0101trumam un lab\u0101kai pieredzei ar \u0161o vietni.','bupdate': 'Atjaunin\u0101t p\u0101rl\u016Bkprogrammu','bignore': 'Ignor\u0113t', 'remind': 'Jums tiks par\u0101d\u012Bts atg\u0101din\u0101jums p\u0113c {days} dien\u0101m.', 'bnever': 'Vairs ner\u0101d\u012Bt'}\r\nt.ms= {'msg': 'Pelayar web anda ({brow_name}) sudah lapuk.','msgmore': 'Kemas kini pelayar anda untuk lebih keselamatan, kelajuan dan pengalaman terbaik di laman web ini.','bupdate': 'Kemas kini pelayar','bignore': 'Abaikan', 'remind': 'Anda akan diingatkan dalam {days} hari.', 'bnever': 'Jangan tunjukkan lagi'}\r\nt.nl= {'msg': 'Uw webbrowser ({brow_name}) is verouderd.','msgmore': 'Update uw browser voor meer veiligheid, snelheid en om deze site optimaal te kunnen gebruiken.','bupdate': 'Browser updaten','bignore': 'Negeren', 'remind': 'We zullen u er in {days} dagen aan herinneren.', 'bnever': 'Nooit meer tonen'}\r\nt.no=t.nn=t.nb= {'msg': 'Nettleseren din ({brow_name}) er utdatert.','msgmore': 'Oppdater nettleseren din for \u00F8kt sikkerhet, hastighet og den beste opplevelsen p\u00E5 dette nettstedet.','bupdate': 'Oppdater nettleser','bignore': 'Ignorer', 'remind': 'Du vil f\u00E5 en p\u00E5minnelse om {days} dager.', 'bnever': 'Aldri vis igjen'}\r\nt.pl= {'msg': 'Twoja przegl\u0105darka ({brow_name}) jest nieaktualna.','msgmore': 'Zaktualizuj przegl\u0105dark\u0119, by korzysta\u0107 z tej strony bezpieczniej, szybciej i po prostu sprawniej.','bupdate': 'Aktualizuj przegl\u0105dark\u0119','bignore': 'Ignoruj', 'remind': 'Przypomnimy o tym za {days} dni.', 'bnever': 'Nie pokazuj wi\u0119cej'}\r\nt.pt= {'msg': 'Seu navegador da web ({brow_name}) est\u00E1 desatualizado.','msgmore': 'Atualize seu navegador para ter mais seguran\u00E7a e velocidade, al\u00E9m da melhor experi\u00EAncia neste site.','bupdate': 'Atualizar navegador','bignore': 'Ignorar', 'remind': 'Voc\u00EA ser\u00E1 relembrado em {days} dias.', 'bnever': 'N\u00E3o mostrar novamente'}\r\nt.ro= {'msg': 'Browserul t\u0103u ({brow_name}) nu este actualizat.','msgmore': 'Actualizeaz\u0103 browserul pentru o mai mare siguran\u021B\u0103, vitez\u0103 \u0219i cea mai bun\u0103 experien\u021B\u0103 pe acest site.','bupdate': 'Actualizeaz\u0103 browser','bignore': 'Ignor\u0103', 'remind': '\u021Ai se va reaminti peste {days} zile.', 'bnever': 'Nu mai ar\u0103ta'}\r\nt.ru= {'msg': '\u0412\u0430\u0448 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 ({brow_name}) \u0443\u0441\u0442\u0430\u0440\u0435\u043B.','msgmore': '\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u0435 \u0432\u0430\u0448 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0434\u043B\u044F \u043F\u043E\u0432\u044B\u0448\u0435\u043D\u0438\u044F \u0443\u0440\u043E\u0432\u043D\u044F \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u0438, \u0441\u043A\u043E\u0440\u043E\u0441\u0442\u0438 \u0438 \u043A\u043E\u043C\u0444\u043E\u0440\u0442\u0430 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u043D\u0438\u044F \u044D\u0442\u043E\u0433\u043E \u0441\u0430\u0439\u0442\u0430.','bupdate': '\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0431\u0440\u0430\u0443\u0437\u0435\u0440','bignore': '\u0418\u0433\u043D\u043E\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C', 'remind': '\u0412\u044B \u043F\u043E\u043B\u0443\u0447\u0438\u0442\u0435 \u043D\u0430\u043F\u043E\u043C\u0438\u043D\u0430\u043D\u0438\u0435 \u0447\u0435\u0440\u0435\u0437 {days} \u0434\u043D\u0435\u0439.', 'bnever': '\u0411\u043E\u043B\u044C\u0448\u0435 \u043D\u0435 \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C '}\r\nt.sk= {'msg': 'V\u00E1\u0161 internetov\u00FD prehliada\u010D ({brow_name}) je zastaran\u00FD.','msgmore': 'Pre v\u00E4\u010D\u0161iu bezpe\u010Dnos\u0165, r\u00FDchlos\u0165 a lep\u0161iu sk\u00FAsenos\u0165 s touto str\u00E1nkou si aktualizujte svoj prehliada\u010D.','bupdate': 'Aktualizova\u0165 prehliada\u010D','bignore': 'Ignorova\u0165', 'remind': 'Bude v\u00E1m to pripomenut\u00E9 o {days} dn\u00ED.', 'bnever': 'U\u017E nikdy viac neukazova\u0165'}\r\nt.sl= {'msg': 'Va\u0161 spletni brskalnik ({brow_name}) je zastarel.','msgmore': 'Posodobite svoj brskalnik za dodatno varnost, hitrost in najbolj\u0161o izku\u0161njo na tem spletnem mestu.','bupdate': 'Posodobi brskalnik','bignore': 'Prezri', 'remind': 'Opomnik boste prejeli \u010Dez toliko dni: {days}.', 'bnever': 'Ne prika\u017Ei ve\u010D'}\r\nt.sq= {'msg': 'Shfletuesi juaj ({brow_name}) \u00EBsht\u00EB i vjetruar.','msgmore': 'P\u00EBrdit\u00EBsoni shfletuesin tuaj p\u00EBr m\u00EB tep\u00EBr siguri, shpejt\u00EBsi dhe p\u00EBr m\u00EB t\u00EB mirin e funksionimeve n\u00EB k\u00EBt\u00EB sajt.','bupdate': 'P\u00EBrdit\u00EBso shfletuesin','bignore': 'Shp\u00EBrfille', 'remind': 'Do t\u2019ju rikujtohet pas {days} dit\u00EBsh.', 'bnever': 'Mos e shfaq kurr\u00EB m\u00EB'}\r\nt.sr= {'msg': 'Va\u0161 pretra\u017Eiva\u010D ({brow_name}) je zastareo.','msgmore': 'Ima poznate sigurnosne probleme i najverovatnije ne\u0107e prikazati sve funkcionalnisti ovog i drugih sajtova.','bupdate': 'Nadogradi pretra\u017Eiva\u010D','bignore': 'Ignorisi', 'remind': 'Zaboravic\u0301ete za {days} dana.', 'bnever': 'Ne prikazuj opet'}\r\nt.sv= {'msg': 'Din webbl\u00E4sare ({brow_name}) \u00E4r f\u00F6r\u00E5ldrad. ','msgmore': 'Uppdatera din webbl\u00E4sare f\u00F6r mer s\u00E4kerhet, hastighet och den b\u00E4sta upplevelsen p\u00E5 den h\u00E4r sajten. ','bupdate': 'Uppdatera webbl\u00E4saren','bignore': 'Ignorera', 'remind': 'Du f\u00E5r en p\u00E5minnelse om {days} dagar.', 'bnever': 'Visa aldrig igen'}\r\nt.th= {'msg': '\u0E40\u0E27\u0E47\u0E1A\u0E40\u0E1A\u0E23\u0E32\u0E27\u0E4C\u0E40\u0E0B\u0E2D\u0E23\u0E4C\u0E02\u0E2D\u0E07\u0E04\u0E38\u0E13 ({brow_name}) \u0E25\u0E49\u0E32\u0E2A\u0E21\u0E31\u0E22\u0E41\u0E25\u0E49\u0E27','msgmore': '\u0E2D\u0E31\u0E1B\u0E40\u0E14\u0E17\u0E40\u0E1A\u0E23\u0E32\u0E27\u0E4C\u0E40\u0E0B\u0E2D\u0E23\u0E4C\u0E40\u0E1E\u0E37\u0E48\u0E2D\u0E40\u0E1E\u0E34\u0E48\u0E21\u0E04\u0E27\u0E32\u0E21\u0E1B\u0E25\u0E2D\u0E14\u0E20\u0E31\u0E22, \u0E04\u0E27\u0E32\u0E21\u0E40\u0E23\u0E47\u0E27 \u0E41\u0E25\u0E30\u0E1B\u0E23\u0E30\u0E2A\u0E1A\u0E01\u0E32\u0E23\u0E13\u0E4C\u0E17\u0E35\u0E48\u0E14\u0E35\u0E17\u0E35\u0E48\u0E2A\u0E38\u0E14\u0E1A\u0E19\u0E40\u0E27\u0E47\u0E1A\u0E44\u0E0B\u0E15\u0E4C\u0E19\u0E35\u0E49','bupdate': '\u0E2D\u0E31\u0E1B\u0E40\u0E14\u0E17\u0E40\u0E1A\u0E23\u0E32\u0E27\u0E4C\u0E40\u0E0B\u0E2D\u0E23\u0E4C','bignore': '\u0E02\u0E49\u0E32\u0E21', 'remind': '\u0E04\u0E38\u0E13\u0E08\u0E30\u0E44\u0E14\u0E49\u0E23\u0E31\u0E1A\u0E01\u0E32\u0E23\u0E41\u0E08\u0E49\u0E07\u0E40\u0E15\u0E37\u0E2D\u0E19\u0E43\u0E19 {days} \u0E27\u0E31\u0E19', 'bnever': '\u0E44\u0E21\u0E48\u0E15\u0E49\u0E2D\u0E07\u0E41\u0E2A\u0E14\u0E07\u0E2D\u0E35\u0E01'}\r\nt.tr= {'msg': 'Web taray\u0131c\u0131n\u0131z ({brow_name}) g\u00FCncel de\u011Fil.','msgmore': 'Daha fazla g\u00FCvenlik ve h\u0131z ile bu sitede en iyi deneyim i\u00E7in taray\u0131c\u0131n\u0131z\u0131 g\u00FCncelleyin.','bupdate': 'Taray\u0131c\u0131y\u0131 g\u00FCncelle','bignore': 'Yok say', 'remind': '{days} g\u00FCn sonra bir hat\u0131rlatma alacaks\u0131n\u0131z.', 'bnever': 'Bir daha g\u00F6sterme'}\r\nt.uk= {'msg': '\u0412\u0430\u0448 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 ({brow_name}) \u0437\u0430\u0441\u0442\u0430\u0440\u0456\u043B\u0438\u0439.','msgmore': '\u041E\u043D\u043E\u0432\u0456\u0442\u044C \u0441\u0432\u0456\u0439 \u0431\u0440\u0430\u0443\u0437\u0435\u0440 \u0434\u043B\u044F \u0431\u0456\u043B\u044C\u0448\u043E\u0457 \u0431\u0435\u0437\u043F\u0435\u043A\u0438, \u0448\u0432\u0438\u0434\u043A\u043E\u0441\u0442\u0456 \u0442\u0430 \u043F\u043E\u0432\u043D\u043E\u0446\u0456\u043D\u043D\u043E\u0457 \u0440\u043E\u0431\u043E\u0442\u0438 \u0446\u044C\u043E\u0433\u043E \u0441\u0430\u0439\u0442\u0443.','bupdate': '\u041E\u043D\u043E\u0432\u0438\u0442\u0438 \u0431\u0440\u0430\u0443\u0437\u0435\u0440','bignore': '\u041F\u0440\u043E\u043F\u0443\u0441\u0442\u0438\u0442\u0438', 'remind': '\u0412\u0438 \u043E\u0442\u0440\u0438\u043C\u0430\u0454\u0442\u0435 \u043D\u0430\u0433\u0430\u0434\u0443\u0432\u0430\u043D\u043D\u044F \u0447\u0435\u0440\u0435\u0437 {days} \u0434\u043D\u0456\u0432.', 'bnever': '\u0411\u0456\u043B\u044C\u0448\u0435 \u043D\u0435 \u043F\u043E\u043A\u0430\u0437\u0443\u0432\u0430\u0442\u0438'}\r\nt.uz= {'msg': 'Sizning ({brow_name}) veb-brauzeringiz eskirgan','msgmore': 'Xavfsizlik, tezkorlik va ushbu sayt imkoniyatlaridan to`liq foydalanish uchun brauzeringizni yangilang.','bupdate': 'Brauzeringizni yangilang','bignore': 'E\u2019tibor bermaslik', 'remind': 'Sizga {days} kundan so`ng eslatammiz.', 'bnever': 'Hech qachon qayta ko\\'rsatmang'}\r\nt.vi= {'msg': 'Tr\u00ECnh duy\u1EC7t web c\u1EE7a b\u1EA1n ({brow_name}) \u0111\u00E3 l\u1ED7i th\u1EDDi.','msgmore': 'C\u1EADp nh\u1EADt tr\u00ECnh duy\u1EC7t c\u1EE7a b\u1EA1n \u0111\u1EC3 c\u00F3 th\u00EAm b\u1EA3o m\u1EADt, t\u1ED1c \u0111\u1ED9 v\u00E0 tr\u1EA3i nghi\u1EC7m t\u1ED1t nh\u1EA5t tr\u00EAn trang web n\u00E0y.','bupdate': 'C\u1EADp nh\u1EADt tr\u00ECnh duy\u1EC7t','bignore': 'B\u1ECF qua', 'remind': 'B\u1EA1n s\u1EBD \u0111\u01B0\u1EE3c nh\u1EAFc nh\u1EDF sau {days} ng\u00E0y.', 'bnever': 'Kh\u00F4ng bao gi\u1EDD hi\u1EC3n th\u1ECB l\u1EA1i'}\r\nt.zh= {'msg': '\u60A8\u7684\u7F51\u9875\u6D4F\u89C8\u5668\uFF08{brow_name}\uFF09\u5DF2\u8FC7\u671F\u3002','msgmore': '\u66F4\u65B0\u60A8\u7684\u6D4F\u89C8\u5668\uFF0C\u4EE5\u4FBF\u5728\u8BE5\u7F51\u7AD9\u4E0A\u83B7\u5F97\u66F4\u5B89\u5168\u3001\u66F4\u5FEB\u901F\u548C\u6700\u597D\u7684\u4F53\u9A8C\u3002','bupdate': '\u66F4\u65B0\u6D4F\u89C8\u5668','bignore': '\u5FFD\u7565', 'remind': '\u4F1A\u5728{days}\u5929\u540E\u63D0\u9192\u60A8\u3002', 'bnever': '\u4E0D\u518D\u663E\u793A'}\r\nt[\"zh-tw\"]= t[\"zh-hans-cn\"] ={'msg': '\u60A8\u7684\u7DB2\u8DEF\u700F\u89BD\u5668\uFF08{brow_name}\uFF09\u5DF2\u904E\u820A\u3002','msgmore': '\u66F4\u65B0\u60A8\u7684\u700F\u89BD\u5668\u4EE5\u7372\u5F97\u66F4\u4F73\u7684\u5B89\u5168\u6027\u3001\u901F\u5EA6\u4EE5\u53CA\u5728\u6B64\u7DB2\u7AD9\u7684\u6700\u4F73\u9AD4\u9A57\u3002','bupdate': '\u66F4\u65B0\u700F\u89BD\u5668','bignore': '\u5FFD\u7565', 'remind': '\u60A8\u5C07\u5728 {days} \u5929\u5F8C\u6536\u5230\u63D0\u9192\u3002', 'bnever': '\u4E0D\u8981\u518D\u986F\u793A'}\r\n\r\nvar custom_text = op[\"text_for_\"  + bb.n + \"_in_\" + op.ll] || op[\"text_for_\" + bb.n] || op[\"text_\" + op.llfull] || op[\"text_in_\" + op.ll] || op[\"text_\" + op.ll]  ||   op.text\r\n\r\n\r\n\r\nt = ta = t[op.llfull] || t[op.ll] || t.en;\r\nif (custom_text) {\r\n    if (typeof custom_text === 'string')\r\n        t=ta=custom_text;\r\n    else {\r\n        for (var i in custom_text) {\r\n            ta[i] = custom_text[i]\r\n        }\r\n    }\r\n}\r\nif (op.browser.is_insecure && ta.insecure) {\r\n    ta.msg=ta.insecure\r\n}\r\nif (ta.msg)\r\n    t = '<b class=\"buorg-mainmsg\">' + t.msg + '</b> <span class=\"buorg-moremsg\">' + t.msgmore + '</span> <span class=\"buorg-buttons\"><a{up_but}>' + t.bupdate + '</a> <a{ignore_but}>' + t.bignore + '</a></span>'\r\n\r\nvar tar = \"\";\r\nif (op.newwindow)\r\n    tar = ' target=\"_blank\" rel=\"noopener\"';\r\n\r\nvar div = op.div = document.createElement(\"div\");\r\ndiv.id = div.className= \"buorg\";\r\n\r\nvar style = '<style>.buorg-icon {width: 22px; height: 16px; vertical-align: middle; position: relative; top: -0.05em; display: inline-block; background: no-repeat 0px center url(https://browser-update.org/static/img/small/' + bb.n + '.png);}</style>';\r\nvar style2 = '<style>.buorg {position:absolute;position:fixed;z-index:111111; width:100%; top:0px; left:0px; border-bottom:1px solid #A29330; text-align:center;  color:#000; background-color: #fff8ea; font: 18px Calibri,Helvetica,sans-serif; box-shadow: 0 0 5px rgba(0,0,0,0.2);animation: buorgfly 1s ease-out 0s;}'\r\n    + '.buorg-pad { padding: 9px;  line-height: 1.7em; }'\r\n    + '.buorg-buttons { display: block; text-align: center; }'\r\n    + '#buorgig,#buorgul,#buorgpermanent { color: #fff; text-decoration: none; cursor:pointer; box-shadow: 0 0 2px rgba(0,0,0,0.4); padding: 1px 10px; border-radius: 4px; font-weight: normal; background: #5ab400;    white-space: nowrap;    margin: 0 2px; display: inline-block;}'\r\n    + '#buorgig { background-color: #edbc68;}'\r\n    + '@media only screen and (max-width: 700px){.buorg div { padding:5px 12px 5px 9px; line-height: 1.3em;}}'\r\n    + '@keyframes buorgfly {from {opacity:0;transform:translateY(-50px)} to {opacity:1;transform:translateY(0px)}}'\r\n    + '.buorg-fadeout {transition: visibility 0s 8.5s, opacity 8s ease-out .5s;}</style>';\r\nif (ta.msg && (op.ll==\"ar\"||op.ll==\"he\"||op.ll==\"fa\"))\r\n    style2+='<style>.buorg {direction:RTL; unicode-bidi:embed;}</style>';\r\nif (!ta.msg && t.indexOf && t.indexOf(\"%s\") !== -1) {//legacy style\r\n    t = busprintf(t, bb.t, ' id=\"buorgul\" href=\"' + op.url + '\"' + tar);\r\n\r\n    style += '<style>.buorg {position:absolute;position:fixed;z-index:111111; width:100%; top:0px; left:0px; border-bottom:1px solid #A29330; text-align:left; cursor:pointer; color:#000; font: 13px Arial,sans-serif;color:#000;}'\r\n        + '.buorg div { padding:5px 36px 5px 40px; }'\r\n        + '.buorg>div>a,.buorg>div>a:visited{color:#E25600; text-decoration: underline;}'\r\n        + '#buorgclose{position:absolute;right:6px;top:0px;height:20px;width:12px;font:18px bold;padding:0;}'\r\n        + '#buorga{display:block;}'\r\n        + '@media only screen and (max-width: 700px){.buorg div { padding:5px 15px 5px 9px; }}</style>';\r\n    div.innerHTML = '<div>' + t + '<div id=\"buorgclose\"><a id=\"buorga\">&times;</a></div></div>' + style;\r\n    op.addmargin = true;\r\n}\r\nelse {\r\n    if (op.style === \"bottom\") {\r\n        style2 += '<style>.buorg {bottom:0; top:auto; border-top:1px solid #A29330; } @keyframes buorgfly {from {opacity:0;transform:translateY(50px)} to {opacity:1;transform:translateY(0px)}}</style>';\r\n    }\r\n    else if (op.style === \"corner\") {\r\n        style2 += '<style> .buorg { text-align: left; width:300px; top:50px; right:50px; left:auto; border:1px solid #A29330; } .buorg-buttons, .buorg-mainmsg, .buorg-moremsg { display: block; } .buorg-buttons a {margin: 4px 2px;} .buorg-icon {display: none;}</style>';\r\n    }\r\n    else {\r\n        op.addmargin = true;\r\n    }\r\n    t = t.replace(\"{brow_name}\", bb.t).replace(\"{up_but}\", ' id=\"buorgul\" href=\"' + op.url + '\"' + tar).replace(\"{ignore_but}\", ' id=\"buorgig\" role=\"button\" tabindex=\"0\"');\r\n    div.innerHTML = '<div class=\"buorg-pad\" role=\"status\" aria-live=\"polite\"><span class=\"buorg-icon\"> </span>' + t + '</div>' + style + style2;\r\n}\r\n\r\nop.text = t;\r\nif (op.container) {\r\n    op.container.appendChild(div);\r\n    op.addmargin = false;\r\n}\r\nelse\r\n    document.body.insertBefore(div, document.body.firstChild);\r\n\r\nvar updatebutton=document.getElementById(\"buorgul\");\r\nif (updatebutton) {\r\n    updatebutton.onclick = function (e) {\r\n        div.onclick = null;\r\n        op.onclick(op);\r\n        if (op.noclose)\r\n            return\r\n        op.setCookie(op.reminderClosed);\r\n        if (!op.noclose) {\r\n            div.style.display = \"none\";\r\n            if (op.addmargin && op.shift_page_down !== false)\r\n                hm.style.marginTop = op.bodymt;\r\n        }\r\n    };\r\n}\r\nif (!custom_text) {//make whole bar clickable except if custom text is set\r\n    div.style.cursor=\"pointer\";\r\n    div.onclick = function () {\r\n        if (op.newwindow)\r\n            window.open(op.url, \"_blank\");\r\n        else\r\n            window.location.href = op.url;\r\n        op.setCookie(op.reminderClosed);\r\n        op.onclick(op);\r\n    };\r\n}\r\n\r\nif (op.addmargin && op.shift_page_down !== false) {\r\n    var hm = document.getElementsByTagName(\"html\")[0] || document.body;\r\n    op.bodymt = hm.style.marginTop;\r\n    hm.style.marginTop = (div.clientHeight) + \"px\";\r\n}\r\nvar ignorebutton = document.getElementById(\"buorga\") || document.getElementById(\"buorgig\");\r\nif (ignorebutton) {\r\n    ignorebutton.onclick = function (e) {\r\n        div.onclick = null;\r\n        op.onclose(op);\r\n        if (op.addmargin && op.shift_page_down !== false)\r\n            hm.style.marginTop = op.bodymt;\r\n        op.setCookie(op.reminderClosed);\r\n        if (!op.no_permanent_hide && ta.bnever && ta.remind) {\r\n            op.div.innerHTML = '<div class=\"buorg-pad\"><span class=\"buorg-moremsg\">' + (op.reminderClosed > 24 ? ta.remind.replace(\"{days}\", Math.round(op.reminderClosed/24)):\"\") + '</span> <span class=\"buorg-buttons\"><a id=\"buorgpermanent\" role=\"button\" tabindex=\"0\" href=\"' + op.url_permanent_hide +'\"' + tar + '>' + ta.bnever + '</a></span></div>' + style + style2;\r\n            div.className = \"buorg buorg-fadeout\";\r\n            document.getElementById(\"buorgpermanent\").onclick = function (e) {\r\n                op.setCookie(24 * 365);\r\n                op.div.style.display = \"none\";\r\n            }\r\n            op.div.style.opacity = 0;\r\n            op.div.style.visibility = \"hidden\";\r\n            return false;\r\n        }\r\n        op.div.style.display = \"none\";\r\n        return false;\r\n    }\r\n    if (op.noclose || op.reminderClosed==0) {\r\n        ignorebutton.parentNode.removeChild(ignorebutton)\r\n    }\r\n}\r\n\r\n\r\nop.onshow(op);\r\n\r\nif (op.test && !op.dont_show_debuginfo) {\r\n    var e = document.createElement(\"script\");\r\n    e.src = op.domain + \"/update.test.js\";\r\n    document.body.appendChild(e);\r\n}\r\n\r\n};\r\n\r\n\r\n", "declare let lexicon: Record<string, Record<string, unknown>>;\n\nexport const i18n = {\n    lexicon,\n\n    /**\n     * return a translation from a lexicon string\n     * Supports multi-dimensional keys: e.g. 'nav.items.home' looks up\n     *   1. lexicon['nav']['items.home']  \u2014 flat key, backward compat (priority)\n     *   2. lexicon['nav']['items']['home'] \u2014 nested traversal\n     * @param id - e.g. login.error or nav.items.home\n     * @param subs - substitutes\n     */\n    t(id: string, ...subs: string[]): string {\n        if (typeof id.split === 'undefined') return `%${id}%`;\n        const segments = id.split('.');\n        const category = segments.shift()!;\n\n        if (typeof this.lexicon !== 'undefined' && this.lexicon[category] != null) {\n            const section = this.lexicon[category];\n\n            // Priority 1: flat key match (backward compat \u2014 e.g. 'profile.edit' stored literally)\n            const flatKey = segments.join('.');\n            if (typeof section[flatKey] === 'string') {\n                const val = section[flatKey] as string;\n                return subs?.length ? this.sprintf(val, ...subs) : val;\n            }\n\n            // Priority 2: nested traversal segment by segment\n            let node: unknown = section;\n            for (const seg of segments) {\n                if (typeof node !== 'object' || node === null) {\n                    node = undefined;\n                    break;\n                }\n                node = (node as Record<string, unknown>)[seg];\n            }\n            if (typeof node === 'string') {\n                return subs?.length ? this.sprintf(node, ...subs) : node;\n            }\n        }\n\n        console.warn(`i18n: no translation for %${id}% (${window.lang})`);\n        return `%${id}%`;\n    },\n\n    /**\n     * check if translation exists\n     */\n    has_translation(id: string): boolean {\n        return this.t(id) !== `%${id}%`;\n    },\n\n    /**\n     * sprintf substitute\n     */\n    sprintf(text: string, ...subs: string[]): string {\n        let counter = 0;\n\n        return text.replace(/%s/g, () => subs[counter++]);\n    },\n};\n", "import type { Severity } from './bulma.js';\n\n/**\n * replacement for bulma notification library\n */\nexport class Notification {\n    private static icons: Record<Severity, string> = {\n        danger: 'fa-exclamation-triangle',\n        info: 'fa-info-circle',\n        warning: 'fa-exclamation-circle',\n        success: 'fa-check-circle',\n    };\n\n    public static create(\n        container: Element,\n        message: string,\n        severity: Severity,\n        append: boolean = false,\n        dismissInterval: number = 0,\n    ): void {\n        const id = Notification.getRandomId();\n        const html = Notification.getMarkup(message, severity, id);\n\n        if (append) {\n            container.innerHTML += html;\n        } else {\n            container.innerHTML = html;\n        }\n\n        if (dismissInterval > 0) {\n            setTimeout(() => document.getElementById(`#${id}`).remove(), dismissInterval);\n        }\n    }\n\n    /**\n     * displays a message to the user in a modal.\n     * needs styles from admin.scss (#messages)\n     */\n    public static createModal(message: string, severity: Severity): void {\n        const id = Notification.getRandomId();\n        const html = Notification.getMarkup(message, severity, id, true);\n\n        let container = document.getElementById('messages');\n\n        if (container === null) {\n            const div = document.createElement('div');\n            div.id = 'messages';\n            document.body.appendChild(div);\n            container = div;\n        }\n        container.classList.remove('empty');\n\n        // show as notification\n        container.insertAdjacentHTML('beforeend', html);\n\n        // handle container click\n        container.addEventListener('click', (e: Event) => {\n            // Check if clicked element is a link with data-action=\"back\" - let it bubble up for iframe handling\n            const closestButton: HTMLElement = (e.target as HTMLElement).closest('[data-action]');\n            if (closestButton !== null && closestButton.dataset.action === 'back') {\n                // Don't stop propagation - let the iframe modal handler catch it\n                return;\n            }\n\n            if (e.target !== container && (e.target as HTMLElement).tagName !== 'BUTTON') {\n                e.stopPropagation();\n                return;\n            }\n            while (container.firstChild) {\n                container.firstChild.remove();\n            }\n            container.classList.add('empty');\n        });\n    }\n\n    private static getMarkup(message: string, severity: Severity, id: string, extended: boolean = false): string {\n        if (!extended) {\n            return `\n<div class=\"notification is-${severity}\" id=\"${id}\">\n    <button class=\"delete\" onclick=\"this.parentNode.remove()\"></button>\n    <p>${message}</p>\n</div>`;\n        }\n\n        return `\n<div class=\"notification is-${severity}\" id=\"${id}\">\n    <button class=\"delete\" onclick=\"this.parentNode.remove()\"></button>\n    <div class=\"notification-header\"><span class=\"icon\"><i class=\"fas fa-2x ${Notification.icons[severity]}\"></i></span></div>\n    <div class=\"notification-body\">${message}</div>\n</div>`;\n    }\n\n    private static getRandomId(): string {\n        return `notif${Math.floor(Math.random() * 10).toString()}`;\n    }\n}\n", "import { i18n } from '../i18n.js';\nimport type { Severity } from './bulma.js';\nimport { Notification } from './notification.js';\n\nexport type MessageLike = {\n    severity: Severity;\n    message: string;\n};\n\n/**\n * a message to be displayed to the user\n * this is basically a notification shown inside a modal.\n */\nexport class Message {\n    /**\n     * displays a message to the user\n     *\n     * @deprecated use Notification.createModal()\n     */\n    public static log(severity: Severity, rawMsg: string, msgSubstitution?: string, _error?: Error): void {\n        const msg = i18n.has_translation(rawMsg) ? i18n.t(rawMsg, msgSubstitution) : rawMsg;\n        Notification.createModal(msg, severity);\n    }\n}\n", "export class InvalidInputError extends Error {\n    public errors: any[];\n\n    /**\n     */\n    constructor(errors: any[], ...params: any) {\n        // Pass remaining arguments (including vendor specific ones) to parent constructor\n        super(...params);\n\n        // Custom debugging information\n        this.errors = errors;\n    }\n}\n", "import { Api } from '../api/api.js';\n\nexport type FormLog = {\n    id?: number;\n    created?: string;\n    site_url?: string;\n    http_code?: number;\n    http_answer?: string;\n    user_agent?: string;\n    framework_version?: string;\n};\n\nexport class FormLogger {\n    /**\n     * clones the response and logs it\n     */\n    static async logResponse(response: Response, log = true): Promise<Response> {\n        if (log === false) return response;\n\n        console.log('logging response', response);\n        await FormLogger.uploadLog(\n            FormLogger.buildData({\n                http_code: response.status,\n                http_answer: await response.clone().text(),\n            }),\n        );\n\n        return response;\n    }\n\n    static async logError(reason: any, _log = true): Promise<any> {\n        if (Api.log === false) {\n            if (reason instanceof Error) throw reason;\n            return reason;\n        }\n\n        console.log('logging error', reason);\n        await FormLogger.uploadLog(\n            FormLogger.buildData({\n                http_code: 0,\n                http_answer: reason.toString(),\n            }),\n        );\n        if (reason instanceof Error) throw reason;\n        return reason;\n    }\n\n    private static buildData(partial: FormLog) {\n        return {\n            site_url: document.URL,\n            user_agent: navigator.userAgent,\n            framework_version: window.version ?? null,\n            ...partial,\n        } as FormLog;\n    }\n\n    private static async uploadLog(data: FormLog) {\n        Api.log = false;\n        Api.csrf = false;\n\n        try {\n            await Api.api_put('https://api.moxi.ch/api/form_logger/api.php', data);\n        } catch (error) {\n            console.error(error);\n        }\n\n        Api.csrf = true;\n    }\n}\n", "import type { Api, ApiResponse } from './api';\nimport type { ListView } from './apiclientfactory';\n\nexport type AdminResourceResponse = CompleteEntityData & { results: { id: number; general: any; langs: any } };\n\nexport type SortingData = {\n    sorting: string[];\n    mapping?: Record<string, any> & { sorting_field: string };\n};\nexport type SortingResponse = { saved: Record<number, any> };\nexport type CompleteEntityData = {\n    general: Record<string, unknown>;\n    langs: Record<string, Record<string, unknown>>;\n    misc: { revisionComment?: string | null };\n};\n\nexport class AdminResourceApi<T = void> {\n    constructor(\n        public readonly url: string,\n        public readonly resource: string,\n        public readonly api: typeof Api,\n    ) {}\n\n    async get(lang: string = null, params: URLSearchParams = null): Promise<ApiResponse<ListView<T>[]>> {\n        return this.api.api_get<ListView<T>[]>(\n            `${this.url}/api/admin_resource/${this.resource}?${params?.toString()}`,\n            lang,\n        );\n    }\n\n    async getFiltered(\n        filter: Record<string, unknown>,\n        params?: URLSearchParams | null,\n    ): Promise<ApiResponse<ListView<T>[]>> {\n        return this.api.api_post<ListView<T>[]>(\n            `${this.url}/api/admin_resource/${this.resource}?${params?.toString()}`,\n            filter,\n        );\n    }\n\n    async saveSorting(data: SortingData): Promise<ApiResponse<SortingResponse>> {\n        return this.api.api_put<SortingResponse>(`${this.url}/api/admin_resource/${this.resource}/sorting`, data);\n    }\n\n    async saveCompleteEntity(data: CompleteEntityData): Promise<ApiResponse<AdminResourceResponse>> {\n        return this.api.api_post<AdminResourceResponse>(`${this.url}/api/admin_resource/${this.resource}/save`, data);\n    }\n}\n", "import type { Api, ApiResponse } from './api';\nimport type { JWTToken } from './token';\n\nexport class BulkApi<T> {\n    constructor(\n        public readonly url: string,\n        public readonly resource: string,\n        private readonly api: typeof Api,\n    ) {}\n\n    /**\n     * bulk inserts\n     */\n    async insert(data: Record<string, unknown>): Promise<ApiResponse | Response> {\n        // does not use api.post() because we need the bulk insert endpoint\n        const token = await this.api.request_token().then((t: JWTToken) => t.token);\n\n        return fetch(`${this.url}/api/bulk/${this.resource}`, {\n            body: JSON.stringify(data),\n            method: 'post',\n            headers: new Headers({\n                'Content-Type': 'application/json',\n                Authorization: `Bearer ${token}`,\n            }),\n        });\n    }\n\n    /**\n     * bulk updates\n     * @param data - array of updates\n     */\n    async update(data: Record<string, unknown>): Promise<ApiResponse | Response> {\n        // does not use api.put() because we need the bulk update endpoint\n        const token = await this.api.request_token().then((t: JWTToken) => t.token);\n\n        return fetch(`${this.url}/api/bulk/${this.resource}`, {\n            body: JSON.stringify(data),\n            method: 'put',\n            headers: new Headers({\n                'Content-Type': 'application/json',\n                Authorization: `Bearer ${token}`,\n            }),\n        });\n    }\n\n    /**\n     * bulk deletion\n     */\n    async delete(conditionField: string, conditionId: number): Promise<ApiResponse | Response> {\n        // does not use api.delete() because we need the bulk delete endpoint\n        const token = await this.api.request_token().then((t: JWTToken) => t.token);\n\n        return fetch(`${this.url}/api/bulk/${this.resource}/${conditionField}/${conditionId}`, {\n            method: 'delete',\n            headers: new Headers({\n                'Content-Type': 'application/json',\n                Authorization: `Bearer ${token}`,\n            }),\n        });\n    }\n}\n", "const tokenPrefix = (window.settings?.general?.name ?? '')\n    .toLowerCase()\n    .replace(/[^a-z0-9 -]/g, '')\n    .replace(/\\s+/g, '-');\n\nexport abstract class AbstractToken {\n    public type: string;\n\n    public static valid(_token: any): boolean {\n        throw new Error('valid() not implemented');\n    }\n\n    public static fromJSON(json: any): AbstractToken {\n        if (JWTToken.valid(json)) {\n            return JWTToken.fromJSON(json);\n        }\n        if (CSRFToken.valid(json)) {\n            return CSRFToken.fromJSON(json);\n        }\n        throw new Error('Invalid token');\n    }\n\n    /**\n     * Save token to localStorage\n     */\n    protected save(identifier: string): void {\n        if (!identifier) {\n            throw new Error('Token save requires an identifier');\n        }\n\n        // Validate the token using the specific token class's valid method\n        const tokenClass = this.constructor as typeof AbstractToken;\n        if (!tokenClass.valid(this)) {\n            throw new Error(`Invalid ${this.type}`);\n        }\n\n        window.localStorage.setItem(identifier, JSON.stringify(this));\n    }\n\n    /**\n     * Load token from localStorage\n     */\n    public static load<T extends AbstractToken>(identifier: string): T | null {\n        if (!identifier) {\n            throw new Error('Token load requires an identifier');\n        }\n\n        try {\n            const tokenData = JSON.parse(window.localStorage.getItem(identifier));\n            return AbstractToken.fromJSON(tokenData) as T;\n        } catch (e) {\n            console.error(`Invalid ${identifier} in localStorage`, e);\n            AbstractToken.purge(identifier);\n            return null;\n        }\n    }\n\n    /**\n     * Remove token from localStorage\n     */\n    public static purge(identifier: string): void {\n        window.localStorage.removeItem(identifier);\n    }\n}\n\n// @ts-expect-error - TypeScript limitation with static method override return types\nexport class JWTToken extends AbstractToken {\n    static identifier: string = `${tokenPrefix}_token`;\n\n    constructor(\n        public expires: number,\n        public token: string,\n        public type: string = 'JWTToken',\n    ) {\n        super();\n        this.save(JWTToken.identifier);\n    }\n\n    public static valid(token: any): boolean {\n        if (typeof token !== 'object' || token === null) {\n            return false;\n        }\n        if (!('expires' in token) || !('token' in token)) {\n            return false;\n        }\n        // Token must be a non-empty string (not false, null, or empty)\n        if (typeof token.token !== 'string' || token.token.length === 0) {\n            return false;\n        }\n        if (token.expires < Date.now() / 1000) {\n            // +new Date() gets current timestamp\n            return false;\n        }\n\n        return true;\n    }\n\n    public static fromJSON(json: any): JWTToken {\n        if (!JWTToken.valid(json)) {\n            throw new Error('Invalid token');\n        }\n        return new JWTToken(json.expires, json.token);\n    }\n\n    /**\n     * Load JWT token from localStorage\n     */\n    public static override load(): JWTToken | null {\n        return AbstractToken.load<JWTToken>(JWTToken.identifier);\n    }\n\n    /**\n     * Remove JWT token from localStorage\n     */\n    public static override purge(): void {\n        AbstractToken.purge(JWTToken.identifier);\n    }\n}\n\n// @ts-expect-error - TypeScript limitation with static method override return types\nexport class CSRFToken extends AbstractToken {\n    static identifier: string = `${tokenPrefix}_csrfToken`;\n\n    constructor(\n        public name: string,\n        public token: string,\n        public type: string = 'CSRFToken',\n    ) {\n        super();\n        this.save(CSRFToken.identifier);\n    }\n\n    public static valid(token: any): boolean {\n        if (typeof token !== 'object' || token === null) {\n            return false;\n        }\n        if (!('name' in token) || !('token' in token)) {\n            return false;\n        }\n\n        if (token.name === '' || token.token === '' || token.name === null || token.token === null) {\n            return false;\n        }\n\n        return true;\n    }\n\n    public static fromJSON(json: any): CSRFToken {\n        if (!CSRFToken.valid(json)) {\n            throw new Error('Invalid CSRF token');\n        }\n        return new CSRFToken(json.name, json.token);\n    }\n\n    /**\n     * Load CSRF token from localStorage\n     */\n    public static override load(): CSRFToken | null {\n        return AbstractToken.load<CSRFToken>(CSRFToken.identifier);\n    }\n\n    /**\n     * Remove CSRF token from localStorage\n     */\n    public static override purge(): void {\n        AbstractToken.purge(CSRFToken.identifier);\n    }\n}\n", "import type { Api, ApiResponse } from './api';\nimport { CSRFToken } from './token';\n\nexport type FileInfo = {\n    name: string;\n    mtime: number;\n    size: number;\n    path: string;\n    mime: string;\n    is_dir: boolean;\n    is_deleteable: boolean;\n    preview: string;\n    warnings: string;\n    attachment: [] | Record<number, { de: boolean; fr: boolean }>;\n    attachment_uses: number;\n};\n\nexport type FileExistsResponse = {\n    exists: boolean;\n    mtime?: number;\n};\n\nexport type AttachmentExistsResponse = {\n    id: number | null;\n};\n\nexport type UploadResponse = {\n    filename: string;\n    folder: string;\n};\n\nexport type CreateFolderResponse = {\n    newfolder: string;\n};\n\nexport class FilemanagerApi {\n    constructor(\n        public readonly url: string,\n        private readonly api: typeof Api,\n        private readonly disk: string = '',\n    ) {}\n\n    /**\n     * Upload a file to a folder\n     */\n    async uploadToFolder(data: FormData): Promise<ApiResponse<UploadResponse>> {\n        const csrfToken = await this.api.request_csrf_token();\n        data.append(csrfToken.name, csrfToken.token);\n        if (this.disk) data.append('disk', this.disk);\n\n        const response = await fetch(`${this.url}/api/filemanager/uploadToFolder`, {\n            body: data,\n            method: 'POST',\n            credentials: 'include', // Ensure session cookies are sent\n        });\n        const apiResponse = await response.json();\n\n        if (apiResponse.statusCode === 403 && apiResponse.message === 'csrf token mismatch') {\n            console.log('csrf token mismatch. retrying with fresh token');\n            CSRFToken.purge();\n            return this.uploadToFolder(data);\n        }\n        if (apiResponse.statusCode.toString().search(/2\\d\\d/) === -1) {\n            throw new Error(apiResponse.message);\n        }\n        return apiResponse;\n    }\n\n    /**\n     * Create a new folder\n     * @param folderName - The folder name to create\n     * @param currentPath - Current path in the file manager (optional)\n     * @param startPath - The start/upload path to remove from current path (optional)\n     */\n    async createFolder(folderName: string, currentPath?: string, startPath?: string) {\n        let folderPath = folderName;\n\n        // If we have context about current location, build relative path\n        if (currentPath && startPath) {\n            const relativePath = currentPath\n                .replace(new RegExp(`^${startPath.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')}`), '')\n                .replace(/^\\/+/, '');\n            folderPath = relativePath ? `${relativePath}/${folderName}` : folderName;\n        }\n\n        // Sanitize folder name/path (remove non-alphanumeric characters except slashes)\n        const sanitizedPath = folderPath\n            .split('/')\n            .map(part => part.replace(/[^a-zA-Z0-9]/g, ''))\n            .filter(part => part)\n            .join('/');\n\n        return this.api.api_post<CreateFolderResponse>(`${this.url}/api/filemanager/createFolder`, {\n            newfolder: sanitizedPath,\n            ...(this.disk ? { disk: this.disk } : {}),\n        });\n    }\n\n    /**\n     * List files in a directory\n     */\n    async listFiles(path?: string, hiddenExtensions?: string[], allowDelete?: boolean) {\n        const params = new URLSearchParams();\n        if (path) params.append('path', path);\n        if (hiddenExtensions) params.append('hidden_extensions', hiddenExtensions.join(','));\n        if (allowDelete !== undefined) params.append('allow_delete', String(allowDelete));\n        if (this.disk) params.append('disk', this.disk);\n\n        const queryString = params.toString();\n        const endpoint = queryString\n            ? `${this.url}/api/filemanager/listfiles?${queryString}`\n            : `${this.url}/api/filemanager/listfiles`;\n\n        return this.api.api_get<FileInfo[]>(endpoint);\n    }\n\n    /**\n     * Rename a file or folder\n     */\n    async rename(filename: string, filenameNew: string) {\n        return this.api.api_put(`${this.url}/api/filemanager/rename`, {\n            filename,\n            filename_new: filenameNew,\n            ...(this.disk ? { disk: this.disk } : {}),\n        });\n    }\n\n    /**\n     * Delete a file or folder\n     */\n    async delete(filename: string) {\n        const params = new URLSearchParams({ filename });\n        if (this.disk) params.append('disk', this.disk);\n\n        return this.api.api_delete(`${this.url}/api/filemanager/delete?${params.toString()}`);\n    }\n\n    /**\n     * Check if an attachment exists by filepath\n     */\n    async attachmentExists(filepath: string) {\n        const params = new URLSearchParams({ filepath });\n        if (this.disk) params.append('disk', this.disk);\n\n        return this.api.api_get<AttachmentExistsResponse>(\n            `${this.url}/api/filemanager/attachment_exists?${params.toString()}`,\n        );\n    }\n\n    /**\n     * Check if a file exists in a folder\n     */\n    async fileExists(filename: string, folder: string = '.') {\n        const params = new URLSearchParams({ filename, folder });\n        if (this.disk) params.append('disk', this.disk);\n\n        return this.api.api_get<FileExistsResponse>(`${this.url}/api/filemanager/file_exists?${params.toString()}`);\n    }\n}\n", "import type { Api, ApiResponse } from './api';\n\n/**\n * Used by the frontend form class to send form data\n */\nexport class FormApi {\n    constructor(\n        public readonly url: string,\n        private readonly api: typeof Api,\n    ) {}\n\n    async send(form: string, data: Record<string, unknown>): Promise<ApiResponse> {\n        return this.api.api_post(`${this.url}/api/form/${form}`, data);\n    }\n}\n", "import type { Api, ApiResponse } from './api';\n\nexport class MetaApi {\n    constructor(\n        public readonly url: string,\n        private readonly api: typeof Api,\n    ) {}\n\n    async languages(): Promise<ApiResponse<string[]>> {\n        return this.api.api_get<string[]>(`${this.url}/api/languages`);\n    }\n\n    async resources(): Promise<ApiResponse<Record<string, string | null>>> {\n        return this.api.api_get<Record<string, string | null>>(`${this.url}/api/resources`);\n    }\n}\n", "import type { BasicEntity } from '../../types/entities';\nimport type { TableHeader } from '../admin/view/view.js';\nimport type { Api, ApiResponse, Api as defaultApi } from './api.js';\n\nexport type ResourceUpdatedResponse = { id: number; rowCount: number; status: boolean };\nexport type ResourceExportResponse = { filename: string; filesize: string; extension: string; rows: number };\n\n/** All operator suffixes accepted by the server-side FilterParser */\nexport type FilterOperator =\n    | 'eq'\n    | 'neq'\n    | 'gt'\n    | 'gte'\n    | 'lt'\n    | 'lte'\n    | 'like'\n    | 'nlike'\n    | 'in'\n    | 'nin'\n    | 'is'\n    | 'regexp'\n    | 'between'\n    | '='\n    | '!='\n    | '>'\n    | '>='\n    | '<'\n    | '<=';\n\n/** Scalar values accepted as filter operands */\nexport type FilterScalar = string | number | boolean | null;\n\n/** All value shapes accepted by the filter endpoint */\nexport type FilterValue = FilterScalar | FilterScalar[] | [FilterScalar, FilterScalar];\n\n/**\n * Filter payload for the /filter endpoint.\n *\n * Accepts plain entity fields (`{ name: 'Alice' }`) as equality checks,\n * or dotted-key expressions for richer operators:\n *   `{ 'age.gte': 18, 'name.like': 'Jo%', 'id.in': [1, 2, 3] }`\n */\nexport type FilterInput<T> = Partial<T> & Partial<Record<`${string & keyof T}.${FilterOperator}`, FilterValue>>;\n\n/**\n * resource api calls\n * meant to cover about 95% of our needs\n */\nexport class ResourceApi<T extends BasicEntity> {\n    constructor(\n        public readonly url: string,\n        public readonly resource: string,\n        public readonly api: typeof Api,\n    ) {}\n\n    async fields(): Promise<ApiResponse<TableHeader>> {\n        return this.api.api_get<TableHeader>(`${this.url}/api/resources/${this.resource}/fields`);\n    }\n\n    async get(lang: string | null = null): Promise<ApiResponse<T[]>> {\n        return this.api.api_get<T[]>(`${this.url}/api/resources/${this.resource}`, lang);\n    }\n\n    async getFiltered(filter: FilterInput<T>): Promise<ApiResponse<T[]>> {\n        return this.api.api_post<T[]>(`${this.url}/api/resources/${this.resource}/filter`, filter);\n    }\n\n    async getByID(id: number, lang: string | null = null): Promise<ApiResponse<T>> {\n        return this.api.api_get<T>(`${this.url}/api/resources/${this.resource}/${id}`, lang);\n    }\n\n    async getBy(field: string, value: any, lang: string | null = null): Promise<ApiResponse<T[]>> {\n        return this.api.api_get<T[]>(`${this.url}/api/resources/${this.resource}/${field}/${value}`, lang);\n    }\n\n    async getAutocomplete(field: string, value: any, lang: string | null = null): Promise<ApiResponse> {\n        return this.api.api_get(\n            `${this.url}/api/resources_autocomplete/${this.resource}/${field}/${encodeURIComponent(value)}`,\n            lang,\n        );\n    }\n\n    async post(data: Partial<T>): Promise<ApiResponse<ResourceUpdatedResponse>> {\n        return this.api.api_post<ResourceUpdatedResponse>(`${this.url}/api/resources/${this.resource}`, data);\n    }\n\n    async put(data: Partial<T>): Promise<ApiResponse<ResourceUpdatedResponse>> {\n        if (data.hasOwnProperty('id')) {\n            return this.api.api_put<ResourceUpdatedResponse>(\n                `${this.url}/api/resources/${this.resource}/${data.id}`,\n                data,\n                null,\n            );\n        }\n        throw new Error('data must have an id, use post to add new data first');\n    }\n\n    async patch(data: Partial<T>): Promise<ApiResponse<ResourceUpdatedResponse>> {\n        if (data.hasOwnProperty('id')) {\n            return this.api.api_patch<ResourceUpdatedResponse>(\n                `${this.url}/api/resources/${this.resource}/${data.id}`,\n                data,\n                null,\n            );\n        }\n        throw new Error('data must have an id, use post to add new data first');\n    }\n\n    async putLanguage(lang: string, data: Partial<T>): Promise<ApiResponse<ResourceUpdatedResponse>> {\n        if (data.hasOwnProperty('id') && data.id !== null) {\n            return this.api.api_put(`${this.url}/api/resources/${this.resource}/${data.id}/lang`, data, lang);\n        }\n        throw new Error('data must have an id');\n    }\n\n    async patchLanguage(lang: string, data: Partial<T>): Promise<ApiResponse<ResourceUpdatedResponse>> {\n        if (data.hasOwnProperty('id') && data.id !== null) {\n            return this.api.api_patch(`${this.url}/api/resources/${this.resource}/${data.id}/lang`, data, lang);\n        }\n        throw new Error('data must have an id');\n    }\n\n    async upsert(data: Partial<T>): Promise<ApiResponse<ResourceUpdatedResponse>> {\n        return this.api.api_post(`${this.url}/api/resources/${this.resource}/upsert`, data);\n    }\n\n    async delete(id: number): Promise<ApiResponse> {\n        return this.api.api_delete(`${this.url}/api/resources/${this.resource}/${id}`);\n    }\n\n    async export(type: string, filter: Record<string, unknown>): Promise<ApiResponse<ResourceExportResponse>> {\n        const hasFilter = Object.keys(filter).length > 0;\n        if (hasFilter) {\n            return this.api.api_post(`${this.url}/api/resources/${this.resource}/export/${type}`, filter);\n        }\n        return this.api.api_get(`${this.url}/api/resources/${this.resource}/export/${type}`);\n    }\n\n    getApi(): typeof defaultApi {\n        return this.api;\n    }\n\n    // enable aborting a running api request\n    abortRunningRequest = this.api.abort_request.bind(this.api);\n}\n", "import type { Api, ApiResponse } from './api';\nimport { CSRFToken } from './token';\n\n/**\n * UploadApi is used by the FileUploadWidget\n *\n * TODO: Add upload progress support once Fetch API supports it\n * See: https://github.com/whatwg/fetch/pull/1843\n */\nexport class UploadApi {\n    constructor(\n        public readonly url: string,\n        private readonly api: typeof Api,\n    ) {}\n\n    /**\n     * @param input - the file input\n     * @param path - the path to upload the file to, from the project root without leading and trailing slashes\n     */\n    async file<U = { filename: string }>(\n        input: HTMLInputElement,\n        path: string,\n        _retried = false,\n    ): Promise<ApiResponse<U>> {\n        const data = new FormData();\n        data.append('file', input.files.item(0));\n        data.append('path', path);\n\n        // does not use this.api.post() because FormData needs the browser\n        // to set the Content-Type with the multipart boundary automatically\n        const csrfToken = await this.api.request_csrf_token();\n        data.append('csrf_name', csrfToken.name);\n        data.append('csrf_value', csrfToken.token);\n\n        const jwtToken = await this.api.request_token();\n        const response = await fetch(`${this.url}/api/upload`, {\n            body: data,\n            method: 'POST',\n            headers: new Headers({\n                Authorization: `Bearer ${jwtToken.token}`,\n            }),\n        });\n        const apiResponse = await response.json();\n\n        if (!_retried && apiResponse.statusCode === 403 && apiResponse.message === 'csrf token mismatch') {\n            console.log('csrf token mismatch. retrying with fresh token');\n            CSRFToken.purge();\n            return this.file(input, path, true);\n        }\n        if (apiResponse.statusCode.toString().search(/2\\d\\d/) === -1) {\n            throw new Error(apiResponse.message);\n        }\n        return apiResponse;\n    }\n}\n", "import type { LoginStrategy } from '../../types/entities';\nimport { Api, type ApiResponse } from './api';\n\nexport type UserLoginResponse = {\n    result: boolean;\n    error: string | null;\n    username: string | null;\n    userid: number;\n};\n\nexport type UserTokenResponse = {\n    expires: number;\n    token: string;\n};\n\nexport type UserCSRFResponse = {\n    name: string;\n    value: string;\n};\n\nexport type UserResetResponse = {\n    data: object;\n    msg: string;\n    message: 'username-required' | 'reset-sent';\n    messageType?: 'danger' | 'success';\n    result: boolean;\n    error: string;\n};\n\nexport class UserApi {\n    constructor(\n        public readonly url: string,\n        readonly _api: typeof Api,\n    ) {}\n\n    async login(data: { username: string; [key: string]: unknown }) {\n        // using fetch, as api_post would get a token\n        const response = await fetch(`${this.url}/api/auth/login`, {\n            method: 'POST',\n            body: JSON.stringify(data),\n            headers: new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' }),\n        });\n        const json = await response.json();\n        return json as ApiResponse<UserLoginResponse>;\n    }\n\n    async token() {\n        // using fetch, as api_post would get a token\n        const response = await fetch(`${this.url}/api/auth/token`, {\n            method: 'POST',\n            body: null,\n            headers: new Headers({ 'Content-Type': 'application/json', Accept: 'application/json' }),\n        });\n        const json = await response.json();\n        return json as ApiResponse<UserTokenResponse>;\n    }\n\n    async csrf() {\n        return Api.api_get<UserCSRFResponse>(`${this.url}/api/auth/csrf`);\n    }\n\n    async strategies(username: string) {\n        return Api.api_get<string[]>(`${this.url}/api/auth/strategy?username=${username}`);\n    }\n\n    async reset(usernameOrEmail: string) {\n        return Api.api_post<UserResetResponse>(`${this.url}/api/auth/reset`, { username: usernameOrEmail });\n    }\n\n    /**\n     * not implemented\n     */\n    async totp_qrcode() {}\n\n    async totp_validate(otp: number, credential: string) {\n        return Api.api_post<'otp validated'>(`${this.url}/api/auth/totp_validate`, { otp, credential });\n    }\n\n    async status() {\n        return Api.api_get<{ username: string }>(`${this.url}/api/auth/status`);\n    }\n\n    /**\n     * List current user's login strategies\n     */\n    async listMyLoginStrategies() {\n        return Api.api_get<LoginStrategy[]>(`${this.url}/api/auth/user/loginstrategies`);\n    }\n\n    /**\n     * Update current user's login strategy (label only)\n     */\n    async updateMyLoginStrategy(id: number, data: { label?: string }) {\n        return Api.api_patch(`${this.url}/api/auth/user/loginstrategies/${id}`, data);\n    }\n\n    /**\n     * Delete current user's login strategy\n     */\n    async deleteMyLoginStrategy(id: number) {\n        return Api.api_delete(`${this.url}/api/auth/user/loginstrategies/${id}`);\n    }\n\n    /**\n     * Create login strategy for current user\n     */\n    async createMyLoginStrategy(data: { strategy: string; credential: string; label?: string }) {\n        return Api.api_post<{ id: number }>(`${this.url}/api/auth/user/loginstrategies`, data);\n    }\n\n    /**\n     * not implemented\n     */\n    async email_test() {}\n}\n", "import type { Api, ApiResponse } from './api';\n\nexport type WebAuthnRegisterRequest = {\n    id: string;\n    rawId: string; // base64url encoded\n    response: {\n        clientDataJSON: string;\n        attestationObject: string;\n    };\n    type: string;\n};\n\nexport type WebAuthnAuthenticationOptionsRequest = {\n    username: string;\n};\n\nexport type WebAuthnAuthenticateRequest = {\n    id: string;\n    rawId: string; // base64url encoded\n    response: {\n        clientDataJSON: string;\n        authenticatorData: string;\n        signature: string;\n        userHandle: string | null;\n    };\n    type: string;\n};\n\n// Response types\nexport type WebAuthnRegistrationOptionsResponse = {\n    challenge: string;\n    rp: {\n        name: string;\n        id: string;\n    };\n    user: {\n        id: string;\n        name: string;\n        displayName: string;\n    };\n    pubKeyCredParams: Array<{\n        type: string;\n        alg: number;\n    }>;\n    timeout: number;\n    attestation: string;\n    authenticatorSelection?: {\n        authenticatorAttachment?: string;\n        userVerification?: string;\n    };\n};\n\nexport type WebAuthnRegisterResponse = {\n    message: string;\n    id: number;\n};\n\nexport type WebAuthnAuthenticationOptionsResponse = {\n    challenge: string;\n    timeout: number;\n    userVerification: string;\n    allowCredentials: Array<{\n        type: string;\n        id: string;\n    }>;\n};\n\nexport type WebAuthnAuthenticateResponse = {\n    message: string;\n    user: {\n        id: number;\n        username: string;\n    };\n};\n\nexport class WebAuthnApi {\n    constructor(\n        public readonly url: string,\n        private readonly api: typeof Api,\n    ) {}\n\n    /**\n     * Get WebAuthn registration options for the current authenticated user\n     */\n    async getRegistrationOptions(): Promise<ApiResponse<WebAuthnRegistrationOptionsResponse>> {\n        return this.api.api_post<WebAuthnRegistrationOptionsResponse>(\n            `${this.url}/api/auth/webauthn/registration-options`,\n            {},\n        );\n    }\n\n    /**\n     * Complete WebAuthn registration with the provided credential\n     */\n    async register(credential: WebAuthnRegisterRequest): Promise<ApiResponse<WebAuthnRegisterResponse>> {\n        return this.api.api_post<WebAuthnRegisterResponse>(`${this.url}/api/auth/webauthn/register`, credential);\n    }\n\n    /**\n     * Get WebAuthn authentication options for the specified username\n     */\n    async getAuthenticationOptions(username: string): Promise<ApiResponse<WebAuthnAuthenticationOptionsResponse>> {\n        return this.api.api_post<WebAuthnAuthenticationOptionsResponse>(\n            `${this.url}/api/auth/webauthn/authentication-options`,\n            { username },\n        );\n    }\n\n    /**\n     * Complete WebAuthn authentication with the provided assertion\n     */\n    async authenticate(assertion: WebAuthnAuthenticateRequest): Promise<ApiResponse<WebAuthnAuthenticateResponse>> {\n        return this.api.api_post<WebAuthnAuthenticateResponse>(`${this.url}/api/auth/webauthn/authenticate`, assertion);\n    }\n}\n", "import type { Api, ApiResponse } from './api';\n\nexport class WidgetGroupApi {\n    constructor(\n        public readonly url: string,\n        _pwgid: number,\n        private readonly api: typeof Api,\n    ) {}\n\n    async postBulk(data: Record<number, unknown>): Promise<ApiResponse> {\n        return this.api.api_post(`${this.url}/api/widget_group/bulk`, data);\n    }\n\n    async putLanguageBulk(\n        lang: string,\n        data: Record<number, unknown>,\n    ): Promise<ApiResponse<{ [key: number]: number }>> {\n        return this.api.api_put<{ [key: number]: number }>(`${this.url}/api/widget_group/bulk`, data, lang);\n    }\n}\n", "import type { BasicEntity } from '../../types/entities';\nimport { AdminResourceApi } from './adminResourceApi';\nimport { Api as defaultApi } from './api.js';\nimport { BulkApi } from './bulkApi';\nimport { FilemanagerApi } from './filemanagerApi';\nimport { FormApi } from './formApi';\nimport { MetaApi } from './metaApi';\nimport { ResourceApi } from './resourceApi';\nimport { UploadApi } from './uploadApi';\nimport { UserApi } from './userApi';\nimport { WebAuthnApi } from './webauthnApi';\nimport { WidgetGroupApi } from './widgetGroupApi';\n\nexport type ListView<T> = {\n    [key in keyof T]: {\n        original: T[key];\n        view: string | null;\n    };\n};\n\nexport type ApiClient = {\n    meta: MetaApi;\n    upload: UploadApi;\n    resource: <T extends BasicEntity>(resource: string) => ResourceApi<T>;\n    adminResource: <T extends BasicEntity>(resource: string) => AdminResourceApi<T>;\n    form: FormApi;\n    widget_group: (pwgid: number) => WidgetGroupApi;\n    bulk: <T extends BasicEntity>(resource: string) => BulkApi<T>;\n    user: UserApi;\n    webAuthn: WebAuthnApi;\n    filemanager: FilemanagerApi;\n};\n\nexport const ApiClientFactory = (api = defaultApi): ApiClient => {\n    if (typeof api === 'string') {\n        throw new Error('ApiClientFactory: api should be an instance of Api, not a string');\n    }\n    let url: string = window.baseUrl || `/${document.location.hostname}`;\n\n    // remove trailing slash\n    if (url.split('').reverse()[0] === '/') {\n        const tempUrl = url.split('');\n        tempUrl.pop();\n        url = tempUrl.join('');\n    }\n\n    return {\n        meta: new MetaApi(url, api),\n        upload: new UploadApi(url, api),\n        resource: <T extends BasicEntity>(resource: string): ResourceApi<T> => new ResourceApi<T>(url, resource, api),\n        adminResource: <T extends BasicEntity>(resource: string): AdminResourceApi<T> =>\n            new AdminResourceApi<T>(url, resource, api),\n        form: new FormApi(url, api),\n        widget_group: (pwgid: number): WidgetGroupApi => new WidgetGroupApi(url, pwgid, api),\n        bulk: <T extends BasicEntity>(resource: string): BulkApi<T> => new BulkApi<T>(url, resource, api),\n        user: new UserApi(url, api),\n        webAuthn: new WebAuthnApi(url, api),\n        filemanager: new FilemanagerApi(url, api),\n    };\n};\n", "import type { PaginationInfo } from '../admin/admintable/pagination.js';\nimport { Message, type MessageLike } from '../components/message.js';\nimport { InvalidInputError } from '../errors/invalidInputError.js';\nimport { FormLogger } from '../form/formLogger.js';\nimport { ApiClientFactory } from './apiclientfactory';\nimport { CSRFToken, JWTToken } from './token.js';\n\nexport type ApiResponse<T = void> = {\n    data: T extends void ? any[] | null : T | null;\n    language: string;\n    message: string;\n    pagination: PaginationInfo;\n    phpErrors: string[];\n    statusCode: number;\n    status: string;\n    notification: MessageLike;\n};\n\nexport type ExceptionResponse = {\n    message: string;\n    exception: Exception | Exception[]; // only available if DISPLAY_ERRORS=1\n};\nexport type Exception = {\n    type: string;\n    code: number;\n    message: string;\n    file: string;\n    line: number;\n};\n\nexport type WidgetValidation = {\n    widget: string;\n    errors: Array<Error>;\n};\n\nexport class Api {\n    static abortController: AbortController = new AbortController();\n    static lang: string = window.lang;\n    static log: boolean = false;\n    static showMessages: boolean = false;\n    static csrf: boolean = true;\n    static enableJwt: boolean = false; // Set to true for external API calls that need JWT authentication\n\n    static showMessage(response: ApiResponse<any> | ExceptionResponse): void {\n        if (Api.showMessages === false) {\n            return;\n        }\n\n        // if the response is an exception, show the error message\n        if ('exception' in response) {\n            Message.log('danger', `${response.message}:<br>${Api.getExceptionResponseMessage(response)}`);\n            return;\n        }\n\n        if (response.notification === null) {\n            return;\n        }\n\n        Message.log(response.notification.severity, response.notification.message);\n    }\n\n    static getExceptionResponseMessage(response: ExceptionResponse): string {\n        if (Array.isArray(response.exception)) {\n            return response.exception.map(ex => `${ex.type}: ${ex.message}`).join('<br>');\n        }\n        return response.exception.message;\n    }\n\n    static async request_csrf_token(force: boolean = false): Promise<CSRFToken> {\n        let csrfToken = CSRFToken.load();\n        if (csrfToken !== null && force === false) {\n            return csrfToken;\n        }\n\n        try {\n            const userApi = ApiClientFactory().user;\n            const apiResponse = await userApi.csrf();\n            csrfToken = new CSRFToken(apiResponse.data.name, apiResponse.data.value);\n            return csrfToken;\n        } catch (error) {\n            throw new Error(`requestCSRFToken failed: ${error.message ?? error}`);\n        }\n    }\n\n    /**\n     * Returns a Promise to get a valid token\n     * NOTE: JWT tokens are now automatically sent via HTTP-only cookie.\n     * This method is kept for backward compatibility.\n     * The token is managed by the server and sent as a cookie after login.\n     */\n    static async request_token(force = false): Promise<JWTToken> {\n        let token = JWTToken.load();\n        if (token !== null && force === false) {\n            return token;\n        }\n\n        try {\n            const userApi = ApiClientFactory().user;\n            const apiResponse = await userApi.token();\n\n            // Check if the response indicates an error or invalid token\n            if (\n                apiResponse.statusCode >= 400\n                || !apiResponse.data?.token\n                || typeof apiResponse.data.token !== 'string'\n            ) {\n                throw new Error(apiResponse.message || 'Failed to obtain valid token');\n            }\n\n            token = new JWTToken(apiResponse.data.expires, apiResponse.data.token);\n            Api.showMessage(apiResponse);\n            return token;\n        } catch (error) {\n            throw new Error(`request_token failed: ${error.message ?? error}`);\n        }\n    }\n\n    static async add_csrf_header(\n        headers: Headers,\n        method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE',\n    ): Promise<Headers> {\n        // if csrf is disabled, return\n        if (Api.csrf === false) {\n            return headers;\n        }\n\n        // if method is GET, OPTIONS or HEAD, return\n        // these methods do not require csrf tokens, as they are not modifying data\n        if (['GET', 'OPTIONS', 'HEAD'].indexOf(method.toUpperCase()) !== -1) {\n            return headers;\n        }\n\n        const csrfToken = await Api.request_csrf_token();\n\n        headers.append('csrf_name', csrfToken.name);\n        headers.append('csrf_value', csrfToken.token);\n\n        return headers;\n    }\n\n    /**\n     * make an api request, supplying fitting headers\n     */\n    static async api_request<T>(\n        method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE',\n        url: string,\n        data: Record<string, unknown>,\n        forceLang?: string,\n    ): Promise<ApiResponse<T>> {\n        try {\n            let response: Response;\n\n            window.apiTries = window.apiTries || {};\n            const language = forceLang !== null && typeof forceLang !== 'undefined' ? forceLang : Api.lang;\n\n            // Build headers\n            const headers = new Headers({\n                Accept: 'application/json',\n                'Content-Type': 'application/json',\n                [method.toUpperCase() !== 'GET' ? 'Content-Language' : 'Accept-Language']: language,\n            });\n\n            // Only add JWT Authorization header if enabled (for external API calls)\n            // By default, admin panel uses session authentication\n            if (Api.enableJwt) {\n                const token: JWTToken = await Api.request_token();\n                headers.append('Authorization', `Bearer ${token.token}`);\n            }\n\n            try {\n                response = await fetch(url, {\n                    body: ['GET', 'DELETE'].indexOf(method.toUpperCase()) === -1 ? JSON.stringify(data) : null,\n                    method,\n                    headers,\n                    credentials: 'include', // Ensure session cookies are sent\n                    signal: Api.abortController?.signal,\n                });\n\n                await FormLogger.logResponse(response, Api.log);\n            } catch (error) {\n                await FormLogger.logError(error, method !== 'GET' && Api.log);\n                throw error;\n            }\n\n            if (response.status === 204) {\n                return {\n                    statusCode: 204,\n                    status: 'No Content',\n                    notification: null,\n                    data: [],\n                } as ApiResponse<T>;\n            }\n\n            // check for json-ness\n            const contentType = response.headers.get('Content-Type');\n            if (contentType && contentType.indexOf('application/json') === -1) {\n                const text = await response.text();\n                throw new Error(`Response is not JSON: ${text}`);\n            }\n\n            const apiResponse: ApiResponse<T> | ExceptionResponse = await response.json();\n            // catch response undefined\n            if (typeof apiResponse === 'undefined' || apiResponse === null) {\n                throw new Error('Oops! An error occurred.');\n            }\n\n            Api.showMessage(apiResponse);\n\n            // catch exceptions\n            if ('exception' in apiResponse) {\n                throw new Error(\n                    `${response.status.toString()}: ${apiResponse.message}:<br>${Api.getExceptionResponseMessage(apiResponse)}`,\n                );\n            }\n\n            // catch 5xx errors\n            if (response.status.toString().search(/5\\d\\d/) === 0) {\n                throw new Error(`${response.status.toString()}: ${apiResponse.message}`);\n            }\n\n            // catch widget validation errors\n            if (response.status === 400 && apiResponse.message === 'invalid input') {\n                console.log(apiResponse.data, apiResponse.message);\n                throw new InvalidInputError(apiResponse.data as any[], apiResponse.message as any);\n            }\n\n            // catch permission errors (try a few times)\n            // Only retry with fresh JWT token if JWT authentication is enabled\n            // For session-based auth, 401 means redirect to login\n            window.apiTries[url] = (window.apiTries[url] || 0) + 1;\n            if (response.status === 401 && Api.enableJwt && window.apiTries[url] < 5) {\n                console.log('retrying with fresh token. tries:', window.apiTries[url]);\n                // re-try with new token\n                JWTToken.purge();\n                return Api.api_request(method, url, data, forceLang);\n            }\n\n            // catch any non-2xx status codes\n            if (response.status.toString().search(/2\\d\\d/) === -1) {\n                throw new Error(apiResponse.message);\n            }\n\n            // reset url tries counter\n            window.apiTries[url] = 0;\n\n            // resolve with ApiResponse\n            return apiResponse;\n        } catch (error) {\n            if (error instanceof InvalidInputError) {\n                throw error;\n            } else if (error instanceof DOMException) {\n                if (error.name === 'AbortError') return {} as ApiResponse<T>;\n                throw error;\n            } else {\n                error.message = `api_request failed: ${error.message}`;\n                throw error;\n            }\n        }\n    }\n\n    /**\n     * make a GET request with automatically supplied token\n     */\n    static api_get<T>(url: string, lang: string = null): Promise<ApiResponse<T>> {\n        // make request\n        return Api.api_request<T>('GET', url, null, lang);\n    }\n\n    /**\n     * make a POST request with automatically supplied token\n     */\n    static api_post<T>(url: string, data: Record<string, unknown>): Promise<ApiResponse<T>> {\n        // make request\n        return Api.api_request('POST', url, data, null);\n    }\n\n    /**\n     * make a PUT request with automatically supplied token\n     */\n    static api_put<T>(url: string, data: Record<string, unknown>, forceLang?: string): Promise<ApiResponse<T>> {\n        // make request\n        return Api.api_request('PUT', url, data, forceLang);\n    }\n\n    /**\n     * make a PATCH request with automatically supplied token\n     */\n    static api_patch<T>(url: string, data: Record<string, unknown>, forceLang?: string): Promise<ApiResponse<T>> {\n        // make request\n        return Api.api_request('PATCH', url, data, forceLang);\n    }\n\n    /**\n     * make a DELETE request with automatically supplied token\n     */\n    static api_delete<T>(url: string): Promise<ApiResponse<T>> {\n        // make request\n        return Api.api_request('DELETE', url, null, null);\n    }\n\n    /**\n     * aborts the current request if supported\n     */\n    static abort_request(): void {\n        if (typeof Api.abortController.abort !== 'undefined') {\n            Api.abortController.abort();\n            Api.abortController = new AbortController();\n        }\n    }\n}\n", "// import needed stuff\nimport { i18n } from '@moxiltd/moxijs/src/i18n.js';\nimport { Api } from '@moxiltd/moxijs/src/api/api.js';\nimport browserUpdate from 'browser-update';\nimport { Notyf } from 'notyf';\nimport * as functions from './functions.ts';\n\nimport './general.ts';\nimport './mobile-menu.ts';\nimport './onepager.ts';\n\n// load polyfills if needed\nimport './legacySupport.js';\n\n// web components (self-register via customElements.define)\nexport * from './components/accordion.js';\nexport * from './components/modal.js';\nexport * from './components/slider.js';\nexport * from './components/tabs.js';\nexport * from './form.js';\n\n// make moxi functions available from outside, e.g. templates\nwindow.moxi = {\n    i18n,\n    functions,\n    Api,\n};\n\n// browser update\nwindow.browserUpdate = browserUpdate;\nwindow.notyf = new Notyf({\n    types: [\n        {\n            type: 'info',\n            background: '#007bff',\n            icon: {\n                className: 'fas fa-info-circle',\n                tagName: 'span',\n                color: '#fff',\n            },\n        },\n    ],\n});\n\nexport * from '@moxiltd/moxijs/src/widgets/otpDigits.js';\nexport * from './components/uploader.js';\nexport * from './components/avatarUploader.js';\nexport * from './components/categoryWizard.js';\nexport * from './components/barcodeScanner.js';\nexport * from './components/numberScanner.js';\n\n// trigger jsLoaded event\ndocument.dispatchEvent(new Event('jsLoaded'));\n", "/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n\r\nvar __assign = function() {\r\n    __assign = Object.assign || function __assign(t) {\r\n        for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n            s = arguments[i];\r\n            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n        }\r\n        return t;\r\n    };\r\n    return __assign.apply(this, arguments);\r\n};\n\nvar NotyfNotification = /** @class */ (function () {\r\n    function NotyfNotification(options) {\r\n        this.options = options;\r\n        this.listeners = {};\r\n    }\r\n    NotyfNotification.prototype.on = function (eventType, cb) {\r\n        var callbacks = this.listeners[eventType] || [];\r\n        this.listeners[eventType] = callbacks.concat([cb]);\r\n    };\r\n    NotyfNotification.prototype.triggerEvent = function (eventType, event) {\r\n        var _this = this;\r\n        var callbacks = this.listeners[eventType] || [];\r\n        callbacks.forEach(function (cb) { return cb({ target: _this, event: event }); });\r\n    };\r\n    return NotyfNotification;\r\n}());\r\nvar NotyfArrayEvent;\r\n(function (NotyfArrayEvent) {\r\n    NotyfArrayEvent[NotyfArrayEvent[\"Add\"] = 0] = \"Add\";\r\n    NotyfArrayEvent[NotyfArrayEvent[\"Remove\"] = 1] = \"Remove\";\r\n})(NotyfArrayEvent || (NotyfArrayEvent = {}));\r\nvar NotyfArray = /** @class */ (function () {\r\n    function NotyfArray() {\r\n        this.notifications = [];\r\n    }\r\n    NotyfArray.prototype.push = function (elem) {\r\n        this.notifications.push(elem);\r\n        this.updateFn(elem, NotyfArrayEvent.Add, this.notifications);\r\n    };\r\n    NotyfArray.prototype.splice = function (index, num) {\r\n        var elem = this.notifications.splice(index, num)[0];\r\n        this.updateFn(elem, NotyfArrayEvent.Remove, this.notifications);\r\n        return elem;\r\n    };\r\n    NotyfArray.prototype.indexOf = function (elem) {\r\n        return this.notifications.indexOf(elem);\r\n    };\r\n    NotyfArray.prototype.onUpdate = function (fn) {\r\n        this.updateFn = fn;\r\n    };\r\n    return NotyfArray;\r\n}());\n\nvar NotyfEvent;\r\n(function (NotyfEvent) {\r\n    NotyfEvent[\"Dismiss\"] = \"dismiss\";\r\n    NotyfEvent[\"Click\"] = \"click\";\r\n})(NotyfEvent || (NotyfEvent = {}));\r\nvar DEFAULT_OPTIONS = {\r\n    types: [\r\n        {\r\n            type: 'success',\r\n            className: 'notyf__toast--success',\r\n            backgroundColor: '#3dc763',\r\n            icon: {\r\n                className: 'notyf__icon--success',\r\n                tagName: 'i',\r\n            },\r\n        },\r\n        {\r\n            type: 'error',\r\n            className: 'notyf__toast--error',\r\n            backgroundColor: '#ed3d3d',\r\n            icon: {\r\n                className: 'notyf__icon--error',\r\n                tagName: 'i',\r\n            },\r\n        },\r\n    ],\r\n    duration: 2000,\r\n    ripple: true,\r\n    position: {\r\n        x: 'right',\r\n        y: 'bottom',\r\n    },\r\n    dismissible: false,\r\n};\n\nvar NotyfView = /** @class */ (function () {\r\n    function NotyfView() {\r\n        this.notifications = [];\r\n        this.events = {};\r\n        this.X_POSITION_FLEX_MAP = {\r\n            left: 'flex-start',\r\n            center: 'center',\r\n            right: 'flex-end',\r\n        };\r\n        this.Y_POSITION_FLEX_MAP = {\r\n            top: 'flex-start',\r\n            center: 'center',\r\n            bottom: 'flex-end',\r\n        };\r\n        // Creates the main notifications container\r\n        var docFrag = document.createDocumentFragment();\r\n        var notyfContainer = this._createHTMLElement({ tagName: 'div', className: 'notyf' });\r\n        docFrag.appendChild(notyfContainer);\r\n        document.body.appendChild(docFrag);\r\n        this.container = notyfContainer;\r\n        // Identifies the main animation end event\r\n        this.animationEndEventName = this._getAnimationEndEventName();\r\n        this._createA11yContainer();\r\n    }\r\n    NotyfView.prototype.on = function (event, cb) {\r\n        var _a;\r\n        this.events = __assign(__assign({}, this.events), (_a = {}, _a[event] = cb, _a));\r\n    };\r\n    NotyfView.prototype.update = function (notification, type) {\r\n        if (type === NotyfArrayEvent.Add) {\r\n            this.addNotification(notification);\r\n        }\r\n        else if (type === NotyfArrayEvent.Remove) {\r\n            this.removeNotification(notification);\r\n        }\r\n    };\r\n    NotyfView.prototype.removeNotification = function (notification) {\r\n        var _this = this;\r\n        var renderedNotification = this._popRenderedNotification(notification);\r\n        var node;\r\n        if (!renderedNotification) {\r\n            return;\r\n        }\r\n        node = renderedNotification.node;\r\n        node.classList.add('notyf__toast--disappear');\r\n        var handleEvent;\r\n        node.addEventListener(this.animationEndEventName, (handleEvent = function (event) {\r\n            if (event.target === node) {\r\n                node.removeEventListener(_this.animationEndEventName, handleEvent);\r\n                _this.container.removeChild(node);\r\n            }\r\n        }));\r\n    };\r\n    NotyfView.prototype.addNotification = function (notification) {\r\n        var node = this._renderNotification(notification);\r\n        this.notifications.push({ notification: notification, node: node });\r\n        // For a11y purposes, we still want to announce that there's a notification in the screen\r\n        // even if it comes with no message.\r\n        this._announce(notification.options.message || 'Notification');\r\n    };\r\n    NotyfView.prototype._renderNotification = function (notification) {\r\n        var _a;\r\n        var card = this._buildNotificationCard(notification);\r\n        var className = notification.options.className;\r\n        if (className) {\r\n            (_a = card.classList).add.apply(_a, className.split(' '));\r\n        }\r\n        this.container.appendChild(card);\r\n        return card;\r\n    };\r\n    NotyfView.prototype._popRenderedNotification = function (notification) {\r\n        var idx = -1;\r\n        for (var i = 0; i < this.notifications.length && idx < 0; i++) {\r\n            if (this.notifications[i].notification === notification) {\r\n                idx = i;\r\n            }\r\n        }\r\n        if (idx !== -1) {\r\n            return this.notifications.splice(idx, 1)[0];\r\n        }\r\n        return;\r\n    };\r\n    NotyfView.prototype.getXPosition = function (options) {\r\n        var _a;\r\n        return ((_a = options === null || options === void 0 ? void 0 : options.position) === null || _a === void 0 ? void 0 : _a.x) || 'right';\r\n    };\r\n    NotyfView.prototype.getYPosition = function (options) {\r\n        var _a;\r\n        return ((_a = options === null || options === void 0 ? void 0 : options.position) === null || _a === void 0 ? void 0 : _a.y) || 'bottom';\r\n    };\r\n    NotyfView.prototype.adjustContainerAlignment = function (options) {\r\n        var align = this.X_POSITION_FLEX_MAP[this.getXPosition(options)];\r\n        var justify = this.Y_POSITION_FLEX_MAP[this.getYPosition(options)];\r\n        var style = this.container.style;\r\n        style.setProperty('justify-content', justify);\r\n        style.setProperty('align-items', align);\r\n    };\r\n    NotyfView.prototype._buildNotificationCard = function (notification) {\r\n        var _this = this;\r\n        var options = notification.options;\r\n        var iconOpts = options.icon;\r\n        // Adjust container according to position (e.g. top-left, bottom-center, etc)\r\n        this.adjustContainerAlignment(options);\r\n        // Create elements\r\n        var notificationElem = this._createHTMLElement({ tagName: 'div', className: 'notyf__toast' });\r\n        var ripple = this._createHTMLElement({ tagName: 'div', className: 'notyf__ripple' });\r\n        var wrapper = this._createHTMLElement({ tagName: 'div', className: 'notyf__wrapper' });\r\n        var message = this._createHTMLElement({ tagName: 'div', className: 'notyf__message' });\r\n        message.innerHTML = options.message || '';\r\n        var mainColor = options.background || options.backgroundColor;\r\n        // Build the icon and append it to the card\r\n        if (iconOpts) {\r\n            var iconContainer = this._createHTMLElement({ tagName: 'div', className: 'notyf__icon' });\r\n            if (typeof iconOpts === 'string' || iconOpts instanceof String)\r\n                iconContainer.innerHTML = new String(iconOpts).valueOf();\r\n            if (typeof iconOpts === 'object') {\r\n                var _a = iconOpts.tagName, tagName = _a === void 0 ? 'i' : _a, className_1 = iconOpts.className, text = iconOpts.text, _b = iconOpts.color, color = _b === void 0 ? mainColor : _b;\r\n                var iconElement = this._createHTMLElement({ tagName: tagName, className: className_1, text: text });\r\n                if (color)\r\n                    iconElement.style.color = color;\r\n                iconContainer.appendChild(iconElement);\r\n            }\r\n            wrapper.appendChild(iconContainer);\r\n        }\r\n        wrapper.appendChild(message);\r\n        notificationElem.appendChild(wrapper);\r\n        // Add ripple if applicable, else just paint the full toast\r\n        if (mainColor) {\r\n            if (options.ripple) {\r\n                ripple.style.background = mainColor;\r\n                notificationElem.appendChild(ripple);\r\n            }\r\n            else {\r\n                notificationElem.style.background = mainColor;\r\n            }\r\n        }\r\n        // Add dismiss button\r\n        if (options.dismissible) {\r\n            var dismissWrapper = this._createHTMLElement({ tagName: 'div', className: 'notyf__dismiss' });\r\n            var dismissButton = this._createHTMLElement({\r\n                tagName: 'button',\r\n                className: 'notyf__dismiss-btn',\r\n            });\r\n            dismissWrapper.appendChild(dismissButton);\r\n            wrapper.appendChild(dismissWrapper);\r\n            notificationElem.classList.add(\"notyf__toast--dismissible\");\r\n            dismissButton.addEventListener('click', function (event) {\r\n                var _a, _b;\r\n                (_b = (_a = _this.events)[NotyfEvent.Dismiss]) === null || _b === void 0 ? void 0 : _b.call(_a, { target: notification, event: event });\r\n                event.stopPropagation();\r\n            });\r\n        }\r\n        notificationElem.addEventListener('click', function (event) { var _a, _b; return (_b = (_a = _this.events)[NotyfEvent.Click]) === null || _b === void 0 ? void 0 : _b.call(_a, { target: notification, event: event }); });\r\n        // Adjust margins depending on whether its an upper or lower notification\r\n        var className = this.getYPosition(options) === 'top' ? 'upper' : 'lower';\r\n        notificationElem.classList.add(\"notyf__toast--\" + className);\r\n        return notificationElem;\r\n    };\r\n    NotyfView.prototype._createHTMLElement = function (_a) {\r\n        var tagName = _a.tagName, className = _a.className, text = _a.text;\r\n        var elem = document.createElement(tagName);\r\n        if (className) {\r\n            elem.className = className;\r\n        }\r\n        elem.textContent = text || null;\r\n        return elem;\r\n    };\r\n    /**\r\n     * Creates an invisible container which will announce the notyfs to\r\n     * screen readers\r\n     */\r\n    NotyfView.prototype._createA11yContainer = function () {\r\n        var a11yContainer = this._createHTMLElement({ tagName: 'div', className: 'notyf-announcer' });\r\n        a11yContainer.setAttribute('aria-atomic', 'true');\r\n        a11yContainer.setAttribute('aria-live', 'polite');\r\n        // Set the a11y container to be visible hidden. Can't use display: none as\r\n        // screen readers won't read it.\r\n        a11yContainer.style.border = '0';\r\n        a11yContainer.style.clip = 'rect(0 0 0 0)';\r\n        a11yContainer.style.height = '1px';\r\n        a11yContainer.style.margin = '-1px';\r\n        a11yContainer.style.overflow = 'hidden';\r\n        a11yContainer.style.padding = '0';\r\n        a11yContainer.style.position = 'absolute';\r\n        a11yContainer.style.width = '1px';\r\n        a11yContainer.style.outline = '0';\r\n        document.body.appendChild(a11yContainer);\r\n        this.a11yContainer = a11yContainer;\r\n    };\r\n    /**\r\n     * Announces a message to screenreaders.\r\n     */\r\n    NotyfView.prototype._announce = function (message) {\r\n        var _this = this;\r\n        this.a11yContainer.textContent = '';\r\n        // This 100ms timeout is necessary for some browser + screen-reader combinations:\r\n        // - Both JAWS and NVDA over IE11 will not announce anything without a non-zero timeout.\r\n        // - With Chrome and IE11 with NVDA or JAWS, a repeated (identical) message won't be read a\r\n        //   second time without clearing and then using a non-zero delay.\r\n        // (using JAWS 17 at time of this writing).\r\n        // https://github.com/angular/material2/blob/master/src/cdk/a11y/live-announcer/live-announcer.ts\r\n        setTimeout(function () {\r\n            _this.a11yContainer.textContent = message;\r\n        }, 100);\r\n    };\r\n    /**\r\n     * Determine which animationend event is supported\r\n     */\r\n    NotyfView.prototype._getAnimationEndEventName = function () {\r\n        var el = document.createElement('_fake');\r\n        var transitions = {\r\n            MozTransition: 'animationend',\r\n            OTransition: 'oAnimationEnd',\r\n            WebkitTransition: 'webkitAnimationEnd',\r\n            transition: 'animationend',\r\n        };\r\n        var t;\r\n        for (t in transitions) {\r\n            if (el.style[t] !== undefined) {\r\n                return transitions[t];\r\n            }\r\n        }\r\n        // No supported animation end event. Using \"animationend\" as a fallback\r\n        return 'animationend';\r\n    };\r\n    return NotyfView;\r\n}());\n\n/**\r\n * Main controller class. Defines the main Notyf API.\r\n */\r\nvar Notyf = /** @class */ (function () {\r\n    function Notyf(opts) {\r\n        var _this = this;\r\n        this.dismiss = this._removeNotification;\r\n        this.notifications = new NotyfArray();\r\n        this.view = new NotyfView();\r\n        var types = this.registerTypes(opts);\r\n        this.options = __assign(__assign({}, DEFAULT_OPTIONS), opts);\r\n        this.options.types = types;\r\n        this.notifications.onUpdate(function (elem, type) { return _this.view.update(elem, type); });\r\n        this.view.on(NotyfEvent.Dismiss, function (_a) {\r\n            var target = _a.target, event = _a.event;\r\n            _this._removeNotification(target);\r\n            // tslint:disable-next-line: no-string-literal\r\n            target['triggerEvent'](NotyfEvent.Dismiss, event);\r\n        });\r\n        // tslint:disable-next-line: no-string-literal\r\n        this.view.on(NotyfEvent.Click, function (_a) {\r\n            var target = _a.target, event = _a.event;\r\n            return target['triggerEvent'](NotyfEvent.Click, event);\r\n        });\r\n    }\r\n    Notyf.prototype.error = function (payload) {\r\n        var options = this.normalizeOptions('error', payload);\r\n        return this.open(options);\r\n    };\r\n    Notyf.prototype.success = function (payload) {\r\n        var options = this.normalizeOptions('success', payload);\r\n        return this.open(options);\r\n    };\r\n    Notyf.prototype.open = function (options) {\r\n        var defaultOpts = this.options.types.find(function (_a) {\r\n            var type = _a.type;\r\n            return type === options.type;\r\n        }) || {};\r\n        var config = __assign(__assign({}, defaultOpts), options);\r\n        this.assignProps(['ripple', 'position', 'dismissible'], config);\r\n        var notification = new NotyfNotification(config);\r\n        this._pushNotification(notification);\r\n        return notification;\r\n    };\r\n    Notyf.prototype.dismissAll = function () {\r\n        while (this.notifications.splice(0, 1))\r\n            ;\r\n    };\r\n    /**\r\n     * Assigns properties to a config object based on two rules:\r\n     * 1. If the config object already sets that prop, leave it as so\r\n     * 2. Otherwise, use the default prop from the global options\r\n     *\r\n     * It's intended to build the final config object to open a notification. e.g. if\r\n     * 'dismissible' is not set, then use the value from the global config.\r\n     *\r\n     * @param props - properties to be assigned to the config object\r\n     * @param config - object whose properties need to be set\r\n     */\r\n    Notyf.prototype.assignProps = function (props, config) {\r\n        var _this = this;\r\n        props.forEach(function (prop) {\r\n            // intentional double equality to check for both null and undefined\r\n            config[prop] = config[prop] == null ? _this.options[prop] : config[prop];\r\n        });\r\n    };\r\n    Notyf.prototype._pushNotification = function (notification) {\r\n        var _this = this;\r\n        this.notifications.push(notification);\r\n        var duration = notification.options.duration !== undefined ? notification.options.duration : this.options.duration;\r\n        if (duration) {\r\n            setTimeout(function () { return _this._removeNotification(notification); }, duration);\r\n        }\r\n    };\r\n    Notyf.prototype._removeNotification = function (notification) {\r\n        var index = this.notifications.indexOf(notification);\r\n        if (index !== -1) {\r\n            this.notifications.splice(index, 1);\r\n        }\r\n    };\r\n    Notyf.prototype.normalizeOptions = function (type, payload) {\r\n        var options = { type: type };\r\n        if (typeof payload === 'string') {\r\n            options.message = payload;\r\n        }\r\n        else if (typeof payload === 'object') {\r\n            options = __assign(__assign({}, options), payload);\r\n        }\r\n        return options;\r\n    };\r\n    Notyf.prototype.registerTypes = function (opts) {\r\n        var incomingTypes = ((opts && opts.types) || []).slice();\r\n        var finalDefaultTypes = DEFAULT_OPTIONS.types.map(function (defaultType) {\r\n            // find if there's a default type within the user input's types, if so, it means the user\r\n            // wants to change some of the default settings\r\n            var userTypeIdx = -1;\r\n            incomingTypes.forEach(function (t, idx) {\r\n                if (t.type === defaultType.type)\r\n                    userTypeIdx = idx;\r\n            });\r\n            var userType = userTypeIdx !== -1 ? incomingTypes.splice(userTypeIdx, 1)[0] : {};\r\n            return __assign(__assign({}, defaultType), userType);\r\n        });\r\n        return finalDefaultTypes.concat(incomingTypes);\r\n    };\r\n    return Notyf;\r\n}());\n\nexport { DEFAULT_OPTIONS, Notyf, NotyfArray, NotyfArrayEvent, NotyfEvent, NotyfNotification, NotyfView };\n", "/**\n * based on https://lowrey.me/load-external-javascript-with-es6-promises/\n * @param url\n */\nexport const loadScript = (url: string) => new Promise((resolve, reject) => {\n    const script = document.createElement('script');\n    script.type = 'text/javascript';\n    script.src = url;\n    script.addEventListener('load', () => resolve(script), false);\n    script.addEventListener('error', () => reject(script), false);\n    document.body.appendChild(script);\n});\n\n/**\n * based on https://ourcodeworld.com/articles/read/630/how-to-detect-if-the-webp-image-format-is-supported-in-the-browser-with-javascript\n */\nexport const webPSupported = async (): Promise<boolean> => {\n    // if the browser doesn't have the method createImageBitmap, you can't display webp format\n    if (!window.createImageBitmap) return false;\n\n    // base64 representation of a white point image\n    const webpData = 'data:image/webp;base64,UklGRiQAAABXRUJQVlA4IBgAAAAwAQCdASoCAAEAAQAcJaQAA3AA/v3AgAA=';\n\n    // retrieve the image in blob format\n    const blob = await fetch(webpData).then(r => r.blob());\n\n    // if the createImageBitmap method succeeds, return true, otherwise false\n    return createImageBitmap(blob).then(() => true, () => false);\n};\n", "document.querySelectorAll('[data-href]').forEach((divLink: HTMLElement) => {\n    divLink.onclick = (): void => {\n        window.location.href = divLink.dataset.href;\n    };\n});\n", "const header = document.getElementById('header');\nconst burger = document.querySelector('.navigation-container .burger') as HTMLElement;\nconst metanav = document.getElementById('metanav');\nconst oldMetanavPos = metanav.parentElement;\nconst navbarmain = document.getElementById('mainnav');\n\nconst toggleNav = (): void => {\n    document.body.classList.toggle('menu-open');\n\n    if (document.body.classList.contains('menu-open')) {\n        navbarmain.after(metanav);\n    } else {\n        oldMetanavPos.insertAdjacentElement('afterbegin', metanav);\n    }\n}\n\n// mobile nav\nburger.addEventListener('click', () => toggleNav());\n\n// mobile subnav\nnavbarmain.querySelectorAll('.has-dropdown > li > a').forEach(dropdownTrigger => {\n    dropdownTrigger.addEventListener('click', e => {\n        if (document.body.classList.contains('menu-open')) {\n            e.preventDefault();\n            (e.target as HTMLElement).classList.toggle('is-active');\n        }\n    });\n});\n\n// onepager mobile nav\nif (window.pageId === 1 && document.documentElement.classList.contains('is-onepager')) {\n    navbarmain.querySelectorAll('a[href^=\"#\"]:not(.dropdown-parent)').forEach(link => {\n        link.addEventListener('click', () => {\n            if (document.body.classList.contains('menu-open')) {\n                toggleNav();\n            }\n        });\n    });\n}\n", "export class OnePager {\n    private pageOffsets: Record<string, number> = {};\n    private scrollTargets: NodeListOf<Element>;\n    private navLinks: NodeListOf<Element>;\n    private headerHeight: number;\n    private resizeTimeout: number;\n    private scrollTimeout: number;\n\n    constructor() {\n        this.scrollTargets = document.querySelectorAll('.scroll-target');\n        this.navLinks = document.querySelectorAll('.mainnav a[data-target]');\n        this.setSizes();\n        this.calculateActiveMainnav();\n\n        window.addEventListener('resize', () => {\n            clearTimeout(this.resizeTimeout);\n            this.resizeTimeout = setTimeout(() => {\n                this.setSizes();\n                this.calculateActiveMainnav();\n            }, 500);\n        });\n\n        document.addEventListener('scroll', () => {\n            clearTimeout(this.scrollTimeout);\n            this.calculateActiveMainnav();\n        });\n\n        document.querySelectorAll('a[href^=\"#\"]').forEach((link: HTMLAnchorElement) => {\n            link.addEventListener('click', e => {\n                const anchor = (e.target as HTMLElement).closest('a');\n                const id = anchor.href.split('#')[1];\n                window.history.pushState({ onepager: id }, '', `#${id}`);\n            });\n        });\n    }\n\n    private calculateActiveMainnav(): void {\n        let activeFound = false;\n        const reversedPageOffsets = Object.keys(this.pageOffsets).reverse();\n\n        // if scrolled to end set active for last element (used if last element is not high enough)\n        if (window.innerHeight + window.scrollY >= document.body.offsetHeight) {\n            this.setMainnavActive(reversedPageOffsets[0]);\n            activeFound = true;\n        } else {\n            for (const id of reversedPageOffsets) {\n                if (this.pageOffsets[id] <= window.scrollY + this.headerHeight + 10) {\n                    this.setMainnavActive(id);\n                    activeFound = true;\n                    break;\n                }\n            }\n        }\n\n        if (!activeFound) {\n            this.resetMainNav();\n        }\n    }\n\n    private setSizes(): void {\n        this.scrollTargets.forEach(page => {\n            this.pageOffsets[page.id] = this.getTopOffset(page);\n        });\n\n        this.headerHeight = document.getElementById('header').offsetHeight;\n    }\n\n    private getTopOffset(el: Element): number {\n        const rect = el.getBoundingClientRect();\n        const scrollTop = window.pageYOffset || document.documentElement.scrollTop;\n        return Math.round(rect.top + scrollTop);\n    }\n\n    private setMainnavActive(id: string): void {\n        const ele = Array.from(this.navLinks).find((a: HTMLAnchorElement) => !a.classList.contains('parent-link') && a.dataset.target === id);\n        if (ele === null || ele.classList.contains('is-active')) {\n            return;\n        }\n\n        this.resetMainNav();\n        ele.classList.add('is-active');\n        window.history.replaceState({ onepager: id }, '', `#${id}`);\n    }\n\n    private resetMainNav(): void {\n        this.navLinks.forEach(a => {\n            a.classList.remove('is-active');\n        });\n    }\n}\n\ndeclare global {\n    interface Window {\n        pageId: number;\n    }\n}\n\nif (window.pageId === 1 && document.documentElement.classList.contains('is-onepager')) {\n    const onePager = new OnePager();\n}\n", "import { loadScript } from './functions.ts';\n\n/**\n * loads a script and executes a callback\n * @param {string} url\n * @param {function} done\n */\nwindow.loadScriptLegacy = (url, done = () => {}) => {\n    const js = document.createElement('script');\n    // done = typeof done === 'undefined' ? () => {} : done;\n    js.src = url;\n    js.onload = () => done();\n    js.onerror = () => done(new Error(`Failed to load script ${url}`));\n    document.head.appendChild(js);\n};\n\n/**\n * this is called after polyfill.io script fetching is finished.\n */\nwindow.polyfillsLoaded = () => {\n    // load object-fit polyfill\n    if (!('objectFit' in document.documentElement.style)) {\n        loadScript('https://cdnjs.cloudflare.com/ajax/libs/object-fit-images/3.2.4/ofi.min.js').then(() => {\n            /* eslint-disable-next-line no-undef */\n            objectFitImages();\n        });\n    }\n\n    // more polyfills for ie11\n    if (/MSIE \\d|Trident.*rv:/.test(navigator.userAgent)) {\n        document.createElement('picture');\n        loadScript('https://cdn.rawgit.com/scottjehl/picturefill/3.0.2/dist/picturefill.min.js');\n        loadScript('https://cdn.jsdelivr.net/npm/ie11-custom-properties@4.1.0/ie11CustomProperties.min.js');\n    }\n\n    window.browserUpdate({\n        required: {\n            c: -3,\n            f: -3,\n            s: -2,\n            o: -3,\n            o_a: -3,\n            y: -3,\n            v: -2,\n            uc: -2,\n            ios: -2,\n            i: 0,\n        },\n        l: window.lang,\n        insecure: true,\n        reminder: 0,\n        reminderClosed: 1,\n    });\n};\n\nif (!window.Promise || !window.fetch || !window.Symbol) {\n    if (!('fetch' in window)) { // fetch polyfill\n        window.loadScriptLegacy('https://cdn.jsdelivr.net/npm/whatwg-fetch@3.0.0/dist/fetch.umd.min.js');\n    }\n\n    // load polyfills and call callback\n    window.loadScriptLegacy('https://polyfill.io/v3/polyfill.min.js?flags=gated&callback=polyfillsLoaded');\n}\n", "/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\nconst NODE_MODE = false;\n\n// Allows minifiers to rename references to globalThis\nconst global = globalThis;\n\n/**\n * Whether the current browser supports `adoptedStyleSheets`.\n */\nexport const supportsAdoptingStyleSheets: boolean =\n  global.ShadowRoot &&\n  (global.ShadyCSS === undefined || global.ShadyCSS.nativeShadow) &&\n  'adoptedStyleSheets' in Document.prototype &&\n  'replace' in CSSStyleSheet.prototype;\n\n/**\n * A CSSResult or native CSSStyleSheet.\n *\n * In browsers that support constructible CSS style sheets, CSSStyleSheet\n * object can be used for styling along side CSSResult from the `css`\n * template tag.\n */\nexport type CSSResultOrNative = CSSResult | CSSStyleSheet;\n\nexport type CSSResultArray = Array<CSSResultOrNative | CSSResultArray>;\n\n/**\n * A single CSSResult, CSSStyleSheet, or an array or nested arrays of those.\n */\nexport type CSSResultGroup = CSSResultOrNative | CSSResultArray;\n\nconst constructionToken = Symbol();\n\nconst cssTagCache = new WeakMap<TemplateStringsArray, CSSStyleSheet>();\n\n/**\n * A container for a string of CSS text, that may be used to create a CSSStyleSheet.\n *\n * CSSResult is the return value of `css`-tagged template literals and\n * `unsafeCSS()`. In order to ensure that CSSResults are only created via the\n * `css` tag and `unsafeCSS()`, CSSResult cannot be constructed directly.\n */\nexport class CSSResult {\n  // This property needs to remain unminified.\n  ['_$cssResult$'] = true;\n  readonly cssText: string;\n  private _styleSheet?: CSSStyleSheet;\n  private _strings: TemplateStringsArray | undefined;\n\n  private constructor(\n    cssText: string,\n    strings: TemplateStringsArray | undefined,\n    safeToken: symbol\n  ) {\n    if (safeToken !== constructionToken) {\n      throw new Error(\n        'CSSResult is not constructable. Use `unsafeCSS` or `css` instead.'\n      );\n    }\n    this.cssText = cssText;\n    this._strings = strings;\n  }\n\n  // This is a getter so that it's lazy. In practice, this means stylesheets\n  // are not created until the first element instance is made.\n  get styleSheet(): CSSStyleSheet | undefined {\n    // If `supportsAdoptingStyleSheets` is true then we assume CSSStyleSheet is\n    // constructable.\n    let styleSheet = this._styleSheet;\n    const strings = this._strings;\n    if (supportsAdoptingStyleSheets && styleSheet === undefined) {\n      const cacheable = strings !== undefined && strings.length === 1;\n      if (cacheable) {\n        styleSheet = cssTagCache.get(strings);\n      }\n      if (styleSheet === undefined) {\n        (this._styleSheet = styleSheet = new CSSStyleSheet()).replaceSync(\n          this.cssText\n        );\n        if (cacheable) {\n          cssTagCache.set(strings, styleSheet);\n        }\n      }\n    }\n    return styleSheet;\n  }\n\n  toString(): string {\n    return this.cssText;\n  }\n}\n\ntype ConstructableCSSResult = CSSResult & {\n  new (\n    cssText: string,\n    strings: TemplateStringsArray | undefined,\n    safeToken: symbol\n  ): CSSResult;\n};\n\nconst textFromCSSResult = (value: CSSResultGroup | number) => {\n  // This property needs to remain unminified.\n  if ((value as CSSResult)['_$cssResult$'] === true) {\n    return (value as CSSResult).cssText;\n  } else if (typeof value === 'number') {\n    return value;\n  } else {\n    throw new Error(\n      `Value passed to 'css' function must be a 'css' function result: ` +\n        `${value}. Use 'unsafeCSS' to pass non-literal values, but take care ` +\n        `to ensure page security.`\n    );\n  }\n};\n\n/**\n * Wrap a value for interpolation in a {@linkcode css} tagged template literal.\n *\n * This is unsafe because untrusted CSS text can be used to phone home\n * or exfiltrate data to an attacker controlled site. Take care to only use\n * this with trusted input.\n */\nexport const unsafeCSS = (value: unknown) =>\n  new (CSSResult as ConstructableCSSResult)(\n    typeof value === 'string' ? value : String(value),\n    undefined,\n    constructionToken\n  );\n\n/**\n * A template literal tag which can be used with LitElement's\n * {@linkcode LitElement.styles} property to set element styles.\n *\n * For security reasons, only literal string values and number may be used in\n * embedded expressions. To incorporate non-literal values {@linkcode unsafeCSS}\n * may be used inside an expression.\n */\nexport const css = (\n  strings: TemplateStringsArray,\n  ...values: (CSSResultGroup | number)[]\n): CSSResult => {\n  const cssText =\n    strings.length === 1\n      ? strings[0]\n      : values.reduce(\n          (acc, v, idx) => acc + textFromCSSResult(v) + strings[idx + 1],\n          strings[0]\n        );\n  return new (CSSResult as ConstructableCSSResult)(\n    cssText,\n    strings,\n    constructionToken\n  );\n};\n\n/**\n * Applies the given styles to a `shadowRoot`. When Shadow DOM is\n * available but `adoptedStyleSheets` is not, styles are appended to the\n * `shadowRoot` to [mimic the native feature](https://developer.mozilla.org/en-US/docs/Web/API/ShadowRoot/adoptedStyleSheets).\n * Note, when shimming is used, any styles that are subsequently placed into\n * the shadowRoot should be placed *before* any shimmed adopted styles. This\n * will match spec behavior that gives adopted sheets precedence over styles in\n * shadowRoot.\n */\nexport const adoptStyles = (\n  renderRoot: ShadowRoot,\n  styles: Array<CSSResultOrNative>\n) => {\n  if (supportsAdoptingStyleSheets) {\n    (renderRoot as ShadowRoot).adoptedStyleSheets = styles.map((s) =>\n      s instanceof CSSStyleSheet ? s : s.styleSheet!\n    );\n  } else {\n    for (const s of styles) {\n      const style = document.createElement('style');\n      // eslint-disable-next-line @typescript-eslint/no-explicit-any\n      const nonce = (global as any)['litNonce'];\n      if (nonce !== undefined) {\n        style.setAttribute('nonce', nonce);\n      }\n      style.textContent = (s as CSSResult).cssText;\n      renderRoot.appendChild(style);\n    }\n  }\n};\n\nconst cssResultFromStyleSheet = (sheet: CSSStyleSheet) => {\n  let cssText = '';\n  for (const rule of sheet.cssRules) {\n    cssText += rule.cssText;\n  }\n  return unsafeCSS(cssText);\n};\n\nexport const getCompatibleStyle =\n  supportsAdoptingStyleSheets ||\n  (NODE_MODE && global.CSSStyleSheet === undefined)\n    ? (s: CSSResultOrNative) => s\n    : (s: CSSResultOrNative) =>\n        s instanceof CSSStyleSheet ? cssResultFromStyleSheet(s) : s;\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/**\n * Use this module if you want to create your own base class extending\n * {@link ReactiveElement}.\n * @packageDocumentation\n */\n\nimport {\n  getCompatibleStyle,\n  adoptStyles,\n  CSSResultGroup,\n  CSSResultOrNative,\n} from './css-tag.js';\nimport type {\n  ReactiveController,\n  ReactiveControllerHost,\n} from './reactive-controller.js';\n\n// In the Node build, this import will be injected by Rollup:\n// import {HTMLElement, customElements} from '@lit-labs/ssr-dom-shim';\n\nexport * from './css-tag.js';\nexport type {\n  ReactiveController,\n  ReactiveControllerHost,\n} from './reactive-controller.js';\n\n/**\n * Removes the `readonly` modifier from properties in the union K.\n *\n * This is a safer way to cast a value to a type with a mutable version of a\n * readonly field, than casting to an interface with the field re-declared\n * because it preserves the type of all the fields and warns on typos.\n */\ntype Mutable<T, K extends keyof T> = Omit<T, K> & {\n  -readonly [P in keyof Pick<T, K>]: P extends K ? T[P] : never;\n};\n\n// TODO (justinfagnani): Add `hasOwn` here when we ship ES2022\nconst {\n  is,\n  defineProperty,\n  getOwnPropertyDescriptor,\n  getOwnPropertyNames,\n  getOwnPropertySymbols,\n  getPrototypeOf,\n} = Object;\n\nconst NODE_MODE = false;\n\n// Lets a minifier replace globalThis references with a minified name\nconst global = globalThis;\n\nif (NODE_MODE) {\n  global.customElements ??= customElements;\n}\n\nconst DEV_MODE = true;\n\nlet issueWarning: (code: string, warning: string) => void;\n\nconst trustedTypes = (global as unknown as {trustedTypes?: {emptyScript: ''}})\n  .trustedTypes;\n\n// Temporary workaround for https://crbug.com/993268\n// Currently, any attribute starting with \"on\" is considered to be a\n// TrustedScript source. Such boolean attributes must be set to the equivalent\n// trusted emptyScript value.\nconst emptyStringForBooleanAttribute = trustedTypes\n  ? (trustedTypes.emptyScript as unknown as '')\n  : '';\n\nconst polyfillSupport = DEV_MODE\n  ? global.reactiveElementPolyfillSupportDevMode\n  : global.reactiveElementPolyfillSupport;\n\nif (DEV_MODE) {\n  // Ensure warnings are issued only 1x, even if multiple versions of Lit\n  // are loaded.\n  global.litIssuedWarnings ??= new Set();\n\n  /**\n   * Issue a warning if we haven't already, based either on `code` or `warning`.\n   * Warnings are disabled automatically only by `warning`; disabling via `code`\n   * can be done by users.\n   */\n  issueWarning = (code: string, warning: string) => {\n    warning += ` See https://lit.dev/msg/${code} for more information.`;\n    if (\n      !global.litIssuedWarnings!.has(warning) &&\n      !global.litIssuedWarnings!.has(code)\n    ) {\n      console.warn(warning);\n      global.litIssuedWarnings!.add(warning);\n    }\n  };\n\n  queueMicrotask(() => {\n    issueWarning(\n      'dev-mode',\n      `Lit is in dev mode. Not recommended for production!`\n    );\n\n    // Issue polyfill support warning.\n    if (global.ShadyDOM?.inUse && polyfillSupport === undefined) {\n      issueWarning(\n        'polyfill-support-missing',\n        `Shadow DOM is being polyfilled via \\`ShadyDOM\\` but ` +\n          `the \\`polyfill-support\\` module has not been loaded.`\n      );\n    }\n  });\n}\n\n/**\n * Contains types that are part of the unstable debug API.\n *\n * Everything in this API is not stable and may change or be removed in the future,\n * even on patch releases.\n */\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace ReactiveUnstable {\n  /**\n   * When Lit is running in dev mode and `window.emitLitDebugLogEvents` is true,\n   * we will emit 'lit-debug' events to window, with live details about the update and render\n   * lifecycle. These can be useful for writing debug tooling and visualizations.\n   *\n   * Please be aware that running with window.emitLitDebugLogEvents has performance overhead,\n   * making certain operations that are normally very cheap (like a no-op render) much slower,\n   * because we must copy data and dispatch events.\n   */\n  // eslint-disable-next-line @typescript-eslint/no-namespace\n  export namespace DebugLog {\n    export type Entry = Update;\n    export interface Update {\n      kind: 'update';\n    }\n  }\n}\n\ninterface DebugLoggingWindow {\n  // Even in dev mode, we generally don't want to emit these events, as that's\n  // another level of cost, so only emit them when DEV_MODE is true _and_ when\n  // window.emitLitDebugEvents is true.\n  emitLitDebugLogEvents?: boolean;\n}\n\n/**\n * Useful for visualizing and logging insights into what the Lit template system is doing.\n *\n * Compiled out of prod mode builds.\n */\nconst debugLogEvent = DEV_MODE\n  ? (event: ReactiveUnstable.DebugLog.Entry) => {\n      const shouldEmit = (global as unknown as DebugLoggingWindow)\n        .emitLitDebugLogEvents;\n      if (!shouldEmit) {\n        return;\n      }\n      global.dispatchEvent(\n        new CustomEvent<ReactiveUnstable.DebugLog.Entry>('lit-debug', {\n          detail: event,\n        })\n      );\n    }\n  : undefined;\n\n/*\n * When using Closure Compiler, JSCompiler_renameProperty(property, object) is\n * replaced at compile time by the munged name for object[property]. We cannot\n * alias this function, so we have to use a small shim that has the same\n * behavior when not compiling.\n */\n/*@__INLINE__*/\nconst JSCompiler_renameProperty = <P extends PropertyKey>(\n  prop: P,\n  _obj: unknown\n): P => prop;\n\n/**\n * Converts property values to and from attribute values.\n */\nexport interface ComplexAttributeConverter<Type = unknown, TypeHint = unknown> {\n  /**\n   * Called to convert an attribute value to a property\n   * value.\n   */\n  fromAttribute?(value: string | null, type?: TypeHint): Type;\n\n  /**\n   * Called to convert a property value to an attribute\n   * value.\n   *\n   * It returns unknown instead of string, to be compatible with\n   * https://github.com/WICG/trusted-types (and similar efforts).\n   */\n  toAttribute?(value: Type, type?: TypeHint): unknown;\n}\n\ntype AttributeConverter<Type = unknown, TypeHint = unknown> =\n  | ComplexAttributeConverter<Type>\n  | ((value: string | null, type?: TypeHint) => Type);\n\n/**\n * Defines options for a property accessor.\n */\nexport interface PropertyDeclaration<Type = unknown, TypeHint = unknown> {\n  /**\n   * When set to `true`, indicates the property is internal private state. The\n   * property should not be set by users. When using TypeScript, this property\n   * should be marked as `private` or `protected`, and it is also a common\n   * practice to use a leading `_` in the name. The property is not added to\n   * `observedAttributes`.\n   */\n  readonly state?: boolean;\n\n  /**\n   * Indicates how and whether the property becomes an observed attribute.\n   * If the value is `false`, the property is not added to `observedAttributes`.\n   * If true or absent, the lowercased property name is observed (e.g. `fooBar`\n   * becomes `foobar`). If a string, the string value is observed (e.g\n   * `attribute: 'foo-bar'`).\n   */\n  readonly attribute?: boolean | string;\n\n  /**\n   * Indicates the type of the property. This is used only as a hint for the\n   * `converter` to determine how to convert the attribute\n   * to/from a property.\n   */\n  readonly type?: TypeHint;\n\n  /**\n   * Indicates how to convert the attribute to/from a property. If this value\n   * is a function, it is used to convert the attribute value a the property\n   * value. If it's an object, it can have keys for `fromAttribute` and\n   * `toAttribute`. If no `toAttribute` function is provided and\n   * `reflect` is set to `true`, the property value is set directly to the\n   * attribute. A default `converter` is used if none is provided; it supports\n   * `Boolean`, `String`, `Number`, `Object`, and `Array`. Note,\n   * when a property changes and the converter is used to update the attribute,\n   * the property is never updated again as a result of the attribute changing,\n   * and vice versa.\n   */\n  readonly converter?: AttributeConverter<Type, TypeHint>;\n\n  /**\n   * Indicates if the property should reflect to an attribute.\n   * If `true`, when the property is set, the attribute is set using the\n   * attribute name determined according to the rules for the `attribute`\n   * property option and the value of the property converted using the rules\n   * from the `converter` property option.\n   */\n  readonly reflect?: boolean;\n\n  /**\n   * A function that indicates if a property should be considered changed when\n   * it is set. The function should take the `newValue` and `oldValue` and\n   * return `true` if an update should be requested.\n   */\n  hasChanged?(value: Type, oldValue: Type): boolean;\n\n  /**\n   * Indicates whether an accessor will be created for this property. By\n   * default, an accessor will be generated for this property that requests an\n   * update when set. If this flag is `true`, no accessor will be created, and\n   * it will be the user's responsibility to call\n   * `this.requestUpdate(propertyName, oldValue)` to request an update when\n   * the property changes.\n   */\n  readonly noAccessor?: boolean;\n\n  /**\n   * Whether this property is wrapping accessors. This is set by `@property`\n   * to control the initial value change and reflection logic.\n   *\n   * @internal\n   */\n  wrapped?: boolean;\n\n  /**\n   * When `true`, uses the initial value of the property as the default value,\n   * which changes how attributes are handled:\n   *  - The initial value does *not* reflect, even if the `reflect` option is `true`.\n   *    Subsequent changes to the property will reflect, even if they are equal to the\n   *     default value.\n   *  - When the attribute is removed, the property is set to the default value\n   *  - The initial value will not trigger an old value in the `changedProperties` map\n   *    argument to update lifecycle methods.\n   *\n   * When set, properties must be initialized, either with a field initializer, or an\n   * assignment in the constructor. Not initializing the property may lead to\n   * improper handling of subsequent property assignments.\n   *\n   * While this behavior is opt-in, most properties that reflect to attributes should\n   * use `useDefault: true` so that their initial values do not reflect.\n   */\n  useDefault?: boolean;\n}\n\n/**\n * Map of properties to PropertyDeclaration options. For each property an\n * accessor is made, and the property is processed according to the\n * PropertyDeclaration options.\n */\nexport interface PropertyDeclarations {\n  readonly [key: string]: PropertyDeclaration;\n}\n\ntype PropertyDeclarationMap = Map<PropertyKey, PropertyDeclaration>;\n\ntype AttributeMap = Map<string, PropertyKey>;\n\n/**\n * A Map of property keys to values.\n *\n * Takes an optional type parameter T, which when specified as a non-any,\n * non-unknown type, will make the Map more strongly-typed, associating the map\n * keys with their corresponding value type on T.\n *\n * Use `PropertyValues<this>` when overriding ReactiveElement.update() and\n * other lifecycle methods in order to get stronger type-checking on keys\n * and values.\n */\n// This type is conditional so that if the parameter T is not specified, or\n// is `any`, the type will include `Map<PropertyKey, unknown>`. Since T is not\n// given in the uses of PropertyValues in this file, all uses here fallback to\n// meaning `Map<PropertyKey, unknown>`, but if a developer uses\n// `PropertyValues<this>` (or any other value for T) they will get a\n// strongly-typed Map type.\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type PropertyValues<T = any> = T extends object\n  ? PropertyValueMap<T>\n  : Map<PropertyKey, unknown>;\n\n/**\n * Do not use, instead prefer {@linkcode PropertyValues}.\n */\n// This type must be exported such that JavaScript generated by the Google\n// Closure Compiler can import a type reference.\nexport interface PropertyValueMap<T> extends Map<PropertyKey, unknown> {\n  get<K extends keyof T>(k: K): T[K] | undefined;\n  set<K extends keyof T>(key: K, value: T[K]): this;\n  has<K extends keyof T>(k: K): boolean;\n  delete<K extends keyof T>(k: K): boolean;\n}\n\nexport const defaultConverter: ComplexAttributeConverter = {\n  toAttribute(value: unknown, type?: unknown): unknown {\n    switch (type) {\n      case Boolean:\n        value = value ? emptyStringForBooleanAttribute : null;\n        break;\n      case Object:\n      case Array:\n        // if the value is `null` or `undefined` pass this through\n        // to allow removing/no change behavior.\n        value = value == null ? value : JSON.stringify(value);\n        break;\n    }\n    return value;\n  },\n\n  fromAttribute(value: string | null, type?: unknown) {\n    let fromValue: unknown = value;\n    switch (type) {\n      case Boolean:\n        fromValue = value !== null;\n        break;\n      case Number:\n        fromValue = value === null ? null : Number(value);\n        break;\n      case Object:\n      case Array:\n        // Do *not* generate exception when invalid JSON is set as elements\n        // don't normally complain on being mis-configured.\n        // TODO(sorvell): Do generate exception in *dev mode*.\n        try {\n          // Assert to adhere to Bazel's \"must type assert JSON parse\" rule.\n          fromValue = JSON.parse(value!) as unknown;\n        } catch (e) {\n          fromValue = null;\n        }\n        break;\n    }\n    return fromValue;\n  },\n};\n\nexport interface HasChanged {\n  (value: unknown, old: unknown): boolean;\n}\n\n/**\n * Change function that returns true if `value` is different from `oldValue`.\n * This method is used as the default for a property's `hasChanged` function.\n */\nexport const notEqual: HasChanged = (value: unknown, old: unknown): boolean =>\n  !is(value, old);\n\nconst defaultPropertyDeclaration: PropertyDeclaration = {\n  attribute: true,\n  type: String,\n  converter: defaultConverter,\n  reflect: false,\n  useDefault: false,\n  hasChanged: notEqual,\n};\n\n/**\n * A string representing one of the supported dev mode warning categories.\n */\nexport type WarningKind =\n  | 'change-in-update'\n  | 'migration'\n  | 'async-perform-update';\n\nexport type Initializer = (element: ReactiveElement) => void;\n\n// Temporary, until google3 is on TypeScript 5.2\ndeclare global {\n  interface SymbolConstructor {\n    readonly metadata: unique symbol;\n  }\n}\n\n// Ensure metadata is enabled. TypeScript does not polyfill\n// Symbol.metadata, so we must ensure that it exists.\n(Symbol as {metadata: symbol}).metadata ??= Symbol('metadata');\n\ndeclare global {\n  // This is public global API, do not change!\n  // eslint-disable-next-line no-var\n  var litPropertyMetadata: WeakMap<\n    object,\n    Map<PropertyKey, PropertyDeclaration>\n  >;\n}\n\n// Map from a class's metadata object to property options\n// Note that we must use nullish-coalescing assignment so that we only use one\n// map even if we load multiple version of this module.\nglobal.litPropertyMetadata ??= new WeakMap<\n  object,\n  Map<PropertyKey, PropertyDeclaration>\n>();\n\n/**\n * Base element class which manages element properties and attributes. When\n * properties change, the `update` method is asynchronously called. This method\n * should be supplied by subclasses to render updates as desired.\n * @noInheritDoc\n */\nexport abstract class ReactiveElement\n  // In the Node build, this `extends` clause will be substituted with\n  // `(globalThis.HTMLElement ?? HTMLElement)`.\n  //\n  // This way, we will first prefer any global `HTMLElement` polyfill that the\n  // user has assigned, and then fall back to the `HTMLElement` shim which has\n  // been imported (see note at the top of this file about how this import is\n  // generated by Rollup). Note that the `HTMLElement` variable has been\n  // shadowed by this import, so it no longer refers to the global.\n  extends HTMLElement\n  implements ReactiveControllerHost\n{\n  // Note: these are patched in only in DEV_MODE.\n  /**\n   * Read or set all the enabled warning categories for this class.\n   *\n   * This property is only used in development builds.\n   *\n   * @nocollapse\n   * @category dev-mode\n   */\n  static enabledWarnings?: WarningKind[];\n\n  /**\n   * Enable the given warning category for this class.\n   *\n   * This method only exists in development builds, so it should be accessed\n   * with a guard like:\n   *\n   * ```ts\n   * // Enable for all ReactiveElement subclasses\n   * ReactiveElement.enableWarning?.('migration');\n   *\n   * // Enable for only MyElement and subclasses\n   * MyElement.enableWarning?.('migration');\n   * ```\n   *\n   * @nocollapse\n   * @category dev-mode\n   */\n  static enableWarning?: (warningKind: WarningKind) => void;\n\n  /**\n   * Disable the given warning category for this class.\n   *\n   * This method only exists in development builds, so it should be accessed\n   * with a guard like:\n   *\n   * ```ts\n   * // Disable for all ReactiveElement subclasses\n   * ReactiveElement.disableWarning?.('migration');\n   *\n   * // Disable for only MyElement and subclasses\n   * MyElement.disableWarning?.('migration');\n   * ```\n   *\n   * @nocollapse\n   * @category dev-mode\n   */\n  static disableWarning?: (warningKind: WarningKind) => void;\n\n  /**\n   * Adds an initializer function to the class that is called during instance\n   * construction.\n   *\n   * This is useful for code that runs against a `ReactiveElement`\n   * subclass, such as a decorator, that needs to do work for each\n   * instance, such as setting up a `ReactiveController`.\n   *\n   * ```ts\n   * const myDecorator = (target: typeof ReactiveElement, key: string) => {\n   *   target.addInitializer((instance: ReactiveElement) => {\n   *     // This is run during construction of the element\n   *     new MyController(instance);\n   *   });\n   * }\n   * ```\n   *\n   * Decorating a field will then cause each instance to run an initializer\n   * that adds a controller:\n   *\n   * ```ts\n   * class MyElement extends LitElement {\n   *   @myDecorator foo;\n   * }\n   * ```\n   *\n   * Initializers are stored per-constructor. Adding an initializer to a\n   * subclass does not add it to a superclass. Since initializers are run in\n   * constructors, initializers will run in order of the class hierarchy,\n   * starting with superclasses and progressing to the instance's class.\n   *\n   * @nocollapse\n   */\n  static addInitializer(initializer: Initializer) {\n    this.__prepare();\n    (this._initializers ??= []).push(initializer);\n  }\n\n  static _initializers?: Initializer[];\n\n  /*\n   * Due to closure compiler ES6 compilation bugs, @nocollapse is required on\n   * all static methods and properties with initializers.  Reference:\n   * - https://github.com/google/closure-compiler/issues/1776\n   */\n\n  /**\n   * Maps attribute names to properties; for example `foobar` attribute to\n   * `fooBar` property. Created lazily on user subclasses when finalizing the\n   * class.\n   * @nocollapse\n   */\n  private static __attributeToPropertyMap: AttributeMap;\n\n  /**\n   * Marks class as having been finalized, which includes creating properties\n   * from `static properties`, but does *not* include all properties created\n   * from decorators.\n   * @nocollapse\n   */\n  protected static finalized: true | undefined;\n\n  /**\n   * Memoized list of all element properties, including any superclass\n   * properties. Created lazily on user subclasses when finalizing the class.\n   *\n   * @nocollapse\n   * @category properties\n   */\n  static elementProperties: PropertyDeclarationMap;\n\n  /**\n   * User-supplied object that maps property names to `PropertyDeclaration`\n   * objects containing options for configuring reactive properties. When\n   * a reactive property is set the element will update and render.\n   *\n   * By default properties are public fields, and as such, they should be\n   * considered as primarily settable by element users, either via attribute or\n   * the property itself.\n   *\n   * Generally, properties that are changed by the element should be private or\n   * protected fields and should use the `state: true` option. Properties\n   * marked as `state` do not reflect from the corresponding attribute\n   *\n   * However, sometimes element code does need to set a public property. This\n   * should typically only be done in response to user interaction, and an event\n   * should be fired informing the user; for example, a checkbox sets its\n   * `checked` property when clicked and fires a `changed` event. Mutating\n   * public properties should typically not be done for non-primitive (object or\n   * array) properties. In other cases when an element needs to manage state, a\n   * private property set with the `state: true` option should be used. When\n   * needed, state properties can be initialized via public properties to\n   * facilitate complex interactions.\n   * @nocollapse\n   * @category properties\n   */\n  static properties: PropertyDeclarations;\n\n  /**\n   * Memoized list of all element styles.\n   * Created lazily on user subclasses when finalizing the class.\n   * @nocollapse\n   * @category styles\n   */\n  static elementStyles: Array<CSSResultOrNative> = [];\n\n  /**\n   * Array of styles to apply to the element. The styles should be defined\n   * using the {@linkcode css} tag function, via constructible stylesheets, or\n   * imported from native CSS module scripts.\n   *\n   * Note on Content Security Policy:\n   *\n   * Element styles are implemented with `<style>` tags when the browser doesn't\n   * support adopted StyleSheets. To use such `<style>` tags with the style-src\n   * CSP directive, the style-src value must either include 'unsafe-inline' or\n   * `nonce-<base64-value>` with `<base64-value>` replaced be a server-generated\n   * nonce.\n   *\n   * To provide a nonce to use on generated `<style>` elements, set\n   * `window.litNonce` to a server-generated nonce in your page's HTML, before\n   * loading application code:\n   *\n   * ```html\n   * <script>\n   *   // Generated and unique per request:\n   *   window.litNonce = 'a1b2c3d4';\n   * </script>\n   * ```\n   * @nocollapse\n   * @category styles\n   */\n  static styles?: CSSResultGroup;\n\n  /**\n   * Returns a list of attributes corresponding to the registered properties.\n   * @nocollapse\n   * @category attributes\n   */\n  static get observedAttributes() {\n    // Ensure we've created all properties\n    this.finalize();\n    // this.__attributeToPropertyMap is only undefined after finalize() in\n    // ReactiveElement itself. ReactiveElement.observedAttributes is only\n    // accessed with ReactiveElement as the receiver when a subclass or mixin\n    // calls super.observedAttributes\n    return (\n      this.__attributeToPropertyMap && [...this.__attributeToPropertyMap.keys()]\n    );\n  }\n\n  private __instanceProperties?: PropertyValues = undefined;\n\n  /**\n   * Creates a property accessor on the element prototype if one does not exist\n   * and stores a {@linkcode PropertyDeclaration} for the property with the\n   * given options. The property setter calls the property's `hasChanged`\n   * property option or uses a strict identity check to determine whether or not\n   * to request an update.\n   *\n   * This method may be overridden to customize properties; however,\n   * when doing so, it's important to call `super.createProperty` to ensure\n   * the property is setup correctly. This method calls\n   * `getPropertyDescriptor` internally to get a descriptor to install.\n   * To customize what properties do when they are get or set, override\n   * `getPropertyDescriptor`. To customize the options for a property,\n   * implement `createProperty` like this:\n   *\n   * ```ts\n   * static createProperty(name, options) {\n   *   options = Object.assign(options, {myOption: true});\n   *   super.createProperty(name, options);\n   * }\n   * ```\n   *\n   * @nocollapse\n   * @category properties\n   */\n  static createProperty(\n    name: PropertyKey,\n    options: PropertyDeclaration = defaultPropertyDeclaration\n  ) {\n    // If this is a state property, force the attribute to false.\n    if (options.state) {\n      (options as Mutable<PropertyDeclaration, 'attribute'>).attribute = false;\n    }\n    this.__prepare();\n    // Whether this property is wrapping accessors.\n    // Helps control the initial value change and reflection logic.\n    if (this.prototype.hasOwnProperty(name)) {\n      options = Object.create(options);\n      options.wrapped = true;\n    }\n    this.elementProperties.set(name, options);\n    if (!options.noAccessor) {\n      const key = DEV_MODE\n        ? // Use Symbol.for in dev mode to make it easier to maintain state\n          // when doing HMR.\n          Symbol.for(`${String(name)} (@property() cache)`)\n        : Symbol();\n      const descriptor = this.getPropertyDescriptor(name, key, options);\n      if (descriptor !== undefined) {\n        defineProperty(this.prototype, name, descriptor);\n      }\n    }\n  }\n\n  /**\n   * Returns a property descriptor to be defined on the given named property.\n   * If no descriptor is returned, the property will not become an accessor.\n   * For example,\n   *\n   * ```ts\n   * class MyElement extends LitElement {\n   *   static getPropertyDescriptor(name, key, options) {\n   *     const defaultDescriptor =\n   *         super.getPropertyDescriptor(name, key, options);\n   *     const setter = defaultDescriptor.set;\n   *     return {\n   *       get: defaultDescriptor.get,\n   *       set(value) {\n   *         setter.call(this, value);\n   *         // custom action.\n   *       },\n   *       configurable: true,\n   *       enumerable: true\n   *     }\n   *   }\n   * }\n   * ```\n   *\n   * @nocollapse\n   * @category properties\n   */\n  protected static getPropertyDescriptor(\n    name: PropertyKey,\n    key: string | symbol,\n    options: PropertyDeclaration\n  ): PropertyDescriptor | undefined {\n    const {get, set} = getOwnPropertyDescriptor(this.prototype, name) ?? {\n      get(this: ReactiveElement) {\n        return this[key as keyof typeof this];\n      },\n      set(this: ReactiveElement, v: unknown) {\n        (this as unknown as Record<string | symbol, unknown>)[key] = v;\n      },\n    };\n    if (DEV_MODE && get == null) {\n      if ('value' in (getOwnPropertyDescriptor(this.prototype, name) ?? {})) {\n        throw new Error(\n          `Field ${JSON.stringify(String(name))} on ` +\n            `${this.name} was declared as a reactive property ` +\n            `but it's actually declared as a value on the prototype. ` +\n            `Usually this is due to using @property or @state on a method.`\n        );\n      }\n      issueWarning(\n        'reactive-property-without-getter',\n        `Field ${JSON.stringify(String(name))} on ` +\n          `${this.name} was declared as a reactive property ` +\n          `but it does not have a getter. This will be an error in a ` +\n          `future version of Lit.`\n      );\n    }\n    return {\n      get,\n      set(this: ReactiveElement, value: unknown) {\n        const oldValue = get?.call(this);\n        set?.call(this, value);\n        this.requestUpdate(name, oldValue, options);\n      },\n      configurable: true,\n      enumerable: true,\n    };\n  }\n\n  /**\n   * Returns the property options associated with the given property.\n   * These options are defined with a `PropertyDeclaration` via the `properties`\n   * object or the `@property` decorator and are registered in\n   * `createProperty(...)`.\n   *\n   * Note, this method should be considered \"final\" and not overridden. To\n   * customize the options for a given property, override\n   * {@linkcode createProperty}.\n   *\n   * @nocollapse\n   * @final\n   * @category properties\n   */\n  static getPropertyOptions(name: PropertyKey) {\n    return this.elementProperties.get(name) ?? defaultPropertyDeclaration;\n  }\n\n  // Temporary, until google3 is on TypeScript 5.2\n  declare static [Symbol.metadata]: object & Record<PropertyKey, unknown>;\n\n  /**\n   * Initializes static own properties of the class used in bookkeeping\n   * for element properties, initializers, etc.\n   *\n   * Can be called multiple times by code that needs to ensure these\n   * properties exist before using them.\n   *\n   * This method ensures the superclass is finalized so that inherited\n   * property metadata can be copied down.\n   * @nocollapse\n   */\n  private static __prepare() {\n    if (\n      this.hasOwnProperty(JSCompiler_renameProperty('elementProperties', this))\n    ) {\n      // Already prepared\n      return;\n    }\n    // Finalize any superclasses\n    const superCtor = getPrototypeOf(this) as typeof ReactiveElement;\n    superCtor.finalize();\n\n    // Create own set of initializers for this class if any exist on the\n    // superclass and copy them down. Note, for a small perf boost, avoid\n    // creating initializers unless needed.\n    if (superCtor._initializers !== undefined) {\n      this._initializers = [...superCtor._initializers];\n    }\n    // Initialize elementProperties from the superclass\n    this.elementProperties = new Map(superCtor.elementProperties);\n  }\n\n  /**\n   * Finishes setting up the class so that it's ready to be registered\n   * as a custom element and instantiated.\n   *\n   * This method is called by the ReactiveElement.observedAttributes getter.\n   * If you override the observedAttributes getter, you must either call\n   * super.observedAttributes to trigger finalization, or call finalize()\n   * yourself.\n   *\n   * @nocollapse\n   */\n  protected static finalize() {\n    if (this.hasOwnProperty(JSCompiler_renameProperty('finalized', this))) {\n      return;\n    }\n    this.finalized = true;\n    this.__prepare();\n\n    // Create properties from the static properties block:\n    if (this.hasOwnProperty(JSCompiler_renameProperty('properties', this))) {\n      const props = this.properties;\n      const propKeys = [\n        ...getOwnPropertyNames(props),\n        ...getOwnPropertySymbols(props),\n      ] as Array<keyof typeof props>;\n      for (const p of propKeys) {\n        this.createProperty(p, props[p]);\n      }\n    }\n\n    // Create properties from standard decorator metadata:\n    const metadata = this[Symbol.metadata];\n    if (metadata !== null) {\n      const properties = litPropertyMetadata.get(metadata);\n      if (properties !== undefined) {\n        for (const [p, options] of properties) {\n          this.elementProperties.set(p, options);\n        }\n      }\n    }\n\n    // Create the attribute-to-property map\n    this.__attributeToPropertyMap = new Map();\n    for (const [p, options] of this.elementProperties) {\n      const attr = this.__attributeNameForProperty(p, options);\n      if (attr !== undefined) {\n        this.__attributeToPropertyMap.set(attr, p);\n      }\n    }\n\n    this.elementStyles = this.finalizeStyles(this.styles);\n\n    if (DEV_MODE) {\n      if (this.hasOwnProperty('createProperty')) {\n        issueWarning(\n          'no-override-create-property',\n          'Overriding ReactiveElement.createProperty() is deprecated. ' +\n            'The override will not be called with standard decorators'\n        );\n      }\n      if (this.hasOwnProperty('getPropertyDescriptor')) {\n        issueWarning(\n          'no-override-get-property-descriptor',\n          'Overriding ReactiveElement.getPropertyDescriptor() is deprecated. ' +\n            'The override will not be called with standard decorators'\n        );\n      }\n    }\n  }\n\n  /**\n   * Options used when calling `attachShadow`. Set this property to customize\n   * the options for the shadowRoot; for example, to create a closed\n   * shadowRoot: `{mode: 'closed'}`.\n   *\n   * Note, these options are used in `createRenderRoot`. If this method\n   * is customized, options should be respected if possible.\n   * @nocollapse\n   * @category rendering\n   */\n  static shadowRootOptions: ShadowRootInit = {mode: 'open'};\n\n  /**\n   * Takes the styles the user supplied via the `static styles` property and\n   * returns the array of styles to apply to the element.\n   * Override this method to integrate into a style management system.\n   *\n   * Styles are deduplicated preserving the _last_ instance in the list. This\n   * is a performance optimization to avoid duplicated styles that can occur\n   * especially when composing via subclassing. The last item is kept to try\n   * to preserve the cascade order with the assumption that it's most important\n   * that last added styles override previous styles.\n   *\n   * @nocollapse\n   * @category styles\n   */\n  protected static finalizeStyles(\n    styles?: CSSResultGroup\n  ): Array<CSSResultOrNative> {\n    const elementStyles = [];\n    if (Array.isArray(styles)) {\n      // Dedupe the flattened array in reverse order to preserve the last items.\n      // Casting to Array<unknown> works around TS error that\n      // appears to come from trying to flatten a type CSSResultArray.\n      const set = new Set((styles as Array<unknown>).flat(Infinity).reverse());\n      // Then preserve original order by adding the set items in reverse order.\n      for (const s of set) {\n        elementStyles.unshift(getCompatibleStyle(s as CSSResultOrNative));\n      }\n    } else if (styles !== undefined) {\n      elementStyles.push(getCompatibleStyle(styles));\n    }\n    return elementStyles;\n  }\n\n  /**\n   * Node or ShadowRoot into which element DOM should be rendered. Defaults\n   * to an open shadowRoot.\n   * @category rendering\n   */\n  readonly renderRoot!: HTMLElement | DocumentFragment;\n\n  /**\n   * Returns the property name for the given attribute `name`.\n   * @nocollapse\n   */\n  private static __attributeNameForProperty(\n    name: PropertyKey,\n    options: PropertyDeclaration\n  ) {\n    const attribute = options.attribute;\n    return attribute === false\n      ? undefined\n      : typeof attribute === 'string'\n        ? attribute\n        : typeof name === 'string'\n          ? name.toLowerCase()\n          : undefined;\n  }\n\n  // Initialize to an unresolved Promise so we can make sure the element has\n  // connected before first update.\n  private __updatePromise!: Promise<boolean>;\n\n  /**\n   * True if there is a pending update as a result of calling `requestUpdate()`.\n   * Should only be read.\n   * @category updates\n   */\n  isUpdatePending = false;\n\n  /**\n   * Is set to `true` after the first update. The element code cannot assume\n   * that `renderRoot` exists before the element `hasUpdated`.\n   * @category updates\n   */\n  hasUpdated = false;\n\n  /**\n   * Map with keys for any properties that have changed since the last\n   * update cycle with previous values.\n   *\n   * @internal\n   */\n  _$changedProperties!: PropertyValues;\n\n  /**\n   * Records property default values when the\n   * `useDefault` option is used.\n   */\n  private __defaultValues?: Map<PropertyKey, unknown>;\n\n  /**\n   * Properties that should be reflected when updated.\n   */\n  private __reflectingProperties?: Set<PropertyKey>;\n\n  /**\n   * Name of currently reflecting property\n   */\n  private __reflectingProperty: PropertyKey | null = null;\n\n  /**\n   * Set of controllers.\n   */\n  private __controllers?: Set<ReactiveController>;\n\n  constructor() {\n    super();\n    this.__initialize();\n  }\n\n  /**\n   * Internal only override point for customizing work done when elements\n   * are constructed.\n   */\n  private __initialize() {\n    this.__updatePromise = new Promise<boolean>(\n      (res) => (this.enableUpdating = res)\n    );\n    this._$changedProperties = new Map();\n    // This enqueues a microtask that must run before the first update, so it\n    // must be called before requestUpdate()\n    this.__saveInstanceProperties();\n    // ensures first update will be caught by an early access of\n    // `updateComplete`\n    this.requestUpdate();\n    (this.constructor as typeof ReactiveElement)._initializers?.forEach((i) =>\n      i(this)\n    );\n  }\n\n  /**\n   * Registers a `ReactiveController` to participate in the element's reactive\n   * update cycle. The element automatically calls into any registered\n   * controllers during its lifecycle callbacks.\n   *\n   * If the element is connected when `addController()` is called, the\n   * controller's `hostConnected()` callback will be immediately called.\n   * @category controllers\n   */\n  addController(controller: ReactiveController) {\n    (this.__controllers ??= new Set()).add(controller);\n    // If a controller is added after the element has been connected,\n    // call hostConnected. Note, re-using existence of `renderRoot` here\n    // (which is set in connectedCallback) to avoid the need to track a\n    // first connected state.\n    if (this.renderRoot !== undefined && this.isConnected) {\n      controller.hostConnected?.();\n    }\n  }\n\n  /**\n   * Removes a `ReactiveController` from the element.\n   * @category controllers\n   */\n  removeController(controller: ReactiveController) {\n    this.__controllers?.delete(controller);\n  }\n\n  /**\n   * Fixes any properties set on the instance before upgrade time.\n   * Otherwise these would shadow the accessor and break these properties.\n   * The properties are stored in a Map which is played back after the\n   * constructor runs.\n   */\n  private __saveInstanceProperties() {\n    const instanceProperties = new Map<PropertyKey, unknown>();\n    const elementProperties = (this.constructor as typeof ReactiveElement)\n      .elementProperties;\n    for (const p of elementProperties.keys() as IterableIterator<keyof this>) {\n      if (this.hasOwnProperty(p)) {\n        instanceProperties.set(p, this[p]);\n        delete this[p];\n      }\n    }\n    if (instanceProperties.size > 0) {\n      this.__instanceProperties = instanceProperties;\n    }\n  }\n\n  /**\n   * Returns the node into which the element should render and by default\n   * creates and returns an open shadowRoot. Implement to customize where the\n   * element's DOM is rendered. For example, to render into the element's\n   * childNodes, return `this`.\n   *\n   * @return Returns a node into which to render.\n   * @category rendering\n   */\n  protected createRenderRoot(): HTMLElement | DocumentFragment {\n    const renderRoot =\n      this.shadowRoot ??\n      this.attachShadow(\n        (this.constructor as typeof ReactiveElement).shadowRootOptions\n      );\n    adoptStyles(\n      renderRoot,\n      (this.constructor as typeof ReactiveElement).elementStyles\n    );\n    return renderRoot;\n  }\n\n  /**\n   * On first connection, creates the element's renderRoot, sets up\n   * element styling, and enables updating.\n   * @category lifecycle\n   */\n  connectedCallback() {\n    // Create renderRoot before controllers `hostConnected`\n    (this as Mutable<typeof this, 'renderRoot'>).renderRoot ??=\n      this.createRenderRoot();\n    this.enableUpdating(true);\n    this.__controllers?.forEach((c) => c.hostConnected?.());\n  }\n\n  /**\n   * Note, this method should be considered final and not overridden. It is\n   * overridden on the element instance with a function that triggers the first\n   * update.\n   * @category updates\n   */\n  protected enableUpdating(_requestedUpdate: boolean) {}\n\n  /**\n   * Allows for `super.disconnectedCallback()` in extensions while\n   * reserving the possibility of making non-breaking feature additions\n   * when disconnecting at some point in the future.\n   * @category lifecycle\n   */\n  disconnectedCallback() {\n    this.__controllers?.forEach((c) => c.hostDisconnected?.());\n  }\n\n  /**\n   * Synchronizes property values when attributes change.\n   *\n   * Specifically, when an attribute is set, the corresponding property is set.\n   * You should rarely need to implement this callback. If this method is\n   * overridden, `super.attributeChangedCallback(name, _old, value)` must be\n   * called.\n   *\n   * See [responding to attribute changes](https://developer.mozilla.org/en-US/docs/Web/API/Web_components/Using_custom_elements#responding_to_attribute_changes)\n   * on MDN for more information about the `attributeChangedCallback`.\n   * @category attributes\n   */\n  attributeChangedCallback(\n    name: string,\n    _old: string | null,\n    value: string | null\n  ) {\n    this._$attributeToProperty(name, value);\n  }\n\n  private __propertyToAttribute(name: PropertyKey, value: unknown) {\n    const elemProperties: PropertyDeclarationMap = (\n      this.constructor as typeof ReactiveElement\n    ).elementProperties;\n    const options = elemProperties.get(name)!;\n    const attr = (\n      this.constructor as typeof ReactiveElement\n    ).__attributeNameForProperty(name, options);\n    if (attr !== undefined && options.reflect === true) {\n      const converter =\n        (options.converter as ComplexAttributeConverter)?.toAttribute !==\n        undefined\n          ? (options.converter as ComplexAttributeConverter)\n          : defaultConverter;\n      const attrValue = converter.toAttribute!(value, options.type);\n      if (\n        DEV_MODE &&\n        (this.constructor as typeof ReactiveElement).enabledWarnings!.includes(\n          'migration'\n        ) &&\n        attrValue === undefined\n      ) {\n        issueWarning(\n          'undefined-attribute-value',\n          `The attribute value for the ${name as string} property is ` +\n            `undefined on element ${this.localName}. The attribute will be ` +\n            `removed, but in the previous version of \\`ReactiveElement\\`, ` +\n            `the attribute would not have changed.`\n        );\n      }\n      // Track if the property is being reflected to avoid\n      // setting the property again via `attributeChangedCallback`. Note:\n      // 1. this takes advantage of the fact that the callback is synchronous.\n      // 2. will behave incorrectly if multiple attributes are in the reaction\n      // stack at time of calling. However, since we process attributes\n      // in `update` this should not be possible (or an extreme corner case\n      // that we'd like to discover).\n      // mark state reflecting\n      this.__reflectingProperty = name;\n      if (attrValue == null) {\n        this.removeAttribute(attr);\n      } else {\n        this.setAttribute(attr, attrValue as string);\n      }\n      // mark state not reflecting\n      this.__reflectingProperty = null;\n    }\n  }\n\n  /** @internal */\n  _$attributeToProperty(name: string, value: string | null) {\n    const ctor = this.constructor as typeof ReactiveElement;\n    // Note, hint this as an `AttributeMap` so closure clearly understands\n    // the type; it has issues with tracking types through statics\n    const propName = (ctor.__attributeToPropertyMap as AttributeMap).get(name);\n    // Use tracking info to avoid reflecting a property value to an attribute\n    // if it was just set because the attribute changed.\n    if (propName !== undefined && this.__reflectingProperty !== propName) {\n      const options = ctor.getPropertyOptions(propName);\n      const converter =\n        typeof options.converter === 'function'\n          ? {fromAttribute: options.converter}\n          : options.converter?.fromAttribute !== undefined\n            ? options.converter\n            : defaultConverter;\n      // mark state reflecting\n      this.__reflectingProperty = propName;\n      const convertedValue = converter.fromAttribute!(value, options.type);\n      this[propName as keyof this] =\n        convertedValue ??\n        this.__defaultValues?.get(propName) ??\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        (convertedValue as any);\n      // mark state not reflecting\n      this.__reflectingProperty = null;\n    }\n  }\n\n  /**\n   * Requests an update which is processed asynchronously. This should be called\n   * when an element should update based on some state not triggered by setting\n   * a reactive property. In this case, pass no arguments. It should also be\n   * called when manually implementing a property setter. In this case, pass the\n   * property `name` and `oldValue` to ensure that any configured property\n   * options are honored.\n   *\n   * @param name name of requesting property\n   * @param oldValue old value of requesting property\n   * @param options property options to use instead of the previously\n   *     configured options\n   * @param useNewValue if true, the newValue argument is used instead of\n   *     reading the property value. This is important to use if the reactive\n   *     property is a standard private accessor, as opposed to a plain\n   *     property, since private members can't be dynamically read by name.\n   * @param newValue the new value of the property. This is only used if\n   *     `useNewValue` is true.\n   * @category updates\n   */\n  requestUpdate(\n    name?: PropertyKey,\n    oldValue?: unknown,\n    options?: PropertyDeclaration,\n    useNewValue = false,\n    newValue?: unknown\n  ): void {\n    // If we have a property key, perform property update steps.\n    if (name !== undefined) {\n      if (DEV_MODE && (name as unknown) instanceof Event) {\n        issueWarning(\n          ``,\n          `The requestUpdate() method was called with an Event as the property name. This is probably a mistake caused by binding this.requestUpdate as an event listener. Instead bind a function that will call it with no arguments: () => this.requestUpdate()`\n        );\n      }\n      const ctor = this.constructor as typeof ReactiveElement;\n      if (useNewValue === false) {\n        newValue = this[name as keyof this];\n      }\n      options ??= ctor.getPropertyOptions(name);\n      const changed =\n        (options.hasChanged ?? notEqual)(newValue, oldValue) ||\n        // When there is no change, check a corner case that can occur when\n        // 1. there's a initial value which was not reflected\n        // 2. the property is subsequently set to this value.\n        // For example, `prop: {useDefault: true, reflect: true}`\n        // and el.prop = 'foo'. This should be considered a change if the\n        // attribute is not set because we will now reflect the property to the attribute.\n        (options.useDefault &&\n          options.reflect &&\n          newValue === this.__defaultValues?.get(name) &&\n          !this.hasAttribute(ctor.__attributeNameForProperty(name, options)!));\n      if (changed) {\n        this._$changeProperty(name, oldValue, options);\n      } else {\n        // Abort the request if the property should not be considered changed.\n        return;\n      }\n    }\n    if (this.isUpdatePending === false) {\n      this.__updatePromise = this.__enqueueUpdate();\n    }\n  }\n\n  /**\n   * @internal\n   */\n  _$changeProperty(\n    name: PropertyKey,\n    oldValue: unknown,\n    {useDefault, reflect, wrapped}: PropertyDeclaration,\n    initializeValue?: unknown\n  ) {\n    // Record default value when useDefault is used. This allows us to\n    // restore this value when the attribute is removed.\n    if (useDefault && !(this.__defaultValues ??= new Map()).has(name)) {\n      this.__defaultValues.set(\n        name,\n        initializeValue ?? oldValue ?? this[name as keyof this]\n      );\n      // if this is not wrapping an accessor, it must be an initial setting\n      // and in this case we do not want to record the change or reflect.\n      if (wrapped !== true || initializeValue !== undefined) {\n        return;\n      }\n    }\n    // TODO (justinfagnani): Create a benchmark of Map.has() + Map.set(\n    // vs just Map.set()\n    if (!this._$changedProperties.has(name)) {\n      // On the initial change, the old value should be `undefined`, except\n      // with `useDefault`\n      if (!this.hasUpdated && !useDefault) {\n        oldValue = undefined;\n      }\n      this._$changedProperties.set(name, oldValue);\n    }\n    // Add to reflecting properties set.\n    // Note, it's important that every change has a chance to add the\n    // property to `__reflectingProperties`. This ensures setting\n    // attribute + property reflects correctly.\n    if (reflect === true && this.__reflectingProperty !== name) {\n      (this.__reflectingProperties ??= new Set<PropertyKey>()).add(name);\n    }\n  }\n\n  /**\n   * Sets up the element to asynchronously update.\n   */\n  private async __enqueueUpdate() {\n    this.isUpdatePending = true;\n    try {\n      // Ensure any previous update has resolved before updating.\n      // This `await` also ensures that property changes are batched.\n      await this.__updatePromise;\n    } catch (e) {\n      // Refire any previous errors async so they do not disrupt the update\n      // cycle. Errors are refired so developers have a chance to observe\n      // them, and this can be done by implementing\n      // `window.onunhandledrejection`.\n      Promise.reject(e);\n    }\n    const result = this.scheduleUpdate();\n    // If `scheduleUpdate` returns a Promise, we await it. This is done to\n    // enable coordinating updates with a scheduler. Note, the result is\n    // checked to avoid delaying an additional microtask unless we need to.\n    if (result != null) {\n      await result;\n    }\n    return !this.isUpdatePending;\n  }\n\n  /**\n   * Schedules an element update. You can override this method to change the\n   * timing of updates by returning a Promise. The update will await the\n   * returned Promise, and you should resolve the Promise to allow the update\n   * to proceed. If this method is overridden, `super.scheduleUpdate()`\n   * must be called.\n   *\n   * For instance, to schedule updates to occur just before the next frame:\n   *\n   * ```ts\n   * override protected async scheduleUpdate(): Promise<unknown> {\n   *   await new Promise((resolve) => requestAnimationFrame(() => resolve()));\n   *   super.scheduleUpdate();\n   * }\n   * ```\n   * @category updates\n   */\n  protected scheduleUpdate(): void | Promise<unknown> {\n    const result = this.performUpdate();\n    if (\n      DEV_MODE &&\n      (this.constructor as typeof ReactiveElement).enabledWarnings!.includes(\n        'async-perform-update'\n      ) &&\n      typeof (result as unknown as Promise<unknown> | undefined)?.then ===\n        'function'\n    ) {\n      issueWarning(\n        'async-perform-update',\n        `Element ${this.localName} returned a Promise from performUpdate(). ` +\n          `This behavior is deprecated and will be removed in a future ` +\n          `version of ReactiveElement.`\n      );\n    }\n    return result;\n  }\n\n  /**\n   * Performs an element update. Note, if an exception is thrown during the\n   * update, `firstUpdated` and `updated` will not be called.\n   *\n   * Call `performUpdate()` to immediately process a pending update. This should\n   * generally not be needed, but it can be done in rare cases when you need to\n   * update synchronously.\n   *\n   * @category updates\n   */\n  protected performUpdate(): void {\n    // Abort any update if one is not pending when this is called.\n    // This can happen if `performUpdate` is called early to \"flush\"\n    // the update.\n    if (!this.isUpdatePending) {\n      return;\n    }\n    debugLogEvent?.({kind: 'update'});\n    if (!this.hasUpdated) {\n      // Create renderRoot before first update. This occurs in `connectedCallback`\n      // but is done here to support out of tree calls to `enableUpdating`/`performUpdate`.\n      (this as Mutable<typeof this, 'renderRoot'>).renderRoot ??=\n        this.createRenderRoot();\n      if (DEV_MODE) {\n        // Produce warning if any reactive properties on the prototype are\n        // shadowed by class fields. Instance fields set before upgrade are\n        // deleted by this point, so any own property is caused by class field\n        // initialization in the constructor.\n        const ctor = this.constructor as typeof ReactiveElement;\n        const shadowedProperties = [...ctor.elementProperties.keys()].filter(\n          (p) => this.hasOwnProperty(p) && p in getPrototypeOf(this)\n        );\n        if (shadowedProperties.length) {\n          throw new Error(\n            `The following properties on element ${this.localName} will not ` +\n              `trigger updates as expected because they are set using class ` +\n              `fields: ${shadowedProperties.join(', ')}. ` +\n              `Native class fields and some compiled output will overwrite ` +\n              `accessors used for detecting changes. See ` +\n              `https://lit.dev/msg/class-field-shadowing ` +\n              `for more information.`\n          );\n        }\n      }\n      // Mixin instance properties once, if they exist.\n      if (this.__instanceProperties) {\n        // TODO (justinfagnani): should we use the stored value? Could a new value\n        // have been set since we stored the own property value?\n        for (const [p, value] of this.__instanceProperties) {\n          this[p as keyof this] = value as this[keyof this];\n        }\n        this.__instanceProperties = undefined;\n      }\n      // Trigger initial value reflection and populate the initial\n      // `changedProperties` map, but only for the case of properties created\n      // via `createProperty` on accessors, which will not have already\n      // populated the `changedProperties` map since they are not set.\n      // We can't know if these accessors had initializers, so we just set\n      // them anyway - a difference from experimental decorators on fields and\n      // standard decorators on auto-accessors.\n      // For context see:\n      // https://github.com/lit/lit/pull/4183#issuecomment-1711959635\n      const elementProperties = (this.constructor as typeof ReactiveElement)\n        .elementProperties;\n      if (elementProperties.size > 0) {\n        for (const [p, options] of elementProperties) {\n          const {wrapped} = options;\n          const value = this[p as keyof this];\n          if (\n            wrapped === true &&\n            !this._$changedProperties.has(p) &&\n            value !== undefined\n          ) {\n            this._$changeProperty(p, undefined, options, value);\n          }\n        }\n      }\n    }\n    let shouldUpdate = false;\n    const changedProperties = this._$changedProperties;\n    try {\n      shouldUpdate = this.shouldUpdate(changedProperties);\n      if (shouldUpdate) {\n        this.willUpdate(changedProperties);\n        this.__controllers?.forEach((c) => c.hostUpdate?.());\n        this.update(changedProperties);\n      } else {\n        this.__markUpdated();\n      }\n    } catch (e) {\n      // Prevent `firstUpdated` and `updated` from running when there's an\n      // update exception.\n      shouldUpdate = false;\n      // Ensure element can accept additional updates after an exception.\n      this.__markUpdated();\n      throw e;\n    }\n    // The update is no longer considered pending and further updates are now allowed.\n    if (shouldUpdate) {\n      this._$didUpdate(changedProperties);\n    }\n  }\n\n  /**\n   * Invoked before `update()` to compute values needed during the update.\n   *\n   * Implement `willUpdate` to compute property values that depend on other\n   * properties and are used in the rest of the update process.\n   *\n   * ```ts\n   * willUpdate(changedProperties) {\n   *   // only need to check changed properties for an expensive computation.\n   *   if (changedProperties.has('firstName') || changedProperties.has('lastName')) {\n   *     this.sha = computeSHA(`${this.firstName} ${this.lastName}`);\n   *   }\n   * }\n   *\n   * render() {\n   *   return html`SHA: ${this.sha}`;\n   * }\n   * ```\n   *\n   * @category updates\n   */\n  protected willUpdate(_changedProperties: PropertyValues): void {}\n\n  // Note, this is an override point for polyfill-support.\n  // @internal\n  _$didUpdate(changedProperties: PropertyValues) {\n    this.__controllers?.forEach((c) => c.hostUpdated?.());\n    if (!this.hasUpdated) {\n      this.hasUpdated = true;\n      this.firstUpdated(changedProperties);\n    }\n    this.updated(changedProperties);\n    if (\n      DEV_MODE &&\n      this.isUpdatePending &&\n      (this.constructor as typeof ReactiveElement).enabledWarnings!.includes(\n        'change-in-update'\n      )\n    ) {\n      issueWarning(\n        'change-in-update',\n        `Element ${this.localName} scheduled an update ` +\n          `(generally because a property was set) ` +\n          `after an update completed, causing a new update to be scheduled. ` +\n          `This is inefficient and should be avoided unless the next update ` +\n          `can only be scheduled as a side effect of the previous update.`\n      );\n    }\n  }\n\n  private __markUpdated() {\n    this._$changedProperties = new Map();\n    this.isUpdatePending = false;\n  }\n\n  /**\n   * Returns a Promise that resolves when the element has completed updating.\n   * The Promise value is a boolean that is `true` if the element completed the\n   * update without triggering another update. The Promise result is `false` if\n   * a property was set inside `updated()`. If the Promise is rejected, an\n   * exception was thrown during the update.\n   *\n   * To await additional asynchronous work, override the `getUpdateComplete`\n   * method. For example, it is sometimes useful to await a rendered element\n   * before fulfilling this Promise. To do this, first await\n   * `super.getUpdateComplete()`, then any subsequent state.\n   *\n   * @return A promise of a boolean that resolves to true if the update completed\n   *     without triggering another update.\n   * @category updates\n   */\n  get updateComplete(): Promise<boolean> {\n    return this.getUpdateComplete();\n  }\n\n  /**\n   * Override point for the `updateComplete` promise.\n   *\n   * It is not safe to override the `updateComplete` getter directly due to a\n   * limitation in TypeScript which means it is not possible to call a\n   * superclass getter (e.g. `super.updateComplete.then(...)`) when the target\n   * language is ES5 (https://github.com/microsoft/TypeScript/issues/338).\n   * This method should be overridden instead. For example:\n   *\n   * ```ts\n   * class MyElement extends LitElement {\n   *   override async getUpdateComplete() {\n   *     const result = await super.getUpdateComplete();\n   *     await this._myChild.updateComplete;\n   *     return result;\n   *   }\n   * }\n   * ```\n   *\n   * @return A promise of a boolean that resolves to true if the update completed\n   *     without triggering another update.\n   * @category updates\n   */\n  protected getUpdateComplete(): Promise<boolean> {\n    return this.__updatePromise;\n  }\n\n  /**\n   * Controls whether or not `update()` should be called when the element requests\n   * an update. By default, this method always returns `true`, but this can be\n   * customized to control when to update.\n   *\n   * @param _changedProperties Map of changed properties with old values\n   * @category updates\n   */\n  protected shouldUpdate(_changedProperties: PropertyValues): boolean {\n    return true;\n  }\n\n  /**\n   * Updates the element. This method reflects property values to attributes.\n   * It can be overridden to render and keep updated element DOM.\n   * Setting properties inside this method will *not* trigger\n   * another update.\n   *\n   * @param _changedProperties Map of changed properties with old values\n   * @category updates\n   */\n  protected update(_changedProperties: PropertyValues) {\n    // The forEach() expression will only run when __reflectingProperties is\n    // defined, and it returns undefined, setting __reflectingProperties to\n    // undefined\n    this.__reflectingProperties &&= this.__reflectingProperties.forEach((p) =>\n      this.__propertyToAttribute(p, this[p as keyof this])\n    ) as undefined;\n    this.__markUpdated();\n  }\n\n  /**\n   * Invoked whenever the element is updated. Implement to perform\n   * post-updating tasks via DOM APIs, for example, focusing an element.\n   *\n   * Setting properties inside this method will trigger the element to update\n   * again after this update cycle completes.\n   *\n   * @param _changedProperties Map of changed properties with old values\n   * @category updates\n   */\n  protected updated(_changedProperties: PropertyValues) {}\n\n  /**\n   * Invoked when the element is first updated. Implement to perform one time\n   * work on the element after update.\n   *\n   * ```ts\n   * firstUpdated() {\n   *   this.renderRoot.getElementById('my-text-area').focus();\n   * }\n   * ```\n   *\n   * Setting properties inside this method will trigger the element to update\n   * again after this update cycle completes.\n   *\n   * @param _changedProperties Map of changed properties with old values\n   * @category updates\n   */\n  protected firstUpdated(_changedProperties: PropertyValues) {}\n}\n// Assigned here to work around a jscompiler bug with static fields\n// when compiling to ES5.\n// https://github.com/google/closure-compiler/issues/3177\n(ReactiveElement as unknown as Record<string, unknown>)[\n  JSCompiler_renameProperty('elementProperties', ReactiveElement)\n] = new Map();\n(ReactiveElement as unknown as Record<string, unknown>)[\n  JSCompiler_renameProperty('finalized', ReactiveElement)\n] = new Map();\n\n// Apply polyfills if available\npolyfillSupport?.({ReactiveElement});\n\n// Dev mode warnings...\nif (DEV_MODE) {\n  // Default warning set.\n  ReactiveElement.enabledWarnings = [\n    'change-in-update',\n    'async-perform-update',\n  ];\n  const ensureOwnWarnings = function (ctor: typeof ReactiveElement) {\n    if (\n      !ctor.hasOwnProperty(JSCompiler_renameProperty('enabledWarnings', ctor))\n    ) {\n      ctor.enabledWarnings = ctor.enabledWarnings!.slice();\n    }\n  };\n  ReactiveElement.enableWarning = function (\n    this: typeof ReactiveElement,\n    warning: WarningKind\n  ) {\n    ensureOwnWarnings(this);\n    if (!this.enabledWarnings!.includes(warning)) {\n      this.enabledWarnings!.push(warning);\n    }\n  };\n  ReactiveElement.disableWarning = function (\n    this: typeof ReactiveElement,\n    warning: WarningKind\n  ) {\n    ensureOwnWarnings(this);\n    const i = this.enabledWarnings!.indexOf(warning);\n    if (i >= 0) {\n      this.enabledWarnings!.splice(i, 1);\n    }\n  };\n}\n\n// IMPORTANT: do not change the property name or the assignment expression.\n// This line will be used in regexes to search for ReactiveElement usage.\n(global.reactiveElementVersions ??= []).push('2.1.2');\nif (DEV_MODE && global.reactiveElementVersions.length > 1) {\n  queueMicrotask(() => {\n    issueWarning!(\n      'multiple-versions',\n      `Multiple versions of Lit loaded. Loading multiple versions ` +\n        `is not recommended.`\n    );\n  });\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n// IMPORTANT: these imports must be type-only\nimport type {Directive, DirectiveResult, PartInfo} from './directive.js';\nimport type {TrustedHTML, TrustedTypesWindow} from 'trusted-types/lib/index.js';\n\nconst DEV_MODE = true;\nconst ENABLE_EXTRA_SECURITY_HOOKS = true;\nconst ENABLE_SHADYDOM_NOPATCH = true;\nconst NODE_MODE = false;\n\n// Allows minifiers to rename references to globalThis\nconst global = globalThis;\n\n/**\n * Contains types that are part of the unstable debug API.\n *\n * Everything in this API is not stable and may change or be removed in the future,\n * even on patch releases.\n */\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace LitUnstable {\n  /**\n   * When Lit is running in dev mode and `window.emitLitDebugLogEvents` is true,\n   * we will emit 'lit-debug' events to window, with live details about the update and render\n   * lifecycle. These can be useful for writing debug tooling and visualizations.\n   *\n   * Please be aware that running with window.emitLitDebugLogEvents has performance overhead,\n   * making certain operations that are normally very cheap (like a no-op render) much slower,\n   * because we must copy data and dispatch events.\n   */\n  // eslint-disable-next-line @typescript-eslint/no-namespace\n  export namespace DebugLog {\n    export type Entry =\n      | TemplatePrep\n      | TemplateInstantiated\n      | TemplateInstantiatedAndUpdated\n      | TemplateUpdating\n      | BeginRender\n      | EndRender\n      | CommitPartEntry\n      | SetPartValue;\n    export interface TemplatePrep {\n      kind: 'template prep';\n      template: Template;\n      strings: TemplateStringsArray;\n      clonableTemplate: HTMLTemplateElement;\n      parts: TemplatePart[];\n    }\n    export interface BeginRender {\n      kind: 'begin render';\n      id: number;\n      value: unknown;\n      container: RenderRootNode;\n      options: RenderOptions | undefined;\n      part: ChildPart | undefined;\n    }\n    export interface EndRender {\n      kind: 'end render';\n      id: number;\n      value: unknown;\n      container: RenderRootNode;\n      options: RenderOptions | undefined;\n      part: ChildPart;\n    }\n    export interface TemplateInstantiated {\n      kind: 'template instantiated';\n      template: Template | CompiledTemplate;\n      instance: TemplateInstance;\n      options: RenderOptions | undefined;\n      fragment: Node;\n      parts: Array<Part | undefined>;\n      values: unknown[];\n    }\n    export interface TemplateInstantiatedAndUpdated {\n      kind: 'template instantiated and updated';\n      template: Template | CompiledTemplate;\n      instance: TemplateInstance;\n      options: RenderOptions | undefined;\n      fragment: Node;\n      parts: Array<Part | undefined>;\n      values: unknown[];\n    }\n    export interface TemplateUpdating {\n      kind: 'template updating';\n      template: Template | CompiledTemplate;\n      instance: TemplateInstance;\n      options: RenderOptions | undefined;\n      parts: Array<Part | undefined>;\n      values: unknown[];\n    }\n    export interface SetPartValue {\n      kind: 'set part';\n      part: Part;\n      value: unknown;\n      valueIndex: number;\n      values: unknown[];\n      templateInstance: TemplateInstance;\n    }\n\n    export type CommitPartEntry =\n      | CommitNothingToChildEntry\n      | CommitText\n      | CommitNode\n      | CommitAttribute\n      | CommitProperty\n      | CommitBooleanAttribute\n      | CommitEventListener\n      | CommitToElementBinding;\n\n    export interface CommitNothingToChildEntry {\n      kind: 'commit nothing to child';\n      start: ChildNode;\n      end: ChildNode | null;\n      parent: Disconnectable | undefined;\n      options: RenderOptions | undefined;\n    }\n\n    export interface CommitText {\n      kind: 'commit text';\n      node: Text;\n      value: unknown;\n      options: RenderOptions | undefined;\n    }\n\n    export interface CommitNode {\n      kind: 'commit node';\n      start: Node;\n      parent: Disconnectable | undefined;\n      value: Node;\n      options: RenderOptions | undefined;\n    }\n\n    export interface CommitAttribute {\n      kind: 'commit attribute';\n      element: Element;\n      name: string;\n      value: unknown;\n      options: RenderOptions | undefined;\n    }\n\n    export interface CommitProperty {\n      kind: 'commit property';\n      element: Element;\n      name: string;\n      value: unknown;\n      options: RenderOptions | undefined;\n    }\n\n    export interface CommitBooleanAttribute {\n      kind: 'commit boolean attribute';\n      element: Element;\n      name: string;\n      value: boolean;\n      options: RenderOptions | undefined;\n    }\n\n    export interface CommitEventListener {\n      kind: 'commit event listener';\n      element: Element;\n      name: string;\n      value: unknown;\n      oldListener: unknown;\n      options: RenderOptions | undefined;\n      // True if we're removing the old event listener (e.g. because settings changed, or value is nothing)\n      removeListener: boolean;\n      // True if we're adding a new event listener (e.g. because first render, or settings changed)\n      addListener: boolean;\n    }\n\n    export interface CommitToElementBinding {\n      kind: 'commit to element binding';\n      element: Element;\n      value: unknown;\n      options: RenderOptions | undefined;\n    }\n  }\n}\n\ninterface DebugLoggingWindow {\n  // Even in dev mode, we generally don't want to emit these events, as that's\n  // another level of cost, so only emit them when DEV_MODE is true _and_ when\n  // window.emitLitDebugEvents is true.\n  emitLitDebugLogEvents?: boolean;\n}\n\n/**\n * Useful for visualizing and logging insights into what the Lit template system is doing.\n *\n * Compiled out of prod mode builds.\n */\nconst debugLogEvent = DEV_MODE\n  ? (event: LitUnstable.DebugLog.Entry) => {\n      const shouldEmit = (global as unknown as DebugLoggingWindow)\n        .emitLitDebugLogEvents;\n      if (!shouldEmit) {\n        return;\n      }\n      global.dispatchEvent(\n        new CustomEvent<LitUnstable.DebugLog.Entry>('lit-debug', {\n          detail: event,\n        })\n      );\n    }\n  : undefined;\n// Used for connecting beginRender and endRender events when there are nested\n// renders when errors are thrown preventing an endRender event from being\n// called.\nlet debugLogRenderId = 0;\n\nlet issueWarning: (code: string, warning: string) => void;\n\nif (DEV_MODE) {\n  global.litIssuedWarnings ??= new Set();\n\n  /**\n   * Issue a warning if we haven't already, based either on `code` or `warning`.\n   * Warnings are disabled automatically only by `warning`; disabling via `code`\n   * can be done by users.\n   */\n  issueWarning = (code: string, warning: string) => {\n    warning += code\n      ? ` See https://lit.dev/msg/${code} for more information.`\n      : '';\n    if (\n      !global.litIssuedWarnings!.has(warning) &&\n      !global.litIssuedWarnings!.has(code)\n    ) {\n      console.warn(warning);\n      global.litIssuedWarnings!.add(warning);\n    }\n  };\n\n  queueMicrotask(() => {\n    issueWarning(\n      'dev-mode',\n      `Lit is in dev mode. Not recommended for production!`\n    );\n  });\n}\n\nconst wrap =\n  ENABLE_SHADYDOM_NOPATCH &&\n  global.ShadyDOM?.inUse &&\n  global.ShadyDOM?.noPatch === true\n    ? (global.ShadyDOM!.wrap as <T extends Node>(node: T) => T)\n    : <T extends Node>(node: T) => node;\n\nconst trustedTypes = (global as unknown as TrustedTypesWindow).trustedTypes;\n\n/**\n * Our TrustedTypePolicy for HTML which is declared using the html template\n * tag function.\n *\n * That HTML is a developer-authored constant, and is parsed with innerHTML\n * before any untrusted expressions have been mixed in. Therefor it is\n * considered safe by construction.\n */\nconst policy = trustedTypes\n  ? trustedTypes.createPolicy('lit-html', {\n      createHTML: (s) => s,\n    })\n  : undefined;\n\n/**\n * Used to sanitize any value before it is written into the DOM. This can be\n * used to implement a security policy of allowed and disallowed values in\n * order to prevent XSS attacks.\n *\n * One way of using this callback would be to check attributes and properties\n * against a list of high risk fields, and require that values written to such\n * fields be instances of a class which is safe by construction. Closure's Safe\n * HTML Types is one implementation of this technique (\n * https://github.com/google/safe-html-types/blob/master/doc/safehtml-types.md).\n * The TrustedTypes polyfill in API-only mode could also be used as a basis\n * for this technique (https://github.com/WICG/trusted-types).\n *\n * @param node The HTML node (usually either a #text node or an Element) that\n *     is being written to. Note that this is just an exemplar node, the write\n *     may take place against another instance of the same class of node.\n * @param name The name of an attribute or property (for example, 'href').\n * @param type Indicates whether the write that's about to be performed will\n *     be to a property or a node.\n * @return A function that will sanitize this class of writes.\n */\nexport type SanitizerFactory = (\n  node: Node,\n  name: string,\n  type: 'property' | 'attribute'\n) => ValueSanitizer;\n\n/**\n * A function which can sanitize values that will be written to a specific kind\n * of DOM sink.\n *\n * See SanitizerFactory.\n *\n * @param value The value to sanitize. Will be the actual value passed into\n *     the lit-html template literal, so this could be of any type.\n * @return The value to write to the DOM. Usually the same as the input value,\n *     unless sanitization is needed.\n */\nexport type ValueSanitizer = (value: unknown) => unknown;\n\nconst identityFunction: ValueSanitizer = (value: unknown) => value;\nconst noopSanitizer: SanitizerFactory = (\n  _node: Node,\n  _name: string,\n  _type: 'property' | 'attribute'\n) => identityFunction;\n\n/** Sets the global sanitizer factory. */\nconst setSanitizer = (newSanitizer: SanitizerFactory) => {\n  if (!ENABLE_EXTRA_SECURITY_HOOKS) {\n    return;\n  }\n  if (sanitizerFactoryInternal !== noopSanitizer) {\n    throw new Error(\n      `Attempted to overwrite existing lit-html security policy.` +\n        ` setSanitizeDOMValueFactory should be called at most once.`\n    );\n  }\n  sanitizerFactoryInternal = newSanitizer;\n};\n\n/**\n * Only used in internal tests, not a part of the public API.\n */\nconst _testOnlyClearSanitizerFactoryDoNotCallOrElse = () => {\n  sanitizerFactoryInternal = noopSanitizer;\n};\n\nconst createSanitizer: SanitizerFactory = (node, name, type) => {\n  return sanitizerFactoryInternal(node, name, type);\n};\n\n// Added to an attribute name to mark the attribute as bound so we can find\n// it easily.\nconst boundAttributeSuffix = '$lit$';\n\n// This marker is used in many syntactic positions in HTML, so it must be\n// a valid element name and attribute name. We don't support dynamic names (yet)\n// but this at least ensures that the parse tree is closer to the template\n// intention.\nconst marker = `lit$${Math.random().toFixed(9).slice(2)}$`;\n\n// String used to tell if a comment is a marker comment\nconst markerMatch = '?' + marker;\n\n// Text used to insert a comment marker node. We use processing instruction\n// syntax because it's slightly smaller, but parses as a comment node.\nconst nodeMarker = `<${markerMatch}>`;\n\nconst d =\n  NODE_MODE && global.document === undefined\n    ? ({\n        createTreeWalker() {\n          return {};\n        },\n      } as unknown as Document)\n    : document;\n\n// Creates a dynamic marker. We never have to search for these in the DOM.\nconst createMarker = () => d.createComment('');\n\n// https://tc39.github.io/ecma262/#sec-typeof-operator\ntype Primitive = null | undefined | boolean | number | string | symbol | bigint;\nconst isPrimitive = (value: unknown): value is Primitive =>\n  value === null || (typeof value != 'object' && typeof value != 'function');\nconst isArray = Array.isArray;\nconst isIterable = (value: unknown): value is Iterable<unknown> =>\n  isArray(value) ||\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  typeof (value as any)?.[Symbol.iterator] === 'function';\n\nconst SPACE_CHAR = `[ \\t\\n\\f\\r]`;\nconst ATTR_VALUE_CHAR = `[^ \\t\\n\\f\\r\"'\\`<>=]`;\nconst NAME_CHAR = `[^\\\\s\"'>=/]`;\n\n// These regexes represent the five parsing states that we care about in the\n// Template's HTML scanner. They match the *end* of the state they're named\n// after.\n// Depending on the match, we transition to a new state. If there's no match,\n// we stay in the same state.\n// Note that the regexes are stateful. We utilize lastIndex and sync it\n// across the multiple regexes used. In addition to the five regexes below\n// we also dynamically create a regex to find the matching end tags for raw\n// text elements.\n\n/**\n * End of text is: `<` followed by:\n *   (comment start) or (tag) or (dynamic tag binding)\n */\nconst textEndRegex = /<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g;\nconst COMMENT_START = 1;\nconst TAG_NAME = 2;\nconst DYNAMIC_TAG_NAME = 3;\n\nconst commentEndRegex = /-->/g;\n/**\n * Comments not started with <!--, like </{, can be ended by a single `>`\n */\nconst comment2EndRegex = />/g;\n\n/**\n * The tagEnd regex matches the end of the \"inside an opening\" tag syntax\n * position. It either matches a `>`, an attribute-like sequence, or the end\n * of the string after a space (attribute-name position ending).\n *\n * See attributes in the HTML spec:\n * https://www.w3.org/TR/html5/syntax.html#elements-attributes\n *\n * \" \\t\\n\\f\\r\" are HTML space characters:\n * https://infra.spec.whatwg.org/#ascii-whitespace\n *\n * So an attribute is:\n *  * The name: any character except a whitespace character, (\"), ('), \">\",\n *    \"=\", or \"/\". Note: this is different from the HTML spec which also excludes control characters.\n *  * Followed by zero or more space characters\n *  * Followed by \"=\"\n *  * Followed by zero or more space characters\n *  * Followed by:\n *    * Any character except space, ('), (\"), \"<\", \">\", \"=\", (`), or\n *    * (\") then any non-(\"), or\n *    * (') then any non-(')\n */\nconst tagEndRegex = new RegExp(\n  `>|${SPACE_CHAR}(?:(${NAME_CHAR}+)(${SPACE_CHAR}*=${SPACE_CHAR}*(?:${ATTR_VALUE_CHAR}|(\"|')|))|$)`,\n  'g'\n);\nconst ENTIRE_MATCH = 0;\nconst ATTRIBUTE_NAME = 1;\nconst SPACES_AND_EQUALS = 2;\nconst QUOTE_CHAR = 3;\n\nconst singleQuoteAttrEndRegex = /'/g;\nconst doubleQuoteAttrEndRegex = /\"/g;\n/**\n * Matches the raw text elements.\n *\n * Comments are not parsed within raw text elements, so we need to search their\n * text content for marker strings.\n */\nconst rawTextElement = /^(?:script|style|textarea|title)$/i;\n\n/** TemplateResult types */\nconst HTML_RESULT = 1;\nconst SVG_RESULT = 2;\nconst MATHML_RESULT = 3;\n\ntype ResultType = typeof HTML_RESULT | typeof SVG_RESULT | typeof MATHML_RESULT;\n\n// TemplatePart types\n// IMPORTANT: these must match the values in PartType\nconst ATTRIBUTE_PART = 1;\nconst CHILD_PART = 2;\nconst PROPERTY_PART = 3;\nconst BOOLEAN_ATTRIBUTE_PART = 4;\nconst EVENT_PART = 5;\nconst ELEMENT_PART = 6;\nconst COMMENT_PART = 7;\n\n/**\n * The return type of the template tag functions, {@linkcode html} and\n * {@linkcode svg} when it hasn't been compiled by @lit-labs/compiler.\n *\n * A `TemplateResult` object holds all the information about a template\n * expression required to render it: the template strings, expression values,\n * and type of template (html or svg).\n *\n * `TemplateResult` objects do not create any DOM on their own. To create or\n * update DOM you need to render the `TemplateResult`. See\n * [Rendering](https://lit.dev/docs/components/rendering) for more information.\n *\n */\nexport type UncompiledTemplateResult<T extends ResultType = ResultType> = {\n  // This property needs to remain unminified.\n  ['_$litType$']: T;\n  strings: TemplateStringsArray;\n  values: unknown[];\n};\n\n/**\n * This is a template result that may be either uncompiled or compiled.\n *\n * In the future, TemplateResult will be this type. If you want to explicitly\n * note that a template result is potentially compiled, you can reference this\n * type and it will continue to behave the same through the next major version\n * of Lit. This can be useful for code that wants to prepare for the next\n * major version of Lit.\n */\nexport type MaybeCompiledTemplateResult<T extends ResultType = ResultType> =\n  | UncompiledTemplateResult<T>\n  | CompiledTemplateResult;\n\n/**\n * The return type of the template tag functions, {@linkcode html} and\n * {@linkcode svg}.\n *\n * A `TemplateResult` object holds all the information about a template\n * expression required to render it: the template strings, expression values,\n * and type of template (html or svg).\n *\n * `TemplateResult` objects do not create any DOM on their own. To create or\n * update DOM you need to render the `TemplateResult`. See\n * [Rendering](https://lit.dev/docs/components/rendering) for more information.\n *\n * In Lit 4, this type will be an alias of\n * MaybeCompiledTemplateResult, so that code will get type errors if it assumes\n * that Lit templates are not compiled. When deliberately working with only\n * one, use either {@linkcode CompiledTemplateResult} or\n * {@linkcode UncompiledTemplateResult} explicitly.\n */\nexport type TemplateResult<T extends ResultType = ResultType> =\n  UncompiledTemplateResult<T>;\n\nexport type HTMLTemplateResult = TemplateResult<typeof HTML_RESULT>;\n\nexport type SVGTemplateResult = TemplateResult<typeof SVG_RESULT>;\n\nexport type MathMLTemplateResult = TemplateResult<typeof MATHML_RESULT>;\n\n/**\n * A TemplateResult that has been compiled by @lit-labs/compiler, skipping the\n * prepare step.\n */\nexport interface CompiledTemplateResult {\n  // This is a factory in order to make template initialization lazy\n  // and allow ShadyRenderOptions scope to be passed in.\n  // This property needs to remain unminified.\n  ['_$litType$']: CompiledTemplate;\n  values: unknown[];\n}\n\nexport interface CompiledTemplate extends Omit<Template, 'el'> {\n  // el is overridden to be optional. We initialize it on first render\n  el?: HTMLTemplateElement;\n\n  // The prepared HTML string to create a template element from.\n  // The type is a TemplateStringsArray to guarantee that the value came from\n  // source code, preventing a JSON injection attack.\n  h: TemplateStringsArray;\n}\n\n/**\n * Generates a template literal tag function that returns a TemplateResult with\n * the given result type.\n */\nconst tag =\n  <T extends ResultType>(type: T) =>\n  (strings: TemplateStringsArray, ...values: unknown[]): TemplateResult<T> => {\n    // Warn against templates octal escape sequences\n    // We do this here rather than in render so that the warning is closer to the\n    // template definition.\n    if (DEV_MODE && strings.some((s) => s === undefined)) {\n      console.warn(\n        'Some template strings are undefined.\\n' +\n          'This is probably caused by illegal octal escape sequences.'\n      );\n    }\n    if (DEV_MODE) {\n      // Import static-html.js results in a circular dependency which g3 doesn't\n      // handle. Instead we know that static values must have the field\n      // `_$litStatic$`.\n      if (\n        values.some((val) => (val as {_$litStatic$: unknown})?.['_$litStatic$'])\n      ) {\n        issueWarning(\n          '',\n          `Static values 'literal' or 'unsafeStatic' cannot be used as values to non-static templates.\\n` +\n            `Please use the static 'html' tag function. See https://lit.dev/docs/templates/expressions/#static-expressions`\n        );\n      }\n    }\n    return {\n      // This property needs to remain unminified.\n      ['_$litType$']: type,\n      strings,\n      values,\n    };\n  };\n\n/**\n * Interprets a template literal as an HTML template that can efficiently\n * render to and update a container.\n *\n * ```ts\n * const header = (title: string) => html`<h1>${title}</h1>`;\n * ```\n *\n * The `html` tag returns a description of the DOM to render as a value. It is\n * lazy, meaning no work is done until the template is rendered. When rendering,\n * if a template comes from the same expression as a previously rendered result,\n * it's efficiently updated instead of replaced.\n */\nexport const html = tag(HTML_RESULT);\n\n/**\n * Interprets a template literal as an SVG fragment that can efficiently render\n * to and update a container.\n *\n * ```ts\n * const rect = svg`<rect width=\"10\" height=\"10\"></rect>`;\n *\n * const myImage = html`\n *   <svg viewBox=\"0 0 10 10\" xmlns=\"http://www.w3.org/2000/svg\">\n *     ${rect}\n *   </svg>`;\n * ```\n *\n * The `svg` *tag function* should only be used for SVG fragments, or elements\n * that would be contained **inside** an `<svg>` HTML element. A common error is\n * placing an `<svg>` *element* in a template tagged with the `svg` tag\n * function. The `<svg>` element is an HTML element and should be used within a\n * template tagged with the {@linkcode html} tag function.\n *\n * In LitElement usage, it's invalid to return an SVG fragment from the\n * `render()` method, as the SVG fragment will be contained within the element's\n * shadow root and thus not be properly contained within an `<svg>` HTML\n * element.\n */\nexport const svg = tag(SVG_RESULT);\n\n/**\n * Interprets a template literal as MathML fragment that can efficiently render\n * to and update a container.\n *\n * ```ts\n * const num = mathml`<mn>1</mn>`;\n *\n * const eq = html`\n *   <math>\n *     ${num}\n *   </math>`;\n * ```\n *\n * The `mathml` *tag function* should only be used for MathML fragments, or\n * elements that would be contained **inside** a `<math>` HTML element. A common\n * error is placing a `<math>` *element* in a template tagged with the `mathml`\n * tag function. The `<math>` element is an HTML element and should be used\n * within a template tagged with the {@linkcode html} tag function.\n *\n * In LitElement usage, it's invalid to return an MathML fragment from the\n * `render()` method, as the MathML fragment will be contained within the\n * element's shadow root and thus not be properly contained within a `<math>`\n * HTML element.\n */\nexport const mathml = tag(MATHML_RESULT);\n\n/**\n * A sentinel value that signals that a value was handled by a directive and\n * should not be written to the DOM.\n */\nexport const noChange = Symbol.for('lit-noChange');\n\n/**\n * A sentinel value that signals a ChildPart to fully clear its content.\n *\n * ```ts\n * const button = html`${\n *  user.isAdmin\n *    ? html`<button>DELETE</button>`\n *    : nothing\n * }`;\n * ```\n *\n * Prefer using `nothing` over other falsy values as it provides a consistent\n * behavior between various expression binding contexts.\n *\n * In child expressions, `undefined`, `null`, `''`, and `nothing` all behave the\n * same and render no nodes. In attribute expressions, `nothing` _removes_ the\n * attribute, while `undefined` and `null` will render an empty string. In\n * property expressions `nothing` becomes `undefined`.\n */\nexport const nothing = Symbol.for('lit-nothing');\n\n/**\n * The cache of prepared templates, keyed by the tagged TemplateStringsArray\n * and _not_ accounting for the specific template tag used. This means that\n * template tags cannot be dynamic - they must statically be one of html, svg,\n * or attr. This restriction simplifies the cache lookup, which is on the hot\n * path for rendering.\n */\nconst templateCache = new WeakMap<TemplateStringsArray, Template>();\n\n/**\n * Object specifying options for controlling lit-html rendering. Note that\n * while `render` may be called multiple times on the same `container` (and\n * `renderBefore` reference node) to efficiently update the rendered content,\n * only the options passed in during the first render are respected during\n * the lifetime of renders to that unique `container` + `renderBefore`\n * combination.\n */\nexport interface RenderOptions {\n  /**\n   * An object to use as the `this` value for event listeners. It's often\n   * useful to set this to the host component rendering a template.\n   */\n  host?: object;\n  /**\n   * A DOM node before which to render content in the container.\n   */\n  renderBefore?: ChildNode | null;\n  /**\n   * Node used for cloning the template (`importNode` will be called on this\n   * node). This controls the `ownerDocument` of the rendered DOM, along with\n   * any inherited context. Defaults to the global `document`.\n   */\n  creationScope?: {importNode(node: Node, deep?: boolean): Node};\n  /**\n   * The initial connected state for the top-level part being rendered. If no\n   * `isConnected` option is set, `AsyncDirective`s will be connected by\n   * default. Set to `false` if the initial render occurs in a disconnected tree\n   * and `AsyncDirective`s should see `isConnected === false` for their initial\n   * render. The `part.setConnected()` method must be used subsequent to initial\n   * render to change the connected state of the part.\n   */\n  isConnected?: boolean;\n}\n\n/**\n * The root DOM node for rendering.\n */\nexport type RenderRootNode = HTMLElement | SVGElement | DocumentFragment;\n\nconst walker = d.createTreeWalker(\n  d,\n  129 /* NodeFilter.SHOW_{ELEMENT|COMMENT} */\n);\n\nlet sanitizerFactoryInternal: SanitizerFactory = noopSanitizer;\n\n//\n// Classes only below here, const variable declarations only above here...\n//\n// Keeping variable declarations and classes together improves minification.\n// Interfaces and type aliases can be interleaved freely.\n//\n\n// Type for classes that have a `_directive` or `_directives[]` field, used by\n// `resolveDirective`\nexport interface DirectiveParent {\n  _$parent?: DirectiveParent;\n  _$isConnected: boolean;\n  __directive?: Directive;\n  __directives?: Array<Directive | undefined>;\n}\n\nfunction trustFromTemplateString(\n  tsa: TemplateStringsArray,\n  stringFromTSA: string\n): TrustedHTML {\n  // A security check to prevent spoofing of Lit template results.\n  // In the future, we may be able to replace this with Array.isTemplateObject,\n  // though we might need to make that check inside of the html and svg\n  // functions, because precompiled templates don't come in as\n  // TemplateStringArray objects.\n  if (!isArray(tsa) || !tsa.hasOwnProperty('raw')) {\n    let message = 'invalid template strings array';\n    if (DEV_MODE) {\n      message = `\n          Internal Error: expected template strings to be an array\n          with a 'raw' field. Faking a template strings array by\n          calling html or svg like an ordinary function is effectively\n          the same as calling unsafeHtml and can lead to major security\n          issues, e.g. opening your code up to XSS attacks.\n          If you're using the html or svg tagged template functions normally\n          and still seeing this error, please file a bug at\n          https://github.com/lit/lit/issues/new?template=bug_report.md\n          and include information about your build tooling, if any.\n        `\n        .trim()\n        .replace(/\\n */g, '\\n');\n    }\n    throw new Error(message);\n  }\n  return policy !== undefined\n    ? policy.createHTML(stringFromTSA)\n    : (stringFromTSA as unknown as TrustedHTML);\n}\n\n/**\n * Returns an HTML string for the given TemplateStringsArray and result type\n * (HTML or SVG), along with the case-sensitive bound attribute names in\n * template order. The HTML contains comment markers denoting the `ChildPart`s\n * and suffixes on bound attributes denoting the `AttributeParts`.\n *\n * @param strings template strings array\n * @param type HTML or SVG\n * @return Array containing `[html, attrNames]` (array returned for terseness,\n *     to avoid object fields since this code is shared with non-minified SSR\n *     code)\n */\nconst getTemplateHtml = (\n  strings: TemplateStringsArray,\n  type: ResultType\n): [TrustedHTML, Array<string>] => {\n  // Insert makers into the template HTML to represent the position of\n  // bindings. The following code scans the template strings to determine the\n  // syntactic position of the bindings. They can be in text position, where\n  // we insert an HTML comment, attribute value position, where we insert a\n  // sentinel string and re-write the attribute name, or inside a tag where\n  // we insert the sentinel string.\n  const l = strings.length - 1;\n  // Stores the case-sensitive bound attribute names in the order of their\n  // parts. ElementParts are also reflected in this array as undefined\n  // rather than a string, to disambiguate from attribute bindings.\n  const attrNames: Array<string> = [];\n  let html =\n    type === SVG_RESULT ? '<svg>' : type === MATHML_RESULT ? '<math>' : '';\n\n  // When we're inside a raw text tag (not it's text content), the regex\n  // will still be tagRegex so we can find attributes, but will switch to\n  // this regex when the tag ends.\n  let rawTextEndRegex: RegExp | undefined;\n\n  // The current parsing state, represented as a reference to one of the\n  // regexes\n  let regex = textEndRegex;\n\n  for (let i = 0; i < l; i++) {\n    const s = strings[i];\n    // The index of the end of the last attribute name. When this is\n    // positive at end of a string, it means we're in an attribute value\n    // position and need to rewrite the attribute name.\n    // We also use a special value of -2 to indicate that we encountered\n    // the end of a string in attribute name position.\n    let attrNameEndIndex = -1;\n    let attrName: string | undefined;\n    let lastIndex = 0;\n    let match!: RegExpExecArray | null;\n\n    // The conditions in this loop handle the current parse state, and the\n    // assignments to the `regex` variable are the state transitions.\n    while (lastIndex < s.length) {\n      // Make sure we start searching from where we previously left off\n      regex.lastIndex = lastIndex;\n      match = regex.exec(s);\n      if (match === null) {\n        break;\n      }\n      lastIndex = regex.lastIndex;\n      if (regex === textEndRegex) {\n        if (match[COMMENT_START] === '!--') {\n          regex = commentEndRegex;\n        } else if (match[COMMENT_START] !== undefined) {\n          // We started a weird comment, like </{\n          regex = comment2EndRegex;\n        } else if (match[TAG_NAME] !== undefined) {\n          if (rawTextElement.test(match[TAG_NAME])) {\n            // Record if we encounter a raw-text element. We'll switch to\n            // this regex at the end of the tag.\n            rawTextEndRegex = new RegExp(`</${match[TAG_NAME]}`, 'g');\n          }\n          regex = tagEndRegex;\n        } else if (match[DYNAMIC_TAG_NAME] !== undefined) {\n          if (DEV_MODE) {\n            throw new Error(\n              'Bindings in tag names are not supported. Please use static templates instead. ' +\n                'See https://lit.dev/docs/templates/expressions/#static-expressions'\n            );\n          }\n          regex = tagEndRegex;\n        }\n      } else if (regex === tagEndRegex) {\n        if (match[ENTIRE_MATCH] === '>') {\n          // End of a tag. If we had started a raw-text element, use that\n          // regex\n          regex = rawTextEndRegex ?? textEndRegex;\n          // We may be ending an unquoted attribute value, so make sure we\n          // clear any pending attrNameEndIndex\n          attrNameEndIndex = -1;\n        } else if (match[ATTRIBUTE_NAME] === undefined) {\n          // Attribute name position\n          attrNameEndIndex = -2;\n        } else {\n          attrNameEndIndex = regex.lastIndex - match[SPACES_AND_EQUALS].length;\n          attrName = match[ATTRIBUTE_NAME];\n          regex =\n            match[QUOTE_CHAR] === undefined\n              ? tagEndRegex\n              : match[QUOTE_CHAR] === '\"'\n                ? doubleQuoteAttrEndRegex\n                : singleQuoteAttrEndRegex;\n        }\n      } else if (\n        regex === doubleQuoteAttrEndRegex ||\n        regex === singleQuoteAttrEndRegex\n      ) {\n        regex = tagEndRegex;\n      } else if (regex === commentEndRegex || regex === comment2EndRegex) {\n        regex = textEndRegex;\n      } else {\n        // Not one of the five state regexes, so it must be the dynamically\n        // created raw text regex and we're at the close of that element.\n        regex = tagEndRegex;\n        rawTextEndRegex = undefined;\n      }\n    }\n\n    if (DEV_MODE) {\n      // If we have a attrNameEndIndex, which indicates that we should\n      // rewrite the attribute name, assert that we're in a valid attribute\n      // position - either in a tag, or a quoted attribute value.\n      console.assert(\n        attrNameEndIndex === -1 ||\n          regex === tagEndRegex ||\n          regex === singleQuoteAttrEndRegex ||\n          regex === doubleQuoteAttrEndRegex,\n        'unexpected parse state B'\n      );\n    }\n\n    // We have four cases:\n    //  1. We're in text position, and not in a raw text element\n    //     (regex === textEndRegex): insert a comment marker.\n    //  2. We have a non-negative attrNameEndIndex which means we need to\n    //     rewrite the attribute name to add a bound attribute suffix.\n    //  3. We're at the non-first binding in a multi-binding attribute, use a\n    //     plain marker.\n    //  4. We're somewhere else inside the tag. If we're in attribute name\n    //     position (attrNameEndIndex === -2), add a sequential suffix to\n    //     generate a unique attribute name.\n\n    // Detect a binding next to self-closing tag end and insert a space to\n    // separate the marker from the tag end:\n    const end =\n      regex === tagEndRegex && strings[i + 1].startsWith('/>') ? ' ' : '';\n    html +=\n      regex === textEndRegex\n        ? s + nodeMarker\n        : attrNameEndIndex >= 0\n          ? (attrNames.push(attrName!),\n            s.slice(0, attrNameEndIndex) +\n              boundAttributeSuffix +\n              s.slice(attrNameEndIndex)) +\n            marker +\n            end\n          : s + marker + (attrNameEndIndex === -2 ? i : end);\n  }\n\n  const htmlResult: string | TrustedHTML =\n    html +\n    (strings[l] || '<?>') +\n    (type === SVG_RESULT ? '</svg>' : type === MATHML_RESULT ? '</math>' : '');\n\n  // Returned as an array for terseness\n  return [trustFromTemplateString(strings, htmlResult), attrNames];\n};\n\n/** @internal */\nexport type {Template};\nclass Template {\n  /** @internal */\n  el!: HTMLTemplateElement;\n\n  parts: Array<TemplatePart> = [];\n\n  constructor(\n    // This property needs to remain unminified.\n    {strings, ['_$litType$']: type}: UncompiledTemplateResult,\n    options?: RenderOptions\n  ) {\n    let node: Node | null;\n    let nodeIndex = 0;\n    let attrNameIndex = 0;\n    const partCount = strings.length - 1;\n    const parts = this.parts;\n\n    // Create template element\n    const [html, attrNames] = getTemplateHtml(strings, type);\n    this.el = Template.createElement(html, options);\n    walker.currentNode = this.el.content;\n\n    // Re-parent SVG or MathML nodes into template root\n    if (type === SVG_RESULT || type === MATHML_RESULT) {\n      const wrapper = this.el.content.firstChild!;\n      wrapper.replaceWith(...wrapper.childNodes);\n    }\n\n    // Walk the template to find binding markers and create TemplateParts\n    while ((node = walker.nextNode()) !== null && parts.length < partCount) {\n      if (node.nodeType === 1) {\n        if (DEV_MODE) {\n          const tag = (node as Element).localName;\n          // Warn if `textarea` includes an expression and throw if `template`\n          // does since these are not supported. We do this by checking\n          // innerHTML for anything that looks like a marker. This catches\n          // cases like bindings in textarea there markers turn into text nodes.\n          if (\n            /^(?:textarea|template)$/i!.test(tag) &&\n            (node as Element).innerHTML.includes(marker)\n          ) {\n            const m =\n              `Expressions are not supported inside \\`${tag}\\` ` +\n              `elements. See https://lit.dev/msg/expression-in-${tag} for more ` +\n              `information.`;\n            if (tag === 'template') {\n              throw new Error(m);\n            } else issueWarning('', m);\n          }\n        }\n        // TODO (justinfagnani): for attempted dynamic tag names, we don't\n        // increment the bindingIndex, and it'll be off by 1 in the element\n        // and off by two after it.\n        if ((node as Element).hasAttributes()) {\n          for (const name of (node as Element).getAttributeNames()) {\n            if (name.endsWith(boundAttributeSuffix)) {\n              const realName = attrNames[attrNameIndex++];\n              const value = (node as Element).getAttribute(name)!;\n              const statics = value.split(marker);\n              const m = /([.?@])?(.*)/.exec(realName)!;\n              parts.push({\n                type: ATTRIBUTE_PART,\n                index: nodeIndex,\n                name: m[2],\n                strings: statics,\n                ctor:\n                  m[1] === '.'\n                    ? PropertyPart\n                    : m[1] === '?'\n                      ? BooleanAttributePart\n                      : m[1] === '@'\n                        ? EventPart\n                        : AttributePart,\n              });\n              (node as Element).removeAttribute(name);\n            } else if (name.startsWith(marker)) {\n              parts.push({\n                type: ELEMENT_PART,\n                index: nodeIndex,\n              });\n              (node as Element).removeAttribute(name);\n            }\n          }\n        }\n        // TODO (justinfagnani): benchmark the regex against testing for each\n        // of the 3 raw text element names.\n        if (rawTextElement.test((node as Element).tagName)) {\n          // For raw text elements we need to split the text content on\n          // markers, create a Text node for each segment, and create\n          // a TemplatePart for each marker.\n          const strings = (node as Element).textContent!.split(marker);\n          const lastIndex = strings.length - 1;\n          if (lastIndex > 0) {\n            (node as Element).textContent = trustedTypes\n              ? (trustedTypes.emptyScript as unknown as '')\n              : '';\n            // Generate a new text node for each literal section\n            // These nodes are also used as the markers for child parts\n            for (let i = 0; i < lastIndex; i++) {\n              (node as Element).append(strings[i], createMarker());\n              // Walk past the marker node we just added\n              walker.nextNode();\n              parts.push({type: CHILD_PART, index: ++nodeIndex});\n            }\n            // Note because this marker is added after the walker's current\n            // node, it will be walked to in the outer loop (and ignored), so\n            // we don't need to adjust nodeIndex here\n            (node as Element).append(strings[lastIndex], createMarker());\n          }\n        }\n      } else if (node.nodeType === 8) {\n        const data = (node as Comment).data;\n        if (data === markerMatch) {\n          parts.push({type: CHILD_PART, index: nodeIndex});\n        } else {\n          let i = -1;\n          while ((i = (node as Comment).data.indexOf(marker, i + 1)) !== -1) {\n            // Comment node has a binding marker inside, make an inactive part\n            // The binding won't work, but subsequent bindings will\n            parts.push({type: COMMENT_PART, index: nodeIndex});\n            // Move to the end of the match\n            i += marker.length - 1;\n          }\n        }\n      }\n      nodeIndex++;\n    }\n\n    if (DEV_MODE) {\n      // If there was a duplicate attribute on a tag, then when the tag is\n      // parsed into an element the attribute gets de-duplicated. We can detect\n      // this mismatch if we haven't precisely consumed every attribute name\n      // when preparing the template. This works because `attrNames` is built\n      // from the template string and `attrNameIndex` comes from processing the\n      // resulting DOM.\n      if (attrNames.length !== attrNameIndex) {\n        throw new Error(\n          `Detected duplicate attribute bindings. This occurs if your template ` +\n            `has duplicate attributes on an element tag. For example ` +\n            `\"<input ?disabled=\\${true} ?disabled=\\${false}>\" contains a ` +\n            `duplicate \"disabled\" attribute. The error was detected in ` +\n            `the following template: \\n` +\n            '`' +\n            strings.join('${...}') +\n            '`'\n        );\n      }\n    }\n\n    // We could set walker.currentNode to another node here to prevent a memory\n    // leak, but every time we prepare a template, we immediately render it\n    // and re-use the walker in new TemplateInstance._clone().\n    debugLogEvent &&\n      debugLogEvent({\n        kind: 'template prep',\n        template: this,\n        clonableTemplate: this.el,\n        parts: this.parts,\n        strings,\n      });\n  }\n\n  // Overridden via `litHtmlPolyfillSupport` to provide platform support.\n  /** @nocollapse */\n  static createElement(html: TrustedHTML, _options?: RenderOptions) {\n    const el = d.createElement('template');\n    el.innerHTML = html as unknown as string;\n    return el;\n  }\n}\n\nexport interface Disconnectable {\n  _$parent?: Disconnectable;\n  _$disconnectableChildren?: Set<Disconnectable>;\n  // Rather than hold connection state on instances, Disconnectables recursively\n  // fetch the connection state from the RootPart they are connected in via\n  // getters up the Disconnectable tree via _$parent references. This pushes the\n  // cost of tracking the isConnected state to `AsyncDirectives`, and avoids\n  // needing to pass all Disconnectables (parts, template instances, and\n  // directives) their connection state each time it changes, which would be\n  // costly for trees that have no AsyncDirectives.\n  _$isConnected: boolean;\n}\n\nfunction resolveDirective(\n  part: ChildPart | AttributePart | ElementPart,\n  value: unknown,\n  parent: DirectiveParent = part,\n  attributeIndex?: number\n): unknown {\n  // Bail early if the value is explicitly noChange. Note, this means any\n  // nested directive is still attached and is not run.\n  if (value === noChange) {\n    return value;\n  }\n  let currentDirective =\n    attributeIndex !== undefined\n      ? (parent as AttributePart).__directives?.[attributeIndex]\n      : (parent as ChildPart | ElementPart | Directive).__directive;\n  const nextDirectiveConstructor = isPrimitive(value)\n    ? undefined\n    : // This property needs to remain unminified.\n      (value as DirectiveResult)['_$litDirective$'];\n  if (currentDirective?.constructor !== nextDirectiveConstructor) {\n    // This property needs to remain unminified.\n    currentDirective?.['_$notifyDirectiveConnectionChanged']?.(false);\n    if (nextDirectiveConstructor === undefined) {\n      currentDirective = undefined;\n    } else {\n      currentDirective = new nextDirectiveConstructor(part as PartInfo);\n      currentDirective._$initialize(part, parent, attributeIndex);\n    }\n    if (attributeIndex !== undefined) {\n      ((parent as AttributePart).__directives ??= [])[attributeIndex] =\n        currentDirective;\n    } else {\n      (parent as ChildPart | Directive).__directive = currentDirective;\n    }\n  }\n  if (currentDirective !== undefined) {\n    value = resolveDirective(\n      part,\n      currentDirective._$resolve(part, (value as DirectiveResult).values),\n      currentDirective,\n      attributeIndex\n    );\n  }\n  return value;\n}\n\nexport type {TemplateInstance};\n/**\n * An updateable instance of a Template. Holds references to the Parts used to\n * update the template instance.\n */\nclass TemplateInstance implements Disconnectable {\n  _$template: Template;\n  _$parts: Array<Part | undefined> = [];\n\n  /** @internal */\n  _$parent: ChildPart;\n  /** @internal */\n  _$disconnectableChildren?: Set<Disconnectable> = undefined;\n\n  constructor(template: Template, parent: ChildPart) {\n    this._$template = template;\n    this._$parent = parent;\n  }\n\n  // Called by ChildPart parentNode getter\n  get parentNode() {\n    return this._$parent.parentNode;\n  }\n\n  // See comment in Disconnectable interface for why this is a getter\n  get _$isConnected() {\n    return this._$parent._$isConnected;\n  }\n\n  // This method is separate from the constructor because we need to return a\n  // DocumentFragment and we don't want to hold onto it with an instance field.\n  _clone(options: RenderOptions | undefined) {\n    const {\n      el: {content},\n      parts: parts,\n    } = this._$template;\n    const fragment = (options?.creationScope ?? d).importNode(content, true);\n    walker.currentNode = fragment;\n\n    let node = walker.nextNode()!;\n    let nodeIndex = 0;\n    let partIndex = 0;\n    let templatePart = parts[0];\n\n    while (templatePart !== undefined) {\n      if (nodeIndex === templatePart.index) {\n        let part: Part | undefined;\n        if (templatePart.type === CHILD_PART) {\n          part = new ChildPart(\n            node as HTMLElement,\n            node.nextSibling,\n            this,\n            options\n          );\n        } else if (templatePart.type === ATTRIBUTE_PART) {\n          part = new templatePart.ctor(\n            node as HTMLElement,\n            templatePart.name,\n            templatePart.strings,\n            this,\n            options\n          );\n        } else if (templatePart.type === ELEMENT_PART) {\n          part = new ElementPart(node as HTMLElement, this, options);\n        }\n        this._$parts.push(part);\n        templatePart = parts[++partIndex];\n      }\n      if (nodeIndex !== templatePart?.index) {\n        node = walker.nextNode()!;\n        nodeIndex++;\n      }\n    }\n    // We need to set the currentNode away from the cloned tree so that we\n    // don't hold onto the tree even if the tree is detached and should be\n    // freed.\n    walker.currentNode = d;\n    return fragment;\n  }\n\n  _update(values: Array<unknown>) {\n    let i = 0;\n    for (const part of this._$parts) {\n      if (part !== undefined) {\n        debugLogEvent &&\n          debugLogEvent({\n            kind: 'set part',\n            part,\n            value: values[i],\n            valueIndex: i,\n            values,\n            templateInstance: this,\n          });\n        if ((part as AttributePart).strings !== undefined) {\n          (part as AttributePart)._$setValue(values, part as AttributePart, i);\n          // The number of values the part consumes is part.strings.length - 1\n          // since values are in between template spans. We increment i by 1\n          // later in the loop, so increment it by part.strings.length - 2 here\n          i += (part as AttributePart).strings!.length - 2;\n        } else {\n          part._$setValue(values[i]);\n        }\n      }\n      i++;\n    }\n  }\n}\n\n/*\n * Parts\n */\ntype AttributeTemplatePart = {\n  readonly type: typeof ATTRIBUTE_PART;\n  readonly index: number;\n  readonly name: string;\n  readonly ctor: typeof AttributePart;\n  readonly strings: ReadonlyArray<string>;\n};\ntype ChildTemplatePart = {\n  readonly type: typeof CHILD_PART;\n  readonly index: number;\n};\ntype ElementTemplatePart = {\n  readonly type: typeof ELEMENT_PART;\n  readonly index: number;\n};\ntype CommentTemplatePart = {\n  readonly type: typeof COMMENT_PART;\n  readonly index: number;\n};\n\n/**\n * A TemplatePart represents a dynamic part in a template, before the template\n * is instantiated. When a template is instantiated Parts are created from\n * TemplateParts.\n */\ntype TemplatePart =\n  | ChildTemplatePart\n  | AttributeTemplatePart\n  | ElementTemplatePart\n  | CommentTemplatePart;\n\nexport type Part =\n  | ChildPart\n  | AttributePart\n  | PropertyPart\n  | BooleanAttributePart\n  | ElementPart\n  | EventPart;\n\nexport type {ChildPart};\nclass ChildPart implements Disconnectable {\n  readonly type = CHILD_PART;\n  readonly options: RenderOptions | undefined;\n  _$committedValue: unknown = nothing;\n  /** @internal */\n  __directive?: Directive;\n  /** @internal */\n  _$startNode: ChildNode;\n  /** @internal */\n  _$endNode: ChildNode | null;\n  private _textSanitizer: ValueSanitizer | undefined;\n  /** @internal */\n  _$parent: Disconnectable | undefined;\n  /**\n   * Connection state for RootParts only (i.e. ChildPart without _$parent\n   * returned from top-level `render`). This field is unused otherwise. The\n   * intention would be clearer if we made `RootPart` a subclass of `ChildPart`\n   * with this field (and a different _$isConnected getter), but the subclass\n   * caused a perf regression, possibly due to making call sites polymorphic.\n   * @internal\n   */\n  __isConnected: boolean;\n\n  // See comment in Disconnectable interface for why this is a getter\n  get _$isConnected() {\n    // ChildParts that are not at the root should always be created with a\n    // parent; only RootChildNode's won't, so they return the local isConnected\n    // state\n    return this._$parent?._$isConnected ?? this.__isConnected;\n  }\n\n  // The following fields will be patched onto ChildParts when required by\n  // AsyncDirective\n  /** @internal */\n  _$disconnectableChildren?: Set<Disconnectable> = undefined;\n  /** @internal */\n  _$notifyConnectionChanged?(\n    isConnected: boolean,\n    removeFromParent?: boolean,\n    from?: number\n  ): void;\n  /** @internal */\n  _$reparentDisconnectables?(parent: Disconnectable): void;\n\n  constructor(\n    startNode: ChildNode,\n    endNode: ChildNode | null,\n    parent: TemplateInstance | ChildPart | undefined,\n    options: RenderOptions | undefined\n  ) {\n    this._$startNode = startNode;\n    this._$endNode = endNode;\n    this._$parent = parent;\n    this.options = options;\n    // Note __isConnected is only ever accessed on RootParts (i.e. when there is\n    // no _$parent); the value on a non-root-part is \"don't care\", but checking\n    // for parent would be more code\n    this.__isConnected = options?.isConnected ?? true;\n    if (ENABLE_EXTRA_SECURITY_HOOKS) {\n      // Explicitly initialize for consistent class shape.\n      this._textSanitizer = undefined;\n    }\n  }\n\n  /**\n   * The parent node into which the part renders its content.\n   *\n   * A ChildPart's content consists of a range of adjacent child nodes of\n   * `.parentNode`, possibly bordered by 'marker nodes' (`.startNode` and\n   * `.endNode`).\n   *\n   * - If both `.startNode` and `.endNode` are non-null, then the part's content\n   * consists of all siblings between `.startNode` and `.endNode`, exclusively.\n   *\n   * - If `.startNode` is non-null but `.endNode` is null, then the part's\n   * content consists of all siblings following `.startNode`, up to and\n   * including the last child of `.parentNode`. If `.endNode` is non-null, then\n   * `.startNode` will always be non-null.\n   *\n   * - If both `.endNode` and `.startNode` are null, then the part's content\n   * consists of all child nodes of `.parentNode`.\n   */\n  get parentNode(): Node {\n    let parentNode: Node = wrap(this._$startNode).parentNode!;\n    const parent = this._$parent;\n    if (\n      parent !== undefined &&\n      parentNode?.nodeType === 11 /* Node.DOCUMENT_FRAGMENT */\n    ) {\n      // If the parentNode is a DocumentFragment, it may be because the DOM is\n      // still in the cloned fragment during initial render; if so, get the real\n      // parentNode the part will be committed into by asking the parent.\n      parentNode = (parent as ChildPart | TemplateInstance).parentNode;\n    }\n    return parentNode;\n  }\n\n  /**\n   * The part's leading marker node, if any. See `.parentNode` for more\n   * information.\n   */\n  get startNode(): Node | null {\n    return this._$startNode;\n  }\n\n  /**\n   * The part's trailing marker node, if any. See `.parentNode` for more\n   * information.\n   */\n  get endNode(): Node | null {\n    return this._$endNode;\n  }\n\n  _$setValue(value: unknown, directiveParent: DirectiveParent = this): void {\n    if (DEV_MODE && this.parentNode === null) {\n      throw new Error(\n        `This \\`ChildPart\\` has no \\`parentNode\\` and therefore cannot accept a value. This likely means the element containing the part was manipulated in an unsupported way outside of Lit's control such that the part's marker nodes were ejected from DOM. For example, setting the element's \\`innerHTML\\` or \\`textContent\\` can do this.`\n      );\n    }\n    value = resolveDirective(this, value, directiveParent);\n    if (isPrimitive(value)) {\n      // Non-rendering child values. It's important that these do not render\n      // empty text nodes to avoid issues with preventing default <slot>\n      // fallback content.\n      if (value === nothing || value == null || value === '') {\n        if (this._$committedValue !== nothing) {\n          debugLogEvent &&\n            debugLogEvent({\n              kind: 'commit nothing to child',\n              start: this._$startNode,\n              end: this._$endNode,\n              parent: this._$parent,\n              options: this.options,\n            });\n          this._$clear();\n        }\n        this._$committedValue = nothing;\n      } else if (value !== this._$committedValue && value !== noChange) {\n        this._commitText(value);\n      }\n      // This property needs to remain unminified.\n    } else if ((value as TemplateResult)['_$litType$'] !== undefined) {\n      this._commitTemplateResult(value as TemplateResult);\n    } else if ((value as Node).nodeType !== undefined) {\n      if (DEV_MODE && this.options?.host === value) {\n        this._commitText(\n          `[probable mistake: rendered a template's host in itself ` +\n            `(commonly caused by writing \\${this} in a template]`\n        );\n        console.warn(\n          `Attempted to render the template host`,\n          value,\n          `inside itself. This is almost always a mistake, and in dev mode `,\n          `we render some warning text. In production however, we'll `,\n          `render it, which will usually result in an error, and sometimes `,\n          `in the element disappearing from the DOM.`\n        );\n        return;\n      }\n      this._commitNode(value as Node);\n    } else if (isIterable(value)) {\n      this._commitIterable(value);\n    } else {\n      // Fallback, will render the string representation\n      this._commitText(value);\n    }\n  }\n\n  private _insert<T extends Node>(node: T) {\n    return wrap(wrap(this._$startNode).parentNode!).insertBefore(\n      node,\n      this._$endNode\n    );\n  }\n\n  private _commitNode(value: Node): void {\n    if (this._$committedValue !== value) {\n      this._$clear();\n      if (\n        ENABLE_EXTRA_SECURITY_HOOKS &&\n        sanitizerFactoryInternal !== noopSanitizer\n      ) {\n        const parentNodeName = this._$startNode.parentNode?.nodeName;\n        if (parentNodeName === 'STYLE' || parentNodeName === 'SCRIPT') {\n          let message = 'Forbidden';\n          if (DEV_MODE) {\n            if (parentNodeName === 'STYLE') {\n              message =\n                `Lit does not support binding inside style nodes. ` +\n                `This is a security risk, as style injection attacks can ` +\n                `exfiltrate data and spoof UIs. ` +\n                `Consider instead using css\\`...\\` literals ` +\n                `to compose styles, and do dynamic styling with ` +\n                `css custom properties, ::parts, <slot>s, ` +\n                `and by mutating the DOM rather than stylesheets.`;\n            } else {\n              message =\n                `Lit does not support binding inside script nodes. ` +\n                `This is a security risk, as it could allow arbitrary ` +\n                `code execution.`;\n            }\n          }\n          throw new Error(message);\n        }\n      }\n      debugLogEvent &&\n        debugLogEvent({\n          kind: 'commit node',\n          start: this._$startNode,\n          parent: this._$parent,\n          value: value,\n          options: this.options,\n        });\n      this._$committedValue = this._insert(value);\n    }\n  }\n\n  private _commitText(value: unknown): void {\n    // If the committed value is a primitive it means we called _commitText on\n    // the previous render, and we know that this._$startNode.nextSibling is a\n    // Text node. We can now just replace the text content (.data) of the node.\n    if (\n      this._$committedValue !== nothing &&\n      isPrimitive(this._$committedValue)\n    ) {\n      const node = wrap(this._$startNode).nextSibling as Text;\n      if (ENABLE_EXTRA_SECURITY_HOOKS) {\n        if (this._textSanitizer === undefined) {\n          this._textSanitizer = createSanitizer(node, 'data', 'property');\n        }\n        value = this._textSanitizer(value);\n      }\n      debugLogEvent &&\n        debugLogEvent({\n          kind: 'commit text',\n          node,\n          value,\n          options: this.options,\n        });\n      (node as Text).data = value as string;\n    } else {\n      if (ENABLE_EXTRA_SECURITY_HOOKS) {\n        const textNode = d.createTextNode('');\n        this._commitNode(textNode);\n        // When setting text content, for security purposes it matters a lot\n        // what the parent is. For example, <style> and <script> need to be\n        // handled with care, while <span> does not. So first we need to put a\n        // text node into the document, then we can sanitize its content.\n        if (this._textSanitizer === undefined) {\n          this._textSanitizer = createSanitizer(textNode, 'data', 'property');\n        }\n        value = this._textSanitizer(value);\n        debugLogEvent &&\n          debugLogEvent({\n            kind: 'commit text',\n            node: textNode,\n            value,\n            options: this.options,\n          });\n        textNode.data = value as string;\n      } else {\n        this._commitNode(d.createTextNode(value as string));\n        debugLogEvent &&\n          debugLogEvent({\n            kind: 'commit text',\n            node: wrap(this._$startNode).nextSibling as Text,\n            value,\n            options: this.options,\n          });\n      }\n    }\n    this._$committedValue = value;\n  }\n\n  private _commitTemplateResult(\n    result: TemplateResult | CompiledTemplateResult\n  ): void {\n    // This property needs to remain unminified.\n    const {values, ['_$litType$']: type} = result;\n    // If $litType$ is a number, result is a plain TemplateResult and we get\n    // the template from the template cache. If not, result is a\n    // CompiledTemplateResult and _$litType$ is a CompiledTemplate and we need\n    // to create the <template> element the first time we see it.\n    const template: Template | CompiledTemplate =\n      typeof type === 'number'\n        ? this._$getTemplate(result as UncompiledTemplateResult)\n        : (type.el === undefined &&\n            (type.el = Template.createElement(\n              trustFromTemplateString(type.h, type.h[0]),\n              this.options\n            )),\n          type);\n\n    if ((this._$committedValue as TemplateInstance)?._$template === template) {\n      debugLogEvent &&\n        debugLogEvent({\n          kind: 'template updating',\n          template,\n          instance: this._$committedValue as TemplateInstance,\n          parts: (this._$committedValue as TemplateInstance)._$parts,\n          options: this.options,\n          values,\n        });\n      (this._$committedValue as TemplateInstance)._update(values);\n    } else {\n      const instance = new TemplateInstance(template as Template, this);\n      const fragment = instance._clone(this.options);\n      debugLogEvent &&\n        debugLogEvent({\n          kind: 'template instantiated',\n          template,\n          instance,\n          parts: instance._$parts,\n          options: this.options,\n          fragment,\n          values,\n        });\n      instance._update(values);\n      debugLogEvent &&\n        debugLogEvent({\n          kind: 'template instantiated and updated',\n          template,\n          instance,\n          parts: instance._$parts,\n          options: this.options,\n          fragment,\n          values,\n        });\n      this._commitNode(fragment);\n      this._$committedValue = instance;\n    }\n  }\n\n  // Overridden via `litHtmlPolyfillSupport` to provide platform support.\n  /** @internal */\n  _$getTemplate(result: UncompiledTemplateResult) {\n    let template = templateCache.get(result.strings);\n    if (template === undefined) {\n      templateCache.set(result.strings, (template = new Template(result)));\n    }\n    return template;\n  }\n\n  private _commitIterable(value: Iterable<unknown>): void {\n    // For an Iterable, we create a new InstancePart per item, then set its\n    // value to the item. This is a little bit of overhead for every item in\n    // an Iterable, but it lets us recurse easily and efficiently update Arrays\n    // of TemplateResults that will be commonly returned from expressions like:\n    // array.map((i) => html`${i}`), by reusing existing TemplateInstances.\n\n    // If value is an array, then the previous render was of an\n    // iterable and value will contain the ChildParts from the previous\n    // render. If value is not an array, clear this part and make a new\n    // array for ChildParts.\n    if (!isArray(this._$committedValue)) {\n      this._$committedValue = [];\n      this._$clear();\n    }\n\n    // Lets us keep track of how many items we stamped so we can clear leftover\n    // items from a previous render\n    const itemParts = this._$committedValue as ChildPart[];\n    let partIndex = 0;\n    let itemPart: ChildPart | undefined;\n\n    for (const item of value) {\n      if (partIndex === itemParts.length) {\n        // If no existing part, create a new one\n        // TODO (justinfagnani): test perf impact of always creating two parts\n        // instead of sharing parts between nodes\n        // https://github.com/lit/lit/issues/1266\n        itemParts.push(\n          (itemPart = new ChildPart(\n            this._insert(createMarker()),\n            this._insert(createMarker()),\n            this,\n            this.options\n          ))\n        );\n      } else {\n        // Reuse an existing part\n        itemPart = itemParts[partIndex];\n      }\n      itemPart._$setValue(item);\n      partIndex++;\n    }\n\n    if (partIndex < itemParts.length) {\n      // itemParts always have end nodes\n      this._$clear(\n        itemPart && wrap(itemPart._$endNode!).nextSibling,\n        partIndex\n      );\n      // Truncate the parts array so _value reflects the current state\n      itemParts.length = partIndex;\n    }\n  }\n\n  /**\n   * Removes the nodes contained within this Part from the DOM.\n   *\n   * @param start Start node to clear from, for clearing a subset of the part's\n   *     DOM (used when truncating iterables)\n   * @param from  When `start` is specified, the index within the iterable from\n   *     which ChildParts are being removed, used for disconnecting directives\n   *     in those Parts.\n   *\n   * @internal\n   */\n  _$clear(\n    start: ChildNode | null = wrap(this._$startNode).nextSibling,\n    from?: number\n  ) {\n    this._$notifyConnectionChanged?.(false, true, from);\n    while (start !== this._$endNode) {\n      // The non-null assertion is safe because if _$startNode.nextSibling is\n      // null, then _$endNode is also null, and we would not have entered this\n      // loop.\n      const n = wrap(start!).nextSibling;\n      wrap(start!).remove();\n      start = n;\n    }\n  }\n\n  /**\n   * Implementation of RootPart's `isConnected`. Note that this method\n   * should only be called on `RootPart`s (the `ChildPart` returned from a\n   * top-level `render()` call). It has no effect on non-root ChildParts.\n   * @param isConnected Whether to set\n   * @internal\n   */\n  setConnected(isConnected: boolean) {\n    if (this._$parent === undefined) {\n      this.__isConnected = isConnected;\n      this._$notifyConnectionChanged?.(isConnected);\n    } else if (DEV_MODE) {\n      throw new Error(\n        'part.setConnected() may only be called on a ' +\n          'RootPart returned from render().'\n      );\n    }\n  }\n}\n\n/**\n * A top-level `ChildPart` returned from `render` that manages the connected\n * state of `AsyncDirective`s created throughout the tree below it.\n */\nexport interface RootPart extends ChildPart {\n  /**\n   * Sets the connection state for `AsyncDirective`s contained within this root\n   * ChildPart.\n   *\n   * lit-html does not automatically monitor the connectedness of DOM rendered;\n   * as such, it is the responsibility of the caller to `render` to ensure that\n   * `part.setConnected(false)` is called before the part object is potentially\n   * discarded, to ensure that `AsyncDirective`s have a chance to dispose of\n   * any resources being held. If a `RootPart` that was previously\n   * disconnected is subsequently re-connected (and its `AsyncDirective`s should\n   * re-connect), `setConnected(true)` should be called.\n   *\n   * @param isConnected Whether directives within this tree should be connected\n   * or not\n   */\n  setConnected(isConnected: boolean): void;\n}\n\nexport type {AttributePart};\nclass AttributePart implements Disconnectable {\n  readonly type:\n    | typeof ATTRIBUTE_PART\n    | typeof PROPERTY_PART\n    | typeof BOOLEAN_ATTRIBUTE_PART\n    | typeof EVENT_PART = ATTRIBUTE_PART;\n  readonly element: HTMLElement;\n  readonly name: string;\n  readonly options: RenderOptions | undefined;\n\n  /**\n   * If this attribute part represents an interpolation, this contains the\n   * static strings of the interpolation. For single-value, complete bindings,\n   * this is undefined.\n   */\n  readonly strings?: ReadonlyArray<string>;\n  /** @internal */\n  _$committedValue: unknown | Array<unknown> = nothing;\n  /** @internal */\n  __directives?: Array<Directive | undefined>;\n  /** @internal */\n  _$parent: Disconnectable;\n  /** @internal */\n  _$disconnectableChildren?: Set<Disconnectable> = undefined;\n\n  protected _sanitizer: ValueSanitizer | undefined;\n\n  get tagName() {\n    return this.element.tagName;\n  }\n\n  // See comment in Disconnectable interface for why this is a getter\n  get _$isConnected() {\n    return this._$parent._$isConnected;\n  }\n\n  constructor(\n    element: HTMLElement,\n    name: string,\n    strings: ReadonlyArray<string>,\n    parent: Disconnectable,\n    options: RenderOptions | undefined\n  ) {\n    this.element = element;\n    this.name = name;\n    this._$parent = parent;\n    this.options = options;\n    if (strings.length > 2 || strings[0] !== '' || strings[1] !== '') {\n      this._$committedValue = new Array(strings.length - 1).fill(new String());\n      this.strings = strings;\n    } else {\n      this._$committedValue = nothing;\n    }\n    if (ENABLE_EXTRA_SECURITY_HOOKS) {\n      this._sanitizer = undefined;\n    }\n  }\n\n  /**\n   * Sets the value of this part by resolving the value from possibly multiple\n   * values and static strings and committing it to the DOM.\n   * If this part is single-valued, `this._strings` will be undefined, and the\n   * method will be called with a single value argument. If this part is\n   * multi-value, `this._strings` will be defined, and the method is called\n   * with the value array of the part's owning TemplateInstance, and an offset\n   * into the value array from which the values should be read.\n   * This method is overloaded this way to eliminate short-lived array slices\n   * of the template instance values, and allow a fast-path for single-valued\n   * parts.\n   *\n   * @param value The part value, or an array of values for multi-valued parts\n   * @param valueIndex the index to start reading values from. `undefined` for\n   *   single-valued parts\n   * @param noCommit causes the part to not commit its value to the DOM. Used\n   *   in hydration to prime attribute parts with their first-rendered value,\n   *   but not set the attribute, and in SSR to no-op the DOM operation and\n   *   capture the value for serialization.\n   *\n   * @internal\n   */\n  _$setValue(\n    value: unknown | Array<unknown>,\n    directiveParent: DirectiveParent = this,\n    valueIndex?: number,\n    noCommit?: boolean\n  ) {\n    const strings = this.strings;\n\n    // Whether any of the values has changed, for dirty-checking\n    let change = false;\n\n    if (strings === undefined) {\n      // Single-value binding case\n      value = resolveDirective(this, value, directiveParent, 0);\n      change =\n        !isPrimitive(value) ||\n        (value !== this._$committedValue && value !== noChange);\n      if (change) {\n        this._$committedValue = value;\n      }\n    } else {\n      // Interpolation case\n      const values = value as Array<unknown>;\n      value = strings[0];\n\n      let i, v;\n      for (i = 0; i < strings.length - 1; i++) {\n        v = resolveDirective(this, values[valueIndex! + i], directiveParent, i);\n\n        if (v === noChange) {\n          // If the user-provided value is `noChange`, use the previous value\n          v = (this._$committedValue as Array<unknown>)[i];\n        }\n        change ||=\n          !isPrimitive(v) || v !== (this._$committedValue as Array<unknown>)[i];\n        if (v === nothing) {\n          value = nothing;\n        } else if (value !== nothing) {\n          value += (v ?? '') + strings[i + 1];\n        }\n        // We always record each value, even if one is `nothing`, for future\n        // change detection.\n        (this._$committedValue as Array<unknown>)[i] = v;\n      }\n    }\n    if (change && !noCommit) {\n      this._commitValue(value);\n    }\n  }\n\n  /** @internal */\n  _commitValue(value: unknown) {\n    if (value === nothing) {\n      (wrap(this.element) as Element).removeAttribute(this.name);\n    } else {\n      if (ENABLE_EXTRA_SECURITY_HOOKS) {\n        if (this._sanitizer === undefined) {\n          this._sanitizer = sanitizerFactoryInternal(\n            this.element,\n            this.name,\n            'attribute'\n          );\n        }\n        value = this._sanitizer(value ?? '');\n      }\n      debugLogEvent &&\n        debugLogEvent({\n          kind: 'commit attribute',\n          element: this.element,\n          name: this.name,\n          value,\n          options: this.options,\n        });\n      (wrap(this.element) as Element).setAttribute(\n        this.name,\n        (value ?? '') as string\n      );\n    }\n  }\n}\n\nexport type {PropertyPart};\nclass PropertyPart extends AttributePart {\n  override readonly type = PROPERTY_PART;\n\n  /** @internal */\n  override _commitValue(value: unknown) {\n    if (ENABLE_EXTRA_SECURITY_HOOKS) {\n      if (this._sanitizer === undefined) {\n        this._sanitizer = sanitizerFactoryInternal(\n          this.element,\n          this.name,\n          'property'\n        );\n      }\n      value = this._sanitizer(value);\n    }\n    debugLogEvent &&\n      debugLogEvent({\n        kind: 'commit property',\n        element: this.element,\n        name: this.name,\n        value,\n        options: this.options,\n      });\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    (this.element as any)[this.name] = value === nothing ? undefined : value;\n  }\n}\n\nexport type {BooleanAttributePart};\nclass BooleanAttributePart extends AttributePart {\n  override readonly type = BOOLEAN_ATTRIBUTE_PART;\n\n  /** @internal */\n  override _commitValue(value: unknown) {\n    debugLogEvent &&\n      debugLogEvent({\n        kind: 'commit boolean attribute',\n        element: this.element,\n        name: this.name,\n        value: !!(value && value !== nothing),\n        options: this.options,\n      });\n    (wrap(this.element) as Element).toggleAttribute(\n      this.name,\n      !!value && value !== nothing\n    );\n  }\n}\n\ntype EventListenerWithOptions = EventListenerOrEventListenerObject &\n  Partial<AddEventListenerOptions>;\n\n/**\n * An AttributePart that manages an event listener via add/removeEventListener.\n *\n * This part works by adding itself as the event listener on an element, then\n * delegating to the value passed to it. This reduces the number of calls to\n * add/removeEventListener if the listener changes frequently, such as when an\n * inline function is used as a listener.\n *\n * Because event options are passed when adding listeners, we must take case\n * to add and remove the part as a listener when the event options change.\n */\nexport type {EventPart};\nclass EventPart extends AttributePart {\n  override readonly type = EVENT_PART;\n\n  constructor(\n    element: HTMLElement,\n    name: string,\n    strings: ReadonlyArray<string>,\n    parent: Disconnectable,\n    options: RenderOptions | undefined\n  ) {\n    super(element, name, strings, parent, options);\n\n    if (DEV_MODE && this.strings !== undefined) {\n      throw new Error(\n        `A \\`<${element.localName}>\\` has a \\`@${name}=...\\` listener with ` +\n          'invalid content. Event listeners in templates must have exactly ' +\n          'one expression and no surrounding text.'\n      );\n    }\n  }\n\n  // EventPart does not use the base _$setValue/_resolveValue implementation\n  // since the dirty checking is more complex\n  /** @internal */\n  override _$setValue(\n    newListener: unknown,\n    directiveParent: DirectiveParent = this\n  ) {\n    newListener =\n      resolveDirective(this, newListener, directiveParent, 0) ?? nothing;\n    if (newListener === noChange) {\n      return;\n    }\n    const oldListener = this._$committedValue;\n\n    // If the new value is nothing or any options change we have to remove the\n    // part as a listener.\n    const shouldRemoveListener =\n      (newListener === nothing && oldListener !== nothing) ||\n      (newListener as EventListenerWithOptions).capture !==\n        (oldListener as EventListenerWithOptions).capture ||\n      (newListener as EventListenerWithOptions).once !==\n        (oldListener as EventListenerWithOptions).once ||\n      (newListener as EventListenerWithOptions).passive !==\n        (oldListener as EventListenerWithOptions).passive;\n\n    // If the new value is not nothing and we removed the listener, we have\n    // to add the part as a listener.\n    const shouldAddListener =\n      newListener !== nothing &&\n      (oldListener === nothing || shouldRemoveListener);\n\n    debugLogEvent &&\n      debugLogEvent({\n        kind: 'commit event listener',\n        element: this.element,\n        name: this.name,\n        value: newListener,\n        options: this.options,\n        removeListener: shouldRemoveListener,\n        addListener: shouldAddListener,\n        oldListener,\n      });\n    if (shouldRemoveListener) {\n      this.element.removeEventListener(\n        this.name,\n        this,\n        oldListener as EventListenerWithOptions\n      );\n    }\n    if (shouldAddListener) {\n      this.element.addEventListener(\n        this.name,\n        this,\n        newListener as EventListenerWithOptions\n      );\n    }\n    this._$committedValue = newListener;\n  }\n\n  handleEvent(event: Event) {\n    if (typeof this._$committedValue === 'function') {\n      this._$committedValue.call(this.options?.host ?? this.element, event);\n    } else {\n      (this._$committedValue as EventListenerObject).handleEvent(event);\n    }\n  }\n}\n\nexport type {ElementPart};\nclass ElementPart implements Disconnectable {\n  readonly type = ELEMENT_PART;\n\n  /** @internal */\n  __directive?: Directive;\n\n  // This is to ensure that every Part has a _$committedValue\n  _$committedValue: undefined;\n\n  /** @internal */\n  _$parent!: Disconnectable;\n\n  /** @internal */\n  _$disconnectableChildren?: Set<Disconnectable> = undefined;\n\n  options: RenderOptions | undefined;\n\n  constructor(\n    public element: Element,\n    parent: Disconnectable,\n    options: RenderOptions | undefined\n  ) {\n    this._$parent = parent;\n    this.options = options;\n  }\n\n  // See comment in Disconnectable interface for why this is a getter\n  get _$isConnected() {\n    return this._$parent._$isConnected;\n  }\n\n  _$setValue(value: unknown): void {\n    debugLogEvent &&\n      debugLogEvent({\n        kind: 'commit to element binding',\n        element: this.element,\n        value,\n        options: this.options,\n      });\n    resolveDirective(this, value);\n  }\n}\n\n/**\n * END USERS SHOULD NOT RELY ON THIS OBJECT.\n *\n * Private exports for use by other Lit packages, not intended for use by\n * external users.\n *\n * We currently do not make a mangled rollup build of the lit-ssr code. In order\n * to keep a number of (otherwise private) top-level exports mangled in the\n * client side code, we export a _$LH object containing those members (or\n * helper methods for accessing private fields of those members), and then\n * re-export them for use in lit-ssr. This keeps lit-ssr agnostic to whether the\n * client-side code is being used in `dev` mode or `prod` mode.\n *\n * This has a unique name, to disambiguate it from private exports in\n * lit-element, which re-exports all of lit-html.\n *\n * @private\n */\nexport const _$LH = {\n  // Used in lit-ssr\n  _boundAttributeSuffix: boundAttributeSuffix,\n  _marker: marker,\n  _markerMatch: markerMatch,\n  _HTML_RESULT: HTML_RESULT,\n  _getTemplateHtml: getTemplateHtml,\n  // Used in tests and private-ssr-support\n  _TemplateInstance: TemplateInstance,\n  _isIterable: isIterable,\n  _resolveDirective: resolveDirective,\n  _ChildPart: ChildPart,\n  _AttributePart: AttributePart,\n  _BooleanAttributePart: BooleanAttributePart,\n  _EventPart: EventPart,\n  _PropertyPart: PropertyPart,\n  _ElementPart: ElementPart,\n};\n\n// Apply polyfills if available\nconst polyfillSupport = DEV_MODE\n  ? global.litHtmlPolyfillSupportDevMode\n  : global.litHtmlPolyfillSupport;\npolyfillSupport?.(Template, ChildPart);\n\n// IMPORTANT: do not change the property name or the assignment expression.\n// This line will be used in regexes to search for lit-html usage.\n(global.litHtmlVersions ??= []).push('3.3.3');\nif (DEV_MODE && global.litHtmlVersions.length > 1) {\n  queueMicrotask(() => {\n    issueWarning!(\n      'multiple-versions',\n      `Multiple versions of Lit loaded. ` +\n        `Loading multiple versions is not recommended.`\n    );\n  });\n}\n\n/**\n * Renders a value, usually a lit-html TemplateResult, to the container.\n *\n * This example renders the text \"Hello, Zoe!\" inside a paragraph tag, appending\n * it to the container `document.body`.\n *\n * ```js\n * import {html, render} from 'lit';\n *\n * const name = \"Zoe\";\n * render(html`<p>Hello, ${name}!</p>`, document.body);\n * ```\n *\n * @param value Any [renderable\n *   value](https://lit.dev/docs/templates/expressions/#child-expressions),\n *   typically a {@linkcode TemplateResult} created by evaluating a template tag\n *   like {@linkcode html} or {@linkcode svg}.\n * @param container A DOM container to render to. The first render will append\n *   the rendered value to the container, and subsequent renders will\n *   efficiently update the rendered value if the same result type was\n *   previously rendered there.\n * @param options See {@linkcode RenderOptions} for options documentation.\n * @see\n * {@link https://lit.dev/docs/libraries/standalone-templates/#rendering-lit-html-templates| Rendering Lit HTML Templates}\n */\nexport const render = (\n  value: unknown,\n  container: RenderRootNode,\n  options?: RenderOptions\n): RootPart => {\n  if (DEV_MODE && container == null) {\n    // Give a clearer error message than\n    //     Uncaught TypeError: Cannot read properties of null (reading\n    //     '_$litPart$')\n    // which reads like an internal Lit error.\n    throw new TypeError(`The container to render into may not be ${container}`);\n  }\n  const renderId = DEV_MODE ? debugLogRenderId++ : 0;\n  const partOwnerNode = options?.renderBefore ?? container;\n  // This property needs to remain unminified.\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  let part: ChildPart = (partOwnerNode as any)['_$litPart$'];\n  debugLogEvent &&\n    debugLogEvent({\n      kind: 'begin render',\n      id: renderId,\n      value,\n      container,\n      options,\n      part,\n    });\n  if (part === undefined) {\n    const endNode = options?.renderBefore ?? null;\n    // This property needs to remain unminified.\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    (partOwnerNode as any)['_$litPart$'] = part = new ChildPart(\n      container.insertBefore(createMarker(), endNode),\n      endNode,\n      undefined,\n      options ?? {}\n    );\n  }\n  part._$setValue(value);\n  debugLogEvent &&\n    debugLogEvent({\n      kind: 'end render',\n      id: renderId,\n      value,\n      container,\n      options,\n      part,\n    });\n  return part as RootPart;\n};\n\nif (ENABLE_EXTRA_SECURITY_HOOKS) {\n  render.setSanitizer = setSanitizer;\n  render.createSanitizer = createSanitizer;\n  if (DEV_MODE) {\n    render._testOnlyClearSanitizerFactoryDoNotCallOrElse =\n      _testOnlyClearSanitizerFactoryDoNotCallOrElse;\n  }\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/**\n * The main LitElement module, which defines the {@linkcode LitElement} base\n * class and related APIs.\n *\n * LitElement components can define a template and a set of observed\n * properties. Changing an observed property triggers a re-render of the\n * element.\n *\n * Import {@linkcode LitElement} and {@linkcode html} from this module to\n * create a component:\n *\n *  ```js\n * import {LitElement, html} from 'lit-element';\n *\n * class MyElement extends LitElement {\n *\n *   // Declare observed properties\n *   static get properties() {\n *     return {\n *       adjective: {}\n *     }\n *   }\n *\n *   constructor() {\n *     this.adjective = 'awesome';\n *   }\n *\n *   // Define the element's template\n *   render() {\n *     return html`<p>your ${adjective} template here</p>`;\n *   }\n * }\n *\n * customElements.define('my-element', MyElement);\n * ```\n *\n * `LitElement` extends {@linkcode ReactiveElement} and adds lit-html\n * templating. The `ReactiveElement` class is provided for users that want to\n * build their own custom element base classes that don't use lit-html.\n *\n * @packageDocumentation\n */\nimport {PropertyValues, ReactiveElement} from '@lit/reactive-element';\nimport {render, RenderOptions, noChange, RootPart} from 'lit-html';\nexport * from '@lit/reactive-element';\nexport * from 'lit-html';\n\nimport {LitUnstable} from 'lit-html';\nimport {ReactiveUnstable} from '@lit/reactive-element';\n\n/**\n * Contains types that are part of the unstable debug API.\n *\n * Everything in this API is not stable and may change or be removed in the future,\n * even on patch releases.\n */\n// eslint-disable-next-line @typescript-eslint/no-namespace\nexport namespace Unstable {\n  /**\n   * When Lit is running in dev mode and `window.emitLitDebugLogEvents` is true,\n   * we will emit 'lit-debug' events to window, with live details about the update and render\n   * lifecycle. These can be useful for writing debug tooling and visualizations.\n   *\n   * Please be aware that running with window.emitLitDebugLogEvents has performance overhead,\n   * making certain operations that are normally very cheap (like a no-op render) much slower,\n   * because we must copy data and dispatch events.\n   */\n  // eslint-disable-next-line @typescript-eslint/no-namespace\n  export namespace DebugLog {\n    export type Entry =\n      | LitUnstable.DebugLog.Entry\n      | ReactiveUnstable.DebugLog.Entry;\n  }\n}\n/*\n * When using Closure Compiler, JSCompiler_renameProperty(property, object) is\n * replaced at compile time by the munged name for object[property]. We cannot\n * alias this function, so we have to use a small shim that has the same\n * behavior when not compiling.\n */\n/*@__INLINE__*/\nconst JSCompiler_renameProperty = <P extends PropertyKey>(\n  prop: P,\n  _obj: unknown\n): P => prop;\n\nconst DEV_MODE = true;\n// Allows minifiers to rename references to globalThis\nconst global = globalThis;\n\nlet issueWarning: (code: string, warning: string) => void;\n\nif (DEV_MODE) {\n  // Ensure warnings are issued only 1x, even if multiple versions of Lit\n  // are loaded.\n  global.litIssuedWarnings ??= new Set();\n\n  /**\n   * Issue a warning if we haven't already, based either on `code` or `warning`.\n   * Warnings are disabled automatically only by `warning`; disabling via `code`\n   * can be done by users.\n   */\n  issueWarning = (code: string, warning: string) => {\n    warning += ` See https://lit.dev/msg/${code} for more information.`;\n    if (\n      !global.litIssuedWarnings!.has(warning) &&\n      !global.litIssuedWarnings!.has(code)\n    ) {\n      console.warn(warning);\n      global.litIssuedWarnings!.add(warning);\n    }\n  };\n}\n\n/**\n * Base element class that manages element properties and attributes, and\n * renders a lit-html template.\n *\n * To define a component, subclass `LitElement` and implement a\n * `render` method to provide the component's template. Define properties\n * using the {@linkcode LitElement.properties properties} property or the\n * {@linkcode property} decorator.\n */\nexport class LitElement extends ReactiveElement {\n  // This property needs to remain unminified.\n  static ['_$litElement$'] = true;\n\n  /**\n   * @category rendering\n   */\n  readonly renderOptions: RenderOptions = {host: this};\n\n  private __childPart: RootPart | undefined = undefined;\n\n  /**\n   * @category rendering\n   */\n  protected override createRenderRoot() {\n    const renderRoot = super.createRenderRoot();\n    // When adoptedStyleSheets are shimmed, they are inserted into the\n    // shadowRoot by createRenderRoot. Adjust the renderBefore node so that\n    // any styles in Lit content render before adoptedStyleSheets. This is\n    // important so that adoptedStyleSheets have precedence over styles in\n    // the shadowRoot.\n    this.renderOptions.renderBefore ??= renderRoot!.firstChild as ChildNode;\n    return renderRoot;\n  }\n\n  /**\n   * Updates the element. This method reflects property values to attributes\n   * and calls `render` to render DOM via lit-html. Setting properties inside\n   * this method will *not* trigger another update.\n   * @param changedProperties Map of changed properties with old values\n   * @category updates\n   */\n  protected override update(changedProperties: PropertyValues) {\n    // Setting properties in `render` should not trigger an update. Since\n    // updates are allowed after super.update, it's important to call `render`\n    // before that.\n    const value = this.render();\n    if (!this.hasUpdated) {\n      this.renderOptions.isConnected = this.isConnected;\n    }\n    super.update(changedProperties);\n    this.__childPart = render(value, this.renderRoot, this.renderOptions);\n  }\n\n  /**\n   * Invoked when the component is added to the document's DOM.\n   *\n   * In `connectedCallback()` you should setup tasks that should only occur when\n   * the element is connected to the document. The most common of these is\n   * adding event listeners to nodes external to the element, like a keydown\n   * event handler added to the window.\n   *\n   * ```ts\n   * connectedCallback() {\n   *   super.connectedCallback();\n   *   addEventListener('keydown', this._handleKeydown);\n   * }\n   * ```\n   *\n   * Typically, anything done in `connectedCallback()` should be undone when the\n   * element is disconnected, in `disconnectedCallback()`.\n   *\n   * @category lifecycle\n   */\n  override connectedCallback() {\n    super.connectedCallback();\n    this.__childPart?.setConnected(true);\n  }\n\n  /**\n   * Invoked when the component is removed from the document's DOM.\n   *\n   * This callback is the main signal to the element that it may no longer be\n   * used. `disconnectedCallback()` should ensure that nothing is holding a\n   * reference to the element (such as event listeners added to nodes external\n   * to the element), so that it is free to be garbage collected.\n   *\n   * ```ts\n   * disconnectedCallback() {\n   *   super.disconnectedCallback();\n   *   window.removeEventListener('keydown', this._handleKeydown);\n   * }\n   * ```\n   *\n   * An element may be re-connected after being disconnected.\n   *\n   * @category lifecycle\n   */\n  override disconnectedCallback() {\n    super.disconnectedCallback();\n    this.__childPart?.setConnected(false);\n  }\n\n  /**\n   * Invoked on each update to perform rendering tasks. This method may return\n   * any value renderable by lit-html's `ChildPart` - typically a\n   * `TemplateResult`. Setting properties inside this method will *not* trigger\n   * the element to update.\n   * @category rendering\n   */\n  protected render(): unknown {\n    return noChange;\n  }\n}\n\n/**\n * Ensure this class is marked as `finalized` as an optimization ensuring\n * it will not needlessly try to `finalize`.\n *\n * Note this property name is a string to prevent breaking Closure JS Compiler\n * optimizations. See @lit/reactive-element for more information.\n */\n(LitElement as unknown as Record<string, unknown>)[\n  JSCompiler_renameProperty('finalized', LitElement)\n] = true;\n\n// Install hydration if available\nglobal.litElementHydrateSupport?.({LitElement});\n\n// Apply polyfills if available\nconst polyfillSupport = DEV_MODE\n  ? global.litElementPolyfillSupportDevMode\n  : global.litElementPolyfillSupport;\npolyfillSupport?.({LitElement});\n\n/**\n * END USERS SHOULD NOT RELY ON THIS OBJECT.\n *\n * Private exports for use by other Lit packages, not intended for use by\n * external users.\n *\n * We currently do not make a mangled rollup build of the lit-ssr code. In order\n * to keep a number of (otherwise private) top-level exports  mangled in the\n * client side code, we export a _$LE object containing those members (or\n * helper methods for accessing private fields of those members), and then\n * re-export them for use in lit-ssr. This keeps lit-ssr agnostic to whether the\n * client-side code is being used in `dev` mode or `prod` mode.\n *\n * This has a unique name, to disambiguate it from private exports in\n * lit-html, since this module re-exports all of lit-html.\n *\n * @private\n */\nexport const _$LE = {\n  _$attributeToProperty: (\n    el: LitElement,\n    name: string,\n    value: string | null\n  ) => {\n    // eslint-disable-next-line\n    (el as any)._$attributeToProperty(name, value);\n  },\n  // eslint-disable-next-line\n  _$changedProperties: (el: LitElement) => (el as any)._$changedProperties,\n};\n\n// IMPORTANT: do not change the property name or the assignment expression.\n// This line will be used in regexes to search for LitElement usage.\n(global.litElementVersions ??= []).push('4.2.2');\nif (DEV_MODE && global.litElementVersions.length > 1) {\n  queueMicrotask(() => {\n    issueWarning!(\n      'multiple-versions',\n      `Multiple versions of Lit loaded. Loading multiple versions ` +\n        `is not recommended.`\n    );\n  });\n}\n", "import { LitElement } from 'lit';\n\nexport abstract class BaseComponent extends LitElement {\n    public static defaultOptions: Record<string, any> = {\n        linkable: false,\n    };\n    static get properties() {\n        return {\n            options: { type: Object },\n        };\n    }\n\n    private _options: Record<string, any> = (this.constructor as typeof BaseComponent).defaultOptions;\n    public get options(): Record<string, any> {\n        return this._options;\n    }\n    public set options(value: Record<string, any>) {\n        const oldValue = this._options;\n        this._options = {\n            ...(this.constructor as typeof BaseComponent).defaultOptions,\n            ...value,\n        };\n        this.requestUpdate('options', oldValue);\n    }\n\n    connectedCallback() {\n        super.connectedCallback();\n\n        if (!window.location.hash || !this.options.linkable) return;\n\n        const element: HTMLElement = this.querySelector(window.location.hash);\n        if (element) this.open(element);\n    }\n\n    public afterOpen(id: string): void {\n        if (!this.options.linkable) return;\n        window.history.pushState({}, '', `#${id}`);\n    }\n\n    public afterClose(id: string): void {\n        if (!this.options.linkable) return;\n        if (window.location.hash === `#${id}`) {\n            history.pushState('', '', window.location.pathname);\n        }\n    }\n\n    abstract open(element: HTMLElement): void;\n\n    protected createRenderRoot(): HTMLElement | DocumentFragment {\n        return this;\n    }\n}\n", "import { BaseComponent } from './baseComponent';\n\nexport class Accordion extends BaseComponent {\n    public static defaultOptions = {\n        ...BaseComponent.defaultOptions,\n        allowMultipleOpen: true,\n        scrollToTitle: false,\n    };\n    private titles: HTMLElement[] = [];\n\n    connectedCallback() {\n        this.querySelectorAll('.accordion').forEach(accordion => {\n            const title = accordion.querySelector('.accordion-title') as HTMLElement;\n            const content = accordion.querySelector('.accordion-content') as HTMLElement;\n            this.titles.push(title);\n\n            title.addEventListener('keydown', this.handleKeydown.bind(this));\n            title.addEventListener('click', this.toggle.bind(this));\n\n            document.querySelectorAll(`[href=\"#${content.id}\"], [data-href=\"#${content.id}\"]`).forEach(linkTrigger => {\n                if (linkTrigger.isEqualNode(title)) return;\n\n                linkTrigger.addEventListener('click', (event: Event): void => {\n                    event.preventDefault();\n                    this.open(content);\n                });\n            });\n\n            [accordion, title, content].forEach((element: HTMLElement) => {\n                element.addEventListener('open', () => {\n                    this.open(content);\n                });\n            });\n        });\n\n        super.connectedCallback();\n    }\n\n    toggle(event: MouseEvent | KeyboardEvent): void {\n        event.preventDefault();\n        const target = event.target as HTMLElement;\n        const title = target.classList.contains('accordion-title') ? target : target.closest('.accordion-title');\n\n        const content: HTMLElement = document.querySelector(title.getAttribute('href'));\n        if (title.classList.contains('is-active')) {\n            this.close(content);\n        } else {\n            this.open(content);\n        }\n    }\n\n    open(content: HTMLElement): void {\n        const title = this.querySelector(`.accordion-title[href=\"#${content.id}\"]`);\n        if (!this.options.allowMultipleOpen) {\n            this.closeAll();\n        }\n\n        title.classList.add('is-active');\n        title.setAttribute('aria-selected', 'true');\n        title.setAttribute('aria-expanded', 'true');\n\n        content.classList.add('is-active');\n        content.removeAttribute('inert');\n\n        setTimeout(() => {\n            if (this.options.scrollToTitle) title.scrollIntoView();\n        }, 500);\n\n        this.afterOpen(content.id);\n    }\n\n    close(content: HTMLElement): void {\n        const title = this.querySelector(`.accordion-title[href=\"#${content.id}\"]`);\n\n        title.classList.remove('is-active');\n        title.setAttribute('aria-selected', 'false');\n        title.setAttribute('aria-expanded', 'false');\n\n        content.classList.remove('is-active');\n        content.setAttribute('inert', 'true');\n\n        this.afterClose(title.closest('.accordion').id);\n    }\n\n    closeAll() {\n        this.querySelectorAll('.accordion-content').forEach((content: HTMLElement) => {\n            this.close(content);\n        });\n    }\n\n    handleKeydown(event: KeyboardEvent): void {\n        const target = event.currentTarget;\n        if (!(target instanceof HTMLElement)) return;\n        let title: HTMLElement;\n\n        switch (event.key) {\n            case 'ArrowUp':\n                title = target.closest('.accordion').previousElementSibling\n                    ? target.closest('.accordion').previousElementSibling.querySelector('.accordion-title')\n                    : null;\n                break;\n\n            case 'ArrowDown':\n                title = target.closest('.accordion').nextElementSibling\n                    ? target.closest('.accordion').nextElementSibling.querySelector('.accordion-title')\n                    : null;\n                break;\n\n            case 'Home':\n                title = this.titles[0];\n                break;\n\n            case 'End':\n                title = this.titles[this.titles.length - 1];\n                break;\n\n            case 'Enter':\n                this.toggle(event);\n                break;\n\n            case 'Escape':\n                this.close(target);\n                break;\n        }\n\n        if (title) title.focus();\n    }\n}\n\ndeclare global {\n    interface HTMLElementTagNameMap {\n        'moxi-accordion': Accordion;\n    }\n}\n\nif (!customElements.get('moxi-accordion')) {\n    customElements.define('moxi-accordion', Accordion);\n}\n", "import type Swiper from 'swiper';\nimport { BaseComponent } from './baseComponent';\n\n/**\n * <moxi-modal> controls a native <dialog> (its single child, rendered by components/modal.html.twig).\n * The dialog provides top-layer rendering, focus trapping, Escape-to-close and the ::backdrop natively;\n * this component only drives showModal()/close() and the gallery extras (group navigation, swiper sync,\n * touch swipe, hash-linkable open). Light-dismiss is the dialog's closedby=\"any\" plus a Safari fallback.\n */\nexport class Modal extends BaseComponent {\n    public static defaultOptions = {\n        ...BaseComponent.defaultOptions,\n        ...{\n            group: false,\n            slider: <string | null>null,\n        },\n    };\n\n    private body: HTMLBodyElement = document.querySelector('body');\n    private dialog: HTMLDialogElement;\n    private trigger: NodeListOf<HTMLElement>;\n    private groupModals: NodeListOf<HTMLElement>;\n    private activeIndex: number;\n    private nextButton: HTMLElement;\n    private prevButton: HTMLElement;\n\n    connectedCallback() {\n        this.dialog = this.querySelector('dialog');\n        if (!this.dialog) return;\n\n        this.trigger = document.querySelectorAll(`[href=\"#${this.id}\"], [data-href=\"#${this.id}\"]`);\n\n        this.nextButton = this.querySelector('.modal-button-next');\n        this.prevButton = this.querySelector('.modal-button-prev');\n\n        // if grouped, get all modals in the same group and find the index of the current modal\n        if (this.options.group) {\n            this.groupModals = document.querySelectorAll(`moxi-modal[data-group=\"${this.options.group}\"]`);\n            this.activeIndex = Array.from(this.groupModals).findIndex(modal => modal.isEqualNode(this));\n        }\n\n        // hide next/prev buttons if not grouped or only one modal in group\n        if ((this.options.group === false || this.groupModals.length < 2) && this.nextButton && this.prevButton) {\n            this.nextButton.classList.add('is-hidden');\n            this.prevButton.classList.add('is-hidden');\n        }\n\n        this.trigger.forEach(trigger => {\n            trigger.addEventListener('click', (event: Event): void => {\n                event.preventDefault();\n                this.open();\n            });\n\n            trigger.addEventListener('open', (_event: Event): void => {\n                this.open();\n            });\n\n            trigger.addEventListener('close', (_event: Event): void => {\n                this.close();\n            });\n        });\n\n        this.addEventListener('open', (_event: Event): void => {\n            this.open();\n        });\n\n        this.addEventListener('close', (_event: Event): void => {\n            this.close();\n        });\n\n        // Arrow keys navigate a group; Escape + backdrop dismiss are handled natively by the <dialog>.\n        this.dialog.addEventListener('keydown', (e: KeyboardEvent): void => {\n            switch (e.key) {\n                case 'ArrowLeft':\n                    this.prev();\n                    break;\n\n                case 'ArrowRight':\n                    this.next();\n                    break;\n            }\n        });\n\n        if (this.nextButton) {\n            this.nextButton.addEventListener('click', (_e: Event): void => {\n                this.next();\n            });\n        }\n\n        if (this.prevButton) {\n            this.prevButton.addEventListener('click', (_e: Event): void => {\n                this.prev();\n            });\n        }\n\n        let touchstartX = 0;\n        let touchendX = 0;\n        this.dialog.addEventListener('touchstart', (e: TouchEvent): void => {\n            touchstartX = e.changedTouches[0].screenX;\n        });\n        this.dialog.addEventListener('touchend', (e: TouchEvent): void => {\n            touchendX = e.changedTouches[0].screenX;\n            if (touchendX + 10 < touchstartX) {\n                this.next();\n                return;\n            }\n\n            if (touchendX > touchstartX + 10) {\n                this.prev();\n            }\n        });\n\n        // explicit close button\n        const closeButton = this.querySelector('.modal-close');\n        if (closeButton) {\n            closeButton.addEventListener('click', () => {\n                this.close();\n            });\n        }\n\n        // Safari fallback for closedby=\"any\": close on a click that both started and ended on the dialog\n        // backdrop area, so a drag (e.g. text selection) that ends there doesn't dismiss the modal.\n        let mouseDownOnBackdrop = false;\n        this.dialog.addEventListener('mousedown', (e: MouseEvent): void => {\n            mouseDownOnBackdrop = e.target === this.dialog;\n        });\n        this.dialog.addEventListener('click', (e: MouseEvent): void => {\n            if (e.target === this.dialog && mouseDownOnBackdrop) {\n                this.dialog.close();\n            }\n        });\n\n        // Native close fires on Escape, light-dismiss and .close() \u2014 run the shared cleanup once, here.\n        this.dialog.addEventListener('close', (_event: Event): void => {\n            this.body.classList.remove('modal-open');\n            this.trigger.forEach(trigger => {\n                trigger.setAttribute('aria-expanded', 'false');\n            });\n            this.afterClose(this.id);\n        });\n\n        // open modal if hash matches id\n        // do not call super.connectedCallback() - we override it here\n        if (!window.location.hash || !this.options.linkable) return;\n        if (this.id === window.location.hash.replace('#', '')) {\n            this.open();\n        }\n    }\n\n    next(): void {\n        if (!this.options.group) return;\n        this.close();\n        const next = this.groupModals[this.activeIndex + 1] ?? this.groupModals[0];\n        next.dispatchEvent(new Event('open'));\n    }\n\n    prev(): void {\n        if (!this.options.group) return;\n        this.close();\n        const prev = this.groupModals[this.activeIndex - 1] ?? this.groupModals[this.groupModals.length - 1];\n        prev.dispatchEvent(new Event('open'));\n    }\n\n    open(): void {\n        this.dialog.dataset.depth = String(document.querySelectorAll('dialog.modal[open]').length);\n        this.dialog.showModal();\n        this.body.classList.add('modal-open');\n        this.trigger.forEach(trigger => {\n            trigger.setAttribute('aria-expanded', 'true');\n        });\n\n        this.afterOpen(this.id);\n\n        if (!this.options.slider) return;\n        const sliderHost = document.getElementById(this.options.slider) as (HTMLElement & { swiper?: Swiper }) | null;\n        const slider: Swiper = sliderHost?.swiper;\n        if (slider && this.trigger[0]) {\n            const slide: HTMLElement = this.trigger[0].closest('.swiper-slide');\n            if (slide) slider.slideTo(Number(slide.dataset.swiperSlideIndex));\n        }\n    }\n\n    close(): void {\n        // .close() emits the native 'close' event, which runs the shared cleanup registered above.\n        this.dialog?.close();\n    }\n}\n\ndeclare global {\n    interface HTMLElementTagNameMap {\n        'moxi-modal': Modal;\n    }\n}\n\nif (!customElements.get('moxi-modal')) {\n    customElements.define('moxi-modal', Modal);\n}\n", "/**\n * SSR Window 5.0.1\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2025, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: June 27, 2025\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n  return obj !== null && typeof obj === 'object' && 'constructor' in obj && obj.constructor === Object;\n}\nfunction extend(target = {}, src = {}) {\n  const noExtend = ['__proto__', 'constructor', 'prototype'];\n  Object.keys(src).filter(key => noExtend.indexOf(key) < 0).forEach(key => {\n    if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n      extend(target[key], src[key]);\n    }\n  });\n}\nconst ssrDocument = {\n  body: {},\n  addEventListener() {},\n  removeEventListener() {},\n  activeElement: {\n    blur() {},\n    nodeName: ''\n  },\n  querySelector() {\n    return null;\n  },\n  querySelectorAll() {\n    return [];\n  },\n  getElementById() {\n    return null;\n  },\n  createEvent() {\n    return {\n      initEvent() {}\n    };\n  },\n  createElement() {\n    return {\n      children: [],\n      childNodes: [],\n      style: {},\n      setAttribute() {},\n      getElementsByTagName() {\n        return [];\n      }\n    };\n  },\n  createElementNS() {\n    return {};\n  },\n  importNode() {\n    return null;\n  },\n  location: {\n    hash: '',\n    host: '',\n    hostname: '',\n    href: '',\n    origin: '',\n    pathname: '',\n    protocol: '',\n    search: ''\n  }\n};\nfunction getDocument() {\n  const doc = typeof document !== 'undefined' ? document : {};\n  extend(doc, ssrDocument);\n  return doc;\n}\nconst ssrWindow = {\n  document: ssrDocument,\n  navigator: {\n    userAgent: ''\n  },\n  location: {\n    hash: '',\n    host: '',\n    hostname: '',\n    href: '',\n    origin: '',\n    pathname: '',\n    protocol: '',\n    search: ''\n  },\n  history: {\n    replaceState() {},\n    pushState() {},\n    go() {},\n    back() {}\n  },\n  CustomEvent: function CustomEvent() {\n    return this;\n  },\n  addEventListener() {},\n  removeEventListener() {},\n  getComputedStyle() {\n    return {\n      getPropertyValue() {\n        return '';\n      }\n    };\n  },\n  Image() {},\n  Date() {},\n  screen: {},\n  setTimeout() {},\n  clearTimeout() {},\n  matchMedia() {\n    return {};\n  },\n  requestAnimationFrame(callback) {\n    if (typeof setTimeout === 'undefined') {\n      callback();\n      return null;\n    }\n    return setTimeout(callback, 0);\n  },\n  cancelAnimationFrame(id) {\n    if (typeof setTimeout === 'undefined') {\n      return;\n    }\n    clearTimeout(id);\n  }\n};\nfunction getWindow() {\n  const win = typeof window !== 'undefined' ? window : {};\n  extend(win, ssrWindow);\n  return win;\n}\n\nexport { getWindow as a, getDocument as g };\n", "import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\n\nfunction classesToTokens(classes = '') {\n  return classes.trim().split(' ').filter(c => !!c.trim());\n}\n\nfunction deleteProps(obj) {\n  const object = obj;\n  Object.keys(object).forEach(key => {\n    try {\n      object[key] = null;\n    } catch (e) {\n      // no getter for object\n    }\n    try {\n      delete object[key];\n    } catch (e) {\n      // something got wrong\n    }\n  });\n}\nfunction nextTick(callback, delay = 0) {\n  return setTimeout(callback, delay);\n}\nfunction now() {\n  return Date.now();\n}\nfunction getComputedStyle(el) {\n  const window = getWindow();\n  let style;\n  if (window.getComputedStyle) {\n    style = window.getComputedStyle(el, null);\n  }\n  if (!style && el.currentStyle) {\n    style = el.currentStyle;\n  }\n  if (!style) {\n    style = el.style;\n  }\n  return style;\n}\nfunction getTranslate(el, axis = 'x') {\n  const window = getWindow();\n  let matrix;\n  let curTransform;\n  let transformMatrix;\n  const curStyle = getComputedStyle(el);\n  if (window.WebKitCSSMatrix) {\n    curTransform = curStyle.transform || curStyle.webkitTransform;\n    if (curTransform.split(',').length > 6) {\n      curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n    }\n    // Some old versions of Webkit choke when 'none' is passed; pass\n    // empty string instead in this case\n    transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n  } else {\n    transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n    matrix = transformMatrix.toString().split(',');\n  }\n  if (axis === 'x') {\n    // Latest Chrome and webkits Fix\n    if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41;\n    // Crazy IE10 Matrix\n    else if (matrix.length === 16) curTransform = parseFloat(matrix[12]);\n    // Normal Browsers\n    else curTransform = parseFloat(matrix[4]);\n  }\n  if (axis === 'y') {\n    // Latest Chrome and webkits Fix\n    if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42;\n    // Crazy IE10 Matrix\n    else if (matrix.length === 16) curTransform = parseFloat(matrix[13]);\n    // Normal Browsers\n    else curTransform = parseFloat(matrix[5]);\n  }\n  return curTransform || 0;\n}\nfunction isObject(o) {\n  return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\nfunction isNode(node) {\n  // eslint-disable-next-line\n  if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n    return node instanceof HTMLElement;\n  }\n  return node && (node.nodeType === 1 || node.nodeType === 11);\n}\nfunction extend(...args) {\n  const to = Object(args[0]);\n  for (let i = 1; i < args.length; i += 1) {\n    const nextSource = args[i];\n    if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n      const keysArray = Object.keys(Object(nextSource)).filter(key => key !== '__proto__' && key !== 'constructor' && key !== 'prototype');\n      for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n        const nextKey = keysArray[nextIndex];\n        const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n        if (desc !== undefined && desc.enumerable) {\n          if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n            if (nextSource[nextKey].__swiper__) {\n              to[nextKey] = nextSource[nextKey];\n            } else {\n              extend(to[nextKey], nextSource[nextKey]);\n            }\n          } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n            to[nextKey] = {};\n            if (nextSource[nextKey].__swiper__) {\n              to[nextKey] = nextSource[nextKey];\n            } else {\n              extend(to[nextKey], nextSource[nextKey]);\n            }\n          } else {\n            to[nextKey] = nextSource[nextKey];\n          }\n        }\n      }\n    }\n  }\n  return to;\n}\nfunction setCSSProperty(el, varName, varValue) {\n  el.style.setProperty(varName, varValue);\n}\nfunction animateCSSModeScroll({\n  swiper,\n  targetPosition,\n  side\n}) {\n  const window = getWindow();\n  const startPosition = -swiper.translate;\n  let startTime = null;\n  let time;\n  const duration = swiper.params.speed;\n  swiper.wrapperEl.style.scrollSnapType = 'none';\n  window.cancelAnimationFrame(swiper.cssModeFrameID);\n  const dir = targetPosition > startPosition ? 'next' : 'prev';\n  const isOutOfBound = (current, target) => {\n    return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n  };\n  const animate = () => {\n    time = new Date().getTime();\n    if (startTime === null) {\n      startTime = time;\n    }\n    const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n    const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n    let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n    if (isOutOfBound(currentPosition, targetPosition)) {\n      currentPosition = targetPosition;\n    }\n    swiper.wrapperEl.scrollTo({\n      [side]: currentPosition\n    });\n    if (isOutOfBound(currentPosition, targetPosition)) {\n      swiper.wrapperEl.style.overflow = 'hidden';\n      swiper.wrapperEl.style.scrollSnapType = '';\n      setTimeout(() => {\n        swiper.wrapperEl.style.overflow = '';\n        swiper.wrapperEl.scrollTo({\n          [side]: currentPosition\n        });\n      });\n      window.cancelAnimationFrame(swiper.cssModeFrameID);\n      return;\n    }\n    swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n  };\n  animate();\n}\nfunction getSlideTransformEl(slideEl) {\n  return slideEl.querySelector('.swiper-slide-transform') || slideEl.shadowRoot && slideEl.shadowRoot.querySelector('.swiper-slide-transform') || slideEl;\n}\nfunction elementChildren(element, selector = '') {\n  const window = getWindow();\n  const children = [...element.children];\n  if (window.HTMLSlotElement && element instanceof HTMLSlotElement) {\n    children.push(...element.assignedElements());\n  }\n  if (!selector) {\n    return children;\n  }\n  return children.filter(el => el.matches(selector));\n}\nfunction elementIsChildOfSlot(el, slot) {\n  // Breadth-first search through all parent's children and assigned elements\n  const elementsQueue = [slot];\n  while (elementsQueue.length > 0) {\n    const elementToCheck = elementsQueue.shift();\n    if (el === elementToCheck) {\n      return true;\n    }\n    elementsQueue.push(...elementToCheck.children, ...(elementToCheck.shadowRoot ? elementToCheck.shadowRoot.children : []), ...(elementToCheck.assignedElements ? elementToCheck.assignedElements() : []));\n  }\n}\nfunction elementIsChildOf(el, parent) {\n  const window = getWindow();\n  let isChild = parent.contains(el);\n  if (!isChild && window.HTMLSlotElement && parent instanceof HTMLSlotElement) {\n    const children = [...parent.assignedElements()];\n    isChild = children.includes(el);\n    if (!isChild) {\n      isChild = elementIsChildOfSlot(el, parent);\n    }\n  }\n  return isChild;\n}\nfunction showWarning(text) {\n  try {\n    console.warn(text);\n    return;\n  } catch (err) {\n    // err\n  }\n}\nfunction createElement(tag, classes = []) {\n  const el = document.createElement(tag);\n  el.classList.add(...(Array.isArray(classes) ? classes : classesToTokens(classes)));\n  return el;\n}\nfunction elementOffset(el) {\n  const window = getWindow();\n  const document = getDocument();\n  const box = el.getBoundingClientRect();\n  const body = document.body;\n  const clientTop = el.clientTop || body.clientTop || 0;\n  const clientLeft = el.clientLeft || body.clientLeft || 0;\n  const scrollTop = el === window ? window.scrollY : el.scrollTop;\n  const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n  return {\n    top: box.top + scrollTop - clientTop,\n    left: box.left + scrollLeft - clientLeft\n  };\n}\nfunction elementPrevAll(el, selector) {\n  const prevEls = [];\n  while (el.previousElementSibling) {\n    const prev = el.previousElementSibling; // eslint-disable-line\n    if (selector) {\n      if (prev.matches(selector)) prevEls.push(prev);\n    } else prevEls.push(prev);\n    el = prev;\n  }\n  return prevEls;\n}\nfunction elementNextAll(el, selector) {\n  const nextEls = [];\n  while (el.nextElementSibling) {\n    const next = el.nextElementSibling; // eslint-disable-line\n    if (selector) {\n      if (next.matches(selector)) nextEls.push(next);\n    } else nextEls.push(next);\n    el = next;\n  }\n  return nextEls;\n}\nfunction elementStyle(el, prop) {\n  const window = getWindow();\n  return window.getComputedStyle(el, null).getPropertyValue(prop);\n}\nfunction elementIndex(el) {\n  let child = el;\n  let i;\n  if (child) {\n    i = 0;\n    // eslint-disable-next-line\n    while ((child = child.previousSibling) !== null) {\n      if (child.nodeType === 1) i += 1;\n    }\n    return i;\n  }\n  return undefined;\n}\nfunction elementParents(el, selector) {\n  const parents = []; // eslint-disable-line\n  let parent = el.parentElement; // eslint-disable-line\n  while (parent) {\n    if (selector) {\n      if (parent.matches(selector)) parents.push(parent);\n    } else {\n      parents.push(parent);\n    }\n    parent = parent.parentElement;\n  }\n  return parents;\n}\nfunction elementTransitionEnd(el, callback) {\n  function fireCallBack(e) {\n    if (e.target !== el) return;\n    callback.call(el, e);\n    el.removeEventListener('transitionend', fireCallBack);\n  }\n  if (callback) {\n    el.addEventListener('transitionend', fireCallBack);\n  }\n}\nfunction elementOuterSize(el, size, includeMargins) {\n  const window = getWindow();\n  if (includeMargins) {\n    return el[size === 'width' ? 'offsetWidth' : 'offsetHeight'] + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-right' : 'margin-top')) + parseFloat(window.getComputedStyle(el, null).getPropertyValue(size === 'width' ? 'margin-left' : 'margin-bottom'));\n  }\n  return el.offsetWidth;\n}\nfunction makeElementsArray(el) {\n  return (Array.isArray(el) ? el : [el]).filter(e => !!e);\n}\nfunction getRotateFix(swiper) {\n  return v => {\n    if (Math.abs(v) > 0 && swiper.browser && swiper.browser.need3dFix && Math.abs(v) % 90 === 0) {\n      return v + 0.001;\n    }\n    return v;\n  };\n}\nfunction setInnerHTML(el, html = '') {\n  if (typeof trustedTypes !== 'undefined') {\n    el.innerHTML = trustedTypes.createPolicy('html', {\n      createHTML: s => s\n    }).createHTML(html);\n  } else {\n    el.innerHTML = html;\n  }\n}\n\nexport { getRotateFix as a, setCSSProperty as b, createElement as c, elementParents as d, elementChildren as e, elementOffset as f, getSlideTransformEl as g, now as h, elementOuterSize as i, elementIndex as j, classesToTokens as k, getTranslate as l, makeElementsArray as m, nextTick as n, elementTransitionEnd as o, isObject as p, elementStyle as q, elementNextAll as r, setInnerHTML as s, elementPrevAll as t, animateCSSModeScroll as u, showWarning as v, elementIsChildOf as w, extend as x, deleteProps as y };\n", "import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';\nimport { d as elementParents, q as elementStyle, e as elementChildren, b as setCSSProperty, i as elementOuterSize, r as elementNextAll, t as elementPrevAll, l as getTranslate, u as animateCSSModeScroll, n as nextTick, v as showWarning, c as createElement, w as elementIsChildOf, h as now, x as extend, j as elementIndex, y as deleteProps } from './utils.mjs';\n\nlet support;\nfunction calcSupport() {\n  const window = getWindow();\n  const document = getDocument();\n  return {\n    smoothScroll: document.documentElement && document.documentElement.style && 'scrollBehavior' in document.documentElement.style,\n    touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch)\n  };\n}\nfunction getSupport() {\n  if (!support) {\n    support = calcSupport();\n  }\n  return support;\n}\n\nlet deviceCached;\nfunction calcDevice({\n  userAgent\n} = {}) {\n  const support = getSupport();\n  const window = getWindow();\n  const platform = window.navigator.platform;\n  const ua = userAgent || window.navigator.userAgent;\n  const device = {\n    ios: false,\n    android: false\n  };\n  const screenWidth = window.screen.width;\n  const screenHeight = window.screen.height;\n  const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n  let ipad = ua.match(/(iPad)(?!\\1).*OS\\s([\\d_]+)/);\n  const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n  const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n  const windows = platform === 'Win32';\n  let macos = platform === 'MacIntel';\n\n  // iPadOs 13 fix\n  const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n  if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n    ipad = ua.match(/(Version)\\/([\\d.]+)/);\n    if (!ipad) ipad = [0, 1, '13_0_0'];\n    macos = false;\n  }\n\n  // Android\n  if (android && !windows) {\n    device.os = 'android';\n    device.android = true;\n  }\n  if (ipad || iphone || ipod) {\n    device.os = 'ios';\n    device.ios = true;\n  }\n\n  // Export object\n  return device;\n}\nfunction getDevice(overrides = {}) {\n  if (!deviceCached) {\n    deviceCached = calcDevice(overrides);\n  }\n  return deviceCached;\n}\n\nlet browser;\nfunction calcBrowser() {\n  const window = getWindow();\n  const device = getDevice();\n  let needPerspectiveFix = false;\n  function isSafari() {\n    const ua = window.navigator.userAgent.toLowerCase();\n    return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n  }\n  if (isSafari()) {\n    const ua = String(window.navigator.userAgent);\n    if (ua.includes('Version/')) {\n      const [major, minor] = ua.split('Version/')[1].split(' ')[0].split('.').map(num => Number(num));\n      needPerspectiveFix = major < 16 || major === 16 && minor < 2;\n    }\n  }\n  const isWebView = /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent);\n  const isSafariBrowser = isSafari();\n  const need3dFix = isSafariBrowser || isWebView && device.ios;\n  return {\n    isSafari: needPerspectiveFix || isSafariBrowser,\n    needPerspectiveFix,\n    need3dFix,\n    isWebView\n  };\n}\nfunction getBrowser() {\n  if (!browser) {\n    browser = calcBrowser();\n  }\n  return browser;\n}\n\nfunction Resize({\n  swiper,\n  on,\n  emit\n}) {\n  const window = getWindow();\n  let observer = null;\n  let animationFrame = null;\n  const resizeHandler = () => {\n    if (!swiper || swiper.destroyed || !swiper.initialized) return;\n    emit('beforeResize');\n    emit('resize');\n  };\n  const createObserver = () => {\n    if (!swiper || swiper.destroyed || !swiper.initialized) return;\n    observer = new ResizeObserver(entries => {\n      animationFrame = window.requestAnimationFrame(() => {\n        const {\n          width,\n          height\n        } = swiper;\n        let newWidth = width;\n        let newHeight = height;\n        entries.forEach(({\n          contentBoxSize,\n          contentRect,\n          target\n        }) => {\n          if (target && target !== swiper.el) return;\n          newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n          newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n        });\n        if (newWidth !== width || newHeight !== height) {\n          resizeHandler();\n        }\n      });\n    });\n    observer.observe(swiper.el);\n  };\n  const removeObserver = () => {\n    if (animationFrame) {\n      window.cancelAnimationFrame(animationFrame);\n    }\n    if (observer && observer.unobserve && swiper.el) {\n      observer.unobserve(swiper.el);\n      observer = null;\n    }\n  };\n  const orientationChangeHandler = () => {\n    if (!swiper || swiper.destroyed || !swiper.initialized) return;\n    emit('orientationchange');\n  };\n  on('init', () => {\n    if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n      createObserver();\n      return;\n    }\n    window.addEventListener('resize', resizeHandler);\n    window.addEventListener('orientationchange', orientationChangeHandler);\n  });\n  on('destroy', () => {\n    removeObserver();\n    window.removeEventListener('resize', resizeHandler);\n    window.removeEventListener('orientationchange', orientationChangeHandler);\n  });\n}\n\nfunction Observer({\n  swiper,\n  extendParams,\n  on,\n  emit\n}) {\n  const observers = [];\n  const window = getWindow();\n  const attach = (target, options = {}) => {\n    const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n    const observer = new ObserverFunc(mutations => {\n      // The observerUpdate event should only be triggered\n      // once despite the number of mutations.  Additional\n      // triggers are redundant and are very costly\n      if (swiper.__preventObserver__) return;\n      if (mutations.length === 1) {\n        emit('observerUpdate', mutations[0]);\n        return;\n      }\n      const observerUpdate = function observerUpdate() {\n        emit('observerUpdate', mutations[0]);\n      };\n      if (window.requestAnimationFrame) {\n        window.requestAnimationFrame(observerUpdate);\n      } else {\n        window.setTimeout(observerUpdate, 0);\n      }\n    });\n    observer.observe(target, {\n      attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n      childList: swiper.isElement || (typeof options.childList === 'undefined' ? true : options).childList,\n      characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n    });\n    observers.push(observer);\n  };\n  const init = () => {\n    if (!swiper.params.observer) return;\n    if (swiper.params.observeParents) {\n      const containerParents = elementParents(swiper.hostEl);\n      for (let i = 0; i < containerParents.length; i += 1) {\n        attach(containerParents[i]);\n      }\n    }\n    // Observe container\n    attach(swiper.hostEl, {\n      childList: swiper.params.observeSlideChildren\n    });\n\n    // Observe wrapper\n    attach(swiper.wrapperEl, {\n      attributes: false\n    });\n  };\n  const destroy = () => {\n    observers.forEach(observer => {\n      observer.disconnect();\n    });\n    observers.splice(0, observers.length);\n  };\n  extendParams({\n    observer: false,\n    observeParents: false,\n    observeSlideChildren: false\n  });\n  on('init', init);\n  on('destroy', destroy);\n}\n\n/* eslint-disable no-underscore-dangle */\n\nvar eventsEmitter = {\n  on(events, handler, priority) {\n    const self = this;\n    if (!self.eventsListeners || self.destroyed) return self;\n    if (typeof handler !== 'function') return self;\n    const method = priority ? 'unshift' : 'push';\n    events.split(' ').forEach(event => {\n      if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n      self.eventsListeners[event][method](handler);\n    });\n    return self;\n  },\n  once(events, handler, priority) {\n    const self = this;\n    if (!self.eventsListeners || self.destroyed) return self;\n    if (typeof handler !== 'function') return self;\n    function onceHandler(...args) {\n      self.off(events, onceHandler);\n      if (onceHandler.__emitterProxy) {\n        delete onceHandler.__emitterProxy;\n      }\n      handler.apply(self, args);\n    }\n    onceHandler.__emitterProxy = handler;\n    return self.on(events, onceHandler, priority);\n  },\n  onAny(handler, priority) {\n    const self = this;\n    if (!self.eventsListeners || self.destroyed) return self;\n    if (typeof handler !== 'function') return self;\n    const method = priority ? 'unshift' : 'push';\n    if (self.eventsAnyListeners.indexOf(handler) < 0) {\n      self.eventsAnyListeners[method](handler);\n    }\n    return self;\n  },\n  offAny(handler) {\n    const self = this;\n    if (!self.eventsListeners || self.destroyed) return self;\n    if (!self.eventsAnyListeners) return self;\n    const index = self.eventsAnyListeners.indexOf(handler);\n    if (index >= 0) {\n      self.eventsAnyListeners.splice(index, 1);\n    }\n    return self;\n  },\n  off(events, handler) {\n    const self = this;\n    if (!self.eventsListeners || self.destroyed) return self;\n    if (!self.eventsListeners) return self;\n    events.split(' ').forEach(event => {\n      if (typeof handler === 'undefined') {\n        self.eventsListeners[event] = [];\n      } else if (self.eventsListeners[event]) {\n        self.eventsListeners[event].forEach((eventHandler, index) => {\n          if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n            self.eventsListeners[event].splice(index, 1);\n          }\n        });\n      }\n    });\n    return self;\n  },\n  emit(...args) {\n    const self = this;\n    if (!self.eventsListeners || self.destroyed) return self;\n    if (!self.eventsListeners) return self;\n    let events;\n    let data;\n    let context;\n    if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n      events = args[0];\n      data = args.slice(1, args.length);\n      context = self;\n    } else {\n      events = args[0].events;\n      data = args[0].data;\n      context = args[0].context || self;\n    }\n    data.unshift(context);\n    const eventsArray = Array.isArray(events) ? events : events.split(' ');\n    eventsArray.forEach(event => {\n      if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n        self.eventsAnyListeners.forEach(eventHandler => {\n          eventHandler.apply(context, [event, ...data]);\n        });\n      }\n      if (self.eventsListeners && self.eventsListeners[event]) {\n        self.eventsListeners[event].forEach(eventHandler => {\n          eventHandler.apply(context, data);\n        });\n      }\n    });\n    return self;\n  }\n};\n\nfunction updateSize() {\n  const swiper = this;\n  let width;\n  let height;\n  const el = swiper.el;\n  if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n    width = swiper.params.width;\n  } else {\n    width = el.clientWidth;\n  }\n  if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n    height = swiper.params.height;\n  } else {\n    height = el.clientHeight;\n  }\n  if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n    return;\n  }\n\n  // Subtract paddings\n  width = width - parseInt(elementStyle(el, 'padding-left') || 0, 10) - parseInt(elementStyle(el, 'padding-right') || 0, 10);\n  height = height - parseInt(elementStyle(el, 'padding-top') || 0, 10) - parseInt(elementStyle(el, 'padding-bottom') || 0, 10);\n  if (Number.isNaN(width)) width = 0;\n  if (Number.isNaN(height)) height = 0;\n  Object.assign(swiper, {\n    width,\n    height,\n    size: swiper.isHorizontal() ? width : height\n  });\n}\n\nfunction updateSlides() {\n  const swiper = this;\n  function getDirectionPropertyValue(node, label) {\n    return parseFloat(node.getPropertyValue(swiper.getDirectionLabel(label)) || 0);\n  }\n  const params = swiper.params;\n  const {\n    wrapperEl,\n    slidesEl,\n    rtlTranslate: rtl,\n    wrongRTL\n  } = swiper;\n  const isVirtual = swiper.virtual && params.virtual.enabled;\n  const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n  const slides = elementChildren(slidesEl, `.${swiper.params.slideClass}, swiper-slide`);\n  const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n  let snapGrid = [];\n  const slidesGrid = [];\n  const slidesSizesGrid = [];\n  let offsetBefore = params.slidesOffsetBefore;\n  if (typeof offsetBefore === 'function') {\n    offsetBefore = params.slidesOffsetBefore.call(swiper);\n  }\n  let offsetAfter = params.slidesOffsetAfter;\n  if (typeof offsetAfter === 'function') {\n    offsetAfter = params.slidesOffsetAfter.call(swiper);\n  }\n  const previousSnapGridLength = swiper.snapGrid.length;\n  const previousSlidesGridLength = swiper.slidesGrid.length;\n  const swiperSize = swiper.size - offsetBefore - offsetAfter;\n  let spaceBetween = params.spaceBetween;\n  let slidePosition = -offsetBefore;\n  let prevSlideSize = 0;\n  let index = 0;\n  if (typeof swiperSize === 'undefined') {\n    return;\n  }\n  if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n    spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n  } else if (typeof spaceBetween === 'string') {\n    spaceBetween = parseFloat(spaceBetween);\n  }\n  swiper.virtualSize = -spaceBetween - offsetBefore - offsetAfter;\n\n  // reset margins\n  slides.forEach(slideEl => {\n    if (rtl) {\n      slideEl.style.marginLeft = '';\n    } else {\n      slideEl.style.marginRight = '';\n    }\n    slideEl.style.marginBottom = '';\n    slideEl.style.marginTop = '';\n  });\n\n  // reset cssMode offsets\n  if (params.centeredSlides && params.cssMode) {\n    setCSSProperty(wrapperEl, '--swiper-centered-offset-before', '');\n    setCSSProperty(wrapperEl, '--swiper-centered-offset-after', '');\n  }\n\n  // set cssMode offsets\n  if (params.cssMode) {\n    setCSSProperty(wrapperEl, '--swiper-slides-offset-before', `${offsetBefore}px`);\n    setCSSProperty(wrapperEl, '--swiper-slides-offset-after', `${offsetAfter}px`);\n  }\n  const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n  if (gridEnabled) {\n    swiper.grid.initSlides(slides);\n  } else if (swiper.grid) {\n    swiper.grid.unsetSlides();\n  }\n\n  // Calc slides\n  let slideSize;\n  const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n    return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n  }).length > 0;\n  for (let i = 0; i < slidesLength; i += 1) {\n    slideSize = 0;\n    const slide = slides[i];\n    if (slide) {\n      if (gridEnabled) {\n        swiper.grid.updateSlide(i, slide, slides);\n      }\n      if (elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line\n    }\n\n    if (isVirtual && params.slidesPerView === 'auto') {\n      if (params.virtual.slidesPerViewAutoSlideSize) {\n        slideSize = params.virtual.slidesPerViewAutoSlideSize;\n      }\n      if (slideSize && slide) {\n        if (params.roundLengths) slideSize = Math.floor(slideSize);\n        slide.style[swiper.getDirectionLabel('width')] = `${slideSize}px`;\n      }\n    } else if (params.slidesPerView === 'auto') {\n      if (shouldResetSlideSize) {\n        slide.style[swiper.getDirectionLabel('width')] = ``;\n      }\n      const slideStyles = getComputedStyle(slide);\n      const currentTransform = slide.style.transform;\n      const currentWebKitTransform = slide.style.webkitTransform;\n      if (currentTransform) {\n        slide.style.transform = 'none';\n      }\n      if (currentWebKitTransform) {\n        slide.style.webkitTransform = 'none';\n      }\n      if (params.roundLengths) {\n        slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', true);\n      } else {\n        // eslint-disable-next-line\n        const width = getDirectionPropertyValue(slideStyles, 'width');\n        const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n        const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n        const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n        const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n        const boxSizing = slideStyles.getPropertyValue('box-sizing');\n        if (boxSizing && boxSizing === 'border-box') {\n          slideSize = width + marginLeft + marginRight;\n        } else {\n          const {\n            clientWidth,\n            offsetWidth\n          } = slide;\n          slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n        }\n      }\n      if (currentTransform) {\n        slide.style.transform = currentTransform;\n      }\n      if (currentWebKitTransform) {\n        slide.style.webkitTransform = currentWebKitTransform;\n      }\n      if (params.roundLengths) slideSize = Math.floor(slideSize);\n    } else {\n      slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n      if (params.roundLengths) slideSize = Math.floor(slideSize);\n      if (slide) {\n        slide.style[swiper.getDirectionLabel('width')] = `${slideSize}px`;\n      }\n    }\n    if (slide) {\n      slide.swiperSlideSize = slideSize;\n    }\n    slidesSizesGrid.push(slideSize);\n    if (params.centeredSlides) {\n      slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n      if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n      if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n      if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n      if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n      if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n      slidesGrid.push(slidePosition);\n    } else {\n      if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n      if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n      slidesGrid.push(slidePosition);\n      slidePosition = slidePosition + slideSize + spaceBetween;\n    }\n    swiper.virtualSize += slideSize + spaceBetween;\n    prevSlideSize = slideSize;\n    index += 1;\n  }\n  swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n  if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n    wrapperEl.style.width = `${swiper.virtualSize + spaceBetween}px`;\n  }\n  if (params.setWrapperSize) {\n    wrapperEl.style[swiper.getDirectionLabel('width')] = `${swiper.virtualSize + spaceBetween}px`;\n  }\n  if (gridEnabled) {\n    swiper.grid.updateWrapperSize(slideSize, snapGrid);\n  }\n\n  // Remove last grid elements depending on width\n  if (!params.centeredSlides) {\n    // Check if snapToSlideEdge should be applied\n    const isFractionalSlidesPerView = params.slidesPerView !== 'auto' && params.slidesPerView % 1 !== 0;\n    const shouldSnapToSlideEdge = params.snapToSlideEdge && !params.loop && (params.slidesPerView === 'auto' || isFractionalSlidesPerView);\n\n    // Calculate the last allowed snap index when snapToSlideEdge is enabled\n    // This ensures minimum slides are visible at the end\n    let lastAllowedSnapIndex = snapGrid.length;\n    if (shouldSnapToSlideEdge) {\n      let minVisibleSlides;\n      if (params.slidesPerView === 'auto') {\n        // For 'auto' mode, calculate how many slides fit based on actual sizes\n        minVisibleSlides = 1;\n        let accumulatedSize = 0;\n        for (let i = slidesSizesGrid.length - 1; i >= 0; i -= 1) {\n          accumulatedSize += slidesSizesGrid[i] + (i < slidesSizesGrid.length - 1 ? spaceBetween : 0);\n          if (accumulatedSize <= swiperSize) {\n            minVisibleSlides = slidesSizesGrid.length - i;\n          } else {\n            break;\n          }\n        }\n      } else {\n        minVisibleSlides = Math.floor(params.slidesPerView);\n      }\n      lastAllowedSnapIndex = Math.max(slidesLength - minVisibleSlides, 0);\n    }\n    const newSlidesGrid = [];\n    for (let i = 0; i < snapGrid.length; i += 1) {\n      let slidesGridItem = snapGrid[i];\n      if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n      if (shouldSnapToSlideEdge) {\n        // When snapToSlideEdge is enabled, only keep snaps up to lastAllowedSnapIndex\n        if (i <= lastAllowedSnapIndex) {\n          newSlidesGrid.push(slidesGridItem);\n        }\n      } else if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n        // When snapToSlideEdge is disabled, keep snaps that fit within scrollable area\n        newSlidesGrid.push(slidesGridItem);\n      }\n    }\n    snapGrid = newSlidesGrid;\n    if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n      // Only add edge-aligned snap if snapToSlideEdge is not enabled\n      if (!shouldSnapToSlideEdge) {\n        snapGrid.push(swiper.virtualSize - swiperSize);\n      }\n    }\n  }\n  if (isVirtual && params.loop) {\n    const size = slidesSizesGrid[0] + spaceBetween;\n    if (params.slidesPerGroup > 1) {\n      const groups = Math.ceil((swiper.virtual.slidesBefore + swiper.virtual.slidesAfter) / params.slidesPerGroup);\n      const groupSize = size * params.slidesPerGroup;\n      for (let i = 0; i < groups; i += 1) {\n        snapGrid.push(snapGrid[snapGrid.length - 1] + groupSize);\n      }\n    }\n    for (let i = 0; i < swiper.virtual.slidesBefore + swiper.virtual.slidesAfter; i += 1) {\n      if (params.slidesPerGroup === 1) {\n        snapGrid.push(snapGrid[snapGrid.length - 1] + size);\n      }\n      slidesGrid.push(slidesGrid[slidesGrid.length - 1] + size);\n      swiper.virtualSize += size;\n    }\n  }\n  if (snapGrid.length === 0) snapGrid = [0];\n  if (spaceBetween !== 0) {\n    const key = swiper.isHorizontal() && rtl ? 'marginLeft' : swiper.getDirectionLabel('marginRight');\n    slides.filter((_, slideIndex) => {\n      if (!params.cssMode || params.loop) return true;\n      if (slideIndex === slides.length - 1) {\n        return false;\n      }\n      return true;\n    }).forEach(slideEl => {\n      slideEl.style[key] = `${spaceBetween}px`;\n    });\n  }\n  if (params.centeredSlides && params.centeredSlidesBounds) {\n    let allSlidesSize = 0;\n    slidesSizesGrid.forEach(slideSizeValue => {\n      allSlidesSize += slideSizeValue + (spaceBetween || 0);\n    });\n    allSlidesSize -= spaceBetween;\n    const maxSnap = allSlidesSize > swiperSize ? allSlidesSize - swiperSize : 0;\n    snapGrid = snapGrid.map(snap => {\n      if (snap <= 0) return -offsetBefore;\n      if (snap > maxSnap) return maxSnap + offsetAfter;\n      return snap;\n    });\n  }\n  if (params.centerInsufficientSlides) {\n    let allSlidesSize = 0;\n    slidesSizesGrid.forEach(slideSizeValue => {\n      allSlidesSize += slideSizeValue + (spaceBetween || 0);\n    });\n    allSlidesSize -= spaceBetween;\n    if (allSlidesSize < swiperSize) {\n      const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n      snapGrid.forEach((snap, snapIndex) => {\n        snapGrid[snapIndex] = snap - allSlidesOffset;\n      });\n      slidesGrid.forEach((snap, snapIndex) => {\n        slidesGrid[snapIndex] = snap + allSlidesOffset;\n      });\n    }\n  }\n  Object.assign(swiper, {\n    slides,\n    snapGrid,\n    slidesGrid,\n    slidesSizesGrid\n  });\n  if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n    setCSSProperty(wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n    setCSSProperty(wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n    const addToSnapGrid = -swiper.snapGrid[0];\n    const addToSlidesGrid = -swiper.slidesGrid[0];\n    swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n    swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n  }\n  if (slidesLength !== previousSlidesLength) {\n    swiper.emit('slidesLengthChange');\n  }\n  if (snapGrid.length !== previousSnapGridLength) {\n    if (swiper.params.watchOverflow) swiper.checkOverflow();\n    swiper.emit('snapGridLengthChange');\n  }\n  if (slidesGrid.length !== previousSlidesGridLength) {\n    swiper.emit('slidesGridLengthChange');\n  }\n  if (params.watchSlidesProgress) {\n    swiper.updateSlidesOffset();\n  }\n  swiper.emit('slidesUpdated');\n  if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n    const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n    const hasClassBackfaceClassAdded = swiper.el.classList.contains(backFaceHiddenClass);\n    if (slidesLength <= params.maxBackfaceHiddenSlides) {\n      if (!hasClassBackfaceClassAdded) swiper.el.classList.add(backFaceHiddenClass);\n    } else if (hasClassBackfaceClassAdded) {\n      swiper.el.classList.remove(backFaceHiddenClass);\n    }\n  }\n}\n\nfunction updateAutoHeight(speed) {\n  const swiper = this;\n  const activeSlides = [];\n  const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n  let newHeight = 0;\n  let i;\n  if (typeof speed === 'number') {\n    swiper.setTransition(speed);\n  } else if (speed === true) {\n    swiper.setTransition(swiper.params.speed);\n  }\n  const getSlideByIndex = index => {\n    if (isVirtual) {\n      return swiper.slides[swiper.getSlideIndexByData(index)];\n    }\n    return swiper.slides[index];\n  };\n  // Find slides currently in view\n  if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n    if (swiper.params.centeredSlides) {\n      (swiper.visibleSlides || []).forEach(slide => {\n        activeSlides.push(slide);\n      });\n    } else {\n      for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n        const index = swiper.activeIndex + i;\n        if (index > swiper.slides.length && !isVirtual) break;\n        activeSlides.push(getSlideByIndex(index));\n      }\n    }\n  } else {\n    activeSlides.push(getSlideByIndex(swiper.activeIndex));\n  }\n\n  // Find new height from highest slide in view\n  for (i = 0; i < activeSlides.length; i += 1) {\n    if (typeof activeSlides[i] !== 'undefined') {\n      const height = activeSlides[i].offsetHeight;\n      newHeight = height > newHeight ? height : newHeight;\n    }\n  }\n\n  // Update Height\n  if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;\n}\n\nfunction updateSlidesOffset() {\n  const swiper = this;\n  const slides = swiper.slides;\n  // eslint-disable-next-line\n  const minusOffset = swiper.isElement ? swiper.isHorizontal() ? swiper.wrapperEl.offsetLeft : swiper.wrapperEl.offsetTop : 0;\n  for (let i = 0; i < slides.length; i += 1) {\n    slides[i].swiperSlideOffset = (swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop) - minusOffset - swiper.cssOverflowAdjustment();\n  }\n}\n\nconst toggleSlideClasses$1 = (slideEl, condition, className) => {\n  if (condition && !slideEl.classList.contains(className)) {\n    slideEl.classList.add(className);\n  } else if (!condition && slideEl.classList.contains(className)) {\n    slideEl.classList.remove(className);\n  }\n};\nfunction updateSlidesProgress(translate = this && this.translate || 0) {\n  const swiper = this;\n  const params = swiper.params;\n  const {\n    slides,\n    rtlTranslate: rtl,\n    snapGrid\n  } = swiper;\n  if (slides.length === 0) return;\n  if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n  let offsetCenter = -translate;\n  if (rtl) offsetCenter = translate;\n  swiper.visibleSlidesIndexes = [];\n  swiper.visibleSlides = [];\n  let spaceBetween = params.spaceBetween;\n  if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n    spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiper.size;\n  } else if (typeof spaceBetween === 'string') {\n    spaceBetween = parseFloat(spaceBetween);\n  }\n  for (let i = 0; i < slides.length; i += 1) {\n    const slide = slides[i];\n    let slideOffset = slide.swiperSlideOffset;\n    if (params.cssMode && params.centeredSlides) {\n      slideOffset -= slides[0].swiperSlideOffset;\n    }\n    const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n    const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + spaceBetween);\n    const slideBefore = -(offsetCenter - slideOffset);\n    const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n    const isFullyVisible = slideBefore >= 0 && slideBefore <= swiper.size - swiper.slidesSizesGrid[i];\n    const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n    if (isVisible) {\n      swiper.visibleSlides.push(slide);\n      swiper.visibleSlidesIndexes.push(i);\n    }\n    toggleSlideClasses$1(slide, isVisible, params.slideVisibleClass);\n    toggleSlideClasses$1(slide, isFullyVisible, params.slideFullyVisibleClass);\n    slide.progress = rtl ? -slideProgress : slideProgress;\n    slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n  }\n}\n\nfunction updateProgress(translate) {\n  const swiper = this;\n  if (typeof translate === 'undefined') {\n    const multiplier = swiper.rtlTranslate ? -1 : 1;\n    // eslint-disable-next-line\n    translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n  }\n  const params = swiper.params;\n  const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n  let {\n    progress,\n    isBeginning,\n    isEnd,\n    progressLoop\n  } = swiper;\n  const wasBeginning = isBeginning;\n  const wasEnd = isEnd;\n  if (translatesDiff === 0) {\n    progress = 0;\n    isBeginning = true;\n    isEnd = true;\n  } else {\n    progress = (translate - swiper.minTranslate()) / translatesDiff;\n    const isBeginningRounded = Math.abs(translate - swiper.minTranslate()) < 1;\n    const isEndRounded = Math.abs(translate - swiper.maxTranslate()) < 1;\n    isBeginning = isBeginningRounded || progress <= 0;\n    isEnd = isEndRounded || progress >= 1;\n    if (isBeginningRounded) progress = 0;\n    if (isEndRounded) progress = 1;\n  }\n  if (params.loop) {\n    const firstSlideIndex = swiper.getSlideIndexByData(0);\n    const lastSlideIndex = swiper.getSlideIndexByData(swiper.slides.length - 1);\n    const firstSlideTranslate = swiper.slidesGrid[firstSlideIndex];\n    const lastSlideTranslate = swiper.slidesGrid[lastSlideIndex];\n    const translateMax = swiper.slidesGrid[swiper.slidesGrid.length - 1];\n    const translateAbs = Math.abs(translate);\n    if (translateAbs >= firstSlideTranslate) {\n      progressLoop = (translateAbs - firstSlideTranslate) / translateMax;\n    } else {\n      progressLoop = (translateAbs + translateMax - lastSlideTranslate) / translateMax;\n    }\n    if (progressLoop > 1) progressLoop -= 1;\n  }\n  Object.assign(swiper, {\n    progress,\n    progressLoop,\n    isBeginning,\n    isEnd\n  });\n  if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n  if (isBeginning && !wasBeginning) {\n    swiper.emit('reachBeginning toEdge');\n  }\n  if (isEnd && !wasEnd) {\n    swiper.emit('reachEnd toEdge');\n  }\n  if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n    swiper.emit('fromEdge');\n  }\n  swiper.emit('progress', progress);\n}\n\nconst toggleSlideClasses = (slideEl, condition, className) => {\n  if (condition && !slideEl.classList.contains(className)) {\n    slideEl.classList.add(className);\n  } else if (!condition && slideEl.classList.contains(className)) {\n    slideEl.classList.remove(className);\n  }\n};\nfunction updateSlidesClasses() {\n  const swiper = this;\n  const {\n    slides,\n    params,\n    slidesEl,\n    activeIndex\n  } = swiper;\n  const isVirtual = swiper.virtual && params.virtual.enabled;\n  const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n  const getFilteredSlide = selector => {\n    return elementChildren(slidesEl, `.${params.slideClass}${selector}, swiper-slide${selector}`)[0];\n  };\n  let activeSlide;\n  let prevSlide;\n  let nextSlide;\n  if (isVirtual) {\n    if (params.loop) {\n      let slideIndex = activeIndex - swiper.virtual.slidesBefore;\n      if (slideIndex < 0) slideIndex = swiper.virtual.slides.length + slideIndex;\n      if (slideIndex >= swiper.virtual.slides.length) slideIndex -= swiper.virtual.slides.length;\n      activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${slideIndex}\"]`);\n    } else {\n      activeSlide = getFilteredSlide(`[data-swiper-slide-index=\"${activeIndex}\"]`);\n    }\n  } else {\n    if (gridEnabled) {\n      activeSlide = slides.find(slideEl => slideEl.column === activeIndex);\n      nextSlide = slides.find(slideEl => slideEl.column === activeIndex + 1);\n      prevSlide = slides.find(slideEl => slideEl.column === activeIndex - 1);\n    } else {\n      activeSlide = slides[activeIndex];\n    }\n  }\n  if (activeSlide) {\n    if (!gridEnabled) {\n      // Next Slide\n      nextSlide = elementNextAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n      if (params.loop && !nextSlide) {\n        nextSlide = slides[0];\n      }\n\n      // Prev Slide\n      prevSlide = elementPrevAll(activeSlide, `.${params.slideClass}, swiper-slide`)[0];\n      if (params.loop && !prevSlide === 0) {\n        prevSlide = slides[slides.length - 1];\n      }\n    }\n  }\n  slides.forEach(slideEl => {\n    toggleSlideClasses(slideEl, slideEl === activeSlide, params.slideActiveClass);\n    toggleSlideClasses(slideEl, slideEl === nextSlide, params.slideNextClass);\n    toggleSlideClasses(slideEl, slideEl === prevSlide, params.slidePrevClass);\n  });\n  swiper.emitSlidesClasses();\n}\n\nconst processLazyPreloader = (swiper, imageEl) => {\n  if (!swiper || swiper.destroyed || !swiper.params) return;\n  const slideSelector = () => swiper.isElement ? `swiper-slide` : `.${swiper.params.slideClass}`;\n  const slideEl = imageEl.closest(slideSelector());\n  if (slideEl) {\n    let lazyEl = slideEl.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n    if (!lazyEl && swiper.isElement) {\n      if (slideEl.shadowRoot) {\n        lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n      } else {\n        // init later\n        requestAnimationFrame(() => {\n          if (slideEl.shadowRoot) {\n            lazyEl = slideEl.shadowRoot.querySelector(`.${swiper.params.lazyPreloaderClass}`);\n            if (lazyEl && !lazyEl.lazyPreloaderManaged) lazyEl.remove();\n          }\n        });\n      }\n    }\n    // Skip removal if managed by React/Vue component\n    if (lazyEl && !lazyEl.lazyPreloaderManaged) lazyEl.remove();\n  }\n};\nconst unlazy = (swiper, index) => {\n  if (!swiper.slides[index]) return;\n  const imageEl = swiper.slides[index].querySelector('[loading=\"lazy\"]');\n  if (imageEl) imageEl.removeAttribute('loading');\n};\nconst preload = swiper => {\n  if (!swiper || swiper.destroyed || !swiper.params) return;\n  let amount = swiper.params.lazyPreloadPrevNext;\n  const len = swiper.slides.length;\n  if (!len || !amount || amount < 0) return;\n  amount = Math.min(amount, len);\n  const slidesPerView = swiper.params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(swiper.params.slidesPerView);\n  const activeIndex = swiper.activeIndex;\n  if (swiper.params.grid && swiper.params.grid.rows > 1) {\n    const activeColumn = activeIndex;\n    const preloadColumns = [activeColumn - amount];\n    preloadColumns.push(...Array.from({\n      length: amount\n    }).map((_, i) => {\n      return activeColumn + slidesPerView + i;\n    }));\n    swiper.slides.forEach((slideEl, i) => {\n      if (preloadColumns.includes(slideEl.column)) unlazy(swiper, i);\n    });\n    return;\n  }\n  const slideIndexLastInView = activeIndex + slidesPerView - 1;\n  if (swiper.params.rewind || swiper.params.loop) {\n    for (let i = activeIndex - amount; i <= slideIndexLastInView + amount; i += 1) {\n      const realIndex = (i % len + len) % len;\n      if (realIndex < activeIndex || realIndex > slideIndexLastInView) unlazy(swiper, realIndex);\n    }\n  } else {\n    for (let i = Math.max(activeIndex - amount, 0); i <= Math.min(slideIndexLastInView + amount, len - 1); i += 1) {\n      if (i !== activeIndex && (i > slideIndexLastInView || i < activeIndex)) {\n        unlazy(swiper, i);\n      }\n    }\n  }\n};\n\nfunction getActiveIndexByTranslate(swiper) {\n  const {\n    slidesGrid,\n    params\n  } = swiper;\n  const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n  let activeIndex;\n  for (let i = 0; i < slidesGrid.length; i += 1) {\n    if (typeof slidesGrid[i + 1] !== 'undefined') {\n      if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n        activeIndex = i;\n      } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n        activeIndex = i + 1;\n      }\n    } else if (translate >= slidesGrid[i]) {\n      activeIndex = i;\n    }\n  }\n  // Normalize slideIndex\n  if (params.normalizeSlideIndex) {\n    if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n  }\n  return activeIndex;\n}\nfunction updateActiveIndex(newActiveIndex) {\n  const swiper = this;\n  const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n  const {\n    snapGrid,\n    params,\n    activeIndex: previousIndex,\n    realIndex: previousRealIndex,\n    snapIndex: previousSnapIndex\n  } = swiper;\n  let activeIndex = newActiveIndex;\n  let snapIndex;\n  const getVirtualRealIndex = aIndex => {\n    let realIndex = aIndex - swiper.virtual.slidesBefore;\n    if (realIndex < 0) {\n      realIndex = swiper.virtual.slides.length + realIndex;\n    }\n    if (realIndex >= swiper.virtual.slides.length) {\n      realIndex -= swiper.virtual.slides.length;\n    }\n    return realIndex;\n  };\n  if (typeof activeIndex === 'undefined') {\n    activeIndex = getActiveIndexByTranslate(swiper);\n  }\n  if (snapGrid.indexOf(translate) >= 0) {\n    snapIndex = snapGrid.indexOf(translate);\n  } else {\n    const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n    snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n  }\n  if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n  if (activeIndex === previousIndex && !swiper.params.loop) {\n    if (snapIndex !== previousSnapIndex) {\n      swiper.snapIndex = snapIndex;\n      swiper.emit('snapIndexChange');\n    }\n    return;\n  }\n  if (activeIndex === previousIndex && swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n    swiper.realIndex = getVirtualRealIndex(activeIndex);\n    return;\n  }\n  const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n\n  // Get real index\n  let realIndex;\n  if (swiper.virtual && params.virtual.enabled) {\n    if (params.loop) {\n      realIndex = getVirtualRealIndex(activeIndex);\n    } else {\n      realIndex = activeIndex;\n    }\n  } else if (gridEnabled) {\n    const firstSlideInColumn = swiper.slides.find(slideEl => slideEl.column === activeIndex);\n    let activeSlideIndex = parseInt(firstSlideInColumn.getAttribute('data-swiper-slide-index'), 10);\n    if (Number.isNaN(activeSlideIndex)) {\n      activeSlideIndex = Math.max(swiper.slides.indexOf(firstSlideInColumn), 0);\n    }\n    realIndex = Math.floor(activeSlideIndex / params.grid.rows);\n  } else if (swiper.slides[activeIndex]) {\n    const slideIndex = swiper.slides[activeIndex].getAttribute('data-swiper-slide-index');\n    if (slideIndex) {\n      realIndex = parseInt(slideIndex, 10);\n    } else {\n      realIndex = activeIndex;\n    }\n  } else {\n    realIndex = activeIndex;\n  }\n  Object.assign(swiper, {\n    previousSnapIndex,\n    snapIndex,\n    previousRealIndex,\n    realIndex,\n    previousIndex,\n    activeIndex\n  });\n  if (swiper.initialized) {\n    preload(swiper);\n  }\n  swiper.emit('activeIndexChange');\n  swiper.emit('snapIndexChange');\n  if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n    if (previousRealIndex !== realIndex) {\n      swiper.emit('realIndexChange');\n    }\n    swiper.emit('slideChange');\n  }\n}\n\nfunction updateClickedSlide(el, path) {\n  const swiper = this;\n  const params = swiper.params;\n  let slide = el.closest(`.${params.slideClass}, swiper-slide`);\n  if (!slide && swiper.isElement && path && path.length > 1 && path.includes(el)) {\n    [...path.slice(path.indexOf(el) + 1, path.length)].forEach(pathEl => {\n      if (!slide && pathEl.matches && pathEl.matches(`.${params.slideClass}, swiper-slide`)) {\n        slide = pathEl;\n      }\n    });\n  }\n  let slideFound = false;\n  let slideIndex;\n  if (slide) {\n    for (let i = 0; i < swiper.slides.length; i += 1) {\n      if (swiper.slides[i] === slide) {\n        slideFound = true;\n        slideIndex = i;\n        break;\n      }\n    }\n  }\n  if (slide && slideFound) {\n    swiper.clickedSlide = slide;\n    if (swiper.virtual && swiper.params.virtual.enabled) {\n      swiper.clickedIndex = parseInt(slide.getAttribute('data-swiper-slide-index'), 10);\n    } else {\n      swiper.clickedIndex = slideIndex;\n    }\n  } else {\n    swiper.clickedSlide = undefined;\n    swiper.clickedIndex = undefined;\n    return;\n  }\n  if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n    swiper.slideToClickedSlide();\n  }\n}\n\nvar update = {\n  updateSize,\n  updateSlides,\n  updateAutoHeight,\n  updateSlidesOffset,\n  updateSlidesProgress,\n  updateProgress,\n  updateSlidesClasses,\n  updateActiveIndex,\n  updateClickedSlide\n};\n\nfunction getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\n  const swiper = this;\n  const {\n    params,\n    rtlTranslate: rtl,\n    translate,\n    wrapperEl\n  } = swiper;\n  if (params.virtualTranslate) {\n    return rtl ? -translate : translate;\n  }\n  if (params.cssMode) {\n    return translate;\n  }\n  let currentTranslate = getTranslate(wrapperEl, axis);\n  currentTranslate += swiper.cssOverflowAdjustment();\n  if (rtl) currentTranslate = -currentTranslate;\n  return currentTranslate || 0;\n}\n\nfunction setTranslate(translate, byController) {\n  const swiper = this;\n  const {\n    rtlTranslate: rtl,\n    params,\n    wrapperEl,\n    progress\n  } = swiper;\n  let x = 0;\n  let y = 0;\n  const z = 0;\n  if (swiper.isHorizontal()) {\n    x = rtl ? -translate : translate;\n  } else {\n    y = translate;\n  }\n  if (params.roundLengths) {\n    x = Math.floor(x);\n    y = Math.floor(y);\n  }\n  swiper.previousTranslate = swiper.translate;\n  swiper.translate = swiper.isHorizontal() ? x : y;\n  if (params.cssMode) {\n    wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n  } else if (!params.virtualTranslate) {\n    if (swiper.isHorizontal()) {\n      x -= swiper.cssOverflowAdjustment();\n    } else {\n      y -= swiper.cssOverflowAdjustment();\n    }\n    wrapperEl.style.transform = `translate3d(${x}px, ${y}px, ${z}px)`;\n  }\n\n  // Check if we need to update progress\n  let newProgress;\n  const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n  if (translatesDiff === 0) {\n    newProgress = 0;\n  } else {\n    newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n  }\n  if (newProgress !== progress) {\n    swiper.updateProgress(translate);\n  }\n  swiper.emit('setTranslate', swiper.translate, byController);\n}\n\nfunction minTranslate() {\n  return -this.snapGrid[0];\n}\n\nfunction maxTranslate() {\n  return -this.snapGrid[this.snapGrid.length - 1];\n}\n\nfunction translateTo(translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n  const swiper = this;\n  const {\n    params,\n    wrapperEl\n  } = swiper;\n  if (swiper.animating && params.preventInteractionOnTransition) {\n    return false;\n  }\n  const minTranslate = swiper.minTranslate();\n  const maxTranslate = swiper.maxTranslate();\n  let newTranslate;\n  if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate;\n\n  // Update progress\n  swiper.updateProgress(newTranslate);\n  if (params.cssMode) {\n    const isH = swiper.isHorizontal();\n    if (speed === 0) {\n      wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n    } else {\n      if (!swiper.support.smoothScroll) {\n        animateCSSModeScroll({\n          swiper,\n          targetPosition: -newTranslate,\n          side: isH ? 'left' : 'top'\n        });\n        return true;\n      }\n      wrapperEl.scrollTo({\n        [isH ? 'left' : 'top']: -newTranslate,\n        behavior: 'smooth'\n      });\n    }\n    return true;\n  }\n  if (speed === 0) {\n    swiper.setTransition(0);\n    swiper.setTranslate(newTranslate);\n    if (runCallbacks) {\n      swiper.emit('beforeTransitionStart', speed, internal);\n      swiper.emit('transitionEnd');\n    }\n  } else {\n    swiper.setTransition(speed);\n    swiper.setTranslate(newTranslate);\n    if (runCallbacks) {\n      swiper.emit('beforeTransitionStart', speed, internal);\n      swiper.emit('transitionStart');\n    }\n    if (!swiper.animating) {\n      swiper.animating = true;\n      if (!swiper.onTranslateToWrapperTransitionEnd) {\n        swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n          if (!swiper || swiper.destroyed) return;\n          if (e.target !== this) return;\n          swiper.wrapperEl.removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n          swiper.onTranslateToWrapperTransitionEnd = null;\n          delete swiper.onTranslateToWrapperTransitionEnd;\n          swiper.animating = false;\n          if (runCallbacks) {\n            swiper.emit('transitionEnd');\n          }\n        };\n      }\n      swiper.wrapperEl.addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n    }\n  }\n  return true;\n}\n\nvar translate = {\n  getTranslate: getSwiperTranslate,\n  setTranslate,\n  minTranslate,\n  maxTranslate,\n  translateTo\n};\n\nfunction setTransition(duration, byController) {\n  const swiper = this;\n  if (!swiper.params.cssMode) {\n    swiper.wrapperEl.style.transitionDuration = `${duration}ms`;\n    swiper.wrapperEl.style.transitionDelay = duration === 0 ? `0ms` : '';\n  }\n  swiper.emit('setTransition', duration, byController);\n}\n\nfunction transitionEmit({\n  swiper,\n  runCallbacks,\n  direction,\n  step\n}) {\n  const {\n    activeIndex,\n    previousIndex\n  } = swiper;\n  let dir = direction;\n  if (!dir) {\n    if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n  }\n  swiper.emit(`transition${step}`);\n  if (runCallbacks && dir === 'reset') {\n    swiper.emit(`slideResetTransition${step}`);\n  } else if (runCallbacks && activeIndex !== previousIndex) {\n    swiper.emit(`slideChangeTransition${step}`);\n    if (dir === 'next') {\n      swiper.emit(`slideNextTransition${step}`);\n    } else {\n      swiper.emit(`slidePrevTransition${step}`);\n    }\n  }\n}\n\nfunction transitionStart(runCallbacks = true, direction) {\n  const swiper = this;\n  const {\n    params\n  } = swiper;\n  if (params.cssMode) return;\n  if (params.autoHeight) {\n    swiper.updateAutoHeight();\n  }\n  transitionEmit({\n    swiper,\n    runCallbacks,\n    direction,\n    step: 'Start'\n  });\n}\n\nfunction transitionEnd(runCallbacks = true, direction) {\n  const swiper = this;\n  const {\n    params\n  } = swiper;\n  swiper.animating = false;\n  if (params.cssMode) return;\n  swiper.setTransition(0);\n  transitionEmit({\n    swiper,\n    runCallbacks,\n    direction,\n    step: 'End'\n  });\n}\n\nvar transition = {\n  setTransition,\n  transitionStart,\n  transitionEnd\n};\n\nfunction slideTo(index = 0, speed, runCallbacks = true, internal, initial) {\n  if (typeof index === 'string') {\n    index = parseInt(index, 10);\n  }\n  const swiper = this;\n  let slideIndex = index;\n  if (slideIndex < 0) slideIndex = 0;\n  const {\n    params,\n    snapGrid,\n    slidesGrid,\n    previousIndex,\n    activeIndex,\n    rtlTranslate: rtl,\n    wrapperEl,\n    enabled\n  } = swiper;\n  if (!enabled && !internal && !initial || swiper.destroyed || swiper.animating && params.preventInteractionOnTransition) {\n    return false;\n  }\n  if (typeof speed === 'undefined') {\n    speed = swiper.params.speed;\n  }\n  const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n  let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n  if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n  const translate = -snapGrid[snapIndex];\n  // Normalize slideIndex\n  if (params.normalizeSlideIndex) {\n    for (let i = 0; i < slidesGrid.length; i += 1) {\n      const normalizedTranslate = -Math.floor(translate * 100);\n      const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n      const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n      if (typeof slidesGrid[i + 1] !== 'undefined') {\n        if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n          slideIndex = i;\n        } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n          slideIndex = i + 1;\n        }\n      } else if (normalizedTranslate >= normalizedGrid) {\n        slideIndex = i;\n      }\n    }\n  }\n  // Directions locks\n  if (swiper.initialized && slideIndex !== activeIndex) {\n    if (!swiper.allowSlideNext && (rtl ? translate > swiper.translate && translate > swiper.minTranslate() : translate < swiper.translate && translate < swiper.minTranslate())) {\n      return false;\n    }\n    if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n      if ((activeIndex || 0) !== slideIndex) {\n        return false;\n      }\n    }\n  }\n  if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n    swiper.emit('beforeSlideChangeStart');\n  }\n\n  // Update progress\n  swiper.updateProgress(translate);\n  let direction;\n  if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset';\n\n  // initial virtual\n  const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n  const isInitialVirtual = isVirtual && initial;\n  // Update Index\n  if (!isInitialVirtual && (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate)) {\n    swiper.updateActiveIndex(slideIndex);\n    // Update Height\n    if (params.autoHeight) {\n      swiper.updateAutoHeight();\n    }\n    swiper.updateSlidesClasses();\n    if (params.effect !== 'slide') {\n      swiper.setTranslate(translate);\n    }\n    if (direction !== 'reset') {\n      swiper.transitionStart(runCallbacks, direction);\n      swiper.transitionEnd(runCallbacks, direction);\n    }\n    return false;\n  }\n  if (params.cssMode) {\n    const isH = swiper.isHorizontal();\n    const t = rtl ? translate : -translate;\n    if (speed === 0) {\n      if (isVirtual) {\n        swiper.wrapperEl.style.scrollSnapType = 'none';\n        swiper._immediateVirtual = true;\n      }\n      if (isVirtual && !swiper._cssModeVirtualInitialSet && swiper.params.initialSlide > 0) {\n        swiper._cssModeVirtualInitialSet = true;\n        requestAnimationFrame(() => {\n          wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n        });\n      } else {\n        wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n      }\n      if (isVirtual) {\n        requestAnimationFrame(() => {\n          swiper.wrapperEl.style.scrollSnapType = '';\n          swiper._immediateVirtual = false;\n        });\n      }\n    } else {\n      if (!swiper.support.smoothScroll) {\n        animateCSSModeScroll({\n          swiper,\n          targetPosition: t,\n          side: isH ? 'left' : 'top'\n        });\n        return true;\n      }\n      wrapperEl.scrollTo({\n        [isH ? 'left' : 'top']: t,\n        behavior: 'smooth'\n      });\n    }\n    return true;\n  }\n  const browser = getBrowser();\n  const isSafari = browser.isSafari;\n  if (isVirtual && !initial && isSafari && swiper.isElement) {\n    swiper.virtual.update(false, false, slideIndex);\n  }\n  swiper.setTransition(speed);\n  swiper.setTranslate(translate);\n  swiper.updateActiveIndex(slideIndex);\n  swiper.updateSlidesClasses();\n  swiper.emit('beforeTransitionStart', speed, internal);\n  swiper.transitionStart(runCallbacks, direction);\n  if (speed === 0) {\n    swiper.transitionEnd(runCallbacks, direction);\n  } else if (!swiper.animating) {\n    swiper.animating = true;\n    if (!swiper.onSlideToWrapperTransitionEnd) {\n      swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n        if (!swiper || swiper.destroyed) return;\n        if (e.target !== this) return;\n        swiper.wrapperEl.removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n        swiper.onSlideToWrapperTransitionEnd = null;\n        delete swiper.onSlideToWrapperTransitionEnd;\n        swiper.transitionEnd(runCallbacks, direction);\n      };\n    }\n    swiper.wrapperEl.addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n  }\n  return true;\n}\n\nfunction slideToLoop(index = 0, speed, runCallbacks = true, internal) {\n  if (typeof index === 'string') {\n    const indexAsNumber = parseInt(index, 10);\n    index = indexAsNumber;\n  }\n  const swiper = this;\n  if (swiper.destroyed) return;\n  if (typeof speed === 'undefined') {\n    speed = swiper.params.speed;\n  }\n  const gridEnabled = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;\n  let newIndex = index;\n  if (swiper.params.loop) {\n    if (swiper.virtual && swiper.params.virtual.enabled) {\n      // eslint-disable-next-line\n      newIndex = newIndex + swiper.virtual.slidesBefore;\n    } else {\n      let targetSlideIndex;\n      if (gridEnabled) {\n        const slideIndex = newIndex * swiper.params.grid.rows;\n        targetSlideIndex = swiper.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex).column;\n      } else {\n        targetSlideIndex = swiper.getSlideIndexByData(newIndex);\n      }\n      const cols = gridEnabled ? Math.ceil(swiper.slides.length / swiper.params.grid.rows) : swiper.slides.length;\n      const {\n        centeredSlides,\n        slidesOffsetBefore,\n        slidesOffsetAfter\n      } = swiper.params;\n      const bothDirections = centeredSlides || !!slidesOffsetBefore || !!slidesOffsetAfter;\n      let slidesPerView = swiper.params.slidesPerView;\n      if (slidesPerView === 'auto') {\n        slidesPerView = swiper.slidesPerViewDynamic();\n      } else {\n        slidesPerView = Math.ceil(parseFloat(swiper.params.slidesPerView, 10));\n        if (bothDirections && slidesPerView % 2 === 0) {\n          slidesPerView = slidesPerView + 1;\n        }\n      }\n      let needLoopFix = cols - targetSlideIndex < slidesPerView;\n      if (bothDirections) {\n        needLoopFix = needLoopFix || targetSlideIndex < Math.ceil(slidesPerView / 2);\n      }\n      if (internal && bothDirections && swiper.params.slidesPerView !== 'auto' && !gridEnabled) {\n        needLoopFix = false;\n      }\n      if (needLoopFix) {\n        const direction = bothDirections ? targetSlideIndex < swiper.activeIndex ? 'prev' : 'next' : targetSlideIndex - swiper.activeIndex - 1 < swiper.params.slidesPerView ? 'next' : 'prev';\n        swiper.loopFix({\n          direction,\n          slideTo: true,\n          activeSlideIndex: direction === 'next' ? targetSlideIndex + 1 : targetSlideIndex - cols + 1,\n          slideRealIndex: direction === 'next' ? swiper.realIndex : undefined\n        });\n      }\n      if (gridEnabled) {\n        const slideIndex = newIndex * swiper.params.grid.rows;\n        newIndex = swiper.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === slideIndex).column;\n      } else {\n        newIndex = swiper.getSlideIndexByData(newIndex);\n      }\n    }\n  }\n  requestAnimationFrame(() => {\n    swiper.slideTo(newIndex, speed, runCallbacks, internal);\n  });\n  return swiper;\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideNext(speed, runCallbacks = true, internal) {\n  const swiper = this;\n  const {\n    enabled,\n    params,\n    animating\n  } = swiper;\n  if (!enabled || swiper.destroyed) return swiper;\n  if (typeof speed === 'undefined') {\n    speed = swiper.params.speed;\n  }\n  let perGroup = params.slidesPerGroup;\n  if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n    perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n  }\n  const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n  const isVirtual = swiper.virtual && params.virtual.enabled;\n  if (params.loop) {\n    if (animating && !isVirtual && params.loopPreventsSliding) return false;\n    swiper.loopFix({\n      direction: 'next'\n    });\n    // eslint-disable-next-line\n    swiper._clientLeft = swiper.wrapperEl.clientLeft;\n    if (swiper.activeIndex === swiper.slides.length - 1 && params.cssMode) {\n      requestAnimationFrame(() => {\n        swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n      });\n      return true;\n    }\n  }\n  if (params.rewind && swiper.isEnd) {\n    return swiper.slideTo(0, speed, runCallbacks, internal);\n  }\n  return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slidePrev(speed, runCallbacks = true, internal) {\n  const swiper = this;\n  const {\n    params,\n    snapGrid,\n    slidesGrid,\n    rtlTranslate,\n    enabled,\n    animating\n  } = swiper;\n  if (!enabled || swiper.destroyed) return swiper;\n  if (typeof speed === 'undefined') {\n    speed = swiper.params.speed;\n  }\n  const isVirtual = swiper.virtual && params.virtual.enabled;\n  if (params.loop) {\n    if (animating && !isVirtual && params.loopPreventsSliding) return false;\n    swiper.loopFix({\n      direction: 'prev'\n    });\n    // eslint-disable-next-line\n    swiper._clientLeft = swiper.wrapperEl.clientLeft;\n  }\n  const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n  function normalize(val) {\n    if (val < 0) return -Math.floor(Math.abs(val));\n    return Math.floor(val);\n  }\n  const normalizedTranslate = normalize(translate);\n  const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n  const isFreeMode = params.freeMode && params.freeMode.enabled;\n  let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n  if (typeof prevSnap === 'undefined' && (params.cssMode || isFreeMode)) {\n    let prevSnapIndex;\n    snapGrid.forEach((snap, snapIndex) => {\n      if (normalizedTranslate >= snap) {\n        // prevSnap = snap;\n        prevSnapIndex = snapIndex;\n      }\n    });\n    if (typeof prevSnapIndex !== 'undefined') {\n      prevSnap = isFreeMode ? snapGrid[prevSnapIndex] : snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n    }\n  }\n  let prevIndex = 0;\n  if (typeof prevSnap !== 'undefined') {\n    prevIndex = slidesGrid.indexOf(prevSnap);\n    if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n    if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n      prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n      prevIndex = Math.max(prevIndex, 0);\n    }\n  }\n  if (params.rewind && swiper.isBeginning) {\n    const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n    return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n  } else if (params.loop && swiper.activeIndex === 0 && params.cssMode) {\n    requestAnimationFrame(() => {\n      swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n    });\n    return true;\n  }\n  return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideReset(speed, runCallbacks = true, internal) {\n  const swiper = this;\n  if (swiper.destroyed) return;\n  if (typeof speed === 'undefined') {\n    speed = swiper.params.speed;\n  }\n  return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}\n\n/* eslint no-unused-vars: \"off\" */\nfunction slideToClosest(speed, runCallbacks = true, internal, threshold = 0.5) {\n  const swiper = this;\n  if (swiper.destroyed) return;\n  if (typeof speed === 'undefined') {\n    speed = swiper.params.speed;\n  }\n  let index = swiper.activeIndex;\n  const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n  const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n  const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n  if (translate >= swiper.snapGrid[snapIndex]) {\n    // The current translate is on or after the current snap index, so the choice\n    // is between the current index and the one after it.\n    const currentSnap = swiper.snapGrid[snapIndex];\n    const nextSnap = swiper.snapGrid[snapIndex + 1];\n    if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n      index += swiper.params.slidesPerGroup;\n    }\n  } else {\n    // The current translate is before the current snap index, so the choice\n    // is between the current index and the one before it.\n    const prevSnap = swiper.snapGrid[snapIndex - 1];\n    const currentSnap = swiper.snapGrid[snapIndex];\n    if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n      index -= swiper.params.slidesPerGroup;\n    }\n  }\n  index = Math.max(index, 0);\n  index = Math.min(index, swiper.slidesGrid.length - 1);\n  return swiper.slideTo(index, speed, runCallbacks, internal);\n}\n\nfunction slideToClickedSlide() {\n  const swiper = this;\n  if (swiper.destroyed) return;\n  const {\n    params,\n    slidesEl\n  } = swiper;\n  const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n  let slideToIndex = swiper.getSlideIndexWhenGrid(swiper.clickedIndex);\n  let realIndex;\n  const slideSelector = swiper.isElement ? `swiper-slide` : `.${params.slideClass}`;\n  const isGrid = swiper.grid && swiper.params.grid && swiper.params.grid.rows > 1;\n  if (params.loop) {\n    if (swiper.animating) return;\n    realIndex = parseInt(swiper.clickedSlide.getAttribute('data-swiper-slide-index'), 10);\n    if (params.centeredSlides) {\n      swiper.slideToLoop(realIndex);\n    } else if (slideToIndex > (isGrid ? (swiper.slides.length - slidesPerView) / 2 - (swiper.params.grid.rows - 1) : swiper.slides.length - slidesPerView)) {\n      swiper.loopFix();\n      slideToIndex = swiper.getSlideIndex(elementChildren(slidesEl, `${slideSelector}[data-swiper-slide-index=\"${realIndex}\"]`)[0]);\n      nextTick(() => {\n        swiper.slideTo(slideToIndex);\n      });\n    } else {\n      swiper.slideTo(slideToIndex);\n    }\n  } else {\n    swiper.slideTo(slideToIndex);\n  }\n}\n\nvar slide = {\n  slideTo,\n  slideToLoop,\n  slideNext,\n  slidePrev,\n  slideReset,\n  slideToClosest,\n  slideToClickedSlide\n};\n\nfunction loopCreate(slideRealIndex, initial) {\n  const swiper = this;\n  const {\n    params,\n    slidesEl\n  } = swiper;\n  if (!params.loop || swiper.virtual && swiper.params.virtual.enabled) return;\n  const initSlides = () => {\n    const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n    slides.forEach((el, index) => {\n      el.setAttribute('data-swiper-slide-index', index);\n    });\n  };\n  const clearBlankSlides = () => {\n    const slides = elementChildren(slidesEl, `.${params.slideBlankClass}`);\n    slides.forEach(el => {\n      el.remove();\n    });\n    if (slides.length > 0) {\n      swiper.recalcSlides();\n      swiper.updateSlides();\n    }\n  };\n  const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n  if (params.loopAddBlankSlides && (params.slidesPerGroup > 1 || gridEnabled)) {\n    clearBlankSlides();\n  }\n  const slidesPerGroup = params.slidesPerGroup * (gridEnabled ? params.grid.rows : 1);\n  const shouldFillGroup = swiper.slides.length % slidesPerGroup !== 0;\n  const shouldFillGrid = gridEnabled && swiper.slides.length % params.grid.rows !== 0;\n  const addBlankSlides = amountOfSlides => {\n    for (let i = 0; i < amountOfSlides; i += 1) {\n      const slideEl = swiper.isElement ? createElement('swiper-slide', [params.slideBlankClass]) : createElement('div', [params.slideClass, params.slideBlankClass]);\n      swiper.slidesEl.append(slideEl);\n    }\n  };\n  if (shouldFillGroup) {\n    if (params.loopAddBlankSlides) {\n      const slidesToAdd = slidesPerGroup - swiper.slides.length % slidesPerGroup;\n      addBlankSlides(slidesToAdd);\n      swiper.recalcSlides();\n      swiper.updateSlides();\n    } else {\n      showWarning('Swiper Loop Warning: The number of slides is not even to slidesPerGroup, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n    }\n    initSlides();\n  } else if (shouldFillGrid) {\n    if (params.loopAddBlankSlides) {\n      const slidesToAdd = params.grid.rows - swiper.slides.length % params.grid.rows;\n      addBlankSlides(slidesToAdd);\n      swiper.recalcSlides();\n      swiper.updateSlides();\n    } else {\n      showWarning('Swiper Loop Warning: The number of slides is not even to grid.rows, loop mode may not function properly. You need to add more slides (or make duplicates, or empty slides)');\n    }\n    initSlides();\n  } else {\n    initSlides();\n  }\n  const bothDirections = params.centeredSlides || !!params.slidesOffsetBefore || !!params.slidesOffsetAfter;\n  swiper.loopFix({\n    slideRealIndex,\n    direction: bothDirections ? undefined : 'next',\n    initial\n  });\n}\n\nfunction loopFix({\n  slideRealIndex,\n  slideTo = true,\n  direction,\n  setTranslate,\n  activeSlideIndex,\n  initial,\n  byController,\n  byMousewheel\n} = {}) {\n  const swiper = this;\n  if (!swiper.params.loop) return;\n  swiper.emit('beforeLoopFix');\n  const {\n    slides,\n    allowSlidePrev,\n    allowSlideNext,\n    slidesEl,\n    params\n  } = swiper;\n  const {\n    centeredSlides,\n    slidesOffsetBefore,\n    slidesOffsetAfter,\n    initialSlide\n  } = params;\n  const bothDirections = centeredSlides || !!slidesOffsetBefore || !!slidesOffsetAfter;\n  swiper.allowSlidePrev = true;\n  swiper.allowSlideNext = true;\n  if (swiper.virtual && params.virtual.enabled) {\n    if (slideTo) {\n      if (!bothDirections && swiper.snapIndex === 0) {\n        swiper.slideTo(swiper.virtual.slides.length, 0, false, true);\n      } else if (bothDirections && swiper.snapIndex < params.slidesPerView) {\n        swiper.slideTo(swiper.virtual.slides.length + swiper.snapIndex, 0, false, true);\n      } else if (swiper.snapIndex === swiper.snapGrid.length - 1) {\n        swiper.slideTo(swiper.virtual.slidesBefore, 0, false, true);\n      }\n    }\n    swiper.allowSlidePrev = allowSlidePrev;\n    swiper.allowSlideNext = allowSlideNext;\n    swiper.emit('loopFix');\n    return;\n  }\n  let slidesPerView = params.slidesPerView;\n  if (slidesPerView === 'auto') {\n    slidesPerView = swiper.slidesPerViewDynamic();\n  } else {\n    slidesPerView = Math.ceil(parseFloat(params.slidesPerView, 10));\n    if (bothDirections && slidesPerView % 2 === 0) {\n      slidesPerView = slidesPerView + 1;\n    }\n  }\n  const slidesPerGroup = params.slidesPerGroupAuto ? slidesPerView : params.slidesPerGroup;\n  let loopedSlides = bothDirections ? Math.max(slidesPerGroup, Math.ceil(slidesPerView / 2)) : slidesPerGroup;\n  if (loopedSlides % slidesPerGroup !== 0) {\n    loopedSlides += slidesPerGroup - loopedSlides % slidesPerGroup;\n  }\n  loopedSlides += params.loopAdditionalSlides;\n  swiper.loopedSlides = loopedSlides;\n  const gridEnabled = swiper.grid && params.grid && params.grid.rows > 1;\n  if (slides.length < slidesPerView + loopedSlides || swiper.params.effect === 'cards' && slides.length < slidesPerView + loopedSlides * 2) {\n    showWarning('Swiper Loop Warning: The number of slides is not enough for loop mode, it will be disabled or not function properly. You need to add more slides (or make duplicates) or lower the values of slidesPerView and slidesPerGroup parameters');\n  } else if (gridEnabled && params.grid.fill === 'row') {\n    showWarning('Swiper Loop Warning: Loop mode is not compatible with grid.fill = `row`');\n  }\n  const prependSlidesIndexes = [];\n  const appendSlidesIndexes = [];\n  const cols = gridEnabled ? Math.ceil(slides.length / params.grid.rows) : slides.length;\n  const isInitialOverflow = initial && cols - initialSlide < slidesPerView && !bothDirections;\n  let activeIndex = isInitialOverflow ? initialSlide : swiper.activeIndex;\n  if (typeof activeSlideIndex === 'undefined') {\n    activeSlideIndex = swiper.getSlideIndex(slides.find(el => el.classList.contains(params.slideActiveClass)));\n  } else {\n    activeIndex = activeSlideIndex;\n  }\n  const isNext = direction === 'next' || !direction;\n  const isPrev = direction === 'prev' || !direction;\n  let slidesPrepended = 0;\n  let slidesAppended = 0;\n  const activeColIndex = gridEnabled ? slides[activeSlideIndex].column : activeSlideIndex;\n  const activeColIndexWithShift = activeColIndex + (bothDirections && typeof setTranslate === 'undefined' ? -slidesPerView / 2 + 0.5 : 0);\n  // prepend last slides before start\n  if (activeColIndexWithShift < loopedSlides) {\n    slidesPrepended = Math.max(loopedSlides - activeColIndexWithShift, slidesPerGroup);\n    for (let i = 0; i < loopedSlides - activeColIndexWithShift; i += 1) {\n      const index = i - Math.floor(i / cols) * cols;\n      if (gridEnabled) {\n        const colIndexToPrepend = cols - index - 1;\n        for (let i = slides.length - 1; i >= 0; i -= 1) {\n          if (slides[i].column === colIndexToPrepend) prependSlidesIndexes.push(i);\n        }\n        // slides.forEach((slide, slideIndex) => {\n        //   if (slide.column === colIndexToPrepend) prependSlidesIndexes.push(slideIndex);\n        // });\n      } else {\n        prependSlidesIndexes.push(cols - index - 1);\n      }\n    }\n  } else if (activeColIndexWithShift + slidesPerView > cols - loopedSlides) {\n    slidesAppended = Math.max(activeColIndexWithShift - (cols - loopedSlides * 2), slidesPerGroup);\n    if (isInitialOverflow) {\n      slidesAppended = Math.max(slidesAppended, slidesPerView - cols + initialSlide + 1);\n    }\n    for (let i = 0; i < slidesAppended; i += 1) {\n      const index = i - Math.floor(i / cols) * cols;\n      if (gridEnabled) {\n        slides.forEach((slide, slideIndex) => {\n          if (slide.column === index) appendSlidesIndexes.push(slideIndex);\n        });\n      } else {\n        appendSlidesIndexes.push(index);\n      }\n    }\n  }\n  swiper.__preventObserver__ = true;\n  requestAnimationFrame(() => {\n    swiper.__preventObserver__ = false;\n  });\n  if (swiper.params.effect === 'cards' && slides.length < slidesPerView + loopedSlides * 2) {\n    if (appendSlidesIndexes.includes(activeSlideIndex)) {\n      appendSlidesIndexes.splice(appendSlidesIndexes.indexOf(activeSlideIndex), 1);\n    }\n    if (prependSlidesIndexes.includes(activeSlideIndex)) {\n      prependSlidesIndexes.splice(prependSlidesIndexes.indexOf(activeSlideIndex), 1);\n    }\n  }\n  if (isPrev) {\n    prependSlidesIndexes.forEach(index => {\n      slides[index].swiperLoopMoveDOM = true;\n      slidesEl.prepend(slides[index]);\n      slides[index].swiperLoopMoveDOM = false;\n    });\n  }\n  if (isNext) {\n    appendSlidesIndexes.forEach(index => {\n      slides[index].swiperLoopMoveDOM = true;\n      slidesEl.append(slides[index]);\n      slides[index].swiperLoopMoveDOM = false;\n    });\n  }\n  swiper.recalcSlides();\n  if (params.slidesPerView === 'auto') {\n    swiper.updateSlides();\n  } else if (gridEnabled && (prependSlidesIndexes.length > 0 && isPrev || appendSlidesIndexes.length > 0 && isNext)) {\n    swiper.slides.forEach((slide, slideIndex) => {\n      swiper.grid.updateSlide(slideIndex, slide, swiper.slides);\n    });\n  }\n  if (params.watchSlidesProgress) {\n    swiper.updateSlidesOffset();\n  }\n  if (slideTo) {\n    if (prependSlidesIndexes.length > 0 && isPrev) {\n      if (typeof slideRealIndex === 'undefined') {\n        const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n        const newSlideTranslate = swiper.slidesGrid[activeIndex + slidesPrepended];\n        const diff = newSlideTranslate - currentSlideTranslate;\n        if (byMousewheel) {\n          swiper.setTranslate(swiper.translate - diff);\n        } else {\n          swiper.slideTo(activeIndex + Math.ceil(slidesPrepended), 0, false, true);\n          if (setTranslate) {\n            swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n            swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n          }\n        }\n      } else {\n        if (setTranslate) {\n          const shift = gridEnabled ? prependSlidesIndexes.length / params.grid.rows : prependSlidesIndexes.length;\n          swiper.slideTo(swiper.activeIndex + shift, 0, false, true);\n          swiper.touchEventsData.currentTranslate = swiper.translate;\n        }\n      }\n    } else if (appendSlidesIndexes.length > 0 && isNext) {\n      if (typeof slideRealIndex === 'undefined') {\n        const currentSlideTranslate = swiper.slidesGrid[activeIndex];\n        const newSlideTranslate = swiper.slidesGrid[activeIndex - slidesAppended];\n        const diff = newSlideTranslate - currentSlideTranslate;\n        if (byMousewheel) {\n          swiper.setTranslate(swiper.translate - diff);\n        } else {\n          swiper.slideTo(activeIndex - slidesAppended, 0, false, true);\n          if (setTranslate) {\n            swiper.touchEventsData.startTranslate = swiper.touchEventsData.startTranslate - diff;\n            swiper.touchEventsData.currentTranslate = swiper.touchEventsData.currentTranslate - diff;\n          }\n        }\n      } else {\n        const shift = gridEnabled ? appendSlidesIndexes.length / params.grid.rows : appendSlidesIndexes.length;\n        swiper.slideTo(swiper.activeIndex - shift, 0, false, true);\n      }\n    }\n  }\n  swiper.allowSlidePrev = allowSlidePrev;\n  swiper.allowSlideNext = allowSlideNext;\n  if (swiper.controller && swiper.controller.control && !byController) {\n    const loopParams = {\n      slideRealIndex,\n      direction,\n      setTranslate,\n      activeSlideIndex,\n      byController: true\n    };\n    if (Array.isArray(swiper.controller.control)) {\n      swiper.controller.control.forEach(c => {\n        if (!c.destroyed && c.params.loop) c.loopFix({\n          ...loopParams,\n          slideTo: c.params.slidesPerView === params.slidesPerView ? slideTo : false\n        });\n      });\n    } else if (swiper.controller.control instanceof swiper.constructor && swiper.controller.control.params.loop) {\n      swiper.controller.control.loopFix({\n        ...loopParams,\n        slideTo: swiper.controller.control.params.slidesPerView === params.slidesPerView ? slideTo : false\n      });\n    }\n  }\n  swiper.emit('loopFix');\n}\n\nfunction loopDestroy() {\n  const swiper = this;\n  const {\n    params,\n    slidesEl\n  } = swiper;\n  if (!params.loop || !slidesEl || swiper.virtual && swiper.params.virtual.enabled) return;\n  swiper.recalcSlides();\n  const newSlidesOrder = [];\n  swiper.slides.forEach(slideEl => {\n    const index = typeof slideEl.swiperSlideIndex === 'undefined' ? slideEl.getAttribute('data-swiper-slide-index') * 1 : slideEl.swiperSlideIndex;\n    newSlidesOrder[index] = slideEl;\n  });\n  swiper.slides.forEach(slideEl => {\n    slideEl.removeAttribute('data-swiper-slide-index');\n  });\n  newSlidesOrder.forEach(slideEl => {\n    slidesEl.append(slideEl);\n  });\n  swiper.recalcSlides();\n  swiper.slideTo(swiper.realIndex, 0);\n}\n\nvar loop = {\n  loopCreate,\n  loopFix,\n  loopDestroy\n};\n\nfunction setGrabCursor(moving) {\n  const swiper = this;\n  if (!swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n  const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n  if (swiper.isElement) {\n    swiper.__preventObserver__ = true;\n  }\n  el.style.cursor = 'move';\n  el.style.cursor = moving ? 'grabbing' : 'grab';\n  if (swiper.isElement) {\n    requestAnimationFrame(() => {\n      swiper.__preventObserver__ = false;\n    });\n  }\n}\n\nfunction unsetGrabCursor() {\n  const swiper = this;\n  if (swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n    return;\n  }\n  if (swiper.isElement) {\n    swiper.__preventObserver__ = true;\n  }\n  swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n  if (swiper.isElement) {\n    requestAnimationFrame(() => {\n      swiper.__preventObserver__ = false;\n    });\n  }\n}\n\nvar grabCursor = {\n  setGrabCursor,\n  unsetGrabCursor\n};\n\n// Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\nfunction closestElement(selector, base = this) {\n  function __closestFrom(el) {\n    if (!el || el === getDocument() || el === getWindow()) return null;\n    if (el.assignedSlot) el = el.assignedSlot;\n    const found = el.closest(selector);\n    if (!found && !el.getRootNode) {\n      return null;\n    }\n    return found || __closestFrom(el.getRootNode().host);\n  }\n  return __closestFrom(base);\n}\nfunction preventEdgeSwipe(swiper, event, startX) {\n  const window = getWindow();\n  const {\n    params\n  } = swiper;\n  const edgeSwipeDetection = params.edgeSwipeDetection;\n  const edgeSwipeThreshold = params.edgeSwipeThreshold;\n  if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n    if (edgeSwipeDetection === 'prevent') {\n      event.preventDefault();\n      return true;\n    }\n    return false;\n  }\n  return true;\n}\nfunction onTouchStart(event) {\n  const swiper = this;\n  if (swiper.destroyed) return;\n  const document = getDocument();\n  let e = event;\n  if (e.originalEvent) e = e.originalEvent;\n  const data = swiper.touchEventsData;\n  if (e.type === 'pointerdown') {\n    if (data.pointerId !== null && data.pointerId !== e.pointerId) {\n      return;\n    }\n    data.pointerId = e.pointerId;\n  } else if (e.type === 'touchstart' && e.targetTouches.length === 1) {\n    data.touchId = e.targetTouches[0].identifier;\n  }\n  if (e.type === 'touchstart') {\n    // don't proceed touch event\n    preventEdgeSwipe(swiper, e, e.targetTouches[0].pageX);\n    return;\n  }\n  const {\n    params,\n    touches,\n    enabled\n  } = swiper;\n  if (!enabled) return;\n  if (!params.simulateTouch && e.pointerType === 'mouse') return;\n  if (swiper.animating && params.preventInteractionOnTransition) {\n    return;\n  }\n  if (!swiper.animating && params.cssMode && params.loop) {\n    swiper.loopFix();\n  }\n  let targetEl = e.target;\n  if (params.touchEventsTarget === 'wrapper') {\n    if (!elementIsChildOf(targetEl, swiper.wrapperEl)) return;\n  }\n  if ('which' in e && e.which === 3) return;\n  if ('button' in e && e.button > 0) return;\n  if (data.isTouched && data.isMoved) return;\n\n  // change target el for shadow root component\n  const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n  // eslint-disable-next-line\n  const eventPath = e.composedPath ? e.composedPath() : e.path;\n  if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n    targetEl = eventPath[0];\n  }\n  const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n  const isTargetShadow = !!(e.target && e.target.shadowRoot);\n\n  // use closestElement for shadow root element to get the actual closest for nested shadow root element\n  if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, targetEl) : targetEl.closest(noSwipingSelector))) {\n    swiper.allowClick = true;\n    return;\n  }\n  if (params.swipeHandler) {\n    if (!targetEl.closest(params.swipeHandler)) return;\n  }\n  touches.currentX = e.pageX;\n  touches.currentY = e.pageY;\n  const startX = touches.currentX;\n  const startY = touches.currentY;\n\n  // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n  if (!preventEdgeSwipe(swiper, e, startX)) {\n    return;\n  }\n  Object.assign(data, {\n    isTouched: true,\n    isMoved: false,\n    allowTouchCallbacks: true,\n    isScrolling: undefined,\n    startMoving: undefined\n  });\n  touches.startX = startX;\n  touches.startY = startY;\n  data.touchStartTime = now();\n  swiper.allowClick = true;\n  swiper.updateSize();\n  swiper.swipeDirection = undefined;\n  if (params.threshold > 0) data.allowThresholdMove = false;\n  let preventDefault = true;\n  if (targetEl.matches(data.focusableElements)) {\n    preventDefault = false;\n    if (targetEl.nodeName === 'SELECT') {\n      data.isTouched = false;\n    }\n  }\n  if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== targetEl && (e.pointerType === 'mouse' || e.pointerType !== 'mouse' && !targetEl.matches(data.focusableElements))) {\n    document.activeElement.blur();\n  }\n  const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n  if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !targetEl.isContentEditable) {\n    e.preventDefault();\n  }\n  if (params.freeMode && params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n    swiper.freeMode.onTouchStart();\n  }\n  swiper.emit('touchStart', e);\n}\n\nfunction onTouchMove(event) {\n  const document = getDocument();\n  const swiper = this;\n  if (swiper.destroyed) return;\n  const data = swiper.touchEventsData;\n  const {\n    params,\n    touches,\n    rtlTranslate: rtl,\n    enabled\n  } = swiper;\n  if (!enabled) return;\n  if (!params.simulateTouch && event.pointerType === 'mouse') return;\n  let e = event;\n  if (e.originalEvent) e = e.originalEvent;\n  if (e.type === 'pointermove') {\n    if (data.touchId !== null) return; // return from pointer if we use touch\n    const id = e.pointerId;\n    if (id !== data.pointerId) return;\n  }\n  let targetTouch;\n  if (e.type === 'touchmove') {\n    targetTouch = [...e.changedTouches].find(t => t.identifier === data.touchId);\n    if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n  } else {\n    targetTouch = e;\n  }\n  if (!data.isTouched) {\n    if (data.startMoving && data.isScrolling) {\n      swiper.emit('touchMoveOpposite', e);\n    }\n    return;\n  }\n  const pageX = targetTouch.pageX;\n  const pageY = targetTouch.pageY;\n  if (e.preventedByNestedSwiper) {\n    touches.startX = pageX;\n    touches.startY = pageY;\n    return;\n  }\n  if (!swiper.allowTouchMove) {\n    if (!e.target.matches(data.focusableElements)) {\n      swiper.allowClick = false;\n    }\n    if (data.isTouched) {\n      Object.assign(touches, {\n        startX: pageX,\n        startY: pageY,\n        currentX: pageX,\n        currentY: pageY\n      });\n      data.touchStartTime = now();\n    }\n    return;\n  }\n  if (params.touchReleaseOnEdges && !params.loop) {\n    if (swiper.isVertical()) {\n      // Vertical\n      if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n        data.isTouched = false;\n        data.isMoved = false;\n        return;\n      }\n    } else if (rtl && (pageX > touches.startX && -swiper.translate <= swiper.maxTranslate() || pageX < touches.startX && -swiper.translate >= swiper.minTranslate())) {\n      return;\n    } else if (!rtl && (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate())) {\n      return;\n    }\n  }\n  if (document.activeElement && document.activeElement.matches(data.focusableElements) && document.activeElement !== e.target && e.pointerType !== 'mouse') {\n    document.activeElement.blur();\n  }\n  if (document.activeElement) {\n    if (e.target === document.activeElement && e.target.matches(data.focusableElements)) {\n      data.isMoved = true;\n      swiper.allowClick = false;\n      return;\n    }\n  }\n  if (data.allowTouchCallbacks) {\n    swiper.emit('touchMove', e);\n  }\n  touches.previousX = touches.currentX;\n  touches.previousY = touches.currentY;\n  touches.currentX = pageX;\n  touches.currentY = pageY;\n  const diffX = touches.currentX - touches.startX;\n  const diffY = touches.currentY - touches.startY;\n  if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n  if (typeof data.isScrolling === 'undefined') {\n    let touchAngle;\n    if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n      data.isScrolling = false;\n    } else {\n      // eslint-disable-next-line\n      if (diffX * diffX + diffY * diffY >= 25) {\n        touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n        data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n      }\n    }\n  }\n  if (data.isScrolling) {\n    swiper.emit('touchMoveOpposite', e);\n  }\n  if (typeof data.startMoving === 'undefined') {\n    if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n      data.startMoving = true;\n    }\n  }\n  if (data.isScrolling || e.type === 'touchmove' && data.preventTouchMoveFromPointerMove) {\n    data.isTouched = false;\n    return;\n  }\n  if (!data.startMoving) {\n    return;\n  }\n  swiper.allowClick = false;\n  if (!params.cssMode && e.cancelable) {\n    e.preventDefault();\n  }\n  if (params.touchMoveStopPropagation && !params.nested) {\n    e.stopPropagation();\n  }\n  let diff = swiper.isHorizontal() ? diffX : diffY;\n  let touchesDiff = swiper.isHorizontal() ? touches.currentX - touches.previousX : touches.currentY - touches.previousY;\n  if (params.oneWayMovement) {\n    diff = Math.abs(diff) * (rtl ? 1 : -1);\n    touchesDiff = Math.abs(touchesDiff) * (rtl ? 1 : -1);\n  }\n  touches.diff = diff;\n  diff *= params.touchRatio;\n  if (rtl) {\n    diff = -diff;\n    touchesDiff = -touchesDiff;\n  }\n  const prevTouchesDirection = swiper.touchesDirection;\n  swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n  swiper.touchesDirection = touchesDiff > 0 ? 'prev' : 'next';\n  const isLoop = swiper.params.loop && !params.cssMode;\n  const allowLoopFix = swiper.touchesDirection === 'next' && swiper.allowSlideNext || swiper.touchesDirection === 'prev' && swiper.allowSlidePrev;\n  if (!data.isMoved) {\n    if (isLoop && allowLoopFix) {\n      swiper.loopFix({\n        direction: swiper.swipeDirection\n      });\n    }\n    data.startTranslate = swiper.getTranslate();\n    swiper.setTransition(0);\n    if (swiper.animating) {\n      const evt = new window.CustomEvent('transitionend', {\n        bubbles: true,\n        cancelable: true,\n        detail: {\n          bySwiperTouchMove: true\n        }\n      });\n      swiper.wrapperEl.dispatchEvent(evt);\n    }\n    data.allowMomentumBounce = false;\n    // Grab Cursor\n    if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n      swiper.setGrabCursor(true);\n    }\n    swiper.emit('sliderFirstMove', e);\n  }\n  let loopFixed;\n  new Date().getTime();\n  if (params._loopSwapReset !== false && data.isMoved && data.allowThresholdMove && prevTouchesDirection !== swiper.touchesDirection && isLoop && allowLoopFix && Math.abs(diff) >= 1) {\n    Object.assign(touches, {\n      startX: pageX,\n      startY: pageY,\n      currentX: pageX,\n      currentY: pageY,\n      startTranslate: data.currentTranslate\n    });\n    data.loopSwapReset = true;\n    data.startTranslate = data.currentTranslate;\n    return;\n  }\n  swiper.emit('sliderMove', e);\n  data.isMoved = true;\n  data.currentTranslate = diff + data.startTranslate;\n  let disableParentSwiper = true;\n  let resistanceRatio = params.resistanceRatio;\n  if (params.touchReleaseOnEdges) {\n    resistanceRatio = 0;\n  }\n  if (diff > 0) {\n    if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate > (params.centeredSlides ? swiper.minTranslate() - swiper.slidesSizesGrid[swiper.activeIndex + 1] - (params.slidesPerView !== 'auto' && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.activeIndex + 1] + swiper.params.spaceBetween : 0) - swiper.params.spaceBetween : swiper.minTranslate())) {\n      swiper.loopFix({\n        direction: 'prev',\n        setTranslate: true,\n        activeSlideIndex: 0\n      });\n    }\n    if (data.currentTranslate > swiper.minTranslate()) {\n      disableParentSwiper = false;\n      if (params.resistance) {\n        data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n      }\n    }\n  } else if (diff < 0) {\n    if (isLoop && allowLoopFix && !loopFixed && data.allowThresholdMove && data.currentTranslate < (params.centeredSlides ? swiper.maxTranslate() + swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] + swiper.params.spaceBetween + (params.slidesPerView !== 'auto' && swiper.slides.length - params.slidesPerView >= 2 ? swiper.slidesSizesGrid[swiper.slidesSizesGrid.length - 1] + swiper.params.spaceBetween : 0) : swiper.maxTranslate())) {\n      swiper.loopFix({\n        direction: 'next',\n        setTranslate: true,\n        activeSlideIndex: swiper.slides.length - (params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : Math.ceil(parseFloat(params.slidesPerView, 10)))\n      });\n    }\n    if (data.currentTranslate < swiper.maxTranslate()) {\n      disableParentSwiper = false;\n      if (params.resistance) {\n        data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n      }\n    }\n  }\n  if (disableParentSwiper) {\n    e.preventedByNestedSwiper = true;\n  }\n\n  // Directions locks\n  if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n    data.currentTranslate = data.startTranslate;\n  }\n  if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n    data.currentTranslate = data.startTranslate;\n  }\n  if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n    data.currentTranslate = data.startTranslate;\n  }\n\n  // Threshold\n  if (params.threshold > 0) {\n    if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n      if (!data.allowThresholdMove) {\n        data.allowThresholdMove = true;\n        touches.startX = touches.currentX;\n        touches.startY = touches.currentY;\n        data.currentTranslate = data.startTranslate;\n        touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n        return;\n      }\n    } else {\n      data.currentTranslate = data.startTranslate;\n      return;\n    }\n  }\n  if (!params.followFinger || params.cssMode) return;\n\n  // Update active index in free mode\n  if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n    swiper.updateActiveIndex();\n    swiper.updateSlidesClasses();\n  }\n  if (params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n    swiper.freeMode.onTouchMove();\n  }\n  // Update progress\n  swiper.updateProgress(data.currentTranslate);\n  // Update translate\n  swiper.setTranslate(data.currentTranslate);\n}\n\nfunction onTouchEnd(event) {\n  const swiper = this;\n  if (swiper.destroyed) return;\n  const data = swiper.touchEventsData;\n  let e = event;\n  if (e.originalEvent) e = e.originalEvent;\n  let targetTouch;\n  const isTouchEvent = e.type === 'touchend' || e.type === 'touchcancel';\n  if (!isTouchEvent) {\n    if (data.touchId !== null) return; // return from pointer if we use touch\n    if (e.pointerId !== data.pointerId) return;\n    targetTouch = e;\n  } else {\n    targetTouch = [...e.changedTouches].find(t => t.identifier === data.touchId);\n    if (!targetTouch || targetTouch.identifier !== data.touchId) return;\n  }\n  if (['pointercancel', 'pointerout', 'pointerleave', 'contextmenu'].includes(e.type)) {\n    const proceed = ['pointercancel', 'contextmenu'].includes(e.type) && (swiper.browser.isSafari || swiper.browser.isWebView);\n    if (!proceed) {\n      return;\n    }\n  }\n  data.pointerId = null;\n  data.touchId = null;\n  const {\n    params,\n    touches,\n    rtlTranslate: rtl,\n    slidesGrid,\n    enabled\n  } = swiper;\n  if (!enabled) return;\n  if (!params.simulateTouch && e.pointerType === 'mouse') return;\n  if (data.allowTouchCallbacks) {\n    swiper.emit('touchEnd', e);\n  }\n  data.allowTouchCallbacks = false;\n  if (!data.isTouched) {\n    if (data.isMoved && params.grabCursor) {\n      swiper.setGrabCursor(false);\n    }\n    data.isMoved = false;\n    data.startMoving = false;\n    return;\n  }\n\n  // Return Grab Cursor\n  if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n    swiper.setGrabCursor(false);\n  }\n\n  // Time diff\n  const touchEndTime = now();\n  const timeDiff = touchEndTime - data.touchStartTime;\n\n  // Tap, doubleTap, Click\n  if (swiper.allowClick) {\n    const pathTree = e.path || e.composedPath && e.composedPath();\n    swiper.updateClickedSlide(pathTree && pathTree[0] || e.target, pathTree);\n    swiper.emit('tap click', e);\n    if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n      swiper.emit('doubleTap doubleClick', e);\n    }\n  }\n  data.lastClickTime = now();\n  nextTick(() => {\n    if (!swiper.destroyed) swiper.allowClick = true;\n  });\n  if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 && !data.loopSwapReset || data.currentTranslate === data.startTranslate && !data.loopSwapReset) {\n    data.isTouched = false;\n    data.isMoved = false;\n    data.startMoving = false;\n    return;\n  }\n  data.isTouched = false;\n  data.isMoved = false;\n  data.startMoving = false;\n  let currentPos;\n  if (params.followFinger) {\n    currentPos = rtl ? swiper.translate : -swiper.translate;\n  } else {\n    currentPos = -data.currentTranslate;\n  }\n  if (params.cssMode) {\n    return;\n  }\n  if (params.freeMode && params.freeMode.enabled) {\n    swiper.freeMode.onTouchEnd({\n      currentPos\n    });\n    return;\n  }\n\n  // Find current slide\n  const swipeToLast = currentPos >= -swiper.maxTranslate() && !swiper.params.loop;\n  let stopIndex = 0;\n  let groupSize = swiper.slidesSizesGrid[0];\n  for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n    const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n    if (typeof slidesGrid[i + increment] !== 'undefined') {\n      if (swipeToLast || currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n        stopIndex = i;\n        groupSize = slidesGrid[i + increment] - slidesGrid[i];\n      }\n    } else if (swipeToLast || currentPos >= slidesGrid[i]) {\n      stopIndex = i;\n      groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n    }\n  }\n  let rewindFirstIndex = null;\n  let rewindLastIndex = null;\n  if (params.rewind) {\n    if (swiper.isBeginning) {\n      rewindLastIndex = params.virtual && params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n    } else if (swiper.isEnd) {\n      rewindFirstIndex = 0;\n    }\n  }\n  // Find current slide size\n  const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n  const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n  if (timeDiff > params.longSwipesMs) {\n    // Long touches\n    if (!params.longSwipes) {\n      swiper.slideTo(swiper.activeIndex);\n      return;\n    }\n    if (swiper.swipeDirection === 'next') {\n      if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n    }\n    if (swiper.swipeDirection === 'prev') {\n      if (ratio > 1 - params.longSwipesRatio) {\n        swiper.slideTo(stopIndex + increment);\n      } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n        swiper.slideTo(rewindLastIndex);\n      } else {\n        swiper.slideTo(stopIndex);\n      }\n    }\n  } else {\n    // Short swipes\n    if (!params.shortSwipes) {\n      swiper.slideTo(swiper.activeIndex);\n      return;\n    }\n    const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n    if (!isNavButtonTarget) {\n      if (swiper.swipeDirection === 'next') {\n        swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n      }\n      if (swiper.swipeDirection === 'prev') {\n        swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n      }\n    } else if (e.target === swiper.navigation.nextEl) {\n      swiper.slideTo(stopIndex + increment);\n    } else {\n      swiper.slideTo(stopIndex);\n    }\n  }\n}\n\nfunction onResize() {\n  const swiper = this;\n  const {\n    params,\n    el\n  } = swiper;\n  if (el && el.offsetWidth === 0) return;\n\n  // Breakpoints\n  if (params.breakpoints) {\n    swiper.setBreakpoint();\n  }\n\n  // Save locks\n  const {\n    allowSlideNext,\n    allowSlidePrev,\n    snapGrid\n  } = swiper;\n  const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n  // Disable locks on resize\n  swiper.allowSlideNext = true;\n  swiper.allowSlidePrev = true;\n  swiper.updateSize();\n  swiper.updateSlides();\n  swiper.updateSlidesClasses();\n  const isVirtualLoop = isVirtual && params.loop;\n  if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides && !isVirtualLoop) {\n    const slides = isVirtual ? swiper.virtual.slides : swiper.slides;\n    swiper.slideTo(slides.length - 1, 0, false, true);\n  } else {\n    if (swiper.params.loop && !isVirtual) {\n      swiper.slideToLoop(swiper.realIndex, 0, false, true);\n    } else {\n      swiper.slideTo(swiper.activeIndex, 0, false, true);\n    }\n  }\n  if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n    clearTimeout(swiper.autoplay.resizeTimeout);\n    swiper.autoplay.resizeTimeout = setTimeout(() => {\n      if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n        swiper.autoplay.resume();\n      }\n    }, 500);\n  }\n  // Return locks after resize\n  swiper.allowSlidePrev = allowSlidePrev;\n  swiper.allowSlideNext = allowSlideNext;\n  if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n    swiper.checkOverflow();\n  }\n}\n\nfunction onClick(e) {\n  const swiper = this;\n  if (swiper.destroyed) return;\n  if (!swiper.enabled) return;\n  if (!swiper.allowClick) {\n    if (swiper.params.preventClicks) e.preventDefault();\n    if (swiper.params.preventClicksPropagation && swiper.animating) {\n      e.stopPropagation();\n      e.stopImmediatePropagation();\n    }\n  }\n}\n\nfunction onScroll() {\n  const swiper = this;\n  if (swiper.destroyed) return;\n  const {\n    wrapperEl,\n    rtlTranslate,\n    enabled\n  } = swiper;\n  if (!enabled) return;\n  swiper.previousTranslate = swiper.translate;\n  if (swiper.isHorizontal()) {\n    swiper.translate = -wrapperEl.scrollLeft;\n  } else {\n    swiper.translate = -wrapperEl.scrollTop;\n  }\n  // eslint-disable-next-line\n  if (swiper.translate === 0) swiper.translate = 0;\n  swiper.updateActiveIndex();\n  swiper.updateSlidesClasses();\n  let newProgress;\n  const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n  if (translatesDiff === 0) {\n    newProgress = 0;\n  } else {\n    newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n  }\n  if (newProgress !== swiper.progress) {\n    swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n  }\n  swiper.emit('setTranslate', swiper.translate, false);\n}\n\nfunction onLoad(e) {\n  const swiper = this;\n  if (swiper.destroyed) return;\n  processLazyPreloader(swiper, e.target);\n  if (swiper.params.cssMode || swiper.params.slidesPerView !== 'auto' && !swiper.params.autoHeight) {\n    return;\n  }\n  swiper.update();\n}\n\nfunction onDocumentTouchStart() {\n  const swiper = this;\n  if (swiper.destroyed) return;\n  if (swiper.documentTouchHandlerProceeded) return;\n  swiper.documentTouchHandlerProceeded = true;\n  if (swiper.params.touchReleaseOnEdges) {\n    swiper.el.style.touchAction = 'auto';\n  }\n}\n\nconst events = (swiper, method) => {\n  const document = getDocument();\n  const {\n    params,\n    el,\n    wrapperEl,\n    device\n  } = swiper;\n  const capture = !!params.nested;\n  const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n  const swiperMethod = method;\n  if (!el || typeof el === 'string') return;\n\n  // Touch Events\n  document[domMethod]('touchstart', swiper.onDocumentTouchStart, {\n    passive: false,\n    capture\n  });\n  el[domMethod]('touchstart', swiper.onTouchStart, {\n    passive: false\n  });\n  el[domMethod]('pointerdown', swiper.onTouchStart, {\n    passive: false\n  });\n  document[domMethod]('touchmove', swiper.onTouchMove, {\n    passive: false,\n    capture\n  });\n  document[domMethod]('pointermove', swiper.onTouchMove, {\n    passive: false,\n    capture\n  });\n  document[domMethod]('touchend', swiper.onTouchEnd, {\n    passive: true\n  });\n  document[domMethod]('pointerup', swiper.onTouchEnd, {\n    passive: true\n  });\n  document[domMethod]('pointercancel', swiper.onTouchEnd, {\n    passive: true\n  });\n  document[domMethod]('touchcancel', swiper.onTouchEnd, {\n    passive: true\n  });\n  document[domMethod]('pointerout', swiper.onTouchEnd, {\n    passive: true\n  });\n  document[domMethod]('pointerleave', swiper.onTouchEnd, {\n    passive: true\n  });\n  document[domMethod]('contextmenu', swiper.onTouchEnd, {\n    passive: true\n  });\n\n  // Prevent Links Clicks\n  if (params.preventClicks || params.preventClicksPropagation) {\n    el[domMethod]('click', swiper.onClick, true);\n  }\n  if (params.cssMode) {\n    wrapperEl[domMethod]('scroll', swiper.onScroll);\n  }\n\n  // Resize handler\n  if (params.updateOnWindowResize) {\n    swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n  } else {\n    swiper[swiperMethod]('observerUpdate', onResize, true);\n  }\n\n  // Images loader\n  el[domMethod]('load', swiper.onLoad, {\n    capture: true\n  });\n};\nfunction attachEvents() {\n  const swiper = this;\n  const {\n    params\n  } = swiper;\n  swiper.onTouchStart = onTouchStart.bind(swiper);\n  swiper.onTouchMove = onTouchMove.bind(swiper);\n  swiper.onTouchEnd = onTouchEnd.bind(swiper);\n  swiper.onDocumentTouchStart = onDocumentTouchStart.bind(swiper);\n  if (params.cssMode) {\n    swiper.onScroll = onScroll.bind(swiper);\n  }\n  swiper.onClick = onClick.bind(swiper);\n  swiper.onLoad = onLoad.bind(swiper);\n  events(swiper, 'on');\n}\nfunction detachEvents() {\n  const swiper = this;\n  events(swiper, 'off');\n}\nvar events$1 = {\n  attachEvents,\n  detachEvents\n};\n\nconst isGridEnabled = (swiper, params) => {\n  return swiper.grid && params.grid && params.grid.rows > 1;\n};\nfunction setBreakpoint() {\n  const swiper = this;\n  const {\n    realIndex,\n    initialized,\n    params,\n    el\n  } = swiper;\n  const breakpoints = params.breakpoints;\n  if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return;\n  const document = getDocument();\n\n  // Get breakpoint for window/container width and update parameters\n  const breakpointsBase = params.breakpointsBase === 'window' || !params.breakpointsBase ? params.breakpointsBase : 'container';\n  const breakpointContainer = ['window', 'container'].includes(params.breakpointsBase) || !params.breakpointsBase ? swiper.el : document.querySelector(params.breakpointsBase);\n  const breakpoint = swiper.getBreakpoint(breakpoints, breakpointsBase, breakpointContainer);\n  if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n  const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n  const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n  const wasMultiRow = isGridEnabled(swiper, params);\n  const isMultiRow = isGridEnabled(swiper, breakpointParams);\n  const wasGrabCursor = swiper.params.grabCursor;\n  const isGrabCursor = breakpointParams.grabCursor;\n  const wasEnabled = params.enabled;\n  if (wasMultiRow && !isMultiRow) {\n    el.classList.remove(`${params.containerModifierClass}grid`, `${params.containerModifierClass}grid-column`);\n    swiper.emitContainerClasses();\n  } else if (!wasMultiRow && isMultiRow) {\n    el.classList.add(`${params.containerModifierClass}grid`);\n    if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n      el.classList.add(`${params.containerModifierClass}grid-column`);\n    }\n    swiper.emitContainerClasses();\n  }\n  if (wasGrabCursor && !isGrabCursor) {\n    swiper.unsetGrabCursor();\n  } else if (!wasGrabCursor && isGrabCursor) {\n    swiper.setGrabCursor();\n  }\n\n  // Toggle navigation, pagination, scrollbar\n  ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n    if (typeof breakpointParams[prop] === 'undefined') return;\n    const wasModuleEnabled = params[prop] && params[prop].enabled;\n    const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n    if (wasModuleEnabled && !isModuleEnabled) {\n      swiper[prop].disable();\n    }\n    if (!wasModuleEnabled && isModuleEnabled) {\n      swiper[prop].enable();\n    }\n  });\n  const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n  const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n  const wasLoop = params.loop;\n  if (directionChanged && initialized) {\n    swiper.changeDirection();\n  }\n  extend(swiper.params, breakpointParams);\n  const isEnabled = swiper.params.enabled;\n  const hasLoop = swiper.params.loop;\n  Object.assign(swiper, {\n    allowTouchMove: swiper.params.allowTouchMove,\n    allowSlideNext: swiper.params.allowSlideNext,\n    allowSlidePrev: swiper.params.allowSlidePrev\n  });\n  if (wasEnabled && !isEnabled) {\n    swiper.disable();\n  } else if (!wasEnabled && isEnabled) {\n    swiper.enable();\n  }\n  swiper.currentBreakpoint = breakpoint;\n  swiper.emit('_beforeBreakpoint', breakpointParams);\n  if (initialized) {\n    if (needsReLoop) {\n      swiper.loopDestroy();\n      swiper.loopCreate(realIndex);\n      swiper.updateSlides();\n    } else if (!wasLoop && hasLoop) {\n      swiper.loopCreate(realIndex);\n      swiper.updateSlides();\n    } else if (wasLoop && !hasLoop) {\n      swiper.loopDestroy();\n    }\n  }\n  swiper.emit('breakpoint', breakpointParams);\n}\n\nfunction getBreakpoint(breakpoints, base = 'window', containerEl) {\n  if (!breakpoints || base === 'container' && !containerEl) return undefined;\n  let breakpoint = false;\n  const window = getWindow();\n  const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n  const points = Object.keys(breakpoints).map(point => {\n    if (typeof point === 'string' && point.indexOf('@') === 0) {\n      const minRatio = parseFloat(point.substr(1));\n      const value = currentHeight * minRatio;\n      return {\n        value,\n        point\n      };\n    }\n    return {\n      value: point,\n      point\n    };\n  });\n  points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n  for (let i = 0; i < points.length; i += 1) {\n    const {\n      point,\n      value\n    } = points[i];\n    if (base === 'window') {\n      if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n        breakpoint = point;\n      }\n    } else if (value <= containerEl.clientWidth) {\n      breakpoint = point;\n    }\n  }\n  return breakpoint || 'max';\n}\n\nvar breakpoints = {\n  setBreakpoint,\n  getBreakpoint\n};\n\nfunction prepareClasses(entries, prefix) {\n  const resultClasses = [];\n  entries.forEach(item => {\n    if (typeof item === 'object') {\n      Object.keys(item).forEach(classNames => {\n        if (item[classNames]) {\n          resultClasses.push(prefix + classNames);\n        }\n      });\n    } else if (typeof item === 'string') {\n      resultClasses.push(prefix + item);\n    }\n  });\n  return resultClasses;\n}\nfunction addClasses() {\n  const swiper = this;\n  const {\n    classNames,\n    params,\n    rtl,\n    el,\n    device\n  } = swiper;\n  // prettier-ignore\n  const suffixes = prepareClasses(['initialized', params.direction, {\n    'free-mode': swiper.params.freeMode && params.freeMode.enabled\n  }, {\n    'autoheight': params.autoHeight\n  }, {\n    'rtl': rtl\n  }, {\n    'grid': params.grid && params.grid.rows > 1\n  }, {\n    'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n  }, {\n    'android': device.android\n  }, {\n    'ios': device.ios\n  }, {\n    'css-mode': params.cssMode\n  }, {\n    'centered': params.cssMode && params.centeredSlides\n  }, {\n    'watch-progress': params.watchSlidesProgress\n  }], params.containerModifierClass);\n  classNames.push(...suffixes);\n  el.classList.add(...classNames);\n  swiper.emitContainerClasses();\n}\n\nfunction removeClasses() {\n  const swiper = this;\n  const {\n    el,\n    classNames\n  } = swiper;\n  if (!el || typeof el === 'string') return;\n  el.classList.remove(...classNames);\n  swiper.emitContainerClasses();\n}\n\nvar classes = {\n  addClasses,\n  removeClasses\n};\n\nfunction checkOverflow() {\n  const swiper = this;\n  const {\n    isLocked: wasLocked,\n    params\n  } = swiper;\n  const {\n    slidesOffsetBefore\n  } = params;\n  if (slidesOffsetBefore) {\n    const lastSlideIndex = swiper.slides.length - 1;\n    const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n    swiper.isLocked = swiper.size > lastSlideRightEdge;\n  } else {\n    swiper.isLocked = swiper.snapGrid.length === 1;\n  }\n  if (params.allowSlideNext === true) {\n    swiper.allowSlideNext = !swiper.isLocked;\n  }\n  if (params.allowSlidePrev === true) {\n    swiper.allowSlidePrev = !swiper.isLocked;\n  }\n  if (wasLocked && wasLocked !== swiper.isLocked) {\n    swiper.isEnd = false;\n  }\n  if (wasLocked !== swiper.isLocked) {\n    swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n  }\n}\nvar checkOverflow$1 = {\n  checkOverflow\n};\n\nvar defaults = {\n  init: true,\n  direction: 'horizontal',\n  oneWayMovement: false,\n  swiperElementNodeName: 'SWIPER-CONTAINER',\n  touchEventsTarget: 'wrapper',\n  initialSlide: 0,\n  speed: 300,\n  cssMode: false,\n  updateOnWindowResize: true,\n  resizeObserver: true,\n  nested: false,\n  createElements: false,\n  eventsPrefix: 'swiper',\n  enabled: true,\n  focusableElements: 'input, select, option, textarea, button, video, label',\n  // Overrides\n  width: null,\n  height: null,\n  //\n  preventInteractionOnTransition: false,\n  // ssr\n  userAgent: null,\n  url: null,\n  // To support iOS's swipe-to-go-back gesture (when being used in-app).\n  edgeSwipeDetection: false,\n  edgeSwipeThreshold: 20,\n  // Autoheight\n  autoHeight: false,\n  // Set wrapper width\n  setWrapperSize: false,\n  // Virtual Translate\n  virtualTranslate: false,\n  // Effects\n  effect: 'slide',\n  // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n\n  // Breakpoints\n  breakpoints: undefined,\n  breakpointsBase: 'window',\n  // Slides grid\n  spaceBetween: 0,\n  slidesPerView: 1,\n  slidesPerGroup: 1,\n  slidesPerGroupSkip: 0,\n  slidesPerGroupAuto: false,\n  centeredSlides: false,\n  centeredSlidesBounds: false,\n  slidesOffsetBefore: 0,\n  // in px\n  slidesOffsetAfter: 0,\n  // in px\n  normalizeSlideIndex: true,\n  centerInsufficientSlides: false,\n  snapToSlideEdge: false,\n  // Disable swiper and hide navigation when container not overflow\n  watchOverflow: true,\n  // Round length\n  roundLengths: false,\n  // Touches\n  touchRatio: 1,\n  touchAngle: 45,\n  simulateTouch: true,\n  shortSwipes: true,\n  longSwipes: true,\n  longSwipesRatio: 0.5,\n  longSwipesMs: 300,\n  followFinger: true,\n  allowTouchMove: true,\n  threshold: 5,\n  touchMoveStopPropagation: false,\n  touchStartPreventDefault: true,\n  touchStartForcePreventDefault: false,\n  touchReleaseOnEdges: false,\n  // Unique Navigation Elements\n  uniqueNavElements: true,\n  // Resistance\n  resistance: true,\n  resistanceRatio: 0.85,\n  // Progress\n  watchSlidesProgress: false,\n  // Cursor\n  grabCursor: false,\n  // Clicks\n  preventClicks: true,\n  preventClicksPropagation: true,\n  slideToClickedSlide: false,\n  // loop\n  loop: false,\n  loopAddBlankSlides: true,\n  loopAdditionalSlides: 0,\n  loopPreventsSliding: true,\n  // rewind\n  rewind: false,\n  // Swiping/no swiping\n  allowSlidePrev: true,\n  allowSlideNext: true,\n  swipeHandler: null,\n  // '.swipe-handler',\n  noSwiping: true,\n  noSwipingClass: 'swiper-no-swiping',\n  noSwipingSelector: null,\n  // Passive Listeners\n  passiveListeners: true,\n  maxBackfaceHiddenSlides: 10,\n  // NS\n  containerModifierClass: 'swiper-',\n  // NEW\n  slideClass: 'swiper-slide',\n  slideBlankClass: 'swiper-slide-blank',\n  slideActiveClass: 'swiper-slide-active',\n  slideVisibleClass: 'swiper-slide-visible',\n  slideFullyVisibleClass: 'swiper-slide-fully-visible',\n  slideNextClass: 'swiper-slide-next',\n  slidePrevClass: 'swiper-slide-prev',\n  wrapperClass: 'swiper-wrapper',\n  lazyPreloaderClass: 'swiper-lazy-preloader',\n  lazyPreloadPrevNext: 0,\n  // Callbacks\n  runCallbacksOnInit: true,\n  // Internals\n  _emitClasses: false\n};\n\nfunction moduleExtendParams(params, allModulesParams) {\n  return function extendParams(obj = {}) {\n    const moduleParamName = Object.keys(obj)[0];\n    const moduleParams = obj[moduleParamName];\n    if (typeof moduleParams !== 'object' || moduleParams === null) {\n      extend(allModulesParams, obj);\n      return;\n    }\n    if (params[moduleParamName] === true) {\n      params[moduleParamName] = {\n        enabled: true\n      };\n    }\n    if (moduleParamName === 'navigation' && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].prevEl && !params[moduleParamName].nextEl) {\n      params[moduleParamName].auto = true;\n    }\n    if (['pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] && params[moduleParamName].enabled && !params[moduleParamName].el) {\n      params[moduleParamName].auto = true;\n    }\n    if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n      extend(allModulesParams, obj);\n      return;\n    }\n    if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n      params[moduleParamName].enabled = true;\n    }\n    if (!params[moduleParamName]) params[moduleParamName] = {\n      enabled: false\n    };\n    extend(allModulesParams, obj);\n  };\n}\n\n/* eslint no-param-reassign: \"off\" */\nconst prototypes = {\n  eventsEmitter,\n  update,\n  translate,\n  transition,\n  slide,\n  loop,\n  grabCursor,\n  events: events$1,\n  breakpoints,\n  checkOverflow: checkOverflow$1,\n  classes\n};\nconst extendedDefaults = {};\nclass Swiper {\n  constructor(...args) {\n    let el;\n    let params;\n    if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n      params = args[0];\n    } else {\n      [el, params] = args;\n    }\n    if (!params) params = {};\n    params = extend({}, params);\n    if (el && !params.el) params.el = el;\n    const document = getDocument();\n    if (params.el && typeof params.el === 'string' && document.querySelectorAll(params.el).length > 1) {\n      const swipers = [];\n      document.querySelectorAll(params.el).forEach(containerEl => {\n        const newParams = extend({}, params, {\n          el: containerEl\n        });\n        swipers.push(new Swiper(newParams));\n      });\n      // eslint-disable-next-line no-constructor-return\n      return swipers;\n    }\n\n    // Swiper Instance\n    const swiper = this;\n    swiper.__swiper__ = true;\n    swiper.support = getSupport();\n    swiper.device = getDevice({\n      userAgent: params.userAgent\n    });\n    swiper.browser = getBrowser();\n    swiper.eventsListeners = {};\n    swiper.eventsAnyListeners = [];\n    swiper.modules = [...swiper.__modules__];\n    if (params.modules && Array.isArray(params.modules)) {\n      params.modules.forEach(mod => {\n        if (typeof mod === 'function' && swiper.modules.indexOf(mod) < 0) {\n          swiper.modules.push(mod);\n        }\n      });\n    }\n    const allModulesParams = {};\n    swiper.modules.forEach(mod => {\n      mod({\n        params,\n        swiper,\n        extendParams: moduleExtendParams(params, allModulesParams),\n        on: swiper.on.bind(swiper),\n        once: swiper.once.bind(swiper),\n        off: swiper.off.bind(swiper),\n        emit: swiper.emit.bind(swiper)\n      });\n    });\n\n    // Extend defaults with modules params\n    const swiperParams = extend({}, defaults, allModulesParams);\n\n    // Extend defaults with passed params\n    swiper.params = extend({}, swiperParams, extendedDefaults, params);\n    swiper.originalParams = extend({}, swiper.params);\n    swiper.passedParams = extend({}, params);\n\n    // add event listeners\n    if (swiper.params && swiper.params.on) {\n      Object.keys(swiper.params.on).forEach(eventName => {\n        swiper.on(eventName, swiper.params.on[eventName]);\n      });\n    }\n    if (swiper.params && swiper.params.onAny) {\n      swiper.onAny(swiper.params.onAny);\n    }\n\n    // Extend Swiper\n    Object.assign(swiper, {\n      enabled: swiper.params.enabled,\n      el,\n      // Classes\n      classNames: [],\n      // Slides\n      slides: [],\n      slidesGrid: [],\n      snapGrid: [],\n      slidesSizesGrid: [],\n      // isDirection\n      isHorizontal() {\n        return swiper.params.direction === 'horizontal';\n      },\n      isVertical() {\n        return swiper.params.direction === 'vertical';\n      },\n      // Indexes\n      activeIndex: 0,\n      realIndex: 0,\n      //\n      isBeginning: true,\n      isEnd: false,\n      // Props\n      translate: 0,\n      previousTranslate: 0,\n      progress: 0,\n      velocity: 0,\n      animating: false,\n      cssOverflowAdjustment() {\n        // Returns 0 unless `translate` is > 2**23\n        // Should be subtracted from css values to prevent overflow\n        return Math.trunc(this.translate / 2 ** 23) * 2 ** 23;\n      },\n      // Locks\n      allowSlideNext: swiper.params.allowSlideNext,\n      allowSlidePrev: swiper.params.allowSlidePrev,\n      // Touch Events\n      touchEventsData: {\n        isTouched: undefined,\n        isMoved: undefined,\n        allowTouchCallbacks: undefined,\n        touchStartTime: undefined,\n        isScrolling: undefined,\n        currentTranslate: undefined,\n        startTranslate: undefined,\n        allowThresholdMove: undefined,\n        // Form elements to match\n        focusableElements: swiper.params.focusableElements,\n        // Last click time\n        lastClickTime: 0,\n        clickTimeout: undefined,\n        // Velocities\n        velocities: [],\n        allowMomentumBounce: undefined,\n        startMoving: undefined,\n        pointerId: null,\n        touchId: null\n      },\n      // Clicks\n      allowClick: true,\n      // Touches\n      allowTouchMove: swiper.params.allowTouchMove,\n      touches: {\n        startX: 0,\n        startY: 0,\n        currentX: 0,\n        currentY: 0,\n        diff: 0\n      },\n      // Images\n      imagesToLoad: [],\n      imagesLoaded: 0\n    });\n    swiper.emit('_swiper');\n\n    // Init\n    if (swiper.params.init) {\n      swiper.init();\n    }\n\n    // Return app instance\n    // eslint-disable-next-line no-constructor-return\n    return swiper;\n  }\n  getDirectionLabel(property) {\n    if (this.isHorizontal()) {\n      return property;\n    }\n    // prettier-ignore\n    return {\n      'width': 'height',\n      'margin-top': 'margin-left',\n      'margin-bottom ': 'margin-right',\n      'margin-left': 'margin-top',\n      'margin-right': 'margin-bottom',\n      'padding-left': 'padding-top',\n      'padding-right': 'padding-bottom',\n      'marginRight': 'marginBottom'\n    }[property];\n  }\n  getSlideIndex(slideEl) {\n    const {\n      slidesEl,\n      params\n    } = this;\n    const slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n    const firstSlideIndex = elementIndex(slides[0]);\n    return elementIndex(slideEl) - firstSlideIndex;\n  }\n  getSlideIndexByData(index) {\n    return this.getSlideIndex(this.slides.find(slideEl => slideEl.getAttribute('data-swiper-slide-index') * 1 === index));\n  }\n  getSlideIndexWhenGrid(index) {\n    if (this.grid && this.params.grid && this.params.grid.rows > 1) {\n      if (this.params.grid.fill === 'column') {\n        index = Math.floor(index / this.params.grid.rows);\n      } else if (this.params.grid.fill === 'row') {\n        index = index % Math.ceil(this.slides.length / this.params.grid.rows);\n      }\n    }\n    return index;\n  }\n  recalcSlides() {\n    const swiper = this;\n    const {\n      slidesEl,\n      params\n    } = swiper;\n    swiper.slides = elementChildren(slidesEl, `.${params.slideClass}, swiper-slide`);\n  }\n  enable() {\n    const swiper = this;\n    if (swiper.enabled) return;\n    swiper.enabled = true;\n    if (swiper.params.grabCursor) {\n      swiper.setGrabCursor();\n    }\n    swiper.emit('enable');\n  }\n  disable() {\n    const swiper = this;\n    if (!swiper.enabled) return;\n    swiper.enabled = false;\n    if (swiper.params.grabCursor) {\n      swiper.unsetGrabCursor();\n    }\n    swiper.emit('disable');\n  }\n  setProgress(progress, speed) {\n    const swiper = this;\n    progress = Math.min(Math.max(progress, 0), 1);\n    const min = swiper.minTranslate();\n    const max = swiper.maxTranslate();\n    const current = (max - min) * progress + min;\n    swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n    swiper.updateActiveIndex();\n    swiper.updateSlidesClasses();\n  }\n  emitContainerClasses() {\n    const swiper = this;\n    if (!swiper.params._emitClasses || !swiper.el) return;\n    const cls = swiper.el.className.split(' ').filter(className => {\n      return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n    });\n    swiper.emit('_containerClasses', cls.join(' '));\n  }\n  getSlideClasses(slideEl) {\n    const swiper = this;\n    if (swiper.destroyed) return '';\n    return slideEl.className.split(' ').filter(className => {\n      return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n    }).join(' ');\n  }\n  emitSlidesClasses() {\n    const swiper = this;\n    if (!swiper.params._emitClasses || !swiper.el) return;\n    const updates = [];\n    swiper.slides.forEach(slideEl => {\n      const classNames = swiper.getSlideClasses(slideEl);\n      updates.push({\n        slideEl,\n        classNames\n      });\n      swiper.emit('_slideClass', slideEl, classNames);\n    });\n    swiper.emit('_slideClasses', updates);\n  }\n  slidesPerViewDynamic(view = 'current', exact = false) {\n    const swiper = this;\n    const {\n      params,\n      slides,\n      slidesGrid,\n      slidesSizesGrid,\n      size: swiperSize,\n      activeIndex\n    } = swiper;\n    let spv = 1;\n    if (typeof params.slidesPerView === 'number') return params.slidesPerView;\n    if (params.centeredSlides) {\n      let slideSize = slides[activeIndex] ? Math.ceil(slides[activeIndex].swiperSlideSize) : 0;\n      let breakLoop;\n      for (let i = activeIndex + 1; i < slides.length; i += 1) {\n        if (slides[i] && !breakLoop) {\n          slideSize += Math.ceil(slides[i].swiperSlideSize);\n          spv += 1;\n          if (slideSize > swiperSize) breakLoop = true;\n        }\n      }\n      for (let i = activeIndex - 1; i >= 0; i -= 1) {\n        if (slides[i] && !breakLoop) {\n          slideSize += slides[i].swiperSlideSize;\n          spv += 1;\n          if (slideSize > swiperSize) breakLoop = true;\n        }\n      }\n    } else {\n      // eslint-disable-next-line\n      if (view === 'current') {\n        for (let i = activeIndex + 1; i < slides.length; i += 1) {\n          const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n          if (slideInView) {\n            spv += 1;\n          }\n        }\n      } else {\n        // previous\n        for (let i = activeIndex - 1; i >= 0; i -= 1) {\n          const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n          if (slideInView) {\n            spv += 1;\n          }\n        }\n      }\n    }\n    return spv;\n  }\n  update() {\n    const swiper = this;\n    if (!swiper || swiper.destroyed) return;\n    const {\n      snapGrid,\n      params\n    } = swiper;\n    // Breakpoints\n    if (params.breakpoints) {\n      swiper.setBreakpoint();\n    }\n    [...swiper.el.querySelectorAll('[loading=\"lazy\"]')].forEach(imageEl => {\n      if (imageEl.complete) {\n        processLazyPreloader(swiper, imageEl);\n      }\n    });\n    swiper.updateSize();\n    swiper.updateSlides();\n    swiper.updateProgress();\n    swiper.updateSlidesClasses();\n    function setTranslate() {\n      const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n      const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n      swiper.setTranslate(newTranslate);\n      swiper.updateActiveIndex();\n      swiper.updateSlidesClasses();\n    }\n    let translated;\n    if (params.freeMode && params.freeMode.enabled && !params.cssMode) {\n      setTranslate();\n      if (params.autoHeight) {\n        swiper.updateAutoHeight();\n      }\n    } else {\n      if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !params.centeredSlides) {\n        const slides = swiper.virtual && params.virtual.enabled ? swiper.virtual.slides : swiper.slides;\n        translated = swiper.slideTo(slides.length - 1, 0, false, true);\n      } else {\n        translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n      }\n      if (!translated) {\n        setTranslate();\n      }\n    }\n    if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n      swiper.checkOverflow();\n    }\n    swiper.emit('update');\n  }\n  changeDirection(newDirection, needUpdate = true) {\n    const swiper = this;\n    const currentDirection = swiper.params.direction;\n    if (!newDirection) {\n      // eslint-disable-next-line\n      newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n    }\n    if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n      return swiper;\n    }\n    swiper.el.classList.remove(`${swiper.params.containerModifierClass}${currentDirection}`);\n    swiper.el.classList.add(`${swiper.params.containerModifierClass}${newDirection}`);\n    swiper.emitContainerClasses();\n    swiper.params.direction = newDirection;\n    swiper.slides.forEach(slideEl => {\n      if (newDirection === 'vertical') {\n        slideEl.style.width = '';\n      } else {\n        slideEl.style.height = '';\n      }\n    });\n    swiper.emit('changeDirection');\n    if (needUpdate) swiper.update();\n    return swiper;\n  }\n  changeLanguageDirection(direction) {\n    const swiper = this;\n    if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n    swiper.rtl = direction === 'rtl';\n    swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n    if (swiper.rtl) {\n      swiper.el.classList.add(`${swiper.params.containerModifierClass}rtl`);\n      swiper.el.dir = 'rtl';\n    } else {\n      swiper.el.classList.remove(`${swiper.params.containerModifierClass}rtl`);\n      swiper.el.dir = 'ltr';\n    }\n    swiper.update();\n  }\n  mount(element) {\n    const swiper = this;\n    if (swiper.mounted) return true;\n\n    // Find el\n    let el = element || swiper.params.el;\n    if (typeof el === 'string') {\n      el = document.querySelector(el);\n    }\n    if (!el) {\n      return false;\n    }\n    el.swiper = swiper;\n    if (el.parentNode && el.parentNode.host && el.parentNode.host.nodeName === swiper.params.swiperElementNodeName.toUpperCase()) {\n      swiper.isElement = true;\n    }\n    const getWrapperSelector = () => {\n      return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n    };\n    const getWrapper = () => {\n      if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n        const res = el.shadowRoot.querySelector(getWrapperSelector());\n        // Children needs to return slot items\n        return res;\n      }\n      return elementChildren(el, getWrapperSelector())[0];\n    };\n    // Find Wrapper\n    let wrapperEl = getWrapper();\n    if (!wrapperEl && swiper.params.createElements) {\n      wrapperEl = createElement('div', swiper.params.wrapperClass);\n      el.append(wrapperEl);\n      elementChildren(el, `.${swiper.params.slideClass}`).forEach(slideEl => {\n        wrapperEl.append(slideEl);\n      });\n    }\n    Object.assign(swiper, {\n      el,\n      wrapperEl,\n      slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl,\n      hostEl: swiper.isElement ? el.parentNode.host : el,\n      mounted: true,\n      // RTL\n      rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl',\n      rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'),\n      wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box'\n    });\n    return true;\n  }\n  init(el) {\n    const swiper = this;\n    if (swiper.initialized) return swiper;\n    const mounted = swiper.mount(el);\n    if (mounted === false) return swiper;\n    swiper.emit('beforeInit');\n\n    // Set breakpoint\n    if (swiper.params.breakpoints) {\n      swiper.setBreakpoint();\n    }\n\n    // Add Classes\n    swiper.addClasses();\n\n    // Update size\n    swiper.updateSize();\n\n    // Update slides\n    swiper.updateSlides();\n    if (swiper.params.watchOverflow) {\n      swiper.checkOverflow();\n    }\n\n    // Set Grab Cursor\n    if (swiper.params.grabCursor && swiper.enabled) {\n      swiper.setGrabCursor();\n    }\n\n    // Slide To Initial Slide\n    if (swiper.params.loop && swiper.virtual && swiper.params.virtual.enabled) {\n      swiper.slideTo(swiper.params.initialSlide + swiper.virtual.slidesBefore, 0, swiper.params.runCallbacksOnInit, false, true);\n    } else {\n      swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n    }\n\n    // Create loop\n    if (swiper.params.loop) {\n      swiper.loopCreate(undefined, true);\n    }\n\n    // Attach events\n    swiper.attachEvents();\n    const lazyElements = [...swiper.el.querySelectorAll('[loading=\"lazy\"]')];\n    if (swiper.isElement) {\n      lazyElements.push(...swiper.hostEl.querySelectorAll('[loading=\"lazy\"]'));\n    }\n    lazyElements.forEach(imageEl => {\n      if (imageEl.complete) {\n        processLazyPreloader(swiper, imageEl);\n      } else {\n        imageEl.addEventListener('load', e => {\n          processLazyPreloader(swiper, e.target);\n        });\n      }\n    });\n    preload(swiper);\n\n    // Init Flag\n    swiper.initialized = true;\n    preload(swiper);\n\n    // Emit\n    swiper.emit('init');\n    swiper.emit('afterInit');\n    return swiper;\n  }\n  destroy(deleteInstance = true, cleanStyles = true) {\n    const swiper = this;\n    const {\n      params,\n      el,\n      wrapperEl,\n      slides\n    } = swiper;\n    if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n      return null;\n    }\n    swiper.emit('beforeDestroy');\n\n    // Init Flag\n    swiper.initialized = false;\n\n    // Detach events\n    swiper.detachEvents();\n\n    // Destroy loop\n    if (params.loop) {\n      swiper.loopDestroy();\n    }\n\n    // Cleanup styles\n    if (cleanStyles) {\n      swiper.removeClasses();\n      if (el && typeof el !== 'string') {\n        el.removeAttribute('style');\n      }\n      if (wrapperEl) {\n        wrapperEl.removeAttribute('style');\n      }\n      if (slides && slides.length) {\n        slides.forEach(slideEl => {\n          slideEl.classList.remove(params.slideVisibleClass, params.slideFullyVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass);\n          slideEl.removeAttribute('style');\n          slideEl.removeAttribute('data-swiper-slide-index');\n        });\n      }\n    }\n    swiper.emit('destroy');\n\n    // Detach emitter events\n    Object.keys(swiper.eventsListeners).forEach(eventName => {\n      swiper.off(eventName);\n    });\n    if (deleteInstance !== false) {\n      if (swiper.el && typeof swiper.el !== 'string') {\n        swiper.el.swiper = null;\n      }\n      deleteProps(swiper);\n    }\n    swiper.destroyed = true;\n    return null;\n  }\n  static extendDefaults(newDefaults) {\n    extend(extendedDefaults, newDefaults);\n  }\n  static get extendedDefaults() {\n    return extendedDefaults;\n  }\n  static get defaults() {\n    return defaults;\n  }\n  static installModule(mod) {\n    if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n    const modules = Swiper.prototype.__modules__;\n    if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n      modules.push(mod);\n    }\n  }\n  static use(module) {\n    if (Array.isArray(module)) {\n      module.forEach(m => Swiper.installModule(m));\n      return Swiper;\n    }\n    Swiper.installModule(module);\n    return Swiper;\n  }\n}\nObject.keys(prototypes).forEach(prototypeGroup => {\n  Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n    Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n  });\n});\nSwiper.use([Resize, Observer]);\n\nexport { Swiper as S, defaults as d };\n", "import { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { b as setCSSProperty, e as elementChildren, s as setInnerHTML, c as createElement } from '../shared/utils.mjs';\n\nfunction Virtual({\n  swiper,\n  extendParams,\n  on,\n  emit\n}) {\n  extendParams({\n    virtual: {\n      enabled: false,\n      slides: [],\n      cache: true,\n      slidesPerViewAutoSlideSize: 320,\n      renderSlide: null,\n      renderExternal: null,\n      renderExternalUpdate: true,\n      addSlidesBefore: 0,\n      addSlidesAfter: 0\n    }\n  });\n  let cssModeTimeout;\n  const document = getDocument();\n  swiper.virtual = {\n    cache: {},\n    from: undefined,\n    to: undefined,\n    slides: [],\n    offset: 0,\n    slidesGrid: []\n  };\n  const tempDOM = document.createElement('div');\n  function renderSlide(slide, index) {\n    const params = swiper.params.virtual;\n    if (params.cache && swiper.virtual.cache[index]) {\n      return swiper.virtual.cache[index];\n    }\n    // eslint-disable-next-line\n    let slideEl;\n    if (params.renderSlide) {\n      slideEl = params.renderSlide.call(swiper, slide, index);\n      if (typeof slideEl === 'string') {\n        setInnerHTML(tempDOM, slideEl);\n        slideEl = tempDOM.children[0];\n      }\n    } else if (swiper.isElement) {\n      slideEl = createElement('swiper-slide');\n    } else {\n      slideEl = createElement('div', swiper.params.slideClass);\n    }\n    slideEl.setAttribute('data-swiper-slide-index', index);\n    if (!params.renderSlide) {\n      setInnerHTML(slideEl, slide);\n    }\n    if (params.cache) {\n      swiper.virtual.cache[index] = slideEl;\n    }\n    return slideEl;\n  }\n  function update(force, beforeInit, forceActiveIndex) {\n    const {\n      slidesPerGroup,\n      centeredSlides,\n      slidesPerView,\n      loop: isLoop,\n      initialSlide\n    } = swiper.params;\n    if (beforeInit && !isLoop && initialSlide > 0) {\n      return;\n    }\n    const {\n      addSlidesBefore,\n      addSlidesAfter,\n      slidesPerViewAutoSlideSize\n    } = swiper.params.virtual;\n    const {\n      from: previousFrom,\n      to: previousTo,\n      slides,\n      slidesGrid: previousSlidesGrid,\n      offset: previousOffset\n    } = swiper.virtual;\n    if (!swiper.params.cssMode) {\n      swiper.updateActiveIndex();\n    }\n    const activeIndex = typeof forceActiveIndex === 'undefined' ? swiper.activeIndex || 0 : forceActiveIndex;\n    let offsetProp;\n    if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n    let slidesPerViewNumeric;\n    if (slidesPerView === 'auto') {\n      if (slidesPerViewAutoSlideSize) {\n        let swiperSize = swiper.size;\n        if (!swiperSize) {\n          swiperSize = swiper.isHorizontal() ? swiper.el.getBoundingClientRect().width : swiper.el.getBoundingClientRect().height;\n        }\n        slidesPerViewNumeric = Math.max(1, Math.ceil(swiperSize / slidesPerViewAutoSlideSize));\n      } else {\n        slidesPerViewNumeric = 1;\n      }\n    } else {\n      slidesPerViewNumeric = slidesPerView;\n    }\n    let slidesAfter;\n    let slidesBefore;\n    if (centeredSlides) {\n      slidesAfter = Math.floor(slidesPerViewNumeric / 2) + slidesPerGroup + addSlidesAfter;\n      slidesBefore = Math.floor(slidesPerViewNumeric / 2) + slidesPerGroup + addSlidesBefore;\n    } else {\n      slidesAfter = slidesPerViewNumeric + (slidesPerGroup - 1) + addSlidesAfter;\n      slidesBefore = (isLoop ? slidesPerViewNumeric : slidesPerGroup) + addSlidesBefore;\n    }\n    let from = activeIndex - slidesBefore;\n    let to = activeIndex + slidesAfter;\n    if (!isLoop) {\n      from = Math.max(from, 0);\n      to = Math.min(to, slides.length - 1);\n    }\n    let offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n    if (isLoop && activeIndex >= slidesBefore) {\n      from -= slidesBefore;\n      if (!centeredSlides) offset += swiper.slidesGrid[0];\n    } else if (isLoop && activeIndex < slidesBefore) {\n      from = -slidesBefore;\n      if (centeredSlides) offset += swiper.slidesGrid[0];\n    }\n    Object.assign(swiper.virtual, {\n      from,\n      to,\n      offset,\n      slidesGrid: swiper.slidesGrid,\n      slidesBefore,\n      slidesAfter\n    });\n    function onRendered() {\n      swiper.updateSlides();\n      swiper.updateProgress();\n      swiper.updateSlidesClasses();\n      emit('virtualUpdate');\n    }\n    if (previousFrom === from && previousTo === to && !force) {\n      if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n        swiper.slides.forEach(slideEl => {\n          slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;\n        });\n      }\n      swiper.updateProgress();\n      emit('virtualUpdate');\n      return;\n    }\n    if (swiper.params.virtual.renderExternal) {\n      swiper.params.virtual.renderExternal.call(swiper, {\n        offset,\n        from,\n        to,\n        slides: function getSlides() {\n          const slidesToRender = [];\n          for (let i = from; i <= to; i += 1) {\n            slidesToRender.push(slides[i]);\n          }\n          return slidesToRender;\n        }()\n      });\n      if (swiper.params.virtual.renderExternalUpdate) {\n        onRendered();\n      } else {\n        emit('virtualUpdate');\n      }\n      return;\n    }\n    const prependIndexes = [];\n    const appendIndexes = [];\n    const getSlideIndex = index => {\n      let slideIndex = index;\n      if (index < 0) {\n        slideIndex = slides.length + index;\n      } else if (slideIndex >= slides.length) {\n        // eslint-disable-next-line\n        slideIndex = slideIndex - slides.length;\n      }\n      return slideIndex;\n    };\n    if (force) {\n      swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`)).forEach(slideEl => {\n        slideEl.remove();\n      });\n    } else {\n      for (let i = previousFrom; i <= previousTo; i += 1) {\n        if (i < from || i > to) {\n          const slideIndex = getSlideIndex(i);\n          swiper.slides.filter(el => el.matches(`.${swiper.params.slideClass}[data-swiper-slide-index=\"${slideIndex}\"], swiper-slide[data-swiper-slide-index=\"${slideIndex}\"]`)).forEach(slideEl => {\n            slideEl.remove();\n          });\n        }\n      }\n    }\n    const loopFrom = isLoop ? -slides.length : 0;\n    const loopTo = isLoop ? slides.length * 2 : slides.length;\n    for (let i = loopFrom; i < loopTo; i += 1) {\n      if (i >= from && i <= to) {\n        const slideIndex = getSlideIndex(i);\n        if (typeof previousTo === 'undefined' || force) {\n          appendIndexes.push(slideIndex);\n        } else {\n          if (i > previousTo) appendIndexes.push(slideIndex);\n          if (i < previousFrom) prependIndexes.push(slideIndex);\n        }\n      }\n    }\n    appendIndexes.forEach(index => {\n      swiper.slidesEl.append(renderSlide(slides[index], index));\n    });\n    if (isLoop) {\n      for (let i = prependIndexes.length - 1; i >= 0; i -= 1) {\n        const index = prependIndexes[i];\n        swiper.slidesEl.prepend(renderSlide(slides[index], index));\n      }\n    } else {\n      prependIndexes.sort((a, b) => b - a);\n      prependIndexes.forEach(index => {\n        swiper.slidesEl.prepend(renderSlide(slides[index], index));\n      });\n    }\n    elementChildren(swiper.slidesEl, '.swiper-slide, swiper-slide').forEach(slideEl => {\n      slideEl.style[offsetProp] = `${offset - Math.abs(swiper.cssOverflowAdjustment())}px`;\n    });\n    onRendered();\n  }\n  function appendSlide(slides) {\n    if (typeof slides === 'object' && 'length' in slides) {\n      for (let i = 0; i < slides.length; i += 1) {\n        if (slides[i]) swiper.virtual.slides.push(slides[i]);\n      }\n    } else {\n      swiper.virtual.slides.push(slides);\n    }\n    update(true);\n  }\n  function prependSlide(slides) {\n    const activeIndex = swiper.activeIndex;\n    let newActiveIndex = activeIndex + 1;\n    let numberOfNewSlides = 1;\n    if (Array.isArray(slides)) {\n      for (let i = 0; i < slides.length; i += 1) {\n        if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n      }\n      newActiveIndex = activeIndex + slides.length;\n      numberOfNewSlides = slides.length;\n    } else {\n      swiper.virtual.slides.unshift(slides);\n    }\n    if (swiper.params.virtual.cache) {\n      const cache = swiper.virtual.cache;\n      const newCache = {};\n      Object.keys(cache).forEach(cachedIndex => {\n        const cachedEl = cache[cachedIndex];\n        const cachedElIndex = cachedEl.getAttribute('data-swiper-slide-index');\n        if (cachedElIndex) {\n          cachedEl.setAttribute('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides);\n        }\n        newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = cachedEl;\n      });\n      swiper.virtual.cache = newCache;\n    }\n    update(true);\n    swiper.slideTo(newActiveIndex, 0);\n  }\n  function removeSlide(slidesIndexes) {\n    if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n    let activeIndex = swiper.activeIndex;\n    if (Array.isArray(slidesIndexes)) {\n      for (let i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n        if (swiper.params.virtual.cache) {\n          delete swiper.virtual.cache[slidesIndexes[i]];\n          // shift cache indexes\n          Object.keys(swiper.virtual.cache).forEach(key => {\n            if (key > slidesIndexes) {\n              swiper.virtual.cache[key - 1] = swiper.virtual.cache[key];\n              swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1);\n              delete swiper.virtual.cache[key];\n            }\n          });\n        }\n        swiper.virtual.slides.splice(slidesIndexes[i], 1);\n        if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n        activeIndex = Math.max(activeIndex, 0);\n      }\n    } else {\n      if (swiper.params.virtual.cache) {\n        delete swiper.virtual.cache[slidesIndexes];\n        // shift cache indexes\n        Object.keys(swiper.virtual.cache).forEach(key => {\n          if (key > slidesIndexes) {\n            swiper.virtual.cache[key - 1] = swiper.virtual.cache[key];\n            swiper.virtual.cache[key - 1].setAttribute('data-swiper-slide-index', key - 1);\n            delete swiper.virtual.cache[key];\n          }\n        });\n      }\n      swiper.virtual.slides.splice(slidesIndexes, 1);\n      if (slidesIndexes < activeIndex) activeIndex -= 1;\n      activeIndex = Math.max(activeIndex, 0);\n    }\n    update(true);\n    swiper.slideTo(activeIndex, 0);\n  }\n  function removeAllSlides() {\n    swiper.virtual.slides = [];\n    if (swiper.params.virtual.cache) {\n      swiper.virtual.cache = {};\n    }\n    update(true);\n    swiper.slideTo(0, 0);\n  }\n  on('beforeInit', () => {\n    if (!swiper.params.virtual.enabled) return;\n    let domSlidesAssigned;\n    if (typeof swiper.passedParams.virtual.slides === 'undefined') {\n      const slides = [...swiper.slidesEl.children].filter(el => el.matches(`.${swiper.params.slideClass}, swiper-slide`));\n      if (slides && slides.length) {\n        swiper.virtual.slides = [...slides];\n        domSlidesAssigned = true;\n        slides.forEach((slideEl, slideIndex) => {\n          slideEl.setAttribute('data-swiper-slide-index', slideIndex);\n          swiper.virtual.cache[slideIndex] = slideEl;\n          slideEl.remove();\n        });\n      }\n    }\n    if (!domSlidesAssigned) {\n      swiper.virtual.slides = swiper.params.virtual.slides;\n    }\n    swiper.classNames.push(`${swiper.params.containerModifierClass}virtual`);\n    swiper.params.watchSlidesProgress = true;\n    swiper.originalParams.watchSlidesProgress = true;\n    update(false, true);\n  });\n  on('setTranslate', () => {\n    if (!swiper.params.virtual.enabled) return;\n    if (swiper.params.cssMode && !swiper._immediateVirtual) {\n      clearTimeout(cssModeTimeout);\n      cssModeTimeout = setTimeout(() => {\n        update();\n      }, 100);\n    } else {\n      update();\n    }\n  });\n  on('init update resize', () => {\n    if (!swiper.params.virtual.enabled) return;\n    if (swiper.params.cssMode) {\n      setCSSProperty(swiper.wrapperEl, '--swiper-virtual-size', `${swiper.virtualSize}px`);\n    }\n  });\n  Object.assign(swiper.virtual, {\n    appendSlide,\n    prependSlide,\n    removeSlide,\n    removeAllSlides,\n    update\n  });\n}\n\nexport { Virtual as default };\n", "import { g as getDocument, a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { d as elementParents, f as elementOffset } from '../shared/utils.mjs';\n\n/* eslint-disable consistent-return */\nfunction Keyboard({\n  swiper,\n  extendParams,\n  on,\n  emit\n}) {\n  const document = getDocument();\n  const window = getWindow();\n  swiper.keyboard = {\n    enabled: false\n  };\n  extendParams({\n    keyboard: {\n      enabled: false,\n      onlyInViewport: true,\n      pageUpDown: true,\n      speed: undefined\n    }\n  });\n  function handle(event) {\n    if (!swiper.enabled) return;\n    const {\n      rtlTranslate: rtl\n    } = swiper;\n    let e = event;\n    if (e.originalEvent) e = e.originalEvent; // jquery fix\n    const kc = e.keyCode || e.charCode;\n    const pageUpDown = swiper.params.keyboard.pageUpDown;\n    const isPageUp = pageUpDown && kc === 33;\n    const isPageDown = pageUpDown && kc === 34;\n    const isArrowLeft = kc === 37;\n    const isArrowRight = kc === 39;\n    const isArrowUp = kc === 38;\n    const isArrowDown = kc === 40;\n    // Directions locks\n    if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {\n      return false;\n    }\n    if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {\n      return false;\n    }\n    if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n      return undefined;\n    }\n    if (document.activeElement && (document.activeElement.isContentEditable || document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea'))) {\n      return undefined;\n    }\n    if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n      let inView = false;\n      // Check that swiper should be inside of visible area of window\n      if (elementParents(swiper.el, `.${swiper.params.slideClass}, swiper-slide`).length > 0 && elementParents(swiper.el, `.${swiper.params.slideActiveClass}`).length === 0) {\n        return undefined;\n      }\n      const el = swiper.el;\n      const swiperWidth = el.clientWidth;\n      const swiperHeight = el.clientHeight;\n      const windowWidth = window.innerWidth;\n      const windowHeight = window.innerHeight;\n      const swiperOffset = elementOffset(el);\n      if (rtl) swiperOffset.left -= el.scrollLeft;\n      const swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];\n      for (let i = 0; i < swiperCoord.length; i += 1) {\n        const point = swiperCoord[i];\n        if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\n          if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n          inView = true;\n        }\n      }\n      if (!inView) return undefined;\n    }\n    const speed = swiper.params.keyboard.speed;\n    if (swiper.isHorizontal()) {\n      if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n        if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n      }\n      if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext(speed);\n      if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev(speed);\n    } else {\n      if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n        if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n      }\n      if (isPageDown || isArrowDown) swiper.slideNext(speed);\n      if (isPageUp || isArrowUp) swiper.slidePrev(speed);\n    }\n    emit('keyPress', kc);\n    return undefined;\n  }\n  function enable() {\n    if (swiper.keyboard.enabled) return;\n    document.addEventListener('keydown', handle);\n    swiper.keyboard.enabled = true;\n  }\n  function disable() {\n    if (!swiper.keyboard.enabled) return;\n    document.removeEventListener('keydown', handle);\n    swiper.keyboard.enabled = false;\n  }\n  on('init', () => {\n    if (swiper.params.keyboard.enabled) {\n      enable();\n    }\n  });\n  on('destroy', () => {\n    if (swiper.keyboard.enabled) {\n      disable();\n    }\n  });\n  Object.assign(swiper.keyboard, {\n    enable,\n    disable\n  });\n}\n\nexport { Keyboard as default };\n", "import { a as getWindow } from '../shared/ssr-window.esm.mjs';\nimport { n as nextTick, h as now } from '../shared/utils.mjs';\n\n/* eslint-disable consistent-return */\nfunction Mousewheel({\n  swiper,\n  extendParams,\n  on,\n  emit\n}) {\n  const window = getWindow();\n  extendParams({\n    mousewheel: {\n      enabled: false,\n      releaseOnEdges: false,\n      invert: false,\n      forceToAxis: false,\n      sensitivity: 1,\n      eventsTarget: 'container',\n      thresholdDelta: null,\n      thresholdTime: null,\n      noMousewheelClass: 'swiper-no-mousewheel'\n    }\n  });\n  swiper.mousewheel = {\n    enabled: false\n  };\n  let timeout;\n  let lastScrollTime = now();\n  let lastEventBeforeSnap;\n  const recentWheelEvents = [];\n  function normalize(e) {\n    // Reasonable defaults\n    const PIXEL_STEP = 10;\n    const LINE_HEIGHT = 40;\n    const PAGE_HEIGHT = 800;\n    let sX = 0;\n    let sY = 0; // spinX, spinY\n    let pX = 0;\n    let pY = 0; // pixelX, pixelY\n\n    // Legacy\n    if ('detail' in e) {\n      sY = e.detail;\n    }\n    if ('wheelDelta' in e) {\n      sY = -e.wheelDelta / 120;\n    }\n    if ('wheelDeltaY' in e) {\n      sY = -e.wheelDeltaY / 120;\n    }\n    if ('wheelDeltaX' in e) {\n      sX = -e.wheelDeltaX / 120;\n    }\n\n    // side scrolling on FF with DOMMouseScroll\n    if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n      sX = sY;\n      sY = 0;\n    }\n    pX = sX * PIXEL_STEP;\n    pY = sY * PIXEL_STEP;\n    if ('deltaY' in e) {\n      pY = e.deltaY;\n    }\n    if ('deltaX' in e) {\n      pX = e.deltaX;\n    }\n    if (e.shiftKey && !pX) {\n      // if user scrolls with shift he wants horizontal scroll\n      pX = pY;\n      pY = 0;\n    }\n    if ((pX || pY) && e.deltaMode) {\n      if (e.deltaMode === 1) {\n        // delta in LINE units\n        pX *= LINE_HEIGHT;\n        pY *= LINE_HEIGHT;\n      } else {\n        // delta in PAGE units\n        pX *= PAGE_HEIGHT;\n        pY *= PAGE_HEIGHT;\n      }\n    }\n\n    // Fall-back if spin cannot be determined\n    if (pX && !sX) {\n      sX = pX < 1 ? -1 : 1;\n    }\n    if (pY && !sY) {\n      sY = pY < 1 ? -1 : 1;\n    }\n    return {\n      spinX: sX,\n      spinY: sY,\n      pixelX: pX,\n      pixelY: pY\n    };\n  }\n  function handleMouseEnter() {\n    if (!swiper.enabled) return;\n    swiper.mouseEntered = true;\n  }\n  function handleMouseLeave() {\n    if (!swiper.enabled) return;\n    swiper.mouseEntered = false;\n  }\n  function animateSlider(newEvent) {\n    if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {\n      // Prevent if delta of wheel scroll delta is below configured threshold\n      return false;\n    }\n    if (swiper.params.mousewheel.thresholdTime && now() - lastScrollTime < swiper.params.mousewheel.thresholdTime) {\n      // Prevent if time between scrolls is below configured threshold\n      return false;\n    }\n\n    // If the movement is NOT big enough and\n    // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n    //   Don't go any further (avoid insignificant scroll movement).\n    if (newEvent.delta >= 6 && now() - lastScrollTime < 60) {\n      // Return false as a default\n      return true;\n    }\n    // If user is scrolling towards the end:\n    //   If the slider hasn't hit the latest slide or\n    //   if the slider is a loop and\n    //   if the slider isn't moving right now:\n    //     Go to next slide and\n    //     emit a scroll event.\n    // Else (the user is scrolling towards the beginning) and\n    // if the slider hasn't hit the first slide or\n    // if the slider is a loop and\n    // if the slider isn't moving right now:\n    //   Go to prev slide and\n    //   emit a scroll event.\n    if (newEvent.direction < 0) {\n      if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n        swiper.slideNext();\n        emit('scroll', newEvent.raw);\n      }\n    } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n      swiper.slidePrev();\n      emit('scroll', newEvent.raw);\n    }\n    // If you got here is because an animation has been triggered so store the current time\n    lastScrollTime = new window.Date().getTime();\n    // Return false as a default\n    return false;\n  }\n  function releaseScroll(newEvent) {\n    const params = swiper.params.mousewheel;\n    if (newEvent.direction < 0) {\n      if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n        // Return true to animate scroll on edges\n        return true;\n      }\n    } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n      // Return true to animate scroll on edges\n      return true;\n    }\n    return false;\n  }\n  function handle(event) {\n    let e = event;\n    let disableParentSwiper = true;\n    if (!swiper.enabled) return;\n\n    // Ignore event if the target or its parents have the swiper-no-mousewheel class\n    if (event.target.closest(`.${swiper.params.mousewheel.noMousewheelClass}`)) return;\n    const params = swiper.params.mousewheel;\n    if (swiper.params.cssMode) {\n      e.preventDefault();\n    }\n    let targetEl = swiper.el;\n    if (swiper.params.mousewheel.eventsTarget !== 'container') {\n      targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n    }\n    const targetElContainsTarget = targetEl && targetEl.contains(e.target);\n    if (!swiper.mouseEntered && !targetElContainsTarget && !params.releaseOnEdges) return true;\n    if (e.originalEvent) e = e.originalEvent; // jquery fix\n    let delta = 0;\n    const rtlFactor = swiper.rtlTranslate ? -1 : 1;\n    const data = normalize(e);\n    if (params.forceToAxis) {\n      if (swiper.isHorizontal()) {\n        if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n      } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n    } else {\n      delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n    }\n    if (delta === 0) return true;\n    if (params.invert) delta = -delta;\n\n    // Get the scroll positions\n    let positions = swiper.getTranslate() + delta * params.sensitivity;\n    if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n    if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate();\n\n    // When loop is true:\n    //     the disableParentSwiper will be true.\n    // When loop is false:\n    //     if the scroll positions is not on edge,\n    //     then the disableParentSwiper will be true.\n    //     if the scroll on edge positions,\n    //     then the disableParentSwiper will be false.\n    disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n    if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n    if (!swiper.params.freeMode || !swiper.params.freeMode.enabled) {\n      // Register the new event in a variable which stores the relevant data\n      const newEvent = {\n        time: now(),\n        delta: Math.abs(delta),\n        direction: Math.sign(delta),\n        raw: event\n      };\n\n      // Keep the most recent events\n      if (recentWheelEvents.length >= 2) {\n        recentWheelEvents.shift(); // only store the last N events\n      }\n\n      const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n      recentWheelEvents.push(newEvent);\n\n      // If there is at least one previous recorded event:\n      //   If direction has changed or\n      //   if the scroll is quicker than the previous one:\n      //     Animate the slider.\n      // Else (this is the first time the wheel is moved):\n      //     Animate the slider.\n      if (prevEvent) {\n        if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n          animateSlider(newEvent);\n        }\n      } else {\n        animateSlider(newEvent);\n      }\n\n      // If it's time to release the scroll:\n      //   Return now so you don't hit the preventDefault.\n      if (releaseScroll(newEvent)) {\n        return true;\n      }\n    } else {\n      // Freemode or scrollContainer:\n\n      // If we recently snapped after a momentum scroll, then ignore wheel events\n      // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n      // or if it's a new scroll (larger delta or inverse sign as last event before\n      // an end-of-momentum snap).\n      const newEvent = {\n        time: now(),\n        delta: Math.abs(delta),\n        direction: Math.sign(delta)\n      };\n      const ignoreWheelEvents = lastEventBeforeSnap && newEvent.time < lastEventBeforeSnap.time + 500 && newEvent.delta <= lastEventBeforeSnap.delta && newEvent.direction === lastEventBeforeSnap.direction;\n      if (!ignoreWheelEvents) {\n        lastEventBeforeSnap = undefined;\n        let position = swiper.getTranslate() + delta * params.sensitivity;\n        const wasBeginning = swiper.isBeginning;\n        const wasEnd = swiper.isEnd;\n        if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n        if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n        swiper.setTransition(0);\n        swiper.setTranslate(position);\n        swiper.updateProgress();\n        swiper.updateActiveIndex();\n        swiper.updateSlidesClasses();\n        if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n          swiper.updateSlidesClasses();\n        }\n        if (swiper.params.loop) {\n          swiper.loopFix({\n            direction: newEvent.direction < 0 ? 'next' : 'prev',\n            byMousewheel: true\n          });\n        }\n        if (swiper.params.freeMode.sticky) {\n          // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n          // the end of a momentum scroll by storing recent (N=15?) wheel events.\n          // 1. do all N events have decreasing or same (absolute value) delta?\n          // 2. did all N events arrive in the last M (M=500?) msecs?\n          // 3. does the earliest event have an (absolute value) delta that's\n          //    at least P (P=1?) larger than the most recent event's delta?\n          // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n          // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n          // Snap immediately and ignore remaining wheel events in this scroll.\n          // See comment above for \"remaining wheel events in this scroll\" determination.\n          // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n          clearTimeout(timeout);\n          timeout = undefined;\n          if (recentWheelEvents.length >= 15) {\n            recentWheelEvents.shift(); // only store the last N events\n          }\n\n          const prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n          const firstEvent = recentWheelEvents[0];\n          recentWheelEvents.push(newEvent);\n          if (prevEvent && (newEvent.delta > prevEvent.delta || newEvent.direction !== prevEvent.direction)) {\n            // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n            recentWheelEvents.splice(0);\n          } else if (recentWheelEvents.length >= 15 && newEvent.time - firstEvent.time < 500 && firstEvent.delta - newEvent.delta >= 1 && newEvent.delta <= 6) {\n            // We're at the end of the deceleration of a momentum scroll, so there's no need\n            // to wait for more events. Snap ASAP on the next tick.\n            // Also, because there's some remaining momentum we'll bias the snap in the\n            // direction of the ongoing scroll because it's better UX for the scroll to snap\n            // in the same direction as the scroll instead of reversing to snap.  Therefore,\n            // if it's already scrolled more than 20% in the current direction, keep going.\n            const snapToThreshold = delta > 0 ? 0.8 : 0.2;\n            lastEventBeforeSnap = newEvent;\n            recentWheelEvents.splice(0);\n            timeout = nextTick(() => {\n              if (swiper.destroyed || !swiper.params) return;\n              swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n            }, 0); // no delay; move on next tick\n          }\n\n          if (!timeout) {\n            // if we get here, then we haven't detected the end of a momentum scroll, so\n            // we'll consider a scroll \"complete\" when there haven't been any wheel events\n            // for 500ms.\n            timeout = nextTick(() => {\n              if (swiper.destroyed || !swiper.params) return;\n              const snapToThreshold = 0.5;\n              lastEventBeforeSnap = newEvent;\n              recentWheelEvents.splice(0);\n              swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n            }, 500);\n          }\n        }\n\n        // Emit event\n        if (!ignoreWheelEvents) emit('scroll', e);\n\n        // Stop autoplay\n        if (swiper.params.autoplay && swiper.params.autoplay.disableOnInteraction) swiper.autoplay.stop();\n        // Return page scroll on edge positions\n        if (params.releaseOnEdges && (position === swiper.minTranslate() || position === swiper.maxTranslate())) {\n          return true;\n        }\n      }\n    }\n    if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n    return false;\n  }\n  function events(method) {\n    let targetEl = swiper.el;\n    if (swiper.params.mousewheel.eventsTarget !== 'container') {\n      targetEl = document.querySelector(swiper.params.mousewheel.eventsTarget);\n    }\n    targetEl[method]('mouseenter', handleMouseEnter);\n    targetEl[method]('mouseleave', handleMouseLeave);\n    targetEl[method]('wheel', handle);\n  }\n  function enable() {\n    if (swiper.params.cssMode) {\n      swiper.wrapperEl.removeEventListener('wheel', handle);\n      return true;\n    }\n    if (swiper.mousewheel.enabled) return false;\n    events('addEventListener');\n    swiper.mousewheel.enabled = true;\n    return true;\n  }\n  function disable() {\n    if (swiper.params.cssMode) {\n      swiper.wrapperEl.addEventListener(event, handle);\n      return true;\n    }\n    if (!swiper.mousewheel.enabled) return false;\n    events('removeEventListener');\n    swiper.mousewheel.enabled = false;\n    return true;\n  }\n  on('init', () => {\n    if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n      disable();\n    }\n    if (swiper.params.mousewheel.enabled) enable();\n  });\n  on('destroy', () => {\n    if (swiper.params.cssMode) {\n      enable();\n    }\n    if (swiper.mousewheel.enabled) disable();\n  });\n  Object.assign(swiper.mousewheel, {\n    enable,\n    disable\n  });\n}\n\nexport { Mousewheel as default };\n", "import { e as elementChildren, c as createElement } from './utils.mjs';\n\nfunction createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n  if (swiper.params.createElements) {\n    Object.keys(checkProps).forEach(key => {\n      if (!params[key] && params.auto === true) {\n        let element = elementChildren(swiper.el, `.${checkProps[key]}`)[0];\n        if (!element) {\n          element = createElement('div', checkProps[key]);\n          element.className = checkProps[key];\n          swiper.el.append(element);\n        }\n        params[key] = element;\n        originalParams[key] = element;\n      }\n    });\n  }\n  return params;\n}\n\nexport { createElementIfNotDefined as c };\n", "import { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { m as makeElementsArray, s as setInnerHTML } from '../shared/utils.mjs';\n\nconst arrowSvg = `<svg class=\"swiper-navigation-icon\" width=\"11\" height=\"20\" viewBox=\"0 0 11 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0.38296 20.0762C0.111788 19.805 0.111788 19.3654 0.38296 19.0942L9.19758 10.2796L0.38296 1.46497C0.111788 1.19379 0.111788 0.754138 0.38296 0.482966C0.654131 0.211794 1.09379 0.211794 1.36496 0.482966L10.4341 9.55214C10.8359 9.9539 10.8359 10.6053 10.4341 11.007L1.36496 20.0762C1.09379 20.3474 0.654131 20.3474 0.38296 20.0762Z\" fill=\"currentColor\"/></svg>`;\nfunction Navigation({\n  swiper,\n  extendParams,\n  on,\n  emit\n}) {\n  extendParams({\n    navigation: {\n      nextEl: null,\n      prevEl: null,\n      addIcons: true,\n      hideOnClick: false,\n      disabledClass: 'swiper-button-disabled',\n      hiddenClass: 'swiper-button-hidden',\n      lockClass: 'swiper-button-lock',\n      navigationDisabledClass: 'swiper-navigation-disabled'\n    }\n  });\n  swiper.navigation = {\n    nextEl: null,\n    prevEl: null,\n    arrowSvg\n  };\n  function getEl(el) {\n    let res;\n    if (el && typeof el === 'string' && swiper.isElement) {\n      res = swiper.el.querySelector(el) || swiper.hostEl.querySelector(el);\n      if (res) return res;\n    }\n    if (el) {\n      if (typeof el === 'string') res = [...document.querySelectorAll(el)];\n      if (swiper.params.uniqueNavElements && typeof el === 'string' && res && res.length > 1 && swiper.el.querySelectorAll(el).length === 1) {\n        res = swiper.el.querySelector(el);\n      } else if (res && res.length === 1) {\n        res = res[0];\n      }\n    }\n    if (el && !res) return el;\n    // if (Array.isArray(res) && res.length === 1) res = res[0];\n    return res;\n  }\n  function toggleEl(el, disabled) {\n    const params = swiper.params.navigation;\n    el = makeElementsArray(el);\n    el.forEach(subEl => {\n      if (subEl) {\n        subEl.classList[disabled ? 'add' : 'remove'](...params.disabledClass.split(' '));\n        if (subEl.tagName === 'BUTTON') subEl.disabled = disabled;\n        if (swiper.params.watchOverflow && swiper.enabled) {\n          subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n        }\n      }\n    });\n  }\n  function update() {\n    // Update Navigation Buttons\n    const {\n      nextEl,\n      prevEl\n    } = swiper.navigation;\n    if (swiper.params.loop) {\n      toggleEl(prevEl, false);\n      toggleEl(nextEl, false);\n      return;\n    }\n    toggleEl(prevEl, swiper.isBeginning && !swiper.params.rewind);\n    toggleEl(nextEl, swiper.isEnd && !swiper.params.rewind);\n  }\n  function onPrevClick(e) {\n    e.preventDefault();\n    if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n    swiper.slidePrev();\n    emit('navigationPrev');\n  }\n  function onNextClick(e) {\n    e.preventDefault();\n    if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n    swiper.slideNext();\n    emit('navigationNext');\n  }\n  function init() {\n    const params = swiper.params.navigation;\n    swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n      nextEl: 'swiper-button-next',\n      prevEl: 'swiper-button-prev'\n    });\n    if (!(params.nextEl || params.prevEl)) return;\n    let nextEl = getEl(params.nextEl);\n    let prevEl = getEl(params.prevEl);\n    Object.assign(swiper.navigation, {\n      nextEl,\n      prevEl\n    });\n    nextEl = makeElementsArray(nextEl);\n    prevEl = makeElementsArray(prevEl);\n    const initButton = (el, dir) => {\n      if (el) {\n        if (params.addIcons && el.matches('.swiper-button-next,.swiper-button-prev') && !el.querySelector('svg')) {\n          const tempEl = document.createElement('div');\n          setInnerHTML(tempEl, arrowSvg);\n          el.appendChild(tempEl.querySelector('svg'));\n          tempEl.remove();\n        }\n        el.addEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n      }\n      if (!swiper.enabled && el) {\n        el.classList.add(...params.lockClass.split(' '));\n      }\n    };\n    nextEl.forEach(el => initButton(el, 'next'));\n    prevEl.forEach(el => initButton(el, 'prev'));\n  }\n  function destroy() {\n    let {\n      nextEl,\n      prevEl\n    } = swiper.navigation;\n    nextEl = makeElementsArray(nextEl);\n    prevEl = makeElementsArray(prevEl);\n    const destroyButton = (el, dir) => {\n      el.removeEventListener('click', dir === 'next' ? onNextClick : onPrevClick);\n      el.classList.remove(...swiper.params.navigation.disabledClass.split(' '));\n    };\n    nextEl.forEach(el => destroyButton(el, 'next'));\n    prevEl.forEach(el => destroyButton(el, 'prev'));\n  }\n  on('init', () => {\n    if (swiper.params.navigation.enabled === false) {\n      // eslint-disable-next-line\n      disable();\n    } else {\n      init();\n      update();\n    }\n  });\n  on('toEdge fromEdge lock unlock', () => {\n    update();\n  });\n  on('destroy', () => {\n    destroy();\n  });\n  on('enable disable', () => {\n    let {\n      nextEl,\n      prevEl\n    } = swiper.navigation;\n    nextEl = makeElementsArray(nextEl);\n    prevEl = makeElementsArray(prevEl);\n    if (swiper.enabled) {\n      update();\n      return;\n    }\n    [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.add(swiper.params.navigation.lockClass));\n  });\n  on('click', (_s, e) => {\n    let {\n      nextEl,\n      prevEl\n    } = swiper.navigation;\n    nextEl = makeElementsArray(nextEl);\n    prevEl = makeElementsArray(prevEl);\n    const targetEl = e.target;\n    let targetIsButton = prevEl.includes(targetEl) || nextEl.includes(targetEl);\n    if (swiper.isElement && !targetIsButton) {\n      const path = e.path || e.composedPath && e.composedPath();\n      if (path) {\n        targetIsButton = path.find(pathEl => nextEl.includes(pathEl) || prevEl.includes(pathEl));\n      }\n    }\n    if (swiper.params.navigation.hideOnClick && !targetIsButton) {\n      if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n      let isHidden;\n      if (nextEl.length) {\n        isHidden = nextEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n      } else if (prevEl.length) {\n        isHidden = prevEl[0].classList.contains(swiper.params.navigation.hiddenClass);\n      }\n      if (isHidden === true) {\n        emit('navigationShow');\n      } else {\n        emit('navigationHide');\n      }\n      [...nextEl, ...prevEl].filter(el => !!el).forEach(el => el.classList.toggle(swiper.params.navigation.hiddenClass));\n    }\n  });\n  const enable = () => {\n    swiper.el.classList.remove(...swiper.params.navigation.navigationDisabledClass.split(' '));\n    init();\n    update();\n  };\n  const disable = () => {\n    swiper.el.classList.add(...swiper.params.navigation.navigationDisabledClass.split(' '));\n    destroy();\n  };\n  Object.assign(swiper.navigation, {\n    enable,\n    disable,\n    update,\n    init,\n    destroy\n  });\n}\n\nexport { Navigation as default };\n", "function classesToSelector(classes = '') {\n  // Escape all CSS selector special characters\n  return `.${classes.trim().replace(/([\\.:!+\\/()[\\]#>~*^$|=,'\"@{}\\\\])/g, '\\\\$1') // eslint-disable-line\n  .replace(/ /g, '.')}`;\n}\n\nexport { classesToSelector as c };\n", "import { c as classesToSelector } from '../shared/classes-to-selector.mjs';\nimport { c as createElementIfNotDefined } from '../shared/create-element-if-not-defined.mjs';\nimport { m as makeElementsArray, i as elementOuterSize, j as elementIndex, s as setInnerHTML, d as elementParents } from '../shared/utils.mjs';\n\nfunction Pagination({\n  swiper,\n  extendParams,\n  on,\n  emit\n}) {\n  const pfx = 'swiper-pagination';\n  extendParams({\n    pagination: {\n      el: null,\n      bulletElement: 'span',\n      clickable: false,\n      hideOnClick: false,\n      renderBullet: null,\n      renderProgressbar: null,\n      renderFraction: null,\n      renderCustom: null,\n      progressbarOpposite: false,\n      type: 'bullets',\n      // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n      dynamicBullets: false,\n      dynamicMainBullets: 1,\n      formatFractionCurrent: number => number,\n      formatFractionTotal: number => number,\n      bulletClass: `${pfx}-bullet`,\n      bulletActiveClass: `${pfx}-bullet-active`,\n      modifierClass: `${pfx}-`,\n      currentClass: `${pfx}-current`,\n      totalClass: `${pfx}-total`,\n      hiddenClass: `${pfx}-hidden`,\n      progressbarFillClass: `${pfx}-progressbar-fill`,\n      progressbarOppositeClass: `${pfx}-progressbar-opposite`,\n      clickableClass: `${pfx}-clickable`,\n      lockClass: `${pfx}-lock`,\n      horizontalClass: `${pfx}-horizontal`,\n      verticalClass: `${pfx}-vertical`,\n      paginationDisabledClass: `${pfx}-disabled`\n    }\n  });\n  swiper.pagination = {\n    el: null,\n    bullets: []\n  };\n  let bulletSize;\n  let dynamicBulletIndex = 0;\n  function isPaginationDisabled() {\n    return !swiper.params.pagination.el || !swiper.pagination.el || Array.isArray(swiper.pagination.el) && swiper.pagination.el.length === 0;\n  }\n  function setSideBullets(bulletEl, position) {\n    const {\n      bulletActiveClass\n    } = swiper.params.pagination;\n    if (!bulletEl) return;\n    bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n    if (bulletEl) {\n      bulletEl.classList.add(`${bulletActiveClass}-${position}`);\n      bulletEl = bulletEl[`${position === 'prev' ? 'previous' : 'next'}ElementSibling`];\n      if (bulletEl) {\n        bulletEl.classList.add(`${bulletActiveClass}-${position}-${position}`);\n      }\n    }\n  }\n  function getMoveDirection(prevIndex, nextIndex, length) {\n    prevIndex = prevIndex % length;\n    nextIndex = nextIndex % length;\n    if (nextIndex === prevIndex + 1) {\n      return 'next';\n    } else if (nextIndex === prevIndex - 1) {\n      return 'previous';\n    }\n    return;\n  }\n  function onBulletClick(e) {\n    const bulletEl = e.target.closest(classesToSelector(swiper.params.pagination.bulletClass));\n    if (!bulletEl) {\n      return;\n    }\n    e.preventDefault();\n    const index = elementIndex(bulletEl) * swiper.params.slidesPerGroup;\n    if (swiper.params.loop) {\n      if (swiper.realIndex === index) return;\n      const moveDirection = getMoveDirection(swiper.realIndex, index, swiper.slides.length);\n      if (moveDirection === 'next') {\n        swiper.slideNext();\n      } else if (moveDirection === 'previous') {\n        swiper.slidePrev();\n      } else {\n        swiper.slideToLoop(index);\n      }\n    } else {\n      swiper.slideTo(index);\n    }\n  }\n  function update() {\n    // Render || Update Pagination bullets/items\n    const rtl = swiper.rtl;\n    const params = swiper.params.pagination;\n    if (isPaginationDisabled()) return;\n    let el = swiper.pagination.el;\n    el = makeElementsArray(el);\n    // Current/Total\n    let current;\n    let previousIndex;\n    const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n    const total = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n    if (swiper.params.loop) {\n      previousIndex = swiper.previousRealIndex || 0;\n      current = swiper.params.slidesPerGroup > 1 ? Math.floor(swiper.realIndex / swiper.params.slidesPerGroup) : swiper.realIndex;\n    } else if (typeof swiper.snapIndex !== 'undefined') {\n      current = swiper.snapIndex;\n      previousIndex = swiper.previousSnapIndex;\n    } else {\n      previousIndex = swiper.previousIndex || 0;\n      current = swiper.activeIndex || 0;\n    }\n    // Types\n    if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n      const bullets = swiper.pagination.bullets;\n      let firstIndex;\n      let lastIndex;\n      let midIndex;\n      if (params.dynamicBullets) {\n        bulletSize = elementOuterSize(bullets[0], swiper.isHorizontal() ? 'width' : 'height', true);\n        el.forEach(subEl => {\n          subEl.style[swiper.isHorizontal() ? 'width' : 'height'] = `${bulletSize * (params.dynamicMainBullets + 4)}px`;\n        });\n        if (params.dynamicMainBullets > 1 && previousIndex !== undefined) {\n          dynamicBulletIndex += current - (previousIndex || 0);\n          if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n            dynamicBulletIndex = params.dynamicMainBullets - 1;\n          } else if (dynamicBulletIndex < 0) {\n            dynamicBulletIndex = 0;\n          }\n        }\n        firstIndex = Math.max(current - dynamicBulletIndex, 0);\n        lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n        midIndex = (lastIndex + firstIndex) / 2;\n      }\n      bullets.forEach(bulletEl => {\n        const classesToRemove = [...['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(suffix => `${params.bulletActiveClass}${suffix}`)].map(s => typeof s === 'string' && s.includes(' ') ? s.split(' ') : s).flat();\n        bulletEl.classList.remove(...classesToRemove);\n      });\n      if (el.length > 1) {\n        bullets.forEach(bullet => {\n          const bulletIndex = elementIndex(bullet);\n          if (bulletIndex === current) {\n            bullet.classList.add(...params.bulletActiveClass.split(' '));\n          } else if (swiper.isElement) {\n            bullet.setAttribute('part', 'bullet');\n          }\n          if (params.dynamicBullets) {\n            if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n              bullet.classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n            }\n            if (bulletIndex === firstIndex) {\n              setSideBullets(bullet, 'prev');\n            }\n            if (bulletIndex === lastIndex) {\n              setSideBullets(bullet, 'next');\n            }\n          }\n        });\n      } else {\n        const bullet = bullets[current];\n        if (bullet) {\n          bullet.classList.add(...params.bulletActiveClass.split(' '));\n        }\n        if (swiper.isElement) {\n          bullets.forEach((bulletEl, bulletIndex) => {\n            bulletEl.setAttribute('part', bulletIndex === current ? 'bullet-active' : 'bullet');\n          });\n        }\n        if (params.dynamicBullets) {\n          const firstDisplayedBullet = bullets[firstIndex];\n          const lastDisplayedBullet = bullets[lastIndex];\n          for (let i = firstIndex; i <= lastIndex; i += 1) {\n            if (bullets[i]) {\n              bullets[i].classList.add(...`${params.bulletActiveClass}-main`.split(' '));\n            }\n          }\n          setSideBullets(firstDisplayedBullet, 'prev');\n          setSideBullets(lastDisplayedBullet, 'next');\n        }\n      }\n      if (params.dynamicBullets) {\n        const dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n        const bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n        const offsetProp = rtl ? 'right' : 'left';\n        bullets.forEach(bullet => {\n          bullet.style[swiper.isHorizontal() ? offsetProp : 'top'] = `${bulletsOffset}px`;\n        });\n      }\n    }\n    el.forEach((subEl, subElIndex) => {\n      if (params.type === 'fraction') {\n        subEl.querySelectorAll(classesToSelector(params.currentClass)).forEach(fractionEl => {\n          fractionEl.textContent = params.formatFractionCurrent(current + 1);\n        });\n        subEl.querySelectorAll(classesToSelector(params.totalClass)).forEach(totalEl => {\n          totalEl.textContent = params.formatFractionTotal(total);\n        });\n      }\n      if (params.type === 'progressbar') {\n        let progressbarDirection;\n        if (params.progressbarOpposite) {\n          progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n        } else {\n          progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n        }\n        const scale = (current + 1) / total;\n        let scaleX = 1;\n        let scaleY = 1;\n        if (progressbarDirection === 'horizontal') {\n          scaleX = scale;\n        } else {\n          scaleY = scale;\n        }\n        subEl.querySelectorAll(classesToSelector(params.progressbarFillClass)).forEach(progressEl => {\n          progressEl.style.transform = `translate3d(0,0,0) scaleX(${scaleX}) scaleY(${scaleY})`;\n          progressEl.style.transitionDuration = `${swiper.params.speed}ms`;\n        });\n      }\n      if (params.type === 'custom' && params.renderCustom) {\n        setInnerHTML(subEl, params.renderCustom(swiper, current + 1, total));\n        if (subElIndex === 0) emit('paginationRender', subEl);\n      } else {\n        if (subElIndex === 0) emit('paginationRender', subEl);\n        emit('paginationUpdate', subEl);\n      }\n      if (swiper.params.watchOverflow && swiper.enabled) {\n        subEl.classList[swiper.isLocked ? 'add' : 'remove'](params.lockClass);\n      }\n    });\n  }\n  function render() {\n    // Render Container\n    const params = swiper.params.pagination;\n    if (isPaginationDisabled()) return;\n    const slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.grid && swiper.params.grid.rows > 1 ? swiper.slides.length / Math.ceil(swiper.params.grid.rows) : swiper.slides.length;\n    let el = swiper.pagination.el;\n    el = makeElementsArray(el);\n    let paginationHTML = '';\n    if (params.type === 'bullets') {\n      let numberOfBullets = swiper.params.loop ? Math.ceil(slidesLength / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n      if (swiper.params.freeMode && swiper.params.freeMode.enabled && numberOfBullets > slidesLength) {\n        numberOfBullets = slidesLength;\n      }\n      for (let i = 0; i < numberOfBullets; i += 1) {\n        if (params.renderBullet) {\n          paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n        } else {\n          // prettier-ignore\n          paginationHTML += `<${params.bulletElement} ${swiper.isElement ? 'part=\"bullet\"' : ''} class=\"${params.bulletClass}\"></${params.bulletElement}>`;\n        }\n      }\n    }\n    if (params.type === 'fraction') {\n      if (params.renderFraction) {\n        paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n      } else {\n        paginationHTML = `<span class=\"${params.currentClass}\"></span>` + ' / ' + `<span class=\"${params.totalClass}\"></span>`;\n      }\n    }\n    if (params.type === 'progressbar') {\n      if (params.renderProgressbar) {\n        paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n      } else {\n        paginationHTML = `<span class=\"${params.progressbarFillClass}\"></span>`;\n      }\n    }\n    swiper.pagination.bullets = [];\n    el.forEach(subEl => {\n      if (params.type !== 'custom') {\n        setInnerHTML(subEl, paginationHTML || '');\n      }\n      if (params.type === 'bullets') {\n        swiper.pagination.bullets.push(...subEl.querySelectorAll(classesToSelector(params.bulletClass)));\n      }\n    });\n    if (params.type !== 'custom') {\n      emit('paginationRender', el[0]);\n    }\n  }\n  function init() {\n    swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n      el: 'swiper-pagination'\n    });\n    const params = swiper.params.pagination;\n    if (!params.el) return;\n    let el;\n    if (typeof params.el === 'string' && swiper.isElement) {\n      el = swiper.el.querySelector(params.el);\n    }\n    if (!el && typeof params.el === 'string') {\n      el = [...document.querySelectorAll(params.el)];\n    }\n    if (!el) {\n      el = params.el;\n    }\n    if (!el || el.length === 0) return;\n    if (swiper.params.uniqueNavElements && typeof params.el === 'string' && Array.isArray(el) && el.length > 1) {\n      el = [...swiper.el.querySelectorAll(params.el)];\n      // check if it belongs to another nested Swiper\n      if (el.length > 1) {\n        el = el.find(subEl => {\n          if (elementParents(subEl, '.swiper')[0] !== swiper.el) return false;\n          return true;\n        });\n      }\n    }\n    if (Array.isArray(el) && el.length === 1) el = el[0];\n    Object.assign(swiper.pagination, {\n      el\n    });\n    el = makeElementsArray(el);\n    el.forEach(subEl => {\n      if (params.type === 'bullets' && params.clickable) {\n        subEl.classList.add(...(params.clickableClass || '').split(' '));\n      }\n      subEl.classList.add(params.modifierClass + params.type);\n      subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n      if (params.type === 'bullets' && params.dynamicBullets) {\n        subEl.classList.add(`${params.modifierClass}${params.type}-dynamic`);\n        dynamicBulletIndex = 0;\n        if (params.dynamicMainBullets < 1) {\n          params.dynamicMainBullets = 1;\n        }\n      }\n      if (params.type === 'progressbar' && params.progressbarOpposite) {\n        subEl.classList.add(params.progressbarOppositeClass);\n      }\n      if (params.clickable) {\n        subEl.addEventListener('click', onBulletClick);\n      }\n      if (!swiper.enabled) {\n        subEl.classList.add(params.lockClass);\n      }\n    });\n  }\n  function destroy() {\n    const params = swiper.params.pagination;\n    if (isPaginationDisabled()) return;\n    let el = swiper.pagination.el;\n    if (el) {\n      el = makeElementsArray(el);\n      el.forEach(subEl => {\n        subEl.classList.remove(params.hiddenClass);\n        subEl.classList.remove(params.modifierClass + params.type);\n        subEl.classList.remove(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n        if (params.clickable) {\n          subEl.classList.remove(...(params.clickableClass || '').split(' '));\n          subEl.removeEventListener('click', onBulletClick);\n        }\n      });\n    }\n    if (swiper.pagination.bullets) swiper.pagination.bullets.forEach(subEl => subEl.classList.remove(...params.bulletActiveClass.split(' ')));\n  }\n  on('changeDirection', () => {\n    if (!swiper.pagination || !swiper.pagination.el) return;\n    const params = swiper.params.pagination;\n    let {\n      el\n    } = swiper.pagination;\n    el = makeElementsArray(el);\n    el.forEach(subEl => {\n      subEl.classList.remove(params.horizontalClass, params.verticalClass);\n      subEl.classList.add(swiper.isHorizontal() ? params.horizontalClass : params.verticalClass);\n    });\n  });\n  on('init', () => {\n    if (swiper.params.pagination.enabled === false) {\n      // eslint-disable-next-line\n      disable();\n    } else {\n      init();\n      render();\n      update();\n    }\n  });\n  on('activeIndexChange', () => {\n    if (typeof swiper.snapIndex === 'undefined') {\n      update();\n    }\n  });\n  on('snapIndexChange', () => {\n    update();\n  });\n  on('snapGridLengthChange', () => {\n    render();\n    update();\n  });\n  on('destroy', () => {\n    destroy();\n  });\n  on('enable disable', () => {\n    let {\n      el\n    } = swiper.pagination;\n    if (el) {\n      el = makeElementsArray(el);\n      el.forEach(subEl => subEl.classList[swiper.enabled ? 'remove' : 'add'](swiper.params.pagination.lockClass));\n    }\n  });\n  on('lock unlock', () => {\n    update();\n  });\n  on('click', (_s, e) => {\n    const targetEl = e.target;\n    const el = makeElementsArray(swiper.pagination.el);\n    if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && el && el.length > 0 && !targetEl.classList.contains(swiper.params.pagination.bulletClass)) {\n      if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n      const isHidden = el[0].classList.contains(swiper.params.pagination.hiddenClass);\n      if (isHidden === true) {\n        emit('paginationShow');\n      } else {\n        emit('paginationHide');\n      }\n      el.forEach(subEl => subEl.classList.toggle(swiper.params.pagination.hiddenClass));\n    }\n  });\n  const enable = () => {\n    swiper.el.classList.remove(swiper.params.pagination.paginationDisabledClass);\n    let {\n      el\n    } = swiper.pagination;\n    if (el) {\n      el = makeElementsArray(el);\n      el.forEach(subEl => subEl.classList.remove(swiper.params.pagination.paginationDisabledClass));\n    }\n    init();\n    render();\n    update();\n  };\n  const disable = () => {\n    swiper.el.classList.add(swiper.params.pagination.paginationDisabledClass);\n    let {\n      el\n    } = swiper.pagination;\n    if (el) {\n      el = makeElementsArray(el);\n      el.forEach(subEl => subEl.classList.add(swiper.params.pagination.paginationDisabledClass));\n    }\n    destroy();\n  };\n  Object.assign(swiper.pagination, {\n    enable,\n    disable,\n    render,\n    update,\n    init,\n    destroy\n  });\n}\n\nexport { Pagination as default };\n", "import { g as getDocument } from '../shared/ssr-window.esm.mjs';\nimport { c as classesToSelector } from '../shared/classes-to-selector.mjs';\nimport { c as createElement, j as elementIndex, m as makeElementsArray, s as setInnerHTML } from '../shared/utils.mjs';\n\nfunction A11y({\n  swiper,\n  extendParams,\n  on\n}) {\n  extendParams({\n    a11y: {\n      enabled: true,\n      notificationClass: 'swiper-notification',\n      prevSlideMessage: 'Previous slide',\n      nextSlideMessage: 'Next slide',\n      firstSlideMessage: 'This is the first slide',\n      lastSlideMessage: 'This is the last slide',\n      paginationBulletMessage: 'Go to slide {{index}}',\n      slideLabelMessage: '{{index}} / {{slidesLength}}',\n      containerMessage: null,\n      containerRoleDescriptionMessage: null,\n      containerRole: null,\n      itemRoleDescriptionMessage: null,\n      slideRole: 'group',\n      id: null,\n      scrollOnFocus: true,\n      wrapperLiveRegion: true\n    }\n  });\n  swiper.a11y = {\n    clicked: false\n  };\n  let liveRegion = null;\n  let preventFocusHandler;\n  let focusTargetSlideEl;\n  let visibilityChangedTimestamp = new Date().getTime();\n  function notify(message) {\n    const notification = liveRegion;\n    if (notification.length === 0) return;\n    setInnerHTML(notification, message);\n  }\n  function getRandomNumber(size = 16) {\n    const randomChar = () => Math.round(16 * Math.random()).toString(16);\n    return 'x'.repeat(size).replace(/x/g, randomChar);\n  }\n  function makeElFocusable(el) {\n    el = makeElementsArray(el);\n    el.forEach(subEl => {\n      subEl.setAttribute('tabIndex', '0');\n    });\n  }\n  function makeElNotFocusable(el) {\n    el = makeElementsArray(el);\n    el.forEach(subEl => {\n      subEl.setAttribute('tabIndex', '-1');\n    });\n  }\n  function addElRole(el, role) {\n    el = makeElementsArray(el);\n    el.forEach(subEl => {\n      subEl.setAttribute('role', role);\n    });\n  }\n  function addElRoleDescription(el, description) {\n    el = makeElementsArray(el);\n    el.forEach(subEl => {\n      subEl.setAttribute('aria-roledescription', description);\n    });\n  }\n  function addElLabel(el, label) {\n    el = makeElementsArray(el);\n    el.forEach(subEl => {\n      subEl.setAttribute('aria-label', label);\n    });\n  }\n  function addElId(el, id) {\n    el = makeElementsArray(el);\n    el.forEach(subEl => {\n      subEl.setAttribute('id', id);\n    });\n  }\n  function addElLive(el, live) {\n    el = makeElementsArray(el);\n    el.forEach(subEl => {\n      subEl.setAttribute('aria-live', live);\n    });\n  }\n  function disableEl(el) {\n    el = makeElementsArray(el);\n    el.forEach(subEl => {\n      subEl.setAttribute('aria-disabled', true);\n    });\n  }\n  function enableEl(el) {\n    el = makeElementsArray(el);\n    el.forEach(subEl => {\n      subEl.removeAttribute('aria-disabled');\n    });\n  }\n  function onEnterOrSpaceKey(e) {\n    if (e.keyCode !== 13 && e.keyCode !== 32) return;\n    const params = swiper.params.a11y;\n    const targetEl = e.target;\n    if (swiper.pagination && swiper.pagination.el && (targetEl === swiper.pagination.el || swiper.pagination.el.contains(e.target))) {\n      if (!e.target.matches(classesToSelector(swiper.params.pagination.bulletClass))) return;\n    }\n    if (swiper.navigation && swiper.navigation.prevEl && swiper.navigation.nextEl) {\n      const prevEls = makeElementsArray(swiper.navigation.prevEl);\n      const nextEls = makeElementsArray(swiper.navigation.nextEl);\n      if (nextEls.includes(targetEl)) {\n        if (!(swiper.isEnd && !swiper.params.loop)) {\n          swiper.slideNext();\n        }\n        if (swiper.isEnd) {\n          notify(params.lastSlideMessage);\n        } else {\n          notify(params.nextSlideMessage);\n        }\n      }\n      if (prevEls.includes(targetEl)) {\n        if (!(swiper.isBeginning && !swiper.params.loop)) {\n          swiper.slidePrev();\n        }\n        if (swiper.isBeginning) {\n          notify(params.firstSlideMessage);\n        } else {\n          notify(params.prevSlideMessage);\n        }\n      }\n    }\n    if (swiper.pagination && targetEl.matches(classesToSelector(swiper.params.pagination.bulletClass))) {\n      targetEl.click();\n    }\n  }\n  function updateNavigation() {\n    if (swiper.params.loop || swiper.params.rewind || !swiper.navigation) return;\n    const {\n      nextEl,\n      prevEl\n    } = swiper.navigation;\n    if (prevEl) {\n      if (swiper.isBeginning) {\n        disableEl(prevEl);\n        makeElNotFocusable(prevEl);\n      } else {\n        enableEl(prevEl);\n        makeElFocusable(prevEl);\n      }\n    }\n    if (nextEl) {\n      if (swiper.isEnd) {\n        disableEl(nextEl);\n        makeElNotFocusable(nextEl);\n      } else {\n        enableEl(nextEl);\n        makeElFocusable(nextEl);\n      }\n    }\n  }\n  function hasPagination() {\n    return swiper.pagination && swiper.pagination.bullets && swiper.pagination.bullets.length;\n  }\n  function hasClickablePagination() {\n    return hasPagination() && swiper.params.pagination.clickable;\n  }\n  function updatePagination() {\n    const params = swiper.params.a11y;\n    if (!hasPagination()) return;\n    swiper.pagination.bullets.forEach(bulletEl => {\n      if (swiper.params.pagination.clickable) {\n        makeElFocusable(bulletEl);\n        if (!swiper.params.pagination.renderBullet) {\n          addElRole(bulletEl, 'button');\n          addElLabel(bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, elementIndex(bulletEl) + 1));\n        }\n      }\n      if (bulletEl.matches(classesToSelector(swiper.params.pagination.bulletActiveClass))) {\n        bulletEl.setAttribute('aria-current', 'true');\n      } else {\n        bulletEl.removeAttribute('aria-current');\n      }\n    });\n  }\n  const initNavEl = (el, wrapperId, message) => {\n    makeElFocusable(el);\n    if (el.tagName !== 'BUTTON') {\n      addElRole(el, 'button');\n      el.addEventListener('keydown', onEnterOrSpaceKey);\n    }\n    addElLabel(el, message);\n  };\n  const handlePointerDown = e => {\n    if (focusTargetSlideEl && focusTargetSlideEl !== e.target && !focusTargetSlideEl.contains(e.target)) {\n      preventFocusHandler = true;\n    }\n    swiper.a11y.clicked = true;\n  };\n  const handlePointerUp = () => {\n    preventFocusHandler = false;\n    requestAnimationFrame(() => {\n      requestAnimationFrame(() => {\n        if (!swiper.destroyed) {\n          swiper.a11y.clicked = false;\n        }\n      });\n    });\n  };\n  const onVisibilityChange = e => {\n    visibilityChangedTimestamp = new Date().getTime();\n  };\n  const handleFocus = e => {\n    if (swiper.a11y.clicked || !swiper.params.a11y.scrollOnFocus) return;\n    if (new Date().getTime() - visibilityChangedTimestamp < 100) return;\n    const slideEl = e.target.closest(`.${swiper.params.slideClass}, swiper-slide`);\n    if (!slideEl || !swiper.slides.includes(slideEl)) return;\n    focusTargetSlideEl = slideEl;\n    const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n    const isActive = (isVirtual ? parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10) : swiper.slides.indexOf(slideEl)) === swiper.activeIndex;\n    const isVisible = swiper.params.watchSlidesProgress && swiper.visibleSlides && swiper.visibleSlides.includes(slideEl);\n    if (isActive || isVisible) return;\n    if (e.sourceCapabilities && e.sourceCapabilities.firesTouchEvents) return;\n    if (swiper.isHorizontal()) {\n      swiper.el.scrollLeft = 0;\n    } else {\n      swiper.el.scrollTop = 0;\n    }\n    requestAnimationFrame(() => {\n      if (preventFocusHandler) return;\n      if (swiper.params.loop) {\n        swiper.slideToLoop(swiper.getSlideIndexWhenGrid(parseInt(slideEl.getAttribute('data-swiper-slide-index'))), 0);\n      } else if (isVirtual) {\n        swiper.slideTo(swiper.getSlideIndexWhenGrid(parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10)), 0);\n      } else {\n        swiper.slideTo(swiper.getSlideIndexWhenGrid(swiper.slides.indexOf(slideEl)), 0);\n      }\n      preventFocusHandler = false;\n    });\n  };\n  const initSlides = () => {\n    const params = swiper.params.a11y;\n    if (params.itemRoleDescriptionMessage) {\n      addElRoleDescription(swiper.slides, params.itemRoleDescriptionMessage);\n    }\n    if (params.slideRole) {\n      addElRole(swiper.slides, params.slideRole);\n    }\n    const slidesLength = swiper.slides.length;\n    if (params.slideLabelMessage) {\n      swiper.slides.forEach((slideEl, index) => {\n        const slideIndex = swiper.params.loop ? parseInt(slideEl.getAttribute('data-swiper-slide-index'), 10) : index;\n        const ariaLabelMessage = params.slideLabelMessage.replace(/\\{\\{index\\}\\}/, slideIndex + 1).replace(/\\{\\{slidesLength\\}\\}/, slidesLength);\n        addElLabel(slideEl, ariaLabelMessage);\n      });\n    }\n  };\n  const init = () => {\n    const params = swiper.params.a11y;\n    swiper.el.append(liveRegion);\n\n    // Container\n    const containerEl = swiper.el;\n    if (params.containerRoleDescriptionMessage) {\n      addElRoleDescription(containerEl, params.containerRoleDescriptionMessage);\n    }\n    if (params.containerMessage) {\n      addElLabel(containerEl, params.containerMessage);\n    }\n    if (params.containerRole) {\n      addElRole(containerEl, params.containerRole);\n    }\n\n    // Wrapper\n    const wrapperEl = swiper.wrapperEl;\n    const wrapperId = params.id || wrapperEl.getAttribute('id') || `swiper-wrapper-${getRandomNumber(16)}`;\n    addElId(wrapperEl, wrapperId);\n    if (params.wrapperLiveRegion) {\n      const live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n      addElLive(wrapperEl, live);\n    }\n\n    // Slide\n    initSlides();\n\n    // Navigation\n    let {\n      nextEl,\n      prevEl\n    } = swiper.navigation ? swiper.navigation : {};\n    nextEl = makeElementsArray(nextEl);\n    prevEl = makeElementsArray(prevEl);\n    if (nextEl) {\n      nextEl.forEach(el => initNavEl(el, wrapperId, params.nextSlideMessage));\n    }\n    if (prevEl) {\n      prevEl.forEach(el => initNavEl(el, wrapperId, params.prevSlideMessage));\n    }\n\n    // Pagination\n    if (hasClickablePagination()) {\n      const paginationEl = makeElementsArray(swiper.pagination.el);\n      paginationEl.forEach(el => {\n        el.addEventListener('keydown', onEnterOrSpaceKey);\n      });\n    }\n\n    // Tab focus\n    const document = getDocument();\n    document.addEventListener('visibilitychange', onVisibilityChange);\n    swiper.el.addEventListener('focus', handleFocus, true);\n    swiper.el.addEventListener('pointerdown', handlePointerDown, true);\n    swiper.el.addEventListener('pointerup', handlePointerUp, true);\n  };\n  function destroy() {\n    if (liveRegion) liveRegion.remove();\n    let {\n      nextEl,\n      prevEl\n    } = swiper.navigation ? swiper.navigation : {};\n    nextEl = makeElementsArray(nextEl);\n    prevEl = makeElementsArray(prevEl);\n    if (nextEl) {\n      nextEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));\n    }\n    if (prevEl) {\n      prevEl.forEach(el => el.removeEventListener('keydown', onEnterOrSpaceKey));\n    }\n\n    // Pagination\n    if (hasClickablePagination()) {\n      const paginationEl = makeElementsArray(swiper.pagination.el);\n      paginationEl.forEach(el => {\n        el.removeEventListener('keydown', onEnterOrSpaceKey);\n      });\n    }\n    const document = getDocument();\n    document.removeEventListener('visibilitychange', onVisibilityChange);\n    // Tab focus\n    if (swiper.el && typeof swiper.el !== 'string') {\n      swiper.el.removeEventListener('focus', handleFocus, true);\n      swiper.el.removeEventListener('pointerdown', handlePointerDown, true);\n      swiper.el.removeEventListener('pointerup', handlePointerUp, true);\n    }\n  }\n  on('beforeInit', () => {\n    liveRegion = createElement('span', swiper.params.a11y.notificationClass);\n    liveRegion.setAttribute('aria-live', 'assertive');\n    liveRegion.setAttribute('aria-atomic', 'true');\n  });\n  on('afterInit', () => {\n    if (!swiper.params.a11y.enabled) return;\n    init();\n  });\n  on('slidesLengthChange snapGridLengthChange slidesGridLengthChange', () => {\n    if (!swiper.params.a11y.enabled) return;\n    initSlides();\n  });\n  on('fromEdge toEdge afterInit lock unlock', () => {\n    if (!swiper.params.a11y.enabled) return;\n    updateNavigation();\n  });\n  on('paginationUpdate', () => {\n    if (!swiper.params.a11y.enabled) return;\n    updatePagination();\n  });\n  on('destroy', () => {\n    if (!swiper.params.a11y.enabled) return;\n    destroy();\n  });\n}\n\nexport { A11y as default };\n", "import { g as getDocument } from '../shared/ssr-window.esm.mjs';\n\n/* eslint no-underscore-dangle: \"off\" */\n/* eslint no-use-before-define: \"off\" */\nfunction Autoplay({\n  swiper,\n  extendParams,\n  on,\n  emit,\n  params\n}) {\n  swiper.autoplay = {\n    running: false,\n    paused: false,\n    timeLeft: 0\n  };\n  extendParams({\n    autoplay: {\n      enabled: false,\n      delay: 3000,\n      waitForTransition: true,\n      disableOnInteraction: false,\n      stopOnLastSlide: false,\n      reverseDirection: false,\n      pauseOnMouseEnter: false\n    }\n  });\n  let timeout;\n  let raf;\n  let autoplayDelayTotal = params && params.autoplay ? params.autoplay.delay : 3000;\n  let autoplayDelayCurrent = params && params.autoplay ? params.autoplay.delay : 3000;\n  let autoplayTimeLeft;\n  let autoplayStartTime = new Date().getTime();\n  let wasPaused;\n  let isTouched;\n  let pausedByTouch;\n  let touchStartTimeout;\n  let pausedByInteraction;\n  let pausedByPointerEnter;\n  function onTransitionEnd(e) {\n    if (!swiper || swiper.destroyed || !swiper.wrapperEl) return;\n    if (e.target !== swiper.wrapperEl) return;\n    swiper.wrapperEl.removeEventListener('transitionend', onTransitionEnd);\n    if (pausedByPointerEnter || e.detail && e.detail.bySwiperTouchMove) {\n      return;\n    }\n    resume();\n  }\n  const calcTimeLeft = () => {\n    if (swiper.destroyed || !swiper.autoplay.running) return;\n    if (swiper.autoplay.paused) {\n      wasPaused = true;\n    } else if (wasPaused) {\n      autoplayDelayCurrent = autoplayTimeLeft;\n      wasPaused = false;\n    }\n    const timeLeft = swiper.autoplay.paused ? autoplayTimeLeft : autoplayStartTime + autoplayDelayCurrent - new Date().getTime();\n    swiper.autoplay.timeLeft = timeLeft;\n    emit('autoplayTimeLeft', timeLeft, timeLeft / autoplayDelayTotal);\n    raf = requestAnimationFrame(() => {\n      calcTimeLeft();\n    });\n  };\n  const getSlideDelay = () => {\n    let activeSlideEl;\n    if (swiper.virtual && swiper.params.virtual.enabled) {\n      activeSlideEl = swiper.slides.find(slideEl => slideEl.classList.contains('swiper-slide-active'));\n    } else {\n      activeSlideEl = swiper.slides[swiper.activeIndex];\n    }\n    if (!activeSlideEl) return undefined;\n    const currentSlideDelay = parseInt(activeSlideEl.getAttribute('data-swiper-autoplay'), 10);\n    return currentSlideDelay;\n  };\n  const getTotalDelay = () => {\n    let totalDelay = swiper.params.autoplay.delay;\n    const currentSlideDelay = getSlideDelay();\n    if (!Number.isNaN(currentSlideDelay) && currentSlideDelay > 0) {\n      totalDelay = currentSlideDelay;\n    }\n    return totalDelay;\n  };\n  const run = delayForce => {\n    if (swiper.destroyed || !swiper.autoplay.running) return;\n    cancelAnimationFrame(raf);\n    calcTimeLeft();\n    let delay = delayForce;\n    if (typeof delay === 'undefined') {\n      delay = getTotalDelay();\n      autoplayDelayTotal = delay;\n      autoplayDelayCurrent = delay;\n    }\n    autoplayTimeLeft = delay;\n    const speed = swiper.params.speed;\n    const proceed = () => {\n      if (!swiper || swiper.destroyed) return;\n      if (swiper.params.autoplay.reverseDirection) {\n        if (!swiper.isBeginning || swiper.params.loop || swiper.params.rewind) {\n          swiper.slidePrev(speed, true, true);\n          emit('autoplay');\n        } else if (!swiper.params.autoplay.stopOnLastSlide) {\n          swiper.slideTo(swiper.slides.length - 1, speed, true, true);\n          emit('autoplay');\n        }\n      } else {\n        if (!swiper.isEnd || swiper.params.loop || swiper.params.rewind) {\n          swiper.slideNext(speed, true, true);\n          emit('autoplay');\n        } else if (!swiper.params.autoplay.stopOnLastSlide) {\n          swiper.slideTo(0, speed, true, true);\n          emit('autoplay');\n        }\n      }\n      if (swiper.params.cssMode) {\n        autoplayStartTime = new Date().getTime();\n        requestAnimationFrame(() => {\n          run();\n        });\n      }\n    };\n    if (delay > 0) {\n      clearTimeout(timeout);\n      timeout = setTimeout(() => {\n        proceed();\n      }, delay);\n    } else {\n      requestAnimationFrame(() => {\n        proceed();\n      });\n    }\n\n    // eslint-disable-next-line\n    return delay;\n  };\n  const start = () => {\n    autoplayStartTime = new Date().getTime();\n    swiper.autoplay.running = true;\n    run();\n    emit('autoplayStart');\n  };\n  const stop = () => {\n    swiper.autoplay.running = false;\n    clearTimeout(timeout);\n    cancelAnimationFrame(raf);\n    emit('autoplayStop');\n  };\n  const pause = (internal, reset) => {\n    if (swiper.destroyed || !swiper.autoplay.running) return;\n    clearTimeout(timeout);\n    if (!internal) {\n      pausedByInteraction = true;\n    }\n    const proceed = () => {\n      emit('autoplayPause');\n      if (swiper.params.autoplay.waitForTransition) {\n        swiper.wrapperEl.addEventListener('transitionend', onTransitionEnd);\n      } else {\n        resume();\n      }\n    };\n    swiper.autoplay.paused = true;\n    if (reset) {\n      proceed();\n      return;\n    }\n    const delay = autoplayTimeLeft || swiper.params.autoplay.delay;\n    autoplayTimeLeft = delay - (new Date().getTime() - autoplayStartTime);\n    if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop) return;\n    if (autoplayTimeLeft < 0) autoplayTimeLeft = 0;\n    proceed();\n  };\n  const resume = () => {\n    if (swiper.isEnd && autoplayTimeLeft < 0 && !swiper.params.loop || swiper.destroyed || !swiper.autoplay.running) return;\n    autoplayStartTime = new Date().getTime();\n    if (pausedByInteraction) {\n      pausedByInteraction = false;\n      run(autoplayTimeLeft);\n    } else {\n      run();\n    }\n    swiper.autoplay.paused = false;\n    emit('autoplayResume');\n  };\n  const onVisibilityChange = () => {\n    if (swiper.destroyed || !swiper.autoplay.running) return;\n    const document = getDocument();\n    if (document.visibilityState === 'hidden') {\n      pausedByInteraction = true;\n      pause(true);\n    }\n    if (document.visibilityState === 'visible') {\n      resume();\n    }\n  };\n  const onPointerEnter = e => {\n    if (e.pointerType !== 'mouse') return;\n    pausedByInteraction = true;\n    pausedByPointerEnter = true;\n    if (swiper.animating || swiper.autoplay.paused) return;\n    pause(true);\n  };\n  const onPointerLeave = e => {\n    if (e.pointerType !== 'mouse') return;\n    pausedByPointerEnter = false;\n    if (swiper.autoplay.paused) {\n      resume();\n    }\n  };\n  const attachMouseEvents = () => {\n    if (swiper.params.autoplay.pauseOnMouseEnter) {\n      swiper.el.addEventListener('pointerenter', onPointerEnter);\n      swiper.el.addEventListener('pointerleave', onPointerLeave);\n    }\n  };\n  const detachMouseEvents = () => {\n    if (swiper.el && typeof swiper.el !== 'string') {\n      swiper.el.removeEventListener('pointerenter', onPointerEnter);\n      swiper.el.removeEventListener('pointerleave', onPointerLeave);\n    }\n  };\n  const attachDocumentEvents = () => {\n    const document = getDocument();\n    document.addEventListener('visibilitychange', onVisibilityChange);\n  };\n  const detachDocumentEvents = () => {\n    const document = getDocument();\n    document.removeEventListener('visibilitychange', onVisibilityChange);\n  };\n  on('init', () => {\n    if (swiper.params.autoplay.enabled) {\n      attachMouseEvents();\n      attachDocumentEvents();\n      start();\n    }\n  });\n  on('destroy', () => {\n    detachMouseEvents();\n    detachDocumentEvents();\n    if (swiper.autoplay.running) {\n      stop();\n    }\n  });\n  on('_freeModeStaticRelease', () => {\n    if (pausedByTouch || pausedByInteraction) {\n      resume();\n    }\n  });\n  on('_freeModeNoMomentumRelease', () => {\n    if (!swiper.params.autoplay.disableOnInteraction) {\n      pause(true, true);\n    } else {\n      stop();\n    }\n  });\n  on('beforeTransitionStart', (_s, speed, internal) => {\n    if (swiper.destroyed || !swiper.autoplay.running) return;\n    if (internal || !swiper.params.autoplay.disableOnInteraction) {\n      pause(true, true);\n    } else {\n      stop();\n    }\n  });\n  on('sliderFirstMove', () => {\n    if (swiper.destroyed || !swiper.autoplay.running) return;\n    if (swiper.params.autoplay.disableOnInteraction) {\n      stop();\n      return;\n    }\n    isTouched = true;\n    pausedByTouch = false;\n    pausedByInteraction = false;\n    touchStartTimeout = setTimeout(() => {\n      pausedByInteraction = true;\n      pausedByTouch = true;\n      pause(true);\n    }, 200);\n  });\n  on('touchEnd', () => {\n    if (swiper.destroyed || !swiper.autoplay.running || !isTouched) return;\n    clearTimeout(touchStartTimeout);\n    clearTimeout(timeout);\n    if (swiper.params.autoplay.disableOnInteraction) {\n      pausedByTouch = false;\n      isTouched = false;\n      return;\n    }\n    if (pausedByTouch && swiper.params.cssMode) resume();\n    pausedByTouch = false;\n    isTouched = false;\n  });\n  on('slideChange', () => {\n    if (swiper.destroyed || !swiper.autoplay.running) return;\n    if (swiper.autoplay.paused) {\n      autoplayTimeLeft = getTotalDelay();\n      autoplayDelayTotal = getTotalDelay();\n    }\n  });\n  Object.assign(swiper.autoplay, {\n    start,\n    stop,\n    pause,\n    resume\n  });\n}\n\nexport { Autoplay as default };\n", "import { s as setInnerHTML } from '../shared/utils.mjs';\n\nfunction appendSlide(slides) {\n  const swiper = this;\n  const {\n    params,\n    slidesEl\n  } = swiper;\n  if (params.loop) {\n    swiper.loopDestroy();\n  }\n  const appendElement = slideEl => {\n    if (typeof slideEl === 'string') {\n      const tempDOM = document.createElement('div');\n      setInnerHTML(tempDOM, slideEl);\n      slidesEl.append(tempDOM.children[0]);\n      setInnerHTML(tempDOM, '');\n    } else {\n      slidesEl.append(slideEl);\n    }\n  };\n  if (typeof slides === 'object' && 'length' in slides) {\n    for (let i = 0; i < slides.length; i += 1) {\n      if (slides[i]) appendElement(slides[i]);\n    }\n  } else {\n    appendElement(slides);\n  }\n  swiper.recalcSlides();\n  if (params.loop) {\n    swiper.loopCreate();\n  }\n  if (!params.observer || swiper.isElement) {\n    swiper.update();\n  }\n}\n\nfunction prependSlide(slides) {\n  const swiper = this;\n  const {\n    params,\n    activeIndex,\n    slidesEl\n  } = swiper;\n  if (params.loop) {\n    swiper.loopDestroy();\n  }\n  let newActiveIndex = activeIndex + 1;\n  const prependElement = slideEl => {\n    if (typeof slideEl === 'string') {\n      const tempDOM = document.createElement('div');\n      setInnerHTML(tempDOM, slideEl);\n      slidesEl.prepend(tempDOM.children[0]);\n      setInnerHTML(tempDOM, '');\n    } else {\n      slidesEl.prepend(slideEl);\n    }\n  };\n  if (typeof slides === 'object' && 'length' in slides) {\n    for (let i = 0; i < slides.length; i += 1) {\n      if (slides[i]) prependElement(slides[i]);\n    }\n    newActiveIndex = activeIndex + slides.length;\n  } else {\n    prependElement(slides);\n  }\n  swiper.recalcSlides();\n  if (params.loop) {\n    swiper.loopCreate();\n  }\n  if (!params.observer || swiper.isElement) {\n    swiper.update();\n  }\n  swiper.slideTo(newActiveIndex, 0, false);\n}\n\nfunction addSlide(index, slides) {\n  const swiper = this;\n  const {\n    params,\n    activeIndex,\n    slidesEl\n  } = swiper;\n  let activeIndexBuffer = activeIndex;\n  if (params.loop) {\n    activeIndexBuffer -= swiper.loopedSlides;\n    swiper.loopDestroy();\n    swiper.recalcSlides();\n  }\n  const baseLength = swiper.slides.length;\n  if (index <= 0) {\n    swiper.prependSlide(slides);\n    return;\n  }\n  if (index >= baseLength) {\n    swiper.appendSlide(slides);\n    return;\n  }\n  let newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n  const slidesBuffer = [];\n  for (let i = baseLength - 1; i >= index; i -= 1) {\n    const currentSlide = swiper.slides[i];\n    currentSlide.remove();\n    slidesBuffer.unshift(currentSlide);\n  }\n  if (typeof slides === 'object' && 'length' in slides) {\n    for (let i = 0; i < slides.length; i += 1) {\n      if (slides[i]) slidesEl.append(slides[i]);\n    }\n    newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n  } else {\n    slidesEl.append(slides);\n  }\n  for (let i = 0; i < slidesBuffer.length; i += 1) {\n    slidesEl.append(slidesBuffer[i]);\n  }\n  swiper.recalcSlides();\n  if (params.loop) {\n    swiper.loopCreate();\n  }\n  if (!params.observer || swiper.isElement) {\n    swiper.update();\n  }\n  if (params.loop) {\n    swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n  } else {\n    swiper.slideTo(newActiveIndex, 0, false);\n  }\n}\n\nfunction removeSlide(slidesIndexes) {\n  const swiper = this;\n  const {\n    params,\n    activeIndex\n  } = swiper;\n  let activeIndexBuffer = activeIndex;\n  if (params.loop) {\n    activeIndexBuffer -= swiper.loopedSlides;\n    swiper.loopDestroy();\n  }\n  let newActiveIndex = activeIndexBuffer;\n  let indexToRemove;\n  if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n    for (let i = 0; i < slidesIndexes.length; i += 1) {\n      indexToRemove = slidesIndexes[i];\n      if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();\n      if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n    }\n    newActiveIndex = Math.max(newActiveIndex, 0);\n  } else {\n    indexToRemove = slidesIndexes;\n    if (swiper.slides[indexToRemove]) swiper.slides[indexToRemove].remove();\n    if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n    newActiveIndex = Math.max(newActiveIndex, 0);\n  }\n  swiper.recalcSlides();\n  if (params.loop) {\n    swiper.loopCreate();\n  }\n  if (!params.observer || swiper.isElement) {\n    swiper.update();\n  }\n  if (params.loop) {\n    swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n  } else {\n    swiper.slideTo(newActiveIndex, 0, false);\n  }\n}\n\nfunction removeAllSlides() {\n  const swiper = this;\n  const slidesIndexes = [];\n  for (let i = 0; i < swiper.slides.length; i += 1) {\n    slidesIndexes.push(i);\n  }\n  swiper.removeSlide(slidesIndexes);\n}\n\nfunction Manipulation({\n  swiper\n}) {\n  Object.assign(swiper, {\n    appendSlide: appendSlide.bind(swiper),\n    prependSlide: prependSlide.bind(swiper),\n    addSlide: addSlide.bind(swiper),\n    removeSlide: removeSlide.bind(swiper),\n    removeAllSlides: removeAllSlides.bind(swiper)\n  });\n}\n\nexport { Manipulation as default };\n", "import { i18n } from '@moxiltd/moxijs/src/i18n.js';\nimport Swiper from 'swiper';\nimport { A11y, Autoplay, Keyboard, Manipulation, Mousewheel, Navigation, Pagination, Virtual } from 'swiper/modules';\nimport type { SwiperOptions } from 'swiper/types';\nimport { BaseComponent } from './baseComponent.js';\n\nexport class Slider extends BaseComponent {\n    public static defaultOptions: SwiperOptions & Record<string, any> = { ...BaseComponent.defaultOptions };\n    private slider: Swiper;\n    private slides: HTMLElement[];\n\n    connectedCallback() {\n        this.options = { ...Slider.defaultOptions, ...this.getDefaultOptions(), ...this.options };\n        this.slider = new Swiper(this.children[0] as HTMLElement, this.options);\n        this.slides = Array.from(this.querySelectorAll('.swiper-slide')) as HTMLElement[];\n\n        this.slides.forEach((slide: HTMLElement) => {\n            document.querySelectorAll(`[href=\"#${slide.id}\"], [data-href=\"#${slide.id}\"]`).forEach(linkTrigger => {\n                linkTrigger.addEventListener('click', (event: Event): void => {\n                    event.preventDefault();\n                    this.open(slide);\n                });\n            });\n\n            slide.addEventListener('open', (_event: Event): void => {\n                this.open(slide);\n            });\n        });\n\n        super.connectedCallback();\n    }\n\n    disconnectedCallback() {\n        super.disconnectedCallback();\n        this.slider.destroy();\n    }\n\n    public getDefaultOptions(): SwiperOptions {\n        return {\n            modules: [Pagination, Keyboard, Virtual, Navigation, Autoplay, Manipulation, A11y, Mousewheel],\n            loop: true,\n            keyboard: {\n                enabled: true,\n            },\n            navigation: {\n                nextEl: this.querySelector('.swiper-button-next') as HTMLElement,\n                prevEl: this.querySelector('.swiper-button-prev') as HTMLElement,\n            },\n            pagination: {\n                el: this.querySelector('.swiper-pagination') as HTMLElement,\n                clickable: true,\n                type: 'bullets',\n            },\n            a11y: {\n                firstSlideMessage: i18n.t('sr.first_slide'),\n                lastSlideMessage: i18n.t('sr.last_slide'),\n                prevSlideMessage: i18n.t('sr.prev_slide'),\n                nextSlideMessage: i18n.t('sr.next_slide'),\n                slideRole: 'alert',\n            },\n            on: {\n                // prevent focus outside of active panel\n                slideChange: (slider: Swiper): void => {\n                    this.slideChange(slider);\n                },\n                // set bullet labels\n                init: (slider: Swiper): void => {\n                    if (slider.pagination.el === null) return;\n\n                    const bullets = this.querySelectorAll('.swiper-pagination-bullet');\n                    slider.slides.forEach((slide, i): void => {\n                        if (typeof slide.dataset.title === 'undefined') return;\n\n                        const label = i18n.t('sr.show_panel_title', slide.dataset.title);\n                        bullets[i].setAttribute('aira-label', label);\n                    });\n                },\n            },\n        };\n    }\n\n    private slideChange(slider: Swiper): void {\n        const activeSlide = slider.slides[slider.activeIndex];\n\n        if (\n            !this.options.breakpoints\n            && (typeof this.options.slidesPerView === 'undefined' || this.options.slidesPerView === 1)\n        ) {\n            slider.slides.forEach(slide => {\n                slide.inert = true;\n            });\n            if (activeSlide) {\n                activeSlide.inert = false;\n\n                if (!document.body.classList.contains('modal-open')) {\n                    activeSlide.focus();\n                }\n            }\n        }\n    }\n\n    public open(element: HTMLElement): void {\n        this.slider.slideTo(parseInt(element.dataset.swiperSlideIndex));\n    }\n}\n\ndeclare global {\n    interface HTMLElementTagNameMap {\n        'moxi-slider': Slider;\n    }\n}\n\nif (!customElements.get('moxi-slider')) {\n    customElements.define('moxi-slider', Slider);\n}\n", "import { BaseComponent } from './baseComponent';\n\nexport class Tabs extends BaseComponent {\n    public static defaultOptions = { ...BaseComponent.defaultOptions };\n    private titles: NodeListOf<HTMLAnchorElement>;\n    private tabs: NodeListOf<HTMLElement>;\n\n    connectedCallback() {\n        super.connectedCallback();\n\n        this.titles = this.querySelectorAll('.tab-title');\n        this.titles.forEach(title => {\n            title.addEventListener('keydown', this.handleKeydown.bind(this));\n        });\n\n        this.tabs = this.querySelectorAll('.tab-content');\n        this.tabs.forEach(tab => {\n            document.querySelectorAll(`[href=\"#${tab.id}\"], [data-href=\"#${tab.id}\"]`).forEach(linkTrigger => {\n                linkTrigger.addEventListener('click', (event: Event): void => {\n                    event.preventDefault();\n                    this.open(tab);\n                });\n            });\n\n            tab.addEventListener('open', (_event: Event): void => {\n                this.open(tab);\n            });\n        });\n    }\n\n    handleKeydown(event: KeyboardEvent): void {\n        const target = event.currentTarget;\n        if (!(target instanceof Element)) return;\n        const first = this.titles[0];\n        const last = this.titles[this.titles.length - 1];\n        let title: HTMLAnchorElement;\n\n        switch (event.key) {\n            case 'ArrowLeft':\n                title = target.closest('li').previousElementSibling\n                    ? target.closest('li').previousElementSibling.querySelector('a')\n                    : last;\n                break;\n\n            case 'ArrowRight':\n                title = target.closest('li').nextElementSibling\n                    ? target.closest('li').nextElementSibling.querySelector('a')\n                    : first;\n                break;\n\n            case 'Home':\n                title = first;\n                break;\n\n            case 'End':\n                title = last;\n                break;\n        }\n        if (title) this.handleChange(title);\n    }\n\n    handleChange(title: HTMLAnchorElement): void {\n        // timeout needed for some browsers\n        setTimeout(() => {\n            title.focus();\n        }, 10);\n\n        if (title.closest('li').classList.contains('is-active')) return;\n\n        this.open(this.querySelector(title.href));\n    }\n\n    open(content: HTMLElement): void {\n        const prevActiveTitle = this.querySelector('.tabs .is-active a');\n        const prevActiveContent = this.querySelector('.tab-content.is-active');\n        const title = this.querySelector(`.tab-title[href=\"#${content.id}\"]`);\n\n        prevActiveTitle.closest('li').classList.remove('is-active');\n        prevActiveTitle.setAttribute('aria-selected', 'false');\n        prevActiveTitle.setAttribute('tabindex', '-1');\n\n        prevActiveContent.classList.remove('is-active');\n        prevActiveContent.setAttribute('inert', 'true');\n\n        title.closest('li').classList.add('is-active');\n        title.setAttribute('aria-selected', 'true');\n        title.setAttribute('tabindex', '0');\n\n        content.classList.add('is-active');\n        content.removeAttribute('inert');\n\n        this.afterOpen(content.id);\n    }\n}\n\ndeclare global {\n    interface HTMLElementTagNameMap {\n        'moxi-tabs': Tabs;\n    }\n}\n\nif (!customElements.get('moxi-tabs')) {\n    customElements.define('moxi-tabs', Tabs);\n}\n", "import type IWidget from '../widget/iwidget.js';\n\nexport class WidgetException extends Error {\n    public widget: IWidget;\n\n    public reason: string;\n\n    public severity: string;\n\n    constructor(widget: IWidget, reason = '', severity = '') {\n        // Pass remaining arguments (including vendor specific ones) to parent constructor\n        super(reason);\n\n        this.widget = widget;\n        this.reason = reason;\n        this.severity = severity;\n    }\n}\n", "import { WidgetException } from '../errors/widgetexception.js';\nimport { i18n } from '../i18n.js';\nimport type IWidget from './iwidget.js';\n\n/**\n * Widget class\n * pseudo interface for implementing widgets\n *\n */\nexport abstract class Widget implements IWidget {\n    /** control element with `[data-widget]` (inside widget template) */\n    public $node: HTMLElement;\n\n    /** actual form element (inside widget template) */\n    public $input: HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement;\n\n    /** an optional container around `$input`. defaults to `$input`. */\n    public $inputContainer: HTMLElement;\n\n    /** the field container which contains the whole row (including field label and body) and `[data-field-name]` */\n    public $field: HTMLElement;\n\n    /** not used yet... idea was to have all error messages at the same place iirc */\n    public $helps: HTMLElement;\n\n    /** if the field can be empty or not */\n    public required: boolean;\n\n    /** save copy required value for showIf */\n    public originalRequiredValue: boolean;\n\n    /** the field language */\n    public lang = '';\n\n    /** the field name */\n    public field = '';\n\n    /** condition for display, e.g. `teaser_active == true` */\n    public showIf: string;\n\n    /**\n     * class constructor\n     * @param $node - widget .field\n     */\n    constructor($node: HTMLElement, args: Record<string, unknown>) {\n        this.$node = $node;\n        this.$input = $node.querySelector('input, select, textarea');\n        this.$inputContainer = $node.querySelector('.input, .select, .textarea');\n        this.required = typeof $node.dataset.required !== 'undefined';\n        this.originalRequiredValue = this.required;\n        this.$helps = $node.parentNode.querySelector('.help');\n        this.$field = $node.closest('[data-field-name]');\n        this.showIf = this.$field?.dataset.showIf;\n        this.field = this.$field?.dataset.field;\n\n        if (this.$inputContainer === null) this.$inputContainer = this.$input;\n\n        Object.assign(this, args);\n    }\n\n    /**\n     * display an information text\n     */\n    displayError(error: string, severity?: string, ...subs: string[]): void {\n        const errorMsg = i18n.has_translation(error) ? i18n.t(error, ...subs) : error;\n        let severityClass = 'is-danger';\n\n        if (severity !== null && typeof severity !== 'undefined') {\n            severityClass = `is-${severity}`;\n        }\n\n        // mark input field\n        this.$inputContainer.classList.add(severityClass);\n\n        // add help container\n        if (this.$node.parentNode.querySelector('.help-container') === null) {\n            (this.$node.parentNode as HTMLElement).insertAdjacentHTML(\n                'beforeend',\n                '<div class=\"help-container\"></div>',\n            );\n        }\n\n        // add help text\n        const $helpContainer = this.$node.parentNode.querySelector('.help-container');\n        $helpContainer.insertAdjacentHTML('beforeend', `<p class=\"help ${severityClass}\">${errorMsg}</p>`);\n\n        // throw Error\n        throw new WidgetException(this, errorMsg, severity);\n    }\n\n    /**\n     * clear all widget errors and warnings\n     */\n    clearError(): Widget {\n        const classesToRemove = ['is-danger', 'is-warning', 'is-info', 'is-success'];\n\n        // remove error classes from input container\n        this.$inputContainer.classList.remove(...classesToRemove);\n\n        this.$helps = this.$node.parentNode.querySelector('.help-container'); // refresh $helps\n\n        if (this.$helps !== null) {\n            this.$helps.remove();\n        }\n        return this;\n    }\n\n    /**\n     * validates the widget.\n     */\n    async validate(): Promise<boolean> {\n        return true;\n    }\n\n    /**\n     * is called by the frontend form if some validations failed (front- or backend)\n     * you can use this to e.g. reload a widget or reset it.\n     */\n    async refresh(): Promise<void> {\n        // by default no logic\n    }\n\n    /**\n     */\n    async preUploadTask(): Promise<boolean> {\n        return true;\n    }\n\n    /**\n     * getValue stub\n     */\n    async getValue(): Promise<any> {\n        throw new Error('You have to implement the method getValue!');\n    }\n\n    /**\n     * default event listener\n     */\n    listen(action: string, fn: (e: Event) => void): void {\n        if (this.$input !== null && typeof this.$input.addEventListener === 'function') {\n            this.$input.addEventListener(action, fn);\n        }\n    }\n\n    /**\n     * get the widget's field name for storage\n     * @returns string\n     */\n    getStorageName(): string {\n        if (this.lang === '') {\n            return this.$node.dataset.widgetName;\n        }\n        // this is really ugly\n        return this.$node.dataset.widgetName.split('[').pop().split(']').shift();\n    }\n}\n", "import type IWidget from './iwidget.js';\nimport { Widget } from './widget.js';\nimport type { WidgetIndex } from './widgetIndex.js';\n\ntype ShowIf = {\n    field: string;\n    op: string;\n    value: any;\n};\n\ntype Observable = {\n    observedWidget: IWidget;\n    toggleableWidget: IWidget;\n    showIf: ShowIf;\n};\n\n/**\n * This is a fake widget that is used to resolve the values of special ShowIfs like `settings.foo` or `params.bar`.\n */\nexport class WidgetLike extends Widget {\n    parsedShowIf: ShowIf;\n\n    constructor($node: HTMLElement, args: Record<string, unknown>) {\n        super($node, args);\n\n        const [cat, field] = this.parsedShowIf.field.split('.', 2);\n        if (!['settings', 'params'].includes(cat)) {\n            console.log('WidgetToggler: invalid category', cat);\n        }\n    }\n    async getValue(): Promise<unknown> {\n        const [cat, ...field] = this.parsedShowIf.field.split('.');\n        if (cat === 'settings') {\n            // field can contain a dot, e.g. \"settings.user.name\"\n            // resolve it by splitting the field and accessing the multi-level object\n            let value: unknown = window.settings;\n            for (const key of field) {\n                if (typeof value[key as keyof typeof value] === 'undefined') {\n                    console.log('WidgetToggler: could not find setting', key);\n                    return '';\n                }\n                value = value[key as keyof typeof value];\n            }\n            return value ?? '';\n        }\n        if (cat === 'params') {\n            const params = new URLSearchParams(window.location.search);\n            return params.get(field.join()) ?? window.params[field.join()] ?? ''; // todo test\n        }\n\n        return '';\n    }\n}\n\n/**\n * The WidgetToggler parses the `@ShowIf` annotations and hides/shows fields depending on another field\u2019s value.\n * `WidgetIndex` calls `observe()` for all widgets and `process()` after that.\n */\nexport class WidgetToggler {\n    index: WidgetIndex;\n    observables: Observable[] = [];\n\n    constructor(index: WidgetIndex) {\n        this.index = index;\n    }\n\n    observe(w: IWidget): void {\n        const showIfs = WidgetToggler.parseShowIf(w);\n        if (showIfs.length === 0) return;\n\n        for (const showIf of showIfs) {\n            if (showIf.field.includes('.')) {\n                const fakeWidget = new WidgetLike(document.documentElement, { parsedShowIf: showIf });\n                this.observables.push({\n                    observedWidget: fakeWidget,\n                    toggleableWidget: w,\n                    showIf,\n                });\n                continue;\n            }\n            const field = this.index.findWidget(showIf.field, w.lang, true);\n\n            if (field === false) {\n                console.log('WidgetToggler: could not find widget', showIf.field);\n                continue;\n            }\n\n            this.observables.push({\n                observedWidget: field,\n                toggleableWidget: w,\n                showIf,\n            });\n        }\n    }\n\n    process(): void {\n        this.observables.forEach(o => {\n            o.observedWidget.listen('change', () => WidgetToggler.handleChange(o, this.index));\n\n            // execute once\n            WidgetToggler.handleChange(o, this.index);\n        });\n    }\n\n    /**\n     * This function is called when the observed widget changes.\n     * It evaluates the condition and shows/hides the toggleable widget.\n     * BEWARE: When adding new conditions, also update `ShowIf` php file.\n     */\n    static async handleChange(observable: Observable, _index: WidgetIndex): Promise<void> {\n        const val = await observable.observedWidget.getValue();\n        // special types like object (but not null), function, symbol are converted to JSON\n        const isSpecial = ['object', 'function', 'symbol'].includes(typeof val) && val !== null;\n        const jsonVal = JSON.stringify(val);\n        let show = false;\n\n        if (observable.showIf.op === '==') {\n            const mightBeNumber = parseInt(observable.showIf.value);\n            if (!Number.isNaN(mightBeNumber)) {\n                show = (parseInt(val) || 0) === mightBeNumber;\n            } else if (isSpecial) {\n                show = jsonVal === observable.showIf.value;\n            } else {\n                // biome-ignore lint/suspicious/noDoubleEquals: intentional loose comparison for widget toggling\n                show = val == observable.showIf.value;\n            }\n        } else if (observable.showIf.op === '!=') {\n            if (isSpecial) {\n                show = jsonVal !== observable.showIf.value;\n            } else {\n                // biome-ignore lint/suspicious/noDoubleEquals: intentional loose comparison for widget toggling\n                show = val != observable.showIf.value;\n            }\n        } else if (observable.showIf.op === '>') {\n            show = (parseInt(val) ?? 0) > parseInt(observable.showIf.value);\n        } else if (observable.showIf.op === '>=') {\n            show = (parseInt(val) ?? 0) >= parseInt(observable.showIf.value);\n        } else if (observable.showIf.op === '<') {\n            show = (parseInt(val) ?? 0) < parseInt(observable.showIf.value);\n        } else if (observable.showIf.op === '<=') {\n            show = (parseInt(val) ?? 0) <= parseInt(observable.showIf.value);\n        } else if (observable.showIf.op === '^=') {\n            // starts with\n            show = (typeof val === 'string' ? val : jsonVal).startsWith(observable.showIf.value);\n        } else if (observable.showIf.op === '$=') {\n            // ends with\n            show = (typeof val === 'string' ? val : jsonVal).endsWith(observable.showIf.value);\n        } else if (observable.showIf.op === '*=') {\n            // contains\n            show = (typeof val === 'string' ? val : jsonVal).includes(observable.showIf.value);\n        } else if (observable.showIf.op === 'matches' && observable.showIf.value instanceof RegExp) {\n            // matches\n            show = observable.showIf.value.test(typeof val === 'string' ? val : jsonVal);\n        } else {\n            console.warn('not a valid toggle condition:', Object.values(observable.showIf).join(' '));\n            show = true;\n        }\n\n        // set required of toggled widget\n        const required = show ? observable.toggleableWidget.originalRequiredValue : false;\n        observable.toggleableWidget.required = required;\n        // keep the DOM in sync: the input's native attribute (for browser validation)\n        // and the widget node's `data-required` attribute (read on (re)initialisation)\n        observable.toggleableWidget.$input?.toggleAttribute('required', required);\n        observable.toggleableWidget.$node?.toggleAttribute('data-required', required);\n        observable.toggleableWidget.$field.classList.toggle('is-hidden', !show);\n    }\n\n    static parseShowIf(w: IWidget): ShowIf[] {\n        const condition = w.showIf;\n        if (typeof condition === 'undefined') return [];\n\n        // split conditions by or, and, || and &&\n        const orConditions = condition\n            .split(/ (or|\\|\\|) /gi)\n            .map(c => c.trim())\n            .filter(c => c !== 'or' && c !== '||');\n        const andConditions = condition\n            .split(/ (and|&&) /gi)\n            .map(c => c.trim())\n            .filter(c => c !== 'and' && c !== '&&');\n        if (andConditions.length > 1) {\n            console.warn('WidgetToggler: \"and\" conditions are not supported yet');\n        }\n        const showIfs: ShowIf[] = [];\n        orConditions.forEach((c, _i) => {\n            let [field, op, value]: any = c.split(' ');\n            if (value === 'true') value = true;\n            if (value === 'false') value = false;\n            if (value === 'null') value = null;\n            if (op === 'matches') {\n                try {\n                    value = new RegExp(value, 'i');\n                } catch (e: any) {\n                    console.warn(`invalid regex: ${value}`);\n                }\n            }\n\n            showIfs.push({ field, op, value });\n        });\n\n        return showIfs;\n    }\n}\n", "import type { WidgetException } from '../errors/widgetexception.js';\nimport type IWidget from './iwidget.js';\nimport { WidgetToggler } from './widgetToggler.js';\n\n/**\n * Registry mapping a scope key to its WidgetIndex.\n * Keys: 'general' for the main form, 'pwg-{id}' for each widget group form.\n */\nexport const widgetIndexRegistry = new Map<string, WidgetIndex>();\n\nexport type WidgetValidationError = {\n    widget: string;\n    valid: boolean;\n    lang: string;\n    value: unknown;\n    errors: string[];\n};\n\n/**\n * WidgetIndex holds the widgets for a form.\n * It is responsible for validating, getting values and toggling the display state via WidgetToggler.\n */\nexport class WidgetIndex {\n    public widgets: Array<IWidget> = [];\n    public toggler: WidgetToggler;\n\n    constructor() {\n        this.toggler = new WidgetToggler(this);\n    }\n\n    addWidget(widget: IWidget): void {\n        this.widgets.push(widget);\n\n        // listen to widget changes\n        widget.listen('change', async () => {\n            await WidgetIndex.validateSingle(widget);\n        });\n    }\n\n    clear(): void {\n        this.widgets = [];\n    }\n\n    /**\n     * gets an array of objects: `[{name: widget_name, value: widget_value },...]`\n     */\n    async getValues(widgets: Array<IWidget>): Promise<Map<string, any>> {\n        const promises = widgets.map(async w =>\n            w.getValue().then(\n                x =>\n                    new Map([\n                        ['name', w.getStorageName()],\n                        ['value', x],\n                    ]),\n            ),\n        );\n\n        try {\n            const result = await Promise.all(promises);\n            const values = new Map();\n\n            result.forEach((x: Map<string, any>) => {\n                values.set(x.get('name'), x.get('value'));\n            });\n\n            return values;\n        } catch (e) {\n            console.log(e);\n            return Promise.reject(new Error(\"couldn't get all values: \"));\n        }\n    }\n\n    /**\n     * validates a single widget\n     */\n    static async validateSingle(w: IWidget): Promise<void> {\n        await w.validate();\n    }\n\n    /**\n     * validates all widgets\n     */\n    async validate(): Promise<boolean> {\n        const errors: WidgetException[] = [];\n        const validations = this.widgets.map(async w => w.validate());\n        const validationResults = await Promise.allSettled(validations);\n\n        validationResults.forEach(v => {\n            if (v.status !== 'fulfilled') {\n                const error: WidgetException = v.reason;\n                errors.push(error);\n                WidgetIndex.markFormTab(error.widget.lang, error.severity);\n            }\n        });\n\n        console.log('validation failures:', errors);\n        return errors.length === 0;\n    }\n\n    /**\n     * marks the form tab corresponding to the given language with the given severity class.\n     * if lang is empty, marks the first (general) tab.\n     */\n    static markFormTab(lang: string, severity = 'danger'): void {\n        const formTabs = document.querySelectorAll<HTMLElement>('.tabs li.form-tab');\n        if (lang) {\n            formTabs.forEach(t => {\n                if (t.dataset.lang === lang) t.classList.add(`is-${severity}`);\n            });\n        } else if (formTabs.length > 0) {\n            formTabs[0].classList.add(`is-${severity}`);\n        }\n    }\n\n    /**\n     * runs the preupload task on all widgets\n     */\n    async runPreUploadTasks(): Promise<boolean> {\n        const promises = this.widgets.map(async w => w.preUploadTask());\n\n        const failures = (await Promise.all(promises)).filter(x => x === false);\n        console.log('preupload failures:', failures);\n        return failures.length === 0;\n    }\n\n    /**\n     * find a widget with name and lang\n     * @param name - name of field\n     * @param lang - language of field\n     * @param fallback - will fall back to another language if not found with supplied language\n     */\n    findWidget(name: string, lang?: string, fallback = false): IWidget | false {\n        // try to find with supplied lang\n        let foundWidget = this.widgets.find(w => w.field === name && w.lang === lang) ?? false;\n        // try to find with other lang\n        if (foundWidget === false && fallback === true) {\n            foundWidget = this.widgets.find(w => w.field === name) ?? false;\n        }\n        return foundWidget;\n    }\n\n    /**\n     * use the WidgetToggler to observe widgets (to toggle visibility)\n     */\n    observe(): void {\n        this.widgets.forEach(w => this.toggler.observe(w));\n        this.toggler.process();\n    }\n}\n", "import type { CompleteEntityData } from '../api/adminResourceApi.js';\nimport type { ApiResponse } from '../api/api.js';\nimport { type ApiClient, ApiClientFactory } from '../api/apiclientfactory.js';\nimport type { ResourceApi, ResourceUpdatedResponse } from '../api/resourceApi.js';\nimport type { InvalidInputError } from '../errors/invalidInputError.js';\nimport type { Entity } from '../formats/entity.js';\nimport type { Widget } from '../widget/widget.js';\nimport type { WidgetComponent } from '../widget/widgetComponent.js';\nimport { WidgetIndex, type WidgetValidationError, widgetIndexRegistry } from '../widget/widgetIndex.js';\n\nexport type ResourceSavedEvent = { resourceId: number; resolve: () => void };\n\nexport class Form {\n    private readonly resource: string;\n\n    protected readonly langs: Array<string>;\n\n    protected api: ApiClient;\n\n    private resourceApi: ResourceApi<Entity>;\n\n    private widgets: Record<string, typeof Widget>;\n\n    protected widgetIndex: WidgetIndex;\n\n    /**\n     * @param resource - name of the resource\n     * @param langs - array of present languages\n     * @param apiClient - instance of an ApiClient\n     * @param widgets - available widgets for this form\n     * @param args - additional args to be merged with this\n     */\n    constructor(\n        resource: string,\n        langs: Array<string>,\n        apiClient: ApiClient,\n        widgets: Record<string, typeof Widget>,\n        args?: Record<string, unknown>,\n    ) {\n        this.resource = resource;\n        this.langs = langs;\n        this.api = apiClient;\n        this.resourceApi = this.api.resource<Entity>(this.resource);\n        this.widgets = widgets;\n        this.widgetIndex = new WidgetIndex();\n\n        if (args !== null) Object.assign(this, args);\n\n        this.initWidgets();\n        this.widgetIndex.observe();\n    }\n\n    getDefaultWidgetArgs(): any {\n        return {\n            apiUrl: window.baseUrl,\n            form: this,\n        };\n    }\n\n    filter(controls: NodeList): HTMLElement[] {\n        return Array.from(controls).filter(\n            control => (control.parentNode as HTMLElement).classList.contains('is-widget-group-child') === false,\n        ) as HTMLElement[];\n    }\n\n    /**\n     * creates the widgets, sets the language and adds them to the widgetIndex\n     */\n    initWidgets(formNode?: Element): void {\n        if (formNode === undefined) {\n            widgetIndexRegistry.set('general', this.widgetIndex);\n        }\n\n        const widgetsUnfiltered =\n            typeof formNode !== 'undefined'\n                ? formNode.querySelectorAll('div[data-widget]')\n                : document.querySelectorAll('div[data-widget]');\n        const widgets: HTMLElement[] = this.filter(widgetsUnfiltered);\n\n        widgets.forEach(node => {\n            const data = node.dataset;\n            const args = this.getDefaultWidgetArgs();\n\n            // add language to multilingual widgets\n            if (typeof data.widgetLang !== 'undefined' && data.widgetLang !== '') {\n                args.lang = data.widgetLang;\n            }\n\n            // if widgetname has backslash, assume string is a class with namespace\n            // and therefore take last segment of namespace\n            const widgetClass: typeof Widget =\n                data.widget.indexOf('\\\\') !== -1\n                    ? this.widgets[data.widget.substr(data.widget.lastIndexOf('\\\\') + 1)]\n                    : this.widgets[data.widget];\n\n            // do not ignore widgetComponents\n            if (data.widget === 'component') {\n                const widgetInstance = node.querySelector('[data-component]') as unknown as WidgetComponent;\n                if (widgetInstance !== null) {\n                    this.widgetIndex.addWidget(widgetInstance);\n                } else {\n                    console.log(\n                        `${data.widgetName} (${data.widget}) should have an element containing a [data-component] attribute.`,\n                    );\n                }\n            }\n\n            // create widget instance\n            else if (typeof widgetClass !== 'undefined') {\n                const widgetInstance = new (widgetClass as any)(node, args);\n                if (typeof widgetInstance === 'undefined' || widgetInstance === null) {\n                    console.log(`${data.widgetName} (${data.widget}) could not be instantiated`, widgetClass);\n                }\n                this.widgetIndex.addWidget(widgetInstance);\n            } else {\n                console.log(\n                    `${data.widgetName} (${data.widget}) has no valid javascript class and thus won\u2019t get added to the WidgetIndex`,\n                    widgetClass,\n                );\n            }\n        });\n    }\n\n    async validate(): Promise<boolean> {\n        return this.widgetIndex.validate();\n    }\n\n    async preUploadTasks(): Promise<boolean> {\n        return this.widgetIndex.runPreUploadTasks();\n    }\n\n    /**\n     * gets all non-multilingual widgets\n     */\n    async getValues(): Promise<Map<string, any>> {\n        const allWidgets = this.widgetIndex.widgets;\n\n        // only use widgets that are not multilingual\n        const widgets = allWidgets.filter((w: Widget) => w.lang === '');\n        return this.widgetIndex.getValues(widgets);\n    }\n\n    /**\n     * gets all multilingual widgets\n     */\n    async getMultiLangValues(lang: string): Promise<Map<string, any>> {\n        const allWidgets = this.widgetIndex.widgets;\n\n        // only use widgets that are of the correct language\n        const widgets = allWidgets.filter((w: Widget) => w.lang === lang);\n        return this.widgetIndex.getValues(widgets);\n    }\n\n    /**\n     * validates widgets and posts the values to the api\n     */\n    async send(): Promise<InvalidInputError | boolean | ApiResponse> {\n        if ((await this.validate()) === false) {\n            return false;\n        }\n\n        if ((await this.preUploadTasks()) === false) {\n            return false;\n        }\n\n        const values = await this.getValues();\n        let modelPromise: Promise<ApiResponse<ResourceUpdatedResponse>>;\n        if (values.has('id') && values.get('id') !== 0 && values.get('id') !== null) {\n            modelPromise = this.resourceApi.patch(Object.fromEntries(values.entries()));\n        } else {\n            modelPromise = this.resourceApi.post(Object.fromEntries(values.entries()));\n        }\n\n        return modelPromise\n            .then(async (modelApiResponse: ApiResponse<ResourceUpdatedResponse>) => {\n                const resourceId =\n                    values.has('id') && values.get('id') !== 0 && values.get('id') !== null\n                        ? parseInt(values.get('id'))\n                        : modelApiResponse.data.id;\n\n                // insert languages\n                for (const lang of this.langs) {\n                    const langData = await this.getMultiLangValues(lang);\n                    langData.set('id', resourceId);\n                    await this.resourceApi.patchLanguage(lang, Object.fromEntries(langData.entries()));\n                }\n\n                return this.dispatchSaveEvent(resourceId);\n            })\n            .catch(this.widgetErrorCatcher.bind(this));\n    }\n\n    /**\n     * validates widgets and posts the values to the api\n     */\n    async sendComplete(): Promise<InvalidInputError | boolean | ApiResponse> {\n        if ((await this.validate()) === false) {\n            return false;\n        }\n\n        if ((await this.preUploadTasks()) === false) {\n            return false;\n        }\n\n        const values = await this.getValues();\n        const data: CompleteEntityData = {\n            general: Object.fromEntries(values.entries()),\n            langs: Object.fromEntries(\n                await Promise.all(\n                    this.langs.map(async lang => [\n                        lang,\n                        Object.fromEntries((await this.getMultiLangValues(lang)).entries()),\n                    ]),\n                ),\n            ),\n            misc: {\n                revisionComment:\n                    (document.querySelector('input[name=\"revision_comment\"]') as HTMLInputElement)?.value ?? null,\n            },\n        };\n\n        try {\n            const apiResponse = await ApiClientFactory()\n                .adminResource(this.resourceApi.resource)\n                .saveCompleteEntity(data);\n            const resourceId =\n                values.has('id') && parseInt(values.get('id')) !== 0 && values.get('id') !== null\n                    ? parseInt(values.get('id'))\n                    : apiResponse.data.results.id;\n\n            return this.dispatchSaveEvent(resourceId);\n        } catch (error) {\n            this.widgetErrorCatcher(error);\n            return false;\n        }\n    }\n\n    async dispatchSaveEvent(resourceId: number): Promise<boolean> {\n        // trigger onSave event\n        const widgets = document.querySelectorAll('[data-needs-resource-id]');\n        const createEventPromise = (el: EventTarget, bubbles: boolean): Promise<void> =>\n            new Promise(resolve => {\n                const event = new CustomEvent<ResourceSavedEvent>('resource-saved', {\n                    detail: { resourceId, resolve },\n                    bubbles,\n                });\n                el.dispatchEvent(event);\n            });\n\n        // trigger event on all widgets with data-needs-resource-id\n        for (const widget of widgets) {\n            await createEventPromise(widget, false);\n        }\n\n        // trigger event on document\n        createEventPromise(document, true); // no need to await this one\n\n        return true;\n    }\n\n    /**\n     * annotate widgets with validation error from backend\n     */\n    widgetErrorCatcher(error: InvalidInputError): InvalidInputError {\n        // refresh each widget if implemented\n        this.widgetIndex.widgets.map(async w => w.refresh());\n\n        // reject error if no additional errors defined\n        if (typeof error.errors === 'undefined') {\n            return error;\n        }\n\n        for (let i = 0; i < error.errors.length; i++) {\n            const e: WidgetValidationError = error.errors[i];\n            if (e.valid === true) continue;\n            if (e.errors.length > 0) {\n                const widget = this.widgetIndex.findWidget(e.widget, e.lang);\n                if (widget === false) {\n                    console.log('WidgetIndex could not find ', e.widget, e);\n                } else {\n                    try {\n                        widget.displayError(e.errors.join(', '));\n                    } catch (ex) {\n                        // catch WidgetException\n                    }\n                }\n                WidgetIndex.markFormTab(e.lang ?? '');\n            }\n        }\n\n        return error;\n    }\n\n    getWidgetIndex(): WidgetIndex {\n        return this.widgetIndex;\n    }\n}\n", "import type { ApiResponse } from '../api/api.js';\nimport { type ApiClient, ApiClientFactory } from '../api/apiclientfactory.js';\nimport type { InvalidInputError } from '../errors/invalidInputError.js';\nimport type { Widget } from '../widget/widget.js';\nimport { Form } from './form.js';\n\n/**\n * handle the special case of a form in the frontend\n */\nexport class FrontendForm extends Form {\n    private readonly formName: string;\n    private readonly formId: string;\n\n    /**\n     * @param formName - name of the form\n     * @param apiClient - instance of an ApiClient\n     * @param widgets - available widgets for this form\n     * @param formId - id of the form for multi-form support\n     */\n    constructor(formName: string, apiClient: ApiClient, widgets: Record<string, typeof Widget>, formId: null | string) {\n        // calls initWidgets()\n        super(null, [], apiClient ?? ApiClientFactory(), widgets, {\n            formName,\n            formId,\n        });\n    }\n\n    /**\n     * override initWidgets() to set the parent form before selecting all widgets\n     * should be backwards compatible due to not caring if such parent form is present\n     */\n    initWidgets(_formNode?: HTMLElement) {\n        let parentForm = document.querySelector(`[data-form-id=\"${this.formId}\"]`);\n        if (parentForm === null) {\n            const forms = document.querySelectorAll(`[data-form-name=\"${this.formName}\"]`);\n            if (forms.length === 1) {\n                parentForm = forms[0];\n            } else if (forms.length > 1) {\n                alert(`Multiple forms with name ${this.formName} found.\\nPlease add \"data-form-id\" to the form tags.`);\n            }\n        }\n\n        if (parentForm !== null) {\n            super.initWidgets(parentForm);\n        } else {\n            super.initWidgets();\n        }\n    }\n\n    async send(): Promise<InvalidInputError | boolean | ApiResponse> {\n        if ((await this.validate()) === false) {\n            return false;\n        }\n\n        if ((await this.preUploadTasks()) === false) {\n            return false;\n        }\n\n        const values = await this.getValues();\n\n        return this.api.form.send(this.formName, Object.fromEntries(values)).catch(this.widgetErrorCatcher.bind(this));\n    }\n}\n", "import { Widget } from '../widget/widget.js';\n\nexport class CheckboxWidget extends Widget {\n    getChecked(): NodeList {\n        return this.$node.querySelectorAll('input:checked');\n    }\n\n    async validate(): Promise<boolean> {\n        this.clearError();\n\n        let valid = true;\n\n        if (this.required && this.getChecked().length === 0) {\n            this.displayError('widget.is_required');\n            valid = false;\n        }\n\n        return valid;\n    }\n\n    async getValue(): Promise<string[]> {\n        return Array.from(this.getChecked()).map((v: HTMLInputElement) => v.value);\n    }\n\n    listen(action: string, fn: (e: Event) => void): void {\n        this.$node.querySelectorAll('input').forEach(i => i.addEventListener(action, fn));\n    }\n}\n", "import { Widget } from '../widget/widget.js';\n\nexport class DateWidget extends Widget {\n    /**\n     * Convert a date input value to a backend-compatible literal.\n     * A datetime-local input produces \"YYYY-MM-DDTHH:MM\" (ISO 'T' separator, seconds optional),\n     * which MySQL/MariaDB reject in a WHERE comparison \u2014 rewrite it to \"YYYY-MM-DD HH:MM:SS\".\n     * A date-only input (\"YYYY-MM-DD\") and empty values are returned unchanged.\n     */\n    static toBackendDate(value: string | null): string | null {\n        if (!value || !value.includes('T')) {\n            return value;\n        }\n        const [date, time] = value.split('T');\n        const withSeconds = time.length === 5 ? `${time}:00` : time;\n        return `${date} ${withSeconds}`;\n    }\n\n    async validate(): Promise<boolean> {\n        this.clearError();\n        let valid = true;\n\n        if (this.required && this.$input.value.length === 0) {\n            this.displayError('widget.is_required');\n            valid = false;\n        }\n        return valid;\n    }\n\n    async getValue(): Promise<string> {\n        return DateWidget.toBackendDate(this.$input.value) ?? '';\n    }\n}\n", "import { Widget } from '../widget/widget.js';\n\nexport class DropdownWidget extends Widget {\n    async validate(): Promise<boolean> {\n        this.clearError();\n\n        let valid = true;\n\n        if (this.required && this.$input.value === '0') {\n            this.displayError('widget.is_required');\n            valid = false;\n        }\n\n        return valid;\n    }\n\n    async getValue(): Promise<string | number> {\n        if (this.$node.dataset.forceInt === '1') {\n            return parseInt(this.$input.value);\n        }\n        return this.$input.value;\n    }\n}\n", "import { type ApiClient, ApiClientFactory } from '../api/apiclientfactory.js';\nimport { Widget } from '../widget/widget.js';\n\ntype UploadValue = {\n    filename: string;\n    no_change: boolean;\n    uploaded_file?: string;\n    path?: string;\n};\n\nexport class FileUploadWidget extends Widget {\n    public api: ApiClient;\n    public path: string;\n    public maxSize = 0;\n    public allowedExtensions: string[] = [];\n    public uploadedFile: any;\n    public isPublic: boolean;\n\n    constructor($node: HTMLElement, args: Record<string, unknown> = {}) {\n        super($node, args);\n        this.$inputContainer = this.$node;\n        this.api = ApiClientFactory();\n        this.path = $node.dataset.uploadPath;\n        this.isPublic = 'public' in $node.dataset;\n        this.uploadedFile = null;\n        if (typeof $node.dataset.maxSize !== 'undefined') {\n            this.maxSize = parseInt($node.dataset.maxSize);\n        }\n        if (typeof $node.dataset.allowedExtensions !== 'undefined') {\n            this.allowedExtensions = $node.dataset.allowedExtensions.split(',');\n            this.allowedExtensions = this.allowedExtensions.map(extension => extension.trim().replace(/^\\./, ''));\n        }\n\n        const $filenameNode = this.$node.querySelector('.file-name') as HTMLElement;\n        const $deleteButton = this.$node.querySelector('.clear') as HTMLInputElement;\n\n        // show chosen file name\n        (this.$input as HTMLInputElement).addEventListener('change', () => {\n            $filenameNode.innerHTML = (this.$input as HTMLInputElement).files[0].name;\n            $filenameNode.dataset.fileName = (this.$input as HTMLInputElement).files[0].name;\n            $deleteButton.disabled = false;\n        });\n\n        // reset button logic\n        $deleteButton.addEventListener('click', e => {\n            e.preventDefault();\n            this.$input.value = '';\n            $filenameNode.innerHTML = $filenameNode.dataset.noFile;\n            $filenameNode.dataset.fileName = '';\n\n            const preview = this.$node.querySelector('.file-preview');\n            if (preview !== null) {\n                preview.remove();\n            }\n        });\n    }\n\n    async validate(): Promise<boolean> {\n        this.clearError();\n\n        if (this.required === true && (this.$input as HTMLInputElement).files.length === 0) {\n            this.displayError('widget.file_no_upload');\n            return false;\n        }\n\n        if (\n            this.maxSize > 0\n            && (this.$input as HTMLInputElement).files.length > 0\n            && (this.$input as HTMLInputElement).files[0].size > this.maxSize\n        ) {\n            this.displayError('widget.file_too_big');\n            return false;\n        }\n\n        if (\n            this.allowedExtensions.length > 0\n            && (this.$input as HTMLInputElement).files.length > 0\n            && !this.checkFileTypeValidity()\n        ) {\n            this.displayError('widget.file_extension_not_allowed', null, this.allowedExtensions.join(', '));\n            return false;\n        }\n        return true;\n    }\n\n    async upload(): Promise<boolean> {\n        // skip upload if no files to upload\n        if (this.uploadedFile === null && (this.$input as HTMLInputElement).files.length === 0) {\n            return true;\n        }\n\n        if (this.isPublic) {\n            return this.publicUpload();\n        }\n\n        // upload file\n        const uploadResponse = await this.api.upload.file(this.$input as HTMLInputElement, this.path);\n        if (uploadResponse.statusCode === 200) {\n            this.uploadedFile = uploadResponse.data.filename;\n            return true;\n        }\n        return false;\n    }\n\n    /**\n     * Upload to the unauthenticated public endpoint (api/upload/public).\n     * No JWT or CSRF token is sent.\n     */\n    async publicUpload(): Promise<boolean> {\n        const data = new FormData();\n        data.append('file', (this.$input as HTMLInputElement).files.item(0));\n\n        const response = await fetch(`${this.api.upload.url}/api/upload/public`, {\n            body: data,\n            method: 'POST',\n        });\n        const apiResponse = await response.json();\n        if (apiResponse.statusCode?.toString().search(/2\\d\\d/) !== -1) {\n            this.uploadedFile = apiResponse.data?.filename;\n            return true;\n        }\n        throw new Error(apiResponse.message);\n    }\n\n    async preUploadTask(): Promise<boolean> {\n        return this.upload();\n    }\n\n    async getValue(): Promise<UploadValue> {\n        if ((this.$input as HTMLInputElement).files.length > 0) {\n            return {\n                uploaded_file: this.uploadedFile,\n                filename: (this.$input as HTMLInputElement).files[0].name,\n                no_change: false,\n                path: this.path,\n            };\n        }\n\n        const filenameNode: HTMLElement = this.$node.getElementsByClassName('file-name')[0] as HTMLElement;\n\n        return {\n            no_change: true,\n            filename: filenameNode.dataset.fileName,\n        };\n    }\n\n    /**\n     * Check if the file type is valid based on the allowed extensions.\n     * Also supports mime types, including wildcards, e.g. image/*.\n     */\n    checkFileTypeValidity(): boolean {\n        const fileExtension = (this.$input as HTMLInputElement).files[0].name.split('.').pop();\n        if (this.allowedExtensions.includes(`${fileExtension}`)) {\n            return true;\n        }\n\n        const mimeType = (this.$input as HTMLInputElement).files[0].type;\n\n        for (const extension of this.allowedExtensions) {\n            if (mimeType.includes(extension)) {\n                return true;\n            }\n\n            if (extension.includes('/')) {\n                const [type, subtype] = extension.split('/');\n                if (subtype === '*' && mimeType.startsWith(type)) {\n                    return true;\n                }\n            }\n        }\n\n        return false;\n    }\n}\n", "import { Widget } from '../widget/widget.js';\n\nexport class FloatWidget extends Widget {\n    async validate(): Promise<boolean> {\n        this.clearError();\n        let valid = true;\n\n        if (this.$input.value.length === 0) {\n            this.$input.value = '0.0';\n        }\n\n        const value = parseFloat(this.$input.value);\n\n        if (window.Number.isNaN(value)) {\n            this.displayError('widget.not_numeric');\n            valid = false;\n        }\n\n        if (this.required && this.$input.value.length === 0) {\n            this.displayError('widget.is_required');\n            valid = false;\n        }\n\n        return valid;\n    }\n\n    async getValue(): Promise<number> {\n        return parseFloat(this.$input.value);\n    }\n}\n", "import { Widget } from '../widget/widget.js';\n\nexport class HiddenWidget extends Widget {\n    async getValue(): Promise<any> {\n        return this.$input.value;\n    }\n}\n\nexport class HiddenIntegerWidget extends Widget {\n    async getValue(): Promise<any> {\n        const { value } = this.$input;\n        const num = parseInt(value);\n        return Number.isNaN(Number(num)) ? 0 : num;\n    }\n}\n\n/**\n * HiddenJsonWidget parses JSON from a hidden input.\n * Use for fields where the value is stored as JSON string in a hidden input\n * but needs to be sent as a decoded object to the API.\n */\nexport class HiddenJsonWidget extends Widget {\n    async getValue(): Promise<any> {\n        const { value } = this.$input;\n        if (!value || value === '') {\n            return null;\n        }\n        try {\n            return JSON.parse(value);\n        } catch {\n            return null;\n        }\n    }\n}\n", "import { Widget } from '../widget/widget.js';\n\nexport class NumberWidget extends Widget {\n    async validate() {\n        this.clearError();\n        let valid = true;\n\n        if (this.$input.value.length === 0) {\n            this.$input.value = '0';\n        }\n\n        const value = parseInt(this.$input.value);\n\n        if (Number.isNaN(Number(value))) {\n            this.displayError('Der eingegebene Wert muss eine Zahl sein.');\n            valid = false;\n        }\n\n        if (this.required && this.$input.value.length === 0) {\n            this.displayError('widget.is_required');\n            valid = false;\n        }\n\n        const min = this.$input.getAttribute('min');\n        if (min !== null && value < parseInt(min)) {\n            this.displayError('widget.is_too_low', 'danger', min);\n            valid = false;\n        }\n\n        const max = this.$input.getAttribute('max');\n        if (max !== null && value > parseInt(max)) {\n            this.displayError('widget.is_too_big', 'danger', max);\n            valid = false;\n        }\n\n        return valid;\n    }\n\n    async getValue() {\n        return this.$input.value.length === 0 ? null : parseInt(this.$input.value);\n    }\n}\n", "import { Widget } from '../widget/widget.js';\n\nexport class RadioButtonWidget extends Widget {\n    async validate(): Promise<boolean> {\n        this.clearError();\n        let valid = true;\n\n        if (this.required && (await this.getValue()) === null) {\n            this.displayError('widget.is_required');\n            valid = false;\n        }\n\n        return valid;\n    }\n\n    async getValue(): Promise<string | boolean> {\n        const $checkedRadio = this.$node.querySelector('input:checked');\n        const boolean = 'boolean' in this.$node.dataset;\n        const val = ($checkedRadio as HTMLInputElement)?.value ?? null;\n        if (boolean) {\n            return val === '1';\n        }\n        return val;\n    }\n\n    listen(action: string, fn: (e: Event) => void) {\n        this.$node.querySelectorAll('input').forEach(i => i.addEventListener(action, fn));\n    }\n}\n", "import { Widget } from '../widget/widget.js';\n\nexport class TextWidget extends Widget {\n    async validate(): Promise<boolean> {\n        this.clearError();\n\n        let valid = true;\n\n        if (this.required && this.$input.value.length === 0) {\n            this.displayError('widget.is_required', 'danger');\n            valid = false;\n        }\n\n        return valid;\n    }\n\n    async getValue(): Promise<string> {\n        return this.$input.value;\n    }\n}\n", "import { Api } from '@moxiltd/moxijs/src/api/api.js';\nimport { type ApiClient, ApiClientFactory } from '@moxiltd/moxijs/src/api/apiclientfactory.js';\nimport { InvalidInputError } from '@moxiltd/moxijs/src/errors/invalidInputError.js';\nimport { FrontendForm } from '@moxiltd/moxijs/src/form/frontendform.js';\nimport { i18n } from '@moxiltd/moxijs/src/i18n.js';\nimport type { Widget } from '@moxiltd/moxijs/src/widget/widget';\nimport { CheckboxWidget } from '@moxiltd/moxijs/src/widgets/checkbox.js';\nimport { DateWidget } from '@moxiltd/moxijs/src/widgets/date.js';\nimport { DropdownWidget } from '@moxiltd/moxijs/src/widgets/dropdown.js';\nimport { FileUploadWidget } from '@moxiltd/moxijs/src/widgets/fileUpload.js';\nimport { FloatWidget } from '@moxiltd/moxijs/src/widgets/float.js';\nimport { HiddenIntegerWidget, HiddenWidget } from '@moxiltd/moxijs/src/widgets/hidden.js';\nimport { NumberWidget } from '@moxiltd/moxijs/src/widgets/number.js';\nimport { RadioButtonWidget } from '@moxiltd/moxijs/src/widgets/radiobutton.js';\nimport { TextWidget } from '@moxiltd/moxijs/src/widgets/text.js';\nimport { LitElement } from 'lit';\n\ntype FormResponse = {\n    redirect?: string;\n    messages?: {\n        type: 'danger' | 'success' | 'warning';\n        text: string;\n    }[];\n};\n\nexport class Form extends LitElement {\n    static get properties() {\n        return {\n            enableLog: { type: Boolean, attribute: 'enable-log' },\n            scrollToNotification: { type: Boolean, attribute: 'scroll-to-notification' },\n            scrollToFirstInvalidField: { type: Boolean, attribute: 'scroll-to-first-invalid-field' },\n        };\n    }\n\n    // preferences (set via attributes on <moxi-form>)\n    public name: string;\n    public enableLog: boolean = false;\n    public scrollToNotification: boolean = false;\n    public scrollToFirstInvalidField: boolean = false;\n\n    public widgets: Record<string, typeof Widget> = {\n        TextWidget,\n        DateWidget,\n        HiddenWidget,\n        HiddenIntegerWidget,\n        FileUploadWidget,\n        CheckboxWidget,\n        RadioButtonWidget,\n        DropdownWidget,\n        NumberWidget,\n        FloatWidget,\n    };\n\n    // state\n    public form: FrontendForm;\n    public apiClient: ApiClient;\n\n    // dom nodes\n    public $form: HTMLFormElement;\n    public $submit: HTMLAnchorElement;\n    public $notifications: HTMLDivElement;\n\n    connectedCallback() {\n        super.connectedCallback();\n\n        Api.log = this.enableLog;\n        this.name = this.dataset.formName;\n        this.apiClient = ApiClientFactory(Api);\n        this.form = new FrontendForm(this.name, this.apiClient, this.widgets, this.id);\n\n        this.$form = this.querySelector('form');\n        this.$submit = this.querySelector('.button[type=submit]');\n        this.$notifications = this.querySelector('.notifications');\n\n        this.$submit.addEventListener('click', this.submitHandler.bind(this));\n    }\n\n    /** sets the submit buttons loading state to `force` */\n    public setLoading(force: boolean) {\n        this.$submit.classList.toggle('is-loading', force);\n    }\n\n    /** catches thrown errors */\n    public catcher(error: Error | false) {\n        // show error notification\n        console.error(error);\n        this.createNotification(i18n.t(`form.${this.name}_failure_msg`), 'danger', 30000);\n        this.setLoading(false);\n\n        // scroll to notification\n        if (this.scrollToNotification) {\n            this.$notifications.scrollIntoView();\n            return;\n        }\n\n        // scroll to first invalid field\n        const $firstHelpText = this.$form.querySelector('.help');\n        if (this.scrollToFirstInvalidField && $firstHelpText !== null) {\n            $firstHelpText.closest('.field').scrollIntoView();\n        }\n    }\n\n    /** submits the form */\n    public async submitHandler(e: Event) {\n        e.preventDefault();\n        this.setLoading(true);\n\n        this.form\n            .send()\n            .then(response => {\n                if (response instanceof Error || response === false) {\n                    throw response;\n                }\n\n                this.setLoading(false);\n                this.$form.classList.add('is-hidden');\n                this.createNotification(i18n.t(`form.${this.name}_success_msg`), 'success');\n\n                if (response !== true) {\n                    const data = response.data as unknown as FormResponse;\n\n                    // redirect after a successful save (e.g. user/ad forms)\n                    if (data?.redirect) {\n                        window.location.href = data.redirect;\n                    }\n\n                    // per-message notifications returned by the form (framework default)\n                    if (typeof data?.messages !== 'undefined') {\n                        data.messages.forEach(message => {\n                            this.createNotification(message.text, message.type);\n                        });\n                    }\n                }\n\n                if (this.scrollToNotification) {\n                    this.$notifications.scrollIntoView();\n                }\n            }, this.catcher.bind(this))\n            .catch(this.catcher.bind(this));\n    }\n\n    /** replacement for bulma notification library */\n    public createNotification(body: string, color: 'danger' | 'success' | 'warning', dismissInterval: number = 0) {\n        const id = `notif${Math.floor(Math.random() * 10).toString()}`;\n        this.$notifications.innerHTML += `<div class=\"notification is-${color}\" id=\"${id}\"><button class=\"delete\" onclick=\"this.parentElement.remove()\"></button><p>${body}</p></div>`;\n        const $deleteButton = this.$notifications.querySelector(`#${id} .delete`);\n\n        if (dismissInterval > 0) {\n            setTimeout(() => $deleteButton.closest('.notification').remove(), dismissInterval);\n        }\n    }\n\n    createRenderRoot() {\n        return this; // no shadow dom\n    }\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unused-expressions\ncustomElements.get('moxi-form') || customElements.define('moxi-form', Form);\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/*\n * IMPORTANT: For compatibility with tsickle and the Closure JS compiler, all\n * property decorators (but not class decorators) in this file that have\n * an @ExportDecoratedItems annotation must be defined as a regular function,\n * not an arrow function.\n */\n\nimport type {Constructor} from './base.js';\n\n/**\n * Allow for custom element classes with private constructors\n */\ntype CustomElementClass = Omit<typeof HTMLElement, 'new'>;\n\nexport type CustomElementDecorator = {\n  // legacy\n  (cls: CustomElementClass): void;\n\n  // standard\n  (\n    target: CustomElementClass,\n    context: ClassDecoratorContext<Constructor<HTMLElement>>\n  ): void;\n};\n\n/**\n * Class decorator factory that defines the decorated class as a custom element.\n *\n * ```js\n * @customElement('my-element')\n * class MyElement extends LitElement {\n *   render() {\n *     return html``;\n *   }\n * }\n * ```\n * @category Decorator\n * @param tagName The tag name of the custom element to define.\n */\nexport const customElement =\n  (tagName: string): CustomElementDecorator =>\n  (\n    classOrTarget: CustomElementClass | Constructor<HTMLElement>,\n    context?: ClassDecoratorContext<Constructor<HTMLElement>>\n  ) => {\n    if (context !== undefined) {\n      context.addInitializer(() => {\n        customElements.define(\n          tagName,\n          classOrTarget as CustomElementConstructor\n        );\n      });\n    } else {\n      customElements.define(tagName, classOrTarget as CustomElementConstructor);\n    }\n  };\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/*\n * IMPORTANT: For compatibility with tsickle and the Closure JS compiler, all\n * property decorators (but not class decorators) in this file that have\n * an @ExportDecoratedItems annotation must be defined as a regular function,\n * not an arrow function.\n */\n\nimport {\n  type PropertyDeclaration,\n  type ReactiveElement,\n  defaultConverter,\n  notEqual,\n} from '../reactive-element.js';\nimport type {Interface} from './base.js';\n\nconst DEV_MODE = true;\n\nlet issueWarning: (code: string, warning: string) => void;\n\nif (DEV_MODE) {\n  // Ensure warnings are issued only 1x, even if multiple versions of Lit\n  // are loaded.\n  globalThis.litIssuedWarnings ??= new Set();\n\n  /**\n   * Issue a warning if we haven't already, based either on `code` or `warning`.\n   * Warnings are disabled automatically only by `warning`; disabling via `code`\n   * can be done by users.\n   */\n  issueWarning = (code: string, warning: string) => {\n    warning += ` See https://lit.dev/msg/${code} for more information.`;\n    if (\n      !globalThis.litIssuedWarnings!.has(warning) &&\n      !globalThis.litIssuedWarnings!.has(code)\n    ) {\n      console.warn(warning);\n      globalThis.litIssuedWarnings!.add(warning);\n    }\n  };\n}\n\n// Overloads for property decorator so that TypeScript can infer the correct\n// return type when a decorator is used as an accessor decorator or a setter\n// decorator.\nexport type PropertyDecorator = {\n  // accessor decorator signature\n  <C extends Interface<ReactiveElement>, V>(\n    target: ClassAccessorDecoratorTarget<C, V>,\n    context: ClassAccessorDecoratorContext<C, V>\n  ): ClassAccessorDecoratorResult<C, V>;\n\n  // setter decorator signature\n  <C extends Interface<ReactiveElement>, V>(\n    target: (value: V) => void,\n    context: ClassSetterDecoratorContext<C, V>\n  ): (this: C, value: V) => void;\n\n  // legacy decorator signature\n  (\n    protoOrDescriptor: Object,\n    name: PropertyKey,\n    descriptor?: PropertyDescriptor\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  ): any;\n};\n\nconst legacyProperty = (\n  options: PropertyDeclaration | undefined,\n  proto: Object,\n  name: PropertyKey\n) => {\n  const hasOwnProperty = proto.hasOwnProperty(name);\n  (proto.constructor as typeof ReactiveElement).createProperty(name, options);\n  // For accessors (which have a descriptor on the prototype) we need to\n  // return a descriptor, otherwise TypeScript overwrites the descriptor we\n  // define in createProperty() with the original descriptor. We don't do this\n  // for fields, which don't have a descriptor, because this could overwrite\n  // descriptor defined by other decorators.\n  return hasOwnProperty\n    ? Object.getOwnPropertyDescriptor(proto, name)\n    : undefined;\n};\n\n// This is duplicated from a similar variable in reactive-element.ts, but\n// actually makes sense to have this default defined with the decorator, so\n// that different decorators could have different defaults.\nconst defaultPropertyDeclaration: PropertyDeclaration = {\n  attribute: true,\n  type: String,\n  converter: defaultConverter,\n  reflect: false,\n  hasChanged: notEqual,\n};\n\n// Temporary type, until google3 is on TypeScript 5.2\ntype StandardPropertyContext<C, V> = (\n  | ClassAccessorDecoratorContext<C, V>\n  | ClassSetterDecoratorContext<C, V>\n) & {metadata: object};\n\n/**\n * Wraps a class accessor or setter so that `requestUpdate()` is called with the\n * property name and old value when the accessor is set.\n */\nexport const standardProperty = <C extends Interface<ReactiveElement>, V>(\n  options: PropertyDeclaration = defaultPropertyDeclaration,\n  target: ClassAccessorDecoratorTarget<C, V> | ((value: V) => void),\n  context: StandardPropertyContext<C, V>\n): ClassAccessorDecoratorResult<C, V> | ((this: C, value: V) => void) => {\n  const {kind, metadata} = context;\n\n  if (DEV_MODE && metadata == null) {\n    issueWarning(\n      'missing-class-metadata',\n      `The class ${target} is missing decorator metadata. This ` +\n        `could mean that you're using a compiler that supports decorators ` +\n        `but doesn't support decorator metadata, such as TypeScript 5.1. ` +\n        `Please update your compiler.`\n    );\n  }\n\n  // Store the property options\n  let properties = globalThis.litPropertyMetadata.get(metadata);\n  if (properties === undefined) {\n    globalThis.litPropertyMetadata.set(metadata, (properties = new Map()));\n  }\n  if (kind === 'setter') {\n    options = Object.create(options);\n    options.wrapped = true;\n  }\n  properties.set(context.name, options);\n\n  if (kind === 'accessor') {\n    // Standard decorators cannot dynamically modify the class, so we can't\n    // replace a field with accessors. The user must use the new `accessor`\n    // keyword instead.\n    const {name} = context;\n    return {\n      set(this: ReactiveElement, v: V) {\n        const oldValue = (\n          target as ClassAccessorDecoratorTarget<C, V>\n        ).get.call(this as unknown as C);\n        (target as ClassAccessorDecoratorTarget<C, V>).set.call(\n          this as unknown as C,\n          v\n        );\n        this.requestUpdate(name, oldValue, options, true, v);\n      },\n      init(this: ReactiveElement, v: V): V {\n        if (v !== undefined) {\n          this._$changeProperty(name, undefined, options, v);\n        }\n        return v;\n      },\n    } as unknown as ClassAccessorDecoratorResult<C, V>;\n  } else if (kind === 'setter') {\n    const {name} = context;\n    return function (this: ReactiveElement, value: V) {\n      const oldValue = this[name as keyof ReactiveElement];\n      (target as (value: V) => void).call(this, value);\n      this.requestUpdate(name, oldValue, options, true, value);\n    } as unknown as (this: C, value: V) => void;\n  }\n  throw new Error(`Unsupported decorator location: ${kind}`);\n};\n\n/**\n * A class field or accessor decorator which creates a reactive property that\n * reflects a corresponding attribute value. When a decorated property is set\n * the element will update and render. A {@linkcode PropertyDeclaration} may\n * optionally be supplied to configure property features.\n *\n * This decorator should only be used for public fields. As public fields,\n * properties should be considered as primarily settable by element users,\n * either via attribute or the property itself.\n *\n * Generally, properties that are changed by the element should be private or\n * protected fields and should use the {@linkcode state} decorator.\n *\n * However, sometimes element code does need to set a public property. This\n * should typically only be done in response to user interaction, and an event\n * should be fired informing the user; for example, a checkbox sets its\n * `checked` property when clicked and fires a `changed` event. Mutating public\n * properties should typically not be done for non-primitive (object or array)\n * properties. In other cases when an element needs to manage state, a private\n * property decorated via the {@linkcode state} decorator should be used. When\n * needed, state properties can be initialized via public properties to\n * facilitate complex interactions.\n *\n * ```ts\n * class MyElement {\n *   @property({ type: Boolean })\n *   clicked = false;\n * }\n * ```\n * @category Decorator\n * @ExportDecoratedItems\n */\nexport function property(options?: PropertyDeclaration): PropertyDecorator {\n  return <C extends Interface<ReactiveElement>, V>(\n    protoOrTarget:\n      | object\n      | ClassAccessorDecoratorTarget<C, V>\n      | ((value: V) => void),\n    nameOrContext:\n      | PropertyKey\n      | ClassAccessorDecoratorContext<C, V>\n      | ClassSetterDecoratorContext<C, V>\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  ): any => {\n    return (\n      typeof nameOrContext === 'object'\n        ? standardProperty<C, V>(\n            options,\n            protoOrTarget as\n              | ClassAccessorDecoratorTarget<C, V>\n              | ((value: V) => void),\n            nameOrContext as StandardPropertyContext<C, V>\n          )\n        : legacyProperty(\n            options,\n            protoOrTarget as Object,\n            nameOrContext as PropertyKey\n          )\n    ) as PropertyDecorator;\n  };\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/*\n * IMPORTANT: For compatibility with tsickle and the Closure JS compiler, all\n * property decorators (but not class decorators) in this file that have\n * an @ExportDecoratedItems annotation must be defined as a regular function,\n * not an arrow function.\n */\n\nimport {property} from './property.js';\n\nexport interface StateDeclaration<Type = unknown> {\n  /**\n   * A function that indicates if a property should be considered changed when\n   * it is set. The function should take the `newValue` and `oldValue` and\n   * return `true` if an update should be requested.\n   */\n  hasChanged?(value: Type, oldValue: Type): boolean;\n}\n\n/**\n * @deprecated use StateDeclaration\n */\nexport type InternalPropertyDeclaration<Type = unknown> =\n  StateDeclaration<Type>;\n\n/**\n * Declares a private or protected reactive property that still triggers\n * updates to the element when it changes. It does not reflect from the\n * corresponding attribute.\n *\n * Properties declared this way must not be used from HTML or HTML templating\n * systems, they're solely for properties internal to the element. These\n * properties may be renamed by optimization tools like closure compiler.\n * @category Decorator\n */\nexport function state(options?: StateDeclaration) {\n  return property({\n    ...options,\n    // Add both `state` and `attribute` because we found a third party\n    // controller that is keying off of PropertyOptions.state to determine\n    // whether a field is a private internal property or not.\n    state: true,\n    attribute: false,\n  });\n}\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/**\n * Generates a public interface type that removes private and protected fields.\n * This allows accepting otherwise incompatible versions of the type (e.g. from\n * multiple copies of the same package in `node_modules`).\n */\nexport type Interface<T> = {\n  [K in keyof T]: T[K];\n};\n\nexport type Constructor<T> = {\n  // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  new (...args: any[]): T;\n};\n\n/**\n * Wraps up a few best practices when returning a property descriptor from a\n * decorator.\n *\n * Marks the defined property as configurable, and enumerable, and handles\n * the case where we have a busted Reflect.decorate zombiefill (e.g. in Angular\n * apps).\n *\n * @internal\n */\nexport const desc = (\n  obj: object,\n  name: PropertyKey | ClassAccessorDecoratorContext<unknown, unknown>,\n  descriptor: PropertyDescriptor\n) => {\n  // For backwards compatibility, we keep them configurable and enumerable.\n  descriptor.configurable = true;\n  descriptor.enumerable = true;\n  if (\n    // We check for Reflect.decorate each time, in case the zombiefill\n    // is applied via lazy loading some Angular code.\n    (Reflect as typeof Reflect & {decorate?: unknown}).decorate &&\n    typeof name !== 'object'\n  ) {\n    // If we're called as a legacy decorator, and Reflect.decorate is present\n    // then we have no guarantees that the returned descriptor will be\n    // defined on the class, so we must apply it directly ourselves.\n\n    Object.defineProperty(obj, name, descriptor);\n  }\n  return descriptor;\n};\n", "/**\n * @license\n * Copyright 2017 Google LLC\n * SPDX-License-Identifier: BSD-3-Clause\n */\n\n/*\n * IMPORTANT: For compatibility with tsickle and the Closure JS compiler, all\n * property decorators (but not class decorators) in this file that have\n * an @ExportDecoratedItems annotation must be defined as a regular function,\n * not an arrow function.\n */\nimport type {ReactiveElement} from '../reactive-element.js';\nimport {desc, type Interface} from './base.js';\n\nconst DEV_MODE = true;\n\nlet issueWarning: (code: string, warning: string) => void;\n\nif (DEV_MODE) {\n  // Ensure warnings are issued only 1x, even if multiple versions of Lit\n  // are loaded.\n  globalThis.litIssuedWarnings ??= new Set();\n\n  /**\n   * Issue a warning if we haven't already, based either on `code` or `warning`.\n   * Warnings are disabled automatically only by `warning`; disabling via `code`\n   * can be done by users.\n   */\n  issueWarning = (code: string, warning: string) => {\n    warning += code\n      ? ` See https://lit.dev/msg/${code} for more information.`\n      : '';\n    if (\n      !globalThis.litIssuedWarnings!.has(warning) &&\n      !globalThis.litIssuedWarnings!.has(code)\n    ) {\n      console.warn(warning);\n      globalThis.litIssuedWarnings!.add(warning);\n    }\n  };\n}\n\nexport type QueryDecorator = {\n  // legacy\n  (\n    proto: Interface<ReactiveElement>,\n    name: PropertyKey,\n    descriptor?: PropertyDescriptor\n    // Note TypeScript requires the return type to be `void|any`\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n  ): void | any;\n\n  // standard\n  <C extends Interface<ReactiveElement>, V extends Element | null>(\n    value: ClassAccessorDecoratorTarget<C, V>,\n    context: ClassAccessorDecoratorContext<C, V>\n  ): ClassAccessorDecoratorResult<C, V>;\n};\n\n/**\n * A property decorator that converts a class property into a getter that\n * executes a querySelector on the element's renderRoot.\n *\n * @param selector A DOMString containing one or more selectors to match.\n * @param cache An optional boolean which when true performs the DOM query only\n *     once and caches the result.\n *\n * See: https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector\n *\n * ```ts\n * class MyElement {\n *   @query('#first')\n *   first: HTMLDivElement;\n *\n *   render() {\n *     return html`\n *       <div id=\"first\"></div>\n *       <div id=\"second\"></div>\n *     `;\n *   }\n * }\n * ```\n * @category Decorator\n */\nexport function query(selector: string, cache?: boolean): QueryDecorator {\n  return (<C extends Interface<ReactiveElement>, V extends Element | null>(\n    protoOrTarget: ClassAccessorDecoratorTarget<C, V>,\n    nameOrContext: PropertyKey | ClassAccessorDecoratorContext<C, V>,\n    descriptor?: PropertyDescriptor\n  ) => {\n    const doQuery = (el: Interface<ReactiveElement>): V => {\n      const result = (el.renderRoot?.querySelector(selector) ?? null) as V;\n      if (DEV_MODE && result === null && cache && !el.hasUpdated) {\n        const name =\n          typeof nameOrContext === 'object'\n            ? nameOrContext.name\n            : nameOrContext;\n        issueWarning(\n          '',\n          `@query'd field ${JSON.stringify(String(name))} with the 'cache' ` +\n            `flag set for selector '${selector}' has been accessed before ` +\n            `the first update and returned null. This is expected if the ` +\n            `renderRoot tree has not been provided beforehand (e.g. via ` +\n            `Declarative Shadow DOM). Therefore the value hasn't been cached.`\n        );\n      }\n      // TODO: if we want to allow users to assert that the query will never\n      // return null, we need a new option and to throw here if the result\n      // is null.\n      return result;\n    };\n    if (cache) {\n      // Accessors to wrap from either:\n      //   1. The decorator target, in the case of standard decorators\n      //   2. The property descriptor, in the case of experimental decorators\n      //      on auto-accessors.\n      //   3. Functions that access our own cache-key property on the instance,\n      //      in the case of experimental decorators on fields.\n      const {get, set} =\n        typeof nameOrContext === 'object'\n          ? protoOrTarget\n          : (descriptor ??\n            (() => {\n              const key = DEV_MODE\n                ? Symbol(`${String(nameOrContext)} (@query() cache)`)\n                : Symbol();\n              type WithCache = ReactiveElement & {\n                [key: symbol]: Element | null;\n              };\n              return {\n                get() {\n                  return (this as WithCache)[key];\n                },\n                set(v) {\n                  (this as WithCache)[key] = v;\n                },\n              };\n            })());\n      return desc(protoOrTarget, nameOrContext, {\n        get(this: ReactiveElement): V {\n          let result: V = get!.call(this);\n          if (result === undefined) {\n            result = doQuery(this);\n            if (result !== null || this.hasUpdated) {\n              set!.call(this, result);\n            }\n          }\n          return result;\n        },\n      });\n    } else {\n      // This object works as the return type for both standard and\n      // experimental decorators.\n      return desc(protoOrTarget, nameOrContext, {\n        get(this: ReactiveElement) {\n          return doQuery(this);\n        },\n      });\n    }\n  }) as QueryDecorator;\n}\n", "/*!\n * Font Awesome Free 7.3.1 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 2026 Fonticons, Inc.\n */\nfunction _arrayLikeToArray(r, a) {\n  (null == a || a > r.length) && (a = r.length);\n  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n  return n;\n}\nfunction _arrayWithHoles(r) {\n  if (Array.isArray(r)) return r;\n}\nfunction _arrayWithoutHoles(r) {\n  if (Array.isArray(r)) return _arrayLikeToArray(r);\n}\nfunction _classCallCheck(a, n) {\n  if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nfunction _defineProperties(e, r) {\n  for (var t = 0; t < r.length; t++) {\n    var o = r[t];\n    o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o);\n  }\n}\nfunction _createClass(e, r, t) {\n  return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n    writable: !1\n  }), e;\n}\nfunction _createForOfIteratorHelper(r, e) {\n  var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n  if (!t) {\n    if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) {\n      t && (r = t);\n      var n = 0,\n        F = function () {};\n      return {\n        s: F,\n        n: function () {\n          return n >= r.length ? {\n            done: !0\n          } : {\n            done: !1,\n            value: r[n++]\n          };\n        },\n        e: function (r) {\n          throw r;\n        },\n        f: F\n      };\n    }\n    throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n  }\n  var o,\n    a = !0,\n    u = !1;\n  return {\n    s: function () {\n      t = t.call(r);\n    },\n    n: function () {\n      var r = t.next();\n      return a = r.done, r;\n    },\n    e: function (r) {\n      u = !0, o = r;\n    },\n    f: function () {\n      try {\n        a || null == t.return || t.return();\n      } finally {\n        if (u) throw o;\n      }\n    }\n  };\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 _iterableToArray(r) {\n  if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nfunction _iterableToArrayLimit(r, l) {\n  var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n  if (null != t) {\n    var e,\n      n,\n      i,\n      u,\n      a = [],\n      f = !0,\n      o = !1;\n    try {\n      if (i = (t = t.call(r)).next, 0 === l) {\n        if (Object(t) !== t) return;\n        f = !1;\n      } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n    } catch (r) {\n      o = !0, n = r;\n    } finally {\n      try {\n        if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n      } finally {\n        if (o) throw n;\n      }\n    }\n    return a;\n  }\n}\nfunction _nonIterableRest() {\n  throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\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 _slicedToArray(r, e) {\n  return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n}\nfunction _toConsumableArray(r) {\n  return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\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 _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, _typeof(o);\n}\nfunction _unsupportedIterableToArray(r, a) {\n  if (r) {\n    if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n    var t = {}.toString.call(r).slice(8, -1);\n    return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n  }\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, t) {\n        if (\"\" === t) return e;\n        var p = o[r];\n        return Array.isArray(p) ? \"$\" + p.join(\"$\") : \"number\" == typeof p ? \"$\" + p : \"\";\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\nvar noop = function noop() {};\nvar _WINDOW = {};\nvar _DOCUMENT = {};\nvar _MUTATION_OBSERVER = null;\nvar _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) {} // eslint-disable-line no-empty\n\nvar _ref = _WINDOW.navigator || {},\n  _ref$userAgent = _ref.userAgent,\n  userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\nvar WINDOW = _WINDOW;\nvar DOCUMENT = _DOCUMENT;\nvar MUTATION_OBSERVER = _MUTATION_OBSERVER;\nvar PERFORMANCE = _PERFORMANCE;\nvar IS_BROWSER = !!WINDOW.document;\nvar IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\nvar IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\nvar _cl;\nvar Z = /fa(k|kd|s|r|l|t|d|dr|dl|dt|b|slr|slpr|wsb|tl|ns|nds|es|gt|jr|jfr|jdr|usb|ufsb|udsb|cr|ss|sr|sl|st|sds|sdr|sdl|sdt|sldr|slpdr|pr|ms|vs)?[\\-\\ ]/,\n  $ = /Font ?Awesome ?([567 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp Duotone|Sharp|Kit|Notdog Duo|Notdog|Chisel|Etch|Graphite|Thumbprint|Jelly Fill|Jelly Duo|Jelly|Utility|Utility Fill|Utility Duo|Slab Press|Slab|Slab Duo|Slab Press Duo|Pixel|Mosaic|Vellum|Whiteboard)?.*/i;\nvar rl = {\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    slab: {\n      \"fa-regular\": \"regular\",\n      faslr: \"regular\"\n    },\n    \"slab-press\": {\n      \"fa-regular\": \"regular\",\n      faslpr: \"regular\"\n    },\n    \"slab-duo\": {\n      \"fa-regular\": \"regular\",\n      fasldr: \"regular\"\n    },\n    \"slab-press-duo\": {\n      \"fa-regular\": \"regular\",\n      faslpdr: \"regular\"\n    },\n    thumbprint: {\n      \"fa-light\": \"light\",\n      fatl: \"light\"\n    },\n    vellum: {\n      \"fa-solid\": \"solid\",\n      favs: \"solid\"\n    },\n    pixel: {\n      \"fa-regular\": \"regular\",\n      fapr: \"regular\"\n    },\n    mosaic: {\n      \"fa-solid\": \"solid\",\n      fams: \"solid\"\n    },\n    whiteboard: {\n      \"fa-semibold\": \"semibold\",\n      fawsb: \"semibold\"\n    },\n    notdog: {\n      \"fa-solid\": \"solid\",\n      fans: \"solid\"\n    },\n    \"notdog-duo\": {\n      \"fa-solid\": \"solid\",\n      fands: \"solid\"\n    },\n    etch: {\n      \"fa-solid\": \"solid\",\n      faes: \"solid\"\n    },\n    graphite: {\n      \"fa-thin\": \"thin\",\n      fagt: \"thin\"\n    },\n    jelly: {\n      \"fa-regular\": \"regular\",\n      fajr: \"regular\"\n    },\n    \"jelly-fill\": {\n      \"fa-regular\": \"regular\",\n      fajfr: \"regular\"\n    },\n    \"jelly-duo\": {\n      \"fa-regular\": \"regular\",\n      fajdr: \"regular\"\n    },\n    chisel: {\n      \"fa-regular\": \"regular\",\n      facr: \"regular\"\n    },\n    utility: {\n      \"fa-semibold\": \"semibold\",\n      fausb: \"semibold\"\n    },\n    \"utility-duo\": {\n      \"fa-semibold\": \"semibold\",\n      faudsb: \"semibold\"\n    },\n    \"utility-fill\": {\n      \"fa-semibold\": \"semibold\",\n      faufsb: \"semibold\"\n    }\n  },\n  il = {\n    GROUP: \"duotone-group\",\n    SWAP_OPACITY: \"swap-opacity\",\n    PRIMARY: \"primary\",\n    SECONDARY: \"secondary\"\n  },\n  dl = [\"fa-classic\", \"fa-duotone\", \"fa-sharp\", \"fa-sharp-duotone\", \"fa-thumbprint\", \"fa-whiteboard\", \"fa-notdog\", \"fa-notdog-duo\", \"fa-chisel\", \"fa-etch\", \"fa-graphite\", \"fa-jelly\", \"fa-jelly-fill\", \"fa-jelly-duo\", \"fa-slab\", \"fa-slab-press\", \"fa-slab-press-duo\", \"fa-slab-duo\", \"fa-mosaic\", \"fa-pixel\", \"fa-vellum\", \"fa-utility\", \"fa-utility-duo\", \"fa-utility-fill\"];\nvar u = \"classic\",\n  l = \"duotone\",\n  h = \"sharp\",\n  t = \"sharp-duotone\",\n  g = \"chisel\",\n  n = \"etch\",\n  m = \"graphite\",\n  p = \"jelly\",\n  s = \"jelly-duo\",\n  y = \"jelly-fill\",\n  w = \"mosaic\",\n  x = \"notdog\",\n  e = \"notdog-duo\",\n  b = \"pixel\",\n  c = \"slab\",\n  o = \"slab-duo\",\n  I = \"slab-press\",\n  a = \"slab-press-duo\",\n  r = \"thumbprint\",\n  v = \"utility\",\n  i = \"utility-duo\",\n  F = \"utility-fill\",\n  d = \"vellum\",\n  S = \"whiteboard\",\n  A = \"Classic\",\n  P = \"Duotone\",\n  j = \"Sharp\",\n  B = \"Sharp Duotone\",\n  N = \"Chisel\",\n  D = \"Etch\",\n  k = \"Graphite\",\n  T = \"Jelly\",\n  C = \"Jelly Duo\",\n  W = \"Jelly Fill\",\n  R = \"Mosaic\",\n  K = \"Notdog\",\n  L = \"Notdog Duo\",\n  U = \"Pixel\",\n  J = \"Slab\",\n  _ = \"Slab Duo\",\n  M = \"Slab Press\",\n  E = \"Slab Press Duo\",\n  G = \"Thumbprint\",\n  V = \"Utility\",\n  z = \"Utility Duo\",\n  O = \"Utility Fill\",\n  Y = \"Vellum\",\n  q = \"Whiteboard\",\n  xl = [u, l, h, t, g, n, m, p, s, y, w, x, e, b, c, o, I, a, r, v, i, F, d, S],\n  cl = (_cl = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_cl, u, A), l, P), h, j), t, B), g, N), n, D), m, k), p, T), s, C), y, W), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_cl, w, R), x, K), e, L), b, U), c, J), o, _), I, M), a, E), r, G), v, V), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_cl, i, z), F, O), d, Y), S, q));\nvar Al = {\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    slab: {\n      400: \"faslr\"\n    },\n    \"slab-press\": {\n      400: \"faslpr\"\n    },\n    \"slab-duo\": {\n      400: \"fasldr\"\n    },\n    \"slab-press-duo\": {\n      400: \"faslpdr\"\n    },\n    vellum: {\n      900: \"favs\"\n    },\n    mosaic: {\n      900: \"fams\"\n    },\n    pixel: {\n      400: \"fapr\"\n    },\n    whiteboard: {\n      600: \"fawsb\"\n    },\n    thumbprint: {\n      300: \"fatl\"\n    },\n    notdog: {\n      900: \"fans\"\n    },\n    \"notdog-duo\": {\n      900: \"fands\"\n    },\n    etch: {\n      900: \"faes\"\n    },\n    graphite: {\n      100: \"fagt\"\n    },\n    chisel: {\n      400: \"facr\"\n    },\n    jelly: {\n      400: \"fajr\"\n    },\n    \"jelly-fill\": {\n      400: \"fajfr\"\n    },\n    \"jelly-duo\": {\n      400: \"fajdr\"\n    },\n    utility: {\n      600: \"fausb\"\n    },\n    \"utility-duo\": {\n      600: \"faudsb\"\n    },\n    \"utility-fill\": {\n      600: \"faufsb\"\n    }\n  };\nvar zl = {\n    \"Font Awesome 7 Free\": {\n      900: \"fas\",\n      400: \"far\"\n    },\n    \"Font Awesome 7 Pro\": {\n      900: \"fas\",\n      400: \"far\",\n      normal: \"far\",\n      300: \"fal\",\n      100: \"fat\"\n    },\n    \"Font Awesome 7 Brands\": {\n      400: \"fab\",\n      normal: \"fab\"\n    },\n    \"Font Awesome 7 Duotone\": {\n      900: \"fad\",\n      400: \"fadr\",\n      normal: \"fadr\",\n      300: \"fadl\",\n      100: \"fadt\"\n    },\n    \"Font Awesome 7 Sharp\": {\n      900: \"fass\",\n      400: \"fasr\",\n      normal: \"fasr\",\n      300: \"fasl\",\n      100: \"fast\"\n    },\n    \"Font Awesome 7 Sharp Duotone\": {\n      900: \"fasds\",\n      400: \"fasdr\",\n      normal: \"fasdr\",\n      300: \"fasdl\",\n      100: \"fasdt\"\n    },\n    \"Font Awesome 7 Jelly\": {\n      400: \"fajr\",\n      normal: \"fajr\"\n    },\n    \"Font Awesome 7 Jelly Fill\": {\n      400: \"fajfr\",\n      normal: \"fajfr\"\n    },\n    \"Font Awesome 7 Jelly Duo\": {\n      400: \"fajdr\",\n      normal: \"fajdr\"\n    },\n    \"Font Awesome 7 Slab\": {\n      400: \"faslr\",\n      normal: \"faslr\"\n    },\n    \"Font Awesome 7 Slab Press\": {\n      400: \"faslpr\",\n      normal: \"faslpr\"\n    },\n    \"Font Awesome 7 Slab Duo\": {\n      400: \"fasldr\",\n      normal: \"fasldr\"\n    },\n    \"Font Awesome 7 Slab Press Duo\": {\n      400: \"faslpdr\",\n      normal: \"faslpdr\"\n    },\n    \"Font Awesome 7 Pixel\": {\n      400: \"fapr\",\n      normal: \"fapr\"\n    },\n    \"Font Awesome 7 Mosaic\": {\n      900: \"fams\",\n      normal: \"fams\"\n    },\n    \"Font Awesome 7 Vellum\": {\n      900: \"favs\",\n      normal: \"favs\"\n    },\n    \"Font Awesome 7 Thumbprint\": {\n      300: \"fatl\",\n      normal: \"fatl\"\n    },\n    \"Font Awesome 7 Notdog\": {\n      900: \"fans\",\n      normal: \"fans\"\n    },\n    \"Font Awesome 7 Notdog Duo\": {\n      900: \"fands\",\n      normal: \"fands\"\n    },\n    \"Font Awesome 7 Etch\": {\n      900: \"faes\",\n      normal: \"faes\"\n    },\n    \"Font Awesome 7 Graphite\": {\n      100: \"fagt\",\n      normal: \"fagt\"\n    },\n    \"Font Awesome 7 Chisel\": {\n      400: \"facr\",\n      normal: \"facr\"\n    },\n    \"Font Awesome 7 Whiteboard\": {\n      600: \"fawsb\",\n      normal: \"fawsb\"\n    },\n    \"Font Awesome 7 Utility\": {\n      600: \"fausb\",\n      normal: \"fausb\"\n    },\n    \"Font Awesome 7 Utility Duo\": {\n      600: \"faudsb\",\n      normal: \"faudsb\"\n    },\n    \"Font Awesome 7 Utility Fill\": {\n      600: \"faufsb\",\n      normal: \"faufsb\"\n    }\n  };\nvar Ql = new Map([[\"classic\", {\n    defaultShortPrefixId: \"fas\",\n    defaultStyleId: \"solid\",\n    styleIds: [\"solid\", \"regular\", \"light\", \"thin\", \"brands\"],\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\", {\n    defaultShortPrefixId: \"fass\",\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  }], [\"chisel\", {\n    defaultShortPrefixId: \"facr\",\n    defaultStyleId: \"regular\",\n    styleIds: [\"regular\"],\n    futureStyleIds: [],\n    defaultFontWeight: 400\n  }], [\"etch\", {\n    defaultShortPrefixId: \"faes\",\n    defaultStyleId: \"solid\",\n    styleIds: [\"solid\"],\n    futureStyleIds: [],\n    defaultFontWeight: 900\n  }], [\"graphite\", {\n    defaultShortPrefixId: \"fagt\",\n    defaultStyleId: \"thin\",\n    styleIds: [\"thin\"],\n    futureStyleIds: [],\n    defaultFontWeight: 100\n  }], [\"jelly\", {\n    defaultShortPrefixId: \"fajr\",\n    defaultStyleId: \"regular\",\n    styleIds: [\"regular\"],\n    futureStyleIds: [],\n    defaultFontWeight: 400\n  }], [\"jelly-duo\", {\n    defaultShortPrefixId: \"fajdr\",\n    defaultStyleId: \"regular\",\n    styleIds: [\"regular\"],\n    futureStyleIds: [],\n    defaultFontWeight: 400\n  }], [\"jelly-fill\", {\n    defaultShortPrefixId: \"fajfr\",\n    defaultStyleId: \"regular\",\n    styleIds: [\"regular\"],\n    futureStyleIds: [],\n    defaultFontWeight: 400\n  }], [\"mosaic\", {\n    defaultShortPrefixId: \"fams\",\n    defaultStyleId: \"solid\",\n    styleIds: [\"solid\"],\n    futureStyleIds: [],\n    defaultFontWeight: 900\n  }], [\"notdog\", {\n    defaultShortPrefixId: \"fans\",\n    defaultStyleId: \"solid\",\n    styleIds: [\"solid\"],\n    futureStyleIds: [],\n    defaultFontWeight: 900\n  }], [\"notdog-duo\", {\n    defaultShortPrefixId: \"fands\",\n    defaultStyleId: \"solid\",\n    styleIds: [\"solid\"],\n    futureStyleIds: [],\n    defaultFontWeight: 900\n  }], [\"pixel\", {\n    defaultShortPrefixId: \"fapr\",\n    defaultStyleId: \"regular\",\n    styleIds: [\"regular\"],\n    futureStyleIds: [],\n    defaultFontWeight: 400\n  }], [\"slab\", {\n    defaultShortPrefixId: \"faslr\",\n    defaultStyleId: \"regular\",\n    styleIds: [\"regular\"],\n    futureStyleIds: [],\n    defaultFontWeight: 400\n  }], [\"slab-duo\", {\n    defaultShortPrefixId: \"fasldr\",\n    defaultStyleId: \"regular\",\n    styleIds: [\"regular\"],\n    futureStyleIds: [],\n    defaultFontWeight: 400\n  }], [\"slab-press\", {\n    defaultShortPrefixId: \"faslpr\",\n    defaultStyleId: \"regular\",\n    styleIds: [\"regular\"],\n    futureStyleIds: [],\n    defaultFontWeight: 400\n  }], [\"slab-press-duo\", {\n    defaultShortPrefixId: \"faslpdr\",\n    defaultStyleId: \"regular\",\n    styleIds: [\"regular\"],\n    futureStyleIds: [],\n    defaultFontWeight: 400\n  }], [\"thumbprint\", {\n    defaultShortPrefixId: \"fatl\",\n    defaultStyleId: \"light\",\n    styleIds: [\"light\"],\n    futureStyleIds: [],\n    defaultFontWeight: 300\n  }], [\"utility\", {\n    defaultShortPrefixId: \"fausb\",\n    defaultStyleId: \"semibold\",\n    styleIds: [\"semibold\"],\n    futureStyleIds: [],\n    defaultFontWeight: 600\n  }], [\"utility-duo\", {\n    defaultShortPrefixId: \"faudsb\",\n    defaultStyleId: \"semibold\",\n    styleIds: [\"semibold\"],\n    futureStyleIds: [],\n    defaultFontWeight: 600\n  }], [\"utility-fill\", {\n    defaultShortPrefixId: \"faufsb\",\n    defaultStyleId: \"semibold\",\n    styleIds: [\"semibold\"],\n    futureStyleIds: [],\n    defaultFontWeight: 600\n  }], [\"vellum\", {\n    defaultShortPrefixId: \"favs\",\n    defaultStyleId: \"solid\",\n    styleIds: [\"solid\"],\n    futureStyleIds: [],\n    defaultFontWeight: 900\n  }], [\"whiteboard\", {\n    defaultShortPrefixId: \"fawsb\",\n    defaultStyleId: \"semibold\",\n    styleIds: [\"semibold\"],\n    futureStyleIds: [],\n    defaultFontWeight: 600\n  }]]),\n  $l = {\n    chisel: {\n      regular: \"facr\"\n    },\n    classic: {\n      brands: \"fab\",\n      light: \"fal\",\n      regular: \"far\",\n      solid: \"fas\",\n      thin: \"fat\"\n    },\n    duotone: {\n      light: \"fadl\",\n      regular: \"fadr\",\n      solid: \"fad\",\n      thin: \"fadt\"\n    },\n    etch: {\n      solid: \"faes\"\n    },\n    graphite: {\n      thin: \"fagt\"\n    },\n    jelly: {\n      regular: \"fajr\"\n    },\n    \"jelly-duo\": {\n      regular: \"fajdr\"\n    },\n    \"jelly-fill\": {\n      regular: \"fajfr\"\n    },\n    mosaic: {\n      solid: \"fams\"\n    },\n    notdog: {\n      solid: \"fans\"\n    },\n    \"notdog-duo\": {\n      solid: \"fands\"\n    },\n    pixel: {\n      regular: \"fapr\"\n    },\n    sharp: {\n      light: \"fasl\",\n      regular: \"fasr\",\n      solid: \"fass\",\n      thin: \"fast\"\n    },\n    \"sharp-duotone\": {\n      light: \"fasdl\",\n      regular: \"fasdr\",\n      solid: \"fasds\",\n      thin: \"fasdt\"\n    },\n    slab: {\n      regular: \"faslr\"\n    },\n    \"slab-duo\": {\n      regular: \"fasldr\"\n    },\n    \"slab-press\": {\n      regular: \"faslpr\"\n    },\n    \"slab-press-duo\": {\n      regular: \"faslpdr\"\n    },\n    thumbprint: {\n      light: \"fatl\"\n    },\n    utility: {\n      semibold: \"fausb\"\n    },\n    \"utility-duo\": {\n      semibold: \"faudsb\"\n    },\n    \"utility-fill\": {\n      semibold: \"faufsb\"\n    },\n    vellum: {\n      solid: \"favs\"\n    },\n    whiteboard: {\n      semibold: \"fawsb\"\n    }\n  };\nvar at = [\"fak\", \"fa-kit\", \"fakd\", \"fa-kit-duotone\"],\n  rt = {\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  it = [\"kit\"];\nvar H = \"kit\",\n  f = \"kit-duotone\",\n  Q = \"Kit\",\n  X = \"Kit Duotone\",\n  ht = _defineProperty(_defineProperty({}, H, Q), f, X);\nvar mt = {\n  kit: {\n    \"fa-kit\": \"fak\"\n  },\n  \"kit-duotone\": {\n    \"fa-kit-duotone\": \"fakd\"\n  }\n};\nvar ct = {\n    \"Font Awesome Kit\": {\n      400: \"fak\",\n      normal: \"fak\"\n    },\n    \"Font Awesome Kit Duotone\": {\n      400: \"fakd\",\n      normal: \"fakd\"\n    }\n  },\n  It = {\n    kit: {\n      fak: \"fa-kit\"\n    },\n    \"kit-duotone\": {\n      fakd: \"fa-kit-duotone\"\n    }\n  };\nvar St = {\n    kit: {\n      kit: \"fak\"\n    },\n    \"kit-duotone\": {\n      \"kit-duotone\": \"fakd\"\n    }\n  };\n\nvar _jl;\nvar l$1 = {\n    GROUP: \"duotone-group\",\n    SWAP_OPACITY: \"swap-opacity\",\n    PRIMARY: \"primary\",\n    SECONDARY: \"secondary\"\n  },\n  n$1 = [\"fa-classic\", \"fa-duotone\", \"fa-sharp\", \"fa-sharp-duotone\", \"fa-thumbprint\", \"fa-whiteboard\", \"fa-notdog\", \"fa-notdog-duo\", \"fa-chisel\", \"fa-etch\", \"fa-graphite\", \"fa-jelly\", \"fa-jelly-fill\", \"fa-jelly-duo\", \"fa-slab\", \"fa-slab-press\", \"fa-slab-press-duo\", \"fa-slab-duo\", \"fa-mosaic\", \"fa-pixel\", \"fa-vellum\", \"fa-utility\", \"fa-utility-duo\", \"fa-utility-fill\"];\nvar g$1 = \"classic\",\n  a$1 = \"duotone\",\n  m$1 = \"sharp\",\n  t$1 = \"sharp-duotone\",\n  p$1 = \"chisel\",\n  y$1 = \"etch\",\n  b$1 = \"graphite\",\n  w$1 = \"jelly\",\n  e$1 = \"jelly-duo\",\n  x$1 = \"jelly-fill\",\n  c$1 = \"mosaic\",\n  I$1 = \"notdog\",\n  o$1 = \"notdog-duo\",\n  v$1 = \"pixel\",\n  F$1 = \"slab\",\n  r$1 = \"slab-duo\",\n  S$1 = \"slab-press\",\n  i$1 = \"slab-press-duo\",\n  d$1 = \"thumbprint\",\n  A$1 = \"utility\",\n  f$1 = \"utility-duo\",\n  P$1 = \"utility-fill\",\n  u$1 = \"vellum\",\n  j$1 = \"whiteboard\",\n  B$1 = \"Classic\",\n  N$1 = \"Duotone\",\n  D$1 = \"Sharp\",\n  k$1 = \"Sharp Duotone\",\n  C$1 = \"Chisel\",\n  T$1 = \"Etch\",\n  L$1 = \"Graphite\",\n  W$1 = \"Jelly\",\n  R$1 = \"Jelly Duo\",\n  K$1 = \"Jelly Fill\",\n  U$1 = \"Mosaic\",\n  J$1 = \"Notdog\",\n  _$1 = \"Notdog Duo\",\n  M$1 = \"Pixel\",\n  E$1 = \"Slab\",\n  G$1 = \"Slab Duo\",\n  O$1 = \"Slab Press\",\n  V$1 = \"Slab Press Duo\",\n  z$1 = \"Thumbprint\",\n  Y$1 = \"Utility\",\n  $$1 = \"Utility Duo\",\n  q$1 = \"Utility Fill\",\n  H$1 = \"Vellum\",\n  Q$1 = \"Whiteboard\",\n  jl$1 = (_jl = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_jl, g$1, B$1), a$1, N$1), m$1, D$1), t$1, k$1), p$1, C$1), y$1, T$1), b$1, L$1), w$1, W$1), e$1, R$1), x$1, K$1), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_jl, c$1, U$1), I$1, J$1), o$1, _$1), v$1, M$1), F$1, E$1), r$1, G$1), S$1, O$1), i$1, V$1), d$1, z$1), A$1, Y$1), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_jl, f$1, $$1), P$1, q$1), u$1, H$1), j$1, Q$1));\nvar X$1 = \"kit\",\n  h$1 = \"kit-duotone\",\n  Z$1 = \"Kit\",\n  ll$1 = \"Kit Duotone\",\n  ws = _defineProperty(_defineProperty({}, X$1, Z$1), h$1, ll$1);\nvar ra = {\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    slab: {\n      \"fa-regular\": \"faslr\"\n    },\n    \"slab-press\": {\n      \"fa-regular\": \"faslpr\"\n    },\n    \"slab-duo\": {\n      \"fa-regular\": \"fasldr\"\n    },\n    \"slab-press-duo\": {\n      \"fa-regular\": \"faslpdr\"\n    },\n    pixel: {\n      \"fa-regular\": \"fapr\"\n    },\n    mosaic: {\n      \"fa-solid\": \"fams\"\n    },\n    vellum: {\n      \"fa-solid\": \"favs\"\n    },\n    whiteboard: {\n      \"fa-semibold\": \"fawsb\"\n    },\n    thumbprint: {\n      \"fa-light\": \"fatl\"\n    },\n    notdog: {\n      \"fa-solid\": \"fans\"\n    },\n    \"notdog-duo\": {\n      \"fa-solid\": \"fands\"\n    },\n    etch: {\n      \"fa-solid\": \"faes\"\n    },\n    graphite: {\n      \"fa-thin\": \"fagt\"\n    },\n    jelly: {\n      \"fa-regular\": \"fajr\"\n    },\n    \"jelly-fill\": {\n      \"fa-regular\": \"fajfr\"\n    },\n    \"jelly-duo\": {\n      \"fa-regular\": \"fajdr\"\n    },\n    chisel: {\n      \"fa-regular\": \"facr\"\n    },\n    utility: {\n      \"fa-semibold\": \"fausb\"\n    },\n    \"utility-duo\": {\n      \"fa-semibold\": \"faudsb\"\n    },\n    \"utility-fill\": {\n      \"fa-semibold\": \"faufsb\"\n    }\n  },\n  al$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    slab: [\"faslr\"],\n    \"slab-press\": [\"faslpr\"],\n    \"slab-duo\": [\"fasldr\"],\n    \"slab-press-duo\": [\"faslpdr\"],\n    pixel: [\"fapr\"],\n    mosaic: [\"fams\"],\n    vellum: [\"favs\"],\n    whiteboard: [\"fawsb\"],\n    thumbprint: [\"fatl\"],\n    notdog: [\"fans\"],\n    \"notdog-duo\": [\"fands\"],\n    etch: [\"faes\"],\n    graphite: [\"fagt\"],\n    jelly: [\"fajr\"],\n    \"jelly-fill\": [\"fajfr\"],\n    \"jelly-duo\": [\"fajdr\"],\n    chisel: [\"facr\"],\n    utility: [\"fausb\"],\n    \"utility-duo\": [\"faudsb\"],\n    \"utility-fill\": [\"faufsb\"]\n  },\n  da = {\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    slab: {\n      faslr: \"fa-regular\"\n    },\n    \"slab-press\": {\n      faslpr: \"fa-regular\"\n    },\n    \"slab-duo\": {\n      fasldr: \"fa-regular\"\n    },\n    \"slab-press-duo\": {\n      faslpdr: \"fa-regular\"\n    },\n    pixel: {\n      fapr: \"fa-regular\"\n    },\n    mosaic: {\n      fams: \"fa-solid\"\n    },\n    vellum: {\n      favs: \"fa-solid\"\n    },\n    whiteboard: {\n      fawsb: \"fa-semibold\"\n    },\n    thumbprint: {\n      fatl: \"fa-light\"\n    },\n    notdog: {\n      fans: \"fa-solid\"\n    },\n    \"notdog-duo\": {\n      fands: \"fa-solid\"\n    },\n    etch: {\n      faes: \"fa-solid\"\n    },\n    graphite: {\n      fagt: \"fa-thin\"\n    },\n    jelly: {\n      fajr: \"fa-regular\"\n    },\n    \"jelly-fill\": {\n      fajfr: \"fa-regular\"\n    },\n    \"jelly-duo\": {\n      fajdr: \"fa-regular\"\n    },\n    chisel: {\n      facr: \"fa-regular\"\n    },\n    utility: {\n      fausb: \"fa-semibold\"\n    },\n    \"utility-duo\": {\n      faudsb: \"fa-semibold\"\n    },\n    \"utility-fill\": {\n      faufsb: \"fa-semibold\"\n    }\n  },\n  tl = [\"fa-solid\", \"fa-regular\", \"fa-light\", \"fa-thin\", \"fa-duotone\", \"fa-brands\", \"fa-semibold\"],\n  ha = [\"fa\", \"fas\", \"far\", \"fal\", \"fat\", \"fad\", \"fadr\", \"fadl\", \"fadt\", \"fab\", \"fass\", \"fasr\", \"fasl\", \"fast\", \"fasds\", \"fasdr\", \"fasdl\", \"fasdt\", \"faslr\", \"faslpr\", \"fasldr\", \"faslpdr\", \"fapr\", \"fams\", \"favs\", \"fawsb\", \"fatl\", \"fans\", \"fands\", \"faes\", \"fagt\", \"fajr\", \"fajfr\", \"fajdr\", \"facr\", \"fausb\", \"faudsb\", \"faufsb\"].concat(n$1, tl),\n  el$1 = [\"solid\", \"regular\", \"light\", \"thin\", \"duotone\", \"brands\", \"semibold\"],\n  sl$1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],\n  ol$1 = sl$1.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]),\n  rl$1 = [\"aw\", \"fw\", \"pull-left\", \"pull-right\"],\n  ga = [].concat(_toConsumableArray(Object.keys(al$1)), el$1, rl$1, [\"2xs\", \"xs\", \"sm\", \"lg\", \"xl\", \"2xl\", \"beat\", \"beat-fade\", \"border\", \"bounce\", \"buzz\", \"canvas-square\", \"canvas-roomy\", \"fade\", \"flip-360\", \"flip-both\", \"flip-horizontal\", \"flip-vertical\", \"flip\", \"float\", \"inverse\", \"jello\", \"layers\", \"layers-bottom-left\", \"layers-bottom-right\", \"layers-counter\", \"layers-text\", \"layers-top-left\", \"layers-top-right\", \"li\", \"pull-end\", \"pull-start\", \"pulse\", \"rotate-180\", \"rotate-270\", \"rotate-90\", \"rotate-by\", \"shake\", \"spin-pulse\", \"spin-reverse\", \"spin\", \"spin-snap\", \"spin-snap-4\", \"spin-snap-8\", \"stack-1x\", \"stack-2x\", \"stack\", \"swing\", \"ul\", \"wag\", \"width-auto\", \"width-fixed\", l$1.GROUP, l$1.SWAP_OPACITY, l$1.PRIMARY, l$1.SECONDARY]).concat(sl$1.map(function (s) {\n    return \"\".concat(s, \"x\");\n  })).concat(ol$1.map(function (s) {\n    return \"w-\".concat(s);\n  }));\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\nvar NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\nvar UNITS_IN_GRID = 16;\nvar DEFAULT_CSS_PREFIX = 'fa';\nvar DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';\nvar DATA_FA_I2SVG = 'data-fa-i2svg';\nvar DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';\nvar DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';\nvar DATA_PREFIX = 'data-prefix';\nvar DATA_ICON = 'data-icon';\nvar HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';\nvar MUTATION_APPROACH_ASYNC = 'async';\nvar TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];\nvar PSEUDO_ELEMENTS = ['::before', '::after', ':before', ':after'];\nvar PRODUCTION = function () {\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: function get(target, prop) {\n      return prop in target ? target[prop] : target[u];\n    }\n  });\n}\nvar _PREFIX_TO_STYLE = _objectSpread2({}, rl);\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[u] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n  'fa-duotone': 'duotone'\n}), rl[u]), rt['kit']), rt['kit-duotone']);\nvar PREFIX_TO_STYLE = familyProxy(_PREFIX_TO_STYLE);\nvar _STYLE_TO_PREFIX = _objectSpread2({}, $l);\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[u] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n  duotone: 'fad'\n}), _STYLE_TO_PREFIX[u]), St['kit']), St['kit-duotone']);\nvar STYLE_TO_PREFIX = familyProxy(_STYLE_TO_PREFIX);\nvar _PREFIX_TO_LONG_STYLE = _objectSpread2({}, da);\n_PREFIX_TO_LONG_STYLE[u] = _objectSpread2(_objectSpread2({}, _PREFIX_TO_LONG_STYLE[u]), It['kit']);\nvar PREFIX_TO_LONG_STYLE = familyProxy(_PREFIX_TO_LONG_STYLE);\nvar _LONG_STYLE_TO_PREFIX = _objectSpread2({}, ra);\n_LONG_STYLE_TO_PREFIX[u] = _objectSpread2(_objectSpread2({}, _LONG_STYLE_TO_PREFIX[u]), mt['kit']);\nvar LONG_STYLE_TO_PREFIX = familyProxy(_LONG_STYLE_TO_PREFIX);\nvar ICON_SELECTION_SYNTAX_PATTERN = Z;\nvar LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\nvar FONT_FAMILY_PATTERN = $;\nvar _FONT_WEIGHT_TO_PREFIX = _objectSpread2({}, Al);\nvar FONT_WEIGHT_TO_PREFIX = familyProxy(_FONT_WEIGHT_TO_PREFIX);\nvar ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];\nvar DUOTONE_CLASSES = il;\nvar RESERVED_CLASSES = [].concat(_toConsumableArray(it), _toConsumableArray(ga));\n\nvar 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  var 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-search-pseudo-elements', 'searchPseudoElements'], ['data-search-pseudo-elements-warnings', 'searchPseudoElementsWarnings'], ['data-search-pseudo-elements-full-scan', 'searchPseudoElementsFullScan'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n  attrs.forEach(function (_ref) {\n    var _ref2 = _slicedToArray(_ref, 2),\n      attr = _ref2[0],\n      key = _ref2[1];\n    var val = coerce(getAttrConfig(attr));\n    if (val !== undefined && val !== null) {\n      initial[key] = val;\n    }\n  });\n}\nvar _default = {\n  styleDefault: 'solid',\n  familyDefault: u,\n  cssPrefix: DEFAULT_CSS_PREFIX,\n  replacementClass: DEFAULT_REPLACEMENT_CLASS,\n  autoReplaceSvg: true,\n  autoAddCss: true,\n  searchPseudoElements: false,\n  searchPseudoElementsWarnings: true,\n  searchPseudoElementsFullScan: 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}\nvar _config = _objectSpread2(_objectSpread2({}, _default), initial);\nif (!_config.autoReplaceSvg) _config.observeMutations = false;\nvar config = {};\nObject.keys(_default).forEach(function (key) {\n  Object.defineProperty(config, key, {\n    enumerable: true,\n    set: function set(val) {\n      _config[key] = val;\n      _onChangeCb.forEach(function (cb) {\n        return cb(config);\n      });\n    },\n    get: function get() {\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 set(val) {\n    _config.cssPrefix = val;\n    _onChangeCb.forEach(function (cb) {\n      return cb(config);\n    });\n  },\n  get: function get() {\n    return _config.cssPrefix;\n  }\n});\nWINDOW.FontAwesomeConfig = config;\nvar _onChangeCb = [];\nfunction onChange(cb) {\n  _onChangeCb.push(cb);\n  return function () {\n    _onChangeCb.splice(_onChangeCb.indexOf(cb), 1);\n  };\n}\n\nvar d$2 = UNITS_IN_GRID;\nvar meaninglessTransform = {\n  size: 16,\n  x: 0,\n  y: 0,\n  rotate: 0,\n  flipX: false,\n  flipY: false\n};\nfunction insertCss(css) {\n  if (!css || !IS_DOM) {\n    return;\n  }\n  var style = DOCUMENT.createElement('style');\n  style.setAttribute('type', 'text/css');\n  style.innerHTML = css;\n  var headChildren = DOCUMENT.head.childNodes;\n  var beforeChild = null;\n  for (var i = headChildren.length - 1; i > -1; i--) {\n    var child = headChildren[i];\n    var 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}\nvar idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\nfunction nextUniqueId() {\n  var size = 12;\n  var id = '';\n  while (size-- > 0) {\n    id += idPool[Math.random() * 62 | 0];\n  }\n  return id;\n}\nfunction toArray(obj) {\n  var array = [];\n  for (var 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(function (i) {\n      return i;\n    });\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(function (acc, attributeName) {\n    return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n  }, '').trim();\n}\nfunction joinStyles(styles) {\n  return Object.keys(styles || {}).reduce(function (acc, styleName) {\n    return acc + \"\".concat(styleName, \": \").concat(styles[styleName].trim(), \";\");\n  }, '');\n}\nfunction transformIsMeaningful(transform) {\n  return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n}\nfunction transformForSvg(_ref) {\n  var transform = _ref.transform,\n    containerWidth = _ref.containerWidth,\n    iconWidth = _ref.iconWidth;\n  var outer = {\n    transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n  };\n  var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n  var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n  var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n  var inner = {\n    transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n  };\n  var path = {\n    transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n  };\n  return {\n    outer: outer,\n    inner: inner,\n    path: path\n  };\n}\nfunction transformForCss(_ref2) {\n  var transform = _ref2.transform,\n    _ref2$width = _ref2.width,\n    width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,\n    _ref2$height = _ref2.height,\n    height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,\n    _ref2$startCentered = _ref2.startCentered,\n    startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;\n  var val = '';\n  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 7 Free';\\n  --fa-font-regular: normal 400 1em/1 'Font Awesome 7 Free';\\n  --fa-font-light: normal 300 1em/1 'Font Awesome 7 Pro';\\n  --fa-font-thin: normal 100 1em/1 'Font Awesome 7 Pro';\\n  --fa-font-duotone: normal 900 1em/1 'Font Awesome 7 Duotone';\\n  --fa-font-duotone-regular: normal 400 1em/1 'Font Awesome 7 Duotone';\\n  --fa-font-duotone-light: normal 300 1em/1 'Font Awesome 7 Duotone';\\n  --fa-font-duotone-thin: normal 100 1em/1 'Font Awesome 7 Duotone';\\n  --fa-font-brands: normal 400 1em/1 'Font Awesome 7 Brands';\\n  --fa-font-sharp-solid: normal 900 1em/1 'Font Awesome 7 Sharp';\\n  --fa-font-sharp-regular: normal 400 1em/1 'Font Awesome 7 Sharp';\\n  --fa-font-sharp-light: normal 300 1em/1 'Font Awesome 7 Sharp';\\n  --fa-font-sharp-thin: normal 100 1em/1 'Font Awesome 7 Sharp';\\n  --fa-font-sharp-duotone-solid: normal 900 1em/1 'Font Awesome 7 Sharp Duotone';\\n  --fa-font-sharp-duotone-regular: normal 400 1em/1 'Font Awesome 7 Sharp Duotone';\\n  --fa-font-sharp-duotone-light: normal 300 1em/1 'Font Awesome 7 Sharp Duotone';\\n  --fa-font-sharp-duotone-thin: normal 100 1em/1 'Font Awesome 7 Sharp Duotone';\\n  --fa-font-slab-regular: normal 400 1em/1 'Font Awesome 7 Slab';\\n  --fa-font-slab-press-regular: normal 400 1em/1 'Font Awesome 7 Slab Press';\\n  --fa-font-slab-duo-regular: normal 400 1em/1 'Font Awesome 7 Slab Duo';\\n  --fa-font-slab-press-duo-regular: normal 400 1em/1 'Font Awesome 7 Slab Press Duo';\\n  --fa-font-pixel-regular: normal 400 1em/1 'Font Awesome 7 Pixel';\\n  --fa-font-mosaic-solid: normal 900 1em/1 'Font Awesome 7 Mosaic';\\n  --fa-font-vellum-solid: normal 900 1em/1 'Font Awesome 7 Vellum';\\n  --fa-font-whiteboard-semibold: normal 600 1em/1 'Font Awesome 7 Whiteboard';\\n  --fa-font-thumbprint-light: normal 300 1em/1 'Font Awesome 7 Thumbprint';\\n  --fa-font-notdog-solid: normal 900 1em/1 'Font Awesome 7 Notdog';\\n  --fa-font-notdog-duo-solid: normal 900 1em/1 'Font Awesome 7 Notdog Duo';\\n  --fa-font-etch-solid: normal 900 1em/1 'Font Awesome 7 Etch';\\n  --fa-font-graphite-thin: normal 100 1em/1 'Font Awesome 7 Graphite';\\n  --fa-font-jelly-regular: normal 400 1em/1 'Font Awesome 7 Jelly';\\n  --fa-font-jelly-fill-regular: normal 400 1em/1 'Font Awesome 7 Jelly Fill';\\n  --fa-font-jelly-duo-regular: normal 400 1em/1 'Font Awesome 7 Jelly Duo';\\n  --fa-font-chisel-regular: normal 400 1em/1 'Font Awesome 7 Chisel';\\n  --fa-font-utility-semibold: normal 600 1em/1 'Font Awesome 7 Utility';\\n  --fa-font-utility-duo-semibold: normal 600 1em/1 'Font Awesome 7 Utility Duo';\\n  --fa-font-utility-fill-semibold: normal 600 1em/1 'Font Awesome 7 Utility Fill';\\n}\\n\\n.svg-inline--fa {\\n  box-sizing: content-box;\\n  display: var(--fa-display, inline-block);\\n  height: 1em;\\n  overflow: visible;\\n  vertical-align: -0.125em;\\n  width: var(--fa-width, 1.25em);\\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.0714285714em;\\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.svg-inline--fa .fa-pull-start {\\n  float: inline-start;\\n  margin-inline-end: var(--fa-pull-margin, 0.3em);\\n}\\n.svg-inline--fa.fa-pull-right,\\n.svg-inline--fa .fa-pull-end {\\n  float: inline-end;\\n  margin-inline-start: var(--fa-pull-margin, 0.3em);\\n}\\n.svg-inline--fa.fa-li {\\n  width: var(--fa-li-width, 2em);\\n  inset-inline-start: calc(-1 * var(--fa-li-width, 2em));\\n  inset-block-start: 0.25em; /* syncing vertical alignment with Web Font rendering */\\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: var(--fa-width, 1.25em);\\n}\\n.fa-layers .svg-inline--fa {\\n  inset: 0;\\n  margin: auto;\\n  position: absolute;\\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: calc(10 / 16 * 1em); /* converts a 10px size into an em-based value that's relative to the scale's 16px base */\\n  line-height: calc(1 / 10 * 1em); /* sets the line-height of the icon back to that of it's parent */\\n  vertical-align: calc((6 / 10 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\\n}\\n\\n.fa-xs {\\n  font-size: calc(12 / 16 * 1em); /* converts a 12px size into an em-based value that's relative to the scale's 16px base */\\n  line-height: calc(1 / 12 * 1em); /* sets the line-height of the icon back to that of it's parent */\\n  vertical-align: calc((6 / 12 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\\n}\\n\\n.fa-sm {\\n  font-size: calc(14 / 16 * 1em); /* converts a 14px size into an em-based value that's relative to the scale's 16px base */\\n  line-height: calc(1 / 14 * 1em); /* sets the line-height of the icon back to that of it's parent */\\n  vertical-align: calc((6 / 14 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\\n}\\n\\n.fa-lg {\\n  font-size: calc(20 / 16 * 1em); /* converts a 20px size into an em-based value that's relative to the scale's 16px base */\\n  line-height: calc(1 / 20 * 1em); /* sets the line-height of the icon back to that of it's parent */\\n  vertical-align: calc((6 / 20 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\\n}\\n\\n.fa-xl {\\n  font-size: calc(24 / 16 * 1em); /* converts a 24px size into an em-based value that's relative to the scale's 16px base */\\n  line-height: calc(1 / 24 * 1em); /* sets the line-height of the icon back to that of it's parent */\\n  vertical-align: calc((6 / 24 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\\n}\\n\\n.fa-2xl {\\n  font-size: calc(32 / 16 * 1em); /* converts a 32px size into an em-based value that's relative to the scale's 16px base */\\n  line-height: calc(1 / 32 * 1em); /* sets the line-height of the icon back to that of it's parent */\\n  vertical-align: calc((6 / 32 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\\n}\\n\\n.fa-width-auto {\\n  --fa-width: auto;\\n}\\n\\n.fa-fw,\\n.fa-width-fixed {\\n  --fa-width: 1.25em;\\n}\\n\\n.fa-canvas-square {\\n  padding-block: 0.125em;\\n  margin-block-end: -0.125em;\\n}\\n\\n.fa-canvas-roomy {\\n  padding-block: 0.25em;\\n  padding-inline: 0.125em;\\n  margin-block-end: -0.25em;\\n  box-sizing: content-box;\\n}\\n\\n.fa-ul {\\n  list-style-type: none;\\n  margin-inline-start: var(--fa-li-margin, 2.5em);\\n  padding-inline-start: 0;\\n}\\n.fa-ul > li {\\n  position: relative;\\n}\\n\\n.fa-li {\\n  inset-inline-start: 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/* Heads Up: Bordered Icons will not be supported in the future!\\n  - This feature will be deprecated in the next major release of Font Awesome (v8)!\\n  - You may continue to use it in this version *v7), but it will not be supported in Font Awesome v8.\\n*/\\n/* Notes:\\n* --@{v.$css-prefix}-border-width = 1/16 by default (to render as ~1px based on a 16px default font-size)\\n* --@{v.$css-prefix}-border-padding =\\n  ** 3/16 for vertical padding (to give ~2px of vertical whitespace around an icon considering it's vertical alignment)\\n  ** 4/16 for horizontal padding (to give ~4px of horizontal whitespace around an icon)\\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.0625em);\\n  box-sizing: var(--fa-border-box-sizing, content-box);\\n  padding: var(--fa-border-padding, 0.1875em 0.25em);\\n}\\n\\n.fa-pull-left,\\n.fa-pull-start {\\n  float: inline-start;\\n  margin-inline-end: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-pull-right,\\n.fa-pull-end {\\n  float: inline-end;\\n  margin-inline-start: 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, ease-in-out);\\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, ease-in-out);\\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, 1.5s);\\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-flip-360 {\\n  animation-name: fa-flip-360;\\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, 0.75s);\\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-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.fa-spin-snap {\\n  animation-name: fa-spin-snap;\\n  animation-delay: var(--fa-animation-delay, 0s);\\n  animation-direction: var(--fa-animation-direction, normal);\\n  animation-duration: var(--fa-animation-duration, 3s);\\n  animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n  animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin-snap-4 {\\n  animation-name: fa-spin-snap-4;\\n  animation-delay: var(--fa-animation-delay, 0s);\\n  animation-direction: var(--fa-animation-direction, normal);\\n  animation-duration: var(--fa-animation-duration, 2.4s);\\n  animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n  animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin-snap-8 {\\n  animation-name: fa-spin-snap-8;\\n  animation-delay: var(--fa-animation-delay, 0s);\\n  animation-direction: var(--fa-animation-direction, normal);\\n  animation-duration: var(--fa-animation-duration, 4s);\\n  animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n  animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-buzz {\\n  animation-name: fa-buzz;\\n  animation-delay: var(--fa-animation-delay, 0s);\\n  animation-direction: var(--fa-animation-direction, normal);\\n  animation-duration: var(--fa-animation-duration, 0.6s);\\n  animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n  animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-wag {\\n  animation-name: fa-wag;\\n  animation-delay: var(--fa-animation-delay, 0s);\\n  animation-direction: var(--fa-animation-direction, normal);\\n  animation-duration: var(--fa-animation-duration, 0.9s);\\n  animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n  animation-timing-function: var(--fa-animation-timing, ease-out);\\n  transform-origin: bottom center;\\n}\\n\\n.fa-float {\\n  animation-name: fa-float;\\n  animation-delay: var(--fa-animation-delay, 0s);\\n  animation-direction: var(--fa-animation-direction, normal);\\n  animation-duration: var(--fa-animation-duration, 3s);\\n  animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n  animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n  will-change: transform;\\n}\\n\\n.fa-swing {\\n  animation-name: fa-swing;\\n  animation-delay: var(--fa-animation-delay, 0s);\\n  animation-direction: var(--fa-animation-direction, normal);\\n  animation-duration: var(--fa-animation-duration, 1.2s);\\n  animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n  animation-timing-function: var(--fa-animation-timing, ease-out);\\n  transform-origin: top center;\\n}\\n\\n.fa-jello {\\n  animation-name: fa-jello;\\n  animation-delay: var(--fa-animation-delay, 0s);\\n  animation-direction: var(--fa-animation-direction, normal);\\n  animation-duration: var(--fa-animation-duration, 0.9s);\\n  animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n  animation-timing-function: var(--fa-animation-timing, ease-out);\\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-flip-360,\\n  .fa-pulse,\\n  .fa-shake,\\n  .fa-spin,\\n  .fa-spin-pulse,\\n  .fa-buzz,\\n  .fa-float,\\n  .fa-jello,\\n  .fa-spin-snap,\\n  .fa-spin-snap-4,\\n  .fa-spin-snap-8,\\n  .fa-swing,\\n  .fa-wag {\\n    animation: none !important;\\n    transition: none !important;\\n  }\\n}\\n@keyframes fa-beat {\\n  0% {\\n    transform: scale(1);\\n  }\\n  25% {\\n    transform: scale(calc(1.25 * var(--fa-beat-scale, 1.25)));\\n  }\\n  45% {\\n    transform: scale(calc(1.22 * var(--fa-beat-scale, 1.22)));\\n  }\\n  65% {\\n    transform: scale(calc(1.25 * var(--fa-beat-scale, 1.25)));\\n  }\\n  90% {\\n    transform: scale(1);\\n  }\\n}\\n@keyframes fa-bounce {\\n  0% {\\n    transform: scale(1, 1) translateY(0);\\n    animation-timing-function: var(--fa-animation-timing);\\n  }\\n  14% {\\n    transform: scale(var(--fa-bounce-start-scale-x, 1.06), var(--fa-bounce-start-scale-y, 0.94)) translateY(var(--fa-bounce-anticipation, 3px));\\n    animation-timing-function: cubic-bezier(0.33, 0, 0.66, 0.33);\\n  }\\n  32% {\\n    transform: scale(var(--fa-bounce-jump-scale-x, 0.94), var(--fa-bounce-jump-scale-y, 1.12)) translateY(calc(-1 * var(--fa-bounce-height, 0.5em)));\\n    animation-timing-function: cubic-bezier(0.33, 0.66, 0.66, 1);\\n  }\\n  52% {\\n    transform: scale(1, 1) translateY(calc(-1 * var(--fa-bounce-height, 0.5em) * 1.1));\\n    animation-timing-function: cubic-bezier(0.5, 0, 1, 0.5);\\n  }\\n  70% {\\n    transform: scale(var(--fa-bounce-land-scale-x, 1.06), var(--fa-bounce-land-scale-y, 0.92)) translateY(0);\\n    animation-timing-function: cubic-bezier(0.33, 0.33, 0.66, 1);\\n  }\\n  85% {\\n    transform: scale(0.98, 1.04) translateY(calc(-2px * var(--fa-bounce-rebound, 1)));\\n    animation-timing-function: cubic-bezier(0.33, 0, 0.66, 1);\\n  }\\n  100% {\\n    transform: scale(1, 1) translateY(0);\\n  }\\n}\\n@keyframes fa-fade {\\n  0% {\\n    opacity: 1;\\n    transform: scale(1);\\n    animation-timing-function: cubic-bezier(0.2, 0, 0.4, 1);\\n  }\\n  40% {\\n    opacity: var(--fa-fade-opacity, 0.4);\\n    transform: scale(0.98);\\n    animation-timing-function: cubic-bezier(0.4, 0, 0.6, 1);\\n  }\\n  100% {\\n    opacity: 1;\\n    transform: scale(1);\\n  }\\n}\\n@keyframes fa-beat-fade {\\n  0% {\\n    opacity: var(--fa-beat-fade-opacity, 0.4);\\n    transform: scale(1);\\n    animation-timing-function: cubic-bezier(0.2, 0, 0.4, 1);\\n  }\\n  25% {\\n    opacity: calc(var(--fa-beat-fade-opacity, 0.4) + 0.4);\\n    transform: scale(var(--fa-beat-fade-scale, 1.28));\\n    animation-timing-function: cubic-bezier(0.4, 0, 0.6, 1);\\n  }\\n  45% {\\n    opacity: 1;\\n    transform: scale(var(--fa-beat-fade-scale, 1.25));\\n    animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n  }\\n  65% {\\n    opacity: calc(var(--fa-beat-fade-opacity, 0.4) + 0.4);\\n    transform: scale(var(--fa-beat-fade-scale, 1.28));\\n    animation-timing-function: cubic-bezier(0.4, 0, 0.6, 1);\\n  }\\n  100% {\\n    opacity: var(--fa-beat-fade-opacity, 0.4);\\n    transform: scale(1);\\n  }\\n}\\n@keyframes fa-flip {\\n  0% {\\n    transform: perspective(2em) scale(1) rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), 0deg);\\n    animation-timing-function: cubic-bezier(0.2, 0, 0.4, 1);\\n  }\\n  8% {\\n    transform: perspective(2em) scale(var(--fa-flip-anticipation-scale, 0.95)) rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), 0deg);\\n    animation-timing-function: cubic-bezier(0.33, 0, 0.66, 0.33);\\n  }\\n  35% {\\n    transform: perspective(2em) scale(1) rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), calc(var(--fa-flip-angle, -360deg) * 0.6));\\n    animation-timing-function: linear;\\n  }\\n  65% {\\n    transform: perspective(2em) scale(1) rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), calc(var(--fa-flip-angle, -360deg) * 0.5));\\n    animation-timing-function: cubic-bezier(0.33, 0.66, 0.66, 1);\\n  }\\n  92% {\\n    transform: perspective(2em) scale(1) rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), calc(var(--fa-flip-angle, -360deg) * var(--fa-flip-overshoot, 1.04)));\\n    animation-timing-function: cubic-bezier(0.33, 0, 0.66, 1);\\n  }\\n  100% {\\n    transform: perspective(2em) scale(1) rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -360deg));\\n  }\\n}\\n@keyframes fa-flip-360 {\\n  0% {\\n    transform: perspective(2em) scale(1) rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), 0deg);\\n    animation-timing-function: cubic-bezier(0.2, 0, 0.4, 1);\\n  }\\n  8% {\\n    transform: perspective(2em) scale(var(--fa-flip-anticipation-scale, 0.95)) rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), 0deg);\\n    animation-timing-function: cubic-bezier(0.33, 0, 0.66, 0.33);\\n  }\\n  50% {\\n    transform: perspective(2em) scale(1) rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), calc(var(--fa-flip-angle, -360deg) * 0.6));\\n    animation-timing-function: cubic-bezier(0.33, 0.66, 0.66, 1);\\n  }\\n  80% {\\n    transform: perspective(2em) scale(1) rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), calc(var(--fa-flip-angle, -360deg) * var(--fa-flip-overshoot, 1.04)));\\n    animation-timing-function: cubic-bezier(0.33, 0, 0.66, 1);\\n  }\\n  100% {\\n    transform: perspective(2em) scale(1) rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -360deg));\\n  }\\n}\\n@keyframes fa-shake {\\n  0% {\\n    transform: rotate(0deg);\\n    animation-timing-function: cubic-bezier(0.2, 0, 0.8, 1);\\n  }\\n  8% {\\n    transform: rotate(35deg) translateX(1px);\\n    animation-timing-function: cubic-bezier(0.3, 0, 0.7, 1);\\n  }\\n  20% {\\n    transform: rotate(-22deg) translateX(-1px);\\n    animation-timing-function: cubic-bezier(0.3, 0, 0.7, 1);\\n  }\\n  35% {\\n    transform: rotate(15deg) translateX(1px);\\n    animation-timing-function: cubic-bezier(0.3, 0, 0.7, 1);\\n  }\\n  50% {\\n    transform: rotate(-9deg);\\n    animation-timing-function: cubic-bezier(0.4, 0, 0.6, 1);\\n  }\\n  65% {\\n    transform: rotate(5deg);\\n    animation-timing-function: cubic-bezier(0.4, 0, 0.6, 1);\\n  }\\n  78% {\\n    transform: rotate(-3deg);\\n    animation-timing-function: cubic-bezier(0.4, 0, 0.6, 1);\\n  }\\n  90% {\\n    transform: rotate(1deg);\\n    animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n  }\\n  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@keyframes fa-spin-snap {\\n  0% {\\n    transform: rotate(0deg);\\n    animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\\n  }\\n  12% {\\n    transform: rotate(60deg);\\n    animation-timing-function: cubic-bezier(0.8, 0, 1, 1);\\n  }\\n  16.67% {\\n    transform: rotate(60deg);\\n    animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\\n  }\\n  28.67% {\\n    transform: rotate(120deg);\\n    animation-timing-function: cubic-bezier(0.8, 0, 1, 1);\\n  }\\n  33.33% {\\n    transform: rotate(120deg);\\n    animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\\n  }\\n  45.33% {\\n    transform: rotate(180deg);\\n    animation-timing-function: cubic-bezier(0.8, 0, 1, 1);\\n  }\\n  50% {\\n    transform: rotate(180deg);\\n    animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\\n  }\\n  62% {\\n    transform: rotate(240deg);\\n    animation-timing-function: cubic-bezier(0.8, 0, 1, 1);\\n  }\\n  66.67% {\\n    transform: rotate(240deg);\\n    animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\\n  }\\n  78.67% {\\n    transform: rotate(300deg);\\n    animation-timing-function: cubic-bezier(0.8, 0, 1, 1);\\n  }\\n  83.33% {\\n    transform: rotate(300deg);\\n    animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\\n  }\\n  95.33% {\\n    transform: rotate(360deg);\\n    animation-timing-function: cubic-bezier(0.8, 0, 1, 1);\\n  }\\n  100% {\\n    transform: rotate(360deg);\\n  }\\n}\\n@keyframes fa-spin-snap-4 {\\n  0% {\\n    transform: rotate(0deg);\\n    animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\\n  }\\n  15% {\\n    transform: rotate(90deg);\\n    animation-timing-function: cubic-bezier(0.8, 0, 1, 1);\\n  }\\n  25% {\\n    transform: rotate(90deg);\\n    animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\\n  }\\n  40% {\\n    transform: rotate(180deg);\\n    animation-timing-function: cubic-bezier(0.8, 0, 1, 1);\\n  }\\n  50% {\\n    transform: rotate(180deg);\\n    animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\\n  }\\n  65% {\\n    transform: rotate(270deg);\\n    animation-timing-function: cubic-bezier(0.8, 0, 1, 1);\\n  }\\n  75% {\\n    transform: rotate(270deg);\\n    animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\\n  }\\n  90% {\\n    transform: rotate(360deg);\\n    animation-timing-function: cubic-bezier(0.8, 0, 1, 1);\\n  }\\n  100% {\\n    transform: rotate(360deg);\\n  }\\n}\\n@keyframes fa-spin-snap-8 {\\n  0% {\\n    transform: rotate(0deg);\\n    animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\\n  }\\n  9% {\\n    transform: rotate(45deg);\\n    animation-timing-function: cubic-bezier(0.8, 0, 1, 1);\\n  }\\n  12.5% {\\n    transform: rotate(45deg);\\n    animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\\n  }\\n  21.5% {\\n    transform: rotate(90deg);\\n    animation-timing-function: cubic-bezier(0.8, 0, 1, 1);\\n  }\\n  25% {\\n    transform: rotate(90deg);\\n    animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\\n  }\\n  34% {\\n    transform: rotate(135deg);\\n    animation-timing-function: cubic-bezier(0.8, 0, 1, 1);\\n  }\\n  37.5% {\\n    transform: rotate(135deg);\\n    animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\\n  }\\n  46.5% {\\n    transform: rotate(180deg);\\n    animation-timing-function: cubic-bezier(0.8, 0, 1, 1);\\n  }\\n  50% {\\n    transform: rotate(180deg);\\n    animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\\n  }\\n  59% {\\n    transform: rotate(225deg);\\n    animation-timing-function: cubic-bezier(0.8, 0, 1, 1);\\n  }\\n  62.5% {\\n    transform: rotate(225deg);\\n    animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\\n  }\\n  71.5% {\\n    transform: rotate(270deg);\\n    animation-timing-function: cubic-bezier(0.8, 0, 1, 1);\\n  }\\n  75% {\\n    transform: rotate(270deg);\\n    animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\\n  }\\n  84% {\\n    transform: rotate(315deg);\\n    animation-timing-function: cubic-bezier(0.8, 0, 1, 1);\\n  }\\n  87.5% {\\n    transform: rotate(315deg);\\n    animation-timing-function: cubic-bezier(0, 0, 0.2, 1);\\n  }\\n  96.5% {\\n    transform: rotate(360deg);\\n    animation-timing-function: cubic-bezier(0.8, 0, 1, 1);\\n  }\\n  100% {\\n    transform: rotate(360deg);\\n  }\\n}\\n@keyframes fa-buzz {\\n  0% {\\n    transform: translateX(0) rotate(0deg);\\n    animation-timing-function: cubic-bezier(0.1, 0, 0.9, 1);\\n  }\\n  5% {\\n    transform: translateX(var(--fa-buzz-distance, 4px)) rotate(0.5deg);\\n  }\\n  10% {\\n    transform: translateX(calc(-1 * var(--fa-buzz-distance, 4px))) rotate(-0.5deg);\\n  }\\n  15% {\\n    transform: translateX(var(--fa-buzz-distance, 4px)) rotate(0.3deg);\\n  }\\n  20% {\\n    transform: translateX(calc(-1 * var(--fa-buzz-distance, 4px))) rotate(-0.3deg);\\n  }\\n  25% {\\n    transform: translateX(calc(var(--fa-buzz-distance, 4px) * 0.7)) rotate(0.2deg);\\n  }\\n  30% {\\n    transform: translateX(calc(-1 * var(--fa-buzz-distance, 4px) * 0.7)) rotate(-0.2deg);\\n  }\\n  35% {\\n    transform: translateX(calc(var(--fa-buzz-distance, 4px) * 0.4)) rotate(0.1deg);\\n  }\\n  40% {\\n    transform: translateX(0) rotate(0deg);\\n  }\\n  100% {\\n    transform: translateX(0) rotate(0deg);\\n  }\\n}\\n@keyframes fa-wag {\\n  0% {\\n    transform: rotate(0deg);\\n    animation-timing-function: cubic-bezier(0.2, 0, 0.6, 1);\\n  }\\n  12% {\\n    transform: rotate(var(--fa-wag-angle, 12deg));\\n    animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n  }\\n  24% {\\n    transform: rotate(2deg);\\n    animation-timing-function: cubic-bezier(0.2, 0, 0.6, 1);\\n  }\\n  36% {\\n    transform: rotate(calc(var(--fa-wag-angle, 12deg) * 0.85));\\n    animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n  }\\n  48% {\\n    transform: rotate(1deg);\\n    animation-timing-function: cubic-bezier(0.2, 0, 0.6, 1);\\n  }\\n  58% {\\n    transform: rotate(calc(var(--fa-wag-angle, 12deg) * 0.6));\\n    animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n  }\\n  68% {\\n    transform: rotate(0deg);\\n  }\\n  100% {\\n    transform: rotate(0deg);\\n  }\\n}\\n@keyframes fa-float {\\n  0% {\\n    transform: translateY(0) translateX(0) rotate(0deg) scale(var(--fa-float-squash-x, 1.02), var(--fa-float-squash-y, 0.98));\\n    animation-timing-function: cubic-bezier(0.33, 0, 0.66, 0.33);\\n  }\\n  15% {\\n    transform: translateY(calc(-0.4 * var(--fa-float-height, 6px))) translateX(var(--fa-float-drift, 1px)) rotate(var(--fa-float-tilt, 1deg)) scale(1, 1);\\n    animation-timing-function: cubic-bezier(0.33, 0.66, 0.66, 1);\\n  }\\n  35% {\\n    transform: translateY(calc(-1 * var(--fa-float-height, 6px))) translateX(0) rotate(0deg) scale(var(--fa-float-stretch-x, 0.98), var(--fa-float-stretch-y, 1.03));\\n    animation-timing-function: cubic-bezier(0.5, 0, 0.5, 0);\\n  }\\n  50% {\\n    transform: translateY(calc(-0.92 * var(--fa-float-height, 6px))) translateX(calc(-0.5 * var(--fa-float-drift, 1px))) rotate(calc(-0.5 * var(--fa-float-tilt, 1deg))) scale(0.995, 1.01);\\n    animation-timing-function: cubic-bezier(0.33, 0, 0.66, 0.33);\\n  }\\n  70% {\\n    transform: translateY(calc(-0.3 * var(--fa-float-height, 6px))) translateX(calc(-1 * var(--fa-float-drift, 1px))) rotate(calc(-1 * var(--fa-float-tilt, 1deg))) scale(1, 1);\\n    animation-timing-function: cubic-bezier(0.33, 0.66, 0.66, 1);\\n  }\\n  90% {\\n    transform: translateY(calc(0.05 * var(--fa-float-height, 6px))) translateX(0) rotate(0deg) scale(var(--fa-float-squash-x, 1.02), var(--fa-float-squash-y, 0.98));\\n    animation-timing-function: cubic-bezier(0.33, 0, 0.66, 1);\\n  }\\n  100% {\\n    transform: translateY(0) translateX(0) rotate(0deg) scale(var(--fa-float-squash-x, 1.02), var(--fa-float-squash-y, 0.98));\\n  }\\n}\\n@keyframes fa-swing {\\n  0% {\\n    transform: rotate(0deg);\\n    animation-timing-function: cubic-bezier(0.2, 0, 0.8, 1);\\n  }\\n  8% {\\n    transform: rotate(var(--fa-swing-angle, 22deg));\\n    animation-timing-function: cubic-bezier(0.3, 0, 0.7, 1);\\n  }\\n  18% {\\n    transform: rotate(calc(-1 * var(--fa-swing-angle, 22deg) * 0.85));\\n    animation-timing-function: cubic-bezier(0.3, 0, 0.7, 1);\\n  }\\n  28% {\\n    transform: rotate(calc(var(--fa-swing-angle, 22deg) * 0.65));\\n    animation-timing-function: cubic-bezier(0.35, 0, 0.65, 1);\\n  }\\n  38% {\\n    transform: rotate(calc(-1 * var(--fa-swing-angle, 22deg) * 0.45));\\n    animation-timing-function: cubic-bezier(0.4, 0, 0.6, 1);\\n  }\\n  48% {\\n    transform: rotate(calc(var(--fa-swing-angle, 22deg) * 0.25));\\n    animation-timing-function: cubic-bezier(0.4, 0, 0.6, 1);\\n  }\\n  56% {\\n    transform: rotate(calc(-1 * var(--fa-swing-angle, 22deg) * 0.1));\\n    animation-timing-function: cubic-bezier(0.4, 0, 0.6, 1);\\n  }\\n  64% {\\n    transform: rotate(0deg);\\n  }\\n  100% {\\n    transform: rotate(0deg);\\n  }\\n}\\n@keyframes fa-jello {\\n  0% {\\n    transform: scale(1, 1);\\n    animation-timing-function: cubic-bezier(0.2, 0, 0.8, 1);\\n  }\\n  12% {\\n    transform: scale(var(--fa-jello-scale-x, 1.15), calc(2 - var(--fa-jello-scale-x, 1.15)));\\n    animation-timing-function: cubic-bezier(0.3, 0, 0.7, 1);\\n  }\\n  24% {\\n    transform: scale(calc(2 - var(--fa-jello-scale-y, 1.12)), var(--fa-jello-scale-y, 1.12));\\n    animation-timing-function: cubic-bezier(0.3, 0, 0.7, 1);\\n  }\\n  36% {\\n    transform: scale(calc(1 + (var(--fa-jello-scale-x, 1.15) - 1) * 0.5), calc(2 - (1 + (var(--fa-jello-scale-x, 1.15) - 1) * 0.5)));\\n    animation-timing-function: cubic-bezier(0.4, 0, 0.6, 1);\\n  }\\n  48% {\\n    transform: scale(calc(2 - (1 + (var(--fa-jello-scale-y, 1.12) - 1) * 0.3)), calc(1 + (var(--fa-jello-scale-y, 1.12) - 1) * 0.3));\\n    animation-timing-function: cubic-bezier(0.4, 0, 0.6, 1);\\n  }\\n  58% {\\n    transform: scale(1.02, 0.98);\\n    animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);\\n  }\\n  68% {\\n    transform: scale(1, 1);\\n  }\\n  100% {\\n    transform: scale(1, 1);\\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.svg-inline--fa .fa-primary {\\n  fill: var(--fa-primary-color, currentColor);\\n  opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n  fill: var(--fa-secondary-color, currentColor);\\n  opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n  opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\n  opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa mask .fa-primary,\\n.svg-inline--fa mask .fa-secondary {\\n  fill: black;\\n}\\n\\n.svg-inline--fa.fa-inverse {\\n  fill: var(--fa-inverse, #fff);\\n}\\n\\n.fa-stack {\\n  display: inline-block;\\n  height: 2em;\\n  line-height: 2em;\\n  position: relative;\\n  vertical-align: middle;\\n  width: 2.5em;\\n}\\n\\n.fa-inverse {\\n  color: var(--fa-inverse, #fff);\\n}\\n\\n.svg-inline--fa.fa-stack-1x {\\n  --fa-width: 1.25em;\\n  height: 1em;\\n  width: var(--fa-width);\\n}\\n.svg-inline--fa.fa-stack-2x {\\n  --fa-width: 2.5em;\\n  height: 2em;\\n  width: var(--fa-width);\\n}\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n  inset: 0;\\n  margin: auto;\\n  position: absolute;\\n  z-index: var(--fa-stack-z-index, auto);\\n}\";\n\nfunction css() {\n  var dcp = DEFAULT_CSS_PREFIX;\n  var drc = DEFAULT_REPLACEMENT_CLASS;\n  var fp = config.cssPrefix;\n  var rc = config.replacementClass;\n  var s = baseStyles;\n  if (fp !== dcp || rc !== drc) {\n    var dPatt = new RegExp(\"\\\\.\".concat(dcp, \"\\\\-\"), 'g');\n    var customPropPatt = new RegExp(\"\\\\--\".concat(dcp, \"\\\\-\"), 'g');\n    var rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n    s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n  }\n  return s;\n}\nvar _cssInserted = false;\nfunction ensureCss() {\n  if (config.autoAddCss && !_cssInserted) {\n    insertCss(css());\n    _cssInserted = true;\n  }\n}\nvar InjectCSS = {\n  mixout: function mixout() {\n    return {\n      dom: {\n        css: css,\n        insertCss: ensureCss\n      }\n    };\n  },\n  hooks: function hooks() {\n    return {\n      beforeDOMElementCreation: function beforeDOMElementCreation() {\n        ensureCss();\n      },\n      beforeI2svg: function beforeI2svg() {\n        ensureCss();\n      }\n    };\n  }\n};\n\nvar w$2 = WINDOW || {};\nif (!w$2[NAMESPACE_IDENTIFIER]) w$2[NAMESPACE_IDENTIFIER] = {};\nif (!w$2[NAMESPACE_IDENTIFIER].styles) w$2[NAMESPACE_IDENTIFIER].styles = {};\nif (!w$2[NAMESPACE_IDENTIFIER].hooks) w$2[NAMESPACE_IDENTIFIER].hooks = {};\nif (!w$2[NAMESPACE_IDENTIFIER].shims) w$2[NAMESPACE_IDENTIFIER].shims = [];\nvar namespace = w$2[NAMESPACE_IDENTIFIER];\n\nvar functions = [];\nvar _listener = function listener() {\n  DOCUMENT.removeEventListener('DOMContentLoaded', _listener);\n  loaded = 1;\n  functions.map(function (fn) {\n    return fn();\n  });\n};\nvar 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  var tag = abstractNodes.tag,\n    _abstractNodes$attrib = abstractNodes.attributes,\n    attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,\n    _abstractNodes$childr = abstractNodes.children,\n    children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n  if (typeof abstractNodes === 'string') {\n    return htmlEscape(abstractNodes);\n  } else {\n    return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"</\").concat(tag, \">\");\n  }\n}\n\nfunction iconFromMapping(mapping, prefix, iconName) {\n  if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n    return {\n      prefix: prefix,\n      iconName: iconName,\n      icon: mapping[prefix][iconName]\n    };\n  }\n}\n\n/**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\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 * Return hexadecimal string for a unicode character\n * Returns `null` when more than one character (not bytes!) are passed\n * For example: 'K' \u2192 '7B'\n */\nfunction toHex(unicode) {\n  if (_toConsumableArray(unicode).length !== 1) return null;\n  return unicode.codePointAt(0).toString(16);\n}\n\nfunction normalizeIcons(icons) {\n  return Object.keys(icons).reduce(function (acc, iconName) {\n    var icon = icons[iconName];\n    var expanded = !!icon.icon;\n    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  var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n  var _params$skipHooks = params.skipHooks,\n    skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n  var normalized = normalizeIcons(icons);\n  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\nvar MONO = 0x1;\nvar DUO = 0x2;\n\n// New v7 compatible matchers using the style attribute to determine layer membership\nvar modernMatches = [[DUO, /*#__PURE__*/_wrapRegExp(/path opacity=\"([^\"]*)\".*d=\"([^\"]*)\".*path.*d=\"([^\"]*)\"/, {\n  d2: 2,\n  d1: 3\n})], [DUO, /*#__PURE__*/_wrapRegExp(/path opacity=\"([^\"]*)\".*d=\"([^\"]*)\"/, {\n  d2: 2\n})], [MONO, /*#__PURE__*/_wrapRegExp(/path fill=\"currentColor\".*d=\"([^\"]+)\"/, {\n  d1: 1\n})]];\n\n// Old <= v6 matchers, these should rarely get used.\n//\n// Why are there so many? Over the lifecycle of version 5 and 6 we modified the\n// syntax for our source SVG files several times. These patterns match the\n// historical record and attempt to handle backwards-compatibility in rare edge\n// cases (loading version 6 SVG source files using the version 7 SVG parser)\nvar legacyMatches = [[DUO, /*#__PURE__*/_wrapRegExp(/path class=\"([^\"]*secondary[^\"]*)\".*d=\"([^\"]+)\".*path class=\"([^\"]*primary[^\"]*)\".*d=\"([^\"]+)\"/, {\n  attr2: 1,\n  d2: 2,\n  attr1: 3,\n  d1: 4\n})], [DUO, /*#__PURE__*/_wrapRegExp(/path class=\"([^\"]*primary[^\"]*)\".*d=\"([^\"]+)\".*path class=\"([^\"]*secondary[^\"]*)\".*d=\"([^\"]+)\"/, {\n  attr1: 1,\n  d1: 2,\n  attr2: 3,\n  d2: 4\n})], [DUO, /*#__PURE__*/_wrapRegExp(/path class=\"([^\"]*primary[^\"]*)\".*d=\"([^\"]+)\"/, {\n  attr1: 1,\n  d1: 2\n})], [DUO, /*#__PURE__*/_wrapRegExp(/path class=\"([^\"]*secondary[^\"]*)\".*d=\"([^\"]+)\"/, {\n  attr2: 1,\n  d2: 2\n})], [DUO, /*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\".*class=\"([^\"]*secondary[^\"]*)\".*path d=\"([^\"]+)\".*class=\"([^\"]*primary[^\"]*)\"/, {\n  d2: 1,\n  attr2: 2,\n  d1: 3,\n  attr1: 4\n})], [DUO, /*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\".*class=\"([^\"]*primary[^\"]*)\".*path d=\"([^\"]+)\".*class=\"([^\"]*secondary[^\"]*)\"/, {\n  d1: 1,\n  attr1: 2,\n  d2: 3,\n  attr2: 4\n})], [DUO, /*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\".*class=\"([^\"]*primary[^\"]*)\"/, {\n  d1: 1,\n  attr1: 2\n})], [DUO, /*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\".*class=\"([^\"]*secondary[^\"]*)\"/, {\n  d2: 1,\n  attr2: 2\n})], [DUO, /*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\".*path d=\"([^\"]+)\"/, {\n  d1: 1,\n  d2: 2\n})], [MONO, /*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\"/, {\n  d1: 1\n})], [MONO, /*#__PURE__*/_wrapRegExp(/path style=\"([^\"]+)\".*d=\"([^\"]+)\"/, {\n  attr1: 1,\n  d1: 2\n})]];\n\nvar styles = namespace.styles,\n  shims = namespace.shims;\nvar FAMILY_NAMES = Object.keys(PREFIX_TO_LONG_STYLE);\nvar PREFIXES_FOR_FAMILY = FAMILY_NAMES.reduce(function (acc, familyId) {\n  acc[familyId] = Object.keys(PREFIX_TO_LONG_STYLE[familyId]);\n  return acc;\n}, {});\nvar _defaultUsablePrefix = null;\nvar _byUnicode = {};\nvar _byLigature = {};\nvar _byOldName = {};\nvar _byOldUnicode = {};\nvar _byAlias = {};\nfunction isReserved(name) {\n  return ~RESERVED_CLASSES.indexOf(name);\n}\nfunction getIconName(cssPrefix, cls) {\n  var parts = cls.split('-');\n  var prefix = parts[0];\n  var iconName = parts.slice(1).join('-');\n  if (prefix === cssPrefix && iconName !== '' && !isReserved(iconName)) {\n    return iconName;\n  } else {\n    return null;\n  }\n}\nvar build = function build() {\n  var lookup = function lookup(reducer) {\n    return reduce(styles, function (o$$1, style, prefix) {\n      o$$1[prefix] = reduce(style, reducer, {});\n      return o$$1;\n    }, {});\n  };\n  _byUnicode = lookup(function (acc, icon, iconName) {\n    if (icon[3]) {\n      acc[icon[3]] = iconName;\n    }\n    if (icon[2]) {\n      var aliases = icon[2].filter(function (a$$1) {\n        return typeof a$$1 === 'number';\n      });\n      aliases.forEach(function (alias) {\n        acc[alias.toString(16)] = iconName;\n      });\n    }\n    return acc;\n  });\n  _byLigature = lookup(function (acc, icon, iconName) {\n    acc[iconName] = iconName;\n    if (icon[2]) {\n      var aliases = icon[2].filter(function (a$$1) {\n        return typeof a$$1 === 'string';\n      });\n      aliases.forEach(function (alias) {\n        acc[alias] = iconName;\n      });\n    }\n    return acc;\n  });\n  _byAlias = lookup(function (acc, icon, iconName) {\n    var aliases = icon[2];\n    acc[iconName] = iconName;\n    aliases.forEach(function (alias) {\n      acc[alias] = iconName;\n    });\n    return acc;\n  });\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  var hasRegular = 'far' in styles || config.autoFetchSvg;\n  var shimLookups = reduce(shims, function (acc, shim) {\n    var maybeNameMaybeUnicode = shim[0];\n    var prefix = shim[1];\n    var iconName = shim[2];\n    if (prefix === 'far' && !hasRegular) {\n      prefix = 'fas';\n    }\n    if (typeof maybeNameMaybeUnicode === 'string') {\n      acc.names[maybeNameMaybeUnicode] = {\n        prefix: prefix,\n        iconName: iconName\n      };\n    }\n    if (typeof maybeNameMaybeUnicode === 'number') {\n      acc.unicodes[maybeNameMaybeUnicode.toString(16)] = {\n        prefix: prefix,\n        iconName: 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(function (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  var oldUnicode = _byOldUnicode[unicode];\n  var newUnicode = byUnicode('fas', unicode);\n  return oldUnicode || (newUnicode ? {\n    prefix: 'fas',\n    iconName: newUnicode\n  } : null) || {\n    prefix: null,\n    iconName: null\n  };\n}\nfunction getDefaultUsablePrefix() {\n  return _defaultUsablePrefix;\n}\nvar emptyCanonicalIcon = function emptyCanonicalIcon() {\n  return {\n    prefix: null,\n    iconName: null,\n    rest: []\n  };\n};\nfunction getFamilyId(values) {\n  var family = u;\n  var famProps = FAMILY_NAMES.reduce(function (acc, familyId) {\n    acc[familyId] = \"\".concat(config.cssPrefix, \"-\").concat(familyId);\n    return acc;\n  }, {});\n  xl.forEach(function (familyId) {\n    if (values.includes(famProps[familyId]) || values.some(function (v$$1) {\n      return PREFIXES_FOR_FAMILY[familyId].includes(v$$1);\n    })) {\n      family = familyId;\n    }\n  });\n  return family;\n}\nfunction getCanonicalPrefix(styleOrPrefix) {\n  var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var _params$family = params.family,\n    family = _params$family === void 0 ? u : _params$family;\n  var 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 === l && !styleOrPrefix) {\n    return 'fad';\n  }\n  var prefix = STYLE_TO_PREFIX[family][styleOrPrefix] || STYLE_TO_PREFIX[family][style];\n  var defined = styleOrPrefix in namespace.styles ? styleOrPrefix : null;\n  var result = prefix || defined || null;\n  return result;\n}\nfunction moveNonFaClassesToRest(classNames) {\n  var rest = [];\n  var iconName = null;\n  classNames.forEach(function (cls) {\n    var 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: iconName,\n    rest: rest\n  };\n}\nfunction sortedUniqueValues(arr) {\n  return arr.sort().filter(function (value, index, arr) {\n    return arr.indexOf(value) === index;\n  });\n}\nvar _faCombinedClasses = ha.concat(at);\nfunction getCanonicalIcon(values) {\n  var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var _params$skipLookups = params.skipLookups,\n    skipLookups = _params$skipLookups === void 0 ? false : _params$skipLookups;\n  var givenPrefix = null;\n  var faStyleOrFamilyClasses = sortedUniqueValues(values.filter(function (cls) {\n    return _faCombinedClasses.includes(cls);\n  }));\n  var nonStyleOrFamilyClasses = sortedUniqueValues(values.filter(function (cls) {\n    return !_faCombinedClasses.includes(cls);\n  }));\n  var faStyles = faStyleOrFamilyClasses.filter(function (cls) {\n    givenPrefix = cls;\n    return !dl.includes(cls);\n  });\n  var _faStyles = _slicedToArray(faStyles, 1),\n    _faStyles$ = _faStyles[0],\n    styleFromValues = _faStyles$ === void 0 ? null : _faStyles$;\n  var family = getFamilyId(faStyleOrFamilyClasses);\n  var canonical = _objectSpread2(_objectSpread2({}, moveNonFaClassesToRest(nonStyleOrFamilyClasses)), {}, {\n    prefix: getCanonicalPrefix(styleFromValues, {\n      family: family\n    })\n  });\n  return _objectSpread2(_objectSpread2(_objectSpread2({}, canonical), getDefaultCanonicalPrefix({\n    values: values,\n    family: family,\n    styles: styles,\n    config: config,\n    canonical: canonical,\n    givenPrefix: givenPrefix\n  })), applyShimAndAlias(skipLookups, givenPrefix, canonical));\n}\nfunction applyShimAndAlias(skipLookups, givenPrefix, canonical) {\n  var prefix = canonical.prefix,\n    iconName = canonical.iconName;\n  if (skipLookups || !prefix || !iconName) {\n    return {\n      prefix: prefix,\n      iconName: iconName\n    };\n  }\n  var shim = givenPrefix === 'fa' ? byOldName(iconName) : {};\n  var 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: prefix,\n    iconName: iconName\n  };\n}\nvar newCanonicalFamilies = xl.filter(function (familyId) {\n  return familyId !== u || familyId !== l;\n});\nvar newCanonicalStyles = Object.keys(da).filter(function (key) {\n  return key !== u;\n}).map(function (key) {\n  return Object.keys(da[key]);\n}).flat();\nfunction getDefaultCanonicalPrefix(prefixOptions) {\n  var values = prefixOptions.values,\n    family = prefixOptions.family,\n    canonical = prefixOptions.canonical,\n    _prefixOptions$givenP = prefixOptions.givenPrefix,\n    givenPrefix = _prefixOptions$givenP === void 0 ? '' : _prefixOptions$givenP,\n    _prefixOptions$styles = prefixOptions.styles,\n    styles = _prefixOptions$styles === void 0 ? {} : _prefixOptions$styles,\n    _prefixOptions$config = prefixOptions.config,\n    config$$1 = _prefixOptions$config === void 0 ? {} : _prefixOptions$config;\n  var isDuotoneFamily = family === l;\n  var valuesHasDuotone = values.includes('fa-duotone') || values.includes('fad');\n  var defaultFamilyIsDuotone = config$$1.familyDefault === 'duotone';\n  var 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    var validPrefix = Object.keys(styles).find(function (key) {\n      return newCanonicalStyles.includes(key);\n    });\n    if (validPrefix || config$$1.autoFetchSvg) {\n      var defaultPrefix = Ql.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\nvar Library = /*#__PURE__*/function () {\n  function Library() {\n    _classCallCheck(this, Library);\n    this.definitions = {};\n  }\n  return _createClass(Library, [{\n    key: \"add\",\n    value: function add() {\n      var _this = this;\n      for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n        definitions[_key] = arguments[_key];\n      }\n      var additions = definitions.reduce(this._pullDefinitions, {});\n      Object.keys(additions).forEach(function (key) {\n        _this.definitions[key] = _objectSpread2(_objectSpread2({}, _this.definitions[key] || {}), additions[key]);\n        defineIcons(key, additions[key]);\n\n        // To keep support for older Classic styles, also add longer prefixes\n        var longPrefix = PREFIX_TO_LONG_STYLE[u][key];\n        if (longPrefix) defineIcons(longPrefix, additions[key]);\n        build();\n      });\n    }\n  }, {\n    key: \"reset\",\n    value: function reset() {\n      this.definitions = {};\n    }\n  }, {\n    key: \"_pullDefinitions\",\n    value: function _pullDefinitions(additions, definition) {\n      var normalized = definition.prefix && definition.iconName && definition.icon ? {\n        0: definition\n      } : definition;\n      Object.keys(normalized).map(function (key) {\n        var _normalized$key = normalized[key],\n          prefix = _normalized$key.prefix,\n          iconName = _normalized$key.iconName,\n          icon = _normalized$key.icon;\n        var aliases = icon[2];\n        if (!additions[prefix]) additions[prefix] = {};\n        if (aliases.length > 0) {\n          aliases.forEach(function (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}();\n\nvar _plugins = [];\nvar _hooks = {};\nvar providers = {};\nvar defaultProviderKeys = Object.keys(providers);\nfunction registerPlugins(nextPlugins, _ref) {\n  var obj = _ref.mixoutsTo;\n  _plugins = nextPlugins;\n  _hooks = {};\n  Object.keys(providers).forEach(function (k) {\n    if (defaultProviderKeys.indexOf(k) === -1) {\n      delete providers[k];\n    }\n  });\n  _plugins.forEach(function (plugin) {\n    var mixout = plugin.mixout ? plugin.mixout() : {};\n    Object.keys(mixout).forEach(function (tk) {\n      if (typeof mixout[tk] === 'function') {\n        obj[tk] = mixout[tk];\n      }\n      if (_typeof(mixout[tk]) === 'object') {\n        Object.keys(mixout[tk]).forEach(function (sk) {\n          if (!obj[tk]) {\n            obj[tk] = {};\n          }\n          obj[tk][sk] = mixout[tk][sk];\n        });\n      }\n    });\n    if (plugin.hooks) {\n      var hooks = plugin.hooks();\n      Object.keys(hooks).forEach(function (hook) {\n        if (!_hooks[hook]) {\n          _hooks[hook] = [];\n        }\n        _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  var hookFns = _hooks[hook] || [];\n  hookFns.forEach(function (hookFn) {\n    accumulator = hookFn.apply(null, [accumulator].concat(args));\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  var hookFns = _hooks[hook] || [];\n  hookFns.forEach(function (hookFn) {\n    hookFn.apply(null, args);\n  });\n  return undefined;\n}\nfunction callProvided() {\n  var hook = arguments[0];\n  var args = Array.prototype.slice.call(arguments, 1);\n  return providers[hook] ? providers[hook].apply(null, args) : undefined;\n}\n\nfunction findIconDefinition(iconLookup) {\n  if (iconLookup.prefix === 'fa') {\n    iconLookup.prefix = 'fas';\n  }\n  var iconName = iconLookup.iconName;\n  var prefix = iconLookup.prefix || getDefaultUsablePrefix();\n  if (!iconName) return;\n  iconName = byAlias(prefix, iconName) || iconName;\n  return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n}\nvar library = new Library();\nvar noAuto = function noAuto() {\n  config.autoReplaceSvg = false;\n  config.observeMutations = false;\n  callHooks('noAuto');\n};\nvar dom = {\n  i2svg: function i2svg() {\n    var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    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 watch() {\n    var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n    var autoReplaceSvgRoot = params.autoReplaceSvgRoot;\n    if (config.autoReplaceSvg === false) {\n      config.autoReplaceSvg = true;\n    }\n    config.observeMutations = true;\n    domready(function () {\n      autoReplace({\n        autoReplaceSvgRoot: autoReplaceSvgRoot\n      });\n      callHooks('watch', params);\n    });\n  }\n};\nvar parse = {\n  icon: function icon(_icon) {\n    if (_icon === null) {\n      return null;\n    }\n    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      var iconName = _icon[1].indexOf('fa-') === 0 ? _icon[1].slice(3) : _icon[1];\n      var prefix = getCanonicalPrefix(_icon[0]);\n      return {\n        prefix: prefix,\n        iconName: byAlias(prefix, iconName) || iconName\n      };\n    }\n    if (typeof _icon === 'string' && (_icon.indexOf(\"\".concat(config.cssPrefix, \"-\")) > -1 || _icon.match(ICON_SELECTION_SYNTAX_PATTERN))) {\n      var canonicalIcon = getCanonicalIcon(_icon.split(' '), {\n        skipLookups: true\n      });\n      return {\n        prefix: canonicalIcon.prefix || getDefaultUsablePrefix(),\n        iconName: byAlias(canonicalIcon.prefix, canonicalIcon.iconName) || canonicalIcon.iconName\n      };\n    }\n    if (typeof _icon === 'string') {\n      var _prefix = getDefaultUsablePrefix();\n      return {\n        prefix: _prefix,\n        iconName: byAlias(_prefix, _icon) || _icon\n      };\n    }\n  }\n};\nvar api = {\n  noAuto: noAuto,\n  config: config,\n  dom: dom,\n  parse: parse,\n  library: library,\n  findIconDefinition: findIconDefinition,\n  toHtml: toHtml\n};\nvar autoReplace = function autoReplace() {\n  var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n  var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n    autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;\n  if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n    node: autoReplaceSvgRoot\n  });\n};\n\nfunction domVariants(val, abstractCreator) {\n  Object.defineProperty(val, 'abstract', {\n    get: abstractCreator\n  });\n  Object.defineProperty(val, 'html', {\n    get: function get() {\n      return val.abstract.map(function (a) {\n        return toHtml(a);\n      });\n    }\n  });\n  Object.defineProperty(val, 'node', {\n    get: function get() {\n      if (!IS_DOM) return undefined;\n      var container = DOCUMENT.createElement('div');\n      container.innerHTML = val.html;\n      return container.children;\n    }\n  });\n  return val;\n}\n\nfunction asIcon (_ref) {\n  var children = _ref.children,\n    main = _ref.main,\n    mask = _ref.mask,\n    attributes = _ref.attributes,\n    styles = _ref.styles,\n    transform = _ref.transform;\n  if (transformIsMeaningful(transform) && main.found && !mask.found) {\n    var width = main.width,\n      height = main.height;\n    var offset = {\n      x: width / height / 2,\n      y: 0.5\n    };\n    attributes['style'] = joinStyles(_objectSpread2(_objectSpread2({}, styles), {}, {\n      'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n    }));\n  }\n  return [{\n    tag: 'svg',\n    attributes: attributes,\n    children: children\n  }];\n}\n\nfunction asSymbol (_ref) {\n  var prefix = _ref.prefix,\n    iconName = _ref.iconName,\n    children = _ref.children,\n    attributes = _ref.attributes,\n    symbol = _ref.symbol;\n  var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.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: id\n      }),\n      children: children\n    }]\n  }];\n}\n\n// If any of these attributes are present, don't assume the icon is decorative\nfunction isLabeled(attributes) {\n  var labels = ['aria-label', 'aria-labelledby', 'title', 'role'];\n  return labels.some(function (label) {\n    return label in attributes;\n  });\n}\nfunction makeInlineSvgAbstract(params) {\n  var _params$icons = params.icons,\n    main = _params$icons.main,\n    mask = _params$icons.mask,\n    prefix = params.prefix,\n    iconName = params.iconName,\n    transform = params.transform,\n    symbol = params.symbol,\n    maskId = params.maskId,\n    extra = params.extra,\n    _params$watchable = params.watchable,\n    watchable = _params$watchable === void 0 ? false : _params$watchable;\n  var _ref = mask.found ? mask : main,\n    width = _ref.width,\n    height = _ref.height;\n  var attrClass = [config.replacementClass, iconName ? \"\".concat(config.cssPrefix, \"-\").concat(iconName) : ''].filter(function (c) {\n    return extra.classes.indexOf(c) === -1;\n  }).filter(function (c) {\n    return c !== '' || !!c;\n  }).concat(extra.classes).join(' ');\n  var content = {\n    children: [],\n    attributes: _objectSpread2(_objectSpread2({}, extra.attributes), {}, {\n      'data-prefix': prefix,\n      'data-icon': iconName,\n      'class': attrClass,\n      'role': extra.attributes.role || 'img',\n      'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n    })\n  };\n  if (!isLabeled(extra.attributes) && !extra.attributes['aria-hidden']) {\n    content.attributes['aria-hidden'] = 'true';\n  }\n  if (watchable) {\n    content.attributes[DATA_FA_I2SVG] = '';\n  }\n  var args = _objectSpread2(_objectSpread2({}, content), {}, {\n    prefix: prefix,\n    iconName: iconName,\n    main: main,\n    mask: mask,\n    maskId: maskId,\n    transform: transform,\n    symbol: symbol,\n    styles: _objectSpread2({}, extra.styles)\n  });\n  var _ref2 = mask.found && main.found ? callProvided('generateAbstractMask', args) || {\n      children: [],\n      attributes: {}\n    } : callProvided('generateAbstractIcon', args) || {\n      children: [],\n      attributes: {}\n    },\n    children = _ref2.children,\n    attributes = _ref2.attributes;\n  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  var content = params.content,\n    width = params.width,\n    height = params.height,\n    transform = params.transform,\n    extra = params.extra,\n    _params$watchable2 = params.watchable,\n    watchable = _params$watchable2 === void 0 ? false : _params$watchable2;\n  var attributes = _objectSpread2(_objectSpread2({}, extra.attributes), {}, {\n    class: extra.classes.join(' ')\n  });\n  if (watchable) {\n    attributes[DATA_FA_I2SVG] = '';\n  }\n  var styles = _objectSpread2({}, extra.styles);\n  if (transformIsMeaningful(transform)) {\n    styles['transform'] = transformForCss({\n      transform: transform,\n      startCentered: true,\n      width: width,\n      height: height\n    });\n    styles['-webkit-transform'] = styles['transform'];\n  }\n  var styleString = joinStyles(styles);\n  if (styleString.length > 0) {\n    attributes['style'] = styleString;\n  }\n  var val = [];\n  val.push({\n    tag: 'span',\n    attributes: attributes,\n    children: [content]\n  });\n  return val;\n}\nfunction makeLayersCounterAbstract(params) {\n  var content = params.content,\n    extra = params.extra;\n  var attributes = _objectSpread2(_objectSpread2({}, extra.attributes), {}, {\n    class: extra.classes.join(' ')\n  });\n  var styleString = joinStyles(extra.styles);\n  if (styleString.length > 0) {\n    attributes['style'] = styleString;\n  }\n  var val = [];\n  val.push({\n    tag: 'span',\n    attributes: attributes,\n    children: [content]\n  });\n  return val;\n}\n\nvar styles$1 = namespace.styles;\nfunction asFoundIcon(icon) {\n  var width = icon[0];\n  var height = icon[1];\n  var _icon$slice = icon.slice(4),\n    _icon$slice2 = _slicedToArray(_icon$slice, 1),\n    vectorData = _icon$slice2[0];\n  var 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: width,\n    height: height,\n    icon: element\n  };\n}\nvar 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  var givenPrefix = prefix;\n  if (prefix === 'fa' && config.styleDefault !== null) {\n    prefix = getDefaultUsablePrefix();\n  }\n  return new Promise(function (resolve, reject) {\n    if (givenPrefix === 'fa') {\n      var 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      var 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\nvar noop$1 = function noop() {};\nvar p$2 = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n  mark: noop$1,\n  measure: noop$1\n};\nvar preamble = \"FA \\\"7.3.1\\\"\";\nvar begin = function begin(name) {\n  p$2.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n  return function () {\n    return end(name);\n  };\n};\nvar end = function 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: begin,\n  end: end\n};\n\nvar noop$2 = function noop() {};\nfunction isWatched(node) {\n  var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n  return typeof i2svg === 'string';\n}\nfunction hasPrefixAndIcon(node) {\n  var prefix = node.getAttribute ? node.getAttribute(DATA_PREFIX) : null;\n  var icon = node.getAttribute ? node.getAttribute(DATA_ICON) : null;\n  return prefix && icon;\n}\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  var 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  var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var _params$ceFn = params.ceFn,\n    ceFn = _params$ceFn === void 0 ? abstractObj.tag === 'svg' ? createElementNS : createElement : _params$ceFn;\n  if (typeof abstractObj === 'string') {\n    return DOCUMENT.createTextNode(abstractObj);\n  }\n  var tag = ceFn(abstractObj.tag);\n  Object.keys(abstractObj.attributes || []).forEach(function (key) {\n    tag.setAttribute(key, abstractObj.attributes[key]);\n  });\n  var children = abstractObj.children || [];\n  children.forEach(function (child) {\n    tag.appendChild(convertSVG(child, {\n      ceFn: ceFn\n    }));\n  });\n  return tag;\n}\nfunction nodeAsComment(node) {\n  var comment = \" \".concat(node.outerHTML, \" \");\n  /* BEGIN.ATTRIBUTION */\n  comment = \"\".concat(comment, \"Font Awesome fontawesome.com \");\n  /* END.ATTRIBUTION */\n  return comment;\n}\nvar mutators = {\n  replace: function replace(mutation) {\n    var node = mutation[0];\n    if (node.parentNode) {\n      mutation[1].forEach(function (abstract) {\n        node.parentNode.insertBefore(convertSVG(abstract), node);\n      });\n      if (node.getAttribute(DATA_FA_I2SVG) === null && config.keepOriginalSource) {\n        var comment = DOCUMENT.createComment(nodeAsComment(node));\n        node.parentNode.replaceChild(comment, node);\n      } else {\n        node.remove();\n      }\n    }\n  },\n  nest: function nest(mutation) {\n    var node = mutation[0];\n    var abstract = mutation[1];\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    var forSvg = new RegExp(\"\".concat(config.cssPrefix, \"-.*\"));\n    delete abstract[0].attributes.id;\n    if (abstract[0].attributes.class) {\n      var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {\n        if (cls === config.replacementClass || cls.match(forSvg)) {\n          acc.toSvg.push(cls);\n        } else {\n          acc.toNode.push(cls);\n        }\n        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    var newInnerHTML = abstract.map(function (a) {\n      return toHtml(a);\n    }).join('\\n');\n    node.setAttribute(DATA_FA_I2SVG, '');\n    node.innerHTML = newInnerHTML;\n  }\n};\nfunction performOperationSync(op) {\n  op();\n}\nfunction perform(mutations, callback) {\n  var callbackFunction = typeof callback === 'function' ? callback : noop$2;\n  if (mutations.length === 0) {\n    callbackFunction();\n  } else {\n    var frame = performOperationSync;\n    if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n      frame = WINDOW.requestAnimationFrame || performOperationSync;\n    }\n    frame(function () {\n      var mutator = getMutator();\n      var mark = perf.begin('mutate');\n      mutations.map(mutator);\n      mark();\n      callbackFunction();\n    });\n  }\n}\nvar disabled = false;\nfunction disableObservation() {\n  disabled = true;\n}\nfunction enableObservation() {\n  disabled = false;\n}\nvar mo = null;\nfunction observe(options) {\n  if (!MUTATION_OBSERVER) {\n    return;\n  }\n  if (!config.observeMutations) {\n    return;\n  }\n  var _options$treeCallback = options.treeCallback,\n    treeCallback = _options$treeCallback === void 0 ? noop$2 : _options$treeCallback,\n    _options$nodeCallback = options.nodeCallback,\n    nodeCallback = _options$nodeCallback === void 0 ? noop$2 : _options$nodeCallback,\n    _options$pseudoElemen = options.pseudoElementsCallback,\n    pseudoElementsCallback = _options$pseudoElemen === void 0 ? noop$2 : _options$pseudoElemen,\n    _options$observeMutat = options.observeMutationsRoot,\n    observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;\n  mo = new MUTATION_OBSERVER(function (objects) {\n    if (disabled) return;\n    var defaultPrefix = getDefaultUsablePrefix();\n    toArray(objects).forEach(function (mutationRecord) {\n      if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n        if (config.searchPseudoElements) {\n          pseudoElementsCallback(mutationRecord.target);\n        }\n        treeCallback(mutationRecord.target);\n      }\n      if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n        pseudoElementsCallback([mutationRecord.target], true);\n      }\n      if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n        if (mutationRecord.attributeName === 'class' && hasPrefixAndIcon(mutationRecord.target)) {\n          var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n            prefix = _getCanonicalIcon.prefix,\n            iconName = _getCanonicalIcon.iconName;\n          mutationRecord.target.setAttribute(DATA_PREFIX, prefix || defaultPrefix);\n          if (iconName) mutationRecord.target.setAttribute(DATA_ICON, iconName);\n        } else if (hasBeenReplaced(mutationRecord.target)) {\n          nodeCallback(mutationRecord.target);\n        }\n      }\n    });\n  });\n  if (!IS_DOM) return;\n  mo.observe(observeMutationsRoot, {\n    childList: true,\n    attributes: true,\n    characterData: true,\n    subtree: true\n  });\n}\nfunction disconnect() {\n  if (!mo) return;\n  mo.disconnect();\n}\n\nfunction styleParser (node) {\n  var style = node.getAttribute('style');\n  var val = [];\n  if (style) {\n    val = style.split(';').reduce(function (acc, style) {\n      var styles = style.split(':');\n      var prop = styles[0];\n      var value = styles.slice(1);\n      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  var existingPrefix = node.getAttribute('data-prefix');\n  var existingIconName = node.getAttribute('data-icon');\n  var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n  var val = getCanonicalIcon(classArray(node));\n  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  var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n    if (acc.name !== 'class' && acc.name !== 'style') {\n      acc[attr.name] = attr.value;\n    }\n    return acc;\n  }, {});\n  return extraAttributes;\n}\n\nfunction blankMeta() {\n  return {\n    iconName: null,\n    prefix: null,\n    transform: meaninglessTransform,\n    symbol: false,\n    mask: {\n      iconName: null,\n      prefix: null,\n      rest: []\n    },\n    maskId: null,\n    extra: {\n      classes: [],\n      styles: {},\n      attributes: {}\n    }\n  };\n}\nfunction parseMeta(node) {\n  var parser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n    styleParser: true\n  };\n  var _classParser = classParser(node),\n    iconName = _classParser.iconName,\n    prefix = _classParser.prefix,\n    extraClasses = _classParser.rest;\n  var extraAttributes = attributesParser(node);\n  var pluginMeta = chainHooks('parseNodeAttributes', {}, node);\n  var extraStyles = parser.styleParser ? styleParser(node) : [];\n  return _objectSpread2({\n    iconName: iconName,\n    prefix: prefix,\n    transform: meaninglessTransform,\n    mask: {\n      iconName: null,\n      prefix: null,\n      rest: []\n    },\n    maskId: null,\n    symbol: false,\n    extra: {\n      classes: extraClasses,\n      styles: extraStyles,\n      attributes: extraAttributes\n    }\n  }, pluginMeta);\n}\n\nvar styles$2 = namespace.styles;\nfunction generateMutation(node) {\n  var 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 [].concat(_toConsumableArray(at), _toConsumableArray(ha));\n}\nfunction onTree(root) {\n  var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n  if (!IS_DOM) return Promise.resolve();\n  var htmlClassList = DOCUMENT.documentElement.classList;\n  var hclAdd = function hclAdd(suffix) {\n    return htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n  };\n  var hclRemove = function hclRemove(suffix) {\n    return htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n  };\n  var prefixes = config.autoFetchSvg ? getKnownPrefixes() : dl.concat(Object.keys(styles$2));\n  if (!prefixes.includes('fa')) {\n    prefixes.push('fa');\n  }\n  var prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(function (p$$1) {\n    return \".\".concat(p$$1, \":not([\").concat(DATA_FA_I2SVG, \"])\");\n  })).join(', ');\n  if (prefixesDomQuery.length === 0) {\n    return Promise.resolve();\n  }\n  var 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  var mark = perf.begin('onTree');\n  var mutations = candidates.reduce(function (acc, node) {\n    try {\n      var 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(function (resolve, reject) {\n    Promise.all(mutations).then(function (resolvedMutations) {\n      perform(resolvedMutations, function () {\n        hclAdd('active');\n        hclAdd('complete');\n        hclRemove('pending');\n        if (typeof callback === 'function') callback();\n        mark();\n        resolve();\n      });\n    }).catch(function (e$$1) {\n      mark();\n      reject(e$$1);\n    });\n  });\n}\nfunction onNode(node) {\n  var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n  generateMutation(node).then(function (mutation) {\n    if (mutation) {\n      perform([mutation], callback);\n    }\n  });\n}\nfunction resolveIcons(next) {\n  return function (maybeIconDefinition) {\n    var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n    var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n    var mask = params.mask;\n    if (mask) {\n      mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n    }\n    return next(iconDefinition, _objectSpread2(_objectSpread2({}, params), {}, {\n      mask: mask\n    }));\n  };\n}\nvar render = function render(iconDefinition) {\n  var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n  var _params$transform = params.transform,\n    transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n    _params$symbol = params.symbol,\n    symbol = _params$symbol === void 0 ? false : _params$symbol,\n    _params$mask = params.mask,\n    mask = _params$mask === void 0 ? null : _params$mask,\n    _params$maskId = params.maskId,\n    maskId = _params$maskId === void 0 ? null : _params$maskId,\n    _params$classes = params.classes,\n    classes = _params$classes === void 0 ? [] : _params$classes,\n    _params$attributes = params.attributes,\n    attributes = _params$attributes === void 0 ? {} : _params$attributes,\n    _params$styles = params.styles,\n    styles = _params$styles === void 0 ? {} : _params$styles;\n  if (!iconDefinition) return;\n  var prefix = iconDefinition.prefix,\n    iconName = iconDefinition.iconName,\n    icon = iconDefinition.icon;\n  return domVariants(_objectSpread2({\n    type: 'icon'\n  }, iconDefinition), function () {\n    callHooks('beforeDOMElementCreation', {\n      iconDefinition: iconDefinition,\n      params: params\n    });\n    return makeInlineSvgAbstract({\n      icons: {\n        main: asFoundIcon(icon),\n        mask: mask ? asFoundIcon(mask.icon) : {\n          found: false,\n          width: null,\n          height: null,\n          icon: {}\n        }\n      },\n      prefix: prefix,\n      iconName: iconName,\n      transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n      symbol: symbol,\n      maskId: maskId,\n      extra: {\n        attributes: attributes,\n        styles: styles,\n        classes: classes\n      }\n    });\n  });\n};\nvar ReplaceElements = {\n  mixout: function mixout() {\n    return {\n      icon: resolveIcons(render)\n    };\n  },\n  hooks: function hooks() {\n    return {\n      mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n        accumulator.treeCallback = onTree;\n        accumulator.nodeCallback = onNode;\n        return accumulator;\n      }\n    };\n  },\n  provides: function provides(providers$$1) {\n    providers$$1.i2svg = function (params) {\n      var _params$node = params.node,\n        node = _params$node === void 0 ? DOCUMENT : _params$node,\n        _params$callback = params.callback,\n        callback = _params$callback === void 0 ? function () {} : _params$callback;\n      return onTree(node, callback);\n    };\n    providers$$1.generateSvgReplacementMutation = function (node, nodeMeta) {\n      var iconName = nodeMeta.iconName,\n        prefix = nodeMeta.prefix,\n        transform = nodeMeta.transform,\n        symbol = nodeMeta.symbol,\n        mask = nodeMeta.mask,\n        maskId = nodeMeta.maskId,\n        extra = nodeMeta.extra;\n      return new Promise(function (resolve, reject) {\n        Promise.all([findIcon(iconName, prefix), mask.iconName ? findIcon(mask.iconName, mask.prefix) : Promise.resolve({\n          found: false,\n          width: 512,\n          height: 512,\n          icon: {}\n        })]).then(function (_ref) {\n          var _ref2 = _slicedToArray(_ref, 2),\n            main = _ref2[0],\n            mask = _ref2[1];\n          resolve([node, makeInlineSvgAbstract({\n            icons: {\n              main: main,\n              mask: mask\n            },\n            prefix: prefix,\n            iconName: iconName,\n            transform: transform,\n            symbol: symbol,\n            maskId: maskId,\n            extra: extra,\n            watchable: true\n          })]);\n        }).catch(reject);\n      });\n    };\n    providers$$1.generateAbstractIcon = function (_ref3) {\n      var children = _ref3.children,\n        attributes = _ref3.attributes,\n        main = _ref3.main,\n        transform = _ref3.transform,\n        styles = _ref3.styles;\n      var styleString = joinStyles(styles);\n      if (styleString.length > 0) {\n        attributes['style'] = styleString;\n      }\n      var nextChild;\n      if (transformIsMeaningful(transform)) {\n        nextChild = callProvided('generateAbstractTransformGrouping', {\n          main: main,\n          transform: transform,\n          containerWidth: main.width,\n          iconWidth: main.width\n        });\n      }\n      children.push(nextChild || main.icon);\n      return {\n        children: children,\n        attributes: attributes\n      };\n    };\n  }\n};\n\nvar Layers = {\n  mixout: function mixout() {\n    return {\n      layer: function layer(assembler) {\n        var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n        var _params$classes = params.classes,\n          classes = _params$classes === void 0 ? [] : _params$classes;\n        return domVariants({\n          type: 'layer'\n        }, function () {\n          callHooks('beforeDOMElementCreation', {\n            assembler: assembler,\n            params: params\n          });\n          var children = [];\n          assembler(function (args) {\n            Array.isArray(args) ? args.map(function (a) {\n              children = children.concat(a.abstract);\n            }) : children = children.concat(args.abstract);\n          });\n          return [{\n            tag: 'span',\n            attributes: {\n              class: [\"\".concat(config.cssPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n            },\n            children: children\n          }];\n        });\n      }\n    };\n  }\n};\n\nvar LayersCounter = {\n  mixout: function mixout() {\n    return {\n      counter: function counter(content) {\n        var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n        var _params$title = params.title,\n          title = _params$title === void 0 ? null : _params$title,\n          _params$classes = params.classes,\n          classes = _params$classes === void 0 ? [] : _params$classes,\n          _params$attributes = params.attributes,\n          attributes = _params$attributes === void 0 ? {} : _params$attributes,\n          _params$styles = params.styles,\n          styles = _params$styles === void 0 ? {} : _params$styles;\n        return domVariants({\n          type: 'counter',\n          content: content\n        }, function () {\n          callHooks('beforeDOMElementCreation', {\n            content: content,\n            params: params\n          });\n          return makeLayersCounterAbstract({\n            content: content.toString(),\n            title: title,\n            extra: {\n              attributes: attributes,\n              styles: styles,\n              classes: [\"\".concat(config.cssPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n            }\n          });\n        });\n      }\n    };\n  }\n};\n\nvar LayersText = {\n  mixout: function mixout() {\n    return {\n      text: function text(content) {\n        var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n        var _params$transform = params.transform,\n          transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n          _params$classes = params.classes,\n          classes = _params$classes === void 0 ? [] : _params$classes,\n          _params$attributes = params.attributes,\n          attributes = _params$attributes === void 0 ? {} : _params$attributes,\n          _params$styles = params.styles,\n          styles = _params$styles === void 0 ? {} : _params$styles;\n        return domVariants({\n          type: 'text',\n          content: content\n        }, function () {\n          callHooks('beforeDOMElementCreation', {\n            content: content,\n            params: params\n          });\n          return makeLayersTextAbstract({\n            content: content,\n            transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n            extra: {\n              attributes: attributes,\n              styles: styles,\n              classes: [\"\".concat(config.cssPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n            }\n          });\n        });\n      }\n    };\n  },\n  provides: function provides(providers$$1) {\n    providers$$1.generateLayersText = function (node, nodeMeta) {\n      var transform = nodeMeta.transform,\n        extra = nodeMeta.extra;\n      var width = null;\n      var height = null;\n      if (IS_IE) {\n        var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n        var boundingClientRect = node.getBoundingClientRect();\n        width = boundingClientRect.width / computedFontSize;\n        height = boundingClientRect.height / computedFontSize;\n      }\n      return Promise.resolve([node, makeLayersTextAbstract({\n        content: node.innerHTML,\n        width: width,\n        height: height,\n        transform: transform,\n        extra: extra,\n        watchable: true\n      })]);\n    };\n  }\n};\n\nvar CLEAN_CONTENT_PATTERN = new RegExp(\"\\\"\", 'ug');\nvar SECONDARY_UNICODE_RANGE = [1105920, 1112319];\nvar _FONT_FAMILY_WEIGHT_TO_PREFIX = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n  FontAwesome: {\n    normal: 'fas',\n    400: 'fas'\n  }\n}), zl), wa), ct);\nvar FONT_FAMILY_WEIGHT_TO_PREFIX = Object.keys(_FONT_FAMILY_WEIGHT_TO_PREFIX).reduce(function (acc, key) {\n  acc[key.toLowerCase()] = _FONT_FAMILY_WEIGHT_TO_PREFIX[key];\n  return acc;\n}, {});\nvar FONT_FAMILY_WEIGHT_FALLBACK = Object.keys(FONT_FAMILY_WEIGHT_TO_PREFIX).reduce(function (acc, fontFamily) {\n  var weights = FONT_FAMILY_WEIGHT_TO_PREFIX[fontFamily];\n  acc[fontFamily] = weights[900] || _toConsumableArray(Object.entries(weights))[0][1];\n  return acc;\n}, {});\n\n// Return hex value of *first* character in `content`\nfunction hexValueFromContent(content) {\n  var cleaned = content.replace(CLEAN_CONTENT_PATTERN, '');\n  return toHex(_toConsumableArray(cleaned)[0] || '');\n}\n\n// Check if it's a secondary Duotone layer, by checking if:\n// - Unicode value in `content` is repeated\n// - Unicode value in `content` is above 0x10000\n// - The \"ss01\" font feature is enabled on the `content`\nfunction isSecondaryLayer(styles) {\n  var hasStylisticSet = styles.getPropertyValue('font-feature-settings').includes('ss01');\n  var content = styles.getPropertyValue('content');\n  var cleaned = content.replace(CLEAN_CONTENT_PATTERN, '');\n  var codePoint = cleaned.codePointAt(0);\n  var isPrependTen = codePoint >= SECONDARY_UNICODE_RANGE[0] && codePoint <= SECONDARY_UNICODE_RANGE[1];\n  var isDoubled = cleaned.length === 2 ? cleaned[0] === cleaned[1] : false;\n  return isPrependTen || isDoubled || hasStylisticSet;\n}\nfunction getPrefix(fontFamily, fontWeight) {\n  var fontFamilySanitized = fontFamily.replace(/^['\"]|['\"]$/g, '').toLowerCase();\n  var fontWeightInteger = parseInt(fontWeight);\n  var 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  var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n  return new Promise(function (resolve, reject) {\n    if (node.getAttribute(pendingAttribute) !== null) {\n      // This node is already being processed\n      return resolve();\n    }\n    var children = toArray(node.children);\n    var alreadyProcessedPseudoElement = children.filter(function (c$$1) {\n      return c$$1.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;\n    })[0];\n    var styles = WINDOW.getComputedStyle(node, position);\n    var fontFamily = styles.getPropertyValue('font-family');\n    var fontFamilyMatch = fontFamily.match(FONT_FAMILY_PATTERN);\n    var fontWeight = styles.getPropertyValue('font-weight');\n    var 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      var _content = styles.getPropertyValue('content');\n      var prefix = getPrefix(fontFamily, fontWeight);\n      var hexValue = hexValueFromContent(_content);\n      var isV4 = fontFamilyMatch[0].startsWith('FontAwesome');\n      var isSecondary = isSecondaryLayer(styles);\n      var iconName = byUnicode(prefix, hexValue);\n      var iconIdentifier = iconName;\n      if (isV4) {\n        var 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        var meta = blankMeta();\n        var extra = meta.extra;\n        extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n        findIcon(iconName, prefix).then(function (main) {\n          var abstract = makeInlineSvgAbstract(_objectSpread2(_objectSpread2({}, meta), {}, {\n            icons: {\n              main: main,\n              mask: emptyCanonicalIcon()\n            },\n            prefix: prefix,\n            iconName: iconIdentifier,\n            extra: extra,\n            watchable: true\n          }));\n          var element = DOCUMENT.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(function (a$$1) {\n            return toHtml(a$$1);\n          }).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}\nvar hasPseudoElement = function hasPseudoElement(selector) {\n  return !!selector && PSEUDO_ELEMENTS.some(function (pseudoSelector) {\n    return selector.includes(pseudoSelector);\n  });\n};\n\n// Return selectors from all available stylesheets that have\n// pseudo-elements defined.\nvar parseCSSRuleForPseudos = function parseCSSRuleForPseudos(selectorText) {\n  if (!selectorText) return [];\n  var selectorSet = new Set();\n  var selectors = selectorText.split(/,(?![^()]*\\))/).map(function (s$$1) {\n    return s$$1.trim();\n  });\n  selectors = selectors.flatMap(function (selector) {\n    return selector.includes('(') ? selector : selector.split(',').map(function (s$$1) {\n      return s$$1.trim();\n    });\n  });\n  var _iterator = _createForOfIteratorHelper(selectors),\n    _step;\n  try {\n    for (_iterator.s(); !(_step = _iterator.n()).done;) {\n      var selector = _step.value;\n      if (hasPseudoElement(selector)) {\n        // Remove pseudo-elements from the selector\n        var selectorWithoutPseudo = PSEUDO_ELEMENTS.reduce(function (acc, pseudoSelector) {\n          return acc.replace(pseudoSelector, '');\n        }, selector);\n        if (selectorWithoutPseudo !== '' && selectorWithoutPseudo !== '*') {\n          selectorSet.add(selectorWithoutPseudo);\n        }\n      }\n    }\n  } catch (err) {\n    _iterator.e(err);\n  } finally {\n    _iterator.f();\n  }\n  return selectorSet;\n};\nfunction searchPseudoElements(root) {\n  var useAsNodeList = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n  if (!IS_DOM) return;\n  var nodeList;\n  if (useAsNodeList) {\n    nodeList = root;\n  } else if (config.searchPseudoElementsFullScan) {\n    nodeList = root.querySelectorAll('*');\n  } else {\n    // Get elements that have pseudo elements defined in the CSS\n    var selectorSet = new Set();\n    var _iterator2 = _createForOfIteratorHelper(document.styleSheets),\n      _step2;\n    try {\n      for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n        var stylesheet = _step2.value;\n        try {\n          var _iterator3 = _createForOfIteratorHelper(stylesheet.cssRules),\n            _step3;\n          try {\n            for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n              var rule = _step3.value;\n              var parsedSelectors = parseCSSRuleForPseudos(rule.selectorText);\n              var _iterator4 = _createForOfIteratorHelper(parsedSelectors),\n                _step4;\n              try {\n                for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n                  var selector = _step4.value;\n                  selectorSet.add(selector);\n                }\n              } catch (err) {\n                _iterator4.e(err);\n              } finally {\n                _iterator4.f();\n              }\n            }\n          } catch (err) {\n            _iterator3.e(err);\n          } finally {\n            _iterator3.f();\n          }\n        } catch (e$$1) {\n          if (config.searchPseudoElementsWarnings) {\n            console.warn(\"Font Awesome: cannot parse stylesheet: \".concat(stylesheet.href, \" (\").concat(e$$1.message, \")\\nIf it declares any Font Awesome CSS pseudo-elements, they will not be rendered as SVG icons. Add crossorigin=\\\"anonymous\\\" to the <link>, enable searchPseudoElementsFullScan for slower but more thorough DOM parsing, or suppress this warning by setting searchPseudoElementsWarnings to false.\"));\n          }\n        }\n      }\n    } catch (err) {\n      _iterator2.e(err);\n    } finally {\n      _iterator2.f();\n    }\n    if (!selectorSet.size) return;\n    var cleanSelectors = Array.from(selectorSet).join(', ');\n    try {\n      nodeList = root.querySelectorAll(cleanSelectors);\n    } catch (_unused) {} // eslint-disable-line no-empty\n  }\n  return new Promise(function (resolve, reject) {\n    var operations = toArray(nodeList).filter(processable).map(replace);\n    var end = perf.begin('searchPseudoElements');\n    disableObservation();\n    Promise.all(operations).then(function () {\n      end();\n      enableObservation();\n      resolve();\n    }).catch(function () {\n      end();\n      enableObservation();\n      reject();\n    });\n  });\n}\nvar PseudoElements = {\n  hooks: function hooks() {\n    return {\n      mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n        accumulator.pseudoElementsCallback = searchPseudoElements;\n        return accumulator;\n      }\n    };\n  },\n  provides: function provides(providers) {\n    providers.pseudoElements2svg = function (params) {\n      var _params$node = params.node,\n        node = _params$node === void 0 ? DOCUMENT : _params$node;\n      if (config.searchPseudoElements) {\n        searchPseudoElements(node);\n      }\n    };\n  }\n};\n\nvar _unwatched = false;\nvar MutationObserver$1 = {\n  mixout: function mixout() {\n    return {\n      dom: {\n        unwatch: function unwatch() {\n          disableObservation();\n          _unwatched = true;\n        }\n      }\n    };\n  },\n  hooks: function hooks() {\n    return {\n      bootstrap: function bootstrap() {\n        observe(chainHooks('mutationObserverCallbacks', {}));\n      },\n      noAuto: function noAuto() {\n        disconnect();\n      },\n      watch: function watch(params) {\n        var observeMutationsRoot = params.observeMutationsRoot;\n        if (_unwatched) {\n          enableObservation();\n        } else {\n          observe(chainHooks('mutationObserverCallbacks', {\n            observeMutationsRoot: observeMutationsRoot\n          }));\n        }\n      }\n    };\n  }\n};\n\nvar parseTransformString = function parseTransformString(transformString) {\n  var transform = {\n    size: 16,\n    x: 0,\n    y: 0,\n    flipX: false,\n    flipY: false,\n    rotate: 0\n  };\n  return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n    var parts = n.toLowerCase().split('-');\n    var first = parts[0];\n    var rest = parts.slice(1).join('-');\n    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: function mixout() {\n    return {\n      parse: {\n        transform: function transform(transformString) {\n          return parseTransformString(transformString);\n        }\n      }\n    };\n  },\n  hooks: function hooks() {\n    return {\n      parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n        var transformString = node.getAttribute('data-fa-transform');\n        if (transformString) {\n          accumulator.transform = parseTransformString(transformString);\n        }\n        return accumulator;\n      }\n    };\n  },\n  provides: function provides(providers) {\n    providers.generateAbstractTransformGrouping = function (_ref) {\n      var main = _ref.main,\n        transform = _ref.transform,\n        containerWidth = _ref.containerWidth,\n        iconWidth = _ref.iconWidth;\n      var outer = {\n        transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n      };\n      var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n      var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n      var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n      var inner = {\n        transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n      };\n      var path = {\n        transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n      };\n      var operations = {\n        outer: outer,\n        inner: inner,\n        path: path\n      };\n      return {\n        tag: 'g',\n        attributes: _objectSpread2({}, operations.outer),\n        children: [{\n          tag: 'g',\n          attributes: _objectSpread2({}, operations.inner),\n          children: [{\n            tag: main.icon.tag,\n            children: main.icon.children,\n            attributes: _objectSpread2(_objectSpread2({}, main.icon.attributes), operations.path)\n          }]\n        }]\n      };\n    };\n  }\n};\n\nvar ALL_SPACE = {\n  x: 0,\n  y: 0,\n  width: '100%',\n  height: '100%'\n};\nfunction fillBlack(abstract) {\n  var 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: function hooks() {\n    return {\n      parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n        var maskData = node.getAttribute('data-fa-mask');\n        var mask = !maskData ? emptyCanonicalIcon() : getCanonicalIcon(maskData.split(' ').map(function (i) {\n          return i.trim();\n        }));\n        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: function provides(providers) {\n    providers.generateAbstractMask = function (_ref) {\n      var children = _ref.children,\n        attributes = _ref.attributes,\n        main = _ref.main,\n        mask = _ref.mask,\n        explicitMaskId = _ref.maskId,\n        transform = _ref.transform;\n      var mainWidth = main.width,\n        mainPath = main.icon;\n      var maskWidth = mask.width,\n        maskPath = mask.icon;\n      var trans = transformForSvg({\n        transform: transform,\n        containerWidth: maskWidth,\n        iconWidth: mainWidth\n      });\n      var maskRect = {\n        tag: 'rect',\n        attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n          fill: 'white'\n        })\n      };\n      var maskInnerGroupChildrenMixin = mainPath.children ? {\n        children: mainPath.children.map(fillBlack)\n      } : {};\n      var maskInnerGroup = {\n        tag: 'g',\n        attributes: _objectSpread2({}, trans.inner),\n        children: [fillBlack(_objectSpread2({\n          tag: mainPath.tag,\n          attributes: _objectSpread2(_objectSpread2({}, mainPath.attributes), trans.path)\n        }, maskInnerGroupChildrenMixin))]\n      };\n      var maskOuterGroup = {\n        tag: 'g',\n        attributes: _objectSpread2({}, trans.outer),\n        children: [maskInnerGroup]\n      };\n      var maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n      var clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n      var maskTag = {\n        tag: 'mask',\n        attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n          id: maskId,\n          maskUnits: 'userSpaceOnUse',\n          maskContentUnits: 'userSpaceOnUse'\n        }),\n        children: [maskRect, maskOuterGroup]\n      };\n      var defs = {\n        tag: 'defs',\n        children: [{\n          tag: 'clipPath',\n          attributes: {\n            id: clipId\n          },\n          children: deGroup(maskPath)\n        }, maskTag]\n      };\n      children.push(defs, {\n        tag: 'rect',\n        attributes: _objectSpread2({\n          'fill': 'currentColor',\n          'clip-path': \"url(#\".concat(clipId, \")\"),\n          'mask': \"url(#\".concat(maskId, \")\")\n        }, ALL_SPACE)\n      });\n      return {\n        children: children,\n        attributes: attributes\n      };\n    };\n  }\n};\n\nvar MissingIconIndicator = {\n  provides: function provides(providers) {\n    var reduceMotion = false;\n    if (WINDOW.matchMedia) {\n      reduceMotion = WINDOW.matchMedia('(prefers-reduced-motion: reduce)').matches;\n    }\n    providers.missingIconAbstract = function () {\n      var gChildren = [];\n      var FILL = {\n        fill: 'currentColor'\n      };\n      var ANIMATION_BASE = {\n        attributeType: 'XML',\n        repeatCount: 'indefinite',\n        dur: '2s'\n      };\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      var OPACITY_ANIMATE = _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n        attributeName: 'opacity'\n      });\n      var dot = {\n        tag: 'circle',\n        attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n          cx: '256',\n          cy: '364',\n          r: '28'\n        }),\n        children: []\n      };\n      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: function hooks() {\n    return {\n      parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n        var symbolData = node.getAttribute('data-fa-symbol');\n        var symbol = symbolData === null ? false : symbolData === '' ? true : symbolData;\n        accumulator['symbol'] = symbol;\n        return accumulator;\n      }\n    };\n  }\n};\n\nvar plugins = [InjectCSS, ReplaceElements, Layers, LayersCounter, LayersText, PseudoElements, MutationObserver$1, PowerTransforms, Masks, MissingIconIndicator, SvgSymbols];\n\nregisterPlugins(plugins, {\n  mixoutsTo: api\n});\nvar noAuto$1 = api.noAuto;\nvar config$1 = api.config;\nvar library$1 = api.library;\nvar dom$1 = api.dom;\nvar parse$1 = api.parse;\nvar findIconDefinition$1 = api.findIconDefinition;\nvar toHtml$1 = api.toHtml;\nvar icon = api.icon;\nvar layer = api.layer;\nvar text = api.text;\nvar counter = api.counter;\n\nexport { noAuto$1 as noAuto, config$1 as config, library$1 as library, dom$1 as dom, parse$1 as parse, findIconDefinition$1 as findIconDefinition, toHtml$1 as toHtml, icon, layer, text, counter, api };\n", "/*!\n * Font Awesome Free 7.3.1 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 2026 Fonticons, Inc.\n */\nvar prefix = \"fas\";\nvar fa0 = {\n  prefix: 'fas',\n  iconName: '0',\n  icon: [320, 512, [], \"30\", \"M0 192C0 103.6 71.6 32 160 32s160 71.6 160 160l0 128c0 88.4-71.6 160-160 160S0 408.4 0 320L0 192zM160 96c-53 0-96 43-96 96l0 128c0 53 43 96 96 96s96-43 96-96l0-128c0-53-43-96-96-96z\"]\n};\nvar fa1 = {\n  prefix: 'fas',\n  iconName: '1',\n  icon: [256, 512, [], \"31\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l64 0 0 320-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-352c0-17.7-14.3-32-32-32L32 32z\"]\n};\nvar fa2 = {\n  prefix: 'fas',\n  iconName: '2',\n  icon: [384, 512, [], \"32\", \"M48 64c0-17.7 14.3-32 32-32l171 0c60.2 0 109 48.8 109 109 0 43.8-26.2 83.3-66.4 100.4l-139.1 59C119 315.4 96 350.2 96 388.7l0 27.3 224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 480c-17.7 0-32-14.3-32-32l0-59.3c0-64.2 38.4-122.2 97.5-147.3l139.1-59c16.6-7.1 27.4-23.4 27.4-41.4 0-24.9-20.2-45-45-45L80 96C62.3 96 48 81.7 48 64z\"]\n};\nvar fa3 = {\n  prefix: 'fas',\n  iconName: '3',\n  icon: [320, 512, [], \"33\", \"M80 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l112 0c35.3 0 64-28.7 64-64s-28.7-64-64-64L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l160 0c70.7 0 128 57.3 128 128 0 38.2-16.8 72.5-43.3 96 26.6 23.5 43.3 57.8 43.3 96 0 70.7-57.3 128-128 128L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0c35.3 0 64-28.7 64-64s-28.7-64-64-64L80 288z\"]\n};\nvar fa4 = {\n  prefix: 'fas',\n  iconName: '4',\n  icon: [384, 512, [], \"34\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 288c0 35.3 28.7 64 64 64l192 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-224c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 224-192 0 0-224z\"]\n};\nvar fa5 = {\n  prefix: 'fas',\n  iconName: '5',\n  icon: [320, 512, [], \"35\", \"M0 64C0 46.3 14.3 32 32 32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0 0 112 120 0c75.1 0 136 60.9 136 136S259.1 480 184 480L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l152 0c39.8 0 72-32.2 72-72s-32.2-72-72-72L32 272c-17.7 0-32-14.3-32-32L0 64z\"]\n};\nvar fa6 = {\n  prefix: 'fas',\n  iconName: '6',\n  icon: [384, 512, [], \"36\", \"M256 32c17.7 0 32 14.3 32 32s-14.3 32-32 32l-88 0c-48.6 0-88 39.4-88 88l0 32.2c22.9-15.3 50.4-24.2 80-24.2l48 0c79.5 0 144 64.5 144 144S287.5 480 208 480l-48 0C80.5 480 16 415.5 16 336l0-152C16 100.1 84.1 32 168 32l88 0zM80 336c0 44.2 35.8 80 80 80l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80l-48 0c-44.2 0-80 35.8-80 80z\"]\n};\nvar fa7 = {\n  prefix: 'fas',\n  iconName: '7',\n  icon: [320, 512, [], \"37\", \"M0 64C0 46.3 14.3 32 32 32l256 0c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-224 384c-8.9 15.3-28.5 20.4-43.8 11.5s-20.4-28.5-11.5-43.8L232.3 96 32 96C14.3 96 0 81.7 0 64z\"]\n};\nvar fa8 = {\n  prefix: 'fas',\n  iconName: '8',\n  icon: [320, 512, [], \"38\", \"M304 160c0-70.7-57.3-128-128-128l-32 0c-70.7 0-128 57.3-128 128 0 34.6 13.7 66 36 89-31.5 23.3-52 60.8-52 103 0 70.7 57.3 128 128 128l64 0c70.7 0 128-57.3 128-128 0-42.2-20.5-79.7-52-103 22.3-23 36-54.4 36-89zM176.1 288l15.9 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64s28.7-64 64-64l48.1 0zm0-64L144 224c-35.3 0-64-28.7-64-64 0-35.3 28.7-64 64-64l32 0c35.3 0 64 28.7 64 64 0 35.3-28.6 64-64 64z\"]\n};\nvar fa9 = {\n  prefix: 'fas',\n  iconName: '9',\n  icon: [384, 512, [], \"39\", \"M208 320c29.6 0 57.1-8.9 80-24.2l0 32.2c0 48.6-39.4 88-88 88L96 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l104 0c83.9 0 152-68.1 152-152l0-152.1C351.9 96.4 287.5 32 208 32l-48 0C80.5 32 16 96.5 16 176S80.5 320 160 320l48 0zm80-144c0 44.2-35.8 80-80 80l-48 0c-44.2 0-80-35.8-80-80s35.8-80 80-80l48 0c44.2 0 80 35.8 80 80z\"]\n};\nvar faDollarSign = {\n  prefix: 'fas',\n  iconName: 'dollar-sign',\n  icon: [320, 512, [128178, 61781, \"dollar\", \"usd\"], \"24\", \"M136 24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 56 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-114.9 0c-24.9 0-45.1 20.2-45.1 45.1 0 22.5 16.5 41.5 38.7 44.7l91.6 13.1c53.8 7.7 93.7 53.7 93.7 108 0 60.3-48.9 109.1-109.1 109.1l-10.9 0 0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-40-72 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l130.9 0c24.9 0 45.1-20.2 45.1-45.1 0-22.5-16.5-41.5-38.7-44.7l-91.6-13.1C55.9 273.5 16 227.4 16 173.1 16 112.9 64.9 64 125.1 64l10.9 0 0-40z\"]\n};\nvar faDollar = faDollarSign;\nvar faUsd = faDollarSign;\nvar faDog = {\n  prefix: 'fas',\n  iconName: 'dog',\n  icon: [576, 512, [128021], \"f6d3\", \"M32 112c16.6 0 30.2 12.6 31.8 28.7l.3 6.6C65.8 163.4 79.4 176 96 176l179.1 0 140.9 60.4 0 243.6c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-131.3C296 361 268.8 368 240 368s-56-7-80-19.3L160 480c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-245.6c-37.3-13.2-64-48.6-64-90.4 0-17.7 14.3-32 32-32zM355.8-32c7.7 0 14.9 3.6 19.6 9.8L392 0 444.1 0c12.7 0 24.9 5.1 33.9 14.1L496 32 552 32c13.3 0 24 10.7 24 24l0 24c0 44.2-35.8 80-80 80l-64 0-7 28-124.7-53.4 31.6-147.2C334.3-23.9 344.2-32 355.8-32zM448 44a20 20 0 1 0 0 40 20 20 0 1 0 0-40z\"]\n};\nvar faTruckMoving = {\n  prefix: 'fas',\n  iconName: 'truck-moving',\n  icon: [640, 512, [], \"f4df\", \"M64 32C28.7 32 0 60.7 0 96L0 424c0 48.6 39.4 88 88 88 25.2 0 48-10.6 64-27.6 16 17 38.8 27.6 64 27.6 40.3 0 74.2-27.1 84.7-64l134.6 0c10.4 36.9 44.4 64 84.7 64 43 0 78.9-30.9 86.5-71.7 20-10.8 33.5-32 33.5-56.3l0-146.7c0-17-6.7-33.3-18.7-45.3L576 146.7c-12-12-28.3-18.7-45.3-18.7l-50.7 0 0-32c0-35.3-28.7-64-64-64L64 32zM480 192l50.7 0 45.3 45.3 0 50.7-96 0 0-96zM88 384a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm392 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM216 384a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"]\n};\nvar faRotate = {\n  prefix: 'fas',\n  iconName: 'rotate',\n  icon: [512, 512, [128260, \"sync-alt\"], \"f2f1\", \"M480.1 192l7.9 0c13.3 0 24-10.7 24-24l0-144c0-9.7-5.8-18.5-14.8-22.2S477.9 .2 471 7L419.3 58.8C375 22.1 318 0 256 0 127 0 20.3 95.4 2.6 219.5 .1 237 12.2 253.2 29.7 255.7s33.7-9.7 36.2-27.1C79.2 135.5 159.3 64 256 64 300.4 64 341.2 79 373.7 104.3L327 151c-6.9 6.9-8.9 17.2-5.2 26.2S334.3 192 344 192l136.1 0zm29.4 100.5c2.5-17.5-9.7-33.7-27.1-36.2s-33.7 9.7-36.2 27.1c-13.3 93-93.4 164.5-190.1 164.5-44.4 0-85.2-15-117.7-40.3L185 361c6.9-6.9 8.9-17.2 5.2-26.2S177.7 320 168 320L24 320c-13.3 0-24 10.7-24 24L0 488c0 9.7 5.8 18.5 14.8 22.2S34.1 511.8 41 505l51.8-51.8C137 489.9 194 512 256 512 385 512 491.7 416.6 509.4 292.5z\"]\n};\nvar faSyncAlt = faRotate;\nvar faSquareMinus = {\n  prefix: 'fas',\n  iconName: 'square-minus',\n  icon: [448, 512, [61767, \"minus-square\"], \"f146\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm72 200l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faMinusSquare = faSquareMinus;\nvar faAlignJustify = {\n  prefix: 'fas',\n  iconName: 'align-justify',\n  icon: [448, 512, [], \"f039\", \"M448 64c0-17.7-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l384 0c17.7 0 32-14.3 32-32zm0 256c0-17.7-14.3-32-32-32L32 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32zM0 192c0 17.7 14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160c-17.7 0-32 14.3-32 32zM448 448c0-17.7-14.3-32-32-32L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32z\"]\n};\nvar faCalendarCheck = {\n  prefix: 'fas',\n  iconName: 'calendar-check',\n  icon: [448, 512, [], \"f274\", \"M320 0c17.7 0 32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32zm22 161.7c-10.7-7.8-25.7-5.4-33.5 5.3L189.1 331.2 137 279.1c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c5 5 11.9 7.5 18.8 7s13.4-4.1 17.5-9.8L347.3 195.2c7.8-10.7 5.4-25.7-5.3-33.5z\"]\n};\nvar faFaceKiss = {\n  prefix: 'fas',\n  iconName: 'face-kiss',\n  icon: [512, 512, [128535, \"kiss\"], \"f596\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM240 288l32 0c26.5 0 48 21.5 48 48 0 12.3-4.6 23.5-12.2 32 7.6 8.5 12.2 19.7 12.2 32 0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm-96-80a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faKiss = faFaceKiss;\nvar faKitchenSet = {\n  prefix: 'fas',\n  iconName: 'kitchen-set',\n  icon: [576, 512, [], \"e51a\", \"M240 144a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zm44.4 32C269.9 240.1 212.5 288 144 288 64.5 288 0 223.5 0 144S64.5 0 144 0c68.5 0 125.9 47.9 140.4 112l71.8 0c8.8-9.8 21.6-16 35.8-16l104 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-104 0c-14.2 0-27-6.2-35.8-16l-71.8 0zM144 80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM400 240c13.3 0 24 10.7 24 24l0 8 96 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-240 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l96 0 0-8c0-13.3 10.7-24 24-24zM288 464l0-112 224 0 0 112c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48zM48 320l128 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-16 0c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-80c0-8.8 7.2-16 16-16zm128 64c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0 32 16 0zM24 464l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faDna = {\n  prefix: 'fas',\n  iconName: 'dna',\n  icon: [384, 512, [129516], \"f471\", \"M352 0c17.7 0 32 14.3 32 32 0 57.8-24.4 104.8-57.4 144.5-24.1 28.9-53.8 55.1-83.6 79.5 29.8 24.5 59.5 50.6 83.6 79.5 33 39.6 57.4 86.7 57.4 144.5 0 17.7-14.3 32-32 32s-32-14.3-32-32L64 480c0 17.7-14.3 32-32 32S0 497.7 0 480C0 422.2 24.4 375.2 57.4 335.5 81.5 306.6 111.2 280.5 141 256 111.2 231.5 81.5 205.4 57.4 176.5 24.4 136.8 0 89.8 0 32 0 14.3 14.3 0 32 0S64 14.3 64 32l256 0c0-17.7 14.3-32 32-32zM283.5 384l-182.9 0c-8.2 10.5-15.1 21.1-20.6 32l224.2 0c-5.6-10.9-12.5-21.5-20.6-32zM238 336c-14.3-13-29.8-25.8-46-39-16.2 13.1-31.7 26-46 39l92 0zM100.5 128l182.9 0c8.2-10.5 15.1-21.1 20.6-32L79.9 96c5.6 10.9 12.5 21.5 20.6 32zM146 176c14.3 13 29.8 25.8 46 39 16.2-13.1 31.7-26 46-39l-92 0z\"]\n};\nvar faChildReaching = {\n  prefix: 'fas',\n  iconName: 'child-reaching',\n  icon: [384, 512, [], \"e59d\", \"M256 64a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM152.9 169.3c-23.7-8.4-44.5-24.3-58.8-45.8L74.6 94.2C64.8 79.5 45 75.6 30.3 85.4S11.6 115 21.4 129.8L40.9 159c18.1 27.1 42.8 48.4 71.1 62.4L112 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-258.4c29.1-14.2 54.4-36.2 72.7-64.2l18.2-27.9c9.6-14.8 5.4-34.6-9.4-44.3s-34.6-5.5-44.3 9.4L291 122.4c-21.8 33.4-58.9 53.6-98.8 53.6-12.6 0-24.9-2-36.6-5.8-.9-.3-1.8-.7-2.7-.9z\"]\n};\nvar faPaste = {\n  prefix: 'fas',\n  iconName: 'paste',\n  icon: [512, 512, [\"file-clipboard\"], \"f0ea\", \"M64 0C28.7 0 0 28.7 0 64L0 384c0 35.3 28.7 64 64 64l112 0 0-224c0-61.9 50.1-112 112-112l64 0 0-48c0-35.3-28.7-64-64-64L64 0zM248 112l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24zm40 48c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64l160 0c35.3 0 64-28.7 64-64l0-165.5c0-17-6.7-33.3-18.7-45.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7L288 160z\"]\n};\nvar faFileClipboard = faPaste;\nvar faMeteor = {\n  prefix: 'fas',\n  iconName: 'meteor',\n  icon: [512, 512, [9732], \"f753\", \"M493.7 .9l-194.2 74.7 2.3-29.3c1-12.8-12.8-21.5-24-15.1L101.3 133.4C38.6 169.7 0 236.6 0 309 0 421.1 90.9 512 203 512 275.4 512 342.3 473.4 378.6 410.7L480.8 234.3c6.5-11.1-2.2-25-15.1-24l-29.3 2.3 74.7-194.2c.6-1.5 .9-3.2 .9-4.8 0-7.5-6-13.5-13.5-13.5-1.7 0-3.3 .3-4.8 .9zM192 192a128 128 0 1 1 0 256 128 128 0 1 1 0-256zm0 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm16 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"]\n};\nvar faGears = {\n  prefix: 'fas',\n  iconName: 'gears',\n  icon: [640, 512, [\"cogs\"], \"f085\", \"M415.9 210.5c12.2-3.3 25 2.5 30.5 13.8L465 261.9c10.3 1.4 20.4 4.2 29.9 8.1l35-23.3c10.5-7 24.4-5.6 33.3 3.3l19.2 19.2c8.9 8.9 10.3 22.9 3.3 33.3l-23.3 34.9c1.9 4.7 3.6 9.6 5 14.7 1.4 5.1 2.3 10.1 3 15.2l37.7 18.6c11.3 5.6 17.1 18.4 13.8 30.5l-7 26.2c-3.3 12.1-14.6 20.3-27.2 19.5l-42-2.7c-6.3 8.1-13.6 15.6-21.9 22l2.7 41.9c.8 12.6-7.4 24-19.5 27.2l-26.2 7c-12.2 3.3-24.9-2.5-30.5-13.8l-18.6-37.6c-10.3-1.4-20.4-4.2-29.9-8.1l-35 23.3c-10.5 7-24.4 5.6-33.3-3.3l-19.2-19.2c-8.9-8.9-10.3-22.8-3.3-33.3l23.3-35c-1.9-4.7-3.6-9.6-5-14.7s-2.3-10.2-3-15.2l-37.7-18.6c-11.3-5.6-17-18.4-13.8-30.5l7-26.2c3.3-12.1 14.6-20.3 27.2-19.5l41.9 2.7c6.3-8.1 13.6-15.6 21.9-22l-2.7-41.8c-.8-12.6 7.4-24 19.5-27.2l26.2-7zM448.4 340a44 44 0 1 0 .1 88 44 44 0 1 0 -.1-88zM224.9-45.5l26.2 7c12.1 3.3 20.3 14.7 19.5 27.2l-2.7 41.8c8.3 6.4 15.6 13.8 21.9 22l42-2.7c12.5-.8 23.9 7.4 27.2 19.5l7 26.2c3.2 12.1-2.5 24.9-13.8 30.5l-37.7 18.6c-.7 5.1-1.7 10.2-3 15.2s-3.1 10-5 14.7l23.3 35c7 10.5 5.6 24.4-3.3 33.3L307.3 262c-8.9 8.9-22.8 10.3-33.3 3.3L239 242c-9.5 3.9-19.6 6.7-29.9 8.1l-18.6 37.6c-5.6 11.3-18.4 17-30.5 13.8l-26.2-7c-12.2-3.3-20.3-14.7-19.5-27.2l2.7-41.9c-8.3-6.4-15.6-13.8-21.9-22l-42 2.7c-12.5 .8-23.9-7.4-27.2-19.5l-7-26.2c-3.2-12.1 2.5-24.9 13.8-30.5l37.7-18.6c.7-5.1 1.7-10.1 3-15.2 1.4-5.1 3-10 5-14.7L55.1 46.5c-7-10.5-5.6-24.4 3.3-33.3L77.6-6c8.9-8.9 22.8-10.3 33.3-3.3l35 23.3c9.5-3.9 19.6-6.7 29.9-8.1l18.6-37.6c5.6-11.3 18.3-17 30.5-13.8zM192.4 84a44 44 0 1 0 0 88 44 44 0 1 0 0-88z\"]\n};\nvar faCogs = faGears;\nvar faFileCirclePlus = {\n  prefix: 'fas',\n  iconName: 'file-circle-plus',\n  icon: [576, 512, [58606], \"e494\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm16-208l0 48 48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l48 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faIcicles = {\n  prefix: 'fas',\n  iconName: 'icicles',\n  icon: [512, 512, [], \"f7ad\", \"M75.8 304.8L1 35.7C.3 33.2 0 30.7 0 28.2 0 12.6 12.6 0 28.2 0L482.4 0c16.3 0 29.6 13.2 29.6 29.6 0 1.6-.1 3.3-.4 4.9L434.6 496.1c-1.5 9.2-9.5 15.9-18.8 15.9-9.2 0-17.1-6.6-18.7-15.6L336 160 307.2 303.9c-1.9 9.3-10.1 16.1-19.6 16.1-9.2 0-17.2-6.2-19.4-15.1L240 192 210.6 368.2c-1.5 9.1-9.4 15.8-18.6 15.8s-17.1-6.7-18.6-15.8L144 192 115.9 304.3c-2.3 9.2-10.6 15.7-20.1 15.7-9.3 0-17.5-6.2-20-15.2z\"]\n};\nvar faArrowTrendUp = {\n  prefix: 'fas',\n  iconName: 'arrow-trend-up',\n  icon: [576, 512, [], \"e098\", \"M384 160c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-82.7-169.4 169.4c-12.5 12.5-32.8 12.5-45.3 0L192 269.3 54.6 406.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160c12.5-12.5 32.8-12.5 45.3 0L320 306.7 466.7 160 384 160z\"]\n};\nvar faHexagonNodesBolt = {\n  prefix: 'fas',\n  iconName: 'hexagon-nodes-bolt',\n  icon: [576, 512, [], \"e69a\", \"M248 106.6c18.9-9 32-28.3 32-50.6c0-30.9-25.1-56-56-56s-56 25.1-56 56c0 22.3 13.1 41.6 32 50.6l0 98.8c-2.8 1.3-5.5 2.9-8 4.7l-80.1-45.8c1.6-20.8-8.6-41.6-27.9-52.8C57.2 96 23 105.2 7.5 132S1.2 193 28 208.5c1.3 .8 2.6 1.5 4 2.1l0 90.8c-1.3 .6-2.7 1.3-4 2.1C1.2 319-8 353.2 7.5 380S57.2 416 84 400.5c19.3-11.1 29.4-32 27.8-52.8l50.5-28.9c-11.5-11.2-19.9-25.6-23.8-41.7L88 306.1c-2.6-1.8-5.2-3.3-8-4.7l0-90.8c2.8-1.3 5.5-2.9 8-4.7l80.1 45.8c-.1 1.4-.2 2.8-.2 4.3c0 22.3 13.1 41.6 32 50.6l0 98.8c-18.9 9-32 28.3-32 50.6c0 30.9 25.1 56 56 56c30.7 0 55.6-24.7 56-55.2c-7.5-12.9-13.5-26.8-17.6-41.5c-4.2-4-9.1-7.3-14.4-9.9l0-98.8c2.8-1.3 5.5-2.9 8-4.7l10.5 6c5.5-15.3 13.1-29.5 22.4-42.5l-9.1-5.2c.1-1.4 .2-2.8 .2-4.3c0-22.3-13.1-41.6-32-50.6l0-98.8zM440.5 132C425 105.2 390.8 96 364 111.5c-19.3 11.1-29.4 32-27.8 52.8l-50.6 28.9c11.5 11.2 19.9 25.6 23.8 41.7L360 205.9c.4 .3 .8 .6 1.3 .9c21.7-9.5 45.6-14.8 70.8-14.8c2 0 4 0 5.9 .1c12.1-17.3 13.8-40.6 2.6-60.1zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356l35.6 0c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380 376 380c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z\"]\n};\nvar faQuestion = {\n  prefix: 'fas',\n  iconName: 'question',\n  icon: [320, 512, [10067, 10068, 61736], \"3f\", \"M64 160c0-53 43-96 96-96s96 43 96 96c0 42.7-27.9 78.9-66.5 91.4-28.4 9.2-61.5 35.3-61.5 76.6l0 24c0 17.7 14.3 32 32 32s32-14.3 32-32l0-24c0-1.7 .6-4.1 3.5-7.3 3-3.3 7.9-6.5 13.7-8.4 64.3-20.7 110.8-81 110.8-152.3 0-88.4-71.6-160-160-160S0 71.6 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32zm96 352c22.1 0 40-17.9 40-40s-17.9-40-40-40-40 17.9-40 40 17.9 40 40 40z\"]\n};\nvar faHandsBound = {\n  prefix: 'fas',\n  iconName: 'hands-bound',\n  icon: [576, 512, [], \"e4f9\", \"M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32L0 213.9c0 14.2 5.1 27.9 14.3 38.7L99.6 352 96 352c-13.3 0-24 10.7-24 24s10.7 24 24 24l384 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-3.6 0 85.3-99.5c9.2-10.8 14.3-24.5 14.3-38.7L576 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112.8-69.3 92.4c-5.7 7.6-16.1 9.6-24.2 4.8-9.7-5.7-12.1-18.7-5.1-27.5L441 180c10.8-13.5 8.9-33.3-4.4-44.5s-33-9.8-44.5 3.2l-46.7 52.5C329 209.7 320 233.4 320 258.1l0 93.9-64 0 0-93.9c0-24.6-9-48.4-25.4-66.8l-46.7-52.5c-11.5-13-31.3-14.4-44.5-3.2S124.2 166.4 135 180l27.6 34.5c7 8.8 4.7 21.8-5.1 27.5-8.1 4.8-18.6 2.7-24.2-4.8L64 144.8 64 32zm64 448l0 32 128 0 0-32 64 0 0 32 128 0 0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L96 432c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0z\"]\n};\nvar faPersonWalkingLuggage = {\n  prefix: 'fas',\n  iconName: 'person-walking-luggage',\n  icon: [512, 512, [], \"e554\", \"M264.3 24a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm-8 181.3l-22.6 22.6c-6 6-9.4 14.1-9.4 22.6l0 37.5c0 12.3-7 23-17.2 28.4-.9 4.2-2.4 8.4-4.3 12.3l-69 138.1-.8-.4-27.7 55.3c-9.9 19.8-33.9 27.8-53.7 17.9L14.6 521c-19.8-9.9-27.8-33.9-17.9-53.7L47.3 366.3c9.9-19.8 33.9-27.8 53.7-17.9l30.7 15.3 28.3-56.6c.3-.6 .4-1.2 .4-1.8l0-16.9c0-.2 0-.3 0-.5l0-37.5c0-25.5 10.1-49.9 28.1-67.9l35.1-35.1c22.8-22.8 53.6-35.6 85.8-35.6 36.9 0 71.8 16.8 94.8 45.6L422.1 180c6.1 7.6 15.3 12 25 12l33.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-33.2 0c-29.2 0-56.7-13.3-75-36l-3.8-4.7 0 115.2 34.5 29.6c17.7 15.2 29.3 36.2 32.6 59.3L448 507.5c2.5 17.5-9.7 33.7-27.2 36.2s-33.7-9.7-36.2-27.2L372 428.4c-1.1-7.7-5-14.7-10.9-19.8l-71.4-61.2c-21.3-18.2-33.5-44.9-33.5-72.9l0-69.3zm.1 165.8c2.4 2.3 4.8 4.6 7.4 6.8l46 39.4-2.2 7.6c-4.5 15.7-12.9 30-24.4 41.5l-68.3 68.3c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L238 421.1c3.8-3.8 6.6-8.6 8.1-13.8L256.4 371z\"]\n};\nvar faFileArrowDown = {\n  prefix: 'fas',\n  iconName: 'file-arrow-down',\n  icon: [384, 512, [\"file-download\"], \"f56d\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM175 441c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23 0-86.1c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 86.1-23-23c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64z\"]\n};\nvar faFileDownload = faFileArrowDown;\nvar faPersonBooth = {\n  prefix: 'fas',\n  iconName: 'person-booth',\n  icon: [576, 512, [], \"f756\", \"M40 24A56 56 0 1 1 152 24 56 56 0 1 1 40 24zm51.1 88c23.5 0 45.5 11.3 59.1 30.4l48.7 68.2c6 8.4 15.7 13.4 26 13.4l31.1 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-31.1 0c-31 0-60.1-15-78.1-40.2l-2.8-3.9 0 80.1 41.6 31.2C209.8 373.3 224 401.8 224 432l0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80c0-10.1-4.7-19.6-12.8-25.6L70.4 348.8C46.2 330.7 32 302.2 32 272l0-100.9C32 138.5 58.5 112 91.1 112zM32 512l0-132.7c3.1 2.7 6.3 5.4 9.6 7.9L96 428 96 512c0 17.7-14.3 32-32 32s-32-14.3-32-32zm544-88l0 96c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-72-168 0c-7.1 0-13.8-3.1-18.4-8.6s-6.5-12.6-5.3-19.6l30.7-176.7-63.1-137.6 0 72c-5.2-1-10.5-1.6-16-1.6l-32 0 0-120c0-30.9 25.1-56 56-56L520 0c30.9 0 56 25.1 56 56l0 368zM288 336c5.5 0 10.8-.6 16-1.6L304 520c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-184 32 0z\"]\n};\nvar faLocust = {\n  prefix: 'fas',\n  iconName: 'locust',\n  icon: [576, 512, [], \"e520\", \"M328 32c137 0 248 111 248 248l0 40-.4 8.2C571.5 368.5 537.4 400 496 400l-12.3 0 25.2 44.1c6.6 11.5 2.6 26.2-8.9 32.8s-26.2 2.6-32.7-8.9l-38.8-67.9-80.4 0-48.2 69.7c-7.5 10.9-22.5 13.6-33.4 6.1s-13.6-22.5-6.1-33.4l29.3-42.3-74.5 0-51.7 70.2c-7.9 10.7-22.9 12.9-33.6 5.1s-12.9-22.9-5.1-33.6l40.5-55-43-16.4-79.3 100.5c-8.2 10.4-23.3 12.2-33.7 4s-12.2-23.3-4-33.7l240-304 2.1-2.3c5.2-5.1 12.5-7.5 19.9-6.6 8.4 1.1 15.6 6.5 18.9 14.3l21.7 50.7 40.9-55.5 2.1-2.4c5.1-5.3 12.5-8 20-7.2 8.5 1 15.9 6.5 19.3 14.4l41.8 97.5 64.2 0c10.2 0 20 2 29 5.5-16.4-94-98.3-165.5-197-165.5l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0zM488 296a24 24 0 1 0 0 48 24 24 0 1 0 0-48zM43.5 331.1C36.2 321.4 32 309.5 32 296.8 32 265.5 57.5 240 88.9 240l27.6 0-72.9 91.1zM225.1 240l48.2 0 1.4-1.9-16.9-39.5-32.7 41.5zm107.8 0l46.7 0-17.2-40-29.5 40z\"]\n};\nvar faRightLong = {\n  prefix: 'fas',\n  iconName: 'right-long',\n  icon: [576, 512, [\"long-arrow-alt-right\"], \"f30b\", \"M566.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-128 128c-9.2 9.2-22.9 11.9-34.9 6.9S384 396.9 384 384l0-64-336 0c-26.5 0-48-21.5-48-48l0-32c0-26.5 21.5-48 48-48l336 0 0-64c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l128 128z\"]\n};\nvar faLongArrowAltRight = faRightLong;\nvar faTruckDroplet = {\n  prefix: 'fas',\n  iconName: 'truck-droplet',\n  icon: [576, 512, [], \"e58c\", \"M64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64l3.3 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l102.6 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l3.3 0c35.3 0 64-28.7 64-64l0-146.7c0-17-6.7-33.3-18.7-45.3L512 146.7c-12-12-28.3-18.7-45.3-18.7l-50.7 0 0-32c0-35.3-28.7-64-64-64L64 32zM512 237.3l0 50.7-96 0 0-96 50.7 0 45.3 45.3zM152 384a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm232 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM208 304c-39.8 0-72-32.2-72-72 0-33.2 34.5-78 55.8-102.4 8.7-10 23.8-10 32.5 0 21.2 24.4 55.8 69.1 55.8 102.4 0 48-32.2 72-72 72z\"]\n};\nvar faHandHoldingMedical = {\n  prefix: 'fas',\n  iconName: 'hand-holding-medical',\n  icon: [576, 512, [], \"e05c\", \"M240 24c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 56 56 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-56 0 0 56c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-56-56 0c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24l56 0 0-56zM66.7 384l42.5-42.5c24-24 56.6-37.5 90.5-37.5L352 304c17.7 0 32 14.3 32 32s-14.3 32-32 32l-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l112.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5s9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5L32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l34.7 0z\"]\n};\nvar faHandPointLeft = {\n  prefix: 'fas',\n  iconName: 'hand-point-left',\n  icon: [512, 512, [], \"f0a5\", \"M32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l208 0 0-64-208 0zM192 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0zm-64-64c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-48 0c-17.7 0-32 14.3-32 32zm96 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0zm88-96l-.6 0c5.4 9.4 8.6 20.3 8.6 32 0 13.2-4 25.4-10.8 35.6 24.9 8.7 42.8 32.5 42.8 60.4 0 11.7-3.1 22.6-8.6 32l8.6 0c88.4 0 160-71.6 160-160l0-61.7c0-42.4-16.9-83.1-46.9-113.1l-11.6-11.6C429.5 77.5 396.9 64 363 64l-27 0c-35.3 0-64 28.7-64 64l0 88c0 22.1 17.9 40 40 40s40-17.9 40-40l0-56c0-8.8 7.2-16 16-16s16 7.2 16 16l0 56c0 39.8-32.2 72-72 72z\"]\n};\nvar faCalculator = {\n  prefix: 'fas',\n  iconName: 'calculator',\n  icon: [384, 512, [128425], \"f1ec\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM96 64l192 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L96 160c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32zm16 168a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zm80 24a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm128-24a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM88 352a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm128-24a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zm80 24a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM64 424c0-13.3 10.7-24 24-24l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 448c-13.3 0-24-10.7-24-24zm232-24c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z\"]\n};\nvar faMinus = {\n  prefix: 'fas',\n  iconName: 'minus',\n  icon: [448, 512, [8211, 8722, 10134, \"subtract\"], \"f068\", \"M0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32z\"]\n};\nvar faSubtract = faMinus;\nvar faArrowUpZA = {\n  prefix: 'fas',\n  iconName: 'arrow-up-z-a',\n  icon: [512, 512, [\"sort-alpha-up-alt\"], \"f882\", \"M150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80zM288 64c0 17.7 14.3 32 32 32l50.7 0-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9S307.1 224 320 224l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-50.7 0 73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9S461 32 448 32L320 32c-17.7 0-32 14.3-32 32zM412.6 273.7C407.2 262.8 396.1 256 384 256s-23.2 6.8-28.6 17.7l-80 160c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3 88.4 0 7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-80-160zM384 359.6l20.2 40.4-40.4 0 20.2-40.4z\"]\n};\nvar faSortAlphaUpAlt = faArrowUpZA;\nvar faMicrophoneSlash = {\n  prefix: 'fas',\n  iconName: 'microphone-slash',\n  icon: [576, 512, [], \"f131\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L424.7 358.8C458.9 324.2 480 276.6 480 224l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 39.3-15.7 74.9-41.3 100.9L356.8 291C373.6 273.7 384 250 384 224l0-128c0-53-43-96-96-96s-96 43-96 96l0 30.2-151-151zm298.3 434l-41.4-41.4c-3.3 .2-6.5 .3-9.8 .3-79.5 0-144-64.5-144-144l0-10.2-43.6-43.6c-2.8 3.9-4.4 8.7-4.4 13.8l0 40c0 97.9 73.3 178.7 168 190.5l0 49.5-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-49.5c9.3-1.2 18.4-3 27.3-5.4z\"]\n};\nvar faSquarePen = {\n  prefix: 'fas',\n  iconName: 'square-pen',\n  icon: [448, 512, [\"pen-square\", \"pencil-square\"], \"f14b\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM325.8 139.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-23.8 23.8-71-71 23.8-23.8c15.6-15.6 40.9-15.6 56.6 0zM119.9 289l91.5-91.6 71 71-91.6 91.5c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z\"]\n};\nvar faPenSquare = faSquarePen;\nvar faPencilSquare = faSquarePen;\nvar faHandFist = {\n  prefix: 'fas',\n  iconName: 'hand-fist',\n  icon: [384, 512, [9994, \"fist-raised\"], \"f6de\", \"M160 0c17.7 0 32 14.3 32 32l0 112-64 0 0-112c0-17.7 14.3-32 32-32zM32 64c0-17.7 14.3-32 32-32S96 46.3 96 64l0 80-64 0 0-80zm192 0c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96zm96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6 13.2 0 25.4-4 35.6-10.8 8.7 24.9 32.5 42.8 60.4 42.8 11.7 0 22.6-3.1 32-8.6l0 8.6c0 52.3-25.1 98.8-64 128l0 96c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-78.4c-17.3-7.9-33.2-18.8-46.9-32.5L37.5 357.5C13.5 333.5 0 300.9 0 267l0-27c0-35.3 28.7-64 64-64l88 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72z\"]\n};\nvar faFistRaised = faHandFist;\nvar faCommentSms = {\n  prefix: 'fas',\n  iconName: 'comment-sms',\n  icon: [512, 512, [\"sms\"], \"f7cd\", \"M256 480c141.4 0 256-107.5 256-240S397.4 0 256 0 0 107.5 0 240c0 54.3 19.2 104.3 51.6 144.5L2.8 476.8c-4.8 9-3.3 20 3.6 27.5s17.8 9.8 27.1 5.8l118.4-50.7C183.7 472.6 218.9 480 256 480zM140.8 172.8l19.2 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-19.2 0c-5.3 0-9.6 4.3-9.6 9.6s4.3 9.6 9.6 9.6c23 0 41.6 18.6 41.6 41.6s-18.6 41.6-41.6 41.6l-25.6 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l25.6 0c5.3 0 9.6-4.3 9.6-9.6s-4.3-9.6-9.6-9.6c-23 0-41.6-18.6-41.6-41.6s18.6-41.6 41.6-41.6zm188.8 41.6c0-23 18.6-41.6 41.6-41.6l19.2 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-19.2 0c-5.3 0-9.6 4.3-9.6 9.6s4.3 9.6 9.6 9.6c23 0 41.6 18.6 41.6 41.6s-18.6 41.6-41.6 41.6l-25.6 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l25.6 0c5.3 0 9.6-4.3 9.6-9.6s-4.3-9.6-9.6-9.6c-23 0-41.6-18.6-41.6-41.6zm-98.3-33.8l24.7 41.1 24.7-41.1c3.7-6.2 11.1-9.1 18-7.2s11.7 8.2 11.7 15.4l0 102.4c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-44.6-8.7 14.5c-2.9 4.8-8.1 7.8-13.7 7.8s-10.8-3-13.7-7.8l-8.7-14.5 0 44.6c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-102.4c0-7.2 4.8-13.5 11.7-15.4s14.3 1 18 7.2z\"]\n};\nvar faSms = faCommentSms;\nvar faSimCard = {\n  prefix: 'fas',\n  iconName: 'sim-card',\n  icon: [384, 512, [], \"f7c4\", \"M0 64C0 28.7 28.7 0 64 0L258.7 0c17 0 33.3 6.7 45.3 18.7L365.3 80c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM96 256c-17.7 0-32 14.3-32 32l0 40 128 0 0-72-96 0zM64 416c0 17.7 14.3 32 32 32l48 0 0-72-80 0 0 40zm256 0l0-40-128 0 0 72 96 0c17.7 0 32-14.3 32-32zm0-128c0-17.7-14.3-32-32-32l-48 0 0 72 80 0 0-40z\"]\n};\nvar faScaleBalanced = {\n  prefix: 'fas',\n  iconName: 'scale-balanced',\n  icon: [640, 512, [9878, \"balance-scale\"], \"f24e\", \"M384 32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L398.4 96c-5.2 25.8-22.9 47.1-46.4 57.3l0 294.7 160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-384 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0 0-294.7c-23.5-10.3-41.2-31.6-46.4-57.3L128 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l128 0c14.6-19.4 37.8-32 64-32s49.4 12.6 64 32zm55.6 288L584.4 320 512 195.8 439.6 320zM512 416c-62.9 0-115.2-34-126-78.9-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1-10.8 44.8-63.1 78.9-126 78.9zM126.8 195.8L54.4 320 199.3 320 126.8 195.8zM.9 337.1c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1-10.8 44.8-63.1 78.9-126 78.9S11.7 382 .9 337.1z\"]\n};\nvar faBalanceScale = faScaleBalanced;\nvar faCar = {\n  prefix: 'fas',\n  iconName: 'car',\n  icon: [512, 512, [128664, \"automobile\"], \"f1b9\", \"M135.2 117.4l-26.1 74.6 293.8 0-26.1-74.6C372.3 104.6 360.2 96 346.6 96L165.4 96c-13.6 0-25.7 8.6-30.2 21.4zM39.6 196.8L74.8 96.3C88.3 57.8 124.6 32 165.4 32l181.2 0c40.8 0 77.1 25.8 90.6 64.3l35.2 100.5c23.2 9.6 39.6 32.5 39.6 59.2l0 192c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32-320 0 0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32L0 256c0-26.7 16.4-49.6 39.6-59.2zM128 304a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faAutomobile = faCar;\nvar faCropSimple = {\n  prefix: 'fas',\n  iconName: 'crop-simple',\n  icon: [512, 512, [\"crop-alt\"], \"f565\", \"M128 32c0-17.7-14.3-32-32-32S64 14.3 64 32l0 32-32 0C14.3 64 0 78.3 0 96s14.3 32 32 32l32 0 0 256c0 35.3 28.7 64 64 64l208 0 0-64-208 0 0-352zM384 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-256c0-35.3-28.7-64-64-64l-208 0 0 64 208 0 0 352z\"]\n};\nvar faCropAlt = faCropSimple;\nvar faMedal = {\n  prefix: 'fas',\n  iconName: 'medal',\n  icon: [448, 512, [127941], \"f5a2\", \"M224.3 128L139.7-12.9c-6.5-10.8-20.1-14.7-31.3-9.1L21.8 21.3C9.9 27.2 5.1 41.6 11 53.5L80.6 192.6c-30.1 33.9-48.3 78.5-48.3 127.4 0 106 86 192 192 192s192-86 192-192c0-48.9-18.3-93.5-48.3-127.4L437.6 53.5c5.9-11.9 1.1-26.3-10.7-32.2L340.2-22.1c-11.2-5.6-24.9-1.6-31.3 9.1L224.3 128zm30.8 142.5c1.4 2.8 4 4.7 7 5.1l50.1 7.3c7.7 1.1 10.7 10.5 5.2 16l-36.3 35.4c-2.2 2.2-3.2 5.2-2.7 8.3l8.6 49.9c1.3 7.6-6.7 13.5-13.6 9.9l-44.8-23.6c-2.7-1.4-6-1.4-8.7 0l-44.8 23.6c-6.9 3.6-14.9-2.2-13.6-9.9l8.6-49.9c.5-3-.5-6.1-2.7-8.3l-36.3-35.4c-5.6-5.4-2.5-14.8 5.2-16l50.1-7.3c3-.4 5.7-2.4 7-5.1l22.4-45.4c3.4-7 13.3-7 16.8 0l22.4 45.4z\"]\n};\nvar faScroll = {\n  prefix: 'fas',\n  iconName: 'scroll',\n  icon: [576, 512, [128220], \"f70e\", \"M0 112C0 70.5 31.6 36.4 72 32.4l0-.4 280 0c53 0 96 43 96 96l0 176-176 0c-39.8 0-72 32.2-72 72l0 60c0 24.3-19.7 44-44 44s-44-19.7-44-44l0-228-64 0c-26.5 0-48-21.5-48-48l0-48zM236.8 480c7.1-13.1 11.2-28.1 11.2-44l0-60c0-13.3 10.7-24 24-24l248 0c13.3 0 24 10.7 24 24l0 24c0 44.2-35.8 80-80 80l-227.2 0zM80 80c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32z\"]\n};\nvar faFileExcel = {\n  prefix: 'fas',\n  iconName: 'file-excel',\n  icon: [384, 512, [], \"f1c3\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM164 266.7c-7.4-11-22.3-14-33.3-6.7s-14 22.3-6.7 33.3L163.2 352 124 410.7c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l28-42 28 42c7.4 11 22.3 14 33.3 6.7s14-22.3 6.7-33.3L220.8 352 260 293.3c7.4-11 4.4-25.9-6.7-33.3s-25.9-4.4-33.3 6.7l-28 42-28-42z\"]\n};\nvar faFilter = {\n  prefix: 'fas',\n  iconName: 'filter',\n  icon: [512, 512, [], \"f0b0\", \"M32 64C19.1 64 7.4 71.8 2.4 83.8S.2 109.5 9.4 118.6L192 301.3 192 416c0 8.5 3.4 16.6 9.4 22.6l64 64c9.2 9.2 22.9 11.9 34.9 6.9S320 492.9 320 480l0-178.7 182.6-182.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 64 480 64L32 64z\"]\n};\nvar faDrum = {\n  prefix: 'fas',\n  iconName: 'drum',\n  icon: [512, 512, [129345], \"f569\", \"M501.2 76.1c11.1-7.3 14.2-22.1 6.9-33.2s-22.1-14.2-33.2-6.9L370.2 104.5C335.8 98.7 297 96 256 96 114.6 96 0 128 0 208L0 368c0 31.3 27.4 58.8 72 78.7L72 344c0-13.3 10.7-24 24-24s24 10.7 24 24l0 119.4c33 8.9 71.1 14.5 112 16.1L232 376c0-13.3 10.7-24 24-24s24 10.7 24 24l0 103.5c40.9-1.6 79-7.2 112-16.1L392 344c0-13.3 10.7-24 24-24s24 10.7 24 24l0 102.7c44.6-19.9 72-47.4 72-78.7l0-160c0-41.1-30.2-69.5-78.8-87.4l67.9-44.5zM307.4 145.6l-64.6 42.3c-11.1 7.3-14.2 22.1-6.9 33.2s22.1 14.2 33.2 6.9l111.1-72.8c14.7 3.2 27.9 7 39.4 11.5 38.8 15.1 44.4 30.6 44.4 41.3 0 .8-2.7 17.2-46 35.9-38.9 16.8-96 28.1-162 28.1S132.9 260.7 94 243.9c-43.3-18.7-46-35.1-46-35.9 0-10.6 5.6-26.2 44.4-41.3 38.3-14.9 95.4-22.7 163.6-22.7 18 0 35.1 .5 51.4 1.6z\"]\n};\nvar faMapPin = {\n  prefix: 'fas',\n  iconName: 'map-pin',\n  icon: [320, 512, [128205], \"f276\", \"M192 284.4C256.1 269.9 304 212.5 304 144 304 64.5 239.5 0 160 0S16 64.5 16 144c0 68.5 47.9 125.9 112 140.4L128 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-195.6zM168 96c-30.9 0-56 25.1-56 56 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-57.4 46.6-104 104-104 13.3 0 24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faScaleUnbalancedFlip = {\n  prefix: 'fas',\n  iconName: 'scale-unbalanced-flip',\n  icon: [640, 512, [\"balance-scale-right\"], \"f516\", \"M118.2 62.4C101.5 56.8 92.4 38.6 98 21.9S121.7-3.9 138.5 1.6l113 37.7c13.9-23.5 39.6-39.3 68.9-39.3 44.2 0 80 35.8 80 80 0 3-.2 5.9-.5 8.8l122.6 40.9c16.8 5.6 25.8 23.7 20.2 40.5s-23.7 25.8-40.5 20.2L366.7 145.2c-4.5 3.2-9.3 5.9-14.4 8.2l0 326.7c0 17.7-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0 0-294.7c-21-9.2-37.2-27-44.2-49l-125.9-42zM200.8 288L128.3 163.8 55.9 288 200.8 288zm-72.4 96c-62.9 0-115.2-34-126-78.9-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1-10.8 44.8-63.1 78.9-126 78.9zm382.8-92.2l-72.4 124.2 144.9 0-72.4-124.2zm126 141.3C626.4 478 574.1 512 511.2 512s-115.2-34-126-78.9c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1z\"]\n};\nvar faBalanceScaleRight = faScaleUnbalancedFlip;\nvar faArrowsToCircle = {\n  prefix: 'fas',\n  iconName: 'arrows-to-circle',\n  icon: [512, 512, [], \"e4bd\", \"M9.4 9.4C21.9-3.1 42.1-3.1 54.6 9.4L128 82.7 128 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l18.7 0-73.4-73.4C-3.1 42.1-3.1 21.9 9.4 9.4zM200 256a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM502.6 54.6L429.3 128 448 128c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 18.7 73.4-73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm-45.3 448L384 429.3 384 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-18.7 0 73.4 73.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0zM9.4 457.4L82.7 384 64 384c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.7-73.4 73.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3z\"]\n};\nvar faEnvelope = {\n  prefix: 'fas',\n  iconName: 'envelope',\n  icon: [512, 512, [128386, 9993, 61443], \"f0e0\", \"M48 64c-26.5 0-48 21.5-48 48 0 15.1 7.1 29.3 19.2 38.4l208 156c17.1 12.8 40.5 12.8 57.6 0l208-156c12.1-9.1 19.2-23.3 19.2-38.4 0-26.5-21.5-48-48-48L48 64zM0 196L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-188-198.4 148.8c-34.1 25.6-81.1 25.6-115.2 0L0 196z\"]\n};\nvar faBaby = {\n  prefix: 'fas',\n  iconName: 'baby',\n  icon: [384, 512, [], \"f77c\", \"M120 88a72 72 0 1 1 144 0 72 72 0 1 1 -144 0zM7.7 144.5c13-17.9 38-21.8 55.9-8.8L99.8 162c26.8 19.5 59.1 30 92.2 30s65.4-10.5 92.2-30l36.2-26.4c17.9-13 42.9-9 55.9 8.8s9 42.9-8.8 55.9l-36.2 26.4c-13.6 9.9-28.1 18.2-43.3 25l0 36.3-192 0 0-36.3c-15.2-6.7-29.7-15.1-43.3-25L16.5 200.3c-17.9-13-21.8-38-8.8-55.9zM97.5 329.3l60.6 53-26 37.2 24.3 24.3c15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-48-48C38 438.6 36.1 417 47.2 401.1l50.2-71.8zm128.5 53l60.6-53 50.2 71.8c11.1 15.9 9.2 37.5-4.5 51.2l-48 48c-15.6 15.6-40.9 15.6-56.6 0s-15.6-40.9 0-56.6l24.3-24.3-26-37.2z\"]\n};\nvar faSquareCaretDown = {\n  prefix: 'fas',\n  iconName: 'square-caret-down',\n  icon: [448, 512, [\"caret-square-down\"], \"f150\", \"M384 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9S110.5 192 120 192l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z\"]\n};\nvar faCaretSquareDown = faSquareCaretDown;\nvar faTent = {\n  prefix: 'fas',\n  iconName: 'tent',\n  icon: [512, 512, [], \"e57d\", \"M26.9 206.9L3.7 444.9C1.8 463.7 16.6 480 35.5 480l172.7 0c26.5 0 48-21.5 48-48l0-129c0-8.3 6.7-15 15-15 5.5 0 10.6 3 13.2 7.9l86.1 159c8.4 15.5 24.6 25.1 42.2 25.1l64.1 0c18.9 0 33.7-16.3 31.8-35.1L485.6 207.1c-1.9-19.6-12.8-37.3-29.5-47.8L280.9 48.3c-15.7-10-35.8-9.9-51.5 .1L56.1 159.2c-16.5 10.6-27.3 28.2-29.2 47.7z\"]\n};\nvar faA = {\n  prefix: 'fas',\n  iconName: 'a',\n  icon: [384, 512, [97], \"41\", \"M221.5 51.7C216.6 39.8 204.9 32 192 32s-24.6 7.8-29.5 19.7c-93.3 224-146.7 352-160 384-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2l31.8-76.3 197.3 0 31.8 76.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8c-13.3-32-66.7-160-160-384zM264 320l-144 0 72-172.8 72 172.8z\"]\n};\nvar faParachuteBox = {\n  prefix: 'fas',\n  iconName: 'parachute-box',\n  icon: [512, 512, [], \"f4cd\", \"M128 224C128 152.2 144.3 88.4 169.5 43.4 195.1-2.4 226.6-24 256-24s60.9 21.6 86.5 67.4C367.7 88.4 384 152.2 384 224l-104 0 0 96 8 0c9.3 0 18.1 2 26 5.5l118.4-101.5-.5 0c0-78.4-17.7-150.6-47.6-204-6.1-11-12.9-21.3-20.3-30.9 86.5 35.9 147.8 115.1 147.8 218.9 0 7-3.1 13.7-8.4 18.2L347.4 360.1c3 7.4 4.6 15.4 4.6 23.9l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64l0-64c0-8.4 1.6-16.5 4.6-23.9L8.4 226.2C3.1 221.7 0 215 0 208 0 104.2 61.3 24.9 147.8-10.9 140.5-1.4 133.7 9 127.6 20 97.7 73.4 80 145.6 80 224l-.5 0 118.4 101.5c8-3.5 16.8-5.5 26-5.5l8 0 0-96-104 0z\"]\n};\nvar faCartArrowDown = {\n  prefix: 'fas',\n  iconName: 'cart-arrow-down',\n  icon: [640, 512, [], \"f218\", \"M0 8C0-5.3 10.7-16 24-16l45.3 0c27.1 0 50.3 19.4 55.1 46l.4 2 187.2 0 0 102.1-31-31c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c9.4 9.4 24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-31 31 0-102.1 177.4 0c20 0 35.1 18.2 31.4 37.9L537.8 235.8c-5.7 30.3-32.1 52.2-62.9 52.2l-303.6 0 5.1 28.3c2.1 11.4 12 19.7 23.6 19.7L456 336c13.3 0 24 10.7 24 24s-10.7 24-24 24l-255.9 0c-34.8 0-64.6-24.9-70.8-59.1L77.2 38.6c-.7-3.8-4-6.6-7.9-6.6L24 32C10.7 32 0 21.3 0 8zM160 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm224 0a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"]\n};\nvar faBridgeCircleExclamation = {\n  prefix: 'fas',\n  iconName: 'bridge-circle-exclamation',\n  icon: [576, 512, [], \"e4ca\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l8 0 0 64-40 0 0 112c37.6 9.4 64 43.2 64 82l0 94c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96 6.4 0 12.7 .6 18.7 1.8 34.7-49.5 92.2-81.8 157.3-81.8 28.6 0 55.6 6.2 80 17.4l0-65.4-40 0 0-64 8 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM424 96l0 64-80 0 0-64 80 0zM296 96l0 64-80 0 0-64 80 0zM88 96l80 0 0 64-80 0 0-64zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nvar faCloudArrowUp = {\n  prefix: 'fas',\n  iconName: 'cloud-arrow-up',\n  icon: [576, 512, [62338, \"cloud-upload\", \"cloud-upload-alt\"], \"f0ee\", \"M144 480c-79.5 0-144-64.5-144-144 0-63.4 41-117.2 97.9-136.5-1.3-7.7-1.9-15.5-1.9-23.5 0-79.5 64.5-144 144-144 55.4 0 103.5 31.3 127.6 77.1 14.2-8.3 30.8-13.1 48.4-13.1 53 0 96 43 96 96 0 15.7-3.8 30.6-10.5 43.7 44 20.3 74.5 64.7 74.5 116.3 0 70.7-57.3 128-128 128l-304 0zM305 191c-9.4-9.4-24.6-9.4-33.9 0l-72 72c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l31-31 0 102.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-102.1 31 31c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-72-72z\"]\n};\nvar faCloudUpload = faCloudArrowUp;\nvar faCloudUploadAlt = faCloudArrowUp;\nvar faAt = {\n  prefix: 'fas',\n  iconName: 'at',\n  icon: [512, 512, [61946], \"40\", \"M256 64C150 64 64 150 64 256s86 192 192 192c17.7 0 32 14.3 32 32s-14.3 32-32 32C114.6 512 0 397.4 0 256S114.6 0 256 0 512 114.6 512 256l0 32c0 53-43 96-96 96-29.3 0-55.6-13.2-73.2-33.9-22.8 21-53.3 33.9-86.8 33.9-70.7 0-128-57.3-128-128s57.3-128 128-128c27.9 0 53.7 8.9 74.7 24.1 5.7-5 13.1-8.1 21.3-8.1 17.7 0 32 14.3 32 32l0 112c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32c0-106-86-192-192-192zm64 192a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"]\n};\nvar faIndianRupeeSign = {\n  prefix: 'fas',\n  iconName: 'indian-rupee-sign',\n  icon: [320, 512, [\"indian-rupee\", \"inr\"], \"e1bc\", \"M0 64C0 46.3 14.3 32 32 32l264 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-76.7 0c17.7 19.8 30.1 44.6 34.7 72l42 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-42 0c-10.4 62.2-60.8 110.9-123.8 118.9L274.6 422c14.4 10.3 17.7 30.3 7.4 44.6s-30.3 17.7-44.6 7.4L13.4 314C2.1 306-2.7 291.5 1.5 278.2S18.1 256 32 256l80 0c35.8 0 66.1-23.5 76.3-56L24 200c-13.3 0-24-10.7-24-24s10.7-24 24-24l164.3 0c-10.2-32.5-40.5-56-76.3-56L32 96C14.3 96 0 81.7 0 64z\"]\n};\nvar faIndianRupee = faIndianRupeeSign;\nvar faInr = faIndianRupeeSign;\nvar faTruck = {\n  prefix: 'fas',\n  iconName: 'truck',\n  icon: [576, 512, [128666, 9951], \"f0d1\", \"M0 96C0 60.7 28.7 32 64 32l288 0c35.3 0 64 28.7 64 64l0 32 50.7 0c17 0 33.3 6.7 45.3 18.7L557.3 192c12 12 18.7 28.3 18.7 45.3L576 384c0 35.3-28.7 64-64 64l-3.3 0c-10.4 36.9-44.4 64-84.7 64s-74.2-27.1-84.7-64l-102.6 0c-10.4 36.9-44.4 64-84.7 64s-74.2-27.1-84.7-64L64 448c-35.3 0-64-28.7-64-64L0 96zM512 288l0-50.7-45.3-45.3-50.7 0 0 96 96 0zM192 424a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm232 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"]\n};\nvar faChalkboardUser = {\n  prefix: 'fas',\n  iconName: 'chalkboard-user',\n  icon: [640, 512, [\"chalkboard-teacher\"], \"f51c\", \"M192 384c53 0 96 43 96 96 0 17.7-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32 0-53 43-96 96-96l96 0zM544 32c35.3 0 64 28.7 64 64l0 288c0 33.1-25.2 60.4-57.5 63.7l-6.5 .3-211.1 0c-5.1-24.2-16.3-46.1-32.1-64l51.2 0 0-32c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32l0 32 32 0 0-288-352 0 0 57.3c-14.8-6-31-9.3-48-9.3-5.4 0-10.8 .3-16 1l0-49c0-35.3 28.7-64 64-64l352 0zM144 352a80 80 0 1 1 0-160 80 80 0 1 1 0 160z\"]\n};\nvar faChalkboardTeacher = faChalkboardUser;\nvar faUserCheck = {\n  prefix: 'fas',\n  iconName: 'user-check',\n  icon: [640, 512, [], \"f4fc\", \"M286 304c98.5 0 178.3 79.8 178.3 178.3 0 16.4-13.3 29.7-29.7 29.7L78 512c-16.4 0-29.7-13.3-29.7-29.7 0-98.5 79.8-178.3 178.3-178.3l59.4 0zM585.7 105.9c7.8-10.7 22.8-13.1 33.5-5.3s13.1 22.8 5.3 33.5L522.1 274.9c-4.2 5.7-10.7 9.4-17.7 9.8s-14-2.2-18.9-7.3l-46.4-48c-9.2-9.5-9-24.7 .6-33.9 9.5-9.2 24.7-8.9 33.9 .6l26.5 27.4 85.6-117.7zM256.3 248a120 120 0 1 1 0-240 120 120 0 1 1 0 240z\"]\n};\nvar faUserNinja = {\n  prefix: 'fas',\n  iconName: 'user-ninja',\n  icon: [448, 512, [129399], \"f504\", \"M352 128c0 70.7-57.3 128-128 128-57.2 0-105.6-37.5-122-89.3-1.1 1.3-2.2 2.6-3.5 3.8-15.8 15.8-38.8 20.7-53.6 22.1-8.1 .8-14.6-5.7-13.8-13.8 1.4-14.7 6.3-37.8 22.1-53.6 5.8-5.8 12.6-10.1 19.6-13.4-7-3.2-13.8-7.6-19.6-13.4-15.8-15.8-20.7-38.8-22.1-53.6-.8-8.1 5.7-14.6 13.8-13.8 14.7 1.4 37.8 6.3 53.6 22.1 4.8 4.8 8.7 10.4 11.7 16.1 21.3-41.2 64.3-69.4 113.8-69.4 70.7 0 128 57.3 128 128zM144 112c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L160 96c-8.8 0-16 7.2-16 16zm-1.4 211l67 50.2c8.5 6.4 20.3 6.4 28.8 0l67-50.2c6.5-4.9 15.2-6.2 22.6-2.8 61.4 28.2 104.1 90.2 104.1 162.1 0 16.4-13.3 29.7-29.7 29.7L45.7 512c-16.4 0-29.7-13.3-29.7-29.7 0-72 42.7-134 104.1-162.1 7.4-3.4 16.1-2.1 22.6 2.8z\"]\n};\nvar faPlantWilt = {\n  prefix: 'fas',\n  iconName: 'plant-wilt',\n  icon: [512, 512, [], \"e5aa\", \"M344-32c66.3 0 120 53.7 120 120l0 6.2c29.3 12.2 48 41.3 48 76.9 0 27.9-25.3 74.8-66 111.7-3.8 3.5-8.8 5.3-14 5.3s-10.2-1.8-14-5.3c-40.7-36.8-66-83.7-66-111.7 0-35.6 18.7-64.7 48-76.9l0-6.2c0-30.9-25.1-56-56-56s-56 25.1-56 56l0 424c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-296c0-30.9-25.1-56-56-56s-56 25.1-56 56l0 38.2c29.3 12.2 48 41.3 48 76.9 0 27.9-25.3 74.8-66 111.7-3.8 3.5-8.8 5.3-14 5.3s-10.2-1.8-14-5.3C25.3 405.9 0 359 0 331.1 0 295.4 18.7 266.4 48 254.2L48 216c0-66.3 53.7-120 120-120 20.2 0 39.3 5 56 13.8L224 88c0-66.3 53.7-120 120-120z\"]\n};\nvar faWeightScale = {\n  prefix: 'fas',\n  iconName: 'weight-scale',\n  icon: [448, 512, [\"weight\"], \"f496\", \"M116.6 192c-3-10.1-4.6-20.9-4.6-32 0-61.9 50.1-112 112-112S336 98.1 336 160c0 11.1-1.6 21.9-4.6 32l-71 0 24.6-44.3c6.4-11.6 2.3-26.2-9.3-32.6s-26.2-2.3-32.6 9.3l-37.6 67.7-88.8 0zM128 32L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-64 0C293.3 11.9 260 0 224 0s-69.3 11.9-96 32z\"]\n};\nvar faWeight = faWeightScale;\nvar faCaretRight = {\n  prefix: 'fas',\n  iconName: 'caret-right',\n  icon: [256, 512, [], \"f0da\", \"M249.3 235.8c10.2 12.6 9.5 31.1-2.2 42.8l-128 128c-9.2 9.2-22.9 11.9-34.9 6.9S64.5 396.9 64.5 384l0-256c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l128 128 2.2 2.4z\"]\n};\nvar faFlorinSign = {\n  prefix: 'fas',\n  iconName: 'florin-sign',\n  icon: [384, 512, [], \"e184\", \"M314.7 32c-38.8 0-73.7 23.3-88.6 59.1L170.7 224 64 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l80 0-45.1 108.3c-5 11.9-16.6 19.7-29.5 19.7L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l37.3 0c38.8 0 73.7-23.3 88.6-59.1L213.3 288 320 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 45.1-108.3c5-11.9 16.6-19.7 29.5-19.7L352 96c17.7 0 32-14.3 32-32s-14.3-32-32-32l-37.3 0z\"]\n};\nvar faBell = {\n  prefix: 'fas',\n  iconName: 'bell',\n  icon: [448, 512, [128276, 61602], \"f0f3\", \"M224 0c-17.7 0-32 14.3-32 32l0 3.2C119 50 64 114.6 64 192l0 21.7c0 48.1-16.4 94.8-46.4 132.4L7.8 358.3C2.7 364.6 0 372.4 0 380.5 0 400.1 15.9 416 35.5 416l376.9 0c19.6 0 35.5-15.9 35.5-35.5 0-8.1-2.7-15.9-7.8-22.2l-9.8-12.2C400.4 308.5 384 261.8 384 213.7l0-21.7c0-77.4-55-142-128-156.8l0-3.2c0-17.7-14.3-32-32-32zM162 464c7.1 27.6 32.2 48 62 48s54.9-20.4 62-48l-124 0z\"]\n};\nvar faLariSign = {\n  prefix: 'fas',\n  iconName: 'lari-sign',\n  icon: [384, 512, [], \"e1c8\", \"M144 0c13.3 0 24 10.7 24 24l0 41.5c7.9-1 15.9-1.5 24-1.5s16.1 .5 24 1.5L216 24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 54c58.9 23.8 103.2 76 116.2 139.7 3.5 17.3-7.7 34.2-25 37.7s-34.2-7.7-37.7-25c-6.7-33.2-26.4-61.8-53.4-80.2l0 81.8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-101.8c-7.8-1.5-15.8-2.2-24-2.2s-16.2 .8-24 2.2L168 232c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-81.8c-33.8 23-56 61.9-56 105.8 0 70.7 57.3 128 128 128l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l16.9 0C18.5 350 0 305.2 0 256 0 175.4 49.6 106.4 120 78l0-54c0-13.3 10.7-24 24-24z\"]\n};\nvar faMillSign = {\n  prefix: 'fas',\n  iconName: 'mill-sign',\n  icon: [384, 512, [], \"e1ed\", \"M297-22.2c12.3 5 18.2 19 13.2 31.3l-29 71.3C338.8 85.1 384 133.3 384 192l0 208c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-208c0-26.5-21.5-48-48-48-6.4 0-12.5 1.2-18 3.5l-30 73.8 0 178.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-21.2-57.8 142.2c-5 12.3-19 18.2-31.3 13.2s-18.2-19-13.2-31.3L160 251.3 160 192c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 208c0 17.7-14.3 32-32 32S0 417.7 0 400L0 112c0-17.7 14.3-32 32-32 10.9 0 20.5 5.4 26.3 13.7 16-8.7 34.3-13.7 53.7-13.7 31.3 0 59.7 12.9 80 33.6 9.6-9.8 20.9-17.8 33.5-23.5L265.8-9c5-12.3 19-18.2 31.3-13.2z\"]\n};\nvar faPersonSnowboarding = {\n  prefix: 'fas',\n  iconName: 'person-snowboarding',\n  icon: [576, 512, [127938, \"snowboarding\"], \"f7ce\", \"M424.5 16a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM166.4 45.5c10.2-14.4 30.2-17.9 44.6-7.7l272 192c14.4 10.2 17.9 30.2 7.7 44.6s-30.2 17.9-44.6 7.7l-92.2-65.1-62.2 53.3 32.1 26.7c18.2 15.2 28.8 37.7 28.8 61.5l0 87.8 77.5 15.2c6.2 1.2 12.6 .9 18.7-.8l41.2-11.8c12.7-3.6 26 3.7 29.7 16.5s-3.7 26-16.5 29.7l-41.2 11.8c-13.4 3.8-27.4 4.4-41.1 1.8L87.1 443.3c-17.2-3.4-33-11.8-45.3-24.1L15.5 393c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l26.2 26.2c5.6 5.6 12.8 9.4 20.6 11l64.2 12.6 0-123.7c0-27.7 12-54 32.8-72.2l69-60.4-88.2-62.3C159.6 80 156.2 60 166.4 45.5zm58.1 375.7l64 12.5 0-75.3c0-4.7-2.1-9.3-5.8-12.3l-58.2-48.5 0 123.6z\"]\n};\nvar faSnowboarding = faPersonSnowboarding;\nvar faTty = {\n  prefix: 'fas',\n  iconName: 'tty',\n  icon: [512, 512, [\"teletype\"], \"f1e4\", \"M450.2 266.8c15.8 6.5 34.1 .3 42.6-14.6l2.4-4.2c27.9-48.9 23.6-118.8-31.3-154.5-126-82-289.6-82-415.6 0-54.9 35.7-59.3 105.7-31.3 154.5l2.4 4.2c8.5 14.9 26.7 21.1 42.6 14.6l81.9-33.7c13.9-5.7 22.4-19.9 20.9-34.9l-5.1-51c62.5-21 130.8-19.9 192.6 3.3l-4.8 47.7c-1.5 15 7 29.2 20.9 34.9l81.9 33.7zM32 352a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zm96 0a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zM64 416a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm352 32a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zM256 320a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm64 32a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zm128-32a32 32 0 1 0 0 64 32 32 0 1 0 0-64zM128 448c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-192 0c-17.7 0-32 14.3-32 32z\"]\n};\nvar faTeletype = faTty;\nvar faUsersRectangle = {\n  prefix: 'fas',\n  iconName: 'users-rectangle',\n  icon: [576, 512, [], \"e594\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm224 72a56 56 0 1 1 0 112 56 56 0 1 1 0-112zm0 152c53 0 96 43 96 96l0 24c0 13.3-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24l0-24c0-53 43-96 96-96zm96-64a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM168 272.3c-15.2 22.8-24 50.2-24 79.7l0 24c0 8.4 1.4 16.5 4.1 24l-46.8 0C89.6 400 80 390.4 80 378.7L80 368c0-50.3 38.7-91.6 88-95.7zM427.9 400c2.7-7.5 4.1-15.6 4.1-24l0-24c0-29.5-8.8-56.9-24-79.7 49.3 4.1 88 45.3 88 95.7l0 10.7c0 11.8-9.6 21.3-21.3 21.3l-46.8 0zM96 192a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"]\n};\nvar faMobile = {\n  prefix: 'fas',\n  iconName: 'mobile',\n  icon: [384, 512, [128241, \"mobile-android\", \"mobile-phone\"], \"f3ce\", \"M80 0C44.7 0 16 28.7 16 64l0 384c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L80 0zm72 416l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faMobileAndroid = faMobile;\nvar faMobilePhone = faMobile;\nvar faArrowsTurnToDots = {\n  prefix: 'fas',\n  iconName: 'arrows-turn-to-dots',\n  icon: [448, 512, [], \"e4c1\", \"M265.4-6.6c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L285.3 64 352 64c53 0 96 43 96 96l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32c0-17.7-14.3-32-32-32l-66.7 0 25.4 25.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3l80-80zm-82.7 272l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L162.7 400 96 400c-17.7 0-32 14.3-32 32l0 32c0 17.7-14.3 32-32 32S0 481.7 0 464l0-32c0-53 43-96 96-96l66.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0zM320 368a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM64 160a64 64 0 1 1 0-128 64 64 0 1 1 0 128z\"]\n};\nvar faExclamation = {\n  prefix: 'fas',\n  iconName: 'exclamation',\n  icon: [128, 512, [10069, 10071, 61738], \"21\", \"M64 432c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40c0-22.1 17.9-40 40-40zM64 0c26.5 0 48 21.5 48 48 0 .6 0 1.1 0 1.7l-16 304c-.9 17-15 30.3-32 30.3S33 370.7 32 353.7L16 49.7c0-.6 0-1.1 0-1.7 0-26.5 21.5-48 48-48z\"]\n};\nvar faChurch = {\n  prefix: 'fas',\n  iconName: 'church',\n  icon: [512, 512, [9962], \"f51d\", \"M280-8c0-13.3-10.7-24-24-24S232-21.3 232-8l0 24-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 48-98.6 65.8C120 186.7 112 201.6 112 217.7l0 38.3-79.8 45.6C12.3 313 0 334.2 0 357.1L0 448c0 35.3 28.7 64 64 64 74.7 0 85.4 0 320 0l64 0c35.3 0 64-28.7 64-64l0-90.9c0-23-12.3-44.2-32.2-55.6L400 256 400 217.7c0-16-8-31-21.4-39.9l-98.6-65.8 0-48 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-24zM256 320c35.3 0 64 28.7 64 64l0 80-128 0 0-80c0-35.3 28.7-64 64-64z\"]\n};\nvar faToggleOff = {\n  prefix: 'fas',\n  iconName: 'toggle-off',\n  icon: [576, 512, [], \"f204\", \"M384 128c70.7 0 128 57.3 128 128S454.7 384 384 384l-192 0c-70.7 0-128-57.3-128-128s57.3-128 128-128l192 0zM576 256c0-106-86-192-192-192L192 64C86 64 0 150 0 256S86 448 192 448l192 0c106 0 192-86 192-192zM192 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160z\"]\n};\nvar faShoePrints = {\n  prefix: 'fas',\n  iconName: 'shoe-prints',\n  icon: [576, 512, [], \"f54b\", \"M296 192c-21.1-12.1-42.3-24.2-72-29.3l0-140.3C257.7 13 311.4 0 352 0 448 0 576 48 576 128s-119.6 96-176 96c-48 0-76-16-104-32zM128 32l48 0 0 128-48 0c-35.3 0-64-28.7-64-64s28.7-64 64-64zM232 320c28-16 56-32 104-32 56.4 0 176 16 176 96S384 512 288 512c-40.5 0-94.3-13-128-22.4l0-140.3c29.7-5.2 50.9-17.3 72-29.4zM64 480c-35.3 0-64-28.7-64-64s28.7-64 64-64l48 0 0 128-48 0z\"]\n};\nvar faFileCircleExclamation = {\n  prefix: 'fas',\n  iconName: 'file-circle-exclamation',\n  icon: [576, 512, [], \"e4eb\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nvar faWallet = {\n  prefix: 'fas',\n  iconName: 'wallet',\n  icon: [512, 512, [], \"f555\", \"M64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64L72 128c-13.3 0-24-10.7-24-24S58.7 80 72 80l384 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L64 32zM416 256a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faMessage = {\n  prefix: 'fas',\n  iconName: 'message',\n  icon: [512, 512, [\"comment-alt\"], \"f27a\", \"M0 352L0 128C0 75 43 32 96 32l320 0c53 0 96 43 96 96l0 224c0 53-43 96-96 96l-120 0c-5.2 0-10.2 1.7-14.4 4.8L166.4 539.2c-4.2 3.1-9.2 4.8-14.4 4.8-13.3 0-24-10.7-24-24l0-72-32 0c-53 0-96-43-96-96z\"]\n};\nvar faCommentAlt = faMessage;\nvar faTrophy = {\n  prefix: 'fas',\n  iconName: 'trophy',\n  icon: [512, 512, [127942], \"f091\", \"M144.3 0l224 0c26.5 0 48.1 21.8 47.1 48.2-.2 5.3-.4 10.6-.7 15.8l49.6 0c26.1 0 49.1 21.6 47.1 49.8-7.5 103.7-60.5 160.7-118 190.5-15.8 8.2-31.9 14.3-47.2 18.8-20.2 28.6-41.2 43.7-57.9 51.8l0 73.1 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 0-73.1c-16-7.7-35.9-22-55.3-48.3-18.4-4.8-38.4-12.1-57.9-23.1-54.1-30.3-102.9-87.4-109.9-189.9-1.9-28.1 21-49.7 47.1-49.7l49.6 0c-.3-5.2-.5-10.4-.7-15.8-1-26.5 20.6-48.2 47.1-48.2zM101.5 112l-52.4 0c6.2 84.7 45.1 127.1 85.2 149.6-14.4-37.3-26.3-86-32.8-149.6zM380 256.8c40.5-23.8 77.1-66.1 83.3-144.8L411 112c-6.2 60.9-17.4 108.2-31 144.8z\"]\n};\nvar faFaceDizzy = {\n  prefix: 'fas',\n  iconName: 'face-dizzy',\n  icon: [512, 512, [\"dizzy\"], \"f567\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM134.1 153.9l25.9 25.9 25.9-25.9c7.8-7.8 20.5-7.8 28.3 0s7.8 20.5 0 28.3l-25.9 25.9 25.9 25.9c7.8 7.8 7.8 20.5 0 28.3s-20.5 7.8-28.3 0l-25.9-25.9-25.9 25.9c-7.8 7.8-20.5 7.8-28.3 0s-7.8-20.5 0-28.3l25.9-25.9-25.9-25.9c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0zm192 0l25.9 25.9 25.9-25.9c7.8-7.8 20.5-7.8 28.3 0s7.8 20.5 0 28.3l-25.9 25.9 25.9 25.9c7.8 7.8 7.8 20.5 0 28.3s-20.5 7.8-28.3 0l-25.9-25.9-25.9 25.9c-7.8 7.8-20.5 7.8-28.3 0s-7.8-20.5 0-28.3l25.9-25.9-25.9-25.9c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0zM256 304a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nvar faDizzy = faFaceDizzy;\nvar faBacteria = {\n  prefix: 'fas',\n  iconName: 'bacteria',\n  icon: [640, 512, [], \"e059\", \"M256-32c13.3 0 24 10.7 24 24l0 11c8.6 2.2 16.9 5.6 24.8 10.3L311 7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-6.3 6.3c4.6 7.8 8 16.2 10.3 24.8l11 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-11 0c-2.2 8.6-5.6 16.9-10.3 24.8L345 151c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-4.1-4.1-30.1 30.1 4.1 4.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-4.1-4.1c-10 10-20 20-30.1 30.1L217 279c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-6.3-6.3c-7.8 4.6-16.2 8-24.8 10.3l0 11c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-11c-8.6-2.2-16.9-5.6-24.8-10.3L73 313c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l6.3-6.3c-4.6-7.8-8-16.2-10.3-24.8l-11 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l11 0c2.2-8.6 5.6-16.9 10.3-24.8L39 169c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l4.1 4.1c10-10 20-20 30.1-30.1L103 105c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l4.1 4.1 30.1-30.1-4.1-4.1c-9.4-9.4-9.4-24.6 0-33.9S191.6-2.3 201 7l6.3 6.3c7.8-4.6 16.2-8 24.8-10.3l0-11c0-13.3 10.7-24 24-24zM128 256a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM240 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm296 40l0 11c8.6 2.2 16.9 5.6 24.8 10.3L567 199c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-6.3 6.3c4.6 7.8 8 16.2 10.3 24.8l11 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-11 0c-2.2 8.6-5.6 16.9-10.3 24.8L601 343c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-4.1-4.1-30.1 30.1 4.1 4.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-4.1-4.1c-10 10-20 20-30.1 30.1L473 471c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-6.3-6.3c-7.8 4.6-16.2 8-24.8 10.3l0 11c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-11c-8.6-2.2-16.9-5.6-24.8-10.3L329 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l6.3-6.3c-4.6-7.8-8-16.2-10.3-24.8l-11 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l11 0c2.2-8.6 5.6-16.9 10.3-24.8L295 361c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l4.1 4.1c10-10 20-20 30.1-30.1L359 297c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l4.1 4.1 30.1-30.1-4.1-4.1c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l6.3 6.3c7.8-4.6 16.2-8 24.8-10.3l0-11c0-13.3 10.7-24 24-24s24 10.7 24 24zM448 384a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faEarDeaf = {\n  prefix: 'fas',\n  iconName: 'ear-deaf',\n  icon: [512, 512, [\"deaf\", \"deafness\", \"hard-of-hearing\"], \"f2a4\", \"M502.6 54.6l-40 40c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l40-40c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm-320 320l-128 128c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM240 128c-57.6 0-105.1 43.6-111.3 99.5-1.9 17.6-17.8 30.2-35.3 28.3s-30.2-17.8-28.3-35.3c9.7-88 84.3-156.5 174.9-156.5 97.2 0 176 78.8 176 176 0 46-17.7 87.9-46.6 119.3-12 13-17.4 24.8-17.4 34.7l0 6.1c0 61.9-50.1 112-112 112-17.7 0-32-14.3-32-32s14.3-32 32-32c26.5 0 48-21.5 48-48l0-6.1c0-32.9 17.4-59.6 34.4-78 18.4-20 29.6-46.6 29.6-75.9 0-61.9-50.1-112-112-112zm0 80c-17.7 0-32 14.3-32 32 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-17.7-14.3-32-32-32z\"]\n};\nvar faDeaf = faEarDeaf;\nvar faDeafness = faEarDeaf;\nvar faHardOfHearing = faEarDeaf;\nvar faPeopleArrows = {\n  prefix: 'fas',\n  iconName: 'people-arrows',\n  icon: [512, 512, [\"people-arrows-left-right\"], \"e068\", \"M32 64A64 64 0 1 1 160 64 64 64 0 1 1 32 64zM0 224c0-35.3 28.7-64 64-64l64 0c3.2 0 6.4 .2 9.5 .7L93.1 205.1C65 233.2 65 278.8 93.1 306.9l56 56c3.4 3.4 7 6.4 10.9 9l0 92.1c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-120.6C12.9 332.4 0 311.7 0 288l0-64zM352 64a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm66.9 141.1l-44.4-44.4c3.1-.5 6.3-.7 9.5-.7l64 0c35.3 0 64 28.7 64 64l0 64c0 23.7-12.9 44.4-32 55.4L480 464c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-92.1c3.9-2.6 7.5-5.6 10.9-9l56-56c28.1-28.1 28.1-73.7 0-101.8zM302.8 177.8c9-3.7 19.3-1.7 26.2 5.2l56 56c9.4 9.4 9.4 24.6 0 33.9l-56 56c-6.9 6.9-17.2 8.9-26.2 5.2S288 321.7 288 312l0-24-64 0 0 24c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-56-56c-9.4-9.4-9.4-24.6 0-33.9l56-56c6.9-6.9 17.2-8.9 26.2-5.2S224 190.3 224 200l0 24 64 0 0-24c0-9.7 5.8-18.5 14.8-22.2z\"]\n};\nvar faPeopleArrowsLeftRight = faPeopleArrows;\nvar faHandsClapping = {\n  prefix: 'fas',\n  iconName: 'hands-clapping',\n  icon: [512, 512, [], \"e1a8\", \"M344 8l0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-64c0-13.3 10.7-24 24-24S344-5.3 344 8zM220 10.7l32 48c7.4 11 4.4 25.9-6.7 33.3s-25.9 4.4-33.3-6.7l-32-48c-7.4-11-4.4-25.9 6.7-33.3S212.6-.3 220 10.7zM135 119c9.4-9.4 24.6-9.4 33.9 0L292.7 242.7c10.1 10.1 27.3 2.9 27.3-11.3l0-39.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 153.6c0 57.1-30 110-78.9 139.4-64 38.4-145.8 28.3-198.5-24.4L7 361c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l53 53c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L23 265c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l93 93c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L55 185c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l117 117c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1l-93-93c-9.4-9.4-9.4-24.6 0-33.9zM433.1 484.9c-24.2 14.5-50.9 22.1-77.7 23.1 48.1-39.6 76.6-99 76.6-162.4l0-98.1c8.2-.1 16-6.4 16-16l0-39.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 153.6c0 57.1-30 110-78.9 139.4zM453.3 4c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7z\"]\n};\nvar faVirusCovidSlash = {\n  prefix: 'fas',\n  iconName: 'virus-covid-slash',\n  icon: [576, 512, [], \"e4a9\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-83-83 11.4-11.4c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-11.3 11.3-23.8-23.8c17.9-23.5 29.9-51.7 34.1-82.3l33.6 0 0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16-33.6 0c-4.2-30.7-16.3-58.8-34.1-82.3l23.8-23.8 11.3 11.3c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L440.7 46.7c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l11.3 11.3-23.8 23.8C370.8 97.9 342.7 85.8 312 81.6l0-33.6 16 0c13.3 0 24-10.7 24-24S341.3 0 328 0L248 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0 0 33.6c-30.7 4.2-58.8 16.3-82.3 34.1L157.9 92 169.2 80.6c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L123.9 58.1 41-24.9zM113.6 232l-33.6 0 0-16c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 33.6 0c4.2 30.7 16.3 58.8 34.1 82.3l-23.8 23.8-11.3-11.3c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l56.6 56.6c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-11.3-11.3 23.8-23.8c23.5 17.9 51.7 29.9 82.3 34.1l0 33.6-16 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0 0-33.6c13.4-1.8 26.4-5.2 38.7-9.9L123.5 193.3c-4.7 12.3-8 25.2-9.9 38.7z\"]\n};\nvar faCalendarDays = {\n  prefix: 'fas',\n  iconName: 'calendar-days',\n  icon: [448, 512, [\"calendar-alt\"], \"f073\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zM64 240l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm128 0l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM64 368l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"]\n};\nvar faCalendarAlt = faCalendarDays;\nvar faDiamondTurnRight = {\n  prefix: 'fas',\n  iconName: 'diamond-turn-right',\n  icon: [512, 512, [\"directions\"], \"f5eb\", \"M215 17L17 215C6.1 225.9 0 240.6 0 256s6.1 30.1 17 41L215 495c10.9 10.9 25.6 17 41 17s30.1-6.1 41-17L495 297c10.9-10.9 17-25.6 17-41s-6.1-30.1-17-41L297 17C286.1 6.1 271.4 0 256 0s-30.1 6.1-41 17zM385 257l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-78.1 0c-13.3 0-24 10.7-24 24l0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-40c0-39.8 32.2-72 72-72l78.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9z\"]\n};\nvar faDirections = faDiamondTurnRight;\nvar faHandPointUp = {\n  prefix: 'fas',\n  iconName: 'hand-point-up',\n  icon: [384, 512, [9757], \"f0a6\", \"M32 32C32 14.3 46.3 0 64 0S96 14.3 96 32l0 208-64 0 0-208zM224 192c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-64-64c17.7 0 32 14.3 32 32l0 48c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-48c0-17.7 14.3-32 32-32zm160 96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6 13.2 0 25.4-4 35.6-10.8 8.7 24.9 32.5 42.8 60.4 42.8 11.7 0 22.6-3.1 32-8.6l0 8.6c0 88.4-71.6 160-160 160l-61.7 0c-42.4 0-83.1-16.9-113.1-46.9L37.5 453.5C13.5 429.5 0 396.9 0 363l0-27c0-35.3 28.7-64 64-64l88 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72z\"]\n};\nvar faBezierCurve = {\n  prefix: 'fas',\n  iconName: 'bezier-curve',\n  icon: [640, 512, [], \"f55b\", \"M296 136l0-48 48 0 0 48-48 0zM288 32c-26.5 0-48 21.5-48 48l0 4-118.4 0C111.2 62.7 89.3 48 64 48 28.7 48 0 76.7 0 112s28.7 64 64 64c25.3 0 47.2-14.7 57.6-36l66.9 0c-58.9 39.6-98.9 105-104 180L80 320c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-3.3 0c5.9-67 48.5-123.4 107.5-149.1 8.6 12.7 23.2 21.1 39.8 21.1l64 0c16.6 0 31.1-8.4 39.8-21.1 59 25.7 101.6 82.1 107.5 149.1l-3.3 0c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-4.5 0c-5-75-45.1-140.4-104-180l66.9 0c10.4 21.3 32.3 36 57.6 36 35.3 0 64-28.7 64-64s-28.7-64-64-64c-25.3 0-47.2 14.7-57.6 36l-118.4 0 0-4c0-26.5-21.5-48-48-48l-64 0zM88 376l48 0 0 48-48 0 0-48zm416 48l0-48 48 0 0 48-48 0z\"]\n};\nvar faPersonHalfDress = {\n  prefix: 'fas',\n  iconName: 'person-half-dress',\n  icon: [384, 512, [], \"e548\", \"M143.4-3.9c9.7-16.8 27.8-28.1 48.6-28.1 30.9 0 56 25.1 56 56 0 25.4-16.9 46.8-40 53.7l0 0c-5.1 1.5-10.4 2.3-16 2.3-30.9 0-56-25.1-56-56l0 0c0-10.1 2.7-19.7 7.4-27.9zM318.3 299.1L272 236.7 272 512c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160 0-.4 0-238.6c36.2 4.4 69.2 23.4 91.2 53l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6zM176 113l0 399c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-25.8 0c-10.9 0-18.6-10.7-15.2-21.1l43-129-48.3 65.1c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95c22-29.6 55.1-48.6 91.2-53z\"]\n};\nvar faSquarePollHorizontal = {\n  prefix: 'fas',\n  iconName: 'square-poll-horizontal',\n  icon: [448, 512, [\"poll-h\"], \"f682\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM256 152c0 13.3-10.7 24-24 24l-112 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l112 0c13.3 0 24 10.7 24 24zm72 80c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l208 0zM192 360c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0c13.3 0 24 10.7 24 24z\"]\n};\nvar faPollH = faSquarePollHorizontal;\nvar faSchoolCircleXmark = {\n  prefix: 'fas',\n  iconName: 'school-circle-xmark',\n  icon: [640, 512, [], \"e56d\", \"M64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l276 0c-10.5-14.6-19-30.7-25.1-48l-90.9 0 0-88c0-22.1 17.9-40 40-40l48 0c1 0 1.9 0 2.9 .1 26.3-74.6 97.5-128.1 181.1-128.1 28.6 0 55.6 6.2 80 17.4l0-33.4c0-35.3-28.7-64-64-64l-64 0-127.9-115.1c-18.3-16.4-46-16.4-64.2 0L128 128 64 128zm64 240c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32zM112 256l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16zM288 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faHandLizard = {\n  prefix: 'fas',\n  iconName: 'hand-lizard',\n  icon: [512, 512, [], \"f258\", \"M0 112C0 85.5 21.5 64 48 64l238.5 0c36.8 0 71.2 18 92.1 48.2l113.5 164c13 18.7 19.9 41 19.9 63.8l0 76c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-13.8-78.1-50.2-161.9 0c-26.5 0-48-21.5-48-48s21.5-48 48-48l128 0c26.5 0 48-21.5 48-48s-21.5-48-48-48L48 160c-26.5 0-48-21.5-48-48z\"]\n};\nvar faChalkboard = {\n  prefix: 'fas',\n  iconName: 'chalkboard',\n  icon: [576, 512, [\"blackboard\"], \"f51b\", \"M96 64c-35.3 0-64 28.7-64 64l0 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-256c0-35.3-28.7-64-64-64L96 64zM480 384l-64 0 0-32c0-17.7-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32l0 32-160 0 0-256 384 0 0 256z\"]\n};\nvar faBlackboard = faChalkboard;\nvar faUpRightFromSquare = {\n  prefix: 'fas',\n  iconName: 'up-right-from-square',\n  icon: [512, 512, [\"external-link-alt\"], \"f35d\", \"M290.4 19.8C295.4 7.8 307.1 0 320 0L480 0c17.7 0 32 14.3 32 32l0 160c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9L400 157.3 246.6 310.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L354.7 112 297.4 54.6c-9.2-9.2-11.9-22.9-6.9-34.9zM0 176c0-44.2 35.8-80 80-80l80 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-80 0c-8.8 0-16 7.2-16 16l0 256c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-80c0-17.7 14.3-32 32-32s32 14.3 32 32l0 80c0 44.2-35.8 80-80 80L80 512c-44.2 0-80-35.8-80-80L0 176z\"]\n};\nvar faExternalLinkAlt = faUpRightFromSquare;\nvar faSquareFull = {\n  prefix: 'fas',\n  iconName: 'square-full',\n  icon: [512, 512, [128997, 128998, 128999, 129000, 129001, 129002, 129003, 11035, 11036], \"f45c\", \"M0 64C0 28.7 28.7 0 64 0L448 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64z\"]\n};\nvar faClover = {\n  prefix: 'fas',\n  iconName: 'clover',\n  icon: [512, 512, [], \"e139\", \"M310.4 16C346.6 16 376 45.4 376 81.7l0 5.2c0 11.2-2.7 22.3-7.8 32.2l-2.3 4.2-20.1 33.5c-1.1 1.9-1.2 3.4-1.1 4.5 .2 1.3 .9 2.7 2.1 3.9s2.6 1.9 3.9 2.1c1.1 .2 2.6 .1 4.5-1.1l33.5-20.1 4.2-2.3c10-5.1 21-7.8 32.2-7.8l5.2 0c36.2 0 65.6 29.4 65.6 65.7 0 17.4-6.9 34.1-19.2 46.4l-1.3 1.3c-3.7 3.7-3.7 9.6 0 13.3l1.3 1.3c12.3 12.3 19.2 29 19.2 46.4 0 36.2-29.4 65.6-65.6 65.6l-5.2 0c-12.8 0-25.5-3.5-36.5-10.1l-33.5-20.1c-1.9-1.1-3.4-1.2-4.5-1.1-1.3 .2-2.7 .9-3.9 2.1s-1.9 2.6-2.1 3.9c-.2 1.1-.1 2.6 1.1 4.5l20.1 33.5c6.6 11 10.1 23.6 10.1 36.5l0 5.2c0 36.2-29.4 65.6-65.6 65.6-17.4 0-34.1-6.9-46.4-19.2l-1.3-1.3c-3.7-3.7-9.6-3.7-13.3 0l-1.3 1.3c-12.3 12.3-29 19.2-46.4 19.2-36.2 0-65.6-29.4-65.7-65.6l0-5.2c0-12.8 3.5-25.5 10.1-36.5l20.1-33.5c1.1-1.9 1.2-3.4 1.1-4.5-.2-1.3-.9-2.7-2.1-3.9s-2.6-1.9-3.9-2.1c-.5-.1-1.2-.1-1.9 0l-2.5 1-33.5 20.1c-11 6.6-23.6 10.1-36.5 10.1l-5.2 0C45.4 376 16 346.6 16 310.4 16 293 22.9 276.3 35.2 264l1.3-1.3 1.2-1.5c2.1-3.1 2.1-7.2 0-10.3l-1.2-1.5-1.3-1.3C22.9 235.8 16 219.1 16 201.7 16 165.4 45.4 136 81.7 136l5.2 0c12.8 0 25.5 3.5 36.5 10.1l33.5 20.1 2.5 1c.7 .1 1.4 .1 1.9 .1 1.3-.2 2.7-.9 3.9-2.1s1.9-2.6 2.1-3.9c.1-.5 .1-1.2-.1-1.9l-1-2.5-20.1-33.5c-6.6-11-10.1-23.6-10.1-36.5l0-5.2c0-36.2 29.4-65.7 65.7-65.7 17.4 0 34.1 6.9 46.4 19.2l1.3 1.3c3.7 3.6 9.6 3.7 13.3 0l1.3-1.3 4.8-4.4C280.5 21.3 295.1 16 310.4 16z\"]\n};\nvar faTeethOpen = {\n  prefix: 'fas',\n  iconName: 'teeth-open',\n  icon: [512, 512, [], \"f62f\", \"M64 32C28.7 32 0 60.7 0 96l0 80c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-80c0-35.3-28.7-64-64-64L64 32zm0 272c-35.3 0-64 28.7-64 64l0 48c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-48c0-35.3-28.7-64-64-64L64 304zm80-160c0-26.5 21.5-48 48-48s48 21.5 48 48l0 24c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-24zm128 0c0-26.5 21.5-48 48-48s48 21.5 48 48l0 24c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-24zM80 112c17.7 0 32 14.3 32 32l0 24c0 13.3-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24l0-24c0-17.7 14.3-32 32-32zm320 32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 24c0 13.3-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24l0-24zM48 384l0-16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 16c0 17.7-14.3 32-32 32s-32-14.3-32-32zm144 48c-26.5 0-48-21.5-48-48l0-16c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16l0 16c0 26.5-21.5 48-48 48zm128 0c-26.5 0-48-21.5-48-48l0-16c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16l0 16c0 26.5-21.5 48-48 48zm112-16c-17.7 0-32-14.3-32-32l0-16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 16c0 17.7-14.3 32-32 32z\"]\n};\nvar faBarsStaggered = {\n  prefix: 'fas',\n  iconName: 'bars-staggered',\n  icon: [512, 512, [\"reorder\", \"stream\"], \"f550\", \"M0 96C0 78.3 14.3 64 32 64l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96zM64 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L96 288c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z\"]\n};\nvar faReorder = faBarsStaggered;\nvar faStream = faBarsStaggered;\nvar faWarehouse = {\n  prefix: 'fas',\n  iconName: 'warehouse',\n  icon: [576, 512, [], \"f494\", \"M0 142.1L0 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-240c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32l0 240c0 17.7 14.3 32 32 32s32-14.3 32-32l0-337.9c0-27.5-17.6-52-43.8-60.7L303.2 5.1c-9.9-3.3-20.5-3.3-30.4 0L43.8 81.4C17.6 90.1 0 114.6 0 142.1zM464 256l-352 0 0 64 352 0 0-64zM112 416l352 0 0-64-352 0 0 64zm352 32l-352 0 0 64 352 0 0-64z\"]\n};\nvar faSwatchbook = {\n  prefix: 'fas',\n  iconName: 'swatchbook',\n  icon: [512, 512, [], \"f5c3\", \"M0 48C0 21.5 21.5 0 48 0l96 0c26.5 0 48 21.5 48 48l0 368c0 53-43 96-96 96S0 469 0 416L0 48zM240 409.6l0-271.5 48.1-48.1c18.7-18.7 49.1-18.7 67.9 0l67.9 67.9c18.7 18.7 18.7 49.1 0 67.9L240 409.6zM205.5 512l192-192 66.6 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-258.5 0zM80 64c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L80 64zM64 208l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM96 440a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faCampground = {\n  prefix: 'fas',\n  iconName: 'campground',\n  icon: [512, 512, [9978], \"f6bb\", \"M344.8 52.3c11.2-13.7 9.2-33.8-4.5-45s-33.8-9.2-45 4.5l-39.2 48-39.2-48C205.6-1.9 185.4-4 171.7 7.2s-15.7 31.4-4.5 45l47.4 58-202 246.9C4.5 367.1 0 379.6 0 392.6L0 432c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-39.4c0-12.9-4.5-25.5-12.7-35.5l-202-246.9 47.4-58zM256 288l112 128-224 0 112-128z\"]\n};\nvar faPersonWalkingArrowRight = {\n  prefix: 'fas',\n  iconName: 'person-walking-arrow-right',\n  icon: [576, 512, [], \"e552\", \"M104.5 24a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm-8 181.3L73.9 227.9c-6 6-9.4 14.1-9.4 22.6l0 37.5c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-37.5c0-25.5 10.1-49.9 28.1-67.9l35.1-35.1c22.8-22.8 53.6-35.6 85.8-35.6 36.9 0 71.8 16.8 94.8 45.6L262.3 180c6.1 7.6 15.3 12 25 12l33.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-33.2 0c-29.2 0-56.7-13.3-75-36l-3.8-4.7 0 115.2 34.5 29.6c17.7 15.2 29.3 36.2 32.6 59.3l12.6 88.1c2.5 17.5-9.7 33.7-27.2 36.2s-33.7-9.7-36.2-27.2l-12.6-88.1c-1.1-7.7-5-14.7-10.9-19.8L130 347.5c-21.3-18.2-33.5-44.9-33.5-72.9l0-69.3zM96.6 371c2.4 2.3 4.8 4.6 7.4 6.8l46 39.4-2.2 7.6c-4.5 15.7-12.9 30-24.4 41.5L55.1 534.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l68.3-68.3c3.8-3.8 6.6-8.6 8.1-13.8L96.6 371zM505.5 345c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-102.1 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l102.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9l-72 72z\"]\n};\nvar faGlasses = {\n  prefix: 'fas',\n  iconName: 'glasses',\n  icon: [576, 512, [], \"f530\", \"M143.3 96c-14 0-26.5 9.2-30.6 22.6L70.4 256 224 256c17.7 0 32 14.3 32 32l64 0c0-17.7 14.3-32 32-32l153.6 0-42.3-137.4C459.2 105.2 446.8 96 432.7 96L400 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l32.7 0c42.1 0 79.4 27.5 91.8 67.8l45.4 147.5c4.1 13.2 6.1 26.9 6.1 40.7l0 96c0 53-43 96-96 96l-64 0c-53 0-96-43-96-96l0-32-64 0 0 32c0 53-43 96-96 96l-64 0c-53 0-96-43-96-96l0-96c0-13.8 2.1-27.5 6.1-40.7L51.5 99.8C63.9 59.5 101.1 32 143.3 32L176 32c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32.7 0zM64 320l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64-128 0zm416 96c17.7 0 32-14.3 32-32l0-64-128 0 0 64c0 17.7 14.3 32 32 32l64 0z\"]\n};\nvar faCirclePause = {\n  prefix: 'fas',\n  iconName: 'circle-pause',\n  icon: [512, 512, [62092, \"pause-circle\"], \"f28b\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM224 192l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faPauseCircle = faCirclePause;\nvar faMemory = {\n  prefix: 'fas',\n  iconName: 'memory',\n  icon: [512, 512, [], \"f538\", \"M64 64C28.7 64 0 92.7 0 128l0 7.4C0 142.2 4.4 148 10.1 151.7 23.3 160.3 32 175.1 32 192s-8.7 31.7-21.9 40.3C4.4 236 0 241.8 0 248.6l0 55.4 512 0 0-55.4c0-6.8-4.4-12.6-10.1-16.3-13.2-8.6-21.9-23.4-21.9-40.3s8.7-31.7 21.9-40.3c5.7-3.7 10.1-9.5 10.1-16.3l0-7.4c0-35.3-28.7-64-64-64L64 64zM512 416l0-64-512 0 0 64c0 17.7 14.3 32 32 32l64 0 0-24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 24 88 0 0-24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 24 88 0 0-24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 24 64 0c17.7 0 32-14.3 32-32zM160 160l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faGift = {\n  prefix: 'fas',\n  iconName: 'gift',\n  icon: [512, 512, [127873], \"f06b\", \"M321.5 68.8C329.1 55.9 342.9 48 357.8 48l2.2 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-73.3 0 34.8-59.2zm-131 0l34.8 59.2-73.3 0c-22.1 0-40-17.9-40-40s17.9-40 40-40l2.2 0c14.9 0 28.8 7.9 36.3 20.8zm89.6-24.3l-24.1 41-24.1-41C215.7 16.9 186.1 0 154.2 0L152 0c-48.6 0-88 39.4-88 88 0 14.4 3.5 28 9.6 40L32 128c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l448 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32l-41.6 0c6.1-12 9.6-25.6 9.6-40 0-48.6-39.4-88-88-88l-2.2 0c-31.9 0-61.5 16.9-77.7 44.4zM480 272l-200 0 0 208 136 0c35.3 0 64-28.7 64-64l0-144zm-248 0l-200 0 0 144c0 35.3 28.7 64 64 64l136 0 0-208z\"]\n};\nvar faMoneyBillWheat = {\n  prefix: 'fas',\n  iconName: 'money-bill-wheat',\n  icon: [512, 512, [], \"e52a\", \"M176-16c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80 0-8.8 7.2-16 16-16zM56 0l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L56 48C42.7 48 32 37.3 32 24S42.7 0 56 0zM24 72l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 120C10.7 120 0 109.3 0 96S10.7 72 24 72zm8 96c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zM272 0c0-8.8 7.2-16 16-16 44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80zM400-16c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80 0-8.8 7.2-16 16-16zm80 144c0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80 8.8 0 16 7.2 16 16zM352 112c8.8 0 16 7.2 16 16 0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80zm-96 16c0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80 8.8 0 16 7.2 16 16zM0 304c0-26.5 21.5-48 48-48l416 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 304zM48 416l0 48 48 0c0-26.5-21.5-48-48-48zM96 304l-48 0 0 48c26.5 0 48-21.5 48-48zM464 416c-26.5 0-48 21.5-48 48l48 0 0-48zM416 304c0 26.5 21.5 48 48 48l0-48-48 0zm-96 80a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"]\n};\nvar faDungeon = {\n  prefix: 'fas',\n  iconName: 'dungeon',\n  icon: [512, 512, [], \"f6d9\", \"M347.5 144.8c6.5 5.4 12.5 11.3 18 17.7 8.7 10.2 23.7 14 35.1 6.9l54.1-33.8c11.2-7 14.7-21.7 6.9-32.2-15.3-20.5-33.5-38.6-54.1-53.8-10.4-7.6-24.7-4.3-31.8 6.4l-35.1 52.6c-7.8 11.6-3.8 27.3 7 36.2zM327.8 41.1c8.6-12.9 2.9-30.5-12.2-34.1-19.1-4.6-39.1-7-59.6-7s-40.4 2.4-59.6 7c-15.1 3.6-20.8 21.2-12.2 34.1l40 60c5.2 7.8 14.5 11.7 23.9 11.2 5.2-.3 10.6-.3 15.8 0 9.4 .5 18.7-3.4 23.9-11.2l40-60zM50.5 103.3c-7.9 10.5-4.3 25.3 6.9 32.2l54.1 33.8c11.4 7.1 26.3 3.3 35.1-6.9 5.5-6.4 11.5-12.3 18-17.7 10.8-8.9 14.8-24.6 7-36.2L136.4 55.9c-7.1-10.7-21.5-14-31.8-6.4-20.6 15.1-38.8 33.3-54.1 53.8zm62 141.1c.8-9.9-3.3-19.9-11.8-25.1L41 182c-12.9-8-29.9-2.3-33.6 12.5-4.9 19.7-7.5 40.3-7.5 61.6l0 24c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24l0-24c0-3.9 .2-7.8 .5-11.6zm287.1 0c.3 3.8 .5 7.7 .5 11.6l0 24c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24l0-24c0-21.2-2.6-41.8-7.5-61.6-3.6-14.7-20.7-20.5-33.6-12.5l-59.7 37.3c-8.4 5.3-12.6 15.2-11.8 25.1zM88 352l-64 0c-13.3 0-24 10.7-24 24L0 488c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm400 0l-64 0c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zM280 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 304c0 13.3 10.7 24 24 24s24-10.7 24-24l0-304zm-80 32c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 272c0 13.3 10.7 24 24 24s24-10.7 24-24l0-272zm160 0c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 272c0 13.3 10.7 24 24 24s24-10.7 24-24l0-272z\"]\n};\nvar faSuitcaseMedical = {\n  prefix: 'fas',\n  iconName: 'suitcase-medical',\n  icon: [512, 512, [\"medkit\"], \"f0fa\", \"M192 56l0 40 128 0 0-40c0-4.4-3.6-8-8-8L200 48c-4.4 0-8 3.6-8 8zm-48 8l0-8c0-30.9 25.1-56 56-56L312 0c30.9 0 56 25.1 56 56l0 424-224 0 0-416zM96 176l0 304-32 0c-35.3 0-64-28.7-64-64L0 160c0-35.3 28.7-64 64-64l32 0 0 80zM416 480l0-384 32 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64l-32 0zM244 208c-8.8 0-16 7.2-16 16l0 36-36 0c-8.8 0-16 7.2-16 16l0 24c0 8.8 7.2 16 16 16l36 0 0 36c0 8.8 7.2 16 16 16l24 0c8.8 0 16-7.2 16-16l0-36 36 0c8.8 0 16-7.2 16-16l0-24c0-8.8-7.2-16-16-16l-36 0 0-36c0-8.8-7.2-16-16-16l-24 0z\"]\n};\nvar faMedkit = faSuitcaseMedical;\nvar faPersonCane = {\n  prefix: 'fas',\n  iconName: 'person-cane',\n  icon: [448, 512, [], \"e53c\", \"M232-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM144 236.7L97.7 299.1c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95C142 132 181.7 112 224 112s82 20 107.2 53.9l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6L304 236.7 304 512c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-275.3zM392 384c-4.4 0-8 3.6-8 8 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 128c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-128c0-4.4-3.6-8-8-8z\"]\n};\nvar faGauge = {\n  prefix: 'fas',\n  iconName: 'gauge',\n  icon: [512, 512, [\"dashboard\", \"gauge-med\", \"tachometer-alt-average\"], \"f624\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm320 96c0-26.9-16.5-49.9-40-59.3L280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 172.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64s64-28.7 64-64zM144 176a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm-16 80a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM400 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faDashboard = faGauge;\nvar faGaugeMed = faGauge;\nvar faTachometerAltAverage = faGauge;\nvar faEnvelopeOpenText = {\n  prefix: 'fas',\n  iconName: 'envelope-open-text',\n  icon: [576, 512, [], \"f658\", \"M288 33.9L96.4 175.8 254.5 293c5.3 3.9 11.2 6.9 17.5 8.7L272 464c0 5.5 .5 10.8 1.3 16L96 480c-35.3 0-64-28.7-64-64l0-239.9c0-20.3 9.6-39.4 25.9-51.4L254.5-21c9.7-7.2 21.4-11 33.5-11s23.8 3.9 33.5 11L518.1 124.7c7.2 5.3 13.1 12 17.4 19.6-2.5-.2-5-.3-7.5-.3L436.6 144 288 33.9zM320 240c0-26.5 21.5-48 48-48l160 0c26.5 0 48 21.5 48 48l0 224c0 26.5-21.5 48-48 48l-160 0c-26.5 0-48-21.5-48-48l0-224zm80 16c-13.3 0-24 10.7-24 24s10.7 24 24 24l96 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-96 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0z\"]\n};\nvar faToolbox = {\n  prefix: 'fas',\n  iconName: 'toolbox',\n  icon: [512, 512, [129520], \"f552\", \"M176 56l0 40 160 0 0-40c0-4.4-3.6-8-8-8L184 48c-4.4 0-8 3.6-8 8zM128 96l0-40c0-30.9 25.1-56 56-56L328 0c30.9 0 56 25.1 56 56l0 40 28.1 0c12.7 0 24.9 5.1 33.9 14.1l51.9 51.9c9 9 14.1 21.2 14.1 33.9l0 76.1-136 0 0-16c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16-144 0 0-16c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16-136 0 0-76.1c0-12.7 5.1-24.9 14.1-33.9l51.9-51.9c9-9 21.2-14.1 33.9-14.1L128 96zM0 416l0-96 136 0 0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 144 0 0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 136 0 0 96c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64z\"]\n};\nvar faPowerOff = {\n  prefix: 'fas',\n  iconName: 'power-off',\n  icon: [512, 512, [9211], \"f011\", \"M288 0c0-17.7-14.3-32-32-32S224-17.7 224 0l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32L288 0zM146.3 98.4c14.5-10.1 18-30.1 7.9-44.6s-30.1-18-44.6-7.9C43.4 92.1 0 169 0 256 0 397.4 114.6 512 256 512S512 397.4 512 256c0-87-43.4-163.9-109.7-210.1-14.5-10.1-34.4-6.6-44.6 7.9s-6.6 34.4 7.9 44.6c49.8 34.8 82.3 92.4 82.3 157.6 0 106-86 192-192 192S64 362 64 256c0-65.2 32.5-122.9 82.3-157.6z\"]\n};\nvar faSignal = {\n  prefix: 'fas',\n  iconName: 'signal',\n  icon: [512, 512, [128246, \"signal-5\", \"signal-perfect\"], \"f012\", \"M488 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 400c0 13.3 10.7 24 24 24s24-10.7 24-24l0-400zM360 128c-13.3 0-24 10.7-24 24l0 304c0 13.3 10.7 24 24 24s24-10.7 24-24l0-304c0-13.3-10.7-24-24-24zM280 248c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 208c0 13.3 10.7 24 24 24s24-10.7 24-24l0-208zM152 320c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zM48 384c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48c0-13.3-10.7-24-24-24z\"]\n};\nvar faSignal5 = faSignal;\nvar faSignalPerfect = faSignal;\nvar faArrowsSpin = {\n  prefix: 'fas',\n  iconName: 'arrows-spin',\n  icon: [512, 512, [], \"e4bb\", \"M481.7 240.1c-17.6-1.2-32.9 12-34.2 29.7-3.3 47-23.6 89.4-54.8 121L361 359c-6.9-6.9-17.2-8.9-26.2-5.2S320 366.3 320 376l0 112c0 13.3 10.7 24 24 24l112 0c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-35-35c41.7-42.2 68.9-98.8 73.4-161.8 1.2-17.6-12-32.9-29.7-34.2zM39 41L74 76c-41.7 42.2-68.9 98.8-73.4 161.8-1.2 17.6 12 32.9 29.7 34.2s32.9-12 34.2-29.7c3.3-47 23.6-89.4 54.8-121L151 153c6.9 6.9 17.2 8.9 26.2 5.2S192 145.7 192 136l0-112c0-13.3-10.7-24-24-24L56 0C46.3 0 37.5 5.8 33.8 14.8S32.2 34.1 39 41zm201-10.7c-1.2 17.6 12 32.9 29.7 34.2 47 3.3 89.4 23.6 121 54.8L359 151c-6.9 6.9-8.9 17.2-5.2 26.2S366.3 192 376 192l112 0c13.3 0 24-10.7 24-24l0-112c0-9.7-5.8-18.5-14.8-22.2S477.9 32.2 471 39L436 74c-42.2-41.7-98.8-68.9-161.8-73.4-17.6-1.2-32.9 12-34.2 29.7zM41 473l35-35c42.2 41.7 98.8 68.9 161.8 73.4 17.6 1.2 32.9-12 34.2-29.7s-12-32.9-29.7-34.2c-47-3.3-89.4-23.6-121-54.8L153 361c6.9-6.9 8.9-17.2 5.2-26.2S145.7 320 136 320L24 320c-13.3 0-24 10.7-24 24L0 456c0 9.7 5.8 18.5 14.8 22.2S34.1 479.8 41 473z\"]\n};\nvar faJoint = {\n  prefix: 'fas',\n  iconName: 'joint',\n  icon: [576, 512, [], \"f595\", \"M360 0c13.3 0 24 10.7 24 24l0 19c0 40.3 16 79 44.5 107.5l21 21C469 191 480 217.4 480 245l0 19c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-19c0-14.9-5.9-29.1-16.4-39.6l-21-21C357.1 146.9 336 96 336 43l0-19c0-13.3 10.7-24 24-24zM552 288c-13.3 0-24-10.7-24-24l0-19c0-40.3-16-79-44.5-107.5l-21-21C443 97 432 70.6 432 43l0-19c0-13.3 10.7-24 24-24s24 10.7 24 24l0 19c0 14.9 5.9 29.1 16.4 39.6l21 21C554.9 141.1 576 192 576 245l0 19c0 13.3-10.7 24-24 24zM292.7 320c5.6 0 10.7 2.9 13.6 7.6L394.6 471c1.3 2.1 0 4.9-2.4 5.2-16.1 2.5-32.4 3.7-48.7 3.7l-38.1 0c-5.6 0-10.7-2.9-13.6-7.6l-79-128.4c-6-9.8 0-22.6 11.5-23.3 6.7-.4 13.4-.6 20.2-.6l48.3 0zM459.3 465.9c-6.4 1-12.7-1.9-16.1-7.4L374.1 346.1c-6.7-10.9 1.5-24.7 14.2-22.9 1.3 .2 2.6 .4 3.8 .6l136.4 21c27.3 4.2 47.4 27.7 47.4 55.3s-20.1 51.1-47.4 55.3l-69.2 10.6zM138.7 336c6.7-1.5 13.6 1.4 17.2 7.2l68.9 112c6.6 10.7-1.2 24.4-13.8 23.1-13-1.4-25.9-3.5-38.6-6.5L31.2 439.2C12.9 435 0 418.7 0 400s12.9-35 31.2-39.2L138.7 336z\"]\n};\nvar faBraille = {\n  prefix: 'fas',\n  iconName: 'braille',\n  icon: [384, 512, [], \"f2a1\", \"M80 144a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0 192a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0 136c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0 56c44.2 0 80-35.8 80-80s-35.8-80-80-80-80 35.8-80 80 35.8 80 80 80zm248-80c0 13.3-10.7 24-24 24s-24-10.7-24-24 10.7-24 24-24 24 10.7 24 24zm56 0c0-44.2-35.8-80-80-80s-80 35.8-80 80 35.8 80 80 80 80-35.8 80-80zM304 232a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0 104a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-192a80 80 0 1 0 0-160 80 80 0 1 0 0 160z\"]\n};\nvar faBasketShopping = {\n  prefix: 'fas',\n  iconName: 'basket-shopping',\n  icon: [576, 512, [\"shopping-basket\"], \"f291\", \"M288 0c6.6 0 12.9 2.7 17.4 7.5l144 152 .5 .5 78.1 0c17.7 0 32 14.3 32 32 0 14.5-9.6 26.7-22.8 30.7L491.1 429.9c-6.5 29.3-32.5 50.1-62.5 50.1l-281.3 0c-30 0-56-20.8-62.5-50.1l-46-207.2c-13.2-3.9-22.8-16.2-22.8-30.7 0-17.7 14.3-32 32-32l78.1 0 .5-.5 144-152C275.1 2.7 281.4 0 288 0zm0 58.9L192.2 160 383.8 160 288 58.9zM208 264c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112zm80-24c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm128 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112z\"]\n};\nvar faShoppingBasket = faBasketShopping;\nvar faBridge = {\n  prefix: 'fas',\n  iconName: 'bridge',\n  icon: [512, 512, [], \"e4c8\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l8 0 0 64-40 0 0 112c37.6 9.4 64 43.2 64 82l0 94c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96s96 43 96 96l0 64c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-94c0-38.8 26.4-72.6 64-82l0-112-40 0 0-64 8 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM424 96l0 64-80 0 0-64 80 0zM296 96l0 64-80 0 0-64 80 0zM88 96l80 0 0 64-80 0 0-64z\"]\n};\nvar faPlaneArrival = {\n  prefix: 'fas',\n  iconName: 'plane-arrival',\n  icon: [576, 512, [128748], \"f5af\", \"M386.6 193.1L265.9 3.7c-4.8-7.6-12.6-12.8-21.4-14.3l-43.1-7.6c-10.8-1.9-20.2 7.3-18.6 18.1l24 161.6-105-18.5-33.8-61.8C64.5 74.7 58.2 70.2 51.1 69L34 66c-9.8-1.7-18.8 5.9-18.8 15.8l.6 106.3c.2 30.9 22.4 57.3 52.9 62.7l13.5 2.4 0 0 417.6 73.6c30.5 5.4 59.5-15 64.9-45.4s-15-59.5-45.4-64.9L386.6 193.1zM224 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm131.2-15.3a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 448z\"]\n};\nvar faCashRegister = {\n  prefix: 'fas',\n  iconName: 'cash-register',\n  icon: [512, 512, [], \"f788\", \"M96 0C60.7 0 32 28.7 32 64s28.7 64 64 64l48 0 0 32-57 0c-31.6 0-58.5 23.1-63.3 54.4L1.1 364.1C.4 368.8 0 373.6 0 378.4L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-69.6c0-4.8-.4-9.6-1.1-14.4L488.2 214.4C483.5 183.1 456.6 160 425 160l-217 0 0-32 48 0c35.3 0 64-28.7 64-64S291.3 0 256 0L96 0zm0 48l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L96 80c-8.8 0-16-7.2-16-16s7.2-16 16-16zM64 424c0-13.3 10.7-24 24-24l336 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 448c-13.3 0-24-10.7-24-24zm48-160a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm120-24a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM160 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM328 240a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM256 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM424 240a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM352 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48z\"]\n};\nvar faRing = {\n  prefix: 'fas',\n  iconName: 'ring',\n  icon: [512, 512, [], \"f70b\", \"M64 208c0 7.8 4.4 18.7 17.1 30.3 45.4-24.2 107.7-38.3 174.9-38.3s129.5 14.1 174.9 38.3c12.8-11.6 17.1-22.5 17.1-30.3 0-12.3-10.8-32-47.9-50.6-35.2-17.6-86.1-29.4-144.1-29.4s-108.9 11.8-144.1 29.4C74.8 176 64 195.7 64 208zm192 40c-47 0-89.3 7.6-122.9 19.7 33.2 12.4 75.7 20.3 122.9 20.3s89.7-7.8 122.9-20.3C345.3 255.6 303 248 256 248zM0 208C0 158.4 39.4 122.2 83.3 100.2 129.1 77.3 190.3 64 256 64s126.9 13.3 172.7 36.2c43.9 22 83.3 58.2 83.3 107.8l0 96c0 49.6-39.4 85.8-83.3 107.8-45.9 22.9-107 36.2-172.7 36.2S129.1 434.7 83.3 411.8C39.4 389.8 0 353.6 0 304l0-96z\"]\n};\nvar faAquarius = {\n  prefix: 'fas',\n  iconName: 'aquarius',\n  icon: [576, 512, [], \"e845\", \"M401.7 291.4c9-4.5 19.6-4.5 28.6 0l128 64c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3L416 355.8 302.3 412.6c-9 4.5-19.6 4.5-28.6 0L160 355.8 46.3 412.6c-15.8 7.9-35 1.5-42.9-14.3s-1.5-35 14.3-42.9l128-64c9-4.5 19.6-4.5 28.6 0L288 348.2 401.7 291.4zm3.4-193.5c8.2-3 17.3-2.5 25.2 1.5l128 64c15.8 7.9 22.2 27.1 14.3 42.9s-27.1 22.2-42.9 14.3L416 163.8 302.3 220.6c-9 4.5-19.6 4.5-28.6 0L160 163.8 46.3 220.6c-15.8 7.9-35 1.5-42.9-14.3s-1.5-35 14.3-42.9l128-64 3.4-1.5c8.2-3 17.3-2.5 25.2 1.5l113.7 56.8 113.7-56.8 3.4-1.5z\"]\n};\nvar faShareNodes = {\n  prefix: 'fas',\n  iconName: 'share-nodes',\n  icon: [512, 512, [\"share-alt\"], \"f1e0\", \"M384 192c53 0 96-43 96-96s-43-96-96-96-96 43-96 96c0 5.4 .5 10.8 1.3 16L159.6 184.1c-16.9-15-39.2-24.1-63.6-24.1-53 0-96 43-96 96s43 96 96 96c24.4 0 46.6-9.1 63.6-24.1L289.3 400c-.9 5.2-1.3 10.5-1.3 16 0 53 43 96 96 96s96-43 96-96-43-96-96-96c-24.4 0-46.6 9.1-63.6 24.1L190.7 272c.9-5.2 1.3-10.5 1.3-16s-.5-10.8-1.3-16l129.7-72.1c16.9 15 39.2 24.1 63.6 24.1z\"]\n};\nvar faShareAlt = faShareNodes;\nvar faPersonCircleExclamation = {\n  prefix: 'fas',\n  iconName: 'person-circle-exclamation',\n  icon: [640, 512, [], \"e53f\", \"M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nvar faBinoculars = {\n  prefix: 'fas',\n  iconName: 'binoculars',\n  icon: [512, 512, [], \"f1e5\", \"M128 32l32 0c17.7 0 32 14.3 32 32l0 32-96 0 0-32c0-17.7 14.3-32 32-32zm64 96l0 320c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32l0-59.1c0-34.6 9.4-68.6 27.2-98.3 13.7-22.8 22.5-48.2 25.8-74.6L60.5 156c2-16 15.6-28 31.8-28l99.8 0zm227.8 0c16.1 0 29.8 12 31.8 28L459 216c3.3 26.4 12.1 51.8 25.8 74.6 17.8 29.7 27.2 63.7 27.2 98.3l0 59.1c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-320 99.8 0zM320 64c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 32-96 0 0-32zm-32 64l0 160-64 0 0-160 64 0z\"]\n};\nvar faKipSign = {\n  prefix: 'fas',\n  iconName: 'kip-sign',\n  icon: [384, 512, [], \"e1c4\", \"M340.8 88.3c13.4-11.5 15-31.7 3.5-45.1s-31.7-15-45.1-3.5L128 186.4 128 64c0-17.7-14.3-32-32-32S64 46.3 64 64l0 168-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 168c0 17.7 14.3 32 32 32s32-14.3 32-32l0-122.4 171.2 146.7c13.4 11.5 33.6 9.9 45.1-3.5s9.9-33.6-3.5-45.1L173.2 280 352 280c13.3 0 24-10.7 24-24s-10.7-24-24-24L173.2 232 340.8 88.3z\"]\n};\nvar faHardDrive = {\n  prefix: 'fas',\n  iconName: 'hard-drive',\n  icon: [448, 512, [128436, \"hdd\"], \"f0a0\", \"M64 32C28.7 32 0 60.7 0 96L0 260.1C18.1 247.4 40.2 240 64 240l320 0c23.8 0 45.9 7.4 64 20.1L448 96c0-35.3-28.7-64-64-64L64 32zM448 352c0-35.3-28.7-64-64-64L64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64zM224 384a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm128-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faHdd = faHardDrive;\nvar faRankingStar = {\n  prefix: 'fas',\n  iconName: 'ranking-star',\n  icon: [576, 512, [], \"e561\", \"M321.8 54.1L298.2 6.3c-3.9-8.3-16.1-8.6-20.4 0l-23.6 47.8-52.3 7.5c-9.3 1.4-13.3 12.9-6.4 19.8l38 37-9 52.1c-1.4 9.3 8.2 16.5 16.8 12.2l46.9-24.8 46.6 24.4c8.6 4.3 18.3-2.9 16.8-12.2l-9-52.1 38-36.6c6.8-6.8 2.9-18.3-6.4-19.8l-52.3-7.5zM256 256c-26.5 0-48 21.5-48 48l0 160c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-160c0-26.5-21.5-48-48-48l-64 0zM48 320c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-64 0zM416 432l0 32c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-32c0-26.5-21.5-48-48-48l-64 0c-26.5 0-48 21.5-48 48z\"]\n};\nvar faUserTie = {\n  prefix: 'fas',\n  iconName: 'user-tie',\n  icon: [448, 512, [], \"f508\", \"M224 248a120 120 0 1 1 0-240 120 120 0 1 1 0 240zm-30.5 56l61 0c9.7 0 17.5 7.8 17.5 17.5 0 4.2-1.5 8.2-4.2 11.4l-27.4 32 31 115.1 .6 0 34.6-138.5c2.2-8.7 11.1-14 19.5-10.8 61.9 23.6 105.9 83.6 105.9 153.8 0 15.1-12.3 27.4-27.4 27.4L43.4 512c-15.1 0-27.4-12.3-27.4-27.4 0-70.2 44-130.2 105.9-153.8 8.4-3.2 17.3 2.1 19.5 10.8l34.6 138.5 .6 0 31-115.1-27.4-32c-2.7-3.2-4.2-7.2-4.2-11.4 0-9.7 7.8-17.5 17.5-17.5z\"]\n};\nvar faEllipsis = {\n  prefix: 'fas',\n  iconName: 'ellipsis',\n  icon: [448, 512, [\"ellipsis-h\"], \"f141\", \"M0 256a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm168 0a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm224-56a56 56 0 1 1 0 112 56 56 0 1 1 0-112z\"]\n};\nvar faEllipsisH = faEllipsis;\nvar faStoreSlash = {\n  prefix: 'fas',\n  iconName: 'store-slash',\n  icon: [576, 512, [], \"e071\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-58.6-58.6c1.1-4 1.6-8.2 1.6-12.5l0-151.2c-12.5 4.6-26.1 7.2-40.5 7.2-8.1 0-15.9-.8-23.5-2.4l0 66.4-30.2 0-137.5-137.5c2.9-3.6 5.5-7.4 7.6-11.5 11.6 22 34.7 37 61.3 37 26.8 0 49.8-15.1 61.4-37.1 11.4 22.1 34.5 37.1 60.8 37.1 45.6 0 78.4-43.7 65.6-87.5L513.8 72.3C506.8 48.4 484.9 32 460 32L116 32c-5.5 0-10.8 .8-15.9 2.3L41-24.9zM151.5 221.3L48.7 118.6 38.9 152.5c-12.8 43.7 20 87.5 65.6 87.5 18.1 0 34.7-7.1 47-18.7zM410.2 480l-128-128-154.2 0 0-66.4c-7.6 1.6-15.5 2.4-23.5 2.4-14.4 0-28-2.6-40.5-7.2L64 432c0 26.5 21.5 48 48 48l298.2 0z\"]\n};\nvar faPercent = {\n  prefix: 'fas',\n  iconName: 'percent',\n  icon: [448, 512, [62101, 62785, \"percentage\"], \"25\", \"M192 128a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zM448 384a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zM438.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-384 384c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l384-384z\"]\n};\nvar faPercentage = faPercent;\nvar faFileZipper = {\n  prefix: 'fas',\n  iconName: 'file-zipper',\n  icon: [384, 512, [\"file-archive\"], \"f1c6\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM64 72c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 48C74.7 48 64 58.7 64 72zm0 96c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zm64 72l-32 0c-17.7 0-32 14.3-32 32l0 48c0 26.5 21.5 48 48 48s48-21.5 48-48l0-48c0-17.7-14.3-32-32-32zm-16 64a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"]\n};\nvar faFileArchive = faFileZipper;\nvar faDisplay = {\n  prefix: 'fas',\n  iconName: 'display',\n  icon: [512, 512, [], \"e163\", \"M448 96l0 256-384 0 0-256 384 0zM64 32C28.7 32 0 60.7 0 96L0 352c0 35.3 28.7 64 64 64l144 0-16 48-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l272 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0-16-48 144 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 32z\"]\n};\nvar faIcons = {\n  prefix: 'fas',\n  iconName: 'icons',\n  icon: [512, 512, [\"heart-music-camera-bolt\"], \"f86d\", \"M174.9 272c10.7 0 20.7 5.3 26.6 14.2l11.8 17.8 26.7 0c26.5 0 48 21.5 48 48l0 112c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 352c0-26.5 21.5-48 48-48l26.7 0 11.8-17.8c5.9-8.9 15.9-14.2 26.6-14.2l61.7 0zm278.6-12c5.6-4.9 13.9-5.3 19.9-.9s8.3 12.4 5.3 19.3L440.3 368 496 368c6.7 0 12.6 4.1 15 10.4s.6 13.3-4.4 17.7l-128 112c-5.6 4.9-13.9 5.3-19.9 .9s-8.3-12.4-5.3-19.3l38.5-89.7-55.8 0c-6.7 0-12.6-4.1-15-10.4s-.6-13.3 4.4-17.7l128-112zM144 360a48 48 0 1 0 0 96 48 48 0 1 0 0-96zM483.8 .4c6.5-1.1 13.1 .4 18.5 4.4 6.1 4.5 9.7 11.7 9.7 19.2l0 152-.3 4.9c-3.3 24.2-30.5 43.1-63.7 43.1-35.3 0-64-21.5-64-48s28.7-48 64-48c5.5 0 10.9 .6 16 1.6l0-49.3-112 33.6 0 110.2-.3 4.9c-3.3 24.2-30.5 43.1-63.7 43.1-35.3 0-64-21.5-64-48s28.7-48 64-48c5.5 0 10.9 .6 16 1.6L304 72c0-10.6 7-20 17.1-23l160-48 2.7-.6zM188.9 0C226 0 256 30 256 67.1l0 6.1c0 56.1-75.2 112.1-110.3 135.3-10.8 7.1-24.6 7.1-35.4 0-35.1-23.1-110.3-79.2-110.3-135.3l0-6.1C0 30 30 0 67.1 0 88.2 0 108 9.9 120.7 26.8l7.3 9.8 7.3-9.8C148 9.9 167.8 0 188.9 0z\"]\n};\nvar faHeartMusicCameraBolt = faIcons;\nvar faRulerVertical = {\n  prefix: 'fas',\n  iconName: 'ruler-vertical',\n  icon: [256, 512, [], \"f548\", \"M0 16C0-10.5 21.5-32 48-32l160 0c26.5 0 48 21.5 48 48l0 24-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0 0 48-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 0 48-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0 0 48-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 0 48-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0 0 24c0 26.5-21.5 48-48 48L48 544c-26.5 0-48-21.5-48-48L0 16z\"]\n};\nvar faMapLocationDot = {\n  prefix: 'fas',\n  iconName: 'map-location-dot',\n  icon: [640, 512, [\"map-marked-alt\"], \"f5a0\", \"M576 48c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4L413.5 77.5 234.1 17.6c-8.1-2.7-16.8-2.1-24.4 1.7l-128 64C70.8 88.8 64 99.9 64 112l0 352c0 11.1 5.7 21.4 15.2 27.2s21.2 6.4 31.1 1.4l116.1-58.1 173.3 57.8c-4.3-6.4-8.5-13.1-12.6-19.9-11-18.3-21.9-39.3-30-61.8l-101.2-33.7 0-284.5 128 42.7 0 99.3c31-35.8 77-58.4 128-58.4 22.6 0 44.2 4.4 64 12.5L576 48zM512 224c-66.3 0-120 52.8-120 117.9 0 68.9 64.1 150.4 98.6 189.3 11.6 13 31.3 13 42.9 0 34.5-38.9 98.6-120.4 98.6-189.3 0-65.1-53.7-117.9-120-117.9zM472 344a40 40 0 1 1 80 0 40 40 0 1 1 -80 0z\"]\n};\nvar faMapMarkedAlt = faMapLocationDot;\nvar faHeartCrack = {\n  prefix: 'fas',\n  iconName: 'heart-crack',\n  icon: [512, 512, [128148, \"heart-broken\"], \"f7a9\", \"M133.1 32c17.3 0 34.2 3.4 49.9 9.7l54.8 85.2-75.4 75.4c-1.5 1.5-2.4 3.6-2.3 5.8s1 4.2 2.6 5.7l112 104c2.9 2.7 7.4 2.9 10.5 .3s3.8-7 1.7-10.4l-60.4-98.1 90.7-75.6c2.6-2.1 3.5-5.7 2.4-8.8L296.4 60.6C319.6 42.3 348.6 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 112.2-139.9 242.5-212.9 298.2-12.4 9.4-27.6 14.1-43.1 14.1s-30.8-4.6-43.1-14.1C139.9 410.2 0 279.9 0 167.7l0-2.6C0 91.6 59.6 32 133.1 32z\"]\n};\nvar faHeartBroken = faHeartCrack;\nvar faCow = {\n  prefix: 'fas',\n  iconName: 'cow',\n  icon: [640, 512, [128004], \"f6c8\", \"M96 224l0 192c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-88.2c9.9 6.6 20.6 12 32 16.1l0 24.2c0 8.8 7.2 16 16 16s16-7.2 16-16l0-16.9c5.3 .6 10.6 .9 16 .9s10.7-.3 16-.9l0 16.9c0 8.8 7.2 16 16 16s16-7.2 16-16l0-24.2c11.4-4 22.1-9.4 32-16.1l0 88.2c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-160 32 32 0 49.5c0 9.5 2.8 18.7 8.1 26.6L530 427c8.8 13.1 23.5 21 39.3 21 22.5 0 41.9-15.9 46.3-38l20.3-101.6c2.6-13-.3-26.5-8-37.3l-3.9-5.5 0-81.6c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 14.4-52.9-74.1C496 86.5 452.4 64 405.9 64L144 64C77.7 64 24 117.7 24 184l0 54C9.4 249.8 0 267.8 0 288l0 17.6c0 8 6.4 14.4 14.4 14.4 31.8 0 57.6-25.8 57.6-57.6L72 184c0-24.3 12.1-45.8 30.5-58.9-4.2 10.8-6.5 22.6-6.5 34.9l0 64zM560 336a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM166.6 166.6c-4.2-4.2-6.6-10-6.6-16 0-12.5 10.1-22.6 22.6-22.6l178.7 0c12.5 0 22.6 10.1 22.6 22.6 0 6-2.4 11.8-6.6 16l-23.4 23.4C332.2 211.8 302.7 224 272 224s-60.2-12.2-81.9-33.9l-23.4-23.4z\"]\n};\nvar faRss = {\n  prefix: 'fas',\n  iconName: 'rss',\n  icon: [448, 512, [\"feed\"], \"f09e\", \"M0 64c0-17.7 14.3-32 32-32 229.8 0 416 186.2 416 416 0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96 14.3 96 0 81.7 0 64zM0 416a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM32 160c159.1 0 288 128.9 288 288 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faFeed = faRss;\nvar faMagnifyingGlass = {\n  prefix: 'fas',\n  iconName: 'magnifying-glass',\n  icon: [512, 512, [128269, \"search\"], \"f002\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z\"]\n};\nvar faSearch = faMagnifyingGlass;\nvar faCloudMoon = {\n  prefix: 'fas',\n  iconName: 'cloud-moon',\n  icon: [640, 512, [], \"f6c3\", \"M480 0c14.6 0 28.8 1.6 42.5 4.7 7.4 1.7 13 7.8 13.9 15.4s-3 14.9-9.8 18.3c-45.4 22.6-76.6 69.5-76.6 123.6 0 76.2 61.8 138 138 138 3.7 0 7.4-.1 11.1-.4 7.6-.6 14.7 3.6 17.8 10.6s1.5 15.1-3.9 20.4c-26 25-59.1 42.7-95.9 49.9-11.1-25.3-30.2-46.3-54.1-59.8-7.6-63.4-61.6-112.6-127.1-112.6-11.2 0-22.1 1.5-32.5 4.2-4.8-4.2-9.9-8.2-15.2-11.8-.1-2.8-.2-5.6-.2-8.4 0-106 86-192 192-192zm-.1 431.9c0 44.2-35.8 80-80 80l-271.9 0c-53 0-96-43-96-96 0-47.6 34.6-87 80-94.6-.4-52.8 42.9-97.3 96-97.3 34.9 0 65.4 18.6 82.2 46.4 13-9.1 28.8-14.4 45.8-14.4 44.2 0 80 35.8 80 80 0 5.9-.6 11.7-1.9 17.2 37.4 6.7 65.8 39.4 65.8 78.7z\"]\n};\nvar faBoxesStacked = {\n  prefix: 'fas',\n  iconName: 'boxes-stacked',\n  icon: [512, 512, [62625, \"boxes\", \"boxes-alt\"], \"f468\", \"M224 0l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64 32 0c35.3 0 64 28.7 64 64l0 128c0 5.5-.7 10.9-2 16l-252 0c-1.3-5.1-2-10.5-2-16l0-128c0-35.3 28.7-64 64-64l32 0zm96 512c-11.2 0-21.8-2.9-31-8 9.5-16.5 15-35.6 15-56l0-128c0-20.4-5.5-39.5-15-56 9.2-5.1 19.7-8 31-8l32 0 0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64 32 0c35.3 0 64 28.7 64 64l0 128c0 35.3-28.7 64-64 64l-128 0zM0 320c0-35.3 28.7-64 64-64l32 0 0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64 32 0c35.3 0 64 28.7 64 64l0 128c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 320z\"]\n};\nvar faBoxes = faBoxesStacked;\nvar faBoxesAlt = faBoxesStacked;\nvar faCodeBranch = {\n  prefix: 'fas',\n  iconName: 'code-branch',\n  icon: [448, 512, [], \"f126\", \"M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3l0 70.7 176 0c26.5 0 48-21.5 48-48l0-22.7c-28.3-12.3-48-40.5-48-73.3 0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 22.7c0 61.9-50.1 112-112 112l-176 0 0 70.7c28.3 12.3 48 40.5 48 73.3 0 44.2-35.8 80-80 80S0 476.2 0 432c0-32.8 19.7-61 48-73.3l0-205.3C19.7 141 0 112.8 0 80 0 35.8 35.8 0 80 0s80 35.8 80 80zm232 0a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM80 456a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faBan = {\n  prefix: 'fas',\n  iconName: 'ban',\n  icon: [512, 512, [128683, \"cancel\"], \"f05e\", \"M367.2 412.5L99.5 144.8c-22.4 31.4-35.5 69.8-35.5 111.2 0 106 86 192 192 192 41.5 0 79.9-13.1 111.2-35.5zm45.3-45.3c22.4-31.4 35.5-69.8 35.5-111.2 0-106-86-192-192-192-41.5 0-79.9 13.1-111.2 35.5L412.5 367.2zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"]\n};\nvar faCancel = faBan;\nvar faJugDetergent = {\n  prefix: 'fas',\n  iconName: 'jug-detergent',\n  icon: [384, 512, [], \"e519\", \"M96 24c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24l0 24 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 96C74.7 96 64 85.3 64 72S74.7 48 88 48l8 0 0-24zM0 256c0-70.7 57.3-128 128-128l128 0c70.7 0 128 57.3 128 128l0 192c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 256zm256 0l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"]\n};\nvar faReply = {\n  prefix: 'fas',\n  iconName: 'reply',\n  icon: [512, 512, [61714, \"mail-reply\"], \"f3e5\", \"M204.2 18.4c12 5 19.8 16.6 19.8 29.6l0 80 112 0c97.2 0 176 78.8 176 176 0 113.3-81.5 163.9-100.2 174.1-2.5 1.4-5.3 1.9-8.1 1.9-10.9 0-19.7-8.9-19.7-19.7 0-7.5 4.3-14.4 9.8-19.5 9.4-8.8 22.2-26.4 22.2-56.7 0-53-43-96-96-96l-96 0 0 80c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-160-160c-12.5-12.5-12.5-32.8 0-45.3l160-160c9.2-9.2 22.9-11.9 34.9-6.9z\"]\n};\nvar faMailReply = faReply;\nvar faSunPlantWilt = {\n  prefix: 'fas',\n  iconName: 'sun-plant-wilt',\n  icon: [640, 512, [], \"e57a\", \"M160 0c-5.5 0-10.6 2.8-13.5 7.4l-1.1 2.1-24.8 55.4-56.7-21.7c-5.9-2.2-12.5-.8-17 3.7S41 58 43.2 63.9l21.7 56.7-55.4 24.8C3.7 148 0 153.7 0 160s3.7 12 9.5 14.6l55.4 24.8-21.7 56.7c-2.2 5.9-.8 12.5 3.7 17s11.1 5.9 17 3.7l56.7-21.7 24.8 55.4c2.6 5.8 8.3 9.5 14.6 9.5s12-3.7 14.6-9.5l24.8-55.4 56.8 21.7c5.9 2.2 12.5 .8 17-3.7s5.9-11.1 3.7-17l-21.7-56.7 55.4-24.8c5.8-2.6 9.5-8.3 9.5-14.6s-3.7-12-9.5-14.6l-55.4-24.8 21.7-56.7 .7-2.2c1.2-5.3-.4-10.9-4.3-14.8s-9.5-5.5-14.8-4.3l-2.2 .7-56.8 21.7-24.8-55.4C172 3.7 166.3 0 160 0zm0 96a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm376 16l0 53.4c-14.8 7.7-24 23.1-24 44.6 0 16.8 16 44 37.4 67.2 5.8 6.2 15.5 6.2 21.2 0 21.4-23.3 37.4-50.6 37.4-67.2 0-21.5-9.2-37-24-44.6l0-53.4c0-44.2-35.8-80-80-80s-80 35.8-80 80l0 22.7c-9.8-4.3-20.6-6.7-32-6.7-44.2 0-80 35.8-80 80l0 21.4c-14.8 7.6-24 23.1-24 44.6 0 16.8 16 44 37.4 67.2 5.8 6.2 15.5 6.2 21.2 0 21.4-23.3 37.4-50.6 37.4-67.2 0-21.5-9.2-37-24-44.6l0-21.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 176-424 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-104 0 0-272c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faBacterium = {\n  prefix: 'fas',\n  iconName: 'bacterium',\n  icon: [576, 512, [], \"e05a\", \"M408 16c0-13.3-10.7-24-24-24S360 2.7 360 16l0 23.4c-13.9 5.3-26.9 13.5-38.2 24.5L305 47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l16.8 16.8-30.1 30.1-16.8-16.8c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l16.8 16.8c-10 10-20 20-30.1 30.1L177 175c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l16.8 16.8-30.1 30.1-16.8-16.8c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l16.8 16.8c-11 11.3-19.2 24.3-24.5 38.2L48 328c-13.3 0-24 10.7-24 24s10.7 24 24 24l16.3 0c1.3 18.3 7.1 36.4 17.4 52.4L71 439c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l10.6-10.6c16 10.3 34.1 16.1 52.4 17.4l0 16.3c0 13.3 10.7 24 24 24s24-10.7 24-24l0-23.4c13.9-5.3 26.9-13.5 38.2-24.5L271 465c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-16.8-16.8 30.1-30.1 16.8 16.8c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-16.8-16.8c10-10 20-20 30.1-30.1L399 337c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-16.8-16.8 30.1-30.1 16.8 16.8c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-16.8-16.8c11-11.3 19.2-24.3 24.5-38.2l23.4 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16.3 0c-1.3-18.3-7.1-36.4-17.4-52.4L505 73c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L460.4 49.7c-16-10.3-34.1-16.1-52.4-17.4L408 16zM160 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM272 240a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faRecordVinyl = {\n  prefix: 'fas',\n  iconName: 'record-vinyl',\n  icon: [512, 512, [], \"f8d9\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm256-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm0 240a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-112a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faFloppyDisk = {\n  prefix: 'fas',\n  iconName: 'floppy-disk',\n  icon: [448, 512, [128190, 128426, \"save\"], \"f0c7\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-242.7c0-17-6.7-33.3-18.7-45.3L352 50.7C340 38.7 323.7 32 306.7 32L64 32zm32 96c0-17.7 14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-64zM224 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nvar faSave = faFloppyDisk;\nvar faToiletsPortable = {\n  prefix: 'fas',\n  iconName: 'toilets-portable',\n  icon: [512, 512, [], \"e584\", \"M64 0l96 0c35.3 0 64 28.7 64 64l0 16-224 0 0-16C0 28.7 28.7 0 64 0zM0 128l224 0 0 360c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8-128 0 0 8c0 13.3-10.7 24-24 24S0 501.3 0 488L0 128zM128 248l0 48c0 13.3 10.7 24 24 24l24 0 0-96-24 0c-13.3 0-24 10.7-24 24zM352 0l96 0c35.3 0 64 28.7 64 64l0 16-224 0 0-16c0-35.3 28.7-64 64-64zM288 128l224 0 0 360c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8-128 0 0 8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-360zM416 248l0 48c0 13.3 10.7 24 24 24l24 0 0-96-24 0c-13.3 0-24 10.7-24 24z\"]\n};\nvar faO = {\n  prefix: 'fas',\n  iconName: 'o',\n  icon: [448, 512, [111], \"4f\", \"M224 96a160 160 0 1 0 0 320 160 160 0 1 0 0-320zM448 256a224 224 0 1 1 -448 0 224 224 0 1 1 448 0z\"]\n};\nvar faPalette = {\n  prefix: 'fas',\n  iconName: 'palette',\n  icon: [512, 512, [127912], \"f53f\", \"M512 256c0 .9 0 1.8 0 2.7-.4 36.5-33.6 61.3-70.1 61.3L344 320c-26.5 0-48 21.5-48 48 0 3.4 .4 6.7 1 9.9 2.1 10.2 6.5 20 10.8 29.9 6.1 13.8 12.1 27.5 12.1 42 0 31.8-21.6 60.7-53.4 62-3.5 .1-7 .2-10.6 .2-141.4 0-256-114.6-256-256S114.6 0 256 0 512 114.6 512 256zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faUnlock = {\n  prefix: 'fas',\n  iconName: 'unlock',\n  icon: [384, 512, [128275], \"f09c\", \"M128 96c0-35.3 28.7-64 64-64 31.7 0 58 23 63.1 53.3 2.9 17.4 19.4 29.2 36.9 26.3s29.2-19.4 26.3-36.9C308.1 14.1 255.5-32 192-32 121.3-32 64 25.3 64 96l0 64c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64l-192 0 0-64z\"]\n};\nvar faEarListen = {\n  prefix: 'fas',\n  iconName: 'ear-listen',\n  icon: [512, 512, [\"assistive-listening-systems\"], \"f2a2\", \"M379.6 .3c-8.9 1.2-17.2 6.2-22.4 14.1-6.8 10.4-7 24.1-.4 34.6 5.6 8.9 15.5 12.7 23.8 18.5 7.5 5.2 17.6 13.2 27.7 24.2 20 21.7 39.5 54.3 39.5 100.3 0 17.7 14.3 32 32 32s32-14.3 32-32c0-66-28.5-113.4-56.5-143.7-13.9-15.1-27.8-26.1-38.3-33.3-11-7.6-23.5-16.6-37.6-14.7zM240 128c-57.6 0-105.1 43.6-111.3 99.5-1.9 17.6-17.8 30.2-35.3 28.3s-30.2-17.8-28.3-35.3c9.7-88 84.3-156.5 174.9-156.5 97.2 0 176 78.8 176 176 0 46-17.7 87.9-46.6 119.3-12 13-17.4 24.8-17.4 34.7l0 6.1c0 61.9-50.1 112-112 112-17.7 0-32-14.3-32-32s14.3-32 32-32c26.5 0 48-21.5 48-48l0-6.1c0-32.9 17.4-59.6 34.4-78 18.4-20 29.6-46.6 29.6-75.9 0-61.9-50.1-112-112-112zM0 480a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm160-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64zM240 208c-17.7 0-32 14.3-32 32 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-17.7-14.3-32-32-32z\"]\n};\nvar faAssistiveListeningSystems = faEarListen;\nvar faCodePullRequest = {\n  prefix: 'fas',\n  iconName: 'code-pull-request',\n  icon: [512, 512, [], \"e13c\", \"M328 24c0-9.7-5.8-18.5-14.8-22.2S293.9 .2 287 7L231 63c-9.4 9.4-9.4 24.6 0 33.9l56 56c6.9 6.9 17.2 8.9 26.2 5.2S328 145.7 328 136l0-24 24 0c17.7 0 32 14.3 32 32l0 214.7c-28.3 12.3-48 40.5-48 73.3 0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3L448 144c0-53-43-96-96-96l-24 0 0-24zM72 80a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm56 73.3c28.3-12.3 48-40.5 48-73.3 0-44.2-35.8-80-80-80S16 35.8 16 80c0 32.8 19.7 61 48 73.3l0 205.3c-28.3 12.3-48 40.5-48 73.3 0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3l0-205.3zM72 432a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm344-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faKey = {\n  prefix: 'fas',\n  iconName: 'key',\n  icon: [512, 512, [128273], \"f084\", \"M336 352c97.2 0 176-78.8 176-176S433.2 0 336 0 160 78.8 160 176c0 18.7 2.9 36.8 8.3 53.7L7 391c-4.5 4.5-7 10.6-7 17l0 80c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-40 40 0c13.3 0 24-10.7 24-24l0-40 40 0c6.4 0 12.5-2.5 17-7l33.3-33.3c16.9 5.4 35 8.3 53.7 8.3zM376 96a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"]\n};\nvar faSkull = {\n  prefix: 'fas',\n  iconName: 'skull',\n  icon: [512, 512, [128128], \"f54c\", \"M416 427.4c58.5-44 96-111.6 96-187.4 0-132.5-114.6-240-256-240S0 107.5 0 240c0 75.8 37.5 143.4 96 187.4L96 464c0 26.5 21.5 48 48 48l32 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 64 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 32 0c26.5 0 48-21.5 48-48l0-36.6zM96 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm256-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nvar faMarsStrokeUp = {\n  prefix: 'fas',\n  iconName: 'mars-stroke-up',\n  icon: [384, 512, [9896, \"mars-stroke-v\"], \"f22a\", \"M192 256a112 112 0 1 0 0 224 112 112 0 1 0 0-224zM16 368c0-86.3 62.1-158.1 144.1-173.1-.1-.9-.1-1.9-.1-2.9l0-16-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-61.4-28 22.4c-13.8 11-33.9 8.8-45-5s-8.8-33.9 5-45l80-64c11.7-9.3 28.3-9.3 40 0l80 64c13.8 11 16 31.2 5 45s-31.2 16-45 5l-28-22.4 0 61.4 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 16c0 1 0 1.9-.1 2.9 82 15 144.1 86.8 144.1 173.1 0 97.2-78.8 176-176 176S16 465.2 16 368z\"]\n};\nvar faMarsStrokeV = faMarsStrokeUp;\nvar faFireFlameSimple = {\n  prefix: 'fas',\n  iconName: 'fire-flame-simple',\n  icon: [384, 512, [\"burn\"], \"f46a\", \"M372.5 256.5l-.7-1.9C337.8 160.8 282 76.5 209.1 8.5l-3.3-3C202.1 2 197.1 0 192 0s-10.1 2-13.8 5.5l-3.3 3C102 76.5 46.2 160.8 12.2 254.6l-.7 1.9C3.9 277.3 0 299.4 0 321.6 0 426.7 86.8 512 192 512s192-85.3 192-190.4c0-22.2-3.9-44.2-11.5-65.1zm-90.8 49.5c4.1 9.3 6.2 19.4 6.2 29.5 0 53-43 96.5-96 96.5s-96-43.5-96-96.5c0-10.1 2.1-20.3 6.2-29.5l1.9-4.3c15.8-35.4 37.9-67.7 65.3-95.1l8.9-8.9c3.6-3.6 8.5-5.6 13.6-5.6s10 2 13.6 5.6l8.9 8.9c27.4 27.4 49.6 59.7 65.3 95.1l1.9 4.3z\"]\n};\nvar faBurn = faFireFlameSimple;\nvar faTree = {\n  prefix: 'fas',\n  iconName: 'tree',\n  icon: [448, 512, [127794], \"f1bb\", \"M224-32c7 0 13.7 3.1 18.3 8.5l136 160c6.1 7.1 7.4 17.1 3.5 25.6S369.4 176 360 176l-24.9 0 75.2 88.5c6.1 7.1 7.4 17.1 3.5 25.6S401.4 304 392 304l-38.5 0 88.8 104.5c6.1 7.1 7.4 17.1 3.5 25.6S433.4 448 424 448l-168 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64-168 0c-9.4 0-17.9-5.4-21.8-13.9s-2.6-18.5 3.5-25.6L94.5 304 56 304c-9.4 0-17.9-5.4-21.8-13.9s-2.6-18.5 3.5-25.6L112.9 176 88 176c-9.4 0-17.9-5.4-21.8-13.9s-2.6-18.5 3.5-25.6l136-160C210.3-28.9 217-32 224-32z\"]\n};\nvar faSmog = {\n  prefix: 'fas',\n  iconName: 'smog',\n  icon: [576, 512, [], \"f75f\", \"M176 288C96.5 288 32 223.5 32 144S96.5 0 176 0c27.2 0 52.6 7.5 74.3 20.6 20.1-13 44-20.6 69.7-20.6 47.4 0 88.7 25.7 110.9 64l1.1 0c61.9 0 112 50.1 112 112 0 60.3-47.6 109.4-107.2 111.9-22.6 20-52.3 32.1-84.8 32.1-32.5 0-62.1-12.1-84.7-32L176 288zM512 392c0 13.3-10.7 24-24 24L24 416c-13.3 0-24-10.7-24-24s10.7-24 24-24l464 0c13.3 0 24 10.7 24 24zM88 464l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm176 0l288 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-288 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faS = {\n  prefix: 'fas',\n  iconName: 's',\n  icon: [320, 512, [115], \"53\", \"M0 157.5C0 88.2 56.2 32 125.5 32L272 32c17.7 0 32 14.3 32 32s-14.3 32-32 32L125.5 96c-34 0-61.5 27.5-61.5 61.5 0 31 23.1 57.2 53.9 61L210.1 230C272.9 237.9 320 291.2 320 354.5 320 423.8 263.8 480 194.5 480L48 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l146.5 0c34 0 61.5-27.5 61.5-61.5 0-31-23.1-57.2-53.9-61L109.9 282C47.1 274.1 0 220.8 0 157.5z\"]\n};\nvar faJedi = {\n  prefix: 'fas',\n  iconName: 'jedi',\n  icon: [576, 512, [], \"f669\", \"M246 315.7l-21.2-31.9c-2.1-3.2-1.7-7.4 1-10.1s6.9-3.1 10.1-1l29.5 19.7c2.1 1.4 4.9-.1 5-2.6L279.7 8c.1-4.5 3.8-8 8.3-8s8.1 3.5 8.3 8l9.4 281.9c.1 2.5 2.9 3.9 5 2.6l29.5-19.7c3.2-2.1 7.4-1.7 10.1 1s3.1 6.9 1 10.1L330 315.7c-1.3 1.9-.2 4.5 2 4.9l37.6 7.5c3.7 .7 6.4 4 6.4 7.8s-2.7 7.1-6.4 7.8L332 351.4c-2.2 .4-3.3 3-2 4.9l21.2 31.9c2.1 3.2 1.7 7.4-1 10.1s-6.9 3.1-10.1 1l-26.3-17.6c-2.2-1.4-5.1 .2-5 2.8l2.1 61.5c59.8-10.8 105.1-63.1 105.1-126 0-37-15.7-70.4-40.8-93.7-7-6.5-6.5-18.6 1-24.4 34-26.3 55.8-67.5 55.8-113.9 0-16.8-2.9-33-8.2-48-4.6-13 10.2-30 21.4-22 53.5 38 92.7 94.8 107.8 160.7 .5 2.1-.2 4.3-1.7 5.9l-28.4 28.4c-4 4-1.2 10.9 4.5 10.9l26 0c3.4 0 6.2 2.6 6.3 6 .1 3.3 .2 6.6 .2 10 0 17.5-1.7 34.7-4.8 51.3-.2 1.2-.9 2.4-1.7 3.3l-46.5 46.5c-4 4-1.2 10.9 4.5 10.9l14.6 0c4.6 0 7.7 4.8 5.7 9-44.5 89.5-136.9 151-243.7 151S88.8 450.5 44.3 361c-2.1-4.2 1-9 5.7-9l14.6 0c5.7 0 8.6-6.9 4.5-10.9L22.6 294.6c-.9-.9-1.5-2-1.7-3.3-3.2-16.6-4.8-33.8-4.8-51.3 0-3.3 .1-6.7 .2-10 .1-3.4 2.9-6 6.3-6l26 0c5.7 0 8.6-6.9 4.5-10.9L24.6 184.6c-1.5-1.5-2.2-3.8-1.7-5.9 15.2-66 54.3-122.8 107.8-160.7 11.3-8 26 8.9 21.4 22-5.3 15-8.2 31.2-8.2 48 0 46.3 21.9 87.5 55.8 113.9 7.5 5.8 8 17.9 1 24.4-25.1 23.4-40.8 56.7-40.8 93.7 0 62.9 45.4 115.2 105.1 126l2.1-61.5c.1-2.6-2.8-4.2-5-2.8l-26.3 17.6c-3.2 2.1-7.4 1.7-10.1-1s-3.1-6.9-1-10.1L246 356.3c1.3-1.9 .2-4.5-2-4.9l-37.6-7.5c-3.7-.7-6.4-4-6.4-7.8s2.7-7.1 6.4-7.8l37.6-7.5c2.2-.4 3.3-3 2-4.9z\"]\n};\nvar faPersonHiking = {\n  prefix: 'fas',\n  iconName: 'person-hiking',\n  icon: [448, 512, [\"hiking\"], \"f6ec\", \"M192-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM128 173.6c0-34 27.6-61.6 61.6-61.6 20.3 0 39.7 8.1 54 22.4l48.2 48.2c6 6 14.1 9.4 22.6 9.4l37.5 0c5.8 0 11.3 1.6 16 4.3l0-76.3c0-13.3 10.7-24 24-24s24 10.7 24 24l0 400c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-268.3c-4.7 2.7-10.2 4.3-16 4.3l-37.5 0c-25.5 0-49.9-10.1-67.9-28.1l-6.6-6.6 0 109.2 34.5 29.6c17.7 15.2 29.3 36.2 32.6 59.3l12.6 88.1c2.5 17.5-9.7 33.7-27.2 36.2s-33.7-9.7-36.2-27.2l-12.6-88.1c-1.1-7.7-5-14.7-10.9-19.8l-71.4-61.2c-21.3-18.2-33.5-44.9-33.5-72.9l0-101zm-4.8 203.7c2.3 2.3 4.7 4.4 7.1 6.5l44.9 38.5c-3.6 8.4-8.5 16.3-14.4 23.4L88.6 532.5c-11.3 13.6-31.5 15.4-45.1 4.1s-15.4-31.5-4.1-45.1l72.3-86.7c2.6-3.1 4.5-6.6 5.8-10.4l5.7-17.1zM0 160c0-35.3 28.7-64 64-64 17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-96z\"]\n};\nvar faHiking = faPersonHiking;\nvar faArrowsUpToLine = {\n  prefix: 'fas',\n  iconName: 'arrows-up-to-line',\n  icon: [448, 512, [], \"e4c2\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l384 0c17.7 0 32-14.3 32-32S433.7 0 416 0L32 0zm86.6 137.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L64 237.3 64 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-242.7 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64zm256 0c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4 0 242.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-242.7 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64z\"]\n};\nvar faMarsDouble = {\n  prefix: 'fas',\n  iconName: 'mars-double',\n  icon: [640, 512, [9891], \"f227\", \"M288 32c0-17.7 14.3-32 32-32L448 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-50.7-95 95c19.5 28.4 31 62.7 31 99.8 0 97.2-78.8 176-176 176S0 401.2 0 304 78.8 128 176 128c37 0 71.4 11.4 99.8 31l95-95-50.7 0c-17.7 0-32-14.3-32-32zM176 416a112 112 0 1 0 0-224 112 112 0 1 0 0 224zm160 64c-6.8 0-13.4-.4-20-1.1 23.6-18.9 43.3-42.5 57.6-69.4 43.3-15.5 74.4-56.9 74.4-105.5 0-25.2-8.3-48.5-22.4-67.2 7.1 2.1 14.6 3.2 22.4 3.2 17 0 32.7-5.3 45.7-14.3 11.7 23.6 18.3 50.2 18.3 78.3 0 97.2-78.8 176-176 176zM528 157.3L528 32c0-11.4-2.4-22.2-6.7-32L608 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-50.7-48 48z\"]\n};\nvar faThermometer = {\n  prefix: 'fas',\n  iconName: 'thermometer',\n  icon: [512, 512, [], \"f491\", \"M96 382.1l0-88.8c0-14.9 5.9-29.1 16.4-39.6l21.7-21.7 41 41c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-41-41 46.1-46.1 41 41c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-41-41 46.1-46.1 41 41c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-41-41 7.8-7.8c19.4-19.4 45.6-30.2 73-30.2 57 0 103.2 46.2 103.2 103.2 0 27.4-10.9 53.6-30.2 73L258.3 399.6c-10.5 10.5-24.7 16.4-39.6 16.4l-88.8 0-89 89c-9.4 9.4-24.6 9.4-33.9 0S-2.3 480.4 7 471l89-89z\"]\n};\nvar faPaintbrush = {\n  prefix: 'fas',\n  iconName: 'paintbrush',\n  icon: [576, 512, [128396, \"paint-brush\"], \"f1fc\", \"M480.5 10.3L259.1 158c-29.1 19.4-47.6 50.9-50.6 85.3 62.3 12.8 111.4 61.9 124.3 124.3 34.5-3 65.9-21.5 85.3-50.6L565.7 95.5c6.7-10.1 10.3-21.9 10.3-34.1 0-33.9-27.5-61.4-61.4-61.4-12.1 0-24 3.6-34.1 10.3zM288 400c0-61.9-50.1-112-112-112S64 338.1 64 400c0 3.9 .2 7.8 .6 11.6 1.8 17.5-10.2 36.4-27.8 36.4L32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0c61.9 0 112-50.1 112-112z\"]\n};\nvar faPaintBrush = faPaintbrush;\nvar faNeuter = {\n  prefix: 'fas',\n  iconName: 'neuter',\n  icon: [384, 512, [9906], \"f22c\", \"M80 176a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zM223.9 349.1C305.9 334.1 368 262.3 368 176 368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144.1 173.1-.1 1-.1 1.9-.1 2.9l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-1 0-1.9-.1-2.9z\"]\n};\nvar faSquarePhoneFlip = {\n  prefix: 'fas',\n  iconName: 'square-phone-flip',\n  icon: [448, 512, [\"phone-square-alt\"], \"f87b\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm232 96.7l2.8 .8c32.3 8.8 59.9 40.1 51.8 78.2-18.5 87.5-87.4 156.3-174.9 174.9-38.1 8.1-69.4-19.5-78.2-51.8l-.8-2.8c-2.7-9.8 2.4-20.1 11.8-24l48.7-20.3c8.3-3.4 17.8-1.1 23.5 5.9l19.3 23.6c35.1-17.4 63.4-46.6 79.6-82.4l-22.1-18c-6.9-5.7-9.3-15.2-5.9-23.5l20.3-48.7c3.9-9.4 14.2-14.4 24-11.8z\"]\n};\nvar faPhoneSquareAlt = faSquarePhoneFlip;\nvar faFaceGrinTongueSquint = {\n  prefix: 'fas',\n  iconName: 'face-grin-tongue-squint',\n  icon: [512, 512, [128541, \"grin-tongue-squint\"], \"f58a\", \"M0 256c0 104.4 62.5 194.2 152.2 234.1-5.3-13-8.2-27.2-8.2-42.1l0-61.7c-16.9-16.5-30.1-36.7-38.3-59.3-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1c11.9-3.7 23.9 6.3 19.6 18.1-8.3 22.6-21.5 42.8-38.3 59.3l0 61.7c0 14.9-2.9 29.1-8.2 42.1 89.7-39.8 152.2-129.6 152.2-234.1 0-141.4-114.6-256-256-256S0 114.6 0 256zm125.8-91.7c-6.2-5.2-7.6-14.3-3.1-21.1s13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 192 125.8 164.3zm263.6-21.1c4.5 6.8 3.1 15.9-3.1 21.1L353 192 386.2 219.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5zM320 448l0-45.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9-2.8 12.6-20.8 12.6-23.6 0-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 45.4c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faGrinTongueSquint = faFaceGrinTongueSquint;\nvar faCommentDollar = {\n  prefix: 'fas',\n  iconName: 'comment-dollar',\n  icon: [512, 512, [], \"f651\", \"M256 480c141.4 0 256-107.5 256-240S397.4 0 256 0 0 107.5 0 240c0 54.3 19.2 104.3 51.6 144.5L2.8 476.8c-4.8 9-3.3 20 3.6 27.5s17.8 9.8 27.1 5.8l118.4-50.7C183.7 472.6 218.9 480 256 480zm4-352c11 0 20 9 20 20l0 4 8 0c11 0 20 9 20 20s-9 20-20 20l-47.5 0c-6.9 0-12.5 5.6-12.5 12.5 0 6.1 4.4 11.3 10.4 12.3l41.7 7c25.3 4.2 43.9 26.1 43.9 51.8 0 26.1-19 47.7-44 51.8l0 4.7c0 11-9 20-20 20s-20-9-20-20l0-4-24 0c-11 0-20-9-20-20s9-20 20-20l55.5 0c6.9 0 12.5-5.6 12.5-12.5 0-6.1-4.4-11.3-10.4-12.3l-41.7-7c-25.3-4.2-43.9-26.1-43.9-51.8 0-28.8 23.2-52.2 52-52.5l0-4c0-11 9-20 20-20z\"]\n};\nvar faHippo = {\n  prefix: 'fas',\n  iconName: 'hippo',\n  icon: [640, 512, [129435], \"f6ed\", \"M407 47c9.4-9.4 24.6-9.4 33.9 0l17.2 17.2c1.9-.1 3.9-.2 5.8-.2l32 0c11.2 0 21.9 2.3 31.6 6.5L543 55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L564 101.9c7.6 12.2 12 26.7 12 42.1 0 10.2 7.4 18.8 16.7 23 27.9 12.5 47.3 40.5 47.3 73 0 26.2-12.6 49.4-32 64l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-16-64 0 0 16c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-17.6c-11.8-2.4-22.7-7.4-32-14.4-1.5-1.1-2.9-2.3-4.3-3.5-17-14.7-27.7-36.4-27.7-60.5 0-8.8-7.2-16-16-16s-16 7.2-16 16c0 44.7 26.2 83.2 64 101.2l0 10.8c0 17.7 14.3 32 32 32l32 0 0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-76c-19.8 7.7-41.4 12-64 12s-44.2-4.3-64-12l0 76c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-118.9-18.1 40.7c-5.4 12.1-19.6 17.6-31.7 12.2S-3.3 362.4 2.1 350.3L24 300.9c5.3-11.9 8-24.7 8-37.7 0-107.5 85.2-195.2 191.8-199.1l.2-.1 64 0c41.7 0 83.4 12.1 117.2 25.7 1.7-1.8 3.5-3.6 5.3-5.2L407 81c-9.4-9.4-9.4-24.6 0-33.9zm73 185a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm88 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM480 144a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"]\n};\nvar faBowlFood = {\n  prefix: 'fas',\n  iconName: 'bowl-food',\n  icon: [512, 512, [], \"e4c6\", \"M0 176c0-35.3 28.7-64 64-64 .5 0 1.1 0 1.6 0 7.4-36.5 39.7-64 78.4-64 15 0 29 4.1 40.9 11.2 13.3-25.7 40.1-43.2 71.1-43.2s57.8 17.6 71.1 43.2c12-7.1 26-11.2 40.9-11.2 38.7 0 71 27.5 78.4 64 .5 0 1.1 0 1.6 0 35.3 0 64 28.7 64 64 0 11.7-3.1 22.6-8.6 32L8.6 208C3.1 198.6 0 187.7 0 176zM0 283.4C0 268.3 12.3 256 27.4 256l457.1 0c15.1 0 27.4 12.3 27.4 27.4 0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28l-231.5 0c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4z\"]\n};\nvar faSquareVirus = {\n  prefix: 'fas',\n  iconName: 'square-virus',\n  icon: [448, 512, [], \"e578\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm160 80c13.3 0 24 10.7 24 24 0 22.9 27.7 34.4 43.9 18.2 9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-16.2 16.2-4.7 43.9 18.2 43.9 13.3 0 24 10.7 24 24s-10.7 24-24 24c-22.9 0-34.4 27.7-18.2 43.9 9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-16.2-16.2-43.9-4.7-43.9 18.2 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-22.9-27.7-34.4-43.9-18.2-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c16.2-16.2 4.7-43.9-18.2-43.9-13.3 0-24-10.7-24-24s10.7-24 24-24c22.9 0 34.4-27.7 18.2-43.9-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c16.2 16.2 43.9 4.7 43.9-18.2 0-13.3 10.7-24 24-24zM192 248a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm88 40a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faCloudSunRain = {\n  prefix: 'fas',\n  iconName: 'cloud-sun-rain',\n  icon: [640, 512, [127782], \"f743\", \"M254.9 448.2c4.2-12.6 17.8-19.4 30.3-15.2 12.6 4.2 19.4 17.8 15.2 30.4l-21.4 64.1c-4.2 12.6-17.8 19.4-30.4 15.2s-19.4-17.8-15.2-30.3l21.4-64.2zm120 0c4.2-12.6 17.8-19.4 30.3-15.2 12.6 4.2 19.4 17.8 15.2 30.4l-21.4 64.1c-4.2 12.6-17.8 19.4-30.4 15.2s-19.4-17.8-15.2-30.3l21.4-64.2zm120 0c4.2-12.6 17.8-19.4 30.3-15.2 12.6 4.2 19.4 17.8 15.2 30.4l-21.4 64.1c-4.2 12.6-17.8 19.4-30.4 15.2s-19.4-17.8-15.2-30.3l21.4-64.2zM448.3 128c44.2 0 80 35.8 80 80 0 7.5-1.1 14.7-3 21.5 29.8 11.6 51 40.6 51 74.5 0 44.2-35.8 80-80 80l-192 0-8.2-.4c-40.3-4.1-71.8-38.2-71.8-79.6 0-39 27.9-71.5 64.9-78.5-.5-3.1-.9-6.2-.9-9.5 0-30.9 25.1-56 56-56 12.4 0 23.9 4.1 33.2 10.9 13.4-25.5 40.1-42.9 70.8-42.9zM240.3-31.8c5.3 0 10.3 2.7 13.3 7.1l47.3 70.4 83.3-16.3c5.2-1 10.6 .7 14.3 4.4 3.8 3.8 5.4 9.2 4.4 14.4l-8.6 43.8c-11.9 5.5-22.8 12.9-32.4 21.6-5.7-1-11.7-1.5-17.7-1.5-14.3 0-28 3-40.4 8.2-16.9-15-39.2-24.2-63.6-24.2-53 0-96 43-96 96 0 30.9 14.6 58.2 37.2 75.8-3.4 11.5-5.2 23.6-5.2 36.2 0 13.2 2 25.9 5.7 37.9l-2.4-3.5-83.2 16.3c-5.2 1-10.6-.7-14.3-4.4-3.8-3.8-5.4-9.2-4.4-14.4l16.3-83.3-70.4-47.4c-4.4-3-7.1-8-7.1-13.3 0-5.3 2.6-10.3 7-13.2l70.4-47.4-16.3-83.2-.2-2c-.3-4.6 1.3-9.1 4.6-12.4 3.8-3.8 9.2-5.4 14.4-4.4l83.2 16.3 47.3-70.4 1.2-1.6c3-3.5 7.4-5.5 12.1-5.5zm0 175.8c8.6 0 16.6 2.3 23.6 6.2-9.7 11.9-16.9 25.9-20.7 41.3-15 8.1-28.2 19.2-38.8 32.3-7.5-8.5-12.2-19.6-12.2-31.8 0-26.5 21.5-48 48-48z\"]\n};\nvar faArrowRightLong = {\n  prefix: 'fas',\n  iconName: 'arrow-right-long',\n  icon: [576, 512, [\"long-arrow-right\"], \"f178\", \"M566.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L466.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l434.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z\"]\n};\nvar faLongArrowRight = faArrowRightLong;\nvar faBuildingUn = {\n  prefix: 'fas',\n  iconName: 'building-un',\n  icon: [512, 512, [], \"e4d9\", \"M32 64C32 28.7 60.7 0 96 0L352 0c35.3 0 64 28.7 64 64l0 272-112 0c-20.9 0-39.5 10.1-51.2 25.6-8-6-18-9.6-28.8-9.6-26.5 0-48 21.5-48 48l0 64 64 0 0 48-144 0c-35.3 0-64-28.7-64-64L32 64zM144 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM144 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM427.4 380.5c9-2.1 18.3 2.2 22.5 10.5l26.1 52.2 0-43.3c0-11 9-20 20-20s20 9 20 20l0 128c0 9.3-6.4 17.3-15.4 19.5s-18.3-2.2-22.5-10.5L452 484.7 452 528c0 11-9 20-20 20s-20-9-20-20l0-128c0-9.3 6.4-17.3 15.4-19.5zM324 400l0 96c0 6.6 5.4 12 12 12s12-5.4 12-12l0-96c0-11 9-20 20-20s20 9 20 20l0 96c0 28.7-23.3 52-52 52s-52-23.3-52-52l0-96c0-11 9-20 20-20s20 9 20 20z\"]\n};\nvar faTemperatureLow = {\n  prefix: 'fas',\n  iconName: 'temperature-low',\n  icon: [512, 512, [], \"f76b\", \"M96 96c0-53 43-96 96-96s96 43 96 96l0 164.7c29.5 26.4 48 64.7 48 107.3 0 79.5-64.5 144-144 144S48 447.5 48 368c0-42.6 18.5-81 48-107.3L96 96zm96 336c35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3l0-28.7c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 28.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64zM464 80a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM352 80a80 80 0 1 1 160 0 80 80 0 1 1 -160 0z\"]\n};\nvar faDoorOpen = {\n  prefix: 'fas',\n  iconName: 'door-open',\n  icon: [448, 512, [], \"f52b\", \"M288 64l64 0 0 416c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-384c0-35.3-28.7-64-64-64l-96 0 0 0-160 0C60.7 0 32 28.7 32 64l0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0c17.7 0 32-14.3 32-32l0-416zM160 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faAlignLeft = {\n  prefix: 'fas',\n  iconName: 'align-left',\n  icon: [448, 512, [], \"f036\", \"M288 64c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l224 0c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32L32 352c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 224c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z\"]\n};\nvar faCamera = {\n  prefix: 'fas',\n  iconName: 'camera',\n  icon: [512, 512, [62258, \"camera-alt\"], \"f030\", \"M149.1 64.8L138.7 96 64 96C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-74.7 0-10.4-31.2C356.4 45.2 338.1 32 317.4 32L194.6 32c-20.7 0-39 13.2-45.5 32.8zM256 192a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"]\n};\nvar faCameraAlt = faCamera;\nvar faUsersRays = {\n  prefix: 'fas',\n  iconName: 'users-rays',\n  icon: [640, 512, [], \"e593\", \"M31-33C21.7-23.6 21.7-8.4 31 1L87 57c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L65-33c-9.4-9.4-24.6-9.4-33.9 0zM609-33c-9.4-9.4-24.6-9.4-33.9 0L519 23c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L609 1c9.4-9.4 9.4-24.6 0-33.9zM65 545l56-56c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L31 511c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0zm544 0c9.4-9.4 9.4-24.6 0-33.9l-56-56c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l56 56c9.4 9.4 24.6 9.4 33.9 0zM320 208a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm0 32c-61.9 0-112 50.1-112 112l0 8c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24l0-8c0-61.9-50.1-112-112-112zm216-80a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zM451.2 260.4C469.4 286.3 480 317.9 480 352l0 8c0 8.4-1.4 16.5-4.1 24l78.8 0c11.8 0 21.3-9.6 21.3-21.3l0-10.7c0-53-43-96-96-96-10 0-19.7 1.5-28.8 4.4zm-262.4 0c-9.1-2.9-18.8-4.4-28.8-4.4-53 0-96 43-96 96l0 10.7c0 11.8 9.6 21.3 21.3 21.3l78.8 0c-2.7-7.5-4.1-15.6-4.1-24l0-8c0-34.1 10.6-65.7 28.8-91.6zM216 160a56 56 0 1 0 -112 0 56 56 0 1 0 112 0z\"]\n};\nvar faRainbow = {\n  prefix: 'fas',\n  iconName: 'rainbow',\n  icon: [640, 512, [127752], \"f75b\", \"M320 96C178.6 96 64 210.6 64 352l0 64c0 17.7-14.3 32-32 32S0 433.7 0 416l0-64C0 175.3 143.3 32 320 32S640 175.3 640 352l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64C576 210.6 461.4 96 320 96zm0 112c-79.5 0-144 64.5-144 144l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-114.9 93.1-208 208-208s208 93.1 208 208l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-79.5-64.5-144-144-144zM288 352l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-53 43-96 96-96s96 43 96 96l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"]\n};\nvar faSitemap = {\n  prefix: 'fas',\n  iconName: 'sitemap',\n  icon: [512, 512, [], \"f0e8\", \"M192 64c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-8 0 0 64 120 0c39.8 0 72 32.2 72 72l0 56 8 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l8 0 0-56c0-13.3-10.7-24-24-24l-120 0 0 80 8 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l8 0 0-80-120 0c-13.3 0-24 10.7-24 24l0 56 8 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l8 0 0-56c0-39.8 32.2-72 72-72l120 0 0-64-8 0c-17.7 0-32-14.3-32-32l0-64z\"]\n};\nvar faFaceGrinStars = {\n  prefix: 'fas',\n  iconName: 'face-grin-stars',\n  icon: [512, 512, [129321, \"grin-stars\"], \"f587\", \"M256 512c141.4 0 256-114.6 256-256 0-24.4-3.4-48.1-9.8-70.5 18.6-36.1-2.7-83.6-46.7-90-46.9-58.3-118.9-95.5-199.5-95.5S103.4 37.3 56.5 95.5c-44 6.4-65.3 53.9-46.7 90-6.4 22.4-9.8 46-9.8 70.5 0 141.4 114.6 256 256 256zM386.7 324.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 404.2 105.7 342.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zm-31.6-231c5.3-10.7 20.5-10.7 25.8 0l20.9 42.4 46.7 6.8c11.8 1.7 16.5 16.2 8 24.5l-33.8 33 8 46.6c2 11.7-10.3 20.7-20.9 15.2l-41.8-22-41.8 22c-10.5 5.5-22.9-3.4-20.9-15.2l8-46.6-33.8-33c-8.5-8.3-3.8-22.8 8-24.5l46.7-6.8 20.9-42.4zm-198.2 0l20.9 42.4 46.7 6.8c11.8 1.7 16.5 16.2 8 24.5l-33.8 33 8 46.6c2 11.7-10.3 20.7-20.9 15.2l-41.8-22-41.8 22c-10.5 5.5-22.9-3.4-20.9-15.2l8-46.6-33.8-33c-8.5-8.3-3.8-22.8 8-24.5l46.7-6.8 20.9-42.4c5.3-10.7 20.5-10.7 25.8 0z\"]\n};\nvar faGrinStars = faFaceGrinStars;\nvar faSortUp = {\n  prefix: 'fas',\n  iconName: 'sort-up',\n  icon: [384, 512, [\"sort-asc\"], \"f0de\", \"M32 224c-12.9 0-24.6-7.8-29.6-19.8S.2 178.5 9.4 169.4l160-160c12.5-12.5 32.8-12.5 45.3 0l160 160c9.2 9.2 11.9 22.9 6.9 34.9S364.9 224 352 224L32 224z\"]\n};\nvar faSortAsc = faSortUp;\nvar faEye = {\n  prefix: 'fas',\n  iconName: 'eye',\n  icon: [576, 512, [128065], \"f06e\", \"M288 32c-80.8 0-145.5 36.8-192.6 80.6-46.8 43.5-78.1 95.4-93 131.1-3.3 7.9-3.3 16.7 0 24.6 14.9 35.7 46.2 87.7 93 131.1 47.1 43.7 111.8 80.6 192.6 80.6s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1 3.3-7.9 3.3-16.7 0-24.6-14.9-35.7-46.2-87.7-93-131.1-47.1-43.7-111.8-80.6-192.6-80.6zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64-11.5 0-22.3-3-31.7-8.4-1 10.9-.1 22.1 2.9 33.2 13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-12.2-45.7-55.5-74.8-101.1-70.8 5.3 9.3 8.4 20.1 8.4 31.7z\"]\n};\nvar faCaretLeft = {\n  prefix: 'fas',\n  iconName: 'caret-left',\n  icon: [256, 512, [], \"f0d9\", \"M7.7 235.8c-10.3 12.6-9.5 31.1 2.2 42.8l128 128c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-256c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-128 128-2.2 2.4z\"]\n};\nvar faAppleWhole = {\n  prefix: 'fas',\n  iconName: 'apple-whole',\n  icon: [448, 512, [127822, 127823, \"apple-alt\"], \"f5d1\", \"M224 112c-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80l16 0c8.8 0 16 7.2 16 16l0 16c0 44.2-35.8 80-80 80l-16 0zM0 288c0-76.3 35.7-160 112-160 27.3 0 59.7 10.3 82.7 19.3 18.8 7.3 39.9 7.3 58.7 0 22.9-8.9 55.4-19.3 82.7-19.3 76.3 0 112 83.7 112 160 0 128-80 224-160 224-16.5 0-38.1-6.6-51.5-11.3-8.1-2.8-16.9-2.8-25 0-13.4 4.7-35 11.3-51.5 11.3-80 0-160-96-160-224z\"]\n};\nvar faAppleAlt = faAppleWhole;\nvar faScrollTorah = {\n  prefix: 'fas',\n  iconName: 'scroll-torah',\n  icon: [576, 512, [\"torah\"], \"f6a0\", \"M0 48C0 21.5 21.5 0 48 0 68.9 0 86.7 13.4 93.3 32l389.5 0c6.6-18.6 24.4-32 45.3-32 26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48-20.9 0-38.7-13.4-45.3-32L93.3 480c-6.6 18.6-24.4 32-45.3 32-26.5 0-48-21.5-48-48L0 48zM177.9 301c-1.2 2-1.9 4.2-1.9 6.6 0 6.9 5.6 12.5 12.5 12.5l56.9 0 30.5 49.2c2.6 4.2 7.2 6.8 12.2 6.8s9.6-2.6 12.2-6.8l30.5-49.2 56.9 0c6.9 0 12.5-5.6 12.5-12.5 0-2.3-.6-4.6-1.9-6.6l-27.8-45 27.8-45c1.2-2 1.9-4.2 1.9-6.6 0-6.9-5.6-12.5-12.5-12.5l-56.9 0-30.5-49.2c-2.6-4.2-7.2-6.8-12.2-6.8s-9.6 2.6-12.2 6.8l-30.5 49.2-56.9 0c-6.9 0-12.5 5.6-12.5 12.5 0 2.3 .6 4.6 1.9 6.6l27.8 45-27.8 45z\"]\n};\nvar faTorah = faScrollTorah;\nvar faHouseLock = {\n  prefix: 'fas',\n  iconName: 'house-lock',\n  icon: [640, 512, [], \"e510\", \"M528 224.1c44.2 0 80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80zM268.6 6.5c12.2-9.3 29.7-8.7 41.2 2l185 171.8C440.2 195 400 244.8 400 304l0 24.4c-19.6 17.6-32 43.1-32 71.5l0 96c0 5.5 .5 10.9 1.3 16.1L144 512c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208 2.4-2zM272 320c-26.5 0-48 21.5-48 48l0 96 96 0 0-87.3c0-16.5 7-31.5 18.4-42.1-8.7-9-20.9-14.6-34.4-14.6l-32 0zm256-47.9c-17.7 0-32 14.3-32 32l0 47.9 64 0 0-47.9c0-17.7-14.3-32-32-32z\"]\n};\nvar faArrowsLeftRightToLine = {\n  prefix: 'fas',\n  iconName: 'arrows-left-right-to-line',\n  icon: [576, 512, [], \"e4ba\", \"M32 96C14.3 96 0 110.3 0 128L0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-256c0-17.7-14.3-32-32-32zM390.6 342.6l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4-133.5 0 9.4-9.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4 133.5 0-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0zM576 128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32l0-256z\"]\n};\nvar faTrash = {\n  prefix: 'fas',\n  iconName: 'trash',\n  icon: [448, 512, [], \"f1f8\", \"M136.7 5.9L128 32 32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0-8.7-26.1C306.9-7.2 294.7-16 280.9-16L167.1-16c-13.8 0-26 8.8-30.4 21.9zM416 144L32 144 53.1 467.1C54.7 492.4 75.7 512 101 512L347 512c25.3 0 46.3-19.6 47.9-44.9L416 144z\"]\n};\nvar faFaceSadTear = {\n  prefix: 'fas',\n  iconName: 'face-sad-tear',\n  icon: [512, 512, [128546, \"sad-tear\"], \"f5b4\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm271 98c5.5-1.3 11.1-2 17-2 24.1 0 45.4 11.8 58.5 30 7.7 10.8 22.7 13.2 33.5 5.5s13.2-22.7 5.5-33.5c-21.7-30.2-57.3-50-97.5-50-12.5 0-24.6 1.9-35.9 5.5 9.8 12.7 16.5 27.9 18.9 44.6zM176 240a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm192-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM185.4 292.8c-2.4-2.9-5.7-4.8-9.4-4.8s-7 1.9-9.4 4.8c-6.5 7.8-12.6 16.1-18.3 24.6-9 13.4-20.3 30.2-20.3 47.4 0 28.3 21.5 51.2 48 51.2s48-22.9 48-51.2c0-17.2-11.2-34-20.3-47.4-5.7-8.5-11.9-16.7-18.3-24.6z\"]\n};\nvar faSadTear = faFaceSadTear;\nvar faFax = {\n  prefix: 'fas',\n  iconName: 'fax',\n  icon: [512, 512, [128224, 128439], \"f1ac\", \"M160 64l0 80 64 0 0-80 146.7 0 45.3 45.3 0 34.7 64 0 0-34.7c0-17-6.7-33.3-18.7-45.3L416 18.7C404 6.7 387.7 0 370.7 0L224 0c-35.3 0-64 28.7-64 64zM32 128c-17.7 0-32 14.3-32 32L0 448c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-288c0-17.7-14.3-32-32-32l-48 0zm448 64l-320 0 0 256c0 17.7 14.3 32 32 32l288 0c17.7 0 32-14.3 32-32l0-224c0-17.7-14.3-32-32-32zM224 288a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm0 96a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM336 264a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM312 384a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM424 264a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM400 384a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faPersonCirclePlus = {\n  prefix: 'fas',\n  iconName: 'person-circle-plus',\n  icon: [640, 512, [], \"e541\", \"M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm16-208l0 48 48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l48 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faHamsa = {\n  prefix: 'fas',\n  iconName: 'hamsa',\n  icon: [512, 512, [], \"f665\", \"M34.6 288L80 288c8.8 0 16-7.2 16-16L96 72c0-22.1 17.9-40 40-40s40 17.9 40 40l0 132c0 11 9 20 20 20s20-9 20-20l0-164c0-22.1 17.9-40 40-40s40 17.9 40 40l0 164c0 11 9 20 20 20s20-9 20-20l0-132c0-22.1 17.9-40 40-40s40 17.9 40 40l0 200c0 8.8 7.2 16 16 16l45.4 0c19.1 0 34.6 15.5 34.6 34.6 0 8.6-3.2 16.9-9 23.3L416.6 441c-41.1 45.2-99.4 71-160.6 71S136.6 486.2 95.4 441L9 345.9c-5.8-6.4-9-14.7-9-23.3 0-19.1 15.5-34.6 34.6-34.6zM256 288c-38.4 0-76.8 35.8-90.6 50.2-3.6 3.7-5.4 8.7-5.4 13.8s1.8 10.1 5.4 13.8C179.2 380.2 217.6 416 256 416s76.8-35.8 90.6-50.2c3.6-3.7 5.4-8.7 5.4-13.8s-1.8-10.1-5.4-13.8C332.8 323.8 294.4 288 256 288zm0 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faPersonCircleQuestion = {\n  prefix: 'fas',\n  iconName: 'person-circle-question',\n  icon: [640, 512, [], \"e542\", \"M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-100c-11.6 0-21.3 8.2-23.5 19.2-1.8 8.7-10.2 14.3-18.9 12.5s-14.3-10.2-12.5-18.9c5.2-25.6 27.8-44.8 54.9-44.8 30.9 0 56 25.1 56 56 0 19.8-11.7 37.8-29.8 45.9l-10.4 4.6c-1.2 7.7-7.8 13.5-15.8 13.5-8.8 0-16-7.2-16-16 0-11.2 6.6-21.3 16.8-25.9l12.4-5.5c6.6-2.9 10.8-9.4 10.8-16.6 0-13.3-10.7-24-24-24z\"]\n};\nvar faClipboardCheck = {\n  prefix: 'fas',\n  iconName: 'clipboard-check',\n  icon: [384, 512, [], \"f46c\", \"M256 0c23.7 0 44.4 12.9 55.4 32l8.6 0c35.3 0 64 28.7 64 64l0 352c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l8.6 0C83.6 12.9 104.3 0 128 0L256 0zm26.9 212.6c-10.7-7.8-25.7-5.4-33.5 5.3l-85.6 117.7-26.5-27.4c-9.2-9.5-24.4-9.8-33.9-.6s-9.8 24.4-.6 33.9l46.4 48c4.9 5.1 11.8 7.8 18.9 7.3s13.6-4.1 17.8-9.8L288.2 246.1c7.8-10.7 5.4-25.7-5.3-33.5zM136 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L136 64z\"]\n};\nvar faShareFromSquare = {\n  prefix: 'fas',\n  iconName: 'share-from-square',\n  icon: [576, 512, [61509, \"share-square\"], \"f14d\", \"M384.5 24l0 72-64 0c-79.5 0-144 64.5-144 144 0 93.4 82.8 134.8 100.6 142.6 2.2 1 4.6 1.4 7.1 1.4l2.5 0c9.8 0 17.8-8 17.8-17.8 0-8.3-5.9-15.5-12.8-20.3-8.9-6.2-19.2-18.2-19.2-40.5 0-45 36.5-81.5 81.5-81.5l30.5 0 0 72c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l136-136c9.4-9.4 9.4-24.6 0-33.9L425.5 7c-6.9-6.9-17.2-8.9-26.2-5.2S384.5 14.3 384.5 24zm-272 72c-44.2 0-80 35.8-80 80l0 256c0 44.2 35.8 80 80 80l256 0c44.2 0 80-35.8 80-80l0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32c0 8.8-7.2 16-16 16l-256 0c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0z\"]\n};\nvar faShareSquare = faShareFromSquare;\nvar faReceipt = {\n  prefix: 'fas',\n  iconName: 'receipt',\n  icon: [384, 512, [129534], \"f543\", \"M14 2.2C22.5-1.7 32.5-.3 39.6 5.8L80 40.4 120.4 5.8c9-7.7 22.3-7.7 31.2 0L192 40.4 232.4 5.8c9-7.7 22.2-7.7 31.2 0L304 40.4 344.4 5.8c7.1-6.1 17.1-7.5 25.6-3.6S384 14.6 384 24l0 464c0 9.4-5.5 17.9-14 21.8s-18.5 2.5-25.6-3.6l-40.4-34.6-40.4 34.6c-9 7.7-22.2 7.7-31.2 0l-40.4-34.6-40.4 34.6c-9 7.7-22.3 7.7-31.2 0L80 471.6 39.6 506.2c-7.1 6.1-17.1 7.5-25.6 3.6S0 497.4 0 488L0 24C0 14.6 5.5 6.1 14 2.2zM104 136c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0zM80 352c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0c-13.3 0-24 10.7-24 24zm24-120c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0z\"]\n};\nvar faEquals = {\n  prefix: 'fas',\n  iconName: 'equals',\n  icon: [448, 512, [62764], \"3d\", \"M32 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 128zm0 192c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 320z\"]\n};\nvar faChevronUp = {\n  prefix: 'fas',\n  iconName: 'chevron-up',\n  icon: [448, 512, [], \"f077\", \"M201.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L224 173.3 54.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z\"]\n};\nvar faVirusSlash = {\n  prefix: 'fas',\n  iconName: 'virus-slash',\n  icon: [576, 512, [], \"e075\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-88.6-88.6c1.7-12.1-2-24.8-11.3-34-31.2-31.2-9.1-84.5 35-84.5 22.1 0 40-17.9 40-40s-17.9-40-40-40c-44.1 0-66.1-53.3-35-84.5 15.6-15.6 15.6-40.9 0-56.6s-40.9-15.6-56.6 0c-31.2 31.2-84.5 9.1-84.5-35 0-22.1-17.9-40-40-40s-40 17.9-40 40c0 44.1-53.3 66.1-84.5 35-9.3-9.3-22-13-34-11.3L41-24.9zM72 216c-22.1 0-40 17.9-40 40s17.9 40 40 40c44.1 0 66.1 53.3 35 84.5-15.6 15.6-15.6 40.9 0 56.6s40.9 15.6 56.6 0c31.2-31.2 84.5-9.1 84.5 35 0 22.1 17.9 40 40 40s40-17.9 40-40c0-21.4 12.6-37.6 29.1-45.1l-240-240C109.6 203.4 93.4 216 72 216z\"]\n};\nvar faSlash = {\n  prefix: 'fas',\n  iconName: 'slash',\n  icon: [576, 512, [], \"f715\", \"M7-25c9.4-9.4 24.6-9.4 33.9 0L569 503c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 9C-2.3-.4-2.3-15.6 7-25z\"]\n};\nvar faExpand = {\n  prefix: 'fas',\n  iconName: 'expand',\n  icon: [448, 512, [], \"f065\", \"M32 32C14.3 32 0 46.3 0 64l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM64 352c0-17.7-14.3-32-32-32S0 334.3 0 352l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0zM448 352c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96z\"]\n};\nvar faNoteSticky = {\n  prefix: 'fas',\n  iconName: 'note-sticky',\n  icon: [448, 512, [62026, \"sticky-note\"], \"f249\", \"M64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 213.5c0 17-6.7 33.3-18.7 45.3L322.7 461.3c-12 12-28.3 18.7-45.3 18.7L64 480zM389.5 304L296 304c-13.3 0-24 10.7-24 24l0 93.5 117.5-117.5z\"]\n};\nvar faStickyNote = faNoteSticky;\nvar faTableColumns = {\n  prefix: 'fas',\n  iconName: 'table-columns',\n  icon: [448, 512, [\"columns\"], \"f0db\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm64 64l0 256 128 0 0-256-128 0zm320 0l-128 0 0 256 128 0 0-256z\"]\n};\nvar faColumns = faTableColumns;\nvar faPersonShelter = {\n  prefix: 'fas',\n  iconName: 'person-shelter',\n  icon: [512, 512, [], \"e54f\", \"M271.9 4.2c-9.8-5.6-21.9-5.6-31.8 0l-224 128C6.2 137.9 0 148.5 0 160L0 480c0 17.7 14.3 32 32 32s32-14.3 32-32L64 178.6 256 68.9 448 178.6 448 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-320c0-11.5-6.2-22.1-16.1-27.8l-224-128zM256 208a40 40 0 1 0 0-80 40 40 0 1 0 0 80zm-8 192l16 0 0 88c0 13.3 10.7 24 24 24s24-10.7 24-24l0-174.5 26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-33.2-61.7C329.7 245.1 294.4 224 256 224s-73.7 21.1-91.9 54.9l-33.2 61.7c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L200 313.5 200 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-88z\"]\n};\nvar faCircleNotch = {\n  prefix: 'fas',\n  iconName: 'circle-notch',\n  icon: [512, 512, [], \"f1ce\", \"M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8-79.3 23.6-137.1 97.1-137.1 184.1 0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256 512 397.4 397.4 512 256 512S0 397.4 0 256c0-116 77.1-213.9 182.9-245.4 16.9-5 34.8 4.6 39.8 21.5z\"]\n};\nvar faWater = {\n  prefix: 'fas',\n  iconName: 'water',\n  icon: [512, 512, [], \"f773\", \"M410.6 124.1c20.7 15.6 46 30.7 74.2 34.5 13.1 1.8 25.2-7.5 27-20.6s-7.5-25.2-20.6-27c-15.9-2.1-33.2-11.3-51.7-25.2-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-18.5 13.9-35.8 23.1-51.7 25.2-13.1 1.8-22.4 13.8-20.6 27s13.8 22.4 27 20.6c28.2-3.8 53.6-18.9 74.2-34.5 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0zm0 144c20.7 15.6 46 30.7 74.2 34.5 13.1 1.8 25.2-7.5 27-20.6s-7.5-25.2-20.6-27c-15.9-2.1-33.2-11.3-51.7-25.2-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-18.5 13.9-35.8 23.1-51.7 25.2-13.1 1.7-22.4 13.8-20.6 27s13.8 22.4 27 20.6c28.2-3.8 53.6-18.9 74.2-34.5 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0zm-71.2 144c21.3-16.1 49.9-16.1 71.2 0 20.7 15.6 46 30.7 74.2 34.5 13.1 1.8 25.2-7.5 27-20.6s-7.5-25.2-20.6-27c-15.9-2.1-33.2-11.3-51.7-25.2-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-18.5 13.9-35.8 23.1-51.7 25.2-13.1 1.8-22.4 13.8-20.6 27s13.8 22.4 27 20.6c28.2-3.8 53.6-18.9 74.2-34.5 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9z\"]\n};\nvar faDeleteLeft = {\n  prefix: 'fas',\n  iconName: 'delete-left',\n  icon: [640, 512, [9003, \"backspace\"], \"f55a\", \"M576 128c0-35.3-28.7-64-64-64L205.3 64c-17 0-33.3 6.7-45.3 18.7L9.4 233.4c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6L160 429.3c12 12 28.3 18.7 45.3 18.7L512 448c35.3 0 64-28.7 64-64l0-256zM284.1 188.1c9.4-9.4 24.6-9.4 33.9 0l33.9 33.9 33.9-33.9c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-33.9 33.9 33.9 33.9c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-33.9-33.9-33.9 33.9c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l33.9-33.9-33.9-33.9c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faBackspace = faDeleteLeft;\nvar faBroomBall = {\n  prefix: 'fas',\n  iconName: 'broom-ball',\n  icon: [576, 512, [\"quidditch\", \"quidditch-broom-ball\"], \"f458\", \"M496 544a80 80 0 1 1 0-160 80 80 0 1 1 0 160zM106.8 277.2c30.6-30.6 73.1-45.9 115.8-42.2L341 353.3c3.7 42.8-11.6 85.2-42.2 115.9-27.4 27.4-64.6 42.8-103.3 42.8L22.1 512c-12.2 0-22.1-9.9-22.1-22.1 0-6.3 2.7-12.3 7.3-16.5L133.7 359.7c4.2-3.7-.4-10.4-5.4-7.9L77.2 377.4c-6.1 3-13.2-1.4-13.2-8.2 0-31.5 12.5-61.8 34.8-84l8-8zm417-270c12.6-10.3 31.1-9.5 42.8 2.2s12.4 30.2 2.2 42.8l-2.2 2.4-192 192 34.8 34.7c4.2 4.2 6.6 10 6.6 16 0 12.5-10.1 22.6-22.6 22.6l-29.1 0-108.3-108.3 0-29.1c0-12.5 10.1-22.6 22.6-22.6 6 0 11.8 2.4 16 6.6l34.8 34.7 192-192 2.4-2.2z\"]\n};\nvar faQuidditch = faBroomBall;\nvar faQuidditchBroomBall = faBroomBall;\nvar faJ = {\n  prefix: 'fas',\n  iconName: 'j',\n  icon: [320, 512, [106], \"4a\", \"M288 32c17.7 0 32 14.3 32 32l0 256c0 88.4-71.6 160-160 160S0 408.4 0 320l0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32c0 53 43 96 96 96s96-43 96-96l0-256c0-17.7 14.3-32 32-32z\"]\n};\nvar faShuttleSpace = {\n  prefix: 'fas',\n  iconName: 'shuttle-space',\n  icon: [576, 512, [\"space-shuttle\"], \"f197\", \"M0 368l0 64c0 26.5 21.5 48 48 48l50 0c40.6 0 80.4-11 115.2-31.9l133.5-80.1-93.3 0-64.9 38.9c-14 8.4-28.9 14.7-44.5 19l0-66.4c9.7-5.6 17.8-13.7 23.4-23.4l198.8 0c67.1 0 127.8-20.6 170.3-70.6 4.6-5.4 4.6-13.3 0-18.8-42.5-50.1-103.2-70.6-170.3-70.6l-198.8 0c-5.6-9.7-13.7-17.8-23.4-23.4l0-66.4c15.6 4.2 30.6 10.6 44.5 19l64.9 38.9 93.3 0-133.5-80.1C178.4 43 138.6 32 98 32L48 32C21.5 32 0 53.5 0 80L0 368zm96 0l0 64-48 0 0-64 48 0zM96 80l0 64-48 0 0-64 48 0zM416 224c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z\"]\n};\nvar faSpaceShuttle = faShuttleSpace;\nvar faYinYang = {\n  prefix: 'fas',\n  iconName: 'yin-yang',\n  icon: [512, 512, [9775], \"f6ad\", \"M224 160a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 352a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm0-448c53 0 96 43 96 96s-43 96-96 96-96 43-96 96 43 96 96 96C150 448 64 362 64 256S150 64 256 64zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faStop = {\n  prefix: 'fas',\n  iconName: 'stop',\n  icon: [448, 512, [9209], \"f04d\", \"M64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32z\"]\n};\nvar faTrowel = {\n  prefix: 'fas',\n  iconName: 'trowel',\n  icon: [576, 512, [], \"e589\", \"M407.9 181.4L277.3 312 342.6 377.4c7.9 7.9 11.1 19.4 8.4 30.3s-10.8 19.6-21.5 22.9l-256 80c-11.4 3.5-23.8 .5-32.2-7.9s-11.5-20.8-7.9-32.2l80-256c3.3-10.7 12-18.9 22.9-21.5s22.4 .5 30.3 8.4L232 266.7 362.6 136.1c-14.3-14.6-14.2-38 .3-52.5l95.4-95.4c26.9-26.9 70.5-26.9 97.5 0s26.9 70.5 0 97.5l-95.4 95.4c-14.5 14.5-37.9 14.6-52.5 .3z\"]\n};\nvar faHandBackFist = {\n  prefix: 'fas',\n  iconName: 'hand-back-fist',\n  icon: [384, 512, [\"hand-rock\"], \"f255\", \"M7.4 253.6C2.6 245.9 0 237.1 0 228l0-36c0-26.5 21.5-48 48-48l16 0 0-80c0-26.5 21.5-48 48-48 17.3 0 32.4 9.1 40.9 22.8 4.3-22.1 23.8-38.8 47.1-38.8 23.4 0 42.9 16.8 47.1 38.9 7.3-4.4 15.8-6.9 24.9-6.9 22.1 0 40.8 15 46.3 35.4 5.5-2.2 11.4-3.4 17.7-3.4 26.5 0 48 21.5 48 48l0 96.9c0 9.9-2.3 19.7-6.8 28.6l-39.6 79.1c-10.8 21.7-33 35.4-57.2 35.4L96 352c-16.5 0-31.8-8.4-40.6-22.4l-48-76zM32 480l0-48c0-17.7 14.3-32 32-32l256 0c17.7 0 32 14.3 32 32l0 48c0 17.7-14.3 32-32 32L64 512c-17.7 0-32-14.3-32-32z\"]\n};\nvar faHandRock = faHandBackFist;\nvar faTemperatureHigh = {\n  prefix: 'fas',\n  iconName: 'temperature-high',\n  icon: [512, 512, [], \"f769\", \"M96 96c0-53 43-96 96-96s96 43 96 96l0 164.7c29.5 26.4 48 64.7 48 107.3 0 79.5-64.5 144-144 144S48 447.5 48 368c0-42.6 18.5-81 48-107.3L96 96zm96 336c35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3L216 96c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 212.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64zM464 80a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM352 80a80 80 0 1 1 160 0 80 80 0 1 1 -160 0z\"]\n};\nvar faGreaterThan = {\n  prefix: 'fas',\n  iconName: 'greater-than',\n  icon: [512, 512, [62769], \"3e\", \"M34.9 50.6c-7.4 16-.4 35.1 15.6 42.5L403.6 256 50.6 419c-16 7.4-23.1 26.4-15.6 42.5s26.4 23 42.5 15.6l416-192c11.3-5.2 18.6-16.6 18.6-29.1s-7.3-23.8-18.6-29.1L77.4 35c-16-7.4-35.1-.4-42.5 15.6z\"]\n};\nvar faCrutch = {\n  prefix: 'fas',\n  iconName: 'crutch',\n  icon: [512, 512, [], \"f7f7\", \"M297.4 9.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-1.4-1.4-158.6 158.6c-18 18-42.4 28.1-67.9 28.1l-59 0c-8.5 0-16.6 3.4-22.6 9.4-61.7 61.7-92.8 92.8-93.3 93.3-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l16-16 0 0 77.3-77.3c6-6 9.4-14.1 9.4-22.6l0-59c0-25.5 10.1-49.9 28.1-67.9L298.7 56 297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zM344 101.3L261.3 184 328 250.7 410.7 168 344 101.3zm-128 128l-30.6 30.6c-6 6-9.4 14.1-9.4 22.6l0 53.5 53.5 0c8.5 0 16.6-3.4 22.6-9.4L282.7 296 216 229.3z\"]\n};\nvar faSeptagon = {\n  prefix: 'fas',\n  iconName: 'septagon',\n  icon: [576, 512, [\"heptagon\"], \"e820\", \"M267.4-31.5c15.9-5.5 33.5-4.6 48.8 2.7l172.4 83 6.3 3.5c14.2 9 24.5 23.3 28.3 39.9l42.6 186.5 1.2 7.2c1.6 14.3-1.7 28.8-9.4 41.1l-4.2 5.9-119.3 149.6c-12.1 15.2-30.6 24.1-50 24.1l-191.3 0c-19.5 0-37.9-8.9-50-24.1L23.5 338.4c-12.1-15.2-16.7-35.2-12.3-54.2l42.6-186.5 2-7c5.6-15.9 17.2-29 32.6-36.4l172.4-83 6.7-2.7z\"]\n};\nvar faHeptagon = faSeptagon;\nvar faStreetView = {\n  prefix: 'fas',\n  iconName: 'street-view',\n  icon: [512, 512, [], \"f21d\", \"M256 0a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM224 160l64 0c35.3 0 64 28.7 64 64l0 48c0 17.7-14.3 32-32 32l-1.8 0-11.1 99.5c-1.8 16.2-15.5 28.5-31.8 28.5l-38.7 0c-16.3 0-30-12.3-31.8-28.5l-11.1-99.5-1.8 0c-17.7 0-32-14.3-32-32l0-48c0-35.3 28.7-64 64-64zM412.4 400.2c-16.1-4.2-34.8-7.6-55.4-10.2l5.3-47.7c22.7 2.9 43.7 6.7 62.1 11.5 22.4 5.8 42.6 13.3 57.8 23.3 14.7 9.6 29.8 24.9 29.8 47s-15.1 37.4-29.8 47c-15.2 9.9-35.5 17.5-57.8 23.3-45.1 11.7-105.3 17.8-168.4 17.8s-123.3-6.1-168.4-17.8C65.2 488.4 45 480.9 29.8 471 15.1 461.4 0 446.1 0 424s15.1-37.4 29.8-47c15.2-9.9 35.5-17.5 57.8-23.3 18.5-4.8 39.5-8.6 62.1-11.5L155 390c-20.6 2.6-39.3 6.1-55.4 10.2-56.6 14.6-56.6 32.9 0 47.5 39.9 10.3 95.8 16.2 156.4 16.2s116.5-5.9 156.4-16.2c56.6-14.6 56.6-32.9 0-47.5z\"]\n};\nvar faWaveSquare = {\n  prefix: 'fas',\n  iconName: 'wave-square',\n  icon: [512, 512, [], \"f83e\", \"M64 96c0-17.7 14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 288 96 0 0-128c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-288-96 0 0 128c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-128z\"]\n};\nvar faAngleLeft = {\n  prefix: 'fas',\n  iconName: 'angle-left',\n  icon: [256, 512, [8249], \"f104\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z\"]\n};\nvar faScrewdriver = {\n  prefix: 'fas',\n  iconName: 'screwdriver',\n  icon: [576, 512, [129691], \"f54a\", \"M352.1 146.7l0-49.6c0-10.7 5.3-20.7 14.2-26.6L485.2-8.7c6.3-4.2 14.8-3.4 20.2 2l45.4 45.5c5.4 5.4 6.2 13.8 2 20.2L473.6 177.8c-5.9 8.9-15.9 14.2-26.6 14.2l-49.6 0-90.7 90.7c15 33.3 8.9 73.9-18.5 101.3L162.1 510.1c-18.7 18.7-49.1 18.7-67.9 0L34.1 449.9c-18.7-18.7-18.7-49.1 0-67.9L160.1 256c27.4-27.4 67.9-33.6 101.3-18.5l90.7-90.7z\"]\n};\nvar faTractor = {\n  prefix: 'fas',\n  iconName: 'tractor',\n  icon: [576, 512, [128668], \"f722\", \"M160 96l0 96 133.4 0-57.6-96-75.8 0zM96 223L96 64c0-17.7 14.3-32 32-32l107.8 0c22.5 0 43.3 11.8 54.9 31.1l77.4 128.9 64 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 48 0c26.5 0 48 21.5 48 48l0 41.5c0 14.2-6.3 27.8-17.3 36.9l-35 29.2c26.5 15.2 44.3 43.7 44.3 76.4 0 48.6-39.4 88-88 88s-88-39.4-88-88c0-14.4 3.5-28 9.6-40l-101.2 0c-3 13.4-7.9 26-14.4 37.7 7.7 9.4 7.2 23.4-1.6 32.2l-22.6 22.6c-8.8 8.8-22.7 9.3-32.2 1.6-9.3 5.2-19.3 9.3-29.8 12.3-1.2 12.1-11.4 21.6-23.9 21.6l-32 0c-12.4 0-22.7-9.5-23.9-21.6-10.5-3-20.4-7.2-29.8-12.3-9.4 7.7-23.4 7.2-32.2-1.6L35.5 453.8c-8.8-8.8-9.3-22.7-1.6-32.2-5.2-9.3-9.3-19.3-12.3-29.8-12.1-1.2-21.6-11.4-21.6-23.9l0-32c0-12.4 9.5-22.7 21.6-23.9 3-10.5 7.2-20.4 12.3-29.8-7.7-9.4-7.2-23.4 1.6-32.2l22.6-22.6c8.8-8.8 22.7-9.3 32.2-1.6 1.9-1 3.7-2 5.7-3zm64 65a64 64 0 1 0 0 128 64 64 0 1 0 0-128zM440 424a40 40 0 1 0 80 0 40 40 0 1 0 -80 0z\"]\n};\nvar faBridgeCircleXmark = {\n  prefix: 'fas',\n  iconName: 'bridge-circle-xmark',\n  icon: [576, 512, [], \"e4cb\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l8 0 0 64-40 0 0 112c37.6 9.4 64 43.2 64 82l0 94c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96 6.4 0 12.7 .6 18.7 1.8 34.7-49.5 92.2-81.8 157.3-81.8 28.6 0 55.6 6.2 80 17.4l0-65.4-40 0 0-64 8 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM424 96l0 64-80 0 0-64 80 0zM296 96l0 64-80 0 0-64 80 0zM88 96l80 0 0 64-80 0 0-64zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faVials = {\n  prefix: 'fas',\n  iconName: 'vials',\n  icon: [512, 512, [], \"f493\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 352c0 53 43 96 96 96s96-43 96-96l0-352 64 0 0 352c0 53 43 96 96 96s96-43 96-96l0-352c17.7 0 32-14.3 32-32S497.7 0 480 0L32 0zM160 64l0 128-64 0 0-128 64 0zm256 0l0 128-64 0 0-128 64 0z\"]\n};\nvar faStethoscope = {\n  prefix: 'fas',\n  iconName: 'stethoscope',\n  icon: [576, 512, [129658], \"f0f1\", \"M32 48C32 21.5 53.5 0 80 0l48 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 128c0 53 43 96 96 96s96-43 96-96l0-128-32 0c-17.7 0-32-14.3-32-32S238.3 0 256 0l48 0c26.5 0 48 21.5 48 48l0 144c0 77.4-55 142-128 156.8l0 19.2c0 61.9 50.1 112 112 112s112-50.1 112-112l0-85.5c-37.3-13.2-64-48.7-64-90.5 0-53 43-96 96-96s96 43 96 96c0 41.8-26.7 77.4-64 90.5l0 85.5c0 97.2-78.8 176-176 176S160 465.2 160 368l0-19.2C87 334 32 269.4 32 192L32 48zM480 224a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faPodcast = {\n  prefix: 'fas',\n  iconName: 'podcast',\n  icon: [448, 512, [], \"f2ce\", \"M336 359.8c39.1-32.3 64-81.1 64-135.8 0-97.2-78.8-176-176-176S48 126.8 48 224C48 278.7 72.9 327.5 112 359.8 112.4 377.4 115.2 400.2 118.4 421.6 48 383.9 0 309.5 0 224 0 100.3 100.3 0 224 0S448 100.3 448 224c0 85.6-48 159.9-118.5 197.6 3.3-21.4 6-44.2 6.4-61.8zm-14-53.4c-8.3-12.6-19.2-21.6-30.4-27.8-2.1-1.1-4.2-2.2-6.3-3.2 11.7-13.9 18.8-31.9 18.8-51.5 0-44.2-35.8-80-80-80s-80 35.8-80 80c0 19.6 7.1 37.6 18.8 51.5-2.1 1-4.2 2-6.3 3.2-11.2 6.2-22.1 15.2-30.4 27.8-18.8-22.3-30.1-51-30.1-82.4 0-70.7 57.3-128 128-128s128 57.3 128 128c0 31.4-11.3 60.2-30.1 82.4zM224 312c32.9 0 64 8.6 64 43.8 0 33-12.9 104.1-20.6 132.9-5.1 19-24.5 23.4-43.4 23.4s-38.2-4.4-43.4-23.4c-7.8-28.5-20.6-99.7-20.6-132.8 0-35.1 31.1-43.8 64-43.8zm0-128a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"]\n};\nvar faArrowUpRightDots = {\n  prefix: 'fas',\n  iconName: 'arrow-up-right-dots',\n  icon: [512, 512, [], \"e4b7\", \"M96 32C78.3 32 64 46.3 64 64S78.3 96 96 96L114.7 96 9.4 201.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 141.3 160 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32L96 32zM403.8 70.1a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0zM279.7 194.2a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0zm162.2-38.1a38.1 38.1 0 1 0 0 76.2 38.1 38.1 0 1 0 0-76.2zM156.2 317.8a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0zm161.6-38.1a38.1 38.1 0 1 0 0 76.2 38.1 38.1 0 1 0 0-76.2zm86.1 38.1a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0zM70.1 403.8a38.1 38.1 0 1 0 0 76.2 38.1 38.1 0 1 0 0-76.2zm86.1 38.1a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0zm161.6-38.1a38.1 38.1 0 1 0 0 76.2 38.1 38.1 0 1 0 0-76.2zm86.1 38.1a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0z\"]\n};\nvar faChessQueen = {\n  prefix: 'fas',\n  iconName: 'chess-queen',\n  icon: [512, 512, [9819], \"f445\", \"M256 80a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM5.5 185L128 384 71.8 454.3c-5 6.3-7.8 14.1-7.8 22.2 0 19.6 15.9 35.5 35.5 35.5l312.9 0c19.6 0 35.5-15.9 35.5-35.5 0-8.1-2.7-15.9-7.8-22.2L384 384 506.5 185c3.6-5.9 5.5-12.7 5.5-19.6l0-.6c0-20.3-16.5-36.8-36.8-36.8-7.3 0-14.4 2.2-20.4 6.2l-16.9 11.3c-12.7 8.5-29.6 6.8-40.4-4l-34.1-34.1C356.1 100.1 346.2 96 336 96s-20.1 4.1-27.3 11.3l-30.1 30.1c-12.5 12.5-32.8 12.5-45.3 0l-30.1-30.1C196.1 100.1 186.2 96 176 96s-20.1 4.1-27.3 11.3l-34.1 34.1c-10.8 10.8-27.7 12.5-40.4 4L57.3 134.2c-6.1-4-13.2-6.2-20.4-6.2-20.3 0-36.8 16.5-36.8 36.8l0 .6c0 6.9 1.9 13.7 5.5 19.6z\"]\n};\nvar faAnchorCircleExclamation = {\n  prefix: 'fas',\n  iconName: 'anchor-circle-exclamation',\n  icon: [640, 512, [], \"e4ab\", \"M320.5 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-32-96c-53 0-96 43-96 96 0 41.8 26.7 77.4 64 90.5l0 257.9c-62.9-14.3-110.2-69.7-111.9-136.5l16.1 14.1c10 8.7 25.1 7.7 33.9-2.3s7.7-25.1-2.3-33.9l-64-56c-9-7.9-22.6-7.9-31.6 0l-64 56c-10 8.7-11 23.9-2.3 33.9s23.9 11 33.9 2.3l16.2-14.2c2.1 113.1 94.4 204.1 208 204.1 16.6 0 32.7-1.9 48.2-5.6-20.3-30.5-32.2-67-32.2-106.4 0-27.3 5.7-53.3 16-76.9l0-136.6c37.3-13.2 64-48.7 64-90.5 0-53-43-96-96-96zm208 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nvar faEllipsisVertical = {\n  prefix: 'fas',\n  iconName: 'ellipsis-vertical',\n  icon: [128, 512, [\"ellipsis-v\"], \"f142\", \"M64 144a56 56 0 1 1 0-112 56 56 0 1 1 0 112zm0 224c30.9 0 56 25.1 56 56s-25.1 56-56 56-56-25.1-56-56 25.1-56 56-56zm56-112c0 30.9-25.1 56-56 56s-56-25.1-56-56 25.1-56 56-56 56 25.1 56 56z\"]\n};\nvar faEllipsisV = faEllipsisVertical;\nvar faHeartCircleExclamation = {\n  prefix: 'fas',\n  iconName: 'heart-circle-exclamation',\n  icon: [576, 512, [], \"e4fe\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM432 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 228a20 20 0 1 0 0-40 20 20 0 1 0 0 40zm0-180c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z\"]\n};\nvar faBuildingCircleExclamation = {\n  prefix: 'fas',\n  iconName: 'building-circle-exclamation',\n  icon: [576, 512, [], \"e4d3\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-10.5-14.6-19-30.7-25.1-48l-74.9 0 0-80c0-17.7 14.3-32 32-32l32 0c2 0 4 .2 5.9 .5 6-23.6 16.3-45.4 30.1-64.5l-4 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 4c27.5-19.8 60.3-32.4 96-35.4L416 64c0-35.3-28.7-64-64-64L96 0zm32 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nvar faPersonArrowUpFromLine = {\n  prefix: 'fas',\n  iconName: 'person-arrow-up-from-line',\n  icon: [576, 512, [], \"e539\", \"M192-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM318.3 299.1l-46.3-62.4 0 243.3 272 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 544c-17.7 0-32-14.3-32-32s14.3-32 32-32l80 0 0-243.3-46.3 62.4c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95C110 132 149.7 112 192 112s82 20 107.2 53.9l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6zM208 480l0-128c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 128 32 0zM566.6 102.6c-12.5 12.5-32.8 12.5-45.3 0L496 77.3 496 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-146.7-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l80-80c12.5-12.5 32.8-12.5 45.3 0l80 80c12.5 12.5 12.5 32.8 0 45.3z\"]\n};\nvar faNotEqual = {\n  prefix: 'fas',\n  iconName: 'not-equal',\n  icon: [448, 512, [], \"f53e\", \"M378.6 81.8c9.8-14.7 5.8-34.6-8.9-44.4s-34.6-5.8-44.4 8.9L270.9 128 32 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l196.2 0-85.3 128-110.9 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l68.2 0-30.8 46.2c-9.8 14.7-5.8 34.6 8.9 44.4s34.6 5.8 44.4-8.9L177.1 384 416 384c17.7 0 32-14.3 32-32s-14.3-32-32-32l-196.2 0 85.3-128 110.9 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-68.2 0 30.8-46.2z\"]\n};\nvar faTrainTram = {\n  prefix: 'fas',\n  iconName: 'train-tram',\n  icon: [384, 512, [128650], \"e5b4\", \"M0 8C0-5.3 10.7-16 24-16l336 0c13.3 0 24 10.7 24 24l0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8-120 0 0 64 40 0c53 0 96 43 96 96l0 160c0 31.2-14.9 59-38 76.5l64.3 76c8.6 10.1 7.3 25.3-2.8 33.8s-25.3 7.3-33.8-2.8l-74.6-88.1c-3.6 .4-7.3 .6-11.1 .6l-128 0c-3.8 0-7.5-.2-11.1-.6L42.3 535.5c-8.6 10.1-23.7 11.4-33.8 2.8s-11.4-23.7-2.8-33.8l64.3-76C46.9 411 32 383.2 32 352l0-160c0-53 43-96 96-96l40 0 0-64-120 0 0 8c0 13.3-10.7 24-24 24S0 53.3 0 40L0 8zM128 160c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32l-128 0zm32 192a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faPlaneDeparture = {\n  prefix: 'fas',\n  iconName: 'plane-departure',\n  icon: [576, 512, [128747], \"f5b0\", \"M372 143.9L172.7 40.2c-8-4.1-17.3-4.8-25.7-1.7l-41.1 15c-10.3 3.7-13.8 16.4-7.1 25L200.3 206.4 100.1 242.8 40 206.2c-6.2-3.8-13.8-4.5-20.7-2.1L3 210.1c-9.4 3.4-13.4 14.5-8.3 23.1l53.6 91.8c15.6 26.7 48.1 38.4 77.1 27.8l12.9-4.7 0 0 398.4-145c29.1-10.6 44-42.7 33.5-71.8s-42.7-44-71.8-33.5L372 143.9zM32.2 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-512 0z\"]\n};\nvar faRightToBracket = {\n  prefix: 'fas',\n  iconName: 'right-to-bracket',\n  icon: [512, 512, [\"sign-in-alt\"], \"f2f6\", \"M345 273c9.4-9.4 9.4-24.6 0-33.9L201 95c-6.9-6.9-17.2-8.9-26.2-5.2S160 102.3 160 112l0 80-112 0c-26.5 0-48 21.5-48 48l0 32c0 26.5 21.5 48 48 48l112 0 0 80c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2L345 273zm7 143c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c53 0 96-43 96-96l0-256c0-53-43-96-96-96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-64 0z\"]\n};\nvar faSignInAlt = faRightToBracket;\nvar faSdCard = {\n  prefix: 'fas',\n  iconName: 'sd-card',\n  icon: [384, 512, [], \"f7c2\", \"M384 64c0-35.3-28.7-64-64-64L125.3 0C108.3 0 92 6.7 80 18.7L18.7 80C6.7 92 0 108.3 0 125.3L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384zM160 88l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24zm88 0l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24zm88 0l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faHouseCircleExclamation = {\n  prefix: 'fas',\n  iconName: 'house-circle-exclamation',\n  icon: [640, 512, [], \"e50a\", \"M496 544a144 144 0 1 1 0-288 144 144 0 1 1 0 288zM268.6 6.5c12.2-9.3 29.7-8.7 41.2 2l217.6 202c-10.2-1.7-20.7-2.6-31.3-2.6-78.6 0-146.1 47.2-175.8 114.8-5.1-1.8-10.5-2.8-16.2-2.8l-32 0c-26.5 0-48 21.5-48 48l0 96 91 0c6.1 17.3 14.6 33.4 25.1 48L144 512c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208 2.4-2zM496 444a20 20 0 1 0 0 40 20 20 0 1 0 0-40zm0-140c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16 8.8 0 16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z\"]\n};\nvar faShekelSign = {\n  prefix: 'fas',\n  iconName: 'shekel-sign',\n  icon: [448, 512, [8362, \"ils\", \"shekel\", \"sheqel\", \"sheqel-sign\"], \"f20b\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-352 128 0c35.3 0 64 28.7 64 64l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-70.7-57.3-128-128-128L32 32zM320 480c70.7 0 128-57.3 128-128l0-288c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 288c0 35.3-28.7 64-64 64l-128 0 0-224c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 256c0 17.7 14.3 32 32 32l160 0z\"]\n};\nvar faIls = faShekelSign;\nvar faShekel = faShekelSign;\nvar faSheqel = faShekelSign;\nvar faSheqelSign = faShekelSign;\nvar faRadio = {\n  prefix: 'fas',\n  iconName: 'radio',\n  icon: [512, 512, [128251], \"f8d7\", \"M494.8 15c12.7-3.7 20-17.1 16.3-29.8S494-34.8 481.3-31L51.8 94.9C42.4 97.6 33.9 102.1 26.6 108 10.5 119.7 0 138.6 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L218.5 96 494.8 15zM368 208a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM64 248c0-13.3 10.7-24 24-24l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 272c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 368c-13.3 0-24-10.7-24-24z\"]\n};\nvar faHandDots = {\n  prefix: 'fas',\n  iconName: 'hand-dots',\n  icon: [512, 512, [\"allergies\"], \"f461\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 272c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4S-3.6 325.7 12.4 341L124.8 448c43.1 41.1 100.4 64 160 64l19.2 0c97.2 0 176-78.8 176-176l0-208c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208zM200 352a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40 88a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm-88 24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faAllergies = faHandDots;\nvar faBookSkull = {\n  prefix: 'fas',\n  iconName: 'book-skull',\n  icon: [448, 512, [\"book-dead\"], \"f6b7\", \"M96 512l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-66.7c18.6-6.6 32-24.4 32-45.3l0-288c0-26.5-21.5-48-48-48L96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96zM64 416c0-17.7 14.3-32 32-32l256 0 0 64-256 0c-17.7 0-32-14.3-32-32zM272 163.2l0 12.8c0 8.8-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16l0-12.8c-19.4-11.7-32-30.3-32-51.2 0-35.3 35.8-64 80-64s80 28.7 80 64c0 20.9-12.6 39.5-32 51.2zM208 112a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm74.2 95.7c4.6 10.1 .1 21.9-9.9 26.5l-47.9 21.8 47.9 21.8c10.1 4.6 14.5 16.4 9.9 26.5s-16.4 14.5-26.5 9.9L224 294 144.3 330.2c-10.1 4.6-21.9 .1-26.5-9.9s-.1-21.9 9.9-26.5l47.9-21.8-47.9-21.8c-10.1-4.6-14.5-16.4-9.9-26.5s16.4-14.5 26.5-9.9L224 250 303.7 213.8c10.1-4.6 21.9-.1 26.5 9.9z\"]\n};\nvar faBookDead = faBookSkull;\nvar faUnlockKeyhole = {\n  prefix: 'fas',\n  iconName: 'unlock-keyhole',\n  icon: [384, 512, [\"unlock-alt\"], \"f13e\", \"M192 32c-35.3 0-64 28.7-64 64l0 64 192 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64l0-64c0-70.7 57.3-128 128-128 63.5 0 116.1 46.1 126.2 106.7 2.9 17.4-8.8 33.9-26.3 36.9s-33.9-8.8-36.9-26.3C250 55.1 223.7 32 192 32zm40 328c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0z\"]\n};\nvar faUnlockAlt = faUnlockKeyhole;\nvar faFileArrowUp = {\n  prefix: 'fas',\n  iconName: 'file-arrow-up',\n  icon: [384, 512, [\"file-upload\"], \"f574\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM209 263c-9.4-9.4-24.6-9.4-33.9 0l-64 64c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l23-23 0 86.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-86.1 23 23c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-64-64z\"]\n};\nvar faFileUpload = faFileArrowUp;\nvar faFaceGrinTears = {\n  prefix: 'fas',\n  iconName: 'face-grin-tears',\n  icon: [640, 512, [128514, \"grin-tears\"], \"f588\", \"M554.8 203.4l16.3 2.3C547.7 88.4 444.2 0 320 0S92.3 88.4 68.9 205.7l16.3-2.3c37-5.3 68.6 26.4 63.4 63.4l-6.7 46.7c-4.1 29-21.6 53.2-45.8 66.8 43.7 78.5 127.6 131.7 223.8 131.7s180.1-53.1 223.8-131.7c-24.1-13.5-41.6-37.8-45.8-66.8l-6.7-46.7c-5.3-37 26.4-68.6 63.4-63.4zM470.3 326.9C447.9 388.2 389.1 432 320 432S192.1 388.2 169.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1c11.9-3.7 23.9 6.3 19.6 18.1zM212 208l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28zm188-28c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zM640 300.6c0-25.6-18.8-47.3-44.1-50.9L549.1 243c-10.6-1.5-19.6 7.5-18.1 18.1l6.7 46.7c3.6 25.3 25.3 44.1 50.9 44.1 28.4 0 51.4-23 51.4-51.4zm-640 0C0 329 23 352 51.4 352 77 352 98.7 333.2 102.3 307.9l6.7-46.7c1.5-10.6-7.5-19.6-18.1-18.1l-46.7 6.7C18.8 253.3 0 275 0 300.6z\"]\n};\nvar faGrinTears = faFaceGrinTears;\nvar faPenToSquare = {\n  prefix: 'fas',\n  iconName: 'pen-to-square',\n  icon: [512, 512, [\"edit\"], \"f044\", \"M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L368 46.1 465.9 144 490.3 119.6c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.7 15.7-7.4 21.9-13.5L432 177.9 334.1 80 172.4 241.7zM96 64C43 64 0 107 0 160L0 416c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 64z\"]\n};\nvar faEdit = faPenToSquare;\nvar faEarthEurope = {\n  prefix: 'fas',\n  iconName: 'earth-europe',\n  icon: [512, 512, [\"globe-europe\"], \"f7a2\", \"M256.2 48c114.8 .1 207.8 93.2 207.8 208 0 22.1-3.4 43.4-9.8 63.4-2 .4-4.1 .6-6.2 .6l-2.7 0c-8.5 0-16.6-3.4-22.6-9.4l-29.3-29.3c-6-6-9.4-14.1-9.4-22.6l0-50.7c0-8.8 7.2-16 16-16s16-7.2 16-16-7.2-16-16-16l-24 0c-13.3 0-24 10.7-24 24s-10.7 24-24 24l-56 0c-8.8 0-16 7.2-16 16s-7.2 16-16 16l-25.4 0c-12.5 0-22.6-10.1-22.6-22.6 0-6 2.4-11.8 6.6-16l70.1-70.1c2.1-2.1 3.3-5 3.3-8 0-6.2-5.1-11.3-11.3-11.3l-14.1 0c-12.5 0-22.6-10.1-22.6-22.6 0-6 2.4-11.8 6.6-16l23.1-23.1c.8-.8 1.6-1.5 2.5-2.2zM438.4 356.1c-32.8 59.6-93.9 101.4-165.2 107.2-.7-2.3-1.1-4.8-1.1-7.3 0-13.3-10.7-24-24-24l-26.7 0c-8.5 0-16.6-3.4-22.6-9.4l-29.3-29.3c-6-6-9.4-14.1-9.4-22.6l0-66.7c0-17.7 14.3-32 32-32l98.7 0c8.5 0 16.6 3.4 22.6 9.4l29.3 29.3c6 6 14.1 9.4 22.6 9.4l5.5 0c8.5 0 16.6 3.4 22.6 9.4l16 16c4.2 4.2 10 6.6 16 6.6 4.8 0 9.3 1.5 13 4.1zM256 512l26.2-1.3c-8.6 .9-17.3 1.3-26.2 1.3zm26.2-1.3C411.3 497.6 512 388.6 512 256 512 114.6 397.4 0 256 0l0 0C114.6 0 0 114.6 0 256 0 383.5 93.2 489.3 215.3 508.8 228.5 510.9 242.1 512 256 512zM187.3 123.3l-32 32c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l32-32c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faGlobeEurope = faEarthEurope;\nvar faFaceGrinBeamSweat = {\n  prefix: 'fas',\n  iconName: 'face-grin-beam-sweat',\n  icon: [576, 512, [128517, \"grin-beam-sweat\"], \"f583\", \"M546.2-.1c14.7 17.8 29.8 40.1 29.8 64.1 0 36.4-27.6 64-64 64s-64-27.6-64-64c0-24 15.2-46.3 29.8-64.1 8.8-10.7 18.5-20.8 29-30 3-2.6 7.4-2.6 10.4 0 10.5 9.1 20.1 19.3 29 30zM288 0c42.5 0 82.6 10.4 117.8 28.7-3.6 10.9-5.8 22.7-5.8 35.3 0 62.9 49.1 112 112 112 6.4 0 12.7-.5 18.8-1.5 8.6 25.6 13.2 53 13.2 81.5 0 141.4-114.6 256-256 256S32 397.4 32 256 146.6 0 288 0zM418.7 308.9C379.5 321.1 335.1 328 288 328s-91.5-6.9-130.7-19.1c-11.9-3.7-23.9 6.3-19.6 18.1 22.4 61.3 81.3 105.1 150.3 105.1s127.9-43.8 150.3-105.1c4.3-11.8-7.7-21.8-19.6-18.1zM208 180c15.5 0 28 12.5 28 28l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-37.6-30.4-68-68-68s-68 30.4-68 68l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-15.5 12.5-28 28-28zm132 28c0-15.5 12.5-28 28-28s28 12.5 28 28l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-37.6-30.4-68-68-68s-68 30.4-68 68l0 8c0 11 9 20 20 20s20-9 20-20l0-8z\"]\n};\nvar faGrinBeamSweat = faFaceGrinBeamSweat;\nvar faCircleHalfStroke = {\n  prefix: 'fas',\n  iconName: 'circle-half-stroke',\n  icon: [512, 512, [9680, \"adjust\"], \"f042\", \"M448 256c0-106-86-192-192-192l0 384c106 0 192-86 192-192zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"]\n};\nvar faAdjust = faCircleHalfStroke;\nvar faPersonMilitaryToPerson = {\n  prefix: 'fas',\n  iconName: 'person-military-to-person',\n  icon: [512, 512, [], \"e54c\", \"M71 12.5c-8.6 1-15 8.2-15 16.8 0 9.3 7.5 16.8 16.7 16.9l111.4 0c8.8-.1 15.9-7.2 15.9-16L200 16c0-9.5-8.3-17-17.8-15.9L71 12.5zM189.5 78.1l-122.9 0c-1.6 5.7-2.5 11.7-2.5 17.9 0 35.3 28.7 64 64 64s64-28.7 64-64c0-6.2-.9-12.2-2.5-17.9zM32 256l0 32c0 17.7 14.3 32 32 32l128 0c1.8 0 3.5-.1 5.2-.4L53 208.6C40.1 220.3 32 237.2 32 256zm190.2 42.5c1.1-3.3 1.8-6.8 1.8-10.5l0-32c0-35.3-28.7-64-64-64l-64 0c-3.7 0-7.4 .3-10.9 .9L222.2 298.5zM384 160a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-35.3 0-64 28.7-64 64l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32c0-35.3-28.7-64-64-64l-64 0zM215.8 450.1c5.2-4.6 8.2-11.1 8.2-18.1s-3-13.5-8.2-18.1l-64-56c-7.1-6.2-17.1-7.7-25.7-3.8S112 366.6 112 376l0 32-88 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l88 0 0 32c0 9.4 5.5 18 14.1 21.9s18.6 2.4 25.7-3.8l64-56zM288 431.9c0 6.9 3 13.5 8.1 18.1l64 56.4c7.1 6.2 17.1 7.8 25.7 3.9S400 497.8 400 488.4l0-32.4 88 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-88 0 0-32c0-9.4-5.5-18-14.1-21.9s-18.6-2.4-25.7 3.8l-64 56c-5.2 4.5-8.2 11.1-8.2 18z\"]\n};\nvar faTableCellsColumnLock = {\n  prefix: 'fas',\n  iconName: 'table-cells-column-lock',\n  icon: [640, 512, [], \"e678\", \"M256 224l0 192 64 0 0-192-64 0zm256-79c-46.7 5.8-85.6 36.8-102.7 79l-25.3 0 0 90.8c-10.1 15.2-16 33.4-16 53.1l0 96c0 5.5 .5 10.9 1.3 16.1L128 480c-35.3 0-64-28.7-64-64L64 96c0-35.3 28.7-64 64-64l320 0c35.3 0 64 28.7 64 64l0 49zM128 224l0 192 64 0 0-192-64 0zm432 48.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM416 368c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"]\n};\nvar faTruckFieldUn = {\n  prefix: 'fas',\n  iconName: 'truck-field-un',\n  icon: [640, 512, [], \"e58e\", \"M96 32C60.7 32 32 60.7 32 96l0 32c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l0 48c0 21.1 13.7 39.1 32.6 45.5-.4 3.4-.6 7-.6 10.5 0 48.6 39.4 88 88 88s88-39.4 88-88c0-2.7-.1-5.4-.4-8l144.7 0c-.2 2.6-.4 5.3-.4 8 0 48.6 39.4 88 88 88s88-39.4 88-88c0-2.7-.1-5.4-.4-8l.4 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-24.7 0-1.7-4.2-43.8-106.3c-12.3-30-41.6-49.5-74-49.5l-40.4 0C364.4 44.9 343.7 32 320 32L96 32zM384 224l0-96 31.9 0c6.5 0 12.3 3.9 14.8 9.9l35.4 86.1-82.1 0zM152 352a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm280 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM256.6 132.9l27.4 41 0-29.9c0-11 9-20 20-20s20 9 20 20l0 96c0 8.8-5.8 16.6-14.2 19.1s-17.5-.7-22.4-8l-27.4-41 0 29.9c0 11-9 20-20 20s-20-9-20-20l0-96c0-8.8 5.8-16.6 14.2-19.1s17.5 .7 22.4 8zM132 144l0 64c0 6.6 5.4 12 12 12s12-5.4 12-12l0-64c0-11 9-20 20-20s20 9 20 20l0 64c0 28.7-23.3 52-52 52s-52-23.3-52-52l0-64c0-11 9-20 20-20s20 9 20 20z\"]\n};\nvar faClock = {\n  prefix: 'fas',\n  iconName: 'clock',\n  icon: [512, 512, [128339, \"clock-four\"], \"f017\", \"M256 0a256 256 0 1 1 0 512 256 256 0 1 1 0-512zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nvar faClockFour = faClock;\nvar faBook = {\n  prefix: 'fas',\n  iconName: 'book',\n  icon: [448, 512, [128212], \"f02d\", \"M384 512L96 512c-53 0-96-43-96-96L0 96C0 43 43 0 96 0L400 0c26.5 0 48 21.5 48 48l0 288c0 20.9-13.4 38.7-32 45.3l0 66.7c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0zM96 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0 0-64-256 0zm32-232c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0c-13.3 0-24 10.7-24 24zm24 72c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0z\"]\n};\nvar faFaceLaughWink = {\n  prefix: 'fas',\n  iconName: 'face-laugh-wink',\n  icon: [512, 512, [\"laugh-wink\"], \"f59c\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM101.6 314c-3.7-13.7 7.5-26 21.7-26l265.4 0c14.2 0 25.4 12.3 21.7 26-18.5 68-80.6 118-154.4 118S120 382 101.6 314zM144 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm164 8c0 11-9 20-20 20s-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0c-11 0-20 9-20 20z\"]\n};\nvar faLaughWink = faFaceLaughWink;\nvar faCloudMeatball = {\n  prefix: 'fas',\n  iconName: 'cloud-meatball',\n  icon: [512, 512, [], \"f73b\", \"M0 224c0 53 43 96 96 96l26.9 0c3.5-12.1 10.1-23.3 19.2-32.4l1.4-1.4c15-15 35.3-22.9 56.1-22.2 14.2-15.1 34.2-23.9 55.4-23.9l2 0c21.1 0 41.1 8.8 55.4 23.9 20.8-.6 41.1 7.3 56.1 22.2l1.4 1.4c9.2 9.2 15.7 20.4 19.2 32.4l26.9 0c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0 1.1-5.2 1.6-10.5 1.6-16 0-44.2-35.8-80-80-80-24.3 0-46.1 10.9-60.8 28-18.7-35.7-56.1-60-99.2-60-61.9 0-112 50.1-112 112 0 7.1 .7 14.1 1.9 20.8-38.3 12.6-65.9 48.7-65.9 91.2zM156.5 424.3c9.5 6.3 14.2 17.7 11.9 28.8-1.8 9.2 1 18.7 7.7 25.3l1.4 1.4c6.6 6.6 16.1 9.5 25.3 7.7 11.1-2.2 22.5 2.5 28.8 11.9 5.2 7.8 14 12.5 23.3 12.5l2 0c9.4 0 18.1-4.7 23.3-12.5 6.3-9.5 17.7-14.2 28.8-11.9 9.2 1.8 18.7-1 25.3-7.7l1.4-1.4c6.6-6.6 9.5-16.1 7.7-25.3-2.2-11.1 2.5-22.5 11.9-28.8 7.8-5.2 12.5-14 12.5-23.3l0-2c0-9.4-4.7-18.1-12.5-23.3-9.5-6.3-14.2-17.7-11.9-28.8 1.8-9.2-1-18.7-7.7-25.3l-1.4-1.4c-6.6-6.6-16.1-9.5-25.3-7.7-11.1 2.2-22.5-2.5-28.8-11.9-5.2-7.8-14-12.5-23.3-12.5l-2 0c-9.4 0-18.1 4.7-23.3 12.5-6.3 9.5-17.7 14.2-28.8 11.9-9.2-1.8-18.7 1-25.3 7.7l-1.4 1.4c-6.6 6.6-9.5 16.1-7.7 25.3 2.2 11.1-2.5 22.5-11.9 28.8-7.8 5.2-12.5 14-12.5 23.3l0 2c0 9.4 4.7 18.1 12.5 23.3zM48 448a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm416 0a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"]\n};\nvar faChartArea = {\n  prefix: 'fas',\n  iconName: 'chart-area',\n  icon: [512, 512, [\"area-chart\"], \"f1fe\", \"M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zM240 96c6.7 0 13.1 2.8 17.7 7.8L328.8 181.3 375 135c9.4-9.4 24.6-9.4 33.9 0l64 64c4.5 4.5 7 10.6 7 17l0 112c0 13.3-10.7 24-24 24l-304 0c-13.3 0-24-10.7-24-24l0-112c0-6 2.3-11.8 6.3-16.2l88-96c4.5-5 11-7.8 17.7-7.8z\"]\n};\nvar faAreaChart = faChartArea;\nvar faRupiahSign = {\n  prefix: 'fas',\n  iconName: 'rupiah-sign',\n  icon: [512, 512, [], \"e23d\", \"M0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144 0 54.3-30 101.5-74.4 126.1l41 136.7c5.1 16.9-4.5 34.8-21.5 39.8s-34.8-4.5-39.8-21.5L120.1 319.8c-2.7 .1-5.4 .2-8.1 .2l-48 0 0 128c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80l-48 0 0 160zm256-32l80 0c61.9 0 112 50.1 112 112S461.9 448 400 448l-48 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32zm80 160c26.5 0 48-21.5 48-48s-21.5-48-48-48l-48 0 0 96 48 0z\"]\n};\nvar faTextWidth = {\n  prefix: 'fas',\n  iconName: 'text-width',\n  icon: [448, 512, [], \"f035\", \"M40 0C17.9 0 0 17.9 0 40L0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 128 0 0 160-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-160 128 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-56c0-22.1-17.9-40-40-40L40 0zm78.6 406.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4 229.5 0-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4-229.5 0 9.4-9.4z\"]\n};\nvar faSatellite = {\n  prefix: 'fas',\n  iconName: 'satellite',\n  icon: [512, 512, [128752], \"f7bf\", \"M199 7c9.4-9.4 24.6-9.4 33.9 0l89.4 89.4 55-55c12.5-12.5 32.8-12.5 45.3 0l48 48c12.5 12.5 12.5 32.8 0 45.3l-55 55 89.4 89.4c9.4 9.4 9.4 24.6 0 33.9l-96 96c-9.4 9.4-24.6 9.4-33.9 0l-89.4-89.4-15.5 15.5c11.4 24.6 17.8 52 17.8 80.9 0 31.7-7.7 61.5-21.2 87.8-4.7 9-16.7 10.3-23.8 3.1l-96.3-96.3-60 60c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l60-60-96.3-96.3c-7.2-7.2-5.9-19.2 3.1-23.8 26.3-13.6 56.2-21.2 87.8-21.2 28.9 0 56.3 6.4 80.9 17.8L192.4 226.3 103 137c-9.4-9.4-9.4-24.6 0-33.9L199 7zm17 50.9l-62.1 62.1 72.4 72.4 62.1-62.1-72.4-72.4zM392 358.1l62.1-62.1-72.4-72.4-62.1 62.1 72.4 72.4z\"]\n};\nvar faMagnifyingGlassMinus = {\n  prefix: 'fas',\n  iconName: 'magnifying-glass-minus',\n  icon: [512, 512, [\"search-minus\"], \"f010\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM136 184c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nvar faSearchMinus = faMagnifyingGlassMinus;\nvar faPeopleGroup = {\n  prefix: 'fas',\n  iconName: 'people-group',\n  icon: [512, 512, [], \"e533\", \"M256 0a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm96 312c0 25-12.7 47-32 59.9l0 92.1c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-92.1C172.7 359 160 337 160 312l0-40c0-53 43-96 96-96s96 43 96 96l0 40zM96 32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zm16 240l0 32c0 32.5 12.1 62.1 32 84.7l0 75.3c0 1.2 0 2.5 .1 3.7-8.5 7.6-19.7 12.3-32.1 12.3l-32 0c-26.5 0-48-21.5-48-48l0-56.6C12.9 364.4 0 343.7 0 320l0-32c0-53 43-96 96-96 12.7 0 24.8 2.5 35.9 6.9-12.6 21.4-19.9 46.4-19.9 73.1zM368 464l0-75.3c19.9-22.5 32-52.2 32-84.7l0-32c0-26.7-7.3-51.6-19.9-73.1 11.1-4.5 23.2-6.9 35.9-6.9 53 0 96 43 96 96l0 32c0 23.7-12.9 44.4-32 55.4l0 56.6c0 26.5-21.5 48-48 48l-32 0c-12.3 0-23.6-4.6-32.1-12.3 0-1.2 .1-2.5 .1-3.7zM416 32a56 56 0 1 1 0 112 56 56 0 1 1 0-112z\"]\n};\nvar faSquareBinary = {\n  prefix: 'fas',\n  iconName: 'square-binary',\n  icon: [448, 512, [], \"e69b\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm144 4c-24.3 0-44 19.7-44 44l0 48c0 24.3 19.7 44 44 44l32 0c24.3 0 44-19.7 44-44l0-48c0-24.3-19.7-44-44-44l-32 0zm-4 44c0-2.2 1.8-4 4-4l32 0c2.2 0 4 1.8 4 4l0 48c0 2.2-1.8 4-4 4l-32 0c-2.2 0-4-1.8-4-4l0-48zm140-44c-11 0-20 9-20 20 0 9.7 6.9 17.7 16 19.6l0 76.4c0 11 9 20 20 20s20-9 20-20l0-96c0-11-9-20-20-20l-16 0zM132 296c0 9.7 6.9 17.7 16 19.6l0 76.4c0 11 9 20 20 20s20-9 20-20l0-96c0-11-9-20-20-20l-16 0c-11 0-20 9-20 20zm96 24l0 48c0 24.3 19.7 44 44 44l32 0c24.3 0 44-19.7 44-44l0-48c0-24.3-19.7-44-44-44l-32 0c-24.3 0-44 19.7-44 44zm44-4l32 0c2.2 0 4 1.8 4 4l0 48c0 2.2-1.8 4-4 4l-32 0c-2.2 0-4-1.8-4-4l0-48c0-2.2 1.8-4 4-4z\"]\n};\nvar faMasksTheater = {\n  prefix: 'fas',\n  iconName: 'masks-theater',\n  icon: [576, 512, [127917, \"theater-masks\"], \"f630\", \"M-5 118L23.5 279.7c14 79.5 76.3 141.8 155.8 155.8l12.7 2.2c-16.5-28.6-27.1-60.7-30.6-94.5l-24.1 4.3c-9.7 1.7-18.8-5.8-16.9-15.5 4.8-24.7 19.1-46.6 39.7-60.9l0-74.6c-1.4 .8-3 1.3-4.7 1.6l-63 11.1c-8.7 1.5-17.3-4.4-15.9-13.1 3.1-19.6 18.4-36 39.1-39.7 17.2-3 33.9 3.5 44.6 15.8l0-22.7c0-22.5 6.9-52.4 32.3-73.4 26-21.5 67.7-43.9 124.9-54.2-30.5-16.3-86.3-32-163.8-18.4-80.3 14.2-128 50.1-150.1 76.1-9 10.5-10.8 24.9-8.4 38.5zM208 138.7l0 174.8c0 80.7 50.5 152.9 126.4 180.4L362.1 504c14.1 5.1 29.6 5.1 43.7 0L433.6 494C509.5 466.4 560 394.3 560 313.5l0-174.8c0-6.9-2.1-13.8-7-18.6-22.6-22.5-78.2-56-169-56s-146.4 33.6-169 56c-4.9 4.9-7 11.7-7 18.6zm66.1 187.1c-1.4-7 7-11 12.7-6.6 26.9 20.6 60.6 32.9 97.2 32.9s70.2-12.3 97.2-32.9c5.7-4.4 14.1-.4 12.7 6.6-10.1 51.4-55.5 90.3-109.9 90.3s-99.8-38.8-109.9-90.3zm.5-101.5C281.2 205.5 299 192 320 192s38.9 13.5 45.4 32.3c2.9 8.4-4.5 15.7-13.4 15.7l-64 0c-8.8 0-16.3-7.4-13.4-15.7zM480 240l-64 0c-8.8 0-16.3-7.4-13.4-15.7 6.5-18.8 24.4-32.3 45.4-32.3s38.9 13.5 45.4 32.3c2.9 8.4-4.5 15.7-13.4 15.7z\"]\n};\nvar faTheaterMasks = faMasksTheater;\nvar faCartPlus = {\n  prefix: 'fas',\n  iconName: 'cart-plus',\n  icon: [640, 512, [], \"f217\", \"M0 8C0-5.3 10.7-16 24-16l45.3 0c27.1 0 50.3 19.4 55.1 46l.4 2 412.7 0c20 0 35.1 18.2 31.4 37.9L537.8 235.8c-5.7 30.3-32.1 52.2-62.9 52.2l-303.6 0 5.1 28.3c2.1 11.4 12 19.7 23.6 19.7L456 336c13.3 0 24 10.7 24 24s-10.7 24-24 24l-255.9 0c-34.8 0-64.6-24.9-70.8-59.1L77.2 38.6c-.7-3.8-4-6.6-7.9-6.6L24 32C10.7 32 0 21.3 0 8zM160 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm224 0a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM336 78.4c-13.3 0-24 10.7-24 24l0 33.6-33.6 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l33.6 0 0 33.6c0 13.3 10.7 24 24 24s24-10.7 24-24l0-33.6 33.6 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-33.6 0 0-33.6c0-13.3-10.7-24-24-24z\"]\n};\nvar faHandsAslInterpreting = {\n  prefix: 'fas',\n  iconName: 'hands-asl-interpreting',\n  icon: [640, 512, [\"american-sign-language-interpreting\", \"asl-interpreting\", \"hands-american-sign-language-interpreting\"], \"f2a3\", \"M156.6 46.3c7.9-15.8 1.5-35-14.3-42.9s-35-1.5-42.9 14.3L13.5 189.4C4.6 207.2 0 226.8 0 246.7L0 256c0 70.7 57.3 128 128 128l80 0 0-.3c35.2-2.7 65.4-22.8 82.1-51.7 8.8-15.3 3.6-34.9-11.7-43.7s-34.9-3.6-43.7 11.7c-7 12-19.9 20-34.7 20-22.1 0-40-17.9-40-40s17.9-40 40-40c14.8 0 27.7 8 34.7 20 8.8 15.3 28.4 20.5 43.7 11.7s20.5-28.4 11.7-43.7c-12.8-22.1-33.6-39.1-58.4-47.1l80.8-22c17-4.6 27.1-22.2 22.5-39.3s-22.2-27.1-39.3-22.5l-100.7 27.5 81.6-68c13.6-11.3 15.4-31.5 4.1-45.1S249.1-3.9 235.5 7.4l-101.9 84.9 23-46zM483.4 465.7c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l85.9-171.7c8.9-17.8 13.5-37.4 13.5-57.2l0-9.3c0-70.7-57.3-128-128-128l-80 0 0 .3c-35.2 2.7-65.4 22.8-82.1 51.7-8.9 15.3-3.6 34.9 11.7 43.7s34.9 3.6 43.7-11.7c7-12 19.9-20 34.7-20 22.1 0 40 17.9 40 40s-17.9 40-40 40c-14.8 0-27.7-8-34.7-20-8.9-15.3-28.4-20.5-43.7-11.7s-20.5 28.4-11.7 43.7c12.8 22.1 33.6 39.1 58.4 47.1l-80.8 22c-17.1 4.6-27.1 22.2-22.5 39.3s22.2 27.1 39.3 22.5l100.7-27.5-81.6 68c-13.6 11.3-15.4 31.5-4.1 45.1s31.5 15.4 45.1 4.1l101.9-84.9-23 46z\"]\n};\nvar faAmericanSignLanguageInterpreting = faHandsAslInterpreting;\nvar faAslInterpreting = faHandsAslInterpreting;\nvar faHandsAmericanSignLanguageInterpreting = faHandsAslInterpreting;\nvar faTableCellsRowUnlock = {\n  prefix: 'fas',\n  iconName: 'table-cells-row-unlock',\n  icon: [640, 512, [], \"e691\", \"M256 224l0 192 64 0 0-192-64 0zm256-79c-46.7 5.8-85.6 36.8-102.7 79l-25.3 0 0 90.8c-10.1 15.2-16 33.4-16 53.1l0 96c0 5.5 .5 10.9 1.3 16.1L128 480c-35.3 0-64-28.7-64-64L64 96c0-35.3 28.7-64 64-64l320 0c35.3 0 64 28.7 64 64l0 49zM128 224l0 192 64 0 0-192-64 0zm432 48c-.1-17.6-14.4-31.9-32-31.9-17.7 0-32 14.3-32 32l0 47.9 96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80 44.2 0 79.9 35.8 80 79.9l-48 0z\"]\n};\nvar faRocket = {\n  prefix: 'fas',\n  iconName: 'rocket',\n  icon: [512, 512, [], \"f135\", \"M128 320L24.5 320c-24.9 0-40.2-27.1-27.4-48.5L50 183.3C58.7 168.8 74.3 160 91.2 160l95 0c76.1-128.9 189.6-135.4 265.5-124.3 12.8 1.9 22.8 11.9 24.6 24.6 11.1 75.9 4.6 189.4-124.3 265.5l0 95c0 16.9-8.8 32.5-23.3 41.2l-88.2 52.9c-21.3 12.8-48.5-2.6-48.5-27.4L192 384c0-35.3-28.7-64-64-64l-.1 0zM400 160a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nvar faShrimp = {\n  prefix: 'fas',\n  iconName: 'shrimp',\n  icon: [512, 512, [129424], \"e448\", \"M72 32C32.2 32 0 64.2 0 104 0 141.9 29.3 172.9 66.4 175.8 77.6 257.2 147.4 320 232 320l56 0 0-192-216 0c-13.3 0-24-10.7-24-24S58.7 80 72 80l384 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L72 32zM224 456c0 13.3 10.7 24 24 24l72 0 0-72.2-64.1-22.4c-12.5-4.4-26.2 2.2-30.6 14.7s2.2 26.2 14.7 30.6l4.5 1.6C233 433.9 224 443.9 224 456zm128 23.3c36.4-3.3 69.5-17.6 96.1-39.6l-86.5-34.6c-3 1.8-6.2 3.2-9.6 4.3l0 69.9zM472.6 415c24.6-30.3 39.4-68.9 39.4-111 0-12.3-1.3-24.3-3.7-35.9L382.8 355.1c.8 3.4 1.2 7 1.2 10.6 0 4.6-.7 9-1.9 13.1L472.6 415zM336 128l-16 0 0 192 18.3 0c9.9 0 19.1 3.2 26.6 8.5l133.5-92.4C471.8 172.6 409.1 128 336 128zM168 192a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faTengeSign = {\n  prefix: 'fas',\n  iconName: 'tenge-sign',\n  icon: [384, 512, [8376, \"tenge\"], \"f7d7\", \"M0 56C0 42.7 10.7 32 24 32l336 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 80C10.7 80 0 69.3 0 56zM0 160c0-17.7 14.3-32 32-32l320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0 0 256c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-256-128 0c-17.7 0-32-14.3-32-32z\"]\n};\nvar faTenge = faTengeSign;\nvar faHouseChimneyMedical = {\n  prefix: 'fas',\n  iconName: 'house-chimney-medical',\n  icon: [512, 512, [\"clinic-medical\"], \"f7f2\", \"M234.2 8.6c12.3-11.4 31.3-11.4 43.5 0L368 92.3 368 80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 101.5 37.8 35.1c9.6 9 12.8 22.9 8 35.1S493.2 272 480 272l-16 0 0 176c0 35.3-28.7 64-64 64l-288 0c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208zM224 248l0 40-40 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l40 0 0 40c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-40 40 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-40 0 0-40c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"]\n};\nvar faClinicMedical = faHouseChimneyMedical;\nvar faUsersSlash = {\n  prefix: 'fas',\n  iconName: 'users-slash',\n  icon: [640, 512, [], \"e073\", \"M73-24.9c-9.4-9.4-24.6-9.4-33.9 0S29.7-.3 39 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L321.8 224c56.6-1 102.2-47.2 102.2-104 0-57.4-46.6-104-104-104-56.8 0-103 45.6-104 102.2L73-24.9zM512 288c-17.2 0-33.7 3.4-48.7 9.6l170 170c4.2-5.4 6.7-12.2 6.7-19.6l0-32c0-70.7-57.3-128-128-128zM59.9 97.7c-21.5 12.5-35.9 35.7-35.9 62.3 0 39.8 32.2 72 72 72 26.6 0 49.8-14.4 62.3-35.9L59.9 97.7zM250.2 288C196.8 313.9 160 368.7 160 432l0 16c0 17.7 14.3 32 32 32l250.2 0-192-192zM128 288C57.3 288 0 345.3 0 416l0 32c0 17.7 14.3 32 32 32l86.7 0c-4.3-9.8-6.7-20.6-6.7-32l0-16c0-53.2 20-101.8 52.9-138.6-11.7-3.5-24.1-5.4-36.9-5.4zM616 160a72 72 0 1 0 -144 0 72 72 0 1 0 144 0z\"]\n};\nvar faPaperPlane = {\n  prefix: 'fas',\n  iconName: 'paper-plane',\n  icon: [576, 512, [61913], \"f1d8\", \"M536.4-26.3c9.8-3.5 20.6-1 28 6.3s9.8 18.2 6.3 28l-178 496.9c-5 13.9-18.1 23.1-32.8 23.1-14.2 0-27-8.6-32.3-21.7l-64.2-158c-4.5-11-2.5-23.6 5.2-32.6l94.5-112.4c5.1-6.1 4.7-15-.9-20.6s-14.6-6-20.6-.9L229.2 276.1c-9.1 7.6-21.6 9.6-32.6 5.2L38.1 216.8c-13.1-5.3-21.7-18.1-21.7-32.3 0-14.7 9.2-27.8 23.1-32.8l496.9-178z\"]\n};\nvar faBookAtlas = {\n  prefix: 'fas',\n  iconName: 'book-atlas',\n  icon: [448, 512, [\"atlas\"], \"f558\", \"M96 512l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-66.7c18.6-6.6 32-24.4 32-45.3l0-288c0-26.5-21.5-48-48-48L96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96zM64 416c0-17.7 14.3-32 32-32l256 0 0 64-256 0c-17.7 0-32-14.3-32-32zM310.6 208L279 208c-1.4 23.1-6 44.2-12.6 61.2 22.7-12.5 39.4-34.8 44.2-61.2zm-173.1 0c4.8 26.4 21.5 48.7 44.2 61.2-6.7-17-11.2-38-12.6-61.2l-31.6 0zm76.4 55c4.5 9.6 8.2 13.8 10.2 15.5 2-1.7 5.7-5.8 10.2-15.5 6.2-13.4 11.1-32.5 12.7-55l-45.8 0c1.6 22.5 6.5 41.6 12.7 55zm-12.7-87l45.8 0c-1.6-22.5-6.5-41.6-12.7-55-4.5-9.6-8.2-13.8-10.2-15.5-2 1.7-5.7 5.8-10.2 15.5-6.2 13.4-11.1 32.5-12.7 55zm109.5 0c-4.8-26.4-21.5-48.7-44.2-61.2 6.7 17 11.2 38 12.6 61.2l31.6 0zM169 176c1.4-23.1 6-44.2 12.6-61.2-22.7 12.5-39.4 34.8-44.2 61.2l31.6 0zM96 192a128 128 0 1 1 256 0 128 128 0 1 1 -256 0z\"]\n};\nvar faAtlas = faBookAtlas;\nvar faTable = {\n  prefix: 'fas',\n  iconName: 'table',\n  icon: [448, 512, [], \"f0ce\", \"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64l-320 0-6.5-.3C25.2 476.4 0 449.1 0 416L0 96C0 60.7 28.7 32 64 32l320 0zM64 320l0 96 128 0 0-96-128 0zm192 0l0 96 128 0 0-96-128 0zM64 256l128 0 0-96-128 0 0 96zm192 0l128 0 0-96-128 0 0 96z\"]\n};\nvar faHeart = {\n  prefix: 'fas',\n  iconName: 'heart',\n  icon: [512, 512, [128153, 128154, 128155, 128156, 128420, 129293, 129294, 129505, 9829, 10084, 61578], \"f004\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 112.2-139.9 242.5-212.9 298.2-12.4 9.4-27.6 14.1-43.1 14.1s-30.8-4.6-43.1-14.1C139.9 410.2 0 279.9 0 167.7l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1z\"]\n};\nvar faCircleChevronUp = {\n  prefix: 'fas',\n  iconName: 'circle-chevron-up',\n  icon: [512, 512, [\"chevron-circle-up\"], \"f139\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM377 271c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-87-87-87 87c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L239 167c9.4-9.4 24.6-9.4 33.9 0L377 271z\"]\n};\nvar faChevronCircleUp = faCircleChevronUp;\nvar faBatteryHalf = {\n  prefix: 'fas',\n  iconName: 'battery-half',\n  icon: [640, 512, [\"battery-3\"], \"f242\", \"M528 128c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-416 0c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l416 0zM112 64c-44.2 0-80 35.8-80 80l0 224c0 44.2 35.8 80 80 80l416 0c44.2 0 80-35.8 80-80l0-48c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80L112 64zm56 112c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24l144 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24l-144 0z\"]\n};\nvar faBattery3 = faBatteryHalf;\nvar faFontAwesome = {\n  prefix: 'fas',\n  iconName: 'font-awesome',\n  icon: [512, 512, [62501, 62694, \"font-awesome-flag\", \"font-awesome-logo-full\"], \"f2b4\", \"M91.7 96C106.3 86.8 116 70.5 116 52 116 23.3 92.7 0 64 0S12 23.3 12 52c0 16.7 7.8 31.5 20 41l0 419 64 0 0-64 373.6 0c14.6 0 26.4-11.8 26.4-26.4 0-3.7-.8-7.3-2.3-10.7L432 272 493.7 133.1c1.5-3.4 2.3-7 2.3-10.7 0-14.6-11.8-26.4-26.4-26.4L91.7 96z\"]\n};\nvar faFontAwesomeFlag = faFontAwesome;\nvar faFontAwesomeLogoFull = faFontAwesome;\nvar faHandcuffs = {\n  prefix: 'fas',\n  iconName: 'handcuffs',\n  icon: [576, 512, [], \"e4f8\", \"M320-32c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zM192 64a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM152 96c-13.3 0-24 10.7-24 24l0 16c0 1 .1 1.9 .2 2.9-74.7 26.3-128.2 97.5-128.2 181.1 0 106 86 192 192 192s192-86 192-192c0-83.7-53.5-154.8-128.2-181.1 .1-.9 .2-1.9 .2-2.9l0-16c0-13.3-10.7-24-24-24l-80 0zM64 320a128 128 0 1 1 256 0 128 128 0 1 1 -256 0zm448 0c0 66.9-51.3 121.8-116.6 127.5-14.3 22.8-32.4 43.1-53.4 59.9 13.5 3 27.6 4.6 42 4.6 106 0 192-86 192-192 0-83.7-53.5-154.8-128.2-181.1 .1-.9 .2-1.9 .2-2.9l0-16c0-13.3-10.7-24-24-24l-80 0c-12.3 0-22.4 9.2-23.8 21.1 30.3 19.2 56.1 45 75.2 75.4 65.4 5.8 116.6 60.6 116.6 127.5zM384 64a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faHatCowboySide = {\n  prefix: 'fas',\n  iconName: 'hat-cowboy-side',\n  icon: [640, 512, [], \"f8c1\", \"M640 388.3c0 16.9-7.1 32.2-18.4 43.1l-35-23.3-292.7-195.1c-36.1-24.1-78.6-36.9-122-36.9l-3.9 0c-2.7 0-5.4 0-8 .1l22.2-100c5.7-25.8 28.6-44.1 55-44.1 12.2 0 24.1 4 33.8 11.3l4.7 3.5c26.3 19.7 62.4 19.7 88.6 0l4.7-3.5c9.8-7.3 21.6-11.3 33.8-11.3 26.4 0 49.3 18.3 55 44.1l33 148.5C574.5 232.3 640 302.6 640 388.3zM171.9 224c33.9 0 67.1 10 95.4 28.9L560 448 56 448c-30.9 0-56-25.1-56-56 0-92.8 75.2-168 168-168l3.9 0z\"]\n};\nvar faIndustry = {\n  prefix: 'fas',\n  iconName: 'industry',\n  icon: [512, 512, [], \"f275\", \"M32 32C14.3 32 0 46.3 0 64L0 432c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-279.8c0-18.2-19.4-29.7-35.4-21.1l-156.6 84.3 0-63.2c0-18.2-19.4-29.7-35.4-21.1L128 215.4 128 64c0-17.7-14.3-32-32-32L32 32z\"]\n};\nvar faLinesLeaning = {\n  prefix: 'fas',\n  iconName: 'lines-leaning',\n  icon: [384, 512, [], \"e51e\", \"M190.4 74.1c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2l-128 384c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l128-384zm70.9-41.7c-17.4-2.9-33.9 8.9-36.8 26.3l-64 384c-2.9 17.4 8.9 33.9 26.3 36.8s33.9-8.9 36.8-26.3l64-384c2.9-17.4-8.9-33.9-26.3-36.8zM352 32c-17.7 0-32 14.3-32 32l0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32z\"]\n};\nvar faPassport = {\n  prefix: 'fas',\n  iconName: 'passport',\n  icon: [384, 512, [], \"f5ab\", \"M0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM96 408c0 13.3 10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0c-13.3 0-24 10.7-24 24zM278.6 208c-4.8 26.4-21.5 48.7-44.2 61.2 6.7-17 11.2-38 12.6-61.2l31.6 0zm-173.1 0l31.6 0c1.4 23.1 6 44.2 12.6 61.2-22.7-12.5-39.4-34.8-44.2-61.2zm76.4 55c-6.2-13.4-11.1-32.5-12.7-55l45.8 0c-1.6 22.5-6.5 41.6-12.7 55-4.5 9.6-8.2 13.8-10.2 15.5-2-1.7-5.7-5.8-10.2-15.5zm0-142c4.5-9.6 8.2-13.8 10.2-15.5 2 1.7 5.7 5.8 10.2 15.5 6.2 13.4 11.1 32.5 12.7 55l-45.8 0c1.6-22.5 6.5-41.6 12.7-55zm96.7 55L247 176c-1.4-23.1-6-44.2-12.6-61.2 22.7 12.5 39.4 34.8 44.2 61.2zM137 176l-31.6 0c4.8-26.4 21.5-48.7 44.2-61.2-6.7 17-11.2 38-12.6 61.2zm183 16a128 128 0 1 0 -256 0 128 128 0 1 0 256 0z\"]\n};\nvar faInfinity = {\n  prefix: 'fas',\n  iconName: 'infinity',\n  icon: [640, 512, [8734, 9854], \"f534\", \"M0 256c0-88.4 71.6-160 160-160 50.4 0 97.8 23.7 128 64l32 42.7 32-42.7c30.2-40.3 77.6-64 128-64 88.4 0 160 71.6 160 160S568.4 416 480 416c-50.4 0-97.8-23.7-128-64l-32-42.7-32 42.7c-30.2 40.3-77.6 64-128 64-88.4 0-160-71.6-160-160zm280 0l-43.2-57.6c-18.1-24.2-46.6-38.4-76.8-38.4-53 0-96 43-96 96s43 96 96 96c30.2 0 58.7-14.2 76.8-38.4L280 256zm80 0l43.2 57.6c18.1 24.2 46.6 38.4 76.8 38.4 53 0 96-43 96-96s-43-96-96-96c-30.2 0-58.7 14.2-76.8 38.4L360 256z\"]\n};\nvar faClone = {\n  prefix: 'fas',\n  iconName: 'clone',\n  icon: [512, 512, [], \"f24d\", \"M288 448l-224 0 0-224 48 0 0-64-48 0c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-48-64 0 0 48zm-64-96l224 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L224 0c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64z\"]\n};\nvar faForward = {\n  prefix: 'fas',\n  iconName: 'forward',\n  icon: [576, 512, [9193], \"f04e\", \"M371.7 43.1C360.1 32 343 28.9 328.3 35.2S304 56 304 72l0 136.3-172.3-165.1C120.1 32 103 28.9 88.3 35.2S64 56 64 72l0 368c0 16 9.6 30.5 24.3 36.8s31.8 3.2 43.4-7.9L304 303.7 304 440c0 16 9.6 30.5 24.3 36.8s31.8 3.2 43.4-7.9l192-184c7.9-7.5 12.3-18 12.3-28.9s-4.5-21.3-12.3-28.9l-192-184z\"]\n};\nvar faM = {\n  prefix: 'fas',\n  iconName: 'm',\n  icon: [448, 512, [109], \"4d\", \"M22.7 33.4c13.5-4.1 28.1 1.1 35.9 12.9L224 294.3 389.4 46.3c7.8-11.7 22.4-17 35.9-12.9S448 49.9 448 64l0 384c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-278.3-133.4 200.1c-5.9 8.9-15.9 14.2-26.6 14.2s-20.7-5.3-26.6-14.2L64 169.7 64 448c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64C0 49.9 9.2 37.5 22.7 33.4z\"]\n};\nvar faRoadSpikes = {\n  prefix: 'fas',\n  iconName: 'road-spikes',\n  icon: [640, 512, [], \"e568\", \"M64 116.8c0-15.8 20.5-22 29.3-8.9l98.7 148 0-139.2c0-15.8 20.5-22 29.3-8.9l98.7 148 0-139.2c0-15.8 20.5-22 29.3-8.9l98.7 148 0-139.2c0-15.8 20.5-22 29.3-8.9L606.8 302.2c14.2 21.3-1.1 49.8-26.6 49.8L64 352 64 116.8zM32 384l576 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faMountain = {\n  prefix: 'fas',\n  iconName: 'mountain',\n  icon: [512, 512, [127956], \"f6fc\", \"M256.5 0c14.7 0 28.2 8.1 35.2 21l216 400c6.7 12.4 6.4 27.4-.8 39.5-7.2 12.1-20.3 19.5-34.3 19.5l-432 0c-14.1 0-27.1-7.4-34.3-19.5s-7.5-27.1-.8-39.5l216-400 2.9-4.6C231.7 6.2 243.6 0 256.5 0zM170.4 249.9l26.8 26.8c6.2 6.2 16.4 6.2 22.6 0l43.3-43.3c6-6 14.1-9.4 22.6-9.4l42.8 0-72.1-133.5-86.1 159.4z\"]\n};\nvar faChess = {\n  prefix: 'fas',\n  iconName: 'chess',\n  icon: [512, 512, [], \"f439\", \"M168 56l0 40-78.1 0c-14.3 0-25.9 11.6-25.9 25.9 0 4 .9 8 2.7 11.6l33.4 66.8c-11.4 1.8-20.2 11.7-20.2 23.7 0 13.3 10.7 24 24 24l5.6 0-13.6 136-56.2 70.3c-5 6.3-7.8 14.1-7.8 22.2 0 19.6 15.9 35.5 35.5 35.5l248.9 0c19.6 0 35.5-15.9 35.5-35.5 0-8.1-2.7-15.9-7.8-22.2L288 384 274.4 248 280 248c13.3 0 24-10.7 24-24 0-11.9-8.7-21.9-20.2-23.7l33.4-66.8c1.8-3.6 2.7-7.6 2.7-11.6 0-14.3-11.6-25.9-25.9-25.9l-78.1 0 0-40 16 0c13.3 0 24-10.7 24-24S245.3 8 232 8l-16 0 0-16c0-13.3-10.7-24-24-24S168-21.3 168-8l0 16-16 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0zM325.8 279.6l8.5 85.5 47.4 59.2 4.2 5.7c9.2 13.7 14.1 29.9 14.1 46.5 0 12.7-2.8 24.8-7.9 35.5l83.1 0c20.3 0 36.8-16.5 36.8-36.8 0-7.3-2.2-14.4-6.2-20.4l-25.8-38.7 0-64 13.3-13.3c12-12 18.7-28.3 18.7-45.3L512 192c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 16-32 0 0-16c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32c0 22.4-10.2 42.4-26.2 55.6z\"]\n};\nvar faTemperatureThreeQuarters = {\n  prefix: 'fas',\n  iconName: 'temperature-three-quarters',\n  icon: [320, 512, [\"temperature-3\", \"thermometer-3\", \"thermometer-three-quarters\"], \"f2c8\", \"M160 0C107 0 64 43 64 96l0 164.7C34.5 287 16 325.4 16 368 16 447.5 80.5 512 160 512s144-64.5 144-144c0-42.6-18.5-81-48-107.3L256 96c0-53-43-96-96-96zm64 368c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26.9 16.5-49.9 40-59.3L136 152c0-13.3 10.7-24 24-24s24 10.7 24 24l0 156.7c23.5 9.5 40 32.5 40 59.3z\"]\n};\nvar faTemperature3 = faTemperatureThreeQuarters;\nvar faThermometer3 = faTemperatureThreeQuarters;\nvar faThermometerThreeQuarters = faTemperatureThreeQuarters;\nvar faB = {\n  prefix: 'fas',\n  iconName: 'b',\n  icon: [320, 512, [98], \"42\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32l160 0c70.7 0 128-57.3 128-128 0-46.5-24.8-87.3-62-109.7 18.7-22.3 30-51 30-82.3 0-70.7-57.3-128-128-128L32 32zM160 224l-96 0 0-128 96 0c35.3 0 64 28.7 64 64s-28.7 64-64 64zM64 288l128 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-128 0 0-128z\"]\n};\nvar faShieldVirus = {\n  prefix: 'fas',\n  iconName: 'shield-virus',\n  icon: [512, 512, [], \"e06c\", \"M253.4 2.9C249.2 1 244.7 0 240 0s-9.2 1-13.4 2.9L38.3 82.8c-22 9.3-38.4 31-38.3 57.2 .5 99.2 41.3 280.7 213.6 363.2 16.7 8 36.1 8 52.8 0 172.4-82.5 213.2-264 213.6-363.2 .1-26.2-16.3-47.9-38.3-57.2L253.4 2.9zM240 128c13.3 0 24 10.7 24 24 0 22.9 27.7 34.4 43.9 18.2 9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-16.2 16.2-4.7 43.9 18.2 43.9 13.3 0 24 10.7 24 24s-10.7 24-24 24c-22.9 0-34.4 27.7-18.2 43.9 9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-16.2-16.2-43.9-4.7-43.9 18.2 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-22.9-27.7-34.4-43.9-18.2-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c16.2-16.2 4.7-43.9-18.2-43.9-13.3 0-24-10.7-24-24s10.7-24 24-24c22.9 0 34.4-27.7 18.2-43.9-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c16.2 16.2 43.9 4.7 43.9-18.2 0-13.3 10.7-24 24-24zM208 264a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm88 40a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faLitecoinSign = {\n  prefix: 'fas',\n  iconName: 'litecoin-sign',\n  icon: [384, 512, [], \"e1d3\", \"M128 64c0-17.7-14.3-32-32-32S64 46.3 64 64l0 157.9-38.6 11c-12.7 3.6-20.1 16.9-16.5 29.7s16.9 20.1 29.7 16.5L64 271.8 64 448c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0 0-162.5 134.6-38.5c12.7-3.6 20.1-16.9 16.5-29.7s-16.9-20.1-29.7-16.5L128 203.6 128 64z\"]\n};\nvar faDiceD6 = {\n  prefix: 'fas',\n  iconName: 'dice-d6',\n  icon: [512, 512, [], \"f6d1\", \"M224.4 8.3C244-2.8 268-2.8 287.6 8.3l176 99.7c20 11.4 32.4 32.6 32.4 55.7l0 197.4c0 23-12.4 44.3-32.4 55.7l-176 99.7c-19.6 11.1-43.6 11.1-63.1 0l-176-99.7C28.4 405.5 16 384.2 16 361.2l0-197.4c0-23 12.4-44.3 32.4-55.7l176-99.7zM102.6 155.6c-8.8-3.1-18.8 .3-23.8 8.6s-3.2 18.7 3.6 25l3.2 2.4 150.2 90.2 0 148.7c0 11 9 20 20 20 11 0 20-9 20-20l0-148.7 150.3-90.2c9.5-5.7 12.6-18 6.9-27.4s-18-12.5-27.4-6.9l-149.7 89.8-149.7-89.8-3.7-1.7z\"]\n};\nvar faGripLinesVertical = {\n  prefix: 'fas',\n  iconName: 'grip-lines-vertical',\n  icon: [192, 512, [], \"f7a5\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32L64 64zm128 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384z\"]\n};\nvar faGolfBallTee = {\n  prefix: 'fas',\n  iconName: 'golf-ball-tee',\n  icon: [384, 512, [\"golf-ball\"], \"f450\", \"M298.5 384.1c12.1 1.2 21.5 11.5 21.5 23.9s-9.4 22.6-21.5 23.9l-2.5 .1-80 0 0 88c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-88-80 0c-13.3 0-24-10.7-24-24 0-12.4 9.4-22.6 21.5-23.9l2.5-.1 208 0 2.5 .1zM192 0c106 0 192 86 192 192 0 57.4-25.2 108.8-65.1 144L65.1 336C25.2 300.8 0 249.4 0 192 0 86 86 0 192 0zm32 240c-7.7 0-14.2 5.5-15.7 12.8l-.6 6.4c-1.3 6.3-6.2 11.2-12.5 12.5l-6.4 .6c-7.3 1.5-12.8 8-12.8 15.7 0 8.8 7.2 16 16 16 26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16zm64-64c-7.7 0-14.2 5.5-15.7 12.8l-.6 6.4c-1.3 6.3-6.2 11.2-12.5 12.5l-6.4 .6c-7.3 1.5-12.8 8-12.8 15.7 0 8.8 7.2 16 16 16 26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16zm-80-16c-7.7 0-14.2 5.5-15.7 12.8l-.6 6.4c-1.3 6.3-6.2 11.2-12.5 12.5l-6.4 .6c-7.3 1.5-12.8 8-12.8 15.7 0 8.8 7.2 16 16 16 26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16z\"]\n};\nvar faGolfBall = faGolfBallTee;\nvar faHexagon = {\n  prefix: 'fas',\n  iconName: 'hexagon',\n  icon: [576, 512, [11043], \"f312\", \"M33.5 220.3c-12.7 22.2-12.7 49.4 0 71.5l96.2 168.1c12.8 22.4 36.7 36.2 62.5 36.2l191.6 0c25.8 0 49.7-13.8 62.5-36.2l96.2-168.1c12.7-22.2 12.7-49.4 0-71.5L446.3 52.2C433.5 29.8 409.6 16 383.8 16L192.2 16c-25.8 0-49.7 13.8-62.5 36.2L33.5 220.3z\"]\n};\nvar faFolderOpen = {\n  prefix: 'fas',\n  iconName: 'folder-open',\n  icon: [576, 512, [128194, 128449, 61717], \"f07c\", \"M56 225.6L32.4 296.2 32.4 96c0-35.3 28.7-64 64-64l138.7 0c13.8 0 27.3 4.5 38.4 12.8l38.4 28.8c5.5 4.2 12.3 6.4 19.2 6.4l117.3 0c35.3 0 64 28.7 64 64l0 16-365.4 0c-41.3 0-78 26.4-91.1 65.6zM477.8 448L99 448c-32.8 0-55.9-32.1-45.5-63.2l48-144C108 221.2 126.4 208 147 208l378.8 0c32.8 0 55.9 32.1 45.5 63.2l-48 144c-6.5 19.6-24.9 32.8-45.5 32.8z\"]\n};\nvar faKaaba = {\n  prefix: 'fas',\n  iconName: 'kaaba',\n  icon: [512, 512, [128331], \"f66b\", \"M256 51.3L92.8 112.4 247.5 171.1c5.5 2.1 11.5 2.1 17 0L419.2 112.4 256 51.3zM0 129.3c0-20 12.4-37.9 31.1-44.9l208-78c10.9-4.1 22.8-4.1 33.7 0l208 78c18.7 7 31.1 24.9 31.1 44.9l0 36-253.2 96c-1.8 .7-3.8 .7-5.7 0l-253.2-96 0-36zm0 140l0-52.7 236.1 89.6c12.8 4.9 26.9 4.9 39.7 0l236.1-89.6 0 52.7-128 48.6 0 51.3 128-48.6 0 62.2c0 20-12.4 37.9-31.1 44.9l-208 78c-10.9 4.1-22.8 4.1-33.7 0l-208-78C12.4 420.7 0 402.7 0 382.7l0-62.2 128 48.6 0-51.3-128-48.6zM236.1 410.1c12.8 4.9 26.9 4.9 39.7 0l60.1-22.8 0-51.3-77.2 29.3c-1.8 .7-3.8 .7-5.7 0l-77.2-29.3 0 51.3 60.1 22.8z\"]\n};\nvar faHandHolding = {\n  prefix: 'fas',\n  iconName: 'hand-holding',\n  icon: [576, 512, [], \"f4bd\", \"M66.7 384l42.5-42.5c24-24 56.6-37.5 90.5-37.5L352 304c17.7 0 32 14.3 32 32s-14.3 32-32 32l-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l112.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5s9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5L32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l34.7 0z\"]\n};\nvar faSingleQuoteRight = {\n  prefix: 'fas',\n  iconName: 'single-quote-right',\n  icon: [192, 512, [], \"e81c\", \"M64 416c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 136c0 66.3-53.7 120-120 120l-8 0z\"]\n};\nvar faBottleDroplet = {\n  prefix: 'fas',\n  iconName: 'bottle-droplet',\n  icon: [320, 512, [], \"e4c4\", \"M80 0c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 103.3c64.9 20.4 112 81 112 152.7l0 192c0 35.3-28.7 64-64 64L64 544c-35.3 0-64-28.7-64-64L0 288c0-71.6 47.1-132.3 112-152.7L112 32C94.3 32 80 17.7 80 0zm80 416c35.3 0 64-32.4 64-64 0-21.2-28.9-64.5-47.9-90.6-8.1-11.1-24.2-11.1-32.3 0-19 26.1-47.9 69.4-47.9 90.6 0 31.6 28.7 64 64 64z\"]\n};\nvar faWindowMinimize = {\n  prefix: 'fas',\n  iconName: 'window-minimize',\n  icon: [512, 512, [128469], \"f2d1\", \"M0 416c0-17.7 14.3-32 32-32l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32z\"]\n};\nvar faChevronRight = {\n  prefix: 'fas',\n  iconName: 'chevron-right',\n  icon: [320, 512, [9002], \"f054\", \"M311.1 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L243.2 256 73.9 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z\"]\n};\nvar faEgg = {\n  prefix: 'fas',\n  iconName: 'egg',\n  icon: [384, 512, [129370], \"f7fb\", \"M192 496C86 496 0 394 0 288 0 176 64 16 192 16S384 176 384 288c0 106-86 208-192 208zM154.8 134c6.5-6 7-16.1 1-22.6s-16.1-7-22.6-1c-23.9 21.8-41.1 52.7-52.3 84.2-11.2 31.6-16.9 65.1-16.9 93.5 0 8.8 7.2 16 16 16s16-7.2 16-16c0-24.5 5-54.4 15.1-82.8 10.1-28.5 25-54.1 43.7-71.2z\"]\n};\nvar faLandmarkDome = {\n  prefix: 'fas',\n  iconName: 'landmark-dome',\n  icon: [512, 512, [\"landmark-alt\"], \"f752\", \"M256 0c-17.7 0-32 14.3-32 32 0 .9 0 1.8 .1 2.6-80.5 13.4-144 76.9-157.5 157.4L64 192c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 160-51.2 38.4C4.7 460.4 0 469.9 0 480 0 497.7 14.3 512 32 512l448 0c17.7 0 32-14.3 32-32 0-10.1-4.7-19.6-12.8-25.6L448 416 448 256c17.7 0 32-14.3 32-32s-14.3-32-32-32l-2.7 0c-13.5-80.4-77-143.9-157.5-157.4 .1-.9 .1-1.7 .1-2.6 0-17.7-14.3-32-32-32zm80 256l64 0 0 160-64 0 0-160zM224 416l0-160 64 0 0 160-64 0zM112 256l64 0 0 160-64 0 0-160z\"]\n};\nvar faLandmarkAlt = faLandmarkDome;\nvar faWorm = {\n  prefix: 'fas',\n  iconName: 'worm',\n  icon: [448, 512, [], \"e599\", \"M224 96c0-53 43-96 96-96l38.4 0C407.9 0 448 40.1 448 89.6L448 376c0 75.1-60.9 136-136 136S176 451.1 176 376l0-80c0-22.1-17.9-40-40-40s-40 17.9-40 40l0 168c0 26.5-21.5 48-48 48S0 490.5 0 464L0 296c0-75.1 60.9-136 136-136s136 60.9 136 136l0 80c0 22.1 17.9 40 40 40s40-17.9 40-40l0-184-32 0c-53 0-96-43-96-96zm144-8a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faUserInjured = {\n  prefix: 'fas',\n  iconName: 'user-injured',\n  icon: [448, 512, [], \"f728\", \"M242.7 80L334 80c-10.7-24.6-29.5-44.9-52.9-57.6L242.7 80zm-.9-70.7C236 8.4 230 8 224 8 174.8 8 132.5 37.6 114 80l80.6 0 47.1-70.7zM224 248c66.3 0 120-53.7 120-120l-240 0c0 66.3 53.7 120 120 120zM98.7 341.8C49.3 370.2 16 423.5 16 484.6 16 499.7 28.3 512 43.4 512l151 0-95.8-170.2zm45.1-17.7l42.7 75.9 85.5 0c44.2 0 80 35.8 80 80 0 11.4-2.4 22.2-6.7 32l59.2 0c15.1 0 27.4-12.3 27.4-27.4 0-90.9-73.7-164.6-164.6-164.6l-86.9 0c-12.6 0-24.9 1.4-36.7 4.1zM213.5 448l36 64 22.5 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-58.5 0z\"]\n};\nvar faStrikethrough = {\n  prefix: 'fas',\n  iconName: 'strikethrough',\n  icon: [512, 512, [], \"f0cc\", \"M96 157.5C96 88.2 152.2 32 221.5 32L368 32c17.7 0 32 14.3 32 32s-14.3 32-32 32L221.5 96c-34 0-61.5 27.5-61.5 61.5 0 31 23.1 57.2 53.9 61l44.1 5.5 222 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l83.1 0C103 204.6 96 181.8 96 157.5zM349.2 336l65.5 0c.9 6.1 1.4 12.2 1.4 18.5 0 69.3-56.2 125.5-125.5 125.5L144 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l146.5 0c34 0 61.5-27.5 61.5-61.5 0-6.4-1-12.7-2.8-18.5z\"]\n};\nvar faBlog = {\n  prefix: 'fas',\n  iconName: 'blog',\n  icon: [512, 512, [], \"f781\", \"M224 24c0-13.3 10.7-24 24-24 145.8 0 264 118.2 264 264 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-119.3-96.7-216-216-216-13.3 0-24-10.7-24-24zM80 96c26.5 0 48 21.5 48 48l0 224c0 26.5 21.5 48 48 48s48-21.5 48-48-21.5-48-48-48c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16 79.5 0 144 64.5 144 144S255.5 512 176 512 32 447.5 32 368l0-224c0-26.5 21.5-48 48-48zm168 0c92.8 0 168 75.2 168 168 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-66.3-53.7-120-120-120-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faStopwatch20 = {\n  prefix: 'fas',\n  iconName: 'stopwatch-20',\n  icon: [448, 512, [], \"e06f\", \"M168.5 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 25.3c-108 11.9-192 103.5-192 214.7 0 119.3 96.7 216 216 216s216-96.7 216-216c0-39.8-10.8-77.1-29.6-109.2l28.2-28.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-23.4 23.4c-32.9-30.2-75.2-50.3-122-55.5l0-25.3 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0zm-60 240c0-28.7 23.3-52 52-52s52 23.3 52 52l0 3.8c0 11.7-3.2 23.1-9.3 33l-43.8 71.2 33.1 0c11 0 20 9 20 20s-9 20-20 20l-57.8 0c-14.5 0-26.2-11.7-26.2-26.2 0-4.9 1.3-9.6 3.9-13.8l56.7-92.1c2.2-3.6 3.4-7.8 3.4-12.1l0-3.8c0-6.6-5.4-12-12-12s-12 5.4-12 12c0 11-9 20-20 20s-20-9-20-20zm180-52c28.7 0 52 23.3 52 52l0 96c0 28.7-23.3 52-52 52s-52-23.3-52-52l0-96c0-28.7 23.3-52 52-52zm-12 52l0 96c0 6.6 5.4 12 12 12s12-5.4 12-12l0-96c0-6.6-5.4-12-12-12s-12 5.4-12 12z\"]\n};\nvar faTruckPickup = {\n  prefix: 'fas',\n  iconName: 'truck-pickup',\n  icon: [640, 512, [128763], \"f63c\", \"M363.8 96l57.6 96-133.4 0 0-96 75.8 0zM496 192L418.6 63.1C407.1 43.8 386.2 32 363.8 32L256 32c-17.7 0-32 14.3-32 32l0 128-144 0c-26.5 0-48 21.5-48 48l0 80c-17.7 0-32 14.3-32 32s14.3 32 32 32l32.4 0c-.2 2.6-.4 5.3-.4 8 0 48.6 39.4 88 88 88s88-39.4 88-88c0-2.7-.1-5.4-.4-8l160.7 0c-.2 2.6-.4 5.3-.4 8 0 48.6 39.4 88 88 88s88-39.4 88-88c0-2.7-.1-5.4-.4-8l32.4 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-80c0-26.5-21.5-48-48-48l-64 0zM112 392a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zm376-40a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"]\n};\nvar faSeedling = {\n  prefix: 'fas',\n  iconName: 'seedling',\n  icon: [512, 512, [127793, \"sprout\"], \"f4d8\", \"M512 32C512 140.1 435.4 230.3 333.6 251.4 325.7 193.3 299.6 141 261.1 100.5 301.2 40 369.9 0 448 0l32 0c17.7 0 32 14.3 32 32zM0 96C0 78.3 14.3 64 32 64l32 0c123.7 0 224 100.3 224 224l0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160C100.3 320 0 219.7 0 96z\"]\n};\nvar faSprout = faSeedling;\nvar faTransgender = {\n  prefix: 'fas',\n  iconName: 'transgender',\n  icon: [576, 512, [9895, \"transgender-alt\"], \"f225\", \"M128-32c17.7 0 32 14.3 32 32s-14.3 32-32 32L97.9 32 136 70.1 151 55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-15 15 14.2 14.2c27.9-23.8 64.2-38.2 103.8-38.2 36.7 0 70.6 12.4 97.6 33.2L466.7 32 448 32c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.7-84.4 84.4c13 23.1 20.4 49.9 20.4 78.3 0 77.4-55 142-128 156.8l0 35.2 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 16c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-16-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-35.2c-73-14.8-128-79.4-128-156.8 0-31.4 9-60.7 24.7-85.4l-16.7-16.7-15 15c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l15-15-38.1-38.1 0 30.1c0 17.7-14.3 32-32 32S0 113.7 0 96L0 0C0-17.7 14.3-32 32-32l96 0zM288 336a96 96 0 1 0 0-192 96 96 0 1 0 0 192z\"]\n};\nvar faTransgenderAlt = faTransgender;\nvar faStarHalf = {\n  prefix: 'fas',\n  iconName: 'star-half',\n  icon: [576, 512, [61731], \"f089\", \"M304.1 7.6c0-11.1-7.6-20.7-18.4-23.3s-21.9 2.5-27 12.4L193.1 125.3 33.2 150.7c-8.9 1.4-16.3 7.7-19.1 16.3s-.5 18 5.8 24.4l114.4 114.5-25.2 159.9c-1.4 8.9 2.3 17.9 9.6 23.2s16.9 6.1 25 2L291 416.1c8-4.1 13.1-12.4 13.1-21.4l0-387.1z\"]\n};\nvar faPhotoFilm = {\n  prefix: 'fas',\n  iconName: 'photo-film',\n  icon: [640, 512, [\"photo-video\"], \"f87c\", \"M192 64c0-35.3 28.7-64 64-64L576 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64l-320 0c-35.3 0-64-28.7-64-64l0-224zM320 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm156.5 11.5C472.1 100.4 464.4 96 456 96s-16.1 4.4-20.5 11.5l-54 88.3-17.9-25.6c-4.5-6.4-11.8-10.2-19.7-10.2s-15.2 3.8-19.7 10.2l-56 80c-5.1 7.3-5.8 16.9-1.6 24.8S279.1 288 288 288l256 0c8.7 0 16.7-4.7 20.9-12.3s4.1-16.8-.5-24.3l-88-144zM144 128l0 160c0 61.9 50.1 112 112 112l192 0 0 16c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 192c0-35.3 28.7-64 64-64l80 0zM52 196l0 24c0 8.8 7.2 16 16 16l24 0c8.8 0 16-7.2 16-16l0-24c0-8.8-7.2-16-16-16l-24 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 24c0 8.8 7.2 16 16 16l24 0c8.8 0 16-7.2 16-16l0-24c0-8.8-7.2-16-16-16l-24 0zm0 96c-8.8 0-16 7.2-16 16l0 24c0 8.8 7.2 16 16 16l24 0c8.8 0 16-7.2 16-16l0-24c0-8.8-7.2-16-16-16l-24 0z\"]\n};\nvar faPhotoVideo = faPhotoFilm;\nvar faPictureInPicture = {\n  prefix: 'fas',\n  iconName: 'picture-in-picture',\n  icon: [512, 512, [], \"e80b\", \"M448 32c35.3 0 64 28.7 64 64l0 112-64 0 0-112-384 0 0 320 144 0 0 64-144 0-6.5-.3c-30.1-3.1-54.1-27-57.1-57.1L0 416 0 96C0 62.9 25.2 35.6 57.5 32.3L64 32 448 32zm16 224c26.5 0 48 21.5 48 48l0 128c0 26.5-21.5 48-48 48l-160 0c-26.5 0-48-21.5-48-48l0-128c0-26.5 21.5-48 48-48l160 0z\"]\n};\nvar faPumpMedical = {\n  prefix: 'fas',\n  iconName: 'pump-medical',\n  icon: [320, 512, [], \"e06a\", \"M96 0l0 80 128 0 0-24 72 0c13.3 0 24-10.7 24-24S309.3 8 296 8l-72 0 0-8c0-17.7-14.3-32-32-32l-64 0C110.3-32 96-17.7 96 0zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 128zm64 120c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"]\n};\nvar faFire = {\n  prefix: 'fas',\n  iconName: 'fire',\n  icon: [448, 512, [128293], \"f06d\", \"M160.5-26.4c9.3-7.8 23-7.5 31.9 .9 12.3 11.6 23.3 24.4 33.9 37.4 13.5 16.5 29.7 38.3 45.3 64.2 5.2-6.8 10-12.8 14.2-17.9 1.1-1.3 2.2-2.7 3.3-4.1 7.9-9.8 17.7-22.1 30.8-22.1 13.4 0 22.8 11.9 30.8 22.1 1.3 1.7 2.6 3.3 3.9 4.8 10.3 12.4 24 30.3 37.7 52.4 27.2 43.9 55.6 106.4 55.6 176.6 0 123.7-100.3 224-224 224S0 411.7 0 288c0-91.1 41.1-170 80.5-225 19.9-27.7 39.7-49.9 54.6-65.1 8.2-8.4 16.5-16.7 25.5-24.2zM225.7 416c25.3 0 47.7-7 68.8-21 42.1-29.4 53.4-88.2 28.1-134.4-4.5-9-16-9.6-22.5-2l-25.2 29.3c-6.6 7.6-18.5 7.4-24.7-.5-17.3-22.1-49.1-62.4-65.3-83-5.4-6.9-15.2-8-21.5-1.9-18.3 17.8-51.5 56.8-51.5 104.3 0 68.6 50.6 109.2 113.7 109.2z\"]\n};\nvar faMagnifyingGlassPlus = {\n  prefix: 'fas',\n  iconName: 'magnifying-glass-plus',\n  icon: [512, 512, [\"search-plus\"], \"f00e\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM208 112c-13.3 0-24 10.7-24 24l0 48-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0 0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48 48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-48c0-13.3-10.7-24-24-24z\"]\n};\nvar faSearchPlus = faMagnifyingGlassPlus;\nvar faFlask = {\n  prefix: 'fas',\n  iconName: 'flask',\n  icon: [448, 512, [], \"f0c3\", \"M288 0L128 0C110.3 0 96 14.3 96 32s14.3 32 32 32L128 215.5 7.5 426.3C2.6 435 0 444.7 0 454.7 0 486.4 25.6 512 57.3 512l333.4 0c31.6 0 57.3-25.6 57.3-57.3 0-10-2.6-19.8-7.5-28.4L320 215.5 320 64c17.7 0 32-14.3 32-32S337.7 0 320 0L288 0zM192 215.5l0-151.5 64 0 0 151.5c0 11.1 2.9 22.1 8.4 31.8l41.6 72.7-164 0 41.6-72.7c5.5-9.7 8.4-20.6 8.4-31.8z\"]\n};\nvar faAlignRight = {\n  prefix: 'fas',\n  iconName: 'align-right',\n  icon: [448, 512, [], \"f038\", \"M448 64c0 17.7-14.3 32-32 32L192 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 224c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z\"]\n};\nvar faCableCar = {\n  prefix: 'fas',\n  iconName: 'cable-car',\n  icon: [512, 512, [128673, 57551, \"tram\"], \"f7da\", \"M288-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM160 24a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM32 288c0-35.3 28.7-64 64-64l136 0 0-96.2-193.4 55.3c-12.7 3.6-26-3.7-29.7-16.5s3.7-26 16.5-29.7l224-64 0 0 224-64c12.7-3.6 26 3.7 29.7 16.5s-3.7 26-16.5 29.7l-206.6 59 0 109.9 136 0c35.3 0 64 28.7 64 64l0 160c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-160zm80 0c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l56 0 0-96-56 0zm184 96l0-96-80 0 0 96 80 0zm48 0l56 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-56 0 0 96z\"]\n};\nvar faTram = faCableCar;\nvar faKitMedical = {\n  prefix: 'fas',\n  iconName: 'kit-medical',\n  icon: [512, 512, [\"first-aid\"], \"f479\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l16 0 0-384-16 0zm64 0l0 384 256 0 0-384-256 0zM448 448c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-16 0 0 384 16 0zM224 184c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"]\n};\nvar faFirstAid = faKitMedical;\nvar faGripLines = {\n  prefix: 'fas',\n  iconName: 'grip-lines',\n  icon: [448, 512, [], \"f7a4\", \"M32 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 288zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160z\"]\n};\nvar faBurger = {\n  prefix: 'fas',\n  iconName: 'burger',\n  icon: [512, 512, [\"hamburger\"], \"f805\", \"M48 384c-8.8 0-16 7.2-16 16 0 44.2 35.8 80 80 80l288 0c44.2 0 80-35.8 80-80 0-8.8-7.2-16-16-16L48 384zM32 202c0 12.2 9.9 22 22 22L458 224c12.2 0 22-9.9 22-22 0-17.2-2.6-34.4-10.8-49.5-22.2-40.8-82.3-120.5-213.2-120.5S65 111.6 42.8 152.5C34.6 167.6 32 184.8 32 202zM0 304c0 17.7 14.3 32 32 32l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 272c-17.7 0-32 14.3-32 32zM256 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM120 128a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm248-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faHamburger = faBurger;\nvar faSnowman = {\n  prefix: 'fas',\n  iconName: 'snowman',\n  icon: [640, 512, [9731, 9924], \"f7d0\", \"M403 211.7c32.2-24.9 53-63.9 53-107.7 0-75.1-60.9-136-136-136S184 28.9 184 104c0 43.9 20.8 82.9 53 107.7-32.2 16.3-59 41.8-76.8 73.1L112 264.2 112 224c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 19.6-22.5-9.7c-12.2-5.2-26.3 .4-31.5 12.6s.4 26.3 12.6 31.5c36.1 15.5 75.9 32.5 119.4 51.2-3.9 14.9-6 30.6-6 46.7 0 70 39.1 130.8 96.6 161.9 7.9 4.3 16.9 6.1 25.9 6.1l123 0c9 0 18-1.8 25.9-6.1 57.5-31.1 96.6-92 96.6-161.9 0-16.2-2.1-31.8-6-46.7 43.5-18.7 83.4-35.7 119.4-51.2 12.2-5.2 17.8-19.3 12.6-31.5s-19.3-17.8-31.5-12.6l-22.5 9.7 0-19.6c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40.2-48.2 20.6c-17.9-31.3-44.6-56.8-76.8-73.1zM296 416a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm24-120a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM248 80a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM292.2 159.3c-2.7-4.8-4.2-10.2-4.2-15.7 0-17.5 14.2-31.6 31.6-31.6l.8 0c17.5 0 31.6 14.2 31.6 31.6 0 5.5-1.4 10.9-4.2 15.7L327 195.8c-3.1 5.4-10.8 5.4-13.9 0l-20.9-36.6z\"]\n};\nvar faHotel = {\n  prefix: 'fas',\n  iconName: 'hotel',\n  icon: [512, 512, [127976], \"f594\", \"M16 24C16 10.7 26.7 0 40 0L472 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 416 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L40 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-416-8 0C26.7 48 16 37.3 16 24zm208 88l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM128 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm96 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM352 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM112 208l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm240-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM288 384l43.8 0c9.9 0 17.5-9 14-18.2-13.8-36.1-48.8-61.8-89.7-61.8s-75.9 25.7-89.7 61.8c-3.5 9.2 4.1 18.2 14 18.2l43.8 0 0 80 64 0 0-80z\"]\n};\nvar faPrint = {\n  prefix: 'fas',\n  iconName: 'print',\n  icon: [512, 512, [128424, 128438, 9113], \"f02f\", \"M64 64C64 28.7 92.7 0 128 0L341.5 0c17 0 33.3 6.7 45.3 18.7l42.5 42.5c12 12 18.7 28.3 18.7 45.3l0 37.5-384 0 0-80zM0 256c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 96c0 17.7-14.3 32-32 32l-32 0 0 64c0 35.3-28.7 64-64 64l-256 0c-35.3 0-64-28.7-64-64l0-64-32 0c-17.7 0-32-14.3-32-32l0-96zM128 416l0 32 256 0 0-96-256 0 0 64zM456 272a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faVolleyball = {\n  prefix: 'fas',\n  iconName: 'volleyball',\n  icon: [512, 512, [127952, \"volleyball-ball\"], \"f45f\", \"M512 258.9c-23.4 8-47.8 13.1-72.6 15.1 5.9-98.6-30.7-191.1-94.9-258.3 97.8 36 167.5 130 167.5 240.3 0 1 0 1.9 0 2.9zm-5.9 52c-5.2 23.7-13.6 46.2-24.9 66.9-94.7 52.2-214 50-308.4-13.6 21.7-31.3 49.8-58.9 83.8-80.5 79.5 41.6 168.5 49.1 249.5 27.1zM279.7 241.6c-3.7-89.7-41.7-170.5-101.3-229.7 22.3-7.1 46-11.2 70.5-11.9 92.5 55.9 150.3 160.3 142.4 273.8-38-3.2-75.9-13.7-111.6-32.3zM130.5 32.8C149.1 49.1 165.8 67.7 179.9 88.2 91.5 132.3 29.7 210.3 3.7 299.5 1.3 285.3 0 270.8 0 256 0 160.2 52.6 76.7 130.5 32.8zm73.4 97c16.3 34.5 26.1 72.6 27.9 112.8-75.8 48-126.8 121.3-148.3 202.5-17.6-16.1-33-34.6-45.5-55 2.1-108.1 63.7-210.4 165.9-260.3zM256 512c-47.7 0-92.3-13-130.5-35.7 4.8-24.3 12.6-48 23.2-70.4 82.4 54.4 180.8 68.9 271 47-44.4 37-101.5 59.2-163.7 59.2z\"]\n};\nvar faVolleyballBall = faVolleyball;\nvar faTrafficLight = {\n  prefix: 'fas',\n  iconName: 'traffic-light',\n  icon: [320, 512, [128678], \"f637\", \"M64-32C28.7-32 0-3.3 0 32L0 384c0 88.4 71.6 160 160 160s160-71.6 160-160l0-352c0-35.3-28.7-64-64-64L64-32zm96 392c30.9 0 56 25.1 56 56s-25.1 56-56 56-56-25.1-56-56 25.1-56 56-56zm56-104a56 56 0 1 1 -112 0 56 56 0 1 1 112 0zM160 152a56 56 0 1 1 0-112 56 56 0 1 1 0 112z\"]\n};\nvar faPlaneCircleCheck = {\n  prefix: 'fas',\n  iconName: 'plane-circle-check',\n  icon: [640, 512, [], \"e555\", \"M232 24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 127.3 78 71.5c-69.3 29-118 97.4-118 177.2 0 49.3 18.6 94.3 49.1 128.3L288 512 179.9 539c-10.1 2.5-19.9-5.1-19.9-15.5l0-19.8c0-4.9 2.2-9.5 6-12.5l66-52.8 0-99.7-162.9 54.3C58.7 396.4 48 388.7 48 377.8l0-43.7c0-9 3.8-17.5 10.4-23.6L232 151.3 232 24zM352 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm201.4-60.9c-7.1-5.2-17.2-3.6-22.4 3.5l-53 72.9-26.8-26.8c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.6s8.9-2.8 11.7-6.5l64-88c5.2-7.1 3.6-17.2-3.5-22.3z\"]\n};\nvar faUsers = {\n  prefix: 'fas',\n  iconName: 'users',\n  icon: [640, 512, [], \"f0c0\", \"M320 16a104 104 0 1 1 0 208 104 104 0 1 1 0-208zM96 88a72 72 0 1 1 0 144 72 72 0 1 1 0-144zM0 416c0-70.7 57.3-128 128-128 12.8 0 25.2 1.9 36.9 5.4-32.9 36.8-52.9 85.4-52.9 138.6l0 16c0 11.4 2.4 22.2 6.7 32L32 480c-17.7 0-32-14.3-32-32l0-32zm521.3 64c4.3-9.8 6.7-20.6 6.7-32l0-16c0-53.2-20-101.8-52.9-138.6 11.7-3.5 24.1-5.4 36.9-5.4 70.7 0 128 57.3 128 128l0 32c0 17.7-14.3 32-32 32l-86.7 0zM472 160a72 72 0 1 1 144 0 72 72 0 1 1 -144 0zM160 432c0-88.4 71.6-160 160-160s160 71.6 160 160l0 16c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-16z\"]\n};\nvar faCertificate = {\n  prefix: 'fas',\n  iconName: 'certificate',\n  icon: [576, 512, [], \"f0a3\", \"M239.2-8c-6.1-6.2-15-8.7-23.4-6.4S200.9-5.6 198.8 2.8L183.5 63c-1.1 4.4-5.6 7-9.9 5.7L113.8 51.9c-8.4-2.4-17.4 0-23.5 6.1s-8.5 15.1-6.1 23.5l16.9 59.8c1.2 4.3-1.4 8.8-5.7 9.9L35.1 166.5c-8.4 2.1-15 8.7-17.3 17.1s.2 17.3 6.4 23.4l44.5 43.3c3.2 3.1 3.2 8.3 0 11.5L24.3 305.1c-6.2 6.1-8.7 15-6.4 23.4s8.9 14.9 17.3 17.1l60.2 15.3c4.4 1.1 7 5.6 5.7 9.9L84.2 430.5c-2.4 8.4 0 17.4 6.1 23.5s15.1 8.5 23.5 6.1l59.8-16.9c4.3-1.2 8.8 1.4 9.9 5.7l15.3 60.2c2.1 8.4 8.7 15 17.1 17.3s17.3-.2 23.4-6.4l43.3-44.5c3.1-3.2 8.3-3.2 11.5 0L337.3 520c6.1 6.2 15 8.7 23.4 6.4s14.9-8.9 17.1-17.3L393.1 449c1.1-4.4 5.6-7 9.9-5.7l59.8 16.9c8.4 2.4 17.4 0 23.5-6.1s8.5-15.1 6.1-23.5l-16.9-59.8c-1.2-4.3 1.4-8.8 5.7-9.9l60.2-15.3c8.4-2.1 15-8.7 17.3-17.1s-.2-17.4-6.4-23.4l-44.5-43.3c-3.2-3.1-3.2-8.3 0-11.5l44.5-43.3c6.2-6.1 8.7-15 6.4-23.4s-8.9-14.9-17.3-17.1l-60.2-15.3c-4.4-1.1-7-5.6-5.7-9.9l16.9-59.8c2.4-8.4 0-17.4-6.1-23.5s-15.1-8.5-23.5-6.1L403 68.8c-4.3 1.2-8.8-1.4-9.9-5.7L377.8 2.8c-2.1-8.4-8.7-15-17.1-17.3s-17.3 .2-23.4 6.4L294 36.5c-3.1 3.2-8.3 3.2-11.5 0L239.2-8z\"]\n};\nvar faAlarmClock = {\n  prefix: 'fas',\n  iconName: 'alarm-clock',\n  icon: [512, 512, [9200], \"f34e\", \"M504.4 132.5c-4.5 10.5-18.4 9.8-24.9 .4-27.8-40-66.1-72.2-111-92.6-10.4-4.7-13.7-18.3-4.1-24.6 15-9.9 33-15.7 52.3-15.7 52.6 0 95.2 42.6 95.2 95.2 0 13.2-2.7 25.8-7.6 37.3zm-471.9 .4c-6.5 9.4-20.5 10.1-24.9-.4-4.9-11.5-7.6-24.1-7.6-37.3 0-52.6 42.6-95.2 95.2-95.2 19.3 0 37.3 5.8 52.3 15.7 9.6 6.3 6.3 19.9-4.1 24.6-44.8 20.4-83.1 52.6-111 92.6zM390.2 467.4C352.8 495.4 306.3 512 256 512s-96.8-16.6-134.1-44.6L86.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l35.2-35.2C48.6 384.8 32 338.3 32 288 32 164.3 132.3 64 256 64S480 164.3 480 288c0 50.3-16.6 96.8-44.6 134.2l35.2 35.2c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-35.2-35.2zM280 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 104c0 6.4 2.5 12.5 7 17l56 56c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-49-49 0-94.1z\"]\n};\nvar faHelicopterSymbol = {\n  prefix: 'fas',\n  iconName: 'helicopter-symbol',\n  icon: [512, 512, [], \"e502\", \"M445.4 224l64.7 0C495.6 108.2 403.8 16.4 288 2l0 64.7C368.4 80.1 431.9 143.6 445.4 224zM510 288l-64.7 0C431.9 368.4 368.4 431.9 288 445.3l0 64.7c115.8-14.4 207.6-106.2 222-222zM2 288C16.4 403.8 108.2 495.6 224 510l0-64.7C143.6 431.9 80.2 368.4 66.7 288L2 288zm0-64l64.7 0C80.2 143.6 143.6 80.1 224 66.7L224 2C108.2 16.4 16.4 108.2 2 224zm206-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 96 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64-96 0 0-64z\"]\n};\nvar faHouseChimneyCrack = {\n  prefix: 'fas',\n  iconName: 'house-chimney-crack',\n  icon: [512, 512, [\"house-damage\"], \"f6f1\", \"M234.2 8.6c12.3-11.4 31.3-11.4 43.5 0L368 92.3 368 80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 101.5 37.8 35.1c9.6 9 12.8 22.9 8 35.1S493.2 272 480 272l-16 0 0 176c0 35.3-28.7 64-64 64l-105.6 0-38.4-64 80.8-67.3c7.8-6.5 7.6-18.6-.4-24.9L218.6 263.2c-14.6-11.5-33.8 7-22.8 22L256 368 170.5 439.2c-6.1 5-7.5 13.8-3.5 20.5l31.3 52.2-86.4 0c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208z\"]\n};\nvar faHouseDamage = faHouseChimneyCrack;\nvar faPersonMilitaryPointing = {\n  prefix: 'fas',\n  iconName: 'person-military-pointing',\n  icon: [512, 512, [], \"e54a\", \"M214.9 14.1C202 15.2 192 26 192 39 192 52.8 203.2 64 217 64l151 0c8.8 0 16-7.2 16-16l0-30.6C384 8 376 .7 366.7 1.4L214.9 14.1zM208 112c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16L209.6 96c-1 5.2-1.6 10.5-1.6 16zM40 224c-22.1 0-40 17.9-40 40s17.9 40 40 40l152 0 0 89.4 162.8-162.8c-13.3-4.3-27.3-6.5-41.6-6.5L40 224zm345.7 20.9l-171.1 171.1 169.4 0 0-46.3 53.6 90.6c11.2 19 35.8 25.3 54.8 14.1s25.3-35.8 14.1-54.8L430.3 290.8c-11.2-19-26.6-34.5-44.6-45.9zM192 448l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32-192 0z\"]\n};\nvar faDatabase = {\n  prefix: 'fas',\n  iconName: 'database',\n  icon: [448, 512, [], \"f1c0\", \"M448 205.8c-14.8 9.8-31.8 17.7-49.5 24-47 16.8-108.7 26.2-174.5 26.2S96.4 246.5 49.5 229.8c-17.6-6.3-34.7-14.2-49.5-24L0 288c0 44.2 100.3 80 224 80s224-35.8 224-80l0-82.2zm0-77.8l0-48C448 35.8 347.7 0 224 0S0 35.8 0 80l0 48c0 44.2 100.3 80 224 80s224-35.8 224-80zM398.5 389.8C351.6 406.5 289.9 416 224 416S96.4 406.5 49.5 389.8c-17.6-6.3-34.7-14.2-49.5-24L0 432c0 44.2 100.3 80 224 80s224-35.8 224-80l0-66.2c-14.8 9.8-31.8 17.7-49.5 24z\"]\n};\nvar faNewspaper = {\n  prefix: 'fas',\n  iconName: 'newspaper',\n  icon: [512, 512, [128240], \"f1ea\", \"M0 416L0 120c0-13.3 10.7-24 24-24s24 10.7 24 24l0 288c0 13.3 10.7 24 24 24s24-10.7 24-24L96 96c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64zM160 128l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32zm24 240c-13.3 0-24 10.7-24 24s10.7 24 24 24l240 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-240 0zm-24-72c0 13.3 10.7 24 24 24l240 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-240 0c-13.3 0-24 10.7-24 24zM360 176c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0z\"]\n};\nvar faCloudRain = {\n  prefix: 'fas',\n  iconName: 'cloud-rain',\n  icon: [512, 512, [127783, 9926], \"f73d\", \"M96 320c-53 0-96-43-96-96 0-42.5 27.6-78.6 65.9-91.2-1.3-6.7-1.9-13.7-1.9-20.8 0-61.9 50.1-112 112-112 43.1 0 80.5 24.3 99.2 60 14.7-17.1 36.5-28 60.8-28 44.2 0 80 35.8 80 80 0 5.5-.6 10.8-1.6 16 .5 0 1.1 0 1.6 0 53 0 96 43 96 96s-43 96-96 96L96 320zm1.6 68.2c1.1-2.5 3.6-4.2 6.4-4.2s5.3 1.6 6.4 4.2l30.2 68.2c2.2 5.1 3.4 10.5 3.4 16 0 21.9-18.1 39.6-40 39.6s-40-17.7-40-39.6c0-5.5 1.2-11 3.4-16l30.2-68.2zm152 0c1.1-2.5 3.6-4.2 6.4-4.2s5.3 1.6 6.4 4.2l30.2 68.2c2.2 5.1 3.4 10.5 3.4 16 0 21.9-18.1 39.6-40 39.6s-40-17.7-40-39.6c0-5.5 1.2-11 3.4-16l30.2-68.2zm121.8 68.2l30.2-68.2c1.1-2.5 3.6-4.2 6.4-4.2s5.3 1.6 6.4 4.2l30.2 68.2c2.2 5.1 3.4 10.5 3.4 16 0 21.9-18.1 39.6-40 39.6s-40-17.7-40-39.6c0-5.5 1.2-11 3.4-16z\"]\n};\nvar faMaximize = {\n  prefix: 'fas',\n  iconName: 'maximize',\n  icon: [448, 512, [\"expand-arrows-alt\"], \"f31e\", \"M168 32L24 32C10.7 32 0 42.7 0 56L0 200c0 9.7 5.8 18.5 14.8 22.2S34.1 223.8 41 217l40-40 79 79-79 79-40-40c-6.9-6.9-17.2-8.9-26.2-5.2S0 302.3 0 312L0 456c0 13.3 10.7 24 24 24l144 0c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-40-40 79-79 79 79-40 40c-6.9 6.9-8.9 17.2-5.2 26.2S270.3 480 280 480l144 0c13.3 0 24-10.7 24-24l0-144c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2l-40 40-79-79 79-79 40 40c6.9 6.9 17.2 8.9 26.2 5.2S448 209.7 448 200l0-144c0-13.3-10.7-24-24-24L280 32c-9.7 0-18.5 5.8-22.2 14.8S256.2 66.1 263 73l40 40-79 79-79-79 40-40c6.9-6.9 8.9-17.2 5.2-26.2S177.7 32 168 32z\"]\n};\nvar faExpandArrowsAlt = faMaximize;\nvar faLocationArrow = {\n  prefix: 'fas',\n  iconName: 'location-arrow',\n  icon: [512, 512, [], \"f124\", \"M477.9 75.5c4.5-11.8 1.7-25.2-7.2-34.1s-22.3-11.8-34.1-7.2l-416 160C7.9 199-.3 211.2 0 224.7s9.1 25.4 21.9 29.6l176.8 58.9 58.9 176.8c4.3 12.8 16.1 21.6 29.6 21.9s25.7-7.9 30.6-20.5l160-416z\"]\n};\nvar faCity = {\n  prefix: 'fas',\n  iconName: 'city',\n  icon: [576, 512, [127961], \"f64f\", \"M320 0c-35.3 0-64 28.7-64 64l0 32-48 0 0-72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72-64 0 0-72C96 10.7 85.3 0 72 0S48 10.7 48 24l0 74c-27.6 7.1-48 32.2-48 62L0 448c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-64 0 0-128c0-35.3-28.7-64-64-64L320 0zm64 112l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zm-16 80c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zm16 112l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zm112-16c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zM256 304l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zM240 192c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zM128 304l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zM112 192c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0z\"]\n};\nvar faXRay = {\n  prefix: 'fas',\n  iconName: 'x-ray',\n  icon: [512, 512, [], \"f497\", \"M0 64C0 46.3 14.3 32 32 32l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 320c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32L32 96C14.3 96 0 81.7 0 64zm280 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16-64 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0 0 48-80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0 0 48-64 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0 0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0 0-48 80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0 0-48 64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0 0-16z\"]\n};\nvar faUmbrellaBeach = {\n  prefix: 'fas',\n  iconName: 'umbrella-beach',\n  icon: [512, 512, [127958], \"f5ca\", \"M497.5 341.1c-5.9 16.7-25.3 23-41.1 15.1l-178.2-89.1-1.6 3.2-88.8 177.7 292.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l84.2 0 103.2-206.3 1.6-3.2-165.4-82.7c-15.8-7.9-22.4-27.3-12.5-42 45.9-68.6 124.1-113.8 212.9-113.8 141.4 0 256 114.6 256 256 0 29.8-5.1 58.5-14.5 85.1z\"]\n};\nvar faArrowRightToBracket = {\n  prefix: 'fas',\n  iconName: 'arrow-right-to-bracket',\n  icon: [512, 512, [\"sign-in\"], \"f090\", \"M352 96l64 0c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c53 0 96-43 96-96l0-256c0-53-43-96-96-96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm-9.4 182.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L242.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z\"]\n};\nvar faSignIn = faArrowRightToBracket;\nvar faHeadset = {\n  prefix: 'fas',\n  iconName: 'headset',\n  icon: [448, 512, [], \"f590\", \"M224 64c-79 0-144.7 57.3-157.7 132.7 9.3-3 19.3-4.7 29.7-4.7l16 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-16 0c-53 0-96-43-96-96l0-64C0 100.3 100.3 0 224 0S448 100.3 448 224l0 168.1c0 66.3-53.8 120-120.1 120l-87.9-.1-32 0c-26.5 0-48-21.5-48-48s21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 0 40 0c39.8 0 72-32.2 72-72l0-20.9c-14.1 8.2-30.5 12.8-48 12.8l-16 0c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48l16 0c10.4 0 20.3 1.6 29.7 4.7-13-75.3-78.6-132.7-157.7-132.7z\"]\n};\nvar faSplotch = {\n  prefix: 'fas',\n  iconName: 'splotch',\n  icon: [512, 512, [], \"f5bc\", \"M208.5 62.3l28.1-36.9C248.8 9.4 267.8 0 288 0 316.5 0 341.6 18.7 349.8 46l17.8 59.4c10.3 34.4 36.1 62 69.8 74.6l39.8 14.9c20.9 7.9 34.8 27.9 34.8 50.2 0 16.9-7.9 32.8-21.5 42.9l-67.3 50.5c-24.3 18.2-37.2 47.9-33.8 78.1l2.5 22.7c4.3 38.7-26 72.6-65 72.6-14.8 0-29.3-5.1-40.9-14.3l-55.3-44.3c-4.5-3.6-9.3-6.7-14.5-9.2-15.8-7.9-33.7-10.4-51-7.3L82.4 451.9c-34.6 6.3-66.4-20.3-66.4-55.4 0-13.2 4.7-26 13.1-36.2l11.2-13.4c14.6-17.4 22.6-39.4 22.6-62.1 0-18.8-5.5-37.2-15.8-53L8.8 173.5C3.1 164.7 0 154.4 0 143.9 0 110.5 30.1 85.1 63 90.7l51.3 8.7c35.9 6.1 72.2-8.2 94.2-37.1z\"]\n};\nvar faUpLong = {\n  prefix: 'fas',\n  iconName: 'up-long',\n  icon: [320, 512, [\"long-arrow-alt-up\"], \"f30c\", \"M137.4-22.6c12.5-12.5 32.8-12.5 45.3 0l128 128c9.2 9.2 11.9 22.9 6.9 34.9S300.9 160 288 160l-64 0 0 336c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-336-64 0c-12.9 0-24.6-7.8-29.6-19.8S.2 114.5 9.4 105.4l128-128z\"]\n};\nvar faLongArrowAltUp = faUpLong;\nvar faHexagonNodes = {\n  prefix: 'fas',\n  iconName: 'hexagon-nodes',\n  icon: [448, 512, [], \"e699\", \"M248 106.6c18.9-9 32-28.3 32-50.6c0-30.9-25.1-56-56-56s-56 25.1-56 56c0 22.3 13.1 41.6 32 50.6l0 98.8c-2.8 1.3-5.5 2.9-8 4.7l-80.1-45.8c1.6-20.8-8.6-41.6-27.9-52.8C57.2 96 23 105.2 7.5 132S1.2 193 28 208.5c1.3 .8 2.6 1.5 4 2.1l0 90.8c-1.3 .6-2.7 1.3-4 2.1C1.2 319-8 353.2 7.5 380S57.2 416 84 400.5c19.3-11.1 29.4-32 27.8-52.8l50.5-28.9c-11.5-11.2-19.9-25.6-23.8-41.7L88 306.1c-2.6-1.8-5.2-3.3-8-4.7l0-90.8c2.8-1.3 5.5-2.9 8-4.7l80.1 45.8c-.1 1.4-.2 2.8-.2 4.3c0 22.3 13.1 41.6 32 50.6l0 98.8c-18.9 9-32 28.3-32 50.6c0 30.9 25.1 56 56 56s56-25.1 56-56c0-22.3-13.1-41.6-32-50.6l0-98.8c2.8-1.3 5.5-2.9 8-4.7l80.1 45.8c-1.6 20.8 8.6 41.6 27.8 52.8c26.8 15.5 61 6.3 76.5-20.5s6.3-61-20.5-76.5c-1.3-.8-2.7-1.5-4-2.1l0-90.8c1.4-.6 2.7-1.3 4-2.1c26.8-15.5 36-49.7 20.5-76.5S390.8 96 364 111.5c-19.3 11.1-29.4 32-27.8 52.8l-50.6 28.9c11.5 11.2 19.9 25.6 23.8 41.7L360 205.9c2.6 1.8 5.2 3.3 8 4.7l0 90.8c-2.8 1.3-5.5 2.9-8 4.6l-80.1-45.8c.1-1.4 .2-2.8 .2-4.3c0-22.3-13.1-41.6-32-50.6l0-98.8z\"]\n};\nvar faHospital = {\n  prefix: 'fas',\n  iconName: 'hospital',\n  icon: [576, 512, [127973, 62589, \"hospital-alt\", \"hospital-wide\"], \"f0f8\", \"M128 64c0-35.3 28.7-64 64-64L384 0c35.3 0 64 28.7 64 64l0 64 64 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192c0-35.3 28.7-64 64-64l64 0 0-64zM272 352c-17.7 0-32 14.3-32 32l0 80 96 0 0-80c0-17.7-14.3-32-32-32l-32 0zM128 368l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM112 256c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zM512 368l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM496 256c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zM264 104l0 32-32 0c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l32 0 0 32c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-32 32 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-32 0 0-32c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16z\"]\n};\nvar faHospitalAlt = faHospital;\nvar faHospitalWide = faHospital;\nvar faPersonHarassing = {\n  prefix: 'fas',\n  iconName: 'person-harassing',\n  icon: [576, 512, [], \"e549\", \"M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM59.4 304.5L88 256.9 88 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-244.7 47.4 57.1c11.3 13.6 31.5 15.5 45.1 4.2s15.5-31.5 4.2-45.1l-73.7-88.9c-18.2-22-45.3-34.7-73.9-34.7l-35.9 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9zM480 240a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM464 344l0 58.7-41.4-41.4c-7.3-7.3-17.6-10.6-27.8-9s-18.9 8.1-23.5 17.3l-48 96c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l28.1-56.3 54.7 54.7c12.4 12.4 29.1 19.3 46.6 19.3 36.4 0 65.9-29.5 65.9-65.9L576 344c0-30.9-25.1-56-56-56s-56 25.1-56 56zM288 48c0 8.8 7.2 16 16 16l56 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-56 0c-8.8 0-16 7.2-16 16zm-.8 49.7c-7.9-4-17.5-.7-21.5 7.2s-.7 17.5 7.2 21.5l48 24c7.9 4 17.5 .7 21.5-7.2s.7-17.5-7.2-21.5l-48-24z\"]\n};\nvar faMoneyBillTrendUp = {\n  prefix: 'fas',\n  iconName: 'money-bill-trend-up',\n  icon: [512, 512, [], \"e529\", \"M480 8c0-13.3-10.7-24-24-24L354.2-16c-13.3 0-24 10.7-24 24s10.7 24 24 24l43.9 0-111.3 111.3-95.1-81.5c-9-7.7-22.2-7.7-31.2 0l-112 96c-10.1 8.6-11.2 23.8-2.6 33.8s23.8 11.2 33.8 2.6l96.4-82.6 96.4 82.6c9.5 8.2 23.7 7.6 32.6-1.3l127-127 0 43.9c0 13.3 10.7 24 24 24s24-10.7 24-24L480 8zM48 256c-26.5 0-48 21.5-48 48L0 464c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-160c0-26.5-21.5-48-48-48L48 256zm47.3 56c-3.4 20.1-19.2 36-39.4 39.4-4.4 .7-8-2.9-8-7.3l0-32c0-4.4 3.6-8 8-8l32 0c4.4 0 8.1 3.6 7.3 8zm0 144.1c.7 4.4-2.9 8-7.3 8l-32 0c-4.4 0-8-3.6-8-8l0-32c0-4.4 3.6-8.1 8-7.3 20.1 3.4 36 19.2 39.4 39.4zM456 416.7c4.4-.7 8 2.9 8 7.3l0 32c0 4.4-3.6 8-8 8l-32 0c-4.4 0-8.1-3.6-7.3-8 3.4-20.1 19.2-36 39.4-39.4zM416.7 312c-.7-4.4 2.9-8 7.3-8l32 0c4.4 0 8 3.6 8 8l0 32c0 4.4-3.6 8.1-8 7.3-20.1-3.4-36-19.2-39.4-39.4zM192 384a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"]\n};\nvar faPenRuler = {\n  prefix: 'fas',\n  iconName: 'pen-ruler',\n  icon: [512, 512, [\"pencil-ruler\"], \"f5ae\", \"M404 0c19.2 0 37.6 7.6 51.1 21.2l35.7 35.7C504.4 70.4 512 88.8 512 108s-7.6 37.6-21.2 51.1L445.9 204 308 66.1 352.9 21.2C366.4 7.6 384.8 0 404 0zM58.9 315.1L274.1 100 412 237.9 196.9 453.1c-10.7 10.7-24.1 18.5-38.7 22.6L30.4 511.1c-8.3 2.3-17.3 0-23.4-6.2s-8.5-15.1-6.2-23.4L36.4 353.8c4.1-14.6 11.8-27.9 22.6-38.7zM225.4 80.8L80.8 225.4 11.7 156.3c-15.6-15.6-15.6-40.9 0-56.6l88-88c15.6-15.6 40.9-15.6 56.6 0l5.9 5.9-56.3 56.3c-7.8 7.8-7.8 20.5 0 28.3s20.5 7.8 28.3 0l56.3-56.3 34.9 34.9zM431.2 286.6l34.9 34.9-56.3 56.3c-7.8 7.8-7.8 20.5 0 28.3s20.5 7.8 28.3 0l56.3-56.3 5.9 5.9c15.6 15.6 15.6 40.9 0 56.6l-88 88c-15.6 15.6-40.9 15.6-56.6 0l-69.1-69.1 144.6-144.6z\"]\n};\nvar faPencilRuler = faPenRuler;\nvar faRepeat = {\n  prefix: 'fas',\n  iconName: 'repeat',\n  icon: [512, 512, [128257], \"f363\", \"M470.6 118.6c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9S352 19.1 352 32l0 32-160 0C86 64 0 150 0 256 0 273.7 14.3 288 32 288s32-14.3 32-32c0-70.7 57.3-128 128-128l160 0 0 32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64zM41.4 393.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9S160 492.9 160 480l0-32 160 0c106 0 192-86 192-192 0-17.7-14.3-32-32-32s-32 14.3-32 32c0 70.7-57.3 128-128 128l-160 0 0-32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64z\"]\n};\nvar faBone = {\n  prefix: 'fas',\n  iconName: 'bone',\n  icon: [640, 512, [129460], \"f5d7\", \"M197.4 160c-3.9 0-7.2-2.8-8.1-6.6-10.2-42.1-48.1-73.4-93.3-73.4-53 0-96 43-96 96 0 29.1 12.9 55.1 33.3 72.7 4.3 3.7 4.3 10.8 0 14.5-20.4 17.6-33.3 43.7-33.3 72.7 0 53 43 96 96 96 45.2 0 83.1-31.3 93.3-73.4 .9-3.8 4.2-6.6 8.1-6.6l245.1 0c3.9 0 7.2 2.8 8.1 6.6 10.2 42.1 48.1 73.4 93.3 73.4 53 0 96-43 96-96 0-29.1-12.9-55.1-33.3-72.7-4.3-3.7-4.3-10.8 0-14.5 20.4-17.6 33.3-43.7 33.3-72.7 0-53-43-96-96-96-45.2 0-83.1 31.3-93.3 73.4-.9 3.8-4.2 6.6-8.1 6.6l-245.1 0z\"]\n};\nvar faFireFlameCurved = {\n  prefix: 'fas',\n  iconName: 'fire-flame-curved',\n  icon: [384, 512, [\"fire-alt\"], \"f7e4\", \"M153.6 29.9l16-21.3C173.6 3.2 180 0 186.7 0 198.4 0 208 9.6 208 21.3l0 22.1c0 13.1 5.4 25.7 14.9 34.7L307.6 159C356.4 205.6 384 270.2 384 337.7 384 434 306 512 209.7 512L192 512C86 512 0 426 0 320l0-3.8c0-48.8 19.4-95.6 53.9-130.1l3.5-3.5c4.2-4.2 10-6.6 16-6.6 12.5 0 22.6 10.1 22.6 22.6L96 288c0 35.3 28.7 64 64 64s64-28.7 64-64l0-3.9c0-18-7.2-35.3-19.9-48l-38.6-38.6c-24-24-37.5-56.7-37.5-90.7 0-27.7 9-54.8 25.6-76.9z\"]\n};\nvar faFireAlt = faFireFlameCurved;\nvar faBusSimple = {\n  prefix: 'fas',\n  iconName: 'bus-simple',\n  icon: [448, 512, [\"bus-alt\"], \"f55e\", \"M96 0C43 0 0 43 0 96L0 384c0 29.8 20.4 54.9 48 62l0 34c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-32 192 0 0 32c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-34c27.6-7.1 48-32.2 48-62l0-288c0-53-43-96-96-96L96 0zM64 128c0-17.7 14.3-32 32-32l256 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32L96 256c-17.7 0-32-14.3-32-32l0-96zM96 320a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm256 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faBusAlt = faBusSimple;\nvar faVenusMars = {\n  prefix: 'fas',\n  iconName: 'venus-mars',\n  icon: [640, 512, [9892], \"f228\", \"M480-64c-17.7 0-32 14.3-32 32S462.3 0 480 0L530.7 0 474 56.7c-26.3-15.7-57.1-24.7-90-24.7-35.4 0-68.4 10.5-96 28.5-27.6-18-60.6-28.5-96-28.5-97.2 0-176 78.8-176 176 0 86.3 62.1 158.1 144 173.1l0 34.9-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-34.9c23.3-4.3 44.9-13.1 64-25.6 27.6 18 60.6 28.5 96 28.5 97.2 0 176-78.8 176-176 0-41.1-14.1-79-37.8-109L576 45.3 576 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L480-64zM336 309.2c20.2-28.6 32-63.5 32-101.2s-11.8-72.6-32-101.2c14.6-6.9 30.8-10.8 48-10.8 61.9 0 112 50.1 112 112S445.9 320 384 320c-17.2 0-33.5-3.9-48-10.8zM288 150.3c10.2 16.9 16 36.6 16 57.7s-5.8 40.9-16 57.7c-10.2-16.9-16-36.6-16-57.7s5.8-40.9 16-57.7zm-48-43.5c-20.2 28.6-32 63.5-32 101.2s11.8 72.6 32 101.2c-14.5 6.9-30.8 10.8-48 10.8-61.9 0-112-50.1-112-112S130.1 96 192 96c17.2 0 33.5 3.9 48 10.8z\"]\n};\nvar faBlender = {\n  prefix: 'fas',\n  iconName: 'blender',\n  icon: [512, 512, [], \"f517\", \"M0 56C0 25.1 25.1 0 56 0L437.6 0c21.3 0 36.6 20.3 30.8 40.8L457.1 80 344 80c-13.3 0-24 10.7-24 24s10.7 24 24 24l99.4 0-18.3 64-81.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l67.4 0-27.4 96-256 0-9.1-96-62.9 0c-30.9 0-56-25.1-56-56L0 56zM114.3 192L100.6 48 56 48c-4.4 0-8 3.6-8 8l0 128c0 4.4 3.6 8 8 8l58.3 0zM136 384l240 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-240 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zm120 88a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faU = {\n  prefix: 'fas',\n  iconName: 'u',\n  icon: [384, 512, [117], \"55\", \"M32 32c17.7 0 32 14.3 32 32l0 224c0 70.7 57.3 128 128 128s128-57.3 128-128l0-224c0-17.7 14.3-32 32-32s32 14.3 32 32l0 224c0 106-86 192-192 192S0 394 0 288L0 64C0 46.3 14.3 32 32 32z\"]\n};\nvar faShare = {\n  prefix: 'fas',\n  iconName: 'share',\n  icon: [512, 512, [\"mail-forward\"], \"f064\", \"M307.8 18.4c-12 5-19.8 16.6-19.8 29.6l0 80-112 0c-97.2 0-176 78.8-176 176 0 113.3 81.5 163.9 100.2 174.1 2.5 1.4 5.3 1.9 8.1 1.9 10.9 0 19.7-8.9 19.7-19.7 0-7.5-4.3-14.4-9.8-19.5-9.4-8.8-22.2-26.4-22.2-56.7 0-53 43-96 96-96l96 0 0 80c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-9.2-9.2-22.9-11.9-34.9-6.9z\"]\n};\nvar faMailForward = faShare;\nvar faPhoneFlip = {\n  prefix: 'fas',\n  iconName: 'phone-flip',\n  icon: [512, 512, [128381, \"phone-alt\"], \"f879\", \"M351.8 25c7.8-18.8 28.4-28.9 48.1-23.5l5.5 1.5c64.6 17.6 119.8 80.2 103.7 156.4-37.1 175-174.8 312.7-349.8 349.8-76.3 16.2-138.8-39.1-156.4-103.7l-1.5-5.5c-5.4-19.7 4.7-40.3 23.5-48.1l97.3-40.5c16.5-6.9 35.6-2.1 47 11.8l38.6 47.2c70.3-34.9 126.8-93.3 159.3-164.9l-44.1-36.1c-13.9-11.3-18.6-30.4-11.8-47L351.8 25z\"]\n};\nvar faPhoneAlt = faPhoneFlip;\nvar faToiletPortable = {\n  prefix: 'fas',\n  iconName: 'toilet-portable',\n  icon: [320, 512, [], \"e583\", \"M0 64l0 16 320 0 0-16c0-35.3-28.7-64-64-64L64 0C28.7 0 0 28.7 0 64zm24 64L0 128 0 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8 224 0 0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-360-296 0zm224 96l24 0 0 96-24 0c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24z\"]\n};\nvar faPersonPregnant = {\n  prefix: 'fas',\n  iconName: 'person-pregnant',\n  icon: [384, 512, [], \"e31e\", \"M192 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zm80 321.2c8.6-4.5 16.8-10 24.3-16.5l4-3.4c22.6-19.4 35.7-47.7 35.7-77.6 0-35.9-18.8-69.1-49.6-87.6l-30.4-18.2 0-1.8c0-46.5-37.7-84.1-84.1-84.1-28.1 0-54.4 14.1-70 37.5L21.4 270.2c-9.8 14.7-5.8 34.6 8.9 44.4s34.6 5.8 44.4-8.9l29-43.5-30.5 113.5c-2.6 9.6-.6 19.9 5.5 27.8S94 416 104 416l8 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-110.8z\"]\n};\nvar faLessThan = {\n  prefix: 'fas',\n  iconName: 'less-than',\n  icon: [512, 512, [62774], \"3c\", \"M477.1 50.6c7.4 16 .4 35.1-15.6 42.5L108.4 256 461.4 419c16 7.4 23 26.4 15.6 42.5s-26.4 23-42.5 15.6l-416-192C7.3 279.8 0 268.5 0 256S7.3 232.2 18.6 227l416-192c16-7.4 35.1-.4 42.5 15.6z\"]\n};\nvar faSuperscript = {\n  prefix: 'fas',\n  iconName: 'superscript',\n  icon: [576, 512, [], \"f12b\", \"M544 32c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16C449.9 27.3 443.5 46.5 451.4 62.3 457 73.5 468.3 80 480 80l0 80c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-128zM96 64C78.3 64 64 78.3 64 96s14.3 32 32 32l15.3 0 89.6 128-89.6 128-15.3 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c10.4 0 20.2-5.1 26.2-13.6L240 311.8 325.8 434.4c6 8.6 15.8 13.6 26.2 13.6l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-15.3 0-89.6-128 89.6-128 15.3 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-10.4 0-20.2 5.1-26.2 13.6L240 200.2 154.2 77.6C148.2 69.1 138.4 64 128 64L96 64z\"]\n};\nvar faCircleStop = {\n  prefix: 'fas',\n  iconName: 'circle-stop',\n  icon: [512, 512, [62094, \"stop-circle\"], \"f28d\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM192 160l128 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32z\"]\n};\nvar faStopCircle = faCircleStop;\nvar faArrowsUpDown = {\n  prefix: 'fas',\n  iconName: 'arrows-up-down',\n  icon: [256, 512, [\"arrows-v\"], \"f07d\", \"M150.6-22.6c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 77.3 96 434.7 54.6 393.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c6 6 14.1 9.4 22.6 9.4s16.6-3.4 22.6-9.4l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-41.4 41.4 0-357.5 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z\"]\n};\nvar faArrowsV = faArrowsUpDown;\nvar faPooStorm = {\n  prefix: 'fas',\n  iconName: 'poo-storm',\n  icon: [512, 512, [\"poo-bolt\"], \"f75a\", \"M268.9-31.8c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.3c2.8 8.2 4.3 16.9 4.3 26.1 0 21.7-8.5 37.2-21.9 47.6-13.9 10.8-34.1 17-58.1 17l-24 0c-48.6 0-88 39.4-88 88 0 14.8 3.7 28.8 10.2 41.1-42 6.6-74.2 43-74.2 86.9 0 46.6 36.2 84.7 81.9 87.8 3.1-12.4 9.9-23.8 19.6-32.5L242.7 225c12.2-10.9 28-17 44.4-17 44.6 0 76.5 43 63.7 85.7l-12.7 42.4c28.8 1.2 52.7 21.1 59.8 47.9l26.2 0c48.6 0 88-39.4 88-88 0-43.9-32.1-80.3-74.2-86.9 6.5-12.3 10.2-26.2 10.2-41.1 0-48.6-39.4-88-88-88l-9.4 0c.9-5.4 1.4-10.9 1.4-16.6 0-48.7-36.1-88.9-83.1-95.2zM144.6 416l61.8 0-31.2 104.1c-3.6 11.9 5.3 23.9 17.8 23.9 4.6 0 9-1.7 12.4-4.7L346.5 412.9c3.5-3.1 5.5-7.6 5.5-12.4 0-9.2-7.4-16.6-16.6-16.6l-61.8 0 31.2-104.1c3.6-11.9-5.3-23.9-17.8-23.9-4.6 0-9 1.7-12.4 4.7L133.5 387.1c-3.5 3.1-5.5 7.6-5.5 12.4 0 9.2 7.4 16.6 16.6 16.6z\"]\n};\nvar faPooBolt = faPooStorm;\nvar faVideoSlash = {\n  prefix: 'fas',\n  iconName: 'video-slash',\n  icon: [576, 512, [], \"f4e2\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-153-153 0-222.2c0-35.3-28.7-64-64-64L129.8 64 41-24.9zM32 128l0 256c0 35.3 28.7 64 64 64l256 0c7.8 0 15.3-1.4 22.2-4L36 105.8c-2.6 6.9-4 14.4-4 22.2zM464 336l73.5 58.8c4.2 3.4 9.4 5.2 14.8 5.2 13.1 0 23.7-10.6 23.7-23.7l0-240.6c0-13.1-10.6-23.7-23.7-23.7-5.4 0-10.6 1.8-14.8 5.2L464 176 464 336z\"]\n};\nvar faSquareXmark = {\n  prefix: 'fas',\n  iconName: 'square-xmark',\n  icon: [448, 512, [10062, \"times-square\", \"xmark-square\"], \"f2d3\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm71 135c9.4-9.4 24.6-9.4 33.9 0l55 55 55-55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55 55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55-55 55c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l55-55-55-55c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faTimesSquare = faSquareXmark;\nvar faXmarkSquare = faSquareXmark;\nvar faHandHoldingDroplet = {\n  prefix: 'fas',\n  iconName: 'hand-holding-droplet',\n  icon: [576, 512, [\"hand-holding-water\"], \"f4c1\", \"M275.5 6.6L209.2 103C198 119.3 192 138.6 192 158.3l0 1.7c0 53 43 96 96 96s96-43 96-96l0-1.7c0-19.8-6-39-17.2-55.3L300.5 6.6C297.7 2.5 293 0 288 0s-9.7 2.5-12.5 6.6zM109.3 341.5L66.7 384 32 384c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l320.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416 280 416c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-152.2 0c-33.9 0-66.5 13.5-90.5 37.5z\"]\n};\nvar faHandHoldingWater = faHandHoldingDroplet;\nvar faWonSign = {\n  prefix: 'fas',\n  iconName: 'won-sign',\n  icon: [512, 512, [8361, \"krw\", \"won\"], \"f159\", \"M62.4 53.9C56.8 37.1 38.7 28.1 21.9 33.6S-3.9 57.4 1.7 74.1L56.9 240 32 240c-13.3 0-24 10.7-24 24s10.7 24 24 24l40.9 0 56.7 170.1c4.5 13.5 17.4 22.4 31.6 21.9s26.4-10.4 29.8-24.2L233 288 279 288 321 455.8c3.4 13.8 15.6 23.7 29.8 24.2s27.1-8.4 31.6-21.9L439.1 288 480 288c13.3 0 24-10.7 24-24s-10.7-24-24-24l-24.9 0 55.3-165.9c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2l-62 186.1-54.6 0-45.9-183.8C283.5 42 270.7 32 256 32s-27.5 10-31 24.2L179 240 124.4 240 62.4 53.9zm78 234.1l26.6 0-11.4 45.6-15.2-45.6zM245 240l11-44.1 11 44.1-22 0zm100 48l26.6 0-15.2 45.6-11.4-45.6z\"]\n};\nvar faKrw = faWonSign;\nvar faWon = faWonSign;\nvar faObjectUngroup = {\n  prefix: 'fas',\n  iconName: 'object-ungroup',\n  icon: [640, 512, [], \"f248\", \"M32 119.4C12.9 108.4 0 87.7 0 64 0 28.7 28.7 0 64 0 87.7 0 108.4 12.9 119.4 32l209.1 0c11.1-19.1 31.7-32 55.4-32 35.3 0 64 28.7 64 64 0 23.7-12.9 44.4-32 55.4l0 113.1c19.1 11.1 32 31.7 32 55.4 0 35.3-28.7 64-64 64-23.7 0-44.4-12.9-55.4-32l-209.1 0c-11.1 19.1-31.7 32-55.4 32-35.3 0-64-28.7-64-64 0-23.7 12.9-44.4 32-55.4l0-113.1zM119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4l0 113.1c9.7 5.6 17.8 13.7 23.4 23.4l209.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-113.1c-9.7-5.6-17.8-13.7-23.4-23.4L119.4 96zM544 279.4c-9.7-5.6-17.8-13.7-23.4-23.4l-29.2 0c-5.3-17.7-14.8-33.5-27.4-46.4l0-17.6 56.6 0c11.1-19.1 31.7-32 55.4-32 35.3 0 64 28.7 64 64 0 23.7-12.9 44.4-32 55.4l0 113.1c19.1 11.1 32 31.7 32 55.4 0 35.3-28.7 64-64 64-23.7 0-44.4-12.9-55.4-32l-209.1 0c-11.1 19.1-31.7 32-55.4 32-35.3 0-64-28.7-64-64 0-23.7 12.9-44.4 32-55.4l0-24.6 64 0 0 24.6c9.7 5.6 17.8 13.7 23.4 23.4l209.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-113.1z\"]\n};\nvar faComment = {\n  prefix: 'fas',\n  iconName: 'comment',\n  icon: [512, 512, [128489, 61669], \"f075\", \"M512 240c0 132.5-114.6 240-256 240-37.1 0-72.3-7.4-104.1-20.7L33.5 510.1c-9.4 4-20.2 1.7-27.1-5.8S-2 485.8 2.8 476.8l48.8-92.2C19.2 344.3 0 294.3 0 240 0 107.5 114.6 0 256 0S512 107.5 512 240z\"]\n};\nvar faHillAvalanche = {\n  prefix: 'fas',\n  iconName: 'hill-avalanche',\n  icon: [576, 512, [], \"e507\", \"M440.1 401.9c34.2 23.1 81.1 19.5 111.4-10.8 34.4-34.4 34.4-90.1 0-124.5-27.8-27.8-69.5-33.1-102.6-16-11.8 6.1-16.4 20.6-10.3 32.3s20.6 16.4 32.3 10.3c15.1-7.8 34-5.3 46.6 7.3 15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-81.7-81.7c22.3-14.2 37.1-39.1 37.1-67.5 0-33.9-21.1-62.9-50.9-74.5 1.9-6.8 2.9-14 2.9-21.5 0-44.2-35.8-80-80-80-27.3 0-51.5 13.7-65.9 34.6-5.8-20-24.2-34.6-46.1-34.6-26.5 0-48 21.5-48 48 0 4 .5 7.9 1.4 11.6L440.1 401.9zM480.4 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM68.7 87C43.5 61.8 .4 79.7 .4 115.3L.4 432c0 44.2 35.8 80 80 80l316.7 0c35.6 0 53.5-43.1 28.3-68.3L68.7 87z\"]\n};\nvar faArrowsToEye = {\n  prefix: 'fas',\n  iconName: 'arrows-to-eye',\n  icon: [640, 512, [], \"e4bf\", \"M176 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 38.1-63-63c-9.4-9.4-24.6-9.4-33.9 0S21.7 55.6 31 65l63 63-38.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l96 0c13.3 0 24-10.7 24-24l0-96zm0 400l0-96c0-13.3-10.7-24-24-24l-96 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l38.1 0-63 63c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l63-63 0 38.1c0 13.3 10.7 24 24 24s24-10.7 24-24zm312 24c13.3 0 24-10.7 24-24l0-38.1 63 63c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-63-63 38.1 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-96 0c-13.3 0-24 10.7-24 24l0 96c0 13.3 10.7 24 24 24zM464 56l0 96c0 13.3 10.7 24 24 24l96 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-38.1 0 63-63c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-63 63 0-38.1c0-13.3-10.7-24-24-24s-24 10.7-24 24zM320 120c-57.3 0-99.4 34-125.6 64.3-20 23.1-32.4 45.8-37.6 56.1-2.5 5-4.9 9.7-4.9 15.6s2.3 10.6 4.9 15.6c5.2 10.3 17.6 33 37.6 56.1 26.2 30.3 68.2 64.3 125.6 64.3s99.4-34 125.6-64.3c20-23.1 32.4-45.8 37.6-56.1 2.5-5 4.9-9.7 4.9-15.6s-2.3-10.6-4.9-15.6c-5.2-10.3-17.6-33-37.6-56.1-26.2-30.3-68.2-64.3-125.6-64.3zM256 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"]\n};\nvar faSnowplow = {\n  prefix: 'fas',\n  iconName: 'snowplow',\n  icon: [640, 512, [], \"f7d2\", \"M128 160l0-96c0-35.3 28.7-64 64-64L296.4 0c24.2 0 46.4 13.7 57.2 35.4l87.6 175.1c4.4 8.9 6.8 18.7 6.8 28.6l0 56.9 80 0 0-80c0-48.6 39.4-88 88-88 13.3 0 24 10.7 24 24s-10.7 24-24 24c-22.1 0-40 17.9-40 40l0 208c0 22.1 17.9 40 40 40 13.3 0 24 10.7 24 24s-10.7 24-24 24c-48.6 0-88-39.4-88-88l0-80-63 0c9.5 16.5 15 35.6 15 56 0 61.9-50.1 112-112 112l-224 0c-61.9 0-112-50.1-112-112 0-30.5 12.2-58.2 32-78.4L64 224c0-35.3 28.7-64 64-64zm91.7 34.9l43.6 29.1 113.2 0-80-160-104.4 0 0 108.8 27.7 22.1zM416 400c0-26.5-21.5-48-48-48l-224 0c-26.5 0-48 21.5-48 48s21.5 48 48 48l224 0c26.5 0 48-21.5 48-48zm-280 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm216-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM232 400a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faChartGantt = {\n  prefix: 'fas',\n  iconName: 'chart-gantt',\n  icon: [512, 512, [], \"e0e4\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 400c0 44.2 35.8 80 80 80l400 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 416c-8.8 0-16-7.2-16-16L64 64zm96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0zm64 112c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0zM384 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0z\"]\n};\nvar faVideo = {\n  prefix: 'fas',\n  iconName: 'video',\n  icon: [576, 512, [\"video-camera\"], \"f03d\", \"M96 64c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L96 64zM464 336l73.5 58.8c4.2 3.4 9.4 5.2 14.8 5.2 13.1 0 23.7-10.6 23.7-23.7l0-240.6c0-13.1-10.6-23.7-23.7-23.7-5.4 0-10.6 1.8-14.8 5.2L464 176 464 336z\"]\n};\nvar faVideoCamera = faVideo;\nvar faChessPawn = {\n  prefix: 'fas',\n  iconName: 'chess-pawn',\n  icon: [384, 512, [9823], \"f443\", \"M192-32c66.3 0 120 53.7 120 120 0 27-8.9 51.9-24 72 17.7 0 32 14.3 32 32s-14.3 32-32 32l-10.7 0 26.7 160 56.2 70.3c5 6.3 7.8 14.1 7.8 22.2 0 19.6-15.9 35.5-35.5 35.5L51.5 512c-19.6 0-35.5-15.9-35.5-35.5 0-8.1 2.7-15.9 7.8-22.2L80 384 106.7 224 96 224c-17.7 0-32-14.3-32-32s14.3-32 32-32c-15.1-20.1-24-45-24-72 0-66.3 53.7-120 120-120z\"]\n};\nvar faSynagogue = {\n  prefix: 'fas',\n  iconName: 'synagogue',\n  icon: [576, 512, [128333], \"f69b\", \"M16 80c0-35.3 28.7-64 64-64s64 28.7 64 64l0 32-128 0 0-32zm0 368l0-288 128 0 126.2-84.2c10.7-7.2 24.8-7.2 35.5 0l126.2 84.2 128 0 0 288c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64zM560 112l-128 0 0-32c0-35.3 28.7-64 64-64s64 28.7 64 64l0 32zM224 384l0 80 128 0 0-80c0-35.3-28.7-64-64-64s-64 28.7-64 64zm64-152a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"]\n};\nvar faBuildingCircleCheck = {\n  prefix: 'fas',\n  iconName: 'building-circle-check',\n  icon: [576, 512, [], \"e4d2\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-10.5-14.6-19-30.7-25.1-48l-74.9 0 0-80c0-17.7 14.3-32 32-32l32 0c2 0 4 .2 5.9 .5 6-23.6 16.3-45.4 30.1-64.5l-4 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 4c27.5-19.8 60.3-32.4 96-35.4L416 64c0-35.3-28.7-64-64-64L96 0zm32 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM576 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"]\n};\nvar faCalendarPlus = {\n  prefix: 'fas',\n  iconName: 'calendar-plus',\n  icon: [448, 512, [], \"f271\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zm96 192c-13.3 0-24 10.7-24 24l0 48-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0 0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48 48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-48c0-13.3-10.7-24-24-24z\"]\n};\nvar faWheelchairMove = {\n  prefix: 'fas',\n  iconName: 'wheelchair-move',\n  icon: [448, 512, [\"wheelchair-alt\"], \"e2ce\", \"M312 56a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM205.4 124.1c-6.4-5.2-15.6-4.7-21.4 1.1l-33.4 33.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L138.8 80c29-29 75.2-31.4 107-5.5l81.3 66c21.4 17.4 23.8 49.2 5.2 69.5l-41.8 46 98 0c30.3 0 53 27.7 47.1 57.4L407.4 454.3c-3.5 17.3-20.3 28.6-37.7 25.1s-28.6-20.3-25.1-37.7L369 320 316.8 320c2.1 10.3 3.2 21 3.2 32 0 88.4-71.6 160-160 160S0 440.4 0 352 71.6 192 160 192c6 0 11.9 .3 17.8 1l50.4-50.4-22.7-18.5zM160 448a96 96 0 1 0 0-192 96 96 0 1 0 0 192z\"]\n};\nvar faWheelchairAlt = faWheelchairMove;\nvar faUserShield = {\n  prefix: 'fas',\n  iconName: 'user-shield',\n  icon: [576, 512, [], \"f505\", \"M224 248a120 120 0 1 0 0-240 120 120 0 1 0 0 240zm-29.7 56C95.8 304 16 383.8 16 482.3 16 498.7 29.3 512 45.7 512l251.5 0C261 469.4 240 414.5 240 356.4l0-31.1c0-7.3 1-14.5 2.9-21.3l-48.6 0zm251 184.5l-13.3 6.3 0-188.1 96 32 0 19.6c0 55.8-32.2 106.5-82.7 130.3zM421.9 259.5l-112 37.3c-13.1 4.4-21.9 16.6-21.9 30.4l0 31.1c0 74.4 43 142.1 110.2 173.7l18.5 8.7c4.8 2.2 10 3.4 15.2 3.4s10.5-1.2 15.2-3.4l18.5-8.7C533 500.3 576 432.6 576 358.2l0-31.1c0-13.8-8.8-26-21.9-30.4l-112-37.3c-6.6-2.2-13.7-2.2-20.2 0z\"]\n};\nvar faBold = {\n  prefix: 'fas',\n  iconName: 'bold',\n  icon: [384, 512, [], \"f032\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l32 0 0 320-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0c70.7 0 128-57.3 128-128 0-46.5-24.8-87.3-62-109.7 18.7-22.3 30-51 30-82.3 0-70.7-57.3-128-128-128L32 32zM288 160c0 35.3-28.7 64-64 64l-96 0 0-128 96 0c35.3 0 64 28.7 64 64zM128 416l0-128 128 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-128 0z\"]\n};\nvar faHeartPulse = {\n  prefix: 'fas',\n  iconName: 'heart-pulse',\n  icon: [512, 512, [\"heartbeat\"], \"f21e\", \"M256 107.9L241 87.1C216 52.5 175.9 32 133.1 32 59.6 32 0 91.6 0 165.1l0 2.6c0 23.6 6.2 48 16.6 72.3l106 0c3.2 0 6.1-1.9 7.4-4.9l31.8-76.3c3.7-8.8 12.3-14.6 21.8-14.8s18.3 5.4 22.2 14.1l51.3 113.9 41.4-82.8c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3l23.2 46.3c1.4 2.7 4.1 4.4 7.2 4.4l123.6 0c10.5-24.3 16.6-48.7 16.6-72.3l0-2.6C512 91.6 452.4 32 378.9 32 336.2 32 296 52.5 271 87.1l-15 20.7zM469.6 288l-97.8 0c-21.2 0-40.6-12-50.1-31l-1.7-3.4-42.5 85.1c-4.1 8.3-12.7 13.5-22 13.3s-17.6-5.7-21.4-14.1l-49.3-109.5-10.5 25.2c-8.7 20.9-29.1 34.5-51.7 34.5l-80.2 0c47.2 73.8 123 141.7 170.4 177.9 12.4 9.4 27.6 14.1 43.1 14.1s30.8-4.6 43.1-14.1C346.6 429.7 422.4 361.8 469.6 288z\"]\n};\nvar faHeartbeat = faHeartPulse;\nvar faSquareRootVariable = {\n  prefix: 'fas',\n  iconName: 'square-root-variable',\n  icon: [576, 512, [\"square-root-alt\"], \"f698\", \"M282.6 78.1c8-27.3 33-46.1 61.4-46.1l200 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L344 96 238.7 457c-3.6 12.3-14.1 21.2-26.8 22.8s-25.1-4.6-31.5-15.6L77.6 288 32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l45.6 0c22.8 0 43.8 12.1 55.3 31.8l65.2 111.8 84.4-289.5zM393.4 233.4c12.5-12.5 32.8-12.5 45.3 0l41.4 41.4 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-41.4 41.4 41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-41.4-41.4-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l41.4-41.4-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3z\"]\n};\nvar faSquareRootAlt = faSquareRootVariable;\nvar faHandsBubbles = {\n  prefix: 'fas',\n  iconName: 'hands-bubbles',\n  icon: [512, 512, [\"hands-wash\"], \"e05e\", \"M384 64a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm96 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM128 464a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM0 160l.1 72.6c0 44.8 17.6 87.1 47.9 118.4 .3-77 40.1-148.4 105.4-189.3l1.9-1.2c-2.5-3.7-2.8-8.6-.4-12.7l62-107.4c6.6-11.5 2.7-26.2-8.8-32.8S182 5 175.4 16.5l-68 117.8 0 0 0 0-43.3 75 0-49.3c0-17.7-14.4-32-32-32S0 142.4 0 160zm213.6-35.9c14.1-8.8 29.8-12.7 45.2-12.1l36.5-63.3c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8l-67.1 116.2 27-16.9zm86.5-35.7l-16.4 28.4c15.1 5.5 28.6 15.6 38.3 29.7l19.7-34.2c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8zm46.4 63.7l-12.5 21.7c2 8.6 2.5 17.5 1.7 26.1l4.3 0 0 0 34.4 0 13.7-23.8c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8zM283.1 175c-9.4-15-29.1-19.5-44.1-10.2l-60.2 37.6C127.3 234.7 96 291.2 96 352l0 8c0 8.9 .8 17.6 2.2 26.1 35.4 8.2 61.8 40 61.8 77.9 0 6.3-.7 12.5-2.1 18.4 25.2 18.6 56.4 29.6 90.1 29.6l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-92 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l124 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-124 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l156 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-156 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l124 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-136 0 0 0 0 0-93.2 0 46.2-28.9c15-9.4 19.5-29.1 10.2-44.1z\"]\n};\nvar faHandsWash = faHandsBubbles;\nvar faMarker = {\n  prefix: 'fas',\n  iconName: 'marker',\n  icon: [512, 512, [], \"f5a1\", \"M408.8 0c-27.4 0-53.6 10.9-73 30.2L318.1 48 305 34.9c-28.1-28.1-73.7-28.1-101.8 0L103 135c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L237.1 68.9c9.4-9.4 24.6-9.4 33.9 0L284.1 81.9 184 182.1 329.9 328 481.8 176.2c19.4-19.4 30.2-45.6 30.2-73 0-57-46.2-103.2-103.2-103.2zM102.4 263.7c-49.9 49.9-83.3 114-95.5 183.5L.4 483.8C-1 491.6 1.5 499.4 7 505s13.4 8 21.1 6.7l36.7-6.5c69.5-12.3 133.6-45.6 183.5-95.5L296 361.9 150.1 216 102.4 263.7z\"]\n};\nvar faClipboard = {\n  prefix: 'fas',\n  iconName: 'clipboard',\n  icon: [384, 512, [128203], \"f328\", \"M320 32l-8.6 0C300.4 12.9 279.7 0 256 0L128 0C104.3 0 83.6 12.9 72.6 32L64 32C28.7 32 0 60.7 0 96L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-352c0-35.3-28.7-64-64-64zM136 112c-13.3 0-24-10.7-24-24s10.7-24 24-24l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-112 0z\"]\n};\nvar faPlaceOfWorship = {\n  prefix: 'fas',\n  iconName: 'place-of-worship',\n  icon: [512, 512, [], \"f67f\", \"M160 79l0 81-44.8 33.6C103.1 202.7 96 216.9 96 232l0 40-60.6 30.3C13.7 313.2 0 335.3 0 359.6L0 448c0 35.3 28.7 64 64 64 74.7 0 85.4 0 320 0l64 0c35.3 0 64-28.7 64-64l0-88.4c0-24.2-13.7-46.4-35.4-57.2L416 272 416 232c0-15.1-7.1-29.3-19.2-38.4L352 160 352 79c0-9.5-4.2-18.5-11.5-24.6L271.4-3.2c-8.9-7.4-21.8-7.4-30.7 0L171.5 54.4C164.2 60.5 160 69.5 160 79zm96 241c35.3 0 64 28.7 64 64l0 80-128 0 0-80c0-35.3 28.7-64 64-64z\"]\n};\nvar faCannabis = {\n  prefix: 'fas',\n  iconName: 'cannabis',\n  icon: [512, 512, [], \"f55f\", \"M256 0c5.3 0 10.3 2.7 13.3 7.1 15.8 23.5 36.7 63.7 49.2 109 7.3 26.4 11.8 55.3 10.3 84 11.6-8.9 23.7-16.7 35.9-23.7 41-23.3 84.4-36.9 112.2-42.5 5.2-1 10.7 .6 14.4 4.4s5.4 9.2 4.4 14.5c-5.6 27.7-19.3 70.9-42.7 111.7-9.1 15.9-19.9 31.7-32.5 46.3 27.9 6.6 52.5 17.2 67.3 25.4 5.1 2.8 8.2 8.2 8.2 14s-3.2 11.2-8.2 14c-15.2 8.4-40.9 19.5-69.8 26.1-20.2 4.6-42.9 7.2-65.2 4.6l8.3 33.2c1.5 6.1-.6 12.5-5.5 16.4s-11.6 4.6-17.2 1.8L280 417.2 280 488c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-70.8-58.5 29.1c-5.6 2.8-12.3 2.1-17.2-1.8s-7-10.3-5.5-16.4l8.3-33.2c-22.2 2.6-45 0-65.2-4.6-28.9-6.6-54.5-17.6-69.8-26.1-5.1-2.8-8.2-8.2-8.2-14s3.2-11.2 8.2-14l6.2-3.3c15-7.6 36.8-16.4 61.1-22.2-12.5-14.5-23.3-30.4-32.4-46.2-23.4-40.8-37.1-84-42.7-111.7-1.1-5.2 .6-10.7 4.4-14.5s9.2-5.4 14.4-4.4c27.9 5.5 71.2 19.2 112.2 42.5 12.2 6.9 24.3 14.8 35.8 23.7-1.4-28.7 3.1-57.6 10.3-84 12.5-45.3 33.4-85.5 49.2-109l1.2-1.6C246.9 2 251.3 0 256 0z\"]\n};\nvar faPeopleRoof = {\n  prefix: 'fas',\n  iconName: 'people-roof',\n  icon: [576, 512, [], \"e537\", \"M302.3-12.6c-9-4.5-19.6-4.5-28.6 0l-256 128C1.9 123.3-4.5 142.5 3.4 158.3s27.1 22.2 42.9 14.3L288 51.8 529.7 172.6c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9l-256-128zM288 272a56 56 0 1 0 0-112 56 56 0 1 0 0 112zm0 48c-53 0-96 43-96 96l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32c0-53-43-96-96-96zM160 256a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm352 0a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM112 336c-44.2 0-80 35.8-80 80l0 33.1c0 17 13.8 30.9 30.9 30.9l87.8 0c-4.3-9.8-6.7-20.6-6.7-32l0-48c0-18.4 3.5-36 9.8-52.2-12.2-7.5-26.5-11.8-41.8-11.8zM425.4 480l87.8 0c17 0 30.9-13.8 30.9-30.9l0-33.1c0-44.2-35.8-80-80-80-15.3 0-29.6 4.3-41.8 11.8 6.3 16.2 9.8 33.8 9.8 52.2l0 48c0 11.4-2.4 22.2-6.7 32z\"]\n};\nvar faDisease = {\n  prefix: 'fas',\n  iconName: 'disease',\n  icon: [512, 512, [], \"f7fa\", \"M236.5 29.4L224 48c-20 30-53.6 48-89.7 48L68 96c-37.5 0-67.9 30.4-67.9 67.9 0 18 7.2 35.2 19.9 47.9l27 27c11 11 17.2 25.9 17.2 41.5 0 15.8-6.4 30.9-17.7 42L33.4 335.1c-11.1 10.8-17.3 25.7-17.3 41.2 0 36.8 34.1 64.2 70.1 56.2l62.3-13.8c7.7-1.7 15.7-2.6 23.6-2.6 32.8 0 64.2 14.6 85.2 39.8l30.5 36.6c10.4 12.4 25.7 19.6 41.9 19.6 30.1 0 54.5-24.4 54.5-54.5l0-51.2c0-41.4 25.4-78.5 64-93.5l22.2-8.6c25.2-9.8 41.8-34.1 41.8-61.1 0-26.4-15.9-50.3-40.3-60.5L429 164.8c-33.2-13.9-57.6-43-65.5-78.1l-7.9-35.2c-6.8-30.1-33.5-51.5-64.3-51.5-22 0-42.6 11-54.8 29.4zM160 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faBookBible = {\n  prefix: 'fas',\n  iconName: 'book-bible',\n  icon: [448, 512, [\"bible\"], \"f647\", \"M96 512c-53 0-96-43-96-96L0 96C0 43 43 0 96 0L400 0c26.5 0 48 21.5 48 48l0 288c0 20.9-13.4 38.7-32 45.3l0 66.7c17.7 0 32 14.3 32 32s-14.3 32-32 32L96 512zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0 0-64-256 0zM192 80l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 112c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-112 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"]\n};\nvar faBible = faBookBible;\nvar faChessBoard = {\n  prefix: 'fas',\n  iconName: 'chess-board',\n  icon: [448, 512, [], \"f43c\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 64l0 64 64 0 0-64 64 0 0 64 64 0 0-64 64 0 0 64-64 0 0 64 64 0 0 64-64 0 0 64 64 0 0 64-64 0 0-64-64 0 0 64-64 0 0-64-64 0 0 64-64 0 0-64 64 0 0-64-64 0 0-64 64 0 0-64-64 0 0-64 64 0zm64 128l64 0 0-64-64 0 0 64zm0 64l0-64-64 0 0 64 64 0zm64 0l-64 0 0 64 64 0 0-64zm0 0l64 0 0-64-64 0 0 64z\"]\n};\nvar faMars = {\n  prefix: 'fas',\n  iconName: 'mars',\n  icon: [512, 512, [9794], \"f222\", \"M320 32c0-17.7 14.3-32 32-32L480 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-50.7-95 95c19.5 28.4 31 62.7 31 99.8 0 97.2-78.8 176-176 176S32 401.2 32 304 110.8 128 208 128c37 0 71.4 11.4 99.8 31l95-95-50.7 0c-17.7 0-32-14.3-32-32zM208 416a112 112 0 1 0 0-224 112 112 0 1 0 0 224z\"]\n};\nvar faLaptop = {\n  prefix: 'fas',\n  iconName: 'laptop',\n  icon: [640, 512, [128187], \"f109\", \"M128 32C92.7 32 64 60.7 64 96l0 240 64 0 0-240 384 0 0 240 64 0 0-240c0-35.3-28.7-64-64-64L128 32zM19.2 384C8.6 384 0 392.6 0 403.2 0 445.6 34.4 480 76.8 480l486.4 0c42.4 0 76.8-34.4 76.8-76.8 0-10.6-8.6-19.2-19.2-19.2L19.2 384z\"]\n};\nvar faUserXmark = {\n  prefix: 'fas',\n  iconName: 'user-xmark',\n  icon: [576, 512, [\"user-times\"], \"f235\", \"M254.1 304c98.5 0 178.3 79.8 178.3 178.3 0 16.4-13.3 29.7-29.7 29.7L46.1 512c-16.4 0-29.7-13.3-29.7-29.7 0-98.5 79.8-178.3 178.3-178.3l59.4 0zM530.3 108.1c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-33.9 33.9 33.9 33.9c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-33.9-33.9-33.9 33.9c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l33.9-33.9-33.9-33.9c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l33.9 33.9 33.9-33.9zM224.4 248a120 120 0 1 1 0-240 120 120 0 1 1 0 240z\"]\n};\nvar faUserTimes = faUserXmark;\nvar faFlagUsa = {\n  prefix: 'fas',\n  iconName: 'flag-usa',\n  icon: [448, 512, [], \"f74d\", \"M32 0C49.7 0 64 14.3 64 32l0 16 69-17.2c38.1-9.5 78.3-5.1 113.5 12.5 46.3 23.2 100.8 23.2 147.1 0l9.6-4.8C423.8 28.1 448 43.1 448 66.1l0 36.1-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-20.3-9-41.8-14.7-63.6-16.9l0 32.2c17.4 2.1 34.4 6.7 50.6 13.9l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4l33.7-12.3 0 62-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-40.2-17.9-85-22.5-128.1-13.3l-63.5 13.6 0 32.7 70.2-15.1c36.4-7.8 74.3-3.9 108.4 11.3l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4l33.7-12.3 0 61.9-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-40.2-17.9-85-22.5-128.1-13.3l-63.5 13.6 0 32.7 70.2-15.1c36.4-7.8 74.3-3.9 108.4 11.3l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4l33.7-12.3 0 33.5c0 13.3-8.3 25.3-20.8 30l-34.7 13c-46.2 17.3-97.6 14.6-141.7-7.4-37.9-19-81.4-23.7-122.5-13.4L64 400 64 480c0 17.7-14.3 32-32 32S0 497.7 0 480L0 32C0 14.3 14.3 0 32 0zm80 96a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm32 0a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-32 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm32 0a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"]\n};\nvar faHandMiddleFinger = {\n  prefix: 'fas',\n  iconName: 'hand-middle-finger',\n  icon: [448, 512, [128405], \"f806\", \"M232 0c-22.1 0-40 17.9-40 40l0 164.2c-8.5-7.6-19.7-12.2-32-12.2-26.5 0-48 21.5-48 48l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-55.7c-2 1.4-3.9 3-5.8 4.5L55 284.8C40.4 297 32 315 32 334L32 372c0 38 16.9 74 46.1 98.3l5.4 4.5c28.8 24 65 37.1 102.4 37.1L304 512c70.7 0 128-57.3 128-128l0-96c0-26.5-21.5-48-48-48-12.4 0-23.6 4.7-32.1 12.3-1.9-24.8-22.6-44.3-47.9-44.3-12.3 0-23.5 4.6-32 12.2L272 40c0-22.1-17.9-40-40-40z\"]\n};\nvar faMortarPestle = {\n  prefix: 'fas',\n  iconName: 'mortar-pestle',\n  icon: [512, 512, [], \"f5a7\", \"M504.3 11.1C493.3-1.6 474.5-3.7 461 6.2L252.3 160 397.3 160 502.6 54.6c11.8-11.8 12.6-30.8 1.6-43.5zM32 192c-17.7 0-32 14.3-32 32s14.3 32 32 32c0 82.5 43.4 147.7 123.9 176.2-11.1 13.9-19.4 30.3-23.9 48.1-4.4 17.1 10.4 31.7 28.1 31.7l192 0c17.7 0 32.4-14.6 28.1-31.7-4.5-17.8-12.8-34.1-23.9-48.1 80.5-28.6 123.9-93.7 123.9-176.2 17.7 0 32-14.3 32-32s-14.3-32-32-32L32 192z\"]\n};\nvar faHeadSideCough = {\n  prefix: 'fas',\n  iconName: 'head-side-cough',\n  icon: [512, 512, [], \"e061\", \"M96 512l64 0c53 0 96-43 96-96l0-80c0-8.8 7.2-16 16-16l1 0c26 0 47-21 47-47 0-11-3.9-21.6-10.9-30.1L273.3 200C271.4 197.6 270.1 194.7 269.7 191.7 254 83.3 160.7 0 48 0 40.4 0 32.9 .4 25.4 1.1 10.5 2.6 0 15.9 0 30.9L0 480c0 17.7 14.3 32 32 32l64 0zm16-320a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm63.1 237.2l-41.5-3.5c-12.2-1-21.6-11.2-21.6-23.4 0-10.8 7.3-20.2 17.8-22.8l40.4-10.1c19.2-4.8 37.8 9.7 37.8 29.5 0 17.8-15.2 31.8-32.9 30.3zM480 312a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm-40 24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm-64 48a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm128 0a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM480 504a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm-40-72a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faPlaneLock = {\n  prefix: 'fas',\n  iconName: 'plane-lock',\n  icon: [640, 512, [], \"e558\", \"M232 24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 127.3 82.1 75.2C409.7 248.1 400 274.9 400 304l0 24.4c-7.3 6.6-13.6 14.2-18.7 22.7l-37.3-12.4 0 99.7 24 19.2 0 38.3c0 13.5 2.8 26.4 7.8 38.1L288 512 179.9 539c-10.1 2.5-19.9-5.1-19.9-15.5l0-19.8c0-4.9 2.2-9.5 6-12.5l66-52.8 0-99.7-162.9 54.3C58.7 396.4 48 388.7 48 377.8l0-43.7c0-9 3.8-17.5 10.4-23.6L232 151.3 232 24zM560 304.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM416 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"]\n};\nvar faBatteryThreeQuarters = {\n  prefix: 'fas',\n  iconName: 'battery-three-quarters',\n  icon: [640, 512, [\"battery-4\"], \"f241\", \"M528 128c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-416 0c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l416 0zM112 64c-44.2 0-80 35.8-80 80l0 224c0 44.2 35.8 80 80 80l416 0c44.2 0 80-35.8 80-80l0-48c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80L112 64zm56 112c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24l224 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24l-224 0z\"]\n};\nvar faBattery4 = faBatteryThreeQuarters;\nvar faFrancSign = {\n  prefix: 'fas',\n  iconName: 'franc-sign',\n  icon: [320, 512, [], \"e18f\", \"M80 32C62.3 32 48 46.3 48 64l0 256-24 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 88 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-88 0 0-64 144 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-144 0 0-96 176 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32z\"]\n};\nvar faFilterCircleDollar = {\n  prefix: 'fas',\n  iconName: 'filter-circle-dollar',\n  icon: [576, 512, [\"funnel-dollar\"], \"f662\", \"M32 64C19.1 64 7.4 71.8 2.4 83.8S.2 109.5 9.4 118.6L192 301.3 192 416c0 8.5 3.4 16.6 9.4 22.6l64 64c2.5 2.5 5.3 4.5 8.3 6-21.2-30.9-33.6-68.3-33.6-108.6 0-99.4 75.5-181.1 172.3-191l90.4-90.4c9.2-9.2 11.9-22.9 6.9-34.9S492.9 64 480 64L32 64zM576 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zM416 320c0-8.8 7.2-16 16-16s16 7.2 16 16l0 8 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-45.8 0c-5.6 0-10.2 4.6-10.2 10.2 0 4.9 3.5 9.1 8.3 10l45 8.2c20 3.6 34.6 21.1 34.6 41.5 0 23.3-18.9 42.2-42.2 42.2l-5.8 0 0 8c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-8-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l53.8 0c5.6 0 10.2-4.6 10.2-10.2 0-4.9-3.5-9.1-8.3-10l-45-8.2c-20-3.6-34.6-21.1-34.6-41.5 0-22.6 17.7-41 40-42.1l0-8.1z\"]\n};\nvar faFunnelDollar = faFilterCircleDollar;\nvar faCheese = {\n  prefix: 'fas',\n  iconName: 'cheese',\n  icon: [512, 512, [], \"f7ef\", \"M512 240.2l0 15.8-512 0c0-20 10-38.7 26.6-49.8L274.9 40.7c8.6-5.7 18.6-8.7 28.9-8.7 115 0 208.2 93.2 208.2 208.2zm0 63.8l0 112c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-112 512 0z\"]\n};\nvar faCircleH = {\n  prefix: 'fas',\n  iconName: 'circle-h',\n  icon: [512, 512, [9405, \"hospital-symbol\"], \"f47e\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm96-344l0 176c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-64-96 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-176c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 96 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faHospitalSymbol = faCircleH;\nvar faSchool = {\n  prefix: 'fas',\n  iconName: 'school',\n  icon: [576, 512, [127979], \"f549\", \"M0 192c0-35.3 28.7-64 64-64l64 0 127.9-115.1c18.3-16.4 46-16.4 64.2 0L448 128 512 128c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192zM224 376l0 88 128 0 0-88c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zm-112 8c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zm16-144l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM496 384c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zm16-144l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM288 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128z\"]\n};\nvar faDiceFive = {\n  prefix: 'fas',\n  iconName: 'dice-five',\n  icon: [448, 512, [9860], \"f523\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM96 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM224 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64-64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 160a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faTornado = {\n  prefix: 'fas',\n  iconName: 'tornado',\n  icon: [448, 512, [127786], \"f76f\", \"M0 32L0 45.6C0 62.7 1.7 79.6 5 96l352.8 0c3.2-6.9 7.5-13.3 13-18.8l38.6-38.6c4.2-4.2 6.6-10 6.6-16 0-12.5-10.1-22.6-22.6-22.6L32 0C14.3 0 0 14.3 0 32zM355.7 144l-336 0c12.4 29.7 30.2 56.8 52.7 80l339.6 0-47.2-62.9c-3.9-5.2-7-11-9.2-17.1zM242.6 334.7c8.2 4.8 15.8 10.7 22.5 17.3L445 352c2-9.8 3-19.9 3-30.1 0-17.1-2.9-34-8.6-49.9L136 272 242.6 334.7zM294.3 400c5.3 17 6.5 35.2 3.6 53l-5.9 35.7c-2 12.2 7.4 23.4 19.8 23.4 5.3 0 10.4-2.1 14.2-5.9l78.2-78.2c8.5-8.5 15.8-17.8 21.9-27.9l-131.8 0z\"]\n};\nvar faJetFighter = {\n  prefix: 'fas',\n  iconName: 'jet-fighter',\n  icon: [576, 512, [\"fighter-jet\"], \"f0fb\", \"M496.2 206.8c-10.7-4.5-22.2-6.8-33.8-6.8L362 200 248 48 296 48c13.3 0 24-10.7 24-24S309.3 0 296 0L152 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l8 0 0 152-54.4 0-52.8-66c-3-3.8-7.6-6-12.5-6L16 128c-8.8 0-16 7.2-16 16l0 88 40 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0 0 88c0 8.8 7.2 16 16 16l24.3 0c4.9 0 9.5-2.2 12.5-6l52.8-66 54.4 0 0 152-8 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 114-152 100.4 0c11.6 0 23.1-2.3 33.8-6.8l65-27.1c8.9-3.7 14.8-12.5 14.8-22.2s-5.8-18.4-14.8-22.2l-65-27.1z\"]\n};\nvar faFighterJet = faJetFighter;\nvar faThumbsDown = {\n  prefix: 'fas',\n  iconName: 'thumbs-down',\n  icon: [512, 512, [128078, 61576], \"f165\", \"M384 32c26.5 0 48 21.5 48 48 0 6.3-1.3 12.2-3.4 17.7 20.4 5.5 35.4 24.1 35.4 46.3 0 9.1-2.6 17.6-7 24.9 22.2 4.2 39 23.7 39 47.1 0 19.7-11.9 36.6-28.9 44 17 7.4 28.9 24.3 28.9 44 0 26.5-21.5 48-48 48l-160 0 28.2 70.4c2.5 6.3 3.8 13.1 3.8 19.9l0 4.2c0 27.3-22.1 49.4-49.4 49.4-18.7 0-35.8-10.6-44.2-27.3L170.1 356.3c-6.7-13.3-10.1-28-10.1-42.9l0-186.6c0-19.4 8.9-37.8 24-50l12.2-9.7C224.6 44.4 259.8 32 296.1 32L384 32zM80 96c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32L0 128c0-17.7 14.3-32 32-32l48 0z\"]\n};\nvar faBroom = {\n  prefix: 'fas',\n  iconName: 'broom',\n  icon: [576, 512, [129529], \"f51a\", \"M566.6 54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192-34.7-34.7c-4.2-4.2-10-6.6-16-6.6-12.5 0-22.6 10.1-22.6 22.6l0 29.1 108.3 108.3 29.1 0c12.5 0 22.6-10.1 22.6-22.6 0-6-2.4-11.8-6.6-16l-34.7-34.7 192-192zM341.1 353.4L222.6 234.9c-42.7-3.7-85.2 11.7-115.8 42.3l-8 8c-22.3 22.3-34.8 52.5-34.8 84 0 6.8 7.1 11.2 13.2 8.2l51.1-25.5c5-2.5 9.5 4.1 5.4 7.9L7.3 473.4C2.7 477.6 0 483.6 0 489.9 0 502.1 9.9 512 22.1 512l173.3 0c38.8 0 75.9-15.4 103.4-42.8 30.6-30.6 45.9-73.1 42.3-115.8z\"]\n};\nvar faFileImport = {\n  prefix: 'fas',\n  iconName: 'file-import',\n  icon: [384, 512, [\"arrow-right-to-file\"], \"f56f\", \"M64 0C28.7 0 0 28.7 0 64l0 240 182.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-182.1 0 0 96c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-277.5c0-17-6.7-33.3-18.7-45.3L258.7 18.7C246.7 6.7 230.5 0 213.5 0L64 0zM325.5 176L232 176c-13.3 0-24-10.7-24-24L208 58.5 325.5 176z\"]\n};\nvar faArrowRightToFile = faFileImport;\nvar faUtensils = {\n  prefix: 'fas',\n  iconName: 'utensils',\n  icon: [512, 512, [127860, 61685, \"cutlery\"], \"f2e7\", \"M63.9 14.4C63.1 6.2 56.2 0 48 0s-15.1 6.2-16 14.3L17.9 149.7c-1.3 6-1.9 12.1-1.9 18.2 0 45.9 35.1 83.6 80 87.7L96 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224.4c44.9-4.1 80-41.8 80-87.7 0-6.1-.6-12.2-1.9-18.2L223.9 14.3C223.1 6.2 216.2 0 208 0s-15.1 6.2-15.9 14.4L178.5 149.9c-.6 5.7-5.4 10.1-11.1 10.1-5.8 0-10.6-4.4-11.2-10.2L143.9 14.6C143.2 6.3 136.3 0 128 0s-15.2 6.3-15.9 14.6L99.8 149.8c-.5 5.8-5.4 10.2-11.2 10.2-5.8 0-10.6-4.4-11.1-10.1L63.9 14.4zM448 0C432 0 320 32 320 176l0 112c0 35.3 28.7 64 64 64l32 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-448c0-17.7-14.3-32-32-32z\"]\n};\nvar faCutlery = faUtensils;\nvar faIdBadge = {\n  prefix: 'fas',\n  iconName: 'id-badge',\n  icon: [384, 512, [], \"f2c1\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zm96 352l64 0c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16L96 448c-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80zm-24-96a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM152 64l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faSpider = {\n  prefix: 'fas',\n  iconName: 'spider',\n  icon: [512, 512, [128375], \"f717\", \"M369.3-31c11.9-3.5 24.4 2.7 29 13.9l.8 2.3 40 136c2.5 8.4 .1 17.5-6.1 23.7l-64.1 64.1 76.4-20.8 19.9-59.8 .9-2.3c5-11.1 17.7-16.8 29.5-12.9 11.8 3.9 18.5 16.1 15.8 28l-.7 2.4-24 72c-2.5 7.6-8.7 13.4-16.5 15.6l-91.1 24.8 91.1 24.8c7.7 2.1 13.9 8 16.5 15.6l24 72 .7 2.4c2.7 11.9-4.1 24.1-15.8 28-11.8 3.9-24.5-1.8-29.5-12.9l-.9-2.3-19.9-59.8-76.4-20.8 64.1 64.1c6.1 6.1 8.5 15.1 6.2 23.4l-40 144-.8 2.3c-4.4 11.3-16.8 17.7-28.8 14.4-12-3.3-19.3-15.2-17.2-27.2l.5-2.4 36.2-130.5-37.2-37.2C351 406 308.4 448 256 448s-95-42-96-94.1l-37 37 36 122.3 .6 2.4c2.2 11.9-4.9 23.9-16.8 27.4-11.9 3.5-24.4-2.7-29-13.9l-.8-2.3-40-136c-2.5-8.4-.1-17.5 6.1-23.8l64.1-64.1-76.4 20.8-19.9 59.8-.9 2.3c-5 11.1-17.7 16.8-29.5 12.9s-18.5-16.1-15.8-28l.7-2.4 24-72c2.5-7.6 8.7-13.4 16.5-15.6l91.1-24.8-91.1-24.8c-7.7-2.1-13.9-8-16.5-15.6l-24-72-.7-2.4c-2.7-11.9 4.1-24.1 15.8-28s24.5 1.8 29.5 12.9l.9 2.3 19.9 59.8 76.4 20.8-64.1-64.1c-6.2-6.2-8.5-15.3-6.1-23.7l40-136 .8-2.3c4.6-11.3 17.1-17.4 29-13.9 11.9 3.5 19 15.5 16.8 27.4l-.6 2.4-36 122.3 53 53c1-43.3 36.4-78.1 79.9-78.1s78.9 34.8 79.9 78.2l53.1-53.1-36-122.3-.6-2.4c-2.2-12 4.9-23.9 16.8-27.4z\"]\n};\nvar faMobileRetro = {\n  prefix: 'fas',\n  iconName: 'mobile-retro',\n  icon: [384, 512, [], \"e527\", \"M16 64C16 28.7 44.7 0 80 0L304 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64L16 64zm80 96l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-128 0c-17.7 0-32 14.3-32 32zm8 192a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 72c0-13.3-10.7-24-24-24s-24 10.7-24 24 10.7 24 24 24 24-10.7 24-24zm64-72a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 72c0-13.3-10.7-24-24-24s-24 10.7-24 24 10.7 24 24 24 24-10.7 24-24zm64-72a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 72c0-13.3-10.7-24-24-24s-24 10.7-24 24 10.7 24 24 24 24-10.7 24-24zM168 40c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0z\"]\n};\nvar faSignsPost = {\n  prefix: 'fas',\n  iconName: 'signs-post',\n  icon: [512, 512, [\"map-signs\"], \"f277\", \"M256.4 0c-17.7 0-32 14.3-32 32l0 32-160 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l160 0 0 64-153.4 0c-4.2 0-8.3 1.7-11.3 4.7l-48 48c-6.2 6.2-6.2 16.4 0 22.6l48 48c3 3 7.1 4.7 11.3 4.7l153.4 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 160 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-160 0 0-64 153.4 0c4.2 0 8.3-1.7 11.3-4.7l48-48c6.2-6.2 6.2-16.4 0-22.6l-48-48c-3-3-7.1-4.7-11.3-4.7l-153.4 0 0-32c0-17.7-14.3-32-32-32z\"]\n};\nvar faMapSigns = faSignsPost;\nvar faGroupArrowsRotate = {\n  prefix: 'fas',\n  iconName: 'group-arrows-rotate',\n  icon: [512, 512, [], \"e4f6\", \"M37.6 122.3c-11.5 18.7-20.6 39-27 60.5-5 16.9 4.6 34.8 21.5 39.8s34.8-4.6 39.8-21.5c18.4-61.9 67.3-110.8 129.2-129.2 16.9-5 26.6-22.9 21.5-39.8S199.8 5.6 182.9 10.6C161.4 17 141.1 26.1 122.3 37.6 112.3 15.4 89.9 0 64 0 28.7 0 0 28.7 0 64 0 89.9 15.4 112.3 37.6 122.3zm436.7 0c22.2-10 37.6-32.4 37.6-58.3 0-35.3-28.7-64-64-64-25.9 0-48.3 15.4-58.3 37.6-18.7-11.5-39-20.6-60.5-27-16.9-5-34.8 4.6-39.8 21.5s4.6 34.8 21.5 39.8c61.9 18.4 110.8 67.3 129.2 129.2 5 16.9 22.9 26.6 39.8 21.5s26.6-22.9 21.5-39.8c-6.4-21.5-15.5-41.8-27-60.5zM512 448c0-25.9-15.4-48.3-37.6-58.3 11.5-18.7 20.6-39 27-60.5 5-16.9-4.6-34.8-21.5-39.8s-34.8 4.6-39.8 21.5c-18.4 61.9-67.3 110.8-129.2 129.2-16.9 5-26.6 22.9-21.5 39.8s22.9 26.6 39.8 21.5c21.5-6.4 41.8-15.5 60.5-27 10 22.2 32.4 37.6 58.3 37.6 35.3 0 64-28.7 64-64zM37.6 389.7c-22.2 10-37.6 32.4-37.6 58.3 0 35.3 28.7 64 64 64 25.9 0 48.3-15.4 58.3-37.6 18.7 11.5 39 20.6 60.5 27 16.9 5 34.8-4.6 39.8-21.5s-4.6-34.8-21.5-39.8c-61.9-18.4-110.8-67.3-129.2-129.2-5-16.9-22.9-26.6-39.8-21.5S5.6 312.2 10.6 329.1c6.4 21.5 15.5 41.8 27 60.5zM256 192c15.6 0 30 5.6 41.1 14.9l-15.3 15.3c-6.6 6.6-1.9 17.8 7.4 17.8l60.5 0c5.7 0 10.4-4.7 10.4-10.4l0-60.5c0-9.3-11.2-13.9-17.8-7.4l-11.2 11.2c-19.8-17.9-46.2-28.9-75.1-28.9-43.6 0-81.3 24.9-99.8 61.1-6 11.8-1.4 26.3 10.4 32.3s26.3 1.4 32.3-10.4c10.6-20.8 32.2-34.9 57-34.9zm58.6 93.1c-10.6 20.8-32.2 34.9-57 34.9-15.7 0-30-5.6-41.1-14.9l15.3-15.3c6.6-6.6 1.9-17.8-7.4-17.8L164 272c-5.7 0-10.4 4.7-10.4 10.4l0 60.5c0 9.3 11.2 13.9 17.8 7.4l11.2-11.2c19.8 17.9 46.2 28.9 75.1 28.9 43.6 0 81.3-24.9 99.8-61.1 6-11.8 1.4-26.3-10.4-32.3s-26.3-1.4-32.3 10.4z\"]\n};\nvar faArrowsSplitUpAndLeft = {\n  prefix: 'fas',\n  iconName: 'arrows-split-up-and-left',\n  icon: [512, 512, [], \"e4bc\", \"M342.6-22.6c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l41.4-41.4 0 195.9c-18.8-10.9-40.7-17.1-64-17.1l-114.7 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 320 224 320c35.3 0 64 28.7 64 64 0 70.7 57.3 128 128 128l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-35.3 0-64-28.7-64-64l0-306.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z\"]\n};\nvar faFillDrip = {\n  prefix: 'fas',\n  iconName: 'fill-drip',\n  icon: [576, 512, [], \"f576\", \"M309.7 71.6l-64.4 64.4 33.4 33.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-33.4-33.4-96.4 96.4c-2.9 2.9-5.1 6.5-6.3 10.3l321.5 0 53.7-53.7c4.9-4.9 7.6-11.5 7.6-18.3s-2.7-13.5-7.6-18.3L346.3 71.6C341.5 66.7 334.9 64 328 64s-13.5 2.7-18.3 7.6zM58.3 232.4l96.4-96.4-49.4-49.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L200 90.7 264.4 26.3C281.3 9.5 304.1 0 328 0s46.7 9.5 63.6 26.3L517.7 152.4C534.5 169.3 544 192.1 544 216s-9.5 46.7-26.3 63.6L311.6 485.7C294.7 502.5 271.9 512 248 512s-46.7-9.5-63.6-26.3L58.3 359.6C41.5 342.7 32 319.9 32 296s9.5-46.7 26.3-63.6zM512 544c-35.3 0-64-28.7-64-64 0-25.2 32.6-79.6 51.2-108.7 6-9.4 19.5-9.4 25.5 0 18.7 29.1 51.2 83.5 51.2 108.7 0 35.3-28.7 64-64 64z\"]\n};\nvar faShieldHeart = {\n  prefix: 'fas',\n  iconName: 'shield-heart',\n  icon: [512, 512, [], \"e574\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2 .5 99.2 41.3 280.7 213.6 363.2 16.7 8 36.1 8 52.8 0 172.4-82.5 213.2-264 213.6-363.2 .1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM249.6 183.5l6.4 8.5 6.4-8.5c11.1-14.8 28.5-23.5 46.9-23.5 32.4 0 58.7 26.3 58.7 58.7l0 5.3c0 49.1-65.8 98.1-96.5 118.3-9.5 6.2-21.5 6.2-30.9 0-30.7-20.2-96.5-69.3-96.5-118.3l0-5.3c0-32.4 26.3-58.7 58.7-58.7 18.5 0 35.9 8.7 46.9 23.5z\"]\n};\nvar faPersonSkiingNordic = {\n  prefix: 'fas',\n  iconName: 'person-skiing-nordic',\n  icon: [576, 512, [\"skiing-nordic\"], \"f7ca\", \"M424.8 16a56 56 0 1 1 0 112 56 56 0 1 1 0-112zm99.8 193.7c7.6 15.2 1.9 33.6-12.6 42l0 180.3-32 0 0-164.2-10.1 5c-27.4 13.7-60.7 6.1-79.4-18.2l-19.6-25.5-39.5 68.8 24.8 12.4c29.5 14.7 42.9 49.5 31.1 80.2l-28.2 73.4 149.4 0c7.9 0 15.6-2.3 22.2-6.7l7.9-5.3c11-7.4 25.9-4.4 33.3 6.7s4.4 25.9-6.7 33.3l-7.9 5.3C543 506.9 526 512 508.6 512l-189.1 0c-.5 0-1 0-1.5 0L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l88 0c0-8.2 3.1-16.4 9.4-22.6l74.1-74.1 10.2-35.9c11.3 18.3 27.7 33.8 48.4 44.2l4.8 2.4-1.9 6.8c-3 10.5-8.6 20-16.3 27.7l-51.5 51.5 101.3 0 37.1-96.4-55.6-27.8C230.4 319 215.3 267 239.3 227.1l37.7-62.7-27.7-7.7c-9-2.5-18.1 3.2-20 12.3l-5.9 29.3c-3.1 15.6-17.1 26.3-32.5 25.7l-130 208-37.7 0 140.6-225c-3.4-6.3-4.6-13.8-3.1-21.3l5.9-29.3c9.1-45.6 55.1-73.8 99.9-61.4l32.5 9c46.7 13 88 40.8 117.6 79.3l24.9 32.3 40.4-20.2c15.8-7.9 35-1.5 42.9 14.3z\"]\n};\nvar faSkiingNordic = faPersonSkiingNordic;\nvar faSquareCheck = {\n  prefix: 'fas',\n  iconName: 'square-check',\n  icon: [448, 512, [9745, 9989, 61510, \"check-square\"], \"f14a\", \"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM342 145.7c-10.7-7.8-25.7-5.4-33.5 5.3L189.1 315.2 137 263.1c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c5 5 11.9 7.5 18.8 7s13.4-4.1 17.5-9.8L347.3 179.2c7.8-10.7 5.4-25.7-5.3-33.5z\"]\n};\nvar faCheckSquare = faSquareCheck;\nvar faBath = {\n  prefix: 'fas',\n  iconName: 'bath',\n  icon: [512, 512, [128705, \"bathtub\"], \"f2cd\", \"M96 77.3c0-7.3 5.9-13.3 13.3-13.3 3.5 0 6.9 1.4 9.4 3.9l14.9 14.9c-3.6 9.1-5.5 18.9-5.5 29.2 0 19.9 7.2 38 19.2 52-5.3 9.2-4 21.1 3.8 29 9.4 9.4 24.6 9.4 33.9 0L289 89c9.4-9.4 9.4-24.6 0-33.9-7.8-7.9-19.8-9.1-29-3.8-14-12-32.1-19.2-52-19.2-10.3 0-20.2 2-29.2 5.5L163.9 22.6C149.4 8.1 129.7 0 109.3 0 66.6 0 32 34.6 32 77.3L32 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 48c0 28.4 12.4 54 32 71.6L64 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-16 256 0 0 16c0 17.7 14.3 32 32 32s32-14.3 32-32l0-40.4c19.6-17.6 32-43.1 32-71.6l0-48c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 256 96 77.3z\"]\n};\nvar faBathtub = faBath;\nvar faChessBishop = {\n  prefix: 'fas',\n  iconName: 'chess-bishop',\n  icon: [320, 512, [9821], \"f43a\", \"M64 384L48.3 368.3C17.4 337.4 0 295.4 0 251.7 0 213.1 13.5 175.8 38.2 146.1L106.7 64 96 64C78.3 64 64 49.7 64 32S78.3 0 96 0L224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-10.7 0 47.6 57.1-85.9 85.9c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l82.3-82.3c18.7 27.3 28.7 59.7 28.7 93 0 43.7-17.4 85.7-48.3 116.6L256 384 312.2 454.3c5 6.3 7.8 14.1 7.8 22.2 0 19.6-15.9 35.5-35.5 35.5L35.5 512c-19.6 0-35.5-15.9-35.5-35.5 0-8.1 2.7-15.9 7.8-22.2L64 384z\"]\n};\nvar faPrescriptionBottleMedical = {\n  prefix: 'fas',\n  iconName: 'prescription-bottle-medical',\n  icon: [384, 512, [\"prescription-bottle-alt\"], \"f486\", \"M0 32C0 14.3 14.3 0 32 0L352 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64L0 32zM32 144l320 0 0 304c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-304zM160 248l0 40-40 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l40 0 0 40c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-40 40 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-40 0 0-40c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"]\n};\nvar faPrescriptionBottleAlt = faPrescriptionBottleMedical;\nvar faDrawPolygon = {\n  prefix: 'fas',\n  iconName: 'draw-polygon',\n  icon: [512, 512, [58055, \"vector-polygon\"], \"f5ee\", \"M64 0c23.7 0 44.4 12.9 55.4 32l273.1 0c11.1-19.1 31.7-32 55.4-32 35.3 0 64 28.7 64 64 0 34-26.5 61.8-60 63.9l-2.1 2.9-71.5 99.1c3.6 8 5.6 16.9 5.6 26.2s-2 18.2-5.6 26.2l2.2 3.1 69.3 96 2.1 2.9c33.5 2.1 60 29.9 60 63.9 0 35.3-28.7 64-64 64-23.7 0-44.4-12.9-55.4-32l-273.1 0c-11.1 19.1-31.7 32-55.4 32-35.3 0-64-28.7-64-64 0-23.7 12.9-44.4 32-55.4l0-273.1C12.9 108.4 0 87.7 0 64 0 28.7 28.7 0 64 0zM394.2 413.4l-65.5-90.6-2.2-3.1c-2.1 .2-4.3 .3-6.5 .3-35.3 0-64-28.7-64-64s28.7-64 64-64c2.2 0 4.4 .1 6.5 .3l67.7-93.7c-.6-.9-1.1-1.7-1.6-2.6L119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4l0 273.1c9.7 5.6 17.8 13.7 23.4 23.4l273.1 0c.5-.9 1.1-1.8 1.6-2.6z\"]\n};\nvar faVectorPolygon = faDrawPolygon;\nvar faICursor = {\n  prefix: 'fas',\n  iconName: 'i-cursor',\n  icon: [256, 512, [], \"f246\", \"M.1 29.3C-1.4 47 11.7 62.4 29.3 63.9l8 .7C70.5 67.3 96 95 96 128.3l0 95.7-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 95.7c0 33.3-25.5 61-58.7 63.8l-8 .7C11.7 449.6-1.4 465 .1 482.7S17 513.4 34.7 511.9l8-.7c34.1-2.8 64.2-18.9 85.4-42.9 21.2 24 51.2 40 85.4 42.9l8 .7c17.6 1.5 33.1-11.6 34.5-29.2s-11.6-33.1-29.2-34.5l-8-.7C185.5 444.7 160 417 160 383.7l0-95.7 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-95.7c0-33.3 25.5-61 58.7-63.8l8-.7c17.6-1.5 30.7-16.9 29.2-34.5S239-1.4 221.3 .1l-8 .7c-34.1 2.8-64.2 18.9-85.4 42.9-21.2-24-51.2-40-85.4-42.9l-8-.7C17-1.4 1.6 11.7 .1 29.3z\"]\n};\nvar faHeartCirclePlus = {\n  prefix: 'fas',\n  iconName: 'heart-circle-plus',\n  icon: [576, 512, [], \"e500\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM432 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm16 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0 0-48z\"]\n};\nvar faShieldDog = {\n  prefix: 'fas',\n  iconName: 'shield-dog',\n  icon: [512, 512, [], \"e573\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2 .5 99.2 41.3 280.7 213.6 363.2 16.7 8 36.1 8 52.8 0 172.4-82.5 213.2-264 213.6-363.2 .1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160.9 286.2c4.8 1.2 9.9 1.8 15.1 1.8 35.3 0 64-28.7 64-64l0-64 44.2 0c12.1 0 23.2 6.8 28.6 17.7l7.2 14.3 64 0c8.8 0 16 7.2 16 16l0 32c0 44.2-35.8 80-80 80l-48 0 0 50.7c0 7.3-5.9 13.3-13.3 13.3-1.8 0-3.6-.4-5.2-1.1l-98.7-42.3c-6.6-2.8-10.8-9.3-10.8-16.4 0-2.8 .6-5.5 1.9-8l15-30zM160 160l48 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-48c0-8.8 7.2-16 16-16zm128 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"]\n};\nvar faGreaterThanEqual = {\n  prefix: 'fas',\n  iconName: 'greater-than-equal',\n  icon: [448, 512, [], \"f532\", \"M21.9 94.4C5.1 88.8-3.9 70.6 1.7 53.9S25.4 28.1 42.1 33.6l384 128C439.2 166 448 178.2 448 192s-8.8 26-21.9 30.4l-384 128c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5L314.8 192 21.9 94.4zM416 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0z\"]\n};\nvar faEnvelopeOpen = {\n  prefix: 'fas',\n  iconName: 'envelope-open',\n  icon: [512, 512, [62135], \"f2b6\", \"M64.4 175.8L256 33.9 447.6 175.8 289.5 293c-9.7 7.2-21.4 11-33.5 11s-23.8-3.9-33.5-11L64.4 175.8zM256-32c-12.1 0-23.8 3.9-33.5 11L25.9 124.7C9.6 136.8 0 155.8 0 176.1L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-239.9c0-20.3-9.6-39.4-25.9-51.4L289.5-21c-9.7-7.2-21.4-11-33.5-11z\"]\n};\nvar faMound = {\n  prefix: 'fas',\n  iconName: 'mound',\n  icon: [512, 512, [], \"e52d\", \"M112.4 179.2C142 127.7 196.8 96 256.2 96s114.2 31.7 143.9 83.2L508.7 368c12.3 21.3-3.1 48-27.7 48L31.5 416c-24.6 0-40-26.6-27.7-48L112.4 179.2z\"]\n};\nvar faVoicemail = {\n  prefix: 'fas',\n  iconName: 'voicemail',\n  icon: [640, 512, [], \"f897\", \"M144 160a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM263.8 320c15.3-22.9 24.2-50.4 24.2-80 0-79.5-64.5-144-144-144S0 160.5 0 240 64.5 384 144 384l352 0c79.5 0 144-64.5 144-144S575.5 96 496 96 352 160.5 352 240c0 29.6 8.9 57.1 24.2 80l-112.5 0zM496 160a80 80 0 1 1 0 160 80 80 0 1 1 0-160z\"]\n};\nvar faVest = {\n  prefix: 'fas',\n  iconName: 'vest',\n  icon: [448, 512, [], \"e085\", \"M200 464l0-170.1c0-3.9-.5-7.8-1.4-11.6L144.4 65.4C162.1 77.2 188.2 88 224 88s61.9-10.8 79.6-22.6L249.4 282.3c-1 3.8-1.4 7.7-1.4 11.6L248 464c0 26.5 21.5 48 48 48l104 0c26.5 0 48-21.5 48-48l0-193.5c0-9.5-2.8-18.7-8.1-26.6l-47.9-71.8c-5.3-7.9-8.1-17.1-8.1-26.6L384 48c0-26.5-21.5-48-48-48l-3.5 0c-.3 0-.6 0-1 0-.6 0-1.2 0-1.8 0-18.8 0-34.1 9.7-44.1 18.8-9.3 8.4-28.5 21.2-61.7 21.2s-52.4-12.8-61.7-21.2c-10-9.1-25.3-18.8-44.1-18.8-.6 0-1.2 0-1.8 0-.3 0-.6 0-1 0L112 0C85.5 0 64 21.5 64 48l0 97.5c0 9.5-2.8 18.7-8.1 26.6L8.1 243.9C2.8 251.8 0 261.1 0 270.5L0 464c0 26.5 21.5 48 48 48l104 0c26.5 0 48-21.5 48-48z\"]\n};\nvar faAudioDescription = {\n  prefix: 'fas',\n  iconName: 'audio-description',\n  icon: [512, 512, [], \"f29e\", \"M0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm96 96l0 104c0 13.3 10.7 24 24 24s24-10.7 24-24l0-24 48 0 0 24c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104c0-35.3-28.7-64-64-64l-16 0c-35.3 0-64 28.7-64 64zm48 32l0-32c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 32-48 0zm152-96c-13.3 0-24 10.7-24 24l0 144c0 13.3 10.7 24 24 24l48 0c39.8 0 72-32.2 72-72l0-48c0-39.8-32.2-72-72-72l-48 0zm48 144l-24 0 0-96 24 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24z\"]\n};\nvar faW = {\n  prefix: 'fas',\n  iconName: 'w',\n  icon: [576, 512, [119], \"57\", \"M20.8 34c16.5-6.2 35 2.2 41.2 18.7L172.2 346.7 257.3 55c4-13.7 16.5-23 30.7-23s26.7 9.4 30.7 23L403.8 346.7 514 52.8c6.2-16.5 24.6-24.9 41.2-18.7S580.2 58.7 574 75.2l-144 384c-4.8 12.9-17.4 21.3-31.2 20.7s-25.7-9.8-29.5-23L288 178.3 206.7 457c-3.9 13.2-15.8 22.5-29.5 23s-26.3-7.8-31.2-20.7L2 75.2C-4.2 58.7 4.2 40.2 20.8 34z\"]\n};\nvar faEyeDropper = {\n  prefix: 'fas',\n  iconName: 'eye-dropper',\n  icon: [512, 512, [\"eye-dropper-empty\", \"eyedropper\"], \"f1fb\", \"M341.6 29.2l-101.6 101.6-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4 101.6-101.6c39-39 39-102.2 0-141.1s-102.2-39-141.1 0zM55.4 323.3c-15 15-23.4 35.4-23.4 56.6l0 42.4-26.6 39.9c-8.5 12.7-6.8 29.6 4 40.4s27.7 12.5 40.4 4l39.9-26.6 42.4 0c21.2 0 41.6-8.4 56.6-23.4l109.4-109.4-45.3-45.3-109.4 109.4c-3 3-7.1 4.7-11.3 4.7l-36.1 0 0-36.1c0-4.2 1.7-8.3 4.7-11.3l109.4-109.4-45.3-45.3-109.4 109.4z\"]\n};\nvar faEyeDropperEmpty = faEyeDropper;\nvar faEyedropper = faEyeDropper;\nvar faCircleXmark = {\n  prefix: 'fas',\n  iconName: 'circle-xmark',\n  icon: [512, 512, [61532, \"times-circle\", \"xmark-circle\"], \"f057\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM167 167c9.4-9.4 24.6-9.4 33.9 0l55 55 55-55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55 55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55-55 55c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l55-55-55-55c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faTimesCircle = faCircleXmark;\nvar faXmarkCircle = faCircleXmark;\nvar faTrailer = {\n  prefix: 'fas',\n  iconName: 'trailer',\n  icon: [640, 512, [], \"e041\", \"M32 96c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 256 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-296.4 0c.2 2.6 .4 5.3 .4 8 0 48.6-39.4 88-88 88s-88-39.4-88-88c0-2.7 .1-5.4 .4-8L96 416c-35.3 0-64-28.7-64-64L32 96zm408 16c-13.3 0-24 10.7-24 24l0 160c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24zM112 136l0 160c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24s-24 10.7-24 24zm176-24c-13.3 0-24 10.7-24 24l0 160c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24zM264 424a40 40 0 1 0 -80 0 40 40 0 1 0 80 0z\"]\n};\nvar faTurkishLiraSign = {\n  prefix: 'fas',\n  iconName: 'turkish-lira-sign',\n  icon: [448, 512, [\"try\", \"turkish-lira\"], \"e2bb\", \"M160 32c17.7 0 32 14.3 32 32l0 43.6 121.4-34.7c12.7-3.6 26 3.7 29.7 16.5s-3.7 26-16.5 29.7l-134.6 38.5 0 46.1 121.4-34.7c12.7-3.6 26 3.7 29.7 16.5s-3.7 26-16.5 29.7l-134.6 38.5 0 162.5 72 0c53 0 96-43 96-96 0-17.7 14.3-32 32-32s32 14.3 32 32c0 88.4-71.6 160-160 160l-104 0c-17.7 0-32-14.3-32-32l0-176.2-25.4 7.3c-12.7 3.6-26-3.7-29.7-16.5s3.7-26 16.5-29.7l38.6-11 0-46.1-25.4 7.3c-12.7 3.6-26-3.7-29.7-16.5s3.7-26 16.5-29.7l38.6-11 0-61.9c0-17.7 14.3-32 32-32z\"]\n};\nvar faTry = faTurkishLiraSign;\nvar faTurkishLira = faTurkishLiraSign;\nvar faVolcano = {\n  prefix: 'fas',\n  iconName: 'volcano',\n  icon: [512, 512, [127755], \"f770\", \"M160 144c-35.3 0-64-28.7-64-64s28.7-64 64-64c15.7 0 30 5.6 41.2 15 11.2-18.6 31.6-31 54.8-31s43.6 12.4 54.8 31c11.1-9.4 25.5-15 41.2-15 35.3 0 64 28.7 64 64s-28.7 64-64 64c-14.7 0-28.3-5-39.1-13.3l-32 48C275.3 187 266 192 256 192s-19.3-5-24.9-13.3l-32-48C188.3 139 174.7 144 160 144zM144 352l48.4-24.2c10.2-5.1 21.6-7.8 33-7.8 19.6 0 38.4 7.8 52.2 21.6l32.5 32.5c6.3 6.3 14.9 9.9 23.8 9.9 11.3 0 21.8-5.6 28-15l9.7-14.6-59-66.3c-9.1-10.2-22.2-16.1-35.9-16.1l-41.8 0c-13.7 0-26.8 5.9-35.9 16.1l-59.9 67.4 4.7-3.5zm19.4-95.8c18.2-20.5 44.3-32.2 71.8-32.2l41.8 0c27.4 0 53.5 11.7 71.8 32.2l150.2 169c8.5 9.5 13.2 21.9 13.2 34.7 0 28.8-23.4 52.2-52.2 52.2L52.2 512C23.4 512 0 488.6 0 459.8 0 447.1 4.7 434.7 13.2 425.2l150.2-169z\"]\n};\nvar faWandSparkles = {\n  prefix: 'fas',\n  iconName: 'wand-sparkles',\n  icon: [512, 512, [], \"f72b\", \"M464 6.1c9.5-8.5 24-8.1 33 .9l8 8c9 9 9.4 23.5 .9 33l-85.8 95.9c-2.6 2.9-4.1 6.7-4.1 10.7l0 21.4c0 8.8-7.2 16-16 16l-15.8 0c-4.6 0-8.9 1.9-11.9 5.3L100.7 500.9c-6.3 7.1-15.3 11.1-24.8 11.1-8.8 0-17.3-3.5-23.5-9.8L9.7 459.7c-6.2-6.2-9.7-14.7-9.7-23.5 0-9.5 4-18.5 11.1-24.8l111.6-99.8c3.4-3 5.3-7.4 5.3-11.9l0-27.6c0-8.8 7.2-16 16-16l34.6 0c3.9 0 7.7-1.5 10.7-4.1L464 6.1zM432 288c3.6 0 6.7 2.4 7.7 5.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8-14.8 51.7c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8l-14.8-51.7-51.7-14.8c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8 14.8-51.7c1-3.4 4.1-5.8 7.7-5.8zM87.7 69.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8-14.8 51.7c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8L57.5 166.5 5.8 151.7c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8 14.8-51.7c1-3.4 4.1-5.8 7.7-5.8s6.7 2.4 7.7 5.8zM208 0c3.7 0 6.9 2.5 7.8 6.1l6.8 27.3 27.3 6.8c3.6 .9 6.1 4.1 6.1 7.8s-2.5 6.9-6.1 7.8l-27.3 6.8-6.8 27.3c-.9 3.6-4.1 6.1-7.8 6.1s-6.9-2.5-7.8-6.1l-6.8-27.3-27.3-6.8c-3.6-.9-6.1-4.1-6.1-7.8s2.5-6.9 6.1-7.8l27.3-6.8 6.8-27.3c.9-3.6 4.1-6.1 7.8-6.1z\"]\n};\nvar faMicrophone = {\n  prefix: 'fas',\n  iconName: 'microphone',\n  icon: [384, 512, [], \"f130\", \"M192 0C139 0 96 43 96 96l0 128c0 53 43 96 96 96s96-43 96-96l0-128c0-53-43-96-96-96zM48 184c0-13.3-10.7-24-24-24S0 170.7 0 184l0 40c0 97.9 73.3 178.7 168 190.5l0 49.5-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-49.5c94.7-11.8 168-92.6 168-190.5l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 79.5-64.5 144-144 144S48 303.5 48 224l0-40z\"]\n};\nvar faCrown = {\n  prefix: 'fas',\n  iconName: 'crown',\n  icon: [576, 512, [128081], \"f521\", \"M313 87.2c9.2-7.3 15-18.6 15-31.2 0-22.1-17.9-40-40-40s-40 17.9-40 40c0 12.6 5.9 23.9 15 31.2L194.6 194.8c-10 15.7-31.3 19.6-46.2 8.4L88.9 158.7c4.5-6.4 7.1-14.3 7.1-22.7 0-22.1-17.9-40-40-40s-40 17.9-40 40c0 21.8 17.5 39.6 39.2 40L87.8 393.5c4.7 31.3 31.6 54.5 63.3 54.5l273.8 0c31.7 0 58.6-23.2 63.3-54.5L520.8 176c21.7-.4 39.2-18.2 39.2-40 0-22.1-17.9-40-40-40s-40 17.9-40 40c0 8.4 2.6 16.3 7.1 22.7l-59.4 44.6c-14.9 11.2-36.2 7.3-46.2-8.4L313 87.2z\"]\n};\nvar faTentArrowTurnLeft = {\n  prefix: 'fas',\n  iconName: 'tent-arrow-turn-left',\n  icon: [512, 512, [], \"e580\", \"M-.5 113l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-31-31 350.1 0c22.1 0 40 17.9 40 40l0 24c0 13.3 10.7 24 24 24s24-10.7 24-24l0-24c0-48.6-39.4-88-88-88l-350.1 0 31-31c9.4-9.4 9.4-24.6 0-33.9S80.9-2.3 71.5 7L-.5 79c-9.4 9.4-9.4 24.6 0 33.9zM60.3 292.6L37.1 476c-2.4 19.1 12.5 36 31.7 36l154.5 0c17.7 0 32-14.3 32-32l0-117.4c0-5.9 4.7-10.6 10.6-10.6 4 0 7.7 2.3 9.5 5.9l68.2 136.5c5.4 10.8 16.5 17.7 28.6 17.7l71.9 0c19.3 0 34.2-16.9 31.7-36L452.7 292.7c-1.2-9.7-6.9-18.4-15.3-23.4L271.9 169.9c-10.2-6.1-22.9-6.1-33.1 .1L75.4 269.3c-8.3 5.1-13.9 13.7-15.1 23.3z\"]\n};\nvar faTruckFast = {\n  prefix: 'fas',\n  iconName: 'truck-fast',\n  icon: [640, 512, [\"shipping-fast\"], \"f48b\", \"M64 96c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 32 50.7 0c17 0 33.3 6.7 45.3 18.7L621.3 192c12 12 18.7 28.3 18.7 45.3L640 384c0 35.3-28.7 64-64 64l-3.3 0c-10.4 36.9-44.4 64-84.7 64s-74.2-27.1-84.7-64l-102.6 0c-10.4 36.9-44.4 64-84.7 64s-74.2-27.1-84.7-64l-3.3 0c-35.3 0-64-28.7-64-64l0-48-40 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 240c-13.3 0-24-10.7-24-24s10.7-24 24-24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 144c-13.3 0-24-10.7-24-24S10.7 96 24 96l40 0zM576 288l0-50.7-45.3-45.3-50.7 0 0 96 96 0zM256 424a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm232 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"]\n};\nvar faShippingFast = faTruckFast;\nvar faUserPen = {\n  prefix: 'fas',\n  iconName: 'user-pen',\n  icon: [640, 512, [\"user-edit\"], \"f4ff\", \"M256.1 248a120 120 0 1 0 0-240 120 120 0 1 0 0 240zm-29.7 56c-98.5 0-178.3 79.8-178.3 178.3 0 16.4 13.3 29.7 29.7 29.7l196.5 0 10.9-54.5c4.3-21.7 15-41.6 30.6-57.2l67.3-67.3c-28-18.3-61.4-28.9-97.4-28.9l-59.4 0zM332.3 466.9l-11.9 59.6c-.2 .9-.3 1.9-.3 2.9 0 8 6.5 14.6 14.6 14.6 1 0 1.9-.1 2.9-.3l59.6-11.9c12.4-2.5 23.8-8.6 32.7-17.5l118.9-118.9-80-80-118.9 118.9c-8.9 8.9-15 20.3-17.5 32.7zm267.8-123c22.1-22.1 22.1-57.9 0-80s-57.9-22.1-80 0l-28.8 28.8 80 80 28.8-28.8z\"]\n};\nvar faUserEdit = faUserPen;\nvar faUserClock = {\n  prefix: 'fas',\n  iconName: 'user-clock',\n  icon: [576, 512, [], \"f4fd\", \"M224 8a120 120 0 1 1 0 240 120 120 0 1 1 0-240zM194.3 304l59.4 0c3.9 0 7.9 .1 11.8 .4-16.2 28.2-25.5 60.8-25.5 95.6 0 41.8 13.4 80.5 36 112L45.7 512C29.3 512 16 498.7 16 482.3 16 383.8 95.8 304 194.3 304zM288 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-80c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0 0-48c0-8.8-7.2-16-16-16z\"]\n};\nvar faShower = {\n  prefix: 'fas',\n  iconName: 'shower',\n  icon: [512, 512, [128703], \"f2cc\", \"M64 131.9c0-19.8 16.1-35.9 35.9-35.9 9.5 0 18.6 3.8 25.4 10.5l16.2 16.2c-21 38.9-17.4 87.5 10.9 123L151 247c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L345 121c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-1.3 1.3c-35.5-28.3-84.1-31.9-123-10.9L170.5 61.3C151.8 42.5 126.4 32 99.9 32 44.7 32 0 76.7 0 131.9L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-316.1zM256 352a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm32-32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faSquareCaretUp = {\n  prefix: 'fas',\n  iconName: 'square-caret-up',\n  icon: [448, 512, [\"caret-square-up\"], \"f151\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 160c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9S337.5 320 328 320l-208 0c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z\"]\n};\nvar faCaretSquareUp = faSquareCaretUp;\nvar faMapLocation = {\n  prefix: 'fas',\n  iconName: 'map-location',\n  icon: [640, 512, [\"map-marked\"], \"f59f\", \"M576 48c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4L413.5 77.5 234.1 17.6c-8.1-2.7-16.8-2.1-24.4 1.7l-128 64C70.8 88.8 64 99.9 64 112l0 352c0 11.1 5.7 21.4 15.2 27.2s21.2 6.4 31.1 1.4l116.1-58.1 173.3 57.8c-4.3-6.4-8.5-13.1-12.6-19.9-11-18.3-21.9-39.3-30-61.8l-101.2-33.7 0-284.5 128 42.7 0 99.3c31-35.8 77-58.4 128-58.4 22.6 0 44.2 4.4 64 12.5L576 48zM392 341.9c0 68.9 64.1 150.4 98.6 189.3 11.6 13 31.3 13 42.9 0 34.5-38.9 98.6-120.4 98.6-189.3 0-65.1-53.7-117.9-120-117.9S392 276.8 392 341.9z\"]\n};\nvar faMapMarked = faMapLocation;\nvar faPenFancy = {\n  prefix: 'fas',\n  iconName: 'pen-fancy',\n  icon: [512, 512, [128395, 10002], \"f5ac\", \"M373.5 27.1c15-17.2 36.7-27.1 59.6-27.1 43.6 0 79 35.4 79 79 0 22.8-9.9 44.6-27.1 59.6L283.7 313.8 273 303 209 239 198.2 228.3 373.5 27.1zM161.1 259C162 260 188 286 239 337l13.9 13.9-17.1 74.2c-3.9 17.1-16.9 30.7-33.8 35.4l-169.8 47.5 92.3-92.3c1.2 .1 2.3 .2 3.5 .2 17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32c0 1.2 .1 2.4 .2 3.5L3.9 479.8 51.5 310c4.7-16.9 18.3-29.9 35.4-33.8L161.1 259z\"]\n};\nvar faEuroSign = {\n  prefix: 'fas',\n  iconName: 'euro-sign',\n  icon: [448, 512, [8364, \"eur\", \"euro\"], \"f153\", \"M73.3 192C100.8 99.5 186.5 32 288 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-65.6 0-122 39.5-146.7 96L272 192c13.3 0 24 10.7 24 24s-10.7 24-24 24l-143.2 0c-.5 5.3-.8 10.6-.8 16s.3 10.7 .8 16L272 272c13.3 0 24 10.7 24 24s-10.7 24-24 24l-130.7 0c24.7 56.5 81.1 96 146.7 96l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-101.5 0-187.2-67.5-214.7-160L40 320c-13.3 0-24-10.7-24-24s10.7-24 24-24l24.6 0c-.7-10.5-.7-21.5 0-32L40 240c-13.3 0-24-10.7-24-24s10.7-24 24-24l33.3 0z\"]\n};\nvar faEur = faEuroSign;\nvar faEuro = faEuroSign;\nvar faHouseCircleXmark = {\n  prefix: 'fas',\n  iconName: 'house-circle-xmark',\n  icon: [640, 512, [], \"e50b\", \"M496 544a144 144 0 1 1 0-288 144 144 0 1 1 0 288zM268.6 6.5c12.2-9.3 29.7-8.7 41.2 2l217.6 202c-10.2-1.7-20.7-2.6-31.3-2.6-78.6 0-146.2 47.2-175.9 114.8-5-1.8-10.5-2.8-16.1-2.8l-32 0c-26.5 0-48 21.5-48 48l0 96 90.9 0c6.1 17.3 14.6 33.4 25.2 48L144 512c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208 2.4-2zM555.3 340.7c-6.2-6.2-16.4-6.2-22.6 0l-36.7 36.7-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l36.7 36.7-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l36.7-36.7 36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-36.7-36.7 36.7-36.7c6.2-6.2 6.2-16.4 0-22.6z\"]\n};\nvar faLiraSign = {\n  prefix: 'fas',\n  iconName: 'lira-sign',\n  icon: [384, 512, [8356], \"f195\", \"M84.9 256l-28.4 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l11.6 0C53.2 124.7 116.8 42 207.6 42l8.2 0c33.6 0 66.2 11.3 92.5 32.2l16.1 12.7c13.9 11 16.2 31.1 5.2 45s-31.1 16.2-45 5.2l-16.1-12.7c-15-11.9-33.6-18.4-52.8-18.4l-8.2 0c-53.8 0-90.1 52.9-73.5 102l162.4 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-145.1 0c2.3 10.6 3.6 21.3 3.9 32l141.2 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L150 336c-4.8 18.6-12.6 36.5-23.6 52.9l-18.1 27.1 212.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-272 0c-11.8 0-22.6-6.5-28.2-16.9s-5-23 1.6-32.9l51.2-76.8c3.7-5.6 6.9-11.4 9.4-17.4l-26 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l34.8 0c-.5-10.8-2.6-21.6-6.4-32z\"]\n};\nvar faYenSign = {\n  prefix: 'fas',\n  iconName: 'yen-sign',\n  icon: [384, 512, [165, \"cny\", \"jpy\", \"rmb\", \"yen\"], \"f157\", \"M74.9 46.7c-9.6-14.9-29.4-19.2-44.2-9.6S11.5 66.4 21.1 81.3L143.7 272 88 272c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 0 32-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 0 48c0 17.7 14.3 32 32 32s32-14.3 32-32l0-48 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0 0-32 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-55.7 0 122.6-190.7c9.6-14.9 5.3-34.7-9.6-44.2s-34.7-5.3-44.2 9.6L192 228.8 74.9 46.7z\"]\n};\nvar faCny = faYenSign;\nvar faJpy = faYenSign;\nvar faRmb = faYenSign;\nvar faYen = faYenSign;\nvar faBoxOpen = {\n  prefix: 'fas',\n  iconName: 'box-open',\n  icon: [640, 512, [], \"f49e\", \"M560.3 237.2c10.4 11.8 28.3 14.4 41.8 5.5 14.7-9.8 18.7-29.7 8.9-44.4l-48-72c-2.8-4.2-6.6-7.7-11.1-10.2L351.4 4.7c-19.3-10.7-42.8-10.7-62.2 0L88.8 116c-5.4 3-9.7 7.4-12.6 12.8L27.7 218.7c-12.6 23.4-3.8 52.5 19.6 65.1l33 17.7 0 53.3c0 23 12.4 44.3 32.4 55.7l176 99.7c19.6 11.1 43.5 11.1 63.1 0l176-99.7c20.1-11.4 32.4-32.6 32.4-55.7l0-117.5zm-240-9.8L170.2 144 320.3 60.6 470.4 144 320.3 227.4zm-41.5 50.2l-21.3 46.2-165.8-88.8 25.4-47.2 161.7 89.8z\"]\n};\nvar faTruckField = {\n  prefix: 'fas',\n  iconName: 'truck-field',\n  icon: [640, 512, [], \"e58d\", \"M32 96c0-35.3 28.7-64 64-64l224 0c23.7 0 44.4 12.9 55.4 32l40.4 0c32.4 0 61.6 19.6 74 49.5l43.8 106.3 1.7 4.2 24.7 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-.4 0c.2 2.6 .4 5.3 .4 8 0 48.6-39.4 88-88 88s-88-39.4-88-88c0-2.7 .1-5.4 .4-8l-144.7 0c.2 2.6 .4 5.3 .4 8 0 48.6-39.4 88-88 88s-88-39.4-88-88c0-3.6 .2-7.1 .6-10.5-19-6.4-32.6-24.4-32.6-45.5l0-48c-17.7 0-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32l0-32zm352 32l0 96 82.1 0-35.4-86.1c-2.5-6-8.3-9.9-14.8-9.9L384 128zM192 392a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm280 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"]\n};\nvar faLocationPinLock = {\n  prefix: 'fas',\n  iconName: 'location-pin-lock',\n  icon: [512, 512, [], \"e51f\", \"M0 188.6C0 84.4 86 0 192 0 294.1 0 377.6 78.3 383.6 177 320.7 185.1 272 238.8 272 304l0 24.4c-19.6 17.6-32 43.1-32 71.5l0 75.7c-9.9 11.6-18.9 21.7-26.4 29.8-11.8 12.8-31.5 12.8-43.3 0-50.2-54.5-170.4-197.5-170.4-316.8zM192 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm240 48.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM288 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"]\n};\nvar faPersonPraying = {\n  prefix: 'fas',\n  iconName: 'person-praying',\n  icon: [384, 512, [128720, \"pray\"], \"f683\", \"M320 64a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM200.7 264l22.9 31.5c6.5 8.9 16.3 14.7 27.2 16.1s21.9-1.7 30.4-8.7l88-72c17.1-14 19.6-39.2 5.6-56.3s-39.2-19.6-56.3-5.6l-55.2 45.2-26.2-36c-15.6-21.5-40.6-34.2-67.2-34.2-30.9 0-59.2 17.1-73.6 44.4L47.8 280.9c-20.2 38.5-9.4 85.9 25.6 111.8L126.6 432 40 432c-22.1 0-40 17.9-40 40s17.9 40 40 40l208 0c17.3 0 32.6-11.1 38-27.5s-.3-34.4-14.2-44.7l-116.1-85.8 45-90z\"]\n};\nvar faPray = faPersonPraying;\nvar faClipboardList = {\n  prefix: 'fas',\n  iconName: 'clipboard-list',\n  icon: [384, 512, [], \"f46d\", \"M311.4 32l8.6 0c35.3 0 64 28.7 64 64l0 352c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l8.6 0C83.6 12.9 104.3 0 128 0L256 0c23.7 0 44.4 12.9 55.4 32zM248 112c13.3 0 24-10.7 24-24s-10.7-24-24-24L136 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0zM128 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm32 0c0 13.3 10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0c-13.3 0-24 10.7-24 24zm0 128c0 13.3 10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0c-13.3 0-24 10.7-24 24zM96 416a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faSackDollar = {\n  prefix: 'fas',\n  iconName: 'sack-dollar',\n  icon: [512, 512, [128176], \"f81d\", \"M328 112l-144 0-37.3-74.5c-1.8-3.6-2.7-7.6-2.7-11.6 0-14.3 11.6-25.9 25.9-25.9L342.1 0c14.3 0 25.9 11.6 25.9 25.9 0 4-.9 8-2.7 11.6L328 112zM169.6 160l172.8 0 48.7 40.6C457.6 256 496 338 496 424.5 496 472.8 456.8 512 408.5 512l-305.1 0C55.2 512 16 472.8 16 424.5 16 338 54.4 256 120.9 200.6L169.6 160zM260 224c-11 0-20 9-20 20l0 4c-28.8 .3-52 23.7-52 52.5 0 25.7 18.5 47.6 43.9 51.8l41.7 7c6 1 10.4 6.2 10.4 12.3 0 6.9-5.6 12.5-12.5 12.5L216 384c-11 0-20 9-20 20s9 20 20 20l24 0 0 4c0 11 9 20 20 20s20-9 20-20l0-4.7c25-4.1 44-25.7 44-51.8 0-25.7-18.5-47.6-43.9-51.8l-41.7-7c-6-1-10.4-6.2-10.4-12.3 0-6.9 5.6-12.5 12.5-12.5l47.5 0c11 0 20-9 20-20s-9-20-20-20l-8 0 0-4c0-11-9-20-20-20z\"]\n};\nvar faMountainSun = {\n  prefix: 'fas',\n  iconName: 'mountain-sun',\n  icon: [576, 512, [], \"e52f\", \"M256.5 0c14.7 0 28.2 8.1 35.2 21l216 400c6.7 12.4 6.4 27.4-.8 39.5-7.2 12.1-20.3 19.5-34.3 19.5l-432 0c-14.1 0-27.1-7.4-34.3-19.5s-7.5-27.1-.8-39.5l216-400 2.9-4.6C231.7 6.2 243.6 0 256.5 0zM170.4 249.9l26.8 26.8c6.2 6.2 16.4 6.2 22.6 0l43.3-43.3c6-6 14.1-9.4 22.6-9.4l42.8 0-72.1-133.5-86.1 159.4zM496.5 160a80 80 0 1 1 0-160 80 80 0 1 1 0 160z\"]\n};\nvar faArrowUpWideShort = {\n  prefix: 'fas',\n  iconName: 'arrow-up-wide-short',\n  icon: [576, 512, [\"sort-amount-up\"], \"f161\", \"M150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96zM320 480l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faSortAmountUp = faArrowUpWideShort;\nvar faUsersLine = {\n  prefix: 'fas',\n  iconName: 'users-line',\n  icon: [576, 512, [], \"e592\", \"M224 128a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM176 336c0-61.9 50.1-112 112-112s112 50.1 112 112l0 8c0 13.3-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24l0-8zM392 144a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm27.2 100.4c9.1-2.9 18.8-4.4 28.8-4.4 53 0 96 43 96 96l0 10.7c0 11.8-9.6 21.3-21.3 21.3l-78.8 0c2.7-7.5 4.1-15.6 4.1-24l0-8c0-34.1-10.6-65.7-28.8-91.6zm-262.4 0c-18.2 26-28.8 57.5-28.8 91.6l0 8c0 8.4 1.4 16.5 4.1 24l-78.8 0C41.6 368 32 358.4 32 346.7L32 336c0-53 43-96 96-96 10 0 19.7 1.5 28.8 4.4zM72 144a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM0 440c0-13.3 10.7-24 24-24l528 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 464c-13.3 0-24-10.7-24-24z\"]\n};\nvar faStarOfDavid = {\n  prefix: 'fas',\n  iconName: 'star-of-david',\n  icon: [512, 512, [10017], \"f69a\", \"M415.9 311.9l-27.8 48.1 55.7 0-27.8-48.1zM383.6 256l-60.2-104-134.8 0-60.2 104 60.2 104 134.8 0 60.2-104zm64.7 0l58.4 100.9c3.5 6 5.3 12.8 5.3 19.7 0 21.7-17.6 39.4-39.4 39.4l-117 0-61.3 105.8C286.5 535.6 271.8 544 256 544s-30.5-8.4-38.4-22.2l-61.3-105.8-117 0c-21.7 0-39.4-17.6-39.4-39.4 0-6.9 1.8-13.7 5.3-19.7L63.7 256 5.3 155.1C1.8 149.1 0 142.3 0 135.4 0 113.6 17.6 96 39.4 96l117 0 61.3-105.8C225.5-23.6 240.2-32 256-32s30.5 8.4 38.4 22.2l61.3 105.8 117 0c21.7 0 39.4 17.6 39.4 39.4 0 6.9-1.8 13.7-5.3 19.7L448.3 256zM388.1 152l27.8 48.1 27.8-48.1-55.7 0zM291 96l-35-60.4-35 60.4 70 0zM123.9 152l-55.7 0 27.8 48.1 27.8-48.1zM96.1 311.9l-27.8 48.1 55.7 0-27.8-48.1zM221 416l35 60.4 35-60.4-70 0z\"]\n};\nvar faNotesMedical = {\n  prefix: 'fas',\n  iconName: 'notes-medical',\n  icon: [512, 512, [], \"f481\", \"M96 352c0 35.3 28.7 64 64 64l181.5 0c17 0 33.3-6.7 45.3-18.7L493.3 290.7c12-12 18.7-28.3 18.7-45.3L512 64c0-35.3-28.7-64-64-64L160 0C124.7 0 96 28.7 96 64l0 288zM288 112l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48c0-8.8 7.2-16 16-16zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120L0 448c0 35.3 28.7 64 64 64l264 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L64 464c-8.8 0-16-7.2-16-16l0-328z\"]\n};\nvar faAustralSign = {\n  prefix: 'fas',\n  iconName: 'austral-sign',\n  icon: [448, 512, [], \"e0a9\", \"M266.5 240l-85 0 42.5-106.4 42.5 106.4zm68.9 0L262.9 58.3C256.5 42.4 241.1 32 224 32s-32.5 10.4-38.9 26.3L112.6 240 32 240c-13.3 0-24 10.7-24 24s10.7 24 24 24l61.4 0-19.2 48-42.3 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l23.1 0-20.8 52.1c-6.6 16.4 1.4 35 17.9 41.6s35-1.4 41.6-17.9l30.3-75.9 200 0 30.3 75.9c6.6 16.4 25.2 24.4 41.6 17.9s24.4-25.2 17.9-41.6L392.9 384 416 384c13.3 0 24-10.7 24-24s-10.7-24-24-24l-42.3 0-19.2-48 61.4 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80.6 0zm-49.7 48l19.2 48-161.6 0 19.2-48 123.3 0z\"]\n};\nvar faClipboardUser = {\n  prefix: 'fas',\n  iconName: 'clipboard-user',\n  icon: [384, 512, [], \"f7f3\", \"M311.4 32l8.6 0c35.3 0 64 28.7 64 64l0 352c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l8.6 0C83.6 12.9 104.3 0 128 0L256 0c23.7 0 44.4 12.9 55.4 32zM248 112c13.3 0 24-10.7 24-24s-10.7-24-24-24L136 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0zM192 344a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM98.3 413c-12.9 15.6 2.2 35 22.4 35l142.5 0c20.2 0 35.3-19.4 22.4-35-14.7-17.7-36.9-29-61.7-29l-64 0c-24.8 0-47 11.3-61.7 29z\"]\n};\nvar faFileImage = {\n  prefix: 'fas',\n  iconName: 'file-image',\n  icon: [384, 512, [128443], \"f1c5\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM128 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM92.6 448l198.8 0c15.8 0 28.6-12.8 28.6-28.6 0-7.3-2.8-14.4-7.9-19.7L215.3 297.9c-6-6.3-14.4-9.9-23.2-9.9l-.3 0c-8.8 0-17.1 3.6-23.2 9.9L71.9 399.7C66.8 405 64 412.1 64 419.4 64 435.2 76.8 448 92.6 448z\"]\n};\nvar faSquareCaretRight = {\n  prefix: 'fas',\n  iconName: 'square-caret-right',\n  icon: [448, 512, [\"caret-square-right\"], \"f152\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM320 256c0 6.7-2.8 13-7.7 17.6l-112 104c-7 6.5-17.2 8.2-25.9 4.4S160 369.5 160 360l0-208c0-9.5 5.7-18.2 14.4-22s18.9-2.1 25.9 4.4l112 104c4.9 4.5 7.7 10.9 7.7 17.6z\"]\n};\nvar faCaretSquareRight = faSquareCaretRight;\nvar faVial = {\n  prefix: 'fas',\n  iconName: 'vial',\n  icon: [512, 512, [129514], \"f492\", \"M342.6 9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L306.7 64 28.1 342.6C10.1 360.6 0 385 0 410.5L0 416c0 53 43 96 96 96l5.5 0c25.5 0 49.9-10.1 67.9-28.1l278.6-278.6 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160zM205.3 256l146.7-146.7 50.7 50.7-96 96-101.5 0z\"]\n};\nvar faHelicopter = {\n  prefix: 'fas',\n  iconName: 'helicopter',\n  icon: [576, 512, [128641], \"f533\", \"M176 32c-13.3 0-24 10.7-24 24s10.7 24 24 24l152 0 0 48-220.8 0-32.8-39.4C69.9 83.2 63.1 80 56 80L24 80C15.7 80 8 84.3 3.6 91.4s-4.8 15.9-1.1 23.4l48 96C54.6 218.9 62.9 224 72 224l107.8 0 104 143.1c15.1 20.7 39.1 32.9 64.7 32.9l75.5 0c75.1 0 136-60.9 136-136S499.1 128 424 128l-48 0 0-48 152 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L176 32zM376 192l48 0c39.8 0 72 32.2 72 72s-32.2 72-72 72l-48 0 0-144zM552 416c-13.3 0-24 10.7-24 24 0 4.4-3.6 8-8 8l-272 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l272 0c30.9 0 56-25.1 56-56 0-13.3-10.7-24-24-24z\"]\n};\nvar faMitten = {\n  prefix: 'fas',\n  iconName: 'mitten',\n  icon: [448, 512, [], \"f7b5\", \"M352 384L64 384 5.4 178.9C1.8 166.4 0 153.4 0 140.3 0 62.8 62.8 0 140.3 0l3.4 0c66 0 123.5 44.9 139.5 108.9l31.4 125.8 17.6-20.1C344.8 200.2 362.9 192 382 192l2.8 0c34.9 0 63.3 28.3 63.3 63.3 0 15.9-6 31.2-16.8 42.9L352 384zM32 464c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32l0 16c0 17.7-14.3 32-32 32L64 512c-17.7 0-32-14.3-32-32l0-16z\"]\n};\nvar faGasPump = {\n  prefix: 'fas',\n  iconName: 'gas-pump',\n  icon: [512, 512, [9981], \"f52f\", \"M32 64C32 28.7 60.7 0 96 0L256 0c35.3 0 64 28.7 64 64l0 192 8 0c48.6 0 88 39.4 88 88l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-154c-27.6-7.1-48-32.2-48-62l0-59.5-25.8-28.3c-8.9-9.8-8.2-25 1.6-33.9s25-8.2 33.9 1.6l71.7 78.8c9.4 10.3 14.6 23.7 14.6 37.7L512 376c0 39.8-32.2 72-72 72s-72-32.2-72-72l0-32c0-22.1-17.9-40-40-40l-8 0 0 161.4c9.3 3.3 16 12.2 16 22.6 0 13.3-10.7 24-24 24L40 512c-13.3 0-24-10.7-24-24 0-10.5 6.7-19.3 16-22.6L32 64zM96 80l0 96c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16L112 64c-8.8 0-16 7.2-16 16z\"]\n};\nvar faEnvelopeCircleCheck = {\n  prefix: 'fas',\n  iconName: 'envelope-circle-check',\n  icon: [640, 512, [], \"e4e8\", \"M64 112c0-26.5 21.5-48 48-48l416 0c26.5 0 48 21.5 48 48l0 81.4c-24.4-11.2-51.4-17.4-80-17.4-87.7 0-161.7 58.8-184.7 139.2-7.1-1.3-14.1-4.2-20.1-8.8l-208-156C71.1 141.3 64 127.1 64 112zM304 368c0 28.6 6.2 55.6 17.4 80L128 448c-35.3 0-64-28.7-64-64l0-188 198.4 148.8c12.6 9.4 26.9 15.4 41.7 17.9 0 1.8-.1 3.5-.1 5.3zm48 0a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm201.4-60.9c-7.1-5.2-17.2-3.6-22.4 3.5l-53 72.9-26.8-26.8c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.6s8.9-2.8 11.7-6.5l64-88c5.2-7.1 3.6-17.2-3.5-22.3z\"]\n};\nvar faPersonSkating = {\n  prefix: 'fas',\n  iconName: 'person-skating',\n  icon: [512, 512, [\"skating\"], \"f7c5\", \"M368 56a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM128 128c0-17.7 14.3-32 32-32l150.1 0c49.9 0 74.9 60.3 39.6 95.6l-63.9 63.9 69.8 31c17.3 7.7 28.5 24.9 28.5 43.9l0 85.6c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-75.2-82.4-36.6c-41-18.2-51-72-19.3-103.7l40.4-40.4-98.7 0c-17.7 0-32-14.3-32-32zM89.4 361.4l75.9-75.9c7.7 19.7 21.6 37.3 41 49.6l-71.6 71.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3zm346.5 87.1c8.6 2.1 13.8 10.8 11.6 19.4l-.4 1.7c-6.2 24.9-28.6 42.4-54.3 42.4L304 512c-8.8 0-16-7.2-16-16s7.2-16 16-16l88.8 0c11 0 20.6-7.5 23.3-18.2l.4-1.7c2.1-8.6 10.8-13.8 19.4-11.6zM143.2 486.3l-6.2 3.1c-21.6 10.8-47.6 6.6-64.6-10.5L12.7 419.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l59.6 59.6c7.3 7.3 18.5 9.1 27.7 4.5l6.2-3.1c7.9-4 17.5-.7 21.5 7.2s.7 17.5-7.2 21.5z\"]\n};\nvar faSkating = faPersonSkating;\nvar faSun = {\n  prefix: 'fas',\n  iconName: 'sun',\n  icon: [576, 512, [9728], \"f185\", \"M288-32c8.4 0 16.3 4.4 20.6 11.7L364.1 72.3 468.9 46c8.2-2 16.9 .4 22.8 6.3S500 67 498 75.1l-26.3 104.7 92.7 55.5c7.2 4.3 11.7 12.2 11.7 20.6s-4.4 16.3-11.7 20.6L471.7 332.1 498 436.8c2 8.2-.4 16.9-6.3 22.8S477 468 468.9 466l-104.7-26.3-55.5 92.7c-4.3 7.2-12.2 11.7-20.6 11.7s-16.3-4.4-20.6-11.7L211.9 439.7 107.2 466c-8.2 2-16.8-.4-22.8-6.3S76 445 78 436.8l26.2-104.7-92.6-55.5C4.4 272.2 0 264.4 0 256s4.4-16.3 11.7-20.6L104.3 179.9 78 75.1c-2-8.2 .3-16.8 6.3-22.8S99 44 107.2 46l104.7 26.2 55.5-92.6 1.8-2.6c4.5-5.7 11.4-9.1 18.8-9.1zm0 144a144 144 0 1 0 0 288 144 144 0 1 0 0-288zm0 240a96 96 0 1 1 0-192 96 96 0 1 1 0 192z\"]\n};\nvar faBaseball = {\n  prefix: 'fas',\n  iconName: 'baseball',\n  icon: [512, 512, [129358, 9918, \"baseball-ball\"], \"f433\", \"M232.4 1.1c-122.2 11.4-219.5 108.7-230.9 230.9 16.2-.1 32-1.8 47.2-5 13-2.7 25.7 5.5 28.4 18.5s-5.5 25.7-18.5 28.4c-18.4 3.9-37.6 6-57.1 6.1 11.4 122.2 108.7 219.5 230.9 230.9 .1-19.5 2.2-38.7 6.1-57.1 2.7-13 15.5-21.3 28.4-18.5s21.3 15.5 18.5 28.4c-3.2 15.2-4.9 31-5 47.2 122.2-11.4 219.5-108.7 230.9-230.9-16.2 .1-32 1.8-47.2 5-13 2.7-25.7-5.5-28.4-18.5s5.5-25.7 18.5-28.4c18.4-3.9 37.6-6 57.1-6.1-11.4-122.2-108.7-219.5-230.9-230.9-.1 19.5-2.2 38.7-6.1 57.1-2.7 13-15.5 21.3-28.4 18.5s-21.3-15.5-18.5-28.4c3.2-15.2 4.9-31 5-47.2zm2.8 151.4c-21.4 32.9-49.5 60.9-82.3 82.3-11.1 7.2-26 4.1-33.2-7s-4.1-26 7-33.2c27.2-17.7 50.5-41 68.3-68.3 7.2-11.1 22.1-14.3 33.2-7s14.3 22.1 7 33.2zM393.1 284.2c7.2 11.1 4.1 26-7 33.2-27.2 17.7-50.5 41-68.3 68.3-7.2 11.1-22.1 14.3-33.2 7s-14.3-22.1-7-33.2c21.4-32.9 49.5-60.9 82.3-82.3 11.1-7.2 26-4.1 33.2 7z\"]\n};\nvar faBaseballBall = faBaseball;\nvar faImage = {\n  prefix: 'fas',\n  iconName: 'image',\n  icon: [448, 512, [], \"f03e\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 80a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM272 224c8.4 0 16.1 4.4 20.5 11.5l88 144c4.5 7.4 4.7 16.7 .5 24.3S368.7 416 360 416L88 416c-8.9 0-17.2-5-21.3-12.9s-3.5-17.5 1.6-24.8l56-80c4.5-6.4 11.8-10.2 19.7-10.2s15.2 3.8 19.7 10.2l26.4 37.8 61.4-100.5c4.4-7.1 12.1-11.5 20.5-11.5z\"]\n};\nvar faNotdef = {\n  prefix: 'fas',\n  iconName: 'notdef',\n  icon: [384, 512, [], \"e1fe\", \"M64 390.3L153.5 256 64 121.7 64 390.3zM102.5 448L281.5 448 192 313.7 102.5 448zm128-192L320 390.3 320 121.7 230.5 256zM281.5 64L102.5 64 192 198.3 281.5 64zM0 48C0 21.5 21.5 0 48 0L336 0c26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 48z\"]\n};\nvar faBasketball = {\n  prefix: 'fas',\n  iconName: 'basketball',\n  icon: [512, 512, [127936, \"basketball-ball\"], \"f434\", \"M92.7 58.8l78.4 78.4c18.2-25 28.9-55.9 28.9-89.2 0-14.1-1.9-27.7-5.5-40.6-38 9.4-72.6 27.2-101.8 51.4zM58.8 92.7c-24.2 29.2-42 63.8-51.4 101.8 12.9 3.6 26.5 5.5 40.6 5.5 33.3 0 64.1-10.7 89.2-28.9L58.8 92.7zM256 0c-4.6 0-9.2 .1-13.7 .4 3.7 15.3 5.7 31.2 5.7 47.6 0 46.6-15.9 89.4-42.6 123.4L256 222.1 419.3 58.8C374.9 22.1 318.1 0 256 0zM48 248c-16.4 0-32.4-2-47.6-5.7-.2 4.5-.4 9.1-.4 13.7 0 62.1 22.1 118.9 58.8 163.3L222.1 256 171.4 205.4C137.4 232.1 94.6 248 48 248zm463.6 21.7c.2-4.5 .4-9.1 .4-13.7 0-62.1-22.1-118.9-58.8-163.3L289.9 256 340.6 306.6c34-26.7 76.9-42.6 123.4-42.6 16.4 0 32.4 2 47.6 5.7zm-7.1 47.8c-12.9-3.6-26.5-5.5-40.6-5.5-33.3 0-64.1 10.7-89.2 28.9l78.4 78.4c24.2-29.2 42-63.8 51.4-101.8zM340.9 374.8c-18.2 25-28.9 55.9-28.9 89.2 0 14.1 1.9 27.7 5.5 40.6 38-9.4 72.6-27.2 101.8-51.4l-78.4-78.4zm-34.3-34.3L256 289.9 92.7 453.2c44.3 36.7 101.2 58.8 163.3 58.8 4.6 0 9.2-.1 13.7-.4-3.7-15.3-5.7-31.2-5.7-47.6 0-46.6 15.9-89.4 42.6-123.4z\"]\n};\nvar faBasketballBall = faBasketball;\nvar faPencil = {\n  prefix: 'fas',\n  iconName: 'pencil',\n  icon: [512, 512, [9999, 61504, \"pencil-alt\"], \"f303\", \"M36.4 353.2c4.1-14.6 11.8-27.9 22.6-38.7l181.2-181.2 33.9-33.9c16.6 16.6 51.3 51.3 104 104l33.9 33.9-33.9 33.9-181.2 181.2c-10.7 10.7-24.1 18.5-38.7 22.6L30.4 510.6c-8.3 2.3-17.3 0-23.4-6.2S-1.4 489.3 .9 481L36.4 353.2zm55.6-3.7c-4.4 4.7-7.6 10.4-9.3 16.6l-24.1 86.9 86.9-24.1c6.4-1.8 12.2-5.1 17-9.7L91.9 349.5zm354-146.1c-16.6-16.6-51.3-51.3-104-104L308 65.5C334.5 39 349.4 24.1 352.9 20.6 366.4 7 384.8-.6 404-.6S441.6 7 455.1 20.6l35.7 35.7C504.4 69.9 512 88.3 512 107.4s-7.6 37.6-21.2 51.1c-3.5 3.5-18.4 18.4-44.9 44.9z\"]\n};\nvar faPencilAlt = faPencil;\nvar faPersonWalkingArrowLoopLeft = {\n  prefix: 'fas',\n  iconName: 'person-walking-arrow-loop-left',\n  icon: [640, 512, [], \"e551\", \"M160 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM73.4 227.9l22.6-22.6 0 69.3c0 28 12.2 54.7 33.5 72.9l71.4 61.2c5.9 5.1 9.8 12.1 10.9 19.8l12.6 88.1c2.5 17.5 18.7 29.7 36.2 27.2s29.7-18.7 27.2-36.2l-12.6-88.1c-3.3-23.1-14.9-44.1-32.6-59.3l-34.5-29.6 0-115.2 3.8 4.7c18.2 22.8 45.8 36 75 36l33.2 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-33.2 0c-9.7 0-18.9-4.4-25-12l-17.9-22.4c-23-28.8-57.9-45.6-94.8-45.6-32.2 0-63.1 12.8-85.8 35.6L28.1 182.6C10.1 200.6 0 225 0 250.5L0 288c0 17.7 14.3 32 32 32s32-14.3 32-32l0-37.5c0-8.5 3.4-16.6 9.4-22.6zM85.8 407.3c-1.5 5.2-4.3 10-8.1 13.8L9.4 489.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.3-68.3c11.5-11.5 19.9-25.8 24.4-41.5l2.2-7.6-46-39.4c-2.5-2.2-5-4.4-7.4-6.8L85.8 407.3zM359 335c-9.4 9.4-9.4 24.6 0 33.9l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-31-31 102.1 0c1.2 0 2.4-.1 3.5-.3 56.1-3.9 100.5-50.6 100.5-107.7 0-59.6-48.4-108-108-108l-92 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l92 0c33.1 0 60 26.9 60 60s-26.9 60-60 60l-98.1 0 31-31c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-72 72z\"]\n};\nvar faDiceSix = {\n  prefix: 'fas',\n  iconName: 'dice-six',\n  icon: [448, 512, [9861], \"f526\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm160 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faAnglesDown = {\n  prefix: 'fas',\n  iconName: 'angles-down',\n  icon: [384, 512, [\"angle-double-down\"], \"f103\", \"M214.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 402.7 329.4 265.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-160 160zm160-352l-160 160c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 210.7 329.4 73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3z\"]\n};\nvar faAngleDoubleDown = faAnglesDown;\nvar faSyringe = {\n  prefix: 'fas',\n  iconName: 'syringe',\n  icon: [576, 512, [128137], \"f48e\", \"M497.5-17c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l15 15-46.1 46.1-63-63c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l7 7-78.1 78.1 41 41c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-41-41-46.1 46.1 41 41c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-41-41-37.7 37.7c-10.5 10.5-16.4 24.7-16.4 39.6l0 88.8-57 57c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l57-57 88.8 0c14.9 0 29.1-5.9 39.6-16.4l229.7-229.7 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-63-63 46.1-46.1 15 15c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-64-64z\"]\n};\nvar faWheatAwn = {\n  prefix: 'fas',\n  iconName: 'wheat-awn',\n  icon: [576, 512, [\"wheat-alt\"], \"e2cd\", \"M79.7 234.6c6.2-4.1 14.7-3.4 20.1 2.1l46.1 46.1 6.1 6.7c19.7 23.8 26.3 55 19.2 83.9 31.7-7.7 66.2 1 90.6 25.3l46.1 46.1c6.2 6.2 6.2 16.4 0 22.6l-7.4 7.4c-37.5 37.5-98.3 37.5-135.8 0L134.1 444.3 49.4 529c-9.4 9.4-24.5 9.4-33.9 0-9.4-9.4-9.4-24.6 0-33.9l84.7-84.7-30.5-30.5c-37.5-37.5-37.5-98.3 0-135.7l7.4-7.4 2.5-2.1zm104-104c6.2-4.1 14.7-3.4 20.1 2.1l46.1 46.1 6.1 6.7c19.7 23.8 26.3 55 19.2 83.9 31.7-7.7 66.2 1 90.6 25.3l46.1 46.1c6.2 6.2 6.2 16.4 0 22.6l-7.4 7.4c-37.5 37.5-98.3 37.5-135.8 0l-94.9-94.9c-37.5-37.5-37.5-98.3 0-135.7l7.4-7.4 2.5-2.1zM495.2 15c9.4-9.4 24.6-9.4 34 0 8.8 8.8 9.3 22.7 1.6 32.2L529.2 49 414.7 163.4c7.7 1 15.2 3 22.5 5.9L495.5 111c9.4-9.4 24.6-9.4 34 0 8.8 8.8 9.3 22.7 1.6 32.1l-1.7 1.8-52.7 52.7 39 39c6.2 6.2 6.2 16.4 0 22.6l-7.4 7.4c-37.5 37.5-98.3 37.5-135.8 0l-94.9-94.9c-37.5-37.5-37.5-98.3 0-135.7l7.4-7.4 2.5-2.1c6.2-4.1 14.7-3.4 20.1 2.1l39 39 52.7-52.7c9.4-9.4 24.6-9.4 34 0 8.8 8.8 9.3 22.7 1.6 32.1l-1.7 1.8-58.3 58.3c2.8 7.1 4.7 14.5 5.7 22.1L495.2 15z\"]\n};\nvar faWheatAlt = faWheatAwn;\nvar faPlaneUp = {\n  prefix: 'fas',\n  iconName: 'plane-up',\n  icon: [512, 512, [], \"e22d\", \"M200 24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 127.3 173.6 159.2c6.6 6.1 10.4 14.6 10.4 23.6l0 43.7c0 10.9-10.7 18.6-21.1 15.2l-162.9-54.3 0 99.7 66 52.8c3.8 3 6 7.6 6 12.5l0 19.8c0 10.4-9.8 18-19.9 15.5L256 512 147.9 539c-10.1 2.5-19.9-5.1-19.9-15.5l0-19.8c0-4.9 2.2-9.5 6-12.5l66-52.8 0-99.7-162.9 54.3C26.7 396.4 16 388.7 16 377.8l0-43.7c0-9 3.8-17.5 10.4-23.6L200 151.3 200 24z\"]\n};\nvar faAlignCenter = {\n  prefix: 'fas',\n  iconName: 'align-center',\n  icon: [448, 512, [], \"f037\", \"M352 64c0-17.7-14.3-32-32-32L128 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32zm96 128c0-17.7-14.3-32-32-32L32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32zM0 448c0 17.7 14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416c-17.7 0-32 14.3-32 32zM352 320c0-17.7-14.3-32-32-32l-192 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32z\"]\n};\nvar faHockeyPuck = {\n  prefix: 'fas',\n  iconName: 'hockey-puck',\n  icon: [512, 512, [], \"f453\", \"M256 256C114.6 256 0 213 0 160s114.6-96 256-96 256 43 256 96-114.6 96-256 96zM0 352L0 242.7c16.9 12.3 37 22.2 58.1 30.1 53 19.9 123 31.2 197.9 31.2s144.9-11.3 197.9-31.2c21.2-7.9 41.2-17.8 58.1-30.1L512 352c0 53-114.6 96-256 96S0 405 0 352z\"]\n};\nvar faCircleArrowLeft = {\n  prefix: 'fas',\n  iconName: 'circle-arrow-left',\n  icon: [512, 512, [\"arrow-circle-left\"], \"f0a8\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM135 239l80-80c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-39 39 150.1 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-150.1 0 39 39c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-80-80c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faArrowCircleLeft = faCircleArrowLeft;\nvar faPlugCircleBolt = {\n  prefix: 'fas',\n  iconName: 'plug-circle-bolt',\n  icon: [640, 512, [], \"e55b\", \"M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM352 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm177.4-77c-5.8-4.2-13.8-4-19.4 .5l-80 64c-5.3 4.2-7.4 11.4-5.1 17.8S433.2 416 440 416l32.9 0-15.9 42.4c-2.5 6.7-.2 14.3 5.6 18.6s13.8 4 19.4-.5l80-64c5.3-4.2 7.4-11.4 5.1-17.8S558.8 384 552 384l-32.9 0 15.9-42.4c2.5-6.7 .2-14.3-5.6-18.6z\"]\n};\nvar faRestroom = {\n  prefix: 'fas',\n  iconName: 'restroom',\n  icon: [640, 512, [], \"f7bd\", \"M80 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-154.8c-8.1 9.2-21.1 13.2-33.5 9.4-16.9-5.3-26.3-23.2-21-40.1l29.7-95.2C44.4 156.9 83.6 128 128 128s83.6 28.9 96.8 71.2l29.7 95.2c5.3 16.9-4.1 34.8-21 40.1-12.4 3.9-25.4-.2-33.5-9.4L200 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM320 0c13.3 0 24 10.7 24 24l0 464c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-464c0-13.3 10.7-24 24-24zM464 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM440 480l0-96-17.8 0c-10.9 0-18.6-10.7-15.2-21.1l9-26.9c-3.2 0-6.4-.5-9.5-1.5-16.9-5.3-26.3-23.2-21-40.1l29.7-95.2C428.4 156.9 467.6 128 512 128s83.6 28.9 96.8 71.2l29.7 95.2c5.3 16.9-4.1 34.8-21 40.1-3.2 1-6.4 1.5-9.5 1.5l9 26.9c3.5 10.4-4.3 21.1-15.2 21.1l-17.8 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-16 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32z\"]\n};\nvar faAnchorLock = {\n  prefix: 'fas',\n  iconName: 'anchor-lock',\n  icon: [640, 512, [], \"e4ad\", \"M320.5 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-32-96c-53 0-96 43-96 96 0 41.8 26.7 77.4 64 90.5l0 257.9c-62.9-14.3-110.2-69.7-111.9-136.5l16.1 14.1c10 8.7 25.1 7.7 33.9-2.3s7.7-25.1-2.3-33.9l-64-56c-9-7.9-22.6-7.9-31.6 0l-64 56c-10 8.7-11 23.9-2.3 33.9s23.9 11 33.9 2.3l16.2-14.2c2.1 113.1 94.4 204.1 208 204.1 28.3 0 55.4-5.7 80-15.9l0-.2 0-72.2c-14.4 9.6-30.6 16.7-48 20.7l0-257.9c37.3-13.2 64-48.7 64-90.5 0-53-43-96-96-96zm272 304.1l0 47.9-64 0 0-47.9c0-17.7 14.3-32 32-32s32 14.3 32 32zM416.5 400l0 96c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-96c0-20.9-13.4-38.7-32-45.3l0-50.6c0-44.2-35.8-80-80-80s-80 35.8-80 80l0 50.6c-18.6 6.6-32 24.4-32 45.3z\"]\n};\nvar faTimeline = {\n  prefix: 'fas',\n  iconName: 'timeline',\n  icon: [576, 512, [], \"e29c\", \"M160 169.3c28.3-12.3 48-40.5 48-73.3 0-44.2-35.8-80-80-80S48 51.8 48 96c0 32.8 19.7 61 48 73.3l0 54.7-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0 0 54.7c-28.3 12.3-48 40.5-48 73.3 0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3l0-54.7 224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-54.7c28.3-12.3 48-40.5 48-73.3 0-44.2-35.8-80-80-80s-80 35.8-80 80c0 32.8 19.7 61 48 73.3l0 54.7-256 0 0-54.7z\"]\n};\nvar faLightbulb = {\n  prefix: 'fas',\n  iconName: 'lightbulb',\n  icon: [384, 512, [128161], \"f0eb\", \"M292.9 384c7.3-22.3 21.9-42.5 38.4-59.9 32.7-34.4 52.7-80.9 52.7-132.1 0-106-86-192-192-192S0 86 0 192c0 51.2 20 97.7 52.7 132.1 16.5 17.4 31.2 37.6 38.4 59.9l201.7 0zM288 432l-192 0 0 16c0 44.2 35.8 80 80 80l32 0c44.2 0 80-35.8 80-80l0-16zM184 112c-39.8 0-72 32.2-72 72 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-66.3 53.7-120 120-120 13.3 0 24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faCircleArrowRight = {\n  prefix: 'fas',\n  iconName: 'circle-arrow-right',\n  icon: [512, 512, [\"arrow-circle-right\"], \"f0a9\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm41-159c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l39-39-150.1 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l150.1 0-39-39c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80z\"]\n};\nvar faArrowCircleRight = faCircleArrowRight;\nvar faMarsAndVenus = {\n  prefix: 'fas',\n  iconName: 'mars-and-venus',\n  icon: [512, 512, [9893], \"f224\", \"M368 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l112 0c17.7 0 32 14.3 32 32l0 112c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-34.7-63 63c19.5 28.4 31 62.7 31 99.8 0 86.3-62.1 158.1-144 173.1l0 34.9 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-34.9c-81.9-15-144-86.8-144-173.1 0-97.2 78.8-176 176-176 37 0 71.4 11.4 99.8 31l63-63-34.7 0zM352 208a112 112 0 1 0 -224 0 112 112 0 1 0 224 0z\"]\n};\nvar faNetworkWired = {\n  prefix: 'fas',\n  iconName: 'network-wired',\n  icon: [576, 512, [], \"f6ff\", \"M248 88l80 0 0 48-80 0 0-48zm-8-56c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l16 0 0 32-224 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 0 32-16 0c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l96 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-16 0 0-32 192 0 0 32-16 0c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l96 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-16 0 0-32 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0 0-32 16 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-96 0zM448 376l8 0 0 48-80 0 0-48 72 0zm-256 0l8 0 0 48-80 0 0-48 72 0z\"]\n};\nvar faBuildingShield = {\n  prefix: 'fas',\n  iconName: 'building-shield',\n  icon: [576, 512, [], \"e4d8\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l201.2 0c-12.5-14.7-23.2-30.8-31.8-48l-89.5 0 0-80c0-17.7 14.3-32 32-32l32 0 0-26.7c0-18.1 6.1-35.2 16.6-48.8-.4-1.4-.6-2.9-.6-4.5l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 1 86.7-28.9c3.1-1 6.2-1.8 9.3-2.5L416 64c0-35.3-28.7-64-64-64L96 0zm32 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM445.3 488.5l-13.3 6.3 0-188.1 96 32 0 19.6c0 55.8-32.2 106.5-82.7 130.3zM421.9 259.5l-112 37.3c-13.1 4.4-21.9 16.6-21.9 30.4l0 31.1c0 74.4 43 142.1 110.2 173.7l18.5 8.7c4.8 2.2 10 3.4 15.2 3.4s10.5-1.2 15.2-3.4l18.5-8.7C533 500.3 576 432.6 576 358.2l0-31.1c0-13.8-8.8-26-21.9-30.4l-112-37.3c-6.6-2.2-13.7-2.2-20.2 0z\"]\n};\nvar faCode = {\n  prefix: 'fas',\n  iconName: 'code',\n  icon: [576, 512, [], \"f121\", \"M360.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm64.6 136.1c-12.5 12.5-12.5 32.8 0 45.3l73.4 73.4-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0zm-274.7 0c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 150.6 182.6c12.5-12.5 12.5-32.8 0-45.3z\"]\n};\nvar faFeatherPointed = {\n  prefix: 'fas',\n  iconName: 'feather-pointed',\n  icon: [512, 512, [\"feather-alt\"], \"f56b\", \"M475.3 .1c9.9-.8 19.6 3 26.6 10s10.8 16.7 10 26.6c-4 49.3-17.4 126.2-46.3 199.7-1.8 4.5-5.5 7.9-10.2 9.3L374.5 270c-3.9 1.2-6.5 4.7-6.5 8.8 0 5.1 4.1 9.2 9.2 9.2l38.6 0c12 0 19.7 12.8 13.5 23.1-4 6.7-8.3 13.2-12.7 19.6-2 2.9-5 5-8.4 6.1L310.5 366c-3.9 1.2-6.5 4.7-6.5 8.8 0 5.1 4.1 9.2 9.2 9.2l16 0c14.6 0 21 17.4 8.8 25.4-68 45-137.7 43.3-182.4 31.3-12.7-3.4-24-9.9-34.4-17.9L48 496c-8.8 8.8-23.2 8.8-32 0s-8.8-23.2 0-32l80-80 .5 .5c.7-1.3 1.6-2.5 2.7-3.6L256 224c8.8-8.8 8.8-23.2 0-32s-23.2-8.8-32 0L89.7 326.2c-8.9 8.9-24 4.4-25-8.2-4.3-53.2 9.3-123.1 72.6-186.4 91.1-91.1 254.2-124.7 337.9-131.5z\"]\n};\nvar faFeatherAlt = faFeatherPointed;\nvar faFileCircleQuestion = {\n  prefix: 'fas',\n  iconName: 'file-circle-question',\n  icon: [576, 512, [], \"e4ef\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-100c-11.6 0-21.3 8.2-23.5 19.2-1.8 8.7-10.2 14.3-18.9 12.5s-14.3-10.2-12.5-18.9c5.2-25.6 27.8-44.8 54.9-44.8 30.9 0 56 25.1 56 56 0 19.8-11.7 37.8-29.8 45.9l-10.4 4.6c-1.2 7.7-7.8 13.5-15.8 13.5-8.8 0-16-7.2-16-16 0-11.2 6.6-21.3 16.8-25.9l12.4-5.5c6.6-2.9 10.8-9.4 10.8-16.6 0-13.3-10.7-24-24-24z\"]\n};\nvar faSignature = {\n  prefix: 'fas',\n  iconName: 'signature',\n  icon: [640, 512, [], \"f5b7\", \"M192 128c0-17.7 14.3-32 32-32s32 14.3 32 32l0 7.8c0 27.7-2.4 55.3-7.1 82.5l-84.4 25.3c-40.6 12.2-68.4 49.6-68.4 92l0 32.4-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72.5 0c4.2 36 34.8 64 72 64 26 0 50-13.9 62.9-36.5l13.9-24.3c26.8-47 46.5-97.7 58.4-150.5l94.4-28.3-12.5 37.5c-3.3 9.8-1.6 20.5 4.4 28.8S405.7 320 416 320l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-83.6 0 18-53.9c3.8-11.3 .9-23.8-7.4-32.4s-20.7-11.8-32.2-8.4L316.4 198.1c2.4-20.7 3.6-41.4 3.6-62.3l0-7.8c0-53-43-96-96-96s-96 43-96 96l0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32zm-9.2 177l49-14.7c-10.4 33.8-24.5 66.4-42.1 97.2l-13.9 24.3c-1.5 2.6-4.3 4.3-7.4 4.3-4.7 0-8.5-3.8-8.5-8.5l0-71.9c0-14.1 9.3-26.6 22.8-30.7zM616 416c13.3 0 24-10.7 24-24s-10.7-24-24-24l-292.9 0c-6.5 16.3-13.7 32.3-21.6 48L616 416z\"]\n};\nvar faEarthAmericas = {\n  prefix: 'fas',\n  iconName: 'earth-americas',\n  icon: [512, 512, [127758, \"earth\", \"earth-america\", \"globe-americas\"], \"f57d\", \"M55.7 199.7l30.9 30.9c6 6 14.1 9.4 22.6 9.4l21.5 0c8.5 0 16.6 3.4 22.6 9.4l29.3 29.3c6 6 9.4 14.1 9.4 22.6l0 37.5c0 8.5 3.4 16.6 9.4 22.6l13.3 13.3c6 6 9.4 14.1 9.4 22.6l0 18.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-2.7c0-8.5 3.4-16.6 9.4-22.6l45.3-45.3c6-6 9.4-14.1 9.4-22.6l0-34.7c0-17.7-14.3-32-32-32l-82.7 0c-8.5 0-16.6-3.4-22.6-9.4l-16-16c-4.2-4.2-6.6-10-6.6-16 0-12.5 10.1-22.6 22.6-22.6l34.7 0c12.5 0 22.6-10.1 22.6-22.6 0-6-2.4-11.8-6.6-16l-19.7-19.7C242 130 240 125.1 240 120s2-10 5.7-13.7l17.3-17.3c5.8-5.8 9.1-13.7 9.1-21.9 0-7.2-2.4-13.7-6.4-18.9-3.2-.1-6.4-.2-9.6-.2-95.4 0-175.7 64.2-200.3 151.7zM464 256c0-34.6-8.4-67.2-23.4-95.8-6.4 .9-12.7 3.9-17.9 9.1l-13.4 13.4c-6 6-9.4 14.1-9.4 22.6l0 34.7c0 17.7 14.3 32 32 32l24.1 0c2.5 0 5-.3 7.3-.8 .4-5 .5-10.1 .5-15.2zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"]\n};\nvar faEarth = faEarthAmericas;\nvar faEarthAmerica = faEarthAmericas;\nvar faGlobeAmericas = faEarthAmericas;\nvar faCarrot = {\n  prefix: 'fas',\n  iconName: 'carrot',\n  icon: [640, 512, [129365], \"f787\", \"M453.1-36.7L440.9-24.6c-31.2 31.2-31.2 81.9 0 113.1 15.6 15.6 31.2 31.2 46.9 46.9 31.2 31.2 81.9 31.2 113.1 0l12.1-12.1c6.2-6.2 6.2-16.4 0-22.6L600.9 88.6c-31.2-31.2-81.9-31.2-113.1 0 31.2-31.2 31.2-81.9 0-113.1L475.7-36.7c-6.2-6.2-16.4-6.2-22.6 0zM331.6 96c-45.2 0-87.1 20.4-115 54.3L273.3 207c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L191.6 193.2 67.2 466.8c-5.5 12.1-2.9 26.4 6.5 35.9s23.7 12 35.9 6.5l141.6-64.4-43.8-43.8c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l56.5 56.5 95.3-43.3c53.1-24.1 87.2-77.1 87.2-135.5 0-82.2-66.6-148.8-148.8-148.8z\"]\n};\nvar faTemperatureFull = {\n  prefix: 'fas',\n  iconName: 'temperature-full',\n  icon: [320, 512, [\"temperature-4\", \"thermometer-4\", \"thermometer-full\"], \"f2c7\", \"M160 0C107 0 64 43 64 96l0 164.7C34.5 287 16 325.4 16 368 16 447.5 80.5 512 160 512s144-64.5 144-144c0-42.6-18.5-81-48-107.3L256 96c0-53-43-96-96-96zm64 368c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26.9 16.5-49.9 40-59.3L136 96c0-13.3 10.7-24 24-24s24 10.7 24 24l0 212.7c23.5 9.5 40 32.5 40 59.3z\"]\n};\nvar faTemperature4 = faTemperatureFull;\nvar faThermometer4 = faTemperatureFull;\nvar faThermometerFull = faTemperatureFull;\nvar faTableCellsRowLock = {\n  prefix: 'fas',\n  iconName: 'table-cells-row-lock',\n  icon: [640, 512, [], \"e67a\", \"M256 288l0-64 153.3 0c17.1-42.2 56-73.2 102.7-79l0-49c0-35.3-28.7-64-64-64L128 32C92.7 32 64 60.7 64 96l0 320c0 35.3 28.7 64 64 64l241.3 0c-.9-5.2-1.3-10.6-1.3-16.1l0-47.9-112 0 0-64 113.3 0c3.7-22 14.8-41.4 30.7-55.6l0-8.4-144 0zm0-192l192 0 0 64-192 0 0-64zM560 272.1l0 47.9-64 0 0-47.9c0-17.7 14.3-32 32-32s32 14.3 32 32zM416 368l0 96c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-96c0-20.9-13.4-38.7-32-45.3l0-50.6c0-44.2-35.8-80-80-80s-80 35.8-80 80l0 50.6c-18.6 6.6-32 24.4-32 45.3z\"]\n};\nvar faBoltLightning = {\n  prefix: 'fas',\n  iconName: 'bolt-lightning',\n  icon: [384, 512, [], \"e0b7\", \"M0 256L28.5 28c2-16 15.6-28 31.8-28L228.9 0c15 0 27.1 12.1 27.1 27.1 0 3.2-.6 6.5-1.7 9.5L208 160 347.3 160c20.2 0 36.7 16.4 36.7 36.7 0 7.4-2.2 14.6-6.4 20.7l-192.2 281c-5.9 8.6-15.6 13.7-25.9 13.7l-2.9 0c-15.7 0-28.5-12.8-28.5-28.5 0-2.3 .3-4.6 .9-6.9L176 288 32 288c-17.7 0-32-14.3-32-32z\"]\n};\nvar faCloudShowersWater = {\n  prefix: 'fas',\n  iconName: 'cloud-showers-water',\n  icon: [512, 512, [], \"e4e4\", \"M279.2 55.7C263.9 22.8 230.6 0 192 0 139 0 96 43 96 96 60.7 96 32 124.7 32 160s28.7 64 64 64l320 0c35.3 0 64-28.7 64-64s-28.7-64-64-64l-1.6 0c-7.4-36.5-39.7-64-78.4-64-22.2 0-42.3 9.1-56.8 23.7zM410.6 476.1c20.7 15.6 46 30.7 74.2 34.5 13.1 1.8 25.2-7.5 27-20.6s-7.5-25.2-20.6-27c-15.9-2.1-33.2-11.3-51.7-25.2-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-18.5 13.9-35.8 23.1-51.7 25.2-13.1 1.8-22.4 13.8-20.6 27s13.8 22.4 27 20.6c28.2-3.8 53.6-18.9 74.2-34.5 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0zM100.1 303.6c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-21.3 64C29 365 35.8 378.6 48.4 382.8s26.2-2.6 30.4-15.2l21.3-64zm120 0c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-21.3 64c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.3-64zm112 0c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-21.3 64c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.3-64zm120 0c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-21.3 64c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.3-64z\"]\n};\nvar faArrowUpLong = {\n  prefix: 'fas',\n  iconName: 'arrow-up-long',\n  icon: [320, 512, [\"long-arrow-up\"], \"f176\", \"M182.6-22.6c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L128 77.3 128 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-434.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128z\"]\n};\nvar faLongArrowUp = faArrowUpLong;\nvar faAddressCard = {\n  prefix: 'fas',\n  iconName: 'address-card',\n  icon: [576, 512, [62140, \"contact-card\", \"vcard\"], \"f2bb\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm80 256l64 0c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16L80 384c-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80zm-24-96a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm240-48l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-112 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 96l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-112 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faContactCard = faAddressCard;\nvar faVcard = faAddressCard;\nvar faAngleRight = {\n  prefix: 'fas',\n  iconName: 'angle-right',\n  icon: [256, 512, [8250], \"f105\", \"M247.1 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L179.2 256 41.9 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z\"]\n};\nvar faFaceMeh = {\n  prefix: 'fas',\n  iconName: 'face-meh',\n  icon: [512, 512, [128528, \"meh\"], \"f11a\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM176 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM176 320l160 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-160 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faMeh = faFaceMeh;\nvar faArrowUpFromGroundWater = {\n  prefix: 'fas',\n  iconName: 'arrow-up-from-ground-water',\n  icon: [640, 512, [], \"e4b5\", \"M303 7c9.4-9.4 24.6-9.4 33.9 0l88 88c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47 0 278.1c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-278.1-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L303 7zM240 192l0 163.1c-10.6-2.2-21.3-3.2-32-3.1-32.5 .2-64.9 10.7-92.3 31.4-8.8 6.6-15.9 10.9-21.7 13.5l-.8 .4c-3.7 1.7-6.4 2.9-9.8 .3-6-4.5-12.6-8-19.3-10.4L64 240c0-26.5 21.5-48 48-48l128 0zm336 48l0 155.2c-1.1 .8-2.2 1.5-3.3 2.4-4.1 3.1-8.3 .8-12.6-1.5-.6-.3-1.2-.6-1.8-1-5.2-2.7-11.1-6.6-18-11.7-28.1-21.1-61.3-31.6-94.4-31.4-15.5 .1-31 2.5-46 7.3l0-167.3 128 0c26.5 0 48 21.5 48 48zM403.4 476.1C379.1 494.3 351.1 512 320 512s-59.1-17.7-83.4-35.9c-21.3-16.1-49.9-16.1-71.2 0-23.8 17.9-54.1 35.5-88.1 35.3-20.4-.1-40.7-6.7-59.8-21.1-10.6-8-12.7-23-4.7-33.6s23-12.7 33.6-4.7c11.3 8.5 21.6 11.4 31.2 11.5 17.6 .1 37.3-9.4 58.9-25.7 38.4-29 90.5-29 129 0 24 18.1 40.7 26.3 54.5 26.3s30.5-8.2 54.5-26.3c38.4-29 90.5-29 129 0 16.9 12.7 32.9 21.5 47.8 24.6 13.7 2.8 27.4 .9 42.3-10.3 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-26.4 19.9-54.2 24.4-80.7 19.1-25.3-5.1-48.1-18.9-67.2-33.3-21.3-16.1-49.9-16.1-71.2 0z\"]\n};\nvar faMap = {\n  prefix: 'fas',\n  iconName: 'map',\n  icon: [512, 512, [128506, 62072], \"f279\", \"M512 48c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4L349.5 77.5 170.1 17.6c-8.1-2.7-16.8-2.1-24.4 1.7l-128 64C6.8 88.8 0 99.9 0 112L0 464c0 11.1 5.7 21.4 15.2 27.2s21.2 6.4 31.1 1.4l116.1-58.1 179.4 59.8c8.1 2.7 16.8 2.1 24.4-1.7l128-64c10.8-5.4 17.7-16.5 17.7-28.6l0-352zM192 376.9l0-284.5 128 42.7 0 284.5-128-42.7z\"]\n};\nvar faUserPlus = {\n  prefix: 'fas',\n  iconName: 'user-plus',\n  icon: [640, 512, [], \"f234\", \"M285.7 304c98.5 0 178.3 79.8 178.3 178.3 0 16.4-13.3 29.7-29.7 29.7L77.7 512C61.3 512 48 498.7 48 482.3 48 383.8 127.8 304 226.3 304l59.4 0zM528 80c13.3 0 24 10.7 24 24l0 48 48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0 0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0 0-48c0-13.3 10.7-24 24-24zM256 248a120 120 0 1 1 0-240 120 120 0 1 1 0 240z\"]\n};\nvar faVenus = {\n  prefix: 'fas',\n  iconName: 'venus',\n  icon: [384, 512, [9792], \"f221\", \"M80 176a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zM223.9 349.1C305.9 334.1 368 262.3 368 176 368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144.1 173.1-.1 1-.1 1.9-.1 2.9l0 64-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-64c0-1 0-1.9-.1-2.9z\"]\n};\nvar faDiagramSuccessor = {\n  prefix: 'fas',\n  iconName: 'diagram-successor',\n  icon: [448, 512, [], \"e47a\", \"M289.2 137.9c2.5-6 8.3-9.9 14.8-9.9l40 0 0-24c0-13.3-10.7-24-24-24l-98 0c1.3 5.1 2 10.5 2 16l0 64c0 35.3-28.7 64-64 64l-96 0c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l256 0c39.8 0 72 32.2 72 72l0 24 40 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-64 64c-6.2 6.2-16.4 6.2-22.6 0l-64-64c-4.6-4.6-5.9-11.5-3.5-17.4zM384 480L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l320 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64zM160 160l0-64-96 0 0 64 96 0z\"]\n};\nvar faHeadSideCoughSlash = {\n  prefix: 'fas',\n  iconName: 'head-side-cough-slash',\n  icon: [576, 512, [], \"e062\", \"M535-24.9c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L41 537.1c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l25-25 0-447.2c0-15 10.5-28.3 25.4-29.8 7.4-.7 14.9-1.1 22.6-1.1 112.7 0 206 83.3 221.7 191.7 .4 3 1.7 5.9 3.6 8.3l2.2 2.6 227.5-227.5zM133.8 512L288 357.8 288 416c0 53-43 96-96 96l-58.2 0zM176 224a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm336 40a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm-88 72a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm-64 48a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm128 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm24 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm-88-24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faDiagramProject = {\n  prefix: 'fas',\n  iconName: 'diagram-project',\n  icon: [512, 512, [\"project-diagram\"], \"f542\", \"M0 80C0 53.5 21.5 32 48 32l96 0c26.5 0 48 21.5 48 48l0 16 128 0 0-16c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-16-128 0 0 16c0 7.3-1.7 14.3-4.6 20.5l68.6 91.5 80 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96c0-7.3 1.7-14.3 4.6-20.5L128 224 48 224c-26.5 0-48-21.5-48-48L0 80z\"]\n};\nvar faProjectDiagram = faDiagramProject;\nvar faTerminal = {\n  prefix: 'fas',\n  iconName: 'terminal',\n  icon: [512, 512, [], \"f120\", \"M9.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L146.7 256 9.4 118.6zM224 384l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faHouseFire = {\n  prefix: 'fas',\n  iconName: 'house-fire',\n  icon: [640, 512, [], \"e50c\", \"M448 192c14.1 .4 23.8 11.4 32.7 21.7 2 2.3 4 4.6 6 6.7l19 19.9 12.2-13.8c5.4-6.1 13.3-8.9 20.9-8.9 7.2 0 14.3 2.6 19.9 7.8 19.7 18.3 39.8 43.2 55 70.6 15.1 27.2 26.2 58.2 26.2 88.2 0 88.7-71.3 159.8-160 159.8-89.6 0-160-71.3-160-159.8 0-37.3 16-73.4 36.8-104.5 20.9-31.3 47.5-59 70.9-80.1 5.7-5.2 13.1-7.7 20.3-7.5zM268.6 6.5c12.2-9.3 29.7-8.7 41.2 2l147.5 137c-19.2-4.3-40 .5-55.5 14.4-36.4 32.6-67.7 69.8-90.3 106.4-10.3 16.6-19.7 34.9-26.8 53.7L272 320c-26.5 0-48 21.5-48 48l0 96 64.6 0c7.3 17.2 16.8 33.4 28.2 48L144 512c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208 2.4-2zM489.3 343.7c-5.4-4.7-13.1-4.7-18.5 0-17.7 15.4-54.7 51.9-54.7 88.4 0 35.3 28.7 64 64 64s64-28.7 64-64c0-36.5-37-73-54.7-88.4z\"]\n};\nvar faMask = {\n  prefix: 'fas',\n  iconName: 'mask',\n  icon: [576, 512, [], \"f6fa\", \"M288 64C64 64 0 160 0 272S80 448 176 448l8.4 0c24.2 0 46.4-13.7 57.2-35.4l23.2-46.3c4.4-8.8 13.3-14.3 23.2-14.3s18.8 5.5 23.2 14.3l23.2 46.3c10.8 21.7 33 35.4 57.2 35.4l8.4 0c96 0 176-64 176-176S512 64 288 64zM96 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm320-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nvar faHurricane = {\n  prefix: 'fas',\n  iconName: 'hurricane',\n  icon: [384, 512, [], \"f751\", \"M0 208C0 104.4 75.7 18.5 174.9 2.6 184 1.2 192 8.6 192 17.9l0 63.3c0 8.4 6.5 15.3 14.7 16.5 100.3 14.9 177.3 101.3 177.3 205.7 0 103.6-75.7 189.5-174.9 205.4-9.2 1.5-17.1-5.9-17.1-15.2l0-63.3C192 421.9 185.5 415 177.3 413.7 77 398.9 0 312.4 0 208zm288 48a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zm-96-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faEarthAfrica = {\n  prefix: 'fas',\n  iconName: 'earth-africa',\n  icon: [512, 512, [127757, \"globe-africa\"], \"f57c\", \"M447.6 175c-31.6-74.6-105.5-127-191.6-127-22.1 0-43.4 3.5-63.4 9.8-.4 2-.6 4.1-.6 6.2l0 73.4c0 12.5 10.1 22.6 22.6 22.6 6 0 11.8-2.4 16-6.6l16-16c6-6 14.1-9.4 22.6-9.4l5.5 0c28.5 0 42.8 34.5 22.6 54.6-6 6-14.1 9.4-22.6 9.4l-61.5 0c-8.5 0-16.6 3.4-22.6 9.4l-21.3 21.3c-6 6-9.4 14.1-9.4 22.6l0 42.7c0 17.7 14.3 32 32 32l32 0c17.7 0 32 14.3 32 32l0 32c0 17.7 14.3 32 32 32l2.7 0c8.5 0 16.6-3.4 22.6-9.4l29.3-29.3c6-6 9.4-14.1 9.4-22.6l0-18.7c0-8.8 7.2-16 16-16s16-7.2 16-16l0-34.7c0-8.5-3.4-16.6-9.4-22.6l-16-16c-4.2-4.2-6.6-10-6.6-16 0-12.5 10.1-22.6 22.6-22.6l45 0c12.4 0 22.7-7.1 28-17zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"]\n};\nvar faGlobeAfrica = faEarthAfrica;\nvar faThumbtack = {\n  prefix: 'fas',\n  iconName: 'thumbtack',\n  icon: [384, 512, [128204, 128392, \"thumb-tack\"], \"f08d\", \"M32 32C32 14.3 46.3 0 64 0L320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-29.5 0 10.3 134.1c37.1 21.2 65.8 56.4 78.2 99.7l3.8 13.4c2.8 9.7 .8 20-5.2 28.1S362 352 352 352L32 352c-10 0-19.5-4.7-25.5-12.7s-8-18.4-5.2-28.1L5 297.8c12.4-43.3 41-78.5 78.2-99.7L93.5 64 64 64C46.3 64 32 49.7 32 32zM160 400l64 0 0 112c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-112z\"]\n};\nvar faThumbTack = faThumbtack;\nvar faHandPointDown = {\n  prefix: 'fas',\n  iconName: 'hand-point-down',\n  icon: [384, 512, [], \"f0a7\", \"M32 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-208-64 0 0 208zM224 320c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64zm-64 64c17.7 0 32-14.3 32-32l0-48c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48c0 17.7 14.3 32 32 32zm160-96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64zm-96-88l0 .6c9.4-5.4 20.3-8.6 32-8.6 13.2 0 25.4 4 35.6 10.8 8.7-24.9 32.5-42.8 60.4-42.8 11.7 0 22.6 3.1 32 8.6l0-8.6C384 71.6 312.4 0 224 0L162.3 0C119.8 0 79.1 16.9 49.1 46.9L37.5 58.5C13.5 82.5 0 115.1 0 149l0 27c0 35.3 28.7 64 64 64l88 0c22.1 0 40-17.9 40-40s-17.9-40-40-40l-56 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l56 0c39.8 0 72 32.2 72 72z\"]\n};\nvar faFaceMehBlank = {\n  prefix: 'fas',\n  iconName: 'face-meh-blank',\n  icon: [512, 512, [128566, \"meh-blank\"], \"f5a4\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm208-48a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm128 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faMehBlank = faFaceMehBlank;\nvar faTemperatureEmpty = {\n  prefix: 'fas',\n  iconName: 'temperature-empty',\n  icon: [320, 512, [\"temperature-0\", \"thermometer-0\", \"thermometer-empty\"], \"f2cb\", \"M64 96c0-53 43-96 96-96s96 43 96 96l0 164.7c29.5 26.4 48 64.7 48 107.3 0 79.5-64.5 144-144 144S16 447.5 16 368c0-42.6 18.5-81 48-107.3L64 96zm96 336c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z\"]\n};\nvar faTemperature0 = faTemperatureEmpty;\nvar faThermometer0 = faTemperatureEmpty;\nvar faThermometerEmpty = faTemperatureEmpty;\nvar faBorderNone = {\n  prefix: 'fas',\n  iconName: 'border-none',\n  icon: [448, 512, [], \"f850\", \"M32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zM160 32a32 32 0 1 0 0 64 32 32 0 1 0 0-64zM288 416c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zM160 480c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zM288 32a32 32 0 1 0 0 64 32 32 0 1 0 0-64zM416 480c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm0-384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM32 32a32 32 0 1 0 0 64 32 32 0 1 0 0-64zM416 352a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM32 160a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm0 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM416 160a32 32 0 1 0 0 64 32 32 0 1 0 0-64z\"]\n};\nvar faHighlighter = {\n  prefix: 'fas',\n  iconName: 'highlighter',\n  icon: [576, 512, [], \"f591\", \"M315 315L473.4 99.9 444.1 70.6 229 229 315 315zm-187 5l0 0 0-71.7c0-15.3 7.2-29.6 19.5-38.6L420.6 8.4C428 2.9 437 0 446.2 0 457.6 0 468.5 4.5 476.6 12.6l54.8 54.8c8.1 8.1 12.6 19 12.6 30.5 0 9.2-2.9 18.2-8.4 25.6L334.4 396.5c-9 12.3-23.4 19.5-38.6 19.5l-71.7 0-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0l-50.7-50.7c-12.5-12.5-12.5-32.8 0-45.3L128 320zM7 466.3l51.7-51.7 70.6 70.6-19.7 19.7c-4.5 4.5-10.6 7-17 7L24 512c-13.3 0-24-10.7-24-24l0-4.7c0-6.4 2.5-12.5 7-17z\"]\n};\nvar faMoneyBillWave = {\n  prefix: 'fas',\n  iconName: 'money-bill-wave',\n  icon: [512, 512, [], \"f53a\", \"M0 419.6L0 109.5c0-23.2 24.1-38.6 46.3-32 87.7 26.2 149.7 5.5 212.1-15.3 64.5-21.5 129.4-43.1 223.3-13.1 18.5 5.9 30.3 23.8 30.3 43.3l0 310.1c0 23.2-24.1 38.6-46.2 32-87.7-26.2-149.8-5.5-212.1 15.3-64.5 21.5-129.4 43.1-223.3 13.1-18.5-5.9-30.3-23.8-30.3-43.3zM336 256c0-53-35.8-96-80-96s-80 43-80 96 35.8 96 80 96 80-43 80-96zM120 413.6c4.4 0 7.9-3.8 7.2-8.1-4.6-27.8-27-49.5-55.2-53-4.4-.5-8 3.1-8 7.5l0 39.9c0 3.6 2.4 6.8 6 7.7 17.9 4.2 34.3 6.1 50 6.1zm318.5-51.1c5 .8 9.5-3 9.5-8l0-42.6c0-4.4-3.6-8.1-8-7.5-25.2 3.1-45.9 20.9-53.2 44.6-1.4 4.7 2.3 9.1 7.2 9.2 14.2 .4 29 1.7 44.4 4.3zM448 152l0-39.9c0-3.6-2.5-6.8-6-7.7-17.9-4.2-34.3-6.1-50-6.1-4.4 0-7.9 3.8-7.2 8.1 4.6 27.8 27 49.5 55.2 53 4.4 .5 8-3.1 8-7.5zM125.2 162.9c1.4-4.7-2.3-9.1-7.2-9.2-14.2-.4-29-1.7-44.4-4.3-5-.8-9.5 3-9.5 8L64 200c0 4.4 3.6 8.1 8 7.5 25.2-3.1 45.9-20.9 53.2-44.6z\"]\n};\nvar faToiletPaperSlash = {\n  prefix: 'fas',\n  iconName: 'toilet-paper-slash',\n  icon: [576, 512, [], \"e072\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-94.5-94.5c40.2-23 69.5-96.9 69.5-184.6 0-106-43-192-96-192s-96 86-96 192c0 24.1 2.2 47.2 6.3 68.4L304 238.2 304 224c0-58.9 11.8-114.5 33.2-157.2 5.9-11.7 13.1-23.7 21.9-34.8L128 32c-8.3 0-16.4 2.1-24.1 6.1l-63-63zM32 224l0 264c0 30.9 25.1 56 56 56l160 0c30.9 0 56-25.1 56-56l0-114.2-256-256C37.9 148.2 32 184.7 32 224zm416 64c-17.7 0-32-28.7-32-64s14.3-64 32-64 32 28.7 32 64-14.3 64-32 64z\"]\n};\nvar faFileShield = {\n  prefix: 'fas',\n  iconName: 'file-shield',\n  icon: [576, 512, [], \"e4f0\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l201.2 0C261 469.4 240 414.5 240 356.4l0-31.1c0-34.4 22-65 54.7-75.9l112-37.3c3.1-1 6.2-1.8 9.3-2.5l0-39.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zm87.8 312.5l-13.3 6.3 0-188.1 96 32 0 19.6c0 55.8-32.2 106.5-82.7 130.3zM421.9 259.5l-112 37.3c-13.1 4.4-21.9 16.6-21.9 30.4l0 31.1c0 74.4 43 142.1 110.2 173.7l18.5 8.7c4.8 2.2 10 3.4 15.2 3.4s10.5-1.2 15.2-3.4l18.5-8.7C533 500.3 576 432.6 576 358.2l0-31.1c0-13.8-8.8-26-21.9-30.4l-112-37.3c-6.6-2.2-13.7-2.2-20.2 0z\"]\n};\nvar faTextHeight = {\n  prefix: 'fas',\n  iconName: 'text-height',\n  icon: [576, 512, [], \"f034\", \"M40 32C17.9 32 0 49.9 0 72l0 56c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 64 0 0 320-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-320 64 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-56c0-22.1-17.9-40-40-40L40 32zM438.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-9.4 9.4 0-229.5 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64c-6-6-14.1-9.4-22.6-9.4s-16.6 3.4-22.6 9.4l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4 0 229.5-9.4-9.4z\"]\n};\nvar faFaceGrinTongue = {\n  prefix: 'fas',\n  iconName: 'face-grin-tongue',\n  icon: [512, 512, [128539, \"grin-tongue\"], \"f589\", \"M0 256c0 104.4 62.5 194.2 152.2 234.1-5.3-13-8.2-27.2-8.2-42.1l0-61.7c-16.9-16.5-30.1-36.7-38.3-59.3-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1c11.9-3.7 23.9 6.3 19.6 18.1-8.3 22.6-21.5 42.8-38.3 59.3l0 61.7c0 14.9-2.9 29.1-8.2 42.1 89.7-39.8 152.2-129.6 152.2-234.1 0-141.4-114.6-256-256-256S0 114.6 0 256zm176-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm16 240l0-45.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9-2.8 12.6-20.8 12.6-23.6 0-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 45.4c0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faGrinTongue = faFaceGrinTongue;\nvar faFileSignature = {\n  prefix: 'fas',\n  iconName: 'file-signature',\n  icon: [640, 512, [], \"f573\", \"M64.1 64c0-35.3 28.7-64 64-64L277.6 0c17 0 33.3 6.7 45.3 18.7L429.3 125.3c12 12 18.7 28.3 18.7 45.3l0 97.5-132 132-42.1 0-16.1-53.6c-4.7-15.7-19.1-26.4-35.5-26.4-11.3 0-21.9 5.1-28.9 13.9L133.3 409c-8.3 10.3-6.6 25.5 3.7 33.7s25.5 6.6 33.7-3.8l47.1-58.8 15.2 50.7c3 10.2 12.4 17.1 23 17.1l31.5 0c-.9 3.1-1.7 6.3-2.3 9.5l-10.9 54.5-146.2 0c-35.3 0-64-28.7-64-64l0-384zm208-5.5l0 93.5c0 13.3 10.7 24 24 24l93.5 0-117.5-117.5zm60.2 408.4c2.5-12.4 8.6-23.8 17.5-32.7l118.9-118.9 80 80-118.9 118.9c-8.9 8.9-20.3 15-32.7 17.5l-59.6 11.9c-.9 .2-1.9 .3-2.9 .3-8 0-14.6-6.5-14.6-14.6 0-1 .1-1.9 .3-2.9l11.9-59.6zm267.8-123l-28.8 28.8-80-80 28.8-28.8c22.1-22.1 57.9-22.1 80 0s22.1 57.9 0 80z\"]\n};\nvar faBuildingWheat = {\n  prefix: 'fas',\n  iconName: 'building-wheat',\n  icon: [640, 512, [], \"e4db\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l249.3 0c-6-14.8-9.3-31-9.3-48 0-17.7 7.2-33.7 18.8-45.3-11.9-19.4-18.8-42.3-18.8-66.7 0-17.7 7.2-33.7 18.8-45.3-11.9-19.4-18.8-42.3-18.8-66.7 0-25.2 14.5-46.9 35.6-57.4-2.4-7.1-3.6-14.7-3.6-22.6l0-32C368 96.7 388 70.1 415.9 60.1 413.9 26.6 386 0 352 0L96 0zM208 352l32 0c17.7 0 32 14.3 32 32l0 80-96 0 0-80c0-17.7 14.3-32 32-32zM128 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm144-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm352 0l-16 0c-44.2 0-80 35.8-80 80 0 8.8 7.2 16 16 16l16 0c44.2 0 80-35.8 80-80 0-8.8-7.2-16-16-16zm16 128c0-8.8-7.2-16-16-16l-16 0c-44.2 0-80 35.8-80 80 0 8.8 7.2 16 16 16l16 0c44.2 0 80-35.8 80-80zm0 112c0-8.8-7.2-16-16-16l-16 0c-44.2 0-80 35.8-80 80 0 8.8 7.2 16 16 16l16 0c44.2 0 80-35.8 80-80zM496 528c0-44.2-35.8-80-80-80l-16 0c-8.8 0-16 7.2-16 16 0 44.2 35.8 80 80 80l16 0c8.8 0 16-7.2 16-16zm-16-96c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-16 0c-8.8 0-16 7.2-16 16 0 44.2 35.8 80 80 80l16 0zm16-128c0-44.2-35.8-80-80-80l-16 0c-8.8 0-16 7.2-16 16 0 44.2 35.8 80 80 80l16 0c8.8 0 16-7.2 16-16zM512 64c-13.3 0-24 10.7-24 24l0 104c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104c0-13.3-10.7-24-24-24zm96 64c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32zM440 104c-13.3 0-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32c0-13.3-10.7-24-24-24z\"]\n};\nvar faPlugCircleMinus = {\n  prefix: 'fas',\n  iconName: 'plug-circle-minus',\n  icon: [640, 512, [], \"e55e\", \"M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM352 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm224 0c0-8.8-7.2-16-16-16l-128 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l128 0c8.8 0 16-7.2 16-16z\"]\n};\nvar faFutbol = {\n  prefix: 'fas',\n  iconName: 'futbol',\n  icon: [512, 512, [9917, \"futbol-ball\", \"soccer-ball\"], \"f1e3\", \"M417.3 360.1l-71.6-4.8c-5.2-.3-10.3 1.1-14.5 4.2s-7.2 7.4-8.4 12.5l-17.6 69.6C289.5 445.8 273 448 256 448s-33.5-2.2-49.2-6.4L189.2 372c-1.3-5-4.3-9.4-8.4-12.5s-9.3-4.5-14.5-4.2l-71.6 4.8c-17.6-27.2-28.5-59.2-30.4-93.6L125 228.3c4.4-2.8 7.6-7 9.2-11.9s1.4-10.2-.5-15l-26.7-66.6C128 109.2 155.3 89 186.7 76.9l55.2 46c4 3.3 9 5.1 14.1 5.1s10.2-1.8 14.1-5.1l55.2-46c31.3 12.1 58.7 32.3 79.6 57.9l-26.7 66.6c-1.9 4.8-2.1 10.1-.5 15s4.9 9.1 9.2 11.9l60.7 38.2c-1.9 34.4-12.8 66.4-30.4 93.6zM256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm14.1-325.7c-8.4-6.1-19.8-6.1-28.2 0L194 221c-8.4 6.1-11.9 16.9-8.7 26.8l18.3 56.3c3.2 9.9 12.4 16.6 22.8 16.6l59.2 0c10.4 0 19.6-6.7 22.8-16.6l18.3-56.3c3.2-9.9-.3-20.7-8.7-26.8l-47.9-34.8z\"]\n};\nvar faFutbolBall = faFutbol;\nvar faSoccerBall = faFutbol;\nvar faCirclePlus = {\n  prefix: 'fas',\n  iconName: 'circle-plus',\n  icon: [512, 512, [\"plus-circle\"], \"f055\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM232 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"]\n};\nvar faPlusCircle = faCirclePlus;\nvar faBrazilianRealSign = {\n  prefix: 'fas',\n  iconName: 'brazilian-real-sign',\n  icon: [512, 512, [], \"e46c\", \"M400 16c17.7 0 32 14.3 32 32l0 16 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-48.9 0c-26 0-47.1 21.1-47.1 47.1 0 22.5 15.9 41.8 37.9 46.2l32.8 6.6c51.9 10.4 89.3 56 89.3 109 0 50.6-33.8 93.3-80 106.7l0 20.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-16-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64.9 0c26 0 47.1-21.1 47.1-47.1 0-22.5-15.9-41.8-37.9-46.2l-32.8-6.6c-51.9-10.4-89.3-56-89.3-109 0-50.6 33.8-93.2 80-106.7L368 48c0-17.7 14.3-32 32-32zM0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144 0 54.3-30 101.5-74.4 126.1l41 136.7c5.1 16.9-4.5 34.8-21.5 39.8s-34.8-4.5-39.8-21.5L120.1 319.8c-2.7 .1-5.4 .2-8.1 .2l-48 0 0 128c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80l-48 0 0 160z\"]\n};\nvar faStarAndCrescent = {\n  prefix: 'fas',\n  iconName: 'star-and-crescent',\n  icon: [512, 512, [9770], \"f699\", \"M0 256c0-141.4 114.6-256 256-256 33 0 64.6 6.3 93.6 17.7 7.4 2.9 11.5 10.7 9.8 18.4s-8.8 13-16.7 12.4c-4.8-.3-9.7-.5-14.6-.5-114.9 0-208 93.1-208 208s93.1 208 208 208c4.9 0 9.8-.2 14.6-.5 7.9-.5 15 4.7 16.7 12.4s-2.4 15.5-9.8 18.4C320.6 505.7 289 512 256 512 114.6 512 0 397.4 0 256zM375.4 137.4c3.5-7.1 13.7-7.1 17.2 0l31.5 63.8c1.4 2.8 4.1 4.8 7.2 5.3l70.4 10.2c7.9 1.1 11 10.8 5.3 16.4l-50.9 49.6c-2.3 2.2-3.3 5.4-2.8 8.5l12 70.1c1.3 7.8-6.9 13.8-13.9 10.1l-63-33.1c-2.8-1.5-6.1-1.5-8.9 0l-63 33.1c-7 3.7-15.3-2.3-13.9-10.1l12-70.1c.5-3.1-.5-6.3-2.8-8.5L261 233.1c-5.7-5.6-2.6-15.2 5.3-16.4l70.4-10.2c3.1-.5 5.8-2.4 7.2-5.3l31.5-63.8z\"]\n};\nvar faFaceSurprise = {\n  prefix: 'fas',\n  iconName: 'face-surprise',\n  icon: [512, 512, [128558, \"surprise\"], \"f5c2\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM176 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-48 80a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nvar faSurprise = faFaceSurprise;\nvar faHospitalUser = {\n  prefix: 'fas',\n  iconName: 'hospital-user',\n  icon: [640, 512, [], \"f80d\", \"M64 64C64 28.7 92.7 0 128 0L384 0c35.3 0 64 28.7 64 64l0 121.3c-46.9 19-80 65-80 118.7 0 27.7 8.8 53.4 23.8 74.4-51.5 21-87.8 71.6-87.8 130.7 0 1 0 1.9 0 2.9l-176 0c-35.3 0-64-28.7-64-64L64 64zM208 400l0 64 53.4 0c7.2-29.4 21.3-56.1 40.4-78.3-6.1-19.5-24.3-33.7-45.8-33.7-26.5 0-48 21.5-48 48zM248 88c-8.8 0-16 7.2-16 16l0 32-32 0c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l32 0 0 32c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-32 32 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-32 0 0-32c0-8.8-7.2-16-16-16l-16 0zM416 304a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zM352 512c0-53 43-96 96-96l96 0c53 0 96 43 96 96 0 17.7-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32z\"]\n};\nvar faArrowDownUpLock = {\n  prefix: 'fas',\n  iconName: 'arrow-down-up-lock',\n  icon: [576, 512, [], \"e4b0\", \"M262.6 422.6l-80 80c-12.5 12.5-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l25.4 25.4 0-114.7-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l256 0 0-114.7-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l80-80c12.5-12.5 32.8-12.5 45.3 0l80 80c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-25.4-25.4 0 94.8c-25.3 20.3-42.8 50.1-47 83.9l-145 0 0 114.7 25.4-25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM192 32l0 144-64 0 0-144c0-17.7 14.3-32 32-32s32 14.3 32 32zM496 304.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM352 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"]\n};\nvar faFolder = {\n  prefix: 'fas',\n  iconName: 'folder',\n  icon: [512, 512, [128193, 128447, 61716, \"folder-blank\"], \"f07b\", \"M64 448l384 0c35.3 0 64-28.7 64-64l0-240c0-35.3-28.7-64-64-64L298.7 80c-6.9 0-13.7-2.2-19.2-6.4L241.1 44.8C230 36.5 216.5 32 202.7 32L64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64z\"]\n};\nvar faFolderBlank = faFolder;\nvar faHollyBerry = {\n  prefix: 'fas',\n  iconName: 'holly-berry',\n  icon: [512, 512, [], \"f7aa\", \"M256.2 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-80 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM277 383.8c1 .1 2.1 .2 3.2 .2 39.8 0 72 32.2 72 72l0 22.7c0 16.4 16 27.9 31.6 22.8l12.8-4.3c18-6 37.3-6.5 55.6-1.5l19.4 5.3c17.9 4.9 34.4-11.6 29.5-29.5L495.9 452c-5-18.3-4.4-37.6 1.5-55.6l4.3-12.8c5.2-15.5-6.4-31.6-22.8-31.6-34.6 0-62.7-28.1-62.7-62.7l0-32c0-16.4-16-27.9-31.6-22.8l-12.8 4.3c-18 6-37.3 6.5-55.6 1.5l-29.6-8.1c-2.9-.8-5.9-1-8.7-.7 4.2 9.7 5.8 20.8 3.7 32.3l-6.3 34.8c-1.5 8.4-1.4 17 .5 25.3l5.3 23.9c2.8 12.7 1.1 25.2-4 35.9zM127.8 234.5c-15.5-5.2-31.6 6.4-31.6 22.8l0 32c0 34.6-28.1 62.7-62.7 62.7-16.4 0-27.9 16-22.8 31.6L15 396.4c6 18 6.5 37.3 1.5 55.6l-5.3 19.4C6.4 489.4 22.8 505.8 40.7 501l19.4-5.3c18.3-5 37.6-4.5 55.6 1.5l12.8 4.3c15.5 5.2 31.6-6.4 31.6-22.8l0-32c0-34.6 28.1-62.7 62.7-62.7 16.4 0 27.9-16 22.8-31.6l-4.3-12.8c-6-18-6.5-37.3-1.5-55.6l5.3-19.4c4.9-17.9-11.6-34.4-29.5-29.5l-19.4 5.3c-18.3 5-37.6 4.4-55.6-1.5l-12.8-4.3zM384.2 144a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nvar faVenusDouble = {\n  prefix: 'fas',\n  iconName: 'venus-double',\n  icon: [640, 512, [9890], \"f226\", \"M192 288a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM368 176c0 86.3-62.1 158.1-144.1 173.1 .1 1 .1 1.9 .1 2.9l0 64 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-64c0-1 0-1.9 .1-2.9-82-15-144.1-86.8-144.1-173.1 0-97.2 78.8-176 176-176S368 78.8 368 176zM357.5 327c14.4-15.8 26.6-33.7 36.1-53.1 16.1 9 34.7 14.1 54.5 14.1 61.9 0 112-50.1 112-112S509.9 64 448 64c-19.8 0-38.3 5.1-54.5 14.1-9.5-19.4-21.6-37.3-36.1-53.1 26.4-15.9 57.4-25 90.5-25 97.2 0 176 78.8 176 176 0 86.3-62.1 158.1-144.1 173.1 .1 .9 .1 1.9 .1 2.9l0 64 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-64c0-1 0-1.9 .1-2.9-21.1-3.9-40.9-11.5-58.6-22.2z\"]\n};\nvar faClipboardQuestion = {\n  prefix: 'fas',\n  iconName: 'clipboard-question',\n  icon: [384, 512, [], \"e4e3\", \"M311.4 32l8.6 0c35.3 0 64 28.7 64 64l0 352c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l8.6 0C83.6 12.9 104.3 0 128 0L256 0c23.7 0 44.4 12.9 55.4 32zM248 112c13.3 0 24-10.7 24-24s-10.7-24-24-24L136 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0zM192 248c16.1 0 29.2 13.1 29.2 29.2 0 8.7-3.1 13.9-6.9 17.7-4.5 4.4-10.7 7.5-16.8 9.5-14.9 5-29.5 19.3-29.5 39.5 0 13.3 10.7 24 24 24 11.5 0 21.2-8.1 23.5-19 19.2-7.1 53.7-26.3 53.7-71.8 0-42.6-34.6-77.2-77.2-77.2s-77.2 34.6-77.2 77.2c0 13.3 10.7 24 24 24s24-10.7 24-24c0-16.1 13.1-29.2 29.2-29.2zm28 168c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28z\"]\n};\nvar faHotdog = {\n  prefix: 'fas',\n  iconName: 'hotdog',\n  icon: [512, 512, [127789], \"f80f\", \"M288 0c-20.5 0-40.1 8.1-54.6 22.6L22.6 233.4C8.1 247.9 0 267.5 0 288 0 300.2 2.9 312.1 8.2 322.7L322.7 8.2C312.1 2.9 300.2 0 288 0zM224 512c20.5 0 40.1-8.1 54.6-22.6L489.4 278.6c14.5-14.5 22.6-34.1 22.6-54.6 0-12.2-2.9-24.1-8.2-34.7L189.3 503.8c10.7 5.4 22.6 8.2 34.7 8.2zM456.6 168.6c31.2-31.2 31.2-81.9 0-113.1s-81.9-31.2-113.1 0l-288 288c-31.2 31.2-31.2 81.9 0 113.1s81.9 31.2 113.1 0l288-288z\"]\n};\nvar faArrowUpFromBracket = {\n  prefix: 'fas',\n  iconName: 'arrow-up-from-bracket',\n  icon: [448, 512, [], \"e09a\", \"M246.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 109.3 192 320c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128zM64 352c0-17.7-14.3-32-32-32S0 334.3 0 352l0 64c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-64z\"]\n};\nvar faMicroscope = {\n  prefix: 'fas',\n  iconName: 'microscope',\n  icon: [512, 512, [128300], \"f610\", \"M176 0c-26.5 0-48 21.5-48 48l0 208c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-64 32 0c70.7 0 128 57.3 128 128S390.7 448 320 448L32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16.9 0c30.4-34 48.9-78.8 48.9-128 0-106-86-192-192-192l-32 0 0-80c0-26.5-21.5-48-48-48L176 0zM120 352c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0z\"]\n};\nvar faCloud = {\n  prefix: 'fas',\n  iconName: 'cloud',\n  icon: [576, 512, [9729], \"f0c2\", \"M0 336c0 79.5 64.5 144 144 144l304 0c70.7 0 128-57.3 128-128 0-51.6-30.5-96.1-74.5-116.3 6.7-13.1 10.5-28 10.5-43.7 0-53-43-96-96-96-17.7 0-34.2 4.8-48.4 13.1-24.1-45.8-72.2-77.1-127.6-77.1-79.5 0-144 64.5-144 144 0 8 .7 15.9 1.9 23.5-56.9 19.2-97.9 73.1-97.9 136.5z\"]\n};\nvar faBaseballBatBall = {\n  prefix: 'fas',\n  iconName: 'baseball-bat-ball',\n  icon: [576, 512, [], \"f432\", \"M464.1 544a80 80 0 1 1 0-160 80 80 0 1 1 0 160zm8.4-576c15.1 0 29.7 5.8 40.7 16.2l47.2 44.8c12.6 12 19.1 29 17.5 46.3-1.2 13.3-7 25.8-16.5 35.2L363.1 309c-7.3 7.3-15.7 13.4-25 18L206 393c-9.2 4.6-17.7 10.7-25 18l-92 92 1.7 1.8c7.7 9.4 7.1 23.3-1.7 32.1s-22.7 9.3-32.1 1.7l-1.8-1.7-48-48-1.7-1.8c-7.7-9.4-7.1-23.3 1.7-32.1s22.7-9.3 32.1-1.7l1.8 1.7 92-92c7.3-7.3 13.4-15.7 18-25l66.1-132.1c4.6-9.2 10.7-17.7 18-25L430.8-14.7C441.9-25.8 456.9-32 472.5-32z\"]\n};\nvar faCarRear = {\n  prefix: 'fas',\n  iconName: 'car-rear',\n  icon: [512, 512, [\"car-alt\"], \"f5de\", \"M165.4 96l181.2 0c13.6 0 25.7 8.6 30.2 21.4l26.1 74.6-293.8 0 26.1-74.6c4.5-12.8 16.6-21.4 30.2-21.4zm-90.6 .3L39.6 196.8C16.4 206.4 0 229.3 0 256l0 96c0 23.7 12.9 44.4 32 55.4L32 448c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-32 256 0 0 32c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-40.6c19.1-11.1 32-31.7 32-55.4l0-96c0-26.7-16.4-49.6-39.6-59.2L437.2 96.3C423.7 57.8 387.4 32 346.6 32L165.4 32c-40.8 0-77.1 25.8-90.6 64.3zM208 288l96 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-96 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM48 280c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm360-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faCarAlt = faCarRear;\nvar faThumbtackSlash = {\n  prefix: 'fas',\n  iconName: 'thumbtack-slash',\n  icon: [576, 512, [\"thumb-tack-slash\"], \"e68f\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L417.8 352 448 352c10 0 19.5-4.7 25.5-12.7s8-18.4 5.2-28.1L475 297.8c-12.4-43.3-41-78.5-78.2-99.7L386.5 64 416 64c17.7 0 32-14.3 32-32S433.7 0 416 0L160 0c-7.4 0-14.1 2.5-19.5 6.6L190.1 56.3 185.3 119.4 41-24.9zM282.2 352L149.7 219.6c-22.7 20.5-39.8 47.4-48.7 78.3l-3.8 13.4c-2.8 9.7-.8 20 5.2 28.1S118 352 128 352l154.2 0zM256 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-112-64 0 0 112z\"]\n};\nvar faThumbTackSlash = faThumbtackSlash;\nvar faPlusMinus = {\n  prefix: 'fas',\n  iconName: 'plus-minus',\n  icon: [384, 512, [], \"e43c\", \"M224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 128-128 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0 0-128zM0 480c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 448c-17.7 0-32 14.3-32 32z\"]\n};\nvar faHouseCircleCheck = {\n  prefix: 'fas',\n  iconName: 'house-circle-check',\n  icon: [640, 512, [], \"e509\", \"M496 544a144 144 0 1 1 0-288 144 144 0 1 1 0 288zM268.6 6.5c12.2-9.3 29.7-8.7 41.2 2l217.6 202c-10.2-1.7-20.7-2.6-31.3-2.6-78.6 0-146.1 47.2-175.8 114.8-5.1-1.8-10.5-2.8-16.2-2.8l-32 0c-26.5 0-48 21.5-48 48l0 96 91 0c6.1 17.3 14.6 33.4 25.1 48L144 512c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208 2.4-2zM553.4 339.1c-7.1-5.2-17.1-3.6-22.3 3.5l-53 72.8-26.7-26.8c-6.2-6.2-16.4-6.2-22.6 0-6.2 6.2-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.7s8.9-2.8 11.7-6.6l64-88c5.2-7.1 3.6-17.1-3.5-22.3z\"]\n};\nvar faCalendarDay = {\n  prefix: 'fas',\n  iconName: 'calendar-day',\n  icon: [448, 512, [], \"f783\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zm0 256c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0z\"]\n};\nvar faLibra = {\n  prefix: 'fas',\n  iconName: 'libra',\n  icon: [512, 512, [], \"e84b\", \"M480 384c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l448 0zM256 32c97.2 0 176 78.8 176 176 0 16.6-2.4 32.7-6.7 48l54.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-104.2 0c-11.8 0-22.7-6.5-28.2-16.9s-4.9-23.1 1.6-32.9c11.9-17.8 18.8-39.1 18.8-62.2 0-61.9-50.1-112-112-112S144 146.1 144 208c0 23.1 6.9 44.4 18.8 62.2 6.6 9.8 7.2 22.5 1.6 32.9S148.1 320 136.2 320L32 320c-17.7 0-32-14.3-32-32s14.3-32 32-32l54.8 0c-4.3-15.3-6.8-31.4-6.8-48 0-97.2 78.8-176 176-176z\"]\n};\nvar faCircle = {\n  prefix: 'fas',\n  iconName: 'circle',\n  icon: [512, 512, [128308, 128309, 128992, 128993, 128994, 128995, 128996, 9679, 9898, 9899, 11044, 61708, 61915], \"f111\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"]\n};\nvar faMobileVibrate = {\n  prefix: 'fas',\n  iconName: 'mobile-vibrate',\n  icon: [576, 512, [], \"e816\", \"M384 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64l-192 0c-35.3 0-64-28.7-64-64l0-384c0-35.3 28.7-64 64-64L384 0zM248 416c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zM48.8 133.4c9.4-7.7 23.3-7.1 32.1 1.7 9.4 9.4 9.4 24.6 0 33.9l-31 31 25.4 25.4 2.9 3.2c6.3 7.7 9.8 17.4 9.8 27.4 0 11.5-4.6 22.5-12.7 30.6l-25.4 25.4 31 31 1.7 1.8c7.7 9.4 7.1 23.3-1.7 32.1s-22.7 9.3-32.1 1.7L47 377 12.7 342.6C5.6 335.5 1.2 326.2 .2 316.3L0 312 .2 307.7c1-9.9 5.4-19.2 12.5-26.3L38.1 256 12.7 230.6C5.6 223.5 1.2 214.2 .2 204.3L0 200 .2 195.7c1-9.9 5.4-19.2 12.5-26.3L47 135 48.8 133.4zM495 135c8.8-8.8 22.7-9.3 32.1-1.7l1.8 1.7 34.3 34.3c7.1 7.1 11.5 16.4 12.5 26.3l.2 4.3-.2 4.3c-1 9.9-5.4 19.2-12.5 26.3l-25.4 25.4 25.4 25.4c7.1 7.1 11.5 16.4 12.5 26.3l.2 4.3-.2 4.3c-1 9.9-5.4 19.2-12.5 26.3l-34.3 34.3-1.8 1.7c-9.4 7.7-23.3 7.1-32.1-1.7s-9.3-22.7-1.7-32.1l1.7-1.8 31-31-25.4-25.4c-8.1-8.1-12.7-19.1-12.7-30.6 0-10 3.5-19.7 9.8-27.4l2.9-3.2 25.4-25.4-31-31c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faFaceGrinSquint = {\n  prefix: 'fas',\n  iconName: 'face-grin-squint',\n  icon: [512, 512, [128518, \"grin-squint\"], \"f585\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM386.7 308.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 388.2 105.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM122.6 143.2c4.5-6.8 13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 192 125.8 164.3c-6.2-5.2-7.6-14.3-3.1-21.1zm263.6 21.1L353 192 386.2 219.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5s3.1 15.9-3.1 21.1z\"]\n};\nvar faGrinSquint = faFaceGrinSquint;\nvar faUsersBetweenLines = {\n  prefix: 'fas',\n  iconName: 'users-between-lines',\n  icon: [576, 512, [], \"e591\", \"M24 16l528 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 64C10.7 64 0 53.3 0 40S10.7 16 24 16zm0 448l528 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24zM392 192a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm27.2 100.4c9.1-2.9 18.8-4.4 28.8-4.4 53 0 96 43 96 96l0 10.7c0 11.8-9.6 21.3-21.3 21.3l-78.8 0c2.7-7.5 4.1-15.6 4.1-24l0-8c0-34.1-10.6-65.7-28.8-91.6zm-262.4 0C138.6 318.3 128 349.9 128 384l0 8c0 8.4 1.4 16.5 4.1 24l-78.8 0C41.6 416 32 406.4 32 394.7L32 384c0-53 43-96 96-96 10 0 19.7 1.5 28.8 4.4zM72 192a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm152-16a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM176 384c0-61.9 50.1-112 112-112s112 50.1 112 112l0 8c0 13.3-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24l0-8z\"]\n};\nvar faHouseMedicalCircleXmark = {\n  prefix: 'fas',\n  iconName: 'house-medical-circle-xmark',\n  icon: [640, 512, [], \"e513\", \"M309.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S50.8 272 64 272l16 0 0 176c0 35.3 28.7 64 64 64l196 0c-21.2-29.5-34.3-65.3-35.9-104L272 408c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 20 0c34.9-48.5 91.7-80 156-80 10.7 0 21.1 .9 31.3 2.5L309.8 8.6zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm22.6-144l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L518.6 400z\"]\n};\nvar faTableList = {\n  prefix: 'fas',\n  iconName: 'table-list',\n  icon: [448, 512, [\"th-list\"], \"f00b\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm64 0l0 64 64 0 0-64-64 0zm320 0l-192 0 0 64 192 0 0-64zM64 224l0 64 64 0 0-64-64 0zm320 0l-192 0 0 64 192 0 0-64zM64 352l0 64 64 0 0-64-64 0zm320 0l-192 0 0 64 192 0 0-64z\"]\n};\nvar faThList = faTableList;\nvar faFlaskVial = {\n  prefix: 'fas',\n  iconName: 'flask-vial',\n  icon: [640, 512, [], \"e4f3\", \"M184.6 411.5c-3.1 7.3-5.4 14.9-6.8 22.6-14.5 8.8-31.5 13.9-49.8 13.9-53 0-96-43-96-96L32 64C14.3 64 0 49.7 0 32S14.3 0 32 0L224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 255.6-39.4 91.9zM96 64l0 128 64 0 0-128-64 0zM352 0L512 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 153.4 91.3 213c2.3 5.4 3.8 11.1 4.4 17l.3 .6-.3 0c.2 1.8 .3 3.6 .3 5.4 0 32.3-26.2 58.6-58.6 58.6l-266.9 0c-32.3 0-58.6-26.2-58.6-58.6 0-1.8 .1-3.6 .3-5.4l-.3 0 .3-.6c.6-5.8 2.1-11.6 4.4-17L320 217.4 320 64c-17.7 0-32-14.3-32-32S302.3 0 320 0l32 0zM453.2 242.6c-3.4-8-5.2-16.5-5.2-25.2l0-153.4-64 0 0 153.4c0 8.7-1.8 17.2-5.2 25.2l-33.2 77.4 140.7 0-33.2-77.4z\"]\n};\nvar faCircleExclamation = {\n  prefix: 'fas',\n  iconName: 'circle-exclamation',\n  icon: [512, 512, [\"exclamation-circle\"], \"f06a\", \"M256 512a256 256 0 1 1 0-512 256 256 0 1 1 0 512zm0-192a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm0-192c-18.2 0-32.7 15.5-31.4 33.7l7.4 104c.9 12.6 11.4 22.3 23.9 22.3 12.6 0 23-9.7 23.9-22.3l7.4-104c1.3-18.2-13.1-33.7-31.4-33.7z\"]\n};\nvar faExclamationCircle = faCircleExclamation;\nvar faTaxi = {\n  prefix: 'fas',\n  iconName: 'taxi',\n  icon: [512, 512, [128662, \"cab\"], \"f1ba\", \"M192 0c-17.7 0-32 14.3-32 32l0 32-8.9 0c-42 0-79.1 27.3-91.6 67.4l-23 73.5C14.5 219.1 0 243.9 0 272L0 448c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-32 320 0 0 32c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-176c0-28.1-14.5-52.9-36.4-67.1l-23-73.5C440.1 91.3 402.9 64 360.9 64l-8.9 0 0-32c0-17.7-14.3-32-32-32L192 0zM151.1 128l209.9 0c14 0 26.4 9.1 30.5 22.5l13 41.5-296.9 0 13-41.5c4.2-13.4 16.5-22.5 30.5-22.5zM96 272a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm288 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faCab = faTaxi;\nvar faTextSlash = {\n  prefix: 'fas',\n  iconName: 'text-slash',\n  icon: [576, 512, [\"remove-format\"], \"f87d\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L322.7 256.9 368.2 96 471 96 465 120.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l11-44.1C545.6 61.3 522.7 32 491.5 32l-319 0c-19.8 0-37.3 12.1-44.5 30.1l-87-87zM180.4 114.5l4.6-18.5 116.7 0-30.8 109-90.5-90.5zM241 310.8L211.3 416 160 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-42.2 0 15.1-53.3-51.9-51.9z\"]\n};\nvar faRemoveFormat = faTextSlash;\nvar faPeoplePulling = {\n  prefix: 'fas',\n  iconName: 'people-pulling',\n  icon: [576, 512, [], \"e535\", \"M80 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM64 128c-35.3 0-64 28.7-64 64L0 320c0 17.7 14.3 32 32 32 9.8 0 18.5-4.4 24.4-11.2L80.4 485.3c2.9 17.4 19.4 29.2 36.8 26.3s29.2-19.4 26.3-36.8l-20.5-122.7 15.7 0 30 134.9c3.8 17.3 20.9 28.1 38.2 24.3s28.1-20.9 24.3-38.2l-57.3-258 116.3 53.8c.5 .3 1.1 .5 1.6 .7 8.6 3.6 18 3.1 25.9-.7 3.4-1.6 6.6-3.9 9.3-6.7 3.1-3.2 5.5-7 7.1-11.4 .1-.3 .2-.7 .3-1l2.5-7.5c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9l-21.4-10.7-15.3-36.8c-17.1-41.1-57.3-67.9-101.9-67.9-22.8 0-45.3 4.8-66.1 14l-8 3.5c-24.4 10.9-44.6 29-58.1 51.6L157.3 136.9C144.7 131 130.9 128 117 128l-53 0zM464 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM349.7 335.6l-25 62.4-59.4 59.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L372.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6z\"]\n};\nvar faBackward = {\n  prefix: 'fas',\n  iconName: 'backward',\n  icon: [576, 512, [9194], \"f04a\", \"M204.3 43.1C215.9 32 233 28.9 247.7 35.2S272 56 272 72l0 136.3 172.3-165.1C455.9 32 473 28.9 487.7 35.2S512 56 512 72l0 368c0 16-9.6 30.5-24.3 36.8s-31.8 3.2-43.4-7.9L272 303.7 272 440c0 16-9.6 30.5-24.3 36.8s-31.8 3.2-43.4-7.9l-192-184C4.5 277.3 0 266.9 0 256s4.5-21.3 12.3-28.9l192-184z\"]\n};\nvar faCarBurst = {\n  prefix: 'fas',\n  iconName: 'car-burst',\n  icon: [640, 512, [\"car-crash\"], \"f5e1\", \"M232 16.1l0-48c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24s24-10.7 24-24zM32 168.1l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24zM281.5 70.6c9.4 9.4 24.6 9.4 33.9 0l33.9-33.9c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L281.5 36.6c-9.4 9.4-9.4 24.6 0 33.9zm-181 215l33.9-33.9c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L66.6 251.6c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0zM66.6 2.7c-9.4 9.4-9.4 24.6 0 33.9l33.9 33.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L100.5 2.7C91.1-6.7 76-6.7 66.6 2.7zM352.9 175.4L505 216.2c6.4 1.7 11.1 7.3 11.8 13.9l7.2 74-231.5-62 43.2-60.5c3.9-5.4 10.7-7.9 17.2-6.2zM223.6 228.5l-2.1 2.9c-21.7 5.5-39.9 22.3-46.1 45.5-4.1 15.5-12.4 46.4-24.8 92.7l-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6l8.3-30.9 278.2 74.5-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6 4.1-15.5 12.4-46.4 24.8-92.7l8.3-30.9c6.2-23.2-1.1-46.8-17.2-62.5l-.3-3.6-10-103c-3.2-33.2-26.7-60.9-58.9-69.5L369.5 113.6c-32.2-8.6-66.4 3.6-85.8 30.8l-60.2 84.2zm48.7 57.8a32 32 0 1 1 -16.6 61.8 32 32 0 1 1 16.6-61.8zm208.1 88.9a32 32 0 1 1 61.8 16.6 32 32 0 1 1 -61.8-16.6z\"]\n};\nvar faCarCrash = faCarBurst;\nvar faLink = {\n  prefix: 'fas',\n  iconName: 'link',\n  icon: [576, 512, [128279, \"chain\"], \"f0c1\", \"M419.5 96c-16.6 0-32.7 4.5-46.8 12.7-15.8-16-34.2-29.4-54.5-39.5 28.2-24 64.1-37.2 101.3-37.2 86.4 0 156.5 70 156.5 156.5 0 41.5-16.5 81.3-45.8 110.6l-71.1 71.1c-29.3 29.3-69.1 45.8-110.6 45.8-86.4 0-156.5-70-156.5-156.5 0-1.5 0-3 .1-4.5 .5-17.7 15.2-31.6 32.9-31.1s31.6 15.2 31.1 32.9c0 .9 0 1.8 0 2.6 0 51.1 41.4 92.5 92.5 92.5 24.5 0 48-9.7 65.4-27.1l71.1-71.1c17.3-17.3 27.1-40.9 27.1-65.4 0-51.1-41.4-92.5-92.5-92.5zM275.2 173.3c-1.9-.8-3.8-1.9-5.5-3.1-12.6-6.5-27-10.2-42.1-10.2-24.5 0-48 9.7-65.4 27.1L91.1 258.2c-17.3 17.3-27.1 40.9-27.1 65.4 0 51.1 41.4 92.5 92.5 92.5 16.5 0 32.6-4.4 46.7-12.6 15.8 16 34.2 29.4 54.6 39.5-28.2 23.9-64 37.2-101.3 37.2-86.4 0-156.5-70-156.5-156.5 0-41.5 16.5-81.3 45.8-110.6l71.1-71.1c29.3-29.3 69.1-45.8 110.6-45.8 86.6 0 156.5 70.6 156.5 156.9 0 1.3 0 2.6 0 3.9-.4 17.7-15.1 31.6-32.8 31.2s-31.6-15.1-31.2-32.8c0-.8 0-1.5 0-2.3 0-33.7-18-63.3-44.8-79.6z\"]\n};\nvar faChain = faLink;\nvar faBackwardStep = {\n  prefix: 'fas',\n  iconName: 'backward-step',\n  icon: [384, 512, [\"step-backward\"], \"f048\", \"M363 36.8c-12.9-7-28.7-6.3-41 1.8L64 208.1 64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-144.1 258 169.6c12.3 8.1 28 8.8 41 1.8s21-20.5 21-35.2l0-368c0-14.7-8.1-28.2-21-35.2z\"]\n};\nvar faStepBackward = faBackwardStep;\nvar faX = {\n  prefix: 'fas',\n  iconName: 'x',\n  icon: [384, 512, [120], \"58\", \"M376.6 84.5c11.3-13.6 9.5-33.8-4.1-45.1s-33.8-9.5-45.1 4.1L192 206 56.6 43.5C45.3 29.9 25.1 28.1 11.5 39.4S-3.9 70.9 7.4 84.5L150.3 256 7.4 427.5c-11.3 13.6-9.5 33.8 4.1 45.1s33.8 9.5 45.1-4.1L192 306 327.4 468.5c11.3 13.6 31.5 15.4 45.1 4.1s15.4-31.5 4.1-45.1L233.7 256 376.6 84.5z\"]\n};\nvar faCircleUser = {\n  prefix: 'fas',\n  iconName: 'circle-user',\n  icon: [512, 512, [62142, \"user-circle\"], \"f2bd\", \"M399 384.2C376.9 345.8 335.4 320 288 320l-64 0c-47.4 0-88.9 25.8-111 64.2 35.2 39.2 86.2 63.8 143 63.8s107.8-24.7 143-63.8zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm256 16a72 72 0 1 0 0-144 72 72 0 1 0 0 144z\"]\n};\nvar faUserCircle = faCircleUser;\nvar faRectangleList = {\n  prefix: 'fas',\n  iconName: 'rectangle-list',\n  icon: [512, 512, [\"list-alt\"], \"f022\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm96 256a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-32-96a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm120-56l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 128l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faListAlt = faRectangleList;\nvar faHand = {\n  prefix: 'fas',\n  iconName: 'hand',\n  icon: [512, 512, [129306, 9995, \"hand-paper\"], \"f256\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 272c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4S-3.6 325.7 12.4 341L124.8 448c43.1 41.1 100.4 64 160 64l19.2 0c97.2 0 176-78.8 176-176l0-208c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208z\"]\n};\nvar faHandPaper = faHand;\nvar faCancer = {\n  prefix: 'fas',\n  iconName: 'cancer',\n  icon: [512, 512, [], \"e847\", \"M408 152c57.4 0 104 46.6 104 104 0 141.4-114.6 256-256 256-54.3 0-104.8-17-146.3-45.9-14.5-10.1-18-30.1-7.9-44.6s30.1-18 44.6-7.9c31.1 21.7 68.9 34.4 109.7 34.4 67.9 0 127.5-35.3 161.7-88.5-3.2 .3-6.4 .5-9.7 .5-57.4 0-104-46.6-104-104s46.6-104 104-104zM256 0c54.3 0 104.8 17 146.3 45.9 14.5 10.1 18 30.1 7.9 44.6s-30.1 18-44.6 7.9c-31.1-21.7-68.9-34.4-109.7-34.4-67.9 0-127.5 35.2-161.7 88.4 3.2-.3 6.4-.4 9.7-.4 57.4 0 104 46.6 104 104S161.4 360 104 360 0 313.4 0 256C0 254.1 0 252.2 .1 250.4 3.1 111.6 116.5 0 256 0zM104 216a40 40 0 1 0 0 80 40 40 0 1 0 0-80zm304 0a40 40 0 1 0 0 80 40 40 0 1 0 0-80z\"]\n};\nvar faVanShuttle = {\n  prefix: 'fas',\n  iconName: 'van-shuttle',\n  icon: [576, 512, [128656, \"shuttle-van\"], \"f5b6\", \"M64 64C28.7 64 0 92.7 0 128L0 336c0 35.3 28.7 64 64 64l.4 0c4 44.9 41.7 80 87.6 80s83.6-35.1 87.6-80l104.7 0c4 44.9 41.7 80 87.6 80 46.1 0 83.9-35.4 87.7-80.5 31.7-3.8 56.3-30.8 56.3-63.5l0-101.3c0-13.8-4.5-27.3-12.8-38.4l-80-106.7C471.1 73.5 452.1 64 432 64L64 64zM504 224l-120 0 0-96 48 0 72 96zM64 224l0-96 96 0 0 96-96 0zm160 0l0-96 96 0 0 96-96 0zM392 392a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM152 352a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"]\n};\nvar faShuttleVan = faVanShuttle;\nvar faStairs = {\n  prefix: 'fas',\n  iconName: 'stairs',\n  icon: [576, 512, [], \"e289\", \"M384 64c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0 0-96c0-17.7 14.3-32 32-32l96 0 0-96c0-17.7 14.3-32 32-32l96 0 0-96z\"]\n};\nvar faHorseHead = {\n  prefix: 'fas',\n  iconName: 'horse-head',\n  icon: [512, 512, [], \"f7ab\", \"M0 464L0 316.9C0 208.5 68.3 111.8 170.5 75.6L340.2 15.5c21.4-7.6 43.8 8.3 43.8 30.9 0 11-5.5 21.2-14.6 27.3L336 96c48.1 0 91.2 29.8 108.1 74.9l48.6 129.5c11.8 31.4 4.1 66.8-19.6 90.5-16 16-37.8 25.1-60.5 25.1l-3.4 0c-26.1 0-50.9-11.6-67.6-31.7l-32.3-38.7c-11.7 4.1-24.2 6.4-37.3 6.4l-.1 0c-6.3 0-12.5-.5-18.6-1.5-3.6-.6-7.2-1.4-10.7-2.3l0 0c-28.9-7.8-53.1-26.8-67.8-52.2-4.4-7.7-14.2-10.3-21.9-5.8s-10.3 14.2-5.8 21.9c24 41.5 68.3 70 119.3 71.9l47.2 70.8c4 6.1 6.2 13.2 6.2 20.4 0 20.3-16.5 36.8-36.8 36.8L48 512c-26.5 0-48-21.5-48-48zM328 224a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faVault = {\n  prefix: 'fas',\n  iconName: 'vault',\n  icon: [512, 512, [], \"e2c5\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64 0 17.7 14.3 32 32 32s32-14.3 32-32l256 0c0 17.7 14.3 32 32 32s32-14.3 32-32c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM256 256a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM64 256a128 128 0 1 1 256 0 128 128 0 1 1 -256 0zm384-48c0 17.8-9.7 33.3-24 41.6l0 78.4c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-78.4c-14.3-8.3-24-23.8-24-41.6 0-26.5 21.5-48 48-48s48 21.5 48 48z\"]\n};\nvar faClosedCaptioningSlash = {\n  prefix: 'fas',\n  iconName: 'closed-captioning-slash',\n  icon: [576, 512, [], \"e135\", \"M7-24.9c9.4-9.4 24.6-9.4 33.9 0L129.8 64 480 64c35.3 0 64 28.7 64 64l0 256c0 25.5-14.9 47.4-36.4 57.8L569 503.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 9.1C-2.3-.3-2.3-15.5 7-24.9zm345 311l0-70.2c0-4.4 3.6-8 8-8l32 0c4.4 0 8 3.6 8 8 0 13.3 10.7 24 24 24s24-10.7 24-24c0-30.9-25.1-56-56-56l-32 0c-30.9 0-56 25.1-56 56l0 22.2 48 48zm61.5 61.5c20.2-8.4 34.5-28.4 34.5-51.7 0-13.3-10.7-24-24-24s-24 10.7-24 24c0 4.4-3.6 8-8 8l-22.2 0 43.7 43.7zM130.3 200.1c-1.5 5-2.3 10.4-2.3 15.9l0 80c0 30.9 25.1 56 56 56l32 0c18.1 0 34.1-8.5 44.4-21.8L378.2 448 96 448c-35.3 0-64-28.7-64-64l0-256c0-7.8 1.4-15.3 4-22.2l94.3 94.3zm93.8 93.8c-.1 .7-.1 1.4-.1 2.1 0 4.4-3.6 8-8 8l-32 0c-4.4 0-8-3.6-8-8l0-50.2 48.1 48.1z\"]\n};\nvar faDrumSteelpan = {\n  prefix: 'fas',\n  iconName: 'drum-steelpan',\n  icon: [576, 512, [], \"f56a\", \"M288 32c159.1 0 288 48 288 128l0 192c0 80-128.9 128-288 128S0 432 0 352L0 160C0 80 128.9 32 288 32zM528 160c0-9.9-8-29.9-55-49.8-18.6-7.9-40.9-14.4-66-19.4l-27.8 43.6c-7.3 11.5-11.2 24.8-11.2 38.4 0 17.5 6.4 34.4 18.1 47.5l9.8 11c29.8-5.2 55.9-12.5 77.2-21.5 47.1-19.9 55-39.9 55-49.8zM349.2 237.3c-8-26.2-32.4-45.3-61.2-45.3s-53.3 19.1-61.2 45.3c19.4 1.7 39.9 2.7 61.2 2.7s41.8-.9 61.2-2.7zM169 90.8c-25.2 5-47.4 11.6-66 19.4-47.1 19.9-55 39.9-55 49.8s8 29.9 55 49.8c21.3 9 47.4 16.3 77.2 21.5l9.8-11c11.6-13.1 18.1-30 18.1-47.5 0-13.6-3.9-26.9-11.2-38.4L169 90.8zm56.3-8c-.9 4.3-1.4 8.7-1.4 13.2 0 35.3 28.7 64 64 64s64-28.7 64-64c0-4.5-.5-9-1.4-13.2-19.8-1.8-40.8-2.8-62.6-2.8s-42.8 1-62.6 2.8z\"]\n};\nvar faThumbsUp = {\n  prefix: 'fas',\n  iconName: 'thumbs-up',\n  icon: [512, 512, [128077, 61575], \"f164\", \"M80 160c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32L0 192c0-17.7 14.3-32 32-32l48 0zM270.6 16C297.9 16 320 38.1 320 65.4l0 4.2c0 6.8-1.3 13.6-3.8 19.9L288 160 448 160c26.5 0 48 21.5 48 48 0 19.7-11.9 36.6-28.9 44 17 7.4 28.9 24.3 28.9 44 0 23.4-16.8 42.9-39 47.1 4.4 7.3 7 15.8 7 24.9 0 22.2-15 40.8-35.4 46.3 2.2 5.5 3.4 11.5 3.4 17.7 0 26.5-21.5 48-48 48l-87.9 0c-36.3 0-71.6-12.4-99.9-35.1L184 435.2c-15.2-12.1-24-30.5-24-50l0-186.6c0-14.9 3.5-29.6 10.1-42.9L226.3 43.3C234.7 26.6 251.8 16 270.6 16z\"]\n};\nvar faStamp = {\n  prefix: 'fas',\n  iconName: 'stamp',\n  icon: [512, 512, [], \"f5bf\", \"M312 201.8c0-17.4 9.2-33.2 19.9-47 12.6-16.2 20.1-36.6 20.1-58.8 0-53-43-96-96-96s-96 43-96 96c0 22.1 7.5 42.5 20.1 58.8 10.7 13.8 19.9 29.6 19.9 47 0 29.9-24.3 54.2-54.2 54.2L112 256c-61.9 0-112 50.1-112 112 0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112l-33.8 0c-29.9 0-54.2-24.3-54.2-54.2zM56 464c-13.3 0-24 10.7-24 24s10.7 24 24 24l400 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L56 464z\"]\n};\nvar faMenorah = {\n  prefix: 'fas',\n  iconName: 'menorah',\n  icon: [640, 512, [], \"f676\", \"M20.8 7.4C22.8 2.9 27.1 0 32 0s9.2 2.9 11.2 7.4L61.3 49.7c1.8 4.1 2.7 8.6 2.7 13.1L64 64c0 17.7-14.3 32-32 32S0 81.7 0 64l0-1.2c0-4.5 .9-8.9 2.7-13.1L20.8 7.4zm96 0C118.8 2.9 123.1 0 128 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32S96 81.7 96 64l0-1.2c0-4.5 .9-8.9 2.7-13.1L116.8 7.4zm77.8 42.4L212.8 7.4C214.8 2.9 219.1 0 224 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM308.8 7.4C310.8 2.9 315.1 0 320 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1L308.8 7.4zm77.8 42.4L404.8 7.4C406.8 2.9 411.1 0 416 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM500.8 7.4C502.8 2.9 507.1 0 512 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1L500.8 7.4zm77.8 42.4L596.8 7.4C598.8 2.9 603.1 0 608 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM32 128c17.7 0 32 14.3 32 32l0 128c0 17.7 14.3 32 32 32l192 0 0-160c0-17.7 14.3-32 32-32s32 14.3 32 32l0 160 192 0c17.7 0 32-14.3 32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32l0 128c0 53-43 96-96 96l-192 0 0 64 128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-320 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l128 0 0-64-192 0c-53 0-96-43-96-96L0 160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 128-64 0 0-128c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 128-64 0 0-128c0-17.7 14.3-32 32-32zm192 0c17.7 0 32 14.3 32 32l0 128-64 0 0-128c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 128-64 0 0-128c0-17.7 14.3-32 32-32z\"]\n};\nvar faChildren = {\n  prefix: 'fas',\n  iconName: 'children',\n  icon: [640, 512, [], \"e4e1\", \"M160.5 0a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm-72 480l0-80-17.8 0c-10.9 0-18.6-10.7-15.2-21.1L86.7 285.5 58 323.3c-10.7 14.1-30.8 16.8-44.8 6.2S-3.7 298.7 7 284.7L65.9 207c22.4-29.6 57.5-47 94.6-47s72.2 17.4 94.6 47L314 284.7c10.7 14.1 7.9 34.2-6.2 44.8s-34.2 7.9-44.8-6.2l-28.7-37.8 31.1 93.4c3.5 10.4-4.3 21.1-15.2 21.1l-17.8 0 0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80-16 0 0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32zM480.5 0a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm-8 384l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-179.5-12.9 20.5c-9.4 15-29.2 19.4-44.1 10s-19.4-29.2-10-44.1l51.7-82.1c17.6-27.9 48.3-44.9 81.2-44.9l12.3 0c33 0 63.7 16.9 81.2 44.9L619.6 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10l-12.9-20.5 0 179.5c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-16 0z\"]\n};\nvar faChartLine = {\n  prefix: 'fas',\n  iconName: 'chart-line',\n  icon: [512, 512, [\"line-chart\"], \"f201\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 400c0 44.2 35.8 80 80 80l400 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 416c-8.8 0-16-7.2-16-16L64 64zm406.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L320 210.7 262.6 153.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l73.4-73.4 57.4 57.4c12.5 12.5 32.8 12.5 45.3 0l128-128z\"]\n};\nvar faLineChart = faChartLine;\nvar faSquareEnvelope = {\n  prefix: 'fas',\n  iconName: 'square-envelope',\n  icon: [448, 512, [\"envelope-square\"], \"f199\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM209.1 267.9L108.4 207.4c-7.7-4.6-12.4-12.9-12.4-21.9 0-14.1 11.4-25.5 25.5-25.5l204.9 0c14.1 0 25.5 11.4 25.5 25.5 0 9-4.7 17.3-12.4 21.9L238.9 267.9c-4.5 2.7-9.6 4.1-14.9 4.1s-10.4-1.4-14.9-4.1zM352 237.3l0 82.7c0 17.7-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32l0-82.7 96.7 58C202.1 301 213 304 224 304s21.9-3 31.3-8.7l96.7-58z\"]\n};\nvar faEnvelopeSquare = faSquareEnvelope;\nvar faBanSmoking = {\n  prefix: 'fas',\n  iconName: 'ban-smoking',\n  icon: [512, 512, [128685, \"smoking-ban\"], \"f54d\", \"M99.5 144.8l79.2 79.2-50.7 0c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l146.7 0 92.5 92.5c-31.4 22.4-69.8 35.5-111.2 35.5-106 0-192-86-192-192 0-41.5 13.1-79.9 35.5-111.2zM333.3 288l-32-32 82.7 0 0 32-50.7 0zm32 32l18.7 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32L269.3 224 144.8 99.5c31.4-22.4 69.8-35.5 111.2-35.5 106 0 192 86 192 192 0 41.5-13.1 79.9-35.5 111.2L365.3 320zM256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM272 96c-8.8 0-16 7.2-16 16 0 26.5 21.5 48 48 48l32 0c8.8 0 16 7.2 16 16s7.2 16 16 16 16-7.2 16-16c0-26.5-21.5-48-48-48l-32 0c-8.8 0-16-7.2-16-16s-7.2-16-16-16z\"]\n};\nvar faSmokingBan = faBanSmoking;\nvar faTruckFront = {\n  prefix: 'fas',\n  iconName: 'truck-front',\n  icon: [448, 512, [], \"e2b7\", \"M0 112C0 67.8 35.8 32 80 32l288 0c44.2 0 80 35.8 80 80l0 256c0 26.2-12.6 49.4-32 64l0 48c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32-192 0 0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-48C12.6 417.4 0 394.2 0 368L0 112zm96 80l0 64 256 0 0-64c0-17.7-14.3-32-32-32l-192 0c-17.7 0-32 14.3-32 32zm32 160a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm224 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faBuilding = {\n  prefix: 'fas',\n  iconName: 'building',\n  icon: [384, 512, [127970, 61687], \"f1ad\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM176 352l32 0c17.7 0 32 14.3 32 32l0 80-96 0 0-80c0-17.7 14.3-32 32-32zM96 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM240 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM96 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm144-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z\"]\n};\nvar faBullseye = {\n  prefix: 'fas',\n  iconName: 'bullseye',\n  icon: [512, 512, [], \"f140\", \"M448 256a192 192 0 1 0 -384 0 192 192 0 1 0 384 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm256 80a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zM224 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faArrowLeftLong = {\n  prefix: 'fas',\n  iconName: 'arrow-left-long',\n  icon: [576, 512, [\"long-arrow-left\"], \"f177\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288 544 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-434.7 0 73.4-73.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-128 128z\"]\n};\nvar faLongArrowLeft = faArrowLeftLong;\nvar faChessRook = {\n  prefix: 'fas',\n  iconName: 'chess-rook',\n  icon: [384, 512, [9820], \"f447\", \"M0 32L0 133.5c0 17 6.7 33.3 18.7 45.3L64 224 64 384 7.8 454.3C2.7 460.6 0 468.4 0 476.5 0 496.1 15.9 512 35.5 512l312.9 0c19.6 0 35.5-15.9 35.5-35.5 0-8.1-2.7-15.9-7.8-22.2l-56.2-70.3 0-160 45.3-45.3c12-12 18.7-28.3 18.7-45.3L384 32c0-17.7-14.3-32-32-32L320 0c-17.7 0-32 14.3-32 32l0 32-48 0 0-32c0-17.7-14.3-32-32-32L176 0c-17.7 0-32 14.3-32 32l0 32-48 0 0-32C96 14.3 81.7 0 64 0L32 0C14.3 0 0 14.3 0 32z\"]\n};\nvar faBlenderPhone = {\n  prefix: 'fas',\n  iconName: 'blender-phone',\n  icon: [576, 512, [], \"f6b6\", \"M151.4 13.2c10.2 5.8 14.5 18.4 10 29.3L138.2 98.8c-3.9 9.6-13.7 15.4-24 14.4l-20.2-2C78.7 152.9 78 198.9 91.9 241.1l22.4-2.2c10.3-1 20 4.8 24 14.4l23.2 56.3c4.5 10.9 .2 23.4-10 29.3l-2.9 1.6c-33.6 19.2-81.7 16.2-106.2-21.6-56.3-86.6-56.3-199.1 0-285.7 24.6-37.7 72.7-40.7 106.2-21.6l2.9 1.6zM224 336L193.7 17.5C192.8 8.1 200.2 0 209.6 0l324 0c21.3 0 36.6 20.3 30.8 40.8L553.1 80 440 80c-13.3 0-24 10.7-24 24s10.7 24 24 24l99.4 0-18.3 64-81.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l67.4 0-27.4 96-256 0zm8 48l240 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-240 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zm120 88a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faArrowTurnUp = {\n  prefix: 'fas',\n  iconName: 'arrow-turn-up',\n  icon: [384, 512, [\"level-up\"], \"f148\", \"M32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c53 0 96-43 96-96l0-306.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3 160 416c0 17.7-14.3 32-32 32l-96 0z\"]\n};\nvar faLevelUp = faArrowTurnUp;\nvar faBicycle = {\n  prefix: 'fas',\n  iconName: 'bicycle',\n  icon: [640, 512, [128690], \"f206\", \"M331.7 43.3C336 36.3 343.7 32 352 32l104 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-65.6 0 72.2 148.4c10.7-2.9 21.9-4.4 33.4-4.4 70.7 0 128 57.3 128 128s-57.3 128-128 128-128-57.3-128-128c0-42 20.2-79.2 51.4-102.6l-20.4-41.9-73.5 147c-2.3 4.8-6.3 8.8-11.4 11.2-.6 .3-1.2 .5-1.8 .7-2.9 1.1-5.9 1.6-8.9 1.5L271 368c-7.9 63.1-61.7 112-127 112-70.7 0-128-57.3-128-128S73.3 224 144 224c10.8 0 21.2 1.3 31.2 3.8l28.5-56.9-11.5-26.9-40.2 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l56 0c9.6 0 18.3 5.7 22.1 14.5l14.3 33.5 123.7 0-37.7-77.5c-3.6-7.4-3.2-16.2 1.2-23.2zM228.5 228.7l-45.6 91.3 84.8 0-39.1-91.3zM305.7 287l47.5-95-88.2 0 40.7 95zm168.7 75.5l-29.7-61c-12.8 13-20.7 30.8-20.7 50.5 0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72c-2.7 0-5.5 .2-8.1 .5l29.7 61c5.8 11.9 .8 26.3-11.1 32.1s-26.3 .8-32.1-11.1zM149.2 368c-20.2 0-33.4-21.3-24.3-39.4l24.2-48.5c-1.7-.1-3.4-.2-5.1-.2-39.8 0-72 32.2-72 72s32.2 72 72 72c34.3 0 62.9-23.9 70.2-56l-65 0z\"]\n};\nvar faCircleArrowDown = {\n  prefix: 'fas',\n  iconName: 'circle-arrow-down',\n  icon: [512, 512, [\"arrow-circle-down\"], \"f0ab\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM239 377l-80-80c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l39 39 0-150.1c0-13.3 10.7-24 24-24s24 10.7 24 24l0 150.1 39-39c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0z\"]\n};\nvar faArrowCircleDown = faCircleArrowDown;\nvar faGear = {\n  prefix: 'fas',\n  iconName: 'gear',\n  icon: [512, 512, [9881, \"cog\"], \"f013\", \"M195.1 9.5C198.1-5.3 211.2-16 226.4-16l59.8 0c15.2 0 28.3 10.7 31.3 25.5L332 79.5c14.1 6 27.3 13.7 39.3 22.8l67.8-22.5c14.4-4.8 30.2 1.2 37.8 14.4l29.9 51.8c7.6 13.2 4.9 29.8-6.5 39.9L447 233.3c.9 7.4 1.3 15 1.3 22.7s-.5 15.3-1.3 22.7l53.4 47.5c11.4 10.1 14 26.8 6.5 39.9l-29.9 51.8c-7.6 13.1-23.4 19.2-37.8 14.4l-67.8-22.5c-12.1 9.1-25.3 16.7-39.3 22.8l-14.4 69.9c-3.1 14.9-16.2 25.5-31.3 25.5l-59.8 0c-15.2 0-28.3-10.7-31.3-25.5l-14.4-69.9c-14.1-6-27.2-13.7-39.3-22.8L73.5 432.3c-14.4 4.8-30.2-1.2-37.8-14.4L5.8 366.1c-7.6-13.2-4.9-29.8 6.5-39.9l53.4-47.5c-.9-7.4-1.3-15-1.3-22.7s.5-15.3 1.3-22.7L12.3 185.8c-11.4-10.1-14-26.8-6.5-39.9L35.7 94.1c7.6-13.2 23.4-19.2 37.8-14.4l67.8 22.5c12.1-9.1 25.3-16.7 39.3-22.8L195.1 9.5zM256.3 336a80 80 0 1 0 -.6-160 80 80 0 1 0 .6 160z\"]\n};\nvar faCog = faGear;\nvar faMarsAndVenusBurst = {\n  prefix: 'fas',\n  iconName: 'mars-and-venus-burst',\n  icon: [640, 512, [], \"e523\", \"M464-32c0 17.7 14.3 32 32 32l34.7 0-63 63c-28.4-19.5-62.7-31-99.8-31-97.2 0-176 78.8-176 176 0 86.3 62.1 158.1 144 173.1l0 34.9-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-34.9c81.9-15 144-86.8 144-173.1 0-37-11.4-71.4-31-99.8l63-63 0 34.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-112c0-17.7-14.3-32-32-32L496-64c-17.7 0-32 14.3-32 32zM368 96a112 112 0 1 1 0 224 112 112 0 1 1 0-224zM190.9-21.9C188.4-28 182.6-32 176-32s-12.4 4-14.9 10.1l-29.4 74-76.2-23.1c-6.3-1.9-13.1 .2-17.2 5.3S33.8 46.5 37 52.2l39.5 69.1-65.6 45.1c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2-5.6 79.4c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L152.1 268c-5.3-19.1-8.1-39.2-8.1-60 0-65.4 28-124.2 72.6-165.1L190.9-21.9z\"]\n};\nvar faOtter = {\n  prefix: 'fas',\n  iconName: 'otter',\n  icon: [640, 512, [129446], \"f700\", \"M181.5 197.1l12.9 6.4c5.9 3 12.4 4.5 19.1 4.5 23.5 0 42.6-19.1 42.6-42.6l0-21.4c0-35.3-28.7-64-64-64l-64 0c-35.3 0-64 28.7-64 64l0 21.4c0 23.5 19.1 42.6 42.6 42.6 6.6 0 13.1-1.5 19.1-4.5 9.3-4.7 16.4-8.2 21.2-10.6L135.1 185c-4.5-3-7.1-8-7.1-13.3l0-3.7c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24l0 3.7c0 5.3-2.7 10.3-7.1 13.3l-11.8 7.9 8.4 4.2zm-8.6 49.4l-12.9-6.4-12.9 6.4c-12.6 6.3-26.5 9.6-40.5 9.6-3.6 0-7.1-.2-10.6-.6l0 .6c0 35.3 28.7 64 64 64l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l160 0 0-64c0-23.7 12.9-44.4 32-55.4 9.4-5.4 20.3-8.6 32-8.6l0-16c0-26.5 21.5-48 48-48 8.8 0 16 7.2 16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-99.7c0-48.2-30.8-91-76.6-106.3l-8.5-2.8c-8-2.7-12.6-11.1-10.4-19.3s10.3-13.2 18.6-11.6l19.9 4C576 86.1 640 164.2 640 254.9l0 1.1 0 0c0 123.7-100.3 224-224 224l-160.6 0C132 480 32 380 32 256.6l0-39.8c-10.1-14.6-16-32.3-16-51.4l0-21.4 0-1.4C6.7 139.3 0 130.5 0 120 0 106.7 10.7 96 24 96l2.8 0C44.8 58.2 83.3 32 128 32l64 0c44.7 0 83.2 26.2 101.2 64l2.8 0c13.3 0 24 10.7 24 24 0 10.5-6.7 19.3-16 22.6l0 1.4 0 21.4c0 1.4 0 2.8-.1 4.3 12-6.2 25.7-9.6 40.1-9.6l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-13.3 0-24 10.7-24 24l0 8 56.4 0c-15.2 17-24.4 39.4-24.4 64l-32 0c-42.3 0-78.2-27.4-91-65.3-5.1 .9-10.3 1.3-15.6 1.3-14.1 0-27.9-3.3-40.5-9.6zM96 128a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm112 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z\"]\n};\nvar faCircleChevronLeft = {\n  prefix: 'fas',\n  iconName: 'circle-chevron-left',\n  icon: [512, 512, [\"chevron-circle-left\"], \"f137\", \"M512 256a256 256 0 1 0 -512 0 256 256 0 1 0 512 0zM271 135c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-87 87 87 87c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L167 273c-9.4-9.4-9.4-24.6 0-33.9L271 135z\"]\n};\nvar faChevronCircleLeft = faCircleChevronLeft;\nvar faCircleQuestion = {\n  prefix: 'fas',\n  iconName: 'circle-question',\n  icon: [512, 512, [62108, \"question-circle\"], \"f059\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm0-336c-17.7 0-32 14.3-32 32 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 47.2-36 67.2-56 74.5l0 3.8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8.1c0-20.5 14.8-35.2 30.1-40.2 6.4-2.1 13.2-5.5 18.2-10.3 4.3-4.2 7.7-10 7.7-19.6 0-17.7-14.3-32-32-32zM224 368a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faQuestionCircle = faCircleQuestion;\nvar faWalkieTalkie = {\n  prefix: 'fas',\n  iconName: 'walkie-talkie',\n  icon: [384, 512, [], \"f8ef\", \"M88-32c13.3 0 24 10.7 24 24l0 72 48 0c0-17.7 14.3-32 32-32s32 14.3 32 32l32 0c0-17.7 14.3-32 32-32s32 14.3 32 32l16 0c26.5 0 48 21.5 48 48l0 160.9c0 9.9-2.3 19.7-6.8 28.6l-20.2 40.4c-3.3 6.7-5.1 14-5.1 21.5l0 84.7c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-84.7c0-7.5-1.7-14.8-5.1-21.5L6.8 301.5C2.3 292.6 0 282.8 0 272.9L0 112C0 85.5 21.5 64 48 64l16 0 0-72c0-13.3 10.7-24 24-24zm32 176c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nvar faUserGroup = {\n  prefix: 'fas',\n  iconName: 'user-group',\n  icon: [576, 512, [128101, \"user-friends\"], \"f500\", \"M64 128a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zM0 464c0-97.2 78.8-176 176-176s176 78.8 176 176l0 6c0 23.2-18.8 42-42 42L42 512c-23.2 0-42-18.8-42-42l0-6zM432 64a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm0 240c79.5 0 144 64.5 144 144l0 22.4c0 23-18.6 41.6-41.6 41.6l-144.8 0c6.6-12.5 10.4-26.8 10.4-42l0-6c0-51.5-17.4-98.9-46.5-136.7 22.6-14.7 49.6-23.3 78.5-23.3z\"]\n};\nvar faUserFriends = faUserGroup;\nvar faHouseChimney = {\n  prefix: 'fas',\n  iconName: 'house-chimney',\n  icon: [512, 512, [63499, \"home-lg\"], \"e3af\", \"M234.2 8.6c12.3-11.4 31.3-11.4 43.5 0L368 92.3 368 80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 101.5 37.8 35.1c9.6 9 12.8 22.9 8 35.1S493.2 272 480 272l-16 0 0 176c0 35.3-28.7 64-64 64l-288 0c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208zM240 320c-26.5 0-48 21.5-48 48l0 96 128 0 0-96c0-26.5-21.5-48-48-48l-32 0z\"]\n};\nvar faHomeLg = faHouseChimney;\nvar faRightFromBracket = {\n  prefix: 'fas',\n  iconName: 'right-from-bracket',\n  icon: [512, 512, [\"sign-out-alt\"], \"f2f5\", \"M505 273c9.4-9.4 9.4-24.6 0-33.9L361 95c-6.9-6.9-17.2-8.9-26.2-5.2S320 102.3 320 112l0 80-112 0c-26.5 0-48 21.5-48 48l0 32c0 26.5 21.5 48 48 48l112 0 0 80c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2L505 273zM160 96c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 32C43 32 0 75 0 128L0 384c0 53 43 96 96 96l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l64 0z\"]\n};\nvar faSignOutAlt = faRightFromBracket;\nvar faFile = {\n  prefix: 'fas',\n  iconName: 'file',\n  icon: [384, 512, [128196, 128459, 61462], \"f15b\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-277.5c0-17-6.7-33.3-18.7-45.3L258.7 18.7C246.7 6.7 230.5 0 213.5 0L64 0zM325.5 176L232 176c-13.3 0-24-10.7-24-24L208 58.5 325.5 176z\"]\n};\nvar faPlaneSlash = {\n  prefix: 'fas',\n  iconName: 'plane-slash',\n  icon: [576, 512, [], \"e069\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-183.4-183.4 7.1-7.7 127.3 0c30.9 0 56-25.1 56-56s-25.1-56-56-56L392.7 200 233.5 26.4C227.5 19.8 218.9 16 209.9 16l-43.7 0c-10.9 0-18.6 10.7-15.2 21.1L175.1 109.2 41-24.9zM130.2 200l-24.6 0-52.8-66c-3-3.8-7.6-6-12.5-6l-19.8 0c-10.4 0-18 9.8-15.5 19.9L32 256 5 364.1C2.4 374.2 10.1 384 20.5 384l19.8 0c4.9 0 9.5-2.2 12.5-6l52.8-66 99.7 0-54.3 162.9c-3.5 10.4 4.3 21.1 15.2 21.1l43.7 0c9 0 17.5-3.8 23.6-10.4L320.7 390.5 130.2 200z\"]\n};\nvar faCloudShowersHeavy = {\n  prefix: 'fas',\n  iconName: 'cloud-showers-heavy',\n  icon: [512, 512, [], \"f740\", \"M96 320c-53 0-96-43-96-96 0-42.5 27.6-78.6 65.9-91.2-1.3-6.7-1.9-13.7-1.9-20.8 0-61.9 50.1-112 112-112 43.1 0 80.5 24.3 99.2 60 14.7-17.1 36.5-28 60.8-28 44.2 0 80 35.8 80 80 0 5.5-.6 10.8-1.6 16 .5 0 1.1 0 1.6 0 53 0 96 43 96 96s-43 96-96 96L96 320zm6.8 79.6l-32 96C66.6 508.2 53 515 40.4 510.8S21 493 25.2 480.4l32-96C61.4 371.8 75 365 87.6 369.2S107 387 102.8 399.6zm120 0l-32 96c-4.2 12.6-17.8 19.4-30.4 15.2S141 493 145.2 480.4l32-96c4.2-12.6 17.8-19.4 30.4-15.2S227 387 222.8 399.6zm112 0l-32 96c-4.2 12.6-17.8 19.4-30.4 15.2S253 493 257.2 480.4l32-96c4.2-12.6 17.8-19.4 30.4-15.2S339 387 334.8 399.6zm120 0l-32 96c-4.2 12.6-17.8 19.4-30.4 15.2S373 493 377.2 480.4l32-96c4.2-12.6 17.8-19.4 30.4-15.2S459 387 454.8 399.6z\"]\n};\nvar faPersonFalling = {\n  prefix: 'fas',\n  iconName: 'person-falling',\n  icon: [512, 512, [], \"e546\", \"M320 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 5.4c0 45-23.6 86.6-62.1 109.8l-4.6 2.8C131.4 184.7 96 247.1 96 314.6L96 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-69.4c0-16.7 3.3-33 9.4-48L359.2 500.2c11.1 13.7 31.3 15.8 45 4.7s15.8-31.3 4.7-45L295.2 320 400 320 438.4 371.2c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8l-43.2-57.6C437.3 263.1 423.1 256 408 256l-89 0-62.9-75.5c40.3-36 63.9-87.9 63.9-143.1l0-5.4zM104 144a56 56 0 1 0 0-112 56 56 0 1 0 0 112z\"]\n};\nvar faTurnDown = {\n  prefix: 'fas',\n  iconName: 'turn-down',\n  icon: [384, 512, [10549, \"level-down-alt\"], \"f3be\", \"M169.4 502.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9S332.9 320 320 320l-64 0 0-160C256 71.6 184.4 0 96 0L32 0C14.3 0 0 14.3 0 32L0 96c0 17.7 14.3 32 32 32l64 0c17.7 0 32 14.3 32 32l0 160-64 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z\"]\n};\nvar faLevelDownAlt = faTurnDown;\nvar faUpRightAndDownLeftFromCenter = {\n  prefix: 'fas',\n  iconName: 'up-right-and-down-left-from-center',\n  icon: [512, 512, [\"expand-alt\"], \"f424\", \"M344 0L488 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87-39-39c-6.9-6.9-8.9-17.2-5.2-26.2S334.3 0 344 0zM168 512L24 512c-13.3 0-24-10.7-24-24L0 344c0-9.7 5.8-18.5 14.8-22.2S34.1 320.2 41 327l39 39 87-87c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2S177.7 512 168 512z\"]\n};\nvar faExpandAlt = faUpRightAndDownLeftFromCenter;\nvar faUserTag = {\n  prefix: 'fas',\n  iconName: 'user-tag',\n  icon: [640, 512, [], \"f507\", \"M256.1 8a120 120 0 1 1 0 240 120 120 0 1 1 0-240zM226.4 304l59.4 0c6.7 0 13.2 .4 19.7 1.1-.9 4.9-1.4 9.9-1.4 15l0 92.1c0 25.5 10.1 49.9 28.1 67.9l31.9 31.9-286.3 0c-16.4 0-29.7-13.3-29.7-29.7 0-98.5 79.8-178.3 178.3-178.3zM352.1 412.2l0-92.1c0-17.7 14.3-32 32-32l92.1 0c12.7 0 24.9 5.1 33.9 14.1l96 96c18.7 18.7 18.7 49.1 0 67.9l-76.1 76.1c-18.7 18.7-49.1 18.7-67.9 0l-96-96c-9-9-14.1-21.2-14.1-33.9zm104-44.2a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faHandSparkles = {\n  prefix: 'fas',\n  iconName: 'hand-sparkles',\n  icon: [640, 512, [], \"e05d\", \"M320 0c17.7 0 32 14.3 32 32l0 208c0 8.8 7.2 16 16 16s16-7.2 16-16l0-176c0-17.7 14.3-32 32-32s32 14.3 32 32l0 176c0 8.8 7.2 16 16 16s16-7.2 16-16l0-112c0-17.7 14.3-32 32-32s32 14.3 32 32l0 178.2c-19.2 5.4-34.7 20.4-40.4 40.3l-6.5 22.7-22.7 6.5c-25.2 7.2-42.5 30.2-42.5 56.4 0 22.1 12.4 42 31.4 51.9-27.5 17.8-60.2 28.1-95.4 28.1l-19.2 0c-59.6 0-116.9-22.9-160-64L76.4 341c-16-15.2-16.6-40.6-1.4-56.6s40.6-16.6 56.6-1.4l60.5 57.6c0-1.5-.1-3.1-.1-4.6l0-272c0-17.7 14.3-32 32-32s32 14.3 32 32l0 176c0 8.8 7.2 16 16 16s16-7.2 16-16l0-208c0-17.7 14.3-32 32-32zm-7.3 326.6c-1.1-3.9-4.7-6.6-8.7-6.6s-7.6 2.7-8.7 6.6l-7.3 25.4-25.4 7.3c-3.9 1.1-6.6 4.7-6.6 8.7s2.7 7.6 6.6 8.7l25.4 7.3 7.3 25.4c1.1 3.9 4.7 6.6 8.7 6.6s7.6-2.7 8.7-6.6l7.3-25.4 25.4-7.3c3.9-1.1 6.6-4.7 6.6-8.7s-2.7-7.6-6.6-8.7l-25.4-7.3-7.3-25.4zM104 120l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L104 168 90.2 216.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L56 168 7.7 154.2C3.1 152.9 0 148.7 0 144s3.1-8.9 7.7-10.2L56 120 69.8 71.7C71.1 67.1 75.3 64 80 64s8.9 3.1 10.2 7.7L104 120zM584 408l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L584 456 570.2 504.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L536 456 487.7 442.2c-4.6-1.3-7.7-5.5-7.7-10.2s3.1-8.9 7.7-10.2L536 408 549.8 359.7c1.3-4.6 5.5-7.7 10.2-7.7s8.9 3.1 10.2 7.7L584 408z\"]\n};\nvar faArrowsToDot = {\n  prefix: 'fas',\n  iconName: 'arrows-to-dot',\n  icon: [512, 512, [], \"e4be\", \"M256 0c17.7 0 32 14.3 32 32l0 32 32 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-9.2-9.2-11.9-22.9-6.9-34.9S179.1 64 192 64l32 0 0-32c0-17.7 14.3-32 32-32zM169.4 393.4l64-64c12.5-12.5 32.8-12.5 45.3 0l64 64c9.2 9.2 11.9 22.9 6.9 34.9S332.9 448 320 448l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9zM32 224l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c12.5 12.5 12.5 32.8 0 45.3l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9S64 332.9 64 320l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3l64-64c9.2-9.2 22.9-11.9 34.9-6.9S448 179.1 448 192l0 32 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-64-64zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faFaceSadCry = {\n  prefix: 'fas',\n  iconName: 'face-sad-cry',\n  icon: [512, 512, [128557, \"sad-cry\"], \"f5b3\", \"M352 493.4c-29.6 12-62.1 18.6-96 18.6s-66.4-6.6-96-18.6L160 296c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 171.7C44.4 421.6 0 344 0 256 0 114.6 114.6 0 256 0S512 114.6 512 256c0 88-44.4 165.6-112 211.7L400 296c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 197.4zM152 196l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20 9-20 20-20zm172 20c0-11 9-20 20-20l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20zM208 336l0 32c0 26.5 21.5 48 48 48s48-21.5 48-48l0-32c0-26.5-21.5-48-48-48s-48 21.5-48 48z\"]\n};\nvar faSadCry = faFaceSadCry;\nvar faDongSign = {\n  prefix: 'fas',\n  iconName: 'dong-sign',\n  icon: [384, 512, [], \"e169\", \"M288-16c-17.7 0-32 14.3-32 32l0 32-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0 0 72.2c-22.9-15.3-50.4-24.2-80-24.2-79.5 0-144 64.5-144 144S96.5 432 176 432c30 0 57.8-9.1 80.8-24.8 3.3 14.2 16 24.8 31.2 24.8 17.7 0 32-14.3 32-32l0-304 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-32c0-17.7-14.3-32-32-32zM96 288a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zM24 464c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 464z\"]\n};\nvar faPeopleLine = {\n  prefix: 'fas',\n  iconName: 'people-line',\n  icon: [576, 512, [], \"e534\", \"M288 0a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm96 312c0 25-12.7 47-32 59.9l0 44.1-128 0 0-44.1C204.7 359 192 337 192 312l0-40c0-53 43-96 96-96s96 43 96 96l0 40zm16 104l0-27.3c19.9-22.5 32-52.2 32-84.7l0-32c0-26.7-7.3-51.6-19.9-73.1 11.1-4.5 23.2-6.9 35.9-6.9 53 0 96 43 96 96l0 32c0 23.7-12.9 44.4-32 55.4l0 40.6-112 0zM64 375.4C44.9 364.4 32 343.7 32 320l0-32c0-53 43-96 96-96 12.7 0 24.8 2.5 35.9 6.9-12.6 21.4-19.9 46.4-19.9 73.1l0 32c0 32.5 12.1 62.1 32 84.7l0 27.3-112 0 0-40.6zM128 32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zm320 0a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM24 464l528 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faSquareRss = {\n  prefix: 'fas',\n  iconName: 'square-rss',\n  icon: [448, 512, [\"rss-square\"], \"f143\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM96 136c0-13.3 10.7-24 24-24 137 0 248 111 248 248 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-110.5-89.5-200-200-200-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24 83.9 0 152 68.1 152 152 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-57.4-46.6-104-104-104-13.3 0-24-10.7-24-24zm0 120a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faRssSquare = faSquareRss;\nvar faCalendarMinus = {\n  prefix: 'fas',\n  iconName: 'calendar-minus',\n  icon: [448, 512, [], \"f272\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zm24 264c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nvar faChartDiagram = {\n  prefix: 'fas',\n  iconName: 'chart-diagram',\n  icon: [512, 512, [], \"e695\", \"M80 32C53.5 32 32 53.5 32 80s21.5 48 48 48l152 0 0 40-48 48-72 0c-39.8 0-72 32.2-72 72l0 64-8 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-8 0 0-64c0-13.3 10.7-24 24-24l72 0 48 48 0 40-8 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-8 0 0-40 48-48 72 0c13.3 0 24 10.7 24 24l0 64-8 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-8 0 0-64c0-39.8-32.2-72-72-72l-72 0-48-48 0-40 152 0c26.5 0 48-21.5 48-48s-21.5-48-48-48L80 32z\"]\n};\nvar faFaceTired = {\n  prefix: 'fas',\n  iconName: 'face-tired',\n  icon: [512, 512, [128555, \"tired\"], \"f5c8\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM164.7 328.7c22-22 53.9-40.7 91.3-40.7s69.3 18.7 91.3 40.7c11.1 11.1 20.1 23.4 26.4 35.4 6.2 11.7 10.3 24.4 10.3 35.9 0 5.2-2.6 10.2-6.9 13.2s-9.8 3.7-14.7 1.8l-20.5-7.7c-26.9-10.1-55.5-15.3-84.3-15.3l-3.2 0c-28.8 0-57.3 5.2-84.3 15.3L149.6 415c-4.9 1.8-10.4 1.2-14.7-1.8S128 405.2 128 400c0-11.6 4.2-24.2 10.3-35.9 6.3-12 15.3-24.3 26.4-35.4zM122.6 159.2c4.5-6.8 13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 208 125.8 180.3c-6.2-5.2-7.6-14.3-3.1-21.1zm263.6 21.1L353 208 386.2 235.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5s3.1 15.9-3.1 21.1z\"]\n};\nvar faTired = faFaceTired;\nvar faHandPointRight = {\n  prefix: 'fas',\n  iconName: 'hand-point-right',\n  icon: [512, 512, [], \"f0a4\", \"M480 96c17.7 0 32 14.3 32 32s-14.3 32-32 32l-208 0 0-64 208 0zM320 288c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0zm64-64c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l48 0c17.7 0 32 14.3 32 32zM288 384c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0zm-88-96l.6 0c-5.4 9.4-8.6 20.3-8.6 32 0 13.2 4 25.4 10.8 35.6-24.9 8.7-42.8 32.5-42.8 60.4 0 11.7 3.1 22.6 8.6 32l-8.6 0C71.6 448 0 376.4 0 288l0-61.7c0-42.4 16.9-83.1 46.9-113.1l11.6-11.6C82.5 77.5 115.1 64 149 64l27 0c35.3 0 64 28.7 64 64l0 88c0 22.1-17.9 40-40 40s-40-17.9-40-40l0-56c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 56c0 39.8 32.2 72 72 72z\"]\n};\nvar faArrowUp = {\n  prefix: 'fas',\n  iconName: 'arrow-up',\n  icon: [384, 512, [8593], \"f062\", \"M214.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3 160 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-370.7 105.4 105.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z\"]\n};\nvar faCubesStacked = {\n  prefix: 'fas',\n  iconName: 'cubes-stacked',\n  icon: [512, 512, [], \"e4e6\", \"M192 32c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64zm32 352l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm192 0l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zM320 192l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm-182.6-3.9c12.5-12.5 32.8-12.5 45.3 0l45.3 45.3c12.5 12.5 12.5 32.8 0 45.3l-45.3 45.3c-12.5 12.5-32.8 12.5-45.3 0L92.1 278.6c-12.5-12.5-12.5-32.8 0-45.3l45.3-45.3zM32 384l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32z\"]\n};\nvar faChildCombatant = {\n  prefix: 'fas',\n  iconName: 'child-combatant',\n  icon: [576, 512, [\"child-rifle\"], \"e4e0\", \"M176.5 128a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-16 352l0-96 32 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192.2 20.9 33.2c9.4 15 29.2 19.4 44.1 10s19.4-29.2 10-44.1l-39.9-63.3C266.8 184 223.3 160 176.5 160S86.2 184 61.3 223.6L21.4 287c-9.4 15-4.9 34.7 10 44.1s34.7 4.9 44.1-10l20.9-33.2 0 192.2c0 17.7 14.3 32 32 32s32-14.3 32-32zM448.5 0l-32 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l0 100.3c-9.6 5.5-16 15.9-16 27.7l0 32c-17.7 0-32 14.3-32 32l0 144c0 17.7 14.3 32 32 32l16 0 0 96c0 8.8 7.2 16 16 16l59.5 0c10.4 0 18-9.8 15.5-19.9l-23-92.1 44 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-48 0 0-26.7 53.1-17.7c6.5-2.2 10.9-8.3 10.9-15.2l0-84.5c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16l0 56-16 5.3 0-109.3c0-11.8-6.4-22.2-16-27.7l0-116.3c0-8.8-7.2-16-16-16z\"]\n};\nvar faChildRifle = faChildCombatant;\nvar faVestPatches = {\n  prefix: 'fas',\n  iconName: 'vest-patches',\n  icon: [448, 512, [], \"e086\", \"M200 293.9L200 464c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 270.5c0-9.5 2.8-18.7 8.1-26.6l47.9-71.8c5.3-7.9 8.1-17.1 8.1-26.6L64 48C64 21.5 85.5 0 112 0l3.5 0c.3 0 .6 0 1 0 .6 0 1.2 0 1.8 0 18.8 0 34.1 9.7 44.1 18.8 9.3 8.4 28.5 21.2 61.7 21.2s52.4-12.8 61.7-21.2c10-9.1 25.3-18.8 44.1-18.8 .6 0 1.2 0 1.8 0 .3 0 .6 0 1 0L336 0c26.5 0 48 21.5 48 48l0 97.5c0 9.5 2.8 18.7 8.1 26.6l47.9 71.8c5.3 7.9 8.1 17.1 8.1 26.6L448 464c0 26.5-21.5 48-48 48l-104 0c-26.5 0-48-21.5-48-48l0-170.1c0-3.9 .5-7.8 1.4-11.6L303.6 65.4C285.9 77.2 259.8 88 224 88s-61.9-10.8-79.6-22.6l54.2 216.8c1 3.8 1.4 7.7 1.4 11.6zM96 456a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM63.5 255.5c-4.7 4.7-4.7 12.3 0 17L79 288 63.5 303.5c-4.7 4.7-4.7 12.3 0 17s12.3 4.7 17 0L96 305 111.5 320.5c4.7 4.7 12.3 4.7 17 0s4.7-12.3 0-17L113 288 128.5 272.5c4.7-4.7 4.7-12.3 0-17s-12.3-4.7-17 0L96 271 80.5 255.5c-4.7-4.7-12.3-4.7-17 0zM304 280l0 40c0 8.8 7.2 16 16 16l40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-8c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nvar faMartiniGlassEmpty = {\n  prefix: 'fas',\n  iconName: 'martini-glass-empty',\n  icon: [512, 512, [\"glass-martini\"], \"f000\", \"M32 32C19.1 32 7.4 39.8 2.4 51.8S.2 77.5 9.4 86.6l214.6 214.6 0 146.7-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-146.7 214.6-214.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 32 480 32L32 32zM256 242.7L109.3 96 402.7 96 256 242.7z\"]\n};\nvar faGlassMartini = faMartiniGlassEmpty;\nvar faMagnet = {\n  prefix: 'fas',\n  iconName: 'magnet',\n  icon: [448, 512, [129522], \"f076\", \"M0 176L0 288C0 411.7 100.3 512 224 512S448 411.7 448 288l0-112-128 0 0 112c0 53-43 96-96 96s-96-43-96-96l0-112-128 0zm0-48l128 0 0-64c0-17.7-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64l0 64zm320 0l128 0 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 64z\"]\n};\nvar faRoadBarrier = {\n  prefix: 'fas',\n  iconName: 'road-barrier',\n  icon: [640, 512, [], \"e562\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32L64 266.3 149.2 96 64 96 64 64c0-17.7-14.3-32-32-32zM405.2 96l-74.3 0-5.4 10.7-90.6 181.3 74.3 0 5.4-10.7 90.6-181.3zM362.8 288l74.3 0 5.4-10.7 90.6-181.3-74.3 0-5.4 10.7-90.6 181.3zM202.8 96l-5.4 10.7-90.6 181.3 74.3 0 5.4-10.7 90.6-181.3-74.3 0zm288 192l85.2 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 53.7-85.2 170.3z\"]\n};\nvar faCompassDrafting = {\n  prefix: 'fas',\n  iconName: 'compass-drafting',\n  icon: [512, 512, [\"drafting-compass\"], \"f568\", \"M99.3 256.1l69.4-119.9c-5.6-12.2-8.8-25.8-8.8-40.2 0-53 43-96 96-96s96 43 96 96c0 14.3-3.1 27.9-8.8 40.2l44.4 76.7c-23.1 26-53.7 45.1-88.4 53.8L256 191.9 187.9 309.5c21.5 6.8 44.3 10.5 68.1 10.5 70.7 0 133.8-32.7 174.9-84 11.1-13.8 31.2-16 45-5s16 31.2 5 45c-52.7 65.8-133.9 108-224.8 108-35.4 0-69.4-6.4-100.7-18.1L98.7 463.7C94 471.8 87 478.4 78.6 482.6L23.2 510.3c-5 2.5-10.9 2.2-15.6-.7S0 501.5 0 496l0-55.4c0-8.4 2.2-16.7 6.5-24.1l60-103.7c-12.8-11.2-24.6-23.5-35.3-36.8-11.1-13.8-8.8-33.9 5-45s33.9-8.8 45 5c5.7 7.1 11.8 13.8 18.2 20.1zM381.1 407.9c32.5-13 62.4-31 88.9-52.9l35.6 61.5c4.2 7.3 6.5 15.6 6.5 24.1l0 55.4c0 5.5-2.9 10.7-7.6 13.6s-10.6 3.2-15.6 .7l-55.4-27.7c-8.4-4.2-15.4-10.8-20.1-18.9l-32.3-55.8zM256 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faDraftingCompass = faCompassDrafting;\nvar faSquarePersonConfined = {\n  prefix: 'fas',\n  iconName: 'square-person-confined',\n  icon: [448, 512, [], \"e577\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm96 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm80 104c0-30.9 25.1-56 56-56s56 25.1 56 56l0 102.1c0 36.4-29.5 65.9-65.9 65.9-17.5 0-34.3-6.9-46.6-19.3l-54.7-54.7-28.1 56.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l48-96c4.6-9.2 13.3-15.6 23.5-17.3s20.5 1.7 27.8 9l41.4 41.4 0-58.7z\"]\n};\nvar faPlateWheat = {\n  prefix: 'fas',\n  iconName: 'plate-wheat',\n  icon: [512, 512, [], \"e55a\", \"M176 32c44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80l0-16c0-8.8 7.2-16 16-16zM56 64l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24S42.7 64 56 64zM24 136l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 96c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zM272 48c0-8.8 7.2-16 16-16 44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80l0-16zM400 32c44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80l0-16c0-8.8 7.2-16 16-16zm80 160l0 16c0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80 8.8 0 16 7.2 16 16zM352 176c8.8 0 16 7.2 16 16l0 16c0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80zm-96 16l0 16c0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80 8.8 0 16 7.2 16 16zM3.5 347.6C1.6 332.9 13 320 27.8 320l456.4 0c14.8 0 26.2 12.9 24.4 27.6-6.3 50.2-44.4 89.4-92.6 98.4l0 2c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-2c-48.2-9-86.3-48.2-92.5-98.4z\"]\n};\nvar faSignHanging = {\n  prefix: 'fas',\n  iconName: 'sign-hanging',\n  icon: [512, 512, [\"sign\"], \"f4d9\", \"M96 0c17.7 0 32 14.3 32 32l0 32 352 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-352 0 0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-352-32 0C14.3 128 0 113.7 0 96S14.3 64 32 64l32 0 0-32C64 14.3 78.3 0 96 0zM208 176l240 0c17.7 0 32 14.3 32 32l0 144c0 17.7-14.3 32-32 32l-240 0c-17.7 0-32-14.3-32-32l0-144c0-17.7 14.3-32 32-32z\"]\n};\nvar faSign = faSignHanging;\nvar faCarBattery = {\n  prefix: 'fas',\n  iconName: 'car-battery',\n  icon: [512, 512, [\"battery-car\"], \"f5df\", \"M80 64c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l96 0c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l16 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l16 0zM392 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 32-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-32zM64 240c0 13.3 10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 216c-13.3 0-24 10.7-24 24z\"]\n};\nvar faBatteryCar = faCarBattery;\nvar faShirt = {\n  prefix: 'fas',\n  iconName: 'shirt',\n  icon: [640, 512, [128085, \"t-shirt\", \"tshirt\"], \"f553\", \"M320.2 112c44.2 0 80-35.8 80-80l53.5 0c17 0 33.3 6.7 45.3 18.7L617.6 169.4c12.5 12.5 12.5 32.8 0 45.3l-50.7 50.7c-12.5 12.5-32.8 12.5-45.3 0l-41.4-41.4 0 224c0 35.3-28.7 64-64 64l-192 0c-35.3 0-64-28.7-64-64l0-224-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0L22.9 214.6c-12.5-12.5-12.5-32.8 0-45.3L141.5 50.7c12-12 28.3-18.7 45.3-18.7l53.5 0c0 44.2 35.8 80 80 80z\"]\n};\nvar faTShirt = faShirt;\nvar faTshirt = faShirt;\nvar faParagraph = {\n  prefix: 'fas',\n  iconName: 'paragraph',\n  icon: [448, 512, [182], \"f1dd\", \"M160 0L416 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 416c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-416-48 0 0 416c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160-48 0C71.6 320 0 248.4 0 160S71.6 0 160 0z\"]\n};\nvar faEnvelopesBulk = {\n  prefix: 'fas',\n  iconName: 'envelopes-bulk',\n  icon: [576, 512, [\"mail-bulk\"], \"f674\", \"M112 0C85.5 0 64 21.5 64 48l0 160 80 0 0-32c0-53 43-96 96-96l208 0 0-32c0-26.5-21.5-48-48-48L112 0zM240 128c-26.5 0-48 21.5-48 48l0 32 80 0c53 0 96 43 96 96l0 112 160 0c26.5 0 48-21.5 48-48l0-192c0-26.5-21.5-48-48-48l-288 0zm200 64l48 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24zM48 256c-26.5 0-48 21.5-48 48l0 10.4 156.6 86.2c1.1 .6 2.2 .9 3.4 .9s2.4-.3 3.4-.9L320 314.4 320 304c0-26.5-21.5-48-48-48L48 256zM320 369.2L186.6 442.6c-8.1 4.5-17.3 6.8-26.6 6.8s-18.4-2.4-26.6-6.8L0 369.2 0 464c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-94.8z\"]\n};\nvar faMailBulk = faEnvelopesBulk;\nvar faGuitar = {\n  prefix: 'fas',\n  iconName: 'guitar',\n  icon: [512, 512, [], \"f7a6\", \"M465 7c-9.4-9.4-24.6-9.4-33.9 0L383 55c-2.4 2.4-4.3 5.3-5.5 8.5l-15.4 41-77.5 77.6c-45.1-29.4-99.3-30.2-131 1.6-11 11-18 24.6-21.4 39.6-3.7 16.6-19.1 30.7-36.1 31.6-25.6 1.3-49.3 10.7-67.3 28.6-44.8 44.8-36.4 125.8 18.7 180.9S183.6 528 228.4 483.2c17.9-17.9 27.4-41.7 28.6-67.3 .9-17 15-32.3 31.6-36.1 15-3.4 28.6-10.5 39.6-21.4 31.8-31.8 31-85.9 1.6-131l77.6-77.6 41-15.4c3.2-1.2 6.1-3.1 8.5-5.5l48-48c9.4-9.4 9.4-24.6 0-33.9L465 7zM208 256a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"]\n};\nvar faSuitcase = {\n  prefix: 'fas',\n  iconName: 'suitcase',\n  icon: [512, 512, [129523], \"f0f2\", \"M200 48l112 0c4.4 0 8 3.6 8 8l0 40-128 0 0-40c0-4.4 3.6-8 8-8zm-56 8l0 424 224 0 0-424c0-30.9-25.1-56-56-56L200 0c-30.9 0-56 25.1-56 56zM416 96l0 384 32 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-32 0zM96 480l0-384-32 0C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l32 0z\"]\n};\nvar faCircleUp = {\n  prefix: 'fas',\n  iconName: 'circle-up',\n  icon: [512, 512, [61467, \"arrow-alt-circle-up\"], \"f35b\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm11.3-387.3l104 104c4.6 4.6 5.9 11.5 3.5 17.4S366.5 256 360 256l-56 0 0 96c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-96-56 0c-6.5 0-12.3-3.9-14.8-9.9s-1.1-12.9 3.5-17.4l104-104c6.2-6.2 16.4-6.2 22.6 0z\"]\n};\nvar faArrowAltCircleUp = faCircleUp;\nvar faF = {\n  prefix: 'fas',\n  iconName: 'f',\n  icon: [320, 512, [102], \"46\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-128 224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32z\"]\n};\nvar faXmarksLines = {\n  prefix: 'fas',\n  iconName: 'xmarks-lines',\n  icon: [640, 512, [], \"e59a\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416zM7 167c-9.4 9.4-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55c-9.4-9.4-24.6-9.4-33.9 0zM265 167c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55zM455 167c-9.4 9.4-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55c-9.4-9.4-24.6-9.4-33.9 0z\"]\n};\nvar faEarthOceania = {\n  prefix: 'fas',\n  iconName: 'earth-oceania',\n  icon: [512, 512, [\"globe-oceania\"], \"e47b\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM192 150.6c0-12.5 10.1-22.6 22.6-22.6l41.4 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-18.7 0c-8.5 0-16.6-3.4-22.6-9.4l-16-16c-4.2-4.2-6.6-10-6.6-16zM432 256c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM411.3 379.3l-32 32c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l32-32c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6zM224 432c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zm-96-80c-17.7 0-32-14.3-32-32l0-18.7c0-8.5 3.4-16.6 9.4-22.6l48-48c4.2-4.2 10-6.6 16-6.6l6.6 0c8.8 0 16 7.2 16 16s7.2 16 16 16 16-7.2 16-16 7.2-16 16-16l6.6 0c6 0 11.8 2.4 16 6.6l48 48c6 6 9.4 14.1 9.4 22.6l0 50.7c0 17.7-14.3 32-32 32l-50.7 0c-8.5 0-16.6-3.4-22.6-9.4l-13.3-13.3c-6-6-14.1-9.4-22.6-9.4L128 352z\"]\n};\nvar faGlobeOceania = faEarthOceania;\nvar faCommentSlash = {\n  prefix: 'fas',\n  iconName: 'comment-slash',\n  icon: [576, 512, [], \"f4b3\", \"M41-25C31.6-34.3 16.4-34.3 7-25S-2.3-.4 7 9L535 537c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-96.6-96.6c44.4-43.2 71.6-101.8 71.6-166.5 0-132.5-114.6-240-256-240-63 0-120.8 21.4-165.4 56.8L41-25zm19.4 155C42.2 163 32 200.3 32 239.9 32 294.2 51.2 344.2 83.6 384.4L34.8 476.7c-4.8 9-3.3 20 3.6 27.5S56.1 514 65.5 510l118.4-50.7c31.8 13.3 67.1 20.7 104.1 20.7 36.4 0 70.9-7.1 102.3-19.9L60.3 130.1z\"]\n};\nvar faPlay = {\n  prefix: 'fas',\n  iconName: 'play',\n  icon: [448, 512, [9654], \"f04b\", \"M91.2 36.9c-12.4-6.8-27.4-6.5-39.6 .7S32 57.9 32 72l0 368c0 14.1 7.5 27.2 19.6 34.4s27.2 7.5 39.6 .7l336-184c12.8-7 20.8-20.5 20.8-35.1s-8-28.1-20.8-35.1l-336-184z\"]\n};\nvar faVialCircleCheck = {\n  prefix: 'fas',\n  iconName: 'vial-circle-check',\n  icon: [512, 512, [], \"e596\", \"M32 32C32 14.3 46.3 0 64 0L288 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 161.4c-66.1 30.3-112 97.1-112 174.6 0 39.7 12 76.6 32.7 107.2-10.3 3.1-21.3 4.8-32.7 4.8-61.9 0-112-50.1-112-112L64 64C46.3 64 32 49.7 32 32zm96 32l0 128 96 0 0-128-96 0zm96 336a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm201.4-60.9c-7.1-5.2-17.2-3.6-22.4 3.5l-53 72.9-26.8-26.8c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.6s8.9-2.8 11.7-6.5l64-88c5.2-7.1 3.6-17.2-3.5-22.3z\"]\n};\nvar faBridgeCircleCheck = {\n  prefix: 'fas',\n  iconName: 'bridge-circle-check',\n  icon: [576, 512, [], \"e4c9\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l8 0 0 64-40 0 0 112c37.6 9.4 64 43.2 64 82l0 94c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96 6.4 0 12.7 .6 18.7 1.8 34.7-49.5 92.2-81.8 157.3-81.8 28.6 0 55.6 6.2 80 17.4l0-65.4-40 0 0-64 8 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM424 96l0 64-80 0 0-64 80 0zM296 96l0 64-80 0 0-64 80 0zM88 96l80 0 0 64-80 0 0-64zM576 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"]\n};\nvar faCediSign = {\n  prefix: 'fas',\n  iconName: 'cedi-sign',\n  icon: [384, 512, [], \"e0df\", \"M232 32c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 26.5C88.8 73.9 16 156.4 16 256S88.8 438.1 184 453.5l0 26.5c0 13.3 10.7 24 24 24s24-10.7 24-24l0-24.6c46.8-3.7 89.1-23.6 121.3-53.9 12.9-12.1 13.4-32.4 1.3-45.2s-32.4-13.4-45.2-1.3c-20.7 19.6-47.6 32.7-77.3 36.2l0-270.1c29.8 3.5 56.6 16.6 77.3 36.2 12.9 12.1 33.1 11.5 45.2-1.3s11.5-33.1-1.3-45.2C321.1 80.2 278.8 60.3 232 56.6L232 32zm-48 91.8l0 264.4C124.3 373.8 80 320.1 80 256s44.3-117.8 104-132.2z\"]\n};\nvar faPuzzlePiece = {\n  prefix: 'fas',\n  iconName: 'puzzle-piece',\n  icon: [512, 512, [129513], \"f12e\", \"M224 0c35.3 0 64 21.5 64 48 0 10.4-4.4 20-12 27.9-6.6 6.9-12 15.3-12 24.9 0 15 12.2 27.2 27.2 27.2l44.8 0c26.5 0 48 21.5 48 48l0 44.8c0 15 12.2 27.2 27.2 27.2 9.5 0 18-5.4 24.9-12 7.9-7.5 17.5-12 27.9-12 26.5 0 48 28.7 48 64s-21.5 64-48 64c-10.4 0-20.1-4.4-27.9-12-6.9-6.6-15.3-12-24.9-12-15 0-27.2 12.2-27.2 27.2L384 464c0 26.5-21.5 48-48 48l-56.8 0c-12.8 0-23.2-10.4-23.2-23.2 0-9.2 5.8-17.3 13.2-22.8 11.6-8.7 18.8-20.7 18.8-34 0-26.5-28.7-48-64-48s-64 21.5-64 48c0 13.3 7.2 25.3 18.8 34 7.4 5.5 13.2 13.5 13.2 22.8 0 12.8-10.4 23.2-23.2 23.2L48 512c-26.5 0-48-21.5-48-48L0 343.2c0-12.8 10.4-23.2 23.2-23.2 9.2 0 17.3 5.8 22.8 13.2 8.7 11.6 20.7 18.8 34 18.8 26.5 0 48-28.7 48-64s-21.5-64-48-64c-13.3 0-25.3 7.2-34 18.8-5.5 7.4-13.5 13.2-22.8 13.2-12.8 0-23.2-10.4-23.2-23.2L0 176c0-26.5 21.5-48 48-48l108.8 0c15 0 27.2-12.2 27.2-27.2 0-9.5-5.4-18-12-24.9-7.5-7.9-12-17.5-12-27.9 0-26.5 28.7-48 64-48z\"]\n};\nvar faHelmetUn = {\n  prefix: 'fas',\n  iconName: 'helmet-un',\n  icon: [512, 512, [], \"e503\", \"M479.5 224C471.2 98.9 367.2 0 240 0 107.5 0 0 107.5 0 240l0 56.3C0 344.8 39.2 384 87.7 384l127.3 0 128.6 121.4c4.5 4.2 10.4 6.6 16.5 6.6l96 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-86.5 0-1.5-1.5 0-174.5 112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-.5 0zM320 417.2l-78-73.7 32.4-55.5 45.6 0 0 129.2zM285.3 103.1l34.7 52 0-43.2c0-8.8 7.2-16 16-16s16 7.2 16 16l0 96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52 0 43.2c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM160 112l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16z\"]\n};\nvar faGlassWater = {\n  prefix: 'fas',\n  iconName: 'glass-water',\n  icon: [384, 512, [], \"e4f4\", \"M32 0C23.1 0 14.6 3.7 8.6 10.2S-.6 25.4 .1 34.3L28.9 437.7c3 41.9 37.8 74.3 79.8 74.3l166.6 0c42 0 76.8-32.4 79.8-74.3L383.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S360.9 0 352 0L32 0zM73 156.5l-6.6-92.5 251.3 0-6.6 92.5-24.2 12.1c-19.4 9.7-42.2 9.7-61.6 0-20.9-10.4-45.5-10.4-66.4 0-19.4 9.7-42.2 9.7-61.6 0L73 156.5z\"]\n};\nvar faHeartCircleBolt = {\n  prefix: 'fas',\n  iconName: 'heart-circle-bolt',\n  icon: [576, 512, [], \"e4fc\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM288 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm177.4-77c-5.8-4.2-13.8-4-19.4 .5l-80 64c-5.3 4.2-7.4 11.4-5.1 17.8S369.2 416 376 416l32.9 0-15.9 42.4c-2.5 6.7-.2 14.3 5.6 18.6s13.8 4 19.4-.5l80-64c5.3-4.2 7.4-11.4 5.1-17.8S494.8 384 488 384l-32.9 0 15.9-42.4c2.5-6.7 .2-14.3-5.6-18.6z\"]\n};\nvar faPumpSoap = {\n  prefix: 'fas',\n  iconName: 'pump-soap',\n  icon: [320, 512, [], \"e06b\", \"M96 0l0 80 128 0 0-24 72 0c13.3 0 24-10.7 24-24S309.3 8 296 8l-72 0 0-8c0-17.7-14.3-32-32-32l-64 0C110.3-32 96-17.7 96 0zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 128zM224 344c0 35.3-28.7 56-64 56s-64-20.7-64-56c0-32.5 37-80.9 50.9-97.9 3.2-3.9 8.1-6.1 13.1-6.1s9.9 2.2 13.1 6.1C187 263.1 224 311.5 224 344z\"]\n};\nvar faHandScissors = {\n  prefix: 'fas',\n  iconName: 'hand-scissors',\n  icon: [512, 512, [], \"f257\", \"M40 208c-22.1 0-40 17.9-40 40s17.9 40 40 40l180.2 0c-7.6 8.5-12.2 19.7-12.2 32 0 25.3 19.5 46 44.3 47.9-7.7 8.5-12.3 19.8-12.3 32.1 0 26.5 21.5 48 48 48l96 0c70.7 0 128-57.3 128-128l0-113.1c0-40.2-16-78.8-44.4-107.3-22.8-22.8-53.6-35.6-85.8-35.6L336 64c-21.3 0-39.3 13.9-45.6 33.1l74.5 23.7c8.4 2.7 13.1 11.7 10.4 20.1s-11.7 13.1-20.1 10.4l-67.1-21.4 0 .1-204-64.1C62.9 59.2 40.5 70.9 33.9 92s5.1 43.5 26.2 50.2L269.5 208 40 208z\"]\n};\nvar faDolly = {\n  prefix: 'fas',\n  iconName: 'dolly',\n  icon: [576, 512, [\"dolly-box\"], \"f472\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l72.9 0 92.1 276.2c-22.5 17.6-37 45-37 75.8 0 53 43 96 96 96 52.4 0 95.1-42 96-94.3l202.1-67.4c16.8-5.6 25.8-23.7 20.2-40.5s-23.7-25.8-40.5-20.2L331.8 357c-17.2-22.1-43.9-36.5-74-37L165.7 43.8C156.9 17.6 132.5 0 104.9 0L32 0zM208 416a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM280.5 89.3c-25.2 8.2-39 35.3-30.8 60.5l39.6 121.7c8.2 25.2 35.3 39 60.5 30.8l121.7-39.6c25.2-8.2 39-35.3 30.8-60.5L462.8 80.5c-8.2-25.2-35.3-39-60.5-30.8L280.5 89.3z\"]\n};\nvar faDollyBox = faDolly;\nvar faPaperclip = {\n  prefix: 'fas',\n  iconName: 'paperclip',\n  icon: [512, 512, [128206], \"f0c6\", \"M224.6 12.8c56.2-56.2 147.4-56.2 203.6 0s56.2 147.4 0 203.6l-164 164c-34.4 34.4-90.1 34.4-124.5 0s-34.4-90.1 0-124.5L292.5 103.3c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L185 301.3c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l164-164c31.2-31.2 31.2-81.9 0-113.1s-81.9-31.2-113.1 0l-164 164c-53.1 53.1-53.1 139.2 0 192.3s139.2 53.1 192.3 0L428.3 284.3c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L343.4 459.6c-78.1 78.1-204.7 78.1-282.8 0s-78.1-204.7 0-282.8l164-164z\"]\n};\nvar faDemocrat = {\n  prefix: 'fas',\n  iconName: 'democrat',\n  icon: [640, 512, [], \"f747\", \"M64 32c0-8.9 3.8-20.9 6.2-27.3 1-2.8 3.8-4.7 6.8-4.7 1.9 0 3.8 .7 5.2 2.1L128 45.7 173.8 2.1c1.4-1.3 3.2-2.1 5.2-2.1 3 0 5.8 1.8 6.8 4.7 2.4 6.5 6.2 18.4 6.2 27.3 0 26.5-21.9 42-29.5 46.6l76.2 72.6c6 5.7 13.9 8.8 22.1 8.8l219.2 0 32 0c40.3 0 78.2 19 102.4 51.2l19.2 25.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4l-19.2-25.6c-5.3-7-11.8-12.8-19.2-17l0 87.4-352 0-40.4-94.3c-3.9-9.2-15.3-12.6-23.6-7l-42.1 28c-9.1 6.1-19.7 9.3-30.7 9.3l-2 0C23.9 256 0 232.1 0 202.7 0 190.6 4.1 178.9 11.7 169.4L87.6 74.6C78.1 67.4 64 53.2 64 32zM544 352l0 128c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64-160 0 0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-128 352 0zM256 280a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm248-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM368 280a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faSquareArrowUpRight = {\n  prefix: 'fas',\n  iconName: 'square-arrow-up-right',\n  icon: [448, 512, [\"external-link-square\"], \"f14c\", \"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM272 296c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24l-112 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l54.1 0-103 103c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l103-103 0 54.1z\"]\n};\nvar faExternalLinkSquare = faSquareArrowUpRight;\nvar faFerry = {\n  prefix: 'fas',\n  iconName: 'ferry',\n  icon: [640, 512, [], \"e4ea\", \"M224 32c0-17.7 14.3-32 32-32L384 0c17.7 0 32 14.3 32 32l0 32 48 0c44.2 0 80 35.8 80 80l0 128-.1 0c.1 .7 .1 1.3 .1 2 0 30.2-7.6 59.8-22 86.3l-12.7 23.3-.6 1c-22.3-11.3-46.5-16.8-70.8-16.7-32.5 .2-64.9 10.7-92.4 31.4-22.1 16.6-29.1 16.6-51.2 0-28.1-21.1-61.3-31.6-94.4-31.4-23.6 .2-47.1 5.7-68.7 16.7l-.6-1-12.7-23.3c-14.4-26.5-22-56.2-22-86.3 0-.7 0-1.4 .1-2l-.1 0 0-128c0-44.2 35.8-80 80-80l48 0 0-32zM160 256l320 0 0-112c0-8.8-7.2-16-16-16l-288 0c-8.8 0-16 7.2-16 16l0 112zM403.4 476.1C379.1 494.3 351.1 512 320 512s-59.1-17.7-83.4-35.9c-21.3-16.1-49.9-16.1-71.2 0-23.8 17.9-54.1 35.5-88.1 35.3-20.4-.1-40.7-6.7-59.8-21.1-10.6-8-12.7-23-4.7-33.6s23-12.7 33.6-4.7c11.3 8.5 21.6 11.4 31.2 11.5 17.6 .1 37.3-9.4 58.9-25.7 38.4-29 90.5-29 129 0 24 18.1 40.7 26.3 54.5 26.3s30.5-8.2 54.5-26.3c38.4-29 90.5-29 129 0 16.9 12.7 32.9 21.5 47.8 24.6 13.7 2.8 27.4 .9 42.3-10.3 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-26.4 19.9-54.2 24.4-80.7 19.1-25.3-5.1-48.1-18.9-67.2-33.3-21.3-16.1-49.9-16.1-71.2 0z\"]\n};\nvar faMosquito = {\n  prefix: 'fas',\n  iconName: 'mosquito',\n  icon: [576, 512, [], \"e52b\", \"M178.5 495.2c-7.5 9.6-21 12.1-31.3 5.3S133.5 480 138.9 469l1.2-2.2 36.2-58 0-41 .3-4c.6-3.9 2.2-7.7 4.6-10.9l39.3-52.2-66.2 59.5c-17 15.3-39 23.7-61.9 23.8l-8.1 0c-46.6 0-84.4-37.8-84.4-84.4 0-43 32.4-79.2 75.1-83.9l130.5-14.5-44.8-38.3-2.4-2.4c-5.3-6-7.3-14.4-5.3-22.3l13.3-53.4-25.9-38.9-1.3-2.1c-5.8-10.8-2.7-24.6 7.4-31.7 10.1-7.1 23.7-5.1 31.4 4.3l1.5 2 32 48 1.4 2.2c2.8 5.3 3.5 11.6 2.1 17.6l-12.3 49.2 53.3 45.7 0-28.8c0-11.8 6.5-22.1 16-27.7l0-60.5 .3-3.3c1.5-7.3 8-12.7 15.7-12.7s14.2 5.5 15.7 12.7l.3 3.2 0 60.5c9.6 5.5 16 15.8 16 27.7l0 28.9 53.4-45.8-12.3-49.2c-1.5-5.9-.7-12.2 2.1-17.6l1.4-2.2 32-48 1.5-2c7.7-9.4 21.3-11.5 31.4-4.3 10.1 7.1 13.1 20.9 7.4 31.7l-1.3 2.1-25.9 38.9 13.3 53.4c2 8-.1 16.3-5.3 22.3l-2.4 2.4-44.7 38.3 130.5 14.5c42.8 4.8 75.1 40.9 75.1 83.9 0 46.6-37.8 84.4-84.4 84.4l-8.1 0c-22.8 0-44.9-8.5-61.9-23.8l-66.1-59.5 39.2 52.2c2.4 3.2 4 7 4.6 10.9l.3 4 0 41 36.2 58 1.2 2.1c5.4 11 2 24.7-8.3 31.5s-23.8 4.4-31.3-5.3l-1.4-2-40-64-1.6-3.1c-1.4-3.1-2.1-6.6-2.1-10.1l0-39.8-32.4-43.1 0 74.7c0 17.7-14.3 32-32 32-17.7 0-32-14.3-32-32l0-74.6-32.3 43 0 39.8c0 3.5-.7 6.9-2.1 10.1l-1.6 3.1-40 64-1.4 2z\"]\n};\nvar faBuildingCircleArrowRight = {\n  prefix: 'fas',\n  iconName: 'building-circle-arrow-right',\n  icon: [576, 512, [], \"e4d1\", \"M32 64C32 28.7 60.7 0 96 0L352 0c35.3 0 64 28.7 64 64l0 144.7c-35.7 2.9-68.5 15.6-96 35.4l0-4c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l4 0c-13.8 19.2-24.1 41-30.1 64.5-1.9-.4-3.9-.5-5.9-.5l-32 0c-17.7 0-32 14.3-32 32l0 80 74.9 0c6.1 17.3 14.6 33.4 25.1 48L96 512c-35.3 0-64-28.7-64-64L32 64zM144 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM144 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM288 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm140.7-67.3c-6.2 6.2-6.2 16.4 0 22.6l28.7 28.7-89.4 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l89.4 0-28.7 28.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56-56c6.2-6.2 6.2-16.4 0-22.6l-56-56c-6.2-6.2-16.4-6.2-22.6 0z\"]\n};\nvar faLeftRight = {\n  prefix: 'fas',\n  iconName: 'left-right',\n  icon: [512, 512, [8596, \"arrows-alt-h\"], \"f337\", \"M502.6 406.6l-96 96c-9.2 9.2-22.9 11.9-34.9 6.9S352 492.9 352 480l0-64-320 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l320 0 0-64c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l96 96c12.5 12.5 12.5 32.8 0 45.3zM9.4 150.6c-12.5-12.5-12.5-32.8 0-45.3l96-96c9.2-9.2 22.9-11.9 34.9-6.9S160 19.1 160 32l0 64 320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-320 0 0 64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-96-96z\"]\n};\nvar faArrowsAltH = faLeftRight;\nvar faVirus = {\n  prefix: 'fas',\n  iconName: 'virus',\n  icon: [512, 512, [], \"e074\", \"M296 40c0-22.1-17.9-40-40-40s-40 17.9-40 40c0 44.1-53.3 66.1-84.5 35-15.6-15.6-40.9-15.6-56.6 0s-15.6 40.9 0 56.6c31.2 31.2 9.1 84.5-35 84.5-22.1 0-40 17.9-40 40s17.9 40 40 40c44.1 0 66.1 53.3 35 84.5-15.6 15.6-15.6 40.9 0 56.6s40.9 15.6 56.6 0c31.2-31.2 84.5-9.1 84.5 35 0 22.1 17.9 40 40 40s40-17.9 40-40c0-44.1 53.3-66.1 84.5-35 15.6 15.6 40.9 15.6 56.6 0s15.6-40.9 0-56.6c-31.2-31.2-9.1-84.5 35-84.5 22.1 0 40-17.9 40-40s-17.9-40-40-40c-44.1 0-66.1-53.3-35-84.5 15.6-15.6 15.6-40.9 0-56.6s-40.9-15.6-56.6 0C349.3 106.1 296 84.1 296 40zM160 224a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm160 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faGem = {\n  prefix: 'fas',\n  iconName: 'gem',\n  icon: [512, 512, [128142], \"f3a5\", \"M116.7 33.8c4.5-6.1 11.7-9.8 19.3-9.8l240 0c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4l-232 256c-4.5 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152zm38.5 39.8c-3.3 2.5-4.2 7-2.1 10.5L210.5 179.8 63.3 192c-4.1 .3-7.3 3.8-7.3 8s3.2 7.6 7.3 8l192 16c.4 0 .9 0 1.3 0l192-16c4.1-.3 7.3-3.8 7.3-8s-3.2-7.6-7.3-8l-147.2-12.3 57.4-95.6c2.1-3.5 1.2-8.1-2.1-10.5s-7.9-2-10.7 1L256 172.2 165.9 74.6c-2.8-3-7.4-3.4-10.7-1z\"]\n};\nvar faToilet = {\n  prefix: 'fas',\n  iconName: 'toilet',\n  icon: [448, 512, [128701], \"f7d8\", \"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48l8 0 0 148.9c-1.9 1.4-3.8 2.9-5.6 4.4-15.5 13.2-26.4 31.6-26.4 54.6 0 46.9 14.3 84.1 37 112.5 14.2 17.7 31.1 31.3 48.5 41.8L65.6 469.9c-3.3 9.8-1.6 20.5 4.4 28.8S85.7 512 96 512l256 0c10.3 0 19.9-4.9 26-13.3s7.7-19.1 4.4-28.8l-19.8-59.5c17.4-10.5 34.3-24.1 48.5-41.8 22.7-28.4 37-65.5 37-112.5 0-23.1-10.9-41.5-26.4-54.6-1.8-1.5-3.7-3-5.6-4.4l0-148.9 8 0c13.3 0 24-10.7 24-24S437.3 0 424 0L24 0zM96 80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zM224 288c-88.4 0-160-14.3-160-32s71.6-32 160-32 160 14.3 160 32-71.6 32-160 32z\"]\n};\nvar faSingleQuoteLeft = {\n  prefix: 'fas',\n  iconName: 'single-quote-left',\n  icon: [192, 512, [], \"e81b\", \"M128 96c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-30.9 0-56 25.1-56 56l0 8 64 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64L0 216C0 149.7 53.7 96 120 96l8 0z\"]\n};\nvar faMoneyBills = {\n  prefix: 'fas',\n  iconName: 'money-bills',\n  icon: [576, 512, [], \"e1f3\", \"M160 32c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64l352 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L160 32zm176 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM160 152l0-48c0-4.4 3.6-8 8-8l48 0c4.4 0 8.1 3.6 7.5 8-3.6 29-26.6 51.9-55.5 55.5-4.4 .5-8-3.1-8-7.5zm0 112c0-4.4 3.6-8.1 8-7.5 29 3.6 51.9 26.6 55.5 55.5 .5 4.4-3.1 8-7.5 8l-48 0c-4.4 0-8-3.6-8-8l0-48zM504 159.5c-29-3.6-51.9-26.6-55.5-55.5-.5-4.4 3.1-8 7.5-8l48 0c4.4 0 8 3.6 8 8l0 48c0 4.4-3.6 8.1-8 7.5zM512 264l0 48c0 4.4-3.6 8-8 8l-48 0c-4.4 0-8.1-3.6-7.5-8 3.6-29 26.6-51.9 55.5-55.5 4.4-.5 8 3.1 8 7.5zM48 152c0-13.3-10.7-24-24-24S0 138.7 0 152L0 416c0 35.3 28.7 64 64 64l392 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L64 432c-8.8 0-16-7.2-16-16l0-264z\"]\n};\nvar faTabletButton = {\n  prefix: 'fas',\n  iconName: 'tablet-button',\n  icon: [448, 512, [], \"f10a\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM224 400a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faRectangleXmark = {\n  prefix: 'fas',\n  iconName: 'rectangle-xmark',\n  icon: [512, 512, [62164, \"rectangle-times\", \"times-rectangle\", \"window-close\"], \"f410\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zM167 167c9.4-9.4 24.6-9.4 33.9 0l55 55 55-55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55 55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55-55 55c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l55-55-55-55c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faRectangleTimes = faRectangleXmark;\nvar faTimesRectangle = faRectangleXmark;\nvar faWindowClose = faRectangleXmark;\nvar faWrench = {\n  prefix: 'fas',\n  iconName: 'wrench',\n  icon: [576, 512, [128295], \"f0ad\", \"M509.4 98.6c7.6-7.6 20.3-5.7 24.1 4.3 6.8 17.7 10.5 37 10.5 57.1 0 88.4-71.6 160-160 160-17.5 0-34.4-2.8-50.2-8L146.9 498.9c-28.1 28.1-73.7 28.1-101.8 0s-28.1-73.7 0-101.8L232 210.2c-5.2-15.8-8-32.6-8-50.2 0-88.4 71.6-160 160-160 20.1 0 39.4 3.7 57.1 10.5 10 3.8 11.8 16.5 4.3 24.1l-88.7 88.7c-3 3-4.7 7.1-4.7 11.3l0 41.4c0 8.8 7.2 16 16 16l41.4 0c4.2 0 8.3-1.7 11.3-4.7l88.7-88.7z\"]\n};\nvar faTrashCan = {\n  prefix: 'fas',\n  iconName: 'trash-can',\n  icon: [448, 512, [61460, \"trash-alt\"], \"f2ed\", \"M136.7 5.9C141.1-7.2 153.3-16 167.1-16l113.9 0c13.8 0 26 8.8 30.4 21.9L320 32 416 32c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 8.7-26.1zM32 144l384 0 0 304c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-304zm88 64c-13.3 0-24 10.7-24 24l0 192c0 13.3 10.7 24 24 24s24-10.7 24-24l0-192c0-13.3-10.7-24-24-24zm104 0c-13.3 0-24 10.7-24 24l0 192c0 13.3 10.7 24 24 24s24-10.7 24-24l0-192c0-13.3-10.7-24-24-24zm104 0c-13.3 0-24 10.7-24 24l0 192c0 13.3 10.7 24 24 24s24-10.7 24-24l0-192c0-13.3-10.7-24-24-24z\"]\n};\nvar faTrashAlt = faTrashCan;\nvar faTableCells = {\n  prefix: 'fas',\n  iconName: 'table-cells',\n  icon: [448, 512, [\"th\"], \"f00a\", \"M384 96l0 64-64 0 0-64 64 0zm0 128l0 64-64 0 0-64 64 0zm0 128l0 64-64 0 0-64 64 0zM256 288l-64 0 0-64 64 0 0 64zm-64 64l64 0 0 64-64 0 0-64zm-64-64l-64 0 0-64 64 0 0 64zM64 352l64 0 0 64-64 0 0-64zm0-192l0-64 64 0 0 64-64 0zm128 0l0-64 64 0 0 64-64 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z\"]\n};\nvar faTh = faTableCells;\nvar faRibbon = {\n  prefix: 'fas',\n  iconName: 'ribbon',\n  icon: [384, 512, [127895], \"f4d6\", \"M235.1 0c33.4 0 64.5 17.4 81.9 45.9 1.2 2 13 21.3 35.3 57.8 21.1 34.5 18.3 78.5-7 110L278.3 297.7 364.5 406c5.5 6.9 4.4 16.9-2.5 22.5l-80 64c-6.9 5.5-17 4.4-22.5-2.5L38.6 213.8C13.3 182.3 10.5 138.3 31.6 103.8 54 67.2 65.7 47.9 67 45.9 84.4 17.4 115.4 0 148.9 0l86.3 0zM192 189.2l48.6-61.2-97.3 0 48.6 61.2zM75 336.2l86.2 107.8-36.8 46c-5.5 6.9-15.6 8-22.5 2.5l-80-64c-6.9-5.5-8-15.6-2.5-22.5L75 336.2z\"]\n};\nvar faLandmarkFlag = {\n  prefix: 'fas',\n  iconName: 'landmark-flag',\n  icon: [512, 512, [], \"e51c\", \"M352-32L240-32c-8.8 0-16 7.2-16 16l0 144-176 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0 0 224-51.2 38.4C4.7 460.4 0 469.9 0 480 0 497.7 14.3 512 32 512l448 0c17.7 0 32-14.3 32-32 0-10.1-4.7-19.6-12.8-25.6l-51.2-38.4 0-224 16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-192 0 0-64 80 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16zm48 224l0 224-64 0 0-224 64 0zm-112 0l0 224-64 0 0-224 64 0zm-112 0l0 224-64 0 0-224 64 0z\"]\n};\nvar faUpDownLeftRight = {\n  prefix: 'fas',\n  iconName: 'up-down-left-right',\n  icon: [512, 512, [\"arrows-alt\"], \"f0b2\", \"M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9S179.1 128 192 128l32 0 0 96-96 0 0-32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9S128 332.9 128 320l0-32 96 0 0 96-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9S332.9 384 320 384l-32 0 0-96 96 0 0 32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9S384 179.1 384 192l0 32-96 0 0-96 32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64z\"]\n};\nvar faArrowsAlt = faUpDownLeftRight;\nvar faCarSide = {\n  prefix: 'fas',\n  iconName: 'car-side',\n  icon: [640, 512, [128663], \"f5e4\", \"M147 106.7l-29.8 85.3 122.9 0 0-96-77.9 0c-6.8 0-12.9 4.3-15.1 10.7zM48.6 193.9L86.5 85.6C97.8 53.5 128.1 32 162.1 32L360 32c25.2 0 48.9 11.9 64 32l96.2 128.3C587.1 196.5 640 252.1 640 320l0 16c0 35.3-28.7 64-64 64l-16.4 0c-4 44.9-41.7 80-87.6 80s-83.6-35.1-87.6-80l-144.7 0c-4 44.9-41.7 80-87.6 80s-83.6-35.1-87.6-80l-.4 0c-35.3 0-64-28.7-64-64l0-80c0-30.1 20.7-55.3 48.6-62.1zM440 192l-67.2-89.6c-3-4-7.8-6.4-12.8-6.4l-72 0 0 96 152 0zM152 432a40 40 0 1 0 0-80 40 40 0 1 0 0 80zm360-40a40 40 0 1 0 -80 0 40 40 0 1 0 80 0z\"]\n};\nvar faTrashArrowUp = {\n  prefix: 'fas',\n  iconName: 'trash-arrow-up',\n  icon: [448, 512, [\"trash-restore\"], \"f829\", \"M167.1-16l113.9 0c13.8 0 26 8.8 30.4 21.9L320 32 416 32c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 8.7-26.1C141.1-7.2 153.3-16 167.1-16zM32 144l384 0-21.1 323.1C393.3 492.4 372.3 512 347 512L101 512c-25.3 0-46.3-19.6-47.9-44.9L32 144zm209 79c-9.4-9.4-24.6-9.4-33.9 0l-72 72c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l31-31 0 102.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-102.1 31 31c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-72-72z\"]\n};\nvar faTrashRestore = faTrashArrowUp;\nvar faLifeRing = {\n  prefix: 'fas',\n  iconName: 'life-ring',\n  icon: [512, 512, [], \"f1cd\", \"M367.2 412.5C335.9 434.9 297.5 448 256 448s-79.9-13.1-111.2-35.5l58-58c15.8 8.6 34 13.5 53.3 13.5s37.4-4.9 53.3-13.5l58 58zm90.7 .8c33.8-43.4 54-98 54-157.3S491.8 142.1 458 98.7c9-12.5 7.9-30.1-3.4-41.3S425.8 45 413.3 54C369.9 20.2 315.3 0 256 0S142.1 20.2 98.7 54c-12.5-9-30.1-7.9-41.3 3.4S45 86.2 54 98.7C20.2 142.1 0 196.7 0 256S20.2 369.9 54 413.3c-9 12.5-7.9 30.1 3.4 41.3S86.2 467 98.7 458c43.4 33.8 98 54 157.3 54s113.9-20.2 157.3-54c12.5 9 30.1 7.9 41.3-3.4s12.4-28.8 3.4-41.3zm-45.5-46.1l-58-58c8.6-15.8 13.5-34 13.5-53.3s-4.9-37.4-13.5-53.3l58-58C434.9 176.1 448 214.5 448 256s-13.1 79.9-35.5 111.2zM367.2 99.5l-58 58c-15.8-8.6-34-13.5-53.3-13.5s-37.4 4.9-53.3 13.5l-58-58C176.1 77.1 214.5 64 256 64s79.9 13.1 111.2 35.5zM157.5 309.3l-58 58C77.1 335.9 64 297.5 64 256s13.1-79.9 35.5-111.2l58 58c-8.6 15.8-13.5 34-13.5 53.3s4.9 37.4 13.5 53.3zM208 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"]\n};\nvar faCopyright = {\n  prefix: 'fas',\n  iconName: 'copyright',\n  icon: [512, 512, [169], \"f1f9\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM205.1 306.9c28.1 28.1 73.7 28.1 101.8 0 9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-46.9 46.9-122.8 46.9-169.7 0s-46.9-122.8 0-169.7 122.8-46.9 169.7 0c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-28.1-28.1-73.7-28.1-101.8 0s-28.1 73.7 0 101.8z\"]\n};\nvar faFilePrescription = {\n  prefix: 'fas',\n  iconName: 'file-prescription',\n  icon: [384, 512, [], \"f572\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM88 192c-13.3 0-24 10.7-24 24l0 144c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 22.5 0 58.4 55-33.4 31.6c-9.6 9.1-10.1 24.3-.9 33.9s24.3 10.1 33.9 .9l35.4-33.5 35.6 33.5c9.7 9.1 24.8 8.6 33.9-1s8.6-24.8-1-33.9l-33.6-31.6 33.6-31.8c9.6-9.1 10.1-24.3 .9-33.9s-24.3-10.1-33.9-.9l-35.7 33.7-40.9-38.5c12.9-11.7 21.1-28.6 21.1-47.5 0-35.3-28.7-64-64-64l-56 0zm32 80l-8 0 0-32 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-24 0z\"]\n};\nvar faEraser = {\n  prefix: 'fas',\n  iconName: 'eraser',\n  icon: [576, 512, [], \"f12d\", \"M178.5 416l123 0 65.3-65.3-173.5-173.5-126.7 126.7 112 112zM224 480l-45.5 0c-17 0-33.3-6.7-45.3-18.7L17 345C6.1 334.1 0 319.4 0 304s6.1-30.1 17-41L263 17C273.9 6.1 288.6 0 304 0s30.1 6.1 41 17L527 199c10.9 10.9 17 25.6 17 41s-6.1 30.1-17 41l-135 135 120 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-288 0z\"]\n};\nvar faHourglassStart = {\n  prefix: 'fas',\n  iconName: 'hourglass-start',\n  icon: [384, 512, [\"hourglass-1\"], \"f251\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1l67.9 67.9-67.9 67.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1l-67.9-67.9 67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32S369.7 0 352 0L32 0zM288 437l0 11-192 0 0-11c0-25.5 10.1-49.9 28.1-67.9l67.9-67.9 67.9 67.9c18 18 28.1 42.4 28.1 67.9z\"]\n};\nvar faHourglass1 = faHourglassStart;\nvar faCircleLeft = {\n  prefix: 'fas',\n  iconName: 'circle-left',\n  icon: [512, 512, [61840, \"arrow-alt-circle-left\"], \"f359\", \"M512 256a256 256 0 1 0 -512 0 256 256 0 1 0 512 0zM124.7 244.7l104-104c4.6-4.6 11.5-5.9 17.4-3.5s9.9 8.3 9.9 14.8l0 56 96 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32l-96 0 0 56c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5l-104-104c-6.2-6.2-6.2-16.4 0-22.6z\"]\n};\nvar faArrowAltCircleLeft = faCircleLeft;\nvar faCruzeiroSign = {\n  prefix: 'fas',\n  iconName: 'cruzeiro-sign',\n  icon: [448, 512, [], \"e152\", \"M240 96c-88.4 0-160 71.6-160 160 0 71.6 47.1 132.3 112 152.7L192 256c0-13.3 10.7-24 24-24 12.8 0 23.3 10.1 24 22.7 15.5-9.5 33.5-14.7 52.3-14.7l11.8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-11.8 0c-18.8 0-36.1 10-45.4 26.3-4.5 7.9-6.9 16.8-6.9 25.9l0 75.8c42.5 0 81.1-16.6 109.8-43.6 12.9-12.1 33.1-11.5 45.2 1.3s11.5 33.1-1.3 45.2C353.7 456.8 299.5 480 240 480 116.3 480 16 379.7 16 256S116.3 32 240 32c59.5 0 113.7 23.2 153.7 61.1 12.9 12.1 13.4 32.4 1.3 45.2s-32.4 13.4-45.2 1.3C321.1 112.6 282.5 96 240 96z\"]\n};\nvar faSmoking = {\n  prefix: 'fas',\n  iconName: 'smoking',\n  icon: [576, 512, [128684], \"f48d\", \"M360 0c13.3 0 24 10.7 24 24l0 19c0 40.3 16 79 44.5 107.5l21 21C469 191 480 217.4 480 245l0 19c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-19c0-14.9-5.9-29.1-16.4-39.6l-21-21C357.1 146.9 336 96 336 43l0-19c0-13.3 10.7-24 24-24zM552 288c-13.3 0-24-10.7-24-24l0-19c0-40.3-16-79-44.5-107.5l-21-21C443 97 432 70.6 432 43l0-19c0-13.3 10.7-24 24-24s24 10.7 24 24l0 19c0 14.9 5.9 29.1 16.4 39.6l21 21C554.9 141.1 576 192 576 245l0 19c0 13.3-10.7 24-24 24zM320 448l96 0 0-32-96 0 0 32zM0 416c0-35.3 28.7-64 64-64l384 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32L64 512c-35.3 0-64-28.7-64-64l0-32zm576-40l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faSquarePollVertical = {\n  prefix: 'fas',\n  iconName: 'square-poll-vertical',\n  icon: [448, 512, [\"poll\"], \"f681\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm56 192c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112c0-13.3 10.7-24 24-24zm184 88c0-13.3 10.7-24 24-24s24 10.7 24 24l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48zM224 128c13.3 0 24 10.7 24 24l0 208c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-208c0-13.3 10.7-24 24-24z\"]\n};\nvar faPoll = faSquarePollVertical;\nvar faPersonCircleMinus = {\n  prefix: 'fas',\n  iconName: 'person-circle-minus',\n  icon: [640, 512, [], \"e540\", \"M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-64 0c0 8.8-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l128 0c8.8 0 16 7.2 16 16z\"]\n};\nvar faBiohazard = {\n  prefix: 'fas',\n  iconName: 'biohazard',\n  icon: [576, 512, [9763], \"f780\", \"M260 12.6c0-8.3-7.6-14.5-15.5-12.1-60.9 18.8-105.1 75.8-105.1 143.1 0 25.1 6.1 48.7 17 69.5-21 1.8-42 8.2-61.5 19.5-57.9 33.6-84.8 100.2-70.9 162.5 1.9 8.4 11.4 12 18.9 7.6 5-2.9 7.6-8.6 7.1-14.4-.3-3.3-.4-6.6-.4-10.1 0-123.5 184.4-123.5 184.4 0 0 88.4-94.5 113.6-148.2 75.4-4.5-3.2-10.5-3.9-15.3-1.1-7 4.1-8.6 13.6-2.7 19.1 46.6 43.8 118 53.9 176.1 20.2 17.9-10.4 32.8-23.9 44.5-39.4 11.7 15.6 26.6 29.1 44.5 39.4 58.1 33.7 129.5 23.6 176.1-20.2 5.9-5.5 4.3-15.1-2.7-19.1-4.8-2.8-10.8-2.1-15.3 1.1-53.7 38.2-148.2 13-148.2-75.4 0-123.5 184.4-123.5 184.4 0 0 3.4-.1 6.8-.4 10.1-.5 5.8 2.1 11.5 7.1 14.4 7.4 4.3 17 .8 18.9-7.6 13.9-62.2-13-128.9-70.9-162.5-19.5-11.3-40.4-17.7-61.5-19.5 10.9-20.8 17-44.4 17-69.5 0-67.3-44.2-124.3-105.1-143.1-7.9-2.4-15.5 3.8-15.5 12.1 0 5.9 4 11 9.5 13.2 83.4 33.6 70.8 178.4-37.8 178.4S167.1 59.4 250.5 25.8c5.5-2.2 9.5-7.3 9.5-13.2zM248.4 288a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM435 317.7c-16.2 0-31.4 5.5-42.1 15-10.1 9.1-18.1 23.4-18.1 45.6 0 21.1 7.2 35 16.5 44.1 32.2-24.6 55.5-60.5 63.9-101.8-6.3-1.9-13.2-3-20.2-3zM202 378.3c0-22.3-8-36.6-18.1-45.6-10.7-9.6-25.9-15-42.1-15-7 0-13.9 1-20.2 3 8.4 41.3 31.6 77.2 63.9 101.8 9.4-9.1 16.5-23.1 16.5-44.2zm41.2-224.3c9 10.2 23.2 18.2 45.2 18.2s36.2-8 45.2-18.2c6.7-7.6 11.5-17.5 13.6-28.4-18.3-6.8-38.2-10.5-58.8-10.5s-40.5 3.7-58.8 10.5c2.2 10.9 6.9 20.8 13.6 28.5z\"]\n};\nvar faBellConcierge = {\n  prefix: 'fas',\n  iconName: 'bell-concierge',\n  icon: [512, 512, [128718, \"concierge-bell\"], \"f562\", \"M216 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0 0 33.3C124.8 156.7 40.2 243.7 32.6 352l446.9 0C471.8 243.7 387.2 156.7 280 145.3l0-33.3 16 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zM24 400c-13.3 0-24 10.7-24 24s10.7 24 24 24l464 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 400z\"]\n};\nvar faConciergeBell = faBellConcierge;\nvar faRulerHorizontal = {\n  prefix: 'fas',\n  iconName: 'ruler-horizontal',\n  icon: [576, 512, [], \"f547\", \"M48 384c-26.5 0-48-21.5-48-48L0 176c0-26.5 21.5-48 48-48l24 0 0 104c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104 48 0 0 72c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72 48 0 0 104c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104 48 0 0 72c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72 48 0 0 104c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104 24 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48L48 384z\"]\n};\nvar faHorse = {\n  prefix: 'fas',\n  iconName: 'horse',\n  icon: [576, 512, [128014], \"f6f0\", \"M448 238.1l0-78.1 16 0 9.8 19.6c12.5 25.1 42.2 36.4 68.3 26 20.5-8.2 33.9-28 33.9-50.1L576 80c0-19.1-8.4-36.3-21.7-48l5.7 0c8.8 0 16-7.2 16-16S568.8 0 560 0L448 0C377.3 0 320 57.3 320 128l-171.2 0C118.1 128 91.2 144.3 76.3 168.8 33.2 174.5 0 211.4 0 256l0 56c0 13.3 10.7 24 24 24s24-10.7 24-24l0-56c0-13.4 6.6-25.2 16.7-32.5 1.6 13 6.3 25.4 13.6 36.4l28.2 42.4c8.3 12.4 6.4 28.7-1.2 41.6-16.5 28-20.6 62.2-10 93.9l17.5 52.4c4.4 13.1 16.6 21.9 30.4 21.9l33.7 0c21.8 0 37.3-21.4 30.4-42.1l-20.8-62.5c-2.1-6.4-.5-13.4 4.3-18.2l12.7-12.7c13.2-13.2 20.6-31.1 20.6-49.7 0-2.3-.1-4.6-.3-6.9l84 24c4.1 1.2 8.2 2.1 12.3 2.8L320 480c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-164.3c19.2-19.2 31.5-45.7 32-75.7l0 0 0-1.9zM496 64a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"]\n};\nvar faCalendar = {\n  prefix: 'fas',\n  iconName: 'calendar',\n  icon: [448, 512, [128197, 128198], \"f133\", \"M128 0C110.3 0 96 14.3 96 32l0 32-32 0C28.7 64 0 92.7 0 128l0 48 448 0 0-48c0-35.3-28.7-64-64-64l-32 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32-128 0 0-32c0-17.7-14.3-32-32-32zM0 224L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-192-448 0z\"]\n};\nvar faHandsHoldingChild = {\n  prefix: 'fas',\n  iconName: 'hands-holding-child',\n  icon: [640, 512, [], \"e4fa\", \"M320-32a40 40 0 1 1 0 80 40 40 0 1 1 0-80zM40 64c22.1 0 40 17.9 40 40l0 160.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1 12.9-8.6 14.7-26.9 3.7-37.8-7.3-7.3-23.1-23.1-47.2-47.2-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c24.1 24.1 39.9 39.9 47.2 47.2l0 0 25.3 25.3c21 21 32.8 49.5 32.8 79.2l0 78.9c0 26.5-21.5 48-48 48l-66.7 0c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5L0 104C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40l0 221.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7L400 512c-26.5 0-48-21.5-48-48l0-78.9c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3 0 0c7.3-7.3 23.1-23.1 47.2-47.2 12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-24.1 24.1-39.9 39.9-47.2 47.2-11 11-9.2 29.2 3.7 37.8 9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3L560 104c0-22.1 17.9-40 40-40zM384.5 149l-19.8-16.7 11.1 88.8c1.6 13.2-7.7 25.1-20.8 26.8s-25.1-7.7-26.8-20.8l-4.4-35-7.6 0-4.4 35c-1.6 13.2-13.6 22.5-26.8 20.8s-22.5-13.6-20.8-26.8l11.1-88.8-19.8 16.7c-10.1 8.6-25.3 7.3-33.8-2.8s-7.3-25.3 2.8-33.8l27.9-23.6C271.3 72.8 295.3 64 320 64s48.7 8.8 67.6 24.7l27.9 23.6c10.1 8.6 11.4 23.7 2.8 33.8s-23.7 11.4-33.8 2.8z\"]\n};\nvar faItalic = {\n  prefix: 'fas',\n  iconName: 'italic',\n  icon: [384, 512, [], \"f033\", \"M128 64c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-58.7 0-133.3 320 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l58.7 0 133.3-320-64 0c-17.7 0-32-14.3-32-32z\"]\n};\nvar faKhanda = {\n  prefix: 'fas',\n  iconName: 'khanda',\n  icon: [512, 512, [9772], \"f66d\", \"M240.7 8c8.9-7.4 21.8-7.4 30.7 0l37.8 31.5c8.7 7.3 11.1 19.6 6 29.6-1.2 2.4-2.8 5.5-4.6 9.2 34.2 19.2 57.3 55.8 57.3 97.8s-23.1 78.6-57.3 97.8c1.8 3.7 3.3 6.8 4.6 9.2 5.1 10 2.7 22.3-6 29.6l-37.2 31 0 19.8c22.9-15.7 48.4-33.3 76.7-52.7 42.8-29.4 68.4-78 68.4-130l0-11.1c0-23.9-7.1-47.3-20.4-67.2-5.1-7.7-4.6-17.8 1.7-24.6 6.6-7.1 17.2-8.1 25.2-2.8 27.5 18.1 89.4 67.5 89.4 149.1 0 46.5-20.2 88.6-41.8 120.4-21.6 32-45.6 55-55.3 63.8-7.8 7.1-19 7.9-27.6 3l-70.8-40.3-32.7 22.5 45.5 31.3c1.8-.4 3.7-.7 5.7-.7 13.3 0 24 10.7 24 24s-10.7 24-24 24c-12.2 0-22.3-9.1-23.8-21l-40.2-27.6 0 28.9c9.6 5.5 16 15.9 16 27.7 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-11.8 6.4-22.2 16-27.7l0-28.1-40.3 27.7c-1.8 11.4-11.8 20.1-23.7 20.1-13.3 0-24-10.7-24-24s10.7-24 24-24c2.2 0 4.4 .3 6.5 .9l45.8-31.5-32.7-22.5-70.8 40.3c-8.7 4.9-19.8 4.1-27.6-3-9.7-8.8-33.7-31.9-55.3-63.8-21.5-31.8-41.8-73.9-41.8-120.4 0-81.7 61.9-131.1 89.4-149.1 8.1-5.3 18.6-4.3 25.2 2.8 6.4 6.9 6.8 17 1.7 24.6-13.3 19.9-20.4 43.3-20.4 67.2l0 11.1c0 51.9 25.6 100.6 68.4 130 28.4 19.6 53.7 36.9 75.6 52l0-19.1-37.2-31c-8.7-7.3-11.1-19.6-6-29.6 1.2-2.4 2.8-5.5 4.6-9.2-34.2-19.2-57.3-55.8-57.3-97.8s23.1-78.6 57.3-97.8c-1.8-3.7-3.3-6.8-4.6-9.2-5.1-10-2.7-22.3 6-29.6L240.7 8zM220.3 122.9c-17 11.5-28.2 31-28.2 53.1s11.2 41.6 28.2 53.1c6.8-19.2 11.8-38.4 11.8-53.1s-4.9-33.9-11.8-53.1zm71.5 106.2c17-11.5 28.2-31 28.2-53.1s-11.2-41.6-28.2-53.1c-6.8 19.2-11.8 38.4-11.8 53.1s4.9 33.9 11.8 53.1z\"]\n};\nvar faFaceFrownOpen = {\n  prefix: 'fas',\n  iconName: 'face-frown-open',\n  icon: [512, 512, [128550, \"frown-open\"], \"f57a\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM176 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM182.4 382.5c-12.4 5.2-26.5-4.1-21.1-16.4 16-36.6 52.4-62.1 94.8-62.1s78.8 25.6 94.8 62.1c5.4 12.3-8.7 21.6-21.1 16.4-22.4-9.5-47.4-14.8-73.7-14.8s-51.3 5.3-73.7 14.8z\"]\n};\nvar faFrownOpen = faFaceFrownOpen;\nvar faCheck = {\n  prefix: 'fas',\n  iconName: 'check',\n  icon: [448, 512, [10003, 10004], \"f00c\", \"M434.8 70.1c14.3 10.4 17.5 30.4 7.1 44.7l-256 352c-5.5 7.6-14 12.3-23.4 13.1s-18.5-2.7-25.1-9.3l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l101.5 101.5 234-321.7c10.4-14.3 30.4-17.5 44.7-7.1z\"]\n};\nvar faFingerprint = {\n  prefix: 'fas',\n  iconName: 'fingerprint',\n  icon: [512, 512, [], \"f577\", \"M48 256c0-114.9 93.1-208 208-208 63.1 0 119.6 28.1 157.8 72.5 8.6 10.1 23.8 11.2 33.8 2.6s11.2-23.8 2.6-33.8C403.3 34.6 333.7 0 256 0 114.6 0 0 114.6 0 256l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40zm458.5-52.9c-2.7-13-15.5-21.3-28.4-18.5s-21.3 15.5-18.5 28.4c2.9 13.9 4.5 28.3 4.5 43.1l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c0-18.1-1.9-35.8-5.5-52.9zM256 80c-19 0-37.4 3-54.5 8.6-15.2 5-18.7 23.7-8.3 35.9 7.1 8.3 18.8 10.8 29.4 7.9 10.6-2.9 21.8-4.4 33.4-4.4 70.7 0 128 57.3 128 128l0 24.9c0 25.2-1.5 50.3-4.4 75.3-1.7 14.6 9.4 27.8 24.2 27.8 11.8 0 21.9-8.6 23.3-20.3 3.3-27.4 5-55 5-82.7l0-24.9c0-97.2-78.8-176-176-176zM150.7 148.7c-9.1-10.6-25.3-11.4-33.9-.4-23.1 29.8-36.8 67.1-36.8 107.7l0 24.9c0 24.2-2.6 48.4-7.8 71.9-3.4 15.6 7.9 31.1 23.9 31.1 10.5 0 19.9-7 22.2-17.3 6.4-28.1 9.7-56.8 9.7-85.8l0-24.9c0-27.2 8.5-52.4 22.9-73.1 7.2-10.4 8-24.6-.2-34.2zM256 160c-53 0-96 43-96 96l0 24.9c0 35.9-4.6 71.5-13.8 106.1-3.8 14.3 6.7 29 21.5 29 9.5 0 17.9-6.2 20.4-15.4 10.5-39 15.9-79.2 15.9-119.7l0-24.9c0-28.7 23.3-52 52-52s52 23.3 52 52l0 24.9c0 36.3-3.5 72.4-10.4 107.9-2.7 13.9 7.7 27.2 21.8 27.2 10.2 0 19-7 21-17 7.7-38.8 11.6-78.3 11.6-118.1l0-24.9c0-53-43-96-96-96zm24 96c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24.9c0 59.9-11 119.3-32.5 175.2l-5.9 15.3c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8l5.9-15.3C267.9 411.9 280 346.7 280 280.9l0-24.9z\"]\n};\nvar faChargingStation = {\n  prefix: 'fas',\n  iconName: 'charging-station',\n  icon: [576, 512, [], \"f5e7\", \"M64 64C64 28.7 92.7 0 128 0L288 0c35.3 0 64 28.7 64 64l0 224c44.2 0 80 35.8 80 80l0 12c0 11 9 20 20 20s20-9 20-20l0-127.7c-32.5-10.2-56-40.5-56-76.3l0-32c0-8.8 7.2-16 16-16l16 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48 32 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48 16 0c8.8 0 16 7.2 16 16l0 32c0 35.8-23.5 66.1-56 76.3L520 380c0 37.6-30.4 68-68 68s-68-30.4-68-68l0-12c0-17.7-14.3-32-32-32l0 129.4c9.3 3.3 16 12.2 16 22.6 0 13.3-10.7 24-24 24L72 512c-13.3 0-24-10.7-24-24 0-10.5 6.7-19.3 16-22.6L64 64zm82.7 125.7l39 0-20.9 66.9c-2.4 7.6 3.3 15.4 11.3 15.4 2.9 0 5.6-1 7.8-2.9l94.6-82c3.1-2.7 4.9-6.6 4.9-10.7 0-7.8-6.3-14.1-14.1-14.1l-39 0 20.9-66.9c2.4-7.6-3.3-15.4-11.3-15.4-2.9 0-5.6 1-7.8 2.9l-94.6 82c-3.1 2.7-4.9 6.6-4.9 10.7 0 7.8 6.3 14.1 14.1 14.1z\"]\n};\nvar faUserLock = {\n  prefix: 'fas',\n  iconName: 'user-lock',\n  icon: [576, 512, [], \"f502\", \"M224 8a120 120 0 1 1 0 240 120 120 0 1 1 0-240zM194.3 304l59.4 0c29.7 0 57.7 7.3 82.3 20.1l0 4.3c-19.6 17.6-32 43.1-32 71.5l0 96c0 5.5 .5 10.9 1.3 16.1L45.7 512C29.3 512 16 498.7 16 482.3 16 383.8 95.8 304 194.3 304zm301.7 .1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM352 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"]\n};\nvar faMobileScreenButton = {\n  prefix: 'fas',\n  iconName: 'mobile-screen-button',\n  icon: [384, 512, [\"mobile-alt\"], \"f3cd\", \"M16 64C16 28.7 44.7 0 80 0L304 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64L16 64zm64 0l0 304 224 0 0-304-224 0zM192 472c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"]\n};\nvar faMobileAlt = faMobileScreenButton;\nvar faAnchorCircleCheck = {\n  prefix: 'fas',\n  iconName: 'anchor-circle-check',\n  icon: [640, 512, [], \"e4aa\", \"M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zM288 0c-53 0-96 43-96 96 0 41.8 26.7 77.4 64 90.5l0 257.9c-62.9-14.3-110.2-69.7-111.9-136.5l16.1 14.1c10 8.7 25.1 7.7 33.9-2.3s7.7-25.1-2.3-33.9l-64-56c-9-7.9-22.6-7.9-31.6 0l-64 56c-10 8.7-11 23.9-2.3 33.9s23.9 11 33.9 2.3L80 307.9c2.1 113.1 94.4 204.1 208 204.1 16.6 0 32.7-1.9 48.2-5.6-20.3-30.5-32.2-67-32.2-106.4 0-27.3 5.7-53.3 16-76.9l0-136.6c37.3-13.2 64-48.7 64-90.5 0-53-43-96-96-96zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"]\n};\nvar faPersonWalkingWithCane = {\n  prefix: 'fas',\n  iconName: 'person-walking-with-cane',\n  icon: [576, 512, [\"blind\"], \"f29d\", \"M224-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM160 205.3l-22.6 22.6c-6 6-9.4 14.1-9.4 22.6l0 37.5c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-37.5c0-25.5 10.1-49.9 28.1-67.9l34.4-34.4c23.2-23.2 54.6-36.2 87.3-36.2 36.1 0 70.3 15.8 93.8 43.1l68.6 80c11.5 13.4 9.9 33.6-3.5 45.1s-33.6 9.9-45.1-3.5l-55.7-65 0 118.6 34.5 29.6c17.7 15.2 29.3 36.2 32.6 59.3l12.6 88.1c2.5 17.5-9.7 33.7-27.2 36.2s-33.7-9.7-36.2-27.2l-12.6-88.1c-1.1-7.7-5-14.7-10.9-19.8l-71.4-61.2c-21.3-18.2-33.5-44.9-33.5-72.9l0-69.3zm.1 165.8c2.4 2.3 4.8 4.6 7.4 6.8l46 39.4-2.2 7.6c-4.5 15.7-12.9 30-24.4 41.5l-68.3 68.3c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l68.3-68.3c3.8-3.8 6.6-8.6 8.1-13.8L160.1 371zm233.5-62.2c10.6-8 25.6-5.8 33.6 4.8l144 192c8 10.6 5.8 25.6-4.8 33.6s-25.6 5.8-33.6-4.8l-144-192c-8-10.6-5.8-25.6 4.8-33.6z\"]\n};\nvar faBlind = faPersonWalkingWithCane;\nvar faFileWaveform = {\n  prefix: 'fas',\n  iconName: 'file-waveform',\n  icon: [384, 512, [\"file-medical-alt\"], \"f478\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64l0-96 60.3 0 48.8 62.7c5.1 6.6 13.3 10 21.6 9.1s15.5-6.1 19.1-13.6l42.9-91.2 9.9 19.8c4.1 8.1 12.4 13.3 21.5 13.3l72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-57.2 0-25.4-50.7c-4.1-8.2-12.6-13.4-21.8-13.3s-17.5 5.5-21.4 13.8l-47.3 100.6-32-41.1C86.4 307.4 79.4 304 72 304L0 304 0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5z\"]\n};\nvar faFileMedicalAlt = faFileWaveform;\nvar faHouseCrack = {\n  prefix: 'fas',\n  iconName: 'house-crack',\n  icon: [512, 512, [], \"e3b1\", \"M277.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S18.8 272 32 272l16 0 0 176c0 35.3 28.7 64 64 64l86.4 0-31.3-52.2c-4.1-6.8-2.6-15.5 3.5-20.5L256 368 195.8 285.2c-10.9-15 8.2-33.5 22.8-22l117.9 92.6c8 6.3 8.2 18.4 .4 24.9L256 448 294.4 512 400 512c35.3 0 64-28.7 64-64l0-176 16 0c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8-35.1l-224-208z\"]\n};\nvar faHatWizard = {\n  prefix: 'fas',\n  iconName: 'hat-wizard',\n  icon: [512, 512, [], \"f6e8\", \"M64 400l85.7-208.2c17-41.3 47.8-75.3 87.2-96.3L383.8 17.2c12.3-6.6 26.5 4.7 23 18.2L369.6 177.8c-1.1 4.1-1.6 8.3-1.6 12.6 0 6.3 1.2 12.6 3.6 18.5l76.4 191.1-207.1 0 11.8-35.4 40.4-13.5c6.5-2.2 10.9-8.3 10.9-15.2s-4.4-13-10.9-15.2l-40.4-13.5-13.5-40.4C237 260.4 230.9 256 224 256s-13 4.4-15.2 10.9l-13.5 40.4-40.4 13.5C148.4 323 144 329.1 144 336s4.4 13 10.9 15.2l40.4 13.5 11.8 35.4-143.1 0zM279.6 141.5c-1.1-3.3-4.1-5.5-7.6-5.5s-6.5 2.2-7.6 5.5l-6.7 20.2-20.2 6.7c-3.3 1.1-5.5 4.1-5.5 7.6s2.2 6.5 5.5 7.6l20.2 6.7 6.7 20.2c1.1 3.3 4.1 5.5 7.6 5.5s6.5-2.2 7.6-5.5l6.7-20.2 20.2-6.7c3.3-1.1 5.5-4.1 5.5-7.6s-2.2-6.5-5.5-7.6l-20.2-6.7-6.7-20.2zM32 448l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faUserDoctor = {\n  prefix: 'fas',\n  iconName: 'user-doctor',\n  icon: [448, 512, [\"user-md\"], \"f0f0\", \"M224 8a120 120 0 1 0 0 240 120 120 0 1 0 0-240zm60 312.8c-5.4-.5-11-.8-16.6-.8l-86.9 0c-5.6 0-11.1 .3-16.6 .8l0 67.5c16.5 7.6 28 24.3 28 43.6 0 26.5-21.5 48-48 48s-48-21.5-48-48c0-19.4 11.5-36.1 28-43.6l0-58.4C61 353 16 413.6 16 484.6 16 499.7 28.3 512 43.4 512l361.1 0c15.1 0 27.4-12.3 27.4-27.4 0-71-45-131.5-108-154.6l0 37.4c23.3 8.2 40 30.5 40 56.6l0 32c0 11-9 20-20 20s-20-9-20-20l0-32c0-11-9-20-20-20s-20 9-20 20l0 32c0 11-9 20-20 20s-20-9-20-20l0-32c0-26.1 16.7-48.3 40-56.6l0-46.6z\"]\n};\nvar faUserMd = faUserDoctor;\nvar faChartBar = {\n  prefix: 'fas',\n  iconName: 'chart-bar',\n  icon: [512, 512, [\"bar-chart\"], \"f080\", \"M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zm96 64c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 80l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 112l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faBarChart = faChartBar;\nvar faSprayCanSparkles = {\n  prefix: 'fas',\n  iconName: 'spray-can-sparkles',\n  icon: [576, 512, [\"air-freshener\"], \"f5d0\", \"M160 32l0 80 128 0 0-80c0-17.7-14.3-32-32-32L192 0c-17.7 0-32 14.3-32 32zm0 128c-53 0-96 43-96 96l0 208c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-208c0-53-43-96-96-96l-128 0zm64 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM448 48c0-1.4-1-3-2.2-3.6L416 32 403.6 2.2C403 1 401.4 0 400 0s-3 1-3.6 2.2L384 32 354.2 44.4c-1.2 .6-2.2 2.2-2.2 3.6 0 1.4 1 3 2.2 3.6L384 64 396.4 93.8C397 95 398.6 96 400 96s3-1 3.6-2.2L416 64 445.8 51.6C447 51 448 49.4 448 48zm76.4 45.8C525 95 526.6 96 528 96s3-1 3.6-2.2L544 64 573.8 51.6c1.2-.6 2.2-2.2 2.2-3.6 0-1.4-1-3-2.2-3.6L544 32 531.6 2.2C531 1 529.4 0 528 0s-3 1-3.6 2.2L512 32 482.2 44.4c-1.2 .6-2.2 2.2-2.2 3.6 0 1.4 1 3 2.2 3.6L512 64 524.4 93.8zm7.2 100.4c-.6-1.2-2.2-2.2-3.6-2.2s-3 1-3.6 2.2L512 224 482.2 236.4c-1.2 .6-2.2 2.2-2.2 3.6 0 1.4 1 3 2.2 3.6L512 256 524.4 285.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L544 256 573.8 243.6c1.2-.6 2.2-2.2 2.2-3.6 0-1.4-1-3-2.2-3.6L544 224 531.6 194.2zM512 144c0-1.4-1-3-2.2-3.6L480 128 467.6 98.2C467 97 465.4 96 464 96s-3 1-3.6 2.2L448 128 418.2 140.4c-1.2 .6-2.2 2.2-2.2 3.6 0 1.4 1 3 2.2 3.6L448 160 460.4 189.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L480 160 509.8 147.6c1.2-.6 2.2-2.2 2.2-3.6z\"]\n};\nvar faAirFreshener = faSprayCanSparkles;\nvar faBahtSign = {\n  prefix: 'fas',\n  iconName: 'baht-sign',\n  icon: [320, 512, [], \"e0ac\", \"M136 0c-13.3 0-24 10.7-24 24l0 40-74.4 0C16.8 64 0 80.8 0 101.6L0 406.3c0 23 18.7 41.7 41.7 41.7l70.3 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 48 0c61.9 0 112-50.1 112-112 0-40.1-21.1-75.3-52.7-95.1 13.1-18.3 20.7-40.7 20.7-64.9 0-61.9-50.1-112-112-112l-16 0 0-40c0-13.3-10.7-24-24-24zM112 128l0 96-48 0 0-96 48 0zm48 96l0-96 16 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-16 0zm-48 64l0 96-48 0 0-96 48 0zm48 96l0-96 48 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-48 0z\"]\n};\nvar faTemperatureArrowUp = {\n  prefix: 'fas',\n  iconName: 'temperature-arrow-up',\n  icon: [512, 512, [\"temperature-up\"], \"e040\", \"M64.5 96c0-53 43-96 96-96s96 43 96 96l0 164.7c29.5 26.4 48 64.7 48 107.3 0 79.5-64.5 144-144 144s-144-64.5-144-144c0-42.6 18.5-81 48-107.3L64.5 96zm96 336c35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3l0-212.7c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 212.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64zM439.1 9.4l64 64c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-9.4-9.4 0 178.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-178.7-9.4 9.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l64-64c6-6 14.1-9.4 22.6-9.4s16.6 3.4 22.6 9.4z\"]\n};\nvar faTemperatureUp = faTemperatureArrowUp;\nvar faWebAwesome = {\n  prefix: 'fas',\n  iconName: 'web-awesome',\n  icon: [640, 512, [], \"e682\", \"M372.2 52c0 20.9-12.4 39-30.2 47.2L448 192 552.4 171.1c-5.3-7.7-8.4-17.1-8.4-27.1 0-26.5 21.5-48 48-48s48 21.5 48 48c0 26-20.6 47.1-46.4 48L481 442.3c-10.3 23-33.2 37.7-58.4 37.7l-205.2 0c-25.2 0-48-14.8-58.4-37.7L46.4 192C20.6 191.1 0 170 0 144 0 117.5 21.5 96 48 96s48 21.5 48 48c0 10.1-3.1 19.4-8.4 27.1L192 192 298.1 99.1c-17.7-8.3-30-26.3-30-47.1 0-28.7 23.3-52 52-52s52 23.3 52 52z\"]\n};\nvar faNonBinary = {\n  prefix: 'fas',\n  iconName: 'non-binary',\n  icon: [384, 512, [], \"e807\", \"M192 544c-97.2 0-176-78.8-176-176 0-86.3 62.1-158 144-173l0-47.2-49.7 24.8-3 1.3c-15.2 5.7-32.5-.8-39.9-15.7-7.4-14.8-2.2-32.6 11.5-41.3l2.8-1.6 38.8-19.4-38.8-19.4c-15.8-7.9-22.2-27.1-14.3-42.9 7.4-14.8 24.8-21.4 40-15.6l3 1.3 49.7 24.8 0-44.2c0-17.7 14.3-32 32-32s32 14.3 32 32l0 44.2 49.7-24.8 3-1.3c15.2-5.8 32.5 .8 39.9 15.6s2.2 32.7-11.5 41.3l-2.8 1.6-38.7 19.4 38.7 19.3c15.8 7.9 22.2 27.1 14.3 42.9-7.4 14.8-24.7 21.4-39.9 15.6l-3-1.3-49.7-24.8 0 47.2c81.9 15.1 144 86.8 144 173 0 97.2-78.8 176-176 176zm0-64a112 112 0 1 0 0-224 112 112 0 1 0 0 224z\"]\n};\nvar faN = {\n  prefix: 'fas',\n  iconName: 'n',\n  icon: [384, 512, [110], \"4e\", \"M21.1 33.9c12.7-4.6 26.9-.7 35.5 9.6L320 359.6 320 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 384c0 13.5-8.4 25.5-21.1 30.1s-26.9 .7-35.5-9.6L64 152.4 64 448c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64C0 50.5 8.4 38.5 21.1 33.9z\"]\n};\nvar faArrowsUpDownLeftRight = {\n  prefix: 'fas',\n  iconName: 'arrows-up-down-left-right',\n  icon: [512, 512, [\"arrows\"], \"f047\", \"M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4 0 114.7-114.7 0 9.4-9.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4 114.7 0 0 114.7-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-9.4 9.4 0-114.7 114.7 0-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4-114.7 0 0-114.7 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64z\"]\n};\nvar faArrows = faArrowsUpDownLeftRight;\nvar faHouse = {\n  prefix: 'fas',\n  iconName: 'house',\n  icon: [512, 512, [127968, 63498, 63500, \"home\", \"home-alt\", \"home-lg-alt\"], \"f015\", \"M277.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S18.8 272 32 272l16 0 0 176c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-176 16 0c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8-35.1l-224-208zM240 320l32 0c26.5 0 48 21.5 48 48l0 96-128 0 0-96c0-26.5 21.5-48 48-48z\"]\n};\nvar faHome = faHouse;\nvar faHomeAlt = faHouse;\nvar faHomeLgAlt = faHouse;\nvar faSpinner = {\n  prefix: 'fas',\n  iconName: 'spinner',\n  icon: [512, 512, [], \"f110\", \"M208 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm0 416a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM48 208a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm368 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM75 369.1A48 48 0 1 1 142.9 437 48 48 0 1 1 75 369.1zM75 75A48 48 0 1 1 142.9 142.9 48 48 0 1 1 75 75zM437 369.1A48 48 0 1 1 369.1 437 48 48 0 1 1 437 369.1z\"]\n};\nvar faGavel = {\n  prefix: 'fas',\n  iconName: 'gavel',\n  icon: [576, 512, [\"legal\"], \"f0e3\", \"M169.6 153.4l-18.7-18.7c-12.5-12.5-12.5-32.8 0-45.3L265.6-25.4c12.5-12.5 32.8-12.5 45.3 0L329.6-6.6c12.5 12.5 12.5 32.8 0 45.3L214.9 153.4c-12.5 12.5-32.8 12.5-45.3 0zM276 211.7l-31.4-31.4 112-112 119.4 119.4-112 112-31.4-31.4-232 232c-15.6 15.6-40.9 15.6-56.6 0s-15.6-40.9 0-56.6l232-232zM390.9 374.6c-12.5-12.5-12.5-32.8 0-45.3L505.6 214.6c12.5-12.5 32.8-12.5 45.3 0l18.7 18.7c12.5 12.5 12.5 32.8 0 45.3L454.9 393.4c-12.5 12.5-32.8 12.5-45.3 0l-18.7-18.7z\"]\n};\nvar faLegal = faGavel;\nvar faTicketSimple = {\n  prefix: 'fas',\n  iconName: 'ticket-simple',\n  icon: [576, 512, [\"ticket-alt\"], \"f3ff\", \"M0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 64c0 8.8-7.4 15.7-15.7 18.6-18.8 6.5-32.3 24.4-32.3 45.4s13.5 38.9 32.3 45.4c8.3 2.9 15.7 9.8 15.7 18.6l0 64c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64l0-64C0 311.2 7.4 304.3 15.7 301.4 34.5 294.9 48 277 48 256s-13.5-38.9-32.3-45.4C7.4 207.7 0 200.8 0 192l0-64z\"]\n};\nvar faTicketAlt = faTicketSimple;\nvar faDove = {\n  prefix: 'fas',\n  iconName: 'dove',\n  icon: [512, 512, [128330], \"f4ba\", \"M496 64c13.2 0 20.7 15.1 12.8 25.6L480 128 480 304c0 79.5-64.5 144-144 144l-112 0-46.3 46.3c-10.4 10.4-26.5 12.4-39.1 4.8L41.5 440.9c-17-10.2-15-35.5 3.4-42.9L160 352C23.8 311.1 7.5 169.8 22 95.7 25.6 77.9 45.3 71.4 61.3 80.2L320 224 320 144c0-44.2 35.8-80 80-80l96 0zm-96 56a24 24 0 1 0 0 48 24 24 0 1 0 0-48zM182.5-9.6c12.4-13.7 33.3-8.9 42.5 7.1l56.4 98.3c-5.8 14.4-9.2 30.1-9.4 46.5L138.1 68c10.1-31.6 27-58.4 44.4-77.6z\"]\n};\nvar faTarpDroplet = {\n  prefix: 'fas',\n  iconName: 'tarp-droplet',\n  icon: [512, 512, [], \"e57c\", \"M256 160c35.3 0 64-26.9 64-60 0-24-33.7-70.1-52.2-93.5-6.1-7.7-17.5-7.7-23.6 0-18.5 23.4-52.2 69.5-52.2 93.5 0 33.1 28.7 60 64 60zM368 96c0 61.9-50.1 112-112 112S144 157.9 144 96c0-11.1 1.6-21.9 4.6-32L64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l277.5 0c17 0 33.3-6.7 45.3-18.7L493.3 322.7c12-12 18.7-28.3 18.7-45.3L512 128c0-35.3-28.7-64-64-64l-84.6 0c3 10.1 4.6 20.9 4.6 32zm85.5 176L336 389.5 336 296c0-13.3 10.7-24 24-24l93.5 0zM96 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faTreeCity = {\n  prefix: 'fas',\n  iconName: 'tree-city',\n  icon: [640, 512, [], \"e587\", \"M288 48c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 48 48 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 16 0c26.5 0 48 21.5 48 48l0 320c0 26.5-21.5 48-48 48l-256 0c-26.5 0-48-21.5-48-48l0-416zm64 64l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM352 304l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM528 192c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM512 304l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM96 480l0-160-16 0c-44.2 0-80-35.8-80-80 0-26.7 13.1-50.3 33.2-64.9-.8-4.9-1.2-10-1.2-15.1 0-53 43-96 96-96s96 43 96 96l0 96c0 35.3-28.7 64-64 64l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32z\"]\n};\nvar faTurnUp = {\n  prefix: 'fas',\n  iconName: 'turn-up',\n  icon: [384, 512, [10548, \"level-up-alt\"], \"f3bf\", \"M169.4 9.4c12.5-12.5 32.8-12.5 45.3 0l128 128c9.2 9.2 11.9 22.9 6.9 34.9S332.9 192 320 192l-64 0 0 160c0 88.4-71.6 160-160 160l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l64 0c17.7 0 32-14.3 32-32l0-160-64 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9l128-128z\"]\n};\nvar faLevelUpAlt = faTurnUp;\nvar faTemperatureQuarter = {\n  prefix: 'fas',\n  iconName: 'temperature-quarter',\n  icon: [320, 512, [\"temperature-1\", \"thermometer-1\", \"thermometer-quarter\"], \"f2ca\", \"M160 0C107 0 64 43 64 96l0 164.7C34.5 287 16 325.4 16 368 16 447.5 80.5 512 160 512s144-64.5 144-144c0-42.6-18.5-81-48-107.3L256 96c0-53-43-96-96-96zm64 368c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26.9 16.5-49.9 40-59.3l0-28.7c0-13.3 10.7-24 24-24s24 10.7 24 24l0 28.7c23.5 9.5 40 32.5 40 59.3z\"]\n};\nvar faTemperature1 = faTemperatureQuarter;\nvar faThermometer1 = faTemperatureQuarter;\nvar faThermometerQuarter = faTemperatureQuarter;\nvar faSliders = {\n  prefix: 'fas',\n  iconName: 'sliders',\n  icon: [512, 512, [\"sliders-h\"], \"f1de\", \"M32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l86.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L265.3 64C253 35.7 224.8 16 192 16s-61 19.7-73.3 48L32 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l246.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48l54.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-54.7 0c-12.3-28.3-40.5-48-73.3-48s-61 19.7-73.3 48L32 224zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l54.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-246.7 0c-12.3-28.3-40.5-48-73.3-48s-61 19.7-73.3 48L32 384z\"]\n};\nvar faSlidersH = faSliders;\nvar faMosque = {\n  prefix: 'fas',\n  iconName: 'mosque',\n  icon: [576, 512, [128332], \"f678\", \"M174.8 224l226.4 0c43.5 0 78.8-35.3 78.8-78.8 0-25.5-12.3-49.4-33.1-64.2L297.3-25.4c-5.6-3.9-13-3.9-18.5 0L129.1 81C108.3 95.8 96 119.7 96 145.2 96 188.7 131.3 224 174.8 224zM512 512c35.3 0 64-28.7 64-64l0-224c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48-448 0 0-48c0-17.7-14.3-32-32-32S0 206.3 0 224L0 448c0 35.3 28.7 64 64 64l448 0zM240 384c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80-96 0 0-80z\"]\n};\nvar faH = {\n  prefix: 'fas',\n  iconName: 'h',\n  icon: [384, 512, [104], \"48\", \"M320 288l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 160-256 0 0-160c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 256 0z\"]\n};\nvar faInfo = {\n  prefix: 'fas',\n  iconName: 'info',\n  icon: [192, 512, [], \"f129\", \"M48 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM0 192c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 256 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-224-32 0c-17.7 0-32-14.3-32-32z\"]\n};\nvar faPersonWalking = {\n  prefix: 'fas',\n  iconName: 'person-walking',\n  icon: [384, 512, [128694, \"walking\"], \"f554\", \"M192 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM105.4 227.9l22.6-22.6 0 69.3c0 28 12.2 54.7 33.5 72.9l71.4 61.2c5.9 5.1 9.8 12.1 10.9 19.8l12.6 88.1c2.5 17.5 18.7 29.7 36.2 27.2s29.7-18.7 27.2-36.2l-12.6-88.1c-3.3-23.1-14.9-44.1-32.6-59.3l-34.5-29.6 0-115.2 3.8 4.7c18.2 22.8 45.8 36 75 36l33.2 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-33.2 0c-9.7 0-18.9-4.4-25-12l-17.9-22.4c-23-28.8-57.9-45.6-94.8-45.6-32.2 0-63.1 12.8-85.8 35.6L60.1 182.6C42.1 200.6 32 225 32 250.5L32 288c0 17.7 14.3 32 32 32s32-14.3 32-32l0-37.5c0-8.5 3.4-16.6 9.4-22.6zm12.4 179.4c-1.5 5.2-4.3 10-8.1 13.8L41.4 489.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.3-68.3c11.5-11.5 19.9-25.8 24.4-41.5l2.2-7.6-46-39.4c-2.5-2.2-5-4.4-7.4-6.8l-10.4 36.2z\"]\n};\nvar faWalking = faPersonWalking;\nvar faArrowTurnDown = {\n  prefix: 'fas',\n  iconName: 'arrow-turn-down',\n  icon: [384, 512, [\"level-down\"], \"f149\", \"M32 64C14.3 64 0 49.7 0 32S14.3 0 32 0l96 0c53 0 96 43 96 96l0 306.7 73.4-73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-128 128c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 402.7 160 96c0-17.7-14.3-32-32-32L32 64z\"]\n};\nvar faLevelDown = faArrowTurnDown;\nvar faRoad = {\n  prefix: 'fas',\n  iconName: 'road',\n  icon: [512, 512, [128739], \"f018\", \"M223.9 32l-76.2 0c-29.4 0-55.1 20.1-62.1 48.6L1.4 420.5C-6.1 450.7 16.8 480 48 480l175.9 0 0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64 176.1 0c31.2 0 54.1-29.3 46.6-59.5L426.5 80.6C419.4 52.1 393.8 32 364.3 32l-76.4 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm64 192l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faSpiral = {\n  prefix: 'fas',\n  iconName: 'spiral',\n  icon: [512, 512, [], \"e80a\", \"M115.5 7.4c13.6-11.3 33.8-9.5 45.1 4.1s9.5 33.8-4.1 45.1C100.2 103.5 64 175.2 64 256 64 362 150 448 256 448s192-86 192-192c0-75.1-60.9-136-136-136S176 180.9 176 256c0 44.2 35.8 80 80 80s80-35.8 80-80c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-48.6 39.4-88 88-88s88 39.4 88 88c0 79.5-64.5 144-144 144S112 335.5 112 256c0-110.5 89.5-200 200-200s200 89.5 200 200c0 141.4-114.6 256-256 256S0 397.4 0 256C0 155.8 45 66.1 115.5 7.4z\"]\n};\nvar faFaceFrown = {\n  prefix: 'fas',\n  iconName: 'face-frown',\n  icon: [512, 512, [9785, \"frown\"], \"f119\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm90.6-113.9c-20.4-28-53.4-46.1-90.6-46.1s-70.2 18.1-90.6 46.1c-7.8 10.7-22.8 13.1-33.5 5.3s-13.1-22.8-5.3-33.5C155.7 330 202.8 304 256 304s100.3 26 129.4 65.9c7.8 10.7 5.4 25.7-5.3 33.5s-25.7 5.4-33.5-5.3zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faFrown = faFaceFrown;\nvar faWineGlassEmpty = {\n  prefix: 'fas',\n  iconName: 'wine-glass-empty',\n  icon: [320, 512, [\"wine-glass-alt\"], \"f5ce\", \"M64 0C48.7 0 35.6 10.8 32.6 25.7L3.2 173C1.1 183.5 0 194.2 0 205l0 3c0 77.4 55 142 128 156.8l0 115.2-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-115.2C265 350 320 285.4 320 208l0-3c0-10.7-1.1-21.4-3.2-32L287.4 25.7C284.4 10.8 271.3 0 256 0L64 0zm1.9 185.6L90.2 64 229.8 64 254.1 185.6c1.3 6.4 1.9 12.9 1.9 19.4l0 3c0 53-43 96-96 96s-96-43-96-96l0-3c0-6.5 .6-13 1.9-19.4z\"]\n};\nvar faWineGlassAlt = faWineGlassEmpty;\nvar faClapperboard = {\n  prefix: 'fas',\n  iconName: 'clapperboard',\n  icon: [512, 512, [], \"e131\", \"M448 64c2 0 3.9 .1 5.8 .3l-95.7 95.7 67.9 0 72-72c8.8 11 14 24.9 14 40l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l70.1 0-96 96 67.9 0 95-95 1-1 92.1 0-96 96 67.9 0 95-95 1-1 86.1 0z\"]\n};\nvar faForwardStep = {\n  prefix: 'fas',\n  iconName: 'forward-step',\n  icon: [384, 512, [\"step-forward\"], \"f051\", \"M21 36.8c12.9-7 28.7-6.3 41 1.8L320 208.1 320 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 384c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-144.1-258 169.6c-12.3 8.1-28 8.8-41 1.8S0 454.7 0 440L0 72C0 57.3 8.1 43.8 21 36.8z\"]\n};\nvar faStepForward = faForwardStep;\nvar faSquareUpRight = {\n  prefix: 'fas',\n  iconName: 'square-up-right',\n  icon: [448, 512, [8599, \"external-link-square-alt\"], \"f360\", \"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM168 160c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l35 35-67 67c-9.4 9.4-9.4 24.6 0 33.9l24 24c9.4 9.4 24.6 9.4 33.9 0l67-67 35 35c6.9 6.9 17.2 8.9 26.2 5.2S320 321.7 320 312l0-128c0-13.3-10.7-24-24-24l-128 0z\"]\n};\nvar faExternalLinkSquareAlt = faSquareUpRight;\nvar faBookJournalWhills = {\n  prefix: 'fas',\n  iconName: 'book-journal-whills',\n  icon: [448, 512, [\"journal-whills\"], \"f66a\", \"M96 512l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-66.7c18.6-6.6 32-24.4 32-45.3l0-288c0-26.5-21.5-48-48-48L96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96zM64 416c0-17.7 14.3-32 32-32l256 0 0 64-256 0c-17.7 0-32-14.3-32-32zM274.1 99.2c2.6-2.6 6.7-3.1 9.9-1.1 32.1 20 53.4 55.6 53.4 96.2 0 62.6-50.7 113.3-113.3 113.3S110.7 256.9 110.7 194.3c0-40.6 21.4-76.2 53.4-96.2 3.1-2 7.2-1.5 9.9 1.1s3.1 6.7 1.2 9.8c-5.2 8.6-8.2 18.7-8.2 29.5 0 15.1 5.9 28.8 15.5 39.1 2.5 2.7 2.9 6.7 .9 9.7-4.7 7.4-7.4 16.1-7.4 25.5 0 21.6 14.3 39.9 34 45.9l1-24.8c-7.1-4.4-11.8-12.2-11.8-21.1 0-9.6 5.5-18 13.5-22.1l3.3-81.8c.2-4.3 3.7-7.7 8-7.7s7.8 3.4 8 7.7l3.3 81.8c8 4.1 13.5 12.4 13.5 22.1 0 8.9-4.7 16.7-11.8 21.1l1 24.8c19.6-6 33.9-24.1 34-45.6l0-.6c-.1-9.3-2.7-17.9-7.4-25.2-1.9-3.1-1.6-7.1 .9-9.7 9.6-10.2 15.5-23.9 15.5-39.1 0-10.8-3-20.9-8.2-29.5-1.9-3.2-1.4-7.2 1.2-9.8z\"]\n};\nvar faJournalWhills = faBookJournalWhills;\nvar faChampagneGlasses = {\n  prefix: 'fas',\n  iconName: 'champagne-glasses',\n  icon: [640, 512, [129346, \"glass-cheers\"], \"f79f\", \"M155.6 17.3C163 3 179.9-3.6 195 1.9l125 45.6 125-45.6c15.1-5.5 32 1.1 39.4 15.4l78.8 152.9c28.8 55.8 10.3 122.3-38.5 156.6l31.3 86.2 41-15c16.6-6 35 2.5 41 19.1s-2.5 35-19.1 41c-47.4 17.3-94.8 34.5-142.2 51.8-16.6 6.1-35-2.5-41-19.1s2.5-35 19.1-41l41-15-31.3-86.2c-59.4 5.2-116.2-33.9-130-95.2l-14.6-64.7-14.6 64.7c-13.8 61.3-70.6 100.4-130 95.2l-31.3 86.2 41 15c16.6 6.1 25.2 24.4 19.1 41s-24.4 25.2-41 19.1c-47.4-17.3-94.8-34.6-142.2-51.8-16.6-6.1-25.2-24.4-19.1-41S26.3 392 42.9 398l41 15 31.3-86.2C66.5 292.5 48.1 226 76.9 170.2L155.6 17.3zm44 54.4l-27.2 52.8 89.2 32.5 13.1-57.9-75.1-27.4zm240.9 0l-75.1 27.4 13.1 57.9 89.2-32.5-27.2-52.8z\"]\n};\nvar faGlassCheers = faChampagneGlasses;\nvar faDumpster = {\n  prefix: 'fas',\n  iconName: 'dumpster',\n  icon: [576, 512, [], \"f793\", \"M132.3 64L106.7 192 24 192c-13.3 0-24-10.7-24-24l0-4.1c0-2.6 .4-5.1 1.2-7.6L26.5 80.4C29.8 70.6 39 64 49.3 64l83 0zm23.4 128l25.6-128 82.7 0 0 128-108.3 0zM312 64l82.7 0 25.6 128-108.3 0 0-128zm131.7 0l83 0c10.3 0 19.5 6.6 22.8 16.4l25.3 75.9c.8 2.4 1.2 5 1.2 7.6l0 4.1c0 13.3-10.7 24-24 24l-82.7 0-25.6-128zM25.7 240l524.7 0c-.4 2.1-13.3 73.4-38.9 213.7-3 16.3-17.9 27.6-34.4 26.1S448 464.6 448 448l0-16-320 0 0 16c0 16.6-12.6 30.4-29.1 31.9S67.5 470 64.5 453.7C39 313.3 26 242.1 25.7 240z\"]\n};\nvar faHeartCircleXmark = {\n  prefix: 'fas',\n  iconName: 'heart-circle-xmark',\n  icon: [576, 512, [], \"e501\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM432 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-36.7 36.7-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l36.7 36.7-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l36.7-36.7 36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-36.7-36.7 36.7-36.7z\"]\n};\nvar faComputer = {\n  prefix: 'fas',\n  iconName: 'computer',\n  icon: [576, 512, [], \"e4e5\", \"M348.8 32C340.7 46.1 336 62.5 336 80l0 16-272 0 0 224 272 0 0 64-272 0c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l284.8 0zM336 432c0 17.5 4.7 33.9 12.8 48L120 480c-13.3 0-24-10.7-24-24s10.7-24 24-24l216 0zM432 32l96 0c26.5 0 48 21.5 48 48l0 352c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-352c0-26.5 21.5-48 48-48zm24 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0zm56 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faWandMagic = {\n  prefix: 'fas',\n  iconName: 'wand-magic',\n  icon: [512, 512, [\"magic\"], \"f0d0\", \"M398.5 12.2l-88.2 88.2 101.3 101.3 88.2-88.2C507.6 105.6 512 95 512 84s-4.4-21.6-12.2-29.5L457.5 12.2C449.6 4.4 439 0 428 0s-21.6 4.4-29.5 12.2zM276.4 134.3L12.2 398.5C4.4 406.4 0 417 0 428s4.4 21.6 12.2 29.5l42.3 42.3C62.4 507.6 73 512 84 512s21.6-4.4 29.5-12.2L377.7 235.6 276.4 134.3z\"]\n};\nvar faMagic = faWandMagic;\nvar faBrain = {\n  prefix: 'fas',\n  iconName: 'brain',\n  icon: [512, 512, [129504], \"f5dc\", \"M120 56c0-30.9 25.1-56 56-56l24 0c17.7 0 32 14.3 32 32l0 448c0 17.7-14.3 32-32 32l-32 0c-29.8 0-54.9-20.4-62-48-.7 0-1.3 0-2 0-44.2 0-80-35.8-80-80 0-18 6-34.6 16-48-19.4-14.6-32-37.8-32-64 0-30.9 17.6-57.8 43.2-71.1-7.1-12-11.2-26-11.2-40.9 0-44.2 35.8-80 80-80l0-24zm272 0l0 24c44.2 0 80 35.8 80 80 0 15-4.1 29-11.2 40.9 25.7 13.3 43.2 40.1 43.2 71.1 0 26.2-12.6 49.4-32 64 10 13.4 16 30 16 48 0 44.2-35.8 80-80 80-.7 0-1.3 0-2 0-7.1 27.6-32.2 48-62 48l-32 0c-17.7 0-32-14.3-32-32l0-448c0-17.7 14.3-32 32-32l24 0c30.9 0 56 25.1 56 56z\"]\n};\nvar faBriefcaseMedical = {\n  prefix: 'fas',\n  iconName: 'briefcase-medical',\n  icon: [512, 512, [], \"f469\", \"M200 48l112 0c4.4 0 8 3.6 8 8l0 40-128 0 0-40c0-4.4 3.6-8 8-8zm-56 8l0 40-80 0C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-80 0 0-40c0-30.9-25.1-56-56-56L200 0c-30.9 0-56 25.1-56 56zm80 160c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"]\n};\nvar faHouseMedicalCircleExclamation = {\n  prefix: 'fas',\n  iconName: 'house-medical-circle-exclamation',\n  icon: [640, 512, [], \"e512\", \"M309.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S50.8 272 64 272l16 0 0 176c0 35.3 28.7 64 64 64l196 0c-21.2-29.5-34.3-65.3-35.9-104L272 408c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 20 0c34.9-48.5 91.7-80 156-80 10.7 0 21.1 .9 31.3 2.5L309.8 8.6zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nvar faCodeCommit = {\n  prefix: 'fas',\n  iconName: 'code-commit',\n  icon: [576, 512, [], \"f386\", \"M288 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm156.8-48C430 361 365.4 416 288 416S146 361 131.2 288L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l99.2 0C146 151 210.6 96 288 96s142 55 156.8 128l99.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-99.2 0z\"]\n};\nvar faPersonBreastfeeding = {\n  prefix: 'fas',\n  iconName: 'person-breastfeeding',\n  icon: [448, 512, [], \"e53a\", \"M224 0a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM436.8 382.8L373.5 462c-16.6 20.7-46.8 24.1-67.5 7.5-17.6-14.1-22.7-38.1-13.5-57.7l-.7-.1c-38.9-5.6-74.3-25.1-99.7-54.8l0-36.8c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48c0 .8 0 1.6 .1 2.4l101.4 50.7c23.7 11.9 33.3 40.7 21.5 64.4s-40.7 33.3-64.4 21.5L27.2 427.3c-1.1-.5-2.2-1.1-3.3-1.7-4.9-2.8-9.2-6.4-12.6-10.6-4.6-5.4-7.8-11.7-9.6-18.4-3.3-12-1.9-25.2 4.8-36.6 .6-1.1 1.3-2.2 2-3.2L75.6 256.1c26.7-40.1 71.7-64.1 119.8-64.1l75.2 0c46.5 0 90.1 22.5 117.2 60.3l50.7 70.9c2.2 3 4 6.1 5.5 9.4 2.9 6.7 4.3 13.8 4 20.8-.3 10.6-4.2 21-11.2 29.4zM320 332a44 44 0 1 0 -88 0 44 44 0 1 0 88 0z\"]\n};\nvar faPersonRays = {\n  prefix: 'fas',\n  iconName: 'person-rays',\n  icon: [512, 512, [], \"e54d\", \"M312.5 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7l46.3 62.4c10.5 14.2 30.6 17.2 44.8 6.6s17.2-30.6 6.6-44.8l-70.5-95C338.5 132 298.8 112 256.5 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6l46.3-62.4 0 275.3c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM7.5 7c-9.4 9.4-9.4 24.6 0 33.9l80 80c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L41.5 7C32.1-2.3 16.9-2.3 7.5 7zm464 0l-80 80c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0zM7.5 505c9.4 9.4 24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-80 80c-9.4 9.4-9.4 24.6 0 33.9zm464 0c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l80 80z\"]\n};\nvar faManatSign = {\n  prefix: 'fas',\n  iconName: 'manat-sign',\n  icon: [384, 512, [], \"e1d5\", \"M192 32c-13.3 0-24 10.7-24 24l0 41.5C73.3 109.3 0 190.1 0 288L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-62.5 44.8-114.5 104-125.8L168 456c0 13.3 10.7 24 24 24s24-10.7 24-24l0-293.8c59.2 11.2 104 63.3 104 125.8l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-97.9-73.3-178.7-168-190.5L216 56c0-13.3-10.7-24-24-24z\"]\n};\nvar faSort = {\n  prefix: 'fas',\n  iconName: 'sort',\n  icon: [384, 512, [\"unsorted\"], \"f0dc\", \"M2.4 204.2c5 12 16.6 19.8 29.6 19.8l320 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-160-160c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-9.2 9.2-11.9 22.9-6.9 34.9zm0 103.5c-5 12-2.2 25.7 6.9 34.9l160 160c12.5 12.5 32.8 12.5 45.3 0l160-160c9.2-9.2 11.9-22.9 6.9-34.9S364.9 288 352 288L32 288c-12.9 0-24.6 7.8-29.6 19.8z\"]\n};\nvar faUnsorted = faSort;\nvar faCircleRadiation = {\n  prefix: 'fas',\n  iconName: 'circle-radiation',\n  icon: [512, 512, [9762, \"radiation-alt\"], \"f7ba\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm80 0l64.3 0c8.7 0 15.7-7.1 17.3-15.6 4.4-24.4 18.1-45.5 37.2-59.7 7.4-5.5 10.6-15.6 6-23.6l-32.5-56.3c-4.3-7.5-13.9-10.3-21.2-5.5-48.2 31.5-81.3 84.2-86.3 144.8-.7 8.8 6.5 16 15.3 16zm137.9 89.8c-8.5-3.7-18.8-1.4-23.5 6.6l-31 53.8c-4.3 7.5-1.9 17.2 5.8 21.1 26.1 13.2 55.5 20.7 86.8 20.7s60.7-7.5 86.8-20.7c7.7-3.9 10.1-13.6 5.8-21.1l-31-53.8c-4.6-8-15-10.3-23.5-6.6-11.7 5-24.5 7.8-38.1 7.8s-26.4-2.8-38.1-7.8zM350.4 240.4c1.6 8.6 8.5 15.6 17.3 15.6l64.3 0c8.8 0 16.1-7.2 15.3-16-5-60.6-38.1-113.2-86.3-144.8-7.3-4.8-16.8-2-21.2 5.5L307.3 157c-4.6 8-1.4 18.1 6 23.6 19.1 14.2 32.7 35.4 37.2 59.7zM256 305.7a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"]\n};\nvar faRadiationAlt = faCircleRadiation;\nvar faLaptopCode = {\n  prefix: 'fas',\n  iconName: 'laptop-code',\n  icon: [640, 512, [], \"f5fc\", \"M64 96c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 240-64 0 0-240-384 0 0 240-64 0 0-240zM0 403.2C0 392.6 8.6 384 19.2 384l601.6 0c10.6 0 19.2 8.6 19.2 19.2 0 42.4-34.4 76.8-76.8 76.8L76.8 480C34.4 480 0 445.6 0 403.2zM281 209l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-48-48c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM393 175l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"]\n};\nvar faSink = {\n  prefix: 'fas',\n  iconName: 'sink',\n  icon: [512, 512, [], \"e06d\", \"M288 96c0-17.7 14.3-32 32-32s32 14.3 32 32 14.3 32 32 32 32-14.3 32-32c0-53-43-96-96-96s-96 43-96 96l0 192-64 0 0-40c0-30.9-25.1-56-56-56l-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c4.4 0 8 3.6 8 8l0 40-80 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 64c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-64c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 0-40c0-4.4 3.6-8 8-8l56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0c-30.9 0-56 25.1-56 56l0 40-64 0 0-192z\"]\n};\nvar faArrowUpFromWaterPump = {\n  prefix: 'fas',\n  iconName: 'arrow-up-from-water-pump',\n  icon: [640, 512, [], \"e4b6\", \"M144 32c-26.5 0-48 21.5-48 48l0 176-16 0c-26.5 0-48 21.5-48 48l0 79.6c17.6-2 36 2.5 51.3 14 3.4 2.6 6.1 1.4 9.8-.3l.8-.4c5.7-2.6 12.9-6.9 21.7-13.5 27.5-20.7 59.9-31.2 92.3-31.4 33.1-.2 66.3 10.2 94.4 31.4 22.1 16.6 29.1 16.6 51.2 0 27.5-20.7 59.9-31.2 92.4-31.4 33.1-.2 66.3 10.2 94.4 31.4 6.9 5.2 12.8 9 18 11.7 .6 .3 1.2 .6 1.8 1 4.2 2.3 8.5 4.6 12.6 1.5 10.7-8.1 22.9-12.7 35.3-14.1l0-79.5c0-26.5-21.5-48-48-48l-56 0 0-142.1 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L497 39c-9.4-9.4-24.6-9.4-33.9 0l-88 88c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 0 142.1-136 0 0-176c0-26.5-21.5-48-48-48L144 32zM474.6 476.1c19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7S7 482.3 17.6 490.3c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0z\"]\n};\nvar faMicrophoneLinesSlash = {\n  prefix: 'fas',\n  iconName: 'microphone-lines-slash',\n  icon: [576, 512, [\"microphone-alt-slash\"], \"f539\", \"M7-24.9c9.4-9.4 24.6-9.4 33.9 0l151 151 0-30.2c0-53 43-96 96-96 50.3 0 91.6 38.7 95.7 88L328 88c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0 0 48-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l55.7 0c-1.9 22.9-11.8 43.4-26.9 59l33.9 33.9c25.5-26 41.3-61.6 41.3-100.9l0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40c0 52.6-21.1 100.2-55.3 134.8L569 503.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 9.1C-2.3-.3-2.3-15.5 7-24.9zM297.8 367.7l41.4 41.4c-8.8 2.4-17.9 4.3-27.3 5.4l0 49.5 48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0 0-49.5C169.3 402.7 96 321.9 96 224l0-40c0-5.1 1.6-9.9 4.4-13.8l43.6 43.6 0 10.2c0 79.5 64.5 144 144 144 3.3 0 6.6-.1 9.8-.3z\"]\n};\nvar faMicrophoneAltSlash = faMicrophoneLinesSlash;\nvar faServer = {\n  prefix: 'fas',\n  iconName: 'server',\n  icon: [448, 512, [], \"f233\", \"M64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 32zm216 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 288zm216 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faUser = {\n  prefix: 'fas',\n  iconName: 'user',\n  icon: [448, 512, [128100, 62144, 62470, \"user-alt\", \"user-large\"], \"f007\", \"M224 248a120 120 0 1 0 0-240 120 120 0 1 0 0 240zm-29.7 56C95.8 304 16 383.8 16 482.3 16 498.7 29.3 512 45.7 512l356.6 0c16.4 0 29.7-13.3 29.7-29.7 0-98.5-79.8-178.3-178.3-178.3l-59.4 0z\"]\n};\nvar faUserAlt = faUser;\nvar faUserLarge = faUser;\nvar faSnowflake = {\n  prefix: 'fas',\n  iconName: 'snowflake',\n  icon: [512, 512, [10052, 10054], \"f2dc\", \"M288.2 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 62.1-15-15c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l49 49 0 70.6-61.2-35.3-17.9-66.9c-3.4-12.8-16.6-20.4-29.4-17S95.3 98 98.7 110.8l5.5 20.5-53.7-31C35.2 91.5 15.6 96.7 6.8 112s-3.6 34.9 11.7 43.7l53.7 31-20.5 5.5c-12.8 3.4-20.4 16.6-17 29.4s16.6 20.4 29.4 17l66.9-17.9 61.2 35.3-61.2 35.3-66.9-17.9c-12.8-3.4-26 4.2-29.4 17s4.2 26 17 29.4l20.5 5.5-53.7 31C3.2 365.1-2 384.7 6.8 400s28.4 20.6 43.7 11.7l53.7-31-5.5 20.5c-3.4 12.8 4.2 26 17 29.4s26-4.2 29.4-17l17.9-66.9 61.2-35.3 0 70.6-49 49c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l15-15 0 62.1c0 17.7 14.3 32 32 32s32-14.3 32-32l0-62.1 15 15c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-49-49 0-70.6 61.2 35.3 17.9 66.9c3.4 12.8 16.6 20.4 29.4 17s20.4-16.6 17-29.4l-5.5-20.5 53.7 31c15.3 8.8 34.9 3.6 43.7-11.7s3.6-34.9-11.7-43.7l-53.7-31 20.5-5.5c12.8-3.4 20.4-16.6 17-29.4s-16.6-20.4-29.4-17l-66.9 17.9-61.2-35.3 61.2-35.3 66.9 17.9c12.8 3.4 26-4.2 29.4-17s-4.2-26-17-29.4l-20.5-5.5 53.7-31c15.3-8.8 20.6-28.4 11.7-43.7s-28.4-20.5-43.7-11.7l-53.7 31 5.5-20.5c3.4-12.8-4.2-26-17-29.4s-26 4.2-29.4 17l-17.9 66.9-61.2 35.3 0-70.6 49-49c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-15 15 0-62.1z\"]\n};\nvar faTaurus = {\n  prefix: 'fas',\n  iconName: 'taurus',\n  icon: [384, 512, [], \"e84f\", \"M336-16c17.7 0 32 14.3 32 32 0 58.5-28.6 110.3-72.5 142.3 53.2 34.1 88.5 93.8 88.5 161.7 0 106-86 192-192 192S0 426 0 320C0 252.1 35.3 192.4 88.5 158.3 44.6 126.3 16 74.5 16 16 16-1.7 30.3-16 48-16S80-1.7 80 16c0 61.9 50.1 112 112 112S304 77.9 304 16c0-17.7 14.3-32 32-32zM192 192a128 128 0 1 0 0 256 128 128 0 1 0 0-256z\"]\n};\nvar faSkullCrossbones = {\n  prefix: 'fas',\n  iconName: 'skull-crossbones',\n  icon: [448, 512, [128369, 9760], \"f714\", \"M384 144C384 64.5 312.4 0 224 0S64 64.5 64 144c0 47.1 25.1 88.9 64 115.2l0 28.8c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-28.8c38.9-26.3 64-68.1 64-115.2zM160 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM445.5 339.7c-6.8-16.3-25.5-24-41.8-17.2L224 397.3 44.3 322.5c-16.3-6.8-35 .9-41.8 17.2s.9 35 17.2 41.8L140.8 432 19.7 482.5C3.4 489.3-4.3 508 2.5 524.3s25.5 24 41.8 17.2L224 466.7 403.7 541.5c16.3 6.8 35-.9 41.8-17.2s-.9-35-17.2-41.8L307.2 432 428.3 381.5c16.3-6.8 24-25.5 17.2-41.8z\"]\n};\nvar faPesoSign = {\n  prefix: 'fas',\n  iconName: 'peso-sign',\n  icon: [448, 512, [], \"e222\", \"M112 32C94.3 32 80 46.3 80 64l0 64-24 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 32-24 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 96 0c65.6 0 122-39.5 146.7-96l37.3 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-24.8 0c.5-5.3 .8-10.6 .8-16s-.3-10.7-.8-16l24.8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-37.3 0C362 71.5 305.6 32 240 32L112 32zm199.6 96l-167.6 0 0-32 96 0c28.4 0 54 12.4 71.6 32zM144 176l190.7 0c.9 5.2 1.3 10.5 1.3 16s-.5 10.8-1.3 16l-190.7 0 0-32zm167.6 80c-17.6 19.6-43.1 32-71.6 32l-96 0 0-32 167.6 0z\"]\n};\nvar faWineGlass = {\n  prefix: 'fas',\n  iconName: 'wine-glass',\n  icon: [320, 512, [127863], \"f4e3\", \"M32.6 25.7C35.6 10.8 48.7 0 64 0L256 0c15.3 0 28.4 10.8 31.4 25.7L316.8 173c2.1 10.5 3.2 21.2 3.2 32l0 3c0 77.4-55 142-128 156.8l0 115.2 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 544c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 0-115.2C55 350 0 285.4 0 208l0-3c0-10.7 1.1-21.4 3.2-32L32.6 25.7zM77.4 128l165.1 0-12.8-64-139.5 0-12.8 64z\"]\n};\nvar faTemperatureHalf = {\n  prefix: 'fas',\n  iconName: 'temperature-half',\n  icon: [320, 512, [127777, \"temperature-2\", \"thermometer-2\", \"thermometer-half\"], \"f2c9\", \"M160 0C107 0 64 43 64 96l0 164.7C34.5 287 16 325.4 16 368 16 447.5 80.5 512 160 512s144-64.5 144-144c0-42.6-18.5-81-48-107.3L256 96c0-53-43-96-96-96zm64 368c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26.9 16.5-49.9 40-59.3l0-92.7c0-13.3 10.7-24 24-24s24 10.7 24 24l0 92.7c23.5 9.5 40 32.5 40 59.3z\"]\n};\nvar faTemperature2 = faTemperatureHalf;\nvar faThermometer2 = faTemperatureHalf;\nvar faThermometerHalf = faTemperatureHalf;\nvar faTicket = {\n  prefix: 'fas',\n  iconName: 'ticket',\n  icon: [576, 512, [127903], \"f145\", \"M64 64C28.7 64 0 92.7 0 128l0 64C0 200.8 7.4 207.7 15.7 210.6 34.5 217.1 48 235 48 256s-13.5 38.9-32.3 45.4C7.4 304.3 0 311.2 0 320l0 64c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-64c0-8.8-7.4-15.7-15.7-18.6-18.8-6.5-32.3-24.4-32.3-45.4s13.5-38.9 32.3-45.4c8.3-2.9 15.7-9.8 15.7-18.6l0-64c0-35.3-28.7-64-64-64L64 64zM416 336l0-160-256 0 0 160 256 0zM112 160c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-288 0c-17.7 0-32-14.3-32-32l0-192z\"]\n};\nvar faWheatAwnCircleExclamation = {\n  prefix: 'fas',\n  iconName: 'wheat-awn-circle-exclamation',\n  icon: [640, 512, [], \"e598\", \"M496 576a144 144 0 1 1 0-288 144 144 0 1 1 0 288zM81 529c-9.4 9.3-24.5 9.3-33.9 0-9.4-9.4-9.4-24.6 0-33.9L81 529zm30.2-294.4c6.2-4.1 14.7-3.4 20.1 2.1l46.1 46.1 6.1 6.7c19.7 23.8 26.3 55 19.3 83.9 31.7-7.7 66.2 1 90.6 25.3l12 12c-.8 7-1.2 14.2-1.2 21.4 0 20 3 39.3 8.7 57.4-36.8 21.8-85 17-116.6-14.7L165.6 444.3 81 529C69.7 517.7 58.4 506.3 47 495l84.7-84.7-30.5-30.5c-37.5-37.5-37.5-98.3 0-135.7l7.4-7.4 2.5-2.1zM496 476a20 20 0 1 0 0 40 20 20 0 1 0 0-40zm0-140c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16 8.8 0 16-7.2 16-16l0-80c0-8.8-7.2-16-16-16zM215.2 130.6c6.2-4.1 14.7-3.4 20.1 2.1l46.1 46.1 6.1 6.7c19.7 23.8 26.3 55 19.3 83.9 24.2-5.9 50.1-2.1 71.9 10.8-32.2 24.9-56.2 59.8-67.4 100.1-3.8-2.8-7.5-6-11-9.5l-94.9-94.9c-37.5-37.5-37.5-98.3 0-135.7l7.4-7.4 2.5-2.1zM526.7 15c9.4-9.4 24.6-9.4 33.9 0 8.8 8.8 9.3 22.7 1.7 32.1L560.6 49 446.2 163.4c7.7 1 15.3 3 22.5 5.9L527 111c9.4-9.4 24.6-9.4 34 0 8.8 8.8 9.3 22.7 1.6 32.1l-1.7 1.8-52.7 52.7 39 39c3.2 3.2 4.7 7.4 4.7 11.6-17.7-5.4-36.5-8.3-55.9-8.3-34.2 0-66.3 8.9-94.1 24.6l-92.7-92.7c-37.5-37.5-37.5-98.3 0-135.8l7.4-7.4 2.5-2.1c6.2-4.1 14.7-3.4 20.1 2.1l39 39 52.7-52.7c9.4-9.4 24.6-9.4 34 0 8.8 8.8 9.3 22.7 1.6 32.1L465 49 406.7 107.3c2.8 7.1 4.7 14.5 5.8 22.1L526.7 15z\"]\n};\nvar faArrowsTurnRight = {\n  prefix: 'fas',\n  iconName: 'arrows-turn-right',\n  icon: [448, 512, [], \"e4c0\", \"M313.4-6.6c12.5-12.5 32.8-12.5 45.3 0l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L338.7 128 128 128c-35.3 0-64 28.7-64 64l0 32c0 17.7-14.3 32-32 32S0 241.7 0 224l0-32C0 121.3 57.3 64 128 64l210.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3zm-96 256c12.5-12.5 32.8-12.5 45.3 0l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 384 96 384c-17.7 0-32 14.3-32 32l0 32c0 17.7-14.3 32-32 32S0 465.7 0 448l0-32c0-53 43-96 96-96l146.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3z\"]\n};\nvar faCandyCane = {\n  prefix: 'fas',\n  iconName: 'candy-cane',\n  icon: [448, 512, [], \"f786\", \"M421.8 39.6C452 85.2 456.5 142.9 435.1 192l-165.4 0 41.4-41.4c.8-.8 1.5-1.6 2.2-2.4L421.8 39.6zM268 102.9c-.8 .7-1.6 1.4-2.4 2.2l-28.1 28.1c-25 25-65.5 25-90.5 0s-25-65.5 0-90.5L175 14.6C229.9-40.2 314.5-46.7 376.5-5.6L268 102.9zM125.7 336l80-80 181 0-82.5 82.5 0-2.5-178.5 0zm117 64L141.4 501.3c-25 25-65.5 25-90.5 0s-25-65.5 0-90.5l10.7-10.7 181 0z\"]\n};\nvar faWheelchair = {\n  prefix: 'fas',\n  iconName: 'wheelchair',\n  icon: [512, 512, [], \"f193\", \"M136 40a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM117.9 197.6l12.6 63c-38.6 12.4-66.5 48.7-66.5 91.4 0 53 43 96 96 96 35.6 0 66.7-19.4 83.3-48.2 2.3 .1 4.6 .2 7 .2l4.1 0c1 0 2.1 0 3.1 0l55.2 0c-20.4 64.9-81 112-152.7 112-88.4 0-160-71.6-160-160 0-73.8 50-135.9 117.9-154.4zm148.6-28.1l23.7 118.5 60.5 0c33.3 0 63.2 20.7 74.9 51.9l25.5 68 18.7-6.2c16.8-5.6 34.9 3.5 40.5 20.2s-3.5 34.9-20.2 40.5l-48 16c-16.3 5.4-34-3-40.1-19.1l-36.3-96.9c-2.3-6.2-8.3-10.4-15-10.4l-86.1 0c-.4 0-.8 0-1.3 0l-13.1 0c-30.5 0-56.8-21.5-62.8-51.4L165.3 189.7c-6.4-31.9 18-61.7 50.6-61.7 24.6 0 45.8 17.4 50.6 41.5z\"]\n};\nvar faSpellCheck = {\n  prefix: 'fas',\n  iconName: 'spell-check',\n  icon: [576, 512, [], \"f891\", \"M120 32c-48.6 0-88 39.4-88 88l0 168c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-168c0-48.6-39.4-88-88-88l-16 0zm40 128l-64 0 0-40c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24l0 40zM304 32c-17.7 0-32 14.3-32 32l0 224c0 17.7 14.3 32 32 32l72 0c48.6 0 88-39.4 88-88 0-23.6-9.3-45-24.4-60.8 10.3-14.4 16.4-32.1 16.4-51.2 0-48.6-39.4-88-88-88l-64 0zm64 112l-32 0 0-48 32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24zM336 256l0-48 40 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0zm233 84c11-13.8 8.8-33.9-5-45s-33.9-8.8-45 5l-105.7 132.1-38.7-38.7c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c6.4 6.4 15.3 9.8 24.4 9.3s17.5-4.9 23.2-12L569 340z\"]\n};\nvar faVolumeOff = {\n  prefix: 'fas',\n  iconName: 'volume-off',\n  icon: [320, 512, [], \"f026\", \"M96 352l-48 0c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48l48 0 134.1-119.2c6.4-5.7 14.6-8.8 23.1-8.8 19.2 0 34.8 15.6 34.8 34.8l0 378.4c0 19.2-15.6 34.8-34.8 34.8-8.5 0-16.7-3.1-23.1-8.8L96 352z\"]\n};\nvar faLungs = {\n  prefix: 'fas',\n  iconName: 'lungs',\n  icon: [576, 512, [129729], \"f604\", \"M320 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 141.9-32 19.2 0-116.7c0-24.5-19.9-44.4-44.4-44.4-12.5 0-24.4 5.3-32.8 14.5l-26.4 29C42.9 160.8 0 271.8 0 387l0 30.5c0 52.2 42.3 94.5 94.5 94.5 22 0 43.7-5.1 63.4-15l5-2.5c37.4-18.7 61-56.9 61-98.8l0-128 64-38.4 64 38.4 0 128c0 41.8 23.6 80.1 61 98.8l5 2.5c19.7 9.8 41.4 15 63.4 15 52.2 0 94.5-42.3 94.5-94.5l0-6.2c0-111.1-36.7-219-104.4-307L428.9 48.7c-8.1-10.6-20.7-16.7-34-16.7-23.7 0-42.9 19.2-42.9 42.9l0 118.2-32-19.2 0-141.9z\"]\n};\nvar faBookmark = {\n  prefix: 'fas',\n  iconName: 'bookmark',\n  icon: [384, 512, [128278, 61591], \"f02e\", \"M64 0C28.7 0 0 28.7 0 64L0 480c0 11.5 6.2 22.2 16.2 27.8s22.3 5.5 32.2-.4L192 421.3 335.5 507.4c9.9 5.9 22.2 6.1 32.2 .4S384 491.5 384 480l0-416c0-35.3-28.7-64-64-64L64 0z\"]\n};\nvar faBarcode = {\n  prefix: 'fas',\n  iconName: 'barcode',\n  icon: [448, 512, [], \"f02a\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32L64 64c0-17.7-14.3-32-32-32zm88 0c-13.3 0-24 10.7-24 24l0 400c0 13.3 10.7 24 24 24s24-10.7 24-24l0-400c0-13.3-10.7-24-24-24zm72 32l0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32s-32 14.3-32 32zm208-8l0 400c0 13.3 10.7 24 24 24s24-10.7 24-24l0-400c0-13.3-10.7-24-24-24s-24 10.7-24 24zm-96 0l0 400c0 13.3 10.7 24 24 24s24-10.7 24-24l0-400c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nvar faListOl = {\n  prefix: 'fas',\n  iconName: 'list-ol',\n  icon: [512, 512, [\"list-1-2\", \"list-numeric\"], \"f0cb\", \"M0 72C0 58.8 10.7 48 24 48l48 0c13.3 0 24 10.7 24 24l0 104 24 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-96 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-80-24 0C10.7 96 0 85.3 0 72zM30.4 301.2C41.8 292.6 55.7 288 70 288l4.9 0c33.7 0 61.1 27.4 61.1 61.1 0 19.6-9.4 37.9-25.2 49.4l-24 17.5 33.2 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-90.7 0C13.1 464 0 450.9 0 434.7 0 425.3 4.5 416.5 12.1 411l70.5-51.3c3.4-2.5 5.4-6.4 5.4-10.6 0-7.2-5.9-13.1-13.1-13.1L70 336c-3.9 0-7.7 1.3-10.8 3.6L38.4 355.2c-10.6 8-25.6 5.8-33.6-4.8S-1 324.8 9.6 316.8l20.8-15.6zM224 64l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faList12 = faListOl;\nvar faListNumeric = faListOl;\nvar faFileCircleXmark = {\n  prefix: 'fas',\n  iconName: 'file-circle-xmark',\n  icon: [576, 512, [], \"e5a1\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faCube = {\n  prefix: 'fas',\n  iconName: 'cube',\n  icon: [512, 512, [], \"f1b2\", \"M224.3-2.5c19.8-11.4 44.2-11.4 64 0L464.2 99c19.8 11.4 32 32.6 32 55.4l0 203c0 22.9-12.2 44-32 55.4L288.3 514.5c-19.8 11.4-44.2 11.4-64 0L48.5 413c-19.8-11.4-32-32.6-32-55.4l0-203c0-22.9 12.2-44 32-55.4L224.3-2.5zm207.8 360l0-166.1-143.8 83 0 166.1 143.8-83z\"]\n};\nvar faTape = {\n  prefix: 'fas',\n  iconName: 'tape',\n  icon: [576, 512, [], \"f4db\", \"M412.8 416c41.5-40.7 67.2-97.3 67.2-160 0-123.7-100.3-224-224-224S32 132.3 32 256 132.3 480 256 480l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-131.2 0zM256 160a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm48 96a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nvar faBomb = {\n  prefix: 'fas',\n  iconName: 'bomb',\n  icon: [576, 512, [128163], \"f1e2\", \"M480-16c6.9 0 13 4.4 15.2 10.9l13.5 40.4 40.4 13.5C555.6 51 560 57.1 560 64s-4.4 13-10.9 15.2l-40.4 13.5-13.5 40.4C493 139.6 486.9 144 480 144s-13-4.4-15.2-10.9l-13.5-40.4-40.4-13.5C404.4 77 400 70.9 400 64s4.4-13 10.9-15.2l40.4-13.5 13.5-40.4C467-11.6 473.1-16 480-16zM321.4 97.4c12.5-12.5 32.8-12.5 45.3 0l80 80c12.5 12.5 12.5 32.8 0 45.3l-10.9 10.9c7.9 22 12.2 45.7 12.2 70.5 0 114.9-93.1 208-208 208S32 418.9 32 304 125.1 96 240 96c24.7 0 48.5 4.3 70.5 12.3l10.9-10.9zM144 304c0-53 43-96 96-96 13.3 0 24-10.7 24-24s-10.7-24-24-24c-79.5 0-144 64.5-144 144 0 13.3 10.7 24 24 24s24-10.7 24-24z\"]\n};\nvar faScaleUnbalanced = {\n  prefix: 'fas',\n  iconName: 'scale-unbalanced',\n  icon: [640, 512, [\"balance-scale-left\"], \"f515\", \"M519.8 62.4c16.8-5.6 25.8-23.7 20.2-40.5S516.3-3.9 499.6 1.6l-113 37.7c-13.9-23.5-39.6-39.3-68.9-39.3-44.2 0-80 35.8-80 80 0 3 .2 5.9 .5 8.8L115.6 129.6c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l135.5-45.2c4.5 3.2 9.3 5.9 14.4 8.2l0 326.7c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-294.7c21-9.2 37.2-27 44.2-49l125.9-42zM437.3 288l72.4-124.2 72.4 124.2-144.9 0zm72.4 96c62.9 0 115.2-34 126-78.9 2.6-11-1-22.3-6.7-32.1L533.8 109.8c-5-8.6-14.2-13.8-24.1-13.8s-19.1 5.3-24.1 13.8L390.4 273.1c-5.7 9.8-9.3 21.1-6.7 32.1 10.8 44.8 63.1 78.9 126 78.9zM126.8 291.8l72.4 124.2-144.9 0 72.4-124.2zM.9 433.1C11.7 478 64 512 126.8 512s115.2-34 126-78.9c2.6-11-1-22.3-6.7-32.1L150.9 237.8c-5-8.6-14.2-13.8-24.1-13.8s-19.1 5.3-24.1 13.8L7.6 401.1c-5.7 9.8-9.3 21.1-6.7 32.1z\"]\n};\nvar faBalanceScaleLeft = faScaleUnbalanced;\nvar faSquareCaretLeft = {\n  prefix: 'fas',\n  iconName: 'square-caret-left',\n  icon: [448, 512, [\"caret-square-left\"], \"f191\", \"M0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416zM128 256c0-6.7 2.8-13 7.7-17.6l112-104c7-6.5 17.2-8.2 25.9-4.4S288 142.5 288 152l0 208c0 9.5-5.7 18.2-14.4 22s-18.9 2.1-25.9-4.4l-112-104c-4.9-4.5-7.7-10.9-7.7-17.6z\"]\n};\nvar faCaretSquareLeft = faSquareCaretLeft;\nvar faRuler = {\n  prefix: 'fas',\n  iconName: 'ruler',\n  icon: [576, 512, [128207], \"f545\", \"M209.1 516.2c-18.7 18.7-49.1 18.7-67.9 0L28.1 403.1c-18.7-18.7-18.7-49.1 0-67.9l17-17 73.5 73.5c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-73.5-73.5 33.9-33.9 50.9 50.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-50.9-50.9 33.9-33.9 73.5 73.5c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-73.5-73.5 33.9-33.9 50.9 50.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-50.9-50.9 33.9-33.9 73.5 73.5c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-73.5-73.5 17-17c18.7-18.7 49.1-18.7 67.9 0L548.5 108.9c18.7 18.7 18.7 49.1 0 67.9L209.1 516.2z\"]\n};\nvar faI = {\n  prefix: 'fas',\n  iconName: 'i',\n  icon: [320, 512, [105], \"49\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l96 0 0 320-96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0 0-320 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32z\"]\n};\nvar faVolumeXmark = {\n  prefix: 'fas',\n  iconName: 'volume-xmark',\n  icon: [576, 512, [\"volume-mute\", \"volume-times\"], \"f6a9\", \"M48 352l48 0 134.1 119.2c6.4 5.7 14.6 8.8 23.1 8.8 19.2 0 34.8-15.6 34.8-34.8l0-378.4c0-19.2-15.6-34.8-34.8-34.8-8.5 0-16.7 3.1-23.1 8.8L96 160 48 160c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48zM367 175c-9.4 9.4-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0z\"]\n};\nvar faVolumeMute = faVolumeXmark;\nvar faVolumeTimes = faVolumeXmark;\nvar faArchway = {\n  prefix: 'fas',\n  iconName: 'archway',\n  icon: [512, 512, [], \"f557\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0 0-128c0-53 43-96 96-96s96 43 96 96l0 128 128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-272-448 0 0 272z\"]\n};\nvar faPersonDigging = {\n  prefix: 'fas',\n  iconName: 'person-digging',\n  icon: [576, 512, [\"digging\"], \"f85e\", \"M208 40a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM10.5 181.3c5.9-11.9 20.3-16.7 32.2-10.7l24.6 12.3 12.2-20.4c18.9-31.5 53.2-50.5 89.6-50.5 46.2 0 87.7 30.5 100.5 75.4l32.2 112.7 92.9 46.4 25.8-43c5.8-9.6 16.2-15.5 27.4-15.5s21.7 5.9 27.4 15.5l96 160c5.9 9.9 6.1 22.2 .4 32.2S555.5 512 544 512l-192 0c-11.5 0-22.2-6.2-27.8-16.2s-5.5-22.3 .4-32.2L370 387.8 21.3 213.5c-11.9-5.9-16.7-20.3-10.7-32.2zM94.3 307.4l112 56c10.8 5.4 17.7 16.5 17.7 28.6l0 88c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-68.2-61.3-30.7-36.3 109c-5.6 16.8-23.7 25.8-40.5 20.2S-3.9 486.6 1.7 469.9l48-144c2.9-8.8 9.5-15.9 18.1-19.4s18.3-3.2 26.6 .9z\"]\n};\nvar faDigging = faPersonDigging;\nvar faGaugeHigh = {\n  prefix: 'fas',\n  iconName: 'gauge-high',\n  icon: [512, 512, [62461, \"tachometer-alt\", \"tachometer-alt-fast\"], \"f625\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM256 416c35.3 0 64-28.7 64-64 0-16.2-6-31.1-16-42.3l69.5-138.9c5.9-11.9 1.1-26.3-10.7-32.2s-26.3-1.1-32.2 10.7L261.1 288.2c-1.7-.1-3.4-.2-5.1-.2-35.3 0-64 28.7-64 64s28.7 64 64 64zM176 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM96 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm352-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faTachometerAlt = faGaugeHigh;\nvar faTachometerAltFast = faGaugeHigh;\nvar faGenderless = {\n  prefix: 'fas',\n  iconName: 'genderless',\n  icon: [384, 512, [], \"f22d\", \"M192 128a128 128 0 1 1 0 256 128 128 0 1 1 0-256zm0 320a192 192 0 1 0 0-384 192 192 0 1 0 0 384z\"]\n};\nvar faCloudSun = {\n  prefix: 'fas',\n  iconName: 'cloud-sun',\n  icon: [640, 512, [9925], \"f6c4\", \"M208.3 192c43.1 0 80.5 24.4 99.2 60.1 14.7-17.2 36.4-28.1 60.8-28.1 44.2 0 80 35.8 80 80 0 5.5-.6 10.9-1.6 16 .5 0 1.1 0 1.6 0 53 0 96 43 96 96s-43 96-96 96l-320 0c-53 0-96-43-96-96 0-42.5 27.7-78.5 66-91.2-1.3-6.8-2-13.7-2-20.8 0-61.9 50.1-112 112-112zm192-223.8c5.3 0 10.3 2.7 13.3 7.1l47.3 70.4 83.3-16.3c5.2-1 10.6 .7 14.3 4.4 3.8 3.8 5.4 9.2 4.4 14.4l-16.3 83.3 70.4 47.3c4.4 3 7.1 8 7.1 13.3 0 5.3-2.6 10.3-7 13.2l-70.4 47.3 14.5 74.2c-17.2-21.7-40.4-38.4-67.2-47.3-2.5-12.7-6.9-24.6-12.8-35.7 9.6-14.9 15.2-32.7 15.2-51.7 0-53-43-96-96-96-47.9 0-87.6 35.1-94.8 80.9-20.9-16-45.9-27-73.1-31.1l21.5-14.5-16.3-83.2-.3-2c-.3-4.6 1.3-9.1 4.6-12.4 3.8-3.8 9.2-5.4 14.4-4.4l83.3 16.3 47.3-70.4 1.2-1.6c3-3.5 7.4-5.5 12.1-5.5zm0 175.8c26.5 0 48 21.5 48 48 0 3.8-.5 7.6-1.4 11.1-21.7-16.9-48.9-27.1-78.6-27.1-4.6 0-9.1 .2-13.5 .7 6.4-19 24.3-32.7 45.5-32.7z\"]\n};\nvar faArrowRight = {\n  prefix: 'fas',\n  iconName: 'arrow-right',\n  icon: [512, 512, [8594], \"f061\", \"M502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l370.7 0-105.4 105.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z\"]\n};\nvar faHandshake = {\n  prefix: 'fas',\n  iconName: 'handshake',\n  icon: [576, 512, [129309, 62662, \"handshake-alt\", \"handshake-simple\"], \"f2b5\", \"M268.9 85.2L152.3 214.8c-4.6 5.1-4.4 13 .5 17.9 30.5 30.5 80 30.5 110.5 0l31.8-31.8c4.2-4.2 9.5-6.5 14.9-6.9 6.8-.6 13.8 1.7 19 6.9L505.6 376 576 320 576 32 464 96 440.2 80.1C424.4 69.6 405.9 64 386.9 64l-70.4 0c-1.1 0-2.3 0-3.4 .1-16.9 .9-32.8 8.5-44.2 21.1zM116.6 182.7L223.4 64 183.8 64c-25.5 0-49.9 10.1-67.9 28.1L112 96 0 32 0 320 156.4 450.3c23 19.2 52 29.7 81.9 29.7l15.7 0-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l41 41 9 0c19.1 0 37.8-4.3 54.8-12.3L359 441c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l32 32 17.5-17.5c8.9-8.9 11.5-21.8 7.6-33.1l-137.9-136.8-14.9 14.9c-49.3 49.3-129.1 49.3-178.4 0-23-23-23.9-59.9-2.2-84z\"]\n};\nvar faHandshakeAlt = faHandshake;\nvar faHandshakeSimple = faHandshake;\nvar faPersonSkiing = {\n  prefix: 'fas',\n  iconName: 'person-skiing',\n  icon: [576, 512, [9975, \"skiing\"], \"f7c9\", \"M416 56a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM2.7 300.9c6.1-11.8 20.6-16.3 32.4-10.2l197.8 102.7 62.3-87.2-82-92.2c-11-12.4-16.2-27.5-16.2-42.4l111.6 53.4 42.9 48.2c14.9 16.7 16.2 41.6 3.2 59.8l-64.4 90.2 128.3 66.6c13.6 7.1 29.8 7.2 43.6 .3l15.2-7.6c11.9-5.9 26.3-1.1 32.2 10.7s1.1 26.3-10.7 32.2l-15.2 7.6c-27.5 13.7-59.9 13.5-87.2-.7L12.9 333.3C1.2 327.2-3.4 312.7 2.7 300.9zM103 49.6l18 8.7 8.7-17.4c4-7.9 13.6-11.1 21.5-7.2s11.1 13.6 7.2 21.5l-8.5 17 84.8 41 .4-.2 76.1-33.8c31.3-13.9 67.9-.7 83.2 29.9l28.9 57.8 68.7 27.5c16.4 6.6 24.4 25.2 17.8 41.6s-25.2 24.4-41.6 17.8L393.8 224c-10.9-4.4-19.8-12.6-25.1-23.1l-11.5-23.1c-16.4 9.4-25.9 14.8-28.5 16.3l-7.6-3.7-185.6-89.6-9.2 18.3c-4 7.9-13.6 11.1-21.5 7.2s-11.1-13.6-7.2-21.5l9-17.9-17.6-8.5C81.1 74.6 77.8 65 81.6 57S95 45.7 103 49.6z\"]\n};\nvar faSkiing = faPersonSkiing;\nvar faBridgeWater = {\n  prefix: 'fas',\n  iconName: 'bridge-water',\n  icon: [640, 512, [], \"e4ce\", \"M64 64l512 0 0 112c-37.6 9.4-64 43.2-64 82l0 76.4c-21-9.7-43.5-14.5-66-14.4-10 .1-20.1 1.1-30 3.1l0-35.1c0-53-43-96-96-96s-96 43-96 96l0 32.7c-5.3-.5-10.7-.8-16-.7-27.7 .2-55.4 7.8-80 23l0-85c0-38.8-26.4-72.6-64-82L64 64zM403.4 444.1C379.1 462.3 351.1 480 320 480s-59.1-17.7-83.4-35.9c-21.3-16.1-49.9-16.1-71.2 0-23.8 17.9-54.1 35.5-88.1 35.3-20.4-.1-40.7-6.7-59.8-21.1-10.6-8-12.7-23-4.7-33.6s23-12.7 33.6-4.7c11.3 8.5 21.6 11.4 31.2 11.5 17.6 .1 37.3-9.4 58.9-25.7 38.4-29 90.5-29 129 0 24 18.1 40.7 26.3 54.5 26.3s30.5-8.2 54.5-26.3c38.4-29 90.5-29 129 0 16.9 12.7 32.9 21.5 47.8 24.6 13.7 2.8 27.4 .9 42.3-10.3 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-26.4 19.9-54.2 24.4-80.7 19.1-25.3-5.1-48.1-18.9-67.2-33.3-21.3-16.1-49.9-16.1-71.2 0z\"]\n};\nvar faBuildingNgo = {\n  prefix: 'fas',\n  iconName: 'building-ngo',\n  icon: [576, 512, [], \"e4d7\", \"M128 0C92.7 0 64 28.7 64 64l0 384c0 35.3 28.7 64 64 64l48 0 0-112c0-35.3 28.7-64 64-64l208 0 0-272c0-35.3-28.7-64-64-64L128 0zm32 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM304 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM160 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm144-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM520 380c-24.3 0-44 19.7-44 44l0 80c0 24.3 19.7 44 44 44l16 0c24.3 0 44-19.7 44-44l0-80c0-24.3-19.7-44-44-44l-16 0zm-4 44c0-2.2 1.8-4 4-4l16 0c2.2 0 4 1.8 4 4l0 80c0 2.2-1.8 4-4 4l-16 0c-2.2 0-4-1.8-4-4l0-80zm-168 0l0 80c0 24.3 19.7 44 44 44l16 0c24.3 0 44-19.7 44-44l0-24c0-11-9-20-20-20l-8 0c-11 0-20 9-20 20 0 6.5 3.1 12.4 8 16l0 8c0 2.2-1.8 4-4 4l-16 0c-2.2 0-4-1.8-4-4l0-80c0-2.2 1.8-4 4-4l20.4 0c1.9 9.1 9.9 16 19.6 16 11 0 20-9 20-20 0-19.9-16.1-36-36-36l-24 0c-24.3 0-44 19.7-44 44zm-90.1-32.9c-4.1-8.3-13.5-12.7-22.5-10.5S220 390.7 220 400l0 128c0 11 9 20 20 20s20-9 20-20l0-43.3 26.1 52.2c4.1 8.3 13.5 12.7 22.5 10.5S324 537.3 324 528l0-128c0-11-9-20-20-20s-20 9-20 20l0 43.3-26.1-52.2z\"]\n};\nvar faIgloo = {\n  prefix: 'fas',\n  iconName: 'igloo',\n  icon: [576, 512, [], \"f7ae\", \"M320 33.8l0 126.2-271.5 0c51.7-77.2 139.6-128 239.5-128 10.8 0 21.5 .6 32 1.8zM368 160l0-116.7c66 19 122.2 61 159.5 116.7L368 160zM22.6 208l73.4 0 0 112-96 0c0-39.7 8-77.6 22.6-112zM176 320l-32 0 0-112 288 0 0 112-32 0 0 48 176 0 0 64c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48l0-64 176 0 0-48zm304 0l0-112 73.4 0C568 242.4 576 280.3 576 320l-96 0zM288 288c-35.3 0-64 28.7-64 64l0 80 128 0 0-80c0-35.3-28.7-64-64-64z\"]\n};\nvar faCircleDollarToSlot = {\n  prefix: 'fas',\n  iconName: 'circle-dollar-to-slot',\n  icon: [576, 512, [\"donate\"], \"f4b9\", \"M96 224a192 192 0 1 1 384 0 192 192 0 1 1 -384 0zm176-92l0 4c-28.8 .3-52 23.7-52 52.5 0 25.7 18.5 47.6 43.9 51.8l41.7 7c6 1 10.4 6.2 10.4 12.3 0 6.9-5.6 12.5-12.5 12.5L248 272c-11 0-20 9-20 20s9 20 20 20l24 0 0 4c0 11 9 20 20 20s20-9 20-20l0-4.7c25-4.1 44-25.7 44-51.8 0-25.7-18.5-47.6-43.9-51.8l-41.7-7c-6-1-10.4-6.2-10.4-12.3 0-6.9 5.6-12.5 12.5-12.5l47.5 0c11 0 20-9 20-20s-9-20-20-20l-8 0 0-4c0-11-9-20-20-20s-20 9-20 20zM48 344l0 104c0 8.8 7.2 16 16 16l448 0c8.8 0 16-7.2 16-16l0-104c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 344c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faDonate = faCircleDollarToSlot;\nvar faY = {\n  prefix: 'fas',\n  iconName: 'y',\n  icon: [384, 512, [121], \"59\", \"M58 45.4C47.8 31 27.8 27.7 13.4 38S-4.3 68.2 6 82.6L160 298.3 160 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-149.7 154-215.7c10.3-14.4 6.9-34.4-7.4-44.6S336.2 31 326 45.4L192 232.9 58 45.4z\"]\n};\nvar faFaceSmileWink = {\n  prefix: 'fas',\n  iconName: 'face-smile-wink',\n  icon: [512, 512, [128521, \"smile-wink\"], \"f4da\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM165.4 321.9c20.4 28 53.4 46.1 90.6 46.1s70.2-18.1 90.6-46.1c7.8-10.7 22.8-13.1 33.5-5.3s13.1 22.8 5.3 33.5C356.3 390 309.2 416 256 416s-100.3-26-129.4-65.9c-7.8-10.7-5.4-25.7 5.3-33.5s25.7-5.4 33.5 5.3zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm164 8c0 11-9 20-20 20s-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0c-11 0-20 9-20 20z\"]\n};\nvar faSmileWink = faFaceSmileWink;\nvar faDiceFour = {\n  prefix: 'fas',\n  iconName: 'dice-four',\n  icon: [448, 512, [9859], \"f524\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm160 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM352 160a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faFaceGrinSquintTears = {\n  prefix: 'fas',\n  iconName: 'face-grin-squint-tears',\n  icon: [576, 512, [129315, \"grin-squint-tears\"], \"f586\", \"M560 35.4c0 25.6-18.8 47.3-44.1 50.9L469.1 93c-10.6 1.5-19.6-7.5-18.1-18.1l6.7-46.7C461.3 2.8 483-16 508.6-16 537-16 560 7 560 35.4zM403.5 68.1c-6 42.2 30.2 78.4 72.4 72.4l37.8-5.4C565.7 232 550.8 355.3 469 437s-205 96.6-301.9 44.7l5.4-37.8c6-42.2-30.2-78.4-72.4-72.4l-37.8 5.4C10.3 280 25.2 156.7 107 75S312-21.7 408.9 30.3l-5.4 37.8zM417.8 201c-19.1 36.4-45.6 72.7-78.9 106s-69.6 59.8-106 78.9c-11.1 5.8-12.4 21.4-1.1 26.6 59.2 27.5 131.8 16.8 180.6-32s59.5-121.4 32-180.6c-5.3-11.3-20.8-10-26.6 1.1zM113.9 270.6c1.7 8 9 13.4 17.1 12.7l43.1-3.9-3.9 43.1c-.7 8.1 4.7 15.5 12.7 17.1s15.9-2.9 18.4-10.6l28-84.6c1.9-5.7 .4-12.1-3.9-16.3s-10.6-5.8-16.3-3.9l-84.6 28c-7.7 2.6-12.3 10.5-10.6 18.5zM315.2 99.1c.7-8.1-4.7-15.5-12.7-17.1s-15.9 2.9-18.5 10.6l-28 84.6c-1.9 5.7-.4 12.1 3.9 16.3s10.6 5.8 16.3 3.9l84.6-28c7.7-2.6 12.3-10.5 10.6-18.4s-9-13.4-17.1-12.7l-43.1 3.9 3.9-43.1zM60.1 425.7l46.7-6.7c10.6-1.5 19.6 7.5 18.1 18.1l-6.7 46.7C114.7 509.2 93 528 67.4 528 39 528 16 505 16 476.6 16 451 34.8 429.3 60.1 425.7z\"]\n};\nvar faGrinSquintTears = faFaceGrinSquintTears;\nvar faFileAudio = {\n  prefix: 'fas',\n  iconName: 'file-audio',\n  icon: [384, 512, [], \"f1c7\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zm53.8 185.2c-9.1-6.3-21.5-4.1-27.8 5s-4.1 21.5 5 27.8c23.9 16.7 39.4 44.3 39.4 75.5s-15.6 58.9-39.4 75.5c-9.1 6.3-11.3 18.8-5 27.8s18.8 11.3 27.8 5c34.1-23.8 56.6-63.5 56.6-108.3S296 267.5 261.8 243.7zM80 312c-8.8 0-16 7.2-16 16l0 48c0 8.8 7.2 16 16 16l24 0 27.2 34c3 3.8 7.6 6 12.5 6l.3 0c8.8 0 16-7.2 16-16l0-128c0-8.8-7.2-16-16-16l-.3 0c-4.9 0-9.5 2.2-12.5 6l-27.2 34-24 0zm128 72.2c0 10.7 10.5 18.2 18.9 11.6 12.9-10.3 21.1-26.1 21.1-43.8s-8.2-33.5-21.1-43.8c-8.4-6.7-18.9 .9-18.9 11.6l0 64.5z\"]\n};\nvar faArrowsDownToLine = {\n  prefix: 'fas',\n  iconName: 'arrows-down-to-line',\n  icon: [512, 512, [], \"e4b8\", \"M214.6 310.6l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 274.7 96 32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 242.7 9.4-9.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm256 0l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l9.4 9.4 0-242.7c0-17.7 14.3-32 32-32s32 14.3 32 32l0 242.7 9.4-9.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512z\"]\n};\nvar faG = {\n  prefix: 'fas',\n  iconName: 'g',\n  icon: [448, 512, [103], \"47\", \"M224 96C135.6 96 64 167.6 64 256s71.6 160 160 160c77.4 0 142-55 156.8-128L256 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l144 0c25.8 0 49.6 21.4 47.2 50.6-9.5 115-105.8 205.4-223.2 205.4-123.7 0-224-100.3-224-224S100.3 32 224 32c57.4 0 109.7 21.6 149.3 57 13.2 11.8 14.3 32 2.5 45.2s-32 14.3-45.2 2.5C302.3 111.4 265 96 224 96z\"]\n};\nvar faVihara = {\n  prefix: 'fas',\n  iconName: 'vihara',\n  icon: [576, 512, [], \"f6a7\", \"M273.6-3.2c8.5-6.4 20.3-6.4 28.8 0L443.2 102.4c8.3 6.2 18.4 9.6 28.8 9.6 13.3 0 24 10.7 24 24s-10.7 24-24 24l-24 0 0 48 58.7 64 13.3 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 48 24.4 32 15.6 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-128 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-128 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-40 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l22.1 0 17.9-32 0-48-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l13.3 0 58.7-64 0-48-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24c10.4 0 20.5-3.4 28.8-9.6L273.6-3.2zM128 368l320 0 0-48-320 0 0 48zM384 160l-192 0 0 48 192 0 0-48z\"]\n};\nvar faFlagCheckered = {\n  prefix: 'fas',\n  iconName: 'flag-checkered',\n  icon: [448, 512, [127937], \"f11e\", \"M32 0C49.7 0 64 14.3 64 32l0 16 69-17.2c38.1-9.5 78.3-5.1 113.5 12.5 46.3 23.2 100.8 23.2 147.1 0l9.6-4.8C423.8 28.1 448 43.1 448 66.1l0 279.7c0 13.3-8.3 25.3-20.8 30l-34.7 13c-46.2 17.3-97.6 14.6-141.7-7.4-37.9-19-81.4-23.7-122.5-13.4L64 384 64 480c0 17.7-14.3 32-32 32S0 497.7 0 480L0 32C0 14.3 14.3 0 32 0zM64 187.1l64-13.9 0 65.5-64 13.9 0 65.5 48.8-12.2c5.1-1.3 10.1-2.4 15.2-3.3l0-63.9 38.9-8.4c8.3-1.8 16.7-2.5 25.1-2.1l0-64c13.6 .4 27.2 2.6 40.4 6.4l23.6 6.9 0 66.7-41.7-12.3c-7.3-2.1-14.8-3.4-22.3-3.8l0 71.4c21.8 1.9 43.3 6.7 64 14.4l0-69.8 22.7 6.7c13.5 4 27.3 6.4 41.3 7.4l0-64.2c-7.8-.8-15.6-2.3-23.2-4.5l-40.8-12 0-62c-13-3.8-25.8-8.8-38.2-15-8.2-4.1-16.9-7-25.8-8.8l0 72.4c-13-.4-26 .8-38.7 3.6l-25.3 5.5 0-75.2-64 16 0 73.1zM320 335.7c16.8 1.5 33.9-.7 50-6.8l14-5.2 0-71.7-7.9 1.8c-18.4 4.3-37.3 5.7-56.1 4.5l0 77.4zm64-149.4l0-70.8c-20.9 6.1-42.4 9.1-64 9.1l0 69.4c13.9 1.4 28 .5 41.7-2.6l22.3-5.2z\"]\n};\nvar faGaugeSimple = {\n  prefix: 'fas',\n  iconName: 'gauge-simple',\n  icon: [512, 512, [\"gauge-simple-med\", \"tachometer-average\"], \"f629\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm320 96c0-26.9-16.5-49.9-40-59.3L280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 172.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faGaugeSimpleMed = faGaugeSimple;\nvar faTachometerAverage = faGaugeSimple;\nvar faRightLeft = {\n  prefix: 'fas',\n  iconName: 'right-left',\n  icon: [512, 512, [\"exchange-alt\"], \"f362\", \"M502.6 150.6l-96 96c-9.2 9.2-22.9 11.9-34.9 6.9S352 236.9 352 224l0-64-320 0c-17.7 0-32-14.3-32-32S14.3 96 32 96l320 0 0-64c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l96 96c12.5 12.5 12.5 32.8 0 45.3zm-397.3 352l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c9.2-9.2 22.9-11.9 34.9-6.9S160 275.1 160 288l0 64 320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-320 0 0 64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9z\"]\n};\nvar faExchangeAlt = faRightLeft;\nvar faPills = {\n  prefix: 'fas',\n  iconName: 'pills',\n  icon: [512, 512, [], \"f484\", \"M64 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 112-96 0 0-112zM176 368c0-48.7 18.1-93.2 48-127l0-129C224 50.1 173.9 0 112 0S0 50.1 0 112L0 400c0 61.9 50.1 112 112 112 37.3 0 70.3-18.2 90.7-46.3-17-28.6-26.7-62-26.7-97.7zm64.7 67.4c4.6 8.7 16.3 9.7 23.3 2.7L438.1 264c7-7 6-18.7-2.7-23.3-20.1-10.7-43-16.7-67.4-16.7-79.5 0-144 64.5-144 144 0 24.3 6 47.3 16.7 67.4zM297.9 472c-7 7-6 18.7 2.7 23.3 20.1 10.7 43 16.7 67.4 16.7 79.5 0 144-64.5 144-144 0-24.3-6-47.3-16.7-67.4-4.6-8.7-16.3-9.7-23.3-2.7L297.9 472z\"]\n};\nvar faExplosion = {\n  prefix: 'fas',\n  iconName: 'explosion',\n  icon: [512, 512, [], \"e4e9\", \"M256-32c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24zm0 160c12.4 0 22.7 9.4 23.9 21.7L293.4 291.6 467.6 11.3c6.7-10.7 20.5-14.5 31.7-8.5s15.8 19.5 10.6 31L372.8 338.6c2.2 2.3 4.3 4.7 6.3 7.1l97.2-54.7c10.5-5.9 23.6-3.1 30.9 6.4s6.3 23-2.2 31.5l-87 87-71.4 0c-13.2-37.3-48.7-64-90.5-64s-77.4 26.7-90.5 64l-79.6 0-75.5-52.3C.6 357-2.8 344.1 2.4 333.5s17.4-15.9 28.7-12.4l97.2 30.4c3-3.9 6.1-7.6 9.4-11.3L75.4 236.3c-6.1-10.1-3.9-23.1 5.1-30.7s22.2-7.5 31.1 .1L214 293.6c1.5-.4 3-.8 4.5-1.1l13.6-142.7c1.2-12.3 11.5-21.7 23.9-21.7zM32 464l456 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0z\"]\n};\nvar faArrowsDownToPeople = {\n  prefix: 'fas',\n  iconName: 'arrows-down-to-people',\n  icon: [512, 512, [], \"e4b9\", \"M113 153c-9.4 9.4-24.6 9.4-33.9 0L15 89C5.7 79.6 5.7 64.4 15 55S39.6 45.7 49 55L72 78.1 72-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 86.1 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-64 64zm320 0c-9.4 9.4-24.6 9.4-33.9 0L335 89c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l23 23 0-86.1c0-13.3 10.7-24 24-24s24 10.7 24 24l0 86.1 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-64 64zM256 192a56 56 0 1 1 0 112 56 56 0 1 1 0-112zm0 160c53 0 96 43 96 96l0 32c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-32c0-53 43-96 96-96zM32 288a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm352 0a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM80 368c15.3 0 29.6 4.3 41.8 11.8-6.3 16.2-9.8 33.8-9.8 52.2l0 48c0 11.4 2.4 22.2 6.7 32l-87.8 0C13.8 512 0 498.2 0 481.1L0 448c0-44.2 35.8-80 80-80zM393.3 512c4.3-9.8 6.7-20.6 6.7-32l0-48c0-18.4-3.5-36-9.8-52.2 12.2-7.5 26.5-11.8 41.8-11.8 44.2 0 80 35.8 80 80l0 33.1c0 17-13.8 30.9-30.9 30.9l-87.8 0z\"]\n};\nvar faUsersViewfinder = {\n  prefix: 'fas',\n  iconName: 'users-viewfinder',\n  icon: [576, 512, [], \"e595\", \"M64 0C28.7 0 0 28.7 0 64l0 72c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72c0-8.8 7.2-16 16-16l72 0c13.3 0 24-10.7 24-24S149.3 0 136 0L64 0zM440 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0c8.8 0 16 7.2 16 16l0 72c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72c0-35.3-28.7-64-64-64L440 0zM48 376c0-13.3-10.7-24-24-24S0 362.7 0 376l0 72c0 35.3 28.7 64 64 64l72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0c-8.8 0-16-7.2-16-16l0-72zm528 0c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72c0 8.8-7.2 16-16 16l-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0c35.3 0 64-28.7 64-64l0-72zM288 216a56 56 0 1 0 0-112 56 56 0 1 0 0 112zm0 40c-53 0-96 43-96 96l0 24c0 13.3 10.7 24 24 24l144 0c13.3 0 24-10.7 24-24l0-24c0-53-43-96-96-96zm192-64a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM168 272.3c-49.3 4.1-88 45.3-88 95.7l0 10.7c0 11.8 9.6 21.3 21.3 21.3l46.8 0c-2.7-7.5-4.1-15.6-4.1-24l0-24c0-29.5 8.8-56.9 24-79.7zM427.9 400l46.8 0c11.8 0 21.3-9.6 21.3-21.3l0-10.7c0-50.3-38.7-91.6-88-95.7 15.2 22.8 24 50.2 24 79.7l0 24c0 8.4-1.4 16.5-4.1 24zM192 192a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nvar faCarOn = {\n  prefix: 'fas',\n  iconName: 'car-on',\n  icon: [448, 512, [], \"e4dd\", \"M248-8c0-13.3-10.7-24-24-24S200-21.3 200-8l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64zM145.3 208l157.5 0c6.7 0 12.6 4.1 15 10.4l26.1 69.6-239.6 0 26.1-69.6c2.3-6.2 8.3-10.4 15-10.4zM34 292.8l-1.3 3.4C13.2 307.1 0 328 0 352L0 480c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-32 288 0 0 32c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-128c0-24-13.2-44.9-32.8-55.9l-1.3-3.4-36.3-96.9c-11.7-31.2-41.6-51.9-74.9-51.9l-157.5 0c-33.3 0-63.2 20.7-74.9 51.9L34 292.8zM96 336a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm224 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM7 7C-2.3 16.4-2.3 31.6 7 41L55 89c9.4 9.4 24.6 9.4 33.9 0S98.3 64.4 89 55L41 7C31.6-2.3 16.4-2.3 7 7zM407 7L359 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9S416.4-2.3 407 7z\"]\n};\nvar faSleigh = {\n  prefix: 'fas',\n  iconName: 'sleigh',\n  icon: [640, 512, [], \"f7cc\", \"M64 32C46.3 32 32 46.3 32 64S46.3 96 64 96l0 160c0 41.8 26.7 77.4 64 90.5l0 69.5-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l504 0c44.2 0 80-35.8 80-80l0-8c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 8c0 17.7-14.3 32-32 32l-80 0 0-64c53 0 96-43 96-96l0-96c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32l0 32c0 35.3-28.7 64-64 64l-48.9 0c-48.5 0-92.8-27.4-114.5-70.8l-25.2-50.5C237.7 59.4 193.4 32 144.9 32L64 32zM432 416l-256 0 0-64 256 0 0 64z\"]\n};\nvar faDumbbell = {\n  prefix: 'fas',\n  iconName: 'dumbbell',\n  icon: [640, 512, [], \"f44b\", \"M96 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 112 256 0 0-112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 16 16 0c26.5 0 48 21.5 48 48l0 48c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48c0 26.5-21.5 48-48 48l-16 0 0 16c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-112-256 0 0 112c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-16-16 0c-26.5 0-48-21.5-48-48l0-48c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-48c0-26.5 21.5-48 48-48l16 0 0-16z\"]\n};\nvar faBabyCarriage = {\n  prefix: 'fas',\n  iconName: 'baby-carriage',\n  icon: [512, 512, [\"carriage-baby\"], \"f77d\", \"M64 208l0 80c0 53 43 96 96 96l192 0c53 0 96-43 96-96l0-112 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0c-13.3 0-24 10.7-24 24l0 56-336 0zm.2-48l223.8 0 0-128c0-17.7-14.3-32-32-32L232 0C141.9 0 68.4 70.9 64.2 160zM160 464a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm288 0a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nvar faCarriageBaby = faBabyCarriage;\nvar faKiwiBird = {\n  prefix: 'fas',\n  iconName: 'kiwi-bird',\n  icon: [576, 512, [], \"f535\", \"M291.2 388.4c31.2-18.8 64.7-36.4 101.1-36.4l55.7 0c4.6 0 9.1-.2 13.6-.7l85.3 121.9c4 5.7 11.3 8.2 17.9 6.1S576 471 576 464l0-240c0-70.7-57.3-128-128-128l-55.7 0C355.9 96 322.4 78.4 291.2 59.6 262.3 42.1 228.3 32 192 32 86 32 0 118 0 224 0 295.1 38.6 357.1 96 390.3L96 456c0 13.3 10.7 24 24 24s24-10.7 24-24l0-46c15.3 3.9 31.4 6 48 6 5.4 0 10.7-.2 16-.7l0 40.7c0 13.3 10.7 24 24 24s24-10.7 24-24l0-50.9c12.4-4.4 24.2-10 35.2-16.7zM448 200a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faCalendarXmark = {\n  prefix: 'fas',\n  iconName: 'calendar-xmark',\n  icon: [448, 512, [\"calendar-times\"], \"f273\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zM291.9 220.1c-9.4-9.4-24.6-9.4-33.9 0l-33.9 33.9-33.9-33.9c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l33.9 33.9-33.9 33.9c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l33.9-33.9 33.9 33.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-33.9-33.9 33.9-33.9c9.4-9.4 9.4-24.6 0-33.9z\"]\n};\nvar faCalendarTimes = faCalendarXmark;\nvar faCircleDown = {\n  prefix: 'fas',\n  iconName: 'circle-down',\n  icon: [512, 512, [61466, \"arrow-alt-circle-down\"], \"f358\", \"M256 0a256 256 0 1 0 0 512 256 256 0 1 0 0-512zM244.7 387.3l-104-104c-4.6-4.6-5.9-11.5-3.5-17.4s8.3-9.9 14.8-9.9l56 0 0-96c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 96 56 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-104 104c-6.2 6.2-16.4 6.2-22.6 0z\"]\n};\nvar faArrowAltCircleDown = faCircleDown;\nvar faFileMedical = {\n  prefix: 'fas',\n  iconName: 'file-medical',\n  icon: [384, 512, [], \"f477\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM160 280l0 40-40 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l40 0 0 40c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-40 40 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-40 0 0-40c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"]\n};\nvar faXmark = {\n  prefix: 'fas',\n  iconName: 'xmark',\n  icon: [384, 512, [128473, 10005, 10006, 10060, 215, \"close\", \"multiply\", \"remove\", \"times\"], \"f00d\", \"M55.1 73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L147.2 256 9.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192.5 301.3 329.9 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.8 256 375.1 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192.5 210.7 55.1 73.4z\"]\n};\nvar faClose = faXmark;\nvar faMultiply = faXmark;\nvar faRemove = faXmark;\nvar faTimes = faXmark;\nvar faShapes = {\n  prefix: 'fas',\n  iconName: 'shapes',\n  icon: [512, 512, [\"triangle-circle-square\"], \"f61f\", \"M256 0c11.2 0 21.7 5.9 27.4 15.5l96 160c5.9 9.9 6.1 22.2 .4 32.2S363.5 224 352 224l-192 0c-11.5 0-22.2-6.2-27.8-16.2s-5.5-22.3 .4-32.2l96-160C234.3 5.9 244.8 0 256 0zM128 272a112 112 0 1 1 0 224 112 112 0 1 1 0-224zm200 16l112 0c22.1 0 40 17.9 40 40l0 112c0 22.1-17.9 40-40 40l-112 0c-22.1 0-40-17.9-40-40l0-112c0-22.1 17.9-40 40-40z\"]\n};\nvar faTriangleCircleSquare = faShapes;\nvar faDiceOne = {\n  prefix: 'fas',\n  iconName: 'dice-one',\n  icon: [448, 512, [9856], \"f525\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faLockOpen = {\n  prefix: 'fas',\n  iconName: 'lock-open',\n  icon: [576, 512, [], \"f3c1\", \"M384 96c0-35.3 28.7-64 64-64s64 28.7 64 64l0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32c0-70.7-57.3-128-128-128S320 25.3 320 96l0 64-160 0c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64l-32 0 0-64z\"]\n};\nvar faPepperHot = {\n  prefix: 'fas',\n  iconName: 'pepper-hot',\n  icon: [576, 512, [127798], \"f816\", \"M545 65c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L478.9 63.2C452.3 43.6 419.5 32 384 32 348.9 32 316.5 43.3 290.1 62.4 274.1 74.1 284.2 96 304 96l24 0c13.3 0 24 10.7 24 24l0 80c0 13.3 10.7 24 24 24l80 0c13.3 0 24 10.7 24 24l0 24c0 19.8 21.9 29.9 33.6 13.9 19.1-26.4 30.4-58.8 30.4-93.9 0-35.5-11.6-68.3-31.2-94.9L545 65zM270 135.5l-159.6 228C101.3 376.4 86.7 384 71 384l-7 0c-26.5 0-48 21.5-48 48s21.5 48 48 48l27.1 0c65.7 0 129.7-20.2 183.5-57.8L440.5 306.1C435 295.9 432 284.2 432 272l-56 0c-39.8 0-72-32.2-72-72l0-56c-12.2 0-23.9-3-34-8.5z\"]\n};\nvar faDropletSlash = {\n  prefix: 'fas',\n  iconName: 'droplet-slash',\n  icon: [576, 512, [\"tint-slash\"], \"f5c7\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L463.6 397.8c10.5-23.8 16.4-50.1 16.4-77.8 0-91.2-130.2-274.1-166.6-323.5-5.9-8-15.2-12.5-25.2-12.5l-.4 0c-10 0-19.3 4.5-25.2 12.5-15.6 21.2-48.5 66.9-80.9 119.4L41-24.9zm92 227.7c-21.6 43.8-37 85.9-37 117.2 0 106 86 192 192 192 43.4 0 83.4-14.4 115.5-38.6L133 202.8z\"]\n};\nvar faTintSlash = faDropletSlash;\nvar faDroplet = {\n  prefix: 'fas',\n  iconName: 'droplet',\n  icon: [384, 512, [128167, \"tint\"], \"f043\", \"M192 512C86 512 0 426 0 320 0 228.8 130.2 45.9 166.6-3.5 172.5-11.5 181.8-16 191.8-16l.4 0c10 0 19.3 4.5 25.2 12.5 36.4 49.4 166.6 232.3 166.6 323.5 0 106-86 192-192 192zM112 312c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 75.1 60.9 136 136 136 13.3 0 24-10.7 24-24s-10.7-24-24-24c-48.6 0-88-39.4-88-88z\"]\n};\nvar faTint = faDroplet;\nvar faFileLines = {\n  prefix: 'fas',\n  iconName: 'file-lines',\n  icon: [384, 512, [128441, 128462, 61686, \"file-alt\", \"file-text\"], \"f15c\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM120 256c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nvar faFileAlt = faFileLines;\nvar faFileText = faFileLines;\nvar faCommentsDollar = {\n  prefix: 'fas',\n  iconName: 'comments-dollar',\n  icon: [576, 512, [], \"f653\", \"M192 320c106 0 192-78.8 192-176S298-32 192-32 0 46.8 0 144c0 39.6 14.3 76.2 38.4 105.6L2.8 316.8C-2.1 326.1-.4 337.5 7 345s18.9 9.2 28.2 4.2L116.8 306c23.1 9 48.5 14 75.2 14zm3.2 48c16.4 81.9 94.7 144 188.8 144 26.7 0 52.1-5 75.2-14l81.6 43.2c9.3 4.9 20.7 3.2 28.2-4.2s9.2-18.9 4.2-28.2l-35.6-67.2c24.1-29.4 38.4-66 38.4-105.6 0-82.4-61.7-151.5-145-170.7-11.5 115.8-115.8 201.2-235.8 202.7zM196 32c11 0 20 9 20 20l0 4 8 0c11 0 20 9 20 20s-9 20-20 20l-47.5 0c-6.9 0-12.5 5.6-12.5 12.5 0 6.1 4.4 11.3 10.4 12.3l41.7 7c25.3 4.2 43.9 26.1 43.9 51.8 0 26.1-19 47.7-44 51.8l0 4.7c0 11-9 20-20 20s-20-9-20-20l0-4-24 0c-11 0-20-9-20-20s9-20 20-20l55.5 0c6.9 0 12.5-5.6 12.5-12.5 0-6.1-4.4-11.3-10.4-12.3l-41.7-7c-25.3-4.2-43.9-26.1-43.9-51.8 0-28.8 23.2-52.2 52-52.5l0-4c0-11 9-20 20-20z\"]\n};\nvar faMagnifyingGlassLocation = {\n  prefix: 'fas',\n  iconName: 'magnifying-glass-location',\n  icon: [512, 512, [\"search-location\"], \"f689\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM288 176c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 48.8 46.5 111.6 68.6 138.6 6 7.3 16.8 7.3 22.7 0 22.1-27 68.6-89.8 68.6-138.6zm-112 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faSearchLocation = faMagnifyingGlassLocation;\nvar faFileInvoice = {\n  prefix: 'fas',\n  iconName: 'file-invoice',\n  icon: [384, 512, [], \"f570\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-277.5c0-17-6.7-33.3-18.7-45.3L258.7 18.7C246.7 6.7 230.5 0 213.5 0L64 0zM325.5 176L232 176c-13.3 0-24-10.7-24-24L208 58.5 325.5 176zM64 384l0-64c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32L96 416c-17.7 0-32-14.3-32-32zM88 64l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24S74.7 64 88 64zm0 96l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faPentagon = {\n  prefix: 'fas',\n  iconName: 'pentagon',\n  icon: [576, 512, [], \"e790\", \"M316.4-3.1c-16.8-12.2-39.6-12.2-56.4 0L35.3 160.2c-16.8 12.2-23.9 33.9-17.4 53.7l85.8 264.1c6.4 19.8 24.9 33.2 45.7 33.2l277.7 0c20.8 0 39.2-13.4 45.7-33.2l85.8-264.1c6.4-19.8-.6-41.4-17.4-53.7L316.4-3.1z\"]\n};\nvar faRepublican = {\n  prefix: 'fas',\n  iconName: 'republican',\n  icon: [640, 512, [], \"f75e\", \"M0 192C0 103.6 71.6 32 160 32l224 0c88.4 0 160 71.6 160 160l0 64-544 0 0-64zm152-32a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm232 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM280 160a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM128 288l416 0 0 112c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48c0-17.7 14.3-32 32-32s32 14.3 32 32l0 48c0 44.2-35.8 80-80 80s-80-35.8-80-80l0-48-32 0 0 96c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64-192 0 0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-160 128 0z\"]\n};\nvar faShop = {\n  prefix: 'fas',\n  iconName: 'shop',\n  icon: [576, 512, [\"store-alt\"], \"f54f\", \"M21.5 181.1L78.3 67.4C89.2 45.7 111.3 32 135.6 32l304.9 0c24.2 0 46.4 13.7 57.2 35.4l56.8 113.7c3.6 7.2 5.5 15.1 5.5 23.2 0 27.3-21.2 49.7-48 51.6L512 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-192-96 0 0 176c0 26.5-21.5 48-48 48l-192 0c-26.5 0-48-21.5-48-48l0-176.1c-26.8-1.9-48-24.3-48-51.6 0-8 1.9-16 5.5-23.2zM128 256l0 112c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16l0-112-160 0z\"]\n};\nvar faStoreAlt = faShop;\nvar faFilm = {\n  prefix: 'fas',\n  iconName: 'film',\n  icon: [448, 512, [127902, 62368, \"film-alt\", \"film-simple\"], \"f008\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM48 368l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm304-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM48 240l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm304-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM48 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L64 96c-8.8 0-16 7.2-16 16zM352 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0z\"]\n};\nvar faFilmAlt = faFilm;\nvar faFilmSimple = faFilm;\nvar faBuildingCircleXmark = {\n  prefix: 'fas',\n  iconName: 'building-circle-xmark',\n  icon: [576, 512, [], \"e4d4\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-10.5-14.6-19-30.7-25.1-48l-74.9 0 0-80c0-17.7 14.3-32 32-32l32 0c2 0 4 .2 5.9 .5 6-23.6 16.3-45.4 30.1-64.5l-4 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 4c27.5-19.8 60.3-32.4 96-35.4L416 64c0-35.3-28.7-64-64-64L96 0zm32 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm22.6-144l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L454.6 400z\"]\n};\nvar faComments = {\n  prefix: 'fas',\n  iconName: 'comments',\n  icon: [576, 512, [128490, 61670], \"f086\", \"M384 144c0 97.2-86 176-192 176-26.7 0-52.1-5-75.2-14L35.2 349.2c-9.3 4.9-20.7 3.2-28.2-4.2s-9.2-18.9-4.2-28.2l35.6-67.2C14.3 220.2 0 183.6 0 144 0 46.8 86-32 192-32S384 46.8 384 144zm0 368c-94.1 0-172.4-62.1-188.8-144 120-1.5 224.3-86.9 235.8-202.7 83.3 19.2 145 88.3 145 170.7 0 39.6-14.3 76.2-38.4 105.6l35.6 67.2c4.9 9.3 3.2 20.7-4.2 28.2s-18.9 9.2-28.2 4.2L459.2 498c-23.1 9-48.5 14-75.2 14z\"]\n};\nvar faTags = {\n  prefix: 'fas',\n  iconName: 'tags',\n  icon: [576, 512, [], \"f02c\", \"M401.2 39.1L549.4 189.4c27.7 28.1 27.7 73.1 0 101.2L393 448.9c-9.3 9.4-24.5 9.5-33.9 .2s-9.5-24.5-.2-33.9L515.3 256.8c9.2-9.3 9.2-24.4 0-33.7L367 72.9c-9.3-9.4-9.2-24.6 .2-33.9s24.6-9.2 33.9 .2zM32.1 229.5L32.1 96c0-35.3 28.7-64 64-64l133.5 0c17 0 33.3 6.7 45.3 18.7l144 144c25 25 25 65.5 0 90.5L285.4 418.7c-25 25-65.5 25-90.5 0l-144-144c-12-12-18.7-28.3-18.7-45.3zm144-85.5a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faGun = {\n  prefix: 'fas',\n  iconName: 'gun',\n  icon: [576, 512, [], \"e19b\", \"M528 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 8-448 0C14.3 64 0 78.3 0 96L0 208c0 17.7 14.3 32 32 32l10 0c20.8 0 36.1 19.6 31 39.8L33 440.2c-2.4 9.6-.2 19.7 5.8 27.5S54.1 480 64 480l96 0c14.7 0 27.5-10 31-24.2L217 352 321.4 352c23.7 0 44.8-14.9 52.7-37.2l26.7-74.8 31.1 0c8.5 0 16.6-3.4 22.6-9.4l22.6-22.6 66.7 0c17.7 0 32-14.3 32-32l0-80c0-17.7-14.3-32-32-32l-16 0 0-8zM321.4 304l-92.5 0 16-64 105 0-21 58.7c-1.1 3.2-4.2 5.3-7.5 5.3zM80 128l384 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 160c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"]\n};\nvar faCircleCheck = {\n  prefix: 'fas',\n  iconName: 'circle-check',\n  icon: [512, 512, [61533, \"check-circle\"], \"f058\", \"M256 512a256 256 0 1 1 0-512 256 256 0 1 1 0 512zM374 145.7c-10.7-7.8-25.7-5.4-33.5 5.3L221.1 315.2 169 263.1c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c5 5 11.8 7.5 18.8 7s13.4-4.1 17.5-9.8L379.3 179.2c7.8-10.7 5.4-25.7-5.3-33.5z\"]\n};\nvar faCheckCircle = faCircleCheck;\nvar faScorpio = {\n  prefix: 'fas',\n  iconName: 'scorpio',\n  icon: [640, 512, [], \"e84e\", \"M368 32c61.9 0 112 50.1 112 112l0 289.7c0 7.9 6.4 14.3 14.3 14.3 3.9 0 7.6-1.6 10.2-4.3l40.1-41.1-9.7-9.7c-6.9-6.9-8.9-17.2-5.2-26.2S542.3 352 552 352l64 0 2.5 .1c12.1 1.2 21.5 11.5 21.5 23.9l0 64-.3 3.6c-1.2 8.2-6.7 15.3-14.5 18.6-9 3.7-19.3 1.6-26.2-5.2l-9.1-9.1-39.6 40.6c-14.7 15.1-34.9 23.6-56 23.6-43.3 0-78.3-35.1-78.3-78.3L416 144c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 304c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-304c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 304c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-320c0-16.6-12.6-30.2-28.7-31.8l-6.6-.3C44.6 94.2 32 80.6 32 64 32 46.3 46.3 32 64 32 91 32 115.3 43.1 132.7 61 152.6 43 179 32 208 32 239.3 32 267.7 44.9 288 65.7 308.3 44.9 336.6 32 368 32z\"]\n};\nvar faIdCardClip = {\n  prefix: 'fas',\n  iconName: 'id-card-clip',\n  icon: [576, 512, [\"id-card-alt\"], \"f47f\", \"M256-32l64 0c17.7 0 32 14.3 32 32l0 64-128 0 0-64c0-17.7 14.3-32 32-32zM64 32l112 0 0 32c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-32 112 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32zM176 400c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-64 0c-44.2 0-80 35.8-80 80zM288 280a56 56 0 1 0 0-112 56 56 0 1 0 0 112z\"]\n};\nvar faIdCardAlt = faIdCardClip;\nvar faMoon = {\n  prefix: 'fas',\n  iconName: 'moon',\n  icon: [512, 512, [127769, 9214], \"f186\", \"M256 0C114.6 0 0 114.6 0 256S114.6 512 256 512c68.8 0 131.3-27.2 177.3-71.4 7.3-7 9.4-17.9 5.3-27.1s-13.7-14.9-23.8-14.1c-4.9 .4-9.8 .6-14.8 .6-101.6 0-184-82.4-184-184 0-72.1 41.5-134.6 102.1-164.8 9.1-4.5 14.3-14.3 13.1-24.4S322.6 8.5 312.7 6.3C294.4 2.2 275.4 0 256 0z\"]\n};\nvar faOilWell = {\n  prefix: 'fas',\n  iconName: 'oil-well',\n  icon: [576, 512, [], \"e532\", \"M528.3 61.3c-11.4-42.7-55.3-68-98-56.6L414.9 8.8C397.8 13.4 387.7 31 392.3 48l24.5 91.4-108.2 28.1-6.3-18.1C297.7 136.6 285.6 128 272 128s-25.7 8.6-30.2 21.4l-13.6 39-132.2 34.3 0-38.6c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 264-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-137.3 0-61.4-175.4-62.2 16.1 22.1 63.2-66.6 0 19.9-56.9-74.6 19.3-46.7 133.5-41.3 0 0-159.2 337.4-87.5 25.2 94c4.6 17.1 22.1 27.2 39.2 22.6l15.5-4.1c42.7-11.4 68-55.3 56.6-98L528.3 61.3zM205.1 448l16.8-48 100.2 0 16.8 48-133.8 0z\"]\n};\nvar faTachographDigital = {\n  prefix: 'fas',\n  iconName: 'tachograph-digital',\n  icon: [576, 512, [\"digital-tachograph\"], \"f566\", \"M0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm64 32l0 32c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32L96 128c-17.7 0-32 14.3-32 32zM88 352c-13.3 0-24 10.7-24 24s10.7 24 24 24l136 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 352zm256 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zM496 192a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM88 312a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm104-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm56 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faDigitalTachograph = faTachographDigital;\nvar faTablet = {\n  prefix: 'fas',\n  iconName: 'tablet',\n  icon: [448, 512, [\"tablet-android\"], \"f3fb\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM184 400l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faTabletAndroid = faTablet;\nvar faRubleSign = {\n  prefix: 'fas',\n  iconName: 'ruble-sign',\n  icon: [448, 512, [8381, \"rouble\", \"rub\", \"ruble\"], \"f158\", \"M112 32C94.3 32 80 46.3 80 64l0 208-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 48-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 152 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-152 0 0-48 112 0c79.5 0 144-64.5 144-144S335.5 32 256 32L112 32zM256 256l-112 0 0-160 112 0c44.2 0 80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faRouble = faRubleSign;\nvar faRub = faRubleSign;\nvar faRuble = faRubleSign;\nvar faClosedCaptioning = {\n  prefix: 'fas',\n  iconName: 'closed-captioning',\n  icon: [512, 512, [], \"f20a\", \"M0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm152 80l32 0c4.4 0 8 3.6 8 8 0 13.3 10.7 24 24 24s24-10.7 24-24c0-30.9-25.1-56-56-56l-32 0c-30.9 0-56 25.1-56 56l0 80c0 30.9 25.1 56 56 56l32 0c30.9 0 56-25.1 56-56 0-13.3-10.7-24-24-24s-24 10.7-24 24c0 4.4-3.6 8-8 8l-32 0c-4.4 0-8-3.6-8-8l0-80c0-4.4 3.6-8 8-8zm168 8c0-4.4 3.6-8 8-8l32 0c4.4 0 8 3.6 8 8 0 13.3 10.7 24 24 24s24-10.7 24-24c0-30.9-25.1-56-56-56l-32 0c-30.9 0-56 25.1-56 56l0 80c0 30.9 25.1 56 56 56l32 0c30.9 0 56-25.1 56-56 0-13.3-10.7-24-24-24s-24 10.7-24 24c0 4.4-3.6 8-8 8l-32 0c-4.4 0-8-3.6-8-8l0-80z\"]\n};\nvar faPen = {\n  prefix: 'fas',\n  iconName: 'pen',\n  icon: [512, 512, [128394], \"f304\", \"M352.9 21.2L308 66.1 445.9 204 490.8 159.1C504.4 145.6 512 127.2 512 108s-7.6-37.6-21.2-51.1L455.1 21.2C441.6 7.6 423.2 0 404 0s-37.6 7.6-51.1 21.2zM274.1 100L58.9 315.1c-10.7 10.7-18.5 24.1-22.6 38.7L.9 481.6c-2.3 8.3 0 17.3 6.2 23.4s15.1 8.5 23.4 6.2l127.8-35.5c14.6-4.1 27.9-11.8 38.7-22.6L412 237.9 274.1 100z\"]\n};\nvar faPlane = {\n  prefix: 'fas',\n  iconName: 'plane',\n  icon: [576, 512, [], \"f072\", \"M520 200c30.9 0 56 25.1 56 56s-25.1 56-56 56l-127.3 0-159.2 173.6c-6.1 6.6-14.6 10.4-23.6 10.4l-43.7 0c-10.9 0-18.6-10.7-15.2-21.1l54.3-162.9-99.7 0-52.8 66c-3 3.8-7.6 6-12.5 6l-19.8 0c-10.4 0-18-9.8-15.5-19.9L32 256 5 147.9C2.4 137.8 10.1 128 20.5 128l19.8 0c4.9 0 9.5 2.2 12.5 6l52.8 66 99.7 0-54.3-162.9C147.6 26.7 155.3 16 166.2 16l43.7 0c9 0 17.5 3.8 23.6 10.4L392.7 200 520 200z\"]\n};\nvar faImages = {\n  prefix: 'fas',\n  iconName: 'images',\n  icon: [576, 512, [], \"f302\", \"M96 96c0-35.3 28.7-64 64-64l320 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64l-320 0c-35.3 0-64-28.7-64-64L96 96zM24 128c13.3 0 24 10.7 24 24l0 296c0 8.8 7.2 16 16 16l360 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L64 512c-35.3 0-64-28.7-64-64L0 152c0-13.3 10.7-24 24-24zm168 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm196.5 11.5c-4.4-7.1-12.1-11.5-20.5-11.5s-16.1 4.4-20.5 11.5l-56.3 92.1-24.5-30.6c-4.6-5.7-11.4-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4S174.8 352 184 352l272 0c8.7 0 16.7-4.7 20.9-12.3s4.1-16.8-.5-24.3l-88-144z\"]\n};\nvar faMobileScreen = {\n  prefix: 'fas',\n  iconName: 'mobile-screen',\n  icon: [384, 512, [\"mobile-android-alt\"], \"f3cf\", \"M16 64C16 28.7 44.7 0 80 0L304 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64L16 64zM128 440c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0c-13.3 0-24 10.7-24 24zM304 64l-224 0 0 304 224 0 0-304z\"]\n};\nvar faMobileAndroidAlt = faMobileScreen;\nvar faGuaraniSign = {\n  prefix: 'fas',\n  iconName: 'guarani-sign',\n  icon: [384, 512, [], \"e19a\", \"M192 0c-13.3 0-24 10.7-24 24l0 41.5C73.3 77.3 0 158.1 0 256S73.3 434.7 168 446.5l0 41.5c0 13.3 10.7 24 24 24s24-10.7 24-24l0-41.5c94.7-11.8 168-92.6 168-190.5 0-17.7-14.3-32-32-32l-136 0 0-93.8c25.3 4.8 47.9 17 65.6 34.3 12.6 12.4 32.9 12.2 45.3-.4s12.2-32.9-.5-45.3C297.2 90.2 258.8 70.8 216 65.5L216 24c0-13.3-10.7-24-24-24zM168 130.2l0 251.5C108.8 370.5 64 318.5 64 256s44.8-114.5 104-125.8zm48 251.5l0-93.8 100 0c-12.3 47.6-51.2 84.5-100 93.8z\"]\n};\nvar faBagShopping = {\n  prefix: 'fas',\n  iconName: 'bag-shopping',\n  icon: [448, 512, [\"shopping-bag\"], \"f290\", \"M160 80c0-35.3 28.7-64 64-64s64 28.7 64 64l0 48-128 0 0-48zm-48 48l-64 0c-26.5 0-48 21.5-48 48L0 384c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-208c0-26.5-21.5-48-48-48l-64 0 0-48c0-61.9-50.1-112-112-112S112 18.1 112 80l0 48zm24 48a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm152 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faShoppingBag = faBagShopping;\nvar faCircleRight = {\n  prefix: 'fas',\n  iconName: 'circle-right',\n  icon: [512, 512, [61838, \"arrow-alt-circle-right\"], \"f35a\", \"M0 256a256 256 0 1 0 512 0 256 256 0 1 0 -512 0zm387.3 11.3l-104 104c-4.6 4.6-11.5 5.9-17.4 3.5S256 366.5 256 360l0-56-96 0c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32l96 0 0-56c0-6.5 3.9-12.3 9.9-14.8s12.9-1.1 17.4 3.5l104 104c6.2 6.2 6.2 16.4 0 22.6z\"]\n};\nvar faArrowAltCircleRight = faCircleRight;\nvar faPhoneVolume = {\n  prefix: 'fas',\n  iconName: 'phone-volume',\n  icon: [576, 512, [\"volume-control-phone\"], \"f2a0\", \"M344-32c128.1 0 232 103.9 232 232 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM320 88c0-13.3 10.7-24 24-24 75.1 0 136 60.9 136 136 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88-13.3 0-24-10.7-24-24zM144.1 1.4c19.7-5.4 40.3 4.7 48.1 23.5l40.5 97.3c6.9 16.5 2.1 35.6-11.8 47l-44.1 36.1c32.5 71.6 89 130 159.3 164.9L374.7 323c11.3-13.9 30.4-18.6 47-11.8L519 351.8c18.8 7.8 28.9 28.4 23.5 48.1l-1.5 5.5C523.4 470.1 460.9 525.3 384.6 509.2 209.6 472.1 71.9 334.4 34.8 159.4 18.7 83.1 73.9 20.6 138.5 2.9l5.5-1.5z\"]\n};\nvar faVolumeControlPhone = faPhoneVolume;\nvar faCubes = {\n  prefix: 'fas',\n  iconName: 'cubes',\n  icon: [512, 512, [], \"f1b3\", \"M284-1.3c-17.3-10-38.7-10-56 0L143.8 47.3c-17.3 10-28 28.5-28 48.5l0 101.9-88.3 51c-17.3 10-28 28.5-28 48.5l0 97.3c0 20 10.7 38.5 28 48.5l84.3 48.6c17.3 10 38.7 10 56 0l88.3-51 88.3 51c17.3 10 38.7 10 56 0L484.5 443c17.3-10 28-28.5 28-48.5l0-97.3c0-20-10.7-38.5-28-48.5l-88.3-51 0-101.9c0-20-10.7-38.5-28-48.5L284-1.3zM232 292.6l0 106.5-88.3 51c-1.2 .7-2.6 1.1-4 1.1l0-105.3 92.3-53.3zm231.4 .6c.7 1.2 1.1 2.6 1.1 4l0 97.3c0 2.9-1.5 5.5-4 6.9l-84.3 48.6c-1.2 .7-2.6 1.1-4 1.1l0-105.3 91.2-52.6zM348.3 95.8l0 101.9-92.3 53.3 0-106.5 91.2-52.6c.7 1.2 1.1 2.6 1.1 4z\"]\n};\nvar faPhone = {\n  prefix: 'fas',\n  iconName: 'phone',\n  icon: [512, 512, [128222, 128379], \"f095\", \"M160.2 25C152.3 6.1 131.7-3.9 112.1 1.4l-5.5 1.5c-64.6 17.6-119.8 80.2-103.7 156.4 37.1 175 174.8 312.7 349.8 349.8 76.3 16.2 138.8-39.1 156.4-103.7l1.5-5.5c5.4-19.7-4.7-40.3-23.5-48.1l-97.3-40.5c-16.5-6.9-35.6-2.1-47 11.8l-38.6 47.2C233.9 335.4 177.3 277 144.8 205.3L189 169.3c13.9-11.3 18.6-30.4 11.8-47L160.2 25z\"]\n};\nvar faToriiGate = {\n  prefix: 'fas',\n  iconName: 'torii-gate',\n  icon: [448, 512, [9961], \"f6a1\", \"M0 96L0 28.5C0 21.6 5.6 16 12.5 16 14.8 16 17 16.6 19 17.8L58 41.2C82.9 56.1 111.3 64 140.3 64l167.4 0c29 0 57.5-7.9 82.3-22.8l39-23.4c1.9-1.2 4.2-1.8 6.4-1.8 6.9 0 12.5 5.6 12.5 12.5L448 96c0 35.3-28.7 64-64 64l0 64 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-192-192 0 0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-192-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-64C28.7 160 0 131.3 0 96zM128 224l64 0 0-64-64 0 0 64zm128 0l64 0 0-64-64 0 0 64z\"]\n};\nvar faBacon = {\n  prefix: 'fas',\n  iconName: 'bacon',\n  icon: [576, 512, [129363], \"f7e5\", \"M557 96.7c14.4 14.4 12.4 38.4-4.3 50.2l-64.6 45.7c-43.7 30.9-79.2 71.9-103.4 119.6l-25.3 49.8c-25.1 49.3-62.1 91.5-107.8 122.6l-74.1 50.6c-13.1 8.9-30.7 7.3-41.8-3.9l-44.9-44.9 86.5-66.5c42.3-32.5 76.7-74.3 100.6-122l24.5-49.1c24.5-49 61.8-90.6 107.9-120.2l108.7-69.9 38 38zM484.2 23.9L384.3 88.2c-53.4 34.3-96.5 82.4-124.9 139.1l-24.5 49.1c-20.6 41.3-50.3 77.3-86.9 105.4l-91.4 70.3-36.9-36.9c-14.4-14.4-12.4-38.4 4.3-50.2l64.6-45.7c43.7-30.9 79.2-71.9 103.4-119.6l25.3-49.8C242.3 100.8 279.3 58.6 325 27.4l74.1-50.6c13.1-8.9 30.6-7.3 41.8 3.9l43.3 43.3z\"]\n};\nvar faPersonFallingBurst = {\n  prefix: 'fas',\n  iconName: 'person-falling-burst',\n  icon: [576, 512, [], \"e547\", \"M256 0c17.7 0 32 14.3 32 32l0 5.4c0 55.2-23.7 107-63.9 143.1l62.9 75.5 89 0c15.1 0 29.3 7.1 38.4 19.2l43.2 57.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4L368 320 263.2 320 376.8 459.8c11.1 13.7 9.1 33.9-4.7 45s-33.9 9.1-45-4.7L137.4 266.6c-6.1 15-9.4 31.3-9.4 48l0 69.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-69.4c0-67.4 35.4-129.9 93.2-164.6l4.6-2.8C200.4 124 224 82.4 224 37.4l0-5.4c0-17.7 14.3-32 32-32zM16 88A56 56 0 1 1 128 88 56 56 0 1 1 16 88zm376-7.9c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24l0 48zm104 152c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0zm-54.5-97.5c-9.4-9.4-9.4-24.6 0-33.9l33.9-33.9c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-33.9 33.9c-9.4 9.4-24.6 9.4-33.9 0z\"]\n};\nvar faQuoteRight = {\n  prefix: 'fas',\n  iconName: 'quote-right',\n  icon: [448, 512, [8221, \"quote-right-alt\"], \"f10e\", \"M448 296c0 66.3-53.7 120-120 120l-8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 136zm-256 0c0 66.3-53.7 120-120 120l-8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 136z\"]\n};\nvar faQuoteRightAlt = faQuoteRight;\nvar faHouseMedicalFlag = {\n  prefix: 'fas',\n  iconName: 'house-medical-flag',\n  icon: [640, 512, [], \"e514\", \"M480 0c17.7 0 32 14.3 32 32l96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-96 0 0 288c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-448c0-17.7 14.3-32 32-32zM267.5 59.1L400 186.9 400 503.4c-9.4 5.4-20.3 8.6-32 8.6l-256 0c-35.3 0-64-28.7-64-64l0-144-19.9 0C12.6 304 0 291.4 0 275.9 0 268.3 3.1 261 8.6 255.7L212.5 59.1C219.9 52 229.7 48 240 48s20.1 4 27.5 11.1zM204.8 256.8l0 44-44 0c-9.7 0-17.6 7.9-17.6 17.6l0 35.2c0 9.7 7.9 17.6 17.6 17.6l44 0 0 44c0 9.7 7.9 17.6 17.6 17.6l35.2 0c9.7 0 17.6-7.9 17.6-17.6l0-44 44 0c9.7 0 17.6-7.9 17.6-17.6l0-35.2c0-9.7-7.9-17.6-17.6-17.6l-44 0 0-44c0-9.7-7.9-17.6-17.6-17.6l-35.2 0c-9.7 0-17.6 7.9-17.6 17.6z\"]\n};\nvar faPrescription = {\n  prefix: 'fas',\n  iconName: 'prescription',\n  icon: [448, 512, [], \"f5b1\", \"M32 0C14.3 0 0 14.3 0 32L0 288c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 50.7 0 128 128-105.4 105.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L288 397.3 393.4 502.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L333.3 352 438.6 246.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 306.7 202.2 220.9C251.4 209.1 288 164.8 288 112 288 50.1 237.9 0 176 0L32 0zM176 160l-112 0 0-96 112 0c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"]\n};\nvar faDiceThree = {\n  prefix: 'fas',\n  iconName: 'dice-three',\n  icon: [448, 512, [9858], \"f527\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm128 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faBuildingLock = {\n  prefix: 'fas',\n  iconName: 'building-lock',\n  icon: [576, 512, [], \"e4d6\", \"M32 64C32 28.7 60.7 0 96 0L352 0c35.3 0 64 28.7 64 64l0 121.3c-46.9 19-80 65-80 118.7l0 24.4c-19.6 17.6-32 43.1-32 71.5l0 96c0 5.5 .5 10.9 1.3 16.1L96 512c-35.3 0-64-28.7-64-64L32 64zM176 384l0 80 80 0 0-64.1c0-13.7 1.9-27 5.5-39.6-5.7-5.2-13.2-8.3-21.5-8.3l-32 0c-17.7 0-32 14.3-32 32zM307 224.3c-1-.2-2-.3-3-.3l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l16.7 0c2.1-22.8 8.4-44.3 18.3-63.7zM144 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM144 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm352 80.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM352 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"]\n};\nvar faIdCard = {\n  prefix: 'fas',\n  iconName: 'id-card',\n  icon: [576, 512, [62147, \"drivers-license\"], \"f2c2\", \"M0 96C0 60.7 28.7 32 64 32l448 0c35.3 0 64 28.7 64 64L0 96zm0 48l576 0 0 272c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 144zM247.3 416c20.2 0 35.3-19.4 22.4-35-14.7-17.7-36.9-29-61.7-29l-64 0c-24.8 0-47 11.3-61.7 29-12.9 15.6 2.2 35 22.4 35l142.5 0zM176 312a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM360 208c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0z\"]\n};\nvar faDriversLicense = faIdCard;\nvar faCirclePlay = {\n  prefix: 'fas',\n  iconName: 'circle-play',\n  icon: [512, 512, [61469, \"play-circle\"], \"f144\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM188.3 147.1c-7.6 4.2-12.3 12.3-12.3 20.9l0 176c0 8.7 4.7 16.7 12.3 20.9s16.8 4.1 24.3-.5l144-88c7.1-4.4 11.5-12.1 11.5-20.5s-4.4-16.1-11.5-20.5l-144-88c-7.4-4.5-16.7-4.7-24.3-.5z\"]\n};\nvar faPlayCircle = faCirclePlay;\nvar faFaceLaughBeam = {\n  prefix: 'fas',\n  iconName: 'face-laugh-beam',\n  icon: [512, 512, [128513, \"laugh-beam\"], \"f59a\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM101.6 314c-3.7-13.7 7.5-26 21.7-26l265.4 0c14.2 0 25.4 12.3 21.7 26-18.5 68-80.6 118-154.4 118S120 382 101.6 314zM176 164c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"]\n};\nvar faLaughBeam = faFaceLaughBeam;\nvar faLeaf = {\n  prefix: 'fas',\n  iconName: 'leaf',\n  icon: [512, 512, [], \"f06c\", \"M471.3 6.7C477.7 .6 487-1.6 495.6 1.2 505.4 4.5 512 13.7 512 24l0 186.9c0 131.2-108.1 237.1-238.8 237.1-77 0-143.4-49.5-167.5-118.7-35.4 30.8-57.7 76.1-57.7 126.7 0 13.3-10.7 24-24 24S0 469.3 0 456C0 381.1 38.2 315.1 96.1 276.3 131.4 252.7 173.5 240 216 240l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0c-39.7 0-77.3 8.8-111 24.5 23.3-70 89.2-120.5 167-120.5 66.4 0 115.8-22.1 148.7-44 19.2-12.8 35.5-28.1 50.7-45.3z\"]\n};\nvar faHouseChimneyUser = {\n  prefix: 'fas',\n  iconName: 'house-chimney-user',\n  icon: [512, 512, [], \"e065\", \"M234.2 8.6c12.3-11.4 31.3-11.4 43.5 0L368 92.3 368 80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 101.5 37.8 35.1c9.6 9 12.8 22.9 8 35.1S493.2 272 480 272l-16 0 0 176c0 35.3-28.7 64-64 64l-288 0c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208zM312 256a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zM144 432c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-64 0c-44.2 0-80 35.8-80 80z\"]\n};\nvar faRotateRight = {\n  prefix: 'fas',\n  iconName: 'rotate-right',\n  icon: [512, 512, [\"redo-alt\", \"rotate-forward\"], \"f2f9\", \"M488 192l-144 0c-9.7 0-18.5-5.8-22.2-14.8s-1.7-19.3 5.2-26.2l46.7-46.7c-75.3-58.6-184.3-53.3-253.5 15.9-75 75-75 196.5 0 271.5s196.5 75 271.5 0c8.2-8.2 15.5-16.9 21.9-26.1 10.1-14.5 30.1-18 44.6-7.9s18 30.1 7.9 44.6c-8.5 12.2-18.2 23.8-29.1 34.7-100 100-262.1 100-362 0S-25 175 75 75c94.3-94.3 243.7-99.6 344.3-16.2L471 7c6.9-6.9 17.2-8.9 26.2-5.2S512 14.3 512 24l0 144c0 13.3-10.7 24-24 24z\"]\n};\nvar faRedoAlt = faRotateRight;\nvar faRotateForward = faRotateRight;\nvar faTooth = {\n  prefix: 'fas',\n  iconName: 'tooth',\n  icon: [448, 512, [129463], \"f5c9\", \"M145 5.7L224 32 303 5.7C314.3 1.9 326 0 337.9 0 398.7 0 448 49.3 448 110.1l0 68.5c0 29.4-9.5 58.1-27.2 81.6l-1.1 1.5c-12.9 17.2-21.3 37.4-24.3 58.7L373.7 471.9c-3.3 23-23 40.1-46.2 40.1-22.8 0-42.3-16.5-46-39L261.3 351.6c-3-18.2-18.8-31.6-37.3-31.6s-34.2 13.4-37.3 31.6L166.5 473c-3.8 22.5-23.2 39-46 39-23.2 0-42.9-17.1-46.2-40.1L52.6 320.5c-3-21.3-11.4-41.5-24.3-58.7l-1.1-1.5C9.5 236.7 0 208.1 0 178.7l0-68.5C0 49.3 49.3 0 110.1 0 122 0 133.7 1.9 145 5.7z\"]\n};\nvar faHouseChimneyWindow = {\n  prefix: 'fas',\n  iconName: 'house-chimney-window',\n  icon: [512, 512, [], \"e00d\", \"M234.2 8.6c12.3-11.4 31.3-11.4 43.5 0L368 92.3 368 80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 101.5 37.8 35.1c9.6 9 12.8 22.9 8 35.1S493.2 272 480 272l-16 0 0 176c0 35.3-28.7 64-64 64l-288 0c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208zM216 224c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-80c0-13.3-10.7-24-24-24l-80 0z\"]\n};\nvar faMotorcycle = {\n  prefix: 'fas',\n  iconName: 'motorcycle',\n  icon: [640, 512, [127949], \"f21c\", \"M280 16c-13.3 0-24 10.7-24 24s10.7 24 24 24l56.6 0 22.5 48.7-95.1 71.3c-33.4-25.1-75-40-120-40l-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0c78.5 0 143.2 59.6 151.2 136l-25.4 0c-11.2-59.2-63.3-104-125.8-104-70.7 0-128 57.3-128 128S73.3 480 144 480c62.5 0 114.5-44.8 125.8-104l50.2 0c13.3 0 24-10.7 24-24l0-22.5c0-45.1 25.7-85.4 65.5-107.7l12.1 26.1c-32.4 23.2-53.5 61.2-53.5 104.1 0 70.7 57.3 128 128 128s128-57.3 128-128-57.3-128-128-128c-10.7 0-21 1.3-30.9 3.8L433.8 160 488 160c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-53.3 0c-6.9 0-13.7 2.2-19.2 6.4l-17.1 12.8-24.6-53.3C369.9 21.4 361.4 16 352 16l-72 0zM445.8 300.4l28.4 61.6c5.6 12 19.8 17.3 31.8 11.7s17.3-19.8 11.7-31.8l-28.5-61.6c2.2-.2 4.4-.3 6.7-.3 39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72c0-20.2 8.3-38.5 21.8-51.6zM144 424c-39.8 0-72-32.2-72-72s32.2-72 72-72c31.3 0 58 20 67.9 48L144 328c-13.3 0-24 10.7-24 24s10.7 24 24 24l67.9 0c-9.9 28-36.6 48-67.9 48z\"]\n};\nvar faBackwardFast = {\n  prefix: 'fas',\n  iconName: 'backward-fast',\n  icon: [512, 512, [9198, \"fast-backward\"], \"f049\", \"M492.2 477.6c-12 5-25.7 2.2-34.9-6.9L288 301.3 288 448c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9L64 301.3 64 448c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64C0 46.3 14.3 32 32 32S64 46.3 64 64L64 210.7 233.4 41.4c9.2-9.2 22.9-11.9 34.9-6.9S288 51.1 288 64l0 146.7 169.4-169.4c9.2-9.2 22.9-11.9 34.9-6.9S512 51.1 512 64l0 384c0 12.9-7.8 24.6-19.8 29.6z\"]\n};\nvar faFastBackward = faBackwardFast;\nvar faAddressBook = {\n  prefix: 'fas',\n  iconName: 'address-book',\n  icon: [512, 512, [62138, \"contact-book\"], \"f2b9\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L96 0zM208 288l64 0c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80zm-24-96a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zm0 128c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zM496 320c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16z\"]\n};\nvar faContactBook = faAddressBook;\nvar faSailboat = {\n  prefix: 'fas',\n  iconName: 'sailboat',\n  icon: [512, 512, [], \"e445\", \"M240 35.9l0 348.1-224 0c-8.8 0-16 7.2-16 16 0 61.9 50.1 112 112 112l288 0c61.9 0 112-50.1 112-112 0-8.8-7.2-16-16-16l-208 0 0-48 161.7 0c12.9 0 20.5-14.4 13.2-25L269.2 26.9c-8.9-13-29.2-6.7-29.2 9zM192 320l0-184.2c0-16.1-21-22.1-29.6-8.5L47.3 311.5c-6.7 10.7 1 24.5 13.6 24.5L176 336c8.8 0 16-7.2 16-16z\"]\n};\nvar faBookBookmark = {\n  prefix: 'fas',\n  iconName: 'book-bookmark',\n  icon: [448, 512, [], \"e0bb\", \"M96 512l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-66.7c18.6-6.6 32-24.4 32-45.3l0-288c0-26.5-21.5-48-48-48l-48 0 0 169.4c0 12.5-10.1 22.6-22.6 22.6-6 0-11.8-2.4-16-6.6L272 144 230.6 185.4c-4.2 4.2-10 6.6-16 6.6-12.5 0-22.6-10.1-22.6-22.6L192 0 96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96zM64 416c0-17.7 14.3-32 32-32l256 0 0 64-256 0c-17.7 0-32-14.3-32-32z\"]\n};\nvar faMagnifyingGlassArrowRight = {\n  prefix: 'fas',\n  iconName: 'magnifying-glass-arrow-right',\n  icon: [512, 512, [], \"e521\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM305 225c9.4-9.4 9.4-24.6 0-33.9l-72-72c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-102.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l102.1 0-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72z\"]\n};\nvar faMicrophoneLines = {\n  prefix: 'fas',\n  iconName: 'microphone-lines',\n  icon: [384, 512, [127897, \"microphone-alt\"], \"f3c9\", \"M96 96c0-53 43-96 96-96 50.3 0 91.6 38.7 95.7 88L232 88c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0 0 48-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l55.7 0c-4.1 49.3-45.3 88-95.7 88-53 0-96-43-96-96L96 96zM24 160c13.3 0 24 10.7 24 24l0 40c0 79.5 64.5 144 144 144s144-64.5 144-144l0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40c0 97.9-73.3 178.7-168 190.5l0 49.5 48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0 0-49.5C73.3 402.7 0 321.9 0 224l0-40c0-13.3 10.7-24 24-24z\"]\n};\nvar faMicrophoneAlt = faMicrophoneLines;\nvar faReplyAll = {\n  prefix: 'fas',\n  iconName: 'reply-all',\n  icon: [576, 512, [\"mail-reply-all\"], \"f122\", \"M332.2 18.4c12 5 19.8 16.6 19.8 29.6l0 80 48 0c97.2 0 176 78.8 176 176 0 113.3-81.5 163.9-100.2 174.1-2.5 1.4-5.3 1.9-8.1 1.9-10.9 0-19.7-8.9-19.7-19.7 0-7.5 4.3-14.4 9.8-19.5 9.4-8.8 22.2-26.4 22.2-56.7 0-53-43-96-96-96l-32 0 0 80c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-160-160c-12.5-12.5-12.5-32.8 0-45.3l160-160c9.2-9.2 22.9-11.9 34.9-6.9zM205.6 23.1c9.4 9.4 9.4 24.6 0 33.9L54.6 208 205.6 358.9c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L10 231.2c-6.4-6-10-14.4-10-23.2s3.6-17.2 10-23.2L171.6 23.1c9.4-9.4 24.6-9.4 33.9 0z\"]\n};\nvar faMailReplyAll = faReplyAll;\nvar faUniversalAccess = {\n  prefix: 'fas',\n  iconName: 'universal-access',\n  icon: [512, 512, [], \"f29a\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm161.5-86.1c-12.2-5.2-26.3 .4-31.5 12.6s.4 26.3 12.6 31.5l11.9 5.1c17.3 7.4 35.2 12.9 53.6 16.3l0 50.1c0 4.3-.7 8.6-2.1 12.6l-28.7 86.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l24.4-73.2c1.3-3.8 4.8-6.4 8.8-6.4s7.6 2.6 8.8 6.4l24.4 73.2c4.2 12.6 17.8 19.4 30.4 15.2S339 397 334.8 384.4l-28.7-86.1c-1.4-4.1-2.1-8.3-2.1-12.6l0-50.1c18.4-3.5 36.3-8.9 53.6-16.3l11.9-5.1c12.2-5.2 17.8-19.3 12.6-31.5s-19.3-17.8-31.5-12.6L338.7 175c-26.1 11.2-54.2 17-82.7 17s-56.5-5.8-82.7-17l-11.9-5.1zM256 160a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"]\n};\nvar faToiletPaper = {\n  prefix: 'fas',\n  iconName: 'toilet-paper',\n  icon: [512, 512, [129531, 63263, \"toilet-paper-alt\", \"toilet-paper-blank\"], \"f71e\", \"M327.1 32c-8.8 11.1-16 23.1-21.9 34.8-21.4 42.7-33.2 98.4-33.2 157.2l0 264c0 30.9-25.1 56-56 56L56 544c-30.9 0-56-25.1-56-56L0 224C0 118 43 32 96 32l231.1 0zM416 416c-53 0-96-86-96-192s43-192 96-192 96 86 96 192-43 192-96 192zm0-128c17.7 0 32-28.7 32-64s-14.3-64-32-64-32 28.7-32 64 14.3 64 32 64z\"]\n};\nvar faToiletPaperAlt = faToiletPaper;\nvar faToiletPaperBlank = faToiletPaper;\nvar faVrCardboard = {\n  prefix: 'fas',\n  iconName: 'vr-cardboard',\n  icon: [576, 512, [], \"f729\", \"M512 96L64 96C28.7 96 0 124.7 0 160L0 352c0 35.3 28.7 64 64 64l117.5 0c17 0 33.3-6.7 45.3-18.7l33.9-33.9c7.2-7.2 17.1-11.3 27.3-11.3s20.1 4.1 27.3 11.3l33.9 33.9c12 12 28.3 18.7 45.3 18.7L512 416c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64zM80 240a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm352-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"]\n};\nvar faPizzaSlice = {\n  prefix: 'fas',\n  iconName: 'pizza-slice',\n  icon: [512, 512, [], \"f818\", \"M169.7 .9c-22.8-1.6-41.9 14-47.5 34.7L112.5 72C293.3 72.3 439.7 218.7 440 399.5l36.4-9.7c20.8-5.5 36.3-24.7 34.7-47.5-12.6-182.8-158.6-328.8-341.4-341.4zm222 411.5c.2-4.1 .3-8.2 .3-12.4 0-154.6-125.4-280-280-280-4.1 0-8.3 .1-12.4 .3L.5 491.9c-1.5 5.5 .1 11.4 4.1 15.4s9.9 5.6 15.4 4.1l371.6-99.1zM176 208a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM96 384a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faSprayCan = {\n  prefix: 'fas',\n  iconName: 'spray-can',\n  icon: [576, 512, [], \"f5bd\", \"M192 0l64 0c17.7 0 32 14.3 32 32l0 80-128 0 0-80c0-17.7 14.3-32 32-32zM64 256c0-53 43-96 96-96l128 0c53 0 96 43 96 96l0 208c0 26.5-21.5 48-48 48l-224 0c-26.5 0-48-21.5-48-48l0-208zm240 80a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM320 64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM448 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM512 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM448 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faVolumeLow = {\n  prefix: 'fas',\n  iconName: 'volume-low',\n  icon: [448, 512, [128264, \"volume-down\"], \"f027\", \"M48 352l48 0 134.1 119.2c6.4 5.7 14.6 8.8 23.1 8.8 19.2 0 34.8-15.6 34.8-34.8l0-378.4c0-19.2-15.6-34.8-34.8-34.8-8.5 0-16.7 3.1-23.1 8.8L96 160 48 160c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48zM380.6 181.5c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C361.1 227.6 368 241 368 256s-6.9 28.4-17.7 37.3c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5C402.1 312.9 416 286.1 416 256s-13.9-56.9-35.5-74.5z\"]\n};\nvar faVolumeDown = faVolumeLow;\nvar faCross = {\n  prefix: 'fas',\n  iconName: 'cross',\n  icon: [384, 512, [128327, 10013], \"f654\", \"M176 0c-26.5 0-48 21.5-48 48l0 80-80 0c-26.5 0-48 21.5-48 48l0 32c0 26.5 21.5 48 48 48l80 0 0 208c0 26.5 21.5 48 48 48l32 0c26.5 0 48-21.5 48-48l0-208 80 0c26.5 0 48-21.5 48-48l0-32c0-26.5-21.5-48-48-48l-80 0 0-80c0-26.5-21.5-48-48-48L176 0z\"]\n};\nvar faPerson = {\n  prefix: 'fas',\n  iconName: 'person',\n  icon: [384, 512, [129485, \"male\"], \"f183\", \"M248 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7l46.3 62.4c10.5 14.2 30.6 17.2 44.8 6.6s17.2-30.6 6.6-44.8l-70.5-95C274 132 234.3 112 192 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L112 236.7 112 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3z\"]\n};\nvar faMale = faPerson;\nvar faHourglass = {\n  prefix: 'fas',\n  iconName: 'hourglass',\n  icon: [384, 512, [9203, 62032, \"hourglass-empty\"], \"f254\", \"M0 32C0 14.3 14.3 0 32 0L352 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 11c0 42.4-16.9 83.1-46.9 113.1l-67.9 67.9 67.9 67.9c30 30 46.9 70.7 46.9 113.1l0 11c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-11c0-42.4 16.9-83.1 46.9-113.1l67.9-67.9-67.9-67.9C48.9 158.1 32 117.4 32 75l0-11C14.3 64 0 49.7 0 32zM96 64l0 11c0 25.5 10.1 49.9 28.1 67.9l67.9 67.9 67.9-67.9c18-18 28.1-42.4 28.1-67.9l0-11-192 0zm0 384l192 0 0-11c0-25.5-10.1-49.9-28.1-67.9l-67.9-67.9-67.9 67.9c-18 18-28.1 42.4-28.1 67.9l0 11z\"]\n};\nvar faHourglassEmpty = faHourglass;\nvar faFish = {\n  prefix: 'fas',\n  iconName: 'fish',\n  icon: [576, 512, [128031], \"f578\", \"M180.5 141.5C219.7 108.5 272.6 80 336 80s116.3 28.5 155.5 61.5c39.1 33 66.9 72.4 81 99.8 4.7 9.2 4.7 20.1 0 29.3-14.1 27.4-41.9 66.8-81 99.8-39.2 33.1-92 61.5-155.5 61.5s-116.3-28.5-155.5-61.5c-16.2-13.7-30.5-28.5-42.7-43.1L48.1 379.6c-12.5 7.3-28.4 5.3-38.7-4.9s-12.4-26-5.3-38.6L50 256 4.2 175.9c-7.2-12.6-5-28.4 5.3-38.6s26.1-12.2 38.7-4.9l89.7 52.3c12.2-14.6 26.5-29.4 42.7-43.1zM448 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faDrumstickBite = {\n  prefix: 'fas',\n  iconName: 'drumstick-bite',\n  icon: [512, 512, [], \"f6d7\", \"M160 265.2c0 8.5-3.4 16.6-9.4 22.6l-26.8 26.8c-12.3 12.3-32.5 11.4-49.4 7.2-4.6-1.1-9.5-1.8-14.5-1.8-33.1 0-60 26.9-60 60s26.9 60 60 60c6.3 0 12 5.7 12 12 0 33.1 26.9 60 60 60s60-26.9 60-60c0-5-.6-9.8-1.8-14.5-4.2-16.9-5.2-37.1 7.2-49.4l26.8-26.8c6-6 14.1-9.4 22.6-9.4l89.2 0c6.3 0 12.4-.3 18.5-1 11.9-1.2 16.4-15.5 10.8-26-8.5-15.8-13.3-33.8-13.3-53 0-61.9 50.1-112 112-112 8 0 15.7 .8 23.2 2.4 11.7 2.5 24.1-5.9 22-17.6-14.7-82.3-86.7-144.8-173.2-144.8-97.2 0-176 78.8-176 176l0 89.2z\"]\n};\nvar faChartSimple = {\n  prefix: 'fas',\n  iconName: 'chart-simple',\n  icon: [512, 512, [], \"e473\", \"M192 80c0-26.5 21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 352c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-352zM0 272c0-26.5 21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48L0 272zM432 96l32 0c26.5 0 48 21.5 48 48l0 288c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-288c0-26.5 21.5-48 48-48z\"]\n};\nvar faAtom = {\n  prefix: 'fas',\n  iconName: 'atom',\n  icon: [448, 512, [9883], \"f5d2\", \"M224 398.8c-11.8 5.1-23.4 9.7-34.9 13.5 16.7 33.8 31 35.7 34.9 35.7s18.1-1.9 34.9-35.7c-11.4-3.9-23.1-8.4-34.9-13.5zM414 256c33 45.2 44.3 90.9 23.6 128-20.2 36.3-62.5 49.3-115.2 43.2-22 52.1-55.7 84.8-98.4 84.8s-76.4-32.7-98.4-84.8C72.9 433.3 30.6 420.3 10.4 384-10.3 346.9 1 301.2 34 256 1 210.8-10.3 165.1 10.4 128 30.6 91.7 72.9 78.7 125.6 84.8 147.6 32.7 181.2 0 224 0s76.4 32.7 98.4 84.8c52.7-6.1 95 6.8 115.2 43.2 20.7 37.1 9.4 82.8-23.6 128zm-65.8 67.4c-1.7 14.2-3.9 28-6.7 41.2 31.8 1.4 38.6-8.7 40.2-11.7 2.3-4.2 7-17.9-11.9-48.1-6.8 6.3-14 12.5-21.6 18.6zm-6.7-175.9c2.8 13.1 5 26.9 6.7 41.2 7.6 6.1 14.8 12.3 21.6 18.6 18.9-30.2 14.2-44 11.9-48.1-1.6-2.9-8.4-13-40.2-11.7zM258.9 99.7C242.1 65.9 227.9 64 224 64s-18.1 1.9-34.9 35.7c11.4 3.9 23.1 8.4 34.9 13.5 11.8-5.1 23.4-9.7 34.9-13.5zm-159 88.9c1.7-14.3 3.9-28 6.7-41.2-31.8-1.4-38.6 8.7-40.2 11.7-2.3 4.2-7 17.9 11.9 48.1 6.8-6.3 14-12.5 21.6-18.6zM78.2 304.8c-18.9 30.2-14.2 44-11.9 48.1 1.6 2.9 8.4 13 40.2 11.7-2.8-13.1-5-26.9-6.7-41.2-7.6-6.1-14.8-12.3-21.6-18.6zM304 256a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zm-80-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faP = {\n  prefix: 'fas',\n  iconName: 'p',\n  icon: [320, 512, [112], \"50\", \"M0 64C0 46.3 14.3 32 32 32l128 0c88.4 0 160 71.6 160 160S248.4 352 160 352l-96 0 0 96c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64zM64 288l96 0c53 0 96-43 96-96s-43-96-96-96l-96 0 0 192z\"]\n};\nvar faJetFighterUp = {\n  prefix: 'fas',\n  iconName: 'jet-fighter-up',\n  icon: [512, 512, [], \"e518\", \"M206.8 47.8C202.3 58.5 200 70 200 81.6l0 100.4-152 114 0-48c0-13.3-10.7-24-24-24S0 234.7 0 248L0 392c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8 152 0 0 54.4-66 52.8c-3.8 3-6 7.6-6 12.5l0 24.3c0 8.8 7.2 16 16 16l88 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 88 0c8.8 0 16-7.2 16-16l0-24.3c0-4.9-2.2-9.5-6-12.5l-66-52.8 0-54.4 152 0 0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-144c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 48-152-114 0-100.4c0-11.6-2.3-23.1-6.8-33.8l-27.1-65C274.4-26.2 265.7-32 256-32s-18.4 5.8-22.2 14.8l-27.1 65z\"]\n};\nvar faPlugCircleXmark = {\n  prefix: 'fas',\n  iconName: 'plug-circle-xmark',\n  icon: [640, 512, [], \"e560\", \"M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM496 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-36.7 36.7-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l36.7 36.7-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l36.7-36.7 36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-36.7-36.7 36.7-36.7z\"]\n};\nvar faSheetPlastic = {\n  prefix: 'fas',\n  iconName: 'sheet-plastic',\n  icon: [384, 512, [], \"e571\", \"M0 448c0 35.3 28.7 64 64 64l149.5 0c17 0 33.3-6.7 45.3-18.7L365.3 386.7c12-12 18.7-28.3 18.7-45.3L384 64c0-35.3-28.7-64-64-64L64 0C28.7 0 0 28.7 0 64L0 448zm208 5.5l0-93.5c0-13.3 10.7-24 24-24l93.5 0-117.5 117.5zM153 105l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zm96 32L137 249c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L215 103c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"]\n};\nvar faV = {\n  prefix: 'fas',\n  iconName: 'v',\n  icon: [384, 512, [118], \"56\", \"M19.7 34.5c16.3-6.8 35 .9 41.8 17.2L192 364.8 322.5 51.7c6.8-16.3 25.5-24 41.8-17.2s24 25.5 17.2 41.8l-160 384c-5 11.9-16.6 19.7-29.5 19.7s-24.6-7.8-29.5-19.7L2.5 76.3c-6.8-16.3 .9-35 17.2-41.8z\"]\n};\nvar faList = {\n  prefix: 'fas',\n  iconName: 'list',\n  icon: [512, 512, [\"list-squares\"], \"f03a\", \"M40 48C26.7 48 16 58.7 16 72l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24L40 48zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM16 232l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0z\"]\n};\nvar faListSquares = faList;\nvar faPisces = {\n  prefix: 'fas',\n  iconName: 'pisces',\n  icon: [448, 512, [], \"e84c\", \"M40.4 10.4c11.9-13 32.2-13.9 45.2-2 2.9 2.7 28.3 26.7 53.6 67.8 22.3 36.2 45 86.6 51.1 147.8l67.3 0c6.1-61.1 28.8-111.6 51.1-147.8 25.3-41.1 50.7-65.1 53.6-67.8 13-11.9 33.3-11.1 45.2 2 11.9 13 11 33.3-2 45.2-1.4 1.3-22 21.1-42.4 54.2-17.9 29.1-35.4 68-41.2 114.2l94 0 3.3 .2c16.1 1.6 28.7 15.3 28.7 31.8s-12.6 30.2-28.7 31.8l-3.3 .2-94 0c5.8 46.2 23.3 85.1 41.2 114.2 20.4 33.1 41 52.9 42.4 54.2 13 11.9 13.9 32.2 2 45.2-11.9 13-32.2 13.9-45.2 2-2.9-2.7-28.3-26.7-53.6-67.8-22.3-36.2-45-86.6-51.1-147.8l-67.3 0c-6.1 61.1-28.8 111.6-51.1 147.8-25.3 41.1-50.7 65.1-53.6 67.8-13 11.9-33.3 11.1-45.2-2-11.9-13-11-33.3 2-45.2 1.4-1.3 22-21.1 42.4-54.2 17.9-29.1 35.4-68 41.2-114.2l-94 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l94 0c-5.8-46.2-23.3-85.1-41.2-114.2-20.4-33.1-41-52.9-42.4-54.2-13-11.9-13.9-32.2-2-45.2z\"]\n};\nvar faSolarPanel = {\n  prefix: 'fas',\n  iconName: 'solar-panel',\n  icon: [576, 512, [], \"f5ba\", \"M121.8 32c-30 0-56 20.8-62.5 50.1L9.6 306.1C.7 346.1 31.1 384 72 384l184.1 0 0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64 184.1 0c40.9 0 71.4-37.9 62.5-77.9l-49.8-224C510.4 52.8 484.5 32 454.5 32L121.8 32zM245.6 96l85.2 0 7.3 88-99.8 0 7.3-88zm-55.5 88l-87.8 0 19.6-88 75.6 0-7.3 88zM91.6 232l94.5 0-7.3 88-106.7 0 19.6-88zm142.6 0l107.8 0 7.3 88-122.5 0 7.3-88zm156 0l94.5 0 19.6 88-106.7 0-7.3-88zM474 184l-87.8 0-7.3-88 75.6 0 19.6 88z\"]\n};\nvar faLandMineOn = {\n  prefix: 'fas',\n  iconName: 'land-mine-on',\n  icon: [576, 512, [], \"e51b\", \"M312 0l0 128c0 13.3-10.7 24-24 24s-24-10.7-24-24L264 0c0-13.3 10.7-24 24-24s24 10.7 24 24zM160 288c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32l0 32 80 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48L80 512c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48l80 0 0-32zM12 114.7c7.4-11 22.3-14 33.3-6.7l96 64c11 7.4 14 22.3 6.7 33.3s-22.3 14-33.3 6.7l-96-64c-11-7.4-14-22.3-6.7-33.3zM530.7 108c11-7.4 25.9-4.4 33.3 6.7s4.4 25.9-6.7 33.3l-96 64c-11 7.4-25.9 4.4-33.3-6.7s-4.4-25.9 6.7-33.3l96-64z\"]\n};\nvar faHeadphones = {\n  prefix: 'fas',\n  iconName: 'headphones',\n  icon: [448, 512, [127911, 62863, \"headphones-alt\", \"headphones-simple\"], \"f025\", \"M64 224c0-88.4 71.6-160 160-160s160 71.6 160 160l0 37.5c-10-3.5-20.8-5.5-32-5.5l-16 0c-26.5 0-48 21.5-48 48l0 128c0 26.5 21.5 48 48 48l16 0c53 0 96-43 96-96l0-160C448 100.3 347.7 0 224 0S0 100.3 0 224L0 384c0 53 43 96 96 96l16 0c26.5 0 48-21.5 48-48l0-128c0-26.5-21.5-48-48-48l-16 0c-11.2 0-22 1.9-32 5.5L64 224z\"]\n};\nvar faHeadphonesAlt = faHeadphones;\nvar faHeadphonesSimple = faHeadphones;\nvar faBus = {\n  prefix: 'fas',\n  iconName: 'bus',\n  icon: [448, 512, [128653], \"f207\", \"M96 0C43 0 0 43 0 96L0 384c0 29.8 20.4 54.9 48 62l0 34c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-32 192 0 0 32c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-34c27.6-7.1 48-32.2 48-62l0-288c0-53-43-96-96-96L96 0zM64 176c0-17.7 14.3-32 32-32l104 0 0 112-104 0c-17.7 0-32-14.3-32-32l0-48zm184 80l0-112 104 0c17.7 0 32 14.3 32 32l0 48c0 17.7-14.3 32-32 32l-104 0zM96 320a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm256 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM152 72c0-13.3 10.7-24 24-24l96 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-96 0c-13.3 0-24-10.7-24-24z\"]\n};\nvar faFilePowerpoint = {\n  prefix: 'fas',\n  iconName: 'file-powerpoint',\n  icon: [384, 512, [], \"f1c4\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM152 256c-13.3 0-24 10.7-24 24l0 144c0 13.3 10.7 24 24 24s24-10.7 24-24l0-24 24 0c39.8 0 72-32.2 72-72s-32.2-72-72-72l-48 0zm48 96l-24 0 0-48 24 0c13.3 0 24 10.7 24 24s-10.7 24-24 24z\"]\n};\nvar faQuoteLeft = {\n  prefix: 'fas',\n  iconName: 'quote-left',\n  icon: [448, 512, [8220, \"quote-left-alt\"], \"f10d\", \"M0 216C0 149.7 53.7 96 120 96l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-30.9 0-56 25.1-56 56l0 8 64 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64L0 216zm256 0c0-66.3 53.7-120 120-120l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-30.9 0-56 25.1-56 56l0 8 64 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64l0-136z\"]\n};\nvar faQuoteLeftAlt = faQuoteLeft;\nvar faChevronDown = {\n  prefix: 'fas',\n  iconName: 'chevron-down',\n  icon: [448, 512, [], \"f078\", \"M201.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 338.7 54.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z\"]\n};\nvar faEarthAsia = {\n  prefix: 'fas',\n  iconName: 'earth-asia',\n  icon: [512, 512, [127759, \"globe-asia\"], \"f57e\", \"M50 284.8c4.2 2.1 9 3.2 14 3.2l50.7 0c8.5 0 16.6 3.4 22.6 9.4l13.3 13.3c6 6 14.1 9.4 22.6 9.4l18.7 0c17.7 0 32-14.3 32-32l0-40c0-13.3 10.7-24 24-24s24-10.7 24-24l0-42.7c0-8.5 3.4-16.6 9.4-22.6l13.3-13.3c6-6 9.4-14.1 9.4-22.6L304 57c0-1.2-.1-2.3-.2-3.5-15.4-3.6-31.4-5.5-47.8-5.5-114.9 0-208 93.1-208 208 0 9.8 .7 19.4 2 28.8zm403.3 37.3c-3.2-1.4-6.7-2.1-10.5-2.1L432 320c-8.8 0-16-7.2-16-16s-7.2-16-16-16l-34.7 0c-8.5 0-16.6 3.4-22.6 9.4l-45.3 45.3c-6 6-9.4 14.1-9.4 22.6l0 18.7c0 17.7 14.3 32 32 32l18.7 0c8.5 0 16.6 3.4 22.6 9.4 2.2 2.2 4.7 4.1 7.3 5.5 39.3-25.4 69.5-63.6 84.6-108.8zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM128 368c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM272 256c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32c0-8.8-7.2-16-16-16zm48-112l0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32c0-8.8-7.2-16-16-16s-16 7.2-16 16z\"]\n};\nvar faGlobeAsia = faEarthAsia;\nvar faCentSign = {\n  prefix: 'fas',\n  iconName: 'cent-sign',\n  icon: [384, 512, [], \"e3f5\", \"M208 0c17.7 0 32 14.3 32 32l0 25.4c43.6 5.2 83 24.5 113.3 53.1 12.9 12.1 13.4 32.4 1.3 45.2s-32.4 13.4-45.2 1.3c-24.4-23-57.2-37.1-93.3-37.1-75.1 0-136 60.9-136 136s60.9 136 136 136c36.2 0 69-14.1 93.3-37.1 12.9-12.1 33.1-11.5 45.2 1.3s11.5 33.1-1.3 45.2C323 430.1 283.6 449.4 240 454.6l0 25.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-28C84.7 433.5 16 352.8 16 256S84.7 78.5 176 60l0-28c0-17.7 14.3-32 32-32z\"]\n};\nvar faShieldCat = {\n  prefix: 'fas',\n  iconName: 'shield-cat',\n  icon: [512, 512, [], \"e572\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2 .5 99.2 41.3 280.7 213.6 363.2 16.7 8 36.1 8 52.8 0 172.4-82.5 213.2-264 213.6-363.2 .1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160 154.4c0-5.8 4.7-10.4 10.4-10.4l.2 0c3.4 0 6.5 1.6 8.5 4.3l40 53.3c3 4 7.8 6.4 12.8 6.4l48 0c5 0 9.8-2.4 12.8-6.4l40-53.3c2-2.7 5.2-4.3 8.5-4.3l.2 0c5.8 0 10.4 4.7 10.4 10.4L352 272c0 53-43 96-96 96s-96-43-96-96l0-117.6zM216 288a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm96-16a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"]\n};\nvar faSchoolCircleCheck = {\n  prefix: 'fas',\n  iconName: 'school-circle-check',\n  icon: [640, 512, [], \"e56b\", \"M64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l276 0c-10.5-14.6-19-30.7-25.1-48l-90.9 0 0-88c0-22.1 17.9-40 40-40l48 0c1 0 1.9 0 2.9 .1 26.3-74.6 97.5-128.1 181.1-128.1 28.6 0 55.6 6.2 80 17.4l0-33.4c0-35.3-28.7-64-64-64l-64 0-127.9-115.1c-18.3-16.4-46-16.4-64.2 0L128 128 64 128zm64 240c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32zM112 256l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16zM288 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"]\n};\nvar faMartiniGlass = {\n  prefix: 'fas',\n  iconName: 'martini-glass',\n  icon: [512, 512, [127864, \"glass-martini-alt\"], \"f57b\", \"M2.4 51.8C7.4 39.8 19.1 32 32 32l448 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L288 301.3 288 448 352 448c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 0-146.7-214.6-214.6C.2 77.5-2.5 63.7 2.4 51.8zM354.7 144l48-48-293.5 0 48 48 197.5 0z\"]\n};\nvar faGlassMartiniAlt = faMartiniGlass;\nvar faPlug = {\n  prefix: 'fas',\n  iconName: 'plug',\n  icon: [448, 512, [128268], \"f1e6\", \"M128-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 64c0 95.1-69.2 174.1-160 189.3l0 66.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C101.2 398.1 32 319.1 32 224l0-64c-17.7 0-32-14.3-32-32S14.3 96 32 96l64 0 0-96c0-17.7 14.3-32 32-32z\"]\n};\nvar faPanorama = {\n  prefix: 'fas',\n  iconName: 'panorama',\n  icon: [576, 512, [], \"e209\", \"M43.9 48C19.7 48 0 67.7 0 91.9L0 420.1c0 24.3 19.7 43.9 43.9 43.9 5.5 0 10.7-1 15.7-2.9 12.9-4.9 103.4-37.1 228.4-37.1s215.5 32.3 228.4 37.1c5 1.9 10.2 2.9 15.7 2.9 24.3 0 43.9-19.7 43.9-43.9l0-328.2c0-24.3-19.7-43.9-43.9-43.9-5.5 0-10.7 1-15.7 2.9-12.9 4.9-103.4 37.1-228.4 37.1S72.5 55.7 59.6 50.9C54.6 49 49.4 48 43.9 48zM72 176a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zm264.1-16c7.5 0 14.6 3.6 19.1 9.6L479.7 336.2c5.9 7.9 6.4 18.5 1.3 26.9s-14.8 12.8-24.5 11.1c-45.8-7.8-103.3-14.2-168.4-14.2-65.6 0-123.4 6.5-169.3 14.4-9.8 1.7-19.7-2.9-24.7-11.5s-4.3-19.4 1.9-27.2L165.3 249c4.6-5.7 11.5-9 18.7-9s14.2 3.3 18.7 9l27.5 34.4 86.7-113.9c4.6-6 11.7-9.5 19.2-9.5z\"]\n};\nvar faClockRotateLeft = {\n  prefix: 'fas',\n  iconName: 'clock-rotate-left',\n  icon: [576, 512, [\"history\"], \"f1da\", \"M288 64c106 0 192 86 192 192S394 448 288 448c-65.2 0-122.9-32.5-157.6-82.3-10.1-14.5-30.1-18-44.6-7.9s-18 30.1-7.9 44.6C124.1 468.6 201 512 288 512 429.4 512 544 397.4 544 256S429.4 0 288 0C202.3 0 126.5 42.1 80 106.7L80 80c0-17.7-14.3-32-32-32S16 62.3 16 80l0 112c0 17.7 14.3 32 32 32l24.6 0c.5 0 1 0 1.5 0l86 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-38.3 0C154.9 102.6 217 64 288 64zm24 88c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 104c0 6.4 2.5 12.5 7 17l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-65-65 0-94.1z\"]\n};\nvar faHistory = faClockRotateLeft;\nvar faJarWheat = {\n  prefix: 'fas',\n  iconName: 'jar-wheat',\n  icon: [320, 512, [], \"e517\", \"M32-8c0-13.3 10.7-24 24-24l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L56 16C42.7 16 32 5.3 32-8zM0 128C0 92.7 28.7 64 64 64l192 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 128zm112 32l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8 0 32.1 26 58.2 58.2 58.2l75.6 0c32.1 0 58.2-26 58.2-58.2 0-3.2-2.6-5.8-5.8-5.8L208 160c-19.1 0-36.3 8.4-48 21.7-11.7-13.3-28.9-21.7-48-21.7zm48 117.7c-11.7-13.3-28.9-21.7-48-21.7l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8 0 32.1 26 58.2 58.2 58.2l75.6 0c32.1 0 58.2-26 58.2-58.2 0-3.2-2.6-5.8-5.8-5.8L208 256c-19.1 0-36.3 8.4-48 21.7zM112 352l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8 0 32.1 26 58.2 58.2 58.2l21.8 0 0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32 21.8 0c32.1 0 58.2-26 58.2-58.2 0-3.2-2.6-5.8-5.8-5.8L208 352c-19.1 0-36.3 8.4-48 21.7-11.7-13.3-28.9-21.7-48-21.7z\"]\n};\nvar faCloudArrowDown = {\n  prefix: 'fas',\n  iconName: 'cloud-arrow-down',\n  icon: [576, 512, [62337, \"cloud-download\", \"cloud-download-alt\"], \"f0ed\", \"M144 480c-79.5 0-144-64.5-144-144 0-63.4 41-117.2 97.9-136.5-1.3-7.7-1.9-15.5-1.9-23.5 0-79.5 64.5-144 144-144 55.4 0 103.5 31.3 127.6 77.1 14.2-8.3 30.8-13.1 48.4-13.1 53 0 96 43 96 96 0 15.7-3.8 30.6-10.5 43.7 44 20.3 74.5 64.7 74.5 116.3 0 70.7-57.3 128-128 128l-304 0zM377 313c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-31 31 0-102.1c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 102.1-31-31c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c9.4 9.4 24.6 9.4 33.9 0l72-72z\"]\n};\nvar faCloudDownload = faCloudArrowDown;\nvar faCloudDownloadAlt = faCloudArrowDown;\nvar faTruckRampBox = {\n  prefix: 'fas',\n  iconName: 'truck-ramp-box',\n  icon: [576, 512, [\"truck-loading\"], \"f4de\", \"M400 32c-44.2 0-80 35.8-80 80l0 248.2-297.2 89.2C5.9 454.4-3.7 472.3 1.4 489.2s22.9 26.5 39.8 21.5l315.5-94.6 43.7 0c-.2 2.6-.4 5.3-.4 8 0 48.6 39.4 88 88 88s88-39.4 88-88l0-392-176 0zM528 424c0 22.1-17.9 40-40 40s-40-17.9-40-40 17.9-40 40-40c22.1 0 39.9 17.9 40 39.9l0 .1zM51.9 149.5C18.1 159.8-.9 195.6 9.4 229.4l28.1 91.8C47.8 355 83.6 374 117.4 363.7l91.8-28.1c33.8-10.3 52.8-46.1 42.5-79.9l-28.1-91.8c-10.3-33.8-46.1-52.8-79.9-42.5L51.9 149.5z\"]\n};\nvar faTruckLoading = faTruckRampBox;\nvar faAngleDown = {\n  prefix: 'fas',\n  iconName: 'angle-down',\n  icon: [384, 512, [8964], \"f107\", \"M169.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 306.7 54.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z\"]\n};\nvar faPlugCircleCheck = {\n  prefix: 'fas',\n  iconName: 'plug-circle-check',\n  icon: [640, 512, [], \"e55c\", \"M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM352 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm201.4-60.9c-7.1-5.2-17.2-3.6-22.4 3.5l-53 72.9-26.8-26.8c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.6s8.9-2.8 11.7-6.5l64-88c5.2-7.1 3.6-17.2-3.5-22.3z\"]\n};\nvar faWindowMaximize = {\n  prefix: 'fas',\n  iconName: 'window-maximize',\n  icon: [512, 512, [128470], \"f2d0\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm24 64l336 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 176c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faHandsHoldingCircle = {\n  prefix: 'fas',\n  iconName: 'hands-holding-circle',\n  icon: [640, 512, [], \"e4fb\", \"M320 0a128 128 0 1 1 0 256 128 128 0 1 1 0-256zM40 64c22.1 0 40 17.9 40 40l0 160.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1 12.9-8.6 14.7-26.9 3.7-37.8-7.3-7.3-23.1-23.1-47.2-47.2-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c24.1 24.1 39.9 39.9 47.2 47.2l0 0 25.3 25.3c21 21 32.8 49.5 32.8 79.2l0 78.9c0 26.5-21.5 48-48 48l-66.7 0c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5L0 104C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40l0 221.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7L400 512c-26.5 0-48-21.5-48-48l0-78.9c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3 0 0c7.3-7.3 23.1-23.1 47.2-47.2 12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-24.1 24.1-39.9 39.9-47.2 47.2-11 11-9.2 29.2 3.7 37.8 9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3L560 104c0-22.1 17.9-40 40-40z\"]\n};\nvar faLocationPin = {\n  prefix: 'fas',\n  iconName: 'location-pin',\n  icon: [384, 512, [\"map-marker\"], \"f041\", \"M192 0C86 0 0 84.4 0 188.6 0 307.9 120.2 450.9 170.4 505.4 182.2 518.2 201.8 518.2 213.6 505.4 263.8 450.9 384 307.9 384 188.6 384 84.4 298 0 192 0z\"]\n};\nvar faMapMarker = faLocationPin;\nvar faBowlingBall = {\n  prefix: 'fas',\n  iconName: 'bowling-ball',\n  icon: [512, 512, [], \"f436\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM240 80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM208 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-64-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faCartFlatbed = {\n  prefix: 'fas',\n  iconName: 'cart-flatbed',\n  icon: [576, 512, [\"dolly-flatbed\"], \"f474\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l16 0c8.8 0 16 7.2 16 16l0 288c0 39.8 29.1 72.8 67.1 79-2 5.3-3.1 11-3.1 17 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16l197.5 0c-1.8 5-2.7 10.4-2.7 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16l34.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-400 0c-8.8 0-16-7.2-16-16l0-288C128 35.8 92.2 0 48 0L32 0zM224 64c-26.5 0-48 21.5-48 48l0 176c0 26.5 21.5 48 48 48l240 0c26.5 0 48-21.5 48-48l0-176c0-26.5-21.5-48-48-48L224 64z\"]\n};\nvar faDollyFlatbed = faCartFlatbed;\nvar faHouseUser = {\n  prefix: 'fas',\n  iconName: 'house-user',\n  icon: [512, 512, [\"home-user\"], \"e1b0\", \"M277.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S18.8 272 32 272l16 0 0 176c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-176 16 0c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8-35.1l-224-208zM200 256a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM144 432c0-44.2 35.8-80 80-80l64 0c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16z\"]\n};\nvar faHomeUser = faHouseUser;\nvar faGhost = {\n  prefix: 'fas',\n  iconName: 'ghost',\n  icon: [384, 512, [128123], \"f6e2\", \"M40.1 467.1l-11.2 9C25.7 478.6 21.8 480 17.8 480 8 480 0 472 0 462.2L0 192C0 86 86 0 192 0S384 86 384 192l0 270.2c0 9.8-8 17.8-17.8 17.8-4 0-7.9-1.4-11.1-3.9l-11.2-9c-13.4-10.7-32.8-9-44.1 3.9L269.3 506c-3.3 3.8-8.2 6-13.3 6s-9.9-2.2-13.3-6l-26.6-30.5c-12.7-14.6-35.4-14.6-48.2 0L141.3 506c-3.3 3.8-8.2 6-13.3 6s-9.9-2.2-13.3-6L84.2 471c-11.3-12.9-30.7-14.6-44.1-3.9zM160 192a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faCommentNodes = {\n  prefix: 'fas',\n  iconName: 'comment-nodes',\n  icon: [640, 512, [], \"e696\", \"M480 208C503.7 208 525.6 215.3 543.7 227.9 536.9 100.9 425 0 288 0 146.6 0 32 107.5 32 240 32 294.3 51.2 344.3 83.6 384.5L34.8 476.8c-4.8 9-3.3 20 3.6 27.5s17.8 9.8 27.1 5.8l118.4-50.7c27.2 11.4 56.9 18.4 88.1 20.2 .1-18.9 4.9-38 15-55.5 17.1-29.7 45.8-48.5 77-54.2l9.2-16c-3.4-10.7-5.2-22-5.2-33.8 0-61.9 50.1-112 112-112zM328.6 448c-17.7 30.6-7.2 69.7 23.4 87.4s69.7 7.2 87.4-23.4c1.5-2.6 2.8-5.3 3.9-8l73.3 0c1.1 2.7 2.4 5.4 3.9 8 17.7 30.6 56.8 41.1 87.4 23.4s41.1-56.8 23.4-87.4c-13.4-23.2-39.1-34.8-64-31.4l-17.6-30.7c-11 11.7-25 20.6-40.6 25.6l16.5 28.9c-3.8 4.8-6.8 10-9 15.6l-73.4 0c-2.2-5.6-5.3-10.8-9-15.6l33-57.7c4.1 .8 8.4 1.3 12.8 1.3 35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64c0 13.4 4.1 25.8 11.2 36.1l-34.6 60.5c-25-3.4-50.6 8.3-64 31.4z\"]\n};\nvar faPersonArrowDownToLine = {\n  prefix: 'fas',\n  iconName: 'person-arrow-down-to-line',\n  icon: [576, 512, [], \"e538\", \"M192-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM318.3 299.1l-46.3-62.4 0 243.3 272 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 544c-17.7 0-32-14.3-32-32s14.3-32 32-32l80 0 0-243.3-46.3 62.4c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95C110 132 149.7 112 192 112s82 20 107.2 53.9l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6zM176 480l32 0 0-128c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 128zM566.6 166.6l-80 80c-12.5 12.5-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L432 146.7 432 0c0-17.7 14.3-32 32-32s32 14.3 32 32l0 146.7 25.4-25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3z\"]\n};\nvar faPlugCirclePlus = {\n  prefix: 'fas',\n  iconName: 'plug-circle-plus',\n  icon: [640, 512, [], \"e55f\", \"M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM496 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm16 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0 0-48z\"]\n};\nvar faPersonSwimming = {\n  prefix: 'fas',\n  iconName: 'person-swimming',\n  icon: [640, 512, [127946, \"swimmer\"], \"f5c4\", \"M552 152a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zM293.4 198.2l-88.6 73.9c1.1 0 2.2-.1 3.3-.1 33.1-.2 66.3 10.2 94.4 31.4 22.1 16.6 29.1 16.6 51.2 0 27.5-20.7 59.9-31.2 92.4-31.4 4.8 0 9.7 .2 14.5 .6-8.3-30-24.3-57.7-46.8-80.2-18.4-18.4-40.6-32.7-65-41.8l-68.6-25.7c-27.4-10.3-58-7.5-83.1 7.6l-53.5 32.1c-15.2 9.1-20.1 28.7-11 43.9s28.7 20.1 43.9 11L230 187.3c8.4-5 18.6-5.9 27.7-2.5l35.7 13.4zm110 181.9c21.3-16.1 49.9-16.1 71.2 0 19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7S7 386.3 17.6 394.3c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9z\"]\n};\nvar faSwimmer = faPersonSwimming;\nvar faCommentDots = {\n  prefix: 'fas',\n  iconName: 'comment-dots',\n  icon: [512, 512, [128172, 62075, \"commenting\"], \"f4ad\", \"M256 480c141.4 0 256-107.5 256-240S397.4 0 256 0 0 107.5 0 240c0 54.3 19.2 104.3 51.6 144.5L2.8 476.8c-4.8 9-3.3 20 3.6 27.5s17.8 9.8 27.1 5.8l118.4-50.7C183.7 472.6 218.9 480 256 480zM128 208a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faCommenting = faCommentDots;\nvar faChartPie = {\n  prefix: 'fas',\n  iconName: 'chart-pie',\n  icon: [576, 512, [\"pie-chart\"], \"f200\", \"M512.4 240l-176 0c-17.7 0-32-14.3-32-32l0-176c0-17.7 14.4-32.2 31.9-29.9 107 14.2 191.8 99 206 206 2.3 17.5-12.2 31.9-29.9 31.9zM222.6 37.2c18.1-3.8 33.8 11 33.8 29.5l0 197.3c0 5.6 2 11 5.5 15.3L394 438.7c11.7 14.1 9.2 35.4-6.9 44.1-34.1 18.6-73.2 29.2-114.7 29.2-132.5 0-240-107.5-240-240 0-115.5 81.5-211.9 190.2-234.8zM477.8 288l64 0c18.5 0 33.3 15.7 29.5 33.8-10.2 48.4-35 91.4-69.6 124.2-12.3 11.7-31.6 9.2-42.4-3.9L374.9 340.4c-17.3-20.9-2.4-52.4 24.6-52.4l78.2 0z\"]\n};\nvar faPieChart = faChartPie;\nvar faFrog = {\n  prefix: 'fas',\n  iconName: 'frog',\n  icon: [576, 512, [], \"f52e\", \"M368 32c41.7 0 75.9 31.8 79.7 72.5l85.6 26.3c25.4 7.8 42.8 31.3 42.8 57.9 0 21.8-11.7 41.9-30.7 52.7l-144.5 82.1 92.5 92.5 50.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-8.5 0-16.6-3.4-22.6-9.4L346.9 360.2c11.7-36 3.2-77.1-25.4-105.7-40.6-40.6-106.3-40.6-146.9-.1L101 324.4c-6.4 6.1-6.7 16.2-.6 22.6s16.2 6.6 22.6 .6l73.8-70.2 .1-.1 .1-.1c3.5-3.5 7.3-6.6 11.3-9.2 27.9-18.5 65.9-15.4 90.5 9.2 24.7 24.7 27.7 62.9 9 90.9-2.6 3.8-5.6 7.5-9 10.9L261.8 416 352 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 480C28.7 480 0 451.3 0 416 0 249.6 127 112.9 289.3 97.5 296.2 60.2 328.8 32 368 32zm0 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faWineBottle = {\n  prefix: 'fas',\n  iconName: 'wine-bottle',\n  icon: [320, 512, [], \"f72f\", \"M80-32c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32 0 11.8-6.4 22.2-16 27.7l0 145.6c56.5 24.7 96 81.1 96 146.7l0 224c0 35.3-28.7 64-64 64L64 576c-35.3 0-64-28.7-64-64L0 288c0-65.6 39.5-122 96-146.7L96-4.3C86.4-9.8 80-20.2 80-32zM96 288c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L96 288z\"]\n};\nvar faInbox = {\n  prefix: 'fas',\n  iconName: 'inbox',\n  icon: [512, 512, [], \"f01c\", \"M91.8 32C59.9 32 32.9 55.4 28.4 86.9L.6 281.2c-.4 3-.6 6-.6 9.1L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-125.7c0-3-.2-6.1-.6-9.1L483.6 86.9C479.1 55.4 452.1 32 420.2 32L91.8 32zm0 64l328.5 0 27.4 192-59.9 0c-12.1 0-23.2 6.8-28.6 17.7l-14.3 28.6c-5.4 10.8-16.5 17.7-28.6 17.7l-120.4 0c-12.1 0-23.2-6.8-28.6-17.7l-14.3-28.6c-5.4-10.8-16.5-17.7-28.6-17.7L64.3 288 91.8 96z\"]\n};\nvar faSquareH = {\n  prefix: 'fas',\n  iconName: 'square-h',\n  icon: [448, 512, [\"h-square\"], \"f0fd\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM320 168l0 176c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-64-96 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-176c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 96 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faHSquare = faSquareH;\nvar faHouseMedical = {\n  prefix: 'fas',\n  iconName: 'house-medical',\n  icon: [512, 512, [], \"e3b2\", \"M277.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S18.8 272 32 272l16 0 0 176c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-176 16 0c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8-35.1l-224-208zM224 248c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"]\n};\nvar faCircleChevronRight = {\n  prefix: 'fas',\n  iconName: 'circle-chevron-right',\n  icon: [512, 512, [\"chevron-circle-right\"], \"f138\", \"M0 256a256 256 0 1 0 512 0 256 256 0 1 0 -512 0zM241 377c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l87-87-87-87c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L345 239c9.4 9.4 9.4 24.6 0 33.9L241 377z\"]\n};\nvar faChevronCircleRight = faCircleChevronRight;\nvar faFileCsv = {\n  prefix: 'fas',\n  iconName: 'file-csv',\n  icon: [576, 512, [], \"f6dd\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l80 0 0-112c0-35.3 28.7-64 64-64l176 0 0-165.5c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM264 380c-24.3 0-44 19.7-44 44l0 80c0 24.3 19.7 44 44 44l16 0c24.3 0 44-19.7 44-44l0-8c0-11-9-20-20-20s-20 9-20 20l0 8c0 2.2-1.8 4-4 4l-16 0c-2.2 0-4-1.8-4-4l0-80c0-2.2 1.8-4 4-4l16 0c2.2 0 4 1.8 4 4l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-24.3-19.7-44-44-44l-16 0zm136 0c-28.7 0-52 23.3-52 52s23.3 52 52 52c6.6 0 12 5.4 12 12s-5.4 12-12 12l-32 0c-11 0-20 9-20 20s9 20 20 20l32 0c28.7 0 52-23.3 52-52s-23.3-52-52-52c-6.6 0-12-5.4-12-12s5.4-12 12-12l24 0c11 0 20-9 20-20s-9-20-20-20l-24 0zm96 0c-11 0-20 9-20 20l0 31.6c0 35.5 10.5 70.3 30.2 99.8l5.1 7.7c3.7 5.6 10 8.9 16.6 8.9s12.9-3.3 16.6-8.9l5.1-7.7c19.7-29.6 30.2-64.3 30.2-99.8l0-31.6c0-11-9-20-20-20s-20 9-20 20l0 31.6c0 19.6-4.1 38.9-12 56.7-7.9-17.8-12-37.1-12-56.7l0-31.6c0-11-9-20-20-20z\"]\n};\nvar faHatCowboy = {\n  prefix: 'fas',\n  iconName: 'hat-cowboy',\n  icon: [640, 512, [], \"f8c0\", \"M182.2 76.1L130.8 307.5C145.5 324.9 167.4 336 192 336l256 0c24.6 0 46.5-11.1 61.2-28.5L457.8 76.1c-5.7-25.8-28.6-44.1-55-44.1-12.2 0-24.1 4-33.8 11.3l-4.7 3.5c-26.3 19.7-62.4 19.7-88.6 0L271 43.3c-9.8-7.3-21.6-11.3-33.8-11.3-26.4 0-49.3 18.3-55 44.1zM64 256c0-17.7-14.3-32-32-32S0 238.3 0 256C0 362 86 448 192 448l256 0c106 0 192-86 192-192 0-17.7-14.3-32-32-32s-32 14.3-32 32c0 70.7-57.3 128-128 128l-256 0c-70.7 0-128-57.3-128-128z\"]\n};\nvar faFaceGrinTongueWink = {\n  prefix: 'fas',\n  iconName: 'face-grin-tongue-wink',\n  icon: [512, 512, [128540, \"grin-tongue-wink\"], \"f58b\", \"M152.2 490.1C62.5 450.2 0 360.4 0 256 0 114.6 114.6 0 256 0S512 114.6 512 256c0 104.4-62.5 194.2-152.2 234.1 5.3-13 8.2-27.2 8.2-42.1l0-61.7c16.9-16.5 30.1-36.7 38.3-59.3 4.3-11.8-7.7-21.8-19.6-18.1-39.2 12.2-83.7 19.1-130.7 19.1s-91.5-6.9-130.7-19.1c-11.9-3.7-23.9 6.3-19.6 18.1 8.3 22.6 21.5 42.8 38.3 59.3l0 61.7c0 14.9 2.9 29.1 8.2 42.1zM152 212l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20 9-20 20-20zm184 60a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM320 402.6l0 45.4c0 35.3-28.7 64-64 64s-64-28.7-64-64l0-45.4c0-14.7 11.9-26.6 26.6-26.6l2 0c11.3 0 21.1 7.9 23.6 18.9 2.8 12.6 20.8 12.6 23.6 0 2.5-11.1 12.3-18.9 23.6-18.9l2 0c14.7 0 26.6 11.9 26.6 26.6zM336 184a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faGrinTongueWink = faFaceGrinTongueWink;\nvar faL = {\n  prefix: 'fas',\n  iconName: 'l',\n  icon: [320, 512, [108], \"4c\", \"M64 32c17.7 0 32 14.3 32 32l0 352 192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 480c-17.7 0-32-14.3-32-32L32 64c0-17.7 14.3-32 32-32z\"]\n};\nvar faArrowDownShortWide = {\n  prefix: 'fas',\n  iconName: 'arrow-down-short-wide',\n  icon: [576, 512, [\"sort-amount-desc\", \"sort-amount-down-alt\"], \"f884\", \"M246.6 374.6l-96 96c-12.5 12.5-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM320 32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faSortAmountDesc = faArrowDownShortWide;\nvar faSortAmountDownAlt = faArrowDownShortWide;\nvar faHourglassHalf = {\n  prefix: 'fas',\n  iconName: 'hourglass-half',\n  icon: [384, 512, [\"hourglass-2\"], \"f252\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1l67.9 67.9-67.9 67.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1l-67.9-67.9 67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32S369.7 0 352 0L32 0zM96 75l0-11 192 0 0 11c0 19-5.6 37.4-16 53L112 128c-10.3-15.6-16-34-16-53zm16 309c3.5-5.3 7.6-10.3 12.1-14.9l67.9-67.9 67.9 67.9c4.6 4.6 8.6 9.6 12.2 14.9L112 384z\"]\n};\nvar faHourglass2 = faHourglassHalf;\nvar faSpoon = {\n  prefix: 'fas',\n  iconName: 'spoon',\n  icon: [512, 512, [129348, 61873, \"utensil-spoon\"], \"f2e5\", \"M245.8 220.9c-14.5-17.6-21.8-39.2-21.8-60.8 0-80.2 96-160.2 192-160.2 53 0 96 43 96 96 0 96-80 192-160.2 192-21.6 0-43.2-7.3-60.8-21.8L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L245.8 220.9z\"]\n};\nvar faUtensilSpoon = faSpoon;\nvar faCreditCard = {\n  prefix: 'fas',\n  iconName: 'credit-card',\n  icon: [512, 512, [128179, 62083, \"credit-card-alt\"], \"f09d\", \"M0 128l0 32 512 0 0-32c0-35.3-28.7-64-64-64L64 64C28.7 64 0 92.7 0 128zm0 80L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-176-512 0zM64 360c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zm144 0c0-13.3 10.7-24 24-24l64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0c-13.3 0-24-10.7-24-24z\"]\n};\nvar faCreditCardAlt = faCreditCard;\nvar faFileInvoiceDollar = {\n  prefix: 'fas',\n  iconName: 'file-invoice-dollar',\n  icon: [384, 512, [], \"f571\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM64 88c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 64C74.7 64 64 74.7 64 88zm0 96c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zm112 76l0 4c-28.8 .3-52 23.7-52 52.5 0 25.7 18.5 47.6 43.9 51.8l41.7 7c6 1 10.4 6.2 10.4 12.3 0 6.9-5.6 12.5-12.5 12.5L152 400c-11 0-20 9-20 20s9 20 20 20l24 0 0 4c0 11 9 20 20 20s20-9 20-20l0-4.7c25-4.1 44-25.7 44-51.8 0-25.7-18.5-47.6-43.9-51.8l-41.7-7c-6-1-10.4-6.2-10.4-12.3 0-6.9 5.6-12.5 12.5-12.5l47.5 0c11 0 20-9 20-20s-9-20-20-20l-8 0 0-4c0-11-9-20-20-20s-20 9-20 20z\"]\n};\nvar faSpaghettiMonsterFlying = {\n  prefix: 'fas',\n  iconName: 'spaghetti-monster-flying',\n  icon: [640, 512, [\"pastafarianism\"], \"f67b\", \"M208 64a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 0c0 16.2-6 31.1-16 42.3l15.6 31.2c18.7-6 39.9-9.5 64.4-9.5s45.8 3.5 64.4 9.5L400 106.3c-10-11.3-16-26.1-16-42.3 0-35.3 28.7-64 64-64s64 28.7 64 64-28.7 64-64 64c-1.7 0-3.4-.1-5.1-.2L427.8 158c21.1 13.6 37.7 30.2 51.4 46.4 7.1 8.3 13.5 16.6 19.3 24l1.4 1.8c6.3 8.1 11.6 14.8 16.7 20.4 10.7 11.7 16.1 13.4 19.4 13.4 2.5 0 4.3-.6 7.1-3.3 3.7-3.5 7.1-8.8 12.5-17.4l.6-.9c4.6-7.4 11-17.6 19.4-25.7 9.7-9.3 22.9-16.7 40.4-16.7 13.3 0 24 10.7 24 24s-10.7 24-24 24c-2.5 0-4.3 .6-7.1 3.3-3.7 3.5-7.1 8.8-12.5 17.4l-.6 .9c-4.6 7.4-11 17.6-19.4 25.7-9.7 9.3-22.9 16.7-40.4 16.7-18.5 0-32.9-8.5-44.3-18.6-3.1 4-6.6 8.3-10.5 12.7 1.4 4.3 2.8 8.5 4 12.5 .9 3 1.8 5.8 2.6 8.6 3 9.8 5.5 18.2 8.6 25.9 3.9 9.8 7.4 15.4 10.8 18.5 2.6 2.4 5.9 4.3 12.8 4.3 8.7 0 16.9-4.2 33.7-13.2 15-8 35.7-18.8 62.3-18.8 13.3 0 24 10.7 24 24s-10.7 24-24 24c-13.4 0-24.7 5.2-39.7 13.2-1 .6-2.1 1.1-3.2 1.7-13.1 7.1-31.6 17.1-53.1 17.1-18.4 0-33.6-6.1-45.5-17.2-11.1-10.3-17.9-23.7-22.7-36-3.6-9-6.7-19.1-9.5-28.5-16.4 12.3-36.1 23.6-58.9 31.3 3.6 10.8 8.4 23.5 14.4 36.2 7.5 15.9 16.2 30.4 25.8 40.5 9.6 10.2 17.7 13.7 24.5 13.7 13.3 0 24 10.7 24 24s-10.7 24-24 24c-25.2 0-45-13.5-59.5-28.8-14.5-15.4-25.7-34.9-34.2-53-8-17-14.1-33.8-18.3-46.9-5.2 .4-10.6 .6-16 .6s-10.8-.2-16-.6c-4.2 13-10.3 29.9-18.3 46.9-8.5 18.1-19.8 37.6-34.2 53-14.4 15.3-34.3 28.8-59.5 28.8-13.3 0-24-10.7-24-24s10.7-24 24-24c6.8 0 15-3.5 24.5-13.7 9.5-10.1 18.3-24.6 25.8-40.5 5.9-12.6 10.7-25.4 14.4-36.2-22.8-7.7-42.5-19-58.9-31.3-2.9 9.4-6 19.5-9.5 28.5-4.8 12.2-11.6 25.6-22.7 36-11.9 11.1-27.1 17.2-45.5 17.2-13.1 0-24.5-4.1-33.8-8.9-7.9-4-15.7-9.2-22.1-13.5l0 0-2.4-1.6c-15.3-10.2-25.8-16-37.7-16-13.3 0-24-10.7-24-24s10.7-24 24-24c28.1 0 49.6 14.2 64.3 24l2.4 1.6c6.9 4.6 12.1 8.1 17.2 10.7 5.5 2.8 9.1 3.6 12 3.6 6.8 0 10.2-1.9 12.8-4.3 3.4-3.2 7-8.8 10.8-18.5 3-7.7 5.6-16.1 8.6-25.9 .8-2.7 1.7-5.6 2.6-8.6 1.2-4 2.6-8.2 4-12.5-3.9-4.5-7.4-8.8-10.5-12.7-11.4 10.1-25.9 18.6-44.3 18.6-17.5 0-30.7-7.4-40.4-16.7-8.4-8.1-14.8-18.3-19.4-25.7l-.6-.9c-5.4-8.6-8.8-13.9-12.5-17.4-2.8-2.7-4.6-3.3-7.1-3.3-13.3 0-24-10.7-24-24s10.7-24 24-24c17.5 0 30.7 7.4 40.4 16.7 8.4 8.1 14.8 18.3 19.4 25.7l.6 .9c5.4 8.6 8.8 13.9 12.5 17.4 2.8 2.7 4.6 3.3 7.1 3.3 3.3 0 8.7-1.7 19.4-13.4 5.1-5.6 10.4-12.3 16.7-20.4l1.4-1.8c5.8-7.4 12.2-15.7 19.3-24 13.8-16.2 30.3-32.8 51.4-46.4l-15.1-30.2c-1.7 .1-3.4 .2-5.1 .2-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64zm208 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"]\n};\nvar faPastafarianism = faSpaghettiMonsterFlying;\nvar faMartiniGlassCitrus = {\n  prefix: 'fas',\n  iconName: 'martini-glass-citrus',\n  icon: [640, 512, [\"cocktail\"], \"f561\", \"M576 80c0-44.2-35.8-80-80-80-18 0-34.6 6-48 16l-81 0c23.6-47.4 72.5-80 129-80 79.5 0 144 64.5 144 144S575.5 224 496 224c-6.5 0-13-.4-19.3-1.3l64-74.7c1.1-1.3 2.2-2.7 3.3-4.1 19.4-14.6 32-37.8 32-64zM66.9 82.6C72.2 71.3 83.5 64 96 64l384 0c12.5 0 23.8 7.3 29.1 18.6s3.4 24.7-4.8 34.2l-184.3 215 0 116.2 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 0-116.2-184.3-215c-8.1-9.5-10-22.8-4.8-34.2zM165.6 128L288 270.8 410.4 128 165.6 128z\"]\n};\nvar faCocktail = faMartiniGlassCitrus;\nvar faBullhorn = {\n  prefix: 'fas',\n  iconName: 'bullhorn',\n  icon: [512, 512, [128226, 128363], \"f0a1\", \"M461.2 18.9C472.7 24 480 35.4 480 48l0 416c0 12.6-7.3 24-18.8 29.1s-24.8 3.2-34.3-5.1l-46.6-40.7c-43.6-38.1-98.7-60.3-156.4-63l0 95.7c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-96C57.3 384 0 326.7 0 256S57.3 128 128 128l84.5 0c61.8-.2 121.4-22.7 167.9-63.3l46.6-40.7c9.4-8.3 22.9-10.2 34.3-5.1zM224 320l0 .2c70.3 2.7 137.8 28.5 192 73.4l0-275.3c-54.2 44.9-121.7 70.7-192 73.4L224 320z\"]\n};\nvar faBoxTissue = {\n  prefix: 'fas',\n  iconName: 'box-tissue',\n  icon: [512, 512, [], \"e05b\", \"M103.9 32l161 0c13.8 0 26 8.8 30.4 21.9l17.4 52.2c4.4 13.1 16.6 21.9 30.4 21.9l60.5 0c21.8 0 37.3 21.4 30.4 42.1L384 320 128 320 72.7 70.9C68.2 51 83.4 32 103.9 32zM48 256l16.6 0 16.5 74.4C86 352.4 105.5 368 128 368l256 0c20.7 0 39-13.2 45.5-32.8l26.4-79.2 8.1 0c26.5 0 48 21.5 48 48l0 128c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 304c0-26.5 21.5-48 48-48z\"]\n};\nvar faMattressPillow = {\n  prefix: 'fas',\n  iconName: 'mattress-pillow',\n  icon: [576, 512, [], \"e525\", \"M256 64L64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l192 0 0-384zm48 384l208 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-208 0 0 384zM64 160c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-192z\"]\n};\nvar faChevronLeft = {\n  prefix: 'fas',\n  iconName: 'chevron-left',\n  icon: [320, 512, [9001], \"f053\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 246.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z\"]\n};\nvar faCloudMoonRain = {\n  prefix: 'fas',\n  iconName: 'cloud-moon-rain',\n  icon: [576, 512, [], \"f73c\", \"M448 0c-68.6 0-127.1 43.1-149.8 103.8 17.1 14.1 29.6 33.5 34.9 55.8 39.9 21.7 66.9 63.9 66.9 112.5 0 13.5-2.1 26.5-5.9 38.7 16.9 6 35 9.3 53.9 9.3 43 0 82.1-17 110.8-44.6 4.6-4.4 5.9-11.2 3.3-17s-8.6-9.3-14.9-8.8c-3 .2-6.1 .4-9.2 .4-63.5 0-115-51.5-115-115 0-45.1 26-84.2 63.8-103 5.7-2.8 9-8.9 8.2-15.2S489.6 5.3 483.4 3.9C472 1.4 460.2 0 448 0zM272 352c44.2 0 80-35.8 80-80 0-39-27.9-71.5-64.8-78.6 .5-3.1 .8-6.2 .8-9.4 0-30.9-25.1-56-56-56-12.4 0-23.9 4-33.1 10.8-13.4-25.5-40.1-42.8-70.9-42.8-44.2 0-80 35.8-80 80 0 7.4 1 14.6 2.9 21.5-29.8 11.6-50.9 40.6-50.9 74.5 0 44.2 35.8 80 80 80l192 0zM69 401.1c-12.6-4.2-26.2 2.6-30.4 15.2L17.2 480.4C13 493 19.8 506.6 32.4 510.8s26.2-2.6 30.4-15.2l21.4-64.1c4.2-12.6-2.6-26.2-15.2-30.4zm120 0c-12.6-4.2-26.2 2.6-30.4 15.2l-21.4 64.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.4-64.1c4.2-12.6-2.6-26.2-15.2-30.4zm120 0c-12.6-4.2-26.2 2.6-30.4 15.2l-21.4 64.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.4-64.1c4.2-12.6-2.6-26.2-15.2-30.4z\"]\n};\nvar faArrowDown19 = {\n  prefix: 'fas',\n  iconName: 'arrow-down-1-9',\n  icon: [512, 512, [\"sort-numeric-asc\", \"sort-numeric-down\"], \"f162\", \"M418.7 38c8.3 6 13.3 15.7 13.3 26l0 96 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-51.6-5.9 2c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5l48-16c9.8-3.3 20.5-1.6 28.8 4.4zM365.1 430.6l11.7-18c-32.9-9.9-56.8-40.5-56.8-76.6 0-44.2 35.8-80 80-80s80 35.8 80 80c0 22.9-6.6 45.3-19.1 64.5l-42.1 64.9c-9.6 14.8-29.4 19.1-44.3 9.4s-19.1-29.4-9.4-44.3zM424 336a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM150.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-96 96z\"]\n};\nvar faSortNumericAsc = faArrowDown19;\nvar faSortNumericDown = faArrowDown19;\nvar faHandSpock = {\n  prefix: 'fas',\n  iconName: 'hand-spock',\n  icon: [512, 512, [128406], \"f259\", \"M214.9 23.7C210.3 6.6 192.8-3.5 175.7 1.1s-27.2 22.1-22.6 39.2L206 237.8c2.5 9.2-4.5 18.2-14 18.2-6.4 0-12-4.2-13.9-10.3L134.6 102.7c-5.1-16.9-23-26.4-39.9-21.3s-26.4 23-21.3 39.9l62.8 206.4c2.4 7.9-7.2 13.8-13.2 8.1L67.6 283c-16-15.2-41.3-14.6-56.6 1.4S-3.6 325.7 12.4 341L124.8 448c43.1 41.1 100.4 64 160 64l19.1 0c.1 0 .1-.1 .1-.1s.1-.1 .1-.1c58.3-3.5 108.6-43.2 125.3-99.7l81.2-275c5-16.9-4.7-34.7-21.6-39.8s-34.7 4.7-39.8 21.6L411.5 247.1c-1.6 5.3-6.4 8.9-12 8.9-7.9 0-13.8-7.3-12.2-15.1l36-170.3c3.7-17.3-7.4-34.3-24.7-37.9s-34.3 7.4-37.9 24.7L323.1 235.1c-2.6 12.2-13.3 20.9-25.8 20.9-11.9 0-22.4-8-25.4-19.5l-57-212.8z\"]\n};\nvar faWandMagicSparkles = {\n  prefix: 'fas',\n  iconName: 'wand-magic-sparkles',\n  icon: [576, 512, [\"magic-wand-sparkles\"], \"e2ca\", \"M263.4-27L278.2 9.8 315 24.6c3 1.2 5 4.2 5 7.4s-2 6.2-5 7.4L278.2 54.2 263.4 91c-1.2 3-4.2 5-7.4 5s-6.2-2-7.4-5L233.8 54.2 197 39.4c-3-1.2-5-4.2-5-7.4s2-6.2 5-7.4L233.8 9.8 248.6-27c1.2-3 4.2-5 7.4-5s6.2 2 7.4 5zM110.7 41.7l21.5 50.1 50.1 21.5c5.9 2.5 9.7 8.3 9.7 14.7s-3.8 12.2-9.7 14.7l-50.1 21.5-21.5 50.1c-2.5 5.9-8.3 9.7-14.7 9.7s-12.2-3.8-14.7-9.7L59.8 164.2 9.7 142.7C3.8 140.2 0 134.4 0 128s3.8-12.2 9.7-14.7L59.8 91.8 81.3 41.7C83.8 35.8 89.6 32 96 32s12.2 3.8 14.7 9.7zM464 304c6.4 0 12.2 3.8 14.7 9.7l21.5 50.1 50.1 21.5c5.9 2.5 9.7 8.3 9.7 14.7s-3.8 12.2-9.7 14.7l-50.1 21.5-21.5 50.1c-2.5 5.9-8.3 9.7-14.7 9.7s-12.2-3.8-14.7-9.7l-21.5-50.1-50.1-21.5c-5.9-2.5-9.7-8.3-9.7-14.7s3.8-12.2 9.7-14.7l50.1-21.5 21.5-50.1c2.5-5.9 8.3-9.7 14.7-9.7zM460 0c11 0 21.6 4.4 29.5 12.2l42.3 42.3C539.6 62.4 544 73 544 84s-4.4 21.6-12.2 29.5l-88.2 88.2-101.3-101.3 88.2-88.2C438.4 4.4 449 0 460 0zM44.2 398.5L308.4 134.3 409.7 235.6 145.5 499.8C137.6 507.6 127 512 116 512s-21.6-4.4-29.5-12.2L44.2 457.5C36.4 449.6 32 439 32 428s4.4-21.6 12.2-29.5z\"]\n};\nvar faMagicWandSparkles = faWandMagicSparkles;\nvar faCommentMedical = {\n  prefix: 'fas',\n  iconName: 'comment-medical',\n  icon: [512, 512, [], \"f7f5\", \"M256 480c141.4 0 256-107.5 256-240S397.4 0 256 0 0 107.5 0 240c0 54.3 19.2 104.3 51.6 144.5L2.8 476.8c-4.8 9-3.3 20 3.6 27.5s17.8 9.8 27.1 5.8l118.4-50.7C183.7 472.6 218.9 480 256 480zM217.6 153.6c0-10.6 8.6-19.2 19.2-19.2l38.4 0c10.6 0 19.2 8.6 19.2 19.2l0 48 48 0c10.6 0 19.2 8.6 19.2 19.2l0 38.4c0 10.6-8.6 19.2-19.2 19.2l-48 0 0 48c0 10.6-8.6 19.2-19.2 19.2l-38.4 0c-10.6 0-19.2-8.6-19.2-19.2l0-48-48 0c-10.6 0-19.2-8.6-19.2-19.2l0-38.4c0-10.6 8.6-19.2 19.2-19.2l48 0 0-48z\"]\n};\nvar faBellSlash = {\n  prefix: 'fas',\n  iconName: 'bell-slash',\n  icon: [576, 512, [128277, 61943], \"f1f6\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-87.5-87.5c17.2-2.4 30.5-17.3 30.5-35.2 0-8.1-2.7-15.9-7.8-22.2l-9.8-12.2C464.4 308.5 448 261.8 448 213.7l0-21.7c0-77.4-55-142-128-156.8l0-3.2c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 3.2c-38.6 7.8-72.2 29.6-95.2 59.7L41-24.9zm87 238.5c0 48.1-16.4 94.8-46.4 132.4l-9.8 12.2c-5 6.3-7.8 14.1-7.8 22.2 0 19.6 15.9 35.5 35.5 35.5l235.3 0-206.9-206.9 0 4.5zM288 512c29.8 0 54.9-20.4 62-48l-124 0c7.1 27.6 32.2 48 62 48z\"]\n};\nvar faHandshakeSlash = {\n  prefix: 'fas',\n  iconName: 'handshake-slash',\n  icon: [576, 512, [57439, \"handshake-alt-slash\", \"handshake-simple-slash\"], \"e060\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-288-288 14.2-14.2c4.2-4.2 9.5-6.5 14.9-6.9 6.8-.6 13.8 1.7 19 6.9L505.6 376 576 320 576 32 464 96 440.2 80.1C424.4 69.6 405.9 64 386.9 64l-70.4 0c-1.1 0-2.3 0-3.4 .1-16.9 .9-32.8 8.5-44.2 21.1l-55.8 62.1-34-34 44.3-49.2-39.7 0c-15.3 0-30.1 3.6-43.5 10.4L41-24.9zM0 69.8L0 320 156.4 450.3c23 19.2 52 29.7 81.9 29.7l15.7 0-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l41 41 9 0c22.2 0 43.8-5.8 62.8-16.4L0 69.8z\"]\n};\nvar faHandshakeAltSlash = faHandshakeSlash;\nvar faHandshakeSimpleSlash = faHandshakeSlash;\nvar faBottleWater = {\n  prefix: 'fas',\n  iconName: 'bottle-water',\n  icon: [320, 512, [], \"e4c5\", \"M112-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0C94.3 32 80 17.7 80 0s14.3-32 32-32zM16 144c0-35.3 28.7-64 64-64l160 0c35.3 0 64 28.7 64 64 0 24.1-13.3 45.1-33 56 19.7 10.9 33 31.9 33 56s-13.3 45.1-33 56c19.7 10.9 33 31.9 33 56s-13.3 45.1-33 56c19.7 10.9 33 31.9 33 56 0 35.3-28.7 64-64 64L80 544c-35.3 0-64-28.7-64-64 0-24.1 13.3-45.1 33-56-19.7-10.9-33-31.9-33-56s13.3-45.1 33-56c-19.7-10.9-33-31.9-33-56s13.3-45.1 33-56c-19.7-10.9-33-31.9-33-56z\"]\n};\nvar faDiceD20 = {\n  prefix: 'fas',\n  iconName: 'dice-d20',\n  icon: [512, 512, [], \"f6cf\", \"M224.4-8.2c19.6-11.1 43.6-11.1 63.1 0l192 108.8c20 11.4 32.4 32.6 32.4 55.7l0 215.6c0 23-12.4 44.3-32.4 55.7l-192 108.8c-19.6 11.1-43.6 11.1-63.1 0L32.4 427.5C12.4 416.1 0 394.8 0 371.8L0 156.2c0-23 12.4-44.3 32.4-55.7L224.4-8.2zm52 73.2C267 49.8 245 49.8 235.6 65l-76.6 123.7-85.4-46.3-3.8-1.6c-8.9-2.7-18.8 1.1-23.4 9.6s-2.4 18.9 4.7 24.8l3.3 2.3 83.4 45.2-74.6 120.6C55.3 356.2 61 373 75 378.4l161 61.9 0 39.7c0 11 9 20 20 20s20-9 20-20l0-39.7 161-61.9c14-5.4 19.7-22.2 11.8-35l-74.7-120.6 83.4-45.2c9.7-5.3 13.3-17.4 8.1-27.1s-17.4-13.3-27.1-8.1L353 188.7 276.4 65zm-47 329.9l-122-46.9 54.5-88.1 67.5 135zM404.6 348l-122 46.9 67.5-135 54.5 88.1zM319.3 232L256 358.6 192.7 232 319.3 232zM308 192l-104.1 0 52-84 52 84z\"]\n};\nvar faArrowDownZA = {\n  prefix: 'fas',\n  iconName: 'arrow-down-z-a',\n  icon: [512, 512, [\"sort-alpha-desc\", \"sort-alpha-down-alt\"], \"f881\", \"M230.6 390.6l-80 80c-12.5 12.5-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 25.4-25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM288 64c0-17.7 14.3-32 32-32l128 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L397.3 160 448 160c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L370.8 96 320 96c-17.7 0-32-14.3-32-32zM412.6 273.7l80 160c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3l-7.2-14.3-88.4 0-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l80-160c5.4-10.8 16.5-17.7 28.6-17.7s23.2 6.8 28.6 17.7zM384 359.6l-20.2 40.4 40.4 0-20.2-40.4z\"]\n};\nvar faSortAlphaDesc = faArrowDownZA;\nvar faSortAlphaDownAlt = faArrowDownZA;\nvar faBrush = {\n  prefix: 'fas',\n  iconName: 'brush',\n  icon: [384, 512, [], \"f55d\", \"M162.4 6c-1.5-3.6-5-6-8.9-6l-19 0c-3.9 0-7.5 2.4-8.9 6L104.9 57.7c-3.2 8-14.6 8-17.8 0L66.4 6c-1.5-3.6-5-6-8.9-6L48 0C21.5 0 0 21.5 0 48l0 208 384 0 0-208c0-26.5-21.5-48-48-48L230.5 0c-3.9 0-7.5 2.4-8.9 6L200.9 57.7c-3.2 8-14.6 8-17.8 0L162.4 6zM0 304l0 16c0 35.3 28.7 64 64 64l64 0 0 64c0 35.3 28.7 64 64 64s64-28.7 64-64l0-64 64 0c35.3 0 64-28.7 64-64l0-16-384 0zM192 464c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"]\n};\nvar faPersonWalkingDashedLineArrowRight = {\n  prefix: 'fas',\n  iconName: 'person-walking-dashed-line-arrow-right',\n  icon: [640, 512, [], \"e553\", \"M160 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM73.4 227.9l22.6-22.6 0 69.3c0 28 12.2 54.7 33.5 72.9l71.4 61.2c5.9 5.1 9.8 12.1 10.9 19.8l12.6 88.1c2.5 17.5 18.7 29.7 36.2 27.2s29.7-18.7 27.2-36.2l-12.6-88.1c-3.3-23.1-14.9-44.1-32.6-59.3l-34.5-29.6 0-115.2 3.8 4.7c18.2 22.8 45.8 36 75 36l33.2 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-33.2 0c-9.7 0-18.9-4.4-25-12l-17.9-22.4c-23-28.8-57.9-45.6-94.8-45.6-32.2 0-63.1 12.8-85.8 35.6L28.1 182.6C10.1 200.6 0 225 0 250.5L0 288c0 17.7 14.3 32 32 32s32-14.3 32-32l0-37.5c0-8.5 3.4-16.6 9.4-22.6zM85.8 407.3c-1.5 5.2-4.3 10-8.1 13.8L9.4 489.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.3-68.3c11.5-11.5 19.9-25.8 24.4-41.5l2.2-7.6-46-39.4c-2.5-2.2-5-4.4-7.4-6.8L85.8 407.3zM432 8c0-13.3-10.7-24-24-24S384-5.3 384 8l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32zm0 128c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32zM408 320c-13.3 0-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32c0-13.3-10.7-24-24-24zm24 152c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32zM609 273c9.4-9.4 9.4-24.6 0-33.9l-72-72c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-102.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l102.1 0-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72z\"]\n};\nvar faArrowUpShortWide = {\n  prefix: 'fas',\n  iconName: 'arrow-up-short-wide',\n  icon: [576, 512, [\"sort-amount-up-alt\"], \"f885\", \"M320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0zM150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z\"]\n};\nvar faSortAmountUpAlt = faArrowUpShortWide;\nvar faGripVertical = {\n  prefix: 'fas',\n  iconName: 'grip-vertical',\n  icon: [320, 512, [\"grid-vertical\"], \"f58e\", \"M128 40c0-22.1-17.9-40-40-40L40 0C17.9 0 0 17.9 0 40L0 88c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zm0 192c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zM0 424l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM320 40c0-22.1-17.9-40-40-40L232 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zM192 232l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM320 424c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48z\"]\n};\nvar faGridVertical = faGripVertical;\nvar faCarTunnel = {\n  prefix: 'fas',\n  iconName: 'car-tunnel',\n  icon: [512, 512, [], \"e4de\", \"M256 0C114.6 0 0 114.6 0 256L0 448c0 35.3 28.7 64 64 64l42.8 0c-6.6-5.9-10.8-14.4-10.8-24l0-113.1c0-13.5 3.1-26.8 9-38.9l39.7-80.8c9.4-19.1 28.9-31.3 50.2-31.3L317 224c21.3 0 40.8 12.1 50.2 31.3L407 336c5.9 12.1 9 25.4 9 38.9L416 488c0 9.6-4.2 18.1-10.8 24l42.8 0c35.3 0 64-28.7 64-64l0-192C512 114.6 397.4 0 256 0zM362.8 512c-6.6-5.9-10.8-14.4-10.8-24l0-24-192 0 0 24c0 9.6-4.2 18.1-10.8 24l213.7 0zm-175-235.5l-29.3 59.5 194.9 0-29.3-59.5c-1.3-2.7-4.1-4.5-7.2-4.5L195 272c-3 0-5.8 1.7-7.2 4.5zM176 424a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm184-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faChartColumn = {\n  prefix: 'fas',\n  iconName: 'chart-column',\n  icon: [512, 512, [], \"e0e3\", \"M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zM144 224c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm144-64l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160c0-17.7 14.3-32 32-32s32 14.3 32 32zm80 32c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32zM512 96l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-224c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faCapricorn = {\n  prefix: 'fas',\n  iconName: 'capricorn',\n  icon: [576, 512, [], \"e848\", \"M240 32c79.5 0 144 64.5 144 144l0 65.2c18.8-10.9 40.7-17.2 64-17.2 70.7 0 128 57.3 128 128S518.7 480 448 480c-35.8 0-68.2-14.7-91.4-38.4-28.8 42.5-77.4 70.4-132.6 70.4-17.7 0-32-14.3-32-32s14.3-32 32-32c53 0 96-43 96-96l0-176c0-44.2-35.8-80-80-80s-80 35.8-80 80l0 208c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-224c0-35.3-28.7-64-64-64-17.7 0-32-14.3-32-32S14.3 32 32 32C72.6 32 108.8 51 132.2 80.5 158.6 50.7 197.1 32 240 32zM448 288a64 64 0 1 0 0 128 64 64 0 1 0 0-128z\"]\n};\nvar faTruckArrowRight = {\n  prefix: 'fas',\n  iconName: 'truck-arrow-right',\n  icon: [576, 512, [], \"e58b\", \"M64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64l3.3 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l102.6 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l3.3 0c35.3 0 64-28.7 64-64l0-146.7c0-17-6.7-33.3-18.7-45.3L512 146.7c-12-12-28.3-18.7-45.3-18.7l-50.7 0 0-32c0-35.3-28.7-64-64-64L64 32zM512 237.3l0 50.7-96 0 0-96 50.7 0 45.3 45.3zM152 384a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm232 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM305 225l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-102.1 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l102.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9z\"]\n};\nvar faTv = {\n  prefix: 'fas',\n  iconName: 'tv',\n  icon: [576, 512, [63717, \"television\", \"tv-alt\"], \"f26c\", \"M64 96l0 240 448 0 0-240-448 0zM0 96C0 60.7 28.7 32 64 32l448 0c35.3 0 64 28.7 64 64l0 240c0 35.3-28.7 64-64 64L64 400c-35.3 0-64-28.7-64-64L0 96zM160 448l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faTelevision = faTv;\nvar faTvAlt = faTv;\nvar faSection = {\n  prefix: 'fas',\n  iconName: 'section',\n  icon: [256, 512, [], \"e447\", \"M110 0C49.2 0 0 49.2 0 110 0 133.7 7.6 155.8 20.5 174 7.6 192 0 214.1 0 238 0 291.7 38.9 337.6 91.9 346.4l61.7 10.3c22.2 3.7 38.4 22.9 38.4 45.3 0 25.4-20.6 46-46 46l-98 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l98 0c60.7 0 110-49.2 110-110 0-23.7-7.6-45.9-20.5-64 12.9-18 20.5-40.1 20.5-64 0-53.8-38.9-99.6-91.9-108.5l-61.7-10.3C80.2 151.6 64 132.4 64 110 64 84.6 84.6 64 110 64l98 0c17.7 0 32-14.3 32-32S225.7 0 208 0L110 0zm74.7 299.1c-6.5-2.4-13.4-4.3-20.5-5.5l-61.7-10.3c-22.2-3.7-38.4-22.9-38.4-45.3 0-9.2 2.7-17.8 7.4-25 6.5 2.4 13.4 4.3 20.5 5.5l61.7 10.3c22.2 3.7 38.4 22.9 38.4 45.3 0 9.2-2.7 17.8-7.4 25z\"]\n};\nvar faPeace = {\n  prefix: 'fas',\n  iconName: 'peace',\n  icon: [512, 512, [9774], \"f67c\", \"M224 445.3l0-121.8-94.3 77.1c26.1 22.8 58.5 38.7 94.3 44.7zM89.2 351.1L224 240.8 224 66.7c-90.8 15.2-160 94.2-160 189.3 0 34.6 9.2 67.1 25.2 95.1zm293.1 49.5l-94.3-77.1 0 121.8c35.7-6 68.1-21.9 94.3-44.7zm40.6-49.5c16-28 25.2-60.5 25.2-95.1 0-95.1-69.2-174.1-160-189.3l0 174.2 134.8 110.3zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"]\n};\nvar faStar = {\n  prefix: 'fas',\n  iconName: 'star',\n  icon: [576, 512, [11088, 61446], \"f005\", \"M309.5-18.9c-4.1-8-12.4-13.1-21.4-13.1s-17.3 5.1-21.4 13.1L193.1 125.3 33.2 150.7c-8.9 1.4-16.3 7.7-19.1 16.3s-.5 18 5.8 24.4l114.4 114.5-25.2 159.9c-1.4 8.9 2.3 17.9 9.6 23.2s16.9 6.1 25 2L288.1 417.6 432.4 491c8 4.1 17.7 3.3 25-2s11-14.2 9.6-23.2L441.7 305.9 556.1 191.4c6.4-6.4 8.6-15.8 5.8-24.4s-10.1-14.9-19.1-16.3L383 125.3 309.5-18.9z\"]\n};\nvar faFlag = {\n  prefix: 'fas',\n  iconName: 'flag',\n  icon: [448, 512, [127988, 61725], \"f024\", \"M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32L0 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-121.6 62.7-18.8c41.9-12.6 87.1-8.7 126.2 10.9 42.7 21.4 92.5 24 137.2 7.2l37.1-13.9c12.5-4.7 20.8-16.6 20.8-30l0-247.7c0-23-24.2-38-44.8-27.7l-11.8 5.9c-44.9 22.5-97.8 22.5-142.8 0-36.4-18.2-78.3-21.8-117.2-10.1L64 54.4 64 32z\"]\n};\nvar faTriangleExclamation = {\n  prefix: 'fas',\n  iconName: 'triangle-exclamation',\n  icon: [512, 512, [9888, \"exclamation-triangle\", \"warning\"], \"f071\", \"M256 0c14.7 0 28.2 8.1 35.2 21l216 400c6.7 12.4 6.4 27.4-.8 39.5S486.1 480 472 480L40 480c-14.1 0-27.2-7.4-34.4-19.5s-7.5-27.1-.8-39.5l216-400c7-12.9 20.5-21 35.2-21zm0 352a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm0-192c-18.2 0-32.7 15.5-31.4 33.7l7.4 104c.9 12.5 11.4 22.3 23.9 22.3 12.6 0 23-9.7 23.9-22.3l7.4-104c1.3-18.2-13.1-33.7-31.4-33.7z\"]\n};\nvar faExclamationTriangle = faTriangleExclamation;\nvar faWarning = faTriangleExclamation;\nvar faSchoolCircleExclamation = {\n  prefix: 'fas',\n  iconName: 'school-circle-exclamation',\n  icon: [640, 512, [], \"e56c\", \"M64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l276 0c-10.5-14.6-19-30.7-25.1-48l-90.9 0 0-88c0-22.1 17.9-40 40-40l48 0c1 0 1.9 0 2.9 .1 26.3-74.6 97.5-128.1 181.1-128.1 28.6 0 55.6 6.2 80 17.4l0-33.4c0-35.3-28.7-64-64-64l-64 0-127.9-115.1c-18.3-16.4-46-16.4-64.2 0L128 128 64 128zm64 240c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32zM112 256l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16zM288 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nvar faGraduationCap = {\n  prefix: 'fas',\n  iconName: 'graduation-cap',\n  icon: [576, 512, [127891, \"mortar-board\"], \"f19d\", \"M48 195.8l209.2 86.1c9.8 4 20.2 6.1 30.8 6.1s21-2.1 30.8-6.1l242.4-99.8c9-3.7 14.8-12.4 14.8-22.1s-5.8-18.4-14.8-22.1L318.8 38.1C309 34.1 298.6 32 288 32s-21 2.1-30.8 6.1L14.8 137.9C5.8 141.6 0 150.3 0 160L0 456c0 13.3 10.7 24 24 24s24-10.7 24-24l0-260.2zm48 71.7L96 384c0 53 86 96 192 96s192-43 192-96l0-116.6-142.9 58.9c-15.6 6.4-32.2 9.7-49.1 9.7s-33.5-3.3-49.1-9.7L96 267.4z\"]\n};\nvar faMortarBoard = faGraduationCap;\nvar faStore = {\n  prefix: 'fas',\n  iconName: 'store',\n  icon: [512, 512, [], \"f54e\", \"M30.7 72.3C37.6 48.4 59.5 32 84.4 32l344 0c24.9 0 46.8 16.4 53.8 40.3l23.4 80.2c12.8 43.7-20.1 87.5-65.6 87.5-26.3 0-49.4-14.9-60.8-37.1-11.6 21.9-34.6 37.1-61.4 37.1-26.6 0-49.7-15-61.3-37-11.6 22-34.7 37-61.3 37-26.8 0-49.8-15.1-61.4-37.1-11.4 22.1-34.5 37.1-60.8 37.1-45.6 0-78.4-43.7-65.6-87.5L30.7 72.3zM96.4 352l320 0 0-66.4c7.6 1.6 15.5 2.4 23.5 2.4 14.3 0 28-2.6 40.5-7.2l0 151.2c0 26.5-21.5 48-48 48l-352 0c-26.5 0-48-21.5-48-48l0-151.2c12.5 4.6 26.1 7.2 40.5 7.2 8.1 0 15.9-.8 23.5-2.4l0 66.4z\"]\n};\nvar faUserAstronaut = {\n  prefix: 'fas',\n  iconName: 'user-astronaut',\n  icon: [448, 512, [], \"f4fb\", \"M224 336c74.6 0 138.4-46.4 164-112l4 0c13.3 0 24-10.7 24-24l0-80c0-13.3-10.7-24-24-24l-4 0C362.4 30.4 298.6-16 224-16S85.6 30.4 60 96l-4 0c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24l4 0c25.6 65.6 89.4 112 164 112zM208 80l32 0c53 0 96 43 96 96s-43 96-96 96l-32 0c-53 0-96-43-96-96s43-96 96-96zM16 484.6C16 499.7 28.3 512 43.4 512l52.6 0 0-48c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32l0 48 52.6 0c15.1 0 27.4-12.3 27.4-27.4 0-59.8-31.9-112.2-79.6-141-36.4 25.5-80.6 40.4-128.4 40.4s-92-14.9-128.4-40.4C47.9 372.4 16 424.8 16 484.6zM183.3 141.5c-.9-3.3-3.9-5.5-7.3-5.5s-6.4 2.2-7.3 5.5l-6 21.2-21.2 6c-3.3 .9-5.5 3.9-5.5 7.3s2.2 6.4 5.5 7.3l21.2 6 6 21.2c.9 3.3 3.9 5.5 7.3 5.5s6.4-2.2 7.3-5.5l6-21.2 21.2-6c3.3-.9 5.5-3.9 5.5-7.3s-2.2-6.4-5.5-7.3l-21.2-6-6-21.2zM152 488l0 24 48 0 0-24c0-13.3-10.7-24-24-24s-24 10.7-24 24zm120-24c-13.3 0-24 10.7-24 24l0 24 48 0 0-24c0-13.3-10.7-24-24-24z\"]\n};\nvar faBuildingFlag = {\n  prefix: 'fas',\n  iconName: 'building-flag',\n  icon: [640, 512, [], \"e4d5\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM176 352l32 0c17.7 0 32 14.3 32 32l0 80-96 0 0-80c0-17.7 14.3-32 32-32zM96 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM240 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM96 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm144-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM464 0c-17.7 0-32 14.3-32 32l0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-288 112 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32L496 32c0-17.7-14.3-32-32-32z\"]\n};\nvar faMugSaucer = {\n  prefix: 'fas',\n  iconName: 'mug-saucer',\n  icon: [576, 512, [\"coffee\"], \"f0f4\", \"M64 64c0-17.7 14.3-32 32-32l352 0c70.7 0 128 57.3 128 128S518.7 288 448 288c0 53-43 96-96 96l-192 0c-53 0-96-43-96-96L64 64zm448 96c0-35.3-28.7-64-64-64l0 128c35.3 0 64-28.7 64-64zM64 448l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 512c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"]\n};\nvar faCoffee = faMugSaucer;\nvar faLemon = {\n  prefix: 'fas',\n  iconName: 'lemon',\n  icon: [448, 512, [127819], \"f094\", \"M448 96c0-35.3-28.7-64-64-64-6.6 0-13 1-19 2.9-22.5 7-48.1 14.9-71 9-75.2-19.1-156.4 11-213.7 68.3S-7.2 250.8 11.9 326c5.8 22.9-2 48.4-9 71-1.9 6-2.9 12.4-2.9 19 0 35.3 28.7 64 64 64 6.6 0 13-1 19.1-2.9 22.5-7 48.1-14.9 71-9 75.2 19.1 156.4-11 213.7-68.3S455.2 261.2 436.1 186c-5.8-22.9 2-48.4 9-71 1.9-6 2.9-12.4 2.9-19.1zM222.7 143c-52 15.2-96.5 59.7-111.7 111.7-3.7 12.7-17.1 20-29.8 16.3S61.2 254 65 241.3c19.8-67.7 76.6-124.5 144.3-144.3 12.7-3.7 26.1 3.6 29.8 16.3s-3.6 26.1-16.3 29.8z\"]\n};\nvar faCaravan = {\n  prefix: 'fas',\n  iconName: 'caravan',\n  icon: [640, 512, [], \"f8ff\", \"M32 96c0-35.3 28.7-64 64-64l320 0c70.7 0 128 57.3 128 128l0 192 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-296.4 0c.2 2.6 .4 5.3 .4 8 0 48.6-39.4 88-88 88s-88-39.4-88-88c0-2.7 .1-5.4 .4-8L96 416c-35.3 0-64-28.7-64-64L32 96zM352 352l64 0c17.7 0 32-14.3 32-32l0-48-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 160c0 17.7 14.3 32 32 32zM160 128c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0zm64 336a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"]\n};\nvar faQ = {\n  prefix: 'fas',\n  iconName: 'q',\n  icon: [448, 512, [113], \"51\", \"M64 256c0 88.4 71.6 160 160 160 28.9 0 56-7.7 79.4-21.1l-72-86.4c-11.3-13.6-9.5-33.8 4.1-45.1s33.8-9.5 45.1 4.1l70.9 85.1c20.4-26.8 32.5-60.3 32.5-96.6 0-88.4-71.6-160-160-160S64 167.6 64 256zM344.9 444.6C310 467 268.5 480 224 480 100.3 480 0 379.7 0 256S100.3 32 224 32 448 132.3 448 256c0 56.1-20.6 107.4-54.7 146.7l47.3 56.8c11.3 13.6 9.5 33.8-4.1 45.1s-33.8 9.5-45.1-4.1l-46.6-55.9z\"]\n};\nvar faLock = {\n  prefix: 'fas',\n  iconName: 'lock',\n  icon: [384, 512, [128274], \"f023\", \"M128 96l0 64 128 0 0-64c0-35.3-28.7-64-64-64s-64 28.7-64 64zM64 160l0-64C64 25.3 121.3-32 192-32S320 25.3 320 96l0 64c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64z\"]\n};\nvar faPaintRoller = {\n  prefix: 'fas',\n  iconName: 'paint-roller',\n  icon: [512, 512, [], \"f5aa\", \"M0 64C0 28.7 28.7 0 64 0L352 0c35.3 0 64 28.7 64 64l16 0c44.2 0 80 35.8 80 80l0 96c0 44.2-35.8 80-80 80l-160 0c-8.8 0-16 7.2-16 16l0 18.7c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-96c0-20.9 13.4-38.7 32-45.3l0-18.7c0-44.2 35.8-80 80-80l160 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16l-16 0c0 35.3-28.7 64-64 64L64 192c-35.3 0-64-28.7-64-64L0 64z\"]\n};\nvar faVolumeHigh = {\n  prefix: 'fas',\n  iconName: 'volume-high',\n  icon: [640, 512, [128266, \"volume-up\"], \"f028\", \"M533.6 32.5c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C557.5 113.8 592 180.8 592 256s-34.5 142.2-88.7 186.3c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5C598.5 426.7 640 346.2 640 256S598.5 85.2 533.6 32.5zM473.1 107c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C475.3 170.7 496 210.9 496 256s-20.7 85.3-53.2 111.8c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5c43.2-35.2 70.9-88.9 70.9-149s-27.7-113.8-70.9-149zm-60.5 74.5c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C393.1 227.6 400 241 400 256s-6.9 28.4-17.7 37.3c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5C434.1 312.9 448 286.1 448 256s-13.9-56.9-35.4-74.5zM80 352l48 0 134.1 119.2c6.4 5.7 14.6 8.8 23.1 8.8 19.2 0 34.8-15.6 34.8-34.8l0-378.4c0-19.2-15.6-34.8-34.8-34.8-8.5 0-16.7 3.1-23.1 8.8L128 160 80 160c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48z\"]\n};\nvar faVolumeUp = faVolumeHigh;\nvar faFolderPlus = {\n  prefix: 'fas',\n  iconName: 'folder-plus',\n  icon: [512, 512, [], \"f65e\", \"M512 384c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l138.7 0c13.8 0 27.3 4.5 38.4 12.8l38.4 28.8c5.5 4.2 12.3 6.4 19.2 6.4L448 80c35.3 0 64 28.7 64 64l0 240zM256 160c-13.3 0-24 10.7-24 24l0 48-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0 0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48 48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-48c0-13.3-10.7-24-24-24z\"]\n};\nvar faMercury = {\n  prefix: 'fas',\n  iconName: 'mercury',\n  icon: [384, 512, [9791], \"f223\", \"M117-4C106-17.8 85.8-20 72.1-9s-16 31.2-5 45C74.9 45.7 83.7 54.5 93.5 62.1 46.7 93.7 16 147.3 16 208 16 294.3 78.1 366.1 160 381.1l0 34.9-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-34.9c81.9-15 144-86.8 144-173.1 0-60.7-30.7-114.3-77.5-145.9 9.8-7.7 18.7-16.4 26.4-26.1 11.1-13.8 8.8-33.9-5-45S278-17.8 267-4c-17.6 22-44.7 36-75 36S134.7 18 117-4zm75 324c-61.9 0-112-50.1-112-112S130.1 96 192 96 304 146.1 304 208c0 61.8-50.1 112-111.9 112l-.1 0z\"]\n};\nvar faAnchor = {\n  prefix: 'fas',\n  iconName: 'anchor',\n  icon: [576, 512, [9875], \"f13d\", \"M288 64a32 32 0 1 0 0 64 32 32 0 1 0 0-64zM192 96c0-53 43-96 96-96s96 43 96 96c0 41.8-26.7 77.4-64 90.5l0 257.9c62.9-14.3 110.2-69.7 111.9-136.5l-16.1 14.1c-10 8.7-25.1 7.7-33.9-2.3s-7.7-25.1 2.3-33.9l64-56c9-7.9 22.6-7.9 31.6 0l64 56c10 8.7 11 23.9 2.3 33.9s-23.9 11-33.9 2.3L496 307.9C493.9 421 401.6 512 288 512S82.1 421 80 307.9L63.8 322.1c-10 8.7-25.1 7.7-33.9-2.3s-7.7-25.1 2.3-33.9l64-56c9-7.9 22.6-7.9 31.6 0l64 56c10 8.7 11 23.9 2.3 33.9s-23.9 11-33.9 2.3l-16.1-14.1c1.8 66.8 49.1 122.2 111.9 136.5l0-257.9c-37.3-13.2-64-48.7-64-90.5z\"]\n};\nvar faSquareParking = {\n  prefix: 'fas',\n  iconName: 'square-parking',\n  icon: [448, 512, [127359, \"parking\"], \"f540\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM192 256l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-48 0 0 64zm48 64l-48 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-184c0-22.1 17.9-40 40-40l72 0c53 0 96 43 96 96s-43 96-96 96z\"]\n};\nvar faParking = faSquareParking;\nvar faHanukiah = {\n  prefix: 'fas',\n  iconName: 'hanukiah',\n  icon: [640, 512, [128334], \"f6e6\", \"M314.2 3.3c-5.1 8.8-18.2 33.3-18.2 52.7 0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zm-288 48C21.1 60.1 8 84.6 8 104 8 117.3 18.7 128 32 128s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM88 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C101.1 60.1 88 84.6 88 104zm82.2-52.7c-5.1 8.8-18.2 33.3-18.2 52.7 0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM216 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C229.1 60.1 216 84.6 216 104zM394.2 51.3c-5.1 8.8-18.2 33.3-18.2 52.7 0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM440 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C453.1 60.1 440 84.6 440 104zm82.2-52.7c-5.1 8.8-18.2 33.3-18.2 52.7 0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM584 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C597.1 60.1 584 84.6 584 104zM112 160c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zm160 0c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zM352 144c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176-192 0c-17.7 0-32-14.3-32-32l0-96c0-17.7-14.3-32-32-32S0 174.3 0 192l0 96c0 53 43 96 96 96l192 0 0 64-128 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0 0-64 192 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32l-192 0 0-176z\"]\n};\nvar faRotateLeft = {\n  prefix: 'fas',\n  iconName: 'rotate-left',\n  icon: [512, 512, [\"rotate-back\", \"rotate-backward\", \"undo-alt\"], \"f2ea\", \"M24 192l144 0c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-46.7-46.7c75.3-58.6 184.3-53.3 253.5 15.9 75 75 75 196.5 0 271.5s-196.5 75-271.5 0c-10.2-10.2-19-21.3-26.4-33-9.5-14.9-29.3-19.3-44.2-9.8s-19.3 29.3-9.8 44.2C49.7 408.7 61.4 423.5 75 437 175 537 337 537 437 437S537 175 437 75C342.8-19.3 193.3-24.7 92.7 58.8L41 7C34.1 .2 23.8-1.9 14.8 1.8S0 14.3 0 24L0 168c0 13.3 10.7 24 24 24z\"]\n};\nvar faRotateBack = faRotateLeft;\nvar faRotateBackward = faRotateLeft;\nvar faUndoAlt = faRotateLeft;\nvar faHeading = {\n  prefix: 'fas',\n  iconName: 'heading',\n  icon: [448, 512, [\"header\"], \"f1dc\", \"M0 64C0 46.3 14.3 32 32 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 112 224 0 0-112-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 320 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-144-224 0 0 144 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-320-16 0C14.3 96 0 81.7 0 64z\"]\n};\nvar faHeader = faHeading;\nvar faCrosshairs = {\n  prefix: 'fas',\n  iconName: 'crosshairs',\n  icon: [576, 512, [], \"f05b\", \"M288-16c17.7 0 32 14.3 32 32l0 18.3c98.1 14 175.7 91.6 189.7 189.7l18.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-18.3 0c-14 98.1-91.6 175.7-189.7 189.7l0 18.3c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.3C157.9 463.7 80.3 386.1 66.3 288L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l18.3 0C80.3 125.9 157.9 48.3 256 34.3L256 16c0-17.7 14.3-32 32-32zM131.2 288c12.7 62.7 62.1 112.1 124.8 124.8l0-12.8c0-17.7 14.3-32 32-32s32 14.3 32 32l0 12.8c62.7-12.7 112.1-62.1 124.8-124.8L432 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l12.8 0C432.1 161.3 382.7 111.9 320 99.2l0 12.8c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-12.8C193.3 111.9 143.9 161.3 131.2 224l12.8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-12.8 0zM288 208a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"]\n};\nvar faCircleNodes = {\n  prefix: 'fas',\n  iconName: 'circle-nodes',\n  icon: [512, 512, [], \"e4e2\", \"M418.4 157.9c35.3-8.3 61.6-40 61.6-77.9 0-44.2-35.8-80-80-80-43.4 0-78.7 34.5-80 77.5L136.2 151.1C121.7 136.8 101.9 128 80 128 35.8 128 0 163.8 0 208s35.8 80 80 80c12.2 0 23.8-2.7 34.1-7.6L259.7 407.8c-2.4 7.6-3.7 15.8-3.7 24.2 0 44.2 35.8 80 80 80s80-35.8 80-80c0-27.7-14-52.1-35.4-66.4l37.8-207.7zM156.3 232.2c2.2-6.9 3.5-14.2 3.7-21.7l183.8-73.5c3.6 3.5 7.4 6.7 11.6 9.5L317.6 354.1c-5.5 1.3-10.8 3.1-15.8 5.5L156.3 232.2z\"]\n};\nvar faWindowRestore = {\n  prefix: 'fas',\n  iconName: 'window-restore',\n  icon: [576, 512, [], \"f2d2\", \"M512 96L160 96c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64l-48 0 0-64 48 0 0-192zM0 224c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 224zm64 40c0 13.3 10.7 24 24 24l240 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 240c-13.3 0-24 10.7-24 24z\"]\n};\nvar faR = {\n  prefix: 'fas',\n  iconName: 'r',\n  icon: [320, 512, [114], \"52\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 95.3 0 102.4 146.4c10.1 14.5 30.1 18 44.6 7.9s18-30.1 7.9-44.6L230.1 309.5C282.8 288.1 320 236.4 320 176 320 96.5 255.5 32 176 32L32 32zM176 256l-112 0 0-160 112 0c44.2 0 80 35.8 80 80s-35.8 80-80 80z\"]\n};\nvar faFilterCircleXmark = {\n  prefix: 'fas',\n  iconName: 'filter-circle-xmark',\n  icon: [576, 512, [], \"e17b\", \"M32 64C19.1 64 7.4 71.8 2.4 83.8S.2 109.5 9.4 118.6L192 301.3 192 416c0 8.5 3.4 16.6 9.4 22.6l64 64c2.5 2.5 5.3 4.5 8.3 6-21.2-30.9-33.6-68.3-33.6-108.6 0-99.4 75.5-181.1 172.3-191l90.4-90.4c9.2-9.2 11.9-22.9 6.9-34.9S492.9 64 480 64L32 64zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faGopuram = {\n  prefix: 'fas',\n  iconName: 'gopuram',\n  icon: [512, 512, [], \"f664\", \"M120 0c13.3 0 24 10.7 24 24l0 8 40 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 8 48 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 8 40 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 136c26.5 0 48 21.5 48 48l0 80c26.5 0 48 21.5 48 48l0 128c0 26.5-21.5 48-48 48l-48 0 0-224-32 0 0-128-48 0 0 128 32 0 0 224-224 0 0-224 32 0 0-128-48 0 0 128-32 0 0 224-48 0c-26.5 0-48-21.5-48-48L0 336c0-26.5 21.5-48 48-48l0-80c0-26.5 21.5-48 48-48L96 24c0-13.3 10.7-24 24-24zM256 208c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zM208 400l0 64 96 0 0-64c0-26.5-21.5-48-48-48s-48 21.5-48 48zM256 96c-17.7 0-32 14.3-32 32l0 32 64 0 0-32c0-17.7-14.3-32-32-32z\"]\n};\nvar faHeartCircleMinus = {\n  prefix: 'fas',\n  iconName: 'heart-circle-minus',\n  icon: [576, 512, [], \"e4ff\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM288 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm224 0c0-8.8-7.2-16-16-16l-128 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l128 0c8.8 0 16-7.2 16-16z\"]\n};\nvar faStarOfLife = {\n  prefix: 'fas',\n  iconName: 'star-of-life',\n  icon: [512, 512, [], \"f621\", \"M208.5 32c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 140.9 122-70.4c15.3-8.8 34.9-3.6 43.7 11.7l16 27.7c8.8 15.3 3.6 34.9-11.7 43.7l-122 70.4 122 70.4c15.3 8.8 20.6 28.4 11.7 43.7l-16 27.7c-8.8 15.3-28.4 20.6-43.7 11.7l-122-70.4 0 140.9c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-140.9-122 70.4c-15.3 8.8-34.9 3.6-43.7-11.7l-16-27.7c-8.8-15.3-3.6-34.9 11.7-43.7l122-70.4-122-70.4c-15.3-8.8-20.5-28.4-11.7-43.7l16-27.7c8.8-15.3 28.4-20.5 43.7-11.7l122 70.4 0-140.9z\"]\n};\nvar faBusinessTime = {\n  prefix: 'fas',\n  iconName: 'business-time',\n  icon: [640, 512, [\"briefcase-clock\"], \"f64a\", \"M264 48l112 0c4.4 0 8 3.6 8 8l0 40-128 0 0-40c0-4.4 3.6-8 8-8zm-56 8l0 40-80 0c-35.3 0-64 28.7-64 64l0 96 305 0c33.8-29.9 78.3-48 127-48 28.6 0 55.6 6.2 80 17.4l0-65.4c0-35.3-28.7-64-64-64l-80 0 0-40c0-30.9-25.1-56-56-56L264 0c-30.9 0-56 25.1-56 56zm80 296c-17.7 0-32-14.3-32-32l0-16-192 0 0 112c0 35.3 28.7 64 64 64l193.4 0c-11.2-24.4-17.4-51.4-17.4-80 0-16.6 2.1-32.7 6-48l-22 0zm352 48a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zM496 320c8.8 0 16 7.2 16 16l0 48 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16z\"]\n};\nvar faBriefcaseClock = faBusinessTime;\nvar faFireExtinguisher = {\n  prefix: 'fas',\n  iconName: 'fire-extinguisher',\n  icon: [512, 512, [129519], \"f134\", \"M512 32c0-9.6-4.3-18.7-11.7-24.7S483.1-1.3 473.7 .6l-160 32C301.5 35.1 292 44.3 289 56l-65 0 0-24c0-17.7-14.3-32-32-32L160 0c-17.7 0-32 14.3-32 32l0 28.4c-55.3 12.3-101.3 49.5-125.5 99.1-5.8 11.9-.9 26.3 11.1 32.1s26.3 .9 32.1-11.1C62 146.9 91.8 121.1 128 110l0 28.8c-37.8 18-64 56.5-64 101.2l0 128 224 0 0-128c0-44.7-26.2-83.2-64-101.2l0-34.8 65 0c3 11.7 12.5 20.9 24.7 23.4l160 32c9.4 1.9 19.1-.6 26.6-6.6S512 137.6 512 128l0-96zM288 448l0-32-224 0 0 32c0 35.3 28.7 64 64 64l96 0c35.3 0 64-28.7 64-64z\"]\n};\nvar faArrowDownLong = {\n  prefix: 'fas',\n  iconName: 'arrow-down-long',\n  icon: [320, 512, [\"long-arrow-down\"], \"f175\", \"M137.4 534.6c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 434.7 192 0c0-17.7-14.3-32-32-32S128-17.7 128 0l0 434.7-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128z\"]\n};\nvar faLongArrowDown = faArrowDownLong;\nvar faUserMinus = {\n  prefix: 'fas',\n  iconName: 'user-minus',\n  icon: [640, 512, [], \"f503\", \"M285.7 304c98.5 0 178.3 79.8 178.3 178.3 0 16.4-13.3 29.7-29.7 29.7L77.7 512C61.3 512 48 498.7 48 482.3 48 383.8 127.8 304 226.3 304l59.4 0zM256 248a120 120 0 1 1 0-240 120 120 0 1 1 0 240zm344-96c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l144 0z\"]\n};\nvar faMoneyCheck = {\n  prefix: 'fas',\n  iconName: 'money-check',\n  icon: [512, 512, [], \"f53c\", \"M0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM96 312c0 13.3 10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0c-13.3 0-24 10.7-24 24zm24-136c-13.3 0-24 10.7-24 24s10.7 24 24 24l272 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-272 0z\"]\n};\nvar faHouseLaptop = {\n  prefix: 'fas',\n  iconName: 'house-laptop',\n  icon: [640, 512, [\"laptop-house\"], \"e066\", \"M448 240l19.9 0c15.5 0 28.1-12.6 28.1-28.1 0-7.6-3.1-14.9-8.6-20.2L283.5-4.9C276.1-12 266.3-16 256-16s-20.1 4-27.5 11.1L24.6 191.7C19.1 197 16 204.3 16 211.9 16 227.4 28.6 240 44.1 240l19.9 0 0 144c0 35.3 28.7 64 64 64l85.7 0c7.4-6.6 16.4-11.4 26.3-14l0-130c0-5.5 .7-10.9 2-16l-10 0c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 24 144 0zM352 352l160 0 0 128-160 0 0-128zm-64-32l0 160-32 0c-8.8 0-16 7.2-16 16 0 26.5 21.5 48 48 48l288 0c26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16l-32 0 0-160c0-17.7-14.3-32-32-32l-224 0c-17.7 0-32 14.3-32 32z\"]\n};\nvar faLaptopHouse = faHouseLaptop;\nvar faDownload = {\n  prefix: 'fas',\n  iconName: 'download',\n  icon: [448, 512, [], \"f019\", \"M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 210.7-41.4-41.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 242.7 256 32zM64 320c-35.3 0-64 28.7-64 64l0 32c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-32c0-35.3-28.7-64-64-64l-46.9 0-56.6 56.6c-31.2 31.2-81.9 31.2-113.1 0L110.9 320 64 320zm304 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faSagittarius = {\n  prefix: 'fas',\n  iconName: 'sagittarius',\n  icon: [448, 512, [], \"e84d\", \"M416 32c17.7 0 32 14.3 32 32l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-82.8-146.8 146.8 41.4 41.4c12.5 12.5 12.5 32.8 0 45.2s-32.8 12.5-45.3 0L192 333.3 54.6 470.6c-12.5 12.5-32.8 12.5-45.2 0s-12.5-32.8 0-45.2L146.8 288 105.4 246.6c-12.5-12.5-12.5-32.8 0-45.2s32.8-12.5 45.2 0L192 242.8 338.8 96 256 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0z\"]\n};\nvar faCouch = {\n  prefix: 'fas',\n  iconName: 'couch',\n  icon: [640, 512, [], \"f4b8\", \"M144 272C144 224.7 109.8 185.4 64.8 177.5 72 113.6 126.2 64 192 64l256 0c65.8 0 120 49.6 127.2 113.5-45 8-79.2 47.2-79.2 94.5l0 32-352 0 0-32zM0 384L0 272c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 448 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 112c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64z\"]\n};\nvar faRoadLock = {\n  prefix: 'fas',\n  iconName: 'road-lock',\n  icon: [576, 512, [], \"e567\", \"M256 32l-76.3 0c-29.4 0-55.1 20.1-62.1 48.6L33.4 420.5C25.9 450.7 48.8 480 80 480l175.9 0 0-64c0-17.7 14.3-32 32-32 6.1 0 11.8 1.7 16.7 4.7 2.8-23.9 14.3-45.1 31.4-60.3l0-24.4c0-70.7 57.3-128 128-128 6.2 0 12.4 .4 18.4 1.3L458.5 80.6C451.4 52.1 425.8 32 396.3 32l-76.4 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm64 192l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm176 80.1l0 47.9-64 0 0-47.9c0-17.7 14.3-32 32-32s32 14.3 32 32zM352 400l0 96c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-96c0-20.9-13.4-38.7-32-45.3l0-50.6c0-44.2-35.8-80-80-80s-80 35.8-80 80l0 50.6c-18.6 6.6-32 24.4-32 45.3z\"]\n};\nvar faScissors = {\n  prefix: 'fas',\n  iconName: 'scissors',\n  icon: [512, 512, [9984, 9986, 9988, \"cut\"], \"f0c4\", \"M192 256l-39.5 39.5c-12.6-4.9-26.2-7.5-40.5-7.5-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112c0-14.3-2.7-27.9-7.5-40.5L499.2 76.8c7.1-7.1 7.1-18.5 0-25.6-28.3-28.3-74.1-28.3-102.4 0L256 192 216.5 152.5c4.9-12.6 7.5-26.2 7.5-40.5 0-61.9-50.1-112-112-112S0 50.1 0 112 50.1 224 112 224c14.3 0 27.9-2.7 40.5-7.5L192 256zm97.9 97.9L396.8 460.8c28.3 28.3 74.1 28.3 102.4 0 7.1-7.1 7.1-18.5 0-25.6l-145.3-145.3-64 64zM64 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm48 240a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"]\n};\nvar faCut = faScissors;\nvar faBug = {\n  prefix: 'fas',\n  iconName: 'bug',\n  icon: [576, 512, [], \"f188\", \"M192 96c0-53 43-96 96-96s96 43 96 96l0 3.6c0 15.7-12.7 28.4-28.4 28.4l-135.1 0c-15.7 0-28.4-12.7-28.4-28.4l0-3.6zm345.6 12.8c10.6 14.1 7.7 34.2-6.4 44.8l-97.8 73.3c5.3 8.9 9.3 18.7 11.8 29.1l98.8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 32c0 2.6-.1 5.3-.2 7.9l83.4 62.5c14.1 10.6 17 30.7 6.4 44.8s-30.7 17-44.8 6.4l-63.1-47.3c-23.2 44.2-66.5 76.2-117.7 83.9L312 280c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 230.2c-51.2-7.7-94.5-39.7-117.7-83.9L83.2 473.6c-14.1 10.6-34.2 7.7-44.8-6.4s-7.7-34.2 6.4-44.8l83.4-62.5c-.1-2.6-.2-5.2-.2-7.9l0-32-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l98.8 0c2.5-10.4 6.5-20.2 11.8-29.1L44.8 153.6c-14.1-10.6-17-30.7-6.4-44.8s30.7-17 44.8-6.4L192 184c12.3-5.1 25.8-8 40-8l112 0c14.2 0 27.7 2.8 40 8l108.8-81.6c14.1-10.6 34.2-7.7 44.8 6.4z\"]\n};\nvar faArrowRightFromBracket = {\n  prefix: 'fas',\n  iconName: 'arrow-right-from-bracket',\n  icon: [512, 512, [\"sign-out\"], \"f08b\", \"M160 96c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 32C43 32 0 75 0 128L0 384c0 53 43 96 96 96l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l64 0zM502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 192 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z\"]\n};\nvar faSignOut = faArrowRightFromBracket;\nvar faHandHoldingHand = {\n  prefix: 'fas',\n  iconName: 'hand-holding-hand',\n  icon: [576, 512, [], \"e4f7\", \"M466.8 186.5l42.5-42.5 34.7 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L223.6 16c-29 0-57.3 9.3-80.7 26.5L16.3 135.8c-17.8 13.1-21.6 38.1-8.5 55.9s38.1 21.6 55.9 8.5L183.4 112 296 112c13.3 0 24 10.7 24 24s-10.7 24-24 24l-72 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l152.2 0c33.9 0 66.5-13.5 90.5-37.5zm-357.5 139L66.7 368 32 368c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l320.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 400 280 400c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-152.2 0c-33.9 0-66.5 13.5-90.5 37.5z\"]\n};\nvar faStroopwafel = {\n  prefix: 'fas',\n  iconName: 'stroopwafel',\n  icon: [512, 512, [], \"f551\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM312.6 63.7c-6.2-6.2-16.4-6.2-22.6 0L256 97.6 222.1 63.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l33.9 33.9-45.3 45.3-56.6-56.6c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l56.6 56.6-45.3 45.3-33.9-33.9c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L97.6 256 63.7 289.9c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l33.9-33.9 45.3 45.3-56.6 56.6c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56.6-56.6 45.3 45.3-33.9 33.9c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l33.9-33.9 33.9 33.9c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-33.9-33.9 45.3-45.3 56.6 56.6c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-56.6-56.6 45.3-45.3 33.9 33.9c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-33.9-33.9 33.9-33.9c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-33.9 33.9-45.3-45.3 56.6-56.6c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-56.6 56.6-45.3-45.3 33.9-33.9c6.2-6.2 6.2-16.4 0-22.6zM142.9 256l45.3-45.3 45.3 45.3-45.3 45.3-45.3-45.3zm67.9 67.9l45.3-45.3 45.3 45.3-45.3 45.3-45.3-45.3zM278.6 256l45.3-45.3 45.3 45.3-45.3 45.3-45.3-45.3zm22.6-67.9l-45.3 45.3-45.3-45.3 45.3-45.3 45.3 45.3z\"]\n};\nvar faChild = {\n  prefix: 'fas',\n  iconName: 'child',\n  icon: [320, 512, [], \"f1ae\", \"M96 64A64 64 0 1 1 224 64 64 64 0 1 1 96 64zm48 320l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32L80 287.8 59.1 321c-9.4 15-29.2 19.4-44.1 10S-4.5 301.9 4.9 287l39.9-63.3C69.7 184 113.2 160 160 160s90.3 24 115.2 63.6L315.1 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10L240 287.8 240 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-32 0z\"]\n};\nvar faIceCream = {\n  prefix: 'fas',\n  iconName: 'ice-cream',\n  icon: [384, 512, [127848], \"f810\", \"M335.1 160c.6-5.3 .9-10.6 .9-16 0-79.5-64.5-144-144-144S48 64.5 48 144c0 5.4 .3 10.7 .9 16l-.9 0c-26.5 0-48 21.5-48 48s21.5 48 48 48l288 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-.9 0zM64 304L169.2 529.5c4.1 8.8 13 14.5 22.8 14.5s18.6-5.7 22.8-14.5L320 304 64 304z\"]\n};\nvar faComputerMouse = {\n  prefix: 'fas',\n  iconName: 'computer-mouse',\n  icon: [384, 512, [128433, \"mouse\"], \"f8cc\", \"M0 192l168 0 0-192-8 0C71.6 0 0 71.6 0 160l0 32zm0 48L0 352c0 88.4 71.6 160 160 160l64 0c88.4 0 160-71.6 160-160l0-112-384 0zm384-48l0-32C384 71.6 312.4 0 224 0l-8 0 0 192 168 0z\"]\n};\nvar faMouse = faComputerMouse;\nvar faFaucet = {\n  prefix: 'fas',\n  iconName: 'faucet',\n  icon: [512, 512, [], \"e005\", \"M192 64c0-17.7 14.3-32 32-32s32 14.3 32 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 64 18.7 0c8.5 0 16.6 3.4 22.6 9.4l22.6 22.6 32 0c88.4 0 160 71.6 160 160 0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s-14.3-32-32-32l-36.1 0c-20.2 29-53.9 48-91.9 48s-71.7-19-91.9-48L32 352c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l96 0 22.6-22.6c6-6 14.1-9.4 22.6-9.4l18.7 0 0-64-96 0c-17.7 0-32-14.3-32-32S78.3 64 96 64l96 0z\"]\n};\nvar faAward = {\n  prefix: 'fas',\n  iconName: 'award',\n  icon: [448, 512, [], \"f559\", \"M245.9-25.9c-13.4-8.2-30.3-8.2-43.7 0-24.4 14.9-39.5 18.9-68.1 18.3-15.7-.4-30.3 8.1-37.9 21.9-13.7 25.1-24.8 36.2-49.9 49.9-13.8 7.5-22.2 22.2-21.9 37.9 .7 28.6-3.4 43.7-18.3 68.1-8.2 13.4-8.2 30.3 0 43.7 14.9 24.4 18.9 39.5 18.3 68.1-.4 15.7 8.1 30.3 21.9 37.9 22.1 12.1 33.3 22.1 45.1 41.5L42.7 458.5c-5.9 11.9-1.1 26.3 10.7 32.2l86 43c11.5 5.7 25.5 1.4 31.7-9.8l52.8-95.1 52.8 95.1c6.2 11.2 20.2 15.6 31.7 9.8l86-43c11.9-5.9 16.7-20.3 10.7-32.2l-48.6-97.2c11.7-19.4 23-29.4 45.1-41.5 13.8-7.5 22.2-22.2 21.9-37.9-.7-28.6 3.4-43.7 18.3-68.1 8.2-13.4 8.2-30.3 0-43.7-14.9-24.4-18.9-39.5-18.3-68.1 .4-15.7-8.1-30.3-21.9-37.9-25.1-13.7-36.2-24.8-49.9-49.9-7.5-13.8-22.2-22.2-37.9-21.9-28.6 .7-43.7-3.4-68.1-18.3zM224 96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"]\n};\nvar faPersonDrowning = {\n  prefix: 'fas',\n  iconName: 'person-drowning',\n  icon: [640, 512, [], \"e545\", \"M264 88a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM133.9 65.6c16.8-5.6 34.9 3.5 40.5 20.2l10.9 32.8c9.4 28.3 33.2 49.5 62.5 55.6 5.6 1.2 11.3 1.8 17.1 1.8l88 0c17.2 0 34.3-2.8 50.6-8.2l114.4-38.1c16.8-5.6 34.9 3.5 40.5 20.2s-3.5 34.9-20.2 40.5L423.7 228.5c-8.4 2.8-17 5.1-25.7 6.9l-26.5 88.3c-6.1 3.4-12.1 7.3-17.9 11.7-22.1 16.6-29.1 16.6-51.2 0-26.2-19.7-56.9-30.2-87.8-31.3l20.2-67.2c-51.5-10.7-93.5-48.1-110.2-98l-10.9-32.8c-5.6-16.8 3.5-34.9 20.2-40.5zM403.4 412.1C379.1 430.3 351.1 448 320 448s-59.1-17.7-83.4-35.9c-21.3-16.1-49.9-16.1-71.2 0-23.8 17.9-54.1 35.5-88.1 35.3-20.4-.1-40.7-6.7-59.8-21.1-10.6-8-12.7-23-4.7-33.6s23-12.7 33.6-4.7c11.3 8.5 21.6 11.4 31.2 11.5 17.6 .1 37.3-9.4 58.9-25.7 38.4-29 90.5-29 129 0 24 18.1 40.7 26.3 54.5 26.3s30.5-8.2 54.5-26.3c38.4-29 90.5-29 129 0 16.9 12.7 32.9 21.5 47.8 24.6 13.7 2.8 27.4 .9 42.3-10.3 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-26.4 19.9-54.2 24.4-80.7 19.1-25.3-5.1-48.1-18.9-67.2-33.3-21.3-16.1-49.9-16.1-71.2 0z\"]\n};\nvar faCameraRotate = {\n  prefix: 'fas',\n  iconName: 'camera-rotate',\n  icon: [512, 512, [], \"e0d8\", \"M138.7 96l10.4-31.2C155.6 45.2 173.9 32 194.6 32l122.8 0c20.7 0 39 13.2 45.5 32.8L373.3 96 448 96c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 160c0-35.3 28.7-64 64-64l74.7 0zM96 305.9c0 3.9 1.4 7.7 4 10.6l48 54c6.4 7.2 17.6 7.2 23.9 0l48-54c2.6-2.9 4-6.7 4-10.6l0-1.9c0-8.8-7.2-16-16-16l-24 0c0-39.8 32.2-72 72-72 4.4 0 8.7 .4 12.9 1.2l34.9-39.3c-14.6-6.4-30.8-9.9-47.8-9.9-66.3 0-120 53.7-120 120l-24 0c-8.8 0-16 7.2-16 16l0 1.9zm196-46.5c-2.6 2.9-4 6.7-4 10.6l0 1.9c0 8.8 7.2 16 16 16l24 0c0 39.8-32.2 72-72 72-4.4 0-8.7-.4-12.9-1.2l-34.9 39.3c14.7 6.4 30.8 9.9 47.8 9.9 66.3 0 120-53.7 120-120l24 0c8.8 0 16-7.2 16-16l0-1.9c0-3.9-1.4-7.7-4-10.6l-48-54c-6.4-7.2-17.6-7.2-23.9 0l-48 54z\"]\n};\nvar faFaceGrinHearts = {\n  prefix: 'fas',\n  iconName: 'face-grin-hearts',\n  icon: [512, 512, [128525, \"grin-hearts\"], \"f584\", \"M256 512c141.4 0 256-114.6 256-256 0-23.3-3.1-45.9-8.9-67.3 5.5-13.5 8.9-28.4 8.9-44.7 0-53-43-96-96-96l-2.9 0c-2.5 0-5 .1-7.4 .3-42.1-30.4-93.8-48.3-149.7-48.3S148.4 17.9 106.3 48.3c-2.5-.2-4.9-.3-7.4-.3L96 48c-53 0-96 43-96 96 0 16.3 3.5 31.2 8.9 44.7-5.8 21.4-8.9 44-8.9 67.3 0 141.4 114.6 256 256 256zM386.7 324.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 404.2 105.7 342.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM322.9 96c13.5 0 26.5 5.4 36 14.9l9.1 9.1 9.1-9.1c9.5-9.5 22.5-14.9 36-14.9l2.9 0c26.5 0 48 21.5 48 48 0 53.4-66.9 95.7-89 108.2-4.4 2.5-9.6 2.5-14 0-22.1-12.5-89-54.8-89-108.2 0-26.5 21.5-48 48-48l2.9 0zm-188 14.9l9.1 9.1 9.1-9.1c9.5-9.5 22.5-14.9 36-14.9l2.9 0c26.5 0 48 21.5 48 48 0 53.4-66.9 95.7-89 108.2-4.4 2.5-9.6 2.5-14 0-22.1-12.5-89-54.8-89-108.2 0-26.5 21.5-48 48-48l2.9 0c13.5 0 26.5 5.4 36 14.9z\"]\n};\nvar faGrinHearts = faFaceGrinHearts;\nvar faFileFragment = {\n  prefix: 'fas',\n  iconName: 'file-fragment',\n  icon: [384, 512, [], \"e697\", \"M64 0C28.7 0 0 28.7 0 64l0 240 128 0c44.2 0 80 35.8 80 80l0 128 112 0c35.3 0 64-28.7 64-64l0-277.5c0-17-6.7-33.3-18.7-45.3L258.7 18.7C246.7 6.7 230.5 0 213.5 0L64 0zM325.5 176L232 176c-13.3 0-24-10.7-24-24L208 58.5 325.5 176zM32 352c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0z\"]\n};\nvar faPersonMilitaryRifle = {\n  prefix: 'fas',\n  iconName: 'person-military-rifle',\n  icon: [448, 512, [], \"e54b\", \"M128 39c0-13 10-23.8 22.9-24.9L302.7 1.4C312 .7 320 8 320 17.4L320 48c0 8.8-7.2 16-16 16L153 64c-13.8 0-25-11.2-25-25zm17.6 57l156.8 0c1 5.2 1.6 10.5 1.6 16 0 44.2-35.8 80-80 80s-80-35.8-80-80c0-5.5 .6-10.8 1.6-16zm228 364.3L320 369.7 320 480c0 1.3-.1 2.5-.2 3.8L145.5 234.9c16.6-7.1 34.6-10.9 53.3-10.9l50.4 0c15.9 0 31.3 2.8 45.8 7.9L389.9 67.7c-7.7-4.4-10.3-14.2-5.9-21.9s14.2-10.3 21.9-5.9l27.7 16c7.7 4.4 10.3 14.2 5.9 21.9l-55.5 96.1 1.6 .9c15.3 8.8 20.6 28.4 11.7 43.7L360.7 282c2 2.8 3.9 5.8 5.7 8.8l76.1 128.8c11.2 19 4.9 43.5-14.1 54.8s-43.5 4.9-54.8-14.1zM288 512l-128 0c-17.7 0-32-14.3-32-32l0-110.3-53.6 90.6c-11.2 19-35.8 25.3-54.8 14.1S-5.7 438.7 5.6 419.7L81.7 290.8c9.4-15.8 21.7-29.3 36-40L299.1 510c-3.5 1.3-7.2 2-11.1 2zM264 320a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faToggleOn = {\n  prefix: 'fas',\n  iconName: 'toggle-on',\n  icon: [576, 512, [], \"f205\", \"M192 64C86 64 0 150 0 256S86 448 192 448l192 0c106 0 192-86 192-192S490 64 384 64L192 64zm192 96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"]\n};\nvar faLungsVirus = {\n  prefix: 'fas',\n  iconName: 'lungs-virus',\n  icon: [576, 512, [], \"e067\", \"M288 0c-17.7 0-32 14.3-32 32l0 151.3c9.6-4.8 20.5-7.5 32-7.5s22.4 2.7 32 7.5L320 32c0-17.7-14.3-32-32-32zM450.1 451c8 18.3 8.1 39.2 .2 57.5 10.2 2.3 20.6 3.5 31.2 3.5 52.2 0 94.5-42.3 94.5-94.5l0-6.2c0-111.1-36.7-219-104.4-307L428.9 48.7c-8.1-10.6-20.7-16.7-34-16.7-23.7 0-42.9 19.2-42.9 42.9l0 139.9c1.2 2.2 2.2 4.6 3.1 6.9 26.4-11.6 58.3-6.6 79.9 15s26.6 53.6 15 79.9C477 327.2 496 353.3 496 383.8s-19 56.7-45.9 67.1zM220.9 221.8c.9-2.4 2-4.7 3.1-6.9l0-138.5c0-24.5-19.9-44.4-44.4-44.4-12.5 0-24.4 5.3-32.8 14.5l-26.4 29C42.9 160.8 0 271.8 0 387l0 30.5c0 52.2 42.3 94.5 94.5 94.5 10.5 0 21-1.2 31.2-3.5-7.9-18.3-7.8-39.3 .2-57.5-26.9-10.4-45.9-36.6-45.9-67.1s19-56.7 45.9-67.1c-11.6-26.4-6.6-58.3 15-79.9s53.6-26.6 79.9-15zM152 408c28.8 0 43.2 34.8 22.9 55.2-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0c20.4-20.4 55.2-5.9 55.2 22.9 0 13.3 10.7 24 24 24s24-10.7 24-24c0-28.8 34.8-43.2 55.2-22.9 9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9c-20.4-20.4-5.9-55.2 22.9-55.2 13.3 0 24-10.7 24-24s-10.7-24-24-24c-28.8 0-43.2-34.8-22.9-55.2 9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0c-20.4 20.4-55.2 5.9-55.2-22.9 0-13.3-10.7-24-24-24s-24 10.7-24 24c0 28.8-34.8 43.2-55.2 22.9-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9c20.4 20.4 5.9 55.2-22.9 55.2-13.3 0-24 10.7-24 24s10.7 24 24 24zm104-80a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40 88a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faTableTennisPaddleBall = {\n  prefix: 'fas',\n  iconName: 'table-tennis-paddle-ball',\n  icon: [512, 512, [127955, \"ping-pong-paddle-ball\", \"table-tennis\"], \"f45d\", \"M97 127l67.4-67.4c38.2-38.2 90-59.6 144-59.6 112.5 0 203.7 91.2 203.7 203.6 0 46.4-15.8 91.1-44.5 127-23.6-16.8-52.4-26.7-83.5-26.7-31.1 0-59.9 9.9-83.4 26.6L97 127zM240 448c0 9.7 1 19.1 2.8 28.2-19.8-5.2-38-15.5-52.7-30.2-12.2-12.2-31.9-12.2-44.1 0L96.6 495.4c-10.6 10.6-25 16.6-40 16.6-31.2 0-56.6-25.3-56.6-56.6 0-15 6-29.4 16.6-40l49.4-49.4c12.2-12.2 12.2-31.9 0-44.1-21.7-21.7-33.9-51.2-33.9-81.9 0-29.4 11.1-57.6 31.1-79L266.6 364.6C249.9 388.1 240 416.9 240 448zm144-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"]\n};\nvar faPingPongPaddleBall = faTableTennisPaddleBall;\nvar faTableTennis = faTableTennisPaddleBall;\nvar faBoxesPacking = {\n  prefix: 'fas',\n  iconName: 'boxes-packing',\n  icon: [576, 512, [], \"e4c7\", \"M208 0l80 0 0 56c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-56 80 0c26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48l-108.8 0c8.2-14.1 12.8-30.5 12.8-48l0-160c10-13.4 16-30 16-48l0-32c0-44.2-35.8-80-80-80l-176 0 0-96c0-26.5 21.5-48 48-48zM32 336l320 0 0 128c0 26.5-21.5 48-48 48L80 512c-26.5 0-48-21.5-48-48l0-128zM48 192l288 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32z\"]\n};\nvar faPersonChalkboard = {\n  prefix: 'fas',\n  iconName: 'person-chalkboard',\n  icon: [640, 512, [], \"e53d\", \"M192 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM176 512l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-336 128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-48 192 0 0 192-192 0 0-32-64 0 0 48c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-224c0-26.5-21.5-48-48-48L368 0c-26.5 0-48 21.5-48 48l0 64-122.7 0c-45.6 0-88.5 21.6-115.6 58.2L14.3 260.9c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L112 236.7 112 512c0 17.7 14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faDiceTwo = {\n  prefix: 'fas',\n  iconName: 'dice-two',\n  icon: [448, 512, [9857], \"f528\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM352 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faArrowRightArrowLeft = {\n  prefix: 'fas',\n  iconName: 'arrow-right-arrow-left',\n  icon: [512, 512, [8644, \"exchange\"], \"f0ec\", \"M502.6 150.6l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L402.7 160 32 160c-17.7 0-32-14.3-32-32S14.3 96 32 96l370.7 0-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3zm-397.3 352l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L109.3 352 480 352c17.7 0 32 14.3 32 32s-14.3 32-32 32l-370.7 0 41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0z\"]\n};\nvar faExchange = faArrowRightArrowLeft;\nvar faFootball = {\n  prefix: 'fas',\n  iconName: 'football',\n  icon: [512, 512, [127944, \"football-ball\"], \"f44e\", \"M261.1 22.6c-89 18-150.5 63.4-190 123.9-23.3 35.6-38.1 75.3-46.7 115.5L251.9 489.4c89-18 150.5-63.4 190.1-123.9 23.3-35.6 38.1-75.3 46.7-115.5L261.1 22.6zm236 168.1c3.2-42.3 .7-83.3-4.8-118.7-4.4-27.8-26.8-48-53.1-51.6-43-5.9-82.2-7.5-117.8-5.4L497.1 190.6zM191.7 497.1L15.9 321.4c-3.2 42.3-.7 83.3 4.8 118.7 4.4 27.8 26.8 48 53.1 51.6 43 5.9 82.2 7.5 117.8 5.4zM271.5 143c9.4-9.4 24.6-9.4 33.9 0l64 64c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9zm-64 64c9.4-9.4 24.6-9.4 33.9 0l64 64c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9zm-64 64c9.4-9.4 24.6-9.4 33.9 0l64 64c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9z\"]\n};\nvar faFootballBall = faFootball;\nvar faTruckMonster = {\n  prefix: 'fas',\n  iconName: 'truck-monster',\n  icon: [576, 512, [], \"f63b\", \"M336 96l48 64-128 0 0-64 80 0zm128 64L387.2 57.6C375.1 41.5 356.1 32 336 32L224 32c-17.7 0-32 14.3-32 32l0 96-144 0c-26.5 0-48 21.5-48 48l0 64c0 18.1 10.1 33.9 24.9 42.1-.5 5.7 1.1 11.6 4.7 16.4-3.7 6.9-6.8 14.1-9 21.8-11.6 1.7-20.6 11.7-20.6 23.8l0 16c0 12.1 8.9 22.1 20.6 23.8 2.2 7.6 5.3 14.9 9 21.8-7 9.4-6.3 22.8 2.3 31.3l11.3 11.3c8.6 8.6 21.9 9.3 31.3 2.2 6.8 3.7 14.1 6.8 21.7 9 1.7 11.6 11.7 20.6 23.8 20.6l16 0c12.1 0 22.1-8.9 23.8-20.6 7.6-2.2 14.9-5.3 21.7-9 9.4 7 22.8 6.3 31.3-2.2l11.3-11.3c8.6-8.6 9.3-21.9 2.3-31.3 3.7-6.8 6.8-14.1 9-21.7 11.6-1.7 20.6-11.7 20.6-23.8l0-16c0-12.1-8.9-22.1-20.6-23.8-2.2-7.6-5.3-14.9-9-21.7 2.4-3.2 3.9-6.8 4.5-10.5l114.2 0c.6 3.7 2.1 7.3 4.5 10.5-3.7 6.9-6.8 14.1-9 21.8-11.6 1.7-20.6 11.7-20.6 23.8l0 16c0 12.1 8.9 22.1 20.6 23.8 2.2 7.6 5.3 14.9 9 21.8-7 9.4-6.3 22.8 2.2 31.3l11.3 11.3c8.5 8.6 21.9 9.3 31.3 2.2 6.8 3.7 14.1 6.8 21.7 9 1.7 11.6 11.7 20.6 23.8 20.6l16 0c12.1 0 22.1-8.9 23.8-20.6 7.6-2.2 14.9-5.3 21.8-9 9.4 7 22.8 6.3 31.3-2.2l11.3-11.3c8.6-8.6 9.3-21.9 2.2-31.3 3.7-6.8 6.8-14.1 9-21.7 11.6-1.7 20.6-11.7 20.6-23.8l0-16c0-12.1-8.9-22.1-20.6-23.8-2.2-7.6-5.3-14.9-9-21.7 3.6-4.8 5.2-10.7 4.7-16.4 14.8-8.2 24.9-23.9 24.9-42.1l0-64c0-26.5-21.5-48-48-48l-64 0zM128 336a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm272 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"]\n};\nvar faAsterisk = {\n  prefix: 'fas',\n  iconName: 'asterisk',\n  icon: [448, 512, [10033, 61545], \"2a\", \"M224 0c17.7 0 32 14.3 32 32l0 168.6 144-83.1c15.3-8.8 34.9-3.6 43.7 11.7s3.6 34.9-11.7 43.7L288 256 432 339.1c15.3 8.8 20.6 28.4 11.7 43.7s-28.4 20.6-43.7 11.7L256 311.4 256 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-168.6-144 83.1c-15.3 8.8-34.9 3.6-43.7-11.7S.7 348 16 339.1L160 256 16 172.9C.7 164-4.5 144.5 4.3 129.1S32.7 108.6 48 117.4L192 200.6 192 32c0-17.7 14.3-32 32-32z\"]\n};\nvar faBatteryFull = {\n  prefix: 'fas',\n  iconName: 'battery-full',\n  icon: [640, 512, [128267, \"battery\", \"battery-5\"], \"f240\", \"M528 128c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-416 0c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l416 0zM112 64c-44.2 0-80 35.8-80 80l0 224c0 44.2 35.8 80 80 80l416 0c44.2 0 80-35.8 80-80l0-48c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80L112 64zm56 112c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24l304 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24l-304 0z\"]\n};\nvar faBattery = faBatteryFull;\nvar faBattery5 = faBatteryFull;\nvar faChildDress = {\n  prefix: 'fas',\n  iconName: 'child-dress',\n  icon: [320, 512, [], \"e59c\", \"M224 64A64 64 0 1 0 96 64 64 64 0 1 0 224 64zM88 400l0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 16 0 0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 17.8 0c10.9 0 18.6-10.7 15.2-21.1l-31.1-93.4 28.7 37.8c10.7 14.1 30.8 16.8 44.8 6.2s16.8-30.7 6.2-44.8L254.6 207c-22.4-29.6-57.5-47-94.6-47s-72.2 17.4-94.6 47L6.5 284.7c-10.7 14.1-7.9 34.2 6.2 44.8s34.2 7.9 44.8-6.2L86.2 285.5 55 378.9C51.6 389.3 59.3 400 70.2 400L88 400z\"]\n};\nvar faFaceKissBeam = {\n  prefix: 'fas',\n  iconName: 'face-kiss-beam',\n  icon: [512, 512, [128537, \"kiss-beam\"], \"f597\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM240 288l32 0c26.5 0 48 21.5 48 48 0 12.3-4.6 23.5-12.2 32 7.6 8.5 12.2 19.7 12.2 32 0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zM176 180c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"]\n};\nvar faKissBeam = faFaceKissBeam;\nvar faTrashCanArrowUp = {\n  prefix: 'fas',\n  iconName: 'trash-can-arrow-up',\n  icon: [448, 512, [\"trash-restore-alt\"], \"f82a\", \"M167.1-16l113.9 0c13.8 0 26 8.8 30.4 21.9L320 32 416 32c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 8.7-26.1C141.1-7.2 153.3-16 167.1-16zM32 144l384 0 0 304c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-304zm209 79c-9.4-9.4-24.6-9.4-33.9 0l-72 72c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l31-31 0 102.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-102.1 31 31c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-72-72z\"]\n};\nvar faTrashRestoreAlt = faTrashCanArrowUp;\nvar faFont = {\n  prefix: 'fas',\n  iconName: 'font',\n  icon: [512, 512, [], \"f031\", \"M285.1 50.7C279.9 39.3 268.5 32 256 32s-23.9 7.3-29.1 18.7L59.5 416 48 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l88 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-6.1 0 22-48 208.3 0 22 48-6.1 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l88 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-11.5 0-167.4-365.3zM330.8 304L181.2 304 256 140.8 330.8 304z\"]\n};\nvar faBoreHole = {\n  prefix: 'fas',\n  iconName: 'bore-hole',\n  icon: [512, 512, [], \"e4c3\", \"M256 0c-17.7 0-32 14.3-32 32l0 232.6c-19.1 11.1-32 31.7-32 55.4 0 35.3 28.7 64 64 64s64-28.7 64-64c0-23.7-12.9-44.4-32-55.4L288 32c0-17.7-14.3-32-32-32zM0 384l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-272c0-26.5-21.5-48-48-48l-48 0c-26.5 0-48 21.5-48 48l0 144c0 61.9-50.1 112-112 112S144 381.9 144 320l0-144c0-26.5-21.5-48-48-48l-48 0c-26.5 0-48 21.5-48 48L0 384z\"]\n};\nvar faVirusCovid = {\n  prefix: 'fas',\n  iconName: 'virus-covid',\n  icon: [512, 512, [], \"e4a8\", \"M192 24c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0 0 33.6c30.7 4.2 58.8 16.3 82.3 34.1L386.1 92 374.8 80.6c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l56.6 56.6c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-11.3-11.3-23.8 23.8c17.9 23.5 29.9 51.7 34.1 82.3l33.6 0 0-16c0-13.3 10.7-24 24-24s24 10.7 24 24l0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-16-33.6 0c-4.2 30.7-16.3 58.8-34.1 82.3l23.8 23.8 11.3-11.3c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-56.6 56.6c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l11.3-11.3-23.8-23.8c-23.5 17.9-51.7 29.9-82.3 34.1l0 33.6 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-33.6c-30.7-4.2-58.8-16.3-82.3-34.1l-23.8 23.8 11.3 11.3c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L46.7 408.7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l11.3 11.3 23.8-23.8C97.9 338.8 85.8 310.7 81.6 280l-33.6 0 0 16c0 13.3-10.7 24-24 24S0 309.3 0 296l0-80c0-13.3 10.7-24 24-24s24 10.7 24 24l0 16 33.6 0c4.2-30.7 16.3-58.8 34.1-82.3L92 125.9 80.6 137.2c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l56.6-56.6c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L125.9 92 149.7 115.7c23.5-17.9 51.7-29.9 82.3-34.1l0-33.6-16 0c-13.3 0-24-10.7-24-24zm32 200a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faFilePdf = {\n  prefix: 'fas',\n  iconName: 'file-pdf',\n  icon: [576, 512, [], \"f1c1\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l80 0 0-112c0-35.3 28.7-64 64-64l176 0 0-165.5c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM240 380c-11 0-20 9-20 20l0 128c0 11 9 20 20 20s20-9 20-20l0-28 12 0c33.1 0 60-26.9 60-60s-26.9-60-60-60l-32 0zm32 80l-12 0 0-40 12 0c11 0 20 9 20 20s-9 20-20 20zm96-80c-11 0-20 9-20 20l0 128c0 11 9 20 20 20l32 0c28.7 0 52-23.3 52-52l0-64c0-28.7-23.3-52-52-52l-32 0zm20 128l0-88 12 0c6.6 0 12 5.4 12 12l0 64c0 6.6-5.4 12-12 12l-12 0zm88-108l0 128c0 11 9 20 20 20s20-9 20-20l0-44 28 0c11 0 20-9 20-20s-9-20-20-20l-28 0 0-24 28 0c11 0 20-9 20-20s-9-20-20-20l-48 0c-11 0-20 9-20 20z\"]\n};\nvar faLanguage = {\n  prefix: 'fas',\n  iconName: 'language',\n  icon: [576, 512, [], \"f1ab\", \"M160 0c17.7 0 32 14.3 32 32l0 32 128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-9.6 0-8.4 23.1c-16.4 45.2-41.1 86.5-72.2 122 14.2 8.8 29 16.6 44.4 23.5l50.4 22.4 62.2-140c5.1-11.6 16.6-19 29.2-19s24.1 7.4 29.2 19l128 288c7.2 16.2-.1 35.1-16.2 42.2s-35.1-.1-42.2-16.2l-20-45-157.5 0-20 45c-7.2 16.2-26.1 23.4-42.2 16.2s-23.4-26.1-16.2-42.2l39.8-89.5-50.4-22.4c-23-10.2-45-22.4-65.8-36.4-21.3 17.2-44.6 32.2-69.5 44.7L78.3 380.6c-15.8 7.9-35 1.5-42.9-14.3s-1.5-35 14.3-42.9l34.5-17.3c16.3-8.2 31.8-17.7 46.4-28.3-13.8-12.7-26.8-26.4-38.9-40.9L81.6 224.7c-11.3-13.6-9.5-33.8 4.1-45.1s33.8-9.5 45.1 4.1l10.2 12.2c11.5 13.9 24.1 26.8 37.4 38.7 27.5-30.4 49.2-66.1 63.5-105.4l.5-1.2-210.3 0C14.3 128 0 113.7 0 96S14.3 64 32 64l96 0 0-32c0-17.7 14.3-32 32-32zM416 270.8L365.7 384 466.3 384 416 270.8z\"]\n};\nvar faShieldHalved = {\n  prefix: 'fas',\n  iconName: 'shield-halved',\n  icon: [512, 512, [\"shield-alt\"], \"f3ed\", \"M256 0c4.6 0 9.2 1 13.4 2.9L457.8 82.8c22 9.3 38.4 31 38.3 57.2-.5 99.2-41.3 280.7-213.6 363.2-16.7 8-36.1 8-52.8 0-172.4-82.5-213.1-264-213.6-363.2-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.9 1 251.4 0 256 0zm0 66.8l0 378.1c138-66.8 175.1-214.8 176-303.4l-176-74.6 0 0z\"]\n};\nvar faShieldAlt = faShieldHalved;\nvar faCaretUp = {\n  prefix: 'fas',\n  iconName: 'caret-up',\n  icon: [320, 512, [], \"f0d8\", \"M140.3 135.2c12.6-10.3 31.1-9.5 42.8 2.2l128 128c9.2 9.2 11.9 22.9 6.9 34.9S301.4 320 288.5 320l-256 0c-12.9 0-24.6-7.8-29.6-19.8S.7 274.5 9.9 265.4l128-128 2.4-2.2z\"]\n};\nvar faFilePen = {\n  prefix: 'fas',\n  iconName: 'file-pen',\n  icon: [640, 512, [128221, \"file-edit\"], \"f31c\", \"M128.1 0c-35.3 0-64 28.7-64 64l0 384c0 35.3 28.7 64 64 64l146.2 0 10.9-54.5c4.3-21.7 15-41.6 30.6-57.2l132.2-132.2 0-97.5c0-17-6.7-33.3-18.7-45.3L322.8 18.7C310.8 6.7 294.5 0 277.6 0L128.1 0zM389.6 176l-93.5 0c-13.3 0-24-10.7-24-24l0-93.5 117.5 117.5zM332.3 466.9l-11.9 59.6c-.2 .9-.3 1.9-.3 2.9 0 8 6.5 14.6 14.6 14.6 1 0 1.9-.1 2.9-.3l59.6-11.9c12.4-2.5 23.8-8.6 32.7-17.5l118.9-118.9-80-80-118.9 118.9c-8.9 8.9-15 20.3-17.5 32.7zm267.8-123c22.1-22.1 22.1-57.9 0-80s-57.9-22.1-80 0l-28.8 28.8 80 80 28.8-28.8z\"]\n};\nvar faFileEdit = faFilePen;\nvar faPersonBiking = {\n  prefix: 'fas',\n  iconName: 'person-biking',\n  icon: [576, 512, [128692, \"biking\"], \"f84a\", \"M368 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm27.2 64l-61.8-48.8c-17.3-13.6-41.7-13.8-59.1-.3l-83.1 64.2c-30.7 23.8-28.5 70.8 4.3 91.6L256 305.1 256 416c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128c0-10.7-5.3-20.7-14.2-26.6L263 232.9 323.3 184.4 364 217c5.7 4.5 12.7 7 20 7l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-52.8 0zM112 512a112 112 0 1 0 0-224 112 112 0 1 0 0 224zm352 0a112 112 0 1 0 0-224 112 112 0 1 0 0 224z\"]\n};\nvar faBiking = faPersonBiking;\nvar faBookOpenReader = {\n  prefix: 'fas',\n  iconName: 'book-open-reader',\n  icon: [512, 512, [\"book-reader\"], \"f5da\", \"M256 152a88 88 0 1 0 0-176 88 88 0 1 0 0 176zm0 298.7l0-149.3c16.3-6.8 32.9-13.7 49.7-20.7 39-16.2 80.8-24.6 123.1-24.6l19.2 0 0 160-19.2 0c-59.1 0-117.7 11.7-172.3 34.5l-.5 .2zM256 232l-25.1-10.5C184.1 202 133.9 192 83.2 192L48 192c-26.5 0-48 21.5-48 48L0 432c0 26.5 21.5 48 48 48l35.2 0c50.7 0 100.9 10 147.7 29.5l12.8 5.3c7.9 3.3 16.7 3.3 24.6 0l12.8-5.3c46.8-19.5 97-29.5 147.7-29.5l35.2 0c26.5 0 48-21.5 48-48l0-192c0-26.5-21.5-48-48-48l-35.2 0c-50.7 0-100.9 10-147.7 29.5L256 232z\"]\n};\nvar faBookReader = faBookOpenReader;\nvar faGlassWaterDroplet = {\n  prefix: 'fas',\n  iconName: 'glass-water-droplet',\n  icon: [384, 512, [], \"e4f5\", \"M32 0C23.1 0 14.6 3.7 8.6 10.2S-.6 25.4 .1 34.3L28.9 437.7c3 41.9 37.8 74.3 79.8 74.3l166.6 0c42 0 76.8-32.4 79.8-74.3L383.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S360.9 0 352 0L32 0zM83 297.5L66.4 64 317.6 64 301 297.5 288 304c-20.1 10.1-43.9 10.1-64 0s-43.9-10.1-64 0-43.9 10.1-64 0l-13-6.5zM256 196c0-24-33.7-70.1-52.2-93.5-6.1-7.7-17.5-7.7-23.6 0-18.5 23.4-52.2 69.5-52.2 93.5 0 33.1 28.7 60 64 60s64-26.9 64-60z\"]\n};\nvar faTowerBroadcast = {\n  prefix: 'fas',\n  iconName: 'tower-broadcast',\n  icon: [576, 512, [\"broadcast-tower\"], \"f519\", \"M87.9 11.5c-11.3-6.9-26.1-3.2-33 8.1-24.8 41-39 89.1-39 140.4s14.2 99.4 39 140.4c6.9 11.3 21.6 15 33 8.1s15-21.6 8.1-33C75.7 241.9 64 202.3 64 160S75.7 78.1 96.1 44.4c6.9-11.3 3.2-26.1-8.1-33zm400.1 0c-11.3 6.9-15 21.6-8.1 33 20.4 33.7 32.1 73.3 32.1 115.6s-11.7 81.9-32.1 115.6c-6.9 11.3-3.2 26.1 8.1 33s26.1 3.2 33-8.1c24.8-41 39-89.1 39-140.4S545.8 60.6 521 19.6c-6.9-11.3-21.6-15-33-8.1zM320 215.4c19.1-11.1 32-31.7 32-55.4 0-35.3-28.7-64-64-64s-64 28.7-64 64c0 23.7 12.9 44.4 32 55.4L256 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-264.6zM180.2 91c7.2-11.2 3.9-26-7.2-33.2s-26-3.9-33.2 7.2c-17.6 27.4-27.8 60-27.8 95s10.2 67.6 27.8 95c7.2 11.2 22 14.4 33.2 7.2s14.4-22 7.2-33.2c-12.8-19.9-20.2-43.6-20.2-69s7.4-49.1 20.2-69zM436.2 65c-7.2-11.2-22-14.4-33.2-7.2s-14.4 22-7.2 33.2c12.8 19.9 20.2 43.6 20.2 69s-7.4 49.1-20.2 69c-7.2 11.2-3.9 26 7.2 33.2s26 3.9 33.2-7.2c17.6-27.4 27.8-60 27.8-95s-10.2-67.6-27.8-95z\"]\n};\nvar faBroadcastTower = faTowerBroadcast;\nvar faMinimize = {\n  prefix: 'fas',\n  iconName: 'minimize',\n  icon: [512, 512, [\"compress-arrows-alt\"], \"f78c\", \"M456 224l-144 0c-13.3 0-24-10.7-24-24l0-144c0-9.7 5.8-18.5 14.8-22.2S322.1 32.2 329 39l40 40 73.4-73.4C446 2 450.9 0 456 0s10 2 13.7 5.7l36.7 36.7C510 46 512 50.9 512 56s-2 10-5.7 13.7L433 143 473 183c6.9 6.9 8.9 17.2 5.2 26.2S465.7 224 456 224zm0 64c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-40 40 73.4 73.4c3.6 3.6 5.7 8.5 5.7 13.7s-2 10-5.7 13.7l-36.7 36.7C466 510 461.1 512 456 512s-10-2-13.7-5.7L369 433 329 473c-6.9 6.9-17.2 8.9-26.2 5.2S288 465.7 288 456l0-144c0-13.3 10.7-24 24-24l144 0zm-256 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-40-40-73.4 73.4C66 510 61.1 512 56 512s-10-2-13.7-5.7L5.7 469.7C2 466 0 461.1 0 456s2-10 5.7-13.7L79 369 39 329c-6.9-6.9-8.9-17.2-5.2-26.2S46.3 288 56 288l144 0zM56 224c-9.7 0-18.5-5.8-22.2-14.8S32.2 189.9 39 183L79 143 5.7 69.7C2 66 0 61.1 0 56S2 46 5.7 42.3L42.3 5.7C46 2 50.9 0 56 0S66 2 69.7 5.7L143 79 183 39c6.9-6.9 17.2-8.9 26.2-5.2S224 46.3 224 56l0 144c0 13.3-10.7 24-24 24L56 224z\"]\n};\nvar faCompressArrowsAlt = faMinimize;\nvar faArrowRightToCity = {\n  prefix: 'fas',\n  iconName: 'arrow-right-to-city',\n  icon: [640, 512, [], \"e4b3\", \"M288 48c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 80 48 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 16 0c26.5 0 48 21.5 48 48l0 288c0 26.5-21.5 48-48 48l-256 0c-26.5 0-48-21.5-48-48l0-416zm64 64l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM352 304l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm176-80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM512 336l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM153 167l72 72c9.4 9.4 9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-102.1 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l102.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"]\n};\nvar faLaptopMedical = {\n  prefix: 'fas',\n  iconName: 'laptop-medical',\n  icon: [640, 512, [], \"f812\", \"M64 96c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 240-64 0 0-240-384 0 0 240-64 0 0-240zM0 403.2C0 392.6 8.6 384 19.2 384l601.6 0c10.6 0 19.2 8.6 19.2 19.2 0 42.4-34.4 76.8-76.8 76.8L76.8 480C34.4 480 0 445.6 0 403.2zM288 160c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"]\n};\nvar faBreadSlice = {\n  prefix: 'fas',\n  iconName: 'bread-slice',\n  icon: [512, 512, [], \"f7ec\", \"M64 432l0-176c-35.3 0-64-28.7-64-64 0-216.5 512-216.5 512 0 0 35.3-28.7 64-64 64l0 176c0 26.5-21.5 48-48 48l-288 0c-26.5 0-48-21.5-48-48z\"]\n};\nvar faGlobe = {\n  prefix: 'fas',\n  iconName: 'globe',\n  icon: [512, 512, [127760], \"f0ac\", \"M351.9 280l-190.9 0c2.9 64.5 17.2 123.9 37.5 167.4 11.4 24.5 23.7 41.8 35.1 52.4 11.2 10.5 18.9 12.2 22.9 12.2s11.7-1.7 22.9-12.2c11.4-10.6 23.7-28 35.1-52.4 20.3-43.5 34.6-102.9 37.5-167.4zM160.9 232l190.9 0C349 167.5 334.7 108.1 314.4 64.6 303 40.2 290.7 22.8 279.3 12.2 268.1 1.7 260.4 0 256.4 0s-11.7 1.7-22.9 12.2c-11.4 10.6-23.7 28-35.1 52.4-20.3 43.5-34.6 102.9-37.5 167.4zm-48 0C116.4 146.4 138.5 66.9 170.8 14.7 78.7 47.3 10.9 131.2 1.5 232l111.4 0zM1.5 280c9.4 100.8 77.2 184.7 169.3 217.3-32.3-52.2-54.4-131.7-57.9-217.3L1.5 280zm398.4 0c-3.5 85.6-25.6 165.1-57.9 217.3 92.1-32.7 159.9-116.5 169.3-217.3l-111.4 0zm111.4-48C501.9 131.2 434.1 47.3 342 14.7 374.3 66.9 396.4 146.4 399.9 232l111.4 0z\"]\n};\nvar faFolderMinus = {\n  prefix: 'fas',\n  iconName: 'folder-minus',\n  icon: [512, 512, [], \"f65d\", \"M448 448L64 448c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l138.7 0c13.8 0 27.3 4.5 38.4 12.8l38.4 28.8c5.5 4.2 12.3 6.4 19.2 6.4L448 80c35.3 0 64 28.7 64 64l0 240c0 35.3-28.7 64-64 64zM184 240c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nvar faMaskFace = {\n  prefix: 'fas',\n  iconName: 'mask-face',\n  icon: [640, 512, [], \"e1d7\", \"M320 64c-27.2 0-53.8 8-76.4 23.1l-37.1 24.8c-15.8 10.5-34.3 16.1-53.3 16.1L64 128c-35.3 0-64 28.7-64 64l0 78.7c0 62.6 45.2 116 107 126.3l97.9 16.3c33 22 72.6 34.7 115.1 34.7s82.2-12.8 115.1-34.7L533 396.9c61.7-10.3 107-63.7 107-126.3l0-78.7c0-35.3-28.7-64-64-64l-89.2 0c-19 0-37.5-5.6-53.3-16.1L396.4 87.1C373.8 72 347.2 64 320 64zM135.9 336.9l-18.4-3.1C86.6 328.7 64 302 64 270.7l0-78.7 48 0 0 48c0 35 8.6 67.9 23.9 96.9zm386.6-3.1l-18.4 3.1C519.4 307.9 528 275 528 240l0-48 48 0 0 78.7c0 31.3-22.6 58-53.5 63.1zM192 232c0-13.3 10.7-24 24-24l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24zm56 56l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faBong = {\n  prefix: 'fas',\n  iconName: 'bong',\n  icon: [512, 512, [], \"f55c\", \"M448.5 384c0 41.5-13.1 79.9-35.5 111.3-7.9 11.1-21.2 16.7-34.8 16.7l-243.3 0c-13.7 0-26.9-5.6-34.8-16.7-22.4-31.4-35.5-69.8-35.5-111.3 0-71.1 38.6-133.1 96-166.3l0-153.7c-17.7 0-32-14.3-32-32s14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 153.7c14.2 8.2 27.2 18.2 38.8 29.6l39.3-39.3-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c16 16 32 32 48 48 9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-7-7-43.3 43.3c17.3 28.9 27.3 62.6 27.3 98.8zM288.5 64l-64 0 0 190.6-32 18.5c-19.5 11.3-35.7 27.5-46.9 46.9l221.8 0c-11.2-19.4-27.4-35.6-46.9-46.9l-32-18.5 0-190.6z\"]\n};\nvar faRoadBridge = {\n  prefix: 'fas',\n  iconName: 'road-bridge',\n  icon: [576, 512, [], \"e563\", \"M32 32l208 0 0 64-24 0 0 64 24 0 0 129.3c-45.4 7.6-80 47.1-80 94.7l0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-94c0-38.8-26.4-72.6-64-82l0-112 40 0 0-64-8 0C14.3 96 0 81.7 0 64S14.3 32 32 32zM88 96l0 64 80 0 0-64-80 0zM336 32l72 0 0 72c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72 72 0c26.5 0 48 21.5 48 48l0 352c0 26.5-21.5 48-48 48l-72 0 0-72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72-72 0c-26.5 0-48-21.5-48-48l0-352c0-26.5 21.5-48 48-48zm96 160c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80c0-13.3-10.7-24-24-24z\"]\n};\nvar faArrowUp91 = {\n  prefix: 'fas',\n  iconName: 'arrow-up-9-1',\n  icon: [512, 512, [\"sort-numeric-up-alt\"], \"f887\", \"M150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96zM365.1 206.6c-9.6 14.8-5.4 34.6 9.4 44.3s34.6 5.4 44.3-9.4l42.1-64.9c12.4-19.2 19.1-41.6 19.1-64.5 0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.1 23.9 66.7 56.8 76.6l-11.7 18zM376 112a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm42.7 182c-8.3-6-19.1-7.7-28.8-4.4l-48 16c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l5.9-2 0 51.6-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-96c0-10.3-4.9-19.9-13.3-26z\"]\n};\nvar faSortNumericUpAlt = faArrowUp91;\nvar faMountainCity = {\n  prefix: 'fas',\n  iconName: 'mountain-city',\n  icon: [640, 512, [], \"e52e\", \"M256.3 48c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 48 48 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 16 0c26.5 0 48 21.5 48 48l0 320c0 26.5-21.5 48-48 48l-77.8 0c4-15.4 2.4-32.6-6.7-48.2L354.6 256 368.3 256c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-6.1 0-11.4 3.4-14.1 8.5l-42.6-73c-6-10.2-14.1-18-23.3-23.3l0-56.2zm64 64l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm160 96l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm-272-64.7l-65.1 111.6 33.1 33.1 48-48 40.4 0-56.4-96.7zm-27.6-47.9c12.3-21.2 42.9-21.2 55.3 0L420.3 463.9c12.4 21.3-2.9 48.1-27.6 48.1L56 512c-24.7 0-40.1-26.8-27.6-48.1L196.7 175.4z\"]\n};\nvar faArrowDown91 = {\n  prefix: 'fas',\n  iconName: 'arrow-down-9-1',\n  icon: [512, 512, [\"sort-numeric-desc\", \"sort-numeric-down-alt\"], \"f886\", \"M230.6 390.6l-80 80c-12.5 12.5-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 25.4-25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm134.5-184l11.7-18c-32.9-9.9-56.8-40.5-56.8-76.6 0-44.2 35.8-80 80-80s80 35.8 80 80c0 22.9-6.6 45.3-19.1 64.5l-42.1 64.9c-9.6 14.8-29.4 19.1-44.3 9.4s-19.1-29.4-9.4-44.3zM424 112a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm-5.3 182c8.3 6 13.3 15.7 13.3 26l0 96 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-51.6-5.9 2c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5l48-16c9.8-3.3 20.5-1.6 28.8 4.4z\"]\n};\nvar faSortNumericDesc = faArrowDown91;\nvar faSortNumericDownAlt = faArrowDown91;\nvar faFaceGrinWide = {\n  prefix: 'fas',\n  iconName: 'face-grin-wide',\n  icon: [512, 512, [128515, \"grin-alt\"], \"f581\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM386.7 308.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 388.2 105.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM208 192c0 35.3-14.3 64-32 64s-32-28.7-32-64 14.3-64 32-64 32 28.7 32 64zm128 64c-17.7 0-32-28.7-32-64s14.3-64 32-64 32 28.7 32 64-14.3 64-32 64z\"]\n};\nvar faGrinAlt = faFaceGrinWide;\nvar faPoop = {\n  prefix: 'fas',\n  iconName: 'poop',\n  icon: [512, 512, [], \"f619\", \"M254.4 6.6c3.5-4.3 9-6.5 14.5-5.7 46.9 6.3 83.1 46.5 83.1 95.1 0 11.2-1.9 22-5.5 32l5.5 0c35.3 0 64 28.7 64 64 0 19.1-8.4 36.3-21.7 48l13.7 0c39.8 0 72 32.2 72 72 0 23.2-11 43.8-28 57 34.1 5.7 60 35.3 60 71 0 39.8-32.2 72-72 72L72 512c-39.8 0-72-32.2-72-72 0-35.7 25.9-65.3 60-71-17-13.2-28-33.8-28-57 0-39.8 32.2-72 72-72l13.7 0c-13.3-11.7-21.7-28.9-21.7-48 0-35.3 28.7-64 64-64l16.2 0c44.1-.1 79.8-35.9 79.8-80 0-9.2-1.5-17.9-4.3-26.1-1.8-5.2-.8-11.1 2.8-15.4z\"]\n};\nvar faDharmachakra = {\n  prefix: 'fas',\n  iconName: 'dharmachakra',\n  icon: [512, 512, [9784], \"f655\", \"M337.8 205.7l48.6-42.5c13.8 19.3 23.4 41.9 27.4 66.2l-64.4 4.3c-2.4-10.1-6.4-19.5-11.6-28zm140.1 19.5c-5.3-38.8-20.6-74.5-43.2-104.3l.8-.7C449 108.4 449.7 87.6 437 75s-33.4-12-45.2 1.5l-.7 .8c-29.8-22.6-65.5-37.9-104.3-43.2l.1-1.1c1.2-17.9-13-33-30.9-33s-32.1 15.2-30.9 33l.1 1.1c-38.8 5.3-74.5 20.6-104.3 43.2l-.7-.8C108.4 63 87.6 62.3 75 75s-12 33.4 1.5 45.2l.8 .7c-22.6 29.8-37.9 65.5-43.2 104.3l-1.1-.1c-17.9-1.2-33 13-33 30.9s15.2 32.1 33 30.9l1.1-.1c5.3 38.8 20.6 74.5 43.2 104.3l-.8 .7C63 403.6 62.3 424.4 75 437s33.4 12 45.2-1.5l.7-.8c29.8 22.6 65.5 37.9 104.3 43.2l-.1 1.1c-1.2 17.9 13 33 30.9 33s32.1-15.2 30.9-33l-.1-1.1c38.8-5.3 74.5-20.6 104.3-43.2l.7 .8c11.8 13.5 32.5 14.2 45.2 1.5s12-33.4-1.5-45.2l-.8-.7c22.6-29.8 37.9-65.5 43.2-104.3l1.1 .1c17.9 1.2 33-13 33-30.9s-15.2-32.1-33-30.9l-1.1 .1zM163.2 125.6c19.3-13.8 41.9-23.4 66.2-27.5l4.3 64.4c-10 2.4-19.5 6.4-28 11.6l-42.5-48.6zm-65 103.8c4.1-24.4 13.7-46.9 27.5-66.2l48.6 42.5c-5.3 8.5-9.2 18-11.6 28l-64.4-4.3zm27.5 119.4c-13.8-19.3-23.4-41.9-27.5-66.2l64.4-4.3c2.4 10.1 6.4 19.5 11.6 28l-48.6 42.5zm103.8 65c-24.4-4.1-46.9-13.7-66.2-27.4l42.5-48.6c8.5 5.3 18 9.2 28 11.6l-4.3 64.4zm119.4-27.4c-19.3 13.8-41.9 23.4-66.2 27.4l-4.3-64.4c10-2.4 19.5-6.4 28-11.6l42.5 48.6zm65-103.8c-4.1 24.4-13.7 46.9-27.4 66.2l-48.6-42.5c5.3-8.6 9.2-18 11.6-28l64.4 4.3zm-65-156.9l-42.5 48.6c-8.6-5.3-18-9.2-28-11.6l4.3-64.4c24.4 4.1 46.9 13.7 66.2 27.5zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faBatteryQuarter = {\n  prefix: 'fas',\n  iconName: 'battery-quarter',\n  icon: [640, 512, [\"battery-2\"], \"f243\", \"M528 128c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-416 0c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l416 0zM112 64c-44.2 0-80 35.8-80 80l0 224c0 44.2 35.8 80 80 80l416 0c44.2 0 80-35.8 80-80l0-48c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80L112 64zm56 112c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24l-64 0z\"]\n};\nvar faBattery2 = faBatteryQuarter;\nvar faAnkh = {\n  prefix: 'fas',\n  iconName: 'ankh',\n  icon: [320, 512, [9765], \"f644\", \"M96 128c0-35.3 28.7-64 64-64s64 28.7 64 64c0 41.6-20.7 76.6-46.6 104.1-5.9 6.2-11.8 11.8-17.4 16.7-5.6-4.9-11.5-10.5-17.4-16.7-25.9-27.5-46.6-62.6-46.6-104.1zM160 0C89.3 0 32 57.3 32 128 32 180.4 53.5 223.5 78.8 256L32 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-46.8 0C266.5 223.5 288 180.4 288 128 288 57.3 230.7 0 160 0z\"]\n};\nvar faDiamond = {\n  prefix: 'fas',\n  iconName: 'diamond',\n  icon: [512, 512, [9830], \"f219\", \"M17 215L215 17C225.9 6.1 240.6 0 256 0s30.1 6.1 41 17L495 215c10.9 10.9 17 25.6 17 41s-6.1 30.1-17 41L297 495c-10.9 10.9-25.6 17-41 17s-30.1-6.1-41-17L17 297C6.1 286.1 0 271.4 0 256s6.1-30.1 17-41z\"]\n};\nvar faSubscript = {\n  prefix: 'fas',\n  iconName: 'subscript',\n  icon: [576, 512, [], \"f12c\", \"M96 64C78.3 64 64 78.3 64 96s14.3 32 32 32l15.3 0 89.6 128-89.6 128-15.3 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c10.4 0 20.2-5.1 26.2-13.6L240 311.8 325.8 434.4c6 8.6 15.8 13.6 26.2 13.6l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-15.3 0-89.6-128 89.6-128 15.3 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-10.4 0-20.2 5.1-26.2 13.6L240 200.2 154.2 77.6C148.2 69.1 138.4 64 128 64L96 64zM544 320c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9 5.6 11.2 16.9 17.7 28.6 17.7l0 80c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-128z\"]\n};\nvar faRupeeSign = {\n  prefix: 'fas',\n  iconName: 'rupee-sign',\n  icon: [448, 512, [8360, \"rupee\"], \"f156\", \"M0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144 0 54.3-30 101.5-74.4 126.1l41 136.7c5.1 16.9-4.5 34.8-21.5 39.8s-34.8-4.5-39.8-21.5L120.1 319.8c-2.7 .1-5.4 .2-8.1 .2l-48 0 0 128c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80l-48 0 0 160zm285.1-32l34.9 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-34.9 0c-7.2 0-13.1 5.9-13.1 13.1 0 5.7 3.7 10.7 9.1 12.5l49.4 15.9c31.9 10.3 53.5 39.9 53.5 73.4 0 42.6-34.5 77.1-77.1 77.1L320 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l50.9 0c7.2 0 13.1-5.9 13.1-13.1 0-5.7-3.7-10.7-9.1-12.5l-49.4-15.9c-31.9-10.3-53.5-39.9-53.5-73.4 0-42.6 34.5-77.1 77.1-77.1z\"]\n};\nvar faRupee = faRupeeSign;\nvar faPersonRifle = {\n  prefix: 'fas',\n  iconName: 'person-rifle',\n  icon: [512, 512, [], \"e54e\", \"M416 0L384 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l0 100.3c-9.6 5.5-16 15.9-16 27.7l0 32c-17.7 0-32 14.3-32 32l0 144c0 17.7 14.3 32 32 32l16 0 0 96c0 8.8 7.2 16 16 16l59.5 0c10.4 0 18-9.8 15.5-19.9l-23-92.1 44 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-48 0 0-26.7 53.1-17.7c6.5-2.2 10.9-8.3 10.9-15.2l0-84.5c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16l0 56-16 5.3 0-109.3c0-11.8-6.4-22.2-16-27.7L432 16c0-8.8-7.2-16-16-16zM224 208C118 208 32 294 32 400l0 48c0 17.7 14.3 32 32 32s32-14.3 32-32l0-48c0-32.5 12.1-62.1 32-84.7l0 196.7 160 0 0-293.1c-20-7.1-41.6-10.9-64-10.9zM280 88a72 72 0 1 0 -144 0 72 72 0 1 0 144 0z\"]\n};\nvar faD = {\n  prefix: 'fas',\n  iconName: 'd',\n  icon: [384, 512, [100], \"44\", \"M0 64C0 46.3 14.3 32 32 32l128 0c123.7 0 224 100.3 224 224S283.7 480 160 480L32 480c-17.7 0-32-14.3-32-32L0 64zM64 96l0 320 96 0c88.4 0 160-71.6 160-160S248.4 96 160 96L64 96z\"]\n};\nvar faSquareNfi = {\n  prefix: 'fas',\n  iconName: 'square-nfi',\n  icon: [448, 512, [], \"e576\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM93 172.3l35 63 0-51.4c0-13.3 10.7-24 24-24s24 10.7 24 24l0 144c0 10.9-7.4 20.5-18 23.2s-21.7-2-27-11.6l-35-63 0 51.4c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144c0-10.9 7.4-20.5 18-23.2s21.7 2 27 11.6zM208 184c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-56 0 0 32 40 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0 0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144zm192 0l0 144c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faTeeth = {\n  prefix: 'fas',\n  iconName: 'teeth',\n  icon: [512, 512, [], \"f62e\", \"M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM144 208l0 24c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-24c0-26.5-21.5-48-48-48s-48 21.5-48 48zm128 0l0 24c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-24c0-26.5-21.5-48-48-48s-48 21.5-48 48zM80 176c-17.7 0-32 14.3-32 32l0 24c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-24c0-17.7-14.3-32-32-32zm320 32l0 24c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-24c0-17.7-14.3-32-32-32s-32 14.3-32 32zM48 336c0 17.7 14.3 32 32 32s32-14.3 32-32l0-16c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 16zm144 48c26.5 0 48-21.5 48-48l0-16c0-8.8-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16l0 16c0 26.5 21.5 48 48 48zm128 0c26.5 0 48-21.5 48-48l0-16c0-8.8-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16l0 16c0 26.5 21.5 48 48 48zm112-16c17.7 0 32-14.3 32-32l0-16c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 16c0 17.7 14.3 32 32 32z\"]\n};\nvar faMagnifyingGlassDollar = {\n  prefix: 'fas',\n  iconName: 'magnifying-glass-dollar',\n  icon: [512, 512, [\"search-dollar\"], \"f688\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM212 96c-11 0-20 9-20 20l0 4c-28.8 .3-52 23.7-52 52.5 0 25.7 18.5 47.6 43.9 51.8l41.7 7c6 1 10.4 6.2 10.4 12.3 0 6.9-5.6 12.5-12.5 12.5L168 256c-11 0-20 9-20 20s9 20 20 20l24 0 0 4c0 11 9 20 20 20s20-9 20-20l0-4.7c25-4.1 44-25.7 44-51.8 0-25.7-18.5-47.6-43.9-51.8l-41.7-7c-6-1-10.4-6.2-10.4-12.3 0-6.9 5.6-12.5 12.5-12.5l47.5 0c11 0 20-9 20-20s-9-20-20-20l-8 0 0-4c0-11-9-20-20-20z\"]\n};\nvar faSearchDollar = faMagnifyingGlassDollar;\nvar faDumpsterFire = {\n  prefix: 'fas',\n  iconName: 'dumpster-fire',\n  icon: [640, 512, [], \"f794\", \"M164.3 64L138.7 192 56 192c-13.3 0-24-10.7-24-24l0-4.1c0-2.6 .4-5.1 1.2-7.6L58.5 80.4C61.8 70.6 71 64 81.3 64l83 0zm23.4 128l25.6-128 82.7 0 0 128-108.3 0zM344 64l82.7 0 16 80c-14.7 .2-29.3 5.5-40.9 15.9-11.5 10.3-22.5 21-32.8 32.1l-24.9 0 0-128zM96 240l233.2 0c-6.4 8.8-12.3 17.6-17.7 26.3-21.4 34.7-39.5 76.1-39.5 115.8 0 17.1 2.1 33.8 6 49.9l-120.4 0 1.9 10.3c3.2 17.4-8.4 34-25.8 37.2s-34-8.4-37.2-25.8C71 313.3 58 242.1 57.7 240L96 240zm512-72c0 11-7.4 20.3-17.5 23.1-.9-.8-1.7-1.6-2.6-2.4-21.8-20-54.3-21.8-78-5.5-4.2-4.3-8.5-8.5-12.9-12.6l-21.3-106.6 83 0c10.3 0 19.5 6.6 22.8 16.4l25.3 75.9c.8 2.4 1.2 5 1.2 7.6l0 4.1zM505.7 240.3L518 226.5c5.4-6.1 13.3-8.8 20.9-8.9 7.2 0 14.3 2.6 19.9 7.8 19.7 18.3 39.8 43.2 55 70.6 15.1 27.2 26.2 58.1 26.2 88.1 0 88.7-71.3 159.8-160 159.8-89.6 0-160-71.3-160-159.8 0-37.3 16-73.4 36.8-104.5 20.9-31.3 47.5-59 70.9-80.2 5.7-5.2 13.1-7.7 20.3-7.5s13.4 3.2 18.8 7.5c14.4 11.4 38.9 40.7 38.9 40.7zM544 432.2c0-36.5-37-73-54.8-88.4-5.4-4.7-13.1-4.7-18.5 0-17.7 15.4-54.8 51.9-54.8 88.4 0 35.3 28.7 64 64 64s64-28.7 64-64z\"]\n};\nvar faUpload = {\n  prefix: 'fas',\n  iconName: 'upload',\n  icon: [448, 512, [], \"f093\", \"M256 109.3L256 320c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-210.7-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 109.3zM224 400c44.2 0 80-35.8 80-80l80 0c35.3 0 64 28.7 64 64l0 32c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-32c0-35.3 28.7-64 64-64l80 0c0 44.2 35.8 80 80 80zm144 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faUserSlash = {\n  prefix: 'fas',\n  iconName: 'user-slash',\n  icon: [576, 512, [62714, \"user-alt-slash\", \"user-large-slash\"], \"f506\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L311.5 245.7c55-10.9 96.5-59.5 96.5-117.7 0-66.3-53.7-120-120-120-58.2 0-106.8 41.5-117.7 96.5L41-24.9zM235.6 305.4C147.9 316.6 80 391.5 80 482.3 80 498.7 93.3 512 109.7 512l332.5 0-206.6-206.6z\"]\n};\nvar faUserAltSlash = faUserSlash;\nvar faUserLargeSlash = faUserSlash;\nvar faArrowLeft = {\n  prefix: 'fas',\n  iconName: 'arrow-left',\n  icon: [512, 512, [8592], \"f060\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288 480 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-370.7 0 105.4-105.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z\"]\n};\nvar faVialVirus = {\n  prefix: 'fas',\n  iconName: 'vial-virus',\n  icon: [576, 512, [], \"e597\", \"M64 32C64 14.3 78.3 0 96 0L320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 151.7c-18.5 0-37 7-51.1 21.1-21.6 21.6-26.6 53.6-15 79.9-26.9 10.4-45.9 36.6-45.9 67.1s19 56.7 45.9 67.1c-7.3 16.5-8 35.2-2.3 52.2-13.4 5.7-28.2 8.8-43.6 8.8-61.9 0-112-50.1-112-112L96 64C78.3 64 64 49.7 64 32zm96 32l0 128 96 0 0-128-96 0zM280 408c-13.3 0-24-10.7-24-24s10.7-24 24-24c28.8 0 43.2-34.8 22.9-55.2-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c20.4 20.4 55.2 5.9 55.2-22.9 0-13.3 10.7-24 24-24s24 10.7 24 24c0 28.8 34.8 43.2 55.2 22.9 9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-20.4 20.4-5.9 55.2 22.9 55.2 13.3 0 24 10.7 24 24s-10.7 24-24 24c-28.8 0-43.2 34.8-22.9 55.2 9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-20.4-20.4-55.2-5.9-55.2 22.9 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-28.8-34.8-43.2-55.2-22.9-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c20.4-20.4 5.9-55.2-22.9-55.2zm104-32a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm88 40a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faCheckDouble = {\n  prefix: 'fas',\n  iconName: 'check-double',\n  icon: [384, 512, [], \"f560\", \"M249.9 66.8c10.4-14.3 7.2-34.3-7.1-44.7s-34.3-7.2-44.7 7.1l-106 145.7-37.5-37.5c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c6.6 6.6 15.8 10 25.1 9.3s17.9-5.5 23.4-13.1l128-176zm128 136c10.4-14.3 7.2-34.3-7.1-44.7s-34.3-7.2-44.7 7.1l-170 233.7-69.5-69.5c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c6.6 6.6 15.8 10 25.1 9.3s17.9-5.5 23.4-13.1l192-264z\"]\n};\nvar faPaw = {\n  prefix: 'fas',\n  iconName: 'paw',\n  icon: [512, 512, [], \"f1b0\", \"M234.5 92.9c14.3 42.9-.3 86.2-32.6 96.8s-70.1-15.6-84.4-58.5 .3-86.2 32.6-96.8 70.1 15.6 84.4 58.5zM100.4 198.6c18.9 32.4 14.3 70.1-10.2 84.1s-59.7-.9-78.5-33.3-14.3-70.1 10.2-84.1 59.7 .9 78.5 33.3zM69.2 401.2C121.6 259.9 214.7 224 256 224s134.4 35.9 186.8 177.2c3.6 9.7 5.2 20.1 5.2 30.5l0 1.6c0 25.8-20.9 46.7-46.7 46.7-11.5 0-22.9-1.4-34-4.2l-88-22c-15.3-3.8-31.3-3.8-46.6 0l-88 22c-11.1 2.8-22.5 4.2-34 4.2-25.8 0-46.7-20.9-46.7-46.7l0-1.6c0-10.4 1.6-20.8 5.2-30.5zM421.8 282.7c-24.5-14-29.1-51.7-10.2-84.1s54-47.3 78.5-33.3 29.1 51.7 10.2 84.1-54 47.3-78.5 33.3zM310.1 189.7c-32.3-10.6-46.9-53.9-32.6-96.8s52.1-69.1 84.4-58.5 46.9 53.9 32.6 96.8-52.1 69.1-84.4 58.5z\"]\n};\nvar faHelmetSafety = {\n  prefix: 'fas',\n  iconName: 'helmet-safety',\n  icon: [576, 512, [\"hard-hat\", \"hat-hard\"], \"f807\", \"M352 264l0-200c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 200c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-185.9C90 109.8 32 191.8 32 288l0 64 512 0 0-64c-1-95.2-58.4-177.7-144-209.8L400 264c0 13.3-10.7 24-24 24s-24-10.7-24-24zM40 400c-22.1 0-40 17.9-40 40s17.9 40 40 40l496 0c22.1 0 40-17.9 40-40s-17.9-40-40-40L40 400z\"]\n};\nvar faHardHat = faHelmetSafety;\nvar faHatHard = faHelmetSafety;\nvar faE = {\n  prefix: 'fas',\n  iconName: 'e',\n  icon: [320, 512, [101], \"45\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0 0-128 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-128 224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32z\"]\n};\nvar faFaceLaughSquint = {\n  prefix: 'fas',\n  iconName: 'face-laugh-squint',\n  icon: [512, 512, [\"laugh-squint\"], \"f59b\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM107.7 332.1C102 318 113.4 304 128.6 304l254.9 0c15.2 0 26.6 14 20.9 28.1-23.8 58.6-81.2 99.9-148.3 99.9s-124.6-41.3-148.3-99.9zm15-188.8c4.5-6.8 13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 192 125.8 164.3c-6.2-5.2-7.6-14.3-3.1-21.1zm263.6 21.1L353 192 386.2 219.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5s3.1 15.9-3.1 21.1z\"]\n};\nvar faLaughSquint = faFaceLaughSquint;\nvar faDownLeftAndUpRightToCenter = {\n  prefix: 'fas',\n  iconName: 'down-left-and-up-right-to-center',\n  icon: [512, 512, [\"compress-alt\"], \"f422\", \"M439.5 7c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2S450.2 240 440.5 240l-144 0c-13.3 0-24-10.7-24-24l0-144c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39 87-87zM72.5 272l144 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87-39-39c-6.9-6.9-8.9-17.2-5.2-26.2S62.8 272 72.5 272z\"]\n};\nvar faCompressAlt = faDownLeftAndUpRightToCenter;\nvar faGifts = {\n  prefix: 'fas',\n  iconName: 'gifts',\n  icon: [576, 512, [], \"f79c\", \"M202-30.6c12.5 4.4 19 18.1 14.6 30.6l-8.2 23.1 25.4-18.5c10.7-7.8 25.7-5.4 33.5 5.3s5.4 25.7-5.3 33.5L233.8 64 272 64c26.5 0 48 21.5 48 48l0 2.1c-54.7 10.4-96 58.4-96 116l0 1.9c0 8.9 1 17.5 2.8 25.9-11.9 17.8-18.8 39.1-18.8 62.1l0 128c0 23.8 7.4 45.9 20.1 64L48 512c-26.5 0-48-21.5-48-48L0 112C0 85.5 21.5 64 48 64l38.2 0-28.3-20.6C47.2 35.6 44.8 20.6 52.6 9.9S75.4-3.2 86.1 4.6l27.4 20-8.3-25C101-13 107.8-26.6 120.4-30.8s26.2 2.6 30.4 15.2l9.9 29.8 10.7-30.2c4.4-12.5 18.1-19 30.6-14.6zM489.9 208c-7.5 0-14.5 3.8-18.6 10.1L446.9 256 488 256c13.3 0 24-10.7 24-24l0-1.9c0-12.2-9.9-22.1-22.1-22.1zM385.1 256l-24.4-37.9c-4.1-6.3-11.1-10.1-18.6-10.1-12.2 0-22.1 9.9-22.1 22.1l0 1.9c0 13.3 10.7 24 24 24l41.1 0zM281.9 268.5c-6.3-10.7-9.9-23.2-9.9-36.5l0-1.9c0-38.7 31.4-70.1 70.1-70.1 23.8 0 46 12.1 58.9 32.1l15 23.2 15-23.2c12.9-20 35.1-32.1 58.9-32.1 38.7 0 70.1 31.4 70.1 70.1l0 1.9c0 13.3-3.6 25.8-9.9 36.5 15.7 11.7 25.9 30.4 25.9 51.5l0 128c0 35.3-28.7 64-64 64l-72 0 0-208-48 0 0 208-72 0c-35.3 0-64-28.7-64-64l0-128c0-21.1 10.2-39.8 25.9-51.5z\"]\n};\nvar faBed = {\n  prefix: 'fas',\n  iconName: 'bed',\n  icon: [576, 512, [128716], \"f236\", \"M32 32c17.7 0 32 14.3 32 32l0 224 224 0 0-128c0-17.7 14.3-32 32-32l160 0c53 0 96 43 96 96l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64-448 0 0 64c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64C0 46.3 14.3 32 32 32zm80 160a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"]\n};\nvar faMoneyBillTransfer = {\n  prefix: 'fas',\n  iconName: 'money-bill-transfer',\n  icon: [640, 512, [], \"e528\", \"M31 105c-9.4-9.4-9.4-24.6 0-33.9L103-1c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-31 31 67.7 0 0 0 338.3 0c35.3 0 64 28.7 64 64l0 178.2-5.1-5.1c-28.1-28.1-73.7-28.1-101.8 0-27.2 27.2-28.1 70.6-2.8 98.9l67.7 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-406.1 0c-35.3 0-64-28.7-64-64l0-178.2 5.1 5.1c28.1 28.1 73.7 28.1 101.8 0 27.2-27.2 28.1-70.6 2.8-98.9l-67.7 0 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L31 105zM416 256a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zm88-64.5c4.4 .5 8-3.1 8-7.5l0-48c0-4.4-3.6-8-8-8l-48 0c-4.4 0-8.1 3.6-7.5 8 3.6 29 26.6 51.9 55.5 55.5zm-368 129c-4.4-.5-8 3.1-8 7.5l0 48c0 4.4 3.6 8 8 8l48 0c4.4 0 8.1-3.6 7.5-8-3.6-29-26.6-51.9-55.5-55.5z\"]\n};\nvar faPersonRunning = {\n  prefix: 'fas',\n  iconName: 'person-running',\n  icon: [448, 512, [127939, \"running\"], \"f70c\", \"M256.5-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM123.6 176c-3.3 0-6.2 2-7.4 5L94.2 235.9c-6.6 16.4-25.2 24.4-41.6 17.8s-24.4-25.2-17.8-41.6l21.9-54.9C67.7 129.9 94.1 112 123.6 112l97.3 0c28.5 0 54.8 15.1 69.1 39.7l32.8 56.3 61.6 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-61.6 0c-22.8 0-43.8-12.1-55.3-31.8l-10-17.1-20.7 70.4 75.4 22.6c27.7 8.3 41.8 39 30.1 65.5L285.7 509c-7.2 16.2-26.1 23.4-42.2 16.2s-23.4-26.1-16.2-42.2l49.2-110.8-95.9-28.8c-32.7-9.8-52-43.7-43.7-76.8l22.7-90.6-35.9 0zm-8 181c13.3 14.9 30.7 26.3 51.2 32.4l4.7 1.4-6.9 19.3c-5.8 16.3-16 30.8-29.3 41.8L52.9 519.8c-13.6 11.2-33.8 9.3-45-4.3s-9.3-33.8 4.3-45l82.4-67.9c4.5-3.7 7.8-8.5 9.8-13.9L115.6 357z\"]\n};\nvar faRunning = faPersonRunning;\nvar faCircleChevronDown = {\n  prefix: 'fas',\n  iconName: 'circle-chevron-down',\n  icon: [512, 512, [\"chevron-circle-down\"], \"f13a\", \"M256 0a256 256 0 1 0 0 512 256 256 0 1 0 0-512zM135 241c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l87 87 87-87c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L273 345c-9.4 9.4-24.6 9.4-33.9 0L135 241z\"]\n};\nvar faChevronCircleDown = faCircleChevronDown;\nvar faUserNurse = {\n  prefix: 'fas',\n  iconName: 'user-nurse',\n  icon: [448, 512, [], \"f82f\", \"M96 44.9c0-12.7 7.5-24.2 19.2-29.3l96-42c8.2-3.6 17.5-3.6 25.7 0l96 42C344.5 20.7 352 32.2 352 44.9l0 99.1c0 70.7-57.3 128-128 128S96 214.7 96 144l0-99.1zM304 128l-111.6 0-.4 0-48 0 0 16c0 44.2 35.8 80 80 80s80-35.8 80-80l0-16zM208 16l0 16-16 0c-4.4 0-8 3.6-8 8l0 16c0 4.4 3.6 8 8 8l16 0 0 16c0 4.4 3.6 8 8 8l16 0c4.4 0 8-3.6 8-8l0-16 16 0c4.4 0 8-3.6 8-8l0-16c0-4.4-3.6-8-8-8l-16 0 0-16c0-4.4-3.6-8-8-8L216 8c-4.4 0-8 3.6-8 8zM142.6 323c-6.5-4.9-15.2-6.2-22.6-2.8-61.4 28.2-104.1 90.2-104.1 162.1 0 16.4 13.3 29.7 29.7 29.7l356.6 0c16.4 0 29.7-13.3 29.7-29.7 0-72-42.7-134-104.1-162.1-7.4-3.4-16.1-2.1-22.6 2.8l-67 50.2c-8.5 6.4-20.3 6.4-28.8 0l-67-50.2z\"]\n};\nvar faFaceKissWinkHeart = {\n  prefix: 'fas',\n  iconName: 'face-kiss-wink-heart',\n  icon: [640, 512, [128536, \"kiss-wink-heart\"], \"f598\", \"M543.7 268.3c.2-4.1 .3-8.2 .3-12.3 0-141.4-114.6-256-256-256S32 114.6 32 256 146.6 512 288 512c41.4 0 80.5-9.8 115.1-27.3-7.6-17.1-16.1-38.8-21.8-61.7-7.7-30.5-14.1-76.2 8.2-114.7l2.7-4.6c29.5-51 94.7-68.5 145.7-39 2 1.2 4 2.4 5.9 3.7zM240 304c0-8.8 7.2-16 16-16l32 0c26.5 0 48 21.5 48 48 0 12.3-4.6 23.5-12.2 32 7.6 8.5 12.2 19.7 12.2 32 0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16zM208 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm152 20c-11 0-20 9-20 20s-9 20-20 20-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0zM542.8 350c-2.2-18.3-12.9-34.6-28.9-43.8-28.1-16.2-63.9-6.6-80.1 21.5l-2.7 4.6c-24.5 42.5 7.9 117.9 24.4 150.8 5.1 10.1 15.5 16.1 26.8 15.5 36.7-2.2 118.2-11.7 142.8-54.2l2.7-4.6c16.2-28.1 6.6-63.9-21.5-80.1-16-9.2-35.4-10.4-52.4-3.1l-9.8 4.2-1.3-10.6z\"]\n};\nvar faKissWinkHeart = faFaceKissWinkHeart;\nvar faFill = {\n  prefix: 'fas',\n  iconName: 'fill',\n  icon: [512, 512, [], \"f575\", \"M296 64c6.9 0 13.5 2.7 18.3 7.6L440.4 197.7c4.9 4.9 7.6 11.5 7.6 18.3s-2.7 13.5-7.6 18.3L386.7 288 65.3 288c1.3-3.9 3.4-7.4 6.3-10.3l96.4-96.4 33.4 33.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L213.3 136 277.7 71.6c4.9-4.9 11.5-7.6 18.3-7.6zM122.7 136L26.3 232.4C9.5 249.3 0 272.1 0 296s9.5 46.7 26.3 63.6L152.4 485.7C169.3 502.5 192.1 512 216 512s46.7-9.5 63.6-26.3L485.7 279.6C502.5 262.7 512 239.9 512 216s-9.5-46.7-26.3-63.6L359.6 26.3C342.7 9.5 319.9 0 296 0s-46.7 9.5-63.6 26.3L168 90.7 118.6 41.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L122.7 136z\"]\n};\nvar faMoneyBill1Wave = {\n  prefix: 'fas',\n  iconName: 'money-bill-1-wave',\n  icon: [512, 512, [\"money-bill-wave-alt\"], \"f53b\", \"M0 109.5L0 419.6c0 19.4 11.8 37.3 30.3 43.3 94 30 158.8 8.4 223.3-13.1 62.4-20.8 124.4-41.5 212.1-15.3 22.2 6.6 46.2-8.8 46.2-32l0-310.1c0-19.4-11.8-37.3-30.3-43.3-94-30-158.8-8.4-223.3 13.1-62.4 20.8-124.4 41.5-212.1 15.3-22.2-6.6-46.3 8.8-46.3 32zM256 368c-53 0-96-50.1-96-112s43-112 96-112 96 50.1 96 112-43 112-96 112zM127.1 405.5c.7 4.4-2.8 8.1-7.2 8.1-15.7 0-32.1-1.8-50-6.1-3.5-.8-6-4-6-7.7L64 360c0-4.4 3.6-8.1 8-7.5 28.1 3.5 50.6 25.2 55.2 53zM448 354.6c0 5-4.6 8.8-9.5 8-15.4-2.5-30.2-3.9-44.4-4.3-4.9-.1-8.7-4.5-7.2-9.2 7.3-23.7 28-41.4 53.2-44.6 4.4-.5 8 3.1 8 7.5l0 42.6zm-8-195.1c-28.1-3.5-50.6-25.2-55.2-53-.7-4.4 2.8-8.1 7.2-8.1 15.7 0 32.1 1.8 50 6.1 3.5 .8 6 4 6 7.7l0 39.9c0 4.4-3.6 8.1-8 7.5zm-322.1-5.8c4.9 .1 8.7 4.5 7.2 9.2-7.3 23.7-28 41.4-53.2 44.6-4.4 .5-8-3.1-8-7.5l0-42.6c0-5 4.6-8.8 9.5-8 15.4 2.5 30.2 3.9 44.4 4.3zM240 188c-11 0-20 9-20 20 0 9.7 6.9 17.7 16 19.6l0 48.4-4 0c-11 0-20 9-20 20s9 20 20 20l48 0c11 0 20-9 20-20s-9-20-20-20l-4 0 0-68c0-11-9-20-20-20l-16 0z\"]\n};\nvar faMoneyBillWaveAlt = faMoneyBill1Wave;\nvar faLandmark = {\n  prefix: 'fas',\n  iconName: 'landmark',\n  icon: [512, 512, [127963], \"f66f\", \"M238.7 5.1c10.5-6.8 24.1-6.8 34.6 0l224 144c11.9 7.7 17.4 22.3 13.4 35.9s-16.5 23-30.7 23l-32 0 0 208 51.2 38.4c8.1 6 12.8 15.5 12.8 25.6 0 17.7-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32 0-10.1 4.7-19.6 12.8-25.6l51.2-38.4 0 0 0-208-32 0c-14.2 0-26.7-9.4-30.7-23s1.5-28.3 13.4-35.9l224-144zM336 208l0 208 64 0 0-208-64 0zM224 416l64 0 0-208-64 0 0 208zM112 208l0 208 64 0 0-208-64 0z\"]\n};\nvar faMusic = {\n  prefix: 'fas',\n  iconName: 'music',\n  icon: [512, 512, [127925], \"f001\", \"M468 7c7.6 6.1 12 15.3 12 25l0 304c0 44.2-43 80-96 80s-96-35.8-96-80 43-80 96-80c11.2 0 22 1.6 32 4.6l0-116.7-224 49.8 0 206.3c0 44.2-43 80-96 80s-96-35.8-96-80 43-80 96-80c11.2 0 22 1.6 32 4.6L128 96c0-15 10.4-28 25.1-31.2l288-64c9.5-2.1 19.4 .2 27 6.3z\"]\n};\nvar faBookMedical = {\n  prefix: 'fas',\n  iconName: 'book-medical',\n  icon: [448, 512, [], \"f7e6\", \"M96 512l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-66.7c18.6-6.6 32-24.4 32-45.3l0-288c0-26.5-21.5-48-48-48L96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96zM64 416c0-17.7 14.3-32 32-32l256 0 0 64-256 0c-17.7 0-32-14.3-32-32zM192 120c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"]\n};\nvar faShuffle = {\n  prefix: 'fas',\n  iconName: 'shuffle',\n  icon: [512, 512, [128256, \"random\"], \"f074\", \"M403.8 34.4c12-5 25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9S384 204.9 384 192l0-32-32 0c-10.1 0-19.6 4.7-25.6 12.8l-32.4 43.2-40-53.3 21.2-28.3C293.3 110.2 321.8 96 352 96l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6zM154 296l40 53.3-21.2 28.3C154.7 401.8 126.2 416 96 416l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0c10.1 0 19.6-4.7 25.6-12.8L154 296zM438.6 470.6c-9.2 9.2-22.9 11.9-34.9 6.9S384 460.9 384 448l0-32-32 0c-30.2 0-58.7-14.2-76.8-38.4L121.6 172.8c-6-8.1-15.5-12.8-25.6-12.8l-64 0c-17.7 0-32-14.3-32-32S14.3 96 32 96l64 0c30.2 0 58.7 14.2 76.8 38.4L326.4 339.2c6 8.1 15.5 12.8 25.6 12.8l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64z\"]\n};\nvar faRandom = faShuffle;\nvar faUnderline = {\n  prefix: 'fas',\n  iconName: 'underline',\n  icon: [384, 512, [], \"f0cd\", \"M0 32C0 14.3 14.3 0 32 0L96 0c17.7 0 32 14.3 32 32S113.7 64 96 64l0 160c0 53 43 96 96 96s96-43 96-96l0-160c-17.7 0-32-14.3-32-32S270.3 0 288 0l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 160c0 88.4-71.6 160-160 160S32 312.4 32 224L32 64C14.3 64 0 49.7 0 32zM0 480c0-17.7 14.3-32 32-32l320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32z\"]\n};\nvar faBuildingUser = {\n  prefix: 'fas',\n  iconName: 'building-user',\n  icon: [640, 512, [], \"e4da\", \"M64 64C64 28.7 92.7 0 128 0L384 0c35.3 0 64 28.7 64 64l0 121.3c-46.9 19-80 65-80 118.7 0 27.7 8.8 53.4 23.8 74.4-51.5 21-87.8 71.6-87.8 130.7 0 1 0 1.9 0 2.9l-176 0c-35.3 0-64-28.7-64-64L64 64zM208 400l0 64 53.4 0c7.2-29.4 21.3-56.1 40.4-78.3-6.1-19.5-24.3-33.7-45.8-33.7-26.5 0-48 21.5-48 48zM339 224.3c-1-.2-2-.3-3-.3l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l16.7 0c2.1-22.8 8.4-44.3 18.3-63.7zM176 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM176 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm240 80a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zM352 512c0-53 43-96 96-96l96 0c53 0 96 43 96 96 0 17.7-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32z\"]\n};\nvar faRobot = {\n  prefix: 'fas',\n  iconName: 'robot',\n  icon: [640, 512, [129302], \"f544\", \"M352 0c0-17.7-14.3-32-32-32S288-17.7 288 0l0 64-96 0c-53 0-96 43-96 96l0 224c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-224c0-53-43-96-96-96l-96 0 0-64zM160 368c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm120 0c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm120 0c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zM224 176a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm144 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM64 224c0-17.7-14.3-32-32-32S0 206.3 0 224l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96zm544-32c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32z\"]\n};\nvar faPlus = {\n  prefix: 'fas',\n  iconName: 'plus',\n  icon: [448, 512, [10133, 61543, \"add\"], \"2b\", \"M256 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 160-160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-160z\"]\n};\nvar faAdd = faPlus;\nvar faCopy = {\n  prefix: 'fas',\n  iconName: 'copy',\n  icon: [448, 512, [], \"f0c5\", \"M192 0c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-200.6c0-17.4-7.1-34.1-19.7-46.2L370.6 17.8C358.7 6.4 342.8 0 326.3 0L192 0zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-16-64 0 0 16-192 0 0-256 16 0 0-64-16 0z\"]\n};\nvar faChessKing = {\n  prefix: 'fas',\n  iconName: 'chess-king',\n  icon: [448, 512, [9818], \"f43f\", \"M224-32c17.7 0 32 14.3 32 32l0 32 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 64 153.8 0c21.1 0 38.2 17.1 38.2 38.2 0 6.4-1.6 12.7-4.7 18.3L352 384 408.2 454.3c5 6.3 7.8 14.1 7.8 22.2 0 19.6-15.9 35.5-35.5 35.5L67.5 512c-19.6 0-35.5-15.9-35.5-35.5 0-8.1 2.7-15.9 7.8-22.2L96 384 4.7 216.6C1.6 210.9 0 204.6 0 198.2 0 177.1 17.1 160 38.2 160l153.8 0 0-64-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-32c0-17.7 14.3-32 32-32z\"]\n};\nvar faHouseFloodWater = {\n  prefix: 'fas',\n  iconName: 'house-flood-water',\n  icon: [640, 512, [], \"e50e\", \"M496 208l4.5 0c15.2 0 27.5-12.3 27.5-27.5 0-7.9-3.4-15.5-9.4-20.7L348 10.5C340.3 3.7 330.3 0 320 0s-20.3 3.7-28 10.5L121.4 159.8c-6 5.2-9.4 12.8-9.4 20.7 0 15.2 12.3 27.5 27.5 27.5l4.5 0 0 94.4c20.3-9.4 42.1-14.2 64-14.4 33.1-.2 66.3 10.2 94.4 31.4 22.1 16.6 29.1 16.6 51.2 0 27.5-20.7 59.9-31.2 92.4-31.4 16.9-.1 33.8 2.6 50 8l0-88zm-224-8c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-48zM474.6 412.1c19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7S7 418.3 17.6 426.3c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0zm-71.2 96c21.3-16.1 49.9-16.1 71.2 0 19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7S7 514.3 17.6 522.3c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9z\"]\n};\nvar faBitcoinSign = {\n  prefix: 'fas',\n  iconName: 'bitcoin-sign',\n  icon: [320, 512, [], \"e0b4\", \"M64 24C64 10.7 74.7 0 88 0s24 10.7 24 24l0 40 32 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 41.1c54.3 7.8 96 54.4 96 110.9 0 24.2-7.7 46.6-20.7 64.9 31.7 19.8 52.7 55 52.7 95.1 0 61.9-50.1 112-112 112l-16 0 0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-40-32 0 0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-40-22.3 0C18.7 448 0 429.3 0 406.3L0 101.6C0 80.8 16.8 64 37.6 64L64 64 64 24zm0 200l112 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-112 0 0 96zm112 64l-112 0 0 96 144 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-32 0z\"]\n};\nvar faBox = {\n  prefix: 'fas',\n  iconName: 'box',\n  icon: [448, 512, [128230], \"f466\", \"M335.1 16c20.7 0 40.1 10 52.1 26.8l48.9 68.5c7.7 10.8 11.9 23.9 11.9 37.2L448 416c0 35.3-28.7 64-64 64l-320 0-6.5-.3C25.2 476.4 0 449.1 0 416L0 148.5c0-11.7 3.2-23.1 9.2-33l2.7-4.2 48.9-68.5c10.5-14.7 26.7-24.2 44.4-26.3l7.7-.5 222.1 0zM248 128l121.3 0-34.3-48-87.1 0 0 48zM78.7 128l121.3 0 0-48-87.1 0-34.3 48z\"]\n};\nvar faSquarePlus = {\n  prefix: 'fas',\n  iconName: 'square-plus',\n  icon: [448, 512, [61846, \"plus-square\"], \"f0fe\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM200 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"]\n};\nvar faPlusSquare = faSquarePlus;\nvar faArrowsLeftRight = {\n  prefix: 'fas',\n  iconName: 'arrows-left-right',\n  icon: [576, 512, [\"arrows-h\"], \"f07e\", \"M470.6 374.6l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l41.4 41.4-357.5 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-41.4-41.4 357.5 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z\"]\n};\nvar faArrowsH = faArrowsLeftRight;\nvar faFan = {\n  prefix: 'fas',\n  iconName: 'fan',\n  icon: [512, 512, [], \"f863\", \"M160 144c0-79.5 64.5-144 144-144 8.8 0 16 7.2 16 16l0 152.2c15-5.3 31.2-8.2 48-8.2 79.5 0 144 64.5 144 144 0 8.8-7.2 16-16 16l-152.2 0c5.3 15 8.2 31.2 8.2 48 0 79.5-64.5 144-144 144-8.8 0-16-7.2-16-16l0-152.2c-15 5.3-31.2 8.2-48 8.2-79.5 0-144-64.5-144-144 0-8.8 7.2-16 16-16l152.2 0c-5.3-15-8.2-31.2-8.2-48zm96 144a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faCrow = {\n  prefix: 'fas',\n  iconName: 'crow',\n  icon: [640, 512, [], \"f520\", \"M456.5 0c-48.6 0-88 39.4-88 88l0 36-355.2 266.4C-.8 401-3.7 421 6.9 435.2s30.6 17 44.8 6.4l76.8-57.6 131.3 0 46.6 113.1 1 2.2c5.7 10.7 18.8 15.5 30.3 10.8s17.3-17.3 13.9-29l-.8-2.3-39.1-94.9 40.9 0c1.1 0 2.2 0 3.2 0l46.6 113.2 1 2.2c5.7 10.7 18.8 15.5 30.3 10.8s17.3-17.3 13.9-29l-.8-2.3-42-102C485.3 354.1 544.5 280 544.5 192l0-72 80.5-20.1c8.6-2.1 13.8-10.8 11.6-19.4-7.1-28.5-32.7-48.5-62.1-48.5l-50.1 0C508.2 12.5 483.8 0 456.5 0zm0 64a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faFileCircleCheck = {\n  prefix: 'fas',\n  iconName: 'file-circle-check',\n  icon: [576, 512, [], \"e5a0\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM576 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"]\n};\nvar faLinkSlash = {\n  prefix: 'fas',\n  iconName: 'link-slash',\n  icon: [576, 512, [\"chain-broken\", \"chain-slash\", \"unlink\"], \"f127\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-122-122c4.2-3.4 8.3-7.1 12.1-10.9l71.1-71.1c29.3-29.3 45.8-69.1 45.8-110.6 0-86.4-70-156.5-156.5-156.5-37.3 0-73.1 13.3-101.3 37.2 20.3 10.1 38.7 23.5 54.5 39.5 14.1-8.3 30.2-12.7 46.8-12.7 51.1 0 92.5 41.4 92.5 92.5 0 24.5-9.7 48-27.1 65.4l-71.1 71.1c-3.9 3.9-8.1 7.4-12.6 10.5l-47.5-47.5c16.5-.9 29.7-14.4 30.2-31.1 0-1.3 0-2.6 0-3.9 0-86.3-69.9-156.9-156.5-156.9-19.2 0-37.9 3.5-55.5 10.2L41-24.9zM225.9 160c.6 0 1.1 0 1.7 0 15.1 0 29.5 3.7 42.1 10.2 1.8 1.2 3.6 2.3 5.5 3.1 26.8 16.3 44.8 45.9 44.8 79.6 0 .4 0 .8 0 1.2L225.9 160zM346.2 416L192 261.8c1.2 84.6 69.6 152.9 154.1 154.1zM139.7 209.5l-45.3-45.3-48.6 48.6c-29.3 29.3-45.8 69.1-45.8 110.6 0 86.4 70 156.5 156.5 156.5 37.2 0 73.1-13.3 101.3-37.2-20.3-10.1-38.8-23.5-54.6-39.5-14 8.2-30.1 12.6-46.7 12.6-51.1 0-92.5-41.4-92.5-92.5 0-24.5 9.7-48 27.1-65.4l48.6-48.6z\"]\n};\nvar faChainBroken = faLinkSlash;\nvar faChainSlash = faLinkSlash;\nvar faUnlink = faLinkSlash;\nvar faArrowRotateRight = {\n  prefix: 'fas',\n  iconName: 'arrow-rotate-right',\n  icon: [512, 512, [8635, \"arrow-right-rotate\", \"arrow-rotate-forward\", \"redo\"], \"f01e\", \"M436.7 74.7L448 85.4 448 32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l47.9 0-7.6-7.2c-.2-.2-.4-.4-.6-.6-75-75-196.5-75-271.5 0s-75 196.5 0 271.5 196.5 75 271.5 0c8.2-8.2 15.5-16.9 21.9-26.1 10.1-14.5 30.1-18 44.6-7.9s18 30.1 7.9 44.6c-8.5 12.2-18.2 23.8-29.1 34.7-100 100-262.1 100-362 0S-25 175 75 75c99.9-99.9 261.7-100 361.7-.3z\"]\n};\nvar faArrowRightRotate = faArrowRotateRight;\nvar faArrowRotateForward = faArrowRotateRight;\nvar faRedo = faArrowRotateRight;\nvar faPenClip = {\n  prefix: 'fas',\n  iconName: 'pen-clip',\n  icon: [512, 512, [\"pen-alt\"], \"f305\", \"M404 0c19.2 0 37.6 7.6 51.1 21.2l35.7 35.7C504.4 70.4 512 88.8 512 108s-7.6 37.6-21.2 51.1L445.9 204 308 66.1 352.9 21.2C366.4 7.6 384.8 0 404 0zM274.1 100l0 0 137.9 137.9-215.1 215.1c-10.7 10.7-24.1 18.5-38.7 22.6L30.4 511.1c-8.3 2.3-17.3 0-23.4-6.2s-8.5-15.1-6.2-23.4L36.4 353.8c4.1-14.6 11.8-27.9 22.6-38.7L240.1 133.9 223 116.9c-9.4-9.4-24.6-9.4-33.9 0L89 217c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L155.1 82.9c28.1-28.1 73.7-28.1 101.8 0L274.1 100z\"]\n};\nvar faPenAlt = faPenClip;\nvar faDoorClosed = {\n  prefix: 'fas',\n  iconName: 'door-closed',\n  icon: [448, 512, [128682], \"f52a\", \"M32 64C32 28.7 60.7 0 96 0L352 0c35.3 0 64 28.7 64 64l0 384c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32L32 64zM320 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faArrowDownWideShort = {\n  prefix: 'fas',\n  iconName: 'arrow-down-wide-short',\n  icon: [576, 512, [\"sort-amount-asc\", \"sort-amount-down\"], \"f160\", \"M246.6 374.6l-96 96c-12.5 12.5-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM320 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L320 96z\"]\n};\nvar faSortAmountAsc = faArrowDownWideShort;\nvar faSortAmountDown = faArrowDownWideShort;\nvar faCaretDown = {\n  prefix: 'fas',\n  iconName: 'caret-down',\n  icon: [320, 512, [], \"f0d7\", \"M140.3 376.8c12.6 10.2 31.1 9.5 42.8-2.2l128-128c9.2-9.2 11.9-22.9 6.9-34.9S301.4 192 288.5 192l-256 0c-12.9 0-24.6 7.8-29.6 19.8S.7 237.5 9.9 246.6l128 128 2.4 2.2z\"]\n};\nvar faK = {\n  prefix: 'fas',\n  iconName: 'k',\n  icon: [320, 512, [107], \"4b\", \"M311 86.3c12.3-12.7 12-32.9-.7-45.2s-32.9-12-45.2 .7C143.4 167.2 76.4 236.3 64 249L64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-107 64.7-66.7 133 192c10.1 14.5 30 18.1 44.5 8.1s18.1-30 8.1-44.5L174.1 227.4 311 86.3z\"]\n};\nvar faCheckToSlot = {\n  prefix: 'fas',\n  iconName: 'check-to-slot',\n  icon: [576, 512, [\"vote-yea\"], \"f772\", \"M552 288c13.3 0 24 10.7 24 24l0 104c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 312c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104c0 8.8 7.2 16 16 16l448 0c8.8 0 16-7.2 16-16l0-104c0-13.3 10.7-24 24-24zM416 32c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64l-256 0c-35.3 0-64-28.7-64-64L96 96c0-35.3 28.7-64 64-64l256 0zm-37.1 84.6c-10.7-7.8-25.7-5.4-33.5 5.3l-85.6 117.7-26.5-27.4c-9.2-9.5-24.4-9.8-33.9-.6-9.5 9.2-9.8 24.4-.6 33.9l46.4 48c4.9 5.1 11.8 7.8 18.9 7.3s13.6-4.1 17.8-9.8L384.2 150.1c7.8-10.7 5.4-25.7-5.3-33.5z\"]\n};\nvar faVoteYea = faCheckToSlot;\nvar faFishFins = {\n  prefix: 'fas',\n  iconName: 'fish-fins',\n  icon: [576, 512, [], \"e4f2\", \"M275.2 38.4c-10.6-8-25-8.5-36.3-1.5S222 57.3 224.6 70.3l9.7 48.6c-19.4 9-36.9 19.9-52.4 31.5-15.3 11.5-29 23.9-40.7 36.3L48.1 132.4c-12.5-7.3-28.4-5.3-38.7 4.9s-12.4 26-5.3 38.6L50 256 4.2 336.1c-7.2 12.6-5 28.4 5.3 38.6s26.1 12.2 38.7 4.9l93.1-54.3c11.8 12.3 25.4 24.8 40.7 36.3 15.5 11.6 33 22.5 52.4 31.5l-9.7 48.6c-2.6 13 3.1 26.3 14.3 33.3s25.6 6.5 36.3-1.5l77.6-58.2c54.9-4 101.5-27 137.2-53.8 39.2-29.4 67.2-64.7 81.6-89.5 5.8-9.9 5.8-22.2 0-32.1-14.4-24.8-42.5-60.1-81.6-89.5-35.8-26.8-82.3-49.8-137.2-53.8L275.2 38.4zM384 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faCompress = {\n  prefix: 'fas',\n  iconName: 'compress',\n  icon: [448, 512, [], \"f066\", \"M160 64c0-17.7-14.3-32-32-32S96 46.3 96 64l0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96zM32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0zM352 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64zM320 320c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0z\"]\n};\nvar faArrowUpAZ = {\n  prefix: 'fas',\n  iconName: 'arrow-up-a-z',\n  icon: [512, 512, [\"sort-alpha-up\"], \"f15e\", \"M412.6 49.7C407.2 38.8 396.1 32 384 32s-23.2 6.8-28.6 17.7c-50.7 101.3-77.3 154.7-80 160-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3 88.4 0 7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9c-2.7-5.3-29.3-58.7-80-160zM384 135.6l20.2 40.4-40.4 0 20.2-40.4zM288 320c0 17.7 14.3 32 32 32l50.7 0-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9S307.1 480 320 480l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-50.7 0 73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9S460.9 288 448 288l-128 0c-17.7 0-32 14.3-32 32zM150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80z\"]\n};\nvar faSortAlphaUp = faArrowUpAZ;\nvar faUserGraduate = {\n  prefix: 'fas',\n  iconName: 'user-graduate',\n  icon: [448, 512, [], \"f501\", \"M241.3-13c-11.4-2.3-23.1-2.3-34.5 0L19.3 24.5C8.1 26.7 0 36.6 0 48 0 58.3 6.5 67.3 16 70.6L16 144 .3 222.6c-.2 .9-.3 1.9-.3 2.9 0 8 6.5 14.6 14.6 14.6l34.9 0c8 0 14.6-6.5 14.6-14.6 0-1-.1-1.9-.3-2.9L48 144 48 77.3 96 86.9 96 144c0 70.7 57.3 128 128 128s128-57.3 128-128l0-57.1 76.7-15.3C439.9 69.3 448 59.4 448 48s-8.1-21.3-19.3-23.5L241.3-13zM224 224c-44.2 0-80-35.8-80-80l160 0c0 44.2-35.8 80-80 80zM120.1 320.1C58.7 348.3 16 410.3 16 482.3 16 498.7 29.3 512 45.7 512l154.3 0 0-146-57.4-43c-6.5-4.9-15.2-6.2-22.6-2.8zM248 512l154.3 0c16.4 0 29.7-13.3 29.7-29.7 0-72-42.7-134-104.1-162.1-7.4-3.4-16.1-2.1-22.6 2.8l-57.4 43 0 146z\"]\n};\nvar faFileCode = {\n  prefix: 'fas',\n  iconName: 'file-code',\n  icon: [384, 512, [], \"f1c9\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM154.2 295.6c8.6-10.1 7.5-25.2-2.6-33.8s-25.2-7.5-33.8 2.6l-48 56c-7.7 9-7.7 22.2 0 31.2l48 56c8.6 10.1 23.8 11.2 33.8 2.6s11.2-23.8 2.6-33.8l-34.6-40.4 34.6-40.4zm112-31.2c-8.6-10.1-23.8-11.2-33.8-2.6s-11.2 23.8-2.6 33.8l34.6 40.4-34.6 40.4c-8.6 10.1-7.5 25.2 2.6 33.8s25.2 7.5 33.8-2.6l48-56c7.7-9 7.7-22.2 0-31.2l-48-56z\"]\n};\nvar faSoap = {\n  prefix: 'fas',\n  iconName: 'soap',\n  icon: [512, 512, [129532], \"e06e\", \"M208-32a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM320 96a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM352 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM96 160l112 0c0 23.8 7.4 45.9 20.1 64L160 224c-53 0-96 43-96 96s43 96 96 96l192 0c53 0 96-43 96-96 0-35.1-18.9-65.9-47-82.6 19-19.8 30.7-46.6 31-76.1 45.4 7.6 80 47.1 80 94.7l0 128c0 53-43 96-96 96L96 480c-53 0-96-43-96-96L0 256c0-53 43-96 96-96zm64 112l192 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-192 0c-26.5 0-48-21.5-48-48s21.5-48 48-48z\"]\n};\nvar faRecycle = {\n  prefix: 'fas',\n  iconName: 'recycle',\n  icon: [512, 512, [9842, 9850, 9851], \"f1b8\", \"M152.3 60C198.5-20 314-20 360.2 60l37.3 64.6 27.7-16c8.4-4.9 18.9-4.2 26.6 1.7s11.1 15.9 8.6 25.3L436.9 223c-3.4 12.8-16.6 20.4-29.4 17l-87.4-23.4c-9.4-2.5-16.3-10.4-17.6-20s3.4-19.1 11.8-23.9l27.7-16-37.3-64.6c-21.6-37.3-75.4-37.3-97 0l-5.3 9.1c-8.8 15.3-28.4 20.5-43.7 11.7S138.2 84.5 147 69.1l5.3-9.1zM449.7 279.1c15.3-8.8 34.9-3.6 43.7 11.7l5.3 9.1c46.2 80-11.5 180-103.9 180l-74.6 0 0 32c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-64-64c-9.4-9.4-9.4-24.6 0-33.9l64-64c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2l0 32 74.6 0c43.1 0 70.1-46.7 48.5-84l-5.3-9.1c-8.8-15.3-3.6-34.9 11.7-43.7zM51 235.4l-27.7-16c-8.4-4.9-13.1-14.3-11.8-23.9s8.2-17.5 17.6-20L116.5 152c12.8-3.4 26 4.2 29.4 17l23.4 87.4c2.5 9.4-.9 19.3-8.6 25.3s-18.2 6.6-26.6 1.7l-27.7-16-37.3 64.6c-21.6 37.3 5.4 84 48.5 84l10.6 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-10.6 0C25.3 480-32.4 380 13.8 300L51 235.4z\"]\n};\nvar faFaceGrinWink = {\n  prefix: 'fas',\n  iconName: 'face-grin-wink',\n  icon: [512, 512, [\"grin-wink\"], \"f58c\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM386.7 308.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 388.2 105.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM328 196c-11 0-20 9-20 20s-9 20-20 20-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0zM176 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faGrinWink = faFaceGrinWink;\nvar faWaterLadder = {\n  prefix: 'fas',\n  iconName: 'water-ladder',\n  icon: [640, 512, [\"ladder-water\", \"swimming-pool\"], \"f5c5\", \"M374.5 405.7c38.4-29 90.5-29 129 0 16.9 12.7 32.9 21.5 47.8 24.6 13.7 2.8 27.4 .9 42.3-10.3 10.6-8 25.6-5.9 33.6 4.7s5.8 25.7-4.8 33.6c-26.4 19.9-54.2 24.4-80.7 19.1-25.3-5.1-48.1-18.9-67.2-33.3-21.3-16.1-49.9-16.1-71.2 0-24.2 18.3-52.3 35.9-83.4 35.9s-59.1-17.7-83.3-35.9c-21.3-16.1-49.9-16.1-71.2 0-23.8 17.9-54.1 35.5-88.1 35.3-20.4-.1-40.7-6.7-59.8-21.1-10.6-8-12.7-23-4.7-33.6s23-12.7 33.6-4.7c11.3 8.5 21.6 11.4 31.2 11.5 17.6 .1 37.3-9.4 58.9-25.7 38.4-29 90.6-29 129 0 24 18.1 40.7 26.3 54.5 26.3s30.5-8.2 54.5-26.3zM511.8 32c48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8-17.5 0-31.8 14.2-31.8 31.8l0 211.8c-23.1-5.1-44.9-4.4-64-.4l0-51.2-192 0 0 48.7c-5.3-.5-10.7-.8-16-.7-16.2 .1-32.4 2.7-48 8l0-216.2c0-52.9 42.9-95.8 95.7-95.8 48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8-17.5 0-31.7 14.2-31.7 31.8l0 96.2 192 0 0-96.2C416 74.9 458.9 32 511.8 32z\"]\n};\nvar faLadderWater = faWaterLadder;\nvar faSwimmingPool = faWaterLadder;\nvar faGemini = {\n  prefix: 'fas',\n  iconName: 'gemini',\n  icon: [448, 512, [], \"e849\", \"M395.4 8c13.2-11.7 33.3-10.5 45.1 2.7 11.7 13.2 10.5 33.4-2.7 45.2-2.7 2.4-23.1 19.8-58.3 36.8-8.2 4-17.2 7.9-27 11.6l0 303.2c9.8 3.8 18.8 7.6 27 11.6 18.2 8.8 32.4 17.7 42.2 24.5 3 2.1 5.5 4.1 7.7 5.7 1.2 .9 2.3 1.6 3.2 2.4 .2 .1 .3 .2 .5 .4 1.3 1.1 2.4 2 3.2 2.6 .4 .3 .7 .6 .9 .8 .1 .1 .3 .2 .3 .3 0 0 .1 .1 .1 .1l.1 0 0 0 0 0c3.3 2.9 5.9 6.4 7.7 10.2 5.4 11.3 3.8 25.1-5 35-.3 .4-.7 .7-1.1 1.1-11.9 12.2-31.2 13.1-44 1.7-.3-.3-1.5-1.3-3.5-2.8-.4-.3-.9-.7-1.5-1.1-1.9-1.4-4.2-3.1-7.1-5.1-2.2-1.5-4.7-3.1-7.4-4.8-6.6-4.1-14.8-8.8-24.4-13.5-7.4-3.6-15.6-7.2-24.7-10.5-13.6-5.1-29-9.6-46.1-12.9-5.7-1.1-11.6-2.1-17.7-2.8-12.1-1.6-25-2.5-38.6-2.5-54.2 0-97.4 14.4-127 28.8-3.4 1.6-6.5 3.3-9.5 4.9-5.1 2.8-9.7 5.4-13.8 7.9-3.3 2.1-6.3 4-8.9 5.7-1.7 1.2-3.2 2.3-4.6 3.3-1.9 1.4-3.5 2.5-4.6 3.4-1.4 1.1-2.2 1.8-2.5 2-13.2 11.7-33.3 10.5-45.1-2.8-2.2-2.5-4-5.2-5.2-8.1s-2.1-5.9-2.5-8.9c-1.4-10.2 2.2-20.8 10.4-28.2 .2-.2 .6-.5 1.2-1 .1-.1 .2-.2 .3-.3l3.2-2.6c1.7-1.3 3.7-2.8 6.2-4.6 1.6-1.2 3.3-2.5 5.2-3.8 9.8-6.8 24-15.7 42.2-24.5 8.2-4 17.2-7.9 27-11.6l0-303.2C86.7 100.6 77.7 96.7 69.5 92.8 34.3 75.7 14 58.3 11.3 55.9-1.9 44.2-3.1 24 8.6 10.7 20.3-2.5 40.5-3.7 53.7 8 55.1 9.2 70.7 22.2 97.5 35.2 127.1 49.6 170.3 64 224.5 64s97.4-14.4 127-28.8c26.8-13 42.4-26 43.8-27.2zM288.5 122.3c-19.7 3.5-41 5.7-64 5.7s-44.3-2.2-64-5.7l0 267.4c12.6-2.3 25.9-4 39.9-4.9 7.8-.5 15.8-.8 24-.8 23 0 44.4 2.2 64 5.7l0-267.4z\"]\n};\nvar faTowerCell = {\n  prefix: 'fas',\n  iconName: 'tower-cell',\n  icon: [576, 512, [], \"e585\", \"M59.6 9.8C47.3 4.8 33.3 10.7 28.4 23 15.2 55.5 8 90.9 8 128s7.2 72.5 20.4 105c5 12.3 19 18.2 31.3 13.2s18.2-19 13.2-31.3C62 188.2 56 158.8 56 128s6-60.2 16.9-87c5-12.3-1-26.3-13.2-31.3zm456.8 0c-12.3 5-18.2 19-13.2 31.3 10.9 26.8 16.9 56.2 16.9 87s-6 60.2-16.9 87c-5 12.3 1 26.3 13.2 31.3s26.3-1 31.3-13.2c13.1-32.5 20.4-67.9 20.4-105s-7.2-72.5-20.4-105c-5-12.3-19-18.2-31.3-13.2zM340.1 165.2c7.5-10.5 11.9-23.3 11.9-37.2 0-35.3-28.7-64-64-64s-64 28.7-64 64c0 13.9 4.4 26.7 11.9 37.2L98.9 466.8c-7.3 16.1-.2 35.1 15.9 42.4s35.1 .2 42.4-15.9l20.6-45.2 220.6 0 20.6 45.2c7.3 16.1 26.3 23.2 42.4 15.9s23.2-26.3 15.9-42.4L340.1 165.2zM376.5 400l-177 0 21.8-48 133.3 0 21.8 48zM288 205.3l44.8 98.7-89.7 0 44.8-98.7zM163.3 73.6c5.3-12.1-.2-26.3-12.4-31.6s-26.3 .2-31.6 12.4C109.5 77 104 101.9 104 128s5.5 51 15.3 73.6c5.3 12.1 19.5 17.7 31.6 12.4s17.7-19.5 12.4-31.6C156 165.8 152 147.4 152 128s4-37.8 11.3-54.4zM456.7 54.4c-5.3-12.1-19.5-17.7-31.6-12.4s-17.7 19.5-12.4 31.6C420 90.2 424 108.6 424 128s-4 37.8-11.3 54.4c-5.3 12.1 .2 26.3 12.4 31.6s26.3-.2 31.6-12.4C466.5 179 472 154.1 472 128s-5.5-51-15.3-73.6z\"]\n};\nvar faColonSign = {\n  prefix: 'fas',\n  iconName: 'colon-sign',\n  icon: [384, 512, [], \"e140\", \"M213.8 8.7c12.9 3.2 20.7 16.2 17.5 29.1l-4.6 18.5c15.4 .8 30.4 3.4 44.7 7.5l9.4-37.6C283.9 13.3 297 5.5 309.8 8.7S330.5 25 327.3 37.8L316 82.8c13.5 7.8 26 17.1 37.2 27.8 12.9 12.1 13.4 32.4 1.3 45.2s-32.4 13.4-45.2 1.3c-3.1-2.9-6.4-5.8-9.8-8.4L239.2 390c26.9-4.6 51.1-17.1 70.1-35.1 12.9-12.1 33.1-11.5 45.2 1.3s11.5 33.1-1.3 45.2c-34.3 32.3-80 52.8-130.5 54.4l-7.5 29.9c-3.2 12.9-16.2 20.7-29.1 17.5s-20.7-16.2-17.5-29.1l5.6-22.5c-15-3.2-29.4-8-42.9-14.4l-12.1 48.5c-3.2 12.9-16.2 20.7-29.1 17.5S69.5 487 72.7 474.2l16-63.9C44.3 373.6 16 318.1 16 256 16 159.2 84.8 78.4 176.3 60l8.4-33.8C187.9 13.3 201 5.5 213.8 8.7zM158 132.9c-46.1 21.8-78 68.7-78 123.1 0 30.5 10 58.6 26.9 81.3L158 132.9zM147.4 373.4c13 7.6 27.3 13.1 42.5 16.1l65.9-263.6c-12.6-3.8-25.9-5.9-39.8-5.9-1.8 0-3.5 0-5.3 .1L147.4 373.4z\"]\n};\nvar faLaptopFile = {\n  prefix: 'fas',\n  iconName: 'laptop-file',\n  icon: [576, 512, [], \"e51d\", \"M64 64C64 28.7 92.7 0 128 0L416 0c35.3 0 64 28.7 64 64l0 48-64 0 0-48-288 0 0 192 112 0 0 96-163.2 0C34.4 352 0 317.6 0 275.2 0 264.6 8.6 256 19.2 256L64 256 64 64zM529.9 257.9c9 9 14.1 21.2 14.1 33.9L544 464c0 26.5-21.5 48-48 48l-160 0c-26.5 0-48-21.5-48-48l0-256c0-26.5 21.5-48 48-48l76.1 0c12.7 0 24.9 5.1 33.9 14.1 20 20 47.9 47.9 83.9 83.9zM416 272c0 8.8 7.2 16 16 16l60.1 0-76.1-76.1 0 60.1z\"]\n};\nvar faBahai = {\n  prefix: 'fas',\n  iconName: 'bahai',\n  icon: [576, 512, [\"haykal\"], \"f666\", \"M288.4-8c13.2 0 25 8.1 29.8 20.4l31.9 82 77.2-42.3c11.6-6.3 25.8-4.9 35.9 3.5s14 22.3 9.7 34.8l-28.2 83.3 86.3 17.2c12.9 2.6 23 12.8 25.3 25.8s-3.6 26.1-14.9 32.9l-75.2 45.7 55 68.6c8.3 10.3 9.3 24.6 2.7 36s-19.5 17.6-32.6 15.6l-87-13.3-2 88c-.3 13.2-8.6 24.8-21 29.4s-26.3 1-35-9l-58-66.1-58 66.1c-8.7 9.9-22.6 13.5-35 9s-20.8-16.2-21-29.4l-2-88-87 13.3c-13 2-26-4.2-32.6-15.6s-5.5-25.7 2.7-36l55-68.6-75.2-45.7c-11.3-6.8-17.2-19.9-14.9-32.9s12.3-23.2 25.3-25.8l86.3-17.2-28.2-83.3c-4.2-12.5-.4-26.3 9.7-34.8s24.4-9.9 35.9-3.5l77.1 42.3 31.9-82C263.3 .1 275.2-8 288.4-8zm0 120.2L273 151.6c-3.3 8.6-10.2 15.3-18.9 18.5s-18.2 2.4-26.3-2l-37-20.3 13.6 40c3 8.7 2 18.3-2.6 26.3s-12.4 13.6-21.5 15.4l-41.4 8.3 36.1 21.9c7.9 4.8 13.3 12.7 14.9 21.8s-.8 18.4-6.5 25.6l-26.4 33 41.8-6.4c9.1-1.4 18.4 1.2 25.4 7.1s11.2 14.6 11.4 23.8l.9 42.2 27.9-31.8c6.1-6.9 14.8-10.9 24.1-10.9s18 4 24.1 10.9l27.9 31.8 .9-42.2c.2-9.2 4.4-17.9 11.4-23.8s16.3-8.5 25.4-7.1l41.8 6.4-26.4-33c-5.8-7.2-8.2-16.5-6.6-25.6s7-17 14.9-21.8l36.1-21.9-41.4-8.3c-9-1.8-16.9-7.4-21.5-15.4s-5.5-17.6-2.6-26.3l13.6-40-37 20.3c-8.1 4.4-17.7 5.2-26.3 2s-15.5-9.9-18.9-18.5l-15.3-39.4z\"]\n};\nvar faHaykal = faBahai;\nvar faMoneyBill1 = {\n  prefix: 'fas',\n  iconName: 'money-bill-1',\n  icon: [512, 512, [\"money-bill-alt\"], \"f3d1\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm192 80a112 112 0 1 1 0 224 112 112 0 1 1 0-224zM64 184l0-48c0-4.4 3.6-8 8-8l48 0c4.4 0 8.1 3.6 7.5 8-3.6 29-26.6 51.9-55.5 55.5-4.4 .5-8-3.1-8-7.5zm0 144c0-4.4 3.6-8.1 8-7.5 29 3.6 51.9 26.6 55.5 55.5 .5 4.4-3.1 8-7.5 8l-48 0c-4.4 0-8-3.6-8-8l0-48zM440 191.5c-29-3.6-51.9-26.6-55.5-55.5-.5-4.4 3.1-8 7.5-8l48 0c4.4 0 8 3.6 8 8l0 48c0 4.4-3.6 8.1-8 7.5zM448 328l0 48c0 4.4-3.6 8-8 8l-48 0c-4.4 0-8.1-3.6-7.5-8 3.6-29 26.6-51.9 55.5-55.5 4.4-.5 8 3.1 8 7.5zM240 188c-11 0-20 9-20 20 0 9.7 6.9 17.7 16 19.6l0 48.4-4 0c-11 0-20 9-20 20s9 20 20 20l48 0c11 0 20-9 20-20s-9-20-20-20l-4 0 0-68c0-11-9-20-20-20l-16 0z\"]\n};\nvar faMoneyBillAlt = faMoneyBill1;\nvar faCloudBolt = {\n  prefix: 'fas',\n  iconName: 'cloud-bolt',\n  icon: [512, 512, [127785, \"thunderstorm\"], \"f76c\", \"M0 224c0 53 43 96 96 96l38.6 0 124.1-111c12.2-10.9 28-17 44.4-17 44.6 0 76.5 43 63.7 85.7L354.1 320 416 320c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0 1.1-5.2 1.6-10.5 1.6-16 0-44.2-35.8-80-80-80-24.3 0-46.1 10.9-60.8 28-18.7-35.7-56.1-60-99.2-60-61.9 0-112 50.1-112 112 0 7.1 .7 14.1 1.9 20.8-38.3 12.6-65.9 48.7-65.9 91.2zM160.6 400l61.8 0-31.2 104.1c-3.6 11.9 5.3 23.9 17.8 23.9 4.6 0 9-1.7 12.4-4.7L362.5 396.9c3.5-3.1 5.5-7.6 5.5-12.4 0-9.2-7.4-16.6-16.6-16.6l-61.8 0 31.2-104.1c3.6-11.9-5.3-23.9-17.8-23.9-4.6 0-9 1.7-12.4 4.7L149.5 371.1c-3.5 3.1-5.5 7.6-5.5 12.4 0 9.2 7.4 16.6 16.6 16.6z\"]\n};\nvar faThunderstorm = faCloudBolt;\nvar faEthernet = {\n  prefix: 'fas',\n  iconName: 'ethernet',\n  icon: [512, 512, [], \"f796\", \"M0 224L0 416c0 17.7 14.3 32 32 32l32 0 0-104c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104 64 0 0-104c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104 64 0 0-104c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104 64 0 0-104c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104 32 0c17.7 0 32-14.3 32-32l0-192c0-17.7-14.3-32-32-32l-32 0 0-32c0-17.7-14.3-32-32-32l-32 0 0-32c0-17.7-14.3-32-32-32L160 64c-17.7 0-32 14.3-32 32l0 32-32 0c-17.7 0-32 14.3-32 32l0 32-32 0c-17.7 0-32 14.3-32 32z\"]\n};\nvar faHryvniaSign = {\n  prefix: 'fas',\n  iconName: 'hryvnia-sign',\n  icon: [384, 512, [8372, \"hryvnia\"], \"f6f2\", \"M336 149.4C336 77 268.5 23.5 198 40.1L93.2 64.9C76 68.9 65.4 86.2 69.4 103.4s21.3 27.9 38.5 23.8l104.8-24.7c30.3-7.1 59.3 15.8 59.3 46.9 0 17.6-9.6 33.8-25 42.3l-.7 .4-222.3 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32.4 0c5.5-13.3 8.4-27.8 8.4-42.6zM360 272L24 272c-13.3 0-24 10.7-24 24s10.7 24 24 24l33.3 0c-6.1 13.4-9.3 28.1-9.3 43.3 0 64.1 56.9 113.4 120.4 104.2l137.9-19.9c17.5-2.5 29.6-18.7 27.1-36.2s-18.8-29.6-36.2-27.1L159.2 404.2c-24.9 3.6-47.2-15.7-47.2-40.9 0-15.1 8.2-28.9 21.4-36.2l13-7.1 213.6 0c13.3 0 24-10.7 24-24s-10.7-24-24-24z\"]\n};\nvar faHryvnia = faHryvniaSign;\nvar faEyeSlash = {\n  prefix: 'fas',\n  iconName: 'eye-slash',\n  icon: [576, 512, [], \"f070\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-96.4-96.4c2.7-2.4 5.4-4.8 8-7.2 46.8-43.5 78.1-95.4 93-131.1 3.3-7.9 3.3-16.7 0-24.6-14.9-35.7-46.2-87.7-93-131.1-47.1-43.7-111.8-80.6-192.6-80.6-56.8 0-105.6 18.2-146 44.2L41-24.9zM204.5 138.7c23.5-16.8 52.4-26.7 83.5-26.7 79.5 0 144 64.5 144 144 0 31.1-9.9 59.9-26.7 83.5l-34.7-34.7c12.7-21.4 17-47.7 10.1-73.7-13.7-51.2-66.4-81.6-117.6-67.9-8.6 2.3-16.7 5.7-24 10l-34.7-34.7zM325.3 395.1c-11.9 3.2-24.4 4.9-37.3 4.9-79.5 0-144-64.5-144-144 0-12.9 1.7-25.4 4.9-37.3L69.4 139.2c-32.6 36.8-55 75.8-66.9 104.5-3.3 7.9-3.3 16.7 0 24.6 14.9 35.7 46.2 87.7 93 131.1 47.1 43.7 111.8 80.6 192.6 80.6 37.3 0 71.2-7.9 101.5-20.6l-64.2-64.2z\"]\n};\nvar faCartFlatbedSuitcase = {\n  prefix: 'fas',\n  iconName: 'cart-flatbed-suitcase',\n  icon: [576, 512, [\"luggage-cart\"], \"f59d\", \"M0 32C0 14.3 14.3 0 32 0L48 0c44.2 0 80 35.8 80 80l0 288c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-34.7 0c1.8 5 2.7 10.4 2.7 16 0 26.5-21.5 48-48 48s-48-21.5-48-48c0-5.6 1-11 2.7-16l-197.5 0c1.8 5 2.7 10.4 2.7 16 0 26.5-21.5 48-48 48s-48-21.5-48-48c0-6 1.1-11.7 3.1-17-38.1-6.2-67.1-39.2-67.1-79L64 80c0-8.8-7.2-16-16-16L32 64C14.3 64 0 49.7 0 32zM176 144c0-26.5 21.5-48 48-48l32 0 0-24c0-30.9 25.1-56 56-56l64 0c30.9 0 56 25.1 56 56l0 24 32 0c26.5 0 48 21.5 48 48l0 144c0 26.5-21.5 48-48 48l-240 0c-26.5 0-48-21.5-48-48l0-144zM384 96l0-24c0-4.4-3.6-8-8-8l-64 0c-4.4 0-8 3.6-8 8l0 24 80 0z\"]\n};\nvar faLuggageCart = faCartFlatbedSuitcase;\nvar faRadiation = {\n  prefix: 'fas',\n  iconName: 'radiation',\n  icon: [576, 512, [], \"f7b9\", \"M446.2 34.5c-14.2-10.1-33.5-4.6-42.2 10.5L331.6 170.3c31.3 15.8 52.8 48.3 52.8 85.7l144 0c17.7 0 32.2-14.4 30.1-31.9-9.1-78.1-51.4-146.1-112.3-189.6zM172.7 44.9C164 29.8 144.7 24.3 130.5 34.5 69.6 77.9 27.3 145.9 18.2 224.1 16.1 241.6 30.7 256 48.3 256l144 0c0-37.5 21.5-69.9 52.8-85.7L172.7 44.9zm-9.4 416.8c-8.7 15.1-3.8 34.5 12 41.8 34.4 15.7 72.7 24.5 113 24.5s78.6-8.8 113-24.5c15.8-7.2 20.7-26.7 12-41.8L341 336.3c-15.1 9.9-33.2 15.7-52.6 15.7s-37.5-5.8-52.6-15.7L163.3 461.7zM288.3 304a48 48 0 1 0 -.7-96 48 48 0 1 0 .7 96z\"]\n};\nvar faFileWord = {\n  prefix: 'fas',\n  iconName: 'file-word',\n  icon: [384, 512, [], \"f1c2\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM135.4 274.8c-2.9-12.9-15.7-21.1-28.6-18.2s-21.1 15.7-18.2 28.6l32 144c2.3 10.5 11.4 18.2 22.2 18.8s20.6-6.1 24-16.4l25.2-75.7 25.2 75.7c3.4 10.2 13.2 16.9 24 16.4s19.9-8.2 22.2-18.8l32-144c2.9-12.9-5.3-25.8-18.2-28.6s-25.8 5.3-28.6 18.2l-13.2 59.4-20.6-61.8c-3.3-9.8-12.4-16.4-22.8-16.4s-19.5 6.6-22.8 16.4l-20.6 61.8-13.2-59.4z\"]\n};\nvar faBedPulse = {\n  prefix: 'fas',\n  iconName: 'bed-pulse',\n  icon: [640, 512, [\"procedures\"], \"f487\", \"M531.2-22.4L572 32 616 32c13.3 0 24 10.7 24 24s-10.7 24-24 24l-56 0c-7.6 0-14.7-3.6-19.2-9.6l-24.1-32.1-47 99.9c-3.7 7.8-11.3 13.1-19.9 13.7s-16.9-3.4-21.7-10.6L387.2 80 344 80c-13.3 0-24-10.7-24-24s10.7-24 24-24l56 0c8 0 15.5 4 20 10.7l24.4 36.6 45.9-97.5c3.6-7.6 10.9-12.8 19.3-13.7s16.6 2.7 21.6 9.5zM320 160c0-17.7 14.3-32 32-32l9.5 0 26.6 39.9c14.4 21.6 39.3 33.8 65.2 31.9s48.8-17.6 59.8-41.1L527 129.2c45.9 7.2 81 46.9 81 94.8l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64-448 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32L32 64c0-17.7 14.3-32 32-32S96 46.3 96 64l0 224 224 0 0-128zM144 192a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"]\n};\nvar faProcedures = faBedPulse;\nvar faTents = {\n  prefix: 'fas',\n  iconName: 'tents',\n  icon: [576, 512, [], \"e582\", \"M539.9 352l-95.6 0-8.4-66.1c-2.9-23.2-15.9-43.9-35.4-56.8L252.2 131.5c-18-11.9-39.7-15.7-60.1-11.5 2.5-4.3 5.9-7.9 10.1-10.7L350.6 11.6c10.7-7 24.5-7 35.2 0l148.4 97.7c7.8 5.1 13 13.4 14.2 22.7l23.3 184c2.4 19.1-12.5 36-31.7 36zM4.8 476l23.3-184c1.2-9.3 6.3-17.6 14.2-22.7l148.4-97.7c10.7-7 24.5-7 35.2 0l148.4 97.7c7.8 5.1 13 13.4 14.2 22.7l23.3 184c2.4 19.1-12.5 36-31.7 36l-49.7 0c-11.2 0-21.5-5.8-27.3-15.4l-77-126.7c-1.7-2.8-4.8-4.6-8.1-4.6-5.3 0-9.5 4.3-9.5 9.5l0 105.2c0 17.7-14.3 32-32 32L36.5 512c-19.3 0-34.2-16.9-31.7-36z\"]\n};\nvar faMugHot = {\n  prefix: 'fas',\n  iconName: 'mug-hot',\n  icon: [576, 512, [9749], \"f7b6\", \"M152-16c-13.3 0-24 10.7-24 24 0 38.9 23.4 59.4 39.1 73.1l1.1 1c16.3 14.3 23.8 21.8 23.8 37.9 0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C183.5 31.7 176 24.1 176 8 176-5.3 165.3-16 152-16zM96 192c-17.7 0-32 14.3-32 32l0 192c0 53 43 96 96 96l192 0c41.8 0 77.4-26.7 90.5-64l5.5 0c70.7 0 128-57.3 128-128S518.7 192 448 192L96 192zM448 384l0-128c35.3 0 64 28.7 64 64s-28.7 64-64 64zM288 8c0-13.3-10.7-24-24-24S240-5.3 240 8c0 38.9 23.4 59.4 39.1 73.1l1.1 1c16.3 14.3 23.8 21.8 23.8 37.9 0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C295.5 31.7 288 24.1 288 8z\"]\n};\nvar faBolt = {\n  prefix: 'fas',\n  iconName: 'bolt',\n  icon: [448, 512, [9889, \"zap\"], \"f0e7\", \"M338.8-9.9c11.9 8.6 16.3 24.2 10.9 37.8L271.3 224 416 224c13.5 0 25.5 8.4 30.1 21.1s.7 26.9-9.6 35.5l-288 240c-11.3 9.4-27.4 9.9-39.3 1.3s-16.3-24.2-10.9-37.8L176.7 288 32 288c-13.5 0-25.5-8.4-30.1-21.1s-.7-26.9 9.6-35.5l288-240c11.3-9.4 27.4-9.9 39.3-1.3z\"]\n};\nvar faZap = faBolt;\nvar faJar = {\n  prefix: 'fas',\n  iconName: 'jar',\n  icon: [320, 512, [], \"e516\", \"M32-8c0-13.3 10.7-24 24-24l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L56 16C42.7 16 32 5.3 32-8zM0 128C0 92.7 28.7 64 64 64l192 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 128zm96 64c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L96 192z\"]\n};\nvar faTruckPlane = {\n  prefix: 'fas',\n  iconName: 'truck-plane',\n  icon: [640, 512, [], \"e58f\", \"M144 48c0-26.5 21.5-48 48-48s48 21.5 48 48l0 320c0 32.5 12.1 62.1 32 84.7l0 27.3c0 7.1 .9 14.1 2.7 20.7L192 480 83.9 507C73.8 509.6 64 501.9 64 491.5l0-19.8c0-4.9 2.2-9.5 6-12.5l74-59.2 0-57.6-122.1 48.8C11.4 395.4 0 387.7 0 376.4l0-44c0-8 3-15.6 8.3-21.5L144 161.6 144 48zm224 80l192 0c44.2 0 80 35.8 80 80l0 160c0 26.2-12.6 49.4-32 64l0 48c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-160 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-48c-19.4-14.6-32-37.8-32-64l0-160c0-44.2 35.8-80 80-80zm0 176l192 0 0-32c0-17.7-14.3-32-32-32l-128 0c-17.7 0-32 14.3-32 32l0 32zm0 88a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm216-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faHandHoldingHeart = {\n  prefix: 'fas',\n  iconName: 'hand-holding-heart',\n  icon: [576, 512, [], \"f4be\", \"M279.6 31C265.5 11.5 242.9 0 218.9 0 177.5 0 144 33.5 144 74.9l0 2.4c0 64.4 82 133.4 122.2 163.3 13 9.7 30.5 9.7 43.5 0 40.2-30 122.2-98.9 122.2-163.3l0-2.4c0-41.4-33.5-74.9-74.9-74.9-24 0-46.6 11.5-60.7 31L288 42.7 279.6 31zM109.3 341.5L66.7 384 32 384c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l320.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416 280 416c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-152.2 0c-33.9 0-66.5 13.5-90.5 37.5z\"]\n};\nvar faArrowRotateLeft = {\n  prefix: 'fas',\n  iconName: 'arrow-rotate-left',\n  icon: [512, 512, [8634, \"arrow-left-rotate\", \"arrow-rotate-back\", \"arrow-rotate-backward\", \"undo\"], \"f0e2\", \"M256 64c-56.8 0-107.9 24.7-143.1 64l47.1 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 192c-17.7 0-32-14.3-32-32L0 32C0 14.3 14.3 0 32 0S64 14.3 64 32l0 54.7C110.9 33.6 179.5 0 256 0 397.4 0 512 114.6 512 256S397.4 512 256 512c-87 0-163.9-43.4-210.1-109.7-10.1-14.5-6.6-34.4 7.9-44.6s34.4-6.6 44.6 7.9c34.8 49.8 92.4 82.3 157.6 82.3 106 0 192-86 192-192S362 64 256 64z\"]\n};\nvar faArrowLeftRotate = faArrowRotateLeft;\nvar faArrowRotateBack = faArrowRotateLeft;\nvar faArrowRotateBackward = faArrowRotateLeft;\nvar faUndo = faArrowRotateLeft;\nvar faFaceAngry = {\n  prefix: 'fas',\n  iconName: 'face-angry',\n  icon: [512, 512, [128544, \"angry\"], \"f556\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM256 368c24.1 0 45.4 11.8 58.5 30 7.7 10.8 22.7 13.2 33.5 5.5s13.2-22.7 5.5-33.5c-21.7-30.2-57.3-50-97.5-50s-75.7 19.8-97.5 50c-7.7 10.8-5.3 25.8 5.5 33.5s25.8 5.3 33.5-5.5c13.1-18.2 34.4-30 58.5-30zm-80-96c17.7 0 32-14.3 32-32l0-.3 9.7 3.2c10.5 3.5 21.8-2.2 25.3-12.6s-2.2-21.8-12.6-25.3l-96-32c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3l28.9 9.6c-4.1 5.4-6.6 12.1-6.6 19.4 0 17.7 14.3 32 32 32zm192-32c0-7.3-2.4-14-6.6-19.4l28.9-9.6c10.5-3.5 16.1-14.8 12.6-25.3s-14.8-16.1-25.3-12.6l-96 32c-10.5 3.5-16.1 14.8-12.6 25.3s14.8 16.1 25.3 12.6l9.7-3.2 0 .3c0 17.7 14.3 32 32 32s32-14.3 32-32z\"]\n};\nvar faAngry = faFaceAngry;\nvar faBurst = {\n  prefix: 'fas',\n  iconName: 'burst',\n  icon: [512, 512, [], \"e4dc\", \"M37.6 4.2C28-2.3 15.2-1.1 7 7S-2.3 28 4.2 37.6l112 163.3-99.6 32.3C6.7 236.4 0 245.6 0 256s6.7 19.6 16.6 22.8l103.1 33.4-52.9 100.6c-4.9 9.3-3.2 20.7 4.3 28.1s18.8 9.2 28.1 4.3l100.6-52.9 33.4 103.1c3.2 9.9 12.4 16.6 22.8 16.6s19.6-6.7 22.8-16.6l33.4-103.1 100.6 52.9c9.3 4.9 20.7 3.2 28.1-4.3s9.2-18.8 4.3-28.1l-52.9-100.6 103.1-33.4c9.9-3.2 16.6-12.4 16.6-22.8s-6.7-19.6-16.6-22.8l-106.5-34.5 25.7-70.4c3.2-8.8 1-18.6-5.6-25.2s-16.4-8.8-25.2-5.6l-70.4 25.7-34.5-106.5C275.6 6.7 266.4 0 256 0s-19.6 6.7-22.8 16.6L200.9 116.2 37.6 4.2z\"]\n};\nvar faZ = {\n  prefix: 'fas',\n  iconName: 'z',\n  icon: [384, 512, [122], \"5a\", \"M0 64C0 46.3 14.3 32 32 32l320 0c12.4 0 23.7 7.2 29 18.4s3.6 24.5-4.4 34.1L100.3 416 352 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-12.4 0-23.7-7.2-29-18.4s-3.6-24.5 4.4-34.1L283.7 96 32 96C14.3 96 0 81.7 0 64z\"]\n};\nvar faBandage = {\n  prefix: 'fas',\n  iconName: 'bandage',\n  icon: [576, 512, [129657, \"band-aid\"], \"f462\", \"M464 416l48 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-48 0 0 320zM416 96l-256 0 0 320 256 0 0-320zM64 96C28.7 96 0 124.7 0 160L0 352c0 35.3 28.7 64 64 64l48 0 0-320-48 0zM216 208a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM216 304a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faBandAid = faBandage;\nvar faPlaneCircleExclamation = {\n  prefix: 'fas',\n  iconName: 'plane-circle-exclamation',\n  icon: [640, 512, [], \"e556\", \"M232 24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 127.3 78 71.5c-69.3 29-118 97.4-118 177.2 0 49.3 18.6 94.3 49.1 128.3L288 512 179.9 539c-10.1 2.5-19.9-5.1-19.9-15.5l0-19.8c0-4.9 2.2-9.5 6-12.5l66-52.8 0-99.7-162.9 54.3C58.7 396.4 48 388.7 48 377.8l0-43.7c0-9 3.8-17.5 10.4-23.6L232 151.3 232 24zM496 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 228a20 20 0 1 0 0-40 20 20 0 1 0 0 40zm0-180c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z\"]\n};\nvar faBusSide = {\n  prefix: 'fas',\n  iconName: 'bus-side',\n  icon: [640, 512, [], \"e81d\", \"M480 0c88.4 0 160 71.6 160 160l0 224c0 35.3-28.7 64-64 64l-5.6 0c-13.2 37.3-48.6 64-90.4 64s-77.3-26.7-90.4-64l-139.1 0c-13.2 37.3-48.7 64-90.4 64s-77.2-26.7-90.4-64L64 448c-35.3 0-64-28.7-64-64L0 96C0 43 43 0 96 0L480 0zM160 368a48 48 0 1 0 0 96 48 48 0 1 0 0-96zm320 0a48 48 0 1 0 0 96 48 48 0 1 0 0-96zm0-304c-17.7 0-32 14.3-32 32l0 192c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-128c0-53-43-96-96-96zM248 224l104 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-104 0 0 160zM96 64C78.3 64 64 78.3 64 96l0 96c0 17.7 14.3 32 32 32l104 0 0-160-104 0z\"]\n};\nvar faBugs = {\n  prefix: 'fas',\n  iconName: 'bugs',\n  icon: [576, 512, [], \"e4d0\", \"M447.5 174.6c8.8-8.4 22.7-8.9 32.2-.8s11 21.9 4.1 31.9l-1.5 1.9-23 26.7c26.7 13.5 46.3 39.1 51.4 69.6l25.3 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-24 0 0 32 24 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-25.3 0c-7.6 45.4-47.1 80-94.7 80s-87-34.6-94.7-80L296 432c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-32-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l25.3 0c5.1-30.5 24.7-56.1 51.4-69.6l-22.9-26.7c-8.6-10.1-7.5-25.2 2.6-33.8s25.2-7.5 33.8 2.6l29.8 34.8 29.8-34.8 1.7-1.8zm-256-192c8.8-8.4 22.7-8.9 32.2-.8s11 21.9 4.1 31.9l-1.5 1.9-23 26.7C230 55.9 249.5 81.5 254.7 112l25.3 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-24 0 0 32 24 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-25.3 0c-7.6 45.4-47.1 80-94.7 80s-87-34.6-94.7-80L40 240c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-32-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l25.3 0C70.5 81.5 90 55.9 116.7 42.4L93.8 15.6C85.2 5.6 86.3-9.6 96.4-18.2s25.2-7.5 33.8 2.6l29.8 34.8 29.8-34.8 1.7-1.8z\"]\n};\nvar faBeerMugEmpty = {\n  prefix: 'fas',\n  iconName: 'beer-mug-empty',\n  icon: [576, 512, [\"beer\"], \"f0fc\", \"M64 80c0-26.5 21.5-48 48-48l288 0c26.5 0 48 21.5 48 48l0 16 64 0c35.3 0 64 28.7 64 64l0 108.2c0 24.2-13.7 46.4-35.4 57.2L448 371.8 448 384c0 53-43 96-96 96l-192 0c-53 0-96-43-96-96L64 80zM448 300.2l64-32 0-108.2-64 0 0 140.2zM192 152c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 208c0 13.3 10.7 24 24 24s24-10.7 24-24l0-208zm88 0c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 208c0 13.3 10.7 24 24 24s24-10.7 24-24l0-208zm88 0c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 208c0 13.3 10.7 24 24 24s24-10.7 24-24l0-208z\"]\n};\nvar faBeer = faBeerMugEmpty;\nvar faPersonCircleCheck = {\n  prefix: 'fas',\n  iconName: 'person-circle-check',\n  icon: [640, 512, [], \"e53e\", \"M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"]\n};\nvar faStapler = {\n  prefix: 'fas',\n  iconName: 'stapler',\n  icon: [640, 512, [], \"e5af\", \"M640 299.3L640 432c0 26.5-21.5 48-48 48L64 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0 0-48-352 0c-17.7 0-32-14.3-32-32l0-116.6-30.2-5.4c-19.6-3.5-33.8-20.5-33.8-40.4 0-8.9 2.9-17.5 8.2-24.6l35.6-47.5c32.8-43.8 84.4-69.6 139.1-69.6 27 0 53.6 6.3 77.8 18.4L586.9 213.5C619.5 229.7 640 263 640 299.3zM448 304l0-16-320-57.1 0 73.1 320 0z\"]\n};\nvar faHouseMedicalCircleCheck = {\n  prefix: 'fas',\n  iconName: 'house-medical-circle-check',\n  icon: [640, 512, [], \"e511\", \"M309.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S50.8 272 64 272l16 0 0 176c0 35.3 28.7 64 64 64l196 0c-21.2-29.5-34.3-65.3-35.9-104L272 408c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 20 0c34.9-48.5 91.7-80 156-80 10.7 0 21.1 .9 31.3 2.5L309.8 8.6zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"]\n};\nvar faNairaSign = {\n  prefix: 'fas',\n  iconName: 'naira-sign',\n  icon: [448, 512, [], \"e1f6\", \"M122.6 46.3c-7.8-11.7-22.4-17-35.9-12.9S64 49.9 64 64l0 192-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 144c0 17.7 14.3 32 32 32s32-14.3 32-32l0-144 89.5 0 107.8 161.8c7.8 11.7 22.4 17 35.9 12.9S384 462.1 384 448l0-144 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 192-57.5 0-139.8-209.7zM294.5 304l25.5 0 0 38.3-25.5-38.3zM185.5 256l-57.5 0 0-86.3 57.5 86.3z\"]\n};\nvar faWifi = {\n  prefix: 'fas',\n  iconName: 'wifi',\n  icon: [576, 512, [\"wifi-3\", \"wifi-strong\"], \"f1eb\", \"M288 96c-90.9 0-173.2 36-233.7 94.6-12.7 12.3-33 12-45.2-.7s-12-33 .7-45.2C81.7 74.9 179.9 32 288 32S494.3 74.9 566.3 144.7c12.7 12.3 13 32.6 .7 45.2s-32.6 13-45.2 .7C461.2 132 378.9 96 288 96zM240 432a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM168 326.2c-11.7 13.3-31.9 14.5-45.2 2.8s-14.5-31.9-2.8-45.2C161 237.4 221.1 208 288 208s127 29.4 168 75.8c11.7 13.3 10.4 33.5-2.8 45.2s-33.5 10.4-45.2-2.8C378.6 292.9 335.8 272 288 272s-90.6 20.9-120 54.2z\"]\n};\nvar faWifi3 = faWifi;\nvar faWifiStrong = faWifi;\nvar faMoneyCheckDollar = {\n  prefix: 'fas',\n  iconName: 'money-check-dollar',\n  icon: [512, 512, [\"money-check-alt\"], \"f53d\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zM296 288l128 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-128 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm-24-88c0-13.3 10.7-24 24-24l128 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-128 0c-13.3 0-24-10.7-24-24zM148 144c11 0 20 9 20 20l0 4 8 0c11 0 20 9 20 20s-9 20-20 20l-47.5 0c-6.9 0-12.5 5.6-12.5 12.5 0 6.1 4.4 11.3 10.4 12.3l41.7 7c25.3 4.2 43.9 26.1 43.9 51.8 0 26.1-19 47.7-44 51.8l0 4.7c0 11-9 20-20 20s-20-9-20-20l0-4-24 0c-11 0-20-9-20-20s9-20 20-20l55.5 0c6.9 0 12.5-5.6 12.5-12.5 0-6.1-4.4-11.3-10.4-12.3l-41.7-7C94.5 268 76 246.1 76 220.5 76 191.7 99.2 168.3 128 168l0-4c0-11 9-20 20-20z\"]\n};\nvar faMoneyCheckAlt = faMoneyCheckDollar;\nvar faEyeLowVision = {\n  prefix: 'fas',\n  iconName: 'eye-low-vision',\n  icon: [576, 512, [\"low-vision\"], \"f2a8\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-96.4-96.4c2.7-2.4 5.4-4.8 8-7.2 46.8-43.5 78.1-95.4 93-131.1 3.3-7.9 3.3-16.7 0-24.6-14.9-35.7-46.2-87.7-93-131.1-47.1-43.7-111.8-80.6-192.6-80.6-56.8 0-105.6 18.2-146 44.2L41-24.9zM204.5 138.7c23.5-16.8 52.4-26.7 83.5-26.7 79.5 0 144 64.5 144 144 0 31.1-9.9 59.9-26.7 83.5l-34.7-34.7c12.7-21.4 17-47.7 10.1-73.7-13.7-51.2-66.4-81.6-117.6-67.9-8.6 2.3-16.7 5.7-24 10l-34.7-34.7zM88 157.9c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L328.2 466c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L88 157.9zM45.7 251.3c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L181.9 455.5c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L45.7 251.3z\"]\n};\nvar faLowVision = faEyeLowVision;\nvar faCircleArrowUp = {\n  prefix: 'fas',\n  iconName: 'circle-arrow-up',\n  icon: [512, 512, [\"arrow-circle-up\"], \"f0aa\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm17-377l80 80c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-39-39 0 150.1c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-150.1-39 39c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l80-80c9.4-9.4 24.6-9.4 33.9 0z\"]\n};\nvar faArrowCircleUp = faCircleArrowUp;\nvar faCameraRetro = {\n  prefix: 'fas',\n  iconName: 'camera-retro',\n  icon: [512, 512, [128247], \"f083\", \"M0 416l0-208 136.2 0c13.5-20.2 32-36.8 53.7-48L0 160 0 125.7c0-35.3 28.7-64 64-64l.1 0C65.3 45.1 79.1 32 96 32l32 0c16.9 0 30.7 13.1 31.9 29.7l32.1 0 51.2-23.8c8.4-3.9 17.6-6 26.9-6L448 32c35.3 0 64 28.7 64 64l0 64-190 0c21.7 11.2 40.2 27.8 53.7 48l136.2 0 0 208c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64zM256 192a96.1 96.1 0 1 0 0 192.1 96.1 96.1 0 1 0 0-192.1z\"]\n};\nvar faCapsules = {\n  prefix: 'fas',\n  iconName: 'capsules',\n  icon: [576, 512, [], \"f46b\", \"M96 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 112-96 0 0-112zm-64 0l0 288c0 61.9 50.1 112 112 112s112-50.1 112-112l0-105.8 116.3 169.5c35.5 51.7 105.3 64.3 156 28.1s63-107.5 27.5-159.2L427.3 145.3c-35.5-51.7-105.3-64.3-156-28.1-5.6 4-10.7 8.4-15.3 13.1l0-18.3C256 50.1 205.9 0 144 0S32 50.1 32 112zM296.6 240.2c-16-23.3-10-55.3 11.9-71 21.2-15.1 50.5-10.3 66 12.2l67 97.6-79.9 55.9-65-94.8z\"]\n};\nvar faPoo = {\n  prefix: 'fas',\n  iconName: 'poo',\n  icon: [512, 512, [128169], \"f2fe\", \"M268.9 .9c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.4c2.8 8.2 4.3 16.9 4.3 26.1 0 44.1-35.7 79.9-79.8 80L160 128c-35.3 0-64 28.7-64 64 0 19.1 8.4 36.3 21.7 48L104 240c-39.8 0-72 32.2-72 72 0 23.2 11 43.8 28 57-34.1 5.7-60 35.3-60 71 0 39.8 32.2 72 72 72l368 0c39.8 0 72-32.2 72-72 0-35.7-25.9-65.3-60-71 17-13.2 28-33.8 28-57 0-39.8-32.2-72-72-72l-13.7 0c13.3-11.7 21.7-28.9 21.7-48 0-35.3-28.7-64-64-64l-5.5 0c3.5-10 5.5-20.8 5.5-32 0-48.6-36.2-88.8-83.1-95.1zM192 256a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm64 108.3c0 2.4-.7 4.8-2.2 6.7-8.2 10.5-39.5 45-93.8 45s-85.6-34.6-93.8-45c-1.5-1.9-2.2-4.3-2.2-6.7 0-6.8 5.5-12.3 12.3-12.3l167.4 0c6.8 0 12.3 5.5 12.3 12.3z\"]\n};\nvar faVolume = {\n  prefix: 'fas',\n  iconName: 'volume',\n  icon: [512, 512, [128265, \"volume-medium\"], \"f6a8\", \"M48 352l48 0 134.1 119.2c6.4 5.7 14.6 8.8 23.1 8.8 19.2 0 34.8-15.6 34.8-34.8l0-378.4c0-19.2-15.6-34.8-34.8-34.8-8.5 0-16.7 3.1-23.1 8.8L96 160 48 160c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48zM441.1 107c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C443.3 170.7 464 210.9 464 256s-20.7 85.3-53.2 111.8c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5c43.2-35.2 70.9-88.9 70.9-149s-27.7-113.8-70.9-149zm-60.5 74.5c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C361.1 227.6 368 241 368 256s-6.9 28.4-17.7 37.3c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5C402.1 312.9 416 286.1 416 256s-13.9-56.9-35.5-74.5z\"]\n};\nvar faVolumeMedium = faVolume;\nvar faElevator = {\n  prefix: 'fas',\n  iconName: 'elevator',\n  icon: [512, 512, [], \"e16d\", \"M292.7-4.7l64 64c6.2 6.2 16.4 6.2 22.6 0l64-64c4.6-4.6 5.9-11.5 3.5-17.4S438.5-32 432-32L304-32c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4zm-160-22.6l-64 64c-4.6 4.6-5.9 11.5-3.5 17.4S73.5 64 80 64l128 0c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-64-64c-6.2-6.2-16.4-6.2-22.6 0zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 128zm96 96a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM80 400c0-26.5 21.5-48 48-48l64 0c26.5 0 48 21.5 48 48l0 16c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-16zm192 0c0-26.5 21.5-48 48-48l64 0c26.5 0 48 21.5 48 48l0 16c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-16zm32-128a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"]\n};\nvar faTag = {\n  prefix: 'fas',\n  iconName: 'tag',\n  icon: [512, 512, [127991], \"f02b\", \"M32.5 96l0 149.5c0 17 6.7 33.3 18.7 45.3l192 192c25 25 65.5 25 90.5 0L483.2 333.3c25-25 25-65.5 0-90.5l-192-192C279.2 38.7 263 32 246 32L96.5 32c-35.3 0-64 28.7-64 64zm112 16a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faFileCircleMinus = {\n  prefix: 'fas',\n  iconName: 'file-circle-minus',\n  icon: [576, 512, [], \"e4ed\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM576 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-64 0c0 8.8-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l128 0c8.8 0 16 7.2 16 16z\"]\n};\nvar faDownLong = {\n  prefix: 'fas',\n  iconName: 'down-long',\n  icon: [320, 512, [\"long-arrow-alt-down\"], \"f309\", \"M137.4 534.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9S300.9 352 288 352l-64 0 0-336c0-26.5-21.5-48-48-48l-32 0c-26.5 0-48 21.5-48 48l0 336-64 0c-12.9 0-24.6 7.8-29.6 19.8S.2 397.5 9.4 406.6l128 128z\"]\n};\nvar faLongArrowAltDown = faDownLong;\nvar faCompactDisc = {\n  prefix: 'fas',\n  iconName: 'compact-disc',\n  icon: [512, 512, [128191, 128192, 128440], \"f51f\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm256 32a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm-96-32a96 96 0 1 0 192 0 96 96 0 1 0 -192 0zm-56-16c0-32.4 16.3-66.6 42.8-93.2S207.6 104 240 104c13.3 0 24-10.7 24-24s-10.7-24-24-24c-47.9 0-93.7 23.5-127.1 56.9S56 192.1 56 240c0 13.3 10.7 24 24 24s24-10.7 24-24z\"]\n};\nvar faSuitcaseRolling = {\n  prefix: 'fas',\n  iconName: 'suitcase-rolling',\n  icon: [384, 512, [], \"f5c1\", \"M144 24c0-4.4 3.6-8 8-8l80 0c4.4 0 8 3.6 8 8l0 72-96 0 0-72zM320 96l-32 0 0-72c0-30.9-25.1-56-56-56l-80 0C121.1-32 96-6.9 96 24l0 72-32 0C28.7 96 0 124.7 0 160L0 448c0 35.3 28.7 64 64 64 0 17.7 14.3 32 32 32s32-14.3 32-32l128 0c0 17.7 14.3 32 32 32s32-14.3 32-32c35.3 0 64-28.7 64-64l0-288c0-35.3-28.7-64-64-64zM120 208l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 128l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faBookQuran = {\n  prefix: 'fas',\n  iconName: 'book-quran',\n  icon: [448, 512, [\"quran\"], \"f687\", \"M64 512l288 0c53 0 96-43 96-96l0-320c0-53-43-96-96-96L48 0C21.5 0 0 21.5 0 48L0 336c0 20.9 13.4 38.7 32 45.3L32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0zM352 384c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0 0-64 256 0zM273.1 144.4c2.5-6.1 11.2-6.1 13.7 0l10.3 24.8 26.8 2.1c6.6 .5 9.2 8.7 4.2 13L307.8 201.9 314 228c1.5 6.4-5.5 11.5-11.1 8.1l-22.9-14-22.9 14c-5.6 3.4-12.6-1.6-11.1-8.1l6.2-26.1-20.4-17.5c-5-4.3-2.3-12.5 4.2-13l26.8-2.1 10.3-24.8zM100 192c0-68.5 55.5-124 124-124 23.8 0 46.1 6.7 65 18.4 4.8 2.9 6.9 8.8 5 14.1s-7.1 8.6-12.7 8c-3.1-.3-6.2-.5-9.4-.5-46.4 0-84 37.6-84 84s37.6 84 84 84c3.2 0 6.3-.2 9.4-.5 5.6-.6 10.8 2.7 12.7 8s-.3 11.2-5 14.1c-18.9 11.7-41.2 18.4-65 18.4-68.5 0-124-55.5-124-124z\"]\n};\nvar faQuran = faBookQuran;\nvar faPhoneSlash = {\n  prefix: 'fas',\n  iconName: 'phone-slash',\n  icon: [576, 512, [], \"f3dd\", \"M535-24.9c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L41 537.1c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L141.5 368.6C89.2 310.5 51.6 238.8 34.8 159.4 18.7 83.1 73.9 20.6 138.5 2.9l5.5-1.5c19.7-5.4 40.3 4.7 48.1 23.5l40.5 97.3c6.9 16.5 2.1 35.6-11.8 47l-44.1 36.1c12.9 28.5 29.6 54.8 49.5 78.5L535-24.9zm-150.4 534c-63-13.4-121.3-39.8-171.7-76.3L297.8 348c12.2 8.2 25 15.6 38.3 22.2L374.7 323c11.3-13.9 30.4-18.6 47-11.8L519 351.8c18.8 7.8 28.9 28.4 23.5 48.1l-1.5 5.5c-17.6 64.6-80.2 119.8-156.4 103.7z\"]\n};\nvar faRoadCircleCheck = {\n  prefix: 'fas',\n  iconName: 'road-circle-check',\n  icon: [640, 512, [], \"e564\", \"M288 32l-76.3 0c-29.4 0-55.1 20.1-62.1 48.6L65.4 420.5C57.9 450.7 80.8 480 112 480l209.4 0c-11.2-24.4-17.4-51.4-17.4-80 0-28.6 6.2-55.7 17.4-80-.5 0-1 0-1.5 0-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 49c35.2-39.9 86.7-65 144-65 9 0 17.8 .6 26.5 1.8l-32-129.2C483.4 52.1 457.8 32 428.3 32l-76.4 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"]\n};\nvar faShopLock = {\n  prefix: 'fas',\n  iconName: 'shop-lock',\n  icon: [640, 512, [], \"e4a5\", \"M21.5 181.1L78.3 67.4C89.2 45.7 111.3 32 135.6 32l304.9 0c24.2 0 46.4 13.7 57.2 35.4l55.6 111.1c-8.2-1.6-16.6-2.5-25.2-2.5-53.7 0-99.7 33.1-118.7 80l-57.3 0 0 176c0 26.5-21.5 48-48 48l-192 0c-26.5 0-48-21.5-48-48l0-176.1c-26.8-1.9-48-24.3-48-51.6 0-8 1.9-16 5.5-23.2zM128 256l0 112c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16l0-112-160 0zm432 48.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM416 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"]\n};\nvar faImagePortrait = {\n  prefix: 'fas',\n  iconName: 'image-portrait',\n  icon: [384, 512, [\"portrait\"], \"f3e0\", \"M0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM80 368c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-64 0c-44.2 0-80 35.8-80 80zM192 248a56 56 0 1 0 0-112 56 56 0 1 0 0 112z\"]\n};\nvar faPortrait = faImagePortrait;\nvar faBridgeLock = {\n  prefix: 'fas',\n  iconName: 'bridge-lock',\n  icon: [576, 512, [], \"e4cc\", \"M0 64C0 46.3 14.3 32 32 32l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0 0 32.2c13.8 .6 27.2 2.8 40 6.4l0 50.7c-14.8-6-31-9.3-48-9.3-70.7 0-128 57.3-128 128l0 24.4c-.4 .3-.7 .6-1.1 1-17.3-25-46.2-41.3-78.9-41.3-53 0-96 43-96 96l0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-94c0-38.8-26.4-72.6-64-82l0-112 40 0 0-64-8 0C14.3 96 0 81.7 0 64zm424 68.6l0-36.6-80 0 0 64 18.8 0c18.2-12.8 38.9-22.2 61.2-27.4zM216 96l0 64 80 0 0-64-80 0zm-48 0l-80 0 0 64 80 0 0-64zM496 304.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM352 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"]\n};\nvar faHammer = {\n  prefix: 'fas',\n  iconName: 'hammer',\n  icon: [640, 512, [128296], \"f6e3\", \"M246.9 18.3L271 3.8c21.6-13 46.3-19.8 71.5-19.8 36.8 0 72.2 14.6 98.2 40.7l63.9 63.9c15 15 23.4 35.4 23.4 56.6l0 30.9 19.7 19.7 0 0c15.6-15.6 40.9-15.6 56.6 0s15.6 40.9 0 56.6l-64 64c-15.6 15.6-40.9 15.6-56.6 0s-15.6-40.9 0-56.6L464 240 433.1 240c-21.2 0-41.6-8.4-56.6-23.4l-49.1-49.1c-15-15-23.4-35.4-23.4-56.6l0-12.7c0-11.2-5.9-21.7-15.5-27.4l-41.6-25c-10.4-6.2-10.4-21.2 0-27.4zM50.7 402.7l222.1-222.1 90.5 90.5-222.1 222.1c-25 25-65.5 25-90.5 0s-25-65.5 0-90.5z\"]\n};\nvar faArrowUp19 = {\n  prefix: 'fas',\n  iconName: 'arrow-up-1-9',\n  icon: [512, 512, [\"sort-numeric-up\"], \"f163\", \"M150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96zM418.7 38c-8.3-6-19.1-7.7-28.8-4.4l-48 16c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l5.9-2 0 51.6-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-96c0-10.3-4.9-19.9-13.3-26zM365.1 430.6c-9.6 14.8-5.4 34.6 9.4 44.3s34.6 5.4 44.3-9.4l42.1-64.9c12.4-19.2 19.1-41.6 19.1-64.5 0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.1 23.9 66.7 56.8 76.6l-11.7 18zM376 336a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faSortNumericUp = faArrowUp19;\nvar faChessKnight = {\n  prefix: 'fas',\n  iconName: 'chess-knight',\n  icon: [384, 512, [9822], \"f441\", \"M192-32c106 0 192 86 192 192l0 133.5c0 17-6.8 33.2-18.7 45.2L320 384 370.8 434.7c8.5 8.5 13.2 20 13.2 32 0 25-20.3 45.2-45.2 45.3L45.3 512c-25 0-45.2-20.3-45.2-45.3 0-12 4.8-23.5 13.2-32L64 384 64 349.4c0-18.7 8.2-36.4 22.3-48.6l89.7-76.8-48 0-12.1 12.1c-12.7 12.7-30 19.9-48 19.9-37.5 0-67.9-30.4-67.9-67.9l0-8.7c0-22.8 8.2-44.9 23.1-62.3L96 32 96 0c0-17.7 14.3-32 32-32l64 0zM160 72a24 24 0 1 0 0 48 24 24 0 1 0 0-48z\"]\n};\nvar faHouseFloodWaterCircleArrowRight = {\n  prefix: 'fas',\n  iconName: 'house-flood-water-circle-arrow-right',\n  icon: [640, 512, [], \"e50f\", \"M288.5 112a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zM141.2 44.7c6.2-6.2 16.4-6.2 22.6 0l56 56c6.2 6.2 6.2 16.4 0 22.6l-56 56c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l28.7-28.7-89.4 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l89.4 0-28.7-28.7c-6.2-6.2-6.2-16.4 0-22.6zM336.5 112c0 71.1-38.6 133.1-96 166.3l0 12.8c22.1 4.5 43.4 13.9 62.4 28.2 22.1 16.6 29.1 16.6 51.2 0 27.5-20.7 59.9-31.2 92.4-31.4 33.1-.2 66.3 10.2 94.4 31.4 6.9 5.2 12.8 9 18 11.7 .6 .3 1.2 .6 1.8 1 4.2 2.3 8.5 4.6 12.6 1.5 6-4.5 12.6-8 19.3-10.4l0-115.2 4.5 0c15.2 0 27.5-12.3 27.5-27.5 0-7.9-3.4-15.5-9.4-20.7L444.5 10.5C436.8 3.7 426.8 0 416.5 0s-20.3 3.7-28 10.5L329.9 61.8c4.3 16 6.6 32.8 6.6 50.2zm32 88c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-48zM475.1 412.1c19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3S290 391.8 266 373.7c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7s-5.9 25.6 4.7 33.6c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0zm-71.2 96c21.3-16.1 49.9-16.1 71.2 0 19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3S290 487.8 266 469.7c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7s-5.9 25.6 4.7 33.6c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9z\"]\n};\nvar faArrowUpRightFromSquare = {\n  prefix: 'fas',\n  iconName: 'arrow-up-right-from-square',\n  icon: [512, 512, [\"external-link\"], \"f08e\", \"M320 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l82.7 0-201.4 201.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L448 109.3 448 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-17.7-14.3-32-32-32L320 0zM80 96C35.8 96 0 131.8 0 176L0 432c0 44.2 35.8 80 80 80l256 0c44.2 0 80-35.8 80-80l0-80c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 80c0 8.8-7.2 16-16 16L80 448c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l80 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 96z\"]\n};\nvar faExternalLink = faArrowUpRightFromSquare;\nvar faArrowDownUpAcrossLine = {\n  prefix: 'fas',\n  iconName: 'arrow-down-up-across-line',\n  icon: [512, 512, [], \"e4af\", \"M265.4 105.4l96-96c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-41.4-41.4 0 114.7 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-320 0 0 114.7 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 402.7 96 288 32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l320 0 0-114.7-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3zM416 336l0 144c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-144 64 0zM96 176L96 32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 144-64 0z\"]\n};\nvar faFaceGrinBeam = {\n  prefix: 'fas',\n  iconName: 'face-grin-beam',\n  icon: [512, 512, [128516, \"grin-beam\"], \"f582\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM386.7 308.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 388.2 105.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM176 180c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"]\n};\nvar faGrinBeam = faFaceGrinBeam;\nvar faRectangleAd = {\n  prefix: 'fas',\n  iconName: 'rectangle-ad',\n  icon: [512, 512, [\"ad\"], \"f641\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zM416 184l0 144c0 13.3-10.7 24-24 24-7.1 0-13.5-3.1-17.9-8-10.2 5.1-21.8 8-34.1 8-42 0-76-34-76-76s34-76 76-76c9.9 0 19.3 1.9 28 5.3l0-21.3c0-13.3 10.7-24 24-24s24 10.7 24 24zm-48 92a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zM160 208c-8.8 0-16 7.2-16 16l0 32 48 0 0-32c0-8.8-7.2-16-16-16l-16 0zm32 96l-48 0 0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-104c0-35.3 28.7-64 64-64l16 0c35.3 0 64 28.7 64 64l0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-24z\"]\n};\nvar faAd = faRectangleAd;\nvar faBookTanakh = {\n  prefix: 'fas',\n  iconName: 'book-tanakh',\n  icon: [448, 512, [\"tanakh\"], \"f827\", \"M352 512L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-66.7C13.4 374.7 0 356.9 0 336L0 48C0 21.5 21.5 0 48 0L352 0c53 0 96 43 96 96l0 320c0 53-43 96-96 96zm32-96c0-17.7-14.3-32-32-32l-256 0 0 64 256 0c17.7 0 32-14.3 32-32zM113.9 229c-1.2 2-1.9 4.2-1.9 6.6 0 6.9 5.6 12.5 12.5 12.5l56.9 0 30.5 49.2c2.6 4.2 7.2 6.8 12.2 6.8s9.6-2.6 12.2-6.8l30.5-49.2 56.9 0c6.9 0 12.5-5.6 12.5-12.5 0-2.3-.6-4.6-1.9-6.6l-27.8-45 27.8-45c1.2-2 1.9-4.2 1.9-6.6 0-6.9-5.6-12.5-12.5-12.5l-56.9 0-30.5-49.2C233.6 66.6 229 64 224 64s-9.6 2.6-12.2 6.8l-30.5 49.2-56.9 0c-6.9 0-12.5 5.6-12.5 12.5 0 2.3 .6 4.6 1.9 6.6l27.8 45-27.8 45z\"]\n};\nvar faTanakh = faBookTanakh;\nvar faHotTubPerson = {\n  prefix: 'fas',\n  iconName: 'hot-tub-person',\n  icon: [448, 512, [\"hot-tub\"], \"f593\", \"M240 40c0 13.6 5.8 26.5 15.8 35.6l26.5 23.8c24 21.6 37.7 52.3 37.7 84.6 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-18.7-7.9-36.4-21.8-48.9l-26.5-23.8C203.5 93.1 192 67.2 192 40 192 26.7 202.7 16 216 16s24 10.7 24 24zM0 336l0-80c0-35.3 28.7-64 64-64l19.7 0c8.1 0 16.2 1.6 23.8 4.6l137.1 54.8c7.6 3 15.6 4.6 23.8 4.6L384 256c35.3 0 64 28.7 64 64l0 128c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 336zm96-16c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80c0-13.3-10.7-24-24-24zm152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80zm104-24c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80c0-13.3-10.7-24-24-24zM328 16c13.3 0 24 10.7 24 24 0 13.6 5.8 26.5 15.8 35.6l26.5 23.8c24 21.6 37.7 52.3 37.7 84.6 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-18.7-7.9-36.4-21.8-48.9l-26.5-23.8C315.5 93.1 304 67.2 304 40 304 26.7 314.7 16 328 16zM64 40a56 56 0 1 1 0 112 56 56 0 1 1 0-112z\"]\n};\nvar faHotTub = faHotTubPerson;\nvar faFileHalfDashed = {\n  prefix: 'fas',\n  iconName: 'file-half-dashed',\n  icon: [384, 512, [], \"e698\", \"M64 512c-29.8 0-54.8-20.4-61.9-48l61.9 0 0 48zm104 0l-56 0 0-48 56 0 0 48zm104 0l-56 0 0-48 56 0 0 48zm109.9-48c-7.1 27.6-32.1 48-61.9 48l0-48 61.9 0zM48 416l-48 0 0-48 48 0 0 48zm336 0l-48 0 0-48 48 0 0 48zM213.5 0c17 0 33.2 6.8 45.2 18.8L365.3 125.2c12 12 18.7 28.3 18.7 45.2L384 320 0 320 0 64C0 28.7 28.7 0 64 0L213.5 0zM208 152c0 13.3 10.7 24 24 24l93.5 0-117.5-117.5 0 93.5z\"]\n};\nvar faOutdent = {\n  prefix: 'fas',\n  iconName: 'outdent',\n  icon: [448, 512, [\"dedent\"], \"f03b\", \"M.4 64c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-384 0C14.8 96 .4 81.7 .4 64zm192 128c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 96l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zM.4 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-384 0c-17.7 0-32-14.3-32-32zM.7 268.6c-8.2-6.4-8.2-18.9 0-25.3l101.9-79.3c10.5-8.2 25.8-.7 25.8 12.6l0 158.6c0 13.3-15.3 20.8-25.8 12.6L.7 268.6z\"]\n};\nvar faDedent = faOutdent;\nvar faHandPeace = {\n  prefix: 'fas',\n  iconName: 'hand-peace',\n  icon: [448, 512, [9996], \"f25b\", \"M192 0c17.7 0 32 14.3 32 32l0 208-64 0 0-208c0-17.7 14.3-32 32-32zm96 160c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm64 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zM61.3 51.2L143.9 240 74.1 240 2.7 76.8C-4.4 60.6 3 41.8 19.2 34.7S54.2 35 61.3 51.2zm27 221.3l-.2-.5 95.9 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72l0-.6c9.4 5.4 20.3 8.6 32 8.6 13.2 0 25.4-4 35.6-10.8 8.7 24.9 32.5 42.8 60.4 42.8 11.7 0 22.6-3.1 32-8.6l0 8.6c0 88.4-71.6 160-160 160l-61.7 0c-42.4 0-83.1-16.9-113.1-46.9L69.5 453.5C45.5 429.5 32 396.9 32 363l0-27c0-32.7 24.6-59.7 56.3-63.5z\"]\n};\nvar faHeadSideVirus = {\n  prefix: 'fas',\n  iconName: 'head-side-virus',\n  icon: [512, 512, [], \"e064\", \"M329.7 448c-5.1 0-9.7 3.7-9.7 8.8l0 7.2c0 26.5-21.5 48-48 48l-160 0c-26.5 0-48-21.5-48-48l0-63.6c0-12.6-5.1-24.5-13.1-34.2-31.8-38.7-50.9-88.2-50.9-142.2 0-123.7 100.3-224 224-224 112.7 0 206 83.3 221.7 191.7 .4 3 1.7 5.9 3.6 8.3l35.8 42.9c7 8.4 10.9 19.1 10.9 30.1 0 25.9-21 47-47 47l-1 0c-8.8 0-16 7.2-16 16l0 48c0 35.3-28.7 64-64 64l-38.3 0zM224 64c-13.3 0-24 10.7-24 24 0 22.9-27.7 34.4-43.9 18.2-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9c16.2 16.2 4.7 43.9-18.2 43.9-13.3 0-24 10.7-24 24s10.7 24 24 24c22.9 0 34.4 27.7 18.2 43.9-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0c16.2-16.2 43.9-4.7 43.9 18.2 0 13.3 10.7 24 24 24s24-10.7 24-24c0-22.9 27.7-34.4 43.9-18.2 9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9c-16.2-16.2-4.7-43.9 18.2-43.9 13.3 0 24-10.7 24-24s-10.7-24-24-24c-22.9 0-34.4-27.7-18.2-43.9 9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0c-16.2 16.2-43.9 4.7-43.9-18.2 0-13.3-10.7-24-24-24zm-32 88a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40 88a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faCompass = {\n  prefix: 'fas',\n  iconName: 'compass',\n  icon: [512, 512, [129517], \"f14e\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm50.7-186.9L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faPenNib = {\n  prefix: 'fas',\n  iconName: 'pen-nib',\n  icon: [512, 512, [10001], \"f5ad\", \"M368.5 18.3l-50.1 50.1 125.3 125.3 50.1-50.1c21.9-21.9 21.9-57.3 0-79.2L447.7 18.3c-21.9-21.9-57.3-21.9-79.2 0zM279.3 97.2l-.5 .1-144.1 43.2c-19.9 6-35.7 21.2-42.3 41L3.8 445.8c-2.9 8.7-1.9 18.2 2.5 26L161.7 316.4c-1.1-4-1.6-8.1-1.6-12.4 0-26.5 21.5-48 48-48s48 21.5 48 48-21.5 48-48 48c-4.3 0-8.5-.6-12.4-1.6L40.3 505.7c7.8 4.4 17.2 5.4 26 2.5l264.3-88.6c19.7-6.6 35-22.4 41-42.3l43.2-144.1 .1-.5-135.5-135.5z\"]\n};\nvar faTentArrowsDown = {\n  prefix: 'fas',\n  iconName: 'tent-arrows-down',\n  icon: [512, 512, [], \"e581\", \"M185.5 121c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-31 31 0-102.1c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 102.1-31-31c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c9.4 9.4 24.6 9.4 33.9 0l72-72zm248 72l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-31 31 0-102.1c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 102.1-31-31c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c9.4 9.4 24.6 9.4 33.9 0zM60.3 292.6L37.1 476c-2.4 19.1 12.5 36 31.7 36l154.5 0c17.7 0 32-14.3 32-32l0-117.4c0-5.9 4.7-10.6 10.6-10.6 4 0 7.7 2.3 9.5 5.9l68.2 136.5c5.4 10.8 16.5 17.7 28.6 17.7l71.9 0c19.3 0 34.2-16.9 31.7-36L452.7 292.7c-1.2-9.7-6.9-18.4-15.3-23.4L271.9 169.9c-10.2-6.1-22.9-6.1-33.1 .1L75.4 269.3c-8.3 5.1-13.9 13.7-15.1 23.3z\"]\n};\nvar faForwardFast = {\n  prefix: 'fas',\n  iconName: 'forward-fast',\n  icon: [512, 512, [9197, \"fast-forward\"], \"f050\", \"M19.8 477.6c12 5 25.7 2.2 34.9-6.9L224 301.3 224 448c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9L448 301.3 448 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 146.7-169.4-169.4c-9.2-9.2-22.9-11.9-34.9-6.9S224 51.1 224 64L224 210.7 54.6 41.4c-9.2-9.2-22.9-11.9-34.9-6.9S0 51.1 0 64L0 448c0 12.9 7.8 24.6 19.8 29.6z\"]\n};\nvar faFastForward = faForwardFast;\nvar faCrop = {\n  prefix: 'fas',\n  iconName: 'crop',\n  icon: [512, 512, [], \"f125\", \"M448 109.3l54.6-54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L402.7 64 176 64 176 128 338.7 128 128 338.7 128 32c0-17.7-14.3-32-32-32S64 14.3 64 32l0 32-32 0C14.3 64 0 78.3 0 96s14.3 32 32 32l32 0 0 256c0 35.3 28.7 64 64 64l208 0 0-64-162.7 0 210.7-210.7 0 306.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-274.7z\"]\n};\nvar faWhiskeyGlass = {\n  prefix: 'fas',\n  iconName: 'whiskey-glass',\n  icon: [448, 512, [129347, \"glass-whiskey\"], \"f7a0\", \"M32 32C14.3 32 0 46.3 0 64L0 352c0 70.7 57.3 128 128 128l192 0c70.7 0 128-57.3 128-128l0-288c0-17.7-14.3-32-32-32L32 32zM64 256l0-160 320 0 0 160-320 0z\"]\n};\nvar faGlassWhiskey = faWhiskeyGlass;\nvar faSquare = {\n  prefix: 'fas',\n  iconName: 'square',\n  icon: [448, 512, [9632, 9723, 9724, 61590], \"f0c8\", \"M64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32z\"]\n};\nvar faFaceGrin = {\n  prefix: 'fas',\n  iconName: 'face-grin',\n  icon: [512, 512, [128512, \"grin\"], \"f580\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM386.7 308.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 388.2 105.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faGrin = faFaceGrin;\nvar faFileContract = {\n  prefix: 'fas',\n  iconName: 'file-contract',\n  icon: [384, 512, [], \"f56c\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM88 64C74.7 64 64 74.7 64 88s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 64zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0zm70.3 160c-11.3 0-21.9 5.1-28.9 13.9L69.3 409c-8.3 10.3-6.6 25.5 3.7 33.7s25.5 6.6 33.7-3.8l47.1-58.8 15.2 50.7c3 10.2 12.4 17.1 23 17.1l104 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-86.1 0-16.1-53.6c-4.7-15.7-19.1-26.4-35.5-26.4z\"]\n};\nvar faAngleUp = {\n  prefix: 'fas',\n  iconName: 'angle-up',\n  icon: [384, 512, [8963], \"f106\", \"M169.4 137.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L192 205.3 54.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160z\"]\n};\nvar faFaceSmile = {\n  prefix: 'fas',\n  iconName: 'face-smile',\n  icon: [512, 512, [128578, \"smile\"], \"f118\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM165.4 321.9c20.4 28 53.4 46.1 90.6 46.1s70.2-18.1 90.6-46.1c7.8-10.7 22.8-13.1 33.5-5.3s13.1 22.8 5.3 33.5C356.3 390 309.2 416 256 416s-100.3-26-129.4-65.9c-7.8-10.7-5.4-25.7 5.3-33.5s25.7-5.4 33.5 5.3zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faSmile = faFaceSmile;\nvar faPersonDressBurst = {\n  prefix: 'fas',\n  iconName: 'person-dress-burst',\n  icon: [640, 512, [], \"e544\", \"M208 40.1c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24zM8 144.1c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zm92.5 141.4l33.9-33.9c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L66.6 251.6c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0zM66.6 2.7c-9.4 9.4-9.4 24.6 0 33.9l33.9 33.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L100.5 2.7C91.1-6.7 76-6.7 66.6 2.7zM352 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM246.2 384l25.8 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 32 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 25.8 0c10.9 0 18.6-10.7 15.2-21.1l-43-129 48.3 65.1c10.5 14.2 30.6 17.2 44.8 6.6s17.2-30.6 6.6-44.8l-70.5-95C434 132 394.3 112 352 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6l48.3-65.1-43 129c-3.5 10.4 4.3 21.1 15.2 21.1z\"]\n};\nvar faDivide = {\n  prefix: 'fas',\n  iconName: 'divide',\n  icon: [448, 512, [10135, 247], \"f529\", \"M224 48a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32zM168 408a56 56 0 1 1 112 0 56 56 0 1 1 -112 0z\"]\n};\nvar faCodeFork = {\n  prefix: 'fas',\n  iconName: 'code-fork',\n  icon: [448, 512, [], \"e13b\", \"M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3l0 22.7c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-22.7c-28.3-12.3-48-40.5-48-73.3 0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 22.7c0 61.9-50.1 112-112 112l-32 0 0 70.7c28.3 12.3 48 40.5 48 73.3 0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3l0-70.7-32 0C98.1 288 48 237.9 48 176l0-22.7C19.7 141 0 112.8 0 80 0 35.8 35.8 0 80 0s80 35.8 80 80zm208 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM248 432a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faHouseFlag = {\n  prefix: 'fas',\n  iconName: 'house-flag',\n  icon: [640, 512, [], \"e50d\", \"M472 0c17.7 0 32 14.3 32 32l96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-96 0 0 288c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-448c0-17.7 14.3-32 32-32zM283.5 59.1l100.5 96.9 0 356-256 0c-35.3 0-64-28.7-64-64l0-144-19.9 0c-15.5 0-28.1-12.6-28.1-28.1 0-7.6 3.1-14.9 8.6-20.2L228.5 59.1C235.9 52 245.7 48 256 48s20.1 4 27.5 11.1zM232 256c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0z\"]\n};\nvar faBuildingColumns = {\n  prefix: 'fas',\n  iconName: 'building-columns',\n  icon: [512, 512, [\"bank\", \"institution\", \"museum\", \"university\"], \"f19c\", \"M271.9 20.2c-9.8-5.6-21.9-5.6-31.8 0l-224 128c-12.6 7.2-18.8 22-15.1 36S17.5 208 32 208l32 0 0 208 0 0-51.2 38.4C4.7 460.4 0 469.9 0 480 0 497.7 14.3 512 32 512l448 0c17.7 0 32-14.3 32-32 0-10.1-4.7-19.6-12.8-25.6l-51.2-38.4 0-208 32 0c14.5 0 27.2-9.8 30.9-23.8s-2.5-28.8-15.1-36l-224-128zM400 208l0 208-64 0 0-208 64 0zm-112 0l0 208-64 0 0-208 64 0zm-112 0l0 208-64 0 0-208 64 0zM256 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faBank = faBuildingColumns;\nvar faInstitution = faBuildingColumns;\nvar faMuseum = faBuildingColumns;\nvar faUniversity = faBuildingColumns;\nvar faRug = {\n  prefix: 'fas',\n  iconName: 'rug',\n  icon: [576, 512, [], \"e569\", \"M24 64l56 0 0 384-56 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-40-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-32-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-32-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-40-8 0C10.7 112 0 101.3 0 88S10.7 64 24 64zm104 0l320 0 0 384-320 0 0-384zM576 88c0 13.3-10.7 24-24 24l-8 0 0 40 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 32 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 32 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 40 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-56 0 0-384 56 0c13.3 0 24 10.7 24 24z\"]\n};\nvar faCodeMerge = {\n  prefix: 'fas',\n  iconName: 'code-merge',\n  icon: [448, 512, [], \"f387\", \"M80 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm32.4 97.2c28-12.4 47.6-40.5 47.6-73.2 0-44.2-35.8-80-80-80S0 35.8 0 80c0 32.8 19.7 61 48 73.3l0 205.3C19.7 371 0 399.2 0 432 0 476.2 35.8 512 80 512s80-35.8 80-80c0-32.8-19.7-61-48-73.3l0-86.6c26.7 20.1 60 32 96 32l86.7 0c12.3 28.3 40.5 48 73.3 48 44.2 0 80-35.8 80-80s-35.8-80-80-80c-32.8 0-61 19.7-73.3 48L208 240c-49.9 0-91-38.1-95.6-86.8zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM344 272a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faHouseTsunami = {\n  prefix: 'fas',\n  iconName: 'house-tsunami',\n  icon: [640, 512, [], \"e515\", \"M288 16C155.5 16 48 123.5 48 256S155.5 496 288 496c7.4 0 19.7-2.3 33.7-7.3 13.8-4.9 27.1-11.7 36.7-18.9 38.4-29 90.5-29 129 0 15.4 11.6 35.3 21.1 55 24.4 19.5 3.3 37 .4 51.1-10.2 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-27.3 20.5-59.2 24-87.9 19.2-28.5-4.8-55.4-18-75.9-33.4-21.3-16.1-49.9-16.1-71.2 0-14.5 10.9-32.4 19.7-49.5 25.8-16.8 6-34.9 10.1-49.9 10.1l-.1 0C128.9 543.9 0 415 0 256 0 96.9 128.9-32 288-32 301.3-32 312-21.3 312-8s-10.7 24-24 24zm44.8 166.4l96-72c11.4-8.5 27.1-8.5 38.5 0l95.5 72c8 6 12.7 15.5 12.7 25.5l.3 121.5c-2.2 1.3-4.3 2.6-6.4 4.2-4.3 3.1-8.7 .8-13.2-1.5l-1.2-.6-.7-.3c-5.4-2.7-11.7-6.6-18.9-11.7-29.5-21.1-64.3-31.6-99.1-31.4-34.1 .2-68.1 10.7-97 31.4-7.8 5.6-13.8 9.3-19.3 11.2L320 208c0-10.1 4.7-19.6 12.8-25.6zm54.6 229.7c-14.5 10.9-32.4 19.7-49.5 25.8-16.8 6-34.9 10.1-49.9 10.1-106 0-192-86-192-192S182 64 288 64c13.3 0 24 10.7 24 24s-10.7 24-24 24c-79.5 0-144 64.5-144 144s64.5 144 144 144c7.4 0 19.7-2.3 33.7-7.3 13.8-4.9 27.1-11.7 36.7-18.9 38.4-29 90.5-29 129 0 15.4 11.6 35.3 21.1 55 24.4 19.5 3.3 37 .4 51.1-10.2 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-27.3 20.5-59.2 24-87.9 19.2-28.5-4.8-55.4-18-75.9-33.4-21.3-16.1-49.9-16.1-71.2 0z\"]\n};\nvar faMagnifyingGlassChart = {\n  prefix: 'fas',\n  iconName: 'magnifying-glass-chart',\n  icon: [512, 512, [], \"e522\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zm-312 8l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80-96l0 160c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80 64l0 96c0 13.3 10.7 24 24 24s24-10.7 24-24l0-96c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"]\n};\nvar faUmbrella = {\n  prefix: 'fas',\n  iconName: 'umbrella',\n  icon: [512, 512, [], \"f0e9\", \"M256-32c17.7 0 32 14.3 32 32l0 2c126.3 15.7 224 123.5 224 254 0 3.8-.1 7.5-.2 11.3-.3 6.9-5 12.8-11.7 14.7s-13.8-.7-17.6-6.5c-14.4-21.4-38.8-35.5-66.5-35.5-29.3 0-54.9 15.7-68.9 39.3-2.7 4.6-7.6 7.6-13 7.8s-10.5-2.2-13.7-6.5c-14.6-19.8-38-32.6-64.5-32.6s-49.9 12.8-64.5 32.6c-3.2 4.3-8.3 6.8-13.7 6.5s-10.2-3.2-13-7.8c-14-23.6-39.6-39.3-68.9-39.3-27.7 0-52.1 14.1-66.5 35.5-3.9 5.7-11 8.4-17.6 6.5S.5 274.2 .2 267.3C.1 263.5 0 259.8 0 256 0 125.5 97.7 17.7 224 2l0-2c0-17.7 14.3-32 32-32zm32 360l0 102.6c0 45-36.5 81.4-81.4 81.4-30.8 0-59-17.4-72.8-45l-2.3-4.7c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l2.3 4.7c3 5.9 9 9.6 15.6 9.6 9.6 0 17.4-7.8 17.4-17.4L224 328c0-17.7 14.3-32 32-32s32 14.3 32 32z\"]\n};\nvar faHillRockslide = {\n  prefix: 'fas',\n  iconName: 'hill-rockslide',\n  icon: [576, 512, [], \"e508\", \"M252.4 103.8l27 48c2.8 5 8.2 8.2 13.9 8.2l53.3 0c5.8 0 11.1-3.1 13.9-8.2l27-48c2.7-4.9 2.7-10.8 0-15.7l-27-48c-2.8-5-8.2-8.2-13.9-8.2l-53.3 0c-5.8 0-11.1 3.1-13.9 8.2l-27 48c-2.7 4.9-2.7 10.8 0 15.7zM68.3 87C43.1 61.8 0 79.7 0 115.3L0 432c0 44.2 35.8 80 80 80l316.7 0c35.6 0 53.5-43.1 28.3-68.3L68.3 87zM504.2 403.6c4.9 2.7 10.8 2.7 15.7 0l48-27c5-2.8 8.2-8.2 8.2-13.9l0-53.3c0-5.8-3.1-11.1-8.2-13.9l-48-27c-4.9-2.7-10.8-2.7-15.7 0l-48 27c-5 2.8-8.2 8.2-8.2 13.9l0 53.3c0 5.8 3.1 11.1 8.2 13.9l48 27zM192 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM384 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faUserSecret = {\n  prefix: 'fas',\n  iconName: 'user-secret',\n  icon: [448, 512, [128373], \"f21b\", \"M171-16c-36.4 0-57.8 58.3-68.3 112L72 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 32c0 17 3.3 33.2 9.3 48l-9.3 0 0 0-20.5 0c-15.2 0-27.5 12.3-27.5 27.5 0 3 .5 5.9 1.4 8.7l28.9 86.6C40.2 379.6 16 428.1 16 482.3 16 498.7 29.3 512 45.7 512l356.6 0c16.4 0 29.7-13.3 29.7-29.7 0-54.2-24.2-102.7-62.3-135.4l28.9-86.6c.9-2.8 1.4-5.7 1.4-8.7 0-15.2-12.3-27.5-27.5-27.5l-20.5 0 0 0-9.3 0c6-14.8 9.3-31 9.3-48l0-32 24 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-30.7 0c-10.4-53.7-31.9-112-68.3-112-9.6 0-19 3.9-27.5 8.2-8.2 4.1-18.4 7.8-25.5 7.8s-17.3-3.7-25.5-7.8C190-12.1 180.6-16 171-16zm93.7 484.4l-24.8-70.9 27.9-32.5c2.7-3.2 4.2-7.2 4.2-11.4 0-9.7-7.8-17.5-17.5-17.5l-61 0c-9.7 0-17.5 7.8-17.5 17.5 0 4.2 1.5 8.2 4.2 11.4l27.9 32.5-24.8 70.9-57-180.4 35.7 0c18.4 10.2 39.5 16 62 16s43.6-5.8 62-16l35.7 0-57 180.4zM224 256c-34.7 0-64.2-22.1-75.3-53 5.7 3.2 12.3 5 19.3 5l12.4 0c16.5 0 31.1-10.6 36.3-26.2 2.3-7 12.2-7 14.5 0 5.2 15.6 19.9 26.2 36.3 26.2l12.4 0c7 0 13.6-1.8 19.3-5-11.1 30.9-40.6 53-75.3 53z\"]\n};\nvar faPager = {\n  prefix: 'fas',\n  iconName: 'pager',\n  icon: [512, 512, [128223], \"f815\", \"M0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm64 32l0 64c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L96 128c-17.7 0-32 14.3-32 32zM88 320c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0zm128 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0z\"]\n};\nvar faBriefcase = {\n  prefix: 'fas',\n  iconName: 'briefcase',\n  icon: [512, 512, [128188], \"f0b1\", \"M200 48l112 0c4.4 0 8 3.6 8 8l0 40-128 0 0-40c0-4.4 3.6-8 8-8zm-56 8l0 40-80 0C28.7 96 0 124.7 0 160l0 96 512 0 0-96c0-35.3-28.7-64-64-64l-80 0 0-40c0-30.9-25.1-56-56-56L200 0c-30.9 0-56 25.1-56 56zM512 304l-192 0 0 16c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-16-192 0 0 112c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-112z\"]\n};\nvar faTrowelBricks = {\n  prefix: 'fas',\n  iconName: 'trowel-bricks',\n  icon: [512, 512, [], \"e58a\", \"M224 32c0-11.5-6.2-22.2-16.2-27.8s-22.3-5.5-32.2 .4l-160 96C5.9 106.3 0 116.8 0 128s5.9 21.7 15.5 27.4l160 96c9.9 5.9 22.2 6.1 32.2 .4S224 235.5 224 224l0-64 256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-256 0 0-64zm96 192c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-160 0zM0 416l0 64c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32zm224-32c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-256 0z\"]\n};\nvar faSocks = {\n  prefix: 'fas',\n  iconName: 'socks',\n  icon: [512, 512, [129510], \"f696\", \"M252.8 0L176 0c-26.5 0-48 21.5-48 48l0 16 112 0 0-16c0-17.5 4.7-33.9 12.8-48zM128 112l0 128c0 20.1-9.5 39.1-25.6 51.2l-64 48c-24.2 18.1-38.4 46.6-38.4 76.8 0 53 43 96 96 96 15.4 0 30.5-3.7 44-10.7-17.6-23.9-28-53.4-28-85.3 0-45.3 21.3-88 57.6-115.2l64-48c4-3 6.4-7.8 6.4-12.8l0-128-112 0zm160 0l0 128c0 20.1-9.5 39.1-25.6 51.2l-64 48c-24.2 18.1-38.4 46.6-38.4 76.8 0 53 43 96 96 96 20.8 0 41-6.7 57.6-19.2l115.2-86.4C461 382.2 480 344.3 480 304l0-192-192 0zM480 64l0-16c0-26.5-21.5-48-48-48L336 0c-26.5 0-48 21.5-48 48l0 16 192 0z\"]\n};\nvar faT = {\n  prefix: 'fas',\n  iconName: 't',\n  icon: [384, 512, [116], \"54\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l128 0 0 352c0 17.7 14.3 32 32 32s32-14.3 32-32l0-352 128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32z\"]\n};\nvar faMicrochip = {\n  prefix: 'fas',\n  iconName: 'microchip',\n  icon: [512, 512, [], \"f2db\", \"M176 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c-35.3 0-64 28.7-64 64l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 56-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 56-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c0 35.3 28.7 64 64 64l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 56 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 56 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c35.3 0 64-28.7 64-64l40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-56 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-56 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0c0-35.3-28.7-64-64-64l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40-56 0 0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40-56 0 0-40zM160 128l192 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32l0-192c0-17.7 14.3-32 32-32zm16 48l0 160 160 0 0-160-160 0z\"]\n};\nvar faTruckMedical = {\n  prefix: 'fas',\n  iconName: 'truck-medical',\n  icon: [576, 512, [128657, \"ambulance\"], \"f0f9\", \"M64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64l3.3 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l102.6 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l3.3 0c35.3 0 64-28.7 64-64l0-146.7c0-17-6.7-33.3-18.7-45.3L512 146.7c-12-12-28.3-18.7-45.3-18.7l-50.7 0 0-32c0-35.3-28.7-64-64-64L64 32zM512 237.3l0 50.7-96 0 0-96 50.7 0 45.3 45.3zM152 384a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm232 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM176 136c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"]\n};\nvar faAmbulance = faTruckMedical;\nvar faOm = {\n  prefix: 'fas',\n  iconName: 'om',\n  icon: [576, 512, [128329], \"f679\", \"M388.7 4.7c6.2-6.2 16.4-6.2 22.6 0l16 16c6.2 6.2 6.2 16.4 0 22.6l-16 16c-6.2 6.2-16.4 6.2-22.6 0l-16-16c-6.2-6.2-6.2-16.4 0-22.6l16-16zM176 160c-10.8 0-20.8 3.6-28.8 9.6-14.1 10.6-34.2 7.8-44.8-6.4s-7.8-34.2 6.4-44.8c18.7-14.1 42-22.4 67.2-22.4 61.9 0 112 50.1 112 112 0 17.2-3.9 33.5-10.8 48l49.7 0c12.7 0 24.9-5 33.9-14.1l20.7-20.7c18.7-18.7 44.1-29.3 70.6-29.3 55.2 0 99.9 44.7 99.9 99.9l0 96.1c0 55.2-44.8 100-100 100S352 443.2 352 388l0-4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 4c0 19.9 16.1 36 36 36s36-16.1 36-36l0-96.1c0-19.8-16.1-35.9-35.9-35.9-9.5 0-18.6 3.8-25.4 10.5l-20.7 20.7c-21 21-49.4 32.8-79.1 32.8l-26.8 0c12.6 19.6 19.9 42.8 19.9 68 0 75.2-65 132-140 132S40 463.2 40 388c0-17.7 14.3-32 32-32s32 14.3 32 32c0 35.3 31.7 68 76 68s76-32.7 76-68-31.7-68-76-68l-20 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0c26.5 0 48-21.5 48-48s-21.5-48-48-48zM337.1 60.1c-11-13.8-31.1-16.2-45-5.2s-16.2 31.1-5.2 45C312.6 132.2 354.4 152 400 152s87.4-19.8 113.1-52.1c11-13.8 8.7-34-5.2-45s-34-8.7-45 5.2C450.3 76 427.5 88 400 88s-50.3-12-62.9-27.9z\"]\n};\nvar faMosquitoNet = {\n  prefix: 'fas',\n  iconName: 'mosquito-net',\n  icon: [640, 512, [], \"e52c\", \"M576 352c13.3 0 24 10.7 24 24l0 16 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0 0 48 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0 0 16-.1 2.5C598.6 566.6 588.4 576 576 576s-22.6-9.4-23.9-21.5l-.1-2.5 0-16-48 0 0 16-.1 2.5C502.6 566.6 492.4 576 480 576s-22.6-9.4-23.9-21.5l-.1-2.5 0-16-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-48-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-16c0-13.3 10.7-24 24-24s24 10.7 24 24l0 16 48 0 0-16c0-13.3 10.7-24 24-24zM429.9 16.3c7.7-9.4 21.3-11.5 31.4-4.3 10.1 7.1 13.1 20.9 7.4 31.7l-1.3 2.1-25.9 38.9 13.3 53.4c2 8-.1 16.3-5.3 22.3l-2.4 2.4-44.7 38.3 130.5 14.5c42.8 4.8 75.1 40.9 75.1 83.9 0 3.9-.4 7.7-.9 11.5-7.3-3.5-15.3-5.8-23.8-6.7L576 304c-18.5 0-35.3 7-48 18.4-11-9.9-25.1-16.5-40.6-18.1L480 304c-30.3 0-56.1 18.7-66.8 45.2-12.5 5-23.2 13.4-31.1 24l-30.2-40.1 0 74.7c0 17.7-14.3 32-32 32-16.6 0-30.2-12.6-31.8-28.7l-.2-3.3 0-74.6-32.3 43 0 39.8c0 3.5-.7 6.9-2.1 10.1l-1.6 3.1-40 64-1.4 2c-7.5 9.6-21 12.1-31.3 5.3-10.3-6.8-13.7-20.5-8.3-31.5l1.2-2.2 36.2-58 0-41 .3-4c.6-3.9 2.2-7.7 4.6-10.9l39.3-52.2-66.2 59.5c-17 15.3-39 23.7-61.9 23.8l-8.1 0c-46.6 0-84.4-37.8-84.4-84.4 0-43 32.4-79.2 75.1-83.9l130.5-14.5-44.7-38.3-2.4-2.4c-5.2-6-7.3-14.4-5.3-22.3l13.3-53.4-25.9-38.9-1.2-2.1c-5.7-10.8-2.7-24.6 7.4-31.7 10.1-7.1 23.7-5.1 31.4 4.3l1.5 2 32 48 1.4 2.2c2.8 5.3 3.5 11.6 2.1 17.6l-12.3 49.2 53.3 45.7 0-28.8 .2-3.2c1.1-10.4 7.2-19.4 15.8-24.4l0-60.5 .3-3.2c1.5-7.3 8-12.7 15.7-12.8 7.7 0 14.2 5.5 15.7 12.8l.3 3.2 0 60.5c8.7 5 14.8 14 15.8 24.4l.2 3.2 0 28.9 53.4-45.7-12.3-49.2c-1.5-5.9-.7-12.2 2.1-17.6l1.4-2.2 32-48 1.5-2zM504 488l48 0 0-48-48 0 0 48z\"]\n};\nvar faPrescriptionBottle = {\n  prefix: 'fas',\n  iconName: 'prescription-bottle',\n  icon: [384, 512, [], \"f485\", \"M0 32C0 14.3 14.3 0 32 0L352 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64L0 32zM32 144l320 0 0 304c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0 0-48 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0 0-48 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0 0-64z\"]\n};\nvar faUsersGear = {\n  prefix: 'fas',\n  iconName: 'users-gear',\n  icon: [640, 512, [\"users-cog\"], \"f509\", \"M320 224a104 104 0 1 0 0-208 104 104 0 1 0 0 208zM96 232a72 72 0 1 0 0-144 72 72 0 1 0 0 144zM0 416l0 32c0 17.7 14.3 32 32 32l86.7 0c-4.3-9.8-6.7-20.6-6.7-32l0-16c0-53.2 20-101.8 52.9-138.6-11.7-3.5-24.1-5.4-36.9-5.4-70.7 0-128 57.3-128 128zM616 160a72 72 0 1 0 -144 0 72 72 0 1 0 144 0zM160 432l0 16c0 17.7 14.3 32 32 32l156.8 0c-7.1-21.6-6.3-44.4 10.7-64-14-16.2-20.5-39.7-11.4-63.3 6.6-17.1 15.9-33.1 27.4-47.3 5.4-6.6 11.6-11.7 18.3-15.4-22.1-11.5-47.2-18-73.8-18-88.4 0-160 71.6-160 160zm464.6-44.1c6.3-3.6 9.5-11.1 6.8-18-4.8-12.4-11.5-24.1-19.9-34.4-4.6-5.7-12.7-6.7-19-3-21.8 12.6-48.6-2.8-48.6-28.1 0-7.3-4.9-13.8-12.1-14.9-12.9-2-26.8-2-39.7 0-7.2 1.1-12.1 7.6-12.1 14.9 0 25.2-26.8 40.7-48.6 28.1-6.3-3.6-14.4-2.6-19 3-8.4 10.3-15.1 22-19.9 34.4-2.6 6.8 .5 14.3 6.8 17.9 21.9 12.6 21.9 43.5 0 56.2-6.3 3.6-9.5 11.1-6.8 17.9 4.8 12.4 11.5 24.1 19.9 34.4 4.6 5.7 12.7 6.7 19 3 21.8-12.6 48.6 2.9 48.6 28.1 0 7.3 4.9 13.8 12.1 14.9 12.9 2 26.8 2 39.7 0 7.2-1.1 12.1-7.6 12.1-14.9 0-25.2 26.8-40.7 48.6-28.1 6.3 3.6 14.4 2.6 19-3 8.4-10.3 15.1-22 19.9-34.4 2.6-6.8-.5-14.3-6.8-17.9-21.9-12.6-21.9-43.5 0-56.2zM472 416a40 40 0 1 1 80 0 40 40 0 1 1 -80 0z\"]\n};\nvar faUsersCog = faUsersGear;\nvar faRoadCircleExclamation = {\n  prefix: 'fas',\n  iconName: 'road-circle-exclamation',\n  icon: [640, 512, [], \"e565\", \"M288 32l-76.3 0c-29.4 0-55.1 20.1-62.1 48.6L65.4 420.5C57.9 450.7 80.8 480 112 480l209.4 0c-11.2-24.4-17.4-51.4-17.4-80 0-28.6 6.2-55.7 17.4-80-.5 0-1 0-1.5 0-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 49c35.2-39.9 86.7-65 144-65 9 0 17.8 .6 26.5 1.8l-32-129.2C483.4 52.1 457.8 32 428.3 32l-76.4 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"]\n};\nvar faPause = {\n  prefix: 'fas',\n  iconName: 'pause',\n  icon: [384, 512, [9208], \"f04c\", \"M48 32C21.5 32 0 53.5 0 80L0 432c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48L48 32zm224 0c-26.5 0-48 21.5-48 48l0 352c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48l-64 0z\"]\n};\nvar faStaffSnake = {\n  prefix: 'fas',\n  iconName: 'staff-snake',\n  icon: [448, 512, [\"rod-asclepius\", \"rod-snake\", \"staff-aesculapius\"], \"e579\", \"M192 32l0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 64 0c53 0 96 43 96 96s-43 96-96 96l-16 0 0-64 16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0 192 32 0c53 0 96 43 96 96 0 47.6-34.6 87.1-80 94.7l0-67c9.6-5.5 16-15.9 16-27.7 0-17.7-14.3-32-32-32l-32 0 0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-64-32 0c-53 0-96-43-96-96 0-47.6 34.6-87.1 80-94.7l0 67c-9.6 5.5-16 15.9-16 27.7 0 17.7 14.3 32 32 32l32 0 0-192-72.6 0c-11.1 19.1-31.7 32-55.4 32l-16 0C21.5 128 0 106.5 0 80S21.5 32 48 32l144 0z\"]\n};\nvar faRodAsclepius = faStaffSnake;\nvar faRodSnake = faStaffSnake;\nvar faStaffAesculapius = faStaffSnake;\nvar faPiggyBank = {\n  prefix: 'fas',\n  iconName: 'piggy-bank',\n  icon: [576, 512, [], \"f4d3\", \"M288-32a96 96 0 1 1 0 192 96 96 0 1 1 0-192zM48 304c0-70.1 47-131.4 117.1-164.9 25.3 41.3 70.9 68.9 122.9 68.9 55.7 0 104.1-31.7 128-78 15.8-11.3 35.1-18 56-18l19.5 0c10.4 0 18 9.8 15.5 19.9l-17.1 68.3c9.9 12.4 18.2 25.7 24.4 39.8l21.7 0c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24l-40 0c-16.5 22-38.5 39.6-64 50.7l0 29.3c0 17.7-14.3 32-32 32l-33 0c-14.3 0-26.8-9.5-30.8-23.2l-7.1-24.8-82.3 0-7.1 24.8C235.8 502.5 223.3 512 209 512l-33 0c-17.7 0-32-14.3-32-32l0-29.3C87.5 426 48 369.6 48 304zm376 16a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"]\n};\nvar faMonument = {\n  prefix: 'fas',\n  iconName: 'monument',\n  icon: [384, 512, [], \"f5a6\", \"M209-33c-9.4-9.4-24.6-9.4-33.9 0L95 47c-4.1 4.1-6.5 9.4-7 15.1L58.4 448 48 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-10.4 0-29.7-385.8c-.4-5.7-2.9-11.1-7-15.1L209-33zM128 296c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24z\"]\n};\nvar faAnglesRight = {\n  prefix: 'fas',\n  iconName: 'angles-right',\n  icon: [448, 512, [187, \"angle-double-right\"], \"f101\", \"M439.1 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L371.2 256 233.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160zm-352 160l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L179.2 256 41.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z\"]\n};\nvar faAngleDoubleRight = faAnglesRight;\nvar faDesktop = {\n  prefix: 'fas',\n  iconName: 'desktop',\n  icon: [512, 512, [128421, 61704, \"desktop-alt\"], \"f390\", \"M64 32C28.7 32 0 60.7 0 96L0 352c0 35.3 28.7 64 64 64l144 0-16 48-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l272 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0-16-48 144 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 32zM96 96l320 0c17.7 0 32 14.3 32 32l0 160c0 17.7-14.3 32-32 32L96 320c-17.7 0-32-14.3-32-32l0-160c0-17.7 14.3-32 32-32z\"]\n};\nvar faDesktopAlt = faDesktop;\nvar faPlaneCircleXmark = {\n  prefix: 'fas',\n  iconName: 'plane-circle-xmark',\n  icon: [640, 512, [], \"e557\", \"M232 24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 127.3 78 71.5c-69.3 29-118 97.4-118 177.2 0 49.3 18.6 94.3 49.1 128.3L288 512 179.9 539c-10.1 2.5-19.9-5.1-19.9-15.5l0-19.8c0-4.9 2.2-9.5 6-12.5l66-52.8 0-99.7-162.9 54.3C58.7 396.4 48 388.7 48 377.8l0-43.7c0-9 3.8-17.5 10.4-23.6L232 151.3 232 24zM496 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-36.7 36.7-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l36.7 36.7-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l36.7-36.7 36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-36.7-36.7 36.7-36.7z\"]\n};\nvar faRetweet = {\n  prefix: 'fas',\n  iconName: 'retweet',\n  icon: [576, 512, [], \"f079\", \"M118.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9S19.1 160 32 160l32 0 0 224c0 53 43 96 96 96l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0c-17.7 0-32-14.3-32-32l0-224 32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64zM457.4 470.6c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9S556.9 352 544 352l-32 0 0-224c0-53-43-96-96-96L288 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32 14.3 32 32l0 224-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64z\"]\n};\nvar faUserGear = {\n  prefix: 'fas',\n  iconName: 'user-gear',\n  icon: [640, 512, [\"user-cog\"], \"f4fe\", \"M256.5 8a120 120 0 1 1 0 240 120 120 0 1 1 0-240zM226.7 304l59.4 0 1.5 0c-12.9 26.8-7.8 58.2 11.5 79.5-20.2 22.3-24.8 55.8-9.4 83.4l22.5 40.4c.9 1.6 1.9 3.2 2.9 4.7l-237 0c-16.4 0-29.7-13.3-29.7-29.7 0-98.5 79.8-178.3 178.3-178.3zm205.9-56.4c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 6.1c0 18.9 24.1 32.8 40.5 23.4l5-2.9c11.6-6.7 26.5-2.6 33 9.1l22.4 40.2c6.2 11.2 2.6 25.2-8.2 32l-4.7 2.9c-16.2 10.1-16.2 39.9 0 50.1l4.6 2.9c10.8 6.8 14.5 20.8 8.3 32L607 483.8c-6.5 11.7-21.4 15.9-33 9.1l-4.9-2.9c-16.4-9.5-40.5 4.5-40.5 23.4l0 6.1c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-5.9c0-19-24.2-33-40.7-23.5l-4.8 2.8c-11.6 6.7-26.4 2.6-33-9.1l-22.6-40.4c-6.2-11.2-2.6-25.3 8.3-32.1l4.4-2.7c16.3-10.1 16.3-40.1 0-50.2l-4.5-2.8c-10.9-6.8-14.5-20.9-8.3-32.1l22.5-40.3c6.5-11.7 21.4-15.8 32.9-9.1l4.8 2.8c16.5 9.5 40.7-4.5 40.7-23.5l0-5.9zm99.9 136.2a52 52 0 1 0 -104 0 52 52 0 1 0 104 0z\"]\n};\nvar faUserCog = faUserGear;\nvar faBorderAll = {\n  prefix: 'fas',\n  iconName: 'border-all',\n  icon: [448, 512, [], \"f84c\", \"M384 96l0 128-128 0 0-128 128 0zm0 192l0 128-128 0 0-128 128 0zM192 224l-128 0 0-128 128 0 0 128zM64 288l128 0 0 128-128 0 0-128zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z\"]\n};\nvar faCoins = {\n  prefix: 'fas',\n  iconName: 'coins',\n  icon: [512, 512, [], \"f51e\", \"M128 96l0-16c0-44.2 86-80 192-80S512 35.8 512 80l0 16c0 30.6-41.3 57.2-102 70.7-2.4-2.8-4.9-5.5-7.4-8-15.5-15.3-35.5-26.9-56.4-35.5-41.9-17.5-96.5-27.1-154.2-27.1-21.9 0-43.3 1.4-63.8 4.1-.2-1.3-.2-2.7-.2-4.1zM432 353l0-46.2c15.1-3.9 29.3-8.5 42.2-13.9 13.2-5.5 26.1-12.2 37.8-20.3l0 15.4c0 26.8-31.5 50.5-80 65zm0-96l0-33c0-4.5-.4-8.8-1-13 15.5-3.9 30-8.6 43.2-14.2s26.1-12.2 37.8-20.3l0 15.4c0 26.8-31.5 50.5-80 65zM0 240l0-16c0-44.2 86-80 192-80s192 35.8 192 80l0 16c0 44.2-86 80-192 80S0 284.2 0 240zm384 96c0 44.2-86 80-192 80S0 380.2 0 336l0-15.4c11.6 8.1 24.5 14.7 37.8 20.3 41.9 17.5 96.5 27.1 154.2 27.1s112.3-9.7 154.2-27.1c13.2-5.5 26.1-12.2 37.8-20.3l0 15.4zm0 80.6l0 15.4c0 44.2-86 80-192 80S0 476.2 0 432l0-15.4c11.6 8.1 24.5 14.7 37.8 20.3 41.9 17.5 96.5 27.1 154.2 27.1s112.3-9.7 154.2-27.1c13.2-5.5 26.1-12.2 37.8-20.3z\"]\n};\nvar faMarsStroke = {\n  prefix: 'fas',\n  iconName: 'mars-stroke',\n  icon: [576, 512, [9894], \"f229\", \"M416-32c-17.7 0-32 14.3-32 32s14.3 32 32 32l50.7 0-58.7 58.7-17.4-17.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l17.4 17.4-23 23c-28.4-19.5-62.7-31-99.8-31-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176c0-37-11.4-71.4-31-99.8l23-23 17.4 17.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L453.3 136 512 77.3 512 128c0 17.7 14.3 32 32 32s32-14.3 32-32L576 0c0-17.7-14.3-32-32-32L416-32zM128 304a112 112 0 1 1 224 0 112 112 0 1 1 -224 0z\"]\n};\nvar faHandshakeAngle = {\n  prefix: 'fas',\n  iconName: 'handshake-angle',\n  icon: [576, 512, [\"hands-helping\"], \"f4c4\", \"M268.9 53.2L152.3 182.8c-4.6 5.1-4.4 13 .5 17.9 30.5 30.5 80 30.5 110.5 0l31.8-31.8c4.2-4.2 9.5-6.5 14.9-6.9 6.8-.6 13.8 1.7 19 6.9L505.6 344 576 288 576 0 464 64 440.2 48.1C424.4 37.6 405.9 32 386.9 32l-70.4 0c-1.1 0-2.3 0-3.4 .1-16.9 .9-32.8 8.5-44.2 21.1zM116.6 150.7L223.4 32 183.8 32c-25.5 0-49.9 10.1-67.9 28.1L0 192 0 544 144 408 156.4 418.3c23 19.2 52 29.7 81.9 29.7l15.7 0-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l41 41 9 0c19.1 0 37.8-4.3 54.8-12.3L359 409c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l32 32 17.5-17.5c8.9-8.9 11.5-21.8 7.6-33.1l-137.9-136.8-14.9 14.9c-49.3 49.3-129.1 49.3-178.4 0-23-23-23.9-59.9-2.2-84z\"]\n};\nvar faHandsHelping = faHandshakeAngle;\nvar faArrowDown = {\n  prefix: 'fas',\n  iconName: 'arrow-down',\n  icon: [384, 512, [8595], \"f063\", \"M169.4 502.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 402.7 224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 370.7-105.4-105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z\"]\n};\nvar faLocationDot = {\n  prefix: 'fas',\n  iconName: 'location-dot',\n  icon: [384, 512, [\"map-marker-alt\"], \"f3c5\", \"M0 188.6C0 84.4 86 0 192 0S384 84.4 384 188.6c0 119.3-120.2 262.3-170.4 316.8-11.8 12.8-31.5 12.8-43.3 0-50.2-54.5-170.4-197.5-170.4-316.8zM192 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128z\"]\n};\nvar faMapMarkerAlt = faLocationDot;\nvar faPlugCircleExclamation = {\n  prefix: 'fas',\n  iconName: 'plug-circle-exclamation',\n  icon: [640, 512, [], \"e55d\", \"M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM496 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 228a20 20 0 1 0 0-40 20 20 0 1 0 0 40zm0-180c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z\"]\n};\nvar faCookieBite = {\n  prefix: 'fas',\n  iconName: 'cookie-bite',\n  icon: [512, 512, [], \"f564\", \"M257.5 27.6c-.8-5.4-4.9-9.8-10.3-10.6-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9-.9-5.3-5.3-9.3-10.6-10.1-51.5-8.2-92.8-47.1-104.5-97.4-1.8-7.6-8-13.4-15.7-14.6-54.6-8.7-97.7-52-106.2-106.8zM208 144a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM144 336a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm224-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faScrewdriverWrench = {\n  prefix: 'fas',\n  iconName: 'screwdriver-wrench',\n  icon: [576, 512, [\"tools\"], \"f7d9\", \"M70.8-6.7c5.4-5.4 13.8-6.2 20.2-2L209.9 70.5c8.9 5.9 14.2 15.9 14.2 26.6l0 49.6 90.8 90.8c33.3-15 73.9-8.9 101.2 18.5L542.2 382.1c18.7 18.7 18.7 49.1 0 67.9l-60.1 60.1c-18.7 18.7-49.1 18.7-67.9 0L288.1 384c-27.4-27.4-33.5-67.9-18.5-101.2l-90.8-90.8-49.6 0c-10.7 0-20.7-5.3-26.6-14.2L23.4 58.9c-4.2-6.3-3.4-14.8 2-20.2L70.8-6.7zm145 303.5c-6.3 36.9 2.3 75.9 26.2 107.2l-94.9 95c-28.1 28.1-73.7 28.1-101.8 0s-28.1-73.7 0-101.8l135.4-135.5 35.2 35.1zM384.1 0c20.1 0 39.4 3.7 57.1 10.5 10 3.8 11.8 16.5 4.3 24.1L388.8 91.3c-3 3-4.7 7.1-4.7 11.3l0 41.4c0 8.8 7.2 16 16 16l41.4 0c4.2 0 8.3-1.7 11.3-4.7l56.7-56.7c7.6-7.5 20.3-5.7 24.1 4.3 6.8 17.7 10.5 37 10.5 57.1 0 43.2-17.2 82.3-45 111.1l-49.1-49.1c-33.1-33-78.5-45.7-121.1-38.4l-56.8-56.8 0-29.7-.2-5c-.8-12.4-4.4-24.3-10.5-34.9 29.4-35 73.4-57.2 122.7-57.3z\"]\n};\nvar faTools = faScrewdriverWrench;\nvar faIndent = {\n  prefix: 'fas',\n  iconName: 'indent',\n  icon: [448, 512, [], \"f03c\", \"M0 64C0 46.3 14.3 32 32 32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 96l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32zM127.8 268.6L25.8 347.9C15.3 356.1 0 348.6 0 335.3L0 176.7c0-13.3 15.3-20.8 25.8-12.6l101.9 79.3c8.2 6.4 8.2 18.9 0 25.3z\"]\n};\nvar faBars = {\n  prefix: 'fas',\n  iconName: 'bars',\n  icon: [448, 512, [\"navicon\"], \"f0c9\", \"M0 96C0 78.3 14.3 64 32 64l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z\"]\n};\nvar faNavicon = faBars;\nvar faHandsPraying = {\n  prefix: 'fas',\n  iconName: 'hands-praying',\n  icon: [640, 512, [\"praying-hands\"], \"f684\", \"M224 296c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112.6 88.2-119.7c13.1-17.8 9.3-42.8-8.5-55.9s-42.8-9.3-55.9 8.5L106.5 142.9C89.3 166.2 80 194.5 80 223.6l0 110.7-58.1 19.4C8.8 358 0 370.2 0 384l0 96c0 10 4.7 19.5 12.7 25.5s18.4 8 28.1 5.2l154.4-44.1c55-15.7 92.8-65.9 92.8-123.1L288 224c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 72zm192 0l0-72c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 119.6c0 57.2 37.9 107.4 92.8 123.1l154.4 44.1c9.7 2.8 20 .8 28.1-5.2S640 490 640 480l0-96c0-13.8-8.8-26-21.9-30.4l-58.1-19.4 0-110.7c0-29-9.3-57.3-26.5-80.7L440.2 16.3C427.1-1.5 402.1-5.3 384.3 7.8s-21.6 38.1-8.5 55.9L464 183.4 464 296c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"]\n};\nvar faPrayingHands = faHandsPraying;\nvar faViruses = {\n  prefix: 'fas',\n  iconName: 'viruses',\n  icon: [640, 512, [], \"e076\", \"M192 0c17.7 0 32 14.3 32 32 0 30.5 36.9 45.8 58.5 24.2 12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-21.6 21.6-6.3 58.5 24.2 58.5 17.7 0 32 14.3 32 32s-14.3 32-32 32c-30.5 0-45.8 36.9-24.2 58.5 12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0c-21.6-21.6-58.5-6.3-58.5 24.2 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-30.5-36.9-45.8-58.5-24.2-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3C77.8 260.9 62.5 224 32 224 14.3 224 0 209.7 0 192s14.3-32 32-32c30.5 0 45.8-36.9 24.2-58.5-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0C123.1 77.8 160 62.5 160 32 160 14.3 174.3 0 192 0zM144 176a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm128 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm248 40c0 22.9 27.7 34.4 43.9 18.2 9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-16.2 16.2-4.7 43.9 18.2 43.9 13.3 0 24 10.7 24 24s-10.7 24-24 24c-22.9 0-34.4 27.7-18.2 43.9 9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-16.2-16.2-43.9-4.7-43.9 18.2 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-22.9-27.7-34.4-43.9-18.2-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c16.2-16.2 4.7-43.9-18.2-43.9-13.3 0-24-10.7-24-24s10.7-24 24-24c22.9 0 34.4-27.7 18.2-43.9-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c16.2 16.2 43.9 4.7 43.9-18.2 0-13.3 10.7-24 24-24s24 10.7 24 24zM504 384a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faSchoolFlag = {\n  prefix: 'fas',\n  iconName: 'school-flag',\n  icon: [576, 512, [], \"e56e\", \"M256-8c0-13.3 10.7-24 24-24l112 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-72 0 0 19.2 128 76.8 64 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64l64 0 128-76.8 0-91.2zM240 384l0 80 96 0 0-80c0-26.5-21.5-48-48-48s-48 21.5-48 48zM112 416c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zm16-144l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM496 416c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zm16-144l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zm-224 0a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"]\n};\nvar faTrademark = {\n  prefix: 'fas',\n  iconName: 'trademark',\n  icon: [640, 512, [8482], \"f25c\", \"M346.6 110.2c-7.8-11.7-22.4-17-35.9-12.9S288 113.9 288 128l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32l0-150.3 69.4 104.1c5.9 8.9 15.9 14.2 26.6 14.2s20.7-5.3 26.6-14.2L544 233.7 544 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-256c0-14.1-9.2-26.5-22.7-30.6s-28.1 1.1-35.9 12.9L448 262.3 346.6 110.2zM32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l64 0 0 224c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 96z\"]\n};\nvar faFireBurner = {\n  prefix: 'fas',\n  iconName: 'fire-burner',\n  icon: [512, 512, [], \"e4f1\", \"M281.7 48.3L294 34.5c5.4-6.1 13.3-8.8 20.9-8.9 7.2 0 14.3 2.6 19.9 7.8 19.7 18.3 39.8 43.2 55 70.6 15.1 27.2 26.2 58.1 26.2 88.1 0 88.7-71.3 159.8-160 159.8-89.6 0-160-71.3-160-159.8 0-37.3 16-73.4 36.8-104.5 20.9-31.3 47.5-59 70.9-80.2 5.7-5.2 13.1-7.7 20.3-7.5s13.4 3.2 18.8 7.5c14.4 11.4 38.9 40.7 38.9 40.7zM320 240.2c0-36.5-37-73-54.8-88.4-5.4-4.7-13.1-4.7-18.5 0-17.7 15.4-54.8 51.9-54.8 88.4 0 35.3 28.7 64 64 64s64-28.7 64-64zM92.8 320c37.7 48.3 96.1 80 163.2 80 66.5 0 125.1-31.7 163-80l45 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48l0-64c0-26.5 21.5-48 48-48l44.8 0zM456 400a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"]\n};\nvar faFaceSmileBeam = {\n  prefix: 'fas',\n  iconName: 'face-smile-beam',\n  icon: [512, 512, [128522, \"smile-beam\"], \"f5b8\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM165.4 321.9c20.4 28 53.4 46.1 90.6 46.1s70.2-18.1 90.6-46.1c7.8-10.7 22.8-13.1 33.5-5.3s13.1 22.8 5.3 33.5C356.3 390 309.2 416 256 416s-100.3-26-129.4-65.9c-7.8-10.7-5.4-25.7 5.3-33.5s25.7-5.4 33.5 5.3zM176 180c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"]\n};\nvar faSmileBeam = faFaceSmileBeam;\nvar faTentArrowLeftRight = {\n  prefix: 'fas',\n  iconName: 'tent-arrow-left-right',\n  icon: [512, 512, [], \"e57f\", \"M-.5 113c-9.4-9.4-9.4-24.6 0-33.9l72-72c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-31 31 310.1 0 54.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-102.1 0-.1 0-262 0 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-72-72zM37.1 476L60.3 292.6c1.2-9.7 6.8-18.3 15.1-23.3L238.8 170c10.2-6.2 22.9-6.2 33.1-.1l165.5 99.4c8.4 5 14 13.7 15.3 23.4L475.9 476c2.4 19.1-12.5 36-31.7 36l-71.9 0c-12.1 0-23.2-6.8-28.6-17.7L275.4 357.9c-1.8-3.6-5.5-5.9-9.5-5.9-5.9 0-10.6 4.7-10.6 10.6l0 117.4c0 17.7-14.3 32-32 32L68.8 512c-19.3 0-34.2-16.9-31.7-36z\"]\n};\nvar faRoute = {\n  prefix: 'fas',\n  iconName: 'route',\n  icon: [512, 512, [], \"f4d7\", \"M512 96c0 50.2-59.1 125.1-84.6 155-3.8 4.4-9.4 6.1-14.5 5L320 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c53 0 96 43 96 96s-43 96-96 96l-276.4 0c8.7-9.9 19.3-22.6 30-36.8 6.3-8.4 12.8-17.6 19-27.2L416 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0c-53 0-96-43-96-96s43-96 96-96l39.8 0c-21-31.5-39.8-67.7-39.8-96 0-53 43-96 96-96s96 43 96 96zM117.1 489.1c-3.8 4.3-7.2 8.1-10.1 11.3l-1.8 2-.2-.2c-6 4.6-14.6 4-20-1.8-25.2-27.4-85-97.9-85-148.4 0-53 43-96 96-96s96 43 96 96c0 30-21.1 67-43.5 97.9-10.7 14.7-21.7 28-30.8 38.5l-.6 .7zM128 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM416 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faAnglesUp = {\n  prefix: 'fas',\n  iconName: 'angles-up',\n  icon: [384, 512, [\"angle-double-up\"], \"f102\", \"M214.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 109.3 329.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160zm160 352l-160-160c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 329.4 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3z\"]\n};\nvar faAngleDoubleUp = faAnglesUp;\nvar faBucket = {\n  prefix: 'fas',\n  iconName: 'bucket',\n  icon: [448, 512, [], \"e4cf\", \"M443.7 208c2.7 4.7 4.3 10.2 4.3 16 0 17.7-14.3 32-32 32l-5.1 0-22.4 213c-2.6 24.4-23.2 43-47.8 43l-233.6 0c-24.6 0-45.2-18.5-47.8-43L37.1 256 32 256c-17.7 0-32-14.3-32-32 0-5.8 1.6-11.3 4.3-16l439.4 0zM224-16c79.5 0 144 64.5 144 144l0 32-48 0 0-32c0-53-43-96-96-96s-96 43-96 96l0 32-48 0 0-32C80 48.5 144.5-16 224-16z\"]\n};\nvar faLessThanEqual = {\n  prefix: 'fas',\n  iconName: 'less-than-equal',\n  icon: [448, 512, [], \"f537\", \"M426.1 94.4c16.8-5.6 25.8-23.7 20.2-40.5s-23.7-25.8-40.5-20.2l-384 128C8.8 166 0 178.2 0 192s8.8 26 21.9 30.4l384 128c16.8 5.6 34.9-3.5 40.5-20.2s-3.5-34.9-20.2-40.5L133.2 192 426.1 94.4zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416z\"]\n};\nvar faFolderClosed = {\n  prefix: 'fas',\n  iconName: 'folder-closed',\n  icon: [512, 512, [], \"e185\", \"M448 448L64 448c-35.3 0-64-28.7-64-64l0-176 512 0 0 176c0 35.3-28.7 64-64 64zm64-288L0 160 0 96C0 60.7 28.7 32 64 32l138.7 0c13.8 0 27.3 4.5 38.4 12.8l38.4 28.8c5.5 4.2 12.3 6.4 19.2 6.4L448 80c35.3 0 64 28.7 64 64l0 16z\"]\n};\nvar faPersonThroughWindow = {\n  prefix: 'fas',\n  iconName: 'person-through-window',\n  icon: [640, 512, [], \"e5a9\", \"M64 64l224 0 0 9.8c0 39-23.7 74-59.9 88.4-60.5 24.2-100.1 82.7-100.1 147.9l0 73.8-64 0 0-320zm288 0l224 0 0 320-67.7 0-3.7-4.5-75.2-90.2c-9.1-10.9-22.6-17.3-36.9-17.3l-71.1 0-41-63.1c-.3-.5-.6-1-1-1.4 44.7-29 72.5-79 72.5-133.6l0-9.8zm73 320l-26.6 0 42.7 64 150.9 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48L48 0C21.5 0 0 21.5 0 48L0 400c0 26.5 21.5 48 48 48l260.2 0 33.2 49.8c9.8 14.7 29.7 18.7 44.4 8.9s18.7-29.7 8.9-44.4l-84.2-126.2 74.6 0 40 48zm-159.5 0l-73.5 0 0-73.8c0-10.2 1.6-20.1 4.7-29.5L265.5 384zM192 128a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nvar faSchoolLock = {\n  prefix: 'fas',\n  iconName: 'school-lock',\n  icon: [640, 512, [], \"e56f\", \"M0 192c0-35.3 28.7-64 64-64l64 0 127.9-115.1c18.3-16.4 46-16.4 64.2 0L448 128 512 128c33 0 60.2 25 63.6 57.2-14.7-5.9-30.8-9.2-47.6-9.2-70.7 0-128 57.3-128 128l0 24.4c-19.6 17.6-32 43.1-32 71.5l0 96c0 5.5 .5 10.9 1.3 16.1L64 512c-35.3 0-64-28.7-64-64L0 192zM332.3 341.5c-6-3.5-12.9-5.5-20.3-5.5l-48 0c-22.1 0-40 17.9-40 40l0 88 96 0 0-64.1c0-20.8 4.4-40.5 12.3-58.4zM112 384c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zm16-144l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zm224-48a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM560 352l0-47.9c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0zm-112 2.7l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96c0-20.9 13.4-38.7 32-45.3z\"]\n};\nvar faPersonBurst = {\n  prefix: 'fas',\n  iconName: 'person-burst',\n  icon: [640, 512, [], \"e53b\", \"M204 40.1c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24l0 48c0 13.3-10.7 24-24 24zM4 144.1c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zM96.5 285.5c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l33.9-33.9c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L96.5 285.5zM62.6 2.7c9.4-9.4 24.6-9.4 33.9 0l33.9 33.9c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L62.6 36.6c-9.4-9.4-9.4-24.6 0-33.9zM352.4-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM478.7 299.1l-46.3-62.4 0 275.3c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-275.3-46.3 62.4c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95c25.2-33.9 65-53.9 107.2-53.9s82 20 107.2 53.9l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6z\"]\n};\nvar faLeftLong = {\n  prefix: 'fas',\n  iconName: 'left-long',\n  icon: [576, 512, [\"long-arrow-alt-left\"], \"f30a\", \"M9.4 278.6c-12.5-12.5-12.5-32.8 0-45.3l128-128c9.2-9.2 22.9-11.9 34.9-6.9S192 115.1 192 128l0 64 336 0c26.5 0 48 21.5 48 48l0 32c0 26.5-21.5 48-48 48l-336 0 0 64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-128-128z\"]\n};\nvar faLongArrowAltLeft = faLeftLong;\nvar faLocationCrosshairs = {\n  prefix: 'fas',\n  iconName: 'location-crosshairs',\n  icon: [576, 512, [\"location\"], \"f601\", \"M288-16c17.7 0 32 14.3 32 32l0 18.3c98.1 14 175.7 91.6 189.7 189.7l18.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-18.3 0c-14 98.1-91.6 175.7-189.7 189.7l0 18.3c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.3C157.9 463.7 80.3 386.1 66.3 288L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l18.3 0C80.3 125.9 157.9 48.3 256 34.3L256 16c0-17.7 14.3-32 32-32zM128 256a160 160 0 1 0 320 0 160 160 0 1 0 -320 0zm160-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"]\n};\nvar faLocation = faLocationCrosshairs;\nvar faPersonDotsFromLine = {\n  prefix: 'fas',\n  iconName: 'person-dots-from-line',\n  icon: [512, 512, [\"diagnoses\"], \"f470\", \"M184 72a72 72 0 1 1 144 0 72 72 0 1 1 -144 0zM160 299.3c-19.9 22.6-32 52.2-32 84.7l0 32-64 0 0-32c0-106 86-192 192-192s192 86 192 192l0 32-64 0 0-32c0-32.5-12.1-62.1-32-84.7l0 116.7-192 0 0-116.7zM232 384a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm88-104a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM24 464l464 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24zM64 184a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm424 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"]\n};\nvar faDiagnoses = faPersonDotsFromLine;\nvar faGaugeSimpleHigh = {\n  prefix: 'fas',\n  iconName: 'gauge-simple-high',\n  icon: [512, 512, [61668, \"tachometer\", \"tachometer-fast\"], \"f62a\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm320 96c0-16.2-6-31.1-16-42.3l69.5-138.9c5.9-11.9 1.1-26.3-10.7-32.2s-26.3-1.1-32.2 10.7L261.1 288.2c-1.7-.1-3.4-.2-5.1-.2-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64z\"]\n};\nvar faTachometer = faGaugeSimpleHigh;\nvar faTachometerFast = faGaugeSimpleHigh;\nvar faAnglesLeft = {\n  prefix: 'fas',\n  iconName: 'angles-left',\n  icon: [448, 512, [171, \"angle-double-left\"], \"f100\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160zm352-160l-160 160c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L269.3 256 406.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0z\"]\n};\nvar faAngleDoubleLeft = faAnglesLeft;\nvar faUpDown = {\n  prefix: 'fas',\n  iconName: 'up-down',\n  icon: [512, 512, [8597, 11021, \"arrows-alt-v\"], \"f338\", \"M406.6 502.6l96-96c9.2-9.2 11.9-22.9 6.9-34.9S492.9 352 480 352l-64 0 0-320c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 320-64 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l96 96c12.5 12.5 32.8 12.5 45.3 0zM150.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-9.2 9.2-11.9 22.9-6.9 34.9S19.1 160 32 160l64 0 0 320c0 17.7 14.3 32 32 32s32-14.3 32-32l0-320 64 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-96-96z\"]\n};\nvar faArrowsAltV = faUpDown;\nvar faBatteryEmpty = {\n  prefix: 'fas',\n  iconName: 'battery-empty',\n  icon: [640, 512, [\"battery-0\"], \"f244\", \"M112 64c-44.2 0-80 35.8-80 80l0 224c0 44.2 35.8 80 80 80l416 0c44.2 0 80-35.8 80-80l0-48c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80L112 64zM96 144c0-8.8 7.2-16 16-16l416 0c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-416 0c-8.8 0-16-7.2-16-16l0-224z\"]\n};\nvar faBattery0 = faBatteryEmpty;\nvar faKeyboard = {\n  prefix: 'fas',\n  iconName: 'keyboard',\n  icon: [576, 512, [9000], \"f11c\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm16 64l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM176 128l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM160 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l224 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80-176c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80-80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80-80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z\"]\n};\nvar faCookie = {\n  prefix: 'fas',\n  iconName: 'cookie',\n  icon: [512, 512, [127850], \"f563\", \"M247.2 17c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9l-14.6-82.8c-3.9-22.1-14.6-42.3-30.7-57.9L388.9 57.5c-16.1-15.6-36.6-25.6-58.7-28.7L247.2 17zM208 144a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM144 336a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm224-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faStopwatch = {\n  prefix: 'fas',\n  iconName: 'stopwatch',\n  icon: [448, 512, [9201], \"f2f2\", \"M168.5 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 25.3c-108 11.9-192 103.5-192 214.7 0 119.3 96.7 216 216 216s216-96.7 216-216c0-39.8-10.8-77.1-29.6-109.2l28.2-28.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-23.4 23.4c-32.9-30.2-75.2-50.3-122-55.5l0-25.3 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0zm80 184l0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-104c0-13.3 10.7-24 24-24s24 10.7 24 24z\"]\n};\nvar faEject = {\n  prefix: 'fas',\n  iconName: 'eject',\n  icon: [448, 512, [9167], \"f052\", \"M224 32c13.5 0 26.3 5.6 35.4 15.6l176 192c12.9 14 16.2 34.3 8.6 51.8S419 320 400 320L48 320c-19 0-36.3-11.2-43.9-28.7s-4.3-37.7 8.6-51.8l176-192C197.7 37.6 210.5 32 224 32zM0 432c0-26.5 21.5-48 48-48l352 0c26.5 0 48 21.5 48 48s-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48z\"]\n};\nvar faSatelliteDish = {\n  prefix: 'fas',\n  iconName: 'satellite-dish',\n  icon: [512, 512, [128225], \"f7c0\", \"M232 0c154.6 0 280 125.4 280 280 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-128.1-103.9-232-232-232-13.3 0-24-10.7-24-24S218.7 0 232 0zM208 120c0-13.3 10.7-24 24-24 101.6 0 184 82.4 184 184 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-75.1-60.9-136-136-136-13.3 0-24-10.7-24-24zM26.4 142.7c8.8-17.9 32.4-19.9 46.5-5.8l128.5 128.5 32-32c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-32 32 128.5 128.5c14.1 14.1 12 37.6-5.8 46.5-34.2 16.9-72.6 26.4-113.3 26.4-141.4 0-256-114.6-256-256 0-40.7 9.5-79.2 26.4-113.3z\"]\n};\nvar faFaceRollingEyes = {\n  prefix: 'fas',\n  iconName: 'face-rolling-eyes',\n  icon: [512, 512, [128580, \"meh-rolling-eyes\"], \"f5a5\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM192 352l128 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-128 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm32-128c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26 15.5-48.4 37.8-58.4-3.7 5.2-5.8 11.6-5.8 18.4 0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4 22.3 10 37.8 32.4 37.8 58.4zm128 64c-35.3 0-64-28.7-64-64 0-26 15.5-48.4 37.8-58.4-3.7 5.2-5.8 11.6-5.8 18.4 0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4 22.3 10 37.8 32.4 37.8 58.4 0 35.3-28.7 64-64 64z\"]\n};\nvar faMehRollingEyes = faFaceRollingEyes;\nvar faListCheck = {\n  prefix: 'fas',\n  iconName: 'list-check',\n  icon: [512, 512, [\"tasks\"], \"f0ae\", \"M133.8 36.3c10.9 7.6 13.5 22.6 5.9 33.4l-56 80c-4.1 5.8-10.5 9.5-17.6 10.1S52 158 47 153L7 113C-2.3 103.6-2.3 88.4 7 79S31.6 69.7 41 79l19.8 19.8 39.6-56.6c7.6-10.9 22.6-13.5 33.4-5.9zm0 160c10.9 7.6 13.5 22.6 5.9 33.4l-56 80c-4.1 5.8-10.5 9.5-17.6 10.1S52 318 47 313L7 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l19.8 19.8 39.6-56.6c7.6-10.9 22.6-13.5 33.4-5.9zM224 96c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zM160 416c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-288 0c-17.7 0-32-14.3-32-32zM64 376a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"]\n};\nvar faTasks = faListCheck;\nvar faSackXmark = {\n  prefix: 'fas',\n  iconName: 'sack-xmark',\n  icon: [512, 512, [], \"e56a\", \"M328 112l-144 0-37.3-74.5c-1.8-3.6-2.7-7.6-2.7-11.6 0-14.3 11.6-25.9 25.9-25.9L342.1 0c14.3 0 25.9 11.6 25.9 25.9 0 4-.9 8-2.7 11.6L328 112zM169.6 160l172.8 0 48.7 40.6C457.6 256 496 338 496 424.5 496 472.8 456.8 512 408.5 512l-305.1 0C55.2 512 16 472.8 16 424.5 16 338 54.4 256 120.9 200.6L169.6 160zM323.9 284.1c-9.4-9.4-24.6-9.4-33.9 0l-33.9 33.9-33.9-33.9c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l33.9 33.9-33.9 33.9c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l33.9-33.9 33.9 33.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-33.9-33.9 33.9-33.9c9.4-9.4 9.4-24.6 0-33.9z\"]\n};\nvar faHashtag = {\n  prefix: 'fas',\n  iconName: 'hashtag',\n  icon: [512, 512, [62098], \"23\", \"M214.7 .7c17.3 3.7 28.3 20.7 24.6 38l-19.1 89.3 126.5 0 22-102.7C372.4 8 389.4-3 406.7 .7s28.3 20.7 24.6 38L412.2 128 480 128c17.7 0 32 14.3 32 32s-14.3 32-32 32l-81.6 0-27.4 128 67.8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-81.6 0-22 102.7c-3.7 17.3-20.7 28.3-38 24.6s-28.3-20.7-24.6-38l19.1-89.3-126.5 0-22 102.7c-3.7 17.3-20.7 28.3-38 24.6s-28.3-20.7-24.6-38L99.8 384 32 384c-17.7 0-32-14.3-32-32s14.3-32 32-32l81.6 0 27.4-128-67.8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l81.6 0 22-102.7C180.4 8 197.4-3 214.7 .7zM206.4 192l-27.4 128 126.5 0 27.4-128-126.5 0z\"]\n};\nvar faTrain = {\n  prefix: 'fas',\n  iconName: 'train',\n  icon: [384, 512, [128646], \"f238\", \"M0 96C0 43 43 0 96 0L288 0c53 0 96 43 96 96l0 256c0 40.1-24.6 74.5-59.5 88.8l53.9 63.7c8.6 10.1 7.3 25.3-2.8 33.8s-25.3 7.3-33.8-2.8l-74-87.5-151.3 0-74 87.5c-8.6 10.1-23.7 11.4-33.8 2.8s-11.4-23.7-2.8-33.8l53.9-63.7C24.6 426.5 0 392.1 0 352L0 96zm64 32l0 96c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32L96 96c-17.7 0-32 14.3-32 32zM192 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faGamepad = {\n  prefix: 'fas',\n  iconName: 'gamepad',\n  icon: [640, 512, [], \"f11b\", \"M448 64c106 0 192 86 192 192S554 448 448 448l-256 0C86 448 0 362 0 256S86 64 192 64l256 0zM192 176c-13.3 0-24 10.7-24 24l0 32-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-32c0-13.3-10.7-24-24-24zm240 96a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm64-96a32 32 0 1 0 0 64 32 32 0 1 0 0-64z\"]\n};\nvar faFileExport = {\n  prefix: 'fas',\n  iconName: 'file-export',\n  icon: [576, 512, [\"arrow-right-from-file\"], \"f56e\", \"M96.5 0c-35.3 0-64 28.7-64 64l0 384c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-96 78.1 0-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9l-72-72c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-78.1 0 0-133.5c0-17-6.7-33.3-18.7-45.3L291.2 18.7C279.2 6.7 263 0 246 0L96.5 0zM358 176l-93.5 0c-13.3 0-24-10.7-24-24L240.5 58.5 358 176zM224.5 328c0-13.3 10.7-24 24-24l104 0 0 48-104 0c-13.3 0-24-10.7-24-24z\"]\n};\nvar faArrowRightFromFile = faFileExport;\nvar faFaceGrimace = {\n  prefix: 'fas',\n  iconName: 'face-grimace',\n  icon: [512, 512, [128556, \"grimace\"], \"f57f\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM400 352c0 25.2-19.4 45.8-44 47.8l0-95.7c24.6 2 44 22.7 44 47.8zM276 304l40 0 0 96-40 0 0-96zm-80 96l0-96 40 0 0 96-40 0zm-40-95.8l0 95.7c-24.6-2-44-22.7-44-47.8s19.4-45.8 44-47.8zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faGrimace = faFaceGrimace;\nvar faTrainSubway = {\n  prefix: 'fas',\n  iconName: 'train-subway',\n  icon: [384, 512, [\"subway\"], \"f239\", \"M0 96C0 43 43 0 96 0L288 0c53 0 96 43 96 96l0 256c0 40.1-24.6 74.5-59.5 88.8l53.9 63.7c8.6 10.1 7.3 25.3-2.8 33.8s-25.3 7.3-33.8-2.8l-74-87.5-151.3 0-74 87.5c-8.6 10.1-23.7 11.4-33.8 2.8s-11.4-23.7-2.8-33.8l53.9-63.7C24.6 426.5 0 392.1 0 352L0 96zm64 32l0 96c0 17.7 14.3 32 32 32l72 0 0-160-72 0c-17.7 0-32 14.3-32 32zM216 256l72 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-72 0 0 160zM96 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm224-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"]\n};\nvar faSubway = faTrainSubway;\nvar faCircleDot = {\n  prefix: 'fas',\n  iconName: 'circle-dot',\n  icon: [512, 512, [128280, \"dot-circle\"], \"f192\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm0-352a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"]\n};\nvar faDotCircle = faCircleDot;\nvar faObjectGroup = {\n  prefix: 'fas',\n  iconName: 'object-group',\n  icon: [576, 512, [], \"f247\", \"M32 119.4C12.9 108.4 0 87.7 0 64 0 28.7 28.7 0 64 0 87.7 0 108.4 12.9 119.4 32l337.1 0c11.1-19.1 31.7-32 55.4-32 35.3 0 64 28.7 64 64 0 23.7-12.9 44.4-32 55.4l0 273.1c19.1 11.1 32 31.7 32 55.4 0 35.3-28.7 64-64 64-23.7 0-44.4-12.9-55.4-32l-337.1 0c-11.1 19.1-31.7 32-55.4 32-35.3 0-64-28.7-64-64 0-23.7 12.9-44.4 32-55.4l0-273.1zm448 0c-9.7-5.6-17.8-13.7-23.4-23.4L119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4l0 273.1c9.7 5.6 17.8 13.7 23.4 23.4l337.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-273.1zM144 176c0-17.7 14.3-32 32-32l112 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-112 0c-17.7 0-32-14.3-32-32l0-64zM256 320l32 0c44.2 0 80-35.8 80-80l32 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-112 0c-17.7 0-32-14.3-32-32l0-16z\"]\n};\nvar faShip = {\n  prefix: 'fas',\n  iconName: 'ship',\n  icon: [640, 512, [128674], \"f21a\", \"M272 0c-26.5 0-48 21.5-48 48l0 16-16 0c-44.2 0-80 35.8-80 80l0 108.8-21.6 8.6c-14.8 5.9-22.5 22.4-17.4 37.5 10.4 31.3 26.8 59.3 47.7 83.1 20.1-9.2 41.7-13.9 63.3-14 33.1-.2 66.3 10.2 94.4 31.4l1.6 1.2 0-215-104 41.6 0-83.2c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16l0 83.2-104-41.6 0 215 1.6-1.2c27.5-20.7 59.9-31.2 92.4-31.4 22.3-.1 44.6 4.5 65.3 14 20.9-23.7 37.3-51.8 47.7-83.1 5-15.2-2.6-31.6-17.4-37.5L512 252.8 512 144c0-44.2-35.8-80-80-80l-16 0 0-16c0-26.5-21.5-48-48-48L272 0zM403.4 476.1c21.3-16.1 49.9-16.1 71.2 0 19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7S7 482.3 17.6 490.3c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9z\"]\n};\nvar faC = {\n  prefix: 'fas',\n  iconName: 'c',\n  icon: [384, 512, [99], \"43\", \"M329.1 142.9c-62.5-62.5-155.8-62.5-218.3 0s-62.5 163.8 0 226.3 155.8 62.5 218.3 0c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-87.5 87.5-221.3 87.5-308.8 0s-87.5-229.3 0-316.8 221.3-87.5 308.8 0c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0z\"]\n};\nvar faSquarePhone = {\n  prefix: 'fas',\n  iconName: 'square-phone',\n  icon: [448, 512, [\"phone-square\"], \"f098\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm88 96.7c9.8-2.7 20.1 2.4 24 11.8l20.3 48.7c3.4 8.3 1.1 17.8-5.9 23.5l-22.1 18c16.2 35.8 44.5 65 79.6 82.4l19.3-23.6c5.7-6.9 15.2-9.3 23.5-5.9l48.7 20.3c9.4 3.9 14.4 14.2 11.8 24l-.8 2.8c-8.8 32.3-40.1 59.9-78.2 51.8-87.5-18.5-156.3-87.4-174.9-174.9-8.1-38.1 19.5-69.4 51.8-78.2l2.8-.8z\"]\n};\nvar faPhoneSquare = faSquarePhone;\nvar faRulerCombined = {\n  prefix: 'fas',\n  iconName: 'ruler-combined',\n  icon: [448, 512, [], \"f546\", \"M1 441.7C5.5 463.5 24.8 480 48 480l352 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-48 0 0 72c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-72-64 0 0 72c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-72-72 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0 0-64-72 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0 0-48c0-26.5-21.5-48-48-48L48 32C21.5 32 0 53.5 0 80L0 432c0 3.3 .3 6.6 1 9.7z\"]\n};\nvar faArrowsRotate = {\n  prefix: 'fas',\n  iconName: 'arrows-rotate',\n  icon: [512, 512, [128472, \"refresh\", \"sync\"], \"f021\", \"M65.9 228.5c13.3-93 93.4-164.5 190.1-164.5 53 0 101 21.5 135.8 56.2 .2 .2 .4 .4 .6 .6l7.6 7.2-47.9 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 53.4-11.3-10.7C390.5 28.6 326.5 0 256 0 127 0 20.3 95.4 2.6 219.5 .1 237 12.2 253.2 29.7 255.7s33.7-9.7 36.2-27.1zm443.5 64c2.5-17.5-9.7-33.7-27.1-36.2s-33.7 9.7-36.2 27.1c-13.3 93-93.4 164.5-190.1 164.5-53 0-101-21.5-135.8-56.2-.2-.2-.4-.4-.6-.6l-7.6-7.2 47.9 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 320c-8.5 0-16.7 3.4-22.7 9.5S-.1 343.7 0 352.3l1 127c.1 17.7 14.6 31.9 32.3 31.7S65.2 496.4 65 478.7l-.4-51.5 10.7 10.1c46.3 46.1 110.2 74.7 180.7 74.7 129 0 235.7-95.4 253.4-219.5z\"]\n};\nvar faRefresh = faArrowsRotate;\nvar faSync = faArrowsRotate;\nvar faPersonDress = {\n  prefix: 'fas',\n  iconName: 'person-dress',\n  icon: [384, 512, [\"female\"], \"f182\", \"M136 24a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM112 384l-25.8 0c-10.9 0-18.6-10.7-15.2-21.1l43-129-48.3 65.1c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95C110 132 149.7 112 192 112s82 20 107.2 53.9l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6L270 234 313 362.9c3.5 10.4-4.3 21.1-15.2 21.1l-25.8 0 0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-32 0 0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128z\"]\n};\nvar faFemale = faPersonDress;\nvar faBookOpen = {\n  prefix: 'fas',\n  iconName: 'book-open',\n  icon: [512, 512, [128214, 128366], \"f518\", \"M256 141.3l0 309.3 .5-.2C311.1 427.7 369.7 416 428.8 416l19.2 0 0-320-19.2 0c-42.2 0-84.1 8.4-123.1 24.6-16.8 7-33.4 13.9-49.7 20.7zM230.9 61.5L256 72 281.1 61.5C327.9 42 378.1 32 428.8 32L464 32c26.5 0 48 21.5 48 48l0 352c0 26.5-21.5 48-48 48l-35.2 0c-50.7 0-100.9 10-147.7 29.5l-12.8 5.3c-7.9 3.3-16.7 3.3-24.6 0l-12.8-5.3C184.1 490 133.9 480 83.2 480L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l35.2 0c50.7 0 100.9 10 147.7 29.5z\"]\n};\nvar faFolderTree = {\n  prefix: 'fas',\n  iconName: 'folder-tree',\n  icon: [576, 512, [], \"f802\", \"M48 24C48 10.7 37.3 0 24 0S0 10.7 0 24L0 392c0 30.9 25.1 56 56 56l184 0 0-48-184 0c-4.4 0-8-3.6-8-8l0-232 192 0 0-48-192 0 0-88zM336 224l192 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-82.7 0c-8.5 0-16.6-3.4-22.6-9.4l-8.6-8.6c-9-9-21.2-14.1-33.9-14.1L336 0c-26.5 0-48 21.5-48 48l0 128c0 26.5 21.5 48 48 48zm0 288l192 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-82.7 0c-8.5 0-16.6-3.4-22.6-9.4l-8.6-8.6c-9-9-21.2-14.1-33.9-14.1L336 288c-26.5 0-48 21.5-48 48l0 128c0 26.5 21.5 48 48 48z\"]\n};\nvar faVirgo = {\n  prefix: 'fas',\n  iconName: 'virgo',\n  icon: [640, 512, [], \"e850\", \"M368 32c61.9 0 112 50.1 112 112l0 26.8c14.5-6.9 30.8-10.8 48-10.8 61.9 0 112 50.1 112 112S589.9 384 528 384l-48 0 0 32c0 16.6 12.6 30.2 28.7 31.8l6.6 .3c16.1 1.6 28.7 15.3 28.7 31.8 0 17.7-14.3 32-32 32-53 0-96-43-96-96l0-32-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-176c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 304c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-304c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 304c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-320c0-16.6-12.6-30.2-28.7-31.8l-6.6-.3C44.6 94.2 32 80.6 32 64 32 46.3 46.3 32 64 32 91 32 115.3 43.1 132.7 61 152.6 43 179 32 208 32 239.3 32 267.7 44.9 288 65.7 308.3 44.9 336.6 32 368 32zM528 224c-26.5 0-48 21.5-48 48l0 48 48 0c26.5 0 48-21.5 48-48s-21.5-48-48-48z\"]\n};\nvar faBoxArchive = {\n  prefix: 'fas',\n  iconName: 'box-archive',\n  icon: [512, 512, [\"archive\"], \"f187\", \"M0 64C0 46.3 14.3 32 32 32l448 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96L0 64zM32 176l448 0 0 240c0 35.3-28.7 64-64 64L96 480c-35.3 0-64-28.7-64-64l0-240zm152 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nvar faArchive = faBoxArchive;\nvar faTentArrowDownToLine = {\n  prefix: 'fas',\n  iconName: 'tent-arrow-down-to-line',\n  icon: [576, 512, [], \"e57e\", \"M185 121c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-31 31 0-102.1C120 2.7 109.3-8 96-8S72 2.7 72 16l0 102.1-31-31C31.6 77.7 16.4 77.7 7 87S-2.3 111.6 7 121l72 72c9.4 9.4 24.6 9.4 33.9 0l72-72zM155.8 260.6L132.1 448 32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32 0-2.8-.4-5.5-1-8L548.2 260.7c-1.2-9.7-6.9-18.4-15.3-23.4L367.4 137.9c-10.2-6.1-22.9-6.1-33.1 .1L170.9 237.3c-8.3 5.1-13.9 13.7-15.1 23.3zM448 448l-97.1 0 0-149.4c0-5.9 4.7-10.6 10.6-10.6 4 0 7.7 2.3 9.5 5.9L448 448z\"]\n};\nvar faQrcode = {\n  prefix: 'fas',\n  iconName: 'qrcode',\n  icon: [448, 512, [], \"f029\", \"M64 160l64 0 0-64-64 0 0 64zM0 80C0 53.5 21.5 32 48 32l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48L0 80zM64 416l64 0 0-64-64 0 0 64zM0 336c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96zM320 96l0 64 64 0 0-64-64 0zM304 32l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48zM288 352a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm96 32c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm32-96a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm-32 32a32 32 0 1 1 -64 0 32 32 0 1 1 64 0z\"]\n};\nvar faDragon = {\n  prefix: 'fas',\n  iconName: 'dragon',\n  icon: [640, 512, [128009], \"f6d5\", \"M352 124.5l-51.9-13c-6.5-1.6-11.3-7.1-12-13.8s2.8-13.1 8.7-16.1l40.8-20.4-43.3-32.5c-5.5-4.1-7.8-11.3-5.6-17.9S297.1 0 304 0L464 0c30.2 0 58.7 14.2 76.8 38.4l57.6 76.8c6.2 8.3 9.6 18.4 9.6 28.8 0 26.5-21.5 48-48 48l-21.5 0c-17 0-33.3-6.7-45.3-18.7l-13.3-13.3-32 0 0 21.5c0 24.8 12.8 47.9 33.8 61.1l106.6 66.6c32.1 20.1 51.6 55.2 51.6 93.1 0 60.6-49.1 109.8-109.8 109.8L32.3 512c-3.3 0-6.6-.4-9.6-1.4-9.2-2.8-16.7-9.6-20.4-18.6-1.3-3.3-2.2-6.9-2.3-10.7-.2-3.7 .3-7.3 1.3-10.7 2.8-9.2 9.6-16.7 18.6-20.4 3-1.2 6.2-2 9.5-2.2L433.3 412c8.3-.7 14.7-7.7 14.7-16.1 0-4.3-1.7-8.4-4.7-11.4l-44.4-44.4c-30-30-46.9-70.7-46.9-113.1l0-102.5zM512 72.3c0-.1 0-.2 0-.3s0-.2 0-.3l0 .6zm-1.3 7.4L464.3 68.1c-.2 1.3-.3 2.6-.3 3.9 0 13.3 10.7 24 24 24 10.6 0 19.5-6.8 22.7-16.3zM130.9 116.5c16.3-14.5 40.4-16.2 58.5-4.1l130.6 87 0 27.5c0 32.8 8.4 64.8 24 93l-232 0c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7L171 232.3 18.4 255.8c-7 1.1-13.9-2.6-16.9-9S.1 232.8 5.4 228L130.9 116.5z\"]\n};\nvar faHourglassEnd = {\n  prefix: 'fas',\n  iconName: 'hourglass-end',\n  icon: [384, 512, [8987, \"hourglass-3\"], \"f253\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1l67.9 67.9-67.9 67.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1l-67.9-67.9 67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32S369.7 0 352 0L32 0zM96 75l0-11 192 0 0 11c0 25.5-10.1 49.9-28.1 67.9l-67.9 67.9-67.9-67.9C106.1 124.9 96 100.4 96 75z\"]\n};\nvar faHourglass3 = faHourglassEnd;\nvar faGrip = {\n  prefix: 'fas',\n  iconName: 'grip',\n  icon: [512, 512, [58119, \"grid-horizontal\", \"grip-horizontal\"], \"f58d\", \"M88 96c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0zM280 224l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40zm192 0l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40zm0 192l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40zM280 288c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0zM88 416l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40z\"]\n};\nvar faGridHorizontal = faGrip;\nvar faGripHorizontal = faGrip;\nvar faBorderTopLeft = {\n  prefix: 'fas',\n  iconName: 'border-top-left',\n  icon: [448, 512, [\"border-style\"], \"f853\", \"M0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-352 352 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32C28.7 32 0 60.7 0 96L0 448zm128 0c0 17.7 14.3 32 32 32s32-14.3 32-32-14.3-32-32-32-32 14.3-32 32zm128 0c0 17.7 14.3 32 32 32s32-14.3 32-32-14.3-32-32-32-32 14.3-32 32zm160 32c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zM384 192a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zm32 160a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faBorderStyle = faBorderTopLeft;\nvar faListUl = {\n  prefix: 'fas',\n  iconName: 'list-ul',\n  icon: [512, 512, [\"list-dots\"], \"f0ca\", \"M48 144a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM48 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM96 256a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"]\n};\nvar faListDots = faListUl;\nvar faPeopleRobbery = {\n  prefix: 'fas',\n  iconName: 'people-robbery',\n  icon: [576, 512, [], \"e536\", \"M488.2 59.1C478.1 99.6 441.7 128 400 128s-78.1-28.4-88.2-68.9L303 24.2C298.8 7.1 281.4-3.3 264.2 1S236.7 22.6 241 39.8l8.7 34.9c11 44 40.2 79.6 78.3 99.6L328 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-305.7c38.1-20 67.3-55.6 78.3-99.6L559 39.8c4.3-17.1-6.1-34.5-23.3-38.8S501.2 7.1 497 24.2l-8.7 34.9zM400 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM80 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 32c-35.3 0-64 28.7-64 64l0 96 0 .6 0 191.4c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-227.3 13 20.5c5.9 9.2 16.1 14.9 27 14.9l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-30.4 0-37.4-58.9C157.6 142 132.1 128 104.7 128L72 128z\"]\n};\nvar faMobileButton = {\n  prefix: 'fas',\n  iconName: 'mobile-button',\n  icon: [384, 512, [], \"f10b\", \"M80 0C44.7 0 16 28.7 16 64l0 384c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L80 0zM192 464c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"]\n};\nvar faArrowDownAZ = {\n  prefix: 'fas',\n  iconName: 'arrow-down-a-z',\n  icon: [512, 512, [\"sort-alpha-asc\", \"sort-alpha-down\"], \"f15d\", \"M230.6 390.6l-80 80c-12.5 12.5-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 25.4-25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm182-340.9c50.7 101.3 77.3 154.7 80 160 7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3l-7.2-14.3-88.4 0-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9c2.7-5.3 29.3-58.7 80-160 5.4-10.8 16.5-17.7 28.6-17.7s23.2 6.8 28.6 17.7zM384 135.6l-20.2 40.4 40.4 0-20.2-40.4zM288 320c0-17.7 14.3-32 32-32l128 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L397.3 416 448 416c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9l73.4-73.4-50.7 0c-17.7 0-32-14.3-32-32z\"]\n};\nvar faSortAlphaAsc = faArrowDownAZ;\nvar faSortAlphaDown = faArrowDownAZ;\nvar faMoneyBill = {\n  prefix: 'fas',\n  iconName: 'money-bill',\n  icon: [512, 512, [], \"f0d6\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm192 96a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm192 24c0 4.4-3.6 8.1-8 7.5-29-3.6-51.9-26.6-55.5-55.5-.5-4.4 3.1-8 7.5-8l48 0c4.4 0 8 3.6 8 8l0 48zM64 328c0-4.4 3.6-8.1 8-7.5 29 3.6 51.9 26.6 55.5 55.5 .5 4.4-3.1 8-7.5 8l-48 0c-4.4 0-8-3.6-8-8l0-48zm8-136.5c-4.4 .5-8-3.1-8-7.5l0-48c0-4.4 3.6-8 8-8l48 0c4.4 0 8.1 3.6 7.5 8-3.6 29-26.6 51.9-55.5 55.5zm368 129c4.4-.5 8 3.1 8 7.5l0 48c0 4.4-3.6 8-8 8l-48 0c-4.4 0-8.1-3.6-7.5-8 3.6-29 26.6-51.9 55.5-55.5z\"]\n};\nvar faCircleMinus = {\n  prefix: 'fas',\n  iconName: 'circle-minus',\n  icon: [512, 512, [\"minus-circle\"], \"f056\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM168 232l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faMinusCircle = faCircleMinus;\nvar faArrowPointer = {\n  prefix: 'fas',\n  iconName: 'arrow-pointer',\n  icon: [448, 512, [\"mouse-pointer\"], \"f245\", \"M77.3 2.5c8.1-4.1 17.9-3.2 25.1 2.3l320 239.9c8.3 6.2 11.6 17 8.4 26.8s-12.4 16.4-22.8 16.4l-152.3 0 88.9 177.7c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3l-88.9-177.7-91.3 121.8c-6.2 8.3-17 11.6-26.8 8.4S64 434.3 64 424L64 24c0-9.1 5.1-17.4 13.3-21.5z\"]\n};\nvar faMousePointer = faArrowPointer;\nvar faSquareShareNodes = {\n  prefix: 'fas',\n  iconName: 'square-share-nodes',\n  icon: [448, 512, [\"share-alt-square\"], \"f1e1\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM368 160c0 35.3-28.7 64-64 64-15.4 0-29.5-5.4-40.6-14.5l-85.3 46.5 85.3 46.5c11-9.1 25.2-14.5 40.6-14.5 35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64c0-2.5 .1-4.9 .4-7.3L158.5 300c-11.7 12.3-28.2 20-46.5 20-35.3 0-64-28.7-64-64s28.7-64 64-64c18.3 0 34.8 7.7 46.5 20l81.9-44.7c-.3-2.4-.4-4.9-.4-7.3 0-35.3 28.7-64 64-64s64 28.7 64 64z\"]\n};\nvar faShareAltSquare = faSquareShareNodes;\nvar faTableCellsLarge = {\n  prefix: 'fas',\n  iconName: 'table-cells-large',\n  icon: [448, 512, [\"th-large\"], \"f009\", \"M384 96l-128 0 0 128 128 0 0-128zm64 128l0 192c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 128zM64 288l0 128 128 0 0-128-128 0zm128-64l0-128-128 0 0 128 128 0zm64 64l0 128 128 0 0-128-128 0z\"]\n};\nvar faThLarge = faTableCellsLarge;\nvar faCat = {\n  prefix: 'fas',\n  iconName: 'cat',\n  icon: [576, 512, [128008], \"f6be\", \"M64 96c53 0 96 43 96 96l0 85.8c29.7-44.7 77.8-76.2 133.4-84 25.6 60 85.2 102.1 154.6 102.1 10.9 0 21.6-1.1 32-3.1L480 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-140.8-136 108.8 56 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-144 0c-53 0-96-43-96-96l0-224c0-16.6-12.6-30.2-28.7-31.8l-6.6-.3C44.6 158.2 32 144.6 32 128 32 110.3 46.3 96 64 96zM533.8 3.2C544.2-5.5 560 1.9 560 15.5L560 128c0 61.9-50.1 112-112 112S336 189.9 336 128l0-112.5c0-13.6 15.8-21 26.2-12.3L416 48 480 48 533.8 3.2zM400 108a20 20 0 1 0 0 40 20 20 0 1 0 0-40zm96 0a20 20 0 1 0 0 40 20 20 0 1 0 0-40z\"]\n};\nvar faCalendarWeek = {\n  prefix: 'fas',\n  iconName: 'calendar-week',\n  icon: [448, 512, [], \"f784\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zm0 256c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-192 0z\"]\n};\nvar faCodeCompare = {\n  prefix: 'fas',\n  iconName: 'code-compare',\n  icon: [512, 512, [], \"e13a\", \"M198.8 1.8c9-3.7 19.3-1.7 26.2 5.2l56 56c9.4 9.4 9.4 24.6 0 33.9l-56 56c-6.9 6.9-17.2 8.9-26.2 5.2S184 145.7 184 136l0-24-24 0c-17.7 0-32 14.3-32 32l0 214.7c28.3 12.3 48 40.5 48 73.3 0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3L64 144c0-53 43-96 96-96l24 0 0-24c0-9.7 5.8-18.5 14.8-22.2zM392 80a24 24 0 1 0 48 0 24 24 0 1 0 -48 0zm-8 73.3c-28.3-12.3-48-40.5-48-73.3 0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3L448 368c0 53-43 96-96 96l-24 0 0 24c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-56-56c-9.4-9.4-9.4-24.6 0-33.9l56-56c6.9-6.9 17.2-8.9 26.2-5.2S328 366.3 328 376l0 24 24 0c17.7 0 32-14.3 32-32l0-214.7zM72 432a24 24 0 1 0 48 0 24 24 0 1 0 -48 0z\"]\n};\nvar faLeo = {\n  prefix: 'fas',\n  iconName: 'leo',\n  icon: [512, 512, [], \"e84a\", \"M260 0c72.9 0 132 59.1 132 132l0 5.4-.1 1.4-23.8 270c.4 21.7 18.2 39.2 40 39.2 22.1 0 40-17.9 40-40l0-40c0-17.7 14.3-32 32-32s32 14.3 32 32l0 40c0 57.4-46.6 104-104 104S304 465.4 304 408l0-1.4 .1-1.4 23.9-270.6 0-2.6c0-37.6-30.4-68-68-68s-68 30.4-68 68l0 4c0 3.7 .3 7.3 .8 11l29.7 193.4c.9 6.1 1.4 12.2 1.4 18.4l0 9.2c0 61.9-50.1 112-112 112S0 429.9 0 368 50.1 256 112 256c11.7 0 23 1.8 33.7 5.1L129.6 156.7c-1.1-6.8-1.6-13.8-1.6-20.7l0-4C128 59.1 187.1 0 260 0zM112 320a48 48 0 1 0 0 96 48 48 0 1 0 0-96z\"]\n};\nvar faRoadCircleXmark = {\n  prefix: 'fas',\n  iconName: 'road-circle-xmark',\n  icon: [640, 512, [], \"e566\", \"M287.9 32l-76.2 0c-29.4 0-55.1 20.1-62.1 48.6L65.4 420.5C57.9 450.7 80.8 480 112 480l209.4 0c-11.2-24.4-17.4-51.4-17.4-80 0-28.6 6.2-55.7 17.4-80-.5 0-1 0-1.6 0-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 49.2c35.2-40 86.7-65.2 144.2-65.2 9 0 17.8 .6 26.4 1.8l-32-129.2C483.4 52.1 457.8 32 428.3 32l-76.5 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faPallet = {\n  prefix: 'fas',\n  iconName: 'pallet',\n  icon: [576, 512, [], \"f482\", \"M32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 64-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-64 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 320zm96 64l128 0 0 64-128 0 0-64zm192 0l128 0 0 64-128 0 0-64z\"]\n};\nvar faCakeCandles = {\n  prefix: 'fas',\n  iconName: 'cake-candles',\n  icon: [448, 512, [127874, \"birthday-cake\", \"cake\"], \"f1fd\", \"M86.4-10.5L61.8 31.6C58 38.1 56 45.6 56 53.2L56 56c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L105.6-10.5c-2-3.4-5.7-5.5-9.6-5.5s-7.6 2.1-9.6 5.5zm128 0L189.8 31.6c-3.8 6.5-5.8 14-5.8 21.6l0 2.8c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L233.6-10.5c-2-3.4-5.7-5.5-9.6-5.5s-7.6 2.1-9.6 5.5zM317.8 31.6c-3.8 6.5-5.8 14-5.8 21.6l0 2.8c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L361.6-10.5c-2-3.4-5.7-5.5-9.6-5.5s-7.6 2.1-9.6 5.5L317.8 31.6zM128 160c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 53.5C26.7 226.6 0 262.2 0 304l0 20.8c20.9 1.3 41.6 7.3 60.3 18l7.1 4.1c26.3 15 58.9 13.4 83.6-4.2 43.7-31.2 102.3-31.2 146 0 24.6 17.6 57.3 19.3 83.6 4.2l7.1-4.1c18.7-10.7 39.3-16.7 60.3-18l0-20.8c0-41.8-26.7-77.4-64-90.5l0-53.5c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48-64 0 0-48c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48-64 0 0-48zM448 373c-12.7 1.2-25.1 5-36.5 11.5l-7.1 4.1c-42.6 24.3-95.4 21.7-135.3-6.8-27-19.3-63.2-19.3-90.2 0-39.9 28.5-92.7 31.2-135.3 6.8l-7.1-4.1C25.1 378 12.7 374.1 0 373l0 75c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-75z\"]\n};\nvar faBirthdayCake = faCakeCandles;\nvar faCake = faCakeCandles;\nvar faBugSlash = {\n  prefix: 'fas',\n  iconName: 'bug-slash',\n  icon: [576, 512, [], \"e490\", \"M7-24.9c9.4-9.4 24.6-9.4 33.9 0L241.8 176 344 176c14.2 0 27.7 2.8 40 8l108.8-81.6c14.1-10.6 34.2-7.7 44.8 6.4s7.7 34.2-6.4 44.8l-97.8 73.3c5.3 8.9 9.3 18.7 11.8 29.1l98.8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 32c0 9.5-.8 18.7-2.4 27.8L569 503.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 9.1C-2.3-.3-2.3-15.5 7-24.9zM398.2 468c-23.2 22.1-53 37.2-86.2 42.2l0-128.4 86.2 86.2zM264 333.8l0 176.4c-51.2-7.7-94.5-39.7-117.7-83.9L83.2 473.6c-14.1 10.6-34.2 7.7-44.8-6.4s-7.7-34.2 6.4-44.8l83.4-62.5c-.1-2.6-.2-5.2-.2-7.9l0-32-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l98.8 0c3.3-13.9 9.3-26.7 17.6-37.8L264 333.8zM355.6 128l-82.4 0-72.3-72.3C216.1 22.8 249.4 0 288 0 341 0 384 43 384 96l0 3.6c0 15.7-12.7 28.4-28.4 28.4z\"]\n};\nvar faTarp = {\n  prefix: 'fas',\n  iconName: 'tarp',\n  icon: [512, 512, [], \"e57b\", \"M448 64c35.3 0 64 28.7 64 64l0 149.5c0 17-6.7 33.3-18.7 45.3L386.7 429.3c-12 12-28.3 18.7-45.3 18.7L64 448c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l384 0zm5.5 208L360 272c-13.3 0-24 10.7-24 24l0 93.5 117.5-117.5zM96 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"]\n};\nvar faDiagramPredecessor = {\n  prefix: 'fas',\n  iconName: 'diagram-predecessor',\n  icon: [448, 512, [], \"e477\", \"M289.2 137.9c2.5-6 8.3-9.9 14.8-9.9l40 0 0-24c0-13.3-10.7-24-24-24l-98 0c1.3 5.1 2 10.5 2 16l0 64c0 35.3-28.7 64-64 64l-96 0c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l256 0c39.8 0 72 32.2 72 72l0 24 40 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-64 64c-6.2 6.2-16.4 6.2-22.6 0l-64-64c-4.6-4.6-5.9-11.5-3.5-17.4zM384 352l-320 0 0 64 320 0 0-64zm64 64c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l320 0c35.3 0 64 28.7 64 64l0 64z\"]\n};\nvar faFaceFlushed = {\n  prefix: 'fas',\n  iconName: 'face-flushed',\n  icon: [512, 512, [128563, \"flushed\"], \"f579\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM168 392c0 13.3 10.7 24 24 24l128 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-128 0c-13.3 0-24 10.7-24 24zm-8-96a72 72 0 1 0 0-144 72 72 0 1 0 0 144zm264-72a72 72 0 1 0 -144 0 72 72 0 1 0 144 0zm-288 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm192 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"]\n};\nvar faFlushed = faFaceFlushed;\nvar faDiagramNext = {\n  prefix: 'fas',\n  iconName: 'diagram-next',\n  icon: [448, 512, [], \"e476\", \"M384 224c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l128 0 0 64-32 0c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l64 64c6.2 6.2 16.4 6.2 22.6 0l64-64c4.6-4.6 5.9-11.5 3.5-17.4S294.5 288 288 288l-32 0 0-64 128 0zM64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64l-34 0c5.6 21.7-.5 45.1-16.7 61.3l-64 64c-25 25-65.5 25-90.5 0l-64-64C98.6 333.1 92.4 309.7 98 288l-34 0z\"]\n};\nvar faAnchorCircleXmark = {\n  prefix: 'fas',\n  iconName: 'anchor-circle-xmark',\n  icon: [640, 512, [], \"e4ac\", \"M320.5 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-32-96c-53 0-96 43-96 96 0 41.8 26.7 77.4 64 90.5l0 257.9c-62.9-14.3-110.2-69.7-111.9-136.5l16.1 14.1c10 8.7 25.1 7.7 33.9-2.3s7.7-25.1-2.3-33.9l-64-56c-9-7.9-22.6-7.9-31.6 0l-64 56c-10 8.7-11 23.9-2.3 33.9s23.9 11 33.9 2.3l16.2-14.2c2.1 113.1 94.4 204.1 208 204.1 16.6 0 32.7-1.9 48.2-5.6-20.3-30.5-32.2-67-32.2-106.4 0-27.3 5.7-53.3 16-76.9l0-136.6c37.3-13.2 64-48.7 64-90.5 0-53-43-96-96-96zm208 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"]\n};\nvar faPersonCircleXmark = {\n  prefix: 'fas',\n  iconName: 'person-circle-xmark',\n  icon: [640, 512, [], \"e543\", \"M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm22.6-144l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L518.6 400z\"]\n};\nvar faSpa = {\n  prefix: 'fas',\n  iconName: 'spa',\n  icon: [576, 512, [\"lotus\"], \"f5bb\", \"M169.7 227.5c34.3 18.7 64.5 44.1 88.8 74.5 11.1 13.9 21 28.9 29.4 44.8 8.5-15.9 18.3-30.8 29.4-44.8 24.3-30.5 54.5-55.9 88.8-74.5 41.7-22.7 89.4-35.5 139.7-35.5l9.9 0c11.1 0 20.1 9 20.1 20.1 0 148-119.9 267.9-267.9 267.9l-40.2 0C119.9 480 0 360.1 0 212.1 0 201 9 192 20.1 192l9.9 0c50.4 0 98.1 12.8 139.7 35.5zM303.9 38c16.9 15.9 61.4 63.4 89 142.3-40.1 20.2-75.8 48.2-104.9 82.1-29.2-33.9-64.8-61.8-104.9-82.1 27.6-78.9 72.2-126.4 89-142.3 4.3-4.1 10-6 15.9-6s11.6 2 15.9 6z\"]\n};\nvar faLotus = faSpa;\nvar faAries = {\n  prefix: 'fas',\n  iconName: 'aries',\n  icon: [512, 512, [], \"e846\", \"M401.6 0c61.3 0 110.4 50.3 110.4 111 0 29.4-11.6 57.9-32.6 78.8l-8.8 8.8c-12.5 12.5-32.8 12.5-45.2 0s-12.5-32.8 0-45.2l8.8-8.8c8.8-8.8 13.8-21 13.8-33.6 0-25.9-21.1-47-46.4-47-22.5 0-41.7 16.1-45.7 38.2L287.5 485.6c0 .1-.1 .3-.1 .4-.2 .8-.3 1.6-.5 2.3-.1 .3-.1 .5-.2 .7-.2 .6-.4 1.3-.7 1.9-.2 .5-.4 1-.6 1.5-.1 .3-.3 .6-.4 .9-1.6 3.5-3.8 6.5-6.4 9.2-2 2-4.2 3.7-6.6 5.1-.2 .1-.3 .2-.5 .3-.7 .4-1.4 .7-2.1 1-.3 .1-.6 .3-.9 .4-.5 .2-1 .4-1.5 .6-.6 .2-1.2 .5-1.9 .7-.2 .1-.5 .2-.7 .2-.8 .2-1.6 .4-2.3 .5-.2 0-.3 .1-.4 .1-.2 0-.4 0-.6 .1-.7 .1-1.3 .2-2 .2-.4 0-.8 .1-1.2 .1-.6 0-1.2 .1-1.8 .1-.6 0-1.2 0-1.8-.1-.4 0-.8-.1-1.2-.1-.7-.1-1.4-.1-2-.2-.2 0-.4 0-.6-.1-.2 0-.3-.1-.5-.1-.8-.2-1.6-.3-2.3-.5-.3-.1-.5-.1-.8-.2-.6-.2-1.3-.4-1.9-.7-.5-.2-1-.4-1.5-.6-.3-.1-.6-.3-.9-.4-.7-.3-1.4-.7-2.1-1-.2-.1-.3-.2-.5-.3-2.4-1.4-4.7-3.1-6.6-5.1-2.6-2.6-4.8-5.7-6.4-9.2-.1-.2-.2-.3-.2-.5l-.5-1.1c-.1-.3-.2-.5-.3-.8-.2-.6-.5-1.2-.7-1.9-.1-.2-.2-.5-.2-.7-.2-.8-.4-1.6-.5-2.3 0-.1-.1-.3-.1-.4L156 102.2c-4-22.1-23.2-38.2-45.7-38.2-25.3 0-46.4 21.1-46.4 47 0 12.6 5 24.8 13.8 33.6l8.8 8.8c12.5 12.5 12.5 32.8 0 45.2s-32.8 12.5-45.2 0l-8.8-8.8C11.6 168.9 0 140.3 0 111 0 50.3 49.1 0 110.4 0 163.8 0 209.6 38.3 219 91l37 207 37-207c9.4-52.6 55.2-91 108.7-91z\"]\n};\nvar faBarsProgress = {\n  prefix: 'fas',\n  iconName: 'bars-progress',\n  icon: [448, 512, [\"tasks-alt\"], \"f828\", \"M288 160l96 0 0-64-96 0 0 64zM0 160L0 80C0 53.5 21.5 32 48 32l352 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48L48 224c-26.5 0-48-21.5-48-48l0-16zM160 416l224 0 0-64-224 0 0 64zM0 416l0-80c0-26.5 21.5-48 48-48l352 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48l0-16z\"]\n};\nvar faTasksAlt = faBarsProgress;\nvar faHeartCircleCheck = {\n  prefix: 'fas',\n  iconName: 'heart-circle-check',\n  icon: [576, 512, [], \"e4fd\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM288 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm201.4-60.9c-7.1-5.2-17.2-3.6-22.4 3.5l-53 72.9-26.8-26.8c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.6s8.9-2.8 11.7-6.5l64-88c5.2-7.1 3.6-17.2-3.5-22.3z\"]\n};\nvar faMarsStrokeRight = {\n  prefix: 'fas',\n  iconName: 'mars-stroke-right',\n  icon: [640, 512, [9897, \"mars-stroke-h\"], \"f22b\", \"M320.5 256a112 112 0 1 0 -224 0 112 112 0 1 0 224 0zM208.5 80c86.3 0 158.1 62.1 173.1 144.1 1-.1 1.9-.1 2.9-.1l16 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 61.4 0-22.4-28c-11-13.8-8.8-33.9 5-45s33.9-8.8 45 5l64 80c9.3 11.7 9.3 28.3 0 40l-64 80c-11 13.8-31.2 16-45 5s-16-31.2-5-45l22.4-28-61.4 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-16 0c-1 0-1.9 0-2.9-.1-15 82-86.8 144.1-173.1 144.1-97.2 0-176-78.8-176-176s78.8-176 176-176z\"]\n};\nvar faMarsStrokeH = faMarsStrokeRight;\nvar faTowerObservation = {\n  prefix: 'fas',\n  iconName: 'tower-observation',\n  icon: [448, 512, [], \"e586\", \"M209.7 3.4c9-4.5 19.6-4.5 28.6 0l160 80c15.8 7.9 22.2 27.1 14.3 42.9-5.6 11.2-16.9 17.7-28.6 17.7l0 80c0 17.7-14.3 32-32 32l-13 0 32 192 45 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l45 0 32-192-13 0c-17.7 0-32-14.3-32-32l0-80c-11.7 0-23-6.5-28.6-17.7-7.9-15.8-1.5-35 14.3-42.9l160-80zM310.7 448l-86.7-61.9-86.7 61.9 173.4 0zm-153-192l-3.5 21.2 69.9 49.9 69.9-49.9-3.5-21.2-132.7 0zm-12.3 73.9l-10.1 60.6 47.5-33.9-37.4-26.7zm119.9 26.7l47.5 33.9-10.1-60.6-37.4 26.7zM152 128c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"]\n};\nvar faSterlingSign = {\n  prefix: 'fas',\n  iconName: 'sterling-sign',\n  icon: [384, 512, [163, \"gbp\", \"pound-sign\"], \"f154\", \"M91.3 288l-34.8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l21.4 0C37.3 147.3 105.1 42 207.6 42l8.2 0c33.6 0 66.2 11.3 92.5 32.2l16.1 12.7c13.9 11 16.2 31.1 5.2 45s-31.1 16.2-45 5.2l-16.1-12.7c-15-11.9-33.6-18.4-52.8-18.4l-8.2 0c-57.3 0-94.7 59.9-69.7 111.4 3.6 7.4 6.6 14.9 9.1 22.6l149.5 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-141.2 0c1 35.3-8.7 70.6-28.9 100.9l-18.1 27.1 212.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-272 0c-11.8 0-22.6-6.5-28.2-16.9s-5-23 1.6-32.9l51.2-76.8c13.1-19.6 19.2-42.6 18.2-65.4z\"]\n};\nvar faGbp = faSterlingSign;\nvar faPoundSign = faSterlingSign;\nvar faFaucetDrip = {\n  prefix: 'fas',\n  iconName: 'faucet-drip',\n  icon: [512, 512, [128688], \"e006\", \"M224 32c-17.7 0-32 14.3-32 32L96 64C78.3 64 64 78.3 64 96s14.3 32 32 32l96 0 0 64-18.7 0c-8.5 0-16.6 3.4-22.6 9.4L128 224 32 224c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l100.1 0c20.2 29 53.9 48 91.9 48s71.7-19 91.9-48l36.1 0c17.7 0 32 14.3 32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32 0-88.4-71.6-160-160-160l-32 0-22.6-22.6c-6-6-14.1-9.4-22.6-9.4l-18.7 0 0-64 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0c0-17.7-14.3-32-32-32zM436.8 455.4l-18.2 42.4c-1.8 4.1-2.7 8.6-2.7 13.1l0 1.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-1.2c0-4.5-.9-8.9-2.7-13.1l-18.2-42.4c-1.9-4.5-6.3-7.4-11.2-7.4s-9.2 2.9-11.2 7.4z\"]\n};\nvar faCircleInfo = {\n  prefix: 'fas',\n  iconName: 'circle-info',\n  icon: [512, 512, [\"info-circle\"], \"f05a\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM224 160a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-8 64l48 0c13.3 0 24 10.7 24 24l0 88 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-64-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faInfoCircle = faCircleInfo;\nvar faFeather = {\n  prefix: 'fas',\n  iconName: 'feather',\n  icon: [512, 512, [129718], \"f52d\", \"M352 0c41 0 80.3 16.3 109.2 45.2l5.5 5.5c29 29 45.3 68.3 45.3 109.2 0 24.1-5.7 47.6-16.2 68.8-1.9 3.7-5.3 6.5-9.3 7.7L374.5 270c-3.9 1.2-6.5 4.7-6.5 8.8 0 5.1 4.1 9.2 9.2 9.2l32.2 0c14.3 0 21.4 17.2 11.3 27.3l-22.4 22.4c-1.9 1.9-4.2 3.2-6.7 4l-81 24.3c-3.9 1.2-6.5 4.7-6.5 8.8 0 5.1 4.1 9.2 9.2 9.2 13.2 0 18.9 15.7 7.8 22.9-41.1 26.6-89.3 41.1-139 41.1l-86 0-48 48c-8.8 8.8-23.2 8.8-32 0s-8.8-23.2 0-32L256 224c8.8-8.8 8.8-23.2 0-32s-23.2-8.8-32 0L79.5 336.5c-5.7 5.7-15.5 1.7-15.5-6.4 0-67.9 27-133 75-181L242.8 45.2C271.7 16.3 311 0 352 0z\"]\n};\nvar faBowlRice = {\n  prefix: 'fas',\n  iconName: 'bowl-rice',\n  icon: [512, 512, [], \"e2eb\", \"M176 40c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm24 48l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM56 160l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM0 283.4C0 268.3 12.3 256 27.4 256l457.1 0c15.1 0 27.4 12.3 27.4 27.4 0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28l-231.5 0c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4zM224 184c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm-96 0c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zM104 88l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm216 96c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zM296 88l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm120 96c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zM392 88l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM296 16l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"]\n};\nvar faStarHalfStroke = {\n  prefix: 'fas',\n  iconName: 'star-half-stroke',\n  icon: [576, 512, [\"star-half-alt\"], \"f5c0\", \"M288.1 353.6c10 0 19.9 2.3 29 7l74.4 37.9-13-82.5c-3.2-20.2 3.5-40.7 17.9-55.2l59-59.1-82.5-13.1c-20.2-3.2-37.7-15.9-47-34.1l-38-74.4 0 273.6zM457.4 489c-7.3 5.3-17 6.1-25 2L288.1 417.6 143.8 491c-8 4.1-17.7 3.3-25-2s-11-14.2-9.6-23.2L134.4 305.9 20 191.4c-6.4-6.4-8.6-15.8-5.8-24.4s10.1-14.9 19.1-16.3l159.9-25.4 73.6-144.2c4.1-8 12.4-13.1 21.4-13.1s17.3 5.1 21.4 13.1L383 125.3 542.9 150.7c8.9 1.4 16.3 7.7 19.1 16.3s.5 18-5.8 24.4L441.7 305.9 467 465.8c1.4 8.9-2.3 17.9-9.6 23.2z\"]\n};\nvar faStarHalfAlt = faStarHalfStroke;\nvar faTemperatureArrowDown = {\n  prefix: 'fas',\n  iconName: 'temperature-arrow-down',\n  icon: [512, 512, [\"temperature-down\"], \"e03f\", \"M64.5 96c0-53 43-96 96-96s96 43 96 96l0 164.7c29.5 26.4 48 64.7 48 107.3 0 79.5-64.5 144-144 144s-144-64.5-144-144c0-42.6 18.5-81 48-107.3L64.5 96zm96 336c35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3l0-28.7c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 28.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64zM439.1 310.6c-6 6-14.1 9.4-22.6 9.4s-16.6-3.4-22.6-9.4l-64-64c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l9.4 9.4 0-178.7c0-17.7 14.3-32 32-32s32 14.3 32 32l0 178.7 9.4-9.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-64 64z\"]\n};\nvar faTemperatureDown = faTemperatureArrowDown;\nvar faMaskVentilator = {\n  prefix: 'fas',\n  iconName: 'mask-ventilator',\n  icon: [640, 512, [], \"e524\", \"M152.2 192c-15.4 38.3-24.2 77.2-24.2 108.8 0 13.3 1.5 26.2 4.4 38.7l-17-3.4c-29.9-6-51.4-32.2-51.4-62.8l0-81.3 88.2 0zm32.9-64L64 128c-35.3 0-64 28.7-64 64l0 81.3c0 61 43.1 113.5 102.9 125.5l66.3 13.3c18.7 22.1 42.9 40 70.8 51.8l0-87.8c-10.1-14.2-16-31.3-16-49.7 0-49.5 43-134.4 96-134.4 52.5 0 96 84.9 96 134.4 0 18.4-5.9 35.4-16 49.6l0 87.7c27.6-11.8 51.7-29.6 70.4-51.6l66.7-13.3c59.8-12 102.9-64.5 102.9-125.5l0-81.3c0-35.3-28.7-64-64-64l-121.5 0c-34.8-54.2-82.5-96-134.5-96-52.6 0-100.2 41.8-134.9 96zm302.5 64l88.4 0 0 81.3c0 30.5-21.5 56.8-51.4 62.8l-17 3.4c2.9-12.4 4.5-25.4 4.5-38.7 0-31.6-8.9-70.5-24.4-108.8zM288 320l0 192 64 0 0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"]\n};\nvar faFileVideo = {\n  prefix: 'fas',\n  iconName: 'file-video',\n  icon: [384, 512, [], \"f1c8\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM80 304l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-24 35 35c3.2 3.2 7.5 5 12 5 9.4 0 17-7.6 17-17l0-94.1c0-9.4-7.6-17-17-17-4.5 0-8.8 1.8-12 5l-35 35 0-24c0-17.7-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32z\"]\n};\nvar faArrowTrendDown = {\n  prefix: 'fas',\n  iconName: 'arrow-trend-down',\n  icon: [576, 512, [], \"e097\", \"M384 352c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-160c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 82.7-169.4-169.4c-12.5-12.5-32.8-12.5-45.3 0L192 242.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0L320 205.3 466.7 352 384 352z\"]\n};\nvar faOilCan = {\n  prefix: 'fas',\n  iconName: 'oil-can',\n  icon: [640, 512, [], \"f613\", \"M320 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32-176 0c-26.5 0-48 21.5-48 48l0 64.8c0 19 11.2 36.2 28.5 43.9l67.5 30 0 21.3c0 26.5 21.5 48 48 48l259.1 0c18.4 0 35.8-7.9 48-21.7L633.5 187.7c12.3-13.9-.3-35.4-18.4-31.5L448 192 397.5 166.8c-8.9-4.4-18.7-6.8-28.6-6.8l-80.9 0 0-32 32 0zM96 208l0 86.1-48-21.3 0-64.8 48 0z\"]\n};\nvar faPeopleCarryBox = {\n  prefix: 'fas',\n  iconName: 'people-carry-box',\n  icon: [576, 512, [\"people-carry\"], \"f4ce\", \"M64-32A56 56 0 1 1 64 80 56 56 0 1 1 64-32zM0 171.1c0-32.6 26.5-59.1 59.1-59.1 23.5 0 45.5 11.3 59.1 30.4l48.7 68.2c5.8 8.2 15.1 13.1 25.1 13.4l0-96c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32l0 96c10-.3 19.3-5.2 25.1-13.4l48.7-68.2c13.6-19.1 35.6-30.4 59.1-30.4 32.6 0 59.1 26.5 59.1 59.1L576 272c0 30.2-14.2 58.7-38.4 76.8l-76.8 57.6c-8.1 6-12.8 15.5-12.8 25.6l0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80c0-30.2 14.2-58.7 38.4-76.8l41.6-31.2 0-80.1-2.8 3.9c-18 25.2-47.1 40.2-78.1 40.2L352 288c-.6 0-1.3 0-1.9-.1-.6 0-1.3 .1-1.9 .1l-120.4 0c-.6 0-1.3 0-1.9-.1-.6 0-1.3 .1-1.9 .1l-31.1 0c-31 0-60.1-15-78.1-40.2l-2.8-3.9 0 80.1 41.6 31.2C177.8 373.3 192 401.8 192 432l0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80c0-10.1-4.7-19.6-12.8-25.6L38.4 348.8C14.2 330.7 0 302.2 0 272L0 171.1zM0 379.3c3.1 2.7 6.3 5.4 9.6 7.9L64 428 64 512c0 17.7-14.3 32-32 32S0 529.7 0 512L0 379.3zM568 24a56 56 0 1 1 -112 0 56 56 0 1 1 112 0zm8 488c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-84 54.4-40.8c3.3-2.5 6.5-5.1 9.6-7.9L576 512z\"]\n};\nvar faPeopleCarry = faPeopleCarryBox;\nvar faChair = {\n  prefix: 'fas',\n  iconName: 'chair',\n  icon: [448, 512, [129681], \"f6c0\", \"M152 256l0-181.8c-24.5 20.5-40 51.4-40 85.8l0 96 40 0zm48 0l48 0 0-205.4c-7.7-1.7-15.8-2.6-24-2.6s-16.3 .9-24 2.6L200 256zM296 74.2l0 181.8 40 0 0-96c0-34.4-15.5-65.2-40-85.8zM32 256l32 0 0-96C64 71.6 135.6 0 224 0S384 71.6 384 160l0 96 32 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-256 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32z\"]\n};\nvar faWind = {\n  prefix: 'fas',\n  iconName: 'wind',\n  icon: [512, 512, [], \"f72e\", \"M288 32c0 17.7 14.3 32 32 32l40 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L32 112c-17.7 0-32 14.3-32 32s14.3 32 32 32l328 0c48.6 0 88-39.4 88-88S408.6 0 360 0L320 0c-17.7 0-32 14.3-32 32zm64 352c0 17.7 14.3 32 32 32l32 0c53 0 96-43 96-96s-43-96-96-96L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32 14.3-32 32zM128 512l40 0c48.6 0 88-39.4 88-88s-39.4-88-88-88L32 336c-17.7 0-32 14.3-32 32s14.3 32 32 32l136 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"]\n};\nvar faLayerGroup = {\n  prefix: 'fas',\n  iconName: 'layer-group',\n  icon: [512, 512, [], \"f5fd\", \"M232.5 5.2c14.9-6.9 32.1-6.9 47 0l218.6 101c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L13.9 149.8C5.4 145.8 0 137.3 0 128s5.4-17.9 13.9-21.8L232.5 5.2zM48.1 218.4l164.3 75.9c27.7 12.8 59.6 12.8 87.3 0l164.3-75.9 34.1 15.8c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L13.9 277.8C5.4 273.8 0 265.3 0 256s5.4-17.9 13.9-21.8l34.1-15.8zM13.9 362.2l34.1-15.8 164.3 75.9c27.7 12.8 59.6 12.8 87.3 0l164.3-75.9 34.1 15.8c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L13.9 405.8C5.4 401.8 0 393.3 0 384s5.4-17.9 13.9-21.8z\"]\n};\nvar faHeadSideMask = {\n  prefix: 'fas',\n  iconName: 'head-side-mask',\n  icon: [512, 512, [], \"e063\", \"M445.9 193c-.1-.4-.2-.9-.2-1.3-15.7-108.4-108.9-191.7-221.7-191.7-85 0-159 47.4-196.9 117.2L283.3 288 456 288 442.9 336 336 336c-8.8 0-16 7.2-16 16s7.2 16 16 16l98.2 0-8.7 32-89.5 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80.6 0c-6.7 19.1-24.8 32-45.3 32L288 464c-17.7 0-32-14.3-32-32l0-104.5-247.5-165C3 182.1 0 202.7 0 224 0 278 19.1 327.5 50.9 366.2 58.9 375.9 64 387.8 64 400.4L64 464c0 26.5 21.5 48 48 48l127.3 0 .7 0 131.3 0c44.9 0 83.8-31.1 93.6-74.9l33.9-150.3c3.3-14.4-.3-29.5-9.7-41L445.9 193zM288 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"]\n};\nvar faHands = {\n  prefix: 'fas',\n  iconName: 'hands',\n  icon: [512, 512, [\"sign-language\", \"signing\"], \"f2a7\", \"M512 160l-.1 72.6c0 44.8-17.6 87.1-47.9 118.4-.3-77-40.1-148.4-105.4-189.3l-1.9-1.2c2.5-3.7 2.8-8.6 .4-12.7l-62-107.4c-6.6-11.5-2.7-26.2 8.8-32.8S330 5 336.6 16.5l68 117.8 0 0 0 0 43.3 75 .1-49.3c0-17.7 14.4-32 32-32s32 14.4 32 32zM298.4 124.2c-14.1-8.8-29.8-12.7-45.2-12.1L216.7 48.8c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8l67.1 116.2-27-16.9zM211.9 88.5l16.4 28.4c-15.1 5.5-28.6 15.6-38.3 29.7l-19.7-34.2c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8zm-46.4 63.7l12.5 21.7c-2 8.6-2.5 17.5-1.7 26.1l-4.3 0 0 0-34.4 0-13.7-23.8c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8zM228.9 175c9.4-15 29.1-19.5 44.1-10.2l60.2 37.6C384.7 234.7 416 291.2 416 352l0 8c0 83.9-68.1 152-152 152L88 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l92 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L56 440c-13.3 0-24-10.7-24-24s10.7-24 24-24l124 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L24 368c-13.3 0-24-10.7-24-24s10.7-24 24-24l156 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L56 296c-13.3 0-24-10.7-24-24s10.7-24 24-24l136 0 0 0 0 0 93.2 0-46.2-28.9c-15-9.4-19.5-29.1-10.2-44.1z\"]\n};\nvar faSignLanguage = faHands;\nvar faSigning = faHands;\nvar faTablets = {\n  prefix: 'fas',\n  iconName: 'tablets',\n  icon: [512, 512, [], \"f490\", \"M495.3 76.6c-4.6-8.7-16.3-9.7-23.3-2.7L297.9 248c-7 7-6 18.7 2.7 23.3 20.1 10.7 43 16.7 67.4 16.7 79.5 0 144-64.5 144-144 0-24.3-6-47.3-16.7-67.4zM240.7 211.4c4.6 8.7 16.3 9.7 23.3 2.7L438.1 40c7-7 6-18.7-2.7-23.3-20.1-10.7-43-16.7-67.4-16.7-79.5 0-144 64.5-144 144 0 24.3 6 47.3 16.7 67.4zM144 224C79.2 224 24.4 266.8 6.3 325.6 3.4 335.1 11 344 20.9 344l246.2 0c9.9 0 17.5-8.9 14.6-18.4-.9-3-1.9-5.9-3-8.7-37.4-18.1-68-48-87-84.8-14.9-5.2-30.9-8.1-47.6-8.1zM281.7 410.4c2.9-9.5-4.7-18.4-14.6-18.4L20.9 392C11 392 3.4 400.9 6.3 410.4 24.4 469.2 79.2 512 144 512s119.6-42.8 137.7-101.6z\"]\n};\nvar faWeightHanging = {\n  prefix: 'fas',\n  iconName: 'weight-hanging',\n  icon: [512, 512, [], \"f5cd\", \"M224 96a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm122.5 32c3.5-10 5.5-20.8 5.5-32 0-53-43-96-96-96s-96 43-96 96c0 11.2 1.9 22 5.5 32l-21.8 0c-28.3 0-53.2 18.5-61.3 45.6L2.4 440.2C.8 445.4 0 450.8 0 456.2 0 487 25 512 55.8 512l400.4 0c30.8 0 55.8-25 55.8-55.8 0-5.4-.8-10.8-2.4-16l-80-266.5c-8.1-27.1-33-45.6-61.3-45.6l-21.8 0z\"]\n};\nvar faDice = {\n  prefix: 'fas',\n  iconName: 'dice',\n  icon: [512, 512, [127922], \"f522\", \"M141.4 2.3C103-8 63.5 14.8 53.3 53.2L2.5 242.7C-7.8 281.1 15 320.6 53.4 330.9l189.5 50.8c38.4 10.3 77.9-12.5 88.2-50.9l50.8-189.5c10.3-38.4-12.5-77.9-50.9-88.2L141.4 2.3zm23 205.7a32 32 0 1 1 55.4-32 32 32 0 1 1 -55.4 32zM79.2 220.3a32 32 0 1 1 32 55.4 32 32 0 1 1 -32-55.4zm185 96.4a32 32 0 1 1 -32-55.4 32 32 0 1 1 32 55.4zm9-208.4a32 32 0 1 1 32 55.4 32 32 0 1 1 -32-55.4zm-121 14.4a32 32 0 1 1 -32-55.4 32 32 0 1 1 32 55.4zM418 192L377.4 343.2c-17.2 64-83 102-147 84.9l-38.3-10.3 0 30.2c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64L418 192z\"]\n};\nvar faShopSlash = {\n  prefix: 'fas',\n  iconName: 'shop-slash',\n  icon: [576, 512, [\"store-alt-slash\"], \"e070\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-57-57 0-190.3c26.8-1.9 48-24.3 48-51.6 0-8-1.9-16-5.5-23.2L497.7 67.4C486.8 45.7 464.7 32 440.4 32L135.6 32c-10.7 0-21 2.7-30.2 7.6L41-24.9zM321.8 256L448 256 448 382.2 321.8 256zM352 421.8l-64-64 0 10.2c0 8.8-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16l0-112 58.2 0-134.8-134.8-29.9 59.9c-3.6 7.2-5.5 15.1-5.5 23.2 0 27.3 21.2 49.7 48 51.6L64 432c0 26.5 21.5 48 48 48l192 0c26.5 0 48-21.5 48-48l0-10.2z\"]\n};\nvar faStoreAltSlash = faShopSlash;\nvar faSortDown = {\n  prefix: 'fas',\n  iconName: 'sort-down',\n  icon: [384, 512, [\"sort-desc\"], \"f0dd\", \"M32 288c-12.9 0-24.6 7.8-29.6 19.8S.2 333.5 9.4 342.6l160 160c12.5 12.5 32.8 12.5 45.3 0l160-160c9.2-9.2 11.9-22.9 6.9-34.9S364.9 288 352 288L32 288z\"]\n};\nvar faSortDesc = faSortDown;\nvar faPesetaSign = {\n  prefix: 'fas',\n  iconName: 'peseta-sign',\n  icon: [448, 512, [], \"e221\", \"M112 32C94.3 32 80 46.3 80 64l0 104-24 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 232c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 96 0c80.2 0 146.6-59 158.2-136l25.8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-25.8 0C386.6 91 320.2 32 240 32L112 32zM333 168l-189 0 0-72 96 0c44.7 0 82.3 30.6 93 72zM144 216l189 0c-10.7 41.4-48.2 72-93 72l-96 0 0-72z\"]\n};\nvar faTabletScreenButton = {\n  prefix: 'fas',\n  iconName: 'tablet-screen-button',\n  icon: [448, 512, [\"tablet-alt\"], \"f3fa\", \"M0 64C0 28.7 28.7 0 64 0L384 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM256 432a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM384 64l-320 0 0 288 320 0 0-288z\"]\n};\nvar faTabletAlt = faTabletScreenButton;\nvar faHandHoldingDollar = {\n  prefix: 'fas',\n  iconName: 'hand-holding-dollar',\n  icon: [576, 512, [\"hand-holding-usd\"], \"f4c0\", \"M288-16c-13.3 0-24 10.7-24 24l0 12-1.8 0c-36.6 0-66.2 29.7-66.2 66.2 0 33.4 24.9 61.6 58 65.7l61 7.6c5.1 .6 9 5 9 10.2 0 5.7-4.6 10.2-10.2 10.2L240 180c-15.5 0-28 12.5-28 28s12.5 28 28 28l24 0 0 12c0 13.3 10.7 24 24 24s24-10.7 24-24l0-12 1.8 0c36.6 0 66.2-29.7 66.2-66.2 0-33.4-24.9-61.6-58-65.7l-61-7.6c-5.1-.6-9-5-9-10.2 0-5.7 4.6-10.2 10.2-10.2L328 76c15.5 0 28-12.5 28-28s-12.5-28-28-28l-16 0 0-12c0-13.3-10.7-24-24-24zM109.3 341.5L66.7 384 32 384c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l320.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416 280 416c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-152.2 0c-33.9 0-66.5 13.5-90.5 37.5z\"]\n};\nvar faHandHoldingUsd = faHandHoldingDollar;\nvar faShield = {\n  prefix: 'fas',\n  iconName: 'shield',\n  icon: [512, 512, [128737, \"shield-blank\"], \"f132\", \"M256 0c4.6 0 9.2 1 13.4 2.9L457.8 82.8c22 9.3 38.4 31 38.3 57.2-.5 99.2-41.3 280.7-213.6 363.2-16.7 8-36.1 8-52.8 0-172.4-82.5-213.1-264-213.6-363.2-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.9 1 251.4 0 256 0z\"]\n};\nvar faShieldBlank = faShield;\nvar faFaceLaugh = {\n  prefix: 'fas',\n  iconName: 'face-laugh',\n  icon: [512, 512, [\"laugh\"], \"f599\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM101.6 314c-3.7-13.7 7.5-26 21.7-26l265.4 0c14.2 0 25.4 12.3 21.7 26-18.5 68-80.6 118-154.4 118S120 382 101.6 314zM144 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"]\n};\nvar faLaugh = faFaceLaugh;\nvar faHandsHolding = {\n  prefix: 'fas',\n  iconName: 'hands-holding',\n  icon: [640, 512, [], \"f4c2\", \"M80 104c0-22.1-17.9-40-40-40S0 81.9 0 104L0 325.5c0 25.5 10.1 49.9 28.1 67.9L128 493.3c12 12 28.3 18.7 45.3 18.7l66.7 0c26.5 0 48-21.5 48-48l0-78.9c0-29.7-11.8-58.2-32.8-79.2l-25.3-25.3 0 0c-7.3-7.3-23.1-23.1-47.2-47.2-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3c24.1 24.1 39.9 39.9 47.2 47.2 11 11 9.2 29.2-3.7 37.8-9.7 6.5-22.7 5.2-31-3.1L98.7 309.5c-12-12-18.7-28.3-18.7-45.3L80 104zm480 0l0 160.2c0 17-6.7 33.3-18.7 45.3l-51.1 51.1c-8.3 8.3-21.3 9.6-31 3.1-12.9-8.6-14.7-26.9-3.7-37.8 7.3-7.3 23.1-23.1 47.2-47.2 12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-24.1 24.1-39.9 39.9-47.2 47.2l0 0-25.3 25.3c-21 21-32.8 49.5-32.8 79.2l0 78.9c0 26.5 21.5 48 48 48l66.7 0c17 0 33.3-6.7 45.3-18.7l99.9-99.9c18-18 28.1-42.4 28.1-67.9L640 104c0-22.1-17.9-40-40-40s-40 17.9-40 40z\"]\n};\nvar faCartShopping = {\n  prefix: 'fas',\n  iconName: 'cart-shopping',\n  icon: [640, 512, [128722, \"shopping-cart\"], \"f07a\", \"M24-16C10.7-16 0-5.3 0 8S10.7 32 24 32l45.3 0c3.9 0 7.2 2.8 7.9 6.6l52.1 286.3c6.2 34.2 36 59.1 70.8 59.1L456 384c13.3 0 24-10.7 24-24s-10.7-24-24-24l-255.9 0c-11.6 0-21.5-8.3-23.6-19.7l-5.1-28.3 303.6 0c30.8 0 57.2-21.9 62.9-52.2L568.9 69.9C572.6 50.2 557.5 32 537.4 32l-412.7 0-.4-2c-4.8-26.6-28-46-55.1-46L24-16zM208 512a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm224 0a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"]\n};\nvar faShoppingCart = faCartShopping;\nvar faOctagon = {\n  prefix: 'fas',\n  iconName: 'octagon',\n  icon: [512, 512, [128721], \"f306\", \"M188.6 .1c-17 0-33.3 6.7-45.3 18.7L19.2 143C7.2 155 .5 171.2 .5 188.2l0 135.6c0 17 6.7 33.3 18.7 45.3L143.4 493.2c12 12 28.3 18.7 45.3 18.7l135.6 0c17 0 33.3-6.7 45.3-18.7L493.6 369c12-12 18.7-28.3 18.7-45.3l0-135.6c0-17-6.7-33.3-18.7-45.3L369.5 18.8c-12-12-28.3-18.7-45.3-18.7L188.6 .1z\"]\n};\nvar faHandPointer = {\n  prefix: 'fas',\n  iconName: 'hand-pointer',\n  icon: [448, 512, [], \"f25a\", \"M128 40c0-22.1 17.9-40 40-40s40 17.9 40 40l0 148.2c8.5-7.6 19.7-12.2 32-12.2 20.6 0 38.2 13 45 31.2 8.8-9.3 21.2-15.2 35-15.2 25.3 0 46 19.5 47.9 44.3 8.5-7.7 19.8-12.3 32.1-12.3 26.5 0 48 21.5 48 48l0 112c0 70.7-57.3 128-128 128l-85.3 0c-5 0-9.9-.3-14.7-1-55.3-5.6-106.2-34-140-79L8 336c-13.3-17.7-9.7-42.7 8-56s42.7-9.7 56 8l56 74.7 0-322.7zM240 304c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96zm48-16c-8.8 0-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96z\"]\n};\nvar faRegistered = {\n  prefix: 'fas',\n  iconName: 'registered',\n  icon: [512, 512, [174], \"f25d\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM200 144l80 0c39.8 0 72 32.2 72 72 0 28.9-17 53.8-41.6 65.3l30.2 50.3c6.8 11.4 3.1 26.1-8.2 32.9s-26.1 3.1-32.9-8.2l-41-68.3-34.4 0 0 56c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-176c0-13.3 10.7-24 24-24zm72 96l8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0 0 48 48 0z\"]\n};\nvar faHouseSignal = {\n  prefix: 'fas',\n  iconName: 'house-signal',\n  icon: [576, 512, [], \"e012\", \"M515.9 240l-19.9 0 0 144c0 35.3-28.7 64-64 64l-137 0c-24-91.7-93.5-165-183-194.3l0-13.7-19.9 0c-15.5 0-28.1-12.6-28.1-28.1 0-7.6 3.1-14.9 8.6-20.2L276.5-4.9C283.9-12 293.7-16 304-16s20.1 4 27.5 11.1L535.4 191.7c5.5 5.3 8.6 12.6 8.6 20.2 0 15.5-12.6 28.1-28.1 28.1zM280 192c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0zM24 288c128.1 0 232 103.9 232 232 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM0 408c0-13.3 10.7-24 24-24 75.1 0 136 60.9 136 136 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88-13.3 0-24-10.7-24-24z\"]\n};\nvar faBangladeshiTakaSign = {\n  prefix: 'fas',\n  iconName: 'bangladeshi-taka-sign',\n  icon: [384, 512, [], \"e2e6\", \"M36 32.3C18.4 30.1 2.4 42.5 .3 60S10.5 93.6 28 95.8l7.9 1c16 2 28 15.6 28 31.8l0 31.5-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 176c0 53 43 96 96 96l32 0c106 0 192-86 192-192l0-32c0-53-43-96-96-96l-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0c17.7 0 32 14.3 32 32l0 32c0 70.7-57.3 128-128 128l-32 0c-17.7 0-32-14.3-32-32l0-176 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-31.5C128 80.1 92 39.2 43.9 33.2l-7.9-1z\"]\n};\nvar icons = {\n  fa0: fa0,\n  fa1: fa1,\n  fa2: fa2,\n  fa3: fa3,\n  fa4: fa4,\n  fa5: fa5,\n  fa6: fa6,\n  fa7: fa7,\n  fa8: fa8,\n  fa9: fa9,\n  faDollarSign: faDollarSign,\n  faDollar: faDollar,\n  faUsd: faUsd,\n  faDog: faDog,\n  faTruckMoving: faTruckMoving,\n  faRotate: faRotate,\n  faSyncAlt: faSyncAlt,\n  faSquareMinus: faSquareMinus,\n  faMinusSquare: faMinusSquare,\n  faAlignJustify: faAlignJustify,\n  faCalendarCheck: faCalendarCheck,\n  faFaceKiss: faFaceKiss,\n  faKiss: faKiss,\n  faKitchenSet: faKitchenSet,\n  faDna: faDna,\n  faChildReaching: faChildReaching,\n  faPaste: faPaste,\n  faFileClipboard: faFileClipboard,\n  faMeteor: faMeteor,\n  faGears: faGears,\n  faCogs: faCogs,\n  faFileCirclePlus: faFileCirclePlus,\n  faIcicles: faIcicles,\n  faArrowTrendUp: faArrowTrendUp,\n  faHexagonNodesBolt: faHexagonNodesBolt,\n  faQuestion: faQuestion,\n  faHandsBound: faHandsBound,\n  faPersonWalkingLuggage: faPersonWalkingLuggage,\n  faFileArrowDown: faFileArrowDown,\n  faFileDownload: faFileDownload,\n  faPersonBooth: faPersonBooth,\n  faLocust: faLocust,\n  faRightLong: faRightLong,\n  faLongArrowAltRight: faLongArrowAltRight,\n  faTruckDroplet: faTruckDroplet,\n  faHandHoldingMedical: faHandHoldingMedical,\n  faHandPointLeft: faHandPointLeft,\n  faCalculator: faCalculator,\n  faMinus: faMinus,\n  faSubtract: faSubtract,\n  faArrowUpZA: faArrowUpZA,\n  faSortAlphaUpAlt: faSortAlphaUpAlt,\n  faMicrophoneSlash: faMicrophoneSlash,\n  faSquarePen: faSquarePen,\n  faPenSquare: faPenSquare,\n  faPencilSquare: faPencilSquare,\n  faHandFist: faHandFist,\n  faFistRaised: faFistRaised,\n  faCommentSms: faCommentSms,\n  faSms: faSms,\n  faSimCard: faSimCard,\n  faScaleBalanced: faScaleBalanced,\n  faBalanceScale: faBalanceScale,\n  faCar: faCar,\n  faAutomobile: faAutomobile,\n  faCropSimple: faCropSimple,\n  faCropAlt: faCropAlt,\n  faMedal: faMedal,\n  faScroll: faScroll,\n  faFileExcel: faFileExcel,\n  faFilter: faFilter,\n  faDrum: faDrum,\n  faMapPin: faMapPin,\n  faScaleUnbalancedFlip: faScaleUnbalancedFlip,\n  faBalanceScaleRight: faBalanceScaleRight,\n  faArrowsToCircle: faArrowsToCircle,\n  faEnvelope: faEnvelope,\n  faBaby: faBaby,\n  faSquareCaretDown: faSquareCaretDown,\n  faCaretSquareDown: faCaretSquareDown,\n  faTent: faTent,\n  faA: faA,\n  faParachuteBox: faParachuteBox,\n  faCartArrowDown: faCartArrowDown,\n  faBridgeCircleExclamation: faBridgeCircleExclamation,\n  faCloudArrowUp: faCloudArrowUp,\n  faCloudUpload: faCloudUpload,\n  faCloudUploadAlt: faCloudUploadAlt,\n  faAt: faAt,\n  faIndianRupeeSign: faIndianRupeeSign,\n  faIndianRupee: faIndianRupee,\n  faInr: faInr,\n  faTruck: faTruck,\n  faChalkboardUser: faChalkboardUser,\n  faChalkboardTeacher: faChalkboardTeacher,\n  faUserCheck: faUserCheck,\n  faUserNinja: faUserNinja,\n  faPlantWilt: faPlantWilt,\n  faWeightScale: faWeightScale,\n  faWeight: faWeight,\n  faCaretRight: faCaretRight,\n  faFlorinSign: faFlorinSign,\n  faBell: faBell,\n  faLariSign: faLariSign,\n  faMillSign: faMillSign,\n  faPersonSnowboarding: faPersonSnowboarding,\n  faSnowboarding: faSnowboarding,\n  faTty: faTty,\n  faTeletype: faTeletype,\n  faUsersRectangle: faUsersRectangle,\n  faMobile: faMobile,\n  faMobileAndroid: faMobileAndroid,\n  faMobilePhone: faMobilePhone,\n  faArrowsTurnToDots: faArrowsTurnToDots,\n  faExclamation: faExclamation,\n  faChurch: faChurch,\n  faToggleOff: faToggleOff,\n  faShoePrints: faShoePrints,\n  faFileCircleExclamation: faFileCircleExclamation,\n  faWallet: faWallet,\n  faMessage: faMessage,\n  faCommentAlt: faCommentAlt,\n  faTrophy: faTrophy,\n  faFaceDizzy: faFaceDizzy,\n  faDizzy: faDizzy,\n  faBacteria: faBacteria,\n  faEarDeaf: faEarDeaf,\n  faDeaf: faDeaf,\n  faDeafness: faDeafness,\n  faHardOfHearing: faHardOfHearing,\n  faPeopleArrows: faPeopleArrows,\n  faPeopleArrowsLeftRight: faPeopleArrowsLeftRight,\n  faHandsClapping: faHandsClapping,\n  faVirusCovidSlash: faVirusCovidSlash,\n  faCalendarDays: faCalendarDays,\n  faCalendarAlt: faCalendarAlt,\n  faDiamondTurnRight: faDiamondTurnRight,\n  faDirections: faDirections,\n  faHandPointUp: faHandPointUp,\n  faBezierCurve: faBezierCurve,\n  faPersonHalfDress: faPersonHalfDress,\n  faSquarePollHorizontal: faSquarePollHorizontal,\n  faPollH: faPollH,\n  faSchoolCircleXmark: faSchoolCircleXmark,\n  faHandLizard: faHandLizard,\n  faChalkboard: faChalkboard,\n  faBlackboard: faBlackboard,\n  faUpRightFromSquare: faUpRightFromSquare,\n  faExternalLinkAlt: faExternalLinkAlt,\n  faSquareFull: faSquareFull,\n  faClover: faClover,\n  faTeethOpen: faTeethOpen,\n  faBarsStaggered: faBarsStaggered,\n  faReorder: faReorder,\n  faStream: faStream,\n  faWarehouse: faWarehouse,\n  faSwatchbook: faSwatchbook,\n  faCampground: faCampground,\n  faPersonWalkingArrowRight: faPersonWalkingArrowRight,\n  faGlasses: faGlasses,\n  faCirclePause: faCirclePause,\n  faPauseCircle: faPauseCircle,\n  faMemory: faMemory,\n  faGift: faGift,\n  faMoneyBillWheat: faMoneyBillWheat,\n  faDungeon: faDungeon,\n  faSuitcaseMedical: faSuitcaseMedical,\n  faMedkit: faMedkit,\n  faPersonCane: faPersonCane,\n  faGauge: faGauge,\n  faDashboard: faDashboard,\n  faGaugeMed: faGaugeMed,\n  faTachometerAltAverage: faTachometerAltAverage,\n  faEnvelopeOpenText: faEnvelopeOpenText,\n  faToolbox: faToolbox,\n  faPowerOff: faPowerOff,\n  faSignal: faSignal,\n  faSignal5: faSignal5,\n  faSignalPerfect: faSignalPerfect,\n  faArrowsSpin: faArrowsSpin,\n  faJoint: faJoint,\n  faBraille: faBraille,\n  faBasketShopping: faBasketShopping,\n  faShoppingBasket: faShoppingBasket,\n  faBridge: faBridge,\n  faPlaneArrival: faPlaneArrival,\n  faCashRegister: faCashRegister,\n  faRing: faRing,\n  faAquarius: faAquarius,\n  faShareNodes: faShareNodes,\n  faShareAlt: faShareAlt,\n  faPersonCircleExclamation: faPersonCircleExclamation,\n  faBinoculars: faBinoculars,\n  faKipSign: faKipSign,\n  faHardDrive: faHardDrive,\n  faHdd: faHdd,\n  faRankingStar: faRankingStar,\n  faUserTie: faUserTie,\n  faEllipsis: faEllipsis,\n  faEllipsisH: faEllipsisH,\n  faStoreSlash: faStoreSlash,\n  faPercent: faPercent,\n  faPercentage: faPercentage,\n  faFileZipper: faFileZipper,\n  faFileArchive: faFileArchive,\n  faDisplay: faDisplay,\n  faIcons: faIcons,\n  faHeartMusicCameraBolt: faHeartMusicCameraBolt,\n  faRulerVertical: faRulerVertical,\n  faMapLocationDot: faMapLocationDot,\n  faMapMarkedAlt: faMapMarkedAlt,\n  faHeartCrack: faHeartCrack,\n  faHeartBroken: faHeartBroken,\n  faCow: faCow,\n  faRss: faRss,\n  faFeed: faFeed,\n  faMagnifyingGlass: faMagnifyingGlass,\n  faSearch: faSearch,\n  faCloudMoon: faCloudMoon,\n  faBoxesStacked: faBoxesStacked,\n  faBoxes: faBoxes,\n  faBoxesAlt: faBoxesAlt,\n  faCodeBranch: faCodeBranch,\n  faBan: faBan,\n  faCancel: faCancel,\n  faJugDetergent: faJugDetergent,\n  faReply: faReply,\n  faMailReply: faMailReply,\n  faSunPlantWilt: faSunPlantWilt,\n  faBacterium: faBacterium,\n  faRecordVinyl: faRecordVinyl,\n  faFloppyDisk: faFloppyDisk,\n  faSave: faSave,\n  faToiletsPortable: faToiletsPortable,\n  faO: faO,\n  faPalette: faPalette,\n  faUnlock: faUnlock,\n  faEarListen: faEarListen,\n  faAssistiveListeningSystems: faAssistiveListeningSystems,\n  faCodePullRequest: faCodePullRequest,\n  faKey: faKey,\n  faSkull: faSkull,\n  faMarsStrokeUp: faMarsStrokeUp,\n  faMarsStrokeV: faMarsStrokeV,\n  faFireFlameSimple: faFireFlameSimple,\n  faBurn: faBurn,\n  faTree: faTree,\n  faSmog: faSmog,\n  faS: faS,\n  faJedi: faJedi,\n  faPersonHiking: faPersonHiking,\n  faHiking: faHiking,\n  faArrowsUpToLine: faArrowsUpToLine,\n  faMarsDouble: faMarsDouble,\n  faThermometer: faThermometer,\n  faPaintbrush: faPaintbrush,\n  faPaintBrush: faPaintBrush,\n  faNeuter: faNeuter,\n  faSquarePhoneFlip: faSquarePhoneFlip,\n  faPhoneSquareAlt: faPhoneSquareAlt,\n  faFaceGrinTongueSquint: faFaceGrinTongueSquint,\n  faGrinTongueSquint: faGrinTongueSquint,\n  faCommentDollar: faCommentDollar,\n  faHippo: faHippo,\n  faBowlFood: faBowlFood,\n  faSquareVirus: faSquareVirus,\n  faCloudSunRain: faCloudSunRain,\n  faArrowRightLong: faArrowRightLong,\n  faLongArrowRight: faLongArrowRight,\n  faBuildingUn: faBuildingUn,\n  faTemperatureLow: faTemperatureLow,\n  faDoorOpen: faDoorOpen,\n  faAlignLeft: faAlignLeft,\n  faCamera: faCamera,\n  faCameraAlt: faCameraAlt,\n  faUsersRays: faUsersRays,\n  faRainbow: faRainbow,\n  faSitemap: faSitemap,\n  faFaceGrinStars: faFaceGrinStars,\n  faGrinStars: faGrinStars,\n  faSortUp: faSortUp,\n  faSortAsc: faSortAsc,\n  faEye: faEye,\n  faCaretLeft: faCaretLeft,\n  faAppleWhole: faAppleWhole,\n  faAppleAlt: faAppleAlt,\n  faScrollTorah: faScrollTorah,\n  faTorah: faTorah,\n  faHouseLock: faHouseLock,\n  faArrowsLeftRightToLine: faArrowsLeftRightToLine,\n  faTrash: faTrash,\n  faFaceSadTear: faFaceSadTear,\n  faSadTear: faSadTear,\n  faFax: faFax,\n  faPersonCirclePlus: faPersonCirclePlus,\n  faHamsa: faHamsa,\n  faPersonCircleQuestion: faPersonCircleQuestion,\n  faClipboardCheck: faClipboardCheck,\n  faShareFromSquare: faShareFromSquare,\n  faShareSquare: faShareSquare,\n  faReceipt: faReceipt,\n  faEquals: faEquals,\n  faChevronUp: faChevronUp,\n  faVirusSlash: faVirusSlash,\n  faSlash: faSlash,\n  faExpand: faExpand,\n  faNoteSticky: faNoteSticky,\n  faStickyNote: faStickyNote,\n  faTableColumns: faTableColumns,\n  faColumns: faColumns,\n  faPersonShelter: faPersonShelter,\n  faCircleNotch: faCircleNotch,\n  faWater: faWater,\n  faDeleteLeft: faDeleteLeft,\n  faBackspace: faBackspace,\n  faBroomBall: faBroomBall,\n  faQuidditch: faQuidditch,\n  faQuidditchBroomBall: faQuidditchBroomBall,\n  faJ: faJ,\n  faShuttleSpace: faShuttleSpace,\n  faSpaceShuttle: faSpaceShuttle,\n  faYinYang: faYinYang,\n  faStop: faStop,\n  faTrowel: faTrowel,\n  faHandBackFist: faHandBackFist,\n  faHandRock: faHandRock,\n  faTemperatureHigh: faTemperatureHigh,\n  faGreaterThan: faGreaterThan,\n  faCrutch: faCrutch,\n  faSeptagon: faSeptagon,\n  faHeptagon: faHeptagon,\n  faStreetView: faStreetView,\n  faWaveSquare: faWaveSquare,\n  faAngleLeft: faAngleLeft,\n  faScrewdriver: faScrewdriver,\n  faTractor: faTractor,\n  faBridgeCircleXmark: faBridgeCircleXmark,\n  faVials: faVials,\n  faStethoscope: faStethoscope,\n  faPodcast: faPodcast,\n  faArrowUpRightDots: faArrowUpRightDots,\n  faChessQueen: faChessQueen,\n  faAnchorCircleExclamation: faAnchorCircleExclamation,\n  faEllipsisVertical: faEllipsisVertical,\n  faEllipsisV: faEllipsisV,\n  faHeartCircleExclamation: faHeartCircleExclamation,\n  faBuildingCircleExclamation: faBuildingCircleExclamation,\n  faPersonArrowUpFromLine: faPersonArrowUpFromLine,\n  faNotEqual: faNotEqual,\n  faTrainTram: faTrainTram,\n  faPlaneDeparture: faPlaneDeparture,\n  faRightToBracket: faRightToBracket,\n  faSignInAlt: faSignInAlt,\n  faSdCard: faSdCard,\n  faHouseCircleExclamation: faHouseCircleExclamation,\n  faShekelSign: faShekelSign,\n  faIls: faIls,\n  faShekel: faShekel,\n  faSheqel: faSheqel,\n  faSheqelSign: faSheqelSign,\n  faRadio: faRadio,\n  faHandDots: faHandDots,\n  faAllergies: faAllergies,\n  faBookSkull: faBookSkull,\n  faBookDead: faBookDead,\n  faUnlockKeyhole: faUnlockKeyhole,\n  faUnlockAlt: faUnlockAlt,\n  faFileArrowUp: faFileArrowUp,\n  faFileUpload: faFileUpload,\n  faFaceGrinTears: faFaceGrinTears,\n  faGrinTears: faGrinTears,\n  faPenToSquare: faPenToSquare,\n  faEdit: faEdit,\n  faEarthEurope: faEarthEurope,\n  faGlobeEurope: faGlobeEurope,\n  faFaceGrinBeamSweat: faFaceGrinBeamSweat,\n  faGrinBeamSweat: faGrinBeamSweat,\n  faCircleHalfStroke: faCircleHalfStroke,\n  faAdjust: faAdjust,\n  faPersonMilitaryToPerson: faPersonMilitaryToPerson,\n  faTableCellsColumnLock: faTableCellsColumnLock,\n  faTruckFieldUn: faTruckFieldUn,\n  faClock: faClock,\n  faClockFour: faClockFour,\n  faBook: faBook,\n  faFaceLaughWink: faFaceLaughWink,\n  faLaughWink: faLaughWink,\n  faCloudMeatball: faCloudMeatball,\n  faChartArea: faChartArea,\n  faAreaChart: faAreaChart,\n  faRupiahSign: faRupiahSign,\n  faTextWidth: faTextWidth,\n  faSatellite: faSatellite,\n  faMagnifyingGlassMinus: faMagnifyingGlassMinus,\n  faSearchMinus: faSearchMinus,\n  faPeopleGroup: faPeopleGroup,\n  faSquareBinary: faSquareBinary,\n  faMasksTheater: faMasksTheater,\n  faTheaterMasks: faTheaterMasks,\n  faCartPlus: faCartPlus,\n  faHandsAslInterpreting: faHandsAslInterpreting,\n  faAmericanSignLanguageInterpreting: faAmericanSignLanguageInterpreting,\n  faAslInterpreting: faAslInterpreting,\n  faHandsAmericanSignLanguageInterpreting: faHandsAmericanSignLanguageInterpreting,\n  faTableCellsRowUnlock: faTableCellsRowUnlock,\n  faRocket: faRocket,\n  faShrimp: faShrimp,\n  faTengeSign: faTengeSign,\n  faTenge: faTenge,\n  faHouseChimneyMedical: faHouseChimneyMedical,\n  faClinicMedical: faClinicMedical,\n  faUsersSlash: faUsersSlash,\n  faPaperPlane: faPaperPlane,\n  faBookAtlas: faBookAtlas,\n  faAtlas: faAtlas,\n  faTable: faTable,\n  faHeart: faHeart,\n  faCircleChevronUp: faCircleChevronUp,\n  faChevronCircleUp: faChevronCircleUp,\n  faBatteryHalf: faBatteryHalf,\n  faBattery3: faBattery3,\n  faFontAwesome: faFontAwesome,\n  faFontAwesomeFlag: faFontAwesomeFlag,\n  faFontAwesomeLogoFull: faFontAwesomeLogoFull,\n  faHandcuffs: faHandcuffs,\n  faHatCowboySide: faHatCowboySide,\n  faIndustry: faIndustry,\n  faLinesLeaning: faLinesLeaning,\n  faPassport: faPassport,\n  faInfinity: faInfinity,\n  faClone: faClone,\n  faForward: faForward,\n  faM: faM,\n  faRoadSpikes: faRoadSpikes,\n  faMountain: faMountain,\n  faChess: faChess,\n  faTemperatureThreeQuarters: faTemperatureThreeQuarters,\n  faTemperature3: faTemperature3,\n  faThermometer3: faThermometer3,\n  faThermometerThreeQuarters: faThermometerThreeQuarters,\n  faB: faB,\n  faShieldVirus: faShieldVirus,\n  faLitecoinSign: faLitecoinSign,\n  faDiceD6: faDiceD6,\n  faGripLinesVertical: faGripLinesVertical,\n  faGolfBallTee: faGolfBallTee,\n  faGolfBall: faGolfBall,\n  faHexagon: faHexagon,\n  faFolderOpen: faFolderOpen,\n  faKaaba: faKaaba,\n  faHandHolding: faHandHolding,\n  faSingleQuoteRight: faSingleQuoteRight,\n  faBottleDroplet: faBottleDroplet,\n  faWindowMinimize: faWindowMinimize,\n  faChevronRight: faChevronRight,\n  faEgg: faEgg,\n  faLandmarkDome: faLandmarkDome,\n  faLandmarkAlt: faLandmarkAlt,\n  faWorm: faWorm,\n  faUserInjured: faUserInjured,\n  faStrikethrough: faStrikethrough,\n  faBlog: faBlog,\n  faStopwatch20: faStopwatch20,\n  faTruckPickup: faTruckPickup,\n  faSeedling: faSeedling,\n  faSprout: faSprout,\n  faTransgender: faTransgender,\n  faTransgenderAlt: faTransgenderAlt,\n  faStarHalf: faStarHalf,\n  faPhotoFilm: faPhotoFilm,\n  faPhotoVideo: faPhotoVideo,\n  faPictureInPicture: faPictureInPicture,\n  faPumpMedical: faPumpMedical,\n  faFire: faFire,\n  faMagnifyingGlassPlus: faMagnifyingGlassPlus,\n  faSearchPlus: faSearchPlus,\n  faFlask: faFlask,\n  faAlignRight: faAlignRight,\n  faCableCar: faCableCar,\n  faTram: faTram,\n  faKitMedical: faKitMedical,\n  faFirstAid: faFirstAid,\n  faGripLines: faGripLines,\n  faBurger: faBurger,\n  faHamburger: faHamburger,\n  faSnowman: faSnowman,\n  faHotel: faHotel,\n  faPrint: faPrint,\n  faVolleyball: faVolleyball,\n  faVolleyballBall: faVolleyballBall,\n  faTrafficLight: faTrafficLight,\n  faPlaneCircleCheck: faPlaneCircleCheck,\n  faUsers: faUsers,\n  faCertificate: faCertificate,\n  faAlarmClock: faAlarmClock,\n  faHelicopterSymbol: faHelicopterSymbol,\n  faHouseChimneyCrack: faHouseChimneyCrack,\n  faHouseDamage: faHouseDamage,\n  faPersonMilitaryPointing: faPersonMilitaryPointing,\n  faDatabase: faDatabase,\n  faNewspaper: faNewspaper,\n  faCloudRain: faCloudRain,\n  faMaximize: faMaximize,\n  faExpandArrowsAlt: faExpandArrowsAlt,\n  faLocationArrow: faLocationArrow,\n  faCity: faCity,\n  faXRay: faXRay,\n  faUmbrellaBeach: faUmbrellaBeach,\n  faArrowRightToBracket: faArrowRightToBracket,\n  faSignIn: faSignIn,\n  faHeadset: faHeadset,\n  faSplotch: faSplotch,\n  faUpLong: faUpLong,\n  faLongArrowAltUp: faLongArrowAltUp,\n  faHexagonNodes: faHexagonNodes,\n  faHospital: faHospital,\n  faHospitalAlt: faHospitalAlt,\n  faHospitalWide: faHospitalWide,\n  faPersonHarassing: faPersonHarassing,\n  faMoneyBillTrendUp: faMoneyBillTrendUp,\n  faPenRuler: faPenRuler,\n  faPencilRuler: faPencilRuler,\n  faRepeat: faRepeat,\n  faBone: faBone,\n  faFireFlameCurved: faFireFlameCurved,\n  faFireAlt: faFireAlt,\n  faBusSimple: faBusSimple,\n  faBusAlt: faBusAlt,\n  faVenusMars: faVenusMars,\n  faBlender: faBlender,\n  faU: faU,\n  faShare: faShare,\n  faMailForward: faMailForward,\n  faPhoneFlip: faPhoneFlip,\n  faPhoneAlt: faPhoneAlt,\n  faToiletPortable: faToiletPortable,\n  faPersonPregnant: faPersonPregnant,\n  faLessThan: faLessThan,\n  faSuperscript: faSuperscript,\n  faCircleStop: faCircleStop,\n  faStopCircle: faStopCircle,\n  faArrowsUpDown: faArrowsUpDown,\n  faArrowsV: faArrowsV,\n  faPooStorm: faPooStorm,\n  faPooBolt: faPooBolt,\n  faVideoSlash: faVideoSlash,\n  faSquareXmark: faSquareXmark,\n  faTimesSquare: faTimesSquare,\n  faXmarkSquare: faXmarkSquare,\n  faHandHoldingDroplet: faHandHoldingDroplet,\n  faHandHoldingWater: faHandHoldingWater,\n  faWonSign: faWonSign,\n  faKrw: faKrw,\n  faWon: faWon,\n  faObjectUngroup: faObjectUngroup,\n  faComment: faComment,\n  faHillAvalanche: faHillAvalanche,\n  faArrowsToEye: faArrowsToEye,\n  faSnowplow: faSnowplow,\n  faChartGantt: faChartGantt,\n  faVideo: faVideo,\n  faVideoCamera: faVideoCamera,\n  faChessPawn: faChessPawn,\n  faSynagogue: faSynagogue,\n  faBuildingCircleCheck: faBuildingCircleCheck,\n  faCalendarPlus: faCalendarPlus,\n  faWheelchairMove: faWheelchairMove,\n  faWheelchairAlt: faWheelchairAlt,\n  faUserShield: faUserShield,\n  faBold: faBold,\n  faHeartPulse: faHeartPulse,\n  faHeartbeat: faHeartbeat,\n  faSquareRootVariable: faSquareRootVariable,\n  faSquareRootAlt: faSquareRootAlt,\n  faHandsBubbles: faHandsBubbles,\n  faHandsWash: faHandsWash,\n  faMarker: faMarker,\n  faClipboard: faClipboard,\n  faPlaceOfWorship: faPlaceOfWorship,\n  faCannabis: faCannabis,\n  faPeopleRoof: faPeopleRoof,\n  faDisease: faDisease,\n  faBookBible: faBookBible,\n  faBible: faBible,\n  faChessBoard: faChessBoard,\n  faMars: faMars,\n  faLaptop: faLaptop,\n  faUserXmark: faUserXmark,\n  faUserTimes: faUserTimes,\n  faFlagUsa: faFlagUsa,\n  faHandMiddleFinger: faHandMiddleFinger,\n  faMortarPestle: faMortarPestle,\n  faHeadSideCough: faHeadSideCough,\n  faPlaneLock: faPlaneLock,\n  faBatteryThreeQuarters: faBatteryThreeQuarters,\n  faBattery4: faBattery4,\n  faFrancSign: faFrancSign,\n  faFilterCircleDollar: faFilterCircleDollar,\n  faFunnelDollar: faFunnelDollar,\n  faCheese: faCheese,\n  faCircleH: faCircleH,\n  faHospitalSymbol: faHospitalSymbol,\n  faSchool: faSchool,\n  faDiceFive: faDiceFive,\n  faTornado: faTornado,\n  faJetFighter: faJetFighter,\n  faFighterJet: faFighterJet,\n  faThumbsDown: faThumbsDown,\n  faBroom: faBroom,\n  faFileImport: faFileImport,\n  faArrowRightToFile: faArrowRightToFile,\n  faUtensils: faUtensils,\n  faCutlery: faCutlery,\n  faIdBadge: faIdBadge,\n  faSpider: faSpider,\n  faMobileRetro: faMobileRetro,\n  faSignsPost: faSignsPost,\n  faMapSigns: faMapSigns,\n  faGroupArrowsRotate: faGroupArrowsRotate,\n  faArrowsSplitUpAndLeft: faArrowsSplitUpAndLeft,\n  faFillDrip: faFillDrip,\n  faShieldHeart: faShieldHeart,\n  faPersonSkiingNordic: faPersonSkiingNordic,\n  faSkiingNordic: faSkiingNordic,\n  faSquareCheck: faSquareCheck,\n  faCheckSquare: faCheckSquare,\n  faBath: faBath,\n  faBathtub: faBathtub,\n  faChessBishop: faChessBishop,\n  faPrescriptionBottleMedical: faPrescriptionBottleMedical,\n  faPrescriptionBottleAlt: faPrescriptionBottleAlt,\n  faDrawPolygon: faDrawPolygon,\n  faVectorPolygon: faVectorPolygon,\n  faICursor: faICursor,\n  faHeartCirclePlus: faHeartCirclePlus,\n  faShieldDog: faShieldDog,\n  faGreaterThanEqual: faGreaterThanEqual,\n  faEnvelopeOpen: faEnvelopeOpen,\n  faMound: faMound,\n  faVoicemail: faVoicemail,\n  faVest: faVest,\n  faAudioDescription: faAudioDescription,\n  faW: faW,\n  faEyeDropper: faEyeDropper,\n  faEyeDropperEmpty: faEyeDropperEmpty,\n  faEyedropper: faEyedropper,\n  faCircleXmark: faCircleXmark,\n  faTimesCircle: faTimesCircle,\n  faXmarkCircle: faXmarkCircle,\n  faTrailer: faTrailer,\n  faTurkishLiraSign: faTurkishLiraSign,\n  faTry: faTry,\n  faTurkishLira: faTurkishLira,\n  faVolcano: faVolcano,\n  faWandSparkles: faWandSparkles,\n  faMicrophone: faMicrophone,\n  faCrown: faCrown,\n  faTentArrowTurnLeft: faTentArrowTurnLeft,\n  faTruckFast: faTruckFast,\n  faShippingFast: faShippingFast,\n  faUserPen: faUserPen,\n  faUserEdit: faUserEdit,\n  faUserClock: faUserClock,\n  faShower: faShower,\n  faSquareCaretUp: faSquareCaretUp,\n  faCaretSquareUp: faCaretSquareUp,\n  faMapLocation: faMapLocation,\n  faMapMarked: faMapMarked,\n  faPenFancy: faPenFancy,\n  faEuroSign: faEuroSign,\n  faEur: faEur,\n  faEuro: faEuro,\n  faHouseCircleXmark: faHouseCircleXmark,\n  faLiraSign: faLiraSign,\n  faYenSign: faYenSign,\n  faCny: faCny,\n  faJpy: faJpy,\n  faRmb: faRmb,\n  faYen: faYen,\n  faBoxOpen: faBoxOpen,\n  faTruckField: faTruckField,\n  faLocationPinLock: faLocationPinLock,\n  faPersonPraying: faPersonPraying,\n  faPray: faPray,\n  faClipboardList: faClipboardList,\n  faSackDollar: faSackDollar,\n  faMountainSun: faMountainSun,\n  faArrowUpWideShort: faArrowUpWideShort,\n  faSortAmountUp: faSortAmountUp,\n  faUsersLine: faUsersLine,\n  faStarOfDavid: faStarOfDavid,\n  faNotesMedical: faNotesMedical,\n  faAustralSign: faAustralSign,\n  faClipboardUser: faClipboardUser,\n  faFileImage: faFileImage,\n  faSquareCaretRight: faSquareCaretRight,\n  faCaretSquareRight: faCaretSquareRight,\n  faVial: faVial,\n  faHelicopter: faHelicopter,\n  faMitten: faMitten,\n  faGasPump: faGasPump,\n  faEnvelopeCircleCheck: faEnvelopeCircleCheck,\n  faPersonSkating: faPersonSkating,\n  faSkating: faSkating,\n  faSun: faSun,\n  faBaseball: faBaseball,\n  faBaseballBall: faBaseballBall,\n  faImage: faImage,\n  faNotdef: faNotdef,\n  faBasketball: faBasketball,\n  faBasketballBall: faBasketballBall,\n  faPencil: faPencil,\n  faPencilAlt: faPencilAlt,\n  faPersonWalkingArrowLoopLeft: faPersonWalkingArrowLoopLeft,\n  faDiceSix: faDiceSix,\n  faAnglesDown: faAnglesDown,\n  faAngleDoubleDown: faAngleDoubleDown,\n  faSyringe: faSyringe,\n  faWheatAwn: faWheatAwn,\n  faWheatAlt: faWheatAlt,\n  faPlaneUp: faPlaneUp,\n  faAlignCenter: faAlignCenter,\n  faHockeyPuck: faHockeyPuck,\n  faCircleArrowLeft: faCircleArrowLeft,\n  faArrowCircleLeft: faArrowCircleLeft,\n  faPlugCircleBolt: faPlugCircleBolt,\n  faRestroom: faRestroom,\n  faAnchorLock: faAnchorLock,\n  faTimeline: faTimeline,\n  faLightbulb: faLightbulb,\n  faCircleArrowRight: faCircleArrowRight,\n  faArrowCircleRight: faArrowCircleRight,\n  faMarsAndVenus: faMarsAndVenus,\n  faNetworkWired: faNetworkWired,\n  faBuildingShield: faBuildingShield,\n  faCode: faCode,\n  faFeatherPointed: faFeatherPointed,\n  faFeatherAlt: faFeatherAlt,\n  faFileCircleQuestion: faFileCircleQuestion,\n  faSignature: faSignature,\n  faEarthAmericas: faEarthAmericas,\n  faEarth: faEarth,\n  faEarthAmerica: faEarthAmerica,\n  faGlobeAmericas: faGlobeAmericas,\n  faCarrot: faCarrot,\n  faTemperatureFull: faTemperatureFull,\n  faTemperature4: faTemperature4,\n  faThermometer4: faThermometer4,\n  faThermometerFull: faThermometerFull,\n  faTableCellsRowLock: faTableCellsRowLock,\n  faBoltLightning: faBoltLightning,\n  faCloudShowersWater: faCloudShowersWater,\n  faArrowUpLong: faArrowUpLong,\n  faLongArrowUp: faLongArrowUp,\n  faAddressCard: faAddressCard,\n  faContactCard: faContactCard,\n  faVcard: faVcard,\n  faAngleRight: faAngleRight,\n  faFaceMeh: faFaceMeh,\n  faMeh: faMeh,\n  faArrowUpFromGroundWater: faArrowUpFromGroundWater,\n  faMap: faMap,\n  faUserPlus: faUserPlus,\n  faVenus: faVenus,\n  faDiagramSuccessor: faDiagramSuccessor,\n  faHeadSideCoughSlash: faHeadSideCoughSlash,\n  faDiagramProject: faDiagramProject,\n  faProjectDiagram: faProjectDiagram,\n  faTerminal: faTerminal,\n  faHouseFire: faHouseFire,\n  faMask: faMask,\n  faHurricane: faHurricane,\n  faEarthAfrica: faEarthAfrica,\n  faGlobeAfrica: faGlobeAfrica,\n  faThumbtack: faThumbtack,\n  faThumbTack: faThumbTack,\n  faHandPointDown: faHandPointDown,\n  faFaceMehBlank: faFaceMehBlank,\n  faMehBlank: faMehBlank,\n  faTemperatureEmpty: faTemperatureEmpty,\n  faTemperature0: faTemperature0,\n  faThermometer0: faThermometer0,\n  faThermometerEmpty: faThermometerEmpty,\n  faBorderNone: faBorderNone,\n  faHighlighter: faHighlighter,\n  faMoneyBillWave: faMoneyBillWave,\n  faToiletPaperSlash: faToiletPaperSlash,\n  faFileShield: faFileShield,\n  faTextHeight: faTextHeight,\n  faFaceGrinTongue: faFaceGrinTongue,\n  faGrinTongue: faGrinTongue,\n  faFileSignature: faFileSignature,\n  faBuildingWheat: faBuildingWheat,\n  faPlugCircleMinus: faPlugCircleMinus,\n  faFutbol: faFutbol,\n  faFutbolBall: faFutbolBall,\n  faSoccerBall: faSoccerBall,\n  faCirclePlus: faCirclePlus,\n  faPlusCircle: faPlusCircle,\n  faBrazilianRealSign: faBrazilianRealSign,\n  faStarAndCrescent: faStarAndCrescent,\n  faFaceSurprise: faFaceSurprise,\n  faSurprise: faSurprise,\n  faHospitalUser: faHospitalUser,\n  faArrowDownUpLock: faArrowDownUpLock,\n  faFolder: faFolder,\n  faFolderBlank: faFolderBlank,\n  faHollyBerry: faHollyBerry,\n  faVenusDouble: faVenusDouble,\n  faClipboardQuestion: faClipboardQuestion,\n  faHotdog: faHotdog,\n  faArrowUpFromBracket: faArrowUpFromBracket,\n  faMicroscope: faMicroscope,\n  faCloud: faCloud,\n  faBaseballBatBall: faBaseballBatBall,\n  faCarRear: faCarRear,\n  faCarAlt: faCarAlt,\n  faThumbtackSlash: faThumbtackSlash,\n  faThumbTackSlash: faThumbTackSlash,\n  faPlusMinus: faPlusMinus,\n  faHouseCircleCheck: faHouseCircleCheck,\n  faCalendarDay: faCalendarDay,\n  faLibra: faLibra,\n  faCircle: faCircle,\n  faMobileVibrate: faMobileVibrate,\n  faFaceGrinSquint: faFaceGrinSquint,\n  faGrinSquint: faGrinSquint,\n  faUsersBetweenLines: faUsersBetweenLines,\n  faHouseMedicalCircleXmark: faHouseMedicalCircleXmark,\n  faTableList: faTableList,\n  faThList: faThList,\n  faFlaskVial: faFlaskVial,\n  faCircleExclamation: faCircleExclamation,\n  faExclamationCircle: faExclamationCircle,\n  faTaxi: faTaxi,\n  faCab: faCab,\n  faTextSlash: faTextSlash,\n  faRemoveFormat: faRemoveFormat,\n  faPeoplePulling: faPeoplePulling,\n  faBackward: faBackward,\n  faCarBurst: faCarBurst,\n  faCarCrash: faCarCrash,\n  faLink: faLink,\n  faChain: faChain,\n  faBackwardStep: faBackwardStep,\n  faStepBackward: faStepBackward,\n  faX: faX,\n  faCircleUser: faCircleUser,\n  faUserCircle: faUserCircle,\n  faRectangleList: faRectangleList,\n  faListAlt: faListAlt,\n  faHand: faHand,\n  faHandPaper: faHandPaper,\n  faCancer: faCancer,\n  faVanShuttle: faVanShuttle,\n  faShuttleVan: faShuttleVan,\n  faStairs: faStairs,\n  faHorseHead: faHorseHead,\n  faVault: faVault,\n  faClosedCaptioningSlash: faClosedCaptioningSlash,\n  faDrumSteelpan: faDrumSteelpan,\n  faThumbsUp: faThumbsUp,\n  faStamp: faStamp,\n  faMenorah: faMenorah,\n  faChildren: faChildren,\n  faChartLine: faChartLine,\n  faLineChart: faLineChart,\n  faSquareEnvelope: faSquareEnvelope,\n  faEnvelopeSquare: faEnvelopeSquare,\n  faBanSmoking: faBanSmoking,\n  faSmokingBan: faSmokingBan,\n  faTruckFront: faTruckFront,\n  faBuilding: faBuilding,\n  faBullseye: faBullseye,\n  faArrowLeftLong: faArrowLeftLong,\n  faLongArrowLeft: faLongArrowLeft,\n  faChessRook: faChessRook,\n  faBlenderPhone: faBlenderPhone,\n  faArrowTurnUp: faArrowTurnUp,\n  faLevelUp: faLevelUp,\n  faBicycle: faBicycle,\n  faCircleArrowDown: faCircleArrowDown,\n  faArrowCircleDown: faArrowCircleDown,\n  faGear: faGear,\n  faCog: faCog,\n  faMarsAndVenusBurst: faMarsAndVenusBurst,\n  faOtter: faOtter,\n  faCircleChevronLeft: faCircleChevronLeft,\n  faChevronCircleLeft: faChevronCircleLeft,\n  faCircleQuestion: faCircleQuestion,\n  faQuestionCircle: faQuestionCircle,\n  faWalkieTalkie: faWalkieTalkie,\n  faUserGroup: faUserGroup,\n  faUserFriends: faUserFriends,\n  faHouseChimney: faHouseChimney,\n  faHomeLg: faHomeLg,\n  faRightFromBracket: faRightFromBracket,\n  faSignOutAlt: faSignOutAlt,\n  faFile: faFile,\n  faPlaneSlash: faPlaneSlash,\n  faCloudShowersHeavy: faCloudShowersHeavy,\n  faPersonFalling: faPersonFalling,\n  faTurnDown: faTurnDown,\n  faLevelDownAlt: faLevelDownAlt,\n  faUpRightAndDownLeftFromCenter: faUpRightAndDownLeftFromCenter,\n  faExpandAlt: faExpandAlt,\n  faUserTag: faUserTag,\n  faHandSparkles: faHandSparkles,\n  faArrowsToDot: faArrowsToDot,\n  faFaceSadCry: faFaceSadCry,\n  faSadCry: faSadCry,\n  faDongSign: faDongSign,\n  faPeopleLine: faPeopleLine,\n  faSquareRss: faSquareRss,\n  faRssSquare: faRssSquare,\n  faCalendarMinus: faCalendarMinus,\n  faChartDiagram: faChartDiagram,\n  faFaceTired: faFaceTired,\n  faTired: faTired,\n  faHandPointRight: faHandPointRight,\n  faArrowUp: faArrowUp,\n  faCubesStacked: faCubesStacked,\n  faChildCombatant: faChildCombatant,\n  faChildRifle: faChildRifle,\n  faVestPatches: faVestPatches,\n  faMartiniGlassEmpty: faMartiniGlassEmpty,\n  faGlassMartini: faGlassMartini,\n  faMagnet: faMagnet,\n  faRoadBarrier: faRoadBarrier,\n  faCompassDrafting: faCompassDrafting,\n  faDraftingCompass: faDraftingCompass,\n  faSquarePersonConfined: faSquarePersonConfined,\n  faPlateWheat: faPlateWheat,\n  faSignHanging: faSignHanging,\n  faSign: faSign,\n  faCarBattery: faCarBattery,\n  faBatteryCar: faBatteryCar,\n  faShirt: faShirt,\n  faTShirt: faTShirt,\n  faTshirt: faTshirt,\n  faParagraph: faParagraph,\n  faEnvelopesBulk: faEnvelopesBulk,\n  faMailBulk: faMailBulk,\n  faGuitar: faGuitar,\n  faSuitcase: faSuitcase,\n  faCircleUp: faCircleUp,\n  faArrowAltCircleUp: faArrowAltCircleUp,\n  faF: faF,\n  faXmarksLines: faXmarksLines,\n  faEarthOceania: faEarthOceania,\n  faGlobeOceania: faGlobeOceania,\n  faCommentSlash: faCommentSlash,\n  faPlay: faPlay,\n  faVialCircleCheck: faVialCircleCheck,\n  faBridgeCircleCheck: faBridgeCircleCheck,\n  faCediSign: faCediSign,\n  faPuzzlePiece: faPuzzlePiece,\n  faHelmetUn: faHelmetUn,\n  faGlassWater: faGlassWater,\n  faHeartCircleBolt: faHeartCircleBolt,\n  faPumpSoap: faPumpSoap,\n  faHandScissors: faHandScissors,\n  faDolly: faDolly,\n  faDollyBox: faDollyBox,\n  faPaperclip: faPaperclip,\n  faDemocrat: faDemocrat,\n  faSquareArrowUpRight: faSquareArrowUpRight,\n  faExternalLinkSquare: faExternalLinkSquare,\n  faFerry: faFerry,\n  faMosquito: faMosquito,\n  faBuildingCircleArrowRight: faBuildingCircleArrowRight,\n  faLeftRight: faLeftRight,\n  faArrowsAltH: faArrowsAltH,\n  faVirus: faVirus,\n  faGem: faGem,\n  faToilet: faToilet,\n  faSingleQuoteLeft: faSingleQuoteLeft,\n  faMoneyBills: faMoneyBills,\n  faTabletButton: faTabletButton,\n  faRectangleXmark: faRectangleXmark,\n  faRectangleTimes: faRectangleTimes,\n  faTimesRectangle: faTimesRectangle,\n  faWindowClose: faWindowClose,\n  faWrench: faWrench,\n  faTrashCan: faTrashCan,\n  faTrashAlt: faTrashAlt,\n  faTableCells: faTableCells,\n  faTh: faTh,\n  faRibbon: faRibbon,\n  faLandmarkFlag: faLandmarkFlag,\n  faUpDownLeftRight: faUpDownLeftRight,\n  faArrowsAlt: faArrowsAlt,\n  faCarSide: faCarSide,\n  faTrashArrowUp: faTrashArrowUp,\n  faTrashRestore: faTrashRestore,\n  faLifeRing: faLifeRing,\n  faCopyright: faCopyright,\n  faFilePrescription: faFilePrescription,\n  faEraser: faEraser,\n  faHourglassStart: faHourglassStart,\n  faHourglass1: faHourglass1,\n  faCircleLeft: faCircleLeft,\n  faArrowAltCircleLeft: faArrowAltCircleLeft,\n  faCruzeiroSign: faCruzeiroSign,\n  faSmoking: faSmoking,\n  faSquarePollVertical: faSquarePollVertical,\n  faPoll: faPoll,\n  faPersonCircleMinus: faPersonCircleMinus,\n  faBiohazard: faBiohazard,\n  faBellConcierge: faBellConcierge,\n  faConciergeBell: faConciergeBell,\n  faRulerHorizontal: faRulerHorizontal,\n  faHorse: faHorse,\n  faCalendar: faCalendar,\n  faHandsHoldingChild: faHandsHoldingChild,\n  faItalic: faItalic,\n  faKhanda: faKhanda,\n  faFaceFrownOpen: faFaceFrownOpen,\n  faFrownOpen: faFrownOpen,\n  faCheck: faCheck,\n  faFingerprint: faFingerprint,\n  faChargingStation: faChargingStation,\n  faUserLock: faUserLock,\n  faMobileScreenButton: faMobileScreenButton,\n  faMobileAlt: faMobileAlt,\n  faAnchorCircleCheck: faAnchorCircleCheck,\n  faPersonWalkingWithCane: faPersonWalkingWithCane,\n  faBlind: faBlind,\n  faFileWaveform: faFileWaveform,\n  faFileMedicalAlt: faFileMedicalAlt,\n  faHouseCrack: faHouseCrack,\n  faHatWizard: faHatWizard,\n  faUserDoctor: faUserDoctor,\n  faUserMd: faUserMd,\n  faChartBar: faChartBar,\n  faBarChart: faBarChart,\n  faSprayCanSparkles: faSprayCanSparkles,\n  faAirFreshener: faAirFreshener,\n  faBahtSign: faBahtSign,\n  faTemperatureArrowUp: faTemperatureArrowUp,\n  faTemperatureUp: faTemperatureUp,\n  faWebAwesome: faWebAwesome,\n  faNonBinary: faNonBinary,\n  faN: faN,\n  faArrowsUpDownLeftRight: faArrowsUpDownLeftRight,\n  faArrows: faArrows,\n  faHouse: faHouse,\n  faHome: faHome,\n  faHomeAlt: faHomeAlt,\n  faHomeLgAlt: faHomeLgAlt,\n  faSpinner: faSpinner,\n  faGavel: faGavel,\n  faLegal: faLegal,\n  faTicketSimple: faTicketSimple,\n  faTicketAlt: faTicketAlt,\n  faDove: faDove,\n  faTarpDroplet: faTarpDroplet,\n  faTreeCity: faTreeCity,\n  faTurnUp: faTurnUp,\n  faLevelUpAlt: faLevelUpAlt,\n  faTemperatureQuarter: faTemperatureQuarter,\n  faTemperature1: faTemperature1,\n  faThermometer1: faThermometer1,\n  faThermometerQuarter: faThermometerQuarter,\n  faSliders: faSliders,\n  faSlidersH: faSlidersH,\n  faMosque: faMosque,\n  faH: faH,\n  faInfo: faInfo,\n  faPersonWalking: faPersonWalking,\n  faWalking: faWalking,\n  faArrowTurnDown: faArrowTurnDown,\n  faLevelDown: faLevelDown,\n  faRoad: faRoad,\n  faSpiral: faSpiral,\n  faFaceFrown: faFaceFrown,\n  faFrown: faFrown,\n  faWineGlassEmpty: faWineGlassEmpty,\n  faWineGlassAlt: faWineGlassAlt,\n  faClapperboard: faClapperboard,\n  faForwardStep: faForwardStep,\n  faStepForward: faStepForward,\n  faSquareUpRight: faSquareUpRight,\n  faExternalLinkSquareAlt: faExternalLinkSquareAlt,\n  faBookJournalWhills: faBookJournalWhills,\n  faJournalWhills: faJournalWhills,\n  faChampagneGlasses: faChampagneGlasses,\n  faGlassCheers: faGlassCheers,\n  faDumpster: faDumpster,\n  faHeartCircleXmark: faHeartCircleXmark,\n  faComputer: faComputer,\n  faWandMagic: faWandMagic,\n  faMagic: faMagic,\n  faBrain: faBrain,\n  faBriefcaseMedical: faBriefcaseMedical,\n  faHouseMedicalCircleExclamation: faHouseMedicalCircleExclamation,\n  faCodeCommit: faCodeCommit,\n  faPersonBreastfeeding: faPersonBreastfeeding,\n  faPersonRays: faPersonRays,\n  faManatSign: faManatSign,\n  faSort: faSort,\n  faUnsorted: faUnsorted,\n  faCircleRadiation: faCircleRadiation,\n  faRadiationAlt: faRadiationAlt,\n  faLaptopCode: faLaptopCode,\n  faSink: faSink,\n  faArrowUpFromWaterPump: faArrowUpFromWaterPump,\n  faMicrophoneLinesSlash: faMicrophoneLinesSlash,\n  faMicrophoneAltSlash: faMicrophoneAltSlash,\n  faServer: faServer,\n  faUser: faUser,\n  faUserAlt: faUserAlt,\n  faUserLarge: faUserLarge,\n  faSnowflake: faSnowflake,\n  faTaurus: faTaurus,\n  faSkullCrossbones: faSkullCrossbones,\n  faPesoSign: faPesoSign,\n  faWineGlass: faWineGlass,\n  faTemperatureHalf: faTemperatureHalf,\n  faTemperature2: faTemperature2,\n  faThermometer2: faThermometer2,\n  faThermometerHalf: faThermometerHalf,\n  faTicket: faTicket,\n  faWheatAwnCircleExclamation: faWheatAwnCircleExclamation,\n  faArrowsTurnRight: faArrowsTurnRight,\n  faCandyCane: faCandyCane,\n  faWheelchair: faWheelchair,\n  faSpellCheck: faSpellCheck,\n  faVolumeOff: faVolumeOff,\n  faLungs: faLungs,\n  faBookmark: faBookmark,\n  faBarcode: faBarcode,\n  faListOl: faListOl,\n  faList12: faList12,\n  faListNumeric: faListNumeric,\n  faFileCircleXmark: faFileCircleXmark,\n  faCube: faCube,\n  faTape: faTape,\n  faBomb: faBomb,\n  faScaleUnbalanced: faScaleUnbalanced,\n  faBalanceScaleLeft: faBalanceScaleLeft,\n  faSquareCaretLeft: faSquareCaretLeft,\n  faCaretSquareLeft: faCaretSquareLeft,\n  faRuler: faRuler,\n  faI: faI,\n  faVolumeXmark: faVolumeXmark,\n  faVolumeMute: faVolumeMute,\n  faVolumeTimes: faVolumeTimes,\n  faArchway: faArchway,\n  faPersonDigging: faPersonDigging,\n  faDigging: faDigging,\n  faGaugeHigh: faGaugeHigh,\n  faTachometerAlt: faTachometerAlt,\n  faTachometerAltFast: faTachometerAltFast,\n  faGenderless: faGenderless,\n  faCloudSun: faCloudSun,\n  faArrowRight: faArrowRight,\n  faHandshake: faHandshake,\n  faHandshakeAlt: faHandshakeAlt,\n  faHandshakeSimple: faHandshakeSimple,\n  faPersonSkiing: faPersonSkiing,\n  faSkiing: faSkiing,\n  faBridgeWater: faBridgeWater,\n  faBuildingNgo: faBuildingNgo,\n  faIgloo: faIgloo,\n  faCircleDollarToSlot: faCircleDollarToSlot,\n  faDonate: faDonate,\n  faY: faY,\n  faFaceSmileWink: faFaceSmileWink,\n  faSmileWink: faSmileWink,\n  faDiceFour: faDiceFour,\n  faFaceGrinSquintTears: faFaceGrinSquintTears,\n  faGrinSquintTears: faGrinSquintTears,\n  faFileAudio: faFileAudio,\n  faArrowsDownToLine: faArrowsDownToLine,\n  faG: faG,\n  faVihara: faVihara,\n  faFlagCheckered: faFlagCheckered,\n  faGaugeSimple: faGaugeSimple,\n  faGaugeSimpleMed: faGaugeSimpleMed,\n  faTachometerAverage: faTachometerAverage,\n  faRightLeft: faRightLeft,\n  faExchangeAlt: faExchangeAlt,\n  faPills: faPills,\n  faExplosion: faExplosion,\n  faArrowsDownToPeople: faArrowsDownToPeople,\n  faUsersViewfinder: faUsersViewfinder,\n  faCarOn: faCarOn,\n  faSleigh: faSleigh,\n  faDumbbell: faDumbbell,\n  faBabyCarriage: faBabyCarriage,\n  faCarriageBaby: faCarriageBaby,\n  faKiwiBird: faKiwiBird,\n  faCalendarXmark: faCalendarXmark,\n  faCalendarTimes: faCalendarTimes,\n  faCircleDown: faCircleDown,\n  faArrowAltCircleDown: faArrowAltCircleDown,\n  faFileMedical: faFileMedical,\n  faXmark: faXmark,\n  faClose: faClose,\n  faMultiply: faMultiply,\n  faRemove: faRemove,\n  faTimes: faTimes,\n  faShapes: faShapes,\n  faTriangleCircleSquare: faTriangleCircleSquare,\n  faDiceOne: faDiceOne,\n  faLockOpen: faLockOpen,\n  faPepperHot: faPepperHot,\n  faDropletSlash: faDropletSlash,\n  faTintSlash: faTintSlash,\n  faDroplet: faDroplet,\n  faTint: faTint,\n  faFileLines: faFileLines,\n  faFileAlt: faFileAlt,\n  faFileText: faFileText,\n  faCommentsDollar: faCommentsDollar,\n  faMagnifyingGlassLocation: faMagnifyingGlassLocation,\n  faSearchLocation: faSearchLocation,\n  faFileInvoice: faFileInvoice,\n  faPentagon: faPentagon,\n  faRepublican: faRepublican,\n  faShop: faShop,\n  faStoreAlt: faStoreAlt,\n  faFilm: faFilm,\n  faFilmAlt: faFilmAlt,\n  faFilmSimple: faFilmSimple,\n  faBuildingCircleXmark: faBuildingCircleXmark,\n  faComments: faComments,\n  faTags: faTags,\n  faGun: faGun,\n  faCircleCheck: faCircleCheck,\n  faCheckCircle: faCheckCircle,\n  faScorpio: faScorpio,\n  faIdCardClip: faIdCardClip,\n  faIdCardAlt: faIdCardAlt,\n  faMoon: faMoon,\n  faOilWell: faOilWell,\n  faTachographDigital: faTachographDigital,\n  faDigitalTachograph: faDigitalTachograph,\n  faTablet: faTablet,\n  faTabletAndroid: faTabletAndroid,\n  faRubleSign: faRubleSign,\n  faRouble: faRouble,\n  faRub: faRub,\n  faRuble: faRuble,\n  faClosedCaptioning: faClosedCaptioning,\n  faPen: faPen,\n  faPlane: faPlane,\n  faImages: faImages,\n  faMobileScreen: faMobileScreen,\n  faMobileAndroidAlt: faMobileAndroidAlt,\n  faGuaraniSign: faGuaraniSign,\n  faBagShopping: faBagShopping,\n  faShoppingBag: faShoppingBag,\n  faCircleRight: faCircleRight,\n  faArrowAltCircleRight: faArrowAltCircleRight,\n  faPhoneVolume: faPhoneVolume,\n  faVolumeControlPhone: faVolumeControlPhone,\n  faCubes: faCubes,\n  faPhone: faPhone,\n  faToriiGate: faToriiGate,\n  faBacon: faBacon,\n  faPersonFallingBurst: faPersonFallingBurst,\n  faQuoteRight: faQuoteRight,\n  faQuoteRightAlt: faQuoteRightAlt,\n  faHouseMedicalFlag: faHouseMedicalFlag,\n  faPrescription: faPrescription,\n  faDiceThree: faDiceThree,\n  faBuildingLock: faBuildingLock,\n  faIdCard: faIdCard,\n  faDriversLicense: faDriversLicense,\n  faCirclePlay: faCirclePlay,\n  faPlayCircle: faPlayCircle,\n  faFaceLaughBeam: faFaceLaughBeam,\n  faLaughBeam: faLaughBeam,\n  faLeaf: faLeaf,\n  faHouseChimneyUser: faHouseChimneyUser,\n  faRotateRight: faRotateRight,\n  faRedoAlt: faRedoAlt,\n  faRotateForward: faRotateForward,\n  faTooth: faTooth,\n  faHouseChimneyWindow: faHouseChimneyWindow,\n  faMotorcycle: faMotorcycle,\n  faBackwardFast: faBackwardFast,\n  faFastBackward: faFastBackward,\n  faAddressBook: faAddressBook,\n  faContactBook: faContactBook,\n  faSailboat: faSailboat,\n  faBookBookmark: faBookBookmark,\n  faMagnifyingGlassArrowRight: faMagnifyingGlassArrowRight,\n  faMicrophoneLines: faMicrophoneLines,\n  faMicrophoneAlt: faMicrophoneAlt,\n  faReplyAll: faReplyAll,\n  faMailReplyAll: faMailReplyAll,\n  faUniversalAccess: faUniversalAccess,\n  faToiletPaper: faToiletPaper,\n  faToiletPaperAlt: faToiletPaperAlt,\n  faToiletPaperBlank: faToiletPaperBlank,\n  faVrCardboard: faVrCardboard,\n  faPizzaSlice: faPizzaSlice,\n  faSprayCan: faSprayCan,\n  faVolumeLow: faVolumeLow,\n  faVolumeDown: faVolumeDown,\n  faCross: faCross,\n  faPerson: faPerson,\n  faMale: faMale,\n  faHourglass: faHourglass,\n  faHourglassEmpty: faHourglassEmpty,\n  faFish: faFish,\n  faDrumstickBite: faDrumstickBite,\n  faChartSimple: faChartSimple,\n  faAtom: faAtom,\n  faP: faP,\n  faJetFighterUp: faJetFighterUp,\n  faPlugCircleXmark: faPlugCircleXmark,\n  faSheetPlastic: faSheetPlastic,\n  faV: faV,\n  faList: faList,\n  faListSquares: faListSquares,\n  faPisces: faPisces,\n  faSolarPanel: faSolarPanel,\n  faLandMineOn: faLandMineOn,\n  faHeadphones: faHeadphones,\n  faHeadphonesAlt: faHeadphonesAlt,\n  faHeadphonesSimple: faHeadphonesSimple,\n  faBus: faBus,\n  faFilePowerpoint: faFilePowerpoint,\n  faQuoteLeft: faQuoteLeft,\n  faQuoteLeftAlt: faQuoteLeftAlt,\n  faChevronDown: faChevronDown,\n  faEarthAsia: faEarthAsia,\n  faGlobeAsia: faGlobeAsia,\n  faCentSign: faCentSign,\n  faShieldCat: faShieldCat,\n  faSchoolCircleCheck: faSchoolCircleCheck,\n  faMartiniGlass: faMartiniGlass,\n  faGlassMartiniAlt: faGlassMartiniAlt,\n  faPlug: faPlug,\n  faPanorama: faPanorama,\n  faClockRotateLeft: faClockRotateLeft,\n  faHistory: faHistory,\n  faJarWheat: faJarWheat,\n  faCloudArrowDown: faCloudArrowDown,\n  faCloudDownload: faCloudDownload,\n  faCloudDownloadAlt: faCloudDownloadAlt,\n  faTruckRampBox: faTruckRampBox,\n  faTruckLoading: faTruckLoading,\n  faAngleDown: faAngleDown,\n  faPlugCircleCheck: faPlugCircleCheck,\n  faWindowMaximize: faWindowMaximize,\n  faHandsHoldingCircle: faHandsHoldingCircle,\n  faLocationPin: faLocationPin,\n  faMapMarker: faMapMarker,\n  faBowlingBall: faBowlingBall,\n  faCartFlatbed: faCartFlatbed,\n  faDollyFlatbed: faDollyFlatbed,\n  faHouseUser: faHouseUser,\n  faHomeUser: faHomeUser,\n  faGhost: faGhost,\n  faCommentNodes: faCommentNodes,\n  faPersonArrowDownToLine: faPersonArrowDownToLine,\n  faPlugCirclePlus: faPlugCirclePlus,\n  faPersonSwimming: faPersonSwimming,\n  faSwimmer: faSwimmer,\n  faCommentDots: faCommentDots,\n  faCommenting: faCommenting,\n  faChartPie: faChartPie,\n  faPieChart: faPieChart,\n  faFrog: faFrog,\n  faWineBottle: faWineBottle,\n  faInbox: faInbox,\n  faSquareH: faSquareH,\n  faHSquare: faHSquare,\n  faHouseMedical: faHouseMedical,\n  faCircleChevronRight: faCircleChevronRight,\n  faChevronCircleRight: faChevronCircleRight,\n  faFileCsv: faFileCsv,\n  faHatCowboy: faHatCowboy,\n  faFaceGrinTongueWink: faFaceGrinTongueWink,\n  faGrinTongueWink: faGrinTongueWink,\n  faL: faL,\n  faArrowDownShortWide: faArrowDownShortWide,\n  faSortAmountDesc: faSortAmountDesc,\n  faSortAmountDownAlt: faSortAmountDownAlt,\n  faHourglassHalf: faHourglassHalf,\n  faHourglass2: faHourglass2,\n  faSpoon: faSpoon,\n  faUtensilSpoon: faUtensilSpoon,\n  faCreditCard: faCreditCard,\n  faCreditCardAlt: faCreditCardAlt,\n  faFileInvoiceDollar: faFileInvoiceDollar,\n  faSpaghettiMonsterFlying: faSpaghettiMonsterFlying,\n  faPastafarianism: faPastafarianism,\n  faMartiniGlassCitrus: faMartiniGlassCitrus,\n  faCocktail: faCocktail,\n  faBullhorn: faBullhorn,\n  faBoxTissue: faBoxTissue,\n  faMattressPillow: faMattressPillow,\n  faChevronLeft: faChevronLeft,\n  faCloudMoonRain: faCloudMoonRain,\n  faArrowDown19: faArrowDown19,\n  faSortNumericAsc: faSortNumericAsc,\n  faSortNumericDown: faSortNumericDown,\n  faHandSpock: faHandSpock,\n  faWandMagicSparkles: faWandMagicSparkles,\n  faMagicWandSparkles: faMagicWandSparkles,\n  faCommentMedical: faCommentMedical,\n  faBellSlash: faBellSlash,\n  faHandshakeSlash: faHandshakeSlash,\n  faHandshakeAltSlash: faHandshakeAltSlash,\n  faHandshakeSimpleSlash: faHandshakeSimpleSlash,\n  faBottleWater: faBottleWater,\n  faDiceD20: faDiceD20,\n  faArrowDownZA: faArrowDownZA,\n  faSortAlphaDesc: faSortAlphaDesc,\n  faSortAlphaDownAlt: faSortAlphaDownAlt,\n  faBrush: faBrush,\n  faPersonWalkingDashedLineArrowRight: faPersonWalkingDashedLineArrowRight,\n  faArrowUpShortWide: faArrowUpShortWide,\n  faSortAmountUpAlt: faSortAmountUpAlt,\n  faGripVertical: faGripVertical,\n  faGridVertical: faGridVertical,\n  faCarTunnel: faCarTunnel,\n  faChartColumn: faChartColumn,\n  faCapricorn: faCapricorn,\n  faTruckArrowRight: faTruckArrowRight,\n  faTv: faTv,\n  faTelevision: faTelevision,\n  faTvAlt: faTvAlt,\n  faSection: faSection,\n  faPeace: faPeace,\n  faStar: faStar,\n  faFlag: faFlag,\n  faTriangleExclamation: faTriangleExclamation,\n  faExclamationTriangle: faExclamationTriangle,\n  faWarning: faWarning,\n  faSchoolCircleExclamation: faSchoolCircleExclamation,\n  faGraduationCap: faGraduationCap,\n  faMortarBoard: faMortarBoard,\n  faStore: faStore,\n  faUserAstronaut: faUserAstronaut,\n  faBuildingFlag: faBuildingFlag,\n  faMugSaucer: faMugSaucer,\n  faCoffee: faCoffee,\n  faLemon: faLemon,\n  faCaravan: faCaravan,\n  faQ: faQ,\n  faLock: faLock,\n  faPaintRoller: faPaintRoller,\n  faVolumeHigh: faVolumeHigh,\n  faVolumeUp: faVolumeUp,\n  faFolderPlus: faFolderPlus,\n  faMercury: faMercury,\n  faAnchor: faAnchor,\n  faSquareParking: faSquareParking,\n  faParking: faParking,\n  faHanukiah: faHanukiah,\n  faRotateLeft: faRotateLeft,\n  faRotateBack: faRotateBack,\n  faRotateBackward: faRotateBackward,\n  faUndoAlt: faUndoAlt,\n  faHeading: faHeading,\n  faHeader: faHeader,\n  faCrosshairs: faCrosshairs,\n  faCircleNodes: faCircleNodes,\n  faWindowRestore: faWindowRestore,\n  faR: faR,\n  faFilterCircleXmark: faFilterCircleXmark,\n  faGopuram: faGopuram,\n  faHeartCircleMinus: faHeartCircleMinus,\n  faStarOfLife: faStarOfLife,\n  faBusinessTime: faBusinessTime,\n  faBriefcaseClock: faBriefcaseClock,\n  faFireExtinguisher: faFireExtinguisher,\n  faArrowDownLong: faArrowDownLong,\n  faLongArrowDown: faLongArrowDown,\n  faUserMinus: faUserMinus,\n  faMoneyCheck: faMoneyCheck,\n  faHouseLaptop: faHouseLaptop,\n  faLaptopHouse: faLaptopHouse,\n  faDownload: faDownload,\n  faSagittarius: faSagittarius,\n  faCouch: faCouch,\n  faRoadLock: faRoadLock,\n  faScissors: faScissors,\n  faCut: faCut,\n  faBug: faBug,\n  faArrowRightFromBracket: faArrowRightFromBracket,\n  faSignOut: faSignOut,\n  faHandHoldingHand: faHandHoldingHand,\n  faStroopwafel: faStroopwafel,\n  faChild: faChild,\n  faIceCream: faIceCream,\n  faComputerMouse: faComputerMouse,\n  faMouse: faMouse,\n  faFaucet: faFaucet,\n  faAward: faAward,\n  faPersonDrowning: faPersonDrowning,\n  faCameraRotate: faCameraRotate,\n  faFaceGrinHearts: faFaceGrinHearts,\n  faGrinHearts: faGrinHearts,\n  faFileFragment: faFileFragment,\n  faPersonMilitaryRifle: faPersonMilitaryRifle,\n  faToggleOn: faToggleOn,\n  faLungsVirus: faLungsVirus,\n  faTableTennisPaddleBall: faTableTennisPaddleBall,\n  faPingPongPaddleBall: faPingPongPaddleBall,\n  faTableTennis: faTableTennis,\n  faBoxesPacking: faBoxesPacking,\n  faPersonChalkboard: faPersonChalkboard,\n  faDiceTwo: faDiceTwo,\n  faArrowRightArrowLeft: faArrowRightArrowLeft,\n  faExchange: faExchange,\n  faFootball: faFootball,\n  faFootballBall: faFootballBall,\n  faTruckMonster: faTruckMonster,\n  faAsterisk: faAsterisk,\n  faBatteryFull: faBatteryFull,\n  faBattery: faBattery,\n  faBattery5: faBattery5,\n  faChildDress: faChildDress,\n  faFaceKissBeam: faFaceKissBeam,\n  faKissBeam: faKissBeam,\n  faTrashCanArrowUp: faTrashCanArrowUp,\n  faTrashRestoreAlt: faTrashRestoreAlt,\n  faFont: faFont,\n  faBoreHole: faBoreHole,\n  faVirusCovid: faVirusCovid,\n  faFilePdf: faFilePdf,\n  faLanguage: faLanguage,\n  faShieldHalved: faShieldHalved,\n  faShieldAlt: faShieldAlt,\n  faCaretUp: faCaretUp,\n  faFilePen: faFilePen,\n  faFileEdit: faFileEdit,\n  faPersonBiking: faPersonBiking,\n  faBiking: faBiking,\n  faBookOpenReader: faBookOpenReader,\n  faBookReader: faBookReader,\n  faGlassWaterDroplet: faGlassWaterDroplet,\n  faTowerBroadcast: faTowerBroadcast,\n  faBroadcastTower: faBroadcastTower,\n  faMinimize: faMinimize,\n  faCompressArrowsAlt: faCompressArrowsAlt,\n  faArrowRightToCity: faArrowRightToCity,\n  faLaptopMedical: faLaptopMedical,\n  faBreadSlice: faBreadSlice,\n  faGlobe: faGlobe,\n  faFolderMinus: faFolderMinus,\n  faMaskFace: faMaskFace,\n  faBong: faBong,\n  faRoadBridge: faRoadBridge,\n  faArrowUp91: faArrowUp91,\n  faSortNumericUpAlt: faSortNumericUpAlt,\n  faMountainCity: faMountainCity,\n  faArrowDown91: faArrowDown91,\n  faSortNumericDesc: faSortNumericDesc,\n  faSortNumericDownAlt: faSortNumericDownAlt,\n  faFaceGrinWide: faFaceGrinWide,\n  faGrinAlt: faGrinAlt,\n  faPoop: faPoop,\n  faDharmachakra: faDharmachakra,\n  faBatteryQuarter: faBatteryQuarter,\n  faBattery2: faBattery2,\n  faAnkh: faAnkh,\n  faDiamond: faDiamond,\n  faSubscript: faSubscript,\n  faRupeeSign: faRupeeSign,\n  faRupee: faRupee,\n  faPersonRifle: faPersonRifle,\n  faD: faD,\n  faSquareNfi: faSquareNfi,\n  faTeeth: faTeeth,\n  faMagnifyingGlassDollar: faMagnifyingGlassDollar,\n  faSearchDollar: faSearchDollar,\n  faDumpsterFire: faDumpsterFire,\n  faUpload: faUpload,\n  faUserSlash: faUserSlash,\n  faUserAltSlash: faUserAltSlash,\n  faUserLargeSlash: faUserLargeSlash,\n  faArrowLeft: faArrowLeft,\n  faVialVirus: faVialVirus,\n  faCheckDouble: faCheckDouble,\n  faPaw: faPaw,\n  faHelmetSafety: faHelmetSafety,\n  faHardHat: faHardHat,\n  faHatHard: faHatHard,\n  faE: faE,\n  faFaceLaughSquint: faFaceLaughSquint,\n  faLaughSquint: faLaughSquint,\n  faDownLeftAndUpRightToCenter: faDownLeftAndUpRightToCenter,\n  faCompressAlt: faCompressAlt,\n  faGifts: faGifts,\n  faBed: faBed,\n  faMoneyBillTransfer: faMoneyBillTransfer,\n  faPersonRunning: faPersonRunning,\n  faRunning: faRunning,\n  faCircleChevronDown: faCircleChevronDown,\n  faChevronCircleDown: faChevronCircleDown,\n  faUserNurse: faUserNurse,\n  faFaceKissWinkHeart: faFaceKissWinkHeart,\n  faKissWinkHeart: faKissWinkHeart,\n  faFill: faFill,\n  faMoneyBill1Wave: faMoneyBill1Wave,\n  faMoneyBillWaveAlt: faMoneyBillWaveAlt,\n  faLandmark: faLandmark,\n  faMusic: faMusic,\n  faBookMedical: faBookMedical,\n  faShuffle: faShuffle,\n  faRandom: faRandom,\n  faUnderline: faUnderline,\n  faBuildingUser: faBuildingUser,\n  faRobot: faRobot,\n  faPlus: faPlus,\n  faAdd: faAdd,\n  faCopy: faCopy,\n  faChessKing: faChessKing,\n  faHouseFloodWater: faHouseFloodWater,\n  faBitcoinSign: faBitcoinSign,\n  faBox: faBox,\n  faSquarePlus: faSquarePlus,\n  faPlusSquare: faPlusSquare,\n  faArrowsLeftRight: faArrowsLeftRight,\n  faArrowsH: faArrowsH,\n  faFan: faFan,\n  faCrow: faCrow,\n  faFileCircleCheck: faFileCircleCheck,\n  faLinkSlash: faLinkSlash,\n  faChainBroken: faChainBroken,\n  faChainSlash: faChainSlash,\n  faUnlink: faUnlink,\n  faArrowRotateRight: faArrowRotateRight,\n  faArrowRightRotate: faArrowRightRotate,\n  faArrowRotateForward: faArrowRotateForward,\n  faRedo: faRedo,\n  faPenClip: faPenClip,\n  faPenAlt: faPenAlt,\n  faDoorClosed: faDoorClosed,\n  faArrowDownWideShort: faArrowDownWideShort,\n  faSortAmountAsc: faSortAmountAsc,\n  faSortAmountDown: faSortAmountDown,\n  faCaretDown: faCaretDown,\n  faK: faK,\n  faCheckToSlot: faCheckToSlot,\n  faVoteYea: faVoteYea,\n  faFishFins: faFishFins,\n  faCompress: faCompress,\n  faArrowUpAZ: faArrowUpAZ,\n  faSortAlphaUp: faSortAlphaUp,\n  faUserGraduate: faUserGraduate,\n  faFileCode: faFileCode,\n  faSoap: faSoap,\n  faRecycle: faRecycle,\n  faFaceGrinWink: faFaceGrinWink,\n  faGrinWink: faGrinWink,\n  faWaterLadder: faWaterLadder,\n  faLadderWater: faLadderWater,\n  faSwimmingPool: faSwimmingPool,\n  faGemini: faGemini,\n  faTowerCell: faTowerCell,\n  faColonSign: faColonSign,\n  faLaptopFile: faLaptopFile,\n  faBahai: faBahai,\n  faHaykal: faHaykal,\n  faMoneyBill1: faMoneyBill1,\n  faMoneyBillAlt: faMoneyBillAlt,\n  faCloudBolt: faCloudBolt,\n  faThunderstorm: faThunderstorm,\n  faEthernet: faEthernet,\n  faHryvniaSign: faHryvniaSign,\n  faHryvnia: faHryvnia,\n  faEyeSlash: faEyeSlash,\n  faCartFlatbedSuitcase: faCartFlatbedSuitcase,\n  faLuggageCart: faLuggageCart,\n  faRadiation: faRadiation,\n  faFileWord: faFileWord,\n  faBedPulse: faBedPulse,\n  faProcedures: faProcedures,\n  faTents: faTents,\n  faMugHot: faMugHot,\n  faBolt: faBolt,\n  faZap: faZap,\n  faJar: faJar,\n  faTruckPlane: faTruckPlane,\n  faHandHoldingHeart: faHandHoldingHeart,\n  faArrowRotateLeft: faArrowRotateLeft,\n  faArrowLeftRotate: faArrowLeftRotate,\n  faArrowRotateBack: faArrowRotateBack,\n  faArrowRotateBackward: faArrowRotateBackward,\n  faUndo: faUndo,\n  faFaceAngry: faFaceAngry,\n  faAngry: faAngry,\n  faBurst: faBurst,\n  faZ: faZ,\n  faBandage: faBandage,\n  faBandAid: faBandAid,\n  faPlaneCircleExclamation: faPlaneCircleExclamation,\n  faBusSide: faBusSide,\n  faBugs: faBugs,\n  faBeerMugEmpty: faBeerMugEmpty,\n  faBeer: faBeer,\n  faPersonCircleCheck: faPersonCircleCheck,\n  faStapler: faStapler,\n  faHouseMedicalCircleCheck: faHouseMedicalCircleCheck,\n  faNairaSign: faNairaSign,\n  faWifi: faWifi,\n  faWifi3: faWifi3,\n  faWifiStrong: faWifiStrong,\n  faMoneyCheckDollar: faMoneyCheckDollar,\n  faMoneyCheckAlt: faMoneyCheckAlt,\n  faEyeLowVision: faEyeLowVision,\n  faLowVision: faLowVision,\n  faCircleArrowUp: faCircleArrowUp,\n  faArrowCircleUp: faArrowCircleUp,\n  faCameraRetro: faCameraRetro,\n  faCapsules: faCapsules,\n  faPoo: faPoo,\n  faVolume: faVolume,\n  faVolumeMedium: faVolumeMedium,\n  faElevator: faElevator,\n  faTag: faTag,\n  faFileCircleMinus: faFileCircleMinus,\n  faDownLong: faDownLong,\n  faLongArrowAltDown: faLongArrowAltDown,\n  faCompactDisc: faCompactDisc,\n  faSuitcaseRolling: faSuitcaseRolling,\n  faBookQuran: faBookQuran,\n  faQuran: faQuran,\n  faPhoneSlash: faPhoneSlash,\n  faRoadCircleCheck: faRoadCircleCheck,\n  faShopLock: faShopLock,\n  faImagePortrait: faImagePortrait,\n  faPortrait: faPortrait,\n  faBridgeLock: faBridgeLock,\n  faHammer: faHammer,\n  faArrowUp19: faArrowUp19,\n  faSortNumericUp: faSortNumericUp,\n  faChessKnight: faChessKnight,\n  faHouseFloodWaterCircleArrowRight: faHouseFloodWaterCircleArrowRight,\n  faArrowUpRightFromSquare: faArrowUpRightFromSquare,\n  faExternalLink: faExternalLink,\n  faArrowDownUpAcrossLine: faArrowDownUpAcrossLine,\n  faFaceGrinBeam: faFaceGrinBeam,\n  faGrinBeam: faGrinBeam,\n  faRectangleAd: faRectangleAd,\n  faAd: faAd,\n  faBookTanakh: faBookTanakh,\n  faTanakh: faTanakh,\n  faHotTubPerson: faHotTubPerson,\n  faHotTub: faHotTub,\n  faFileHalfDashed: faFileHalfDashed,\n  faOutdent: faOutdent,\n  faDedent: faDedent,\n  faHandPeace: faHandPeace,\n  faHeadSideVirus: faHeadSideVirus,\n  faCompass: faCompass,\n  faPenNib: faPenNib,\n  faTentArrowsDown: faTentArrowsDown,\n  faForwardFast: faForwardFast,\n  faFastForward: faFastForward,\n  faCrop: faCrop,\n  faWhiskeyGlass: faWhiskeyGlass,\n  faGlassWhiskey: faGlassWhiskey,\n  faSquare: faSquare,\n  faFaceGrin: faFaceGrin,\n  faGrin: faGrin,\n  faFileContract: faFileContract,\n  faAngleUp: faAngleUp,\n  faFaceSmile: faFaceSmile,\n  faSmile: faSmile,\n  faPersonDressBurst: faPersonDressBurst,\n  faDivide: faDivide,\n  faCodeFork: faCodeFork,\n  faHouseFlag: faHouseFlag,\n  faBuildingColumns: faBuildingColumns,\n  faBank: faBank,\n  faInstitution: faInstitution,\n  faMuseum: faMuseum,\n  faUniversity: faUniversity,\n  faRug: faRug,\n  faCodeMerge: faCodeMerge,\n  faHouseTsunami: faHouseTsunami,\n  faMagnifyingGlassChart: faMagnifyingGlassChart,\n  faUmbrella: faUmbrella,\n  faHillRockslide: faHillRockslide,\n  faUserSecret: faUserSecret,\n  faPager: faPager,\n  faBriefcase: faBriefcase,\n  faTrowelBricks: faTrowelBricks,\n  faSocks: faSocks,\n  faT: faT,\n  faMicrochip: faMicrochip,\n  faTruckMedical: faTruckMedical,\n  faAmbulance: faAmbulance,\n  faOm: faOm,\n  faMosquitoNet: faMosquitoNet,\n  faPrescriptionBottle: faPrescriptionBottle,\n  faUsersGear: faUsersGear,\n  faUsersCog: faUsersCog,\n  faRoadCircleExclamation: faRoadCircleExclamation,\n  faPause: faPause,\n  faStaffSnake: faStaffSnake,\n  faRodAsclepius: faRodAsclepius,\n  faRodSnake: faRodSnake,\n  faStaffAesculapius: faStaffAesculapius,\n  faPiggyBank: faPiggyBank,\n  faMonument: faMonument,\n  faAnglesRight: faAnglesRight,\n  faAngleDoubleRight: faAngleDoubleRight,\n  faDesktop: faDesktop,\n  faDesktopAlt: faDesktopAlt,\n  faPlaneCircleXmark: faPlaneCircleXmark,\n  faRetweet: faRetweet,\n  faUserGear: faUserGear,\n  faUserCog: faUserCog,\n  faBorderAll: faBorderAll,\n  faCoins: faCoins,\n  faMarsStroke: faMarsStroke,\n  faHandshakeAngle: faHandshakeAngle,\n  faHandsHelping: faHandsHelping,\n  faArrowDown: faArrowDown,\n  faLocationDot: faLocationDot,\n  faMapMarkerAlt: faMapMarkerAlt,\n  faPlugCircleExclamation: faPlugCircleExclamation,\n  faCookieBite: faCookieBite,\n  faScrewdriverWrench: faScrewdriverWrench,\n  faTools: faTools,\n  faIndent: faIndent,\n  faBars: faBars,\n  faNavicon: faNavicon,\n  faHandsPraying: faHandsPraying,\n  faPrayingHands: faPrayingHands,\n  faViruses: faViruses,\n  faSchoolFlag: faSchoolFlag,\n  faTrademark: faTrademark,\n  faFireBurner: faFireBurner,\n  faFaceSmileBeam: faFaceSmileBeam,\n  faSmileBeam: faSmileBeam,\n  faTentArrowLeftRight: faTentArrowLeftRight,\n  faRoute: faRoute,\n  faAnglesUp: faAnglesUp,\n  faAngleDoubleUp: faAngleDoubleUp,\n  faBucket: faBucket,\n  faLessThanEqual: faLessThanEqual,\n  faFolderClosed: faFolderClosed,\n  faPersonThroughWindow: faPersonThroughWindow,\n  faSchoolLock: faSchoolLock,\n  faPersonBurst: faPersonBurst,\n  faLeftLong: faLeftLong,\n  faLongArrowAltLeft: faLongArrowAltLeft,\n  faLocationCrosshairs: faLocationCrosshairs,\n  faLocation: faLocation,\n  faPersonDotsFromLine: faPersonDotsFromLine,\n  faDiagnoses: faDiagnoses,\n  faGaugeSimpleHigh: faGaugeSimpleHigh,\n  faTachometer: faTachometer,\n  faTachometerFast: faTachometerFast,\n  faAnglesLeft: faAnglesLeft,\n  faAngleDoubleLeft: faAngleDoubleLeft,\n  faUpDown: faUpDown,\n  faArrowsAltV: faArrowsAltV,\n  faBatteryEmpty: faBatteryEmpty,\n  faBattery0: faBattery0,\n  faKeyboard: faKeyboard,\n  faCookie: faCookie,\n  faStopwatch: faStopwatch,\n  faEject: faEject,\n  faSatelliteDish: faSatelliteDish,\n  faFaceRollingEyes: faFaceRollingEyes,\n  faMehRollingEyes: faMehRollingEyes,\n  faListCheck: faListCheck,\n  faTasks: faTasks,\n  faSackXmark: faSackXmark,\n  faHashtag: faHashtag,\n  faTrain: faTrain,\n  faGamepad: faGamepad,\n  faFileExport: faFileExport,\n  faArrowRightFromFile: faArrowRightFromFile,\n  faFaceGrimace: faFaceGrimace,\n  faGrimace: faGrimace,\n  faTrainSubway: faTrainSubway,\n  faSubway: faSubway,\n  faCircleDot: faCircleDot,\n  faDotCircle: faDotCircle,\n  faObjectGroup: faObjectGroup,\n  faShip: faShip,\n  faC: faC,\n  faSquarePhone: faSquarePhone,\n  faPhoneSquare: faPhoneSquare,\n  faRulerCombined: faRulerCombined,\n  faArrowsRotate: faArrowsRotate,\n  faRefresh: faRefresh,\n  faSync: faSync,\n  faPersonDress: faPersonDress,\n  faFemale: faFemale,\n  faBookOpen: faBookOpen,\n  faFolderTree: faFolderTree,\n  faVirgo: faVirgo,\n  faBoxArchive: faBoxArchive,\n  faArchive: faArchive,\n  faTentArrowDownToLine: faTentArrowDownToLine,\n  faQrcode: faQrcode,\n  faDragon: faDragon,\n  faHourglassEnd: faHourglassEnd,\n  faHourglass3: faHourglass3,\n  faGrip: faGrip,\n  faGridHorizontal: faGridHorizontal,\n  faGripHorizontal: faGripHorizontal,\n  faBorderTopLeft: faBorderTopLeft,\n  faBorderStyle: faBorderStyle,\n  faListUl: faListUl,\n  faListDots: faListDots,\n  faPeopleRobbery: faPeopleRobbery,\n  faMobileButton: faMobileButton,\n  faArrowDownAZ: faArrowDownAZ,\n  faSortAlphaAsc: faSortAlphaAsc,\n  faSortAlphaDown: faSortAlphaDown,\n  faMoneyBill: faMoneyBill,\n  faCircleMinus: faCircleMinus,\n  faMinusCircle: faMinusCircle,\n  faArrowPointer: faArrowPointer,\n  faMousePointer: faMousePointer,\n  faSquareShareNodes: faSquareShareNodes,\n  faShareAltSquare: faShareAltSquare,\n  faTableCellsLarge: faTableCellsLarge,\n  faThLarge: faThLarge,\n  faCat: faCat,\n  faCalendarWeek: faCalendarWeek,\n  faCodeCompare: faCodeCompare,\n  faLeo: faLeo,\n  faRoadCircleXmark: faRoadCircleXmark,\n  faPallet: faPallet,\n  faCakeCandles: faCakeCandles,\n  faBirthdayCake: faBirthdayCake,\n  faCake: faCake,\n  faBugSlash: faBugSlash,\n  faTarp: faTarp,\n  faDiagramPredecessor: faDiagramPredecessor,\n  faFaceFlushed: faFaceFlushed,\n  faFlushed: faFlushed,\n  faDiagramNext: faDiagramNext,\n  faAnchorCircleXmark: faAnchorCircleXmark,\n  faPersonCircleXmark: faPersonCircleXmark,\n  faSpa: faSpa,\n  faLotus: faLotus,\n  faAries: faAries,\n  faBarsProgress: faBarsProgress,\n  faTasksAlt: faTasksAlt,\n  faHeartCircleCheck: faHeartCircleCheck,\n  faMarsStrokeRight: faMarsStrokeRight,\n  faMarsStrokeH: faMarsStrokeH,\n  faTowerObservation: faTowerObservation,\n  faSterlingSign: faSterlingSign,\n  faGbp: faGbp,\n  faPoundSign: faPoundSign,\n  faFaucetDrip: faFaucetDrip,\n  faCircleInfo: faCircleInfo,\n  faInfoCircle: faInfoCircle,\n  faFeather: faFeather,\n  faBowlRice: faBowlRice,\n  faStarHalfStroke: faStarHalfStroke,\n  faStarHalfAlt: faStarHalfAlt,\n  faTemperatureArrowDown: faTemperatureArrowDown,\n  faTemperatureDown: faTemperatureDown,\n  faMaskVentilator: faMaskVentilator,\n  faFileVideo: faFileVideo,\n  faArrowTrendDown: faArrowTrendDown,\n  faOilCan: faOilCan,\n  faPeopleCarryBox: faPeopleCarryBox,\n  faPeopleCarry: faPeopleCarry,\n  faChair: faChair,\n  faWind: faWind,\n  faLayerGroup: faLayerGroup,\n  faHeadSideMask: faHeadSideMask,\n  faHands: faHands,\n  faSignLanguage: faSignLanguage,\n  faSigning: faSigning,\n  faTablets: faTablets,\n  faWeightHanging: faWeightHanging,\n  faDice: faDice,\n  faShopSlash: faShopSlash,\n  faStoreAltSlash: faStoreAltSlash,\n  faSortDown: faSortDown,\n  faSortDesc: faSortDesc,\n  faPesetaSign: faPesetaSign,\n  faTabletScreenButton: faTabletScreenButton,\n  faTabletAlt: faTabletAlt,\n  faHandHoldingDollar: faHandHoldingDollar,\n  faHandHoldingUsd: faHandHoldingUsd,\n  faShield: faShield,\n  faShieldBlank: faShieldBlank,\n  faFaceLaugh: faFaceLaugh,\n  faLaugh: faLaugh,\n  faHandsHolding: faHandsHolding,\n  faCartShopping: faCartShopping,\n  faShoppingCart: faShoppingCart,\n  faOctagon: faOctagon,\n  faHandPointer: faHandPointer,\n  faRegistered: faRegistered,\n  faHouseSignal: faHouseSignal,\n  faBangladeshiTakaSign: faBangladeshiTakaSign\n};\n\nexport { icons as fas, prefix, fa0, fa1, fa2, fa3, fa4, fa5, fa6, fa7, fa8, fa9, faDollarSign, faDollar, faUsd, faDog, faTruckMoving, faRotate, faSyncAlt, faSquareMinus, faMinusSquare, faAlignJustify, faCalendarCheck, faFaceKiss, faKiss, faKitchenSet, faDna, faChildReaching, faPaste, faFileClipboard, faMeteor, faGears, faCogs, faFileCirclePlus, faIcicles, faArrowTrendUp, faHexagonNodesBolt, faQuestion, faHandsBound, faPersonWalkingLuggage, faFileArrowDown, faFileDownload, faPersonBooth, faLocust, faRightLong, faLongArrowAltRight, faTruckDroplet, faHandHoldingMedical, faHandPointLeft, faCalculator, faMinus, faSubtract, faArrowUpZA, faSortAlphaUpAlt, faMicrophoneSlash, faSquarePen, faPenSquare, faPencilSquare, faHandFist, faFistRaised, faCommentSms, faSms, faSimCard, faScaleBalanced, faBalanceScale, faCar, faAutomobile, faCropSimple, faCropAlt, faMedal, faScroll, faFileExcel, faFilter, faDrum, faMapPin, faScaleUnbalancedFlip, faBalanceScaleRight, faArrowsToCircle, faEnvelope, faBaby, faSquareCaretDown, faCaretSquareDown, faTent, faA, faParachuteBox, faCartArrowDown, faBridgeCircleExclamation, faCloudArrowUp, faCloudUpload, faCloudUploadAlt, faAt, faIndianRupeeSign, faIndianRupee, faInr, faTruck, faChalkboardUser, faChalkboardTeacher, faUserCheck, faUserNinja, faPlantWilt, faWeightScale, faWeight, faCaretRight, faFlorinSign, faBell, faLariSign, faMillSign, faPersonSnowboarding, faSnowboarding, faTty, faTeletype, faUsersRectangle, faMobile, faMobileAndroid, faMobilePhone, faArrowsTurnToDots, faExclamation, faChurch, faToggleOff, faShoePrints, faFileCircleExclamation, faWallet, faMessage, faCommentAlt, faTrophy, faFaceDizzy, faDizzy, faBacteria, faEarDeaf, faDeaf, faDeafness, faHardOfHearing, faPeopleArrows, faPeopleArrowsLeftRight, faHandsClapping, faVirusCovidSlash, faCalendarDays, faCalendarAlt, faDiamondTurnRight, faDirections, faHandPointUp, faBezierCurve, faPersonHalfDress, faSquarePollHorizontal, faPollH, faSchoolCircleXmark, faHandLizard, faChalkboard, faBlackboard, faUpRightFromSquare, faExternalLinkAlt, faSquareFull, faClover, faTeethOpen, faBarsStaggered, faReorder, faStream, faWarehouse, faSwatchbook, faCampground, faPersonWalkingArrowRight, faGlasses, faCirclePause, faPauseCircle, faMemory, faGift, faMoneyBillWheat, faDungeon, faSuitcaseMedical, faMedkit, faPersonCane, faGauge, faDashboard, faGaugeMed, faTachometerAltAverage, faEnvelopeOpenText, faToolbox, faPowerOff, faSignal, faSignal5, faSignalPerfect, faArrowsSpin, faJoint, faBraille, faBasketShopping, faShoppingBasket, faBridge, faPlaneArrival, faCashRegister, faRing, faAquarius, faShareNodes, faShareAlt, faPersonCircleExclamation, faBinoculars, faKipSign, faHardDrive, faHdd, faRankingStar, faUserTie, faEllipsis, faEllipsisH, faStoreSlash, faPercent, faPercentage, faFileZipper, faFileArchive, faDisplay, faIcons, faHeartMusicCameraBolt, faRulerVertical, faMapLocationDot, faMapMarkedAlt, faHeartCrack, faHeartBroken, faCow, faRss, faFeed, faMagnifyingGlass, faSearch, faCloudMoon, faBoxesStacked, faBoxes, faBoxesAlt, faCodeBranch, faBan, faCancel, faJugDetergent, faReply, faMailReply, faSunPlantWilt, faBacterium, faRecordVinyl, faFloppyDisk, faSave, faToiletsPortable, faO, faPalette, faUnlock, faEarListen, faAssistiveListeningSystems, faCodePullRequest, faKey, faSkull, faMarsStrokeUp, faMarsStrokeV, faFireFlameSimple, faBurn, faTree, faSmog, faS, faJedi, faPersonHiking, faHiking, faArrowsUpToLine, faMarsDouble, faThermometer, faPaintbrush, faPaintBrush, faNeuter, faSquarePhoneFlip, faPhoneSquareAlt, faFaceGrinTongueSquint, faGrinTongueSquint, faCommentDollar, faHippo, faBowlFood, faSquareVirus, faCloudSunRain, faArrowRightLong, faLongArrowRight, faBuildingUn, faTemperatureLow, faDoorOpen, faAlignLeft, faCamera, faCameraAlt, faUsersRays, faRainbow, faSitemap, faFaceGrinStars, faGrinStars, faSortUp, faSortAsc, faEye, faCaretLeft, faAppleWhole, faAppleAlt, faScrollTorah, faTorah, faHouseLock, faArrowsLeftRightToLine, faTrash, faFaceSadTear, faSadTear, faFax, faPersonCirclePlus, faHamsa, faPersonCircleQuestion, faClipboardCheck, faShareFromSquare, faShareSquare, faReceipt, faEquals, faChevronUp, faVirusSlash, faSlash, faExpand, faNoteSticky, faStickyNote, faTableColumns, faColumns, faPersonShelter, faCircleNotch, faWater, faDeleteLeft, faBackspace, faBroomBall, faQuidditch, faQuidditchBroomBall, faJ, faShuttleSpace, faSpaceShuttle, faYinYang, faStop, faTrowel, faHandBackFist, faHandRock, faTemperatureHigh, faGreaterThan, faCrutch, faSeptagon, faHeptagon, faStreetView, faWaveSquare, faAngleLeft, faScrewdriver, faTractor, faBridgeCircleXmark, faVials, faStethoscope, faPodcast, faArrowUpRightDots, faChessQueen, faAnchorCircleExclamation, faEllipsisVertical, faEllipsisV, faHeartCircleExclamation, faBuildingCircleExclamation, faPersonArrowUpFromLine, faNotEqual, faTrainTram, faPlaneDeparture, faRightToBracket, faSignInAlt, faSdCard, faHouseCircleExclamation, faShekelSign, faIls, faShekel, faSheqel, faSheqelSign, faRadio, faHandDots, faAllergies, faBookSkull, faBookDead, faUnlockKeyhole, faUnlockAlt, faFileArrowUp, faFileUpload, faFaceGrinTears, faGrinTears, faPenToSquare, faEdit, faEarthEurope, faGlobeEurope, faFaceGrinBeamSweat, faGrinBeamSweat, faCircleHalfStroke, faAdjust, faPersonMilitaryToPerson, faTableCellsColumnLock, faTruckFieldUn, faClock, faClockFour, faBook, faFaceLaughWink, faLaughWink, faCloudMeatball, faChartArea, faAreaChart, faRupiahSign, faTextWidth, faSatellite, faMagnifyingGlassMinus, faSearchMinus, faPeopleGroup, faSquareBinary, faMasksTheater, faTheaterMasks, faCartPlus, faHandsAslInterpreting, faAmericanSignLanguageInterpreting, faAslInterpreting, faHandsAmericanSignLanguageInterpreting, faTableCellsRowUnlock, faRocket, faShrimp, faTengeSign, faTenge, faHouseChimneyMedical, faClinicMedical, faUsersSlash, faPaperPlane, faBookAtlas, faAtlas, faTable, faHeart, faCircleChevronUp, faChevronCircleUp, faBatteryHalf, faBattery3, faFontAwesome, faFontAwesomeFlag, faFontAwesomeLogoFull, faHandcuffs, faHatCowboySide, faIndustry, faLinesLeaning, faPassport, faInfinity, faClone, faForward, faM, faRoadSpikes, faMountain, faChess, faTemperatureThreeQuarters, faTemperature3, faThermometer3, faThermometerThreeQuarters, faB, faShieldVirus, faLitecoinSign, faDiceD6, faGripLinesVertical, faGolfBallTee, faGolfBall, faHexagon, faFolderOpen, faKaaba, faHandHolding, faSingleQuoteRight, faBottleDroplet, faWindowMinimize, faChevronRight, faEgg, faLandmarkDome, faLandmarkAlt, faWorm, faUserInjured, faStrikethrough, faBlog, faStopwatch20, faTruckPickup, faSeedling, faSprout, faTransgender, faTransgenderAlt, faStarHalf, faPhotoFilm, faPhotoVideo, faPictureInPicture, faPumpMedical, faFire, faMagnifyingGlassPlus, faSearchPlus, faFlask, faAlignRight, faCableCar, faTram, faKitMedical, faFirstAid, faGripLines, faBurger, faHamburger, faSnowman, faHotel, faPrint, faVolleyball, faVolleyballBall, faTrafficLight, faPlaneCircleCheck, faUsers, faCertificate, faAlarmClock, faHelicopterSymbol, faHouseChimneyCrack, faHouseDamage, faPersonMilitaryPointing, faDatabase, faNewspaper, faCloudRain, faMaximize, faExpandArrowsAlt, faLocationArrow, faCity, faXRay, faUmbrellaBeach, faArrowRightToBracket, faSignIn, faHeadset, faSplotch, faUpLong, faLongArrowAltUp, faHexagonNodes, faHospital, faHospitalAlt, faHospitalWide, faPersonHarassing, faMoneyBillTrendUp, faPenRuler, faPencilRuler, faRepeat, faBone, faFireFlameCurved, faFireAlt, faBusSimple, faBusAlt, faVenusMars, faBlender, faU, faShare, faMailForward, faPhoneFlip, faPhoneAlt, faToiletPortable, faPersonPregnant, faLessThan, faSuperscript, faCircleStop, faStopCircle, faArrowsUpDown, faArrowsV, faPooStorm, faPooBolt, faVideoSlash, faSquareXmark, faTimesSquare, faXmarkSquare, faHandHoldingDroplet, faHandHoldingWater, faWonSign, faKrw, faWon, faObjectUngroup, faComment, faHillAvalanche, faArrowsToEye, faSnowplow, faChartGantt, faVideo, faVideoCamera, faChessPawn, faSynagogue, faBuildingCircleCheck, faCalendarPlus, faWheelchairMove, faWheelchairAlt, faUserShield, faBold, faHeartPulse, faHeartbeat, faSquareRootVariable, faSquareRootAlt, faHandsBubbles, faHandsWash, faMarker, faClipboard, faPlaceOfWorship, faCannabis, faPeopleRoof, faDisease, faBookBible, faBible, faChessBoard, faMars, faLaptop, faUserXmark, faUserTimes, faFlagUsa, faHandMiddleFinger, faMortarPestle, faHeadSideCough, faPlaneLock, faBatteryThreeQuarters, faBattery4, faFrancSign, faFilterCircleDollar, faFunnelDollar, faCheese, faCircleH, faHospitalSymbol, faSchool, faDiceFive, faTornado, faJetFighter, faFighterJet, faThumbsDown, faBroom, faFileImport, faArrowRightToFile, faUtensils, faCutlery, faIdBadge, faSpider, faMobileRetro, faSignsPost, faMapSigns, faGroupArrowsRotate, faArrowsSplitUpAndLeft, faFillDrip, faShieldHeart, faPersonSkiingNordic, faSkiingNordic, faSquareCheck, faCheckSquare, faBath, faBathtub, faChessBishop, faPrescriptionBottleMedical, faPrescriptionBottleAlt, faDrawPolygon, faVectorPolygon, faICursor, faHeartCirclePlus, faShieldDog, faGreaterThanEqual, faEnvelopeOpen, faMound, faVoicemail, faVest, faAudioDescription, faW, faEyeDropper, faEyeDropperEmpty, faEyedropper, faCircleXmark, faTimesCircle, faXmarkCircle, faTrailer, faTurkishLiraSign, faTry, faTurkishLira, faVolcano, faWandSparkles, faMicrophone, faCrown, faTentArrowTurnLeft, faTruckFast, faShippingFast, faUserPen, faUserEdit, faUserClock, faShower, faSquareCaretUp, faCaretSquareUp, faMapLocation, faMapMarked, faPenFancy, faEuroSign, faEur, faEuro, faHouseCircleXmark, faLiraSign, faYenSign, faCny, faJpy, faRmb, faYen, faBoxOpen, faTruckField, faLocationPinLock, faPersonPraying, faPray, faClipboardList, faSackDollar, faMountainSun, faArrowUpWideShort, faSortAmountUp, faUsersLine, faStarOfDavid, faNotesMedical, faAustralSign, faClipboardUser, faFileImage, faSquareCaretRight, faCaretSquareRight, faVial, faHelicopter, faMitten, faGasPump, faEnvelopeCircleCheck, faPersonSkating, faSkating, faSun, faBaseball, faBaseballBall, faImage, faNotdef, faBasketball, faBasketballBall, faPencil, faPencilAlt, faPersonWalkingArrowLoopLeft, faDiceSix, faAnglesDown, faAngleDoubleDown, faSyringe, faWheatAwn, faWheatAlt, faPlaneUp, faAlignCenter, faHockeyPuck, faCircleArrowLeft, faArrowCircleLeft, faPlugCircleBolt, faRestroom, faAnchorLock, faTimeline, faLightbulb, faCircleArrowRight, faArrowCircleRight, faMarsAndVenus, faNetworkWired, faBuildingShield, faCode, faFeatherPointed, faFeatherAlt, faFileCircleQuestion, faSignature, faEarthAmericas, faEarth, faEarthAmerica, faGlobeAmericas, faCarrot, faTemperatureFull, faTemperature4, faThermometer4, faThermometerFull, faTableCellsRowLock, faBoltLightning, faCloudShowersWater, faArrowUpLong, faLongArrowUp, faAddressCard, faContactCard, faVcard, faAngleRight, faFaceMeh, faMeh, faArrowUpFromGroundWater, faMap, faUserPlus, faVenus, faDiagramSuccessor, faHeadSideCoughSlash, faDiagramProject, faProjectDiagram, faTerminal, faHouseFire, faMask, faHurricane, faEarthAfrica, faGlobeAfrica, faThumbtack, faThumbTack, faHandPointDown, faFaceMehBlank, faMehBlank, faTemperatureEmpty, faTemperature0, faThermometer0, faThermometerEmpty, faBorderNone, faHighlighter, faMoneyBillWave, faToiletPaperSlash, faFileShield, faTextHeight, faFaceGrinTongue, faGrinTongue, faFileSignature, faBuildingWheat, faPlugCircleMinus, faFutbol, faFutbolBall, faSoccerBall, faCirclePlus, faPlusCircle, faBrazilianRealSign, faStarAndCrescent, faFaceSurprise, faSurprise, faHospitalUser, faArrowDownUpLock, faFolder, faFolderBlank, faHollyBerry, faVenusDouble, faClipboardQuestion, faHotdog, faArrowUpFromBracket, faMicroscope, faCloud, faBaseballBatBall, faCarRear, faCarAlt, faThumbtackSlash, faThumbTackSlash, faPlusMinus, faHouseCircleCheck, faCalendarDay, faLibra, faCircle, faMobileVibrate, faFaceGrinSquint, faGrinSquint, faUsersBetweenLines, faHouseMedicalCircleXmark, faTableList, faThList, faFlaskVial, faCircleExclamation, faExclamationCircle, faTaxi, faCab, faTextSlash, faRemoveFormat, faPeoplePulling, faBackward, faCarBurst, faCarCrash, faLink, faChain, faBackwardStep, faStepBackward, faX, faCircleUser, faUserCircle, faRectangleList, faListAlt, faHand, faHandPaper, faCancer, faVanShuttle, faShuttleVan, faStairs, faHorseHead, faVault, faClosedCaptioningSlash, faDrumSteelpan, faThumbsUp, faStamp, faMenorah, faChildren, faChartLine, faLineChart, faSquareEnvelope, faEnvelopeSquare, faBanSmoking, faSmokingBan, faTruckFront, faBuilding, faBullseye, faArrowLeftLong, faLongArrowLeft, faChessRook, faBlenderPhone, faArrowTurnUp, faLevelUp, faBicycle, faCircleArrowDown, faArrowCircleDown, faGear, faCog, faMarsAndVenusBurst, faOtter, faCircleChevronLeft, faChevronCircleLeft, faCircleQuestion, faQuestionCircle, faWalkieTalkie, faUserGroup, faUserFriends, faHouseChimney, faHomeLg, faRightFromBracket, faSignOutAlt, faFile, faPlaneSlash, faCloudShowersHeavy, faPersonFalling, faTurnDown, faLevelDownAlt, faUpRightAndDownLeftFromCenter, faExpandAlt, faUserTag, faHandSparkles, faArrowsToDot, faFaceSadCry, faSadCry, faDongSign, faPeopleLine, faSquareRss, faRssSquare, faCalendarMinus, faChartDiagram, faFaceTired, faTired, faHandPointRight, faArrowUp, faCubesStacked, faChildCombatant, faChildRifle, faVestPatches, faMartiniGlassEmpty, faGlassMartini, faMagnet, faRoadBarrier, faCompassDrafting, faDraftingCompass, faSquarePersonConfined, faPlateWheat, faSignHanging, faSign, faCarBattery, faBatteryCar, faShirt, faTShirt, faTshirt, faParagraph, faEnvelopesBulk, faMailBulk, faGuitar, faSuitcase, faCircleUp, faArrowAltCircleUp, faF, faXmarksLines, faEarthOceania, faGlobeOceania, faCommentSlash, faPlay, faVialCircleCheck, faBridgeCircleCheck, faCediSign, faPuzzlePiece, faHelmetUn, faGlassWater, faHeartCircleBolt, faPumpSoap, faHandScissors, faDolly, faDollyBox, faPaperclip, faDemocrat, faSquareArrowUpRight, faExternalLinkSquare, faFerry, faMosquito, faBuildingCircleArrowRight, faLeftRight, faArrowsAltH, faVirus, faGem, faToilet, faSingleQuoteLeft, faMoneyBills, faTabletButton, faRectangleXmark, faRectangleTimes, faTimesRectangle, faWindowClose, faWrench, faTrashCan, faTrashAlt, faTableCells, faTh, faRibbon, faLandmarkFlag, faUpDownLeftRight, faArrowsAlt, faCarSide, faTrashArrowUp, faTrashRestore, faLifeRing, faCopyright, faFilePrescription, faEraser, faHourglassStart, faHourglass1, faCircleLeft, faArrowAltCircleLeft, faCruzeiroSign, faSmoking, faSquarePollVertical, faPoll, faPersonCircleMinus, faBiohazard, faBellConcierge, faConciergeBell, faRulerHorizontal, faHorse, faCalendar, faHandsHoldingChild, faItalic, faKhanda, faFaceFrownOpen, faFrownOpen, faCheck, faFingerprint, faChargingStation, faUserLock, faMobileScreenButton, faMobileAlt, faAnchorCircleCheck, faPersonWalkingWithCane, faBlind, faFileWaveform, faFileMedicalAlt, faHouseCrack, faHatWizard, faUserDoctor, faUserMd, faChartBar, faBarChart, faSprayCanSparkles, faAirFreshener, faBahtSign, faTemperatureArrowUp, faTemperatureUp, faWebAwesome, faNonBinary, faN, faArrowsUpDownLeftRight, faArrows, faHouse, faHome, faHomeAlt, faHomeLgAlt, faSpinner, faGavel, faLegal, faTicketSimple, faTicketAlt, faDove, faTarpDroplet, faTreeCity, faTurnUp, faLevelUpAlt, faTemperatureQuarter, faTemperature1, faThermometer1, faThermometerQuarter, faSliders, faSlidersH, faMosque, faH, faInfo, faPersonWalking, faWalking, faArrowTurnDown, faLevelDown, faRoad, faSpiral, faFaceFrown, faFrown, faWineGlassEmpty, faWineGlassAlt, faClapperboard, faForwardStep, faStepForward, faSquareUpRight, faExternalLinkSquareAlt, faBookJournalWhills, faJournalWhills, faChampagneGlasses, faGlassCheers, faDumpster, faHeartCircleXmark, faComputer, faWandMagic, faMagic, faBrain, faBriefcaseMedical, faHouseMedicalCircleExclamation, faCodeCommit, faPersonBreastfeeding, faPersonRays, faManatSign, faSort, faUnsorted, faCircleRadiation, faRadiationAlt, faLaptopCode, faSink, faArrowUpFromWaterPump, faMicrophoneLinesSlash, faMicrophoneAltSlash, faServer, faUser, faUserAlt, faUserLarge, faSnowflake, faTaurus, faSkullCrossbones, faPesoSign, faWineGlass, faTemperatureHalf, faTemperature2, faThermometer2, faThermometerHalf, faTicket, faWheatAwnCircleExclamation, faArrowsTurnRight, faCandyCane, faWheelchair, faSpellCheck, faVolumeOff, faLungs, faBookmark, faBarcode, faListOl, faList12, faListNumeric, faFileCircleXmark, faCube, faTape, faBomb, faScaleUnbalanced, faBalanceScaleLeft, faSquareCaretLeft, faCaretSquareLeft, faRuler, faI, faVolumeXmark, faVolumeMute, faVolumeTimes, faArchway, faPersonDigging, faDigging, faGaugeHigh, faTachometerAlt, faTachometerAltFast, faGenderless, faCloudSun, faArrowRight, faHandshake, faHandshakeAlt, faHandshakeSimple, faPersonSkiing, faSkiing, faBridgeWater, faBuildingNgo, faIgloo, faCircleDollarToSlot, faDonate, faY, faFaceSmileWink, faSmileWink, faDiceFour, faFaceGrinSquintTears, faGrinSquintTears, faFileAudio, faArrowsDownToLine, faG, faVihara, faFlagCheckered, faGaugeSimple, faGaugeSimpleMed, faTachometerAverage, faRightLeft, faExchangeAlt, faPills, faExplosion, faArrowsDownToPeople, faUsersViewfinder, faCarOn, faSleigh, faDumbbell, faBabyCarriage, faCarriageBaby, faKiwiBird, faCalendarXmark, faCalendarTimes, faCircleDown, faArrowAltCircleDown, faFileMedical, faXmark, faClose, faMultiply, faRemove, faTimes, faShapes, faTriangleCircleSquare, faDiceOne, faLockOpen, faPepperHot, faDropletSlash, faTintSlash, faDroplet, faTint, faFileLines, faFileAlt, faFileText, faCommentsDollar, faMagnifyingGlassLocation, faSearchLocation, faFileInvoice, faPentagon, faRepublican, faShop, faStoreAlt, faFilm, faFilmAlt, faFilmSimple, faBuildingCircleXmark, faComments, faTags, faGun, faCircleCheck, faCheckCircle, faScorpio, faIdCardClip, faIdCardAlt, faMoon, faOilWell, faTachographDigital, faDigitalTachograph, faTablet, faTabletAndroid, faRubleSign, faRouble, faRub, faRuble, faClosedCaptioning, faPen, faPlane, faImages, faMobileScreen, faMobileAndroidAlt, faGuaraniSign, faBagShopping, faShoppingBag, faCircleRight, faArrowAltCircleRight, faPhoneVolume, faVolumeControlPhone, faCubes, faPhone, faToriiGate, faBacon, faPersonFallingBurst, faQuoteRight, faQuoteRightAlt, faHouseMedicalFlag, faPrescription, faDiceThree, faBuildingLock, faIdCard, faDriversLicense, faCirclePlay, faPlayCircle, faFaceLaughBeam, faLaughBeam, faLeaf, faHouseChimneyUser, faRotateRight, faRedoAlt, faRotateForward, faTooth, faHouseChimneyWindow, faMotorcycle, faBackwardFast, faFastBackward, faAddressBook, faContactBook, faSailboat, faBookBookmark, faMagnifyingGlassArrowRight, faMicrophoneLines, faMicrophoneAlt, faReplyAll, faMailReplyAll, faUniversalAccess, faToiletPaper, faToiletPaperAlt, faToiletPaperBlank, faVrCardboard, faPizzaSlice, faSprayCan, faVolumeLow, faVolumeDown, faCross, faPerson, faMale, faHourglass, faHourglassEmpty, faFish, faDrumstickBite, faChartSimple, faAtom, faP, faJetFighterUp, faPlugCircleXmark, faSheetPlastic, faV, faList, faListSquares, faPisces, faSolarPanel, faLandMineOn, faHeadphones, faHeadphonesAlt, faHeadphonesSimple, faBus, faFilePowerpoint, faQuoteLeft, faQuoteLeftAlt, faChevronDown, faEarthAsia, faGlobeAsia, faCentSign, faShieldCat, faSchoolCircleCheck, faMartiniGlass, faGlassMartiniAlt, faPlug, faPanorama, faClockRotateLeft, faHistory, faJarWheat, faCloudArrowDown, faCloudDownload, faCloudDownloadAlt, faTruckRampBox, faTruckLoading, faAngleDown, faPlugCircleCheck, faWindowMaximize, faHandsHoldingCircle, faLocationPin, faMapMarker, faBowlingBall, faCartFlatbed, faDollyFlatbed, faHouseUser, faHomeUser, faGhost, faCommentNodes, faPersonArrowDownToLine, faPlugCirclePlus, faPersonSwimming, faSwimmer, faCommentDots, faCommenting, faChartPie, faPieChart, faFrog, faWineBottle, faInbox, faSquareH, faHSquare, faHouseMedical, faCircleChevronRight, faChevronCircleRight, faFileCsv, faHatCowboy, faFaceGrinTongueWink, faGrinTongueWink, faL, faArrowDownShortWide, faSortAmountDesc, faSortAmountDownAlt, faHourglassHalf, faHourglass2, faSpoon, faUtensilSpoon, faCreditCard, faCreditCardAlt, faFileInvoiceDollar, faSpaghettiMonsterFlying, faPastafarianism, faMartiniGlassCitrus, faCocktail, faBullhorn, faBoxTissue, faMattressPillow, faChevronLeft, faCloudMoonRain, faArrowDown19, faSortNumericAsc, faSortNumericDown, faHandSpock, faWandMagicSparkles, faMagicWandSparkles, faCommentMedical, faBellSlash, faHandshakeSlash, faHandshakeAltSlash, faHandshakeSimpleSlash, faBottleWater, faDiceD20, faArrowDownZA, faSortAlphaDesc, faSortAlphaDownAlt, faBrush, faPersonWalkingDashedLineArrowRight, faArrowUpShortWide, faSortAmountUpAlt, faGripVertical, faGridVertical, faCarTunnel, faChartColumn, faCapricorn, faTruckArrowRight, faTv, faTelevision, faTvAlt, faSection, faPeace, faStar, faFlag, faTriangleExclamation, faExclamationTriangle, faWarning, faSchoolCircleExclamation, faGraduationCap, faMortarBoard, faStore, faUserAstronaut, faBuildingFlag, faMugSaucer, faCoffee, faLemon, faCaravan, faQ, faLock, faPaintRoller, faVolumeHigh, faVolumeUp, faFolderPlus, faMercury, faAnchor, faSquareParking, faParking, faHanukiah, faRotateLeft, faRotateBack, faRotateBackward, faUndoAlt, faHeading, faHeader, faCrosshairs, faCircleNodes, faWindowRestore, faR, faFilterCircleXmark, faGopuram, faHeartCircleMinus, faStarOfLife, faBusinessTime, faBriefcaseClock, faFireExtinguisher, faArrowDownLong, faLongArrowDown, faUserMinus, faMoneyCheck, faHouseLaptop, faLaptopHouse, faDownload, faSagittarius, faCouch, faRoadLock, faScissors, faCut, faBug, faArrowRightFromBracket, faSignOut, faHandHoldingHand, faStroopwafel, faChild, faIceCream, faComputerMouse, faMouse, faFaucet, faAward, faPersonDrowning, faCameraRotate, faFaceGrinHearts, faGrinHearts, faFileFragment, faPersonMilitaryRifle, faToggleOn, faLungsVirus, faTableTennisPaddleBall, faPingPongPaddleBall, faTableTennis, faBoxesPacking, faPersonChalkboard, faDiceTwo, faArrowRightArrowLeft, faExchange, faFootball, faFootballBall, faTruckMonster, faAsterisk, faBatteryFull, faBattery, faBattery5, faChildDress, faFaceKissBeam, faKissBeam, faTrashCanArrowUp, faTrashRestoreAlt, faFont, faBoreHole, faVirusCovid, faFilePdf, faLanguage, faShieldHalved, faShieldAlt, faCaretUp, faFilePen, faFileEdit, faPersonBiking, faBiking, faBookOpenReader, faBookReader, faGlassWaterDroplet, faTowerBroadcast, faBroadcastTower, faMinimize, faCompressArrowsAlt, faArrowRightToCity, faLaptopMedical, faBreadSlice, faGlobe, faFolderMinus, faMaskFace, faBong, faRoadBridge, faArrowUp91, faSortNumericUpAlt, faMountainCity, faArrowDown91, faSortNumericDesc, faSortNumericDownAlt, faFaceGrinWide, faGrinAlt, faPoop, faDharmachakra, faBatteryQuarter, faBattery2, faAnkh, faDiamond, faSubscript, faRupeeSign, faRupee, faPersonRifle, faD, faSquareNfi, faTeeth, faMagnifyingGlassDollar, faSearchDollar, faDumpsterFire, faUpload, faUserSlash, faUserAltSlash, faUserLargeSlash, faArrowLeft, faVialVirus, faCheckDouble, faPaw, faHelmetSafety, faHardHat, faHatHard, faE, faFaceLaughSquint, faLaughSquint, faDownLeftAndUpRightToCenter, faCompressAlt, faGifts, faBed, faMoneyBillTransfer, faPersonRunning, faRunning, faCircleChevronDown, faChevronCircleDown, faUserNurse, faFaceKissWinkHeart, faKissWinkHeart, faFill, faMoneyBill1Wave, faMoneyBillWaveAlt, faLandmark, faMusic, faBookMedical, faShuffle, faRandom, faUnderline, faBuildingUser, faRobot, faPlus, faAdd, faCopy, faChessKing, faHouseFloodWater, faBitcoinSign, faBox, faSquarePlus, faPlusSquare, faArrowsLeftRight, faArrowsH, faFan, faCrow, faFileCircleCheck, faLinkSlash, faChainBroken, faChainSlash, faUnlink, faArrowRotateRight, faArrowRightRotate, faArrowRotateForward, faRedo, faPenClip, faPenAlt, faDoorClosed, faArrowDownWideShort, faSortAmountAsc, faSortAmountDown, faCaretDown, faK, faCheckToSlot, faVoteYea, faFishFins, faCompress, faArrowUpAZ, faSortAlphaUp, faUserGraduate, faFileCode, faSoap, faRecycle, faFaceGrinWink, faGrinWink, faWaterLadder, faLadderWater, faSwimmingPool, faGemini, faTowerCell, faColonSign, faLaptopFile, faBahai, faHaykal, faMoneyBill1, faMoneyBillAlt, faCloudBolt, faThunderstorm, faEthernet, faHryvniaSign, faHryvnia, faEyeSlash, faCartFlatbedSuitcase, faLuggageCart, faRadiation, faFileWord, faBedPulse, faProcedures, faTents, faMugHot, faBolt, faZap, faJar, faTruckPlane, faHandHoldingHeart, faArrowRotateLeft, faArrowLeftRotate, faArrowRotateBack, faArrowRotateBackward, faUndo, faFaceAngry, faAngry, faBurst, faZ, faBandage, faBandAid, faPlaneCircleExclamation, faBusSide, faBugs, faBeerMugEmpty, faBeer, faPersonCircleCheck, faStapler, faHouseMedicalCircleCheck, faNairaSign, faWifi, faWifi3, faWifiStrong, faMoneyCheckDollar, faMoneyCheckAlt, faEyeLowVision, faLowVision, faCircleArrowUp, faArrowCircleUp, faCameraRetro, faCapsules, faPoo, faVolume, faVolumeMedium, faElevator, faTag, faFileCircleMinus, faDownLong, faLongArrowAltDown, faCompactDisc, faSuitcaseRolling, faBookQuran, faQuran, faPhoneSlash, faRoadCircleCheck, faShopLock, faImagePortrait, faPortrait, faBridgeLock, faHammer, faArrowUp19, faSortNumericUp, faChessKnight, faHouseFloodWaterCircleArrowRight, faArrowUpRightFromSquare, faExternalLink, faArrowDownUpAcrossLine, faFaceGrinBeam, faGrinBeam, faRectangleAd, faAd, faBookTanakh, faTanakh, faHotTubPerson, faHotTub, faFileHalfDashed, faOutdent, faDedent, faHandPeace, faHeadSideVirus, faCompass, faPenNib, faTentArrowsDown, faForwardFast, faFastForward, faCrop, faWhiskeyGlass, faGlassWhiskey, faSquare, faFaceGrin, faGrin, faFileContract, faAngleUp, faFaceSmile, faSmile, faPersonDressBurst, faDivide, faCodeFork, faHouseFlag, faBuildingColumns, faBank, faInstitution, faMuseum, faUniversity, faRug, faCodeMerge, faHouseTsunami, faMagnifyingGlassChart, faUmbrella, faHillRockslide, faUserSecret, faPager, faBriefcase, faTrowelBricks, faSocks, faT, faMicrochip, faTruckMedical, faAmbulance, faOm, faMosquitoNet, faPrescriptionBottle, faUsersGear, faUsersCog, faRoadCircleExclamation, faPause, faStaffSnake, faRodAsclepius, faRodSnake, faStaffAesculapius, faPiggyBank, faMonument, faAnglesRight, faAngleDoubleRight, faDesktop, faDesktopAlt, faPlaneCircleXmark, faRetweet, faUserGear, faUserCog, faBorderAll, faCoins, faMarsStroke, faHandshakeAngle, faHandsHelping, faArrowDown, faLocationDot, faMapMarkerAlt, faPlugCircleExclamation, faCookieBite, faScrewdriverWrench, faTools, faIndent, faBars, faNavicon, faHandsPraying, faPrayingHands, faViruses, faSchoolFlag, faTrademark, faFireBurner, faFaceSmileBeam, faSmileBeam, faTentArrowLeftRight, faRoute, faAnglesUp, faAngleDoubleUp, faBucket, faLessThanEqual, faFolderClosed, faPersonThroughWindow, faSchoolLock, faPersonBurst, faLeftLong, faLongArrowAltLeft, faLocationCrosshairs, faLocation, faPersonDotsFromLine, faDiagnoses, faGaugeSimpleHigh, faTachometer, faTachometerFast, faAnglesLeft, faAngleDoubleLeft, faUpDown, faArrowsAltV, faBatteryEmpty, faBattery0, faKeyboard, faCookie, faStopwatch, faEject, faSatelliteDish, faFaceRollingEyes, faMehRollingEyes, faListCheck, faTasks, faSackXmark, faHashtag, faTrain, faGamepad, faFileExport, faArrowRightFromFile, faFaceGrimace, faGrimace, faTrainSubway, faSubway, faCircleDot, faDotCircle, faObjectGroup, faShip, faC, faSquarePhone, faPhoneSquare, faRulerCombined, faArrowsRotate, faRefresh, faSync, faPersonDress, faFemale, faBookOpen, faFolderTree, faVirgo, faBoxArchive, faArchive, faTentArrowDownToLine, faQrcode, faDragon, faHourglassEnd, faHourglass3, faGrip, faGridHorizontal, faGripHorizontal, faBorderTopLeft, faBorderStyle, faListUl, faListDots, faPeopleRobbery, faMobileButton, faArrowDownAZ, faSortAlphaAsc, faSortAlphaDown, faMoneyBill, faCircleMinus, faMinusCircle, faArrowPointer, faMousePointer, faSquareShareNodes, faShareAltSquare, faTableCellsLarge, faThLarge, faCat, faCalendarWeek, faCodeCompare, faLeo, faRoadCircleXmark, faPallet, faCakeCandles, faBirthdayCake, faCake, faBugSlash, faTarp, faDiagramPredecessor, faFaceFlushed, faFlushed, faDiagramNext, faAnchorCircleXmark, faPersonCircleXmark, faSpa, faLotus, faAries, faBarsProgress, faTasksAlt, faHeartCircleCheck, faMarsStrokeRight, faMarsStrokeH, faTowerObservation, faSterlingSign, faGbp, faPoundSign, faFaucetDrip, faCircleInfo, faInfoCircle, faFeather, faBowlRice, faStarHalfStroke, faStarHalfAlt, faTemperatureArrowDown, faTemperatureDown, faMaskVentilator, faFileVideo, faArrowTrendDown, faOilCan, faPeopleCarryBox, faPeopleCarry, faChair, faWind, faLayerGroup, faHeadSideMask, faHands, faSignLanguage, faSigning, faTablets, faWeightHanging, faDice, faShopSlash, faStoreAltSlash, faSortDown, faSortDesc, faPesetaSign, faTabletScreenButton, faTabletAlt, faHandHoldingDollar, faHandHoldingUsd, faShield, faShieldBlank, faFaceLaugh, faLaugh, faHandsHolding, faCartShopping, faShoppingCart, faOctagon, faHandPointer, faRegistered, faHouseSignal, faBangladeshiTakaSign };\n", "import { config, dom, library } from '@fortawesome/fontawesome-svg-core';\nimport * as solid from '@fortawesome/free-solid-svg-icons';\n\n// Icons used in the admin panel \u2014 add new icons here\nconst icons = [\n    solid.faAngleDown,\n    solid.faAngleUp,\n    solid.faArrowsAlt,\n    solid.faBan,\n    solid.faBold,\n    solid.faBolt,\n    solid.faCaretLeft,\n    solid.faCaretRight,\n    solid.faCheck,\n    solid.faCheckCircle,\n    solid.faCheckSquare,\n    solid.faChevronDown,\n    solid.faChevronUp,\n    solid.faCog,\n    solid.faColumns,\n    solid.faCopy,\n    solid.faDatabase,\n    solid.faDownload,\n    solid.faEdit,\n    solid.faEraser,\n    solid.faExclamationCircle,\n    solid.faExclamationTriangle,\n    solid.faExternalLinkAlt,\n    solid.faEye,\n    solid.faEyeSlash,\n    solid.faFile,\n    solid.faFileAlt,\n    solid.faFileAudio,\n    solid.faFileCode,\n    solid.faFileCsv,\n    solid.faFileExcel,\n    solid.faFileExport,\n    solid.faFileImage,\n    solid.faFilePdf,\n    solid.faFilePowerpoint,\n    solid.faFileUpload,\n    solid.faFileVideo,\n    solid.faFileWord,\n    solid.faFileZipper,\n    solid.faFingerprint,\n    solid.faFlask,\n    solid.faFolder,\n    solid.faFolderPlus,\n    solid.faGlobe,\n    solid.faGripVertical,\n    solid.faHeading,\n    solid.faHeartbeat,\n    solid.faHome,\n    solid.faHourglassHalf,\n    solid.faICursor,\n    solid.faImage,\n    solid.faInfoCircle,\n    solid.faItalic,\n    solid.faKey,\n    solid.faLevelUpAlt,\n    solid.faLink,\n    solid.faList,\n    solid.faListUl,\n    solid.faLocationArrow,\n    solid.faLock,\n    solid.faLockOpen,\n    solid.faMagnifyingGlass,\n    solid.faMask,\n    solid.faMinus,\n    solid.faMobileAlt,\n    solid.faPaperPlane,\n    solid.faPencil,\n    solid.faPencilAlt,\n    solid.faPlay,\n    solid.faPlus,\n    solid.faPlusCircle,\n    solid.faProjectDiagram,\n    solid.faPuzzlePiece,\n    solid.faQuestionCircle,\n    solid.faRandom,\n    solid.faRedo,\n    solid.faRepeat,\n    solid.faRotate,\n    solid.faSearch,\n    solid.faServer,\n    solid.faShapes,\n    solid.faShieldAlt,\n    solid.faSignInAlt,\n    solid.faSignOutAlt,\n    solid.faSort,\n    solid.faSortDown,\n    solid.faSortUp,\n    solid.faSpinner,\n    solid.faSquare,\n    solid.faSquareCheck,\n    solid.faStar,\n    solid.faStream,\n    solid.faSyncAlt,\n    solid.faTable,\n    solid.faTerminal,\n    solid.faTrash,\n    solid.faTrashAlt,\n    solid.faUndo,\n    solid.faUpRightFromSquare,\n    solid.faUpload,\n    solid.faUser,\n];\nlibrary.add(...icons);\n\n// Enable SVG replacement globally; hide icons not registered in the library above\nconfig.autoReplaceSvg = true;\nconfig.showMissingIcons = false;\n\ntype DOM = typeof dom & {\n    watch: (config?: { autoReplaceSvgRoot?: Node; observeMutationsRoot?: Node }) => void;\n};\n\nconst watchComponent = (customEl: Element) =>\n    (dom as DOM).watch({\n        autoReplaceSvgRoot: customEl.shadowRoot,\n        observeMutationsRoot: customEl.shadowRoot,\n    });\n\nexport { dom, watchComponent };\n", "import { css, html, LitElement, type PropertyValues, type TemplateResult, unsafeCSS } from 'lit';\nimport { property } from 'lit/decorators.js';\nimport { dom, watchComponent } from '../admin/icons/icons.js';\nimport { WidgetException } from '../errors/widgetexception.js';\nimport { i18n } from '../i18n.js';\nimport type IWidget from './iwidget.js';\n\ndeclare let lexicon: Record<string, any>;\n\nexport abstract class WidgetComponent extends LitElement implements IWidget {\n    static styles = [\n        unsafeCSS(dom.css()),\n        css`\n        :host {\n          display: block;\n        }\n        :host([hidden]) {\n          display: none;\n        }\n        `,\n    ];\n\n    /** lexicon */\n    @property({ type: Object })\n    public lexicon: Record<string, any> = lexicon;\n\n    @property({ type: Boolean })\n    public elementVisible = false;\n\n    /** if the field can be empty or not */\n    @property({ type: Boolean })\n    public required: boolean;\n\n    /** control element with `[data-widget]` (inside widget template) */\n    public $node: HTMLElement;\n\n    /** actual form element (inside widget template) */\n    public $input: HTMLInputElement | HTMLSelectElement | HTMLTextAreaElement;\n\n    /** an optional container around `$input`. defaults to `$input`. */\n    public $inputContainer: HTMLElement;\n\n    /** the field container which contains the whole row (including field label and body) and `[data-field-name]` */\n    public $field: HTMLElement;\n\n    /** not used yet... idea was to have all error messages at the same place iirc */\n    public $helps: HTMLElement;\n\n    /** the original required value */\n    public originalRequiredValue: boolean;\n\n    /** condition for display, e.g. `teaser_active == true` */\n    public showIf: string;\n\n    /** the field language */\n    public lang = '';\n\n    /** the field name */\n    public field = '';\n\n    private intersectionObserver: IntersectionObserver;\n\n    protected value: any;\n\n    protected firstUpdated(_changedProperties: PropertyValues) {\n        super.firstUpdated(_changedProperties);\n\n        watchComponent(this);\n    }\n\n    attributeChangedCallback(name: string, old: string | null, value: string | null): void {\n        super.attributeChangedCallback(name, old, value);\n    }\n\n    /**\n     * assign dom elements,\n     * register intersectionObserver if element is not already visible\n     */\n    connectedCallback() {\n        super.connectedCallback();\n\n        this.$node = this.closest('[data-widget]');\n        this.$input = this.querySelector('input, select, textarea');\n        this.$inputContainer = this.querySelector('.input, .select, .textarea');\n        this.originalRequiredValue = this.required;\n        this.$helps = this.parentNode?.querySelector('.help');\n        this.$field = this.closest('[data-field-name]');\n        this.showIf = this.$field?.dataset.showIf;\n        this.field = this.$field?.dataset.field;\n\n        if (this.$inputContainer === null) this.$inputContainer = this.$input;\n\n        if (typeof this.$node.dataset.widgetLang !== 'undefined') {\n            this.lang = this.$node.dataset.widgetLang;\n        }\n\n        if (!this.elementVisible) {\n            this.intersectionObserver = new IntersectionObserver(this.handleIntersectionCallback.bind(this), {\n                root: null,\n                rootMargin: '0px',\n                threshold: 0,\n                delay: 100,\n            } as IntersectionObserverInit);\n            this.intersectionObserver.observe(this);\n        }\n    }\n\n    /**\n     * if we have an intersection observer, disconnect it\n     */\n    disconnectedCallback() {\n        if (this.intersectionObserver) {\n            this.intersectionObserver.disconnect();\n        }\n        super.disconnectedCallback();\n    }\n\n    /**\n     * this is being called by the intersectionObserver\n     */\n    handleIntersectionCallback(entries: IntersectionObserverEntry[]) {\n        for (const entry of entries) {\n            if (entry.intersectionRatio <= 0) {\n                continue;\n            }\n\n            this.elementVisible = true;\n            // remove the observer if we've reached our target of being visible\n            this.intersectionObserver.disconnect();\n        }\n    }\n\n    public render(): TemplateResult {\n        return html`\n            <link rel=\"stylesheet\" type=\"text/css\" href=\"${window.baseUrl}assets/dist/admin/admin.css?v=${window.adminCssVersion}\">\n            <slot></slot>\n            `;\n    }\n\n    /**\n     * display an information text\n     */\n    displayError(error: string, severity?: string, ...subs: string[]): void {\n        const errorMsg = i18n.has_translation(error) ? i18n.t(error, ...subs) : error;\n        let severityClass = 'is-danger';\n\n        if (severity !== null && typeof severity !== 'undefined') {\n            severityClass = `is-${severity}`;\n        }\n\n        // mark input field\n        this.$inputContainer?.classList.add(severityClass);\n\n        // add help container\n        if (this.parentNode.querySelector('.help-container') === null) {\n            (this.parentNode as HTMLElement).insertAdjacentHTML('beforeend', '<div class=\"help-container\"></div>');\n        }\n\n        // add help text\n        const $helpContainer = this.parentNode.querySelector('.help-container');\n        $helpContainer.insertAdjacentHTML('beforeend', `<p class=\"help ${severityClass}\">${errorMsg}</p>`);\n\n        // throw Error\n        throw new WidgetException(this, error, severity);\n    }\n\n    /**\n     * clear all widget errors and warnings\n     */\n    clearError(): void {\n        const classesToRemove = ['is-danger', 'is-warning', 'is-info', 'is-success'];\n\n        // remove error classes from input container\n        this.$inputContainer?.classList.remove(...classesToRemove);\n        this.$helps = this.parentNode.querySelector('.help-container'); // refresh $helps\n\n        if (this.$helps !== null) {\n            this.$helps.remove();\n        }\n    }\n\n    /**\n     */\n    async validate(): Promise<boolean> {\n        return true;\n    }\n\n    /**\n     */\n    async preUploadTask(): Promise<boolean> {\n        return true;\n    }\n\n    async getValue(): Promise<any> {\n        console.error(\n            `${this.field} has no implementation of getValue(). Use the @DoNotSaveToDatabase annotation in such cases.`,\n        );\n    }\n\n    /**\n     * is called by the frontend form if some validations failed (front- or backend)\n     * you can use this to e.g. reload a widget or reset it.\n     */\n    async refresh(): Promise<void> {\n        // by default no logic\n    }\n\n    /**\n     * default event listener\n     */\n    listen(action: string, fn: (e: Event) => void): void {\n        this.$input?.addEventListener(action, fn);\n    }\n\n    /**\n     * get the widget's field name for storage\n     */\n    getStorageName(): string {\n        if (this.lang === '') {\n            return this.$node.dataset.widgetName;\n        }\n        // this is really ugly\n        return this.$node.dataset.widgetName.split('[').pop().split(']').shift();\n    }\n}\n", "import { css, html, type TemplateResult } from 'lit';\nimport { property, query } from 'lit/decorators.js';\nimport { WidgetComponent } from '../widget/widgetComponent.js';\n\n/**\n * @see https://codepen.io/GeoffreyCrofte/pen/zYrxKRe\n */\nexport class OtpDigitsWidget extends WidgetComponent {\n    @property({ type: String })\n    protected format: string;\n\n    @property({ type: String })\n    protected fieldLang: string;\n\n    @property({ type: String })\n    protected fieldName: string;\n\n    @property({ type: String })\n    protected fieldLabel: string;\n\n    @query('input[data-id=\"0\"]')\n    protected firstInput: HTMLInputElement;\n\n    @query('input[data-id]:last-child')\n    protected lastInput: HTMLInputElement;\n\n    protected numberOfDigits: number = 0;\n    protected positionsOfSeparators: number[] = [];\n\n    private internals: ElementInternals;\n    // To enable form association\n\n    static formAssociated = true;\n\n    static styles = [\n        ...super.styles,\n        css`\n\n    div {\n        display: flex;\n        align-items: center;\n        justify-content: center\n    }\n\n    legend {\n        margin: 0 auto 1em;\n        color: #fff;\n        font-weight: bold;\n    }\n\n    input[type=\"number\"] {\n        width: .86em;\n        line-height: 1;\n        margin: .1em;\n        padding: 8px 0 4px;\n        font-size: 2.65em;\n        text-align: center;\n        appearance: textfield;\n        -webkit-appearance: textfield;\n        border: 0;\n        color: #073A39;\n        border-radius: 6px;\n    }\n\n    input::-webkit-outer-spin-button,\n    input::-webkit-inner-spin-button {\n        -webkit-appearance: none;\n        margin: 0;\n    }\n\n    .separator::before {\n        content: '';\n        height: 2px;\n        width: 12px;\n        margin: 0 .25em;\n        order: 1;\n        background: #fff;\n        border-radius: 2px;\n        opacity: .4;\n    }\n\n    /* From: https://gist.github.com/ffoodd/000b59f431e3e64e4ce1a24d5bb36034 */\n    label {\n        border: 0 !important;\n        clip: rect(1px, 1px, 1px, 1px) !important;\n        -webkit-clip-path: inset(50%) !important;\n        clip-path: inset(50%) !important;\n        height: 1px !important;\n        margin: -1px !important;\n        overflow: hidden !important;\n        padding: 0 !important;\n        position: absolute !important;\n        width: 1px !important;\n        white-space: nowrap !important;\n    }`,\n    ];\n\n    constructor() {\n        super();\n        this.internals = this.attachInternals();\n    }\n\n    protected updated(_changedProperties: Map<PropertyKey, unknown>): void {\n        for (const [propName] of _changedProperties) {\n            if (propName === 'format' && this.format.length > 0) {\n                this.parseFormat();\n            }\n        }\n    }\n\n    render(): TemplateResult {\n        const digitsRange = [...Array(this.numberOfDigits).keys()];\n        return html`\n            <link rel=\"stylesheet\" type=\"text/css\" href=\"${window.baseUrl}assets/dist/admin/admin.css?v=${window.adminCssVersion}\">\n\n            ${digitsRange.map((i: number) => html`<label for=\"otc-${i + 1}\">Number ${i + 1}</label>`)}\n\n            <!-- https://developer.apple.com/documentation/security/password_autofill/enabling_password_autofill_on_an_html_input_element -->\n            <div>\n                ${digitsRange.map(\n                    (i: number) => html`\n                    ${this.positionsOfSeparators.includes(i) ? html`<div class=\"separator\"></div>` : ''}\n                    <input\n                        type=\"number\"\n                        pattern=\"[0-9]*\"\n                        value=\"\"\n                        data-id=${i}\n                        inputtype=\"numeric\"\n                        ${i === 0 ? 'autocomplete=\"one-time-code\"' : 'min=\"0\" max=\"9\" maxlength=\"1\"'}\n                        id=\"otc-${i + 1}\"\n                        required\n                        @input=${this.inputHandler.bind(this)}\n                        @focus=${this.focusHandler.bind(this)}\n                        @keyup=${this.keyHandler.bind(this)}>\n                `,\n                )}\n            </div>`;\n    }\n\n    private inputHandler(e: InputEvent): void {\n        const index = parseInt((e.target as HTMLInputElement).dataset.id);\n        if (index > 0) return;\n        if (e.data?.length < 2) return;\n\n        this.splitNumber(e);\n    }\n\n    /**\n     * Control on keyup to catch what the user intents to do.\n     */\n    private keyHandler(e: KeyboardEvent): void {\n        // Break if Shift, Tab, CMD, Option, Control.\n        if (\n            e.code === 'Shift'\n            || e.code === 'Tab'\n            || e.code === 'MetaLeft'\n            || e.code === 'AltLeft'\n            || e.code === 'ControlLeft'\n        ) {\n            return;\n        }\n\n        const el = e.target as HTMLInputElement;\n        let nextEl = el.nextElementSibling as HTMLInputElement;\n        if (nextEl?.tagName === 'DIV') nextEl = nextEl.nextElementSibling as HTMLInputElement;\n        let previousEl = el.previousElementSibling as HTMLInputElement;\n        if (previousEl?.tagName === 'DIV') previousEl = previousEl.previousElementSibling as HTMLInputElement;\n\n        // On Backspace or left arrow, go to the previous field.\n        if (e.code === 'Backspace' || e.code === 'ArrowLeft') {\n            previousEl?.select();\n        } else if (e.code === 'ArrowRight') {\n            nextEl?.select();\n        }\n\n        // If the target is populated too quickly, value length can be > 1\n        if (el.value.length > 1) {\n            this.splitNumber(e as unknown as InputEvent);\n        } else if (el.value === '') {\n            previousEl?.select();\n        } else {\n            nextEl?.select();\n        }\n\n        // If the last input is filled, submit the form.\n        if (nextEl === null && el.value !== '') {\n            this.dispatchSubmitEvent();\n        }\n    }\n\n    /**\n     * Better control on Focus\n     * - don't allow focus on other field if the first one is empty\n     * - don't allow focus on field if the previous one if empty (debatable)\n     * - get the focus on the first empty field\n     */\n    private focusHandler(e: Event): void {\n        const index = parseInt((e.target as HTMLInputElement).dataset.id);\n        if (index === 0) return;\n        const el = e.target as HTMLInputElement;\n\n        // If value of input 1 is empty, focus it.\n        if (this.firstInput.value === '') {\n            this.firstInput.focus();\n        }\n\n        // If value of a previous input is empty, focus it.\n        // To remove if you don't wanna force user respecting the fields order.\n        let previousInput = el.previousElementSibling as HTMLInputElement;\n        if (el.previousElementSibling.tagName === 'DIV')\n            previousInput = el.previousElementSibling.previousElementSibling as HTMLInputElement;\n        if (previousInput.value === '') {\n            previousInput.focus();\n        }\n    }\n\n    /**\n     * Split the number to the different inputs\n     */\n    private splitNumber(e: InputEvent): void {\n        const data = e.data || (e.target as HTMLInputElement).value; // Chrome doesn't get the e.data, if insertFromPaste, fallback to value then.\n        if (!data) return; // Shouldn't happen, just in case.\n        if (data.length === 1) return; // Here is a normal behavior, not a paste action.\n\n        this.populateNextInput(e.target, data);\n    }\n\n    private populateNextInput(el: EventTarget, data: string): void {\n        if (!(el instanceof HTMLInputElement) || !data.length) {\n            return;\n        }\n\n        let nextEl = el.nextElementSibling as HTMLInputElement;\n        if (nextEl?.tagName === 'DIV') nextEl = nextEl.nextElementSibling as HTMLInputElement;\n\n        el.value = data[0]; // Apply first item to first input\n        if (nextEl && data.length) {\n            // Do the same with the next element and next data\n            this.populateNextInput(nextEl, data.substring(1)); // remove the first char.\n        }\n\n        if (nextEl === null) {\n            this.dispatchSubmitEvent();\n        }\n    }\n\n    /**\n     * Parse the format string to get the number of digits and the format\n     * Format can be like \"ddd-ddd-ddd\" or \"dddddd\", dashes are separators.\n     */\n    private parseFormat(): void {\n        this.format.split('').forEach((char: string) => {\n            if (char === 'd') {\n                this.numberOfDigits++;\n            } else {\n                this.positionsOfSeparators.push(this.numberOfDigits);\n            }\n        });\n    }\n\n    private dispatchSubmitEvent(): boolean {\n        this.internals.setFormValue(this.getStringValue());\n        return this.dispatchEvent(\n            new Event('submit', {\n                bubbles: true,\n                composed: true,\n            }),\n        );\n    }\n\n    public reset(): void {\n        const inputs = this.shadowRoot.querySelectorAll('input');\n        inputs.forEach((input: HTMLInputElement) => {\n            input.value = '';\n        });\n    }\n\n    /**\n     * Get the value of the OTP\n     */\n    async getValue(): Promise<number> {\n        const value = this.getStringValue();\n        return parseInt(value);\n    }\n\n    getStringValue(): string {\n        const inputs = this.shadowRoot.querySelectorAll('input');\n        let value = '';\n        inputs.forEach((input: HTMLInputElement) => {\n            value += input.value;\n        });\n        return value;\n    }\n\n    public getName(): string {\n        return this.field;\n    }\n\n    get form() {\n        return this.internals.form;\n    }\n\n    get type() {\n        return this.localName;\n    }\n\n    get name() {\n        return this.getAttribute('name');\n    }\n}\n\ndeclare global {\n    interface HTMLElementTagNameMap {\n        'widget-otp-digits': OtpDigitsWidget;\n    }\n}\n\ncustomElements.get('widget-otp-digits') || customElements.define('widget-otp-digits', OtpDigitsWidget);\n", "import Emitter from \"./emitter\";\nimport defaultOptions from \"./options\";\n\nexport default class Dropzone extends Emitter {\n  static initClass() {\n    // Exposing the emitter class, mainly for tests\n    this.prototype.Emitter = Emitter;\n\n    /*\n     This is a list of all available events you can register on a dropzone object.\n\n     You can register an event handler like this:\n\n     dropzone.on(\"dragEnter\", function() { });\n\n     */\n    this.prototype.events = [\n      \"drop\",\n      \"dragstart\",\n      \"dragend\",\n      \"dragenter\",\n      \"dragover\",\n      \"dragleave\",\n      \"addedfile\",\n      \"addedfiles\",\n      \"removedfile\",\n      \"thumbnail\",\n      \"error\",\n      \"errormultiple\",\n      \"processing\",\n      \"processingmultiple\",\n      \"uploadprogress\",\n      \"totaluploadprogress\",\n      \"sending\",\n      \"sendingmultiple\",\n      \"success\",\n      \"successmultiple\",\n      \"canceled\",\n      \"canceledmultiple\",\n      \"complete\",\n      \"completemultiple\",\n      \"reset\",\n      \"maxfilesexceeded\",\n      \"maxfilesreached\",\n      \"queuecomplete\",\n      \"emptyfolder\",\n    ];\n\n    this.prototype._thumbnailQueue = [];\n    this.prototype._processingThumbnail = false;\n  }\n\n  constructor(el, options) {\n    super();\n    let fallback, left;\n    this.element = el;\n\n    this.clickableElements = [];\n    this.listeners = [];\n    this.files = []; // All files\n\n    if (typeof this.element === \"string\") {\n      this.element = document.querySelector(this.element);\n    }\n\n    // make sure we actually have an HTML Element\n    if (this.element === null || !this.element instanceof HTMLElement) {\n      throw new Error(\"Invalid dropzone element: not an instance of HTMLElement.\");\n    }\n\n    if (this.element.dropzone) {\n      throw new Error(\"Dropzone already attached.\");\n    }\n\n    // Now add this dropzone to the instances.\n    Dropzone.instances.push(this);\n\n    // Put the dropzone inside the element itself.\n    this.element.dropzone = this;\n\n    let elementOptions =\n      (left = Dropzone.optionsForElement(this.element)) != null ? left : {};\n\n    this.options = Object.assign(\n      {},\n      defaultOptions,\n      elementOptions,\n      options != null ? options : {}\n    );\n\n    this.options.previewTemplate = this.options.previewTemplate.replace(\n      /\\n*/g,\n      \"\"\n    );\n\n    // If the browser failed, just call the fallback and leave\n    if (this.options.forceFallback || !Dropzone.isBrowserSupported()) {\n      return this.options.fallback.call(this);\n    }\n\n    // @options.url = @element.getAttribute \"action\" unless @options.url?\n    if (this.options.url == null) {\n      this.options.url = this.element.getAttribute(\"action\");\n    }\n\n    if (!this.options.url) {\n      throw new Error(\"No URL provided.\");\n    }\n\n    if (this.options.uploadMultiple && this.options.chunking) {\n      throw new Error(\"You cannot set both: uploadMultiple and chunking.\");\n    }\n\n    if (this.options.binaryBody && this.options.uploadMultiple) {\n      throw new Error(\"You cannot set both: binaryBody and uploadMultiple.\");\n    }\n\n    if (typeof this.options.method === \"string\") {\n      this.options.method = this.options.method.toUpperCase();\n    }\n\n    if ((fallback = this.getExistingFallback()) && fallback.parentNode) {\n      // Remove the fallback\n      fallback.parentNode.removeChild(fallback);\n    }\n\n    // Display previews in the previewsContainer element or the Dropzone element unless explicitly set to false\n    if (this.options.previewsContainer !== false) {\n      if (this.options.previewsContainer) {\n        this.previewsContainer = Dropzone.getElement(\n          this.options.previewsContainer,\n          \"previewsContainer\"\n        );\n      } else {\n        this.previewsContainer = this.element;\n      }\n    }\n\n    if (this.options.clickable) {\n      if (this.options.clickable === true) {\n        this.clickableElements = [this.element];\n      } else {\n        this.clickableElements = Dropzone.getElements(\n          this.options.clickable,\n          \"clickable\"\n        );\n      }\n    }\n\n    this.init();\n  }\n\n  // Returns all files that have been accepted\n  getAcceptedFiles() {\n    return this.files.filter((file) => file.accepted).map((file) => file);\n  }\n\n  // Returns all files that have been rejected\n  // Not sure when that's going to be useful, but added for completeness.\n  getRejectedFiles() {\n    return this.files.filter((file) => !file.accepted).map((file) => file);\n  }\n\n  getFilesWithStatus(status) {\n    return this.files\n      .filter((file) => file.status === status)\n      .map((file) => file);\n  }\n\n  // Returns all files that are in the queue\n  getQueuedFiles() {\n    return this.getFilesWithStatus(Dropzone.QUEUED);\n  }\n\n  getUploadingFiles() {\n    return this.getFilesWithStatus(Dropzone.UPLOADING);\n  }\n\n  getAddedFiles() {\n    return this.getFilesWithStatus(Dropzone.ADDED);\n  }\n\n  // Files that are either queued or uploading\n  getActiveFiles() {\n    return this.files\n      .filter(\n        (file) =>\n          file.status === Dropzone.UPLOADING || file.status === Dropzone.QUEUED\n      )\n      .map((file) => file);\n  }\n\n  // The function that gets called when Dropzone is initialized. You\n  // can (and should) setup event listeners inside this function.\n  init() {\n    // In case it isn't set already\n    if (this.element.tagName === \"form\") {\n      this.element.setAttribute(\"enctype\", \"multipart/form-data\");\n    }\n\n    if (\n      this.element.classList.contains(\"dropzone\") &&\n      !this.element.querySelector(\".dz-message\")\n    ) {\n      this.element.appendChild(\n        Dropzone.createElement(\n          `<div class=\"dz-default dz-message\"><button class=\"dz-button\" type=\"button\">${this.options.dictDefaultMessage}</button></div>`\n        )\n      );\n    }\n\n    if (this.clickableElements.length) {\n      let setupHiddenFileInput = () => {\n        if (this.hiddenFileInput) {\n          this.hiddenFileInput.parentNode?.removeChild(this.hiddenFileInput);\n        }\n        this.hiddenFileInput = document.createElement(\"input\");\n        this.hiddenFileInput.setAttribute(\"type\", \"file\");\n        this.hiddenFileInput.setAttribute(\"form\", this.element.id);\n        if (this.options.maxFiles === null || this.options.maxFiles > 1) {\n          this.hiddenFileInput.setAttribute(\"multiple\", \"multiple\");\n        }\n        this.hiddenFileInput.className = \"dz-hidden-input\";\n\n        if (this.options.acceptedFiles !== null) {\n          this.hiddenFileInput.setAttribute(\n            \"accept\",\n            this.options.acceptedFiles\n          );\n        }\n        if (this.options.capture !== null) {\n          this.hiddenFileInput.setAttribute(\"capture\", this.options.capture);\n        }\n\n        // Making sure that no one can \"tab\" into this field.\n        this.hiddenFileInput.setAttribute(\"tabindex\", \"-1\");\n        // Add arialabel for a11y\n        this.hiddenFileInput.setAttribute(\"aria-label\", \"dropzone hidden input\");\n\n        // Not setting `display=\"none\"` because some browsers don't accept clicks\n        // on elements that aren't displayed.\n        this.hiddenFileInput.style.visibility = \"hidden\";\n        this.hiddenFileInput.style.position = \"absolute\";\n        this.hiddenFileInput.style.top = \"0\";\n        this.hiddenFileInput.style.left = \"0\";\n        this.hiddenFileInput.style.height = \"0\";\n        this.hiddenFileInput.style.width = \"0\";\n        Dropzone.getElement(\n          this.options.hiddenInputContainer,\n          \"hiddenInputContainer\"\n        ).appendChild(this.hiddenFileInput);\n        this.hiddenFileInput.addEventListener(\"change\", () => {\n          let { files } = this.hiddenFileInput;\n          if (files.length) {\n            for (let file of files) {\n              this.addFile(file);\n            }\n          }\n          this.emit(\"addedfiles\", files);\n          setupHiddenFileInput();\n        });\n      };\n      setupHiddenFileInput();\n    }\n\n    this.URL = window.URL !== null ? window.URL : window.webkitURL;\n\n    // Setup all event listeners on the Dropzone object itself.\n    // They're not in @setupEventListeners() because they shouldn't be removed\n    // again when the dropzone gets disabled.\n    for (let eventName of this.events) {\n      this.on(eventName, this.options[eventName]);\n    }\n\n    this.on(\"uploadprogress\", () => this.updateTotalUploadProgress());\n\n    this.on(\"removedfile\", () => this.updateTotalUploadProgress());\n\n    this.on(\"canceled\", (file) => this.emit(\"complete\", file));\n\n    // Emit a `queuecomplete` event if all files finished uploading.\n    this.on(\"complete\", (file) => {\n      if (\n        this.getAddedFiles().length === 0 &&\n        this.getUploadingFiles().length === 0 &&\n        this.getQueuedFiles().length === 0\n      ) {\n        // This needs to be deferred so that `queuecomplete` really triggers after `complete`\n        return setTimeout(() => this.emit(\"queuecomplete\"), 0);\n      }\n    });\n\n    const containsFiles = function (e) {\n      return e.dataTransfer.types && e.dataTransfer.types.includes(\"Files\");\n    };\n\n    let noPropagation = function (e) {\n      // If there are no files, we don't want to stop\n      // propagation so we don't interfere with other\n      // drag and drop behaviour.\n      if (!containsFiles(e)) return;\n      e.stopPropagation();\n      return e.preventDefault();\n    };\n\n    // Create the listeners\n    this.listeners = [\n      {\n        element: this.element,\n        events: {\n          dragstart: (e) => {\n            return this.emit(\"dragstart\", e);\n          },\n          dragenter: (e) => {\n            noPropagation(e);\n            return this.emit(\"dragenter\", e);\n          },\n          dragover: (e) => {\n            // Makes it possible to drag files from chrome's download bar\n            // http://stackoverflow.com/questions/19526430/drag-and-drop-file-uploads-from-chrome-downloads-bar\n            const efct = e.dataTransfer.effectAllowed;\n            e.dataTransfer.dropEffect =\n              \"move\" === efct || \"linkMove\" === efct ? \"move\" : \"copy\";\n\n            noPropagation(e);\n            return this.emit(\"dragover\", e);\n          },\n          dragleave: (e) => {\n            return this.emit(\"dragleave\", e);\n          },\n          drop: (e) => {\n            noPropagation(e);\n            return this.drop(e);\n          },\n          dragend: (e) => {\n            return this.emit(\"dragend\", e);\n          },\n        },\n\n        // This is disabled right now, because the browsers don't implement it properly.\n        // \"paste\": (e) =>\n        //   noPropagation e\n        //   @paste e\n      },\n    ];\n\n    this.clickableElements.forEach((clickableElement) => {\n      return this.listeners.push({\n        element: clickableElement,\n        events: {\n          click: (evt) => {\n            // Only the actual dropzone or the message element should trigger file selection\n            if (\n              clickableElement !== this.element ||\n              evt.target === this.element ||\n              Dropzone.elementInside(\n                evt.target,\n                this.element.querySelector(\".dz-message\")\n              )\n            ) {\n              this.hiddenFileInput.click(); // Forward the click\n            }\n            return true;\n          },\n        },\n      });\n    });\n\n    this.enable();\n\n    return this.options.init.call(this);\n  }\n\n  // Not fully tested yet\n  destroy() {\n    this.disable();\n    this.removeAllFiles(true);\n    if (\n      this.hiddenFileInput != null ? this.hiddenFileInput.parentNode : undefined\n    ) {\n      this.hiddenFileInput.parentNode.removeChild(this.hiddenFileInput);\n      this.hiddenFileInput = null;\n    }\n    delete this.element.dropzone;\n    return Dropzone.instances.splice(Dropzone.instances.indexOf(this), 1);\n  }\n\n  updateTotalUploadProgress() {\n    let totalUploadProgress;\n    let totalBytesSent = 0;\n    let totalBytes = 0;\n\n    let activeFiles = this.getActiveFiles();\n\n    if (activeFiles.length) {\n      for (let file of this.getActiveFiles()) {\n        totalBytesSent += file.upload.bytesSent;\n        totalBytes += file.upload.total;\n      }\n      totalUploadProgress = (100 * totalBytesSent) / totalBytes;\n    } else {\n      totalUploadProgress = 100;\n    }\n\n    return this.emit(\n      \"totaluploadprogress\",\n      totalUploadProgress,\n      totalBytes,\n      totalBytesSent\n    );\n  }\n\n  // @options.paramName can be a function taking one parameter rather than a string.\n  // A parameter name for a file is obtained simply by calling this with an index number.\n  _getParamName(n) {\n    if (typeof this.options.paramName === \"function\") {\n      return this.options.paramName(n);\n    } else {\n      return `${this.options.paramName}${\n        this.options.uploadMultiple ? `[${n}]` : \"\"\n      }`;\n    }\n  }\n\n  // If @options.renameFile is a function,\n  // the function will be used to rename the file.name before appending it to the formData.\n  // MacOS 14+ screenshots contain narrow non-breaking space (U+202F) characters in filenames \n  // (e.g., \"Screenshot 2024-01-30 at 10.32.07 AM.png\" where the space after \"07\" and before \"AM\" is U+202F).\n  // This function now replaces these with regular spaces to prevent upload issues and maintain compatibility with MacOS\n  _renameFile(file) {\n    const cleanFile = {\n      ...file,\n      name: file.name.replace(/\\u202F/g, ' ')\n    };\n    \n    if (typeof this.options.renameFile !== \"function\") {\n      return cleanFile.name;\n    }\n    return this.options.renameFile(cleanFile);\n  }\n\n  // Returns a form that can be used as fallback if the browser does not support DragnDrop\n  //\n  // If the dropzone is already a form, only the input field and button are returned. Otherwise a complete form element is provided.\n  // This code has to pass in IE7 :(\n  getFallbackForm() {\n    let existingFallback, form;\n    if ((existingFallback = this.getExistingFallback())) {\n      return existingFallback;\n    }\n\n    let fieldsString = '<div class=\"dz-fallback\">';\n    if (this.options.dictFallbackText) {\n      fieldsString += `<p>${this.options.dictFallbackText}</p>`;\n    }\n    fieldsString += `<input type=\"file\" name=\"${this._getParamName(0)}\" ${\n      this.options.uploadMultiple ? 'multiple=\"multiple\"' : undefined\n    } /><input type=\"submit\" value=\"Upload!\"></div>`;\n\n    let fields = Dropzone.createElement(fieldsString);\n    if (this.element.tagName !== \"FORM\") {\n      form = Dropzone.createElement(\n        `<form action=\"${this.options.url}\" enctype=\"multipart/form-data\" method=\"${this.options.method}\"></form>`\n      );\n      form.appendChild(fields);\n    } else {\n      // Make sure that the enctype and method attributes are set properly\n      this.element.setAttribute(\"enctype\", \"multipart/form-data\");\n      this.element.setAttribute(\"method\", this.options.method);\n    }\n    return form != null ? form : fields;\n  }\n\n  // Returns the fallback elements if they exist already\n  //\n  // This code has to pass in IE7 :(\n  getExistingFallback() {\n    let getFallback = function (elements) {\n      for (let el of elements) {\n        if (/(^| )fallback($| )/.test(el.className)) {\n          return el;\n        }\n      }\n    };\n\n    for (let tagName of [\"div\", \"form\"]) {\n      var fallback;\n      if (\n        (fallback = getFallback(this.element.getElementsByTagName(tagName)))\n      ) {\n        return fallback;\n      }\n    }\n  }\n\n  // Activates all listeners stored in @listeners\n  setupEventListeners() {\n    return this.listeners.map((elementListeners) =>\n      (() => {\n        let result = [];\n        for (let event in elementListeners.events) {\n          let listener = elementListeners.events[event];\n          result.push(\n            elementListeners.element.addEventListener(event, listener, false)\n          );\n        }\n        return result;\n      })()\n    );\n  }\n\n  // Deactivates all listeners stored in @listeners\n  removeEventListeners() {\n    return this.listeners.map((elementListeners) =>\n      (() => {\n        let result = [];\n        for (let event in elementListeners.events) {\n          let listener = elementListeners.events[event];\n          result.push(\n            elementListeners.element.removeEventListener(event, listener, false)\n          );\n        }\n        return result;\n      })()\n    );\n  }\n\n  // Removes all event listeners and cancels all files in the queue or being processed.\n  disable() {\n    this.clickableElements.forEach((element) =>\n      element.classList.remove(\"dz-clickable\")\n    );\n    this.removeEventListeners();\n    this.disabled = true;\n\n    return this.files.map((file) => this.cancelUpload(file));\n  }\n\n  enable() {\n    delete this.disabled;\n    this.clickableElements.forEach((element) =>\n      element.classList.add(\"dz-clickable\")\n    );\n    return this.setupEventListeners();\n  }\n\n  // Returns a nicely formatted filesize\n  filesize(size) {\n    let selectedSize = 0;\n    let selectedUnit = \"b\";\n\n    if (size > 0) {\n      let units = [\"tb\", \"gb\", \"mb\", \"kb\", \"b\"];\n\n      for (let i = 0; i < units.length; i++) {\n        let unit = units[i];\n        let cutoff = Math.pow(this.options.filesizeBase, 4 - i) / 10;\n\n        if (size >= cutoff) {\n          selectedSize = size / Math.pow(this.options.filesizeBase, 4 - i);\n          selectedUnit = unit;\n          break;\n        }\n      }\n\n      selectedSize = Math.round(10 * selectedSize) / 10; // Cutting of digits\n    }\n\n    return `<strong>${selectedSize}</strong> ${this.options.dictFileSizeUnits[selectedUnit]}`;\n  }\n\n  // Adds or removes the `dz-max-files-reached` class from the form.\n  _updateMaxFilesReachedClass() {\n    if (\n      this.options.maxFiles != null &&\n      this.getAcceptedFiles().length >= this.options.maxFiles\n    ) {\n      if (this.getAcceptedFiles().length === this.options.maxFiles) {\n        this.emit(\"maxfilesreached\", this.files);\n      }\n      return this.element.classList.add(\"dz-max-files-reached\");\n    } else {\n      return this.element.classList.remove(\"dz-max-files-reached\");\n    }\n  }\n\n  drop(e) {\n    if (!e.dataTransfer) {\n      return;\n    }\n    this.emit(\"drop\", e);\n\n    // Convert the FileList to an Array\n    // This is necessary for IE11\n    let files = [];\n    for (let i = 0; i < e.dataTransfer.files.length; i++) {\n      files[i] = e.dataTransfer.files[i];\n    }\n\n    let { items } = e.dataTransfer;\n    let hasDirectoryItems = this._hasDirectoryItems(items);\n    let addFiles = (files) => {\n      // Even if it's a folder, files.length will contain the folders.\n      if (files.length) {\n        if (hasDirectoryItems) {\n          // The browser supports dropping of folders, so handle items instead of files\n          this._addFilesFromItems(items);\n        } else {\n          this.handleFiles(files);\n        }\n      }\n\n      this.emit(\"addedfiles\", files);\n    };\n\n    if (\n      !files.length ||\n      hasDirectoryItems ||\n      !Dropzone.shouldRehydrateDroppedFiles()\n    ) {\n      return addFiles(files);\n    }\n\n    return this._rehydrateDroppedFiles(files, addFiles);\n  }\n\n  _hasDirectoryItems(items) {\n    if (!items || !items.length || items[0].webkitGetAsEntry == null) {\n      return false;\n    }\n\n    for (let item of items) {\n      let entry = item.webkitGetAsEntry != null ? item.webkitGetAsEntry() : null;\n      if (entry && entry.isDirectory) {\n        return true;\n      }\n    }\n\n    return false;\n  }\n\n  _rehydrateDroppedFiles(files, done) {\n    let rehydratedFiles = [];\n    let remainingFiles = files.length;\n\n    let finishFile = (index, file) => {\n      rehydratedFiles[index] = file;\n      if (--remainingFiles === 0) {\n        done(rehydratedFiles);\n      }\n    };\n\n    for (let i = 0; i < files.length; i++) {\n      let file = files[i];\n      let reader = new FileReader();\n\n      reader.onload = () => {\n        let rehydratedFile = file;\n        try {\n          rehydratedFile = new File([reader.result], file.name, {\n            type: file.type,\n            lastModified: file.lastModified,\n          });\n        } catch (error) {\n          rehydratedFile = file;\n        }\n        finishFile(i, rehydratedFile);\n      };\n\n      reader.onerror = () => finishFile(i, file);\n      reader.readAsArrayBuffer(file);\n    }\n  }\n\n  paste(e) {\n    if (\n      __guard__(e != null ? e.clipboardData : undefined, (x) => x.items) == null\n    ) {\n      return;\n    }\n\n    this.emit(\"paste\", e);\n    let { items } = e.clipboardData;\n\n    if (items.length) {\n      return this._addFilesFromItems(items);\n    }\n  }\n\n  handleFiles(files) {\n    for (let file of files) {\n      this.addFile(file);\n    }\n  }\n\n  // When a folder is dropped (or files are pasted), items must be handled\n  // instead of files.\n  _addFilesFromItems(items) {\n    return (() => {\n      let result = [];\n      for (let item of items) {\n        var entry;\n        if (\n          item.webkitGetAsEntry != null &&\n          (entry = item.webkitGetAsEntry())\n        ) {\n          if (entry.isFile) {\n            result.push(this.addFile(item.getAsFile()));\n          } else if (entry.isDirectory) {\n            // Append all files from that directory to files\n            result.push(this._addFilesFromDirectory(entry, entry.name));\n          } else {\n            result.push(undefined);\n          }\n        } else if (item.getAsFile != null) {\n          if (item.kind == null || item.kind === \"file\") {\n            result.push(this.addFile(item.getAsFile()));\n          } else {\n            result.push(undefined);\n          }\n        } else {\n          result.push(undefined);\n        }\n      }\n      return result;\n    })();\n  }\n\n  // Goes through the directory, and adds each file it finds recursively\n  _addFilesFromDirectory(directory, path) {\n    let dirReader = directory.createReader();\n\n    let errorHandler = (error) =>\n      __guardMethod__(console, \"log\", (o) => o.log(error));\n\n    let entryCount = 0;\n    var readEntries = () => {\n      return dirReader.readEntries((entries) => {\n        if (entries.length > 0) {\n          for (let entry of entries) {\n            if (entry.isFile) {\n              ++entryCount;\n              entry.file((file) => {\n                if (\n                  this.options.ignoreHiddenFiles &&\n                  file.name.substring(0, 1) === \".\"\n                ) {\n                  return;\n                }\n                file.fullPath = `${path}/${file.name}`;\n                return this.addFile(file);\n              });\n            } else if (entry.isDirectory) {\n              this._addFilesFromDirectory(entry, `${path}/${entry.name}`);\n            }\n          }\n\n          // Recursively call readEntries() again, since browser only handle\n          // the first 100 entries.\n          // See: https://developer.mozilla.org/en-US/docs/Web/API/DirectoryReader#readEntries\n          readEntries();\n        } else if (entryCount === 0) {\n          this.emit(\"emptyfolder\", path);\n        }\n        return null;\n      }, errorHandler);\n    };\n\n    return readEntries();\n  }\n\n  // If `done()` is called without argument the file is accepted\n  // If you call it with an error message, the file is rejected\n  // (This allows for asynchronous validation)\n  //\n  // This function checks the filesize, and if the file.type passes the\n  // `acceptedFiles` check.\n  accept(file, done) {\n    if (\n      this.options.maxFilesize &&\n      file.size > this.options.maxFilesize * 1024 * 1024\n    ) {\n      done(\n        this.options.dictFileTooBig\n          .replace(\"{{filesize}}\", Math.round(file.size / 1024 / 10.24) / 100)\n          .replace(\"{{maxFilesize}}\", this.options.maxFilesize)\n      );\n    } else if (!Dropzone.isValidFile(file, this.options.acceptedFiles)) {\n      done(this.options.dictInvalidFileType);\n    } else if (\n      this.options.maxFiles != null &&\n      this.getAcceptedFiles().length >= this.options.maxFiles\n    ) {\n      done(\n        this.options.dictMaxFilesExceeded.replace(\n          \"{{maxFiles}}\",\n          this.options.maxFiles\n        )\n      );\n      this.emit(\"maxfilesexceeded\", file);\n    } else {\n      this.options.accept.call(this, file, done);\n    }\n  }\n\n  addFile(file) {\n    file.upload = {\n      // note: this only works if window.isSecureContext is true, which includes localhost in http\n      uuid: window.isSecureContext ? self.crypto.randomUUID() : Dropzone.uuidv4(),\n      progress: 0,\n      // Setting the total upload size to file.size for the beginning\n      // It's actual different than the size to be transmitted.\n      total: file.size,\n      bytesSent: 0,\n      filename: this._renameFile(file),\n      // Not setting chunking information here, because the actual data — and\n      // thus the chunks — might change if `options.transformFile` is set\n      // and does something to the data.\n    };\n    this.files.push(file);\n\n    file.status = Dropzone.ADDED;\n\n    this.emit(\"addedfile\", file);\n\n    this._enqueueThumbnail(file);\n\n    this.accept(file, (error) => {\n      if (error) {\n        file.accepted = false;\n        this._errorProcessing([file], error); // Will set the file.status\n      } else {\n        file.accepted = true;\n        if (this.options.autoQueue) {\n          this.enqueueFile(file);\n        } // Will set .accepted = true\n      }\n      this._updateMaxFilesReachedClass();\n    });\n  }\n\n  // Wrapper for enqueueFile\n  enqueueFiles(files) {\n    for (let file of files) {\n      this.enqueueFile(file);\n    }\n    return null;\n  }\n\n  enqueueFile(file) {\n    if (file.status === Dropzone.ADDED && file.accepted === true) {\n      file.status = Dropzone.QUEUED;\n      if (this.options.autoProcessQueue) {\n        return setTimeout(() => this.processQueue(), 0); // Deferring the call\n      }\n    } else {\n      throw new Error(\n        \"This file can't be queued because it has already been processed or was rejected.\"\n      );\n    }\n  }\n\n  _enqueueThumbnail(file) {\n    if (\n      this.options.createImageThumbnails &&\n      file.type.match(/image.*/) &&\n      file.size <= this.options.maxThumbnailFilesize * 1024 * 1024\n    ) {\n      this._thumbnailQueue.push(file);\n      return setTimeout(() => this._processThumbnailQueue(), 0); // Deferring the call\n    }\n  }\n\n  _processThumbnailQueue() {\n    if (this._processingThumbnail || this._thumbnailQueue.length === 0) {\n      return;\n    }\n\n    this._processingThumbnail = true;\n    let file = this._thumbnailQueue.shift();\n    return this.createThumbnail(\n      file,\n      this.options.thumbnailWidth,\n      this.options.thumbnailHeight,\n      this.options.thumbnailMethod,\n      true,\n      (dataUrl) => {\n        this.emit(\"thumbnail\", file, dataUrl);\n        this._processingThumbnail = false;\n        return this._processThumbnailQueue();\n      }\n    );\n  }\n\n  // Can be called by the user to remove a file\n  removeFile(file) {\n    if (file.status === Dropzone.UPLOADING) {\n      this.cancelUpload(file);\n    }\n    this.files = without(this.files, file);\n\n    this.emit(\"removedfile\", file);\n    if (this.files.length === 0) {\n      return this.emit(\"reset\");\n    }\n  }\n\n  // Removes all files that aren't currently processed from the list\n  removeAllFiles(cancelIfNecessary) {\n    // Create a copy of files since removeFile() changes the @files array.\n    if (cancelIfNecessary == null) {\n      cancelIfNecessary = false;\n    }\n    for (let file of this.files.slice()) {\n      if (file.status !== Dropzone.UPLOADING || cancelIfNecessary) {\n        this.removeFile(file);\n      }\n    }\n    return null;\n  }\n\n  // Resizes an image before it gets sent to the server. This function is the default behavior of\n  // `options.transformFile` if `resizeWidth` or `resizeHeight` are set. The callback is invoked with\n  // the resized blob.\n  resizeImage(file, width, height, resizeMethod, callback) {\n    return this.createThumbnail(\n      file,\n      width,\n      height,\n      resizeMethod,\n      true,\n      (dataUrl, canvas) => {\n        if (canvas == null) {\n          // The image has not been resized\n          return callback(file);\n        } else {\n          let { resizeMimeType } = this.options;\n          if (resizeMimeType == null) {\n            resizeMimeType = file.type;\n          }\n          let resizedDataURL = canvas.toDataURL(\n            resizeMimeType,\n            this.options.resizeQuality\n          );\n          if (\n            resizeMimeType === \"image/jpeg\" ||\n            resizeMimeType === \"image/jpg\"\n          ) {\n            // Now add the original EXIF information\n            resizedDataURL = restoreExif(file.dataURL, resizedDataURL);\n          }\n          return callback(Dropzone.dataURItoBlob(resizedDataURL));\n        }\n      },\n      true\n    );\n  }\n\n  createThumbnail(file, width, height, resizeMethod, fixOrientation, callback, ignoreExif = false) {\n    let fileReader = new FileReader();\n\n    fileReader.onload = () => {\n      file.dataURL = fileReader.result;\n\n      // Don't bother creating a thumbnail for SVG images since they're vector\n      // Also skip gif (see #39)\n      if (file.type === \"image/svg+xml\" || file.type === \"image/gif\") {\n        if (callback != null) {\n          callback(fileReader.result);\n        }\n        return;\n      }\n\n      this.createThumbnailFromUrl(\n        file,\n        width,\n        height,\n        resizeMethod,\n        fixOrientation,\n        callback,\n        undefined,\n        ignoreExif,\n      );\n    };\n\n    fileReader.readAsDataURL(file);\n  }\n\n  // `mockFile` needs to have these attributes:\n  //\n  //     { name: 'name', size: 12345, imageUrl: '' }\n  //\n  // `callback` will be invoked when the image has been downloaded and displayed.\n  // `crossOrigin` will be added to the `img` tag when accessing the file.\n  displayExistingFile(\n    mockFile,\n    imageUrl,\n    callback,\n    crossOrigin,\n    resizeThumbnail = true\n  ) {\n    this.emit(\"addedfile\", mockFile);\n    this.emit(\"complete\", mockFile);\n\n    if (!resizeThumbnail) {\n      this.emit(\"thumbnail\", mockFile, imageUrl);\n      if (callback) callback();\n    } else {\n      let onDone = (thumbnail) => {\n        this.emit(\"thumbnail\", mockFile, thumbnail);\n        if (callback) callback();\n      };\n      mockFile.dataURL = imageUrl;\n\n      this.createThumbnailFromUrl(\n        mockFile,\n        this.options.thumbnailWidth,\n        this.options.thumbnailHeight,\n        this.options.thumbnailMethod,\n        this.options.fixOrientation,\n        onDone,\n        crossOrigin\n      );\n    }\n  }\n\n  createThumbnailFromUrl(\n    file,\n    width,\n    height,\n    resizeMethod,\n    fixOrientation,\n    callback,\n    crossOrigin,\n    ignoreExif = false,\n  ) {\n    // Not using `new Image` here because of a bug in latest Chrome versions.\n    // See https://github.com/enyo/dropzone/pull/226\n    let img = document.createElement(\"img\");\n\n    if (crossOrigin) {\n      img.crossOrigin = crossOrigin;\n    }\n\n    // fixOrientation is not needed anymore with browsers handling imageOrientation\n    fixOrientation =\n      getComputedStyle(document.body)[\"imageOrientation\"] == \"from-image\"\n        ? false\n        : fixOrientation;\n\n    img.onload = () => {\n      let loadExif = (callback) => callback(1);\n      if (typeof EXIF !== \"undefined\" && EXIF !== null && fixOrientation) {\n        loadExif = (callback) =>\n          EXIF.getData(img, function () {\n            return callback(EXIF.getTag(this, \"Orientation\"));\n          });\n      }\n\n      return loadExif((orientation) => {\n        file.width = img.width;\n        file.height = img.height;\n\n        let resizeInfo = this.options.resize.call(\n          this,\n          file,\n          width,\n          height,\n          resizeMethod\n        );\n\n        let canvas = document.createElement(\"canvas\");\n        let ctx = canvas.getContext(\"2d\");\n\n        canvas.width = resizeInfo.trgWidth;\n        canvas.height = resizeInfo.trgHeight;\n\n        if (orientation > 4) {\n          canvas.width = resizeInfo.trgHeight;\n          canvas.height = resizeInfo.trgWidth;\n        }\n\n        switch (orientation) {\n          case 2:\n            // horizontal flip\n            ctx.translate(canvas.width, 0);\n            ctx.scale(-1, 1);\n            break;\n          case 3:\n            // 180° rotate left\n            ctx.translate(canvas.width, canvas.height);\n            ctx.rotate(Math.PI);\n            break;\n          case 4:\n            // vertical flip\n            ctx.translate(0, canvas.height);\n            ctx.scale(1, -1);\n            break;\n          case 5:\n            // vertical flip + 90 rotate right\n            ctx.rotate(0.5 * Math.PI);\n            ctx.scale(1, -1);\n            break;\n          case 6:\n            // 90° rotate right\n            ctx.rotate(0.5 * Math.PI);\n            ctx.translate(0, -canvas.width);\n            break;\n          case 7:\n            // horizontal flip + 90 rotate right\n            ctx.rotate(0.5 * Math.PI);\n            ctx.translate(canvas.height, -canvas.width);\n            ctx.scale(-1, 1);\n            break;\n          case 8:\n            // 90° rotate left\n            ctx.rotate(-0.5 * Math.PI);\n            ctx.translate(-canvas.height, 0);\n            break;\n        }\n\n        // This is a bugfix for iOS' scaling bug.\n        drawImageIOSFix(\n          ctx,\n          img,\n          resizeInfo.srcX != null ? resizeInfo.srcX : 0,\n          resizeInfo.srcY != null ? resizeInfo.srcY : 0,\n          resizeInfo.srcWidth,\n          resizeInfo.srcHeight,\n          resizeInfo.trgX != null ? resizeInfo.trgX : 0,\n          resizeInfo.trgY != null ? resizeInfo.trgY : 0,\n          resizeInfo.trgWidth,\n          resizeInfo.trgHeight\n        );\n\n        let thumbnail = canvas.toDataURL(\"image/png\");\n\n        if (callback != null) {\n          return callback(thumbnail, canvas);\n        }\n      });\n    };\n\n    if (callback != null) {\n      img.onerror = callback;\n    }\n\n    var dataURL = file.dataURL;\n    if (ignoreExif) {\n       dataURL = removeExif(dataURL);\n    }\n\n    return (img.src = dataURL);\n  }\n\n  // Goes through the queue and processes files if there aren't too many already.\n  processQueue() {\n    let { parallelUploads } = this.options;\n    let processingLength = this.getUploadingFiles().length;\n    let i = processingLength;\n\n    // There are already at least as many files uploading than should be\n    if (processingLength >= parallelUploads) {\n      return;\n    }\n\n    let queuedFiles = this.getQueuedFiles();\n\n    if (!(queuedFiles.length > 0)) {\n      return;\n    }\n\n    if (this.options.uploadMultiple) {\n      // The files should be uploaded in one request\n      return this.processFiles(\n        queuedFiles.slice(0, parallelUploads - processingLength)\n      );\n    } else {\n      while (i < parallelUploads) {\n        if (!queuedFiles.length) {\n          return;\n        } // Nothing left to process\n        this.processFile(queuedFiles.shift());\n        i++;\n      }\n    }\n  }\n\n  // Wrapper for `processFiles`\n  processFile(file) {\n    return this.processFiles([file]);\n  }\n\n  // Loads the file, then calls finishedLoading()\n  processFiles(files) {\n    for (let file of files) {\n      file.processing = true; // Backwards compatibility\n      file.status = Dropzone.UPLOADING;\n\n      this.emit(\"processing\", file);\n    }\n\n    if (this.options.uploadMultiple) {\n      this.emit(\"processingmultiple\", files);\n    }\n\n    return this.uploadFiles(files);\n  }\n\n  _getFilesWithXhr(xhr) {\n    let files;\n    return (files = this.files\n      .filter((file) => file.xhr === xhr)\n      .map((file) => file));\n  }\n\n  // Cancels the file upload and sets the status to CANCELED\n  // **if** the file is actually being uploaded.\n  // If it's still in the queue, the file is being removed from it and the status\n  // set to CANCELED.\n  cancelUpload(file) {\n    if (file.status === Dropzone.UPLOADING) {\n      let groupedFiles = this._getFilesWithXhr(file.xhr);\n      for (let groupedFile of groupedFiles) {\n        groupedFile.status = Dropzone.CANCELED;\n      }\n      if (typeof file.xhr !== \"undefined\") {\n        file.xhr.abort();\n      }\n      for (let groupedFile of groupedFiles) {\n        this.emit(\"canceled\", groupedFile);\n      }\n      if (this.options.uploadMultiple) {\n        this.emit(\"canceledmultiple\", groupedFiles);\n      }\n    } else if (\n      file.status === Dropzone.ADDED ||\n      file.status === Dropzone.QUEUED\n    ) {\n      file.status = Dropzone.CANCELED;\n      this.emit(\"canceled\", file);\n      if (this.options.uploadMultiple) {\n        this.emit(\"canceledmultiple\", [file]);\n      }\n    }\n\n    if (this.options.autoProcessQueue) {\n      return this.processQueue();\n    }\n  }\n\n  resolveOption(option, ...args) {\n    if (typeof option === \"function\") {\n      return option.apply(this, args);\n    }\n    return option;\n  }\n\n  uploadFile(file) {\n    return this.uploadFiles([file]);\n  }\n\n  uploadFiles(files) {\n    this._transformFiles(files, (transformedFiles) => {\n      if (this.options.chunking) {\n        // Chunking is not allowed to be used with `uploadMultiple` so we know\n        // that there is only __one__file.\n        let transformedFile = transformedFiles[0];\n        files[0].upload.chunked =\n          this.options.chunking &&\n          (this.options.forceChunking ||\n            transformedFile.size > this.options.chunkSize);\n        files[0].upload.totalChunkCount = Math.ceil(\n          transformedFile.size / this.options.chunkSize\n        );\n        if (transformedFile.size === 0) {\n          files[0].upload.totalChunkCount = 1;\n        }\n      }\n\n      if (files[0].upload.chunked) {\n        // This file should be sent in chunks!\n\n        // If the chunking option is set, we **know** that there can only be **one** file, since\n        // uploadMultiple is not allowed with this option.\n        let file = files[0];\n        let transformedFile = transformedFiles[0];\n\n        file.upload.chunks = [];\n\n        let handleNextChunk = () => {\n          let chunkIndex = 0;\n\n          // Find the next item in file.upload.chunks that is not defined yet.\n          while (file.upload.chunks[chunkIndex] !== undefined) {\n            chunkIndex++;\n          }\n\n          // This means, that all chunks have already been started.\n          if (chunkIndex >= file.upload.totalChunkCount) return;\n\n          let start = chunkIndex * this.options.chunkSize;\n          let end = Math.min(\n            start + this.options.chunkSize,\n            transformedFile.size\n          );\n\n          let dataBlock = {\n            name: this._getParamName(0),\n            data: transformedFile.webkitSlice\n              ? transformedFile.webkitSlice(start, end)\n              : transformedFile.slice(start, end),\n            filename: file.upload.filename,\n            chunkIndex: chunkIndex,\n          };\n\n          file.upload.chunks[chunkIndex] = {\n            file: file,\n            index: chunkIndex,\n            dataBlock: dataBlock, // In case we want to retry.\n            status: Dropzone.UPLOADING,\n            progress: 0,\n            retries: 0, // The number of times this block has been retried.\n          };\n\n          this._uploadData(files, [dataBlock]);\n        };\n\n        file.upload.finishedChunkUpload = (chunk, response) => {\n          let allFinished = true;\n          chunk.status = Dropzone.SUCCESS;\n\n          // Clear the data from the chunk\n          chunk.dataBlock = null;\n          chunk.response = chunk.xhr.responseText;\n          chunk.responseHeaders = chunk.xhr.getAllResponseHeaders();\n          // Leaving this reference to xhr will cause memory leaks.\n          chunk.xhr = null;\n\n          for (let i = 0; i < file.upload.totalChunkCount; i++) {\n            if (file.upload.chunks[i] === undefined) {\n              return handleNextChunk();\n            }\n            if (file.upload.chunks[i].status !== Dropzone.SUCCESS) {\n              allFinished = false;\n            }\n          }\n\n          if (allFinished) {\n            this.options.chunksUploaded(file, () => {\n              this._finished(files, response, null);\n            });\n          }\n        };\n\n        if (this.options.parallelChunkUploads) {\n          // we want to limit parallelChunkUploads to the same value as parallelUploads option\n          const parallelCount = Math.min(\n            this.options.parallelChunkUploads === true ? this.options.parallelUploads : this.options.parallelChunkUploads,\n            file.upload.totalChunkCount\n          );\n          for (let i = 0; i < parallelCount; i++) {\n            handleNextChunk();\n          }\n        } else {\n          handleNextChunk();\n        }\n      } else {\n        let dataBlocks = [];\n        for (let i = 0; i < files.length; i++) {\n          dataBlocks[i] = {\n            name: this._getParamName(i),\n            data: transformedFiles[i],\n            filename: files[i].upload.filename,\n          };\n        }\n        this._uploadData(files, dataBlocks);\n      }\n    });\n  }\n\n  /// Returns the right chunk for given file and xhr\n  _getChunk(file, xhr) {\n    for (let i = 0; i < file.upload.totalChunkCount; i++) {\n      if (\n        file.upload.chunks[i] !== undefined &&\n        file.upload.chunks[i].xhr === xhr\n      ) {\n        return file.upload.chunks[i];\n      }\n    }\n  }\n\n  // This function actually uploads the file(s) to the server.\n  //\n  //  If dataBlocks contains the actual data to upload (meaning, that this could\n  // either be transformed files, or individual chunks for chunked upload) then\n  // they will be used for the actual data to upload.\n  _uploadData(files, dataBlocks) {\n    let xhr = new XMLHttpRequest();\n\n    // Put the xhr object in the file objects to be able to reference it later.\n    for (let file of files) {\n      file.xhr = xhr;\n    }\n    if (files[0].upload.chunked) {\n      // Put the xhr object in the right chunk object, so it can be associated\n      // later, and found with _getChunk.\n      files[0].upload.chunks[dataBlocks[0].chunkIndex].xhr = xhr;\n    }\n\n    let method = this.resolveOption(this.options.method, files, dataBlocks);\n    let url = this.resolveOption(this.options.url, files, dataBlocks);\n    xhr.open(method, url, true);\n\n    // Setting the timeout after open because of IE11 issue: https://gitlab.com/meno/dropzone/issues/8\n    let timeout = this.resolveOption(this.options.timeout, files);\n    if (timeout) xhr.timeout = this.resolveOption(this.options.timeout, files);\n\n    // Has to be after `.open()`. See https://github.com/enyo/dropzone/issues/179\n    xhr.withCredentials = !!this.options.withCredentials;\n\n    xhr.onload = (e) => {\n      this._finishedUploading(files, xhr, e);\n    };\n\n    xhr.ontimeout = () => {\n      this._handleUploadError(\n        files,\n        xhr,\n        `Request timedout after ${this.options.timeout / 1000} seconds`\n      );\n    };\n\n    xhr.onerror = () => {\n      this._handleUploadError(files, xhr);\n    };\n\n    // Some browsers do not have the .upload property\n    let progressObj = xhr.upload != null ? xhr.upload : xhr;\n    progressObj.onprogress = (e) =>\n      this._updateFilesUploadProgress(files, xhr, e);\n\n    let headers = this.options.defaultHeaders\n      ? {\n          Accept: \"application/json\",\n          \"Cache-Control\": \"no-cache\",\n          \"X-Requested-With\": \"XMLHttpRequest\",\n        }\n      : {};\n\n    if (this.options.binaryBody) {\n      headers[\"Content-Type\"] = files[0].type;\n    }\n\n    if (this.options.headers) {\n      Object.assign(headers, this.options.headers);\n    }\n\n    for (let headerName in headers) {\n      let headerValue = headers[headerName];\n      if (headerValue) {\n        xhr.setRequestHeader(headerName, headerValue);\n      }\n    }\n\n    if (this.options.binaryBody) {\n      // Since the file is going to be sent as binary body, it doesn't make\n      // any sense to generate `FormData` for it.\n      for (let file of files) {\n        this.emit(\"sending\", file, xhr);\n      }\n      if (this.options.uploadMultiple) {\n        this.emit(\"sendingmultiple\", files, xhr);\n      }\n      this.submitRequest(xhr, null, files);\n    } else {\n      let formData = new FormData();\n\n      // Adding all @options parameters\n      if (this.options.params) {\n        let additionalParams = this.options.params;\n        if (typeof additionalParams === \"function\") {\n          additionalParams = additionalParams.call(\n            this,\n            files,\n            xhr,\n            files[0].upload.chunked ? this._getChunk(files[0], xhr) : null\n          );\n        }\n\n        for (let key in additionalParams) {\n          let value = additionalParams[key];\n          if (Array.isArray(value)) {\n            // The additional parameter contains an array,\n            // so lets iterate over it to attach each value\n            // individually.\n            for (let i = 0; i < value.length; i++) {\n              formData.append(key, value[i]);\n            }\n          } else {\n            formData.append(key, value);\n          }\n        }\n      }\n\n      // Let the user add additional data if necessary\n      for (let file of files) {\n        this.emit(\"sending\", file, xhr, formData);\n      }\n      if (this.options.uploadMultiple) {\n        this.emit(\"sendingmultiple\", files, xhr, formData);\n      }\n\n      this._addFormElementData(formData);\n\n      // Finally add the files\n      // Has to be last because some servers (eg: S3) expect the file to be the last parameter\n      for (let i = 0; i < dataBlocks.length; i++) {\n        let dataBlock = dataBlocks[i];\n        formData.append(dataBlock.name, dataBlock.data, dataBlock.filename);\n      }\n\n      this.submitRequest(xhr, formData, files);\n    }\n  }\n\n  // Transforms all files with this.options.transformFile and invokes done with the transformed files when done.\n  _transformFiles(files, done) {\n    let transformedFiles = [];\n    // Clumsy way of handling asynchronous calls, until I get to add a proper Future library.\n    let doneCounter = 0;\n    for (let i = 0; i < files.length; i++) {\n      this.options.transformFile.call(this, files[i], (transformedFile) => {\n        transformedFiles[i] = transformedFile;\n        if (++doneCounter === files.length) {\n          done(transformedFiles);\n        }\n      });\n    }\n  }\n\n  // Takes care of adding other input elements of the form to the AJAX request\n  _addFormElementData(formData) {\n    // Take care of other input elements\n    if (this.element.tagName === \"FORM\") {\n      for (let input of this.element.querySelectorAll(\n        \"input, textarea, select, button\"\n      )) {\n        let inputName = input.getAttribute(\"name\");\n        let inputType = input.getAttribute(\"type\");\n        if (inputType) inputType = inputType.toLowerCase();\n\n        // If the input doesn't have a name, we can't use it.\n        if (typeof inputName === \"undefined\" || inputName === null) continue;\n\n        if (input.tagName === \"SELECT\" && input.hasAttribute(\"multiple\")) {\n          // Possibly multiple values\n          for (let option of input.options) {\n            if (option.selected) {\n              formData.append(inputName, option.value);\n            }\n          }\n        } else if (\n          !inputType ||\n          (inputType !== \"checkbox\" && inputType !== \"radio\") ||\n          input.checked\n        ) {\n          formData.append(inputName, input.value);\n        }\n      }\n    }\n  }\n\n  // Invoked when there is new progress information about given files.\n  // If e is not provided, it is assumed that the upload is finished.\n  _updateFilesUploadProgress(files, xhr, e) {\n    if (!files[0].upload.chunked) {\n      // Handle file uploads without chunking\n      for (let file of files) {\n        if (\n          file.upload.total &&\n          file.upload.bytesSent &&\n          file.upload.bytesSent == file.upload.total\n        ) {\n          // If both, the `total` and `bytesSent` have already been set, and\n          // they are equal (meaning progress is at 100%), we can skip this\n          // file, since an upload progress shouldn't go down.\n          continue;\n        }\n\n        if (e) {\n          file.upload.progress = (100 * e.loaded) / e.total;\n          file.upload.total = e.total;\n          file.upload.bytesSent = e.loaded;\n        } else {\n          // No event, so we're at 100%\n          file.upload.progress = 100;\n          file.upload.bytesSent = file.upload.total;\n        }\n\n        this.emit(\n          \"uploadprogress\",\n          file,\n          file.upload.progress,\n          file.upload.bytesSent\n        );\n      }\n    } else {\n      // Handle chunked file uploads\n\n      // Chunked upload is not compatible with uploading multiple files in one\n      // request, so we know there's only one file.\n      let file = files[0];\n\n      // Since this is a chunked upload, we need to update the appropriate chunk\n      // progress.\n      let chunk = this._getChunk(file, xhr);\n\n      if (e) {\n        chunk.progress = (100 * e.loaded) / e.total;\n        chunk.total = e.total;\n        chunk.bytesSent = e.loaded;\n      } else {\n        // No event, so we're at 100%\n        chunk.progress = 100;\n        chunk.bytesSent = chunk.total;\n      }\n\n      // Now tally the *file* upload progress from its individual chunks\n      file.upload.progress = 0;\n      file.upload.total = 0;\n      file.upload.bytesSent = 0;\n      for (let i = 0; i < file.upload.totalChunkCount; i++) {\n        if (\n          file.upload.chunks[i] &&\n          typeof file.upload.chunks[i].progress !== \"undefined\"\n        ) {\n          file.upload.progress += file.upload.chunks[i].progress;\n          file.upload.total += file.upload.chunks[i].total;\n          file.upload.bytesSent += file.upload.chunks[i].bytesSent;\n        }\n      }\n      // Since the process is a percentage, we need to divide by the amount of\n      // chunks we've used.\n      file.upload.progress = file.upload.progress / file.upload.totalChunkCount;\n\n      this.emit(\n        \"uploadprogress\",\n        file,\n        file.upload.progress,\n        file.upload.bytesSent\n      );\n    }\n  }\n\n  _finishedUploading(files, xhr, e) {\n    let response;\n\n    if (files[0].status === Dropzone.CANCELED) {\n      return;\n    }\n\n    if (xhr.readyState !== 4) {\n      return;\n    }\n\n    if (xhr.responseType !== \"arraybuffer\" && xhr.responseType !== \"blob\") {\n      response = xhr.responseText;\n\n      if (\n        xhr.getResponseHeader(\"content-type\") &&\n        ~xhr.getResponseHeader(\"content-type\").indexOf(\"application/json\")\n      ) {\n        try {\n          response = JSON.parse(response);\n        } catch (error) {\n          e = error;\n          response = \"Invalid JSON response from server.\";\n        }\n      }\n    }\n\n    this._updateFilesUploadProgress(files, xhr);\n\n    if (!(200 <= xhr.status && xhr.status < 300)) {\n      this._handleUploadError(files, xhr, response);\n    } else {\n      if (files[0].upload.chunked) {\n        files[0].upload.finishedChunkUpload(\n          this._getChunk(files[0], xhr),\n          response\n        );\n      } else {\n        this._finished(files, response, e);\n      }\n    }\n  }\n\n  _handleUploadError(files, xhr, response) {\n    if (files[0].status === Dropzone.CANCELED) {\n      return;\n    }\n\n    if (files[0].upload.chunked && this.options.retryChunks) {\n      let chunk = this._getChunk(files[0], xhr);\n      if (chunk.retries++ < this.options.retryChunksLimit) {\n        this._uploadData(files, [chunk.dataBlock]);\n        return;\n      } else {\n        console.warn(\"Retried this chunk too often. Giving up.\");\n      }\n    }\n\n    this._errorProcessing(\n      files,\n      response ||\n        this.options.dictResponseError.replace(\"{{statusCode}}\", xhr.status),\n      xhr\n    );\n  }\n\n  submitRequest(xhr, formData, files) {\n    if (xhr.readyState != 1) {\n      console.warn(\n        \"Cannot send this request because the XMLHttpRequest.readyState is not OPENED.\"\n      );\n      return;\n    }\n    if (this.options.binaryBody) {\n      if (files[0].upload.chunked) {\n        const chunk = this._getChunk(files[0], xhr);\n        xhr.send(chunk.dataBlock.data);\n      } else {\n        xhr.send(files[0]);\n      }\n    } else {\n      xhr.send(formData);\n    }\n  }\n\n  // Called internally when processing is finished.\n  // Individual callbacks have to be called in the appropriate sections.\n  _finished(files, responseText, e) {\n    for (let file of files) {\n      file.status = Dropzone.SUCCESS;\n      this.emit(\"success\", file, responseText, e);\n      this.emit(\"complete\", file);\n    }\n    if (this.options.uploadMultiple) {\n      this.emit(\"successmultiple\", files, responseText, e);\n      this.emit(\"completemultiple\", files);\n    }\n\n    if (this.options.autoProcessQueue) {\n      return this.processQueue();\n    }\n  }\n\n  // Called internally when processing is finished.\n  // Individual callbacks have to be called in the appropriate sections.\n  _errorProcessing(files, message, xhr) {\n    for (let file of files) {\n      file.status = Dropzone.ERROR;\n      this.emit(\"error\", file, message, xhr);\n      this.emit(\"complete\", file);\n    }\n    if (this.options.uploadMultiple) {\n      this.emit(\"errormultiple\", files, message, xhr);\n      this.emit(\"completemultiple\", files);\n    }\n\n    if (this.options.autoProcessQueue) {\n      return this.processQueue();\n    }\n  }\n\n  static uuidv4() {\n    return \"10000000-1000-4000-8000-100000000000\".replace(/[018]/g, c =>\n      (+c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> +c / 4).toString(16)\n    );\n  }\n}\nDropzone.initClass();\n\n// This is a map of options for your different dropzones. Add configurations\n// to this object for your different dropzone elements.\n//\n// Example:\n//\n//     Dropzone.options.myDropzoneElementId = { maxFilesize: 1 };\n//\n// And in html:\n//\n//     <form action=\"/upload\" id=\"my-dropzone-element-id\" class=\"dropzone\"></form>\nDropzone.options = {};\n\n// Returns the options for an element or undefined if none available.\nDropzone.optionsForElement = function (element) {\n  // Get the `Dropzone.options.elementId` for this element if it exists\n  if (element.getAttribute(\"id\") && typeof Dropzone.options !== 'undefined') {\n    return Dropzone.options[camelize(element.getAttribute(\"id\"))];\n  } else {\n    return undefined;\n  }\n};\n\n// Holds a list of all dropzone instances\nDropzone.instances = [];\n\n// Returns the dropzone for given element if any\nDropzone.forElement = function (element) {\n  if (typeof element === \"string\") {\n    element = document.querySelector(element);\n  }\n  if ((element != null ? element.dropzone : undefined) == null) {\n    throw new Error(\n      \"No Dropzone found for given element. This is probably because you're trying to access it before Dropzone had the time to initialize. Use the `init` option to setup any additional observers on your Dropzone.\"\n    );\n  }\n  return element.dropzone;\n};\n\n// Looks for all .dropzone elements and creates a dropzone for them\nDropzone.discover = function () {\n  let dropzones;\n  if (document.querySelectorAll) {\n    dropzones = document.querySelectorAll(\".dropzone\");\n  } else {\n    dropzones = [];\n    // IE :(\n    let checkElements = (elements) =>\n      (() => {\n        let result = [];\n        for (let el of elements) {\n          if (/(^| )dropzone($| )/.test(el.className)) {\n            result.push(dropzones.push(el));\n          } else {\n            result.push(undefined);\n          }\n        }\n        return result;\n      })();\n    checkElements(document.getElementsByTagName(\"div\"));\n    checkElements(document.getElementsByTagName(\"form\"));\n  }\n\n  return (() => {\n    let result = [];\n    for (let dropzone of dropzones) {\n      // Create a dropzone unless auto discover has been disabled for specific element\n      if (Dropzone.optionsForElement(dropzone) !== false) {\n        result.push(new Dropzone(dropzone));\n      } else {\n        result.push(undefined);\n      }\n    }\n    return result;\n  })();\n};\n\n// Checks if the browser is supported by simply checking if Promise is here: a good cutoff\nDropzone.isBrowserSupported = function () {\n  return typeof Promise !== \"undefined\";\n};\n\nDropzone.shouldRehydrateDroppedFiles = function () {\n  if (typeof FileReader === \"undefined\" || typeof File === \"undefined\") {\n    return false;\n  }\n\n  let userAgent = navigator.userAgent || \"\";\n  let vendor = navigator.vendor || \"\";\n  let platform = navigator.platform || \"\";\n  let isIOS =\n    /iP(ad|hone|od)/.test(userAgent) ||\n    (platform === \"MacIntel\" && navigator.maxTouchPoints > 1);\n  let isSafari =\n    /Apple Computer/.test(vendor) &&\n    /Safari/.test(userAgent) &&\n    !/(Chrome|Chromium|CriOS|FxiOS|EdgiOS|OPiOS)/.test(userAgent);\n\n  return isIOS || isSafari;\n};\n\nDropzone.dataURItoBlob = function (dataURI) {\n  // convert base64 to raw binary data held in a string\n  // doesn't handle URLEncoded DataURIs - see SO answer #6850276 for code that does this\n  let byteString = atob(dataURI.split(\",\")[1]);\n\n  // separate out the mime component\n  let mimeString = dataURI.split(\",\")[0].split(\":\")[1].split(\";\")[0];\n\n  // write the bytes of the string to an ArrayBuffer\n  let ab = new ArrayBuffer(byteString.length);\n  let ia = new Uint8Array(ab);\n  for (\n    let i = 0, end = byteString.length, asc = 0 <= end;\n    asc ? i <= end : i >= end;\n    asc ? i++ : i--\n  ) {\n    ia[i] = byteString.charCodeAt(i);\n  }\n\n  // write the ArrayBuffer to a blob\n  return new Blob([ab], { type: mimeString });\n};\n\n// Returns an array without the rejected item\nconst without = (list, rejectedItem) =>\n  list.filter((item) => item !== rejectedItem).map((item) => item);\n\n// abc-def_ghi -> abcDefGhi\nconst camelize = (str) =>\n  str.replace(/[\\-_](\\w)/g, (match) => match.charAt(1).toUpperCase());\n\n// Creates an element from string\nDropzone.createElement = function (string) {\n  let div = document.createElement(\"div\");\n  div.innerHTML = string;\n  return div.childNodes[0];\n};\n\n// Tests if given element is inside (or simply is) the container\nDropzone.elementInside = function (element, container) {\n  if (element === container) {\n    return true;\n  } // Coffeescript doesn't support do/while loops\n  while ((element = element.parentNode)) {\n    if (element === container) {\n      return true;\n    }\n  }\n  return false;\n};\n\nDropzone.getElement = function (el, name) {\n  let element;\n  if (typeof el === \"string\") {\n    element = document.querySelector(el);\n  } else if (el.nodeType != null) {\n    element = el;\n  }\n  if (element == null) {\n    throw new Error(\n      `Invalid \\`${name}\\` option provided. Please provide a CSS selector or a plain HTML element.`\n    );\n  }\n  return element;\n};\n\nDropzone.getElements = function (els, name) {\n  let el, elements;\n  if (els instanceof Array) {\n    elements = [];\n    try {\n      for (el of els) {\n        elements.push(this.getElement(el, name));\n      }\n    } catch (e) {\n      elements = null;\n    }\n  } else if (typeof els === \"string\") {\n    elements = [];\n    for (el of document.querySelectorAll(els)) {\n      elements.push(el);\n    }\n  } else if (els.nodeType != null) {\n    elements = [els];\n  }\n\n  if (elements == null || !elements.length) {\n    throw new Error(\n      `Invalid \\`${name}\\` option provided. Please provide a CSS selector, a plain HTML element or a list of those.`\n    );\n  }\n\n  return elements;\n};\n\n// Asks the user the question and calls accepted or rejected accordingly\n//\n// The default implementation just uses `window.confirm` and then calls the\n// appropriate callback.\nDropzone.confirm = function (question, accepted, rejected) {\n  if (window.confirm(question)) {\n    return accepted();\n  } else if (rejected != null) {\n    return rejected();\n  }\n};\n\n// Validates the mime type like this:\n//\n// https://developer.mozilla.org/en-US/docs/HTML/Element/input#attr-accept\nDropzone.isValidFile = function (file, acceptedFiles) {\n  if (!acceptedFiles) {\n    return true;\n  } // If there are no accepted mime types, it's OK\n  acceptedFiles = acceptedFiles.split(\",\");\n\n  let mimeType = file.type;\n  let baseMimeType = mimeType.replace(/\\/.*$/, \"\");\n\n  for (let validType of acceptedFiles) {\n    validType = validType.trim();\n    if (validType.charAt(0) === \".\") {\n      if (\n        file.name\n          .toLowerCase()\n          .indexOf(\n            validType.toLowerCase(),\n            file.name.length - validType.length\n          ) !== -1\n      ) {\n        return true;\n      }\n    } else if (/\\/\\*$/.test(validType)) {\n      // This is something like a image/* mime type\n      if (baseMimeType === validType.replace(/\\/.*$/, \"\")) {\n        return true;\n      }\n    } else {\n      if (mimeType === validType) {\n        return true;\n      }\n    }\n  }\n\n  return false;\n};\n\n// Augment jQuery\nif (typeof jQuery !== \"undefined\" && jQuery !== null) {\n  jQuery.fn.dropzone = function (options) {\n    return this.each(function () {\n      return new Dropzone(this, options);\n    });\n  };\n}\n\n// Dropzone file status codes\nDropzone.ADDED = \"added\";\n\nDropzone.QUEUED = \"queued\";\n// For backwards compatibility. Now, if a file is accepted, it's either queued\n// or uploading.\nDropzone.ACCEPTED = Dropzone.QUEUED;\n\nDropzone.UPLOADING = \"uploading\";\nDropzone.PROCESSING = Dropzone.UPLOADING; // alias\n\nDropzone.CANCELED = \"canceled\";\nDropzone.ERROR = \"error\";\nDropzone.SUCCESS = \"success\";\n\n/*\n\n Bugfix for iOS 6 and 7\n Source: http://stackoverflow.com/questions/11929099/html5-canvas-drawimage-ratio-bug-ios\n based on the work of https://github.com/stomita/ios-imagefile-megapixel\n\n */\n\n// Detecting vertical squash in loaded image.\n// Fixes a bug which squash image vertically while drawing into canvas for some images.\n// This is a bug in iOS6 devices. This function from https://github.com/stomita/ios-imagefile-megapixel\nlet detectVerticalSquash = function (img) {\n  let ih = img.naturalHeight;\n  let canvas = document.createElement(\"canvas\");\n  canvas.width = 1;\n  canvas.height = ih;\n  let ctx = canvas.getContext(\"2d\");\n  ctx.drawImage(img, 0, 0);\n  let { data } = ctx.getImageData(1, 0, 1, ih);\n\n  // search image edge pixel position in case it is squashed vertically.\n  let sy = 0;\n  let ey = ih;\n  let py = ih;\n  while (py > sy) {\n    let alpha = data[(py - 1) * 4 + 3];\n\n    if (alpha === 0) {\n      ey = py;\n    } else {\n      sy = py;\n    }\n\n    py = (ey + sy) >> 1;\n  }\n  let ratio = py / ih;\n\n  if (ratio === 0) {\n    return 1;\n  } else {\n    return ratio;\n  }\n};\n\n// A replacement for context.drawImage\n// (args are for source and destination).\nvar drawImageIOSFix = function (ctx, img, sx, sy, sw, sh, dx, dy, dw, dh) {\n  let vertSquashRatio = detectVerticalSquash(img);\n  return ctx.drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh / vertSquashRatio);\n};\n\n// Inspired by MinifyJpeg\n// Source: http://www.perry.cz/files/ExifRestorer.js\n// http://elicon.blog57.fc2.com/blog-entry-206.html\nfunction removeExif(origFileBase64) {\n\n   var marker = 'data:image/jpeg;base64,';\n\n   if (!origFileBase64.startsWith(marker)) {\n      return origFileBase64;\n   }\n\n   var origFile = window.atob(origFileBase64.slice(marker.length));\n\n   if (!origFile.startsWith(\"\\xFF\\xD8\\xFF\")) {\n      return origFileBase64;\n   }\n\n   // loop through the JPEG file segments and copy all but Exif segments into the filtered file.\n   var head = 0;\n   var filteredFile = \"\";\n   while (head < origFile.length) {\n\n     if (origFile.slice(head, head+2) == \"\\xFF\\xDA\") {\n       // this is the start of the image data, we don't expect exif data after that.\n       filteredFile += origFile.slice(head);\n       break;\n     } else if (origFile.slice(head, head+2) == \"\\xFF\\xD8\") {\n       // this is the global start marker.\n       filteredFile += origFile.slice(head, head+2);\n       head += 2;\n     } else {\n       // we have a segment of variable size.\n       var length = origFile.charCodeAt(head + 2) * 256 + origFile.charCodeAt(head + 3);\n       var endPoint = head + length + 2;\n       var segment = origFile.slice(head, endPoint);\n       if (!segment.startsWith(\"\\xFF\\xE1\")) {\n         filteredFile += segment;\n       }\n       head = endPoint;\n     }\n   }\n\n   return marker + window.btoa(filteredFile);\n}\n\nfunction restoreExif(origFileBase64, resizedFileBase64) {\n\n   var marker = 'data:image/jpeg;base64,';\n\n   if (!(origFileBase64.startsWith(marker) && resizedFileBase64.startsWith(marker))) {\n      return resizedFileBase64;\n   }\n\n   var origFile = window.atob(origFileBase64.slice(marker.length));\n\n   if (!origFile.startsWith(\"\\xFF\\xD8\\xFF\")) {\n      return resizedFileBase64;\n   }\n\n   // Go through the JPEG file segments one by one and collect any Exif segments we find.\n   var head = 0;\n   var exifData = \"\";\n   while (head < origFile.length) {\n\n     if (origFile.slice(head, head+2) == \"\\xFF\\xDA\") {\n       // this is the start of the image data, we don't expect exif data after that.\n       break;\n     } else if (origFile.slice(head, head+2) == \"\\xFF\\xD8\") {\n       // this is the global start marker.\n       head += 2;\n     } else {\n       // we have a segment of variable size.\n       var length = origFile.charCodeAt(head + 2) * 256 + origFile.charCodeAt(head + 3);\n       var endPoint = head + length + 2;\n       var segment = origFile.slice(head, endPoint);\n       if (segment.startsWith(\"\\xFF\\xE1\")) {\n         exifData += segment;\n       }\n       head = endPoint;\n     }\n\n   }\n\n   if (exifData == \"\") {\n      return resizedFileBase64;\n   }\n\n   var resizedFile = window.atob(resizedFileBase64.slice(marker.length));\n\n   if (!resizedFile.startsWith(\"\\xFF\\xD8\\xFF\")) {\n      return resizedFileBase64;\n   }\n\n   // The first file segment is always header information so insert the Exif data as second segment.\n   var splitPoint = 4 + resizedFile.charCodeAt(4) * 256 + resizedFile.charCodeAt(5)\n   resizedFile = resizedFile.slice(0, splitPoint) + exifData + resizedFile.slice(splitPoint);\n\n   return marker + window.btoa(resizedFile);\n}\n\nfunction __guard__(value, transform) {\n  return typeof value !== \"undefined\" && value !== null\n    ? transform(value)\n    : undefined;\n}\nfunction __guardMethod__(obj, methodName, transform) {\n  if (\n    typeof obj !== \"undefined\" &&\n    obj !== null &&\n    typeof obj[methodName] === \"function\"\n  ) {\n    return transform(obj, methodName);\n  } else {\n    return undefined;\n  }\n}\n\nexport { Dropzone };\n", "// The Emitter class provides the ability to call `.on()` on Dropzone to listen\n// to events.\n// It is strongly based on component's emitter class, and I removed the\n// functionality because of the dependency hell with different frameworks.\nexport default class Emitter {\n  // Add an event listener for given event\n  on(event, fn) {\n    this._callbacks = this._callbacks || {};\n    // Create namespace for this event\n    if (!this._callbacks[event]) {\n      this._callbacks[event] = [];\n    }\n    this._callbacks[event].push(fn);\n    return this;\n  }\n\n  emit(event, ...args) {\n    this._callbacks = this._callbacks || {};\n    let callbacks = this._callbacks[event];\n\n    if (callbacks) {\n      for (let callback of callbacks) {\n        callback.apply(this, args);\n      }\n    }\n    // trigger a corresponding DOM event\n    if (this.element) {\n      this.element.dispatchEvent(\n        this.makeEvent(\"dropzone:\" + event, { args: args })\n      );\n    }\n    return this;\n  }\n\n  makeEvent(eventName, detail) {\n    let params = { bubbles: true, cancelable: true, detail: detail };\n\n    if (typeof window.CustomEvent === \"function\") {\n      return new CustomEvent(eventName, params);\n    } else {\n      // IE 11 support\n      // https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent\n      var evt = document.createEvent(\"CustomEvent\");\n      evt.initCustomEvent(\n        eventName,\n        params.bubbles,\n        params.cancelable,\n        params.detail\n      );\n      return evt;\n    }\n  }\n\n  // Remove event listener for given event. If fn is not provided, all event\n  // listeners for that event will be removed. If neither is provided, all\n  // event listeners will be removed.\n  off(event, fn) {\n    if (!this._callbacks || arguments.length === 0) {\n      this._callbacks = {};\n      return this;\n    }\n\n    // specific event\n    let callbacks = this._callbacks[event];\n    if (!callbacks) {\n      return this;\n    }\n\n    // remove all handlers\n    if (arguments.length === 1) {\n      delete this._callbacks[event];\n      return this;\n    }\n\n    // remove specific handler\n    for (let i = 0; i < callbacks.length; i++) {\n      let callback = callbacks[i];\n      if (callback === fn) {\n        callbacks.splice(i, 1);\n        break;\n      }\n    }\n\n    return this;\n  }\n}\n", "import Dropzone from \"./dropzone\";\nimport defaultPreviewTemplate from \"./preview-template.js\";\n\nlet defaultOptions = {\n  /**\n   * Has to be specified on elements other than form (or when the form doesn't\n   * have an `action` attribute).\n   *\n   * You can also provide a function that will be called with `files` and\n   * `dataBlocks`  and must return the url as string.\n   */\n  url: null,\n\n  /**\n   * Can be changed to `\"put\"` if necessary. You can also provide a function\n   * that will be called with `files` and must return the method (since `v3.12.0`).\n   */\n  method: \"post\",\n\n  /**\n   * Will be set on the XHRequest.\n   */\n  withCredentials: false,\n\n  /**\n   * The timeout for the XHR requests in milliseconds (since `v4.4.0`).\n   * If set to null or 0, no timeout is going to be set.\n   */\n  timeout: null,\n\n  /**\n   * How many file uploads to process in parallel (See the\n   * Enqueuing file uploads documentation section for more info)\n   */\n  parallelUploads: 2,\n\n  /**\n   * Whether to send multiple files in one request. If\n   * this it set to true, then the fallback file input element will\n   * have the `multiple` attribute as well. This option will\n   * also trigger additional events (like `processingmultiple`). See the events\n   * documentation section for more information.\n   */\n  uploadMultiple: false,\n\n  /**\n   * Whether you want files to be uploaded in chunks to your server. This can't be\n   * used in combination with `uploadMultiple`.\n   *\n   * See [chunksUploaded](#config-chunksUploaded) for the callback to finalise an upload.\n   */\n  chunking: false,\n\n  /**\n   * If `chunking` is enabled, this defines whether **every** file should be chunked,\n   * even if the file size is below chunkSize. This means, that the additional chunk\n   * form data will be submitted and the `chunksUploaded` callback will be invoked.\n   */\n  forceChunking: false,\n\n  /**\n   * If `chunking` is `true`, then this defines the chunk size in bytes.\n   */\n  chunkSize: 2 * 1024 * 1024,\n\n  /**\n   * If `true`, the individual chunks of a file are being uploaded simultaneously.\n   * The limit of concurrent connections is governed by `parallelUploads`.\n   */\n  parallelChunkUploads: false,\n\n  /**\n   * Whether a chunk should be retried if it fails.\n   */\n  retryChunks: false,\n\n  /**\n   * If `retryChunks` is true, how many times should it be retried.\n   */\n  retryChunksLimit: 3,\n\n  /**\n   * The maximum filesize (in MiB) that is allowed to be uploaded.\n   */\n  maxFilesize: 256,\n\n  /**\n   * The name of the file param that gets transferred.\n   * **NOTE**: If you have the option  `uploadMultiple` set to `true`, then\n   * Dropzone will append `[]` to the name.\n   */\n  paramName: \"file\",\n\n  /**\n   * Whether thumbnails for images should be generated\n   */\n  createImageThumbnails: true,\n\n  /**\n   * In MB. When the filename exceeds this limit, the thumbnail will not be generated.\n   */\n  maxThumbnailFilesize: 10,\n\n  /**\n   * If `null`, the ratio of the image will be used to calculate it.\n   */\n  thumbnailWidth: 120,\n\n  /**\n   * The same as `thumbnailWidth`. If both are null, images will not be resized.\n   */\n  thumbnailHeight: 120,\n\n  /**\n   * How the images should be scaled down in case both, `thumbnailWidth` and `thumbnailHeight` are provided.\n   * Can be either `contain` or `crop`.\n   */\n  thumbnailMethod: \"crop\",\n\n  /**\n   * If set, images will be resized to these dimensions before being **uploaded**.\n   * If only one, `resizeWidth` **or** `resizeHeight` is provided, the original aspect\n   * ratio of the file will be preserved.\n   *\n   * The `options.transformFile` function uses these options, so if the `transformFile` function\n   * is overridden, these options don't do anything.\n   */\n  resizeWidth: null,\n\n  /**\n   * See `resizeWidth`.\n   */\n  resizeHeight: null,\n\n  /**\n   * The mime type of the resized image (before it gets uploaded to the server).\n   * If `null` the original mime type will be used. To force jpeg, for example, use `image/jpeg`.\n   * See `resizeWidth` for more information.\n   */\n  resizeMimeType: null,\n\n  /**\n   * The quality of the resized images. See `resizeWidth`.\n   */\n  resizeQuality: 0.8,\n\n  /**\n   * How the images should be scaled down in case both, `resizeWidth` and `resizeHeight` are provided.\n   * Can be either `contain` or `crop`.\n   */\n  resizeMethod: \"contain\",\n\n  /**\n   * The base that is used to calculate the **displayed** filesize. You can\n   * change this to 1024 if you would rather display kibibytes, mebibytes,\n   * etc... 1024 is technically incorrect, because `1024 bytes` are `1 kibibyte`\n   * not `1 kilobyte`. You can change this to `1024` if you don't care about\n   * validity.\n   */\n  filesizeBase: 1000,\n\n  /**\n   * If not `null` defines how many files this Dropzone handles. If it exceeds,\n   * the event `maxfilesexceeded` will be called. The dropzone element gets the\n   * class `dz-max-files-reached` accordingly so you can provide visual\n   * feedback.\n   */\n  maxFiles: null,\n\n  /**\n   * An optional object to send additional headers to the server. Eg:\n   * `{ \"My-Awesome-Header\": \"header value\" }`\n   */\n  headers: null,\n\n  /**\n   * Should the default headers be set or not?\n   * Accept: application/json <- for requesting json response\n   * Cache-Control: no-cache <- Request shouldn't be cached\n   * X-Requested-With: XMLHttpRequest <- We sent the request via XMLHttpRequest\n   */\n  defaultHeaders: true,\n\n  /**\n   * If `true`, the dropzone element itself will be clickable, if `false`\n   * nothing will be clickable.\n   *\n   * You can also pass an HTML element, a CSS selector (for multiple elements)\n   * or an array of those. In that case, all of those elements will trigger an\n   * upload when clicked.\n   */\n  clickable: true,\n\n  /**\n   * Whether hidden files in directories should be ignored.\n   */\n  ignoreHiddenFiles: true,\n\n  /**\n   * The default implementation of `accept` checks the file's mime type or\n   * extension against this list. This is a comma separated list of mime\n   * types or file extensions.\n   *\n   * Eg.: `image/*,application/pdf,.psd`\n   *\n   * If the Dropzone is `clickable` this option will also be used as\n   * [`accept`](https://developer.mozilla.org/en-US/docs/HTML/Element/input#attr-accept)\n   * parameter on the hidden file input as well.\n   */\n  acceptedFiles: null,\n\n  /**\n   * If false, files will be added to the queue but the queue will not be\n   * processed automatically.\n   * This can be useful if you need some additional user input before sending\n   * files (or if you want want all files sent at once).\n   * If you're ready to send the file simply call `myDropzone.processQueue()`.\n   *\n   * See the [enqueuing file uploads](#enqueuing-file-uploads) documentation\n   * section for more information.\n   */\n  autoProcessQueue: true,\n\n  /**\n   * If false, files added to the dropzone will not be queued by default.\n   * You'll have to call `enqueueFile(file)` manually.\n   */\n  autoQueue: true,\n\n  /**\n   * If `true`, this will add a link to every file preview to remove or cancel (if\n   * already uploading) the file. The `dictCancelUpload`, `dictCancelUploadConfirmation`\n   * and `dictRemoveFile` options are used for the wording.\n   */\n  addRemoveLinks: false,\n\n  /**\n   * Defines where to display the file previews – if `null` the\n   * Dropzone element itself is used. Can be a plain `HTMLElement` or a CSS\n   * selector. The element should have the `dropzone-previews` class so\n   * the previews are displayed properly.\n   */\n  previewsContainer: null,\n\n  /**\n   * Set this to `true` if you don't want previews to be shown.\n   */\n  disablePreviews: false,\n\n  /**\n   * This is the element the hidden input field (which is used when clicking on the\n   * dropzone to trigger file selection) will be appended to. This might\n   * be important in case you use frameworks to switch the content of your page.\n   *\n   * Can be a selector string, or an element directly.\n   */\n  hiddenInputContainer: \"body\",\n\n  /**\n   * If null, no capture type will be specified\n   * If camera, mobile devices will skip the file selection and choose camera\n   * If microphone, mobile devices will skip the file selection and choose the microphone\n   * If camcorder, mobile devices will skip the file selection and choose the camera in video mode\n   * On apple devices multiple must be set to false.  AcceptedFiles may need to\n   * be set to an appropriate mime type (e.g. \"image/*\", \"audio/*\", or \"video/*\").\n   */\n  capture: null,\n\n  /**\n   * **Deprecated**. Use `renameFile` instead.\n   */\n  renameFilename: null,\n\n  /**\n   * A function that is invoked before the file is uploaded to the server and renames the file.\n   * This function gets the `File` as argument and can use the `file.name`. The actual name of the\n   * file that gets used during the upload can be accessed through `file.upload.filename`.\n   */\n  renameFile: null,\n\n  /**\n   * If `true` the fallback will be forced. This is very useful to test your server\n   * implementations first and make sure that everything works as\n   * expected without dropzone if you experience problems, and to test\n   * how your fallbacks will look.\n   */\n  forceFallback: false,\n\n  /**\n   * The text used before any files are dropped.\n   */\n  dictDefaultMessage: \"Drop files here to upload\",\n\n  /**\n   * The text that replaces the default message text it the browser is not supported.\n   */\n  dictFallbackMessage:\n    \"Your browser does not support drag'n'drop file uploads.\",\n\n  /**\n   * The text that will be added before the fallback form.\n   * If you provide a  fallback element yourself, or if this option is `null` this will\n   * be ignored.\n   */\n  dictFallbackText:\n    \"Please use the fallback form below to upload your files like in the olden days.\",\n\n  /**\n   * If the filesize is too big.\n   * `{{filesize}}` and `{{maxFilesize}}` will be replaced with the respective configuration values.\n   */\n  dictFileTooBig:\n    \"File is too big ({{filesize}}MiB). Max filesize: {{maxFilesize}}MiB.\",\n\n  /**\n   * If the file doesn't match the file type.\n   */\n  dictInvalidFileType: \"You can't upload files of this type.\",\n\n  /**\n   * If the server response was invalid.\n   * `{{statusCode}}` will be replaced with the servers status code.\n   */\n  dictResponseError: \"Server responded with {{statusCode}} code.\",\n\n  /**\n   * If `addRemoveLinks` is true, the text to be used for the cancel upload link.\n   */\n  dictCancelUpload: \"Cancel upload\",\n\n  /**\n   * The text that is displayed if an upload was manually canceled\n   */\n  dictUploadCanceled: \"Upload canceled.\",\n\n  /**\n   * If `addRemoveLinks` is true, the text to be used for confirmation when cancelling upload.\n   */\n  dictCancelUploadConfirmation: \"Are you sure you want to cancel this upload?\",\n\n  /**\n   * If `addRemoveLinks` is true, the text to be used to remove a file.\n   */\n  dictRemoveFile: \"Remove file\",\n\n  /**\n   * If this is not null, then the user will be prompted before removing a file.\n   */\n  dictRemoveFileConfirmation: null,\n\n  /**\n   * Displayed if `maxFiles` is st and exceeded.\n   * The string `{{maxFiles}}` will be replaced by the configuration value.\n   */\n  dictMaxFilesExceeded: \"You cannot upload any more files.\",\n\n  /**\n   * Allows you to translate the different units. Starting with `tb` for terabytes and going down to\n   * `b` for bytes.\n   */\n  dictFileSizeUnits: { tb: \"TB\", gb: \"GB\", mb: \"MB\", kb: \"KB\", b: \"b\" },\n  /**\n   * Called when dropzone initialized\n   * You can add event listeners here\n   */\n  init() {},\n\n  /**\n   * Can be an **object** of additional parameters to transfer to the server, **or** a `Function`\n   * that gets invoked with the `files`, `xhr` and, if it's a chunked upload, `chunk` arguments. In case\n   * of a function, this needs to return a map.\n   *\n   * The default implementation does nothing for normal uploads, but adds relevant information for\n   * chunked uploads.\n   *\n   * This is the same as adding hidden input fields in the form element.\n   */\n  params(files, xhr, chunk) {\n    if (chunk) {\n      return {\n        dzuuid: chunk.file.upload.uuid,\n        dzchunkindex: chunk.index,\n        dztotalfilesize: chunk.file.size,\n        dzchunksize: this.options.chunkSize,\n        dztotalchunkcount: chunk.file.upload.totalChunkCount,\n        dzchunkbyteoffset: chunk.index * this.options.chunkSize,\n      };\n    }\n  },\n\n  /**\n   * A function that gets a [file](https://developer.mozilla.org/en-US/docs/DOM/File)\n   * and a `done` function as parameters.\n   *\n   * If the done function is invoked without arguments, the file is \"accepted\" and will\n   * be processed. If you pass an error message, the file is rejected, and the error\n   * message will be displayed.\n   * This function will not be called if the file is too big or doesn't match the mime types.\n   */\n  accept(file, done) {\n    return done();\n  },\n\n  /**\n   * The callback that will be invoked when all chunks have been uploaded for a file.\n   * It gets the file for which the chunks have been uploaded as the first parameter,\n   * and the `done` function as second. `done()` needs to be invoked when everything\n   * needed to finish the upload process is done.\n   */\n  chunksUploaded: function (file, done) {\n    done();\n  },\n\n  /**\n   * Sends the file as binary blob in body instead of form data.\n   * If this is set, the `params` option will be ignored.\n   * It's an error to set this to `true` along with `uploadMultiple` since\n   * multiple files cannot be in a single binary body.\n   */\n  binaryBody: false,\n\n  /**\n   * Gets called when the browser is not supported.\n   * The default implementation shows the fallback input field and adds\n   * a text.\n   */\n  fallback() {\n    // This code should pass in IE7... :(\n    let messageElement;\n    this.element.className = `${this.element.className} dz-browser-not-supported`;\n\n    for (let child of this.element.getElementsByTagName(\"div\")) {\n      if (/(^| )dz-message($| )/.test(child.className)) {\n        messageElement = child;\n        child.className = \"dz-message\"; // Removes the 'dz-default' class\n        break;\n      }\n    }\n    if (!messageElement) {\n      messageElement = Dropzone.createElement(\n        '<div class=\"dz-message\"><span></span></div>'\n      );\n      this.element.appendChild(messageElement);\n    }\n\n    let span = messageElement.getElementsByTagName(\"span\")[0];\n    if (span) {\n      if (span.textContent != null) {\n        span.textContent = this.options.dictFallbackMessage;\n      } else if (span.innerText != null) {\n        span.innerText = this.options.dictFallbackMessage;\n      }\n    }\n\n    return this.element.appendChild(this.getFallbackForm());\n  },\n\n  /**\n   * Gets called to calculate the thumbnail dimensions.\n   *\n   * It gets `file`, `width` and `height` (both may be `null`) as parameters and must return an object containing:\n   *\n   *  - `srcWidth` & `srcHeight` (required)\n   *  - `trgWidth` & `trgHeight` (required)\n   *  - `srcX` & `srcY` (optional, default `0`)\n   *  - `trgX` & `trgY` (optional, default `0`)\n   *\n   * Those values are going to be used by `ctx.drawImage()`.\n   */\n  resize(file, width, height, resizeMethod) {\n    let info = {\n      srcX: 0,\n      srcY: 0,\n      srcWidth: file.width,\n      srcHeight: file.height,\n    };\n\n    let srcRatio = file.width / file.height;\n\n    // Automatically calculate dimensions if not specified\n    if (width == null && height == null) {\n      width = info.srcWidth;\n      height = info.srcHeight;\n    } else if (width == null) {\n      width = height * srcRatio;\n    } else if (height == null) {\n      height = width / srcRatio;\n    }\n\n    // Make sure images aren't upscaled\n    width = Math.min(width, info.srcWidth);\n    height = Math.min(height, info.srcHeight);\n\n    let trgRatio = width / height;\n\n    if (info.srcWidth > width || info.srcHeight > height) {\n      // Image is bigger and needs rescaling\n      if (resizeMethod === \"crop\") {\n        if (srcRatio > trgRatio) {\n          info.srcHeight = file.height;\n          info.srcWidth = info.srcHeight * trgRatio;\n        } else {\n          info.srcWidth = file.width;\n          info.srcHeight = info.srcWidth / trgRatio;\n        }\n      } else if (resizeMethod === \"contain\") {\n        // Method 'contain'\n        if (srcRatio > trgRatio) {\n          height = width / srcRatio;\n        } else {\n          width = height * srcRatio;\n        }\n      } else {\n        throw new Error(`Unknown resizeMethod '${resizeMethod}'`);\n      }\n    }\n\n    info.srcX = (file.width - info.srcWidth) / 2;\n    info.srcY = (file.height - info.srcHeight) / 2;\n\n    info.trgWidth = width;\n    info.trgHeight = height;\n\n    return info;\n  },\n\n  /**\n   * Can be used to transform the file (for example, resize an image if necessary).\n   *\n   * The default implementation uses `resizeWidth` and `resizeHeight` (if provided) and resizes\n   * images according to those dimensions.\n   *\n   * Gets the `file` as the first parameter, and a `done()` function as the second, that needs\n   * to be invoked with the file when the transformation is done.\n   */\n  transformFile(file, done) {\n    if (\n      (this.options.resizeWidth || this.options.resizeHeight) &&\n      file.type.match(/image.*/)\n    ) {\n      return this.resizeImage(\n        file,\n        this.options.resizeWidth,\n        this.options.resizeHeight,\n        this.options.resizeMethod,\n        done\n      );\n    } else {\n      return done(file);\n    }\n  },\n\n  /**\n   * A string that contains the template used for each dropped\n   * file. Change it to fulfill your needs but make sure to properly\n   * provide all elements.\n   *\n   * If you want to use an actual HTML element instead of providing a String\n   * as a config option, you could create a div with the id `tpl`,\n   * put the template inside it and provide the element like this:\n   *\n   *     document\n   *       .querySelector('#tpl')\n   *       .innerHTML\n   *\n   */\n  previewTemplate: defaultPreviewTemplate,\n\n  /*\n   Those functions register themselves to the events on init and handle all\n   the user interface specific stuff. Overwriting them won't break the upload\n   but can break the way it's displayed.\n   You can overwrite them if you don't like the default behavior. If you just\n   want to add an additional event handler, register it on the dropzone object\n   and don't overwrite those options.\n   */\n\n  // Those are self explanatory and simply concern the DragnDrop.\n  drop(e) {\n    return this.element.classList.remove(\"dz-drag-hover\");\n  },\n  dragstart(e) {},\n  dragend(e) {\n    return this.element.classList.remove(\"dz-drag-hover\");\n  },\n  dragenter(e) {\n    return this.element.classList.add(\"dz-drag-hover\");\n  },\n  dragover(e) {\n    return this.element.classList.add(\"dz-drag-hover\");\n  },\n  dragleave(e) {\n    return this.element.classList.remove(\"dz-drag-hover\");\n  },\n\n  paste(e) {},\n\n  // Called whenever there are no files left in the dropzone anymore, and the\n  // dropzone should be displayed as if in the initial state.\n  reset() {\n    return this.element.classList.remove(\"dz-started\");\n  },\n\n  // Called when a file is added to the queue\n  // Receives `file`\n  addedfile(file) {\n    if (this.element === this.previewsContainer) {\n      this.element.classList.add(\"dz-started\");\n    }\n\n    if (this.previewsContainer && !this.options.disablePreviews) {\n      file.previewElement = Dropzone.createElement(\n        this.options.previewTemplate.trim()\n      );\n      file.previewTemplate = file.previewElement; // Backwards compatibility\n\n      this.previewsContainer.appendChild(file.previewElement);\n      for (var node of file.previewElement.querySelectorAll(\"[data-dz-name]\")) {\n        node.textContent = file.name;\n      }\n      for (node of file.previewElement.querySelectorAll(\"[data-dz-size]\")) {\n        node.innerHTML = this.filesize(file.size);\n      }\n\n      if (this.options.addRemoveLinks) {\n        file._removeLink = Dropzone.createElement(\n          `<a class=\"dz-remove\" href=\"javascript:undefined;\" data-dz-remove>${this.options.dictRemoveFile}</a>`\n        );\n        file.previewElement.appendChild(file._removeLink);\n      }\n\n      let removeFileEvent = (e) => {\n        e.preventDefault();\n        e.stopPropagation();\n        if (file.status === Dropzone.UPLOADING) {\n          if (this.options.dictCancelUploadConfirmation) {\n            return Dropzone.confirm(\n              this.options.dictCancelUploadConfirmation,\n              () => this.removeFile(file)\n            );\n          } else {\n            return this.removeFile(file);\n          }\n        } else {\n          if (this.options.dictRemoveFileConfirmation) {\n            return Dropzone.confirm(\n              this.options.dictRemoveFileConfirmation,\n              () => this.removeFile(file)\n            );\n          } else {\n            return this.removeFile(file);\n          }\n        }\n      };\n\n      for (let removeLink of file.previewElement.querySelectorAll(\n        \"[data-dz-remove]\"\n      )) {\n        removeLink.addEventListener(\"click\", removeFileEvent);\n      }\n    }\n  },\n\n  // Called whenever a file is removed.\n  removedfile(file) {\n    if (file.previewElement != null && file.previewElement.parentNode != null) {\n      file.previewElement.parentNode.removeChild(file.previewElement);\n    }\n    return this._updateMaxFilesReachedClass();\n  },\n\n  // Called when a thumbnail has been generated\n  // Receives `file` and `dataUrl`\n  thumbnail(file, dataUrl) {\n    if (file.previewElement) {\n      file.previewElement.classList.remove(\"dz-file-preview\");\n      for (let thumbnailElement of file.previewElement.querySelectorAll(\n        \"[data-dz-thumbnail]\"\n      )) {\n        thumbnailElement.alt = file.name;\n        thumbnailElement.src = dataUrl;\n      }\n\n      return setTimeout(\n        () => file.previewElement.classList.add(\"dz-image-preview\"),\n        1\n      );\n    }\n  },\n\n  // Called whenever an error occurs\n  // Receives `file` and `message`\n  error(file, message) {\n    if (file.previewElement) {\n      file.previewElement.classList.add(\"dz-error\");\n      if (typeof message !== \"string\" && message.error) {\n        message = message.error;\n      }\n      for (let node of file.previewElement.querySelectorAll(\n        \"[data-dz-errormessage]\"\n      )) {\n        node.textContent = message;\n      }\n    }\n  },\n\n  errormultiple() {},\n\n  // Called when a file gets processed. Since there is a queue, not all added\n  // files are processed immediately.\n  // Receives `file`\n  processing(file) {\n    if (file.previewElement) {\n      file.previewElement.classList.add(\"dz-processing\");\n      if (file._removeLink) {\n        return (file._removeLink.innerHTML = this.options.dictCancelUpload);\n      }\n    }\n  },\n\n  processingmultiple() {},\n\n  // Called whenever the upload progress gets updated.\n  // Receives `file`, `progress` (percentage 0-100) and `bytesSent`.\n  // To get the total number of bytes of the file, use `file.size`\n  uploadprogress(file, progress, bytesSent) {\n    if (file.previewElement) {\n      for (let node of file.previewElement.querySelectorAll(\n        \"[data-dz-uploadprogress]\"\n      )) {\n        node.nodeName === \"PROGRESS\"\n          ? (node.value = progress)\n          : (node.style.width = `${progress}%`);\n      }\n    }\n  },\n\n  // Called whenever the total upload progress gets updated.\n  // Called with totalUploadProgress (0-100), totalBytes and totalBytesSent\n  totaluploadprogress() {},\n\n  // Called just before the file is sent. Gets the `xhr` object as second\n  // parameter, so you can modify it (for example to add a CSRF token) and a\n  // `formData` object to add additional information.\n  sending() {},\n\n  sendingmultiple() {},\n\n  // When the complete upload is finished and successful\n  // Receives `file`\n  success(file) {\n    if (file.previewElement) {\n      return file.previewElement.classList.add(\"dz-success\");\n    }\n  },\n\n  successmultiple() {},\n\n  // When the upload is canceled.\n  canceled(file) {\n    return this.emit(\"error\", file, this.options.dictUploadCanceled);\n  },\n\n  canceledmultiple() {},\n\n  // When the upload is finished, either with success or an error.\n  // Receives `file`\n  complete(file) {\n    if (file._removeLink) {\n      file._removeLink.innerHTML = this.options.dictRemoveFile;\n    }\n    if (file.previewElement) {\n      return file.previewElement.classList.add(\"dz-complete\");\n    }\n  },\n\n  completemultiple() {},\n\n  maxfilesexceeded() {},\n\n  maxfilesreached() {},\n\n  queuecomplete() {},\n\n  addedfiles() {},\n\n  emptyfolder() {},\n};\n\nexport default defaultOptions;\n", "export default `\n<div class=\"dz-preview dz-file-preview\">\n  <div class=\"dz-image\"><img data-dz-thumbnail /></div>\n  <div class=\"dz-details\">\n    <div class=\"dz-size\"><span data-dz-size></span></div>\n    <div class=\"dz-filename\"><span data-dz-name></span></div>\n  </div>\n  <div class=\"dz-progress\">\n    <span class=\"dz-upload\" data-dz-uploadprogress></span>\n  </div>\n  <div class=\"dz-error-message\"><span data-dz-errormessage></span></div>\n  <div class=\"dz-success-mark\">\n    <svg\n      width=\"54\"\n      height=\"54\"\n      viewBox=\"0 0 54 54\"\n      fill=\"white\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n    >\n      <path\n        d=\"M10.2071 29.7929L14.2929 25.7071C14.6834 25.3166 15.3166 25.3166 15.7071 25.7071L21.2929 31.2929C21.6834 31.6834 22.3166 31.6834 22.7071 31.2929L38.2929 15.7071C38.6834 15.3166 39.3166 15.3166 39.7071 15.7071L43.7929 19.7929C44.1834 20.1834 44.1834 20.8166 43.7929 21.2071L22.7071 42.2929C22.3166 42.6834 21.6834 42.6834 21.2929 42.2929L10.2071 31.2071C9.81658 30.8166 9.81658 30.1834 10.2071 29.7929Z\"\n      />\n    </svg>\n  </div>\n  <div class=\"dz-error-mark\">\n    <svg\n      width=\"54\"\n      height=\"54\"\n      viewBox=\"0 0 54 54\"\n      fill=\"white\"\n      xmlns=\"http://www.w3.org/2000/svg\"\n    >\n      <path\n        d=\"M26.2929 20.2929L19.2071 13.2071C18.8166 12.8166 18.1834 12.8166 17.7929 13.2071L13.2071 17.7929C12.8166 18.1834 12.8166 18.8166 13.2071 19.2071L20.2929 26.2929C20.6834 26.6834 20.6834 27.3166 20.2929 27.7071L13.2071 34.7929C12.8166 35.1834 12.8166 35.8166 13.2071 36.2071L17.7929 40.7929C18.1834 41.1834 18.8166 41.1834 19.2071 40.7929L26.2929 33.7071C26.6834 33.3166 27.3166 33.3166 27.7071 33.7071L34.7929 40.7929C35.1834 41.1834 35.8166 41.1834 36.2071 40.7929L40.7929 36.2071C41.1834 35.8166 41.1834 35.1834 40.7929 34.7929L33.7071 27.7071C33.3166 27.3166 33.3166 26.6834 33.7071 26.2929L40.7929 19.2071C41.1834 18.8166 41.1834 18.1834 40.7929 17.7929L36.2071 13.2071C35.8166 12.8166 35.1834 12.8166 34.7929 13.2071L27.7071 20.2929C27.3166 20.6834 26.6834 20.6834 26.2929 20.2929Z\"\n      />\n    </svg>\n  </div>\n</div>`;\n", "/**!\n * Sortable 1.15.7\n * @author\tRubaXa   <trash@rubaxa.org>\n * @author\towenm    <owen23355@gmail.com>\n * @license MIT\n */\nfunction _arrayLikeToArray(r, a) {\n  (null == a || a > r.length) && (a = r.length);\n  for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n  return n;\n}\nfunction _arrayWithoutHoles(r) {\n  if (Array.isArray(r)) return _arrayLikeToArray(r);\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 _extends() {\n  return _extends = Object.assign ? Object.assign.bind() : function (n) {\n    for (var e = 1; e < arguments.length; e++) {\n      var t = arguments[e];\n      for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n    }\n    return n;\n  }, _extends.apply(null, arguments);\n}\nfunction _iterableToArray(r) {\n  if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n}\nfunction _nonIterableSpread() {\n  throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\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 _objectWithoutProperties(e, t) {\n  if (null == e) return {};\n  var o,\n    r,\n    i = _objectWithoutPropertiesLoose(e, t);\n  if (Object.getOwnPropertySymbols) {\n    var n = Object.getOwnPropertySymbols(e);\n    for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]);\n  }\n  return i;\n}\nfunction _objectWithoutPropertiesLoose(r, e) {\n  if (null == r) return {};\n  var t = {};\n  for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n    if (-1 !== e.indexOf(n)) continue;\n    t[n] = r[n];\n  }\n  return t;\n}\nfunction _toConsumableArray(r) {\n  return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\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 _typeof(o) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n    return typeof o;\n  } : function (o) {\n    return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n  }, _typeof(o);\n}\nfunction _unsupportedIterableToArray(r, a) {\n  if (r) {\n    if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n    var t = {}.toString.call(r).slice(8, -1);\n    return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n  }\n}\n\nvar version = \"1.15.7\";\n\nfunction userAgent(pattern) {\n  if (typeof window !== 'undefined' && window.navigator) {\n    return !! /*@__PURE__*/navigator.userAgent.match(pattern);\n  }\n}\nvar IE11OrLess = userAgent(/(?:Trident.*rv[ :]?11\\.|msie|iemobile|Windows Phone)/i);\nvar Edge = userAgent(/Edge/i);\nvar FireFox = userAgent(/firefox/i);\nvar Safari = userAgent(/safari/i) && !userAgent(/chrome/i) && !userAgent(/android/i);\nvar IOS = userAgent(/iP(ad|od|hone)/i);\nvar ChromeForAndroid = userAgent(/chrome/i) && userAgent(/android/i);\n\nvar captureMode = {\n  capture: false,\n  passive: false\n};\nfunction on(el, event, fn) {\n  el.addEventListener(event, fn, !IE11OrLess && captureMode);\n}\nfunction off(el, event, fn) {\n  el.removeEventListener(event, fn, !IE11OrLess && captureMode);\n}\nfunction matches( /**HTMLElement*/el, /**String*/selector) {\n  if (!selector) return;\n  selector[0] === '>' && (selector = selector.substring(1));\n  if (el) {\n    try {\n      if (el.matches) {\n        return el.matches(selector);\n      } else if (el.msMatchesSelector) {\n        return el.msMatchesSelector(selector);\n      } else if (el.webkitMatchesSelector) {\n        return el.webkitMatchesSelector(selector);\n      }\n    } catch (_) {\n      return false;\n    }\n  }\n  return false;\n}\nfunction getParentOrHost(el) {\n  return el.host && el !== document && el.host.nodeType && el.host !== el ? el.host : el.parentNode;\n}\nfunction closest( /**HTMLElement*/el, /**String*/selector, /**HTMLElement*/ctx, includeCTX) {\n  if (el) {\n    ctx = ctx || document;\n    do {\n      if (selector != null && (selector[0] === '>' ? el.parentNode === ctx && matches(el, selector) : matches(el, selector)) || includeCTX && el === ctx) {\n        return el;\n      }\n      if (el === ctx) break;\n      /* jshint boss:true */\n    } while (el = getParentOrHost(el));\n  }\n  return null;\n}\nvar R_SPACE = /\\s+/g;\nfunction toggleClass(el, name, state) {\n  if (el && name) {\n    if (el.classList) {\n      el.classList[state ? 'add' : 'remove'](name);\n    } else {\n      var className = (' ' + el.className + ' ').replace(R_SPACE, ' ').replace(' ' + name + ' ', ' ');\n      el.className = (className + (state ? ' ' + name : '')).replace(R_SPACE, ' ');\n    }\n  }\n}\nfunction css(el, prop, val) {\n  var style = el && el.style;\n  if (style) {\n    if (val === void 0) {\n      if (document.defaultView && document.defaultView.getComputedStyle) {\n        val = document.defaultView.getComputedStyle(el, '');\n      } else if (el.currentStyle) {\n        val = el.currentStyle;\n      }\n      return prop === void 0 ? val : val[prop];\n    } else {\n      if (!(prop in style) && prop.indexOf('webkit') === -1) {\n        prop = '-webkit-' + prop;\n      }\n      style[prop] = val + (typeof val === 'string' ? '' : 'px');\n    }\n  }\n}\nfunction matrix(el, selfOnly) {\n  var appliedTransforms = '';\n  if (typeof el === 'string') {\n    appliedTransforms = el;\n  } else {\n    do {\n      var transform = css(el, 'transform');\n      if (transform && transform !== 'none') {\n        appliedTransforms = transform + ' ' + appliedTransforms;\n      }\n      /* jshint boss:true */\n    } while (!selfOnly && (el = el.parentNode));\n  }\n  var matrixFn = window.DOMMatrix || window.WebKitCSSMatrix || window.CSSMatrix || window.MSCSSMatrix;\n  /*jshint -W056 */\n  return matrixFn && new matrixFn(appliedTransforms);\n}\nfunction find(ctx, tagName, iterator) {\n  if (ctx) {\n    var list = ctx.getElementsByTagName(tagName),\n      i = 0,\n      n = list.length;\n    if (iterator) {\n      for (; i < n; i++) {\n        iterator(list[i], i);\n      }\n    }\n    return list;\n  }\n  return [];\n}\nfunction getWindowScrollingElement() {\n  var scrollingElement = document.scrollingElement;\n  if (scrollingElement) {\n    return scrollingElement;\n  } else {\n    return document.documentElement;\n  }\n}\n\n/**\r\n * Returns the \"bounding client rect\" of given element\r\n * @param  {HTMLElement} el                       The element whose boundingClientRect is wanted\r\n * @param  {[Boolean]} relativeToContainingBlock  Whether the rect should be relative to the containing block of (including) the container\r\n * @param  {[Boolean]} relativeToNonStaticParent  Whether the rect should be relative to the relative parent of (including) the contaienr\r\n * @param  {[Boolean]} undoScale                  Whether the container's scale() should be undone\r\n * @param  {[HTMLElement]} container              The parent the element will be placed in\r\n * @return {Object}                               The boundingClientRect of el, with specified adjustments\r\n */\nfunction getRect(el, relativeToContainingBlock, relativeToNonStaticParent, undoScale, container) {\n  if (!el.getBoundingClientRect && el !== window) return;\n  var elRect, top, left, bottom, right, height, width;\n  if (el !== window && el.parentNode && el !== getWindowScrollingElement()) {\n    elRect = el.getBoundingClientRect();\n    top = elRect.top;\n    left = elRect.left;\n    bottom = elRect.bottom;\n    right = elRect.right;\n    height = elRect.height;\n    width = elRect.width;\n  } else {\n    top = 0;\n    left = 0;\n    bottom = window.innerHeight;\n    right = window.innerWidth;\n    height = window.innerHeight;\n    width = window.innerWidth;\n  }\n  if ((relativeToContainingBlock || relativeToNonStaticParent) && el !== window) {\n    // Adjust for translate()\n    container = container || el.parentNode;\n\n    // solves #1123 (see: https://stackoverflow.com/a/37953806/6088312)\n    // Not needed on <= IE11\n    if (!IE11OrLess) {\n      do {\n        if (container && container.getBoundingClientRect && (css(container, 'transform') !== 'none' || relativeToNonStaticParent && css(container, 'position') !== 'static')) {\n          var containerRect = container.getBoundingClientRect();\n\n          // Set relative to edges of padding box of container\n          top -= containerRect.top + parseInt(css(container, 'border-top-width'));\n          left -= containerRect.left + parseInt(css(container, 'border-left-width'));\n          bottom = top + elRect.height;\n          right = left + elRect.width;\n          break;\n        }\n        /* jshint boss:true */\n      } while (container = container.parentNode);\n    }\n  }\n  if (undoScale && el !== window) {\n    // Adjust for scale()\n    var elMatrix = matrix(container || el),\n      scaleX = elMatrix && elMatrix.a,\n      scaleY = elMatrix && elMatrix.d;\n    if (elMatrix) {\n      top /= scaleY;\n      left /= scaleX;\n      width /= scaleX;\n      height /= scaleY;\n      bottom = top + height;\n      right = left + width;\n    }\n  }\n  return {\n    top: top,\n    left: left,\n    bottom: bottom,\n    right: right,\n    width: width,\n    height: height\n  };\n}\n\n/**\r\n * Checks if a side of an element is scrolled past a side of its parents\r\n * @param  {HTMLElement}  el           The element who's side being scrolled out of view is in question\r\n * @param  {String}       elSide       Side of the element in question ('top', 'left', 'right', 'bottom')\r\n * @param  {String}       parentSide   Side of the parent in question ('top', 'left', 'right', 'bottom')\r\n * @return {HTMLElement}               The parent scroll element that the el's side is scrolled past, or null if there is no such element\r\n */\nfunction isScrolledPast(el, elSide, parentSide) {\n  var parent = getParentAutoScrollElement(el, true),\n    elSideVal = getRect(el)[elSide];\n\n  /* jshint boss:true */\n  while (parent) {\n    var parentSideVal = getRect(parent)[parentSide],\n      visible = void 0;\n    if (parentSide === 'top' || parentSide === 'left') {\n      visible = elSideVal >= parentSideVal;\n    } else {\n      visible = elSideVal <= parentSideVal;\n    }\n    if (!visible) return parent;\n    if (parent === getWindowScrollingElement()) break;\n    parent = getParentAutoScrollElement(parent, false);\n  }\n  return false;\n}\n\n/**\r\n * Gets nth child of el, ignoring hidden children, sortable's elements (does not ignore clone if it's visible)\r\n * and non-draggable elements\r\n * @param  {HTMLElement} el       The parent element\r\n * @param  {Number} childNum      The index of the child\r\n * @param  {Object} options       Parent Sortable's options\r\n * @return {HTMLElement}          The child at index childNum, or null if not found\r\n */\nfunction getChild(el, childNum, options, includeDragEl) {\n  var currentChild = 0,\n    i = 0,\n    children = el.children;\n  while (i < children.length) {\n    if (children[i].style.display !== 'none' && children[i] !== Sortable.ghost && (includeDragEl || children[i] !== Sortable.dragged) && closest(children[i], options.draggable, el, false)) {\n      if (currentChild === childNum) {\n        return children[i];\n      }\n      currentChild++;\n    }\n    i++;\n  }\n  return null;\n}\n\n/**\r\n * Gets the last child in the el, ignoring ghostEl or invisible elements (clones)\r\n * @param  {HTMLElement} el       Parent element\r\n * @param  {selector} selector    Any other elements that should be ignored\r\n * @return {HTMLElement}          The last child, ignoring ghostEl\r\n */\nfunction lastChild(el, selector) {\n  var last = el.lastElementChild;\n  while (last && (last === Sortable.ghost || css(last, 'display') === 'none' || selector && !matches(last, selector))) {\n    last = last.previousElementSibling;\n  }\n  return last || null;\n}\n\n/**\r\n * Returns the index of an element within its parent for a selected set of\r\n * elements\r\n * @param  {HTMLElement} el\r\n * @param  {selector} selector\r\n * @return {number}\r\n */\nfunction index(el, selector) {\n  var index = 0;\n  if (!el || !el.parentNode) {\n    return -1;\n  }\n\n  /* jshint boss:true */\n  while (el = el.previousElementSibling) {\n    if (el.nodeName.toUpperCase() !== 'TEMPLATE' && el !== Sortable.clone && (!selector || matches(el, selector))) {\n      index++;\n    }\n  }\n  return index;\n}\n\n/**\r\n * Returns the scroll offset of the given element, added with all the scroll offsets of parent elements.\r\n * The value is returned in real pixels.\r\n * @param  {HTMLElement} el\r\n * @return {Array}             Offsets in the format of [left, top]\r\n */\nfunction getRelativeScrollOffset(el) {\n  var offsetLeft = 0,\n    offsetTop = 0,\n    winScroller = getWindowScrollingElement();\n  if (el) {\n    do {\n      var elMatrix = matrix(el),\n        scaleX = elMatrix.a,\n        scaleY = elMatrix.d;\n      offsetLeft += el.scrollLeft * scaleX;\n      offsetTop += el.scrollTop * scaleY;\n    } while (el !== winScroller && (el = el.parentNode));\n  }\n  return [offsetLeft, offsetTop];\n}\n\n/**\r\n * Returns the index of the object within the given array\r\n * @param  {Array} arr   Array that may or may not hold the object\r\n * @param  {Object} obj  An object that has a key-value pair unique to and identical to a key-value pair in the object you want to find\r\n * @return {Number}      The index of the object in the array, or -1\r\n */\nfunction indexOfObject(arr, obj) {\n  for (var i in arr) {\n    if (!arr.hasOwnProperty(i)) continue;\n    for (var key in obj) {\n      if (obj.hasOwnProperty(key) && obj[key] === arr[i][key]) return Number(i);\n    }\n  }\n  return -1;\n}\nfunction getParentAutoScrollElement(el, includeSelf) {\n  // skip to window\n  if (!el || !el.getBoundingClientRect) return getWindowScrollingElement();\n  var elem = el;\n  var gotSelf = false;\n  do {\n    // we don't need to get elem css if it isn't even overflowing in the first place (performance)\n    if (elem.clientWidth < elem.scrollWidth || elem.clientHeight < elem.scrollHeight) {\n      var elemCSS = css(elem);\n      if (elem.clientWidth < elem.scrollWidth && (elemCSS.overflowX == 'auto' || elemCSS.overflowX == 'scroll') || elem.clientHeight < elem.scrollHeight && (elemCSS.overflowY == 'auto' || elemCSS.overflowY == 'scroll')) {\n        if (!elem.getBoundingClientRect || elem === document.body) return getWindowScrollingElement();\n        if (gotSelf || includeSelf) return elem;\n        gotSelf = true;\n      }\n    }\n    /* jshint boss:true */\n  } while (elem = elem.parentNode);\n  return getWindowScrollingElement();\n}\nfunction extend(dst, src) {\n  if (dst && src) {\n    for (var key in src) {\n      if (src.hasOwnProperty(key)) {\n        dst[key] = src[key];\n      }\n    }\n  }\n  return dst;\n}\nfunction isRectEqual(rect1, rect2) {\n  return Math.round(rect1.top) === Math.round(rect2.top) && Math.round(rect1.left) === Math.round(rect2.left) && Math.round(rect1.height) === Math.round(rect2.height) && Math.round(rect1.width) === Math.round(rect2.width);\n}\nvar _throttleTimeout;\nfunction throttle(callback, ms) {\n  return function () {\n    if (!_throttleTimeout) {\n      var args = arguments,\n        _this = this;\n      if (args.length === 1) {\n        callback.call(_this, args[0]);\n      } else {\n        callback.apply(_this, args);\n      }\n      _throttleTimeout = setTimeout(function () {\n        _throttleTimeout = void 0;\n      }, ms);\n    }\n  };\n}\nfunction cancelThrottle() {\n  clearTimeout(_throttleTimeout);\n  _throttleTimeout = void 0;\n}\nfunction scrollBy(el, x, y) {\n  el.scrollLeft += x;\n  el.scrollTop += y;\n}\nfunction clone(el) {\n  var Polymer = window.Polymer;\n  var $ = window.jQuery || window.Zepto;\n  if (Polymer && Polymer.dom) {\n    return Polymer.dom(el).cloneNode(true);\n  } else if ($) {\n    return $(el).clone(true)[0];\n  } else {\n    return el.cloneNode(true);\n  }\n}\nfunction setRect(el, rect) {\n  css(el, 'position', 'absolute');\n  css(el, 'top', rect.top);\n  css(el, 'left', rect.left);\n  css(el, 'width', rect.width);\n  css(el, 'height', rect.height);\n}\nfunction unsetRect(el) {\n  css(el, 'position', '');\n  css(el, 'top', '');\n  css(el, 'left', '');\n  css(el, 'width', '');\n  css(el, 'height', '');\n}\nfunction getChildContainingRectFromElement(container, options, ghostEl) {\n  var rect = {};\n  Array.from(container.children).forEach(function (child) {\n    var _rect$left, _rect$top, _rect$right, _rect$bottom;\n    if (!closest(child, options.draggable, container, false) || child.animated || child === ghostEl) return;\n    var childRect = getRect(child);\n    rect.left = Math.min((_rect$left = rect.left) !== null && _rect$left !== void 0 ? _rect$left : Infinity, childRect.left);\n    rect.top = Math.min((_rect$top = rect.top) !== null && _rect$top !== void 0 ? _rect$top : Infinity, childRect.top);\n    rect.right = Math.max((_rect$right = rect.right) !== null && _rect$right !== void 0 ? _rect$right : -Infinity, childRect.right);\n    rect.bottom = Math.max((_rect$bottom = rect.bottom) !== null && _rect$bottom !== void 0 ? _rect$bottom : -Infinity, childRect.bottom);\n  });\n  rect.width = rect.right - rect.left;\n  rect.height = rect.bottom - rect.top;\n  rect.x = rect.left;\n  rect.y = rect.top;\n  return rect;\n}\nvar expando = 'Sortable' + new Date().getTime();\n\nfunction AnimationStateManager() {\n  var animationStates = [],\n    animationCallbackId;\n  return {\n    captureAnimationState: function captureAnimationState() {\n      animationStates = [];\n      if (!this.options.animation) return;\n      var children = [].slice.call(this.el.children);\n      children.forEach(function (child) {\n        if (css(child, 'display') === 'none' || child === Sortable.ghost) return;\n        animationStates.push({\n          target: child,\n          rect: getRect(child)\n        });\n        var fromRect = _objectSpread2({}, animationStates[animationStates.length - 1].rect);\n\n        // If animating: compensate for current animation\n        if (child.thisAnimationDuration) {\n          var childMatrix = matrix(child, true);\n          if (childMatrix) {\n            fromRect.top -= childMatrix.f;\n            fromRect.left -= childMatrix.e;\n          }\n        }\n        child.fromRect = fromRect;\n      });\n    },\n    addAnimationState: function addAnimationState(state) {\n      animationStates.push(state);\n    },\n    removeAnimationState: function removeAnimationState(target) {\n      animationStates.splice(indexOfObject(animationStates, {\n        target: target\n      }), 1);\n    },\n    animateAll: function animateAll(callback) {\n      var _this = this;\n      if (!this.options.animation) {\n        clearTimeout(animationCallbackId);\n        if (typeof callback === 'function') callback();\n        return;\n      }\n      var animating = false,\n        animationTime = 0;\n      animationStates.forEach(function (state) {\n        var time = 0,\n          target = state.target,\n          fromRect = target.fromRect,\n          toRect = getRect(target),\n          prevFromRect = target.prevFromRect,\n          prevToRect = target.prevToRect,\n          animatingRect = state.rect,\n          targetMatrix = matrix(target, true);\n        if (targetMatrix) {\n          // Compensate for current animation\n          toRect.top -= targetMatrix.f;\n          toRect.left -= targetMatrix.e;\n        }\n        target.toRect = toRect;\n        if (target.thisAnimationDuration) {\n          // Could also check if animatingRect is between fromRect and toRect\n          if (isRectEqual(prevFromRect, toRect) && !isRectEqual(fromRect, toRect) &&\n          // Make sure animatingRect is on line between toRect & fromRect\n          (animatingRect.top - toRect.top) / (animatingRect.left - toRect.left) === (fromRect.top - toRect.top) / (fromRect.left - toRect.left)) {\n            // If returning to same place as started from animation and on same axis\n            time = calculateRealTime(animatingRect, prevFromRect, prevToRect, _this.options);\n          }\n        }\n\n        // if fromRect != toRect: animate\n        if (!isRectEqual(toRect, fromRect)) {\n          target.prevFromRect = fromRect;\n          target.prevToRect = toRect;\n          if (!time) {\n            time = _this.options.animation;\n          }\n          _this.animate(target, animatingRect, toRect, time);\n        }\n        if (time) {\n          animating = true;\n          animationTime = Math.max(animationTime, time);\n          clearTimeout(target.animationResetTimer);\n          target.animationResetTimer = setTimeout(function () {\n            target.animationTime = 0;\n            target.prevFromRect = null;\n            target.fromRect = null;\n            target.prevToRect = null;\n            target.thisAnimationDuration = null;\n          }, time);\n          target.thisAnimationDuration = time;\n        }\n      });\n      clearTimeout(animationCallbackId);\n      if (!animating) {\n        if (typeof callback === 'function') callback();\n      } else {\n        animationCallbackId = setTimeout(function () {\n          if (typeof callback === 'function') callback();\n        }, animationTime);\n      }\n      animationStates = [];\n    },\n    animate: function animate(target, currentRect, toRect, duration) {\n      if (duration) {\n        css(target, 'transition', '');\n        css(target, 'transform', '');\n        var elMatrix = matrix(this.el),\n          scaleX = elMatrix && elMatrix.a,\n          scaleY = elMatrix && elMatrix.d,\n          translateX = (currentRect.left - toRect.left) / (scaleX || 1),\n          translateY = (currentRect.top - toRect.top) / (scaleY || 1);\n        target.animatingX = !!translateX;\n        target.animatingY = !!translateY;\n        css(target, 'transform', 'translate3d(' + translateX + 'px,' + translateY + 'px,0)');\n        this.forRepaintDummy = repaint(target); // repaint\n\n        css(target, 'transition', 'transform ' + duration + 'ms' + (this.options.easing ? ' ' + this.options.easing : ''));\n        css(target, 'transform', 'translate3d(0,0,0)');\n        typeof target.animated === 'number' && clearTimeout(target.animated);\n        target.animated = setTimeout(function () {\n          css(target, 'transition', '');\n          css(target, 'transform', '');\n          target.animated = false;\n          target.animatingX = false;\n          target.animatingY = false;\n        }, duration);\n      }\n    }\n  };\n}\nfunction repaint(target) {\n  return target.offsetWidth;\n}\nfunction calculateRealTime(animatingRect, fromRect, toRect, options) {\n  return Math.sqrt(Math.pow(fromRect.top - animatingRect.top, 2) + Math.pow(fromRect.left - animatingRect.left, 2)) / Math.sqrt(Math.pow(fromRect.top - toRect.top, 2) + Math.pow(fromRect.left - toRect.left, 2)) * options.animation;\n}\n\nvar plugins = [];\nvar defaults = {\n  initializeByDefault: true\n};\nvar PluginManager = {\n  mount: function mount(plugin) {\n    // Set default static properties\n    for (var option in defaults) {\n      if (defaults.hasOwnProperty(option) && !(option in plugin)) {\n        plugin[option] = defaults[option];\n      }\n    }\n    plugins.forEach(function (p) {\n      if (p.pluginName === plugin.pluginName) {\n        throw \"Sortable: Cannot mount plugin \".concat(plugin.pluginName, \" more than once\");\n      }\n    });\n    plugins.push(plugin);\n  },\n  pluginEvent: function pluginEvent(eventName, sortable, evt) {\n    var _this = this;\n    this.eventCanceled = false;\n    evt.cancel = function () {\n      _this.eventCanceled = true;\n    };\n    var eventNameGlobal = eventName + 'Global';\n    plugins.forEach(function (plugin) {\n      if (!sortable[plugin.pluginName]) return;\n      // Fire global events if it exists in this sortable\n      if (sortable[plugin.pluginName][eventNameGlobal]) {\n        sortable[plugin.pluginName][eventNameGlobal](_objectSpread2({\n          sortable: sortable\n        }, evt));\n      }\n\n      // Only fire plugin event if plugin is enabled in this sortable,\n      // and plugin has event defined\n      if (sortable.options[plugin.pluginName] && sortable[plugin.pluginName][eventName]) {\n        sortable[plugin.pluginName][eventName](_objectSpread2({\n          sortable: sortable\n        }, evt));\n      }\n    });\n  },\n  initializePlugins: function initializePlugins(sortable, el, defaults, options) {\n    plugins.forEach(function (plugin) {\n      var pluginName = plugin.pluginName;\n      if (!sortable.options[pluginName] && !plugin.initializeByDefault) return;\n      var initialized = new plugin(sortable, el, sortable.options);\n      initialized.sortable = sortable;\n      initialized.options = sortable.options;\n      sortable[pluginName] = initialized;\n\n      // Add default options from plugin\n      _extends(defaults, initialized.defaults);\n    });\n    for (var option in sortable.options) {\n      if (!sortable.options.hasOwnProperty(option)) continue;\n      var modified = this.modifyOption(sortable, option, sortable.options[option]);\n      if (typeof modified !== 'undefined') {\n        sortable.options[option] = modified;\n      }\n    }\n  },\n  getEventProperties: function getEventProperties(name, sortable) {\n    var eventProperties = {};\n    plugins.forEach(function (plugin) {\n      if (typeof plugin.eventProperties !== 'function') return;\n      _extends(eventProperties, plugin.eventProperties.call(sortable[plugin.pluginName], name));\n    });\n    return eventProperties;\n  },\n  modifyOption: function modifyOption(sortable, name, value) {\n    var modifiedValue;\n    plugins.forEach(function (plugin) {\n      // Plugin must exist on the Sortable\n      if (!sortable[plugin.pluginName]) return;\n\n      // If static option listener exists for this option, call in the context of the Sortable's instance of this plugin\n      if (plugin.optionListeners && typeof plugin.optionListeners[name] === 'function') {\n        modifiedValue = plugin.optionListeners[name].call(sortable[plugin.pluginName], value);\n      }\n    });\n    return modifiedValue;\n  }\n};\n\nfunction dispatchEvent(_ref) {\n  var sortable = _ref.sortable,\n    rootEl = _ref.rootEl,\n    name = _ref.name,\n    targetEl = _ref.targetEl,\n    cloneEl = _ref.cloneEl,\n    toEl = _ref.toEl,\n    fromEl = _ref.fromEl,\n    oldIndex = _ref.oldIndex,\n    newIndex = _ref.newIndex,\n    oldDraggableIndex = _ref.oldDraggableIndex,\n    newDraggableIndex = _ref.newDraggableIndex,\n    originalEvent = _ref.originalEvent,\n    putSortable = _ref.putSortable,\n    extraEventProperties = _ref.extraEventProperties;\n  sortable = sortable || rootEl && rootEl[expando];\n  if (!sortable) return;\n  var evt,\n    options = sortable.options,\n    onName = 'on' + name.charAt(0).toUpperCase() + name.substr(1);\n  // Support for new CustomEvent feature\n  if (window.CustomEvent && !IE11OrLess && !Edge) {\n    evt = new CustomEvent(name, {\n      bubbles: true,\n      cancelable: true\n    });\n  } else {\n    evt = document.createEvent('Event');\n    evt.initEvent(name, true, true);\n  }\n  evt.to = toEl || rootEl;\n  evt.from = fromEl || rootEl;\n  evt.item = targetEl || rootEl;\n  evt.clone = cloneEl;\n  evt.oldIndex = oldIndex;\n  evt.newIndex = newIndex;\n  evt.oldDraggableIndex = oldDraggableIndex;\n  evt.newDraggableIndex = newDraggableIndex;\n  evt.originalEvent = originalEvent;\n  evt.pullMode = putSortable ? putSortable.lastPutMode : undefined;\n  var allEventProperties = _objectSpread2(_objectSpread2({}, extraEventProperties), PluginManager.getEventProperties(name, sortable));\n  for (var option in allEventProperties) {\n    evt[option] = allEventProperties[option];\n  }\n  if (rootEl) {\n    rootEl.dispatchEvent(evt);\n  }\n  if (options[onName]) {\n    options[onName].call(sortable, evt);\n  }\n}\n\nvar _excluded = [\"evt\"];\nvar pluginEvent = function pluginEvent(eventName, sortable) {\n  var _ref = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {},\n    originalEvent = _ref.evt,\n    data = _objectWithoutProperties(_ref, _excluded);\n  PluginManager.pluginEvent.bind(Sortable)(eventName, sortable, _objectSpread2({\n    dragEl: dragEl,\n    parentEl: parentEl,\n    ghostEl: ghostEl,\n    rootEl: rootEl,\n    nextEl: nextEl,\n    lastDownEl: lastDownEl,\n    cloneEl: cloneEl,\n    cloneHidden: cloneHidden,\n    dragStarted: moved,\n    putSortable: putSortable,\n    activeSortable: Sortable.active,\n    originalEvent: originalEvent,\n    oldIndex: oldIndex,\n    oldDraggableIndex: oldDraggableIndex,\n    newIndex: newIndex,\n    newDraggableIndex: newDraggableIndex,\n    hideGhostForTarget: _hideGhostForTarget,\n    unhideGhostForTarget: _unhideGhostForTarget,\n    cloneNowHidden: function cloneNowHidden() {\n      cloneHidden = true;\n    },\n    cloneNowShown: function cloneNowShown() {\n      cloneHidden = false;\n    },\n    dispatchSortableEvent: function dispatchSortableEvent(name) {\n      _dispatchEvent({\n        sortable: sortable,\n        name: name,\n        originalEvent: originalEvent\n      });\n    }\n  }, data));\n};\nfunction _dispatchEvent(info) {\n  dispatchEvent(_objectSpread2({\n    putSortable: putSortable,\n    cloneEl: cloneEl,\n    targetEl: dragEl,\n    rootEl: rootEl,\n    oldIndex: oldIndex,\n    oldDraggableIndex: oldDraggableIndex,\n    newIndex: newIndex,\n    newDraggableIndex: newDraggableIndex\n  }, info));\n}\nvar dragEl,\n  parentEl,\n  ghostEl,\n  rootEl,\n  nextEl,\n  lastDownEl,\n  cloneEl,\n  cloneHidden,\n  oldIndex,\n  newIndex,\n  oldDraggableIndex,\n  newDraggableIndex,\n  activeGroup,\n  putSortable,\n  awaitingDragStarted = false,\n  ignoreNextClick = false,\n  sortables = [],\n  tapEvt,\n  touchEvt,\n  lastDx,\n  lastDy,\n  tapDistanceLeft,\n  tapDistanceTop,\n  moved,\n  lastTarget,\n  lastDirection,\n  pastFirstInvertThresh = false,\n  isCircumstantialInvert = false,\n  targetMoveDistance,\n  // For positioning ghost absolutely\n  ghostRelativeParent,\n  ghostRelativeParentInitialScroll = [],\n  // (left, top)\n\n  _silent = false,\n  savedInputChecked = [];\n\n/** @const */\nvar documentExists = typeof document !== 'undefined',\n  PositionGhostAbsolutely = IOS,\n  CSSFloatProperty = Edge || IE11OrLess ? 'cssFloat' : 'float',\n  // This will not pass for IE9, because IE9 DnD only works on anchors\n  supportDraggable = documentExists && !ChromeForAndroid && !IOS && 'draggable' in document.createElement('div'),\n  supportCssPointerEvents = function () {\n    if (!documentExists) return;\n    // false when <= IE11\n    if (IE11OrLess) {\n      return false;\n    }\n    var el = document.createElement('x');\n    el.style.cssText = 'pointer-events:auto';\n    return el.style.pointerEvents === 'auto';\n  }(),\n  _detectDirection = function _detectDirection(el, options) {\n    var elCSS = css(el),\n      elWidth = parseInt(elCSS.width) - parseInt(elCSS.paddingLeft) - parseInt(elCSS.paddingRight) - parseInt(elCSS.borderLeftWidth) - parseInt(elCSS.borderRightWidth),\n      child1 = getChild(el, 0, options),\n      child2 = getChild(el, 1, options),\n      firstChildCSS = child1 && css(child1),\n      secondChildCSS = child2 && css(child2),\n      firstChildWidth = firstChildCSS && parseInt(firstChildCSS.marginLeft) + parseInt(firstChildCSS.marginRight) + getRect(child1).width,\n      secondChildWidth = secondChildCSS && parseInt(secondChildCSS.marginLeft) + parseInt(secondChildCSS.marginRight) + getRect(child2).width;\n    if (elCSS.display === 'flex') {\n      return elCSS.flexDirection === 'column' || elCSS.flexDirection === 'column-reverse' ? 'vertical' : 'horizontal';\n    }\n    if (elCSS.display === 'grid') {\n      return elCSS.gridTemplateColumns.split(' ').length <= 1 ? 'vertical' : 'horizontal';\n    }\n    if (child1 && firstChildCSS[\"float\"] && firstChildCSS[\"float\"] !== 'none') {\n      var touchingSideChild2 = firstChildCSS[\"float\"] === 'left' ? 'left' : 'right';\n      return child2 && (secondChildCSS.clear === 'both' || secondChildCSS.clear === touchingSideChild2) ? 'vertical' : 'horizontal';\n    }\n    return child1 && (firstChildCSS.display === 'block' || firstChildCSS.display === 'flex' || firstChildCSS.display === 'table' || firstChildCSS.display === 'grid' || firstChildWidth >= elWidth && elCSS[CSSFloatProperty] === 'none' || child2 && elCSS[CSSFloatProperty] === 'none' && firstChildWidth + secondChildWidth > elWidth) ? 'vertical' : 'horizontal';\n  },\n  _dragElInRowColumn = function _dragElInRowColumn(dragRect, targetRect, vertical) {\n    var dragElS1Opp = vertical ? dragRect.left : dragRect.top,\n      dragElS2Opp = vertical ? dragRect.right : dragRect.bottom,\n      dragElOppLength = vertical ? dragRect.width : dragRect.height,\n      targetS1Opp = vertical ? targetRect.left : targetRect.top,\n      targetS2Opp = vertical ? targetRect.right : targetRect.bottom,\n      targetOppLength = vertical ? targetRect.width : targetRect.height;\n    return dragElS1Opp === targetS1Opp || dragElS2Opp === targetS2Opp || dragElS1Opp + dragElOppLength / 2 === targetS1Opp + targetOppLength / 2;\n  },\n  /**\r\n   * Detects first nearest empty sortable to X and Y position using emptyInsertThreshold.\r\n   * @param  {Number} x      X position\r\n   * @param  {Number} y      Y position\r\n   * @return {HTMLElement}   Element of the first found nearest Sortable\r\n   */\n  _detectNearestEmptySortable = function _detectNearestEmptySortable(x, y) {\n    var ret;\n    sortables.some(function (sortable) {\n      var threshold = sortable[expando].options.emptyInsertThreshold;\n      if (!threshold || lastChild(sortable)) return;\n      var rect = getRect(sortable),\n        insideHorizontally = x >= rect.left - threshold && x <= rect.right + threshold,\n        insideVertically = y >= rect.top - threshold && y <= rect.bottom + threshold;\n      if (insideHorizontally && insideVertically) {\n        return ret = sortable;\n      }\n    });\n    return ret;\n  },\n  _prepareGroup = function _prepareGroup(options) {\n    function toFn(value, pull) {\n      return function (to, from, dragEl, evt) {\n        var sameGroup = to.options.group.name && from.options.group.name && to.options.group.name === from.options.group.name;\n        if (value == null && (pull || sameGroup)) {\n          // Default pull value\n          // Default pull and put value if same group\n          return true;\n        } else if (value == null || value === false) {\n          return false;\n        } else if (pull && value === 'clone') {\n          return value;\n        } else if (typeof value === 'function') {\n          return toFn(value(to, from, dragEl, evt), pull)(to, from, dragEl, evt);\n        } else {\n          var otherGroup = (pull ? to : from).options.group.name;\n          return value === true || typeof value === 'string' && value === otherGroup || value.join && value.indexOf(otherGroup) > -1;\n        }\n      };\n    }\n    var group = {};\n    var originalGroup = options.group;\n    if (!originalGroup || _typeof(originalGroup) != 'object') {\n      originalGroup = {\n        name: originalGroup\n      };\n    }\n    group.name = originalGroup.name;\n    group.checkPull = toFn(originalGroup.pull, true);\n    group.checkPut = toFn(originalGroup.put);\n    group.revertClone = originalGroup.revertClone;\n    options.group = group;\n  },\n  _hideGhostForTarget = function _hideGhostForTarget() {\n    if (!supportCssPointerEvents && ghostEl) {\n      css(ghostEl, 'display', 'none');\n    }\n  },\n  _unhideGhostForTarget = function _unhideGhostForTarget() {\n    if (!supportCssPointerEvents && ghostEl) {\n      css(ghostEl, 'display', '');\n    }\n  };\n\n// #1184 fix - Prevent click event on fallback if dragged but item not changed position\nif (documentExists && !ChromeForAndroid) {\n  document.addEventListener('click', function (evt) {\n    if (ignoreNextClick) {\n      evt.preventDefault();\n      evt.stopPropagation && evt.stopPropagation();\n      evt.stopImmediatePropagation && evt.stopImmediatePropagation();\n      ignoreNextClick = false;\n      return false;\n    }\n  }, true);\n}\nvar nearestEmptyInsertDetectEvent = function nearestEmptyInsertDetectEvent(evt) {\n  if (dragEl) {\n    evt = evt.touches ? evt.touches[0] : evt;\n    var nearest = _detectNearestEmptySortable(evt.clientX, evt.clientY);\n    if (nearest) {\n      // Create imitation event\n      var event = {};\n      for (var i in evt) {\n        if (evt.hasOwnProperty(i)) {\n          event[i] = evt[i];\n        }\n      }\n      event.target = event.rootEl = nearest;\n      event.preventDefault = void 0;\n      event.stopPropagation = void 0;\n      nearest[expando]._onDragOver(event);\n    }\n  }\n};\nvar _checkOutsideTargetEl = function _checkOutsideTargetEl(evt) {\n  if (dragEl) {\n    dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n  }\n};\n\n/**\r\n * @class  Sortable\r\n * @param  {HTMLElement}  el\r\n * @param  {Object}       [options]\r\n */\nfunction Sortable(el, options) {\n  if (!(el && el.nodeType && el.nodeType === 1)) {\n    throw \"Sortable: `el` must be an HTMLElement, not \".concat({}.toString.call(el));\n  }\n  this.el = el; // root element\n  this.options = options = _extends({}, options);\n\n  // Export instance\n  el[expando] = this;\n  var defaults = {\n    group: null,\n    sort: true,\n    disabled: false,\n    store: null,\n    handle: null,\n    draggable: /^[uo]l$/i.test(el.nodeName) ? '>li' : '>*',\n    swapThreshold: 1,\n    // percentage; 0 <= x <= 1\n    invertSwap: false,\n    // invert always\n    invertedSwapThreshold: null,\n    // will be set to same as swapThreshold if default\n    removeCloneOnHide: true,\n    direction: function direction() {\n      return _detectDirection(el, this.options);\n    },\n    ghostClass: 'sortable-ghost',\n    chosenClass: 'sortable-chosen',\n    dragClass: 'sortable-drag',\n    ignore: 'a, img',\n    filter: null,\n    preventOnFilter: true,\n    animation: 0,\n    easing: null,\n    setData: function setData(dataTransfer, dragEl) {\n      dataTransfer.setData('Text', dragEl.textContent);\n    },\n    dropBubble: false,\n    dragoverBubble: false,\n    dataIdAttr: 'data-id',\n    delay: 0,\n    delayOnTouchOnly: false,\n    touchStartThreshold: (Number.parseInt ? Number : window).parseInt(window.devicePixelRatio, 10) || 1,\n    forceFallback: false,\n    fallbackClass: 'sortable-fallback',\n    fallbackOnBody: false,\n    fallbackTolerance: 0,\n    fallbackOffset: {\n      x: 0,\n      y: 0\n    },\n    // Disabled on Safari: #1571; Enabled on Safari IOS: #2244\n    supportPointer: Sortable.supportPointer !== false && 'PointerEvent' in window && (!Safari || IOS),\n    emptyInsertThreshold: 5\n  };\n  PluginManager.initializePlugins(this, el, defaults);\n\n  // Set default options\n  for (var name in defaults) {\n    !(name in options) && (options[name] = defaults[name]);\n  }\n  _prepareGroup(options);\n\n  // Bind all private methods\n  for (var fn in this) {\n    if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n      this[fn] = this[fn].bind(this);\n    }\n  }\n\n  // Setup drag mode\n  this.nativeDraggable = options.forceFallback ? false : supportDraggable;\n  if (this.nativeDraggable) {\n    // Touch start threshold cannot be greater than the native dragstart threshold\n    this.options.touchStartThreshold = 1;\n  }\n\n  // Bind events\n  if (options.supportPointer) {\n    on(el, 'pointerdown', this._onTapStart);\n  } else {\n    on(el, 'mousedown', this._onTapStart);\n    on(el, 'touchstart', this._onTapStart);\n  }\n  if (this.nativeDraggable) {\n    on(el, 'dragover', this);\n    on(el, 'dragenter', this);\n  }\n  sortables.push(this.el);\n\n  // Restore sorting\n  options.store && options.store.get && this.sort(options.store.get(this) || []);\n\n  // Add animation state manager\n  _extends(this, AnimationStateManager());\n}\nSortable.prototype = /** @lends Sortable.prototype */{\n  constructor: Sortable,\n  _isOutsideThisEl: function _isOutsideThisEl(target) {\n    if (!this.el.contains(target) && target !== this.el) {\n      lastTarget = null;\n    }\n  },\n  _getDirection: function _getDirection(evt, target) {\n    return typeof this.options.direction === 'function' ? this.options.direction.call(this, evt, target, dragEl) : this.options.direction;\n  },\n  _onTapStart: function _onTapStart( /** Event|TouchEvent */evt) {\n    if (!evt.cancelable) return;\n    var _this = this,\n      el = this.el,\n      options = this.options,\n      preventOnFilter = options.preventOnFilter,\n      type = evt.type,\n      touch = evt.touches && evt.touches[0] || evt.pointerType && evt.pointerType === 'touch' && evt,\n      target = (touch || evt).target,\n      originalTarget = evt.target.shadowRoot && (evt.path && evt.path[0] || evt.composedPath && evt.composedPath()[0]) || target,\n      filter = options.filter;\n    _saveInputCheckedState(el);\n\n    // Don't trigger start event when an element is been dragged, otherwise the evt.oldindex always wrong when set option.group.\n    if (dragEl) {\n      return;\n    }\n    if (/mousedown|pointerdown/.test(type) && evt.button !== 0 || options.disabled) {\n      return; // only left button and enabled\n    }\n\n    // cancel dnd if original target is content editable\n    if (originalTarget.isContentEditable) {\n      return;\n    }\n\n    // Safari ignores further event handling after mousedown\n    if (!this.nativeDraggable && Safari && target && target.tagName.toUpperCase() === 'SELECT') {\n      return;\n    }\n    target = closest(target, options.draggable, el, false);\n    if (target && target.animated) {\n      return;\n    }\n    if (lastDownEl === target) {\n      // Ignoring duplicate `down`\n      return;\n    }\n\n    // Get the index of the dragged element within its parent\n    oldIndex = index(target);\n    oldDraggableIndex = index(target, options.draggable);\n\n    // Check filter\n    if (typeof filter === 'function') {\n      if (filter.call(this, evt, target, this)) {\n        _dispatchEvent({\n          sortable: _this,\n          rootEl: originalTarget,\n          name: 'filter',\n          targetEl: target,\n          toEl: el,\n          fromEl: el\n        });\n        pluginEvent('filter', _this, {\n          evt: evt\n        });\n        preventOnFilter && evt.preventDefault();\n        return; // cancel dnd\n      }\n    } else if (filter) {\n      filter = filter.split(',').some(function (criteria) {\n        criteria = closest(originalTarget, criteria.trim(), el, false);\n        if (criteria) {\n          _dispatchEvent({\n            sortable: _this,\n            rootEl: criteria,\n            name: 'filter',\n            targetEl: target,\n            fromEl: el,\n            toEl: el\n          });\n          pluginEvent('filter', _this, {\n            evt: evt\n          });\n          return true;\n        }\n      });\n      if (filter) {\n        preventOnFilter && evt.preventDefault();\n        return; // cancel dnd\n      }\n    }\n    if (options.handle && !closest(originalTarget, options.handle, el, false)) {\n      return;\n    }\n\n    // Prepare `dragstart`\n    this._prepareDragStart(evt, touch, target);\n  },\n  _prepareDragStart: function _prepareDragStart( /** Event */evt, /** Touch */touch, /** HTMLElement */target) {\n    var _this = this,\n      el = _this.el,\n      options = _this.options,\n      ownerDocument = el.ownerDocument,\n      dragStartFn;\n    if (target && !dragEl && target.parentNode === el) {\n      var dragRect = getRect(target);\n      rootEl = el;\n      dragEl = target;\n      parentEl = dragEl.parentNode;\n      nextEl = dragEl.nextSibling;\n      lastDownEl = target;\n      activeGroup = options.group;\n      Sortable.dragged = dragEl;\n      tapEvt = {\n        target: dragEl,\n        clientX: (touch || evt).clientX,\n        clientY: (touch || evt).clientY\n      };\n      tapDistanceLeft = tapEvt.clientX - dragRect.left;\n      tapDistanceTop = tapEvt.clientY - dragRect.top;\n      this._lastX = (touch || evt).clientX;\n      this._lastY = (touch || evt).clientY;\n      dragEl.style['will-change'] = 'all';\n      dragStartFn = function dragStartFn() {\n        pluginEvent('delayEnded', _this, {\n          evt: evt\n        });\n        if (Sortable.eventCanceled) {\n          _this._onDrop();\n          return;\n        }\n        // Delayed drag has been triggered\n        // we can re-enable the events: touchmove/mousemove\n        _this._disableDelayedDragEvents();\n        if (!FireFox && _this.nativeDraggable) {\n          dragEl.draggable = true;\n        }\n\n        // Bind the events: dragstart/dragend\n        _this._triggerDragStart(evt, touch);\n\n        // Drag start event\n        _dispatchEvent({\n          sortable: _this,\n          name: 'choose',\n          originalEvent: evt\n        });\n\n        // Chosen item\n        toggleClass(dragEl, options.chosenClass, true);\n      };\n\n      // Disable \"draggable\"\n      options.ignore.split(',').forEach(function (criteria) {\n        find(dragEl, criteria.trim(), _disableDraggable);\n      });\n      on(ownerDocument, 'dragover', nearestEmptyInsertDetectEvent);\n      on(ownerDocument, 'mousemove', nearestEmptyInsertDetectEvent);\n      on(ownerDocument, 'touchmove', nearestEmptyInsertDetectEvent);\n      if (options.supportPointer) {\n        on(ownerDocument, 'pointerup', _this._onDrop);\n        // Native D&D triggers pointercancel\n        !this.nativeDraggable && on(ownerDocument, 'pointercancel', _this._onDrop);\n      } else {\n        on(ownerDocument, 'mouseup', _this._onDrop);\n        on(ownerDocument, 'touchend', _this._onDrop);\n        on(ownerDocument, 'touchcancel', _this._onDrop);\n      }\n\n      // Make dragEl draggable (must be before delay for FireFox)\n      if (FireFox && this.nativeDraggable) {\n        this.options.touchStartThreshold = 4;\n        dragEl.draggable = true;\n      }\n      pluginEvent('delayStart', this, {\n        evt: evt\n      });\n\n      // Delay is impossible for native DnD in Edge or IE\n      if (options.delay && (!options.delayOnTouchOnly || touch) && (!this.nativeDraggable || !(Edge || IE11OrLess))) {\n        if (Sortable.eventCanceled) {\n          this._onDrop();\n          return;\n        }\n        // If the user moves the pointer or let go the click or touch\n        // before the delay has been reached:\n        // disable the delayed drag\n        if (options.supportPointer) {\n          on(ownerDocument, 'pointerup', _this._disableDelayedDrag);\n          on(ownerDocument, 'pointercancel', _this._disableDelayedDrag);\n        } else {\n          on(ownerDocument, 'mouseup', _this._disableDelayedDrag);\n          on(ownerDocument, 'touchend', _this._disableDelayedDrag);\n          on(ownerDocument, 'touchcancel', _this._disableDelayedDrag);\n        }\n        on(ownerDocument, 'mousemove', _this._delayedDragTouchMoveHandler);\n        on(ownerDocument, 'touchmove', _this._delayedDragTouchMoveHandler);\n        options.supportPointer && on(ownerDocument, 'pointermove', _this._delayedDragTouchMoveHandler);\n        _this._dragStartTimer = setTimeout(dragStartFn, options.delay);\n      } else {\n        dragStartFn();\n      }\n    }\n  },\n  _delayedDragTouchMoveHandler: function _delayedDragTouchMoveHandler( /** TouchEvent|PointerEvent **/e) {\n    var touch = e.touches ? e.touches[0] : e;\n    if (Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) >= Math.floor(this.options.touchStartThreshold / (this.nativeDraggable && window.devicePixelRatio || 1))) {\n      this._disableDelayedDrag();\n    }\n  },\n  _disableDelayedDrag: function _disableDelayedDrag() {\n    dragEl && _disableDraggable(dragEl);\n    clearTimeout(this._dragStartTimer);\n    this._disableDelayedDragEvents();\n  },\n  _disableDelayedDragEvents: function _disableDelayedDragEvents() {\n    var ownerDocument = this.el.ownerDocument;\n    off(ownerDocument, 'mouseup', this._disableDelayedDrag);\n    off(ownerDocument, 'touchend', this._disableDelayedDrag);\n    off(ownerDocument, 'touchcancel', this._disableDelayedDrag);\n    off(ownerDocument, 'pointerup', this._disableDelayedDrag);\n    off(ownerDocument, 'pointercancel', this._disableDelayedDrag);\n    off(ownerDocument, 'mousemove', this._delayedDragTouchMoveHandler);\n    off(ownerDocument, 'touchmove', this._delayedDragTouchMoveHandler);\n    off(ownerDocument, 'pointermove', this._delayedDragTouchMoveHandler);\n  },\n  _triggerDragStart: function _triggerDragStart( /** Event */evt, /** Touch */touch) {\n    touch = touch || evt.pointerType == 'touch' && evt;\n    if (!this.nativeDraggable || touch) {\n      if (this.options.supportPointer) {\n        on(document, 'pointermove', this._onTouchMove);\n      } else if (touch) {\n        on(document, 'touchmove', this._onTouchMove);\n      } else {\n        on(document, 'mousemove', this._onTouchMove);\n      }\n    } else {\n      on(dragEl, 'dragend', this);\n      on(rootEl, 'dragstart', this._onDragStart);\n    }\n    try {\n      if (document.selection) {\n        _nextTick(function () {\n          document.selection.empty();\n        });\n      } else {\n        window.getSelection().removeAllRanges();\n      }\n    } catch (err) {}\n  },\n  _dragStarted: function _dragStarted(fallback, evt) {\n    awaitingDragStarted = false;\n    if (rootEl && dragEl) {\n      pluginEvent('dragStarted', this, {\n        evt: evt\n      });\n      if (this.nativeDraggable) {\n        on(document, 'dragover', _checkOutsideTargetEl);\n      }\n      var options = this.options;\n\n      // Apply effect\n      !fallback && toggleClass(dragEl, options.dragClass, false);\n      toggleClass(dragEl, options.ghostClass, true);\n      Sortable.active = this;\n      fallback && this._appendGhost();\n\n      // Drag start event\n      _dispatchEvent({\n        sortable: this,\n        name: 'start',\n        originalEvent: evt\n      });\n    } else {\n      this._nulling();\n    }\n  },\n  _emulateDragOver: function _emulateDragOver() {\n    if (touchEvt) {\n      this._lastX = touchEvt.clientX;\n      this._lastY = touchEvt.clientY;\n      _hideGhostForTarget();\n      var target = document.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n      var parent = target;\n      while (target && target.shadowRoot) {\n        target = target.shadowRoot.elementFromPoint(touchEvt.clientX, touchEvt.clientY);\n        if (target === parent) break;\n        parent = target;\n      }\n      dragEl.parentNode[expando]._isOutsideThisEl(target);\n      if (parent) {\n        do {\n          if (parent[expando]) {\n            var inserted = void 0;\n            inserted = parent[expando]._onDragOver({\n              clientX: touchEvt.clientX,\n              clientY: touchEvt.clientY,\n              target: target,\n              rootEl: parent\n            });\n            if (inserted && !this.options.dragoverBubble) {\n              break;\n            }\n          }\n          target = parent; // store last element\n        }\n        /* jshint boss:true */ while (parent = getParentOrHost(parent));\n      }\n      _unhideGhostForTarget();\n    }\n  },\n  _onTouchMove: function _onTouchMove( /**TouchEvent*/evt) {\n    if (tapEvt) {\n      var options = this.options,\n        fallbackTolerance = options.fallbackTolerance,\n        fallbackOffset = options.fallbackOffset,\n        touch = evt.touches ? evt.touches[0] : evt,\n        ghostMatrix = ghostEl && matrix(ghostEl, true),\n        scaleX = ghostEl && ghostMatrix && ghostMatrix.a,\n        scaleY = ghostEl && ghostMatrix && ghostMatrix.d,\n        relativeScrollOffset = PositionGhostAbsolutely && ghostRelativeParent && getRelativeScrollOffset(ghostRelativeParent),\n        dx = (touch.clientX - tapEvt.clientX + fallbackOffset.x) / (scaleX || 1) + (relativeScrollOffset ? relativeScrollOffset[0] - ghostRelativeParentInitialScroll[0] : 0) / (scaleX || 1),\n        dy = (touch.clientY - tapEvt.clientY + fallbackOffset.y) / (scaleY || 1) + (relativeScrollOffset ? relativeScrollOffset[1] - ghostRelativeParentInitialScroll[1] : 0) / (scaleY || 1);\n\n      // only set the status to dragging, when we are actually dragging\n      if (!Sortable.active && !awaitingDragStarted) {\n        if (fallbackTolerance && Math.max(Math.abs(touch.clientX - this._lastX), Math.abs(touch.clientY - this._lastY)) < fallbackTolerance) {\n          return;\n        }\n        this._onDragStart(evt, true);\n      }\n      if (ghostEl) {\n        if (ghostMatrix) {\n          ghostMatrix.e += dx - (lastDx || 0);\n          ghostMatrix.f += dy - (lastDy || 0);\n        } else {\n          ghostMatrix = {\n            a: 1,\n            b: 0,\n            c: 0,\n            d: 1,\n            e: dx,\n            f: dy\n          };\n        }\n        var cssMatrix = \"matrix(\".concat(ghostMatrix.a, \",\").concat(ghostMatrix.b, \",\").concat(ghostMatrix.c, \",\").concat(ghostMatrix.d, \",\").concat(ghostMatrix.e, \",\").concat(ghostMatrix.f, \")\");\n        css(ghostEl, 'webkitTransform', cssMatrix);\n        css(ghostEl, 'mozTransform', cssMatrix);\n        css(ghostEl, 'msTransform', cssMatrix);\n        css(ghostEl, 'transform', cssMatrix);\n        lastDx = dx;\n        lastDy = dy;\n        touchEvt = touch;\n      }\n      evt.cancelable && evt.preventDefault();\n    }\n  },\n  _appendGhost: function _appendGhost() {\n    // Bug if using scale(): https://stackoverflow.com/questions/2637058\n    // Not being adjusted for\n    if (!ghostEl) {\n      var container = this.options.fallbackOnBody ? document.body : rootEl,\n        rect = getRect(dragEl, true, PositionGhostAbsolutely, true, container),\n        options = this.options;\n\n      // Position absolutely\n      if (PositionGhostAbsolutely) {\n        // Get relatively positioned parent\n        ghostRelativeParent = container;\n        while (css(ghostRelativeParent, 'position') === 'static' && css(ghostRelativeParent, 'transform') === 'none' && ghostRelativeParent !== document) {\n          ghostRelativeParent = ghostRelativeParent.parentNode;\n        }\n        if (ghostRelativeParent !== document.body && ghostRelativeParent !== document.documentElement) {\n          if (ghostRelativeParent === document) ghostRelativeParent = getWindowScrollingElement();\n          rect.top += ghostRelativeParent.scrollTop;\n          rect.left += ghostRelativeParent.scrollLeft;\n        } else {\n          ghostRelativeParent = getWindowScrollingElement();\n        }\n        ghostRelativeParentInitialScroll = getRelativeScrollOffset(ghostRelativeParent);\n      }\n      ghostEl = dragEl.cloneNode(true);\n      toggleClass(ghostEl, options.ghostClass, false);\n      toggleClass(ghostEl, options.fallbackClass, true);\n      toggleClass(ghostEl, options.dragClass, true);\n      css(ghostEl, 'transition', '');\n      css(ghostEl, 'transform', '');\n      css(ghostEl, 'box-sizing', 'border-box');\n      css(ghostEl, 'margin', 0);\n      css(ghostEl, 'top', rect.top);\n      css(ghostEl, 'left', rect.left);\n      css(ghostEl, 'width', rect.width);\n      css(ghostEl, 'height', rect.height);\n      css(ghostEl, 'opacity', '0.8');\n      css(ghostEl, 'position', PositionGhostAbsolutely ? 'absolute' : 'fixed');\n      css(ghostEl, 'zIndex', '100000');\n      css(ghostEl, 'pointerEvents', 'none');\n      Sortable.ghost = ghostEl;\n      container.appendChild(ghostEl);\n\n      // Set transform-origin\n      css(ghostEl, 'transform-origin', tapDistanceLeft / parseInt(ghostEl.style.width) * 100 + '% ' + tapDistanceTop / parseInt(ghostEl.style.height) * 100 + '%');\n    }\n  },\n  _onDragStart: function _onDragStart( /**Event*/evt, /**boolean*/fallback) {\n    var _this = this;\n    var dataTransfer = evt.dataTransfer;\n    var options = _this.options;\n    pluginEvent('dragStart', this, {\n      evt: evt\n    });\n    if (Sortable.eventCanceled) {\n      this._onDrop();\n      return;\n    }\n    pluginEvent('setupClone', this);\n    if (!Sortable.eventCanceled) {\n      cloneEl = clone(dragEl);\n      cloneEl.removeAttribute(\"id\");\n      cloneEl.draggable = false;\n      cloneEl.style['will-change'] = '';\n      this._hideClone();\n      toggleClass(cloneEl, this.options.chosenClass, false);\n      Sortable.clone = cloneEl;\n    }\n\n    // #1143: IFrame support workaround\n    _this.cloneId = _nextTick(function () {\n      pluginEvent('clone', _this);\n      if (Sortable.eventCanceled) return;\n      if (!_this.options.removeCloneOnHide) {\n        rootEl.insertBefore(cloneEl, dragEl);\n      }\n      _this._hideClone();\n      _dispatchEvent({\n        sortable: _this,\n        name: 'clone'\n      });\n    });\n    !fallback && toggleClass(dragEl, options.dragClass, true);\n\n    // Set proper drop events\n    if (fallback) {\n      ignoreNextClick = true;\n      _this._loopId = setInterval(_this._emulateDragOver, 50);\n    } else {\n      // Undo what was set in _prepareDragStart before drag started\n      off(document, 'mouseup', _this._onDrop);\n      off(document, 'touchend', _this._onDrop);\n      off(document, 'touchcancel', _this._onDrop);\n      if (dataTransfer) {\n        dataTransfer.effectAllowed = 'move';\n        options.setData && options.setData.call(_this, dataTransfer, dragEl);\n      }\n      on(document, 'drop', _this);\n\n      // #1276 fix:\n      css(dragEl, 'transform', 'translateZ(0)');\n    }\n    awaitingDragStarted = true;\n    _this._dragStartId = _nextTick(_this._dragStarted.bind(_this, fallback, evt));\n    on(document, 'selectstart', _this);\n    moved = true;\n    window.getSelection().removeAllRanges();\n    if (Safari) {\n      css(document.body, 'user-select', 'none');\n    }\n  },\n  // Returns true - if no further action is needed (either inserted or another condition)\n  _onDragOver: function _onDragOver( /**Event*/evt) {\n    var el = this.el,\n      target = evt.target,\n      dragRect,\n      targetRect,\n      revert,\n      options = this.options,\n      group = options.group,\n      activeSortable = Sortable.active,\n      isOwner = activeGroup === group,\n      canSort = options.sort,\n      fromSortable = putSortable || activeSortable,\n      vertical,\n      _this = this,\n      completedFired = false;\n    if (_silent) return;\n    function dragOverEvent(name, extra) {\n      pluginEvent(name, _this, _objectSpread2({\n        evt: evt,\n        isOwner: isOwner,\n        axis: vertical ? 'vertical' : 'horizontal',\n        revert: revert,\n        dragRect: dragRect,\n        targetRect: targetRect,\n        canSort: canSort,\n        fromSortable: fromSortable,\n        target: target,\n        completed: completed,\n        onMove: function onMove(target, after) {\n          return _onMove(rootEl, el, dragEl, dragRect, target, getRect(target), evt, after);\n        },\n        changed: changed\n      }, extra));\n    }\n\n    // Capture animation state\n    function capture() {\n      dragOverEvent('dragOverAnimationCapture');\n      _this.captureAnimationState();\n      if (_this !== fromSortable) {\n        fromSortable.captureAnimationState();\n      }\n    }\n\n    // Return invocation when dragEl is inserted (or completed)\n    function completed(insertion) {\n      dragOverEvent('dragOverCompleted', {\n        insertion: insertion\n      });\n      if (insertion) {\n        // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n        if (isOwner) {\n          activeSortable._hideClone();\n        } else {\n          activeSortable._showClone(_this);\n        }\n        if (_this !== fromSortable) {\n          // Set ghost class to new sortable's ghost class\n          toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : activeSortable.options.ghostClass, false);\n          toggleClass(dragEl, options.ghostClass, true);\n        }\n        if (putSortable !== _this && _this !== Sortable.active) {\n          putSortable = _this;\n        } else if (_this === Sortable.active && putSortable) {\n          putSortable = null;\n        }\n\n        // Animation\n        if (fromSortable === _this) {\n          _this._ignoreWhileAnimating = target;\n        }\n        _this.animateAll(function () {\n          dragOverEvent('dragOverAnimationComplete');\n          _this._ignoreWhileAnimating = null;\n        });\n        if (_this !== fromSortable) {\n          fromSortable.animateAll();\n          fromSortable._ignoreWhileAnimating = null;\n        }\n      }\n\n      // Null lastTarget if it is not inside a previously swapped element\n      if (target === dragEl && !dragEl.animated || target === el && !target.animated) {\n        lastTarget = null;\n      }\n\n      // no bubbling and not fallback\n      if (!options.dragoverBubble && !evt.rootEl && target !== document) {\n        dragEl.parentNode[expando]._isOutsideThisEl(evt.target);\n\n        // Do not detect for empty insert if already inserted\n        !insertion && nearestEmptyInsertDetectEvent(evt);\n      }\n      !options.dragoverBubble && evt.stopPropagation && evt.stopPropagation();\n      return completedFired = true;\n    }\n\n    // Call when dragEl has been inserted\n    function changed() {\n      newIndex = index(dragEl);\n      newDraggableIndex = index(dragEl, options.draggable);\n      _dispatchEvent({\n        sortable: _this,\n        name: 'change',\n        toEl: el,\n        newIndex: newIndex,\n        newDraggableIndex: newDraggableIndex,\n        originalEvent: evt\n      });\n    }\n    if (evt.preventDefault !== void 0) {\n      evt.cancelable && evt.preventDefault();\n    }\n    target = closest(target, options.draggable, el, true);\n    dragOverEvent('dragOver');\n    if (Sortable.eventCanceled) return completedFired;\n    if (dragEl.contains(evt.target) || target.animated && target.animatingX && target.animatingY || _this._ignoreWhileAnimating === target) {\n      return completed(false);\n    }\n    ignoreNextClick = false;\n    if (activeSortable && !options.disabled && (isOwner ? canSort || (revert = parentEl !== rootEl) // Reverting item into the original list\n    : putSortable === this || (this.lastPutMode = activeGroup.checkPull(this, activeSortable, dragEl, evt)) && group.checkPut(this, activeSortable, dragEl, evt))) {\n      vertical = this._getDirection(evt, target) === 'vertical';\n      dragRect = getRect(dragEl);\n      dragOverEvent('dragOverValid');\n      if (Sortable.eventCanceled) return completedFired;\n      if (revert) {\n        parentEl = rootEl; // actualization\n        capture();\n        this._hideClone();\n        dragOverEvent('revert');\n        if (!Sortable.eventCanceled) {\n          if (nextEl) {\n            rootEl.insertBefore(dragEl, nextEl);\n          } else {\n            rootEl.appendChild(dragEl);\n          }\n        }\n        return completed(true);\n      }\n      var elLastChild = lastChild(el, options.draggable);\n      if (!elLastChild || _ghostIsLast(evt, vertical, this) && !elLastChild.animated) {\n        // Insert to end of list\n\n        // If already at end of list: Do not insert\n        if (elLastChild === dragEl) {\n          return completed(false);\n        }\n\n        // if there is a last element, it is the target\n        if (elLastChild && el === evt.target) {\n          target = elLastChild;\n        }\n        if (target) {\n          targetRect = getRect(target);\n        }\n        if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, !!target) !== false) {\n          capture();\n          if (elLastChild && elLastChild.nextSibling) {\n            // the last draggable element is not the last node\n            el.insertBefore(dragEl, elLastChild.nextSibling);\n          } else {\n            el.appendChild(dragEl);\n          }\n          parentEl = el; // actualization\n\n          changed();\n          return completed(true);\n        }\n      } else if (elLastChild && _ghostIsFirst(evt, vertical, this)) {\n        // Insert to start of list\n        var firstChild = getChild(el, 0, options, true);\n        if (firstChild === dragEl) {\n          return completed(false);\n        }\n        target = firstChild;\n        targetRect = getRect(target);\n        if (_onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, false) !== false) {\n          capture();\n          el.insertBefore(dragEl, firstChild);\n          parentEl = el; // actualization\n\n          changed();\n          return completed(true);\n        }\n      } else if (target.parentNode === el) {\n        targetRect = getRect(target);\n        var direction = 0,\n          targetBeforeFirstSwap,\n          differentLevel = dragEl.parentNode !== el,\n          differentRowCol = !_dragElInRowColumn(dragEl.animated && dragEl.toRect || dragRect, target.animated && target.toRect || targetRect, vertical),\n          side1 = vertical ? 'top' : 'left',\n          scrolledPastTop = isScrolledPast(target, 'top', 'top') || isScrolledPast(dragEl, 'top', 'top'),\n          scrollBefore = scrolledPastTop ? scrolledPastTop.scrollTop : void 0;\n        if (lastTarget !== target) {\n          targetBeforeFirstSwap = targetRect[side1];\n          pastFirstInvertThresh = false;\n          isCircumstantialInvert = !differentRowCol && options.invertSwap || differentLevel;\n        }\n        direction = _getSwapDirection(evt, target, targetRect, vertical, differentRowCol ? 1 : options.swapThreshold, options.invertedSwapThreshold == null ? options.swapThreshold : options.invertedSwapThreshold, isCircumstantialInvert, lastTarget === target);\n        var sibling;\n        if (direction !== 0) {\n          // Check if target is beside dragEl in respective direction (ignoring hidden elements)\n          var dragIndex = index(dragEl);\n          do {\n            dragIndex -= direction;\n            sibling = parentEl.children[dragIndex];\n          } while (sibling && (css(sibling, 'display') === 'none' || sibling === ghostEl));\n        }\n        // If dragEl is already beside target: Do not insert\n        if (direction === 0 || sibling === target) {\n          return completed(false);\n        }\n        lastTarget = target;\n        lastDirection = direction;\n        var nextSibling = target.nextElementSibling,\n          after = false;\n        after = direction === 1;\n        var moveVector = _onMove(rootEl, el, dragEl, dragRect, target, targetRect, evt, after);\n        if (moveVector !== false) {\n          if (moveVector === 1 || moveVector === -1) {\n            after = moveVector === 1;\n          }\n          _silent = true;\n          setTimeout(_unsilent, 30);\n          capture();\n          if (after && !nextSibling) {\n            el.appendChild(dragEl);\n          } else {\n            target.parentNode.insertBefore(dragEl, after ? nextSibling : target);\n          }\n\n          // Undo chrome's scroll adjustment (has no effect on other browsers)\n          if (scrolledPastTop) {\n            scrollBy(scrolledPastTop, 0, scrollBefore - scrolledPastTop.scrollTop);\n          }\n          parentEl = dragEl.parentNode; // actualization\n\n          // must be done before animation\n          if (targetBeforeFirstSwap !== undefined && !isCircumstantialInvert) {\n            targetMoveDistance = Math.abs(targetBeforeFirstSwap - getRect(target)[side1]);\n          }\n          changed();\n          return completed(true);\n        }\n      }\n      if (el.contains(dragEl)) {\n        return completed(false);\n      }\n    }\n    return false;\n  },\n  _ignoreWhileAnimating: null,\n  _offMoveEvents: function _offMoveEvents() {\n    off(document, 'mousemove', this._onTouchMove);\n    off(document, 'touchmove', this._onTouchMove);\n    off(document, 'pointermove', this._onTouchMove);\n    off(document, 'dragover', nearestEmptyInsertDetectEvent);\n    off(document, 'mousemove', nearestEmptyInsertDetectEvent);\n    off(document, 'touchmove', nearestEmptyInsertDetectEvent);\n  },\n  _offUpEvents: function _offUpEvents() {\n    var ownerDocument = this.el.ownerDocument;\n    off(ownerDocument, 'mouseup', this._onDrop);\n    off(ownerDocument, 'touchend', this._onDrop);\n    off(ownerDocument, 'pointerup', this._onDrop);\n    off(ownerDocument, 'pointercancel', this._onDrop);\n    off(ownerDocument, 'touchcancel', this._onDrop);\n    off(document, 'selectstart', this);\n  },\n  _onDrop: function _onDrop( /**Event*/evt) {\n    var el = this.el,\n      options = this.options;\n\n    // Get the index of the dragged element within its parent\n    newIndex = index(dragEl);\n    newDraggableIndex = index(dragEl, options.draggable);\n    pluginEvent('drop', this, {\n      evt: evt\n    });\n    parentEl = dragEl && dragEl.parentNode;\n\n    // Get again after plugin event\n    newIndex = index(dragEl);\n    newDraggableIndex = index(dragEl, options.draggable);\n    if (Sortable.eventCanceled) {\n      this._nulling();\n      return;\n    }\n    awaitingDragStarted = false;\n    isCircumstantialInvert = false;\n    pastFirstInvertThresh = false;\n    clearInterval(this._loopId);\n    clearTimeout(this._dragStartTimer);\n    _cancelNextTick(this.cloneId);\n    _cancelNextTick(this._dragStartId);\n\n    // Unbind events\n    if (this.nativeDraggable) {\n      off(document, 'drop', this);\n      off(el, 'dragstart', this._onDragStart);\n    }\n    this._offMoveEvents();\n    this._offUpEvents();\n    if (Safari) {\n      css(document.body, 'user-select', '');\n    }\n    css(dragEl, 'transform', '');\n    if (evt) {\n      if (moved) {\n        evt.cancelable && evt.preventDefault();\n        !options.dropBubble && evt.stopPropagation();\n      }\n      ghostEl && ghostEl.parentNode && ghostEl.parentNode.removeChild(ghostEl);\n      if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n        // Remove clone(s)\n        cloneEl && cloneEl.parentNode && cloneEl.parentNode.removeChild(cloneEl);\n      }\n      if (dragEl) {\n        if (this.nativeDraggable) {\n          off(dragEl, 'dragend', this);\n        }\n        _disableDraggable(dragEl);\n        dragEl.style['will-change'] = '';\n\n        // Remove classes\n        // ghostClass is added in dragStarted\n        if (moved && !awaitingDragStarted) {\n          toggleClass(dragEl, putSortable ? putSortable.options.ghostClass : this.options.ghostClass, false);\n        }\n        toggleClass(dragEl, this.options.chosenClass, false);\n\n        // Drag stop event\n        _dispatchEvent({\n          sortable: this,\n          name: 'unchoose',\n          toEl: parentEl,\n          newIndex: null,\n          newDraggableIndex: null,\n          originalEvent: evt\n        });\n        if (rootEl !== parentEl) {\n          if (newIndex >= 0) {\n            // Add event\n            _dispatchEvent({\n              rootEl: parentEl,\n              name: 'add',\n              toEl: parentEl,\n              fromEl: rootEl,\n              originalEvent: evt\n            });\n\n            // Remove event\n            _dispatchEvent({\n              sortable: this,\n              name: 'remove',\n              toEl: parentEl,\n              originalEvent: evt\n            });\n\n            // drag from one list and drop into another\n            _dispatchEvent({\n              rootEl: parentEl,\n              name: 'sort',\n              toEl: parentEl,\n              fromEl: rootEl,\n              originalEvent: evt\n            });\n            _dispatchEvent({\n              sortable: this,\n              name: 'sort',\n              toEl: parentEl,\n              originalEvent: evt\n            });\n          }\n          putSortable && putSortable.save();\n        } else {\n          if (newIndex !== oldIndex) {\n            if (newIndex >= 0) {\n              // drag & drop within the same list\n              _dispatchEvent({\n                sortable: this,\n                name: 'update',\n                toEl: parentEl,\n                originalEvent: evt\n              });\n              _dispatchEvent({\n                sortable: this,\n                name: 'sort',\n                toEl: parentEl,\n                originalEvent: evt\n              });\n            }\n          }\n        }\n        if (Sortable.active) {\n          /* jshint eqnull:true */\n          if (newIndex == null || newIndex === -1) {\n            newIndex = oldIndex;\n            newDraggableIndex = oldDraggableIndex;\n          }\n          _dispatchEvent({\n            sortable: this,\n            name: 'end',\n            toEl: parentEl,\n            originalEvent: evt\n          });\n\n          // Save sorting\n          this.save();\n        }\n      }\n    }\n    this._nulling();\n  },\n  _nulling: function _nulling() {\n    pluginEvent('nulling', this);\n    rootEl = dragEl = parentEl = ghostEl = nextEl = cloneEl = lastDownEl = cloneHidden = tapEvt = touchEvt = moved = newIndex = newDraggableIndex = oldIndex = oldDraggableIndex = lastTarget = lastDirection = putSortable = activeGroup = Sortable.dragged = Sortable.ghost = Sortable.clone = Sortable.active = null;\n    var el = this.el;\n    savedInputChecked.forEach(function (checkEl) {\n      if (el.contains(checkEl)) {\n        checkEl.checked = true;\n      }\n    });\n    savedInputChecked.length = lastDx = lastDy = 0;\n  },\n  handleEvent: function handleEvent( /**Event*/evt) {\n    switch (evt.type) {\n      case 'drop':\n      case 'dragend':\n        this._onDrop(evt);\n        break;\n      case 'dragenter':\n      case 'dragover':\n        if (dragEl) {\n          this._onDragOver(evt);\n          _globalDragOver(evt);\n        }\n        break;\n      case 'selectstart':\n        evt.preventDefault();\n        break;\n    }\n  },\n  /**\r\n   * Serializes the item into an array of string.\r\n   * @returns {String[]}\r\n   */\n  toArray: function toArray() {\n    var order = [],\n      el,\n      children = this.el.children,\n      i = 0,\n      n = children.length,\n      options = this.options;\n    for (; i < n; i++) {\n      el = children[i];\n      if (closest(el, options.draggable, this.el, false)) {\n        order.push(el.getAttribute(options.dataIdAttr) || _generateId(el));\n      }\n    }\n    return order;\n  },\n  /**\r\n   * Sorts the elements according to the array.\r\n   * @param  {String[]}  order  order of the items\r\n   */\n  sort: function sort(order, useAnimation) {\n    var items = {},\n      rootEl = this.el;\n    this.toArray().forEach(function (id, i) {\n      var el = rootEl.children[i];\n      if (closest(el, this.options.draggable, rootEl, false)) {\n        items[id] = el;\n      }\n    }, this);\n    useAnimation && this.captureAnimationState();\n    order.forEach(function (id) {\n      if (items[id]) {\n        rootEl.removeChild(items[id]);\n        rootEl.appendChild(items[id]);\n      }\n    });\n    useAnimation && this.animateAll();\n  },\n  /**\r\n   * Save the current sorting\r\n   */\n  save: function save() {\n    var store = this.options.store;\n    store && store.set && store.set(this);\n  },\n  /**\r\n   * For each element in the set, get the first element that matches the selector by testing the element itself and traversing up through its ancestors in the DOM tree.\r\n   * @param   {HTMLElement}  el\r\n   * @param   {String}       [selector]  default: `options.draggable`\r\n   * @returns {HTMLElement|null}\r\n   */\n  closest: function closest$1(el, selector) {\n    return closest(el, selector || this.options.draggable, this.el, false);\n  },\n  /**\r\n   * Set/get option\r\n   * @param   {string} name\r\n   * @param   {*}      [value]\r\n   * @returns {*}\r\n   */\n  option: function option(name, value) {\n    var options = this.options;\n    if (value === void 0) {\n      return options[name];\n    } else {\n      var modifiedValue = PluginManager.modifyOption(this, name, value);\n      if (typeof modifiedValue !== 'undefined') {\n        options[name] = modifiedValue;\n      } else {\n        options[name] = value;\n      }\n      if (name === 'group') {\n        _prepareGroup(options);\n      }\n    }\n  },\n  /**\r\n   * Destroy\r\n   */\n  destroy: function destroy() {\n    pluginEvent('destroy', this);\n    var el = this.el;\n    el[expando] = null;\n    off(el, 'mousedown', this._onTapStart);\n    off(el, 'touchstart', this._onTapStart);\n    off(el, 'pointerdown', this._onTapStart);\n    if (this.nativeDraggable) {\n      off(el, 'dragover', this);\n      off(el, 'dragenter', this);\n    }\n    // Remove draggable attributes\n    Array.prototype.forEach.call(el.querySelectorAll('[draggable]'), function (el) {\n      el.removeAttribute('draggable');\n    });\n    this._onDrop();\n    this._disableDelayedDragEvents();\n    sortables.splice(sortables.indexOf(this.el), 1);\n    this.el = el = null;\n  },\n  _hideClone: function _hideClone() {\n    if (!cloneHidden) {\n      pluginEvent('hideClone', this);\n      if (Sortable.eventCanceled) return;\n      css(cloneEl, 'display', 'none');\n      if (this.options.removeCloneOnHide && cloneEl.parentNode) {\n        cloneEl.parentNode.removeChild(cloneEl);\n      }\n      cloneHidden = true;\n    }\n  },\n  _showClone: function _showClone(putSortable) {\n    if (putSortable.lastPutMode !== 'clone') {\n      this._hideClone();\n      return;\n    }\n    if (cloneHidden) {\n      pluginEvent('showClone', this);\n      if (Sortable.eventCanceled) return;\n\n      // show clone at dragEl or original position\n      if (dragEl.parentNode == rootEl && !this.options.group.revertClone) {\n        rootEl.insertBefore(cloneEl, dragEl);\n      } else if (nextEl) {\n        rootEl.insertBefore(cloneEl, nextEl);\n      } else {\n        rootEl.appendChild(cloneEl);\n      }\n      if (this.options.group.revertClone) {\n        this.animate(dragEl, cloneEl);\n      }\n      css(cloneEl, 'display', '');\n      cloneHidden = false;\n    }\n  }\n};\nfunction _globalDragOver( /**Event*/evt) {\n  if (evt.dataTransfer) {\n    evt.dataTransfer.dropEffect = 'move';\n  }\n  evt.cancelable && evt.preventDefault();\n}\nfunction _onMove(fromEl, toEl, dragEl, dragRect, targetEl, targetRect, originalEvent, willInsertAfter) {\n  var evt,\n    sortable = fromEl[expando],\n    onMoveFn = sortable.options.onMove,\n    retVal;\n  // Support for new CustomEvent feature\n  if (window.CustomEvent && !IE11OrLess && !Edge) {\n    evt = new CustomEvent('move', {\n      bubbles: true,\n      cancelable: true\n    });\n  } else {\n    evt = document.createEvent('Event');\n    evt.initEvent('move', true, true);\n  }\n  evt.to = toEl;\n  evt.from = fromEl;\n  evt.dragged = dragEl;\n  evt.draggedRect = dragRect;\n  evt.related = targetEl || toEl;\n  evt.relatedRect = targetRect || getRect(toEl);\n  evt.willInsertAfter = willInsertAfter;\n  evt.originalEvent = originalEvent;\n  fromEl.dispatchEvent(evt);\n  if (onMoveFn) {\n    retVal = onMoveFn.call(sortable, evt, originalEvent);\n  }\n  return retVal;\n}\nfunction _disableDraggable(el) {\n  el.draggable = false;\n}\nfunction _unsilent() {\n  _silent = false;\n}\nfunction _ghostIsFirst(evt, vertical, sortable) {\n  var firstElRect = getRect(getChild(sortable.el, 0, sortable.options, true));\n  var childContainingRect = getChildContainingRectFromElement(sortable.el, sortable.options, ghostEl);\n  var spacer = 10;\n  return vertical ? evt.clientX < childContainingRect.left - spacer || evt.clientY < firstElRect.top && evt.clientX < firstElRect.right : evt.clientY < childContainingRect.top - spacer || evt.clientY < firstElRect.bottom && evt.clientX < firstElRect.left;\n}\nfunction _ghostIsLast(evt, vertical, sortable) {\n  var lastElRect = getRect(lastChild(sortable.el, sortable.options.draggable));\n  var childContainingRect = getChildContainingRectFromElement(sortable.el, sortable.options, ghostEl);\n  var spacer = 10;\n  return vertical ? evt.clientX > childContainingRect.right + spacer || evt.clientY > lastElRect.bottom && evt.clientX > lastElRect.left : evt.clientY > childContainingRect.bottom + spacer || evt.clientX > lastElRect.right && evt.clientY > lastElRect.top;\n}\nfunction _getSwapDirection(evt, target, targetRect, vertical, swapThreshold, invertedSwapThreshold, invertSwap, isLastTarget) {\n  var mouseOnAxis = vertical ? evt.clientY : evt.clientX,\n    targetLength = vertical ? targetRect.height : targetRect.width,\n    targetS1 = vertical ? targetRect.top : targetRect.left,\n    targetS2 = vertical ? targetRect.bottom : targetRect.right,\n    invert = false;\n  if (!invertSwap) {\n    // Never invert or create dragEl shadow when target movemenet causes mouse to move past the end of regular swapThreshold\n    if (isLastTarget && targetMoveDistance < targetLength * swapThreshold) {\n      // multiplied only by swapThreshold because mouse will already be inside target by (1 - threshold) * targetLength / 2\n      // check if past first invert threshold on side opposite of lastDirection\n      if (!pastFirstInvertThresh && (lastDirection === 1 ? mouseOnAxis > targetS1 + targetLength * invertedSwapThreshold / 2 : mouseOnAxis < targetS2 - targetLength * invertedSwapThreshold / 2)) {\n        // past first invert threshold, do not restrict inverted threshold to dragEl shadow\n        pastFirstInvertThresh = true;\n      }\n      if (!pastFirstInvertThresh) {\n        // dragEl shadow (target move distance shadow)\n        if (lastDirection === 1 ? mouseOnAxis < targetS1 + targetMoveDistance // over dragEl shadow\n        : mouseOnAxis > targetS2 - targetMoveDistance) {\n          return -lastDirection;\n        }\n      } else {\n        invert = true;\n      }\n    } else {\n      // Regular\n      if (mouseOnAxis > targetS1 + targetLength * (1 - swapThreshold) / 2 && mouseOnAxis < targetS2 - targetLength * (1 - swapThreshold) / 2) {\n        return _getInsertDirection(target);\n      }\n    }\n  }\n  invert = invert || invertSwap;\n  if (invert) {\n    // Invert of regular\n    if (mouseOnAxis < targetS1 + targetLength * invertedSwapThreshold / 2 || mouseOnAxis > targetS2 - targetLength * invertedSwapThreshold / 2) {\n      return mouseOnAxis > targetS1 + targetLength / 2 ? 1 : -1;\n    }\n  }\n  return 0;\n}\n\n/**\r\n * Gets the direction dragEl must be swapped relative to target in order to make it\r\n * seem that dragEl has been \"inserted\" into that element's position\r\n * @param  {HTMLElement} target       The target whose position dragEl is being inserted at\r\n * @return {Number}                   Direction dragEl must be swapped\r\n */\nfunction _getInsertDirection(target) {\n  if (index(dragEl) < index(target)) {\n    return 1;\n  } else {\n    return -1;\n  }\n}\n\n/**\r\n * Generate id\r\n * @param   {HTMLElement} el\r\n * @returns {String}\r\n * @private\r\n */\nfunction _generateId(el) {\n  var str = el.tagName + el.className + el.src + el.href + el.textContent,\n    i = str.length,\n    sum = 0;\n  while (i--) {\n    sum += str.charCodeAt(i);\n  }\n  return sum.toString(36);\n}\nfunction _saveInputCheckedState(root) {\n  savedInputChecked.length = 0;\n  var inputs = root.getElementsByTagName('input');\n  var idx = inputs.length;\n  while (idx--) {\n    var el = inputs[idx];\n    el.checked && savedInputChecked.push(el);\n  }\n}\nfunction _nextTick(fn) {\n  return setTimeout(fn, 0);\n}\nfunction _cancelNextTick(id) {\n  return clearTimeout(id);\n}\n\n// Fixed #973:\nif (documentExists) {\n  on(document, 'touchmove', function (evt) {\n    if ((Sortable.active || awaitingDragStarted) && evt.cancelable) {\n      evt.preventDefault();\n    }\n  });\n}\n\n// Export utils\nSortable.utils = {\n  on: on,\n  off: off,\n  css: css,\n  find: find,\n  is: function is(el, selector) {\n    return !!closest(el, selector, el, false);\n  },\n  extend: extend,\n  throttle: throttle,\n  closest: closest,\n  toggleClass: toggleClass,\n  clone: clone,\n  index: index,\n  nextTick: _nextTick,\n  cancelNextTick: _cancelNextTick,\n  detectDirection: _detectDirection,\n  getChild: getChild,\n  expando: expando\n};\n\n/**\r\n * Get the Sortable instance of an element\r\n * @param  {HTMLElement} element The element\r\n * @return {Sortable|undefined}         The instance of Sortable\r\n */\nSortable.get = function (element) {\n  return element[expando];\n};\n\n/**\r\n * Mount a plugin to Sortable\r\n * @param  {...SortablePlugin|SortablePlugin[]} plugins       Plugins being mounted\r\n */\nSortable.mount = function () {\n  for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n    plugins[_key] = arguments[_key];\n  }\n  if (plugins[0].constructor === Array) plugins = plugins[0];\n  plugins.forEach(function (plugin) {\n    if (!plugin.prototype || !plugin.prototype.constructor) {\n      throw \"Sortable: Mounted plugin must be a constructor function, not \".concat({}.toString.call(plugin));\n    }\n    if (plugin.utils) Sortable.utils = _objectSpread2(_objectSpread2({}, Sortable.utils), plugin.utils);\n    PluginManager.mount(plugin);\n  });\n};\n\n/**\r\n * Create sortable instance\r\n * @param {HTMLElement}  el\r\n * @param {Object}      [options]\r\n */\nSortable.create = function (el, options) {\n  return new Sortable(el, options);\n};\n\n// Export\nSortable.version = version;\n\nvar autoScrolls = [],\n  scrollEl,\n  scrollRootEl,\n  scrolling = false,\n  lastAutoScrollX,\n  lastAutoScrollY,\n  touchEvt$1,\n  pointerElemChangedInterval;\nfunction AutoScrollPlugin() {\n  function AutoScroll() {\n    this.defaults = {\n      scroll: true,\n      forceAutoScrollFallback: false,\n      scrollSensitivity: 30,\n      scrollSpeed: 10,\n      bubbleScroll: true\n    };\n\n    // Bind all private methods\n    for (var fn in this) {\n      if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n        this[fn] = this[fn].bind(this);\n      }\n    }\n  }\n  AutoScroll.prototype = {\n    dragStarted: function dragStarted(_ref) {\n      var originalEvent = _ref.originalEvent;\n      if (this.sortable.nativeDraggable) {\n        on(document, 'dragover', this._handleAutoScroll);\n      } else {\n        if (this.options.supportPointer) {\n          on(document, 'pointermove', this._handleFallbackAutoScroll);\n        } else if (originalEvent.touches) {\n          on(document, 'touchmove', this._handleFallbackAutoScroll);\n        } else {\n          on(document, 'mousemove', this._handleFallbackAutoScroll);\n        }\n      }\n    },\n    dragOverCompleted: function dragOverCompleted(_ref2) {\n      var originalEvent = _ref2.originalEvent;\n      // For when bubbling is canceled and using fallback (fallback 'touchmove' always reached)\n      if (!this.options.dragOverBubble && !originalEvent.rootEl) {\n        this._handleAutoScroll(originalEvent);\n      }\n    },\n    drop: function drop() {\n      if (this.sortable.nativeDraggable) {\n        off(document, 'dragover', this._handleAutoScroll);\n      } else {\n        off(document, 'pointermove', this._handleFallbackAutoScroll);\n        off(document, 'touchmove', this._handleFallbackAutoScroll);\n        off(document, 'mousemove', this._handleFallbackAutoScroll);\n      }\n      clearPointerElemChangedInterval();\n      clearAutoScrolls();\n      cancelThrottle();\n    },\n    nulling: function nulling() {\n      touchEvt$1 = scrollRootEl = scrollEl = scrolling = pointerElemChangedInterval = lastAutoScrollX = lastAutoScrollY = null;\n      autoScrolls.length = 0;\n    },\n    _handleFallbackAutoScroll: function _handleFallbackAutoScroll(evt) {\n      this._handleAutoScroll(evt, true);\n    },\n    _handleAutoScroll: function _handleAutoScroll(evt, fallback) {\n      var _this = this;\n      var x = (evt.touches ? evt.touches[0] : evt).clientX,\n        y = (evt.touches ? evt.touches[0] : evt).clientY,\n        elem = document.elementFromPoint(x, y);\n      touchEvt$1 = evt;\n\n      // IE does not seem to have native autoscroll,\n      // Edge's autoscroll seems too conditional,\n      // MACOS Safari does not have autoscroll,\n      // Firefox and Chrome are good\n      if (fallback || this.options.forceAutoScrollFallback || Edge || IE11OrLess || Safari) {\n        autoScroll(evt, this.options, elem, fallback);\n\n        // Listener for pointer element change\n        var ogElemScroller = getParentAutoScrollElement(elem, true);\n        if (scrolling && (!pointerElemChangedInterval || x !== lastAutoScrollX || y !== lastAutoScrollY)) {\n          pointerElemChangedInterval && clearPointerElemChangedInterval();\n          // Detect for pointer elem change, emulating native DnD behaviour\n          pointerElemChangedInterval = setInterval(function () {\n            var newElem = getParentAutoScrollElement(document.elementFromPoint(x, y), true);\n            if (newElem !== ogElemScroller) {\n              ogElemScroller = newElem;\n              clearAutoScrolls();\n            }\n            autoScroll(evt, _this.options, newElem, fallback);\n          }, 10);\n          lastAutoScrollX = x;\n          lastAutoScrollY = y;\n        }\n      } else {\n        // if DnD is enabled (and browser has good autoscrolling), first autoscroll will already scroll, so get parent autoscroll of first autoscroll\n        if (!this.options.bubbleScroll || getParentAutoScrollElement(elem, true) === getWindowScrollingElement()) {\n          clearAutoScrolls();\n          return;\n        }\n        autoScroll(evt, this.options, getParentAutoScrollElement(elem, false), false);\n      }\n    }\n  };\n  return _extends(AutoScroll, {\n    pluginName: 'scroll',\n    initializeByDefault: true\n  });\n}\nfunction clearAutoScrolls() {\n  autoScrolls.forEach(function (autoScroll) {\n    clearInterval(autoScroll.pid);\n  });\n  autoScrolls = [];\n}\nfunction clearPointerElemChangedInterval() {\n  clearInterval(pointerElemChangedInterval);\n}\nvar autoScroll = throttle(function (evt, options, rootEl, isFallback) {\n  // Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=505521\n  if (!options.scroll) return;\n  var x = (evt.touches ? evt.touches[0] : evt).clientX,\n    y = (evt.touches ? evt.touches[0] : evt).clientY,\n    sens = options.scrollSensitivity,\n    speed = options.scrollSpeed,\n    winScroller = getWindowScrollingElement();\n  var scrollThisInstance = false,\n    scrollCustomFn;\n\n  // New scroll root, set scrollEl\n  if (scrollRootEl !== rootEl) {\n    scrollRootEl = rootEl;\n    clearAutoScrolls();\n    scrollEl = options.scroll;\n    scrollCustomFn = options.scrollFn;\n    if (scrollEl === true) {\n      scrollEl = getParentAutoScrollElement(rootEl, true);\n    }\n  }\n  var layersOut = 0;\n  var currentParent = scrollEl;\n  do {\n    var el = currentParent,\n      rect = getRect(el),\n      top = rect.top,\n      bottom = rect.bottom,\n      left = rect.left,\n      right = rect.right,\n      width = rect.width,\n      height = rect.height,\n      canScrollX = void 0,\n      canScrollY = void 0,\n      scrollWidth = el.scrollWidth,\n      scrollHeight = el.scrollHeight,\n      elCSS = css(el),\n      scrollPosX = el.scrollLeft,\n      scrollPosY = el.scrollTop;\n    if (el === winScroller) {\n      canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll' || elCSS.overflowX === 'visible');\n      canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll' || elCSS.overflowY === 'visible');\n    } else {\n      canScrollX = width < scrollWidth && (elCSS.overflowX === 'auto' || elCSS.overflowX === 'scroll');\n      canScrollY = height < scrollHeight && (elCSS.overflowY === 'auto' || elCSS.overflowY === 'scroll');\n    }\n    var vx = canScrollX && (Math.abs(right - x) <= sens && scrollPosX + width < scrollWidth) - (Math.abs(left - x) <= sens && !!scrollPosX);\n    var vy = canScrollY && (Math.abs(bottom - y) <= sens && scrollPosY + height < scrollHeight) - (Math.abs(top - y) <= sens && !!scrollPosY);\n    if (!autoScrolls[layersOut]) {\n      for (var i = 0; i <= layersOut; i++) {\n        if (!autoScrolls[i]) {\n          autoScrolls[i] = {};\n        }\n      }\n    }\n    if (autoScrolls[layersOut].vx != vx || autoScrolls[layersOut].vy != vy || autoScrolls[layersOut].el !== el) {\n      autoScrolls[layersOut].el = el;\n      autoScrolls[layersOut].vx = vx;\n      autoScrolls[layersOut].vy = vy;\n      clearInterval(autoScrolls[layersOut].pid);\n      if (vx != 0 || vy != 0) {\n        scrollThisInstance = true;\n        /* jshint loopfunc:true */\n        autoScrolls[layersOut].pid = setInterval(function () {\n          // emulate drag over during autoscroll (fallback), emulating native DnD behaviour\n          if (isFallback && this.layer === 0) {\n            Sortable.active._onTouchMove(touchEvt$1); // To move ghost if it is positioned absolutely\n          }\n          var scrollOffsetY = autoScrolls[this.layer].vy ? autoScrolls[this.layer].vy * speed : 0;\n          var scrollOffsetX = autoScrolls[this.layer].vx ? autoScrolls[this.layer].vx * speed : 0;\n          if (typeof scrollCustomFn === 'function') {\n            if (scrollCustomFn.call(Sortable.dragged.parentNode[expando], scrollOffsetX, scrollOffsetY, evt, touchEvt$1, autoScrolls[this.layer].el) !== 'continue') {\n              return;\n            }\n          }\n          scrollBy(autoScrolls[this.layer].el, scrollOffsetX, scrollOffsetY);\n        }.bind({\n          layer: layersOut\n        }), 24);\n      }\n    }\n    layersOut++;\n  } while (options.bubbleScroll && currentParent !== winScroller && (currentParent = getParentAutoScrollElement(currentParent, false)));\n  scrolling = scrollThisInstance; // in case another function catches scrolling as false in between when it is not\n}, 30);\n\nvar drop = function drop(_ref) {\n  var originalEvent = _ref.originalEvent,\n    putSortable = _ref.putSortable,\n    dragEl = _ref.dragEl,\n    activeSortable = _ref.activeSortable,\n    dispatchSortableEvent = _ref.dispatchSortableEvent,\n    hideGhostForTarget = _ref.hideGhostForTarget,\n    unhideGhostForTarget = _ref.unhideGhostForTarget;\n  if (!originalEvent) return;\n  var toSortable = putSortable || activeSortable;\n  hideGhostForTarget();\n  var touch = originalEvent.changedTouches && originalEvent.changedTouches.length ? originalEvent.changedTouches[0] : originalEvent;\n  var target = document.elementFromPoint(touch.clientX, touch.clientY);\n  unhideGhostForTarget();\n  if (toSortable && !toSortable.el.contains(target)) {\n    dispatchSortableEvent('spill');\n    this.onSpill({\n      dragEl: dragEl,\n      putSortable: putSortable\n    });\n  }\n};\nfunction Revert() {}\nRevert.prototype = {\n  startIndex: null,\n  dragStart: function dragStart(_ref2) {\n    var oldDraggableIndex = _ref2.oldDraggableIndex;\n    this.startIndex = oldDraggableIndex;\n  },\n  onSpill: function onSpill(_ref3) {\n    var dragEl = _ref3.dragEl,\n      putSortable = _ref3.putSortable;\n    this.sortable.captureAnimationState();\n    if (putSortable) {\n      putSortable.captureAnimationState();\n    }\n    var nextSibling = getChild(this.sortable.el, this.startIndex, this.options);\n    if (nextSibling) {\n      this.sortable.el.insertBefore(dragEl, nextSibling);\n    } else {\n      this.sortable.el.appendChild(dragEl);\n    }\n    this.sortable.animateAll();\n    if (putSortable) {\n      putSortable.animateAll();\n    }\n  },\n  drop: drop\n};\n_extends(Revert, {\n  pluginName: 'revertOnSpill'\n});\nfunction Remove() {}\nRemove.prototype = {\n  onSpill: function onSpill(_ref4) {\n    var dragEl = _ref4.dragEl,\n      putSortable = _ref4.putSortable;\n    var parentSortable = putSortable || this.sortable;\n    parentSortable.captureAnimationState();\n    dragEl.parentNode && dragEl.parentNode.removeChild(dragEl);\n    parentSortable.animateAll();\n  },\n  drop: drop\n};\n_extends(Remove, {\n  pluginName: 'removeOnSpill'\n});\n\nvar lastSwapEl;\nfunction SwapPlugin() {\n  function Swap() {\n    this.defaults = {\n      swapClass: 'sortable-swap-highlight'\n    };\n  }\n  Swap.prototype = {\n    dragStart: function dragStart(_ref) {\n      var dragEl = _ref.dragEl;\n      lastSwapEl = dragEl;\n    },\n    dragOverValid: function dragOverValid(_ref2) {\n      var completed = _ref2.completed,\n        target = _ref2.target,\n        onMove = _ref2.onMove,\n        activeSortable = _ref2.activeSortable,\n        changed = _ref2.changed,\n        cancel = _ref2.cancel;\n      if (!activeSortable.options.swap) return;\n      var el = this.sortable.el,\n        options = this.options;\n      if (target && target !== el) {\n        var prevSwapEl = lastSwapEl;\n        if (onMove(target) !== false) {\n          toggleClass(target, options.swapClass, true);\n          lastSwapEl = target;\n        } else {\n          lastSwapEl = null;\n        }\n        if (prevSwapEl && prevSwapEl !== lastSwapEl) {\n          toggleClass(prevSwapEl, options.swapClass, false);\n        }\n      }\n      changed();\n      completed(true);\n      cancel();\n    },\n    drop: function drop(_ref3) {\n      var activeSortable = _ref3.activeSortable,\n        putSortable = _ref3.putSortable,\n        dragEl = _ref3.dragEl;\n      var toSortable = putSortable || this.sortable;\n      var options = this.options;\n      lastSwapEl && toggleClass(lastSwapEl, options.swapClass, false);\n      if (lastSwapEl && (options.swap || putSortable && putSortable.options.swap)) {\n        if (dragEl !== lastSwapEl) {\n          toSortable.captureAnimationState();\n          if (toSortable !== activeSortable) activeSortable.captureAnimationState();\n          swapNodes(dragEl, lastSwapEl);\n          toSortable.animateAll();\n          if (toSortable !== activeSortable) activeSortable.animateAll();\n        }\n      }\n    },\n    nulling: function nulling() {\n      lastSwapEl = null;\n    }\n  };\n  return _extends(Swap, {\n    pluginName: 'swap',\n    eventProperties: function eventProperties() {\n      return {\n        swapItem: lastSwapEl\n      };\n    }\n  });\n}\nfunction swapNodes(n1, n2) {\n  var p1 = n1.parentNode,\n    p2 = n2.parentNode,\n    i1,\n    i2;\n  if (!p1 || !p2 || p1.isEqualNode(n2) || p2.isEqualNode(n1)) return;\n  i1 = index(n1);\n  i2 = index(n2);\n  if (p1.isEqualNode(p2) && i1 < i2) {\n    i2++;\n  }\n  p1.insertBefore(n2, p1.children[i1]);\n  p2.insertBefore(n1, p2.children[i2]);\n}\n\nvar multiDragElements = [],\n  multiDragClones = [],\n  lastMultiDragSelect,\n  // for selection with modifier key down (SHIFT)\n  multiDragSortable,\n  initialFolding = false,\n  // Initial multi-drag fold when drag started\n  folding = false,\n  // Folding any other time\n  dragStarted = false,\n  dragEl$1,\n  clonesFromRect,\n  clonesHidden;\nfunction MultiDragPlugin() {\n  function MultiDrag(sortable) {\n    // Bind all private methods\n    for (var fn in this) {\n      if (fn.charAt(0) === '_' && typeof this[fn] === 'function') {\n        this[fn] = this[fn].bind(this);\n      }\n    }\n    if (!sortable.options.avoidImplicitDeselect) {\n      if (sortable.options.supportPointer) {\n        on(document, 'pointerup', this._deselectMultiDrag);\n      } else {\n        on(document, 'mouseup', this._deselectMultiDrag);\n        on(document, 'touchend', this._deselectMultiDrag);\n      }\n    }\n    on(document, 'keydown', this._checkKeyDown);\n    on(document, 'keyup', this._checkKeyUp);\n    this.defaults = {\n      selectedClass: 'sortable-selected',\n      multiDragKey: null,\n      avoidImplicitDeselect: false,\n      setData: function setData(dataTransfer, dragEl) {\n        var data = '';\n        if (multiDragElements.length && multiDragSortable === sortable) {\n          multiDragElements.forEach(function (multiDragElement, i) {\n            data += (!i ? '' : ', ') + multiDragElement.textContent;\n          });\n        } else {\n          data = dragEl.textContent;\n        }\n        dataTransfer.setData('Text', data);\n      }\n    };\n  }\n  MultiDrag.prototype = {\n    multiDragKeyDown: false,\n    isMultiDrag: false,\n    delayStartGlobal: function delayStartGlobal(_ref) {\n      var dragged = _ref.dragEl;\n      dragEl$1 = dragged;\n    },\n    delayEnded: function delayEnded() {\n      this.isMultiDrag = ~multiDragElements.indexOf(dragEl$1);\n    },\n    setupClone: function setupClone(_ref2) {\n      var sortable = _ref2.sortable,\n        cancel = _ref2.cancel;\n      if (!this.isMultiDrag) return;\n      for (var i = 0; i < multiDragElements.length; i++) {\n        multiDragClones.push(clone(multiDragElements[i]));\n        multiDragClones[i].sortableIndex = multiDragElements[i].sortableIndex;\n        multiDragClones[i].draggable = false;\n        multiDragClones[i].style['will-change'] = '';\n        toggleClass(multiDragClones[i], this.options.selectedClass, false);\n        multiDragElements[i] === dragEl$1 && toggleClass(multiDragClones[i], this.options.chosenClass, false);\n      }\n      sortable._hideClone();\n      cancel();\n    },\n    clone: function clone(_ref3) {\n      var sortable = _ref3.sortable,\n        rootEl = _ref3.rootEl,\n        dispatchSortableEvent = _ref3.dispatchSortableEvent,\n        cancel = _ref3.cancel;\n      if (!this.isMultiDrag) return;\n      if (!this.options.removeCloneOnHide) {\n        if (multiDragElements.length && multiDragSortable === sortable) {\n          insertMultiDragClones(true, rootEl);\n          dispatchSortableEvent('clone');\n          cancel();\n        }\n      }\n    },\n    showClone: function showClone(_ref4) {\n      var cloneNowShown = _ref4.cloneNowShown,\n        rootEl = _ref4.rootEl,\n        cancel = _ref4.cancel;\n      if (!this.isMultiDrag) return;\n      insertMultiDragClones(false, rootEl);\n      multiDragClones.forEach(function (clone) {\n        css(clone, 'display', '');\n      });\n      cloneNowShown();\n      clonesHidden = false;\n      cancel();\n    },\n    hideClone: function hideClone(_ref5) {\n      var _this = this;\n      var sortable = _ref5.sortable,\n        cloneNowHidden = _ref5.cloneNowHidden,\n        cancel = _ref5.cancel;\n      if (!this.isMultiDrag) return;\n      multiDragClones.forEach(function (clone) {\n        css(clone, 'display', 'none');\n        if (_this.options.removeCloneOnHide && clone.parentNode) {\n          clone.parentNode.removeChild(clone);\n        }\n      });\n      cloneNowHidden();\n      clonesHidden = true;\n      cancel();\n    },\n    dragStartGlobal: function dragStartGlobal(_ref6) {\n      var sortable = _ref6.sortable;\n      if (!this.isMultiDrag && multiDragSortable) {\n        multiDragSortable.multiDrag._deselectMultiDrag();\n      }\n      multiDragElements.forEach(function (multiDragElement) {\n        multiDragElement.sortableIndex = index(multiDragElement);\n      });\n\n      // Sort multi-drag elements\n      multiDragElements = multiDragElements.sort(function (a, b) {\n        return a.sortableIndex - b.sortableIndex;\n      });\n      dragStarted = true;\n    },\n    dragStarted: function dragStarted(_ref7) {\n      var _this2 = this;\n      var sortable = _ref7.sortable;\n      if (!this.isMultiDrag) return;\n      if (this.options.sort) {\n        // Capture rects,\n        // hide multi drag elements (by positioning them absolute),\n        // set multi drag elements rects to dragRect,\n        // show multi drag elements,\n        // animate to rects,\n        // unset rects & remove from DOM\n\n        sortable.captureAnimationState();\n        if (this.options.animation) {\n          multiDragElements.forEach(function (multiDragElement) {\n            if (multiDragElement === dragEl$1) return;\n            css(multiDragElement, 'position', 'absolute');\n          });\n          var dragRect = getRect(dragEl$1, false, true, true);\n          multiDragElements.forEach(function (multiDragElement) {\n            if (multiDragElement === dragEl$1) return;\n            setRect(multiDragElement, dragRect);\n          });\n          folding = true;\n          initialFolding = true;\n        }\n      }\n      sortable.animateAll(function () {\n        folding = false;\n        initialFolding = false;\n        if (_this2.options.animation) {\n          multiDragElements.forEach(function (multiDragElement) {\n            unsetRect(multiDragElement);\n          });\n        }\n\n        // Remove all auxiliary multidrag items from el, if sorting enabled\n        if (_this2.options.sort) {\n          removeMultiDragElements();\n        }\n      });\n    },\n    dragOver: function dragOver(_ref8) {\n      var target = _ref8.target,\n        completed = _ref8.completed,\n        cancel = _ref8.cancel;\n      if (folding && ~multiDragElements.indexOf(target)) {\n        completed(false);\n        cancel();\n      }\n    },\n    revert: function revert(_ref9) {\n      var fromSortable = _ref9.fromSortable,\n        rootEl = _ref9.rootEl,\n        sortable = _ref9.sortable,\n        dragRect = _ref9.dragRect;\n      if (multiDragElements.length > 1) {\n        // Setup unfold animation\n        multiDragElements.forEach(function (multiDragElement) {\n          sortable.addAnimationState({\n            target: multiDragElement,\n            rect: folding ? getRect(multiDragElement) : dragRect\n          });\n          unsetRect(multiDragElement);\n          multiDragElement.fromRect = dragRect;\n          fromSortable.removeAnimationState(multiDragElement);\n        });\n        folding = false;\n        insertMultiDragElements(!this.options.removeCloneOnHide, rootEl);\n      }\n    },\n    dragOverCompleted: function dragOverCompleted(_ref10) {\n      var sortable = _ref10.sortable,\n        isOwner = _ref10.isOwner,\n        insertion = _ref10.insertion,\n        activeSortable = _ref10.activeSortable,\n        parentEl = _ref10.parentEl,\n        putSortable = _ref10.putSortable;\n      var options = this.options;\n      if (insertion) {\n        // Clones must be hidden before folding animation to capture dragRectAbsolute properly\n        if (isOwner) {\n          activeSortable._hideClone();\n        }\n        initialFolding = false;\n        // If leaving sort:false root, or already folding - Fold to new location\n        if (options.animation && multiDragElements.length > 1 && (folding || !isOwner && !activeSortable.options.sort && !putSortable)) {\n          // Fold: Set all multi drag elements's rects to dragEl's rect when multi-drag elements are invisible\n          var dragRectAbsolute = getRect(dragEl$1, false, true, true);\n          multiDragElements.forEach(function (multiDragElement) {\n            if (multiDragElement === dragEl$1) return;\n            setRect(multiDragElement, dragRectAbsolute);\n\n            // Move element(s) to end of parentEl so that it does not interfere with multi-drag clones insertion if they are inserted\n            // while folding, and so that we can capture them again because old sortable will no longer be fromSortable\n            parentEl.appendChild(multiDragElement);\n          });\n          folding = true;\n        }\n\n        // Clones must be shown (and check to remove multi drags) after folding when interfering multiDragElements are moved out\n        if (!isOwner) {\n          // Only remove if not folding (folding will remove them anyways)\n          if (!folding) {\n            removeMultiDragElements();\n          }\n          if (multiDragElements.length > 1) {\n            var clonesHiddenBefore = clonesHidden;\n            activeSortable._showClone(sortable);\n\n            // Unfold animation for clones if showing from hidden\n            if (activeSortable.options.animation && !clonesHidden && clonesHiddenBefore) {\n              multiDragClones.forEach(function (clone) {\n                activeSortable.addAnimationState({\n                  target: clone,\n                  rect: clonesFromRect\n                });\n                clone.fromRect = clonesFromRect;\n                clone.thisAnimationDuration = null;\n              });\n            }\n          } else {\n            activeSortable._showClone(sortable);\n          }\n        }\n      }\n    },\n    dragOverAnimationCapture: function dragOverAnimationCapture(_ref11) {\n      var dragRect = _ref11.dragRect,\n        isOwner = _ref11.isOwner,\n        activeSortable = _ref11.activeSortable;\n      multiDragElements.forEach(function (multiDragElement) {\n        multiDragElement.thisAnimationDuration = null;\n      });\n      if (activeSortable.options.animation && !isOwner && activeSortable.multiDrag.isMultiDrag) {\n        clonesFromRect = _extends({}, dragRect);\n        var dragMatrix = matrix(dragEl$1, true);\n        clonesFromRect.top -= dragMatrix.f;\n        clonesFromRect.left -= dragMatrix.e;\n      }\n    },\n    dragOverAnimationComplete: function dragOverAnimationComplete() {\n      if (folding) {\n        folding = false;\n        removeMultiDragElements();\n      }\n    },\n    drop: function drop(_ref12) {\n      var evt = _ref12.originalEvent,\n        rootEl = _ref12.rootEl,\n        parentEl = _ref12.parentEl,\n        sortable = _ref12.sortable,\n        dispatchSortableEvent = _ref12.dispatchSortableEvent,\n        oldIndex = _ref12.oldIndex,\n        putSortable = _ref12.putSortable;\n      var toSortable = putSortable || this.sortable;\n      if (!evt) return;\n      var options = this.options,\n        children = parentEl.children;\n\n      // Multi-drag selection\n      if (!dragStarted) {\n        if (options.multiDragKey && !this.multiDragKeyDown) {\n          this._deselectMultiDrag();\n        }\n        toggleClass(dragEl$1, options.selectedClass, !~multiDragElements.indexOf(dragEl$1));\n        if (!~multiDragElements.indexOf(dragEl$1)) {\n          multiDragElements.push(dragEl$1);\n          dispatchEvent({\n            sortable: sortable,\n            rootEl: rootEl,\n            name: 'select',\n            targetEl: dragEl$1,\n            originalEvent: evt\n          });\n\n          // Modifier activated, select from last to dragEl\n          if (evt.shiftKey && lastMultiDragSelect && sortable.el.contains(lastMultiDragSelect)) {\n            var lastIndex = index(lastMultiDragSelect),\n              currentIndex = index(dragEl$1);\n            if (~lastIndex && ~currentIndex && lastIndex !== currentIndex) {\n              (function () {\n                // Must include lastMultiDragSelect (select it), in case modified selection from no selection\n                // (but previous selection existed)\n                var n, i;\n                if (currentIndex > lastIndex) {\n                  i = lastIndex;\n                  n = currentIndex;\n                } else {\n                  i = currentIndex;\n                  n = lastIndex + 1;\n                }\n                var filter = options.filter;\n                for (; i < n; i++) {\n                  if (~multiDragElements.indexOf(children[i])) continue;\n                  // Check if element is draggable\n                  if (!closest(children[i], options.draggable, parentEl, false)) continue;\n                  // Check if element is filtered\n                  var filtered = filter && (typeof filter === 'function' ? filter.call(sortable, evt, children[i], sortable) : filter.split(',').some(function (criteria) {\n                    return closest(children[i], criteria.trim(), parentEl, false);\n                  }));\n                  if (filtered) continue;\n                  toggleClass(children[i], options.selectedClass, true);\n                  multiDragElements.push(children[i]);\n                  dispatchEvent({\n                    sortable: sortable,\n                    rootEl: rootEl,\n                    name: 'select',\n                    targetEl: children[i],\n                    originalEvent: evt\n                  });\n                }\n              })();\n            }\n          } else {\n            lastMultiDragSelect = dragEl$1;\n          }\n          multiDragSortable = toSortable;\n        } else {\n          multiDragElements.splice(multiDragElements.indexOf(dragEl$1), 1);\n          lastMultiDragSelect = null;\n          dispatchEvent({\n            sortable: sortable,\n            rootEl: rootEl,\n            name: 'deselect',\n            targetEl: dragEl$1,\n            originalEvent: evt\n          });\n        }\n      }\n\n      // Multi-drag drop\n      if (dragStarted && this.isMultiDrag) {\n        folding = false;\n        // Do not \"unfold\" after around dragEl if reverted\n        if ((parentEl[expando].options.sort || parentEl !== rootEl) && multiDragElements.length > 1) {\n          var dragRect = getRect(dragEl$1),\n            multiDragIndex = index(dragEl$1, ':not(.' + this.options.selectedClass + ')');\n          if (!initialFolding && options.animation) dragEl$1.thisAnimationDuration = null;\n          toSortable.captureAnimationState();\n          if (!initialFolding) {\n            if (options.animation) {\n              dragEl$1.fromRect = dragRect;\n              multiDragElements.forEach(function (multiDragElement) {\n                multiDragElement.thisAnimationDuration = null;\n                if (multiDragElement !== dragEl$1) {\n                  var rect = folding ? getRect(multiDragElement) : dragRect;\n                  multiDragElement.fromRect = rect;\n\n                  // Prepare unfold animation\n                  toSortable.addAnimationState({\n                    target: multiDragElement,\n                    rect: rect\n                  });\n                }\n              });\n            }\n\n            // Multi drag elements are not necessarily removed from the DOM on drop, so to reinsert\n            // properly they must all be removed\n            removeMultiDragElements();\n            multiDragElements.forEach(function (multiDragElement) {\n              if (children[multiDragIndex]) {\n                parentEl.insertBefore(multiDragElement, children[multiDragIndex]);\n              } else {\n                parentEl.appendChild(multiDragElement);\n              }\n              multiDragIndex++;\n            });\n\n            // If initial folding is done, the elements may have changed position because they are now\n            // unfolding around dragEl, even though dragEl may not have his index changed, so update event\n            // must be fired here as Sortable will not.\n            if (oldIndex === index(dragEl$1)) {\n              var update = false;\n              multiDragElements.forEach(function (multiDragElement) {\n                if (multiDragElement.sortableIndex !== index(multiDragElement)) {\n                  update = true;\n                  return;\n                }\n              });\n              if (update) {\n                dispatchSortableEvent('update');\n                dispatchSortableEvent('sort');\n              }\n            }\n          }\n\n          // Must be done after capturing individual rects (scroll bar)\n          multiDragElements.forEach(function (multiDragElement) {\n            unsetRect(multiDragElement);\n          });\n          toSortable.animateAll();\n        }\n        multiDragSortable = toSortable;\n      }\n\n      // Remove clones if necessary\n      if (rootEl === parentEl || putSortable && putSortable.lastPutMode !== 'clone') {\n        multiDragClones.forEach(function (clone) {\n          clone.parentNode && clone.parentNode.removeChild(clone);\n        });\n      }\n    },\n    nullingGlobal: function nullingGlobal() {\n      this.isMultiDrag = dragStarted = false;\n      multiDragClones.length = 0;\n    },\n    destroyGlobal: function destroyGlobal() {\n      this._deselectMultiDrag();\n      off(document, 'pointerup', this._deselectMultiDrag);\n      off(document, 'mouseup', this._deselectMultiDrag);\n      off(document, 'touchend', this._deselectMultiDrag);\n      off(document, 'keydown', this._checkKeyDown);\n      off(document, 'keyup', this._checkKeyUp);\n    },\n    _deselectMultiDrag: function _deselectMultiDrag(evt) {\n      if (typeof dragStarted !== \"undefined\" && dragStarted) return;\n\n      // Only deselect if selection is in this sortable\n      if (multiDragSortable !== this.sortable) return;\n\n      // Only deselect if target is not item in this sortable\n      if (evt && closest(evt.target, this.options.draggable, this.sortable.el, false)) return;\n\n      // Only deselect if left click\n      if (evt && evt.button !== 0) return;\n      while (multiDragElements.length) {\n        var el = multiDragElements[0];\n        toggleClass(el, this.options.selectedClass, false);\n        multiDragElements.shift();\n        dispatchEvent({\n          sortable: this.sortable,\n          rootEl: this.sortable.el,\n          name: 'deselect',\n          targetEl: el,\n          originalEvent: evt\n        });\n      }\n    },\n    _checkKeyDown: function _checkKeyDown(evt) {\n      if (evt.key === this.options.multiDragKey) {\n        this.multiDragKeyDown = true;\n      }\n    },\n    _checkKeyUp: function _checkKeyUp(evt) {\n      if (evt.key === this.options.multiDragKey) {\n        this.multiDragKeyDown = false;\n      }\n    }\n  };\n  return _extends(MultiDrag, {\n    // Static methods & properties\n    pluginName: 'multiDrag',\n    utils: {\n      /**\r\n       * Selects the provided multi-drag item\r\n       * @param  {HTMLElement} el    The element to be selected\r\n       */\n      select: function select(el) {\n        var sortable = el.parentNode[expando];\n        if (!sortable || !sortable.options.multiDrag || ~multiDragElements.indexOf(el)) return;\n        if (multiDragSortable && multiDragSortable !== sortable) {\n          multiDragSortable.multiDrag._deselectMultiDrag();\n          multiDragSortable = sortable;\n        }\n        toggleClass(el, sortable.options.selectedClass, true);\n        multiDragElements.push(el);\n      },\n      /**\r\n       * Deselects the provided multi-drag item\r\n       * @param  {HTMLElement} el    The element to be deselected\r\n       */\n      deselect: function deselect(el) {\n        var sortable = el.parentNode[expando],\n          index = multiDragElements.indexOf(el);\n        if (!sortable || !sortable.options.multiDrag || !~index) return;\n        toggleClass(el, sortable.options.selectedClass, false);\n        multiDragElements.splice(index, 1);\n      }\n    },\n    eventProperties: function eventProperties() {\n      var _this3 = this;\n      var oldIndicies = [],\n        newIndicies = [];\n      multiDragElements.forEach(function (multiDragElement) {\n        oldIndicies.push({\n          multiDragElement: multiDragElement,\n          index: multiDragElement.sortableIndex\n        });\n\n        // multiDragElements will already be sorted if folding\n        var newIndex;\n        if (folding && multiDragElement !== dragEl$1) {\n          newIndex = -1;\n        } else if (folding) {\n          newIndex = index(multiDragElement, ':not(.' + _this3.options.selectedClass + ')');\n        } else {\n          newIndex = index(multiDragElement);\n        }\n        newIndicies.push({\n          multiDragElement: multiDragElement,\n          index: newIndex\n        });\n      });\n      return {\n        items: _toConsumableArray(multiDragElements),\n        clones: [].concat(multiDragClones),\n        oldIndicies: oldIndicies,\n        newIndicies: newIndicies\n      };\n    },\n    optionListeners: {\n      multiDragKey: function multiDragKey(key) {\n        key = key.toLowerCase();\n        if (key === 'ctrl') {\n          key = 'Control';\n        } else if (key.length > 1) {\n          key = key.charAt(0).toUpperCase() + key.substr(1);\n        }\n        return key;\n      }\n    }\n  });\n}\nfunction insertMultiDragElements(clonesInserted, rootEl) {\n  multiDragElements.forEach(function (multiDragElement, i) {\n    var target = rootEl.children[multiDragElement.sortableIndex + (clonesInserted ? Number(i) : 0)];\n    if (target) {\n      rootEl.insertBefore(multiDragElement, target);\n    } else {\n      rootEl.appendChild(multiDragElement);\n    }\n  });\n}\n\n/**\r\n * Insert multi-drag clones\r\n * @param  {[Boolean]} elementsInserted  Whether the multi-drag elements are inserted\r\n * @param  {HTMLElement} rootEl\r\n */\nfunction insertMultiDragClones(elementsInserted, rootEl) {\n  multiDragClones.forEach(function (clone, i) {\n    var target = rootEl.children[clone.sortableIndex + (elementsInserted ? Number(i) : 0)];\n    if (target) {\n      rootEl.insertBefore(clone, target);\n    } else {\n      rootEl.appendChild(clone);\n    }\n  });\n}\nfunction removeMultiDragElements() {\n  multiDragElements.forEach(function (multiDragElement) {\n    if (multiDragElement === dragEl$1) return;\n    multiDragElement.parentNode && multiDragElement.parentNode.removeChild(multiDragElement);\n  });\n}\n\nSortable.mount(new AutoScrollPlugin());\nSortable.mount(Remove, Revert);\n\nexport default Sortable;\nexport { MultiDragPlugin as MultiDrag, Sortable, SwapPlugin as Swap };\n", "import Dropzone from '@deltablot/dropzone';\nimport type { SortingResponse } from '@moxiltd/moxijs/src/api/adminResourceApi.js';\nimport { Api, type ApiResponse } from '@moxiltd/moxijs/src/api/api.js';\nimport { WidgetComponent } from '@moxiltd/moxijs/src/widget/widgetComponent.js';\nimport { html } from 'lit';\nimport { customElement, property } from 'lit/decorators.js';\nimport Sortable from 'sortablejs';\n\n@customElement('image-uploader')\nexport class ImageUploader extends WidgetComponent {\n    @property({ type: Number, attribute: 'ad-id' })\n    public adId: number;\n\n    // Per-image limit in MB (mirrors settings.general.max_image_upload_mb, passed from the template).\n    @property({ type: Number, attribute: 'max-filesize' })\n    public maxFilesize = 16;\n\n    async firstUpdated() {\n        const dropzoneElement = this.querySelector('.dropzone') as HTMLElement;\n        if (!dropzoneElement) {\n            return;\n        }\n\n        const url = `${window.baseUrl}api/ad/${this.adId}/file`;\n        const dropzone = new Dropzone(dropzoneElement, {\n            url,\n            acceptedFiles: 'image/*',\n            addRemoveLinks: true,\n            // Reject oversized files in the browser (shows dictFileTooBig) before they hit the wire / Swoole.\n            maxFilesize: this.maxFilesize,\n            // Downscale to fit within 2500x2500 @ q0.85 before upload: smaller payloads, full-res not needed\n            // (server generates thumbnails). Keeps the source mime type; quality applies to JPEG/WebP.\n            resizeWidth: 2500,\n            resizeHeight: 2500,\n            resizeQuality: 0.85,\n            dictDefaultMessage: window.lexicon.dropzone.defaultMessage,\n            dictRemoveFile: window.lexicon.dropzone.removeFile,\n            dictCancelUpload: window.lexicon.dropzone.cancelUpload,\n            dictCancelUploadConfirmation: window.lexicon.dropzone.cancelUploadConfirmation,\n            dictFallbackMessage: window.lexicon.dropzone.fallbackMessage,\n            dictFallbackText: window.lexicon.dropzone.fallbackText,\n            dictFileSizeUnits: window.lexicon.dropzone.fileSizeUnits,\n            dictUploadCanceled: window.lexicon.dropzone.uploadCanceled,\n            dictFileTooBig: window.lexicon.dropzone.fileTooBig,\n            dictInvalidFileType: window.lexicon.dropzone.invalidFileType,\n            dictResponseError: window.lexicon.dropzone.responseError,\n            dictMaxFilesExceeded: window.lexicon.dropzone.maxFilesExceeded,\n            dictRemoveFileConfirmation: window.lexicon.dropzone.removeFileConfirmation,\n        });\n\n        // Auth rides the cookies the browser already sends with this same-origin XHR: the login session\n        // satisfies the JWT gate (JwtIgnoreSessionAuthenticatedRequestRule) and CsrfMiddleware pulls the CSRF\n        // token from its cookie. No Bearer/CSRF header juggling here, which also keeps Dropzone's native\n        // upload-progress + completion lifecycle intact.\n\n        dropzone.on('addedfile', (file: Dropzone.DropzoneFile & { adId?: number; attId?: number }) => {\n            if (file.attId) {\n                file.previewElement.setAttribute('data-id', file.attId.toString());\n            }\n        });\n\n        dropzone.on('removedfile', async (file: Dropzone.DropzoneFile & { adId: number; attId: number }) => {\n            Api.log = false;\n            const request = await Api.api_delete(`${window.baseUrl}api/ad/${file.adId}/file/${file.attId}`);\n            console.log(file, request);\n        });\n        dropzone.on(\n            'success',\n            (\n                file: Dropzone.DropzoneFile & { adId: number; attId: number },\n                response: ApiResponse<{ filename: string; adId: number; attId: number }>,\n            ) => {\n                if (response.statusCode === 200) {\n                    file.adId = response.data.adId;\n                    file.attId = response.data.attId;\n                    console.log('File uploaded successfully:', response.data);\n                } else {\n                    console.error('File upload error:', response.message);\n                }\n            },\n        );\n        dropzone.on('error', (file: Dropzone.DropzoneFile, errorMessage: string | { message?: string }) => {\n            // The server returns an ApiResponse JSON on failure; surface its message instead of \"[object Object]\".\n            const message =\n                typeof errorMessage === 'string'\n                    ? errorMessage\n                    : (errorMessage?.message ?? window.lexicon.dropzone.responseError);\n            const span = file.previewElement?.querySelector('.dz-error-message span');\n            if (span) {\n                span.textContent = message;\n            }\n            console.error('File upload error:', message);\n        });\n\n        // Add already uploaded files to Dropzone\n        const uploadedFiles = this.querySelectorAll('.uploaded-file');\n        uploadedFiles.forEach((fileElement: HTMLElement) => {\n            const fileData = fileElement.dataset;\n            const file = {\n                name: fileData.name,\n                size: parseInt(fileData.size),\n                adId: this.adId,\n                attId: parseInt(fileData.id),\n            } as Dropzone.DropzoneMockFile;\n\n            dropzone.displayExistingFile(file, fileData.img);\n        });\n\n        // Setup sortable\n        const { adId } = this;\n        const sortable = new Sortable(dropzoneElement, {\n            draggable: '.dz-preview',\n            animation: 200,\n            store: {\n                get: (sortableInstance: Sortable): string[] => [],\n                async set(sortableInstance: Sortable): Promise<void> {\n                    Api.log = false;\n                    await Api.api_put<SortingResponse>(`${window.baseUrl}api/ad/${adId}/fileOrder`, {\n                        sorting: sortableInstance.toArray(),\n                    });\n                },\n            },\n        });\n    }\n\n    render() {\n        return html`\n            <link rel=\"stylesheet\" href=\"${window.baseUrl}assets/dist/components/image-uploader.css\">\n            <slot></slot>\n    `;\n    }\n}\n", "import { html, LitElement, type TemplateResult } from 'lit';\nimport { customElement, property, query, state } from 'lit/decorators.js';\n\n/**\n * Fancy avatar upload widget. A circular drop/click zone showing the current avatar; picking (or dropping)\n * an image shows an instant local preview, then uploads it (multipart `file`) to `upload-url`\n * ({@see moxi\\moxiapp\\controller\\UserController::uploadAvatar}). On success it swaps in the stored URL, updates\n * any `.profile-avatar img` on the page (the header) and emits `avatar:updated`.\n *\n * Same-origin cookie auth (credentials: 'same-origin'); the CsrfMiddleware injects the token from the cookie,\n * so no CSRF header juggling is needed (same as the <image-uploader> Dropzone path).\n *\n * Rendered in light DOM so the app stylesheet (components/profile-form.scss) applies.\n */\n@customElement('avatar-uploader')\nexport class AvatarUploader extends LitElement {\n    @property({ type: String, attribute: 'current-avatar' })\n    public currentAvatar = '';\n\n    @property({ type: String, attribute: 'upload-url' })\n    public uploadUrl = '';\n\n    @state()\n    private previewUrl = '';\n\n    @state()\n    private uploading = false;\n\n    @state()\n    private error = '';\n\n    @state()\n    private dragging = false;\n\n    @query('input[type=file]')\n    private fileInput!: HTMLInputElement;\n\n    // light DOM: let app.css style the markup\n    protected createRenderRoot() {\n        return this;\n    }\n\n    private get displayUrl(): string {\n        return this.previewUrl || this.currentAvatar;\n    }\n\n    private openPicker() {\n        this.fileInput?.click();\n    }\n\n    private onDragOver(e: DragEvent) {\n        e.preventDefault();\n        this.dragging = true;\n    }\n\n    private onDragLeave() {\n        this.dragging = false;\n    }\n\n    private onDrop(e: DragEvent) {\n        e.preventDefault();\n        this.dragging = false;\n        const file = e.dataTransfer?.files?.[0];\n        if (file) {\n            this.handleFile(file);\n        }\n    }\n\n    private onChange(e: Event) {\n        const file = (e.target as HTMLInputElement).files?.[0];\n        if (file) {\n            this.handleFile(file);\n        }\n    }\n\n    private async handleFile(file: File) {\n        if (!file.type.startsWith('image/')) {\n            this.error = window.lexicon?.dropzone?.invalidFileType ?? 'Invalid file type';\n            return;\n        }\n\n        this.error = '';\n        // instant local preview\n        this.previewUrl = URL.createObjectURL(file);\n        this.uploading = true;\n\n        try {\n            const body = new FormData();\n            body.append('file', file);\n            const res = await fetch(this.uploadUrl, { method: 'POST', body, credentials: 'same-origin' });\n            const json = await res.json();\n\n            if (!res.ok || json.status !== 'OK' || !json.data?.avatar) {\n                throw new Error(json.message ?? 'upload failed');\n            }\n\n            this.currentAvatar = json.data.avatar as string;\n            this.previewUrl = '';\n\n            // update the header avatar(s) live + let anyone else react\n            document.querySelectorAll<HTMLImageElement>('.profile-avatar img').forEach(img => {\n                img.src = this.currentAvatar;\n            });\n            this.dispatchEvent(\n                new CustomEvent('avatar:updated', { detail: { url: this.currentAvatar }, bubbles: true }),\n            );\n        } catch (err) {\n            this.previewUrl = '';\n            this.error = err instanceof Error ? err.message : String(err);\n        } finally {\n            this.uploading = false;\n        }\n    }\n\n    render(): TemplateResult {\n        return html`\n            <div\n                class=\"avatar-uploader-zone ${this.dragging ? 'is-dragging' : ''} ${this.uploading ? 'is-uploading' : ''}\"\n                role=\"button\"\n                tabindex=\"0\"\n                @click=${this.openPicker}\n                @keydown=${(e: KeyboardEvent) => {\n                    if (e.key === 'Enter' || e.key === ' ') {\n                        e.preventDefault();\n                        this.openPicker();\n                    }\n                }}\n                @dragover=${this.onDragOver}\n                @dragleave=${this.onDragLeave}\n                @drop=${this.onDrop}\n            >\n                <img class=\"avatar-uploader-img\" src=${this.displayUrl} alt=\"\" />\n                <span class=\"avatar-uploader-overlay\">\n                    ${\n                        this.uploading\n                            ? html`<span class=\"avatar-uploader-spinner\" aria-hidden=\"true\"></span>`\n                            : html`<svg viewBox=\"0 0 24 24\" width=\"22\" height=\"22\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><path d=\"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z\"></path><circle cx=\"12\" cy=\"13\" r=\"4\"></circle></svg>`\n                    }\n                </span>\n                <input type=\"file\" accept=\"image/*\" hidden @change=${this.onChange} />\n            </div>\n            ${this.error ? html`<p class=\"avatar-uploader-error help is-danger\">${this.error}</p>` : ''}\n        `;\n    }\n}\n", "// Progressive-enhancement picker for the ad form's category field. The server renders a native indented\n// <select> (the moxi-form DropdownWidget that actually carries + submits the value); this element hides it\n// and drives a step-by-step drill-down from the trimmed category tree embedded as JSON. Plain custom element\n// (no Lit) so the server-rendered <select> + JSON are never wiped by a reactive render.\n\ntype CatNode = {\n    id: number;\n    title: string;\n    parent_id: number | null;\n    childIds: number[];\n};\n\ntype CatNav = {\n    rootIds: number[];\n    byId: Record<string, CatNode>;\n};\n\nexport class CategoryWizard extends HTMLElement {\n    private select: HTMLSelectElement | null = null;\n\n    private control: HTMLElement | null = null;\n\n    private nav: CatNav | null = null;\n\n    private ui: HTMLDivElement | null = null;\n\n    private labels = { root: '', choose: '', selected: '' };\n\n    connectedCallback(): void {\n        this.select = this.querySelector('select');\n        this.control = this.querySelector('.control');\n        const navScript = this.querySelector('.cat-wizard-nav');\n\n        if (!this.select || !this.control || !navScript) {\n            return;\n        }\n\n        try {\n            this.nav = JSON.parse(navScript.textContent ?? '') as CatNav;\n        } catch {\n            this.nav = null;\n        }\n\n        if (!this.nav || !Array.isArray(this.nav.rootIds) || this.nav.rootIds.length === 0) {\n            return; // leave the native select untouched\n        }\n\n        this.labels = {\n            root: this.getAttribute('label-root') ?? '',\n            choose: this.getAttribute('label-choose') ?? '',\n            selected: this.getAttribute('label-selected') ?? '',\n        };\n\n        // hide the native select, but keep it in the DOM so moxi-form still collects + submits its value\n        this.control.hidden = true;\n        this.classList.add('is-enhanced');\n\n        this.ui = document.createElement('div');\n        this.ui.className = 'cat-wizard-ui';\n        this.appendChild(this.ui);\n\n        const selected = this.currentValue();\n        const selectedNode = this.node(selected);\n        // A saved non-leaf category (legacy ads without a leaf) opens directly at its own children so the\n        // user is prompted to pick a subcategory; a leaf opens at its siblings with the leaf highlighted.\n        const startParent =\n            selectedNode && selectedNode.childIds.length > 0 ? selectedNode.id : (selectedNode?.parent_id ?? null);\n        this.renderLevel(startParent, selected);\n    }\n\n    private currentValue(): number | null {\n        const value = Number(this.select?.value);\n        return Number.isInteger(value) && value > 0 ? value : null;\n    }\n\n    private node(id: number | null): CatNode | undefined {\n        return id === null ? undefined : this.nav?.byId[id];\n    }\n\n    private childrenOf(parentId: number | null): number[] {\n        if (parentId === null) {\n            return this.nav?.rootIds ?? [];\n        }\n        return this.node(parentId)?.childIds ?? [];\n    }\n\n    private pathTo(id: number): CatNode[] {\n        const path: CatNode[] = [];\n        let cursor: number | null = id;\n        let guard = 0;\n        while (cursor !== null && guard < 50) {\n            const current = this.node(cursor);\n            if (!current) break;\n            path.unshift(current);\n            cursor = current.parent_id;\n            guard += 1;\n        }\n        return path;\n    }\n\n    private choose(id: number): void {\n        if (!this.select) return;\n        this.select.value = String(id);\n        this.select.dispatchEvent(new Event('input', { bubbles: true }));\n        this.select.dispatchEvent(new Event('change', { bubbles: true }));\n        this.renderLevel(this.node(id)?.parent_id ?? null, id);\n    }\n\n    private renderLevel(parentId: number | null, selectedId: number | null): void {\n        if (!this.ui) return;\n        this.ui.replaceChildren();\n\n        // Only a leaf is a valid final selection, so only then show the \"Gew\u00E4hlt: \u2026\" summary; a non-leaf\n        // selection just opens at its children (above) without claiming a category was chosen.\n        const selectedNode = this.node(selectedId);\n        if (selectedNode && selectedNode.childIds.length === 0) {\n            this.ui.appendChild(this.renderSummary(selectedNode.id));\n        }\n\n        this.ui.appendChild(this.renderCrumbs(parentId));\n\n        const heading = document.createElement('p');\n        heading.className = 'cat-wizard-heading';\n        heading.textContent = this.labels.choose;\n        this.ui.appendChild(heading);\n\n        const level = document.createElement('div');\n        level.className = 'cat-wizard-level';\n        this.childrenOf(parentId).forEach(childId => {\n            const childNode = this.node(childId);\n            if (childNode) level.appendChild(this.renderOption(childNode, selectedId));\n        });\n        this.ui.appendChild(level);\n    }\n\n    private renderSummary(selectedId: number): HTMLElement {\n        const summary = document.createElement('div');\n        summary.className = 'cat-wizard-summary';\n\n        const label = document.createElement('span');\n        label.className = 'cat-wizard-summary-label';\n        label.textContent = this.labels.selected;\n\n        const path = document.createElement('span');\n        path.className = 'cat-wizard-summary-path';\n        path.textContent = this.pathTo(selectedId)\n            .map(node => node.title)\n            .join(' \u203A ');\n\n        // No reset button: the \"all categories\" root crumb already restarts the picker.\n        summary.append(label, path);\n        return summary;\n    }\n\n    private renderCrumbs(parentId: number | null): HTMLElement {\n        const crumbs = document.createElement('nav');\n        crumbs.className = 'cat-wizard-crumbs';\n        crumbs.appendChild(this.crumb(this.labels.root, null, parentId === null));\n\n        if (parentId !== null) {\n            this.pathTo(parentId).forEach(node => {\n                crumbs.appendChild(this.separator());\n                crumbs.appendChild(this.crumb(node.title, node.id, node.id === parentId));\n            });\n        }\n\n        return crumbs;\n    }\n\n    private crumb(text: string, targetId: number | null, isCurrent: boolean): HTMLButtonElement {\n        const button = document.createElement('button');\n        button.type = 'button';\n        button.className = 'cat-wizard-crumb';\n        button.textContent = text;\n        if (isCurrent) button.classList.add('is-current');\n        button.addEventListener('click', () => this.renderLevel(targetId, this.currentValue()));\n        return button;\n    }\n\n    private separator(): HTMLElement {\n        const sep = document.createElement('span');\n        sep.className = 'cat-wizard-sep';\n        sep.setAttribute('aria-hidden', 'true');\n        sep.textContent = '\u203A';\n        return sep;\n    }\n\n    private renderOption(node: CatNode, selectedId: number | null): HTMLElement {\n        const isBranch = node.childIds.length > 0;\n        const option = document.createElement('button');\n        option.type = 'button';\n        option.className = `cat-wizard-option ${isBranch ? 'is-branch' : 'is-leaf'}`;\n        if (node.id === selectedId) option.classList.add('is-selected');\n\n        const title = document.createElement('span');\n        title.className = 'cat-wizard-option-title';\n        title.textContent = node.title;\n        option.appendChild(title);\n\n        if (isBranch) {\n            const chevron = document.createElement('span');\n            chevron.className = 'cat-wizard-chevron';\n            chevron.setAttribute('aria-hidden', 'true');\n            chevron.textContent = '\u203A';\n            option.appendChild(chevron);\n            option.addEventListener('click', () => this.renderLevel(node.id, selectedId));\n        } else {\n            option.addEventListener('click', () => this.choose(node.id));\n        }\n\n        return option;\n    }\n}\n\ndeclare global {\n    interface HTMLElementTagNameMap {\n        'category-wizard': CategoryWizard;\n    }\n}\n\nif (!customElements.get('category-wizard')) {\n    customElements.define('category-wizard', CategoryWizard);\n}\n", "import { html, LitElement, TemplateResult } from 'lit';\nimport { property, query } from 'lit/decorators.js';\n\nexport abstract class CameraUser extends LitElement {\n    public stream: MediaStream | null = null;\n    public supportedConstraints: MediaTrackSupportedConstraints | null = null;\n\n    public facingMode: 'user' | 'environment' = 'environment';\n\n    @property({ type: Boolean, attribute: 'enabled', reflect: true })\n    protected get enabled() {\n        return this._enabled;\n    }\n    protected set enabled(value: boolean) {\n        this._enabled = value;\n        if (this._enabled) {\n            this.start().then(r => this.startVideo());\n        } else {\n            this.stop();\n        }\n    }\n    _enabled = false;\n\n    @query('#video')\n    public videoElement: HTMLVideoElement | undefined;\n\n    @property({ type: Object })\n    public cameraCapabilities: MediaTrackCapabilities | null = null;\n\n    @property({ type: Object })\n    public get constraints() {\n        return this._constraints;\n    }\n    public set constraints(newConstraints: MediaStreamConstraints) {\n        this._constraints = newConstraints;\n        if (!this.stream) {\n            console.error('No stream available');\n            return;\n        }\n        const videoTrack = this.stream.getVideoTracks()[0];\n        if (typeof newConstraints.video === 'boolean') {\n            console.error('Invalid constraints: ', newConstraints);\n            return;\n        }\n        videoTrack.applyConstraints(newConstraints.video).catch(err => {\n            console.error('Error applying constraints: ', err);\n            navigator.mediaDevices.getUserMedia(this.constraints).then(newStream => { this.stream = newStream });\n        });\n    }\n    private _constraints: MediaStreamConstraints = {\n        video: {\n            width: { min: 1024, ideal: 1280, max: 1920 },\n            height: { min: 576, ideal: 720, max: 1080 },\n            facingMode: this.facingMode,\n        },\n    }\n\n    constructor() {\n        super();\n\n        if (!this.hasCameraSupport() || !this.hasCameraPermission()) {\n            return;\n        }\n\n        this.supportedConstraints = navigator.mediaDevices.getSupportedConstraints();\n    }\n\n    protected abstract startVideo(): void;\n\n    public hasCameraSupport() {\n        return 'mediaDevices' in navigator;\n    }\n\n    public async hasCameraPermission(): Promise<boolean> {\n        const permissionStatus = await navigator.permissions.query({ name: 'camera' });\n        return permissionStatus.state === 'granted';\n    }\n\n    public hasBarcodeSupport() {\n        return 'BarcodeDetector' in globalThis;\n    }\n\n    public hasFocusSupport() {\n        return 'focusMode' in this.supportedConstraints;\n    }\n\n    public hasZoomSupport() {\n        return 'zoom' in this.supportedConstraints;\n    }\n\n    public async start(): Promise<void> {\n        console.log('Starting camera with', this.constraints);\n        if (this.stream) {\n            this.stream.getVideoTracks().forEach(track => {\n                track.stop();\n            });\n        }\n        this.stream = await navigator.mediaDevices.getUserMedia(this.constraints);\n        const [videoTrack] = this.stream.getVideoTracks();\n        this.cameraCapabilities = videoTrack.getCapabilities();\n\n        const settings = videoTrack.getSettings();\n        console.log('Capabilities: ', this.cameraCapabilities);\n        console.log('Settings: ', settings);\n    }\n\n    public stop() {\n        console.log('Stopping camera');\n        if (!this.stream) {\n            return;\n        }\n        this.stream.getVideoTracks().forEach(track => {\n            track.stop();\n        });\n        this.stream = null;\n    }\n\n    public handleZoomChange(event: Event) {\n        (this.constraints.video as MediaTrackConstraints).zoom = parseFloat((event.target as HTMLInputElement).value);\n        // clone\n        this.constraints = { ...this.constraints };\n        super.requestUpdate();\n    }\n\n    public render(): TemplateResult {\n        return html`\n            <video id=\"video\" autoplay muted playsinline width=\"100%\" height=\"100%\"></video>\n        `\n    }\n}\n", "import {\n    css, html, PropertyValues, TemplateResult,\n} from 'lit';\nimport { NotyfEvent } from 'notyf';\nimport { property } from 'lit/decorators.js';\nimport { CameraUser } from './cameraUser';\n\nexport class BarcodeScanner extends CameraUser {\n    public supportedFormats: BarcodeFormat[] = [];\n    public barcodeDetector: BarcodeDetector | null = null;\n\n    @property({ type: String })\n    public partno: string | null = null;\n\n    constructor() {\n        super();\n        if (!this.hasBarcodeSupport()) {\n            return;\n        }\n\n        BarcodeDetector.getSupportedFormats().then(formats => {\n            this.supportedFormats = formats;\n            console.log('Supported barcode formats:', this.supportedFormats);\n            this.barcodeDetector = new BarcodeDetector({ formats: this.supportedFormats });\n            console.log('Barcode detector created:', this.barcodeDetector);\n        });\n    }\n\n    protected startVideo() {\n        if (!this.hasBarcodeSupport() || !this.barcodeDetector) {\n            window.notyf.error('Barcode detection is not supported in this browser.');\n            return;\n        }\n        this.videoElement.srcObject = this.stream;\n        this.videoElement.addEventListener('play', this.capture.bind(this));\n    }\n\n    protected async capture() {\n        console.log('Capturing frame...');\n        if (!this.barcodeDetector) {\n            alert('Barcode detection is not supported in this browser.');\n            return;\n        }\n        if (!this.enabled) {\n            return;\n        }\n        try {\n            const barcodes = await this.barcodeDetector.detect(this.videoElement);\n\n            if (barcodes.length === 0) {\n                requestAnimationFrame(this.capture.bind(this));\n                return;\n            }\n\n            for (const { format, rawValue } of barcodes) {\n                let partno = rawValue;\n                if (format === 'data_matrix') {\n                    // part no: \\d{8} (might appear twice)\n                    // middle: 00\n                    // serial no: S0\\d{8}\n                    const match = rawValue.toString().match(/^(\\d{8})(?:00)?(S0(\\d{8}))?/);\n                    if (!match) {\n                        console.error('Invalid data matrix format:', rawValue);\n                        continue;\n                    }\n                    partno = match[1];\n                    // serialno = match[3];\n                }\n\n                if (partno === this.partno) {\n                    return; // already detected\n                }\n\n                this.partno = partno;\n                this.videoElement.pause();\n                const notif = window.notyf.success({\n                    message: `Detected ${format} with part number <b>${partno}</b>. Click to use it.`,\n                    duration: 0,\n                    dismissible: true,\n                });\n                notif.on(<NotyfEvent>'click', () => {\n                    window.dispatchEvent(new CustomEvent('close-barcode-modal', { detail: partno }));\n                    window.notyf.dismissAll();\n                    this.partno = null;\n                });\n                notif.on(<NotyfEvent>'dismiss', () => {\n                    this.partno = null;\n                    this.videoElement.play();\n                });\n            }\n        } catch (err) {\n            console.error(err);\n        }\n    }\n\n    static styles = css`\n        .partno-overlay {font-size: 1.75rem;\n            background-color: rgba(0, 0, 0, .5);\n            color: #fff;\n            text-align: center;\n            place-self: center;\n            padding: 1rem;}`;\n\n    public render(): TemplateResult {\n        return html`\n            <link rel=\"stylesheet\" href=\"${window.baseUrl}/assets/dist/app.css\">\n            <div class=\"columns is-mobile\">\n                <div class=\"column is-half is-relative\">\n                    ${super.render()}\n                    ${this.enabled && this.partno ? html`\n                    <div class=\"is-overlay partno-overlay\">\n                        Found part number<br>${this.partno}\n                    </div>\n                    ` : ''}\n                </div>\n                <div class=\"column is-half\">\n                    ${this.enabled && this.cameraCapabilities ? html`\n                        ${'zoom' in this.cameraCapabilities ? html`\n                            <label for=\"zoomSlider\">Zoom</label>\n                            <input type=\"range\" id=\"zoomSlider\" min=\"${this.cameraCapabilities.zoom.min}\" max=\"${this.cameraCapabilities.zoom.max}\" step=\"${this.cameraCapabilities.zoom.step}\" value=\"1\" @input=\"${this.handleZoomChange.bind(this)}\">` : ''}\n            ` : ''}\n                </div>\n            </div>\n        `;\n    }\n}\n\nif (!customElements.get('barcode-scanner')) {\n    customElements.define('barcode-scanner', BarcodeScanner);\n}\n", "import { query, property } from 'lit/decorators.js';\nimport { css, html, TemplateResult } from 'lit';\nimport { NotyfEvent } from 'notyf';\nimport { CameraUser } from './cameraUser';\n\nexport class NumberScanner extends CameraUser {\n    @query('#captureCanvas')\n    protected captureCanvas: HTMLCanvasElement;\n\n    @query('#captureFrame')\n    protected captureFrame: HTMLElement;\n\n    @property({ type: String })\n    public partno: string | null = null;\n\n    protected startVideo(): void {\n        console.log('Starting video');\n        console.log(this.enabled);\n        this.videoElement.srcObject = this.stream;\n        import('https://cdnjs.cloudflare.com/ajax/libs/tesseract.js/6.0.0/tesseract.esm.min.js')\n            .then(Tesseract => {\n                window.tesseract = Tesseract.default;\n            })\n            .catch(error => {\n                console.error('Error loading Tesseract.js:', error);\n            });\n    }\n\n    protected async capture(): Promise<void> {\n        if (!window.tesseract) {\n            alert('Tesseract.js not loaded');\n        }\n        this.captureFrame.classList.add('is-loading');\n        // Draw the video frame to the canvas\n        const context = this.captureCanvas.getContext('2d');\n        context.drawImage(this.videoElement, 0, 0, this.captureCanvas.width, this.captureCanvas.height);\n        const imageData = this.captureCanvas.toDataURL('image/png');\n\n        // Initialize Tesseract.js\n        const worker = await window.tesseract.createWorker('eng');\n        await worker.setParameters({\n            tessedit_char_whitelist: '0123456789',\n        });\n        const { data: { text } } = await worker.recognize(imageData);\n        console.log(text);\n        const results = text.split('\\n').filter(Boolean);\n        for (const partno of results) {\n            if (partno.length < 5) {\n                continue;\n            }\n            this.partno = partno;\n            this.videoElement.pause();\n            const notif = window.notyf.success({\n                message: `Detected ${partno}. Click to use it.`,\n                duration: 0,\n                dismissible: true,\n            });\n            notif.on(<NotyfEvent>'click', () => {\n                window.dispatchEvent(new CustomEvent('close-ocr-modal', { detail: partno }));\n                window.notyf.dismissAll();\n            });\n            notif.on(<NotyfEvent>'dismiss', () => {\n                this.partno = null;\n                this.videoElement.play();\n            });\n        }\n\n        await worker.terminate();\n        this.captureFrame.classList.remove('is-loading');\n    }\n\n    static styles = css`\n        .partno-overlay {font-size: 1.75rem;\n            background-color: rgba(0, 0, 0, .5);\n            color: #fff;\n            text-align: center;\n            place-self: center;\n            padding: 1rem;}\n        #captureCanvas {width: 100%; height: 10rem;}`;\n\n    public render(): TemplateResult {\n        return html`\n            <link rel=\"stylesheet\" href=\"${window.baseUrl}/assets/dist/app.css\">\n            <div class=\"columns is-mobile\">\n                <div class=\"column is-half is-relative\">\n                    ${super.render()}\n                    ${this.enabled && this.partno ? html`\n                    <div class=\"is-overlay partno-overlay\">\n                        Found part number<br>${this.partno}\n                    </div>\n                    ` : ''}\n                </div>\n                <div class=\"column is-half\">\n                    ${this.enabled && this.cameraCapabilities ? html`\n                        ${'zoom' in this.cameraCapabilities ? html`\n                            <label for=\"zoomSlider\">Zoom</label>\n                            <input type=\"range\" id=\"zoomSlider\" min=\"${this.cameraCapabilities.zoom.min}\" max=\"${this.cameraCapabilities.zoom.max}\" step=\"${this.cameraCapabilities.zoom.step}\" value=\"1\" @input=\"${this.handleZoomChange.bind(this)}\">` : ''}\n                        <button class=\"button\" id=\"captureFrame\" @click=\"${this.capture}\">Capture</button>\n                        <canvas id=\"captureCanvas\"></canvas>\n                        ` : ''}\n                </div>\n            </div>\n        `;\n    }\n}\n\nif (!customElements.get('number-scanner')) {\n    customElements.define('number-scanner', NumberScanner);\n}\n"],
  "mappings": "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A;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAA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",
  "names": ["require_update_npm_full", "__commonJSMin", "exports", "module", "$bu_", "s", "ua", "n", "r", "ignore", "reason", "pattern", "pats", "VV", "i", "av", "v", "esr", "releases_per_year", "engines", "vstr", "x", "v1", "v2", "diff", "h", "pr", "$buo", "op", "test", "b", "ll", "required_min", "vs", "required", "check_show", "bb", "hours", "$buo_show", "burl", "busprintf", "args", "data", "k", "t", "ta", "custom_text", "tar", "div", "style", "style2", "updatebutton", "e", "hm", "ignorebutton", "i18n", "id", "subs", "segments", "category", "section", "flatKey", "val", "node", "seg", "text", "counter", "Notification", "_Notification", "container", "message", "severity", "append", "dismissInterval", "id", "html", "div", "e", "closestButton", "extended", "Message", "severity", "rawMsg", "msgSubstitution", "_error", "msg", "i18n", "Notification", "InvalidInputError", "errors", "params", "FormLogger", "_FormLogger", "response", "log", "reason", "_log", "Api", "partial", "data", "error", "AdminResourceApi", "url", "resource", "api", "lang", "params", "filter", "data", "BulkApi", "url", "resource", "api", "data", "token", "t", "conditionField", "conditionId", "tokenPrefix", "AbstractToken", "_AbstractToken", "_token", "json", "JWTToken", "CSRFToken", "identifier", "tokenData", "e", "_JWTToken", "expires", "token", "type", "_CSRFToken", "name", "FilemanagerApi", "url", "api", "disk", "data", "csrfToken", "apiResponse", "CSRFToken", "folderName", "currentPath", "startPath", "folderPath", "relativePath", "sanitizedPath", "part", "path", "hiddenExtensions", "allowDelete", "params", "queryString", "endpoint", "filename", "filenameNew", "filepath", "folder", "FormApi", "url", "api", "form", "data", "MetaApi", "url", "api", "ResourceApi", "url", "resource", "api", "lang", "filter", "id", "field", "value", "data", "type", "UploadApi", "url", "api", "input", "path", "_retried", "data", "csrfToken", "jwtToken", "apiResponse", "CSRFToken", "UserApi", "url", "_api", "data", "Api", "username", "usernameOrEmail", "otp", "credential", "id", "WebAuthnApi", "url", "api", "credential", "username", "assertion", "WidgetGroupApi", "url", "_pwgid", "api", "data", "lang", "ApiClientFactory", "api", "Api", "url", "tempUrl", "MetaApi", "UploadApi", "resource", "ResourceApi", "AdminResourceApi", "FormApi", "pwgid", "WidgetGroupApi", "BulkApi", "UserApi", "WebAuthnApi", "FilemanagerApi", "Api", "_Api", "response", "Message", "ex", "force", "csrfToken", "CSRFToken", "apiResponse", "ApiClientFactory", "error", "token", "JWTToken", "headers", "method", "url", "data", "forceLang", "language", "FormLogger", "contentType", "text", "InvalidInputError", "lang", "import_browser_update", "__assign", "t", "s", "n", "p", "NotyfNotification", "options", "eventType", "cb", "callbacks", "event", "_this", "NotyfArrayEvent", "NotyfArray", "elem", "index", "num", "fn", "NotyfEvent", "DEFAULT_OPTIONS", "NotyfView", "docFrag", "notyfContainer", "_a", "notification", "type", "renderedNotification", "node", "handleEvent", "card", "className", "idx", "align", "justify", "style", "iconOpts", "notificationElem", "ripple", "wrapper", "message", "mainColor", "iconContainer", "tagName", "className_1", "text", "_b", "color", "iconElement", "dismissWrapper", "dismissButton", "a11yContainer", "el", "transitions", "Notyf", "opts", "types", "target", "payload", "defaultOpts", "config", "props", "prop", "duration", "incomingTypes", "finalDefaultTypes", "defaultType", "userTypeIdx", "userType", "functions_exports", "__export", "loadScript", "webPSupported", "url", "resolve", "reject", "script", "blob", "r", "divLink", "header", "burger", "metanav", "oldMetanavPos", "navbarmain", "toggleNav", "dropdownTrigger", "e", "link", "OnePager", "link", "e", "id", "activeFound", "reversedPageOffsets", "page", "el", "rect", "scrollTop", "ele", "a", "onePager", "url", "done", "js", "loadScript", "global", "globalThis", "supportsAdoptingStyleSheets", "ShadowRoot", "ShadyCSS", "nativeShadow", "Document", "prototype", "CSSStyleSheet", "constructionToken", "Symbol", "cssTagCache", "WeakMap", "CSSResult", "cssText", "strings", "safeToken", "this", "Error", "_strings", "styleSheet", "_styleSheet", "cacheable", "length", "get", "replaceSync", "set", "toString", "unsafeCSS", "value", "String", "css", "values", "reduce", "acc", "v", "idx", "adoptStyles", "renderRoot", "styles", "adoptedStyleSheets", "map", "s", "style", "document", "createElement", "nonce", "setAttribute", "textContent", "appendChild", "getCompatibleStyle", "sheet", "rule", "cssRules", "is", "defineProperty", "getOwnPropertyDescriptor", "getOwnPropertyNames", "getOwnPropertySymbols", "getPrototypeOf", "Object", "global", "globalThis", "trustedTypes", "emptyStringForBooleanAttribute", "emptyScript", "polyfillSupport", "reactiveElementPolyfillSupport", "JSCompiler_renameProperty", "prop", "_obj", "defaultConverter", "value", "type", "Boolean", "Array", "JSON", "stringify", "fromValue", "Number", "parse", "e", "notEqual", "old", "defaultPropertyDeclaration", "attribute", "String", "converter", "reflect", "useDefault", "hasChanged", "Symbol", "metadata", "litPropertyMetadata", "WeakMap", "ReactiveElement", "HTMLElement", "initializer", "this", "__prepare", "_initializers", "push", "observedAttributes", "finalize", "__attributeToPropertyMap", "keys", "name", "options", "state", "prototype", "hasOwnProperty", "create", "wrapped", "elementProperties", "set", "noAccessor", "key", "descriptor", "getPropertyDescriptor", "get", "v", "oldValue", "call", "requestUpdate", "configurable", "enumerable", "superCtor", "Map", "finalized", "props", "properties", "propKeys", "p", "createProperty", "attr", "__attributeNameForProperty", "elementStyles", "finalizeStyles", "styles", "isArray", "Set", "flat", "Infinity", "reverse", "s", "unshift", "getCompatibleStyle", "toLowerCase", "constructor", "super", "__instanceProperties", "isUpdatePending", "hasUpdated", "__reflectingProperty", "__initialize", "__updatePromise", "Promise", "res", "enableUpdating", "_$changedProperties", "__saveInstanceProperties", "forEach", "i", "controller", "__controllers", "add", "renderRoot", "isConnected", "hostConnected", "delete", "instanceProperties", "size", "createRenderRoot", "shadowRoot", "attachShadow", "shadowRootOptions", "adoptStyles", "connectedCallback", "c", "_requestedUpdate", "disconnectedCallback", "hostDisconnected", "_old", "_$attributeToProperty", "attrValue", "toAttribute", "removeAttribute", "setAttribute", "ctor", "propName", "getPropertyOptions", "fromAttribute", "convertedValue", "__defaultValues", "useNewValue", "newValue", "hasAttribute", "_$changeProperty", "__enqueueUpdate", "initializeValue", "has", "__reflectingProperties", "reject", "result", "scheduleUpdate", "performUpdate", "shouldUpdate", "changedProperties", "willUpdate", "hostUpdate", "update", "__markUpdated", "_$didUpdate", "_changedProperties", "hostUpdated", "firstUpdated", "updated", "updateComplete", "getUpdateComplete", "__propertyToAttribute", "mode", "reactiveElementVersions", "global", "globalThis", "wrap", "node", "trustedTypes", "policy", "createPolicy", "createHTML", "s", "boundAttributeSuffix", "marker", "Math", "random", "toFixed", "slice", "markerMatch", "nodeMarker", "d", "document", "createMarker", "createComment", "isPrimitive", "value", "isArray", "Array", "isIterable", "Symbol", "iterator", "SPACE_CHAR", "textEndRegex", "commentEndRegex", "comment2EndRegex", "tagEndRegex", "RegExp", "singleQuoteAttrEndRegex", "doubleQuoteAttrEndRegex", "rawTextElement", "tag", "type", "strings", "values", "_$litType$", "html", "svg", "mathml", "noChange", "for", "nothing", "templateCache", "WeakMap", "walker", "createTreeWalker", "trustFromTemplateString", "tsa", "stringFromTSA", "hasOwnProperty", "Error", "getTemplateHtml", "l", "length", "attrNames", "rawTextEndRegex", "regex", "i", "attrName", "match", "attrNameEndIndex", "lastIndex", "exec", "test", "end", "startsWith", "push", "Template", "constructor", "options", "this", "parts", "nodeIndex", "attrNameIndex", "partCount", "el", "createElement", "currentNode", "content", "wrapper", "firstChild", "replaceWith", "childNodes", "nextNode", "nodeType", "hasAttributes", "name", "getAttributeNames", "endsWith", "realName", "statics", "getAttribute", "split", "m", "index", "ctor", "PropertyPart", "BooleanAttributePart", "EventPart", "AttributePart", "removeAttribute", "tagName", "textContent", "emptyScript", "append", "data", "indexOf", "_options", "innerHTML", "resolveDirective", "part", "parent", "attributeIndex", "currentDirective", "__directives", "__directive", "nextDirectiveConstructor", "_$initialize", "_$resolve", "TemplateInstance", "template", "_$parts", "_$disconnectableChildren", "_$template", "_$parent", "parentNode", "_$isConnected", "fragment", "creationScope", "importNode", "partIndex", "templatePart", "ChildPart", "nextSibling", "ElementPart", "_$setValue", "__isConnected", "startNode", "endNode", "_$committedValue", "_$startNode", "_$endNode", "isConnected", "directiveParent", "_$clear", "_commitText", "_commitTemplateResult", "_commitNode", "_commitIterable", "insertBefore", "_insert", "createTextNode", "result", "_$getTemplate", "h", "_update", "instance", "_clone", "get", "set", "itemParts", "itemPart", "item", "start", "from", "_$notifyConnectionChanged", "n", "remove", "element", "fill", "String", "valueIndex", "noCommit", "change", "v", "_commitValue", "setAttribute", "toggleAttribute", "super", "newListener", "oldListener", "shouldRemoveListener", "capture", "once", "passive", "shouldAddListener", "removeEventListener", "addEventListener", "event", "call", "host", "handleEvent", "polyfillSupport", "global", "litHtmlPolyfillSupport", "Template", "ChildPart", "litHtmlVersions", "push", "render", "value", "container", "options", "partOwnerNode", "renderBefore", "part", "endNode", "insertBefore", "createMarker", "_$setValue", "global", "globalThis", "LitElement", "ReactiveElement", "constructor", "this", "renderOptions", "host", "__childPart", "createRenderRoot", "renderRoot", "super", "renderBefore", "firstChild", "changedProperties", "value", "render", "hasUpdated", "isConnected", "update", "connectedCallback", "setConnected", "disconnectedCallback", "noChange", "litElementHydrateSupport", "polyfillSupport", "litElementPolyfillSupport", "global", "litElementVersions", "push", "BaseComponent", "i", "value", "oldValue", "element", "id", "Accordion", "BaseComponent", "accordion", "title", "content", "linkTrigger", "event", "element", "target", "Modal", "BaseComponent", "modal", "trigger", "event", "_event", "e", "_e", "touchstartX", "touchendX", "closeButton", "mouseDownOnBackdrop", "slider", "slide", "isObject", "obj", "extend", "target", "src", "noExtend", "key", "ssrDocument", "getDocument", "doc", "ssrWindow", "callback", "id", "getWindow", "win", "classesToTokens", "classes", "c", "deleteProps", "obj", "object", "key", "nextTick", "callback", "delay", "now", "getComputedStyle", "el", "window", "getWindow", "style", "getTranslate", "axis", "matrix", "curTransform", "transformMatrix", "curStyle", "a", "isObject", "o", "isNode", "node", "extend", "args", "to", "i", "nextSource", "keysArray", "nextIndex", "len", "nextKey", "desc", "setCSSProperty", "varName", "varValue", "animateCSSModeScroll", "swiper", "targetPosition", "side", "startPosition", "startTime", "time", "duration", "dir", "isOutOfBound", "current", "target", "animate", "progress", "easeProgress", "currentPosition", "elementChildren", "element", "selector", "window", "getWindow", "children", "el", "elementIsChildOfSlot", "slot", "elementsQueue", "elementToCheck", "elementIsChildOf", "parent", "isChild", "showWarning", "text", "createElement", "tag", "classes", "classesToTokens", "elementOffset", "document", "getDocument", "box", "body", "clientTop", "clientLeft", "scrollTop", "scrollLeft", "elementPrevAll", "prevEls", "prev", "elementNextAll", "nextEls", "next", "elementStyle", "prop", "elementIndex", "child", "i", "elementParents", "parents", "elementOuterSize", "el", "size", "includeMargins", "window", "getWindow", "makeElementsArray", "e", "setInnerHTML", "el", "html", "s", "support", "calcSupport", "window", "getWindow", "document", "getDocument", "getSupport", "deviceCached", "calcDevice", "userAgent", "platform", "ua", "device", "screenWidth", "screenHeight", "android", "ipad", "ipod", "iphone", "windows", "macos", "iPadScreens", "getDevice", "overrides", "browser", "calcBrowser", "needPerspectiveFix", "isSafari", "major", "minor", "num", "isWebView", "isSafariBrowser", "need3dFix", "getBrowser", "Resize", "swiper", "on", "emit", "observer", "animationFrame", "resizeHandler", "createObserver", "entries", "width", "height", "newWidth", "newHeight", "contentBoxSize", "contentRect", "target", "removeObserver", "orientationChangeHandler", "Observer", "extendParams", "observers", "attach", "options", "ObserverFunc", "mutations", "observerUpdate", "init", "containerParents", "elementParents", "i", "destroy", "eventsEmitter", "events", "handler", "priority", "self", "method", "event", "onceHandler", "args", "index", "eventHandler", "data", "context", "updateSize", "el", "elementStyle", "updateSlides", "getDirectionPropertyValue", "node", "label", "params", "wrapperEl", "slidesEl", "rtl", "wrongRTL", "isVirtual", "previousSlidesLength", "slides", "elementChildren", "slidesLength", "snapGrid", "slidesGrid", "slidesSizesGrid", "offsetBefore", "offsetAfter", "previousSnapGridLength", "previousSlidesGridLength", "swiperSize", "spaceBetween", "slidePosition", "prevSlideSize", "slideEl", "setCSSProperty", "gridEnabled", "slideSize", "shouldResetSlideSize", "key", "slide", "slideStyles", "currentTransform", "currentWebKitTransform", "elementOuterSize", "paddingLeft", "paddingRight", "marginLeft", "marginRight", "boxSizing", "clientWidth", "offsetWidth", "isFractionalSlidesPerView", "shouldSnapToSlideEdge", "lastAllowedSnapIndex", "minVisibleSlides", "accumulatedSize", "newSlidesGrid", "slidesGridItem", "size", "groups", "groupSize", "_", "slideIndex", "allSlidesSize", "slideSizeValue", "maxSnap", "snap", "allSlidesOffset", "snapIndex", "addToSnapGrid", "addToSlidesGrid", "v", "backFaceHiddenClass", "hasClassBackfaceClassAdded", "updateAutoHeight", "speed", "activeSlides", "getSlideByIndex", "updateSlidesOffset", "minusOffset", "toggleSlideClasses$1", "condition", "className", "updateSlidesProgress", "translate", "offsetCenter", "slideOffset", "slideProgress", "originalSlideProgress", "slideBefore", "slideAfter", "isFullyVisible", "isVisible", "updateProgress", "multiplier", "translatesDiff", "progress", "isBeginning", "isEnd", "progressLoop", "wasBeginning", "wasEnd", "isBeginningRounded", "isEndRounded", "firstSlideIndex", "lastSlideIndex", "firstSlideTranslate", "lastSlideTranslate", "translateMax", "translateAbs", "toggleSlideClasses", "updateSlidesClasses", "activeIndex", "getFilteredSlide", "selector", "activeSlide", "prevSlide", "nextSlide", "elementNextAll", "elementPrevAll", "processLazyPreloader", "imageEl", "slideSelector", "lazyEl", "unlazy", "preload", "amount", "len", "slidesPerView", "activeColumn", "preloadColumns", "slideIndexLastInView", "realIndex", "getActiveIndexByTranslate", "updateActiveIndex", "newActiveIndex", "previousIndex", "previousRealIndex", "previousSnapIndex", "getVirtualRealIndex", "aIndex", "skip", "firstSlideInColumn", "activeSlideIndex", "updateClickedSlide", "path", "pathEl", "slideFound", "update", "getSwiperTranslate", "axis", "currentTranslate", "getTranslate", "setTranslate", "byController", "x", "y", "z", "newProgress", "minTranslate", "maxTranslate", "translateTo", "runCallbacks", "translateBounds", "internal", "newTranslate", "isH", "animateCSSModeScroll", "e", "setTransition", "duration", "transitionEmit", "direction", "step", "dir", "transitionStart", "transitionEnd", "transition", "slideTo", "initial", "enabled", "normalizedTranslate", "normalizedGrid", "normalizedGridNext", "t", "slideToLoop", "newIndex", "targetSlideIndex", "cols", "centeredSlides", "slidesOffsetBefore", "slidesOffsetAfter", "bothDirections", "needLoopFix", "slideNext", "animating", "perGroup", "increment", "slidePrev", "rtlTranslate", "normalize", "val", "normalizedSnapGrid", "isFreeMode", "prevSnap", "prevSnapIndex", "prevIndex", "lastIndex", "slideReset", "slideToClosest", "threshold", "currentSnap", "nextSnap", "slideToClickedSlide", "slideToIndex", "isGrid", "nextTick", "loopCreate", "slideRealIndex", "initSlides", "clearBlankSlides", "slidesPerGroup", "shouldFillGroup", "shouldFillGrid", "addBlankSlides", "amountOfSlides", "createElement", "slidesToAdd", "showWarning", "loopFix", "byMousewheel", "allowSlidePrev", "allowSlideNext", "initialSlide", "loopedSlides", "prependSlidesIndexes", "appendSlidesIndexes", "isInitialOverflow", "isNext", "isPrev", "slidesPrepended", "slidesAppended", "activeColIndexWithShift", "colIndexToPrepend", "currentSlideTranslate", "diff", "shift", "loopParams", "c", "loopDestroy", "newSlidesOrder", "loop", "setGrabCursor", "moving", "unsetGrabCursor", "grabCursor", "closestElement", "base", "__closestFrom", "found", "preventEdgeSwipe", "startX", "edgeSwipeDetection", "edgeSwipeThreshold", "onTouchStart", "touches", "targetEl", "elementIsChildOf", "swipingClassHasValue", "eventPath", "noSwipingSelector", "isTargetShadow", "startY", "now", "preventDefault", "shouldPreventDefault", "onTouchMove", "targetTouch", "pageX", "pageY", "diffX", "diffY", "touchAngle", "touchesDiff", "prevTouchesDirection", "isLoop", "allowLoopFix", "evt", "loopFixed", "disableParentSwiper", "resistanceRatio", "onTouchEnd", "touchEndTime", "timeDiff", "pathTree", "currentPos", "swipeToLast", "stopIndex", "rewindFirstIndex", "rewindLastIndex", "ratio", "onResize", "isVirtualLoop", "onClick", "onScroll", "onLoad", "onDocumentTouchStart", "capture", "domMethod", "swiperMethod", "attachEvents", "detachEvents", "events$1", "isGridEnabled", "setBreakpoint", "initialized", "breakpoints", "breakpointsBase", "breakpointContainer", "breakpoint", "breakpointParams", "wasMultiRow", "isMultiRow", "wasGrabCursor", "isGrabCursor", "wasEnabled", "prop", "wasModuleEnabled", "isModuleEnabled", "directionChanged", "needsReLoop", "wasLoop", "extend", "isEnabled", "hasLoop", "getBreakpoint", "containerEl", "currentHeight", "points", "point", "minRatio", "a", "b", "value", "prepareClasses", "prefix", "resultClasses", "item", "classNames", "addClasses", "suffixes", "removeClasses", "classes", "checkOverflow", "wasLocked", "lastSlideRightEdge", "checkOverflow$1", "defaults", "moduleExtendParams", "allModulesParams", "obj", "moduleParamName", "moduleParams", "prototypes", "extendedDefaults", "Swiper", "_Swiper", "swipers", "newParams", "mod", "swiperParams", "eventName", "property", "elementIndex", "min", "current", "cls", "updates", "view", "exact", "spv", "breakLoop", "translateValue", "translated", "newDirection", "needUpdate", "currentDirection", "element", "getWrapperSelector", "lazyElements", "deleteInstance", "cleanStyles", "deleteProps", "newDefaults", "modules", "module", "m", "prototypeGroup", "protoMethod", "Virtual", "swiper", "extendParams", "on", "emit", "cssModeTimeout", "document", "getDocument", "tempDOM", "renderSlide", "slide", "index", "params", "slideEl", "setInnerHTML", "createElement", "update", "force", "beforeInit", "forceActiveIndex", "slidesPerGroup", "centeredSlides", "slidesPerView", "isLoop", "initialSlide", "addSlidesBefore", "addSlidesAfter", "slidesPerViewAutoSlideSize", "previousFrom", "previousTo", "slides", "previousSlidesGrid", "previousOffset", "activeIndex", "offsetProp", "slidesPerViewNumeric", "swiperSize", "slidesAfter", "slidesBefore", "from", "to", "offset", "onRendered", "slidesToRender", "i", "prependIndexes", "appendIndexes", "getSlideIndex", "slideIndex", "el", "loopFrom", "loopTo", "a", "b", "elementChildren", "appendSlide", "prependSlide", "newActiveIndex", "numberOfNewSlides", "cache", "newCache", "cachedIndex", "cachedEl", "cachedElIndex", "removeSlide", "slidesIndexes", "key", "removeAllSlides", "domSlidesAssigned", "setCSSProperty", "Keyboard", "swiper", "extendParams", "on", "emit", "document", "getDocument", "window", "getWindow", "handle", "event", "rtl", "e", "kc", "pageUpDown", "isPageUp", "isPageDown", "isArrowLeft", "isArrowRight", "isArrowUp", "isArrowDown", "inView", "elementParents", "el", "swiperWidth", "swiperHeight", "windowWidth", "windowHeight", "swiperOffset", "elementOffset", "swiperCoord", "i", "point", "speed", "enable", "disable", "Mousewheel", "swiper", "extendParams", "on", "emit", "window", "getWindow", "timeout", "lastScrollTime", "now", "lastEventBeforeSnap", "recentWheelEvents", "normalize", "e", "sX", "sY", "pX", "pY", "handleMouseEnter", "handleMouseLeave", "animateSlider", "newEvent", "releaseScroll", "params", "handle", "event", "disableParentSwiper", "targetEl", "targetElContainsTarget", "delta", "rtlFactor", "data", "positions", "prevEvent", "ignoreWheelEvents", "position", "wasBeginning", "wasEnd", "firstEvent", "snapToThreshold", "nextTick", "events", "method", "enable", "disable", "createElementIfNotDefined", "swiper", "originalParams", "params", "checkProps", "key", "element", "elementChildren", "createElement", "arrowSvg", "Navigation", "swiper", "extendParams", "on", "emit", "getEl", "el", "res", "toggleEl", "disabled", "params", "makeElementsArray", "subEl", "update", "nextEl", "prevEl", "onPrevClick", "e", "onNextClick", "init", "createElementIfNotDefined", "initButton", "dir", "tempEl", "setInnerHTML", "destroy", "destroyButton", "disable", "_s", "targetEl", "targetIsButton", "path", "pathEl", "isHidden", "enable", "classesToSelector", "classes", "Pagination", "swiper", "extendParams", "on", "emit", "pfx", "number", "bulletSize", "dynamicBulletIndex", "isPaginationDisabled", "setSideBullets", "bulletEl", "position", "bulletActiveClass", "getMoveDirection", "prevIndex", "nextIndex", "length", "onBulletClick", "e", "classesToSelector", "index", "elementIndex", "moveDirection", "update", "rtl", "params", "el", "makeElementsArray", "current", "previousIndex", "slidesLength", "total", "bullets", "firstIndex", "lastIndex", "midIndex", "elementOuterSize", "subEl", "classesToRemove", "suffix", "s", "bullet", "bulletIndex", "firstDisplayedBullet", "lastDisplayedBullet", "i", "dynamicBulletsLength", "bulletsOffset", "offsetProp", "subElIndex", "fractionEl", "totalEl", "progressbarDirection", "scale", "scaleX", "scaleY", "progressEl", "setInnerHTML", "render", "paginationHTML", "numberOfBullets", "init", "createElementIfNotDefined", "elementParents", "destroy", "disable", "_s", "targetEl", "isHidden", "enable", "A11y", "swiper", "extendParams", "on", "liveRegion", "preventFocusHandler", "focusTargetSlideEl", "visibilityChangedTimestamp", "notify", "message", "notification", "setInnerHTML", "getRandomNumber", "size", "randomChar", "makeElFocusable", "el", "makeElementsArray", "subEl", "makeElNotFocusable", "addElRole", "role", "addElRoleDescription", "description", "addElLabel", "label", "addElId", "id", "addElLive", "live", "disableEl", "enableEl", "onEnterOrSpaceKey", "e", "params", "targetEl", "classesToSelector", "prevEls", "updateNavigation", "nextEl", "prevEl", "hasPagination", "hasClickablePagination", "updatePagination", "bulletEl", "elementIndex", "initNavEl", "wrapperId", "handlePointerDown", "handlePointerUp", "onVisibilityChange", "handleFocus", "slideEl", "isVirtual", "isActive", "isVisible", "initSlides", "slidesLength", "index", "slideIndex", "ariaLabelMessage", "init", "containerEl", "wrapperEl", "getDocument", "destroy", "createElement", "Autoplay", "swiper", "extendParams", "on", "emit", "params", "timeout", "raf", "autoplayDelayTotal", "autoplayDelayCurrent", "autoplayTimeLeft", "autoplayStartTime", "wasPaused", "isTouched", "pausedByTouch", "touchStartTimeout", "pausedByInteraction", "pausedByPointerEnter", "onTransitionEnd", "e", "resume", "calcTimeLeft", "timeLeft", "getSlideDelay", "activeSlideEl", "slideEl", "getTotalDelay", "totalDelay", "currentSlideDelay", "run", "delayForce", "delay", "speed", "proceed", "start", "stop", "pause", "internal", "reset", "onVisibilityChange", "document", "getDocument", "onPointerEnter", "onPointerLeave", "attachMouseEvents", "detachMouseEvents", "attachDocumentEvents", "detachDocumentEvents", "_s", "appendSlide", "slides", "swiper", "params", "slidesEl", "appendElement", "slideEl", "tempDOM", "setInnerHTML", "i", "prependSlide", "activeIndex", "newActiveIndex", "prependElement", "addSlide", "index", "activeIndexBuffer", "baseLength", "slidesBuffer", "currentSlide", "removeSlide", "slidesIndexes", "indexToRemove", "removeAllSlides", "Manipulation", "Slider", "_Slider", "BaseComponent", "Swiper", "slide", "linkTrigger", "event", "_event", "Pagination", "Keyboard", "Virtual", "Navigation", "Autoplay", "Manipulation", "A11y", "Mousewheel", "i18n", "slider", "bullets", "i", "label", "activeSlide", "element", "Tabs", "BaseComponent", "title", "tab", "linkTrigger", "event", "_event", "target", "first", "last", "content", "prevActiveTitle", "prevActiveContent", "WidgetException", "widget", "reason", "severity", "Widget", "$node", "args", "error", "severity", "subs", "errorMsg", "i18n", "severityClass", "WidgetException", "classesToRemove", "action", "fn", "WidgetLike", "Widget", "$node", "args", "cat", "field", "value", "key", "WidgetToggler", "_WidgetToggler", "index", "w", "showIfs", "showIf", "fakeWidget", "o", "observable", "_index", "val", "isSpecial", "jsonVal", "show", "mightBeNumber", "required", "condition", "orConditions", "c", "_i", "op", "widgetIndexRegistry", "WidgetIndex", "_WidgetIndex", "WidgetToggler", "widget", "widgets", "promises", "w", "x", "result", "values", "e", "errors", "validations", "v", "error", "lang", "severity", "formTabs", "t", "failures", "name", "fallback", "foundWidget", "Form", "resource", "langs", "apiClient", "widgets", "args", "WidgetIndex", "controls", "control", "formNode", "widgetIndexRegistry", "widgetsUnfiltered", "node", "data", "widgetClass", "widgetInstance", "w", "lang", "values", "modelPromise", "modelApiResponse", "resourceId", "langData", "apiResponse", "ApiClientFactory", "error", "createEventPromise", "el", "bubbles", "resolve", "event", "widget", "i", "e", "FrontendForm", "Form", "formName", "apiClient", "widgets", "formId", "ApiClientFactory", "_formNode", "parentForm", "forms", "values", "CheckboxWidget", "Widget", "valid", "v", "action", "fn", "DateWidget", "_DateWidget", "Widget", "value", "date", "time", "withSeconds", "valid", "DropdownWidget", "Widget", "valid", "FileUploadWidget", "Widget", "$node", "args", "ApiClientFactory", "extension", "$filenameNode", "$deleteButton", "e", "preview", "uploadResponse", "data", "apiResponse", "fileExtension", "mimeType", "type", "subtype", "FloatWidget", "Widget", "valid", "value", "HiddenWidget", "Widget", "HiddenIntegerWidget", "value", "num", "NumberWidget", "Widget", "valid", "value", "min", "max", "RadioButtonWidget", "Widget", "valid", "$checkedRadio", "boolean", "val", "action", "fn", "TextWidget", "Widget", "valid", "Form", "i", "TextWidget", "DateWidget", "HiddenWidget", "HiddenIntegerWidget", "FileUploadWidget", "CheckboxWidget", "RadioButtonWidget", "DropdownWidget", "NumberWidget", "FloatWidget", "Api", "ApiClientFactory", "FrontendForm", "force", "error", "i18n", "$firstHelpText", "e", "response", "data", "message", "body", "color", "dismissInterval", "id", "$deleteButton", "customElement", "tagName", "classOrTarget", "context", "addInitializer", "customElements", "define", "defaultPropertyDeclaration", "attribute", "type", "String", "converter", "defaultConverter", "reflect", "hasChanged", "notEqual", "standardProperty", "options", "target", "context", "kind", "metadata", "properties", "globalThis", "litPropertyMetadata", "get", "set", "Map", "Object", "create", "wrapped", "name", "v", "oldValue", "call", "this", "requestUpdate", "_$changeProperty", "value", "Error", "property", "protoOrTarget", "nameOrContext", "proto", "hasOwnProperty", "constructor", "createProperty", "getOwnPropertyDescriptor", "undefined", "state", "options", "property", "attribute", "desc", "obj", "name", "descriptor", "configurable", "enumerable", "Reflect", "decorate", "Object", "defineProperty", "query", "selector", "cache", "protoOrTarget", "nameOrContext", "descriptor", "doQuery", "el", "renderRoot", "querySelector", "get", "set", "key", "Symbol", "this", "v", "desc", "result", "call", "hasUpdated", "_arrayLikeToArray", "r", "e", "n", "_arrayWithHoles", "_arrayWithoutHoles", "_classCallCheck", "a", "_defineProperties", "o", "_toPropertyKey", "_createClass", "_createForOfIteratorHelper", "_unsupportedIterableToArray", "F", "u", "_defineProperty", "_iterableToArray", "r", "_iterableToArrayLimit", "l", "e", "n", "i", "u", "a", "f", "_nonIterableRest", "_nonIterableSpread", "ownKeys", "o", "_objectSpread2", "_defineProperty", "_slicedToArray", "r", "e", "_arrayWithHoles", "_iterableToArrayLimit", "_unsupportedIterableToArray", "_nonIterableRest", "_toConsumableArray", "_arrayWithoutHoles", "_iterableToArray", "_nonIterableSpread", "_toPrimitive", "t", "_toPropertyKey", "i", "_typeof", "o", "_arrayLikeToArray", "noop", "_WINDOW", "_DOCUMENT", "_MUTATION_OBSERVER", "_PERFORMANCE", "_ref", "_ref$userAgent", "userAgent", "WINDOW", "DOCUMENT", "MUTATION_OBSERVER", "PERFORMANCE", "IS_BROWSER", "IS_DOM", "IS_IE", "_cl", "Z", "$", "rl", "il", "dl", "u", "l", "h", "t", "g", "n", "m", "p", "s", "y", "w", "x", "e", "b", "c", "o", "I", "a", "r", "v", "i", "F", "d", "S", "A", "P", "j", "B", "N", "D", "k", "T", "C", "W", "R", "K", "L", "U", "J", "_", "M", "E", "G", "V", "z", "O", "Y", "q", "xl", "cl", "_defineProperty", "Al", "zl", "Ql", "$l", "at", "rt", "it", "H", "f", "Q", "X", "ht", "mt", "ct", "It", "St", "_jl", "l$1", "n$1", "g$1", "a$1", "m$1", "t$1", "p$1", "y$1", "b$1", "w$1", "e$1", "x$1", "c$1", "I$1", "o$1", "v$1", "F$1", "r$1", "S$1", "i$1", "d$1", "A$1", "f$1", "P$1", "u$1", "j$1", "B$1", "N$1", "D$1", "k$1", "C$1", "T$1", "L$1", "W$1", "R$1", "K$1", "U$1", "J$1", "_$1", "M$1", "E$1", "G$1", "O$1", "V$1", "z$1", "Y$1", "$$1", "q$1", "H$1", "Q$1", "jl$1", "X$1", "h$1", "Z$1", "ll$1", "ws", "ra", "al$1", "da", "tl", "ha", "el$1", "sl$1", "ol$1", "rl$1", "ga", "_toConsumableArray", "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", "PSEUDO_ELEMENTS", "PRODUCTION", "familyProxy", "obj", "target", "prop", "_PREFIX_TO_STYLE", "_objectSpread2", "PREFIX_TO_STYLE", "_STYLE_TO_PREFIX", "STYLE_TO_PREFIX", "_PREFIX_TO_LONG_STYLE", "PREFIX_TO_LONG_STYLE", "_LONG_STYLE_TO_PREFIX", "LONG_STYLE_TO_PREFIX", "ICON_SELECTION_SYNTAX_PATTERN", "LAYERS_TEXT_CLASSNAME", "FONT_FAMILY_PATTERN", "_FONT_WEIGHT_TO_PREFIX", "FONT_WEIGHT_TO_PREFIX", "ATTRIBUTES_WATCHED_FOR_MUTATION", "DUOTONE_CLASSES", "RESERVED_CLASSES", "initial", "getAttrConfig", "attr", "element", "coerce", "val", "attrs", "_ref2", "_slicedToArray", "key", "_default", "_config", "config", "_onChangeCb", "cb", "onChange", "d$2", "meaninglessTransform", "insertCss", "css", "style", "headChildren", "beforeChild", "child", "tagName", "idPool", "nextUniqueId", "size", "id", "toArray", "array", "classArray", "node", "htmlEscape", "str", "joinAttributes", "attributes", "acc", "attributeName", "joinStyles", "styles", "styleName", "transformIsMeaningful", "transform", "transformForSvg", "containerWidth", "iconWidth", "outer", "innerTranslate", "innerScale", "innerRotate", "inner", "path", "transformForCss", "_ref2$width", "width", "_ref2$height", "height", "_ref2$startCentered", "startCentered", "baseStyles", "dcp", "drc", "fp", "rc", "dPatt", "customPropPatt", "rPatt", "_cssInserted", "ensureCss", "InjectCSS", "w$2", "namespace", "functions", "_listener", "loaded", "fn", "domready", "toHtml", "abstractNodes", "tag", "_abstractNodes$attrib", "_abstractNodes$childr", "children", "iconFromMapping", "mapping", "prefix", "iconName", "bindInternal4", "func", "thisContext", "reduce", "subject", "initialValue", "keys", "length", "iterator", "result", "toHex", "unicode", "normalizeIcons", "icons", "icon", "expanded", "defineIcons", "params", "_params$skipHooks", "skipHooks", "normalized", "styles", "namespace", "shims", "FAMILY_NAMES", "PREFIX_TO_LONG_STYLE", "PREFIXES_FOR_FAMILY", "acc", "familyId", "_defaultUsablePrefix", "_byUnicode", "_byLigature", "_byOldName", "_byOldUnicode", "_byAlias", "isReserved", "name", "RESERVED_CLASSES", "getIconName", "cssPrefix", "cls", "parts", "prefix", "iconName", "build", "lookup", "reducer", "reduce", "o$$1", "style", "icon", "aliases", "a$$1", "alias", "hasRegular", "config", "shimLookups", "shim", "maybeNameMaybeUnicode", "getCanonicalPrefix", "onChange", "c$$1", "byUnicode", "unicode", "byLigature", "ligature", "byAlias", "byOldName", "byOldUnicode", "oldUnicode", "newUnicode", "getDefaultUsablePrefix", "emptyCanonicalIcon", "getFamilyId", "values", "family", "u", "famProps", "xl", "v$$1", "styleOrPrefix", "params", "_params$family", "PREFIX_TO_STYLE", "l", "STYLE_TO_PREFIX", "defined", "result", "moveNonFaClassesToRest", "classNames", "rest", "sortedUniqueValues", "arr", "value", "index", "_faCombinedClasses", "ha", "at", "getCanonicalIcon", "_params$skipLookups", "skipLookups", "givenPrefix", "faStyleOrFamilyClasses", "nonStyleOrFamilyClasses", "faStyles", "dl", "_faStyles", "_slicedToArray", "_faStyles$", "styleFromValues", "canonical", "_objectSpread2", "getDefaultCanonicalPrefix", "applyShimAndAlias", "aliasIconName", "newCanonicalFamilies", "newCanonicalStyles", "da", "key", "prefixOptions", "_prefixOptions$givenP", "_prefixOptions$styles", "_prefixOptions$config", "config$$1", "isDuotoneFamily", "valuesHasDuotone", "defaultFamilyIsDuotone", "canonicalPrefixIsDuotone", "validPrefix", "defaultPrefix", "Ql", "Library", "_classCallCheck", "_createClass", "_this", "_len", "definitions", "_key", "additions", "defineIcons", "longPrefix", "definition", "normalized", "_normalized$key", "_plugins", "_hooks", "providers", "defaultProviderKeys", "registerPlugins", "nextPlugins", "_ref", "obj", "k", "plugin", "mixout", "tk", "_typeof", "sk", "hooks", "hook", "chainHooks", "accumulator", "args", "hookFns", "hookFn", "callHooks", "_len2", "_key2", "callProvided", "findIconDefinition", "iconLookup", "iconFromMapping", "library", "noAuto", "dom", "IS_DOM", "autoReplaceSvgRoot", "domready", "autoReplace", "parse", "_icon", "ICON_SELECTION_SYNTAX_PATTERN", "canonicalIcon", "_prefix", "api", "toHtml", "_params$autoReplaceSv", "DOCUMENT", "domVariants", "val", "abstractCreator", "a", "container", "asIcon", "children", "main", "mask", "attributes", "transform", "transformIsMeaningful", "width", "height", "offset", "joinStyles", "asSymbol", "symbol", "id", "isLabeled", "labels", "label", "makeInlineSvgAbstract", "_params$icons", "maskId", "extra", "_params$watchable", "watchable", "attrClass", "c", "content", "DATA_FA_I2SVG", "_ref2", "makeLayersTextAbstract", "_params$watchable2", "transformForCss", "styleString", "makeLayersCounterAbstract", "styles$1", "asFoundIcon", "_icon$slice", "_icon$slice2", "vectorData", "element", "DUOTONE_CLASSES", "missingIconResolutionMixin", "maybeNotifyMissing", "PRODUCTION", "findIcon", "resolve", "reject", "noop$1", "p$2", "PERFORMANCE", "preamble", "begin", "end", "perf", "noop$2", "isWatched", "node", "i2svg", "hasPrefixAndIcon", "DATA_PREFIX", "DATA_ICON", "hasBeenReplaced", "getMutator", "mutators", "mutator", "createElementNS", "tag", "createElement", "convertSVG", "abstractObj", "_params$ceFn", "ceFn", "child", "nodeAsComment", "comment", "mutation", "abstract", "classArray", "forSvg", "splitClasses", "newInnerHTML", "performOperationSync", "op", "perform", "mutations", "callback", "callbackFunction", "frame", "MUTATION_APPROACH_ASYNC", "WINDOW", "mark", "disabled", "disableObservation", "enableObservation", "mo", "observe", "options", "MUTATION_OBSERVER", "_options$treeCallback", "treeCallback", "_options$nodeCallback", "nodeCallback", "_options$pseudoElemen", "pseudoElementsCallback", "_options$observeMutat", "observeMutationsRoot", "objects", "toArray", "mutationRecord", "ATTRIBUTES_WATCHED_FOR_MUTATION", "_getCanonicalIcon", "disconnect", "styleParser", "prop", "classParser", "existingPrefix", "existingIconName", "innerText", "toHex", "attributesParser", "extraAttributes", "attr", "blankMeta", "meaninglessTransform", "parseMeta", "parser", "_classParser", "extraClasses", "pluginMeta", "extraStyles", "styles$2", "generateMutation", "nodeMeta", "LAYERS_TEXT_CLASSNAME", "getKnownPrefixes", "_toConsumableArray", "onTree", "root", "htmlClassList", "hclAdd", "suffix", "HTML_CLASS_I2SVG_BASE_CLASS", "hclRemove", "prefixes", "prefixesDomQuery", "p$$1", "candidates", "e$$1", "resolvedMutations", "onNode", "resolveIcons", "next", "maybeIconDefinition", "iconDefinition", "render", "_params$transform", "_params$symbol", "_params$mask", "_params$maskId", "_params$classes", "classes", "_params$attributes", "_params$styles", "ReplaceElements", "providers$$1", "_params$node", "_params$callback", "_ref3", "nextChild", "Layers", "assembler", "LayersCounter", "_params$title", "title", "LayersText", "IS_IE", "computedFontSize", "boundingClientRect", "CLEAN_CONTENT_PATTERN", "SECONDARY_UNICODE_RANGE", "_FONT_FAMILY_WEIGHT_TO_PREFIX", "zl", "wa", "ct", "FONT_FAMILY_WEIGHT_TO_PREFIX", "FONT_FAMILY_WEIGHT_FALLBACK", "fontFamily", "weights", "hexValueFromContent", "cleaned", "isSecondaryLayer", "hasStylisticSet", "codePoint", "isPrependTen", "isDoubled", "getPrefix", "fontWeight", "fontFamilySanitized", "fontWeightInteger", "fontWeightSanitized", "replaceForPosition", "position", "pendingAttribute", "DATA_FA_PSEUDO_ELEMENT_PENDING", "alreadyProcessedPseudoElement", "DATA_FA_PSEUDO_ELEMENT", "fontFamilyMatch", "FONT_FAMILY_PATTERN", "_content", "hexValue", "isV4", "isSecondary", "iconIdentifier", "iconName4", "meta", "replace", "processable", "TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS", "hasPseudoElement", "selector", "PSEUDO_ELEMENTS", "pseudoSelector", "parseCSSRuleForPseudos", "selectorText", "selectorSet", "selectors", "s$$1", "_iterator", "_createForOfIteratorHelper", "_step", "selectorWithoutPseudo", "err", "searchPseudoElements", "useAsNodeList", "nodeList", "_iterator2", "_step2", "stylesheet", "_iterator3", "_step3", "rule", "parsedSelectors", "_iterator4", "_step4", "cleanSelectors", "operations", "PseudoElements", "_unwatched", "MutationObserver$1", "parseTransformString", "transformString", "n", "first", "PowerTransforms", "containerWidth", "iconWidth", "outer", "innerTranslate", "innerScale", "innerRotate", "inner", "path", "ALL_SPACE", "fillBlack", "force", "deGroup", "Masks", "maskData", "i", "explicitMaskId", "mainWidth", "mainPath", "maskWidth", "maskPath", "trans", "transformForSvg", "maskRect", "maskInnerGroupChildrenMixin", "maskInnerGroup", "maskOuterGroup", "nextUniqueId", "clipId", "maskTag", "defs", "MissingIconIndicator", "reduceMotion", "gChildren", "FILL", "ANIMATION_BASE", "OPACITY_ANIMATE", "dot", "SvgSymbols", "symbolData", "plugins", "InjectCSS", "noAuto$1", "config$1", "library$1", "dom$1", "parse$1", "findIconDefinition$1", "toHtml$1", "layer", "text", "counter", "faRotate", "faSyncAlt", "faMinus", "faFileExcel", "faCaretRight", "faUpRightFromSquare", "faExternalLinkAlt", "faBarsStaggered", "faStream", "faBarsStaggered", "faFileZipper", "faMagnifyingGlass", "faSearch", "faBan", "faKey", "faSortUp", "faEye", "faCaretLeft", "faTrash", "faChevronUp", "faTableColumns", "faColumns", "faRightToBracket", "faSignInAlt", "faFileArrowUp", "faFileUpload", "faPenToSquare", "faEdit", "faPaperPlane", "faTable", "faFlask", "faDatabase", "faLocationArrow", "faRepeat", "faBold", "faHeartPulse", "faHeartbeat", "faSquareCheck", "faCheckSquare", "faICursor", "faFileImage", "faImage", "faPencil", "faPencilAlt", "faDiagramProject", "faProjectDiagram", "faTerminal", "faMask", "faCirclePlus", "faPlusCircle", "faFolder", "faCircleExclamation", "faExclamationCircle", "faLink", "faGear", "faCog", "faCircleQuestion", "faQuestionCircle", "faRightFromBracket", "faSignOutAlt", "faFile", "faPlay", "faPuzzlePiece", "faTrashCan", "faTrashAlt", "faUpDownLeftRight", "faArrowsAlt", "faEraser", "faItalic", "faCheck", "faFingerprint", "faMobileScreenButton", "faMobileAlt", "faHouse", "faHome", "faSpinner", "faTurnUp", "faLevelUpAlt", "faSort", "faServer", "faUser", "faFileAudio", "faShapes", "faLockOpen", "faFileLines", "faFileAlt", "faCircleCheck", "faCheckCircle", "faList", "faFilePowerpoint", "faChevronDown", "faAngleDown", "faFileCsv", "faHourglassHalf", "faGripVertical", "faStar", "faTriangleExclamation", "faExclamationTriangle", "faLock", "faFolderPlus", "faHeading", "faDownload", "faFilePdf", "faShieldHalved", "faShieldAlt", "faGlobe", "faUpload", "faShuffle", "faRandom", "faPlus", "faCopy", "faArrowRotateRight", "faRedo", "faArrowRotateRight", "faFileCode", "faEyeSlash", "faFileWord", "faBolt", "faArrowRotateLeft", "faUndo", "faArrowRotateLeft", "faSquare", "faAngleUp", "faFileExport", "faListUl", "faCircleInfo", "faInfoCircle", "faFileVideo", "faSortDown", "icons", "faAngleDown", "faAngleUp", "faArrowsAlt", "faBan", "faBold", "faBolt", "faCaretLeft", "faCaretRight", "faCheck", "faCheckCircle", "faCheckSquare", "faChevronDown", "faChevronUp", "faCog", "faColumns", "faCopy", "faDatabase", "faDownload", "faEdit", "faEraser", "faExclamationCircle", "faExclamationTriangle", "faExternalLinkAlt", "faEye", "faEyeSlash", "faFile", "faFileAlt", "faFileAudio", "faFileCode", "faFileCsv", "faFileExcel", "faFileExport", "faFileImage", "faFilePdf", "faFilePowerpoint", "faFileUpload", "faFileVideo", "faFileWord", "faFileZipper", "faFingerprint", "faFlask", "faFolder", "faFolderPlus", "faGlobe", "faGripVertical", "faHeading", "faHeartbeat", "faHome", "faHourglassHalf", "faICursor", "faImage", "faInfoCircle", "faItalic", "faKey", "faLevelUpAlt", "faLink", "faList", "faListUl", "faLocationArrow", "faLock", "faLockOpen", "faMagnifyingGlass", "faMask", "faMinus", "faMobileAlt", "faPaperPlane", "faPencil", "faPencilAlt", "faPlay", "faPlus", "faPlusCircle", "faProjectDiagram", "faPuzzlePiece", "faQuestionCircle", "faRandom", "faRedo", "faRepeat", "faRotate", "faSearch", "faServer", "faShapes", "faShieldAlt", "faSignInAlt", "faSignOutAlt", "faSort", "faSortDown", "faSortUp", "faSpinner", "faSquare", "faSquareCheck", "faStar", "faStream", "faSyncAlt", "faTable", "faTerminal", "faTrash", "faTrashAlt", "faUndo", "faUpRightFromSquare", "faUpload", "faUser", "library$1", "config$1", "watchComponent", "customEl", "dom$1", "WidgetComponent", "i", "r", "dom$1", "_changedProperties", "watchComponent", "name", "old", "value", "entries", "entry", "b", "error", "severity", "subs", "errorMsg", "i18n", "severityClass", "WidgetException", "classesToRemove", "action", "fn", "__decorateClass", "n", "OtpDigitsWidget", "WidgetComponent", "i", "_changedProperties", "propName", "digitsRange", "b", "e", "el", "nextEl", "previousEl", "previousInput", "data", "char", "input", "value", "inputs", "__decorateClass", "n", "$4040acfd8584338d$export$2e2bcd8739ae039", "event", "fn", "args", "callbacks", "callback", "eventName", "detail", "params", "evt", "i", "$b5cb5f094c2e1764$export$2e2bcd8739ae039", "$4ca367182776f80b$var$defaultOptions", "files", "xhr", "chunk", "file", "done", "messageElement", "child", "$3ed269f2f0fb224b$export$2e2bcd8739ae039", "span", "width", "height", "resizeMethod", "info", "srcRatio", "trgRatio", "node", "removeFileEvent", "e", "removeLink", "dataUrl", "thumbnailElement", "message", "progress", "bytesSent", "$4ca367182776f80b$export$2e2bcd8739ae039", "_$3ed269f2f0fb224b$export$2e2bcd8739ae039", "el", "options", "fallback", "left", "elementOptions", "status", "setupHiddenFileInput", "containsFiles", "noPropagation", "efct", "clickableElement", "totalUploadProgress", "totalBytesSent", "totalBytes", "n", "cleanFile", "existingFallback", "form", "fieldsString", "fields", "getFallback", "elements", "tagName", "elementListeners", "result", "listener", "element", "size", "selectedSize", "selectedUnit", "units", "unit", "cutoff", "items", "hasDirectoryItems", "addFiles", "item", "entry", "rehydratedFiles", "remainingFiles", "finishFile", "index", "reader", "rehydratedFile", "$3ed269f2f0fb224b$var$__guard__", "x", "directory", "path", "dirReader", "errorHandler", "error", "$3ed269f2f0fb224b$var$__guardMethod__", "o", "entryCount", "readEntries", "entries", "$3ed269f2f0fb224b$var$without", "cancelIfNecessary", "canvas", "resizeMimeType", "resizedDataURL", "$3ed269f2f0fb224b$var$restoreExif", "fixOrientation", "ignoreExif", "fileReader", "mockFile", "imageUrl", "crossOrigin", "resizeThumbnail", "onDone", "thumbnail", "img", "loadExif", "orientation", "resizeInfo", "ctx", "$3ed269f2f0fb224b$var$drawImageIOSFix", "dataURL", "$3ed269f2f0fb224b$var$removeExif", "parallelUploads", "processingLength", "queuedFiles", "groupedFiles", "groupedFile", "option", "transformedFiles", "transformedFile", "handleNextChunk", "chunkIndex", "start", "end", "dataBlock", "response", "allFinished", "parallelCount", "dataBlocks", "method", "url", "progressObj", "headers", "headerName", "headerValue", "formData", "additionalParams", "key", "value", "doneCounter", "input", "inputName", "inputType", "responseText", "c", "$3ed269f2f0fb224b$var$camelize", "dropzones", "checkElements", "dropzone", "userAgent", "vendor", "platform", "isIOS", "isSafari", "dataURI", "byteString", "mimeString", "ab", "ia", "asc", "list", "rejectedItem", "str", "match", "string", "div", "container", "name", "els", "question", "accepted", "rejected", "acceptedFiles", "mimeType", "baseMimeType", "validType", "$3ed269f2f0fb224b$var$detectVerticalSquash", "ih", "data", "sy", "ey", "py", "ratio", "sx", "sw", "sh", "dx", "dy", "dw", "dh", "vertSquashRatio", "origFileBase64", "marker", "origFile", "head", "filteredFile", "length", "endPoint", "segment", "resizedFileBase64", "exifData", "resizedFile", "splitPoint", "transform", "obj", "methodName", "_defineProperty", "r", "_toPropertyKey", "_extends", "n", "e", "ownKeys", "r", "o", "_objectSpread2", "_defineProperty", "_objectWithoutProperties", "t", "i", "_objectWithoutPropertiesLoose", "n", "e", "_toPrimitive", "t", "r", "e", "_toPropertyKey", "i", "_typeof", "o", "version", "userAgent", "pattern", "IE11OrLess", "Edge", "FireFox", "Safari", "IOS", "ChromeForAndroid", "captureMode", "on", "el", "event", "fn", "off", "matches", "selector", "getParentOrHost", "closest", "ctx", "includeCTX", "R_SPACE", "toggleClass", "name", "state", "className", "css", "prop", "val", "style", "matrix", "selfOnly", "appliedTransforms", "transform", "matrixFn", "find", "tagName", "iterator", "list", "i", "n", "getWindowScrollingElement", "scrollingElement", "getRect", "relativeToContainingBlock", "relativeToNonStaticParent", "undoScale", "container", "elRect", "top", "left", "bottom", "right", "height", "width", "containerRect", "elMatrix", "scaleX", "scaleY", "isScrolledPast", "elSide", "parentSide", "parent", "getParentAutoScrollElement", "elSideVal", "parentSideVal", "visible", "getChild", "childNum", "options", "includeDragEl", "currentChild", "children", "Sortable", "lastChild", "last", "index", "getRelativeScrollOffset", "offsetLeft", "offsetTop", "winScroller", "indexOfObject", "arr", "obj", "key", "includeSelf", "elem", "gotSelf", "elemCSS", "extend", "dst", "src", "isRectEqual", "rect1", "rect2", "_throttleTimeout", "throttle", "callback", "ms", "args", "_this", "cancelThrottle", "scrollBy", "x", "y", "clone", "Polymer", "$", "getChildContainingRectFromElement", "container", "options", "ghostEl", "rect", "child", "_rect$left", "_rect$top", "_rect$right", "_rect$bottom", "closest", "childRect", "getRect", "expando", "AnimationStateManager", "animationStates", "animationCallbackId", "children", "css", "Sortable", "fromRect", "_objectSpread2", "childMatrix", "matrix", "state", "target", "indexOfObject", "callback", "_this", "animating", "animationTime", "time", "toRect", "prevFromRect", "prevToRect", "animatingRect", "targetMatrix", "isRectEqual", "calculateRealTime", "currentRect", "duration", "elMatrix", "scaleX", "scaleY", "translateX", "translateY", "repaint", "plugins", "defaults", "PluginManager", "plugin", "option", "p", "eventName", "sortable", "evt", "eventNameGlobal", "el", "pluginName", "initialized", "_extends", "modified", "name", "eventProperties", "value", "modifiedValue", "dispatchEvent", "_ref", "rootEl", "targetEl", "cloneEl", "toEl", "fromEl", "oldIndex", "newIndex", "oldDraggableIndex", "newDraggableIndex", "originalEvent", "putSortable", "extraEventProperties", "onName", "IE11OrLess", "Edge", "allEventProperties", "_excluded", "pluginEvent", "data", "_objectWithoutProperties", "dragEl", "parentEl", "nextEl", "lastDownEl", "cloneHidden", "moved", "_hideGhostForTarget", "_unhideGhostForTarget", "_dispatchEvent", "info", "activeGroup", "awaitingDragStarted", "ignoreNextClick", "sortables", "tapEvt", "touchEvt", "lastDx", "lastDy", "tapDistanceLeft", "tapDistanceTop", "lastTarget", "lastDirection", "pastFirstInvertThresh", "isCircumstantialInvert", "targetMoveDistance", "ghostRelativeParent", "ghostRelativeParentInitialScroll", "_silent", "savedInputChecked", "documentExists", "PositionGhostAbsolutely", "IOS", "CSSFloatProperty", "supportDraggable", "ChromeForAndroid", "supportCssPointerEvents", "_detectDirection", "elCSS", "elWidth", "child1", "getChild", "child2", "firstChildCSS", "secondChildCSS", "firstChildWidth", "secondChildWidth", "touchingSideChild2", "_dragElInRowColumn", "dragRect", "targetRect", "vertical", "dragElS1Opp", "dragElS2Opp", "dragElOppLength", "targetS1Opp", "targetS2Opp", "targetOppLength", "_detectNearestEmptySortable", "x", "y", "ret", "threshold", "lastChild", "insideHorizontally", "insideVertically", "_prepareGroup", "toFn", "pull", "to", "from", "sameGroup", "otherGroup", "group", "originalGroup", "_typeof", "nearestEmptyInsertDetectEvent", "nearest", "event", "i", "_checkOutsideTargetEl", "dataTransfer", "Safari", "fn", "on", "preventOnFilter", "type", "touch", "originalTarget", "filter", "_saveInputCheckedState", "index", "criteria", "ownerDocument", "dragStartFn", "FireFox", "toggleClass", "find", "_disableDraggable", "e", "off", "_nextTick", "fallback", "parent", "inserted", "getParentOrHost", "fallbackTolerance", "fallbackOffset", "ghostMatrix", "relativeScrollOffset", "getRelativeScrollOffset", "dx", "dy", "cssMatrix", "getWindowScrollingElement", "clone", "revert", "activeSortable", "isOwner", "canSort", "fromSortable", "completedFired", "dragOverEvent", "extra", "completed", "after", "_onMove", "changed", "capture", "insertion", "elLastChild", "_ghostIsLast", "_ghostIsFirst", "firstChild", "direction", "targetBeforeFirstSwap", "differentLevel", "differentRowCol", "side1", "scrolledPastTop", "isScrolledPast", "scrollBefore", "_getSwapDirection", "sibling", "dragIndex", "nextSibling", "moveVector", "_unsilent", "scrollBy", "_cancelNextTick", "checkEl", "_globalDragOver", "order", "n", "_generateId", "useAnimation", "items", "id", "store", "selector", "willInsertAfter", "onMoveFn", "retVal", "firstElRect", "childContainingRect", "spacer", "lastElRect", "swapThreshold", "invertedSwapThreshold", "invertSwap", "isLastTarget", "mouseOnAxis", "targetLength", "targetS1", "targetS2", "invert", "_getInsertDirection", "str", "sum", "root", "inputs", "idx", "extend", "throttle", "element", "_len", "_key", "version", "autoScrolls", "scrollEl", "scrollRootEl", "scrolling", "lastAutoScrollX", "lastAutoScrollY", "touchEvt$1", "pointerElemChangedInterval", "AutoScrollPlugin", "AutoScroll", "_ref2", "clearPointerElemChangedInterval", "clearAutoScrolls", "cancelThrottle", "elem", "autoScroll", "ogElemScroller", "getParentAutoScrollElement", "newElem", "isFallback", "sens", "speed", "winScroller", "scrollThisInstance", "scrollCustomFn", "layersOut", "currentParent", "top", "bottom", "left", "right", "width", "height", "canScrollX", "canScrollY", "scrollWidth", "scrollHeight", "scrollPosX", "scrollPosY", "vx", "vy", "scrollOffsetY", "scrollOffsetX", "drop", "dispatchSortableEvent", "hideGhostForTarget", "unhideGhostForTarget", "toSortable", "Revert", "_ref3", "Remove", "_ref4", "parentSortable", "Sortable", "AutoScrollPlugin", "Remove", "Revert", "sortable_esm_default", "ImageUploader", "WidgetComponent", "dropzoneElement", "url", "dropzone", "$3ed269f2f0fb224b$export$2e2bcd8739ae039", "file", "Api", "request", "response", "errorMessage", "message", "span", "fileElement", "fileData", "adId", "sortable", "sortable_esm_default", "sortableInstance", "b", "__decorateClass", "n", "t", "AvatarUploader", "i", "e", "file", "body", "res", "json", "img", "err", "b", "__decorateClass", "n", "r", "t", "CategoryWizard", "navScript", "selected", "selectedNode", "startParent", "value", "id", "parentId", "path", "cursor", "guard", "current", "selectedId", "heading", "level", "childId", "childNode", "summary", "label", "node", "crumbs", "text", "targetId", "isCurrent", "button", "sep", "isBranch", "option", "title", "chevron", "CameraUser", "i", "value", "r", "newConstraints", "videoTrack", "err", "newStream", "track", "settings", "event", "b", "__decorateClass", "n", "e", "BarcodeScanner", "CameraUser", "formats", "barcodes", "format", "rawValue", "partno", "match", "notif", "err", "i", "b", "__decorateClass", "n", "NumberScanner", "CameraUser", "Tesseract", "error", "imageData", "worker", "text", "results", "partno", "notif", "i", "b", "__decorateClass", "e", "n", "i18n", "functions_exports", "Api", "browserUpdate", "Notyf"]
}
