From: <Saved by Blink>
Snapshot-Content-Location: https://it-notes.dragas.net/2024/06/10/proxmox-vs-freebsd-which-virtualization-host-performs-better/
Subject: Proxmox vs FreeBSD: Which Virtualization Host Performs Better? - IT Notes - https://it-notes.dragas.net/
Date: Tue, 14 Jan 2025 22:51:24 +0100
MIME-Version: 1.0
Content-Type: multipart/related;
	type="text/html";
	boundary="----MultipartBoundary--gWmtkLL3aPLL9QvHLWg1Yif3XzwEYNRGNBhxAsKdsK----"


------MultipartBoundary--gWmtkLL3aPLL9QvHLWg1Yif3XzwEYNRGNBhxAsKdsK----
Content-Type: text/html
Content-ID: <frame-2BE56313F514A7C3D552981E893D33BA@mhtml.blink>
Content-Transfer-Encoding: quoted-printable
Content-Location: https://it-notes.dragas.net/2024/06/10/proxmox-vs-freebsd-which-virtualization-host-performs-better/

<!DOCTYPE html><html itemscope=3D"" itemtype=3D"http://schema.org/WebPage" =
lang=3D"en" data-theme=3D"dark"><head><meta http-equiv=3D"Content-Type" con=
tent=3D"text/html; charset=3DUTF-8"><link rel=3D"stylesheet" type=3D"text/c=
ss" href=3D"cid:css-b229ca40-2394-47f9-8c30-bded7f1341a4@mhtml.blink" /><me=
ta name=3D"viewport" content=3D"width=3Ddevice-width,initial-scale=3D1,maxi=
mum-scale=3D2"><meta name=3D"robots" content=3D"noodp"><title>Proxmox vs Fr=
eeBSD: Which Virtualization Host Performs Better? - IT Notes - https://it-n=
otes.dragas.net/</title><meta name=3D"author" content=3D"Stefano Marinelli"=
>
<meta name=3D"description" content=3D"Comparative tests show FreeBSD's virt=
ualization performance surpasses Proxmox, especially with NVMe drivers."><m=
eta name=3D"keywords" content=3D"freebsd,linux,proxmox,kvm,bhyve,hosting,fi=
lesystems,virtualization,zfs,debian,server"><meta itemprop=3D"name" content=
=3D"Proxmox vs FreeBSD: Which Virtualization Host Performs Better?"><meta i=
temprop=3D"description" content=3D"Comparative tests show FreeBSD's virtual=
ization performance surpasses Proxmox, especially with NVMe drivers."><meta=
 itemprop=3D"datePublished" content=3D"2024-06-10T05:53:45+00:00"><meta ite=
mprop=3D"dateModified" content=3D"2024-06-13T00:00:00+00:00"><meta itemprop=
=3D"wordCount" content=3D"3041"><meta itemprop=3D"image" content=3D"https:/=
/it-notes.dragas.net/featured/server_rack.webp"><meta itemprop=3D"keywords"=
 content=3D"Freebsd,Linux,Proxmox,Kvm,Bhyve,Hosting,Filesystems,Virtualizat=
ion,Zfs,Debian,Server"><meta property=3D"og:url" content=3D"https://it-note=
s.dragas.net/2024/06/10/proxmox-vs-freebsd-which-virtualization-host-perfor=
ms-better/"><meta property=3D"og:site_name" content=3D"IT Notes"><meta prop=
erty=3D"og:title" content=3D"Proxmox vs FreeBSD: Which Virtualization Host =
Performs Better?"><meta property=3D"og:description" content=3D"Comparative =
tests show FreeBSD's virtualization performance surpasses Proxmox, especial=
ly with NVMe drivers."><meta property=3D"og:locale" content=3D"en"><meta pr=
operty=3D"og:type" content=3D"article"><meta property=3D"article:section" c=
ontent=3D"posts"><meta property=3D"article:published_time" content=3D"2024-=
06-10T05:53:45+00:00"><meta property=3D"article:modified_time" content=3D"2=
024-06-13T00:00:00+00:00"><meta property=3D"article:tag" content=3D"Freebsd=
"><meta property=3D"article:tag" content=3D"Linux"><meta property=3D"articl=
e:tag" content=3D"Proxmox"><meta property=3D"article:tag" content=3D"Kvm"><=
meta property=3D"article:tag" content=3D"Bhyve"><meta property=3D"article:t=
ag" content=3D"Hosting"><meta property=3D"og:image" content=3D"https://it-n=
otes.dragas.net/featured/server_rack.webp"><meta name=3D"twitter:card" cont=
ent=3D"summary_large_image"><meta name=3D"twitter:image" content=3D"https:/=
/it-notes.dragas.net/featured/server_rack.webp"><meta name=3D"twitter:title=
" content=3D"Proxmox vs FreeBSD: Which Virtualization Host Performs Better?=
"><meta name=3D"twitter:description" content=3D"Comparative tests show Free=
BSD's virtualization performance surpasses Proxmox, especially with NVMe dr=
ivers."><meta name=3D"twitter:site" content=3D"@stefanomarinell"><meta name=
=3D"twitter:creator" content=3D"@@stefanomarinell"><meta name=3D"applicatio=
n-name" content=3D"FixIt"><meta name=3D"apple-mobile-web-app-title" content=
=3D"FixIt"><meta name=3D"theme-color" data-light=3D"#f8f8f8" data-dark=3D"#=
252627" content=3D"#252627"><meta name=3D"msapplication-TileColor" content=
=3D"#da532c"><link rel=3D"shortcut icon" type=3D"image/x-icon" href=3D"http=
s://it-notes.dragas.net/favicon.ico"><link rel=3D"icon" type=3D"image/png" =
sizes=3D"32x32" href=3D"https://it-notes.dragas.net/favicon-32x32.png"><lin=
k rel=3D"icon" type=3D"image/png" sizes=3D"16x16" href=3D"https://it-notes.=
dragas.net/favicon-16x16.png"><link rel=3D"apple-touch-icon" sizes=3D"180x1=
80" href=3D"https://it-notes.dragas.net/apple-touch-icon.png"><link rel=3D"=
mask-icon" href=3D"https://it-notes.dragas.net/safari-pinned-tab.svg" color=
=3D"#5bbad5"><link rel=3D"canonical" type=3D"text/html" href=3D"https://it-=
notes.dragas.net/2024/06/10/proxmox-vs-freebsd-which-virtualization-host-pe=
rforms-better/" title=3D"Proxmox vs FreeBSD: Which Virtualization Host Perf=
orms Better? - IT Notes"><link rel=3D"prev" type=3D"text/html" href=3D"http=
s://it-notes.dragas.net/2024/06/04/freebsd-tips-and-tricks-creating-snapsho=
ts-with-ufs/" title=3D"FreeBSD Tips and Tricks: Creating Snapshots with UFS=
"><link rel=3D"next" type=3D"text/html" href=3D"https://it-notes.dragas.net=
/2024/06/16/freebsd-blocking-country-access/" title=3D"Blocking Access from=
 or to Specific Countries Using FreeBSD and pf"><link rel=3D"alternate" typ=
e=3D"text/markdown" href=3D"https://it-notes.dragas.net/2024/06/10/proxmox-=
vs-freebsd-which-virtualization-host-performs-better/index.md" title=3D"Pro=
xmox vs FreeBSD: Which Virtualization Host Performs Better? - IT Notes"><li=
nk rel=3D"stylesheet" href=3D"https://it-notes.dragas.net/css/style.min.180=
f49bb74aac7ee38959d0058e1b9126a18b0dad12d2f5e73019f770be5f9c4375ff8d6f84421=
986de0169782ed438ba297089c0e5c33ec7e01ac09e56f70da.css"><link rel=3D"styles=
heet" href=3D"https://it-notes.dragas.net/lib/fontawesome-free/all.min.cf78=
0ba5def29277f562835b0b3a9129ce2aca8afc81a294d6a9a7f824a1c5bb81bac00d23d4294=
6884606b7821642b12e17a2e92f424171446db2aea8b8340c.css" as=3D"style"><link r=
el=3D"stylesheet" href=3D"https://it-notes.dragas.net/lib/animate/animate.m=
in.738daa4d2c3fc0f677ff92c1cc3f81c397fb6d2176a31a2eeb011bf88fe5a9e68a579143=
21f32fbd1a7bef6cb88dc24b2ae1943a96c931d83f053979d1f25803.css" as=3D"style">=
<meta name=3D"google-site-verification" content=3D"XLCcpo9FS2GjVnk5j2vFGeVf=
z3cEbrRBn4YNQfX87FA"></head><body data-header-desktop=3D"sticky" data-heade=
r-mobile=3D"auto"><div role=3D"dialog" aria-live=3D"polite" aria-label=3D"c=
ookieconsent" aria-describedby=3D"cookieconsent:desc" class=3D"cc-window cc=
-banner cc-type-info cc-theme-edgeless cc-bottom cc-color-override-18314252=
4 cc-invisible" style=3D"display: none;"><!--googleoff: all--><span id=3D"c=
ookieconsent:desc" class=3D"cc-message">This website uses Cookies to improv=
e your experience. <a aria-label=3D"learn more about cookies" role=3D"butto=
n" tabindex=3D"0" class=3D"cc-link" href=3D"https://www.cookiesandyou.com/"=
 rel=3D"noopener noreferrer nofollow" target=3D"_blank">Learn more</a></spa=
n><div class=3D"cc-compliance"><a aria-label=3D"dismiss cookie message" rol=
e=3D"button" tabindex=3D"0" class=3D"cc-btn cc-dismiss">Got it!</a></div><!=
--googleon: all--></div><div class=3D"wrapper" data-page-style=3D"normal"><=
header class=3D"desktop animate__faster" id=3D"header-desktop"><div class=
=3D"header-wrapper"><div class=3D"header-title"><a href=3D"https://it-notes=
.dragas.net/" title=3D"IT Notes"><span class=3D"header-title-text">IT Notes=
</span></a><span class=3D"header-subtitle"></span></div><nav><ul class=3D"m=
enu"><li class=3D"menu-item has-children"><a class=3D"menu-link"><i class=
=3D"fa-solid fa-address-card fa-fw fa-sm" aria-hidden=3D"true"></i> About</=
a><i class=3D"dropdown-icon fa-solid fa-chevron-down" aria-hidden=3D"true">=
</i><ul class=3D"sub-menu" style=3D"min-width: 91px;"><li class=3D"menu-ite=
m"><a class=3D"menu-link" href=3D"https://it-notes.dragas.net/about-me/"><i=
 class=3D"fa-solid fa-person fa-fw fa-sm" aria-hidden=3D"true"></i> About M=
e</a></li><li class=3D"menu-item"><a class=3D"menu-link" href=3D"https://it=
-notes.dragas.net/about-blog/"><i class=3D"fa-solid fa-blog fa-fw fa-sm" ar=
ia-hidden=3D"true"></i> About This Blog</a></li></ul></li><li class=3D"menu=
-item"><a class=3D"menu-link" href=3D"https://it-notes.dragas.net/posts/"><=
i class=3D"fa-solid fa-archive fa-fw fa-sm" aria-hidden=3D"true"></i> Archi=
ves</a></li><li class=3D"menu-item"><a class=3D"menu-link" href=3D"https://=
it-notes.dragas.net/categories/"><i class=3D"fa-solid fa-folder-tree fa-fw =
fa-sm" aria-hidden=3D"true"></i> Categories</a></li><li class=3D"menu-item"=
><a class=3D"menu-link" href=3D"https://it-notes.dragas.net/series/"><i cla=
ss=3D"fa-solid fa-tags fa-fw fa-sm" aria-hidden=3D"true"></i> Series</a></l=
i><li class=3D"menu-item"><a class=3D"menu-link" href=3D"https://it-notes.d=
ragas.net/under-the-hood/"><i class=3D"fa-solid fa-microchip fa-fw fa-sm" a=
ria-hidden=3D"true"></i> Under the Hood</a></li><li class=3D"menu-item"><a =
class=3D"menu-link" href=3D"https://it-notes.dragas.net/professional-servic=
es/"><i class=3D"fa-solid fa-screwdriver-wrench fa-fw fa-sm" aria-hidden=3D=
"true"></i> Professional Services</a></li><li class=3D"menu-item delimiter"=
></li><li class=3D"menu-item search" id=3D"search-desktop"><span class=3D"a=
lgolia-autocomplete" style=3D"position: relative; display: inline-block; di=
rection: ltr;"><input type=3D"text" placeholder=3D"Search titles or content=
s ..." id=3D"search-input-desktop" class=3D"input" autocomplete=3D"off" spe=
llcheck=3D"false" role=3D"combobox" aria-autocomplete=3D"list" aria-expande=
d=3D"false" aria-owns=3D"algolia-autocomplete-listbox-0" dir=3D"auto" style=
=3D"position: relative; vertical-align: top;"><pre aria-hidden=3D"true" sty=
le=3D"position: absolute; visibility: hidden; white-space: pre; font-family=
: system-ui, -apple-system, &quot;system-ui&quot;, &quot;PingFang SC&quot;,=
 &quot;Microsoft YaHei UI&quot;, &quot;Segoe UI&quot;, Roboto, Oxygen, Ubun=
tu, Cantarell, &quot;Fira Sans&quot;, &quot;Droid Sans&quot;, &quot;Helveti=
ca Neue&quot;, Helvetica, Arial, sans-serif; font-size: 16px; font-style: n=
ormal; font-variant: normal; font-weight: 400; word-spacing: 0px; letter-sp=
acing: normal; text-indent: 0px; text-rendering: auto; text-transform: none=
;"></pre></span>
<a class=3D"search-button search-toggle" id=3D"search-toggle-desktop" title=
=3D"Search"><i class=3D"fa-solid fa-search fa-fw" aria-hidden=3D"true"></i>
</a><a class=3D"search-button search-clear" id=3D"search-clear-desktop" tit=
le=3D"Clear"><i class=3D"fa-solid fa-times-circle fa-fw" aria-hidden=3D"tru=
e"></i>
</a><span class=3D"search-button search-loading" id=3D"search-loading-deskt=
op"><i class=3D"fa-solid fa-spinner fa-fw fa-spin" aria-hidden=3D"true"></i=
></span></li><li class=3D"menu-item theme-switch" title=3D"Switch Theme"><i=
 class=3D"fa-solid fa-adjust fa-fw" aria-hidden=3D"true"></i></li></ul></na=
v></div></header><header class=3D"mobile animate__faster animate__animated =
animate__fadeOutUp" id=3D"header-mobile"><div class=3D"header-container"><d=
iv class=3D"header-wrapper"><div class=3D"header-title"><a href=3D"https://=
it-notes.dragas.net/" title=3D"IT Notes"><span class=3D"header-title-text">=
IT Notes</span></a><span class=3D"header-subtitle"></span></div><div class=
=3D"menu-toggle" id=3D"menu-toggle-mobile"><span></span><span></span><span>=
</span></div></div><nav><ul class=3D"menu" id=3D"menu-mobile"><li class=3D"=
search-wrapper"><div class=3D"search mobile" id=3D"search-mobile"><input ty=
pe=3D"text" placeholder=3D"Search titles or contents ..." id=3D"search-inpu=
t-mobile">
<a class=3D"search-button search-toggle" id=3D"search-toggle-mobile" title=
=3D"Search"><i class=3D"fa-solid fa-search fa-fw" aria-hidden=3D"true"></i>
</a><a class=3D"search-button search-clear" id=3D"search-clear-mobile" titl=
e=3D"Clear"><i class=3D"fa-solid fa-times-circle fa-fw" aria-hidden=3D"true=
"></i>
</a><span class=3D"search-button search-loading" id=3D"search-loading-mobil=
e"><i class=3D"fa-solid fa-spinner fa-fw fa-spin" aria-hidden=3D"true"></i>=
</span></div><a class=3D"search-cancel" id=3D"search-cancel-mobile">Cancel<=
/a></li><li class=3D"menu-item"><span class=3D"nested-item"><a class=3D"men=
u-link"><i class=3D"fa-solid fa-address-card fa-fw fa-sm" aria-hidden=3D"tr=
ue"></i> About</a>
<i class=3D"dropdown-icon fa-solid fa-chevron-right" aria-hidden=3D"true"><=
/i></span><ul class=3D"sub-menu"><li class=3D"menu-item"><a class=3D"menu-l=
ink" href=3D"https://it-notes.dragas.net/about-me/"><i class=3D"fa-solid fa=
-person fa-fw fa-sm" aria-hidden=3D"true"></i> About Me</a></li><li class=
=3D"menu-item"><a class=3D"menu-link" href=3D"https://it-notes.dragas.net/a=
bout-blog/"><i class=3D"fa-solid fa-blog fa-fw fa-sm" aria-hidden=3D"true">=
</i> About This Blog</a></li></ul></li><li class=3D"menu-item"><a class=3D"=
menu-link" href=3D"https://it-notes.dragas.net/posts/"><i class=3D"fa-solid=
 fa-archive fa-fw fa-sm" aria-hidden=3D"true"></i> Archives</a></li><li cla=
ss=3D"menu-item"><a class=3D"menu-link" href=3D"https://it-notes.dragas.net=
/categories/"><i class=3D"fa-solid fa-folder-tree fa-fw fa-sm" aria-hidden=
=3D"true"></i> Categories</a></li><li class=3D"menu-item"><a class=3D"menu-=
link" href=3D"https://it-notes.dragas.net/series/"><i class=3D"fa-solid fa-=
tags fa-fw fa-sm" aria-hidden=3D"true"></i> Series</a></li><li class=3D"men=
u-item"><a class=3D"menu-link" href=3D"https://it-notes.dragas.net/under-th=
e-hood/"><i class=3D"fa-solid fa-microchip fa-fw fa-sm" aria-hidden=3D"true=
"></i> Under the Hood</a></li><li class=3D"menu-item"><a class=3D"menu-link=
" href=3D"https://it-notes.dragas.net/professional-services/"><i class=3D"f=
a-solid fa-screwdriver-wrench fa-fw fa-sm" aria-hidden=3D"true"></i> Profes=
sional Services</a></li><li class=3D"menu-item menu-system"><span class=3D"=
menu-system-item theme-switch" title=3D"Switch Theme"><i class=3D"fa-solid =
fa-adjust fa-fw" aria-hidden=3D"true"></i></span></li></ul></nav></div></he=
ader><div class=3D"search-dropdown desktop"><div id=3D"search-dropdown-desk=
top" style=3D"position: relative;"><span class=3D"dropdown-menu" role=3D"li=
stbox" id=3D"algolia-autocomplete-listbox-0" style=3D"position: absolute; z=
-index: 100; display: none; top: 0px; left: 0px; right: auto;"><div class=
=3D"dataset-search"></div></span></div></div><div class=3D"search-dropdown =
mobile"><div id=3D"search-dropdown-mobile"></div></div><meta name=3D"fedive=
rse:creator" content=3D"@stefano@bsd.cafe"><a rel=3D"me" href=3D"https://ma=
stodon.bsd.cafe/@stefano"></a><a rel=3D"me" href=3D"https://snac.it-notes.d=
ragas.net/itnotes"></a><main class=3D"container"><aside class=3D"aside-coll=
ection animate__animated animate__fadeIn animate__faster" aria-label=3D"Col=
lections"></aside><article class=3D"page single"><div class=3D"header"><h1 =
class=3D"single-title animate__animated animate__flipInX"><span>Proxmox vs =
FreeBSD: Which Virtualization Host Performs Better?</span></h1></div><div c=
lass=3D"post-meta"><div class=3D"post-meta-line"><span class=3D"post-author=
"><span class=3D"author"><img loading=3D"lazy" src=3D"https://it-notes.drag=
as.net/stesmall.webp" alt=3D"Stefano Marinelli" width=3D"20" height=3D"20" =
class=3D"avatar" title=3D"Stefano Marinelli" data-lazyloaded=3D"">&nbsp;Ste=
fano Marinelli</span></span><span class=3D"post-included-in">&nbsp;included=
 in <a href=3D"https://it-notes.dragas.net/categories/freebsd/" class=3D"po=
st-category" title=3D"Category - Freebsd"><i class=3D"fa-regular fa-folder =
fa-fw" aria-hidden=3D"true"></i> Freebsd</a>=E2=80=82<a href=3D"https://it-=
notes.dragas.net/categories/linux/" class=3D"post-category" title=3D"Catego=
ry - Linux"><i class=3D"fa-regular fa-folder fa-fw" aria-hidden=3D"true"></=
i> Linux</a>=E2=80=82<a href=3D"https://it-notes.dragas.net/categories/prox=
mox/" class=3D"post-category" title=3D"Category - Proxmox"><i class=3D"fa-r=
egular fa-folder fa-fw" aria-hidden=3D"true"></i> Proxmox</a>=E2=80=82<a hr=
ef=3D"https://it-notes.dragas.net/categories/kvm/" class=3D"post-category" =
title=3D"Category - Kvm"><i class=3D"fa-regular fa-folder fa-fw" aria-hidde=
n=3D"true"></i> Kvm</a>=E2=80=82<a href=3D"https://it-notes.dragas.net/cate=
gories/bhyve/" class=3D"post-category" title=3D"Category - Bhyve"><i class=
=3D"fa-regular fa-folder fa-fw" aria-hidden=3D"true"></i> Bhyve</a>=E2=80=
=82<a href=3D"https://it-notes.dragas.net/categories/hosting/" class=3D"pos=
t-category" title=3D"Category - Hosting"><i class=3D"fa-regular fa-folder f=
a-fw" aria-hidden=3D"true"></i> Hosting</a>=E2=80=82<a href=3D"https://it-n=
otes.dragas.net/categories/filesystems/" class=3D"post-category" title=3D"C=
ategory - Filesystems"><i class=3D"fa-regular fa-folder fa-fw" aria-hidden=
=3D"true"></i> Filesystems</a>=E2=80=82<a href=3D"https://it-notes.dragas.n=
et/categories/virtualization/" class=3D"post-category" title=3D"Category - =
Virtualization"><i class=3D"fa-regular fa-folder fa-fw" aria-hidden=3D"true=
"></i> Virtualization</a>=E2=80=82<a href=3D"https://it-notes.dragas.net/ca=
tegories/zfs/" class=3D"post-category" title=3D"Category - Zfs"><i class=3D=
"fa-regular fa-folder fa-fw" aria-hidden=3D"true"></i> Zfs</a>=E2=80=82<a h=
ref=3D"https://it-notes.dragas.net/categories/debian/" class=3D"post-catego=
ry" title=3D"Category - Debian"><i class=3D"fa-regular fa-folder fa-fw" ari=
a-hidden=3D"true"></i> Debian</a>=E2=80=82<a href=3D"https://it-notes.draga=
s.net/categories/server/" class=3D"post-category" title=3D"Category - Serve=
r"><i class=3D"fa-regular fa-folder fa-fw" aria-hidden=3D"true"></i> Server=
</a></span></div><div class=3D"post-meta-line"><span title=3D"published on =
2024-06-10 05:53:45"><i class=3D"fa-solid fa-calendar-days fa-fw me-1" aria=
-hidden=3D"true"></i><time datetime=3D"10-06-2024">10-06-2024</time></span>=
&nbsp;<span title=3D"Updated on 2024-06-13 00:00:00"><i class=3D"fa-regular=
 fa-calendar-check fa-fw me-1" aria-hidden=3D"true"></i><time datetime=3D"1=
3-06-2024">13-06-2024</time></span>&nbsp;<span title=3D"3041 words"><i clas=
s=3D"fa-solid fa-pencil-alt fa-fw me-1" aria-hidden=3D"true"></i>About 3100=
 words</span>&nbsp;<span><i class=3D"fa-regular fa-clock fa-fw me-1" aria-h=
idden=3D"true"></i>15 minutes</span>&nbsp;</div></div><div class=3D"feature=
d-image"><img loading=3D"lazy" src=3D"https://it-notes.dragas.net/featured/=
server_rack.webp" alt=3D"/featured/server_rack.webp" title=3D"Comparative t=
ests show FreeBSD's virtualization performance surpasses Proxmox, especiall=
y with NVMe drivers." data-lazyloaded=3D""></div><div class=3D"details toc"=
 id=3D"toc-static" data-kept=3D"true"><div class=3D"details-summary toc-tit=
le"><span>Contents</span>
<span><i class=3D"details-icon fa-solid fa-angle-right" aria-hidden=3D"true=
"></i></span></div><div class=3D"details-content toc-content" id=3D"toc-con=
tent-static"><nav id=3D"TableOfContents"><ul><li><ul><li><a href=3D"https:/=
/it-notes.dragas.net/2024/06/10/proxmox-vs-freebsd-which-virtualization-hos=
t-performs-better/#preamble">Preamble</a></li><li><a href=3D"https://it-not=
es.dragas.net/2024/06/10/proxmox-vs-freebsd-which-virtualization-host-perfo=
rms-better/#hardware-and-test-conditions">Hardware and Test Conditions</a><=
/li><li><a href=3D"https://it-notes.dragas.net/2024/06/10/proxmox-vs-freebs=
d-which-virtualization-host-performs-better/#cpu-and-ram-tests-on-vms">CPU =
and RAM Tests on VMs</a><ul><li><a href=3D"https://it-notes.dragas.net/2024=
/06/10/proxmox-vs-freebsd-which-virtualization-host-performs-better/#compar=
ative-results">Comparative Results</a><ul><li><a href=3D"https://it-notes.d=
ragas.net/2024/06/10/proxmox-vs-freebsd-which-virtualization-host-performs-=
better/#cpu-test">CPU Test</a></li><li><a href=3D"https://it-notes.dragas.n=
et/2024/06/10/proxmox-vs-freebsd-which-virtualization-host-performs-better/=
#cpu-percentage-analysis">CPU Percentage Analysis</a></li><li><a href=3D"ht=
tps://it-notes.dragas.net/2024/06/10/proxmox-vs-freebsd-which-virtualizatio=
n-host-performs-better/#ram-test">RAM Test</a></li><li><a href=3D"https://i=
t-notes.dragas.net/2024/06/10/proxmox-vs-freebsd-which-virtualization-host-=
performs-better/#ram-percentage-analysis">RAM Percentage Analysis</a></li><=
/ul></li><li><a href=3D"https://it-notes.dragas.net/2024/06/10/proxmox-vs-f=
reebsd-which-virtualization-host-performs-better/#cpu-and-ram-comparative-r=
esults-table">CPU and RAM Comparative Results Table</a></li></ul></li><li><=
a href=3D"https://it-notes.dragas.net/2024/06/10/proxmox-vs-freebsd-which-v=
irtualization-host-performs-better/#interpretation-of-cpu-and-ram-results">=
Interpretation of CPU and RAM Results</a></li><li><a href=3D"https://it-not=
es.dragas.net/2024/06/10/proxmox-vs-freebsd-which-virtualization-host-perfo=
rms-better/#io-performance-tests">I/O Performance Tests</a><ul><li><a href=
=3D"https://it-notes.dragas.net/2024/06/10/proxmox-vs-freebsd-which-virtual=
ization-host-performs-better/#io-comparative-performance-data-with-percenta=
ge-differences">I/O Comparative Performance Data with Percentage Difference=
s</a></li><li><a href=3D"https://it-notes.dragas.net/2024/06/10/proxmox-vs-=
freebsd-which-virtualization-host-performs-better/#percentage-differences-c=
ompared-to-vm-on-proxmox-zfs">Percentage Differences Compared to VM on Prox=
mox (ZFS)</a></li><li><a href=3D"https://it-notes.dragas.net/2024/06/10/pro=
xmox-vs-freebsd-which-virtualization-host-performs-better/#percentage-diffe=
rences-compared-to-vm-on-proxmox-lvm-as-this-is-the-standard-proxmox-setup"=
>Percentage Differences Compared to VM on Proxmox (LVM) as this is the stan=
dard Proxmox setup</a></li><li><a href=3D"https://it-notes.dragas.net/2024/=
06/10/proxmox-vs-freebsd-which-virtualization-host-performs-better/#analysi=
s-of-performance-data">Analysis of Performance Data</a><ul><li><a href=3D"h=
ttps://it-notes.dragas.net/2024/06/10/proxmox-vs-freebsd-which-virtualizati=
on-host-performs-better/#comparative-analysis">Comparative Analysis</a><ul>=
<li><a href=3D"https://it-notes.dragas.net/2024/06/10/proxmox-vs-freebsd-wh=
ich-virtualization-host-performs-better/#hypothesis-on-nvme-performance-and=
-fsync">Hypothesis on NVMe Performance and fsync</a></li></ul></li><li><a h=
ref=3D"https://it-notes.dragas.net/2024/06/10/proxmox-vs-freebsd-which-virt=
ualization-host-performs-better/#host-physical-systems-and-filesystems">Hos=
t Physical Systems and Filesystems</a></li><li><a href=3D"https://it-notes.=
dragas.net/2024/06/10/proxmox-vs-freebsd-which-virtualization-host-performs=
-better/#vms-vs-physical-hosts">VMs vs Physical Hosts</a></li><li><a href=
=3D"https://it-notes.dragas.net/2024/06/10/proxmox-vs-freebsd-which-virtual=
ization-host-performs-better/#vm-configurations-comparison">VM Configuratio=
ns Comparison</a></li></ul></li></ul></li><li><a href=3D"https://it-notes.d=
ragas.net/2024/06/10/proxmox-vs-freebsd-which-virtualization-host-performs-=
better/#conclusion">Conclusion</a></li></ul></li></ul></nav></div></div><di=
v class=3D"content" id=3D"content"><p><strong>TL;DR</strong>: Skip to the <=
a href=3D"https://it-notes.dragas.net/2024/06/10/proxmox-vs-freebsd-which-v=
irtualization-host-performs-better/#conclusion" target=3D"_blank" rel=3D"ex=
ternal nofollow noopener noreferrer">Conclusion</a> for a summary.</p><h3 i=
d=3D"preamble" class=3D"heading-element"><span>Preamble</span>
<a href=3D"https://it-notes.dragas.net/2024/06/10/proxmox-vs-freebsd-which-=
virtualization-host-performs-better/#preamble" class=3D"heading-mark"><svg =
class=3D"octicon octicon-link" viewBox=3D"0 0 16 16" width=3D"16" height=3D=
"16" aria-hidden=3D"true"><path d=3D"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.9=
5 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.04=
2-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25=
a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0=
 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.2=
5a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042=
.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 =
2.83z"></path></svg></a></h3><p>I have always been passionate about virtual=
ization and have consistently used it.</p><p>The first solution I installed=
 on my infrastructures (and those of clients) was <a href=3D"https://it-not=
es.dragas.net/2023/08/27/that-old-netbsd-server-running-since-2010/" target=
=3D"_blank" rel=3D"external nofollow noopener noreferrer">Xen on NetBSD</a>=
, with great success. I then used Xen on Linux and, since 2012, OpenNebula,=
 followed by Proxmox in 2013. <a href=3D"https://it-notes.dragas.net/catego=
ries/proxmox/" target=3D"_blank" rel=3D"external nofollow noopener noreferr=
er">Proxmox</a> has always given me great satisfaction, and even today I co=
nsider it a valuable platform that I install gladly. I have also used other=
 hypervisors like <a href=3D"https://xcp-ng.org/" target=3D"_blank" rel=3D"=
external nofollow noopener noreferrer">XCP-ng</a> but less frequently, and =
in recent years, I have started to make extensive use of bhyve.</p><p>About=
 two and a half years ago, <a href=3D"https://it-notes.dragas.net/2022/01/2=
4/why-were-migrating-many-of-our-servers-from-linux-to-freebsd/" target=3D"=
_blank" rel=3D"external nofollow noopener noreferrer">we began a progressiv=
e process of migrating our servers (and those of our clients) from Linux to=
 FreeBSD</a>, <a href=3D"https://it-notes.dragas.net/2022/02/05/how-we-are-=
migrating-many-of-our-servers-from-linux-to-freebsd-part-1-system-and-jails=
-setup/" target=3D"_blank" rel=3D"external nofollow noopener noreferrer">us=
ing jails</a> (when possible) or VMs on bhyve. In some cases, <a href=3D"ht=
tps://it-notes.dragas.net/2023/03/14/how-we-are-migrating-many-of-our-serve=
rs-from-linux-to-freebsd-part-3/" target=3D"_blank" rel=3D"external nofollo=
w noopener noreferrer">migrating setups from Proxmox to FreeBSD</a> resulte=
d in performance improvements, even with the same hardware. In some instanc=
es,
I migrated VMs without notifying clients, and they contacted me a few days =
later to inquire if we had new hardware because they noticed better perform=
ance.</p><p>After years, I decided to conduct a test to determine if this w=
as just a perception or if there was a technical basis behind it. Of course=
, <em>this test has no scientific validity</em>, and the results were obtai=
ned on specific hardware and at a specific time, so on different hardware, =
workload, and situations, the results could be entirely opposite.
However, I tried to have as scientific and objective an approach as possibl=
e since I am comparing two solutions that I care about and use daily.</p><h=
3 id=3D"hardware-and-test-conditions" class=3D"heading-element"><span>Hardw=
are and Test Conditions</span>
<a href=3D"https://it-notes.dragas.net/2024/06/10/proxmox-vs-freebsd-which-=
virtualization-host-performs-better/#hardware-and-test-conditions" class=3D=
"heading-mark"><svg class=3D"octicon octicon-link" viewBox=3D"0 0 16 16" wi=
dth=3D"16" height=3D"16" aria-hidden=3D"true"><path d=3D"m7.775 3.275 1.25-=
1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.=
042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-=
2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.6=
9 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01=
.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751=
.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.=
5a1.998 1.998.0 000 2.83z"></path></svg></a></h3><p>I often see comparative=
 tests done on VMs from various providers. In my opinion, this comparison m=
akes no sense because a VM from any provider shares its hardware with many =
other VMs, so the results will vary depending on the load of the =E2=80=9Cn=
eighbors=E2=80=9D and will never be reliable.</p><p>For this test, I decide=
d to take a physical server with the following characteristics:</p><ul><li>=
Intel Core i7-6700</li><li>2x SSD M.2 NVMe 512 GB</li><li>4x RAM 16384 MB D=
DR4</li><li>NIC 1 Gbit Intel I219-LM</li></ul><p>The hardware is not recent=
, but still very widespread. On more recent hardware, the results might dif=
fer, but the test will be based on this configuration.</p><p>I installed <a=
 href=3D"https://www.proxmox.com/en/" target=3D"_blank" rel=3D"external nof=
ollow noopener noreferrer">Proxmox 8.2.2</a> starting from the Debian templ=
ate of the provider and <a href=3D"https://pve.proxmox.com/wiki/Install_Pro=
xmox_VE_on_Debian_12_Bookworm" target=3D"_blank" rel=3D"external nofollow n=
oopener noreferrer">manually installed it following the instructions</a>. I=
 created a partition for Proxmox and left one partition free on each of the=
 two NVME drives to create (at different times) the ZFS pool (in mirror) an=
d the LVM on top of the Linux software raid.</p><p>After all the tests, I i=
nstalled <a href=3D"https://www.freebsd.org/" target=3D"_blank" rel=3D"exte=
rnal nofollow noopener noreferrer">FreeBSD</a> 14.1-RELEASE on ZFS on the s=
ame host, using <em>bsdinstall</em> from an <a href=3D"https://mfsbsd.vx.sk=
/" target=3D"_blank" rel=3D"external nofollow noopener noreferrer">mfsbsd i=
mage</a> since the provider does not directly support installing FreeBSD fr=
om its panel or rescue mode.</p><p>In both installations, I always trimmed =
the NVME drives before starting the tests, and in the case of ZFS, I set (b=
oth on Proxmox and FreeBSD) compression to zstd and atime to off.
No other changes were made compared to the standard installation.</p><p>On =
FreeBSD, the VM was created and managed with <a href=3D"https://github.com/=
churchers/vm-bhyve" target=3D"_blank" rel=3D"external nofollow noopener nor=
eferrer">vm-bhyve (devel)</a>.</p><p>On Proxmox, I tested the physical host=
 on ZFS and ext4 and the VM on ZFS and LVM as LVM is the standard and most =
common setup in Proxmox.</p><p>On FreeBSD, I tested the host on ZFS and the=
 VM with both virtio and nvme drivers, on zvol, and as an image file within=
 a ZFS dataset.</p><p>I used <a href=3D"https://github.com/akopytov/sysbenc=
h" target=3D"_blank" rel=3D"external nofollow noopener noreferrer">sysbench=
</a> installed from the official Debian repository (on Proxmox and VM) and =
from the FreeBSD package on the respective host.</p><p>The VMs, both on Pro=
xmox and FreeBSD, have nearly identical characteristics and default configu=
ration (apart from the nvme drivers set on bhyve, and for that reason, I al=
so tested virtio).</p><p>For those who want to reproduce my tests, here are=
 the detailed configurations of the VMs used in bhyve:</p><p><strong>FreeBS=
D bhyve VM Configuration with NVMe Driver</strong>:</p><div class=3D"highli=
ght"><div class=3D"chroma open" data-init=3D"true"><div class=3D"code-heade=
r language-gdscript3"><span class=3D"code-title"><i class=3D"arrow fa-solid=
 fa-chevron-right fa-fw" aria-hidden=3D"true"></i></span><span class=3D"ell=
ipses"><i class=3D"fa-solid fa-ellipsis-h fa-fw" aria-hidden=3D"true"></i><=
/span><span class=3D"copy" title=3D"Copy to clipboard"><i class=3D"fa-regul=
ar fa-copy fa-fw" aria-hidden=3D"true"></i></span></div><div class=3D"table=
-wrapper"><table><tbody><tr><td><pre tabindex=3D"0" class=3D"chroma"><code =
class=3D"language-gdscript3" data-lang=3D"gdscript3"><span class=3D"line"><=
span class=3D"cl"><span class=3D"n">loader</span><span class=3D"o">=3D</spa=
n><span class=3D"s2">"uefi"</span>
</span></span><span class=3D"line"><span class=3D"cl"><span class=3D"n">cpu=
</span><span class=3D"o">=3D</span><span class=3D"mi">4</span>
</span></span><span class=3D"line"><span class=3D"cl"><span class=3D"n">mem=
ory</span><span class=3D"o">=3D</span><span class=3D"mi">4096</span><span c=
lass=3D"n">M</span>
</span></span><span class=3D"line"><span class=3D"cl"><span class=3D"n">net=
work0_type</span><span class=3D"o">=3D</span><span class=3D"s2">"virtio-net=
"</span>
</span></span><span class=3D"line"><span class=3D"cl"><span class=3D"n">net=
work0_switch</span><span class=3D"o">=3D</span><span class=3D"s2">"public"<=
/span>
</span></span><span class=3D"line"><span class=3D"cl"><span class=3D"n">dis=
k0_type</span><span class=3D"o">=3D</span><span class=3D"s2">"nvme"</span>
</span></span><span class=3D"line"><span class=3D"cl"><span class=3D"n">dis=
k0_name</span><span class=3D"o">=3D</span><span class=3D"s2">"disk0.img"</s=
pan></span></span></code></pre></td></tr></tbody></table></div></div></div>=
<p><strong>FreeBSD bhyve VM Configuration with virtio Driver</strong>:</p><=
div class=3D"highlight"><div class=3D"chroma open" data-init=3D"true"><div =
class=3D"code-header language-gdscript3"><span class=3D"code-title"><i clas=
s=3D"arrow fa-solid fa-chevron-right fa-fw" aria-hidden=3D"true"></i></span=
><span class=3D"ellipses"><i class=3D"fa-solid fa-ellipsis-h fa-fw" aria-hi=
dden=3D"true"></i></span><span class=3D"copy" title=3D"Copy to clipboard"><=
i class=3D"fa-regular fa-copy fa-fw" aria-hidden=3D"true"></i></span></div>=
<div class=3D"table-wrapper"><table><tbody><tr><td><pre tabindex=3D"0" clas=
s=3D"chroma"><code class=3D"language-gdscript3" data-lang=3D"gdscript3"><sp=
an class=3D"line"><span class=3D"cl"><span class=3D"n">loader</span><span c=
lass=3D"o">=3D</span><span class=3D"s2">"uefi"</span>
</span></span><span class=3D"line"><span class=3D"cl"><span class=3D"n">cpu=
</span><span class=3D"o">=3D</span><span class=3D"mi">4</span>
</span></span><span class=3D"line"><span class=3D"cl"><span class=3D"n">mem=
ory</span><span class=3D"o">=3D</span><span class=3D"mi">4096</span><span c=
lass=3D"n">M</span>
</span></span><span class=3D"line"><span class=3D"cl"><span class=3D"n">net=
work0_type</span><span class=3D"o">=3D</span><span class=3D"s2">"virtio-net=
"</span>
</span></span><span class=3D"line"><span class=3D"cl"><span class=3D"n">net=
work0_switch</span><span class=3D"o">=3D</span><span class=3D"s2">"public"<=
/span>
</span></span><span class=3D"line"><span class=3D"cl"><span class=3D"n">dis=
k0_type</span><span class=3D"o">=3D</span><span class=3D"s2">"virtio-blk"</=
span>
</span></span><span class=3D"line"><span class=3D"cl"><span class=3D"n">dis=
k0_name</span><span class=3D"o">=3D</span><span class=3D"s2">"disk0.img"</s=
pan></span></span></code></pre></td></tr></tbody></table></div></div></div>=
<p><strong>Proxmox VM Configuration</strong>:</p><div class=3D"table-wrappe=
r"><table><thead><tr><th><strong>Component</strong></th><th><strong>Details=
</strong></th></tr></thead><tbody><tr><td><strong>Memory</strong></td><td>4=
.00 GiB [balloon=3D0]</td></tr><tr><td><strong>Processors</strong></td><td>=
4 (1 sockets, 4 cores) [x86-64-v2-AES]</td></tr><tr><td><strong>BIOS</stron=
g></td><td>Default (SeaBIOS)</td></tr><tr><td><strong>Display</strong></td>=
<td>Default</td></tr><tr><td><strong>Machine</strong></td><td>Default (i440=
fx)</td></tr><tr><td><strong>SCSI Controller</strong></td><td>VirtIO SCSI s=
ingle</td></tr><tr><td><strong>CD/DVD Drive (ide2)</strong></td><td>local:i=
so/debian-12.5.0-amd64-netinst.iso,media=3Dcdrom,size=3D629M</td></tr><tr><=
td><strong>Hard Disk (scsi0)</strong></td><td>zfspool:vm-100-disk-0,cache=
=3Dwriteback,discard=3Don,iothread=3D1,size=3D50G,ssd=3D1</td></tr><tr><td>=
<strong>Network Device (net0)</strong></td><td>virtio=3DBC:24:11:22:3D:F0,b=
ridge=3Dvmbr0</td></tr></tbody></table></div><p>In all the configurations, =
I used Debian 12 as the VM operating system, with the file system on ext4.<=
/p><p>I chose Debian 12 as it is a stable, widespread, and modern Linux dis=
tribution. I did not test a FreeBSD VM because, in my setups, <a href=3D"ht=
tps://it-notes.dragas.net/2023/11/27/migrating-from-vm-to-hierarchical-jail=
s-freebsd/" target=3D"_blank" rel=3D"external nofollow noopener noreferrer"=
>I tend not to virtualize FreeBSD on FreeBSD but to use nested jails</a>.</=
p><p>All tests were performed multiple times, and I took the median results=
. CPU and RAM were tested only on the first VM (on Proxmox (ZFS) and FreeBS=
D (ZFS and nvme)) as they are not dependent on the underlying storage. Stor=
age performance, on the other hand, was tested on all configurations.</p><h=
3 id=3D"cpu-and-ram-tests-on-vms" class=3D"heading-element"><span>CPU and R=
AM Tests on VMs</span>
<a href=3D"https://it-notes.dragas.net/2024/06/10/proxmox-vs-freebsd-which-=
virtualization-host-performs-better/#cpu-and-ram-tests-on-vms" class=3D"hea=
ding-mark"><svg class=3D"octicon octicon-link" viewBox=3D"0 0 16 16" width=
=3D"16" height=3D"16" aria-hidden=3D"true"><path d=3D"m7.775 3.275 1.25-1.2=
5a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042=
.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.8=
3-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9=
.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.01=
8 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.75=
1.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1=
.998 1.998.0 000 2.83z"></path></svg></a></h3><p>On both VMs:</p><div class=
=3D"highlight"><div class=3D"chroma open" data-init=3D"true"><div class=3D"=
code-header language-shell"><span class=3D"code-title"><i class=3D"arrow fa=
-solid fa-chevron-right fa-fw" aria-hidden=3D"true"></i></span><span class=
=3D"ellipses"><i class=3D"fa-solid fa-ellipsis-h fa-fw" aria-hidden=3D"true=
"></i></span><span class=3D"copy" title=3D"Copy to clipboard"><i class=3D"f=
a-regular fa-copy fa-fw" aria-hidden=3D"true"></i></span></div><div class=
=3D"table-wrapper"><table><tbody><tr><td><pre tabindex=3D"0" class=3D"chrom=
a"><code class=3D"language-shell" data-lang=3D"shell"><span class=3D"line">=
<span class=3D"cl">sysbench --test<span class=3D"o">=3D</span>cpu --cpu-max=
-prime<span class=3D"o">=3D</span><span class=3D"m">20000</span> run
</span></span><span class=3D"line"><span class=3D"cl">sysbench --test<span =
class=3D"o">=3D</span>memory run</span></span></code></pre></td></tr></tbod=
y></table></div></div></div><h4 id=3D"comparative-results" class=3D"heading=
-element"><span>Comparative Results</span>
<a href=3D"https://it-notes.dragas.net/2024/06/10/proxmox-vs-freebsd-which-=
virtualization-host-performs-better/#comparative-results" class=3D"heading-=
mark"><svg class=3D"octicon octicon-link" viewBox=3D"0 0 16 16" width=3D"16=
" height=3D"16" aria-hidden=3D"true"><path d=3D"m7.775 3.275 1.25-1.25a3.5 =
3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.7=
51.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83=
l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.=
998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.04=
2l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01=
-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1=
.998.0 000 2.83z"></path></svg></a></h4><h5 id=3D"cpu-test" class=3D"headin=
g-element"><span>CPU Test</span>
<a href=3D"https://it-notes.dragas.net/2024/06/10/proxmox-vs-freebsd-which-=
virtualization-host-performs-better/#cpu-test" class=3D"heading-mark"><svg =
class=3D"octicon octicon-link" viewBox=3D"0 0 16 16" width=3D"16" height=3D=
"16" aria-hidden=3D"true"><path d=3D"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.9=
5 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.04=
2-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25=
a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0=
 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.2=
5a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042=
.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 =
2.83z"></path></svg></a></h5><div class=3D"table-wrapper"><table><thead><tr=
><th>Configuration</th><th>Events per Second</th><th>Total Time (s)</th><th=
>Latency (avg) (ms)</th></tr></thead><tbody><tr><td><strong>Proxmox</strong=
></td><td>498.08</td><td>10.0010</td><td>2.01</td></tr><tr><td><strong>Free=
BSD</strong></td><td>473.65</td><td>10.0019</td><td>2.11</td></tr></tbody><=
/table></div><h5 id=3D"cpu-percentage-analysis" class=3D"heading-element"><=
span>CPU Percentage Analysis</span>
<a href=3D"https://it-notes.dragas.net/2024/06/10/proxmox-vs-freebsd-which-=
virtualization-host-performs-better/#cpu-percentage-analysis" class=3D"head=
ing-mark"><svg class=3D"octicon octicon-link" viewBox=3D"0 0 16 16" width=
=3D"16" height=3D"16" aria-hidden=3D"true"><path d=3D"m7.775 3.275 1.25-1.2=
5a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042=
.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.8=
3-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9=
.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.01=
8 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.75=
1.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1=
.998 1.998.0 000 2.83z"></path></svg></a></h5><ul><li><strong>Difference in=
 Events per Second</strong>: ((498.08 - 473.65) / 498.08 approx -4.91%)</li=
><li><strong>Difference in Total Time</strong>: ((10.0019 - 10.0010) / 10.0=
010 approx +0.009%)</li><li><strong>Difference in Latency (avg)</strong>: (=
(2.11 - 2.01) / 2.01 approx +4.98%)</li></ul><h5 id=3D"ram-test" class=3D"h=
eading-element"><span>RAM Test</span>
<a href=3D"https://it-notes.dragas.net/2024/06/10/proxmox-vs-freebsd-which-=
virtualization-host-performs-better/#ram-test" class=3D"heading-mark"><svg =
class=3D"octicon octicon-link" viewBox=3D"0 0 16 16" width=3D"16" height=3D=
"16" aria-hidden=3D"true"><path d=3D"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.9=
5 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.04=
2-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25=
a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0=
 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.2=
5a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042=
.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 =
2.83z"></path></svg></a></h5><div class=3D"table-wrapper"><table><thead><tr=
><th>Configuration</th><th>Total Operations</th><th>Operations per Second</=
th><th>Total MiB Transferred</th><th>MiB/sec</th><th>Latency (avg) (ms)</th=
></tr></thead><tbody><tr><td><strong>Proxmox</strong></td><td>64777227</td>=
<td>6476757.59</td><td>63259.01</td><td>6324.96</td><td>0.00</td></tr><tr><=
td><strong>FreeBSD</strong></td><td>68621063</td><td>6861139.06</td><td>670=
12.76</td><td>6700.33</td><td>0.00</td></tr></tbody></table></div><h5 id=3D=
"ram-percentage-analysis" class=3D"heading-element"><span>RAM Percentage An=
alysis</span>
<a href=3D"https://it-notes.dragas.net/2024/06/10/proxmox-vs-freebsd-which-=
virtualization-host-performs-better/#ram-percentage-analysis" class=3D"head=
ing-mark"><svg class=3D"octicon octicon-link" viewBox=3D"0 0 16 16" width=
=3D"16" height=3D"16" aria-hidden=3D"true"><path d=3D"m7.775 3.275 1.25-1.2=
5a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042=
.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.8=
3-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9=
.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.01=
8 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.75=
1.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1=
.998 1.998.0 000 2.83z"></path></svg></a></h5><ul><li><strong>Difference in=
 Total Operations</strong>: ((68621063 - 64777227) / 64777227 approx +5.94%=
)</li><li><strong>Difference in Operations per Second</strong>: ((6861139.0=
6 - 6476757.59) / 6476757.59 approx +5.94%)</li><li><strong>Difference in T=
otal MiB Transferred</strong>: ((67012.76 - 63259.01) / 63259.01 approx +5.=
93%)</li><li><strong>Difference in MiB/sec</strong>: ((6700.33 - 6324.96) /=
 6324.96 approx +5.93%)</li></ul><h4 id=3D"cpu-and-ram-comparative-results-=
table" class=3D"heading-element"><span>CPU and RAM Comparative Results Tabl=
e</span>
<a href=3D"https://it-notes.dragas.net/2024/06/10/proxmox-vs-freebsd-which-=
virtualization-host-performs-better/#cpu-and-ram-comparative-results-table"=
 class=3D"heading-mark"><svg class=3D"octicon octicon-link" viewBox=3D"0 0 =
16 16" width=3D"16" height=3D"16" aria-hidden=3D"true"><path d=3D"m7.775 3.=
275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 =
01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.=
002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.=
042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751=
.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014=
.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.=
0l-2.5 2.5a1.998 1.998.0 000 2.83z"></path></svg></a></h4><div class=3D"tab=
le-wrapper"><table><thead><tr><th>Test</th><th>Metric</th><th>Proxmox (KVM)=
</th><th>FreeBSD (bhyve)</th><th>Difference (%)</th></tr></thead><tbody><tr=
><td>CPU</td><td>Events/s</td><td>498.08</td><td>473.65</td><td>-4.91</td><=
/tr><tr><td></td><td>Time (s)</td><td>10.0010</td><td>10.0019</td><td>+0.00=
9</td></tr><tr><td></td><td>Latency</td><td>2.01</td><td>2.11</td><td>+4.98=
</td></tr><tr><td>RAM</td><td>Ops</td><td>64777227</td><td>68621063</td><td=
>+5.94</td></tr><tr><td></td><td>Ops/s</td><td>6476757.59</td><td>6861139.0=
6</td><td>+5.94</td></tr><tr><td></td><td>MiB</td><td>63259.01</td><td>6701=
2.76</td><td>+5.93</td></tr><tr><td></td><td>MiB/s</td><td>6324.96</td><td>=
6700.33</td><td>+5.93</td></tr><tr><td></td><td>Latency</td><td>0.00</td><t=
d>0.00</td><td>0.00</td></tr></tbody></table></div><h3 id=3D"interpretation=
-of-cpu-and-ram-results" class=3D"heading-element"><span>Interpretation of =
CPU and RAM Results</span>
<a href=3D"https://it-notes.dragas.net/2024/06/10/proxmox-vs-freebsd-which-=
virtualization-host-performs-better/#interpretation-of-cpu-and-ram-results"=
 class=3D"heading-mark"><svg class=3D"octicon octicon-link" viewBox=3D"0 0 =
16 16" width=3D"16" height=3D"16" aria-hidden=3D"true"><path d=3D"m7.775 3.=
275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 =
01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.=
002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.=
042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751=
.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014=
.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.=
0l-2.5 2.5a1.998 1.998.0 000 2.83z"></path></svg></a></h3><ol><li><p><stron=
g>CPU Performance</strong>:</p><ul><li>The VM on FreeBSD has slightly lower=
 CPU performance compared to Proxmox (-4.91% in events per second).</li><li=
>The total execution time is nearly identical, with a negligible difference=
.</li><li>The average latency is slightly higher on FreeBSD (+4.98%).</li><=
/ul></li><li><p><strong>RAM Performance</strong>:</p><ul><li>The VM on Free=
BSD has better RAM performance compared to Proxmox (+5.94% in operations an=
d MiB/sec).</li><li>The average latency is identical in both configurations=
.</li></ul></li></ol><p>In summary, while Proxmox provides more consistent =
CPU performance, FreeBSD demonstrates superior memory performance. The choi=
ce between Proxmox and FreeBSD may depend on the specific workload requirem=
ents and the importance of consistent performance versus higher throughput.=
</p><h3 id=3D"io-performance-tests" class=3D"heading-element"><span>I/O Per=
formance Tests</span>
<a href=3D"https://it-notes.dragas.net/2024/06/10/proxmox-vs-freebsd-which-=
virtualization-host-performs-better/#io-performance-tests" class=3D"heading=
-mark"><svg class=3D"octicon octicon-link" viewBox=3D"0 0 16 16" width=3D"1=
6" height=3D"16" aria-hidden=3D"true"><path d=3D"m7.775 3.275 1.25-1.25a3.5=
 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.=
751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.8=
3l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1=
.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.0=
42l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 0=
1-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 =
1.998.0 000 2.83z"></path></svg></a></h3><p>The test has been conducted usi=
ng sysbench, with this command line:</p><div class=3D"highlight"><div class=
=3D"chroma open" data-init=3D"true"><div class=3D"code-header language-sh">=
<span class=3D"code-title"><i class=3D"arrow fa-solid fa-chevron-right fa-f=
w" aria-hidden=3D"true"></i></span><span class=3D"ellipses"><i class=3D"fa-=
solid fa-ellipsis-h fa-fw" aria-hidden=3D"true"></i></span><span class=3D"c=
opy" title=3D"Copy to clipboard"><i class=3D"fa-regular fa-copy fa-fw" aria=
-hidden=3D"true"></i></span></div><div class=3D"table-wrapper"><table><tbod=
y><tr><td><pre tabindex=3D"0" class=3D"chroma"><code class=3D"language-sh" =
data-lang=3D"sh"><span class=3D"line"><span class=3D"cl">sysbench --test<sp=
an class=3D"o">=3D</span>fileio --file-total-size<span class=3D"o">=3D</spa=
n>30G prepare
</span></span><span class=3D"line"><span class=3D"cl">sysbench --test<span =
class=3D"o">=3D</span>fileio --file-total-size<span class=3D"o">=3D</span>3=
0G --file-test-mode<span class=3D"o">=3D</span>rndrw  --max-time<span class=
=3D"o">=3D</span><span class=3D"m">300</span> --max-requests<span class=3D"=
o">=3D</span><span class=3D"m">0</span> run</span></span></code></pre></td>=
</tr></tbody></table></div></div></div><h4 id=3D"io-comparative-performance=
-data-with-percentage-differences" class=3D"heading-element"><span>I/O Comp=
arative Performance Data with Percentage Differences</span>
<a href=3D"https://it-notes.dragas.net/2024/06/10/proxmox-vs-freebsd-which-=
virtualization-host-performs-better/#io-comparative-performance-data-with-p=
ercentage-differences" class=3D"heading-mark"><svg class=3D"octicon octicon=
-link" viewBox=3D"0 0 16 16" width=3D"16" height=3D"16" aria-hidden=3D"true=
"><path d=3D"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.=
0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002=
.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.01=
8.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751=
.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95=
l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 =
1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z"></path></svg></a>=
</h4><div class=3D"table-wrapper"><table><thead><tr><th>Metric</th><th>VM o=
n Proxmox (ZFS)</th><th>VM on Proxmox (LVM)</th><th>VM on FreeBSD (ZFS, NVM=
e)</th><th>VM on FreeBSD (ZFS, Virtio)</th><th>VM on FreeBSD (zvol)</th><th=
>Host FreeBSD (ZFS)</th><th>Host Proxmox (ZFS)</th><th>Host Proxmox (ext4)<=
/th></tr></thead><tbody><tr><td><strong>File creation speed (MiB/s)</strong=
></td><td>407.82</td><td>461.52</td><td>1467.83</td><td>1398.81</td><td>133=
3.64</td><td>1625.67</td><td>968.64</td><td>633.13</td></tr><tr><td><strong=
>Reads per second</strong></td><td>650.09</td><td>504.80</td><td>11183.44</=
td><td>806.93</td><td>11834.53</td><td>1234.62</td><td>920.95</td><td>498.3=
7</td></tr><tr><td><strong>Writes per second</strong></td><td>433.40</td><t=
d>336.54</td><td>7455.62</td><td>537.95</td><td>7889.69</td><td>823.08</td>=
<td>613.96</td><td>332.25</td></tr><tr><td><strong>fsyncs per second</stron=
g></td><td>1387.08</td><td>1076.97</td><td>23858.08</td><td>1721.79</td><td=
>25247.36</td><td>2634.01</td><td>1964.96</td><td>1063.19</td></tr><tr><td>=
<strong>Read throughput (MiB/s)</strong></td><td>10.16</td><td>7.89</td><td=
>174.74</td><td>12.61</td><td>184.91</td><td>19.29</td><td>14.39</td><td>7.=
79</td></tr><tr><td><strong>Write throughput (MiB/s)</strong></td><td>6.77<=
/td><td>5.26</td><td>116.49</td><td>8.41</td><td>123.28</td><td>12.86</td><=
td>9.59</td><td>5.19</td></tr><tr><td><strong>Total events</strong></td><td=
>741163</td><td>575588</td><td>12749157</td><td>919952</td><td>13491459</td=
><td>1407592</td><td>1049894</td><td>568277</td></tr><tr><td><strong>Averag=
e latency (ms)</strong></td><td>0.40</td><td>0.52</td><td>0.02</td><td>0.33=
</td><td>0.02</td><td>0.21</td><td>0.29</td><td>0.53</td></tr><tr><td><stro=
ng>95th percentile latency (ms)</strong></td><td>2.30</td><td>3.25</td><td>=
0.06</td><td>1.58</td><td>0.05</td><td>1.32</td><td>1.79</td><td>2.71</td><=
/tr><tr><td><strong>Max latency (ms)</strong></td><td>22.65</td><td>32.30</=
td><td>35.49</td><td>13.60</td><td>77.53</td><td>9.03</td><td>9.47</td><td>=
17.39</td></tr><tr><td><strong>Total test time (s)</strong></td><td>300.047=
5</td><td>300.1147</td><td>300.0020</td><td>300.0226</td><td>300.0012</td><=
td>300.0416</td><td>300.0159</td><td>300.1381</td></tr></tbody></table></di=
v><h4 id=3D"percentage-differences-compared-to-vm-on-proxmox-zfs" class=3D"=
heading-element"><span>Percentage Differences Compared to VM on Proxmox (ZF=
S)</span>
<a href=3D"https://it-notes.dragas.net/2024/06/10/proxmox-vs-freebsd-which-=
virtualization-host-performs-better/#percentage-differences-compared-to-vm-=
on-proxmox-zfs" class=3D"heading-mark"><svg class=3D"octicon octicon-link" =
viewBox=3D"0 0 16 16" width=3D"16" height=3D"16" aria-hidden=3D"true"><path=
 d=3D"m7.775 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.=
95.0.751.751.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2=
.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.7=
51.0 01-.018-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 =
011.042.018.751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.=
5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1=
.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 000 2.83z"></path></svg></a></h4><d=
iv class=3D"table-wrapper"><table><thead><tr><th>Metric</th><th>VM on Proxm=
ox (LVM)</th><th>VM on FreeBSD (ZFS, NVMe)</th><th>VM on FreeBSD (ZFS, Virt=
io)</th><th>VM on FreeBSD (zvol)</th><th>Host FreeBSD (ZFS)</th><th>Host Pr=
oxmox (ZFS)</th><th>Host Proxmox (ext4)</th></tr></thead><tbody><tr><td><st=
rong>File creation speed (MiB/s)</strong></td><td>+13.18%</td><td>+259.77%<=
/td><td>+242.99%</td><td>+227.02%</td><td>+298.62%</td><td>+137.52%</td><td=
>+55.25%</td></tr><tr><td><strong>Reads per second</strong></td><td>-22.34%=
</td><td>+1619.98%</td><td>+24.13%</td><td>+1720.45%</td><td>+89.92%</td><t=
d>+41.67%</td><td>-23.34%</td></tr><tr><td><strong>Writes per second</stron=
g></td><td>-22.35%</td><td>+1620.26%</td><td>+24.12%</td><td>+1720.42%</td>=
<td>+89.91%</td><td>+41.66%</td><td>-23.34%</td></tr><tr><td><strong>fsyncs=
 per second</strong></td><td>-22.36%</td><td>+1620.02%</td><td>+24.13%</td>=
<td>+1720.18%</td><td>+89.90%</td><td>+41.66%</td><td>-23.35%</td></tr><tr>=
<td><strong>Read throughput (MiB/s)</strong></td><td>-22.34%</td><td>+1619.=
88%</td><td>+24.11%</td><td>+1719.98%</td><td>+89.86%</td><td>+41.63%</td><=
td>-23.33%</td></tr><tr><td><strong>Write throughput (MiB/s)</strong></td><=
td>-22.30%</td><td>+1620.68%</td><td>+24.22%</td><td>+1720.97%</td><td>+89.=
96%</td><td>+41.65%</td><td>-23.33%</td></tr><tr><td><strong>Total events</=
strong></td><td>-22.34%</td><td>+1620.16%</td><td>+24.12%</td><td>+1720.31%=
</td><td>+89.92%</td><td>+41.65%</td><td>-23.31%</td></tr><tr><td><strong>A=
verage latency (ms)</strong></td><td>+30.00%</td><td>-95.00%</td><td>-17.50=
%</td><td>-95.00%</td><td>-47.50%</td><td>-27.50%</td><td>+32.50%</td></tr>=
<tr><td><strong>95th percentile latency (ms)</strong></td><td>+41.30%</td><=
td>-97.39%</td><td>-31.30%</td><td>-97.83%</td><td>-42.61%</td><td>-22.17%<=
/td><td>+17.83%</td></tr><tr><td><strong>Max latency (ms)</strong></td><td>=
+42.60%</td><td>+56.69%</td><td>-39.96%</td><td>+242.30%</td><td>-60.13%</t=
d><td>-58.19%</td><td>-23.22%</td></tr><tr><td><strong>Total test time (s)<=
/strong></td><td>+0.02%</td><td>-0.02%</td><td>-0.01%</td><td>-0.02%</td><t=
d>-0.02%</td><td>-0.01%</td><td>+0.01%</td></tr></tbody></table></div><h4 i=
d=3D"percentage-differences-compared-to-vm-on-proxmox-lvm-as-this-is-the-st=
andard-proxmox-setup" class=3D"heading-element"><span>Percentage Difference=
s Compared to VM on Proxmox (LVM) as this is the standard Proxmox setup</sp=
an>
<a href=3D"https://it-notes.dragas.net/2024/06/10/proxmox-vs-freebsd-which-=
virtualization-host-performs-better/#percentage-differences-compared-to-vm-=
on-proxmox-lvm-as-this-is-the-standard-proxmox-setup" class=3D"heading-mark=
"><svg class=3D"octicon octicon-link" viewBox=3D"0 0 16 16" width=3D"16" he=
ight=3D"16" aria-hidden=3D"true"><path d=3D"m7.775 3.275 1.25-1.25a3.5 3.5.=
0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0=
 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.=
25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 =
1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1=
.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.01=
8 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998=
.0 000 2.83z"></path></svg></a></h4><div class=3D"table-wrapper"><table><th=
ead><tr><th>Metric</th><th>VM on Proxmox (ZFS)</th><th>VM on FreeBSD (ZFS, =
NVMe)</th><th>VM on FreeBSD (ZFS, Virtio)</th><th>VM on FreeBSD (zvol)</th>=
<th>Host FreeBSD (ZFS)</th><th>Host Proxmox (ZFS)</th><th>Host Proxmox (ext=
4)</th></tr></thead><tbody><tr><td><strong>File creation speed (MiB/s)</str=
ong></td><td>-11.64%</td><td>+218.04%</td><td>+203.09%</td><td>+188.97%</td=
><td>+252.24%</td><td>+109.88%</td><td>+37.18%</td></tr><tr><td><strong>Rea=
ds per second</strong></td><td>+28.78%</td><td>+2115.42%</td><td>+59.85%</t=
d><td>+2244.40%</td><td>+144.58%</td><td>+82.44%</td><td>-1.27%</td></tr><t=
r><td><strong>Writes per second</strong></td><td>+28.78%</td><td>+2115.37%<=
/td><td>+59.85%</td><td>+2244.35%</td><td>+144.57%</td><td>+82.43%</td><td>=
-1.27%</td></tr><tr><td><strong>fsyncs per second</strong></td><td>+28.79%<=
/td><td>+2115.30%</td><td>+59.87%</td><td>+2244.30%</td><td>+144.58%</td><t=
d>+82.45%</td><td>-1.28%</td></tr><tr><td><strong>Read throughput (MiB/s)</=
strong></td><td>+28.77%</td><td>+2114.70%</td><td>+59.82%</td><td>+2243.60%=
</td><td>+144.49%</td><td>+82.38%</td><td>-1.27%</td></tr><tr><td><strong>W=
rite throughput (MiB/s)</strong></td><td>+28.71%</td><td>+2114.64%</td><td>=
+59.89%</td><td>+2243.73%</td><td>+144.49%</td><td>+82.32%</td><td>-1.33%</=
td></tr><tr><td><strong>Total events</strong></td><td>+28.77%</td><td>+2114=
.98%</td><td>+59.83%</td><td>+2243.94%</td><td>+144.55%</td><td>+82.40%</td=
><td>-1.27%</td></tr><tr><td><strong>Average latency (ms)</strong></td><td>=
-23.08%</td><td>-96.15%</td><td>-36.54%</td><td>-96.15%</td><td>-59.62%</td=
><td>-44.23%</td><td>+1.92%</td></tr><tr><td><strong>95th percentile latenc=
y (ms)</strong></td><td>-29.23%</td><td>-98.15%</td><td>-51.38%</td><td>-98=
.46%</td><td>-59.38%</td><td>-44.92%</td><td>-16.62%</td></tr><tr><td><stro=
ng>Max latency (ms)</strong></td><td>-29.88%</td><td>+9.88%</td><td>-57.89%=
</td><td>+140.03%</td><td>-72.04%</td><td>-70.68%</td><td>-46.16%</td></tr>=
<tr><td><strong>Total test time (s)</strong></td><td>-0.02%</td><td>-0.04%<=
/td><td>-0.03%</td><td>-0.04%</td><td>-0.02%</td><td>-0.03%</td><td>+0.01%<=
/td></tr></tbody></table></div><h4 id=3D"analysis-of-performance-data" clas=
s=3D"heading-element"><span>Analysis of Performance Data</span>
<a href=3D"https://it-notes.dragas.net/2024/06/10/proxmox-vs-freebsd-which-=
virtualization-host-performs-better/#analysis-of-performance-data" class=3D=
"heading-mark"><svg class=3D"octicon octicon-link" viewBox=3D"0 0 16 16" wi=
dth=3D"16" height=3D"16" aria-hidden=3D"true"><path d=3D"m7.775 3.275 1.25-=
1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.=
042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-=
2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.6=
9 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01=
.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751=
.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.=
5a1.998 1.998.0 000 2.83z"></path></svg></a></h4><p>The performance data co=
llected from various configurations of Proxmox and FreeBSD provides a compr=
ehensive view of the I/O capabilities and highlights some significant diffe=
rences. Here is an analysis of the key findings:</p><h5 id=3D"comparative-a=
nalysis" class=3D"heading-element"><span>Comparative Analysis</span>
<a href=3D"https://it-notes.dragas.net/2024/06/10/proxmox-vs-freebsd-which-=
virtualization-host-performs-better/#comparative-analysis" class=3D"heading=
-mark"><svg class=3D"octicon octicon-link" viewBox=3D"0 0 16 16" width=3D"1=
6" height=3D"16" aria-hidden=3D"true"><path d=3D"m7.775 3.275 1.25-1.25a3.5=
 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.=
751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.8=
3l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1=
.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.0=
42l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 0=
1-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 =
1.998.0 000 2.83z"></path></svg></a></h5><h6 id=3D"hypothesis-on-nvme-perfo=
rmance-and-fsync" class=3D"heading-element"><span>Hypothesis on NVMe Perfor=
mance and fsync</span>
<a href=3D"https://it-notes.dragas.net/2024/06/10/proxmox-vs-freebsd-which-=
virtualization-host-performs-better/#hypothesis-on-nvme-performance-and-fsy=
nc" class=3D"heading-mark"><svg class=3D"octicon octicon-link" viewBox=3D"0=
 0 16 16" width=3D"16" height=3D"16" aria-hidden=3D"true"><path d=3D"m7.775=
 3.275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751=
.0 01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002=
 2.002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018=
-1.042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.=
751.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 =
014.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.=
83.0l-2.5 2.5a1.998 1.998.0 000 2.83z"></path></svg></a></h6><p>An importan=
t observation from my tests is that VMs with the bhyve NVMe driver show sig=
nificantly higher performance compared to the same VMs with the virtio driv=
er or compared to the physical host system. This difference led me to hypot=
hesize that the bhyve NVMe driver might not correctly respect fsync operati=
ons, returning a positive result before the underlying file system has conf=
irmed the final write. However, this is just a theory based on benchmark re=
sults and is not supported by concrete data.</p><p>Specifically, I observed=
 that:</p><ul><li>The VM with the virtio driver has performance comparable =
to Proxmox.</li><li>The VM with the NVMe driver, whether on a ZFS dataset o=
r zvol, shows performance superior to the physical FreeBSD host.</li></ul><=
p>These observations suggest that the bhyve NVMe driver might =E2=80=9Cchea=
t=E2=80=9D by returning an ok for fsync operations before they are actually=
 completed. However, further testing and analysis are needed to confirm or =
refute this hypothesis.</p><h5 id=3D"host-physical-systems-and-filesystems"=
 class=3D"heading-element"><span>Host Physical Systems and Filesystems</spa=
n>
<a href=3D"https://it-notes.dragas.net/2024/06/10/proxmox-vs-freebsd-which-=
virtualization-host-performs-better/#host-physical-systems-and-filesystems"=
 class=3D"heading-mark"><svg class=3D"octicon octicon-link" viewBox=3D"0 0 =
16 16" width=3D"16" height=3D"16" aria-hidden=3D"true"><path d=3D"m7.775 3.=
275 1.25-1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 =
01.018-1.042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.=
002.0 00-2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.=
042zm-4.69 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751=
.751.0 01.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014=
.95.0.751.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.=
0l-2.5 2.5a1.998 1.998.0 000 2.83z"></path></svg></a></h5><ol><li><p><stron=
g>File Creation Speed</strong>:</p><ul><li><strong>Host FreeBSD (ZFS)</stro=
ng> shows the highest file creation speed at 1625.67 MiB/s, which is +68.03=
% compared to Host Proxmox (ZFS) and +156.72% compared to Host Proxmox (ext=
4).</li><li><strong>Host Proxmox (ext4)</strong> has a file creation speed =
of 633.13 MiB/s, which is -34.62% compared to Host Proxmox (ZFS).</li></ul>=
</li><li><p><strong>Read and Write Operations per Second</strong>:</p><ul><=
li><strong>Host FreeBSD (ZFS)</strong> demonstrates the highest read and wr=
ite operations per second with 1234.62 reads/s and 823.08 writes/s.<ul><li>=
Reads per second: +34.06% compared to Host Proxmox (ZFS) and +147.80% compa=
red to Host Proxmox (ext4).</li><li>Writes per second: +34.04% compared to =
Host Proxmox (ZFS) and +147.61% compared to Host Proxmox (ext4).</li></ul><=
/li><li><strong>Host Proxmox (ext4)</strong> shows a lower performance with=
 498.37 reads/s and 332.25 writes/s.</li><li><strong>Host Proxmox (ZFS)</st=
rong> has 920.95 reads/s and 613.96 writes/s.</li></ul></li><li><p><strong>=
fsync Operations per Second</strong>:</p><ul><li><strong>Host FreeBSD (ZFS)=
</strong> achieves the highest fsync operations per second at 2634.01 fsync=
s/s, which is +34.02% compared to Host Proxmox (ZFS) and +147.73% compared =
to Host Proxmox (ext4).</li><li><strong>Host Proxmox (ext4)</strong> has a =
lower performance with 1063.19 fsyncs/s.</li><li><strong>Host Proxmox (ZFS)=
</strong> achieves 1964.96 fsyncs/s.</li></ul></li><li><p><strong>Throughpu=
t</strong>:</p><ul><li><strong>Host FreeBSD (ZFS)</strong> again leads in t=
hroughput with 19.29 MiB/s read and 12.86 MiB/s write.<ul><li>Read throughp=
ut: +34.03% compared to Host Proxmox (ZFS) and +147.53% compared to Host Pr=
oxmox (ext4).</li><li>Write throughput: +34.08% compared to Host Proxmox (Z=
FS) and +147.79% compared to Host Proxmox (ext4).</li></ul></li><li><strong=
>Host Proxmox (ext4)</strong> has the lowest throughput with 7.79 MiB/s rea=
d and 5.19 MiB/s write.</li><li><strong>Host Proxmox (ZFS)</strong> has 14.=
39 MiB/s read and 9.59 MiB/s write.</li></ul></li><li><p><strong>Latency</s=
trong>:</p><ul><li><strong>Host FreeBSD (ZFS)</strong> shows the lowest ave=
rage latency at 0.21 ms and 95th percentile latency at 1.32 ms.<ul><li>Aver=
age latency: -27.59% compared to Host Proxmox (ZFS) and -60.38% compared to=
 Host Proxmox (ext4).</li><li>95th percentile latency: -26.27% compared to =
Host Proxmox (ZFS) and -51.29% compared to Host Proxmox (ext4).</li></ul></=
li><li><strong>Host Proxmox (ext4)</strong> has the highest average latency=
 at 0.53 ms and 95th percentile latency at 2.71 ms.</li><li><strong>Host Pr=
oxmox (ZFS)</strong> has an average latency of 0.29 ms and 95th percentile =
latency of 1.79 ms.</li></ul></li></ol><h5 id=3D"vms-vs-physical-hosts" cla=
ss=3D"heading-element"><span>VMs vs Physical Hosts</span>
<a href=3D"https://it-notes.dragas.net/2024/06/10/proxmox-vs-freebsd-which-=
virtualization-host-performs-better/#vms-vs-physical-hosts" class=3D"headin=
g-mark"><svg class=3D"octicon octicon-link" viewBox=3D"0 0 16 16" width=3D"=
16" height=3D"16" aria-hidden=3D"true"><path d=3D"m7.775 3.275 1.25-1.25a3.=
5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751=
.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.=
83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a=
1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.=
042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 =
01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998=
 1.998.0 000 2.83z"></path></svg></a></h5><ol><li><p><strong>File Creation =
Speed</strong>:</p><ul><li><strong>VM on FreeBSD (ZFS, NVMe)</strong> demon=
strates an outstanding file creation speed at 1467.83 MiB/s (+218.04% compa=
red to VM on Proxmox (LVM) and +259.77% compared to VM on Proxmox (ZFS)).</=
li><li><strong>VM on FreeBSD (zvol)</strong> achieves 1333.64 MiB/s, which =
is also significantly higher than VM on Proxmox (LVM) and VM on Proxmox (ZF=
S).</li></ul></li><li><p><strong>Read and Write Operations per Second</stro=
ng>:</p><ul><li><strong>VM on FreeBSD (ZFS, NVMe)</strong> shows exceptiona=
l performance with 11183.44 reads/s and 7455.62 writes/s.</li><li><strong>V=
M on FreeBSD (zvol)</strong> also performs excellently with 11834.53 reads/=
s and 7889.69 writes/s.</li><li>These values suggest that the NVMe driver m=
ight not be honoring fsync properly, resulting in inflated performance metr=
ics.</li></ul></li><li><p><strong>fsync Operations per Second</strong>:</p>=
<ul><li><strong>VM on FreeBSD (ZFS, NVMe)</strong> achieves 23858.08 fsyncs=
/s, and <strong>VM on FreeBSD (zvol)</strong> achieves 25247.36 fsyncs/s, b=
oth significantly higher than any other configuration.</li></ul></li><li><p=
><strong>Throughput</strong>:</p><ul><li><strong>VM on FreeBSD (ZFS, NVMe)<=
/strong> achieves the highest throughput with 174.74 MiB/s read and 116.49 =
MiB/s write.</li><li><strong>VM on FreeBSD (zvol)</strong> also has high th=
roughput at 184.91 MiB/s read and 123.28 MiB/s write.</li></ul></li><li><p>=
<strong>Latency</strong>:</p><ul><li><strong>VM on FreeBSD (ZFS, NVMe)</str=
ong> shows very low average latency at 0.02 ms and 95th percentile latency =
at 0.06 ms.</li><li><strong>VM on FreeBSD (zvol)</strong> has similarly low=
 latencies, indicating fast response times for I/O operations.</li></ul></l=
i></ol><h5 id=3D"vm-configurations-comparison" class=3D"heading-element"><s=
pan>VM Configurations Comparison</span>
<a href=3D"https://it-notes.dragas.net/2024/06/10/proxmox-vs-freebsd-which-=
virtualization-host-performs-better/#vm-configurations-comparison" class=3D=
"heading-mark"><svg class=3D"octicon octicon-link" viewBox=3D"0 0 16 16" wi=
dth=3D"16" height=3D"16" aria-hidden=3D"true"><path d=3D"m7.775 3.275 1.25-=
1.25a3.5 3.5.0 114.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.=
042.751.751.0 011.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-=
2.83-2.83l-1.25 1.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.6=
9 9.64a1.998 1.998.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01=
.018 1.042l-1.25 1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751=
.751.0 01-.018 1.042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.=
5a1.998 1.998.0 000 2.83z"></path></svg></a></h5><ol><li><p><strong>File Cr=
eation Speed</strong>:</p><ul><li>Among VMs, <strong>VM on FreeBSD (ZFS, NV=
Me)</strong> leads, followed by <strong>VM on FreeBSD (zvol)</strong>, and =
then <strong>VM on FreeBSD (ZFS, Virtio)</strong>.</li></ul></li><li><p><st=
rong>Read and Write Operations per Second</strong>:</p><ul><li><strong>VM o=
n FreeBSD (ZFS, NVMe)</strong> and <strong>VM on FreeBSD (zvol)</strong> bo=
th outperform <strong>VM on Proxmox (ZFS)</strong> and <strong>VM on Proxmo=
x (LVM)</strong> configurations significantly.</li><li><strong>VM on Proxmo=
x (ZFS)</strong> outperforms <strong>VM on Proxmox (LVM)</strong> in read a=
nd write operations.</li></ul></li><li><p><strong>fsync Operations per Seco=
nd</strong>:</p><ul><li><strong>VM on FreeBSD (ZFS, NVMe)</strong> and <str=
ong>VM on FreeBSD (zvol)</strong> have significantly higher fsync operation=
s compared to <strong>VM on Proxmox (ZFS)</strong> and <strong>VM on Proxmo=
x (LVM)</strong>.</li></ul></li><li><p><strong>Throughput</strong>:</p><ul>=
<li><strong>VM on FreeBSD (ZFS, NVMe)</strong> and <strong>VM on FreeBSD (z=
vol)</strong> have the highest throughput, followed by <strong>VM on Proxmo=
x (ZFS)</strong> and then <strong>VM on Proxmox (LVM)</strong>.</li></ul></=
li><li><p><strong>Latency</strong>:</p><ul><li><strong>VM on FreeBSD (ZFS, =
NVMe)</strong> and <strong>VM on FreeBSD (zvol)</strong> show the lowest la=
tencies among the VMs, indicating faster response times.</li><li><strong>VM=
 on Proxmox (ZFS)</strong> shows lower latencies compared to <strong>VM on =
Proxmox (LVM)</strong>.</li></ul></li></ol><p><strong>Cache Settings and Pe=
rformance Influence</strong></p><p>Cache settings can significantly influen=
ce the performance of virtualization systems. In my setup, I did not modify=
 the cache settings for the NVMe and virtio drivers, keeping the default se=
ttings. It is possible that the observed performance differences are also d=
ue to how different operating systems manage the caches of NVMe devices. I =
encourage other system administrators to explore the cache settings of thei=
r systems to see if changes in this area can influence benchmark results.</=
p><h3 id=3D"conclusion" class=3D"heading-element"><span>Conclusion</span>
<a href=3D"https://it-notes.dragas.net/2024/06/10/proxmox-vs-freebsd-which-=
virtualization-host-performs-better/#conclusion" class=3D"heading-mark"><sv=
g class=3D"octicon octicon-link" viewBox=3D"0 0 16 16" width=3D"16" height=
=3D"16" aria-hidden=3D"true"><path d=3D"m7.775 3.275 1.25-1.25a3.5 3.5.0 11=
4.95 4.95l-2.5 2.5a3.5 3.5.0 01-4.95.0.751.751.0 01.018-1.042.751.751.0 011=
.042-.018 1.998 1.998.0 002.83.0l2.5-2.5a2.002 2.002.0 00-2.83-2.83l-1.25 1=
.25a.751.751.0 01-1.042-.018.751.751.0 01-.018-1.042zm-4.69 9.64a1.998 1.99=
8.0 002.83.0l1.25-1.25a.751.751.0 011.042.018.751.751.0 01.018 1.042l-1.25 =
1.25a3.5 3.5.0 11-4.95-4.95l2.5-2.5a3.5 3.5.0 014.95.0.751.751.0 01-.018 1.=
042.751.751.0 01-1.042.018 1.998 1.998.0 00-2.83.0l-2.5 2.5a1.998 1.998.0 0=
00 2.83z"></path></svg></a></h3><p>Regarding RAM and CPU, the performance o=
f the VMs is comparable. There are slight differences in favor of Proxmox f=
or CPU and FreeBSD for RAM, but in my opinion, these differences are so neg=
ligible that they wouldn=E2=80=99t sway the decision towards one solution o=
r the other.</p><p>The I/O performance data clearly indicates that VM on Fr=
eeBSD with NVMe and ZFS outperforms all other configurations by a significa=
nt margin. This is evident in the file creation speed, read/write operation=
s per second, fsync operations per second, throughput, and latency metrics.=
 However, the exceptionally high performance of VM on FreeBSD with NVMe and=
 ZFS suggests that there might be an underlying issue, such as the NVMe dri=
ver not honoring fsync properly. This could lead to the VM believing that d=
ata has been written when it has not, resulting in artificially inflated pe=
rformance results.</p><p>When comparing physical hosts, Host FreeBSD (ZFS) =
demonstrates excellent performance, particularly in comparison to Host Prox=
mox (ZFS) and Host Proxmox (ext4).</p><p>When comparing VMs, VM on FreeBSD =
(ZFS, NVMe) and VM on FreeBSD (zvol) configurations stand out as the top pe=
rformers. However, it=E2=80=99s important to consider the potential fsync i=
ssue with NVMe storage. VM on Proxmox (ZFS) shows better performance than V=
M on Proxmox (LVM), but both are outperformed by the FreeBSD configurations=
.</p><p>The VM using virtio on FreeBSD also shows strong performance, albei=
t not as high as the NVMe configuration. It significantly outperforms Proxm=
ox configurations in terms of file creation speed, read/write operations pe=
r second, and throughput, while maintaining competitive latencies.</p><p>Th=
e virtio driver provides a stable and reliable option, making it a suitable=
 choice for environments where the NVMe driver=E2=80=99s potential fsync is=
sue might be a concern. This makes FreeBSD with virtio a balanced option fo=
r virtualization, offering both high performance and reliability.</p><p>In =
conclusion, while the VM on FreeBSD with NVMe and ZFS shows the best perfor=
mance, it is essential to investigate the potential issue with fsync operat=
ions.</p><p>By examining these performance metrics, users can make informed=
 decisions about their virtualization and storage configurations to optimiz=
e their systems for specific workloads and performance requirements.</p><p>=
In light of these tests and experiments, I can therefore affirm that my sen=
sations (and those of many users) of greater =E2=80=9Csnappiness=E2=80=9D o=
f the VMs on FreeBSD can be confirmed. Certainly, Proxmox is a stable solut=
ion, rich in features, battle-tested, and has many other valid points, but =
FreeBSD, especially with the nvme driver, demonstrates very high performanc=
e and a very low overhead in installation and operation.</p><p>I will conti=
nue to use both solutions with great satisfaction, but I will be even more =
encouraged to implement virtualization servers based on FreeBSD and bhyve.<=
/p></div><hr class=3D"awesome-hr"><h2 id=3D"see-also">Related Content</h2><=
ul><li><a href=3D"https://it-notes.dragas.net/2023/03/14/how-we-are-migrati=
ng-many-of-our-servers-from-linux-to-freebsd-part-3/" title=3D"How We Are M=
igrating (Many Of) Our Servers From Linux to FreeBSD - Part 3 - Proxmox to =
FreeBSD">How We Are Migrating (Many Of) Our Servers From Linux to FreeBSD -=
 Part 3 - Proxmox to FreeBSD</a></li><li><a href=3D"https://it-notes.dragas=
.net/2023/03/21/creating-a-mikrotik-chr-routeros-7-bhyve-vm-in-freebsd-2/" =
title=3D"Creating a Mikrotik CHR - RouterOS 7 - Bhyve VM in FreeBSD">Creati=
ng a Mikrotik CHR - RouterOS 7 - Bhyve VM in FreeBSD</a></li><li><a href=3D=
"https://it-notes.dragas.net/2022/11/01/creating-an-alpine-vm-on-bhyve-with=
-root-on-zfs-optionally-encrypted/" title=3D"Creating an Alpine Linux VM on=
 Bhyve - With Root on ZFS (Optionally Encrypted)">Creating an Alpine Linux =
VM on Bhyve - With Root on ZFS (Optionally Encrypted)</a></li><li><a href=
=3D"https://it-notes.dragas.net/2023/10/25/migrating-from-an-old-linux-serv=
er-to-a-new-freebsd-machine/" title=3D"Migrating From an Old Linux Server t=
o a New FreeBSD Machine">Migrating From an Old Linux Server to a New FreeBS=
D Machine</a></li><li><a href=3D"https://it-notes.dragas.net/2023/08/14/boo=
sting-network-performance-in-freebsds-vnet-jails/" title=3D"Boosting Networ=
k Performance in FreeBSD's VNET Jails">Boosting Network Performance in Free=
BSD's VNET Jails</a></li></ul><div class=3D"post-footer" id=3D"post-footer"=
><div class=3D"post-info"><div class=3D"post-info-line"><div class=3D"post-=
info-mod"><span title=3D"Updated on 2024-06-13 00:00:00">Updated on 13-06-2=
024&nbsp;</span></div></div><div class=3D"post-info-line"><div class=3D"pos=
t-info-md"></div><div class=3D"post-info-share"><span><a title=3D"Share on =
X" data-sharer=3D"twitter" data-url=3D"https://it-notes.dragas.net/2024/06/=
10/proxmox-vs-freebsd-which-virtualization-host-performs-better/" data-titl=
e=3D"Proxmox vs FreeBSD: Which Virtualization Host Performs Better?" data-v=
ia=3D"@stefanomarinell" data-hashtags=3D"freebsd,linux,proxmox,kvm,bhyve,ho=
sting,filesystems,virtualization,zfs,debian,server"><i class=3D"fa-brands f=
a-x-twitter fa-fw" aria-hidden=3D"true"></i></a>
<a title=3D"Share on Facebook" data-sharer=3D"facebook" data-url=3D"https:/=
/it-notes.dragas.net/2024/06/10/proxmox-vs-freebsd-which-virtualization-hos=
t-performs-better/" data-hashtag=3D"freebsd"><i class=3D"fa-brands fa-faceb=
ook-square fa-fw" aria-hidden=3D"true"></i></a>
<a title=3D"Share on Linkedin" data-sharer=3D"linkedin" data-url=3D"https:/=
/it-notes.dragas.net/2024/06/10/proxmox-vs-freebsd-which-virtualization-hos=
t-performs-better/"><i class=3D"fa-brands fa-linkedin fa-fw" aria-hidden=3D=
"true"></i></a>
<a title=3D"Share on WhatsApp" data-sharer=3D"whatsapp" data-url=3D"https:/=
/it-notes.dragas.net/2024/06/10/proxmox-vs-freebsd-which-virtualization-hos=
t-performs-better/" data-title=3D"Proxmox vs FreeBSD: Which Virtualization =
Host Performs Better?" data-web=3D""><i class=3D"fa-brands fa-whatsapp fa-f=
w" aria-hidden=3D"true"></i></a>
<a title=3D"Share on Hacker News" data-sharer=3D"hackernews" data-url=3D"ht=
tps://it-notes.dragas.net/2024/06/10/proxmox-vs-freebsd-which-virtualizatio=
n-host-performs-better/" data-title=3D"Proxmox vs FreeBSD: Which Virtualiza=
tion Host Performs Better?"><i class=3D"fa-brands fa-hacker-news fa-fw" ari=
a-hidden=3D"true"></i></a>
<a title=3D"Share on Reddit" data-sharer=3D"reddit" data-url=3D"https://it-=
notes.dragas.net/2024/06/10/proxmox-vs-freebsd-which-virtualization-host-pe=
rforms-better/"><i class=3D"fa-brands fa-reddit fa-fw" aria-hidden=3D"true"=
></i></a></span></div></div></div><div class=3D"post-info-more"><section cl=
ass=3D"post-tags"><i class=3D"fa-solid fa-tags fa-fw me-1" aria-hidden=3D"t=
rue"></i><a href=3D"https://it-notes.dragas.net/tags/freebsd/" class=3D"pos=
t-tag" title=3D"Tags - Freebsd">Freebsd</a><a href=3D"https://it-notes.drag=
as.net/tags/linux/" class=3D"post-tag" title=3D"Tags - Linux">Linux</a><a h=
ref=3D"https://it-notes.dragas.net/tags/proxmox/" class=3D"post-tag" title=
=3D"Tags - Proxmox">Proxmox</a><a href=3D"https://it-notes.dragas.net/tags/=
kvm/" class=3D"post-tag" title=3D"Tags - Kvm">Kvm</a><a href=3D"https://it-=
notes.dragas.net/tags/bhyve/" class=3D"post-tag" title=3D"Tags - Bhyve">Bhy=
ve</a><a href=3D"https://it-notes.dragas.net/tags/hosting/" class=3D"post-t=
ag" title=3D"Tags - Hosting">Hosting</a><a href=3D"https://it-notes.dragas.=
net/tags/filesystems/" class=3D"post-tag" title=3D"Tags - Filesystems">File=
systems</a><a href=3D"https://it-notes.dragas.net/tags/virtualization/" cla=
ss=3D"post-tag" title=3D"Tags - Virtualization">Virtualization</a><a href=
=3D"https://it-notes.dragas.net/tags/zfs/" class=3D"post-tag" title=3D"Tags=
 - Zfs">Zfs</a><a href=3D"https://it-notes.dragas.net/tags/debian/" class=
=3D"post-tag" title=3D"Tags - Debian">Debian</a><a href=3D"https://it-notes=
.dragas.net/tags/server/" class=3D"post-tag" title=3D"Tags - Server">Server=
</a></section><section><span><a>Back</a></span>&nbsp;|&nbsp;<span><a href=
=3D"https://it-notes.dragas.net/">Home</a></span></section></div><div class=
=3D"post-nav"><a href=3D"https://it-notes.dragas.net/2024/06/04/freebsd-tip=
s-and-tricks-creating-snapshots-with-ufs/" class=3D"post-nav-item" rel=3D"p=
rev" title=3D"FreeBSD Tips and Tricks: Creating Snapshots With UFS"><i clas=
s=3D"fa-solid fa-angle-left fa-fw" aria-hidden=3D"true"></i>FreeBSD Tips an=
d Tricks: Creating Snapshots With UFS</a><a href=3D"https://it-notes.dragas=
.net/2024/06/16/freebsd-blocking-country-access/" class=3D"post-nav-item" r=
el=3D"next" title=3D"Blocking Access From or to Specific Countries Using Fr=
eeBSD and Pf">Blocking Access From or to Specific Countries Using FreeBSD a=
nd Pf<i class=3D"fa-solid fa-angle-right fa-fw" aria-hidden=3D"true"></i></=
a></div></div></article><aside class=3D"toc" id=3D"toc-auto" aria-label=3D"=
Contents"><h2 class=3D"toc-title">Contents&nbsp;<i class=3D"toc-icon fa-sol=
id fa-angle-down fa-fw" aria-hidden=3D"true"></i></h2><div class=3D"toc-con=
tent" id=3D"toc-content-auto"></div></aside></main><footer class=3D"footer"=
><div class=3D"footer-container"><div class=3D"footer-line powered">Powered=
 by <a href=3D"https://gohugo.io/" target=3D"_blank" rel=3D"external nofoll=
ow noopener noreferrer" title=3D"Hugo 0.136.2"><img class=3D"hugo-icon" src=
=3D"https://it-notes.dragas.net/images/hugo.min.svg" alt=3D"Hugo logo"> Hug=
o</a> | Theme - <a href=3D"https://github.com/hugo-fixit/FixIt" target=3D"_=
blank" rel=3D"external" title=3D"FixIt v0.3.15"><img class=3D"fixit-icon" s=
rc=3D"https://it-notes.dragas.net/images/fixit.min.svg" alt=3D"FixIt logo">=
 FixIt</a></div><div class=3D"footer-line copyright" itemscope=3D"" itemtyp=
e=3D"http://schema.org/CreativeWork"><i class=3D"fa-regular fa-copyright fa=
-fw" aria-hidden=3D"true"></i>
<span itemprop=3D"copyrightYear">2018 - 2025</span><span class=3D"author" i=
temprop=3D"copyrightHolder">
<a href=3D"https://it-notes.dragas.net/">Stefano Marinelli</a></span></div>=
</div></footer></div><div class=3D"widgets"><div class=3D"fixed-buttons ani=
mate__faster animate__animated animate__fadeIn"><div class=3D"fixed-button =
back-to-top" role=3D"button" aria-label=3D"Back to Top"><i class=3D"fa-soli=
d fa-arrow-up fa-fw" aria-hidden=3D"true"></i><span class=3D"variant-numeri=
c d-none">30%</span></div></div><div id=3D"mask"></div><div class=3D"readin=
g-progress-bar" style=3D"left: 0px; top: 0px; --progress: 30.22%;"></div></=
div><link rel=3D"stylesheet" href=3D"https://it-notes.dragas.net/lib/katex/=
katex.min.af6f85907cdfd6ed3e4906d93a8233d91c5638859f744cd1b98c9b1a3ccaab5f2=
31bdcda49f132f6cdfe8cca86ff33ed468affab8a9a502610a664a34f0f0cfa.css" as=3D"=
style"><link rel=3D"stylesheet" href=3D"https://it-notes.dragas.net/lib/coo=
kieconsent/cookieconsent.min.2d0f7b71a99aaff94e9624ff32a8dc42ce645a0cba433f=
dc091cf34735027efd1fa2db024c2f591d768f426255f17bbf3d500b7c967b0437b3979956d=
ffa81c6.css"></body></html>
------MultipartBoundary--gWmtkLL3aPLL9QvHLWg1Yif3XzwEYNRGNBhxAsKdsK----
Content-Type: text/css
Content-Transfer-Encoding: quoted-printable
Content-Location: cid:css-b229ca40-2394-47f9-8c30-bded7f1341a4@mhtml.blink

@charset "utf-8";

.cc-color-override-183142524.cc-window { color: rgb(0, 0, 0); background-co=
lor: rgb(26, 163, 255); }

.cc-color-override-183142524.cc-revoke { color: rgb(0, 0, 0); background-co=
lor: rgb(26, 163, 255); }

.cc-color-override-183142524 .cc-link, .cc-color-override-183142524 .cc-lin=
k:active, .cc-color-override-183142524 .cc-link:visited { color: rgb(0, 0, =
0); }

.cc-color-override-183142524 .cc-btn { color: rgb(0, 0, 0); border-color: t=
ransparent; background-color: rgb(240, 240, 240); }

.cc-color-override-183142524 .cc-btn:hover, .cc-color-override-183142524 .c=
c-btn:focus { background-color: rgb(255, 255, 255); }

.cc-color-override-183142524 .cc-highlight .cc-btn:first-child { color: rgb=
(0, 0, 0); }
------MultipartBoundary--gWmtkLL3aPLL9QvHLWg1Yif3XzwEYNRGNBhxAsKdsK----
Content-Type: text/css
Content-Transfer-Encoding: quoted-printable
Content-Location: https://it-notes.dragas.net/css/style.min.180f49bb74aac7ee38959d0058e1b9126a18b0dad12d2f5e73019f770be5f9c4375ff8d6f84421986de0169782ed438ba297089c0e5c33ec7e01ac09e56f70da.css

@charset "utf-8";

:root { --fi-primary: #1772ee; --fi-secondary: #919191; --fi-success: #13ce=
66; --fi-info: #0dcaf0; --fi-warning: #ffba00; --fi-danger: #ff4949; --fi-s=
croll-mt: calc(3.5rem + .5rem); --fi-breadcrumb-height: 0px; --fi-hr-backgr=
ound-color: #e3e3e3; --fi-hr-before-color: #ec638c; --fi-scrollbar-thumb-co=
lor: #a6a6a6; --fi-scrollbar-thumb-hover-color: #7d7d7d; --fi-scrollbar-tra=
ck-color: transparent; --fi-scrollbar-width: thin; --fi-scrollbar-width-leg=
acy: 12px; }

[data-theme=3D"dark"] { --fi-primary: #1066db; --fi-secondary: #848484; --f=
i-success: #11b75a; --fi-info: #0cb6d8; --fi-warning: #e6a700; --fi-danger:=
 #ff3030; --fi-hr-background-color: #434343; --fi-hr-before-color: #f5f5f5;=
 }

html { line-height: 1.15; text-size-adjust: 100%; }

body { margin: 0px; }

main { display: block; }

h1 { font-size: 2em; margin: 0.67em 0px; }

hr { box-sizing: content-box; height: 0px; overflow: visible; }

pre { font-family: monospace, monospace; font-size: 1em; }

a { background-color: transparent; }

abbr[title] { border-bottom: none; text-decoration: underline dotted; }

b, strong { font-weight: bolder; }

code, kbd, samp { font-family: monospace, monospace; font-size: 1em; }

small { font-size: 80%; }

sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-ali=
gn: baseline; }

sub { bottom: -0.25em; }

sup { top: -0.5em; }

img { border-style: none; }

button, input, optgroup, select, textarea { font-family: inherit; font-size=
: 100%; line-height: 1.15; margin: 0px; }

button, input { overflow: visible; }

button, select { text-transform: none; }

button, [type=3D"button"], [type=3D"reset"], [type=3D"submit"] { appearance=
: button; }

fieldset { padding: 0.35em 0.75em 0.625em; }

legend { box-sizing: border-box; color: inherit; display: table; max-width:=
 100%; padding: 0px; white-space: normal; }

progress { vertical-align: baseline; }

textarea { overflow: auto; }

[type=3D"checkbox"], [type=3D"radio"] { box-sizing: border-box; padding: 0p=
x; }

[type=3D"number"]::-webkit-inner-spin-button, [type=3D"number"]::-webkit-ou=
ter-spin-button { height: auto; }

[type=3D"search"] { appearance: textfield; outline-offset: -2px; }

[type=3D"search"]::-webkit-search-decoration { appearance: none; }

::-webkit-file-upload-button { appearance: button; font: inherit; }

details { display: block; }

summary { display: list-item; }

template { display: none; }

[hidden] { display: none; }

html { font-family: system-ui, -apple-system, BlinkMacSystemFont, "PingFang=
 SC", "Microsoft YaHei UI", "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, =
"Fira Sans", "Droid Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; =
font-weight: 400; font-size: 16px; line-height: 1.5rem; width: 100%; scroll=
-behavior: smooth; overflow: overlay; }

@media screen and (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
}

::selection { background-color: rgba(53, 166, 247, 0.25); }

[data-theme=3D"dark"] ::selection { background-color: rgba(50, 112, 194, 0.=
4); }

body { background-color: rgb(255, 255, 255); color: rgb(22, 18, 9); overflo=
w-wrap: break-word; }

[data-theme=3D"dark"] body { color: rgb(177, 177, 186); background-color: r=
gb(41, 42, 46); }

iframe { border: 0px; border-radius: 5px; }

[role=3D"button"] { cursor: pointer; }

summary { cursor: pointer; }

abbr[title] { cursor: help; text-decoration-skip-ink: none; }

a, a::before, a::after { text-decoration: none; color: rgb(22, 18, 9); }

[data-theme=3D"dark"] a, [data-theme=3D"dark"] a::before, [data-theme=3D"da=
rk"] a::after { color: rgb(177, 177, 186); }

a:active, a:hover { color: rgb(41, 131, 187); }

[data-theme=3D"dark"] a:active, [data-theme=3D"dark"] a:hover { color: rgb(=
255, 255, 255); }

@supports (scrollbar-width: auto) {
  * { scrollbar-color: var(--fi-scrollbar-thumb-color) var(--fi-scrollbar-t=
rack-color); scrollbar-width: var(--fi-scrollbar-width); }
}

::-webkit-scrollbar { height: var(--fi-scrollbar-width-legacy); width: var(=
--fi-scrollbar-width-legacy); overflow: visible; }

::-webkit-scrollbar-button { height: 0px; width: 0px; }

::-webkit-scrollbar-corner { background-color: var(--fi-scrollbar-track-col=
or); }

::-webkit-scrollbar-thumb { background-color: var(--fi-scrollbar-thumb-colo=
r); }

::-webkit-scrollbar-thumb:hover { background-color: var(--fi-scrollbar-thum=
b-hover-color); }

::-webkit-scrollbar-track { background-color: var(--fi-scrollbar-track-colo=
r); }

::-webkit-scrollbar-thumb, ::-webkit-scrollbar-track { background-clip: pad=
ding-box; border: 3px solid transparent; border-radius: 100px; }

#mask { background-repeat: no-repeat; background-position: center center; p=
osition: fixed; top: 0px; left: 0px; width: 100%; height: 100%; background-=
color: rgba(0, 0, 0, 0); z-index: -1; }

.blur #mask { z-index: 100; background-color: rgba(0, 0, 0, 0.25); }

img { border-radius: 2.5px; }

svg.icon { display: inline-block; width: 1.25em; height: 1em; text-align: c=
enter; }

svg.icon path { fill: currentcolor; }

img.emoji { display: inline-block; height: 1em; width: 1em; margin: 0px 0.0=
5em 0px 0.1em; vertical-align: -0.1em; }

.hugo-icon, .fixit-icon { display: inline-block; height: 1.2em; width: 1.2e=
m; line-height: 1.2em; position: relative; vertical-align: text-bottom; }

.details > .details-summary { border-radius: 5px; }

.details > .details-summary:hover { cursor: pointer; }

.details > .details-summary i.details-icon { color: rgb(177, 177, 186); tra=
nsition: transform 0.2s; }

[data-theme=3D"dark"] .details > .details-summary i.details-icon { color: r=
gb(144, 144, 146); }

.details > .details-content { max-height: 0px; overflow-y: hidden; transiti=
on: max-height 0.2s cubic-bezier(0, 1, 0, 1) -0.1s; }

.details.open > .details-summary { border-radius: 5px 5px 0px 0px; }

.details.open > .details-summary i.details-icon { transform: rotate(90deg);=
 }

.details.open > .details-content { max-height: 100%; border-radius: 0px 0px=
 5px 5px; transition: max-height 0.2s cubic-bezier(0.5, 0, 1, 0); }

.details.disabled > .details-summary { cursor: default; }

.cc-window.cc-banner .cc-btn { color: rgb(22, 18, 9); }

.cc-window.cc-banner .cc-btn:hover, .cc-window.cc-banner .cc-btn:focus { ba=
ckground-color: rgb(204, 204, 204); }

[data-theme=3D"dark"] .cc-window.cc-banner .cc-btn { color: rgb(22, 18, 9);=
 }

[data-theme=3D"dark"] .cc-window.cc-banner .cc-btn:hover, [data-theme=3D"da=
rk"] .cc-window.cc-banner .cc-btn:focus { background-color: rgb(255, 255, 2=
55); }

.fixed-button { position: fixed; right: 1.5rem; font-size: 1rem; line-heigh=
t: 1.5rem; padding: 0.5rem 0.625rem; color: rgb(177, 177, 186); background-=
color: rgb(248, 248, 248); z-index: 100; border-radius: 1.25rem; transition=
: color 0.4s; }

.blur .fixed-button { filter: blur(1.5px); }

.fixed-button:hover, .fixed-button:active { color: rgb(22, 18, 9); cursor: =
pointer; }

.fixed-button:active, .fixed-button:focus, .fixed-button:hover { outline: n=
one; }

[data-theme=3D"dark"] .fixed-button { color: rgb(144, 144, 146); background=
-color: rgb(37, 38, 39); }

[data-theme=3D"dark"] .fixed-button:hover, [data-theme=3D"dark"] .fixed-but=
ton:active { color: rgb(177, 177, 186); }

.back-to-top { bottom: 1.5rem; }

.view-comments { bottom: 4.5rem; }

@keyframes octocat-wave {=20
  0%, 100% { transform: rotate(0deg); }
  20%, 60% { transform: rotate(-25deg); }
  40%, 80% { transform: rotate(10deg); }
}

.github-corner { position: fixed; top: 0px; z-index: 200; }

.github-corner :hover .octo-arm { animation: 560ms ease-in-out 0s 1 normal =
none running octocat-wave; }

.github-corner svg { width: 3.5rem; height: 3.5rem; border: 0px; color: rgb=
(255, 255, 255); fill: rgb(37, 38, 39); }

[data-theme=3D"dark"] .github-corner svg { color: rgb(0, 0, 0); fill: rgb(2=
48, 248, 248); }

.github-corner.left { left: 0px; }

.github-corner.left svg { transform: scale(-1, 1); }

.github-corner.right { right: 0px; }

.noscript-warning { background-color: var(--fi-danger); color: white; font-=
size: 1rem; font-weight: bold; position: fixed; text-align: center; left: 0=
px; bottom: 0px; width: 100%; z-index: 200; }

[data-theme=3D"dark"] .noscript-warning { background-color: var(--fi-danger=
-dark); }

.reading-progress-bar { --progress: 0; height: var(--progress-h, 2px); widt=
h: var(--progress); background-color: var(--bg-progress, var(--fi-info)); p=
osition: fixed; z-index: 200; }

[data-theme=3D"dark"] .reading-progress-bar { background-color: var(--bg-pr=
ogress-dark, var(--fi-info-dark)); }

.typeit { --ti-cursor-font-family: system-ui,-apple-system,BlinkMacSystemFo=
nt,PingFang SC,Microsoft YaHei UI,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,F=
ira Sans,Droid Sans,Helvetica Neue,Helvetica,Arial,sans-serif; --ti-cursor-=
transform: translateX(0); }

.typeit .highlight { padding: 0.375rem; font-size: 0.875rem; font-family: "=
Source Code Pro", Menlo, Consolas, Monaco, monospace, system-ui, -apple-sys=
tem, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei UI", "Segoe UI", R=
oboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neu=
e", Helvetica, Arial, sans-serif; font-weight: bold; word-break: break-all;=
 white-space: pre-wrap; }

.wrapper { display: flex; flex-direction: column; min-height: 100vh; width:=
 100%; }

.wrapper main { flex: 1 0 auto; }

.wrapper main aside { flex: 1 1 0%; padding: 0.5rem; }

.wrapper main aside:not(:has(~ aside)) { display: none; }

.wrapper main.container { display: flex; align-items: flex-start; justify-c=
ontent: center; padding-inline: 1rem; gap: 0.5rem; }

.wrapper main.container.container-reverse { flex-direction: row-reverse; }

.wrapper main.container:has(.home:not(.posts)) { align-items: center; }

header { width: 100%; background-color: rgb(248, 248, 248); z-index: 200; t=
ransition: box-shadow 0.3s; }

[data-theme=3D"dark"] header { background-color: rgb(37, 38, 39); }

header:hover { box-shadow: rgba(0, 0, 0, 0.1) 0px 0px 1.5rem 0px; }

[data-theme=3D"dark"] header:hover { box-shadow: rgba(255, 255, 255, 0.1) 0=
px 0px 1.5rem 0px; }

.header-wrapper { display: flex; justify-content: space-between; align-item=
s: center; box-sizing: border-box; width: 100%; }

.header-title { font-family: system-ui, -apple-system, BlinkMacSystemFont, =
"PingFang SC", "Microsoft YaHei UI", "Segoe UI", Roboto, Oxygen, Ubuntu, Ca=
ntarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Helvetica, Arial, san=
s-serif; font-weight: bold; margin-right: 0.5rem; min-width: 10%; overflow:=
 hidden; white-space: nowrap; text-overflow: ellipsis; flex: 10 1 0%; }

.header-title .logo { min-height: 1.5em; height: 1.5em; vertical-align: mid=
dle; width: auto; }

.header-title .header-title-text { margin-left: 0.25rem; margin-right: 0.25=
rem; }

.header-title .header-subtitle { margin-left: 0.25rem; font-size: 0.6em; }

.menu { margin: 0px; padding: 0px; }

.menu .menu-item-divider { list-style: none; margin: 0.25rem 0.5rem; height=
: 1px; background-color: rgb(227, 227, 227); }

[data-theme=3D"dark"] .menu .menu-item-divider { background-color: rgb(67, =
67, 67); }

.menu .menu-item { list-style: none; }

.menu .menu-item .dropdown-icon { margin-left: 0.25rem; font-size: 0.875em;=
 color: rgb(22, 18, 9); }

[data-theme=3D"dark"] .menu .menu-item .dropdown-icon { color: rgb(177, 177=
, 186); }

.menu .menu-item .dropdown-icon.open::before { content: "=EF=81=B8"; }

.menu .menu-item.active > .menu-link, .menu .menu-item.active > .nested-ite=
m > .menu-link { font-weight: bold; color: rgb(22, 18, 9); }

[data-theme=3D"dark"] .menu .menu-item.active > .menu-link, [data-theme=3D"=
dark"] .menu .menu-item.active > .nested-item > .menu-link { color: rgb(255=
, 255, 255); }

.menu .menu-item .menu-link[href=3D"javascript:void(0);"] { color: inherit;=
 }

.menu .menu-item .menu-link i { transform: perspective(1rem); transition: t=
ransform 0.4s; }

.menu .menu-item .menu-link:hover i { transform: perspective(1rem) translat=
eZ(0.2rem); }

.menu .menu-item.language-switch, .menu .menu-item.theme-switch { cursor: p=
ointer; }

.search { position: relative; }

.search input { color: transparent; box-sizing: border-box; height: 2.5rem;=
 width: 1.25rem; border-radius: 0.5rem; border: none; outline: none; backgr=
ound-color: transparent; transition: width 0.3s; vertical-align: baseline !=
important; }

.search input::-webkit-input-placeholder { color: rgba(0, 0, 0, 0); }

.search input::placeholder { color: rgba(0, 0, 0, 0); }

.search .search-button { margin: 0px; position: absolute; left: auto; right=
: 1rem; }

.search .search-toggle { left: 0.5rem; right: auto; }

#header-desktop.open .search .search-toggle { left: 1rem; }

.search .search-loading { display: none; }

.search .search-clear { display: none; }

.open .search input, .search.mobile input { color: rgb(22, 18, 9); backgrou=
nd-color: rgb(233, 233, 233); padding: 0px 2rem; }

[data-theme=3D"dark"] .open .search input, [data-theme=3D"dark"] .search.mo=
bile input { color: rgb(177, 177, 186); background-color: rgb(54, 54, 54); =
}

[data-theme=3D"dark"] .open .search input::-webkit-input-placeholder, [data=
-theme=3D"dark"] .search.mobile input::-webkit-input-placeholder { color: r=
gb(144, 144, 146); }

[data-theme=3D"dark"] .open .search input::placeholder, [data-theme=3D"dark=
"] .search.mobile input::placeholder { color: rgb(144, 144, 146); }

.open .search input::-webkit-input-placeholder, .search.mobile input::-webk=
it-input-placeholder { color: rgb(177, 177, 186); }

.open .search input::placeholder, .search.mobile input::placeholder { color=
: rgb(177, 177, 186); }

.open .search .search-button, .search.mobile .search-button { color: rgb(17=
7, 177, 186); }

[data-theme=3D"dark"] .open .search .search-button, [data-theme=3D"dark"] .=
search.mobile .search-button { color: rgb(144, 144, 146); }

.open .search .search-clear:hover, .search.mobile .search-clear:hover { col=
or: rgb(255, 107, 107); }

.open .search .search-toggle:hover, .search.mobile .search-toggle:hover { c=
ursor: default; }

.theme-switch i { transform: rotate(225deg); transition: transform 0.4s; }

.theme-switch:hover i { transform: rotate(45deg); }

#header-desktop { display: block; position: sticky; top: 0px; height: 3.5re=
m; line-height: 3.5rem; box-sizing: border-box; }

[data-header-desktop=3D"normal"] #header-desktop { position: static; }

#header-desktop nav { overflow: hidden; white-space: nowrap; }

#header-desktop .header-wrapper { padding: 0px 2rem 0px max(10vh, 3.5rem); =
height: 100%; }

#header-desktop .header-wrapper[data-github-corner=3D"right"] { padding-rig=
ht: 3.5rem; }

#header-desktop .header-wrapper .header-title { font-size: 1.5rem; height: =
100%; }

#header-desktop .header-wrapper .menu { display: flex; flex-flow: row; floa=
t: right; }

#header-desktop .header-wrapper .menu > .menu-item:hover .sub-menu { displa=
y: block; transform: translateX(-0.5rem); }

#header-desktop .header-wrapper .menu > .menu-item.language-switch:hover .s=
ub-menu { transform: translateX(calc(-100% + 1.75rem)); }

#header-desktop .header-wrapper .menu .menu-item { padding: 0px 0.5rem; }

#header-desktop .header-wrapper .menu .menu-item.delimiter { width: 0px; ma=
rgin: 0.125rem 0.25rem; padding: 0px; border-left: 1px dashed rgb(218, 218,=
 222); }

[data-theme=3D"dark"] #header-desktop .header-wrapper .menu .menu-item.deli=
miter { border-left-color: rgb(106, 106, 108); }

#header-desktop .header-wrapper .menu .sub-menu { position: absolute; margi=
n: 0px; padding: 0.25rem 0px; display: none; top: calc(2.75rem); border-rad=
ius: 5px; border: 1px solid rgb(227, 227, 227); background-color: rgb(248, =
248, 248); transition: box-shadow 0.3s; box-shadow: rgba(0, 0, 0, 0.1) 0px =
0px 1.5rem 0px; }

[data-theme=3D"dark"] #header-desktop .header-wrapper .menu .sub-menu { bac=
kground-color: rgb(37, 38, 39); border-color: rgb(67, 67, 67); box-shadow: =
rgba(255, 255, 255, 0.1) 0px 0px 1.5rem 0px; }

#header-desktop .header-wrapper .menu .sub-menu .menu-item { height: 1.75re=
m; line-height: 1.75rem; max-width: 15rem; white-space: nowrap; text-overfl=
ow: ellipsis; overflow-x: hidden; }

#header-desktop.open .header-wrapper .menu .menu-item.search input { width:=
 24rem; }

#header-mobile { display: none; position: sticky; top: 0px; min-height: 3.5=
rem; line-height: 3.5rem; }

[data-header-mobile=3D"normal"] #header-mobile { position: static; }

#header-mobile .header-container { padding: 0px; margin: 0px; }

#header-mobile .header-container .header-wrapper { padding: 0px 1rem; font-=
size: 1.125rem; transition: margin-top 0.3s; }

#header-mobile .header-container .header-wrapper .header-title { font-size:=
 1.5rem; max-width: 80%; }

#header-mobile .header-container .header-wrapper .menu-toggle { line-height=
: 4rem; cursor: pointer; transition: width 0.3s; }

#header-mobile .header-container .header-wrapper .menu-toggle span { displa=
y: block; background: rgb(22, 18, 9); width: 1.5rem; height: 2px; border-ra=
dius: 3px; transition: 0.3s ease-in-out; }

[data-theme=3D"dark"] #header-mobile .header-container .header-wrapper .men=
u-toggle span { background: rgb(177, 177, 186); }

#header-mobile .header-container .header-wrapper .menu-toggle span:nth-chil=
d(1) { margin-bottom: 0.5rem; }

#header-mobile .header-container .header-wrapper .menu-toggle span:nth-chil=
d(3) { margin-top: 0.5rem; }

#header-mobile .header-container .header-wrapper .menu-toggle.active span:n=
th-child(1) { transform: rotate(45deg) translate(0.4rem, 0.5rem); }

#header-mobile .header-container .header-wrapper .menu-toggle.active span:n=
th-child(2) { opacity: 0; }

#header-mobile .header-container .header-wrapper .menu-toggle.active span:n=
th-child(3) { transform: rotate(-45deg) translate(0.4rem, -0.5rem); }

#header-mobile .header-container .menu { background: rgb(248, 248, 248); bo=
rder-top: 2px solid rgb(240, 240, 240); display: none; overflow-y: overlay;=
 max-height: 70vh; box-shadow: rgba(0, 0, 0, 0.1) 0px 0.125rem 0.25rem; --f=
i-scrollbar-width: none; --fi-scrollbar-width-legacy: 0; }

[data-theme=3D"dark"] #header-mobile .header-container .menu { box-shadow: =
rgba(255, 255, 255, 0.1) 0px 0.125rem 0.25rem; }

#header-mobile .header-container .menu .search-wrapper { display: flex; jus=
tify-content: space-between; align-items: center; box-sizing: border-box; p=
adding: 0.5rem 1rem; line-height: 2.5rem; position: sticky; top: 0px; backg=
round-color: rgb(248, 248, 248); z-index: 50; }

[data-theme=3D"dark"] #header-mobile .header-container .menu .search-wrappe=
r { background-color: rgb(37, 38, 39); }

#header-mobile .header-container .menu .search { flex-grow: 10; }

#header-mobile .header-container .menu .search .algolia-autocomplete, #head=
er-mobile .header-container .menu .search input { width: 100%; }

#header-mobile .header-container .menu .search-loading, #header-mobile .hea=
der-container .menu .search-clear { right: 0.5rem; }

#header-mobile .header-container .menu .search-button { top: 0px; }

#header-mobile .header-container .menu .search-cancel { display: none; marg=
in-left: 0.75rem; }

#header-mobile .header-container .menu .menu-item { display: block; positio=
n: relative; line-height: 2.5rem; padding: 0px 1rem; }

#header-mobile .header-container .menu .menu-item:not(.menu-system):hover {=
 background-color: rgb(242, 242, 243); }

[data-theme=3D"dark"] #header-mobile .header-container .menu .menu-item:not=
(.menu-system):hover { background-color: rgb(83, 83, 85); }

#header-mobile .header-container .menu .menu-item .menu-link { display: blo=
ck; white-space: nowrap; text-overflow: ellipsis; overflow-x: hidden; flex:=
 4 1 0%; }

#header-mobile .header-container .menu .menu-item .nested-item { display: f=
lex; justify-content: space-between; align-items: center; }

#header-mobile .header-container .menu .menu-item .nested-item .menu-link {=
 max-width: 80%; }

#header-mobile .header-container .menu .menu-system { display: flex; justif=
y-content: center; gap: 0.25rem; position: sticky; bottom: 0px; line-height=
: 2.5rem; padding: 0px 1rem; background-color: rgb(248, 248, 248); }

[data-theme=3D"dark"] #header-mobile .header-container .menu .menu-system {=
 background-color: rgb(37, 38, 39); }

#header-mobile .header-container .menu .menu-system .menu-system-item { pad=
ding-inline: 0.5rem; }

#header-mobile .header-container .menu .menu-system .language-switch { posi=
tion: relative; }

#header-mobile .header-container .menu .menu-system .language-switch .langu=
age-select { position: absolute; opacity: 0; left: 0px; top: 0px; width: 10=
0%; height: 100%; }

#header-mobile .header-container .menu .sub-menu { padding-left: 0px; displ=
ay: none; }

#header-mobile .header-container .menu .sub-menu.open { display: block; }

#header-mobile .header-container .menu .sub-menu .menu-item:hover { backgro=
und-color: rgb(231, 231, 234); }

[data-theme=3D"dark"] #header-mobile .header-container .menu .sub-menu .men=
u-item:hover { background-color: rgb(93, 93, 95); }

#header-mobile .header-container .menu.active { display: block; }

[data-theme=3D"dark"] #header-mobile .header-container .menu { background: =
rgb(37, 38, 39); border-top-color: rgb(54, 54, 54); }

#header-mobile.open .header-wrapper { margin-top: -3.5rem; }

#header-mobile.open .menu { padding-top: 0px; border-top: none; }

#header-mobile.open .menu .menu-item { display: none; }

#header-mobile.open .menu .search-cancel { display: inline; }

.search-dropdown { position: fixed; top: 3.5rem; z-index: 200; box-shadow: =
rgba(0, 0, 0, 0.1) 0px 0.125rem 0.25rem; }

[data-theme=3D"dark"] .search-dropdown { box-shadow: rgba(255, 255, 255, 0.=
1) 0px 0.125rem 0.25rem; }

.search-dropdown.desktop { right: 2rem; width: 30rem; }

.search-dropdown.mobile { right: 0px; width: 100%; }

.search-dropdown .dropdown-menu { right: 0px !important; background-color: =
rgb(255, 255, 255); }

[data-theme=3D"dark"] .search-dropdown .dropdown-menu { background-color: r=
gb(41, 42, 46); }

.search-dropdown .dropdown-menu .suggestions { overflow-y: auto; max-height=
: calc(-3.5rem + 100vh); }

.search-dropdown .dropdown-menu .suggestions .suggestion { padding: 0.75rem=
 1rem; }

.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-title =
{ display: inline-block; overflow: hidden; text-overflow: ellipsis; white-s=
pace: nowrap; font-size: 1rem; font-weight: bold; max-width: 75%; }

.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-date {=
 font-size: 0.875rem; float: right; text-align: right; color: rgb(177, 177,=
 186); }

[data-theme=3D"dark"] .search-dropdown .dropdown-menu .suggestions .suggest=
ion .suggestion-date { color: rgb(144, 144, 146); }

.search-dropdown .dropdown-menu .suggestions .suggestion .suggestion-contex=
t { line-height: 1.25rem; display: -webkit-box; -webkit-box-orient: vertica=
l; -webkit-line-clamp: 2; overflow: hidden; text-overflow: ellipsis; overfl=
ow-wrap: break-word; color: rgb(177, 177, 186); }

[data-theme=3D"dark"] .search-dropdown .dropdown-menu .suggestions .suggest=
ion .suggestion-context { color: rgb(144, 144, 146); }

.search-dropdown .dropdown-menu .suggestions .suggestion em { font-style: n=
ormal; background-color: rgba(53, 166, 247, 0.25); }

[data-theme=3D"dark"] .search-dropdown .dropdown-menu .suggestions .suggest=
ion em { background-color: rgba(50, 112, 194, 0.4); }

.search-dropdown .dropdown-menu .suggestions .suggestion.cursor { backgroun=
d: rgb(230, 235, 241); }

[data-theme=3D"dark"] .search-dropdown .dropdown-menu .suggestions .suggest=
ion.cursor { background: rgb(56, 64, 73); }

.search-dropdown .dropdown-menu .suggestions .suggestion:hover { cursor: po=
inter; }

.search-dropdown .dropdown-menu .search-empty { padding: 1rem; text-align: =
center; }

.search-dropdown .dropdown-menu .search-empty .search-query { font-weight: =
bold; }

[data-theme=3D"dark"] .search-dropdown .dropdown-menu .search-empty .search=
-query { color: rgb(221, 221, 221); }

.search-dropdown .dropdown-menu .search-footer { padding: 0.5rem 1rem; floa=
t: right; font-size: 0.8rem; color: rgb(177, 177, 186); }

.search-dropdown .dropdown-menu .search-footer [data-theme=3D"dark"] { colo=
r: rgb(144, 144, 146); }

.search-dropdown .dropdown-menu .search-footer a, .search-dropdown .dropdow=
n-menu .search-footer a::before, .search-dropdown .dropdown-menu .search-fo=
oter a::after { text-decoration: none; color: rgb(35, 118, 183); }

[data-theme=3D"dark"] .search-dropdown .dropdown-menu .search-footer a, [da=
ta-theme=3D"dark"] .search-dropdown .dropdown-menu .search-footer a::before=
, [data-theme=3D"dark"] .search-dropdown .dropdown-menu .search-footer a::a=
fter { color: rgb(23, 129, 181); }

.search-dropdown .dropdown-menu .search-footer a:active, .search-dropdown .=
dropdown-menu .search-footer a:hover { color: rgb(234, 81, 127); }

[data-theme=3D"dark"] .search-dropdown .dropdown-menu .search-footer a:acti=
ve, [data-theme=3D"dark"] .search-dropdown .dropdown-menu .search-footer a:=
hover { color: rgb(204, 85, 149); }

.search-dropdown .dropdown-menu .search-footer a { font-size: 1rem; }

.breadcrumb-container { padding-inline: 1rem; font-size: 0.75rem; backgroun=
d-color: rgb(255, 255, 255); z-index: 100; }

[data-theme=3D"dark"] .breadcrumb-container { background-color: rgb(41, 42,=
 46); }

.breadcrumb-container.sticky { position: sticky; top: 3.5rem; }

.breadcrumb-container .breadcrumb { display: flex; flex-wrap: wrap; padding=
: 0.5rem 0px; margin: 0px auto; list-style: none; border-bottom: 1px inset =
rgb(240, 240, 240); }

[data-theme=3D"dark"] .breadcrumb-container .breadcrumb { border-bottom-col=
or: rgb(54, 54, 54); }

.breadcrumb-container .breadcrumb .breadcrumb-item { display: flex; }

.breadcrumb-container .breadcrumb .breadcrumb-item + .breadcrumb-item::befo=
re { content: attr(data-separator); display: inline-block; padding-inline: =
0.5rem; color: rgb(177, 177, 186); }

[data-theme=3D"dark"] .breadcrumb-container .breadcrumb .breadcrumb-item + =
.breadcrumb-item::before { color: rgb(144, 144, 146); }

.breadcrumb-container .breadcrumb .breadcrumb-item.active { color: var(--fi=
-secondary); }

footer { height: auto; width: 100%; text-align: center; line-height: 1.25re=
m; padding: 1rem 0px; }

footer .footer-container { display: flex; flex-direction: column; font-size=
: 0.875rem; }

footer .footer-container .footer-line { width: 100%; }

footer .footer-container .footer-line .footer-divider:not(:first-child)::be=
fore { content: "|"; margin-left: 0.25rem; margin-right: 0.25rem; }

footer .footer-container .footer-line .animate-icon { color: rgb(220, 20, 6=
0); animation: 1.33s ease-in-out 0s infinite normal none running icon-anima=
te; }

footer .footer-container .footer-line .run-times { font-variant-numeric: ta=
bular-nums lining-nums; }

.blur footer { filter: blur(1.5px); }

@keyframes icon-animate {=20
  0%, 100% { transform: scale(1); }
  10%, 30% { transform: scale(0.9); }
  20%, 40%, 60%, 80% { transform: scale(1.1); }
  50%, 70% { transform: scale(1.1); }
}

.pagination { display: flex; flex-flow: wrap; justify-content: center; list=
-style: none; white-space: nowrap; width: 100%; padding: 1rem 0px; }

.pagination a { font-size: 0.8rem; color: rgb(191, 191, 191); letter-spacin=
g: 0.1rem; font-weight: 700; padding: 5px; text-decoration: none; transitio=
n: 0.3s; }

[data-theme=3D"dark"] .pagination a { color: rgb(177, 177, 186); }

.pagination li { padding: 5px; margin: 0px 10px; box-sizing: border-box; po=
sition: relative; display: inline; }

.pagination li.disabled { display: none; }

.pagination li:hover a { color: rgb(0, 0, 0); }

[data-theme=3D"dark"] .pagination li:hover a { color: rgb(255, 255, 255); }

.pagination li::before, .pagination li::after { position: absolute; content=
: ""; width: 0px; height: 3px; background: rgb(0, 0, 0); transition: 0.3s; =
bottom: 0px; }

[data-theme=3D"dark"] .pagination li::before, [data-theme=3D"dark"] .pagina=
tion li::after { background: rgb(255, 255, 255); }

.pagination li::before { left: 50%; }

.pagination li::after { right: 50%; }

.pagination li:hover::before, .pagination li:hover::after { width: 50%; }

.pagination li.active a { color: rgb(0, 0, 0); }

[data-theme=3D"dark"] .pagination li.active a { color: rgb(255, 255, 255); =
}

.pagination li.active::before, .pagination li.active::after { width: 50%; }

.text-truncate { overflow: hidden; text-overflow: ellipsis; white-space: no=
wrap; }

.text-start { text-align: left !important; }

.text-end { text-align: right !important; }

.text-center { text-align: center !important; }

.d-none { display: none !important; }

.ms-1, .mx-1 { margin-left: 0.25em !important; }

.me-1, .mx-1 { margin-right: 0.25em !important; }

.ps-1, .px-1 { padding-left: 0.25em !important; }

.pe-1, .px-1 { padding-right: 0.25em !important; }

.text-primary { color: var(--fi-primary) !important; }

.text-secondary { color: var(--fi-secondary) !important; }

.text-success { color: var(--fi-success) !important; }

.text-info { color: var(--fi-info) !important; }

.text-warning { color: var(--fi-warning) !important; }

.text-danger { color: var(--fi-danger) !important; }

.order-first { order: -1 !important; }

.order-0 { order: 0 !important; }

.order-1 { order: 1 !important; }

.order-2 { order: 2 !important; }

.order-3 { order: 3 !important; }

.order-4 { order: 4 !important; }

.order-5 { order: 5 !important; }

.order-last { order: 6 !important; }

.variant-numeric { font-variant-numeric: tabular-nums lining-nums; }

.page { position: relative; }

.page .content [id] { scroll-margin-top: var(--fi-scroll-mt); }

.blur .page { filter: blur(1.5px); }

.toc .toc-title { font-size: 1rem; font-weight: bold; text-transform: upper=
case; }

.toc .toc-content { font-size: 0.875rem; }

.toc .toc-content ul { text-indent: -0.8em; padding-left: 0.8em; list-style=
: none; }

.toc .toc-content ul a:first-child::before { content: "|"; font-weight: bol=
der; margin-right: 0.5em; position: relative; bottom: 2px; color: rgb(35, 1=
18, 183); }

[data-theme=3D"dark"] .toc .toc-content ul a:first-child::before { color: r=
gb(23, 129, 181); }

.toc .toc-content ul ul { padding-left: 1em; }

.toc .toc-content ol { margin: 0px; padding-left: 2.25em; }

.toc .toc-content ol ol { padding-left: 1.25em; }

.toc .toc-content ol li:has(> a:hover)::marker { color: rgb(35, 118, 183); =
}

[data-theme=3D"dark"] .toc .toc-content ol li:has(> a:hover)::marker { colo=
r: rgb(23, 129, 181); }

.toc ruby { background: rgb(246, 248, 250); }

.toc ruby rt { color: rgb(177, 177, 186); }

[data-theme=3D"dark"] .toc ruby { background: rgb(45, 51, 59); }

[data-theme=3D"dark"] .toc ruby rt { color: rgb(144, 144, 146); }

#toc-auto { display: block; position: sticky; top: calc(3.5rem + var(--fi-b=
readcrumb-height)); box-sizing: border-box; visibility: hidden; overflow-wr=
ap: break-word; }

.blur #toc-auto { filter: blur(1.5px); }

[data-header-desktop=3D"normal"] #toc-auto { --fi-scroll-mt: .5rem; }

#toc-auto .toc-title { margin-block: 0px 0.5em; cursor: pointer; user-selec=
t: none !important; }

#toc-auto .toc-title::before { content: "|"; font-weight: bolder; margin-ri=
ght: 0.5em; position: relative; bottom: 2px; color: rgb(240, 240, 240); }

[data-theme=3D"dark"] #toc-auto .toc-title::before { color: rgb(54, 54, 54)=
; }

#toc-auto .toc-title i.toc-icon { transition: transform 0.2s; }

#toc-auto.toc-hidden i.toc-icon { transform: rotate(-90deg); transition: tr=
ansform 0.2s; }

#toc-auto .toc-content { overflow-y: scroll; max-height: calc(-7rem + 100vh=
); --fi-scrollbar-width: none; --fi-scrollbar-width-legacy: 0; }

#toc-auto .toc-content.always-active ul, #toc-auto .toc-content.always-acti=
ve ol { display: block; }

#toc-auto .toc-content > nav > ul { margin: 0px; }

#toc-auto .toc-content li.has-active::marker { color: rgb(35, 118, 183); }

[data-theme=3D"dark"] #toc-auto .toc-content li.has-active::marker { color:=
 rgb(23, 129, 181); }

#toc-auto .toc-content li.has-active:has(> .active)::marker { font-weight: =
bold; }

#toc-auto .toc-content li.has-active > a { color: rgb(35, 118, 183); }

[data-theme=3D"dark"] #toc-auto .toc-content li.has-active > a { color: rgb=
(23, 129, 181); }

#toc-auto .toc-content ul ul { display: none; }

#toc-auto .toc-content ul .has-active > ul { display: block; }

#toc-auto .toc-content ul a.active::before { color: rgb(234, 81, 127); }

[data-theme=3D"dark"] #toc-auto .toc-content ul a.active::before { color: r=
gb(204, 85, 149); }

#toc-auto .toc-content ol ol { display: none; }

#toc-auto .toc-content ol .has-active > ol { display: block; }

#toc-auto .toc-content a.active { font-weight: bold; }

#toc-static { display: none; margin: 0.8em 0px; }

#toc-static[data-kept=3D"true"] { display: block; }

#toc-static .toc-title { display: flex; justify-content: space-between; lin=
e-height: 2em; padding: 0px 0.75em; background: rgb(236, 240, 245); }

[data-theme=3D"dark"] #toc-static .toc-title { background: rgb(32, 36, 42);=
 }

#toc-static .toc-content { background-color: rgb(246, 248, 250); }

#toc-static .toc-content > nav > ul { margin: 0px; padding: 0.4em 1em 0.4em=
 1.8em; }

#toc-static .toc-content > nav > ul a:hover { font-weight: bold; }

#toc-static .toc-content > nav > ul a:hover::before { color: rgb(234, 81, 1=
27); }

[data-theme=3D"dark"] #toc-static .toc-content > nav > ul a:hover::before {=
 color: rgb(204, 85, 149); }

#toc-static .toc-content > nav > ol { margin: 0px; padding: 0.4em 1em 0.4em=
 2.25em; }

#toc-static .toc-content > nav > ol li:has(> a:hover)::marker, #toc-static =
.toc-content > nav > ol a:hover { font-weight: bold; }

[data-theme=3D"dark"] #toc-static .toc-content { background-color: rgb(45, =
51, 59); }

#toc-static.open .toc-title { background: rgb(226, 233, 239); }

[data-theme=3D"dark"] #toc-static.open .toc-title { background: rgb(38, 43,=
 50); }

.fixit-decryptor-container { font-family: system-ui, -apple-system, BlinkMa=
cSystemFont, "PingFang SC", "Microsoft YaHei UI", "Segoe UI", Roboto, Oxyge=
n, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue", Helvetic=
a, Arial, sans-serif; text-align: center; margin-block: var(--fixit-decrypt=
or-margin-block); }

.fixit-decryptor-container .fixit-decryptor-loading { vertical-align: middl=
e; }

.fixit-decryptor-container .fixit-decryptor-input, .fixit-decryptor-contain=
er .fixit-decryptor-btn, .fixit-decryptor-container .fixit-encryptor-btn { =
display: none; box-sizing: border-box; outline: none; color: rgb(22, 18, 9)=
; border: 1px solid rgb(202, 202, 202); border-radius: 5px; transition: 0.1=
s ease-out; box-shadow: rgb(202, 202, 202) 0px 0px 5px 0px; }

.fixit-decryptor-container .fixit-decryptor-input:active, .fixit-decryptor-=
container .fixit-decryptor-input:focus, .fixit-decryptor-container .fixit-d=
ecryptor-input:hover, .fixit-decryptor-container .fixit-decryptor-btn:activ=
e, .fixit-decryptor-container .fixit-decryptor-btn:focus, .fixit-decryptor-=
container .fixit-decryptor-btn:hover, .fixit-decryptor-container .fixit-enc=
ryptor-btn:active, .fixit-decryptor-container .fixit-encryptor-btn:focus, .=
fixit-decryptor-container .fixit-encryptor-btn:hover { color: rgb(35, 113, =
162); border-color: rgb(41, 131, 187); box-shadow: rgb(107, 178, 223) 0px 0=
px 5px 0px; }

[data-theme=3D"dark"] .fixit-decryptor-container .fixit-decryptor-input:act=
ive, [data-theme=3D"dark"] .fixit-decryptor-container .fixit-decryptor-inpu=
t:focus, [data-theme=3D"dark"] .fixit-decryptor-container .fixit-decryptor-=
input:hover, [data-theme=3D"dark"] .fixit-decryptor-container .fixit-decryp=
tor-btn:active, [data-theme=3D"dark"] .fixit-decryptor-container .fixit-dec=
ryptor-btn:focus, [data-theme=3D"dark"] .fixit-decryptor-container .fixit-d=
ecryptor-btn:hover, [data-theme=3D"dark"] .fixit-decryptor-container .fixit=
-encryptor-btn:active, [data-theme=3D"dark"] .fixit-decryptor-container .fi=
xit-encryptor-btn:focus, [data-theme=3D"dark"] .fixit-decryptor-container .=
fixit-encryptor-btn:hover { color: rgb(255, 255, 255); border-color: rgb(25=
5, 255, 255); box-shadow: rgb(204, 204, 204) 0px 0px 5px 0px; }

[data-theme=3D"dark"] .fixit-decryptor-container .fixit-decryptor-input, [d=
ata-theme=3D"dark"] .fixit-decryptor-container .fixit-decryptor-btn, [data-=
theme=3D"dark"] .fixit-decryptor-container .fixit-encryptor-btn { color: rg=
b(177, 177, 186); border-color: rgb(92, 92, 92); box-shadow: rgb(92, 92, 92=
) 0px 0px 5px 0px; }

.fixit-decryptor-container .fixit-decryptor-input { width: calc(-100px + cl=
amp(50%, 450px, 100%)); height: 3rem; padding-left: 1rem; padding-right: 1r=
em; background-color: rgb(255, 255, 255); }

[data-theme=3D"dark"] .fixit-decryptor-container .fixit-decryptor-input { b=
ackground-color: rgb(41, 42, 46); }

.fixit-decryptor-container .fixit-decryptor-btn, .fixit-decryptor-container=
 .fixit-encryptor-btn { cursor: pointer; transition: 0.1s ease-out; padding=
: 0.8rem 1rem; background-color: rgb(248, 248, 248); }

[data-theme=3D"dark"] .fixit-decryptor-container .fixit-decryptor-btn, [dat=
a-theme=3D"dark"] .fixit-decryptor-container .fixit-encryptor-btn { backgro=
und-color: rgb(37, 38, 39); }

.fixit-decryptor-container .fixit-encryptor-btn { display: none; }

fixit-encryptor.initialized > .fixit-decryptor-container .fixit-decryptor-i=
nput, fixit-encryptor.initialized > .fixit-decryptor-container .fixit-decry=
ptor-btn { display: inline-block; }

fixit-encryptor.initialized > .fixit-decryptor-container .fixit-decryptor-l=
oading { display: none; }

fixit-encryptor cipher-text { display: none !important; }

article fixit-encryptor .fixit-decryptor-container { --fixit-decryptor-marg=
in-block: 2rem; }

article fixit-encryptor.decrypted > .fixit-decryptor-container .fixit-decry=
ptor-loading, article fixit-encryptor.decrypted > .fixit-decryptor-containe=
r .fixit-decryptor-input, article fixit-encryptor.decrypted > .fixit-decryp=
tor-container .fixit-decryptor-btn { display: none; }

article fixit-encryptor.decrypted > .fixit-decryptor-container .fixit-encry=
ptor-btn { display: inline-block; }

#content fixit-encryptor .fixit-decryptor-container { --fixit-decryptor-mar=
gin-block: 1rem; }

#content fixit-encryptor.decrypted > .fixit-decryptor-container { display: =
none; }

.encrypted-hidden { display: none !important; }

.collection-card { font-size: 0.875rem; background-color: rgb(247, 247, 247=
); margin-block: 1rem; padding: 1rem 1.25rem; position: relative; border-ra=
dius: 7.5px; user-select: none !important; }

[data-theme=3D"dark"] .collection-card { background-color: rgb(48, 49, 54);=
 }

.collection-card:has(.collection-nav-item:nth-child(2))::before { content: =
""; position: absolute; left: 50%; bottom: 0.75rem; width: 1px; height: 2re=
m; background: linear-gradient(rgba(0, 0, 0, 0.03), rgba(0, 0, 0, 0.05) 50%=
, rgba(0, 0, 0, 0.03) 100%); }

[data-theme=3D"dark"] .collection-card:has(.collection-nav-item:nth-child(2=
))::before { background: linear-gradient(rgba(255, 255, 255, 0.03), rgba(25=
5, 255, 255, 0.05) 50%, rgba(255, 255, 255, 0.03) 100%); }

.collection-card .collection-title a, .collection-card .collection-title a:=
:before, .collection-card .collection-title a::after { text-decoration: non=
e; color: rgb(35, 118, 183); }

[data-theme=3D"dark"] .collection-card .collection-title a, [data-theme=3D"=
dark"] .collection-card .collection-title a::before, [data-theme=3D"dark"] =
.collection-card .collection-title a::after { color: rgb(23, 129, 181); }

.collection-card .collection-title a:active, .collection-card .collection-t=
itle a:hover { color: rgb(234, 81, 127); }

[data-theme=3D"dark"] .collection-card .collection-title a:active, [data-th=
eme=3D"dark"] .collection-card .collection-title a:hover { color: rgb(204, =
85, 149); }

.collection-card .collection-nav { display: flex; justify-content: space-be=
tween; gap: 1rem; }

.collection-card .collection-nav:not(:empty) { margin-top: 0.5rem; }

.collection-card .collection-nav .collection-nav-item { flex-grow: 1; max-w=
idth: calc(50% - 0.5rem); font-weight: 500; display: flex; align-items: cen=
ter; transition: 0.3s ease-out; }

.collection-card .collection-nav .collection-nav-item:only-child { max-widt=
h: 100%; }

.collection-card .collection-nav .collection-nav-item i { flex-shrink: 0; }

.collection-card .collection-nav .collection-nav-item span { flex-grow: 1; =
overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

.collection-card .collection-nav .collection-nav-item[rel=3D"next"] { text-=
align: right; }

.collection-card .collection-nav .collection-nav-item[rel=3D"prev"]:hover {=
 transform: translateX(-4px); }

.collection-card .collection-nav .collection-nav-item[rel=3D"next"]:hover {=
 transform: translateX(4px); }

.aside-collection { position: sticky; top: calc(3.5rem + var(--fi-breadcrum=
b-height)); box-sizing: border-box; overflow-wrap: break-word; }

.blur .aside-collection { filter: blur(1.5px); }

.collection-details:not(:last-of-type) { margin-bottom: 0.5rem; }

.collection-details.open .collection-summary { background-color: rgb(245, 2=
45, 245); }

[data-theme=3D"dark"] .collection-details.open .collection-summary { backgr=
ound-color: rgb(51, 52, 57); }

.collection-details .collection-summary { display: flex; align-items: basel=
ine; gap: 0.25em; padding: 0.2em 0.5em; background-color: rgb(247, 247, 247=
); user-select: none !important; }

[data-theme=3D"dark"] .collection-details .collection-summary { background-=
color: rgb(48, 49, 54); }

.collection-details .collection-summary > i.fa-layer-group { flex-shrink: 0=
; }

.collection-details .collection-summary .collection-name { flex-grow: 1; fo=
nt-weight: bold; font-size: 1rem; }

.collection-details .collection-summary .collection-name::before { content:=
 attr(data-collections) "=E3=83=BB"; }

.collection-details .collection-summary .collection-count { flex-shrink: 0;=
 color: var(--fi-secondary); }

.collection-details .collection-summary .details-icon { flex-shrink: 0; }

.collection-details .collection-content { font-size: 0.875rem; background-c=
olor: rgb(250, 250, 250); }

[data-theme=3D"dark"] .collection-details .collection-content { background-=
color: rgb(46, 47, 51); }

.collection-details .collection-content .collection-list { margin: 0px; pad=
ding-inline: 1.6em 0.8em; padding-block: 0.4em; text-indent: -0.8em; list-s=
tyle: none; overflow-y: scroll; max-height: 60vh; --fi-scrollbar-width: non=
e; --fi-scrollbar-width-legacy: 0; }

.collection-details .collection-content .collection-list .collection-item >=
 a::before, .collection-details .collection-content .collection-list .colle=
ction-item > span::before { content: "|"; font-weight: 600; margin-right: 0=
.5em; position: relative; bottom: 2px; color: rgb(35, 118, 183); }

[data-theme=3D"dark"] .collection-details .collection-content .collection-l=
ist .collection-item > a::before, [data-theme=3D"dark"] .collection-details=
 .collection-content .collection-list .collection-item > span::before { col=
or: rgb(23, 129, 181); }

.collection-details .collection-content .collection-list .collection-item >=
 .active { font-weight: bold; color: rgb(35, 118, 183); }

[data-theme=3D"dark"] .collection-details .collection-content .collection-l=
ist .collection-item > .active { color: rgb(23, 129, 181); }

.collection-details .collection-content .collection-list .collection-item >=
 .active::before { color: rgb(234, 81, 127); }

[data-theme=3D"dark"] .collection-details .collection-content .collection-l=
ist .collection-item > .active::before { color: rgb(204, 85, 149); }

.collection-details .collection-content .collection-nav-simple { display: f=
lex; align-items: center; justify-content: center; gap: 0.5em; background-c=
olor: rgb(247, 247, 247); }

[data-theme=3D"dark"] .collection-details .collection-content .collection-n=
av-simple { background-color: rgb(48, 49, 54); }

.collection-details .collection-content .collection-nav-simple a.collection=
-nav-item { padding-inline: 2px; border-radius: 50%; transition: background=
-color 0.3s ease-out; }

.collection-details .collection-content .collection-nav-simple a.collection=
-nav-item:hover { background-color: rgb(230, 230, 230); }

[data-theme=3D"dark"] .collection-details .collection-content .collection-n=
av-simple a.collection-nav-item:hover { background-color: rgb(65, 67, 73); =
}

.collection-details .collection-content .collection-nav-simple > i.collecti=
on-nav-item { padding: 4px 2px; cursor: not-allowed; }

.single .single-title { padding: 1rem 0px 0.5rem; margin: 0px; font-size: 1=
.6rem; font-weight: bold; line-height: 140%; }

.single .single-title .icon-pin { display: inline-block; width: max-content=
; transform: rotate(30deg); margin-right: 0.25em; color: var(--fi-danger); =
}

.single .single-title .icon-repost { display: inline-block; width: max-cont=
ent; margin-right: 0.25em; color: var(--fi-success); }

.single .single-subtitle { margin-block: 0px 0.5rem; font-size: 1.2rem; fon=
t-weight: normal; line-height: 1.15; }

.single .post-meta { font-size: 0.875rem; color: rgb(177, 177, 186); }

.single .post-meta span { display: inline-block; }

[data-theme=3D"dark"] .single .post-meta { color: rgb(144, 144, 146); }

.single .post-meta a, .single .post-meta a::before, .single .post-meta a::a=
fter { text-decoration: none; color: rgb(35, 118, 183); }

[data-theme=3D"dark"] .single .post-meta a, [data-theme=3D"dark"] .single .=
post-meta a::before, [data-theme=3D"dark"] .single .post-meta a::after { co=
lor: rgb(177, 177, 186); }

.single .post-meta a:active, .single .post-meta a:hover { color: rgb(234, 8=
1, 127); }

[data-theme=3D"dark"] .single .post-meta a:active, [data-theme=3D"dark"] .s=
ingle .post-meta a:hover { color: rgb(255, 255, 255); }

.single .post-meta .author { font-size: 1.05rem; }

.single .post-meta .author img.avatar { width: 1.3rem; height: 1.3rem; bord=
er-radius: 50%; vertical-align: text-bottom; border: 0.25px solid rgb(240, =
240, 240); box-sizing: border-box; object-position: center center; object-f=
it: cover; font-family: "object-fit: cover;"; }

[data-theme=3D"dark"] .single .post-meta .author img.avatar { border-color:=
 rgb(54, 54, 54); }

.single .featured-image { margin: 1rem 0px; }

.single .featured-image img { display: block; width: 100%; max-width: 100%;=
 height: auto; margin: 0px auto; overflow: hidden; }

.single #content[data-end-flag]:not([data-password])::after { content: attr=
(data-end-flag); display: block; text-align: center; color: rgb(177, 177, 1=
86); font-size: 15px; padding: 5px; }

.single hr { position: relative; height: 1em; background-image: ; backgroun=
d-attachment: ; background-origin: ; background-clip: ; background-color: ;=
 background-size: 10px 2px; background-position: center center; background-=
repeat: repeat-x; border: none; }

.single hr.awesome-hr { margin-block: 0.5em; }

.single hr.awesome-hr::before { display: inline-block; font-weight: 600; fo=
nt-family: "Font Awesome 6 Free"; text-rendering: auto; -webkit-font-smooth=
ing: antialiased; position: absolute; left: 5%; top: 50%; transform: transl=
ateY(-50%); z-index: 1; color: var(--fi-hr-before-color); content: "=EF=83=
=84"; font-size: 20px; line-height: 1; transition: left 1s ease-in-out, col=
or 0.3s, border-color 0.3s; }

.single hr.awesome-hr:hover::before { left: calc(95% - 20px); }

.single .content { margin-block: 1rem; }

.single .content > h1, .single .content > h2 { font-size: 1.5em; padding-bo=
ttom: 0.3em; border-bottom: 1px solid rgb(240, 240, 240); }

.single .content > h3 { font-size: 1.25em; }

.single .content > h4 { font-size: 1em; }

.single .content > h5 { font-size: 0.875em; }

.single .content > h6 { font-size: 0.85em; }

.single .content > .heading-element { display: flex; font-weight: bold; lin=
e-height: 1.25; margin-top: 1.5rem; margin-bottom: 1rem; }

[data-theme=3D"dark"] .single .content > .heading-element { font-weight: bo=
lder; }

.single .content > .heading-element code { padding: 0px 0.2em; font-size: i=
nherit; }

.single .content > .heading-element:hover > .heading-mark, .single .content=
 > .heading-element:target > .heading-mark { opacity: 1; }

.single .content > .heading-element > .heading-mark { display: inline-flex;=
 align-items: center; opacity: 0; padding-inline: 0.5rem; transition: 0.2s =
ease-in-out; }

.single .content > .heading-element > .heading-mark a, .single .content > .=
heading-element > .heading-mark a::before, .single .content > .heading-elem=
ent > .heading-mark a::after { text-decoration: none; color: rgb(35, 118, 1=
83); }

[data-theme=3D"dark"] .single .content > .heading-element > .heading-mark a=
, [data-theme=3D"dark"] .single .content > .heading-element > .heading-mark=
 a::before, [data-theme=3D"dark"] .single .content > .heading-element > .he=
ading-mark a::after { color: rgb(23, 129, 181); }

.single .content > .heading-element > .heading-mark a:active, .single .cont=
ent > .heading-element > .heading-mark a:hover { color: rgb(234, 81, 127); =
}

[data-theme=3D"dark"] .single .content > .heading-element > .heading-mark a=
:active, [data-theme=3D"dark"] .single .content > .heading-element > .headi=
ng-mark a:hover { color: rgb(204, 85, 149); }

.single .content > .heading-element > .heading-mark svg { fill: currentcolo=
r; }

.single .content p { margin: 0.5rem 0px; }

.single .content b, .single .content strong { font-weight: bold; }

[data-theme=3D"dark"] .single .content b, [data-theme=3D"dark"] .single .co=
ntent strong { color: rgb(221, 221, 221); }

.single .content a, .single .content a::before, .single .content a::after {=
 text-decoration: none; color: rgb(35, 118, 183); }

[data-theme=3D"dark"] .single .content a, [data-theme=3D"dark"] .single .co=
ntent a::before, [data-theme=3D"dark"] .single .content a::after { color: r=
gb(23, 129, 181); }

.single .content a:active, .single .content a:hover { color: rgb(234, 81, 1=
27); }

[data-theme=3D"dark"] .single .content a:active, [data-theme=3D"dark"] .sin=
gle .content a:hover { color: rgb(204, 85, 149); }

.single .content a { white-space: normal; overflow-wrap: break-word; }

[data-theme=3D"dark"] .single .content a b, [data-theme=3D"dark"] .single .=
content a strong { color: rgb(23, 129, 181); }

.single .content [data-theme=3D"dark"] a:hover b, .single .content [data-th=
eme=3D"dark"] a:hover strong { color: rgb(204, 85, 149); }

.single .content ul, .single .content ol, .single .content dl { margin-bloc=
k: 0.5em; }

.single .content ul { list-style-type: disc; }

.single .content ul li[data-task] { list-style: none; margin-left: -1.5rem;=
 }

.single .content li[data-task] { color: var(--fi-task-color); }

.single .content li[data-task] .checkbox-icon { margin-right: 0.25em; color=
: var(--fi-checkbox-color); }

.single .content li[data-task=3D"x"], .single .content li[data-task=3D"-"] =
{ --fi-task-color: var(--fi-secondary); text-decoration: line-through; }

.single .content li[data-task=3D"x"] { --fi-checkbox-color: var(--fi-primar=
y); }

.single .content li[data-task=3D"/"] { --fi-task-color: var(--fi-success); =
}

.single .content li[data-task=3D"!"] { --fi-checkbox-color: var(--fi-danger=
); }

.single .content li[data-task=3D"?"] { --fi-checkbox-color: var(--fi-warnin=
g); }

.single .content dl dt { font-weight: bold; }

.single .content dl dd { margin: 0.25em 0px 1em; }

.single .content ruby { background: rgb(246, 248, 250); }

.single .content ruby rt { color: rgb(177, 177, 186); }

[data-theme=3D"dark"] .single .content ruby { background: rgb(45, 51, 59); =
}

[data-theme=3D"dark"] .single .content ruby rt { color: rgb(144, 144, 146);=
 }

.single .content mark { padding: 0.14em 0.28em; background-color: var(--fi-=
mark-background-color, mark); color: var(--fi-mark-color, marktext); border=
-radius: 5px; }

.single .content mark.mark-primary { --fi-mark-color: #fff; --fi-mark-backg=
round-color: var(--fi-primary); }

.single .content mark.mark-secondary { --fi-mark-color: #fff; --fi-mark-bac=
kground-color: var(--fi-secondary); }

.single .content mark.mark-success { --fi-mark-color: #fff; --fi-mark-backg=
round-color: var(--fi-success); }

.single .content mark.mark-info { --fi-mark-color: #fff; --fi-mark-backgrou=
nd-color: var(--fi-info); }

.single .content mark.mark-warning { --fi-mark-color: #fff; --fi-mark-backg=
round-color: var(--fi-warning); }

.single .content mark.mark-danger { --fi-mark-color: #fff; --fi-mark-backgr=
ound-color: var(--fi-danger); }

.single .content .table-wrapper { overflow-x: auto; --fi-scrollbar-thumb-co=
lor: #fff; }

[data-theme=3D"dark"] .single .content .table-wrapper { --fi-scrollbar-thum=
b-color: #272c34; }

.single .content .table-wrapper > table { width: 100%; max-width: 100%; mar=
gin: 0.625rem 0px; border-spacing: 0px; background: rgb(255, 255, 255); bor=
der-collapse: collapse; }

[data-theme=3D"dark"] .single .content .table-wrapper > table { background:=
 rgb(39, 44, 52); }

.single .content .table-wrapper > table thead { background: rgb(237, 237, 2=
37); }

[data-theme=3D"dark"] .single .content .table-wrapper > table thead { backg=
round-color: rgb(32, 37, 43); }

.single .content .table-wrapper > table:not([class]) tbody tr:nth-child(2n+=
1) { background: rgb(249, 249, 249); }

[data-theme=3D"dark"] .single .content .table-wrapper > table:not([class]) =
tbody tr:nth-child(2n+1) { background-color: rgb(45, 51, 60); }

.single .content .table-wrapper > table:not([class]) tbody tr:hover { backg=
round: rgb(244, 244, 244); }

[data-theme=3D"dark"] .single .content .table-wrapper > table:not([class]) =
tbody tr:hover { background-color: rgb(51, 58, 68); }

.single .content .table-wrapper > table th, .single .content .table-wrapper=
 > table td { padding: 0.3rem 1rem; border: 1px solid rgb(232, 232, 232); }

[data-theme=3D"dark"] .single .content .table-wrapper > table th, [data-the=
me=3D"dark"] .single .content .table-wrapper > table td { border-color: rgb=
(28, 32, 37); }

.single .content img { max-width: 100%; min-height: 1em; }

.single .content img:not([height]) { height: auto; }

.single .content img[loading=3D"lazy"][srcset]:not([data-lazyloaded]):not(.=
suffix-invalid__small) { width: var(--width-small, var(--width)); aspect-ra=
tio: var(--aspect-ratio-small, var(--aspect-ratio)); }

@media (min-resolution: 1.01dppx) and (max-resolution: 1.5dppx) {
  .single .content img[loading=3D"lazy"][srcset]:not([data-lazyloaded]):not=
(.suffix-invalid) { width: calc(var(--width) / 1.5); aspect-ratio: var(--as=
pect-ratio); }
}

@media (min-resolution: 1.51dppx) {
  .single .content img[loading=3D"lazy"][srcset]:not([data-lazyloaded]):not=
(.suffix-invalid__large) { width: calc(var(--width-large, var(--width)) / 2=
); aspect-ratio: var(--aspect-ratio-large, var(--aspect-ratio)); }
}

.single .content img.version { height: 1.25em; vertical-align: text-bottom;=
 }

.single .content svg { max-width: 100%; }

.single .content figure { margin: 0.5rem; text-align: center; }

.single .content figure .image-caption:not(:empty) { min-width: 20%; max-wi=
dth: 80%; display: inline-block; padding: 0.5rem; margin: 0px auto; font-si=
ze: 0.875rem; color: rgb(150, 150, 150); }

.single .content figure img { display: block; margin: 0px auto; overflow: h=
idden; }

.single .content blockquote { display: block; border-left: 0.25em solid rgb=
(240, 240, 240); color: rgb(105, 118, 129); padding: 0px 1em; margin: 1rem =
0px; }

.single .content blockquote ul, .single .content blockquote ol { padding-le=
ft: 1.5em; }

.single .content blockquote dl dd { margin-inline-start: 0.25em; }

[data-theme=3D"dark"] .single .content blockquote { color: rgb(155, 163, 17=
0); border-left-color: rgb(54, 54, 54); }

.single .content blockquote a, .single .content blockquote a::before, .sing=
le .content blockquote a::after { text-decoration: none; color: rgb(35, 118=
, 183); }

[data-theme=3D"dark"] .single .content blockquote a, [data-theme=3D"dark"] =
.single .content blockquote a::before, [data-theme=3D"dark"] .single .conte=
nt blockquote a::after { color: rgb(177, 177, 186); }

.single .content blockquote a:active, .single .content blockquote a:hover {=
 color: rgb(234, 81, 127); }

[data-theme=3D"dark"] .single .content blockquote a:active, [data-theme=3D"=
dark"] .single .content blockquote a:hover { color: rgb(255, 255, 255); }

.single .content sup[id^=3D"fnref"]:has(.footnote-ref) { padding: 2px 4px; =
background-color: rgba(238, 238, 238, 0.7); color: rgb(85, 85, 85); border-=
radius: 4px; cursor: pointer; }

[data-theme=3D"dark"] .single .content sup[id^=3D"fnref"]:has(.footnote-ref=
) { background-color: rgba(56, 139, 253, 0.1); color: rgb(88, 166, 255); }

.single .content sup[id^=3D"fnref"]:has(.footnote-ref) a, .single .content =
sup[id^=3D"fnref"]:has(.footnote-ref) a::before, .single .content sup[id^=
=3D"fnref"]:has(.footnote-ref) a::after { text-decoration: none; color: rgb=
(22, 18, 9); }

[data-theme=3D"dark"] .single .content sup[id^=3D"fnref"]:has(.footnote-ref=
) a, [data-theme=3D"dark"] .single .content sup[id^=3D"fnref"]:has(.footnot=
e-ref) a::before, [data-theme=3D"dark"] .single .content sup[id^=3D"fnref"]=
:has(.footnote-ref) a::after { color: rgb(23, 129, 181); }

.single .content sup[id^=3D"fnref"]:has(.footnote-ref) a:active, .single .c=
ontent sup[id^=3D"fnref"]:has(.footnote-ref) a:hover { color: rgb(41, 131, =
187); }

[data-theme=3D"dark"] .single .content sup[id^=3D"fnref"]:has(.footnote-ref=
) a:active, [data-theme=3D"dark"] .single .content sup[id^=3D"fnref"]:has(.=
footnote-ref) a:hover { color: rgb(204, 85, 149); }

.single .content .footnotes { font-size: 0.75rem; white-space: normal; colo=
r: rgb(163, 163, 174); }

.single .content .footnotes ol { margin-block: 1em; padding-left: 1rem; }

.single .content .footnotes hr { background-color: var(--fi-hr-background-c=
olor); height: 1px; margin-block: 1em; }

.single .content .footnotes code { font-size: 0.75rem; }

.single .content .footnotes a:not(.footnote-backref) { color: inherit; text=
-decoration: underline; }

.single .content .footnotes a, .single .content .footnotes a::before, .sing=
le .content .footnotes a::after { text-decoration: none; color: rgb(35, 118=
, 183); }

[data-theme=3D"dark"] .single .content .footnotes a, [data-theme=3D"dark"] =
.single .content .footnotes a::before, [data-theme=3D"dark"] .single .conte=
nt .footnotes a::after { color: rgb(177, 177, 186); }

.single .content .footnotes a:active, .single .content .footnotes a:hover {=
 color: rgb(234, 81, 127); }

[data-theme=3D"dark"] .single .content .footnotes a:active, [data-theme=3D"=
dark"] .single .content .footnotes a:hover { color: rgb(255, 255, 255); }

[data-theme=3D"dark"] .single .content .footnotes { color: rgb(157, 157, 15=
9); }

.single .content .footnotes p { margin: 0.25rem 0px; }

.single .content hr { margin-block: 0px; }

.single .content kbd { display: inline-block; padding: 0px 0.25rem; backgro=
und-color: rgb(255, 255, 255); border: 1px solid rgb(240, 240, 240); font-s=
ize: 0.8rem; font-family: "Source Code Pro", Menlo, Consolas, Monaco, monos=
pace, system-ui, -apple-system, BlinkMacSystemFont, "PingFang SC", "Microso=
ft YaHei UI", "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "=
Droid Sans", "Helvetica Neue", Helvetica, Arial, sans-serif; color: rgb(36,=
 41, 47); border-radius: 5px; box-shadow: rgb(240, 240, 240) 0px -1px 0px i=
nset; }

[data-theme=3D"dark"] .single .content kbd { background-color: rgb(41, 42, =
46); border: 1px solid rgb(54, 54, 54); color: rgb(173, 186, 199); box-shad=
ow: rgb(54, 54, 54) 0px -1px 0px inset; }

.single .content .alert { padding: 0.5rem 1rem; margin-block: 1rem; color: =
inherit; border-left: 0.25em solid var(--fi-alert-border-color); }

.single .content .alert > :first-child { margin-top: 0px; }

.single .content .alert > :last-child { margin-bottom: 0px; }

.single .content .alert .alert-title { display: flex; font-weight: 500; ali=
gn-items: center; line-height: 1; margin-bottom: 1rem; color: var(--fi-aler=
t-color); }

.single .content .alert .alert-title > svg.icon { width: initial; height: i=
nitial; margin-right: 0.5rem; }

.single .content .alert.alert-note { --fi-alert-border-color: #0969da; --fi=
-alert-color: #0969da; }

.single .content .alert.alert-tip { --fi-alert-border-color: #1a7f37; --fi-=
alert-color: #1a7f37; }

.single .content .alert.alert-important { --fi-alert-border-color: #8250df;=
 --fi-alert-color: #8250df; }

.single .content .alert.alert-warning { --fi-alert-border-color: #bf8700; -=
-fi-alert-color: #9a6700; }

.single .content .alert.alert-caution { --fi-alert-border-color: #cf222e; -=
-fi-alert-color: #d1242f; }

[data-theme=3D"dark"] .single .content .alert.alert-note { --fi-alert-borde=
r-color: #316dca; --fi-alert-color: #478be6; }

[data-theme=3D"dark"] .single .content .alert.alert-tip { --fi-alert-border=
-color: #347d39; --fi-alert-color: #57ab5a; }

[data-theme=3D"dark"] .single .content .alert.alert-important { --fi-alert-=
border-color: #8256d0; --fi-alert-color: #986ee2; }

[data-theme=3D"dark"] .single .content .alert.alert-warning { --fi-alert-bo=
rder-color: #966600; --fi-alert-color: #c69026; }

[data-theme=3D"dark"] .single .content .alert.alert-caution { --fi-alert-bo=
rder-color: #c93c37; --fi-alert-color: #e5534b; }

.single .content code { padding: 0.2em 0.4em; margin: 0px; font-size: 0.875=
rem; font-family: "Source Code Pro", Menlo, Consolas, Monaco, monospace, sy=
stem-ui, -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei=
 UI", "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sa=
ns", "Helvetica Neue", Helvetica, Arial, sans-serif; color: rgb(36, 41, 47)=
; background-color: rgba(175, 184, 193, 0.2); text-decoration: inherit; bor=
der-radius: 5px; overflow-wrap: break-word; -webkit-line-break: auto; line-=
break: auto; }

[data-theme=3D"dark"] .single .content code { color: rgb(173, 186, 199); ba=
ckground-color: rgba(99, 110, 123, 0.4); }

.single .content pre:not(.mermaid[data-processed=3D"true"]) { margin: 0px; =
line-height: 1.45em; padding: 0.5rem; overflow: auto; font-size: 0.875rem; =
font-family: "Source Code Pro", Menlo, Consolas, Monaco, monospace, system-=
ui, -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei UI",=
 "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", =
"Helvetica Neue", Helvetica, Arial, sans-serif; border-radius: 5px; tab-siz=
e: 4; background-color: rgb(246, 248, 250); }

[data-theme=3D"dark"] .single .content pre:not(.mermaid[data-processed=3D"t=
rue"]) { background-color: rgb(45, 51, 59); }

.single .content pre:not(.mermaid[data-processed=3D"true"]) code { padding:=
 0px; background-color: transparent; border-radius: 0px; min-width: max-con=
tent; }

[data-theme=3D"dark"] .single .content pre:not(.mermaid[data-processed=3D"t=
rue"]) code { background-color: transparent; }

.single .content pre:not(.mermaid[data-processed=3D"true"]) img { min-heigh=
t: 1em; max-height: 1.2em; vertical-align: text-bottom; }

.single .content .highlight, .single .content .gist { font-size: 0.875rem; =
font-family: "Source Code Pro", Menlo, Consolas, Monaco, monospace, system-=
ui, -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei UI",=
 "Segoe UI", Roboto, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", =
"Helvetica Neue", Helvetica, Arial, sans-serif; }

.single .content .highlight .table-wrapper, .single .content .gist .table-w=
rapper { --fi-scrollbar-thumb-color: initial; }

.single .content .highlight .table-wrapper > table, .single .content .highl=
ight .table-wrapper > table thead, .single .content .highlight .table-wrapp=
er > table tr, .single .content .highlight .table-wrapper > table td, .sing=
le .content .gist .table-wrapper > table, .single .content .gist .table-wra=
pper > table thead, .single .content .gist .table-wrapper > table tr, .sing=
le .content .gist .table-wrapper > table td { margin: 0px; padding: 0px; wh=
ite-space: nowrap; border: none !important; }

.single .content .highlight { margin: 0.5rem 0px; }

.single .content .highlight > .chroma { position: relative; }

.single .content .highlight > .chroma .code-header { --fi-bg-code-header: #=
ecf0f5; display: flex; justify-content: space-between; align-items: center;=
 box-sizing: border-box; width: 100%; font-family: system-ui, -apple-system=
, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei UI", "Segoe UI", Robo=
to, Oxygen, Ubuntu, Cantarell, "Fira Sans", "Droid Sans", "Helvetica Neue",=
 Helvetica, Arial, sans-serif; font-weight: bold; line-height: 1.4em; color=
: rgb(156, 156, 156); background-color: var(--fi-bg-code-header); border-ra=
dius: 5px; transition: border-radius 0.2s; }

.single .content .highlight > .chroma .code-header + .table-wrapper { max-h=
eight: 0px; border-radius: 0px 0px 5px 5px; transition: max-height 0.2s cub=
ic-bezier(0, 1, 0, 1) -0.1s; }

[data-theme=3D"dark"] .single .content .highlight > .chroma .code-header { =
color: rgb(177, 176, 176); --fi-bg-code-header: #262b32; }

.single .content .highlight > .chroma .code-header:hover { cursor: pointer;=
 }

.single .content .highlight > .chroma .code-header .code-title { width: 100=
%; padding: 0.4rem; }

.single .content .highlight > .chroma .code-header .code-title .arrow { pad=
ding: 0px 0.2rem; transition: transform 0.2s; }

.single .content .highlight > .chroma .code-header .code-title .title-inner=
 { position: absolute; left: 50%; transform: translateX(-50%); background-c=
olor: var(--fi-bg-code-header); padding-inline: 1em; max-width: 80%; white-=
space: nowrap; overflow: hidden; text-overflow: ellipsis; z-index: 1; }

.single .content .highlight > .chroma .code-header .code-title::after { pad=
ding-left: 0.2rem; content: "Code"; }

.single .content .highlight > .chroma .code-header .ellipses { padding: 0.4=
rem; }

.single .content .highlight > .chroma .code-header .edit, .single .content =
.highlight > .chroma .code-header .copy { display: none; padding: 0.4rem; }

.single .content .highlight > .chroma .code-header .edit:hover, .single .co=
ntent .highlight > .chroma .code-header .copy:hover { cursor: pointer; colo=
r: rgb(41, 131, 187); }

[data-theme=3D"dark"] .single .content .highlight > .chroma .code-header .e=
dit:hover, [data-theme=3D"dark"] .single .content .highlight > .chroma .cod=
e-header .copy:hover { color: rgb(255, 255, 255); }

.single .content .highlight > .chroma .code-header.language-abap .code-titl=
e::after { content: "ABAP"; }

.single .content .highlight > .chroma .code-header.language-abnf .code-titl=
e::after { content: "ABNF"; }

.single .content .highlight > .chroma .code-header.language-as .code-title:=
:after { content: "ActionScript"; }

.single .content .highlight > .chroma .code-header.language-actionscript .c=
ode-title::after { content: "ActionScript"; }

.single .content .highlight > .chroma .code-header.language-as3 .code-title=
::after { content: "ActionScript 3"; }

.single .content .highlight > .chroma .code-header.language-actionscript3 .=
code-title::after { content: "ActionScript 3"; }

.single .content .highlight > .chroma .code-header.language-ada .code-title=
::after { content: "Ada"; }

.single .content .highlight > .chroma .code-header.language-ada95 .code-tit=
le::after { content: "Ada"; }

.single .content .highlight > .chroma .code-header.language-ada2005 .code-t=
itle::after { content: "Ada"; }

.single .content .highlight > .chroma .code-header.language-al .code-title:=
:after { content: "AL"; }

.single .content .highlight > .chroma .code-header.language-ng2 .code-title=
::after { content: "Angular2"; }

.single .content .highlight > .chroma .code-header.language-antlr .code-tit=
le::after { content: "ANTLR"; }

.single .content .highlight > .chroma .code-header.language-apacheconf .cod=
e-title::after { content: "ApacheConf"; }

.single .content .highlight > .chroma .code-header.language-aconf .code-tit=
le::after { content: "ApacheConf"; }

.single .content .highlight > .chroma .code-header.language-apache .code-ti=
tle::after { content: "ApacheConf"; }

.single .content .highlight > .chroma .code-header.language-apl .code-title=
::after { content: "APL"; }

.single .content .highlight > .chroma .code-header.language-applescript .co=
de-title::after { content: "AppleScript"; }

.single .content .highlight > .chroma .code-header.language-arduino .code-t=
itle::after { content: "Arduino"; }

.single .content .highlight > .chroma .code-header.language-armasm .code-ti=
tle::after { content: "ArmAsm"; }

.single .content .highlight > .chroma .code-header.language-awk .code-title=
::after { content: "Awk"; }

.single .content .highlight > .chroma .code-header.language-gawk .code-titl=
e::after { content: "Awk"; }

.single .content .highlight > .chroma .code-header.language-mawk .code-titl=
e::after { content: "Awk"; }

.single .content .highlight > .chroma .code-header.language-nawk .code-titl=
e::after { content: "Awk"; }

.single .content .highlight > .chroma .code-header.language-ballerina .code=
-title::after { content: "Ballerina"; }

.single .content .highlight > .chroma .code-header.language-make .code-titl=
e::after { content: "Base Makefile"; }

.single .content .highlight > .chroma .code-header.language-makefile .code-=
title::after { content: "Base Makefile"; }

.single .content .highlight > .chroma .code-header.language-mf .code-title:=
:after { content: "Base Makefile"; }

.single .content .highlight > .chroma .code-header.language-bsdmake .code-t=
itle::after { content: "Base Makefile"; }

.single .content .highlight > .chroma .code-header.language-bash .code-titl=
e::after { content: "Bash"; }

.single .content .highlight > .chroma .code-header.language-sh .code-title:=
:after { content: "Bash"; }

.single .content .highlight > .chroma .code-header.language-ksh .code-title=
::after { content: "Bash"; }

.single .content .highlight > .chroma .code-header.language-zsh .code-title=
::after { content: "Bash"; }

.single .content .highlight > .chroma .code-header.language-shell .code-tit=
le::after { content: "Bash"; }

.single .content .highlight > .chroma .code-header.language-bash-session .c=
ode-title::after { content: "BashSession"; }

.single .content .highlight > .chroma .code-header.language-console .code-t=
itle::after { content: "BashSession"; }

.single .content .highlight > .chroma .code-header.language-shell-session .=
code-title::after { content: "BashSession"; }

.single .content .highlight > .chroma .code-header.language-bat .code-title=
::after { content: "Batchfile"; }

.single .content .highlight > .chroma .code-header.language-batch .code-tit=
le::after { content: "Batchfile"; }

.single .content .highlight > .chroma .code-header.language-dosbatch .code-=
title::after { content: "Batchfile"; }

.single .content .highlight > .chroma .code-header.language-winbatch .code-=
title::after { content: "Batchfile"; }

.single .content .highlight > .chroma .code-header.language-bib .code-title=
::after { content: "BibTeX"; }

.single .content .highlight > .chroma .code-header.language-bibtex .code-ti=
tle::after { content: "BibTeX"; }

.single .content .highlight > .chroma .code-header.language-bicep .code-tit=
le::after { content: "Bicep"; }

.single .content .highlight > .chroma .code-header.language-blitzbasic .cod=
e-title::after { content: "BlitzBasic"; }

.single .content .highlight > .chroma .code-header.language-b3d .code-title=
::after { content: "BlitzBasic"; }

.single .content .highlight > .chroma .code-header.language-bplus .code-tit=
le::after { content: "BlitzBasic"; }

.single .content .highlight > .chroma .code-header.language-bnf .code-title=
::after { content: "BNF"; }

.single .content .highlight > .chroma .code-header.language-brainfuck .code=
-title::after { content: "Brainfuck"; }

.single .content .highlight > .chroma .code-header.language-bf .code-title:=
:after { content: "Brainfuck"; }

.single .content .highlight > .chroma .code-header.language-c .code-title::=
after { content: "C"; }

.single .content .highlight > .chroma .code-header.language-csharp .code-ti=
tle::after { content: "C#"; }

.single .content .highlight > .chroma .code-header.language-c\# .code-title=
::after { content: "C#"; }

.single .content .highlight > .chroma .code-header.language-cpp .code-title=
::after { content: "C++"; }

.single .content .highlight > .chroma .code-header.language-c\+\+ .code-tit=
le::after { content: "C++"; }

.single .content .highlight > .chroma .code-header.language-caddyfile .code=
-title::after { content: "Caddyfile"; }

.single .content .highlight > .chroma .code-header.language-caddy .code-tit=
le::after { content: "Caddyfile"; }

.single .content .highlight > .chroma .code-header.language-caddyfile-direc=
tives .code-title::after { content: "Caddyfile Directives"; }

.single .content .highlight > .chroma .code-header.language-caddyfile-d .co=
de-title::after { content: "Caddyfile Directives"; }

.single .content .highlight > .chroma .code-header.language-caddy-d .code-t=
itle::after { content: "Caddyfile Directives"; }

.single .content .highlight > .chroma .code-header.language-capnp .code-tit=
le::after { content: "Cap'n Proto"; }

.single .content .highlight > .chroma .code-header.language-cassandra .code=
-title::after { content: "Cassandra CQL"; }

.single .content .highlight > .chroma .code-header.language-cql .code-title=
::after { content: "Cassandra CQL"; }

.single .content .highlight > .chroma .code-header.language-ceylon .code-ti=
tle::after { content: "Ceylon"; }

.single .content .highlight > .chroma .code-header.language-cfengine3 .code=
-title::after { content: "CFEngine3"; }

.single .content .highlight > .chroma .code-header.language-cf3 .code-title=
::after { content: "CFEngine3"; }

.single .content .highlight > .chroma .code-header.language-cfs .code-title=
::after { content: "cfstatement"; }

.single .content .highlight > .chroma .code-header.language-chai .code-titl=
e::after { content: "ChaiScript"; }

.single .content .highlight > .chroma .code-header.language-chaiscript .cod=
e-title::after { content: "ChaiScript"; }

.single .content .highlight > .chroma .code-header.language-cheetah .code-t=
itle::after { content: "Cheetah"; }

.single .content .highlight > .chroma .code-header.language-spitfire .code-=
title::after { content: "Cheetah"; }

.single .content .highlight > .chroma .code-header.language-clojure .code-t=
itle::after { content: "Clojure"; }

.single .content .highlight > .chroma .code-header.language-clj .code-title=
::after { content: "Clojure"; }

.single .content .highlight > .chroma .code-header.language-cmake .code-tit=
le::after { content: "CMake"; }

.single .content .highlight > .chroma .code-header.language-cobol .code-tit=
le::after { content: "COBOL"; }

.single .content .highlight > .chroma .code-header.language-coffee-script .=
code-title::after { content: "CoffeeScript"; }

.single .content .highlight > .chroma .code-header.language-coffeescript .c=
ode-title::after { content: "CoffeeScript"; }

.single .content .highlight > .chroma .code-header.language-coffee .code-ti=
tle::after { content: "CoffeeScript"; }

.single .content .highlight > .chroma .code-header.language-common-lisp .co=
de-title::after { content: "Common Lisp"; }

.single .content .highlight > .chroma .code-header.language-cl .code-title:=
:after { content: "Common Lisp"; }

.single .content .highlight > .chroma .code-header.language-lisp .code-titl=
e::after { content: "Common Lisp"; }

.single .content .highlight > .chroma .code-header.language-coq .code-title=
::after { content: "Coq"; }

.single .content .highlight > .chroma .code-header.language-cr .code-title:=
:after { content: "Crystal"; }

.single .content .highlight > .chroma .code-header.language-crystal .code-t=
itle::after { content: "Crystal"; }

.single .content .highlight > .chroma .code-header.language-css .code-title=
::after { content: "CSS"; }

.single .content .highlight > .chroma .code-header.language-cython .code-ti=
tle::after { content: "Cython"; }

.single .content .highlight > .chroma .code-header.language-pyx .code-title=
::after { content: "Cython"; }

.single .content .highlight > .chroma .code-header.language-pyrex .code-tit=
le::after { content: "Cython"; }

.single .content .highlight > .chroma .code-header.language-d .code-title::=
after { content: "D"; }

.single .content .highlight > .chroma .code-header.language-dart .code-titl=
e::after { content: "Dart"; }

.single .content .highlight > .chroma .code-header.language-diff .code-titl=
e::after { content: "Diff"; }

.single .content .highlight > .chroma .code-header.language-udiff .code-tit=
le::after { content: "Diff"; }

.single .content .highlight > .chroma .code-header.language-django .code-ti=
tle::after { content: "Django/Jinja"; }

.single .content .highlight > .chroma .code-header.language-jinja .code-tit=
le::after { content: "Django/Jinja"; }

.single .content .highlight > .chroma .code-header.language-docker .code-ti=
tle::after { content: "Docker"; }

.single .content .highlight > .chroma .code-header.language-dockerfile .cod=
e-title::after { content: "Docker"; }

.single .content .highlight > .chroma .code-header.language-dtd .code-title=
::after { content: "DTD"; }

.single .content .highlight > .chroma .code-header.language-dylan .code-tit=
le::after { content: "Dylan"; }

.single .content .highlight > .chroma .code-header.language-ebnf .code-titl=
e::after { content: "EBNF"; }

.single .content .highlight > .chroma .code-header.language-elixir .code-ti=
tle::after { content: "Elixir"; }

.single .content .highlight > .chroma .code-header.language-ex .code-title:=
:after { content: "Elixir"; }

.single .content .highlight > .chroma .code-header.language-exs .code-title=
::after { content: "Elixir"; }

.single .content .highlight > .chroma .code-header.language-elm .code-title=
::after { content: "Elm"; }

.single .content .highlight > .chroma .code-header.language-emacs .code-tit=
le::after { content: "EmacsLisp"; }

.single .content .highlight > .chroma .code-header.language-elisp .code-tit=
le::after { content: "EmacsLisp"; }

.single .content .highlight > .chroma .code-header.language-emacs-lisp .cod=
e-title::after { content: "EmacsLisp"; }

.single .content .highlight > .chroma .code-header.language-erlang .code-ti=
tle::after { content: "Erlang"; }

.single .content .highlight > .chroma .code-header.language-factor .code-ti=
tle::after { content: "Factor"; }

.single .content .highlight > .chroma .code-header.language-fennel .code-ti=
tle::after { content: "Fennel"; }

.single .content .highlight > .chroma .code-header.language-fnl .code-title=
::after { content: "Fennel"; }

.single .content .highlight > .chroma .code-header.language-fish .code-titl=
e::after { content: "Fish"; }

.single .content .highlight > .chroma .code-header.language-fishshell .code=
-title::after { content: "Fish"; }

.single .content .highlight > .chroma .code-header.language-forth .code-tit=
le::after { content: "Forth"; }

.single .content .highlight > .chroma .code-header.language-fortran .code-t=
itle::after { content: "Fortran"; }

.single .content .highlight > .chroma .code-header.language-fortranfixed .c=
ode-title::after { content: "FortranFixed"; }

.single .content .highlight > .chroma .code-header.language-fsharp .code-ti=
tle::after { content: "FSharp"; }

.single .content .highlight > .chroma .code-header.language-gas .code-title=
::after { content: "GAS"; }

.single .content .highlight > .chroma .code-header.language-asm .code-title=
::after { content: "GAS"; }

.single .content .highlight > .chroma .code-header.language-gdscript .code-=
title::after { content: "GDScript"; }

.single .content .highlight > .chroma .code-header.language-gd .code-title:=
:after { content: "GDScript"; }

.single .content .highlight > .chroma .code-header.language-genshi .code-ti=
tle::after { content: "Genshi"; }

.single .content .highlight > .chroma .code-header.language-kid .code-title=
::after { content: "Genshi"; }

.single .content .highlight > .chroma .code-header.language-xml\+genshi .co=
de-title::after { content: "Genshi"; }

.single .content .highlight > .chroma .code-header.language-xml\+kid .code-=
title::after { content: "Genshi"; }

.single .content .highlight > .chroma .code-header.language-html\+genshi .c=
ode-title::after { content: "Genshi HTML"; }

.single .content .highlight > .chroma .code-header.language-html\+kid .code=
-title::after { content: "Genshi HTML"; }

.single .content .highlight > .chroma .code-header.language-genshitext .cod=
e-title::after { content: "Genshi Text"; }

.single .content .highlight > .chroma .code-header.language-cucumber .code-=
title::after { content: "Gherkin"; }

.single .content .highlight > .chroma .code-header.language-Cucumber .code-=
title::after { content: "Gherkin"; }

.single .content .highlight > .chroma .code-header.language-gherkin .code-t=
itle::after { content: "Gherkin"; }

.single .content .highlight > .chroma .code-header.language-Gherkin .code-t=
itle::after { content: "Gherkin"; }

.single .content .highlight > .chroma .code-header.language-glsl .code-titl=
e::after { content: "GLSL"; }

.single .content .highlight > .chroma .code-header.language-gnuplot .code-t=
itle::after { content: "Gnuplot"; }

.single .content .highlight > .chroma .code-header.language-go .code-title:=
:after { content: "Go"; }

.single .content .highlight > .chroma .code-header.language-golang .code-ti=
tle::after { content: "Go"; }

.single .content .highlight > .chroma .code-header.language-go-html-templat=
e .code-title::after { content: "Go HTML Template"; }

.single .content .highlight > .chroma .code-header.language-go-text-templat=
e .code-title::after { content: "Go Text Template"; }

.single .content .highlight > .chroma .code-header.language-graphql .code-t=
itle::after { content: "GraphQL"; }

.single .content .highlight > .chroma .code-header.language-graphqls .code-=
title::after { content: "GraphQL"; }

.single .content .highlight > .chroma .code-header.language-gql .code-title=
::after { content: "GraphQL"; }

.single .content .highlight > .chroma .code-header.language-groff .code-tit=
le::after { content: "Groff"; }

.single .content .highlight > .chroma .code-header.language-nroff .code-tit=
le::after { content: "Groff"; }

.single .content .highlight > .chroma .code-header.language-man .code-title=
::after { content: "Groff"; }

.single .content .highlight > .chroma .code-header.language-groovy .code-ti=
tle::after { content: "Groovy"; }

.single .content .highlight > .chroma .code-header.language-handlebars .cod=
e-title::after { content: "Handlebars"; }

.single .content .highlight > .chroma .code-header.language-hbs .code-title=
::after { content: "Handlebars"; }

.single .content .highlight > .chroma .code-header.language-haskell .code-t=
itle::after { content: "Haskell"; }

.single .content .highlight > .chroma .code-header.language-hs .code-title:=
:after { content: "Haskell"; }

.single .content .highlight > .chroma .code-header.language-hx .code-title:=
:after { content: "Haxe"; }

.single .content .highlight > .chroma .code-header.language-haxe .code-titl=
e::after { content: "Haxe"; }

.single .content .highlight > .chroma .code-header.language-hxsl .code-titl=
e::after { content: "Haxe"; }

.single .content .highlight > .chroma .code-header.language-hcl .code-title=
::after { content: "HCL"; }

.single .content .highlight > .chroma .code-header.language-hexdump .code-t=
itle::after { content: "Hexdump"; }

.single .content .highlight > .chroma .code-header.language-hlb .code-title=
::after { content: "HLB"; }

.single .content .highlight > .chroma .code-header.language-html .code-titl=
e::after { content: "HTML"; }

.single .content .highlight > .chroma .code-header.language-http .code-titl=
e::after { content: "HTTP"; }

.single .content .highlight > .chroma .code-header.language-hylang .code-ti=
tle::after { content: "Hy"; }

.single .content .highlight > .chroma .code-header.language-idris .code-tit=
le::after { content: "Idris"; }

.single .content .highlight > .chroma .code-header.language-idr .code-title=
::after { content: "Idris"; }

.single .content .highlight > .chroma .code-header.language-igor .code-titl=
e::after { content: "Igor"; }

.single .content .highlight > .chroma .code-header.language-igorpro .code-t=
itle::after { content: "Igor"; }

.single .content .highlight > .chroma .code-header.language-ini .code-title=
::after { content: "INI"; }

.single .content .highlight > .chroma .code-header.language-cfg .code-title=
::after { content: "INI"; }

.single .content .highlight > .chroma .code-header.language-dosini .code-ti=
tle::after { content: "INI"; }

.single .content .highlight > .chroma .code-header.language-io .code-title:=
:after { content: "Io"; }

.single .content .highlight > .chroma .code-header.language-j .code-title::=
after { content: "J"; }

.single .content .highlight > .chroma .code-header.language-java .code-titl=
e::after { content: "Java"; }

.single .content .highlight > .chroma .code-header.language-js .code-title:=
:after { content: "JavaScript"; }

.single .content .highlight > .chroma .code-header.language-javascript .cod=
e-title::after { content: "JavaScript"; }

.single .content .highlight > .chroma .code-header.language-json .code-titl=
e::after { content: "JSON"; }

.single .content .highlight > .chroma .code-header.language-julia .code-tit=
le::after { content: "Julia"; }

.single .content .highlight > .chroma .code-header.language-jl .code-title:=
:after { content: "Julia"; }

.single .content .highlight > .chroma .code-header.language-jungle .code-ti=
tle::after { content: "Jungle"; }

.single .content .highlight > .chroma .code-header.language-kotlin .code-ti=
tle::after { content: "Kotlin"; }

.single .content .highlight > .chroma .code-header.language-lighty .code-ti=
tle::after { content: "Lighttpd configuration file"; }

.single .content .highlight > .chroma .code-header.language-lighttpd .code-=
title::after { content: "Lighttpd configuration file"; }

.single .content .highlight > .chroma .code-header.language-llvm .code-titl=
e::after { content: "LLVM"; }

.single .content .highlight > .chroma .code-header.language-lua .code-title=
::after { content: "Lua"; }

.single .content .highlight > .chroma .code-header.language-mako .code-titl=
e::after { content: "Mako"; }

.single .content .highlight > .chroma .code-header.language-md .code-title:=
:after { content: "Markdown"; }

.single .content .highlight > .chroma .code-header.language-mkd .code-title=
::after { content: "Markdown"; }

.single .content .highlight > .chroma .code-header.language-mason .code-tit=
le::after { content: "Mason"; }

.single .content .highlight > .chroma .code-header.language-mathematica .co=
de-title::after { content: "Mathematica"; }

.single .content .highlight > .chroma .code-header.language-mma .code-title=
::after { content: "Mathematica"; }

.single .content .highlight > .chroma .code-header.language-nb .code-title:=
:after { content: "Mathematica"; }

.single .content .highlight > .chroma .code-header.language-matlab .code-ti=
tle::after { content: "Matlab"; }

.single .content .highlight > .chroma .code-header.language-mcfunction .cod=
e-title::after { content: "mcfunction"; }

.single .content .highlight > .chroma .code-header.language-meson .code-tit=
le::after { content: "Meson"; }

.single .content .highlight > .chroma .code-header.language-meson\.build .c=
ode-title::after { content: "Meson"; }

.single .content .highlight > .chroma .code-header.language-metal .code-tit=
le::after { content: "Metal"; }

.single .content .highlight > .chroma .code-header.language-minizinc .code-=
title::after { content: "MiniZinc"; }

.single .content .highlight > .chroma .code-header.language-MZN .code-title=
::after { content: "MiniZinc"; }

.single .content .highlight > .chroma .code-header.language-mzn .code-title=
::after { content: "MiniZinc"; }

.single .content .highlight > .chroma .code-header.language-mlir .code-titl=
e::after { content: "MLIR"; }

.single .content .highlight > .chroma .code-header.language-modula2 .code-t=
itle::after { content: "Modula-2"; }

.single .content .highlight > .chroma .code-header.language-m2 .code-title:=
:after { content: "Modula-2"; }

.single .content .highlight > .chroma .code-header.language-monkeyc .code-t=
itle::after { content: "MonkeyC"; }

.single .content .highlight > .chroma .code-header.language-morrowind .code=
-title::after { content: "MorrowindScript"; }

.single .content .highlight > .chroma .code-header.language-mwscript .code-=
title::after { content: "MorrowindScript"; }

.single .content .highlight > .chroma .code-header.language-myghty .code-ti=
tle::after { content: "Myghty"; }

.single .content .highlight > .chroma .code-header.language-mysql .code-tit=
le::after { content: "MySQL"; }

.single .content .highlight > .chroma .code-header.language-mariadb .code-t=
itle::after { content: "MySQL"; }

.single .content .highlight > .chroma .code-header.language-nasm .code-titl=
e::after { content: "NASM"; }

.single .content .highlight > .chroma .code-header.language-newspeak .code-=
title::after { content: "Newspeak"; }

.single .content .highlight > .chroma .code-header.language-nginx .code-tit=
le::after { content: "Nginx configuration file"; }

.single .content .highlight > .chroma .code-header.language-nim .code-title=
::after { content: "Nim"; }

.single .content .highlight > .chroma .code-header.language-nimrod .code-ti=
tle::after { content: "Nim"; }

.single .content .highlight > .chroma .code-header.language-nixos .code-tit=
le::after { content: "Nix"; }

.single .content .highlight > .chroma .code-header.language-nix .code-title=
::after { content: "Nix"; }

.single .content .highlight > .chroma .code-header.language-objective-c .co=
de-title::after { content: "Objective-C"; }

.single .content .highlight > .chroma .code-header.language-objectivec .cod=
e-title::after { content: "Objective-C"; }

.single .content .highlight > .chroma .code-header.language-obj-c .code-tit=
le::after { content: "Objective-C"; }

.single .content .highlight > .chroma .code-header.language-objc .code-titl=
e::after { content: "Objective-C"; }

.single .content .highlight > .chroma .code-header.language-ocaml .code-tit=
le::after { content: "OCaml"; }

.single .content .highlight > .chroma .code-header.language-octave .code-ti=
tle::after { content: "Octave"; }

.single .content .highlight > .chroma .code-header.language-ones .code-titl=
e::after { content: "OnesEnterprise"; }

.single .content .highlight > .chroma .code-header.language-onesenterprise =
.code-title::after { content: "OnesEnterprise"; }

.single .content .highlight > .chroma .code-header.language-1S .code-title:=
:after { content: "OnesEnterprise"; }

.single .content .highlight > .chroma .code-header.language-openedge .code-=
title::after { content: "OpenEdge ABL"; }

.single .content .highlight > .chroma .code-header.language-abl .code-title=
::after { content: "OpenEdge ABL"; }

.single .content .highlight > .chroma .code-header.language-progress .code-=
title::after { content: "OpenEdge ABL"; }

.single .content .highlight > .chroma .code-header.language-openedgeabl .co=
de-title::after { content: "OpenEdge ABL"; }

.single .content .highlight > .chroma .code-header.language-openscad .code-=
title::after { content: "OpenSCAD"; }

.single .content .highlight > .chroma .code-header.language-org .code-title=
::after { content: "Org Mode"; }

.single .content .highlight > .chroma .code-header.language-orgmode .code-t=
itle::after { content: "Org Mode"; }

.single .content .highlight > .chroma .code-header.language-pacmanconf .cod=
e-title::after { content: "PacmanConf"; }

.single .content .highlight > .chroma .code-header.language-perl .code-titl=
e::after { content: "Perl"; }

.single .content .highlight > .chroma .code-header.language-pl .code-title:=
:after { content: "Perl"; }

.single .content .highlight > .chroma .code-header.language-php .code-title=
::after { content: "PHP"; }

.single .content .highlight > .chroma .code-header.language-php3 .code-titl=
e::after { content: "PHP"; }

.single .content .highlight > .chroma .code-header.language-php4 .code-titl=
e::after { content: "PHP"; }

.single .content .highlight > .chroma .code-header.language-php5 .code-titl=
e::after { content: "PHP"; }

.single .content .highlight > .chroma .code-header.language-phtml .code-tit=
le::after { content: "PHTML"; }

.single .content .highlight > .chroma .code-header.language-pig .code-title=
::after { content: "Pig"; }

.single .content .highlight > .chroma .code-header.language-pkgconfig .code=
-title::after { content: "PkgConfig"; }

.single .content .highlight > .chroma .code-header.language-plpgsql .code-t=
itle::after { content: "PL/pgSQL"; }

.single .content .highlight > .chroma .code-header.language-text .code-titl=
e::after { content: "plaintext"; }

.single .content .highlight > .chroma .code-header.language-plain .code-tit=
le::after { content: "plaintext"; }

.single .content .highlight > .chroma .code-header.language-no-highlight .c=
ode-title::after { content: "plaintext"; }

.single .content .highlight > .chroma .code-header.language-plutus-core .co=
de-title::after { content: "Plutus Core"; }

.single .content .highlight > .chroma .code-header.language-plc .code-title=
::after { content: "Plutus Core"; }

.single .content .highlight > .chroma .code-header.language-pony .code-titl=
e::after { content: "Pony"; }

.single .content .highlight > .chroma .code-header.language-postgresql .cod=
e-title::after { content: "PostgreSQL SQL dialect"; }

.single .content .highlight > .chroma .code-header.language-postgres .code-=
title::after { content: "PostgreSQL SQL dialect"; }

.single .content .highlight > .chroma .code-header.language-postscript .cod=
e-title::after { content: "PostScript"; }

.single .content .highlight > .chroma .code-header.language-postscr .code-t=
itle::after { content: "PostScript"; }

.single .content .highlight > .chroma .code-header.language-pov .code-title=
::after { content: "POVRay"; }

.single .content .highlight > .chroma .code-header.language-powerquery .cod=
e-title::after { content: "PowerQuery"; }

.single .content .highlight > .chroma .code-header.language-pq .code-title:=
:after { content: "PowerQuery"; }

.single .content .highlight > .chroma .code-header.language-powershell .cod=
e-title::after { content: "PowerShell"; }

.single .content .highlight > .chroma .code-header.language-posh .code-titl=
e::after { content: "PowerShell"; }

.single .content .highlight > .chroma .code-header.language-ps1 .code-title=
::after { content: "PowerShell"; }

.single .content .highlight > .chroma .code-header.language-psm1 .code-titl=
e::after { content: "PowerShell"; }

.single .content .highlight > .chroma .code-header.language-psd1 .code-titl=
e::after { content: "PowerShell"; }

.single .content .highlight > .chroma .code-header.language-prolog .code-ti=
tle::after { content: "Prolog"; }

.single .content .highlight > .chroma .code-header.language-promql .code-ti=
tle::after { content: "PromQL"; }

.single .content .highlight > .chroma .code-header.language-protobuf .code-=
title::after { content: "Protocol Buffer"; }

.single .content .highlight > .chroma .code-header.language-proto .code-tit=
le::after { content: "Protocol Buffer"; }

.single .content .highlight > .chroma .code-header.language-puppet .code-ti=
tle::after { content: "Puppet"; }

.single .content .highlight > .chroma .code-header.language-python .code-ti=
tle::after { content: "Python"; }

.single .content .highlight > .chroma .code-header.language-py .code-title:=
:after { content: "Python"; }

.single .content .highlight > .chroma .code-header.language-sage .code-titl=
e::after { content: "Python"; }

.single .content .highlight > .chroma .code-header.language-python3 .code-t=
itle::after { content: "Python"; }

.single .content .highlight > .chroma .code-header.language-py3 .code-title=
::after { content: "Python"; }

.single .content .highlight > .chroma .code-header.language-python2 .code-t=
itle::after { content: "Python 2"; }

.single .content .highlight > .chroma .code-header.language-py2 .code-title=
::after { content: "Python 2"; }

.single .content .highlight > .chroma .code-header.language-qbasic .code-ti=
tle::after { content: "QBasic"; }

.single .content .highlight > .chroma .code-header.language-basic .code-tit=
le::after { content: "QBasic"; }

.single .content .highlight > .chroma .code-header.language-qml .code-title=
::after { content: "QML"; }

.single .content .highlight > .chroma .code-header.language-qbs .code-title=
::after { content: "QML"; }

.single .content .highlight > .chroma .code-header.language-splus .code-tit=
le::after { content: "R"; }

.single .content .highlight > .chroma .code-header.language-s .code-title::=
after { content: "R"; }

.single .content .highlight > .chroma .code-header.language-r .code-title::=
after { content: "R"; }

.single .content .highlight > .chroma .code-header.language-racket .code-ti=
tle::after { content: "Racket"; }

.single .content .highlight > .chroma .code-header.language-rkt .code-title=
::after { content: "Racket"; }

.single .content .highlight > .chroma .code-header.language-ragel .code-tit=
le::after { content: "Ragel"; }

.single .content .highlight > .chroma .code-header.language-perl6 .code-tit=
le::after { content: "Raku"; }

.single .content .highlight > .chroma .code-header.language-pl6 .code-title=
::after { content: "Raku"; }

.single .content .highlight > .chroma .code-header.language-raku .code-titl=
e::after { content: "Raku"; }

.single .content .highlight > .chroma .code-header.language-jsx .code-title=
::after { content: "react"; }

.single .content .highlight > .chroma .code-header.language-react .code-tit=
le::after { content: "react"; }

.single .content .highlight > .chroma .code-header.language-reason .code-ti=
tle::after { content: "ReasonML"; }

.single .content .highlight > .chroma .code-header.language-reasonml .code-=
title::after { content: "ReasonML"; }

.single .content .highlight > .chroma .code-header.language-registry .code-=
title::after { content: "reg"; }

.single .content .highlight > .chroma .code-header.language-rst .code-title=
::after { content: "reStructuredText"; }

.single .content .highlight > .chroma .code-header.language-rest .code-titl=
e::after { content: "reStructuredText"; }

.single .content .highlight > .chroma .code-header.language-restructuredtex=
t .code-title::after { content: "reStructuredText"; }

.single .content .highlight > .chroma .code-header.language-rexx .code-titl=
e::after { content: "Rexx"; }

.single .content .highlight > .chroma .code-header.language-arexx .code-tit=
le::after { content: "Rexx"; }

.single .content .highlight > .chroma .code-header.language-rb .code-title:=
:after { content: "Ruby"; }

.single .content .highlight > .chroma .code-header.language-ruby .code-titl=
e::after { content: "Ruby"; }

.single .content .highlight > .chroma .code-header.language-duby .code-titl=
e::after { content: "Ruby"; }

.single .content .highlight > .chroma .code-header.language-rust .code-titl=
e::after { content: "Rust"; }

.single .content .highlight > .chroma .code-header.language-rs .code-title:=
:after { content: "Rust"; }

.single .content .highlight > .chroma .code-header.language-sas .code-title=
::after { content: "SAS"; }

.single .content .highlight > .chroma .code-header.language-sass .code-titl=
e::after { content: "Sass"; }

.single .content .highlight > .chroma .code-header.language-scala .code-tit=
le::after { content: "Scala"; }

.single .content .highlight > .chroma .code-header.language-scheme .code-ti=
tle::after { content: "Scheme"; }

.single .content .highlight > .chroma .code-header.language-scm .code-title=
::after { content: "Scheme"; }

.single .content .highlight > .chroma .code-header.language-scilab .code-ti=
tle::after { content: "Scilab"; }

.single .content .highlight > .chroma .code-header.language-scss .code-titl=
e::after { content: "SCSS"; }

.single .content .highlight > .chroma .code-header.language-sieve .code-tit=
le::after { content: "Sieve"; }

.single .content .highlight > .chroma .code-header.language-smalltalk .code=
-title::after { content: "Smalltalk"; }

.single .content .highlight > .chroma .code-header.language-squeak .code-ti=
tle::after { content: "Smalltalk"; }

.single .content .highlight > .chroma .code-header.language-st .code-title:=
:after { content: "Smalltalk"; }

.single .content .highlight > .chroma .code-header.language-smarty .code-ti=
tle::after { content: "Smarty"; }

.single .content .highlight > .chroma .code-header.language-snobol .code-ti=
tle::after { content: "Snobol"; }

.single .content .highlight > .chroma .code-header.language-sol .code-title=
::after { content: "Solidity"; }

.single .content .highlight > .chroma .code-header.language-solidity .code-=
title::after { content: "Solidity"; }

.single .content .highlight > .chroma .code-header.language-sparql .code-ti=
tle::after { content: "SPARQL"; }

.single .content .highlight > .chroma .code-header.language-sql .code-title=
::after { content: "SQL"; }

.single .content .highlight > .chroma .code-header.language-squidconf .code=
-title::after { content: "SquidConf"; }

.single .content .highlight > .chroma .code-header.language-squid\.conf .co=
de-title::after { content: "SquidConf"; }

.single .content .highlight > .chroma .code-header.language-squid .code-tit=
le::after { content: "SquidConf"; }

.single .content .highlight > .chroma .code-header.language-sml .code-title=
::after { content: "Standard ML"; }

.single .content .highlight > .chroma .code-header.language-stylus .code-ti=
tle::after { content: "Stylus"; }

.single .content .highlight > .chroma .code-header.language-svelte .code-ti=
tle::after { content: "Svelte"; }

.single .content .highlight > .chroma .code-header.language-swift .code-tit=
le::after { content: "Swift"; }

.single .content .highlight > .chroma .code-header.language-systemd .code-t=
itle::after { content: "SYSTEMD"; }

.single .content .highlight > .chroma .code-header.language-systemverilog .=
code-title::after { content: "systemverilog"; }

.single .content .highlight > .chroma .code-header.language-sv .code-title:=
:after { content: "systemverilog"; }

.single .content .highlight > .chroma .code-header.language-tablegen .code-=
title::after { content: "TableGen"; }

.single .content .highlight > .chroma .code-header.language-tasm .code-titl=
e::after { content: "TASM"; }

.single .content .highlight > .chroma .code-header.language-tcl .code-title=
::after { content: "Tcl"; }

.single .content .highlight > .chroma .code-header.language-tcsh .code-titl=
e::after { content: "Tcsh"; }

.single .content .highlight > .chroma .code-header.language-csh .code-title=
::after { content: "Tcsh"; }

.single .content .highlight > .chroma .code-header.language-termcap .code-t=
itle::after { content: "Termcap"; }

.single .content .highlight > .chroma .code-header.language-terminfo .code-=
title::after { content: "Terminfo"; }

.single .content .highlight > .chroma .code-header.language-terraform .code=
-title::after { content: "Terraform"; }

.single .content .highlight > .chroma .code-header.language-tf .code-title:=
:after { content: "Terraform"; }

.single .content .highlight > .chroma .code-header.language-tex .code-title=
::after { content: "TeX"; }

.single .content .highlight > .chroma .code-header.language-latex .code-tit=
le::after { content: "TeX"; }

.single .content .highlight > .chroma .code-header.language-thrift .code-ti=
tle::after { content: "Thrift"; }

.single .content .highlight > .chroma .code-header.language-toml .code-titl=
e::after { content: "TOML"; }

.single .content .highlight > .chroma .code-header.language-tradingview .co=
de-title::after { content: "TradingView"; }

.single .content .highlight > .chroma .code-header.language-tv .code-title:=
:after { content: "TradingView"; }

.single .content .highlight > .chroma .code-header.language-tsql .code-titl=
e::after { content: "Transact-SQL"; }

.single .content .highlight > .chroma .code-header.language-t-sql .code-tit=
le::after { content: "Transact-SQL"; }

.single .content .highlight > .chroma .code-header.language-turing .code-ti=
tle::after { content: "Turing"; }

.single .content .highlight > .chroma .code-header.language-turtle .code-ti=
tle::after { content: "Turtle"; }

.single .content .highlight > .chroma .code-header.language-twig .code-titl=
e::after { content: "Twig"; }

.single .content .highlight > .chroma .code-header.language-ts .code-title:=
:after { content: "TypeScript"; }

.single .content .highlight > .chroma .code-header.language-tsx .code-title=
::after { content: "TypeScript"; }

.single .content .highlight > .chroma .code-header.language-typescript .cod=
e-title::after { content: "TypeScript"; }

.single .content .highlight > .chroma .code-header.language-typoscript .cod=
e-title::after { content: "TypoScript"; }

.single .content .highlight > .chroma .code-header.language-typoscriptcssda=
ta .code-title::after { content: "TypoScriptCssData"; }

.single .content .highlight > .chroma .code-header.language-typoscripthtmld=
ata .code-title::after { content: "TypoScriptHtmlData"; }

.single .content .highlight > .chroma .code-header.language-v .code-title::=
after { content: "verilog"; }

.single .content .highlight > .chroma .code-header.language-vlang .code-tit=
le::after { content: "V"; }

.single .content .highlight > .chroma .code-header.language-vsh .code-title=
::after { content: "V shell"; }

.single .content .highlight > .chroma .code-header.language-vshell .code-ti=
tle::after { content: "V shell"; }

.single .content .highlight > .chroma .code-header.language-vb\.net .code-t=
itle::after { content: "VB.net"; }

.single .content .highlight > .chroma .code-header.language-vbnet .code-tit=
le::after { content: "VB.net"; }

.single .content .highlight > .chroma .code-header.language-verilog .code-t=
itle::after { content: "verilog"; }

.single .content .highlight > .chroma .code-header.language-vhdl .code-titl=
e::after { content: "VHDL"; }

.single .content .highlight > .chroma .code-header.language-vim .code-title=
::after { content: "VimL"; }

.single .content .highlight > .chroma .code-header.language-vue .code-title=
::after { content: "vue"; }

.single .content .highlight > .chroma .code-header.language-vuejs .code-tit=
le::after { content: "vue"; }

.single .content .highlight > .chroma .code-header.language-whiley .code-ti=
tle::after { content: "Whiley"; }

.single .content .highlight > .chroma .code-header.language-xml .code-title=
::after { content: "XML"; }

.single .content .highlight > .chroma .code-header.language-xorg\.conf .cod=
e-title::after { content: "Xorg"; }

.single .content .highlight > .chroma .code-header.language-yaml .code-titl=
e::after { content: "YAML"; }

.single .content .highlight > .chroma .code-header.language-yang .code-titl=
e::after { content: "YANG"; }

.single .content .highlight > .chroma .code-header.language-zed .code-title=
::after { content: "Zed"; }

.single .content .highlight > .chroma .code-header.language-zig .code-title=
::after { content: "Zig"; }

.single .content .highlight > .chroma .code-header.language-markdown .code-=
title::after { content: "Markdown"; }

.single .content .highlight > .chroma .code-header.language-yml .code-title=
::after { content: "YAML"; }

.single .content .highlight > .chroma .table-wrapper { overflow: hidden; bo=
rder-radius: 5px; }

.single .content .highlight > .chroma table { border-spacing: 0px; width: a=
uto; overflow: auto; display: block; background-color: rgb(246, 248, 250); =
}

[data-theme=3D"dark"] .single .content .highlight > .chroma table { backgro=
und-color: rgb(45, 51, 59); }

.single .content .highlight > .chroma table td { vertical-align: top; paddi=
ng: 0px; }

.single .content .highlight > .chroma table pre { padding: 0.25rem; outline=
-offset: -1px; border-radius: 0px; }

.single .content .highlight > .chroma table .ln { min-width: 1.25rem; }

.single .content .highlight > .chroma table .lntd:first-child { min-width: =
1.6rem; text-align: right; position: sticky; left: 0px; }

.single .content .highlight > .chroma table .lntd:first-child pre { user-se=
lect: none !important; }

.single .content .highlight > .chroma table .lntd:last-child { width: 100%;=
 }

.single .content .highlight > .chroma table .lntd:last-child pre { padding-=
left: 0.5rem; padding-right: 0.5rem; }

.single .content .highlight > .chroma table .lntd:last-child code { width: =
100%; }

.single .content .highlight > .chroma.open .code-header { --fi-bg-code-head=
er: #e2e9ef; border-radius: 5px 5px 0px 0px; }

[data-theme=3D"dark"] .single .content .highlight > .chroma.open .code-head=
er { --fi-bg-code-header: #20242a; }

.single .content .highlight > .chroma.open .table-wrapper { max-height: 100=
%; transition: max-height 0.2s cubic-bezier(0.5, 0, 1, 0); }

.single .content .highlight > .chroma.open .arrow { transform: rotate(90deg=
); }

.single .content .highlight > .chroma.open .ellipses { display: none; }

.single .content .highlight > .chroma.open .edit, .single .content .highlig=
ht > .chroma.open .copy { display: inline; }

.single .content .highlight .hl { display: block; background-color: rgb(255=
, 248, 197); box-shadow: rgb(255, 248, 197) -0.5rem 0px 0px, rgb(255, 248, =
197) 0.5rem 0px 0px; }

[data-theme=3D"dark"] .single .content .highlight .hl { background-color: r=
gba(174, 124, 20, 0.15); box-shadow: rgba(174, 124, 20, 0.15) -0.5rem 0px 0=
px, rgba(174, 124, 20, 0.15) 0.5rem 0px 0px; }

.single .content .highlight .gl { text-decoration: underline; }

.single .content .highlight .gs { font-weight: bold; }

.single .content .highlight .ge { font-style: italic; }

.single .content .highlight .ln { padding-right: 0.5rem; display: inline-bl=
ock; min-width: 1.1rem; text-align: right; }

.single .content .highlight .lnt, .single .content .highlight .ln { color: =
rgb(177, 177, 186); }

[data-theme=3D"dark"] .single .content .highlight .lnt, [data-theme=3D"dark=
"] .single .content .highlight .ln { color: rgb(144, 144, 146); }

.single .content .highlight .err { font-style: italic; border-bottom: 1px d=
otted rgb(220, 53, 69); }

.single .content .highlight .gd { background-color: rgb(255, 235, 233); }

[data-theme=3D"dark"] .single .content .highlight .gd { background-color: r=
gb(120, 25, 27); }

.single .content .highlight .gi { background-color: rgb(218, 251, 225); }

[data-theme=3D"dark"] .single .content .highlight .gi { background-color: r=
gb(27, 71, 33); }

.single .content .highlight .err { color: rgb(220, 53, 69); }

.single .content .highlight .k { color: rgb(207, 34, 46); }

.single .content .highlight .kc { color: rgb(5, 80, 174); }

.single .content .highlight .kd { color: rgb(207, 34, 46); }

.single .content .highlight .kn { color: rgb(207, 34, 46); }

.single .content .highlight .kp { color: rgb(207, 34, 46); }

.single .content .highlight .kr { color: rgb(207, 34, 46); }

.single .content .highlight .kt { color: rgb(207, 34, 46); }

.single .content .highlight .n { color: rgb(36, 41, 47); }

.single .content .highlight .na { color: rgb(5, 80, 174); }

.single .content .highlight .nb { color: rgb(5, 80, 174); }

.single .content .highlight .bp { color: rgb(36, 41, 47); }

.single .content .highlight .nc { color: rgb(130, 80, 223); }

.single .content .highlight .no { color: rgb(207, 34, 46); }

.single .content .highlight .nd { color: rgb(130, 80, 223); }

.single .content .highlight .ni { color: rgb(5, 80, 174); }

.single .content .highlight .ne { color: rgb(5, 80, 174); }

.single .content .highlight .nf { color: rgb(5, 80, 174); }

.single .content .highlight .fm { color: rgb(5, 80, 174); }

.single .content .highlight .nl { color: rgb(5, 80, 174); }

.single .content .highlight .nn { color: rgb(130, 80, 223); }

.single .content .highlight .nx { color: rgb(5, 80, 174); }

.single .content .highlight .py { color: rgb(5, 80, 174); }

.single .content .highlight .nt { color: rgb(17, 99, 41); }

.single .content .highlight .nv { color: rgb(149, 56, 0); }

.single .content .highlight .vc { color: rgb(5, 80, 174); }

.single .content .highlight .vg { color: rgb(5, 80, 174); }

.single .content .highlight .vi { color: rgb(5, 80, 174); }

.single .content .highlight .vm { color: rgb(5, 80, 174); }

.single .content .highlight .l { color: rgb(5, 80, 174); }

.single .content .highlight .ld { color: rgb(10, 48, 105); }

.single .content .highlight .s { color: rgb(10, 48, 105); }

.single .content .highlight .sa { color: rgb(10, 48, 105); }

.single .content .highlight .sb { color: rgb(10, 48, 105); }

.single .content .highlight .sc { color: rgb(10, 48, 105); }

.single .content .highlight .dl { color: rgb(10, 48, 105); }

.single .content .highlight .sd { color: rgb(10, 48, 105); }

.single .content .highlight .s2 { color: rgb(10, 48, 105); }

.single .content .highlight .se { color: rgb(10, 48, 105); }

.single .content .highlight .sh { color: rgb(10, 48, 105); }

.single .content .highlight .si { color: rgb(10, 48, 105); }

.single .content .highlight .sx { color: rgb(10, 48, 105); }

.single .content .highlight .sr { color: rgb(10, 48, 105); }

.single .content .highlight .s1 { color: rgb(10, 48, 105); }

.single .content .highlight .ss { color: rgb(10, 48, 105); }

.single .content .highlight .m { color: rgb(5, 80, 174); }

.single .content .highlight .mb { color: rgb(5, 80, 174); }

.single .content .highlight .mf { color: rgb(5, 80, 174); }

.single .content .highlight .mh { color: rgb(5, 80, 174); }

.single .content .highlight .mi { color: rgb(5, 80, 174); }

.single .content .highlight .il { color: rgb(5, 80, 174); }

.single .content .highlight .mo { color: rgb(5, 80, 174); }

.single .content .highlight .o { color: rgb(207, 34, 46); }

.single .content .highlight .ow { color: rgb(207, 34, 46); }

.single .content .highlight .p { color: rgb(36, 41, 47); }

.single .content .highlight .c { color: rgb(110, 119, 129); }

.single .content .highlight .ch { color: rgb(110, 119, 129); }

.single .content .highlight .cm { color: rgb(110, 119, 129); }

.single .content .highlight .c1 { color: rgb(110, 119, 129); }

.single .content .highlight .cs { color: rgb(110, 119, 129); }

.single .content .highlight .cp { color: rgb(5, 80, 174); }

.single .content .highlight .cpf { color: rgb(110, 119, 129); }

.single .content .highlight .g { color: rgb(36, 41, 47); }

.single .content .highlight .gd { color: rgb(130, 7, 30); }

.single .content .highlight .ge { color: rgb(36, 41, 47); }

.single .content .highlight .gr { color: rgb(220, 53, 69); }

.single .content .highlight .gh { color: rgb(36, 41, 47); }

.single .content .highlight .gi { color: rgb(17, 99, 41); }

.single .content .highlight .go { color: rgb(36, 41, 47); }

.single .content .highlight .gp { color: rgb(36, 41, 47); }

.single .content .highlight .gs { color: rgb(36, 41, 47); }

.single .content .highlight .gu { color: rgb(36, 41, 47); }

.single .content .highlight .gt { color: rgb(220, 53, 69); }

.single .content .highlight .gl { color: rgb(36, 41, 47); }

.single .content .highlight .w { color: rgb(36, 41, 47); }

.single .content .highlight .x { color: rgb(36, 41, 47); }

[data-theme=3D"dark"] .single .content .highlight .err { color: rgb(220, 53=
, 69); }

[data-theme=3D"dark"] .single .content .highlight .k { color: rgb(244, 112,=
 103); }

[data-theme=3D"dark"] .single .content .highlight .kc { color: rgb(108, 182=
, 255); }

[data-theme=3D"dark"] .single .content .highlight .kd { color: rgb(244, 112=
, 103); }

[data-theme=3D"dark"] .single .content .highlight .kn { color: rgb(244, 112=
, 103); }

[data-theme=3D"dark"] .single .content .highlight .kp { color: rgb(244, 112=
, 103); }

[data-theme=3D"dark"] .single .content .highlight .kr { color: rgb(244, 112=
, 103); }

[data-theme=3D"dark"] .single .content .highlight .kt { color: rgb(244, 112=
, 103); }

[data-theme=3D"dark"] .single .content .highlight .n { color: rgb(173, 186,=
 199); }

[data-theme=3D"dark"] .single .content .highlight .na { color: rgb(108, 182=
, 255); }

[data-theme=3D"dark"] .single .content .highlight .nb { color: rgb(220, 189=
, 251); }

[data-theme=3D"dark"] .single .content .highlight .bp { color: rgb(173, 186=
, 199); }

[data-theme=3D"dark"] .single .content .highlight .nc { color: rgb(220, 189=
, 251); }

[data-theme=3D"dark"] .single .content .highlight .no { color: rgb(108, 182=
, 255); }

[data-theme=3D"dark"] .single .content .highlight .nd { color: rgb(220, 189=
, 251); }

[data-theme=3D"dark"] .single .content .highlight .ni { color: rgb(108, 182=
, 255); }

[data-theme=3D"dark"] .single .content .highlight .ne { color: rgb(108, 182=
, 255); }

[data-theme=3D"dark"] .single .content .highlight .nf { color: rgb(220, 189=
, 251); }

[data-theme=3D"dark"] .single .content .highlight .fm { color: rgb(108, 182=
, 255); }

[data-theme=3D"dark"] .single .content .highlight .nl { color: rgb(108, 182=
, 255); }

[data-theme=3D"dark"] .single .content .highlight .nn { color: rgb(244, 112=
, 103); }

[data-theme=3D"dark"] .single .content .highlight .nx { color: rgb(220, 189=
, 251); }

[data-theme=3D"dark"] .single .content .highlight .py { color: rgb(108, 182=
, 255); }

[data-theme=3D"dark"] .single .content .highlight .nt { color: rgb(141, 219=
, 140); }

[data-theme=3D"dark"] .single .content .highlight .nv { color: rgb(246, 157=
, 80); }

[data-theme=3D"dark"] .single .content .highlight .vc { color: rgb(108, 182=
, 255); }

[data-theme=3D"dark"] .single .content .highlight .vg { color: rgb(108, 182=
, 255); }

[data-theme=3D"dark"] .single .content .highlight .vi { color: rgb(108, 182=
, 255); }

[data-theme=3D"dark"] .single .content .highlight .vm { color: rgb(108, 182=
, 255); }

[data-theme=3D"dark"] .single .content .highlight .l { color: rgb(108, 182,=
 255); }

[data-theme=3D"dark"] .single .content .highlight .ld { color: rgb(150, 208=
, 255); }

[data-theme=3D"dark"] .single .content .highlight .s { color: rgb(150, 208,=
 255); }

[data-theme=3D"dark"] .single .content .highlight .sa { color: rgb(150, 208=
, 255); }

[data-theme=3D"dark"] .single .content .highlight .sb { color: rgb(150, 208=
, 255); }

[data-theme=3D"dark"] .single .content .highlight .sc { color: rgb(150, 208=
, 255); }

[data-theme=3D"dark"] .single .content .highlight .dl { color: rgb(150, 208=
, 255); }

[data-theme=3D"dark"] .single .content .highlight .sd { color: rgb(150, 208=
, 255); }

[data-theme=3D"dark"] .single .content .highlight .s2 { color: rgb(150, 208=
, 255); }

[data-theme=3D"dark"] .single .content .highlight .se { color: rgb(150, 208=
, 255); }

[data-theme=3D"dark"] .single .content .highlight .sh { color: rgb(150, 208=
, 255); }

[data-theme=3D"dark"] .single .content .highlight .si { color: rgb(150, 208=
, 255); }

[data-theme=3D"dark"] .single .content .highlight .sx { color: rgb(150, 208=
, 255); }

[data-theme=3D"dark"] .single .content .highlight .sr { color: rgb(150, 208=
, 255); }

[data-theme=3D"dark"] .single .content .highlight .s1 { color: rgb(150, 208=
, 255); }

[data-theme=3D"dark"] .single .content .highlight .ss { color: rgb(150, 208=
, 255); }

[data-theme=3D"dark"] .single .content .highlight .m { color: rgb(108, 182,=
 255); }

[data-theme=3D"dark"] .single .content .highlight .mb { color: rgb(108, 182=
, 255); }

[data-theme=3D"dark"] .single .content .highlight .mf { color: rgb(108, 182=
, 255); }

[data-theme=3D"dark"] .single .content .highlight .mh { color: rgb(108, 182=
, 255); }

[data-theme=3D"dark"] .single .content .highlight .mi { color: rgb(108, 182=
, 255); }

[data-theme=3D"dark"] .single .content .highlight .il { color: rgb(108, 182=
, 255); }

[data-theme=3D"dark"] .single .content .highlight .mo { color: rgb(108, 182=
, 255); }

[data-theme=3D"dark"] .single .content .highlight .o { color: rgb(244, 112,=
 103); }

[data-theme=3D"dark"] .single .content .highlight .ow { color: rgb(244, 112=
, 103); }

[data-theme=3D"dark"] .single .content .highlight .p { color: rgb(173, 186,=
 199); }

[data-theme=3D"dark"] .single .content .highlight .c { color: rgb(118, 131,=
 144); }

[data-theme=3D"dark"] .single .content .highlight .ch { color: rgb(118, 131=
, 144); }

[data-theme=3D"dark"] .single .content .highlight .cm { color: rgb(118, 131=
, 144); }

[data-theme=3D"dark"] .single .content .highlight .c1 { color: rgb(118, 131=
, 144); }

[data-theme=3D"dark"] .single .content .highlight .cs { color: rgb(118, 131=
, 144); }

[data-theme=3D"dark"] .single .content .highlight .cp { color: rgb(108, 182=
, 255); }

[data-theme=3D"dark"] .single .content .highlight .cpf { color: rgb(118, 13=
1, 144); }

[data-theme=3D"dark"] .single .content .highlight .g { color: rgb(173, 186,=
 199); }

[data-theme=3D"dark"] .single .content .highlight .gd { color: rgb(255, 216=
, 211); }

[data-theme=3D"dark"] .single .content .highlight .ge { color: rgb(173, 186=
, 199); }

[data-theme=3D"dark"] .single .content .highlight .gr { color: rgb(220, 53,=
 69); }

[data-theme=3D"dark"] .single .content .highlight .gh { color: rgb(173, 186=
, 199); }

[data-theme=3D"dark"] .single .content .highlight .gi { color: rgb(180, 241=
, 180); }

[data-theme=3D"dark"] .single .content .highlight .go { color: rgb(173, 186=
, 199); }

[data-theme=3D"dark"] .single .content .highlight .gp { color: rgb(173, 186=
, 199); }

[data-theme=3D"dark"] .single .content .highlight .gs { color: rgb(173, 186=
, 199); }

[data-theme=3D"dark"] .single .content .highlight .gu { color: rgb(173, 186=
, 199); }

[data-theme=3D"dark"] .single .content .highlight .gt { color: rgb(220, 53,=
 69); }

[data-theme=3D"dark"] .single .content .highlight .gl { color: rgb(173, 186=
, 199); }

[data-theme=3D"dark"] .single .content .highlight .w { color: rgb(173, 186,=
 199); }

[data-theme=3D"dark"] .single .content .highlight .x { color: rgb(173, 186,=
 199); }

.single .content .gist .gist-file, .single .content .gist .gist-data, .sing=
le .content .gist .gist-meta { border: none; }

.single .content .gist .gist-data { background-color: transparent; }

.single .content .gist .gist-meta { padding: 0.4rem 0.8rem; background-colo=
r: rgb(230, 235, 241); }

.single .content .gist .gist-meta a, .single .content .gist .gist-meta a::b=
efore, .single .content .gist .gist-meta a::after { text-decoration: none; =
color: rgb(35, 118, 183); }

[data-theme=3D"dark"] .single .content .gist .gist-meta a, [data-theme=3D"d=
ark"] .single .content .gist .gist-meta a::before, [data-theme=3D"dark"] .s=
ingle .content .gist .gist-meta a::after { color: rgb(23, 129, 181); }

.single .content .gist .gist-meta a:active, .single .content .gist .gist-me=
ta a:hover { color: rgb(234, 81, 127); }

[data-theme=3D"dark"] .single .content .gist .gist-meta a:active, [data-the=
me=3D"dark"] .single .content .gist .gist-meta a:hover { color: rgb(204, 85=
, 149); }

[data-theme=3D"dark"] .single .content .gist .gist-meta { background-color:=
 rgb(34, 38, 45); }

.single .content .gist .table-wrapper .highlight { background-color: rgb(24=
6, 248, 250); }

[data-theme=3D"dark"] .single .content .gist .table-wrapper .highlight { ba=
ckground-color: rgb(45, 51, 59); }

[data-theme=3D"dark"] .single .content .gist { --fi-color-blob-num: #778491=
; --fi-color-blob-code-inner: #c5d1de; --fi-color-prettylights-syntax-comme=
nt: #768390; --fi-color-prettylights-syntax-constant: #6cb6ff; --fi-color-p=
rettylights-syntax-constant-other-reference-link: #96d0ff; --fi-color-prett=
ylights-syntax-entity: #dcbdfb; --fi-color-prettylights-syntax-storage-modi=
fier-import: #adbac7; --fi-color-prettylights-syntax-entity-tag: #8ddb8c; -=
-fi-color-prettylights-syntax-keyword: #f47067; --fi-color-prettylights-syn=
tax-string: #96d0ff; --fi-color-prettylights-syntax-variable: #f69d50; --fi=
-color-prettylights-syntax-brackethighlighter-unmatched: #e5534b; --fi-colo=
r-prettylights-syntax-brackethighlighter-angle: #768390; --fi-color-prettyl=
ights-syntax-invalid-illegal-text: #cdd9e5; --fi-color-prettylights-syntax-=
invalid-illegal-bg: #922323; --fi-color-prettylights-syntax-carriage-return=
-text: #cdd9e5; --fi-color-prettylights-syntax-carriage-return-bg: #ad2e2c;=
 --fi-color-prettylights-syntax-string-regexp: #8ddb8c; --fi-color-prettyli=
ghts-syntax-markup-list: #eac55f; --fi-color-prettylights-syntax-markup-hea=
ding: #316dca; --fi-color-prettylights-syntax-markup-italic: #adbac7; --fi-=
color-prettylights-syntax-markup-bold: #adbac7; --fi-color-prettylights-syn=
tax-markup-deleted-text: #ffd8d3; --fi-color-prettylights-syntax-markup-del=
eted-bg: #78191b; --fi-color-prettylights-syntax-markup-inserted-text: #b4f=
1b4; --fi-color-prettylights-syntax-markup-inserted-bg: #1b4721; --fi-color=
-prettylights-syntax-markup-changed-text: #ffddb0; --fi-color-prettylights-=
syntax-markup-changed-bg: #682d0f; --fi-color-prettylights-syntax-markup-ig=
nored-text: #adbac7; --fi-color-prettylights-syntax-markup-ignored-bg: #255=
ab2; --fi-color-prettylights-syntax-meta-diff-range: #dcbdfb; --fi-color-pr=
ettylights-syntax-sublimelinter-gutter-mark: #545d68; }

[data-theme=3D"dark"] .single .content .gist .blob-num { color: var(--fi-co=
lor-blob-num); }

[data-theme=3D"dark"] .single .content .gist .blob-code-inner { color: var(=
--fi-color-blob-code-inner); }

[data-theme=3D"dark"] .single .content .gist .pl-c { color: var(--fi-color-=
prettylights-syntax-comment); }

[data-theme=3D"dark"] .single .content .gist .pl-c1, [data-theme=3D"dark"] =
.single .content .gist .pl-s .pl-v { color: var(--fi-color-prettylights-syn=
tax-constant); }

[data-theme=3D"dark"] .single .content .gist .pl-e, [data-theme=3D"dark"] .=
single .content .gist .pl-en { color: var(--fi-color-prettylights-syntax-en=
tity); }

[data-theme=3D"dark"] .single .content .gist .pl-smi, [data-theme=3D"dark"]=
 .single .content .gist .pl-s .pl-s1 { color: var(--fi-color-prettylights-s=
yntax-storage-modifier-import); }

[data-theme=3D"dark"] .single .content .gist .pl-ent { color: var(--fi-colo=
r-prettylights-syntax-entity-tag); }

[data-theme=3D"dark"] .single .content .gist .pl-k { color: var(--fi-color-=
prettylights-syntax-keyword); }

[data-theme=3D"dark"] .single .content .gist .pl-s, [data-theme=3D"dark"] .=
single .content .gist .pl-pds, [data-theme=3D"dark"] .single .content .gist=
 .pl-s .pl-pse .pl-s1, [data-theme=3D"dark"] .single .content .gist .pl-sr,=
 [data-theme=3D"dark"] .single .content .gist .pl-sr .pl-cce, [data-theme=
=3D"dark"] .single .content .gist .pl-sr .pl-sre, [data-theme=3D"dark"] .si=
ngle .content .gist .pl-sr .pl-sra { color: var(--fi-color-prettylights-syn=
tax-string); }

[data-theme=3D"dark"] .single .content .gist .pl-v, [data-theme=3D"dark"] .=
single .content .gist .pl-smw { color: var(--fi-color-prettylights-syntax-v=
ariable); }

[data-theme=3D"dark"] .single .content .gist .pl-bu { color: var(--fi-color=
-prettylights-syntax-brackethighlighter-unmatched); }

[data-theme=3D"dark"] .single .content .gist .pl-ii { color: var(--fi-color=
-prettylights-syntax-invalid-illegal-text); background-color: var(--fi-colo=
r-prettylights-syntax-invalid-illegal-bg); }

[data-theme=3D"dark"] .single .content .gist .pl-c2 { color: var(--fi-color=
-prettylights-syntax-carriage-return-text); background-color: var(--fi-colo=
r-prettylights-syntax-carriage-return-bg); }

[data-theme=3D"dark"] .single .content .gist .pl-c2::before { content: "^M"=
; }

[data-theme=3D"dark"] .single .content .gist .pl-sr .pl-cce { font-weight: =
bold; color: var(--fi-color-prettylights-syntax-string-regexp); }

[data-theme=3D"dark"] .single .content .gist .pl-ml { color: var(--fi-color=
-prettylights-syntax-markup-list); }

[data-theme=3D"dark"] .single .content .gist .pl-mh, [data-theme=3D"dark"] =
.single .content .gist .pl-mh .pl-en, [data-theme=3D"dark"] .single .conten=
t .gist .pl-ms { font-weight: bold; color: var(--fi-color-prettylights-synt=
ax-markup-heading); }

[data-theme=3D"dark"] .single .content .gist .pl-mi { font-style: italic; c=
olor: var(--fi-color-prettylights-syntax-markup-italic); }

[data-theme=3D"dark"] .single .content .gist .pl-mb { font-weight: bold; co=
lor: var(--fi-color-prettylights-syntax-markup-bold); }

[data-theme=3D"dark"] .single .content .gist .pl-md { color: var(--fi-color=
-prettylights-syntax-markup-deleted-text); background-color: var(--fi-color=
-prettylights-syntax-markup-deleted-bg); }

[data-theme=3D"dark"] .single .content .gist .pl-mi1 { color: var(--fi-colo=
r-prettylights-syntax-markup-inserted-text); background-color: var(--fi-col=
or-prettylights-syntax-markup-inserted-bg); }

[data-theme=3D"dark"] .single .content .gist .pl-mc { color: var(--fi-color=
-prettylights-syntax-markup-changed-text); background-color: var(--fi-color=
-prettylights-syntax-markup-changed-bg); }

[data-theme=3D"dark"] .single .content .gist .pl-mi2 { color: var(--fi-colo=
r-prettylights-syntax-markup-ignored-text); background-color: var(--fi-colo=
r-prettylights-syntax-markup-ignored-bg); }

[data-theme=3D"dark"] .single .content .gist .pl-mdr { font-weight: bold; c=
olor: var(--fi-color-prettylights-syntax-meta-diff-range); }

[data-theme=3D"dark"] .single .content .gist .pl-ba { color: var(--fi-color=
-prettylights-syntax-brackethighlighter-angle); }

[data-theme=3D"dark"] .single .content .gist .pl-sg { color: var(--fi-color=
-prettylights-syntax-sublimelinter-gutter-mark); }

[data-theme=3D"dark"] .single .content .gist .pl-corl { text-decoration: un=
derline; color: var(--fi-color-prettylights-syntax-constant-other-reference=
-link); }

.single .content .admonition { position: relative; margin: 1rem 0px; paddin=
g: 0px 0.75rem; border-left-width: 0.25rem; border-left-style: solid; overf=
low: hidden; border-radius: 5px; background-color: var(--fi-admonition-bg-c=
olor); border-left-color: var(--fi-admonition-color); --fi-admonition-color=
: #448aff; --fi-admonition-bg-color: rgba(68,138,255,0.1); --fi-admonition-=
bg-color-collapsed: rgba(68,138,255,0.25); }

.single .content .admonition .admonition-title { font-weight: bold; margin:=
 0px -0.75rem; padding: 0.25rem 1.8rem; border-bottom: 1px solid; border-ra=
dius: 0px; }

.single .content .admonition .admonition-content { padding: 0.5rem 0px; }

.single .content .admonition .admonition-content > p { margin: 0px; }

.single .content .admonition .admonition-content:empty { display: none; }

.single .content .admonition .admonition-content:has(> p:only-child:empty) =
{ display: none; }

.single .content .admonition i.icon { font-size: 0.85rem; position: absolut=
e; top: 0.6rem; left: 0.4rem; }

.single .content .admonition i.details-icon { position: absolute; top: 0.6r=
em; right: 0.3rem; }

.single .content .admonition > .admonition-title { border-bottom-color: var=
(--fi-admonition-bg-color); background-color: var(--fi-admonition-bg-color-=
collapsed); }

.single .content .admonition > .admonition-title i.icon { color: var(--fi-a=
dmonition-color); }

.single .content .admonition.open > .admonition-title { background-color: v=
ar(--fi-admonition-bg-color); }

.single .content .admonition.abstract { --fi-admonition-color: #00b0ff; --f=
i-admonition-bg-color: rgba(0,176,255,0.1); --fi-admonition-bg-color-collap=
sed: rgba(0,176,255,0.25); }

.single .content .admonition.info { --fi-admonition-color: #00b8d4; --fi-ad=
monition-bg-color: rgba(0,184,212,0.1); --fi-admonition-bg-color-collapsed:=
 rgba(0,184,212,0.25); }

.single .content .admonition.todo { --fi-admonition-color: #5e9aff; --fi-ad=
monition-bg-color: rgba(94,154,255,0.1); --fi-admonition-bg-color-collapsed=
: rgba(94,154,255,0.25); }

.single .content .admonition.tip { --fi-admonition-color: #00bfa5; --fi-adm=
onition-bg-color: rgba(0,191,165,0.1); --fi-admonition-bg-color-collapsed: =
rgba(0,191,165,0.25); }

.single .content .admonition.success { --fi-admonition-color: #00c853; --fi=
-admonition-bg-color: rgba(0,200,83,0.1); --fi-admonition-bg-color-collapse=
d: rgba(0,200,83,0.25); }

.single .content .admonition.question { --fi-admonition-color: #ffbd67; --f=
i-admonition-bg-color: rgba(255,190,0,0.1); --fi-admonition-bg-color-collap=
sed: rgba(255,190,0,0.25); }

.single .content .admonition.warning { --fi-admonition-color: #ff9100; --fi=
-admonition-bg-color: rgba(255,145,0,0.1); --fi-admonition-bg-color-collaps=
ed: rgba(255,145,0,0.25); }

.single .content .admonition.failure { --fi-admonition-color: #ff5252; --fi=
-admonition-bg-color: rgba(255,82,82,0.1); --fi-admonition-bg-color-collaps=
ed: rgba(255,82,82,0.25); }

.single .content .admonition.danger { --fi-admonition-color: #ff1744; --fi-=
admonition-bg-color: rgba(255,23,68,0.1); --fi-admonition-bg-color-collapse=
d: rgba(255,23,68,0.25); }

.single .content .admonition.bug { --fi-admonition-color: #f50057; --fi-adm=
onition-bg-color: rgba(245,0,87,0.1); --fi-admonition-bg-color-collapsed: r=
gba(245,0,87,0.25); }

.single .content .admonition.example { --fi-admonition-color: #651fff; --fi=
-admonition-bg-color: rgba(101,31,255,0.1); --fi-admonition-bg-color-collap=
sed: rgba(101,31,255,0.25); }

.single .content .admonition.quote { --fi-admonition-color: #9e9e9e; --fi-a=
dmonition-bg-color: rgba(159,159,159,0.1); --fi-admonition-bg-color-collaps=
ed: rgba(159,159,159,0.25); }

.single .content .admonition:last-child { margin-bottom: 0.75rem; }

.single .content .bilibili { position: relative; width: 100%; height: auto;=
 aspect-ratio: 16 / 9; margin: 1rem auto; text-align: center; }

.single .content .bilibili iframe { position: absolute; width: 100%; height=
: 100%; left: 0px; top: 0px; }

.single .content .douyin { position: relative; width: 100%; height: 0px; pa=
dding-bottom: 60.725%; margin: 1rem auto; text-align: center; }

.single .content .douyin iframe { position: absolute; width: 100%; height: =
100%; left: 0px; top: 0px; }

@media only screen and (max-width: 680px) {
  .single .content .douyin { width: 92%; margin-inline: 4%; padding-bottom:=
 190%; }
}

.single .content .card-link { position: relative; display: block; margin: 0=
.5rem auto; box-sizing: border-box; width: clamp(50%, 400px, 100%); max-wid=
th: 100%; overflow: hidden; text-decoration: none; border: none; border-rad=
ius: 0.75rem; }

.single .content .cl-backdrop { position: absolute; inset: 0.75rem 0px; bac=
kground-image: var(--cl-bg-url); background-repeat: no-repeat; filter: blur=
(0.5rem); opacity: 0.5; background-size: contain; background-position: cent=
er center; }

.single .content .cl-content { position: relative; display: flex; align-ite=
ms: center; justify-content: space-between; padding: 0.75rem; background-co=
lor: rgba(245, 245, 245, 0.88); }

.single .content .cl-text { overflow: hidden; }

.single .content .cl-title { display: -webkit-box; -webkit-line-clamp: 2; o=
verflow: hidden; max-height: calc(2.5rem); font-size: 1rem; font-weight: 50=
0; line-height: 1.25; color: rgb(22, 18, 9); }

.single .content .cl-meta { display: flex; align-items: center; margin-top:=
 0.25rem; font-size: 0.825rem; color: rgb(177, 177, 186); }

.single .content .cl-icon-link { width: 1rem; height: 1rem; flex-shrink: 0;=
 margin-right: 0.25rem; }

.single .content .cl-url { overflow: hidden; text-overflow: ellipsis; white=
-space: nowrap; }

.single .content .cl-shortcut-icon { width: 4rem; height: 4rem; flex-shrink=
: 0; margin-left: 0.25rem; }

.single .content .cl-shortcut-icon:is(i) { text-align: center; font-size: 3=
rem; display: inline-flex; align-items: center; justify-content: center; }

.single .content .cl-shortcut-image { width: 4rem; flex-shrink: 0; margin-l=
eft: 0.25rem; object-fit: cover; border-radius: 50%; height: 4rem !importan=
t; }

[data-theme=3D"dark"] .single .content .cl-content { background-color: rgba=
(61, 62, 65, 0.88); }

[data-theme=3D"dark"] .single .content .cl-title { color: rgb(177, 177, 186=
); }

[data-theme=3D"dark"] .single .content .cl-meta { color: rgb(144, 144, 146)=
; }

.single .content blockquote.blockquote-center { border-left: none; margin: =
40px 0px; padding: 0px; position: relative; text-align: center; color: inhe=
rit; }

.single .content blockquote.blockquote-center::after, .single .content bloc=
kquote.blockquote-center::before { left: 0px; line-height: 1; opacity: 0.6;=
 position: absolute; width: 100%; }

.single .content blockquote.blockquote-center::before { border-top: 1px sol=
id rgb(240, 240, 240); text-align: left; top: -20px; content: "=EF=84=8D"; =
font-family: "Font Awesome 5 Free"; font-weight: 900; }

[data-theme=3D"dark"] .single .content blockquote.blockquote-center::before=
 { border-top-color: rgb(54, 54, 54); }

.single .content blockquote.blockquote-center::after { border-bottom: 1px s=
olid rgb(240, 240, 240); bottom: -20px; text-align: right; content: "=EF=84=
=8E"; font-family: "Font Awesome 5 Free"; font-weight: 900; }

[data-theme=3D"dark"] .single .content blockquote.blockquote-center::after =
{ border-bottom-color: rgb(54, 54, 54); }

.single .content .echarts { margin: 0.5rem 0px; text-align: center; }

[data-theme=3D"dark"] .single .content iframe.instagram-media { border: non=
e !important; }

.single .content .mapbox { margin: 0.5rem 0px; padding: 0.5rem 0px; border-=
radius: 5px; }

.single .content .mermaid[data-processed=3D"true"] { text-align: center; }

.single .content .mermaid svg { max-width: 100%; height: auto; }

.single .content .fi-timeline { list-style: none; box-sizing: border-box; o=
verflow: auto; margin: 1rem auto; --timeline-color: #e3e3e3; --timeline-cir=
cle-color: #FF735A; --timeline-circle-size: 10px; --timeline-width: 2px; }

.single .content .fi-timeline[data-animation] .fi-timeline-item::before { b=
order-color: var(--timeline-color); animation-name: border-color-fade; anim=
ation-duration: 2s; animation-iteration-count: infinite; animation-delay: c=
alc(var(--timeline-index) * 0.3s); }

@keyframes border-color-fade {=20
  0% { border-color: var(--timeline-color); }
  50% { border-color: var(--timeline-circle-color); }
  100% { border-color: var(--timeline-color); }
}

.single .content .fi-timeline .fi-timeline-item { position: relative; paddi=
ng: 0.5rem 1.75rem; }

.single .content .fi-timeline .fi-timeline-item[data-type=3D"primary"] { --=
timeline-circle-color: var(--fi-primary); }

.single .content .fi-timeline .fi-timeline-item[data-type=3D"secondary"] { =
--timeline-circle-color: var(--fi-secondary); }

.single .content .fi-timeline .fi-timeline-item[data-type=3D"success"] { --=
timeline-circle-color: var(--fi-success); }

.single .content .fi-timeline .fi-timeline-item[data-type=3D"info"] { --tim=
eline-circle-color: var(--fi-info); }

.single .content .fi-timeline .fi-timeline-item[data-type=3D"warning"] { --=
timeline-circle-color: var(--fi-warning); }

.single .content .fi-timeline .fi-timeline-item[data-type=3D"danger"] { --t=
imeline-circle-color: var(--fi-danger); }

.single .content .fi-timeline .fi-timeline-item .fi-timeline-item__timestam=
p { font-size: 0.8125rem; line-height: 1; color: var(--fi-secondary); }

.single .content .fi-timeline .fi-timeline-item .fi-timeline-item__timestam=
p.is-top { margin-bottom: 0.25rem; padding-top: 0.34375rem; }

.single .content .fi-timeline .fi-timeline-item .fi-timeline-item__timestam=
p.is-bottom { margin-top: 0.25rem; }

.single .content .fi-timeline .fi-timeline-item .fi-timeline-item__content =
{ font-size: 0.875rem; }

.single .content .fi-timeline .fi-timeline-item[data-node=3D"dot"]::before =
{ background-color: var(--timeline-circle-color) !important; }

.single .content .fi-timeline .fi-timeline-item[data-size=3D"small"]::befor=
e { transform: scale(0.8) translateY(-50%); }

.single .content .fi-timeline .fi-timeline-item[data-size=3D"large"]::befor=
e { transform: scale(1.2) translateY(-50%); }

.single .content .fi-timeline .fi-timeline-item::before { content: ""; posi=
tion: absolute; top: 1.25rem; transform: translateY(-50%); left: 0px; width=
: var(--timeline-circle-size); height: var(--timeline-circle-size); font-si=
ze: var(--timeline-circle-size); line-height: var(--timeline-circle-size); =
text-align: center; border-radius: 50%; border-width: var(--timeline-width)=
; border-style: solid; border-color: var(--timeline-circle-color); backgrou=
nd-color: rgb(255, 255, 255); color: transparent; z-index: 1; }

[data-theme=3D"dark"] .single .content .fi-timeline .fi-timeline-item::befo=
re { background-color: rgb(41, 42, 46); }

.single .content .fi-timeline .fi-timeline-item::after { content: ""; posit=
ion: absolute; top: 0px; left: calc(var(--timeline-circle-size) / 2 + var(-=
-timeline-width) / 2); width: var(--timeline-width); height: 100%; backgrou=
nd-color: var(--timeline-color); }

[data-theme=3D"dark"] .single .content .fi-timeline .fi-timeline-item { --t=
imeline-color: #717171; }

.single .post-reward { padding: 1rem; text-align: center; }

.single .post-reward:has(.reward-ways:empty) { display: none; }

.single .post-reward .comment { margin: 0.5rem 0px; font-weight: 500; }

.single .post-reward .reward-ways { display: none; }

.single .post-reward .reward-input:checked ~ .reward-ways { display: block;=
 padding-top: 20px; }

.single .post-reward .reward-input:checked ~ .reward-ways div { display: in=
line-block; user-select: none !important; }

.single .post-reward .reward-input:checked ~ .reward-ways div span { displa=
y: block; }

.single .post-reward .reward-input:checked ~ .reward-ways div:hover span[da=
ta-animation] { animation: var(--animation-reward, jackInTheBox) 0.8s infin=
ite linear; pointer-events: none; }

.single .post-reward .reward-input:checked ~ .reward-ways div img { display=
: inline-block; margin: 0.8em 2em 0px; max-width: 100%; width: 180px; }

.single .post-reward .reward-input:checked ~ .reward-ways[data-mode=3D"fixe=
d"] { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%=
); padding: 1rem; background-color: rgb(255, 255, 255); z-index: 200; borde=
r-radius: 5px; box-shadow: rgba(0, 0, 0, 0.2) 0px 0px 1.5rem 0px; }

[data-theme=3D"dark"] .single .post-reward .reward-input:checked ~ .reward-=
ways[data-mode=3D"fixed"] { background-color: rgb(41, 42, 46); box-shadow: =
rgba(255, 255, 255, 0.2) 0px 0px 1.5rem 0px; }

.single .post-reward .reward-button { display: inline-block; box-sizing: bo=
rder-box; cursor: pointer; outline: none; color: rgb(255, 121, 97); border:=
 2px solid rgb(255, 142, 122); border-radius: 5px; padding: 0.6rem 1rem; ba=
ckground-color: rgb(255, 255, 255); vertical-align: text-top; line-height: =
1rem; transition: 0.3s ease-out; }

.single .post-reward .reward-button:active, .single .post-reward .reward-bu=
tton:hover { color: rgb(255, 255, 255); border-color: tomato; background-co=
lor: tomato; }

[data-theme=3D"dark"] .single .post-reward .reward-button:active, [data-the=
me=3D"dark"] .single .post-reward .reward-button:hover { color: rgb(255, 25=
5, 255); border-color: rgb(255, 77, 46); background-color: rgb(255, 77, 46)=
; }

[data-theme=3D"dark"] .single .post-reward .reward-button { color: tomato; =
border-color: rgb(255, 121, 97); background-color: rgb(41, 42, 46); }

.single .post-footer { margin: 2rem 0px; }

.single .post-footer ~ .post-reward { margin-block: -2rem 0px; }

.single .post-footer .post-info { border-bottom: 1px solid rgb(240, 240, 24=
0); padding: 0.3rem 0px; }

[data-theme=3D"dark"] .single .post-footer .post-info { border-bottom: 1px =
solid rgb(54, 54, 54); }

.single .post-footer .post-info .post-info-line { display: flex; justify-co=
ntent: space-between; }

.single .post-footer .post-info .post-info-line .post-info-mod { font-size:=
 0.8em; color: rgb(177, 177, 186); }

[data-theme=3D"dark"] .single .post-footer .post-info .post-info-line .post=
-info-mod { color: rgb(144, 144, 146); }

.single .post-footer .post-info .post-info-line .post-info-mod a, .single .=
post-footer .post-info .post-info-line .post-info-mod a::before, .single .p=
ost-footer .post-info .post-info-line .post-info-mod a::after { text-decora=
tion: none; color: rgb(35, 118, 183); }

[data-theme=3D"dark"] .single .post-footer .post-info .post-info-line .post=
-info-mod a, [data-theme=3D"dark"] .single .post-footer .post-info .post-in=
fo-line .post-info-mod a::before, [data-theme=3D"dark"] .single .post-foote=
r .post-info .post-info-line .post-info-mod a::after { color: rgb(23, 129, =
181); }

.single .post-footer .post-info .post-info-line .post-info-mod a:active, .s=
ingle .post-footer .post-info .post-info-line .post-info-mod a:hover { colo=
r: rgb(234, 81, 127); }

[data-theme=3D"dark"] .single .post-footer .post-info .post-info-line .post=
-info-mod a:active, [data-theme=3D"dark"] .single .post-footer .post-info .=
post-info-line .post-info-mod a:hover { color: rgb(204, 85, 149); }

.single .post-footer .post-info .post-info-line .post-info-license { font-s=
ize: 0.8em; color: rgb(177, 177, 186); }

[data-theme=3D"dark"] .single .post-footer .post-info .post-info-line .post=
-info-license { color: rgb(144, 144, 146); }

.single .post-footer .post-info .post-info-line .post-info-license a, .sing=
le .post-footer .post-info .post-info-line .post-info-license a::before, .s=
ingle .post-footer .post-info .post-info-line .post-info-license a::after {=
 text-decoration: none; color: rgb(35, 118, 183); }

[data-theme=3D"dark"] .single .post-footer .post-info .post-info-line .post=
-info-license a, [data-theme=3D"dark"] .single .post-footer .post-info .pos=
t-info-line .post-info-license a::before, [data-theme=3D"dark"] .single .po=
st-footer .post-info .post-info-line .post-info-license a::after { color: r=
gb(23, 129, 181); }

.single .post-footer .post-info .post-info-line .post-info-license a:active=
, .single .post-footer .post-info .post-info-line .post-info-license a:hove=
r { color: rgb(234, 81, 127); }

[data-theme=3D"dark"] .single .post-footer .post-info .post-info-line .post=
-info-license a:active, [data-theme=3D"dark"] .single .post-footer .post-in=
fo .post-info-line .post-info-license a:hover { color: rgb(204, 85, 149); }

.single .post-footer .post-info .post-info-line .post-info-md { font-size: =
0.8rem; width: fit-content; }

.single .post-footer .post-info .post-info-line .post-info-md a, .single .p=
ost-footer .post-info .post-info-line .post-info-md a::before, .single .pos=
t-footer .post-info .post-info-line .post-info-md a::after { text-decoratio=
n: none; color: rgb(35, 118, 183); }

[data-theme=3D"dark"] .single .post-footer .post-info .post-info-line .post=
-info-md a, [data-theme=3D"dark"] .single .post-footer .post-info .post-inf=
o-line .post-info-md a::before, [data-theme=3D"dark"] .single .post-footer =
.post-info .post-info-line .post-info-md a::after { color: rgb(23, 129, 181=
); }

.single .post-footer .post-info .post-info-line .post-info-md a:active, .si=
ngle .post-footer .post-info .post-info-line .post-info-md a:hover { color:=
 rgb(234, 81, 127); }

[data-theme=3D"dark"] .single .post-footer .post-info .post-info-line .post=
-info-md a:active, [data-theme=3D"dark"] .single .post-footer .post-info .p=
ost-info-line .post-info-md a:hover { color: rgb(204, 85, 149); }

.single .post-footer .post-info .post-info-line .post-info-md > span:not(:f=
irst-child)::before { content: "|"; margin-left: 0.25rem; margin-right: 0.2=
5rem; }

.single .post-footer .post-info .post-info-line .post-info-share a * { vert=
ical-align: text-bottom; }

.single .post-footer .post-info-more { padding: 0.3rem 0px; display: flex; =
justify-content: space-between; font-size: 0.9rem; }

.single .post-footer .post-tags { max-width: 65%; }

.single .post-footer .post-tags * { display: inline; }

.single .post-footer .post-tags a, .single .post-footer .post-tags a::befor=
e, .single .post-footer .post-tags a::after { text-decoration: none; color:=
 rgb(22, 18, 9); }

[data-theme=3D"dark"] .single .post-footer .post-tags a, [data-theme=3D"dar=
k"] .single .post-footer .post-tags a::before, [data-theme=3D"dark"] .singl=
e .post-footer .post-tags a::after { color: rgb(177, 177, 186); }

.single .post-footer .post-tags a:active, .single .post-footer .post-tags a=
:hover { color: rgb(41, 131, 187); }

[data-theme=3D"dark"] .single .post-footer .post-tags a:active, [data-theme=
=3D"dark"] .single .post-footer .post-tags a:hover { color: rgb(255, 255, 2=
55); }

.single .post-footer .post-tags .post-tag:not(:last-child)::after { content=
: ","; margin-right: 0.25rem; }

.single .post-footer .post-nav { display: flex; justify-content: space-betw=
een; gap: 1.5rem; padding-block: 0.5rem; }

.single .post-footer .post-nav .post-nav-item { flex: 1 1 0%; font-size: 1r=
em; font-weight: 600; transition: 0.3s ease-out; }

.single .post-footer .post-nav .post-nav-item[rel=3D"next"] { text-align: r=
ight; }

.single .post-footer .post-nav .post-nav-item[rel=3D"prev"]:hover { transfo=
rm: translateX(-4px); }

.single .post-footer .post-nav .post-nav-item[rel=3D"next"]:hover { transfo=
rm: translateX(4px); }

.single > #comments { padding: 2rem 0px; }

.single > #comments iframe { width: 100%; }

.lg-toolbar .lg-icon::after { color: rgb(153, 153, 153); }

.special .single-title, .special .single-subtitle { text-align: right; }

.archive .single-title { padding: 1rem 0px 0.5rem; margin: 0px; font-size: =
1.6rem; font-weight: bold; line-height: 140%; text-align: right; }

.archive .single-subtitle { margin: 0.5rem 0px; font-size: 1.2rem; font-wei=
ght: normal; line-height: 100%; text-align: right; }

.archive .group-title { font-size: 1.2rem; margin-top: 1.5rem; margin-botto=
m: 1rem; }

.archive .categories-card, .archive .collections-card { margin: 0px auto; d=
isplay: flex; align-items: flex-start; justify-content: space-between; flex=
-flow: wrap; line-height: 1.6rem; }

.archive .categories-card .card-item, .archive .collections-card .card-item=
 { font-size: 0.875rem; text-align: left; width: 45%; display: flex; align-=
items: flex-start; min-height: 10rem; padding: 0px 2%; position: relative; =
}

.archive .categories-card .card-item:nth-child(n+3), .archive .collections-=
card .card-item:nth-child(n+3) { margin-top: 2rem; }

.archive .categories-card .card-item .card-item-wrapper, .archive .collecti=
ons-card .card-item .card-item-wrapper { width: 100%; overflow: hidden; }

.archive .categories-card .card-item .card-item-wrapper .card-item-title, .=
archive .collections-card .card-item .card-item-wrapper .card-item-title { =
font-size: 1.2rem; font-weight: bold; display: inline-block; margin-top: 1r=
em; margin-bottom: 0.75rem; }

.archive .categories-card .card-item .card-item-wrapper span, .archive .col=
lections-card .card-item .card-item-wrapper span { float: right; padding-ri=
ght: 1rem; }

.archive .archive-item { display: flex; justify-content: space-between; ali=
gn-items: center; box-sizing: border-box; margin: 0.25rem 0px 0.25rem 1.5re=
m; }

.archive .archive-item-link { min-width: 10%; overflow: hidden; white-space=
: nowrap; text-overflow: ellipsis; }

.archive .archive-item-link:hover { color: rgb(41, 131, 187); background-co=
lor: transparent; }

[data-theme=3D"dark"] .archive .archive-item-link { color: rgb(177, 177, 18=
6); }

[data-theme=3D"dark"] .archive .archive-item-link:hover { color: rgb(255, 2=
55, 255); }

.archive .archive-item-date { text-align: right; color: rgb(177, 177, 186);=
 white-space: nowrap; font-variant-numeric: tabular-nums lining-nums; }

[data-theme=3D"dark"] .archive .archive-item-date { color: rgb(144, 144, 14=
6); }

.archive .more-post { text-align: right; }

.archive .tag-cloud-tags { margin: 10px 0px; }

.archive .tag-cloud-tags a, .archive .tag-cloud-tags a::before, .archive .t=
ag-cloud-tags a::after { text-decoration: none; color: rgb(22, 18, 9); }

[data-theme=3D"dark"] .archive .tag-cloud-tags a, [data-theme=3D"dark"] .ar=
chive .tag-cloud-tags a::before, [data-theme=3D"dark"] .archive .tag-cloud-=
tags a::after { color: rgb(177, 177, 186); }

.archive .tag-cloud-tags a:active, .archive .tag-cloud-tags a:hover { color=
: rgb(41, 131, 187); }

[data-theme=3D"dark"] .archive .tag-cloud-tags a:active, [data-theme=3D"dar=
k"] .archive .tag-cloud-tags a:hover { color: rgb(255, 255, 255); }

.archive .tag-cloud-tags a { display: inline-block; position: relative; mar=
gin: 5px 10px; overflow-wrap: break-word; transition: 0.3s ease-out; }

.archive .tag-cloud-tags a:active, .archive .tag-cloud-tags a:focus, .archi=
ve .tag-cloud-tags a:hover { transform: scale(1.2); }

.archive .tag-cloud-tags a:active sup, .archive .tag-cloud-tags a:focus sup=
, .archive .tag-cloud-tags a:hover sup { color: rgb(22, 18, 9); transition:=
 0.3s ease-out; }

[data-theme=3D"dark"] .archive .tag-cloud-tags a:active sup, [data-theme=3D=
"dark"] .archive .tag-cloud-tags a:focus sup, [data-theme=3D"dark"] .archiv=
e .tag-cloud-tags a:hover sup { color: rgb(177, 177, 186); }

.archive .tag-cloud-tags a sup { color: rgb(177, 177, 186); }

[data-theme=3D"dark"] .archive .tag-cloud-tags a sup { color: rgb(144, 144,=
 146); }

.archive .tag-cloud-0 { font-size: var(--tag-font); color: rgb(177, 177, 18=
6) !important; margin: 10px !important; }

.archive .tag-cloud-0:active, .archive .tag-cloud-0:focus, .archive .tag-cl=
oud-0:hover { color: rgb(41, 131, 187) !important; }

[data-theme=3D"dark"] .archive .tag-cloud-0:active, [data-theme=3D"dark"] .=
archive .tag-cloud-0:focus, [data-theme=3D"dark"] .archive .tag-cloud-0:hov=
er { color: rgb(255, 255, 255); }

.archive .tag-cloud-0:active sup, .archive .tag-cloud-0:focus sup, .archive=
 .tag-cloud-0:hover sup { opacity: 1; }

[data-theme=3D"dark"] .archive .tag-cloud-0 { color: rgb(144, 144, 146) !im=
portant; }

.archive .tag-cloud-0 sup { opacity: 0; }

.archive .tag-cloud-1 { font-size: var(--tag-font); color: rgb(162, 161, 16=
8) !important; margin: 10px !important; }

.archive .tag-cloud-1:active, .archive .tag-cloud-1:focus, .archive .tag-cl=
oud-1:hover { color: rgb(41, 131, 187) !important; }

[data-theme=3D"dark"] .archive .tag-cloud-1:active, [data-theme=3D"dark"] .=
archive .tag-cloud-1:focus, [data-theme=3D"dark"] .archive .tag-cloud-1:hov=
er { color: rgb(255, 255, 255); }

.archive .tag-cloud-1:active sup, .archive .tag-cloud-1:focus sup, .archive=
 .tag-cloud-1:hover sup { opacity: 1; }

[data-theme=3D"dark"] .archive .tag-cloud-1 { color: rgb(147, 147, 150) !im=
portant; }

.archive .tag-cloud-1 sup { opacity: 0; }

.archive .tag-cloud-2 { font-size: var(--tag-font); color: rgb(146, 145, 15=
1) !important; margin: 10px !important; }

.archive .tag-cloud-2:active, .archive .tag-cloud-2:focus, .archive .tag-cl=
oud-2:hover { color: rgb(41, 131, 187) !important; }

[data-theme=3D"dark"] .archive .tag-cloud-2:active, [data-theme=3D"dark"] .=
archive .tag-cloud-2:focus, [data-theme=3D"dark"] .archive .tag-cloud-2:hov=
er { color: rgb(255, 255, 255); }

.archive .tag-cloud-2:active sup, .archive .tag-cloud-2:focus sup, .archive=
 .tag-cloud-2:hover sup { opacity: 1; }

[data-theme=3D"dark"] .archive .tag-cloud-2 { color: rgb(151, 151, 154) !im=
portant; }

.archive .tag-cloud-2 sup { opacity: 0; }

.archive .tag-cloud-3 { font-size: var(--tag-font); color: rgb(131, 129, 13=
3) !important; margin: 10px !important; }

.archive .tag-cloud-3:active, .archive .tag-cloud-3:focus, .archive .tag-cl=
oud-3:hover { color: rgb(41, 131, 187) !important; }

[data-theme=3D"dark"] .archive .tag-cloud-3:active, [data-theme=3D"dark"] .=
archive .tag-cloud-3:focus, [data-theme=3D"dark"] .archive .tag-cloud-3:hov=
er { color: rgb(255, 255, 255); }

.archive .tag-cloud-3:active sup, .archive .tag-cloud-3:focus sup, .archive=
 .tag-cloud-3:hover sup { opacity: 1; }

[data-theme=3D"dark"] .archive .tag-cloud-3 { color: rgb(154, 154, 158) !im=
portant; }

.archive .tag-cloud-3 sup { opacity: 0; }

.archive .tag-cloud-4 { font-size: var(--tag-font); color: rgb(115, 113, 11=
5) !important; margin: 10px !important; }

.archive .tag-cloud-4:active, .archive .tag-cloud-4:focus, .archive .tag-cl=
oud-4:hover { color: rgb(41, 131, 187) !important; }

[data-theme=3D"dark"] .archive .tag-cloud-4:active, [data-theme=3D"dark"] .=
archive .tag-cloud-4:focus, [data-theme=3D"dark"] .archive .tag-cloud-4:hov=
er { color: rgb(255, 255, 255); }

.archive .tag-cloud-4:active sup, .archive .tag-cloud-4:focus sup, .archive=
 .tag-cloud-4:hover sup { opacity: 1; }

[data-theme=3D"dark"] .archive .tag-cloud-4 { color: rgb(157, 157, 162) !im=
portant; }

.archive .tag-cloud-4 sup { opacity: 0; }

.archive .tag-cloud-5 { font-size: var(--tag-font); color: rgb(100, 98, 98)=
 !important; margin: 10px !important; }

.archive .tag-cloud-5:active, .archive .tag-cloud-5:focus, .archive .tag-cl=
oud-5:hover { color: rgb(41, 131, 187) !important; }

[data-theme=3D"dark"] .archive .tag-cloud-5:active, [data-theme=3D"dark"] .=
archive .tag-cloud-5:focus, [data-theme=3D"dark"] .archive .tag-cloud-5:hov=
er { color: rgb(255, 255, 255); }

.archive .tag-cloud-5:active sup, .archive .tag-cloud-5:focus sup, .archive=
 .tag-cloud-5:hover sup { opacity: 1; }

[data-theme=3D"dark"] .archive .tag-cloud-5 { color: rgb(161, 161, 166) !im=
portant; }

.archive .tag-cloud-5 sup { opacity: 0; }

.archive .tag-cloud-6 { font-size: var(--tag-font); color: rgb(84, 82, 80) =
!important; margin: 10px !important; }

.archive .tag-cloud-6:active, .archive .tag-cloud-6:focus, .archive .tag-cl=
oud-6:hover { color: rgb(41, 131, 187) !important; }

[data-theme=3D"dark"] .archive .tag-cloud-6:active, [data-theme=3D"dark"] .=
archive .tag-cloud-6:focus, [data-theme=3D"dark"] .archive .tag-cloud-6:hov=
er { color: rgb(255, 255, 255); }

.archive .tag-cloud-6:active sup, .archive .tag-cloud-6:focus sup, .archive=
 .tag-cloud-6:hover sup { opacity: 1; }

[data-theme=3D"dark"] .archive .tag-cloud-6 { color: rgb(164, 164, 170) !im=
portant; }

.archive .tag-cloud-6 sup { opacity: 0; }

.archive .tag-cloud-7 { font-size: var(--tag-font); color: rgb(69, 66, 62) =
!important; margin: 10px !important; }

.archive .tag-cloud-7:active, .archive .tag-cloud-7:focus, .archive .tag-cl=
oud-7:hover { color: rgb(41, 131, 187) !important; }

[data-theme=3D"dark"] .archive .tag-cloud-7:active, [data-theme=3D"dark"] .=
archive .tag-cloud-7:focus, [data-theme=3D"dark"] .archive .tag-cloud-7:hov=
er { color: rgb(255, 255, 255); }

.archive .tag-cloud-7:active sup, .archive .tag-cloud-7:focus sup, .archive=
 .tag-cloud-7:hover sup { opacity: 1; }

[data-theme=3D"dark"] .archive .tag-cloud-7 { color: rgb(167, 167, 174) !im=
portant; }

.archive .tag-cloud-7 sup { opacity: 0; }

.archive .tag-cloud-8 { font-size: var(--tag-font); color: rgb(53, 50, 44) =
!important; margin: 10px !important; }

.archive .tag-cloud-8:active, .archive .tag-cloud-8:focus, .archive .tag-cl=
oud-8:hover { color: rgb(41, 131, 187) !important; }

[data-theme=3D"dark"] .archive .tag-cloud-8:active, [data-theme=3D"dark"] .=
archive .tag-cloud-8:focus, [data-theme=3D"dark"] .archive .tag-cloud-8:hov=
er { color: rgb(255, 255, 255); }

.archive .tag-cloud-8:active sup, .archive .tag-cloud-8:focus sup, .archive=
 .tag-cloud-8:hover sup { opacity: 1; }

[data-theme=3D"dark"] .archive .tag-cloud-8 { color: rgb(170, 170, 178) !im=
portant; }

.archive .tag-cloud-8 sup { opacity: 0; }

.archive .tag-cloud-9 { font-size: var(--tag-font); color: rgb(38, 34, 27) =
!important; margin: 10px !important; }

.archive .tag-cloud-9:active, .archive .tag-cloud-9:focus, .archive .tag-cl=
oud-9:hover { color: rgb(41, 131, 187) !important; }

[data-theme=3D"dark"] .archive .tag-cloud-9:active, [data-theme=3D"dark"] .=
archive .tag-cloud-9:focus, [data-theme=3D"dark"] .archive .tag-cloud-9:hov=
er { color: rgb(255, 255, 255); }

.archive .tag-cloud-9:active sup, .archive .tag-cloud-9:focus sup, .archive=
 .tag-cloud-9:hover sup { opacity: 1; }

[data-theme=3D"dark"] .archive .tag-cloud-9 { color: rgb(174, 174, 182) !im=
portant; }

.archive .tag-cloud-9 sup { opacity: 0; }

.archive .tag-cloud-10 { font-size: var(--tag-font); color: rgb(22, 18, 9) =
!important; margin: 10px !important; }

.archive .tag-cloud-10:active, .archive .tag-cloud-10:focus, .archive .tag-=
cloud-10:hover { color: rgb(41, 131, 187) !important; }

[data-theme=3D"dark"] .archive .tag-cloud-10:active, [data-theme=3D"dark"] =
.archive .tag-cloud-10:focus, [data-theme=3D"dark"] .archive .tag-cloud-10:=
hover { color: rgb(255, 255, 255); }

.archive .tag-cloud-10:active sup, .archive .tag-cloud-10:focus sup, .archi=
ve .tag-cloud-10:hover sup { opacity: 1; }

[data-theme=3D"dark"] .archive .tag-cloud-10 { color: rgb(177, 177, 186) !i=
mportant; }

.archive .tag-cloud-10 sup { opacity: 0; }

.home .home-profile { text-align: center; }

.home .home-profile .home-avatar { padding: 0.5rem; }

.home .home-profile .home-avatar img { display: inline-block; width: 8rem; =
height: auto; margin: 0px auto; border-radius: 100%; box-shadow: rgba(0, 0,=
 0, 0.05) 0px 0px 0px 0.3618em; transition: 0.4s; }

[data-theme=3D"dark"] .home .home-profile .home-avatar img { box-shadow: rg=
ba(255, 255, 255, 0.05) 0px 0px 0px 0.3618em; }

.home .home-profile .home-avatar img:hover { position: relative; transform:=
 translateY(-0.75rem); }

.home .home-profile .home-title { font-size: 1.25rem; font-weight: bold; ma=
rgin: 0px; }

.home .home-profile .home-title:not(:empty) { padding: 0.5rem; }

.home .home-profile .home-subtitle { font-size: 1rem; font-weight: normal; =
margin: 0px; padding: 0.5rem; }

.home .home-profile .links { padding: 0.5rem; font-size: 1.5rem; }

.home .home-profile .links a * { vertical-align: text-bottom; }

.home .home-profile .links img { height: 1.5rem; padding: 0px 0.25rem; }

.home .home-profile .home-disclaimer { font-size: 1rem; line-height: 1.5rem=
; font-weight: normal; margin: 0px; padding: 0.5rem; color: rgb(177, 177, 1=
86); }

[data-theme=3D"dark"] .home .home-profile .home-disclaimer { color: rgb(144=
, 144, 146); }

.home.posts .home-profile { padding: 2rem 0px; }

.home.posts .home-avatar img { width: 6rem; }

.home.posts .summary { padding-top: 1rem; padding-bottom: 0.8rem; color: rg=
b(22, 18, 9); border-bottom: 1px dashed rgb(240, 240, 240); }

.home.posts .summary:first-of-type { padding-top: 0px; }

[data-theme=3D"dark"] .home.posts .summary { color: rgb(177, 177, 186); bor=
der-bottom: 1px dashed rgb(54, 54, 54); }

.home.posts .summary .featured-image-preview { width: 100%; aspect-ratio: a=
uto 1000 / 420; position: relative; margin: 0.6rem auto; transition: transf=
orm 0.4s; }

.home.posts .summary .featured-image-preview img { position: absolute; widt=
h: 100%; height: 100%; left: 0px; top: 0px; object-fit: cover; font-family:=
 "object-fit: cover;"; }

.home.posts .summary .featured-image-preview:hover { transform: scale(1.01)=
; }

.home.posts .summary .single-title { font-size: 1.25rem; line-height: 140%;=
 margin: 0.4rem 0px; }

.home.posts .summary .content { margin-top: 0.3rem; color: rgb(177, 177, 18=
6); }

[data-theme=3D"dark"] .home.posts .summary .content { color: rgb(144, 144, =
146); }

.home.posts .summary .content a, .home.posts .summary .content a::before, .=
home.posts .summary .content a::after { text-decoration: none; color: rgb(3=
5, 118, 183); }

[data-theme=3D"dark"] .home.posts .summary .content a, [data-theme=3D"dark"=
] .home.posts .summary .content a::before, [data-theme=3D"dark"] .home.post=
s .summary .content a::after { color: rgb(177, 177, 186); }

.home.posts .summary .content a:active, .home.posts .summary .content a:hov=
er { color: rgb(234, 81, 127); }

[data-theme=3D"dark"] .home.posts .summary .content a:active, [data-theme=
=3D"dark"] .home.posts .summary .content a:hover { color: rgb(255, 255, 255=
); }

.home.posts .summary .content b, .home.posts .summary .content strong { col=
or: rgb(177, 177, 186); }

[data-theme=3D"dark"] .home.posts .summary .content b, [data-theme=3D"dark"=
] .home.posts .summary .content strong { color: rgb(144, 144, 146); }

.home.posts .summary .post-footer { margin-top: 0.4rem; display: flex; just=
ify-content: space-between; align-items: center; font-size: 0.875rem; }

.home.posts .summary .post-footer a, .home.posts .summary .post-footer a::b=
efore, .home.posts .summary .post-footer a::after { text-decoration: none; =
color: rgb(35, 118, 183); }

[data-theme=3D"dark"] .home.posts .summary .post-footer a, [data-theme=3D"d=
ark"] .home.posts .summary .post-footer a::before, [data-theme=3D"dark"] .h=
ome.posts .summary .post-footer a::after { color: rgb(23, 129, 181); }

.home.posts .summary .post-footer a:active, .home.posts .summary .post-foot=
er a:hover { color: rgb(234, 81, 127); }

[data-theme=3D"dark"] .home.posts .summary .post-footer a:active, [data-the=
me=3D"dark"] .home.posts .summary .post-footer a:hover { color: rgb(204, 85=
, 149); }

.home.posts .summary .post-footer .post-tags { padding: 0px; }

.home.posts .summary .post-footer .post-tags a, .home.posts .summary .post-=
footer .post-tags a::before, .home.posts .summary .post-footer .post-tags a=
::after { text-decoration: none; color: rgb(22, 18, 9); }

[data-theme=3D"dark"] .home.posts .summary .post-footer .post-tags a, [data=
-theme=3D"dark"] .home.posts .summary .post-footer .post-tags a::before, [d=
ata-theme=3D"dark"] .home.posts .summary .post-footer .post-tags a::after {=
 color: rgb(177, 177, 186); }

.home.posts .summary .post-footer .post-tags a:active, .home.posts .summary=
 .post-footer .post-tags a:hover { color: rgb(41, 131, 187); }

[data-theme=3D"dark"] .home.posts .summary .post-footer .post-tags a:active=
, [data-theme=3D"dark"] .home.posts .summary .post-footer .post-tags a:hove=
r { color: rgb(255, 255, 255); }

.home.posts .summary .post-footer .post-tags .post-tag:not(:last-child)::af=
ter { content: ","; margin-right: 0.25rem; }

#content-404 { font-size: 1.8rem; line-height: 3rem; transform: translateY(=
30vh); text-align: center; }

#content-offline { transform: translateY(30vh); text-align: center; }

#content-offline .offline-title { font-size: 3.6rem; }

#content-offline .offline-subtitle { margin: 0.4rem 0px; font-size: 1rem; f=
ont-weight: normal; font-style: italic; line-height: 100%; color: rgb(87, 9=
6, 106); }

#content-offline .error-text { font-size: 1.2rem; }

.friend-links { margin-top: 1rem; display: flex; flex-flow: wrap; justify-c=
ontent: space-between; }

@media (max-width: 576px) {
  .friend-links { justify-content: space-around; }
}

.friend-link { width: 150px; height: 200px; font-size: 1rem; text-align: ce=
nter; background: rgba(255, 255, 255, 0.3); box-sizing: border-box; box-sha=
dow: rgb(170, 170, 170) 3px 3px 5px; border-radius: 5px; border: none; tran=
sition-duration: 0.3s; margin-bottom: 1rem; display: flex; flex-direction: =
column; justify-content: space-between; }

.friend-link:hover { background: rgb(255, 255, 255); transform: scale(1.03)=
; box-shadow: rgb(170, 170, 170) 0px 0px 3px; }

.friend-avatar { object-fit: cover; object-position: center center; border-=
radius: 5px; margin: 0px; padding: 0px; width: 100% !important; height: 150=
px !important; }

.friend-nickname { display: block; position: relative; color: rgb(43, 188, =
138); font-weight: bold; max-width: 100%; overflow: hidden; white-space: no=
wrap; text-overflow: ellipsis; line-height: 18px; margin-bottom: 1rem; }

.friend-nickname:hover { color: rgb(212, 128, 170); }

@media only screen and (min-width: 1441px) {
  .breadcrumb-container .breadcrumb, .page { width: round(60%, 2px); }
  [data-page-style=3D"wide"] .breadcrumb-container .breadcrumb, .breadcrumb=
-container [data-page-style=3D"wide"] .breadcrumb, [data-page-style=3D"wide=
"] .page { width: round(64%, 2px); }
  [data-page-style=3D"narrow"] .breadcrumb-container .breadcrumb, .breadcru=
mb-container [data-page-style=3D"narrow"] .breadcrumb, [data-page-style=3D"=
narrow"] .page { max-width: 800px; }
}

@media only screen and (max-width: 1440px) {
  .breadcrumb-container .breadcrumb, .page { width: round(56%, 2px); }
  [data-page-style=3D"wide"] .breadcrumb-container .breadcrumb, .breadcrumb=
-container [data-page-style=3D"wide"] .breadcrumb, [data-page-style=3D"wide=
"] .page { width: round(60%, 2px); }
}

@media only screen and (max-width: 1200px) {
  .breadcrumb-container .breadcrumb, .page { width: round(52%, 2px); }
  [data-page-style=3D"wide"] .breadcrumb-container .breadcrumb, .breadcrumb=
-container [data-page-style=3D"wide"] .breadcrumb, [data-page-style=3D"wide=
"] .page { width: round(56%, 2px); }
  #header-desktop .header-wrapper { padding-right: 1rem; }
  .search-dropdown.desktop { right: 1rem; }
}

@media only screen and (max-width: 960px) {
  .breadcrumb-container .breadcrumb, .page { width: round(80%, 2px) !import=
ant; }
  aside { display: none !important; }
  #toc-static { display: block; }
  #header-desktop .header-wrapper { padding-left: 1rem; }
}

@media only screen and (min-width: 681px) {
  .d-none-desktop { display: none; }
  body:not([data-header-desktop=3D"sticky"]) .breadcrumb-container.sticky {=
 top: 0px; }
  body:not([data-header-desktop=3D"auto"]) .breadcrumb-container.sticky + .=
container .content [id] { scroll-margin-top: calc(var(--fi-scroll-mt) + var=
(--fi-breadcrumb-height)); }
  [data-header-desktop=3D"normal"] .page .content [id] { --fi-scroll-mt: .5=
rem; }
}

@media only screen and (max-width: 680px) {
  #header-desktop { display: none; }
  #header-mobile { display: block; }
  .d-none-mobile { display: none !important; }
  body:not([data-header-mobile=3D"sticky"]) .breadcrumb-container.sticky { =
top: 0px; }
  body:not([data-header-mobile=3D"auto"]) .breadcrumb-container.sticky + .c=
ontainer .content [id] { scroll-margin-top: calc(var(--fi-scroll-mt) + var(=
--fi-breadcrumb-height)); }
  [data-header-mobile=3D"normal"] .page .content [id] { --fi-scroll-mt: .5r=
em; }
  .breadcrumb-container .breadcrumb, .page { width: 100% !important; }
  .page .categories-card .card-item, .page .collections-card .card-item { w=
idth: 100%; }
  footer .footer-container { font-size: 0.618rem; }
  .pagination .page-item { margin: 0px 5px; }
}

@media only print {
  @page { size: a4 portrait; margin: 1.27cm; }
  .page { width: 100% !important; padding-top: 0px !important; }
  .page.single .single-title, .page.single .single-subtitle, .page.single .=
post-meta { text-align: center; }
  .page h1:not(.single-title), .page .page-break-before { break-before: pag=
e; }
  .page .page-break-after { break-after: page; }
  .print-d-none, .fixed-button, .github-corner, .reading-progress-bar, head=
er, .breadcrumb-container, footer, #toc-auto, .collection-card, .aside-coll=
ection, .single .post-meta .comment-visitors, .single .post-meta .comment-c=
ount, .single .content .highlight > .chroma .code-header .ellipses, .single=
 .content .highlight > .chroma .code-header .edit, .single .content .highli=
ght > .chroma .code-header .copy, .single .post-reward, .single .post-foote=
r .post-info .post-info-line .post-info-share, .single .post-footer .post-i=
nfo-more section:last-child, .single .post-footer .post-nav, .single > #com=
ments { display: none !important; }
}

@keyframes fi-pulse {=20
  0% { transform: scale3d(1, 1, 1); }
  50% { transform: scale3d(1.05, 1.05, 1.05); }
  100% { transform: scale3d(1, 1, 1); }
}

.animate__pulse { animation-name: fi-pulse !important; }

@supports not (width: ROUND(60%, 2px)) {
  @media only screen and (min-width: 1441px) {
  .breadcrumb-container .breadcrumb, .page { width: 60%; }
  [data-page-style=3D"wide"] .breadcrumb-container .breadcrumb, .breadcrumb=
-container [data-page-style=3D"wide"] .breadcrumb, [data-page-style=3D"wide=
"] .page { width: 64%; }
  [data-page-style=3D"narrow"] .breadcrumb-container .breadcrumb, .breadcru=
mb-container [data-page-style=3D"narrow"] .breadcrumb, [data-page-style=3D"=
narrow"] .page { max-width: 800px; }
}
  @media only screen and (max-width: 1440px) {
  .breadcrumb-container .breadcrumb, .page { width: 56%; }
  [data-page-style=3D"wide"] .breadcrumb-container .breadcrumb, .breadcrumb=
-container [data-page-style=3D"wide"] .breadcrumb, [data-page-style=3D"wide=
"] .page { width: 60%; }
}
  @media only screen and (max-width: 1200px) {
  .breadcrumb-container .breadcrumb, .page { width: 52%; }
  [data-page-style=3D"wide"] .breadcrumb-container .breadcrumb, .breadcrumb=
-container [data-page-style=3D"wide"] .breadcrumb, [data-page-style=3D"wide=
"] .page { width: 56%; }
}
  @media only screen and (max-width: 960px) {
  .breadcrumb-container .breadcrumb, .page { width: 80% !important; }
}
  @media only screen and (max-width: 680px) {
  .breadcrumb-container .breadcrumb, .page { width: 100% !important; }
}
}
------MultipartBoundary--gWmtkLL3aPLL9QvHLWg1Yif3XzwEYNRGNBhxAsKdsK----
Content-Type: text/css
Content-Transfer-Encoding: quoted-printable
Content-Location: https://it-notes.dragas.net/lib/fontawesome-free/all.min.cf780ba5def29277f562835b0b3a9129ce2aca8afc81a294d6a9a7f824a1c5bb81bac00d23d42946884606b7821642b12e17a2e92f424171446db2aea8b8340c.css

@charset "utf-8";

.fa { font-family: var(--fa-style-family,"Font Awesome 6 Free"); font-weigh=
t: var(--fa-style,900); }

.fa, .fa-brands, .fa-classic, .fa-regular, .fa-sharp, .fa-solid, .fab, .far=
, .fas { -webkit-font-smoothing: antialiased; display: var(--fa-display,inl=
ine-block); font-style: normal; font-variant: normal; line-height: 1; text-=
rendering: auto; }

.fa-classic, .fa-regular, .fa-solid, .far, .fas { font-family: "Font Awesom=
e 6 Free"; }

.fa-brands, .fab { font-family: "Font Awesome 6 Brands"; }

.fa-1x { font-size: 1em; }

.fa-2x { font-size: 2em; }

.fa-3x { font-size: 3em; }

.fa-4x { font-size: 4em; }

.fa-5x { font-size: 5em; }

.fa-6x { font-size: 6em; }

.fa-7x { font-size: 7em; }

.fa-8x { font-size: 8em; }

.fa-9x { font-size: 9em; }

.fa-10x { font-size: 10em; }

.fa-2xs { font-size: 0.625em; line-height: 0.1em; vertical-align: 0.225em; =
}

.fa-xs { font-size: 0.75em; line-height: 0.08333em; vertical-align: 0.125em=
; }

.fa-sm { font-size: 0.875em; line-height: 0.07143em; vertical-align: 0.0535=
7em; }

.fa-lg { font-size: 1.25em; line-height: 0.05em; vertical-align: -0.075em; =
}

.fa-xl { font-size: 1.5em; line-height: 0.04167em; vertical-align: -0.125em=
; }

.fa-2xl { font-size: 2em; line-height: 0.03125em; vertical-align: -0.1875em=
; }

.fa-fw { text-align: center; width: 1.25em; }

.fa-ul { list-style-type: none; margin-left: var(--fa-li-margin,2.5em); pad=
ding-left: 0px; }

.fa-ul > li { position: relative; }

.fa-li { left: calc(var(--fa-li-width, 2em)*-1); position: absolute; text-a=
lign: center; width: var(--fa-li-width,2em); line-height: inherit; }

.fa-border { border-radius: var(--fa-border-radius,.1em); border: var(--fa-=
border-width,.08em) var(--fa-border-style,solid) var(--fa-border-color,#eee=
); padding: var(--fa-border-padding,.2em .25em .15em); }

.fa-pull-left { float: left; margin-right: var(--fa-pull-margin,.3em); }

.fa-pull-right { float: right; margin-left: var(--fa-pull-margin,.3em); }

.fa-beat { animation-name: fa-beat; animation-delay: var(--fa-animation-del=
ay,0s); animation-direction: var(--fa-animation-direction,normal); animatio=
n-duration: var(--fa-animation-duration,1s); animation-iteration-count: var=
(--fa-animation-iteration-count,infinite); animation-timing-function: var(-=
-fa-animation-timing,ease-in-out); }

.fa-bounce { animation-name: fa-bounce; animation-delay: var(--fa-animation=
-delay,0s); animation-direction: var(--fa-animation-direction,normal); anim=
ation-duration: var(--fa-animation-duration,1s); animation-iteration-count:=
 var(--fa-animation-iteration-count,infinite); animation-timing-function: v=
ar(--fa-animation-timing,cubic-bezier(.28,.84,.42,1)); }

.fa-fade { animation-name: fa-fade; animation-iteration-count: var(--fa-ani=
mation-iteration-count,infinite); animation-timing-function: var(--fa-anima=
tion-timing,cubic-bezier(.4,0,.6,1)); }

.fa-beat-fade, .fa-fade { animation-delay: var(--fa-animation-delay,0s); an=
imation-direction: var(--fa-animation-direction,normal); animation-duration=
: var(--fa-animation-duration,1s); }

.fa-beat-fade { animation-name: fa-beat-fade; animation-iteration-count: va=
r(--fa-animation-iteration-count,infinite); animation-timing-function: var(=
--fa-animation-timing,cubic-bezier(.4,0,.6,1)); }

.fa-flip { animation-name: fa-flip; animation-delay: var(--fa-animation-del=
ay,0s); animation-direction: var(--fa-animation-direction,normal); animatio=
n-duration: var(--fa-animation-duration,1s); animation-iteration-count: var=
(--fa-animation-iteration-count,infinite); animation-timing-function: var(-=
-fa-animation-timing,ease-in-out); }

.fa-shake { animation-name: fa-shake; animation-duration: var(--fa-animatio=
n-duration,1s); animation-iteration-count: var(--fa-animation-iteration-cou=
nt,infinite); animation-timing-function: var(--fa-animation-timing,linear);=
 }

.fa-shake, .fa-spin { animation-delay: var(--fa-animation-delay,0s); animat=
ion-direction: var(--fa-animation-direction,normal); }

.fa-spin { animation-name: fa-spin; animation-duration: var(--fa-animation-=
duration,2s); animation-iteration-count: var(--fa-animation-iteration-count=
,infinite); animation-timing-function: var(--fa-animation-timing,linear); }

.fa-spin-reverse { --fa-animation-direction: reverse; }

.fa-pulse, .fa-spin-pulse { animation-name: fa-spin; animation-direction: v=
ar(--fa-animation-direction,normal); animation-duration: var(--fa-animation=
-duration,1s); animation-iteration-count: var(--fa-animation-iteration-coun=
t,infinite); animation-timing-function: var(--fa-animation-timing,steps(8))=
; }

@media (prefers-reduced-motion: reduce) {
  .fa-beat, .fa-beat-fade, .fa-bounce, .fa-fade, .fa-flip, .fa-pulse, .fa-s=
hake, .fa-spin, .fa-spin-pulse { animation-delay: -1ms; animation-duration:=
 1ms; animation-iteration-count: 1; transition-delay: 0s; transition-durati=
on: 0s; }
}

@-webkit-keyframes fa-beat {=20
  0%, 90% { transform: scale(1); }
  45% { transform: scale(var(--fa-beat-scale,1.25)); }
}

@keyframes fa-beat {=20
  0%, 90% { transform: scale(1); }
  45% { transform: scale(var(--fa-beat-scale,1.25)); }
}

@-webkit-keyframes fa-bounce {=20
  0% { transform: scale(1) translateY(0px); }
  10% { transform: scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce=
-start-scale-y,.9)) translateY(0); }
  30% { transform: scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-j=
ump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em)); }
  50% { transform: scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce=
-land-scale-y,.95)) translateY(0); }
  57% { transform: scale(1) translateY(var(--fa-bounce-rebound,-.125em)); }
  64% { transform: scale(1) translateY(0px); }
  100% { transform: scale(1) translateY(0px); }
}

@keyframes fa-bounce {=20
  0% { transform: scale(1) translateY(0px); }
  10% { transform: scale(var(--fa-bounce-start-scale-x,1.1),var(--fa-bounce=
-start-scale-y,.9)) translateY(0); }
  30% { transform: scale(var(--fa-bounce-jump-scale-x,.9),var(--fa-bounce-j=
ump-scale-y,1.1)) translateY(var(--fa-bounce-height,-.5em)); }
  50% { transform: scale(var(--fa-bounce-land-scale-x,1.05),var(--fa-bounce=
-land-scale-y,.95)) translateY(0); }
  57% { transform: scale(1) translateY(var(--fa-bounce-rebound,-.125em)); }
  64% { transform: scale(1) translateY(0px); }
  100% { transform: scale(1) translateY(0px); }
}

@-webkit-keyframes fa-fade {=20
  50% { opacity: var(--fa-fade-opacity,.4); }
}

@keyframes fa-fade {=20
  50% { opacity: var(--fa-fade-opacity,.4); }
}

@-webkit-keyframes fa-beat-fade {=20
  0%, 100% { opacity: var(--fa-beat-fade-opacity,.4); transform: scale(1); =
}
  50% { opacity: 1; transform: scale(var(--fa-beat-fade-scale,1.125)); }
}

@keyframes fa-beat-fade {=20
  0%, 100% { opacity: var(--fa-beat-fade-opacity,.4); transform: scale(1); =
}
  50% { opacity: 1; transform: scale(var(--fa-beat-fade-scale,1.125)); }
}

@-webkit-keyframes fa-flip {=20
  50% { transform: rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-=
flip-z,0),var(--fa-flip-angle,-180deg)); }
}

@keyframes fa-flip {=20
  50% { transform: rotate3d(var(--fa-flip-x,0),var(--fa-flip-y,1),var(--fa-=
flip-z,0),var(--fa-flip-angle,-180deg)); }
}

@-webkit-keyframes fa-shake {=20
  0% { transform: rotate(-15deg); }
  4% { transform: rotate(15deg); }
  8%, 24% { transform: rotate(-18deg); }
  12%, 28% { transform: rotate(18deg); }
  16% { transform: rotate(-22deg); }
  20% { transform: rotate(22deg); }
  32% { transform: rotate(-12deg); }
  36% { transform: rotate(12deg); }
  40%, 100% { transform: rotate(0deg); }
}

@keyframes fa-shake {=20
  0% { transform: rotate(-15deg); }
  4% { transform: rotate(15deg); }
  8%, 24% { transform: rotate(-18deg); }
  12%, 28% { transform: rotate(18deg); }
  16% { transform: rotate(-22deg); }
  20% { transform: rotate(22deg); }
  32% { transform: rotate(-12deg); }
  36% { transform: rotate(12deg); }
  40%, 100% { transform: rotate(0deg); }
}

@-webkit-keyframes fa-spin {=20
  0% { transform: rotate(0deg); }
  100% { transform: rotate(1turn); }
}

@keyframes fa-spin {=20
  0% { transform: rotate(0deg); }
  100% { transform: rotate(1turn); }
}

.fa-rotate-90 { transform: rotate(90deg); }

.fa-rotate-180 { transform: rotate(180deg); }

.fa-rotate-270 { transform: rotate(270deg); }

.fa-flip-horizontal { transform: scaleX(-1); }

.fa-flip-vertical { transform: scaleY(-1); }

.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical { transform: scale(-1);=
 }

.fa-rotate-by { transform: rotate(var(--fa-rotate-angle,none)); }

.fa-stack { display: inline-block; height: 2em; line-height: 2em; position:=
 relative; vertical-align: middle; width: 2.5em; }

.fa-stack-1x, .fa-stack-2x { left: 0px; position: absolute; text-align: cen=
ter; width: 100%; z-index: var(--fa-stack-z-index,auto); }

.fa-stack-1x { line-height: inherit; }

.fa-stack-2x { font-size: 2em; }

.fa-inverse { color: var(--fa-inverse,#fff); }

.fa-0::before { content: "0"; }

.fa-1::before { content: "1"; }

.fa-2::before { content: "2"; }

.fa-3::before { content: "3"; }

.fa-4::before { content: "4"; }

.fa-5::before { content: "5"; }

.fa-6::before { content: "6"; }

.fa-7::before { content: "7"; }

.fa-8::before { content: "8"; }

.fa-9::before { content: "9"; }

.fa-fill-drip::before { content: "=EF=95=B6"; }

.fa-arrows-to-circle::before { content: "=EE=92=BD"; }

.fa-chevron-circle-right::before, .fa-circle-chevron-right::before { conten=
t: "=EF=84=B8"; }

.fa-at::before { content: "@"; }

.fa-trash-alt::before, .fa-trash-can::before { content: "=EF=8B=AD"; }

.fa-text-height::before { content: "=EF=80=B4"; }

.fa-user-times::before, .fa-user-xmark::before { content: "=EF=88=B5"; }

.fa-stethoscope::before { content: "=EF=83=B1"; }

.fa-comment-alt::before, .fa-message::before { content: "=EF=89=BA"; }

.fa-info::before { content: "=EF=84=A9"; }

.fa-compress-alt::before, .fa-down-left-and-up-right-to-center::before { co=
ntent: "=EF=90=A2"; }

.fa-explosion::before { content: "=EE=93=A9"; }

.fa-file-alt::before, .fa-file-lines::before, .fa-file-text::before { conte=
nt: "=EF=85=9C"; }

.fa-wave-square::before { content: "=EF=A0=BE"; }

.fa-ring::before { content: "=EF=9C=8B"; }

.fa-building-un::before { content: "=EE=93=99"; }

.fa-dice-three::before { content: "=EF=94=A7"; }

.fa-calendar-alt::before, .fa-calendar-days::before { content: "=EF=81=B3";=
 }

.fa-anchor-circle-check::before { content: "=EE=92=AA"; }

.fa-building-circle-arrow-right::before { content: "=EE=93=91"; }

.fa-volleyball-ball::before, .fa-volleyball::before { content: "=EF=91=9F";=
 }

.fa-arrows-up-to-line::before { content: "=EE=93=82"; }

.fa-sort-desc::before, .fa-sort-down::before { content: "=EF=83=9D"; }

.fa-circle-minus::before, .fa-minus-circle::before { content: "=EF=81=96"; =
}

.fa-door-open::before { content: "=EF=94=AB"; }

.fa-right-from-bracket::before, .fa-sign-out-alt::before { content: "=EF=8B=
=B5"; }

.fa-atom::before { content: "=EF=97=92"; }

.fa-soap::before { content: "=EE=81=AE"; }

.fa-heart-music-camera-bolt::before, .fa-icons::before { content: "=EF=A1=
=AD"; }

.fa-microphone-alt-slash::before, .fa-microphone-lines-slash::before { cont=
ent: "=EF=94=B9"; }

.fa-bridge-circle-check::before { content: "=EE=93=89"; }

.fa-pump-medical::before { content: "=EE=81=AA"; }

.fa-fingerprint::before { content: "=EF=95=B7"; }

.fa-hand-point-right::before { content: "=EF=82=A4"; }

.fa-magnifying-glass-location::before, .fa-search-location::before { conten=
t: "=EF=9A=89"; }

.fa-forward-step::before, .fa-step-forward::before { content: "=EF=81=91"; =
}

.fa-face-smile-beam::before, .fa-smile-beam::before { content: "=EF=96=B8";=
 }

.fa-flag-checkered::before { content: "=EF=84=9E"; }

.fa-football-ball::before, .fa-football::before { content: "=EF=91=8E"; }

.fa-school-circle-exclamation::before { content: "=EE=95=AC"; }

.fa-crop::before { content: "=EF=84=A5"; }

.fa-angle-double-down::before, .fa-angles-down::before { content: "=EF=84=
=83"; }

.fa-users-rectangle::before { content: "=EE=96=94"; }

.fa-people-roof::before { content: "=EE=94=B7"; }

.fa-people-line::before { content: "=EE=94=B4"; }

.fa-beer-mug-empty::before, .fa-beer::before { content: "=EF=83=BC"; }

.fa-diagram-predecessor::before { content: "=EE=91=B7"; }

.fa-arrow-up-long::before, .fa-long-arrow-up::before { content: "=EF=85=B6"=
; }

.fa-burn::before, .fa-fire-flame-simple::before { content: "=EF=91=AA"; }

.fa-male::before, .fa-person::before { content: "=EF=86=83"; }

.fa-laptop::before { content: "=EF=84=89"; }

.fa-file-csv::before { content: "=EF=9B=9D"; }

.fa-menorah::before { content: "=EF=99=B6"; }

.fa-truck-plane::before { content: "=EE=96=8F"; }

.fa-record-vinyl::before { content: "=EF=A3=99"; }

.fa-face-grin-stars::before, .fa-grin-stars::before { content: "=EF=96=87";=
 }

.fa-bong::before { content: "=EF=95=9C"; }

.fa-pastafarianism::before, .fa-spaghetti-monster-flying::before { content:=
 "=EF=99=BB"; }

.fa-arrow-down-up-across-line::before { content: "=EE=92=AF"; }

.fa-spoon::before, .fa-utensil-spoon::before { content: "=EF=8B=A5"; }

.fa-jar-wheat::before { content: "=EE=94=97"; }

.fa-envelopes-bulk::before, .fa-mail-bulk::before { content: "=EF=99=B4"; }

.fa-file-circle-exclamation::before { content: "=EE=93=AB"; }

.fa-circle-h::before, .fa-hospital-symbol::before { content: "=EF=91=BE"; }

.fa-pager::before { content: "=EF=A0=95"; }

.fa-address-book::before, .fa-contact-book::before { content: "=EF=8A=B9"; =
}

.fa-strikethrough::before { content: "=EF=83=8C"; }

.fa-k::before { content: "K"; }

.fa-landmark-flag::before { content: "=EE=94=9C"; }

.fa-pencil-alt::before, .fa-pencil::before { content: "=EF=8C=83"; }

.fa-backward::before { content: "=EF=81=8A"; }

.fa-caret-right::before { content: "=EF=83=9A"; }

.fa-comments::before { content: "=EF=82=86"; }

.fa-file-clipboard::before, .fa-paste::before { content: "=EF=83=AA"; }

.fa-code-pull-request::before { content: "=EE=84=BC"; }

.fa-clipboard-list::before { content: "=EF=91=AD"; }

.fa-truck-loading::before, .fa-truck-ramp-box::before { content: "=EF=93=9E=
"; }

.fa-user-check::before { content: "=EF=93=BC"; }

.fa-vial-virus::before { content: "=EE=96=97"; }

.fa-sheet-plastic::before { content: "=EE=95=B1"; }

.fa-blog::before { content: "=EF=9E=81"; }

.fa-user-ninja::before { content: "=EF=94=84"; }

.fa-person-arrow-up-from-line::before { content: "=EE=94=B9"; }

.fa-scroll-torah::before, .fa-torah::before { content: "=EF=9A=A0"; }

.fa-broom-ball::before, .fa-quidditch-broom-ball::before, .fa-quidditch::be=
fore { content: "=EF=91=98"; }

.fa-toggle-off::before { content: "=EF=88=84"; }

.fa-archive::before, .fa-box-archive::before { content: "=EF=86=87"; }

.fa-person-drowning::before { content: "=EE=95=85"; }

.fa-arrow-down-9-1::before, .fa-sort-numeric-desc::before, .fa-sort-numeric=
-down-alt::before { content: "=EF=A2=86"; }

.fa-face-grin-tongue-squint::before, .fa-grin-tongue-squint::before { conte=
nt: "=EF=96=8A"; }

.fa-spray-can::before { content: "=EF=96=BD"; }

.fa-truck-monster::before { content: "=EF=98=BB"; }

.fa-w::before { content: "W"; }

.fa-earth-africa::before, .fa-globe-africa::before { content: "=EF=95=BC"; =
}

.fa-rainbow::before { content: "=EF=9D=9B"; }

.fa-circle-notch::before { content: "=EF=87=8E"; }

.fa-tablet-alt::before, .fa-tablet-screen-button::before { content: "=EF=8F=
=BA"; }

.fa-paw::before { content: "=EF=86=B0"; }

.fa-cloud::before { content: "=EF=83=82"; }

.fa-trowel-bricks::before { content: "=EE=96=8A"; }

.fa-face-flushed::before, .fa-flushed::before { content: "=EF=95=B9"; }

.fa-hospital-user::before { content: "=EF=A0=8D"; }

.fa-tent-arrow-left-right::before { content: "=EE=95=BF"; }

.fa-gavel::before, .fa-legal::before { content: "=EF=83=A3"; }

.fa-binoculars::before { content: "=EF=87=A5"; }

.fa-microphone-slash::before { content: "=EF=84=B1"; }

.fa-box-tissue::before { content: "=EE=81=9B"; }

.fa-motorcycle::before { content: "=EF=88=9C"; }

.fa-bell-concierge::before, .fa-concierge-bell::before { content: "=EF=95=
=A2"; }

.fa-pen-ruler::before, .fa-pencil-ruler::before { content: "=EF=96=AE"; }

.fa-people-arrows-left-right::before, .fa-people-arrows::before { content: =
"=EE=81=A8"; }

.fa-mars-and-venus-burst::before { content: "=EE=94=A3"; }

.fa-caret-square-right::before, .fa-square-caret-right::before { content: "=
=EF=85=92"; }

.fa-cut::before, .fa-scissors::before { content: "=EF=83=84"; }

.fa-sun-plant-wilt::before { content: "=EE=95=BA"; }

.fa-toilets-portable::before { content: "=EE=96=84"; }

.fa-hockey-puck::before { content: "=EF=91=93"; }

.fa-table::before { content: "=EF=83=8E"; }

.fa-magnifying-glass-arrow-right::before { content: "=EE=94=A1"; }

.fa-digital-tachograph::before, .fa-tachograph-digital::before { content: "=
=EF=95=A6"; }

.fa-users-slash::before { content: "=EE=81=B3"; }

.fa-clover::before { content: "=EE=84=B9"; }

.fa-mail-reply::before, .fa-reply::before { content: "=EF=8F=A5"; }

.fa-star-and-crescent::before { content: "=EF=9A=99"; }

.fa-house-fire::before { content: "=EE=94=8C"; }

.fa-minus-square::before, .fa-square-minus::before { content: "=EF=85=86"; =
}

.fa-helicopter::before { content: "=EF=94=B3"; }

.fa-compass::before { content: "=EF=85=8E"; }

.fa-caret-square-down::before, .fa-square-caret-down::before { content: "=
=EF=85=90"; }

.fa-file-circle-question::before { content: "=EE=93=AF"; }

.fa-laptop-code::before { content: "=EF=97=BC"; }

.fa-swatchbook::before { content: "=EF=97=83"; }

.fa-prescription-bottle::before { content: "=EF=92=85"; }

.fa-bars::before, .fa-navicon::before { content: "=EF=83=89"; }

.fa-people-group::before { content: "=EE=94=B3"; }

.fa-hourglass-3::before, .fa-hourglass-end::before { content: "=EF=89=93"; =
}

.fa-heart-broken::before, .fa-heart-crack::before { content: "=EF=9E=A9"; }

.fa-external-link-square-alt::before, .fa-square-up-right::before { content=
: "=EF=8D=A0"; }

.fa-face-kiss-beam::before, .fa-kiss-beam::before { content: "=EF=96=97"; }

.fa-film::before { content: "=EF=80=88"; }

.fa-ruler-horizontal::before { content: "=EF=95=87"; }

.fa-people-robbery::before { content: "=EE=94=B6"; }

.fa-lightbulb::before { content: "=EF=83=AB"; }

.fa-caret-left::before { content: "=EF=83=99"; }

.fa-circle-exclamation::before, .fa-exclamation-circle::before { content: "=
=EF=81=AA"; }

.fa-school-circle-xmark::before { content: "=EE=95=AD"; }

.fa-arrow-right-from-bracket::before, .fa-sign-out::before { content: "=EF=
=82=8B"; }

.fa-chevron-circle-down::before, .fa-circle-chevron-down::before { content:=
 "=EF=84=BA"; }

.fa-unlock-alt::before, .fa-unlock-keyhole::before { content: "=EF=84=BE"; =
}

.fa-cloud-showers-heavy::before { content: "=EF=9D=80"; }

.fa-headphones-alt::before, .fa-headphones-simple::before { content: "=EF=
=96=8F"; }

.fa-sitemap::before { content: "=EF=83=A8"; }

.fa-circle-dollar-to-slot::before, .fa-donate::before { content: "=EF=92=B9=
"; }

.fa-memory::before { content: "=EF=94=B8"; }

.fa-road-spikes::before { content: "=EE=95=A8"; }

.fa-fire-burner::before { content: "=EE=93=B1"; }

.fa-flag::before { content: "=EF=80=A4"; }

.fa-hanukiah::before { content: "=EF=9B=A6"; }

.fa-feather::before { content: "=EF=94=AD"; }

.fa-volume-down::before, .fa-volume-low::before { content: "=EF=80=A7"; }

.fa-comment-slash::before { content: "=EF=92=B3"; }

.fa-cloud-sun-rain::before { content: "=EF=9D=83"; }

.fa-compress::before { content: "=EF=81=A6"; }

.fa-wheat-alt::before, .fa-wheat-awn::before { content: "=EE=8B=8D"; }

.fa-ankh::before { content: "=EF=99=84"; }

.fa-hands-holding-child::before { content: "=EE=93=BA"; }

.fa-asterisk::before { content: "*"; }

.fa-check-square::before, .fa-square-check::before { content: "=EF=85=8A"; =
}

.fa-peseta-sign::before { content: "=EE=88=A1"; }

.fa-header::before, .fa-heading::before { content: "=EF=87=9C"; }

.fa-ghost::before { content: "=EF=9B=A2"; }

.fa-list-squares::before, .fa-list::before { content: "=EF=80=BA"; }

.fa-phone-square-alt::before, .fa-square-phone-flip::before { content: "=EF=
=A1=BB"; }

.fa-cart-plus::before { content: "=EF=88=97"; }

.fa-gamepad::before { content: "=EF=84=9B"; }

.fa-circle-dot::before, .fa-dot-circle::before { content: "=EF=86=92"; }

.fa-dizzy::before, .fa-face-dizzy::before { content: "=EF=95=A7"; }

.fa-egg::before { content: "=EF=9F=BB"; }

.fa-house-medical-circle-xmark::before { content: "=EE=94=93"; }

.fa-campground::before { content: "=EF=9A=BB"; }

.fa-folder-plus::before { content: "=EF=99=9E"; }

.fa-futbol-ball::before, .fa-futbol::before, .fa-soccer-ball::before { cont=
ent: "=EF=87=A3"; }

.fa-paint-brush::before, .fa-paintbrush::before { content: "=EF=87=BC"; }

.fa-lock::before { content: "=EF=80=A3"; }

.fa-gas-pump::before { content: "=EF=94=AF"; }

.fa-hot-tub-person::before, .fa-hot-tub::before { content: "=EF=96=93"; }

.fa-map-location::before, .fa-map-marked::before { content: "=EF=96=9F"; }

.fa-house-flood-water::before { content: "=EE=94=8E"; }

.fa-tree::before { content: "=EF=86=BB"; }

.fa-bridge-lock::before { content: "=EE=93=8C"; }

.fa-sack-dollar::before { content: "=EF=A0=9D"; }

.fa-edit::before, .fa-pen-to-square::before { content: "=EF=81=84"; }

.fa-car-side::before { content: "=EF=97=A4"; }

.fa-share-alt::before, .fa-share-nodes::before { content: "=EF=87=A0"; }

.fa-heart-circle-minus::before { content: "=EE=93=BF"; }

.fa-hourglass-2::before, .fa-hourglass-half::before { content: "=EF=89=92";=
 }

.fa-microscope::before { content: "=EF=98=90"; }

.fa-sink::before { content: "=EE=81=AD"; }

.fa-bag-shopping::before, .fa-shopping-bag::before { content: "=EF=8A=90"; =
}

.fa-arrow-down-z-a::before, .fa-sort-alpha-desc::before, .fa-sort-alpha-dow=
n-alt::before { content: "=EF=A2=81"; }

.fa-mitten::before { content: "=EF=9E=B5"; }

.fa-person-rays::before { content: "=EE=95=8D"; }

.fa-users::before { content: "=EF=83=80"; }

.fa-eye-slash::before { content: "=EF=81=B0"; }

.fa-flask-vial::before { content: "=EE=93=B3"; }

.fa-hand-paper::before, .fa-hand::before { content: "=EF=89=96"; }

.fa-om::before { content: "=EF=99=B9"; }

.fa-worm::before { content: "=EE=96=99"; }

.fa-house-circle-xmark::before { content: "=EE=94=8B"; }

.fa-plug::before { content: "=EF=87=A6"; }

.fa-chevron-up::before { content: "=EF=81=B7"; }

.fa-hand-spock::before { content: "=EF=89=99"; }

.fa-stopwatch::before { content: "=EF=8B=B2"; }

.fa-face-kiss::before, .fa-kiss::before { content: "=EF=96=96"; }

.fa-bridge-circle-xmark::before { content: "=EE=93=8B"; }

.fa-face-grin-tongue::before, .fa-grin-tongue::before { content: "=EF=96=89=
"; }

.fa-chess-bishop::before { content: "=EF=90=BA"; }

.fa-face-grin-wink::before, .fa-grin-wink::before { content: "=EF=96=8C"; }

.fa-deaf::before, .fa-deafness::before, .fa-ear-deaf::before, .fa-hard-of-h=
earing::before { content: "=EF=8A=A4"; }

.fa-road-circle-check::before { content: "=EE=95=A4"; }

.fa-dice-five::before { content: "=EF=94=A3"; }

.fa-rss-square::before, .fa-square-rss::before { content: "=EF=85=83"; }

.fa-land-mine-on::before { content: "=EE=94=9B"; }

.fa-i-cursor::before { content: "=EF=89=86"; }

.fa-stamp::before { content: "=EF=96=BF"; }

.fa-stairs::before { content: "=EE=8A=89"; }

.fa-i::before { content: "I"; }

.fa-hryvnia-sign::before, .fa-hryvnia::before { content: "=EF=9B=B2"; }

.fa-pills::before { content: "=EF=92=84"; }

.fa-face-grin-wide::before, .fa-grin-alt::before { content: "=EF=96=81"; }

.fa-tooth::before { content: "=EF=97=89"; }

.fa-v::before { content: "V"; }

.fa-bangladeshi-taka-sign::before { content: "=EE=8B=A6"; }

.fa-bicycle::before { content: "=EF=88=86"; }

.fa-rod-asclepius::before, .fa-rod-snake::before, .fa-staff-aesculapius::be=
fore, .fa-staff-snake::before { content: "=EE=95=B9"; }

.fa-head-side-cough-slash::before { content: "=EE=81=A2"; }

.fa-ambulance::before, .fa-truck-medical::before { content: "=EF=83=B9"; }

.fa-wheat-awn-circle-exclamation::before { content: "=EE=96=98"; }

.fa-snowman::before { content: "=EF=9F=90"; }

.fa-mortar-pestle::before { content: "=EF=96=A7"; }

.fa-road-barrier::before { content: "=EE=95=A2"; }

.fa-school::before { content: "=EF=95=89"; }

.fa-igloo::before { content: "=EF=9E=AE"; }

.fa-joint::before { content: "=EF=96=95"; }

.fa-angle-right::before { content: "=EF=84=85"; }

.fa-horse::before { content: "=EF=9B=B0"; }

.fa-q::before { content: "Q"; }

.fa-g::before { content: "G"; }

.fa-notes-medical::before { content: "=EF=92=81"; }

.fa-temperature-2::before, .fa-temperature-half::before, .fa-thermometer-2:=
:before, .fa-thermometer-half::before { content: "=EF=8B=89"; }

.fa-dong-sign::before { content: "=EE=85=A9"; }

.fa-capsules::before { content: "=EF=91=AB"; }

.fa-poo-bolt::before, .fa-poo-storm::before { content: "=EF=9D=9A"; }

.fa-face-frown-open::before, .fa-frown-open::before { content: "=EF=95=BA";=
 }

.fa-hand-point-up::before { content: "=EF=82=A6"; }

.fa-money-bill::before { content: "=EF=83=96"; }

.fa-bookmark::before { content: "=EF=80=AE"; }

.fa-align-justify::before { content: "=EF=80=B9"; }

.fa-umbrella-beach::before { content: "=EF=97=8A"; }

.fa-helmet-un::before { content: "=EE=94=83"; }

.fa-bullseye::before { content: "=EF=85=80"; }

.fa-bacon::before { content: "=EF=9F=A5"; }

.fa-hand-point-down::before { content: "=EF=82=A7"; }

.fa-arrow-up-from-bracket::before { content: "=EE=82=9A"; }

.fa-folder-blank::before, .fa-folder::before { content: "=EF=81=BB"; }

.fa-file-medical-alt::before, .fa-file-waveform::before { content: "=EF=91=
=B8"; }

.fa-radiation::before { content: "=EF=9E=B9"; }

.fa-chart-simple::before { content: "=EE=91=B3"; }

.fa-mars-stroke::before { content: "=EF=88=A9"; }

.fa-vial::before { content: "=EF=92=92"; }

.fa-dashboard::before, .fa-gauge-med::before, .fa-gauge::before, .fa-tachom=
eter-alt-average::before { content: "=EF=98=A4"; }

.fa-magic-wand-sparkles::before, .fa-wand-magic-sparkles::before { content:=
 "=EE=8B=8A"; }

.fa-e::before { content: "E"; }

.fa-pen-alt::before, .fa-pen-clip::before { content: "=EF=8C=85"; }

.fa-bridge-circle-exclamation::before { content: "=EE=93=8A"; }

.fa-user::before { content: "=EF=80=87"; }

.fa-school-circle-check::before { content: "=EE=95=AB"; }

.fa-dumpster::before { content: "=EF=9E=93"; }

.fa-shuttle-van::before, .fa-van-shuttle::before { content: "=EF=96=B6"; }

.fa-building-user::before { content: "=EE=93=9A"; }

.fa-caret-square-left::before, .fa-square-caret-left::before { content: "=
=EF=86=91"; }

.fa-highlighter::before { content: "=EF=96=91"; }

.fa-key::before { content: "=EF=82=84"; }

.fa-bullhorn::before { content: "=EF=82=A1"; }

.fa-globe::before { content: "=EF=82=AC"; }

.fa-synagogue::before { content: "=EF=9A=9B"; }

.fa-person-half-dress::before { content: "=EE=95=88"; }

.fa-road-bridge::before { content: "=EE=95=A3"; }

.fa-location-arrow::before { content: "=EF=84=A4"; }

.fa-c::before { content: "C"; }

.fa-tablet-button::before { content: "=EF=84=8A"; }

.fa-building-lock::before { content: "=EE=93=96"; }

.fa-pizza-slice::before { content: "=EF=A0=98"; }

.fa-money-bill-wave::before { content: "=EF=94=BA"; }

.fa-area-chart::before, .fa-chart-area::before { content: "=EF=87=BE"; }

.fa-house-flag::before { content: "=EE=94=8D"; }

.fa-person-circle-minus::before { content: "=EE=95=80"; }

.fa-ban::before, .fa-cancel::before { content: "=EF=81=9E"; }

.fa-camera-rotate::before { content: "=EE=83=98"; }

.fa-air-freshener::before, .fa-spray-can-sparkles::before { content: "=EF=
=97=90"; }

.fa-star::before { content: "=EF=80=85"; }

.fa-repeat::before { content: "=EF=8D=A3"; }

.fa-cross::before { content: "=EF=99=94"; }

.fa-box::before { content: "=EF=91=A6"; }

.fa-venus-mars::before { content: "=EF=88=A8"; }

.fa-arrow-pointer::before, .fa-mouse-pointer::before { content: "=EF=89=85"=
; }

.fa-expand-arrows-alt::before, .fa-maximize::before { content: "=EF=8C=9E";=
 }

.fa-charging-station::before { content: "=EF=97=A7"; }

.fa-shapes::before, .fa-triangle-circle-square::before { content: "=EF=98=
=9F"; }

.fa-random::before, .fa-shuffle::before { content: "=EF=81=B4"; }

.fa-person-running::before, .fa-running::before { content: "=EF=9C=8C"; }

.fa-mobile-retro::before { content: "=EE=94=A7"; }

.fa-grip-lines-vertical::before { content: "=EF=9E=A5"; }

.fa-spider::before { content: "=EF=9C=97"; }

.fa-hands-bound::before { content: "=EE=93=B9"; }

.fa-file-invoice-dollar::before { content: "=EF=95=B1"; }

.fa-plane-circle-exclamation::before { content: "=EE=95=96"; }

.fa-x-ray::before { content: "=EF=92=97"; }

.fa-spell-check::before { content: "=EF=A2=91"; }

.fa-slash::before { content: "=EF=9C=95"; }

.fa-computer-mouse::before, .fa-mouse::before { content: "=EF=A3=8C"; }

.fa-arrow-right-to-bracket::before, .fa-sign-in::before { content: "=EF=82=
=90"; }

.fa-shop-slash::before, .fa-store-alt-slash::before { content: "=EE=81=B0";=
 }

.fa-server::before { content: "=EF=88=B3"; }

.fa-virus-covid-slash::before { content: "=EE=92=A9"; }

.fa-shop-lock::before { content: "=EE=92=A5"; }

.fa-hourglass-1::before, .fa-hourglass-start::before { content: "=EF=89=91"=
; }

.fa-blender-phone::before { content: "=EF=9A=B6"; }

.fa-building-wheat::before { content: "=EE=93=9B"; }

.fa-person-breastfeeding::before { content: "=EE=94=BA"; }

.fa-right-to-bracket::before, .fa-sign-in-alt::before { content: "=EF=8B=B6=
"; }

.fa-venus::before { content: "=EF=88=A1"; }

.fa-passport::before { content: "=EF=96=AB"; }

.fa-heart-pulse::before, .fa-heartbeat::before { content: "=EF=88=9E"; }

.fa-people-carry-box::before, .fa-people-carry::before { content: "=EF=93=
=8E"; }

.fa-temperature-high::before { content: "=EF=9D=A9"; }

.fa-microchip::before { content: "=EF=8B=9B"; }

.fa-crown::before { content: "=EF=94=A1"; }

.fa-weight-hanging::before { content: "=EF=97=8D"; }

.fa-xmarks-lines::before { content: "=EE=96=9A"; }

.fa-file-prescription::before { content: "=EF=95=B2"; }

.fa-weight-scale::before, .fa-weight::before { content: "=EF=92=96"; }

.fa-user-friends::before, .fa-user-group::before { content: "=EF=94=80"; }

.fa-arrow-up-a-z::before, .fa-sort-alpha-up::before { content: "=EF=85=9E";=
 }

.fa-chess-knight::before { content: "=EF=91=81"; }

.fa-face-laugh-squint::before, .fa-laugh-squint::before { content: "=EF=96=
=9B"; }

.fa-wheelchair::before { content: "=EF=86=93"; }

.fa-arrow-circle-up::before, .fa-circle-arrow-up::before { content: "=EF=82=
=AA"; }

.fa-toggle-on::before { content: "=EF=88=85"; }

.fa-person-walking::before, .fa-walking::before { content: "=EF=95=94"; }

.fa-l::before { content: "L"; }

.fa-fire::before { content: "=EF=81=AD"; }

.fa-bed-pulse::before, .fa-procedures::before { content: "=EF=92=87"; }

.fa-shuttle-space::before, .fa-space-shuttle::before { content: "=EF=86=97"=
; }

.fa-face-laugh::before, .fa-laugh::before { content: "=EF=96=99"; }

.fa-folder-open::before { content: "=EF=81=BC"; }

.fa-heart-circle-plus::before { content: "=EE=94=80"; }

.fa-code-fork::before { content: "=EE=84=BB"; }

.fa-city::before { content: "=EF=99=8F"; }

.fa-microphone-alt::before, .fa-microphone-lines::before { content: "=EF=8F=
=89"; }

.fa-pepper-hot::before { content: "=EF=A0=96"; }

.fa-unlock::before { content: "=EF=82=9C"; }

.fa-colon-sign::before { content: "=EE=85=80"; }

.fa-headset::before { content: "=EF=96=90"; }

.fa-store-slash::before { content: "=EE=81=B1"; }

.fa-road-circle-xmark::before { content: "=EE=95=A6"; }

.fa-user-minus::before { content: "=EF=94=83"; }

.fa-mars-stroke-up::before, .fa-mars-stroke-v::before { content: "=EF=88=AA=
"; }

.fa-champagne-glasses::before, .fa-glass-cheers::before { content: "=EF=9E=
=9F"; }

.fa-clipboard::before { content: "=EF=8C=A8"; }

.fa-house-circle-exclamation::before { content: "=EE=94=8A"; }

.fa-file-arrow-up::before, .fa-file-upload::before { content: "=EF=95=B4"; =
}

.fa-wifi-3::before, .fa-wifi-strong::before, .fa-wifi::before { content: "=
=EF=87=AB"; }

.fa-bath::before, .fa-bathtub::before { content: "=EF=8B=8D"; }

.fa-underline::before { content: "=EF=83=8D"; }

.fa-user-edit::before, .fa-user-pen::before { content: "=EF=93=BF"; }

.fa-signature::before { content: "=EF=96=B7"; }

.fa-stroopwafel::before { content: "=EF=95=91"; }

.fa-bold::before { content: "=EF=80=B2"; }

.fa-anchor-lock::before { content: "=EE=92=AD"; }

.fa-building-ngo::before { content: "=EE=93=97"; }

.fa-manat-sign::before { content: "=EE=87=95"; }

.fa-not-equal::before { content: "=EF=94=BE"; }

.fa-border-style::before, .fa-border-top-left::before { content: "=EF=A1=93=
"; }

.fa-map-location-dot::before, .fa-map-marked-alt::before { content: "=EF=96=
=A0"; }

.fa-jedi::before { content: "=EF=99=A9"; }

.fa-poll::before, .fa-square-poll-vertical::before { content: "=EF=9A=81"; =
}

.fa-mug-hot::before { content: "=EF=9E=B6"; }

.fa-battery-car::before, .fa-car-battery::before { content: "=EF=97=9F"; }

.fa-gift::before { content: "=EF=81=AB"; }

.fa-dice-two::before { content: "=EF=94=A8"; }

.fa-chess-queen::before { content: "=EF=91=85"; }

.fa-glasses::before { content: "=EF=94=B0"; }

.fa-chess-board::before { content: "=EF=90=BC"; }

.fa-building-circle-check::before { content: "=EE=93=92"; }

.fa-person-chalkboard::before { content: "=EE=94=BD"; }

.fa-mars-stroke-h::before, .fa-mars-stroke-right::before { content: "=EF=88=
=AB"; }

.fa-hand-back-fist::before, .fa-hand-rock::before { content: "=EF=89=95"; }

.fa-caret-square-up::before, .fa-square-caret-up::before { content: "=EF=85=
=91"; }

.fa-cloud-showers-water::before { content: "=EE=93=A4"; }

.fa-bar-chart::before, .fa-chart-bar::before { content: "=EF=82=80"; }

.fa-hands-bubbles::before, .fa-hands-wash::before { content: "=EE=81=9E"; }

.fa-less-than-equal::before { content: "=EF=94=B7"; }

.fa-train::before { content: "=EF=88=B8"; }

.fa-eye-low-vision::before, .fa-low-vision::before { content: "=EF=8A=A8"; =
}

.fa-crow::before { content: "=EF=94=A0"; }

.fa-sailboat::before { content: "=EE=91=85"; }

.fa-window-restore::before { content: "=EF=8B=92"; }

.fa-plus-square::before, .fa-square-plus::before { content: "=EF=83=BE"; }

.fa-torii-gate::before { content: "=EF=9A=A1"; }

.fa-frog::before { content: "=EF=94=AE"; }

.fa-bucket::before { content: "=EE=93=8F"; }

.fa-image::before { content: "=EF=80=BE"; }

.fa-microphone::before { content: "=EF=84=B0"; }

.fa-cow::before { content: "=EF=9B=88"; }

.fa-caret-up::before { content: "=EF=83=98"; }

.fa-screwdriver::before { content: "=EF=95=8A"; }

.fa-folder-closed::before { content: "=EE=86=85"; }

.fa-house-tsunami::before { content: "=EE=94=95"; }

.fa-square-nfi::before { content: "=EE=95=B6"; }

.fa-arrow-up-from-ground-water::before { content: "=EE=92=B5"; }

.fa-glass-martini-alt::before, .fa-martini-glass::before { content: "=EF=95=
=BB"; }

.fa-rotate-back::before, .fa-rotate-backward::before, .fa-rotate-left::befo=
re, .fa-undo-alt::before { content: "=EF=8B=AA"; }

.fa-columns::before, .fa-table-columns::before { content: "=EF=83=9B"; }

.fa-lemon::before { content: "=EF=82=94"; }

.fa-head-side-mask::before { content: "=EE=81=A3"; }

.fa-handshake::before { content: "=EF=8A=B5"; }

.fa-gem::before { content: "=EF=8E=A5"; }

.fa-dolly-box::before, .fa-dolly::before { content: "=EF=91=B2"; }

.fa-smoking::before { content: "=EF=92=8D"; }

.fa-compress-arrows-alt::before, .fa-minimize::before { content: "=EF=9E=8C=
"; }

.fa-monument::before { content: "=EF=96=A6"; }

.fa-snowplow::before { content: "=EF=9F=92"; }

.fa-angle-double-right::before, .fa-angles-right::before { content: "=EF=84=
=81"; }

.fa-cannabis::before { content: "=EF=95=9F"; }

.fa-circle-play::before, .fa-play-circle::before { content: "=EF=85=84"; }

.fa-tablets::before { content: "=EF=92=90"; }

.fa-ethernet::before { content: "=EF=9E=96"; }

.fa-eur::before, .fa-euro-sign::before, .fa-euro::before { content: "=EF=85=
=93"; }

.fa-chair::before { content: "=EF=9B=80"; }

.fa-check-circle::before, .fa-circle-check::before { content: "=EF=81=98"; =
}

.fa-circle-stop::before, .fa-stop-circle::before { content: "=EF=8A=8D"; }

.fa-compass-drafting::before, .fa-drafting-compass::before { content: "=EF=
=95=A8"; }

.fa-plate-wheat::before { content: "=EE=95=9A"; }

.fa-icicles::before { content: "=EF=9E=AD"; }

.fa-person-shelter::before { content: "=EE=95=8F"; }

.fa-neuter::before { content: "=EF=88=AC"; }

.fa-id-badge::before { content: "=EF=8B=81"; }

.fa-marker::before { content: "=EF=96=A1"; }

.fa-face-laugh-beam::before, .fa-laugh-beam::before { content: "=EF=96=9A";=
 }

.fa-helicopter-symbol::before { content: "=EE=94=82"; }

.fa-universal-access::before { content: "=EF=8A=9A"; }

.fa-chevron-circle-up::before, .fa-circle-chevron-up::before { content: "=
=EF=84=B9"; }

.fa-lari-sign::before { content: "=EE=87=88"; }

.fa-volcano::before { content: "=EF=9D=B0"; }

.fa-person-walking-dashed-line-arrow-right::before { content: "=EE=95=93"; =
}

.fa-gbp::before, .fa-pound-sign::before, .fa-sterling-sign::before { conten=
t: "=EF=85=94"; }

.fa-viruses::before { content: "=EE=81=B6"; }

.fa-square-person-confined::before { content: "=EE=95=B7"; }

.fa-user-tie::before { content: "=EF=94=88"; }

.fa-arrow-down-long::before, .fa-long-arrow-down::before { content: "=EF=85=
=B5"; }

.fa-tent-arrow-down-to-line::before { content: "=EE=95=BE"; }

.fa-certificate::before { content: "=EF=82=A3"; }

.fa-mail-reply-all::before, .fa-reply-all::before { content: "=EF=84=A2"; }

.fa-suitcase::before { content: "=EF=83=B2"; }

.fa-person-skating::before, .fa-skating::before { content: "=EF=9F=85"; }

.fa-filter-circle-dollar::before, .fa-funnel-dollar::before { content: "=EF=
=99=A2"; }

.fa-camera-retro::before { content: "=EF=82=83"; }

.fa-arrow-circle-down::before, .fa-circle-arrow-down::before { content: "=
=EF=82=AB"; }

.fa-arrow-right-to-file::before, .fa-file-import::before { content: "=EF=95=
=AF"; }

.fa-external-link-square::before, .fa-square-arrow-up-right::before { conte=
nt: "=EF=85=8C"; }

.fa-box-open::before { content: "=EF=92=9E"; }

.fa-scroll::before { content: "=EF=9C=8E"; }

.fa-spa::before { content: "=EF=96=BB"; }

.fa-location-pin-lock::before { content: "=EE=94=9F"; }

.fa-pause::before { content: "=EF=81=8C"; }

.fa-hill-avalanche::before { content: "=EE=94=87"; }

.fa-temperature-0::before, .fa-temperature-empty::before, .fa-thermometer-0=
::before, .fa-thermometer-empty::before { content: "=EF=8B=8B"; }

.fa-bomb::before { content: "=EF=87=A2"; }

.fa-registered::before { content: "=EF=89=9D"; }

.fa-address-card::before, .fa-contact-card::before, .fa-vcard::before { con=
tent: "=EF=8A=BB"; }

.fa-balance-scale-right::before, .fa-scale-unbalanced-flip::before { conten=
t: "=EF=94=96"; }

.fa-subscript::before { content: "=EF=84=AC"; }

.fa-diamond-turn-right::before, .fa-directions::before { content: "=EF=97=
=AB"; }

.fa-burst::before { content: "=EE=93=9C"; }

.fa-house-laptop::before, .fa-laptop-house::before { content: "=EE=81=A6"; =
}

.fa-face-tired::before, .fa-tired::before { content: "=EF=97=88"; }

.fa-money-bills::before { content: "=EE=87=B3"; }

.fa-smog::before { content: "=EF=9D=9F"; }

.fa-crutch::before { content: "=EF=9F=B7"; }

.fa-cloud-arrow-up::before, .fa-cloud-upload-alt::before, .fa-cloud-upload:=
:before { content: "=EF=83=AE"; }

.fa-palette::before { content: "=EF=94=BF"; }

.fa-arrows-turn-right::before { content: "=EE=93=80"; }

.fa-vest::before { content: "=EE=82=85"; }

.fa-ferry::before { content: "=EE=93=AA"; }

.fa-arrows-down-to-people::before { content: "=EE=92=B9"; }

.fa-seedling::before, .fa-sprout::before { content: "=EF=93=98"; }

.fa-arrows-alt-h::before, .fa-left-right::before { content: "=EF=8C=B7"; }

.fa-boxes-packing::before { content: "=EE=93=87"; }

.fa-arrow-circle-left::before, .fa-circle-arrow-left::before { content: "=
=EF=82=A8"; }

.fa-group-arrows-rotate::before { content: "=EE=93=B6"; }

.fa-bowl-food::before { content: "=EE=93=86"; }

.fa-candy-cane::before { content: "=EF=9E=86"; }

.fa-arrow-down-wide-short::before, .fa-sort-amount-asc::before, .fa-sort-am=
ount-down::before { content: "=EF=85=A0"; }

.fa-cloud-bolt::before, .fa-thunderstorm::before { content: "=EF=9D=AC"; }

.fa-remove-format::before, .fa-text-slash::before { content: "=EF=A1=BD"; }

.fa-face-smile-wink::before, .fa-smile-wink::before { content: "=EF=93=9A";=
 }

.fa-file-word::before { content: "=EF=87=82"; }

.fa-file-powerpoint::before { content: "=EF=87=84"; }

.fa-arrows-h::before, .fa-arrows-left-right::before { content: "=EF=81=BE";=
 }

.fa-house-lock::before { content: "=EE=94=90"; }

.fa-cloud-arrow-down::before, .fa-cloud-download-alt::before, .fa-cloud-dow=
nload::before { content: "=EF=83=AD"; }

.fa-children::before { content: "=EE=93=A1"; }

.fa-blackboard::before, .fa-chalkboard::before { content: "=EF=94=9B"; }

.fa-user-alt-slash::before, .fa-user-large-slash::before { content: "=EF=93=
=BA"; }

.fa-envelope-open::before { content: "=EF=8A=B6"; }

.fa-handshake-alt-slash::before, .fa-handshake-simple-slash::before { conte=
nt: "=EE=81=9F"; }

.fa-mattress-pillow::before { content: "=EE=94=A5"; }

.fa-guarani-sign::before { content: "=EE=86=9A"; }

.fa-arrows-rotate::before, .fa-refresh::before, .fa-sync::before { content:=
 "=EF=80=A1"; }

.fa-fire-extinguisher::before { content: "=EF=84=B4"; }

.fa-cruzeiro-sign::before { content: "=EE=85=92"; }

.fa-greater-than-equal::before { content: "=EF=94=B2"; }

.fa-shield-alt::before, .fa-shield-halved::before { content: "=EF=8F=AD"; }

.fa-atlas::before, .fa-book-atlas::before { content: "=EF=95=98"; }

.fa-virus::before { content: "=EE=81=B4"; }

.fa-envelope-circle-check::before { content: "=EE=93=A8"; }

.fa-layer-group::before { content: "=EF=97=BD"; }

.fa-arrows-to-dot::before { content: "=EE=92=BE"; }

.fa-archway::before { content: "=EF=95=97"; }

.fa-heart-circle-check::before { content: "=EE=93=BD"; }

.fa-house-chimney-crack::before, .fa-house-damage::before { content: "=EF=
=9B=B1"; }

.fa-file-archive::before, .fa-file-zipper::before { content: "=EF=87=86"; }

.fa-square::before { content: "=EF=83=88"; }

.fa-glass-martini::before, .fa-martini-glass-empty::before { content: "=EF=
=80=80"; }

.fa-couch::before { content: "=EF=92=B8"; }

.fa-cedi-sign::before { content: "=EE=83=9F"; }

.fa-italic::before { content: "=EF=80=B3"; }

.fa-church::before { content: "=EF=94=9D"; }

.fa-comments-dollar::before { content: "=EF=99=93"; }

.fa-democrat::before { content: "=EF=9D=87"; }

.fa-z::before { content: "Z"; }

.fa-person-skiing::before, .fa-skiing::before { content: "=EF=9F=89"; }

.fa-road-lock::before { content: "=EE=95=A7"; }

.fa-a::before { content: "A"; }

.fa-temperature-arrow-down::before, .fa-temperature-down::before { content:=
 "=EE=80=BF"; }

.fa-feather-alt::before, .fa-feather-pointed::before { content: "=EF=95=AB"=
; }

.fa-p::before { content: "P"; }

.fa-snowflake::before { content: "=EF=8B=9C"; }

.fa-newspaper::before { content: "=EF=87=AA"; }

.fa-ad::before, .fa-rectangle-ad::before { content: "=EF=99=81"; }

.fa-arrow-circle-right::before, .fa-circle-arrow-right::before { content: "=
=EF=82=A9"; }

.fa-filter-circle-xmark::before { content: "=EE=85=BB"; }

.fa-locust::before { content: "=EE=94=A0"; }

.fa-sort::before, .fa-unsorted::before { content: "=EF=83=9C"; }

.fa-list-1-2::before, .fa-list-numeric::before, .fa-list-ol::before { conte=
nt: "=EF=83=8B"; }

.fa-person-dress-burst::before { content: "=EE=95=84"; }

.fa-money-check-alt::before, .fa-money-check-dollar::before { content: "=EF=
=94=BD"; }

.fa-vector-square::before { content: "=EF=97=8B"; }

.fa-bread-slice::before { content: "=EF=9F=AC"; }

.fa-language::before { content: "=EF=86=AB"; }

.fa-face-kiss-wink-heart::before, .fa-kiss-wink-heart::before { content: "=
=EF=96=98"; }

.fa-filter::before { content: "=EF=82=B0"; }

.fa-question::before { content: "?"; }

.fa-file-signature::before { content: "=EF=95=B3"; }

.fa-arrows-alt::before, .fa-up-down-left-right::before { content: "=EF=82=
=B2"; }

.fa-house-chimney-user::before { content: "=EE=81=A5"; }

.fa-hand-holding-heart::before { content: "=EF=92=BE"; }

.fa-puzzle-piece::before { content: "=EF=84=AE"; }

.fa-money-check::before { content: "=EF=94=BC"; }

.fa-star-half-alt::before, .fa-star-half-stroke::before { content: "=EF=97=
=80"; }

.fa-code::before { content: "=EF=84=A1"; }

.fa-glass-whiskey::before, .fa-whiskey-glass::before { content: "=EF=9E=A0"=
; }

.fa-building-circle-exclamation::before { content: "=EE=93=93"; }

.fa-magnifying-glass-chart::before { content: "=EE=94=A2"; }

.fa-arrow-up-right-from-square::before, .fa-external-link::before { content=
: "=EF=82=8E"; }

.fa-cubes-stacked::before { content: "=EE=93=A6"; }

.fa-krw::before, .fa-won-sign::before, .fa-won::before { content: "=EF=85=
=99"; }

.fa-virus-covid::before { content: "=EE=92=A8"; }

.fa-austral-sign::before { content: "=EE=82=A9"; }

.fa-f::before { content: "F"; }

.fa-leaf::before { content: "=EF=81=AC"; }

.fa-road::before { content: "=EF=80=98"; }

.fa-cab::before, .fa-taxi::before { content: "=EF=86=BA"; }

.fa-person-circle-plus::before { content: "=EE=95=81"; }

.fa-chart-pie::before, .fa-pie-chart::before { content: "=EF=88=80"; }

.fa-bolt-lightning::before { content: "=EE=82=B7"; }

.fa-sack-xmark::before { content: "=EE=95=AA"; }

.fa-file-excel::before { content: "=EF=87=83"; }

.fa-file-contract::before { content: "=EF=95=AC"; }

.fa-fish-fins::before { content: "=EE=93=B2"; }

.fa-building-flag::before { content: "=EE=93=95"; }

.fa-face-grin-beam::before, .fa-grin-beam::before { content: "=EF=96=82"; }

.fa-object-ungroup::before { content: "=EF=89=88"; }

.fa-poop::before { content: "=EF=98=99"; }

.fa-location-pin::before, .fa-map-marker::before { content: "=EF=81=81"; }

.fa-kaaba::before { content: "=EF=99=AB"; }

.fa-toilet-paper::before { content: "=EF=9C=9E"; }

.fa-hard-hat::before, .fa-hat-hard::before, .fa-helmet-safety::before { con=
tent: "=EF=A0=87"; }

.fa-eject::before { content: "=EF=81=92"; }

.fa-arrow-alt-circle-right::before, .fa-circle-right::before { content: "=
=EF=8D=9A"; }

.fa-plane-circle-check::before { content: "=EE=95=95"; }

.fa-face-rolling-eyes::before, .fa-meh-rolling-eyes::before { content: "=EF=
=96=A5"; }

.fa-object-group::before { content: "=EF=89=87"; }

.fa-chart-line::before, .fa-line-chart::before { content: "=EF=88=81"; }

.fa-mask-ventilator::before { content: "=EE=94=A4"; }

.fa-arrow-right::before { content: "=EF=81=A1"; }

.fa-map-signs::before, .fa-signs-post::before { content: "=EF=89=B7"; }

.fa-cash-register::before { content: "=EF=9E=88"; }

.fa-person-circle-question::before { content: "=EE=95=82"; }

.fa-h::before { content: "H"; }

.fa-tarp::before { content: "=EE=95=BB"; }

.fa-screwdriver-wrench::before, .fa-tools::before { content: "=EF=9F=99"; }

.fa-arrows-to-eye::before { content: "=EE=92=BF"; }

.fa-plug-circle-bolt::before { content: "=EE=95=9B"; }

.fa-heart::before { content: "=EF=80=84"; }

.fa-mars-and-venus::before { content: "=EF=88=A4"; }

.fa-home-user::before, .fa-house-user::before { content: "=EE=86=B0"; }

.fa-dumpster-fire::before { content: "=EF=9E=94"; }

.fa-house-crack::before { content: "=EE=8E=B1"; }

.fa-cocktail::before, .fa-martini-glass-citrus::before { content: "=EF=95=
=A1"; }

.fa-face-surprise::before, .fa-surprise::before { content: "=EF=97=82"; }

.fa-bottle-water::before { content: "=EE=93=85"; }

.fa-circle-pause::before, .fa-pause-circle::before { content: "=EF=8A=8B"; =
}

.fa-toilet-paper-slash::before { content: "=EE=81=B2"; }

.fa-apple-alt::before, .fa-apple-whole::before { content: "=EF=97=91"; }

.fa-kitchen-set::before { content: "=EE=94=9A"; }

.fa-r::before { content: "R"; }

.fa-temperature-1::before, .fa-temperature-quarter::before, .fa-thermometer=
-1::before, .fa-thermometer-quarter::before { content: "=EF=8B=8A"; }

.fa-cube::before { content: "=EF=86=B2"; }

.fa-bitcoin-sign::before { content: "=EE=82=B4"; }

.fa-shield-dog::before { content: "=EE=95=B3"; }

.fa-solar-panel::before { content: "=EF=96=BA"; }

.fa-lock-open::before { content: "=EF=8F=81"; }

.fa-elevator::before { content: "=EE=85=AD"; }

.fa-money-bill-transfer::before { content: "=EE=94=A8"; }

.fa-money-bill-trend-up::before { content: "=EE=94=A9"; }

.fa-house-flood-water-circle-arrow-right::before { content: "=EE=94=8F"; }

.fa-poll-h::before, .fa-square-poll-horizontal::before { content: "=EF=9A=
=82"; }

.fa-circle::before { content: "=EF=84=91"; }

.fa-backward-fast::before, .fa-fast-backward::before { content: "=EF=81=89"=
; }

.fa-recycle::before { content: "=EF=86=B8"; }

.fa-user-astronaut::before { content: "=EF=93=BB"; }

.fa-plane-slash::before { content: "=EE=81=A9"; }

.fa-trademark::before { content: "=EF=89=9C"; }

.fa-basketball-ball::before, .fa-basketball::before { content: "=EF=90=B4";=
 }

.fa-satellite-dish::before { content: "=EF=9F=80"; }

.fa-arrow-alt-circle-up::before, .fa-circle-up::before { content: "=EF=8D=
=9B"; }

.fa-mobile-alt::before, .fa-mobile-screen-button::before { content: "=EF=8F=
=8D"; }

.fa-volume-high::before, .fa-volume-up::before { content: "=EF=80=A8"; }

.fa-users-rays::before { content: "=EE=96=93"; }

.fa-wallet::before { content: "=EF=95=95"; }

.fa-clipboard-check::before { content: "=EF=91=AC"; }

.fa-file-audio::before { content: "=EF=87=87"; }

.fa-burger::before, .fa-hamburger::before { content: "=EF=A0=85"; }

.fa-wrench::before { content: "=EF=82=AD"; }

.fa-bugs::before { content: "=EE=93=90"; }

.fa-rupee-sign::before, .fa-rupee::before { content: "=EF=85=96"; }

.fa-file-image::before { content: "=EF=87=85"; }

.fa-circle-question::before, .fa-question-circle::before { content: "=EF=81=
=99"; }

.fa-plane-departure::before { content: "=EF=96=B0"; }

.fa-handshake-slash::before { content: "=EE=81=A0"; }

.fa-book-bookmark::before { content: "=EE=82=BB"; }

.fa-code-branch::before { content: "=EF=84=A6"; }

.fa-hat-cowboy::before { content: "=EF=A3=80"; }

.fa-bridge::before { content: "=EE=93=88"; }

.fa-phone-alt::before, .fa-phone-flip::before { content: "=EF=A1=B9"; }

.fa-truck-front::before { content: "=EE=8A=B7"; }

.fa-cat::before { content: "=EF=9A=BE"; }

.fa-anchor-circle-exclamation::before { content: "=EE=92=AB"; }

.fa-truck-field::before { content: "=EE=96=8D"; }

.fa-route::before { content: "=EF=93=97"; }

.fa-clipboard-question::before { content: "=EE=93=A3"; }

.fa-panorama::before { content: "=EE=88=89"; }

.fa-comment-medical::before { content: "=EF=9F=B5"; }

.fa-teeth-open::before { content: "=EF=98=AF"; }

.fa-file-circle-minus::before { content: "=EE=93=AD"; }

.fa-tags::before { content: "=EF=80=AC"; }

.fa-wine-glass::before { content: "=EF=93=A3"; }

.fa-fast-forward::before, .fa-forward-fast::before { content: "=EF=81=90"; =
}

.fa-face-meh-blank::before, .fa-meh-blank::before { content: "=EF=96=A4"; }

.fa-parking::before, .fa-square-parking::before { content: "=EF=95=80"; }

.fa-house-signal::before { content: "=EE=80=92"; }

.fa-bars-progress::before, .fa-tasks-alt::before { content: "=EF=A0=A8"; }

.fa-faucet-drip::before { content: "=EE=80=86"; }

.fa-cart-flatbed::before, .fa-dolly-flatbed::before { content: "=EF=91=B4";=
 }

.fa-ban-smoking::before, .fa-smoking-ban::before { content: "=EF=95=8D"; }

.fa-terminal::before { content: "=EF=84=A0"; }

.fa-mobile-button::before { content: "=EF=84=8B"; }

.fa-house-medical-flag::before { content: "=EE=94=94"; }

.fa-basket-shopping::before, .fa-shopping-basket::before { content: "=EF=8A=
=91"; }

.fa-tape::before { content: "=EF=93=9B"; }

.fa-bus-alt::before, .fa-bus-simple::before { content: "=EF=95=9E"; }

.fa-eye::before { content: "=EF=81=AE"; }

.fa-face-sad-cry::before, .fa-sad-cry::before { content: "=EF=96=B3"; }

.fa-audio-description::before { content: "=EF=8A=9E"; }

.fa-person-military-to-person::before { content: "=EE=95=8C"; }

.fa-file-shield::before { content: "=EE=93=B0"; }

.fa-user-slash::before { content: "=EF=94=86"; }

.fa-pen::before { content: "=EF=8C=84"; }

.fa-tower-observation::before { content: "=EE=96=86"; }

.fa-file-code::before { content: "=EF=87=89"; }

.fa-signal-5::before, .fa-signal-perfect::before, .fa-signal::before { cont=
ent: "=EF=80=92"; }

.fa-bus::before { content: "=EF=88=87"; }

.fa-heart-circle-xmark::before { content: "=EE=94=81"; }

.fa-home-lg::before, .fa-house-chimney::before { content: "=EE=8E=AF"; }

.fa-window-maximize::before { content: "=EF=8B=90"; }

.fa-face-frown::before, .fa-frown::before { content: "=EF=84=99"; }

.fa-prescription::before { content: "=EF=96=B1"; }

.fa-shop::before, .fa-store-alt::before { content: "=EF=95=8F"; }

.fa-floppy-disk::before, .fa-save::before { content: "=EF=83=87"; }

.fa-vihara::before { content: "=EF=9A=A7"; }

.fa-balance-scale-left::before, .fa-scale-unbalanced::before { content: "=
=EF=94=95"; }

.fa-sort-asc::before, .fa-sort-up::before { content: "=EF=83=9E"; }

.fa-comment-dots::before, .fa-commenting::before { content: "=EF=92=AD"; }

.fa-plant-wilt::before { content: "=EE=96=AA"; }

.fa-diamond::before { content: "=EF=88=99"; }

.fa-face-grin-squint::before, .fa-grin-squint::before { content: "=EF=96=85=
"; }

.fa-hand-holding-dollar::before, .fa-hand-holding-usd::before { content: "=
=EF=93=80"; }

.fa-bacterium::before { content: "=EE=81=9A"; }

.fa-hand-pointer::before { content: "=EF=89=9A"; }

.fa-drum-steelpan::before { content: "=EF=95=AA"; }

.fa-hand-scissors::before { content: "=EF=89=97"; }

.fa-hands-praying::before, .fa-praying-hands::before { content: "=EF=9A=84"=
; }

.fa-arrow-right-rotate::before, .fa-arrow-rotate-forward::before, .fa-arrow=
-rotate-right::before, .fa-redo::before { content: "=EF=80=9E"; }

.fa-biohazard::before { content: "=EF=9E=80"; }

.fa-location-crosshairs::before, .fa-location::before { content: "=EF=98=81=
"; }

.fa-mars-double::before { content: "=EF=88=A7"; }

.fa-child-dress::before { content: "=EE=96=9C"; }

.fa-users-between-lines::before { content: "=EE=96=91"; }

.fa-lungs-virus::before { content: "=EE=81=A7"; }

.fa-face-grin-tears::before, .fa-grin-tears::before { content: "=EF=96=88";=
 }

.fa-phone::before { content: "=EF=82=95"; }

.fa-calendar-times::before, .fa-calendar-xmark::before { content: "=EF=89=
=B3"; }

.fa-child-reaching::before { content: "=EE=96=9D"; }

.fa-head-side-virus::before { content: "=EE=81=A4"; }

.fa-user-cog::before, .fa-user-gear::before { content: "=EF=93=BE"; }

.fa-arrow-up-1-9::before, .fa-sort-numeric-up::before { content: "=EF=85=A3=
"; }

.fa-door-closed::before { content: "=EF=94=AA"; }

.fa-shield-virus::before { content: "=EE=81=AC"; }

.fa-dice-six::before { content: "=EF=94=A6"; }

.fa-mosquito-net::before { content: "=EE=94=AC"; }

.fa-bridge-water::before { content: "=EE=93=8E"; }

.fa-person-booth::before { content: "=EF=9D=96"; }

.fa-text-width::before { content: "=EF=80=B5"; }

.fa-hat-wizard::before { content: "=EF=9B=A8"; }

.fa-pen-fancy::before { content: "=EF=96=AC"; }

.fa-digging::before, .fa-person-digging::before { content: "=EF=A1=9E"; }

.fa-trash::before { content: "=EF=87=B8"; }

.fa-gauge-simple-med::before, .fa-gauge-simple::before, .fa-tachometer-aver=
age::before { content: "=EF=98=A9"; }

.fa-book-medical::before { content: "=EF=9F=A6"; }

.fa-poo::before { content: "=EF=8B=BE"; }

.fa-quote-right-alt::before, .fa-quote-right::before { content: "=EF=84=8E"=
; }

.fa-shirt::before, .fa-t-shirt::before, .fa-tshirt::before { content: "=EF=
=95=93"; }

.fa-cubes::before { content: "=EF=86=B3"; }

.fa-divide::before { content: "=EF=94=A9"; }

.fa-tenge-sign::before, .fa-tenge::before { content: "=EF=9F=97"; }

.fa-headphones::before { content: "=EF=80=A5"; }

.fa-hands-holding::before { content: "=EF=93=82"; }

.fa-hands-clapping::before { content: "=EE=86=A8"; }

.fa-republican::before { content: "=EF=9D=9E"; }

.fa-arrow-left::before { content: "=EF=81=A0"; }

.fa-person-circle-xmark::before { content: "=EE=95=83"; }

.fa-ruler::before { content: "=EF=95=85"; }

.fa-align-left::before { content: "=EF=80=B6"; }

.fa-dice-d6::before { content: "=EF=9B=91"; }

.fa-restroom::before { content: "=EF=9E=BD"; }

.fa-j::before { content: "J"; }

.fa-users-viewfinder::before { content: "=EE=96=95"; }

.fa-file-video::before { content: "=EF=87=88"; }

.fa-external-link-alt::before, .fa-up-right-from-square::before { content: =
"=EF=8D=9D"; }

.fa-table-cells::before, .fa-th::before { content: "=EF=80=8A"; }

.fa-file-pdf::before { content: "=EF=87=81"; }

.fa-bible::before, .fa-book-bible::before { content: "=EF=99=87"; }

.fa-o::before { content: "O"; }

.fa-medkit::before, .fa-suitcase-medical::before { content: "=EF=83=BA"; }

.fa-user-secret::before { content: "=EF=88=9B"; }

.fa-otter::before { content: "=EF=9C=80"; }

.fa-female::before, .fa-person-dress::before { content: "=EF=86=82"; }

.fa-comment-dollar::before { content: "=EF=99=91"; }

.fa-briefcase-clock::before, .fa-business-time::before { content: "=EF=99=
=8A"; }

.fa-table-cells-large::before, .fa-th-large::before { content: "=EF=80=89";=
 }

.fa-book-tanakh::before, .fa-tanakh::before { content: "=EF=A0=A7"; }

.fa-phone-volume::before, .fa-volume-control-phone::before { content: "=EF=
=8A=A0"; }

.fa-hat-cowboy-side::before { content: "=EF=A3=81"; }

.fa-clipboard-user::before { content: "=EF=9F=B3"; }

.fa-child::before { content: "=EF=86=AE"; }

.fa-lira-sign::before { content: "=EF=86=95"; }

.fa-satellite::before { content: "=EF=9E=BF"; }

.fa-plane-lock::before { content: "=EE=95=98"; }

.fa-tag::before { content: "=EF=80=AB"; }

.fa-comment::before { content: "=EF=81=B5"; }

.fa-birthday-cake::before, .fa-cake-candles::before, .fa-cake::before { con=
tent: "=EF=87=BD"; }

.fa-envelope::before { content: "=EF=83=A0"; }

.fa-angle-double-up::before, .fa-angles-up::before { content: "=EF=84=82"; =
}

.fa-paperclip::before { content: "=EF=83=86"; }

.fa-arrow-right-to-city::before { content: "=EE=92=B3"; }

.fa-ribbon::before { content: "=EF=93=96"; }

.fa-lungs::before { content: "=EF=98=84"; }

.fa-arrow-up-9-1::before, .fa-sort-numeric-up-alt::before { content: "=EF=
=A2=87"; }

.fa-litecoin-sign::before { content: "=EE=87=93"; }

.fa-border-none::before { content: "=EF=A1=90"; }

.fa-circle-nodes::before { content: "=EE=93=A2"; }

.fa-parachute-box::before { content: "=EF=93=8D"; }

.fa-indent::before { content: "=EF=80=BC"; }

.fa-truck-field-un::before { content: "=EE=96=8E"; }

.fa-hourglass-empty::before, .fa-hourglass::before { content: "=EF=89=94"; =
}

.fa-mountain::before { content: "=EF=9B=BC"; }

.fa-user-doctor::before, .fa-user-md::before { content: "=EF=83=B0"; }

.fa-circle-info::before, .fa-info-circle::before { content: "=EF=81=9A"; }

.fa-cloud-meatball::before { content: "=EF=9C=BB"; }

.fa-camera-alt::before, .fa-camera::before { content: "=EF=80=B0"; }

.fa-square-virus::before { content: "=EE=95=B8"; }

.fa-meteor::before { content: "=EF=9D=93"; }

.fa-car-on::before { content: "=EE=93=9D"; }

.fa-sleigh::before { content: "=EF=9F=8C"; }

.fa-arrow-down-1-9::before, .fa-sort-numeric-asc::before, .fa-sort-numeric-=
down::before { content: "=EF=85=A2"; }

.fa-hand-holding-droplet::before, .fa-hand-holding-water::before { content:=
 "=EF=93=81"; }

.fa-water::before { content: "=EF=9D=B3"; }

.fa-calendar-check::before { content: "=EF=89=B4"; }

.fa-braille::before { content: "=EF=8A=A1"; }

.fa-prescription-bottle-alt::before, .fa-prescription-bottle-medical::befor=
e { content: "=EF=92=86"; }

.fa-landmark::before { content: "=EF=99=AF"; }

.fa-truck::before { content: "=EF=83=91"; }

.fa-crosshairs::before { content: "=EF=81=9B"; }

.fa-person-cane::before { content: "=EE=94=BC"; }

.fa-tent::before { content: "=EE=95=BD"; }

.fa-vest-patches::before { content: "=EE=82=86"; }

.fa-check-double::before { content: "=EF=95=A0"; }

.fa-arrow-down-a-z::before, .fa-sort-alpha-asc::before, .fa-sort-alpha-down=
::before { content: "=EF=85=9D"; }

.fa-money-bill-wheat::before { content: "=EE=94=AA"; }

.fa-cookie::before { content: "=EF=95=A3"; }

.fa-arrow-left-rotate::before, .fa-arrow-rotate-back::before, .fa-arrow-rot=
ate-backward::before, .fa-arrow-rotate-left::before, .fa-undo::before { con=
tent: "=EF=83=A2"; }

.fa-hard-drive::before, .fa-hdd::before { content: "=EF=82=A0"; }

.fa-face-grin-squint-tears::before, .fa-grin-squint-tears::before { content=
: "=EF=96=86"; }

.fa-dumbbell::before { content: "=EF=91=8B"; }

.fa-list-alt::before, .fa-rectangle-list::before { content: "=EF=80=A2"; }

.fa-tarp-droplet::before { content: "=EE=95=BC"; }

.fa-house-medical-circle-check::before { content: "=EE=94=91"; }

.fa-person-skiing-nordic::before, .fa-skiing-nordic::before { content: "=EF=
=9F=8A"; }

.fa-calendar-plus::before { content: "=EF=89=B1"; }

.fa-plane-arrival::before { content: "=EF=96=AF"; }

.fa-arrow-alt-circle-left::before, .fa-circle-left::before { content: "=EF=
=8D=99"; }

.fa-subway::before, .fa-train-subway::before { content: "=EF=88=B9"; }

.fa-chart-gantt::before { content: "=EE=83=A4"; }

.fa-indian-rupee-sign::before, .fa-indian-rupee::before, .fa-inr::before { =
content: "=EE=86=BC"; }

.fa-crop-alt::before, .fa-crop-simple::before { content: "=EF=95=A5"; }

.fa-money-bill-1::before, .fa-money-bill-alt::before { content: "=EF=8F=91"=
; }

.fa-left-long::before, .fa-long-arrow-alt-left::before { content: "=EF=8C=
=8A"; }

.fa-dna::before { content: "=EF=91=B1"; }

.fa-virus-slash::before { content: "=EE=81=B5"; }

.fa-minus::before, .fa-subtract::before { content: "=EF=81=A8"; }

.fa-chess::before { content: "=EF=90=B9"; }

.fa-arrow-left-long::before, .fa-long-arrow-left::before { content: "=EF=85=
=B7"; }

.fa-plug-circle-check::before { content: "=EE=95=9C"; }

.fa-street-view::before { content: "=EF=88=9D"; }

.fa-franc-sign::before { content: "=EE=86=8F"; }

.fa-volume-off::before { content: "=EF=80=A6"; }

.fa-american-sign-language-interpreting::before, .fa-asl-interpreting::befo=
re, .fa-hands-american-sign-language-interpreting::before, .fa-hands-asl-in=
terpreting::before { content: "=EF=8A=A3"; }

.fa-cog::before, .fa-gear::before { content: "=EF=80=93"; }

.fa-droplet-slash::before, .fa-tint-slash::before { content: "=EF=97=87"; }

.fa-mosque::before { content: "=EF=99=B8"; }

.fa-mosquito::before { content: "=EE=94=AB"; }

.fa-star-of-david::before { content: "=EF=9A=9A"; }

.fa-person-military-rifle::before { content: "=EE=95=8B"; }

.fa-cart-shopping::before, .fa-shopping-cart::before { content: "=EF=81=BA"=
; }

.fa-vials::before { content: "=EF=92=93"; }

.fa-plug-circle-plus::before { content: "=EE=95=9F"; }

.fa-place-of-worship::before { content: "=EF=99=BF"; }

.fa-grip-vertical::before { content: "=EF=96=8E"; }

.fa-arrow-turn-up::before, .fa-level-up::before { content: "=EF=85=88"; }

.fa-u::before { content: "U"; }

.fa-square-root-alt::before, .fa-square-root-variable::before { content: "=
=EF=9A=98"; }

.fa-clock-four::before, .fa-clock::before { content: "=EF=80=97"; }

.fa-backward-step::before, .fa-step-backward::before { content: "=EF=81=88"=
; }

.fa-pallet::before { content: "=EF=92=82"; }

.fa-faucet::before { content: "=EE=80=85"; }

.fa-baseball-bat-ball::before { content: "=EF=90=B2"; }

.fa-s::before { content: "S"; }

.fa-timeline::before { content: "=EE=8A=9C"; }

.fa-keyboard::before { content: "=EF=84=9C"; }

.fa-caret-down::before { content: "=EF=83=97"; }

.fa-clinic-medical::before, .fa-house-chimney-medical::before { content: "=
=EF=9F=B2"; }

.fa-temperature-3::before, .fa-temperature-three-quarters::before, .fa-ther=
mometer-3::before, .fa-thermometer-three-quarters::before { content: "=EF=
=8B=88"; }

.fa-mobile-android-alt::before, .fa-mobile-screen::before { content: "=EF=
=8F=8F"; }

.fa-plane-up::before { content: "=EE=88=AD"; }

.fa-piggy-bank::before { content: "=EF=93=93"; }

.fa-battery-3::before, .fa-battery-half::before { content: "=EF=89=82"; }

.fa-mountain-city::before { content: "=EE=94=AE"; }

.fa-coins::before { content: "=EF=94=9E"; }

.fa-khanda::before { content: "=EF=99=AD"; }

.fa-sliders-h::before, .fa-sliders::before { content: "=EF=87=9E"; }

.fa-folder-tree::before { content: "=EF=A0=82"; }

.fa-network-wired::before { content: "=EF=9B=BF"; }

.fa-map-pin::before { content: "=EF=89=B6"; }

.fa-hamsa::before { content: "=EF=99=A5"; }

.fa-cent-sign::before { content: "=EE=8F=B5"; }

.fa-flask::before { content: "=EF=83=83"; }

.fa-person-pregnant::before { content: "=EE=8C=9E"; }

.fa-wand-sparkles::before { content: "=EF=9C=AB"; }

.fa-ellipsis-v::before, .fa-ellipsis-vertical::before { content: "=EF=85=82=
"; }

.fa-ticket::before { content: "=EF=85=85"; }

.fa-power-off::before { content: "=EF=80=91"; }

.fa-long-arrow-alt-right::before, .fa-right-long::before { content: "=EF=8C=
=8B"; }

.fa-flag-usa::before { content: "=EF=9D=8D"; }

.fa-laptop-file::before { content: "=EE=94=9D"; }

.fa-teletype::before, .fa-tty::before { content: "=EF=87=A4"; }

.fa-diagram-next::before { content: "=EE=91=B6"; }

.fa-person-rifle::before { content: "=EE=95=8E"; }

.fa-house-medical-circle-exclamation::before { content: "=EE=94=92"; }

.fa-closed-captioning::before { content: "=EF=88=8A"; }

.fa-hiking::before, .fa-person-hiking::before { content: "=EF=9B=AC"; }

.fa-venus-double::before { content: "=EF=88=A6"; }

.fa-images::before { content: "=EF=8C=82"; }

.fa-calculator::before { content: "=EF=87=AC"; }

.fa-people-pulling::before { content: "=EE=94=B5"; }

.fa-n::before { content: "N"; }

.fa-cable-car::before, .fa-tram::before { content: "=EF=9F=9A"; }

.fa-cloud-rain::before { content: "=EF=9C=BD"; }

.fa-building-circle-xmark::before { content: "=EE=93=94"; }

.fa-ship::before { content: "=EF=88=9A"; }

.fa-arrows-down-to-line::before { content: "=EE=92=B8"; }

.fa-download::before { content: "=EF=80=99"; }

.fa-face-grin::before, .fa-grin::before { content: "=EF=96=80"; }

.fa-backspace::before, .fa-delete-left::before { content: "=EF=95=9A"; }

.fa-eye-dropper-empty::before, .fa-eye-dropper::before, .fa-eyedropper::bef=
ore { content: "=EF=87=BB"; }

.fa-file-circle-check::before { content: "=EE=96=A0"; }

.fa-forward::before { content: "=EF=81=8E"; }

.fa-mobile-android::before, .fa-mobile-phone::before, .fa-mobile::before { =
content: "=EF=8F=8E"; }

.fa-face-meh::before, .fa-meh::before { content: "=EF=84=9A"; }

.fa-align-center::before { content: "=EF=80=B7"; }

.fa-book-dead::before, .fa-book-skull::before { content: "=EF=9A=B7"; }

.fa-drivers-license::before, .fa-id-card::before { content: "=EF=8B=82"; }

.fa-dedent::before, .fa-outdent::before { content: "=EF=80=BB"; }

.fa-heart-circle-exclamation::before { content: "=EE=93=BE"; }

.fa-home-alt::before, .fa-home-lg-alt::before, .fa-home::before, .fa-house:=
:before { content: "=EF=80=95"; }

.fa-calendar-week::before { content: "=EF=9E=84"; }

.fa-laptop-medical::before { content: "=EF=A0=92"; }

.fa-b::before { content: "B"; }

.fa-file-medical::before { content: "=EF=91=B7"; }

.fa-dice-one::before { content: "=EF=94=A5"; }

.fa-kiwi-bird::before { content: "=EF=94=B5"; }

.fa-arrow-right-arrow-left::before, .fa-exchange::before { content: "=EF=83=
=AC"; }

.fa-redo-alt::before, .fa-rotate-forward::before, .fa-rotate-right::before =
{ content: "=EF=8B=B9"; }

.fa-cutlery::before, .fa-utensils::before { content: "=EF=8B=A7"; }

.fa-arrow-up-wide-short::before, .fa-sort-amount-up::before { content: "=EF=
=85=A1"; }

.fa-mill-sign::before { content: "=EE=87=AD"; }

.fa-bowl-rice::before { content: "=EE=8B=AB"; }

.fa-skull::before { content: "=EF=95=8C"; }

.fa-broadcast-tower::before, .fa-tower-broadcast::before { content: "=EF=94=
=99"; }

.fa-truck-pickup::before { content: "=EF=98=BC"; }

.fa-long-arrow-alt-up::before, .fa-up-long::before { content: "=EF=8C=8C"; =
}

.fa-stop::before { content: "=EF=81=8D"; }

.fa-code-merge::before { content: "=EF=8E=87"; }

.fa-upload::before { content: "=EF=82=93"; }

.fa-hurricane::before { content: "=EF=9D=91"; }

.fa-mound::before { content: "=EE=94=AD"; }

.fa-toilet-portable::before { content: "=EE=96=83"; }

.fa-compact-disc::before { content: "=EF=94=9F"; }

.fa-file-arrow-down::before, .fa-file-download::before { content: "=EF=95=
=AD"; }

.fa-caravan::before { content: "=EF=A3=BF"; }

.fa-shield-cat::before { content: "=EE=95=B2"; }

.fa-bolt::before, .fa-zap::before { content: "=EF=83=A7"; }

.fa-glass-water::before { content: "=EE=93=B4"; }

.fa-oil-well::before { content: "=EE=94=B2"; }

.fa-vault::before { content: "=EE=8B=85"; }

.fa-mars::before { content: "=EF=88=A2"; }

.fa-toilet::before { content: "=EF=9F=98"; }

.fa-plane-circle-xmark::before { content: "=EE=95=97"; }

.fa-cny::before, .fa-jpy::before, .fa-rmb::before, .fa-yen-sign::before, .f=
a-yen::before { content: "=EF=85=97"; }

.fa-rouble::before, .fa-rub::before, .fa-ruble-sign::before, .fa-ruble::bef=
ore { content: "=EF=85=98"; }

.fa-sun::before { content: "=EF=86=85"; }

.fa-guitar::before { content: "=EF=9E=A6"; }

.fa-face-laugh-wink::before, .fa-laugh-wink::before { content: "=EF=96=9C";=
 }

.fa-horse-head::before { content: "=EF=9E=AB"; }

.fa-bore-hole::before { content: "=EE=93=83"; }

.fa-industry::before { content: "=EF=89=B5"; }

.fa-arrow-alt-circle-down::before, .fa-circle-down::before { content: "=EF=
=8D=98"; }

.fa-arrows-turn-to-dots::before { content: "=EE=93=81"; }

.fa-florin-sign::before { content: "=EE=86=84"; }

.fa-arrow-down-short-wide::before, .fa-sort-amount-desc::before, .fa-sort-a=
mount-down-alt::before { content: "=EF=A2=84"; }

.fa-less-than::before { content: "<"; }

.fa-angle-down::before { content: "=EF=84=87"; }

.fa-car-tunnel::before { content: "=EE=93=9E"; }

.fa-head-side-cough::before { content: "=EE=81=A1"; }

.fa-grip-lines::before { content: "=EF=9E=A4"; }

.fa-thumbs-down::before { content: "=EF=85=A5"; }

.fa-user-lock::before { content: "=EF=94=82"; }

.fa-arrow-right-long::before, .fa-long-arrow-right::before { content: "=EF=
=85=B8"; }

.fa-anchor-circle-xmark::before { content: "=EE=92=AC"; }

.fa-ellipsis-h::before, .fa-ellipsis::before { content: "=EF=85=81"; }

.fa-chess-pawn::before { content: "=EF=91=83"; }

.fa-first-aid::before, .fa-kit-medical::before { content: "=EF=91=B9"; }

.fa-person-through-window::before { content: "=EE=96=A9"; }

.fa-toolbox::before { content: "=EF=95=92"; }

.fa-hands-holding-circle::before { content: "=EE=93=BB"; }

.fa-bug::before { content: "=EF=86=88"; }

.fa-credit-card-alt::before, .fa-credit-card::before { content: "=EF=82=9D"=
; }

.fa-automobile::before, .fa-car::before { content: "=EF=86=B9"; }

.fa-hand-holding-hand::before { content: "=EE=93=B7"; }

.fa-book-open-reader::before, .fa-book-reader::before { content: "=EF=97=9A=
"; }

.fa-mountain-sun::before { content: "=EE=94=AF"; }

.fa-arrows-left-right-to-line::before { content: "=EE=92=BA"; }

.fa-dice-d20::before { content: "=EF=9B=8F"; }

.fa-truck-droplet::before { content: "=EE=96=8C"; }

.fa-file-circle-xmark::before { content: "=EE=96=A1"; }

.fa-temperature-arrow-up::before, .fa-temperature-up::before { content: "=
=EE=81=80"; }

.fa-medal::before { content: "=EF=96=A2"; }

.fa-bed::before { content: "=EF=88=B6"; }

.fa-h-square::before, .fa-square-h::before { content: "=EF=83=BD"; }

.fa-podcast::before { content: "=EF=8B=8E"; }

.fa-temperature-4::before, .fa-temperature-full::before, .fa-thermometer-4:=
:before, .fa-thermometer-full::before { content: "=EF=8B=87"; }

.fa-bell::before { content: "=EF=83=B3"; }

.fa-superscript::before { content: "=EF=84=AB"; }

.fa-plug-circle-xmark::before { content: "=EE=95=A0"; }

.fa-star-of-life::before { content: "=EF=98=A1"; }

.fa-phone-slash::before { content: "=EF=8F=9D"; }

.fa-paint-roller::before { content: "=EF=96=AA"; }

.fa-hands-helping::before, .fa-handshake-angle::before { content: "=EF=93=
=84"; }

.fa-location-dot::before, .fa-map-marker-alt::before { content: "=EF=8F=85"=
; }

.fa-file::before { content: "=EF=85=9B"; }

.fa-greater-than::before { content: ">"; }

.fa-person-swimming::before, .fa-swimmer::before { content: "=EF=97=84"; }

.fa-arrow-down::before { content: "=EF=81=A3"; }

.fa-droplet::before, .fa-tint::before { content: "=EF=81=83"; }

.fa-eraser::before { content: "=EF=84=AD"; }

.fa-earth-america::before, .fa-earth-americas::before, .fa-earth::before, .=
fa-globe-americas::before { content: "=EF=95=BD"; }

.fa-person-burst::before { content: "=EE=94=BB"; }

.fa-dove::before { content: "=EF=92=BA"; }

.fa-battery-0::before, .fa-battery-empty::before { content: "=EF=89=84"; }

.fa-socks::before { content: "=EF=9A=96"; }

.fa-inbox::before { content: "=EF=80=9C"; }

.fa-section::before { content: "=EE=91=87"; }

.fa-gauge-high::before, .fa-tachometer-alt-fast::before, .fa-tachometer-alt=
::before { content: "=EF=98=A5"; }

.fa-envelope-open-text::before { content: "=EF=99=98"; }

.fa-hospital-alt::before, .fa-hospital-wide::before, .fa-hospital::before {=
 content: "=EF=83=B8"; }

.fa-wine-bottle::before { content: "=EF=9C=AF"; }

.fa-chess-rook::before { content: "=EF=91=87"; }

.fa-bars-staggered::before, .fa-reorder::before, .fa-stream::before { conte=
nt: "=EF=95=90"; }

.fa-dharmachakra::before { content: "=EF=99=95"; }

.fa-hotdog::before { content: "=EF=A0=8F"; }

.fa-blind::before, .fa-person-walking-with-cane::before { content: "=EF=8A=
=9D"; }

.fa-drum::before { content: "=EF=95=A9"; }

.fa-ice-cream::before { content: "=EF=A0=90"; }

.fa-heart-circle-bolt::before { content: "=EE=93=BC"; }

.fa-fax::before { content: "=EF=86=AC"; }

.fa-paragraph::before { content: "=EF=87=9D"; }

.fa-check-to-slot::before, .fa-vote-yea::before { content: "=EF=9D=B2"; }

.fa-star-half::before { content: "=EF=82=89"; }

.fa-boxes-alt::before, .fa-boxes-stacked::before, .fa-boxes::before { conte=
nt: "=EF=91=A8"; }

.fa-chain::before, .fa-link::before { content: "=EF=83=81"; }

.fa-assistive-listening-systems::before, .fa-ear-listen::before { content: =
"=EF=8A=A2"; }

.fa-tree-city::before { content: "=EE=96=87"; }

.fa-play::before { content: "=EF=81=8B"; }

.fa-font::before { content: "=EF=80=B1"; }

.fa-rupiah-sign::before { content: "=EE=88=BD"; }

.fa-magnifying-glass::before, .fa-search::before { content: "=EF=80=82"; }

.fa-ping-pong-paddle-ball::before, .fa-table-tennis-paddle-ball::before, .f=
a-table-tennis::before { content: "=EF=91=9D"; }

.fa-diagnoses::before, .fa-person-dots-from-line::before { content: "=EF=91=
=B0"; }

.fa-trash-can-arrow-up::before, .fa-trash-restore-alt::before { content: "=
=EF=A0=AA"; }

.fa-naira-sign::before { content: "=EE=87=B6"; }

.fa-cart-arrow-down::before { content: "=EF=88=98"; }

.fa-walkie-talkie::before { content: "=EF=A3=AF"; }

.fa-file-edit::before, .fa-file-pen::before { content: "=EF=8C=9C"; }

.fa-receipt::before { content: "=EF=95=83"; }

.fa-pen-square::before, .fa-pencil-square::before, .fa-square-pen::before {=
 content: "=EF=85=8B"; }

.fa-suitcase-rolling::before { content: "=EF=97=81"; }

.fa-person-circle-exclamation::before { content: "=EE=94=BF"; }

.fa-chevron-down::before { content: "=EF=81=B8"; }

.fa-battery-5::before, .fa-battery-full::before, .fa-battery::before { cont=
ent: "=EF=89=80"; }

.fa-skull-crossbones::before { content: "=EF=9C=94"; }

.fa-code-compare::before { content: "=EE=84=BA"; }

.fa-list-dots::before, .fa-list-ul::before { content: "=EF=83=8A"; }

.fa-school-lock::before { content: "=EE=95=AF"; }

.fa-tower-cell::before { content: "=EE=96=85"; }

.fa-down-long::before, .fa-long-arrow-alt-down::before { content: "=EF=8C=
=89"; }

.fa-ranking-star::before { content: "=EE=95=A1"; }

.fa-chess-king::before { content: "=EF=90=BF"; }

.fa-person-harassing::before { content: "=EE=95=89"; }

.fa-brazilian-real-sign::before { content: "=EE=91=AC"; }

.fa-landmark-alt::before, .fa-landmark-dome::before { content: "=EF=9D=92";=
 }

.fa-arrow-up::before { content: "=EF=81=A2"; }

.fa-television::before, .fa-tv-alt::before, .fa-tv::before { content: "=EF=
=89=AC"; }

.fa-shrimp::before { content: "=EE=91=88"; }

.fa-list-check::before, .fa-tasks::before { content: "=EF=82=AE"; }

.fa-jug-detergent::before { content: "=EE=94=99"; }

.fa-circle-user::before, .fa-user-circle::before { content: "=EF=8A=BD"; }

.fa-user-shield::before { content: "=EF=94=85"; }

.fa-wind::before { content: "=EF=9C=AE"; }

.fa-car-burst::before, .fa-car-crash::before { content: "=EF=97=A1"; }

.fa-y::before { content: "Y"; }

.fa-person-snowboarding::before, .fa-snowboarding::before { content: "=EF=
=9F=8E"; }

.fa-shipping-fast::before, .fa-truck-fast::before { content: "=EF=92=8B"; }

.fa-fish::before { content: "=EF=95=B8"; }

.fa-user-graduate::before { content: "=EF=94=81"; }

.fa-adjust::before, .fa-circle-half-stroke::before { content: "=EF=81=82"; =
}

.fa-clapperboard::before { content: "=EE=84=B1"; }

.fa-circle-radiation::before, .fa-radiation-alt::before { content: "=EF=9E=
=BA"; }

.fa-baseball-ball::before, .fa-baseball::before { content: "=EF=90=B3"; }

.fa-jet-fighter-up::before { content: "=EE=94=98"; }

.fa-diagram-project::before, .fa-project-diagram::before { content: "=EF=95=
=82"; }

.fa-copy::before { content: "=EF=83=85"; }

.fa-volume-mute::before, .fa-volume-times::before, .fa-volume-xmark::before=
 { content: "=EF=9A=A9"; }

.fa-hand-sparkles::before { content: "=EE=81=9D"; }

.fa-grip-horizontal::before, .fa-grip::before { content: "=EF=96=8D"; }

.fa-share-from-square::before, .fa-share-square::before { content: "=EF=85=
=8D"; }

.fa-child-combatant::before, .fa-child-rifle::before { content: "=EE=93=A0"=
; }

.fa-gun::before { content: "=EE=86=9B"; }

.fa-phone-square::before, .fa-square-phone::before { content: "=EF=82=98"; =
}

.fa-add::before, .fa-plus::before { content: "+"; }

.fa-expand::before { content: "=EF=81=A5"; }

.fa-computer::before { content: "=EE=93=A5"; }

.fa-close::before, .fa-multiply::before, .fa-remove::before, .fa-times::bef=
ore, .fa-xmark::before { content: "=EF=80=8D"; }

.fa-arrows-up-down-left-right::before, .fa-arrows::before { content: "=EF=
=81=87"; }

.fa-chalkboard-teacher::before, .fa-chalkboard-user::before { content: "=EF=
=94=9C"; }

.fa-peso-sign::before { content: "=EE=88=A2"; }

.fa-building-shield::before { content: "=EE=93=98"; }

.fa-baby::before { content: "=EF=9D=BC"; }

.fa-users-line::before { content: "=EE=96=92"; }

.fa-quote-left-alt::before, .fa-quote-left::before { content: "=EF=84=8D"; =
}

.fa-tractor::before { content: "=EF=9C=A2"; }

.fa-trash-arrow-up::before, .fa-trash-restore::before { content: "=EF=A0=A9=
"; }

.fa-arrow-down-up-lock::before { content: "=EE=92=B0"; }

.fa-lines-leaning::before { content: "=EE=94=9E"; }

.fa-ruler-combined::before { content: "=EF=95=86"; }

.fa-copyright::before { content: "=EF=87=B9"; }

.fa-equals::before { content: "=3D"; }

.fa-blender::before { content: "=EF=94=97"; }

.fa-teeth::before { content: "=EF=98=AE"; }

.fa-ils::before, .fa-shekel-sign::before, .fa-shekel::before, .fa-sheqel-si=
gn::before, .fa-sheqel::before { content: "=EF=88=8B"; }

.fa-map::before { content: "=EF=89=B9"; }

.fa-rocket::before { content: "=EF=84=B5"; }

.fa-photo-film::before, .fa-photo-video::before { content: "=EF=A1=BC"; }

.fa-folder-minus::before { content: "=EF=99=9D"; }

.fa-store::before { content: "=EF=95=8E"; }

.fa-arrow-trend-up::before { content: "=EE=82=98"; }

.fa-plug-circle-minus::before { content: "=EE=95=9E"; }

.fa-sign-hanging::before, .fa-sign::before { content: "=EF=93=99"; }

.fa-bezier-curve::before { content: "=EF=95=9B"; }

.fa-bell-slash::before { content: "=EF=87=B6"; }

.fa-tablet-android::before, .fa-tablet::before { content: "=EF=8F=BB"; }

.fa-school-flag::before { content: "=EE=95=AE"; }

.fa-fill::before { content: "=EF=95=B5"; }

.fa-angle-up::before { content: "=EF=84=86"; }

.fa-drumstick-bite::before { content: "=EF=9B=97"; }

.fa-holly-berry::before { content: "=EF=9E=AA"; }

.fa-chevron-left::before { content: "=EF=81=93"; }

.fa-bacteria::before { content: "=EE=81=99"; }

.fa-hand-lizard::before { content: "=EF=89=98"; }

.fa-notdef::before { content: "=EE=87=BE"; }

.fa-disease::before { content: "=EF=9F=BA"; }

.fa-briefcase-medical::before { content: "=EF=91=A9"; }

.fa-genderless::before { content: "=EF=88=AD"; }

.fa-chevron-right::before { content: "=EF=81=94"; }

.fa-retweet::before { content: "=EF=81=B9"; }

.fa-car-alt::before, .fa-car-rear::before { content: "=EF=97=9E"; }

.fa-pump-soap::before { content: "=EE=81=AB"; }

.fa-video-slash::before { content: "=EF=93=A2"; }

.fa-battery-2::before, .fa-battery-quarter::before { content: "=EF=89=83"; =
}

.fa-radio::before { content: "=EF=A3=97"; }

.fa-baby-carriage::before, .fa-carriage-baby::before { content: "=EF=9D=BD"=
; }

.fa-traffic-light::before { content: "=EF=98=B7"; }

.fa-thermometer::before { content: "=EF=92=91"; }

.fa-vr-cardboard::before { content: "=EF=9C=A9"; }

.fa-hand-middle-finger::before { content: "=EF=A0=86"; }

.fa-percent::before, .fa-percentage::before { content: "%"; }

.fa-truck-moving::before { content: "=EF=93=9F"; }

.fa-glass-water-droplet::before { content: "=EE=93=B5"; }

.fa-display::before { content: "=EE=85=A3"; }

.fa-face-smile::before, .fa-smile::before { content: "=EF=84=98"; }

.fa-thumb-tack::before, .fa-thumbtack::before { content: "=EF=82=8D"; }

.fa-trophy::before { content: "=EF=82=91"; }

.fa-person-praying::before, .fa-pray::before { content: "=EF=9A=83"; }

.fa-hammer::before { content: "=EF=9B=A3"; }

.fa-hand-peace::before { content: "=EF=89=9B"; }

.fa-rotate::before, .fa-sync-alt::before { content: "=EF=8B=B1"; }

.fa-spinner::before { content: "=EF=84=90"; }

.fa-robot::before { content: "=EF=95=84"; }

.fa-peace::before { content: "=EF=99=BC"; }

.fa-cogs::before, .fa-gears::before { content: "=EF=82=85"; }

.fa-warehouse::before { content: "=EF=92=94"; }

.fa-arrow-up-right-dots::before { content: "=EE=92=B7"; }

.fa-splotch::before { content: "=EF=96=BC"; }

.fa-face-grin-hearts::before, .fa-grin-hearts::before { content: "=EF=96=84=
"; }

.fa-dice-four::before { content: "=EF=94=A4"; }

.fa-sim-card::before { content: "=EF=9F=84"; }

.fa-transgender-alt::before, .fa-transgender::before { content: "=EF=88=A5"=
; }

.fa-mercury::before { content: "=EF=88=A3"; }

.fa-arrow-turn-down::before, .fa-level-down::before { content: "=EF=85=89";=
 }

.fa-person-falling-burst::before { content: "=EE=95=87"; }

.fa-award::before { content: "=EF=95=99"; }

.fa-ticket-alt::before, .fa-ticket-simple::before { content: "=EF=8F=BF"; }

.fa-building::before { content: "=EF=86=AD"; }

.fa-angle-double-left::before, .fa-angles-left::before { content: "=EF=84=
=80"; }

.fa-qrcode::before { content: "=EF=80=A9"; }

.fa-clock-rotate-left::before, .fa-history::before { content: "=EF=87=9A"; =
}

.fa-face-grin-beam-sweat::before, .fa-grin-beam-sweat::before { content: "=
=EF=96=83"; }

.fa-arrow-right-from-file::before, .fa-file-export::before { content: "=EF=
=95=AE"; }

.fa-shield-blank::before, .fa-shield::before { content: "=EF=84=B2"; }

.fa-arrow-up-short-wide::before, .fa-sort-amount-up-alt::before { content: =
"=EF=A2=85"; }

.fa-house-medical::before { content: "=EE=8E=B2"; }

.fa-golf-ball-tee::before, .fa-golf-ball::before { content: "=EF=91=90"; }

.fa-chevron-circle-left::before, .fa-circle-chevron-left::before { content:=
 "=EF=84=B7"; }

.fa-house-chimney-window::before { content: "=EE=80=8D"; }

.fa-pen-nib::before { content: "=EF=96=AD"; }

.fa-tent-arrow-turn-left::before { content: "=EE=96=80"; }

.fa-tents::before { content: "=EE=96=82"; }

.fa-magic::before, .fa-wand-magic::before { content: "=EF=83=90"; }

.fa-dog::before { content: "=EF=9B=93"; }

.fa-carrot::before { content: "=EF=9E=87"; }

.fa-moon::before { content: "=EF=86=86"; }

.fa-wine-glass-alt::before, .fa-wine-glass-empty::before { content: "=EF=97=
=8E"; }

.fa-cheese::before { content: "=EF=9F=AF"; }

.fa-yin-yang::before { content: "=EF=9A=AD"; }

.fa-music::before { content: "=EF=80=81"; }

.fa-code-commit::before { content: "=EF=8E=86"; }

.fa-temperature-low::before { content: "=EF=9D=AB"; }

.fa-biking::before, .fa-person-biking::before { content: "=EF=A1=8A"; }

.fa-broom::before { content: "=EF=94=9A"; }

.fa-shield-heart::before { content: "=EE=95=B4"; }

.fa-gopuram::before { content: "=EF=99=A4"; }

.fa-earth-oceania::before, .fa-globe-oceania::before { content: "=EE=91=BB"=
; }

.fa-square-xmark::before, .fa-times-square::before, .fa-xmark-square::befor=
e { content: "=EF=8B=93"; }

.fa-hashtag::before { content: "#"; }

.fa-expand-alt::before, .fa-up-right-and-down-left-from-center::before { co=
ntent: "=EF=90=A4"; }

.fa-oil-can::before { content: "=EF=98=93"; }

.fa-t::before { content: "T"; }

.fa-hippo::before { content: "=EF=9B=AD"; }

.fa-chart-column::before { content: "=EE=83=A3"; }

.fa-infinity::before { content: "=EF=94=B4"; }

.fa-vial-circle-check::before { content: "=EE=96=96"; }

.fa-person-arrow-down-to-line::before { content: "=EE=94=B8"; }

.fa-voicemail::before { content: "=EF=A2=97"; }

.fa-fan::before { content: "=EF=A1=A3"; }

.fa-person-walking-luggage::before { content: "=EE=95=94"; }

.fa-arrows-alt-v::before, .fa-up-down::before { content: "=EF=8C=B8"; }

.fa-cloud-moon-rain::before { content: "=EF=9C=BC"; }

.fa-calendar::before { content: "=EF=84=B3"; }

.fa-trailer::before { content: "=EE=81=81"; }

.fa-bahai::before, .fa-haykal::before { content: "=EF=99=A6"; }

.fa-sd-card::before { content: "=EF=9F=82"; }

.fa-dragon::before { content: "=EF=9B=95"; }

.fa-shoe-prints::before { content: "=EF=95=8B"; }

.fa-circle-plus::before, .fa-plus-circle::before { content: "=EF=81=95"; }

.fa-face-grin-tongue-wink::before, .fa-grin-tongue-wink::before { content: =
"=EF=96=8B"; }

.fa-hand-holding::before { content: "=EF=92=BD"; }

.fa-plug-circle-exclamation::before { content: "=EE=95=9D"; }

.fa-chain-broken::before, .fa-chain-slash::before, .fa-link-slash::before, =
.fa-unlink::before { content: "=EF=84=A7"; }

.fa-clone::before { content: "=EF=89=8D"; }

.fa-person-walking-arrow-loop-left::before { content: "=EE=95=91"; }

.fa-arrow-up-z-a::before, .fa-sort-alpha-up-alt::before { content: "=EF=A2=
=82"; }

.fa-fire-alt::before, .fa-fire-flame-curved::before { content: "=EF=9F=A4";=
 }

.fa-tornado::before { content: "=EF=9D=AF"; }

.fa-file-circle-plus::before { content: "=EE=92=94"; }

.fa-book-quran::before, .fa-quran::before { content: "=EF=9A=87"; }

.fa-anchor::before { content: "=EF=84=BD"; }

.fa-border-all::before { content: "=EF=A1=8C"; }

.fa-angry::before, .fa-face-angry::before { content: "=EF=95=96"; }

.fa-cookie-bite::before { content: "=EF=95=A4"; }

.fa-arrow-trend-down::before { content: "=EE=82=97"; }

.fa-feed::before, .fa-rss::before { content: "=EF=82=9E"; }

.fa-draw-polygon::before { content: "=EF=97=AE"; }

.fa-balance-scale::before, .fa-scale-balanced::before { content: "=EF=89=8E=
"; }

.fa-gauge-simple-high::before, .fa-tachometer-fast::before, .fa-tachometer:=
:before { content: "=EF=98=AA"; }

.fa-shower::before { content: "=EF=8B=8C"; }

.fa-desktop-alt::before, .fa-desktop::before { content: "=EF=8E=90"; }

.fa-m::before { content: "M"; }

.fa-table-list::before, .fa-th-list::before { content: "=EF=80=8B"; }

.fa-comment-sms::before, .fa-sms::before { content: "=EF=9F=8D"; }

.fa-book::before { content: "=EF=80=AD"; }

.fa-user-plus::before { content: "=EF=88=B4"; }

.fa-check::before { content: "=EF=80=8C"; }

.fa-battery-4::before, .fa-battery-three-quarters::before { content: "=EF=
=89=81"; }

.fa-house-circle-check::before { content: "=EE=94=89"; }

.fa-angle-left::before { content: "=EF=84=84"; }

.fa-diagram-successor::before { content: "=EE=91=BA"; }

.fa-truck-arrow-right::before { content: "=EE=96=8B"; }

.fa-arrows-split-up-and-left::before { content: "=EE=92=BC"; }

.fa-fist-raised::before, .fa-hand-fist::before { content: "=EF=9B=9E"; }

.fa-cloud-moon::before { content: "=EF=9B=83"; }

.fa-briefcase::before { content: "=EF=82=B1"; }

.fa-person-falling::before { content: "=EE=95=86"; }

.fa-image-portrait::before, .fa-portrait::before { content: "=EF=8F=A0"; }

.fa-user-tag::before { content: "=EF=94=87"; }

.fa-rug::before { content: "=EE=95=A9"; }

.fa-earth-europe::before, .fa-globe-europe::before { content: "=EF=9E=A2"; =
}

.fa-cart-flatbed-suitcase::before, .fa-luggage-cart::before { content: "=EF=
=96=9D"; }

.fa-rectangle-times::before, .fa-rectangle-xmark::before, .fa-times-rectang=
le::before, .fa-window-close::before { content: "=EF=90=90"; }

.fa-baht-sign::before { content: "=EE=82=AC"; }

.fa-book-open::before { content: "=EF=94=98"; }

.fa-book-journal-whills::before, .fa-journal-whills::before { content: "=EF=
=99=AA"; }

.fa-handcuffs::before { content: "=EE=93=B8"; }

.fa-exclamation-triangle::before, .fa-triangle-exclamation::before, .fa-war=
ning::before { content: "=EF=81=B1"; }

.fa-database::before { content: "=EF=87=80"; }

.fa-arrow-turn-right::before, .fa-mail-forward::before, .fa-share::before {=
 content: "=EF=81=A4"; }

.fa-bottle-droplet::before { content: "=EE=93=84"; }

.fa-mask-face::before { content: "=EE=87=97"; }

.fa-hill-rockslide::before { content: "=EE=94=88"; }

.fa-exchange-alt::before, .fa-right-left::before { content: "=EF=8D=A2"; }

.fa-paper-plane::before { content: "=EF=87=98"; }

.fa-road-circle-exclamation::before { content: "=EE=95=A5"; }

.fa-dungeon::before { content: "=EF=9B=99"; }

.fa-align-right::before { content: "=EF=80=B8"; }

.fa-money-bill-1-wave::before, .fa-money-bill-wave-alt::before { content: "=
=EF=94=BB"; }

.fa-life-ring::before { content: "=EF=87=8D"; }

.fa-hands::before, .fa-sign-language::before, .fa-signing::before { content=
: "=EF=8A=A7"; }

.fa-calendar-day::before { content: "=EF=9E=83"; }

.fa-ladder-water::before, .fa-swimming-pool::before, .fa-water-ladder::befo=
re { content: "=EF=97=85"; }

.fa-arrows-up-down::before, .fa-arrows-v::before { content: "=EF=81=BD"; }

.fa-face-grimace::before, .fa-grimace::before { content: "=EF=95=BF"; }

.fa-wheelchair-alt::before, .fa-wheelchair-move::before { content: "=EE=8B=
=8E"; }

.fa-level-down-alt::before, .fa-turn-down::before { content: "=EF=8E=BE"; }

.fa-person-walking-arrow-right::before { content: "=EE=95=92"; }

.fa-envelope-square::before, .fa-square-envelope::before { content: "=EF=86=
=99"; }

.fa-dice::before { content: "=EF=94=A2"; }

.fa-bowling-ball::before { content: "=EF=90=B6"; }

.fa-brain::before { content: "=EF=97=9C"; }

.fa-band-aid::before, .fa-bandage::before { content: "=EF=91=A2"; }

.fa-calendar-minus::before { content: "=EF=89=B2"; }

.fa-circle-xmark::before, .fa-times-circle::before, .fa-xmark-circle::befor=
e { content: "=EF=81=97"; }

.fa-gifts::before { content: "=EF=9E=9C"; }

.fa-hotel::before { content: "=EF=96=94"; }

.fa-earth-asia::before, .fa-globe-asia::before { content: "=EF=95=BE"; }

.fa-id-card-alt::before, .fa-id-card-clip::before { content: "=EF=91=BF"; }

.fa-magnifying-glass-plus::before, .fa-search-plus::before { content: "=EF=
=80=8E"; }

.fa-thumbs-up::before { content: "=EF=85=A4"; }

.fa-user-clock::before { content: "=EF=93=BD"; }

.fa-allergies::before, .fa-hand-dots::before { content: "=EF=91=A1"; }

.fa-file-invoice::before { content: "=EF=95=B0"; }

.fa-window-minimize::before { content: "=EF=8B=91"; }

.fa-coffee::before, .fa-mug-saucer::before { content: "=EF=83=B4"; }

.fa-brush::before { content: "=EF=95=9D"; }

.fa-mask::before { content: "=EF=9B=BA"; }

.fa-magnifying-glass-minus::before, .fa-search-minus::before { content: "=
=EF=80=90"; }

.fa-ruler-vertical::before { content: "=EF=95=88"; }

.fa-user-alt::before, .fa-user-large::before { content: "=EF=90=86"; }

.fa-train-tram::before { content: "=EE=96=B4"; }

.fa-user-nurse::before { content: "=EF=A0=AF"; }

.fa-syringe::before { content: "=EF=92=8E"; }

.fa-cloud-sun::before { content: "=EF=9B=84"; }

.fa-stopwatch-20::before { content: "=EE=81=AF"; }

.fa-square-full::before { content: "=EF=91=9C"; }

.fa-magnet::before { content: "=EF=81=B6"; }

.fa-jar::before { content: "=EE=94=96"; }

.fa-note-sticky::before, .fa-sticky-note::before { content: "=EF=89=89"; }

.fa-bug-slash::before { content: "=EE=92=90"; }

.fa-arrow-up-from-water-pump::before { content: "=EE=92=B6"; }

.fa-bone::before { content: "=EF=97=97"; }

.fa-user-injured::before { content: "=EF=9C=A8"; }

.fa-face-sad-tear::before, .fa-sad-tear::before { content: "=EF=96=B4"; }

.fa-plane::before { content: "=EF=81=B2"; }

.fa-tent-arrows-down::before { content: "=EE=96=81"; }

.fa-exclamation::before { content: "!"; }

.fa-arrows-spin::before { content: "=EE=92=BB"; }

.fa-print::before { content: "=EF=80=AF"; }

.fa-try::before, .fa-turkish-lira-sign::before, .fa-turkish-lira::before { =
content: "=EE=8A=BB"; }

.fa-dollar-sign::before, .fa-dollar::before, .fa-usd::before { content: "$"=
; }

.fa-x::before { content: "X"; }

.fa-magnifying-glass-dollar::before, .fa-search-dollar::before { content: "=
=EF=9A=88"; }

.fa-users-cog::before, .fa-users-gear::before { content: "=EF=94=89"; }

.fa-person-military-pointing::before { content: "=EE=95=8A"; }

.fa-bank::before, .fa-building-columns::before, .fa-institution::before, .f=
a-museum::before, .fa-university::before { content: "=EF=86=9C"; }

.fa-umbrella::before { content: "=EF=83=A9"; }

.fa-trowel::before { content: "=EE=96=89"; }

.fa-d::before { content: "D"; }

.fa-stapler::before { content: "=EE=96=AF"; }

.fa-masks-theater::before, .fa-theater-masks::before { content: "=EF=98=B0"=
; }

.fa-kip-sign::before { content: "=EE=87=84"; }

.fa-hand-point-left::before { content: "=EF=82=A5"; }

.fa-handshake-alt::before, .fa-handshake-simple::before { content: "=EF=93=
=86"; }

.fa-fighter-jet::before, .fa-jet-fighter::before { content: "=EF=83=BB"; }

.fa-share-alt-square::before, .fa-square-share-nodes::before { content: "=
=EF=87=A1"; }

.fa-barcode::before { content: "=EF=80=AA"; }

.fa-plus-minus::before { content: "=EE=90=BC"; }

.fa-video-camera::before, .fa-video::before { content: "=EF=80=BD"; }

.fa-graduation-cap::before, .fa-mortar-board::before { content: "=EF=86=9D"=
; }

.fa-hand-holding-medical::before { content: "=EE=81=9C"; }

.fa-person-circle-check::before { content: "=EE=94=BE"; }

.fa-level-up-alt::before, .fa-turn-up::before { content: "=EF=8E=BF"; }

.fa-sr-only, .fa-sr-only-focusable:not(:focus), .sr-only, .sr-only-focusabl=
e:not(:focus) { position: absolute; width: 1px; height: 1px; padding: 0px; =
margin: -1px; overflow: hidden; clip: rect(0px, 0px, 0px, 0px); white-space=
: nowrap; border-width: 0px; }

:host, :root { --fa-style-family-brands: "Font Awesome 6 Brands"; --fa-font=
-brands: normal 400 1em/1 "Font Awesome 6 Brands"; }

@font-face { font-family: "Font Awesome 6 Brands"; font-style: normal; font=
-weight: 400; font-display: block; src: url("../webfonts/fa-brands-400.woff=
2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"=
); }

.fa-brands, .fab { font-weight: 400; }

.fa-monero::before { content: "=EF=8F=90"; }

.fa-hooli::before { content: "=EF=90=A7"; }

.fa-yelp::before { content: "=EF=87=A9"; }

.fa-cc-visa::before { content: "=EF=87=B0"; }

.fa-lastfm::before { content: "=EF=88=82"; }

.fa-shopware::before { content: "=EF=96=B5"; }

.fa-creative-commons-nc::before { content: "=EF=93=A8"; }

.fa-aws::before { content: "=EF=8D=B5"; }

.fa-redhat::before { content: "=EF=9E=BC"; }

.fa-yoast::before { content: "=EF=8A=B1"; }

.fa-cloudflare::before { content: "=EE=81=BD"; }

.fa-ups::before { content: "=EF=9F=A0"; }

.fa-wpexplorer::before { content: "=EF=8B=9E"; }

.fa-dyalog::before { content: "=EF=8E=99"; }

.fa-bity::before { content: "=EF=8D=BA"; }

.fa-stackpath::before { content: "=EF=A1=82"; }

.fa-buysellads::before { content: "=EF=88=8D"; }

.fa-first-order::before { content: "=EF=8A=B0"; }

.fa-modx::before { content: "=EF=8A=85"; }

.fa-guilded::before { content: "=EE=81=BE"; }

.fa-vnv::before { content: "=EF=90=8B"; }

.fa-js-square::before, .fa-square-js::before { content: "=EF=8E=B9"; }

.fa-microsoft::before { content: "=EF=8F=8A"; }

.fa-qq::before { content: "=EF=87=96"; }

.fa-orcid::before { content: "=EF=A3=92"; }

.fa-java::before { content: "=EF=93=A4"; }

.fa-invision::before { content: "=EF=9E=B0"; }

.fa-creative-commons-pd-alt::before { content: "=EF=93=AD"; }

.fa-centercode::before { content: "=EF=8E=80"; }

.fa-glide-g::before { content: "=EF=8A=A6"; }

.fa-drupal::before { content: "=EF=86=A9"; }

.fa-hire-a-helper::before { content: "=EF=8E=B0"; }

.fa-creative-commons-by::before { content: "=EF=93=A7"; }

.fa-unity::before { content: "=EE=81=89"; }

.fa-whmcs::before { content: "=EF=90=8D"; }

.fa-rocketchat::before { content: "=EF=8F=A8"; }

.fa-vk::before { content: "=EF=86=89"; }

.fa-untappd::before { content: "=EF=90=85"; }

.fa-mailchimp::before { content: "=EF=96=9E"; }

.fa-css3-alt::before { content: "=EF=8E=8B"; }

.fa-reddit-square::before, .fa-square-reddit::before { content: "=EF=86=A2"=
; }

.fa-vimeo-v::before { content: "=EF=89=BD"; }

.fa-contao::before { content: "=EF=89=AD"; }

.fa-square-font-awesome::before { content: "=EE=96=AD"; }

.fa-deskpro::before { content: "=EF=8E=8F"; }

.fa-sistrix::before { content: "=EF=8F=AE"; }

.fa-instagram-square::before, .fa-square-instagram::before { content: "=EE=
=81=95"; }

.fa-battle-net::before { content: "=EF=A0=B5"; }

.fa-the-red-yeti::before { content: "=EF=9A=9D"; }

.fa-hacker-news-square::before, .fa-square-hacker-news::before { content: "=
=EF=8E=AF"; }

.fa-edge::before { content: "=EF=8A=82"; }

.fa-threads::before { content: "=EE=98=98"; }

.fa-napster::before { content: "=EF=8F=92"; }

.fa-snapchat-square::before, .fa-square-snapchat::before { content: "=EF=8A=
=AD"; }

.fa-google-plus-g::before { content: "=EF=83=95"; }

.fa-artstation::before { content: "=EF=9D=BA"; }

.fa-markdown::before { content: "=EF=98=8F"; }

.fa-sourcetree::before { content: "=EF=9F=93"; }

.fa-google-plus::before { content: "=EF=8A=B3"; }

.fa-diaspora::before { content: "=EF=9E=91"; }

.fa-foursquare::before { content: "=EF=86=80"; }

.fa-stack-overflow::before { content: "=EF=85=AC"; }

.fa-github-alt::before { content: "=EF=84=93"; }

.fa-phoenix-squadron::before { content: "=EF=94=91"; }

.fa-pagelines::before { content: "=EF=86=8C"; }

.fa-algolia::before { content: "=EF=8D=AC"; }

.fa-red-river::before { content: "=EF=8F=A3"; }

.fa-creative-commons-sa::before { content: "=EF=93=AF"; }

.fa-safari::before { content: "=EF=89=A7"; }

.fa-google::before { content: "=EF=86=A0"; }

.fa-font-awesome-alt::before, .fa-square-font-awesome-stroke::before { cont=
ent: "=EF=8D=9C"; }

.fa-atlassian::before { content: "=EF=9D=BB"; }

.fa-linkedin-in::before { content: "=EF=83=A1"; }

.fa-digital-ocean::before { content: "=EF=8E=91"; }

.fa-nimblr::before { content: "=EF=96=A8"; }

.fa-chromecast::before { content: "=EF=A0=B8"; }

.fa-evernote::before { content: "=EF=A0=B9"; }

.fa-hacker-news::before { content: "=EF=87=94"; }

.fa-creative-commons-sampling::before { content: "=EF=93=B0"; }

.fa-adversal::before { content: "=EF=8D=AA"; }

.fa-creative-commons::before { content: "=EF=89=9E"; }

.fa-watchman-monitoring::before { content: "=EE=82=87"; }

.fa-fonticons::before { content: "=EF=8A=80"; }

.fa-weixin::before { content: "=EF=87=97"; }

.fa-shirtsinbulk::before { content: "=EF=88=94"; }

.fa-codepen::before { content: "=EF=87=8B"; }

.fa-git-alt::before { content: "=EF=A1=81"; }

.fa-lyft::before { content: "=EF=8F=83"; }

.fa-rev::before { content: "=EF=96=B2"; }

.fa-windows::before { content: "=EF=85=BA"; }

.fa-wizards-of-the-coast::before { content: "=EF=9C=B0"; }

.fa-square-viadeo::before, .fa-viadeo-square::before { content: "=EF=8A=AA"=
; }

.fa-meetup::before { content: "=EF=8B=A0"; }

.fa-centos::before { content: "=EF=9E=89"; }

.fa-adn::before { content: "=EF=85=B0"; }

.fa-cloudsmith::before { content: "=EF=8E=84"; }

.fa-pied-piper-alt::before { content: "=EF=86=A8"; }

.fa-dribbble-square::before, .fa-square-dribbble::before { content: "=EF=8E=
=97"; }

.fa-codiepie::before { content: "=EF=8A=84"; }

.fa-node::before { content: "=EF=90=99"; }

.fa-mix::before { content: "=EF=8F=8B"; }

.fa-steam::before { content: "=EF=86=B6"; }

.fa-cc-apple-pay::before { content: "=EF=90=96"; }

.fa-scribd::before { content: "=EF=8A=8A"; }

.fa-debian::before { content: "=EE=98=8B"; }

.fa-openid::before { content: "=EF=86=9B"; }

.fa-instalod::before { content: "=EE=82=81"; }

.fa-expeditedssl::before { content: "=EF=88=BE"; }

.fa-sellcast::before { content: "=EF=8B=9A"; }

.fa-square-twitter::before, .fa-twitter-square::before { content: "=EF=82=
=81"; }

.fa-r-project::before { content: "=EF=93=B7"; }

.fa-delicious::before { content: "=EF=86=A5"; }

.fa-freebsd::before { content: "=EF=8E=A4"; }

.fa-vuejs::before { content: "=EF=90=9F"; }

.fa-accusoft::before { content: "=EF=8D=A9"; }

.fa-ioxhost::before { content: "=EF=88=88"; }

.fa-fonticons-fi::before { content: "=EF=8E=A2"; }

.fa-app-store::before { content: "=EF=8D=AF"; }

.fa-cc-mastercard::before { content: "=EF=87=B1"; }

.fa-itunes-note::before { content: "=EF=8E=B5"; }

.fa-golang::before { content: "=EE=90=8F"; }

.fa-kickstarter::before { content: "=EF=8E=BB"; }

.fa-grav::before { content: "=EF=8B=96"; }

.fa-weibo::before { content: "=EF=86=8A"; }

.fa-uncharted::before { content: "=EE=82=84"; }

.fa-firstdraft::before { content: "=EF=8E=A1"; }

.fa-square-youtube::before, .fa-youtube-square::before { content: "=EF=90=
=B1"; }

.fa-wikipedia-w::before { content: "=EF=89=A6"; }

.fa-rendact::before, .fa-wpressr::before { content: "=EF=8F=A4"; }

.fa-angellist::before { content: "=EF=88=89"; }

.fa-galactic-republic::before { content: "=EF=94=8C"; }

.fa-nfc-directional::before { content: "=EE=94=B0"; }

.fa-skype::before { content: "=EF=85=BE"; }

.fa-joget::before { content: "=EF=8E=B7"; }

.fa-fedora::before { content: "=EF=9E=98"; }

.fa-stripe-s::before { content: "=EF=90=AA"; }

.fa-meta::before { content: "=EE=92=9B"; }

.fa-laravel::before { content: "=EF=8E=BD"; }

.fa-hotjar::before { content: "=EF=8E=B1"; }

.fa-bluetooth-b::before { content: "=EF=8A=94"; }

.fa-sticker-mule::before { content: "=EF=8F=B7"; }

.fa-creative-commons-zero::before { content: "=EF=93=B3"; }

.fa-hips::before { content: "=EF=91=92"; }

.fa-behance::before { content: "=EF=86=B4"; }

.fa-reddit::before { content: "=EF=86=A1"; }

.fa-discord::before { content: "=EF=8E=92"; }

.fa-chrome::before { content: "=EF=89=A8"; }

.fa-app-store-ios::before { content: "=EF=8D=B0"; }

.fa-cc-discover::before { content: "=EF=87=B2"; }

.fa-wpbeginner::before { content: "=EF=8A=97"; }

.fa-confluence::before { content: "=EF=9E=8D"; }

.fa-mdb::before { content: "=EF=A3=8A"; }

.fa-dochub::before { content: "=EF=8E=94"; }

.fa-accessible-icon::before { content: "=EF=8D=A8"; }

.fa-ebay::before { content: "=EF=93=B4"; }

.fa-amazon::before { content: "=EF=89=B0"; }

.fa-unsplash::before { content: "=EE=81=BC"; }

.fa-yarn::before { content: "=EF=9F=A3"; }

.fa-square-steam::before, .fa-steam-square::before { content: "=EF=86=B7"; =
}

.fa-500px::before { content: "=EF=89=AE"; }

.fa-square-vimeo::before, .fa-vimeo-square::before { content: "=EF=86=94"; =
}

.fa-asymmetrik::before { content: "=EF=8D=B2"; }

.fa-font-awesome-flag::before, .fa-font-awesome-logo-full::before, .fa-font=
-awesome::before { content: "=EF=8A=B4"; }

.fa-gratipay::before { content: "=EF=86=84"; }

.fa-apple::before { content: "=EF=85=B9"; }

.fa-hive::before { content: "=EE=81=BF"; }

.fa-gitkraken::before { content: "=EF=8E=A6"; }

.fa-keybase::before { content: "=EF=93=B5"; }

.fa-apple-pay::before { content: "=EF=90=95"; }

.fa-padlet::before { content: "=EE=92=A0"; }

.fa-amazon-pay::before { content: "=EF=90=AC"; }

.fa-github-square::before, .fa-square-github::before { content: "=EF=82=92"=
; }

.fa-stumbleupon::before { content: "=EF=86=A4"; }

.fa-fedex::before { content: "=EF=9E=97"; }

.fa-phoenix-framework::before { content: "=EF=8F=9C"; }

.fa-shopify::before { content: "=EE=81=97"; }

.fa-neos::before { content: "=EF=98=92"; }

.fa-square-threads::before { content: "=EE=98=99"; }

.fa-hackerrank::before { content: "=EF=97=B7"; }

.fa-researchgate::before { content: "=EF=93=B8"; }

.fa-swift::before { content: "=EF=A3=A1"; }

.fa-angular::before { content: "=EF=90=A0"; }

.fa-speakap::before { content: "=EF=8F=B3"; }

.fa-angrycreative::before { content: "=EF=8D=AE"; }

.fa-y-combinator::before { content: "=EF=88=BB"; }

.fa-empire::before { content: "=EF=87=91"; }

.fa-envira::before { content: "=EF=8A=99"; }

.fa-gitlab-square::before, .fa-square-gitlab::before { content: "=EE=96=AE"=
; }

.fa-studiovinari::before { content: "=EF=8F=B8"; }

.fa-pied-piper::before { content: "=EF=8A=AE"; }

.fa-wordpress::before { content: "=EF=86=9A"; }

.fa-product-hunt::before { content: "=EF=8A=88"; }

.fa-firefox::before { content: "=EF=89=A9"; }

.fa-linode::before { content: "=EF=8A=B8"; }

.fa-goodreads::before { content: "=EF=8E=A8"; }

.fa-odnoklassniki-square::before, .fa-square-odnoklassniki::before { conten=
t: "=EF=89=A4"; }

.fa-jsfiddle::before { content: "=EF=87=8C"; }

.fa-sith::before { content: "=EF=94=92"; }

.fa-themeisle::before { content: "=EF=8A=B2"; }

.fa-page4::before { content: "=EF=8F=97"; }

.fa-hashnode::before { content: "=EE=92=99"; }

.fa-react::before { content: "=EF=90=9B"; }

.fa-cc-paypal::before { content: "=EF=87=B4"; }

.fa-squarespace::before { content: "=EF=96=BE"; }

.fa-cc-stripe::before { content: "=EF=87=B5"; }

.fa-creative-commons-share::before { content: "=EF=93=B2"; }

.fa-bitcoin::before { content: "=EF=8D=B9"; }

.fa-keycdn::before { content: "=EF=8E=BA"; }

.fa-opera::before { content: "=EF=89=AA"; }

.fa-itch-io::before { content: "=EF=A0=BA"; }

.fa-umbraco::before { content: "=EF=A3=A8"; }

.fa-galactic-senate::before { content: "=EF=94=8D"; }

.fa-ubuntu::before { content: "=EF=9F=9F"; }

.fa-draft2digital::before { content: "=EF=8E=96"; }

.fa-stripe::before { content: "=EF=90=A9"; }

.fa-houzz::before { content: "=EF=89=BC"; }

.fa-gg::before { content: "=EF=89=A0"; }

.fa-dhl::before { content: "=EF=9E=90"; }

.fa-pinterest-square::before, .fa-square-pinterest::before { content: "=EF=
=83=93"; }

.fa-xing::before { content: "=EF=85=A8"; }

.fa-blackberry::before { content: "=EF=8D=BB"; }

.fa-creative-commons-pd::before { content: "=EF=93=AC"; }

.fa-playstation::before { content: "=EF=8F=9F"; }

.fa-quinscape::before { content: "=EF=91=99"; }

.fa-less::before { content: "=EF=90=9D"; }

.fa-blogger-b::before { content: "=EF=8D=BD"; }

.fa-opencart::before { content: "=EF=88=BD"; }

.fa-vine::before { content: "=EF=87=8A"; }

.fa-paypal::before { content: "=EF=87=AD"; }

.fa-gitlab::before { content: "=EF=8A=96"; }

.fa-typo3::before { content: "=EF=90=AB"; }

.fa-reddit-alien::before { content: "=EF=8A=81"; }

.fa-yahoo::before { content: "=EF=86=9E"; }

.fa-dailymotion::before { content: "=EE=81=92"; }

.fa-affiliatetheme::before { content: "=EF=8D=AB"; }

.fa-pied-piper-pp::before { content: "=EF=86=A7"; }

.fa-bootstrap::before { content: "=EF=A0=B6"; }

.fa-odnoklassniki::before { content: "=EF=89=A3"; }

.fa-nfc-symbol::before { content: "=EE=94=B1"; }

.fa-ethereum::before { content: "=EF=90=AE"; }

.fa-speaker-deck::before { content: "=EF=A0=BC"; }

.fa-creative-commons-nc-eu::before { content: "=EF=93=A9"; }

.fa-patreon::before { content: "=EF=8F=99"; }

.fa-avianex::before { content: "=EF=8D=B4"; }

.fa-ello::before { content: "=EF=97=B1"; }

.fa-gofore::before { content: "=EF=8E=A7"; }

.fa-bimobject::before { content: "=EF=8D=B8"; }

.fa-facebook-f::before { content: "=EF=8E=9E"; }

.fa-google-plus-square::before, .fa-square-google-plus::before { content: "=
=EF=83=94"; }

.fa-mandalorian::before { content: "=EF=94=8F"; }

.fa-first-order-alt::before { content: "=EF=94=8A"; }

.fa-osi::before { content: "=EF=90=9A"; }

.fa-google-wallet::before { content: "=EF=87=AE"; }

.fa-d-and-d-beyond::before { content: "=EF=9B=8A"; }

.fa-periscope::before { content: "=EF=8F=9A"; }

.fa-fulcrum::before { content: "=EF=94=8B"; }

.fa-cloudscale::before { content: "=EF=8E=83"; }

.fa-forumbee::before { content: "=EF=88=91"; }

.fa-mizuni::before { content: "=EF=8F=8C"; }

.fa-schlix::before { content: "=EF=8F=AA"; }

.fa-square-xing::before, .fa-xing-square::before { content: "=EF=85=A9"; }

.fa-bandcamp::before { content: "=EF=8B=95"; }

.fa-wpforms::before { content: "=EF=8A=98"; }

.fa-cloudversify::before { content: "=EF=8E=85"; }

.fa-usps::before { content: "=EF=9F=A1"; }

.fa-megaport::before { content: "=EF=96=A3"; }

.fa-magento::before { content: "=EF=8F=84"; }

.fa-spotify::before { content: "=EF=86=BC"; }

.fa-optin-monster::before { content: "=EF=88=BC"; }

.fa-fly::before { content: "=EF=90=97"; }

.fa-aviato::before { content: "=EF=90=A1"; }

.fa-itunes::before { content: "=EF=8E=B4"; }

.fa-cuttlefish::before { content: "=EF=8E=8C"; }

.fa-blogger::before { content: "=EF=8D=BC"; }

.fa-flickr::before { content: "=EF=85=AE"; }

.fa-viber::before { content: "=EF=90=89"; }

.fa-soundcloud::before { content: "=EF=86=BE"; }

.fa-digg::before { content: "=EF=86=A6"; }

.fa-tencent-weibo::before { content: "=EF=87=95"; }

.fa-symfony::before { content: "=EF=A0=BD"; }

.fa-maxcdn::before { content: "=EF=84=B6"; }

.fa-etsy::before { content: "=EF=8B=97"; }

.fa-facebook-messenger::before { content: "=EF=8E=9F"; }

.fa-audible::before { content: "=EF=8D=B3"; }

.fa-think-peaks::before { content: "=EF=9C=B1"; }

.fa-bilibili::before { content: "=EE=8F=99"; }

.fa-erlang::before { content: "=EF=8E=9D"; }

.fa-x-twitter::before { content: "=EE=98=9B"; }

.fa-cotton-bureau::before { content: "=EF=A2=9E"; }

.fa-dashcube::before { content: "=EF=88=90"; }

.fa-42-group::before, .fa-innosoft::before { content: "=EE=82=80"; }

.fa-stack-exchange::before { content: "=EF=86=8D"; }

.fa-elementor::before { content: "=EF=90=B0"; }

.fa-pied-piper-square::before, .fa-square-pied-piper::before { content: "=
=EE=80=9E"; }

.fa-creative-commons-nd::before { content: "=EF=93=AB"; }

.fa-palfed::before { content: "=EF=8F=98"; }

.fa-superpowers::before { content: "=EF=8B=9D"; }

.fa-resolving::before { content: "=EF=8F=A7"; }

.fa-xbox::before { content: "=EF=90=92"; }

.fa-searchengin::before { content: "=EF=8F=AB"; }

.fa-tiktok::before { content: "=EE=81=BB"; }

.fa-facebook-square::before, .fa-square-facebook::before { content: "=EF=82=
=82"; }

.fa-renren::before { content: "=EF=86=8B"; }

.fa-linux::before { content: "=EF=85=BC"; }

.fa-glide::before { content: "=EF=8A=A5"; }

.fa-linkedin::before { content: "=EF=82=8C"; }

.fa-hubspot::before { content: "=EF=8E=B2"; }

.fa-deploydog::before { content: "=EF=8E=8E"; }

.fa-twitch::before { content: "=EF=87=A8"; }

.fa-ravelry::before { content: "=EF=8B=99"; }

.fa-mixer::before { content: "=EE=81=96"; }

.fa-lastfm-square::before, .fa-square-lastfm::before { content: "=EF=88=83"=
; }

.fa-vimeo::before { content: "=EF=90=8A"; }

.fa-mendeley::before { content: "=EF=9E=B3"; }

.fa-uniregistry::before { content: "=EF=90=84"; }

.fa-figma::before { content: "=EF=9E=99"; }

.fa-creative-commons-remix::before { content: "=EF=93=AE"; }

.fa-cc-amazon-pay::before { content: "=EF=90=AD"; }

.fa-dropbox::before { content: "=EF=85=AB"; }

.fa-instagram::before { content: "=EF=85=AD"; }

.fa-cmplid::before { content: "=EE=8D=A0"; }

.fa-facebook::before { content: "=EF=82=9A"; }

.fa-gripfire::before { content: "=EF=8E=AC"; }

.fa-jedi-order::before { content: "=EF=94=8E"; }

.fa-uikit::before { content: "=EF=90=83"; }

.fa-fort-awesome-alt::before { content: "=EF=8E=A3"; }

.fa-phabricator::before { content: "=EF=8F=9B"; }

.fa-ussunnah::before { content: "=EF=90=87"; }

.fa-earlybirds::before { content: "=EF=8E=9A"; }

.fa-trade-federation::before { content: "=EF=94=93"; }

.fa-autoprefixer::before { content: "=EF=90=9C"; }

.fa-whatsapp::before { content: "=EF=88=B2"; }

.fa-slideshare::before { content: "=EF=87=A7"; }

.fa-google-play::before { content: "=EF=8E=AB"; }

.fa-viadeo::before { content: "=EF=8A=A9"; }

.fa-line::before { content: "=EF=8F=80"; }

.fa-google-drive::before { content: "=EF=8E=AA"; }

.fa-servicestack::before { content: "=EF=8F=AC"; }

.fa-simplybuilt::before { content: "=EF=88=95"; }

.fa-bitbucket::before { content: "=EF=85=B1"; }

.fa-imdb::before { content: "=EF=8B=98"; }

.fa-deezer::before { content: "=EE=81=B7"; }

.fa-raspberry-pi::before { content: "=EF=9E=BB"; }

.fa-jira::before { content: "=EF=9E=B1"; }

.fa-docker::before { content: "=EF=8E=95"; }

.fa-screenpal::before { content: "=EE=95=B0"; }

.fa-bluetooth::before { content: "=EF=8A=93"; }

.fa-gitter::before { content: "=EF=90=A6"; }

.fa-d-and-d::before { content: "=EF=8E=8D"; }

.fa-microblog::before { content: "=EE=80=9A"; }

.fa-cc-diners-club::before { content: "=EF=89=8C"; }

.fa-gg-circle::before { content: "=EF=89=A1"; }

.fa-pied-piper-hat::before { content: "=EF=93=A5"; }

.fa-kickstarter-k::before { content: "=EF=8E=BC"; }

.fa-yandex::before { content: "=EF=90=93"; }

.fa-readme::before { content: "=EF=93=95"; }

.fa-html5::before { content: "=EF=84=BB"; }

.fa-sellsy::before { content: "=EF=88=93"; }

.fa-sass::before { content: "=EF=90=9E"; }

.fa-wirsindhandwerk::before, .fa-wsh::before { content: "=EE=8B=90"; }

.fa-buromobelexperte::before { content: "=EF=8D=BF"; }

.fa-salesforce::before { content: "=EF=A0=BB"; }

.fa-octopus-deploy::before { content: "=EE=82=82"; }

.fa-medapps::before { content: "=EF=8F=86"; }

.fa-ns8::before { content: "=EF=8F=95"; }

.fa-pinterest-p::before { content: "=EF=88=B1"; }

.fa-apper::before { content: "=EF=8D=B1"; }

.fa-fort-awesome::before { content: "=EF=8A=86"; }

.fa-waze::before { content: "=EF=A0=BF"; }

.fa-cc-jcb::before { content: "=EF=89=8B"; }

.fa-snapchat-ghost::before, .fa-snapchat::before { content: "=EF=8A=AB"; }

.fa-fantasy-flight-games::before { content: "=EF=9B=9C"; }

.fa-rust::before { content: "=EE=81=BA"; }

.fa-wix::before { content: "=EF=97=8F"; }

.fa-behance-square::before, .fa-square-behance::before { content: "=EF=86=
=B5"; }

.fa-supple::before { content: "=EF=8F=B9"; }

.fa-rebel::before { content: "=EF=87=90"; }

.fa-css3::before { content: "=EF=84=BC"; }

.fa-staylinked::before { content: "=EF=8F=B5"; }

.fa-kaggle::before { content: "=EF=97=BA"; }

.fa-space-awesome::before { content: "=EE=96=AC"; }

.fa-deviantart::before { content: "=EF=86=BD"; }

.fa-cpanel::before { content: "=EF=8E=88"; }

.fa-goodreads-g::before { content: "=EF=8E=A9"; }

.fa-git-square::before, .fa-square-git::before { content: "=EF=87=92"; }

.fa-square-tumblr::before, .fa-tumblr-square::before { content: "=EF=85=B4"=
; }

.fa-trello::before { content: "=EF=86=81"; }

.fa-creative-commons-nc-jp::before { content: "=EF=93=AA"; }

.fa-get-pocket::before { content: "=EF=89=A5"; }

.fa-perbyte::before { content: "=EE=82=83"; }

.fa-grunt::before { content: "=EF=8E=AD"; }

.fa-weebly::before { content: "=EF=97=8C"; }

.fa-connectdevelop::before { content: "=EF=88=8E"; }

.fa-leanpub::before { content: "=EF=88=92"; }

.fa-black-tie::before { content: "=EF=89=BE"; }

.fa-themeco::before { content: "=EF=97=86"; }

.fa-python::before { content: "=EF=8F=A2"; }

.fa-android::before { content: "=EF=85=BB"; }

.fa-bots::before { content: "=EE=8D=80"; }

.fa-free-code-camp::before { content: "=EF=8B=85"; }

.fa-hornbill::before { content: "=EF=96=92"; }

.fa-js::before { content: "=EF=8E=B8"; }

.fa-ideal::before { content: "=EE=80=93"; }

.fa-git::before { content: "=EF=87=93"; }

.fa-dev::before { content: "=EF=9B=8C"; }

.fa-sketch::before { content: "=EF=9F=86"; }

.fa-yandex-international::before { content: "=EF=90=94"; }

.fa-cc-amex::before { content: "=EF=87=B3"; }

.fa-uber::before { content: "=EF=90=82"; }

.fa-github::before { content: "=EF=82=9B"; }

.fa-php::before { content: "=EF=91=97"; }

.fa-alipay::before { content: "=EF=99=82"; }

.fa-youtube::before { content: "=EF=85=A7"; }

.fa-skyatlas::before { content: "=EF=88=96"; }

.fa-firefox-browser::before { content: "=EE=80=87"; }

.fa-replyd::before { content: "=EF=8F=A6"; }

.fa-suse::before { content: "=EF=9F=96"; }

.fa-jenkins::before { content: "=EF=8E=B6"; }

.fa-twitter::before { content: "=EF=82=99"; }

.fa-rockrms::before { content: "=EF=8F=A9"; }

.fa-pinterest::before { content: "=EF=83=92"; }

.fa-buffer::before { content: "=EF=A0=B7"; }

.fa-npm::before { content: "=EF=8F=94"; }

.fa-yammer::before { content: "=EF=A1=80"; }

.fa-btc::before { content: "=EF=85=9A"; }

.fa-dribbble::before { content: "=EF=85=BD"; }

.fa-stumbleupon-circle::before { content: "=EF=86=A3"; }

.fa-internet-explorer::before { content: "=EF=89=AB"; }

.fa-stubber::before { content: "=EE=97=87"; }

.fa-telegram-plane::before, .fa-telegram::before { content: "=EF=8B=86"; }

.fa-old-republic::before { content: "=EF=94=90"; }

.fa-odysee::before { content: "=EE=97=86"; }

.fa-square-whatsapp::before, .fa-whatsapp-square::before { content: "=EF=90=
=8C"; }

.fa-node-js::before { content: "=EF=8F=93"; }

.fa-edge-legacy::before { content: "=EE=81=B8"; }

.fa-slack-hash::before, .fa-slack::before { content: "=EF=86=98"; }

.fa-medrt::before { content: "=EF=8F=88"; }

.fa-usb::before { content: "=EF=8A=87"; }

.fa-tumblr::before { content: "=EF=85=B3"; }

.fa-vaadin::before { content: "=EF=90=88"; }

.fa-quora::before { content: "=EF=8B=84"; }

.fa-square-x-twitter::before { content: "=EE=98=9A"; }

.fa-reacteurope::before { content: "=EF=9D=9D"; }

.fa-medium-m::before, .fa-medium::before { content: "=EF=88=BA"; }

.fa-amilia::before { content: "=EF=8D=AD"; }

.fa-mixcloud::before { content: "=EF=8A=89"; }

.fa-flipboard::before { content: "=EF=91=8D"; }

.fa-viacoin::before { content: "=EF=88=B7"; }

.fa-critical-role::before { content: "=EF=9B=89"; }

.fa-sitrox::before { content: "=EE=91=8A"; }

.fa-discourse::before { content: "=EF=8E=93"; }

.fa-joomla::before { content: "=EF=86=AA"; }

.fa-mastodon::before { content: "=EF=93=B6"; }

.fa-airbnb::before { content: "=EF=A0=B4"; }

.fa-wolf-pack-battalion::before { content: "=EF=94=94"; }

.fa-buy-n-large::before { content: "=EF=A2=A6"; }

.fa-gulp::before { content: "=EF=8E=AE"; }

.fa-creative-commons-sampling-plus::before { content: "=EF=93=B1"; }

.fa-strava::before { content: "=EF=90=A8"; }

.fa-ember::before { content: "=EF=90=A3"; }

.fa-canadian-maple-leaf::before { content: "=EF=9E=85"; }

.fa-teamspeak::before { content: "=EF=93=B9"; }

.fa-pushed::before { content: "=EF=8F=A1"; }

.fa-wordpress-simple::before { content: "=EF=90=91"; }

.fa-nutritionix::before { content: "=EF=8F=96"; }

.fa-wodu::before { content: "=EE=82=88"; }

.fa-google-pay::before { content: "=EE=81=B9"; }

.fa-intercom::before { content: "=EF=9E=AF"; }

.fa-zhihu::before { content: "=EF=98=BF"; }

.fa-korvue::before { content: "=EF=90=AF"; }

.fa-pix::before { content: "=EE=90=BA"; }

.fa-steam-symbol::before { content: "=EF=8F=B6"; }

:host, :root { --fa-font-regular: normal 400 1em/1 "Font Awesome 6 Free"; }

@font-face { font-family: "Font Awesome 6 Free"; font-style: normal; font-w=
eight: 400; font-display: block; src: url("../webfonts/fa-regular-400.woff2=
") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"=
); }

.fa-regular, .far { font-weight: 400; }

:host, :root { --fa-style-family-classic: "Font Awesome 6 Free"; --fa-font-=
solid: normal 900 1em/1 "Font Awesome 6 Free"; }

@font-face { font-family: "Font Awesome 6 Free"; font-style: normal; font-w=
eight: 900; font-display: block; src: url("../webfonts/fa-solid-900.woff2")=
 format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); }

.fa-solid, .fas { font-weight: 900; }

@font-face { font-family: "Font Awesome 5 Brands"; font-display: block; fon=
t-weight: 400; src: url("../webfonts/fa-brands-400.woff2") format("woff2"),=
 url("../webfonts/fa-brands-400.ttf") format("truetype"); }

@font-face { font-family: "Font Awesome 5 Free"; font-display: block; font-=
weight: 900; src: url("../webfonts/fa-solid-900.woff2") format("woff2"), ur=
l("../webfonts/fa-solid-900.ttf") format("truetype"); }

@font-face { font-family: "Font Awesome 5 Free"; font-display: block; font-=
weight: 400; src: url("../webfonts/fa-regular-400.woff2") format("woff2"), =
url("../webfonts/fa-regular-400.ttf") format("truetype"); }

@font-face { font-family: FontAwesome; font-display: block; src: url("../we=
bfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.=
ttf") format("truetype"); }

@font-face { font-family: FontAwesome; font-display: block; src: url("../we=
bfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-40=
0.ttf") format("truetype"); }

@font-face { font-family: FontAwesome; font-display: block; src: url("../we=
bfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-=
400.ttf") format("truetype"); unicode-range: U+F003, U+F006, U+F014, U+F016=
-F017, U+F01A-F01B, U+F01D, U+F022, U+F03E, U+F044, U+F046, U+F05C-F05D, U+=
F06E, U+F070, U+F087-F088, U+F08A, U+F094, U+F096-F097, U+F09D, U+F0A0, U+F=
0A2, U+F0A4-F0A7, U+F0C5, U+F0C7, U+F0E5-F0E6, U+F0EB, U+F0F6-F0F8, U+F10C,=
 U+F114-F115, U+F118-F11A, U+F11C-F11D, U+F133, U+F147, U+F14E, U+F150-F152=
, U+F185-F186, U+F18E, U+F190-F192, U+F196, U+F1C1-F1C9, U+F1D9, U+F1DB, U+=
F1E3, U+F1EA, U+F1F7, U+F1F9, U+F20A, U+F247-F248, U+F24A, U+F24D, U+F255-F=
25B, U+F25D, U+F271-F274, U+F278, U+F27B, U+F28C, U+F28E, U+F29C, U+F2B5, U=
+F2B7, U+F2BA, U+F2BC, U+F2BE, U+F2C0-F2C1, U+F2C3, U+F2D0, U+F2D2, U+F2D4,=
 U+F2DC; }

@font-face { font-family: FontAwesome; font-display: block; src: url("../we=
bfonts/fa-v4compatibility.woff2") format("woff2"), url("../webfonts/fa-v4co=
mpatibility.ttf") format("truetype"); unicode-range: U+F041, U+F047, U+F065=
-F066, U+F07D-F07E, U+F080, U+F08B, U+F08E, U+F090, U+F09A, U+F0AC, U+F0AE,=
 U+F0B2, U+F0D0, U+F0D6, U+F0E4, U+F0EC, U+F10A-F10B, U+F123, U+F13E, U+F14=
8-F149, U+F14C, U+F156, U+F15E, U+F160-F161, U+F163, U+F175-F178, U+F195, U=
+F1F8, U+F219, U+F27A; }
------MultipartBoundary--gWmtkLL3aPLL9QvHLWg1Yif3XzwEYNRGNBhxAsKdsK----
Content-Type: text/css
Content-Transfer-Encoding: quoted-printable
Content-Location: https://it-notes.dragas.net/lib/animate/animate.min.738daa4d2c3fc0f677ff92c1cc3f81c397fb6d2176a31a2eeb011bf88fe5a9e68a57914321f32fbd1a7bef6cb88dc24b2ae1943a96c931d83f053979d1f25803.css

@charset "utf-8";

:root { --animate-duration: 1s; --animate-delay: 1s; --animate-repeat: 1; }

.animate__animated { animation-duration: var(--animate-duration); animation=
-fill-mode: both; }

.animate__animated.animate__infinite { animation-iteration-count: infinite;=
 }

.animate__animated.animate__repeat-1 { animation-iteration-count: var(--ani=
mate-repeat); }

.animate__animated.animate__repeat-2 { animation-iteration-count: calc(var(=
--animate-repeat)*2); }

.animate__animated.animate__repeat-3 { animation-iteration-count: calc(var(=
--animate-repeat)*3); }

.animate__animated.animate__delay-1s { animation-delay: var(--animate-delay=
); }

.animate__animated.animate__delay-2s { animation-delay: calc(var(--animate-=
delay)*2); }

.animate__animated.animate__delay-3s { animation-delay: calc(var(--animate-=
delay)*3); }

.animate__animated.animate__delay-4s { animation-delay: calc(var(--animate-=
delay)*4); }

.animate__animated.animate__delay-5s { animation-delay: calc(var(--animate-=
delay)*5); }

.animate__animated.animate__faster { animation-duration: calc(var(--animate=
-duration)/2); }

.animate__animated.animate__fast { animation-duration: calc(var(--animate-d=
uration)*0.8); }

.animate__animated.animate__slow { animation-duration: calc(var(--animate-d=
uration)*2); }

.animate__animated.animate__slower { animation-duration: calc(var(--animate=
-duration)*3); }

@media (prefers-reduced-motion: reduce), print {
  .animate__animated { animation-duration: 1ms !important; transition-durat=
ion: 1ms !important; animation-iteration-count: 1 !important; }
  .animate__animated[class*=3D"Out"] { opacity: 0; }
}

@-webkit-keyframes bounce {=20
  0%, 20%, 53%, 100% { animation-timing-function: cubic-bezier(0.215, 0.61,=
 0.355, 1); transform: translateZ(0px); }
  40%, 43% { animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.=
06); transform: translate3d(0px, -30px, 0px) scaleY(1.1); }
  70% { animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); =
transform: translate3d(0px, -15px, 0px) scaleY(1.05); }
  80% { transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); tr=
ansform: translateZ(0px) scaleY(0.95); }
  90% { transform: translate3d(0px, -4px, 0px) scaleY(1.02); }
}

@keyframes bounce {=20
  0%, 20%, 53%, 100% { animation-timing-function: cubic-bezier(0.215, 0.61,=
 0.355, 1); transform: translateZ(0px); }
  40%, 43% { animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.=
06); transform: translate3d(0px, -30px, 0px) scaleY(1.1); }
  70% { animation-timing-function: cubic-bezier(0.755, 0.05, 0.855, 0.06); =
transform: translate3d(0px, -15px, 0px) scaleY(1.05); }
  80% { transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1); tr=
ansform: translateZ(0px) scaleY(0.95); }
  90% { transform: translate3d(0px, -4px, 0px) scaleY(1.02); }
}

.animate__bounce { animation-name: bounce; transform-origin: center bottom;=
 }

@-webkit-keyframes flash {=20
  0%, 50%, 100% { opacity: 1; }
  25%, 75% { opacity: 0; }
}

@keyframes flash {=20
  0%, 50%, 100% { opacity: 1; }
  25%, 75% { opacity: 0; }
}

.animate__flash { animation-name: flash; }

@-webkit-keyframes pulse {=20
  0% { transform: scaleX(1); }
  50% { transform: scale3d(1.05, 1.05, 1.05); }
  100% { transform: scaleX(1); }
}

@keyframes pulse {=20
  0% { transform: scaleX(1); }
  50% { transform: scale3d(1.05, 1.05, 1.05); }
  100% { transform: scaleX(1); }
}

.animate__pulse { animation-name: pulse; animation-timing-function: ease-in=
-out; }

@-webkit-keyframes rubberBand {=20
  0% { transform: scaleX(1); }
  30% { transform: scale3d(1.25, 0.75, 1); }
  40% { transform: scale3d(0.75, 1.25, 1); }
  50% { transform: scale3d(1.15, 0.85, 1); }
  65% { transform: scale3d(0.95, 1.05, 1); }
  75% { transform: scale3d(1.05, 0.95, 1); }
  100% { transform: scaleX(1); }
}

@keyframes rubberBand {=20
  0% { transform: scaleX(1); }
  30% { transform: scale3d(1.25, 0.75, 1); }
  40% { transform: scale3d(0.75, 1.25, 1); }
  50% { transform: scale3d(1.15, 0.85, 1); }
  65% { transform: scale3d(0.95, 1.05, 1); }
  75% { transform: scale3d(1.05, 0.95, 1); }
  100% { transform: scaleX(1); }
}

.animate__rubberBand { animation-name: rubberBand; }

@-webkit-keyframes shakeX {=20
  0%, 100% { transform: translateZ(0px); }
  10%, 30%, 50%, 70%, 90% { transform: translate3d(-10px, 0px, 0px); }
  20%, 40%, 60%, 80% { transform: translate3d(10px, 0px, 0px); }
}

@keyframes shakeX {=20
  0%, 100% { transform: translateZ(0px); }
  10%, 30%, 50%, 70%, 90% { transform: translate3d(-10px, 0px, 0px); }
  20%, 40%, 60%, 80% { transform: translate3d(10px, 0px, 0px); }
}

.animate__shakeX { animation-name: shakeX; }

@-webkit-keyframes shakeY {=20
  0%, 100% { transform: translateZ(0px); }
  10%, 30%, 50%, 70%, 90% { transform: translate3d(0px, -10px, 0px); }
  20%, 40%, 60%, 80% { transform: translate3d(0px, 10px, 0px); }
}

@keyframes shakeY {=20
  0%, 100% { transform: translateZ(0px); }
  10%, 30%, 50%, 70%, 90% { transform: translate3d(0px, -10px, 0px); }
  20%, 40%, 60%, 80% { transform: translate3d(0px, 10px, 0px); }
}

.animate__shakeY { animation-name: shakeY; }

@-webkit-keyframes headShake {=20
  0% { transform: translateX(0px); }
  6.5% { transform: translateX(-6px) rotateY(-9deg); }
  18.5% { transform: translateX(5px) rotateY(7deg); }
  31.5% { transform: translateX(-3px) rotateY(-5deg); }
  43.5% { transform: translateX(2px) rotateY(3deg); }
  50% { transform: translateX(0px); }
}

@keyframes headShake {=20
  0% { transform: translateX(0px); }
  6.5% { transform: translateX(-6px) rotateY(-9deg); }
  18.5% { transform: translateX(5px) rotateY(7deg); }
  31.5% { transform: translateX(-3px) rotateY(-5deg); }
  43.5% { transform: translateX(2px) rotateY(3deg); }
  50% { transform: translateX(0px); }
}

.animate__headShake { animation-timing-function: ease-in-out; animation-nam=
e: headShake; }

@-webkit-keyframes swing {=20
  20% { transform: rotate(15deg); }
  40% { transform: rotate(-10deg); }
  60% { transform: rotate(5deg); }
  80% { transform: rotate(-5deg); }
  100% { transform: rotate(0deg); }
}

@keyframes swing {=20
  20% { transform: rotate(15deg); }
  40% { transform: rotate(-10deg); }
  60% { transform: rotate(5deg); }
  80% { transform: rotate(-5deg); }
  100% { transform: rotate(0deg); }
}

.animate__swing { transform-origin: center top; animation-name: swing; }

@-webkit-keyframes tada {=20
  0% { transform: scaleX(1); }
  10%, 20% { transform: scale3d(0.9, 0.9, 0.9) rotate(-3deg); }
  30%, 50%, 70%, 90% { transform: scale3d(1.1, 1.1, 1.1) rotate(3deg); }
  40%, 60%, 80% { transform: scale3d(1.1, 1.1, 1.1) rotate(-3deg); }
  100% { transform: scaleX(1); }
}

@keyframes tada {=20
  0% { transform: scaleX(1); }
  10%, 20% { transform: scale3d(0.9, 0.9, 0.9) rotate(-3deg); }
  30%, 50%, 70%, 90% { transform: scale3d(1.1, 1.1, 1.1) rotate(3deg); }
  40%, 60%, 80% { transform: scale3d(1.1, 1.1, 1.1) rotate(-3deg); }
  100% { transform: scaleX(1); }
}

.animate__tada { animation-name: tada; }

@-webkit-keyframes wobble {=20
  0% { transform: translateZ(0px); }
  15% { transform: translate3d(-25%, 0px, 0px) rotate(-5deg); }
  30% { transform: translate3d(20%, 0px, 0px) rotate(3deg); }
  45% { transform: translate3d(-15%, 0px, 0px) rotate(-3deg); }
  60% { transform: translate3d(10%, 0px, 0px) rotate(2deg); }
  75% { transform: translate3d(-5%, 0px, 0px) rotate(-1deg); }
  100% { transform: translateZ(0px); }
}

@keyframes wobble {=20
  0% { transform: translateZ(0px); }
  15% { transform: translate3d(-25%, 0px, 0px) rotate(-5deg); }
  30% { transform: translate3d(20%, 0px, 0px) rotate(3deg); }
  45% { transform: translate3d(-15%, 0px, 0px) rotate(-3deg); }
  60% { transform: translate3d(10%, 0px, 0px) rotate(2deg); }
  75% { transform: translate3d(-5%, 0px, 0px) rotate(-1deg); }
  100% { transform: translateZ(0px); }
}

.animate__wobble { animation-name: wobble; }

@-webkit-keyframes jello {=20
  0%, 11.1%, 100% { transform: translateZ(0px); }
  22.2% { transform: skewX(-12.5deg) skewY(-12.5deg); }
  33.3% { transform: skewX(6.25deg) skewY(6.25deg); }
  44.4% { transform: skewX(-3.125deg) skewY(-3.125deg); }
  55.5% { transform: skewX(1.5625deg) skewY(1.5625deg); }
  66.6% { transform: skewX(-0.78125deg) skewY(-0.78125deg); }
  77.7% { transform: skewX(0.390625deg) skewY(0.390625deg); }
  88.8% { transform: skewX(-0.195312deg) skewY(-0.195312deg); }
}

@keyframes jello {=20
  0%, 11.1%, 100% { transform: translateZ(0px); }
  22.2% { transform: skewX(-12.5deg) skewY(-12.5deg); }
  33.3% { transform: skewX(6.25deg) skewY(6.25deg); }
  44.4% { transform: skewX(-3.125deg) skewY(-3.125deg); }
  55.5% { transform: skewX(1.5625deg) skewY(1.5625deg); }
  66.6% { transform: skewX(-0.78125deg) skewY(-0.78125deg); }
  77.7% { transform: skewX(0.390625deg) skewY(0.390625deg); }
  88.8% { transform: skewX(-0.195312deg) skewY(-0.195312deg); }
}

.animate__jello { animation-name: jello; transform-origin: center center; }

@-webkit-keyframes heartBeat {=20
  0% { transform: scale(1); }
  14% { transform: scale(1.3); }
  28% { transform: scale(1); }
  42% { transform: scale(1.3); }
  70% { transform: scale(1); }
}

@keyframes heartBeat {=20
  0% { transform: scale(1); }
  14% { transform: scale(1.3); }
  28% { transform: scale(1); }
  42% { transform: scale(1.3); }
  70% { transform: scale(1); }
}

.animate__heartBeat { animation-name: heartBeat; animation-duration: calc(v=
ar(--animate-duration)*1.3); animation-timing-function: ease-in-out; }

@-webkit-keyframes backInDown {=20
  0% { transform: translateY(-1200px) scale(0.7); opacity: 0.7; }
  80% { transform: translateY(0px) scale(0.7); opacity: 0.7; }
  100% { transform: scale(1); opacity: 1; }
}

@keyframes backInDown {=20
  0% { transform: translateY(-1200px) scale(0.7); opacity: 0.7; }
  80% { transform: translateY(0px) scale(0.7); opacity: 0.7; }
  100% { transform: scale(1); opacity: 1; }
}

.animate__backInDown { animation-name: backInDown; }

@-webkit-keyframes backInLeft {=20
  0% { transform: translateX(-2000px) scale(0.7); opacity: 0.7; }
  80% { transform: translateX(0px) scale(0.7); opacity: 0.7; }
  100% { transform: scale(1); opacity: 1; }
}

@keyframes backInLeft {=20
  0% { transform: translateX(-2000px) scale(0.7); opacity: 0.7; }
  80% { transform: translateX(0px) scale(0.7); opacity: 0.7; }
  100% { transform: scale(1); opacity: 1; }
}

.animate__backInLeft { animation-name: backInLeft; }

@-webkit-keyframes backInRight {=20
  0% { transform: translateX(2000px) scale(0.7); opacity: 0.7; }
  80% { transform: translateX(0px) scale(0.7); opacity: 0.7; }
  100% { transform: scale(1); opacity: 1; }
}

@keyframes backInRight {=20
  0% { transform: translateX(2000px) scale(0.7); opacity: 0.7; }
  80% { transform: translateX(0px) scale(0.7); opacity: 0.7; }
  100% { transform: scale(1); opacity: 1; }
}

.animate__backInRight { animation-name: backInRight; }

@-webkit-keyframes backInUp {=20
  0% { transform: translateY(1200px) scale(0.7); opacity: 0.7; }
  80% { transform: translateY(0px) scale(0.7); opacity: 0.7; }
  100% { transform: scale(1); opacity: 1; }
}

@keyframes backInUp {=20
  0% { transform: translateY(1200px) scale(0.7); opacity: 0.7; }
  80% { transform: translateY(0px) scale(0.7); opacity: 0.7; }
  100% { transform: scale(1); opacity: 1; }
}

.animate__backInUp { animation-name: backInUp; }

@-webkit-keyframes backOutDown {=20
  0% { transform: scale(1); opacity: 1; }
  20% { transform: translateY(0px) scale(0.7); opacity: 0.7; }
  100% { transform: translateY(700px) scale(0.7); opacity: 0.7; }
}

@keyframes backOutDown {=20
  0% { transform: scale(1); opacity: 1; }
  20% { transform: translateY(0px) scale(0.7); opacity: 0.7; }
  100% { transform: translateY(700px) scale(0.7); opacity: 0.7; }
}

.animate__backOutDown { animation-name: backOutDown; }

@-webkit-keyframes backOutLeft {=20
  0% { transform: scale(1); opacity: 1; }
  20% { transform: translateX(0px) scale(0.7); opacity: 0.7; }
  100% { transform: translateX(-2000px) scale(0.7); opacity: 0.7; }
}

@keyframes backOutLeft {=20
  0% { transform: scale(1); opacity: 1; }
  20% { transform: translateX(0px) scale(0.7); opacity: 0.7; }
  100% { transform: translateX(-2000px) scale(0.7); opacity: 0.7; }
}

.animate__backOutLeft { animation-name: backOutLeft; }

@-webkit-keyframes backOutRight {=20
  0% { transform: scale(1); opacity: 1; }
  20% { transform: translateX(0px) scale(0.7); opacity: 0.7; }
  100% { transform: translateX(2000px) scale(0.7); opacity: 0.7; }
}

@keyframes backOutRight {=20
  0% { transform: scale(1); opacity: 1; }
  20% { transform: translateX(0px) scale(0.7); opacity: 0.7; }
  100% { transform: translateX(2000px) scale(0.7); opacity: 0.7; }
}

.animate__backOutRight { animation-name: backOutRight; }

@-webkit-keyframes backOutUp {=20
  0% { transform: scale(1); opacity: 1; }
  20% { transform: translateY(0px) scale(0.7); opacity: 0.7; }
  100% { transform: translateY(-700px) scale(0.7); opacity: 0.7; }
}

@keyframes backOutUp {=20
  0% { transform: scale(1); opacity: 1; }
  20% { transform: translateY(0px) scale(0.7); opacity: 0.7; }
  100% { transform: translateY(-700px) scale(0.7); opacity: 0.7; }
}

.animate__backOutUp { animation-name: backOutUp; }

@-webkit-keyframes bounceIn {=20
  0%, 20%, 40%, 60%, 80%, 100% { animation-timing-function: cubic-bezier(0.=
215, 0.61, 0.355, 1); }
  0% { opacity: 0; transform: scale3d(0.3, 0.3, 0.3); }
  20% { transform: scale3d(1.1, 1.1, 1.1); }
  40% { transform: scale3d(0.9, 0.9, 0.9); }
  60% { opacity: 1; transform: scale3d(1.03, 1.03, 1.03); }
  80% { transform: scale3d(0.97, 0.97, 0.97); }
  100% { opacity: 1; transform: scaleX(1); }
}

@keyframes bounceIn {=20
  0%, 20%, 40%, 60%, 80%, 100% { animation-timing-function: cubic-bezier(0.=
215, 0.61, 0.355, 1); }
  0% { opacity: 0; transform: scale3d(0.3, 0.3, 0.3); }
  20% { transform: scale3d(1.1, 1.1, 1.1); }
  40% { transform: scale3d(0.9, 0.9, 0.9); }
  60% { opacity: 1; transform: scale3d(1.03, 1.03, 1.03); }
  80% { transform: scale3d(0.97, 0.97, 0.97); }
  100% { opacity: 1; transform: scaleX(1); }
}

.animate__bounceIn { animation-duration: calc(var(--animate-duration)*0.75)=
; animation-name: bounceIn; }

@-webkit-keyframes bounceInDown {=20
  0%, 60%, 75%, 90%, 100% { animation-timing-function: cubic-bezier(0.215, =
0.61, 0.355, 1); }
  0% { opacity: 0; transform: translate3d(0px, -3000px, 0px) scaleY(3); }
  60% { opacity: 1; transform: translate3d(0px, 25px, 0px) scaleY(0.9); }
  75% { transform: translate3d(0px, -10px, 0px) scaleY(0.95); }
  90% { transform: translate3d(0px, 5px, 0px) scaleY(0.985); }
  100% { transform: translateZ(0px); }
}

@keyframes bounceInDown {=20
  0%, 60%, 75%, 90%, 100% { animation-timing-function: cubic-bezier(0.215, =
0.61, 0.355, 1); }
  0% { opacity: 0; transform: translate3d(0px, -3000px, 0px) scaleY(3); }
  60% { opacity: 1; transform: translate3d(0px, 25px, 0px) scaleY(0.9); }
  75% { transform: translate3d(0px, -10px, 0px) scaleY(0.95); }
  90% { transform: translate3d(0px, 5px, 0px) scaleY(0.985); }
  100% { transform: translateZ(0px); }
}

.animate__bounceInDown { animation-name: bounceInDown; }

@-webkit-keyframes bounceInLeft {=20
  0%, 60%, 75%, 90%, 100% { animation-timing-function: cubic-bezier(0.215, =
0.61, 0.355, 1); }
  0% { opacity: 0; transform: translate3d(-3000px, 0px, 0px) scaleX(3); }
  60% { opacity: 1; transform: translate3d(25px, 0px, 0px) scaleX(1); }
  75% { transform: translate3d(-10px, 0px, 0px) scaleX(0.98); }
  90% { transform: translate3d(5px, 0px, 0px) scaleX(0.995); }
  100% { transform: translateZ(0px); }
}

@keyframes bounceInLeft {=20
  0%, 60%, 75%, 90%, 100% { animation-timing-function: cubic-bezier(0.215, =
0.61, 0.355, 1); }
  0% { opacity: 0; transform: translate3d(-3000px, 0px, 0px) scaleX(3); }
  60% { opacity: 1; transform: translate3d(25px, 0px, 0px) scaleX(1); }
  75% { transform: translate3d(-10px, 0px, 0px) scaleX(0.98); }
  90% { transform: translate3d(5px, 0px, 0px) scaleX(0.995); }
  100% { transform: translateZ(0px); }
}

.animate__bounceInLeft { animation-name: bounceInLeft; }

@-webkit-keyframes bounceInRight {=20
  0%, 60%, 75%, 90%, 100% { animation-timing-function: cubic-bezier(0.215, =
0.61, 0.355, 1); }
  0% { opacity: 0; transform: translate3d(3000px, 0px, 0px) scaleX(3); }
  60% { opacity: 1; transform: translate3d(-25px, 0px, 0px) scaleX(1); }
  75% { transform: translate3d(10px, 0px, 0px) scaleX(0.98); }
  90% { transform: translate3d(-5px, 0px, 0px) scaleX(0.995); }
  100% { transform: translateZ(0px); }
}

@keyframes bounceInRight {=20
  0%, 60%, 75%, 90%, 100% { animation-timing-function: cubic-bezier(0.215, =
0.61, 0.355, 1); }
  0% { opacity: 0; transform: translate3d(3000px, 0px, 0px) scaleX(3); }
  60% { opacity: 1; transform: translate3d(-25px, 0px, 0px) scaleX(1); }
  75% { transform: translate3d(10px, 0px, 0px) scaleX(0.98); }
  90% { transform: translate3d(-5px, 0px, 0px) scaleX(0.995); }
  100% { transform: translateZ(0px); }
}

.animate__bounceInRight { animation-name: bounceInRight; }

@-webkit-keyframes bounceInUp {=20
  0%, 60%, 75%, 90%, 100% { animation-timing-function: cubic-bezier(0.215, =
0.61, 0.355, 1); }
  0% { opacity: 0; transform: translate3d(0px, 3000px, 0px) scaleY(5); }
  60% { opacity: 1; transform: translate3d(0px, -20px, 0px) scaleY(0.9); }
  75% { transform: translate3d(0px, 10px, 0px) scaleY(0.95); }
  90% { transform: translate3d(0px, -5px, 0px) scaleY(0.985); }
  100% { transform: translateZ(0px); }
}

@keyframes bounceInUp {=20
  0%, 60%, 75%, 90%, 100% { animation-timing-function: cubic-bezier(0.215, =
0.61, 0.355, 1); }
  0% { opacity: 0; transform: translate3d(0px, 3000px, 0px) scaleY(5); }
  60% { opacity: 1; transform: translate3d(0px, -20px, 0px) scaleY(0.9); }
  75% { transform: translate3d(0px, 10px, 0px) scaleY(0.95); }
  90% { transform: translate3d(0px, -5px, 0px) scaleY(0.985); }
  100% { transform: translateZ(0px); }
}

.animate__bounceInUp { animation-name: bounceInUp; }

@-webkit-keyframes bounceOut {=20
  20% { transform: scale3d(0.9, 0.9, 0.9); }
  50%, 55% { opacity: 1; transform: scale3d(1.1, 1.1, 1.1); }
  100% { opacity: 0; transform: scale3d(0.3, 0.3, 0.3); }
}

@keyframes bounceOut {=20
  20% { transform: scale3d(0.9, 0.9, 0.9); }
  50%, 55% { opacity: 1; transform: scale3d(1.1, 1.1, 1.1); }
  100% { opacity: 0; transform: scale3d(0.3, 0.3, 0.3); }
}

.animate__bounceOut { animation-duration: calc(var(--animate-duration)*0.75=
); animation-name: bounceOut; }

@-webkit-keyframes bounceOutDown {=20
  20% { transform: translate3d(0px, 10px, 0px) scaleY(0.985); }
  40%, 45% { opacity: 1; transform: translate3d(0px, -20px, 0px) scaleY(0.9=
); }
  100% { opacity: 0; transform: translate3d(0px, 2000px, 0px) scaleY(3); }
}

@keyframes bounceOutDown {=20
  20% { transform: translate3d(0px, 10px, 0px) scaleY(0.985); }
  40%, 45% { opacity: 1; transform: translate3d(0px, -20px, 0px) scaleY(0.9=
); }
  100% { opacity: 0; transform: translate3d(0px, 2000px, 0px) scaleY(3); }
}

.animate__bounceOutDown { animation-name: bounceOutDown; }

@-webkit-keyframes bounceOutLeft {=20
  20% { opacity: 1; transform: translate3d(20px, 0px, 0px) scaleX(0.9); }
  100% { opacity: 0; transform: translate3d(-2000px, 0px, 0px) scaleX(2); }
}

@keyframes bounceOutLeft {=20
  20% { opacity: 1; transform: translate3d(20px, 0px, 0px) scaleX(0.9); }
  100% { opacity: 0; transform: translate3d(-2000px, 0px, 0px) scaleX(2); }
}

.animate__bounceOutLeft { animation-name: bounceOutLeft; }

@-webkit-keyframes bounceOutRight {=20
  20% { opacity: 1; transform: translate3d(-20px, 0px, 0px) scaleX(0.9); }
  100% { opacity: 0; transform: translate3d(2000px, 0px, 0px) scaleX(2); }
}

@keyframes bounceOutRight {=20
  20% { opacity: 1; transform: translate3d(-20px, 0px, 0px) scaleX(0.9); }
  100% { opacity: 0; transform: translate3d(2000px, 0px, 0px) scaleX(2); }
}

.animate__bounceOutRight { animation-name: bounceOutRight; }

@-webkit-keyframes bounceOutUp {=20
  20% { transform: translate3d(0px, -10px, 0px) scaleY(0.985); }
  40%, 45% { opacity: 1; transform: translate3d(0px, 20px, 0px) scaleY(0.9)=
; }
  100% { opacity: 0; transform: translate3d(0px, -2000px, 0px) scaleY(3); }
}

@keyframes bounceOutUp {=20
  20% { transform: translate3d(0px, -10px, 0px) scaleY(0.985); }
  40%, 45% { opacity: 1; transform: translate3d(0px, 20px, 0px) scaleY(0.9)=
; }
  100% { opacity: 0; transform: translate3d(0px, -2000px, 0px) scaleY(3); }
}

.animate__bounceOutUp { animation-name: bounceOutUp; }

@-webkit-keyframes fadeIn {=20
  0% { opacity: 0; }
  100% { opacity: 1; }
}

@keyframes fadeIn {=20
  0% { opacity: 0; }
  100% { opacity: 1; }
}

.animate__fadeIn { animation-name: fadeIn; }

@-webkit-keyframes fadeInDown {=20
  0% { opacity: 0; transform: translate3d(0px, -100%, 0px); }
  100% { opacity: 1; transform: translateZ(0px); }
}

@keyframes fadeInDown {=20
  0% { opacity: 0; transform: translate3d(0px, -100%, 0px); }
  100% { opacity: 1; transform: translateZ(0px); }
}

.animate__fadeInDown { animation-name: fadeInDown; }

@-webkit-keyframes fadeInDownBig {=20
  0% { opacity: 0; transform: translate3d(0px, -2000px, 0px); }
  100% { opacity: 1; transform: translateZ(0px); }
}

@keyframes fadeInDownBig {=20
  0% { opacity: 0; transform: translate3d(0px, -2000px, 0px); }
  100% { opacity: 1; transform: translateZ(0px); }
}

.animate__fadeInDownBig { animation-name: fadeInDownBig; }

@-webkit-keyframes fadeInLeft {=20
  0% { opacity: 0; transform: translate3d(-100%, 0px, 0px); }
  100% { opacity: 1; transform: translateZ(0px); }
}

@keyframes fadeInLeft {=20
  0% { opacity: 0; transform: translate3d(-100%, 0px, 0px); }
  100% { opacity: 1; transform: translateZ(0px); }
}

.animate__fadeInLeft { animation-name: fadeInLeft; }

@-webkit-keyframes fadeInLeftBig {=20
  0% { opacity: 0; transform: translate3d(-2000px, 0px, 0px); }
  100% { opacity: 1; transform: translateZ(0px); }
}

@keyframes fadeInLeftBig {=20
  0% { opacity: 0; transform: translate3d(-2000px, 0px, 0px); }
  100% { opacity: 1; transform: translateZ(0px); }
}

.animate__fadeInLeftBig { animation-name: fadeInLeftBig; }

@-webkit-keyframes fadeInRight {=20
  0% { opacity: 0; transform: translate3d(100%, 0px, 0px); }
  100% { opacity: 1; transform: translateZ(0px); }
}

@keyframes fadeInRight {=20
  0% { opacity: 0; transform: translate3d(100%, 0px, 0px); }
  100% { opacity: 1; transform: translateZ(0px); }
}

.animate__fadeInRight { animation-name: fadeInRight; }

@-webkit-keyframes fadeInRightBig {=20
  0% { opacity: 0; transform: translate3d(2000px, 0px, 0px); }
  100% { opacity: 1; transform: translateZ(0px); }
}

@keyframes fadeInRightBig {=20
  0% { opacity: 0; transform: translate3d(2000px, 0px, 0px); }
  100% { opacity: 1; transform: translateZ(0px); }
}

.animate__fadeInRightBig { animation-name: fadeInRightBig; }

@-webkit-keyframes fadeInUp {=20
  0% { opacity: 0; transform: translate3d(0px, 100%, 0px); }
  100% { opacity: 1; transform: translateZ(0px); }
}

@keyframes fadeInUp {=20
  0% { opacity: 0; transform: translate3d(0px, 100%, 0px); }
  100% { opacity: 1; transform: translateZ(0px); }
}

.animate__fadeInUp { animation-name: fadeInUp; }

@-webkit-keyframes fadeInUpBig {=20
  0% { opacity: 0; transform: translate3d(0px, 2000px, 0px); }
  100% { opacity: 1; transform: translateZ(0px); }
}

@keyframes fadeInUpBig {=20
  0% { opacity: 0; transform: translate3d(0px, 2000px, 0px); }
  100% { opacity: 1; transform: translateZ(0px); }
}

.animate__fadeInUpBig { animation-name: fadeInUpBig; }

@-webkit-keyframes fadeInTopLeft {=20
  0% { opacity: 0; transform: translate3d(-100%, -100%, 0px); }
  100% { opacity: 1; transform: translateZ(0px); }
}

@keyframes fadeInTopLeft {=20
  0% { opacity: 0; transform: translate3d(-100%, -100%, 0px); }
  100% { opacity: 1; transform: translateZ(0px); }
}

.animate__fadeInTopLeft { animation-name: fadeInTopLeft; }

@-webkit-keyframes fadeInTopRight {=20
  0% { opacity: 0; transform: translate3d(100%, -100%, 0px); }
  100% { opacity: 1; transform: translateZ(0px); }
}

@keyframes fadeInTopRight {=20
  0% { opacity: 0; transform: translate3d(100%, -100%, 0px); }
  100% { opacity: 1; transform: translateZ(0px); }
}

.animate__fadeInTopRight { animation-name: fadeInTopRight; }

@-webkit-keyframes fadeInBottomLeft {=20
  0% { opacity: 0; transform: translate3d(-100%, 100%, 0px); }
  100% { opacity: 1; transform: translateZ(0px); }
}

@keyframes fadeInBottomLeft {=20
  0% { opacity: 0; transform: translate3d(-100%, 100%, 0px); }
  100% { opacity: 1; transform: translateZ(0px); }
}

.animate__fadeInBottomLeft { animation-name: fadeInBottomLeft; }

@-webkit-keyframes fadeInBottomRight {=20
  0% { opacity: 0; transform: translate3d(100%, 100%, 0px); }
  100% { opacity: 1; transform: translateZ(0px); }
}

@keyframes fadeInBottomRight {=20
  0% { opacity: 0; transform: translate3d(100%, 100%, 0px); }
  100% { opacity: 1; transform: translateZ(0px); }
}

.animate__fadeInBottomRight { animation-name: fadeInBottomRight; }

@-webkit-keyframes fadeOut {=20
  0% { opacity: 1; }
  100% { opacity: 0; }
}

@keyframes fadeOut {=20
  0% { opacity: 1; }
  100% { opacity: 0; }
}

.animate__fadeOut { animation-name: fadeOut; }

@-webkit-keyframes fadeOutDown {=20
  0% { opacity: 1; }
  100% { opacity: 0; transform: translate3d(0px, 100%, 0px); }
}

@keyframes fadeOutDown {=20
  0% { opacity: 1; }
  100% { opacity: 0; transform: translate3d(0px, 100%, 0px); }
}

.animate__fadeOutDown { animation-name: fadeOutDown; }

@-webkit-keyframes fadeOutDownBig {=20
  0% { opacity: 1; }
  100% { opacity: 0; transform: translate3d(0px, 2000px, 0px); }
}

@keyframes fadeOutDownBig {=20
  0% { opacity: 1; }
  100% { opacity: 0; transform: translate3d(0px, 2000px, 0px); }
}

.animate__fadeOutDownBig { animation-name: fadeOutDownBig; }

@-webkit-keyframes fadeOutLeft {=20
  0% { opacity: 1; }
  100% { opacity: 0; transform: translate3d(-100%, 0px, 0px); }
}

@keyframes fadeOutLeft {=20
  0% { opacity: 1; }
  100% { opacity: 0; transform: translate3d(-100%, 0px, 0px); }
}

.animate__fadeOutLeft { animation-name: fadeOutLeft; }

@-webkit-keyframes fadeOutLeftBig {=20
  0% { opacity: 1; }
  100% { opacity: 0; transform: translate3d(-2000px, 0px, 0px); }
}

@keyframes fadeOutLeftBig {=20
  0% { opacity: 1; }
  100% { opacity: 0; transform: translate3d(-2000px, 0px, 0px); }
}

.animate__fadeOutLeftBig { animation-name: fadeOutLeftBig; }

@-webkit-keyframes fadeOutRight {=20
  0% { opacity: 1; }
  100% { opacity: 0; transform: translate3d(100%, 0px, 0px); }
}

@keyframes fadeOutRight {=20
  0% { opacity: 1; }
  100% { opacity: 0; transform: translate3d(100%, 0px, 0px); }
}

.animate__fadeOutRight { animation-name: fadeOutRight; }

@-webkit-keyframes fadeOutRightBig {=20
  0% { opacity: 1; }
  100% { opacity: 0; transform: translate3d(2000px, 0px, 0px); }
}

@keyframes fadeOutRightBig {=20
  0% { opacity: 1; }
  100% { opacity: 0; transform: translate3d(2000px, 0px, 0px); }
}

.animate__fadeOutRightBig { animation-name: fadeOutRightBig; }

@-webkit-keyframes fadeOutUp {=20
  0% { opacity: 1; }
  100% { opacity: 0; transform: translate3d(0px, -100%, 0px); }
}

@keyframes fadeOutUp {=20
  0% { opacity: 1; }
  100% { opacity: 0; transform: translate3d(0px, -100%, 0px); }
}

.animate__fadeOutUp { animation-name: fadeOutUp; }

@-webkit-keyframes fadeOutUpBig {=20
  0% { opacity: 1; }
  100% { opacity: 0; transform: translate3d(0px, -2000px, 0px); }
}

@keyframes fadeOutUpBig {=20
  0% { opacity: 1; }
  100% { opacity: 0; transform: translate3d(0px, -2000px, 0px); }
}

.animate__fadeOutUpBig { animation-name: fadeOutUpBig; }

@-webkit-keyframes fadeOutTopLeft {=20
  0% { opacity: 1; transform: translateZ(0px); }
  100% { opacity: 0; transform: translate3d(-100%, -100%, 0px); }
}

@keyframes fadeOutTopLeft {=20
  0% { opacity: 1; transform: translateZ(0px); }
  100% { opacity: 0; transform: translate3d(-100%, -100%, 0px); }
}

.animate__fadeOutTopLeft { animation-name: fadeOutTopLeft; }

@-webkit-keyframes fadeOutTopRight {=20
  0% { opacity: 1; transform: translateZ(0px); }
  100% { opacity: 0; transform: translate3d(100%, -100%, 0px); }
}

@keyframes fadeOutTopRight {=20
  0% { opacity: 1; transform: translateZ(0px); }
  100% { opacity: 0; transform: translate3d(100%, -100%, 0px); }
}

.animate__fadeOutTopRight { animation-name: fadeOutTopRight; }

@-webkit-keyframes fadeOutBottomRight {=20
  0% { opacity: 1; transform: translateZ(0px); }
  100% { opacity: 0; transform: translate3d(100%, 100%, 0px); }
}

@keyframes fadeOutBottomRight {=20
  0% { opacity: 1; transform: translateZ(0px); }
  100% { opacity: 0; transform: translate3d(100%, 100%, 0px); }
}

.animate__fadeOutBottomRight { animation-name: fadeOutBottomRight; }

@-webkit-keyframes fadeOutBottomLeft {=20
  0% { opacity: 1; transform: translateZ(0px); }
  100% { opacity: 0; transform: translate3d(-100%, 100%, 0px); }
}

@keyframes fadeOutBottomLeft {=20
  0% { opacity: 1; transform: translateZ(0px); }
  100% { opacity: 0; transform: translate3d(-100%, 100%, 0px); }
}

.animate__fadeOutBottomLeft { animation-name: fadeOutBottomLeft; }

@-webkit-keyframes flip {=20
  0% { transform: perspective(400px) scaleX(1) translateZ(0px) rotateY(-1tu=
rn); animation-timing-function: ease-out; }
  40% { transform: perspective(400px) scaleX(1) translateZ(150px) rotateY(-=
190deg); animation-timing-function: ease-out; }
  50% { transform: perspective(400px) scaleX(1) translateZ(150px) rotateY(-=
170deg); animation-timing-function: ease-in; }
  80% { transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translateZ(=
0px) rotateY(0deg); animation-timing-function: ease-in; }
  100% { transform: perspective(400px) scaleX(1) translateZ(0px) rotateY(0d=
eg); animation-timing-function: ease-in; }
}

@keyframes flip {=20
  0% { transform: perspective(400px) scaleX(1) translateZ(0px) rotateY(-1tu=
rn); animation-timing-function: ease-out; }
  40% { transform: perspective(400px) scaleX(1) translateZ(150px) rotateY(-=
190deg); animation-timing-function: ease-out; }
  50% { transform: perspective(400px) scaleX(1) translateZ(150px) rotateY(-=
170deg); animation-timing-function: ease-in; }
  80% { transform: perspective(400px) scale3d(0.95, 0.95, 0.95) translateZ(=
0px) rotateY(0deg); animation-timing-function: ease-in; }
  100% { transform: perspective(400px) scaleX(1) translateZ(0px) rotateY(0d=
eg); animation-timing-function: ease-in; }
}

.animate__animated.animate__flip { backface-visibility: visible; animation-=
name: flip; }

@-webkit-keyframes flipInX {=20
  0% { transform: perspective(400px) rotateX(90deg); animation-timing-funct=
ion: ease-in; opacity: 0; }
  40% { transform: perspective(400px) rotateX(-20deg); animation-timing-fun=
ction: ease-in; }
  60% { transform: perspective(400px) rotateX(10deg); opacity: 1; }
  80% { transform: perspective(400px) rotateX(-5deg); }
  100% { transform: perspective(400px); }
}

@keyframes flipInX {=20
  0% { transform: perspective(400px) rotateX(90deg); animation-timing-funct=
ion: ease-in; opacity: 0; }
  40% { transform: perspective(400px) rotateX(-20deg); animation-timing-fun=
ction: ease-in; }
  60% { transform: perspective(400px) rotateX(10deg); opacity: 1; }
  80% { transform: perspective(400px) rotateX(-5deg); }
  100% { transform: perspective(400px); }
}

.animate__flipInX { animation-name: flipInX; backface-visibility: visible !=
important; }

@-webkit-keyframes flipInY {=20
  0% { transform: perspective(400px) rotateY(90deg); animation-timing-funct=
ion: ease-in; opacity: 0; }
  40% { transform: perspective(400px) rotateY(-20deg); animation-timing-fun=
ction: ease-in; }
  60% { transform: perspective(400px) rotateY(10deg); opacity: 1; }
  80% { transform: perspective(400px) rotateY(-5deg); }
  100% { transform: perspective(400px); }
}

@keyframes flipInY {=20
  0% { transform: perspective(400px) rotateY(90deg); animation-timing-funct=
ion: ease-in; opacity: 0; }
  40% { transform: perspective(400px) rotateY(-20deg); animation-timing-fun=
ction: ease-in; }
  60% { transform: perspective(400px) rotateY(10deg); opacity: 1; }
  80% { transform: perspective(400px) rotateY(-5deg); }
  100% { transform: perspective(400px); }
}

.animate__flipInY { animation-name: flipInY; backface-visibility: visible !=
important; }

@-webkit-keyframes flipOutX {=20
  0% { transform: perspective(400px); }
  30% { transform: perspective(400px) rotateX(-20deg); opacity: 1; }
  100% { transform: perspective(400px) rotateX(90deg); opacity: 0; }
}

@keyframes flipOutX {=20
  0% { transform: perspective(400px); }
  30% { transform: perspective(400px) rotateX(-20deg); opacity: 1; }
  100% { transform: perspective(400px) rotateX(90deg); opacity: 0; }
}

.animate__flipOutX { animation-duration: calc(var(--animate-duration)*0.75)=
; animation-name: flipOutX; backface-visibility: visible !important; }

@-webkit-keyframes flipOutY {=20
  0% { transform: perspective(400px); }
  30% { transform: perspective(400px) rotateY(-15deg); opacity: 1; }
  100% { transform: perspective(400px) rotateY(90deg); opacity: 0; }
}

@keyframes flipOutY {=20
  0% { transform: perspective(400px); }
  30% { transform: perspective(400px) rotateY(-15deg); opacity: 1; }
  100% { transform: perspective(400px) rotateY(90deg); opacity: 0; }
}

.animate__flipOutY { animation-duration: calc(var(--animate-duration)*0.75)=
; animation-name: flipOutY; backface-visibility: visible !important; }

@-webkit-keyframes lightSpeedInRight {=20
  0% { transform: translate3d(100%, 0px, 0px) skewX(-30deg); opacity: 0; }
  60% { transform: skewX(20deg); opacity: 1; }
  80% { transform: skewX(-5deg); }
  100% { transform: translateZ(0px); }
}

@keyframes lightSpeedInRight {=20
  0% { transform: translate3d(100%, 0px, 0px) skewX(-30deg); opacity: 0; }
  60% { transform: skewX(20deg); opacity: 1; }
  80% { transform: skewX(-5deg); }
  100% { transform: translateZ(0px); }
}

.animate__lightSpeedInRight { animation-name: lightSpeedInRight; animation-=
timing-function: ease-out; }

@-webkit-keyframes lightSpeedInLeft {=20
  0% { transform: translate3d(-100%, 0px, 0px) skewX(30deg); opacity: 0; }
  60% { transform: skewX(-20deg); opacity: 1; }
  80% { transform: skewX(5deg); }
  100% { transform: translateZ(0px); }
}

@keyframes lightSpeedInLeft {=20
  0% { transform: translate3d(-100%, 0px, 0px) skewX(30deg); opacity: 0; }
  60% { transform: skewX(-20deg); opacity: 1; }
  80% { transform: skewX(5deg); }
  100% { transform: translateZ(0px); }
}

.animate__lightSpeedInLeft { animation-name: lightSpeedInLeft; animation-ti=
ming-function: ease-out; }

@-webkit-keyframes lightSpeedOutRight {=20
  0% { opacity: 1; }
  100% { transform: translate3d(100%, 0px, 0px) skewX(30deg); opacity: 0; }
}

@keyframes lightSpeedOutRight {=20
  0% { opacity: 1; }
  100% { transform: translate3d(100%, 0px, 0px) skewX(30deg); opacity: 0; }
}

.animate__lightSpeedOutRight { animation-name: lightSpeedOutRight; animatio=
n-timing-function: ease-in; }

@-webkit-keyframes lightSpeedOutLeft {=20
  0% { opacity: 1; }
  100% { transform: translate3d(-100%, 0px, 0px) skewX(-30deg); opacity: 0;=
 }
}

@keyframes lightSpeedOutLeft {=20
  0% { opacity: 1; }
  100% { transform: translate3d(-100%, 0px, 0px) skewX(-30deg); opacity: 0;=
 }
}

.animate__lightSpeedOutLeft { animation-name: lightSpeedOutLeft; animation-=
timing-function: ease-in; }

@-webkit-keyframes rotateIn {=20
  0% { transform: rotate(-200deg); opacity: 0; }
  100% { transform: translateZ(0px); opacity: 1; }
}

@keyframes rotateIn {=20
  0% { transform: rotate(-200deg); opacity: 0; }
  100% { transform: translateZ(0px); opacity: 1; }
}

.animate__rotateIn { animation-name: rotateIn; transform-origin: center cen=
ter; }

@-webkit-keyframes rotateInDownLeft {=20
  0% { transform: rotate(-45deg); opacity: 0; }
  100% { transform: translateZ(0px); opacity: 1; }
}

@keyframes rotateInDownLeft {=20
  0% { transform: rotate(-45deg); opacity: 0; }
  100% { transform: translateZ(0px); opacity: 1; }
}

.animate__rotateInDownLeft { animation-name: rotateInDownLeft; transform-or=
igin: left bottom; }

@-webkit-keyframes rotateInDownRight {=20
  0% { transform: rotate(45deg); opacity: 0; }
  100% { transform: translateZ(0px); opacity: 1; }
}

@keyframes rotateInDownRight {=20
  0% { transform: rotate(45deg); opacity: 0; }
  100% { transform: translateZ(0px); opacity: 1; }
}

.animate__rotateInDownRight { animation-name: rotateInDownRight; transform-=
origin: right bottom; }

@-webkit-keyframes rotateInUpLeft {=20
  0% { transform: rotate(45deg); opacity: 0; }
  100% { transform: translateZ(0px); opacity: 1; }
}

@keyframes rotateInUpLeft {=20
  0% { transform: rotate(45deg); opacity: 0; }
  100% { transform: translateZ(0px); opacity: 1; }
}

.animate__rotateInUpLeft { animation-name: rotateInUpLeft; transform-origin=
: left bottom; }

@-webkit-keyframes rotateInUpRight {=20
  0% { transform: rotate(-90deg); opacity: 0; }
  100% { transform: translateZ(0px); opacity: 1; }
}

@keyframes rotateInUpRight {=20
  0% { transform: rotate(-90deg); opacity: 0; }
  100% { transform: translateZ(0px); opacity: 1; }
}

.animate__rotateInUpRight { animation-name: rotateInUpRight; transform-orig=
in: right bottom; }

@-webkit-keyframes rotateOut {=20
  0% { opacity: 1; }
  100% { transform: rotate(200deg); opacity: 0; }
}

@keyframes rotateOut {=20
  0% { opacity: 1; }
  100% { transform: rotate(200deg); opacity: 0; }
}

.animate__rotateOut { animation-name: rotateOut; transform-origin: center c=
enter; }

@-webkit-keyframes rotateOutDownLeft {=20
  0% { opacity: 1; }
  100% { transform: rotate(45deg); opacity: 0; }
}

@keyframes rotateOutDownLeft {=20
  0% { opacity: 1; }
  100% { transform: rotate(45deg); opacity: 0; }
}

.animate__rotateOutDownLeft { animation-name: rotateOutDownLeft; transform-=
origin: left bottom; }

@-webkit-keyframes rotateOutDownRight {=20
  0% { opacity: 1; }
  100% { transform: rotate(-45deg); opacity: 0; }
}

@keyframes rotateOutDownRight {=20
  0% { opacity: 1; }
  100% { transform: rotate(-45deg); opacity: 0; }
}

.animate__rotateOutDownRight { animation-name: rotateOutDownRight; transfor=
m-origin: right bottom; }

@-webkit-keyframes rotateOutUpLeft {=20
  0% { opacity: 1; }
  100% { transform: rotate(-45deg); opacity: 0; }
}

@keyframes rotateOutUpLeft {=20
  0% { opacity: 1; }
  100% { transform: rotate(-45deg); opacity: 0; }
}

.animate__rotateOutUpLeft { animation-name: rotateOutUpLeft; transform-orig=
in: left bottom; }

@-webkit-keyframes rotateOutUpRight {=20
  0% { opacity: 1; }
  100% { transform: rotate(90deg); opacity: 0; }
}

@keyframes rotateOutUpRight {=20
  0% { opacity: 1; }
  100% { transform: rotate(90deg); opacity: 0; }
}

.animate__rotateOutUpRight { animation-name: rotateOutUpRight; transform-or=
igin: right bottom; }

@-webkit-keyframes hinge {=20
  0% { animation-timing-function: ease-in-out; }
  20%, 60% { transform: rotate(80deg); animation-timing-function: ease-in-o=
ut; }
  40%, 80% { transform: rotate(60deg); animation-timing-function: ease-in-o=
ut; opacity: 1; }
  100% { transform: translate3d(0px, 700px, 0px); opacity: 0; }
}

@keyframes hinge {=20
  0% { animation-timing-function: ease-in-out; }
  20%, 60% { transform: rotate(80deg); animation-timing-function: ease-in-o=
ut; }
  40%, 80% { transform: rotate(60deg); animation-timing-function: ease-in-o=
ut; opacity: 1; }
  100% { transform: translate3d(0px, 700px, 0px); opacity: 0; }
}

.animate__hinge { animation-duration: calc(var(--animate-duration)*2); anim=
ation-name: hinge; transform-origin: left top; }

@-webkit-keyframes jackInTheBox {=20
  0% { opacity: 0; transform: scale(0.1) rotate(30deg); transform-origin: c=
enter bottom; }
  50% { transform: rotate(-10deg); }
  70% { transform: rotate(3deg); }
  100% { opacity: 1; transform: scale(1); }
}

@keyframes jackInTheBox {=20
  0% { opacity: 0; transform: scale(0.1) rotate(30deg); transform-origin: c=
enter bottom; }
  50% { transform: rotate(-10deg); }
  70% { transform: rotate(3deg); }
  100% { opacity: 1; transform: scale(1); }
}

.animate__jackInTheBox { animation-name: jackInTheBox; }

@-webkit-keyframes rollIn {=20
  0% { opacity: 0; transform: translate3d(-100%, 0px, 0px) rotate(-120deg);=
 }
  100% { opacity: 1; transform: translateZ(0px); }
}

@keyframes rollIn {=20
  0% { opacity: 0; transform: translate3d(-100%, 0px, 0px) rotate(-120deg);=
 }
  100% { opacity: 1; transform: translateZ(0px); }
}

.animate__rollIn { animation-name: rollIn; }

@-webkit-keyframes rollOut {=20
  0% { opacity: 1; }
  100% { opacity: 0; transform: translate3d(100%, 0px, 0px) rotate(120deg);=
 }
}

@keyframes rollOut {=20
  0% { opacity: 1; }
  100% { opacity: 0; transform: translate3d(100%, 0px, 0px) rotate(120deg);=
 }
}

.animate__rollOut { animation-name: rollOut; }

@-webkit-keyframes zoomIn {=20
  0% { opacity: 0; transform: scale3d(0.3, 0.3, 0.3); }
  50% { opacity: 1; }
}

@keyframes zoomIn {=20
  0% { opacity: 0; transform: scale3d(0.3, 0.3, 0.3); }
  50% { opacity: 1; }
}

.animate__zoomIn { animation-name: zoomIn; }

@-webkit-keyframes zoomInDown {=20
  0% { opacity: 0; transform: scale3d(0.1, 0.1, 0.1) translate3d(0px, -1000=
px, 0px); animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19)=
; }
  60% { opacity: 1; transform: scale3d(0.475, 0.475, 0.475) translate3d(0px=
, 60px, 0px); animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1=
); }
}

@keyframes zoomInDown {=20
  0% { opacity: 0; transform: scale3d(0.1, 0.1, 0.1) translate3d(0px, -1000=
px, 0px); animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19)=
; }
  60% { opacity: 1; transform: scale3d(0.475, 0.475, 0.475) translate3d(0px=
, 60px, 0px); animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1=
); }
}

.animate__zoomInDown { animation-name: zoomInDown; }

@-webkit-keyframes zoomInLeft {=20
  0% { opacity: 0; transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0=
px, 0px); animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19)=
; }
  60% { opacity: 1; transform: scale3d(0.475, 0.475, 0.475) translate3d(10p=
x, 0px, 0px); animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1=
); }
}

@keyframes zoomInLeft {=20
  0% { opacity: 0; transform: scale3d(0.1, 0.1, 0.1) translate3d(-1000px, 0=
px, 0px); animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19)=
; }
  60% { opacity: 1; transform: scale3d(0.475, 0.475, 0.475) translate3d(10p=
x, 0px, 0px); animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1=
); }
}

.animate__zoomInLeft { animation-name: zoomInLeft; }

@-webkit-keyframes zoomInRight {=20
  0% { opacity: 0; transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0p=
x, 0px); animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);=
 }
  60% { opacity: 1; transform: scale3d(0.475, 0.475, 0.475) translate3d(-10=
px, 0px, 0px); animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, =
1); }
}

@keyframes zoomInRight {=20
  0% { opacity: 0; transform: scale3d(0.1, 0.1, 0.1) translate3d(1000px, 0p=
x, 0px); animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);=
 }
  60% { opacity: 1; transform: scale3d(0.475, 0.475, 0.475) translate3d(-10=
px, 0px, 0px); animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, =
1); }
}

.animate__zoomInRight { animation-name: zoomInRight; }

@-webkit-keyframes zoomInUp {=20
  0% { opacity: 0; transform: scale3d(0.1, 0.1, 0.1) translate3d(0px, 1000p=
x, 0px); animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);=
 }
  60% { opacity: 1; transform: scale3d(0.475, 0.475, 0.475) translate3d(0px=
, -60px, 0px); animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, =
1); }
}

@keyframes zoomInUp {=20
  0% { opacity: 0; transform: scale3d(0.1, 0.1, 0.1) translate3d(0px, 1000p=
x, 0px); animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);=
 }
  60% { opacity: 1; transform: scale3d(0.475, 0.475, 0.475) translate3d(0px=
, -60px, 0px); animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, =
1); }
}

.animate__zoomInUp { animation-name: zoomInUp; }

@-webkit-keyframes zoomOut {=20
  0% { opacity: 1; }
  50% { opacity: 0; transform: scale3d(0.3, 0.3, 0.3); }
  100% { opacity: 0; }
}

@keyframes zoomOut {=20
  0% { opacity: 1; }
  50% { opacity: 0; transform: scale3d(0.3, 0.3, 0.3); }
  100% { opacity: 0; }
}

.animate__zoomOut { animation-name: zoomOut; }

@-webkit-keyframes zoomOutDown {=20
  40% { opacity: 1; transform: scale3d(0.475, 0.475, 0.475) translate3d(0px=
, -60px, 0px); animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, =
0.19); }
  100% { opacity: 0; transform: scale3d(0.1, 0.1, 0.1) translate3d(0px, 200=
0px, 0px); animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); =
}
}

@keyframes zoomOutDown {=20
  40% { opacity: 1; transform: scale3d(0.475, 0.475, 0.475) translate3d(0px=
, -60px, 0px); animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, =
0.19); }
  100% { opacity: 0; transform: scale3d(0.1, 0.1, 0.1) translate3d(0px, 200=
0px, 0px); animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1); =
}
}

.animate__zoomOutDown { animation-name: zoomOutDown; transform-origin: cent=
er bottom; }

@-webkit-keyframes zoomOutLeft {=20
  40% { opacity: 1; transform: scale3d(0.475, 0.475, 0.475) translate3d(42p=
x, 0px, 0px); }
  100% { opacity: 0; transform: scale(0.1) translate3d(-2000px, 0px, 0px); =
}
}

@keyframes zoomOutLeft {=20
  40% { opacity: 1; transform: scale3d(0.475, 0.475, 0.475) translate3d(42p=
x, 0px, 0px); }
  100% { opacity: 0; transform: scale(0.1) translate3d(-2000px, 0px, 0px); =
}
}

.animate__zoomOutLeft { animation-name: zoomOutLeft; transform-origin: left=
 center; }

@-webkit-keyframes zoomOutRight {=20
  40% { opacity: 1; transform: scale3d(0.475, 0.475, 0.475) translate3d(-42=
px, 0px, 0px); }
  100% { opacity: 0; transform: scale(0.1) translate3d(2000px, 0px, 0px); }
}

@keyframes zoomOutRight {=20
  40% { opacity: 1; transform: scale3d(0.475, 0.475, 0.475) translate3d(-42=
px, 0px, 0px); }
  100% { opacity: 0; transform: scale(0.1) translate3d(2000px, 0px, 0px); }
}

.animate__zoomOutRight { animation-name: zoomOutRight; transform-origin: ri=
ght center; }

@-webkit-keyframes zoomOutUp {=20
  40% { opacity: 1; transform: scale3d(0.475, 0.475, 0.475) translate3d(0px=
, 60px, 0px); animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0=
.19); }
  100% { opacity: 0; transform: scale3d(0.1, 0.1, 0.1) translate3d(0px, -20=
00px, 0px); animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);=
 }
}

@keyframes zoomOutUp {=20
  40% { opacity: 1; transform: scale3d(0.475, 0.475, 0.475) translate3d(0px=
, 60px, 0px); animation-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0=
.19); }
  100% { opacity: 0; transform: scale3d(0.1, 0.1, 0.1) translate3d(0px, -20=
00px, 0px); animation-timing-function: cubic-bezier(0.175, 0.885, 0.32, 1);=
 }
}

.animate__zoomOutUp { animation-name: zoomOutUp; transform-origin: center b=
ottom; }

@-webkit-keyframes slideInDown {=20
  0% { transform: translate3d(0px, -100%, 0px); visibility: visible; }
  100% { transform: translateZ(0px); }
}

@keyframes slideInDown {=20
  0% { transform: translate3d(0px, -100%, 0px); visibility: visible; }
  100% { transform: translateZ(0px); }
}

.animate__slideInDown { animation-name: slideInDown; }

@-webkit-keyframes slideInLeft {=20
  0% { transform: translate3d(-100%, 0px, 0px); visibility: visible; }
  100% { transform: translateZ(0px); }
}

@keyframes slideInLeft {=20
  0% { transform: translate3d(-100%, 0px, 0px); visibility: visible; }
  100% { transform: translateZ(0px); }
}

.animate__slideInLeft { animation-name: slideInLeft; }

@-webkit-keyframes slideInRight {=20
  0% { transform: translate3d(100%, 0px, 0px); visibility: visible; }
  100% { transform: translateZ(0px); }
}

@keyframes slideInRight {=20
  0% { transform: translate3d(100%, 0px, 0px); visibility: visible; }
  100% { transform: translateZ(0px); }
}

.animate__slideInRight { animation-name: slideInRight; }

@-webkit-keyframes slideInUp {=20
  0% { transform: translate3d(0px, 100%, 0px); visibility: visible; }
  100% { transform: translateZ(0px); }
}

@keyframes slideInUp {=20
  0% { transform: translate3d(0px, 100%, 0px); visibility: visible; }
  100% { transform: translateZ(0px); }
}

.animate__slideInUp { animation-name: slideInUp; }

@-webkit-keyframes slideOutDown {=20
  0% { transform: translateZ(0px); }
  100% { visibility: hidden; transform: translate3d(0px, 100%, 0px); }
}

@keyframes slideOutDown {=20
  0% { transform: translateZ(0px); }
  100% { visibility: hidden; transform: translate3d(0px, 100%, 0px); }
}

.animate__slideOutDown { animation-name: slideOutDown; }

@-webkit-keyframes slideOutLeft {=20
  0% { transform: translateZ(0px); }
  100% { visibility: hidden; transform: translate3d(-100%, 0px, 0px); }
}

@keyframes slideOutLeft {=20
  0% { transform: translateZ(0px); }
  100% { visibility: hidden; transform: translate3d(-100%, 0px, 0px); }
}

.animate__slideOutLeft { animation-name: slideOutLeft; }

@-webkit-keyframes slideOutRight {=20
  0% { transform: translateZ(0px); }
  100% { visibility: hidden; transform: translate3d(100%, 0px, 0px); }
}

@keyframes slideOutRight {=20
  0% { transform: translateZ(0px); }
  100% { visibility: hidden; transform: translate3d(100%, 0px, 0px); }
}

.animate__slideOutRight { animation-name: slideOutRight; }

@-webkit-keyframes slideOutUp {=20
  0% { transform: translateZ(0px); }
  100% { visibility: hidden; transform: translate3d(0px, -100%, 0px); }
}

@keyframes slideOutUp {=20
  0% { transform: translateZ(0px); }
  100% { visibility: hidden; transform: translate3d(0px, -100%, 0px); }
}

.animate__slideOutUp { animation-name: slideOutUp; }
------MultipartBoundary--gWmtkLL3aPLL9QvHLWg1Yif3XzwEYNRGNBhxAsKdsK----
Content-Type: image/webp
Content-Transfer-Encoding: base64
Content-Location: https://it-notes.dragas.net/stesmall.webp

[encoded data, 4527 characters]

------MultipartBoundary--gWmtkLL3aPLL9QvHLWg1Yif3XzwEYNRGNBhxAsKdsK----
Content-Type: image/webp
Content-Transfer-Encoding: base64
Content-Location: https://it-notes.dragas.net/featured/server_rack.webp

[encoded data, 45738 characters]
FmM3SrGfqdVOjxxBfj6Chs3ZM4AAAAAAAAAAAAAAAAAAAA==

------MultipartBoundary--gWmtkLL3aPLL9QvHLWg1Yif3XzwEYNRGNBhxAsKdsK----
Content-Type: image/svg+xml
Content-Transfer-Encoding: quoted-printable
Content-Location: https://it-notes.dragas.net/images/hugo.min.svg

<svg xmlns=3D"http://www.w3.org/2000/svg" xmlns:xlink=3D"http://www.w3.org/=
1999/xlink" viewBox=3D"0 0 370 391" width=3D"16" height=3D"16"><style>.st0{=
fill-rule:evenodd;clip-rule:evenodd;fill:#ff4088;stroke:#c9177e;stroke-widt=
h:27}.st1{fill-rule:evenodd;clip-rule:evenodd;fill:#fff}</style><path class=
=3D"st0" d=3D"M207.5 22.4 321.9 89c13.5 7.9 21.9 22.4 21.9 38v136.4c0 17.3-=
9.3 33.3-24.5 41.8l-113.5 63.9c-15.1 8.5-33.5 8.4-48.5-.2L52.8 308.8c-16.4-=
9.5-26.6-27-26.6-45.9V133.4c0-19.1 9.9-36.8 26.1-46.8l102.8-63.5C171.1 13.2=
 191.3 13 207.5 22.4z"/><polygon class=3D"st1" points=3D"105.6,298.2 105.6,=
91 149,91 149,166.5 220.9,166.5 220.9,91 264.4,91 264.4,298.2 220.9,298.2 2=
20.9,207.6 149,207.6 149,298.2"/></svg>
------MultipartBoundary--gWmtkLL3aPLL9QvHLWg1Yif3XzwEYNRGNBhxAsKdsK----
Content-Type: image/svg+xml
Content-Transfer-Encoding: quoted-printable
Content-Location: https://it-notes.dragas.net/images/fixit.min.svg

<svg xmlns=3D"http://www.w3.org/2000/svg" viewBox=3D"0 0 512 512" width=3D"=
16" height=3D"16"><defs><style>.fixit-ban{opacity:.9}</style></defs><path d=
=3D"M159.12 338.69l24.8-16.54a78.87 78.87.0 01-6.77-22.72l-30.88 4.41a16 16=
 0 01-4.54-31.68l34.27-4.9v-.76l98.94 98.95a76.89 76.89.0 01-71.68-17.73l-2=
6.39 17.59c-.15.11-.31.21-.47.31a16 16 0 01-17.28-26.93zm224.72-48.42a16 16=
 0 00-13.57-18.11l-34.27-4.9V244.9l34.27-4.9a16 16 0 10-4.54-31.68l-30.54 4=
.36a79.31 79.31.0 00-6.85-22.85l24.54-16.36a16 16 0 10-17.29-26.93l-.46.31-=
26 17.34a79.9 79.9.0 00-102.64-3l139.83 139.88 19.41 2.77a16 16 0 0018.11-1=
3.57z" fill=3D"#358c3c" class=3D"fixit-bug"/><path d=3D"M256 8C119 8 8 119 =
8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 432c-101.46.0-184-82.5=
4-184-184a182.84 182.84.0 0133.38-105.37l256 256A182.86 182.86.0 01256 440z=
m150.62-78.63-256-256A182.84 182.84.0 01256 72c101.46.0 184 82.54 184 184a1=
82.84 182.84.0 01-33.38 105.37z" fill=3D"tomato" class=3D"fixit-ban"/></svg>
------MultipartBoundary--gWmtkLL3aPLL9QvHLWg1Yif3XzwEYNRGNBhxAsKdsK----
Content-Type: text/css
Content-Transfer-Encoding: quoted-printable
Content-Location: https://it-notes.dragas.net/lib/katex/katex.min.af6f85907cdfd6ed3e4906d93a8233d91c5638859f744cd1b98c9b1a3ccaab5f231bdcda49f132f6cdfe8cca86ff33ed468affab8a9a502610a664a34f0f0cfa.css

@charset "utf-8";

@font-face { font-family: KaTeX_AMS; font-style: normal; font-weight: 400; =
src: url("fonts/KaTeX_AMS-Regular.woff2") format("woff2"), url("fonts/KaTeX=
_AMS-Regular.woff") format("woff"), url("fonts/KaTeX_AMS-Regular.ttf") form=
at("truetype"); }

@font-face { font-family: KaTeX_Caligraphic; font-style: normal; font-weigh=
t: 700; src: url("fonts/KaTeX_Caligraphic-Bold.woff2") format("woff2"), url=
("fonts/KaTeX_Caligraphic-Bold.woff") format("woff"), url("fonts/KaTeX_Cali=
graphic-Bold.ttf") format("truetype"); }

@font-face { font-family: KaTeX_Caligraphic; font-style: normal; font-weigh=
t: 400; src: url("fonts/KaTeX_Caligraphic-Regular.woff2") format("woff2"), =
url("fonts/KaTeX_Caligraphic-Regular.woff") format("woff"), url("fonts/KaTe=
X_Caligraphic-Regular.ttf") format("truetype"); }

@font-face { font-family: KaTeX_Fraktur; font-style: normal; font-weight: 7=
00; src: url("fonts/KaTeX_Fraktur-Bold.woff2") format("woff2"), url("fonts/=
KaTeX_Fraktur-Bold.woff") format("woff"), url("fonts/KaTeX_Fraktur-Bold.ttf=
") format("truetype"); }

@font-face { font-family: KaTeX_Fraktur; font-style: normal; font-weight: 4=
00; src: url("fonts/KaTeX_Fraktur-Regular.woff2") format("woff2"), url("fon=
ts/KaTeX_Fraktur-Regular.woff") format("woff"), url("fonts/KaTeX_Fraktur-Re=
gular.ttf") format("truetype"); }

@font-face { font-family: KaTeX_Main; font-style: normal; font-weight: 700;=
 src: url("fonts/KaTeX_Main-Bold.woff2") format("woff2"), url("fonts/KaTeX_=
Main-Bold.woff") format("woff"), url("fonts/KaTeX_Main-Bold.ttf") format("t=
ruetype"); }

@font-face { font-family: KaTeX_Main; font-style: italic; font-weight: 700;=
 src: url("fonts/KaTeX_Main-BoldItalic.woff2") format("woff2"), url("fonts/=
KaTeX_Main-BoldItalic.woff") format("woff"), url("fonts/KaTeX_Main-BoldItal=
ic.ttf") format("truetype"); }

@font-face { font-family: KaTeX_Main; font-style: italic; font-weight: 400;=
 src: url("fonts/KaTeX_Main-Italic.woff2") format("woff2"), url("fonts/KaTe=
X_Main-Italic.woff") format("woff"), url("fonts/KaTeX_Main-Italic.ttf") for=
mat("truetype"); }

@font-face { font-family: KaTeX_Main; font-style: normal; font-weight: 400;=
 src: url("fonts/KaTeX_Main-Regular.woff2") format("woff2"), url("fonts/KaT=
eX_Main-Regular.woff") format("woff"), url("fonts/KaTeX_Main-Regular.ttf") =
format("truetype"); }

@font-face { font-family: KaTeX_Math; font-style: italic; font-weight: 700;=
 src: url("fonts/KaTeX_Math-BoldItalic.woff2") format("woff2"), url("fonts/=
KaTeX_Math-BoldItalic.woff") format("woff"), url("fonts/KaTeX_Math-BoldItal=
ic.ttf") format("truetype"); }

@font-face { font-family: KaTeX_Math; font-style: italic; font-weight: 400;=
 src: url("fonts/KaTeX_Math-Italic.woff2") format("woff2"), url("fonts/KaTe=
X_Math-Italic.woff") format("woff"), url("fonts/KaTeX_Math-Italic.ttf") for=
mat("truetype"); }

@font-face { font-family: KaTeX_SansSerif; font-style: normal; font-weight:=
 700; src: url("fonts/KaTeX_SansSerif-Bold.woff2") format("woff2"), url("fo=
nts/KaTeX_SansSerif-Bold.woff") format("woff"), url("fonts/KaTeX_SansSerif-=
Bold.ttf") format("truetype"); }

@font-face { font-family: KaTeX_SansSerif; font-style: italic; font-weight:=
 400; src: url("fonts/KaTeX_SansSerif-Italic.woff2") format("woff2"), url("=
fonts/KaTeX_SansSerif-Italic.woff") format("woff"), url("fonts/KaTeX_SansSe=
rif-Italic.ttf") format("truetype"); }

@font-face { font-family: KaTeX_SansSerif; font-style: normal; font-weight:=
 400; src: url("fonts/KaTeX_SansSerif-Regular.woff2") format("woff2"), url(=
"fonts/KaTeX_SansSerif-Regular.woff") format("woff"), url("fonts/KaTeX_Sans=
Serif-Regular.ttf") format("truetype"); }

@font-face { font-family: KaTeX_Script; font-style: normal; font-weight: 40=
0; src: url("fonts/KaTeX_Script-Regular.woff2") format("woff2"), url("fonts=
/KaTeX_Script-Regular.woff") format("woff"), url("fonts/KaTeX_Script-Regula=
r.ttf") format("truetype"); }

@font-face { font-family: KaTeX_Size1; font-style: normal; font-weight: 400=
; src: url("fonts/KaTeX_Size1-Regular.woff2") format("woff2"), url("fonts/K=
aTeX_Size1-Regular.woff") format("woff"), url("fonts/KaTeX_Size1-Regular.tt=
f") format("truetype"); }

@font-face { font-family: KaTeX_Size2; font-style: normal; font-weight: 400=
; src: url("fonts/KaTeX_Size2-Regular.woff2") format("woff2"), url("fonts/K=
aTeX_Size2-Regular.woff") format("woff"), url("fonts/KaTeX_Size2-Regular.tt=
f") format("truetype"); }

@font-face { font-family: KaTeX_Size3; font-style: normal; font-weight: 400=
; src: url("fonts/KaTeX_Size3-Regular.woff2") format("woff2"), url("fonts/K=
aTeX_Size3-Regular.woff") format("woff"), url("fonts/KaTeX_Size3-Regular.tt=
f") format("truetype"); }

@font-face { font-family: KaTeX_Size4; font-style: normal; font-weight: 400=
; src: url("fonts/KaTeX_Size4-Regular.woff2") format("woff2"), url("fonts/K=
aTeX_Size4-Regular.woff") format("woff"), url("fonts/KaTeX_Size4-Regular.tt=
f") format("truetype"); }

@font-face { font-family: KaTeX_Typewriter; font-style: normal; font-weight=
: 400; src: url("fonts/KaTeX_Typewriter-Regular.woff2") format("woff2"), ur=
l("fonts/KaTeX_Typewriter-Regular.woff") format("woff"), url("fonts/KaTeX_T=
ypewriter-Regular.ttf") format("truetype"); }

.katex { font: 1.21em / 1.2 KaTeX_Main, "Times New Roman", serif; text-inde=
nt: 0px; text-rendering: auto; }

.katex * { border-color: currentcolor; }

.katex .katex-version::after { content: "0.16.10"; }

.katex .katex-mathml { clip: rect(1px, 1px, 1px, 1px); border: 0px; height:=
 1px; overflow: hidden; padding: 0px; position: absolute; width: 1px; }

.katex .katex-html > .newline { display: block; }

.katex .base { position: relative; white-space: nowrap; width: min-content;=
 }

.katex .base, .katex .strut { display: inline-block; }

.katex .textbf { font-weight: 700; }

.katex .textit { font-style: italic; }

.katex .textrm { font-family: KaTeX_Main; }

.katex .textsf { font-family: KaTeX_SansSerif; }

.katex .texttt { font-family: KaTeX_Typewriter; }

.katex .mathnormal { font-family: KaTeX_Math; font-style: italic; }

.katex .mathit { font-family: KaTeX_Main; font-style: italic; }

.katex .mathrm { font-style: normal; }

.katex .mathbf { font-family: KaTeX_Main; font-weight: 700; }

.katex .boldsymbol { font-family: KaTeX_Math; font-style: italic; font-weig=
ht: 700; }

.katex .amsrm, .katex .mathbb, .katex .textbb { font-family: KaTeX_AMS; }

.katex .mathcal { font-family: KaTeX_Caligraphic; }

.katex .mathfrak, .katex .textfrak { font-family: KaTeX_Fraktur; }

.katex .mathboldfrak, .katex .textboldfrak { font-family: KaTeX_Fraktur; fo=
nt-weight: 700; }

.katex .mathtt { font-family: KaTeX_Typewriter; }

.katex .mathscr, .katex .textscr { font-family: KaTeX_Script; }

.katex .mathsf, .katex .textsf { font-family: KaTeX_SansSerif; }

.katex .mathboldsf, .katex .textboldsf { font-family: KaTeX_SansSerif; font=
-weight: 700; }

.katex .mathitsf, .katex .textitsf { font-family: KaTeX_SansSerif; font-sty=
le: italic; }

.katex .mainrm { font-family: KaTeX_Main; font-style: normal; }

.katex .vlist-t { border-collapse: collapse; display: inline-table; table-l=
ayout: fixed; }

.katex .vlist-r { display: table-row; }

.katex .vlist { display: table-cell; position: relative; vertical-align: bo=
ttom; }

.katex .vlist > span { display: block; height: 0px; position: relative; }

.katex .vlist > span > span { display: inline-block; }

.katex .vlist > span > .pstrut { overflow: hidden; width: 0px; }

.katex .vlist-t2 { margin-right: -2px; }

.katex .vlist-s { display: table-cell; font-size: 1px; min-width: 2px; vert=
ical-align: bottom; width: 2px; }

.katex .vbox { align-items: baseline; display: inline-flex; flex-direction:=
 column; }

.katex .hbox { width: 100%; }

.katex .hbox, .katex .thinbox { display: inline-flex; flex-direction: row; =
}

.katex .thinbox { max-width: 0px; width: 0px; }

.katex .msupsub { text-align: left; }

.katex .mfrac > span > span { text-align: center; }

.katex .mfrac .frac-line { border-bottom-style: solid; display: inline-bloc=
k; width: 100%; }

.katex .hdashline, .katex .hline, .katex .mfrac .frac-line, .katex .overlin=
e .overline-line, .katex .rule, .katex .underline .underline-line { min-hei=
ght: 1px; }

.katex .mspace { display: inline-block; }

.katex .clap, .katex .llap, .katex .rlap { position: relative; width: 0px; =
}

.katex .clap > .inner, .katex .llap > .inner, .katex .rlap > .inner { posit=
ion: absolute; }

.katex .clap > .fix, .katex .llap > .fix, .katex .rlap > .fix { display: in=
line-block; }

.katex .llap > .inner { right: 0px; }

.katex .clap > .inner, .katex .rlap > .inner { left: 0px; }

.katex .clap > .inner > span { margin-left: -50%; margin-right: 50%; }

.katex .rule { border: 0px solid; display: inline-block; position: relative=
; }

.katex .hline, .katex .overline .overline-line, .katex .underline .underlin=
e-line { border-bottom-style: solid; display: inline-block; width: 100%; }

.katex .hdashline { border-bottom-style: dashed; display: inline-block; wid=
th: 100%; }

.katex .sqrt > .root { margin-left: 0.277778em; margin-right: -0.555556em; =
}

.katex .fontsize-ensurer.reset-size1.size1, .katex .sizing.reset-size1.size=
1 { font-size: 1em; }

.katex .fontsize-ensurer.reset-size1.size2, .katex .sizing.reset-size1.size=
2 { font-size: 1.2em; }

.katex .fontsize-ensurer.reset-size1.size3, .katex .sizing.reset-size1.size=
3 { font-size: 1.4em; }

.katex .fontsize-ensurer.reset-size1.size4, .katex .sizing.reset-size1.size=
4 { font-size: 1.6em; }

.katex .fontsize-ensurer.reset-size1.size5, .katex .sizing.reset-size1.size=
5 { font-size: 1.8em; }

.katex .fontsize-ensurer.reset-size1.size6, .katex .sizing.reset-size1.size=
6 { font-size: 2em; }

.katex .fontsize-ensurer.reset-size1.size7, .katex .sizing.reset-size1.size=
7 { font-size: 2.4em; }

.katex .fontsize-ensurer.reset-size1.size8, .katex .sizing.reset-size1.size=
8 { font-size: 2.88em; }

.katex .fontsize-ensurer.reset-size1.size9, .katex .sizing.reset-size1.size=
9 { font-size: 3.456em; }

.katex .fontsize-ensurer.reset-size1.size10, .katex .sizing.reset-size1.siz=
e10 { font-size: 4.148em; }

.katex .fontsize-ensurer.reset-size1.size11, .katex .sizing.reset-size1.siz=
e11 { font-size: 4.976em; }

.katex .fontsize-ensurer.reset-size2.size1, .katex .sizing.reset-size2.size=
1 { font-size: 0.833333em; }

.katex .fontsize-ensurer.reset-size2.size2, .katex .sizing.reset-size2.size=
2 { font-size: 1em; }

.katex .fontsize-ensurer.reset-size2.size3, .katex .sizing.reset-size2.size=
3 { font-size: 1.16667em; }

.katex .fontsize-ensurer.reset-size2.size4, .katex .sizing.reset-size2.size=
4 { font-size: 1.33333em; }

.katex .fontsize-ensurer.reset-size2.size5, .katex .sizing.reset-size2.size=
5 { font-size: 1.5em; }

.katex .fontsize-ensurer.reset-size2.size6, .katex .sizing.reset-size2.size=
6 { font-size: 1.66667em; }

.katex .fontsize-ensurer.reset-size2.size7, .katex .sizing.reset-size2.size=
7 { font-size: 2em; }

.katex .fontsize-ensurer.reset-size2.size8, .katex .sizing.reset-size2.size=
8 { font-size: 2.4em; }

.katex .fontsize-ensurer.reset-size2.size9, .katex .sizing.reset-size2.size=
9 { font-size: 2.88em; }

.katex .fontsize-ensurer.reset-size2.size10, .katex .sizing.reset-size2.siz=
e10 { font-size: 3.45667em; }

.katex .fontsize-ensurer.reset-size2.size11, .katex .sizing.reset-size2.siz=
e11 { font-size: 4.14667em; }

.katex .fontsize-ensurer.reset-size3.size1, .katex .sizing.reset-size3.size=
1 { font-size: 0.714286em; }

.katex .fontsize-ensurer.reset-size3.size2, .katex .sizing.reset-size3.size=
2 { font-size: 0.857143em; }

.katex .fontsize-ensurer.reset-size3.size3, .katex .sizing.reset-size3.size=
3 { font-size: 1em; }

.katex .fontsize-ensurer.reset-size3.size4, .katex .sizing.reset-size3.size=
4 { font-size: 1.14286em; }

.katex .fontsize-ensurer.reset-size3.size5, .katex .sizing.reset-size3.size=
5 { font-size: 1.28571em; }

.katex .fontsize-ensurer.reset-size3.size6, .katex .sizing.reset-size3.size=
6 { font-size: 1.42857em; }

.katex .fontsize-ensurer.reset-size3.size7, .katex .sizing.reset-size3.size=
7 { font-size: 1.71429em; }

.katex .fontsize-ensurer.reset-size3.size8, .katex .sizing.reset-size3.size=
8 { font-size: 2.05714em; }

.katex .fontsize-ensurer.reset-size3.size9, .katex .sizing.reset-size3.size=
9 { font-size: 2.46857em; }

.katex .fontsize-ensurer.reset-size3.size10, .katex .sizing.reset-size3.siz=
e10 { font-size: 2.96286em; }

.katex .fontsize-ensurer.reset-size3.size11, .katex .sizing.reset-size3.siz=
e11 { font-size: 3.55429em; }

.katex .fontsize-ensurer.reset-size4.size1, .katex .sizing.reset-size4.size=
1 { font-size: 0.625em; }

.katex .fontsize-ensurer.reset-size4.size2, .katex .sizing.reset-size4.size=
2 { font-size: 0.75em; }

.katex .fontsize-ensurer.reset-size4.size3, .katex .sizing.reset-size4.size=
3 { font-size: 0.875em; }

.katex .fontsize-ensurer.reset-size4.size4, .katex .sizing.reset-size4.size=
4 { font-size: 1em; }

.katex .fontsize-ensurer.reset-size4.size5, .katex .sizing.reset-size4.size=
5 { font-size: 1.125em; }

.katex .fontsize-ensurer.reset-size4.size6, .katex .sizing.reset-size4.size=
6 { font-size: 1.25em; }

.katex .fontsize-ensurer.reset-size4.size7, .katex .sizing.reset-size4.size=
7 { font-size: 1.5em; }

.katex .fontsize-ensurer.reset-size4.size8, .katex .sizing.reset-size4.size=
8 { font-size: 1.8em; }

.katex .fontsize-ensurer.reset-size4.size9, .katex .sizing.reset-size4.size=
9 { font-size: 2.16em; }

.katex .fontsize-ensurer.reset-size4.size10, .katex .sizing.reset-size4.siz=
e10 { font-size: 2.5925em; }

.katex .fontsize-ensurer.reset-size4.size11, .katex .sizing.reset-size4.siz=
e11 { font-size: 3.11em; }

.katex .fontsize-ensurer.reset-size5.size1, .katex .sizing.reset-size5.size=
1 { font-size: 0.555556em; }

.katex .fontsize-ensurer.reset-size5.size2, .katex .sizing.reset-size5.size=
2 { font-size: 0.666667em; }

.katex .fontsize-ensurer.reset-size5.size3, .katex .sizing.reset-size5.size=
3 { font-size: 0.777778em; }

.katex .fontsize-ensurer.reset-size5.size4, .katex .sizing.reset-size5.size=
4 { font-size: 0.888889em; }

.katex .fontsize-ensurer.reset-size5.size5, .katex .sizing.reset-size5.size=
5 { font-size: 1em; }

.katex .fontsize-ensurer.reset-size5.size6, .katex .sizing.reset-size5.size=
6 { font-size: 1.11111em; }

.katex .fontsize-ensurer.reset-size5.size7, .katex .sizing.reset-size5.size=
7 { font-size: 1.33333em; }

.katex .fontsize-ensurer.reset-size5.size8, .katex .sizing.reset-size5.size=
8 { font-size: 1.6em; }

.katex .fontsize-ensurer.reset-size5.size9, .katex .sizing.reset-size5.size=
9 { font-size: 1.92em; }

.katex .fontsize-ensurer.reset-size5.size10, .katex .sizing.reset-size5.siz=
e10 { font-size: 2.30444em; }

.katex .fontsize-ensurer.reset-size5.size11, .katex .sizing.reset-size5.siz=
e11 { font-size: 2.76444em; }

.katex .fontsize-ensurer.reset-size6.size1, .katex .sizing.reset-size6.size=
1 { font-size: 0.5em; }

.katex .fontsize-ensurer.reset-size6.size2, .katex .sizing.reset-size6.size=
2 { font-size: 0.6em; }

.katex .fontsize-ensurer.reset-size6.size3, .katex .sizing.reset-size6.size=
3 { font-size: 0.7em; }

.katex .fontsize-ensurer.reset-size6.size4, .katex .sizing.reset-size6.size=
4 { font-size: 0.8em; }

.katex .fontsize-ensurer.reset-size6.size5, .katex .sizing.reset-size6.size=
5 { font-size: 0.9em; }

.katex .fontsize-ensurer.reset-size6.size6, .katex .sizing.reset-size6.size=
6 { font-size: 1em; }

.katex .fontsize-ensurer.reset-size6.size7, .katex .sizing.reset-size6.size=
7 { font-size: 1.2em; }

.katex .fontsize-ensurer.reset-size6.size8, .katex .sizing.reset-size6.size=
8 { font-size: 1.44em; }

.katex .fontsize-ensurer.reset-size6.size9, .katex .sizing.reset-size6.size=
9 { font-size: 1.728em; }

.katex .fontsize-ensurer.reset-size6.size10, .katex .sizing.reset-size6.siz=
e10 { font-size: 2.074em; }

.katex .fontsize-ensurer.reset-size6.size11, .katex .sizing.reset-size6.siz=
e11 { font-size: 2.488em; }

.katex .fontsize-ensurer.reset-size7.size1, .katex .sizing.reset-size7.size=
1 { font-size: 0.416667em; }

.katex .fontsize-ensurer.reset-size7.size2, .katex .sizing.reset-size7.size=
2 { font-size: 0.5em; }

.katex .fontsize-ensurer.reset-size7.size3, .katex .sizing.reset-size7.size=
3 { font-size: 0.583333em; }

.katex .fontsize-ensurer.reset-size7.size4, .katex .sizing.reset-size7.size=
4 { font-size: 0.666667em; }

.katex .fontsize-ensurer.reset-size7.size5, .katex .sizing.reset-size7.size=
5 { font-size: 0.75em; }

.katex .fontsize-ensurer.reset-size7.size6, .katex .sizing.reset-size7.size=
6 { font-size: 0.833333em; }

.katex .fontsize-ensurer.reset-size7.size7, .katex .sizing.reset-size7.size=
7 { font-size: 1em; }

.katex .fontsize-ensurer.reset-size7.size8, .katex .sizing.reset-size7.size=
8 { font-size: 1.2em; }

.katex .fontsize-ensurer.reset-size7.size9, .katex .sizing.reset-size7.size=
9 { font-size: 1.44em; }

.katex .fontsize-ensurer.reset-size7.size10, .katex .sizing.reset-size7.siz=
e10 { font-size: 1.72833em; }

.katex .fontsize-ensurer.reset-size7.size11, .katex .sizing.reset-size7.siz=
e11 { font-size: 2.07333em; }

.katex .fontsize-ensurer.reset-size8.size1, .katex .sizing.reset-size8.size=
1 { font-size: 0.347222em; }

.katex .fontsize-ensurer.reset-size8.size2, .katex .sizing.reset-size8.size=
2 { font-size: 0.416667em; }

.katex .fontsize-ensurer.reset-size8.size3, .katex .sizing.reset-size8.size=
3 { font-size: 0.486111em; }

.katex .fontsize-ensurer.reset-size8.size4, .katex .sizing.reset-size8.size=
4 { font-size: 0.555556em; }

.katex .fontsize-ensurer.reset-size8.size5, .katex .sizing.reset-size8.size=
5 { font-size: 0.625em; }

.katex .fontsize-ensurer.reset-size8.size6, .katex .sizing.reset-size8.size=
6 { font-size: 0.694444em; }

.katex .fontsize-ensurer.reset-size8.size7, .katex .sizing.reset-size8.size=
7 { font-size: 0.833333em; }

.katex .fontsize-ensurer.reset-size8.size8, .katex .sizing.reset-size8.size=
8 { font-size: 1em; }

.katex .fontsize-ensurer.reset-size8.size9, .katex .sizing.reset-size8.size=
9 { font-size: 1.2em; }

.katex .fontsize-ensurer.reset-size8.size10, .katex .sizing.reset-size8.siz=
e10 { font-size: 1.44028em; }

.katex .fontsize-ensurer.reset-size8.size11, .katex .sizing.reset-size8.siz=
e11 { font-size: 1.72778em; }

.katex .fontsize-ensurer.reset-size9.size1, .katex .sizing.reset-size9.size=
1 { font-size: 0.289352em; }

.katex .fontsize-ensurer.reset-size9.size2, .katex .sizing.reset-size9.size=
2 { font-size: 0.347222em; }

.katex .fontsize-ensurer.reset-size9.size3, .katex .sizing.reset-size9.size=
3 { font-size: 0.405093em; }

.katex .fontsize-ensurer.reset-size9.size4, .katex .sizing.reset-size9.size=
4 { font-size: 0.462963em; }

.katex .fontsize-ensurer.reset-size9.size5, .katex .sizing.reset-size9.size=
5 { font-size: 0.520833em; }

.katex .fontsize-ensurer.reset-size9.size6, .katex .sizing.reset-size9.size=
6 { font-size: 0.578704em; }

.katex .fontsize-ensurer.reset-size9.size7, .katex .sizing.reset-size9.size=
7 { font-size: 0.694444em; }

.katex .fontsize-ensurer.reset-size9.size8, .katex .sizing.reset-size9.size=
8 { font-size: 0.833333em; }

.katex .fontsize-ensurer.reset-size9.size9, .katex .sizing.reset-size9.size=
9 { font-size: 1em; }

.katex .fontsize-ensurer.reset-size9.size10, .katex .sizing.reset-size9.siz=
e10 { font-size: 1.20023em; }

.katex .fontsize-ensurer.reset-size9.size11, .katex .sizing.reset-size9.siz=
e11 { font-size: 1.43981em; }

.katex .fontsize-ensurer.reset-size10.size1, .katex .sizing.reset-size10.si=
ze1 { font-size: 0.24108em; }

.katex .fontsize-ensurer.reset-size10.size2, .katex .sizing.reset-size10.si=
ze2 { font-size: 0.289296em; }

.katex .fontsize-ensurer.reset-size10.size3, .katex .sizing.reset-size10.si=
ze3 { font-size: 0.337512em; }

.katex .fontsize-ensurer.reset-size10.size4, .katex .sizing.reset-size10.si=
ze4 { font-size: 0.385728em; }

.katex .fontsize-ensurer.reset-size10.size5, .katex .sizing.reset-size10.si=
ze5 { font-size: 0.433944em; }

.katex .fontsize-ensurer.reset-size10.size6, .katex .sizing.reset-size10.si=
ze6 { font-size: 0.48216em; }

.katex .fontsize-ensurer.reset-size10.size7, .katex .sizing.reset-size10.si=
ze7 { font-size: 0.578592em; }

.katex .fontsize-ensurer.reset-size10.size8, .katex .sizing.reset-size10.si=
ze8 { font-size: 0.694311em; }

.katex .fontsize-ensurer.reset-size10.size9, .katex .sizing.reset-size10.si=
ze9 { font-size: 0.833173em; }

.katex .fontsize-ensurer.reset-size10.size10, .katex .sizing.reset-size10.s=
ize10 { font-size: 1em; }

.katex .fontsize-ensurer.reset-size10.size11, .katex .sizing.reset-size10.s=
ize11 { font-size: 1.19961em; }

.katex .fontsize-ensurer.reset-size11.size1, .katex .sizing.reset-size11.si=
ze1 { font-size: 0.200965em; }

.katex .fontsize-ensurer.reset-size11.size2, .katex .sizing.reset-size11.si=
ze2 { font-size: 0.241158em; }

.katex .fontsize-ensurer.reset-size11.size3, .katex .sizing.reset-size11.si=
ze3 { font-size: 0.28135em; }

.katex .fontsize-ensurer.reset-size11.size4, .katex .sizing.reset-size11.si=
ze4 { font-size: 0.321543em; }

.katex .fontsize-ensurer.reset-size11.size5, .katex .sizing.reset-size11.si=
ze5 { font-size: 0.361736em; }

.katex .fontsize-ensurer.reset-size11.size6, .katex .sizing.reset-size11.si=
ze6 { font-size: 0.401929em; }

.katex .fontsize-ensurer.reset-size11.size7, .katex .sizing.reset-size11.si=
ze7 { font-size: 0.482315em; }

.katex .fontsize-ensurer.reset-size11.size8, .katex .sizing.reset-size11.si=
ze8 { font-size: 0.578778em; }

.katex .fontsize-ensurer.reset-size11.size9, .katex .sizing.reset-size11.si=
ze9 { font-size: 0.694534em; }

.katex .fontsize-ensurer.reset-size11.size10, .katex .sizing.reset-size11.s=
ize10 { font-size: 0.833601em; }

.katex .fontsize-ensurer.reset-size11.size11, .katex .sizing.reset-size11.s=
ize11 { font-size: 1em; }

.katex .delimsizing.size1 { font-family: KaTeX_Size1; }

.katex .delimsizing.size2 { font-family: KaTeX_Size2; }

.katex .delimsizing.size3 { font-family: KaTeX_Size3; }

.katex .delimsizing.size4 { font-family: KaTeX_Size4; }

.katex .delimsizing.mult .delim-size1 > span { font-family: KaTeX_Size1; }

.katex .delimsizing.mult .delim-size4 > span { font-family: KaTeX_Size4; }

.katex .nulldelimiter { display: inline-block; width: 0.12em; }

.katex .delimcenter, .katex .op-symbol { position: relative; }

.katex .op-symbol.small-op { font-family: KaTeX_Size1; }

.katex .op-symbol.large-op { font-family: KaTeX_Size2; }

.katex .accent > .vlist-t, .katex .op-limits > .vlist-t { text-align: cente=
r; }

.katex .accent .accent-body { position: relative; }

.katex .accent .accent-body:not(.accent-full) { width: 0px; }

.katex .overlay { display: block; }

.katex .mtable .vertical-separator { display: inline-block; min-width: 1px;=
 }

.katex .mtable .arraycolsep { display: inline-block; }

.katex .mtable .col-align-c > .vlist-t { text-align: center; }

.katex .mtable .col-align-l > .vlist-t { text-align: left; }

.katex .mtable .col-align-r > .vlist-t { text-align: right; }

.katex .svg-align { text-align: left; }

.katex svg { fill: currentcolor; stroke: currentcolor; fill-rule: nonzero; =
fill-opacity: 1; stroke-width: 1; stroke-linecap: butt; stroke-linejoin: mi=
ter; stroke-miterlimit: 4; stroke-dasharray: none; stroke-dashoffset: 0; st=
roke-opacity: 1; display: block; height: inherit; position: absolute; width=
: 100%; }

.katex svg path { stroke: none; }

.katex img { border-style: none; max-height: none; max-width: none; min-hei=
ght: 0px; min-width: 0px; }

.katex .stretchy { display: block; overflow: hidden; position: relative; wi=
dth: 100%; }

.katex .stretchy::after, .katex .stretchy::before { content: ""; }

.katex .hide-tail { overflow: hidden; position: relative; width: 100%; }

.katex .halfarrow-left { left: 0px; overflow: hidden; position: absolute; w=
idth: 50.2%; }

.katex .halfarrow-right { overflow: hidden; position: absolute; right: 0px;=
 width: 50.2%; }

.katex .brace-left { left: 0px; overflow: hidden; position: absolute; width=
: 25.1%; }

.katex .brace-center { left: 25%; overflow: hidden; position: absolute; wid=
th: 50%; }

.katex .brace-right { overflow: hidden; position: absolute; right: 0px; wid=
th: 25.1%; }

.katex .x-arrow-pad { padding: 0px 0.5em; }

.katex .cd-arrow-pad { padding: 0px 0.55556em 0px 0.27778em; }

.katex .mover, .katex .munder, .katex .x-arrow { text-align: center; }

.katex .boxpad { padding: 0px 0.3em; }

.katex .fbox, .katex .fcolorbox { border: 0.04em solid; box-sizing: border-=
box; }

.katex .cancel-pad { padding: 0px 0.2em; }

.katex .cancel-lap { margin-left: -0.2em; margin-right: -0.2em; }

.katex .sout { border-bottom-style: solid; border-bottom-width: 0.08em; }

.katex .angl { border-right: 0.049em solid; border-top: 0.049em solid; box-=
sizing: border-box; margin-right: 0.03889em; }

.katex .anglpad { padding: 0px 0.03889em; }

.katex .eqn-num::before { content: "(" counter(katexEqnNo) ")"; counter-inc=
rement: katexEqnNo 1; }

.katex .mml-eqn-num::before { content: "(" counter(mmlEqnNo) ")"; counter-i=
ncrement: mmlEqnNo 1; }

.katex .mtr-glue { width: 50%; }

.katex .cd-vert-arrow { display: inline-block; position: relative; }

.katex .cd-label-left { display: inline-block; position: absolute; right: c=
alc(50% + 0.3em); text-align: left; }

.katex .cd-label-right { display: inline-block; left: calc(50% + 0.3em); po=
sition: absolute; text-align: right; }

.katex-display { display: block; margin: 1em 0px; text-align: center; }

.katex-display > .katex { display: block; text-align: center; white-space: =
nowrap; }

.katex-display > .katex > .katex-html { display: block; position: relative;=
 }

.katex-display > .katex > .katex-html > .tag { position: absolute; right: 0=
px; }

.katex-display.leqno > .katex > .katex-html > .tag { left: 0px; right: auto=
; }

.katex-display.fleqn > .katex { padding-left: 2em; text-align: left; }

body { counter-reset: katexEqnNo 0 mmlEqnNo 0; }
------MultipartBoundary--gWmtkLL3aPLL9QvHLWg1Yif3XzwEYNRGNBhxAsKdsK----
Content-Type: text/css
Content-Transfer-Encoding: quoted-printable
Content-Location: https://it-notes.dragas.net/lib/cookieconsent/cookieconsent.min.2d0f7b71a99aaff94e9624ff32a8dc42ce645a0cba433fdc091cf34735027efd1fa2db024c2f591d768f426255f17bbf3d500b7c967b0437b3979956dffa81c6.css

@charset "utf-8";

.cc-window { opacity: 1; transition: opacity 1s; }

.cc-window.cc-invisible { opacity: 0; }

.cc-animate.cc-revoke { transition: transform 1s, -webkit-transform 1s; }

.cc-animate.cc-revoke.cc-top { transform: translateY(-2em); }

.cc-animate.cc-revoke.cc-bottom { transform: translateY(2em); }

.cc-animate.cc-revoke.cc-active.cc-top { transform: translateY(0px); }

.cc-animate.cc-revoke.cc-active.cc-bottom { transform: translateY(0px); }

.cc-revoke:hover { transform: translateY(0px); }

.cc-grower { max-height: 0px; overflow: hidden; transition: max-height 1s; =
}

.cc-revoke, .cc-window { position: fixed; overflow: hidden; box-sizing: bor=
der-box; font-family: Helvetica, Calibri, Arial, sans-serif; font-size: 16p=
x; line-height: 1.5em; display: flex; flex-wrap: nowrap; z-index: 9999; }

.cc-window.cc-static { position: static; }

.cc-window.cc-floating { padding: 2em; max-width: 24em; -webkit-box-orient:=
 vertical; -webkit-box-direction: normal; flex-direction: column; }

.cc-window.cc-banner { padding: 1em 1.8em; width: 100%; -webkit-box-orient:=
 horizontal; -webkit-box-direction: normal; flex-direction: row; }

.cc-revoke { padding: 0.5em; }

.cc-revoke:hover { text-decoration: underline; }

.cc-header { font-size: 18px; font-weight: 700; }

.cc-btn, .cc-close, .cc-link, .cc-revoke { cursor: pointer; }

.cc-link { opacity: 0.8; display: inline-block; padding: 0.2em; text-decora=
tion: underline; }

.cc-link:hover { opacity: 1; }

.cc-link:active, .cc-link:visited { color: initial; }

.cc-btn { display: block; padding: 0.4em 0.8em; font-size: 0.9em; font-weig=
ht: 700; border-width: 2px; border-style: solid; text-align: center; white-=
space: nowrap; }

.cc-highlight .cc-btn:first-child { background-color: transparent; border-c=
olor: transparent; }

.cc-highlight .cc-btn:first-child:focus, .cc-highlight .cc-btn:first-child:=
hover { background-color: transparent; text-decoration: underline; }

.cc-close { display: block; position: absolute; top: 0.5em; right: 0.5em; f=
ont-size: 1.6em; opacity: 0.9; line-height: 0.75; }

.cc-close:focus, .cc-close:hover { opacity: 1; }

.cc-revoke.cc-top { top: 0px; left: 3em; border-bottom-left-radius: 0.5em; =
border-bottom-right-radius: 0.5em; }

.cc-revoke.cc-bottom { bottom: 0px; left: 3em; border-top-left-radius: 0.5e=
m; border-top-right-radius: 0.5em; }

.cc-revoke.cc-left { left: 3em; right: unset; }

.cc-revoke.cc-right { right: 3em; left: unset; }

.cc-top { top: 1em; }

.cc-left { left: 1em; }

.cc-right { right: 1em; }

.cc-bottom { bottom: 1em; }

.cc-floating > .cc-link { margin-bottom: 1em; }

.cc-floating .cc-message { display: block; margin-bottom: 1em; }

.cc-window.cc-floating .cc-compliance { -webkit-box-flex: 1; flex: 1 0 auto=
; }

.cc-window.cc-banner { -webkit-box-align: center; align-items: center; }

.cc-banner.cc-top { left: 0px; right: 0px; top: 0px; }

.cc-banner.cc-bottom { left: 0px; right: 0px; bottom: 0px; }

.cc-banner .cc-message { display: block; -webkit-box-flex: 1; flex: 1 1 aut=
o; max-width: 100%; margin-right: 1em; }

.cc-compliance { display: flex; -webkit-box-align: center; align-items: cen=
ter; align-content: space-between; }

.cc-floating .cc-compliance > .cc-btn { -webkit-box-flex: 1; flex: 1 1 0%; =
}

.cc-btn + .cc-btn { margin-left: 0.5em; }

@media print {
  .cc-revoke, .cc-window { display: none; }
}

@media screen and (max-width: 900px) {
  .cc-btn { white-space: normal; }
}

@media screen and (max-width: 414px) and (orientation: portrait), screen an=
d (max-width: 736px) and (orientation: landscape) {
  .cc-window.cc-top { top: 0px; }
  .cc-window.cc-bottom { bottom: 0px; }
  .cc-window.cc-banner, .cc-window.cc-floating, .cc-window.cc-left, .cc-win=
dow.cc-right { left: 0px; right: 0px; }
  .cc-window.cc-banner { -webkit-box-orient: vertical; -webkit-box-directio=
n: normal; flex-direction: column; }
  .cc-window.cc-banner .cc-compliance { -webkit-box-flex: 1; flex: 1 1 auto=
; }
  .cc-window.cc-floating { max-width: none; }
  .cc-window .cc-message { margin-bottom: 1em; }
  .cc-window.cc-banner { -webkit-box-align: unset; align-items: unset; }
  .cc-window.cc-banner .cc-message { margin-right: 0px; }
}

.cc-floating.cc-theme-classic { padding: 1.2em; border-radius: 5px; }

.cc-floating.cc-type-info.cc-theme-classic .cc-compliance { text-align: cen=
ter; display: inline; -webkit-box-flex: 0; flex: 0 0 auto; }

.cc-theme-classic .cc-btn { border-radius: 5px; }

.cc-theme-classic .cc-btn:last-child { min-width: 140px; }

.cc-floating.cc-type-info.cc-theme-classic .cc-btn { display: inline-block;=
 }

.cc-theme-edgeless.cc-window { padding: 0px; }

.cc-floating.cc-theme-edgeless .cc-message { margin: 2em 2em 1.5em; }

.cc-banner.cc-theme-edgeless .cc-btn { margin: 0px; padding: 0.8em 1.8em; h=
eight: 100%; }

.cc-banner.cc-theme-edgeless .cc-message { margin-left: 1em; }

.cc-floating.cc-theme-edgeless .cc-btn + .cc-btn { margin-left: 0px; }
------MultipartBoundary--gWmtkLL3aPLL9QvHLWg1Yif3XzwEYNRGNBhxAsKdsK------
